ao-taglib
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.aoapps</groupId>
<artifactId>ao-taglib</artifactId>
<version>7.0.1</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
ao-taglib - Making JSP be what it should have been all along.
Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021 AO Industries, Inc.
support@aoindustries.com
7262 Bull Pen Cir
Mobile, AL 36695
This file is part of ao-taglib.
ao-taglib is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ao-taglib is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with ao-taglib. If not, see <http://www.gnu.org/licenses />.
-->
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.aoapps</groupId><artifactId>ao-oss-parent</artifactId><version>1.17.2<!-- -POST-SNAPSHOT --></version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>com.aoapps</groupId><artifactId>ao-taglib</artifactId><version>7.0.1</version>
<packaging>bundle</packaging>
<properties>
<module.name>com.aoapps.taglib</module.name>
<!-- Java 1.8 -->
<javase.version>1.8</javase.version>
<javase.release>8</javase.release>
<javadoc.link.javase>${javadoc.link.javase.8}</javadoc.link.javase>
<!-- This must be set in your ~/.m2/settings.xml when building with JDK < 9 -->
<javase.bootclasspath>${javase.bootclasspath.8}</javase.bootclasspath>
<javadoc.breadcrumbs><![CDATA[<a target="${javadoc.target}" href="https://oss.aoapps.com/">AO OSS</a>
/ <a target="${javadoc.target}" href="${project.url}">Taglib</a>]]></javadoc.breadcrumbs>
<javadoc.taglibReference><![CDATA[
<li><a target="${javadoc.target}" href="${project.url}ao.tld/">Taglib Reference</a></li>
<li><a target="${javadoc.target}" href="${project.url}ao-legacy.tld/">Taglib Reference (Legacy)</a></li>
]]></javadoc.taglibReference>
<javadoc.relatedProjects><![CDATA[<div style="float:left; margin: 0 1em">
<h2 style="margin-top: 0em">Related Projects</h2>
<ul>
<li><a target="${javadoc.target}" href="https://oss.aoapps.com/encoding/taglib/">AO Encoding Taglib</a></li>
</ul>
</div>]]></javadoc.relatedProjects>
<!-- SonarQube -->
<sonar.projectKey>${project.groupId}:${project.artifactId}</sonar.projectKey>
<sonar.organization>aoindustries</sonar.organization>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<!-- TODO: Implement tests -->
<sonar.coverage.exclusions>**.*</sonar.coverage.exclusions>
<!-- Dependencies -->
<commons-beanutils.version>1.9.4</commons-beanutils.version>
<commons-lang3.version>3.12.0</commons-lang3.version>
</properties>
<name>AO Taglib</name>
<url>https://oss.aoapps.com/taglib/</url>
<description>Making JSP be what it should have been all along.</description>
<inceptionYear>2009</inceptionYear>
<licenses>
<license>
<name>GNU General Lesser Public License (LGPL) version 3.0</name>
<url>https://www.gnu.org/licenses/lgpl-3.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<organization>
<name>AO Industries, Inc.</name>
<url>https://aoindustries.com/</url>
</organization>
<developers>
<developer>
<name>AO Industries, Inc.</name>
<email>support@aoindustries.com</email>
<url>https://aoindustries.com/</url>
<organization>AO Industries, Inc.</organization>
<organizationUrl>https://aoindustries.com/</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/aoindustries/ao-taglib.git</connection>
<developerConnection>scm:git:git@github.com:aoindustries/ao-taglib.git</developerConnection>
<url>https://github.com/aoindustries/ao-taglib</url>
<tag>ao-taglib-7.0.1</tag>
</scm>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/aoindustries/ao-taglib/issues</url>
</issueManagement>
<ciManagement>
<system>GitHub Actions</system>
<url>https://github.com/aoindustries/ao-taglib/actions</url>
</ciManagement>
<repositories>
<!-- Repository required here, too, so can find parent -->
<repository>
<id>sonatype-nexus-snapshots-s01</id>
<name>Sonatype Nexus Snapshots S01</name>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<build>
<plugins>
<!-- Java 1.8: see https://maven.apache.org/plugins/maven-compiler-plugin/examples/module-info.html -->
<plugin>
<groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId>
<executions>
<!-- compile everything to ensure module-info contains right entries -->
<execution>
<id>default-compile</id>
<configuration>
<release>9</release>
</configuration>
</execution>
<!-- recompile everything for target VM except the module-info.java -->
<execution>
<id>base-compile</id><goals><goal>compile</goal></goals>
<configuration>
<excludes>
<exclude>module-info.java</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<!-- Java 1.8: generate future-proof modular javadocs -->
<source>11</source>
<release>11</release>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>offlineLinks</id><activation><file><exists>src/main/java</exists></file></activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack.offlineLinks</id><phase>generate-sources</phase><goals><goal>unpack</goal></goals>
<configuration>
<artifactItems>
<!-- Direct -->
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-collections</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-collections</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-encoding</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-encoding</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-encoding-servlet</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-encoding-servlet</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-encoding-taglib</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-encoding-taglib</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-fluent-html-any</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-fluent-html-any</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-fluent-html-servlet</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-fluent-html-servlet</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-hodgepodge</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-hodgepodge</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-io-buffer</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-io-buffer</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-lang</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-lang</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-net-types</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-net-types</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-servlet-filter</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-servlet-filter</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-servlet-last-modified</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-servlet-last-modified</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-servlet-util</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-servlet-util</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-web-resources-registry</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-web-resources-registry</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.aoapps</groupId><artifactId>ao-web-resources-servlet</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-web-resources-servlet</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/commons-beanutils/commons-beanutils</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><classifier>javadoc</classifier>
<includes>element-list, package-list</includes>
<outputDirectory>${project.build.directory}/offlineLinks/org.apache.commons/commons-lang3</outputDirectory>
</artifactItem>
<!-- ao-javadoc-offline: <groupId>javax.el</groupId><artifactId>javax.el-api</artifactId> -->
<!-- ao-javadoc-offline: <groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId> -->
<!-- ao-javadoc-offline: <groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId> -->
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<offlineLinks combine.children="append">
<!-- Direct -->
<offlineLink>
<url>https://oss.aoapps.com/collections/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-collections</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/encoding/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-encoding</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/encoding/servlet/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-encoding-servlet</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/encoding/taglib/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-encoding-taglib</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/fluent-html/any/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-fluent-html-any</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/fluent-html/servlet/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-fluent-html-servlet</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/hodgepodge/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-hodgepodge</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/io-buffer/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-io-buffer</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/lang/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-lang</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/net-types/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-net-types</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/servlet-filter/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-servlet-filter</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/servlet-last-modified/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-servlet-last-modified</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/servlet-util/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-servlet-util</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/web-resources/registry/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-web-resources-registry</location>
</offlineLink>
<offlineLink>
<url>https://oss.aoapps.com/web-resources/servlet/apidocs/</url>
<location>${project.build.directory}/offlineLinks/com.aoapps/ao-web-resources-servlet</location>
</offlineLink>
<offlineLink>
<url>https://commons.apache.org/proper/commons-beanutils/javadocs/v${commons-beanutils.version}/apidocs/</url>
<location>${project.build.directory}/offlineLinks/commons-beanutils/commons-beanutils</location>
</offlineLink>
<offlineLink>
<url>https://javadoc.io/doc/org.apache.commons/commons-lang3/${commons-lang3.version}/</url>
<location>${project.build.directory}/offlineLinks/org.apache.commons/commons-lang3</location>
</offlineLink>
<!-- ao-javadoc-offline: <groupId>javax.el</groupId><artifactId>javax.el-api</artifactId> -->
<!-- ao-javadoc-offline: <groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId> -->
<!-- ao-javadoc-offline: <groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId> -->
</offlineLinks>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId><artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<!--
Releases use "Automatic-Module-Name" instead of "module-info.java"
since has direct dependencies that are not yet modularized.
-->
<Automatic-Module-Name>${module.name}</Automatic-Module-Name>
<Private-Package>!.</Private-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencyManagement>
<dependencies>
<!-- Direct -->
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-collections</artifactId><version>2.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-encoding</artifactId><version>5.0.2<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-encoding-servlet</artifactId><version>4.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-encoding-taglib</artifactId><version>2.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-fluent-html-any</artifactId><version>0.5.3<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-fluent-html-servlet</artifactId><version>0.5.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-hodgepodge</artifactId><version>5.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-io-buffer</artifactId><version>4.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-lang</artifactId><version>5.0.1<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-net-types</artifactId><version>2.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-servlet-filter</artifactId><version>3.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-servlet-last-modified</artifactId><version>2.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-servlet-util</artifactId><version>4.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-web-resources-registry</artifactId><version>0.4.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-web-resources-servlet</artifactId><version>0.4.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>${commons-beanutils.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>${commons-lang3.version}</version>
</dependency>
<!-- javaee-web-api-bom: <groupId>javax.el</groupId><artifactId>javax.el-api</artifactId> -->
<!-- javaee-web-api-bom: <groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId> -->
<!-- javaee-web-api-bom: <groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId> -->
<!-- Transitive -->
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-tempfiles</artifactId><version>3.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-tempfiles-servlet</artifactId><version>2.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-tlds</artifactId><version>2.0.0<!-- ${POST-SNAPSHOT} --></version>
</dependency>
<dependency>
<groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.2</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version>
</dependency>
<!-- BOM -->
<dependency>
<groupId>com.aoapps</groupId><artifactId>javaee-web-api-bom</artifactId><version>7.0.0<!-- ${POST-SNAPSHOT} --></version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Direct -->
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-collections</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-encoding</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-encoding-servlet</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-encoding-taglib</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-fluent-html-any</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-fluent-html-servlet</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-hodgepodge</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-io-buffer</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-lang</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-net-types</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-servlet-filter</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-servlet-last-modified</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-servlet-util</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-web-resources-registry</artifactId>
</dependency>
<dependency>
<groupId>com.aoapps</groupId><artifactId>ao-web-resources-servlet</artifactId>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId>
<optional>true</optional><!-- Only the write and getStackTraces tags use this -->
</dependency>
<dependency>
<groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>javax.el</groupId><artifactId>javax.el-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId>
</dependency>
</dependencies>
</project>