<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>de.lars-sh</groupId>
	<artifactId>root</artifactId>
	<version>0.9.12</version>
	<packaging>pom</packaging>

	<name>Root POM</name>
	<description>This POM is meant to be used as root POM. Use de.lars-sh:parent for your own projects.</description>
	<url>https://${parent-pom.github.organization}.github.io/${parent-pom.github.project}/</url>
	<licenses>
		<license>
			<name>MIT License</name>
			<url>https://opensource.org/licenses/MIT</url>
		</license>
	</licenses>

	<developers>
		<developer>
			<name>Lars Knickrehm</name>
			<email>mail@lars-sh.de</email>
			<url>https://lars-sh.de/</url>
		</developer>
	</developers>

	<modules>
		<module>parent</module>
		<module>parent-archetype</module>
		<module>utils</module>
		<module>utils-annotations</module>
		<module>utils-test</module>
	</modules>

	<scm>
		<connection>scm:git:git@github.com:${parent-pom.github.organization}/${parent-pom.github.project}.git</connection>
		<developerConnection>scm:git:git@github.com:${parent-pom.github.organization}/${parent-pom.github.project}.git</developerConnection>
		<url>https://github.com/${parent-pom.github.organization}/${parent-pom.github.project}</url>
	</scm>
	<issueManagement>
		<system>GitHub Issues</system>
		<url>https://github.com/${parent-pom.github.organization}/${parent-pom.github.project}/issues</url>
	</issueManagement>
	<ciManagement>
		<system>GitHub Actions</system>
		<url>https://github.com/${parent-pom.github.organization}/${parent-pom.github.project}/actions</url>
	</ciManagement>
	<distributionManagement>
		<snapshotRepository>
			<id>github</id>
			<name>GitHub Packages</name>
			<url>https://maven.pkg.github.com/${parent-pom.github.organization}/${parent-pom.github.project}</url>
		</snapshotRepository>
		<repository>
			<id>ossrh</id>
			<name>Sonatype Nexus Releases</name>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
		</repository>
	</distributionManagement>

	<properties>
		<!-- Parent POM -->
		<!-- <parent-pom.create-changelog-md>true</parent-pom.create-changelog-md> -->
		<!-- <parent-pom.create-dependabot-yml>true</parent-pom.create-dependabot-yml> -->
		<!-- <parent-pom.create-github-release-yml>false</parent-pom.create-github-release-yml> -->
		<!-- <parent-pom.create-github-workflow-yml>true</parent-pom.create-github-workflow-yml> -->
		<parent-pom.create-gitignore>true</parent-pom.create-gitignore>
		<!-- <parent-pom.create-lombok-config>true</parent-pom.create-lombok-config> -->
		<!-- <parent-pom.create-readme-md>true</parent-pom.create-readme-md> -->
		<!-- <parent-pom.create-source-directories>true</parent-pom.create-source-directories> -->
		<parent-pom.create-travis-yml>false</parent-pom.create-travis-yml>
		<parent-pom.default-sources-folder>lombok</parent-pom.default-sources-folder>
		<parent-pom.github.organization>lars-sh</parent-pom.github.organization>
		<parent-pom.github.project>parent</parent-pom.github.project>

		<!-- Eclipse Configuration -->
		<!-- <eclipse.compiler.codegen.methodParameters>false</eclipse.compiler.codegen.methodParameters> -->
		<eclipse.compiler.javadoc>enabled</eclipse.compiler.javadoc>
		<eclipse.compiler.missingNonNullByDefaultAnnotation>warning</eclipse.compiler.missingNonNullByDefaultAnnotation>
		<eclipse.compiler.nonnull.secondary></eclipse.compiler.nonnull.secondary>
		<eclipse.compiler.nonnullbydefault.secondary></eclipse.compiler.nonnullbydefault.secondary>
		<eclipse.compiler.nullAnalysis>enabled</eclipse.compiler.nullAnalysis>
		<eclipse.compiler.nullable.secondary>edu.umd.cs.findbugs.annotations.CheckForNull</eclipse.compiler.nullable.secondary>
		<eclipse.compiler.potentialNullReference>error</eclipse.compiler.potentialNullReference>

		<!-- Plugins -->
		<aggregate>true</aggregate>
		<checkstyle.config.location>${project.build.directory}/checkstyle.xml</checkstyle.config.location>
		<checkstyle.consoleOutput>true</checkstyle.consoleOutput>
		<cpd.aggregate>false</cpd.aggregate>
		<!-- <cpd.excludeFromFailureFile>${project.basedir}/cpd-excludes.csv</cpd.excludeFromFailureFile> -->
		<cpd.printFailingErrors>true</cpd.printFailingErrors>
		<dependency.failOnWarning>true</dependency.failOnWarning>
		<enforcer.requiredMavenVersion>3.3.9</enforcer.requiredMavenVersion>
		<formatter.configFile>${project.build.directory}/formatter.xml</formatter.configFile>
		<formatter.lineEnding>LF</formatter.lineEnding>
		<jar.manifest.addClasspath>true</jar.manifest.addClasspath>
		<jar.manifest.addDefaultImplementationEntries>true</jar.manifest.addDefaultImplementationEntries>
		<jar.manifest.addDefaultSpecificationEntries>true</jar.manifest.addDefaultSpecificationEntries>
		<jar.manifest.mainClass></jar.manifest.mainClass>
		<jar.skipIfEmpty>true</jar.skipIfEmpty>
		<javadoc.quiet>true</javadoc.quiet>
		<maven.compiler.failOnWarning>true</maven.compiler.failOnWarning>
		<maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
		<maven.compiler.showWarnings>true</maven.compiler.showWarnings>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.javadoc.failOnWarnings>true</maven.javadoc.failOnWarnings>
		<maven.version.rules>file:///${project.build.directory}/versions-ruleset.xml</maven.version.rules>
		<nexus-staging.autoReleaseAfterClose>true</nexus-staging.autoReleaseAfterClose>
		<pmd.aggregate>false</pmd.aggregate>
		<pmd-only.excludeFromFailureFile>${project.basedir}/pmd-excludes.properties</pmd-only.excludeFromFailureFile>
		<pmd-only.printFailingErrors>true</pmd-only.printFailingErrors>
		<pmd-only.ruleset>${project.build.directory}/pmd-ruleset.xml</pmd-only.ruleset>
		<pmd.analysisCache>true</pmd.analysisCache>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<shade.dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</shade.dependencyReducedPomLocation>
		<shade.packageDependenciesPhase>none</shade.packageDependenciesPhase>
		<spotbugs.effort>Max</spotbugs.effort>
		<spotbugs.excludeFilterFile>${spotbugs.excludeFilterFile.fix-jdk11-and-later}${spotbugs.excludeFilterFile.global}${spotbugs.excludeFilterFile.user}</spotbugs.excludeFilterFile>
		<spotbugs.excludeFilterFile.fix-jdk11-and-later></spotbugs.excludeFilterFile.fix-jdk11-and-later>
		<spotbugs.excludeFilterFile.global>${project.build.directory}/spotbugs-excludes-global.xml,</spotbugs.excludeFilterFile.global>
		<!-- <spotbugs.excludeFilterFile.user></spotbugs.excludeFilterFile.user> -->
		<spotbugs.threshold>Low</spotbugs.threshold>

		<!-- Versions: Dependencies -->
		<assertj-core.version>3.19.0</assertj-core.version>
		<joor.version>0.9.13</joor.version>
		<junit-jupiter-api.version>5.7.1</junit-jupiter-api.version>
		<junit-jupiter-engine.version>5.7.1</junit-jupiter-engine.version>
		<lombok-annotations.version>1.18.20</lombok-annotations.version>
		<mockito.version>3.8.0</mockito.version>
		<parent.version>0.9.12</parent.version>

		<!-- Versions: Plugins -->
		<build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
		<formatter-maven-plugin.version>2.14.0</formatter-maven-plugin.version>
		<jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version>
		<lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
		<lombok-maven-plugin.version>1.18.18.0</lombok-maven-plugin.version>
		<maven-antrun-plugin.version>3.0.0</maven-antrun-plugin.version>
		<maven-archetype-plugin.version>3.2.0</maven-archetype-plugin.version>
		<maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
		<maven-checkstyle-plugin.version>3.1.2</maven-checkstyle-plugin.version>
		<maven-clean-plugin.version>3.1.0</maven-clean-plugin.version>
		<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
		<maven-dependency-plugin.version>3.1.2</maven-dependency-plugin.version>
		<maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
		<maven-enforcer-plugin.version>1.4.1</maven-enforcer-plugin.version>
		<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
		<maven-help-plugin.version>3.2.0</maven-help-plugin.version>
		<maven-install-plugin.version>2.5.2</maven-install-plugin.version>
		<maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
		<maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
		<maven-jxr-plugin.version>3.0.0</maven-jxr-plugin.version>
		<maven-plugin-plugin.version>3.6.0</maven-plugin-plugin.version>
		<maven-pmd-plugin.version>3.14.0</maven-pmd-plugin.version>
		<maven-project-info-reports-plugin.version>3.1.1</maven-project-info-reports-plugin.version>
		<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
		<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
		<maven-shade-plugin.version>3.2.4</maven-shade-plugin.version>
		<maven-site-plugin.version>3.9.1</maven-site-plugin.version>
		<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
		<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
		<maven-surefire-report-plugin.version>2.22.2</maven-surefire-report-plugin.version>
		<nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>
		<properties-maven-plugin.version>1.0.0</properties-maven-plugin.version>
		<spotbugs-maven-plugin.version>4.2.2</spotbugs-maven-plugin.version>
		<tidy-maven-plugin.version>1.1.0</tidy-maven-plugin.version>
		<versions-maven-plugin.version>2.8.1</versions-maven-plugin.version>

		<!-- Versions: Plugin Dependencies -->
		<apache-ant.version>1.10.9</apache-ant.version>
		<checkstyle.version>8.41.1</checkstyle.version>
		<sb-contrib.version>7.4.7</sb-contrib.version>
		<findsecbugs.version>1.11.0</findsecbugs.version>
		<lombok.version>1.18.20</lombok.version>
		<org-eclipse-jdt-core.version>3.25.0</org-eclipse-jdt-core.version>
		<pmd.version>6.33.0</pmd.version>
		<spotbugs.version>4.2.2</spotbugs.version>
		<spotbugs-annotations.version>4.2.2</spotbugs-annotations.version>

		<!-- Versions: Reporting Skins -->
		<maven-fluido-skin.version>1.9</maven-fluido-skin.version>
	</properties>

	<dependencyManagement>
		<!-- These dependency definitions should not change anything but forcing the
			Maven Dependency Plugin to check their versions. -->
		<dependencies>
			<!-- Plugin Dependencies -->
			<dependency>
				<groupId>com.github.spotbugs</groupId>
				<artifactId>spotbugs</artifactId>
				<version>${spotbugs.version}</version>
			</dependency>
			<dependency>
				<groupId>com.puppycrawl.tools</groupId>
				<artifactId>checkstyle</artifactId>
				<version>${checkstyle.version}</version>
			</dependency>
			<dependency>
				<groupId>net.sourceforge.pmd</groupId>
				<artifactId>pmd-core</artifactId>
				<version>${pmd.version}</version>
			</dependency>
			<dependency>
				<groupId>net.sourceforge.pmd</groupId>
				<artifactId>pmd-java</artifactId>
				<version>${pmd.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.ant</groupId>
				<artifactId>ant</artifactId>
				<version>${apache-ant.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jdt</groupId>
				<artifactId>org.eclipse.jdt.core</artifactId>
				<version>${org-eclipse-jdt-core.version}</version>
			</dependency>
			<dependency>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok</artifactId>
				<version>${lombok.version}</version>
			</dependency>

			<!-- Skins -->
			<dependency>
				<groupId>org.apache.maven.skins</groupId>
				<artifactId>maven-fluido-skin</artifactId>
				<version>${maven-fluido-skin.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<!-- Provided -->
		<dependency>
			<groupId>com.github.spotbugs</groupId>
			<artifactId>spotbugs-annotations</artifactId>
			<version>${spotbugs-annotations.version}</version>
			<scope>provided</scope>
		</dependency>

		<!-- Test -->
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>${assertj-core.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.jooq</groupId>
			<artifactId>joor-java-8</artifactId>
			<version>${joor.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>${junit-jupiter-api.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<version>${junit-jupiter-engine.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<version>${mockito.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
			<resource>
				<directory>${project.basedir}</directory>
				<targetPath>META-INF</targetPath>
				<includes>
					<include>CHANGELOG.md</include>
					<include>LICENSE.txt</include>
					<include>README.md</include>
				</includes>
			</resource>
		</resources>
		<testResources>
			<testResource>
				<directory>src/test/resources</directory>
			</testResource>
			<testResource>
				<directory>${project.basedir}</directory>
				<targetPath>META-INF</targetPath>
				<includes>
					<include>CHANGELOG.md</include>
					<include>LICENSE.txt</include>
					<include>README.md</include>
				</includes>
			</testResource>
		</testResources>
		<pluginManagement>
			<plugins>
				<!-- Maven -->
				<plugin>
					<artifactId>maven-antrun-plugin</artifactId>
					<version>${maven-antrun-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>org.apache.ant</groupId>
							<artifactId>ant</artifactId>
							<version>${apache-ant.version}</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<artifactId>maven-archetype-plugin</artifactId>
					<version>${maven-archetype-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>${maven-assembly-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>${maven-checkstyle-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>com.puppycrawl.tools</groupId>
							<artifactId>checkstyle</artifactId>
							<version>${checkstyle.version}</version>
						</dependency>
					</dependencies>
					<configuration>
						<sourceDirectories>
							<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
							<sourceDirectory>${project.basedir}/src/test/java</sourceDirectory>
							<sourceDirectory>${project.basedir}/src/main/lombok</sourceDirectory>
							<sourceDirectory>${project.basedir}/src/test/lombok</sourceDirectory>
						</sourceDirectories>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-clean-plugin</artifactId>
					<version>${maven-clean-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>${maven-compiler-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>${maven-dependency-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>${maven-deploy-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>${maven-enforcer-plugin.version}</version>
					<configuration>
						<rules>
							<requireMavenVersion>
								<version>${enforcer.requiredMavenVersion}</version>
							</requireMavenVersion>
						</rules>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-gpg-plugin</artifactId>
					<version>${maven-gpg-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-help-plugin</artifactId>
					<version>${maven-help-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-install-plugin</artifactId>
					<version>${maven-install-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-jar-plugin</artifactId>
					<version>${maven-jar-plugin.version}</version>
					<configuration>
						<archive>
							<manifest>
								<addClasspath>${jar.manifest.addClasspath}</addClasspath>
								<addDefaultImplementationEntries>${jar.manifest.addDefaultImplementationEntries}</addDefaultImplementationEntries>
								<addDefaultSpecificationEntries>${jar.manifest.addDefaultSpecificationEntries}</addDefaultSpecificationEntries>
								<mainClass>${jar.manifest.mainClass}</mainClass>
							</manifest>
						</archive>
						<skipIfEmpty>${jar.skipIfEmpty}</skipIfEmpty>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${maven-javadoc-plugin.version}</version>
					<configuration>
						<quiet>${javadoc.quiet}</quiet>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-jxr-plugin</artifactId>
					<version>${maven-jxr-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-plugin-plugin</artifactId>
					<version>${maven-plugin-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-pmd-plugin</artifactId>
					<version>${maven-pmd-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>net.sourceforge.pmd</groupId>
							<artifactId>pmd-core</artifactId>
							<version>${pmd.version}</version>
						</dependency>
						<dependency>
							<groupId>net.sourceforge.pmd</groupId>
							<artifactId>pmd-java</artifactId>
							<version>${pmd.version}</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<artifactId>maven-project-info-reports-plugin</artifactId>
					<version>${maven-project-info-reports-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-release-plugin</artifactId>
					<version>${maven-release-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-resources-plugin</artifactId>
					<version>${maven-resources-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-shade-plugin</artifactId>
					<version>${maven-shade-plugin.version}</version>
					<configuration>
						<dependencyReducedPomLocation>${shade.dependencyReducedPomLocation}</dependencyReducedPomLocation>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-site-plugin</artifactId>
					<version>${maven-site-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-source-plugin</artifactId>
					<version>${maven-source-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>${maven-surefire-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-surefire-report-plugin</artifactId>
					<version>${maven-surefire-report-plugin.version}</version>
				</plugin>

				<!-- Others -->
				<plugin>
					<groupId>com.github.spotbugs</groupId>
					<artifactId>spotbugs-maven-plugin</artifactId>
					<version>${spotbugs-maven-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>com.github.spotbugs</groupId>
							<artifactId>spotbugs</artifactId>
							<version>${spotbugs.version}</version>
						</dependency>
					</dependencies>
					<configuration>
						<plugins>
							<plugin>
								<groupId>com.h3xstream.findsecbugs</groupId>
								<artifactId>findsecbugs-plugin</artifactId>
								<version>${findsecbugs.version}</version>
							</plugin>
							<plugin>
								<groupId>com.mebigfatguy.sb-contrib</groupId>
								<artifactId>sb-contrib</artifactId>
								<version>${sb-contrib.version}</version>
							</plugin>
						</plugins>
					</configuration>
				</plugin>
				<plugin>
					<groupId>net.revelc.code.formatter</groupId>
					<artifactId>formatter-maven-plugin</artifactId>
					<version>${formatter-maven-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>org.eclipse.jdt</groupId>
							<artifactId>org.eclipse.jdt.core</artifactId>
							<version>${org-eclipse-jdt-core.version}</version>
						</dependency>
					</dependencies>
					<configuration>
						<configFile>${formatter.configFile}</configFile>
						<directories>
							<directory>${project.basedir}/src/main/java</directory>
							<directory>${project.basedir}/src/test/java</directory>
							<directory>${project.basedir}/src/main/lombok</directory>
							<directory>${project.basedir}/src/test/lombok</directory>
						</directories>
						<lineEnding>${formatter.lineEnding}</lineEnding>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>build-helper-maven-plugin</artifactId>
					<version>${build-helper-maven-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>properties-maven-plugin</artifactId>
					<version>${properties-maven-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>tidy-maven-plugin</artifactId>
					<version>${tidy-maven-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>versions-maven-plugin</artifactId>
					<version>${versions-maven-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>${jacoco-maven-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.projectlombok</groupId>
					<artifactId>lombok-maven-plugin</artifactId>
					<version>${lombok-maven-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
							<version>${lombok.version}</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<groupId>org.sonatype.plugins</groupId>
					<artifactId>nexus-staging-maven-plugin</artifactId>
					<version>${nexus-staging-maven-plugin.version}</version>
					<configuration>
						<serverId>ossrh</serverId>
						<nexusUrl>https://oss.sonatype.org/</nexusUrl>
						<autoReleaseAfterClose>${nexus-staging.autoReleaseAfterClose}</autoReleaseAfterClose>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<!-- Require certain maven version -->
			<plugin>
				<artifactId>maven-enforcer-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>enforce</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Check for tidied up pom.xml -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>tidy-maven-plugin</artifactId>
				<executions>
					<execution>
						<phase>validate</phase>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<!-- Configure Project -->
					<execution>
						<id>configure-project</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<exportAntProperties>true</exportAntProperties>
							<target>
								<condition property="parent-pom.create-changelog-md" value="false" else="true">
									<available file="${project.basedir}/CHANGELOG.md" />
								</condition>
								<condition property="parent-pom.create-dependabot-yml" value="false" else="true">
									<and>
										<equals arg1="${project.groupId}" arg2="de.lars-sh" />
										<or>
											<equals arg1="${project.artifactId}" arg2="parent" />
											<equals arg1="${project.artifactId}" arg2="root" />
										</or>
									</and>
								</condition>
								<condition property="parent-pom.create-github-release-yml" value="true" else="false">
									<and>
										<equals arg1="${project.groupId}" arg2="de.lars-sh" />
										<equals arg1="${project.artifactId}" arg2="root" />
									</and>
								</condition>
								<condition property="parent-pom.create-github-workflow-yml" value="false" else="true">
									<and>
										<equals arg1="${project.groupId}" arg2="de.lars-sh" />
										<or>
											<equals arg1="${project.artifactId}" arg2="parent" />
											<equals arg1="${project.artifactId}" arg2="root" />
										</or>
									</and>
								</condition>
								<condition property="parent-pom.create-lombok-config" value="false" else="true">
									<or>
										<equals arg1="${project.packaging}" arg2="maven-archetype" />
										<equals arg1="${project.packaging}" arg2="pom" />
									</or>
								</condition>
								<condition property="parent-pom.create-readme-md" value="false" else="true">
									<available file="${project.basedir}/README.md" />
								</condition>
								<condition property="parent-pom.create-source-directories" value="false" else="true">
									<or>
										<equals arg1="${project.packaging}" arg2="maven-archetype" />
										<equals arg1="${project.packaging}" arg2="pom" />
									</or>
								</condition>
								<condition property="spotbugs.excludeFilterFile.user" value="${project.basedir}/spotbugs-excludes.xml," else="">
									<available file="${project.basedir}/spotbugs-excludes.xml" />
								</condition>
								<condition property="cpd.excludeFromFailureFile" value="${project.basedir}/cpd-excludes.csv" else="">
									<available file="${project.basedir}/cpd-excludes.csv" />
								</condition>
								<condition property="eclipse.compiler.codegen.methodParameters" value="generate" else="do not generate">
									<equals arg1="${maven.compiler.parameters}" arg2="true" />
								</condition>

								<!-- checkstyle.xml -->
								<echo level="info" message="Update checkstyle.xml" />
								<echo file="${project.build.directory}/checkstyle.xml"><![CDATA[<!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd" [
	<!ENTITY customCheckstyleRules SYSTEM "${project.basedir}/checkstyle-rules.xml">
]>
<module name="Checker">
	<property name="localeCountry" value="US" />
	<property name="localeLanguage" value="en" />
	<property name="charset" value="UTF-8" />

	&customCheckstyleRules;

	<!-- File Filters -->
	<module name="SuppressionFilter">
		<property name="file" value="${project.basedir}/checkstyle-suppressions.xml" />
		<property name="optional" value="true" />
	</module>
	<module name="SuppressWarningsFilter" />

	<!-- Filters: package-info.java -->
	<module name="SuppressionSingleFilter">
		<property name="id" value="XNonNullByDefaultAnnotation" />
		<property name="files" value="^.*[/\\](?!package-info\.java)[^/\\]+$" />
	</module>

	<!-- Filters: Unit Tests -->
	<module name="SuppressionSingleFilter">
		<property name="checks" value="ExecutableStatementCount|JavadocPackage|JavadocVariable|MagicNumber|MethodLength|MultipleStringLiterals" />
		<property name="files" value="^(.*[/\\])?src[/\\]test[/\\].*$" />
	</module>

	<!-- Filters: Lombok -->
	<module name="SuppressionSingleFilter">
		<property name="checks" value="FinalClass|HideUtilityClassConstructor|MissingCtor|MutableException|VisibilityModifier" />
		<property name="files" value="^(.*[/\\])?src[/\\](main|test)[/\\]lombok[/\\].*$" />
	</module>

	<!-- Javadoc Comments -->
	<module name="JavadocPackage" />

	<!-- Miscellaneous -->
	<module name="NewlineAtEndOfFile">
		<property name="lineSeparator" value="lf" />
		<property name="fileExtensions" value="java" />
	</module>
	<module name="Translation" />
	<module name="UniqueProperties" />

	<!-- Regexp -->
	<module name="RegexpMultiline">
		<property name="id" value="XCheckForNullAnnotation" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="\P{javaJavaIdentifierPart}final\s([^,\(\);]*\s)?@\s*(edu\s*\.\s*umd\s*\.\s*cs\s*\.\s*findbugs\s*\.\s*annotations\s*\.\s*)?CheckForNull\s" />
		<property name="message" value="@CheckForNull should precede keyword &quot;final&quot;." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XCollectionsEmptyConstants" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="\P{javaJavaIdentifierPart}Collections\s*\.\s*EMPTY_(LIST|MAP|SET)\P{javaJavaIdentifierPart}" />
		<property name="message" value="Collections.EMPTY_LIST, EMPTY_MAP and EMPTY_SET shall not be used. Use Collections.emptyList(), emptyMap() and emptySet() instead." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XFinalsConstant" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="[^\p{javaJavaIdentifierPart}\s]\s*(public\s+|protected\s+|)(static\s+final|final\s+static)\s+\S+\s+\S+\s*=\s*(['&quot;0-9\.+\-]|(true|false)\P{javaJavaIdentifierPart})" />
		<property name="message" value="String and primitive constants should use Finals.constant." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XFinalsConstantPrivate" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="\P{javaJavaIdentifierPart}private\s+static\s+final\s+\S+\s+\S+\s*=\s*(de\s*\.\s*larssh\s*\.\s*utils\s*\.\s*)?(Finals\s*\.\s*)?constant\s*\(" />
		<property name="message" value="Finals.constant should not be used for private constants." />
	</module>
	<module name="RegexpSingleline">
		<property name="id" value="XLineTabIndentation" />
		<property name="fileExtensions" value="config,java,properties,xml" />
		<property name="format" value="^\t* [^*]" />
		<property name="message" value="Line does not use tab indentation." />
	</module>
	<module name="RegexpSingleline">
		<property name="id" value="XAvoidSerialVersionUID" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="(^|\P{javaJavaIdentifierPart})serialVersionUID(\P{javaJavaIdentifierPart}|$)" />
		<property name="message" value="Avoid using serialVersionUID as of https://github.com/rzwitserloot/lombok/wiki/WHY-NOT:-serialVersionUID" />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XNullableAnnotation" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="\P{javaJavaIdentifierPart}final\s([^,\(\)\{;]*\s)?@\s*(edu\s*\.\s*umd\s*\.\s*cs\s*\.\s*findbugs\s*\.\s*annotations\s*\.\s*)?Nullable\s" />
		<property name="message" value="@Nullable should precede keyword &quot;final&quot;." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XOptionalDouble" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="\P{javaJavaIdentifierPart}Optional\s*&lt;\s*Double\s*&gt;" />
		<property name="message" value="Optional&lt;Double&gt; must not be used. Use OptionalDouble instead." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XOptionalInteger" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="\P{javaJavaIdentifierPart}Optional\s*&lt;\s*Integer\s*&gt;" />
		<property name="message" value="Optional&lt;Integer&gt; must not be used. Use OptionalInt instead." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XOptionalLong" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="\P{javaJavaIdentifierPart}Optional\s*&lt;\s*Long\s*&gt;" />
		<property name="message" value="Optional&lt;Long&gt; must not be used. Use OptionalLong instead." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XPatternSplit" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="\.\s*split\s*\(\s*([^&quot;\(,\)]+|&quot;([^\\&quot;]+|\\.)*&quot;|\([^\)]*\))++\s*\)" />
		<property name="message" value="String.split and Pattern.split(input) must not be used. Use Pattern.split(input, limit) instead and think about the limit. Use StringLimit.NONE to not discard trailing empty strings." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XStringMatches" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="\.\s*matches\s*\(\s*([^&quot;\(,\)]+|&quot;([^\\&quot;]+|\\.)*&quot;|\([^\)]*\))++\s*\)" />
		<property name="message" value="String.matches must not be used. Use Strings.matches instead. This is likely to be a false positive if String.matches is not called." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XStringReplaceAll" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="&quot;\s*\.\s*replaceAll\s*\(|(?!\P{javaJavaIdentifierPart}Strings).{8}\.\s*replaceAll\s*\(\s*([^&quot;\(,\)]+|&quot;([^\\&quot;]+|\\.)*&quot;|\([^\)]*\))*+\s*," />
		<property name="message" value="String.replaceAll must not be used. Use Strings.replaceAll instead. This is likely to be a false positive if String.replaceAll is not called." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XStringReplaceFirst" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="&quot;\s*\.\s*replaceFirst\s*\(|(?!\P{javaJavaIdentifierPart}Strings).{8}\.\s*replaceFirst\s*\(\s*([^&quot;\(,\)]+|&quot;([^\\&quot;]+|\\.)*&quot;|\([^\)]*\))*+\s*," />
		<property name="message" value="String.replaceFirst must not be used. Use Strings.replaceFirst instead. This is likely to be a false positive if String.replaceFirst is not called." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XStringSplit" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="&quot;\s*\.\s*split\s*\(" />
		<property name="message" value="String.split must not be used. Use Pattern.split(input, limit) instead. This is likely to be a false positive if String.split is not called." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XSuperWithoutParameters" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="\P{javaJavaIdentifierPart}super\s*\(\s*\)" />
		<property name="message" value="Avoid using super() as it is called implicitly." />
	</module>
	<module name="RegexpMultiline">
		<property name="id" value="XSuppressFBWarnings" />
		<property name="fileExtensions" value="java" />
		<property name="format" value="@\s*SuppressFBWarnings\s*\(((?![^)]*\s*justification\s*=)|[^)]*\s*justification\s*=\s*&quot;(\s*|TODO)&quot;)" />
		<property name="message" value="SuppressFBWarnings requires justification parameter. It must not be empty or TODO." />
	</module>

	<!-- Size Violations -->
	<module name="FileLength" />

	<module name="TreeWalker">
		<property name="tabWidth" value="4" />

		<!-- Annotations -->
		<module name="AnnotationLocation">
			<property name="allowSamelineSingleParameterlessAnnotation" value="false" />
		</module>
		<module name="AnnotationUseStyle" />
		<module name="MissingDeprecated" />
		<module name="MissingOverride" />
		<module name="SuppressWarnings">
			<!--
			The list of disallowed SuppressWarnings matches the warnings supported by Eclipse JDTs Compiler
			* see https://help.eclipse.org/index.jsp?topic=/org.eclipse.jdt.doc.user/tasks/task-suppress_warnings.htm
			* except "deprecation", "null", "unchecked" and "unused"
			* plus "PMD"
			-->
			<property name="format" value="^(all|boxing|cast|fallthrough|finally|hiding|incomplete-switch|nls|PMD|rawtypes|resource|restriction|restriction|removal|serial|static-access|static-method|super|synthetic-access|sync-override|unqualified-field-access|unlikely-arg-type)$" />
		</module>
		<module name="SuppressWarningsHolder" />

		<!-- Block Checks -->
		<module name="AvoidNestedBlocks" />
		<module name="EmptyBlock">
			<property name="option" value="text" />
		</module>
		<module name="EmptyCatchBlock">
			<property name="exceptionVariableName" value="ignore" />
		</module>
		<module name="LeftCurly" />
		<module name="NeedBraces">
			<property name="allowSingleLineStatement" value="true" />
		</module>
		<module name="RightCurly" />

		<!-- Class Design -->
		<module name="FinalClass" />
		<module name="HideUtilityClassConstructor" />
		<module name="InnerTypeLast" />
		<module name="InterfaceIsType" />
		<module name="MutableException" />
		<module name="OneTopLevelClass" />
		<module name="ThrowsCount" />
		<module name="VisibilityModifier" />

		<!-- Coding -->
		<module name="AvoidNoArgumentSuperConstructorCall" />
		<module name="CovariantEquals" />
		<module name="DefaultComesLast">
			<property name="skipIfLastAndSharedWithCase" value="true" />
		</module>
		<module name="EmptyStatement" />
		<module name="EqualsHashCode" />
		<module name="FallThrough">
			<property name="checkLastCaseGroup" value="true" />
		</module>
		<module name="FinalLocalVariable">
			<property name="validateEnhancedForLoopVariable" value="true" />
			<property name="tokens" value="VARIABLE_DEF, PARAMETER_DEF" />
		</module>
		<module name="IllegalCatch">
			<property name="id" value="XIllegalCatchDefault" />
		</module>
		<module name="IllegalCatch">
			<property name="id" value="XIllegalCatchCustom" />
			<property name="illegalClassNames" value="java.lang.NullPointerException" />
		</module>
		<module name="IllegalInstantiation">
			<property name="classes" value="java.lang.StringBuffer, java.util.Hashtable, java.util.Vector, org.xml.sax.SAXException, org.xml.sax.SAXParseException" />
		</module>
		<module name="IllegalThrows" />
		<module name="IllegalToken">
			<property name="tokens" value="BAND, BOR, DEC, EMPTY_STAT, INC, LABELED_STAT, LITERAL_ASSERT, LITERAL_BREAK, LITERAL_CONTINUE, UNARY_PLUS" />
		</module>
		<module name="IllegalTokenText">
			<property name="format" value="^(ASCII|ISO-8859-1|US-ASCII|UTF-16|UTF-16BE|UTF-16LE|UTF-8)$" />
			<property name="ignoreCase" value="true" />
			<property name="message" value="Consider using StandardCharsets instead of charset strings." />
			<property name="tokens" value="STRING_LITERAL" />
		</module>
		<module name="IllegalType">
			<property name="id" value="XIllegalTypeDefault" />
			<property name="tokens" value="ANNOTATION_FIELD_DEF, INTERFACE_DEF, METHOD_CALL, METHOD_DEF, METHOD_REF, PARAMETER_DEF, VARIABLE_DEF" />
		</module>
		<module name="IllegalType">
			<property name="id" value="XIllegalTypeCustom" />
			<property name="illegalClassNames" value="java.lang.StringBuffer, StringBuffer" />
			<property name="tokens" value="ANNOTATION_FIELD_DEF, INTERFACE_DEF, METHOD_CALL, METHOD_DEF, METHOD_REF, PARAMETER_DEF, VARIABLE_DEF" />
		</module>
		<module name="InnerAssignment" />
		<module name="MagicNumber">
			<property name="ignoreHashCodeMethod" value="true" />
		</module>
		<module name="MissingCtor" />
		<module name="MissingSwitchDefault" />
		<module name="MultipleStringLiterals">
			<property name="ignoreStringsRegexp" value="^&quot;(|.+ is marked @NonNull but is null)&quot;$" />
			<property name="ignoreOccurrenceContext" value="ANNOTATION, STATIC_INIT" />
		</module>
		<module name="MultipleVariableDeclarations" />
		<module name="NoArrayTrailingComma" />
		<module name="NoClone" />
		<module name="NoEnumTrailingComma" />
		<module name="NoFinalizer" />
		<module name="OneStatementPerLine">
			<property name="treatTryResourcesAsStatement" value="true" />
		</module>
		<module name="OverloadMethodsDeclarationOrder" />
		<module name="PackageDeclaration" />
		<module name="ParameterAssignment" />
		<module name="SimplifyBooleanExpression" />
		<module name="SimplifyBooleanReturn" />
		<module name="StringLiteralEquality" />
		<module name="SuperClone" />
		<module name="SuperFinalize" />
		<module name="UnnecessaryParentheses" />
		<module name="UnnecessarySemicolonAfterOuterTypeDeclaration" />
		<module name="UnnecessarySemicolonAfterTypeMemberDeclaration" />
		<module name="UnnecessarySemicolonInTryWithResources" />
		<module name="VariableDeclarationUsageDistance" />

		<!-- Filters -->
		<module name="SuppressionXpathFilter">
			<property name="file" value="${project.basedir}/checkstyle-suppressions.xml" />
			<property name="optional" value="true" />
		</module>

		<!-- Filters: Allow postfix incrementor and decrementor inside for iterators -->
		<module name="SuppressionXpathSingleFilter">
			<property name="checks" value="DescendantToken" />
			<property name="query" value="//FOR_ITERATOR/descendant-or-self::node()" />
		</module>

		<!-- Filters: Allow break statements as last statement inside case -->
		<module name="SuppressionXpathSingleFilter">
			<property name="checks" value="IllegalToken" />
			<property name="query" value="//CASE_GROUP[LITERAL_CASE]/SLIST/LITERAL_BREAK[last()]" />
		</module>

		<!-- Filters: Allow multi catch while disallowing bitwise OR -->
		<module name="SuppressionXpathSingleFilter">
			<property name="checks" value="IllegalToken" />
			<property name="query" value="//LITERAL_CATCH/PARAMETER_DEF//BOR" />
		</module>

		<!-- Filters: Allow magic numbers inside static initialization blocks -->
		<module name="SuppressionXpathSingleFilter">
			<property name="checks" value="MagicNumber" />
			<property name="query" value="//STATIC_INIT/descendant-or-self::node()" />
		</module>

		<!-- Filters: Lombok: Allow @Tostring.Include member "rank" to have any magic number -->
		<module name="SuppressionXpathSingleFilter">
			<property name="checks" value="MagicNumber" />
			<property name="query" value="//ANNOTATION[DOT[IDENT[@text = 'ToString'] and IDENT[@text = 'Include']]]/ANNOTATION_MEMBER_VALUE_PAIR[IDENT[@text = 'rank']]/descendant-or-self::node()" />
		</module>

		<!-- Headers -->
		<!-- none -->

		<!-- Imports -->
		<module name="AvoidStarImport" />
		<module name="IllegalImport" />
		<module name="ImportOrder">
			<property name="option" value="top" />
			<property name="groups" value="java., javax., org., com." />
			<property name="separated" value="true" />
			<property name="separatedStaticGroups" value="true" />
			<property name="caseSensitive" value="true" />
			<property name="sortStaticImportsAlphabetically" value="true" />
		</module>
		<module name="RedundantImport" />
		<module name="UnusedImports">
			<property name="processJavadoc" value="false" />
		</module>

		<!-- Javadoc Comments -->
		<module name="AtclauseOrder" />
		<module name="InvalidJavadocPosition" />
		<module name="JavadocBlockTagLocation" />
		<module name="JavadocContentLocationCheck" />
		<module name="JavadocMethod" />
		<module name="JavadocMissingLeadingAsterisk" />
		<module name="JavadocMissingWhitespaceAfterAsteriskCheck" />
		<module name="JavadocParagraph">
			<property name="allowNewlineParagraph" value="false" />
		</module>
		<module name="JavadocStyle">
			<property name="checkFirstSentence" value="false" />
			<property name="checkEmptyJavadoc" value="true" />
		</module>
		<module name="JavadocTagContinuationIndentation" />
		<module name="JavadocType" />
		<module name="JavadocVariable" />
		<module name="MissingJavadocMethod">
			<property name="allowedAnnotations" value="" />
			<property name="scope" value="private" />
		</module>
		<module name="MissingJavadocPackage" />
		<module name="MissingJavadocType">
			<property name="scope" value="private" />
		</module>
		<module name="NonEmptyAtclauseDescription" />
		<module name="SingleLineJavadoc" />

		<!-- Metrics -->
		<!-- none -->

		<!-- Miscellaneous -->
		<module name="ArrayTypeStyle" />
		<module name="AvoidDoubleBraceInitialization" />
		<module name="AvoidEscapedUnicodeCharacters">
			<property name="allowEscapesForControlCharacters" value="true" />
			<property name="allowByTailComment" value="true" />
			<property name="allowNonPrintableEscapes" value="true" />
		</module>
		<module name="CommentsIndentation" />
		<module name="DescendantToken">
			<property name="tokens" value="ANNOTATION, ASSIGN, BAND_ASSIGN, BOR_ASSIGN, BSR_ASSIGN, BXOR_ASSIGN, DIV_ASSIGN, DO_WHILE, ELIST, FOR_EACH_CLAUSE, LAMBDA, LITERAL_ASSERT, LITERAL_CASE, LITERAL_IF, LITERAL_RETURN, LITERAL_WHILE, MINUS_ASSIGN, MOD_ASSIGN, PLUS_ASSIGN, QUESTION, SL_ASSIGN, SR_ASSIGN, STAR_ASSIGN" />
			<property name="limitedTokens" value="POST_DEC, POST_INC" />
			<property name="maximumNumber" value="0" />
			<property name="maximumMessage" value="The return value of the operators ++ and -- should not be used as they lead to hardly readable code." />
		</module>
		<module name="FinalParameters">
			<property name="tokens" value="METHOD_DEF, CTOR_DEF, LITERAL_CATCH, FOR_EACH_CLAUSE" />
		</module>
		<module name="Indentation">
			<property name="caseIndent" value="0" />
			<property name="throwsIndent" value="8" />
			<property name="arrayInitIndent" value="8" />
			<property name="lineWrappingIndentation" value="8" />
		</module>
		<module name="NoCodeInFile" />
		<module name="OuterTypeFilename" />
		<module name="TodoComment">
			<property name="format" value="^\s*(TODO|XXX|FIXME).*" />
			<property name="severity" value="info" />
		</module>
		<module name="TrailingComment">
			<property name="format" value="^(.*,)?\s*$" />
			<property name="legalComment" value="^|TODO$" />
		</module>
		<module name="UncommentedMain" />
		<module name="UpperEll" />

		<!-- Modifiers -->
		<module name="ModifierOrder" />
		<module name="RedundantModifier" />

		<!-- Naming Conventions -->
		<module name="AbbreviationAsWordInName">
			<property name="ignoreStatic" value="false" />
		</module>
		<module name="CatchParameterName" />
		<module name="ClassTypeParameterName" />
		<module name="ConstantName" />
		<module name="IllegalIdentifierName" />
		<module name="InterfaceTypeParameterName" />
		<module name="LambdaParameterName" />
		<module name="LocalFinalVariableName" />
		<module name="LocalVariableName" />
		<module name="MemberName" />
		<module name="MethodName" />
		<module name="MethodTypeParameterName" />
		<module name="PackageName" />
		<module name="ParameterName">
			<property name="format" value="^(?!arg\d*$)[a-z][a-zA-Z0-9]*$" />
		</module>
		<module name="PatternVariableName" />
		<module name="RecordComponentName" />
		<module name="RecordTypeParameterName" />
		<module name="StaticVariableName" />
		<module name="TypeName" />

		<!-- Regexp -->
		<module name="RegexpSinglelineJava">
			<property name="id" value="XLineTrailingSpaces" />
			<property name="format" value="\s+$" />
			<property name="message" value="Line has trailing spaces." />
		</module>
		<module name="RegexpSinglelineJava">
			<property name="id" value="XNonNullByDefaultAnnotation" />
			<property name="format" value="@\s*(de\s*\.\s*larssh\s*\.\s*utils\s*\.\s*annotations\s*\.\s*)?NonNullByDefault(\P{javaJavaIdentifierPart}|$)" />
			<property name="message" value="Package is not annotated with @NonNullByDefault. Package definitions inside package-info.java files shall be annotated with @NonNullByDefault to avoid default nullness." />
			<property name="minimum" value="1" />
			<property name="maximum" value="1" />
			<property name="ignoreComments" value="true" />
		</module>

		<!-- Size Violations -->
		<module name="AnonInnerLength" />
		<module name="ExecutableStatementCount" />
		<module name="MethodLength" />
		<module name="OuterTypeNumber" />
		<module name="ParameterNumber">
			<property name="ignoreOverriddenMethods" value="true" />
		</module>

		<!-- Whitespace -->
		<module name="EmptyForInitializerPad" />
		<module name="EmptyForIteratorPad" />
		<module name="EmptyLineSeparator">
			<property name="allowNoEmptyLineBetweenFields" value="true" />
			<property name="allowMultipleEmptyLines" value="false" />
			<property name="allowMultipleEmptyLinesInsideClassMembers" value="false" />
			<property name="tokens" value="IMPORT, STATIC_IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF, STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF" />
		</module>
		<module name="GenericWhitespace" />
		<module name="MethodParamPad" />
		<module name="NoLineWrap" />
		<module name="NoWhitespaceAfter">
			<property name="tokens" value="AT, INC, DEC, UNARY_MINUS, UNARY_PLUS, BNOT, LNOT, DOT, ARRAY_DECLARATOR, INDEX_OP, METHOD_REF" />
		</module>
		<module name="NoWhitespaceBefore">
			<property name="tokens" value="COMMA, SEMI, POST_INC, POST_DEC, GENERIC_END, ELLIPSIS, LABELED_STAT" />
		</module>
		<module name="OperatorWrap">
			<property name="option" value="nl" />
			<property name="tokens" value="QUESTION, COLON, EQUAL, NOT_EQUAL, DIV, PLUS, MINUS, STAR, MOD, SR, BSR, GE, GT, SL, LE, LT, BXOR, BOR, LOR, BAND, LAND, LITERAL_INSTANCEOF, TYPE_EXTENSION_AND, ASSIGN, DIV_ASSIGN, PLUS_ASSIGN, MINUS_ASSIGN, STAR_ASSIGN, MOD_ASSIGN, SR_ASSIGN, BSR_ASSIGN, SL_ASSIGN, BXOR_ASSIGN, BOR_ASSIGN, BAND_ASSIGN, METHOD_REF" />
		</module>
		<module name="ParenPad" />
		<module name="SeparatorWrap">
			<property name="id" value="XSeparatorWrapEndOfLine" />
			<property name="option" value="eol" />
			<property name="tokens" value="COMMA, ELLIPSIS, SEMI" />
		</module>
		<module name="SeparatorWrap">
			<property name="id" value="XSeparatorWrapNextLine" />
			<property name="option" value="nl" />
			<property name="tokens" value="AT, DOT" />
		</module>
		<module name="SingleSpaceSeparator">
			<property name="validateComments" value="true" />
		</module>
		<module name="TypecastParenPad" />
		<module name="WhitespaceAfter" />
		<module name="WhitespaceAround">
			<property name="allowEmptyConstructors" value="true" />
			<property name="ignoreEnhancedForColon" value="false" />
		</module>
	</module>
</module>]]></echo>

								<!-- formatter.xml -->
								<echo level="info" message="Update formatter.xml" />
								<echoxml file="${project.build.directory}/formatter.xml">
									<profiles version="21">
										<profile kind="CodeFormatterProfile" name="de.lars-sh" version="21">
											<setting id="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647" />
											<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_enum_constant" value="49" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field" value="49" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable" value="49" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method" value="49" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package" value="49" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type" value="49" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_assertion_message" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="49" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_record_components" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="81" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_annotations" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_constructor" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2" />
											<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2" />
											<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off" />
											<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on" />
											<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_not_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120" />
											<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab" />
											<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4" />
											<setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true" />
										</profile>
									</profiles>
								</echoxml>

								<!-- mvn-suppressions-parent.sh -->
								<echo level="info" message="Create mvn-suppressions-parent.sh" />
								<echo file="${project.build.directory}/mvn-suppressions-parent.sh"><![CDATA[# User Defined Suppressions
function suppressUserDefined() {
	if [ -f ./mvn-suppressions.sh ]; then
		cat < /dev/stdin \
		| ./mvn-suppressions.sh
	else
		cat < /dev/stdin
	fi
}

# PMD: The Maven Plugin tries to perform Java type resolution on POM typed projects.
function suppressPmdWarnings() {
	cat < /dev/stdin \
	| grep --invert-match --perl-regexp "^\\[WARNING\\] The project parent does not seem to be compiled\\. PMD results might be inaccurate\\.$" \
	| grep --invert-match --perl-regexp "^\\[WARNING\\] Auxclasspath entry .*[/\\\\]parent[/\\\\]target[/\\\\]classes doesn't exist, ignoring it$"
}

# JDK8: Checksums of github repositories cannot be validated successfully from time to time.
function suppressJdk8Warnings() {
	if [ "${JDK_VERSION}" -eq 8 ]; then
		cat < /dev/stdin \
		| grep --invert-match --perl-regexp "^\\[WARNING\\] Checksum validation failed, expected [a-z0-9]+ but is [a-z0-9]+ from github for https://maven.pkg.github.com/.+/maven-metadata.xml$"
	else
		cat < /dev/stdin
	fi
}

# JDK14 to JDK16: The JavaDoc creation logs errors about missing "javadoc-bundle-option" folders.
function suppressJdk14To16Warnings() {
	if [ "${JDK_VERSION}" -ge 14 ] && [ "${JDK_VERSION}" -le 16 ]; then
		cat < /dev/stdin \
		| grep --invert-match --perl-regexp "^\\[ERROR\\] Error fetching link: .*[/\\\\]target[/\\\\]javadoc-bundle-options\\. Ignored it\\.$"
	else
		cat < /dev/stdin
	fi
}

JDK_VERSION=`echo "$1" | grep --only-matching --perl-regexp "^(1\\\\.)?\\\\K\\\\d+$"`
if [ -z "${JDK_VERSION}" ]; then
	echo "[ERROR] The given JDK version is empty. Given value: \"$1\"" >&2
	false
else
	cat < /dev/stdin \
	| suppressUserDefined \
	| suppressPmdWarnings \
	| suppressJdk8Warnings \
	| suppressJdk14To16Warnings
fi
]]></echo>

								<!-- pmd-ruleset.xml -->
								<echo level="info" message="Update pmd-ruleset.xml" />
								<echoxml file="${project.build.directory}/pmd-ruleset.xml">
									<ruleset name="de.lars-sh">
										<description></description>

										<rule ref="category/java/bestpractices.xml">
											<!-- See separate rule with different properties -->
											<exclude name="AvoidReassigningLoopVariables" />
											<exclude name="OneDeclarationPerLine" />
											<exclude name="UnusedAssignment" />

											<!-- Bad code style for non-null code -->
											<exclude name="LiteralsFirstInComparisons" />

											<!-- Simplify JUnit usage -->
											<exclude name="JUnitAssertionsShouldIncludeMessage" />
											<exclude name="JUnitTestContainsTooManyAsserts" />
											<exclude name="JUnitTestsShouldIncludeAssert" />
										</rule>

										<rule ref="category/java/bestpractices.xml/AvoidReassigningLoopVariables">
											<properties>
												<property name="foreachReassign" value="firstOnly" />
												<property name="forReassign" value="skip" />
											</properties>
										</rule>

										<!-- Activate strict mode -->
										<rule ref="category/java/bestpractices.xml/OneDeclarationPerLine">
											<properties>
												<property name="strictMode" value="true" />
											</properties>
										</rule>

										<!-- Check for unused prefix increment -->
										<rule ref="category/java/bestpractices.xml/UnusedAssignment">
											<properties>
												<property name="checkUnusedPrefixIncrement" value="true" />
											</properties>
										</rule>

										<rule ref="category/java/codestyle.xml">
											<exclude name="TooManyStaticImports" />

											<!-- Deprecated -->
											<exclude name="AbstractNaming" />
											<exclude name="AvoidFinalLocalVariable" />
											<exclude name="AvoidPrefixingMethodParameters" />
											<exclude name="ForLoopsMustUseBraces" />
											<exclude name="IfElseStmtsMustUseBraces" />
											<exclude name="IfStmtsMustUseBraces" />
											<exclude name="MIsLeadingVariableName" />
											<exclude name="SuspiciousConstantFieldName" />
											<exclude name="VariableNamingConventions" />
											<exclude name="WhileLoopsMustUseBraces" />

											<!-- See separate rule with different properties -->
											<exclude name="ClassNamingConventions" />
											<exclude name="CommentDefaultAccessModifier" />
											<exclude name="LinguisticNaming" />

											<!-- Better document why a constructor is empty than writing "super()" -->
											<exclude name="CallSuperInConstructor" />

											<!-- Requires Google Guava -->
											<exclude name="DefaultPackage" />

											<!-- Quite a few false positives when using Lombok -->
											<exclude name="FieldDeclarationsShouldBeAtStartOfClass" />
											<exclude name="UseUnderscoresInNumericLiterals" />

											<!-- Better use long variable names than abbreviations -->
											<exclude name="LongVariable" />

											<!-- Better use long variable names than abbreviations -->
											<exclude name="OnlyOneReturn" />

											<!-- Better use long variable names than abbreviations -->
											<exclude name="UnnecessaryConstructor" />
										</rule>

										<!-- Allow utility class names ending with character 's' -->
										<rule ref="category/java/codestyle.xml/ClassNamingConventions">
											<properties>
												<property name="utilityClassPattern" value="[A-Z][a-zA-Z0-9]+(s|Helper|Utils?)" />
											</properties>
										</rule>

										<!-- Ignore annotation de.larssh.utils.annotations.PackagePrivate -->
										<rule ref="category/java/codestyle.xml/CommentDefaultAccessModifier">
											<properties>
												<property name="ignoredAnnotations" value="com.google.common.annotations.VisibleForTesting|android.support.annotation.VisibleForTesting|de.larssh.utils.annotations.PackagePrivate" />
											</properties>
										</rule>

										<!-- Check transform methods -->
										<rule ref="category/java/codestyle.xml/LinguisticNaming">
											<properties>
												<property name="checkTransformMethods" value="true" />
											</properties>
										</rule>

										<rule ref="category/java/design.xml">
											<exclude name="LawOfDemeter" />
											<exclude name="LoosePackageCoupling" />
											<exclude name="NcssConstructorCount" />
											<exclude name="NcssMethodCount" />
											<exclude name="NcssTypeCount" />
											<exclude name="StdCyclomaticComplexity" />
											<exclude name="TooManyMethods" />
										</rule>

										<rule ref="category/java/documentation.xml">
											<!-- Do not restrict commenting -->
											<exclude name="CommentSize" />
										</rule>

										<rule ref="category/java/errorprone.xml">
											<!-- Deprecated -->
											<exclude name="LoggerIsNotStaticFinal" />

											<!-- Avoid using serialVersionUID as of https://github.com/rzwitserloot/lombok/wiki/WHY-NOT:-serialVersionUID -->
											<exclude name="BeanMembersShouldSerialize" />
											<exclude name="MissingSerialVersionUID" />

											<!-- See separate rule with different properties -->
											<exclude name="AvoidDuplicateLiterals" />
											<exclude name="AvoidLiteralsInIfCondition" />
											<exclude name="CloseResource" />
										</rule>

										<!-- Ignore annotations -->
										<rule ref="category/java/errorprone.xml/AvoidDuplicateLiterals">
											<properties>
												<property name="skipAnnotations" value="true" />
											</properties>
										</rule>

										<!-- Ignore additional magic numbers -->
										<rule ref="category/java/errorprone.xml/AvoidLiteralsInIfCondition">
											<properties>
												<property name="ignoreMagicNumbers" value="-1, 0, 1, 2" />
											</properties>
										</rule>

										<!-- Avoid calling close outside of finally blocks -->
										<rule ref="category/java/errorprone.xml/CloseResource">
											<properties>
												<property name="closeNotInFinally" value="true" />
											</properties>
										</rule>

										<rule ref="category/java/multithreading.xml">
											<!-- Deprecated -->
											<exclude name="UnsynchronizedStaticDateFormatter" />

											<!-- No need to avoid volatile if you know what you are doing -->
											<exclude name="AvoidUsingVolatile" />

											<!-- Quite a few false positives -->
											<exclude name="UseConcurrentHashMap" />
										</rule>

										<rule ref="category/java/performance.xml">
											<exclude name="ConsecutiveAppendsShouldReuse" />

											<!-- Bad code style: Do not depend on compiler defaults -->
											<exclude name="RedundantFieldInitializer" />
										</rule>

										<rule ref="category/java/security.xml" />
									</ruleset>
								</echoxml>

								<!-- spotbugs-excludes-global.xml -->
								<echo level="info" message="Update spotbugs-excludes-global.xml" />
								<echoxml file="${project.build.directory}/spotbugs-excludes-global.xml">
									<FindBugsFilter>
										<!-- Avoid using serialVersionUID as of https://github.com/rzwitserloot/lombok/wiki/WHY-NOT:-serialVersionUID -->
										<Match>
											<Bug pattern="IMC_IMMATURE_CLASS_BAD_SERIALVERSIONUID" />
										</Match>
										<Match>
											<Bug pattern="SE_NO_SERIALVERSIONID" />
										</Match>
									</FindBugsFilter>
								</echoxml>

								<!-- versions-ruleset.xml -->
								<echo level="info" message="Update versions-ruleset.xml" />
								<echoxml file="${project.build.directory}/versions-ruleset.xml">
									<ruleset comparisonMethod="maven">
										<ignoreVersions>
											<!-- Preview -->
											<ignoreVersion type="regex">^(?i)[\d.]+-?(alpha|b|beta|cr|m|milestone|nightly|p|pr|preview|rc|test)([^a-z].*)?$</ignoreVersion>

											<!-- Date-based versions from the 2000s -->
											<ignoreVersion type="regex">^200\d{4}.*$</ignoreVersion>

											<!-- Vendor specific -->
											<ignoreVersion type="regex">^(?i).*[^a-z](android|atlassian|jboss|jenkins|redhat)([^a-z].*)?$</ignoreVersion>

											<!-- Example: commons-logging:commons-logging:99.0-does-not-exist -->
											<ignoreVersion type="regex">^(?i).*[^a-z]does-not-exist([^a-z].*)?$</ignoreVersion>

											<!-- Example: org.jvnet.jaxb2_commons:jaxb2-basics:1.11.1-PUBLISHED-BY-MISTAKE -->
											<ignoreVersion type="regex">^(?i).*[^a-z]published-by-mistake([^a-z].*)?$</ignoreVersion>
										</ignoreVersions>
									</ruleset>
								</echoxml>
							</target>
						</configuration>
					</execution>

					<!-- apidocs-package-list -->
					<!-- Avoid warnings and errors about missing apidocs directories when there are no sources to be documented. -->
					<execution>
						<id>apidocs-package-list</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target unless="${maven.javadoc.skip}">
								<touch file="${project.build.directory}/apidocs/package-list" mkdirs="true" />
								<touch file="${project.build.directory}/testapidocs/package-list" mkdirs="true" />
							</target>
						</configuration>
					</execution>

					<!-- CHANGELOG.md -->
					<execution>
						<id>changelog-md</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-changelog-md}">
								<echo level="info" message="Create CHANGELOG.md" />
								<echo file="${project.basedir}/CHANGELOG.md"><![CDATA[# Changelog
All notable changes to this project will be documented in this file.

<a name="version"></a>

## [Version](Link) (YYYY-mm-dd)

Download at TODO

### Added
*

### Changed
*

### Deprecated
*

### Removed
*

### Fixed
*

### Security
*

### Dependencies
*
]]></echo>
							</target>
						</configuration>
					</execution>

					<!-- .github/dependabot.yml  -->
					<execution>
						<id>dependabot</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-dependabot-yml}">
								<mkdir dir="${project.basedir}/.github" />
								<echo level="info" message="Update .github/dependabot.yml" />
								<echo file="${project.basedir}/.github/dependabot.yml"><![CDATA[version: 2
updates:
  - package-ecosystem: maven
    directory: /
    schedule:
      interval: daily
]]></echo>
							</target>
						</configuration>
					</execution>

					<!-- .github/workflows/push-and-pull_request.yml -->
					<execution>
						<id>github-workflow</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-github-workflow-yml}">
								<echo level="info" message="Update .github/workflows/push-and-pull_request.yml" />
								<echo file="${project.basedir}/.github/workflows/push-and-pull_request.yml"><![CDATA[name: Build on Push and Pull Request
on:
  - push
  - pull_request

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        # Supported versions as of https://en.wikipedia.org/wiki/Java_version_history
        java-version:
          - 1.8
          - 11
          - 16

    name: Build with JDK ${{ matrix.java-version }}
    steps:
      - name: Cache Dependencies
        uses: actions/cache@v2.1.4
        with:
          key: maven-dependencies
          path: ~/.m2/repository
      - name: Check out
        uses: actions/checkout@v2
      - name: Set up JDK ${{ matrix.java-version }}
        uses: actions/setup-java@v1
        with:
          java-version: ${{ matrix.java-version }}
          gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
          gpg-passphrase: GPG_PASSPHRASE
      - name: Clean, Build, Install
        run: |
          set -o errexit -o pipefail
          mvn clean install --activate-profiles dirty,dirty-package --update-snapshots --batch-mode --show-version 2>&1 | tee mvnout.txt
          set +o errexit +o pipefail
      - id: version
        name: Evaluate Version
        run: |
          project_version=`mvn help:evaluate --quiet --define expression=project.version --define forceStdout`
          echo "Version: ${project_version}"
          
          snapshot_version=`echo "${project_version}" | grep --perl-regexp --regexp="-SNAPSHOT$"`
          if [ -n "${snapshot_version}" ]; then
            echo "Identified as snapshot version"
            echo "::set-output name=is-snapshot::true"
          else
            echo "Identified as release version"
            echo "::set-output name=is-snapshot::false"
          fi
      - name: Test, Verify, Deploy
        if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && matrix.java-version == '1.8' && steps.version.outputs.is-snapshot == 'true' }}
        run: |
          set -o errexit -o pipefail
          mvn deploy site --batch-mode --show-version 2>&1 | tee --append mvnout.txt
          set +o errexit +o pipefail
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
      - name: Test, Verify
        if: ${{ github.event_name != 'push' || github.ref != 'refs/heads/master' || matrix.java-version != '1.8' || steps.version.outputs.is-snapshot != 'true' }}
        run: |
          set -o errexit -o pipefail
          mvn verify site --define gpg.skip=true --batch-mode --show-version 2>&1 | tee --append mvnout.txt
          set +o errexit +o pipefail
      - name: Check Output
        shell: bash {0}
        run: |
          chmod +x ./target/mvn-suppressions-parent.sh
          mvnout=`cat mvnout.txt | grep --perl-regexp "(?i)\\[(ERR|WARN)" | ./target/mvn-suppressions-parent.sh "$JDK_VERSION"`
          
          if [ -n "${mvnout}" ]; then
            echo "[ERROR] The Maven output contains the following unknown warnings and errors:" >&2
            echo "${mvnout}" >&2
            false
          else
            echo "[INFO] No unknown warnings and errors found."
            echo "${mvnout}" >&2
          fi
        env:
          JDK_VERSION: ${{ matrix.java-version }}
      - name: Prepare Site
        if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && matrix.java-version == '1.8' && steps.version.outputs.is-snapshot == 'true' }}
        run: |
          rm ./target/site/index.html
          cp ./CHANGELOG.md ./target/site/CHANGELOG.md
          cp ./README.md ./target/site/README.md
      - name: Deploy Site
        if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && matrix.java-version == '1.8' && steps.version.outputs.is-snapshot == 'true' }}
        uses: peaceiris/actions-gh-pages@v3.8.0
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./target/site
          enable_jekyll: true
]]></echo>
							</target>
						</configuration>
					</execution>

					<!-- .github/workflows/release.yml -->
					<execution>
						<id>github-release</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-github-release-yml}">
								<echo level="info" message="Update .github/workflows/release.yml" />
								<echo file="${project.basedir}/.github/workflows/release.yml"><![CDATA[name: Deploy on Release
on:
  release:
    types:
      - created

jobs:
  release:
    name: Release
    runs-on: ubuntu-latest
    steps:
      - name: Check out
        uses: actions/checkout@v2
      - name: Set up JDK and Maven Central Repository
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
          gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
          gpg-passphrase: GPG_PASSPHRASE
          server-id: ossrh
          server-username: OSSRH_USERNAME
          server-password: OSSRH_TOKEN
      - name: Deploy
        run: mvn clean deploy --batch-mode --show-version
        env:
          GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
          OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
          OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }}
]]></echo>
							</target>
						</configuration>
					</execution>

					<!-- .gitignore -->
					<execution>
						<id>gitignore</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-gitignore}">
								<echo level="info" message="Update .gitignore" />
								<echo file="${project.basedir}/.gitignore"><![CDATA[/.idea/
/.settings/
/src/main/lombok/lombok.config
/src/test/lombok/lombok.config
/src/lombok.config
/target/
/.checkstyle
/.classpath
/.project
/*.iml
]]></echo>
							</target>
						</configuration>
					</execution>

					<!-- lombok.config -->
					<execution>
						<id>lombok-config</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-lombok-config}">
								<mkdir dir="${project.basedir}/src/main/lombok" />
								<mkdir dir="${project.basedir}/src/test/lombok" />
								<propertyfile file="${project.basedir}/src/lombok.config">
									<entry key="config.stopBubbling" value="true" />
									<entry key="lombok.accessors.flagUsage" value="error" />
									<entry key="lombok.anyConstructor.flagUsage" value="error" />
									<entry key="lombok.builder.flagUsage" value="error" />
									<entry key="lombok.cleanUp.flagUsage" value="error" />
									<entry key="lombok.data.flagUsage" value="error" />
									<entry key="lombok.delegate.flagUsage" value="error" />
									<entry key="lombok.equalsAndHashCode.flagUsage" value="error" />
									<entry key="lombok.experimental.flagUsage" value="error" />
									<entry key="lombok.extensionMethod.flagUsage" value="error" />
									<entry key="lombok.extern.findbugs.addSuppressFBWarnings" value="true" />
									<entry key="lombok.fieldDefaults.flagUsage" value="error" />
									<entry key="lombok.fieldNameConstants.flagUsage" value="error" />
									<entry key="lombok.getter.flagUsage" value="error" />
									<entry key="lombok.getter.lazy.flagUsage" value="error" />
									<entry key="lombok.helper.flagUsage" value="error" />
									<entry key="lombok.log.apacheCommons.flagUsage" value="error" />
									<entry key="lombok.log.custom.flagUsage" value="error" />
									<entry key="lombok.log.flagUsage" value="error" />
									<entry key="lombok.log.flogger.flagUsage" value="error" />
									<entry key="lombok.log.javaUtilLogging.flagUsage" value="error" />
									<entry key="lombok.log.jbosslog.flagUsage" value="error" />
									<entry key="lombok.log.log4j.flagUsage" value="error" />
									<entry key="lombok.log.log4j2.flagUsage" value="error" />
									<entry key="lombok.log.slf4j.flagUsage" value="error" />
									<entry key="lombok.log.xslf4j.flagUsage" value="error" />
									<entry key="lombok.nonNull.flagUsage" value="error" />
									<entry key="lombok.onX.flagUsage" value="error" />
									<entry key="lombok.setter.flagUsage" value="error" />
									<entry key="lombok.sneakyThrows.flagUsage" value="error" />
									<entry key="lombok.synchronized.flagUsage" value="error" />
									<entry key="lombok.toString.flagUsage" value="error" />
									<entry key="lombok.utilityClass.flagUsage" value="error" />
									<entry key="lombok.val.flagUsage" value="error" />
									<entry key="lombok.value.flagUsage" value="error" />
									<entry key="lombok.var.flagUsage" value="error" />
									<entry key="lombok.with.flagUsage" value="error" />
								</propertyfile>
								<propertyfile file="${project.basedir}/src/main/lombok/lombok.config">
									<entry key="config.stopBubbling" value="true" />
									<entry key="lombok.addLombokGeneratedAnnotation" value="true" />
									<entry key="lombok.addNullAnnotations" value="findbugs" />
									<entry key="lombok.builder.flagUsage" value="error" />
									<entry key="lombok.cleanUp.flagUsage" value="error" />
									<entry key="lombok.data.flagUsage" value="error" />
									<entry key="lombok.equalsAndHashCode.callSuper" value="warn" />
									<entry key="lombok.extern.findbugs.addSuppressFBWarnings" value="true" />
									<entry key="lombok.fieldDefaults.defaultFinal" value="true" />
									<entry key="lombok.fieldDefaults.defaultPrivate" value="true" />
									<entry key="lombok.getter.lazy.flagUsage" value="error" />
									<entry key="lombok.nonNull.flagUsage" value="error" />
									<entry key="lombok.sneakyThrows.flagUsage" value="error" />
									<entry key="lombok.toString.callSuper" value="warn" />
									<entry key="lombok.val.flagUsage" value="error" />
									<entry key="lombok.value.flagUsage" value="error" />
									<entry key="lombok.var.flagUsage" value="error" />
								</propertyfile>
								<propertyfile file="${project.basedir}/src/test/lombok/lombok.config">
									<entry key="config.stopBubbling" value="true" />
									<entry key="lombok.addLombokGeneratedAnnotation" value="true" />
									<entry key="lombok.addNullAnnotations" value="findbugs" />
									<entry key="lombok.builder.flagUsage" value="error" />
									<entry key="lombok.cleanUp.flagUsage" value="error" />
									<entry key="lombok.data.flagUsage" value="error" />
									<entry key="lombok.equalsAndHashCode.callSuper" value="warn" />
									<entry key="lombok.extern.findbugs.addSuppressFBWarnings" value="true" />
									<entry key="lombok.fieldDefaults.defaultFinal" value="true" />
									<entry key="lombok.fieldDefaults.defaultPrivate" value="true" />
									<entry key="lombok.getter.lazy.flagUsage" value="error" />
									<entry key="lombok.nonNull.flagUsage" value="error" />
									<entry key="lombok.sneakyThrows.flagUsage" value="error" />
									<entry key="lombok.toString.callSuper" value="warn" />
									<entry key="lombok.val.flagUsage" value="error" />
									<entry key="lombok.value.flagUsage" value="error" />
									<entry key="lombok.var.flagUsage" value="error" />
								</propertyfile>
							</target>
						</configuration>
					</execution>

					<!-- README.md -->
					<execution>
						<id>readme-md</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-readme-md}">
								<echo level="info" message="Create README.md" />
								<echo file="${project.basedir}/README.md"><![CDATA[# ${project.name}
${project.description}

## Getting started
TODO: Easy to understand usage example
]]></echo>
							</target>
						</configuration>
					</execution>

					<!-- Source Directories -->
					<execution>
						<id>source-directories</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-source-directories}">
								<mkdir dir="${project.basedir}/src/main/${parent-pom.default-sources-folder}" />
								<mkdir dir="${project.basedir}/src/main/resources" />
								<mkdir dir="${project.basedir}/src/test/${parent-pom.default-sources-folder}" />
								<mkdir dir="${project.basedir}/src/test/resources" />
							</target>
						</configuration>
					</execution>

					<!-- .travis.yml -->
					<execution>
						<id>travis-ci</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-travis-yml}">
								<echo level="info" message="Update .travis.yml" />
								<echo file="${project.basedir}/.travis.yml"><![CDATA[language: java
jdk:
  # Supported versions as of https://en.wikipedia.org/wiki/Java_version_history
  - openjdk8
  - openjdk11
  - openjdk16
cache:
  directories:
    - $HOME/.m2/repository

install: |
  set -o errexit -o pipefail
  mvn clean install --activate-profiles dirty,dirty-package --update-snapshots --batch-mode --show-version 2>&1 | tee mvnout.txt
script: |
  set -o errexit -o pipefail
  mvn verify site --define gpg.skip=true --batch-mode --show-version 2>&1 | tee --append mvnout.txt
  set +o errexit +o pipefail
  
  echo ""
  echo "[INFO] Checking for Maven warnings and errors..."
  chmod +x ./target/mvn-suppressions-parent.sh
  mvnout=`cat mvnout.txt | grep --perl-regexp "(?i)\\[(ERR|WARN)" | ./target/mvn-suppressions-parent.sh "${TRAVIS_JDK_VERSION}"`
  
  if [ -n "${mvnout}" ]; then
    echo "[ERROR] The Maven output contains the following unknown warnings and errors:" >&2
    echo "${mvnout}" >&2
    # Not using "exit 1" to avoid truncated output as described at https://travis-ci.community/t/7159
    false
  else
    echo "[INFO] No unknown warnings and errors found."
    echo "${mvnout}" >&2
  fi

after_success:
  - rm ./target/site/index.html
  - cp ./CHANGELOG.md ./target/site/CHANGELOG.md
  - cp ./README.md ./target/site/README.md
deploy:
  provider: pages
  local_dir: ./target/site
  edge: true
  on:
    branch: master
    jdk: openjdk8
]]></echo>
							</target>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- Check test code coverage -->
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>prepare-agent</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<execution>
						<id>report</id>
						<goals>
							<goal>report</goal>
						</goals>

						<!-- The "report" goal should be executed before the (optional) "check"
							goal to make sure developers have the report to analyze the check results
							with. By default the "check" goal is executed at the "verify" phase. The
							"post-integration-test" phase is the last phase before that. -->
						<phase>post-integration-test</phase>
					</execution>
				</executions>
			</plugin>

			<!-- Check code style -->
			<plugin>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<executions>
					<execution>
						<phase>process-sources</phase>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Validate source formatting -->
			<plugin>
				<groupId>net.revelc.code.formatter</groupId>
				<artifactId>formatter-maven-plugin</artifactId>
				<executions>
					<execution>
						<phase>process-sources</phase>
						<goals>
							<goal>validate</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Package test -->
			<plugin>
				<artifactId>maven-jar-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Package dependencies (optional) -->
			<plugin>
				<artifactId>maven-shade-plugin</artifactId>
				<executions>
					<execution>
						<phase>${shade.packageDependenciesPhase}</phase>
						<goals>
							<goal>shade</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Package sources -->
			<plugin>
				<artifactId>maven-source-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>jar-no-fork</goal>
							<goal>test-jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Package documentation -->
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>jar</goal>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Copy Paste Detection -->
			<plugin>
				<artifactId>maven-pmd-plugin</artifactId>
				<executions>
					<execution>
						<!-- The following ID must not be changed as "default-cpd-check" uses it. -->
						<id>cpd</id>
						<goals>
							<goal>cpd</goal>
						</goals>
						<phase>verify</phase>
						<configuration>
							<aggregate>${cpd.aggregate}</aggregate>
							<excludeFromFailureFile>${cpd.excludeFromFailureFile}</excludeFromFailureFile>
						</configuration>
					</execution>
					<execution>
						<id>default-cpd-check</id>
						<goals>
							<goal>cpd-check</goal>
						</goals>
						<configuration>
							<aggregate>${cpd.aggregate}</aggregate>
							<printFailingErrors>${cpd.printFailingErrors}</printFailingErrors>
						</configuration>
					</execution>

					<!-- Analyze Code -->
					<execution>
						<!-- The following ID must not be changed as "default-check" uses it. -->
						<id>pmd</id>
						<goals>
							<goal>pmd</goal>
						</goals>
						<phase>verify</phase>
						<configuration>
							<aggregate>${pmd.aggregate}</aggregate>
							<excludeFromFailureFile>${pmd-only.excludeFromFailureFile}</excludeFromFailureFile>
							<rulesets>
								<ruleset>${pmd-only.ruleset}</ruleset>
							</rulesets>
						</configuration>
					</execution>
					<execution>
						<id>default-check</id>
						<goals>
							<goal>check</goal>
						</goals>
						<configuration>
							<aggregate>${pmd.aggregate}</aggregate>
							<printFailingErrors>${pmd-only.printFailingErrors}</printFailingErrors>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- SpotBugs -->
			<plugin>
				<groupId>com.github.spotbugs</groupId>
				<artifactId>spotbugs-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Check for un/used dependencies -->
			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>analyze-only</goal>
						</goals>
						<configuration>
							<failOnWarning>${dependency.failOnWarning}</failOnWarning>
							<ignoredUnusedDeclaredDependencies>
								<!-- Compile -->
								<ignoredUnusedDeclaredDependency>de.lars-sh:utils:jar:${parent.version}</ignoredUnusedDeclaredDependency>

								<!-- Provided -->
								<ignoredUnusedDeclaredDependency>com.github.spotbugs:spotbugs-annotations:jar:${spotbugs-annotations.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>de.lars-sh:lombok-annotations:jar:${lombok-annotations.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>de.lars-sh:utils-annotations:jar:${parent.version}</ignoredUnusedDeclaredDependency>

								<!-- Test -->
								<ignoredUnusedDeclaredDependency>de.lars-sh:utils-test:jar:${parent.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>org.assertj:assertj-core:jar:${assertj-core.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>org.jooq:joor-java-8:jar:${joor.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>org.junit.jupiter:junit-jupiter-api:jar:${junit-jupiter-api.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>org.junit.jupiter:junit-jupiter-engine:jar:${junit-jupiter-engine.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>org.mockito:mockito-core:jar:${mockito.version}</ignoredUnusedDeclaredDependency>
							</ignoredUnusedDeclaredDependencies>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- Sign packages -->
			<plugin>
				<artifactId>maven-gpg-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>sign</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Deployment -->
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<extensions>true</extensions>
			</plugin>
		</plugins>
	</build>

	<reporting>
		<plugins>
			<!-- General -->
			<plugin>
				<artifactId>maven-plugin-plugin</artifactId>
			</plugin>

			<!-- Sources -->
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
			</plugin>
			<plugin>
				<artifactId>maven-jxr-plugin</artifactId>
			</plugin>

			<!-- Verification -->
			<plugin>
				<artifactId>maven-checkstyle-plugin</artifactId>
			</plugin>
			<plugin>
				<artifactId>maven-pmd-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.github.spotbugs</groupId>
				<artifactId>spotbugs-maven-plugin</artifactId>
			</plugin>

			<!-- Tests -->
			<plugin>
				<artifactId>maven-surefire-report-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
			</plugin>

			<!-- Dependencies -->
			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>versions-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</reporting>

	<profiles>
		<!-- Skip code checks and tests -->
		<profile>
			<id>dirty</id>
			<properties>
				<archetype.test.skip>true</archetype.test.skip>
				<checkstyle.skip>true</checkstyle.skip>
				<cpd.skip>true</cpd.skip>
				<formatter.skip>true</formatter.skip>
				<jacoco.skip>true</jacoco.skip>
				<mdep.analyze.skip>true</mdep.analyze.skip>
				<pmd.skip>true</pmd.skip>
				<skipTests>true</skipTests>
				<spotbugs.skip>true</spotbugs.skip>
				<tidy.skip>true</tidy.skip>
			</properties>
		</profile>

		<!-- Skip the creation of optional packages -->
		<profile>
			<id>dirty-package</id>
			<properties>
				<gpg.skip>true</gpg.skip>
				<maven.javadoc.skip>true</maven.javadoc.skip>
				<maven.source.skip>true</maven.source.skip>
			</properties>
		</profile>

		<!-- JDK 9 and later: Do not show warnings as the bootstrap class path
			does not match the current sources version. -->
		<profile>
			<id>fix-jdk9-and-later</id>
			<activation>
				<jdk>[9,)</jdk>
			</activation>
			<properties>
				<maven.compiler.showDeprecation>false</maven.compiler.showDeprecation>
				<maven.compiler.showWarnings>false</maven.compiler.showWarnings>
			</properties>
		</profile>

		<!-- JDK 10, JavaDoc: You have not specified the version of HTML to use.
			The default is currently HTML 4.01, but this will change to HTML5
			in a future release. To suppress this warning, please specify the
			version of HTML used in your documentation comments and to be
			generated by this doclet, using the -html4 or -html5 options -->
		<profile>
			<id>fix-jdk10</id>
			<activation>
				<jdk>10</jdk>
			</activation>
			<properties>
				<additionalJOption>-html5</additionalJOption>
			</properties>
		</profile>

		<!-- JDK 11, Versions Maven Plugin: Repository metadata for: 'artifact [...]' could not
			be retrieved from repository: [...] due to an error: Transfer failed for [...] -->
		<profile>
			<id>fix-jdk11</id>
			<activation>
				<jdk>11</jdk>
			</activation>
			<properties>
				<versions.skip>true</versions.skip>
			</properties>
		</profile>

		<!-- JDK 11 and later: Suppress some SpotBugs null checks as they might fail when using try-with-resource statements as of https://github.com/spotbugs/spotbugs/issues/259 and https://github.com/spotbugs/spotbugs/issues/756 -->
		<profile>
			<id>fix-jdk11-and-later</id>
			<activation>
				<jdk>[11,)</jdk>
			</activation>
			<properties>
				<spotbugs.excludeFilterFile.fix-jdk11-and-later>${project.build.directory}/spotbugs-excludes-fix-jdk11-and-later.xml,</spotbugs.excludeFilterFile.fix-jdk11-and-later>
			</properties>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<executions>
							<execution>
								<id>fix-jdk11-and-later</id>
								<phase>initialize</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<target>
										<echo level="info" message="Update spotbugs-excludes-fix-jdk11-and-later.xml" />
										<echoxml file="${project.build.directory}/spotbugs-excludes-fix-jdk11-and-later.xml">
											<FindBugsFilter>
												<Match>
													<Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />
												</Match>
											</FindBugsFilter>
										</echoxml>
									</target>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- JDK 15 and 16, Maven Javadoc Plugin: Logs warnings on missing JavaDoc comments inside generated code -->
		<profile>
			<id>fix-jdk15-and-16</id>
			<activation>
				<jdk>[15,16]</jdk>
			</activation>
			<properties>
				<doclint>all,-missing</doclint>
			</properties>
		</profile>

		<!-- Enable or disable the use of custom checkstyle rules -->
		<profile>
			<id>checkstyle-rules-exists</id>
			<activation>
				<file>
					<exists>checkstyle-rules.xml</exists>
				</file>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>properties-maven-plugin</artifactId>
						<executions>
							<execution>
								<goals>
									<goal>set-system-properties</goal>
								</goals>
								<configuration>
									<properties>
										<property>
											<name>checkstyle.enableExternalDtdLoad</name>
											<value>true</value>
										</property>
									</properties>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>checkstyle-rules-missing</id>
			<activation>
				<file>
					<missing>checkstyle-rules.xml</missing>
				</file>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>properties-maven-plugin</artifactId>
						<executions>
							<execution>
								<goals>
									<goal>set-system-properties</goal>
								</goals>
								<configuration>
									<properties>
										<property>
											<name>checkstyle.enableExternalDtdLoad</name>
											<value>false</value>
										</property>
									</properties>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- Eclipse only: Add lombok sources to class path -->
		<profile>
			<id>eclipse-only</id>
			<activation>
				<property>
					<name>m2e.version</name>
				</property>
			</activation>
			<properties>
				<!-- Eclipse 2019-03 (version 4.11) and lower fail on newer Maven JAR Plugin versions. -->
				<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
			</properties>
			<dependencies>
				<!-- Eclipse Neon (version 4.6) and lower are missing the JUnit Platform Runner dependency. -->
				<dependency>
					<groupId>org.junit.platform</groupId>
					<artifactId>junit-platform-runner</artifactId>
					<version>1.7.1</version>
					<scope>test</scope>
					<exclusions>
						<exclusion>
							<groupId>junit</groupId>
							<artifactId>junit</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
			</dependencies>
			<build>
				<pluginManagement>
					<plugins>
						<plugin>
							<groupId>org.eclipse.m2e</groupId>
							<artifactId>lifecycle-mapping</artifactId>
							<version>${lifecycle-mapping.version}</version>
							<configuration>
								<lifecycleMappingMetadata>
									<pluginExecutions>
										<!-- Execute AntRun goals on configuration and non-incremental builds -->
										<pluginExecution>
											<pluginExecutionFilter>
												<groupId>org.apache.maven.plugins</groupId>
												<artifactId>maven-antrun-plugin</artifactId>
												<versionRange>${maven-antrun-plugin.version}</versionRange>
												<goals>
													<goal>run</goal>
												</goals>
											</pluginExecutionFilter>
											<action>
												<execute>
													<runOnConfiguration>true</runOnConfiguration>
													<runOnIncremental>false</runOnIncremental>
												</execute>
											</action>
										</pluginExecution>

										<!-- Ignore checkstyle goals -->
										<pluginExecution>
											<pluginExecutionFilter>
												<groupId>org.apache.maven.plugins</groupId>
												<artifactId>maven-checkstyle-plugin</artifactId>
												<versionRange>${maven-checkstyle-plugin.version}</versionRange>
												<goals>
													<goal>check</goal>
												</goals>
											</pluginExecutionFilter>
											<action>
												<ignore />
											</action>
										</pluginExecution>

										<!-- Ignore Maven Plugin plugin goals -->
										<pluginExecution>
											<pluginExecutionFilter>
												<groupId>org.apache.maven.plugins</groupId>
												<artifactId>maven-plugin-plugin</artifactId>
												<versionRange>${maven-plugin-plugin.version}</versionRange>
												<goals>
													<goal>descriptor</goal>
													<goal>helpmojo</goal>
												</goals>
											</pluginExecutionFilter>
											<action>
												<ignore></ignore>
											</action>
										</pluginExecution>
										
										<!-- Execute Properties goals on configuration and non-incremental builds -->
										<pluginExecution>
											<pluginExecutionFilter>										
												<groupId>org.codehaus.mojo</groupId>
												<artifactId>properties-maven-plugin</artifactId>
												<versionRange>${properties-maven-plugin.version}</versionRange>
												<goals>
													<goal>set-system-properties</goal>
												</goals>
											</pluginExecutionFilter>
											<action>
												<execute>
													<runOnConfiguration>true</runOnConfiguration>
													<runOnIncremental>false</runOnIncremental>
												</execute>
											</action>
										</pluginExecution>
										

										<!-- Ignore tidy goals -->
										<pluginExecution>
											<pluginExecutionFilter>
												<groupId>org.codehaus.mojo</groupId>
												<artifactId>tidy-maven-plugin</artifactId>
												<versionRange>${tidy-maven-plugin.version}</versionRange>
												<goals>
													<goal>check</goal>
												</goals>
											</pluginExecutionFilter>
											<action>
												<ignore />
											</action>
										</pluginExecution>

										<!-- Ignore delombok goals -->
										<pluginExecution>
											<pluginExecutionFilter>
												<groupId>org.projectlombok</groupId>
												<artifactId>lombok-maven-plugin</artifactId>
												<versionRange>${lombok-maven-plugin.version}</versionRange>
												<goals>
													<goal>delombok</goal>
													<goal>testDelombok</goal>
												</goals>
											</pluginExecutionFilter>
											<action>
												<ignore />
											</action>
										</pluginExecution>
									</pluginExecutions>
								</lifecycleMappingMetadata>
							</configuration>
						</plugin>
					</plugins>
				</pluginManagement>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>build-helper-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>add-source</id>
								<goals>
									<goal>add-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${project.basedir}/src/main/lombok</source>
									</sources>
								</configuration>
							</execution>
							<execution>
								<id>add-test-source</id>
								<goals>
									<goal>add-test-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${project.basedir}/src/test/lombok</source>
									</sources>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- Delombok: Do not execute the delombok plugin unless a lombok sources folder exists -->
		<profile>
			<id>delombok</id>
			<activation>
				<file>
					<exists>src/main/lombok</exists>
				</file>
			</activation>
			<dependencies>
				<dependency>
					<groupId>de.lars-sh</groupId>
					<artifactId>lombok-annotations</artifactId>
					<version>${lombok-annotations.version}</version>
					<scope>provided</scope>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>org.projectlombok</groupId>
						<artifactId>lombok-maven-plugin</artifactId>
						<executions>
							<execution>
								<goals>
									<goal>delombok</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- Test Delombok: Do not execute the delombok plugin unless a lombok
			test sources folder exists -->
		<profile>
			<id>delombok-test</id>
			<activation>
				<file>
					<exists>src/test/lombok</exists>
				</file>
			</activation>
			<dependencies>
				<dependency>
					<groupId>de.lars-sh</groupId>
					<artifactId>lombok-annotations</artifactId>
					<version>${lombok-annotations.version}</version>
					<scope>provided</scope>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>org.projectlombok</groupId>
						<artifactId>lombok-maven-plugin</artifactId>
						<executions>
							<execution>
								<goals>
									<goal>testDelombok</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- IDEA only: Add lombok library to dependencies and lombok sources to class path -->
		<profile>
			<id>idea-only</id>
			<activation>
				<property>
					<name>idea.maven.embedder.version</name>
				</property>
			</activation>
			<dependencies>
				<dependency>
					<groupId>org.projectlombok</groupId>
					<artifactId>lombok</artifactId>
					<version>${lombok.version}</version>
					<scope>provided</scope>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>build-helper-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>add-source</id>
								<goals>
									<goal>add-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${project.basedir}/src/main/lombok</source>
									</sources>
								</configuration>
							</execution>
							<execution>
								<id>add-test-source</id>
								<goals>
									<goal>add-test-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${project.basedir}/src/test/lombok</source>
									</sources>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- Update eclipse settings -->
		<profile>
			<id>update-eclipse</id>
			<activation>
				<property>
					<name>m2e.version</name>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<executions>
							<execution>
								<id>eclipse-settings</id>
								<phase>initialize</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<target>
										<!-- .settings -->
										<mkdir dir="${project.basedir}/.settings" />

										<!-- .settings/checkstyle.xml -->
										<copy file="${project.build.directory}/checkstyle.xml" tofile="${project.basedir}/.settings/checkstyle.xml" overwrite="true" force="true" />

										<!-- .checkstyle -->
										<echo level="info" message="Update .checkstyle" />
										<echoxml file="${project.basedir}/.checkstyle">
											<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
												<local-check-config name="Checkstyle" location=".settings/checkstyle.xml" type="project" description="">
													<additional-data name="protect-config-file" value="false" />
												</local-check-config>
												<fileset name="main" enabled="true" check-config-name="Checkstyle" local="true">
													<file-match-pattern match-pattern="^src/main/java/" include-pattern="true" />
													<file-match-pattern match-pattern="^src/main/lombok/" include-pattern="true" />
												</fileset>
												<fileset name="test" enabled="true" check-config-name="Checkstyle" local="true">
													<file-match-pattern match-pattern="^src/test/java/" include-pattern="true" />
													<file-match-pattern match-pattern="^src/test/lombok/" include-pattern="true" />
												</fileset>
											</fileset-config>
										</echoxml>

										<!-- .settings/*.properties -->
										<propertyfile file="${project.basedir}/.settings/edu.umd.cs.findbugs.core.prefs">
											<entry key="detector_threshold" value="3" />
											<entry key="effort" value="max" />
											<entry key="filter_settings" value="Low|BAD_PRACTICE,CORRECTNESS,EXPERIMENTAL,I18N,MALICIOUS_CODE,MT_CORRECTNESS,PERFORMANCE,SECURITY,STYLE|false|20" />
											<entry key="filter_settings_neg" value="NOISE|" />
											<entry key="excludefilter0" value="spotbugs-excludes.xml|true" />
											<entry key="excludefilter1" value="target/spotbugs-excludes-global.xml|true" />
											<entry key="excludefilter2" value="target/spotbugs-excludes-fix-jdk11-and-later.xml|true" />
											<entry key="run_at_full_build" value="true" />
										</propertyfile>
										<propertyfile file="${project.basedir}/.settings/org.eclipse.core.resources.prefs">
											<entry key="eclipse.preferences.version" value="1" />
											<entry key="encoding/&lt;project&gt;" value="UTF-8" />
											<entry key="encoding//src/main/java" value="UTF-8" />
											<entry key="encoding//src/main/lombok" value="UTF-8" />
											<entry key="encoding//src/main/resources" value="UTF-8" />
											<entry key="encoding//src/test/java" value="UTF-8" />
											<entry key="encoding//src/test/lombok" value="UTF-8" />
											<entry key="encoding//src/test/resources" value="UTF-8" />
										</propertyfile>
										<propertyfile file="${project.basedir}/.settings/org.eclipse.core.runtime.prefs">
											<entry key="line.separator" value="&#10;" />
										</propertyfile>
										<propertyfile file="${project.basedir}/.settings/org.eclipse.jdt.ui.prefs">
											<entry key="cleanup.add_default_serial_version_id" value="true" />
											<entry key="cleanup.add_generated_serial_version_id" value="false" />
											<entry key="cleanup.add_missing_annotations" value="true" />
											<entry key="cleanup.add_missing_deprecated_annotations" value="true" />
											<entry key="cleanup.add_missing_methods" value="false" />
											<entry key="cleanup.add_missing_nls_tags" value="false" />
											<entry key="cleanup.add_missing_override_annotations" value="true" />
											<entry key="cleanup.add_missing_override_annotations_interface_methods" value="true" />
											<entry key="cleanup.add_serial_version_id" value="false" />
											<entry key="cleanup.always_use_blocks" value="true" />
											<entry key="cleanup.always_use_parentheses_in_expressions" value="false" />
											<entry key="cleanup.always_use_this_for_non_static_field_access" value="false" />
											<entry key="cleanup.always_use_this_for_non_static_method_access" value="false" />
											<entry key="cleanup.arrays_fill" value="true" />
											<entry key="cleanup.bitwise_conditional_expression" value="false" />
											<entry key="cleanup.boolean_literal" value="true" />
											<entry key="cleanup.break_loop" value="true" />
											<entry key="cleanup.collection_cloning" value="true" />
											<entry key="cleanup.comparing_on_criteria" value="true" />
											<entry key="cleanup.comparison_statement" value="true" />
											<entry key="cleanup.controlflow_merge" value="true" />
											<entry key="cleanup.convert_functional_interfaces" value="true" />
											<entry key="cleanup.convert_to_enhanced_for_loop" value="true" />
											<entry key="cleanup.convert_to_enhanced_for_loop_if_loop_var_used" value="false" />
											<entry key="cleanup.convert_to_switch_expressions" value="true" />
											<entry key="cleanup.correct_indentation" value="true" />
											<entry key="cleanup.double_negation" value="true" />
											<entry key="cleanup.else_if" value="true" />
											<entry key="cleanup.embedded_if" value="true" />
											<entry key="cleanup.evaluate_nullable" value="true" />
											<entry key="cleanup.extract_increment" value="true" />
											<entry key="cleanup.format_source_code" value="true" />
											<entry key="cleanup.format_source_code_changes_only" value="false" />
											<entry key="cleanup.hash" value="true" />
											<entry key="cleanup.if_condition" value="true" />
											<entry key="cleanup.insert_inferred_type_arguments" value="false" />
											<entry key="cleanup.instanceof" value="true" />
											<entry key="cleanup.invert_equals" value="false" />
											<entry key="cleanup.join" value="true" />
											<entry key="cleanup.lazy_logical_operator" value="true" />
											<entry key="cleanup.make_local_variable_final" value="true" />
											<entry key="cleanup.make_parameters_final" value="true" />
											<entry key="cleanup.make_private_fields_final" value="true" />
											<entry key="cleanup.make_type_abstract_if_missing_method" value="false" />
											<entry key="cleanup.make_variable_declarations_final" value="true" />
											<entry key="cleanup.map_cloning" value="true" />
											<entry key="cleanup.merge_conditional_blocks" value="true" />
											<entry key="cleanup.multi_catch" value="true" />
											<entry key="cleanup.never_use_blocks" value="false" />
											<entry key="cleanup.never_use_parentheses_in_expressions" value="true" />
											<entry key="cleanup.no_string_creation" value="true" />
											<entry key="cleanup.no_super" value="true" />
											<entry key="cleanup.number_suffix" value="true" />
											<entry key="cleanup.objects_equals" value="true" />
											<entry key="cleanup.organize_imports" value="true" />
											<entry key="cleanup.overridden_assignment" value="true" />
											<entry key="cleanup.plain_replacement" value="true" />
											<entry key="cleanup.precompile_regex" value="true" />
											<entry key="cleanup.primitive_comparison" value="true" />
											<entry key="cleanup.primitive_parsing" value="true" />
											<entry key="cleanup.primitive_serialization" value="true" />
											<entry key="cleanup.pull_up_assignment" value="true" />
											<entry key="cleanup.push_down_negation" value="true" />
											<entry key="cleanup.qualify_static_field_accesses_with_declaring_class" value="false" />
											<entry key="cleanup.qualify_static_member_accesses_through_instances_with_declaring_class" value="true" />
											<entry key="cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class" value="false" />
											<entry key="cleanup.qualify_static_member_accesses_with_declaring_class" value="true" />
											<entry key="cleanup.qualify_static_method_accesses_with_declaring_class" value="false" />
											<entry key="cleanup.reduce_indentation" value="true" />
											<entry key="cleanup.redundant_falling_through_block_end" value="true" />
											<entry key="cleanup.remove_private_constructors" value="true" />
											<entry key="cleanup.remove_redundant_modifiers" value="true" />
											<entry key="cleanup.remove_redundant_semicolons" value="true" />
											<entry key="cleanup.remove_redundant_type_arguments" value="true" />
											<entry key="cleanup.remove_trailing_whitespaces" value="true" />
											<entry key="cleanup.remove_trailing_whitespaces_all" value="true" />
											<entry key="cleanup.remove_trailing_whitespaces_ignore_empty" value="false" />
											<entry key="cleanup.remove_unnecessary_array_creation" value="true" />
											<entry key="cleanup.remove_unnecessary_casts" value="true" />
											<entry key="cleanup.remove_unnecessary_nls_tags" value="true" />
											<entry key="cleanup.remove_unused_imports" value="true" />
											<entry key="cleanup.remove_unused_local_variables" value="false" />
											<entry key="cleanup.remove_unused_private_fields" value="true" />
											<entry key="cleanup.remove_unused_private_members" value="false" />
											<entry key="cleanup.remove_unused_private_methods" value="true" />
											<entry key="cleanup.remove_unused_private_types" value="true" />
											<entry key="cleanup.simplify_lambda_expression_and_method_ref" value="true" />
											<entry key="cleanup.single_used_field" value="true" />
											<entry key="cleanup.sort_members" value="false" />
											<entry key="cleanup.sort_members_all" value="false" />
											<entry key="cleanup.standard_comparison" value="false" />
											<entry key="cleanup.static_inner_class" value="true" />
											<entry key="cleanup.strictly_equal_or_different" value="true" />
											<entry key="cleanup.stringbuilder" value="false" />
											<entry key="cleanup.substring" value="true" />
											<entry key="cleanup.switch" value="true" />
											<entry key="cleanup.ternary_operator" value="true" />
											<entry key="cleanup.try_with_resource" value="true" />
											<entry key="cleanup.unlooped_while" value="true" />
											<entry key="cleanup.unreachable_block" value="false" />
											<entry key="cleanup.use_anonymous_class_creation" value="false" />
											<entry key="cleanup.use_autoboxing" value="true" />
											<entry key="cleanup.use_blocks" value="true" />
											<entry key="cleanup.use_blocks_only_for_return_and_throw" value="false" />
											<entry key="cleanup.use_directly_map_method" value="true" />
											<entry key="cleanup.use_lambda" value="true" />
											<entry key="cleanup.use_parentheses_in_expressions" value="true" />
											<entry key="cleanup.use_this_for_non_static_field_access" value="false" />
											<entry key="cleanup.use_this_for_non_static_field_access_only_if_necessary" value="true" />
											<entry key="cleanup.use_this_for_non_static_method_access" value="false" />
											<entry key="cleanup.use_this_for_non_static_method_access_only_if_necessary" value="true" />
											<entry key="cleanup.use_unboxing" value="true" />
											<entry key="cleanup.use_var" value="true" />
											<entry key="cleanup.useless_continue" value="true" />
											<entry key="cleanup.useless_return" value="true" />
											<entry key="cleanup_profile" value="_de.lars-sh" />
											<entry key="cleanup_settings_version" value="2" />
											<entry key="eclipse.preferences.version" value="1" />
											<entry key="editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup" value="true" />
											<entry key="formatter_profile" value="_de.lars-sh" />
											<entry key="formatter_settings_version" value="21" />
											<entry key="org.eclipse.jdt.ui.exception.name" value="e" />
											<entry key="org.eclipse.jdt.ui.gettersetter.use.is" value="true" />
											<entry key="org.eclipse.jdt.ui.ignorelowercasenames" value="true" />
											<entry key="org.eclipse.jdt.ui.importorder" value="java;javax;org;com;" />
											<entry key="org.eclipse.jdt.ui.keywordthis" value="false" />
											<entry key="org.eclipse.jdt.ui.ondemandthreshold" value="99" />
											<entry key="org.eclipse.jdt.ui.overrideannotation" value="true" />
											<entry key="org.eclipse.jdt.ui.staticondemandthreshold" value="99" />
											<entry key="org.eclipse.jdt.ui.text.custom_code_templates" value="" />
											<entry key="sp_cleanup.add_default_serial_version_id" value="true" />
											<entry key="sp_cleanup.add_generated_serial_version_id" value="false" />
											<entry key="sp_cleanup.add_missing_annotations" value="true" />
											<entry key="sp_cleanup.add_missing_deprecated_annotations" value="true" />
											<entry key="sp_cleanup.add_missing_methods" value="false" />
											<entry key="sp_cleanup.add_missing_nls_tags" value="false" />
											<entry key="sp_cleanup.add_missing_override_annotations" value="true" />
											<entry key="sp_cleanup.add_missing_override_annotations_interface_methods" value="true" />
											<entry key="sp_cleanup.add_serial_version_id" value="false" />
											<entry key="sp_cleanup.always_use_blocks" value="true" />
											<entry key="sp_cleanup.always_use_parentheses_in_expressions" value="false" />
											<entry key="sp_cleanup.always_use_this_for_non_static_field_access" value="false" />
											<entry key="sp_cleanup.always_use_this_for_non_static_method_access" value="false" />
											<entry key="sp_cleanup.arrays_fill" value="true" />
											<entry key="sp_cleanup.bitwise_conditional_expression" value="false" />
											<entry key="sp_cleanup.boolean_literal" value="true" />
											<entry key="sp_cleanup.break_loop" value="true" />
											<entry key="sp_cleanup.collection_cloning" value="true" />
											<entry key="sp_cleanup.comparing_on_criteria" value="true" />
											<entry key="sp_cleanup.comparison_statement" value="true" />
											<entry key="sp_cleanup.controlflow_merge" value="true" />
											<entry key="sp_cleanup.convert_functional_interfaces" value="true" />
											<entry key="sp_cleanup.convert_to_enhanced_for_loop" value="true" />
											<entry key="sp_cleanup.convert_to_enhanced_for_loop_if_loop_var_used" value="false" />
											<entry key="sp_cleanup.convert_to_switch_expressions" value="true" />
											<entry key="sp_cleanup.correct_indentation" value="true" />
											<entry key="sp_cleanup.double_negation" value="true" />
											<entry key="sp_cleanup.else_if" value="true" />
											<entry key="sp_cleanup.embedded_if" value="true" />
											<entry key="sp_cleanup.evaluate_nullable" value="true" />
											<entry key="sp_cleanup.extract_increment" value="true" />
											<entry key="sp_cleanup.format_source_code" value="true" />
											<entry key="sp_cleanup.format_source_code_changes_only" value="false" />
											<entry key="sp_cleanup.hash" value="true" />
											<entry key="sp_cleanup.if_condition" value="true" />
											<entry key="sp_cleanup.insert_inferred_type_arguments" value="false" />
											<entry key="sp_cleanup.instanceof" value="true" />
											<entry key="sp_cleanup.invert_equals" value="false" />
											<entry key="sp_cleanup.join" value="true" />
											<entry key="sp_cleanup.lazy_logical_operator" value="true" />
											<entry key="sp_cleanup.make_local_variable_final" value="true" />
											<entry key="sp_cleanup.make_parameters_final" value="true" />
											<entry key="sp_cleanup.make_private_fields_final" value="true" />
											<entry key="sp_cleanup.make_type_abstract_if_missing_method" value="false" />
											<entry key="sp_cleanup.make_variable_declarations_final" value="true" />
											<entry key="sp_cleanup.map_cloning" value="true" />
											<entry key="sp_cleanup.merge_conditional_blocks" value="true" />
											<entry key="sp_cleanup.multi_catch" value="true" />
											<entry key="sp_cleanup.never_use_blocks" value="false" />
											<entry key="sp_cleanup.never_use_parentheses_in_expressions" value="true" />
											<entry key="sp_cleanup.no_string_creation" value="true" />
											<entry key="sp_cleanup.no_super" value="true" />
											<entry key="sp_cleanup.number_suffix" value="true" />
											<entry key="sp_cleanup.objects_equals" value="true" />
											<entry key="sp_cleanup.on_save_use_additional_actions" value="true" />
											<entry key="sp_cleanup.organize_imports" value="true" />
											<entry key="sp_cleanup.overridden_assignment" value="true" />
											<entry key="sp_cleanup.plain_replacement" value="true" />
											<entry key="sp_cleanup.precompile_regex" value="true" />
											<entry key="sp_cleanup.primitive_comparison" value="true" />
											<entry key="sp_cleanup.primitive_parsing" value="true" />
											<entry key="sp_cleanup.primitive_serialization" value="true" />
											<entry key="sp_cleanup.pull_up_assignment" value="true" />
											<entry key="sp_cleanup.push_down_negation" value="true" />
											<entry key="sp_cleanup.qualify_static_field_accesses_with_declaring_class" value="false" />
											<entry key="sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class" value="true" />
											<entry key="sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class" value="false" />
											<entry key="sp_cleanup.qualify_static_member_accesses_with_declaring_class" value="true" />
											<entry key="sp_cleanup.qualify_static_method_accesses_with_declaring_class" value="false" />
											<entry key="sp_cleanup.reduce_indentation" value="true" />
											<entry key="sp_cleanup.redundant_falling_through_block_end" value="true" />
											<entry key="sp_cleanup.remove_private_constructors" value="true" />
											<entry key="sp_cleanup.remove_redundant_modifiers" value="true" />
											<entry key="sp_cleanup.remove_redundant_semicolons" value="true" />
											<entry key="sp_cleanup.remove_redundant_type_arguments" value="true" />
											<entry key="sp_cleanup.remove_trailing_whitespaces" value="true" />
											<entry key="sp_cleanup.remove_trailing_whitespaces_all" value="true" />
											<entry key="sp_cleanup.remove_trailing_whitespaces_ignore_empty" value="false" />
											<entry key="sp_cleanup.remove_unnecessary_array_creation" value="true" />
											<entry key="sp_cleanup.remove_unnecessary_casts" value="true" />
											<entry key="sp_cleanup.remove_unnecessary_nls_tags" value="true" />
											<entry key="sp_cleanup.remove_unused_imports" value="true" />
											<entry key="sp_cleanup.remove_unused_local_variables" value="false" />
											<entry key="sp_cleanup.remove_unused_private_fields" value="true" />
											<entry key="sp_cleanup.remove_unused_private_members" value="false" />
											<entry key="sp_cleanup.remove_unused_private_methods" value="true" />
											<entry key="sp_cleanup.remove_unused_private_types" value="true" />
											<entry key="sp_cleanup.simplify_lambda_expression_and_method_ref" value="true" />
											<entry key="sp_cleanup.single_used_field" value="true" />
											<entry key="sp_cleanup.sort_members" value="false" />
											<entry key="sp_cleanup.sort_members_all" value="false" />
											<entry key="sp_cleanup.standard_comparison" value="false" />
											<entry key="sp_cleanup.static_inner_class" value="true" />
											<entry key="sp_cleanup.strictly_equal_or_different" value="true" />
											<entry key="sp_cleanup.stringbuilder" value="false" />
											<entry key="sp_cleanup.substring" value="true" />
											<entry key="sp_cleanup.switch" value="true" />
											<entry key="sp_cleanup.ternary_operator" value="true" />
											<entry key="sp_cleanup.try_with_resource" value="true" />
											<entry key="sp_cleanup.unlooped_while" value="true" />
											<entry key="sp_cleanup.unreachable_block" value="false" />
											<entry key="sp_cleanup.use_anonymous_class_creation" value="false" />
											<entry key="sp_cleanup.use_autoboxing" value="true" />
											<entry key="sp_cleanup.use_blocks" value="true" />
											<entry key="sp_cleanup.use_blocks_only_for_return_and_throw" value="false" />
											<entry key="sp_cleanup.use_directly_map_method" value="true" />
											<entry key="sp_cleanup.use_lambda" value="true" />
											<entry key="sp_cleanup.use_parentheses_in_expressions" value="true" />
											<entry key="sp_cleanup.use_this_for_non_static_field_access" value="false" />
											<entry key="sp_cleanup.use_this_for_non_static_field_access_only_if_necessary" value="true" />
											<entry key="sp_cleanup.use_this_for_non_static_method_access" value="false" />
											<entry key="sp_cleanup.use_this_for_non_static_method_access_only_if_necessary" value="true" />
											<entry key="sp_cleanup.use_unboxing" value="true" />
											<entry key="sp_cleanup.use_var" value="true" />
											<entry key="sp_cleanup.useless_continue" value="true" />
											<entry key="sp_cleanup.useless_return" value="true" />
										</propertyfile>
										<propertyfile file="${project.basedir}/.settings/org.eclipse.jdt.core.prefs">
											<entry key="eclipse.preferences.version" value="1" />
											<entry key="org.eclipse.jdt.core.codeComplete.argumentPrefixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.argumentSuffixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.fieldPrefixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.fieldSuffixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.localPrefixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.localSuffixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.staticFieldPrefixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.staticFieldSuffixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes" value="" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation" value="${eclipse.compiler.missingNonNullByDefaultAnnotation}" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nonnull" value="edu.umd.cs.findbugs.annotations.NonNull" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nonnull.secondary" value="${eclipse.compiler.nonnull.secondary}" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nonnullbydefault" value="de.larssh.utils.annotations.NonNullByDefault" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary" value="${eclipse.compiler.nonnullbydefault.secondary}" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nullable" value="edu.umd.cs.findbugs.annotations.Nullable" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nullable.secondary" value="${eclipse.compiler.nullable.secondary}" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nullanalysis" value="${eclipse.compiler.nullAnalysis}" />
											<entry key="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.codegen.methodParameters" value="${eclipse.compiler.codegen.methodParameters}" />
											<entry key="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.8" />
											<entry key="org.eclipse.jdt.core.compiler.codegen.unusedLocal" value="preserve" />
											<entry key="org.eclipse.jdt.core.compiler.compliance" value="1.8" />
											<entry key="org.eclipse.jdt.core.compiler.debug.lineNumber" value="generate" />
											<entry key="org.eclipse.jdt.core.compiler.debug.localVariable" value="generate" />
											<entry key="org.eclipse.jdt.core.compiler.debug.sourceFile" value="generate" />
											<entry key="org.eclipse.jdt.core.compiler.doc.comment.support" value="${eclipse.compiler.javadoc}" />
											<entry key="org.eclipse.jdt.core.compiler.problem.APILeak" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.annotationSuperInterface" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error" />
											<entry key="org.eclipse.jdt.core.compiler.problem.autoboxing" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.comparingIdentical" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.deadCode" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.deprecation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.discouragedReference" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.emptyStatement" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error" />
											<entry key="org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.fallthroughCase" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.fatalOptionalError" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.fieldHiding" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.finalParameterBound" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.forbiddenReference" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.indirectStaticAccess" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.invalidJavadoc" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.invalidJavadocTags" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility" value="private" />
											<entry key="org.eclipse.jdt.core.compiler.problem.localVariableHiding" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.methodWithConstructorName" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingDefaultCase" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocComments" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility" value="default" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription" value="all_standard_tags" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocTags" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility" value="private" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingSerialVersion" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.noEffectAssignment" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict" value="error" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nullReference" value="error" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nullSpecViolation" value="error" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.parameterAssignment" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.potentialNullReference" value="${eclipse.compiler.potentialNullReference}" />
											<entry key="org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.rawTypeReference" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.redundantNullCheck" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.redundantSuperinterface" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.specialParameterHidingField" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.staticAccessReceiver" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.suppressWarnings" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.terminalDeprecation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.typeParameterHiding" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unclosedCloseable" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unhandledWarningToken" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unnecessaryElse" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedImport" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedLabel" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedLocal" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedParameter" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedPrivateMember" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedTypeParameter" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedWarningToken" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.release" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.source" value="1.8" />
											<entry key="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647" />
											<entry key="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.align_with_spaces" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_enum_constant" value="49" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field" value="49" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable" value="49" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method" value="49" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package" value="49" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type" value="49" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_assertion_message" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="49" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_record_components" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="81" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_type_annotations" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_record_constructor" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_record_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_html" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_source_code" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.comment.line_length" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.compact_else_if" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.continuation_indentation" value="2" />
											<entry key="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2" />
											<entry key="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off" />
											<entry key="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on" />
											<entry key="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.indentation.size" value="4" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_not_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.lineSplit" value="120" />
											<entry key="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.tabulation.char" value="tab" />
											<entry key="org.eclipse.jdt.core.formatter.tabulation.size" value="4" />
											<entry key="org.eclipse.jdt.core.formatter.text_block_indentation" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true" />
											<entry key="org.eclipse.jdt.core.javaFormatter" value="org.eclipse.jdt.core.defaultJavaFormatter" />
										</propertyfile>
									</target>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
