<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.    
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at 2024-03-14 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Apache James Project &#x2013; Rat (Release Audit Tool) results</title>
    <style type="text/css" media="all">
      @import url("./css/james.css");
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
      @import url("./js/jquery/css/custom-theme/jquery-ui-1.8.5.custom.css");
      @import url("./js/jquery/css/print.css");
      @import url("./js/fancybox/jquery.fancybox-1.3.4.css");
    </style>
    <script type="text/javascript" src="./js/jquery/js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="./js/jquery/js/jquery-ui-1.8.5.custom.min.js"></script>
    <script type="text/javascript" src="./js/fancybox/jquery.fancybox-1.3.4.js"></script>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20240314" />
    <meta http-equiv="Content-Language" content="en" />
        
          <!-- Google Analytics -->
    <script type="text/javascript">
    
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-1384591-1']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script').item(0); s.parentNode.insertBefore(ga, s);
      })();

    </script>
    </head>
  <body class="composite">
    <div id="banner">
                                      <a href="index.html" id="bannerLeft" title="james-logo.png">
              
                                                                            
        <img src="images/logos/james-logo.png" alt="James Project" />
                </a>
                              <a href="https://www.apache.org/index.html" id="bannerRight">
              
                                        
        <img src="images/logos/asf_logo_small.png" alt="The Apache Software Foundation" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
                
                <div class="xleft">
        <span id="publishDate">Last Published: 2024-03-14</span>
                      </div>
            <div class="xright">                    <a href="index.html" title="Home">Home</a>
            |
                        <a href="documentation.html" title="James">James</a>
            |
                        <a href="mime4j/index.html" title="Mime4J">Mime4J</a>
            |
                        <a href="jsieve/index.html" title="jSieve">jSieve</a>
            |
                        <a href="jspf/index.html" title="jSPF">jSPF</a>
            |
                        <a href="jdkim/index.html" title="jDKIM">jDKIM</a>
              
                
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
                
                                <h5>James components</h5>
                  <ul>
                                                                                                                                                                                                                    <li class="collapsed">
                          <a href="documentation.html" title="About James">About James</a>
                  </li>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      <li class="collapsed">
                          <a href="server/index.html" title="Server">Server</a>
                  </li>
                                                                                                                                                                                                                                                        <li class="collapsed">
                          <a href="mailet/index.html" title="Mailets">Mailets</a>
                  </li>
                                                                                                                                                                                                                                                                                      <li class="collapsed">
                          <a href="mailbox/index.html" title="Mailbox">Mailbox</a>
                  </li>
                                                                                                                                                                                <li class="collapsed">
                          <a href="protocols/index.html" title="Protocols">Protocols</a>
                  </li>
                                                                                                                                                                                      <li class="collapsed">
                          <a href="mpt/index.html" title="MPT">MPT</a>
                  </li>
          </ul>
        <h5>Apache Software Foundation</h5>
  <ul>
    <li>
      <strong>
        <a title="ASF" href="http://www.apache.org/">ASF</a>
      </strong>
    </li>
    <li>
      <a title="Get Involved" href="http://www.apache.org/foundation/getinvolved.html">Get Involved</a>
    </li>
    <li>
      <a title="FAQ" href="http://www.apache.org/foundation/faq.html">FAQ</a>
    </li>
    <li>
      <a title="License" href="http://www.apache.org/licenses/" >License</a>
    </li>
    <li>
      <a title="Sponsorship" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
    </li>
    <li>
      <a title="Thanks" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
    </li>
    <li>
      <a title="Security" href="http://www.apache.org/security/">Security</a>
    </li>
  </ul>
                       <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
                   
                
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <section>
<h2><a name="Rat_.28Release_Audit_Tool.29_results"></a>Rat (Release Audit Tool) results</h2>
<p>The following document contains the results of <a class="externalLink" href="https://creadur.apache.org/rat/apache-rat-plugin/">Rat (Release Audit Tool)</a>.</p>
<p></p>
<div class="source">
<pre>
*****************************************************
Summary
-------
Generated at: 2024-03-14T11:39:06+01:00

Notes: 41
Binaries: 525
Archives: 10
Standards: 8838

Apache Licensed: 7669
Generated Documents: 2

JavaDocs are generated, thus a license header is optional.
Generated files do not require license headers.

1160 Unknown Licenses

*****************************************************

Files with unapproved licenses:

  mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/starttls_session_fixation.test
  mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/rcpt_with_starttls.test
  mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/authplain.test
  mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/data_with_starttls.test
  mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/starttls_with_injection.test
  mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/helo.test
  mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/data_starts_with_starttls.test
  mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/starttls.test
  mpt/impl/imap-mailbox/core/src/main/resources/logback.xml
  mpt/impl/imap-mailbox/cassandra/src/test/resources/cassandra-driver.conf
  upgrade-instructions.md
  code-coverage-report/pom.xml
  CHANGELOG.md
  third-party/rspamd/docker-compose.yml
  third-party/rspamd/src/test/resources/rspamd-config/actions.conf
  third-party/rspamd/src/test/resources/rspamd-config/antivirus.conf
  third-party/rspamd/src/test/resources/rspamd-config/statistic.conf
  third-party/rspamd/src/test/resources/mail/ham/ham1.eml
  third-party/rspamd/src/test/resources/mail/attachment/inlineVirusTextAttachment.eml
  third-party/rspamd/src/test/resources/mail/attachment/inlineNonVirusTextAttachment.eml
  third-party/rspamd/src/test/resources/mail/spam/spam8.eml
  third-party/rspamd/README.md
  third-party/rspamd/sample-configuration/extensions.properties
  third-party/rspamd/sample-configuration/antivirus.conf
  third-party/rspamd/sample-configuration/statistic.conf
  third-party/rspamd/sample-configuration/rspamd.properties
  third-party/rspamd/docker-compose-distributed.yml
  third-party/elasticsearch/docker-compose.yml
  third-party/elasticsearch/conf/extensions.properties
  third-party/elasticsearch/conf/elasticsearch.properties
  third-party/elasticsearch/README.md
  third-party/clamav/docker-compose.yml
  third-party/clamav/src/test/resources/attachment/inlineVirusTextAttachment.eml
  third-party/clamav/src/test/resources/attachment/inlineNonVirusTextAttachment.eml
  third-party/clamav/README.md
  third-party/crowdsec/docker-compose.yml
  third-party/crowdsec/src/test/resources/crowdsec/collections/james.yaml
  third-party/crowdsec/src/test/resources/crowdsec/parsers/james-dictionary-attack.yaml
  third-party/crowdsec/src/test/resources/crowdsec/parsers/syslog-logs.yaml
  third-party/crowdsec/src/test/resources/crowdsec/parsers/james-auth.yaml
  third-party/crowdsec/src/test/resources/crowdsec/acquis.yaml
  third-party/crowdsec/src/test/resources/crowdsec/scenarios/james-bf-auth.yaml
  third-party/crowdsec/src/test/resources/crowdsec/scenarios/james-dictionary-attack.yaml
  third-party/crowdsec/src/test/resources/haproxy.cfg
  third-party/crowdsec/src/test/resources/log/james.log
  third-party/crowdsec/src/test/java/org/apache/james/crowdsec/CrowdsecSMTPConnectHandlerTest.java
  third-party/crowdsec/README.md
  third-party/crowdsec/sample-configuration/collections/james.yaml
  third-party/crowdsec/sample-configuration/parsers/james-dictionary-attack.yaml
  third-party/crowdsec/sample-configuration/parsers/syslog-logs.yaml
  third-party/crowdsec/sample-configuration/parsers/james-auth.yaml
  third-party/crowdsec/sample-configuration/extensions.properties
  third-party/crowdsec/sample-configuration/acquis.yaml
  third-party/crowdsec/sample-configuration/scenarios/james-bf-auth.yaml
  third-party/crowdsec/sample-configuration/scenarios/james-dictionary-attack.yaml
  third-party/crowdsec/sample-configuration/crowdsec.properties
  third-party/spamassassin/docker-compose.yml
  third-party/spamassassin/src/test/resources/eml/spam.eml
  third-party/spamassassin/src/test/resources/spamassassin_db/ham/ham1
  third-party/spamassassin/src/test/resources/spamassassin_db/ham/ham3
  third-party/spamassassin/src/test/resources/spamassassin_db/ham/ham2
  third-party/spamassassin/src/test/resources/spamassassin_db/spam/spam2
  third-party/spamassassin/src/test/resources/spamassassin_db/spam/spam3
  third-party/spamassassin/src/test/resources/spamassassin_db/spam/spam1
  third-party/spamassassin/sample-configuration/extensions.properties
  third-party/spamassassin/sample-configuration/spamassassin.properties
  third-party/linshare/src/test/resources/docker-compose.yml
  third-party/linshare/src/test/resources/backend/Dockerfile
  third-party/linshare/src/test/resources/backend/conf/log4j.properties
  third-party/linshare/src/test/resources/backend/conf/id_rsa.pub
  third-party/linshare/src/test/resources/backend/conf/id_rsa.pri
  event-sourcing/event-sourcing-core/event-sourcing-core.iml
  backends-common/opensearch/src/test/resources/auth-es/nginx-conf/reverse_elasticsearch.conf
  backends-common/opensearch/src/test/resources/auth-es/nginx-conf/passwd
  backends-common/opensearch/src/test/resources/auth-es/NginxDockerfile
  backends-common/opensearch/src/test/resources/auth-es/README.md
  backends-common/opensearch/src/test/resources/auth-es/default.key
  backends-common/opensearch/src/test/resources/auth-es/default.crt
  backends-common/rabbitmq/src/test/resources/empty-store
  backends-common/redis/pom.xml
  backends-common/README.adoc
  backends-common/cassandra/src/test/resources/cassandra-driver.conf
  backends-common/cassandra/src/test/resources/configuration-reader-test/cassandra.properties
  README.adoc
  src/site/resources/server/rfclist/smtp/rfc1985.txt
  src/site/resources/server/rfclist/smtp/rfc2554.txt
  src/site/resources/server/rfclist/smtp/rfc1652.txt
  src/site/resources/server/rfclist/smtp/rfc1830.txt
  src/site/resources/server/rfclist/smtp/rfc2142.txt
  src/site/resources/server/rfclist/smtp/rfc2034.txt
  src/site/resources/server/rfclist/smtp/rfc1891.txt
  src/site/resources/server/rfclist/smtp/rfc0974.txt
  src/site/resources/server/rfclist/smtp/rfc2821.txt
  src/site/resources/server/rfclist/smtp/rfc1870.txt
  src/site/resources/server/rfclist/smtp/rfc2197.txt
  src/site/resources/server/rfclist/smtp/rfc0821.txt
  src/site/resources/server/rfclist/smtp/rfc1869.txt
  src/site/resources/server/rfclist/smtp/rfc1893.txt
  src/site/resources/server/rfclist/lmtp/rfc2033.txt
  src/site/resources/server/rfclist/imap4/rfc2087.txt
  src/site/resources/server/rfclist/imap4/rfc2221.txt
  src/site/resources/server/rfclist/imap4/rfc2193.txt
  src/site/resources/server/rfclist/imap4/rfc2192.txt
  src/site/resources/server/rfclist/imap4/rfc2088.txt
  src/site/resources/server/rfclist/imap4/rfc2060.txt
  src/site/resources/server/rfclist/imap4/rfc2086.txt
  src/site/resources/server/rfclist/imap4/rfc2342.txt
  src/site/resources/server/rfclist/imap4/rfc2595.txt
  src/site/resources/server/rfclist/imap4/rfc2195.txt
  src/site/resources/server/rfclist/imap4/rfc2180.txt
  src/site/resources/server/rfclist/imap4/rfc5256.txt
  src/site/resources/server/rfclist/imap4/rfc2177.txt
  src/site/resources/server/rfclist/imap4/rfc2683.txt
  src/site/resources/server/rfclist/imap4/rfc2359.txt
  src/site/resources/server/rfclist/imap4/rfc1731.txt
  src/site/resources/server/rfclist/pop3/rfc1725.txt
  src/site/resources/server/rfclist/pop3/rfc1939.txt
  src/site/resources/server/rfclist/pop3/rfc1734.txt
  src/site/resources/server/rfclist/ldap/rfc2830.txt
  src/site/resources/server/rfclist/ldap/rfc2255.txt
  src/site/resources/server/rfclist/ldap/rfc2252.txt
  src/site/resources/server/rfclist/ldap/rfc3377.txt
  src/site/resources/server/rfclist/ldap/rfc2256.txt
  src/site/resources/server/rfclist/ldap/rfc2253.txt
  src/site/resources/server/rfclist/ldap/rfc2829.txt
  src/site/resources/server/rfclist/ldap/rfc2254.txt
  src/site/resources/server/rfclist/ldap/rfc2251.txt
  src/site/resources/server/rfclist/basic/rfc0822.txt
  src/site/resources/server/rfclist/basic/rfc2046.txt
  src/site/resources/server/rfclist/basic/rfc2822.txt
  src/site/resources/server/rfclist/basic/rfc1123.txt
  src/site/resources/server/rfclist/basic/rfc2045.txt
  src/site/markdown/server/manage-guice-distributed-james.md
  src/site/markdown/server/manage-cli.md
  src/site/markdown/server/install/guice-cassandra-rabbitmq-s3.md
  src/site/markdown/server/install/guice-cassandra.md
  src/site/markdown/server/install/guice-jpa.md
  src/site/markdown/server/install/guice-jpa-smtp.md
  src/site/markdown/server/manage-webadmin.md
  src/site/markdown/mailet/release-notes.md
  src/site/markdown/mailet/quickstart.md
  src/homepage/about.md
  src/homepage/Gemfile.lock
  src/homepage/images/james-alt.svg
  src/homepage/images/james.svg
  src/homepage/_posts/2007-09-16-jspf-0.9.5.markdown
  src/homepage/_posts/2019-03-26-james-3.3.0.markdown
  src/homepage/_posts/2022-01-26-james-3.6.2.markdown
  src/homepage/_posts/2011-12-07-protocols-1.6.0-RC1.markdown
  src/homepage/_posts/2009-07-17-jMPT-0.1.markdown
  src/homepage/_posts/2023-06-20-fail2ban.markdown
  src/homepage/_posts/2007-04-05-JAMES-2.3.1-RC1.markdown
  src/homepage/_posts/2022-08-26-james-3.7.1.markdown
  src/homepage/_posts/2006-09-03-JSPF-0.9-b3.markdown
  src/homepage/_posts/2022-10-28-jspf-1.0.2.markdown
  src/homepage/_posts/2011-02-06-protocols-1.5.markdown
  src/homepage/_posts/2009-05-16-Mailet-crypto-0.1.markdown
  src/homepage/_posts/2012-01-07-mime4j-0.7.2.markdown
  src/homepage/_posts/2024-03-05-mime4j-0.8.11.markdown
  src/homepage/_posts/2007-04-15-JAMES-2.3.1.markdown
  src/homepage/_posts/2010-06-02-mailet-base-1.1.markdown
  src/homepage/_posts/2016-01-08-module-merge.markdown
  src/homepage/_posts/2016-02-08-moving-to-git.markdown
  src/homepage/_posts/2022-03-01-james-3.7.0.markdown
  src/homepage/_posts/2016-10-19-james-3.0.markdown
  src/homepage/_posts/2017-06-23-jsieve-0.7.markdown
  src/homepage/_posts/2018-05-07-mime4j-0.8.2.markdown
  src/homepage/_posts/2012-04-08-James-3.0-beta4.markdown
  src/homepage/_posts/2007-01-03-Mailet-api.markdown
  src/homepage/_posts/2007-05-15-mailet-api-lives.markdown
  src/homepage/_posts/2009-06-16-jsieve-03.markdown
  src/homepage/_posts/2016-11-19-james-3.0.markdown
  src/homepage/_posts/2019-08-30-latest-image-changes.markdown
  src/homepage/_posts/2015-10-08-james-2.3.1.markdown
  src/homepage/_posts/2011-01-06-imap-mailbox-0.2.markdown
  src/homepage/_posts/2011-11-07-jspf-1.0.0.markdown
  src/homepage/_posts/2021-12-02-james-3.6.1.markdown
  src/homepage/_posts/2021-09-21-james-joinsapachecon.markdown
  src/homepage/_posts/2017-10-02-BlogPostInstallingJames.markdown
  src/homepage/_posts/2022-10-07-jdkim-0.3.markdown
  src/homepage/_posts/2011-10-07-mime4j-0.7.1.markdown
  src/homepage/_posts/2010-05-01-mailet-1.0.markdown
  src/homepage/_posts/2019-03-19-mime4j-0.8.3.markdown
  src/homepage/_posts/2016-05-09-jmap.markdown
  src/homepage/_posts/2009-01-16-MAILET-2.4.markdown
  src/homepage/_posts/2006-10-03-JAMES-2.3.markdown
  src/homepage/_posts/2012-01-08-protocols-1.6.1.markdown
  src/homepage/_posts/2019-09-05-james-3.4.0.markdown
  src/homepage/_posts/2007-02-04-JSPF-0.9-beta4.markdown
  src/homepage/_posts/2009-10-17-jdkim.markdown
  src/homepage/_posts/2007-05-16-mime4j-0.3.markdown
  src/homepage/_posts/2020-07-16-james-3.5.0.markdown
  src/homepage/_posts/2011-03-06-jspf-0.9.9.markdown
  src/homepage/_posts/2009-03-16-Mime4j-0.6.markdown
  src/homepage/_posts/2010-05-02-jsieve-0.4.markdown
  src/homepage/_posts/2018-06-06-linagora-june-nl.markdown
  src/homepage/_posts/2024-01-08-mime4j-0.8.10.markdown
  src/homepage/_posts/2007-02-03-feathercast-fetures.markdown
  src/homepage/_posts/2018-11-14-james-3.2.0.markdown
  src/homepage/_posts/2010-12-06-protocols-1.2.markdown
  src/homepage/_posts/2010-11-06-james-3.0-M2.markdown
  src/homepage/_posts/2023-05-17-james-3.8.0.markdown
  src/homepage/_posts/2017-10-03-Hacktoberfest.markdown
  src/homepage/_posts/2016-07-09-jmap.markdown
  src/homepage/_posts/2008-10-16-mime4j-0.5.markdown
  src/homepage/_posts/2022-10-06-james-3.7.2.markdown
  src/homepage/_posts/2007-04-04-james-commiters-guidelines.markdown
  src/homepage/_posts/2022-12-30-james-3.7.3.markdown
  src/homepage/_posts/2009-02-16-MAILET-docs-plugin-0.1.markdown
  src/homepage/_posts/2015-09-08-james-2.3.1.markdown
  src/homepage/_posts/2020-10-29-testing-james-with-jmeter.markdown
  src/homepage/_posts/2009-06-17-jspf-0.9.7.markdown
  src/homepage/_posts/2010-09-04-imap-0.2-M1.markdown
  src/homepage/_posts/2023-03-20-james-3.7.4.markdown
  src/homepage/_posts/2009-08-17-james-2.3.2.markdown
  src/homepage/_posts/2018-01-26-admin-features.markdown
  src/homepage/_posts/2011-04-06-mime4J-0.7.markdown
  src/homepage/_posts/2017-07-20-james-3.0.markdown
  src/homepage/_posts/2017-05-16-mime4j-0.8.1.markdown
  src/homepage/_posts/2008-08-17-JSIEVE-0.2.markdown
  src/homepage/_posts/2010-11-05-james-3.0-M1.markdown
  src/homepage/_posts/2021-04-21-mime4j-0.8.4.markdown
  src/homepage/_posts/2022-12-30-mime4j-0.8.9.markdown
  src/homepage/_posts/2011-08-06-james-beta3.markdown
  src/homepage/_posts/2018-02-12-gsoc-2018.markdown
  src/homepage/_posts/2021-09-26-mime4j-0.8.6.markdown
  src/homepage/_posts/2016-07-19-jmap.markdown
  src/homepage/_posts/2008-03-16-gsoc-2008.markdown
  src/homepage/_posts/2019-11-19-apache-con-eu.markdown
  src/homepage/_posts/2011-05-06-jdKim0.2.markdown
  src/homepage/_posts/2009-09-17-hupa.markdown
  src/homepage/_posts/2010-06-03-jspf-0.9.8.markdown
  src/homepage/_posts/2022-10-28-mime4j-0.8.8.markdown
  src/homepage/_posts/2010-09-03-protocols-1.2-M2.markdown
  src/homepage/_posts/2021-03-16-james-3.6.0.markdown
  src/homepage/_posts/2016-09-19-james-3.0.markdown
  src/homepage/_posts/2022-04-01-mime4j-0.8.7.markdown
  src/homepage/_posts/2022-10-28-jsieve-0.8.markdown
  src/homepage/_posts/2009-04-16-Mailet-base-0.1.markdown
  src/homepage/_posts/2018-07-31-james-3.1.0.markdown
  src/homepage/_posts/2006-08-02-james-website-updates.markdown
  src/homepage/_posts/2008-08-16-mime4j-0.4.markdown
  src/homepage/_posts/2012-06-08-hupa-0.2.markdown
  src/homepage/_posts/2024-01-09-james-3.7.5.markdown
  src/homepage/_posts/2016-02-09-jmap.markdown
  src/homepage/_posts/2024-01-09-james-3.8.1.markdown
  src/homepage/_posts/2012-01-07-protocols-1.6.0.markdown
  src/homepage/_posts/2021-07-02-mime4j-0.8.5.markdown
  src/homepage/_posts/2006-08-03-2.3.0-RC3.markdown
  src/homepage/_posts/2011-10-06-protocols-1.6-beta2.markdown
  src/homepage/_posts/2017-10-20-james-3.0.1.markdown
  src/homepage/_posts/2017-05-16-james-3.0.0-rc1.markdown
  src/homepage/_posts/2008-04-16-jspf-0.9.6.markdown
  src/homepage/_posts/2012-12-08-mailet-2.5.0.markdown
  src/homepage/_posts/2006-07-02-2.3.0on-the-way.markdown
  src/homepage/_config.yml
  src/homepage/assets/css/font-awesome.min.css
  src/homepage/assets/css/main.css
  src/homepage/assets/css/lity.min.css
  src/homepage/assets/css/ie8.css
  src/homepage/assets/css/ie9.css
  src/homepage/assets/css/test.html
  src/homepage/assets/css/lightbox.css
  src/homepage/assets/fonts/fontawesome-webfont.svg
  src/homepage/assets/js/main.js
  src/homepage/assets/js/github-fetch.js
  src/homepage/assets/js/jquery.min.js
  src/homepage/assets/js/lightbox.js
  src/homepage/assets/js/ie/PIE.htc
  src/homepage/assets/js/ie/respond.min.js
  src/homepage/assets/js/ie/html5shiv.js
  src/homepage/assets/js/jquery.scrolly.min.js
  src/homepage/assets/js/skel.min.js
  src/homepage/assets/js/lity.min.js
  src/homepage/assets/js/util.js
  src/homepage/assets/js/jquery.scrollex.min.js
  src/homepage/.sass-cache/1d0a46e57975118413d176685dbd41641eaa56fa/_syntax-highlighting.scssc
  src/homepage/.sass-cache/1d0a46e57975118413d176685dbd41641eaa56fa/_base.scssc
  src/homepage/.sass-cache/1d0a46e57975118413d176685dbd41641eaa56fa/_layout.scssc
  src/homepage/.sass-cache/0d97c95486dbfb22208e2f940de32f180caddfba/minima.scssc
  src/homepage/_site/about.md
  src/homepage/_site/images/james-alt.svg
  src/homepage/_site/images/james.svg
  src/homepage/_site/assets/main.css
  src/homepage/_site/assets/css/font-awesome.min.css
  src/homepage/_site/assets/css/main.css
  src/homepage/_site/assets/css/lity.min.css
  src/homepage/_site/assets/css/ie8.css
  src/homepage/_site/assets/css/ie9.css
  src/homepage/_site/assets/css/test.html
  src/homepage/_site/assets/css/lightbox.css
  src/homepage/_site/assets/minima-social-icons.svg
  src/homepage/_site/assets/fonts/fontawesome-webfont.svg
  src/homepage/_site/assets/js/main.js
  src/homepage/_site/assets/js/github-fetch.js
  src/homepage/_site/assets/js/jquery.min.js
  src/homepage/_site/assets/js/lightbox.js
  src/homepage/_site/assets/js/ie/PIE.htc
  src/homepage/_site/assets/js/ie/respond.min.js
  src/homepage/_site/assets/js/ie/html5shiv.js
  src/homepage/_site/assets/js/jquery.scrolly.min.js
  src/homepage/_site/assets/js/skel.min.js
  src/homepage/_site/assets/js/lity.min.js
  src/homepage/_site/assets/js/util.js
  src/homepage/_site/assets/js/jquery.scrollex.min.js
  src/homepage-docker/Dockerfile
  src/homepage-docker/compile.sh
  src/site-docker/Dockerfile
  src/site-docker/compile.sh
  src/adr/0026-removing-configured-additional-mailboxListeners.md
  src/adr/0032-distributed-mail-queue-cleanup.md
  src/adr/0007-distributed-task-cancellation.md
  src/adr/0043-avoid-elasticsearch-on-critical-reads.md
  src/adr/0068-mutualize-cassandra-storge-for-quota.md
  src/adr/0066-modular-user-data-deletion.md
  src/adr/0039-distributed-blob-garbage-collector.md
  src/adr/0030-separate-attachment-content-and-metadata.md
  src/adr/0055-rspamd-spam-filtering.md
  src/adr/0044-against-the-use-of-cassandra-lightweight-transactions.md
  src/adr/0050-jmap-web-push.md
  src/adr/0002-make-taskmanager-distributed.md
  src/adr/0012-jmap-partial-reads.md
  src/adr/0038-distributed-eventbus.md
  src/adr/0031-distributed-mail-queue.md
  src/adr/0004-distributed-tasks-listing.md
  src/adr/0027-eventBus-error-handling-upon-dispatch.md
  src/adr/0021-cassandra-acl-inconsistency.md
  src/adr/0023-cassandra-mailbox-counters-inconsistencies.md
  src/adr/0063-temporary-file-leaks.md
  src/adr/0069-crowdsec-IP-filtering.md
  src/adr/0037-eventbus.md
  src/adr/0049-deduplicated-blobs-gs-with-bloom-filters.md
  src/adr/0024-polyglot-strategy.md
  src/adr/0060-adopt-bounded-elastic.md
  src/adr/0058-upgrade-to-netty-4.md
  src/adr/0042-applicative-read-repairs.md
  src/adr/0048-cleanup-jmap-uploads.md
  src/adr/0015-objectstorage-blobid-list.md
  src/adr/0017-file-mail-queue-deprecation.md
  src/adr/0020-cassandra-mailbox-object-consistency.md
  src/adr/0047-jmap-push-over-websockets.md
  src/adr/0009-disable-elasticsearch-dynamic-mapping.md
  src/adr/0006-task-serialization.md
  src/adr/0057-reactive-imap.md
  src/adr/0051-oidc.md
  src/adr/0019-reactor-netty-adoption.md
  src/adr/0054-elasticsearch-search-overrides.md
  src/adr/0040-quality-levels-definitions.md
  src/adr/0056-opensearch-migration.md
  src/adr/0042-james-cli-based-on-webadmin.md
  src/adr/0003-distributed-workqueue.md
  src/adr/0009-java-11-migration.md
  src/adr/0065-changing-username.md
  src/adr/0025-cassandra-blob-store-cache.md
  src/adr/0029-Cassandra-mailbox-deletion-cleanup.md
  src/adr/0064-account-delegation.md
  src/adr/0046-generalize-event-bus.md
  src/adr/0001-record-architecture-decisions.md
  src/adr/0034-mailbox-api-visibility-and-usage.md
  src/adr/0018-jmap-new-specs.md
  src/adr/0035-distributed-listeners-configuration.md
  src/adr/0062-oidc-token-introspection.md
  src/adr/0041-replace-jcloud-with-s3.md
  src/adr/0036-against-use-of-conditional-statements-in-guice-modules.md
  src/adr/0011-remove-elasticsearch-document-source.md
  src/adr/0059-upgrade-to-cassadra-driver-4.md
  src/adr/0016-distributed-workqueue.md
  src/adr/0052-pulsar-mailqueue.md
  src/adr/0014-blobstore-storage-policies.md
  src/adr/0008-distributed-task-await.md
  src/adr/0053-email-rate-limiting.md
  src/adr/0013-precompute-jmap-preview.md
  src/adr/0067-quota-for-jmap-uploads.md
  src/adr/0028-Recompute-mailbox-quotas.md
  src/adr/0070-postgresql-adoption.md
  src/adr/0022-cassandra-message-inconsistency.md
  src/adr/0005-distributed-task-termination-ackowledgement.md
  src/adr/0033-use-scala-in-event-sourcing-modules.md
  src/adr/0061-delegation.md
  src/adr/0045-support-jmap-push-with-mailbox-changes-implementation.md
  src/adr/0010-enable-elasticsearch-routing.md
  protocols/smtp/src/test/resources/a50.eml
  server/README.crypto
  server/queue/queue-memory/pom.xml
  server/apps/memory-app/src/main/extensions-jars/README.md
  server/apps/memory-app/src/main/scripts/james-cli
  server/apps/memory-app/src/test/resources/jwt_publickey
  server/apps/memory-app/src/assemble/README.adoc
  server/apps/memory-app/src/assemble/extensions-jars.txt
  server/apps/memory-app/README.md
  server/apps/memory-app/sample-configuration/extensions.properties
  server/apps/memory-app/sample-configuration/deletedMessageVault.properties
  server/apps/memory-app/sample-configuration/jvm.properties
  server/apps/memory-app/sample-configuration/jmap.properties
  server/apps/webadmin-cli/src/test/resources/jwt_publickey
  server/apps/webadmin-cli/src/test/resources/valid_token_admin_false.jwt
  server/apps/webadmin-cli/src/test/resources/valid_token_admin_true.jwt
  server/apps/webadmin-cli/README.md
  server/apps/webadmin-cli/james-cli
  server/apps/scaling-pulsar-smtp/docker-compose.yml
  server/apps/scaling-pulsar-smtp/README.adoc
  server/apps/scaling-pulsar-smtp/src/main/scripts/james-cli
  server/apps/scaling-pulsar-smtp/sample-configuration/extensions.properties
  server/apps/scaling-pulsar-smtp/sample-configuration/pulsar.properties
  server/apps/scaling-pulsar-smtp/sample-configuration/scriptFile.scala
  server/apps/scaling-pulsar-smtp/sample-configuration/jvm.properties
  server/apps/scaling-pulsar-smtp/sample-configuration/logback.xml
  server/apps/scaling-pulsar-smtp/sample-configuration/blob.properties
  server/apps/spring-app/README.crypto
  server/apps/spring-app/src/main/resources/log4j2.xml
  server/apps/spring-app/src/main/resources/jmxremote.access
  server/apps/spring-app/src/main/resources/jmxremote.password
  server/apps/spring-app/src/main/licensing/app/notice-for-binary.txt
  server/apps/spring-app/src/debian/control/control
  server/apps/distributed-pop3-app/docker-configuration/jvm.properties
  server/apps/distributed-pop3-app/docker-compose.yml
  server/apps/distributed-pop3-app/README.adoc
  server/apps/distributed-pop3-app/src/main/extensions-jars/README.md
  server/apps/distributed-pop3-app/src/main/scripts/james-cli
  server/apps/distributed-pop3-app/src/test/resources/attachment.eml
  server/apps/distributed-pop3-app/src/test/resources/big.eml
  server/apps/distributed-pop3-app/src/test/resources/batchsizes.properties
  server/apps/distributed-pop3-app/src/test/resources/rabbitmq.properties
  server/apps/distributed-pop3-app/sample-configuration/extensions.properties
  server/apps/distributed-pop3-app/sample-configuration/deletedMessageVault.properties
  server/apps/distributed-pop3-app/sample-configuration/jvm.properties
  server/apps/distributed-pop3-app/sample-configuration/logback.xml
  server/apps/distributed-pop3-app/sample-configuration/cassandra-driver.conf
  server/apps/distributed-pop3-app/sample-configuration/batchsizes.properties
  server/apps/distributed-pop3-app/sample-configuration/blob.properties
  server/apps/distributed-pop3-app/sample-configuration/cassandra.properties
  server/apps/distributed-pop3-app/sample-configuration/rabbitmq.properties
  server/apps/jpa-smtp-app/docker-compose.yml
  server/apps/jpa-smtp-app/README.adoc
  server/apps/jpa-smtp-app/src/main/extensions-jars/README.md
  server/apps/jpa-smtp-app/src/main/scripts/james-cli
  server/apps/jpa-smtp-app/src/assemble/extensions-jars.txt
  server/apps/jpa-smtp-app/conf/extensions.properties
  server/apps/jpa-smtp-app/conf/jvm.properties
  server/apps/jpa-smtp-app/conf/logback.xml
  server/apps/jpa-smtp-app/sample-configuration/extensions.properties
  server/apps/jpa-smtp-app/sample-configuration/jvm.properties
  server/apps/jpa-smtp-app/sample-configuration/logback.xml
  server/apps/conf/jmxremote.access
  server/apps/conf/jmxremote.password
  server/apps/demo/initialdata.sh
  server/apps/demo/Dockerfile
  server/apps/demo/startup.sh
  server/apps/cli/README.adoc
  server/apps/distributed-app/docker-configuration/jvm.properties
  server/apps/distributed-app/docker-compose.yml
  server/apps/distributed-app/helm-chart/james/templates/secrets.yaml
  server/apps/distributed-app/helm-chart/james/templates/servicemonitor.yaml
  server/apps/distributed-app/helm-chart/james/templates/james-admin-ingress.yaml
  server/apps/distributed-app/helm-chart/james/templates/_docker-secrets.tpl
  server/apps/distributed-app/helm-chart/james/templates/_helpers.tpl
  server/apps/distributed-app/helm-chart/james/templates/jmap-ingress.yaml
  server/apps/distributed-app/helm-chart/james/templates/deployment.yaml
  server/apps/distributed-app/helm-chart/james/templates/service.yaml
  server/apps/distributed-app/helm-chart/james/templates/_urls.tpl
  server/apps/distributed-app/helm-chart/james/templates/configmaps.yaml
  server/apps/distributed-app/helm-chart/james/secrets.sample.yaml
  server/apps/distributed-app/helm-chart/james/Chart.yaml
  server/apps/distributed-app/helm-chart/james/values.yaml
  server/apps/distributed-app/helm-chart/james/configs/webadmin.properties
  server/apps/distributed-app/helm-chart/james/configs/logback.xml
  server/apps/distributed-app/helm-chart/james/configs/jmap.properties
  server/apps/distributed-app/helm-chart/james/configs/batchsizes.properties
  server/apps/distributed-app/helm-chart/james/configs/blob.properties
  server/apps/distributed-app/helm-chart/james/configs/cassandra.properties
  server/apps/distributed-app/helm-chart/james/configs/rabbitmq.properties
  server/apps/distributed-app/helm-chart/README.md
  server/apps/distributed-app/docker-compose-with-pulsar.yml
  server/apps/distributed-app/README.adoc
  server/apps/distributed-app/src/main/extensions-jars/README.md
  server/apps/distributed-app/src/main/scripts/james-cli
  server/apps/distributed-app/src/test/resources/batchsizes.properties
  server/apps/distributed-app/src/test/resources/rabbitmq.properties
  server/apps/distributed-app/src/assemble/extensions-jars.txt
  server/apps/distributed-app/sample-configuration/extensions.properties
  server/apps/distributed-app/sample-configuration/deletedMessageVault.properties
  server/apps/distributed-app/sample-configuration/queue-pulsar.properties
  server/apps/distributed-app/sample-configuration/pulsar.properties
  server/apps/distributed-app/sample-configuration/jvm.properties
  server/apps/distributed-app/sample-configuration/queue.properties
  server/apps/distributed-app/sample-configuration/logback.xml
  server/apps/distributed-app/sample-configuration/jmap.properties
  server/apps/distributed-app/sample-configuration/cassandra-driver.conf
  server/apps/distributed-app/sample-configuration/batchsizes.properties
  server/apps/distributed-app/sample-configuration/blob.properties
  server/apps/distributed-app/sample-configuration/cassandra.properties
  server/apps/distributed-app/sample-configuration/rabbitmq.properties
  server/apps/distributed-app/docs/ui-overrides/partials/header-content.hbs
  server/apps/distributed-app/docs/ui-overrides/img/james.svg
  server/apps/distributed-app/docs/modules/ROOT/nav.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/architecture/implemented-standards.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/architecture/specialized-instances.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/architecture/index.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/architecture/consistency-model.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/objectives.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/operate/metrics.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/operate/security.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/operate/migrating.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/operate/guide.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/operate/performanceChecklist.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/operate/webadmin.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/operate/logging.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/operate/index.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/operate/cassandra-migration.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/operate/cli.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/db-benchmark.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/james-benchmark.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/provision.sh
  server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/index.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/index.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/extending/mail-processing.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/extending/smtp-hooks.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/extending/imap.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/extending/webadmin-routes.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/extending/mailbox-listeners.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/extending/index.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-secrets.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-logsMetrics.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/run/run-docker.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/run/run-kubernetes.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-values.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/run/index.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/run/run-java.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-checklist.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/collecting-events.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/matchers.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/mailets.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/batchsizes.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/smtp-hooks.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/domainlist.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/queue.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/dsn.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/jmx.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/cassandra.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/tika.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/jvm.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/jmap.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/mailrepositorystore.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/collecting-contacts.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/search.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/blobstore.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/extensions.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/sieve.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/listeners.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/vault.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/imap.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/ssl.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/smtp.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/mailetcontainer.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/webadmin.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/recipientrewritetable.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/rabbitmq.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/spam.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/remote-delivery-error-handling.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/index.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/dns.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/redis.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/healthcheck.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/usersrepository.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/opensearch.adoc
  server/apps/distributed-app/docs/modules/ROOT/pages/configure/pop3.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/IsOverQuota.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasHeaderWithPrefix.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ManageSieveMailet.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/AddFooter.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/FileRegexMatcher.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/AtMostPriority.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RecipientToLowerCase.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/Expires.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/AmqpForwardAttribute.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/LogMessage.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ClamAVScan.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/MailAttributesToMimeHeaders.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RemoveMimeHeader.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SenderIsNull.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SerialiseToHTTP.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ClassifyBounce.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/IsSMIMESigned.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SubjectIs.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ToPlainText.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/WithStorageDirective.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/IsSMIMEEncrypted.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/AtMost.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ExtractMDNOriginalJMAPMessageId.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RecipientRewriteTable.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RecipientIsLocal.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RemoveMimeHeaderByPrefix.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ConvertTo7Bit.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HostIs.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/UserIs.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/XOriginatingIpInNetwork.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ICalendarParser.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasPriority.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/LocalDelivery.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/NESSpamCheck.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SPF.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/TextCalendarBodyToAttachment.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/WithPriority.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SpamAssassin.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/Forward.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RecipientDomainIs.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SMTPIsAuthNetwork.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasMailAttributeWithValueRegex.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ReplaceContent.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RemoteAddrInNetwork.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/NotifyPostmaster.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HeadersToHTTP.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/CommandForListserv.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RandomStoring.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/PostmasterAlias.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SMIMECheckSignature.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RecoverAttachment.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/StripAttachment.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/DKIMSign.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/TooManyRecipients.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RemoveAllMailAttributes.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ICALToHeader.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasMimeTypeAnySubPart.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/AttachmentFileNameIs.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/MimeDecodingMailet.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/IsX509CertificateSubject.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/Bounce.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/WrapText.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/DKIMVerify.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/IsSenderInRRTLoop.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SetMimeHeader.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/Redirect.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RelayLimit.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ICALToJsonAttribute.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SenderIs.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/TooManyLines.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/IsSingleRecipient.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ToRepository.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SenderInFakeDomain.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/Null.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/IsRemoteDeliveryPermanentError.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RemoteDelivery.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ServerTime.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/AddSubjectPrefix.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RemoveMailAttribute.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/Resend.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasException.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasHabeasWarrantMark.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/UnwrapText.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ToSenderDomainRepository.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/VacationMailet.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasAttachment.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/All.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/CommandListservMatcher.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/Sieve.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ToProcessor.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/MailAttributesListToMimeHeaders.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/FetchedFrom.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HostIsLocal.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SetMailAttribute.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasMimeTypeParameter.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RemoteAddrNotInNetwork.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/AtLeastPriority.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ContactExtractor.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/Sign.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasMailAttributeWithValue.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/DSNBounce.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RemoteDeliveryFailedWithSMTPCode.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasMailAttribute.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ToSenderFolder.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SenderHostIsLocal.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/CompareNumericHeaderValue.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RecipientIsRegex.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/NotifySender.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SMIMESign.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SubjectStartsWith.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SenderDomainIs.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/IsRemoteDeliveryTemporaryError.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SentByMailet.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/DLP.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SenderIsLocal.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/RecipientIs.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/FromRepository.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/InSpammerBlacklist.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SenderHostIs.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/IsMarkedAsSpam.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SMTPAuthSuccessful.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasHeader.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/HasMimeType.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/OnlyText.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/UseHeaderRecipients.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SentByJmap.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/ICSSanitizer.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SenderIsRegex.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/AddHabeasWarrantMark.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/MetricsMailet.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SMTPAuthUserIs.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/AddDeliveredToHeader.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SMIMEDecrypt.adoc
  server/apps/distributed-app/docs/modules/ROOT/partials/SizeGreaterThan.adoc
  server/apps/distributed-app/docs/README.md
  server/apps/distributed-app/docs/antora-playbook-local.yml
  server/apps/distributed-app/docs/antora.yml
  server/apps/cli-integration-tests/src/test/resources/jwt_publickey
  server/apps/cassandra-app/docker-configuration/jvm.properties
  server/apps/cassandra-app/docker-compose.yml
  server/apps/cassandra-app/README.adoc
  server/apps/cassandra-app/src/main/extensions-jars/README.md
  server/apps/cassandra-app/src/main/scripts/james-cli
  server/apps/cassandra-app/src/test/resources/ldif-files/populate.ldif
  server/apps/cassandra-app/src/test/resources/batchsizes.properties
  server/apps/cassandra-app/src/assemble/extensions-jars.txt
  server/apps/cassandra-app/sample-configuration/extensions.properties
  server/apps/cassandra-app/sample-configuration/deletedMessageVault.properties
  server/apps/cassandra-app/sample-configuration/jvm.properties
  server/apps/cassandra-app/sample-configuration/logback.xml
  server/apps/cassandra-app/sample-configuration/jmap.properties
  server/apps/cassandra-app/sample-configuration/cassandra-driver.conf
  server/apps/cassandra-app/sample-configuration/batchsizes.properties
  server/apps/cassandra-app/sample-configuration/activemq.properties
  server/apps/cassandra-app/sample-configuration/blob.properties
  server/apps/cassandra-app/sample-configuration/cassandra.properties
  server/apps/jpa-app/docker-compose.yml
  server/apps/jpa-app/README.adoc
  server/apps/jpa-app/src/main/extensions-jars/README.md
  server/apps/jpa-app/src/main/scripts/james-cli
  server/apps/jpa-app/src/assemble/extensions-jars.txt
  server/apps/jpa-app/sample-configuration/extensions.properties
  server/apps/jpa-app/sample-configuration/jwt_publickey
  server/apps/jpa-app/sample-configuration/jvm.properties
  server/apps/jpa-app/sample-configuration/logback.xml
  server/blob/blob-cassandra/src/test/resources/cassandra-driver.conf
  server/protocols/protocols-pop3-distributed/src/test/resources/pop3server.xml
  server/protocols/webadmin/webadmin-mailrepository/src/test/resources/mail.eml
  server/protocols/webadmin/webadmin-data/src/test/resources/sieve/my_sieve
  server/protocols/webadmin/webadmin-pop3/README.md
  server/protocols/webadmin/webadmin-mail-over-web/src/test/resources/message/rfc822/message.eml
  server/protocols/webadmin/webadmin-mail-over-web/src/test/resources/message/rfc822/message-without-from.eml
  server/protocols/webadmin/webadmin-mail-over-web/src/test/resources/message/rfc822/message-without-tos.eml
  server/protocols/jmap-draft/doc/annotation.css
  server/protocols/jmap-draft/doc/Dockerfile
  server/protocols/jmap-draft/doc/specs/client-guide/jmap-client-guide.mdwn
  server/protocols/jmap-draft/doc/specs/home/faq.mdwn
  server/protocols/jmap-draft/doc/specs/software/software.mdwn
  server/protocols/jmap-draft/doc/specs/server-guide/jmap-server-guide.mdwn
  server/protocols/jmap-draft/doc/specs/spec/vacationresponse.mdwn
  server/protocols/jmap-draft/doc/specs/spec/searchsnippet.mdwn
  server/protocols/jmap-draft/doc/specs/spec/push.mdwn
  server/protocols/jmap-draft/doc/specs/spec/calendarevent.mdwn
  server/protocols/jmap-draft/doc/specs/spec/thread.mdwn
  server/protocols/jmap-draft/doc/specs/spec/mailbox.mdwn
  server/protocols/jmap-draft/doc/specs/spec/message.mdwn
  server/protocols/jmap-draft/doc/specs/spec/account.mdwn
  server/protocols/jmap-draft/doc/specs/spec/contactgroup.mdwn
  server/protocols/jmap-draft/doc/specs/spec/calendar.mdwn
  server/protocols/jmap-draft/doc/specs/spec/contactlist.mdwn
  server/protocols/jmap-draft/doc/specs/spec/contact.mdwn
  server/protocols/jmap-draft/doc/specs/spec/upload.mdwn
  server/protocols/jmap-draft/doc/specs/spec/authentication.mdwn
  server/protocols/jmap-draft/doc/specs/spec/messagelist.mdwn
  server/protocols/jmap-draft/doc/specs/spec/apimodel.mdwn
  server/protocols/jmap-draft/doc/specs/spec/calendareventlist.mdwn
  server/protocols/jmap-draft/doc/specs/spec/datamodel.mdwn
  server/protocols/jmap-draft/doc/mkdocs.yml
  server/protocols/jmap-draft/doc/README.md
  server/protocols/jmap-draft/src/main/resources/jwt-public.der
  server/protocols/jmap-draft/src/test/resources/noReplyTo.eml
  server/protocols/jmap-draft/src/test/resources/inlineAttachment.eml
  server/protocols/jmap-draft/src/test/resources/spamMail.eml
  server/protocols/jmap-draft/src/test/resources/key.pub
  server/protocols/jmap-draft/src/test/resources/fullMessage.eml
  server/protocols/jmap-draft/src/test/resources/example.html
  server/protocols/jmap-draft/src/test/resources/private.nopass.key
  server/protocols/jmap-draft/src/test/resources/oneAttachment.eml
  server/protocols/jmap-draft/src/test/resources/emptyBodyMessageWithOneAttachment.eml
  server/protocols/jmap-draft/src/test/resources/calendar.eml
  server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/OldKeywordTest.java
  server/protocols/jmap-rfc-8621/doc/specs/rfc/src/jmap.mdown
  server/protocols/jmap-rfc-8621/doc/specs/rfc/src/quotas.mdown
  server/protocols/jmap-rfc-8621/doc/specs/rfc/src/mail.mdown
  server/protocols/jmap-rfc-8621/doc/specs/README.md
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/message.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/mailbox.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/identity.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/identitySortOrder.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/messagesubmission.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/rights.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/securityconsiderations.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/thread.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/ianaconsiderations.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/searchsnippet.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/vacationresponse.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/delegation.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/mail/intro.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/custom-quotas/quotas.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/securityconsiderations.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/ianaconsiderations.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/quota.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/intro.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/push.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/securityconsiderations.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/session.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/ianaconsiderations.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/binary.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/api.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/intro.mdown
  server/protocols/jmap-rfc-8621/doc/specs/spec/authentication.mdown
  server/protocols/jmap-rfc-8621/doc/README.md
  server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/PushSubscriptionSetCreatePerformer.scala
  server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/delegation/DelegatedAccountSet.scala
  server/protocols/protocols-smtp/src/test/resources/log4j.xml
  server/protocols/protocols-smtp/src/test/resources/smtpserver-advancedSecurity.xml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/twoSameAttachments.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlMail.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlWithLongAndComplicatedContent.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/ics_in_header.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlBodyWithManyEmptyTags.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/mailWithInlinedAttachmentAndBlankCid.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/windows1252charset.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/embeddedMultipartWithInlineTextAttachment.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/mailWithRecipients.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/noTextBodyButHtmlBody.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneInlinedImageWithoutContentDisposition.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/twoAttachments.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneAttachment.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/multipartRelated.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneInlinedImage.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/sameInlinedImages.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/inlinedWithoutContentID.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlAndTextMultipartWithOneAttachment.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/longLine.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/textInMainMultipartHtmlInInnerMultipart.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/twoAttachmentsTextPlain.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneAttachment-part1.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/inlinedWithoutContentDisposition.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/calendar.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/inlinedMultipart.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/mailWithInlinedAttachmentButNoCid.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneAttachment-part2.eml
  server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/attachment/nonIndexableAttachment.html
  server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml
  server/protocols/protocols-library/src/test/resources/testServerTLSDefaultAuth.xml
  server/protocols/protocols-library/src/test/resources/testServerDisabled.xml
  server/protocols/protocols-library/src/test/resources/testServerStartTLS.xml
  server/protocols/protocols-library/src/test/resources/testServerTLSNeedAuth.xml
  server/protocols/protocols-library/src/test/resources/testServerDefaults.xml
  server/protocols/protocols-library/src/test/resources/testServerPlain.xml
  server/protocols/protocols-library/src/test/resources/testServerTLS.xml
  server/protocols/protocols-managesieve/pom.xml
  server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/jwt_publickey
  server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/eml/emailWithOnlyAttachment.eml
  server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/jwt_publickey
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/rtf.mp.alt.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/multipart_report.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/nested.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/inlined-single-attachment.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mdn_complex.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/related_in_alternative_multipart.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/alternative.cal.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/html.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/inlined-mixed.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/multipart_simple.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mdn_simple.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/multipart_complex.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/nested_mixed_alternative.txt
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mdn_relate_original_message.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/iso-8859-1.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mixed_alternative.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/alternative.eml
  server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/nested2.eml
  server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/jmap.properties
  server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/jmap.properties
  server/protocols/protocols-pop3/src/test/resources/pop3server.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslJKSNotFound.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslPEM.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthAllowed.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSSLCompress.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslDefaultJKS.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthEnabledWithoutRequireSSL.xml
  server/protocols/protocols-imap4/src/test/resources/oauth.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsTrueAndStartSSLIsFalse.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthDisabled.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMBadPass.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerProxy.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslPKCS12.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSSL.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMNoPass.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerCompress.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerImapConnectCheck.xml
  server/protocols/protocols-imap4/src/test/resources/private.nopass.key
  server/protocols/protocols-imap4/src/test/resources/imapServerSslPKCS12MissingPassword.xml
  server/protocols/protocols-imap4/src/test/resources/imapServer.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslJKSBadPassword.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMExtraPass.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerNoLimits.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslNoKeys.xml
  server/protocols/protocols-imap4/src/test/resources/imapSSL.xml
  server/protocols/protocols-imap4/src/test/resources/private.key
  server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsFalseAndStartSSLIsTrue.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsTrueAndStartSSLIsTrue.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthDisallowed.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerStartTLS.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslJKS.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMMissingPass.xml
  server/protocols/protocols-imap4/src/test/resources/certs.csr
  server/protocols/protocols-imap4/src/test/resources/certs.self-signed.csr
  server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsFalseAndStartSSLIsFalse.xml
  server/protocols/protocols-imap4/src/test/resources/imapServerSslPKCS12WrongPassword.xml
  server/Overview.md
  server/mailet/rate-limiter-redis/redis.properties
  server/mailet/rate-limiter-redis/extensions.properties
  server/mailet/rate-limiter-redis/docker-compose.yml
  server/mailet/rate-limiter-redis/README.adoc
  server/mailet/integration-testing/src/main/resources/eml/message-multipart-8bit.eml
  server/mailet/integration-testing/src/main/resources/eml/crypted.eml
  server/mailet/integration-testing/src/main/resources/eml/message-multipart-7bit.eml
  server/mailet/integration-testing/src/main/resources/eml/dlp_read_mail_with_attachment.eml
  server/mailet/integration-testing/src/main/resources/eml/message-text-only-8bit.eml
  server/mailet/integration-testing/src/main/resources/eml/crypted_with_attachment.eml
  server/mailet/integration-testing/src/main/resources/eml/message-text-only-7bit.eml
  server/mailet/integration-testing/src/main/resources/eml/calendar.eml
  server/mailet/integration-testing/src/main/resources/eml/bad_crypted.eml
  server/mailet/integration-testing/src/main/resources/eml/yahooInvitation.eml
  server/mailet/rate-limiter/extensions.properties
  server/mailet/rate-limiter/docker-compose.yml
  server/mailet/rate-limiter/README.adoc
  server/mailet/mailets/src/main/resources/managesieve.help.txt
  server/mailet/mailets/src/test/resources/noReplyTo.eml
  server/mailet/mailets/src/test/resources/spamMail.eml
  server/mailet/mailets/src/test/resources/eml/gmail.eml
  server/mailet/mock-smtp-server/README.adoc
  server/mailet/mock-smtp-server/src/main/jib/logback.xml
  server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConfigurationClientTest.java
  server/container/filesystem-api/src/test/resources/classpathTest.txt
  server/container/filesystem-api/src/test/resources/class path Test.txt
  server/container/core/src/test/resources/JAMES-1593.eml
  server/container/core/src/test/resources/mail-containing-unicode-characters.eml
  server/container/guice/memory/README.md
  server/container/guice/configuration/src/test/resources/b.properties
  server/container/guice/configuration/src/test/resources/a.properties
  server/container/guice/configuration/src/test/resources/env.properties
  server/container/guice/common/src/test/resources/eml/mail-containing-unicode-characters.eml
  server/container/guice/common/src/test/resources/test.properties
  server/container/guice/protocols/webadmin/src/test/resources/webadmin-two.properties
  server/container/guice/protocols/webadmin/src/test/resources/webadmin-one.properties
  server/container/guice/protocols/webadmin/src/test/resources/webadmin-empty.properties
  server/container/guice/protocols/webadmin/src/test/resources/webadmin-none.properties
  server/container/guice/utils/src/test/resources/extensions-empty.properties
  server/container/guice/utils/src/test/resources/extensions-two.properties
  server/container/guice/utils/src/test/resources/extensions-none.properties
  server/container/guice/utils/src/test/resources/extensions-one.properties
  server/container/guice/testing/custom-mailets/README.md
  server/container/guice/cassandra/src/test/resources/modules/mailbox/cassandra.properties
  server/container/mailbox-jmx/src/test/resources/eml/frnog.eml
  server/data/data-library/src/test/resources/sieve/my_sieve
  server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
  server/data/data-ldap/src/test/resources/usersrepository-enableVirtualHosting.xml
  server/data/data-ldap/src/test/resources/invalid/ldif-files/populate.ldif
  server/data/data-ldap/src/test/resources/localpartLogin/ldif-files/populate.ldif
  server/data/data-ldap/src/test/resources/ldif-files/populate.ldif
  server/data/data-ldap/src/test/resources/usersrepository-supportsVirtualHosting.xml
  server/data/data-ldap/src/test/resources/usersrepository-default.xml
  server/data/data-jpa/src/test/resources/log4j.properties
  server/data/data-file/src/test/resources/org/apache/james/mailrepository/testdata/Inbox
  server/data/data-jmap/src/test/java/org/apache/james/jmap/api/upload/UploadUsageRepositoryContract.scala
  server/grafana-reporting/prometheus-datasource/README.md
  server/grafana-reporting/es-datasource/README.md
  mailet/icalendar/src/test/resources/ics_in_header.eml
  mailet/icalendar/src/test/resources/ics/no_event.ics
  mailet/icalendar/src/test/resources/ics/meeting_without_dtstamp.ics
  mailet/icalendar/src/test/resources/ics/ics_with_error.ics
  mailet/icalendar/src/test/resources/ics/meeting_without_sequence.ics
  mailet/icalendar/src/test/resources/ics/meeting_2.ics
  mailet/icalendar/src/test/resources/ics/meeting_without_uid.ics
  mailet/icalendar/src/test/resources/ics/meeting.ics
  mailet/icalendar/src/test/resources/ics/meeting_without_method.ics
  mailet/standard/src/test/resources/mime/sendToRemoteHttp.mime
  mailet/standard/src/test/resources/mime/gmail.mime
  mailet/standard/src/test/resources/mime/headerFolded.mime
  mailet/standard/src/test/resources/mime/space.eml
  mailet/standard/src/test/resources/mime/incorrect-headers.mime
  mailet/standard/LICENSE.apache
  mailet/standard/LICENSE.activation
  mailet/standard/LICENSE.mail
  mailet/base/src/test/resources/eml/text-only-7bit.eml
  mailet/base/src/test/resources/eml/multipart-7bit.eml
  mailet/base/src/test/resources/eml/multipart-7bit-attachment-content.txt
  mailet/base/src/test/resources/eml/multipart-8bit-attachment-content.txt
  mailet/base/src/test/resources/eml/multipart-8bit.eml
  mailet/base/src/test/resources/eml/text-only-8bit.eml
  examples/custom-webadmin-route/README.md
  examples/metrics-graphite/docker-compose.yml
  examples/metrics-graphite/james/extensions.properties
  examples/metrics-graphite/README.md
  examples/custom-smtp-hooks/README.md
  examples/proxy-smtp/docker-compose.yml
  examples/proxy-smtp/haproxy.cfg
  examples/proxy-smtp/README.md
  examples/custom-smtp-command/README.md
  examples/custom-listeners/README.md
  examples/custom-imap/docker-compose.yml
  examples/custom-imap/README.md
  examples/custom-mailets/README.md
  examples/custom-healthcheck/README.md
  examples/README.md
  examples/imap-autoconf/content/mail/config-v1.1.xml
  examples/imap-autoconf/content/Autodiscover/Autodiscover.xml
  examples/imap-autoconf/content/.well-known/autoconfig/mail/config-v1.1.xml
  examples/imap-autoconf/content/autodiscover/autodiscover.xml
  examples/imap-autoconf/docker-compose.yml
  examples/imap-autoconf/README.adoc
  examples/imap-autoconf/default.conf
  examples/custom-james-assembly/README.md
  examples/oidc/test.sh
  examples/oidc/docker-compose.yml
  examples/oidc/james/imapserver.xml
  examples/oidc/james/jmap.properties
  examples/oidc/james/smtpserver.xml
  examples/oidc/_media/oidc-sso.drawio
  examples/oidc/_media/oidc-slo.drawio
  examples/oidc/_media/IMAP_SMTP oidc.drawio
  examples/oidc/apisix/conf/apisix.yaml
  examples/oidc/apisix/conf/config.yaml
  examples/oidc/README.md
  examples/oidc/ldap/populate.ldif
  mailbox/spring/src/test/README.md
  mailbox/plugin/quota-mailing/src/main/resources/templates/QuotaThresholdMailBody.mustache
  mailbox/plugin/quota-mailing/src/main/resources/templates/QuotaThresholdMailSubject.mustache
  mailbox/plugin/quota-mailing/src/test/resources/templates/body1.mustache
  mailbox/plugin/quota-mailing/src/test/resources/templates/body2.mustache
  mailbox/plugin/quota-mailing/src/test/resources/templates/subject2.mustache
  mailbox/plugin/quota-mailing/src/test/resources/templates/subject1.mustache
  mailbox/opensearch/src/test/resources/eml/emailWith3Attachments.eml
  mailbox/opensearch/src/test/resources/eml/mailCustomStringHeader.eml
  mailbox/opensearch/src/test/resources/eml/bodyMakeTikaToFail.eml
  mailbox/opensearch/src/test/resources/eml/alternative_simple.eml
  mailbox/opensearch/src/test/resources/eml/mailCustomDateHeader.eml
  mailbox/opensearch/src/test/resources/eml/inlined-mixed.eml
  mailbox/opensearch/src/test/resources/eml/mailWithHeaders.eml
  mailbox/opensearch/src/test/resources/eml/htmlContent.txt
  mailbox/opensearch/src/test/resources/eml/alternative.eml
  mailbox/memory/src/test/resources/test.eml
  mailbox/tika/src/test/resources/documents/Text.txt
  mailbox/api/src/test/resources/eml/twoAttachmentsApi.eml
  mailbox/README.md
  mailbox/var/store/derby/db.lck
  mailbox/var/store/derby/service.properties
  mailbox/var/store/derby/log/README_DO_NOT_TOUCH_FILES.txt
  mailbox/var/store/derby/README_DO_NOT_TOUCH_FILES.txt
  mailbox/var/store/derby/seg0/README_DO_NOT_TOUCH_FILES.txt
  mailbox/var/store/lucene/write.lock
  mailbox/store/src/test/resources/eml/pgpSignedMail.eml
  mailbox/store/src/test/resources/eml/htmlMail.eml
  mailbox/store/src/test/resources/eml/mail4.eml
  mailbox/store/src/test/resources/eml/recursiveMail.eml
  mailbox/store/src/test/resources/eml/emailWithNonIndexableAttachment.eml
  mailbox/store/src/test/resources/eml/mailWithLongHeaders.eml
  mailbox/store/src/test/resources/eml/calendar2.eml
  mailbox/store/src/test/resources/eml/signedMessage.eml
  mailbox/store/src/test/resources/eml/oneAttachmentWithSimpleContentType.eml
  mailbox/store/src/test/resources/eml/mail5.eml
  mailbox/store/src/test/resources/eml/multiAttachmentsWithOneWrongContentDisposition.eml
  mailbox/store/src/test/resources/eml/spamMail.eml
  mailbox/store/src/test/resources/eml/mail.eml
  mailbox/store/src/test/resources/eml/mailWithManyHeaders.eml
  mailbox/store/src/test/resources/eml/oneAttachmentWithEmptyContentType.eml
  mailbox/store/src/test/resources/eml/oneInlinedAttachmentWithNoCid.eml
  mailbox/store/src/test/resources/eml/invalidCharset.eml
  mailbox/store/src/test/resources/eml/headerWithDot.eml
  mailbox/store/src/test/resources/eml/emailWithOnlyAttachment.eml
  mailbox/store/src/test/resources/eml/inlined-mixed.eml
  mailbox/store/src/test/resources/eml/filenameOnly.eml
  mailbox/store/src/test/resources/eml/noContentDispositionWithCID.eml
  mailbox/store/src/test/resources/eml/embeddedAttachmentWithAttachment.eml
  mailbox/store/src/test/resources/eml/oneInlinedAttachment.eml
  mailbox/store/src/test/resources/eml/james-3901.eml
  mailbox/store/src/test/resources/eml/messageWithNonASCIIFilenameAttachment.eml
  mailbox/store/src/test/resources/eml/filenameAndName.eml
  mailbox/store/src/test/resources/eml/invitationEmailFromOP.eml
  mailbox/store/src/test/resources/eml/mail3.eml
  mailbox/store/src/test/resources/eml/frnog.eml
  mailbox/store/src/test/resources/eml/twoAttachments.eml
  mailbox/store/src/test/resources/eml/oneAttachmentAndSomeTextInlined.eml
  mailbox/store/src/test/resources/eml/oneHtmlAttachmentAndSomeTextInlined.eml
  mailbox/store/src/test/resources/eml/unknownDisposition.eml
  mailbox/store/src/test/resources/eml/mail2.eml
  mailbox/store/src/test/resources/eml/mail1.eml
  mailbox/store/src/test/resources/eml/noAttachment.eml
  mailbox/store/src/test/resources/eml/charset.eml
  mailbox/store/src/test/resources/eml/oneInlinedAttachmentWithBlankCid.eml
  mailbox/store/src/test/resources/eml/embeddedAttachmentWithInline.eml
  mailbox/store/src/test/resources/eml/oneAttachmentWithoutContentType.eml
  mailbox/store/src/test/resources/eml/emailWithTextAttachment.eml
  mailbox/store/src/test/resources/eml/oneAttachmentWithoutName.eml
  mailbox/store/src/test/resources/eml/calendar.eml
  mailbox/store/src/test/resources/eml/oneInlinedAttachmentWithEmptyCid.eml
  mailbox/store/src/test/resources/eml/charset2.eml
  mailbox/store/src/test/resources/eml/nonTextual.eml
  mailbox/store/src/test/resources/documents/writter.docx
  mailbox/store/src/test/resources/documents/Text.txt
  mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/FetchGroupConverterTest.java
  mailbox/cassandra/doc/README.md
  mailbox/cassandra/doc/table_structure.drawio
  mailbox/cassandra/src/test/resources/cassandra-driver.conf
  docs/modules/customization/nav.adoc
  docs/modules/customization/pages/index.adoc
  docs/modules/servers/nav.adoc
  docs/modules/servers/pages/5-minute-demo.adoc
  docs/modules/servers/pages/extendable.adoc
  docs/modules/servers/pages/15-minute-demo.adoc
  docs/modules/servers/pages/test.adoc
  docs/modules/servers/pages/demo.adoc
  docs/modules/servers/pages/basic/context.adoc
  docs/modules/servers/pages/basic/objectives.adoc
  docs/modules/servers/pages/basic/conf/index.adoc
  docs/modules/servers/pages/basic/help.adoc
  docs/modules/servers/pages/basic/concepts.adoc
  docs/modules/servers/pages/basic/architecture.adoc
  docs/modules/servers/pages/basic/index.adoc
  docs/modules/servers/pages/basic/self-hosting.notes
  docs/modules/servers/pages/run.adoc
  docs/modules/servers/pages/index.adoc
  docs/modules/concepts/nav.adoc
  docs/modules/concepts/pages/configuration.adoc
  docs/modules/concepts/pages/mail/index.adoc
  docs/modules/concepts/pages/storage/mailbox.adoc
  docs/modules/concepts/pages/storage/users.adoc
  docs/modules/concepts/pages/storage/index.adoc
  docs/modules/concepts/pages/messages/mime.adoc
  docs/modules/concepts/pages/messages/imf.adoc
  docs/modules/concepts/pages/messages/index.adoc
  docs/modules/concepts/pages/protocols/jmap.adoc
  docs/modules/concepts/pages/protocols/imap.adoc
  docs/modules/concepts/pages/protocols/smtp.adoc
  docs/modules/concepts/pages/protocols/index.adoc
  docs/modules/concepts/pages/protocols/pop.adoc
  docs/modules/concepts/pages/protocols/esmtp.adoc
  docs/modules/concepts/pages/protocols/lmtp.adoc
  docs/modules/concepts/pages/user/index.adoc
  docs/modules/concepts/pages/processing/index.adoc
  docs/modules/concepts/pages/glossary.adoc
  docs/modules/concepts/pages/index.adoc
  docs/modules/ROOT/nav.adoc
  docs/modules/ROOT/pages/index.adoc
  docs/modules/development/nav.adoc
  docs/modules/development/pages/deployment-tests.adoc
  docs/modules/development/pages/logging.adoc
  docs/modules/development/pages/index.adoc
  docs/modules/community/nav.adoc
  docs/modules/community/pages/support.adoc
  docs/modules/community/pages/website.adoc
  docs/modules/community/pages/guidelines.adoc
  docs/modules/community/pages/download.adoc
  docs/modules/community/pages/mailing-lists.adoc
  docs/modules/community/pages/release.adoc
  docs/modules/community/pages/index.adoc
  docs/modules/community/pages/contributing.adoc
  docs/antora.yml
  testing/base/src/main/resources/logback-test.xml
  testing/base/src/main/resources/testcontainers.properties

*****************************************************

Archives:

 + server/apps/memory-app/extensions-jars/apache-mailet-crypto-3.8.1-SNAPSHOT-jar-with-dependencies.jar
 
 + server/apps/jpa-app/mariadb-java-client-2.7.2.jar
 
 + server/container/guice/mailet/src/test/resources/recursive/extensions-jars/james-server-guice-custom-mailets-3.5.0-SNAPSHOT-jar-with-dependencies.jar
 
 + server/container/guice/mailet/src/test/resources/recursive/extensions-jars/custom-mailets-implementation-3.5.0-SNAPSHOT.jar
 
 + mailet/standard/src/test/resources/nested.zip
 
 + mailet/standard/src/test/resources/sonde.zip
 
 + mailbox/tika/src/test/resources/documents/slides.odp
 
 + mailbox/tika/src/test/resources/documents/writter.odt
 
 + mailbox/tika/src/test/resources/documents/calc.ods
 
 + mailbox/store/src/test/resources/eml/&#x62f;&#x64a;&#x646;&#x627;&#x635;&#x648;&#x631;.odt
 
*****************************************************
  Files with Apache License headers will be marked AL
  Binary files (which do not require any license headers) will be marked B
  Compressed archives will be marked A
  Notices, licenses etc. will be marked N
  AL    metrics/metrics-logger/src/main/java/org/apache/james/metrics/logger/DefaultTimeMetric.java
  AL    metrics/metrics-logger/src/main/java/org/apache/james/metrics/logger/DefaultMetricFactory.java
  AL    metrics/metrics-logger/src/main/java/org/apache/james/metrics/logger/DefaultMetric.java
  AL    metrics/metrics-logger/src/test/java/org/apache/james/metrics/logger/DefaultMetricFactoryTest.java
  AL    metrics/metrics-logger/src/test/java/org/apache/james/metrics/logger/DefaultMetricTest.java
  AL    metrics/metrics-logger/pom.xml
  AL    metrics/pom.xml
  AL    metrics/metrics-api/src/main/java/org/apache/james/metrics/api/GaugeRegistry.java
  AL    metrics/metrics-api/src/main/java/org/apache/james/metrics/api/TimeMetric.java
  AL    metrics/metrics-api/src/main/java/org/apache/james/metrics/api/Metric.java
  AL    metrics/metrics-api/src/main/java/org/apache/james/metrics/api/MetricFactory.java
  AL    metrics/metrics-api/src/main/java/org/apache/james/metrics/api/Gauge.java
  AL    metrics/metrics-api/src/main/java/org/apache/james/metrics/api/NoopGaugeRegistry.java
  AL    metrics/metrics-api/src/test/java/org/apache/james/metrics/api/MetricContract.java
  AL    metrics/metrics-api/src/test/java/org/apache/james/metrics/api/MetricFactoryContract.java
  AL    metrics/metrics-api/pom.xml
  AL    metrics/metrics-dropwizard/src/main/java/org/apache/james/metrics/dropwizard/DropWizardMetricFactory.java
  AL    metrics/metrics-dropwizard/src/main/java/org/apache/james/metrics/dropwizard/DropWizardJVMMetrics.java
  AL    metrics/metrics-dropwizard/src/main/java/org/apache/james/metrics/dropwizard/DropWizardMetric.java
  AL    metrics/metrics-dropwizard/src/main/java/org/apache/james/metrics/dropwizard/DropWizardGaugeRegistry.java
  AL    metrics/metrics-dropwizard/src/main/java/org/apache/james/metrics/dropwizard/DropWizardTimeMetric.java
  AL    metrics/metrics-dropwizard/src/test/java/org/apache/james/metrics/dropwizard/DropWizardMetricTest.java
  AL    metrics/metrics-dropwizard/src/test/java/org/apache/james/metrics/dropwizard/DropWizardMetricFactoryTest.java
  AL    metrics/metrics-dropwizard/pom.xml
  AL    metrics/metrics-tests/src/main/java/org/apache/james/metrics/tests/RecordingTimeMetric.java
  AL    metrics/metrics-tests/src/main/java/org/apache/james/metrics/tests/RecordingMetric.java
  AL    metrics/metrics-tests/src/main/java/org/apache/james/metrics/tests/RecordingMetricFactory.java
  AL    metrics/metrics-tests/src/test/java/org/apache/james/metrics/tests/RecordingMetricFactoryTest.java
  AL    metrics/metrics-tests/src/test/java/org/apache/james/metrics/tests/RecordingMetricTest.java
  AL    metrics/metrics-tests/pom.xml
  AL    json/src/main/java/org/apache/james/json/DTOModule.java
  AL    json/src/main/java/org/apache/james/json/DTO.java
  AL    json/src/main/java/org/apache/james/json/JsonGenericSerializer.java
  AL    json/src/main/java/org/apache/james/json/DTOConverter.java
  AL    json/src/test/java/org/apache/james/JsonSerializationVerifier.java
  AL    json/src/test/java/org/apache/james/JsonGenericSerializerTest.java
  AL    json/src/test/java/org/apache/james/DTOConverterTest.java
  AL    json/src/test/java/org/apache/james/SerializationFixture.java
  AL    json/src/test/java/org/apache/james/dto/TestNestedModule.java
  AL    json/src/test/java/org/apache/james/dto/FirstNestedType.java
  AL    json/src/test/java/org/apache/james/dto/FirstDTO.java
  AL    json/src/test/java/org/apache/james/dto/TestModule.java
  AL    json/src/test/java/org/apache/james/dto/FirstNestedDTO.java
  AL    json/src/test/java/org/apache/james/dto/BaseType.java
  AL    json/src/test/java/org/apache/james/dto/SecondDTO.java
  AL    json/src/test/java/org/apache/james/dto/SecondNestedType.java
  AL    json/src/test/java/org/apache/james/dto/NestedType.java
  AL    json/src/test/java/org/apache/james/dto/SecondDomainObject.java
  AL    json/src/test/java/org/apache/james/dto/FirstDomainObject.java
  AL    json/src/test/java/org/apache/james/dto/TestModules.java
  AL    json/src/test/java/org/apache/james/dto/SecondNestedDTO.java
  AL    json/src/test/java/org/apache/james/JsonSerializationVerifierTest.java
  AL    json/pom.xml
  N     mpt/mavenplugin/LICENSE.txt
  N     mpt/mavenplugin/NOTICE.txt
  AL    mpt/mavenplugin/src/site/fml/faq.fml
  AL    mpt/mavenplugin/src/site/site.xml
  AL    mpt/mavenplugin/src/site/apt/usage.apt.vm
  AL    mpt/mavenplugin/src/site/apt/index.apt
  AL    mpt/mavenplugin/src/main/java/org/apache/james/mpt/maven/MailProtocolTest.java
  AL    mpt/mavenplugin/src/main/java/org/apache/james/mpt/maven/MailProtocolTestMojo.java
  AL    mpt/mavenplugin/src/main/java/org/apache/james/mpt/maven/AddUser.java
  AL    mpt/mavenplugin/src/reporting-site/site.xml
  AL    mpt/mavenplugin/pom.xml
  AL    mpt/all/src/site/site.xml
  AL    mpt/all/src/assemble/bin.xml
  AL    mpt/all/src/assemble/src.xml
  AL    mpt/all/src/reporting-site/site.xml
  AL    mpt/all/pom.xml
  AL    mpt/impl/smtp/pom.xml
 !????? mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/starttls_session_fixation.test
 !????? mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/rcpt_with_starttls.test
 !????? mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/authplain.test
 !????? mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/data_with_starttls.test
 !????? mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/starttls_with_injection.test
 !????? mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/helo.test
 !????? mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/data_starts_with_starttls.test
 !????? mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/starttls.test
  AL    mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpAuthCommandTest.java
  AL    mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/ForwardSmtpTest.java
  AL    mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpHostSystem.java
  AL    mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/InMemoryDnsExtension.java
  AL    mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpStarttlsCommandTest.java
  AL    mpt/impl/smtp/core/src/main/java/org/apache/james/mpt/smtp/SmtpTestExtension.java
  AL    mpt/impl/smtp/core/pom.xml
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/resources/dnsservice.xml
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/resources/lmtpserver.xml
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/resources/mailetcontainer.xml
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/resources/imapserver.xml
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/resources/managesieveserver.xml
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/resources/domainlist.xml
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/resources/mailrepositorystore.xml
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/resources/recipientrewritetable.xml
  B     mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/resources/keystore
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/resources/smtpserver.xml
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/resources/pop3server.xml
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/java/org/apache/james/mpt/smtp/AwsS3RabbitMQForwardSmtpTest.java
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/java/org/apache/james/mpt/smtp/AwsS3RabbitMQSmtpStarttlsCommandTest.java
  AL    mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml
  AL    mpt/impl/smtp/jpa-pulsar/src/test/resources/dnsservice.xml
  AL    mpt/impl/smtp/jpa-pulsar/src/test/resources/mailetcontainer.xml
  AL    mpt/impl/smtp/jpa-pulsar/src/test/resources/domainlist.xml
  AL    mpt/impl/smtp/jpa-pulsar/src/test/resources/mailrepositorystore.xml
  AL    mpt/impl/smtp/jpa-pulsar/src/test/resources/usersrepository.xml
  AL    mpt/impl/smtp/jpa-pulsar/src/test/resources/recipientrewritetable.xml
  B     mpt/impl/smtp/jpa-pulsar/src/test/resources/keystore
  AL    mpt/impl/smtp/jpa-pulsar/src/test/resources/smtpserver.xml
  AL    mpt/impl/smtp/jpa-pulsar/src/test/java/org/apache/james/mpt/smtp/JpaPulsarForwardSmtpTest.java
  AL    mpt/impl/smtp/jpa-pulsar/src/test/java/org/apache/james/mpt/smtp/JpaPulsarSmtpStarttlsCommandTest.java
  AL    mpt/impl/smtp/jpa-pulsar/pom.xml
  AL    mpt/impl/smtp/cassandra/src/test/resources/dnsservice.xml
  AL    mpt/impl/smtp/cassandra/src/test/resources/lmtpserver.xml
  AL    mpt/impl/smtp/cassandra/src/test/resources/mailetcontainer.xml
  AL    mpt/impl/smtp/cassandra/src/test/resources/imapserver.xml
  AL    mpt/impl/smtp/cassandra/src/test/resources/managesieveserver.xml
  AL    mpt/impl/smtp/cassandra/src/test/resources/domainlist.xml
  AL    mpt/impl/smtp/cassandra/src/test/resources/mailrepositorystore.xml
  AL    mpt/impl/smtp/cassandra/src/test/resources/recipientrewritetable.xml
  B     mpt/impl/smtp/cassandra/src/test/resources/keystore
  AL    mpt/impl/smtp/cassandra/src/test/resources/smtpserver.xml
  AL    mpt/impl/smtp/cassandra/src/test/resources/pop3server.xml
  AL    mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraSmtpStarttlsCommandTest.java
  AL    mpt/impl/smtp/cassandra/src/test/java/org/apache/james/mpt/smtp/CassandraForwardSmtpTest.java
  AL    mpt/impl/smtp/cassandra/pom.xml
  AL    mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/host/FileHostSystem.java
  AL    mpt/impl/managesieve/file/src/test/java/org/apache/james/mpt/managesieve/file/FileManageSieveMPTTest.java
  AL    mpt/impl/managesieve/file/pom.xml
  AL    mpt/impl/managesieve/pom.xml
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/deletescript.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/authenticate.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/noop.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/renamescript.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/authenticateBase64.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/unauthenticate.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/havespace.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/setactive.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/checkscript.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/capability.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/listscripts.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/starttls.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/logout.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/getscript.test
  AL    mpt/impl/managesieve/core/src/main/resources/org/apache/james/managesieve/scripts/putscript.test
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/ManageSieveMPTContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/SetActiveContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/PutScriptContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/HaveSpaceContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/DeleteScriptContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/StartTlsContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/AuthenticateContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/UnauthenticatedContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/NoopContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/CheckScriptContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/LogoutContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/GetScriptContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/RenameScriptContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/ListScriptsContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/testsuite/CapabilityContract.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/HostSystemProvider.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveHostSystem.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/JamesManageSieveHostSystem.java
  AL    mpt/impl/managesieve/core/src/main/java/org/apache/james/mpt/host/ManageSieveSession.java
  AL    mpt/impl/managesieve/core/pom.xml
  AL    mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/CassandraManageSieveMPTTest.java
  AL    mpt/impl/managesieve/cassandra/src/test/java/org/apache/james/mpt/managesieve/cassandra/host/CassandraHostSystem.java
  AL    mpt/impl/managesieve/cassandra/pom.xml
  AL    mpt/impl/imap-mailbox/opensearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/OpenSearchUidSearchOnIndexTest.java
  AL    mpt/impl/imap-mailbox/opensearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/OpenSearchRecentTest.java
  AL    mpt/impl/imap-mailbox/opensearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/PublicTemporaryFolder.java
  AL    mpt/impl/imap-mailbox/opensearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/host/OpenSearchHostSystem.java
  AL    mpt/impl/imap-mailbox/opensearch/pom.xml
  N     mpt/impl/imap-mailbox/LICENSE.txt
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSecurityTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQAuthenticatePlainTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQEventsTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectedInboxTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQCondstoreTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQCopyTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMailboxAnnotationTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQRenameTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchHeadersTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectedStateTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQUidSearchTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchBodySectionTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQListingWithSharingTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQUserFlagsSupportTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSelectTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/host/RabbitMQEventBusHostSystem.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/host/RabbitMQEventBusHostSystemExtension.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQConcurrentSessionsTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQAuthenticatedStateTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQPartialFetchTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQQuotaTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQListingTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMoveTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQNonAuthenticatedStateTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQSearchTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQFetchBodyStructureTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQMailboxWithLongNameErrorTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/src/test/java/org/apache/james/mpt/imapmailbox/rabbitmq/RabbitMQObjectIdeTest.java
  AL    mpt/impl/imap-mailbox/rabbitmq/pom.xml
  N     mpt/impl/imap-mailbox/NOTICE.txt
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxWithLongNameErrorTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxAnnotationTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedStateTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCondstoreTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneListingTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedInboxTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneNonAuthenticatedStateTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUidSearchOnIndexTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatedStateTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCopyTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneExpungeTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LucenePartialFetchTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneRenameTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSecurityTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMoveTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneEventsTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatePlainTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneQuotaTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneConcurrentSessionsTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneRecentTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchHeadersTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneObjectIdTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodySectionTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUserFlagsSupportTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodyStructureTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectTest.java
  AL    mpt/impl/imap-mailbox/lucenesearch/pom.xml
  AL    mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/CyrusACLIntegration.java
  AL    mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/MailboxMessageAppenderOnCyrusHost.java
  AL    mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusUserAdder.java
  AL    mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/Docker.java
  AL    mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/CyrusHostSystem.java
  AL    mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/host/GrantRightsOnCyrusHost.java
  AL    mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/CyrusACLCommands.java
  AL    mpt/impl/imap-mailbox/cyrus/src/test/java/org/apache/james/mpt/imapmailbox/cyrus/CyrusMailboxTestModule.java
  AL    mpt/impl/imap-mailbox/cyrus/src/reporting-site/site.xml
  AL    mpt/impl/imap-mailbox/cyrus/pom.xml
  AL    mpt/impl/imap-mailbox/external-james/src/test/resources/org/apache/james/imap/scripts/SelectThenFetchWithExistingMessages.test
  AL    mpt/impl/imap-mailbox/external-james/src/test/resources/org/apache/james/imap/scripts/ValidateDeployment.test
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerJamesRule.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/JamesDeploymentValidationTest.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/ExternalJamesModule.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerDeploymentValidationSpringJPATest.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ProvisioningAPI.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/SmtpHostSystem.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/NoopDomainsAndUserAdder.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/ExternalJamesConfiguration.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/ExternalJamesImapHostSystem.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/ExternalJamesSmtpHostSystem.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/external/ExternalJamesConfigurationEnvironnementVariables.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/docker/CliProvisioningAPI.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/StaticJamesConfiguration.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DeploymentValidation.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/ProvisioningException.java
  AL    mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerDeploymentValidationGuiceJPATest.java
  AL    mpt/impl/imap-mailbox/external-james/src/reporting-site/site.xml
  AL    mpt/impl/imap-mailbox/external-james/pom.xml
  AL    mpt/impl/imap-mailbox/pom.xml
  N     mpt/impl/imap-mailbox/core/LICENSE.txt
  N     mpt/impl/imap-mailbox/core/NOTICE.txt
  AL    mpt/impl/imap-mailbox/core/src/main/resources/log4j.properties
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/rfc822-sender.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/multipart-alt.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/rfc822-group-addresses.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/wild-mixed.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/rfc822.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/mime-plain-text.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/multipart-alt-translation.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/wild-alt-reply.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/multipart-mixed.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/rfc822-resent.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/rfc822-trace.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/rfc822-hello-world.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/wild-alt-reply3.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/rfc822-reply.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/wild-alt-another-reply.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/multipart-mixed-complex.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/multipart-binary.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/wild-example.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/wild-mixed-alt.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/wild-alt-reply4.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/samples/rfc822-multiple-addresses.mail
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SelectUnseen.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/HeaderPartialFetch.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Noop.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ConcurrentFetchResponse.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/MetadataWithLimitation.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UserFlagsSupport.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/NoCommand.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SelectedStateSetup.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Quota.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Store.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Metadata.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ListPlus.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Replace.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtomsIndexer.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SearchSaveDate.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ValidAuthenticated.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchNILSaveDate.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/InboxDeleteMessages.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Login.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ConcurrentRenameSelected.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Uid.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/TextPartialFetch.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchEnvelope.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ConcurrentDeleteSelected.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/AppendExpunge.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/MimePartialFetch.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ListSubscribed.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ListSpecialChar.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SearchCombinations.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchPeek.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ComplexMail.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Rights.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/PeekMultipartMixedComplex.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ListNamespace.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchMultipartAlternative.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SelectAppend.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Concurrent.todo.txt
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Create.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchBodyNoSection.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/InboxAddMessages.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/AuthenticatePlain.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchRFC822Header.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/XList.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/PeekMultipartAlternative.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ListWithSharedMailbox.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Expunge.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ListPercentWildcard.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchRFC822.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Append.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/LoginThreeStrikes.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/AppendToSelected.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Capability.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ConcurrentExistsResponse.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SelectEmpty.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/CreateErrorWithLongName.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Delete.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SelectedStateCleanup.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ValidSelected.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ExpungeBasics.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchRFC822Mixed.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Subscribe.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ACLCommandsOnOtherUser.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Namespace.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ConcurrentCrossExpunge.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/PeekMultipartMixed.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Id.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchMultipartBodyStructure.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Move.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/BadTag.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchSaveDate.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchSingleMessage.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Logout.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchStructureComplex.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchCombinations.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Authenticate.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Rename.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchStructureEmbedded.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SelectInbox.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/JustTag.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/NoTag.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationWithoutRightK.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationWithoutRightX.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationWithoutRightA.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationCopyWithoutS.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationWithoutRightL.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationCopyWithoutT.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationCopyIS.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationWithoutRightE.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationWithoutRightW.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightL.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationCopyIT.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationWithoutRightT.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationCopyI.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightIS.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightA.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightK.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightIT.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightIW.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationWithoutRightR.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationWithoutRightS.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightRT.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightRW.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationWithoutRightI.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationCopyWithoutW.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightX.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightI.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightRS.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightRE.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationCopyWithoutI.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationCopyIW.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/aclIntegration/ACLIntegrationRightR.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ListMailboxes.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ListOnly.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/CondstoreDisable.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ConcurrentAppendUIDToMSNMapping.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/BogusCommand.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ConcurrentExpungeResponse.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/UidSearchAtoms.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Check.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchPartial.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Recent.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/MetadataWithBinaryData.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchRFC822Text.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SearchOptionSave.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchHeaderFieldsNot.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Copy.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SearchOptionAggregations.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ValidNonAuthenticated.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchMultipartMixedComplex.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ACLCommandsOnOwner.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ConcurrentRenameSelectedSub.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ExamineEmpty.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/AppendExamineInbox.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ConcurrentExpungeUIDToMSNMapping.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/RenameSelected.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/MoveNoMSG.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/StringArgs.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/RenameHierarchy.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchInternalDate.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchHeaderFields.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/IllegalTag.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchMultipleMessages.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchText.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Search.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/AppendSelectInbox.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Status.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SharedMailbox.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Welcome.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/SearchAtoms.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchMultipartMixed.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/BodyPartialFetch.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/FetchSimpleBodyStructure.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/ObjectId.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/CondstoreEnable.test
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/mailboxmanager/testdata/DefaultMailboxManagerConf.xml
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/mailboxmanager/testdata/VirtualRepositoryMix.xml
  AL    mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/mailboxmanager/testdata/MixedMailstores.xml
 !????? mpt/impl/imap-mailbox/core/src/main/resources/logback.xml
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/GrantRightsOnHost.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/UserFlagsSupport.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Condstore.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Events.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLCommands.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/MailboxWithLongNameError.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Search.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/PartialFetch.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ConcurrentSessions.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/SelectedState.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/FetchHeaders.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatedState.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Security.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/AuthenticatePlain.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/SelectedInbox.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ObjectId.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLIntegration.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ListingWithSharingTest.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/ACLScriptedTestProtocol.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/FetchBodySection.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Expunge.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Rename.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Listing.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/UidSearch.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/UidSearchOnIndex.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/base/BasicImapCommands.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/MailboxAnnotation.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Copy.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Fetch.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/NonAuthenticatedState.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/FetchBodyStructure.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Select.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Move.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/Recent.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/suite/QuotaTest.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/ImapTestConstants.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/MailboxMessageAppender.java
  AL    mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
  AL    mpt/impl/imap-mailbox/core/src/reporting-site/site.xml
  AL    mpt/impl/imap-mailbox/core/pom.xml
  N     mpt/impl/imap-mailbox/inmemory/LICENSE.txt
  N     mpt/impl/imap-mailbox/inmemory/NOTICE.txt
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryQuotaTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySecurityTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryRecentTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCondstoreTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxAnnotationTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryExpungeTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatePlainTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryNonAuthenticatedStateTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryPartialFetchTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCopyTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryObjectIdTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchHeadersTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListingWithSharingTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUserFlagsSupportTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryConcurrentSessionsTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryRenameTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedStateTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySearchTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearchTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxWithLongNameErrorTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedInboxTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodySectionTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMoveTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatedStateTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodyStructureTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryEventsTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearchOnIndexTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListingTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchTest.java
  AL    mpt/impl/imap-mailbox/inmemory/src/reporting-site/site.xml
  AL    mpt/impl/imap-mailbox/inmemory/pom.xml
  N     mpt/impl/imap-mailbox/jpa/LICENSE.txt
  N     mpt/impl/imap-mailbox/jpa/NOTICE.txt
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearchTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaEventsTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSecurityTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodySectionTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodyStructureTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxWithLongNameErrorTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaPartialFetchTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCondstoreTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatePlainTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMoveTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaNonAuthenticatedStateTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUserFlagsSupportTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaQuotaTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCopyTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaExpungeTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedInboxTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatedStateTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaRenameTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaListingTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaConcurrentSessionsTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchHeadersTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearchOnIndexTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystemExtension.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSearchTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxAnnotationTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedStateTest.java
  AL    mpt/impl/imap-mailbox/jpa/src/reporting-site/site.xml
  AL    mpt/impl/imap-mailbox/jpa/pom.xml
 !????? mpt/impl/imap-mailbox/cassandra/src/test/resources/cassandra-driver.conf
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraCondstoreTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSecurityTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMailboxAnnotationTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraRenameTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUidSearchTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUidSearchOnIndexTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchBodyStructureTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMoveTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraQuotaTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraListingWithSharingTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraObjectIdTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraConcurrentSessionsTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraMailboxWithLongNameErrorTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraExpungeTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraNonAuthenticatedStateTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraAuthenticatePlainTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraPartialFetchTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraUserFlagsSupportTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchHeadersTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystemExtension.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraEventsTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraAuthenticatedStateTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSearchTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchBodySectionTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectedStateTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraFetchTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraCopyTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraListingTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectedInboxTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/CassandraSelectTest.java
  AL    mpt/impl/imap-mailbox/cassandra/src/reporting-site/site.xml
  AL    mpt/impl/imap-mailbox/cassandra/pom.xml
  B     mpt/app/src/site/resources/images/asf-logo-reduced.gif
  B     mpt/app/src/site/resources/images/james-mpt-logo.gif
  AL    mpt/app/src/site/xdoc/index.xml
  AL    mpt/app/src/site/site.xml
  AL    mpt/app/src/main/java/org/apache/james/mpt/app/RunScript.java
  AL    mpt/app/src/main/java/org/apache/james/mpt/app/Main.java
  AL    mpt/app/src/reporting-site/site.xml
  AL    mpt/app/pom.xml
  AL    mpt/src/reporting-site/site.xml
  AL    mpt/pom.xml
  B     mpt/core/src/site/resources/images/asf-logo-reduced.gif
  B     mpt/core/src/site/resources/images/james-mpt-logo.gif
  AL    mpt/core/src/site/xdoc/index.xml
  AL    mpt/core/src/site/site.xml
  AL    mpt/core/src/main/java/org/apache/james/mpt/session/ExternalSession.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/session/ExternalSessionFactory.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/script/SimpleScriptedTestProtocol.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/script/ImapScriptedTestProtocol.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/script/GenericSimpleScriptedTestProtocol.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSessionBuilder.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/protocol/ProtocolSession.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/protocol/FileProtocolSessionBuilder.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/api/SessionFactory.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/api/Continuation.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/api/Monitor.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/api/DomainAdder.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/api/ImapFeatures.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/api/ImapHostSystem.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/api/UserAdder.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/api/ProtocolInteractor.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/api/HostSystem.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/api/Session.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/exception/InvalidServerResponseException.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/monitor/NullMonitor.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/monitor/SystemLoggingMonitor.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/user/ScriptedUserAdder.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/helper/ByteBufferOutputStream.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/helper/ScriptBuilder.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/helper/CreateScript.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/helper/ByteBufferInputStream.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/host/ExternalHostSystem.java
  AL    mpt/core/src/main/java/org/apache/james/mpt/Runner.java
  AL    mpt/core/src/test/java/org/apache/james/mpt/DiscardProtocolTest.java
  AL    mpt/core/src/test/java/org/apache/james/mpt/TestExternalHostSystem.java
  AL    mpt/core/src/test/java/org/apache/james/mpt/api/ImapFeaturesTest.java
  AL    mpt/core/src/test/java/org/apache/james/mpt/TestFileProtocolSessionBuilder.java
  AL    mpt/core/src/test/java/org/apache/james/mpt/TestScriptedUserAdder.java
  AL    mpt/core/src/test/java/org/apache/james/mpt/DiscardProtocol.java
  AL    mpt/core/src/reporting-site/site.xml
  AL    mpt/core/pom.xml
 !????? upgrade-instructions.md
 !????? code-coverage-report/pom.xml
 !????? CHANGELOG.md
 !????? third-party/rspamd/docker-compose.yml
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/module/RspamdModule.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/module/RspamdTaskExtensionModule.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/RspamdListener.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/task/FeedHamToRspamdTask.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/task/GetMailboxMessagesService.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/task/FeedHamToRspamdTaskDTO.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/task/FeedSpamToRspamdTaskDTO.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/task/FeedSpamToRspamdTaskAdditionalInformationDTO.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/task/FeedSpamToRspamdTask.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/task/RunningOptions.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/task/FeedHamToRspamdTaskAdditionalInformationDTO.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/model/AnalysisResult.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/model/AnalysisResultDeserializer.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/route/FeedMessageRoute.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/exception/UnauthorizedException.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/exception/RspamdUnexpectedException.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/client/RspamdHttpClient.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/client/RspamdClientConfiguration.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/RspamdScanner.java
  AL    third-party/rspamd/src/main/java/org/apache/james/rspamd/healthcheck/RspamdHealthCheck.java
  B     third-party/rspamd/src/test/resources/json/feedSpamEmptyRspamdTimeout.additionalInformation.json
  B     third-party/rspamd/src/test/resources/json/feedHamClassifiedAsHam.additionalInformation.json
  B     third-party/rspamd/src/test/resources/json/feedHamNonEmptyRspamdTimeout.additionalInformation.json
  B     third-party/rspamd/src/test/resources/json/feedSpamNonEmptyRspamdTimeout.additionalInformation.json
  B     third-party/rspamd/src/test/resources/json/feedHamNonEmptyPeriod.additionalInformation.json
  B     third-party/rspamd/src/test/resources/json/feedSpamEmptyPeriod.additionalInformation.json
  B     third-party/rspamd/src/test/resources/json/feedSpamNonEmptyPeriod.additionalInformation.json
  B     third-party/rspamd/src/test/resources/json/feedSpamClassifiedAsHam.additionalInformation.json
  B     third-party/rspamd/src/test/resources/json/feedHamEmptyRspamdTimeout.additionalInformation.json
  B     third-party/rspamd/src/test/resources/json/feedHamEmptyPeriod.additionalInformation.json
 !????? third-party/rspamd/src/test/resources/rspamd-config/actions.conf
 !????? third-party/rspamd/src/test/resources/rspamd-config/antivirus.conf
 !????? third-party/rspamd/src/test/resources/rspamd-config/statistic.conf
 !????? third-party/rspamd/src/test/resources/mail/ham/ham1.eml
 !????? third-party/rspamd/src/test/resources/mail/attachment/inlineVirusTextAttachment.eml
 !????? third-party/rspamd/src/test/resources/mail/attachment/inlineNonVirusTextAttachment.eml
 !????? third-party/rspamd/src/test/resources/mail/spam/spam8.eml
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedHamToRspamdTaskAdditionalInformationDTOTest.java
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedSpamToRspamdTaskAdditionalInformationDTOTest.java
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedHamToRspamdTaskTest.java
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedSpamToRspamdTaskTest.java
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/RspamdScannerTest.java
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerRspamdExtensionTest.java
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/model/AnalysisResultDeserializationTest.java
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/route/FeedMessageRouteTest.java
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/client/RspamdHttpClientTest.java
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/RspamdExtension.java
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/healthcheck/RspamdHealthcheckTest.java
  AL    third-party/rspamd/src/test/java/org/apache/james/rspamd/RspamdListenerTest.java
  AL    third-party/rspamd/pom.xml
 !????? third-party/rspamd/README.md
  AL    third-party/rspamd/sample-configuration/webadmin.properties
  AL    third-party/rspamd/sample-configuration/listeners.xml
 !????? third-party/rspamd/sample-configuration/extensions.properties
 !????? third-party/rspamd/sample-configuration/antivirus.conf
  AL    third-party/rspamd/sample-configuration/mailetcontainer_distributed.xml
  AL    third-party/rspamd/sample-configuration/mailetcontainer_memory.xml
 !????? third-party/rspamd/sample-configuration/statistic.conf
  AL    third-party/rspamd/sample-configuration/healthcheck.properties
 !????? third-party/rspamd/sample-configuration/rspamd.properties
 !????? third-party/rspamd/docker-compose-distributed.yml
 !????? third-party/elasticsearch/docker-compose.yml
  AL    third-party/elasticsearch/src/main/java/org/apache/james/metrics/es/v7/ESReporterConfiguration.java
  AL    third-party/elasticsearch/src/main/java/org/apache/james/metrics/es/v7/ESMetricReporterModule.java
  AL    third-party/elasticsearch/src/main/java/org/apache/james/metrics/es/v7/ESMetricReporter.java
  AL    third-party/elasticsearch/src/test/java/org/apache/james/metric/es/v7/ESReporterContract.java
  AL    third-party/elasticsearch/src/test/java/org/apache/james/metric/es/v7/ES2ReporterTest.java
  AL    third-party/elasticsearch/src/test/java/org/apache/james/metric/es/v7/ES7ReporterTest.java
  AL    third-party/elasticsearch/src/test/java/org/apache/james/metric/es/v7/ESReportedConfigurationTest.java
  AL    third-party/elasticsearch/src/test/java/org/apache/james/metric/es/v7/ES6ReporterTest.java
  AL    third-party/elasticsearch/src/test/java/org/apache/james/metric/es/v7/DockerElasticSearchExtension.java
  AL    third-party/elasticsearch/pom.xml
 !????? third-party/elasticsearch/conf/extensions.properties
 !????? third-party/elasticsearch/conf/elasticsearch.properties
 !????? third-party/elasticsearch/README.md
 !????? third-party/clamav/docker-compose.yml
  AL    third-party/clamav/src/main/java/org/apache/james/clamav/ClamAVScan.java
 !????? third-party/clamav/src/test/resources/attachment/inlineVirusTextAttachment.eml
 !????? third-party/clamav/src/test/resources/attachment/inlineNonVirusTextAttachment.eml
  AL    third-party/clamav/src/test/java/org/apache/james/clamav/DockerClamAV.java
  AL    third-party/clamav/src/test/java/org/apache/james/clamav/ClamAVScanTest.java
  AL    third-party/clamav/pom.xml
 !????? third-party/clamav/README.md
  AL    third-party/clamav/sample-configuration/mailetcontainer.xml
 !????? third-party/crowdsec/docker-compose.yml
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/module/CrowdsecModule.java
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/CrowdsecSMTPConnectHandler.java
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/CrowdsecService.java
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/model/CrowdsecDecision.java
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/model/CrowdsecDecisionDeserializer.java
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/CrowdsecEhloHook.java
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/CrowdsecPOP3CheckHandler.java
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/exception/CrowdsecException.java
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/client/CrowdsecClientConfiguration.java
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/client/CrowdsecHttpClient.java
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/CrowdsecImapConnectionCheck.java
  AL    third-party/crowdsec/src/main/java/org/apache/james/crowdsec/CrowdsecUtils.java
  AL    third-party/crowdsec/src/test/resources/logback-test.xml
  AL    third-party/crowdsec/src/test/resources/listeners.xml
  AL    third-party/crowdsec/src/test/resources/mailetcontainer.xml
 !????? third-party/crowdsec/src/test/resources/crowdsec/collections/james.yaml
 !????? third-party/crowdsec/src/test/resources/crowdsec/parsers/james-dictionary-attack.yaml
 !????? third-party/crowdsec/src/test/resources/crowdsec/parsers/syslog-logs.yaml
 !????? third-party/crowdsec/src/test/resources/crowdsec/parsers/james-auth.yaml
 !????? third-party/crowdsec/src/test/resources/crowdsec/acquis.yaml
 !????? third-party/crowdsec/src/test/resources/crowdsec/scenarios/james-bf-auth.yaml
 !????? third-party/crowdsec/src/test/resources/crowdsec/scenarios/james-dictionary-attack.yaml
 !????? third-party/crowdsec/src/test/resources/haproxy.cfg
  AL    third-party/crowdsec/src/test/resources/imapserver.xml
  AL    third-party/crowdsec/src/test/resources/usersrepository.xml
 !????? third-party/crowdsec/src/test/resources/log/james.log
  AL    third-party/crowdsec/src/test/resources/smtpserver.xml
  AL    third-party/crowdsec/src/test/resources/pop3server.xml
  AL    third-party/crowdsec/src/test/java/org/apache/james/crowdsec/CrowdsecEhloHookTest.java
  AL    third-party/crowdsec/src/test/java/org/apache/james/crowdsec/CrowdsecDecisionDeserializerTest.java
  AL    third-party/crowdsec/src/test/java/org/apache/james/crowdsec/DockerCrowdsecExtensionTest.java
  AL    third-party/crowdsec/src/test/java/org/apache/james/crowdsec/CrowdsecImapConnectionCheckTest.java
  AL    third-party/crowdsec/src/test/java/org/apache/james/crowdsec/CrowdsecHttpClientTest.java
  AL    third-party/crowdsec/src/test/java/org/apache/james/crowdsec/CrowdsecServiceTest.java
  AL    third-party/crowdsec/src/test/java/org/apache/james/crowdsec/CrowdsecExtension.java
  AL    third-party/crowdsec/src/test/java/org/apache/james/crowdsec/CrowdsecIntegrationTest.java
  AL    third-party/crowdsec/src/test/java/org/apache/james/crowdsec/HAProxyExtension.java
 !????? third-party/crowdsec/src/test/java/org/apache/james/crowdsec/CrowdsecSMTPConnectHandlerTest.java
  AL    third-party/crowdsec/pom.xml
 !????? third-party/crowdsec/README.md
 !????? third-party/crowdsec/sample-configuration/collections/james.yaml
 !????? third-party/crowdsec/sample-configuration/parsers/james-dictionary-attack.yaml
 !????? third-party/crowdsec/sample-configuration/parsers/syslog-logs.yaml
 !????? third-party/crowdsec/sample-configuration/parsers/james-auth.yaml
 !????? third-party/crowdsec/sample-configuration/extensions.properties
 !????? third-party/crowdsec/sample-configuration/acquis.yaml
 !????? third-party/crowdsec/sample-configuration/scenarios/james-bf-auth.yaml
 !????? third-party/crowdsec/sample-configuration/scenarios/james-dictionary-attack.yaml
 !????? third-party/crowdsec/sample-configuration/crowdsec.properties
  AL    third-party/crowdsec/sample-configuration/imapserver.xml
  AL    third-party/crowdsec/sample-configuration/logback.xml
  AL    third-party/crowdsec/sample-configuration/smtpserver.xml
  AL    third-party/crowdsec/sample-configuration/pop3server.xml
 !????? third-party/spamassassin/docker-compose.yml
  AL    third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinHandler.java
  AL    third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinInvoker.java
  AL    third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinListener.java
  AL    third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinLearner.java
  AL    third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinModule.java
  AL    third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinResult.java
  AL    third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassinConfiguration.java
  AL    third-party/spamassassin/src/main/java/org/apache/james/spamassassin/SpamAssassin.java
  AL    third-party/spamassassin/src/test/resources/listeners.xml
  AL    third-party/spamassassin/src/test/resources/mailetcontainer.xml
 !????? third-party/spamassassin/src/test/resources/eml/spam.eml
 !????? third-party/spamassassin/src/test/resources/spamassassin_db/ham/ham1
 !????? third-party/spamassassin/src/test/resources/spamassassin_db/ham/ham3
 !????? third-party/spamassassin/src/test/resources/spamassassin_db/ham/ham2
 !????? third-party/spamassassin/src/test/resources/spamassassin_db/spam/spam2
 !????? third-party/spamassassin/src/test/resources/spamassassin_db/spam/spam3
 !????? third-party/spamassassin/src/test/resources/spamassassin_db/spam/spam1
  AL    third-party/spamassassin/src/test/resources/smtpserver.xml
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/module/SpamAssassinTestModule.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/module/SpamAssassinModuleExtension.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinExtension.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinTest.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/mock/MockSpamdExtension.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/mock/MockSpamd.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinHandlerTest.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinIntegrationTest.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/MemorySpamAssassinTest.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinInvokerTest.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinContract.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinResultTest.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinListenerTest.java
  AL    third-party/spamassassin/src/test/java/org/apache/james/spamassassin/SpamAssassinConfigurationTest.java
  AL    third-party/spamassassin/pom.xml
  AL    third-party/spamassassin/sample-configuration/listeners.xml
 !????? third-party/spamassassin/sample-configuration/extensions.properties
  AL    third-party/spamassassin/sample-configuration/mailetcontainer.xml
 !????? third-party/spamassassin/sample-configuration/spamassassin.properties
  AL    third-party/spamassassin/sample-configuration/smtpserver.xml
  AL    third-party/linshare/src/main/java/org/apache/james/linshare/AuthorizationToken.java
  AL    third-party/linshare/src/main/java/org/apache/james/linshare/LinshareConfiguration.java
  AL    third-party/linshare/src/main/java/org/apache/james/linshare/client/ShareResult.java
  AL    third-party/linshare/src/main/java/org/apache/james/linshare/client/ReceivedShare.java
  AL    third-party/linshare/src/main/java/org/apache/james/linshare/client/Document.java
  AL    third-party/linshare/src/main/java/org/apache/james/linshare/client/LinshareAPI.java
  AL    third-party/linshare/src/main/java/org/apache/james/linshare/client/User.java
  AL    third-party/linshare/src/main/java/org/apache/james/linshare/client/ShareRequest.java
  AL    third-party/linshare/src/main/java/org/apache/james/linshare/LinshareBlobExportMechanism.java
 !????? third-party/linshare/src/test/resources/docker-compose.yml
 !????? third-party/linshare/src/test/resources/backend/Dockerfile
 !????? third-party/linshare/src/test/resources/backend/conf/log4j.properties
 !????? third-party/linshare/src/test/resources/backend/conf/id_rsa.pub
  AL    third-party/linshare/src/test/resources/backend/conf/catalina.properties
 !????? third-party/linshare/src/test/resources/backend/conf/id_rsa.pri
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/Linshare.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/LinshareConfigurationTest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/AuthorizationTokenTest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/ByteArrayDecoder.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/client/TechnicalAccountResponse.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/client/ShareResultTest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/client/TechnicalAccountGrantPermissionsRequest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/client/LinshareAPITest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/client/UserTest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/client/ShareRequestTest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/client/TechnicalAccountCreationRequest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/client/ReceivedShareTest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/client/DocumentTest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/LinshareTest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/LinshareFixture.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/LinshareExtension.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/CombinedDecoder.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/LinshareBlobExportMechanismTest.java
  AL    third-party/linshare/src/test/java/org/apache/james/linshare/LinshareSingleton.java
  AL    third-party/linshare/pom.xml
  AL    third-party/pom.xml
  AL    javax-mail-extension/src/main/java/org/apache/james/javax/AddressHelper.java
  AL    javax-mail-extension/src/main/java/org/apache/james/javax/MimeMultipartReport.java
  AL    javax-mail-extension/src/main/java/org/apache/james/javax/MultipartUtil.java
  AL    javax-mail-extension/pom.xml
  AL    checkstyle.xml
 !????? event-sourcing/event-sourcing-core/event-sourcing-core.iml
  AL    event-sourcing/event-sourcing-core/src/main/scala/org/apache/james/eventsourcing/EventBus.scala
  AL    event-sourcing/event-sourcing-core/src/main/scala/org/apache/james/eventsourcing/EventSourcingSystem.scala
  AL    event-sourcing/event-sourcing-core/src/main/scala/org/apache/james/eventsourcing/Subscriber.scala
  AL    event-sourcing/event-sourcing-core/src/main/scala/org/apache/james/eventsourcing/CommandDispatcher.scala
  AL    event-sourcing/event-sourcing-core/src/main/java/org/apache/james/eventsourcing/CommandHandler.java
  AL    event-sourcing/event-sourcing-core/src/test/scala/org/apache/james/eventsourcing/EventSourcingSystemTest.scala
  AL    event-sourcing/event-sourcing-core/src/test/scala/org/apache/james/eventsourcing/DataCollectorSubscriber.scala
  AL    event-sourcing/event-sourcing-core/pom.xml
  AL    event-sourcing/event-store-cassandra/src/main/scala/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreModule.scala
  AL    event-sourcing/event-store-cassandra/src/main/scala/org/apache/james/eventsourcing/eventstore/cassandra/JsonEventSerializer.scala
  AL    event-sourcing/event-store-cassandra/src/main/scala/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStore.scala
  AL    event-sourcing/event-store-cassandra/src/main/scala/org/apache/james/eventsourcing/eventstore/cassandra/EventStoreDao.scala
  AL    event-sourcing/event-store-cassandra/src/main/scala/org/apache/james/eventsourcing/eventstore/cassandra/dto/EventDTOModule.scala
  AL    event-sourcing/event-store-cassandra/src/main/scala/org/apache/james/eventsourcing/eventstore/cassandra/dto/EventDTO.scala
  AL    event-sourcing/event-store-cassandra/src/main/scala/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreTable.scala
  AL    event-sourcing/event-store-cassandra/src/main/java/org/apache/james/eventsourcing/eventstore/cassandra/EventNestedTypes.java
  AL    event-sourcing/event-store-cassandra/src/test/scala/org/apache/james/eventsourcing/eventstore/cassandra/JsonEventSerializerTest.scala
  AL    event-sourcing/event-store-cassandra/src/test/scala/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreExtensionForTestEvents.scala
  AL    event-sourcing/event-store-cassandra/src/test/scala/org/apache/james/eventsourcing/eventstore/cassandra/dto/TestEventDTOModules.scala
  AL    event-sourcing/event-store-cassandra/src/test/scala/org/apache/james/eventsourcing/eventstore/cassandra/dto/OtherTestEventDTO.scala
  AL    event-sourcing/event-store-cassandra/src/test/scala/org/apache/james/eventsourcing/eventstore/cassandra/dto/OtherEvent.scala
  AL    event-sourcing/event-store-cassandra/src/test/scala/org/apache/james/eventsourcing/eventstore/cassandra/dto/SnapshotEvent.scala
  AL    event-sourcing/event-store-cassandra/src/test/scala/org/apache/james/eventsourcing/eventstore/cassandra/dto/SnapshotEventDTO.scala
  AL    event-sourcing/event-store-cassandra/src/test/scala/org/apache/james/eventsourcing/eventstore/cassandra/dto/TestEventDTO.scala
  AL    event-sourcing/event-store-cassandra/src/test/scala/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreTest.scala
  AL    event-sourcing/event-store-cassandra/src/test/scala/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventSourcingSystemTest.scala
  AL    event-sourcing/event-store-cassandra/src/test/scala/org/apache/james/eventsourcing/eventstore/cassandra/CassandraEventStoreExtension.scala
  AL    event-sourcing/event-store-cassandra/pom.xml
  AL    event-sourcing/event-sourcing-pojo/src/main/scala/org/apache/james/eventsourcing/EventId.scala
  AL    event-sourcing/event-sourcing-pojo/src/main/scala/org/apache/james/eventsourcing/Event.scala
  AL    event-sourcing/event-sourcing-pojo/src/main/scala/org/apache/james/eventsourcing/AggregateId.scala
  AL    event-sourcing/event-sourcing-pojo/src/main/scala/org/apache/james/eventsourcing/Command.scala
  AL    event-sourcing/event-sourcing-pojo/src/test/scala/org/apache/james/eventsourcing/TestAggregateId.scala
  AL    event-sourcing/event-sourcing-pojo/src/test/scala/org/apache/james/eventsourcing/TestEvent.scala
  AL    event-sourcing/event-sourcing-pojo/src/test/scala/org/apache/james/eventsourcing/EventIdTest.scala
  AL    event-sourcing/event-sourcing-pojo/pom.xml
  AL    event-sourcing/pom.xml
  AL    event-sourcing/event-store-memory/src/main/scala/org/apache/james/eventsourcing/eventstore/memory/InMemoryEventStore.scala
  AL    event-sourcing/event-store-memory/src/test/scala/org/apache/james/eventsourcing/eventstore/memory/InMemoryEventStoreExtension.scala
  AL    event-sourcing/event-store-memory/src/test/scala/org/apache/james/eventsourcing/eventstore/memory/InMemoryEventSourcingSystemTest.scala
  AL    event-sourcing/event-store-memory/src/test/scala/org/apache/james/eventsourcing/eventstore/memory/InMemoryEventStoreTest.scala
  AL    event-sourcing/event-store-memory/pom.xml
  AL    event-sourcing/event-store-api/src/main/scala/org/apache/james/eventsourcing/eventstore/EventStoreFailedException.scala
  AL    event-sourcing/event-store-api/src/main/scala/org/apache/james/eventsourcing/eventstore/History.scala
  AL    event-sourcing/event-store-api/src/main/scala/org/apache/james/eventsourcing/eventstore/EventStore.scala
  AL    event-sourcing/event-store-api/src/test/scala/org/apache/james/eventsourcing/eventstore/HistoryTest.scala
  AL    event-sourcing/event-store-api/src/test/scala/org/apache/james/eventsourcing/eventstore/EventStoreContract.scala
  AL    event-sourcing/event-store-api/pom.xml
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/ReadAliasName.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/OpenSearchIndexer.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/DocumentId.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/DeleteByQueryPerformer.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/AliasName.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/ClientProvider.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/search/ScrolledSearch.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/IndexCreationFactory.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/OpenSearchHealthCheck.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/RoutingKey.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/OpenSearchConfiguration.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/WriteAliasName.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/ReactorOpenSearchClient.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/IndexName.java
  AL    backends-common/opensearch/src/main/java/org/apache/james/backends/opensearch/UpdatedRepresentation.java
 !????? backends-common/opensearch/src/test/resources/auth-es/nginx-conf/reverse_elasticsearch.conf
 !????? backends-common/opensearch/src/test/resources/auth-es/nginx-conf/passwd
 !????? backends-common/opensearch/src/test/resources/auth-es/NginxDockerfile
 !????? backends-common/opensearch/src/test/resources/auth-es/README.md
 !????? backends-common/opensearch/src/test/resources/auth-es/default.key
 !????? backends-common/opensearch/src/test/resources/auth-es/default.crt
  B     backends-common/opensearch/src/test/resources/auth-es/server.jks
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/OpenSearchClusterExtension.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/ClientProviderTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/IndexCreationFactoryTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/ClientProviderImplConnectionAuthESOverrideTrustStoreTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/OpenSearchIndexerTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/ClientProviderImplConnectionContract.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/DockerAuthOpenSearchSingleton.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/ClientProviderImplConnectionAuthESIgnoreSSLCheckTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/DockerOpenSearchExtension.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/OpenSearchConfigurationTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/RoutingKeyTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/search/ScrolledSearchTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/OpenSearchHealthCheckConnectionTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/DockerOpenSearch.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/AliasNameTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/DockerOpenSearchSingleton.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/OpenSearchHealthCheckTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/ClientProviderImplConnectionNoAuthESTest.java
  AL    backends-common/opensearch/src/test/java/org/apache/james/backends/opensearch/DocumentIdTest.java
  AL    backends-common/opensearch/pom.xml
  AL    backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/SimpleConnectionPool.java
  AL    backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQConfiguration.java
  AL    backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/ReceiverProvider.java
  AL    backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQServerVersion.java
  AL    backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/QueueArguments.java
  AL    backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/ReactorRabbitMQChannelPool.java
  AL    backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQConnectionFactory.java
  AL    backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/Constants.java
  AL    backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQHealthCheck.java
  AL    backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQManagementAPI.java
  B     backends-common/rabbitmq/src/test/resources/test-keystore-password-password
  B     backends-common/rabbitmq/src/test/resources/test-truststore-password-password
 !????? backends-common/rabbitmq/src/test/resources/empty-store
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQClusterTest.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQServerVersionTest.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQTest.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQWaitStrategy.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQConfigurationTest.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/DockerRabbitMQSingleton.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQExtension.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQHealthCheckTest.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQConnectionFactoryTest.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/DockerRabbitMQ.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/ChannelPoolContract.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/InMemoryConsumer.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQFixture.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/DockerClusterRabbitMQExtension.java
  AL    backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/ReactorRabbitMQChannelPoolTest.java
  AL    backends-common/rabbitmq/pom.xml
  AL    backends-common/redis/src/main/java/org/apache/james/backends/redis/RedisHealthCheck.scala
  AL    backends-common/redis/src/main/java/org/apache/james/backends/redis/RedisConfiguration.scala
  AL    backends-common/redis/src/test/java/org/apache/james/backends/redis/RedisHealthCheckTest.scala
  AL    backends-common/redis/src/test/java/org/apache/james/backends/redis/RedisConfigurationTest.scala
  AL    backends-common/redis/src/test/java/org/apache/james/backends/redis/RedisExtensionTest.java
  AL    backends-common/redis/src/test/java/org/apache/james/backends/redis/DockerRedis.java
  AL    backends-common/redis/src/test/java/org/apache/james/backends/redis/RedisExtension.java
 !????? backends-common/redis/pom.xml
 !????? backends-common/README.adoc
  AL    backends-common/pom.xml
  AL    backends-common/pulsar/src/main/scala/org/apache/james/backends/pulsar/PulsarConfiguration.scala
  AL    backends-common/pulsar/src/main/scala/org/apache/james/backends/pulsar/PulsarClients.scala
  AL    backends-common/pulsar/src/main/scala/org/apache/james/backends/pulsar/PulsarReader.scala
  AL    backends-common/pulsar/src/test/java/org/apache/james/backends/pulsar/PulsarConfigurationTest.java
  AL    backends-common/pulsar/src/test/java/org/apache/james/backends/pulsar/TestPulsarModule.java
  AL    backends-common/pulsar/src/test/java/org/apache/james/backends/pulsar/DockerPulsarExtension.java
  AL    backends-common/pulsar/src/test/java/org/apache/james/backends/pulsar/PulsarReaderTest.scala
  AL    backends-common/pulsar/pom.xml
  AL    backends-common/jpa/src/main/java/org/apache/james/backends/jpa/EntityManagerUtils.java
  AL    backends-common/jpa/src/main/java/org/apache/james/backends/jpa/TransactionRunner.java
  AL    backends-common/jpa/src/main/java/org/apache/james/backends/jpa/JPAConfiguration.java
  AL    backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JpaTestCluster.java
  AL    backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JPAConfigurationTest.java
  AL    backends-common/jpa/pom.xml
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraType.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraQuotaLimitTable.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraTable.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraQuotaCurrentValueTable.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraQuotaCurrentValueDao.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraQuotaLimitDao.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraMutualizedQuotaModule.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/components/CassandraModule.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionModule.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/versions/table/CassandraSchemaVersionTable.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/versions/SchemaTransition.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionDAO.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionManager.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/versions/SchemaVersion.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/migration/Migration.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/migration/MigrationTaskAdditionalInformationDTO.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/migration/CassandraSchemaTransitions.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/migration/CassandraMigrationService.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/migration/MigrationTaskDTO.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/migration/MigrationTask.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/migration/MigrationException.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/LockLessConcurrencyLimitingRequestThrottler.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraHealthCheck.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraConstants.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/CassandraAsyncExecutor.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/ZonedDateTimeRepresentation.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/utils/LightweightTransactionException.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/KeyspaceFactory.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraZonedDateTimeModule.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesCreator.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTypesProvider.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/KeyspaceConfiguration.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/ClusterConfiguration.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/CassandraConfiguration.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/InjectionNames.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/JamesExecutionProfiles.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/ClusterFactory.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraTableManager.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/CassandraSessionConfiguration.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/SessionWithInitializedTablesFactory.java
  AL    backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/ResilientClusterProvider.java
 !????? backends-common/cassandra/src/test/resources/cassandra-driver.conf
 !????? backends-common/cassandra/src/test/resources/configuration-reader-test/cassandra.properties
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/components/CassandraTableTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/components/CassandraTypeTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/versions/SchemaTransitionTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionDAOTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/versions/SchemaVersionTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/versions/CassandraSchemaVersionManagerTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandra.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterExtension.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/StatementRecorder.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraWaitStrategy.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraExtension.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/migration/MigrationTaskSerializationTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/migration/CassandraMigrationServiceTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/quota/CassandraQuotaCurrentValueDaoTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/quota/CassandraQuotaLimitDaoTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSessionTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraSingleton.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/Scenario.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/utils/PaggingTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/utils/CassandraHealthCheckTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/utils/ZonedDateTimeRepresentationTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/ResilientClusterProviderTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraConfigurationReadingTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/SessionWithInitializedTablesFactoryTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTableManagerTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTypeProviderTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTableManagerConcurrentTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraConfigurationTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/CassandraTypesCreatorTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/init/ClusterFactoryTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraCluster.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/ScenarioTest.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandraRule.java
  AL    backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/CassandraClusterTest.java
  AL    backends-common/cassandra/pom.xml
 !????? README.adoc
  AL    src/site/resources/downloads/codetemplates.xml
  AL    src/site/resources/css/site.css
  B     src/site/resources/favicon.ico
  B     src/site/resources/images/asf-logo-reduced.gif
  B     src/site/resources/images/james-logo.png
  B     src/site/resources/images/james-schema-subprojects.png
  B     src/site/resources/images/linagora.png
  B     src/site/resources/images/james-logo-square.png
  B     src/site/resources/protocols/images/void.gif
  B     src/site/resources/protocols/images/uml/org.apache.james.imap-withtest-package.png
  B     src/site/resources/protocols/images/uml/org.apache.james.imap.api.png
  B     src/site/resources/protocols/images/uml/org.apache.james.protocols-package.png
  B     src/site/resources/protocols/images/uml/org.apache.james.imap-package.png
  AL    src/site/resources/server/css/site.css
  B     src/site/resources/server/images/intellij-idea/intellij-import-layout-java.png
  B     src/site/resources/server/images/intellij-idea/intellij-checkstyle-scan.png
  B     src/site/resources/server/images/intellij-idea/intellij-james-zip.png
  B     src/site/resources/server/images/intellij-idea/intellij-import-layout-scala.png
  B     src/site/resources/server/images/intellij-idea/intellij-mvn.png
  B     src/site/resources/server/images/intellij-idea/intellij-checkstyle-setting.png
  B     src/site/resources/server/images/intellij-idea/intellij-james-project.png
  B     src/site/resources/server/images/intellij-idea/intellij-new-project.png
  B     src/site/resources/server/images/jmx-monitoring/jmx-org.apache.james.smtpserver.JamesDataCmdHandler.png
  B     src/site/resources/server/images/jmx-monitoring/jmx-current-connections.png
  B     src/site/resources/server/images/jmx-monitoring/jmx-gc.png
  B     src/site/resources/server/images/jmx-monitoring/jmx-memory.png
  B     src/site/resources/server/images/jmx-monitoring/jmx-process-root.png
  B     src/site/resources/server/images/eclipse/eclipse-run-james.gif
  B     src/site/resources/server/images/eclipse/eclipse-m2eclipse-projects.gif
  B     src/site/resources/server/images/eclipse/eclipse-import-maven-view-1.gif
  B     src/site/resources/server/images/eclipse/eclipse-m2eclipse-project-dependencies.gif
  B     src/site/resources/server/images/eclipse/eclipse-import-maven-view-2.gif
  B     src/site/resources/server/images/dns-mx/james-config-smart-host.png
  B     src/site/resources/server/images/dns-mx/james-config-secondary.png
  B     src/site/resources/server/images/dns-mx/james-config-load-balance.png
  B     src/site/resources/server/images/conf/config-example.png
  B     src/site/resources/server/images/performances/gatling_1.png
  B     src/site/resources/server/images/performances/metrics.png
  B     src/site/resources/server/images/performances/gatling_2.png
  B     src/site/resources/server/images/void.gif
  B     src/site/resources/server/images/netbeans/james-build-dir.png
  B     src/site/resources/server/images/netbeans/netbeans-james-project.png
  B     src/site/resources/server/images/netbeans/netbeans-svn-checkout2.png
  B     src/site/resources/server/images/netbeans/netbeans-svn-checkout1.png
  B     src/site/resources/server/images/netbeans/netbeans-svn-checkout-browse.png
  B     src/site/resources/server/images/uml/org.apache.james-package_large.png
  B     src/site/resources/server/images/uml/org.apache.james-package-large.png
  B     src/site/resources/server/images/uml/org.apache.james-package-details.png
  B     src/site/resources/server/images/uml/org.apache.james.server-package.png
  B     src/site/resources/server/images/uml/org.apache.james.container-package.png
  B     src/site/resources/server/images/uml/org.apache.james-package-detail_small.png
  B     src/site/resources/server/images/uml/org.apache.james-package-detail_large.png
  B     src/site/resources/server/images/uml/org.apache.james-package-small.png
  B     src/site/resources/server/images/uml/org.apache.james-package.png
  B     src/site/resources/server/images/uml/org.apache.james-package_small.png
  B     src/site/resources/server/images/uml/org.apache.james.management-package.png
  B     src/site/resources/server/images/jmx-management/jmx-domainlist.png
  B     src/site/resources/server/images/jmx-management/jmx-user-part.png
  B     src/site/resources/server/images/jmx-management/jmx-user.png
  B     src/site/resources/server/images/database/james-database-schema-derby_1000.png
  B     src/site/resources/server/images/database/james-database-schema-derby.png
  AL    src/site/resources/server/js/dev.js
  AL    src/site/resources/server/js/index.js
 !????? src/site/resources/server/rfclist/smtp/rfc1985.txt
 !????? src/site/resources/server/rfclist/smtp/rfc2554.txt
 !????? src/site/resources/server/rfclist/smtp/rfc1652.txt
 !????? src/site/resources/server/rfclist/smtp/rfc1830.txt
 !????? src/site/resources/server/rfclist/smtp/rfc2142.txt
 !????? src/site/resources/server/rfclist/smtp/rfc2034.txt
 !????? src/site/resources/server/rfclist/smtp/rfc1891.txt
 !????? src/site/resources/server/rfclist/smtp/rfc0974.txt
 !????? src/site/resources/server/rfclist/smtp/rfc2821.txt
 !????? src/site/resources/server/rfclist/smtp/rfc1870.txt
 !????? src/site/resources/server/rfclist/smtp/rfc2197.txt
 !????? src/site/resources/server/rfclist/smtp/rfc0821.txt
 !????? src/site/resources/server/rfclist/smtp/rfc1869.txt
 !????? src/site/resources/server/rfclist/smtp/rfc1893.txt
 !????? src/site/resources/server/rfclist/lmtp/rfc2033.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2087.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2221.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2193.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2192.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2088.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2060.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2086.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2342.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2595.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2195.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2180.txt
 !????? src/site/resources/server/rfclist/imap4/rfc5256.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2177.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2683.txt
 !????? src/site/resources/server/rfclist/imap4/rfc2359.txt
 !????? src/site/resources/server/rfclist/imap4/rfc1731.txt
 !????? src/site/resources/server/rfclist/pop3/rfc1725.txt
 !????? src/site/resources/server/rfclist/pop3/rfc1939.txt
 !????? src/site/resources/server/rfclist/pop3/rfc1734.txt
 !????? src/site/resources/server/rfclist/ldap/rfc2830.txt
 !????? src/site/resources/server/rfclist/ldap/rfc2255.txt
 !????? src/site/resources/server/rfclist/ldap/rfc2252.txt
 !????? src/site/resources/server/rfclist/ldap/rfc3377.txt
 !????? src/site/resources/server/rfclist/ldap/rfc2256.txt
 !????? src/site/resources/server/rfclist/ldap/rfc2253.txt
 !????? src/site/resources/server/rfclist/ldap/rfc2829.txt
 !????? src/site/resources/server/rfclist/ldap/rfc2254.txt
 !????? src/site/resources/server/rfclist/ldap/rfc2251.txt
 !????? src/site/resources/server/rfclist/basic/rfc0822.txt
 !????? src/site/resources/server/rfclist/basic/rfc2046.txt
 !????? src/site/resources/server/rfclist/basic/rfc2822.txt
 !????? src/site/resources/server/rfclist/basic/rfc1123.txt
 !????? src/site/resources/server/rfclist/basic/rfc2045.txt
  AL    src/site/resources/mailet/css/site.css
  AL    src/site/resources/js/james/index.js
  AL    src/site/resources/js/james/functions.js
  B     src/site/resources/mailbox/images/james-server-logo.gif
  B     src/site/resources/mailbox/images/void.gif
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-maildir-managers.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-api-mailboxsession.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-api-messagemanager.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-package.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-api-mailboxmanager.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-store-mailboxmanager.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-memory-managers.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-store-model.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-api-subscriptionmanager.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-store-subscriptionmanager.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-jpa-managers.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-store-messagemanager.png
  B     src/site/resources/mailbox/images/uml/org-apache-james-mailbox-api-msc.png
 !????? src/site/markdown/server/manage-guice-distributed-james.md
 !????? src/site/markdown/server/manage-cli.md
 !????? src/site/markdown/server/install/guice-cassandra-rabbitmq-s3.md
 !????? src/site/markdown/server/install/guice-cassandra.md
 !????? src/site/markdown/server/install/guice-jpa.md
 !????? src/site/markdown/server/install/guice-jpa-smtp.md
 !????? src/site/markdown/server/manage-webadmin.md
 !????? src/site/markdown/mailet/release-notes.md
 !????? src/site/markdown/mailet/quickstart.md
  AL    src/site/custom/project-info-report.properties
  AL    src/site/xdoc/mpt/index.xml
  AL    src/site/xdoc/mail.xml
  AL    src/site/xdoc/download.xml
  AL    src/site/xdoc/contribute.xml
  AL    src/site/xdoc/thanks.xml
  AL    src/site/xdoc/documentation.xml
  AL    src/site/xdoc/support.xml
  AL    src/site/xdoc/protocols/index.xml
  AL    src/site/xdoc/protocols/pop3.xml
  AL    src/site/xdoc/protocols/smtp.xml
  AL    src/site/xdoc/protocols/changes.xml
  AL    src/site/xdoc/protocols/source-code.xml
  AL    src/site/xdoc/protocols/imap4.xml
  AL    src/site/xdoc/server/upgrade.xml
  AL    src/site/xdoc/server/feature-performance.xml
  AL    src/site/xdoc/server/feature-queue-priority.xml
  AL    src/site/xdoc/server/objectives.xml
  AL    src/site/xdoc/server/index.xml
  AL    src/site/xdoc/server/monitor-logging.xml
  AL    src/site/xdoc/server/dev-extend-smtp-hook.xml
  AL    src/site/xdoc/server/feature-protocols.xml
  AL    src/site/xdoc/server/dev-extend-matcher.xml
  AL    src/site/xdoc/server/feature-mailetcontainer.xml
  AL    src/site/xdoc/server/features.xml
  AL    src/site/xdoc/server/feature-persistence.xml
  AL    src/site/xdoc/server/packaging.xml
  AL    src/site/xdoc/server/config-blobstore.xml
  AL    src/site/xdoc/server/config-listeners.xml
  AL    src/site/xdoc/server/config-vault.xml
  AL    src/site/xdoc/server/dev-provided.xml
  AL    src/site/xdoc/server/config-ssl-tls.xml
  AL    src/site/xdoc/server/advantages.xml
  AL    src/site/xdoc/server/config-recipientrewritetable.xml
  AL    src/site/xdoc/server/metrics.xml
  AL    src/site/xdoc/server/config-spring-jpa-postgres.xml
  AL    src/site/xdoc/server/dev-extend-mailet.xml
  AL    src/site/xdoc/server/config-blob-export.xml
  AL    src/site/xdoc/server/quick-start.xml
  AL    src/site/xdoc/server/config-redis.xml
  AL    src/site/xdoc/server/config-smtp-lmtp.xml
  AL    src/site/xdoc/server/config-mailetcontainer.xml
  AL    src/site/xdoc/server/config-pop3.xml
  AL    src/site/xdoc/server/config-domainlist.xml
  AL    src/site/xdoc/server/feature-smtp-hooks.xml
  AL    src/site/xdoc/server/dev-provided-smtp-hooks.xml
  AL    src/site/xdoc/server/manage.xml
  AL    src/site/xdoc/server/config-quota.xml
  AL    src/site/xdoc/server/config-mailbox.xml
  AL    src/site/xdoc/server/dev-build.xml
  AL    src/site/xdoc/server/config-activemq.xml
  AL    src/site/xdoc/server/config-cassandra.xml
  AL    src/site/xdoc/server/dev-database-schema.xml
  AL    src/site/xdoc/server/config-system.xml
  AL    src/site/xdoc/server/config-jmap.xml
  AL    src/site/xdoc/server/archive/architecture_v1_2.xml
  AL    src/site/xdoc/server/archive/document_archive.xml
  AL    src/site/xdoc/server/archive/usingTLS_v1_2.xml
  AL    src/site/xdoc/server/archive/architecture_v2_0.xml
  AL    src/site/xdoc/server/archive/usingLDAP_v1_2.xml
  AL    src/site/xdoc/server/archive/configuration_v2_0.xml
  AL    src/site/xdoc/server/archive/install.xml
  AL    src/site/xdoc/server/archive/announcement_2_1.xml
  AL    src/site/xdoc/server/archive/usingJDBC_v2.0.xml
  AL    src/site/xdoc/server/config-healthcheck.xml
  AL    src/site/xdoc/server/feature-security.xml
  AL    src/site/xdoc/server/config-users.xml
  AL    src/site/xdoc/server/config-antispam.xml
  AL    src/site/xdoc/server/quick-start-cassandra.xml
  AL    src/site/xdoc/server/rfcs.xml
  AL    src/site/xdoc/server/dev-extend.xml
  AL    src/site/xdoc/server/manage-jmx.xml
  AL    src/site/xdoc/server/config-rabbitmq.xml
  AL    src/site/xdoc/server/config-fetchmail.xml
  AL    src/site/xdoc/server/upgrade-2.3.xml
  AL    src/site/xdoc/server/config-mailrepositorystore.xml
  AL    src/site/xdoc/server/install.xml
  AL    src/site/xdoc/server/monitor-jmx.xml
  AL    src/site/xdoc/server/config-dnsservice.xml
  AL    src/site/xdoc/server/dev-activemq.xml
  AL    src/site/xdoc/server/config-opensearch.xml
  AL    src/site/xdoc/server/dev.xml
  AL    src/site/xdoc/server/monitor-folders.xml
  AL    src/site/xdoc/server/config-guice.xml
  AL    src/site/xdoc/server/config-imap4.xml
  AL    src/site/xdoc/server/release-notes.xml
  AL    src/site/xdoc/server/config-sieve.xml
  AL    src/site/xdoc/server/monitor.xml
  AL    src/site/xdoc/server/config-webadmin.xml
  AL    src/site/xdoc/server/config.xml
  AL    src/site/xdoc/mailet/index.xml
  AL    src/site/xdoc/mailet/standard/index.xml
  AL    src/site/xdoc/mailet/standard/conf.xml
  AL    src/site/xdoc/mailet/conf.xml
  AL    src/site/xdoc/mailet/stylesheets/site.xsl
  AL    src/site/xdoc/mailet/stylesheets/project.xml
  AL    src/site/xdoc/mailet/ai/index.xml
  AL    src/site/xdoc/mailet/api/index.xml
  AL    src/site/xdoc/mailet/base/index.xml
  AL    src/site/xdoc/mailet/mailetdocs-maven-plugin/index.xml
  AL    src/site/xdoc/mailet/crypto/index.xml
  AL    src/site/xdoc/mailet/crypto/conf.xml
  AL    src/site/xdoc/mailbox/index.xml
  AL    src/site/xdoc/mailbox/mailbox-tool.xml
  AL    src/site/xdoc/mailbox/mailbox-jpa.xml
  AL    src/site/xdoc/mailbox/source-code.xml
  AL    src/site/xdoc/mailbox/mailbox-store.xml
  AL    src/site/xdoc/mailbox/mailbox-spring.xml
  AL    src/site/xdoc/mailbox/mailbox-cassandra.xml
  AL    src/site/xdoc/mailbox/mailbox-memory.xml
  AL    src/site/xdoc/mailbox/mailbox-api.xml
  AL    src/site/xdoc/guidelines.xml
  AL    src/site/site.xml
  AL    src/site/apt/mpt/release-notes.apt
  AL    src/site/apt/mailet/release-notes-old.apt
  AL    src/site/apt/mailet/usage.apt
  AL    src/site/apt/mailet/examples/standard.apt
  AL    src/homepage/Gemfile
 !????? src/homepage/about.md
  AL    src/homepage/feed.xml
  AL    src/homepage/_layouts/post.html
  AL    src/homepage/_layouts/default.html
  AL    src/homepage/_layouts/howTo.html
 !????? src/homepage/Gemfile.lock
  AL    src/homepage/howTo/custom-smtp-hooks.html
  AL    src/homepage/howTo/deleted-messages-vault.html
  AL    src/homepage/howTo/mail-processing.html
  AL    src/homepage/howTo/spf.html
  AL    src/homepage/howTo/index.html
  AL    src/homepage/howTo/custom-listeners.html
  AL    src/homepage/howTo/custom-james-assembly.html
  AL    src/homepage/howTo/dkim.html
  AL    src/homepage/howTo/custom-webadmin-routes.html
  AL    src/homepage/howTo/custom-healthchecks.html
  AL    src/homepage/howTo/imap-server.html
  AL    src/homepage/howTo/custom-smtp-commands.html
  B     src/homepage/images/tb3.png
  B     src/homepage/images/james-general-architecture.png
  B     src/homepage/images/openpaas.png
  B     src/homepage/images/tb1.png
  B     src/homepage/images/tb4.png
 !????? src/homepage/images/james-alt.svg
  B     src/homepage/images/james-logo.png
  B     src/homepage/images/linagora.png
  B     src/homepage/images/hactoberfest.png
  B     src/homepage/images/guice-jpa-architecture-overview.png
 !????? src/homepage/images/james.svg
  B     src/homepage/images/james-smtp-relay.png
  B     src/homepage/images/tb3-5.png
  B     src/homepage/images/tb2.png
  B     src/homepage/images/james-imap-server.png
  AL    src/homepage/elements.html
  AL    src/homepage/index.html
  AL    src/homepage/posts.html
  AL    src/homepage/_includes/header.html
  AL    src/homepage/_includes/footer.html
 !????? src/homepage/_posts/2007-09-16-jspf-0.9.5.markdown
 !????? src/homepage/_posts/2019-03-26-james-3.3.0.markdown
 !????? src/homepage/_posts/2022-01-26-james-3.6.2.markdown
 !????? src/homepage/_posts/2011-12-07-protocols-1.6.0-RC1.markdown
 !????? src/homepage/_posts/2009-07-17-jMPT-0.1.markdown
 !????? src/homepage/_posts/2023-06-20-fail2ban.markdown
 !????? src/homepage/_posts/2007-04-05-JAMES-2.3.1-RC1.markdown
 !????? src/homepage/_posts/2022-08-26-james-3.7.1.markdown
 !????? src/homepage/_posts/2006-09-03-JSPF-0.9-b3.markdown
 !????? src/homepage/_posts/2022-10-28-jspf-1.0.2.markdown
 !????? src/homepage/_posts/2011-02-06-protocols-1.5.markdown
 !????? src/homepage/_posts/2009-05-16-Mailet-crypto-0.1.markdown
 !????? src/homepage/_posts/2012-01-07-mime4j-0.7.2.markdown
 !????? src/homepage/_posts/2024-03-05-mime4j-0.8.11.markdown
 !????? src/homepage/_posts/2007-04-15-JAMES-2.3.1.markdown
 !????? src/homepage/_posts/2010-06-02-mailet-base-1.1.markdown
 !????? src/homepage/_posts/2016-01-08-module-merge.markdown
 !????? src/homepage/_posts/2016-02-08-moving-to-git.markdown
 !????? src/homepage/_posts/2022-03-01-james-3.7.0.markdown
 !????? src/homepage/_posts/2016-10-19-james-3.0.markdown
 !????? src/homepage/_posts/2017-06-23-jsieve-0.7.markdown
 !????? src/homepage/_posts/2018-05-07-mime4j-0.8.2.markdown
 !????? src/homepage/_posts/2012-04-08-James-3.0-beta4.markdown
 !????? src/homepage/_posts/2007-01-03-Mailet-api.markdown
 !????? src/homepage/_posts/2007-05-15-mailet-api-lives.markdown
 !????? src/homepage/_posts/2009-06-16-jsieve-03.markdown
 !????? src/homepage/_posts/2016-11-19-james-3.0.markdown
 !????? src/homepage/_posts/2019-08-30-latest-image-changes.markdown
 !????? src/homepage/_posts/2015-10-08-james-2.3.1.markdown
 !????? src/homepage/_posts/2011-01-06-imap-mailbox-0.2.markdown
 !????? src/homepage/_posts/2011-11-07-jspf-1.0.0.markdown
 !????? src/homepage/_posts/2021-12-02-james-3.6.1.markdown
 !????? src/homepage/_posts/2021-09-21-james-joinsapachecon.markdown
 !????? src/homepage/_posts/2017-10-02-BlogPostInstallingJames.markdown
 !????? src/homepage/_posts/2022-10-07-jdkim-0.3.markdown
 !????? src/homepage/_posts/2011-10-07-mime4j-0.7.1.markdown
 !????? src/homepage/_posts/2010-05-01-mailet-1.0.markdown
 !????? src/homepage/_posts/2019-03-19-mime4j-0.8.3.markdown
 !????? src/homepage/_posts/2016-05-09-jmap.markdown
 !????? src/homepage/_posts/2009-01-16-MAILET-2.4.markdown
 !????? src/homepage/_posts/2006-10-03-JAMES-2.3.markdown
 !????? src/homepage/_posts/2012-01-08-protocols-1.6.1.markdown
 !????? src/homepage/_posts/2019-09-05-james-3.4.0.markdown
 !????? src/homepage/_posts/2007-02-04-JSPF-0.9-beta4.markdown
 !????? src/homepage/_posts/2009-10-17-jdkim.markdown
 !????? src/homepage/_posts/2007-05-16-mime4j-0.3.markdown
 !????? src/homepage/_posts/2020-07-16-james-3.5.0.markdown
 !????? src/homepage/_posts/2011-03-06-jspf-0.9.9.markdown
 !????? src/homepage/_posts/2009-03-16-Mime4j-0.6.markdown
 !????? src/homepage/_posts/2010-05-02-jsieve-0.4.markdown
 !????? src/homepage/_posts/2018-06-06-linagora-june-nl.markdown
 !????? src/homepage/_posts/2024-01-08-mime4j-0.8.10.markdown
 !????? src/homepage/_posts/2007-02-03-feathercast-fetures.markdown
 !????? src/homepage/_posts/2018-11-14-james-3.2.0.markdown
 !????? src/homepage/_posts/2010-12-06-protocols-1.2.markdown
 !????? src/homepage/_posts/2010-11-06-james-3.0-M2.markdown
 !????? src/homepage/_posts/2023-05-17-james-3.8.0.markdown
 !????? src/homepage/_posts/2017-10-03-Hacktoberfest.markdown
 !????? src/homepage/_posts/2016-07-09-jmap.markdown
 !????? src/homepage/_posts/2008-10-16-mime4j-0.5.markdown
 !????? src/homepage/_posts/2022-10-06-james-3.7.2.markdown
 !????? src/homepage/_posts/2007-04-04-james-commiters-guidelines.markdown
 !????? src/homepage/_posts/2022-12-30-james-3.7.3.markdown
 !????? src/homepage/_posts/2009-02-16-MAILET-docs-plugin-0.1.markdown
 !????? src/homepage/_posts/2015-09-08-james-2.3.1.markdown
 !????? src/homepage/_posts/2020-10-29-testing-james-with-jmeter.markdown
 !????? src/homepage/_posts/2009-06-17-jspf-0.9.7.markdown
 !????? src/homepage/_posts/2010-09-04-imap-0.2-M1.markdown
 !????? src/homepage/_posts/2023-03-20-james-3.7.4.markdown
 !????? src/homepage/_posts/2009-08-17-james-2.3.2.markdown
 !????? src/homepage/_posts/2018-01-26-admin-features.markdown
 !????? src/homepage/_posts/2011-04-06-mime4J-0.7.markdown
 !????? src/homepage/_posts/2017-07-20-james-3.0.markdown
 !????? src/homepage/_posts/2017-05-16-mime4j-0.8.1.markdown
 !????? src/homepage/_posts/2008-08-17-JSIEVE-0.2.markdown
 !????? src/homepage/_posts/2010-11-05-james-3.0-M1.markdown
 !????? src/homepage/_posts/2021-04-21-mime4j-0.8.4.markdown
 !????? src/homepage/_posts/2022-12-30-mime4j-0.8.9.markdown
 !????? src/homepage/_posts/2011-08-06-james-beta3.markdown
 !????? src/homepage/_posts/2018-02-12-gsoc-2018.markdown
 !????? src/homepage/_posts/2021-09-26-mime4j-0.8.6.markdown
 !????? src/homepage/_posts/2016-07-19-jmap.markdown
 !????? src/homepage/_posts/2008-03-16-gsoc-2008.markdown
 !????? src/homepage/_posts/2019-11-19-apache-con-eu.markdown
 !????? src/homepage/_posts/2011-05-06-jdKim0.2.markdown
 !????? src/homepage/_posts/2009-09-17-hupa.markdown
 !????? src/homepage/_posts/2010-06-03-jspf-0.9.8.markdown
 !????? src/homepage/_posts/2022-10-28-mime4j-0.8.8.markdown
 !????? src/homepage/_posts/2010-09-03-protocols-1.2-M2.markdown
 !????? src/homepage/_posts/2021-03-16-james-3.6.0.markdown
 !????? src/homepage/_posts/2016-09-19-james-3.0.markdown
 !????? src/homepage/_posts/2022-04-01-mime4j-0.8.7.markdown
 !????? src/homepage/_posts/2022-10-28-jsieve-0.8.markdown
 !????? src/homepage/_posts/2009-04-16-Mailet-base-0.1.markdown
 !????? src/homepage/_posts/2018-07-31-james-3.1.0.markdown
 !????? src/homepage/_posts/2006-08-02-james-website-updates.markdown
 !????? src/homepage/_posts/2008-08-16-mime4j-0.4.markdown
 !????? src/homepage/_posts/2012-06-08-hupa-0.2.markdown
 !????? src/homepage/_posts/2024-01-09-james-3.7.5.markdown
 !????? src/homepage/_posts/2016-02-09-jmap.markdown
 !????? src/homepage/_posts/2024-01-09-james-3.8.1.markdown
 !????? src/homepage/_posts/2012-01-07-protocols-1.6.0.markdown
 !????? src/homepage/_posts/2021-07-02-mime4j-0.8.5.markdown
 !????? src/homepage/_posts/2006-08-03-2.3.0-RC3.markdown
 !????? src/homepage/_posts/2011-10-06-protocols-1.6-beta2.markdown
 !????? src/homepage/_posts/2017-10-20-james-3.0.1.markdown
 !????? src/homepage/_posts/2017-05-16-james-3.0.0-rc1.markdown
 !????? src/homepage/_posts/2008-04-16-jspf-0.9.6.markdown
 !????? src/homepage/_posts/2012-12-08-mailet-2.5.0.markdown
 !????? src/homepage/_posts/2006-07-02-2.3.0on-the-way.markdown
 !????? src/homepage/_config.yml
 !????? src/homepage/assets/css/font-awesome.min.css
 !????? src/homepage/assets/css/main.css
 !????? src/homepage/assets/css/lity.min.css
 !????? src/homepage/assets/css/ie8.css
 !????? src/homepage/assets/css/ie9.css
  B     src/homepage/assets/css/images/background.jpg
  B     src/homepage/assets/css/images/overlay.png
 !????? src/homepage/assets/css/test.html
 !????? src/homepage/assets/css/lightbox.css
  B     src/homepage/assets/images/prev.png
  B     src/homepage/assets/images/close.png
  B     src/homepage/assets/images/next.png
  B     src/homepage/assets/images/gsoc.png
  B     src/homepage/assets/images/loading.gif
  B     src/homepage/assets/fonts/FontAwesome.otf
  B     src/homepage/assets/fonts/fontawesome-webfont.eot
  B     src/homepage/assets/fonts/fontawesome-webfont.woff2
  B     src/homepage/assets/fonts/fontawesome-webfont.woff
  B     src/homepage/assets/fonts/fontawesome-webfont.ttf
 !????? src/homepage/assets/fonts/fontawesome-webfont.svg
 !????? src/homepage/assets/js/main.js
 !????? src/homepage/assets/js/github-fetch.js
 !????? src/homepage/assets/js/jquery.min.js
 !????? src/homepage/assets/js/lightbox.js
 !????? src/homepage/assets/js/ie/PIE.htc
 !????? src/homepage/assets/js/ie/respond.min.js
 !????? src/homepage/assets/js/ie/html5shiv.js
 !????? src/homepage/assets/js/jquery.scrolly.min.js
 !????? src/homepage/assets/js/skel.min.js
 !????? src/homepage/assets/js/lity.min.js
 !????? src/homepage/assets/js/util.js
 !????? src/homepage/assets/js/jquery.scrollex.min.js
 !????? src/homepage/.sass-cache/1d0a46e57975118413d176685dbd41641eaa56fa/_syntax-highlighting.scssc
 !????? src/homepage/.sass-cache/1d0a46e57975118413d176685dbd41641eaa56fa/_base.scssc
 !????? src/homepage/.sass-cache/1d0a46e57975118413d176685dbd41641eaa56fa/_layout.scssc
 !????? src/homepage/.sass-cache/0d97c95486dbfb22208e2f940de32f180caddfba/minima.scssc
 !????? src/homepage/_site/about.md
  AL    src/homepage/_site/feed.xml
  AL    src/homepage/_site/howTo/custom-smtp-hooks.html
  AL    src/homepage/_site/howTo/deleted-messages-vault.html
  AL    src/homepage/_site/howTo/mail-processing.html
  AL    src/homepage/_site/howTo/spf.html
  AL    src/homepage/_site/howTo/index.html
  AL    src/homepage/_site/howTo/custom-listeners.html
  AL    src/homepage/_site/howTo/custom-james-assembly.html
  AL    src/homepage/_site/howTo/dkim.html
  AL    src/homepage/_site/howTo/custom-webadmin-routes.html
  AL    src/homepage/_site/howTo/custom-healthchecks.html
  AL    src/homepage/_site/howTo/imap-server.html
  AL    src/homepage/_site/howTo/custom-smtp-commands.html
  AL    src/homepage/_site/james/apachecon/2019/11/19/apache-con-eu.html
  AL    src/homepage/_site/james/update/2019/09/05/james-3.4.0.html
  AL    src/homepage/_site/james/update/2019/03/19/mime4j-0.8.3.html
  AL    src/homepage/_site/james/update/2019/03/26/james-3.3.0.html
  AL    src/homepage/_site/james/update/2019/08/30/latest-image-changes.html
  AL    src/homepage/_site/james/update/2012/06/08/hupa-0.2.html
  AL    src/homepage/_site/james/update/2012/04/08/James-3.0-beta4.html
  AL    src/homepage/_site/james/update/2012/01/07/protocols-1.6.0.html
  AL    src/homepage/_site/james/update/2012/01/07/mime4j-0.7.2.html
  AL    src/homepage/_site/james/update/2012/01/08/protocols-1.6.1.html
  AL    src/homepage/_site/james/update/2012/12/08/mailet-2.5.0.html
  AL    src/homepage/_site/james/update/2024/01/09/james-3.7.5.html
  AL    src/homepage/_site/james/update/2024/01/09/james-3.8.1.html
  AL    src/homepage/_site/james/update/2024/01/08/mime4j-0.8.10.html
  AL    src/homepage/_site/james/update/2022/04/01/mime4j-0.8.7.html
  AL    src/homepage/_site/james/update/2022/03/21/james-3.7.0.html
  AL    src/homepage/_site/james/update/2022/10/06/james-3.7.2.html
  AL    src/homepage/_site/james/update/2022/10/28/jsieve-0.8.html
  AL    src/homepage/_site/james/update/2022/10/28/mime4j-0.8.8.html
  AL    src/homepage/_site/james/update/2022/10/07/jdkim-0.3.html
  AL    src/homepage/_site/james/update/2022/01/26/james-3.6.2.html
  AL    src/homepage/_site/james/update/2022/08/26/james-3.7.1.html
  AL    src/homepage/_site/james/update/2022/12/30/jspf-1.0.2.html
  AL    src/homepage/_site/james/update/2022/12/30/mime4j-0.8.9.html
  AL    src/homepage/_site/james/update/2022/12/30/james-3.7.3.html
  AL    src/homepage/_site/james/update/2007/05/15/mailet-api-lives.html
  AL    src/homepage/_site/james/update/2007/05/16/mime4j-0.3.html
  AL    src/homepage/_site/james/update/2007/09/16/jspf-0.9.5.html
  AL    src/homepage/_site/james/update/2007/02/04/JSPF-0.9-beta4.html
  AL    src/homepage/_site/james/update/2007/02/03/feathercast-fetures.html
  AL    src/homepage/_site/james/update/2007/04/05/JAMES-2.3.1-RC1.html
  AL    src/homepage/_site/james/update/2007/04/15/JAMES-2.3.1.html
  AL    src/homepage/_site/james/update/2007/04/04/james-commiters-guidelines.html
  AL    src/homepage/_site/james/update/2007/01/03/Mailet-api.html
  AL    src/homepage/_site/james/update/2006/09/03/JSPF-0.9-b3.html
  AL    src/homepage/_site/james/update/2006/10/03/JAMES-2.3.html
  AL    src/homepage/_site/james/update/2006/07/02/2.3.0on-the-way.html
  AL    src/homepage/_site/james/update/2006/08/02/2.3.0-RC3.html
  AL    src/homepage/_site/james/update/2006/08/02/james-website-updates.html
  AL    src/homepage/_site/james/update/2021/09/21/james-joinsapachecon.html
  AL    src/homepage/_site/james/update/2021/09/26/mime4j-0.8.6.html
  AL    src/homepage/_site/james/update/2021/04/21/mime4j-0.8.4.html
  AL    src/homepage/_site/james/update/2021/03/16/james-3.6.0.html
  AL    src/homepage/_site/james/update/2021/07/02/mime4j-0.8.5.html
  AL    src/homepage/_site/james/update/2021/12/02/james-3.6.1.html
  AL    src/homepage/_site/james/update/2017/06/23/jsieve-0.7.html
  AL    src/homepage/_site/james/update/2017/06/16/mime4j-0.8.1.html
  AL    src/homepage/_site/james/update/2017/05/16/james-3.0.0-rc1.html
  AL    src/homepage/_site/james/update/2017/10/20/james-3.0.1.html
  AL    src/homepage/_site/james/update/2017/10/03/BlogPostInstallingJames.html
  AL    src/homepage/_site/james/update/2017/10/03/Hacktoberfest.html
  AL    src/homepage/_site/james/update/2017/07/20/james-3.0.html
  AL    src/homepage/_site/james/update/2011/05/06/jdKim0.2.html
  AL    src/homepage/_site/james/update/2011/02/06/protocols-1.5.html
  AL    src/homepage/_site/james/update/2011/04/06/mime4J-0.7.html
  AL    src/homepage/_site/james/update/2011/03/06/jspf-0.9.9.html
  AL    src/homepage/_site/james/update/2011/10/06/protocols-1.6-beta2.html
  AL    src/homepage/_site/james/update/2011/10/07/mime4j-0.7.1.html
  AL    src/homepage/_site/james/update/2011/10/07/jspf-1.0.0.html
  AL    src/homepage/_site/james/update/2011/10/07/protocols-1.6.0-RC1.html
  AL    src/homepage/_site/james/update/2011/01/06/imap-mailbox-0.2.html
  AL    src/homepage/_site/james/update/2011/08/06/james-beta3.html
  AL    src/homepage/_site/james/update/2018/06/06/linagora-june-nl.html
  AL    src/homepage/_site/james/update/2018/11/14/james-3.2.0.html
  AL    src/homepage/_site/james/update/2018/05/07/mime4j-0.8.2.html
  AL    src/homepage/_site/james/update/2018/01/25/admin-features.html
  AL    src/homepage/_site/james/update/2018/07/31/james-3.1.0.html
  AL    src/homepage/_site/james/update/2015/09/08/james-2.3.1.html
  AL    src/homepage/_site/james/update/2015/10/08/james-2.3.1.html
  AL    src/homepage/_site/james/update/2008/04/16/jspf-0.9.6.html
  AL    src/homepage/_site/james/update/2008/03/16/gsoc-2008.html
  AL    src/homepage/_site/james/update/2008/10/16/mime4j-0.5.html
  AL    src/homepage/_site/james/update/2008/08/16/mime4j-0.4.html
  AL    src/homepage/_site/james/update/2008/08/17/JSIEVE-0.2.html
  AL    src/homepage/_site/james/update/2023/05/17/fail2ban.html
  AL    src/homepage/_site/james/update/2023/05/17/james-3.8.0.html
  AL    src/homepage/_site/james/update/2023/03/20/james-3.7.4.html
  AL    src/homepage/_site/james/update/2010/06/02/mailet-base-1.1.html
  AL    src/homepage/_site/james/update/2010/06/03/jspf-0.9.8.html
  AL    src/homepage/_site/james/update/2010/11/05/protocols-1.2.html
  AL    src/homepage/_site/james/update/2010/11/05/james-3.0-M1.html
  AL    src/homepage/_site/james/update/2010/05/02/jsieve-0.4.html
  AL    src/homepage/_site/james/update/2010/05/01/mailet-1.0.html
  AL    src/homepage/_site/james/update/2010/09/04/imap-0.2-M1.html
  AL    src/homepage/_site/james/update/2010/09/03/protocols-1.2-M2.html
  AL    src/homepage/_site/james/update/2010/12/06/james-3.0-M2.html
  AL    src/homepage/_site/james/update/2020/07/16/james-3.5.0.html
  AL    src/homepage/_site/james/update/2016/11/19/james-3.0.html
  AL    src/homepage/_site/james/update/2016/05/09/jmap.html
  AL    src/homepage/_site/james/update/2016/09/19/james-3.0.html
  AL    src/homepage/_site/james/update/2016/02/09/moving-to-git.html
  AL    src/homepage/_site/james/update/2016/02/09/jmap.html
  AL    src/homepage/_site/james/update/2016/10/19/james-3.0.html
  AL    src/homepage/_site/james/update/2016/01/08/module-merge.html
  AL    src/homepage/_site/james/update/2016/07/09/jmap.html
  AL    src/homepage/_site/james/update/2016/07/19/jmap.html
  AL    src/homepage/_site/james/update/2009/06/16/jsieve-03.html
  AL    src/homepage/_site/james/update/2009/06/17/jspf-0.9.7.html
  AL    src/homepage/_site/james/update/2009/05/16/Mailet-crypto-0.1.html
  AL    src/homepage/_site/james/update/2009/09/17/hupa.html
  AL    src/homepage/_site/james/update/2009/02/16/MAILET-docs-plugin-0.1.html
  AL    src/homepage/_site/james/update/2009/04/16/Mailet-base-0.1.html
  AL    src/homepage/_site/james/update/2009/03/16/Mime4j-0.6.html
  AL    src/homepage/_site/james/update/2009/10/17/jdkim.html
  AL    src/homepage/_site/james/update/2009/01/16/MAILET-2.4.html
  AL    src/homepage/_site/james/update/2009/07/17/jMPT-0.1.html
  AL    src/homepage/_site/james/update/2009/08/17/james-2.3.2.html
  B     src/homepage/_site/images/tb3.png
  B     src/homepage/_site/images/james-general-architecture.png
  B     src/homepage/_site/images/openpaas.png
  B     src/homepage/_site/images/tb1.png
  B     src/homepage/_site/images/tb4.png
 !????? src/homepage/_site/images/james-alt.svg
  B     src/homepage/_site/images/james-logo.png
  B     src/homepage/_site/images/linagora.png
  B     src/homepage/_site/images/hactoberfest.png
  B     src/homepage/_site/images/guice-jpa-architecture-overview.png
 !????? src/homepage/_site/images/james.svg
  B     src/homepage/_site/images/james-smtp-relay.png
  B     src/homepage/_site/images/tb3-5.png
  B     src/homepage/_site/images/tb2.png
  B     src/homepage/_site/images/james-imap-server.png
  AL    src/homepage/_site/elements.html
  AL    src/homepage/_site/index.html
  AL    src/homepage/_site/posts.html
  AL    src/homepage/_site/community/2020/10/29/testing-james-with-jmeter.html
 !????? src/homepage/_site/assets/main.css
 !????? src/homepage/_site/assets/css/font-awesome.min.css
 !????? src/homepage/_site/assets/css/main.css
 !????? src/homepage/_site/assets/css/lity.min.css
 !????? src/homepage/_site/assets/css/ie8.css
 !????? src/homepage/_site/assets/css/ie9.css
  B     src/homepage/_site/assets/css/images/background.jpg
  B     src/homepage/_site/assets/css/images/overlay.png
 !????? src/homepage/_site/assets/css/test.html
 !????? src/homepage/_site/assets/css/lightbox.css
  B     src/homepage/_site/assets/images/prev.png
  B     src/homepage/_site/assets/images/close.png
  B     src/homepage/_site/assets/images/next.png
  B     src/homepage/_site/assets/images/gsoc.png
  B     src/homepage/_site/assets/images/loading.gif
 !????? src/homepage/_site/assets/minima-social-icons.svg
  B     src/homepage/_site/assets/fonts/FontAwesome.otf
  B     src/homepage/_site/assets/fonts/fontawesome-webfont.eot
  B     src/homepage/_site/assets/fonts/fontawesome-webfont.woff2
  B     src/homepage/_site/assets/fonts/fontawesome-webfont.woff
  B     src/homepage/_site/assets/fonts/fontawesome-webfont.ttf
 !????? src/homepage/_site/assets/fonts/fontawesome-webfont.svg
 !????? src/homepage/_site/assets/js/main.js
 !????? src/homepage/_site/assets/js/github-fetch.js
 !????? src/homepage/_site/assets/js/jquery.min.js
 !????? src/homepage/_site/assets/js/lightbox.js
 !????? src/homepage/_site/assets/js/ie/PIE.htc
 !????? src/homepage/_site/assets/js/ie/respond.min.js
 !????? src/homepage/_site/assets/js/ie/html5shiv.js
 !????? src/homepage/_site/assets/js/jquery.scrolly.min.js
 !????? src/homepage/_site/assets/js/skel.min.js
 !????? src/homepage/_site/assets/js/lity.min.js
 !????? src/homepage/_site/assets/js/util.js
 !????? src/homepage/_site/assets/js/jquery.scrollex.min.js
  AL    src/homepage/_site/announcements/2018/01/31/gsoc-2018.html
 !????? src/homepage-docker/Dockerfile
 !????? src/homepage-docker/compile.sh
 !????? src/site-docker/Dockerfile
 !????? src/site-docker/compile.sh
 !????? src/adr/0026-removing-configured-additional-mailboxListeners.md
 !????? src/adr/0032-distributed-mail-queue-cleanup.md
 !????? src/adr/0007-distributed-task-cancellation.md
 !????? src/adr/0043-avoid-elasticsearch-on-critical-reads.md
 !????? src/adr/0068-mutualize-cassandra-storge-for-quota.md
 !????? src/adr/0066-modular-user-data-deletion.md
 !????? src/adr/0039-distributed-blob-garbage-collector.md
 !????? src/adr/0030-separate-attachment-content-and-metadata.md
 !????? src/adr/0055-rspamd-spam-filtering.md
 !????? src/adr/0044-against-the-use-of-cassandra-lightweight-transactions.md
 !????? src/adr/0050-jmap-web-push.md
 !????? src/adr/0002-make-taskmanager-distributed.md
 !????? src/adr/0012-jmap-partial-reads.md
 !????? src/adr/0038-distributed-eventbus.md
 !????? src/adr/0031-distributed-mail-queue.md
 !????? src/adr/0004-distributed-tasks-listing.md
 !????? src/adr/0027-eventBus-error-handling-upon-dispatch.md
 !????? src/adr/0021-cassandra-acl-inconsistency.md
 !????? src/adr/0023-cassandra-mailbox-counters-inconsistencies.md
 !????? src/adr/0063-temporary-file-leaks.md
 !????? src/adr/0069-crowdsec-IP-filtering.md
 !????? src/adr/0037-eventbus.md
 !????? src/adr/0049-deduplicated-blobs-gs-with-bloom-filters.md
 !????? src/adr/0024-polyglot-strategy.md
 !????? src/adr/0060-adopt-bounded-elastic.md
 !????? src/adr/0058-upgrade-to-netty-4.md
 !????? src/adr/0042-applicative-read-repairs.md
 !????? src/adr/0048-cleanup-jmap-uploads.md
 !????? src/adr/0015-objectstorage-blobid-list.md
 !????? src/adr/0017-file-mail-queue-deprecation.md
 !????? src/adr/0020-cassandra-mailbox-object-consistency.md
 !????? src/adr/0047-jmap-push-over-websockets.md
 !????? src/adr/0009-disable-elasticsearch-dynamic-mapping.md
 !????? src/adr/0006-task-serialization.md
 !????? src/adr/0057-reactive-imap.md
 !????? src/adr/0051-oidc.md
 !????? src/adr/0019-reactor-netty-adoption.md
 !????? src/adr/0054-elasticsearch-search-overrides.md
 !????? src/adr/0040-quality-levels-definitions.md
 !????? src/adr/0056-opensearch-migration.md
 !????? src/adr/0042-james-cli-based-on-webadmin.md
 !????? src/adr/0003-distributed-workqueue.md
 !????? src/adr/0009-java-11-migration.md
 !????? src/adr/0065-changing-username.md
 !????? src/adr/0025-cassandra-blob-store-cache.md
 !????? src/adr/0029-Cassandra-mailbox-deletion-cleanup.md
 !????? src/adr/0064-account-delegation.md
 !????? src/adr/0046-generalize-event-bus.md
 !????? src/adr/0001-record-architecture-decisions.md
 !????? src/adr/0034-mailbox-api-visibility-and-usage.md
 !????? src/adr/0018-jmap-new-specs.md
 !????? src/adr/0035-distributed-listeners-configuration.md
 !????? src/adr/0062-oidc-token-introspection.md
 !????? src/adr/0041-replace-jcloud-with-s3.md
 !????? src/adr/0036-against-use-of-conditional-statements-in-guice-modules.md
 !????? src/adr/0011-remove-elasticsearch-document-source.md
 !????? src/adr/0059-upgrade-to-cassadra-driver-4.md
 !????? src/adr/0016-distributed-workqueue.md
 !????? src/adr/0052-pulsar-mailqueue.md
 !????? src/adr/0014-blobstore-storage-policies.md
 !????? src/adr/0008-distributed-task-await.md
  B     src/adr/img/adr-69-scenario-diagram.png
  B     src/adr/img/adr-68-architecture-diagram.png
 !????? src/adr/0053-email-rate-limiting.md
 !????? src/adr/0013-precompute-jmap-preview.md
 !????? src/adr/0067-quota-for-jmap-uploads.md
 !????? src/adr/0028-Recompute-mailbox-quotas.md
 !????? src/adr/0070-postgresql-adoption.md
 !????? src/adr/0022-cassandra-message-inconsistency.md
 !????? src/adr/0005-distributed-task-termination-ackowledgement.md
 !????? src/adr/0033-use-scala-in-event-sourcing-modules.md
 !????? src/adr/0061-delegation.md
 !????? src/adr/0045-support-jmap-push-with-mailbox-changes-implementation.md
 !????? src/adr/0010-enable-elasticsearch-routing.md
  AL    src/reporting-site/site.xml
  B     james-logo.png
  GEN   pom.xml
  AL    core/src/main/java/org/apache/james/util/Port.java
  AL    core/src/main/java/org/apache/james/util/Host.java
  AL    core/src/main/java/org/apache/james/core/MaybeSender.java
  AL    core/src/main/java/org/apache/james/core/Domain.java
  AL    core/src/main/java/org/apache/james/core/MailAddress.java
  AL    core/src/main/java/org/apache/james/core/Username.java
  AL    core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java
  AL    core/src/main/java/org/apache/james/core/builder/MimeMessageWrapper.java
  AL    core/src/main/java/org/apache/james/core/quota/QuotaSizeUsage.java
  AL    core/src/main/java/org/apache/james/core/quota/QuotaLimitValue.java
  AL    core/src/main/java/org/apache/james/core/quota/QuotaComponent.java
  AL    core/src/main/java/org/apache/james/core/quota/QuotaType.java
  AL    core/src/main/java/org/apache/james/core/quota/QuotaCountLimit.java
  AL    core/src/main/java/org/apache/james/core/quota/QuotaScope.java
  AL    core/src/main/java/org/apache/james/core/quota/QuotaUsageValue.java
  AL    core/src/main/java/org/apache/james/core/quota/QuotaCountUsage.java
  AL    core/src/main/java/org/apache/james/core/quota/QuotaSizeLimit.java
  AL    core/src/main/java/org/apache/james/core/quota/QuotaCurrentValue.java
  AL    core/src/main/java/org/apache/james/core/quota/QuotaLimit.java
  AL    core/src/main/java/org/apache/james/core/healthcheck/HealthCheck.java
  AL    core/src/main/java/org/apache/james/core/healthcheck/Result.java
  AL    core/src/main/java/org/apache/james/core/healthcheck/ComponentName.java
  AL    core/src/main/java/org/apache/james/core/healthcheck/ResultStatus.java
  AL    core/src/test/java/org/apache/james/util/PortTest.java
  AL    core/src/test/java/org/apache/james/util/HostTest.java
  AL    core/src/test/java/org/apache/james/domainlist/api/DomainTest.java
  AL    core/src/test/java/org/apache/james/core/CoreFixture.java
  AL    core/src/test/java/org/apache/james/core/MaybeSenderTest.java
  AL    core/src/test/java/org/apache/james/core/builder/MimeMessageBuilderTest.java
  AL    core/src/test/java/org/apache/james/core/builder/MimeMessageWrapperTest.java
  AL    core/src/test/java/org/apache/james/core/UsernameTest.java
  AL    core/src/test/java/org/apache/james/core/quota/QuotaCountLimitTest.java
  AL    core/src/test/java/org/apache/james/core/quota/QuotaSizeLimitTest.java
  AL    core/src/test/java/org/apache/james/core/quota/QuotaUsageValueTest.java
  AL    core/src/test/java/org/apache/james/core/quota/QuotaLimitValueTest.java
  AL    core/src/test/java/org/apache/james/core/quota/QuotaCountUsageTest.java
  AL    core/src/test/java/org/apache/james/core/quota/QuotaSizeUsageTest.java
  AL    core/src/test/java/org/apache/james/core/quota/QuotaLimitTest.java
  AL    core/src/test/java/org/apache/james/core/quota/QuotaCurrentValueTest.java
  AL    core/src/test/java/org/apache/james/core/MailAddressTest.java
  AL    core/src/test/java/org/apache/james/core/healthcheck/ResultTest.java
  AL    core/src/test/java/org/apache/james/core/healthcheck/ResultStatusTest.java
  AL    core/src/test/java/org/apache/james/core/healthcheck/ComponentNameTest.java
  AL    core/pom.xml
  AL    mdn/src/main/scala/org/apache/james/mdn/MDNReportParser.scala
  AL    mdn/src/main/java/org/apache/james/mdn/sending/mode/DispositionSendingMode.java
  AL    mdn/src/main/java/org/apache/james/mdn/type/DispositionType.java
  AL    mdn/src/main/java/org/apache/james/mdn/action/mode/DispositionActionMode.java
  AL    mdn/src/main/java/org/apache/james/mdn/MDNReport.java
  AL    mdn/src/main/java/org/apache/james/mdn/MDN.java
  AL    mdn/src/main/java/org/apache/james/mdn/fields/Error.java
  AL    mdn/src/main/java/org/apache/james/mdn/fields/AddressType.java
  AL    mdn/src/main/java/org/apache/james/mdn/fields/OriginalMessageId.java
  AL    mdn/src/main/java/org/apache/james/mdn/fields/Text.java
  AL    mdn/src/main/java/org/apache/james/mdn/fields/Field.java
  AL    mdn/src/main/java/org/apache/james/mdn/fields/Disposition.java
  AL    mdn/src/main/java/org/apache/james/mdn/fields/OriginalRecipient.java
  AL    mdn/src/main/java/org/apache/james/mdn/fields/Gateway.java
  AL    mdn/src/main/java/org/apache/james/mdn/fields/ReportingUserAgent.java
  AL    mdn/src/main/java/org/apache/james/mdn/fields/ExtensionField.java
  AL    mdn/src/main/java/org/apache/james/mdn/fields/FinalRecipient.java
  AL    mdn/src/main/java/org/apache/james/mdn/modifier/DispositionModifier.java
  AL    mdn/src/test/scala/org/apache/james/mdn/MDNReportParserTest.scala
  AL    mdn/src/test/java/org/apache/james/mdn/sending/mode/DispositionSendingModeTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/type/DispositionTypeTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/action/mode/DispositionActionModeTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/MDNTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/MDNReportFormattingTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/fields/OriginalRecipientTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/fields/GatewayTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/fields/DispositionTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/fields/OriginalMessageIdTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/fields/AddressTypeTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/fields/ExtensionFieldTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/fields/FinalRecipientTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/fields/ErrorTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/fields/ReportingUserAgentTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/fields/TextTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/modifier/DispositionModifierTest.java
  AL    mdn/src/test/java/org/apache/james/mdn/MDNReportTest.java
  AL    mdn/pom.xml
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelope.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPStartTlsResponse.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/dsn/DSNStatus.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfiguration.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddressException.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailAddress.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfigurationImpl.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPResponse.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AcceptRecipientIfRelayingIsAllowed.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/NoopCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RsetCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/QuitCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/HeloCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractAuthRequiredToRelayRcptHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/WelcomeMessageHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/HelpCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/UnknownCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineFilter.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/SMTPMDCContextFactory.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ExpnCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/EhloExtension.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/StartTlsCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/VrfyCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/SeparatingDataLineFilter.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractSenderAuthIdentifyVerificationHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ReverseEqualsEhloHeloHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandler.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/MailEnvelopeImpl.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookResult.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/AuthHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HeloHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/QuitHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/SimpleHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MailParametersHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookResultHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/MessageHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/Hook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/HookReturnCode.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/UnknownHook.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPServerMBean.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
  AL    protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPRetCode.java
 !????? protocols/smtp/src/test/resources/a50.eml
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPSServerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettySMTPServerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyProxySMTPServerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettySMTPSServerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ValidSenderDomainHandlerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxUnknownCmdHandlerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandlerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/ResolvableEhloHeloHandlerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandlerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandlerTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/BaseFakeSMTPSession.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/TestMessageHook.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/hook/HookResultTest.java
  AL    protocols/smtp/src/test/java/org/apache/james/protocols/smtp/SMTPStartTlsResponseTest.java
  AL    protocols/smtp/src/reporting-site/site.xml
  AL    protocols/smtp/pom.xml
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/jsieve/Parser.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/util/ParserUtils.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/util/SettableSession.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/ManageSieveProcessor.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/ArgumentParser.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/transcode/NotEnoughDataException.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/AuthenticationProcessor.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/SieveParser.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/SessionTerminatedException.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/AuthenticationException.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/UnknownSaslMechanism.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/ManageSieveException.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/StartTLS.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/ListScripts.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/Noop.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/CoreCommands.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/Unauthenticate.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/Authenticate.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/CheckScript.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/Logout.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/Capability.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/HaveSpace.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/RenameScript.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/PutScript.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/GetScript.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/LineCommands.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/SetActive.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/commands/DeleteScript.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/CapabilityAdvertiser.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/AuthenticationRequiredException.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/ArgumentException.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/SyntaxException.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/api/Session.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java
  AL    protocols/managesieve/src/main/java/org/apache/james/managesieve/core/PlainAuthenticationProcessor.java
  AL    protocols/managesieve/src/test/java/org/apache/james/managesieve/util/ParserUtilsTest.java
  AL    protocols/managesieve/pom.xml
  AL    protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPMultiResponse.java
  AL    protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPConfiguration.java
  AL    protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/core/DataLineMessageHookHandler.java
  AL    protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/core/WelcomeMessageHandler.java
  AL    protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/core/LhloCmdHandler.java
  AL    protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/core/ReceivedDataLineFilter.java
  AL    protocols/lmtp/src/main/java/org/apache/james/protocols/lmtp/hook/DeliverToRecipientHook.java
  AL    protocols/lmtp/src/main/reporting-site/site.xml
  AL    protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/LMTPProtocolHandlerChain.java
  AL    protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPSServerTest.java
  AL    protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/netty/NettyLMTPServerTest.java
  AL    protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/netty/NettyLMTPSServerTest.java
  AL    protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/LMTPConfigurationImpl.java
  AL    protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
  AL    protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/LMTPClient.java
  AL    protocols/lmtp/pom.xml
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/NettyProtocolTransport.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractSSLAwareChannelPipelineFactory.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/Encryption.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/HandlerConstants.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/ConnectionPerIpLimitUpstreamHandler.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/ProtocolMDCContextFactory.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/TimeoutHandler.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/LineHandlerAware.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractAsyncServer.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/CommandInjectionDetectedException.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/NettyServer.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/LineHandlerUpstreamHandler.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/BasicChannelInboundHandler.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/LineDelimiterBasedChannelHandlerFactory.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/AllButStartTlsLineChannelHandlerFactory.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/AllButStartTlsLineBasedChannelHandler.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/ConnectionLimitUpstreamHandler.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/AbstractChannelPipelineFactory.java
  AL    protocols/netty/src/main/java/org/apache/james/protocols/netty/ChannelHandlerFactory.java
  AL    protocols/netty/src/test/java/org/apache/james/protocols/netty/NettyServerTest.java
  AL    protocols/netty/src/reporting-site/site.xml
  AL    protocols/netty/pom.xml
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Configuration.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Session.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3StartTlsResponse.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3StreamResponse.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPOP3CommandHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/NoopCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/CapaCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/TopCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/ExtraDotInputStream.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/POP3MessageCommandArguments.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/WelcomeMessageHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/ListCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UnknownCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/CRLFTerminatedInputStream.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/CapaCapability.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/POP3MessageCommandDelegate.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UserCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/DeleCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractApopCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StlsCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/MDCConstants.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3SessionImpl.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/ImapMailbox.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/Mailbox.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/MessageMetaData.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/ImapMessageMetaData.java
  AL    protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Response.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/netty/NettyPOP3ServerTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/netty/NettyPOP3SServerTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/netty/NettyStartTlsPOP3ServerTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractStartTlsPOP3ServerTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/core/ListCmdHandlerTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/core/CRLFTerminatedInputStreamTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/core/UidlCmdHandlerTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/core/TopCmdHandlerTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/core/POP3MessageCommandDelegateTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/core/AbstractInputStreamTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/core/POP3MessageCommandArgumentsTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/core/DeleCmdHandlerTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/core/RetrCmdHandlerTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/core/ExtraDotInputStreamTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/POP3ProtocolHandlerChain.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3SServerTest.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/TestPassCmdHandler.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/MockMailbox.java
  AL    protocols/pop3/src/test/java/org/apache/james/protocols/pop3/POP3StartTlsResponseTest.java
  AL    protocols/pop3/pom.xml
  AL    protocols/src/site/site.xml
  AL    protocols/src/reporting-site/site.xml
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/ClientAuth.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/Protocol.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolConfiguration.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/Response.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/StreamResponse.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/BaseRequest.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/Request.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolServer.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolConfigurationImpl.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/AbstractResponse.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/CommandDetectionSession.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolTransport.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/AbstractProtocolTransport.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerChain.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerResultHandler.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/ConnectHandler.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/ExtensibleHandler.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/UnknownCommandHandler.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandler.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/LineHandler.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerChainImpl.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/DisconnectHandler.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandler.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/WiringException.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/StartTlsResponse.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/OidcSASLConfiguration.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/ProxyInformation.java
  AL    protocols/api/src/main/java/org/apache/james/protocols/api/OIDCSASLParser.java
  B     protocols/api/src/test/resources/boguskeystore
  AL    protocols/api/src/test/java/org/apache/james/protocols/api/AbstractProtocolTransportTest.java
  AL    protocols/api/src/test/java/org/apache/james/protocols/api/ProtocolSessionTest.java
  AL    protocols/api/src/test/java/org/apache/james/protocols/api/OIDCSASLHelper.java
  AL    protocols/api/src/test/java/org/apache/james/protocols/api/utils/BogusSSLSocketFactory.java
  AL    protocols/api/src/test/java/org/apache/james/protocols/api/utils/ProtocolServerUtils.java
  AL    protocols/api/src/test/java/org/apache/james/protocols/api/utils/BogusSslContextFactory.java
  AL    protocols/api/src/test/java/org/apache/james/protocols/api/utils/BogusKeyStore.java
  AL    protocols/api/src/test/java/org/apache/james/protocols/api/utils/BogusTrustManagerFactory.java
  AL    protocols/api/src/test/java/org/apache/james/protocols/api/OIDCSASLParserTest.java
  AL    protocols/api/src/test/java/org/apache/james/protocols/api/ProxyInformationTest.java
  AL    protocols/api/src/reporting-site/site.xml
  AL    protocols/api/pom.xml
  AL    protocols/pom.xml
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ImapResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/VanishedResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/XListResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/NamespaceResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/main/DefaultLocalizer.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/EncoderUtils.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/CapabilityResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ListResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ImapEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/AuthenticateResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/EnableResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ExpungeResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/FlagsResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaRootResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ImapEncoderFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/MailboxStatusResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/MetadataResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/RecentResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ImapResponseWriter.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ContinuationResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ESearchResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/StatusResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/FetchResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/base/EndImapEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ListingEncodingUtils.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/MyRightsResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/SearchResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/FakeImapSession.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ExistsResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/ListRightsResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/LSubResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/encode/IdResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/CopyProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/CheckProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/main/DefaultImapProcessorFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/ContentBodyElement.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeImpl.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EmptyContent.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MimeDescriptorStructure.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/AddressImpl.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MimeBodyElement.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/PartialFetchBodyElement.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchDataConverter.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/HeadersBodyElement.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/HeaderBodyElement.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MessageResultUtils.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/ReplaceProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/SetQuotaProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityImplementingProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/SetMetadataProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSubscriptionProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/GetMetadataProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/NoopProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/CompressProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/SelectProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/IdProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/base/UnknownRequestProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/base/ImapResponseMessageProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/base/UidMsnConverter.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/DefaultProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/LoginProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/PermitEnableCapabilityProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/MoveProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/XListProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/ExamineProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/main/PathConverter.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/main/ResponseEncoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/main/AbstractImapRequestHandler.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/main/DeniedAccessOnSharedMailboxException.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/main/DefaultImapDecoderFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestStreamLineReader.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/DecoderUtils.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/main/OutputStreamImapResponseWriter.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/main/DefaultImapDecoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/main/ImapRequestStreamHandler.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/ImapDecoderFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/ImapCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/DecodingException.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/FetchPartPathDecoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/ImapDecoder.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/ImapCommandParserFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ReplaceCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LsubCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AuthenticateCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ImapParserFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/IdleCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MoveCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetQuotaRootCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ExamineCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/NamespaceCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UnselectCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CapabilityCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MyRightsCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/StoreCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CreateCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteACLCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/StatusCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SelectCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/RenameCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AbstractMessageRangeCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/FetchCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ExpungeCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CopyCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetACLCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetQuotaCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AbstractUidCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UidCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CloseCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetACLCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListRightsCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UnsubscribeCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/StartTLSCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AbstractSelectionCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetQuotaCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetMetadataCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LoginCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/IDCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/NoopCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/XListCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SubscribeCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AppendCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LogoutCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CompressCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CheckCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/decode/parser/EnableCommandParser.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/ImapSuite.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/ConnectionCheck.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/ImapSessionState.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/Tag.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/DefaultConnectionCheckFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/ImapConstants.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/ConnectionCheckFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/display/ModifiedUtf7.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/display/Localizer.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/display/Locales.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/ImapMessage.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/process/SearchResUtil.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/process/MailboxTyper.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/process/DefaultMailboxTyper.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapLineHandler.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/process/SelectedMailbox.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapSession.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapProcessor.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/process/MailboxType.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/PartialRange.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/SectionType.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchKey.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchResultOption.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/request/DayMonthYear.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/request/ImapRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchOperation.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/FetchData.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/MessageFlags.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/BodyFetchElement.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/Capability.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/StatusDataItems.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/IdRange.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/response/ImapResponseMessage.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/response/StatusResponseFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/message/response/StatusResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/api/ImapCommand.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/utils/EolInputStream.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/utils/FastByteArrayOutputStream.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/BytesBackedLiteral.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/SetQuotaRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/DeleteRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/IRAuthenticateRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/ExpungeRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/ReplaceRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/ListRightsRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractImapRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/SelectRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/SubscribeRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMessageRangeRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/NamespaceRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/MyRightsRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/AppendRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/CloseRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/FetchRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/SetMetadataRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/NoopRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/IDRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/LogoutRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/SetACLRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/IdleRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/CopyRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/GetQuotaRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/LsubRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/DeleteACLRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/UnsubscribeRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/UnselectRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/XListRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/CheckRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/GetMetadataRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/CapabilityRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/LoginRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/StartTLSRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/ListRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/StoreRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/SearchRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/GetQuotaRootRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/EnableRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/StatusRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/SystemMessage.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/MoveRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/GetACLRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/CompressRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/AuthenticateRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/RenameRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/CreateRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/request/ExamineRequest.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/Literal.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/QuotaRootResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/SearchResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/RecentResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/MetadataResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/FlagsResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/ImmutableStatusResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/ListResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/ESearchResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/AbstractStatusResponseFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/MailboxStatusResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/FetchResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/XListResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/AuthenticateResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/QuotaResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/IdResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/ContinuationResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/EnableResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/NamespaceResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/VanishedResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/ACLResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/AbstractListingResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/ExpungeResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/ExistsResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/CapabilityResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/UnpooledStatusResponseFactory.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/MyRightsResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/imap/message/response/LSubResponse.java
  AL    protocols/imap/src/main/java/org/apache/james/mailbox/MessageSequenceNumber.java
  AL    protocols/imap/src/main/java/org/apache/james/mailbox/NullableMessageSequenceNumber.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactoryTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/FetchResponseEncoderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/EncoderUtilsTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/FetchResponseEncoderNoExtensionsTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/SearchResponseEncoderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/EncoderUtilsDateTimeLocaleTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/XListResponseEncoderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/QuotaResponseEncoderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/MetadataResponseEncoderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/ImapResponseComposerImplTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/QuotaRootResponseEncoderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/base/ByteImapResponseWriter.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/NamespaceResponseEncoderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/ListResponseEncoderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/ListingEncodingUtilsTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/FetchResponseEncoderEnvelopeTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/LSubResponseEncoderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/encode/MailboxStatusResponseEncoderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/SetQuotaProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/StatusResponseTypeMatcher.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/fetch/PartialFetchBodyElementTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/fetch/MailboxMessageResultUtilsTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/fetch/FetchDataConverterTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/NamespaceProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/SelectProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaRootProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/SetMetadataProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/AbstractSelectionProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/base/UidMsnConverterTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/CapabilityProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/processor/GetQuotaProcessorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/main/PathConverterTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/main/ImapRequestHandlerAdandonConnectionTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/FetchPartPathDecoderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/main/IdRangeParseTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/DecoderUtilsLocaleDateTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/StringMatcherCharacterValidatorTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/ImapRequestLineReaderTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/DecoderUtilsTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserAndParenthesesTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserCharsetTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/GetMetadataCommandParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CreateCommandParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/MoveParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/StatusCommandParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserQuotedCharsetTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SelectParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SetQuotaCommandParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/FetchCommandParserPartialFetchTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/GetQuotaParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserNotTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SelectCommandParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserOrTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserTopLevelAndTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/AppendCommandParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserSearchKeyTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/GetQuotaRootParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/NioUtils.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/CopyParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserSearchKeySequenceSetTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/decode/parser/StoreCommandParserTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/api/ImapSessionTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/api/ImapConfigurationTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/api/IdRangeTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/api/ImapCommandTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/api/message/request/SearchKeyTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/api/message/UidRangeTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/api/message/CapabilityTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/api/message/BodyFetchElementTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/api/message/response/AbstractStatusResponseFactoryTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/api/message/response/StatusResponseTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/api/TagTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/ImapFixture.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequestTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/message/response/UnpooledStatusResponseFactoryTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/message/response/ListRightsResponseTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/message/response/FlagsResponseTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/message/response/NamespaceResponseTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/message/response/ACLResponseTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/message/response/QuotaResponseTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/message/response/MyRightsResponseTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/message/response/QuotaRootResponseTest.java
  AL    protocols/imap/src/test/java/org/apache/james/imap/message/response/SearchResponseTest.java
  AL    protocols/imap/src/test/java/org/apache/james/mailbox/MessageSequenceNumberTest.java
  AL    protocols/imap/src/test/java/org/apache/james/mailbox/NullableMessageSequenceNumberTest.java
  AL    protocols/imap/pom.xml
 !????? server/README.crypto
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/HeadersDto.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/MailReferenceDTO.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueue.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/MailReferenceSerializer.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/MailQueueName.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/EnqueuedItem.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueManagement.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/EnqueueId.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/MailWithEnqueueId.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueDeadLetterQueueHealthCheck.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueConsumerHealthCheck.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/MailLoader.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Enqueuer.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/MailReference.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/RabbitMQMailQueueConfiguration.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/api/FakeMailQueueView.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/api/DeleteCondition.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/api/MailQueueView.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/EnqueuedMailsDAO.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueViewStartUpCheck.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/ConfigurationAggregate.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/CassandraMailQueueViewConfiguration.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/RegisterConfigurationCommandHandler.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/ConfigurationChanged.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/EventsourcingConfigurationManagement.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/RegisterConfigurationCommand.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/CassandraMailQueueViewConfigurationModule.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/ConfigurationChangedDTO.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/model/BucketedSlices.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/model/EnqueuedItemWithSlicingContext.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/BrowseStartDAO.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/MailQueueViewBlobReferenceSource.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueBrowser.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/DeletedMailsDAO.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueViewModule.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/EnqueuedMailsDaoUtil.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/BrowseStartHealthCheck.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueMailStore.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueMailDelete.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueView.java
  AL    server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/ContentStartDAO.java
  B     server/queue/queue-rabbitmq/src/test/resources/json/mail1-legacy.json
  B     server/queue/queue-rabbitmq/src/test/resources/json/mail1.json
  B     server/queue/queue-rabbitmq/src/test/resources/json/mailqueueview/configuration/configuration_changed.json
  B     server/queue/queue-rabbitmq/src/test/resources/json/mail_min.json
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/MailDTOTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/MailLoaderTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueDeadLetterQueueHealthCheckTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/EnqueuedItemTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMqMailQueueFactoryTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/MailQueueNameTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueConfigurationChangeTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/api/DeleteConditionTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/RabbitMQMailQueueConfigurationTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/ContentStartDAOTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/EnqueuedMailsDaoTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/BrowseStartHealthCheckTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/RegisterConfigurationCommandTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/ConfigurationChangedDTOTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/EventsourcingConfigurationManagementTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/DTOTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/CassandraMailQueueViewConfigurationTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/model/BucketedSlicesTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/model/EnqueuedItemWithSlicingContextTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/model/EnqueueIdTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/EnqueuedMailsDaoUtilTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/CassandraMailQueueViewTestFactory.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/BrowseStartDAOTest.java
  AL    server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/DeletedMailsDAOTest.java
  AL    server/queue/queue-rabbitmq/pom.xml
  AL    server/queue/queue-pulsar/src/main/scala/org/apache/james/queue/pulsar/Filter.scala
  AL    server/queue/queue-pulsar/src/main/scala/org/apache/james/queue/pulsar/Header.scala
  AL    server/queue/queue-pulsar/src/main/scala/org/apache/james/queue/pulsar/PulsarMailQueue.scala
  AL    server/queue/queue-pulsar/src/main/scala/org/apache/james/queue/pulsar/FilterStage.scala
  AL    server/queue/queue-pulsar/src/main/scala/org/apache/james/queue/pulsar/PulsarMailQueueFactory.scala
  AL    server/queue/queue-pulsar/src/main/scala/org/apache/james/queue/pulsar/PulsarMailQueueConfiguration.scala
  AL    server/queue/queue-pulsar/src/main/scala/org/apache/james/queue/pulsar/MailMetadata.scala
  AL    server/queue/queue-pulsar/src/main/scala/org/apache/james/queue/pulsar/EnqueueId.scala
  AL    server/queue/queue-pulsar/src/test/scala/org/apache/james/queue/pulsar/JavaClient.scala
  AL    server/queue/queue-pulsar/src/test/java/org/apache/james/queue/pulsar/PulsarMailQueueTest.java
  AL    server/queue/queue-pulsar/src/test/java/org/apache/james/queue/pulsar/PulsarMailQueueFactoryTest.java
  AL    server/queue/queue-pulsar/pom.xml
  AL    server/queue/queue-activemq/src/main/resources/META-INF/spring/activemq-queue-context.xml
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/EmbeddedActiveMQ.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/FileSystemBlobStrategy.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQConfiguration.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/FileSystemBlobTransferPolicy.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQSupport.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/MimeMessageBlobMessageSource.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQHealthCheck.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/metric/ActiveMQMetricCollector.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/metric/ActiveMQMetricCollectorImpl.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/metric/ActiveMQMetricCollectorNoop.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/metric/ActiveMQMetricConfiguration.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/metric/ActiveMQMetrics.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueFactory.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueItem.java
  AL    server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQCacheableMailQueue.java
  AL    server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java
  AL    server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
  AL    server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueFactoryTest.java
  AL    server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQHealthCheckTest.java
  AL    server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/metric/ActiveMQMetricConfigurationTest.java
  AL    server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/metric/ActiveMQMetricCollectorTest.java
  AL    server/queue/queue-activemq/src/reporting-site/site.xml
  AL    server/queue/queue-activemq/pom.xml
  AL    server/queue/queue-api/src/main/java/org/apache/james/queue/api/RawMailQueueItem.java
  AL    server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueManagementMBean.java
  AL    server/queue/queue-api/src/main/java/org/apache/james/queue/api/ManageableMailQueue.java
  AL    server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueName.java
  AL    server/queue/queue-api/src/main/java/org/apache/james/queue/api/RawMailQueueItemDecoratorFactory.java
  AL    server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueItemDecoratorFactory.java
  AL    server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueue.java
  AL    server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueFactory.java
  AL    server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailPrioritySupport.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/ManageableMailQueueContract.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/DelayedMailQueueContract.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/Mails.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueFactoryContract.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/ManageableMailQueueFactoryContract.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueContract.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/DelayedPriorityMailQueueContract.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/DelayedManageableMailQueueContract.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/PriorityMailQueueContract.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueFactoryTest.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueMetricExtension.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueNameTest.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/PriorityManageableMailQueueContract.java
  AL    server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueMetricContract.java
  AL    server/queue/queue-api/src/reporting-site/site.xml
  AL    server/queue/queue-api/pom.xml
  AL    server/queue/queue-jms/src/main/java/org/apache/james/queue/library/MailQueueManagement.java
  AL    server/queue/queue-jms/src/main/java/org/apache/james/queue/library/AbstractMailQueueFactory.java
  AL    server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueueItem.java
  AL    server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/MimeMessageObjectMessageSource.java
  AL    server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueueFactory.java
  AL    server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSSupport.java
  AL    server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSCacheableMailQueue.java
  AL    server/queue/queue-jms/src/test/java/org/apache/james/queue/library/AbstractMailQueueFactoryTest.java
  AL    server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/BrokerExtension.java
  AL    server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/JMSCacheableMailQueueFactoryTest.java
  AL    server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/JMSCacheableMailQueueTest.java
  AL    server/queue/queue-jms/src/reporting-site/site.xml
  AL    server/queue/queue-jms/pom.xml
  AL    server/queue/queue-memory/src/main/java/org/apache/james/queue/memory/MemoryMailQueueFactory.java
  AL    server/queue/queue-memory/src/test/java/org/apache/james/queue/memory/MemoryCacheableMailQueueTest.java
  AL    server/queue/queue-memory/src/test/java/org/apache/james/queue/memory/MemoryCacheableMailQueueFactoryTest.java
 !????? server/queue/queue-memory/pom.xml
  A     server/apps/memory-app/extensions-jars/apache-mailet-crypto-3.8.1-SNAPSHOT-jar-with-dependencies.jar
  AL    server/apps/memory-app/docker-configuration/webadmin.properties
 !????? server/apps/memory-app/src/main/extensions-jars/README.md
  AL    server/apps/memory-app/src/main/java/org/apache/james/MemoryJamesServerMain.java
  AL    server/apps/memory-app/src/main/java/org/apache/james/MemoryJamesConfiguration.java
  B     server/apps/memory-app/src/main/glowroot/admin.json
  B     server/apps/memory-app/src/main/glowroot/plugins/smtp.json
  B     server/apps/memory-app/src/main/glowroot/plugins/task.json
  B     server/apps/memory-app/src/main/glowroot/plugins/mailboxListener.json
  B     server/apps/memory-app/src/main/glowroot/plugins/pop3.json
  B     server/apps/memory-app/src/main/glowroot/plugins/spooler.json
  B     server/apps/memory-app/src/main/glowroot/plugins/jmap.json
  B     server/apps/memory-app/src/main/glowroot/plugins/imap.json
 !????? server/apps/memory-app/src/main/scripts/james-cli
  AL    server/apps/memory-app/src/test/resources/smtpserver2.xml
  AL    server/apps/memory-app/src/test/resources/listeners.xml
 !????? server/apps/memory-app/src/test/resources/jwt_publickey
  AL    server/apps/memory-app/src/test/resources/dnsservice.xml
  AL    server/apps/memory-app/src/test/resources/lmtpserver.xml
  AL    server/apps/memory-app/src/test/resources/mailetcontainer.xml
  AL    server/apps/memory-app/src/test/resources/imapserver.xml
  AL    server/apps/memory-app/src/test/resources/managesieveserver.xml
  AL    server/apps/memory-app/src/test/resources/domainlist.xml
  AL    server/apps/memory-app/src/test/resources/mailrepositorystore.xml
  AL    server/apps/memory-app/src/test/resources/usersrepository.xml
  B     server/apps/memory-app/src/test/resources/keystore2
  B     server/apps/memory-app/src/test/resources/keystore
  B     server/apps/memory-app/src/test/resources/badAliasKeystore
  AL    server/apps/memory-app/src/test/resources/imapserver2.xml
  AL    server/apps/memory-app/src/test/resources/smtpserver.xml
  AL    server/apps/memory-app/src/test/resources/pop3server.xml
  AL    server/apps/memory-app/src/test/java/org/apache/james/MemoryJamesServerTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/ErrorMailet.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/WebAdminRoutesExtensionTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/MyRoute.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/HealthCheckExtensionTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/MyStartable.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/GuiceJamesServerTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/StartSequenceTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/UserStartableExtensionTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/DefaultMemoryJamesServerTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/GuiceJamesServerStartUpCheckTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/DisabledSpoolerTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/MemoryLdapLocalPartLoginIntegrationTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/MemoryJmapJamesServerTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/GuiceLifecycleHeathCheckTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/DisabledGroupExecutionTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/DomainAutodetectionTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/MemoryJmapTestRule.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/IMAPIntegrationTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/MyHealthCheck.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/CertificateReloadTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/RCPTCaseSensitivityTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/LmtpIntegrationTest.java
  AL    server/apps/memory-app/src/test/java/org/apache/james/LinshareBlobExportMechanismProvidingTest.java
  AL    server/apps/memory-app/src/assemble/app.xml
  MIT   server/apps/memory-app/src/assemble/license-for-binary.txt
 !????? server/apps/memory-app/src/assemble/README.adoc
 !????? server/apps/memory-app/src/assemble/extensions-jars.txt
  AL    server/apps/memory-app/pom.xml
 !????? server/apps/memory-app/README.md
  AL    server/apps/memory-app/sample-configuration/webadmin.properties
  AL    server/apps/memory-app/sample-configuration/listeners.xml
 !????? server/apps/memory-app/sample-configuration/extensions.properties
  AL    server/apps/memory-app/sample-configuration/dnsservice.xml
 !????? server/apps/memory-app/sample-configuration/deletedMessageVault.properties
  AL    server/apps/memory-app/sample-configuration/mailetcontainer.xml
  AL    server/apps/memory-app/sample-configuration/imapserver.xml
  AL    server/apps/memory-app/sample-configuration/managesieveserver.xml
  AL    server/apps/memory-app/sample-configuration/domainlist.xml
  AL    server/apps/memory-app/sample-configuration/mailrepositorystore.xml
 !????? server/apps/memory-app/sample-configuration/jvm.properties
  AL    server/apps/memory-app/sample-configuration/usersrepository.xml
  AL    server/apps/memory-app/sample-configuration/recipientrewritetable.xml
  B     server/apps/memory-app/sample-configuration/keystore
  AL    server/apps/memory-app/sample-configuration/logback.xml
 !????? server/apps/memory-app/sample-configuration/jmap.properties
  AL    server/apps/memory-app/sample-configuration/jmx.properties
  AL    server/apps/memory-app/sample-configuration/smtpserver.xml
  AL    server/apps/memory-app/sample-configuration/pop3server.xml
  AL    server/apps/memory-app/sample-configuration/healthcheck.properties
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/WebAdminHTTPClientUtil.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/WebAdminCli.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/domain/DomainDeleteCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/domain/DomainCreateCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/domain/DomainCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/domain/DomainListCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/domain/AddDomainAliasCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/domain/DomainExistCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/domain/ListDomainAliasCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/domain/RemoveDomainAliasCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/quota/GlobalQuotaCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/quota/SetGlobalQuotaCountCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/quota/GlobalQuotaCountCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/quota/DeleteGlobalQuotaCountCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/quota/DeleteGlobalQuotaSizeCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/quota/GetGlobalQuotaSizeCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/quota/QuotaCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/quota/SetGlobalQuotaSizeCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/quota/GetGlobalQuotaCountCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/quota/GlobalQuotaSizeCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/user/UserExistCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/user/UserCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/user/UserCreateCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/user/UserDeleteCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/user/UserListCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/mailbox/MailboxDeleteCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/mailbox/MailboxListCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/mailbox/MailboxCreateCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/mailbox/MailboxCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/mailbox/MailboxDeleteAllCommand.java
  AL    server/apps/webadmin-cli/src/main/java/org/apache/james/cli/mailbox/MailboxExistCommand.java
  AL    server/apps/webadmin-cli/src/test/resources/webadmin.properties
  AL    server/apps/webadmin-cli/src/test/resources/listeners.xml
 !????? server/apps/webadmin-cli/src/test/resources/jwt_publickey
  AL    server/apps/webadmin-cli/src/test/resources/dnsservice.xml
  AL    server/apps/webadmin-cli/src/test/resources/lmtpserver.xml
  AL    server/apps/webadmin-cli/src/test/resources/mailetcontainer.xml
  AL    server/apps/webadmin-cli/src/test/resources/imapserver.xml
  AL    server/apps/webadmin-cli/src/test/resources/managesieveserver.xml
 !????? server/apps/webadmin-cli/src/test/resources/valid_token_admin_false.jwt
  AL    server/apps/webadmin-cli/src/test/resources/domainlist.xml
  AL    server/apps/webadmin-cli/src/test/resources/mailrepositorystore.xml
  AL    server/apps/webadmin-cli/src/test/resources/usersrepository.xml
 !????? server/apps/webadmin-cli/src/test/resources/valid_token_admin_true.jwt
  B     server/apps/webadmin-cli/src/test/resources/keystore
  AL    server/apps/webadmin-cli/src/test/resources/smtpserver.xml
  AL    server/apps/webadmin-cli/src/test/resources/pop3server.xml
  AL    server/apps/webadmin-cli/src/test/java/org/apache/james/cli/JwtOptionTest.java
  AL    server/apps/webadmin-cli/src/test/java/org/apache/james/cli/MailboxManageTest.java
  AL    server/apps/webadmin-cli/src/test/java/org/apache/james/cli/HelpVersionCommandTest.java
  AL    server/apps/webadmin-cli/src/test/java/org/apache/james/cli/DomainManageTest.java
  AL    server/apps/webadmin-cli/src/test/java/org/apache/james/cli/UserManageTest.java
  AL    server/apps/webadmin-cli/src/test/java/org/apache/james/cli/QuotaManageTest.java
  AL    server/apps/webadmin-cli/pom.xml
 !????? server/apps/webadmin-cli/README.md
 !????? server/apps/webadmin-cli/james-cli
 !????? server/apps/scaling-pulsar-smtp/docker-compose.yml
 !????? server/apps/scaling-pulsar-smtp/README.adoc
  AL    server/apps/scaling-pulsar-smtp/src/main/resources/META-INF/persistence.xml
  AL    server/apps/scaling-pulsar-smtp/src/main/java/org/apache/james/Main.java
  AL    server/apps/scaling-pulsar-smtp/src/main/java/org/apache/james/SMTPRelayConfiguration.java
  AL    server/apps/scaling-pulsar-smtp/src/main/java/org/apache/james/MailStoreRepositoryModule.java
 !????? server/apps/scaling-pulsar-smtp/src/main/scripts/james-cli
  AL    server/apps/scaling-pulsar-smtp/src/test/resources/listeners.xml
  AL    server/apps/scaling-pulsar-smtp/src/test/resources/dnsservice.xml
  AL    server/apps/scaling-pulsar-smtp/src/test/resources/mailetcontainer.xml
  AL    server/apps/scaling-pulsar-smtp/src/test/resources/domainlist.xml
  AL    server/apps/scaling-pulsar-smtp/src/test/resources/backmailrepositorystore.xml
  B     server/apps/scaling-pulsar-smtp/src/test/resources/keystore
  AL    server/apps/scaling-pulsar-smtp/src/test/resources/smtpserver.xml
  AL    server/apps/scaling-pulsar-smtp/src/test/resources/fakemailrepositorystore.xml
  AL    server/apps/scaling-pulsar-smtp/src/test/java/org/apache/james/PulsarExtension.java
  AL    server/apps/scaling-pulsar-smtp/src/test/java/org/apache/james/SMTPJamesServerTest.java
  AL    server/apps/scaling-pulsar-smtp/src/test/java/org/apache/james/AwsS3BlobStoreExtension.java
  AL    server/apps/scaling-pulsar-smtp/src/test/java/org/apache/james/PostgresExtension.java
  AL    server/apps/scaling-pulsar-smtp/src/test/java/org/apache/james/TestingSmtpRelayJamesServerBuilder.java
  AL    server/apps/scaling-pulsar-smtp/pom.xml
  AL    server/apps/scaling-pulsar-smtp/sample-configuration/webadmin.properties
 !????? server/apps/scaling-pulsar-smtp/sample-configuration/extensions.properties
  AL    server/apps/scaling-pulsar-smtp/sample-configuration/dnsservice.xml
  AL    server/apps/scaling-pulsar-smtp/sample-configuration/mailetcontainer.xml
 !????? server/apps/scaling-pulsar-smtp/sample-configuration/pulsar.properties
 !????? server/apps/scaling-pulsar-smtp/sample-configuration/scriptFile.scala
  AL    server/apps/scaling-pulsar-smtp/sample-configuration/domainlist.xml
  AL    server/apps/scaling-pulsar-smtp/sample-configuration/mailrepositorystore.xml
 !????? server/apps/scaling-pulsar-smtp/sample-configuration/jvm.properties
  AL    server/apps/scaling-pulsar-smtp/sample-configuration/usersrepository.xml
  AL    server/apps/scaling-pulsar-smtp/sample-configuration/recipientrewritetable.xml
  B     server/apps/scaling-pulsar-smtp/sample-configuration/keystore
 !????? server/apps/scaling-pulsar-smtp/sample-configuration/logback.xml
  AL    server/apps/scaling-pulsar-smtp/sample-configuration/james-database.properties
  AL    server/apps/scaling-pulsar-smtp/sample-configuration/jmx.properties
  AL    server/apps/scaling-pulsar-smtp/sample-configuration/smtpserver.xml
 !????? server/apps/scaling-pulsar-smtp/sample-configuration/blob.properties
  AL    server/apps/scaling-pulsar-smtp/sample-configuration/healthcheck.properties
 !????? server/apps/spring-app/README.crypto
  AL    server/apps/spring-app/src/main/resources/META-INF/persistence-template.xml
  AL    server/apps/spring-app/src/main/resources/META-INF/persistence.xml
  AL    server/apps/spring-app/src/main/resources/META-INF/jpa-mappings-template.xml
  AL    server/apps/spring-app/src/main/resources/dnsservice.xml
  AL    server/apps/spring-app/src/main/resources/lmtpserver.xml
  AL    server/apps/spring-app/src/main/resources/mailetcontainer.xml
  AL    server/apps/spring-app/src/main/resources/sieverepository.xml
  AL    server/apps/spring-app/src/main/resources/quota.xml
  AL    server/apps/spring-app/src/main/resources/sqlResources.xml
  AL    server/apps/spring-app/src/main/resources/imapserver.xml
  AL    server/apps/spring-app/src/main/resources/managesieveserver.xml
  AL    server/apps/spring-app/src/main/resources/indexer.xml
  AL    server/apps/spring-app/src/main/resources/domainlist.xml
  AL    server/apps/spring-app/src/main/resources/mailrepositorystore.xml
  AL    server/apps/spring-app/src/main/resources/mailbox.xml
 !????? server/apps/spring-app/src/main/resources/log4j2.xml
  AL    server/apps/spring-app/src/main/resources/fetchmail.xml
  AL    server/apps/spring-app/src/main/resources/usersrepository.xml
  AL    server/apps/spring-app/src/main/resources/recipientrewritetable.xml
 !????? server/apps/spring-app/src/main/resources/jmxremote.access
  AL    server/apps/spring-app/src/main/resources/setenv.sh
  AL    server/apps/spring-app/src/main/resources/james-database.properties
  AL    server/apps/spring-app/src/main/resources/jetm-monitoring.xml
  AL    server/apps/spring-app/src/main/resources/jmx.properties
  AL    server/apps/spring-app/src/main/resources/smtpserver.xml
  AL    server/apps/spring-app/src/main/resources/pop3server.xml
 !????? server/apps/spring-app/src/main/resources/jmxremote.password
  N     server/apps/spring-app/src/main/resources/lib/README.txt
  N     server/apps/spring-app/src/main/app/sieve/README.txt
  AL    server/apps/spring-app/src/main/app/bin/setenv.bat
  AL    server/apps/spring-app/src/main/app/bin/setenv.sh
  AL    server/apps/spring-app/src/main/appended-resources/supplemental-models.xml
  AL    server/apps/spring-app/src/main/java/org/apache/james/app/spring/JamesAppSpringMain.java
  AL    server/apps/spring-app/src/main/webapp/WEB-INF/web.xml
 !????? server/apps/spring-app/src/main/licensing/app/notice-for-binary.txt
  MIT   server/apps/spring-app/src/main/licensing/app/license-for-binary.txt
  AL    server/apps/spring-app/src/main/licensing/app/licensing.xml
  N     server/apps/spring-app/src/main/licensing/war/NOTICE
  AL    server/apps/spring-app/src/main/licensing/war/licensing.xml
  N     server/apps/spring-app/src/main/licensing/war/LICENSE
  AL    server/apps/spring-app/src/test/resources/quota.xml
  AL    server/apps/spring-app/src/test/resources/imapserver.xml
  AL    server/apps/spring-app/src/test/resources/managesieveserver.xml
  AL    server/apps/spring-app/src/test/resources/smtpserver.xml
  AL    server/apps/spring-app/src/test/resources/pop3server.xml
  AL    server/apps/spring-app/src/test/java/org/apache/james/app/spring/JamesAppSpringMainTest.java
  AL    server/apps/spring-app/src/test/java/org/apache/james/app/spring/JamesSpringContextTest.java
  AL    server/apps/spring-app/src/assemble/app.xml
  AL    server/apps/spring-app/src/reporting-site/site.xml
  N     server/apps/spring-app/src/debian/control/copyright
 !????? server/apps/spring-app/src/debian/control/control
  AL    server/apps/spring-app/pom.xml
  N     server/apps/spring-app/NOTICE
  N     server/apps/spring-app/LICENSE
  AL    server/apps/distributed-pop3-app/docker-configuration/webadmin.properties
 !????? server/apps/distributed-pop3-app/docker-configuration/jvm.properties
 !????? server/apps/distributed-pop3-app/docker-compose.yml
 !????? server/apps/distributed-pop3-app/README.adoc
 !????? server/apps/distributed-pop3-app/src/main/extensions-jars/README.md
  AL    server/apps/distributed-pop3-app/src/main/java/org/apache/james/modules/Pop3FixInconsistenciesTaskSerializationModule.java
  AL    server/apps/distributed-pop3-app/src/main/java/org/apache/james/modules/DistributedPop3Module.java
  AL    server/apps/distributed-pop3-app/src/main/java/org/apache/james/modules/Pop3FixInconsistenciesWebAdminModule.java
  AL    server/apps/distributed-pop3-app/src/main/java/org/apache/james/DistributedPOP3JamesConfiguration.java
  AL    server/apps/distributed-pop3-app/src/main/java/org/apache/james/mailbox/RandomUidProvider.java
  AL    server/apps/distributed-pop3-app/src/main/java/org/apache/james/mailbox/NoACLMapper.java
  AL    server/apps/distributed-pop3-app/src/main/java/org/apache/james/mailbox/RandomModSeqProvider.java
  AL    server/apps/distributed-pop3-app/src/main/java/org/apache/james/DistributedPOP3JamesServerMain.java
  B     server/apps/distributed-pop3-app/src/main/glowroot/admin.json
  B     server/apps/distributed-pop3-app/src/main/glowroot/plugins/blobstore.json
  B     server/apps/distributed-pop3-app/src/main/glowroot/plugins/smtp.json
  B     server/apps/distributed-pop3-app/src/main/glowroot/plugins/task.json
  B     server/apps/distributed-pop3-app/src/main/glowroot/plugins/mailboxListener.json
  B     server/apps/distributed-pop3-app/src/main/glowroot/plugins/pop3.json
  B     server/apps/distributed-pop3-app/src/main/glowroot/plugins/spooler.json
 !????? server/apps/distributed-pop3-app/src/main/scripts/james-cli
 !????? server/apps/distributed-pop3-app/src/test/resources/attachment.eml
  AL    server/apps/distributed-pop3-app/src/test/resources/listeners.xml
  AL    server/apps/distributed-pop3-app/src/test/resources/dnsservice.xml
  AL    server/apps/distributed-pop3-app/src/test/resources/lmtpserver.xml
  AL    server/apps/distributed-pop3-app/src/test/resources/mailetcontainer.xml
 !????? server/apps/distributed-pop3-app/src/test/resources/big.eml
  AL    server/apps/distributed-pop3-app/src/test/resources/domainlist.xml
  AL    server/apps/distributed-pop3-app/src/test/resources/mailrepositorystore.xml
  B     server/apps/distributed-pop3-app/src/test/resources/keystore
 !????? server/apps/distributed-pop3-app/src/test/resources/batchsizes.properties
  AL    server/apps/distributed-pop3-app/src/test/resources/smtpserver.xml
  AL    server/apps/distributed-pop3-app/src/test/resources/pop3server.xml
 !????? server/apps/distributed-pop3-app/src/test/resources/rabbitmq.properties
  AL    server/apps/distributed-pop3-app/src/test/java/org/apache/james/Pop3ServerContract.java
  AL    server/apps/distributed-pop3-app/src/test/java/org/apache/james/DistributedPOP3ServerTest.java
  AL    server/apps/distributed-pop3-app/pom.xml
  AL    server/apps/distributed-pop3-app/sample-configuration/webadmin.properties
  AL    server/apps/distributed-pop3-app/sample-configuration/listeners.xml
 !????? server/apps/distributed-pop3-app/sample-configuration/extensions.properties
  AL    server/apps/distributed-pop3-app/sample-configuration/dnsservice.xml
 !????? server/apps/distributed-pop3-app/sample-configuration/deletedMessageVault.properties
  AL    server/apps/distributed-pop3-app/sample-configuration/lmtpserver.xml
  AL    server/apps/distributed-pop3-app/sample-configuration/mailetcontainer.xml
  AL    server/apps/distributed-pop3-app/sample-configuration/opensearch.properties
  AL    server/apps/distributed-pop3-app/sample-configuration/domainlist.xml
  AL    server/apps/distributed-pop3-app/sample-configuration/mailrepositorystore.xml
 !????? server/apps/distributed-pop3-app/sample-configuration/jvm.properties
  AL    server/apps/distributed-pop3-app/sample-configuration/usersrepository.xml
  AL    server/apps/distributed-pop3-app/sample-configuration/recipientrewritetable.xml
 !????? server/apps/distributed-pop3-app/sample-configuration/logback.xml
  AL    server/apps/distributed-pop3-app/sample-configuration/tika.properties
 !????? server/apps/distributed-pop3-app/sample-configuration/cassandra-driver.conf
 !????? server/apps/distributed-pop3-app/sample-configuration/batchsizes.properties
  AL    server/apps/distributed-pop3-app/sample-configuration/jmx.properties
  AL    server/apps/distributed-pop3-app/sample-configuration/smtpserver.xml
  AL    server/apps/distributed-pop3-app/sample-configuration/pop3server.xml
 !????? server/apps/distributed-pop3-app/sample-configuration/blob.properties
 !????? server/apps/distributed-pop3-app/sample-configuration/cassandra.properties
  AL    server/apps/distributed-pop3-app/sample-configuration/healthcheck.properties
 !????? server/apps/distributed-pop3-app/sample-configuration/rabbitmq.properties
  AL    server/apps/jpa-smtp-app/docker-configuration/webadmin.properties
 !????? server/apps/jpa-smtp-app/docker-compose.yml
 !????? server/apps/jpa-smtp-app/README.adoc
 !????? server/apps/jpa-smtp-app/src/main/extensions-jars/README.md
  AL    server/apps/jpa-smtp-app/src/main/resources/META-INF/persistence.xml
  AL    server/apps/jpa-smtp-app/src/main/resources/defaultMailetContainer.xml
  AL    server/apps/jpa-smtp-app/src/main/java/org/apache/james/JPAJamesConfiguration.java
  AL    server/apps/jpa-smtp-app/src/main/java/org/apache/james/JPAJamesServerMain.java
  B     server/apps/jpa-smtp-app/src/main/glowroot/admin.json
  B     server/apps/jpa-smtp-app/src/main/glowroot/plugins/smtp.json
  B     server/apps/jpa-smtp-app/src/main/glowroot/plugins/task.json
  B     server/apps/jpa-smtp-app/src/main/glowroot/plugins/mailboxListener.json
  B     server/apps/jpa-smtp-app/src/main/glowroot/plugins/pop3.json
  B     server/apps/jpa-smtp-app/src/main/glowroot/plugins/spooler.json
  B     server/apps/jpa-smtp-app/src/main/glowroot/plugins/jmap.json
  B     server/apps/jpa-smtp-app/src/main/glowroot/plugins/imap.json
 !????? server/apps/jpa-smtp-app/src/main/scripts/james-cli
  AL    server/apps/jpa-smtp-app/src/test/resources/dnsservice.xml
  AL    server/apps/jpa-smtp-app/src/test/resources/mailetcontainer.xml
  AL    server/apps/jpa-smtp-app/src/test/resources/managesieveserver.xml
  AL    server/apps/jpa-smtp-app/src/test/resources/domainlist.xml
  AL    server/apps/jpa-smtp-app/src/test/resources/mailrepositorystore.xml
  B     server/apps/jpa-smtp-app/src/test/resources/keystore
  AL    server/apps/jpa-smtp-app/src/test/resources/smtpserver.xml
  AL    server/apps/jpa-smtp-app/src/test/resources/fakemailrepositorystore.xml
  AL    server/apps/jpa-smtp-app/src/test/java/org/apache/james/JPAJamesServerTest.java
  AL    server/apps/jpa-smtp-app/src/test/java/org/apache/james/mariadb/JPAMariaDBJamesServerTest.java
  AL    server/apps/jpa-smtp-app/src/test/java/org/apache/james/mariadb/TestJPAMariaDBConfigurationModule.java
  AL    server/apps/jpa-smtp-app/src/assemble/app.xml
  MIT   server/apps/jpa-smtp-app/src/assemble/license-for-binary.txt
 !????? server/apps/jpa-smtp-app/src/assemble/extensions-jars.txt
  AL    server/apps/jpa-smtp-app/pom.xml
  AL    server/apps/jpa-smtp-app/conf/webadmin.properties
 !????? server/apps/jpa-smtp-app/conf/extensions.properties
  AL    server/apps/jpa-smtp-app/conf/james-database-mariadb.properties
  AL    server/apps/jpa-smtp-app/conf/dnsservice.xml
  AL    server/apps/jpa-smtp-app/conf/mailetcontainer.xml
  AL    server/apps/jpa-smtp-app/conf/domainlist.xml
  AL    server/apps/jpa-smtp-app/conf/mailrepositorystore.xml
 !????? server/apps/jpa-smtp-app/conf/jvm.properties
  AL    server/apps/jpa-smtp-app/conf/usersrepository.xml
  AL    server/apps/jpa-smtp-app/conf/recipientrewritetable.xml
  B     server/apps/jpa-smtp-app/conf/keystore
 !????? server/apps/jpa-smtp-app/conf/logback.xml
  AL    server/apps/jpa-smtp-app/conf/james-database.properties
  AL    server/apps/jpa-smtp-app/conf/jmx.properties
  AL    server/apps/jpa-smtp-app/conf/smtpserver.xml
  AL    server/apps/jpa-smtp-app/conf/healthcheck.properties
  AL    server/apps/jpa-smtp-app/sample-configuration/webadmin.properties
 !????? server/apps/jpa-smtp-app/sample-configuration/extensions.properties
  AL    server/apps/jpa-smtp-app/sample-configuration/james-database-mariadb.properties
  AL    server/apps/jpa-smtp-app/sample-configuration/dnsservice.xml
  AL    server/apps/jpa-smtp-app/sample-configuration/mailetcontainer.xml
  AL    server/apps/jpa-smtp-app/sample-configuration/domainlist.xml
  AL    server/apps/jpa-smtp-app/sample-configuration/mailrepositorystore.xml
 !????? server/apps/jpa-smtp-app/sample-configuration/jvm.properties
  AL    server/apps/jpa-smtp-app/sample-configuration/usersrepository.xml
  AL    server/apps/jpa-smtp-app/sample-configuration/recipientrewritetable.xml
 !????? server/apps/jpa-smtp-app/sample-configuration/logback.xml
  AL    server/apps/jpa-smtp-app/sample-configuration/james-database.properties
  AL    server/apps/jpa-smtp-app/sample-configuration/jmx.properties
  AL    server/apps/jpa-smtp-app/sample-configuration/smtpserver.xml
  AL    server/apps/jpa-smtp-app/sample-configuration/healthcheck.properties
 !????? server/apps/conf/jmxremote.access
 !????? server/apps/conf/jmxremote.password
 !????? server/apps/demo/initialdata.sh
 !????? server/apps/demo/Dockerfile
  AL    server/apps/demo/imapserver.xml
 !????? server/apps/demo/startup.sh
  AL    server/apps/demo/smtpserver.xml
  AL    server/apps/demo/pop3server.xml
 !????? server/apps/cli/README.adoc
  AL    server/apps/cli/src/main/java/org/apache/james/cli/ServerCmd.java
  AL    server/apps/cli/src/main/java/org/apache/james/cli/type/CmdType.java
  AL    server/apps/cli/src/main/java/org/apache/james/cli/exceptions/MissingCommandException.java
  AL    server/apps/cli/src/main/java/org/apache/james/cli/exceptions/InvalidArgumentNumberException.java
  AL    server/apps/cli/src/main/java/org/apache/james/cli/exceptions/UnrecognizedCommandException.java
  AL    server/apps/cli/src/main/java/org/apache/james/cli/exceptions/JamesCliException.java
  AL    server/apps/cli/src/main/java/org/apache/james/cli/probe/impl/JmxConnection.java
  AL    server/apps/cli/src/main/java/org/apache/james/cli/probe/impl/JmxSieveProbe.java
  AL    server/apps/cli/src/main/java/org/apache/james/cli/probe/impl/JmxMailboxProbe.java
  AL    server/apps/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
  AL    server/apps/cli/src/main/java/org/apache/james/cli/probe/impl/JmxQuotaProbe.java
  AL    server/apps/cli/src/main/java/org/apache/james/cli/probe/impl/JmxProbe.java
  AL    server/apps/cli/src/test/java/org/apache/james/cli/type/CmdTypeTest.java
  AL    server/apps/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
  AL    server/apps/cli/src/assemble/app.xml
  MIT   server/apps/cli/src/assemble/license-for-binary.txt
  AL    server/apps/cli/src/reporting-site/site.xml
  AL    server/apps/cli/pom.xml
  AL    server/apps/distributed-app/docker-configuration/webadmin.properties
 !????? server/apps/distributed-app/docker-configuration/jvm.properties
 !????? server/apps/distributed-app/docker-compose.yml
 !????? server/apps/distributed-app/helm-chart/james/templates/secrets.yaml
 !????? server/apps/distributed-app/helm-chart/james/templates/servicemonitor.yaml
 !????? server/apps/distributed-app/helm-chart/james/templates/james-admin-ingress.yaml
 !????? server/apps/distributed-app/helm-chart/james/templates/_docker-secrets.tpl
 !????? server/apps/distributed-app/helm-chart/james/templates/_helpers.tpl
 !????? server/apps/distributed-app/helm-chart/james/templates/jmap-ingress.yaml
 !????? server/apps/distributed-app/helm-chart/james/templates/deployment.yaml
 !????? server/apps/distributed-app/helm-chart/james/templates/service.yaml
 !????? server/apps/distributed-app/helm-chart/james/templates/_urls.tpl
 !????? server/apps/distributed-app/helm-chart/james/templates/configmaps.yaml
 !????? server/apps/distributed-app/helm-chart/james/secrets.sample.yaml
 !????? server/apps/distributed-app/helm-chart/james/Chart.yaml
 !????? server/apps/distributed-app/helm-chart/james/values.yaml
  B     server/apps/distributed-app/helm-chart/james/values.schema.json
 !????? server/apps/distributed-app/helm-chart/james/configs/webadmin.properties
  AL    server/apps/distributed-app/helm-chart/james/configs/listeners.xml
  AL    server/apps/distributed-app/helm-chart/james/configs/dnsservice.xml
  AL    server/apps/distributed-app/helm-chart/james/configs/imapserver.xml
  AL    server/apps/distributed-app/helm-chart/james/configs/opensearch.properties
  AL    server/apps/distributed-app/helm-chart/james/configs/domainlist.xml
  AL    server/apps/distributed-app/helm-chart/james/configs/mailrepositorystore.xml
  AL    server/apps/distributed-app/helm-chart/james/configs/usersrepository.xml
  AL    server/apps/distributed-app/helm-chart/james/configs/recipientrewritetable.xml
 !????? server/apps/distributed-app/helm-chart/james/configs/logback.xml
 !????? server/apps/distributed-app/helm-chart/james/configs/jmap.properties
 !????? server/apps/distributed-app/helm-chart/james/configs/batchsizes.properties
  AL    server/apps/distributed-app/helm-chart/james/configs/jmx.properties
  AL    server/apps/distributed-app/helm-chart/james/configs/smtpserver.xml
 !????? server/apps/distributed-app/helm-chart/james/configs/blob.properties
 !????? server/apps/distributed-app/helm-chart/james/configs/cassandra.properties
 !????? server/apps/distributed-app/helm-chart/james/configs/rabbitmq.properties
 !????? server/apps/distributed-app/helm-chart/README.md
 !????? server/apps/distributed-app/docker-compose-with-pulsar.yml
 !????? server/apps/distributed-app/README.adoc
 !????? server/apps/distributed-app/src/main/extensions-jars/README.md
  AL    server/apps/distributed-app/src/main/java/org/apache/james/CassandraRabbitMQJamesConfiguration.java
  AL    server/apps/distributed-app/src/main/java/org/apache/james/MailQueueChoice.java
  AL    server/apps/distributed-app/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java
  B     server/apps/distributed-app/src/main/glowroot/admin.json
  B     server/apps/distributed-app/src/main/glowroot/plugins/blobstore.json
  B     server/apps/distributed-app/src/main/glowroot/plugins/smtp.json
  B     server/apps/distributed-app/src/main/glowroot/plugins/task.json
  B     server/apps/distributed-app/src/main/glowroot/plugins/mailboxListener.json
  B     server/apps/distributed-app/src/main/glowroot/plugins/pop3.json
  B     server/apps/distributed-app/src/main/glowroot/plugins/spooler.json
  B     server/apps/distributed-app/src/main/glowroot/plugins/jmap.json
  B     server/apps/distributed-app/src/main/glowroot/plugins/imap.json
 !????? server/apps/distributed-app/src/main/scripts/james-cli
  AL    server/apps/distributed-app/src/test/resources/listeners.xml
  AL    server/apps/distributed-app/src/test/resources/dnsservice.xml
  AL    server/apps/distributed-app/src/test/resources/lmtpserver.xml
  AL    server/apps/distributed-app/src/test/resources/mailetcontainer.xml
  AL    server/apps/distributed-app/src/test/resources/imapserver.xml
  AL    server/apps/distributed-app/src/test/resources/managesieveserver.xml
  AL    server/apps/distributed-app/src/test/resources/domainlist.xml
  AL    server/apps/distributed-app/src/test/resources/mailrepositorystore.xml
  B     server/apps/distributed-app/src/test/resources/keystore
 !????? server/apps/distributed-app/src/test/resources/batchsizes.properties
  AL    server/apps/distributed-app/src/test/resources/smtpserver.xml
  AL    server/apps/distributed-app/src/test/resources/pop3server.xml
 !????? server/apps/distributed-app/src/test/resources/rabbitmq.properties
  AL    server/apps/distributed-app/src/test/java/org/apache/james/CassandraRabbitMQJamesConfigurationTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/CassandraRabbitMQJamesServerFixture.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithCassandraPassThroughBlobStoreMutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/CassandraRabbitMQAwsS3JmapTestRule.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithCacheImmutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/RabbitMQJamesServerReprocessingTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithEncryptedBlobStoreMutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/CassandraMessageOperationsContract.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithCassandraPassThroughBlobStoreImmutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithScanningSearchImmutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithCassandraDeduplicationBlobStoreImmutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/modules/DockerRabbitMQRule.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/modules/TestRabbitMQModule.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/modules/RabbitMQExtension.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/modules/AwsS3BlobStoreExtension.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/modules/blobstore/BlobStoreConfigurationValidationStartUpCheckTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/NamespaceConfigurationTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithEncryptedBlobStoreImmutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/RabbitMQJamesServerWithRetryConnectionTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithCassandraDeduplicationBlobStoreMutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithScanningSearchMutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/RabbitMQDisabledTasksTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/CassandraCacheQueryTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/CassandraPulsarJamesServerTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithDefaultAwsS3MutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithDefaultAwsS3ImmutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/CassandraRabbitMQLegacyQuotaJamesServerTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithoutMailQueueViewImmutableTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java
  AL    server/apps/distributed-app/src/test/java/org/apache/james/WithCacheMutableTest.java
  AL    server/apps/distributed-app/src/assemble/app.xml
  MIT   server/apps/distributed-app/src/assemble/license-for-binary.txt
 !????? server/apps/distributed-app/src/assemble/extensions-jars.txt
  AL    server/apps/distributed-app/pom.xml
  AL    server/apps/distributed-app/sample-configuration/webadmin.properties
  AL    server/apps/distributed-app/sample-configuration/listeners.xml
 !????? server/apps/distributed-app/sample-configuration/extensions.properties
  AL    server/apps/distributed-app/sample-configuration/dnsservice.xml
 !????? server/apps/distributed-app/sample-configuration/deletedMessageVault.properties
  AL    server/apps/distributed-app/sample-configuration/lmtpserver.xml
  AL    server/apps/distributed-app/sample-configuration/mailetcontainer.xml
 !????? server/apps/distributed-app/sample-configuration/queue-pulsar.properties
 !????? server/apps/distributed-app/sample-configuration/pulsar.properties
  AL    server/apps/distributed-app/sample-configuration/imapserver.xml
  AL    server/apps/distributed-app/sample-configuration/managesieveserver.xml
  AL    server/apps/distributed-app/sample-configuration/opensearch.properties
  AL    server/apps/distributed-app/sample-configuration/domainlist.xml
  AL    server/apps/distributed-app/sample-configuration/mailrepositorystore.xml
 !????? server/apps/distributed-app/sample-configuration/jvm.properties
  AL    server/apps/distributed-app/sample-configuration/usersrepository.xml
 !????? server/apps/distributed-app/sample-configuration/queue.properties
  AL    server/apps/distributed-app/sample-configuration/recipientrewritetable.xml
 !????? server/apps/distributed-app/sample-configuration/logback.xml
  AL    server/apps/distributed-app/sample-configuration/tika.properties
 !????? server/apps/distributed-app/sample-configuration/jmap.properties
 !????? server/apps/distributed-app/sample-configuration/cassandra-driver.conf
 !????? server/apps/distributed-app/sample-configuration/batchsizes.properties
  AL    server/apps/distributed-app/sample-configuration/jmx.properties
  AL    server/apps/distributed-app/sample-configuration/smtpserver.xml
  AL    server/apps/distributed-app/sample-configuration/pop3server.xml
 !????? server/apps/distributed-app/sample-configuration/blob.properties
 !????? server/apps/distributed-app/sample-configuration/cassandra.properties
  AL    server/apps/distributed-app/sample-configuration/healthcheck.properties
 !????? server/apps/distributed-app/sample-configuration/rabbitmq.properties
 !????? server/apps/distributed-app/docs/ui-overrides/partials/header-content.hbs
 !????? server/apps/distributed-app/docs/ui-overrides/img/james.svg
 !????? server/apps/distributed-app/docs/modules/ROOT/nav.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/architecture/implemented-standards.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/architecture/specialized-instances.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/architecture/index.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/architecture/consistency-model.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/objectives.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/operate/metrics.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/operate/security.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/operate/migrating.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/operate/guide.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/operate/performanceChecklist.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/operate/webadmin.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/operate/logging.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/operate/index.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/operate/cassandra-migration.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/operate/cli.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/db-benchmark.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/james-benchmark.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/provision.sh
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/index.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/index.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/extending/mail-processing.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/extending/smtp-hooks.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/extending/imap.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/extending/webadmin-routes.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/extending/mailbox-listeners.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/extending/index.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-secrets.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-logsMetrics.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/run/run-docker.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/run/run-kubernetes.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-values.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/run/index.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/run/run-java.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-checklist.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/collecting-events.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/matchers.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/mailets.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/batchsizes.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/smtp-hooks.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/domainlist.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/queue.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/dsn.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/jmx.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/cassandra.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/tika.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/jvm.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/jmap.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/mailrepositorystore.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/collecting-contacts.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/search.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/blobstore.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/extensions.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/sieve.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/listeners.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/vault.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/imap.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/ssl.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/smtp.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/mailetcontainer.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/webadmin.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/recipientrewritetable.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/rabbitmq.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/spam.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/remote-delivery-error-handling.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/index.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/dns.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/redis.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/healthcheck.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/usersrepository.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/opensearch.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/pages/configure/pop3.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/IsOverQuota.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasHeaderWithPrefix.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ManageSieveMailet.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/AddFooter.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/FileRegexMatcher.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/AtMostPriority.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RecipientToLowerCase.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/Expires.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/AmqpForwardAttribute.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/LogMessage.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ClamAVScan.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/MailAttributesToMimeHeaders.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RemoveMimeHeader.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SenderIsNull.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SerialiseToHTTP.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ClassifyBounce.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/IsSMIMESigned.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SubjectIs.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ToPlainText.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/WithStorageDirective.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/IsSMIMEEncrypted.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/AtMost.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ExtractMDNOriginalJMAPMessageId.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RecipientRewriteTable.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RecipientIsLocal.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RemoveMimeHeaderByPrefix.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ConvertTo7Bit.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HostIs.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/UserIs.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/XOriginatingIpInNetwork.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ICalendarParser.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasPriority.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/LocalDelivery.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/NESSpamCheck.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SPF.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/TextCalendarBodyToAttachment.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/WithPriority.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SpamAssassin.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/Forward.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RecipientDomainIs.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SMTPIsAuthNetwork.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasMailAttributeWithValueRegex.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ReplaceContent.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RemoteAddrInNetwork.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/NotifyPostmaster.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HeadersToHTTP.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/CommandForListserv.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RandomStoring.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/PostmasterAlias.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SMIMECheckSignature.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RecoverAttachment.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/StripAttachment.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/DKIMSign.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/TooManyRecipients.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RemoveAllMailAttributes.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ICALToHeader.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasMimeTypeAnySubPart.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/AttachmentFileNameIs.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/MimeDecodingMailet.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/IsX509CertificateSubject.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/Bounce.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/WrapText.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/DKIMVerify.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/IsSenderInRRTLoop.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SetMimeHeader.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/Redirect.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RelayLimit.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ICALToJsonAttribute.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SenderIs.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/TooManyLines.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/IsSingleRecipient.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ToRepository.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SenderInFakeDomain.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/Null.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/IsRemoteDeliveryPermanentError.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RemoteDelivery.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ServerTime.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/AddSubjectPrefix.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RemoveMailAttribute.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/Resend.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasException.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasHabeasWarrantMark.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/UnwrapText.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ToSenderDomainRepository.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/VacationMailet.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasAttachment.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/All.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/CommandListservMatcher.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/Sieve.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ToProcessor.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/MailAttributesListToMimeHeaders.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/FetchedFrom.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HostIsLocal.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SetMailAttribute.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasMimeTypeParameter.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RemoteAddrNotInNetwork.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/AtLeastPriority.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ContactExtractor.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/Sign.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasMailAttributeWithValue.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/DSNBounce.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RemoteDeliveryFailedWithSMTPCode.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasMailAttribute.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ToSenderFolder.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SenderHostIsLocal.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/CompareNumericHeaderValue.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RecipientIsRegex.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/NotifySender.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SMIMESign.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SubjectStartsWith.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SenderDomainIs.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/IsRemoteDeliveryTemporaryError.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SentByMailet.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/DLP.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SenderIsLocal.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/RecipientIs.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/FromRepository.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/InSpammerBlacklist.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SenderHostIs.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/IsMarkedAsSpam.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SMTPAuthSuccessful.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasHeader.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/HasMimeType.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/OnlyText.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/UseHeaderRecipients.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SentByJmap.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/ICSSanitizer.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SenderIsRegex.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/AddHabeasWarrantMark.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/MetricsMailet.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SMTPAuthUserIs.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/AddDeliveredToHeader.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SMIMEDecrypt.adoc
 !????? server/apps/distributed-app/docs/modules/ROOT/partials/SizeGreaterThan.adoc
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/server-components.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/IMAP_board.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/james-hexagons-extensions.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/cassandra_stress_test_result_2.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/storage.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/apache-james-lens.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/james-imap-base-performance.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/webAdmin.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/cassandra_stress_test_result_1.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/BlobStore.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/remote-delivery-error-handling.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/specialized-instances.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/MATCHER.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/JMAP_board.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/preload-dashboards.png
  B     server/apps/distributed-app/docs/modules/ROOT/assets/images/JVM_board.png
 !????? server/apps/distributed-app/docs/README.md
 !????? server/apps/distributed-app/docs/antora-playbook-local.yml
 !????? server/apps/distributed-app/docs/antora.yml
 !????? server/apps/cli-integration-tests/src/test/resources/jwt_publickey
  AL    server/apps/cli-integration-tests/src/test/resources/dnsservice.xml
  AL    server/apps/cli-integration-tests/src/test/resources/lmtpserver.xml
  AL    server/apps/cli-integration-tests/src/test/resources/mailetcontainer.xml
  AL    server/apps/cli-integration-tests/src/test/resources/imapserver.xml
  AL    server/apps/cli-integration-tests/src/test/resources/managesieveserver.xml
  AL    server/apps/cli-integration-tests/src/test/resources/mailrepositorystore.xml
  AL    server/apps/cli-integration-tests/src/test/resources/usersrepository.xml
  AL    server/apps/cli-integration-tests/src/test/resources/conf/jmx.properties
  AL    server/apps/cli-integration-tests/src/test/resources/smtpserver.xml
  AL    server/apps/cli-integration-tests/src/test/resources/pop3server.xml
  AL    server/apps/cli-integration-tests/src/test/java/org/apache/james/cli/MailboxCommandsIntegrationTest.java
  AL    server/apps/cli-integration-tests/src/test/java/org/apache/james/cli/QuotaCommandsIntegrationTest.java
  AL    server/apps/cli-integration-tests/src/test/java/org/apache/james/cli/util/OutputCapture.java
  AL    server/apps/cli-integration-tests/src/test/java/org/apache/james/cli/util/OutputCaptureTest.java
  AL    server/apps/cli-integration-tests/src/test/java/org/apache/james/cli/ReindexCommandIntegrationTest.java
  AL    server/apps/cli-integration-tests/src/test/java/org/apache/james/cli/DataCommandsIntegrationTest.java
  AL    server/apps/cli-integration-tests/src/test/java/org/apache/james/cli/SieveQuotaCommandsIntegrationTest.java
  AL    server/apps/cli-integration-tests/src/test/java/org/apache/james/cli/JmxSecurityServerIntegrationTest.java
  AL    server/apps/cli-integration-tests/pom.xml
  AL    server/apps/cassandra-app/docker-configuration/webadmin.properties
 !????? server/apps/cassandra-app/docker-configuration/jvm.properties
 !????? server/apps/cassandra-app/docker-compose.yml
 !????? server/apps/cassandra-app/README.adoc
 !????? server/apps/cassandra-app/src/main/extensions-jars/README.md
  AL    server/apps/cassandra-app/src/main/java/org/apache/james/CassandraJamesServerConfiguration.java
  AL    server/apps/cassandra-app/src/main/java/org/apache/james/CassandraBlobStoreModule.java
  AL    server/apps/cassandra-app/src/main/java/org/apache/james/BlobStoreConfiguration.java
  AL    server/apps/cassandra-app/src/main/java/org/apache/james/CassandraJamesServerMain.java
  AL    server/apps/cassandra-app/src/main/java/org/apache/james/BlobStoreModulesChooser.java
  B     server/apps/cassandra-app/src/main/glowroot/admin.json
  B     server/apps/cassandra-app/src/main/glowroot/plugins/blobstore.json
  B     server/apps/cassandra-app/src/main/glowroot/plugins/smtp.json
  B     server/apps/cassandra-app/src/main/glowroot/plugins/task.json
  B     server/apps/cassandra-app/src/main/glowroot/plugins/mailboxListener.json
  B     server/apps/cassandra-app/src/main/glowroot/plugins/pop3.json
  B     server/apps/cassandra-app/src/main/glowroot/plugins/spooler.json
  B     server/apps/cassandra-app/src/main/glowroot/plugins/jmap.json
  B     server/apps/cassandra-app/src/main/glowroot/plugins/imap.json
 !????? server/apps/cassandra-app/src/main/scripts/james-cli
  AL    server/apps/cassandra-app/src/test/resources/listeners.xml
  AL    server/apps/cassandra-app/src/test/resources/dnsservice.xml
  AL    server/apps/cassandra-app/src/test/resources/lmtpserver.xml
  AL    server/apps/cassandra-app/src/test/resources/mailetcontainer.xml
  AL    server/apps/cassandra-app/src/test/resources/imapserver.xml
  AL    server/apps/cassandra-app/src/test/resources/managesieveserver.xml
  AL    server/apps/cassandra-app/src/test/resources/domainlist.xml
 !????? server/apps/cassandra-app/src/test/resources/ldif-files/populate.ldif
  AL    server/apps/cassandra-app/src/test/resources/mailrepositorystore.xml
  B     server/apps/cassandra-app/src/test/resources/keystore
 !????? server/apps/cassandra-app/src/test/resources/batchsizes.properties
  AL    server/apps/cassandra-app/src/test/resources/smtpserver.xml
  AL    server/apps/cassandra-app/src/test/resources/pop3server.xml
  AL    server/apps/cassandra-app/src/test/resources/fakemailrepositorystore.xml
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/KeyspaceCreationTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/TikaExtension.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/JamesServerConcreteContract.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/DefaultCassandraJamesServerTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CassandraLdapJamesServerTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CassandraLdapJmapJamesServerTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/MailsShouldBeWellReceivedConcreteContract.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CacheSessionTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/DockerOpenSearchExtension.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CassandraWithOpenSearchDisabled.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/AuthenticatedCassandraJamesServerTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/modules/TestDockerOpenSearchModule.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/modules/TestTikaModule.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/modules/mailbox/CassandraSchemaVersionStartUpCheckTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/JamesCapabilitiesServerTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CassandraDuplicatingJamesServerTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CassandraExtension.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CassandraJamesServerTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CassandraWithTikaTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/TestingDistributedJamesServerBuilder.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CassandraLegacyQuotaJamesServerTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CassandraNodeConfTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CassandraMailRepositoryIntegrationTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/DockerOpenSearchRule.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/JamesWithNonCompatibleElasticSearchServerTest.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/CassandraJmapTestRule.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/DockerCassandraRule.java
  AL    server/apps/cassandra-app/src/test/java/org/apache/james/JamesServerWithRetryConnectionTest.java
  AL    server/apps/cassandra-app/src/assemble/app.xml
  MIT   server/apps/cassandra-app/src/assemble/license-for-binary.txt
 !????? server/apps/cassandra-app/src/assemble/extensions-jars.txt
  AL    server/apps/cassandra-app/pom.xml
  AL    server/apps/cassandra-app/sample-configuration/webadmin.properties
  AL    server/apps/cassandra-app/sample-configuration/listeners.xml
 !????? server/apps/cassandra-app/sample-configuration/extensions.properties
  AL    server/apps/cassandra-app/sample-configuration/dnsservice.xml
 !????? server/apps/cassandra-app/sample-configuration/deletedMessageVault.properties
  AL    server/apps/cassandra-app/sample-configuration/lmtpserver.xml
  AL    server/apps/cassandra-app/sample-configuration/mailetcontainer.xml
  AL    server/apps/cassandra-app/sample-configuration/imapserver.xml
  AL    server/apps/cassandra-app/sample-configuration/managesieveserver.xml
  AL    server/apps/cassandra-app/sample-configuration/opensearch.properties
  AL    server/apps/cassandra-app/sample-configuration/domainlist.xml
  AL    server/apps/cassandra-app/sample-configuration/mailrepositorystore.xml
 !????? server/apps/cassandra-app/sample-configuration/jvm.properties
  AL    server/apps/cassandra-app/sample-configuration/usersrepository.xml
  AL    server/apps/cassandra-app/sample-configuration/recipientrewritetable.xml
 !????? server/apps/cassandra-app/sample-configuration/logback.xml
  AL    server/apps/cassandra-app/sample-configuration/tika.properties
 !????? server/apps/cassandra-app/sample-configuration/jmap.properties
 !????? server/apps/cassandra-app/sample-configuration/cassandra-driver.conf
 !????? server/apps/cassandra-app/sample-configuration/batchsizes.properties
  AL    server/apps/cassandra-app/sample-configuration/jmx.properties
  AL    server/apps/cassandra-app/sample-configuration/smtpserver.xml
  AL    server/apps/cassandra-app/sample-configuration/pop3server.xml
 !????? server/apps/cassandra-app/sample-configuration/activemq.properties
 !????? server/apps/cassandra-app/sample-configuration/blob.properties
 !????? server/apps/cassandra-app/sample-configuration/cassandra.properties
  AL    server/apps/cassandra-app/sample-configuration/healthcheck.properties
  AL    server/apps/jpa-app/docker-configuration/webadmin.properties
 !????? server/apps/jpa-app/docker-compose.yml
 !????? server/apps/jpa-app/README.adoc
 !????? server/apps/jpa-app/src/main/extensions-jars/README.md
  AL    server/apps/jpa-app/src/main/resources/META-INF/persistence.xml
  AL    server/apps/jpa-app/src/main/resources/defaultMailetContainer.xml
  AL    server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesConfiguration.java
  AL    server/apps/jpa-app/src/main/java/org/apache/james/JPAJamesServerMain.java
  B     server/apps/jpa-app/src/main/glowroot/admin.json
  B     server/apps/jpa-app/src/main/glowroot/plugins/smtp.json
  B     server/apps/jpa-app/src/main/glowroot/plugins/task.json
  B     server/apps/jpa-app/src/main/glowroot/plugins/mailboxListener.json
  B     server/apps/jpa-app/src/main/glowroot/plugins/pop3.json
  B     server/apps/jpa-app/src/main/glowroot/plugins/spooler.json
  B     server/apps/jpa-app/src/main/glowroot/plugins/jmap.json
  B     server/apps/jpa-app/src/main/glowroot/plugins/imap.json
 !????? server/apps/jpa-app/src/main/scripts/james-cli
  AL    server/apps/jpa-app/src/test/resources/dnsservice.xml
  AL    server/apps/jpa-app/src/test/resources/lmtpserver.xml
  AL    server/apps/jpa-app/src/test/resources/mailetcontainer.xml
  AL    server/apps/jpa-app/src/test/resources/imapserver.xml
  AL    server/apps/jpa-app/src/test/resources/managesieveserver.xml
  AL    server/apps/jpa-app/src/test/resources/domainlist.xml
  AL    server/apps/jpa-app/src/test/resources/mailrepositorystore.xml
  B     server/apps/jpa-app/src/test/resources/keystore
  AL    server/apps/jpa-app/src/test/resources/smtpserver.xml
  AL    server/apps/jpa-app/src/test/resources/pop3server.xml
  AL    server/apps/jpa-app/src/test/resources/fakemailrepositorystore.xml
  AL    server/apps/jpa-app/src/test/java/org/apache/james/JamesServerConcreteContract.java
  AL    server/apps/jpa-app/src/test/java/org/apache/james/JPAJamesServerWithNoDatabaseAuthenticaticationSqlValidationTest.java
  AL    server/apps/jpa-app/src/test/java/org/apache/james/JPAJamesServerWithAuthenticatedDatabaseSqlValidationTest.java
  AL    server/apps/jpa-app/src/test/java/org/apache/james/JamesCapabilitiesServerTest.java
  AL    server/apps/jpa-app/src/test/java/org/apache/james/JPAJamesServerWithSqlValidationTest.java
  AL    server/apps/jpa-app/src/test/java/org/apache/james/JPAJamesServerTest.java
  AL    server/apps/jpa-app/src/test/java/org/apache/james/JPAWithLDAPJamesServerTest.java
  AL    server/apps/jpa-app/src/assemble/app.xml
  MIT   server/apps/jpa-app/src/assemble/license-for-binary.txt
 !????? server/apps/jpa-app/src/assemble/extensions-jars.txt
  AL    server/apps/jpa-app/pom.xml
  B     server/apps/jpa-app/keystore
  AL    server/apps/jpa-app/sample-configuration/webadmin.properties
  AL    server/apps/jpa-app/sample-configuration/listeners.xml
 !????? server/apps/jpa-app/sample-configuration/extensions.properties
  AL    server/apps/jpa-app/sample-configuration/james-database-mariadb.properties
 !????? server/apps/jpa-app/sample-configuration/jwt_publickey
  AL    server/apps/jpa-app/sample-configuration/dnsservice.xml
  AL    server/apps/jpa-app/sample-configuration/lmtpserver.xml
  AL    server/apps/jpa-app/sample-configuration/mailetcontainer.xml
  AL    server/apps/jpa-app/sample-configuration/imapserver.xml
  AL    server/apps/jpa-app/sample-configuration/managesieveserver.xml
  AL    server/apps/jpa-app/sample-configuration/domainlist.xml
  AL    server/apps/jpa-app/sample-configuration/mailrepositorystore.xml
 !????? server/apps/jpa-app/sample-configuration/jvm.properties
  AL    server/apps/jpa-app/sample-configuration/usersrepository.xml
  AL    server/apps/jpa-app/sample-configuration/recipientrewritetable.xml
 !????? server/apps/jpa-app/sample-configuration/logback.xml
  AL    server/apps/jpa-app/sample-configuration/james-database.properties
  AL    server/apps/jpa-app/sample-configuration/jmx.properties
  AL    server/apps/jpa-app/sample-configuration/smtpserver.xml
  AL    server/apps/jpa-app/sample-configuration/pop3server.xml
  AL    server/apps/jpa-app/sample-configuration/healthcheck.properties
  A     server/apps/jpa-app/mariadb-java-client-2.7.2.jar
  AL    server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryBlobStoreFactory.java
  AL    server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryBlobStoreDAO.java
  AL    server/blob/blob-memory/src/test/java/org/apache/james/blob/memory/MemoryBlobStoreDAOTest.java
  AL    server/blob/blob-memory/src/test/java/org/apache/james/blob/memory/MemoryBlobStoreTest.java
  AL    server/blob/blob-memory/src/test/java/org/apache/james/blob/memory/MemoryBlobStorePassThroughTest.java
  AL    server/blob/blob-memory/src/test/java/org/apache/james/blob/memory/MemoryBlobStoreGCAlgorithmTest.java
  AL    server/blob/blob-memory/pom.xml
  AL    server/blob/blob-common/src/main/java/org/apache/james/blob/api/Store.java
  AL    server/blob/blob-common/pom.xml
  AL    server/blob/blob-file/src/main/java/org/apache/james/blob/file/FileBlobStoreDAO.java
  AL    server/blob/blob-file/src/main/java/org/apache/james/blob/file/FileBlobStoreFactory.java
  AL    server/blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStoreTest.java
  AL    server/blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStorePassThroughTest.java
  AL    server/blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStoreGCAlgorithmTest.java
  AL    server/blob/blob-file/src/test/java/org/apache/james/blob/file/FileBlobStoreDAOTest.java
  AL    server/blob/blob-file/pom.xml
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStoreDAO.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobId.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/ObjectNotFoundException.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/ObjectStorageHealthCheck.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobPartsId.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobReferenceSource.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobType.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/ObjectStoreIOException.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/HashBlobId.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/ObjectStoreException.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/MetricableBlobStore.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStore.java
  AL    server/blob/blob-api/src/main/java/org/apache/james/blob/api/BucketName.java
  B     server/blob/blob-api/src/test/resources/shattered-2.pdf
  B     server/blob/blob-api/src/test/resources/shattered-1.pdf
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobTypeTest.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteBlobStoreDAOContract.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/TestBlobId.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetricableBlobStoreContract.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketNameTest.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreDAOContract.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeduplicationBlobStoreContract.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketBlobStoreContract.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/HashBlobIdTest.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketBlobStoreDAOContract.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteBlobStoreContract.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreContract.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/ReadSaveBlobStoreDAOContract.java
  AL    server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreDAOFixture.java
  AL    server/blob/blob-api/pom.xml
  AL    server/blob/blob-export-file/src/main/java/org/apache/james/blob/export/file/LocalFileBlobExportMechanism.java
  AL    server/blob/blob-export-file/src/test/java/org/apache/james/blob/export/file/LocalFileBlobExportMechanismTest.java
  AL    server/blob/blob-export-file/src/test/java/org/apache/james/blob/export/file/FileSystemExtensionTest.java
  AL    server/blob/blob-export-file/src/test/java/org/apache/james/blob/export/file/FileSystemExtension.java
  AL    server/blob/blob-export-file/pom.xml
  AL    server/blob/pom.xml
  AL    server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraDefaultBucketDAO.java
  AL    server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobModule.java
  AL    server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobStoreDAO.java
  AL    server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBucketDAO.java
  AL    server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/BlobTables.java
  AL    server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/cache/CassandraCacheConfiguration.java
  AL    server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/cache/BlobStoreCache.java
  AL    server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/cache/CachedBlobStore.java
  AL    server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/cache/CassandraBlobStoreCache.java
  AL    server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/cache/CassandraBlobCacheModule.java
  AL    server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobStoreFactory.java
 !????? server/blob/blob-cassandra/src/test/resources/cassandra-driver.conf
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBucketDAOTest.java
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreClOneTest.java
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraDefaultBucketDAOTest.java
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreContract.java
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreDAOTest.java
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraPassTroughBlobStoreTest.java
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/cache/CachedBlobStoreTest.java
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/cache/CassandraCacheConfigurationTest.java
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/cache/BlobStoreCacheContract.java
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/cache/CassandraBlobStoreCacheTest.java
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreFixture.java
  AL    server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreTest.java
  AL    server/blob/blob-cassandra/pom.xml
  AL    server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/PassThroughBlobStore.scala
  AL    server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/DeDuplicationBlobStore.scala
  AL    server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/GenerationAwareBlobId.java
  AL    server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/BlobReferenceAggregate.java
  AL    server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/BloomFilterGCAlgorithm.java
  AL    server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/StorageStrategy.java
  AL    server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/BlobGCTaskAdditionalInformationDTO.java
  AL    server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/BlobGCTaskDTO.java
  AL    server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/BlobGCTask.java
  AL    server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/BlobStoreFactory.java
  B     server/blob/blob-storage-strategy/src/test/resources/json/blobGC-legacy.task.json
  B     server/blob/blob-storage-strategy/src/test/resources/json/blobGC.additionalInformation.json
  B     server/blob/blob-storage-strategy/src/test/resources/json/blobGC.task.json
  B     server/blob/blob-storage-strategy/src/test/resources/json/blobGC-legacy.additionalInformation.json
  AL    server/blob/blob-storage-strategy/src/test/java/org/apache/james/server/blob/deduplication/BlobGCTaskSerializationTest.java
  AL    server/blob/blob-storage-strategy/src/test/java/org/apache/james/server/blob/deduplication/BloomFilterGCAlgorithmContract.java
  AL    server/blob/blob-storage-strategy/src/test/java/org/apache/james/server/blob/deduplication/GenerationAwareBlobIdTest.java
  AL    server/blob/blob-storage-strategy/src/test/java/org/apache/james/server/blob/deduplication/BlobGCTaskAdditionalInformationDTOTest.java
  AL    server/blob/blob-storage-strategy/pom.xml
  AL    server/blob/mail-store/src/main/java/org/apache/james/blob/mail/MimeMessagePartsId.java
  AL    server/blob/mail-store/src/main/java/org/apache/james/blob/mail/MimeMessageStore.java
  AL    server/blob/mail-store/src/test/java/org/apache/james/blob/mail/MimeMessageStoreTest.java
  AL    server/blob/mail-store/src/test/java/org/apache/james/blob/mail/MimeMessagePartsIdTest.java
  AL    server/blob/mail-store/pom.xml
  AL    server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/AwsS3AuthConfiguration.java
  AL    server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/Region.java
  AL    server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreConfiguration.java
  AL    server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/BucketNameResolver.java
  AL    server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/MinimalCopyBytesResponseTransformer.java
  AL    server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAO.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3HealthCheckTest.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3MinioTest.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3PrefixAndNamespaceTest.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/BucketNameResolverTest.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/DockerAwsS3Container.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3PrefixTest.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/RegionTest.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/DockerAwsS3Singleton.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/AwsS3AuthConfigurationTest.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3NamespaceTest.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAOTest.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/DockerAwsS3Extension.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/DockerAwsS3.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3DeDuplicationBlobStoreTest.java
  AL    server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3PassThroughBlobStoreTest.java
  AL    server/blob/blob-s3/pom.xml
  AL    server/blob/blob-aes/src/main/java/org/apache/james/blob/aes/CryptoConfig.java
  AL    server/blob/blob-aes/src/main/java/org/apache/james/blob/aes/PBKDF2StreamingAeadFactory.java
  AL    server/blob/blob-aes/src/main/java/org/apache/james/blob/aes/CryptoConfigBuilder.java
  AL    server/blob/blob-aes/src/main/java/org/apache/james/blob/aes/AESBlobStoreDAO.java
  AL    server/blob/blob-aes/src/main/java/org/apache/james/blob/aes/CryptoException.java
  AL    server/blob/blob-aes/src/test/java/org/apache/james/blob/aes/AESBlobStoreDAOTest.java
  AL    server/blob/blob-aes/pom.xml
  AL    server/blob/blob-export-api/src/main/java/org/apache/james/blob/export/api/FileExtension.java
  AL    server/blob/blob-export-api/src/main/java/org/apache/james/blob/export/api/BlobExportMechanism.java
  AL    server/blob/blob-export-api/src/main/java/org/apache/james/blob/export/api/ExportedFileNamesGenerator.java
  AL    server/blob/blob-export-api/src/test/java/org/apache/james/blob/export/api/ExportedFileNamesGeneratorTest.java
  AL    server/blob/blob-export-api/src/test/java/org/apache/james/blob/export/api/FileExtensionTest.java
  AL    server/blob/blob-export-api/pom.xml
  AL    server/task/task-api/src/main/scala/org/apache/james/task/TaskExecutionDetails.scala
  AL    server/task/task-api/src/main/scala/org/apache/james/task/Hostname.scala
  AL    server/task/task-api/src/main/java/org/apache/james/task/TaskNotFoundException.java
  AL    server/task/task-api/src/main/java/org/apache/james/task/Task.java
  AL    server/task/task-api/src/main/java/org/apache/james/task/TaskType.java
  AL    server/task/task-api/src/main/java/org/apache/james/task/TaskManager.java
  AL    server/task/task-api/src/main/java/org/apache/james/task/TaskId.java
  AL    server/task/task-api/src/main/java/org/apache/james/task/AsyncSafeTask.java
  AL    server/task/task-api/src/test/java/org/apache/james/task/ThrowingTask.java
  AL    server/task/task-api/src/test/java/org/apache/james/task/MemoryReferenceTask.java
  AL    server/task/task-api/src/test/java/org/apache/james/task/TaskIdTest.java
  AL    server/task/task-api/src/test/java/org/apache/james/task/TaskTypeTest.java
  AL    server/task/task-api/src/test/java/org/apache/james/task/TaskTest.java
  AL    server/task/task-api/src/test/java/org/apache/james/task/CompletedTask.java
  AL    server/task/task-api/src/test/java/org/apache/james/task/FailsDeserializationTask.java
  AL    server/task/task-api/src/test/java/org/apache/james/task/FailedTask.java
  AL    server/task/task-api/src/test/java/org/apache/james/task/TaskManagerContract.java
  AL    server/task/task-api/src/test/java/org/apache/james/task/MemoryReferenceWithCounterTask.java
  AL    server/task/task-api/pom.xml
  AL    server/task/task-json/src/main/java/org/apache/james/server/task/json/TaskModuleInjectionKeys.java
  AL    server/task/task-json/src/main/java/org/apache/james/server/task/json/TaskExtensionModule.java
  AL    server/task/task-json/src/main/java/org/apache/james/server/task/json/JsonTaskSerializer.java
  AL    server/task/task-json/src/main/java/org/apache/james/server/task/json/JsonTaskAdditionalInformationSerializer.java
  AL    server/task/task-json/src/main/java/org/apache/james/server/task/json/dto/TaskDTO.java
  AL    server/task/task-json/src/main/java/org/apache/james/server/task/json/dto/AdditionalInformationDTO.java
  AL    server/task/task-json/src/main/java/org/apache/james/server/task/json/dto/TaskDTOModule.java
  AL    server/task/task-json/src/main/java/org/apache/james/server/task/json/dto/AdditionalInformationDTOModule.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/TaskDeserializerTest.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/TaskSerializerTest.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/dto/FailedTaskDTO.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/dto/TestTaskDTOModules.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/dto/MemoryReferenceWithCounterTaskStore.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/dto/MemoryReferenceTaskStore.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/dto/FailsDeserializationTaskDTO.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/dto/ThrowingTaskDTO.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/dto/MemoryReferenceWithCounterTaskDTO.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/dto/MemoryReferenceWithCounterTaskAdditionalInformationDTO.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/dto/CompletedTaskDTO.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/dto/TestTaskDTO.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/dto/MemoryReferenceTaskDTO.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/TestTask.java
  AL    server/task/task-json/src/test/java/org/apache/james/server/task/json/TaskSerializationTest.java
  AL    server/task/task-json/pom.xml
  AL    server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/distributed/RabbitMQWorkQueueSupplier.scala
  AL    server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/distributed/RabbitMQWorkQueueConfiguration.scala
  AL    server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/distributed/TaskEventDTO.scala
  AL    server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjectionModule.scala
  AL    server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjectionDAO.scala
  AL    server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjection.scala
  AL    server/task/task-distributed/src/main/java/org/apache/james/task/eventsourcing/distributed/DistributedTaskManagerHealthCheck.java
  AL    server/task/task-distributed/src/main/java/org/apache/james/task/eventsourcing/distributed/RabbitMQWorkQueueReconnectionHandler.java
  AL    server/task/task-distributed/src/main/java/org/apache/james/task/eventsourcing/distributed/TerminationReconnectionHandler.java
  AL    server/task/task-distributed/src/main/java/org/apache/james/task/eventsourcing/distributed/RabbitMQWorkQueue.java
  AL    server/task/task-distributed/src/main/java/org/apache/james/task/eventsourcing/distributed/RabbitMQTerminationSubscriber.java
  AL    server/task/task-distributed/src/main/java/org/apache/james/task/eventsourcing/distributed/TasksSerializationModule.java
  AL    server/task/task-distributed/src/main/java/org/apache/james/task/eventsourcing/distributed/TerminationQueueName.java
  AL    server/task/task-distributed/src/main/java/org/apache/james/task/eventsourcing/distributed/CancelRequestQueueName.java
  AL    server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/distributed/RabbitMQWorkQueuePersistenceTest.java
  AL    server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/distributed/RabbitMQTerminationSubscriberTest.java
  AL    server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/distributed/DistributedTaskManagerTest.java
  AL    server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/distributed/RabbitMQWorkQueueTest.java
  AL    server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/distributed/ImmediateWorker.java
  AL    server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/distributed/TaskEventsSerializationTest.java
  AL    server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjectionTest.java
  AL    server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjectionDAOTest.java
  AL    server/task/task-distributed/pom.xml
  AL    server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskExecutionDetailsProjection.scala
  AL    server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/Events.scala
  AL    server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/DecisionProjection.scala
  AL    server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/WorkerStatusListener.scala
  AL    server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskAggregate.scala
  AL    server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskAggregateId.scala
  AL    server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/WorkQueueSupplier.scala
  AL    server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/CommandHandlers.scala
  AL    server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TaskCommand.scala
  AL    server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/EventSourcingTaskManager.scala
  AL    server/task/task-memory/src/main/scala/org/apache/james/task/eventsourcing/TerminationSubscriber.scala
  AL    server/task/task-memory/src/main/java/org/apache/james/task/WorkQueue.java
  AL    server/task/task-memory/src/main/java/org/apache/james/task/SerialTaskManagerWorker.java
  AL    server/task/task-memory/src/main/java/org/apache/james/task/MemoryWorkQueue.java
  AL    server/task/task-memory/src/main/java/org/apache/james/task/MemoryTaskManager.java
  AL    server/task/task-memory/src/main/java/org/apache/james/task/TaskWithId.java
  AL    server/task/task-memory/src/main/java/org/apache/james/task/TaskExecutionDetailsUpdater.java
  AL    server/task/task-memory/src/main/java/org/apache/james/task/TaskManagerWorker.java
  AL    server/task/task-memory/src/test/scala/org/apache/james/task/TaskExecutionDetailsFixture.scala
  AL    server/task/task-memory/src/test/java/org/apache/james/task/TaskWithIdTest.java
  AL    server/task/task-memory/src/test/java/org/apache/james/task/SerialTaskManagerWorkerTest.java
  AL    server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/MemoryTaskExecutionDetailsProjectionTest.java
  AL    server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/TaskAggregateTest.java
  AL    server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/EventSourcingTaskManagerTest.java
  AL    server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/TerminationSubscriberContract.java
  AL    server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/TaskExecutionDetailsProjectionContract.java
  AL    server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/MemoryTerminationSubscriberTest.java
  AL    server/task/task-memory/src/test/java/org/apache/james/task/MemoryTaskManagerTest.java
  AL    server/task/task-memory/src/test/java/org/apache/james/task/CountDownLatchExtension.java
  AL    server/task/task-memory/pom.xml
  AL    server/src/main/appended-resources/supplemental-models.xml
  AL    server/src/reporting-site/site.xml
  AL    server/pom.xml
  AL    server/dns-service/dnsservice-dnsjava/src/main/resources/META-INF/spring/dns-context.xml
  AL    server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java
  AL    server/dns-service/dnsservice-dnsjava/src/test/resources/org/apache/james/dnsservice/dnsjava/test-zone.com.zone
  AL    server/dns-service/dnsservice-dnsjava/src/test/resources/org/apache/james/dnsservice/dnsjava/three-mx.bar.zone
  AL    server/dns-service/dnsservice-dnsjava/src/test/resources/org/apache/james/dnsservice/dnsjava/two-mx.sameprio.zone
  AL    server/dns-service/dnsservice-dnsjava/src/test/resources/org/apache/james/dnsservice/dnsjava/pippo.com.zone
  AL    server/dns-service/dnsservice-dnsjava/src/test/resources/org/apache/james/dnsservice/dnsjava/brandilyncollins.com.zone
  AL    server/dns-service/dnsservice-dnsjava/src/test/resources/org/apache/james/dnsservice/dnsjava/dnstest.com.zone
  AL    server/dns-service/dnsservice-dnsjava/src/test/resources/org/apache/james/dnsservice/dnsjava/one-mx.bar.zone
  AL    server/dns-service/dnsservice-dnsjava/src/test/resources/org/apache/james/dnsservice/dnsjava/two-mx.differentprio.zone
  AL    server/dns-service/dnsservice-dnsjava/src/test/java/org/apache/james/dnsservice/dnsjava/ZoneCacheLookupRecordsAnswer.java
  AL    server/dns-service/dnsservice-dnsjava/src/test/java/org/apache/james/dnsservice/dnsjava/DNSJavaServiceTest.java
  AL    server/dns-service/dnsservice-dnsjava/src/reporting-site/site.xml
  AL    server/dns-service/dnsservice-dnsjava/pom.xml
  AL    server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/MXHostAddressIterator.java
  AL    server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/inetnetwork/model/Inet4Network.java
  AL    server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/inetnetwork/model/Inet6Network.java
  AL    server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/inetnetwork/model/InetNetwork.java
  AL    server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/inetnetwork/InetNetworkBuilder.java
  AL    server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
  AL    server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/inetnetwork/model/InetNetworkTest.java
  AL    server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/inetnetwork/InetNetworkBuilderTest.java
  AL    server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/netmatcher/NetMatcherTest.java
  AL    server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/MXHostAddressIteratorTest.java
  AL    server/dns-service/dnsservice-library/src/reporting-site/site.xml
  AL    server/dns-service/dnsservice-library/pom.xml
  AL    server/dns-service/dnsservice-api/src/main/resources/dnsservice.xml
  AL    server/dns-service/dnsservice-api/src/main/java/org/apache/james/dnsservice/api/DNSService.java
  AL    server/dns-service/dnsservice-api/src/main/java/org/apache/james/dnsservice/api/TemporaryResolutionException.java
  AL    server/dns-service/dnsservice-api/src/main/java/org/apache/james/dnsservice/api/DNSServiceMBean.java
  AL    server/dns-service/dnsservice-api/src/reporting-site/site.xml
  AL    server/dns-service/dnsservice-api/pom.xml
  AL    server/dns-service/dnsservice-test/src/main/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
  AL    server/dns-service/dnsservice-test/src/main/java/org/apache/james/dnsservice/api/mock/DNSFixture.java
  AL    server/dns-service/dnsservice-test/src/main/java/org/apache/james/dnsservice/api/mock/MockDNSService.java
  AL    server/dns-service/dnsservice-test/src/main/java/org/apache/james/dnsservice/api/AbstractDNSServiceTest.java
  AL    server/dns-service/dnsservice-test/pom.xml
  AL    server/protocols/protocols-pop3-distributed/src/main/java/org/apache/james/pop3server/mailbox/PopulateMetadataStoreListener.java
  AL    server/protocols/protocols-pop3-distributed/src/main/java/org/apache/james/pop3server/mailbox/task/MetaDataFixInconsistenciesDTO.java
  AL    server/protocols/protocols-pop3-distributed/src/main/java/org/apache/james/pop3server/mailbox/task/MetaDataFixInconsistenciesTask.java
  AL    server/protocols/protocols-pop3-distributed/src/main/java/org/apache/james/pop3server/mailbox/task/MetaDataFixInconsistenciesService.java
  AL    server/protocols/protocols-pop3-distributed/src/main/java/org/apache/james/pop3server/mailbox/task/MetaDataFixInconsistenciesAdditionalInformationDTO.java
  AL    server/protocols/protocols-pop3-distributed/src/main/java/org/apache/james/pop3server/mailbox/task/MessageInconsistenciesEntry.java
  AL    server/protocols/protocols-pop3-distributed/src/main/java/org/apache/james/pop3server/mailbox/MemoryPop3MetadataStore.java
  AL    server/protocols/protocols-pop3-distributed/src/main/java/org/apache/james/pop3server/mailbox/Pop3MetadataModule.java
  AL    server/protocols/protocols-pop3-distributed/src/main/java/org/apache/james/pop3server/mailbox/CassandraPop3MetadataStore.java
  AL    server/protocols/protocols-pop3-distributed/src/main/java/org/apache/james/pop3server/mailbox/Pop3MetadataStore.java
  AL    server/protocols/protocols-pop3-distributed/src/main/java/org/apache/james/pop3server/mailbox/DistributedMailboxAdapter.java
  B     server/protocols/protocols-pop3-distributed/src/test/resources/keystore
 !????? server/protocols/protocols-pop3-distributed/src/test/resources/pop3server.xml
  AL    server/protocols/protocols-pop3-distributed/src/test/java/org/apache/james/pop3server/mailbox/task/MetaDataFixInconsistenciesDTOTest.java
  AL    server/protocols/protocols-pop3-distributed/src/test/java/org/apache/james/pop3server/mailbox/task/MetaDataFixInconsistenciesAdditionalInformationDTOTest.java
  AL    server/protocols/protocols-pop3-distributed/src/test/java/org/apache/james/pop3server/mailbox/task/MetaDataFixInconsistenciesServiceTest.java
  AL    server/protocols/protocols-pop3-distributed/src/test/java/org/apache/james/pop3server/mailbox/CassandraPop3MetadataStoreTest.java
  AL    server/protocols/protocols-pop3-distributed/src/test/java/org/apache/james/pop3server/mailbox/Pop3MetadataStoreContract.java
  AL    server/protocols/protocols-pop3-distributed/src/test/java/org/apache/james/pop3server/mailbox/MemoryPop3MetadataStoreTest.java
  AL    server/protocols/protocols-pop3-distributed/src/test/java/org/apache/james/pop3server/mailbox/DistributedPop3ServerTest.java
  AL    server/protocols/protocols-pop3-distributed/pom.xml
  AL    server/protocols/webadmin/webadmin-dropwizard-metrics/src/main/java/org/apache/james/webadmin/dropwizard/MetricsRoutes.java
  AL    server/protocols/webadmin/webadmin-dropwizard-metrics/src/test/java/org/apache/james/webadmin/dropwizard/MetricsRoutesTest.java
  AL    server/protocols/webadmin/webadmin-dropwizard-metrics/pom.xml
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/UploadRepositoryCleanupTask.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/PopulateFilteringProjectionTask.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/JmapUploadRoutes.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/PopulateEmailQueryViewRequestToTask.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/MessageFastViewProjectionCorrector.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTask.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/EmailQueryViewPopulator.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunningOptionsDTO.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/PopulateFilteringProjectionRequestToTask.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeUserFastViewTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/PopulateEmailQueryViewTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/UploadCleanupTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunningOptionsParser.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/UserIdentityRoutes.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/PopulateFilteringProjectionTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeUserFastViewProjectionItemsTask.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/UploadCleanupTaskDTO.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsRequestToTask.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RunningOptions.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/dto/UserIdentity.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/Constants.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/RecomputeUserFastViewProjectionItemsRequestToTask.java
  AL    server/protocols/webadmin/webadmin-jmap/src/main/java/org/apache/james/webadmin/data/jmap/PopulateEmailQueryViewTask.java
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/recomputeUser.additionalInformation.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/populateAll.additionalInformation.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/recomputeUser.task.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/recomputeAll.task.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/cleanUpload.task.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/populateAll.task.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/recomputeUser.additionalInformation.legacy.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/populateFilters.additionalInformation.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/cleanUpload.additionalInformation.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/recomputeAll.additionalInformation.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/populateFilters.task.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/recomputeAll.task.legacy.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/recomputeUser.task.legacy.json
  B     server/protocols/webadmin/webadmin-jmap/src/test/resources/json/recomputeAll.additionalInformation.legacy.json
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/UploadCleanupTaskAdditionalInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/PopulateFilteringProjectionItemsTaskAdditionalInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeUserFastViewProjectionItemsRequestToTaskTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/UserIdentitiesRoutesTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeUserFastViewProjectionItemsTaskAdditionalInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/UploadCleanupTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsRequestToTaskTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/PopulateEmailQueryViewTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/JmapUploadRoutesTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/PopulateFilteringProjectionRequestToTaskTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/PopulateEmailQueryViewProjectionItemsTaskAdditionalInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeUserFastViewProjectionItemsTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/RecomputeAllFastViewProjectionItemsTaskAdditionalInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/PopulateEmailQueryViewRequestToTaskTest.java
  AL    server/protocols/webadmin/webadmin-jmap/src/test/java/org/apache/james/webadmin/data/jmap/PopulateFilteringProjectionTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-jmap/pom.xml
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ClearMailRepositoryTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingService.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/MailRepositoryStoreService.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingOneMailTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingOneMailTask.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ClearMailRepositoryTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTask.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ClearMailRepositoryTask.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/WebAdminClearMailRepositoryTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingOneMailTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/routes/MailRepositoriesRoutes.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/dto/HeadersDto.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/dto/SingleMailRepositoryResponse.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/dto/InaccessibleFieldException.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/dto/MailRepositoryResponse.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/dto/ExtendedMailRepositoryResponse.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/dto/MailKeyDTO.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/dto/MailDto.java
 !????? server/protocols/webadmin/webadmin-mailrepository/src/test/resources/mail.eml
  AL    server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ReprocessingAllMailsTaskTest.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ReprocessingServiceTest.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/MailRepositoryStoreServiceTest.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/WebAdminClearMailRepositoryTaskDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ReprocessingOneMailTaskTest.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ClearMailRepositoryTaskTest.java
  AL    server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mailrepository/pom.xml
  AL    server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTask.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTask.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/WebAdminDeleteMailsFromMailQueueTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/dto/MailQueueDTO.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/dto/MailQueueItemDTO.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/dto/ForceDelivery.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskTest.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/ClearMailQueueTaskTest.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/WebAdminDeleteMailsFromMailQueueTaskAdditionalInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/routes/MailQueueRoutesUnitTest.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/routes/MailQueueRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/dto/MailQueueDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/dto/MailQueueItemDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailqueue/pom.xml
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/validation/Quotas.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/validation/MailboxName.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/validation/QuotaDTOValidator.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/jackson/QuotaModule.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/MailboxesExportTask.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverAllTask.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliveryTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/CreateMissingParentsTask.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/ClearMailboxContentTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/MailboxesExportTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/ExpireMailboxTask.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserMailboxesService.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/GlobalQuotaService.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/CreateMissingParentsRequestToTask.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverGroupTask.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverOneTask.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverOneTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/SubscribeAllTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverGroupTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/CreateMissingParentsTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverAllTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/ExportService.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/ExpireMailboxService.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/ClearMailboxContentTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/MailboxesExportRequestToTask.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/ExpireMailboxAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/SubscribeAllTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliveryTaskAdditionalInformation.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverService.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/DomainQuotaService.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserQuotaService.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventRetriever.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/SubscribeAllRequestToTask.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersService.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/ClearMailboxContentTask.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/SubscribeAllTask.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/ExpireMailboxDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/PreviousReIndexingService.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/utils/MailboxHaveChildrenException.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/UserQuotaRoutes.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/GlobalQuotaRoutes.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/DomainQuotaRoutes.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/MessagesRoutes.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRunningOptionsParser.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/UserMailboxesRoutes.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/MailboxesRoutes.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/EventDeadLettersRoutes.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/QuotaDetailsDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/OccupationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/QuotaValueDeserializer.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminIndexationContextInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminUserReindexingTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/MailboxResponse.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/QuotaDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/WebAdminSingleMailboxReindexingTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/ValidatedQuotaDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/SerializableReIndexingExecutionFailures.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/OccupationRatioDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/UsersQuotaDetailsDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/QuotaDomainDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/dto/QuotaValueSerializer.java
  B     server/protocols/webadmin/webadmin-mailbox/src/test/resources/json/subscribeAll.additionalInformation.json
  B     server/protocols/webadmin/webadmin-mailbox/src/test/resources/json/mailboxesExport.task.json
  B     server/protocols/webadmin/webadmin-mailbox/src/test/resources/json/subscribeAll.task.json
  B     server/protocols/webadmin/webadmin-mailbox/src/test/resources/json/createMissingParents.task.json
  B     server/protocols/webadmin/webadmin-mailbox/src/test/resources/json/mailboxesExport.additionalInformation.json
  B     server/protocols/webadmin/webadmin-mailbox/src/test/resources/json/clearMailboxContent.additionalInformation.json
  B     server/protocols/webadmin/webadmin-mailbox/src/test/resources/json/clearMailboxContent.task.json
  B     server/protocols/webadmin/webadmin-mailbox/src/test/resources/json/expireMailbox.additionalInformation.json
  B     server/protocols/webadmin/webadmin-mailbox/src/test/resources/json/expireMailbox.age.task.json
  B     server/protocols/webadmin/webadmin-mailbox/src/test/resources/json/createMissingParents.additionalInformation.json
  B     server/protocols/webadmin/webadmin-mailbox/src/test/resources/json/expireMailbox.header.task.json
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/validation/QuotaLimitValueTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/ExportServiceTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/CreateMissingParentsRequestToTaskTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/ExpireMailboxTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTaskTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/ExpireMailboxServiceTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/SubscribeAllTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/MailboxesExportRequestToTaskTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/SubscribeAllRequestToTaskTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/ExpireMailboxTaskAdditionalInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/CreateMissingParentsTaskAdditionalInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/SubscribeAllTaskAdditionalInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/ClearMailboxContentTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/MailboxesExportTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/MailboxesExportTaskAdditionalInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/ExportServiceTestSystem.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/ClearMailboxContentTaskAdditionalInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/CreateMissingParentsTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/WebAdminQuotaSearchTestSystem.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/DomainQuotaRoutesNoVirtualHostingTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MessageRoutesExpireTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MessageRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserQuotaRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ScanningQuotaSearchExtension.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesNoTasksTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/DomainQuotaRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/GlobalQuotaRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesNoIndexationTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MalformedUrlRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/OpenSearchQuotaSearchExtension.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/SerializableReIndexingExecutionFailuresTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/UsersQuotaDetailsDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminIndexationContextInformationDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminUserReIndexingDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/WebAdminSingleMailboxIndexingDTOTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/dto/QuotaLimitValueDeserializerTest.java
  AL    server/protocols/webadmin/webadmin-mailbox/pom.xml
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/UsernameChangeService.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/UsernameChangeTask.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/DeleteUsersDataOfDomainTask.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/DeleteUsersDataOfDomainTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/UsernameChangeTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/UsernameChangeTaskDTO.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/UserService.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/DeleteUserDataTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/DomainAliasService.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/DeleteUserDataTaskDTO.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/DeleteUsersDataOfDomainTaskDTO.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/DeleteUserDataService.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/service/DeleteUserDataTask.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/AliasRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/UserRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DeleteUserDataRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/BlobRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DLPConfigurationRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/MailAddressParser.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/UsernameChangeRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/SieveScriptRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainsRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/RegexMappingRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainMappingsRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/SieveQuotaRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/AddressMappingRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/MappingRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/UserCreationRequestLogger.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/VacationRoutes.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/dto/UserResponse.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/dto/ForwardDestinationResponse.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/dto/VerifyUserRequest.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/dto/DLPConfigurationDTO.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/dto/MappingSourceModule.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/dto/DomainAliasResponse.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/dto/AliasSourcesResponse.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/dto/MappingValueDTO.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/dto/VacationDTO.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/dto/DLPConfigurationItemDTO.java
  AL    server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/dto/AddUserRequest.java
 !????? server/protocols/webadmin/webadmin-data/src/test/resources/sieve/my_sieve
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/service/DeleteUsersDataOfDomainTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/service/DeleteUsersDataOfDomainTaskTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/service/UsernameChangeTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/service/DeleteUserDataTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/GroupsRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/BlobRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/AddressMappingRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/VacationRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/UserRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/ForwardRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/UsernameChangeRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/SieveScriptRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/MappingRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DLPConfigurationRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/AliasRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainMappingsRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DeleteUserDataRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/SieveQuotaRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/RegexMappingRoutesTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/dto/DomainAliasResponseTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/dto/DLPConfigurationItemDTOTest.java
  AL    server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/dto/VacationDTOTest.java
  AL    server/protocols/webadmin/webadmin-data/pom.xml
  AL    server/protocols/webadmin/webadmin-pop3/src/main/java/org/apache/james/pop3/webadmin/Pop3MetaDataFixInconsistenciesTaskRegistration.java
  AL    server/protocols/webadmin/webadmin-pop3/src/test/java/org/apache/james/pop3/webadmin/Pop3MetaDataFixInconsistenciesRoutesTest.java
  AL    server/protocols/webadmin/webadmin-pop3/pom.xml
 !????? server/protocols/webadmin/webadmin-pop3/README.md
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/UserClient.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/model/UserPassword.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/model/UserName.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/model/DomainAlias.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/model/MailboxName.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/MailboxClient.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/WebAdminHTTPClientFactory.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/QuotaClient.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/DomainClient.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/feign/DomainFeignClient.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/feign/UserFeignClient.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/feign/JamesFeignException.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/feign/MailboxFeignClient.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/feign/QuotaFeignClient.java
  AL    server/protocols/webadmin/webadmin-http-client/src/main/java/org/apache/james/webadmin/httpclient/FeignHelper.java
  AL    server/protocols/webadmin/webadmin-http-client/src/test/java/org/apache/james/webadmin/httpclient/MailboxClientTest.java
  AL    server/protocols/webadmin/webadmin-http-client/src/test/java/org/apache/james/webadmin/httpclient/DomainClientTest.java
  AL    server/protocols/webadmin/webadmin-http-client/src/test/java/org/apache/james/webadmin/httpclient/UserClientTest.java
  AL    server/protocols/webadmin/webadmin-http-client/src/test/java/org/apache/james/webadmin/httpclient/QuotaClientTest.java
  AL    server/protocols/webadmin/webadmin-http-client/pom.xml
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/services/TasksCleanupService.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/tasks/TasksCleanupTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/tasks/TasksCleanupTaskDTO.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/tasks/TasksCleanupTask.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/TasksCleanupRoutes.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMailboxMergingRoutes.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/SolveMailboxInconsistenciesRequestToTask.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/RecomputeMailboxCountersRequestToTask.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/RunningOptionsParser.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMigrationRoutes.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/SolveMessageInconsistenciesRequestToTask.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/dto/CassandraVersionRequest.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/dto/WebAdminMigrationTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/dto/CassandraVersionResponse.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/dto/MailboxMergingRequest.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/routes/CassandraMigrationRoutesTest.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/routes/SolveMessageInconsistenciesRequestToTaskTest.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/routes/SolveMailboxInconsistenciesRequestToTaskTest.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/routes/TasksCleanupRoutesTest.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/routes/RecomputeMailboxCountersRequestToTaskTest.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/dto/VersionRequestTest.java
  AL    server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/dto/WebAdminMigrationTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-cassandra/pom.xml
  AL    server/protocols/webadmin/pom.xml
  AL    server/protocols/webadmin/webadmin-cassandra-data/src/main/java/org/apache/james/webadmin/service/CassandraMappingsSolveInconsistenciesTask.java
  AL    server/protocols/webadmin/webadmin-cassandra-data/src/main/java/org/apache/james/webadmin/service/CassandraMappingsService.java
  AL    server/protocols/webadmin/webadmin-cassandra-data/src/main/java/org/apache/james/webadmin/routes/CassandraMappingsRoutes.java
  AL    server/protocols/webadmin/webadmin-cassandra-data/src/test/java/org/apache/james/webadmin/service/CassandraMappingsSolveInconsistenciesTaskTest.java
  AL    server/protocols/webadmin/webadmin-cassandra-data/src/test/java/org/apache/james/webadmin/routes/CassandraMappingsRoutesTest.java
  AL    server/protocols/webadmin/webadmin-cassandra-data/pom.xml
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/AuthenticationFilter.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/JwtFilter.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/NoAuthenticationFilter.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/PublicRoutes.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/FixedPortSupplier.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminServer.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/tasks/TaskFromRequestRegistry.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/tasks/TaskFromRequest.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/tasks/TaskRegistrationKey.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/tasks/TaskIdDto.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/TlsConfiguration.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/RequestLogger.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/LoggingRequestFilter.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCFilter.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCCleanupFilter.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/LoggingResponseFilter.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/RequestId.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/JsonTransformer.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/JsonTransformerModule.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/ParametersExtractor.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/ErrorResponder.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/JsonExtractor.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/Responses.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/utils/JsonExtractException.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/PortSupplier.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/routes/CORSRoute.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/routes/HealthCheckRoutes.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/routes/TasksRoutes.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/ExecutionDetailsDto.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/HealthCheckExecutionResultDto.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/HealthCheckDto.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/DTOModuleInjections.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/HeathCheckAggregationExecutionResultDto.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/Constants.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/RandomPortSupplier.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/CORSFilter.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/metric/MetricPreFilter.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/metric/MetricPostFilter.java
  AL    server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/Routes.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/authentication/JwtFilterTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/WebAdminUtils.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/tasks/TaskFromRequestRegistryTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/tasks/TaskFromRequestTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/tasks/TaskRegistrationKeyTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/FixedPortSupplierTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/mdc/RequestIdTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/WebAdminUtilsTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/utils/ParametersExtractorTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/utils/ErrorResponderTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/utils/JsonExtractorTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/WebAdminServerTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/WebAdminConfigurationTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/HealthCheckRoutesTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/ErrorRoutes.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/ErrorRoutesTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/RandomPortSupplierTest.java
  AL    server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/TlsConfigurationTest.java
  AL    server/protocols/webadmin/webadmin-core/pom.xml
  AL    server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/service/RepublishNotProcessedMailsTaskDTO.java
  AL    server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/service/BrowseStartUpdateTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/service/RepublishNotProcessedMailsTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/service/BrowseStartUpdateTaskDTO.java
  AL    server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/service/BrowseStartUpdateTask.java
  AL    server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/service/RepublishNotprocessedMailsTask.java
  AL    server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/routes/BrowseStartUpdateTaskRegistration.java
  AL    server/protocols/webadmin/webadmin-rabbitmq/src/main/java/org/apache/james/webadmin/routes/RabbitMQMailQueuesRoutes.java
  AL    server/protocols/webadmin/webadmin-rabbitmq/src/test/java/org/apache/james/webadmin/service/RepublishNotprocessedMailsTaskTest.java
  AL    server/protocols/webadmin/webadmin-rabbitmq/src/test/java/org/apache/james/webadmin/routes/RabbitMQMailQueuesRoutesTest.java
  AL    server/protocols/webadmin/webadmin-rabbitmq/pom.xml
  AL    server/protocols/webadmin/webadmin-protocols/src/main/java/org/apache/james/protocols/webadmin/ProtocolServerRoutes.java
  AL    server/protocols/webadmin/webadmin-protocols/pom.xml
  AL    server/protocols/webadmin/webadmin-mail-over-web/src/main/java/org/apache/james/webadmin/routes/TransferEmailRoutes.java
 !????? server/protocols/webadmin/webadmin-mail-over-web/src/test/resources/message/rfc822/message.eml
 !????? server/protocols/webadmin/webadmin-mail-over-web/src/test/resources/message/rfc822/message-without-from.eml
 !????? server/protocols/webadmin/webadmin-mail-over-web/src/test/resources/message/rfc822/message-without-tos.eml
  AL    server/protocols/webadmin/webadmin-mail-over-web/src/test/java/org/apache/james/routes/TransferEmailRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mail-over-web/pom.xml
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/WebAdminDeletedMessagesVaultRestoreTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTask.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRoutes.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTask.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/ExportService.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/RestoreService.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/WebAdminDeletedMessagesVaultDeleteTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTask.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskAdditionalInformationDTO.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskAdditionalInformationDTO.java
  B     server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/resources/query/has_no_attachment.json
  B     server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/resources/query/string_equals.json
  B     server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/resources/query/string_equals_ignore_case.json
  B     server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/resources/query/zoned_date_time_before_or_equals.json
  B     server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/resources/query/string_contains.json
  B     server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/resources/query/has_sender.json
  B     server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/resources/query/zoned_date_time_after_or_equals.json
  B     server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/resources/query/contains_origin_mailbox.json
  B     server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/resources/query/has_attachment.json
  B     server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/resources/query/contains_recipient.json
  B     server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/resources/query/string_contains_ignore_case.json
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/WebadminApiQuerySerializationContractTest.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/WebAdminDeletedMessagesVaultDeleteTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRoutesTest.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/WebAdminDeletedMessagesVaultRestoreTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskSerializationTest.java
  AL    server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml
 !????? server/protocols/jmap-draft/doc/annotation.css
 !????? server/protocols/jmap-draft/doc/Dockerfile
 !????? server/protocols/jmap-draft/doc/specs/client-guide/jmap-client-guide.mdwn
 !????? server/protocols/jmap-draft/doc/specs/home/faq.mdwn
 !????? server/protocols/jmap-draft/doc/specs/software/software.mdwn
 !????? server/protocols/jmap-draft/doc/specs/server-guide/jmap-server-guide.mdwn
  AL    server/protocols/jmap-draft/doc/specs/LICENSE.md
  N     server/protocols/jmap-draft/doc/specs/README
 !????? server/protocols/jmap-draft/doc/specs/spec/vacationresponse.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/searchsnippet.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/push.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/calendarevent.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/thread.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/mailbox.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/message.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/account.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/contactgroup.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/calendar.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/contactlist.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/contact.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/upload.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/authentication.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/messagelist.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/apimodel.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/calendareventlist.mdwn
 !????? server/protocols/jmap-draft/doc/specs/spec/datamodel.mdwn
 !????? server/protocols/jmap-draft/doc/mkdocs.yml
 !????? server/protocols/jmap-draft/doc/README.md
 !????? server/protocols/jmap-draft/src/main/resources/jwt-public.der
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListener.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/event/PropagateLookupRightListener.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/event/PopulateEmailQueryViewListener.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/json/ObjectMapperFactory.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/json/MultipleClassesDeserializer.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/json/FieldNamePropertyFilter.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/json/OptionalZonedDateTimeSerializer.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/json/RoleMixIn.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/json/OptionalZonedDateTimeDeserializer.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/json/FilterDeserializer.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/json/MultipleObjectMapperBuilder.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/MalformedContinuationTokenException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/BlobNotFoundException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/MailboxNotOwnedException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/InvalidDraftKeywordsException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/MessageNotFoundException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/SystemMailboxNotUpdatableException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/InvalidOriginMessageForMDNException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/MailboxHasChildException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/AttachmentsNotFoundException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/JmapFieldNotSupportedException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/InvalidMailboxForCreationException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/InternalErrorException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/BadRequestException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/SizeExceededException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/MailboxParentNotFoundException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/exceptions/InvalidOutboxMoveException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/send/MailMetadata.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/send/PostDequeueDecoratorFactory.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/send/exception/MessageIdNotFoundException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/send/exception/MailShouldBeInOutboxException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/send/PostDequeueDecorator.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/send/MailSpool.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/ContinuationToken.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/SetMailboxesRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/ContinuationTokenRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/UpdateMessagePatch.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/JmapMDN.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/CreationMessage.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/GetVacationRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/MessageProperties.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Emailer.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/PreviewDTO.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/deserialization/JmapRuleDTODeserializer.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/BlobId.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Header.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Number.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/FilterOperator.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/SetVacationRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/MailboxProperty.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/GetMailboxesRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/MailboxCreationId.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/GetMessagesResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/ContinuationTokenResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/GetMessagesRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/FilterCondition.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/GetMessageListRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/MDNDisposition.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/SetMessagesResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/VacationResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/InvocationResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/SetMessagesError.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/SetError.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/GetFilterRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/JmapRuleDTO.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/GetMailboxesResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/SetMessagesRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/SetFilterResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Operator.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/CreationMessageId.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Filter.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/MailboxFactory.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/SetMailboxesResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/EnvelopeUtils.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Property.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/AttachmentAccessToken.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/AccessTokenResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/SetVacationResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/SignedExpiringToken.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/mailbox/Rights.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/mailbox/MailboxUpdateRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/mailbox/Mailbox.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/mailbox/MailboxNamespace.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/mailbox/Quotas.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/mailbox/MailboxCreateRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/mailbox/SortOrder.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/GetVacationResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/InvocationRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/GetMessageListResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/SetFilterRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/AuthenticatedRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/MethodCallId.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Keywords.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/OldKeyword.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/UploadResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Keyword.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/MessageMetadataView.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/SubMessage.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/MessageFullViewFactory.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/MessageView.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/MessageFullView.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/MetaMessageViewFactory.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/MessageFastView.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/MessageHeaderViewFactory.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/MessageFastViewFactory.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/MessageMetadataViewFactory.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/MessageViewFactory.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/message/view/MessageHeaderView.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Attachment.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/AccessTokenRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/EndPointsResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/Blob.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/model/GetFilterResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/JMAPDraftConfiguration.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/api/AccessTokenManager.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/api/SimpleTokenFactory.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/api/SimpleTokenManager.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMessagesMethod.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMessagesCreationProcessor.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/ErrorResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/GetVacationResponseMethod.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/ValueWithId.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMailboxesUpdateProcessor.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/MessageSender.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetVacationResponseMethod.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMailboxesMethod.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/MessageAppender.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/GetFilterMethod.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SendMDNProcessor.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/RequestHandler.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/GetMailboxesMethod.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMessagesUpdateProcessor.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/JmapResponse.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMailboxesDestructionProcessor.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/BlobManager.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/GetMessagesMethod.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/Validator.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/ReferenceUpdater.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/MailboxSendingNotAllowedException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/JmapResponseWriter.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/GetMessageListMethod.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/JmapRequest.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMessagesProcessor.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/MailboxInvalidMessageCreationException.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/UpdateMessagePatchConverter.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/JmapRequestParserImpl.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetFilterMethod.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMailboxesProcessor.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/MIMEMessageConverter.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMessagesDestructionProcessor.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/SetMailboxesCreationProcessor.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/JmapRequestParser.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/BlobManagerImpl.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/ValidationResult.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/JmapResponseWriterImpl.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/UpdateMessagePatchValidator.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/Method.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/SortingHierarchicalCollections.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/SortConverter.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/DependencyGraph.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/KeywordsCombiner.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/DownloadPath.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/FilterToCriteria.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/AccountIdUtil.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/MailboxUtils.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/quotas/QuotaLoader.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/quotas/QuotaLoaderWithDefaultPreloaded.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/quotas/DefaultQuotaLoader.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/utils/JsoupHtmlTextExtractor.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/crypto/SignedTokenFactory.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/crypto/SignedTokenManager.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/crypto/SignatureHandler.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/crypto/JamesSignatureHandler.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/crypto/AsymmetricKeys.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/crypto/AccessTokenManagerImpl.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/crypto/SecurityKeyLoader.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachment.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/ExtractMDNOriginalJMAPMessageId.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/filter/ContentMatcher.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/filter/RuleMatcher.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/filter/MailMatcher.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/filter/ActionApplier.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/filter/HeaderExtractor.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/filter/JMAPFiltering.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/mailet/SentByJmap.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/UploadRoutes.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/LoggingHelper.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/JMAPApiRoutes.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/UserProvisioner.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/AccessTokenAuthenticationStrategy.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/DownloadRoutes.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/DefaultMailboxesProvisioner.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/QueryParameterAccessTokenAuthenticationStrategy.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/InjectionKeys.java
  AL    server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/http/AuthenticationRoutes.java
 !????? server/protocols/jmap-draft/src/test/resources/noReplyTo.eml
  B     server/protocols/jmap-draft/src/test/resources/json/subMessage.json
  B     server/protocols/jmap-draft/src/test/resources/json/message.json
 !????? server/protocols/jmap-draft/src/test/resources/inlineAttachment.eml
 !????? server/protocols/jmap-draft/src/test/resources/spamMail.eml
 !????? server/protocols/jmap-draft/src/test/resources/key.pub
 !????? server/protocols/jmap-draft/src/test/resources/fullMessage.eml
 !????? server/protocols/jmap-draft/src/test/resources/example.html
 !????? server/protocols/jmap-draft/src/test/resources/private.nopass.key
  B     server/protocols/jmap-draft/src/test/resources/keystoreJava11
 !????? server/protocols/jmap-draft/src/test/resources/oneAttachment.eml
  B     server/protocols/jmap-draft/src/test/resources/keystore
 !????? server/protocols/jmap-draft/src/test/resources/emptyBodyMessageWithOneAttachment.eml
  B     server/protocols/jmap-draft/src/test/resources/keystoreJava7
  B     server/protocols/jmap-draft/src/test/resources/badAliasKeystore
 !????? server/protocols/jmap-draft/src/test/resources/calendar.eml
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListenerTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/event/PopulateEmailQueryViewListenerTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/json/OperatorSerializeDeserializeTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/json/ObjectMapperFactoryTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/json/MultipleObjectMapperTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/json/ParsingWritingObjects.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/json/ParsingWritingObjectsTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/JMAPDraftConfigurationTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/send/MailMetadataTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/send/MailSpoolTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/send/PostDequeueDecoratorTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/UploadResponseTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/KeywordsTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/GetMessageListRequestTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/SetMailboxesResponseTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/MailboxPropertyTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/SetVacationResponseTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/InvocationResponseTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/SetVacationRequestTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/SetMessagesRequestTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/FilterTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/FilterConditionTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/JmapMDNTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/FilterOperatorTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/AttachmentAccessTokenTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/CreationMessageTest.java
 !????? server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/OldKeywordTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/MethodCallIdTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/SetErrorTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/GetVacationRequestTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/BlobTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/GetMailboxMessageListResponseTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/ContinuationTokenTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/HeaderTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/VacationResponseTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/MessagePropertiesTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/InvocationRequestTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/UpdateMessagePatchTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/GetMailboxesRequestTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/MessagePropertyTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/MessageHeaderPropertyTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/mailbox/QuotaIdTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/mailbox/MailboxCreateRequestTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/mailbox/MailboxNamespaceTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/mailbox/SortOrderTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/mailbox/MailboxUpdateRequestTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/mailbox/RightsTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/mailbox/MailboxTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/PreviewDTOTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/GetMessagesRequestTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/SetMessagesResponseTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/BlobIdTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/KeywordTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/AttachmentTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/MailboxFactoryTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/GetVacationResponseTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/SetMailboxesRequestTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageFastViewFactoryTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageMetadataViewFactoryTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/SubMessageTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageHeaderViewFactoryTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageFullViewFactoryTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageViewFixture.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageFullViewTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/EmailerTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/NumberTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/MDNDispositionTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/RequestHandlerTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/MessageSenderTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/GetMailboxesMethodTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/BlobManagerImplTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/JmapResponseWriterImplTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/SetVacationResponseMethodTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/UpdateMessagePatchConverterTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/SetMessagesCreationProcessorTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/MIMEMessageConverterTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/UpdateMessagePatchValidatorTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/GetMessagesMethodTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/SetMessagesUpdateProcessorTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/SetMailboxesCreationProcessorTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/ErrorResponseTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/SetMailboxesUpdateProcessorTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/GetVacationResponseMethodTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/SetMailboxesMethodTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/JmapRequestParserImplTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/FixedDateZonedDateTimeProvider.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/utils/DependencyGraphTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/utils/SortingHierarchicalCollectionsTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/utils/FilterToCriteriaTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/utils/KeywordsCombinerTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/utils/JsoupHtmlTextExtractorTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/utils/MailboxUtilsTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/utils/SortConverterTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/JamesSignatureHandlerFixture.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/SignedTokenManagerTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/SecurityKeyLoaderTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/JamesSignatureHandlerTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/AccessTokenManagerImplTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/crypto/SignedTokenFactoryTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/BeansTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachmentTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/mailet/SentByJmapTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/mailet/filter/JMAPFilteringFixture.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/mailet/filter/JMAPFilteringExtension.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/mailet/filter/JMAPFilteringTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/PreviewFactoryTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/http/JWTAuthenticationStrategyTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/http/AccessTokenAuthenticationStrategyTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/http/XUserAuthenticationStrategyTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/http/UserProvisionerTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/http/DownloadRoutesTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/http/QueryParameterAccessTokenAuthenticationStrategyTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/http/AuthenticatorTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/http/DefaultMailboxesProvisionerThreadTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/http/JMAPApiRoutesTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/http/DefaultMailboxesProvisionerTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/http/UserProvisionerThreadTest.java
  AL    server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/MessageFastViewProjectionItemFactoryTest.java
  AL    server/protocols/jmap-draft/pom.xml
 !????? server/protocols/jmap-rfc-8621/doc/specs/rfc/src/jmap.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/rfc/src/quotas.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/rfc/src/mail.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/README.md
  AL    server/protocols/jmap-rfc-8621/doc/specs/LICENSE.md
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/message.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/mailbox.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/identity.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/identitySortOrder.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/messagesubmission.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/rights.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/securityconsiderations.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/thread.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/ianaconsiderations.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/searchsnippet.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/vacationresponse.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/delegation.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/mail/intro.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/custom-quotas/quotas.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/securityconsiderations.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/ianaconsiderations.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/quota.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/intro.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/push.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/securityconsiderations.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/session.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/ianaconsiderations.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/binary.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/api.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/intro.mdown
 !????? server/protocols/jmap-rfc-8621/doc/specs/spec/authentication.mdown
 !????? server/protocols/jmap-rfc-8621/doc/README.md
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/EmailQuerySerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/ResponseSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/PushSubscriptionSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/VacationSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/QuotaSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/MailboxSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/PushSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/package.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/EmailSetSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/MailboxQuerySerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/ThreadSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/IdentitySerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/BackReferenceDeserializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/EmailGetSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/UploadSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/EmailSubmissionSetSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/DelegationSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/MDNSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxFactory.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/IdentitySet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxGet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/EmailGet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/EmailAddressGroup.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/Keywords.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/EmailQuery.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/EmailSubmissionSet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/BlobId.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxQuery.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/Mailbox.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/EmailBodyPart.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/IdentityGet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/EmailSet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/Thread.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/EmailBodyValue.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/Rights.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MDN.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/IdentityChanges.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/EmailHeader.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/Email.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MDNSend.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxQueryChanges.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/KeywordsCombiner.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/EmailParse.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxSet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/EmailImport.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/Keyword.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MailboxNamespace.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/MDNParse.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/mail/Quotas.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/pushsubscription/WebPushClient.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/pushsubscription/PushRequest.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/pushsubscription/PushListener.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/DelegateGetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxSetCreatePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/DelegatedAccountDeletePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/IdentityChangesMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxQueryMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/QuotaChangesMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/IdentitySetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/ThreadChangesMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/CoreEchoMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/EmailSetUpdatePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/EmailSetDeletePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/PushSubscriptionUpdatePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/EmailQueryMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/DelegateSetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/DelegateSetCreatePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/ThreadGetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/IdentitySetCreatePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/EmailSubmissionSetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/PushSubscriptionSetDeletePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxQueryChangesMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/EmailGetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/VacationResponseSetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/PushSubscriptionSetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/PushSubscriptionGetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/QuotaQueryMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/DelegateSetDeletePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/IdentityGetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxSetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MDNParseMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/VacationResponseGetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/Method.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxGetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxSetDeletePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/EmailSetCreatePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/package.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/DelegatedAccountGetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/EmailSetMethod.scala
 !????? server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/PushSubscriptionSetCreatePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/IdentitySetDeletePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/QuotaGetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxChangesMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/EmailImportMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/DelegatedAccountSetMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MailboxSetUpdatePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/EmailParseMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/IdentitySetUpdatePerformer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/EmailChangesMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/MDNSendMethod.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/vacation/VacationResponseSet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/vacation/VacationResponseGet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/vacation/VacationResponse.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/SessionTranslator.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/Session.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/Invocation.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/RequestLevelErrorType.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/SetError.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/Id.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/Query.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/PushSubscriptionSet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/UTCDate.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/Capabilities.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/ProblemDetails.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/PushSubscriptionGet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/UnsignedInt.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/RequestObject.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/ResponseObject.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/WebSocketTransport.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/Properties.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/JmapRfc8621Configuration.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/core/Capability.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/delegation/DelegateSet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/delegation/Delegation.scala
 !????? server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/delegation/DelegatedAccountSet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/delegation/DelegateGet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/delegation/DelegatedAccountGet.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/http/MailboxesProvisioner.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/http/UserProvisioning.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/http/BasicAuthenticationStrategy.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/utils/quotas/QuotaReader.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/utils/quotas/QuotaLoaderWithPreloadedDefault.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/utils/quotas/QuotaLoader.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/utils/search/MailboxFilter.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/JMAPApiRoutes.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/SessionRoutes.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/DownloadRoutes.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/SessionSupplier.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/JmapApi.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/WebSocketRoutes.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/ProcessingContext.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/UploadRoutes.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/routes/EventSourceRoutes.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/change/AccountIdRegistrationKey.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/change/EventDTOModule.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/change/JmapEventSerializer.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/change/StateChangeListener.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/change/MailboxChangeListener.scala
  AL    server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/change/StateChange.scala
  AL    server/protocols/jmap-rfc-8621/src/main/java/org/apache/james/jmap/mime4j/JamesBodyDescriptorBuilder.java
  AL    server/protocols/jmap-rfc-8621/src/main/java/org/apache/james/jmap/mime4j/MaximalBodyDescriptor.java
  AL    server/protocols/jmap-rfc-8621/src/main/java/org/apache/james/jmap/http/rfc8621/InjectionKeys.java
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/EmailSubmissionSetSerializerTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/ResponseObjectSerializationTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/JsErrorSerializationTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/MailboxSerializationTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/VacationResponseSerializationTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/RequestObjectSerializationTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/PushSerializerTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/BackReferenceTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/VacationResponseGetSerializationTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/MDNSerializationTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/MailboxGetSerializationTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/SessionSerializationTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/Fixture.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/EmailSetSerializerTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/PushSubscriptionSerializerTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/json/QuotaSerializerTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/mail/RightsTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/mail/MailboxTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/pushsubscription/PushSubscriptionSetCreateProcessorTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/pushsubscription/PushServerExtension.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/pushsubscription/PushRequestTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/pushsubscription/SafeWebPushClientContract.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/pushsubscription/PushListenerTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/pushsubscription/WebPushClientContract.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/method/CoreEchoMethodTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/core/UTCDateTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/core/KeywordsTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/core/JmapUrlEndpointResolverTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/core/KeywordsCombinerTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/core/MailboxValidationTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/core/KeywordTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/http/UserProvisioningTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/http/MailboxesProvisionerTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/http/UserCredentialParserTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/routes/SessionRoutesTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/routes/SessionSupplierTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/routes/JMAPApiRoutesTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/change/TypeStateFactoryTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/change/MailboxChangeListenerTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/change/AccountIdRegistrationKeyTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/change/StateChangeEventSerializerTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/change/StateChangeListenerTest.scala
  AL    server/protocols/jmap-rfc-8621/src/test/java/org/apache/james/jmap/pushsubscription/DefaultWebPushClientTest.java
  AL    server/protocols/jmap-rfc-8621/src/test/java/org/apache/james/jmap/pushsubscription/DefaultWebPushClientServerSideForgeryTest.java
  AL    server/protocols/jmap-rfc-8621/pom.xml
  AL    server/protocols/protocols-smtp/src/main/resources/META-INF/spring/smtpserver-context.xml
  AL    server/protocols/protocols-smtp/src/main/resources/smtpserver.xml
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/MailPriorityHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/futurerelease/FutureReleaseParameters.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/futurerelease/FutureReleaseMailParameterHook.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/futurerelease/FutureReleaseEHLOHook.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/dsn/DSNMessageHook.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/dsn/DSNEhloHook.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/dsn/DSNMailParameterHook.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/dsn/DSNRcptParameterHook.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationHook.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesWelcomeMessageHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesRcptCmdHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SmtpMetrics.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServerFactory.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SmtpMetricsImpl.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServerMBean.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelInboundHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/SMTPCommandHandlerStats.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/CommandHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/SMTPCommandHandlerStatsMBean.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/HookStatsMBean.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/JMXHandlersLoader.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/ConnectHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/LineHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/HookResultJMXMonitor.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/jmx/HookStats.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/CoreCmdHandlerLoader.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/model/ProtocolMailAddressAdapter.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AddDefaultAttributesMessageHook.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AuthRequiredToRelayRcptHook.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SMTPConstants.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/TLDLookup.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesMailCmdHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/DNSRBLHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ReverseEqualsEhloHeloHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIScanner.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidSenderDomainHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/MaxRcptHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SpamTrapHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ResolvableEhloHeloHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/MaxUnknownCmdHandler.java
  AL    server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesMessageHook.java
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-requireSSL.xml
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-disabled-feature.xml
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-no-plain.xml
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-noauth.xml
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-proxy.xml
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-tls.xml
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-dsn.xml
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-authAnnounceSometimeNotMatching.xml
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-futurerelease.xml
  B     server/protocols/protocols-smtp/src/test/resources/keystore
 !????? server/protocols/protocols-smtp/src/test/resources/log4j.xml
  B     server/protocols/protocols-smtp/src/test/resources/test_keystore
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-authAnnounceAlways.xml
 !????? server/protocols/protocols-smtp/src/test/resources/smtpserver-advancedSecurity.xml
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-authAnnounceNever.xml
  AL    server/protocols/protocols-smtp/src/test/resources/smtpserver-authAnnounceSometimeMatching.xml
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTestSystem.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/futurerelease/FutureReleaseParametersTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPProxyProtocolTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/DSNTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPSaslTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/DisableFeatureTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/FutureReleaseTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SPFHandlerTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPSTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SetMimeHeaderHandlerTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPTestConfiguration.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/POP3BeforeSMTPHandlerTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
  AL    server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/AuthAnnounceTest.java
  AL    server/protocols/protocols-smtp/src/reporting-site/site.xml
  AL    server/protocols/protocols-smtp/pom.xml
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/listeners.xml
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/dnsservice.xml
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/lmtpserver.xml
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/mailetcontainer.xml
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/imapserver.xml
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/managesieveserver.xml
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/domainlist.xml
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/mailrepositorystore.xml
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/usersrepository.xml
  B     server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/keystore
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/smtpserver.xml
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/resources/pop3server.xml
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryCorsHeaderAPITest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryQuotaMailingTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryVacationRelayIntegrationTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryFilterTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemorySetMailboxesMethodCucumberTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemorySetMessagesMethodCucumberTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryDownloadCucumberTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryIMAPKeywordsInconsistenciesTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryUploadCucumberTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryIMAPSetMessagesCompatibilityTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemorySharingTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryGetMessagesMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryProvisioningTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMailboxesMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetVacationResponseMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMessagesMethodReRoutingTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryGetMessageListMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryGetMailboxesMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySendMDNMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryModularizeJmapDraftAuthenticationStrategyTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMessagesMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMessagesOutboxFlagUpdateTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryGetVacationResponseMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryJmapAuthenticationTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryVacationIntegrationTest.java
  AL    server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml
  AL    server/protocols/jmap-draft-integration-testing/pom.xml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/twoSameAttachments.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlMail.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlWithLongAndComplicatedContent.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/ics_in_header.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlBodyWithManyEmptyTags.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/mailWithInlinedAttachmentAndBlankCid.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/windows1252charset.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/embeddedMultipartWithInlineTextAttachment.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/mailWithRecipients.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/noTextBodyButHtmlBody.eml
  B     server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/attachment.pdf
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneInlinedImageWithoutContentDisposition.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/twoAttachments.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneAttachment.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/multipartRelated.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneInlinedImage.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/sameInlinedImages.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/inlinedWithoutContentID.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlAndTextMultipartWithOneAttachment.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/longLine.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/textInMainMultipartHtmlInInnerMultipart.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/twoAttachmentsTextPlain.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneAttachment-part1.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/inlinedWithoutContentDisposition.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/calendar.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/inlinedMultipart.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/mailWithInlinedAttachmentButNoCid.eml
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneAttachment-part2.eml
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/SetMessages.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/ImapSetMessagesMailboxesUpdatesCompatibility.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/DownloadGet.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/DownloadAndSharing.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/GetMessageAndSharing.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/SharingMailboxWithOtherDomain.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/GetMessageListAndSharing.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/MoveMailboxAndSharing.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/SetFlagAndSharing.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/SharingParentMailboxWithAndWithoutChildren.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/KeywordsConsistencyOnDelegationMailbox.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/MoveMessageAndSharing.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/SharingChildrenWithoutSharingParent.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/MailboxDeletionAndSharing.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/SetMessagesOnSharedMailbox.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/CopyAndSharing.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/RenamingMailboxAndSharing.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/sharing/MailboxCreationAndSharing.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/DownloadEndpoint.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/UploadEndpoint.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/DownloadPost.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/ImapKeywordsConsistency.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/GetMessages.feature
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/cucumber/MailboxModification.feature
 !????? server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/attachment/nonIndexableAttachment.html
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/MessageAppender.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/AllowAuthenticationStrategy.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/categories/CassandraAndOpenSearchCategory.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/categories/EnableCucumber.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/categories/BasicFeature.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/MockSmtpTestRule.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/UserCredentials.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesOutboxFlagUpdateTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesMethodReRoutingTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMailboxesMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetVacationResponseTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/FilterTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/util/ObjectFromString.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/util/IntegerFromString.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/util/BooleanFromString.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/util/ObjectFromStringExtractor.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/util/TableRow.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/util/StringFromString.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/ContentType.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/MainStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/StringListToFlagsTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/SetMessagesMethodStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/StringListToFlags.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMailboxesMethodStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessagesMethodStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/UploadStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/DownloadStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/SetMailboxesMethodStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/UserStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/ImapStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessageListMethodStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/HttpClient.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/MessageIdStepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SendMDNMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/QuotaMailingTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetVacationResponseTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/CorsHeaderAPITest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMailboxesMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/ContainerTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationIntegrationTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/DenyAuthenticationStrategy.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/FixedDateZonedDateTimeProvider.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/ModularizeJmapDraftAuthenticationStrategyTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/JmapURIBuilder.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/VacationRelayIntegrationTest.java
  AL    server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/pom.xml
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/resources/listeners.xml
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/resources/dnsservice.xml
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/resources/lmtpserver.xml
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/resources/mailetcontainer.xml
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/resources/imapserver.xml
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/resources/domainlist.xml
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/resources/mailrepositorystore.xml
  B     server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/resources/keystore
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/resources/smtpserver.xml
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/resources/pop3server.xml
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetVacationResponseTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3FilterTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SendMDNMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetMessagesMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3JmapAuthenticationTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetMailboxesMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetMessageListMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3VacationIntegrationTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQSetMailboxesMethodCucumberTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQIMAPSetMessagesCompatibilityTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQGetMessagesMethodTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQUploadCucumberTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQMessageSharingTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/CucumberOpenSearchSingleton.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQDownloadCucumberTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQMailboxSharingTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/CucumberRabbitMQSingleton.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQAwsS3Stepdefs.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQIMAPKeywordsInconsistenciesTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/CucumberCassandraSingleton.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/CucumberAwsS3Singleton.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQSetMessagesMethodCucumberTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3QuotaMailingTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3ProvisioningTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3VacationRelayIntegrationTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetVacationResponseTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetMessagesMethodReRoutingTest.java
  AL    server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetMailboxesMethodTest.java
 !????? server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/LegacyJavaEncryptionFactory.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/POP3BeforeSMTPHelper.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractProtocolAsyncServer.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/CertificateReloadable.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractServerFactory.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractLineHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ServerMBean.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/CommandHandlerStatsMBean.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/LineHandlerStats.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/HandlerStatsMBean.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractConnectHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ConnectHandlerStats.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerStats.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/handler/ProtocolHandlerLoader.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/handler/HandlersPackage.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/SslConfig.java
  AL    server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/ProtocolHandlerChainImpl.java
 !????? server/protocols/protocols-library/src/test/resources/testServerTLSDefaultAuth.xml
 !????? server/protocols/protocols-library/src/test/resources/testServerDisabled.xml
 !????? server/protocols/protocols-library/src/test/resources/testServerStartTLS.xml
 !????? server/protocols/protocols-library/src/test/resources/testServerTLSNeedAuth.xml
 !????? server/protocols/protocols-library/src/test/resources/testServerDefaults.xml
  B     server/protocols/protocols-library/src/test/resources/keystore
 !????? server/protocols/protocols-library/src/test/resources/testServerPlain.xml
 !????? server/protocols/protocols-library/src/test/resources/testServerTLS.xml
  AL    server/protocols/protocols-library/src/test/java/org/apache/james/protocols/lib/mock/ConfigLoader.java
  AL    server/protocols/protocols-library/src/test/java/org/apache/james/protocols/lib/mock/MockProtocolHandlerLoader.java
  AL    server/protocols/protocols-library/src/test/java/org/apache/james/protocols/lib/AbstractConfigurableAsyncServerTest.java
  AL    server/protocols/protocols-library/src/reporting-site/site.xml
  AL    server/protocols/protocols-library/pom.xml
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPUrls.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/Endpoint.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPRoutesHandler.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/exceptions/UnauthorizedException.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/exceptions/NoAuthorizationSuppliedException.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/VersionParser.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/HttpConstants.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/Version.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPConfiguration.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/http/AuthenticationStrategy.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/http/AuthenticationScheme.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/http/AuthenticationChallenge.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/http/Authenticator.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/http/AuthenticateHeader.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/http/XUserAuthenticationStrategy.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/http/JWTAuthenticationStrategy.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/UriMatcher.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServer.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPRoute.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPRoutes.java
  AL    server/protocols/jmap/src/main/java/org/apache/james/jmap/InjectionKeys.java
  AL    server/protocols/jmap/src/test/java/org/apache/james/jmap/FixedUriMatcherTest.java
  AL    server/protocols/jmap/src/test/java/org/apache/james/jmap/EndpointTest.java
  AL    server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPServerTest.java
  AL    server/protocols/jmap/src/test/java/org/apache/james/jmap/VersionTest.java
  AL    server/protocols/jmap/src/test/java/org/apache/james/jmap/VersionParserTest.java
  AL    server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPConfigurationTest.java
  AL    server/protocols/jmap/pom.xml
  AL    server/protocols/protocols-managesieve/src/main/resources/META-INF/spring/managesieveserver-context.xml
  AL    server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveMDCContext.java
  AL    server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/NettyConstants.java
  AL    server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServerFactory.java
  AL    server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServerMBean.java
  AL    server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveChannelUpstreamHandler.java
  AL    server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServer.java
  AL    server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ChannelManageSieveResponseWriter.java
 !????? server/protocols/protocols-managesieve/pom.xml
  AL    server/protocols/protocols-lmtp/src/main/resources/META-INF/spring/lmtpserver-context.xml
  AL    server/protocols/protocols-lmtp/src/main/resources/lmtpserver.xml
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServerFactory.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPMetricsImpl.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServerMBean.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/jmx/CommandHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/jmx/JMXHandlersLoader.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/jmx/ConnectHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/jmx/LineHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/CoreCmdHandlerLoader.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/MailetContainerHandler.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/DataLineLMTPHandler.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/MailetContainerCmdHandlerLoader.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
  AL    server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/NoopJamesMessageHook.java
  AL    server/protocols/protocols-lmtp/src/test/resources/lmtp.xml
  AL    server/protocols/protocols-lmtp/src/test/resources/lmtpnormaldsn.xml
  AL    server/protocols/protocols-lmtp/src/test/resources/lmtpdsn.xml
  AL    server/protocols/protocols-lmtp/src/test/resources/lmtpmailet.xml
  AL    server/protocols/protocols-lmtp/src/test/java/org/apache/james/lmtpserver/LmtpServerTest.java
  AL    server/protocols/protocols-lmtp/src/reporting-site/site.xml
  AL    server/protocols/protocols-lmtp/pom.xml
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/webadmin.properties
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/listeners.xml
 !????? server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/jwt_publickey
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/dnsservice.xml
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/lmtpserver.xml
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/mailetcontainer.xml
 !????? server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/eml/emailWithOnlyAttachment.eml
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/imapserver.xml
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/managesieveserver.xml
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/domainlist.xml
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/mailrepositorystore.xml
  B     server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/keystore
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/smtpserver.xml
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/pop3server.xml
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/ConsistencyTasksIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQReindexingWithEventDeadLettersTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQAuthorizedEndpointsTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/MailReceptionCheckIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationImmutableTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQLinshareBlobExportMechanismIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQDeletedMessageVaultIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerBlobGCIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQQuotaSearchIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationImmutableTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/FixingGhostMailboxTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQForwardIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQUnauthorizedEndpointsTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQJwtFilterIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQFastViewProjectionHealthCheckIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/pom.xml
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationImmutableTest.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/AuthorizedEndpointsTest.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/ExportRequest.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/DeletedMessagesVaultRequests.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/LinshareBlobExportMechanismIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/JwtFilterIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/UnauthorizedModule.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/FastViewProjectionHealthCheckIntegrationContract.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/ForwardIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/QuotaSearchIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/UnauthorizedEndpointsTest.java
  AL    server/protocols/webadmin-integration-test/webadmin-integration-test-common/pom.xml
  AL    server/protocols/webadmin-integration-test/pom.xml
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/webadmin.properties
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/listeners.xml
 !????? server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/jwt_publickey
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/dnsservice.xml
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/lmtpserver.xml
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/mailetcontainer.xml
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/imapserver.xml
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/managesieveserver.xml
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/domainlist.xml
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/mailrepositorystore.xml
  B     server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/keystore
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/smtpserver.xml
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/pop3server.xml
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationImmutableTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryUnauthorizedEndpointsTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/vault/MemoryDeletedMessageVaultIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/vault/MemoryLinshareBlobExportMechanismIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryFastViewProjectionHealthCheckIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/DisabledMetricsTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryAuthorizedEndpointsTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryUsernameChangeIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryWebAdminServerIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryQuotaSearchIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryJwtFilterIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryForwardIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryUserDeletionIntegrationTest.java
  AL    server/protocols/webadmin-integration-test/memory-webadmin-integration-test/pom.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DelegatedAccountSetContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSetMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/UploadContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailGetMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxQueryChangesContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailParseMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DelegatedAccountGetMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EchoMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/QuotaQueryMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DelegateSetContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/QuotaChangesMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MDNParseMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/SessionRoutesContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/VacationResponseGetMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailQueryMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EventSourceContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/JmapRequests.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailChangesMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/BackReferenceContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/QuotaGetMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/VacationResponseSetMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxGetMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/PushSubscriptionSetMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/tags/CategoryTags.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/IdentityChangesContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/ProvisioningContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSubmissionSetMethodFutureReleaseContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/PushServerExtension.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailImportContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/probe/DelegationProbe.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/AuthenticationContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/ThreadChangesContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/custom/authentication/strategy/DenyAuthenticationStrategy.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/custom/authentication/strategy/ModularizeJmapRFC8621AuthenticationStrategyContract.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/custom/authentication/strategy/AllowAuthenticationStrategy.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/IdentitySetContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/WebPushContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSubmissionSetMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/CustomMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/package.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxQueryMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/ThreadGetContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/CustomNamespaceContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DownloadContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DelegateGetMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/IdentityGetContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/Fixture.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/DisabledCapabilityContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MDNSendMethodContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/WebSocketContract.scala
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxChangesMethodContract.scala
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/rtf.mp.alt.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/multipart_report.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/nested.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/inlined-single-attachment.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mdn_complex.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/related_in_alternative_multipart.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/alternative.cal.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/html.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/inlined-mixed.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/multipart_simple.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mdn_simple.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/multipart_complex.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/nested_mixed_alternative.txt
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mdn_relate_original_message.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/iso-8859-1.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mixed_alternative.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/alternative.eml
 !????? server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/nested2.eml
  AL    server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/pom.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/listeners.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/dnsservice.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/lmtpserver.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/mailetcontainer.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/imapserver.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/managesieveserver.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/domainlist.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/mailrepositorystore.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/usersrepository.xml
  B     server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/keystore
 !????? server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/jmap.properties
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/smtpserver.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/pop3server.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryMailboxGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDownloadTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEventSourceTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryMDNSendMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailSubmissionSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryQuotaQueryMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryQuotaChangesMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailChangesMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryVacationResponseSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryAuthenticationTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDisabledCapabilityTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryThreadGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryIdentityGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryModularizeJmapRFC8621AuthenticationStrategyContract.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailImportTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryIdentitySetMethodTests.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryIdentityChangesMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryMailboxChangesMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDelegatedAccountGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryWebSocketTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryVacationResponseGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryMailboxSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDelegateSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryProvisioningTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailParseMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEchoMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDelegatedAccountSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailQueryMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemorySessionRouteTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryPushSubscriptionSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryMailboxQueryMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryQuotaGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryBackReferenceTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailSubmissionSetMethodFutureReleaseTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryEmailQueryMethodNoViewTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryBase.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryCustomNamespaceTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryMailboxQueryChangesMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryMDNParseMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryThreadChangesMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryCustomMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryWebPushTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryDelegateGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/memory/MemoryUploadTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/pom.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/pom.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/listeners.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/dnsservice.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/lmtpserver.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/mailetcontainer.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/imapserver.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/domainlist.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/mailrepositorystore.xml
  B     server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/keystore
 !????? server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/jmap.properties
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/smtpserver.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/pop3server.xml
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedProvisioningTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedWebSocketTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEchoMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedSessionRouteTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEmailQueryMethodNoViewTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedDownloadTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedThreadGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedMailboxQueryChangesMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedMDNParseMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedVacationResponseGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedAuthenticationTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedCustomNamespaceTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedQuotaGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedIdentitySetTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/ReadLevelTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEmailSubmissionSetMethodtest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedDelegateSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedMailboxQueryMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedMailboxGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedIdentityGetTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedUploadTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEmailChangeMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedBase.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedDelegatedAccountSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedWebPushTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedQuotaQueryMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEmailQueryMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedQuotaChangesMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedPushSubscriptionSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedMailboxChangeMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedMDNSendMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEmailGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedDelegateGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEmailSubmissionSetMethodFutureReleaseTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEmailSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedMailboxSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedDelegatedAccountGetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedCustomMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedVacationResponseSetMethodTest.java
  AL    server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/PublicKeyProvider.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/JwksPublicKeyProvider.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/DefaultPublicKeyProvider.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/JwtConfiguration.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/JwtTokenVerifier.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/introspection/TokenIntrospectionResponse.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/introspection/TokenIntrospectionException.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/introspection/IntrospectionEndpoint.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/PublicKeyReader.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/userinfo/UserinfoResponse.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/userinfo/UserInfoCheckException.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/CheckTokenClient.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/DefaultCheckTokenClient.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/OidcJwtTokenVerifier.java
  AL    server/protocols/jwt/src/main/java/org/apache/james/jwt/MissingOrInvalidKeyException.java
  AL    server/protocols/jwt/src/test/java/org/apache/james/jwt/OidcJwtTokenVerifierTest.java
  AL    server/protocols/jwt/src/test/java/org/apache/james/jwt/JwksPublicKeyProviderTest.java
  AL    server/protocols/jwt/src/test/java/org/apache/james/jwt/OidcTokenFixture.java
  AL    server/protocols/jwt/src/test/java/org/apache/james/jwt/introspection/DefaultCheckTokenClientTest.java
  AL    server/protocols/jwt/src/test/java/org/apache/james/jwt/JwtConfigurationTest.java
  AL    server/protocols/jwt/src/test/java/org/apache/james/jwt/JwtTokenVerifierTest.java
  AL    server/protocols/jwt/src/test/java/org/apache/james/jwt/DefaultPublicKeyProviderTest.java
  AL    server/protocols/jwt/src/test/java/org/apache/james/jwt/PublicKeyReaderTest.java
  AL    server/protocols/jwt/pom.xml
  AL    server/protocols/protocols-pop3/src/main/resources/META-INF/spring/pop3server-context.xml
  AL    server/protocols/protocols-pop3/src/main/resources/pop3server.xml
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3ServerMBean.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3Server.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3ServerFactory.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/jmx/CommandHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/jmx/POP3CommandHandlerStatsMBean.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/jmx/POP3CommandHandlerStats.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/jmx/JMXHandlersLoader.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/jmx/ConnectHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/jmx/LineHandlerResultJMXMonitor.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/core/CoreCmdHandlerLoader.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/core/PassCmdHandler.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/mailbox/DefaultMailboxAdapterFactory.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/mailbox/MailboxAdapter.java
  AL    server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/mailbox/MailboxAdapterFactory.java
  B     server/protocols/protocols-pop3/src/test/resources/keystore
 !????? server/protocols/protocols-pop3/src/test/resources/pop3server.xml
  AL    server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
  AL    server/protocols/protocols-pop3/src/reporting-site/site.xml
  AL    server/protocols/protocols-pop3/pom.xml
  AL    server/protocols/protocols-imap4/src/main/resources/META-INF/spring/imapserver-context.xml
  AL    server/protocols/protocols-imap4/src/main/resources/imapserver.xml
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapMetrics.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/Linearalizer.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyConstants.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapHeartbeatHandler.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ChannelImapResponseWriter.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyStreamImapRequestLineReader.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyImapRequestLineReader.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapIdleStateHandler.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapRequestFrameDecoder.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapLineHandlerAdapter.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ReactiveThrottler.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableLineBasedFrameDecoderFactory.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/AbstractNettyImapRequestLineReader.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServerFactory.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/SwitchableLineBasedFrameDecoder.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/HAProxyMessageHandler.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServerMBean.java
  AL    server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslJKSNotFound.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslPEM.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthAllowed.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSSLCompress.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslDefaultJKS.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthEnabledWithoutRequireSSL.xml
 !????? server/protocols/protocols-imap4/src/test/resources/oauth.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsTrueAndStartSSLIsFalse.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthDisabled.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMBadPass.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerProxy.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslPKCS12.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSSL.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMNoPass.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerCompress.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerImapConnectCheck.xml
  B     server/protocols/protocols-imap4/src/test/resources/keystore.p12
 !????? server/protocols/protocols-imap4/src/test/resources/private.nopass.key
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslPKCS12MissingPassword.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServer.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslJKSBadPassword.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMExtraPass.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerNoLimits.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslNoKeys.xml
  B     server/protocols/protocols-imap4/src/test/resources/keystore
 !????? server/protocols/protocols-imap4/src/test/resources/imapSSL.xml
 !????? server/protocols/protocols-imap4/src/test/resources/private.key
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsFalseAndStartSSLIsTrue.xml
  B     server/protocols/protocols-imap4/src/test/resources/keystore.jks
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsTrueAndStartSSLIsTrue.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthDisallowed.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerStartTLS.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslJKS.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMMissingPass.xml
 !????? server/protocols/protocols-imap4/src/test/resources/certs.csr
 !????? server/protocols/protocols-imap4/src/test/resources/certs.self-signed.csr
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsFalseAndStartSSLIsFalse.xml
 !????? server/protocols/protocols-imap4/src/test/resources/imapServerSslPKCS12WrongPassword.xml
  AL    server/protocols/protocols-imap4/src/test/java/org/apache/james/imapserver/netty/ReactiveThrottlerTest.java
  AL    server/protocols/protocols-imap4/src/test/java/org/apache/james/imapserver/netty/IMAPServerTest.java
  AL    server/protocols/protocols-imap4/src/test/java/org/apache/james/imapserver/netty/IpConnectionCheck.java
  AL    server/protocols/protocols-imap4/src/test/java/org/apache/james/imapserver/netty/IMAPServerConfigurationTest.java
  AL    server/protocols/protocols-imap4/src/test/java/org/apache/james/imapserver/netty/LinearalizerTest.java
  AL    server/protocols/protocols-imap4/src/reporting-site/site.xml
  AL    server/protocols/protocols-imap4/pom.xml
  AL    server/protocols/fetchmail/src/main/resources/META-INF/spring/fetchmail-context.xml
  AL    server/protocols/fetchmail/src/main/resources/fetchmail.xml
  AL    server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
  AL    server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ParsedConfiguration.java
  AL    server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java
  AL    server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchSchedulerMBean.java
  AL    server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/DynamicAccount.java
  AL    server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/Account.java
  AL    server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ProcessorAbstract.java
  AL    server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java
  AL    server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FolderProcessor.java
  AL    server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/StoreProcessor.java
  AL    server/protocols/fetchmail/src/test/java/org/apache/james/fetchmail/FetchMailTest.java
  AL    server/protocols/fetchmail/src/reporting-site/site.xml
  AL    server/protocols/fetchmail/pom.xml
 !????? server/Overview.md
 !????? server/mailet/rate-limiter-redis/redis.properties
 !????? server/mailet/rate-limiter-redis/extensions.properties
  AL    server/mailet/rate-limiter-redis/mailetcontainer.xml
 !????? server/mailet/rate-limiter-redis/docker-compose.yml
 !????? server/mailet/rate-limiter-redis/README.adoc
  AL    server/mailet/rate-limiter-redis/src/main/scala/org/apache/james/rate/limiter/redis/RedisRateLimiter.scala
  AL    server/mailet/rate-limiter-redis/src/test/java/org/apache/james/rate/limiter/RedisRateLimiterTest.scala
  AL    server/mailet/rate-limiter-redis/pom.xml
  AL    server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/MockPublicKeyRecordRetriever.java
  AL    server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/ConvertTo7Bit.java
  AL    server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/DKIMSign.java
  AL    server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/DKIMVerify.java
  AL    server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/CRLFOutputStream.java
  AL    server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/DKIMVerifier.java
  AL    server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/MimeMessageHeaders.java
  AL    server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/HeaderSkippingOutputStream.java
  B     server/mailet/dkim/src/test/resources/test-dkim-pkcs8.pem
  B     server/mailet/dkim/src/test/resources/test-dkim-pkcs1.pem
  AL    server/mailet/dkim/src/test/java/org/apache/james/jdkim/mailets/DKIMVerifyTest.java
  AL    server/mailet/dkim/src/test/java/org/apache/james/jdkim/mailets/DKIMSignTest.java
  AL    server/mailet/dkim/pom.xml
  AL    server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNRemoteIntegrationTest.java
  AL    server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNRelayTest.java
  AL    server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/smtp/dsn/DSNLocalIntegrationTest.java
  AL    server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryForwardIntegrationTest.java
  AL    server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryDKIMIntegrationTest.java
  AL    server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryOnSuccessTest.java
  AL    server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorTest.java
  AL    server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryErrorHandlingTest.java
  AL    server/mailet/remote-delivery-integration-testing/src/test/java/org/apache/james/SubAddressingRelayTest.java
  AL    server/mailet/remote-delivery-integration-testing/pom.xml
  AL    server/mailet/integration-testing/src/main/resources/dnsservice.xml
  AL    server/mailet/integration-testing/src/main/resources/lmtpserver.xml
 !????? server/mailet/integration-testing/src/main/resources/eml/message-multipart-8bit.eml
 !????? server/mailet/integration-testing/src/main/resources/eml/crypted.eml
 !????? server/mailet/integration-testing/src/main/resources/eml/message-multipart-7bit.eml
 !????? server/mailet/integration-testing/src/main/resources/eml/dlp_read_mail_with_attachment.eml
 !????? server/mailet/integration-testing/src/main/resources/eml/message-text-only-8bit.eml
 !????? server/mailet/integration-testing/src/main/resources/eml/crypted_with_attachment.eml
 !????? server/mailet/integration-testing/src/main/resources/eml/message-text-only-7bit.eml
 !????? server/mailet/integration-testing/src/main/resources/eml/calendar.eml
 !????? server/mailet/integration-testing/src/main/resources/eml/bad_crypted.eml
 !????? server/mailet/integration-testing/src/main/resources/eml/yahooInvitation.eml
  AL    server/mailet/integration-testing/src/main/resources/imapserver.xml
  AL    server/mailet/integration-testing/src/main/resources/managesieveserver.xml
  AL    server/mailet/integration-testing/src/main/resources/domainlist.xml
  AL    server/mailet/integration-testing/src/main/resources/mailrepositorystore.xml
  AL    server/mailet/integration-testing/src/main/resources/usersrepository.xml
  AL    server/mailet/integration-testing/src/main/resources/recipientrewritetable.xml
  B     server/mailet/integration-testing/src/main/resources/keystore
  B     server/mailet/integration-testing/src/main/resources/smime.p12
  AL    server/mailet/integration-testing/src/main/resources/smtpserver.xml
  AL    server/mailet/integration-testing/src/main/resources/pop3server.xml
  AL    server/mailet/integration-testing/src/main/java/org/apache/james/mailets/configuration/SerializableAsXml.java
  AL    server/mailet/integration-testing/src/main/java/org/apache/james/mailets/configuration/SmtpConfiguration.java
  AL    server/mailet/integration-testing/src/main/java/org/apache/james/mailets/configuration/MailetConfiguration.java
  AL    server/mailet/integration-testing/src/main/java/org/apache/james/mailets/configuration/ProcessorConfiguration.java
  AL    server/mailet/integration-testing/src/main/java/org/apache/james/mailets/configuration/CommonProcessors.java
  AL    server/mailet/integration-testing/src/main/java/org/apache/james/mailets/configuration/Constants.java
  AL    server/mailet/integration-testing/src/main/java/org/apache/james/mailets/configuration/MailetContainer.java
  AL    server/mailet/integration-testing/src/main/java/org/apache/james/mailets/TemporaryJamesServer.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpContentTypeTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpSizeLimitationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpNullSenderTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/extensions/StaticInputChecker.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/extensions/SMTPHeloHooksTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/extensions/hooks/DeclinedHeloHook.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/extensions/hooks/OkHeloHook.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/extensions/hooks/DenyHeloHook.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/extensions/hooks/RecordingHeloHook.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/extensions/hooks/DenySoftHeloHook.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpRandomStoringTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpIdentityVerificationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpBracketEnforcementTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpAuthorizedAddressesTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/NoopMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/NoClassDefFoundErrorMatcher.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ErrorMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/OneRuntimeErrorMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ErrorMatcher.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/OneRuntimeExceptionMatcher.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/PerSenderRateLimitIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/RequeueThrottlingIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/IsOverQuotaMatcherTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/NoClassDefFoundErrorMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToSenderDomainRepositoryIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/OneRuntimeExceptionMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ExtractAttributeStub.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/MailReprocessingIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/DomainMappingTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AliasMappingTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/RuntimeExceptionMatcher.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/DlpIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/RuntimeErrorMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GlobalRateLimitIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/amqp/AmqpExtension.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/RuntimeExceptionMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/OneThreadSuicideMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingRelayTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/PerRecipientRateLimitMailetIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/CommonMailetConfigurationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/DKIMIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/CountingExecutionMailetBis.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/FirstRecipientCountingExecutions.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/CountingExecutionMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/CollectMailAttributeMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/ShutDownIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/CollectingExecutionMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/NoneWithNull.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/CountingExecutionTerminatingMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/None.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/CollectingExecutionMailetBis.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/AddRecipient.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/PauseThenCountingExecutionMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/ClearRecipientsMailet.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/ExecutionFlowTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/flow/EnsureNotDisposed.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/WithStorageDirectiveIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SieveDelivery.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/configuration/MailetConfigurationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/configuration/SmtpConfigurationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SPFIntegrationTests.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/ForwardLoopIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/AddDeliveredToHeaderTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SenderIsLocalIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/ForwardIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SizeGreaterThanIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MissingProcessorTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/DirectResolutionRemoteDeliveryIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/BounceIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/FilterForwardIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/NetworkMatcherIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SmtpAuthIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMESignIntegrationTest.java
  AL    server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMEDecryptIntegrationTest.java
  AL    server/mailet/integration-testing/pom.xml
 !????? server/mailet/rate-limiter/extensions.properties
  AL    server/mailet/rate-limiter/mailetcontainer.xml
 !????? server/mailet/rate-limiter/docker-compose.yml
 !????? server/mailet/rate-limiter/README.adoc
  AL    server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/EntityType.scala
  AL    server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/GlobalRateLimit.scala
  AL    server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/PerRecipientRateLimit.scala
  AL    server/mailet/rate-limiter/src/main/scala/org/apache/james/transport/mailets/PerSenderRateLimit.scala
  AL    server/mailet/rate-limiter/src/main/scala/org/apache/james/rate/limiter/memory/MemoryRateLimiter.scala
  AL    server/mailet/rate-limiter/src/main/scala/org/apache/james/rate/limiter/api/RateLimiter.scala
  AL    server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/GlobalRateLimitTest.scala
  AL    server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/PerSenderRateLimitTest.scala
  AL    server/mailet/rate-limiter/src/test/scala/org/apache/james/transport/mailets/PerRecipientRateLimitTest.scala
  AL    server/mailet/rate-limiter/src/test/scala/org/apache/james/rate/limiter/memory/MemoryRateLimiterTest.scala
  AL    server/mailet/rate-limiter/src/test/scala/org/apache/james/rate/limiter/api/RateLimiterContract.scala
  AL    server/mailet/rate-limiter/pom.xml
  AL    server/mailet/mailets/src/main/scala/org/apache/james/transport/mailets/XOriginatingIpInNetwork.scala
  AL    server/mailet/mailets/src/main/resources/sieveConfig.xml
 !????? server/mailet/mailets/src/main/resources/managesieve.help.txt
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/util/MimeMessageBodyGenerator.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/util/SenderUtils.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/util/RecipientsUtils.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/util/SizeUtils.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/util/SpecialAddressesUtils.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/util/Patterns.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/util/MailAddressUtils.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/util/ReplyToUtils.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/util/TosUtils.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/RemoteDeliveryFailedWithSMTPCode.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/package.html
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsSenderInRRTLoop.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/DSNSuccessRequested.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsRemoteDeliveryPermanentError.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsOverQuota.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/RemoteAddrInNetwork.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/DSNFailureRequested.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractNetworkMatcher.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/HasPriority.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/dlp/DlpRulesLoader.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/dlp/Dlp.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/dlp/DlpDomainRules.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/DSNDelayRequested.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AtLeastPriority.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/InSpammerBlacklist.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/SenderInFakeDomain.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsMarkedAsSpam.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/RemoteAddrNotInNetwork.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsRemoteDeliveryTemporaryError.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractSQLWhitelistMatcher.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsInWhiteList.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AtMostPriority.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractPriorityMatcher.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/transcode/MessageToCoreToMessage.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AddressExtractor.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MessageAlteringUtils.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/SpecialAddress.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/NotifyMailetInitParameters.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/InitParameters.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessage.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/LoadedOnceInitParameters.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectMailetInitParameters.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/TypeCode.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/SpecialAddressKind.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/InitParametersSerializer.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionDispatcher.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/MailAction.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/FileIntoAction.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/DiscardAction.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionContext.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RedirectAction.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionUtils.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SievePoster.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveFailureMessageComposer.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/Poster.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ResourceLocator.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/KeepAction.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SPF.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/package.html
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToPlainText.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RandomStoring.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRepository.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/DnsHelper.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/MailDelivrerToHost.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/MessageComposer.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Bouncer.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Delay.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/ExecutionResult.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/HeloNameProvider.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/EnhancedMessagingException.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/DeliveryRunnable.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Repeat.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/DelaysAndMaxRetry.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/DeliveryRetriesHelper.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/InternetAddressConverter.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/RemoteDeliveryConfiguration.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/MailDelivrer.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/AddressesArrayToMailAddressListConverter.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Sieve.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WithStorageDirective.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppenderImpl.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SimpleMailStore.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailStore.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/MetricsMailet.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/VacationMailet.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WithPriority.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/FromRepository.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Requeue.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderDomainRepository.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTable.java
  AL    server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/VacationReply.java
  AL    server/mailet/mailets/src/test/scala/org/apache/james/transport/mailets/XOriginatingIpInNetworkSpec.scala
 !????? server/mailet/mailets/src/test/resources/noReplyTo.eml
 !????? server/mailet/mailets/src/test/resources/spamMail.eml
 !????? server/mailet/mailets/src/test/resources/eml/gmail.eml
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/envelopeFromOtherSender.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/headerEncodedFolded.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/addressAllResend-From.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/addressAllFrom.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/discard.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/true.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/vacationDaysReason.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/allofAllTrue.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/stop.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/vacationMime.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/vacationSubjectFromReason.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/addressDomain.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/redirect.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/reject.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/keep.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/bodyRawInvalid.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/bodyTextMatch.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/bodyContentMatch.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/addressLocalPart.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/envelopeFrom.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/addressAllSender.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/exists.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/false.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/addressAllBcc.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/addressAllCc.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/addressAllResend-To.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/bodyTextInvalid.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/envelopeTo.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/anyofOneFalse.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/addressAllTo.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/sizeOver.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/bodyContentInvalid.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/notFalse.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/allofOneFalse.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/envelopeToOtherReceiver.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/vacationReasonAndFileInto.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/header.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/bodyContentWrongContentType.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/allofAllFalse.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/doubleVacation.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/vacationDaysAddressesReason.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/notTrue.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/anyofAllFalse.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/bodyRawMatch.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/sizeUnder.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/vacationReason.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/fileinto.script
  AL    server/mailet/mailets/src/test/resources/org/apache/james/transport/mailets/delivery/anyofAllTrue.script
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/util/SenderUtilsTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/util/SizeUtilsTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/util/RecipientsUtilsTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/util/MailAddressUtilsTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/util/MimeMessageBodyGeneratorTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/util/ReplyToUtilsTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/util/SpecialAddressesUtilsTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/InSpammerBlacklistTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/AtMostPriorityTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrNotInNetworkTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsOverQuotaTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/DSNDelayRequestedTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsMarkedAsSpamTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/DSNFailureRequestedTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteAddrInNetworkTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/DSNSuccessRequestedTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/AtLeastPriorityTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/dlp/DlpTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/dlp/DlpDomainRulesTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/RemoteDeliveryFailedWithSMTPCodeTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/HasPriorityTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsRemoteDeliveryPermanentErrorTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsSenderInRRTLoopTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsRemoteDeliveryTemporaryErrorTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ForwardTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/LoadedOnceInitParametersTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/AddressExtractorTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessageTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/RedirectMailetInitParametersTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MessageAlteringUtilsTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/MailModifierTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/SpecialAddressTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetInitParametersTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutorTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/jsieve/DiscardActionTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/VacationReplyTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/MetricsMailetTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/DelaysAndMaxRetryTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/MailDelivrerTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/InternetAddressConverterTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/RemoteDeliveryRunningTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/RepeatTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/DeliveryRetryHelperTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/DeliveryRunnableTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/DelayTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/BouncerTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/AddressesArrayToMailAddressListConverterTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/RemoteDeliveryConfigurationTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/RemoteDeliveryTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/HeloNameProviderTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/WithPriorityTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RequeueTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResendTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/VacationMailetTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ToSenderDomainRepositoryTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/SPFTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailDispatcherTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderImplTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SimpleMailStoreTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ToPlainTextTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResourceLocatorTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/WithStorageDirectiveTest.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/HelloWorldMailet.java
  AL    server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
  AL    server/mailet/mailets/src/reporting-site/site.xml
  AL    server/mailet/mailets/pom.xml
  AL    server/mailet/mailetcontainer-impl/src/main/resources/META-INF/spring/mailetcontainer-context.xml
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/MatcherConfigImpl.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/ProcessorUtil.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/CompositeProcessorImpl.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/MatcherMailetPair.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/MatcherSplitter.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/LocalResourcesImpl.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/jmx/JMXStateMailetProcessorListener.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/jmx/JMXStateCompositeProcessorListener.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/jmx/MailProcessorManagement.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/jmx/MatcherManagement.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/jmx/MailetManagement.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Not.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/matchers/CompositeMatcher.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Or.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/matchers/And.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Xor.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/matchers/GenericCompositeMatcher.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/MailetConfigImpl.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/MailetProcessorImpl.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/impl/ProcessorImpl.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/AutomaticallySentMailDetectorImpl.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessor.java
  AL    server/mailet/mailetcontainer-impl/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/MailetProcessorImplTest.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/matchers/XorTest.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/matchers/NotTest.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/matchers/OrTest.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/matchers/AndTest.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/MailetConfigImplTest.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/CompositeProcessorImplTest.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextContract.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/AutomaticallySentMailDetectorImplTest.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessorTest.java
  AL    server/mailet/mailetcontainer-impl/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessorTest.java
  AL    server/mailet/mailetcontainer-impl/src/reporting-site/site.xml
  AL    server/mailet/mailetcontainer-impl/pom.xml
  AL    server/mailet/mailetcontainer-api/src/main/resources/mailetcontainer.xml
  AL    server/mailet/mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/MailProcessor.java
  AL    server/mailet/mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/jmx/MailetManagementMBean.java
  AL    server/mailet/mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/jmx/MailProcessorManagementMBean.java
  AL    server/mailet/mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/jmx/MailSpoolerMBean.java
  AL    server/mailet/mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/jmx/MatcherManagementMBean.java
  AL    server/mailet/mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/MailetLoader.java
  AL    server/mailet/mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/MatcherLoader.java
  AL    server/mailet/mailetcontainer-api/src/main/java/org/apache/james/mailetcontainer/api/LocalResources.java
  AL    server/mailet/mailetcontainer-api/src/test/java/org/apache/james/mailetcontainer/api/mock/ExceptionThrowingMatcher.java
  AL    server/mailet/mailetcontainer-api/src/test/java/org/apache/james/mailetcontainer/api/mock/MockMatcherLoader.java
  AL    server/mailet/mailetcontainer-api/src/test/java/org/apache/james/mailetcontainer/api/mock/MockMatcher.java
  AL    server/mailet/mailetcontainer-api/src/test/java/org/apache/james/mailetcontainer/api/mock/ExceptionThrowingMailet.java
  AL    server/mailet/mailetcontainer-api/src/test/java/org/apache/james/mailetcontainer/api/mock/MockMailProcessor.java
  AL    server/mailet/mailetcontainer-api/src/test/java/org/apache/james/mailetcontainer/api/mock/MockMailet.java
  AL    server/mailet/mailetcontainer-api/src/test/java/org/apache/james/mailetcontainer/api/mock/MockMailetLoader.java
  AL    server/mailet/mailetcontainer-api/src/reporting-site/site.xml
  AL    server/mailet/mailetcontainer-api/pom.xml
 !????? server/mailet/mock-smtp-server/README.adoc
 !????? server/mailet/mock-smtp-server/src/main/jib/logback.xml
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ExtendedEhloCommand.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/HTTPConfigurationServer.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ExtendedRcptToCommand.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ExtendedMailFromCommand.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockMessageHandler.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/MockSMTPBehavior.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/MockSmtpBehaviors.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/Response.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/Mails.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/SMTPCommand.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/SMTPExtensions.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/Condition.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/Mail.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/Operator.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/SMTPExtension.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/model/MockSMTPBehaviorInformation.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockSMTPServerMain.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/jackson/MailAddressSerializer.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/jackson/MailAddressModule.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/jackson/MailAddressDeserializer.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockSMTPServer.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ReceivedMailRepository.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/ConfigurationClient.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/SMTPBehaviorRepository.java
  AL    server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/testing/MockSmtpServerExtension.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/MockSMTPServerTest.java
 !????? server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConfigurationClientTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/SMTPBehaviorRepositoryTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/HTTPConfigurationServerTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/model/MailTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/model/ResponseTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/model/MailsTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/model/MockSMTPBehaviorTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/model/OperatorTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/model/MockSmtpBehaviorsTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/model/ConditionTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/model/MockSMTPBehaviorInformationTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ReceivedMailRepositoryTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/jackson/MailAddressModuleTest.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/Fixture.java
  AL    server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/SMTPCommandTest.java
  AL    server/mailet/mock-smtp-server/pom.xml
  AL    server/container/spring/src/main/resources/META-INF/spring/loaders-context.xml
  AL    server/container/spring/src/main/resources/META-INF/org/apache/james/spring-mailbox-authenticator.xml
  AL    server/container/spring/src/main/resources/META-INF/org/apache/james/spring-mailbox-authorizator.xml
  AL    server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
  N     server/container/spring/src/main/resources/META-INF/org/apache/james/README
  AL    server/container/spring/src/main/appended-resources/supplemental-models.xml
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/ConfigurableBeanPostProcessor.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/ConfigurationProvider.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/AbstractLifecycleBeanPostProcessor.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/ConfigurationProviderImpl.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/resource/JamesResourceLoader.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/resource/SpringUserEntityValidator.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/resource/DefaultJamesResourceLoader.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/filesystem/FileSystemImpl.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/filesystem/ResourceLoaderFileSystem.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/mailbox/MaxQuotaConfigurationReader.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/mailbox/SpringResolver.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/context/web/JamesServerWebApplicationContext.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/context/JamesServerApplicationContext.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/protocols/ProtocolHandlerLoaderBeanFactory.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/AbstractBeanFactory.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MailetLoaderBeanFactory.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/AbstractLoaderBeanFactory.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailetcontainer/MatcherLoaderBeanFactory.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/IndexerConfigurationBeanFactoryPostProcessor.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/FileSystemBeanFactoryPostProcessor.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/QuotaBeanFactoryPostProcessor.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/ConfigurationBeanFactoryPostProcessor.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/factorypostprocessor/MailboxConfigurationBeanFactoryPostProcessor.java
  AL    server/container/spring/src/main/java/org/apache/james/container/spring/bean/AbstractBeanFactory.java
  AL    server/container/spring/src/test/java/org/apache/james/container/spring/filesystem/FileSystemImplTest.java
  AL    server/container/spring/src/reporting-site/site.xml
  AL    server/container/spring/pom.xml
  AL    server/container/filesystem-api/src/main/java/org/apache/james/filesystem/api/JamesDirectoriesProvider.java
  AL    server/container/filesystem-api/src/main/java/org/apache/james/filesystem/api/FileSystem.java
 !????? server/container/filesystem-api/src/test/resources/classpathTest.txt
 !????? server/container/filesystem-api/src/test/resources/class path Test.txt
  AL    server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/AbstractFileSystemTest.java
  AL    server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/FileSystemFixture.java
  AL    server/container/filesystem-api/src/test/java/org/apache/james/filesystem/api/mock/MockFileSystem.java
  AL    server/container/filesystem-api/src/reporting-site/site.xml
  AL    server/container/filesystem-api/pom.xml
  AL    server/container/util/src/main/java/org/apache/james/util/io/InputStreamConsummer.java
  AL    server/container/util/src/main/java/org/apache/james/util/io/ZeroedInputStream.java
  AL    server/container/util/src/main/java/org/apache/james/util/io/CountDownConsumeInputStream.java
  AL    server/container/util/src/main/java/org/apache/james/util/io/CurrentPositionInputStream.java
  AL    server/container/util/src/main/java/org/apache/james/util/io/InputStreamUtils.java
  AL    server/container/util/src/main/java/org/apache/james/util/io/BodyOffsetInputStream.java
  AL    server/container/util/src/main/java/org/apache/james/util/FunctionalUtils.java
  AL    server/container/util/src/main/java/org/apache/james/util/RestrictingRMISocketFactory.java
  AL    server/container/util/src/main/java/org/apache/james/util/MDCStructuredLogger.java
  AL    server/container/util/src/main/java/org/apache/james/util/reactor/Constants.java
  AL    server/container/util/src/main/java/org/apache/james/util/ValuePatch.java
  AL    server/container/util/src/main/java/org/apache/james/util/ClassLoaderUtils.java
  AL    server/container/util/src/main/java/org/apache/james/util/GuavaUtils.java
  AL    server/container/util/src/main/java/org/apache/james/util/DurationParser.java
  AL    server/container/util/src/main/java/org/apache/james/util/UnitParser.java
  AL    server/container/util/src/main/java/org/apache/james/util/Runnables.java
  AL    server/container/util/src/main/java/org/apache/james/util/streams/Offset.java
  AL    server/container/util/src/main/java/org/apache/james/util/streams/Iterables.java
  AL    server/container/util/src/main/java/org/apache/james/util/streams/Iterators.java
  AL    server/container/util/src/main/java/org/apache/james/util/streams/Limit.java
  AL    server/container/util/src/main/java/org/apache/james/util/LoggingLevel.java
  AL    server/container/util/src/main/java/org/apache/james/util/IteratorWrapper.java
  AL    server/container/util/src/main/java/org/apache/james/util/StructuredLogger.java
  AL    server/container/util/src/main/java/org/apache/james/util/AuditTrail.java
  AL    server/container/util/src/main/java/org/apache/james/util/Size.java
  AL    server/container/util/src/main/java/org/apache/james/util/mime/MessageContentExtractor.java
  AL    server/container/util/src/main/java/org/apache/james/util/MemoizedSupplier.java
  AL    server/container/util/src/main/java/org/apache/james/util/ReactorUtils.java
  AL    server/container/util/src/main/java/org/apache/james/util/html/HtmlTextExtractor.java
  AL    server/container/util/src/main/java/org/apache/james/util/StreamUtils.java
  AL    server/container/util/src/main/java/org/apache/james/util/DataChunker.java
  AL    server/container/util/src/main/java/org/apache/james/util/date/ZonedDateTimeProvider.java
  AL    server/container/util/src/main/java/org/apache/james/util/date/DefaultZonedDateTimeProvider.java
  AL    server/container/util/src/main/java/org/apache/james/util/date/ImapDateTimeFormatter.java
  AL    server/container/util/src/main/java/org/apache/james/util/MimeMessageUtil.java
  AL    server/container/util/src/main/java/org/apache/james/util/SizeFormat.java
  AL    server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledScheduledThreadPoolExecutor.java
  AL    server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledScheduledThreadPoolExecutorMBean.java
  AL    server/container/util/src/main/java/org/apache/james/util/concurrent/NamedThreadFactory.java
  AL    server/container/util/src/main/java/org/apache/james/util/concurrent/JMXEnabledThreadPoolExecutorMBean.java
  AL    server/container/util/src/main/java/org/apache/james/util/OptionalUtils.java
  AL    server/container/util/src/main/java/org/apache/james/util/MDCBuilder.java
  AL    server/container/util/src/main/java/org/apache/james/util/sql/JDBCUtil.java
  AL    server/container/util/src/main/java/org/apache/james/util/sql/SqlResources.java
  AL    server/container/util/src/main/java/org/apache/james/util/concurrency/ConcurrentTestRunner.java
  AL    server/container/util/src/test/java/org/apache/james/util/AuditTrailTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/DataChunkerTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/io/CurrentPositionInputStreamTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/ReactorUtilsTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/BodyOffsetInputStreamTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/DurationParserTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/RunnablesTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/FunctionalUtilsTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/IteratorWrapperTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/OptionalUtilsTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/streams/OffsetTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/streams/IteratorsTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/streams/ImmutableCollectorsTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/streams/LimitTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/MemoizedSupplierTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/CommutativityCheckerTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/StreamUtilsTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/InputStreamUtilsTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/SizeTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/mime/MessageContentExtractorTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/MDCBuilderTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/date/ImapDateTimeFormatterTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/LoggingLevelTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/CommutativityChecker.java
  AL    server/container/util/src/test/java/org/apache/james/util/SizeFormatTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/GuavaUtilsTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/concurrency/ConcurrentTestRunnerTest.java
  AL    server/container/util/src/test/java/org/apache/james/util/ValuePatchTest.java
  AL    server/container/util/src/reporting-site/site.xml
  AL    server/container/util/pom.xml
  AL    server/container/feature-checks/src/main/java/org/apache/james/healthcheck/MailReceptionCheck.java
  AL    server/container/feature-checks/pom.xml
  AL    server/container/core/src/main/resources/jmx.properties
  AL    server/container/core/src/main/java/org/apache/james/server/core/package.html
  AL    server/container/core/src/main/java/org/apache/james/server/core/ContentTypeCleaner.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/MimeMessageSource.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/configuration/FileConfigurationProvider.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/configuration/ConfigurationProvider.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/configuration/Configuration.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStream.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/MailImpl.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/MissingArgumentException.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/MailHeaders.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/JamesServerResourceLoader.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/InternetHeadersInputStream.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/filesystem/FileSystemResource.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/filesystem/UrlResource.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/filesystem/Resource.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/filesystem/ResourceUtils.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/filesystem/ResourceFactory.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/filesystem/FileSystemImpl.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/filesystem/ClassPathResource.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/filesystem/SimpleUrl.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/MimeMessageInputStreamSource.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/Envelope.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
  AL    server/container/core/src/main/java/org/apache/james/server/core/BufferedDeferredFileOutputStream.java
 !????? server/container/core/src/test/resources/JAMES-1593.eml
 !????? server/container/core/src/test/resources/mail-containing-unicode-characters.eml
  AL    server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromStreamTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/MailHeadersTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/ContentTypeCleanerTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/BufferedDeferredFileOutputStreamTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/configuration/BasicConfigurationTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/MimeMessageInputStreamSourceTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/filesystem/FileSystemImplTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/filesystem/SimpleUrlTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/MimeMessageWrapperTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromSharedStreamTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/MimeMessageUtilTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/EnvelopeTest.java
  AL    server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromMimeMessageTest.java
  AL    server/container/core/src/reporting-site/site.xml
  AL    server/container/core/pom.xml
  AL    server/container/mailbox-adapter/src/main/resources/mailbox.xml
  AL    server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/DelegationStoreAuthorizator.java
  AL    server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaUsernameChangeTaskStep.java
  AL    server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ACLUsernameChangeTaskStep.java
  AL    server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/UserRepositoryAuthenticator.java
  AL    server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxUserDeletionTaskStep.java
  AL    server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/UserRepositoryAuthorizator.java
  AL    server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxUsernameChangeTaskStep.java
  AL    server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/QuotaUsernameChangeTaskStepTest.java
  AL    server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/UserRepositoryAuthenticatorTest.java
  AL    server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/DelegationStoreAuthorizatorTest.java
  AL    server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxUsernameChangeTaskStepTest.java
  AL    server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/UserRepositoryAuthorizatorTest.java
  AL    server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxUserDeletionTaskStepTest.java
  AL    server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/ACLUsernameChangeTaskStepTest.java
  AL    server/container/mailbox-adapter/src/reporting-site/site.xml
  AL    server/container/mailbox-adapter/pom.xml
  AL    server/container/guice/distributed/src/main/java/org/apache/james/modules/event/JMAPEventBusModule.java
  AL    server/container/guice/distributed/src/main/java/org/apache/james/modules/event/RabbitMQEventBusModule.java
  AL    server/container/guice/distributed/src/main/java/org/apache/james/modules/DistributedTaskManagerModule.java
  AL    server/container/guice/distributed/src/main/java/org/apache/james/modules/blobstore/BlobStoreConfiguration.java
  AL    server/container/guice/distributed/src/main/java/org/apache/james/modules/blobstore/BlobStoreCacheModulesChooser.java
  AL    server/container/guice/distributed/src/main/java/org/apache/james/modules/blobstore/BlobStoreChoosingModule.java
  AL    server/container/guice/distributed/src/main/java/org/apache/james/modules/blobstore/BlobStoreModulesChooser.java
  AL    server/container/guice/distributed/src/main/java/org/apache/james/modules/DistributedTaskSerializationModule.java
  AL    server/container/guice/distributed/src/test/java/org/apache/james/modules/blobstore/BlobStoreConfigurationTest.java
  AL    server/container/guice/distributed/src/test/java/org/apache/james/modules/blobstore/BlobStoreModulesChooserTest.java
  AL    server/container/guice/distributed/src/test/java/org/apache/james/modules/blobstore/BlobStoreCacheModulesChooserTest.java
  AL    server/container/guice/distributed/pom.xml
  AL    server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
  AL    server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
  AL    server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java
  AL    server/container/guice/data-cassandra/src/main/java/org/apache/james/modules/data/CassandraDelegationStoreModule.java
  AL    server/container/guice/data-cassandra/pom.xml
  AL    server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPADomainListModule.java
  AL    server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPADataModule.java
  AL    server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAEntityManagerModule.java
  AL    server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAMailRepositoryModule.java
  AL    server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAAuthorizatorModule.java
  AL    server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
  AL    server/container/guice/jpa-common/src/main/java/org/apache/james/modules/data/JPARecipientRewriteTableModule.java
  AL    server/container/guice/jpa-common/src/test/java/org/apache/james/TestJPAConfigurationModule.java
  AL    server/container/guice/jpa-common/src/test/java/org/apache/james/TestJPAConfigurationModuleWithSqlValidation.java
  AL    server/container/guice/jpa-common/pom.xml
  AL    server/container/guice/opensearch/src/main/java/org/apache/james/SearchModuleChooser.java
  AL    server/container/guice/opensearch/src/main/java/org/apache/james/SearchConfiguration.java
  AL    server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchDisabledModule.java
  AL    server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchQuotaSearcherModule.java
  AL    server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchStartUpCheck.java
  AL    server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchClientModule.java
  AL    server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchMailboxConfigurationModule.java
  AL    server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
  AL    server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/TikaMailboxModule.java
  AL    server/container/guice/opensearch/src/main/java/org/apache/james/modules/mailbox/OpenSearchMailboxModule.java
  AL    server/container/guice/opensearch/src/test/java/org/apache/james/modules/mailbox/SearchOverrideA.java
  AL    server/container/guice/opensearch/src/test/java/org/apache/james/modules/mailbox/SearchOverrideB.java
  AL    server/container/guice/opensearch/src/test/java/org/apache/james/modules/mailbox/TikaConfigurationReaderTest.java
  AL    server/container/guice/opensearch/src/test/java/org/apache/james/modules/mailbox/OpenSearchMailboxModuleTest.java
  AL    server/container/guice/opensearch/src/test/java/org/apache/james/SearchConfigurationTest.java
  AL    server/container/guice/opensearch/pom.xml
  AL    server/container/guice/memory/src/main/java/org/apache/james/FakeMessageSearchIndex.java
  AL    server/container/guice/memory/src/main/java/org/apache/james/modules/eventstore/MemoryEventStoreModule.java
  AL    server/container/guice/memory/src/main/java/org/apache/james/modules/mailbox/MemoryQuotaModule.java
  AL    server/container/guice/memory/src/main/java/org/apache/james/modules/mailbox/MemoryMailboxModule.java
  AL    server/container/guice/memory/src/main/java/org/apache/james/modules/mailbox/MemoryQuotaSearchModule.java
  AL    server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryDataModule.java
  AL    server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryUsersRepositoryModule.java
  AL    server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryDataJmapModule.java
  AL    server/container/guice/memory/src/main/java/org/apache/james/modules/data/MemoryDelegationStoreModule.java
  AL    server/container/guice/memory/src/main/java/org/apache/james/FakeSearchMailboxModule.java
  AL    server/container/guice/memory/pom.xml
 !????? server/container/guice/memory/README.md
  AL    server/container/guice/queue/memory/src/main/java/org/apache/james/modules/queue/memory/MemoryMailQueueModule.java
  AL    server/container/guice/queue/memory/pom.xml
  AL    server/container/guice/queue/rabbitmq/src/main/java/org/apache/james/modules/queue/rabbitmq/RabbitMQMailQueueModule.java
  AL    server/container/guice/queue/rabbitmq/src/main/java/org/apache/james/modules/queue/rabbitmq/SpoolerReconnectionHandler.java
  AL    server/container/guice/queue/rabbitmq/src/main/java/org/apache/james/modules/queue/rabbitmq/RabbitMQModule.java
  AL    server/container/guice/queue/rabbitmq/src/main/java/org/apache/james/modules/queue/rabbitmq/FakeMailQueueViewModule.java
  AL    server/container/guice/queue/rabbitmq/src/main/java/org/apache/james/modules/queue/rabbitmq/MailQueueViewChoice.java
  AL    server/container/guice/queue/rabbitmq/src/main/java/org/apache/james/modules/queue/rabbitmq/CassandraMailQueueViewModule.java
  AL    server/container/guice/queue/rabbitmq/pom.xml
  AL    server/container/guice/queue/activemq/src/main/java/org/apache/james/modules/queue/activemq/ActiveMQQueueModule.java
  AL    server/container/guice/queue/activemq/pom.xml
  AL    server/container/guice/queue/pulsar/src/main/java/org/apache/james/queue/pulsar/module/PulsarQueueModule.java
  AL    server/container/guice/queue/pulsar/src/main/java/org/apache/james/queue/pulsar/module/PulsarMailQueueViewModule.java
  AL    server/container/guice/queue/pulsar/pom.xml
  AL    server/container/guice/blob/s3/src/main/java/org/apache/james/modules/objectstorage/aws/s3/AwsS3ConfigurationReader.java
  AL    server/container/guice/blob/s3/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreModule.java
  AL    server/container/guice/blob/s3/src/main/java/org/apache/james/modules/objectstorage/S3BucketModule.java
  AL    server/container/guice/blob/s3/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreConfigurationReader.java
  AL    server/container/guice/blob/s3/src/test/java/org/apache/james/modules/objectstorage/aws/s3/DockerAwsS3TestRule.java
  AL    server/container/guice/blob/s3/src/test/java/org/apache/james/modules/objectstorage/aws/s3/AwsS3ConfigurationReaderTest.java
  AL    server/container/guice/blob/s3/pom.xml
  AL    server/container/guice/blob/memory/src/main/java/org/apache/james/modules/BlobMemoryModule.java
  AL    server/container/guice/blob/memory/pom.xml
  AL    server/container/guice/blob/export/src/main/java/org/apache/james/modules/BlobExportImplChoice.java
  AL    server/container/guice/blob/export/src/main/java/org/apache/james/modules/BlobExportMechanismModule.java
  AL    server/container/guice/blob/export/src/main/java/org/apache/james/modules/LocalFileBlobExportMechanismModule.java
  AL    server/container/guice/blob/export/src/main/java/org/apache/james/modules/LinshareBlobExportMechanismModule.java
  AL    server/container/guice/blob/export/src/test/java/org/apache/james/modules/BlobExportMechanismModuleTest.java
  AL    server/container/guice/blob/export/src/test/java/org/apache/james/modules/LinshareGuiceExtension.java
  AL    server/container/guice/blob/export/src/test/java/org/apache/james/modules/BlobExportImplChoiceTest.java
  AL    server/container/guice/blob/export/pom.xml
  AL    server/container/guice/blob/deduplication-gc/src/main/java/org/apache/james/modules/blobstore/validation/StoragePolicyConfigurationSanityEnforcementModule.java
  AL    server/container/guice/blob/deduplication-gc/src/main/java/org/apache/james/modules/blobstore/validation/StorageStrategyModule.java
  AL    server/container/guice/blob/deduplication-gc/src/main/java/org/apache/james/modules/blobstore/validation/StorageStrategyAggregate.java
  AL    server/container/guice/blob/deduplication-gc/src/main/java/org/apache/james/modules/blobstore/validation/RegisterStorageStrategy.java
  AL    server/container/guice/blob/deduplication-gc/src/main/java/org/apache/james/modules/blobstore/validation/EventsourcingStorageStrategy.java
  AL    server/container/guice/blob/deduplication-gc/src/main/java/org/apache/james/modules/blobstore/validation/StorageStrategyChangedDTO.java
  AL    server/container/guice/blob/deduplication-gc/src/main/java/org/apache/james/modules/blobstore/validation/StorageStrategyChanged.java
  AL    server/container/guice/blob/deduplication-gc/src/main/java/org/apache/james/modules/blobstore/validation/RegisterStorageStrategyCommandHandler.java
  AL    server/container/guice/blob/deduplication-gc/src/main/java/org/apache/james/modules/blobstore/validation/BlobStoreConfigurationValidationStartUpCheck.java
  AL    server/container/guice/blob/deduplication-gc/src/main/java/org/apache/james/modules/blobstore/validation/StorageStrategyValidationEventSourcingSystem.java
  AL    server/container/guice/blob/deduplication-gc/src/main/java/org/apache/james/modules/blobstore/BlobDeduplicationGCModule.java
  AL    server/container/guice/blob/deduplication-gc/src/test/java/org/apache/james/modules/blobstore/validation/StorageStrategyValidationEventSourcingSystemTest.java
  AL    server/container/guice/blob/deduplication-gc/src/test/java/org/apache/james/modules/blobstore/validation/StorageStrategyChangedDTOTest.java
  AL    server/container/guice/blob/deduplication-gc/pom.xml
  AL    server/container/guice/blob/api/src/main/java/org/apache/james/modules/mailbox/BlobStoreAPIModule.java
  AL    server/container/guice/blob/api/src/main/java/org/apache/james/modules/mailbox/ConfigurationComponent.java
  AL    server/container/guice/blob/api/pom.xml
  AL    server/container/guice/data-ldap/src/main/java/org/apache/james/data/UsersRepositoryModuleChooser.java
  AL    server/container/guice/data-ldap/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java
  AL    server/container/guice/data-ldap/src/test/java/org/apache/james/data/DockerLdapRule.java
  AL    server/container/guice/data-ldap/src/test/java/org/apache/james/data/LdapTestExtension.java
  AL    server/container/guice/data-ldap/pom.xml
  AL    server/container/guice/mailbox-jpa/src/main/java/org/apache/james/modules/mailbox/JPAQuotaSearchModule.java
  AL    server/container/guice/mailbox-jpa/src/main/java/org/apache/james/modules/mailbox/JpaQuotaModule.java
  AL    server/container/guice/mailbox-jpa/src/main/java/org/apache/james/modules/mailbox/JPAMailboxModule.java
  AL    server/container/guice/mailbox-jpa/src/main/java/org/apache/james/modules/mailbox/LuceneSearchMailboxModule.java
  AL    server/container/guice/mailbox-jpa/pom.xml
  AL    server/container/guice/sieve-jpa/src/main/java/org/apache/james/modules/data/SieveJPARepositoryModules.java
  AL    server/container/guice/sieve-jpa/pom.xml
  AL    server/container/guice/configuration/src/main/java/org/apache/james/utils/InitilizationOperationBuilder.java
  AL    server/container/guice/configuration/src/main/java/org/apache/james/utils/UserDefinedStartable.java
  AL    server/container/guice/configuration/src/main/java/org/apache/james/utils/PropertiesProvider.java
  AL    server/container/guice/configuration/src/main/java/org/apache/james/utils/GuiceProbe.java
  AL    server/container/guice/configuration/src/main/java/org/apache/james/utils/KeystoreCreator.java
  AL    server/container/guice/configuration/src/main/java/org/apache/james/utils/InitializationOperation.java
  AL    server/container/guice/configuration/src/main/java/org/apache/james/utils/DelegatedPropertiesConfiguration.java
 !????? server/container/guice/configuration/src/test/resources/b.properties
 !????? server/container/guice/configuration/src/test/resources/a.properties
 !????? server/container/guice/configuration/src/test/resources/env.properties
  AL    server/container/guice/configuration/src/test/java/org/apache/james/utils/PropertiesProviderTest.java
  AL    server/container/guice/configuration/src/test/java/org/apache/james/utils/PropertiesProviderFromEnvVariablesTest.java
  AL    server/container/guice/configuration/pom.xml
  AL    server/container/guice/common/src/main/java/org/apache/james/PeriodicalHealthChecks.java
  AL    server/container/guice/common/src/main/java/org/apache/james/NaiveDelegationStoreModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/IsStartedProbe.java
  AL    server/container/guice/common/src/main/java/org/apache/james/ConfigurationSanitizingPerformer.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/CommonServicesModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/StartUpChecksModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/RunArgumentsModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/ClockModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/MailetProcessingModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/StartablesModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/PeriodicalHealthChecksModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/protocols/ProtocolHandlerModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/ErrorMailRepositoryEmptyHealthCheckModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/server/DefaultProcessorsConfigurationProviderModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/server/DropWizardMetricsModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/server/TaskManagerModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/server/HostnameModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/server/RawPostDequeueDecoratorModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/server/TaskSerializationModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/server/LoggingMetricsModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/CleanupTaskModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/MimeMessageModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/modules/IsStartedProbeModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/CoreDataModule.java
  AL    server/container/guice/common/src/main/java/org/apache/james/TemporaryJamesServer.java
  AL    server/container/guice/common/src/main/java/org/apache/james/GuiceLifecycleHealthCheck.java
  AL    server/container/guice/common/src/main/java/org/apache/james/JamesServerMain.java
  AL    server/container/guice/common/src/main/java/org/apache/james/ProtocolConfigurationSanitizer.java
  AL    server/container/guice/common/src/main/java/org/apache/james/utils/InitializationOperations.java
  AL    server/container/guice/common/src/main/java/org/apache/james/utils/MailboxManagerDefinition.java
  AL    server/container/guice/common/src/main/java/org/apache/james/utils/Startables.java
  AL    server/container/guice/common/src/main/java/org/apache/james/utils/DataProbeImpl.java
  AL    server/container/guice/common/src/main/java/org/apache/james/utils/MailRepositoryProbeImpl.java
  AL    server/container/guice/common/src/main/java/org/apache/james/utils/FilteringManagementProbeImpl.java
  AL    server/container/guice/common/src/main/java/org/apache/james/utils/GuiceProbeProvider.java
  AL    server/container/guice/common/src/main/java/org/apache/james/utils/GuiceProtocolHandlerLoader.java
  AL    server/container/guice/common/src/main/java/org/apache/james/ExtraProperties.java
  AL    server/container/guice/common/src/main/java/org/apache/james/StartUpChecksPerformer.java
  AL    server/container/guice/common/src/main/java/org/apache/james/PeriodicalHealthChecksConfiguration.java
  AL    server/container/guice/common/src/main/java/org/apache/james/GuiceJamesServer.java
  AL    server/container/guice/common/src/main/java/org/apache/james/RunArguments.java
  AL    server/container/guice/common/src/main/java/org/apache/james/CleanupTasksPerformer.java
 !????? server/container/guice/common/src/test/resources/eml/mail-containing-unicode-characters.eml
  AL    server/container/guice/common/src/test/resources/test.xml
 !????? server/container/guice/common/src/test/resources/test.properties
  AL    server/container/guice/common/src/test/java/org/apache/james/AggregateJunitExtension.java
  AL    server/container/guice/common/src/test/java/org/apache/james/GuiceModuleTestExtension.java
  AL    server/container/guice/common/src/test/java/org/apache/james/JamesServerContract.java
  AL    server/container/guice/common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java
  AL    server/container/guice/common/src/test/java/org/apache/james/PeriodicalHealthChecksConfigurationTest.java
  AL    server/container/guice/common/src/test/java/org/apache/james/modules/InitializationOperationsTest.java
  AL    server/container/guice/common/src/test/java/org/apache/james/GuiceModuleTestRule.java
  AL    server/container/guice/common/src/test/java/org/apache/james/PeriodicalHealthChecksTest.java
  AL    server/container/guice/common/src/test/java/org/apache/james/JamesServerBuilder.java
  AL    server/container/guice/common/src/test/java/org/apache/james/TempFilesystemTestRule.java
  AL    server/container/guice/common/src/test/java/org/apache/james/RegistrableExtension.java
  AL    server/container/guice/common/src/test/java/org/apache/james/utils/FileConfigurationProviderTest.java
  AL    server/container/guice/common/src/test/java/org/apache/james/utils/FailingPropertiesProvider.java
  AL    server/container/guice/common/src/test/java/org/apache/james/utils/ConfigurablesTest.java
  AL    server/container/guice/common/src/test/java/org/apache/james/utils/GuiceProbeProviderTest.java
  AL    server/container/guice/common/src/test/java/org/apache/james/TemporaryFolderRegistrableExtension.java
  AL    server/container/guice/common/src/test/java/org/apache/james/ClockExtension.java
  AL    server/container/guice/common/src/test/java/org/apache/james/JamesServerExtension.java
  AL    server/container/guice/common/src/test/java/org/apache/james/StartUpChecksPerformerTest.java
  AL    server/container/guice/common/src/test/java/org/apache/james/FakePropertiesProvider.java
  AL    server/container/guice/common/src/test/java/org/apache/james/AggregateGuiceModuleTestRule.java
  AL    server/container/guice/common/pom.xml
  AL    server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServer.java
  AL    server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServerModule.java
  AL    server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JmxConfiguration.java
  AL    server/container/guice/jmx/src/main/java/org/apache/james/utils/GuiceMailboxManagerResolver.java
  AL    server/container/guice/jmx/src/test/java/org/apache/james/modules/server/JmxConfigurationTest.java
  AL    server/container/guice/jmx/pom.xml
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleStageModule.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/NoOpStageableTypeMapper.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/AbstractMethodTypeListener.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/StageHandler.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/NoOpStageHandler.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/StageableMethod.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/Stageable.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/AbstractStageable.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/AbstractBasicStageable.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/PreDestroyModule.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleModule.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/DefaultStager.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/DisposingStager.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/StageableTypeMapper.java
  AL    server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/Stager.java
  AL    server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/TestAnnotationB.java
  AL    server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/TestAnnotationA.java
  AL    server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/DefaultStagerTestCase.java
  AL    server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/StageObject2.java
  AL    server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/StageObject1.java
  AL    server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/StagingOrderTestCase.java
  AL    server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/MultiLifeCycleObject.java
  AL    server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/TestAnnotationC.java
  AL    server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/MultiLifeCycleTestCase.java
  AL    server/container/guice/onami/pom.xml
  AL    server/container/guice/sieve-file/src/main/java/org/apache/james/modules/data/SieveFileRepositoryModule.java
  AL    server/container/guice/sieve-file/pom.xml
  AL    server/container/guice/pom.xml
  AL    server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java
  AL    server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/SmtpGuiceProbe.java
  AL    server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/JSPFModule.java
  AL    server/container/guice/protocols/smtp/pom.xml
  AL    server/container/guice/protocols/webadmin/src/main/java/org/apache/james/WebAdminServer.java
  AL    server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/TaskRoutesModule.java
  AL    server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/HealthCheckRoutesModule.java
  AL    server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/NoJwtModule.java
  AL    server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/ServerRouteModule.java
  AL    server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
  AL    server/container/guice/protocols/webadmin/src/main/java/org/apache/james/utils/WebAdminGuiceProbe.java
 !????? server/container/guice/protocols/webadmin/src/test/resources/webadmin-two.properties
 !????? server/container/guice/protocols/webadmin/src/test/resources/webadmin-one.properties
 !????? server/container/guice/protocols/webadmin/src/test/resources/webadmin-empty.properties
 !????? server/container/guice/protocols/webadmin/src/test/resources/webadmin-none.properties
  AL    server/container/guice/protocols/webadmin/src/test/java/org/apache/james/modules/server/WebAdminServerModuleTest.java
  AL    server/container/guice/protocols/webadmin/pom.xml
  AL    server/container/guice/protocols/webadmin-jmap/src/main/java/org/apache/james/modules/server/UserIdentityModule.java
  AL    server/container/guice/protocols/webadmin-jmap/src/main/java/org/apache/james/modules/server/JmapTasksModule.java
  AL    server/container/guice/protocols/webadmin-jmap/src/main/java/org/apache/james/modules/server/JmapTaskSerializationModule.java
  AL    server/container/guice/protocols/webadmin-jmap/src/main/java/org/apache/james/modules/server/JmapUploadCleanupModule.java
  AL    server/container/guice/protocols/webadmin-jmap/pom.xml
  AL    server/container/guice/protocols/lmtp/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java
  AL    server/container/guice/protocols/lmtp/src/main/java/org/apache/james/modules/protocols/LmtpGuiceProbe.java
  AL    server/container/guice/protocols/lmtp/pom.xml
  AL    server/container/guice/protocols/webadmin-mailrepository/src/main/java/org/apache/james/modules/server/MailRepositoriesRoutesModule.java
  AL    server/container/guice/protocols/webadmin-mailrepository/src/main/java/org/apache/james/modules/server/MailRepositoryTaskSerializationModule.java
  AL    server/container/guice/protocols/webadmin-mailrepository/pom.xml
  AL    server/container/guice/protocols/webadmin-mailqueue/src/main/java/org/apache/james/modules/server/MailQueueTaskSerializationModule.java
  AL    server/container/guice/protocols/webadmin-mailqueue/src/main/java/org/apache/james/modules/server/MailQueueRoutesModule.java
  AL    server/container/guice/protocols/webadmin-mailqueue/pom.xml
  AL    server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxesBackupModule.java
  AL    server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/WebadminMailboxExportTaskSerializationModule.java
  AL    server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/ReIndexingModule.java
  AL    server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxesExportRoutesModule.java
  AL    server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxRoutesModule.java
  AL    server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/InconsistencyQuotasSolvingRoutesModule.java
  AL    server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MessagesRoutesModule.java
  AL    server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/WebadminMailboxTaskSerializationModule.java
  AL    server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/MailboxesRoutesModule.java
  AL    server/container/guice/protocols/webadmin-mailbox/src/main/java/org/apache/james/modules/server/WebAdminReIndexingTaskSerializationModule.java
  AL    server/container/guice/protocols/webadmin-mailbox/pom.xml
  AL    server/container/guice/protocols/netty/pom.xml
  AL    server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/VacationRoutesModule.java
  AL    server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/DLPRoutesModule.java
  AL    server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/DataRoutesModules.java
  AL    server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/SieveRoutesModule.java
  AL    server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/blobstore/server/BlobRoutesModules.java
  AL    server/container/guice/protocols/webadmin-data/pom.xml
  AL    server/container/guice/protocols/pop/src/main/java/org/apache/james/modules/protocols/Pop3GuiceProbe.java
  AL    server/container/guice/protocols/pop/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java
  AL    server/container/guice/protocols/pop/pom.xml
  AL    server/container/guice/protocols/jmap/src/main/resources/defaultJmapMailetContainer.xml
  AL    server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/MessageIdProbe.java
  AL    server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JmapConfigurationSanitizer.java
  AL    server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/DraftMethodsModule.java
  AL    server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JMAPModule.java
  AL    server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JMAPCommonModule.java
  AL    server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JMAPConfigurationStartUpCheck.java
  AL    server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JmapGuiceProbe.java
  AL    server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/draft/JMAPListenerModule.java
  AL    server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/rfc8621/RFC8621MethodsModule.java
  AL    server/container/guice/protocols/jmap/src/main/java/org/apache/james/modules/protocols/JmapEventBusModule.java
  AL    server/container/guice/protocols/jmap/src/main/java/org/apache/james/modules/protocols/JMAPServerModule.java
  AL    server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/draft/JmapJamesServerContract.java
  AL    server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/draft/JMAPModuleTest.java
  AL    server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/draft/MailetPreconditionTest.java
  AL    server/container/guice/protocols/jmap/src/test/java/org/apache/james/modules/TestJMAPServerModule.java
  AL    server/container/guice/protocols/jmap/pom.xml
  AL    server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/ConnectionCheckFactoryImpl.java
  AL    server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/ImapPackage.java
  AL    server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
  AL    server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/ImapGuiceProbe.java
  AL    server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/DefaultImapPackage.java
  AL    server/container/guice/protocols/imap/pom.xml
  AL    server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/ManageSieveServerModule.java
  AL    server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/SieveProbeImpl.java
  AL    server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/SieveModule.java
  AL    server/container/guice/protocols/managedsieve/pom.xml
  AL    server/container/guice/protocols/webadmin-rabbitmq-mailqueue/src/main/java/org/apache/james/modules/server/RabbitMailQueueTaskSerializationModule.java
  AL    server/container/guice/protocols/webadmin-rabbitmq-mailqueue/src/main/java/org/apache/james/modules/server/RabbitMailQueueRoutesModule.java
  AL    server/container/guice/protocols/webadmin-rabbitmq-mailqueue/src/main/java/org/apache/james/modules/server/BrowseStartTaskModule.java
  AL    server/container/guice/protocols/webadmin-rabbitmq-mailqueue/pom.xml
  AL    server/container/guice/protocols/webadmin-mail-over-web/src/main/java/org/apache/james/modules/server/WebAdminMailOverWebModule.java
  AL    server/container/guice/protocols/webadmin-mail-over-web/pom.xml
  AL    server/container/guice/mailet/src/main/java/org/apache/james/modules/server/DKIMMailetModule.java
  AL    server/container/guice/mailet/src/main/java/org/apache/james/modules/server/MailetContainerModule.java
  AL    server/container/guice/mailet/src/main/java/org/apache/james/utils/MailetConfigurationOverride.java
  AL    server/container/guice/mailet/src/main/java/org/apache/james/utils/GuiceMatcherLoader.java
  AL    server/container/guice/mailet/src/main/java/org/apache/james/utils/GuiceMailetLoader.java
  AL    server/container/guice/mailet/src/main/java/org/apache/james/utils/SpoolerProbe.java
  A     server/container/guice/mailet/src/test/resources/recursive/extensions-jars/james-server-guice-custom-mailets-3.5.0-SNAPSHOT-jar-with-dependencies.jar
  A     server/container/guice/mailet/src/test/resources/recursive/extensions-jars/custom-mailets-implementation-3.5.0-SNAPSHOT.jar
  AL    server/container/guice/mailet/src/test/java/org/apache/james/transport/matchers/sub/TestMatcher.java
  AL    server/container/guice/mailet/src/test/java/org/apache/james/transport/mailets/sub/TestMailet.java
  AL    server/container/guice/mailet/src/test/java/org/apache/james/modules/server/MailetContainerModuleTest.java
  AL    server/container/guice/mailet/src/test/java/org/apache/james/utils/GuiceMatcherLoaderTest.java
  AL    server/container/guice/mailet/src/test/java/org/apache/james/utils/GuiceMailetLoaderTest.java
  AL    server/container/guice/mailet/pom.xml
  AL    server/container/guice/mailrepository-blob/src/main/java/org/apache/james/modules/mailrepository/BlobstoreMailRepositoryModule.java
  AL    server/container/guice/mailrepository-blob/pom.xml
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/Names.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/ConfigurationProbe.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/QuotaProbesImpl.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/EventDeadLettersProbe.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxModule.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/MailboxListenersLoader.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/FastRetryBackoffModule.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/MailboxListenerFactory.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/PreDeletionHookConfiguration.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/MailboxListenersLoaderImpl.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/ListenerConfiguration.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/ListenersConfiguration.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/MailReceptionHealthCheckModule.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/PreDeletionHookLoaderImpl.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/PreDeletionHooksConfiguration.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/PreDeletionHookLoader.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/ReIndexingTaskSerializationModule.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/DefaultEventModule.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/PreDeletionHookModule.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/MemoryDeadLetterModule.java
  AL    server/container/guice/mailbox/src/main/java/org/apache/james/modules/ACLProbeImpl.java
  AL    server/container/guice/mailbox/src/test/java/org/apache/james/modules/mailbox/PreDeletionHookConfigurationTest.java
  AL    server/container/guice/mailbox/src/test/java/org/apache/james/modules/mailbox/ListenerConfigurationTest.java
  AL    server/container/guice/mailbox/src/test/java/org/apache/james/modules/mailbox/NoopPreDeletionHook.java
  AL    server/container/guice/mailbox/src/test/java/org/apache/james/modules/mailbox/NoopMailboxListener.java
  AL    server/container/guice/mailbox/src/test/java/org/apache/james/modules/mailbox/ConfiguredListener.java
  AL    server/container/guice/mailbox/src/test/java/org/apache/james/modules/mailbox/PreDeletionHookLoaderImplTest.java
  AL    server/container/guice/mailbox/src/test/java/org/apache/james/modules/mailbox/ReactiveNoopMailboxListener.java
  AL    server/container/guice/mailbox/src/test/java/org/apache/james/modules/mailbox/MailboxListenersLoaderImplTest.java
  AL    server/container/guice/mailbox/src/test/java/org/apache/james/modules/mailbox/PreDeletionHooksConfigurationTest.java
  AL    server/container/guice/mailbox/pom.xml
  AL    server/container/guice/utils/src/main/java/org/apache/james/utils/ExtensionModule.java
  AL    server/container/guice/utils/src/main/java/org/apache/james/utils/UserStartables.java
  AL    server/container/guice/utils/src/main/java/org/apache/james/utils/ExtensionConfiguration.java
  AL    server/container/guice/utils/src/main/java/org/apache/james/utils/FullyQualifiedClassName.java
  AL    server/container/guice/utils/src/main/java/org/apache/james/utils/GuiceGenericLoader.java
  AL    server/container/guice/utils/src/main/java/org/apache/james/utils/NamingScheme.java
  AL    server/container/guice/utils/src/main/java/org/apache/james/utils/ExtendedClassLoader.java
  AL    server/container/guice/utils/src/main/java/org/apache/james/utils/ClassName.java
  AL    server/container/guice/utils/src/main/java/org/apache/james/utils/PackageName.java
 !????? server/container/guice/utils/src/test/resources/extensions-empty.properties
 !????? server/container/guice/utils/src/test/resources/extensions-two.properties
 !????? server/container/guice/utils/src/test/resources/extensions-none.properties
 !????? server/container/guice/utils/src/test/resources/extensions-one.properties
  AL    server/container/guice/utils/src/test/java/org/apache/james/utils/NamingSchemeTest.java
  AL    server/container/guice/utils/src/test/java/org/apache/james/utils/ExtensionConfigurationTest.java
  AL    server/container/guice/utils/src/test/java/org/apache/james/utils/ClassNameTest.java
  AL    server/container/guice/utils/src/test/java/org/apache/james/utils/PackageNameTest.java
  AL    server/container/guice/utils/src/test/java/org/apache/james/utils/FullyQualifiedClassNameTest.java
  AL    server/container/guice/utils/pom.xml
  AL    server/container/guice/mailbox-plugin-deleted-messages-vault/src/main/java/org/apache/james/modules/vault/DeletedMessageVaultModule.java
  AL    server/container/guice/mailbox-plugin-deleted-messages-vault/src/main/java/org/apache/james/modules/vault/DeletedMessageVaultConfigurationModule.java
  AL    server/container/guice/mailbox-plugin-deleted-messages-vault/src/main/java/org/apache/james/modules/vault/VaultTaskSerializationModule.java
  AL    server/container/guice/mailbox-plugin-deleted-messages-vault/src/main/java/org/apache/james/modules/vault/DeletedMessageVaultRoutesModule.java
  AL    server/container/guice/mailbox-plugin-deleted-messages-vault/src/test/java/org/apache/james/modules/vault/TestDeleteMessageVaultPreDeletionHookModule.java
  AL    server/container/guice/mailbox-plugin-deleted-messages-vault/pom.xml
  AL    server/container/guice/mailrepository-loaders/src/main/java/org/apache/james/modules/mailrepository/guice/GuiceMailRepositoryLoader.java
  AL    server/container/guice/mailrepository-loaders/src/main/java/org/apache/james/modules/mailrepository/guice/MultiBoundGuiceRepositoryLoader.java
  AL    server/container/guice/mailrepository-loaders/pom.xml
  AL    server/container/guice/mailrepository-cassandra/src/main/java/org/apache/james/modules/mailrepository/CassandraMailRepositoryModule.java
  AL    server/container/guice/mailrepository-cassandra/pom.xml
  AL    server/container/guice/testing/dependency/src/main/java/org/apache/james/dependency/MyDependency.java
  AL    server/container/guice/testing/dependency/pom.xml
  AL    server/container/guice/testing/custom-mailets/src/main/java/com/custom/matchers/AnotherMatcher.java
  AL    server/container/guice/testing/custom-mailets/src/main/java/com/custom/mailets/AnotherMailet.java
  AL    server/container/guice/testing/custom-mailets/src/main/java/org/apache/james/transport/matchers/CustomMatcher.java
  AL    server/container/guice/testing/custom-mailets/src/main/java/org/apache/james/transport/mailets/CustomMailet.java
  AL    server/container/guice/testing/custom-mailets/src/main/java/org/apache/james/transport/mailets/CustomMailetWithCustomDependencyInConstructor.java
  AL    server/container/guice/testing/custom-mailets/src/main/java/org/apache/james/transport/mailets/MyGenericMailet.java
  AL    server/container/guice/testing/custom-mailets/src/main/java/org/apache/james/transport/mailets/MyInterface.java
  AL    server/container/guice/testing/custom-mailets/src/main/java/org/apache/james/transport/mailets/CustomMailetWithCustomDependencyInService.java
  AL    server/container/guice/testing/custom-mailets/pom.xml
 !????? server/container/guice/testing/custom-mailets/README.md
  AL    server/container/guice/testing/pom.xml
  AL    server/container/guice/testing/custom-mailets-implementation/src/main/java/org/apache/james/transport/mailets/MyInterfaceImplementation.java
  AL    server/container/guice/testing/custom-mailets-implementation/src/main/java/org/apache/james/transport/mailets/MyExtensionModule.java
  AL    server/container/guice/testing/custom-mailets-implementation/pom.xml
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/metrics/CassandraMetricsModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/webadmin/InconsistencySolvingRoutesModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/webadmin/TasksCleanupRoutesModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/webadmin/CassandraRoutesModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/CassandraConsistencyTaskSerializationModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/eventstore/CassandraEventStoreModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/TasksCleanupTaskSerializationModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraDeadLetterModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/DefaultBucketModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraSchemaVersionStartUpCheck.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraQuotaMailingModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraSessionModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraThreadIdGuessingModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/KeyspacesConfiguration.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraCacheSessionModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreDependenciesModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxQuotaLegacyModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraDeletedMessageVaultModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxQuotaModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/data/CassandraSieveQuotaModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/data/CassandraVacationModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/data/CassandraJmapModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/data/CassandraDLPConfigurationStoreModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/data/CassandraSieveQuotaLegacyModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/modules/data/CassandraSieveRepositoryModule.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/server/CassandraProbe.java
  AL    server/container/guice/cassandra/src/main/java/org/apache/james/server/CassandraTruncateTableTask.java
 !????? server/container/guice/cassandra/src/test/resources/modules/mailbox/cassandra.properties
  AL    server/container/guice/cassandra/src/test/java/org/apache/james/modules/mailbox/KeyspacesConfigurationTest.java
  AL    server/container/guice/cassandra/pom.xml
  AL    server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolver.java
  AL    server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
  AL    server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
  AL    server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagement.java
  AL    server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagementMBean.java
  AL    server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxCopierManagementMBean.java
  AL    server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagementMBean.java
  AL    server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/QuotaManagementMBean.java
  AL    server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerResolverException.java
  AL    server/container/mailbox-jmx/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
 !????? server/container/mailbox-jmx/src/test/resources/eml/frnog.eml
  AL    server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/ReIndexerManagementTest.java
  AL    server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
  AL    server/container/mailbox-jmx/pom.xml
  AL    server/container/lifecycle-api/src/main/java/org/apache/james/lifecycle/api/Startable.java
  AL    server/container/lifecycle-api/src/main/java/org/apache/james/lifecycle/api/Configurable.java
  AL    server/container/lifecycle-api/src/main/java/org/apache/james/lifecycle/api/LifecycleUtil.java
  AL    server/container/lifecycle-api/src/main/java/org/apache/james/lifecycle/api/Disposable.java
  AL    server/container/lifecycle-api/src/main/java/org/apache/james/lifecycle/api/ConfigurationSanitizer.java
  AL    server/container/lifecycle-api/src/main/java/org/apache/james/lifecycle/api/StartUpCheck.java
  AL    server/container/lifecycle-api/src/test/java/org/apache/james/lifecycle/api/StartUpCheckTest.java
  AL    server/container/lifecycle-api/src/test/java/org/apache/james/lifecycle/api/LeakAwareTest.java
  AL    server/container/lifecycle-api/src/reporting-site/site.xml
  AL    server/container/lifecycle-api/pom.xml
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaModule.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOV1.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepository.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/tables/CassandraSieveSpaceTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/tables/CassandraSieveTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/tables/CassandraSieveActiveTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/tables/CassandraSieveQuotaTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/tables/CassandraSieveClusterQuotaTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/FakeSieveQuotaDAO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/SieveQuota.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/ActiveScriptInfo.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/Script.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveDAO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/migration/SieveQuotaMigration.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOV2.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryModule.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/tables/CassandraDomainsTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainListModule.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/domainlist/cassandra/CassandraDomainList.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraMappingsSourcesDAO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/tables/CassandraRecipientRewriteTableTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/tables/CassandraMappingsSourcesTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTaskAdditionalInformationDTO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTaskDTO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigration.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableDAO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRRTModule.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/vacation/cassandra/CassandraVacationRepository.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/vacation/cassandra/CassandraVacationModule.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/vacation/cassandra/tables/CassandraNotificationTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/vacation/cassandra/tables/CassandraVacationTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/vacation/cassandra/CassandraNotificationRegistry.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/vacation/cassandra/CassandraNotificationRegistryModule.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/vacation/cassandra/CassandraVacationDAO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/vacation/cassandra/CassandraNotificationRegistryDAO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/dlp/eventsourcing/cassandra/DLPConfigurationModules.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/dlp/eventsourcing/cassandra/DLPConfigurationItemsRemovedDTO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/dlp/eventsourcing/cassandra/DLPConfigurationItemAddedDTO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/dlp/eventsourcing/cassandra/DLPConfigurationItemDTO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/tables/CassandraUserTable.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersRepositoryModule.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraRepositoryConfiguration.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersDAO.java
  AL    server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraDelegationStore.java
  B     server/data/data-cassandra/src/test/resources/json/dlp/eventsourcing/items_added_event_2.json
  B     server/data/data-cassandra/src/test/resources/json/dlp/eventsourcing/items_removed_event_2.json
  B     server/data/data-cassandra/src/test/resources/json/dlp/eventsourcing/items_removed_event_1.json
  B     server/data/data-cassandra/src/test/resources/json/dlp/eventsourcing/configuration_item_1.json
  B     server/data/data-cassandra/src/test/resources/json/dlp/eventsourcing/items_added_event_1.json
  AL    server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveCurrentUploadUsageCalculatorTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveRepositoryTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOV1Test.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/model/ScriptTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/model/SieveQuotaTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOContract.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveDAOTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/migration/SieveQuotaMigrationTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraActiveScriptDAOTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/CassandraSieveQuotaDAOV2Test.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CacheDomainListTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableDAOTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTaskSerializationTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraMappingsSourcesDAOTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/RewriteTablesTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/vacation/cassandra/CassandraVacationRepositoryTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/vacation/cassandra/CassandraNotificationRegistryTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/CassandraEventSourcingDLPConfigurationStoreTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/DTOTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/CassandraEventSourcingDLPConfigurationStoreExtension.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraDelegationStoreTest.java
  AL    server/data/data-cassandra/src/test/java/org/apache/james/user/cassandra/CassandraUsersRepositoryTest.java
  AL    server/data/data-cassandra/pom.xml
  AL    server/data/data-library/src/main/resources/META-INF/spring/data-context.xml
  AL    server/data/data-library/src/main/java/org/apache/james/domainlist/lib/DomainListManagement.java
  AL    server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
  AL    server/data/data-library/src/main/java/org/apache/james/domainlist/lib/EnvDetector.java
  AL    server/data/data-library/src/main/java/org/apache/james/domainlist/lib/DomainListConfiguration.java
  AL    server/data/data-library/src/main/java/org/apache/james/UserEntityValidator.java
  AL    server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
  AL    server/data/data-library/src/main/java/org/apache/james/repository/file/ClassLoaderObjectInputStream.java
  AL    server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentObjectRepository.java
  AL    server/data/data-library/src/main/java/org/apache/james/repository/file/ExtensionFileFilter.java
  AL    server/data/data-library/src/main/java/org/apache/james/repository/file/NumberedRepositoryFileFilter.java
  AL    server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentStreamRepository.java
  AL    server/data/data-library/src/main/java/org/apache/james/repository/api/StreamRepository.java
  AL    server/data/data-library/src/main/java/org/apache/james/repository/api/ObjectRepository.java
  AL    server/data/data-library/src/main/java/org/apache/james/RecipientRewriteTableUserEntityValidator.java
  AL    server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
  AL    server/data/data-library/src/main/java/org/apache/james/rrt/lib/CanSendFromImpl.java
  AL    server/data/data-library/src/main/java/org/apache/james/rrt/lib/AliasReverseResolverImpl.java
  AL    server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java
  AL    server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
  AL    server/data/data-library/src/main/java/org/apache/james/sieverepository/lib/SieveRepositoryManagement.java
  AL    server/data/data-library/src/main/java/org/apache/james/AggregateUserEntityValidator.java
  AL    server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/events/ConfigurationItemsAdded.java
  AL    server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/events/ConfigurationItemsRemoved.java
  AL    server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/EventSourcingDLPConfigurationStore.java
  AL    server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/commands/ClearCommandHandler.java
  AL    server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/commands/StoreCommand.java
  AL    server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/commands/StoreCommandHandler.java
  AL    server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/commands/ClearCommand.java
  AL    server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/aggregates/DLPAggregateId.java
  AL    server/data/data-library/src/main/java/org/apache/james/dlp/eventsourcing/aggregates/DLPDomainConfiguration.java
  AL    server/data/data-library/src/main/java/org/apache/james/DefaultVacationService.java
  AL    server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryManagement.java
  AL    server/data/data-library/src/main/java/org/apache/james/user/lib/package.html
  AL    server/data/data-library/src/main/java/org/apache/james/user/lib/model/Algorithm.java
  AL    server/data/data-library/src/main/java/org/apache/james/user/lib/model/DefaultUser.java
  AL    server/data/data-library/src/main/java/org/apache/james/user/lib/UsersRepositoryImpl.java
  AL    server/data/data-library/src/main/java/org/apache/james/user/lib/UsersDAO.java
  AL    server/data/data-library/src/main/java/org/apache/james/DefaultUserEntityValidator.java
 !????? server/data/data-library/src/test/resources/sieve/my_sieve
 !????? server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
  AL    server/data/data-library/src/test/java/org/apache/james/domainlist/api/mock/SimpleDomainList.java
  AL    server/data/data-library/src/test/java/org/apache/james/domainlist/lib/DomainListContract.java
  AL    server/data/data-library/src/test/java/org/apache/james/domainlist/lib/DomainListConfigurationTest.java
  AL    server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
  AL    server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableFixture.java
  AL    server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
  AL    server/data/data-library/src/test/java/org/apache/james/rrt/lib/RecipientRewriteTableContract.java
  AL    server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java
  AL    server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/SieveRepositoryContract.java
  AL    server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/SieveRepositoryManagementTest.java
  AL    server/data/data-library/src/test/java/org/apache/james/dlp/eventsourcing/events/ConfigurationItemsAddedTest.java
  AL    server/data/data-library/src/test/java/org/apache/james/dlp/eventsourcing/events/ConfigurationItemsRemovedTest.java
  AL    server/data/data-library/src/test/java/org/apache/james/dlp/eventsourcing/commands/StoreCommandTest.java
  AL    server/data/data-library/src/test/java/org/apache/james/dlp/eventsourcing/commands/ClearCommandTest.java
  AL    server/data/data-library/src/test/java/org/apache/james/dlp/eventsourcing/aggregates/DLPAggregateIdTest.java
  AL    server/data/data-library/src/test/java/org/apache/james/user/lib/UsersRepositoryContract.java
  AL    server/data/data-library/src/test/java/org/apache/james/user/lib/model/AlgorithmTest.java
  AL    server/data/data-library/src/test/java/org/apache/james/user/lib/model/DefaultUserTest.java
  AL    server/data/data-library/src/test/java/org/apache/james/DefaultVacationServiceTest.java
  AL    server/data/data-library/src/reporting-site/site.xml
  AL    server/data/data-library/pom.xml
  AL    server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyLDAPUsersDAO.java
  AL    server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
  AL    server/data/data-ldap/src/main/java/org/apache/james/user/ldap/LdapHealthCheck.java
  AL    server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyLDAPUser.java
  AL    server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyLDAPGroupRestriction.java
  AL    server/data/data-ldap/src/main/java/org/apache/james/user/ldap/LdapRepositoryConfiguration.java
 !????? server/data/data-ldap/src/test/resources/usersrepository-enableVirtualHosting.xml
 !????? server/data/data-ldap/src/test/resources/invalid/ldif-files/populate.ldif
 !????? server/data/data-ldap/src/test/resources/localpartLogin/ldif-files/populate.ldif
 !????? server/data/data-ldap/src/test/resources/ldif-files/populate.ldif
 !????? server/data/data-ldap/src/test/resources/usersrepository-supportsVirtualHosting.xml
 !????? server/data/data-ldap/src/test/resources/usersrepository-default.xml
  AL    server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryWithLocalPartAsLoginNameTest.java
  AL    server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java
  AL    server/data/data-ldap/src/test/java/org/apache/james/user/ldap/DockerLdapSingleton.java
  AL    server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryWithLDAPFailoverTest.java
  AL    server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryInvalidDnTest.java
  AL    server/data/data-ldap/src/test/java/org/apache/james/user/ldap/LdapHealthCheckTest.java
  AL    server/data/data-ldap/src/test/java/org/apache/james/user/ldap/LdapRepositoryConfigurationTest.java
  AL    server/data/data-ldap/src/test/java/org/apache/james/user/ldap/LdapGenericContainer.java
  AL    server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryEmptyListTest.java
  AL    server/data/data-ldap/src/reporting-site/site.xml
  AL    server/data/data-ldap/pom.xml
  AL    server/data/data-api/src/main/java/org/apache/james/domainlist/api/DomainList.java
  AL    server/data/data-api/src/main/java/org/apache/james/domainlist/api/AutoDetectedDomainRemovalException.java
  AL    server/data/data-api/src/main/java/org/apache/james/domainlist/api/DomainListException.java
  AL    server/data/data-api/src/main/java/org/apache/james/domainlist/api/DomainListManagementMBean.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/ForwardUsernameChangeTaskStep.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/RecipientRewriteTableUserDeletionTaskStep.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/AliasReverseResolver.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/SourceDomainIsNotInDomainListException.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableConfiguration.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/MappingConflictException.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/MappingAlreadyExistsException.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/LoopDetectedException.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/SameSourceAndDestinationException.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableException.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTable.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/CanSendFrom.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/api/InvalidRegexException.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/lib/SeparatorUtil.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/lib/SkipMappingProcessingException.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/lib/MappingSource.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
  AL    server/data/data-api/src/main/java/org/apache/james/rrt/lib/UserRewritter.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/SieveRepository.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/ScriptSummary.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/SieveCurrentUploadUsageCalculator.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/exception/IsActiveException.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/exception/StorageException.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/exception/QuotaExceededException.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/exception/SieveRepositoryException.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/exception/QuotaNotFoundException.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/exception/ScriptNotFoundException.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/exception/DuplicateException.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/SieveQuotaRepository.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/ScriptContent.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/SieveRepositoryManagementMBean.java
  AL    server/data/data-api/src/main/java/org/apache/james/sieverepository/api/ScriptName.java
  AL    server/data/data-api/src/main/java/org/apache/james/probe/SieveProbe.java
  AL    server/data/data-api/src/main/java/org/apache/james/probe/DataProbe.java
  AL    server/data/data-api/src/main/java/org/apache/james/vacation/api/AccountId.java
  AL    server/data/data-api/src/main/java/org/apache/james/vacation/api/VacationService.java
  AL    server/data/data-api/src/main/java/org/apache/james/vacation/api/VacationPatch.java
  AL    server/data/data-api/src/main/java/org/apache/james/vacation/api/VacationRepository.java
  AL    server/data/data-api/src/main/java/org/apache/james/vacation/api/NotificationRegistry.java
  AL    server/data/data-api/src/main/java/org/apache/james/vacation/api/VacationDeleteUserTaskStep.java
  AL    server/data/data-api/src/main/java/org/apache/james/vacation/api/Vacation.java
  AL    server/data/data-api/src/main/java/org/apache/james/vacation/api/RecipientId.java
  AL    server/data/data-api/src/main/java/org/apache/james/dlp/api/DLPRules.java
  AL    server/data/data-api/src/main/java/org/apache/james/dlp/api/DLPConfigurationStore.java
  AL    server/data/data-api/src/main/java/org/apache/james/dlp/api/DLPConfigurationItem.java
  AL    server/data/data-api/src/main/java/org/apache/james/dlp/api/DLPConfigurationLoader.java
  AL    server/data/data-api/src/main/java/org/apache/james/user/api/DelegationUserDeletionTaskStep.java
  AL    server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepositoryManagementMBean.java
  AL    server/data/data-api/src/main/java/org/apache/james/user/api/DelegationUsernameChangeTaskStep.java
  AL    server/data/data-api/src/main/java/org/apache/james/user/api/AlreadyExistInUsersRepositoryException.java
  AL    server/data/data-api/src/main/java/org/apache/james/user/api/model/User.java
  AL    server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepositoryException.java
  AL    server/data/data-api/src/main/java/org/apache/james/user/api/DeleteUserDataTaskStep.java
  AL    server/data/data-api/src/main/java/org/apache/james/user/api/UsernameChangeTaskStep.java
  AL    server/data/data-api/src/main/java/org/apache/james/user/api/InvalidUsernameException.java
  AL    server/data/data-api/src/main/java/org/apache/james/user/api/UsersRepository.java
  AL    server/data/data-api/src/main/java/org/apache/james/user/api/DelegationStore.java
  AL    server/data/data-api/src/test/resources/sieverepository.xml
  AL    server/data/data-api/src/test/resources/domainlist.xml
  AL    server/data/data-api/src/test/resources/mailrepositorystore.xml
  AL    server/data/data-api/src/test/resources/usersrepository.xml
  AL    server/data/data-api/src/test/resources/recipientrewritetable.xml
  AL    server/data/data-api/src/test/java/org/apache/james/rrt/api/RecipientRewriteTableConfigurationTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/rrt/lib/MappingSourceTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/rrt/lib/DomainRewriterTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/rrt/lib/SeparatorUtilTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/rrt/lib/ReplaceRewriterTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/rrt/lib/ThrowingRewriterTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/rrt/lib/MappingTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/rrt/lib/AliasReverseResolverContract.java
  AL    server/data/data-api/src/test/java/org/apache/james/rrt/lib/CanSendFromContract.java
  AL    server/data/data-api/src/test/java/org/apache/james/rrt/lib/RegexRewriterTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/sieverepository/api/SieveCurrentUploadUsageCalculatorContract.java
  AL    server/data/data-api/src/test/java/org/apache/james/sieverepository/api/ScriptSummaryTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/sieverepository/api/ScriptNameTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/vacation/api/AccountIdTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/vacation/api/VacationPatchTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/vacation/api/NotificationRegistryContract.java
  AL    server/data/data-api/src/test/java/org/apache/james/vacation/api/VacationTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/vacation/api/VacationRepositoryContract.java
  AL    server/data/data-api/src/test/java/org/apache/james/dlp/api/DLPConfigurationItemTest.java
  AL    server/data/data-api/src/test/java/org/apache/james/dlp/api/DLPConfigurationStoreContract.java
  AL    server/data/data-api/src/test/java/org/apache/james/dlp/api/DLPFixture.java
  AL    server/data/data-api/src/test/java/org/apache/james/user/api/DelegationStoreContract.java
  AL    server/data/data-api/src/reporting-site/site.xml
  AL    server/data/data-api/pom.xml
  AL    server/data/data-memory/src/main/java/org/apache/james/domainlist/memory/MemoryDomainList.java
  AL    server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
  AL    server/data/data-memory/src/main/java/org/apache/james/sieverepository/memory/InMemorySieveQuotaRepository.java
  AL    server/data/data-memory/src/main/java/org/apache/james/vacation/memory/MemoryVacationRepository.java
  AL    server/data/data-memory/src/main/java/org/apache/james/vacation/memory/MemoryNotificationRegistry.java
  AL    server/data/data-memory/src/main/java/org/apache/james/user/memory/NaiveDelegationStore.java
  AL    server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryDelegationStore.java
  AL    server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java
  AL    server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersDAO.java
  AL    server/data/data-memory/src/test/resources/fakemailrepositorystore.xml
  AL    server/data/data-memory/src/test/java/org/apache/james/domainlist/memory/MemoryDomainListTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTableTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/rrt/memory/RecipientRewriteTableUserDeletionTaskStepTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryStepdefs.java
  AL    server/data/data-memory/src/test/java/org/apache/james/rrt/memory/ForwardUsernameChangeTaskStepTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/rrt/memory/RewriteTablesTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/rrt/lib/AliasReverseResolverImplTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/rrt/lib/CanSendFromImplTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/vacation/memory/VacationDeleteUserTaskStepTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/vacation/memory/MemoryNotificationRegistryTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/vacation/memory/MemoryVacationRepositoryTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/dlp/memory/EventSourcingDLPConfigurationStoreTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/dlp/memory/InMemoryEventSourcingDLPConfigurationStoreExtension.java
  AL    server/data/data-memory/src/test/java/org/apache/james/user/memory/MemoryUsersRepositoryTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/user/memory/DelegationUsernameChangeTaskStepTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/user/memory/MemoryDelegationStoreTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/user/memory/UsersRepositoryManagementTest.java
  AL    server/data/data-memory/src/test/java/org/apache/james/user/memory/DelegationUserDeletionTaskStepTest.java
  AL    server/data/data-memory/pom.xml
  AL    server/data/data-jpa/src/main/java/org/apache/james/sieve/jpa/model/JPASieveScript.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/sieve/jpa/model/JPASieveQuota.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/sieve/jpa/JPASieveRepository.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/model/JPADomain.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/model/JPARecipientRewrite.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersDAO.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/user/jpa/model/JPAUser.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/jpa/healthcheck/JPAHealthCheck.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStore.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/mailrepository/jpa/model/JPAMail.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/mailrepository/jpa/model/JPAUrl.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/mailrepository/jpa/MimeMessageJPASource.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryFactory.java
  AL    server/data/data-jpa/src/main/java/org/apache/james/mailrepository/jpa/JPAMailRepository.java
 !????? server/data/data-jpa/src/test/resources/log4j.properties
  AL    server/data/data-jpa/src/test/resources/persistence.xml
  AL    server/data/data-jpa/src/test/java/org/apache/james/sieve/jpa/JpaSieveRepositoryTest.java
  AL    server/data/data-jpa/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java
  AL    server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java
  AL    server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java
  AL    server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPARecipientRewriteTableTest.java
  AL    server/data/data-jpa/src/test/java/org/apache/james/user/jpa/model/JPAUserTest.java
  AL    server/data/data-jpa/src/test/java/org/apache/james/user/jpa/JpaUsersRepositoryTest.java
  AL    server/data/data-jpa/src/test/java/org/apache/james/jpa/healthcheck/JPAHealthCheckTest.java
  AL    server/data/data-jpa/src/test/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStoreTest.java
  AL    server/data/data-jpa/src/test/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStoreExtension.java
  AL    server/data/data-jpa/src/test/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryTest.java
  AL    server/data/data-jpa/src/reporting-site/site.xml
  AL    server/data/data-jpa/pom.xml
  AL    server/data/data-file/src/main/java/org/apache/james/domainlist/xml/XMLDomainList.java
  AL    server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java
  AL    server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
  AL    server/data/data-file/src/main/java/org/apache/james/mailrepository/file/Lock.java
  AL    server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java
  AL    server/data/data-file/src/main/java/org/apache/james/mailrepository/file/MimeMessageStreamRepositorySource.java
 !????? server/data/data-file/src/test/resources/org/apache/james/mailrepository/testdata/Inbox
  AL    server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java
  AL    server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
  AL    server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
  AL    server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
  AL    server/data/data-file/src/test/java/org/apache/james/sieverepository/file/SieveFileRepositoryTest.java
  AL    server/data/data-file/src/test/java/org/apache/james/mailrepository/FileMailRepositoryTest.java
  AL    server/data/data-file/src/reporting-site/site.xml
  AL    server/data/data-file/pom.xml
  AL    server/data/data-jmap-cassandra/src/main/scala/org/apache/james/jmap/cassandra/utils/EmailAddressTupleUtil.scala
  AL    server/data/data-jmap-cassandra/src/main/scala/org/apache/james/jmap/cassandra/identity/CassandraCustomIdentityDAO.scala
  AL    server/data/data-jmap-cassandra/src/main/scala/org/apache/james/jmap/cassandra/identity/tables/CassandraCustomIdentityTable.scala
  AL    server/data/data-jmap-cassandra/src/main/scala/org/apache/james/jmap/cassandra/identity/CassandraCustomIdentityModule.scala
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenDAO.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/table/CassandraAccessTokenTable.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepository.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/access/CassandraAccessModule.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/pushsubscription/CassandraPushSubscriptionModule.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/pushsubscription/tables/CassandraPushSubscriptionTable.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/pushsubscription/CassandraPushSubscriptionDAO.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/pushsubscription/CassandraPushSubscriptionRepository.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/projections/CassandraEmailQueryViewModule.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/projections/CassandraMessageFastViewProjectionModule.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/projections/table/CassandraEmailQueryViewTable.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/projections/table/CassandraMessageFastViewProjectionTable.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/projections/CassandraMessageFastViewProjection.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/projections/CassandraEmailQueryView.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/upload/UploadModule.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/upload/UploadBucketName.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/upload/CassandraUploadUsageRepository.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/upload/CassandraUploadRepository.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/upload/UploadDAO.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/filtering/CassandraFilteringProjectionModule.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/filtering/RuleDTO.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/filtering/FilteringRuleSetDefineDTOModules.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/filtering/FilteringRuleSetDefinedDTO.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/filtering/CassandraFilteringProjection.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/filtering/FilteringIncrementalRuleChangeDTO.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/CassandraEmailChangeRepository.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/tables/CassandraMailboxChangeTable.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/tables/CassandraEmailChangeTable.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/CassandraMailboxChangeRepository.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/MailboxChangeRepositoryDAO.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/EmailChangeRepositoryDAO.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/CassandraChangesConfiguration.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/CassandraMailboxChangeModule.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/CassandraEmailChangeModule.java
  AL    server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/CassandraStateFactory.java
  B     server/data/data-jmap-cassandra/src/test/resources/json/event-v2.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/eventComplex-v2.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/increment-v4.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/increment-v3.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/event-v3.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/eventComplex-v4.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/event-v4.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/increment-v2.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/eventEmpty.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/event.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/eventComplex.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/eventComplex-v3.json
  B     server/data/data-jmap-cassandra/src/test/resources/json/increment.json
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepositoryTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/pushsubscription/CassandraPushSubscriptionRepositoryTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/projections/CassandraMessageFastViewProjectionTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/projections/CassandraEmailQueryViewTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/upload/CassandraUploadServiceTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/upload/CassandraUploadRepositoryTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/upload/UploadBucketNameTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/upload/CassandraJMAPCurrentUploadUsageCalculatorTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/upload/CassandraUploadUsageRepositoryTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/CassandraEventSourcingFilteringManagementNoProjectionTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/DTOTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/CassandraEventSourcingFilteringManagementTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/identity/CassandraCustomIdentityTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/change/CassandraChangesConfigurationTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/change/CassandraMailboxChangeRepositoryTest.java
  AL    server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/change/CassandraEmailChangeRepositoryTest.java
  AL    server/data/data-jmap-cassandra/pom.xml
  AL    server/data/data-jmap/src/main/scala/org/apache/james/jmap/memory/identity/MemoryCustomIdentityDAO.scala
  AL    server/data/data-jmap/src/main/scala/org/apache/james/jmap/api/model/Identity.scala
  AL    server/data/data-jmap/src/main/scala/org/apache/james/jmap/api/model/PushSubscription.scala
  AL    server/data/data-jmap/src/main/scala/org/apache/james/jmap/api/model/State.scala
  AL    server/data/data-jmap/src/main/scala/org/apache/james/jmap/api/model/TypeName.scala
  AL    server/data/data-jmap/src/main/scala/org/apache/james/jmap/api/model/EmailAddress.scala
  AL    server/data/data-jmap/src/main/scala/org/apache/james/jmap/api/identity/IdentityUserDeletionTaskStep.scala
  AL    server/data/data-jmap/src/main/scala/org/apache/james/jmap/api/identity/CustomIdentityDAO.scala
  AL    server/data/data-jmap/src/main/scala/org/apache/james/jmap/api/change/TypeStateFactory.scala
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepository.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/pushsubscription/MemoryPushSubscriptionRepository.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/pushsubscription/MemoryPushSubscriptionModule.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/projections/MemoryEmailQueryView.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/projections/MemoryMessageFastViewProjection.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepository.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/upload/InMemoryUploadUsageRepository.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/change/MemoryMailboxChangeRepository.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/change/MemoryEmailChangeRepository.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/mime4j/SizeUtils.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/mime4j/AvoidBinaryBodyBufferingBodyFactory.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/mime4j/AvoidBinaryBodyReadingBodyFactory.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/mime4j/FakeBinaryBody.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/access/exceptions/NotAnAccessTokenException.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/access/exceptions/InvalidAccessToken.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/access/AccessTokenRepository.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/access/AccessToken.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/pushsubscription/PushSubscriptionRepository.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/pushsubscription/PushSubscriptionHelpers.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/pushsubscription/PushDeleteUserDataTaskStep.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/projections/EmailQueryView.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/projections/MessageFastViewProjection.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/projections/MessageFastViewProjectionHealthCheck.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/projections/MessageFastViewPrecomputedProperties.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/model/Upload.scala
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/model/UploadId.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/model/AccountId.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/model/Preview.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/model/Size.scala
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/upload/UploadService.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/upload/UploadRepository.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/upload/JMAPCurrentUploadUsageCalculator.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/upload/RecomputeJMAPUploadCurrentQuotasService.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/upload/UploadUsageRepository.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/upload/UploadServiceDefaultImpl.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/upload/JmapUploadQuotaConfiguration.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/impl/FilteringAggregate.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/impl/DefineRulesCommand.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/impl/RuleSetDefined.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/impl/DefineRulesCommandHandler.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/impl/FilteringAggregateId.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/impl/EventSourcingFilteringManagement.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/impl/FilterUsernameChangeTaskStep.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/impl/IncrementalRuleChange.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/FiltersDeleteUserDataTaskStep.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/Version.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/Rule.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/Rules.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/filtering/FilteringManagement.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/exception/ChangeNotFoundException.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/exception/StateMismatchException.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/change/JmapChange.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/change/MailboxChange.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/change/CanNotCalculateChangesException.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/change/MailboxAndEmailChange.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/change/EmailChange.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/change/EmailChanges.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/change/MailboxChanges.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/change/EmailChangeRepository.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/change/State.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/change/Limit.java
  AL    server/data/data-jmap/src/main/java/org/apache/james/jmap/api/change/MailboxChangeRepository.java
  AL    server/data/data-jmap/src/test/scala/org/apache/james/jmap/memory/identity/IdentityUserDeletionTaskStepTest.scala
  AL    server/data/data-jmap/src/test/scala/org/apache/james/jmap/memory/identity/MemoryCustomIdentityTest.scala
  AL    server/data/data-jmap/src/test/scala/org/apache/james/jmap/api/pushsubscription/PushDeleteUserDataTaskStepTest.scala
  AL    server/data/data-jmap/src/test/scala/org/apache/james/jmap/api/pushsubscription/PushSubscriptionRepositoryContract.scala
  AL    server/data/data-jmap/src/test/scala/org/apache/james/jmap/api/upload/UploadServiceContract.scala
  AL    server/data/data-jmap/src/test/scala/org/apache/james/jmap/api/identity/IdentityRepositoryTest.scala
  AL    server/data/data-jmap/src/test/scala/org/apache/james/jmap/api/identity/CustomIdentityDAOContract.scala
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepositoryTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/pushsubscription/MemoryPushSubscriptionRepositoryTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/projections/MemoryMessageFastViewProjectionTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/projections/MemoryEmailQueryViewTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepositoryTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryJMAPCurrentUploadUsageCalculatorTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryUploadServiceTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/upload/InMemoryUploadUsageRepositoryTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/change/MemoryEmailChangeRepositoryTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/change/MemoryMailboxChangeRepositoryTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/access/AccessTokenRepositoryContract.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/access/AccessTokenTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/projections/EmailQueryViewContract.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/projections/MessageFastViewPrecomputedPropertiesTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/projections/MessageFastViewProjectionContract.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/projections/MessageFastViewProjectionHealthCheckTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/model/PreviewTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/upload/JMAPCurrentUploadUsageCalculatorContract.scala
 !????? server/data/data-jmap/src/test/java/org/apache/james/jmap/api/upload/UploadUsageRepositoryContract.scala
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/upload/UploadRepositoryContract.scala
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/FilteringAggregateIdTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/impl/FiltersDeleteUserDataTaskStepTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/impl/DefineRulesCommandTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/impl/IncrementalRuleChangeTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/impl/FilterUsernameChangeTaskStepTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/impl/InMemoryEventSourcingFilteringManagementTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/VersionTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RuleFixture.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/RulesTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/filtering/FilteringManagementContract.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/change/MailboxChangeRepositoryContract.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/change/MailboxChangeTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/change/EmailChangeTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/change/StateTest.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/change/EmailChangeRepositoryContract.java
  AL    server/data/data-jmap/src/test/java/org/apache/james/jmap/api/change/LimitTest.java
  AL    server/data/data-jmap/pom.xml
  AL    server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryFactory.java
  AL    server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStore.java
  AL    server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStore.java
  AL    server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MailRepositoryStoreConfiguration.java
  AL    server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepository.java
  AL    server/mailrepository/mailrepository-memory/src/main/java/org/apache/james/mailrepository/memory/SimpleMailRepositoryLoader.java
  AL    server/mailrepository/mailrepository-memory/src/test/resources/mailrepositorystore.xml
  AL    server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreTest.java
  AL    server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryTest.java
  AL    server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MailRepositoryStoreConfigurationTest.java
  AL    server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryEmptyErrorMailRepositoryHealthCheckTest.java
  AL    server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStoreExtension.java
  AL    server/mailrepository/mailrepository-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStoreTest.java
  AL    server/mailrepository/mailrepository-memory/pom.xml
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/Protocol.java
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepository.java
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/Initializable.java
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryLoader.java
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailKey.java
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryUrlStore.java
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryPath.java
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/EmptyErrorMailRepositoryHealthCheck.java
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/package-info.java
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryFactory.java
  AL    server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryUrl.java
  AL    server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryUrlStoreContract.java
  AL    server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java
  AL    server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/api/ProtocolTest.java
  AL    server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryPathTest.java
  AL    server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/api/MailKeyTest.java
  AL    server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/api/EmptyErrorMailRepositoryHealthCheckContract.java
  AL    server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryUrlTest.java
  AL    server/mailrepository/mailrepository-api/pom.xml
  AL    server/mailrepository/mailrepository-blob/src/main/scala/org/apache/james/mailrepository/blob/MailMetadata.scala
  AL    server/mailrepository/mailrepository-blob/src/main/scala/org/apache/james/mailrepository/blob/BlobMailRepository.scala
  AL    server/mailrepository/mailrepository-blob/src/main/scala/org/apache/james/mailrepository/blob/BlobMailRepositoryFactory.scala
  AL    server/mailrepository/mailrepository-blob/src/test/java/org/apache/james/mailrepository/blob/BlobMailRepositoryTest.java
  AL    server/mailrepository/mailrepository-blob/pom.xml
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryModule.java
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryKeysDAO.java
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/UrlsTable.java
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryFactory.java
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/MailRepositoryTableV2.java
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepository.java
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/MailRepositoryTable.java
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStore.java
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDaoV2.java
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlModule.java
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/MailRepositoryBlobReferenceSource.java
  AL    server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/UrlsDao.java
  AL    server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreTest.java
  AL    server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStoreExtension.java
  AL    server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryKeysDAOTest.java
  AL    server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryMailDAOTest.java
  AL    server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryWithFakeImplementationsTest.java
  AL    server/mailrepository/mailrepository-cassandra/src/test/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryTest.java
  AL    server/mailrepository/mailrepository-cassandra/pom.xml
  AL    server/testing/src/main/java/org/apache/james/util/docker/RateLimiters.java
  AL    server/testing/src/main/java/org/apache/james/util/docker/DockerContainer.java
  AL    server/testing/src/main/java/org/apache/james/util/docker/Images.java
  AL    server/testing/src/main/java/org/apache/james/jmap/LocalHostURIBuilder.java
  AL    server/testing/src/main/java/org/apache/james/jmap/JMAPTestingConstants.java
  AL    server/testing/src/main/java/org/apache/james/jmap/HttpJmapAuthentication.java
  AL    server/testing/src/main/java/org/apache/james/jmap/AccessToken.java
  AL    server/testing/src/main/java/org/apache/james/jmap/JmapCommonRequests.java
  AL    server/testing/src/main/java/org/apache/james/utils/SMTPSendingException.java
  AL    server/testing/src/main/java/org/apache/james/utils/SMTPMessageSenderExtension.java
  AL    server/testing/src/main/java/org/apache/james/utils/TestIMAPClient.java
  AL    server/testing/src/main/java/org/apache/james/utils/SmtpSendingStep.java
  AL    server/testing/src/main/java/org/apache/james/utils/SMTPMessageSender.java
  AL    server/testing/src/main/java/org/apache/james/utils/AllMatching.java
  AL    server/testing/src/main/java/org/apache/james/utils/FakeSmtp.java
  AL    server/testing/src/main/java/org/apache/james/utils/UpdatableTickingClock.java
  AL    server/testing/src/main/java/org/apache/james/utils/DiscreteDistribution.java
  AL    server/testing/src/main/java/org/apache/james/junit/TemporaryFolderExtension.java
  AL    server/testing/src/main/java/org/apache/james/junit/categories/BasicFeature.java
  AL    server/testing/src/main/java/org/apache/james/junit/ExecutorExtension.java
  AL    server/testing/src/test/java/org/apache/james/utils/SMTPMessageSenderTest.java
  AL    server/testing/src/test/java/org/apache/james/utils/DiscreteDistributionTest.java
  AL    server/testing/src/test/java/org/apache/james/utils/TestIMAPClientTest.java
  AL    server/testing/pom.xml
  B     server/grafana-reporting/prometheus-datasource/James_JMAP_CountBoard.json
  B     server/grafana-reporting/prometheus-datasource/James_DNS_Dashboard.json
  B     server/grafana-reporting/prometheus-datasource/James_webAdmin.json
  B     server/grafana-reporting/prometheus-datasource/James_IMAP_CountBoard.json
  B     server/grafana-reporting/prometheus-datasource/James_BlobStore.json
  B     server/grafana-reporting/prometheus-datasource/James_MATCHER.json
  B     server/grafana-reporting/prometheus-datasource/James_MAILET.json
  B     server/grafana-reporting/prometheus-datasource/James_SMTP_CountBoard.json
  B     server/grafana-reporting/prometheus-datasource/James_MailQueue.json
 !????? server/grafana-reporting/prometheus-datasource/README.md
  B     server/grafana-reporting/prometheus-datasource/James_IMAP_Board.json
  B     server/grafana-reporting/prometheus-datasource/James_JMAP_Board.json
  B     server/grafana-reporting/prometheus-datasource/James_JVM.json
  B     server/grafana-reporting/prometheus-datasource/James_SMTP_Board.json
  B     server/grafana-reporting/es-datasource/IMAP_count_board-1488774815587-dashboard.json
  B     server/grafana-reporting/es-datasource/JAMES_DNS_dashboard-1491268903944-dashboard.json
  B     server/grafana-reporting/es-datasource/DeletedMessagesVault-1563771591074-dashboard.json
  B     server/grafana-reporting/es-datasource/JMAP_board-1488774804236-dashboard.json
  B     server/grafana-reporting/es-datasource/CacheBlobStore-15911761170000-dashboard.json
  B     server/grafana-reporting/es-datasource/MATCHER-1490071813409-dashboard.json
  B     server/grafana-reporting/es-datasource/SMTP_count_board-1488774761350-dashboard.json
  B     server/grafana-reporting/es-datasource/SpamAssassin-1522226824255-dashboard.json
  B     server/grafana-reporting/es-datasource/Cassandra_driver-1504068385404-dashboard.json
  B     server/grafana-reporting/es-datasource/MailQueue-1490071879988-dashboard.json
  B     server/grafana-reporting/es-datasource/Miscalleneous-1490072265151-dashboard.json
  B     server/grafana-reporting/es-datasource/MAILET-1490071694187-dashboard.json
  B     server/grafana-reporting/es-datasource/MessageFastViewProjection-1575520507952.json
  B     server/grafana-reporting/es-datasource/BlobStore-1543222647953-dashboard.json
  B     server/grafana-reporting/es-datasource/James_JVM-1504068360629-dashboard.json
  B     server/grafana-reporting/es-datasource/JMAP_count_board-1488774795514-dashboard.json
 !????? server/grafana-reporting/es-datasource/README.md
  B     server/grafana-reporting/es-datasource/SMTP_board-1488774774172-dashboard.json
  B     server/grafana-reporting/es-datasource/Tika-1522226794419-dashboard.json
  B     server/grafana-reporting/es-datasource/PreDeletionHooks-1553684324244-dashboard.json
  B     server/grafana-reporting/es-datasource/MailboxListeners rate-1552903378376.json
  B     server/grafana-reporting/es-datasource/MailboxListeners-1528958667486-dashboard.json
  B     server/grafana-reporting/es-datasource/IMAP_board-1488774825351-dashboard.json
  AL    mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICal4JConfigurator.java
  AL    mailet/icalendar/src/main/java/org/apache/james/transport/mailets/model/ICALAttributeDTO.java
  AL    mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToHeader.java
  AL    mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICSSanitizer.java
  AL    mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java
  AL    mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
 !????? mailet/icalendar/src/test/resources/ics_in_header.eml
 !????? mailet/icalendar/src/test/resources/ics/no_event.ics
 !????? mailet/icalendar/src/test/resources/ics/meeting_without_dtstamp.ics
 !????? mailet/icalendar/src/test/resources/ics/ics_with_error.ics
 !????? mailet/icalendar/src/test/resources/ics/meeting_without_sequence.ics
 !????? mailet/icalendar/src/test/resources/ics/meeting_2.ics
 !????? mailet/icalendar/src/test/resources/ics/meeting_without_uid.ics
 !????? mailet/icalendar/src/test/resources/ics/meeting.ics
 !????? mailet/icalendar/src/test/resources/ics/meeting_without_method.ics
  AL    mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICalendarParserTest.java
  AL    mailet/icalendar/src/test/java/org/apache/james/transport/mailets/model/ICALAttributeDTOTest.java
  AL    mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java
  AL    mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToHeadersTest.java
  AL    mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICSSanitizerTest.java
  AL    mailet/icalendar/pom.xml
  AL    mailet/test/src/main/java/org/apache/mailet/base/test/FakeMailContext.java
  AL    mailet/test/src/main/java/org/apache/mailet/base/test/FakeMatcherConfig.java
  AL    mailet/test/src/main/java/org/apache/mailet/base/test/MailUtil.java
  AL    mailet/test/src/main/java/org/apache/mailet/base/test/FakeMailetConfig.java
  AL    mailet/test/src/main/java/org/apache/mailet/base/test/FakeMail.java
  AL    mailet/test/src/main/java/org/apache/mailet/base/MailAddressFixture.java
  AL    mailet/test/src/test/java/org/apache/mailet/base/test/FakeMailTest.java
  AL    mailet/test/pom.xml
  N     mailet/standard/LICENSE.txt
  N     mailet/standard/NOTICE.txt
  AL    mailet/standard/src/main/appended-resources/supplemental-models.xml
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HasMimeType.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHeaderWithPrefix.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/GenericRegexMatcher.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/package.html
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SMTPIsAuthNetwork.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/CompareNumericHeaderValue.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIs.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/RecipientIs.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderIs.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderIsNull.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHabeasWarrantMark.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SMTPAuthUserIs.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderDomainIs.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/IsFromMailingList.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HasMailAttributeWithValueRegex.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HasMimeTypeAnySubPart.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/RecipientIsLocal.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHeader.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/UserIs.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SentByMailet.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HasException.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/AtMost.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SubjectStartsWith.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/CommandListservMatcher.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/TooManyLines.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/CommandForListserv.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/All.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderIsLocal.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SubjectIs.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/NESSpamCheck.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/TooManyRecipients.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HostIs.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/FileRegexMatcher.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HasMailAttribute.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/RecipientDomainIs.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/FetchedFrom.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HostIsLocal.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SMTPAuthSuccessful.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/IsSingleRecipient.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIsLocal.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderIsRegex.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/utils/MailAddressCollectionReader.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HasMailAttributeWithValue.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/RecipientIsRegex.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/SizeGreaterThan.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/RelayLimit.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HasMimeTypeParameter.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/matchers/HasAttachment.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/package.html
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/ToProcessor.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/Null.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/MimeDecodingMailet.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/SetErrorMessage.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/PropagateError.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/WrapText.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/ContentReplacer.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMailAttribute.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveAllMailAttributes.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeaders.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/MappingArgument.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/PatternExtractor.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/package.html
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Counter.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Identity.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/DumpSystemErr.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/ExceptionThrowingMailet.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/PostmasterAlias.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/ContactExtractor.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/Expires.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/RecipientToLowerCase.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/UnwrapText.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/AddDeliveredToHeader.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceConfig.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplacingPattern.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/AddHabeasWarrantMark.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/AddSubjectPrefix.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/AddFooter.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMailAttribute.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeaderByPrefix.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageModifier.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageUtils.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceContent.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/ClassifyBounce.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/ServerTime.java
  AL    mailet/standard/src/main/java/org/apache/james/transport/mailets/OnlyText.java
  A     mailet/standard/src/test/resources/nested.zip
  AL    mailet/standard/src/test/resources/org/apache/james/mailet/standard/mailets/replaceSubject.patterns
 !????? mailet/standard/src/test/resources/mime/sendToRemoteHttp.mime
 !????? mailet/standard/src/test/resources/mime/gmail.mime
 !????? mailet/standard/src/test/resources/mime/headerFolded.mime
 !????? mailet/standard/src/test/resources/mime/space.eml
 !????? mailet/standard/src/test/resources/mime/incorrect-headers.mime
  A     mailet/standard/src/test/resources/sonde.zip
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/TooManyLinesTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/TooManyRecipientsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SentByMailetTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SizeGreaterThanTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/AttachmentFileNameIsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMailAttributeTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SMTPAuthSuccessfulTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SenderIsLocalTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/util/MailAddressCollectionReaderTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/FetchedFromTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectStartsWithTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMailAttributeWithValueTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/AllTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SenderIsNullTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/RecipientIsRegexTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/UserIsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeParameterTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeAnySubPartTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SenderHostIsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/RecipientIsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SubjectIsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/RecipientDomainIsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderWithPrefixTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HostIsLocalTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SenderIsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SenderDomainIsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SMTPAuthUserIsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SMTPIsAuthNetworkTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/AbstractHasMailAttributeTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/IsSingleRecipientTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/AtMostTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SenderHostIsLocalTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HasExceptionTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/RecipientIsLocalTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HostIsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMailAttributeWithValueRegexTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/NESSpamCheckTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/IsFromMailingListTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/SenderIsRegexTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/matchers/HasAttachmentTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/SerialiseToHTTPTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderByPrefixTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/PostmasterAliasTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/PatternExtractorTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/OnlyTextTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMimeHeaderTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/HeadersToHTTPTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/UnwrapTextTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/MimeDecodingMailetTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/AddDeliveredToHeaderTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/RecipientToLowerCaseTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/ToProcessorTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/MappingArgumentTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMailAttributeTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/ContentReplacerTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/UseHeaderRecipientsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/ExpiresTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageUtilsTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageModifierTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/NullTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/PropagateErrorTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/AddSubjectPrefixTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/SetErrorMessageTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeadersTest.java
  AL    mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveAllMailAttributesTest.java
  AL    mailet/standard/pom.xml
 !????? mailet/standard/LICENSE.apache
 !????? mailet/standard/LICENSE.activation
  N     mailet/standard/RELEASE_NOTES.txt
 !????? mailet/standard/LICENSE.mail
  N     mailet/ai/LICENSE.txt
  N     mailet/ai/NOTICE.txt
  N     mailet/ai/BUILDING.txt
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/TokenProbabilityStrength.java
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCUtil.java
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCBayesianAnalyzer.java
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalyzer.java
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/TokenCounter.java
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/SystemContext.java
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/Tokenizer.java
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/SqlResources.java
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/CorpusLoaderThread.java
  AL    mailet/ai/src/main/java/org/apache/james/ai/classic/TokenCollector.java
  AL    mailet/ai/pom.xml
  AL    mailet/src/reporting-site/site-standard.xml
  AL    mailet/src/reporting-site/site/site.xml
  AL    mailet/src/reporting-site/site-crypto.xml
  AL    mailet/src/reporting-site/site-base.xml
  AL    mailet/src/reporting-site/site.xml
  AL    mailet/src/reporting-site/site-mailetdoc.xml
  AL    mailet/api/src/main/java/org/apache/mailet/HostAddress.java
  AL    mailet/api/src/main/java/org/apache/mailet/package.html
  AL    mailet/api/src/main/java/org/apache/mailet/AttributeName.java
  AL    mailet/api/src/main/java/org/apache/mailet/TemporaryLookupException.java
  AL    mailet/api/src/main/java/org/apache/mailet/ArbitrarySerializable.java
  AL    mailet/api/src/main/java/org/apache/mailet/Matcher.java
  AL    mailet/api/src/main/java/org/apache/mailet/ExcludeFromDocumentation.java
  AL    mailet/api/src/main/java/org/apache/mailet/StorageDirective.java
  AL    mailet/api/src/main/java/org/apache/mailet/Mail.java
  AL    mailet/api/src/main/java/org/apache/mailet/MailAddress.java
  AL    mailet/api/src/main/java/org/apache/mailet/MailetConfig.java
  AL    mailet/api/src/main/java/org/apache/mailet/MatcherConfig.java
  AL    mailet/api/src/main/java/org/apache/mailet/Serializer.java
  AL    mailet/api/src/main/java/org/apache/mailet/Mailet.java
  AL    mailet/api/src/main/java/org/apache/mailet/LoopPrevention.java
  AL    mailet/api/src/main/java/org/apache/mailet/MailetContext.java
  AL    mailet/api/src/main/java/org/apache/mailet/Attribute.java
  AL    mailet/api/src/main/java/org/apache/mailet/LookupException.java
  AL    mailet/api/src/main/java/org/apache/mailet/AttributeValue.java
  AL    mailet/api/src/main/java/org/apache/mailet/Experimental.java
  AL    mailet/api/src/main/java/org/apache/mailet/PerRecipientHeaders.java
  AL    mailet/api/src/main/java/org/apache/mailet/MailetException.java
  AL    mailet/api/src/main/java/org/apache/mailet/DsnParameters.java
  AL    mailet/api/src/main/java/org/apache/mailet/AttributeUtils.java
  AL    mailet/api/src/main/java/org/apache/mailet/ProcessingState.java
  AL    mailet/api/src/test/java/org/apache/mailet/AttributeValueTest.java
  AL    mailet/api/src/test/java/org/apache/mailet/AttributeTest.java
  AL    mailet/api/src/test/java/org/apache/mailet/AttributeNameTest.java
  AL    mailet/api/src/test/java/org/apache/mailet/ContractMailTest.java
  AL    mailet/api/src/test/java/org/apache/mailet/DsnParametersTest.java
  AL    mailet/api/src/test/java/org/apache/mailet/LoopPreventionTest.java
  AL    mailet/api/pom.xml
  N     mailet/api/NOTICE
  N     mailet/api/RELEASE_NOTES.txt
  N     mailet/api/LICENSE
  GEN   mailet/pom.xml
  AL    mailet/amqp/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java
  AL    mailet/amqp/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttributeTest.java
  AL    mailet/amqp/pom.xml
  AL    mailet/base/src/main/appended-resources/supplemental-models.xml
  AL    mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetector.java
  AL    mailet/base/src/main/java/org/apache/mailet/base/package.html
  AL    mailet/base/src/main/java/org/apache/mailet/base/RFC2822Headers.java
  AL    mailet/base/src/main/java/org/apache/mailet/base/GenericMatcher.java
  AL    mailet/base/src/main/java/org/apache/mailet/base/MailetUtil.java
  AL    mailet/base/src/main/java/org/apache/mailet/base/FlowedMessageUtils.java
  AL    mailet/base/src/main/java/org/apache/mailet/base/GenericMailet.java
  AL    mailet/base/src/main/java/org/apache/mailet/base/Converter7Bit.java
  AL    mailet/base/src/main/java/org/apache/mailet/base/StringUtils.java
  AL    mailet/base/src/main/java/org/apache/mailet/base/MailetPipelineLogging.java
  AL    mailet/base/src/main/java/org/apache/mailet/base/GenericRecipientMatcher.java
  AL    mailet/base/src/main/java/org/apache/mailet/base/DateFormats.java
  AL    mailet/base/src/main/java/org/apache/mailet/base/MatcherInverter.java
 !????? mailet/base/src/test/resources/eml/text-only-7bit.eml
 !????? mailet/base/src/test/resources/eml/multipart-7bit.eml
 !????? mailet/base/src/test/resources/eml/multipart-7bit-attachment-content.txt
 !????? mailet/base/src/test/resources/eml/multipart-8bit-attachment-content.txt
 !????? mailet/base/src/test/resources/eml/multipart-8bit.eml
 !????? mailet/base/src/test/resources/eml/text-only-8bit.eml
  AL    mailet/base/src/test/java/org/apache/mailet/base/MatcherInverterTest.java
  AL    mailet/base/src/test/java/org/apache/mailet/base/Converter7BitTest.java
  AL    mailet/base/src/test/java/org/apache/mailet/base/FlowedMessageUtilsTest.java
  AL    mailet/base/src/test/java/org/apache/mailet/base/GenericMailetTest.java
  AL    mailet/base/src/test/java/org/apache/mailet/base/MailetPipelineLoggingTest.java
  AL    mailet/base/src/test/java/org/apache/mailet/base/StringUtilsTest.java
  AL    mailet/base/src/test/java/org/apache/mailet/base/MailetUtilTest.java
  AL    mailet/base/pom.xml
  N     mailet/base/NOTICE
  N     mailet/base/RELEASE_NOTES.txt
  N     mailet/base/LICENSE
  N     mailet/mailetdocs-maven-plugin/LICENSE.txt
  N     mailet/mailetdocs-maven-plugin/NOTICE.txt
  AL    mailet/mailetdocs-maven-plugin/src/main/appended-resources/supplemental-models.xml
  AL    mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/MailetMatcherDescriptor.java
  AL    mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/AggregateMailetdocsReport.java
  AL    mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/MailetdocsReport.java
  AL    mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/AbstractMailetdocsReport.java
  AL    mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java
  AL    mailet/mailetdocs-maven-plugin/src/test/java/org/apache/james/mailet/MailetMatcherDescriptorTest.java
  AL    mailet/mailetdocs-maven-plugin/src/test/java/org/apache/james/mailet/excluded/ExcludedFromDocumentationMailet.java
  AL    mailet/mailetdocs-maven-plugin/src/test/java/org/apache/james/mailet/excluded/NotExcludedFromDocumentationMailet.java
  AL    mailet/mailetdocs-maven-plugin/src/test/java/org/apache/james/mailet/constructor/ConstructorMailet.java
  AL    mailet/mailetdocs-maven-plugin/src/test/java/org/apache/james/mailet/DefaultDescriptorsExtractorTest.java
  AL    mailet/mailetdocs-maven-plugin/src/test/java/org/apache/james/mailet/experimental/NonExperimentalMailet.java
  AL    mailet/mailetdocs-maven-plugin/src/test/java/org/apache/james/mailet/experimental/ExperimentalMailet.java
  AL    mailet/mailetdocs-maven-plugin/pom.xml
  N     mailet/mailetdocs-maven-plugin/RELEASE_NOTES.txt
  N     mailet/crypto/src/main/resources/META-INF/README.txt
  AL    mailet/crypto/src/main/appended-resources/supplemental-models.xml
  AL    mailet/crypto/src/main/java/org/apache/james/transport/package.html
  AL    mailet/crypto/src/main/java/org/apache/james/transport/SMIMESignerInfo.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/matcher/package.html
  AL    mailet/crypto/src/main/java/org/apache/james/transport/matcher/IsSMIMESigned.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/matcher/IsX509CertificateSubject.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/matcher/IsSMIMEEncrypted.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/KeyStoreHolder.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/KeyHolder.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/SMIMEAttributeNames.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/InitJCE.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMEDecrypt.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/mailets/Sign.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/mailets/package.html
  AL    mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMESign.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMECheckSignature.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
  AL    mailet/crypto/src/main/java/org/apache/james/transport/SMIMEKeyHolder.java
  AL    mailet/crypto/pom.xml
  N     mailet/crypto/NOTICE
  N     mailet/crypto/RELEASE_NOTES.txt
  N     mailet/crypto/README.txt
  N     mailet/crypto/LICENSE
  AL    event-bus/distributed/src/main/java/org/apache/james/events/RegistrationQueueName.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/RoutingKeyConverter.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/EventDispatcher.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistrationHandler.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/RabbitMQMailboxEventBusDeadLetterQueueHealthCheck.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/ListenerExecutor.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/RabbitMQEventBus.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/NamingStrategy.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistration.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/KeyReconnectionHandler.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/LocalListenerRegistry.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/WaitDelayGenerator.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/RabbitMQJmapEventBusDeadLetterQueueHealthCheck.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/KeyRegistrationHandler.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/KeyRegistration.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/GroupConsumerRetry.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/RegistrationBinder.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/EventBusReconnectionHandler.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/RabbitEventBusConsumerHealthCheck.java
  AL    event-bus/distributed/src/main/java/org/apache/james/events/EventBusId.java
  AL    event-bus/distributed/src/test/java/org/apache/james/events/EventBusIdTest.java
  AL    event-bus/distributed/src/test/java/org/apache/james/events/WaitDelayGeneratorTest.java
  AL    event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQJmapEventBusDeadLetterQueueHealthCheckTest.java
  AL    event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQEventBusTest.java
  AL    event-bus/distributed/src/test/java/org/apache/james/events/RoutingKeyConverterTest.java
  AL    event-bus/distributed/src/test/java/org/apache/james/events/LocalListenerRegistryTest.java
  AL    event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQMailboxEventBusDeadLetterQueueHealthCheckTest.java
  AL    event-bus/distributed/src/test/java/org/apache/james/events/NetworkErrorTest.java
  AL    event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQEventBusDeadLetterQueueUpgradeTest.java
  AL    event-bus/distributed/pom.xml
  AL    event-bus/api/src/main/java/org/apache/james/events/EventDeadLetters.java
  AL    event-bus/api/src/main/java/org/apache/james/events/EventListener.java
  AL    event-bus/api/src/main/java/org/apache/james/events/GroupAlreadyRegistered.java
  AL    event-bus/api/src/main/java/org/apache/james/events/GroupRegistrationNotFound.java
  AL    event-bus/api/src/main/java/org/apache/james/events/Group.java
  AL    event-bus/api/src/main/java/org/apache/james/events/Event.java
  AL    event-bus/api/src/main/java/org/apache/james/events/EventBus.java
  AL    event-bus/api/src/main/java/org/apache/james/events/RegistrationKey.java
  AL    event-bus/api/src/main/java/org/apache/james/events/RetryBackoffConfiguration.java
  AL    event-bus/api/src/main/java/org/apache/james/events/EventBusName.java
  AL    event-bus/api/src/main/java/org/apache/james/events/DispatchingFailureGroup.java
  AL    event-bus/api/src/main/java/org/apache/james/events/Registration.java
  AL    event-bus/api/src/main/java/org/apache/james/events/EventSerializer.java
  AL    event-bus/api/src/main/java/org/apache/james/events/EventDeadLettersHealthCheck.java
  AL    event-bus/api/src/main/java/org/apache/james/mailbox/events/GenericGroup.java
  AL    event-bus/api/src/test/java/org/apache/james/events/RetryBackoffConfigurationTest.java
  AL    event-bus/api/src/test/java/org/apache/james/events/EventCollector.java
  AL    event-bus/api/src/test/java/org/apache/james/events/ErrorHandlingContract.java
  AL    event-bus/api/src/test/java/org/apache/james/events/KeyContract.java
  AL    event-bus/api/src/test/java/org/apache/james/events/EventBusContract.java
  AL    event-bus/api/src/test/java/org/apache/james/events/GroupContract.java
  AL    event-bus/api/src/test/java/org/apache/james/events/InsertionIdTest.java
  AL    event-bus/api/src/test/java/org/apache/james/events/EventBusTestFixture.java
  AL    event-bus/api/src/test/java/org/apache/james/events/DispatchingFailureGroupTest.java
  AL    event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersHealthCheckContract.java
  AL    event-bus/api/src/test/java/org/apache/james/events/GroupTest.java
  AL    event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersContract.java
  AL    event-bus/api/src/test/java/org/apache/james/events/EventBusConcurrentTestContract.java
  AL    event-bus/api/pom.xml
  AL    event-bus/pom.xml
  AL    event-bus/in-vm/src/main/java/org/apache/james/events/delivery/EventDelivery.java
  AL    event-bus/in-vm/src/main/java/org/apache/james/events/delivery/InVmEventDelivery.java
  AL    event-bus/in-vm/src/main/java/org/apache/james/events/InVMEventBus.java
  AL    event-bus/in-vm/src/main/java/org/apache/james/events/MemoryEventDeadLetters.java
  AL    event-bus/in-vm/src/test/java/org/apache/james/events/delivery/InVmEventDeliveryTest.java
  AL    event-bus/in-vm/src/test/java/org/apache/james/events/MemoryEventDeadLettersHealthCheckTest.java
  AL    event-bus/in-vm/src/test/java/org/apache/james/events/MemoryEventDeadLettersTest.java
  AL    event-bus/in-vm/src/test/java/org/apache/james/events/InVMEventBusTest.java
  AL    event-bus/in-vm/pom.xml
  AL    event-bus/cassandra/src/main/java/org/apache/james/events/CassandraEventDeadLetters.java
  AL    event-bus/cassandra/src/main/java/org/apache/james/events/tables/CassandraEventDeadLettersTable.java
  AL    event-bus/cassandra/src/main/java/org/apache/james/events/tables/CassandraEventDeadLettersGroupTable.java
  AL    event-bus/cassandra/src/main/java/org/apache/james/events/CassandraEventDeadLettersDAO.java
  AL    event-bus/cassandra/src/main/java/org/apache/james/events/CassandraEventDeadLettersGroupDAO.java
  AL    event-bus/cassandra/src/main/java/org/apache/james/events/CassandraEventDeadLettersModule.java
  AL    event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersGroupDAOTest.java
  AL    event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersDAOTest.java
  AL    event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersHealthCheckTest.java
  AL    event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersTest.java
  AL    event-bus/cassandra/pom.xml
  AL    examples/custom-webadmin-route/src/main/resources/webadmin.properties
  AL    examples/custom-webadmin-route/src/main/java/org/apache/james/examples/RouteA.java
  AL    examples/custom-webadmin-route/pom.xml
 !????? examples/custom-webadmin-route/README.md
 !????? examples/metrics-graphite/docker-compose.yml
 !????? examples/metrics-graphite/james/extensions.properties
  AL    examples/metrics-graphite/src/main/java/org/apache/james/examples/GraphiteExporter.java
  AL    examples/metrics-graphite/pom.xml
 !????? examples/metrics-graphite/README.md
  B     examples/metrics-graphite/image/metrics-graphite.png
  AL    examples/custom-smtp-hooks/src/main/resources/smtpserver.xml
  AL    examples/custom-smtp-hooks/src/main/java/org/apache/james/examples/LoggingRcptHook.java
  AL    examples/custom-smtp-hooks/pom.xml
 !????? examples/custom-smtp-hooks/README.md
 !????? examples/proxy-smtp/docker-compose.yml
 !????? examples/proxy-smtp/haproxy.cfg
  AL    examples/proxy-smtp/imapserver.xml
 !????? examples/proxy-smtp/README.md
  AL    examples/proxy-smtp/smtpserver.xml
  AL    examples/custom-smtp-command/src/main/resources/smtpserver.xml
  AL    examples/custom-smtp-command/src/main/java/org/apache/james/examples/MyNoopCmdHandler.java
  AL    examples/custom-smtp-command/src/main/java/org/apache/james/examples/MyCmdHandlerLoader.java
  AL    examples/custom-smtp-command/pom.xml
 !????? examples/custom-smtp-command/README.md
  AL    examples/custom-listeners/src/main/resources/listeners.xml
  AL    examples/custom-listeners/src/main/java/org/apache/james/examples/custom/listeners/SetCustomFlagOnBigMessages.java
  AL    examples/custom-listeners/src/test/java/org/apache/james/examples/custom/listeners/SetCustomFlagOnBigMessagesTest.java
  AL    examples/custom-listeners/pom.xml
 !????? examples/custom-listeners/README.md
 !????? examples/custom-imap/docker-compose.yml
  AL    examples/custom-imap/src/main/resources/imapserver.xml
  AL    examples/custom-imap/src/main/java/org/apache/james/examples/imap/PingCommandParser.java
  AL    examples/custom-imap/src/main/java/org/apache/james/examples/imap/PingProcessor.java
  AL    examples/custom-imap/src/main/java/org/apache/james/examples/imap/PingImapPackages.java
  AL    examples/custom-imap/src/main/java/org/apache/james/examples/imap/PingResponseEncoder.java
  AL    examples/custom-imap/src/test/resources/listeners.xml
  AL    examples/custom-imap/src/test/resources/dnsservice.xml
  AL    examples/custom-imap/src/test/resources/lmtpserver.xml
  AL    examples/custom-imap/src/test/resources/mailetcontainer.xml
  AL    examples/custom-imap/src/test/resources/managesieveserver.xml
  AL    examples/custom-imap/src/test/resources/domainlist.xml
  AL    examples/custom-imap/src/test/resources/mailrepositorystore.xml
  AL    examples/custom-imap/src/test/resources/usersrepository.xml
  B     examples/custom-imap/src/test/resources/keystore
  AL    examples/custom-imap/src/test/resources/smtpserver.xml
  AL    examples/custom-imap/src/test/resources/pop3server.xml
  AL    examples/custom-imap/src/test/java/org/apache/james/examples/imap/ImapCustomPackagesTest.java
  AL    examples/custom-imap/pom.xml
 !????? examples/custom-imap/README.md
  AL    examples/custom-imap/sample-configuration/imapserver.xml
  AL    examples/custom-mailets/src/main/resources/mailetcontainer.xml
  AL    examples/custom-mailets/src/main/java/org/apache/james/examples/custom/mailets/IsDelayedForMoreThan.java
  AL    examples/custom-mailets/src/main/java/org/apache/james/examples/custom/mailets/SendPromotionCode.java
  AL    examples/custom-mailets/pom.xml
 !????? examples/custom-mailets/README.md
  AL    examples/custom-healthcheck/src/main/resources/healthcheck.properties
  AL    examples/custom-healthcheck/src/main/java/org/apache/james/examples/HealthCheckA.java
  AL    examples/custom-healthcheck/pom.xml
 !????? examples/custom-healthcheck/README.md
  AL    examples/pom.xml
 !????? examples/README.md
  B     examples/imap-autoconf/thunderbird_autoconf.png
  B     examples/imap-autoconf/outlook_enjoyAutoConfig.jpg
 !????? examples/imap-autoconf/content/mail/config-v1.1.xml
 !????? examples/imap-autoconf/content/Autodiscover/Autodiscover.xml
 !????? examples/imap-autoconf/content/.well-known/autoconfig/mail/config-v1.1.xml
 !????? examples/imap-autoconf/content/autodiscover/autodiscover.xml
 !????? examples/imap-autoconf/docker-compose.yml
 !????? examples/imap-autoconf/README.adoc
  B     examples/imap-autoconf/outlook_enterMailAddress.jpg
 !????? examples/imap-autoconf/default.conf
  B     examples/imap-autoconf/outlook_enterPassword.jpg
  AL    examples/custom-james-assembly/src/main/java/org/apache/james/examples/CustomJamesServerMain.java
  AL    examples/custom-james-assembly/pom.xml
 !????? examples/custom-james-assembly/README.md
  AL    examples/custom-james-assembly/sample-configuration/mailetcontainer.xml
  AL    examples/custom-james-assembly/sample-configuration/imapserver.xml
  AL    examples/custom-james-assembly/sample-configuration/mailrepositorystore.xml
  AL    examples/custom-james-assembly/sample-configuration/logback.xml
  AL    examples/custom-james-assembly/sample-configuration/smtpserver.xml
  B     examples/oidc/keycloak/realm-oidc.json
 !????? examples/oidc/test.sh
 !????? examples/oidc/docker-compose.yml
 !????? examples/oidc/james/imapserver.xml
  AL    examples/oidc/james/usersrepository.xml
 !????? examples/oidc/james/jmap.properties
 !????? examples/oidc/james/smtpserver.xml
  B     examples/oidc/_media/oidc-sso.png
  B     examples/oidc/_media/smtp-setting.png
 !????? examples/oidc/_media/oidc-sso.drawio
  B     examples/oidc/_media/imap-setting.png
  B     examples/oidc/_media/receive-mail.png
  B     examples/oidc/_media/send-mail.png
  B     examples/oidc/_media/login-popup.png
  B     examples/oidc/_media/IMAP-SMTP-oidc.png
 !????? examples/oidc/_media/oidc-slo.drawio
  B     examples/oidc/_media/oidc-slo.png
 !????? examples/oidc/_media/IMAP_SMTP oidc.drawio
 !????? examples/oidc/apisix/conf/apisix.yaml
 !????? examples/oidc/apisix/conf/config.yaml
 !????? examples/oidc/README.md
 !????? examples/oidc/ldap/populate.ldif
  AL    mailbox/spring/src/main/resources/META-INF/spring/mailbox-locker.xml
  AL    mailbox/spring/src/main/resources/META-INF/spring/quota.xml
  AL    mailbox/spring/src/main/resources/META-INF/spring/event-system.xml
  AL    mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
  AL    mailbox/spring/src/main/resources/META-INF/spring/mailbox-no-authorizator.xml
  AL    mailbox/spring/src/main/resources/META-INF/spring/mailbox-authenticator-anonymous.xml
  AL    mailbox/spring/src/main/resources/log4j.properties
  AL    mailbox/spring/src/main/java/org/apache/james/mailbox/spring/SpringMailbox.java
  AL    mailbox/spring/src/main/java/org/apache/james/mailbox/spring/AnonymousAuthenticator.java
  AL    mailbox/spring/src/main/java/org/apache/james/mailbox/spring/NoAuthorizator.java
  AL    mailbox/spring/src/main/java/org/apache/james/mailbox/spring/MailboxInitializer.java
  AL    mailbox/spring/src/test/resources/META-INF/spring/mailbox-index-lucene-test.xml
  AL    mailbox/spring/src/test/resources/META-INF/spring/metrics.xml
  AL    mailbox/spring/src/test/resources/META-INF/spring/quota-alias.xml
  AL    mailbox/spring/src/test/resources/META-INF/persistence.xml
  AL    mailbox/spring/src/test/resources/META-INF/org/apache/james/database.properties
  AL    mailbox/spring/src/test/java/org/apache/james/mailbox/spring/SpringMailboxTest.java
 !????? mailbox/spring/src/test/README.md
  AL    mailbox/spring/src/reporting-site/site.xml
  AL    mailbox/spring/pom.xml
  AL    mailbox/plugin/quota-mailing-memory/src/test/java/org/apache/james/mailbox/quota/memory/listeners/InMemoryQuotaMailingListenersIntegrationTest.java
  AL    mailbox/plugin/quota-mailing-memory/src/test/java/org/apache/james/mailbox/quota/memory/listeners/InMemoryQuotaThresholdConfigurationChangesTest.java
  AL    mailbox/plugin/quota-mailing-memory/pom.xml
  AL    mailbox/plugin/quota-search/src/main/java/org/apache/james/quota/search/Offset.java
  AL    mailbox/plugin/quota-search/src/main/java/org/apache/james/quota/search/QuotaClause.java
  AL    mailbox/plugin/quota-search/src/main/java/org/apache/james/quota/search/QuotaBoundary.java
  AL    mailbox/plugin/quota-search/src/main/java/org/apache/james/quota/search/QuotaQuery.java
  AL    mailbox/plugin/quota-search/src/main/java/org/apache/james/quota/search/QuotaSearcher.java
  AL    mailbox/plugin/quota-search/src/main/java/org/apache/james/quota/search/Limit.java
  AL    mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/OffsetTest.java
  AL    mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/QuotaSearchTestSystem.java
  AL    mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/QuotaSearcherContract.java
  AL    mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/QuotaClauseTest.java
  AL    mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/QuotaQueryTest.java
  AL    mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/QuotaBoundaryFixture.java
  AL    mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/QuotaSearchFixture.java
  AL    mailbox/plugin/quota-search/src/test/java/org/apache/james/quota/search/LimitTest.java
  AL    mailbox/plugin/quota-search/pom.xml
  AL    mailbox/plugin/quota-mailing-cassandra/src/main/java/org/apache/james/mailbox/quota/cassandra/dto/QuotaEventDTOModules.java
  AL    mailbox/plugin/quota-mailing-cassandra/src/main/java/org/apache/james/mailbox/quota/cassandra/dto/HistoryEvolutionDTO.java
  AL    mailbox/plugin/quota-mailing-cassandra/src/main/java/org/apache/james/mailbox/quota/cassandra/dto/QuotaThresholdChangedEventDTO.java
  AL    mailbox/plugin/quota-mailing-cassandra/src/main/java/org/apache/james/mailbox/quota/cassandra/dto/QuotaDTO.java
  B     mailbox/plugin/quota-mailing-cassandra/src/test/resources/json/event2.json
  B     mailbox/plugin/quota-mailing-cassandra/src/test/resources/json/event.json
  B     mailbox/plugin/quota-mailing-cassandra/src/test/resources/json/event4.json
  B     mailbox/plugin/quota-mailing-cassandra/src/test/resources/json/event3.json
  AL    mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/listeners/CassandraQuotaMailingListenersIntegrationTest.java
  AL    mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/dto/DTOTest.java
  AL    mailbox/plugin/quota-mailing-cassandra/pom.xml
  AL    mailbox/plugin/quota-search-scanning/src/main/java/org/apache/james/quota/search/scanning/ClauseConverter.java
  AL    mailbox/plugin/quota-search-scanning/src/main/java/org/apache/james/quota/search/scanning/ScanningQuotaSearcher.java
  AL    mailbox/plugin/quota-search-scanning/src/test/java/org/apache/james/quota/search/scanning/MemoryQuotaSearchTestSystemExtension.java
  AL    mailbox/plugin/quota-search-scanning/src/test/java/org/apache/james/quota/search/scanning/ScanningQuotaSearcherTest.java
  AL    mailbox/plugin/quota-search-scanning/pom.xml
  AL    mailbox/plugin/quota-search-opensearch/src/main/java/org/apache/james/quota/search/opensearch/json/QuotaRatioAsJson.java
  AL    mailbox/plugin/quota-search-opensearch/src/main/java/org/apache/james/quota/search/opensearch/json/QuotaRatioToOpenSearchJson.java
  AL    mailbox/plugin/quota-search-opensearch/src/main/java/org/apache/james/quota/search/opensearch/json/JsonMessageConstants.java
  AL    mailbox/plugin/quota-search-opensearch/src/main/java/org/apache/james/quota/search/opensearch/QuotaSearchIndexCreationUtil.java
  AL    mailbox/plugin/quota-search-opensearch/src/main/java/org/apache/james/quota/search/opensearch/events/OpenSearchQuotaMailboxListener.java
  AL    mailbox/plugin/quota-search-opensearch/src/main/java/org/apache/james/quota/search/opensearch/QuotaQueryConverter.java
  AL    mailbox/plugin/quota-search-opensearch/src/main/java/org/apache/james/quota/search/opensearch/OpenSearchQuotaSearcher.java
  AL    mailbox/plugin/quota-search-opensearch/src/main/java/org/apache/james/quota/search/opensearch/QuotaRatioMappingFactory.java
  AL    mailbox/plugin/quota-search-opensearch/src/main/java/org/apache/james/quota/search/opensearch/UserRoutingKeyFactory.java
  AL    mailbox/plugin/quota-search-opensearch/src/main/java/org/apache/james/quota/search/opensearch/QuotaRatioOpenSearchConstants.java
  AL    mailbox/plugin/quota-search-opensearch/src/main/java/org/apache/james/quota/search/opensearch/OpenSearchQuotaConfiguration.java
  B     mailbox/plugin/quota-search-opensearch/src/test/resources/quotaRatioNoDomain.json
  B     mailbox/plugin/quota-search-opensearch/src/test/resources/quotaRatio.json
  AL    mailbox/plugin/quota-search-opensearch/src/test/java/org/apache/james/quota/search/opensearch/OpenSearchQuotaSearchTestSystemExtension.java
  AL    mailbox/plugin/quota-search-opensearch/src/test/java/org/apache/james/quota/search/opensearch/UserRoutingKeyFactoryTest.java
  AL    mailbox/plugin/quota-search-opensearch/src/test/java/org/apache/james/quota/search/opensearch/json/QuotaRatioAsJsonTest.java
  AL    mailbox/plugin/quota-search-opensearch/src/test/java/org/apache/james/quota/search/opensearch/json/QuotaRatioToOpenSearchJsonTest.java
  AL    mailbox/plugin/quota-search-opensearch/src/test/java/org/apache/james/quota/search/opensearch/OpenSearchQuotaConfigurationTest.java
  AL    mailbox/plugin/quota-search-opensearch/src/test/java/org/apache/james/quota/search/opensearch/events/OpenSearchQuotaMailboxListenerTest.java
  AL    mailbox/plugin/quota-search-opensearch/src/test/java/org/apache/james/quota/search/opensearch/QuotaQueryConverterTest.java
  AL    mailbox/plugin/quota-search-opensearch/src/test/java/org/apache/james/quota/search/opensearch/OpenSearchQuotaSearcherTest.java
  AL    mailbox/plugin/quota-search-opensearch/pom.xml
 !????? mailbox/plugin/quota-mailing/src/main/resources/templates/QuotaThresholdMailBody.mustache
 !????? mailbox/plugin/quota-mailing/src/main/resources/templates/QuotaThresholdMailSubject.mustache
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdCrossingListener.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/QuotaMailingListenerConfiguration.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/events/QuotaThresholdChangedEvent.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/subscribers/QuotaThresholdMailer.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/subscribers/QuotaThresholdNotice.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/commands/DetectThresholdCrossing.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/commands/DetectThresholdCrossingHandler.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/aggregates/UserQuotaThresholds.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/model/QuotaThresholdChange.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/model/QuotaThresholdHistory.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/model/HistoryEvolution.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/model/QuotaThresholds.java
  AL    mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/model/QuotaThreshold.java
 !????? mailbox/plugin/quota-mailing/src/test/resources/templates/body1.mustache
 !????? mailbox/plugin/quota-mailing/src/test/resources/templates/body2.mustache
 !????? mailbox/plugin/quota-mailing/src/test/resources/templates/subject2.mustache
 !????? mailbox/plugin/quota-mailing/src/test/resources/templates/subject1.mustache
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdListenersTestSystem.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdConfigurationChangesTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdMailingIntegrationTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdCrossingListenerTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/subscribers/QuotaThresholdNoticeTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/commands/DetectThresholdCrossingTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/aggregates/UserQuotaThresholdsTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/mailing/QuotaMailingListenerConfigurationTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/model/HistoryEvolutionTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/model/QuotaThresholdTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/model/QuotaThresholdChangeTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/model/QuotaThresholdHistoryTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/model/QuotaThresholdsTest.java
  AL    mailbox/plugin/quota-mailing/src/test/java/org/apache/james/mailbox/quota/model/QuotaThresholdFixture.java
  AL    mailbox/plugin/quota-mailing/pom.xml
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageZipper.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/memory/metadata/MemoryDeletedMessageMetadataVault.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTask.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVault.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BucketNameGenerator.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTaskDTO.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/metadata/DeletedMessageWithStorageInformation.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/metadata/DeletedMessageMetadataVault.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/metadata/StorageInformation.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVaultHook.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/VaultConfiguration.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageContentNotFoundException.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/Query.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/DeletedMessageField.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/FieldName.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/Combinator.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/CriterionFactory.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/Criterion.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/search/Operator.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageVault.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessage.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/dto/DeletedMessageWithStorageInformationConverter.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/dto/DeletedMessageWithStorageInformationDTO.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/dto/query/QueryDTO.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/dto/query/QueryElementDeserializer.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/dto/query/QueryElementSerializer.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/dto/query/CriterionDTO.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/dto/query/QueryTranslator.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/dto/query/QueryElement.java
  AL    mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/DeletedMessageConverter.java
  B     mailbox/plugin/deleted-messages-vault/src/test/resources/json/deleted_message_with_storage_information.json
  B     mailbox/plugin/deleted-messages-vault/src/test/resources/json/deleted_message.json
  B     mailbox/plugin/deleted-messages-vault/src/test/resources/json/storage_information.json
  B     mailbox/plugin/deleted-messages-vault/src/test/resources/json/deleted_message_with_storage_information_invalid.json
  B     mailbox/plugin/deleted-messages-vault/src/test/resources/json/deleted_message_with_subject.json
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageMailboxContextTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/memory/metadata/MemoryDeletedMessageMetadataVaultTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVaultTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTaskSerializationTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BucketNameGeneratorTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageConverterTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultSearchContract.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageZipperTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/VaultConfigurationTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/metadata/DeletedMessageMetadataVaultContract.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/metadata/StorageInformationTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/metadata/DeletedMessageVaultMetadataFixture.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/metadata/DeletedMessageWithStorageInformationTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/dto/DeletedMessageWithStorageInformationDTOTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/dto/query/QueryElementSerializerTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/dto/query/QueryTranslatorTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/dto/query/QueryElementDeserializerTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/dto/query/QueryElementTest.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageFixture.java
  AL    mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultContract.java
  AL    mailbox/plugin/deleted-messages-vault/pom.xml
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/main/java/org/apache/james/vault/metadata/MetadataSerializer.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/main/java/org/apache/james/vault/metadata/UserPerBucketDAO.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/main/java/org/apache/james/vault/metadata/StorageInformationDAO.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/main/java/org/apache/james/vault/metadata/CassandraDeletedMessageMetadataVault.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/main/java/org/apache/james/vault/metadata/DeletedMessageMetadataModule.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/main/java/org/apache/james/vault/metadata/DeletedMessageVaultDeletionCallback.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/main/java/org/apache/james/vault/metadata/MetadataDAO.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/main/java/org/apache/james/vault/metadata/DeletedMessageIdentifier.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/test/java/org/apache/james/vault/metadata/MetadataDAOTest.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/test/java/org/apache/james/vault/metadata/CassandraDeletedMessageMetadataVaultTest.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/test/java/org/apache/james/vault/metadata/DeletedMessageIdentifierTest.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/test/java/org/apache/james/vault/metadata/UserPerBucketDAOTest.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/src/test/java/org/apache/james/vault/metadata/StorageInformationDAOTest.java
  AL    mailbox/plugin/deleted-messages-vault-cassandra/pom.xml
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailer.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MessageToOpenSearchJson.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MessageUpdateJson.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePart.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePartParser.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/Subjects.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/HeaderCollection.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/RootMimePartContainerBuilder.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePartContainerBuilder.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/JsonMessageConstants.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailers.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/IndexableMessage.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/IndexAttachments.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/IndexHeaders.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/IndexBody.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/events/OpenSearchListeningMessageSearchIndex.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/events/DisabledListeningMessageSearchIndex.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxOpenSearchConstants.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/CriterionConverter.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/SortConverter.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/QueryConverter.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/DateResolutionFormatter.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/search/OpenSearchSearcher.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxIdRoutingKeyFactory.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/OpenSearchMailboxConfiguration.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxMappingFactory.java
  AL    mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/MailboxIndexCreationUtil.java
 !????? mailbox/opensearch/src/test/resources/eml/emailWith3Attachments.eml
 !????? mailbox/opensearch/src/test/resources/eml/mailCustomStringHeader.eml
 !????? mailbox/opensearch/src/test/resources/eml/bodyMakeTikaToFail.eml
 !????? mailbox/opensearch/src/test/resources/eml/alternative_simple.eml
  B     mailbox/opensearch/src/test/resources/eml/inlined-mixed.json
  B     mailbox/opensearch/src/test/resources/eml/alternative_simple.json
  B     mailbox/opensearch/src/test/resources/eml/alternative.json
 !????? mailbox/opensearch/src/test/resources/eml/mailCustomDateHeader.eml
 !????? mailbox/opensearch/src/test/resources/eml/inlined-mixed.eml
 !????? mailbox/opensearch/src/test/resources/eml/mailWithHeaders.eml
 !????? mailbox/opensearch/src/test/resources/eml/htmlContent.txt
 !????? mailbox/opensearch/src/test/resources/eml/alternative.eml
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/HeaderCollectionTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/FieldImpl.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailerTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailersTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/SubjectsTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/MessageToOpenSearchJsonTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/IndexableMessageTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/MimePartTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/OpenSearchMailboxConfigurationTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/events/OpenSearchListeningMessageSearchIndexTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/OpenSearchOptimizeMoveIntegrationTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/query/SearchQueryTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/query/DateResolutionFormatterTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/search/OpenSearchSearcherTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/OpenSearchIntegrationTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/MailboxIdRoutingKeyFactoryTest.java
  AL    mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/OpenSearchNoIndexBodyIntegrationTest.java
  AL    mailbox/opensearch/src/reporting-site/site.xml
  AL    mailbox/opensearch/pom.xml
  AL    mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAttachmentMapper.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAnnotationMapper.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryModSeqProvider.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageIdMapper.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryUidProvider.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxSessionMapperFactory.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryPerUserMaxQuotaManager.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageId.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java
  AL    mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryId.java
 !????? mailbox/memory/src/test/resources/test.eml
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryCombinationManagerTestSystem.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/listener/MailboxSubscriptionListenerTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxManagerAttachmentTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/task/MemoryRecomputeCurrentQuotasServiceTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperAclTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageIdMapperTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAnnotationMapperTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMessageMapperTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAttachmentMapperTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMessageWithAttachmentMapperTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMessageMoveTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMessageManagerTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerStressTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryPerUserMaxQuotaManagerTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaCalculatorTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManagerStorageTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryCombinationManagerTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapperTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerProvider.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryMessageIdManagerSideEffectTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryQuotaMailboxMessageManagerTest.java
  AL    mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMessageManagerTestSystem.java
  AL    mailbox/memory/src/reporting-site/site.xml
  AL    mailbox/memory/pom.xml
  AL    mailbox/event/json/src/main/scala/org/apache/james/event/json/MailboxEventSerializer.scala
  AL    mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxDeletionSerializationTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxRenamedSerializationTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/SerializerFixture.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/ExpungedSerializationTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/MessageMoveEventSerializationTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/QuotaUsageUpdatedEventSerializationTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/QuotaRootTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MessageIdTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/SessionIdTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MailboxPathTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MailboxIdTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/EventIdTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/UserTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/FlagsTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MessageUidTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/UpdatedFlagsTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/MessageMetaDataTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/QuotaSizeTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/ACLDiffTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/ModSeqTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/dtos/QuotaCountTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/FlagsUpdatedSerializationTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxAddedSerializationTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/AddedSerializationTest.java
  AL    mailbox/event/json/src/test/java/org/apache/james/event/json/MailboxACLUpdatedEventSerializationTest.java
  AL    mailbox/event/json/pom.xml
  AL    mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaTextExtractor.java
  AL    mailbox/tika/src/main/java/org/apache/james/mailbox/tika/ContentTypeFilteringTextExtractor.java
  AL    mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaHttpClientImpl.java
  AL    mailbox/tika/src/main/java/org/apache/james/mailbox/tika/CachingTextExtractor.java
  AL    mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaConfiguration.java
  AL    mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaHttpClient.java
  B     mailbox/tika/src/test/resources/documents/writter.docx
  A     mailbox/tika/src/test/resources/documents/slides.odp
  B     mailbox/tika/src/test/resources/documents/calc.xlsx
  A     mailbox/tika/src/test/resources/documents/writter.odt
  B     mailbox/tika/src/test/resources/documents/fake.txt
  B     mailbox/tika/src/test/resources/documents/slides.pptx
 !????? mailbox/tika/src/test/resources/documents/Text.txt
  A     mailbox/tika/src/test/resources/documents/calc.ods
  B     mailbox/tika/src/test/resources/documents/PDF.pdf
  AL    mailbox/tika/src/test/java/org/apache/james/mailbox/tika/CachingTextExtractorTest.java
  AL    mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaExtension.java
  AL    mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaContainerSingleton.java
  AL    mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaConfigurationTest.java
  AL    mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaContainer.java
  AL    mailbox/tika/src/test/java/org/apache/james/mailbox/tika/ContentTypeFilteringTextExtractorTest.java
  AL    mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaTextExtractorTest.java
  AL    mailbox/tika/pom.xml
  AL    mailbox/tools/jpa-migrator/src/main/java/org/apache/james/mailbox/tools/jpa/migrator/JpaMigrator.java
  AL    mailbox/tools/jpa-migrator/src/main/java/org/apache/james/mailbox/tools/jpa/migrator/exception/JpaMigrateException.java
  AL    mailbox/tools/jpa-migrator/src/main/java/org/apache/james/mailbox/tools/jpa/migrator/command/JpaMigrateQuery.java
  AL    mailbox/tools/jpa-migrator/src/main/java/org/apache/james/mailbox/tools/jpa/migrator/command/IMAP172JpaMigrateCommand.java
  AL    mailbox/tools/jpa-migrator/src/main/java/org/apache/james/mailbox/tools/jpa/migrator/command/IMAP168JpaMigrateCommand.java
  AL    mailbox/tools/jpa-migrator/src/main/java/org/apache/james/mailbox/tools/jpa/migrator/command/IMAP165JpaMigrateCommand.java
  AL    mailbox/tools/jpa-migrator/src/main/java/org/apache/james/mailbox/tools/jpa/migrator/command/IMAP184JpaMigrateCommand.java
  AL    mailbox/tools/jpa-migrator/src/main/java/org/apache/james/mailbox/tools/jpa/migrator/command/IMAP176JpaMigrateCommand.java
  AL    mailbox/tools/jpa-migrator/src/main/java/org/apache/james/mailbox/tools/jpa/migrator/command/JpaMigrateCommand.java
  AL    mailbox/tools/jpa-migrator/src/main/java/org/apache/james/mailbox/tools/jpa/migrator/command/IMAP180JpaMigrateCommand.java
  AL    mailbox/tools/jpa-migrator/src/test/java/org/apache/james/mailbox/tools/jpa/migrator/JpaMigratorTest.java
  AL    mailbox/tools/jpa-migrator/pom.xml
  AL    mailbox/tools/copier/src/main/java/org/apache/james/mailbox/tools/copier/MailboxCopierImpl.java
  AL    mailbox/tools/copier/src/test/java/org/apache/james/mailbox/tools/copier/MailboxCopierTest.java
  AL    mailbox/tools/copier/pom.xml
  AL    mailbox/tools/indexer/src/main/resources/META-INF/spring/mailbox-tools.xml
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTask.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskAdditionalInformationDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/UserReindexingTaskDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskAdditionalInformationDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/FullReindexingTask.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexerImpl.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/events/ImpactingEvent.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/events/ImpactingEventType.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexingTask.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexingContext.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/UserReindexingTaskAdditionalInformationDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/RunningOptionsDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexingContextInformation.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexingContextInformationDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskAdditionalInformationDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/FullReindexingTaskDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTask.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerImpl.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/UserReindexingTask.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskDTO.java
  AL    mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ThrowsReIndexer.java
  AL    mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java
  AL    mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReIndexerImplTest.java
  AL    mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskSerializationTest.java
  AL    mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/CassandraReIndexerImplTest.java
  AL    mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java
  AL    mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskSerializationTest.java
  AL    mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/FullReindexingTaskSerializationTest.java
  AL    mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/UserReindexingTaskSerializationTest.java
  AL    mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskSerializationTest.java
  AL    mailbox/tools/indexer/pom.xml
  AL    mailbox/tools/quota-recompute/src/main/java/org/apache/james/mailbox/quota/task/RecomputeCurrentQuotasService.java
  AL    mailbox/tools/quota-recompute/src/main/java/org/apache/james/mailbox/quota/task/RecomputeSingleComponentCurrentQuotasService.java
  AL    mailbox/tools/quota-recompute/src/main/java/org/apache/james/mailbox/quota/task/RecomputeCurrentQuotasTask.java
  AL    mailbox/tools/quota-recompute/src/main/java/org/apache/james/mailbox/quota/task/RunningOptionsDTO.java
  AL    mailbox/tools/quota-recompute/src/main/java/org/apache/james/mailbox/quota/task/RecomputeSingleQuotaComponentResult.java
  AL    mailbox/tools/quota-recompute/src/main/java/org/apache/james/mailbox/quota/task/RecomputeSieveUploadCurrentQuotasService.java
  AL    mailbox/tools/quota-recompute/src/main/java/org/apache/james/mailbox/quota/task/RecomputeCurrentQuotasTaskAdditionalInformationDTO.java
  AL    mailbox/tools/quota-recompute/src/main/java/org/apache/james/mailbox/quota/task/RecomputeCurrentQuotasTaskDTO.java
  AL    mailbox/tools/quota-recompute/src/main/java/org/apache/james/mailbox/quota/task/RecomputeMailboxCurrentQuotasService.java
  AL    mailbox/tools/quota-recompute/src/test/java/org/apache/james/mailbox/quota/task/RecomputeCurrentQuotasTaskSerializationTest.java
  AL    mailbox/tools/quota-recompute/src/test/java/org/apache/james/mailbox/quota/task/RecomputeCurrentQuotasServiceContract.java
  AL    mailbox/tools/quota-recompute/pom.xml
  AL    mailbox/src/reporting-site/site.xml
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/RequestAware.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSessionIdGenerator.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/acl/ACLDiff.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/acl/PositiveUserACLChanged.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/acl/UnionMailboxACLResolver.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/acl/PositiveUserACLDiff.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/acl/MailboxACLResolver.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/MailboxPathLocker.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/AttachmentManager.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/DefaultMailboxes.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/MailboxAnnotationManager.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/Authorizator.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/Authenticator.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/events/MailboxEvents.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/events/MessageMoveEvent.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/events/MailboxIdRegistrationKey.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/FlagsBuilder.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/SystemMailboxesProvider.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/RightManager.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/QuotaRatio.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageResultIterator.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxId.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/Cid.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/ContentType.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/Header.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageRange.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MultimailboxesSearchQuery.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/ComposedMessageId.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/SerializableQuotaUsageValue.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroup.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageIdDto.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/InputStreamContent.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/ByteSourceContent.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/SerializableQuotaLimitValue.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageId.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxMetaData.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MimeDescriptor.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/Headers.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/Mailbox.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/AttachmentId.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/ThreadId.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageMetaData.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/ComposedMessageIdWithMetaData.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/SearchQuery.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/Quota.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageAttachmentMetadata.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxNameExpression.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/search/Wildcard.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/search/ExactName.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/search/PrefixedRegex.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/search/PrefixedWildcard.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/PartContentDescriptor.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/DeleteResult.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/HeaderAndBodyByteContent.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxCounters.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/CurrentQuotas.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxConstants.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/Content.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/QuotaOperation.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/SerializableQuota.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/ByteContent.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageMoves.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotation.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/UidValidity.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/AttachmentMetadata.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotationKey.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MimePath.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/Profiles.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/ParsedAttachment.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/QuotaRoot.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageResult.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/copier/MailboxCopier.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/AttachmentContentLoader.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/MetadataWithMailboxId.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/probe/QuotaProbe.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/probe/ACLProbe.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/probe/MailboxProbe.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/quota/QuotaRootDeserializer.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/quota/MaxQuotaManager.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/quota/QuotaRootResolver.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/quota/QuotaManager.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/quota/CurrentQuotaManager.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/quota/UserQuotaRootResolver.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/ThreadNotFoundException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/UnsupportedRightException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/HasEmptyMailboxNameInHierarchyException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/InboxAlreadyCreated.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxRoleNotFoundException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/BadCredentialsException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/ForbiddenDelegationException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/MessageRangeException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/AttachmentNotFoundException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/OverQuotaException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/UnsupportedOperationException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/UnsupportedSearchException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxExistsException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/DifferentDomainException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/UserDoesNotExistException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/TooLongMailboxNameException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/AnnotationException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/SubscriptionException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxSecurityException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNotFoundException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/ReadOnlyException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/UnsupportedCriteriaException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/InsufficientRightsException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/exception/MailboxNameException.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexingExecutionFailures.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/indexer/IndexingDetailInformation.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/indexer/MessageIdReIndexer.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/indexer/ReIndexer.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/Role.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/MailboxUtil.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/MessageUid.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/ApplicableFlagBuilder.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/SessionProvider.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/ModSeq.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/MessageIdManager.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/extension/PreDeletionHook.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/extractor/ParsedContent.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/extractor/TextExtractor.java
  AL    mailbox/api/src/main/java/org/apache/james/mailbox/SubscriptionManager.java
 !????? mailbox/api/src/test/resources/eml/twoAttachmentsApi.eml
  B     mailbox/api/src/test/resources/shattered-2.pdf
  B     mailbox/api/src/test/resources/shattered-1.pdf
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/acl/UnionMailboxACLResolverTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/acl/PositiveUserACLDiffTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/acl/PositiveUserACLChangedTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/acl/ACLDiffTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/RoleTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/util/EventCollector.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/MailboxSessionUtil.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/fixture/MailboxFixture.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMail.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/events/MailboxIdRegistrationKeyTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/EventTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/MetadataWithMailboxIdTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAssertingTool.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/QuotaRootTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAssertingToolTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxCountersTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MultimailboxesSearchQueryTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/UidValidityTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MessageAttachmentMetadataTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/ContentTypeTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/ThreadIdTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/QuotaOperationTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/QuotaRatioTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/SearchQueryTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxPathTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/FetchGroupTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/ComposedMessageIdWithMetaDataTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/PartContentDescriptorTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxACLTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAnnotationKeyTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentIdTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MimePathTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/TestMessageId.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/search/ExactNameTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/search/PrefixedWildcardTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/search/PrefixedRegexTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/search/WildcardTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MessageIdDtoTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/TestId.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentMetadataTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/CidTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/CurrentQuotasTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAnnotationTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/UpdatedFlagsTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxACLEntryKeyTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/Rfc4314RightsTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MessageMetaDataTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MessageRangeTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/MessageMovesTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/model/QuotaTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/ComposedMessageIdTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/SubscriptionManagerContract.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/quota/QuotaFixture.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/ApplicableFlagBuilderTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/indexer/ReindexingExecutionFailuresTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/indexer/ReindexingFailureTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/MessageUidTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/MailboxExceptionTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/manager/IntegrationResources.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestProvisionner.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/manager/QuotaMessageManagerContract.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/AppendResultTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/MailboxListenerTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressContract.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/ModSeqTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/extension/PreDeletionHookTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/extractor/ParsedContentTest.java
  AL    mailbox/api/src/test/java/org/apache/james/mailbox/extractor/TextExtractorContract.java
  AL    mailbox/api/src/reporting-site/site.xml
  AL    mailbox/api/pom.xml
  AL    mailbox/pom.xml
 !????? mailbox/README.md
 !????? mailbox/var/store/derby/db.lck
  B     mailbox/var/store/derby/dbex.lck
 !????? mailbox/var/store/derby/service.properties
  B     mailbox/var/store/derby/log/log1.dat
  B     mailbox/var/store/derby/log/log.ctrl
 !????? mailbox/var/store/derby/log/README_DO_NOT_TOUCH_FILES.txt
  B     mailbox/var/store/derby/log/logmirror.ctrl
 !????? mailbox/var/store/derby/README_DO_NOT_TOUCH_FILES.txt
  B     mailbox/var/store/derby/seg0/c1f1.dat
  B     mailbox/var/store/derby/seg0/c101.dat
  B     mailbox/var/store/derby/seg0/c4f0.dat
  B     mailbox/var/store/derby/seg0/c651.dat
  B     mailbox/var/store/derby/seg0/c111.dat
  B     mailbox/var/store/derby/seg0/c470.dat
  B     mailbox/var/store/derby/seg0/c1e0.dat
  B     mailbox/var/store/derby/seg0/c161.dat
  B     mailbox/var/store/derby/seg0/c2f0.dat
  B     mailbox/var/store/derby/seg0/c300.dat
  B     mailbox/var/store/derby/seg0/c340.dat
  B     mailbox/var/store/derby/seg0/c5a1.dat
  B     mailbox/var/store/derby/seg0/ca1.dat
  B     mailbox/var/store/derby/seg0/c41.dat
  B     mailbox/var/store/derby/seg0/c141.dat
  B     mailbox/var/store/derby/seg0/c530.dat
  B     mailbox/var/store/derby/seg0/c121.dat
  B     mailbox/var/store/derby/seg0/cc0.dat
  B     mailbox/var/store/derby/seg0/c501.dat
  B     mailbox/var/store/derby/seg0/cd1.dat
  B     mailbox/var/store/derby/seg0/c81.dat
  B     mailbox/var/store/derby/seg0/c3a1.dat
  B     mailbox/var/store/derby/seg0/c2e1.dat
  B     mailbox/var/store/derby/seg0/c230.dat
  B     mailbox/var/store/derby/seg0/c2a1.dat
  B     mailbox/var/store/derby/seg0/c5b0.dat
  B     mailbox/var/store/derby/seg0/c1c0.dat
  B     mailbox/var/store/derby/seg0/c90.dat
  B     mailbox/var/store/derby/seg0/c3c0.dat
  B     mailbox/var/store/derby/seg0/c541.dat
  B     mailbox/var/store/derby/seg0/c661.dat
  B     mailbox/var/store/derby/seg0/c6b1.dat
  B     mailbox/var/store/derby/seg0/c371.dat
  B     mailbox/var/store/derby/seg0/ce1.dat
  B     mailbox/var/store/derby/seg0/c4b0.dat
  B     mailbox/var/store/derby/seg0/c351.dat
  B     mailbox/var/store/derby/seg0/c1d1.dat
  B     mailbox/var/store/derby/seg0/c6d1.dat
  B     mailbox/var/store/derby/seg0/c331.dat
  B     mailbox/var/store/derby/seg0/c561.dat
  B     mailbox/var/store/derby/seg0/c400.dat
  B     mailbox/var/store/derby/seg0/c51.dat
  B     mailbox/var/store/derby/seg0/c5d0.dat
  B     mailbox/var/store/derby/seg0/c311.dat
  B     mailbox/var/store/derby/seg0/c200.dat
  B     mailbox/var/store/derby/seg0/c6a1.dat
  B     mailbox/var/store/derby/seg0/c481.dat
  B     mailbox/var/store/derby/seg0/c5f0.dat
  B     mailbox/var/store/derby/seg0/c581.dat
  B     mailbox/var/store/derby/seg0/c380.dat
  B     mailbox/var/store/derby/seg0/c461.dat
  B     mailbox/var/store/derby/seg0/c391.dat
  B     mailbox/var/store/derby/seg0/c681.dat
  B     mailbox/var/store/derby/seg0/c2c1.dat
  B     mailbox/var/store/derby/seg0/c570.dat
  B     mailbox/var/store/derby/seg0/c510.dat
  B     mailbox/var/store/derby/seg0/c3f1.dat
  B     mailbox/var/store/derby/seg0/c451.dat
  B     mailbox/var/store/derby/seg0/c3e1.dat
  B     mailbox/var/store/derby/seg0/c640.dat
  B     mailbox/var/store/derby/seg0/c631.dat
  B     mailbox/var/store/derby/seg0/c281.dat
  B     mailbox/var/store/derby/seg0/c3b1.dat
  B     mailbox/var/store/derby/seg0/c31.dat
  B     mailbox/var/store/derby/seg0/c180.dat
  B     mailbox/var/store/derby/seg0/c130.dat
  B     mailbox/var/store/derby/seg0/c421.dat
  B     mailbox/var/store/derby/seg0/c1b1.dat
  B     mailbox/var/store/derby/seg0/c361.dat
  B     mailbox/var/store/derby/seg0/c3d1.dat
  B     mailbox/var/store/derby/seg0/c241.dat
  B     mailbox/var/store/derby/seg0/c211.dat
  B     mailbox/var/store/derby/seg0/c251.dat
  B     mailbox/var/store/derby/seg0/c6c1.dat
  B     mailbox/var/store/derby/seg0/c691.dat
  B     mailbox/var/store/derby/seg0/c10.dat
  B     mailbox/var/store/derby/seg0/c4a1.dat
  B     mailbox/var/store/derby/seg0/c4d0.dat
  B     mailbox/var/store/derby/seg0/c590.dat
  B     mailbox/var/store/derby/seg0/c521.dat
  B     mailbox/var/store/derby/seg0/c490.dat
  B     mailbox/var/store/derby/seg0/c2b1.dat
 !????? mailbox/var/store/derby/seg0/README_DO_NOT_TOUCH_FILES.txt
  B     mailbox/var/store/derby/seg0/c4e1.dat
  B     mailbox/var/store/derby/seg0/c20.dat
  B     mailbox/var/store/derby/seg0/c610.dat
  B     mailbox/var/store/derby/seg0/c191.dat
  B     mailbox/var/store/derby/seg0/c71.dat
  B     mailbox/var/store/derby/seg0/c2d0.dat
  B     mailbox/var/store/derby/seg0/c60.dat
  B     mailbox/var/store/derby/seg0/c5c1.dat
  B     mailbox/var/store/derby/seg0/c601.dat
  B     mailbox/var/store/derby/seg0/c171.dat
  B     mailbox/var/store/derby/seg0/c150.dat
  B     mailbox/var/store/derby/seg0/c441.dat
  B     mailbox/var/store/derby/seg0/c621.dat
  B     mailbox/var/store/derby/seg0/c290.dat
  B     mailbox/var/store/derby/seg0/c1a1.dat
  B     mailbox/var/store/derby/seg0/c221.dat
  B     mailbox/var/store/derby/seg0/c271.dat
  B     mailbox/var/store/derby/seg0/c321.dat
  B     mailbox/var/store/derby/seg0/cf0.dat
  B     mailbox/var/store/derby/seg0/c430.dat
  B     mailbox/var/store/derby/seg0/c5e1.dat
  B     mailbox/var/store/derby/seg0/c411.dat
  B     mailbox/var/store/derby/seg0/c671.dat
  B     mailbox/var/store/derby/seg0/cb1.dat
  B     mailbox/var/store/derby/seg0/c550.dat
  B     mailbox/var/store/derby/seg0/c260.dat
  B     mailbox/var/store/derby/seg0/c4c1.dat
 !????? mailbox/var/store/lucene/write.lock
  AL    mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml
  AL    mailbox/jpa/src/main/resources/james-database.properties
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAId.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAttachmentMapper.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/MessageUtils.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailboxAnnotation.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAUserFlag.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAProperty.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailboxAnnotationId.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/EncryptDecryptHelper.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/JPAMailboxMessageWithAttachmentStorage.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/JPAMailboxMessage.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/JPAEncryptedMailboxMessage.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/JPAStreamingMailboxMessage.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAAttachment.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAModSeqProvider.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAUidProvider.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxSessionMapperFactory.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPATransactionalMapper.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAAttachmentContentLoader.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaManager.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxDomainMessageCount.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxUserStorage.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/JpaCurrentQuota.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxGlobalMessageCount.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxDomainStorage.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxGlobalStorage.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/model/MaxUserMessageCount.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaDAO.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JpaCurrentQuotaManager.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/user/model/JPASubscription.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/user/JPASubscriptionMapper.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageManager.java
  AL    mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageFactory.java
  AL    mailbox/jpa/src/test/resources/persistence.xml
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalAttachmentMapper.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAAttachmentMapperTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaMessageMapperTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/task/JPARecomputeCurrentQuotasServiceTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMessageMapper.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/MessageUtilsTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMapperProvider.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalAnnotationMapper.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/model/openjpa/JPAMailboxMessageTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaAnnotationMapperTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JPAMessageWithAttachmentMapperTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaMessageMoveTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaMailboxMapperTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerProvider.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerStressTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPASubscriptionManagerTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/quota/JPACurrentQuotaManagerTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/quota/JPAPerUserMaxQuotaTest.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxFixture.java
  AL    mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxManagerTest.java
  AL    mailbox/jpa/src/reporting-site/site.xml
  AL    mailbox/jpa/pom.xml
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MailArchivesLoader.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/Zipper.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/LongExtraField.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/StringExtraField.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/UidExtraField.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/ZipArchivesLoader.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/WithZipHeader.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/EntryTypeExtraField.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/ZippedMailAccountIterator.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/ExtraFieldExtractor.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/SizeExtraField.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/InternalDateExtraField.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/ZipEntryType.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/MessageIdExtraField.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/package-info.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/ZipEntryIterator.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/MailboxIdExtraField.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/UidValidityExtraField.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/zip/FlagsExtraField.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/SerializedMessageId.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UnknownArchiveEntry.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/ZipMailArchiveRestorer.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/ArchiveService.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/DefaultMailboxBackup.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/SerializedMailboxId.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MailboxWithAnnotations.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MessageArchiveEntry.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MailArchiveRestorer.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MailArchiveEntry.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MailboxBackup.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MailboxWithAnnotationsArchiveEntry.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MailArchiveIterator.java
  AL    mailbox/backup/src/main/java/org/apache/james/mailbox/backup/Directory.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/InternalDateExtraFieldTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/WithZipHeaderTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/DefaultMailboxBackupTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipAssert.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipEntryTypeExtraFieldTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipperTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/DirectoryTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MessageIdExtraFieldTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipEntryTypeContract.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/UidExtraFieldTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxIdExtraFieldTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/FlagExtraFieldTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipArchivesLoaderTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/SizeExtraFieldTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/UidValidityExtraFieldTest.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipArchiveEntryAssert.java
  AL    mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipAssertTest.java
  AL    mailbox/backup/pom.xml
  B     mailbox/scanning-search/src/test/resources/pdf.pdf
  AL    mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java
  AL    mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/PDFTextExtractor.java
  AL    mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/PDFTextExtractorTest.java
  AL    mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SearchThreadIdGuessingAlgorithmTest.java
  AL    mailbox/scanning-search/pom.xml
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/RandomMailboxSessionIdGenerator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreSubscriptionManager.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/LazyMimeDescriptor.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/NoMailboxPathLocker.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxSessionMapperFactory.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxSubscriptionListener.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/event/SpamEventListener.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AnnotationMapper.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/UidProvider.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/SearchThreadIdGuessingAlgorithm.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapperFactory.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/ThreadIdGuessingAlgorithm.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/FetchGroupConverter.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractMessageMapper.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFilter.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/StandardNames.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxIdDeserialisationException.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMessage.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/FileBufferedBodyFactory.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/Properties.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DelegatingMailboxMessage.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Subject.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DefaultMessageId.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFactory.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Property.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMessage.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MimeMessageId.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AttachmentMapperFactory.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapperFactory.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/ModSeqProvider.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/utils/ApplicableFlagCalculator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/utils/MimeMessageHeadersUtil.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AttachmentMapper.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/NaiveThreadIdGuessingAlgorithm.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageIdMapper.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/FlagsUpdateCalculator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/JVMMailboxPathLocker.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreAttachmentManager.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/BatchSizes.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxAnnotationManager.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/SessionProviderImpl.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoMaxQuotaManager.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolver.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoQuotaManager.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/CurrentQuotaCalculator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaComponents.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/NoQuotaUpdater.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/FixedMaxQuotaManager.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/StoreQuotaManager.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaUpdater.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/QuotaChecker.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/FullByteContent.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/PartContentBuilder.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/InputStreamContent.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/CountingInputStream.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/MessageComparators.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/CombinedComparator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/BaseSubjectComparator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/SentDateComparator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/HeaderDisplayComparator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/HeaderMailboxComparator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/AbstractHeaderComparator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SearchUtil.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearchIndex.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageBatcher.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/SystemMailboxesProviderImpl.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/transaction/TransactionalMapper.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/transaction/Mapper.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/transaction/NonTransactionalMapper.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/user/model/Subscription.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/user/SubscriptionMapper.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/user/SubscriptionMapperFactory.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageMovesWithMailbox.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageFactory.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageStorer.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthorizator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/PreDeletionHooks.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/MoveResult.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxExpressionBackwardCompatibility.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthenticator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/AbstractMailboxSessionIdGenerator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxManagerConfiguration.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxReactorUtils.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/extractor/JsoupTextExtractor.java
  AL    mailbox/store/src/main/java/org/apache/james/mailbox/store/extractor/DefaultTextExtractor.java
 !????? mailbox/store/src/test/resources/eml/pgpSignedMail.eml
 !????? mailbox/store/src/test/resources/eml/htmlMail.eml
 !????? mailbox/store/src/test/resources/eml/mail4.eml
 !????? mailbox/store/src/test/resources/eml/recursiveMail.eml
 !????? mailbox/store/src/test/resources/eml/emailWithNonIndexableAttachment.eml
 !????? mailbox/store/src/test/resources/eml/mailWithLongHeaders.eml
 !????? mailbox/store/src/test/resources/eml/calendar2.eml
 !????? mailbox/store/src/test/resources/eml/signedMessage.eml
  B     mailbox/store/src/test/resources/eml/4037_014.jpg
 !????? mailbox/store/src/test/resources/eml/oneAttachmentWithSimpleContentType.eml
  B     mailbox/store/src/test/resources/eml/recursiveMail.json
 !????? mailbox/store/src/test/resources/eml/mail5.eml
 !????? mailbox/store/src/test/resources/eml/multiAttachmentsWithOneWrongContentDisposition.eml
 !????? mailbox/store/src/test/resources/eml/spamMail.eml
 !????? mailbox/store/src/test/resources/eml/mail.eml
 !????? mailbox/store/src/test/resources/eml/mailWithManyHeaders.eml
 !????? mailbox/store/src/test/resources/eml/oneAttachmentWithEmptyContentType.eml
  B     mailbox/store/src/test/resources/eml/mail.json
  B     mailbox/store/src/test/resources/eml/attachment.pdf
 !????? mailbox/store/src/test/resources/eml/oneInlinedAttachmentWithNoCid.eml
 !????? mailbox/store/src/test/resources/eml/invalidCharset.eml
  B     mailbox/store/src/test/resources/eml/james-3901.json
 !????? mailbox/store/src/test/resources/eml/headerWithDot.eml
 !????? mailbox/store/src/test/resources/eml/emailWithOnlyAttachment.eml
 !????? mailbox/store/src/test/resources/eml/inlined-mixed.eml
 !????? mailbox/store/src/test/resources/eml/filenameOnly.eml
 !????? mailbox/store/src/test/resources/eml/noContentDispositionWithCID.eml
 !????? mailbox/store/src/test/resources/eml/embeddedAttachmentWithAttachment.eml
 !????? mailbox/store/src/test/resources/eml/oneInlinedAttachment.eml
 !????? mailbox/store/src/test/resources/eml/james-3901.eml
 !????? mailbox/store/src/test/resources/eml/messageWithNonASCIIFilenameAttachment.eml
  B     mailbox/store/src/test/resources/eml/4037_015.jpg
  B     mailbox/store/src/test/resources/eml/pgpSignedMail.json
  B     mailbox/store/src/test/resources/eml/spamMail.json
 !????? mailbox/store/src/test/resources/eml/filenameAndName.eml
 !????? mailbox/store/src/test/resources/eml/invitationEmailFromOP.eml
 !????? mailbox/store/src/test/resources/eml/mail3.eml
  B     mailbox/store/src/test/resources/eml/recursiveMailWithoutAttachments.json
 !????? mailbox/store/src/test/resources/eml/frnog.eml
 !????? mailbox/store/src/test/resources/eml/twoAttachments.eml
 !????? mailbox/store/src/test/resources/eml/oneAttachmentAndSomeTextInlined.eml
  B     mailbox/store/src/test/resources/eml/emailWithNonIndexableAttachmentWithoutAttachment.json
 !????? mailbox/store/src/test/resources/eml/oneHtmlAttachmentAndSomeTextInlined.eml
 !????? mailbox/store/src/test/resources/eml/unknownDisposition.eml
 !????? mailbox/store/src/test/resources/eml/mail2.eml
  B     mailbox/store/src/test/resources/eml/nonTextual.json
 !????? mailbox/store/src/test/resources/eml/mail1.eml
  B     mailbox/store/src/test/resources/eml/invalidCharset.json
 !????? mailbox/store/src/test/resources/eml/noAttachment.eml
 !????? mailbox/store/src/test/resources/eml/charset.eml
  B     mailbox/store/src/test/resources/eml/gimp.png
  B     mailbox/store/src/test/resources/eml/spamMailNoHeaders.json
 !????? mailbox/store/src/test/resources/eml/oneInlinedAttachmentWithBlankCid.eml
  B     mailbox/store/src/test/resources/eml/htmlMail.json
 !????? mailbox/store/src/test/resources/eml/embeddedAttachmentWithInline.eml
 !????? mailbox/store/src/test/resources/eml/oneAttachmentWithoutContentType.eml
 !????? mailbox/store/src/test/resources/eml/emailWithTextAttachment.eml
  A     mailbox/store/src/test/resources/eml/&#x62f;&#x64a;&#x646;&#x627;&#x635;&#x648;&#x631;.odt
 !????? mailbox/store/src/test/resources/eml/oneAttachmentWithoutName.eml
 !????? mailbox/store/src/test/resources/eml/calendar.eml
 !????? mailbox/store/src/test/resources/eml/oneInlinedAttachmentWithEmptyCid.eml
 !????? mailbox/store/src/test/resources/eml/charset2.eml
 !????? mailbox/store/src/test/resources/eml/nonTextual.eml
  AL    mailbox/store/src/test/resources/documents/html-iso-8859-1.html
 !????? mailbox/store/src/test/resources/documents/writter.docx
  B     mailbox/store/src/test/resources/documents/simple-text-iso-8859-1.txt
 !????? mailbox/store/src/test/resources/documents/Text.txt
  AL    mailbox/store/src/test/resources/documents/html.txt
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageManagerTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxReactorUtilsTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageManagerTestSystem.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxMessageResultImplTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMailboxManagerAttachmentTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/CombinationManagerTestSystem.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
 !????? mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/FetchGroupConverterTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageUidProviderTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssert.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageAssert.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilderTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/MessageParserTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessageTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessagePropertiesAssertTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MetadataMapAssertTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/DefaultMessageIdTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/PropertyTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MetadataMapAssert.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MapperProvider.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFilterTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssertTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssertTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/DelegatingMailboxMessageTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageUidProvider.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssert.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/SubjectTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MimeMessageIdTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AnnotationMapperTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessagePropertiesAssert.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMessageAssertTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/utils/ApplicableFlagCalculatorTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/ThreadIdGuessingAlgorithmContract.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/PreDeletionHooksTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageIdManagerTestSystem.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/SystemMailboxesProviderImplTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageBatcherTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/ResultUtilsTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/BatchSizesTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/CurrentQuotaManagerContract.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/StoreQuotaManagerTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/GenericMaxQuotaManagerTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdaterTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/QuotaCheckerTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/PartContentBuilderComplexMultipartTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/streaming/CountingInputStreamTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/search/comparator/SentDateComparatorTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/search/CombinedComparatorTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/search/SearchUtilsMultipartMixedTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/search/SearchUtilsTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndexContract.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/search/SearchUtilTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/search/SearchUtilsRFC822Test.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndexTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerAnnotationTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/user/SubscriptionMapperTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/PartContentBuilderMultipartAlternativeTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxMessageResultIteratorTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerQuotaTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/FlagsUpdateCalculatorTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/JVMMailboxPathLockerTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreAttachmentManagerTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/extractor/JsoupTextExtractorTest.java
  AL    mailbox/store/src/test/java/org/apache/james/mailbox/store/extractor/DefaultTextExtractorTest.java
  AL    mailbox/store/src/reporting-site/site.xml
  AL    mailbox/store/pom.xml
  AL    mailbox/lucene/src/main/resources/META-INF/spring/mailbox-index-lucene.xml
  AL    mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
  AL    mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/UpperCaseFilter.java
  AL    mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LenientImapSearchAnalyzer.java
  AL    mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/StrictImapSearchAnalyzer.java
  AL    mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/StrictLuceneMessageSearchIndexText.java
  AL    mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java
  AL    mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndexTest.java
  AL    mailbox/lucene/src/reporting-site/site.xml
  AL    mailbox/lucene/pom.xml
  B     mailbox/cassandra/doc/table_structure.png
 !????? mailbox/cassandra/doc/README.md
 !????? mailbox/cassandra/doc/table_structure.drawio
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/json/MailboxACLJsonConverter.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMessageManager.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageRepresentation.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraIndexTableHandler.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentation.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraThreadDAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapper.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraApplicableFlagDAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesTask.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTask.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMailboxInconsistenciesService.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMailboxInconsistenciesTask.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/RecomputeMailboxCountersTask.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskAdditionalInformationDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/RunningOptionsDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesService.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/RecomputeMailboxCountersService.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesTaskAdditionalInformationDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMailboxInconsistenciesTaskDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskRunner.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMailboxInconsistenciesTaskAdditionalInformationDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesTaskDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/ConflictingEntry.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/RecomputeMailboxCountersTaskAdditionalInformationDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/RecomputeMailboxCountersTaskDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MessageInconsistenciesEntry.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentBlobReferenceSource.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageBlobReferenceSource.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/ACLMapper.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdToImapUidDAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/FlagsExtractor.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoader.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/SetACLCommand.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/ACLModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/ACLDiffDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/ACLUpdatedDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/ACLDTO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/AclV2DAOSubscriber.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/ACLUpdated.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/DeleteMailboxCommand.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/UserRightsDAOSubscriber.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/MailboxACLAggregate.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/UpdateACLCommand.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/MailboxAggregateId.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MailboxDeleteDuringUpdateException.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxRecentsDAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/ThreadTablePartitionKey.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV3DAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMetadata.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/MailboxBaseTupleUtil.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResult.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraFirstUnseenDAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraIdAndPath.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAOV2.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxCounterDAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraThreadLookupDAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraDeletedMessageDAO.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAOV3.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/ids/CassandraMessageId.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/ids/CassandraId.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraThreadTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxRecentsTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraCurrentQuota.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraThreadLookupTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/MessageIdToImapUid.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageModseqTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraACLV2Table.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageUidTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageIds.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxCountersTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAnnotationTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMaxQuota.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMailboxPathV3Table.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/Flag.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageV3Table.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDomainMaxQuota.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraAttachmentV2Table.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraFirstUnseenTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraDeletedMessageTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraACLTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraUserMailboxRightsTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraGlobalMaxQuota.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraApplicableFlagTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraSubscriptionTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/table/CassandraMessageIdTable.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraApplicableFlagsModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraFirstUnseenModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxCounterModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraDeletedMessageModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraUidModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraModSeqModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraSubscriptionModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAnnotationModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAclModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxRecentsModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMessageModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraThreadModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraAttachmentModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/modules/CassandraMailboxQuotaModule.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraThreadIdGuessingAlgorithm.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraGlobalMaxQuotaDao.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/Limits.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/FakeCassandraCurrentQuotaManager.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/QuotaCodec.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerV2.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerV1.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/migration/CassandraCurrentQuotaManagerMigration.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/migration/CassandraPerUserMaxQuotaManagerMigration.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaDao.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/FakeMaxQuotaManager.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerV1.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerV2.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraPerDomainMaxQuotaDao.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/search/UidSearchOverride.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/search/UnseenSearchOverride.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/search/AllSearchOverride.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/search/DeletedSearchOverride.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/search/DeletedWithRangeSearchOverride.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/search/NotDeletedWithRangeSearchOverride.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapper.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/GhostMailbox.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/MailboxOperationLoggingListener.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
  AL    mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java
  B     mailbox/cassandra/src/test/resources/json/solveMessageInconsistencies.additionalInformation.json
  B     mailbox/cassandra/src/test/resources/json/solveMessageInconsistencies.additionalInformation.legacy.json
  B     mailbox/cassandra/src/test/resources/json/solveMessageInconsistencies.task.legacy.json
  B     mailbox/cassandra/src/test/resources/json/solveMessageInconsistencies.task.json
  B     mailbox/cassandra/src/test/resources/shattered-2.pdf
 !????? mailbox/cassandra/src/test/resources/cassandra-driver.conf
  B     mailbox/cassandra/src/test/resources/shattered-1.pdf
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/json/MailboxACLJsonConverterTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAOV3Test.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxRecentDAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProviderTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraApplicableFlagDAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraFirstUnseenDAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraThreadDAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/MailboxAggregateModule.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperAclTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraThreadLookupDAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathV3DAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/MailboxInconsistenciesPOJOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesServiceTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMailboxInconsistenciesServiceTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/CassandraRecomputeCurrentQuotasServiceTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMailboxInconsistenciesTaskSerializationTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/RecomputeMailboxCountersTaskSerializationTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/RecomputeMailboxCountersServiceTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesTaskSerializationTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoaderTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperRelaxedConsistencyTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapperRelaxedConsistencyTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperContract.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUserMailboxRightsDAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentationByIdTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2Test.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapperTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMoveTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageWithAttachmentMapperTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMapperProvider.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraDeletedMessageDAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/eventsourcing/acl/ACLUpdatedDTOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperV2Test.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/MailboxFixture.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdDAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperGenericTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/FlagsUpdateStageResultTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdToImapUidDAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperNoACLTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxCounterDAOTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraIndexTableHandlerTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerStressTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraThreadIdGuessingAlgorithmTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraCombinationManagerTestSystem.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerStorageTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/ids/CassandraMessageIdTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/ids/CassandraIdTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerConsistencyTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerMigrationTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerV1Test.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/migration/CassandraCurrentQuotaManagerMigrationTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerV1Test.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerV2Test.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManagerV2Test.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/search/DeletedSearchOverrideTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/search/DeletedWithRangeSearchOverrideTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/search/UnseenSearchOverrideTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/search/UidSearchOverrideTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/search/NotDeletedWithRangeSearchOverrideTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/search/AllSearchOverrideTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraCombinationManagerTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapperTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerQuotaTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/TestCassandraMailboxSessionMapperFactory.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/MailboxOperationLoggingListenerTest.java
  AL    mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerSideEffectTest.java
  AL    mailbox/cassandra/src/reporting-site/site.xml
  AL    mailbox/cassandra/pom.xml
  N     mailbox/cassandra/README.txt
 !????? docs/modules/customization/nav.adoc
 !????? docs/modules/customization/pages/index.adoc
 !????? docs/modules/servers/nav.adoc
 !????? docs/modules/servers/pages/5-minute-demo.adoc
 !????? docs/modules/servers/pages/extendable.adoc
 !????? docs/modules/servers/pages/15-minute-demo.adoc
 !????? docs/modules/servers/pages/test.adoc
 !????? docs/modules/servers/pages/demo.adoc
 !????? docs/modules/servers/pages/basic/context.adoc
 !????? docs/modules/servers/pages/basic/objectives.adoc
 !????? docs/modules/servers/pages/basic/conf/index.adoc
 !????? docs/modules/servers/pages/basic/help.adoc
 !????? docs/modules/servers/pages/basic/concepts.adoc
 !????? docs/modules/servers/pages/basic/architecture.adoc
 !????? docs/modules/servers/pages/basic/index.adoc
 !????? docs/modules/servers/pages/basic/self-hosting.notes
 !????? docs/modules/servers/pages/run.adoc
 !????? docs/modules/servers/pages/index.adoc
 !????? docs/modules/concepts/nav.adoc
 !????? docs/modules/concepts/pages/configuration.adoc
 !????? docs/modules/concepts/pages/mail/index.adoc
 !????? docs/modules/concepts/pages/storage/mailbox.adoc
 !????? docs/modules/concepts/pages/storage/users.adoc
 !????? docs/modules/concepts/pages/storage/index.adoc
 !????? docs/modules/concepts/pages/messages/mime.adoc
 !????? docs/modules/concepts/pages/messages/imf.adoc
 !????? docs/modules/concepts/pages/messages/index.adoc
 !????? docs/modules/concepts/pages/protocols/jmap.adoc
 !????? docs/modules/concepts/pages/protocols/imap.adoc
 !????? docs/modules/concepts/pages/protocols/smtp.adoc
 !????? docs/modules/concepts/pages/protocols/index.adoc
 !????? docs/modules/concepts/pages/protocols/pop.adoc
 !????? docs/modules/concepts/pages/protocols/esmtp.adoc
 !????? docs/modules/concepts/pages/protocols/lmtp.adoc
 !????? docs/modules/concepts/pages/user/index.adoc
 !????? docs/modules/concepts/pages/processing/index.adoc
 !????? docs/modules/concepts/pages/glossary.adoc
 !????? docs/modules/concepts/pages/index.adoc
 !????? docs/modules/ROOT/nav.adoc
 !????? docs/modules/ROOT/pages/index.adoc
 !????? docs/modules/development/nav.adoc
 !????? docs/modules/development/pages/deployment-tests.adoc
 !????? docs/modules/development/pages/logging.adoc
 !????? docs/modules/development/pages/index.adoc
 !????? docs/modules/community/nav.adoc
 !????? docs/modules/community/pages/support.adoc
 !????? docs/modules/community/pages/website.adoc
 !????? docs/modules/community/pages/guidelines.adoc
 !????? docs/modules/community/pages/download.adoc
 !????? docs/modules/community/pages/mailing-lists.adoc
 !????? docs/modules/community/pages/release.adoc
 !????? docs/modules/community/pages/index.adoc
 !????? docs/modules/community/pages/contributing.adoc
  B     docs/modules/community/images/linagora.png
 !????? docs/antora.yml
  N     LICENSE
  AL    checkstyle-suppressions.xml
 !????? testing/base/src/main/resources/logback-test.xml
 !????? testing/base/src/main/resources/testcontainers.properties
  AL    testing/base/src/main/java/org/apache/james/junit/categories/Unstable.java
  AL    testing/base/pom.xml
  AL    Jenkinsfile
 
*****************************************************

 Printing headers for text files without a valid license header...
 
=====================================================
== File: mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/starttls_session_fixation.test
=====================================================
S: 220 mydomain.tld smtp

C: ehlo yopmail.com
S: 250.*
S: 250-AUTH LOGIN PLAIN
S: 250-AUTH=LOGIN PLAIN
S: 250-PIPELINING
S: 250-ENHANCEDSTATUSCODES
S: 250-8BITMIME
S: 250 STARTTLS

C: AUTH LOGIN
S: 334 VXNlcm5hbWU6
C: Ym9iQG15ZG9tYWluLnRsZA==
S: 334 UGFzc3dvcmQ6
C: c2VjcmV0
S: 235 Authentication Successful


C: mail from:&lt;bob@mydomain.tld&gt;
C: rcpt to:&lt;matthieu@yopmail.com&gt;
S: 250 2.1.0 Sender &lt;bob@mydomain.tld&gt; OK
S: 250 2.1.5 Recipient &lt;matthieu@yopmail.com&gt; OK

C: starttls
S: 501 .*

=====================================================
== File: mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/rcpt_with_starttls.test
=====================================================
S: 220 mydomain.tld smtp
C: ehlo yopmail.com
C: mail from:&lt;matthieu@yopmail.com&gt;
C: rcpt to:&lt;starttls@mydomain.tld&gt;
C: data
S: 250.*
S: 250-AUTH LOGIN PLAIN
S: 250-AUTH=LOGIN PLAIN
S: 250-PIPELINING
S: 250-ENHANCEDSTATUSCODES
S: 250-8BITMIME
S: 250 STARTTLS
S: 250 2.1.0 Sender &lt;matthieu@yopmail.com&gt; OK
S: 250 2.1.5 Recipient &lt;starttls@mydomain.tld&gt; OK
S: 354 Ok Send data ending with &lt;CRLF&gt;.&lt;CRLF&gt;
C: subject: test
C:
C: content content
C: .
S: 250 2.6.0 Message received

=====================================================
== File: mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/authplain.test
=====================================================
S: 220 mydomain.tld smtp
C: AUTH LOGIN
S: 334 VXNlcm5hbWU6
C: Ym9iQG15ZG9tYWluLnRsZA==
S: 334 UGFzc3dvcmQ6
C: c2VjcmV0
S: 235 Authentication Successful

=====================================================
== File: mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/data_with_starttls.test
=====================================================
S: 220 mydomain.tld smtp
C: ehlo yopmail.com
C: mail from:&lt;matthieu@yopmail.com&gt;
C: rcpt to:&lt;bob@mydomain.tld&gt;
C: data
S: 250.*
S: 250-AUTH LOGIN PLAIN
S: 250-AUTH=LOGIN PLAIN
S: 250-PIPELINING
S: 250-ENHANCEDSTATUSCODES
S: 250-8BITMIME
S: 250 STARTTLS
S: 250 2.1.0 Sender &lt;matthieu@yopmail.com&gt; OK
S: 250 2.1.5 Recipient &lt;bob@mydomain.tld&gt; OK
S: 354 Ok Send data ending with &lt;CRLF&gt;.&lt;CRLF&gt;
C: subject: test
C:
C: content starttls content
C: .
S: 250 2.6.0 Message received

=====================================================
== File: mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/starttls_with_injection.test
=====================================================
S: 220 mydomain.tld smtp

C: ehlo yopmail.com
S: 250.*
S: 250-AUTH LOGIN PLAIN
S: 250-AUTH=LOGIN PLAIN
S: 250-PIPELINING
S: 250-ENHANCEDSTATUSCODES
S: 250-8BITMIME
S: 250 STARTTLS

C: starttls\r\nmail from:&lt;matthieu@yopmail.com&gt;\r\n
S: 451 Unable to process request

=====================================================
== File: mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/helo.test
=====================================================
S: 220 mydomain.tld smtp
C: ehlo yopmail.com
C: mail from:&lt;matthieu@yopmail.com&gt;
C: rcpt to:&lt;bob@mydomain.tld&gt;
C: data
S: 250.*
S: 250-PIPELINING
S: 250-ENHANCEDSTATUSCODES
S: 250 8BITMIME
S: 250 2.1.0 Sender &lt;matthieu@yopmail.com&gt; OK
S: 250 2.1.5 Recipient &lt;bob@mydomain.tld&gt; OK
S: 354 Ok Send data ending with &lt;CRLF&gt;.&lt;CRLF&gt;
C: subject: test
C:
C: content
C: .
S: 250 2.6.0 Message received

=====================================================
== File: mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/data_starts_with_starttls.test
=====================================================
S: 220 mydomain.tld smtp
C: ehlo yopmail.com
C: mail from:&lt;matthieu@yopmail.com&gt;
C: rcpt to:&lt;bob@mydomain.tld&gt;
C: data
S: 250.*
S: 250-AUTH LOGIN PLAIN
S: 250-AUTH=LOGIN PLAIN
S: 250-PIPELINING
S: 250-ENHANCEDSTATUSCODES
S: 250-8BITMIME
S: 250 STARTTLS
S: 250 2.1.0 Sender &lt;matthieu@yopmail.com&gt; OK
S: 250 2.1.5 Recipient &lt;bob@mydomain.tld&gt; OK
S: 354 Ok Send data ending with &lt;CRLF&gt;.&lt;CRLF&gt;
C: subject: test
C:
C: starttls content
C: .
S: 250 2.6.0 Message received

=====================================================
== File: mpt/impl/smtp/core/src/main/resources/org/apache/james/smtp/scripts/starttls.test
=====================================================
S: 220 mydomain.tld smtp

C: ehlo yopmail.com
S: 250.*
S: 250-AUTH LOGIN PLAIN
S: 250-AUTH=LOGIN PLAIN
S: 250-PIPELINING
S: 250-ENHANCEDSTATUSCODES
S: 250-8BITMIME
S: 250 STARTTLS

C: starttls
S: 220 2.0.0 Ready to start TLS

=====================================================
== File: mpt/impl/imap-mailbox/core/src/main/resources/logback.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration&gt;

        &lt;contextListener class=&quot;ch.qos.logback.classic.jul.LevelChangePropagator&quot;&gt;
                &lt;resetJUL&gt;true&lt;/resetJUL&gt;
        &lt;/contextListener&gt;

        &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;root level=&quot;WARN&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
        &lt;/root&gt;

        &lt;logger name=&quot;org.apache.james&quot; level=&quot;WARN&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
        &lt;/logger&gt;


&lt;/configuration&gt;

=====================================================
== File: mpt/impl/imap-mailbox/cassandra/src/test/resources/cassandra-driver.conf
=====================================================
datastax-java-driver {
  basic.request {
    timeout = 5 seconds
  }
}

=====================================================
== File: upgrade-instructions.md
=====================================================
# Upgrade instructions

This document covers every changes an Ops needs to be aware of when running James.

The following procedures are to take as it, and the Apache Software Foundation, nor its contributors, can not be 
responsible for any damages generated by following the below procedures.

Before performing these operations, you should ensure to have the skills to conduct the operations, and you should read other
software documentation. Do not follow this guide blindly!

## Unreleased

Note: this section is in progress. It will be updated during all the development process until the release.
No changes yet.

Changes to apply between 3.8.x and 3.9.0 will be reported here.

Change list:

 - [Imap Packages](#imap-packages)
 - [Jmap uploads](#jmap-uploads)
 - [Mutualize quota table](#mutualize-quota-table)
 - [Drop Legacy Cassandra migrations](#drop-legacy-cassandra-migrations)
 - [Improve CassandraThreadIdGuessingAlgorithm](#improve-cassandrathreadidguessingalgorithm)
 - [Set up TTL on the mailbox_change and email_change tables](#set-up-ttl-on-the-mailboxchange-and-emailchange-tables)
 - [Change compaction strategy of blob_cache table](#change-compaction-strategy-of-blobcache-table)
 - [RRT forwards now rewrite senders](#rrt-forwards-now-rewrite-senders)
 - [Increase RabbitMQ consumer timeout on the task queue](#increase-rabbitmq-consumer-timeout-on-the-task-queue)
 - [JMX authentication for Spring](#jmx-authentication-for-spring)

### JMX authentication for Spring

Date: 19/12/2023

Spring distribution now requires `jmxremote.access` and `jmxremote.password` files within the `/conf` folder in order to start.

### Increase RabbitMQ consumer timeout on the task queue

Date: 11/20/2023

JIRA: https://issues.apache.org/jira/browse/JAMES-3955

Before, the RabbitMQ default acknowledgement timeout on the `taskManagerWorkQueue` was 30 minutes.
This is not enough for long-running tasks, therefore we advise to increase the acknowledgement timeout and now enforce it to 1 day by default.

rf: https://www.rabbitmq.com/consumers.html#acknowledgement-timeout

To make the per queue argument feature work, update your RabbitMQ to version 3.12 at least.

If you want the old behavior where consumer timeout defaults to 30 minutes, you can either not upgrade your RabbitMQ or set `task.queue.consumer.timeout=30minutes` in `rabbitmq.properties`.

=====================================================
== File: code-coverage-report/pom.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
    &lt;parent&gt;
        &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
        &lt;artifactId&gt;james-project&lt;/artifactId&gt;
        &lt;version&gt;3.9.0-SNAPSHOT&lt;/version&gt;
    &lt;/parent&gt;

    &lt;artifactId&gt;code-coverage-report&lt;/artifactId&gt;
    &lt;name&gt;Apache James :: Code Coverage Report&lt;/name&gt;
    &lt;description&gt;Generate code coverage report for Apache James&lt;/description&gt;
    &lt;packaging&gt;pom&lt;/packaging&gt;

    &lt;dependencies&gt;
        &lt;!--        Parent dependencies are in pom package type, can not directly declare as jar--&gt;
        &lt;!--        1. apache-james-mailbox--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-mailbox-api&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-mailbox-cassandra&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-mailbox-deleted-messages-vault&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-mailbox-deleted-messages-vault-cassandra&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-mailbox-event-json&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-mailbox-jpa&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-mailbox-lucene&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-mailbox-memory&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;

=====================================================
== File: CHANGELOG.md
=====================================================
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)

## [unreleased]

### Security

- [FIX] JMX password auto-detection
- [FIX] Enforce CRLF as part of SMTP DATA transaction (#1876)
- [FIX] Set up JMX auth for Spring
- [FIX] Set up JMX auth filter for Guice

### New Features

- JAMES-3942 Audit trail
- JAMES-3897 Crowdsec integration for SMTP
- JAMES-3964 Implement and test disabledCaps for SMTP
- JAMES-3962 JMAP Email/set: specific headers for body parts (#1801)
- JAMES-3960 Hints to ensure UID/ModSeq consistency in case of disaster
- JAMES-3959 Starting distributed James without OpenSearch (#1784)
- JAMES-3954 Implement RFC-9394 PARTIAL for IMAP FETCH/SEARCH
- JAMES-3944 JMAP FILTER: More features: forward, flag, discard, etc...
- JAMES-3930 ReadOnlyUsersLDAPRepository::test should allow authentication using localPart as login username
- Supporting several LDAP hosts
- JAMES 3822 SMTP FutureRelease Extension
- JAMES-2434 IsFromMailingList matcher (#1606)
- JAMES-3906 SSL hot reload for IMAP /SMTP
- JAMES-3908 Storage directive with several folder (#1575)
- JAMES-3909 Fully delete one user data webadmin endpoint

### Improvements

 - JAMES-3967 RelayLimit: add error log
 - JAMES-3967 Store mails when relay is exceeded
 - [FIX] LdapRepositoryConfiguration should interoperate with UsersRepositoryImpl (#1855)
 - JAMES-3539 PushSubscription/get should return expired subscriptions (#1845)
 - [ENHANCEMENT] Allow to trust all certificates with S3 blobstore (#1846)
 - Numerous dependency updates
 - [IMPROVEMENT] JMAP: Display message/disposition-notification in main message body
 - JAMES-3965 DKIMSign: Use fileSystem in order to resolve privateKeyFilepath
 - JAMES-3963 Full text search: AND for combining phrase terms (#1810)
 - JAMES-3963 Sort From To Cc on display name first (#1811)
 - JAMES-3955 Increase consumer timeout for TaskManagerWorkQueue
 - JAMES-3955 WARNING logs upon closing RABBITMQ channels
 - JAMES-3955 Applicative timeouts before Rabbit timeouts
 - JAMES-3958 DKIM: Be resilient when updating mails with invalid headers (#1783)
 - JAMES-3874 LMTP should handle overQuota exceptions
 - JAMES-3944 Forwards should rewrite MAIL FROM

=====================================================
== File: third-party/rspamd/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    depends_on:
      rspamd:
          condition: service_healthy
    image: apache/james:memory-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - $PWD/target/apache-james-rspamd-jar-with-dependencies.jar:/root/extensions-jars/james-server-rspamd.jar
      - $PWD/sample-configuration/extensions.properties:/root/conf/extensions.properties
      - $PWD/sample-configuration/mailetcontainer_memory.xml:/root/conf/mailetcontainer.xml
      - $PWD/sample-configuration/listeners.xml:/root/conf/listeners.xml
      - $PWD/sample-configuration/rspamd.properties:/root/conf/rspamd.properties
      - $PWD/sample-configuration/webadmin.properties:/root/conf/webadmin.properties
      - $PWD/sample-configuration/healthcheck.properties:/root/conf/healthcheck.properties
    ports:
      - &quot;80:80&quot;
      - &quot;25:25&quot;
      - &quot;110:110&quot;
      - &quot;143:143&quot;
      - &quot;465:465&quot;
      - &quot;587:587&quot;
      - &quot;993:993&quot;
      - &quot;8000:8000&quot;

  redis:
    image: redis:7.0.12
    command:
      - &quot;--loglevel&quot;
      - &quot;debug&quot;

  clamav:
    image: clamav/clamav:1.1

  rspamd:
    depends_on:
      clamav:
          condition: service_healthy
      redis:
          condition: service_started
    container_name: rspamd
    image: a16bitsysop/rspamd:3.5-r7-alpine3.18.2-r0
    environment:
      - REDIS=redis

=====================================================
== File: third-party/rspamd/src/test/resources/rspamd-config/actions.conf
=====================================================
# Actions settings
# Please don't modify this file as your changes might be overwritten with
# the next update.
#
# You can modify 'local.d/actions.conf' to add and merge
# parameters defined inside this section
#
# You can modify 'override.d/actions.conf' to strictly override all
# parameters defined inside this section
#
# See https://rspamd.com/doc/faq.html#what-are-the-locald-and-overrided-directories
# for details
#
# See also https://rspamd.com/doc/faq.html#what-are-rspamd-actions for actions definition

actions {
    reject = 14; # Reject when reaching this score
    add_header = 6; # Add header when reaching this score
    greylist = 4; # Apply greylisting when reaching this score (will emit `soft reject action`)

    #unknown_weight = 1.0; # Enable if need to set score for all symbols implicitly
    # Each new symbol is added multiplied by gf^N, where N is the number of spammy symbols
    #grow_factor = 1.1;
    # Set rewrite subject to this value (%s is replaced by the original subject)
    #subject = &quot;***SPAM*** %s&quot;

    .include(try=true; priority=1; duplicate=merge) &quot;$LOCAL_CONFDIR/local.d/actions.conf&quot;
    .include(try=true; priority=10) &quot;$LOCAL_CONFDIR/override.d/actions.conf&quot;
}

=====================================================
== File: third-party/rspamd/src/test/resources/rspamd-config/antivirus.conf
=====================================================
clamav {
  # Scan mime_parts seperately - otherwise the complete mail will be transfered to AV Scanner
  #attachments_only = true; # Before 1.8.1
  scan_mime_parts = true; # After 1.8.1
  # Scanning Text is suitable for some av scanner databases (e.g. Sanesecurity)
  scan_text_mime = true; # 1.8.1 +
  scan_image_mime = true; # 1.8.1 +
  # If set force this action if any virus is found (default unset: no action is forced)
#   action = &quot;reject&quot;;
  message = '${SCANNER}: virus found: &quot;${VIRUS}&quot;';
  # If set true, log message is emitted for clean messages
  log_clean = false;
  # symbol to add (add it to metric if you want non-zero weight)
  symbol = CLAM_VIRUS;
  # type of scanner: &quot;clamav&quot;, &quot;fprot&quot;, &quot;sophos&quot; or &quot;savapi&quot;
  type = clamav;
  servers = &quot;clamav:3310&quot;;
  patterns {
    JUST_EICAR = '^Eicar-Test-Signature$';
  }
}

=====================================================
== File: third-party/rspamd/src/test/resources/rspamd-config/statistic.conf
=====================================================
classifier &quot;bayes&quot; {
  tokenizer {
    name = &quot;osb&quot;;
  }
  cache {
  }
  new_schema = true; # Always use new schema
  store_tokens = false; # Redefine if storing of tokens is desired
  signatures = false; # Store learn signatures
  per_user = true; # Enable per user classifier
  users_enabled = true;
  min_tokens = 11;
  backend = &quot;redis&quot;;
  min_learns = 2;

  statfile {
    symbol = &quot;BAYES_HAM&quot;;
    spam = false;
  }
  statfile {
    symbol = &quot;BAYES_SPAM&quot;;
    spam = true;
  }

  learn_condition = 'return require(&quot;lua_bayes_learn&quot;).can_learn';

  # Autolearn sample
  # autolearn {
  #  spam_threshold = 6.0; # When to learn spam (score &gt;= threshold)
  #  ham_threshold = -0.5; # When to learn ham (score &lt;= threshold)
  #  check_balance = true; # Check spam and ham balance
  #  min_balance = 0.9; # Keep diff for spam/ham learns for at least this value
  #}

  .include(try=true; priority=1) &quot;$LOCAL_CONFDIR/local.d/classifier-bayes.conf&quot;
  .include(try=true; priority=10) &quot;$LOCAL_CONFDIR/override.d/classifier-bayes.conf&quot;
}

=====================================================
== File: third-party/rspamd/src/test/resources/mail/ham/ham1.eml
=====================================================
From Steve_Burt@cursor-system.com  Thu Aug 22 12:46:39 2002
Return-Path: &lt;Steve_Burt@cursor-system.com&gt;
Delivered-To: zzzz@localhost.netnoteinc.com
Received: from localhost (localhost [127.0.0.1])
	by phobos.labs.netnoteinc.com (Postfix) with ESMTP id BE12E43C34
	for &lt;zzzz@localhost&gt;; Thu, 22 Aug 2002 07:46:38 -0400 (EDT)
Received: from phobos [127.0.0.1]
	by localhost with IMAP (fetchmail-5.9.0)
	for zzzz@localhost (single-drop); Thu, 22 Aug 2002 12:46:38 +0100 (IST)
Received: from n20.grp.scd.yahoo.com (n20.grp.scd.yahoo.com
    [66.218.66.76]) by dogma.slashnull.org (8.11.6/8.11.6) with SMTP id
    g7MBkTZ05087 for &lt;zzzz@spamassassin.taint.org&gt;; Thu, 22 Aug 2002 12:46:29 +0100
X-Egroups-Return: sentto-2242572-52726-1030016790-zzzz=spamassassin.taint.org@returns.groups.yahoo.com
Received: from [66.218.67.196] by n20.grp.scd.yahoo.com with NNFMP;
    22 Aug 2002 11:46:30 -0000
X-Sender: steve.burt@cursor-system.com
X-Apparently-To: zzzzteana@yahoogroups.com
Received: (EGP: mail-8_1_0_1); 22 Aug 2002 11:46:29 -0000
Received: (qmail 11764 invoked from network); 22 Aug 2002 11:46:29 -0000
Received: from unknown (66.218.66.217) by m3.grp.scd.yahoo.com with QMQP;
    22 Aug 2002 11:46:29 -0000
Received: from unknown (HELO mailgateway.cursor-system.com) (62.189.7.27)
    by mta2.grp.scd.yahoo.com with SMTP; 22 Aug 2002 11:46:29 -0000
Received: from exchange1.cps.local (unverified) by
    mailgateway.cursor-system.com (Content Technologies SMTPRS 4.2.10) with
    ESMTP id &lt;T5cde81f695ac1d100407d@mailgateway.cursor-system.com&gt; for
    &lt;forteana@yahoogroups.com&gt;; Thu, 22 Aug 2002 13:14:10 +0100
Received: by exchange1.cps.local with Internet Mail Service (5.5.2653.19)
    id &lt;PXX6AT23&gt;; Thu, 22 Aug 2002 12:46:27 +0100
Message-Id: &lt;5EC2AD6D2314D14FB64BDA287D25D9EF12B4F6@exchange1.cps.local&gt;
To: &quot;'zzzzteana@yahoogroups.com'&quot; &lt;zzzzteana@yahoogroups.com&gt;
X-Mailer: Internet Mail Service (5.5.2653.19)
X-Egroups-From: Steve Burt &lt;steve.burt@cursor-system.com&gt;
From: Steve Burt &lt;Steve_Burt@cursor-system.com&gt;
X-Yahoo-Profile: pyruse
MIME-Version: 1.0
Mailing-List: list zzzzteana@yahoogroups.com; contact
    forteana-owner@yahoogroups.com
Delivered-To: mailing list zzzzteana@yahoogroups.com
Precedence: bulk
List-Unsubscribe: &lt;mailto:zzzzteana-unsubscribe@yahoogroups.com&gt;
Date: Thu, 22 Aug 2002 12:46:18 +0100
Subject: [zzzzteana] RE: Alexander
Reply-To: zzzzteana@yahoogroups.com
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Martin A posted:
Tassos Papadopoulos, the Greek sculptor behind the plan, judged that the
 limestone of Mount Kerdylio, 70 miles east of Salonika and not far from the

=====================================================
== File: third-party/rspamd/src/test/resources/mail/attachment/inlineVirusTextAttachment.eml
=====================================================
To: me@linagora.com
From: Benoit Tellier &lt;me@linagora.com&gt;
Subject: Mail with text attachment
Message-ID: &lt;befd8cab-9c9c-5537-4e77-937f32326087@any.com&gt;
Date: Thu, 13 Oct 2016 10:26:20 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------4FD2D252DB453546C22C25B2&quot;

This is a multi-part message in MIME format.
--------------4FD2D252DB453546C22C25B2
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

I'm the body!

--------------4FD2D252DB453546C22C25B2
Content-Disposition: inline
Content-Type: text/plain; charset=UTF-8;
 name=&quot;attachment.txt&quot;
Content-ID: &lt;id&gt;

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
--------------4FD2D252DB453546C22C25B2--

=====================================================
== File: third-party/rspamd/src/test/resources/mail/attachment/inlineNonVirusTextAttachment.eml
=====================================================
To: me@linagora.com
From: Benoit Tellier &lt;me@linagora.com&gt;
Subject: Mail with text attachment
Message-ID: &lt;befd8cab-9c9c-5537-4e77-937f32326087@any.com&gt;
Date: Thu, 13 Oct 2016 10:26:20 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------4FD2D252DB453546C22C25B2&quot;

This is a multi-part message in MIME format.
--------------4FD2D252DB453546C22C25B2
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

I'm the body!

--------------4FD2D252DB453546C22C25B2
Content-Disposition: inline
Content-Type: text/plain; charset=UTF-8;
 name=&quot;attachment.txt&quot;
Content-ID: &lt;id&gt;

Non virus text
--------------4FD2D252DB453546C22C25B2--

=====================================================
== File: third-party/rspamd/src/test/resources/mail/spam/spam8.eml
=====================================================
From ormlh@imail.ru  Sun Jul 15 04:56:31 2001
Return-Path: &lt;ormlh@imail.ru&gt;
Delivered-To: yyyy@netnoteinc.com
Received: from cccp.co.kr (unknown [211.218.149.105]) by
    mail.netnoteinc.com (Postfix) with SMTP id 789D51140BA for
    &lt;jm@netnoteinc.com&gt;; Sun, 15 Jul 2001 03:56:28 +0000 (Eire)
Received: from imail.ru [210.14.5.95] by cccp.co.kr running [nMail 1.04
    (Windows NT/2000) SMTP Server]; Wed, 11 Jul 2001 02:41:35 +0900
Message-Id: &lt;00000e0836ec$00006b26$0000082f@imail.ru&gt;
To: &lt;67@163.net&gt;
From: ormlh@imail.ru
Subject: FW:
Date: Fri, 02 Jan 1998 04:30:44 -0400
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
X-Priority: 3
X-Msmail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)


&lt;HTML&gt;
&lt;BODY bgColor=3D#C0C0C0&gt;

&lt;FONT face=3D&quot;Arial&quot;&gt;
&lt;FONT size=3D4&gt;
&lt;FONT color=3D&quot;#800040&quot;&gt; Thank you for your interest!&lt;/FONT&gt;
&lt;FONT size=3D3&gt;
&lt;FONT color=3D&quot;#800040&quot;&gt;  &lt;/FONT&gt;
&lt;FONT color=3D&quot;#000000&quot;&gt;                         &lt;BR&gt;
&lt;BR&gt;
Judgment Courses offers an extensive Audio training&lt;BR&gt;
course in &lt;/FONT&gt;
&lt;FONT color=3D&quot;#0000A0&quot;&gt; &quot;How to Collect Money Judgments&quot;&lt;/FONT&gt;
&lt;FONT color=3D&quot;#000000&quot;&gt;  .         &lt;/FONT&gt;
&lt;FONT size=3D2&gt;
&lt;FONT color=3D&quot;#000000&quot;&gt; S6&lt;/FONT&gt;
&lt;FONT size=3D3&gt;
&lt;FONT color=3D&quot;#000000&quot;&gt; &lt;BR&gt;
&lt;BR&gt;
If you are like many people, you are not even sure what a&lt;BR&gt;
Money Judgment is and &lt;/FONT&gt;
&lt;FONT color=3D&quot;#0000A0&quot;&gt; why processing Money Judgments&lt;BR&gt;
can earn you very substantial income&lt;/FONT&gt;
&lt;FONT color=3D&quot;#000000&quot;&gt;  .&lt;BR&gt;
&lt;BR&gt;
If you ever sue a company or a person and you win then you&lt;BR&gt;
will have a Money Judgment against them.&lt;BR&gt;
&lt;BR&gt;
You are happy you won but you will soon find out the&lt;BR&gt;
shocking fact: &quot;Its now up to you to collect on the&lt;BR&gt;

=====================================================
== File: third-party/rspamd/README.md
=====================================================
# James' extensions for Rspamd

This module is for developing and delivering extensions to James for the [Rspamd](https://rspamd.com/) (the spam filtering system)
and [ClamAV](https://www.clamav.net/) (the antivirus engine).

## How to run

- The Rspamd extension requires an extra configuration file `rspamd.properties` to configure Rspamd connection
Configuration parameters:
    - `rSpamdUrl` : URL defining the Rspamd's server. Eg: http://rspamd:11334
    - `rSpamdPassword` : Password for pass authentication when request to Rspamd's server. Eg: admin
    - `rspamdTimeout` : Timeout for HTTP requests called to Rspamd. Default to 15 seconds.
    - `perUserBayes` : Use per-user Bayes for mail scanning/feedback. Default to false.
  
- Declare the `extensions.properties` for this module.

```
guice.extension.module=org.apache.james.rspamd.module.RspamdModule
guice.extension.task=org.apache.james.rspamd.module.RspamdTaskExtensionModule
```

- Declare the Rspamd mailbox listeners in `listeners.xml`. Eg:

```
&lt;listener&gt;
    &lt;class&gt;org.apache.james.rspamd.RspamdListener&lt;/class&gt;
&lt;/listener&gt;
```

  This listener can report mails to per-user Bayes by configure `perUserBayes` in `rspamd.properties`.

- Declare the Rspamd mailet for custom mail processing. 

  You can specify the `virusProcessor` if you want to enable virus scanning for mail. Upon configurable `virusProcessor`
you can specify how James process mail virus. We provide a sample Rspamd mailet and `virusProcessor` configuration:

  You can specify the `rejectSpamProcessor`. Emails marked as `rejected` by Rspamd will be redirected to this
processor. This corresponds to emails with the highest spam score, thus delivering them to users as marked as spam 
might not even be desirable.

  The `rewriteSubject` option allows to rewritte subjects when asked by Rspamd.  

  This mailet can scan mails against per-user Bayes by configure `perUserBayes` in `rspamd.properties`. This is achieved 
through the use of Rspamd `Deliver-To` HTTP header. If true, Rspamd will be called for each recipient of the mail, which comes at a performance cost. If true, subjects are not rewritten.
If true `virusProcessor` and `rejectSpamProcessor` are honnered per user, at the cost of email copies. Default to false.

```xml
&lt;processor state=&quot;local-delivery&quot; enableJmx=&quot;true&quot;&gt;
    &lt;mailet match=&quot;All&quot; class=&quot;org.apache.james.rspamd.RspamdScanner&quot;&gt;
        &lt;rewriteSubject&gt;true&lt;/rewriteSubject&gt;

=====================================================
== File: third-party/rspamd/sample-configuration/extensions.properties
=====================================================
guice.extension.module=org.apache.james.rspamd.module.RspamdModule
guice.extension.task=org.apache.james.rspamd.module.RspamdTaskExtensionModule

=====================================================
== File: third-party/rspamd/sample-configuration/antivirus.conf
=====================================================
clamav {
  # Scan mime_parts seperately - otherwise the complete mail will be transfered to AV Scanner
  #attachments_only = true; # Before 1.8.1
  scan_mime_parts = true; # After 1.8.1
  # Scanning Text is suitable for some av scanner databases (e.g. Sanesecurity)
  scan_text_mime = true; # 1.8.1 +
  scan_image_mime = true; # 1.8.1 +
  # If set force this action if any virus is found (default unset: no action is forced)
  # action = &quot;reject&quot;;
  message = '${SCANNER}: virus found: &quot;${VIRUS}&quot;';
  # If set true, log message is emitted for clean messages
  log_clean = false;
  # symbol to add (add it to metric if you want non-zero weight)
  symbol = CLAM_VIRUS;
  # type of scanner: &quot;clamav&quot;, &quot;fprot&quot;, &quot;sophos&quot; or &quot;savapi&quot;
  type = clamav;
  servers = &quot;clamav:3310&quot;;
  patterns {
    JUST_EICAR = '^Eicar-Test-Signature$';
  }
}

=====================================================
== File: third-party/rspamd/sample-configuration/statistic.conf
=====================================================
classifier &quot;bayes&quot; {
  tokenizer {
    name = &quot;osb&quot;;
  }
  cache {
  }
  new_schema = true; # Always use new schema
  store_tokens = false; # Redefine if storing of tokens is desired
  signatures = false; # Store learn signatures
  per_user = true; # Enable per user classifier
  users_enabled = true;
  min_tokens = 11;
  backend = &quot;redis&quot;;
  min_learns = 50; // Should not be bias by too small learning set

  statfile {
    symbol = &quot;BAYES_HAM&quot;;
    spam = false;
  }
  statfile {
    symbol = &quot;BAYES_SPAM&quot;;
    spam = true;
  }

  learn_condition = 'return require(&quot;lua_bayes_learn&quot;).can_learn';

  # Autolearn sample
  # autolearn {
  #  spam_threshold = 6.0; # When to learn spam (score &gt;= threshold)
  #  ham_threshold = -0.5; # When to learn ham (score &lt;= threshold)
  #  check_balance = true; # Check spam and ham balance
  #  min_balance = 0.9; # Keep diff for spam/ham learns for at least this value
  #}

  .include(try=true; priority=1) &quot;$LOCAL_CONFDIR/local.d/classifier-bayes.conf&quot;
  .include(try=true; priority=10) &quot;$LOCAL_CONFDIR/override.d/classifier-bayes.conf&quot;
}

=====================================================
== File: third-party/rspamd/sample-configuration/rspamd.properties
=====================================================
rspamdUrl=http://rspamd:11334
rspamdPassword=admin
# Whether to scan/learn mails using per-user Bayes. Default to false.
perUserBayes=false

=====================================================
== File: third-party/rspamd/docker-compose-distributed.yml
=====================================================
version: '3'

services:

  james:
    depends_on:
      cassandra:
        condition: service_healthy
      opensearch:
        condition: service_started
      tika:
        condition: service_started
      rabbitmq:
        condition: service_started
      s3:
        condition: service_started
      rspamd:
        condition: service_healthy
    image: apache/james:distributed-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - $PWD/target/apache-james-rspamd-jar-with-dependencies.jar:/root/extensions-jars/james-server-rspamd.jar
      - $PWD/sample-configuration/extensions.properties:/root/conf/extensions.properties
      - $PWD/sample-configuration/mailetcontainer_distributed.xml:/root/conf/mailetcontainer.xml
      - $PWD/sample-configuration/listeners.xml:/root/conf/listeners.xml
      - $PWD/sample-configuration/rspamd.properties:/root/conf/rspamd.properties
      - $PWD/sample-configuration/webadmin.properties:/root/conf/webadmin.properties
      - $PWD/sample-configuration/healthcheck.properties:/root/conf/healthcheck.properties
    ports:
      - &quot;80:80&quot;
      - &quot;25:25&quot;
      - &quot;110:110&quot;
      - &quot;143:143&quot;
      - &quot;465:465&quot;
      - &quot;587:587&quot;
      - &quot;993:993&quot;
      - &quot;8000:8000&quot;
    networks:
      - james

  opensearch:
    image: opensearchproject/opensearch:2.1.0
    environment:
      - discovery.type=single-node
      - DISABLE_INSTALL_DEMO_CONFIG=true
      - DISABLE_SECURITY_PLUGIN=true
    networks:

=====================================================
== File: third-party/elasticsearch/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    depends_on:
      - elasticsearch
    image: apache/james:memory-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - ./target/apache-james-elasticsearch-jar-with-dependencies.jar:/root/extensions-jars/apache-james-elasticsearch.jar
      - ./conf/extensions.properties:/root/conf/extensions.properties
      - ./conf/elasticsearch.properties:/root/conf/elasticsearch.properties

  elasticsearch:
    image: elasticsearch:6.4.0
    environment:
      - discovery.type=single-node

=====================================================
== File: third-party/elasticsearch/conf/extensions.properties
=====================================================
guice.extension.module=org.apache.james.metrics.es.v7.ESMetricReporterModule
guice.extension.startable=org.apache.james.metrics.es.v7.ESMetricReporter

=====================================================
== File: third-party/elasticsearch/conf/elasticsearch.properties
=====================================================
# Reports for metrics into ElasticSearch
# Defaults to elasticsearch.masterHost : on which server to publish metrics
# WARNING: Supported ElasticSearch versions for metrics differs from the James one. Only ElasticSearch version 2 to 6 are supported. This requires a distinct ElasticSearch isntalation for metrics.
# This component is furthermore unmaintained an use is discouraged.#elasticsearch.http.host=elasticsearch
elasticsearch.masterHost=elasticsearch
elasticsearch.http.port=9200
elasticsearch.metrics.reports.enabled=true
elasticsearch.metrics.reports.period=30
elasticsearch.metrics.reports.index=james-metrics

=====================================================
== File: third-party/elasticsearch/README.md
=====================================================
# ElasticSearch metric extension for Apache James

Exports Apache James metrics directly to ElasticSearch that can later be queried 
using [Grafana](https://grafana.com/).

**WARNING**: A separate ElasticSearch server is required, as an ElasticSearch 6.3 is needed, which is not compatible with
 ElasticSearch 7.10 release line, and not compatible with **OpenSearch** currently used by Apache James.
 

To run this metric exporter register it in `extensions.properties`:

```
guice.extension.module=org.apache.james.metrics.es.v7.ESMetricReporterModule
guice.extension.startable=org.apache.james.metrics.es.v7.ESMetricReporter
```


For configuring the metric reporting on ElasticSearch edit `elasticsearch.properties` content:

| Property name | explanation |
|---|---|
| elasticsearch.http.host | Optional. Host to report metrics on. Defaults to master host. Must be specified if metric export to ElasticSearch is enabled. |
| elasticsearch.http.port | Optional. Http port to use for publishing metrics. Must be specified if metric export to ElasticSearch is enabled.|
| elasticsearch.metrics.reports.enabled | Optional. Boolean value. Enables metrics reporting. Defaults to false. |
| elasticsearch.metrics.reports.period | Optional. Seconds between metric reports. Defaults to 60 seconds. |
| elasticsearch.metrics.reports.index | Optional. Index to publish metrics on. Defaults to james-metrics.|

We provide a docker-compose of this set up. 

In order to run it...

 - 1. Compile this project: `mvn clean install -DskipTests --pl org.apache.james:apache-james-elasticsearch --am`
 
 - 2. Then start James:

```
docker-compose up
```

=====================================================
== File: third-party/clamav/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    depends_on:
      cassandra:
        condition: service_healthy
      opensearch:
        condition: service_started
      tika:
        condition: service_started
      rabbitmq:
        condition: service_started
      s3:
        condition: service_started
      clamav:
        condition: service_started
    image: apache/james:distributed-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - $PWD/target/apache-james-clamav-jar-with-dependencies.jar:/root/extensions-jars/james-server-clamav.jar
      - $PWD/sample-configuration/mailetcontainer.xml:/root/conf/mailetcontainer.xml
    ports:
      - &quot;80:80&quot;
      - &quot;25:25&quot;
      - &quot;110:110&quot;
      - &quot;143:143&quot;
      - &quot;465:465&quot;
      - &quot;587:587&quot;
      - &quot;993:993&quot;
      - &quot;8000:8000&quot;
    networks:
      - james

  opensearch:
    image: opensearchproject/opensearch:2.1.0
    environment:
      - discovery.type=single-node
      - DISABLE_INSTALL_DEMO_CONFIG=true
      - DISABLE_SECURITY_PLUGIN=true
    networks:
      james:
        aliases:
          - elasticsearch

  cassandra:

=====================================================
== File: third-party/clamav/src/test/resources/attachment/inlineVirusTextAttachment.eml
=====================================================
To: me@linagora.com
From: Benoit Tellier &lt;me@linagora.com&gt;
Subject: Mail with text attachment
Message-ID: &lt;befd8cab-9c9c-5537-4e77-937f32326087@any.com&gt;
Date: Thu, 13 Oct 2016 10:26:20 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------4FD2D252DB453546C22C25B2&quot;

This is a multi-part message in MIME format.
--------------4FD2D252DB453546C22C25B2
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

I'm the body!

--------------4FD2D252DB453546C22C25B2
Content-Disposition: inline
Content-Type: text/plain; charset=UTF-8;
 name=&quot;attachment.txt&quot;
Content-ID: &lt;id&gt;

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
--------------4FD2D252DB453546C22C25B2--

=====================================================
== File: third-party/clamav/src/test/resources/attachment/inlineNonVirusTextAttachment.eml
=====================================================
To: me@linagora.com
From: Benoit Tellier &lt;me@linagora.com&gt;
Subject: Mail with text attachment
Message-ID: &lt;befd8cab-9c9c-5537-4e77-937f32326087@any.com&gt;
Date: Thu, 13 Oct 2016 10:26:20 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------4FD2D252DB453546C22C25B2&quot;

This is a multi-part message in MIME format.
--------------4FD2D252DB453546C22C25B2
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

I'm the body!

--------------4FD2D252DB453546C22C25B2
Content-Disposition: inline
Content-Type: text/plain; charset=UTF-8;
 name=&quot;attachment.txt&quot;
Content-ID: &lt;id&gt;

Non virus text
--------------4FD2D252DB453546C22C25B2--

=====================================================
== File: third-party/clamav/README.md
=====================================================
# James' extensions for ClamAV

This module is for developing and delivering extensions to James for the [ClamAV](https://www.clamav.net/) (the antivirus engine) integration.

Currently, this module provides `ClamAVScan` mailet that talks directly with ClamAV via unix socket to scan virus for every
incoming mail. Upon having virus, mail will be redirected to `virus` processor with configurable behavior for further processing.

E.g:
```xml
    &lt;processor state=&quot;local-delivery&quot; enableJmx=&quot;true&quot;&gt;
        &lt;mailet match=&quot;All&quot; class=&quot;org.apache.james.clamav.ClamAVScan&quot;&gt;
            &lt;host&gt;clamav&lt;/host&gt;
            &lt;port&gt;3310&lt;/port&gt;
            &lt;onMailetException&gt;ignore&lt;/onMailetException&gt;
        &lt;/mailet&gt;
        &lt;!-- If infected go to virus processor --&gt;
        &lt;mailet match=&quot;HasMailAttributeWithValue=org.apache.james.infected, true&quot; class=&quot;ToProcessor&quot;&gt;
            &lt;processor&gt;virus&lt;/processor&gt;
        &lt;/mailet&gt;
    &lt;/processor&gt;
    
    &lt;processor state=&quot;virus&quot; enableJmx=&quot;false&quot;&gt;
        &lt;mailet match=&quot;All&quot; class=&quot;ToRepository&quot;&gt;
            &lt;repositoryPath&gt;cassandra://var/mail/virus/&lt;/repositoryPath&gt;
        &lt;/mailet&gt;
    &lt;/processor&gt;
```

To run James with this ClamAV integration, please use James's jar extension mechanism.
We also provide a sample [docker-compose.yml](docker-compose.yml) on how to setup the James &lt;-&gt; ClamAV integration.

=====================================================
== File: third-party/crowdsec/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    image: apache/james:memory-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - ./sample-configuration/logback.xml:/root/conf/logback.xml
      - ./target/apache-james-crowdsec-jar-with-dependencies.jar:/root/extensions-jars/james-server-crowdsec.jar
      - ./sample-configuration/extensions.properties:/root/conf/extensions.properties
      - ./sample-configuration/smtpserver.xml:/root/conf/smtpserver.xml
      - ./sample-configuration/crowdsec.properties:/root/conf/crowdsec.properties
      - ./sample-configuration/imapserver.xml:/root/conf/imapserver.xml
      - ./sample-configuration/pop3server.xml:/root/conf/pop3server.xml
    networks:
      - james
    ports:
      - &quot;80:80&quot;
      - &quot;25:25&quot;
      - &quot;110:110&quot;
      - &quot;143:143&quot;
      - &quot;465:465&quot;
      - &quot;587:587&quot;
      - &quot;993:993&quot;
      - &quot;8000:8000&quot;
  crowdsec:
    image: crowdsecurity/crowdsec:v1.5.4
    container_name: crowdsec
    restart: always
    volumes:
      - ./sample-configuration/acquis.yaml:/etc/crowdsec/acquis.yaml
      - ./sample-configuration/parsers/syslog-logs.yaml:/etc/crowdsec/parsers/s00-raw/syslog-logs.yaml
      - ./sample-configuration/parsers/james-auth.yaml:/etc/crowdsec/parsers/s01-parse/james-auth.yaml
      - ./sample-configuration/scenarios:/etc/crowdsec/scenarios
      - ./sample-configuration/collections:/etc/crowdsec/collections
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - &quot;8080:8080&quot;
      - &quot;6060:6060&quot;
    networks:
      - james
networks:
  james:

=====================================================
== File: third-party/crowdsec/src/test/resources/crowdsec/collections/james.yaml
=====================================================
parsers:
  - crowdsecurity/syslog-logs
  - linagora/james-auth
  - linagora/james-dictionary-attack
scenarios:
  - apache-james/bf-auth
author: linagora

=====================================================
== File: third-party/crowdsec/src/test/resources/crowdsec/parsers/james-dictionary-attack.yaml
=====================================================
onsuccess: next_stage
debug: true
filter: &quot;evt.Parsed.program == 'james'&quot;
name: linagora/james-dictionary-attack
description: &quot;Parser for James dictionary attack&quot;

pattern_syntax:
  DICTIONARY_ATTACK: 'Rejected message. Unknown user: %{EMAILADDRESS:rcpt}'
nodes:
  - grok:
      name: &quot;DICTIONARY_ATTACK&quot;
      apply_on: message
      statics:
        - meta: log_type
          value: dictionary-attack
        - meta: timestamp
          expression: evt.Parsed.timestamp
        - meta: level
          expression: evt.Parsed.level
        - meta: source_ip
          expression: evt.Parsed.mdc_ip
        - meta: user
          expression: evt.Parsed.mdc_user
        - meta: rcpt
          expression: evt.Parsed.rcpt

=====================================================
== File: third-party/crowdsec/src/test/resources/crowdsec/parsers/syslog-logs.yaml
=====================================================
#If it's syslog, we are going to extract progname from it
filter: &quot;evt.Line.Labels.type == 'syslog'&quot;
onsuccess: next_stage
pattern_syntax:
  RAW_SYSLOG_PREFIX: '^&lt;%{NUMBER:stuff1}&gt;%{NUMBER:stuff2} %{SYSLOGBASE2} %{DATA:program} %{NUMBER:pid}'
  RAW_SYSLOG_META: '\[meta sequenceId=&quot;%{NOTDQUOTE:seq_id}&quot;\]'
name: crowdsecurity/syslog-logs
nodes:
  - grok:
      #this is a named regular expression. grok patterns can be kept into separate files for readability
      pattern: &quot;^%{SYSLOGLINE}&quot; 
      #This is the field of the `Event` to which the regexp should be applied
      apply_on: Line.Raw
  - grok:
      #a second pattern for unparsed syslog lines, as saw in opnsense
      pattern: '%{RAW_SYSLOG_PREFIX} - %{RAW_SYSLOG_META} %{GREEDYDATA:message}'
      apply_on: Line.Raw
#if the node was successfull, statics will be applied.
statics:
  - meta: machine
    expression: evt.Parsed.logsource
  - parsed: &quot;logsource&quot;
    value: &quot;syslog&quot;
# syslog date can be in two different fields (one of hte assignment will fail)
  - target: evt.StrTime
    expression: evt.Parsed.timestamp
  - target: evt.StrTime
    expression: evt.Parsed.timestamp8601
  - meta: datasource_path
    expression: evt.Line.Src
  - meta: datasource_type
    expression: evt.Line.Module
---
#if it's not syslog, the type is the progname
filter: &quot;evt.Line.Labels.type != 'syslog'&quot;
onsuccess: next_stage
name: crowdsecurity/non-syslog
debug: true
statics:
  - parsed: json_parsed
    expression: UnmarshalJSON(evt.Line.Raw, evt.Unmarshaled, &quot;message&quot;)
  - parsed: program
    expression: evt.Line.Labels.type
  - parsed: timestamp
    expression: evt.Unmarshaled.message.timestamp
  - parsed: level
    expression: evt.Unmarshaled.message.level
  - parsed: thread
    expression: evt.Unmarshaled.message.thread
  - parsed: mdc_protocol

=====================================================
== File: third-party/crowdsec/src/test/resources/crowdsec/parsers/james-auth.yaml
=====================================================
onsuccess: next_stage
debug: true
filter: &quot;evt.Parsed.program == 'james'&quot;
name: linagora/james-auth
description: &quot;Parser for James IMAP and SMTP authentication &quot;

pattern_syntax:
  IMAP_AUTH_FAIL_BAD_CREDENTIALS: 'IMAP Authentication failed%{DATA:data}because of bad credentials.'
  IMAP_AUTH_FAIL_DELEGATION_BAD_CREDENTIALS: 'IMAP Authentication with delegation failed%{DATA:data}because of bad credentials.'
  IMAP_AUTH_FAIL_NO_EXISTING_DELEGATION: 'IMAP Authentication with delegation failed%{DATA:data}because of non existing delegation.'
  SMTP_AUTH_FAIL: 'SMTP Authentication%{DATA:data}failed.'
  POP3_AUTH_FAIL: 'Bad credential supplied for %{DATA:user} with remote address %{IP:source_ip}'
nodes:
  - grok:
      name: &quot;IMAP_AUTH_FAIL_BAD_CREDENTIALS&quot;
      apply_on: message
      statics:
        - meta: log_type
          value: imap-auth-fail
        - meta: timestamp
          expression: evt.Parsed.timestamp
        - meta: level
          expression: evt.Parsed.level
        - meta: source_ip
          expression: evt.Parsed.mdc_ip
        - meta: host
          expression: evt.Parsed.mdc_host
        - meta: user
          expression: evt.Parsed.user
  - grok:
      name: &quot;IMAP_AUTH_FAIL_DELEGATION_BAD_CREDENTIALS&quot;
      apply_on: message
      statics:
        - meta: log_type
          value: imap-auth-fail
        - meta: timestamp
          expression: evt.Parsed.timestamp
        - meta: level
          expression: evt.Parsed.level
        - meta: source_ip
          expression: evt.Parsed.mdc_ip
        - meta: host
          expression: evt.Parsed.mdc_host
        - meta: user
          expression: evt.Parsed.user
  - grok:
      name: &quot;IMAP_AUTH_FAIL_NO_EXISTING_DELEGATION&quot;
      apply_on: message
      statics:
        - meta: log_type

=====================================================
== File: third-party/crowdsec/src/test/resources/crowdsec/acquis.yaml
=====================================================
source: file
filenames:
 - /var/log/james.log
labels:
 type: james

=====================================================
== File: third-party/crowdsec/src/test/resources/crowdsec/scenarios/james-bf-auth.yaml
=====================================================
type: leaky
name: apache-james/bf-auth
debug: true
description: &quot;Detect login james bruteforce&quot;
filter: &quot;evt.Meta.log_type == 'imap-auth-fail' || evt.Meta.log_type == 'smtp-auth-fail' || evt.Meta.log_type == 'pop3-auth-fail'&quot;
leakspeed: &quot;5m&quot;
capacity: 2 # 3rd failed authentication would trigger the ban decision
groupby: evt.Meta.source_ip
blackhole: 0m # to enable rapidly trigger new ban decision across tests. cf https://docs.crowdsec.net/docs/scenarios/format/#blackhole
reprocess: true
labels:
 service: ssh
 type: bruteforce
 remediation: true

=====================================================
== File: third-party/crowdsec/src/test/resources/crowdsec/scenarios/james-dictionary-attack.yaml
=====================================================
type: leaky
name: linagora/james-dictionary-attack
debug: true
description: &quot;Detect login james bruteforce&quot;
filter: &quot;evt.Meta.log_type == 'dictionary-attack'&quot;
leakspeed: &quot;1m&quot;
capacity: 5
groupby: evt.Meta.source_ip
blackhole: 1m
reprocess: true
labels:
  service: ssh
  type: bruteforce
  remediation: true

=====================================================
== File: third-party/crowdsec/src/test/resources/haproxy.cfg
=====================================================
global
  log stdout format raw local0 info

defaults
  mode tcp
  timeout client 1800s
  timeout connect 5s
  timeout server 1800s
  log global
  option tcplog
frontend imap1-frontend
  bind :143
  default_backend james-servers-imaps
frontend imaps-frontend
  bind :993
  default_backend james-servers-imaps

backend james-servers-imap
  server james1 172.17.0.1:39847 send-proxy
backend james-servers-imaps
  server james1 172.17.0.1:39347 send-proxy

=====================================================
== File: third-party/crowdsec/src/test/resources/log/james.log
=====================================================

=====================================================
== File: third-party/crowdsec/src/test/java/org/apache/james/crowdsec/CrowdsecSMTPConnectHandlerTest.java
=====================================================
package org.apache.james.crowdsec;

import java.io.IOException;
import java.net.URL;

import org.apache.james.crowdsec.client.CrowdsecClientConfiguration;
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.smtp.SMTPSession;
import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

import static org.apache.james.crowdsec.CrowdsecExtension.CROWDSEC_PORT;
import static org.assertj.core.api.Assertions.assertThat;

class CrowdsecSMTPConnectHandlerTest {
    @RegisterExtension
    static CrowdsecExtension crowdsecExtension = new CrowdsecExtension();

    private CrowdsecSMTPConnectHandler connectHandler;

    @BeforeEach
    void setUpEach() throws IOException {
        int port = crowdsecExtension.getCrowdsecContainer().getMappedPort(CROWDSEC_PORT);
        var crowdsecClientConfiguration = new CrowdsecClientConfiguration(new URL(&quot;http://localhost:&quot; + port + &quot;/v1&quot;), CrowdsecClientConfiguration.DEFAULT_API_KEY);
        connectHandler = new CrowdsecSMTPConnectHandler(new CrowdsecService(crowdsecClientConfiguration));
    }

    @Test
    void givenIPBannedByCrowdsecDecision() throws IOException, InterruptedException {
        crowdsecExtension.banIP(&quot;--ip&quot;, &quot;127.0.0.1&quot;);
        SMTPSession session = new BaseFakeSMTPSession() {};

        assertThat(connectHandler.onConnect(session)).isEqualTo(Response.DISCONNECT);
    }

    @Test
    void givenIPNotBannedByCrowdsecDecision() throws IOException, InterruptedException {
        crowdsecExtension.banIP(&quot;--range&quot;, &quot;192.182.39.2/24&quot;);

        SMTPSession session = new BaseFakeSMTPSession() {};

        assertThat(connectHandler.onConnect(session)).isEqualTo(CrowdsecSMTPConnectHandler.NOOP);
    }
}

=====================================================
== File: third-party/crowdsec/README.md
=====================================================
# James' extensions for Crowdsec

This module is for developing and delivering extensions to James for the [Crowdsec](https://www.crowdsec.net/) (IP filtering system)

## How to run

- The Crowdsec extension requires an extra configuration file `crowdsec.properties` to configure Crowdsec connection
  Configuration parameters:
    - `crowdsecUrl` : String. Required. URL defining the Crowdsec's bouncer. Eg: http://crowdsec:8080/v1
    - `apiKey` : String. Required. Api key for pass authentication when request to Crowdsec.
    - `timeout` : Duration. Optional. Default to `500ms`. Timeout questioning to CrowdSec. 
      E.g. `500ms`, `1 second`,...

- Declare the `extensions.properties` for this module.

```
guice.extension.module=org.apache.james.crowdsec.module.CrowdsecModule
```

### CrowdSec support for SMTP
- Declare the Crowdsec EhloHook in `smtpserver.xml`. Eg:

```
&lt;handlerchain&gt;
    &lt;handler class=&quot;org.apache.james.smtpserver.fastfail.ValidRcptHandler&quot;/&gt;
    &lt;handler class=&quot;org.apache.james.smtpserver.CoreCmdHandlerLoader&quot;/&gt;
    &lt;handler class=&quot;org.apache.james.crowdsec.CrowdsecEhloHook&quot;/&gt;
&lt;/handlerchain&gt;
```
or 
```
&lt;handlerchain&gt;
    &lt;handler class=&quot;org.apache.james.smtpserver.fastfail.ValidRcptHandler&quot;/&gt;
    &lt;handler class=&quot;org.apache.james.smtpserver.CoreCmdHandlerLoader&quot;/&gt;
    &lt;handler class=&quot;org.apache.james.crowdsec.CrowdsecSMTPConnectHandler&quot;/&gt;
&lt;/handlerchain&gt;
```

The EHLO hook will block banned clients with `554 Email rejected` whereas the connect handler will terminate the connection even before the SMTP greeting. 

### CrowdSec support for IMAP
- Declare the `CrowdsecImapConnectionCheck` in `imapserver.xml`. Eg:

```
&lt;imapserver enabled=&quot;true&quot;&gt;
        ...
        &lt;additionalConnectionChecks&gt;org.apache.james.crowdsec.CrowdsecImapConnectionCheck&lt;/additionalConnectionChecks&gt;
&lt;/imapserver&gt;
```


=====================================================
== File: third-party/crowdsec/sample-configuration/collections/james.yaml
=====================================================
parsers:
  - crowdsecurity/syslog-logs
  - linagora/james-auth
  - linagora/james-dictionary-attack
scenarios:
  - apache-james/bf-auth
author: linagora

=====================================================
== File: third-party/crowdsec/sample-configuration/parsers/james-dictionary-attack.yaml
=====================================================
onsuccess: next_stage
debug: true
filter: &quot;evt.Parsed.program == 'james'&quot;
name: linagora/james-dictionary-attack
description: &quot;Parser for James dictionary attack&quot;

pattern_syntax:
  DICTIONARY_ATTACK: 'Rejected message. Unknown user: %{EMAILADDRESS:rcpt}'
nodes:
  - grok:
      name: &quot;DICTIONARY_ATTACK&quot;
      apply_on: message
      statics:
        - meta: log_type
          value: dictionary-attack
        - meta: timestamp
          expression: evt.Parsed.timestamp
        - meta: level
          expression: evt.Parsed.level
        - meta: source_ip
          expression: evt.Parsed.mdc_ip
        - meta: user
          expression: evt.Parsed.mdc_user
        - meta: rcpt
          expression: evt.Parsed.rcpt

=====================================================
== File: third-party/crowdsec/sample-configuration/parsers/syslog-logs.yaml
=====================================================
#If it's syslog, we are going to extract progname from it
filter: &quot;evt.Line.Labels.type == 'syslog'&quot;
onsuccess: next_stage
pattern_syntax:
  RAW_SYSLOG_PREFIX: '^&lt;%{NUMBER:stuff1}&gt;%{NUMBER:stuff2} %{SYSLOGBASE2} %{DATA:program} %{NUMBER:pid}'
  RAW_SYSLOG_META: '\[meta sequenceId=&quot;%{NOTDQUOTE:seq_id}&quot;\]'
name: crowdsecurity/syslog-logs
nodes:
  - grok:
      #this is a named regular expression. grok patterns can be kept into separate files for readability
      pattern: &quot;^%{SYSLOGLINE}&quot; 
      #This is the field of the `Event` to which the regexp should be applied
      apply_on: Line.Raw
  - grok:
      #a second pattern for unparsed syslog lines, as saw in opnsense
      pattern: '%{RAW_SYSLOG_PREFIX} - %{RAW_SYSLOG_META} %{GREEDYDATA:message}'
      apply_on: Line.Raw
#if the node was successfull, statics will be applied.
statics:
  - meta: machine
    expression: evt.Parsed.logsource
  - parsed: &quot;logsource&quot;
    value: &quot;syslog&quot;
# syslog date can be in two different fields (one of hte assignment will fail)
  - target: evt.StrTime
    expression: evt.Parsed.timestamp
  - target: evt.StrTime
    expression: evt.Parsed.timestamp8601
  - meta: datasource_path
    expression: evt.Line.Src
  - meta: datasource_type
    expression: evt.Line.Module
---
#if it's not syslog, the type is the progname
filter: &quot;evt.Line.Labels.type != 'syslog'&quot;
onsuccess: next_stage
name: crowdsecurity/non-syslog
debug: true
statics:
  - parsed: json_parsed
    expression: UnmarshalJSON(evt.Line.Raw, evt.Unmarshaled, &quot;message&quot;)
  - parsed: program
    expression: evt.Line.Labels.type
  - parsed: timestamp
    expression: evt.Unmarshaled.message.timestamp
  - parsed: level
    expression: evt.Unmarshaled.message.level
  - parsed: thread
    expression: evt.Unmarshaled.message.thread
  - parsed: mdc_protocol

=====================================================
== File: third-party/crowdsec/sample-configuration/parsers/james-auth.yaml
=====================================================
onsuccess: next_stage
debug: true
filter: &quot;evt.Parsed.program == 'james'&quot;
name: linagora/james-auth
description: &quot;Parser for James IMAP and SMTP authentication &quot;

pattern_syntax:
  IMAP_AUTH_FAIL_BAD_CREDENTIALS: 'IMAP Authentication failed%{DATA:data}because of bad credentials.'
  IMAP_AUTH_FAIL_DELEGATION_BAD_CREDENTIALS: 'IMAP Authentication with delegation failed%{DATA:data}because of bad credentials.'
  IMAP_AUTH_FAIL_NO_EXISTING_DELEGATION: 'IMAP Authentication with delegation failed%{DATA:data}because of non existing delegation.'
  SMTP_AUTH_FAIL: 'SMTP Authentication%{DATA:data}failed.'
  POP3_AUTH_FAIL: 'Bad credential supplied for %{DATA:user} with remote address %{IP:source_ip}'
nodes:
  - grok:
      name: &quot;IMAP_AUTH_FAIL_BAD_CREDENTIALS&quot;
      apply_on: message
      statics:
        - meta: log_type
          value: imap-auth-fail
        - meta: timestamp
          expression: evt.Parsed.timestamp
        - meta: level
          expression: evt.Parsed.level
        - meta: source_ip
          expression: evt.Parsed.mdc_ip
        - meta: host
          expression: evt.Parsed.mdc_host
        - meta: user
          expression: evt.Parsed.user
  - grok:
      name: &quot;IMAP_AUTH_FAIL_DELEGATION_BAD_CREDENTIALS&quot;
      apply_on: message
      statics:
        - meta: log_type
          value: imap-auth-fail
        - meta: timestamp
          expression: evt.Parsed.timestamp
        - meta: level
          expression: evt.Parsed.level
        - meta: source_ip
          expression: evt.Parsed.mdc_ip
        - meta: host
          expression: evt.Parsed.mdc_host
        - meta: user
          expression: evt.Parsed.user
  - grok:
      name: &quot;IMAP_AUTH_FAIL_NO_EXISTING_DELEGATION&quot;
      apply_on: message
      statics:
        - meta: log_type

=====================================================
== File: third-party/crowdsec/sample-configuration/extensions.properties
=====================================================
guice.extension.module=org.apache.james.crowdsec.module.CrowdsecModule

=====================================================
== File: third-party/crowdsec/sample-configuration/acquis.yaml
=====================================================
source: docker
container_name:
 - james
labels:
  type: james

=====================================================
== File: third-party/crowdsec/sample-configuration/scenarios/james-bf-auth.yaml
=====================================================
type: leaky
name: apache-james/bf-auth
debug: true
description: &quot;Detect login james bruteforce&quot;
filter: &quot;evt.Meta.log_type == 'imap-auth-fail' || evt.Meta.log_type == 'smtp-auth-fail' || evt.Meta.log_type == 'pop3-auth-fail'&quot;
leakspeed: &quot;1m&quot;
capacity: 5
groupby: evt.Meta.source_ip
blackhole: 1m
reprocess: true
labels:
 service: ssh
 type: bruteforce
 remediation: true

=====================================================
== File: third-party/crowdsec/sample-configuration/scenarios/james-dictionary-attack.yaml
=====================================================
type: leaky
name: linagora/james-dictionary-attack
debug: true
description: &quot;Detect login james bruteforce&quot;
filter: &quot;evt.Meta.log_type == 'dictionary-attack'&quot;
leakspeed: &quot;1m&quot;
capacity: 5
groupby: evt.Meta.source_ip
blackhole: 1m
reprocess: true
labels:
  service: ssh
  type: bruteforce
  remediation: true

=====================================================
== File: third-party/crowdsec/sample-configuration/crowdsec.properties
=====================================================
crowdsecUrl=http://crowdsec:8080/v1
apiKey=default_api_key

=====================================================
== File: third-party/spamassassin/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    depends_on:
      - spamassassin
    image: apache/james:memory-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - $PWD/target/apache-james-spamassassin-jar-with-dependencies.jar:/root/extensions-jars/james-server-spamassassin.jar
      - $PWD/sample-configuration/extensions.properties:/root/conf/extensions.properties
      - $PWD/sample-configuration/spamassassin.properties:/root/conf/spamassassin.properties
      - $PWD/sample-configuration/mailetcontainer.xml:/root/conf/mailetcontainer.xml
      - $PWD/sample-configuration/listeners.xml:/root/conf/listeners.xml
      - $PWD/sample-configuration/smtpserver.xml:/root/conf/smtpserver.xml
    ports:
      - &quot;80:80&quot;
      - &quot;25:25&quot;
      - &quot;110:110&quot;
      - &quot;143:143&quot;
      - &quot;465:465&quot;
      - &quot;587:587&quot;
      - &quot;993:993&quot;
      - &quot;8000:8000&quot;

  spamassassin:
    image: instantlinux/spamassassin:4.0.0-6
    ports:
      - &quot;783:783&quot;

=====================================================
== File: third-party/spamassassin/src/test/resources/eml/spam.eml
=====================================================
Return-Path: &lt;user@james.org&gt;
Subject: Fwd: Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
 (CET) (user@james.org)
To: &lt;user@james.org&gt;
From: user &lt;user@james.org&gt;
Message-ID: &lt;f18fa52e-2e9d-1125-327d-2100b23f8a6b@james.org&gt;
Date: Thu, 19 Jan 2017 20:36:37 +0100
MIME-Version: 1.0
In-Reply-To: &lt;001a114380a6a260d105467765ab@google.com&gt;
Content-Type: multipart/mixed;
 boundary=&quot;------------17D96D411CBD55D8239A8C1F&quot;

This is a multi-part message in MIME format.
--------------17D96D411CBD55D8239A8C1F
Content-Type: multipart/alternative;
 boundary=&quot;------------64D716A3DDAEC185D3E67448&quot;


--------------64D716A3DDAEC185D3E67448
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit




-------- Message trans&#xe9;r&#xe9; --------
Sujet : 	Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
(CET) (user@james.org)
Date : 	Thu, 19 Jan 2017 19:18:23 +0000
De : 	&lt;user@james.org&gt;
R&#xc3;&#xa9;pondre &#xc3;  : 	user@james.org
Pour : 	user@james.org




--------------64D716A3DDAEC185D3E67448
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

&lt;html&gt;
  &lt;head&gt;

    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
  &lt;/head&gt;
  &lt;body bgcolor=&quot;#FFFFFF&quot; text=&quot;#000000&quot;&gt;
    &lt;p&gt;&lt;br&gt;
    &lt;/p&gt;
    &lt;div class=&quot;moz-forward-container&quot;&gt;&lt;br&gt;
      &lt;br&gt;

=====================================================
== File: third-party/spamassassin/src/test/resources/spamassassin_db/ham/ham1
=====================================================
From exmh-workers-admin@redhat.com  Thu Aug 22 12:36:23 2002
Return-Path: &lt;exmh-workers-admin@spamassassin.taint.org&gt;
Delivered-To: zzzz@localhost.netnoteinc.com
Received: from localhost (localhost [127.0.0.1])
	by phobos.labs.netnoteinc.com (Postfix) with ESMTP id D03E543C36
	for &lt;zzzz@localhost&gt;; Thu, 22 Aug 2002 07:36:16 -0400 (EDT)
Received: from phobos [127.0.0.1]
	by localhost with IMAP (fetchmail-5.9.0)
	for zzzz@localhost (single-drop); Thu, 22 Aug 2002 12:36:16 +0100 (IST)
Received: from listman.spamassassin.taint.org (listman.spamassassin.taint.org [66.187.233.211]) by
    dogma.slashnull.org (8.11.6/8.11.6) with ESMTP id g7MBYrZ04811 for
    &lt;zzzz-exmh@spamassassin.taint.org&gt;; Thu, 22 Aug 2002 12:34:53 +0100
Received: from listman.spamassassin.taint.org (localhost.localdomain [127.0.0.1]) by
    listman.redhat.com (Postfix) with ESMTP id 8386540858; Thu, 22 Aug 2002
    07:35:02 -0400 (EDT)
Delivered-To: exmh-workers@listman.spamassassin.taint.org
Received: from int-mx1.corp.spamassassin.taint.org (int-mx1.corp.spamassassin.taint.org
    [172.16.52.254]) by listman.redhat.com (Postfix) with ESMTP id 10CF8406D7
    for &lt;exmh-workers@listman.redhat.com&gt;; Thu, 22 Aug 2002 07:34:10 -0400
    (EDT)
Received: (from mail@localhost) by int-mx1.corp.spamassassin.taint.org (8.11.6/8.11.6)
    id g7MBY7g11259 for exmh-workers@listman.redhat.com; Thu, 22 Aug 2002
    07:34:07 -0400
Received: from mx1.spamassassin.taint.org (mx1.spamassassin.taint.org [172.16.48.31]) by
    int-mx1.corp.redhat.com (8.11.6/8.11.6) with SMTP id g7MBY7Y11255 for
    &lt;exmh-workers@redhat.com&gt;; Thu, 22 Aug 2002 07:34:07 -0400
Received: from ratree.psu.ac.th ([202.28.97.6]) by mx1.spamassassin.taint.org
    (8.11.6/8.11.6) with SMTP id g7MBIhl25223 for &lt;exmh-workers@redhat.com&gt;;
    Thu, 22 Aug 2002 07:18:55 -0400
Received: from delta.cs.mu.OZ.AU (delta.coe.psu.ac.th [172.30.0.98]) by
    ratree.psu.ac.th (8.11.6/8.11.6) with ESMTP id g7MBWel29762;
    Thu, 22 Aug 2002 18:32:40 +0700 (ICT)
Received: from munnari.OZ.AU (localhost [127.0.0.1]) by delta.cs.mu.OZ.AU
    (8.11.6/8.11.6) with ESMTP id g7MBQPW13260; Thu, 22 Aug 2002 18:26:25
    +0700 (ICT)
From: Robert Elz &lt;kre@munnari.OZ.AU&gt;
To: Chris Garrigues &lt;cwg-dated-1030377287.06fa6d@DeepEddy.Com&gt;
Cc: exmh-workers@spamassassin.taint.org
Subject: Re: New Sequences Window
In-Reply-To: &lt;1029945287.4797.TMDA@deepeddy.vircio.com&gt;
References: &lt;1029945287.4797.TMDA@deepeddy.vircio.com&gt;
    &lt;1029882468.3116.TMDA@deepeddy.vircio.com&gt; &lt;9627.1029933001@munnari.OZ.AU&gt;
    &lt;1029943066.26919.TMDA@deepeddy.vircio.com&gt;
    &lt;1029944441.398.TMDA@deepeddy.vircio.com&gt;
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Message-Id: &lt;13258.1030015585@munnari.OZ.AU&gt;
X-Loop: exmh-workers@spamassassin.taint.org
Sender: exmh-workers-admin@spamassassin.taint.org
Errors-To: exmh-workers-admin@spamassassin.taint.org

=====================================================
== File: third-party/spamassassin/src/test/resources/spamassassin_db/ham/ham3
=====================================================
From timc@2ubh.com  Thu Aug 22 13:52:59 2002
Return-Path: &lt;timc@2ubh.com&gt;
Delivered-To: zzzz@localhost.netnoteinc.com
Received: from localhost (localhost [127.0.0.1])
	by phobos.labs.netnoteinc.com (Postfix) with ESMTP id 0314547C66
	for &lt;zzzz@localhost&gt;; Thu, 22 Aug 2002 08:52:58 -0400 (EDT)
Received: from phobos [127.0.0.1]
	by localhost with IMAP (fetchmail-5.9.0)
	for zzzz@localhost (single-drop); Thu, 22 Aug 2002 13:52:59 +0100 (IST)
Received: from n16.grp.scd.yahoo.com (n16.grp.scd.yahoo.com
    [66.218.66.71]) by dogma.slashnull.org (8.11.6/8.11.6) with SMTP id
    g7MCrdZ07070 for &lt;zzzz@spamassassin.taint.org&gt;; Thu, 22 Aug 2002 13:53:39 +0100
X-Egroups-Return: sentto-2242572-52733-1030020820-zzzz=spamassassin.taint.org@returns.groups.yahoo.com
Received: from [66.218.67.198] by n16.grp.scd.yahoo.com with NNFMP;
    22 Aug 2002 12:53:40 -0000
X-Sender: timc@2ubh.com
X-Apparently-To: zzzzteana@yahoogroups.com
Received: (EGP: mail-8_1_0_1); 22 Aug 2002 12:53:39 -0000
Received: (qmail 76099 invoked from network); 22 Aug 2002 12:53:39 -0000
Received: from unknown (66.218.66.218) by m5.grp.scd.yahoo.com with QMQP;
    22 Aug 2002 12:53:39 -0000
Received: from unknown (HELO rhenium.btinternet.com) (194.73.73.93) by
    mta3.grp.scd.yahoo.com with SMTP; 22 Aug 2002 12:53:39 -0000
Received: from host217-36-23-185.in-addr.btopenworld.com ([217.36.23.185])
    by rhenium.btinternet.com with esmtp (Exim 3.22 #8) id 17hrT0-0004gj-00
    for forteana@yahoogroups.com; Thu, 22 Aug 2002 13:53:38 +0100
X-Mailer: Microsoft Outlook Express Macintosh Edition - 4.5 (0410)
To: zzzzteana &lt;zzzzteana@yahoogroups.com&gt;
X-Priority: 3
Message-Id: &lt;E17hrT0-0004gj-00@rhenium.btinternet.com&gt;
From: &quot;Tim Chapman&quot; &lt;timc@2ubh.com&gt;
X-Yahoo-Profile: tim2ubh
MIME-Version: 1.0
Mailing-List: list zzzzteana@yahoogroups.com; contact
    forteana-owner@yahoogroups.com
Delivered-To: mailing list zzzzteana@yahoogroups.com
Precedence: bulk
List-Unsubscribe: &lt;mailto:zzzzteana-unsubscribe@yahoogroups.com&gt;
Date: Thu, 22 Aug 2002 13:52:38 +0100
Subject: [zzzzteana] Moscow bomber
Reply-To: zzzzteana@yahoogroups.com
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Man Threatens Explosion In Moscow 

Thursday August 22, 2002 1:40 PM
MOSCOW (AP) - Security officers on Thursday seized an unidentified man who
said he was armed with explosives and threatened to blow up his truck in
front of Russia's Federal Security Services headquarters in Moscow, NTV

=====================================================
== File: third-party/spamassassin/src/test/resources/spamassassin_db/ham/ham2
=====================================================
From Steve_Burt@cursor-system.com  Thu Aug 22 12:46:39 2002
Return-Path: &lt;Steve_Burt@cursor-system.com&gt;
Delivered-To: zzzz@localhost.netnoteinc.com
Received: from localhost (localhost [127.0.0.1])
	by phobos.labs.netnoteinc.com (Postfix) with ESMTP id BE12E43C34
	for &lt;zzzz@localhost&gt;; Thu, 22 Aug 2002 07:46:38 -0400 (EDT)
Received: from phobos [127.0.0.1]
	by localhost with IMAP (fetchmail-5.9.0)
	for zzzz@localhost (single-drop); Thu, 22 Aug 2002 12:46:38 +0100 (IST)
Received: from n20.grp.scd.yahoo.com (n20.grp.scd.yahoo.com
    [66.218.66.76]) by dogma.slashnull.org (8.11.6/8.11.6) with SMTP id
    g7MBkTZ05087 for &lt;zzzz@spamassassin.taint.org&gt;; Thu, 22 Aug 2002 12:46:29 +0100
X-Egroups-Return: sentto-2242572-52726-1030016790-zzzz=spamassassin.taint.org@returns.groups.yahoo.com
Received: from [66.218.67.196] by n20.grp.scd.yahoo.com with NNFMP;
    22 Aug 2002 11:46:30 -0000
X-Sender: steve.burt@cursor-system.com
X-Apparently-To: zzzzteana@yahoogroups.com
Received: (EGP: mail-8_1_0_1); 22 Aug 2002 11:46:29 -0000
Received: (qmail 11764 invoked from network); 22 Aug 2002 11:46:29 -0000
Received: from unknown (66.218.66.217) by m3.grp.scd.yahoo.com with QMQP;
    22 Aug 2002 11:46:29 -0000
Received: from unknown (HELO mailgateway.cursor-system.com) (62.189.7.27)
    by mta2.grp.scd.yahoo.com with SMTP; 22 Aug 2002 11:46:29 -0000
Received: from exchange1.cps.local (unverified) by
    mailgateway.cursor-system.com (Content Technologies SMTPRS 4.2.10) with
    ESMTP id &lt;T5cde81f695ac1d100407d@mailgateway.cursor-system.com&gt; for
    &lt;forteana@yahoogroups.com&gt;; Thu, 22 Aug 2002 13:14:10 +0100
Received: by exchange1.cps.local with Internet Mail Service (5.5.2653.19)
    id &lt;PXX6AT23&gt;; Thu, 22 Aug 2002 12:46:27 +0100
Message-Id: &lt;5EC2AD6D2314D14FB64BDA287D25D9EF12B4F6@exchange1.cps.local&gt;
To: &quot;'zzzzteana@yahoogroups.com'&quot; &lt;zzzzteana@yahoogroups.com&gt;
X-Mailer: Internet Mail Service (5.5.2653.19)
X-Egroups-From: Steve Burt &lt;steve.burt@cursor-system.com&gt;
From: Steve Burt &lt;Steve_Burt@cursor-system.com&gt;
X-Yahoo-Profile: pyruse
MIME-Version: 1.0
Mailing-List: list zzzzteana@yahoogroups.com; contact
    forteana-owner@yahoogroups.com
Delivered-To: mailing list zzzzteana@yahoogroups.com
Precedence: bulk
List-Unsubscribe: &lt;mailto:zzzzteana-unsubscribe@yahoogroups.com&gt;
Date: Thu, 22 Aug 2002 12:46:18 +0100
Subject: [zzzzteana] RE: Alexander
Reply-To: zzzzteana@yahoogroups.com
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Martin A posted:
Tassos Papadopoulos, the Greek sculptor behind the plan, judged that the
 limestone of Mount Kerdylio, 70 miles east of Salonika and not far from the

=====================================================
== File: third-party/spamassassin/src/test/resources/spamassassin_db/spam/spam2
=====================================================
From lmrn@mailexcite.com  Mon Jun 24 17:03:24 2002
Return-Path: merchantsworld2001@juno.com
Delivery-Date: Mon May 13 04:46:13 2002
Received: from mandark.labs.netnoteinc.com ([213.105.180.140]) by
    dogma.slashnull.org (8.11.6/8.11.6) with ESMTP id g4D3kCe15097 for
    &lt;jm@jmason.org&gt;; Mon, 13 May 2002 04:46:12 +0100
Received: from 203.129.205.5.205.129.203.in-addr.arpa ([203.129.205.5]) by
    mandark.labs.netnoteinc.com (8.11.2/8.11.2) with SMTP id g4D3k2D12605 for
    &lt;jm@netnoteinc.com&gt;; Mon, 13 May 2002 04:46:04 +0100
Received: from html (unverified [207.95.174.49]) by
    203.129.205.5.205.129.203.in-addr.arpa (EMWAC SMTPRS 0.83) with SMTP id
    &lt;B0000178595@203.129.205.5.205.129.203.in-addr.arpa&gt;; Mon, 13 May 2002
    09:04:46 +0530
Message-Id: &lt;B0000178595@203.129.205.5.205.129.203.in-addr.arpa&gt;
From: lmrn@mailexcite.com
To: ranmoore@cybertime.net
Subject: Real Protection, Stun Guns!  Free Shipping! Time:2:01:35 PM
Date: Mon, 28 Jul 1980 14:01:35
MIME-Version: 1.0
X-Keywords: 
Content-Type: text/html; charset=&quot;DEFAULT&quot;

&lt;html&gt;
&lt;body&gt;
&lt;center&gt;
&lt;h3&gt;
&lt;font color=&quot;blue&quot;&gt;
&lt;b&gt;
The Need For Safety Is Real In 2002, You Might Only Get One Chance - Be Ready!
&lt;p&gt;
Free Shipping &amp; Handling Within The (USA) If You Order Before May 25, 2002! 
&lt;p&gt;
3 Day Super Sale, Now Until May 7, 2002!  Save Up To $30.00 On Some Items!

&lt;/b&gt;
&lt;/font&gt;
&lt;/h3&gt;
&lt;/center&gt;
&lt;p&gt;
IT'S GETTING TO BE SPRING AGAIN, PROTECT YOURSELF AS YOU WALK,&lt;br&gt;
JOG AND EXERCISE OUTSIDE.  ALSO PROTECT YOUR LOVED ONES AS&lt;br&gt;
THEY RETURN HOME FROM COLLEGE!&lt;br&gt;
&lt;p&gt;
*     LEGAL PROTECTION FOR COLLEGE STUDENTS!&lt;br&gt;
*     GREAT UP'COMING OUTDOOR PROTECTION GIFTS!&lt;br&gt;
*     THERE IS NOTHING WORTH MORE PROTECTING THAN LIFE!&lt;br&gt;
*     OUR STUN DEVICES &amp; PEPPER PRODUCTS ARE LEGAL PROTECTION!
&lt;p&gt;
&lt;b&gt;
&lt;font color=&quot;red&quot;&gt;

=====================================================
== File: third-party/spamassassin/src/test/resources/spamassassin_db/spam/spam3
=====================================================
From amknight@mailexcite.com  Mon Jun 24 17:03:49 2002
Return-Path: merchantsworld2001@juno.com
Delivery-Date: Wed May 15 08:58:23 2002
Received: from mandark.labs.netnoteinc.com ([213.105.180.140]) by
    dogma.slashnull.org (8.11.6/8.11.6) with ESMTP id g4F7wIe23864 for
    &lt;jm@jmason.org&gt;; Wed, 15 May 2002 08:58:18 +0100
Received: from webcust2.hightowertech.com (webcust2.hightowertech.com
    [216.41.166.100]) by mandark.labs.netnoteinc.com (8.11.2/8.11.2) with
    ESMTP id g4F7wGD24120 for &lt;jm@netnoteinc.com&gt;; Wed, 15 May 2002 08:58:17
    +0100
Received: from html ([206.216.197.214]) by webcust2.hightowertech.com with
    Microsoft SMTPSVC(5.5.1877.197.19); Wed, 15 May 2002 00:55:53 -0700
From: amknight@mailexcite.com
To: cbmark@cbmark.com
Subject: New Improved Fat Burners, Now With TV Fat Absorbers! Time:6:25:49 PM
Date: Wed, 30 Jul 1980 18:25:49
MIME-Version: 1.0
Message-Id: &lt;0845b5355070f52WEBCUST2@webcust2.hightowertech.com&gt;
X-Keywords: 
Content-Type: text/html; charset=&quot;DEFAULT&quot;

&lt;html&gt;
&lt;body&gt;
&lt;center&gt;
&lt;b&gt;
&lt;font color=&quot;blue&quot;&gt;
*****Bonus Fat Absorbers As Seen On TV, Included Free With Purchase Of 2 Or More Bottle, $24.95 Value*****
&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
***TAKE $10.00 OFF 2 &amp; 3 MONTH SUPPLY ORDERS, $5.00 OFF 1 MONTH SUPPLY!
***AND STILL GET YOUR BONUS!  PRICE WILL BE DEDUCTED DURING PROCESSING.
&lt;br&gt;
&lt;br&gt;
***FAT ABSORBERS ARE GREAT FOR THOSE WHO WANT TO LOSE WEIGHT,  BUT CAN'T STAY ON A DIET***
&lt;br&gt;
&lt;br&gt;
***OFFER GOOD UNTIL MAY 27, 2002!  FOREIGN ORDERS INCLUDED!
&lt;br&gt;
&lt;br&gt;

&lt;font color=&quot;blue&quot;&gt;

LOSE 30 POUNDS  IN 30 DAYS... GUARANTEED!!!
&lt;br&gt;
&lt;br&gt;

All Natural Weight-Loss Program, Speeds Up The Metabolism Safely
Rated #1 In Both Categories of SAFETY &amp; EFFECTIVENESS In&lt;br&gt;
(THE United States Today)

=====================================================
== File: third-party/spamassassin/src/test/resources/spamassassin_db/spam/spam1
=====================================================
From ilug-admin@linux.ie  Tue Aug  6 11:51:02 2002
Return-Path: &lt;ilug-admin@linux.ie&gt;
Delivered-To: yyyy@localhost.netnoteinc.com
Received: from localhost (localhost [127.0.0.1])
	by phobos.labs.netnoteinc.com (Postfix) with ESMTP id 9E1F5441DD
	for &lt;jm@localhost&gt;; Tue,  6 Aug 2002 06:48:09 -0400 (EDT)
Received: from phobos [127.0.0.1]
	by localhost with IMAP (fetchmail-5.9.0)
	for jm@localhost (single-drop); Tue, 06 Aug 2002 11:48:09 +0100 (IST)
Received: from lugh.tuatha.org (root@lugh.tuatha.org [194.125.145.45]) by
    dogma.slashnull.org (8.11.6/8.11.6) with ESMTP id g72LqWv13294 for
    &lt;jm-ilug@jmason.org&gt;; Fri, 2 Aug 2002 22:52:32 +0100
Received: from lugh (root@localhost [127.0.0.1]) by lugh.tuatha.org
    (8.9.3/8.9.3) with ESMTP id WAA31224; Fri, 2 Aug 2002 22:50:17 +0100
Received: from bettyjagessar.com (w142.z064000057.nyc-ny.dsl.cnc.net
    [64.0.57.142]) by lugh.tuatha.org (8.9.3/8.9.3) with ESMTP id WAA31201 for
    &lt;ilug@linux.ie&gt;; Fri, 2 Aug 2002 22:50:11 +0100
X-Authentication-Warning: lugh.tuatha.org: Host w142.z064000057.nyc-ny.dsl.cnc.net
    [64.0.57.142] claimed to be bettyjagessar.com
Received: from 64.0.57.142 [202.63.165.34] by bettyjagessar.com
    (SMTPD32-7.06 EVAL) id A42A7FC01F2; Fri, 02 Aug 2002 02:18:18 -0400
Message-Id: &lt;1028311679.886@0.57.142&gt;
Date: Fri, 02 Aug 2002 23:37:59 0530
To: ilug@linux.ie
From: &quot;Start Now&quot; &lt;startnow2002@hotmail.com&gt;
MIME-Version: 1.0
Content-Type: text/plain; charset=&quot;US-ASCII&quot;; format=flowed
Subject: [ILUG] STOP THE MLM INSANITY
Sender: ilug-admin@linux.ie
Errors-To: ilug-admin@linux.ie
X-Mailman-Version: 1.1
Precedence: bulk
List-Id: Irish Linux Users' Group &lt;ilug.linux.ie&gt;
X-Beenthere: ilug@linux.ie

Greetings!

You are receiving this letter because you have expressed an interest in 
receiving information about online business opportunities. If this is 
erroneous then please accept my most sincere apology. This is a one-time 
mailing, so no removal is necessary.

If you've been burned, betrayed, and back-stabbed by multi-level marketing, 
MLM, then please read this letter. It could be the most important one that 
has ever landed in your Inbox.

MULTI-LEVEL MARKETING IS A HUGE MISTAKE FOR MOST PEOPLE

MLM has failed to deliver on its promises for the past 50 years. The pursuit 
of the &quot;MLM Dream&quot; has cost hundreds of thousands of people their friends, 

=====================================================
== File: third-party/spamassassin/sample-configuration/extensions.properties
=====================================================
guice.extension.module=org.apache.james.spamassassin.SpamAssassinModule

=====================================================
== File: third-party/spamassassin/sample-configuration/spamassassin.properties
=====================================================
spamassassin.host=localhost
spamassassin.port=783

=====================================================
== File: third-party/linshare/src/test/resources/docker-compose.yml
=====================================================
# Docker compose file for a full-featured Linshare architecture
version: '3.7'

services:
    database:
        restart: on-failure
        image: linagora/linshare-database:2.2
        environment:
            - PGDATA=/var/lib/postgresql/data/pgdata
            - POSTGRES_USER=linshare
            - POSTGRES_PASSWORD=linshare

    backend:
        restart: on-failure
        image: linagora/linshare-backend:2.2
        links:
            - database:linshare_database
            - mongodb:linshare_mongodb
            - smtp:linshare_smtp
        depends_on:
            - database
            - mongodb
            - smtp
        volumes:
            - ./conf/catalina.properties:/usr/local/tomcat/conf/catalina.properties
            - ./conf/log4j.properties:/etc/linshare/log4j.properties
            - ./ssl/id_rsa:/etc/linshare/id_rsa
            - ./ssl/id_rsa.pub:/etc/linshare/id_rsa.pub
        healthcheck:
            test: [&quot;CMD&quot;, &quot;curl&quot;, &quot;-s&quot;, &quot;-f&quot;, &quot;http://localhost:8080/linshare/&quot;]
            interval: 30s
            timeout: 10s
            retries: 3
            start_period: 40s
        environment:
            - SMTP_HOST=linshare_smtp
            - SMTP_PORT=25
            - POSTGRES_HOST=linshare_database
            - POSTGRES_PORT=5432
            - POSTGRES_USER=linshare
            - POSTGRES_PASSWORD=linshare
            - MONGODB_HOST=linshare_mongodb
            - MONGODB_PORT=27017
            - THUMBNAIL_ENABLE=false

    mongodb:
        restart: on-failure
        image: mongo:3.2
        command: mongod --smallfiles


=====================================================
== File: third-party/linshare/src/test/resources/backend/Dockerfile
=====================================================
FROM linagora/linshare-backend:2.3.2

COPY conf/catalina.properties /usr/local/tomcat/conf/catalina.properties
COPY conf/log4j.properties /etc/linshare/log4j.properties
COPY conf/id_rsa /etc/linshare/id_rsa
COPY conf/id_rsa.pub /etc/linshare/id_rsa.pub

=====================================================
== File: third-party/linshare/src/test/resources/backend/conf/log4j.properties
=====================================================
# Default to info level output; this is very handy if you eventually use Hibernate as well.
log4j.rootCategory=INFO, CONSOLE

# In order to use an external configuration file for log4j, use this key for JAVA_OPS
# JAVA_OPTS=&quot;${JAVA_OPTS} -Dlog4j.configuration=file:/etc/linshare/log4j.properties&quot;

# Define all the appenders
log4j.appender.LINSHARE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.LINSHARE.File=${catalina.home}/logs/linshare
#log4j.appender.LINSHARE.File=${jetty.home}/logs/linshare
log4j.appender.LINSHARE.Append=true
log4j.appender.LINSHARE.Encoding=UTF-8
# Roll-over the log once per day
log4j.appender.LINSHARE.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.LINSHARE.layout = org.apache.log4j.PatternLayout
#log4j.appender.LINSHARE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.LINSHARE.layout.ConversionPattern=[%p]:%t:%d{yyyyMMdd.HHmmss}:%c:%M:%m%n


# CONSOLE is set to be a ConsoleAppender.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# CONSOLE uses PatternLayout.
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%p]:%t:%d{yyyyMMdd.HHmmss}:%c:%M:%m%n


# Service category names are the name of the defining module class and then the service id.
# we could set the two new logger to warn to avoid a lot of information in production mode. 
log4j.category.org.linagora.linshare.services.AppModule.TimingFilter=info
log4j.category.org.linagora.linshare.view.tapestry.services.AppModule.TimingFilter=info


# Outputs a list of pages, components and mixins at startup.
log4j.category.org.apache.tapestry5.services.TapestryModule.ComponentClassResolver=info

# Outputs startup statistics; time to setup and initialize the registry, and a list of
# available services.
log4j.category.org.apache.tapestry5.TapestryFilter=info

# Disable info message &quot;[INFO]:AbstractContextSource:afterPropertiesSet:Property 'userDn' not set - anonymous context will be used for read-write operations&quot;
log4j.category.org.springframework.ldap.core.support.AbstractContextSource=warn

# Turning on debug mode for a page or component will show all of the code changes that occur when the
# class is loaded.  Turning on debug mode for a page will enable detailed output about
# the contruction of the page, including the runtime code modifications that occur. Verbose
# mode is rarely used, as it outputs voluminous details about the rendering of the page.

# log4j.category.org.linagora.linshare.pages.Index=info

# Turn on some verbose debugging about everything in the application. This is nice initially,

=====================================================
== File: third-party/linshare/src/test/resources/backend/conf/id_rsa.pub
=====================================================
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXyZzpBOVJ3AWpVTMs+viH1anDyo5D4yFTR/M0ioocVnnPA/5MSLmKoCiPy1KQEblJ5AUw3Nij8Gi13YmQ47qsZoho1nNNleD2SNn1jG1mgz4tfR8mblOz1staADetFMrU0OGkIqRSgch96WqM4JW4IGSYvuz1TBGYB1n1gjiPDoc4tPXvZCE6PhnbWIPUXckArLiCzQfu8ZBkFjFYTc2pQaXHSlvq/s3mqHgOQgq6Wj5AkPMAdB6I6AKbRlxlS7uRxVT4ZsKA/KOTSXoxwgbnn8by3rvYqutzkeJGq9IjGqw5i341HQcGjnWZdWK1L60DIUwaEaTZn1L+YKY14o09 duc@duc-HP-ProBook-450-G4

=====================================================
== File: third-party/linshare/src/test/resources/backend/conf/id_rsa.pri
=====================================================
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA18mc6QTlSdwFqVUzLPr4h9Wpw8qOQ+MhU0fzNIqKHFZ5zwP+
TEi5iqAoj8tSkBG5SeQFMNzYo/Botd2JkOO6rGaIaNZzTZXg9kjZ9YxtZoM+LX0f
Jm5Ts9bLWgA3rRTK1NDhpCKkUoHIfelqjOCVuCBkmL7s9UwRmAdZ9YI4jw6HOLT1
72QhOj4Z21iD1F3JAKy4gs0H7vGQZBYxWE3NqUGlx0pb6v7N5qh4DkIKulo+QJDz
AHQeiOgCm0ZcZUu7kcVU+GbCgPyjk0l6McIG55/G8t672Krrc5HiRqvSIxqsOYt+
NR0HBo51mXVitS+tAyFMGhGk2Z9S/mCmNeKNPQIDAQABAoIBAA9Va0n/qA9sjBZx
UHakyt5UJ4EbNqrKTAbv+O9F3PSQjI1SWlKvZEfeg6NcLlzAdaszgc7sEpTrs3Ug
7fKWzCAOFSll+8GKofa+TIavWOLM9rEi0ADaHCaOX9rgYxRwgs1GnpIcSBL41/di
i8jA+MKhwqQ8BPiVVDa6ZwEUJNK9cxPlenwSZOl12/aAPW6DATftdL7xv+fjw9Bz
BexEPHklbphHGwoTxvQfiCmTN96CGn1/W99xABKTH70tprAFgOZ78klQjXYwtxVW
rQiXmvgOTEhbrqBMxpRIzFgP+ryrEgcn02jbaq8Aa4BNbD96PJsMIo0psuTHSsnZ
Tcqe2MECgYEA+nVL50qSGlXSvPNTrnjYJHt6mkifke5clmLgX4HegjQqi2+wBjlR
QM1M+1neqB53ueJrlxS8+fZR00SyaUg7ANub5jkqiK5YsVUJk9CvlhUfDlXEW1Ce
quYvuYWr2LX7K8sh+mXDCwttDms/aaJASSvTExMV/GeWFeJpsBs8QJECgYEA3I/t
S+gAbGByUirMKXoP2sfIl3inApU93SIXgpvFnRF87GcC30bE95VYZJ8X8MdsYmro
UiWbWq/8P7PzxYFukbQw+etUs0SV6eJ2FLR7n9dTWfj2Juw86HxERoA57L9Qt6os
d0tEBWm5+ZVlRdGoavi+ADnRRbD3ugzz2QdR1+0CgYEAhxBmRG6UZ5tMsBTQVdBZ
TyM/tJ/hXYMbbwYXVanlYnXbU6KBXHngdX/BOfL2/dagXh/aQXkvh+Trr3DmfZw0
JXxIkFjXtSnALrFbHtl1Nwxg2Qwrfcr2JddIeVW6nH1W3AEJa80g533b6+CuK7sR
y+PUSf8K5ji+WULmF9A4J+ECgYBEurzROHxZSTyWiiuQiS7DmBnTyY8RaPwcGnGF
C5FqvnZVHExy0xSxqeIfiMvnBd2qVXILlxhwDALovuSpmQmhcasJVeHQ8wBcH2t4
TD1xs6GPmdrqihb4wzBrX62tLniyot60VcneffGr6nfiZ9C5dMWQQHQL6XdojHy4
FmXUiQKBgBk1nTlnmeS2CRbKakc1IqVqGeyZDbEpYG7pc79T1/5Hdw/TOfH36W7H
5OapRlEgny+snw8UmkeWghg3+QgfMDY+d6iXaBcTr0tGlqEinff81EyJfuWNCUQJ
a5XfnKtGwsEEOLyD3qEK2QABKvML1BgzGOJFENDeQ8euHMIy9SF4
-----END RSA PRIVATE KEY-----

=====================================================
== File: event-sourcing/event-sourcing-core/event-sourcing-core.iml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;module version=&quot;4&quot;&gt;
  &lt;component name=&quot;AdditionalModuleElements&quot;&gt;
    &lt;content url=&quot;file://$MODULE_DIR$&quot; dumb=&quot;true&quot;&gt;
      &lt;sourceFolder url=&quot;file://$MODULE_DIR$/src/main/scala&quot; isTestSource=&quot;false&quot; /&gt;
    &lt;/content&gt;
  &lt;/component&gt;
&lt;/module&gt;

=====================================================
== File: backends-common/opensearch/src/test/resources/auth-es/nginx-conf/reverse_elasticsearch.conf
=====================================================
server {
    listen 9200 ssl;
    ssl_certificate /etc/ssl/certs/default.crt;
    ssl_certificate_key /etc/ssl/private/default.key;
    server_name reverse_elasticsearch;
    auth_basic &quot;Restricted Area&quot;;
    auth_basic_user_file /etc/nginx/conf.d/passwd;

    location / {
        proxy_pass http://elasticsearch:9200;
    }
}

=====================================================
== File: backends-common/opensearch/src/test/resources/auth-es/nginx-conf/passwd
=====================================================
# the default credential: elasticsearch:secret
elasticsearch:$apr1$m5FvKpw7$EZ9UEUCilHyKTIqQ57nWG1

=====================================================
== File: backends-common/opensearch/src/test/resources/auth-es/NginxDockerfile
=====================================================
FROM nginx:1.25

COPY conf/nginx-conf/ /etc/nginx/conf.d/
COPY conf/default.crt /etc/ssl/certs/default.crt
COPY conf/default.key /etc/ssl/private/default.key

=====================================================
== File: backends-common/opensearch/src/test/resources/auth-es/README.md
=====================================================
## Resources explanation

### nginx-conf

Contains nginx configuration files:
 - reverse_elasticsearch.conf: allow nginx to be the proxy connecting to OpenSearch
 - passwd: Nginx credentials file store, each record follows the format: `username:encrypted-password`

TODO This set up is inherited from ElasticSearch where the security plugin was proprietary and this was our only way to 
test things like SSL, auth. Now that we use OpenSearch we could instead rely on OpenSearch native features.

### default.crt &amp; default.key

public (.crt) and private (.key) of the self signed SSL certification. It will be loaded by nginx

### server.jks

Once you use a http client connect to nginx by `https` protocol, 
the default behavior of the client is rejecting the connection because 
self signed SSL certification provided by nginx is not recognized by the 
client. To deal with this problem, there are two ways to configure the client:

 - Not recommended in production, ignore SSL Validation
 - Configure the client to use local TrustStore file containing the .crt, 
 then it should trust nginx.
 
The `server.jks` is generated by the command
```
keytool -import -v -trustcacerts -file default.crt -keystore server.jks -keypass mypass -storepass mypass
```

With: 
 - password: `mypass`

=====================================================
== File: backends-common/opensearch/src/test/resources/auth-es/default.key
=====================================================
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAwyDNIXe5OeNI/Bf2LUUSF2koINYB9Z2D9qsxYjXB02NrPmPA
DRjiE9c3XgCsiQdkJv008lltTNyvJ5O/ARtnzOpDn6CGIZ8aH08VzP5ECs5jak+c
gc5dVloEhbGTOUVq10mh02FuTG36CY+LnEWXAOo8yKOcA4jiAtzFA8buZbJGmgPx
hTOYw0VMmvXEUBVdwlT4Uk8/3OE4VGQZecO6mnzP1Fh7D5vf1UaBrrMcUYg/6Igx
UmcSZbb9NDUoTnZvkHjlt8bGUXuTTTeQh5pmwdtoiyF00wjP7DhvPLBc1fIB9lxx
EZ+to1e5K/SMA9I76cX3LIChyfPdBc6yZIbPbwIDAQABAoIBAQC+DHmeyjQPDK8u
UcxE5UwsnxAlgysfZY59Ntn/dKpW0DNI7fDFEOJJPsm/ddqWECvcyavDC5SoUx0J
6B4V3vJnpBe/JqLdpk/UBLwQD+qHt+MeTXH6/9rq2vwilwT0uAbKrv29mtzJ9ied
HkF1MFZV3s7bAHdY/f5bmVkOR7g0NQ6QLuXYiLDSHpu/7dMVBNS9qMNL292cZbpi
KJZUvyrK6jSOh9Dt3fmWVdjRp5nGd/Z0r32A8UdoWiQ3cXe9uwXVxz8+ZGkP4t44
Ob+YcgHUEz6iI2o7nqWpNtPI+hBWH1YK/Szlay3rTZSKvkNG1Sdwm1UhoJqNFucC
7ZWkH8GxAoGBAOSpP9lrB0sXCGwhD3xbAYCZsTgomSQ13X6/daKdN9fxpegK7v5r
baojBoSvIKiKezHzMiL5IiEhESXEvXQigFNORdf9mFs9Z9ec4I/96dQNYM4d1QtM
nz3dABt62po8ROCA4Y26ar+OmcJ2kv0RPuJCDGkrY1Is7SNTtGi+HW55AoGBANp1
MJi3VHS9oEF8dslgLkZMZWPgcwJK2Y3wYIkatmxuVkWYdRFPqWWwlXUU17KH7eqm
iEONLNyI7g/duFFTbz52MkeMpX6xarXddYkS2HMDUqSTgt3T+ULHVhTtlEEBXg6m
5cx/eg8niJ6VH+vFtRcYrActLg751mjNgz8fmBMnAoGBAMwj4fHsIIXEWWuXlGi0
IsI59EKr1BTE1isLKS11aN6sSS7BXB7dr/k97drVMrXldBjjArbAbtze1Z0/aNhe
2OwGrEopiDSkvKl8z+sdh/0duHgroADHdj9Xp3nhE3qxJdi8lyHd9OFxoQpAq/es
xtRenQ/jgXdizo9EcoM0f7gZAoGARw6ZSQNQyEwpxUM7zBKp2pnc3NjT7+nyy7Vl
YRM8RRa6nxaQ9ZmIyxfd9WBbLKoEHDAg4IAaGH29mZGP83wFEjcV8anw5r3ErPUk
1vo3R2nMRtXoWkkpqav29wW0FFTiiDeHRbYtOKKuUI7G/ESpu6J9yjPK6HohYKOA
Tlbzez8CgYAFhpoeHO2X06pEsFeI6rMtc0rS0EHuVuqfjjyEMOyQZ8BsCWzDZBDW
N9rxd0yz80H1Q33dwzrkiVu15e+JMNb5I80Ou0t+LQVYpvhtM89yKoLFk2HqL+eH
wQJ/Fszj8fwdwx+k2DEve8MVHSx/w9CpwM7B2yGxcUFKi/JSM1rQEw==
-----END RSA PRIVATE KEY-----

=====================================================
== File: backends-common/opensearch/src/test/resources/auth-es/default.crt
=====================================================
-----BEGIN CERTIFICATE-----
MIIDBjCCAe4CCQDbp5K1cKRJgjANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJB
VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
cyBQdHkgTHRkMB4XDTE4MDcwMjEyNDkxMloXDTE5MDcwMjEyNDkxMlowRTELMAkG
A1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0
IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AMMgzSF3uTnjSPwX9i1FEhdpKCDWAfWdg/arMWI1wdNjaz5jwA0Y4hPXN14ArIkH
ZCb9NPJZbUzcryeTvwEbZ8zqQ5+ghiGfGh9PFcz+RArOY2pPnIHOXVZaBIWxkzlF
atdJodNhbkxt+gmPi5xFlwDqPMijnAOI4gLcxQPG7mWyRpoD8YUzmMNFTJr1xFAV
XcJU+FJPP9zhOFRkGXnDupp8z9RYew+b39VGga6zHFGIP+iIMVJnEmW2/TQ1KE52
b5B45bfGxlF7k003kIeaZsHbaIshdNMIz+w4bzywXNXyAfZccRGfraNXuSv0jAPS
O+nF9yyAocnz3QXOsmSGz28CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAFRDXedF9
hjuEmLjETBwhh5Zgg102GDJp58ZBkLE1IaT4mrbK90mhpzxsaxbuqOdu3PXJV4tc
SEocxj5hk5ivVZiWk/j8YJmB8ZOUKdeOxc1tfratlonJ85AY+6m02+FhjUnWobmg
HVBepFTJt1iaTgOpVf8YpbYW+L6+kWV9C2CtT3WUhxtllKjokbF+YVN7LnDlbynM
80+aGm+rdg+TUusg+T/2FeVlDyBgbqagBcCQCQacWD2+zzL28XB3PwRE6oU/tKuu
rbCsGZE0WH8Pc7p6J/alRr+foQiu7KKJKJ8pO1qdy716DlmPIDN23iZROIu1GKKl
ZIKfyefPUcwHyw==
-----END CERTIFICATE-----

=====================================================
== File: backends-common/rabbitmq/src/test/resources/empty-store
=====================================================

=====================================================
== File: backends-common/redis/pom.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;
         xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
         xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
    &lt;parent&gt;
        &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
        &lt;artifactId&gt;james-backends-common&lt;/artifactId&gt;
        &lt;version&gt;3.9.0-SNAPSHOT&lt;/version&gt;
    &lt;/parent&gt;

    &lt;artifactId&gt;apache-james-backends-redis&lt;/artifactId&gt;
    &lt;name&gt;Apache James :: Backends Common :: Redis&lt;/name&gt;

    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;james-core&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;james-server-guice-common&lt;/artifactId&gt;
            &lt;type&gt;test-jar&lt;/type&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;james-server-testing&lt;/artifactId&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.google.inject&lt;/groupId&gt;
            &lt;artifactId&gt;guice&lt;/artifactId&gt;
            &lt;scope&gt;provided&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;eu.timepit&lt;/groupId&gt;
            &lt;artifactId&gt;refined_${scala.base}&lt;/artifactId&gt;
            &lt;scope&gt;provided&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;io.lettuce&lt;/groupId&gt;
            &lt;artifactId&gt;lettuce-core&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;io.projectreactor&lt;/groupId&gt;
            &lt;artifactId&gt;reactor-scala-extensions_${scala.base}&lt;/artifactId&gt;
            &lt;scope&gt;provided&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;

=====================================================
== File: backends-common/README.adoc
=====================================================
= backends-common

This project intends to share implementation details for commonly used back-ends accross james
projects.

For instance, as we are implementing a cassandra storage backend for James, we need to :

 - Use tools to help to work with Cassandra in james-mailbox project
 - We need to access test helpers in james-mpt project
 - We need the same tools than those introduce in james-mailbox in James server data.

=====================================================
== File: backends-common/cassandra/src/test/resources/cassandra-driver.conf
=====================================================
datastax-java-driver {
  basic.request {
    timeout = 5 seconds
  }
}

=====================================================
== File: backends-common/cassandra/src/test/resources/configuration-reader-test/cassandra.properties
=====================================================
mailbox.max.retry.acl=1
mailbox.max.retry.modseq=2
mailbox.max.retry.uid=3
mailbox.max.retry.message.flags.update=4
mailbox.max.retry.message.id.flags.update=5
fetch.advance.row.count=6
chunk.size.expunge=8
mailbox.blob.part.size=9
attachment.v2.migration.read.timeout=10
message.attachmentids.read.timeout=11
cassandra.consistency_level.regular=LOCAL_QUORUM
cassandra.consistency_level.lightweight_transaction=LOCAL_SERIAL

=====================================================
== File: README.adoc
=====================================================
Apache James Project
====================

:latest_james_version: 3.8.0

image:https://img.shields.io/badge/Join%20us-Mailing%20lists-purple.svg[link=&quot;https://james.apache.org/mail.html&quot;]
link:https://gitter.im/apache/james-project[image:https://badges.gitter.im/apache/james-project.svg[Join the chat at link:https://gitter.im/apache/james-project]]
image:https://img.shields.io/badge/CI-Jenkins-blue.svg[link=&quot;https://ci-builds.apache.org/job/james/job/ApacheJames/&quot;]
image:https://img.shields.io/badge/Documentation-green.svg[link=&quot;https://james.apache.org/documentation.html&quot;]
image:https://img.shields.io/badge/Downloads-{latest_james_version}-yellow.svg[link=&quot;https://james.apache.org/download.cgi&quot;]
image:https://img.shields.io/badge/Images-docker-blue.svg[link=&quot;https://hub.docker.com/r/apache/james&quot;]
image:https://img.shields.io/badge/License-ApacheV2-orange.svg[link=&quot;https://www.apache.org/licenses/&quot;]
image:https://img.shields.io/badge/Latests-news-red.svg[link=&quot;https://james.apache.org/index.html#posts&quot;]

image::james-logo.png[link=&quot;https://james.apache.org&quot;]

*James* stands for *Java Apache Mail Enterprise Server!*

It has a modular architecture based on a rich set of *modern* and *efficient* components which provides at the end
*complete, stable, secure and extendable Mail Servers running on the JVM*.

Create your *own personal solution* for emails treatment by assembling the components you need thanks to the Inversion
of Control mail platform offered and  go further customizing filtering and routing rules using *James Mailet Container*.

Supported protocols are: IMAP, SMTP, link:https://jmap.io[JMAP], POP3 and more...

The link:https://james.staged.apache.org/james-distributed-app/{latest_james_version}/index.html[*Distributed server*] focuses on delivering an easy-to-operate scalable mail server based on modern technologies
(Cassandra, S3, OpenSearch and RabbitMQ).

Read more on https://james.apache.org/[our website].

== How to contribute?

.Read more...
[%collapsible]
====
James is a project that lives from the contributions of its community! Anyone can contribute!

Read https://james.apache.org/index.html#third[how to contribute].

We more than welcome *articles* and *blog posts* about James. Contact us by https://james.apache.org/mail.html[email]
or on https://gitter.im/apache/james-project[Gitter] to share your experiences.

*Documentation* is an easy way to get started, and more than wanted! Check out the https://issues.apache.org/jira/issues/?jql=project%20%3D%20JAMES%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20documentation%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC[~documentation] label on JIRA.

And to get started with *code contributions*, search out the
https://issues.apache.org/jira/issues/?jql=project%20%3D%20JAMES%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20newbie%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC[~newbie],
https://issues.apache.org/jira/issues/?jql=project%20%3D%20JAMES%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20easyfix%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC[~easyfix],
https://issues.apache.org/jira/issues/?jql=project%20%3D%20JAMES%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20feature%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC[~feature] labels on JIRA.


=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc1985.txt
=====================================================





Network Working Group                                       J. De Winter
Request for Comments: 1985                     Wildbear Consulting, Inc.
Category: Standards Track                                    August 1996


                         SMTP Service Extension
                   for Remote Message Queue Starting

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   This memo defines an extension to the SMTP service whereby an SMTP
   client and server may interact to give the server an opportunity to
   start the processing of its queues for messages to go to a given
   host.  This extension is meant to be used in startup conditions as
   well as for mail nodes that have transient connections to their
   service providers.

1.  Introduction

   The TURN command was a valid attempt to address the problem of having
   to start the processing for the mail queue on a remote machine.
   However, the TURN command presents a large security loophole.  As
   there is no verification of the remote host name, the TURN command
   could be used by a rogue system to download the mail for a site other
   than itself.

   Therefore, this memo introduces the ETRN command.  This command uses
   the mechanism defined in [4] to define extensions to the SMTP service
   whereby a client (&quot;sender-SMTP&quot;) may request that the server
   (&quot;receiver-SMTP&quot;) start the processing of its mail queues for
   messages that are waiting at the server for the client machine.  If
   any messages are at the server for the client, then the server should
   create a new SMTP session and send the messages at that time.





=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc2554.txt
=====================================================






Network Working Group                                           J. Myers
Request for Comments: 2554                       Netscape Communications
Category: Standards Track                                     March 1999


                         SMTP Service Extension
                           for Authentication

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1999).  All Rights Reserved.


1. Introduction

   This document defines an SMTP service extension [ESMTP] whereby an
   SMTP client may indicate an authentication mechanism to the server,
   perform an authentication protocol exchange, and optionally negotiate
   a security layer for subsequent protocol interactions.  This
   extension is a profile of the Simple Authentication and Security
   Layer [SASL].


2. Conventions Used in this Document

   In examples, &quot;C:&quot; and &quot;S:&quot; indicate lines sent by the client and
   server respectively.

   The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, and &quot;MAY&quot;
   in this document are to be interpreted as defined in &quot;Key words for
   use in RFCs to Indicate Requirement Levels&quot; [KEYWORDS].


3. The Authentication service extension



=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc1652.txt
=====================================================





Network Working Group                               J. Klensin, WG Chair
Request for Comments: 1652                                           MCI
Obsoletes: 1426                                         N. Freed, Editor
Category: Standards Track                                       Innosoft
                                                                 M. Rose
                                            Dover Beach Consulting, Inc.
                                                            E. Stefferud
                                     Network Management Associates, Inc.
                                                              D. Crocker
                                                  Silicon Graphics, Inc.
                                                               July 1994


             SMTP Service Extension for 8bit-MIMEtransport

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   This memo defines an extension to the SMTP service whereby an SMTP
   content body consisting of text containing octets outside of the US-
   ASCII octet range (hex 00-7F) may be relayed using SMTP.

1.  Introduction

   Although SMTP is widely and robustly deployed, various extensions
   have been requested by parts of the Internet community. In
   particular, a significant portion of the Internet community wishes to
   exchange messages in which the content body consists of a MIME
   message [3] containing arbitrary octet-aligned material. This memo
   uses the mechanism described in [5] to define an extension to the
   SMTP service whereby such contents may be exchanged. Note that this
   extension does NOT eliminate the possibility of an SMTP server
   limiting line length; servers are free to implement this extension
   but nevertheless set a line length limit no lower than 1000 octets.
   Given that this restriction still applies, this extension does NOT
   provide a means for transferring unencoded binary via SMTP.



=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc1830.txt
=====================================================





Network Working Group                                       G. Vaudreuil
Request for Comments: 1830                        Octel Network Services
Category: Experimental                                       August 1995


                        SMTP Service Extensions
                       for Transmission of Large
                        and Binary MIME Messages

Status of this Memo

   This memo defines an Experimental Protocol for the Internet
   community.  This memo does not specify an Internet standard of any
   kind.  Discussion and suggestions for improvement are requested.
   Distribution of this memo is unlimited.

1. Abstract

   This memo defines two extensions to the SMTP service.  The first
   service enables a SMTP client and server to negotiate the use of an
   alternate DATA command &quot;BDAT&quot; for efficiently sending large MIME
   messages.  The second extension takes advantage of the BDAT command
   to permit the negotiated sending of unencoded binary data.

2. Introduction

   The MIME extensions to the Internet message protocol provides for the
   transmission of many kinds of data which were previously unsupported
   in Internet mail.  Anticipating the need to more efficiently
   transport the new media made possible with MIME, the SMTP protocol
   has been extended to provide transport for new message types.  RFC
   1426 defines one such extension for the transmission of unencoded 8
   bit MIME messages [8BIT].  This service extension permits the
   receiver SMTP to declare support for 8 bit body parts and the sender
   to request 8 bit transmission of a particular message.

   One expected result of the use of MIME is that the Internet mail
   system will be expected to carry very large mail messages.  In such
   transactions, there is a need to eliminate the requirement that the
   message be scanned for &quot;CR LF . CR LF&quot; sequences upon sending and
   receiving to detect the end of message.

   Independent of the need to send large messages, Internet mail is
   increasingly multi-media there is a need to avoid the overhead of
   base64 and quoted-printable encoding of binary objects sent using the

=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc2142.txt
=====================================================





Network Working Group                                        D. Crocker
Request for Comments: 2142                     Internet Mail Consortium
Cateogry: Standards Track                                      May 1997


                             MAILBOX NAMES FOR
                   COMMON SERVICES, ROLES AND FUNCTIONS

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

ABSTRACT

   This specification enumerates and describes Internet mail addresses
   (mailbox name @ host reference) to be used when contacting personnel
   at an organization.  Mailbox names are provided for both operations
   and business functions.  Additional mailbox names and aliases are not
   prohibited, but organizations which support email exchanges with the
   Internet are encouraged to support AT LEAST each mailbox name for
   which the associated function exists within the organization.

1.  RATIONALE AND SCOPE

   Various Internet documents have specified mailbox names to be used
   when reaching the operators of the new service; for example, [RFC822
   6.3, C.6] requires the presence of a &lt;POSTMASTER@domain&gt; mailbox name
   on all hosts that have an SMTP server.  Other protocols have defacto
   standards for well known mailbox names, such as &lt;USENET@domain&gt; for
   NNTP (see [RFC977]), and &lt;WEBMASTER@domain&gt; for HTTP (see [HTTP]).
   Defacto standards also exist for well known mailbox names which have
   nothing to do with a particular protocol, e.g., &lt;ABUSE@domain&gt; and
   &lt;TROUBLE@domain&gt;.

   The purpose of this memo is to aggregate and specify the basic set of
   mailbox names which organizations need to support.  Most
   organizations do not need to support the full set of mailbox names
   defined here, since not every organization will implement the all of
   the associated services.  However, if a given service is offerred,
   then the associated mailbox name(es) must be supported, resulting in
   delivery to a recipient appropriate for the referenced service or

=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc2034.txt
=====================================================





Network Working Group                                       N. Freed
Request for Comments: RFC 2034                              Innosoft
Category: Standards Track                               October 1996


                       SMTP Service Extension for
                     Returning Enhanced Error Codes

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1.  Abstract

   This memo defines an extension to the SMTP service [RFC-821, RFC-
   1869] whereby an SMTP server augments its responses with the enhanced
   mail system status codes defined in RFC 1893.  These codes can then
   be used to provide more informative explanations of error conditions,
   especially in the context of the delivery status notifications format
   defined in RFC 1894.

2.  Introduction

   Although SMTP is widely and robustly deployed, various extensions
   have been requested by parts of the Internet community. In
   particular, in the modern, international, and multilingual Internet a
   need exists to assign codes to specific error conditions that can be
   translated into different languages. RFC 1893 defines such a set of
   status codes and RFC 1894 defines a mechanism to send such coded
   material to users. However, in many cases the agent creating the RFC
   1894 delivery status notification is doing so in response to errors
   it received from a remote SMTP server.

   As such, remote servers need a mechanism for embedding enhanced
   status codes in their responses as well as a way to indicate to a
   client when they are in fact doing this. This memo uses the SMTP
   extension mechanism described in RFC 1869 to define such a mechanism.





=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc1891.txt
=====================================================





Network Working Group                                           K. Moore
Request for Comments: 1891                       University of Tennessee
Category: Standards Track                                   January 1996


                         SMTP Service Extension
                   for Delivery Status Notifications

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1. Abstract

   This memo defines an extension to the SMTP service, which allows an
   SMTP client to specify (a) that delivery status notifications (DSNs)
   should be generated under certain conditions, (b) whether such
   notifications should return the contents of the message, and (c)
   additional information, to be returned with a DSN, that allows the
   sender to identify both the recipient(s) for which the DSN was
   issued, and the transaction in which the original message was sent.

   Any questions, comments, and reports of defects or ambiguities in
   this specification may be sent to the mailing list for the NOTARY
   working group of the IETF, using the address
   &lt;notifications@cs.utk.edu&gt;.  Requests to subscribe to the mailing
   list should be addressed to &lt;notifications-request@cs.utk.edu&gt;.
   Implementors of this specification are encouraged to subscribe to the
   mailing list, so that they will quickly be informed of any problems
   which might hinder interoperability.

   NOTE: This document is a Proposed Standard.  If and when this
   protocol is submitted for Draft Standard status, any normative text
   (phrases containing SHOULD, SHOULD NOT, MUST, MUST NOT, or MAY) in
   this document will be re-evaluated in light of implementation
   experience, and are thus subject to change.

2. Introduction

   The SMTP protocol [1] requires that an SMTP server provide
   notification of delivery failure, if it determines that a message

=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc0974.txt
=====================================================

Network Working Group                                    Craig Partridge
Request for Comments: 974                 CSNET CIC BBN Laboratories Inc
                                                            January 1986

                   MAIL ROUTING AND THE DOMAIN SYSTEM


Status of this Memo

   This RFC presents a description of how mail systems on the Internet
   are expected to route messages based on information from the domain
   system described in RFCs 882, 883 and 973.  Distribution of this memo
   is unlimited.

Introduction

   The purpose of this memo is to explain how mailers are to decide how
   to route a message addressed to a given Internet domain name.  This
   involves a discussion of how mailers interpret MX RRs, which are used
   for message routing.  Note that this memo makes no statement about
   how mailers are to deal with MB and MG RRs, which are used for
   interpreting mailbox names.

   Under RFC-882 and RFC-883 certain assumptions about mail addresses
   have been changed.  Up to now, one could usually assume that if a
   message was addressed to a mailbox, for example, at LOKI.BBN.COM,
   that one could just open an SMTP connection to LOKI.BBN.COM and pass
   the message along.  This system broke down in certain situations,
   such as for certain UUCP and CSNET hosts which were not directly
   attached to the Internet, but these hosts could be handled as special
   cases in configuration files (for example, most mailers were set up
   to automatically forward mail addressed to a CSNET host to
   CSNET-RELAY.ARPA).

   Under domains, one cannot simply open a connection to LOKI.BBN.COM,
   but must instead ask the domain system where messages to LOKI.BBN.COM
   are to be delivered. And the domain system may direct a mailer to
   deliver messages to an entirely different host, such as SH.CS.NET.
   Or, in a more complicated case, the mailer may learn that it has a
   choice of routes to LOKI.BBN.COM.  This memo is essentially a set of
   guidelines on how mailers should behave in this more complex world.

   Readers are expected to be familiar with RFCs 882, 883, and the
   updates to them (e.g., RFC-973).






=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc2821.txt
=====================================================





Network Working Group                                 J. Klensin, Editor
Request for Comments: 2821                             AT&amp;T Laboratories
Obsoletes: 821, 974, 1869                                     April 2001
Updates: 1123
Category: Standards Track


                     Simple Mail Transfer Protocol

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2001).  All Rights Reserved.

Abstract

   This document is a self-contained specification of the basic protocol
   for the Internet electronic mail transport.  It consolidates, updates
   and clarifies, but doesn't add new or change existing functionality
   of the following:

   -  the original SMTP (Simple Mail Transfer Protocol) specification of
      RFC 821 [30],

   -  domain name system requirements and implications for mail
      transport from RFC 1035 [22] and RFC 974 [27],

   -  the clarifications and applicability statements in RFC 1123 [2],
      and

   -  material drawn from the SMTP Extension mechanisms [19].

   It obsoletes RFC 821, RFC 974, and updates RFC 1123 (replaces the
   mail transport materials of RFC 1123).  However, RFC 821 specifies
   some features that were not in significant use in the Internet by the
   mid-1990s and (in appendices) some additional transport models.
   Those sections are omitted here in the interest of clarity and
   brevity; readers needing them should refer to RFC 821.

=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc1870.txt
=====================================================





Network Working Group                               J. Klensin, WG Chair
Request For Comments: 1870                                           MCI
STD: 10                                                 N. Freed, Editor
Obsoletes: 1653                             Innosoft International, Inc.
Category: Standards Track                                       K. Moore
                                                 University of Tennessee
                                                           November 1995


                         SMTP Service Extension
                      for Message Size Declaration

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1.  Abstract

   This memo defines an extension to the SMTP service whereby an SMTP
   client and server may interact to give the server an opportunity to
   decline to accept a message (perhaps temporarily) based on the
   client's estimate of the message size.

2.  Introduction

   The MIME extensions to the Internet message protocol provide for the
   transmission of many kinds of data which were previously unsupported
   in Internet mail.  One expected result of the use of MIME is that
   SMTP will be expected to carry a much wider range of message sizes
   than was previously the case.  This has an impact on the amount of
   resources (e.g. disk space) required by a system acting as a server.

   This memo uses the mechanism defined in [5] to define extensions to
   the SMTP service whereby a client (&quot;sender-SMTP&quot;) may declare the
   size of a particular message to a server (&quot;receiver-SMTP&quot;), after
   which the server may indicate to the client that it is or is not
   willing to accept the message based on the declared message size and
   whereby a server (&quot;receiver-SMTP&quot;) may declare the maximum message
   size it is willing to accept to a client (&quot;sender-SMTP&quot;).



=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc2197.txt
=====================================================





Network Working Group                                       N. Freed
Request for Comments: 2197                                  Innosoft
Obsoletes: 1854                                       September 1997
Category: Standards Track


                         SMTP Service Extension
                         for Command Pipelining

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1.  Abstract

   This memo defines an extension to the SMTP service whereby a server
   can indicate the extent of its ability to accept multiple commands in
   a single TCP send operation. Using a single TCP send operation for
   multiple commands can improve SMTP performance significantly.

   The present document is an updated version of RFC 1854 [3].  Only
   textual and editorial changes have been made; the protocol has not
   changed in any way.

2.  Introduction

   Although SMTP is widely and robustly deployed, certain extensions may
   nevertheless prove useful. In particular, many parts of the Internet
   make use of high latency network links.  SMTP's intrinsic one
   command-one response structure is significantly penalized by high
   latency links, often to the point where the factors contributing to
   overall connection time are dominated by the time spent waiting for
   responses to individual commands (turnaround time).

   In the best of all worlds it would be possible to simply deploy SMTP
   client software that makes use of command pipelining: batching up
   multiple commands into single TCP send operations. Unfortunately, the
   original SMTP specification [1] did not explicitly state that SMTP
   servers must support this.  As a result a non-trivial number of
   Internet SMTP servers cannot adequately handle command pipelining.
   Flaws known to exist in deployed servers include:

=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc0821.txt
=====================================================
                                                                        

   RFC 821
                                    
                                    
                                    
                                    
                                    
                     SIMPLE MAIL TRANSFER PROTOCOL
                                    
                                    
                                    
                           Jonathan B. Postel





























                              August 1982
                                    
                                    
                                    
                     Information Sciences Institute
                   University of Southern California
                           4676 Admiralty Way
                   Marina del Rey, California  90291

=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc1869.txt
=====================================================





Network Working Group                               J. Klensin, WG Chair
Request For Comments: 1869                                           MCI
STD: 10                                                 N. Freed, Editor
Obsoletes: 1651                             Innosoft International, Inc.
Category: Standards Track                                        M. Rose
                                            Dover Beach Consulting, Inc.
                                                            E. Stefferud
                                     Network Management Associates, Inc.
                                                              D. Crocker
                                                  Brandenburg Consulting
                                                           November 1995


                        SMTP Service Extensions

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1.  Abstract

   This memo defines a framework for extending the SMTP service by
   defining a means whereby a server SMTP can inform a client SMTP as to
   the service extensions it supports.  Extensions to the SMTP service
   are registered with the IANA. This framework does not require
   modification of existing SMTP clients or servers unless the features
   of the service extensions are to be requested or provided.

2.  Introduction

   The Simple Mail Transfer Protocol (SMTP) [1] has provided a stable,
   effective basis for the relay function of message transfer agents.
   Although a decade old, SMTP has proven remarkably resilient.
   Nevertheless, the need for a number of protocol extensions has become
   evident. Rather than describing these extensions as separate and
   haphazard entities, this document enhances SMTP in a straightforward
   fashion that provides a framework in which all future extensions can
   be built in a single consistent way.

3.  Framework for SMTP Extensions


=====================================================
== File: src/site/resources/server/rfclist/smtp/rfc1893.txt
=====================================================





Network Working Group                                        G. Vaudreuil
Request for Comments: 1893                         Octel Network Services
Category: Standards Track                                    January 1996


                   Enhanced Mail System Status Codes

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1.   Overview

   There currently is not a standard mechanism for the reporting of mail
   system errors except for the limited set offered by SMTP and the
   system specific text descriptions sent in mail messages.  There is a
   pressing need for a rich machine readable status code for use in
   delivery status notifications [DSN].  This document proposes a new
   set of status codes for this purpose.

   SMTP [SMTP] error codes have historically been used for reporting
   mail system errors.  Because of limitations in the SMTP code design,
   these are not suitable for use in delivery status notifications.
   SMTP provides about 12 useful codes for delivery reports.  The
   majority of the codes are protocol specific response codes such as
   the 354 response to the SMTP data command.  Each of the 12 useful
   codes are each overloaded to indicate several error conditions each.
   SMTP suffers some scars from history, most notably the unfortunate
   damage to the reply code extension mechanism by uncontrolled use.
   This proposal facilitates future extensibility by requiring the
   client to interpret unknown error codes according to the theory of
   codes while requiring servers to register new response codes.

   The SMTP theory of reply codes partitioned in the number space such a
   manner that the remaining available codes will not provide the space
   needed.  The most critical example is the existence of only 5
   remaining codes for mail system errors.  The mail system
   classification includes both host and mailbox error conditions.  The
   remaining third digit space would be completely consumed as needed to
   indicate MIME and media conversion errors and security system errors.


=====================================================
== File: src/site/resources/server/rfclist/lmtp/rfc2033.txt
=====================================================






Network Working Group                                           J. Myers
Request for Comments: 2033                               Carnegie Mellon
Category: Informational                                     October 1996


                      Local Mail Transfer Protocol

Status of this Memo

   This memo provides information for the Internet community.  This memo
   does not specify an Internet standard of any kind.  Distribution of
   this memo is unlimited.

1.  Abstract

   SMTP [SMTP] [HOST-REQ] and its service extensions [ESMTP] provide a
   mechanism for transferring mail reliably and efficiently.  The design
   of the SMTP protocol effectively requires the server to manage a mail
   delivery queue.

   In some limited circumstances, outside the area of mail exchange
   between independent hosts on public networks, it is desirable to
   implement a system where a mail receiver does not manage a queue.
   This document describes the LMTP protocol for transporting mail into
   such systems.

   Although LMTP is an alternative protocol to ESMTP, it uses (with a
   few changes) the syntax and semantics of ESMTP.  This design permits
   LMTP to utilize the extensions defined for ESMTP.  LMTP should be
   used only by specific prior arrangement and configuration, and it
   MUST NOT be used on TCP port 25.

Table of Contents

   1.   Abstract ................................................    1
   2.   Conventions Used in this Document .......................    2
   3.   Introduction and Overview ...............................    2
   4.   The LMTP protocol .......................................    3
   4.1. The LHLO, HELO and EHLO commands ........................    4
   4.2. The DATA command ........................................    4
   4.3. The BDAT command ........................................    5
   5.   Implementation requirements .............................    6
   6.   Acknowledgments .........................................    6
   7.   References ..............................................    7

=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2087.txt
=====================================================





Network Working Group                                           J. Myers
Request for Comments: 2087                               Carnegie Mellon
Category: Standards Track                                   January 1997


                         IMAP4 QUOTA extension

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1.   Abstract

   The QUOTA extension of the Internet Message Access Protocol [IMAP4]
   permits administrative limits on resource usage (quotas) to be
   manipulated through the IMAP protocol.

Table of Contents

   1.   Abstract........................................... 1
   2.   Conventions Used in this Document.................. 1
   3.   Introduction and Overview.......................... 2
   4.   Commands........................................... 2
   4.1. SETQUOTA Command................................... 2
   4.2. GETQUOTA Command................................... 2
   4.3. GETQUOTAROOT Command............................... 3
   5.   Responses.......................................... 3
   5.1. QUOTA Response..................................... 3
   5.2. QUOTAROOT Response................................. 4
   6.   Formal syntax...................................... 4
   7.   References......................................... 5
   8.   Security Considerations............................ 5
   9.   Author's Address................................... 5


2.   Conventions Used in this Document

   In examples, &quot;C:&quot; and &quot;S:&quot; indicate lines sent by the client and
   server respectively.



=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2221.txt
=====================================================





Network Working Group                                           M. Gahrns
Request for Comments: 2221                                      Microsoft
Category: Standards Track                                    October 1997


                         IMAP4 Login Referrals

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1997).  All Rights Reserved.

1. Abstract

   When dealing with large amounts of users and many IMAP4 [RFC-2060]
   servers, it is often necessary to move users from one IMAP4 server to
   another.  For example, hardware failures or organizational changes
   may dictate such a move.

   Login referrals allow clients to transparently connect to an
   alternate IMAP4 server, if their home IMAP4 server has changed.

   A referral mechanism can provide efficiencies over the alternative
   'proxy method', in which the local IMAP4 server contacts the remote
   server on behalf of the client, and then transfers the data from the
   remote server to itself, and then on to the client.  The referral
   mechanism's direct client connection to the remote server is often a
   more efficient use of bandwidth, and does not require the local
   server to impersonate the client when authenticating to the remote
   server.

2. Conventions used in this document

   In examples, &quot;C:&quot; and &quot;S:&quot; indicate lines sent by the client and
   server respectively.

   A home server, is an IMAP4 server that contains the user's inbox.


=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2193.txt
=====================================================





Network Working Group                                        M. Gahrns
Request for Comments: 2193                                   Microsoft
Category: Standards Track                               September 1997


                        IMAP4 Mailbox Referrals

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1. Abstract

   When dealing with large amounts of users, messages and geographically
   dispersed IMAP4 [RFC-2060] servers, it is often desirable to
   distribute messages amongst different servers within an organization.
   For example an administrator may choose to store user's personal
   mailboxes on a local IMAP4 server, while storing shared mailboxes
   remotely on another server.  This type of configuration is common
   when it is uneconomical to store all data centrally due to limited
   bandwidth or disk resources.

   Mailbox referrals allow clients to seamlessly access mailboxes that
   are distributed across several IMAP4 servers.

   A referral mechanism can provide efficiencies over the alternative
   &quot;proxy method&quot;, in which the local IMAP4 server contacts the remote
   server on behalf of the client, and then transfers the data from the
   remote server to itself, and then on to the client.  The referral
   mechanism's direct client connection to the remote server is often a
   more efficient use of bandwidth, and does not require the local
   server to impersonate the client when authenticating to the remote
   server.

2. Conventions used in this document

   In examples, &quot;C:&quot; and &quot;S:&quot; indicate lines sent by the client and
   server respectively.

   A home server, is an IMAP4 server that contains the user's inbox.


=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2192.txt
=====================================================





Network Working Group                                          C. Newman
Request for Comments: 2192                                      Innosoft
Category: Standards Track                                 September 1997


                            IMAP URL Scheme


Status of this memo

     This document specifies an Internet standards track protocol for
     the Internet community, and requests discussion and suggestions for
     improvements.  Please refer to the current edition of the &quot;Internet
     Official Protocol Standards&quot; (STD 1) for the standardization state
     and status of this protocol.  Distribution of this memo is
     unlimited.


Abstract

     IMAP [IMAP4] is a rich protocol for accessing remote message
     stores.  It provides an ideal mechanism for accessing public
     mailing list archives as well as private and shared message stores.
     This document defines a URL scheme for referencing objects on an
     IMAP server.


1. Conventions used in this document

     The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, and &quot;MAY&quot;
     in this document are to be interpreted as defined in &quot;Key words for
     use in RFCs to Indicate Requirement Levels&quot; [KEYWORDS].


2. IMAP scheme

     The IMAP URL scheme is used to designate IMAP servers, mailboxes,
     messages, MIME bodies [MIME], and search programs on Internet hosts
     accessible using the IMAP protocol.

     The IMAP URL follows the common Internet scheme syntax as defined
     in RFC 1738 [BASIC-URL] except that clear text passwords are not
     permitted.  If :&lt;port&gt; is omitted, the port defaults to 143.



=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2088.txt
=====================================================





Network Working Group                                           J. Myers
Request for Comments: 2088                               Carnegie Mellon
Cateogry: Standards Track                                   January 1997


                    IMAP4 non-synchronizing literals

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1.   Abstract

   The Internet Message Access Protocol [IMAP4] contains the &quot;literal&quot;
   syntactic construct for communicating strings.  When sending a
   literal from client to server, IMAP4 requires the client to wait for
   the server to send a command continuation request between sending the
   octet count and the string data.  This document specifies an
   alternate form of literal which does not require this network round
   trip.

2.   Conventions Used in this Document

   In examples, &quot;C:&quot; and &quot;S:&quot; indicate lines sent by the client and
   server respectively.

3.   Specification

   The non-synchronizing literal is added an alternate form of literal,
   and may appear in communication from client to server instead of the
   IMAP4 form of literal.  The IMAP4 form of literal, used in
   communication from client to server, is referred to as a
   synchronizing literal.

   Non-synchronizing literals may be used with any IMAP4 server
   implementation which returns &quot;LITERAL+&quot; as one of the supported
   capabilities to the CAPABILITY command.  If the server does not
   advertise the LITERAL+ capability, the client must use synchronizing
   literals instead.

   The non-synchronizing literal is distinguished from the original

=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2060.txt
=====================================================





Network Working Group                                        M. Crispin
Request for Comments: 2060                     University of Washington
Obsoletes: 1730                                           December 1996
Category: Standards Track


            INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   The Internet Message Access Protocol, Version 4rev1 (IMAP4rev1)
   allows a client to access and manipulate electronic mail messages on
   a server.  IMAP4rev1 permits manipulation of remote message folders,
   called &quot;mailboxes&quot;, in a way that is functionally equivalent to local
   mailboxes.  IMAP4rev1 also provides the capability for an offline
   client to resynchronize with the server (see also [IMAP-DISC]).

   IMAP4rev1 includes operations for creating, deleting, and renaming
   mailboxes; checking for new messages; permanently removing messages;
   setting and clearing flags; [RFC-822] and [MIME-IMB] parsing;
   searching; and selective fetching of message attributes, texts, and
   portions thereof.  Messages in IMAP4rev1 are accessed by the use of
   numbers.  These numbers are either message sequence numbers or unique
   identifiers.

   IMAP4rev1 supports a single server.  A mechanism for accessing
   configuration information to support multiple IMAP4rev1 servers is
   discussed in [ACAP].

   IMAP4rev1 does not specify a means of posting mail; this function is
   handled by a mail transfer protocol such as [SMTP].

   IMAP4rev1 is designed to be upwards compatible from the [IMAP2] and
   unpublished IMAP2bis protocols.  In the course of the evolution of
   IMAP4rev1, some aspects in the earlier protocol have become obsolete.
   Obsolete commands, responses, and data formats which an IMAP4rev1
   implementation may encounter when used with an earlier implementation

=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2086.txt
=====================================================





Network Working Group                                           J. Myers
Request for Comments: 2086                               Carnegie Mellon
Category: Standards Track                                   January 1997


                          IMAP4 ACL extension

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1.   Abstract

   The ACL extension of the Internet Message Access Protocol [IMAP4]
   permits access control lists to be manipulated through the IMAP
   protocol.

Table of Contents

   1.   Abstract............................................... 1
   2.   Conventions Used in this Document...................... 1
   3.   Introduction and Overview.............................. 2
   4.   Commands............................................... 3
   4.1. SETACL................................................. 3
   4.2. DELETEACL.............................................. 4
   4.3. GETACL................................................. 4
   4.4. LISTRIGHTS............................................. 4
   4.5. MYRIGHTS............................................... 5
   5.   Responses.............................................. 5
   5.1. ACL.................................................... 5
   5.2. LISTRIGHTS............................................. 6
   5.3. MYRIGHTS............................................... 6
   6.   Formal Syntax.......................................... 6
   7.   References............................................. 7
   8.   Security Considerations................................ 7
   9.   Author's Address....................................... 8

2.   Conventions Used in this Document

   In examples, &quot;C:&quot; and &quot;S:&quot; indicate lines sent by the client and
   server respectively.

=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2342.txt
=====================================================





Network Working Group                                         M. Gahrns
Request for Comments: 2342                                    Microsoft
Category: Standards Track                                     C. Newman
                                                               Innosoft
                                                               May 1998


                            IMAP4 Namespace

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

1. Abstract

   IMAP4 [RFC-2060] does not define a default server namespace. As a
   result, two common namespace models have evolved:

   The &quot;Personal Mailbox&quot; model, in which the default namespace that is
   presented consists of only the user's personal mailboxes. To access
   shared mailboxes, the user must use an escape mechanism to reach
   another namespace.

   The &quot;Complete Hierarchy&quot; model, in which the default namespace that
   is presented includes the user's personal mailboxes along with any
   other mailboxes they have access to.

   These two models, create difficulties for certain client operations.
   This document defines a NAMESPACE command that allows a client to
   discover the prefixes of namespaces used by a server for personal
   mailboxes, other users' mailboxes, and shared mailboxes.  This allows
   a client to avoid much of the manual user configuration that is now
   necessary when mixing and matching IMAP4 clients and servers.

2. Conventions used in this document

   In examples, &quot;C:&quot; and &quot;S:&quot; indicate lines sent by the client and

=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2595.txt
=====================================================






Network Working Group                                          C. Newman
Request for Comments: 2595                                      Innosoft
Category: Standards Track                                      June 1999


                   Using TLS with IMAP, POP3 and ACAP


Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

1. Motivation

   The TLS protocol (formerly known as SSL) provides a way to secure an
   application protocol from tampering and eavesdropping.  The option of
   using such security is desirable for IMAP, POP and ACAP due to common
   connection eavesdropping and hijacking attacks [AUTH].  Although
   advanced SASL authentication mechanisms can provide a lightweight
   version of this service, TLS is complimentary to simple
   authentication-only SASL mechanisms or deployed clear-text password
   login commands.

   Many sites have a high investment in authentication infrastructure
   (e.g., a large database of a one-way-function applied to user
   passwords), so a privacy layer which is not tightly bound to user
   authentication can protect against network eavesdropping attacks
   without requiring a new authentication infrastructure and/or forcing
   all users to change their password.  Recognizing that such sites will
   desire simple password authentication in combination with TLS
   encryption, this specification defines the PLAIN SASL mechanism for
   use with protocols which lack a simple password authentication
   command such as ACAP and SMTP.  (Note there is a separate RFC for the
   STARTTLS command in SMTP [SMTPTLS].)

   There is a strong desire in the IETF to eliminate the transmission of

=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2195.txt
=====================================================





Network Working Group                                       J. Klensin
Request for Comments: 2195                                    R. Catoe
Category: Standards Track                                 P. Krumviede
Obsoletes: 2095                                                    MCI
                                                        September 1997


       IMAP/POP AUTHorize Extension for Simple Challenge/Response

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   While IMAP4 supports a number of strong authentication mechanisms as
   described in RFC 1731, it lacks any mechanism that neither passes
   cleartext, reusable passwords across the network nor requires either
   a significant security infrastructure or that the mail server update
   a mail-system-wide user authentication file on each mail access.
   This specification provides a simple challenge-response
   authentication protocol that is suitable for use with IMAP4.  Since
   it utilizes Keyed-MD5 digests and does not require that the secret be
   stored in the clear on the server, it may also constitute an
   improvement on APOP for POP3 use as specified in RFC 1734.

1. Introduction

   Existing Proposed Standards specify an AUTHENTICATE mechanism for the
   IMAP4 protocol [IMAP, IMAP-AUTH] and a parallel AUTH mechanism for
   the POP3 protocol [POP3-AUTH].  The AUTHENTICATE mechanism is
   intended to be extensible; the four methods specified in [IMAP-AUTH]
   are all fairly powerful and require some security infrastructure to
   support.  The base POP3 specification [POP3] also contains a
   lightweight challenge-response mechanism called APOP.  APOP is
   associated with most of the risks associated with such protocols: in
   particular, it requires that both the client and server machines have
   access to the shared secret in cleartext form. CRAM offers a method
   for avoiding such cleartext storage while retaining the algorithmic
   simplicity of APOP in using only MD5, though in a &quot;keyed&quot; method.


=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2180.txt
=====================================================






Network Working Group                                          M. Gahrns
Request for Comments: 2180                                     Microsoft
Category: Informational                                        July 1997


                 IMAP4 Multi-Accessed Mailbox Practice

Status of this Memo

   This memo provides information for the Internet community.  This memo
   does not specify an Internet standard of any kind.  Distribution of
   this memo is unlimited.

1. Abstract

   IMAP4[RFC-2060] is rich client/server protocol that allows a client
   to access and manipulate electronic mail messages on a server.
   Within the protocol framework, it is possible to have differing
   results for particular client/server interactions. If a protocol does
   not allow for this, it is often unduly restrictive.

   For example, when multiple clients are accessing a mailbox and one
   attempts to delete the mailbox, an IMAP4 server may choose to
   implement a solution based upon server architectural constraints or
   individual preference.

   With this flexibility comes greater client responsibility.  It is not
   sufficient for a client to be written based upon the behavior of a
   particular IMAP server.  Rather the client must be based upon the
   behavior allowed by the protocol.

   By documenting common IMAP4 server practice for the case of
   simultaneous client access to a mailbox, we hope to ensure the widest
   amount of inter-operation between IMAP4 clients and servers.

   The behavior described in this document reflects the practice of some
   existing servers or behavior that the consensus of the IMAP mailing
   list has deemed to be reasonable.  The behavior described within this
   document is believed to be [RFC-2060] compliant. However, this
   document is not meant to define IMAP4 compliance, nor is it an
   exhaustive list of valid IMAP4 behavior. [RFC-2060] must always be
   consulted to determine IMAP4 compliance, especially for server
   behavior not described within this document.


=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc5256.txt
=====================================================






Network Working Group                                         M. Crispin
Request for Comments: 5256                             Panda Programming
Category: Standards Track                                   K. Murchison
                                              Carnegie Mellon University
                                                               June 2008


     Internet Message Access Protocol - SORT and THREAD Extensions

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   This document describes the base-level server-based sorting and
   threading extensions to the IMAP protocol.  These extensions provide
   substantial performance improvements for IMAP clients that offer
   sorted and threaded views.

1.  Introduction

   The SORT and THREAD extensions to the [IMAP] protocol provide a means
   of server-based sorting and threading of messages, without requiring
   that the client download the necessary data to do so itself.  This is
   particularly useful for online clients as described in [IMAP-MODELS].

   A server that supports the base-level SORT extension indicates this
   with a capability name which starts with &quot;SORT&quot;.  Future, upwards-
   compatible extensions to the SORT extension will all start with
   &quot;SORT&quot;, indicating support for this base level.

   A server that supports the THREAD extension indicates this with one
   or more capability names consisting of &quot;THREAD=&quot; followed by a
   supported threading algorithm name as described in this document.
   This provides for future upwards-compatible extensions.

   A server that implements the SORT and/or THREAD extensions MUST
   collate strings in accordance with the requirements of I18NLEVEL=1,
   as described in [IMAP-I18N], and SHOULD implement and advertise the

=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2177.txt
=====================================================





Network Working Group                                           B. Leiba
Request for Comments: 2177               IBM T.J. Watson Research Center
Category: Standards Track                                      June 1997


                           IMAP4 IDLE command

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

1.   Abstract

   The Internet Message Access Protocol [IMAP4] requires a client to
   poll the server for changes to the selected mailbox (new mail,
   deletions).  It's often more desirable to have the server transmit
   updates to the client in real time.  This allows a user to see new
   mail immediately.  It also helps some real-time applications based on
   IMAP, which might otherwise need to poll extremely often (such as
   every few seconds).  (While the spec actually does allow a server to
   push EXISTS responses aysynchronously, a client can't expect this
   behaviour and must poll.)

   This document specifies the syntax of an IDLE command, which will
   allow a client to tell the server that it's ready to accept such
   real-time updates.

2.   Conventions Used in this Document

   In examples, &quot;C:&quot; and &quot;S:&quot; indicate lines sent by the client and
   server respectively.

   The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, and &quot;MAY&quot;
   in this document are to be interpreted as described in RFC 2060
   [IMAP4].

3.   Specification

   IDLE Command

   Arguments:  none

=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2683.txt
=====================================================






Network Working Group                                           B. Leiba
Request for Comments: 2683               IBM T.J. Watson Research Center
Category: Informational                                   September 1999


                  IMAP4 Implementation Recommendations

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

1. Abstract

   The IMAP4 specification [RFC-2060] describes a rich protocol for use
   in building clients and servers for storage, retrieval, and
   manipulation of electronic mail.  Because the protocol is so rich and
   has so many implementation choices, there are often trade-offs that
   must be made and issues that must be considered when designing such
   clients and servers.  This document attempts to outline these issues
   and to make recommendations in order to make the end products as
   interoperable as possible.

2. Conventions used in this document

   In examples, &quot;C:&quot; indicates lines sent by a client that is connected
   to a server.  &quot;S:&quot; indicates lines sent by the server to the client.

   The words &quot;must&quot;, &quot;must not&quot;, &quot;should&quot;, &quot;should not&quot;, and &quot;may&quot; are
   used with specific meaning in this document; since their meaning is
   somewhat different from that specified in RFC 2119, we do not put
   them in all caps here.  Their meaning is as follows:

   must --       This word means that the action described is necessary
                 to ensure interoperability.  The recommendation should
                 not be ignored.
   must not --   This phrase means that the action described will be
                 almost certain to hurt interoperability.  The
                 recommendation should not be ignored.

=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc2359.txt
=====================================================





Network Working Group                                           J. Myers
Request for Comments: 2359                       Netscape Communications
Category: Standards Track                                      June 1998


                        IMAP4 UIDPLUS extension

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

IESG NOTE

   The IMAP extension described here assumes a particular means of using
   IMAP to support disconnected operation.  However, this means of
   supporting disconnected operation is not yet documented.  Also, there
   are multiple theories about how best to do disconnected operation in
   IMAP, and as yet, there is no consensus on which one should be
   adopted as a standard.

   This document is being approved as a Proposed Standard because it
   does not appear to have technical flaws in itelf.  However, approval
   of this document as a Proposed Standard should not be considered an
   IETF endorsement of any particular means of doing disconnected
   operation in IMAP.

Table of Contents

   1.   Abstract ..............................................    2
   2.   Conventions Used in this Document .....................    2
   3.   Introduction and Overview .............................    2
   4.   Features ..............................................    2
   4.1. UID EXPUNGE Command ...................................    2
   4.2. APPENDUID response code ...............................    3
   4.3. COPYUID response code .................................    4
   5.   Formal Syntax .........................................    4
   6.   References ............................................    4

=====================================================
== File: src/site/resources/server/rfclist/imap4/rfc1731.txt
=====================================================





Network Working Group                                           J. Myers
Request for Comments: 1731                               Carnegie Mellon
Category: Standards Track                                  December 1994


                    IMAP4 Authentication Mechanisms

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.


1. Introduction

   The Internet Message Access Protocol, Version 4 [IMAP4] contains the
   AUTHENTICATE command, for identifying and authenticating a user to an
   IMAP4 server and for optionally negotiating a protection mechanism
   for subsequent protocol interactions.  This document describes
   several authentication mechanisms for use by the IMAP4 AUTHENTICATE
   command.


2. Kerberos version 4 authentication mechanism

   The authentication type associated with Kerberos version 4 is
   &quot;KERBEROS_V4&quot;.

   The data encoded in the first ready response contains a random 32-bit
   number in network byte order.  The client should respond with a
   Kerberos ticket and an authenticator for the principal
   &quot;imap.hostname@realm&quot;, where &quot;hostname&quot; is the first component of the
   host name of the server with all letters in lower case and where
   &quot;realm&quot; is the Kerberos realm of the server.  The encrypted checksum
   field included within the Kerberos authenticator should contain the
   server provided 32-bit number in network byte order.

   Upon decrypting and verifying the ticket and authenticator, the
   server should verify that the contained checksum field equals the
   original server provided random 32-bit number.  Should the
   verification be successful, the server must add one to the checksum
   and construct 8 octets of data, with the first four octets containing

=====================================================
== File: src/site/resources/server/rfclist/pop3/rfc1725.txt
=====================================================





Network Working Group                                           J. Myers
Request for Comments: 1725                               Carnegie Mellon
Obsoletes: 1460                                                  M. Rose
Category: Standards Track                   Dover Beach Consulting, Inc.
                                                           November 1994


                    Post Office Protocol - Version 3

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Overview

   This memo is a revision to RFC 1460, a Draft Standard.  It makes the
   following changes from that document:

      - removed text regarding &quot;split-UA model&quot;, which didn't add
        anything to the understanding of POP

      - clarified syntax of commands, keywords, and arguments

      - clarified behavior on broken connection

      - explicitly permitted an inactivity autologout timer

      - clarified the requirements of the &quot;exclusive-access lock&quot;

      - removed implementation-specific wording regarding the parsing of
        the maildrop

      - allowed servers to close the connection after a failed
        authentication command

      - removed the LAST command

      - fixed typo in example of TOP command

      - clarified that the second argument to the TOP command is non-
        negative

=====================================================
== File: src/site/resources/server/rfclist/pop3/rfc1939.txt
=====================================================





Network Working Group                                           J. Myers
Request for Comments: 1939                               Carnegie Mellon
STD: 53                                                          M. Rose
Obsoletes: 1725                             Dover Beach Consulting, Inc.
Category: Standards Track                                       May 1996


                    Post Office Protocol - Version 3

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Table of Contents

   1. Introduction ................................................    2
   2. A Short Digression ..........................................    2
   3. Basic Operation .............................................    3
   4. The AUTHORIZATION State .....................................    4
      QUIT Command ................................................    5
   5. The TRANSACTION State .......................................    5
      STAT Command ................................................    6
      LIST Command ................................................    6
      RETR Command ................................................    8
      DELE Command ................................................    8
      NOOP Command ................................................    9
      RSET Command ................................................    9
   6. The UPDATE State ............................................   10
      QUIT Command ................................................   10
   7. Optional POP3 Commands ......................................   11
      TOP Command .................................................   11
      UIDL Command ................................................   12
      USER Command ................................................   13
      PASS Command ................................................   14
      APOP Command ................................................   15
   8. Scaling and Operational Considerations ......................   16
   9. POP3 Command Summary ........................................   18
   10. Example POP3 Session .......................................   19
   11. Message Format .............................................   19
   12. References .................................................   20
   13. Security Considerations ....................................   20

=====================================================
== File: src/site/resources/server/rfclist/pop3/rfc1734.txt
=====================================================





Network Working Group                                           J. Myers
Request for Comments: 1734                               Carnegie Mellon
Category: Standards Track                                  December 1994


                      POP3 AUTHentication command

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.


1. Introduction

   This document describes the optional AUTH command, for indicating an
   authentication mechanism to the server, performing an authentication
   protocol exchange, and optionally negotiating a protection mechanism
   for subsequent protocol interactions.  The authentication and
   protection mechanisms used by the POP3 AUTH command are those used by
   IMAP4.


2. The AUTH command

   AUTH mechanism

         Arguments:
             a string identifying an IMAP4 authentication mechanism,
             such as defined by [IMAP4-AUTH].  Any use of the string
             &quot;imap&quot; used in a server authentication identity in the
             definition of an authentication mechanism is replaced with
             the string &quot;pop&quot;.

         Restrictions:
             may only be given in the AUTHORIZATION state

         Discussion:
             The AUTH command indicates an authentication mechanism to
             the server.  If the server supports the requested
             authentication mechanism, it performs an authentication
             protocol exchange to authenticate and identify the user.

=====================================================
== File: src/site/resources/server/rfclist/ldap/rfc2830.txt
=====================================================






Network Working Group                                          J. Hodges
Request for Comments: 2830                                    Oblix Inc.
Category: Standards Track                                      R. Morgan
                                                      Univ of Washington
                                                                 M. Wahl
                                                  Sun Microsystems, Inc.
                                                                May 2000


              Lightweight Directory Access Protocol (v3):
                 Extension for Transport Layer Security

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2000).  All Rights Reserved.

Abstract

   This document defines the &quot;Start Transport Layer Security (TLS)
   Operation&quot; for LDAP [LDAPv3, TLS]. This operation provides for TLS
   establishment in an LDAP association and is defined in terms of an
   LDAP extended request.

1.  Conventions Used in this Document

   The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;,
   &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;,  &quot;MAY&quot;, and &quot;OPTIONAL&quot; in this
   document are to be interpreted as described in [ReqsKeywords].

2.  The Start TLS Request

   This section describes the Start TLS extended request and extended
   response themselves: how to form the request, the form of the
   response, and enumerates the various result codes the client MUST be
   prepared to handle.


=====================================================
== File: src/site/resources/server/rfclist/ldap/rfc2255.txt
=====================================================






Network Working Group                                         T. Howes
Request for Comments: 2255                                    M. Smith
Category: Standards Track                Netscape Communications Corp.
                                                         December 1997


                          The LDAP URL Format

1. Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1997).  All Rights Reserved.

IESG NOTE

   This document describes a directory access protocol that provides
   both read and update access.  Update access requires secure
   authentication, but this document does not mandate implementation of
   any satisfactory authentication mechanisms.

   In accordance with RFC 2026, section 4.4.1, this specification is
   being approved by IESG as a Proposed Standard despite this
   limitation, for the following reasons:

   a. to encourage implementation and interoperability testing of
      these protocols (with or without update access) before they
      are deployed, and

   b. to encourage deployment and use of these protocols in read-only
      applications.  (e.g. applications where LDAPv3 is used as
      a query language for directories which are updated by some
      secure mechanism other than LDAP), and

   c. to avoid delaying the advancement and deployment of other Internet
      standards-track protocols which require the ability to query, but
      not update, LDAPv3 directory servers.


=====================================================
== File: src/site/resources/server/rfclist/ldap/rfc2252.txt
=====================================================






Network Working Group                                            M. Wahl
Request for Comments: 2252                           Critical Angle Inc.
Category: Standards Track                                    A. Coulbeck
                                                              Isode Inc.
                                                                T. Howes
                                           Netscape Communications Corp.
                                                                S. Kille
                                                           Isode Limited
                                                           December 1997


              Lightweight Directory Access Protocol (v3):
                      Attribute Syntax Definitions

1. Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1997).  All Rights Reserved.

IESG Note

   This document describes a directory access protocol that provides
   both read and update access.  Update access requires secure
   authentication, but this document does not mandate implementation of
   any satisfactory authentication mechanisms.

   In accordance with RFC 2026, section 4.4.1, this specification is
   being approved by IESG as a Proposed Standard despite this
   limitation, for the following reasons:

   a. to encourage implementation and interoperability testing of
      these protocols (with or without update access) before they
      are deployed, and

   b. to encourage deployment and use of these protocols in read-only
      applications.  (e.g. applications where LDAPv3 is used as
      a query language for directories which are updated by some

=====================================================
== File: src/site/resources/server/rfclist/ldap/rfc3377.txt
=====================================================






Network Working Group                                          J. Hodges
Request for Comments: 3377                         Sun Microsystems Inc.
Category: Standards Track                                      R. Morgan
                                                University of Washington
                                                          September 2002


              Lightweight Directory Access Protocol (v3):
                        Technical Specification

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

Abstract

   This document specifies the set of RFCs comprising the Lightweight
   Directory Access Protocol Version 3 (LDAPv3), and addresses the &quot;IESG
   Note&quot; attached to RFCs 2251 through 2256.

1.  Background and Motivation

   The specification for the Lightweight Directory Access Protocol
   version 3 (LDAPv3) nominally comprises eight RFCs which were issued
   in two distinct subsets at separate times -- RFCs 2251 through 2256
   first, then RFCs 2829 and 2830 following later.

   RFC 2251 through 2256 do not mandate the implementation of any
   satisfactory authentication mechanisms and hence were published with
   an &quot;IESG Note&quot; discouraging implementation and deployment of LDAPv3
   clients or servers implementing update functionality until a Proposed
   Standard for mandatory authentication in LDAPv3 is published.

   RFC 2829 was subsequently published in answer to the IESG Note.

   The purpose of this document is to explicitly specify the set of RFCs

=====================================================
== File: src/site/resources/server/rfclist/ldap/rfc2256.txt
=====================================================






Network Working Group                                            M. Wahl
Request for Comments: 2256                           Critical Angle Inc.
Category: Standards Track                                  December 1997


       A Summary of the X.500(96) User Schema for use with LDAPv3

1. Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1997).  All Rights Reserved.

IESG Note

   This document describes a directory access protocol that provides
   both read and update access.  Update access requires secure
   authentication, but this document does not mandate implementation of
   any satisfactory authentication mechanisms.

   In accordance with RFC 2026, section 4.4.1, this specification is
   being approved by IESG as a Proposed Standard despite this
   limitation, for the following reasons:

   a. to encourage implementation and interoperability testing of
      these protocols (with or without update access) before they
      are deployed, and

   b. to encourage deployment and use of these protocols in read-only
      applications.  (e.g. applications where LDAPv3 is used as
      a query language for directories which are updated by some
      secure mechanism other than LDAP), and

   c. to avoid delaying the advancement and deployment of other Internet
      standards-track protocols which require the ability to query, but
      not update, LDAPv3 directory servers.

   Readers are hereby warned that until mandatory authentication

=====================================================
== File: src/site/resources/server/rfclist/ldap/rfc2253.txt
=====================================================






Network Working Group                                            M. Wahl
Request for Comments: 2253                           Critical Angle Inc.
Obsoletes: 1779                                                 S. Kille
Category: Standards Track                                     Isode Ltd.
                                                                T. Howes
                                           Netscape Communications Corp.
                                                           December 1997


              Lightweight Directory Access Protocol (v3):
           UTF-8 String Representation of Distinguished Names

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1997).  All Rights Reserved.

IESG Note

   This document describes a directory access protocol that provides
   both read and update access.  Update access requires secure
   authentication, but this document does not mandate implementation of
   any satisfactory authentication mechanisms.

   In accordance with RFC 2026, section 4.4.1, this specification is
   being approved by IESG as a Proposed Standard despite this
   limitation, for the following reasons:

   a. to encourage implementation and interoperability testing of
      these protocols (with or without update access) before they
      are deployed, and

   b. to encourage deployment and use of these protocols in read-only
      applications.  (e.g. applications where LDAPv3 is used as
      a query language for directories which are updated by some
      secure mechanism other than LDAP), and


=====================================================
== File: src/site/resources/server/rfclist/ldap/rfc2829.txt
=====================================================






Network Working Group                                            M. Wahl
Request for Comments: 2829                        Sun Microsystems, Inc.
Category: Standards Track                                  H. Alvestrand
                                                             EDB Maxware
                                                               J. Hodges
                                                             Oblix, Inc.
                                                               R. Morgan
                                                University of Washington
                                                                May 2000


                    Authentication Methods for LDAP

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2000).  All Rights Reserved.

Abstract

   This document specifies particular combinations of security
   mechanisms which are required and recommended in LDAP [1]
   implementations.

1. Introduction

   LDAP version 3 is a powerful access protocol for directories.

   It offers means of searching, fetching and manipulating directory
   content, and ways to access a rich set of security functions.

   In order to function for the best of the Internet, it is vital that
   these security functions be interoperable; therefore there has to be
   a minimum subset of security functions that is common to all
   implementations that claim LDAPv3 conformance.

   Basic threats to an LDAP directory service include:

=====================================================
== File: src/site/resources/server/rfclist/ldap/rfc2254.txt
=====================================================






Network Working Group                                          T. Howes
Request for Comments: 2254                Netscape Communications Corp.
Category: Standards Track                                 December 1997


            The String Representation of LDAP Search Filters

1. Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1997).  All Rights Reserved.

IESG Note

   This document describes a directory access protocol that provides
   both read and update access.  Update access requires secure
   authentication, but this document does not mandate implementation of
   any satisfactory authentication mechanisms.

   In accordance with RFC 2026, section 4.4.1, this specification is
   being approved by IESG as a Proposed Standard despite this
   limitation, for the following reasons:

   a. to encourage implementation and interoperability testing of
      these protocols (with or without update access) before they
      are deployed, and

   b. to encourage deployment and use of these protocols in read-only
      applications.  (e.g. applications where LDAPv3 is used as
      a query language for directories which are updated by some
      secure mechanism other than LDAP), and

   c. to avoid delaying the advancement and deployment of other Internet
      standards-track protocols which require the ability to query, but
      not update, LDAPv3 directory servers.



=====================================================
== File: src/site/resources/server/rfclist/ldap/rfc2251.txt
=====================================================






Network Working Group                                            M. Wahl
Request for Comments: 2251                           Critical Angle Inc.
Category: Standards Track                                       T. Howes
                                           Netscape Communications Corp.
                                                                S. Kille
                                                           Isode Limited
                                                           December 1997


               Lightweight Directory Access Protocol (v3)

1. Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1997).  All Rights Reserved.

IESG Note

   This document describes a directory access protocol that provides
   both read and update access.  Update access requires secure
   authentication, but this document does not mandate implementation of
   any satisfactory authentication mechanisms.

   In accordance with RFC 2026, section 4.4.1, this specification is
   being approved by IESG as a Proposed Standard despite this
   limitation, for the following reasons:

   a. to encourage implementation and interoperability testing of
      these protocols (with or without update access) before they
      are deployed, and

   b. to encourage deployment and use of these protocols in read-only
      applications.  (e.g. applications where LDAPv3 is used as
      a query language for directories which are updated by some
      secure mechanism other than LDAP), and

   c. to avoid delaying the advancement and deployment of other Internet

=====================================================
== File: src/site/resources/server/rfclist/basic/rfc0822.txt
=====================================================
 




     RFC #  822

     Obsoletes:  RFC #733  (NIC #41952)












                        STANDARD FOR THE FORMAT OF

                        ARPA INTERNET TEXT MESSAGES






                              August 13, 1982






                                Revised by

                             David H. Crocker


                      Dept. of Electrical Engineering
                 University of Delaware, Newark, DE  19711
                      Network:  DCrocker @ UDel-Relay







=====================================================
== File: src/site/resources/server/rfclist/basic/rfc2046.txt
=====================================================





Network Working Group                                          N. Freed
Request for Comments: 2046                                     Innosoft
Obsoletes: 1521, 1522, 1590                               N. Borenstein
Category: Standards Track                                 First Virtual
                                                          November 1996


                 Multipurpose Internet Mail Extensions
                            (MIME) Part Two:
                              Media Types

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   STD 11, RFC 822 defines a message representation protocol specifying
   considerable detail about US-ASCII message headers, but which leaves
   the message content, or message body, as flat US-ASCII text.  This
   set of documents, collectively called the Multipurpose Internet Mail
   Extensions, or MIME, redefines the format of messages to allow for

    (1)   textual message bodies in character sets other than
          US-ASCII,

    (2)   an extensible set of different formats for non-textual
          message bodies,

    (3)   multi-part message bodies, and

    (4)   textual header information in character sets other than
          US-ASCII.

   These documents are based on earlier work documented in RFC 934, STD
   11, and RFC 1049, but extends and revises them.  Because RFC 822 said
   so little about message bodies, these documents are largely
   orthogonal to (rather than a revision of) RFC 822.

   The initial document in this set, RFC 2045, specifies the various
   headers used to describe the structure of MIME messages. This second

=====================================================
== File: src/site/resources/server/rfclist/basic/rfc2822.txt
=====================================================





Network Working Group                                 P. Resnick, Editor
Request for Comments: 2822                         QUALCOMM Incorporated
Obsoletes: 822                                                April 2001
Category: Standards Track


                        Internet Message Format

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2001).  All Rights Reserved.

Abstract

   This standard specifies a syntax for text messages that are sent
   between computer users, within the framework of &quot;electronic mail&quot;
   messages.  This standard supersedes the one specified in Request For
   Comments (RFC) 822, &quot;Standard for the Format of ARPA Internet Text
   Messages&quot;, updating it to reflect current practice and incorporating
   incremental changes that were specified in other RFCs.

Table of Contents

   1. Introduction ............................................... 3
   1.1. Scope .................................................... 3
   1.2. Notational conventions ................................... 4
   1.2.1. Requirements notation .................................. 4
   1.2.2. Syntactic notation ..................................... 4
   1.3. Structure of this document ............................... 4
   2. Lexical Analysis of Messages ............................... 5
   2.1. General Description ...................................... 5
   2.1.1. Line Length Limits ..................................... 6
   2.2. Header Fields ............................................ 7
   2.2.1. Unstructured Header Field Bodies ....................... 7
   2.2.2. Structured Header Field Bodies ......................... 7
   2.2.3. Long Header Fields ..................................... 7
   2.3. Body ..................................................... 8

=====================================================
== File: src/site/resources/server/rfclist/basic/rfc1123.txt
=====================================================





Network Working Group                    Internet Engineering Task Force
Request for Comments: 1123                             R. Braden, Editor
                                                            October 1989


       Requirements for Internet Hosts -- Application and Support

Status of This Memo

   This RFC is an official specification for the Internet community.  It
   incorporates by reference, amends, corrects, and supplements the
   primary protocol standards documents relating to hosts.  Distribution
   of this document is unlimited.

Summary

   This RFC is one of a pair that defines and discusses the requirements
   for Internet host software.  This RFC covers the application and
   support protocols; its companion RFC-1122 covers the communication
   protocol layers: link layer, IP layer, and transport layer.



                           Table of Contents




   1.  INTRODUCTION ...............................................    5
      1.1  The Internet Architecture ..............................    6
      1.2  General Considerations .................................    6
         1.2.1  Continuing Internet Evolution .....................    6
         1.2.2  Robustness Principle ..............................    7
         1.2.3  Error Logging .....................................    8
         1.2.4  Configuration .....................................    8
      1.3  Reading this Document ..................................   10
         1.3.1  Organization ......................................   10
         1.3.2  Requirements ......................................   10
         1.3.3  Terminology .......................................   11
      1.4  Acknowledgments ........................................   12

   2.  GENERAL ISSUES .............................................   13
      2.1  Host Names and Numbers .................................   13
      2.2  Using Domain Name Service ..............................   13
      2.3  Applications on Multihomed hosts .......................   14

=====================================================
== File: src/site/resources/server/rfclist/basic/rfc2045.txt
=====================================================





Network Working Group                                          N. Freed
Request for Comments: 2045                                     Innosoft
Obsoletes: 1521, 1522, 1590                               N. Borenstein
Category: Standards Track                                 First Virtual
                                                          November 1996


                 Multipurpose Internet Mail Extensions
                            (MIME) Part One:
                   Format of Internet Message Bodies

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the &quot;Internet
   Official Protocol Standards&quot; (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   STD 11, RFC 822, defines a message representation protocol specifying
   considerable detail about US-ASCII message headers, and leaves the
   message content, or message body, as flat US-ASCII text.  This set of
   documents, collectively called the Multipurpose Internet Mail
   Extensions, or MIME, redefines the format of messages to allow for

    (1)   textual message bodies in character sets other than
          US-ASCII,

    (2)   an extensible set of different formats for non-textual
          message bodies,

    (3)   multi-part message bodies, and

    (4)   textual header information in character sets other than
          US-ASCII.

   These documents are based on earlier work documented in RFC 934, STD
   11, and RFC 1049, but extends and revises them.  Because RFC 822 said
   so little about message bodies, these documents are largely
   orthogonal to (rather than a revision of) RFC 822.

   This initial document specifies the various headers used to describe
   the structure of MIME messages. The second document, RFC 2046,

=====================================================
== File: src/site/markdown/server/manage-guice-distributed-james.md
=====================================================
# Managing Guice distributed James

This guide aims to be an entry-point to the James documentation for user managing a distributed Guice James server.

It includes:

 - Simple architecture explanations
 - Propose some diagnostics for some common issues
 - Present procedures that can be set up to address these issues

In order to not duplicate information, existing documentation will be linked.

Please note that this product is under active development, should be considered experimental and thus targets 
advanced users.

## Table of content

 - [Overall architecture](#Overall_architecture)
 - [Basic Monitoring](#Basic_Monitoring)
 - [Cassandra table level configuration](#Cassandra_table_level_configuration)
 - [Deleted Messages Vault](#Deleted_Messages_Vault)
 - [OpenSearch Indexing](#Opensearch_Indexing)
 - [Mailbox Event Bus](#Mailbox_Event_Bus)
 - [Mail Processing](#Mail_Processing)
 - [Mail Queue](#Mail_Queue)
 - [Setting Cassandra user permissions](#Setting_Cassandra_user_permissions)
 - [Solving cassandra inconsistencies](#Solving_cassandra_inconsistencies)
 - [Updating Cassandra schema version](#Updating_Cassandra_schema_version)

## Overall architecture

Guice distributed James server intends to provide a horizontally scalable email server.

In order to achieve this goal, this product leverages the following technologies:

 - **Cassandra** for meta-data storage
 - **ObjectStorage** (S3) for binary content storage
 - **OpenSearch** for search
 - **RabbitMQ** for messaging

A [docker-compose](https://github.com/apache/james-project/blob/master/server/apps/distributed-app/docker-compose.yml) file is 
available to allow you to quickly deploy locally this product.

## Basic Monitoring

A toolbox is available to help an administrator diagnose issues:
 - [Structured logging into Kibana](#Structured_logging_into_Kibana)
 - [Metrics graphs into Grafana](#Metrics_graphs_into_Grafana)
 - [WebAdmin HealthChecks](#Webadmin_Healthchecks)


=====================================================
== File: src/site/markdown/server/manage-cli.md
=====================================================
Manage James via the Command Line
=================================

With any wiring, James is packed with a command line client.

To use it enter, for Spring distrubution:

```
./bin/james-cli.sh -h 127.0.0.1 -p 9999 COMMAND
```

And for Guice distributions:

```
java -jar /root/james-cli.jar -h 127.0.0.1 -p 9999 COMMAND
```

Guice in docker embeds a script helper:

```
docker exec -ti james james-cli COMMAND
```

The following document will explain you which are the available options for **COMMAND**.

Note: the command line before **COMMAND** will be documente as *{cli}*.

## Navigation menu

 - [Manage Domains](#Manage_Domains)
 - [Managing users](#Managing_users)
 - [Managing mailboxes](#Managing_mailboxes)
 - [Adding a message in a mailbox](#Adding_a_message_in_a_mailbox)
 - [Managing mappings](#Managing_mappings)
 - [Manage quotas](#Manage_quotas)
 - [Re-indexing](#Re-indexing)
 - [Sieve scripts quota](#Sieve_scripts_quota)
 - [Switching of mailbox implementation](#Switching_of_mailbox_implementation)

## Manage Domains

Domains represent the domain names handled by your server.

You can add a domain:

```
{cli} AddDomain domain.tld
```

You can remove a domain:

=====================================================
== File: src/site/markdown/server/install/guice-cassandra-rabbitmq-s3.md
=====================================================
# Guice-Cassandra-Rabbitmq-S3 installation guide

## Building

### Requirements

 - Java 11 SDK
 - Docker &#x2215; OpenSearch 2.1.0, RabbitMQ Management 3.8.18, compatible S3 ObjectStorage and Cassandra 4.0
 - Maven 3

### Building the artifacts

An usual compilation using maven will produce two artifacts into server/apps/distributed-app/target directory:

 * james-server-distributed-app.jar
 * james-server-distributed-app.lib

You can for example run in the base of [this git repository](https://github.com/apache/james-project):

```
mvn clean install
```

## Running

### Requirements

 * Cassandra 4.0
 * OpenSearch 2.1.0
 * RabbitMQ-Management 3.8.18
 * Zenko Cloudserver or AWS S3 compatible API

### James Launch

To run james, you have to create a directory containing required configuration files.

James requires the configuration to be in a subfolder of working directory that is called **conf**. You can get a sample
directory for configuration from
[server/apps/distributed-app/sample-configuration](https://github.com/apache/james-project/tree/master/server/apps/distributed-app/sample-configuration). You might need to adapt it to your needs.

You also need to generate a keystore in your conf folder with the following command:

```bash
$ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore
```

You need to have a Cassandra, OpenSearch, S3 and RabbitMQ instance running. You can either install the servers or launch them via docker:

```bash
$ docker run -d -p 9042:9042 --name=cassandra cassandra:4.1.3

=====================================================
== File: src/site/markdown/server/install/guice-cassandra.md
=====================================================
# Guice-Cassandra installation guide

## Building

### Requirements

 - Java 11 SDK
 - Docker &#x2215; OpenSearch 2.1.0 and Cassandra 4.0
 - Maven 3

*WARNING*: JAMES-3591 Cassandra is not made to store large binary content, its use will be suboptimal compared to
alternatives (namely S3 compatible BlobStores backed by for instance S3, MinIO or Ozone)

### Building the artifacts

An usual compilation using maven will produce two artifacts into server/container/guice/cassandra-guice/target directory:

 * james-server-cassandra-guice.jar
 * james-server-cassandra-guice.lib

You can for example run in the base of [this git repository](https://github.com/apache/james-project):

```
mvn clean install
```

## Running

### Requirements

 * Cassandra 4.0
 * OpenSearch 2.1.0

### James Launch

To run james, you have to create a directory containing required configuration files.

James requires the configuration to be in a subfolder of working directory that is called **conf**. You can get a sample
directory for configuration from
[server/apps/cassandra-app/sample-configuration](https://github.com/apache/james-project/tree/master/server/apps/cassandra-app/sample-configuration). You might need to adapt it to your needs.

You also need to generate a keystore in your conf folder with the following command:

```bash
$ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore
```

You need to have a Cassandra and an OpenSearch instance running. You can either install the servers or launch them via docker:

```bash

=====================================================
== File: src/site/markdown/server/install/guice-jpa.md
=====================================================
# Guice-JPA installation guide

## Building

### Requirements

 - Java 11 SDK
 - Maven 3 (optional)

### Download the artifacts

Download james-jpa-guice-3.8.1.zip from [the download page](http://james.apache.org/download.cgi#Apache_James_Server) and deflate it.

### (alternative) Building the artifacts

An usual compilation using maven of this [Git repository content](https://github.com/apache/james-project) will produce
two artifacts into server/container/guice/jpa-guice/target directory:

 - james-server-jpa-guice.jar
 - james-server-jpa-guice.lib

You can for example run in the base of this git repository:

```
mvn clean install
```

To run james, you have to create a directory containing required configuration files.

James requires the configuration to be in a subfolder of working directory that is called **conf**. You can get a sample
directory for configuration from [server/apps/jpa-app/sample-configuration](https://github.com/apache/james-project/tree/master/server/apps/jpa-app/sample-configuration). You might need to adapt it to your needs.


## Running

### James Launch

Edit the configuration to match your needs.

You also need to generate a keystore in your conf folder with the following command:

```bash
$ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore
```

Once everything is set up, you just have to run the jar with:

```bash
$ java -javaagent:james-server-jpa-guice.lib/openjpa-3.2.0.jar \
    -Dlogback.configurationFile=conf/logback.xml \

=====================================================
== File: src/site/markdown/server/install/guice-jpa-smtp.md
=====================================================
# Guice-JPA-SMTP installation guide

## Building

### Requirements

 - Java 11 SDK
 - Docker
 - Maven (optional)

### Download the artifacts

Download james-jpa-smtp-guice-3.8.1.zip from [the download page](http://james.apache.org/download.cgi#Apache_James_Server) and deflate it.

### (alternative) Building the artifacts

An usual compilation using maven of this [Git repository content](https://github.com/apache/james-project) will produce
two artifacts into server/container/guice/jpa-smtp/target directory :

 - james-server-jpa-smtp-${version}.jar
 - james-server-jpa-smtp-${version}.lib

 To run james, you have to create a directory containing required configuration files names **conf**.

 A [sample directory](https://github.com/apache/james-project/tree/master/server/apps/jpa-smtp-app/sample-configuration) is provided with some default value you may need to replace.


## Running

### James Launch

Edit the configuration to match your needs.

You also need to generate a keystore with the following command :

```bash
$ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore
```

Once everything is set up, you just have to run the jar with :

```bash
$ java -javaagent:james-server-jpa-smtp-app.lib/openjpa-3.2.0.jar \
  -Dworking.directory=. \
  -Djdk.tls.ephemeralDHKeySize=2048 \
  -Dlogback.configurationFile=conf/logback.xml \
  -jar james-server-jpa-smtp-app.jar
```

=====================================================
== File: src/site/markdown/server/manage-webadmin.md
=====================================================
Web administration for JAMES
============================

The web administration supports for now the CRUD operations on the domains, the users, their mailboxes and their quotas,
 managing mail repositories, performing cassandra migrations, and much more, as described in the following sections.

**WARNING**: This API allow authentication only via the use of JWT. If not configured with JWT, an administrator should ensure an attacker can not use this API.

By the way, some endpoints are not filtered by authentication. Those endpoints are not related to data stored in James, for example: Swagger documentation &amp; James health checks.

Please also note **webadmin** is only enabled with **Guice**. You can not use it when using James with **Spring**, as the required injections are not implemented.

In case of any error, the system will return an error message which is json format like this:

```
{
    statusCode: &lt;error_code&gt;,
    type: &lt;error_type&gt;,
    message: &lt;the_error_message&gt;
    cause: &lt;the_detail_message_from_throwable&gt;
}
```

Also be aware that, in case things go wrong, all endpoints might return a 500 internal error (with a JSON body formatted
as exposed above). To avoid information duplication, this is ommited on endpoint specific documentation.

Finally, please note that in case of a malformed URL the 400 bad request response will contain an HTML body.

## Navigation menu

 - [HealthCheck](#HealthCheck)
 - [Administrating domains](#Administrating_domains)
 - [Administrating users](#Administrating_users)
 - [Administrating mailboxes](#Administrating_mailboxes)
 - [Administrating messages](#Administrating_Messages)
 - [Administrating user mailboxes](#Administrating_user_mailboxes)
 - [Administrating quotas by users](#Administrating_quotas_by_users)
 - [Administrating quotas by domains](#Administrating_quotas_by_domains)
 - [Administrating global quotas](#Administrating_global_quotas)
 - [Cassandra Schema upgrades](#Cassandra_Schema_upgrades)
 - [Correcting ghost mailbox](#Correcting_ghost_mailbox)
 - [Creating address aliases](#Creating_address_aliases)
 - [Creating domain mappings](#Creating_domain_mappings)
 - [Creating address forwards](#Creating_address_forwards)
 - [Creating address group](#Creating_address_group)
 - [Creating regex mapping](#Creating_regex_mapping)
 - [Address Mappings](#Address_Mappings)
 - [User Mappings](#User_Mappings)
 - [Administrating mail repositories](#Administrating_mail_repositories)
 - [Administrating mail queues](#Administrating_mail_queues)

=====================================================
== File: src/site/markdown/mailet/release-notes.md
=====================================================
#Release Notes

Apache JamesProject Team (2012/12/28)

##Release Notes

2.5.0 Release 2.5.0 marks a new milestone in Apache Mailet life. All Apache James mailet related sub-projects
  (Api, Base, Crypto, Standard) have been merged as a multi-module maven project.
  They share the same version number, a common naming scheme and will be released together.Apart from bug fixing, one
  notable release characteristic is that 2.5.0 jars are OSGi bundles.

##Earlier Releases

For information regarding the **Release notes** of earlier releases, please visit
&lt;a href=&quot;release-notes-old.html&quot;&gt;Old releases&lt;/a&gt; page.

=====================================================
== File: src/site/markdown/mailet/quickstart.md
=====================================================
Mailets for developers
======================

## Artifact names

All binary (and source) artifacts are available via [Maven Central](http://repo.maven.apache.org/maven2).

The project **groupId** is *org.apache.james* and the artifact names are:

* **apache-mailet-api** - for the Mailet API
* **apache-mailet-base** - for base Mailets
* **apache-mailet-standard** - for Standard Mailets
* **apache-mailet-crypto** - for Crypto Mailets
* **mailetdocs-maven-plugin** if you wish to extract documentation from sources

Just include something like this in your *pom.xml*

~~~
&lt;dependencies&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
        &lt;artifactId&gt;apache-mailet-api&lt;/artifactId&gt;
        &lt;version&gt;3.8.1&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;!-- other dependencies --&gt;
&lt;/dependencies&gt;
~~~

### Write your own mailets

To learn how to write your own mailets please have a look at
&lt;a href=&quot;https://github.com/apache/james-project/blob/master/mailet/base/src/main/java/org/apache/mailet/base/GenericMatcher.java&quot;&gt;Generic Matcher&lt;/a&gt; and
&lt;a href=&quot;https://github.com/apache/james-project/blob/master/mailet/base/src/main/java/org/apache/mailet/base/GenericMailet.java&quot;&gt;Generic Mailet&lt;/a&gt;.

Another good learning source are the unit tests from
&lt;a href=&quot;https://github.com/apache/james-project/tree/master/mailet/standard/src/main/java/org/apache/james/transport&quot;&gt;Standard Mailets&lt;/a&gt;


=====================================================
== File: src/homepage/about.md
=====================================================
This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](http://jekyllrb.com/)

You can find the source code for the Jekyll new theme at:
{% include icon-github.html username=&quot;jekyll&quot; %} /
[minima](https://github.com/jekyll/minima)

You can find the source code for Jekyll at
{% include icon-github.html username=&quot;jekyll&quot; %} /
[jekyll](https://github.com/jekyll/jekyll)


## How to post new articles on Jekyll


#### The Posts Folder

As explained on the [directory structure](https://jekyllrb.com/docs/structure/) page, the _posts folder is where your blog posts will live:

```
.
&#x251c;&#x2500;&#x2500; _drafts
&#x251c;&#x2500;&#x2500; _includes
&#x251c;&#x2500;&#x2500; _layouts
&#x251c;&#x2500;&#x2500; _posts
|   &#x251c;&#x2500;&#x2500; 2007-10-29-why-every-programmer-should-play-nethack.md
|   &#x2514;&#x2500;&#x2500; 2009-04-26-barcamp-boston-4-roundup.md
&#x251c;&#x2500;&#x2500; _data
&#x251c;&#x2500;&#x2500; _site
&#x251c;&#x2500;&#x2500; .jekyll-metadata
&#x2514;&#x2500;&#x2500; index.html
```

The files extension is Markdown.


#### Front Matter


The front matter is where Jekyll starts to get really cool. Any file that contains a YAML front matter block will be processed by Jekyll as a special file. The front matter must be the first thing in the file and must take the form of valid YAML set between triple-dashed lines. Here is a basic example:

```
---
layout: post
title:  &quot;Welcome to Jekyll&quot;
date:   2016-08-29 16:13:22 +0200
tags: 
---
```

* ```Layout``` attribute must be always Post to load the good HTM-CSS template of the page

=====================================================
== File: src/homepage/Gemfile.lock
=====================================================
GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.8.0)
      public_suffix (&gt;= 2.0.2, &lt; 5.0)
    colorator (1.1.0)
    concurrent-ruby (1.2.3)
    em-websocket (0.5.1)
      eventmachine (&gt;= 0.12.9)
      http_parser.rb (~&gt; 0.6.0)
    eventmachine (1.2.7)
    ffi (1.16.3)
    forwardable-extended (2.6.0)
    google-protobuf (3.25.3-x86_64-linux)
    http_parser.rb (0.6.0)
    i18n (1.14.1)
      concurrent-ruby (~&gt; 1.0)
    jekyll (4.3.3)
      addressable (~&gt; 2.4)
      colorator (~&gt; 1.0)
      em-websocket (~&gt; 0.5)
      i18n (~&gt; 1.0)
      jekyll-sass-converter (&gt;= 2.0, &lt; 4.0)
      jekyll-watch (~&gt; 2.0)
      kramdown (~&gt; 2.3, &gt;= 2.3.1)
      kramdown-parser-gfm (~&gt; 1.0)
      liquid (~&gt; 4.0)
      mercenary (&gt;= 0.3.6, &lt; 0.5)
      pathutil (~&gt; 0.9)
      rouge (&gt;= 3.0, &lt; 5.0)
      safe_yaml (~&gt; 1.0)
      terminal-table (&gt;= 1.8, &lt; 4.0)
      webrick (~&gt; 1.7)
    jekyll-feed (0.17.0)
      jekyll (&gt;= 3.7, &lt; 5.0)
    jekyll-sass-converter (3.0.0)
      sass-embedded (~&gt; 1.54)
    jekyll-seo-tag (2.8.0)
      jekyll (&gt;= 3.8, &lt; 5.0)
    jekyll-watch (2.2.1)
      listen (~&gt; 3.0)
    kramdown (2.4.0)
      rexml
    kramdown-parser-gfm (1.1.0)
      kramdown (~&gt; 2.0)
    liquid (4.0.4)
    listen (3.7.0)
      rb-inotify (~&gt; 0.9, &gt;= 0.9.10)
    mercenary (0.3.6)
    minima (2.5.1)

=====================================================
== File: src/homepage/images/james-alt.svg
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --&gt;
&lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.1//EN&quot; &quot;http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&quot;&gt;
&lt;svg version=&quot;1.1&quot; id=&quot;Calque_1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; x=&quot;0px&quot; y=&quot;0px&quot;
	 width=&quot;37px&quot; height=&quot;31px&quot; viewBox=&quot;0 0 37 31&quot; enable-background=&quot;new 0 0 37 31&quot; xml:space=&quot;preserve&quot;&gt;
&lt;g&gt;
	&lt;path fill=&quot;#FFFFFF&quot; d=&quot;M37.001,4.407c-1.435-0.966-2.92-1.75-4.473-2.153c-1.552-0.412-3.151-0.315-4.63,0.3l-0.277,0.117
		l-0.139,0.062l-0.064,0.032l-0.036,0.016l-0.018,0.008l-0.008,0.004c0.008-0.007-0.028,0.016,0.02-0.012L27.37,2.783
		c-0.2,0.127-0.391,0.232-0.589,0.337c-0.392,0.207-0.796,0.391-1.216,0.543c-0.836,0.295-1.737,0.503-2.664,0.389
		c-0.458-0.061-0.913-0.222-1.3-0.489c-0.382-0.268-0.689-0.629-0.899-1.026C20.28,1.737,20.15,0.857,20.124,0
		c0.156,0.842,0.393,1.686,0.857,2.363c0.234,0.336,0.523,0.622,0.864,0.811c0.339,0.19,0.723,0.284,1.111,0.301
		c0.782,0.038,1.582-0.201,2.325-0.532c0.376-0.165,0.741-0.353,1.092-0.563c0.176-0.105,0.354-0.219,0.509-0.33l0.307-0.201
		c0.1-0.057,0.194-0.122,0.293-0.173c0.801-0.433,1.702-0.731,2.627-0.793c0.925-0.069,1.856,0.063,2.716,0.357
		c0.863,0.29,1.655,0.731,2.359,1.267C35.888,3.047,36.52,3.676,37.001,4.407z&quot;/&gt;
	&lt;path fill=&quot;#FFFFFF&quot; d=&quot;M13.25,20.418c-5.733-4.373-9.554-8.973-9.418-9.078c0.147-0.145,4.153,4.212,9.83,8.536
		c1.665,1.28,3.28,2.412,4.733,3.381c0.02-0.036,0.041-0.069,0.062-0.105c0.237-0.456,0.42-0.948,0.562-1.462
		c-1.018-2.053-3.554-4.892-6.501-7.496c-0.656-0.572-1.338-1.078-2.028-1.536c-0.151,1.223-0.452,2.098-0.453,2.096
		c0,0-0.335-1.163-0.306-2.579C9.266,11.892,8.8,11.63,8.336,11.389c-0.004,1.395-0.414,2.439-0.417,2.439
		c0,0.002-0.833-1.414-0.922-3.071c-0.002-0.01-0.002-0.021-0.002-0.031c-2.767-1.279-5.1-1.896-5.104-1.89
		C1.867,8.774,2.064,14.75,6.431,19.305c0.147-0.008,0.296-0.016,0.449-0.016c1.588,0.004,2.944,0.577,2.947,0.577
		c0-0.002-0.835,0.501-2.054,0.671c0.444,0.355,0.899,0.682,1.364,0.973c1.148-0.416,2.102-0.557,2.102-0.557
		c0-0.002-0.503,0.495-1.334,1.017c3.035,1.685,5.787,2.542,7.53,2.624c0.236-0.26,0.452-0.532,0.645-0.821
		C16.586,22.84,14.938,21.717,13.25,20.418z&quot;/&gt;
	&lt;path fill=&quot;#FFFFFF&quot; d=&quot;M33.7,4.335c-1.103,0.092-2.21,0.292-3.3,0.605c-2.173,0.623-4.31,1.725-6.062,3.396
		c-0.883,0.824-1.64,1.798-2.271,2.846c-0.614,1.059-1.109,2.191-1.43,3.363c-0.327,1.168-0.529,2.363-0.595,3.548
		c-0.02,0.291-0.031,0.596-0.039,0.9L19.995,19.4l-0.008,0.35c-0.012,0.462-0.051,0.918-0.122,1.358
		c-0.056,0.337-0.131,0.665-0.223,0.984c-0.141,0.514-0.324,1.006-0.562,1.466c-0.02,0.036-0.043,0.066-0.062,0.102
		c-0.099,0.178-0.204,0.353-0.317,0.52c-0.191,0.286-0.407,0.559-0.643,0.819c-0.17,0.186-0.348,0.366-0.544,0.541
		c-1.304,1.152-3.097,1.944-5.021,2.453c-1.931,0.518-3.995,0.788-6.091,0.934c-2.1,0.145-4.234,0.166-6.404,0.112
		c2.023,0.815,4.157,1.338,6.333,1.664c2.179,0.313,4.422,0.415,6.701,0.127c1.137-0.149,2.287-0.394,3.418-0.802
		c1.129-0.405,2.252-0.959,3.265-1.745c1.019-0.771,1.92-1.77,2.571-2.913c0.331-0.568,0.601-1.167,0.82-1.775
		c0.21-0.611,0.364-1.236,0.47-1.859c0.11-0.619,0.17-1.24,0.193-1.852c0.008-0.154,0.008-0.307,0.008-0.461v-0.398
		c0.005-0.234,0.011-0.468,0.022-0.716c0.052-0.967,0.166-1.914,0.376-2.832c0.418-1.832,1.213-3.537,2.405-5.009
		c1.192-1.472,2.767-2.711,4.552-3.706c1.79-0.994,3.765-1.774,5.862-2.355C35.917,4.247,34.808,4.238,33.7,4.335z&quot;/&gt;
&lt;/g&gt;
&lt;/svg&gt;

=====================================================
== File: src/homepage/images/james.svg
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --&gt;
&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; x=&quot;0px&quot; y=&quot;0px&quot;
	 viewBox=&quot;-223 283 164 228&quot; style=&quot;enable-background:new -223 283 164 228;&quot; xml:space=&quot;preserve&quot;&gt;
&lt;style type=&quot;text/css&quot;&gt;
	.st0{display:none;}
	.st1{display:inline;}
	.st2{fill:#FFFFFF;}
	.st3{fill:#E74A24;}
	.st4{fill:none;}
	.st5{fill:url(#SVGID_1_);}
	.st6{fill:#E4262A;}
	.st7{font-family:'Poppins-Regular';}
	.st8{font-size:28px;}
&lt;/style&gt;
&lt;g id=&quot;Calque_2&quot; class=&quot;st0&quot;&gt;
	&lt;rect x=&quot;-233.5&quot; y=&quot;269.3&quot; class=&quot;st1&quot; width=&quot;186&quot; height=&quot;258&quot;/&gt;
&lt;/g&gt;
&lt;g id=&quot;Calque_1&quot;&gt;
	&lt;g&gt;
		&lt;circle class=&quot;st2&quot; cx=&quot;-141.1&quot; cy=&quot;342.3&quot; r=&quot;59.3&quot;/&gt;
		&lt;path class=&quot;st3&quot; d=&quot;M-100.2,317.9c-3.2-2.1-6.5-3.9-9.9-4.7c-3.4-0.9-7-0.7-10.2,0.7l-0.6,0.3l-0.3,0.1l-0.2,0.1l-0.1,0l0,0l0,0
			c0,0-0.1,0,0,0l0,0c-0.4,0.3-0.9,0.5-1.3,0.7c-0.9,0.5-1.8,0.9-2.7,1.2c-1.9,0.6-3.8,1.1-5.9,0.9c-1-0.1-2-0.5-2.9-1.1
			c-0.9-0.6-1.5-1.4-2-2.3c-0.9-1.8-1.2-3.7-1.3-5.6c0.3,1.9,0.9,3.7,1.9,5.2c0.5,0.7,1.2,1.4,1.9,1.8c0.8,0.4,1.6,0.6,2.5,0.7
			c1.7,0.1,3.5-0.4,5.2-1.2c0.8-0.4,1.6-0.8,2.4-1.2c0.4-0.2,0.8-0.5,1.1-0.7l0.7-0.4c0.2-0.1,0.4-0.3,0.7-0.4
			c1.8-1,3.8-1.6,5.8-1.7c2-0.1,4.1,0.1,6,0.8c1.9,0.6,3.7,1.6,5.2,2.8C-102.6,314.9-101.2,316.3-100.2,317.9z&quot;/&gt;
		&lt;path class=&quot;st4&quot; d=&quot;M-172.3,334c-0.3,0.2,8.2,10.4,20.9,20c3.7,2.9,7.4,5.3,10.7,7.4c0.3-0.4,0.5-0.8,0.7-1.1
			c-3.2-2.1-6.8-4.6-10.5-7.4C-163.1,343.3-171.9,333.7-172.3,334z&quot;/&gt;
		
			&lt;linearGradient id=&quot;SVGID_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;8.0298&quot; y1=&quot;783.6619&quot; x2=&quot;46.1336&quot; y2=&quot;783.6619&quot; gradientTransform=&quot;matrix(-0.1008 -0.9949 -0.9949 0.1008 623.7179 292.7814)&quot;&gt;
			&lt;stop  offset=&quot;0&quot; style=&quot;stop-color:#FBC315&quot;/&gt;
			&lt;stop  offset=&quot;0.4969&quot; style=&quot;stop-color:#E74A24&quot;/&gt;
			&lt;stop  offset=&quot;1&quot; style=&quot;stop-color:#E4262A&quot;/&gt;
		&lt;/linearGradient&gt;
		&lt;path class=&quot;st5&quot; d=&quot;M-152.8,353.1c-12.7-9.6-21.2-19.7-20.9-20c0.3-0.3,9.2,9.3,21.8,18.8c3.7,2.8,7.3,5.3,10.5,7.4
			c0-0.1,0.1-0.1,0.1-0.2c0.5-1,0.9-2.1,1.2-3.2c-2.3-4.5-7.9-10.8-14.4-16.5c-1.5-1.3-3-2.4-4.5-3.4c-0.3,2.7-1,4.6-1,4.6
			c0,0-0.7-2.6-0.7-5.7c-1-0.6-2.1-1.2-3.1-1.7c0,3.1-0.9,5.4-0.9,5.4c0,0-1.8-3.1-2-6.8c0,0,0,0,0-0.1c-6.1-2.8-11.3-4.2-11.3-4.2
			c-0.1-0.1,0.4,13,10.1,23c0.3,0,0.7,0,1,0c3.5,0,6.5,1.3,6.5,1.3c0,0-1.8,1.1-4.6,1.5c1,0.8,2,1.5,3,2.1c2.5-0.9,4.7-1.2,4.7-1.2
			c0,0-1.1,1.1-3,2.2c6.7,3.7,12.8,5.6,16.7,5.8c0.5-0.6,1-1.2,1.4-1.8C-145.4,358.4-149,356-152.8,353.1z&quot;/&gt;
		&lt;path class=&quot;st6&quot; d=&quot;M-107.5,317.7c-2.4,0.2-4.9,0.6-7.3,1.3c-4.8,1.4-9.5,3.8-13.4,7.5c-2,1.8-3.6,4-5,6.3
			c-1.4,2.3-2.5,4.8-3.2,7.4c-0.7,2.6-1.2,5.2-1.3,7.8c0,0.6-0.1,1.3-0.1,2l0,0.9l0,0.8c0,1-0.1,2-0.3,3c-0.1,0.7-0.3,1.5-0.5,2.2
			c-0.3,1.1-0.7,2.2-1.2,3.2c0,0.1-0.1,0.1-0.1,0.2c-0.2,0.4-0.5,0.8-0.7,1.1c-0.4,0.6-0.9,1.2-1.4,1.8c-0.4,0.4-0.8,0.8-1.2,1.2
			c-2.9,2.5-6.9,4.3-11.1,5.4c-4.3,1.1-8.9,1.7-13.5,2.1c-4.7,0.3-9.4,0.4-14.2,0.2c4.5,1.8,9.2,2.9,14,3.7
			c4.8,0.7,9.8,0.9,14.8,0.3c2.5-0.3,5.1-0.9,7.6-1.8c2.5-0.9,5-2.1,7.2-3.8c2.3-1.7,4.2-3.9,5.7-6.4c0.7-1.3,1.3-2.6,1.8-3.9
			c0.5-1.3,0.8-2.7,1-4.1c0.2-1.4,0.4-2.7,0.4-4.1c0-0.3,0-0.7,0-1l0-0.9c0-0.5,0-1,0-1.6c0.1-2.1,0.4-4.2,0.8-6.2
			c0.9-4,2.7-7.8,5.3-11c2.6-3.2,6.1-6,10.1-8.2c4-2.2,8.3-3.9,13-5.2C-102.6,317.5-105,317.5-107.5,317.7z&quot;/&gt;
	&lt;/g&gt;
	&lt;g&gt;
		&lt;path class=&quot;st2&quot; d=&quot;M-217.7,479.8c-1.9,0-3.4-0.2-4.7-0.7v-5.7c1.6,0.4,3,0.6,4.2,0.6c3.7,0,5.6-2.4,5.6-7.1v-40.3h6.8v40.1
			c0,4.3-1,7.5-3,9.8C-210.8,478.7-213.8,479.8-217.7,479.8z&quot;/&gt;

=====================================================
== File: src/homepage/_posts/2007-09-16-jspf-0.9.5.markdown
=====================================================
---
layout: post
title:  &quot;jSPF-0.9.5 released&quot;
date:   2007-09-16 16:13:22 +0200
categories: james update
---

We are proud to announce the [availability][availability] of APACHE jSPF-0.9.5. This release brings initial support for
asynchronous processing and is fully RFC4408 compliant.

[availability]: /download.cgi



=====================================================
== File: src/homepage/_posts/2019-03-26-james-3.3.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.3.0&quot;
date:   2019-03-26  09:09:47 +0100
categories: james update
---

The Apache James developers are pleased to announce James server 3.3.0 release.

Here are some points we worked on:

### Added

- Metrics for BlobStore
- New Guice product using Cassandra RabbitMQ ElasticSearch, OpenStack Swift and optional LDAP dependency (experimental)
- JPA SMTP dockerFile contributed by [matzepan](https://github.com/matzepan)
- Listing healthchecks, thanks to [Madhu Bhat](https://github.com/kratostaine)
- Configuring the ElasticSearch clusterName
- Logging and Metrics now supports Elasticsearch 6 (previously only Elasticsearch 2 was supported)
- Implementation of the RabbitMQ EventBus
- DeadLetter APIs and memory implementation for storing events that failed delivery
- RecipientRewriteTable Aliases and associated WebAdmin routes

### Fixed

- MAILBOX-350 Potential invalid UID &lt;-&gt; MSN mapping upon IMAP COPY
- Possibility to better zoom in Grafana boards
- default ElasticSearch shards &amp; replica configured values
- Move &amp; copy batch sizes are now loaded from configuration

### Changed

- WebAdmin ReIndexing API had been reworked
- MailboxListener and mailbox event system were reworked. Custom listeners will need to be adapted. Please see Upgrade instuctions.
- Docker images are now using a JRE instead of a JDK
- Replacement of the old mailbox event system with the EventBus

### Removed

- Drop HBase and JCR components (mailbox and server/data).

### Third party softwares

 - Tika prior 1.20 is subject to multiple CVEs. We recommend the upgrade

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2022-01-26-james-3.6.2.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.6.2&quot;
date:   2022-01-26  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.6.2 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

## Announcements

[More announcements to follow this release]

## Release changelog

This is a maintenance release addressing the following issues:

 - JAMES-3646 Rely on strong typing for file paths operations
 - Upgrade Log4J to 2.17.1 (CVE-2021-44832 + CVE-2021-45105)
 - Upgrade Logback to 1.2.9 (CVE-2021-42550)

[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2011-12-07-protocols-1.6.0-RC1.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Protocols 1.6.0-RC1 released&quot;
date:   2011-10-07 16:13:22 +0200
categories: james update
---

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce the release of version 1.6.0-RC1 of Apache James Protocols library.

=====================================================
== File: src/homepage/_posts/2009-07-17-jMPT-0.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache MPT 0.1 released&quot;
date:   2009-07-17 16:13:22 +0200
categories: james update
---

The Apache James project is pleased to announced that the first release of
[Apache MPT][MPT] - a functional testing
library particularly suitable for line protocols based on ASCII - is now
[available][available] . These protocols are common in mail but the library may be useful more widely.

See the [release notes][notes] for more details.

[notes]: http://james.apache.org/mpt/0.1/release-notes.html
[available]: /download.cgi#Apache_MPT
[MPT]: http://james.apache.org/mpt

=====================================================
== File: src/homepage/_posts/2023-06-20-fail2ban.markdown
=====================================================
---
layout: post
title:  &quot;Guest post: James and fail2ban&quot;
date:   2023-05-17  01:16:30 +0200
categories: james update
---

Credits: Paul Gunter

[Original][Original] version.

# Repel brute force attacks with Linux firewall (iptables) and fail2ban

## Introduction

Servers on the Internet are constantly under attack. Mail servers are also attacked to gain control of
a server that can be used to send bulk spam emails. This often leads to these servers ending up on
various black lists and can no longer be used as mail servers. A safe basic configuration of James is
required at this point.

Nevertheless, attacks can mean that the server can practically no longer be operated. These are often
DoS or DDoS attacks (Denial-of-Service or Distributed Denial-of-Service), which smaller servers
in particular are difficult to defend against. However, basic protection via the firewall is relatively
easy to reach.

But even after that, attacks can be seen, especially those that try to spy out access data. These
attacks can be detected by monitoring the log files. So the attack patterns are known and can be
repelled with fail2ban.

All examples refer to a Linux operating system, Windows is not covered. The examples are shown
using Ubuntu and can be transferred to other Linux variants. &#x201c;iptables&#x201d; is used as the firewall front
end.

## Setting

The following assumes a small mail server on which only an SSH service can be accessed from
outside in addition to Apache James. In the example, the SSH service uses the standard port 22,
James uses the standard ports 25 (smtp), 110 (pop3) and/or 143 (imap).

The examples refer to Apache James 3.8.0 (Spring App).

The operating system is Ubuntu 22.04.

The configuration should be carried out beforehand on a test system and not during operation. One
thing to note about James is that changes to log4j2's configuration usually take effect immediately.

## (D)DoS - Attacks

An attempt is made to load the server with so many requests that it no longer works. In the case of
DDos, this is carried out in parallel by a large number of servers, which also means a corresponding

=====================================================
== File: src/homepage/_posts/2007-04-05-JAMES-2.3.1-RC1.markdown
=====================================================
---
layout: post
title:  &quot;James Server 2.3.1 RC1 released&quot;
date:   2007-04-05 16:13:22 +0200
categories: james update
---

James PMC is proud to announce the [availability][availability] of the first release candidate
of James Server 2.3.1. This release is maintenance release. See the [changelog][changelog] for more detail.

[availability]: http://downloads.apache.org/james/server/rc
[changelog]: http://issues.apache.org/jira/browse/James?report=com.atlassian.jira.plugin.system.project:changelog-panel


=====================================================
== File: src/homepage/_posts/2022-08-26-james-3.7.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.7.1&quot;
date:   2022-08-26  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.7.1 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The Apache James PMC would like to thanks all contributors who made this release possible!

## Announcement

As this is a minor maintenance release.

This release addresses CVE-2022-28220 `STARTTLS command injection in Apache JAMES`.

It also includes various bugfixes.

## Release changelog

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

[CHANGELOG]: https://github.com/apache/james-project/blob/master/CHANGELOG.md#361---2022-08-26
[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2006-09-03-JSPF-0.9-b3.markdown
=====================================================
---
layout: post
title:  &quot;jSPF 0.9 b3 Released&quot;
date:   2006-09-03 16:13:22 +0200
categories: james update
---

James PMC is proud to announce the [availability][availability] of the third beta of jspf 0.9.
This version has start to use the official spf testsuite to fix all rfc issues.

[availability]: http://downloads.apache.org/james/jspf/

=====================================================
== File: src/homepage/_posts/2022-10-28-jspf-1.0.2.markdown
=====================================================
---
layout: post
title:  &quot;Apache James JSPF 1.0.3&quot;
date:   2022-12-30  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce the 1.0.3 release of the JSPF library.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

This release fixes error management for DSNJava asynchronous capabilities

The Apache James PMC would like to thanks all contributors who made this release possible!

[tracker]: https://issues.apache.org/jira/projects/JSPF/issues
[download]: https://james.apache.org/download.cgi#Apache_jSPF

=====================================================
== File: src/homepage/_posts/2011-02-06-protocols-1.5.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Protocols 1.5&quot;
date:   2011-02-06 16:13:22 +0200
categories: james update
---

The Apache James Project is happy to announce the release of version 1.5 of the Apache James Protocols.

[Read the release notes][notes]

[notes]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311060&amp;amp;version=12316655




=====================================================
== File: src/homepage/_posts/2009-05-16-Mailet-crypto-0.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache Crypto Mailets 1.0 released&quot;
date:   2009-05-16 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce the first independent release of
[Apache Cryptographic Mailets][crypto] (previous versions
were released as part of the [Apache James Server][server]).

This package contains mailets which encode, decode, sign and verify mail plus cryptology utilities.

[server]: http://james.apache.org/server
[crypto]: http://james.apache.org/mailet/crypto

=====================================================
== File: src/homepage/_posts/2012-01-07-mime4j-0.7.2.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Mime4j 0.7.2 released&quot;
date:   2012-01-07 16:13:22 +0200
categories: james update
---

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce
the release of version 0.7.2 of Apache James Mime4j library.

=====================================================
== File: src/homepage/_posts/2024-03-05-mime4j-0.8.11.markdown
=====================================================
---
layout: post
title:  &quot;Apache James MIME4J 0.8.11&quot;
date:   2024-03-05  03:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce the 0.8.11 release of the MIME4J library.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

This release fixes a minor regression of the 0.8.10 release regarding invalid encoding in email headers.

The Apache James PMC would like to thanks all contributors who made this release possible!

[CHANGELOG]: https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md
[tracker]: https://issues.apache.org/jira/browse/MIME4J
[download]: https://james.apache.org/download.cgi#Apache_Mime4J

=====================================================
== File: src/homepage/_posts/2007-04-15-JAMES-2.3.1.markdown
=====================================================
---
layout: post
title:  &quot;James Server 2.3.1 Final Released&quot;
date:   2007-04-15 16:13:22 +0200
categories: james update
---

James PMC is proud to announce the [availability][availability] of the final release of James Server 2.3.1. More information
 on what has been fixed since the 2.3.0 release can be found in the [changelog][changelog] .


[availability]: download.cgi
[changelog]: /server/2.3.1/changelog.html

=====================================================
== File: src/homepage/_posts/2010-06-02-mailet-base-1.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache Mailet Base 1.1 released&quot;
date:   2010-06-02 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce a new  [Apache Mailet Base][base] release
which fixes a NullPointerException when using MatcherInverter.

[base]: http://james.apache.org/mailet/api

=====================================================
== File: src/homepage/_posts/2016-01-08-module-merge.markdown
=====================================================
---
layout: post
title:  &quot;James modules merge into james-project&quot;
date:   2016-01-08 16:13:22 +0200
categories: james update
---

Some of James modules were merged into [james-project][git].

This change was done in order to speed up our development phase before the 3.0 release and as long as important changes are needed on the API.

The modules merged are: james-server, apache-james-mailbox, apache-mailet, apache-james-mpt, protocols.

[git]: https://git-wip-us.apache.org/repos/asf?p=james-project.git;a=tree

=====================================================
== File: src/homepage/_posts/2016-02-08-moving-to-git.markdown
=====================================================
---
layout: post
title:  &quot;Moving to GIT!&quot;
date:   2016-02-09 16:13:22 +0200
categories: james update
---

All James projects has been migrated from SVN to GIT.

Here are the links to your favorite projects:

  - [james-project][james-project]
  - [james-jdkim][james-jdkim]
  - [james-jsieve][james-jsieve]
  - [james-jspf] [james-jspf]
  - [james-mime4j][james-mime4j]
  - [james-postage][james-postage]

[james-project]: https://git-wip-us.apache.org/repos/asf?p=james-project.git
[james-jdkim]: https://git-wip-us.apache.org/repos/asf?p=james-jdkim.git
[james-jsieve]: https://git-wip-us.apache.org/repos/asf?p=james-jsieve.git
[james-jspf]: https://git-wip-us.apache.org/repos/asf?p=james-jspf.git
[james-mime4j]: https://git-wip-us.apache.org/repos/asf?p=james-mime4j.git
[james-postage]: https://git-wip-us.apache.org/repos/asf?p=james-postage.git

=====================================================
== File: src/homepage/_posts/2022-03-01-james-3.7.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.7.0&quot;
date:   2022-03-21  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.7.0 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The Apache James PMC would like to thanks all contributors who made this release possible!

## Announcement

As of Apache James version 3.7.0 we removed support for maildir storage format. Users relying on maildir are encouraged 
to switch to other backends. Maildir can still be used as part of the 3.6.x release train.

## Most noticeable changes

The Apache James PMC is pleased to announce the additions of the following components/features in Apache James 3.7.0:

 - Multiple bug fixes. We hopefully significantly improved James overall stability.
 - Multiple performance enhancements. This new release ships a blazing fast server!
 - Multiple additions had been made to our [JMAP][JMAP] implementation including:
   - Implementation of RFC-9007 for composing MDN messages with JMAP
   - Support for JMAP integration with Web Push (RFC-8030), including encryption
   - Multiple additional JMAP methods: Email/import, Identity/set, etc...
   - Periodical cleanup of JMAP uploads
 - Ease TLS configuration by accepting PEM keys. This makes it easier to use Let's encrypt and certbot.
 - Task to delete unreferenced blobs when blob deduplication is enabled on top of the Distributed James server.
 - Use of PBKDF2 as a strong password-hashing algorithm
 - Allow disabling SMTP/IMAP plain auth for increased security
 - Addition of a James product dedicated to mail processing relying on Apache Pulsar for its mail queue (experimental)
 - Support for IMAP SASL OAUTH authentication mechanism. Used successfully with OIDC!
 - Extension for rate limiting upon email processing (memory and redis backend)

## Release changelog

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

[JMAP]: https://jmap.io
[CHANGELOG]: https://github.com/apache/james-project/blob/master/CHANGELOG.md#362---2022-01-26
[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2016-10-19-james-3.0.markdown
=====================================================
---
layout: post
title:  &quot;New logo&quot;
date:   2016-10-19 16:13:22 +0200
categories: james update
---

We choosed a new logo!

![New James logo](/images/james-logo.png)

=====================================================
== File: src/homepage/_posts/2017-06-23-jsieve-0.7.markdown
=====================================================
---
layout: post
title:  &quot;Apache James JSieve 0.7&quot;
date:   2017-06-23 11:30:00 +0700
categories: james update
---

James JSieve 0.7 has been released.

The library is available as a maven artifact, for instance for jsieve core:

```
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
    &lt;artifactId&gt;apache-jsieve-core&lt;/artifactId&gt;
    &lt;version&gt;0.7&lt;/version&gt;
&lt;/dependency&gt;
```

This release solves issues with folded encoded header matching.

It also adds an additional DiscardAction to make discarding emails explicit for the calling code.

=====================================================
== File: src/homepage/_posts/2018-05-07-mime4j-0.8.2.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Mime4J 0.8.2&quot;
date:   2018-05-07 11:30:00 +0700
categories: james update
---

James Mime4J 0.8.2 has been released.

This release solves the following bugs:

 - MIME4J-267 MIME4J DOM parsing errors on specific formats
 - MIME4J-273 Correcting encoder splitting point

The following feature were added:

 - MIME4J-269 Introduce a safe to use, PERMISSIVE configuration
 - MIME4J-268 DefaultMessageWriter: expose a convenient *asBytes* method
 - MIME4J-271 Make possible to define a Content-Type parameter
 - MIME4J-272 Implicit DOM builder call

The library is available as a maven artifact, for instance for mime4j core:

```
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
    &lt;artifactId&gt;apache-mime4j-core&lt;/artifactId&gt;
    &lt;version&gt;0.8.2&lt;/version&gt;
&lt;/dependency&gt;
```

You can also download the release artifacts [here].

[here]: https://downloads.apache.org/james/mime4j/0.8.2/

=====================================================
== File: src/homepage/_posts/2012-04-08-James-3.0-beta4.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.0-beta4 released&quot;
date:   2012-04-08 16:13:22 +0200
categories: james update
---

The Apache James project is happy to announce the release of version 3.0-beta4 of its modular mail server.

We thank all Users for their feedback and tests and we encourage anyone to [download][download] and discover this Milestone 3 release.

If you're interested in contributing to the James project, please subscribe to the James [mailing lists][mail].

[download]: http://james.apache.org/download.cgi#Apache_James_Server
[mail]: http://james.apache.org/mail.html

=====================================================
== File: src/homepage/_posts/2007-01-03-Mailet-api.markdown
=====================================================
---
layout: post
title:  &quot;Mailet API to become a sub-project&quot;
date:   2007-01-03 16:13:22 +0200
categories: james update
---

The James commiters have voted to promote the Mailet API to its own James sub-project.

This move will provide a clearer division between development of the API and development of James server, and we hope
this will encourage more participation from external projects.

The effort will start small, by releasing the current version, and move on to look at the enhancements we've been
discussing over on [the mailet api list][list] where we will extend a warm welcome to anyone
who has something to contribute.

Eventually we hope to extend the scope of the sub-project to include things like a Reference Implementation independent
of James Server and suitable for embedding, an SDK, and possibly a TCK.

[list]: http://james.apache.org/mail.html

=====================================================
== File: src/homepage/_posts/2007-05-15-mailet-api-lives.markdown
=====================================================
---
layout: post
title:  &quot;Mailet API sub-project lives&quot;
date:   2007-05-15 16:13:22 +0200
categories: james update
---

Following a decision taken by the James PMC a few months ago, the Apache Mailet API project is now independent of James
Server and has its own [webpage][webpage] and its own source repository.

[webpage]: /mailet/index.html

=====================================================
== File: src/homepage/_posts/2009-06-16-jsieve-03.markdown
=====================================================
---
layout: post
title:  &quot;Apache JSieve 0.3 released&quot;
date:   2009-06-16 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce that the third release of
[Apache JSieve][JSieve] - an implementation of the
[Sieve][Sieve] mail filtering language -
is now available for [download][download]. This is the first modular release and includes a
 filtering [mailet][mailet].

See the [release notes][notes] for more details.

[JSieve]: http://james.apache.org/jsieve
[mailet]: http://james.apache.org/mailet.
[download]: /download.cgi#Apache_JSieve
[notes]: http://james.apache.org/jsieve/0.3/release-notes.html
[Sieve]: http://www.ietf.org/rfc/rfc3028.txt

=====================================================
== File: src/homepage/_posts/2016-11-19-james-3.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.0-beta5&quot;
date:   2016-11-19 16:13:22 +0200
categories: james update
---

James server 3.0.0-beta5 has been released.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2019-08-30-latest-image-changes.markdown
=====================================================
---
layout: post
title:  &quot;Apache James `latest` Docker images changes&quot;
date:   2019-08-30  09:09:47 +0100
categories: james update
---

We have decided to change the `latest` Docker images behaviour.

Until nowadays, such images were built on the `master` branch for each products (`linagora/james-memory`, `linagora/james-cassandra-rabbitmq-ldap-project`, ...).  
This is not the way `latest` docker image should be, this [blog post](https://blog.container-solutions.com/docker-latest-confusion) is explaining this kind of misunderstood.  

So we decided to follow the global Docker users behaviour which is to clone the _latest stable release_ as the Docker `latest` images.

For those of you who are willing to use a Docker image on top of the master branch, you can use the newly created `branch-master` tag,  
which is published on each merge on the master branch. 

NB: you should not use the `latest` image in a production deployment, otherwise you are at risk of jumping from one major release to another unexpectedly.

Thanks for reading,
Antoine

=====================================================
== File: src/homepage/_posts/2015-10-08-james-2.3.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 2.3.2.1 released&quot;
date:   2015-10-08 16:13:22 +0200
categories: james update
---

Guice injection is now available in a new [Java project][guice]. Feel free to try it!

[guice]: https://github.com/apache/james-project/tree/trunk/server/container/cassandra-guice/

=====================================================
== File: src/homepage/_posts/2011-01-06-imap-mailbox-0.2.markdown
=====================================================
---
layout: post
title:  &quot;Apache James IMAP 0.2 and Mailbox 0.2&quot;
date:   2011-01-06 16:13:22 +0200
categories: james update
---

The Apache James Project is happy to announce the release of version 0.2 of the Apache James IMAP and Mailbox components
with following features:

 - Numerous IMAP bug fixes (better client support, memory improvement, NIO and IO support...).
 - Support for IMAP IDLE (RFC 2177, server transmit updates to the client in real time).
 - Support for IMAP User Flags.
 - Support for IMAP WITHIN Extensions (RFC 5032).
 - Mailbox Tooling to copy from a persistence implementation to another implementation.
 - ... See also the complete release notes for [IMAP 0.2][IMAP] and [Mailbox 0.2][Mailbox].


[IMAP]: http://s.apache.org/n8
[Mailbox]: http://s.apache.org/SNu

=====================================================
== File: src/homepage/_posts/2011-11-07-jspf-1.0.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James jSPF 1.0.0 released&quot;
date:   2011-10-07 16:13:22 +0200
categories: james update
---

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce the release of version 1.0.0 of Apache James jSPF (Sender Policy Framework) library.

=====================================================
== File: src/homepage/_posts/2021-12-02-james-3.6.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.6.1&quot;
date:   2021-12-02  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.6.1 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

## Announcements

This release fixes the following vulnerability issues, that are present prior to 3.6.1:

 - *CVE-2021-38542*: Apache James vulnerable to STARTTLS command injection (IMAP and POP3)
 - *CVE-2021-40110*: Apache James IMAP vulnerable to a ReDoS
 - *CVE-2021-40111*: Apache James IMAP parsing Denial Of Service
 - *CVE-2021-40525*: Apache James: Sieve file storage vulnerable to path traversal attacks
 
We recommend users to upgrade to this version.

## Release changelog

Here are some points we worked on:
### Fixed
- JAMES-3676 Avoid S3 connection leaks
- JAMES-3477 Mail::duplicate did lead to file leak in various places
- JAMES-3646 Sanitize some File based components  
   - Prevent directory traversal on top of maildir mailbox (#659)
   - FileMailRepository shoud reject URL outside of James root
   - SieveFileRepository should validate underlying files belong to its root
- JAMES-1862 Generalize STARTTLS sanitizing fix
- JAMES-1862 Prevent Session fixation via STARTTLS
- JAMES-3634 + JAMES-3635 Apply fuzzing to Apache James
   - Upgrade PrefixedRegex to RE2J
   - Fuzzed input throws String out of bound exception for FETCH
   - Prevent String OutOfBoundException for IMAP APPEND
   - Prevent infinite loop for IMAP STATUS command parser
   - Prevent infinite loop for IMAP APPEND command parser
- JAMES-3571 MimeMessageWrapper getSize was incorrect for empty messages
- JAMES-3525 verifyIdentity should not fail on null sender
- JAMES-3556 Fix JMAP eventUrl s/closeAfter/closeafter/
- JAMES-3432 JMAP Uploads could alter the underlying byte source
- JAMES-3537 (Email/set create should allow to attach mails)
- JAMES-3558 JMAP Email/changes: When created + updated return both
- JAMES-3558 JMAP Email/changes: moves should be considered as updates
- JAMES-3557 Changes collectors should be ordered
- JAMES-3277 Distinct uids before calling toRanges
- JAMES-3434 Refactoring: EmailSubmissionSetMethod should not rely on nested clases

=====================================================
== File: src/homepage/_posts/2021-09-21-james-joinsapachecon.markdown
=====================================================
---
layout: post
title:  &quot;Getting Apache James to serve 1M+ digital mailboxes of all Estonian residents &quot;
date:   2021-09-21  00:00:30 +0200
categories: james update
---

The Apache James team is proud to announce that one of our committers, Juhan Aasaru, presents a James
talk at [ApacheCON @home 2021][apacheCON]

Here is the [talk description][desc]:

Every Estonian (e)resident has a digital mailbox that is a secure application for the state and local government bodies 
to contact the resident and vice versa. A year ago our company won the tender to improve this service and to replace 
the legacy systems with something scalable. This is the story of how we started to look out for best technical solutions 
for the problem and found Apache James. How we made a proposition to the government agency responsible for providing this 
mailing service to use Apache James (and Apache Cassandra that powers the system under the hood). How we jumped into the 
Apache James community to understand the product and find a way to solve the requirements that were missing from the 
feature set. How we get tremendous help from the community and how we managed to give something back as well. 

Eventually our story could be a lesson learned for someone who plans to undertake something similar together with tips 
on how to correctly build a system on top of open source and what to avoid.

Most of his working life Juhan has worked as a Java developer and Solutions Architect. He has also been CTO in two 
startup companies. A few years ago he was working on a Fintech startup and contributed to Apache Fineract but recently
 his attention has moved away from Fintech towards Apache James. 

Join him Tuesday, 21th of September in the *highligh* track.

This talk can be seen on [youtube][youtube].

[apacheCON]: https://www.apachecon.com/acah2021/index.html
[desc]: https://www.apachecon.com/acah2021/tracks/highlight.html
[youtube]: https://www.youtube.com/watch?v=uA775icp-kk

=====================================================
== File: src/homepage/_posts/2017-10-02-BlogPostInstallingJames.markdown
=====================================================
---
layout: post
title:  &quot;Blog post: Easy and secure James installation&quot;
date:   2017-10-03 16:13:22 +0200
categories: james update
---

In a recent [blog post], [Thibaut] explains us how to easily set up a James server on a personal domain.

He gives hints about DNS configuration, SSL configuration, James configuration, and SPF configuration. All those
features explained with working examples!

[blog post]: https://medium.com/@thibaut.sautereau/installing-james-3-0-with-spf-verification-421b26b92f11
[Thibaut]: https://github.com/thithib

=====================================================
== File: src/homepage/_posts/2022-10-07-jdkim-0.3.markdown
=====================================================
---
layout: post
title:  &quot;Apache James JDKIM 0.3&quot;
date:   2022-10-07  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce the 0.3 release of the JDKIM library.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

This release relocates the DKIM mailet into Apache James, upgrades dependencies, and fixed two bugs:

```
Fix FWS is not trimmed correctly
DKIM-38 Support several headers with different cases
```

The Apache James PMC would like to thanks all contributors who made this release possible!

[tracker]: https://james.apache.org/download.cgi#Apache_jDKIM
[download]: https://james.apache.org/download.cgi#Apache_Mime4J

=====================================================
== File: src/homepage/_posts/2011-10-07-mime4j-0.7.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Mime4j 0.7.1 released&quot;
date:   2011-10-07 16:13:22 +0200
categories: james update
---

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce the release of version 0.7.1 of Apache James Mime4j library


=====================================================
== File: src/homepage/_posts/2010-05-01-mailet-1.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache Mailet Standard 1.0 released&quot;
date:   2010-05-01 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce that the first independent release of
[Apache Mailet Standard][standard]/ - was bundled with James Server 2.3 before -
is now available for [download][download].

[standard]: http://james.apache.org/mailet/standard/
[download]: download.cgi#Apache_JSieve

=====================================================
== File: src/homepage/_posts/2019-03-19-mime4j-0.8.3.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Mime4J 0.8.3&quot;
date:   2019-03-19 08:13:22 +0700
categories: james update
---

James Mime4J 0.8.2 has been released.

This release includes the following changes:

 - MIME4J-270: Using &quot;alternative&quot; as default subtype
 - MIME4J-263: decoding encoded words with empty encoded-text
 - MIME4J-279: Fixed JavaDoc errors to comply with Java8
 - MIME4J-280: Improve exception handling
 - MIME4J-283: DecoderUtil performance fix

The library is available as a maven artifact, for instance for mime4j core:

```
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
    &lt;artifactId&gt;apache-mime4j-core&lt;/artifactId&gt;
    &lt;version&gt;0.8.3&lt;/version&gt;
&lt;/dependency&gt;
```

You can also download the release artifacts [here].

[here]: https://downloads.apache.org/james/mime4j/0.8.3/

=====================================================
== File: src/homepage/_posts/2016-05-09-jmap.markdown
=====================================================
---
layout: post
title:  &quot;JMAP implementation&quot;
date:   2016-05-09 16:13:22 +0200
categories: james update
---

We are now supporting all basic operations on mailboxes:

  - creating: through the *setMailboxes* JMAP command
  - reading: through the *getMailboxes* JMAP command
  - updating: through the *setMailboxes* JMAP command
  - deleting: through the *setMailboxes* JMAP command

=====================================================
== File: src/homepage/_posts/2009-01-16-MAILET-2.4.markdown
=====================================================
---
layout: post
title:  &quot;Apache Mailet 2.4 released&quot;
date:   2009-01-16 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce the first independent release of [mailet][Apache Mailet]
(previous versions were released as part of the [server][Apache James Server]). The Mailet API
defines a standard approach to enterprise mail processing.

[server]: http://james.apache.org/server
[mailet]: http://james.apache.org/mailet/api

=====================================================
== File: src/homepage/_posts/2006-10-03-JAMES-2.3.markdown
=====================================================
---
layout: post
title:  &quot;James Server 2.3.0 Final Released&quot;
date:   2006-10-03 16:13:22 +0200
categories: james update
---

James PMC is proud to announce the [availability][availability] of the long awaited final release of James Server 2.3.0.
More information on what's new can be found in the [changelog][changelog] .

[availability]: download.cgi
[changelog]: /server/2.3.0/changelog.html

=====================================================
== File: src/homepage/_posts/2012-01-08-protocols-1.6.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Protocols 1.6.1 released&quot;
date:   2012-01-08 16:13:22 +0200
categories: james update
---

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce the release of version 1.6.1
of Apache James Protocols library.

=====================================================
== File: src/homepage/_posts/2019-09-05-james-3.4.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.4.0&quot;
date:   2019-09-05  15:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.4.0 release.

Here are some points we worked on:

### Added
- Add in-memory docker image
- Support of AWS S3 as blobstore
- WebAdmin routes for mapping management (`AddAddressMapping`, `AddRegexMapping`, `ListMappings`), previously only manageable by CLI
- Metrics for Deleted Message Vault
- More metrics for BlobStore (new delete &amp; deleteBucket configuration)

### Changed
- (experimental) New implementation of the deleted message vault on top of an object store, not relying anymore on a 
repository. This avoids exposing messages via webAdmin. Messages previously stored in the vault will be lost.
- Migration to ElasticSearch 6.3
- Blob export to LinShare
- Native DKIM support for outgoing mails. The mailets from james-jdkim have been included in main James project.

### Deprecated
- Zookeeper component. This will be removed after 3.4 release. If you have development skills, and are willing to maintain this component, please reach us.

### Removed
- Karaf OSGi implementation. It was not compiled nor tested for a year. We didn't get any feedback about that and we don't have the resources nor the skills to maintain it any more.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2007-02-04-JSPF-0.9-beta4.markdown
=====================================================
---
layout: post
title:  &quot;jSPF-0.9b4 released&quot;
date:   2007-02-04 16:13:22 +0200
categories: james update
---

James PMC is proud to announce the [availability][availability] of the fourth beta of jspf
0.9. This version pass all tests in the last official release of the [spf testsuite][spf_testsuite] .

[availability]: http://downloads.apache.org/james/jspf/beta
[spf_testsuite]: http://www.openspf.org/svn/project/test-suite/rfc4408-tests-2007.01.yml

=====================================================
== File: src/homepage/_posts/2009-10-17-jdkim.markdown
=====================================================
---
layout: post
title:  &quot;jDKIM joins Apache James as sub-project&quot;
date:   2009-10-17 16:13:22 +0200
categories: james update
---

The Apache James project is pleased to announce the inclusion of a new sub-project called
[jDKIM][jDKIM].

jDKIM is a DomainKeys Identified Mail (DKIM) implementation library written in Java. It provides both verification and
signing and also provides Mailets for the Apache James project.

[jDKIM]: http://james.apache.org/jdkim/

=====================================================
== File: src/homepage/_posts/2007-05-16-mime4j-0.3.markdown
=====================================================
---
layout: post
title:  &quot;Apache Mime4J 0.3 Final Released&quot;
date:   2007-05-16 16:13:22 +0200
categories: james update
---

After almost 2 years the Apache James team is proud to announce the [availability][availability] of Apache Mime4J 0.3.

This is the first release under the ASF umbrella.

[availability]: /download.cgi

=====================================================
== File: src/homepage/_posts/2020-07-16-james-3.5.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.5.0&quot;
date:   2020-07-16  15:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.5.0 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

## Announcements

### Distributed James guice product beta

Furthermore, recent work of the Apache James project did lead to a James product that leverages a distributed mail server,
using storage technologies like [Cassandra], [ElasticSearch], [RabbitMQ], and [objectStorage (S3/Swift)].

Feedback on this product, announced as a beta since 3.5.0 is welcome.

This product can be executed via [docker-compose] or you can follow its [standard installation guide]

### End of support for Java 8

James 3.5.x is the last release line to support Java 8. From 3.6.0 James will run on a Java Runtime Environment 11.

## Release changelog

Here are some points we worked on:

### Added
- Distributed task management for Distributed James product. This enables several James servers to share a consistent view
of tasks being currently executed.
- JAMES-2563 Health check for ElasticSearch
- JAMES-2904 Authentication and SSL support for Cassandra backend
- JAMES-2904 Authentication and SSL support for ElasticSearch backend
- JAMES-3066 Add support alias when sending emails, with a [&quot;allowed From headers&quot; webadmin endpoint](https://github.com/apache/james-project/blob/master/src/site/markdown/server/manage-webadmin.md#retrieving-the-list-of-allowed-from-headers-for-a-given-user)
- JAMES-3062 HealthCheck for EventDeadLetters
- JAMES-3058 WebAdmin offline task to correct mailbox inconsistencies on top of Cassandra products
- JAMES-3105 WebAdmin offline task to recompute mailbox counters on top of Cassandra products
- JAMES-3072 Webadmin endpoint to export mailbox backup

### Changed
- Multiple changes have been made to enhance Distributed James indexing performance:
  - Use of routing keys to collocate documents per mailbox
  - Under some configuration, html was not extracted before document indexing
  - Removed unnecessary fields from mailbox mapping
  - Disable dynamic mapping thanks to a change of the header structure 
- JAMES-2855 Multiple library/plugin/docker images/build tool upgrades
- By default the cassandra keyspace creation by James is now disabled by default. This allow to have credentials limited to a keyspace. It can be enabled by setting cassandra.keyspace.create=true in the cassandra.properties file.

=====================================================
== File: src/homepage/_posts/2011-03-06-jspf-0.9.9.markdown
=====================================================
---
layout: post
title:  &quot;Apache James jSPF 0.9.9&quot;
date:   2011-03-06 16:13:22 +0200
categories: james update
---

The Apache James Project is happy to announce the release of version 0.9.9 of the Apache James jSPF which includes fixes
related to OSGI.

[Read the release notes][notes]

[notes]: https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;amp;jqlQuery=project+%3D+JSPF+AND+fixVersion+%3D+%220.9.9%22+AND+status+%3D+Resolved+ORDER+BY+priority+DESC&amp;amp;mode=hide





=====================================================
== File: src/homepage/_posts/2009-03-16-Mime4j-0.6.markdown
=====================================================
---
layout: post
title:  &quot;MailetDocs Maven Plugin 0.1 released&quot;
date:   2009-03-16 16:13:22 +0200
categories: james update
---

We are proud to announce the [availability][availability] of Apache
Mime4j-0.6. This release brings another round of API enhancements and performance
optimizations. There has been a number of notable improvements in the DOM support. MIME
stream parser is expected to be 50% faster when line counting is disabled. Please also note
that as of this release Mime4j requires a Java 1.5 compatible runtime

[availability]: /download.cgi


=====================================================
== File: src/homepage/_posts/2010-05-02-jsieve-0.4.markdown
=====================================================
---
layout: post
title:  &quot;Apache JSieve 0.4 released&quot;
date:   2010-05-02 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce that the forth release of [Apache JSieve][JSieve] -
an implementation of the [Sieve][Sieve] mail filtering language -
is now available for [download][download]

[JSieve]: http://james.apache.org/jsieve
[mailet]: http://james.apache.org/mailet.
[download]: /download.cgi#Apache_JSieve
[notes]: http://james.apache.org/jsieve/0.3/release-notes.html
[Sieve]: http://www.ietf.org/rfc/rfc3028.txt

=====================================================
== File: src/homepage/_posts/2018-06-06-linagora-june-nl.markdown
=====================================================
---
layout: post
title:  &quot;Linagora June newsletter&quot;
date:   2018-06-06 11:30:00 +0700
categories: james update
---

In the name of the James team @Linagora I will be presenting you what we did in the past few weeks, and plan to work on in the coming weeks.

We have to work on some specific features to make James easier to adopt for large organizations.

# What was achieved in May

## Notifications when soon over quota

&gt; A mail needs to be sent to the user to warn him. This is an attempts to allow clients not implementing quota's RFCs to still get the warning.
&gt;
&gt; This is implemented with mailbox listeners (and not mailets), with event sourcing. We added the interfaces and implementations to achieve this feature in James using event sourcing with events being stored in Cassandra or in memory.
&gt; Such a technical solution might be very useful to implement other feature.
&gt;
&gt; This mailbox listener is optional. We allowed one to register his (potentially custom) mailbox listeners when working with Guice.

## Searching user by quota usage

&gt; This would allow an admin to inspect per-user quota usage, via a webadmin interface.
&gt;
&gt; Again, we provided two implementations: a scanning one, which naively enumerates mailboxes to compute occupation, and one where quota occupation is indexed in ElasticSearch.

## Performance enhancements

&gt; In order to have a very good mail search experience, it is possible to plug Apache Tika as a text extractor into James. We use Tika as an external service that we call with HTTP. When you use this Tika extractor with ElasticSearch indexing, you get a very powerful fulltext search even on complex attachment format like LibreOffice documents.
&gt;
&gt; We did experience slow requests with our Tika server. We contributed [this issue] which significantly enhanced Tika server performance, and we introduce a cache on James side to reduce calls to tika.
&gt;
&gt; We also worked on improving massive JMAP operation performance (delete a large number of emails).

# What we will work on in June

## Data Leak Prevention

&gt; We should have a matcher applying rules defined by the admin. This matcher will then store suspicious emails in specific mail repository for an admin review.
&gt;
&gt; To implement this, we need to enhance browsing to MailRepository via WebAdmin. We need to allow storing such rules as well as updating them via webadmin. We need finally a mailet storing emails in a repository given its sender domain.

### Exporting a mail account

&gt; As an administrator, I should be able to export the content of my mail account. This both allows easier migrations, comply with legal requirements as well as allow some forms of backups.
&gt;
&gt; The chosen format is EMLs in a ZIP format, with the folder structure described in archive meta-data, and specific metadata to ease restoring a James account (flags, etc...). An administrator (via webamin) should be able to download/upload such backups in order to do export/restores mail accounts.


=====================================================
== File: src/homepage/_posts/2024-01-08-mime4j-0.8.10.markdown
=====================================================
---
layout: post
title:  &quot;Apache James MIME4J 0.8.10&quot;
date:   2024-01-08  03:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce the 0.8.10 release of the MIME4J library.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

This release fixes `CVE-2024-21742: Mime4J DOM header injection`.

The Apache James PMC would like to thanks all contributors who made this release possible!

[CHANGELOG]: https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md
[tracker]: https://issues.apache.org/jira/browse/MIME4J
[download]: https://james.apache.org/download.cgi#Apache_Mime4J

=====================================================
== File: src/homepage/_posts/2007-02-03-feathercast-fetures.markdown
=====================================================
---
layout: post
title:  &quot;Feathercast features James&quot;
date:   2007-02-03 16:13:22 +0200
categories: james update
---

James PMC member and commiter [Danny Angus][link] was interviewed about James by David
Reid for Feathercast episode 24. You can download the podcast from [here][podcast]

[link]: http://people.apache.org/list_A.html
[podcast]: http://feathercast.org/?p=39


=====================================================
== File: src/homepage/_posts/2018-11-14-james-3.2.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.2.0&quot;
date:   2018-11-14 12:13:22 +0700
categories: james update
---

The Apache James developers are pleased to announce James server 3.2.0 release.

Here are some points we worked on:

### Added

- Mail filtering configured via the JMAP protocol
- WebAdmin exposed mail re-indexing tasks
- WebAdmin exposed health checks. This includes:
   - Possibility to perform a single healthcheck, thanks to [mschnitzler](https://github.com/mschnitzler)
   - Cassandra health checks thanks to [matzepan](https://github.com/matzepan)
- IMAP MOVE commend (RFC-6851) On top of JPA. Thanks to [mschnitzler](https://github.com/mschnitzler)
- JPA support for Sieve script storage thanks to [Sebast26](https://github.com/sebast26)
- Sieve script upload via the CLI thanks to [matzepan](https://github.com/matzepan)
- Mailet DOC: Exclude from documentation annotation thanks to [mschnitzler](https://github.com/mschnitzler)
- **cassandra.pooling.max.queue.size** configuration option Thanks to [matzepan](https://github.com/matzepan)
- **RecipentDomainI** and **SenderDomainIs** matchers by [athulyaraj](https://github.com/athulyaraj)

### Changed

- Multiple libraries updates
- Migration from Cassandra 2 to Cassandra 3
- Mail::getSender was deprecated. Mail::getMaybeSender offers better Null Sender support. Java 8 default API method was used to not break compatibility.

### Deprecated

 - HBase and JCR components (mailbox and server/data). This will be removed as part of 3.3.0. If you have development skills, and are willing to maintain these components, please reach us.

### Removed

 - Drop partially implemented Kafka distributed events

### Third party softwares

 - SpamAssassin prior 3.4.2 is subject to multiple CVEs. We recommend the upg

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server
[Sebast26]: https://github.com/sebast26
[mschnitzler]: https://github.com/mschnitzler
[matzepan]: https://github.com/matzepan

=====================================================
== File: src/homepage/_posts/2010-12-06-protocols-1.2.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Protocols 1.2 released&quot;
date:   2010-11-05 16:13:22 +0200
categories: james update
---

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce
the release of version 3.0-M2 (Milestone 2) of the Apache James server.

M2 is not only a fast corrective release on M1 (issues related to JMX
security configuration on Windows platforms,...), but also contains an important number
of enhancement and JIRA fixes.

For example, memory usage has been reduced thanks to optimizations on
the ActiveMQ component usage (responsible for the mail spooling).

We thank all Users for their feedback and tests and we encourage
anyone to discover this Milestone 2 release.

If you're interested in contributing to the James project, please subscribe to the James
[mailing lists][lists]

[lists]: http://james.apache.org/mail.html


=====================================================
== File: src/homepage/_posts/2010-11-06-james-3.0-M2.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.0-M2 released&quot;
date:   2010-12-06 16:13:22 +0200
categories: james update
---

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce the release of version 1.2 of
the Apache James Protocols.


=====================================================
== File: src/homepage/_posts/2023-05-17-james-3.8.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.8.0&quot;
date:   2023-05-17  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.8.0 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The Apache James PMC would like to thank all contributors who made this release possible!

## Announcement

This release brings the following significant changes:

 - Upgrade TCP protocols to Netty 4
 - Migrate IMAP protocol as reactive
 - Multiple additional IMAP extensions are implemented
 - Upgrade to Cassandra driver 4
 - Migrate to OpenSearch
 - Review our threading model to cap threads performing blocking tasks
 - Implement official JMAP quotas specification

## Release changelog

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

[CHANGELOG]: https://github.com/apache/james-project/blob/master/CHANGELOG.md#380---2023-05-17
[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2017-10-03-Hacktoberfest.markdown
=====================================================
---
layout: post
title:  &quot;Hacktoberfest: contribute to James&quot;
date:   2017-10-03 16:13:22 +0200
categories: james update
---

The James project joins the [Hactoberfest]!

Retrieve available issues on [GitHub].

![Hacktoberfest logo]({{ &quot;/images/hactoberfest.png&quot; }})

Contributions are diversified and feature some core James components like:

 - Additional mailet/matcher contributions
 - Additional Command Line options
 - Additional WebAdmin functionality
 - JPA Mailbox missing components

[Hactoberfest]: https://hacktoberfest.digitalocean.com/
[GitHub]: https://github.com/linagora/james-project/issues?q=is%3Aissue+is%3Aopen+label%3AHacktoberfest

=====================================================
== File: src/homepage/_posts/2016-07-09-jmap.markdown
=====================================================
---
layout: post
title:  &quot;JMAP implementation&quot;
date:   2016-07-09 16:13:22 +0200
categories: james update
---

Read and Send message with attachments.

You can now send and read messages with attachments through the JMAP commands *setMessages* and *getMessages*.

Those attachments are uploaded via the */upload* and downloaded via the */download* JMAP endpoints.

=====================================================
== File: src/homepage/_posts/2008-10-16-mime4j-0.5.markdown
=====================================================
---
layout: post
title:  &quot;Mime4j 0.5 released&quot;
date:   2008-10-16 16:13:22 +0200
categories: james update
---

we are proud to announce the [availability][availability] of APACHE Mime4j-0.5. This release addresses a number of
important issues discovered since 0.4. In particular, it improves Mime4j ability to deal with malformed data streams
including those intentionally crafted to cause excessive CPU and memory utilization that can lead to DoS condition

This release also fixes a serious bug that can prevent Mime4j from correctly processing binary content

[availability]: /download.cgi


=====================================================
== File: src/homepage/_posts/2022-10-06-james-3.7.2.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.7.2&quot;
date:   2022-10-06  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.7.2 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The Apache James PMC would like to thanks all contributors who made this release possible!

## Announcement

This release proposes stability related bug fixes and updates some dependencies for security reasons.

## Release changelog

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

[CHANGELOG]: https://github.com/apache/james-project/blob/master/CHANGELOG.md#372---2022-10-06
[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2007-04-04-james-commiters-guidelines.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Project Guidelines published&quot;
date:   2007-04-04 16:13:22 +0200
categories: james update
---

The James PMC has approved - for the first time - a set of [guidelines]: guidelines.html for the project. These guidelines
are intended to reflect and summarize well-known practices in our community. They include &quot;... definitions of how conflict
is resolved by voting, who is able to vote, and the procedures to follow for proposing and making changes to the Apache
James products.



=====================================================
== File: src/homepage/_posts/2022-12-30-james-3.7.3.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.7.3&quot;
date:   2022-12-30  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.7.3 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The Apache James PMC would like to thanks all contributors who made this release possible!

## Announcement

This release fixes CVE-2022-45935: Temporary File Information Disclosure in Apache JAMES.

This release proposes stability related bug fixes and updates some dependencies for security reasons.

## Release changelog

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

[CHANGELOG]: https://github.com/apache/james-project/blob/master/CHANGELOG.md#373---2022-12-30
[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2009-02-16-MAILET-docs-plugin-0.1.markdown
=====================================================
---
layout: post
title:  &quot;MailetDocs Maven Plugin 0.1 released&quot;
date:   2009-02-16 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce the first release of the
[MailetDocs]: http://james.apache.org/mailet/maven-mailetdocs-plugin/ plugin for [Maven][Maven].
The plugin catalogs mailet (for [example][example]).

For more information, see the [release notes][notes].

[Maven]: http://maven.apache.org
[example]: http://james.apache.org/mailet/standard/mailet-report.html
[notes]: http://james.apache.org/mailet/maven-mailetdocs-plugin/release-notes.html

=====================================================
== File: src/homepage/_posts/2015-09-08-james-2.3.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 2.3.2.1 released&quot;
date:   2015-09-08 16:13:22 +0200
categories: james update
---

This release fixes a security vulnerability - Users are invited to upgrade (read
[annouce on the Apache James blog][blog]).

[blog]: https://blogs.apache.org/james/entry/apache_james_server_2_3

=====================================================
== File: src/homepage/_posts/2020-10-29-testing-james-with-jmeter.markdown
=====================================================
---
layout: post
title:  &quot;Performance testing for James with JMeter&quot;
date:   2020-10-29  15:16:30 +0200
categories: community
---

Ever wanted to figure out what Apache James gets in its guts?

Xian Long detailed in this [blog post][post] how to be using JMeter in order to run some
IMAP performance tests on top of the distributed server, using [JMeter][jmeter]

[Other tools][james-gatling], based on [Gatling][gatling] had been developed within the community, addressing SMTP,
IMAP and [JMAP][JMAP] protocols.

[post]: https://www.cnblogs.com/hanxianlong/p/13894595.html
[jmeter]: https://jmeter.apache.org/
[gatling]: https://gatling.io/
[JMAP]: https://jmap.io/
[james-gatling]: https://github.com/linagora/james-gatling

=====================================================
== File: src/homepage/_posts/2009-06-17-jspf-0.9.7.markdown
=====================================================
---
layout: post
title:  &quot;Apache jSPF 0.9.7 released&quot;
date:   2009-06-17 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce a new [Apache jSPF][jSPF] release which included
some critical bug fixes.

[jSPF]: http://james.apache.org/jspf

=====================================================
== File: src/homepage/_posts/2010-09-04-imap-0.2-M1.markdown
=====================================================
---
layout: post
title:  &quot;Apache IMAP 0.2-M1 released&quot;
date:   2010-09-04 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce a new
[Apache IMAP][imap] release in preparation of
the upcoming 3.0-M1 [Apache Mail server][imap]

[imap]: http://james.apache.org/imap

=====================================================
== File: src/homepage/_posts/2023-03-20-james-3.7.4.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.7.4&quot;
date:   2023-03-20  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.7.4 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The Apache James PMC would like to thanks all contributors who made this release possible!

## Announcement

This release comprise minor bug fixes enhancing Apache James stability.

## Release changelog

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

[CHANGELOG]: https://github.com/apache/james-project/blob/master/CHANGELOG.md#374---2023-03-20
[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2009-08-17-james-2.3.2.markdown
=====================================================
---
layout: post
title:  &quot;Apache James 2.3.2 Released&quot;
date:   2009-08-17 16:13:22 +0200
categories: james update
---

The Apache James project is pleased to announce that Apache James 2.3.2 is now
[available][available].

This is a minor bug fix release.

See the [Release Notes][notes]
for more details. Upgrading is recommended for users of previous 2.x releases.

[notes]: http://james.apache.org/server/2.3.2/release-notes.html
[available]: /download.cgi#Apache_James_2.3.2_is_the_stable_version

=====================================================
== File: src/homepage/_posts/2018-01-26-admin-features.markdown
=====================================================
---
layout: post
title:  &quot;New administration features: manage your queues and your reporitories&quot;
date:   2018-01-26 00:00:22 +0200
categories: james update
---

An often asked feature for James is the ability to handle the mails, that after some processing,
have landed in a [repository], for example /var/mail/error/.

A brand new webadmin API allows you to handle the content of these repositories, see the documentation in [manage-webadmin].
It allows you to list the repositories, their content, but also to reprocess one or several mails in the processor and queue
of your choice.

Oh! And bonus, now you can forget this non scalable file repository and use the brand new Cassandra repository!

On the same documentation page you will also find the new mail queue management API, done to list queued mails, remove some
of them regarding different criteria, but also flush delayed mails.

Most of the work on these already usable features is done, but we still have some ideas for related improvements. [Contributions] are welcomed!

[repository]: http://james.apache.org/server/feature-persistence.html
[Contributions]: https://issues.apache.org/jira/issues/?jql=project%20%3D%20JAMES%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20in%20(feature)%20AND%20component%20%20in%20(Queue%2C%20%22MailStore%20%26%20MailRepository%22)%20AND%20type%20in%20(Improvement)
[manage-webadmin]: https://james.apache.org/server/manage-webadmin.html

=====================================================
== File: src/homepage/_posts/2011-04-06-mime4J-0.7.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Mime4J 0.7&quot;
date:   2011-04-06 16:13:22 +0200
categories: james update
---


The Apache James Project is happy to announce
the release of version 0.7 of the Apache James Mime4J.

Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing styles are
 supported.

The 0.7 release brings another round of API enhancements, bug fixes and performance optimizations.
 A major effort has been put in code reorganization, separating parsing code from DOM manipulation
 code. Mime4J has been restructured into three separate modules: 'core', 'dom' and 'storage'.
 The 'core' package provides an event-driven SAX style parser that relies on a callback mechanism
 to report parsing events such as the start of an entity header the start of a body, etc.
 The 'dom' package contains base/abstract classes and interfaces for MIME-DOM manipulation aiming
 to provide the base for a full featured traversable DOM. Per default the Mime4J DOM builder stores
 content of individual body parts in memory. The 'storage' package provides support for more
 complex storage backends such on-disk storage systems, overflow on max limit, or encrypted storage
 through JSSE API.

  Mime4J 0.7 improves support for headless messages, malformed separation between headers and body
 and adds support for &quot;obsolete&quot; rfc822 syntax (e.g: &quot;Header&lt;somespace&gt;: &quot; style). Parsing
 performance for quoted printable streams have been considerably improved. A &quot;DecodeMonitor&quot; object
 has been introduced in most code to define how to deal with malformed input (Lenient vs Strict
 behaviours). Mime4J 0.7 also provides LenientFieldParser as an alternative to DefaultFieldParser
 when a higher degree of tolerance to non-severe MIME field format violations is desired.

[Read the release notes][notes]

[notes]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310521&amp;amp;version=12313592


=====================================================
== File: src/homepage/_posts/2017-07-20-james-3.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.0.0&quot;
date:   2017-07-20 16:13:22 +0200
categories: james update
---

James server 3.0.0 has been released !

You are welcome to [download it][download], any issue can be reported on our issue [tracker][tracker].

[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2017-05-16-mime4j-0.8.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Mime4J 0.8.1&quot;
date:   2017-06-16 11:30:00 +0700
categories: james update
---

James Mime4J 0.8.1 has been released.

The library is available as a maven artifact, for instance for mime4j core:

```
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
    &lt;artifactId&gt;apache-mime4j-core&lt;/artifactId&gt;
    &lt;version&gt;0.8.1&lt;/version&gt;
&lt;/dependency&gt;
```

This release solves issues with header Date handling in the dom project:

 - It was not possible to know if the Date header was set as a default value was always provided
 - Valid dates missing century was badly parsed.

=====================================================
== File: src/homepage/_posts/2008-08-17-JSIEVE-0.2.markdown
=====================================================
---
layout: post
title:  &quot;Apache JSieve 0.2 released&quot;
date:   2008-08-17 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce the first public release of
[jsieve][Apache JSieve] an implementation of [RFC3028][RFC3028 - Sieve: A Mail Filtering Language]
for Java.

[jsieve]: http://james.apache.org/jsieve
[RFC3028]: http://www.faqs.org/rfcs/rfc3028.html

=====================================================
== File: src/homepage/_posts/2010-11-05-james-3.0-M1.markdown
=====================================================
---
layout: post
title:  &quot;Apache IMAP 0.2-M1 released&quot;
date:   2010-11-05 16:13:22 +0200
categories: james update
---

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce
the release of version 3.0-M1 (Milestone 1) of the Apache James server.

The Apache James Server is a 100% pure Java enterprise mail server based on open protocols.
Currently supported are SMTP/LMTP, POP3, IMAP4 protocols together with several different
storage solutions (relational database via JPA and JDBC, File system with MailDir, JCR Content Repsitory).

The James server also serves as a mail application platform. It hosts the Apache Mailet API,
and acts has a Mailet container. This feature makes it easy to design, write, and deploy custom applications for
mail processing. This modularity and ease of customization is one of James' strengths, and can allow administrators to
produce powerful applications surprisingly easily.

Features for that version include enhancements to nearly every area of functionality,
including full IMAP support, improved mailing list capabilities, fastfail support, SMTP API
for developing own fastfail filters and the next revision of the Mailet API.

This was an exciting time in James development and we thank all contributors.

We are still actively looking for eager, capable developers to contribute to James.
If you're interesting in contributing to the James project, please subscribe to the James
[mailing lists]: http://james.apache.org/mail.html.

Information about James can be found at the James web site
at [http://james.apache.org/][web].

[web]: http://james.apache.org/


=====================================================
== File: src/homepage/_posts/2021-04-21-mime4j-0.8.4.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Mime4J 0.8.4&quot;
date:   2021-04-21  13:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce Apache James Mime4J 0.8.4.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The changelog for this release can be seen [here][changelog]

[tracker]: https://issues.apache.org/jira/browse/MIME4J
[download]: http://james.apache.org/download.cgi#Apache_James_Server
[changelog]: https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md

=====================================================
== File: src/homepage/_posts/2022-12-30-mime4j-0.8.9.markdown
=====================================================
---
layout: post
title:  &quot;Apache James MIME4J 0.8.9&quot;
date:   2022-12-30  03:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce the 0.8.9 release of the MIME4J library.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

The Apache James PMC would like to thanks all contributors who made this release possible!

[CHANGELOG]: https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md
[tracker]: https://issues.apache.org/jira/browse/MIME4J
[download]: https://james.apache.org/download.cgi#Apache_Mime4J

=====================================================
== File: src/homepage/_posts/2011-08-06-james-beta3.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.0-beta3 released&quot;
date:   2011-08-06 16:13:22 +0200
categories: james update
---

The Apache James project is happy to announce the release of version 3.0-beta3 of its modular mail server.

We thank all Users for their feedback and tests and we encourage anyone to
[download][download] and discover this Milestone 3 release.

If you're interested in contributing to the James project, please subscribe to the James
[mailing lists][lists]


What's new in 3.0-beta3 for end users:

  - Numerous IMAP bug fixes (better client support, memory improvement, NIO and IO support...)
  - Support for IMAP IDLE (RFC 2177, server transmit updates to the client in real time)
  - Support for IMAP User Flags
  - Support for IMAP WITHIN Extensions (RFC 5032)
  - Mailbox Tooling to copy from a persistence implementation to another implementation
  - Telnet Management has been removed in favor of JMX with client shell
  - More metrics counters available via JMX
  - Better debug logging on protocols
  - JPA validated against more databases (among others Oracle)
  - Multiple address and port configurations per protocol
  - POP3 is now operational (was buggy in 3.0-M2)
  - Upgrade tool from James 2.3 is available
  - Better logging on protocols with adjustable level
  - Full mailet package must be specified
  - Composite Matchers
  - Better debug logging on protocols
  - Mailing list functionality has been removed
  - More documentation on web site for configuration,...
  - Java 1.6 mandatory
  - ... and much more, see details on https://issues.apache.org/jira/secure/ReleaseNote.jspa?in&amp;amp;version=12316850&amp;amp;styleName=Html&amp;amp;projectId=10411

What's new in 3.0-beta3 for developers:

  - Less maven modules
  - Maven 3.0.2 required to build
  - Upgrade to latest frameworks versions (netty, activemq, jackrabbit...)
  - Code reports generation via 'mvn site -P site-reports' maven profile
  - Corrections further to findbugs,... reports
  - Code formatting
  - ... and much more, see details on https://issues.apache.org/jira/secure/ReleaseNote.jspa?in&amp;amp;version=12316850&amp;amp;styleName=Html&amp;amp;projectId=10411

[Quick Start][quick]

=====================================================
== File: src/homepage/_posts/2018-02-12-gsoc-2018.markdown
=====================================================
---
layout: post
title:  &quot;Apache JAMES joins Google Summer of code 2018 !&quot;
date:   2018-02-1 00:00:22 +0200
categories: announcements
---

This year, James developers will propose ideas of Google Summer of Code projects for students.

[Google Summer of Code] is a global program focused on bringing more student developers into open source software development.
Students work with an open source organization on a 3 month programming project during their break from school.

![Google Summer of code communication image]({{ &quot;/assets/images/gsoc.png&quot; }})

We consider it is a dreamed occasion to discover the Apache James project, and get on board in this amazing project!

We are willing to offer high quality mentoring on high added value, useful tasks. As a student:

 - 	??  You will discover how Open Source world works. You will exchange with our community.
 - 	??  You will be advised by experienced, long term committers.
 - 	??  You will build technical experience on a mail server.
 - 	??  And hopefully you will get some code contributions on an Apache project.

Here are some ideas of applications:

 - &#x2692; [JAMES-1931] We are in need of a WebAdmin User Interface to ease our beloved administrator API. You will need to build an administration website on top of the **webAdmin** REST API.

 - &#x2692; [JAMES-1932] James allow to fully customize mail processing. But we miss tools to ease edition and testing of the processing flow.

 - &#x2692; [JAMES-1933] Emails need to be secure. Many protocols like DKIM, SPF and DMARC allow to meet this purpose. However we need more documentation and a DMARC implementation.

 - &#x2692; [JAMES-2335] James should be a flexible server. We should be able to use custom configuration providers, not only XML files as of today. That is a move toward &quot;clustering done the right way&quot;.

Of course, we are very open if you want to propose other ideas to us! Come and discuss this on [our gitter channel] or on the issues directly.

Thank you by advance for your involvement and hope to see you around!

[Google Summer of Code]: https://summerofcode.withgoogle.com/
[JAMES-1931]: https://issues.apache.org/jira/browse/JAMES-1931
[JAMES-1932]: https://issues.apache.org/jira/browse/JAMES-1932
[JAMES-1933]: https://issues.apache.org/jira/browse/JAMES-1933
[JAMES-2335]: https://issues.apache.org/jira/browse/JAMES-2335
[our gitter channel]: https://gitter.im/apache/james-project

=====================================================
== File: src/homepage/_posts/2021-09-26-mime4j-0.8.6.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Mime4J 0.8.6&quot;
date:   2021-09-26  13:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce Apache James Mime4J 0.8.6

This release mostly enhances performances:

 - MIME4J-306 MimeUtil::unfold should group char appends (#52)
 - MIME4J-305 ContentUtil::decode can avoid using StringBuilder (#51)
 - MIME4J-304 DecoderUtil::decodeEncodedWords without REGEXP (#50)

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The changelog for this release can be seen [here][changelog]

[tracker]: https://issues.apache.org/jira/browse/MIME4J
[download]: http://james.apache.org/download.cgi#Apache_James_Server
[changelog]: https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md

=====================================================
== File: src/homepage/_posts/2016-07-19-jmap.markdown
=====================================================
---
layout: post
title:  &quot;JMAP implementation&quot;
date:   2016-07-19 16:13:22 +0200
categories: james update
---

Full text search via JMAP.

Full text search via the *getMessageList* JMAP command is now supported.

The JMAP search **filtering** parameter is converted to an internal *SearchQuery*; then this query is processed by your
binded search backend.



=====================================================
== File: src/homepage/_posts/2008-03-16-gsoc-2008.markdown
=====================================================
---
layout: post
title:  &quot;James publishes project ideas for Google Summer of Code '08&quot;
date:   2008-03-16 16:13:22 +0200
categories: james update
---

The James Team are delighted to announce that we're proposing two project ideas for
[Google Summer of Code (GSOC) 2008][gsoc]. The project Ideas are set out on the Apache GSOC
wiki [here]: http://wiki.apache.org/general/SummerOfCode2008#james .

In brief they are:

 - Develop a VERP Mailet to allow James to write VERP modified return addresses on outbound messages, and an inbound mailet/matcher
 to identify VERP bounces and invoke configurable &quot;do something&quot; code.
 - James' provided mailing list manager is fine for small closed groups, but lacks the functionality of a more robust MLM,
 the project is to add some all or more of the following features subscriber and message moderation, double opt-in and bounce handling.

[gsoc]: : http://code.google.com/soc/2008/


=====================================================
== File: src/homepage/_posts/2019-11-19-apache-con-eu.markdown
=====================================================
---
layout: post
title:  &quot;Benoit Tellier presents James at ApacheCon Europe&quot;
date:   2019-11-19  16:16:30 +0200
categories: james apachecon
---

Benoit had the pleasure to present James at the ApacheCon at Berlin: &quot;Gaining control over emails with Apache James&quot;.

If you missed him you can see his conference on [youtube][Youtube], or read his [article][article].

[youtube]: https://www.youtube.com/watch?v=zr8qpNkL6U4
[article]: https://medium.com/linagora-engineering/linagora-representing-james-at-the-apachecon-europe-2019-c6e28b31242a

=====================================================
== File: src/homepage/_posts/2011-05-06-jdKim0.2.markdown
=====================================================
---
layout: post
title:  &quot;Apache James jDKIM 0.2&quot;
date:   2011-05-06 16:13:22 +0200
categories: james update
---

The Apache James Project is happy to announce
the release of version 0.2 of the Apache James jDKIM library.

jDKIM is a DKIM implementation library written in Java. It provides
both verification and signing and also provides Mailets for the
Apache JAMES project.

This is the first official release of the library, but the code has
been in production almost unchanged since two years.

[Read the release notes][notes]

[notes]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310990&amp;amp;version=12314300




=====================================================
== File: src/homepage/_posts/2009-09-17-hupa.markdown
=====================================================
---
layout: post
title:  &quot;Hupa joins Apache James as sub-project&quot;
date:   2009-09-17 16:13:22 +0200
categories: james update
---

The Apache James project is pleased to announce the inclusion of a new sub-project called
[Hupa][Hupa].

Hupa is a GWT based webmail which use IMAP to connect to the backend mailserver.

[Hupa]: http://james.apache.org/hupa/

=====================================================
== File: src/homepage/_posts/2010-06-03-jspf-0.9.8.markdown
=====================================================
---
layout: post
title:  &quot;Apache jSPF 0.9.8 released&quot;
date:   2010-06-03 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce a new [Apache jSPF][jSPF] release which includes
fixed to TXT record escaping and pass the rfc4408-tests-2009.10 testsuite.

[jSPF]: http://james.apache.org/jspf

=====================================================
== File: src/homepage/_posts/2022-10-28-mime4j-0.8.8.markdown
=====================================================
---
layout: post
title:  &quot;Apache James MIME4J 0.8.8&quot;
date:   2022-10-28  03:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce the 0.8.8 release of the MIME4J library.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

The Apache James PMC would like to thanks all contributors who made this release possible!

[CHANGELOG]: https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md
[tracker]: https://issues.apache.org/jira/browse/MIME4J
[download]: https://james.apache.org/download.cgi#Apache_Mime4J

=====================================================
== File: src/homepage/_posts/2010-09-03-protocols-1.2-M2.markdown
=====================================================
---
layout: post
title:  &quot;Apache protocols 1.2-M1 released&quot;
date:   2010-09-03 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce a new Apache protocols release in preparation of the upcoming 3.0-M1
[Apache Mail server][imap].

[imap]: http://james.apache.org/imap

=====================================================
== File: src/homepage/_posts/2021-03-16-james-3.6.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.6.0&quot;
date:   2021-03-16  15:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.6.0 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

## Announcements

### Experimental support for JMAP RFC-8621 and deprecation of JMAP Draft

Since the last release we worked hard refreshing our JMAP implementation, implementing both [JMAP core][jmap-core],
[JMAP mail][jmap-mail] and the [JMAP over WebSocket][jmap-ws] specifications. Their support is considered experimental and
early adopters' feedback is highly welcomed.

[JMAP Draft][jmap-draft] should be considered legacy, and will be removed in upcoming 3.7.0 release.

### Switch to Java 11 for build and run

We adopted Java Runtime Environment 11 from James release 3.6.0. James 3.5.0 is the last version offering Java Runtime
Environment 8 support.

## Release changelog

Here are some points we worked on:

### Added
- JAMES-2884 Partial Support for JMAP RFC-8621: The current implementation status allow reading mailboxes, emails, vacation responses.
  - JAMES-3457 Implement JMAP eventSource 
  - JAMES-3491 JMAP over websocket (RFC-8887)
  - JAMES-3470 JMAP RFC-8621 Email/changes + Mailbox/changes support
- JAMES-3117 Add PeriodicalHealthChecks for periodical calling all health checks
- JAMES-3143 WebAdmin endpoint to solve Cassandra message inconsistencies
- JAMES-3138 Webadmin endpoint to recompute users current quotas on top of Guice products
- JAMES-3296 Webadmin endpoint to rebuild RabbitMQMailQueue in the Distributed Server
- JAMES-3266 Offer an option to disable ElasticSearch in Distributed James product
- JAMES-3202 Reindex only outdated documents with the Mode option set to CORRECT in reindexing tasks
- JAMES-3405 Expose metrics of Guice servers over HTTP - enables easy Prometheus metrics collection
- JAMES-3407 Distributed server: Read-repairs for the mailbox entity
- JAMES-3428 Distributed server: Read-repairs for the mailbox counters entity
- JAMES-3139 Expose RabbitMQ channel &amp; connection configuration
- JAMES-3441 Make possible and document Distributed Server setup with specialized instances
- JAMES-3337 Document the use of JWT
- JAMES-3399 Allow JSON logging with logback - enables structure logging with FluentBit
- JAMES-3396 WebAdmin should try to prevent RRT addresses redirection loops when possible
- JAMES-3402 JMAP MDN messages should have a Date header

=====================================================
== File: src/homepage/_posts/2016-09-19-james-3.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.0&quot;
date:   2016-09-19 16:13:22 +0200
categories: james update
---

We are currently working on the release.

Keep an eye on the [news][news], we are planning to release the next version in November.

[news]: http://james.apache.org/newsarchive.html

=====================================================
== File: src/homepage/_posts/2022-04-01-mime4j-0.8.7.markdown
=====================================================
---
layout: post
title:  &quot;Apache James MIME4J 0.8.7&quot;
date:   2022-04-01  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce the 0.8.7 release of the MIME4J library.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

The Apache James PMC would like to thanks all contributors who made this release possible!

[CHANGELOG]: https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md#087---2022-04-01
[tracker]: https://issues.apache.org/jira/browse/MIME4J
[download]: https://james.apache.org/download.cgi#Apache_Mime4J

=====================================================
== File: src/homepage/_posts/2022-10-28-jsieve-0.8.markdown
=====================================================
---
layout: post
title:  &quot;Apache James JSieve 0.8&quot;
date:   2022-10-28  02:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce the 0.8 release of the JSieve library.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

This release targets JDK 8, update dependencies, and also brings a couple bug fixes. See the [release notes][notes].

The Apache James PMC would like to thanks all contributors who made this release possible!

[notes]: https://github.com/apache/james-jsieve/blob/master/RELEASE_NOTES.txt
[tracker]: https://issues.apache.org/jira/projects/JSIEVE/issues
[download]: https://james.apache.org/download.cgi#Apache_JSieve

=====================================================
== File: src/homepage/_posts/2009-04-16-Mailet-base-0.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache Mailet Base 1.0 released&quot;
date:   2009-04-16 16:13:22 +0200
categories: james update
---

The Apache James Project is pleased to announce the first independent release of
[Apache Mailet Base][base] (previous versions
were released as part of the
[Apache James Server][server]). The Basic Mailet Toolkit
contains lightweight frameworks and utilities likely to be of interest to
[Mailet][mailet] developers.

[base]: http://james.apache.org/mailet/base
[server]: http://james.apache.org/server
[mailet]: http://james.apache.org/mailet/api

=====================================================
== File: src/homepage/_posts/2018-07-31-james-3.1.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.1.0&quot;
date:   2018-07-31 16:13:22 +0200
categories: james update
---

James server 3.1.0 has been releases.

Here are some points we worked on:

### Added

- Introduce an object store
- Configurable listeners
- MDN (Message Disposition notification) parsing and handling
- SpamAssassin support with per user reports
- Search in attachments
- Data Leak Prevention
- JPA SMTP Guice product
- Cassandra migration process
- Structured logging
- RPM packaging (in addition to deb packaging)
- Delegating folders

### Changed

- Move to Java 8
- Improve Mail Repositories handling, including a nice web API
- Improve Mail Queues handling, including a nice web API
- Improve RRT (Recipient Rewrite Table) implementation
- Quota handling improvements, and in particular users can receive an email when they are near the limit of their quota
- Many performances enhancement, in particular on Cassandra backend
- Documentation updates

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2006-08-02-james-website-updates.markdown
=====================================================
---
layout: post
title:  &quot;James Products website revamped&lt;&quot;
date:   2006-08-02 16:13:22 +0200
categories: james update
---

We just finished a major update of james products to be able to publish each product specific site under this new website structure

=====================================================
== File: src/homepage/_posts/2008-08-16-mime4j-0.4.markdown
=====================================================
---
layout: post
title:  &quot;Mime4j 0.4 released&quot;
date:   2008-08-16 16:13:22 +0200
categories: james update
---

We are proud to announce the [availability][availability] of APACHE Mime4j-0.4. This release brings a number of
significant improvements in terms of supported capabilities, flexibility and performance:

  - Revised and improved public API with support for pull parsing
  - Support for parsing of 'headless' messages transmitted using non SMTP transports such as HTTP
  - Reduced external dependencies. Mime4j is no longer directly dependent on log4j and commons-io
  - Improved parsing performance (up to 10x for large messages)
  - More comprehensive header parsing including support for RFC1864, RFC2045, RFC2183, RFC2557 and RFC3066
  - Revised packaging and exception hierarchy. MimeException now extends IOException

[availability]: /download.cgi

=====================================================
== File: src/homepage/_posts/2012-06-08-hupa-0.2.markdown
=====================================================
---
layout: post
title:  &quot;Apache Hupa 0.0.2 released&quot;
date:   2012-06-08 16:13:22 +0200
categories: james update
---

The Java Apache Mail Enterprise Server Project is happy to announce the release of version 0.0.2 of Apache Hupa, the
James rich webmail client.

=====================================================
== File: src/homepage/_posts/2024-01-09-james-3.7.5.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.7.5&quot;
date:   2024-01-09  01:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.7.5 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The Apache James PMC would like to thanks all contributors who made this release possible!

## Announcement

This release comprise minor bug fixes enhancing Apache James stability.

This release fixes the following security issues:

 - **CVE-2023-51747**: SMTP smuggling in Apache James
 - **CVE-2023-51518**: Privilege escalation via JMX pre-authentication deserialisation

## Release changelog

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

[CHANGELOG]: https://github.com/apache/james-project/blob/master/CHANGELOG.md#375---2024-01-09
[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2016-02-09-jmap.markdown
=====================================================
---
layout: post
title:  &quot;JMAP implementation&quot;
date:   2016-02-09 16:13:22 +0200
categories: james update
---

We are actively working on implementing JMAP protocol into James.

[JMAP][JMAP] is a transport-agnostic, stateless JSON-based API for synchronising a mail client with a mail server.

It allows to develop easily a mail client in a browser, without the pain of using a server to proxy IMAP commands.

Feel free to help us, you can see our advancement on the specification implementation into [jmap/doc][doc]

[JMAP]: http://jmap.io
[doc]: https://github.com/apache/james-project/tree/3.3.x/server/protocols/jmap/doc/specs

=====================================================
== File: src/homepage/_posts/2024-01-09-james-3.8.1.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.8.1&quot;
date:   2024-01-09  02:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce James server 3.8.1 release.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The Apache James PMC would like to thank all contributors who made this release possible!

## Announcement

This release comprise minor bug fixes enhancing Apache James stability.

This release fixes the following security issues:

 - **CVE-2023-51747**: SMTP smuggling in Apache James
 - **CVE-2023-51518**: Privilege escalation via JMX pre-authentication deserialisation

## Release changelog

The full changes included in this release can be seen in the [CHANGELOG][CHANGELOG].

[CHANGELOG]: https://github.com/apache/james-project/blob/master/CHANGELOG.md#381---2024-01-09
[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2012-01-07-protocols-1.6.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Protocols 1.6.0 released&quot;
date:   2012-01-07 16:13:22 +0200
categories: james update
---

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce the release of version 1.6.0
of Apache James Protocols library.

=====================================================
== File: src/homepage/_posts/2021-07-02-mime4j-0.8.5.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Mime4J 0.8.5&quot;
date:   2021-07-02  13:16:30 +0200
categories: james update
---

The Apache James developers are pleased to announce Apache James Mime4J 0.8.5.

This release mostly enhances performances (dates, base64 encoding, case 
sensitivity management, ...)

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

The changelog for this release can be seen [here][changelog]

[tracker]: https://issues.apache.org/jira/browse/MIME4J
[download]: http://james.apache.org/download.cgi#Apache_James_Server
[changelog]: https://github.com/apache/james-mime4j/blob/master/CHANGELOG.md

=====================================================
== File: src/homepage/_posts/2006-08-03-2.3.0-RC3.markdown
=====================================================
---
layout: post
title:  &quot;James Server 2.3.0 RC3 Released&quot;
date:   2006-08-02 16:13:22 +0200
categories: james update
---

James PMC is proud to announce the [availability][availability] of the third, and hopefully
last, release candidate of James Server 2.3.0. More information on what's new can be found in the [changelog]: /server/2.3.0/changelog.html.

New development roadmaps are being discussed right now, so stay tuned for 2.3.0 final and for the following news.

[availability]: http://downloads.apache.org/james/server/

=====================================================
== File: src/homepage/_posts/2011-10-06-protocols-1.6-beta2.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Protocols 1.6-beta1 released&quot;
date:   2011-10-06 16:13:22 +0200
categories: james update
---

The Java Apache Mail Enterprise Server (a.k.a. Apache James) Project is happy to announce the release of version 1.6-beta1 of Apache James Protocols library.




=====================================================
== File: src/homepage/_posts/2017-10-20-james-3.0.1.markdown
=====================================================
---
layout: post
title:  &quot;Security release: Apache James server 3.0.1&quot;
date:   2017-10-20 00:00:22 +0200
categories: james update
---

The Apache James PMCs are glad to announce you the release
version 3.0.1 of Apache James server.

It fixes vulnerability described in CVE-2017-12628. The JMX server, also
used by the command line client is exposed to a java de-serialization
issue, and thus can be used to execute arbitrary commands. As James
exposes JMX socket by default only on local-host, this vulnerability can
only be used for privilege escalation.

Release 3.0.1 upgrades the incriminated library.

Note that you can take additional defensive steps in order to mitigate this vulnerability:

 - Ensure that you restrict the access to JMX only on local-host
 - Ensure that you are using a recent Java Run-time Environment. For instance OpenJDK 8 u111 is vulnerable but OpenJDK 8 u 141 is not.
 - You can additionally run James in a container to limit damages of potential exploits
 - And of course upgrade to the newest 3.0.1 version.

Read more about Java deserialization [issues].

[issues]: https://www.sourceclear.com/blog/Commons-Collections-Deserialization-Vulnerability-Research-Findings/

=====================================================
== File: src/homepage/_posts/2017-05-16-james-3.0.0-rc1.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Server 3.0-RC1&quot;
date:   2017-05-16 09:14:00 +0200
categories: james update
---

James server 3.0.0-RC1 has been released.

Early adopters can [download it][download], any issue can be reported on our issue [tracker][tracker].

[tracker]: https://issues.apache.org/jira/browse/JAMES
[download]: http://james.apache.org/download.cgi#Apache_James_Server

=====================================================
== File: src/homepage/_posts/2008-04-16-jspf-0.9.6.markdown
=====================================================
---
layout: post
title:  &quot;jSPF-0.9.6 released&quot;
date:   2008-04-16 16:13:22 +0200
categories: james update
---

We are proud to announce the [availability][availability] release of APACHE jSPF-0.9.6. This release fix two possible
 NullPointerExceptions and handle the &quot;exp=&quot; modifier correctly.

[availability]: /download.cgi

=====================================================
== File: src/homepage/_posts/2012-12-08-mailet-2.5.0.markdown
=====================================================
---
layout: post
title:  &quot;Apache James Mailet 2.5.0 Released&quot;
date:   2012-12-08 16:13:22 +0200
categories: james update
---

Apache Mailet 2.5.0 released.

This release brings all components under the same project so future releases will be made with
all of them. All Mailet artifact have the same version, names that start with apache-mailet-*
and are OSGi bundles.

=====================================================
== File: src/homepage/_posts/2006-07-02-2.3.0on-the-way.markdown
=====================================================
---
layout: post
title:  &quot;James Server 2.3.0 on the way&quot;
date:   2006-07-02 16:13:22 +0200
categories: james update
---

After a long time of development we have released the first [release candidate][rc]
 of James Server 2.3.0. After a period of user testing version 2.3.0 will be released.

[rc]: http://downloads.apache.org/james/server/

=====================================================
== File: src/homepage/_config.yml
=====================================================
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing these this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'jekyll serve'. If you change this file, please restart the server process.

# Site settings
# These are used to personalize your new site. If you look in the HTML files,
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.
title: James Website
email: btellier@apache.org
description: &gt; # this means to ignore newlines until &quot;baseurl:&quot;
  Write an awesome description for your new site here. You can edit this
  line in _config.yml. It will appear in your document head meta (for
  Google search results) and in your feed.xml site description.
baseurl: &quot;&quot; # the subpath of your site, e.g. /blog
url: &quot;http://james.apache.org&quot; # the base hostname &amp; protocol for your site
twitter_username: ApacheJames
github_username:  apache

# Build settings
markdown: kramdown
theme: minima

# Plugins
gems: []

=====================================================
== File: src/homepage/assets/css/font-awesome.min.css
=====================================================
/*!
 *  Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */@font-face{font-family:'FontAwesome';src:url('../../assets/fonts/fontawesome-webfont.eot?v=4.6.3');src:url('../../assets/fonts/fontawesome-webfont.eot?#iefix&amp;v=4.6.3') format('embedded-opentype'),url('../../assets/fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('../../assets/fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('../../assets/fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('../../assets/fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul&gt;li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:&quot;progid:DXImageTransform.Microsoft.BasicImage(rotation=1)&quot;;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:&quot;progid:DXImageTransform.Microsoft.BasicImage(rotation=2)&quot;;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:&quot;progid:DXImageTransform.Microsoft.BasicImage(rotation=3)&quot;;-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:&quot;progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)&quot;;-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:&quot;progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)&quot;;-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:&quot;\f000&quot;}.fa-music:before{content:&quot;\f001&quot;}.fa-search:before{content:&quot;\f002&quot;}.fa-envelope-o:before{content:&quot;\f003&quot;}.fa-heart:before{content:&quot;\f004&quot;}.fa-star:before{content:&quot;\f005&quot;}.fa-star-o:before{content:&quot;\f006&quot;}.fa-user:before{content:&quot;\f007&quot;}.fa-film:before{content:&quot;\f008&quot;}.fa-th-large:before{content:&quot;\f009&quot;}.fa-th:before{content:&quot;\f00a&quot;}.fa-th-list:before{content:&quot;\f00b&quot;}.fa-check:before{content:&quot;\f00c&quot;}.fa-remove:before,.fa-close:before,.fa-times:before{content:&quot;\f00d&quot;}.fa-search-plus:before{content:&quot;\f00e&quot;}.fa-search-minus:before{content:&quot;\f010&quot;}.fa-power-off:before{content:&quot;\f011&quot;}.fa-signal:before{content:&quot;\f012&quot;}.fa-gear:before,.fa-cog:before{content:&quot;\f013&quot;}.fa-trash-o:before{content:&quot;\f014&quot;}.fa-home:before{content:&quot;\f015&quot;}.fa-file-o:before{content:&quot;\f016&quot;}.fa-clock-o:before{content:&quot;\f017&quot;}.fa-road:before{content:&quot;\f018&quot;}.fa-download:before{content:&quot;\f019&quot;}.fa-arrow-circle-o-down:before{content:&quot;\f01a&quot;}.fa-arrow-circle-o-up:before{content:&quot;\f01b&quot;}.fa-inbox:before{content:&quot;\f01c&quot;}.fa-play-circle-o:before{content:&quot;\f01d&quot;}.fa-rotate-right:before,.fa-repeat:before{content:&quot;\f01e&quot;}.fa-refresh:before{content:&quot;\f021&quot;}.fa-list-alt:before{content:&quot;\f022&quot;}.fa-lock:before{content:&quot;\f023&quot;}.fa-flag:before{content:&quot;\f024&quot;}.fa-headphones:before{content:&quot;\f025&quot;}.fa-volume-off:before{content:&quot;\f026&quot;}.fa-volume-down:before{content:&quot;\f027&quot;}.fa-volume-up:before{content:&quot;\f028&quot;}.fa-qrcode:before{content:&quot;\f029&quot;}.fa-barcode:before{content:&quot;\f02a&quot;}.fa-tag:before{content:&quot;\f02b&quot;}.fa-tags:before{content:&quot;\f02c&quot;}.fa-book:before{content:&quot;\f02d&quot;}.fa-bookmark:before{content:&quot;\f02e&quot;}.fa-print:before{content:&quot;\f02f&quot;}.fa-camera:before{content:&quot;\f030&quot;}.fa-font:before{content:&quot;\f031&quot;}.fa-bold:before{content:&quot;\f032&quot;}.fa-italic:before{content:&quot;\f033&quot;}.fa-text-height:before{content:&quot;\f034&quot;}.fa-text-width:before{content:&quot;\f035&quot;}.fa-align-left:before{content:&quot;\f036&quot;}.fa-align-center:before{content:&quot;\f037&quot;}.fa-align-right:before{content:&quot;\f038&quot;}.fa-align-justify:before{content:&quot;\f039&quot;}.fa-list:before{content:&quot;\f03a&quot;}.fa-dedent:before,.fa-outdent:before{content:&quot;\f03b&quot;}.fa-indent:before{content:&quot;\f03c&quot;}.fa-video-camera:before{content:&quot;\f03d&quot;}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:&quot;\f03e&quot;}.fa-pencil:before{content:&quot;\f040&quot;}.fa-map-marker:before{content:&quot;\f041&quot;}.fa-adjust:before{content:&quot;\f042&quot;}.fa-tint:before{content:&quot;\f043&quot;}.fa-edit:before,.fa-pencil-square-o:before{content:&quot;\f044&quot;}.fa-share-square-o:before{content:&quot;\f045&quot;}.fa-check-square-o:before{content:&quot;\f046&quot;}.fa-arrows:before{content:&quot;\f047&quot;}.fa-step-backward:before{content:&quot;\f048&quot;}.fa-fast-backward:before{content:&quot;\f049&quot;}.fa-backward:before{content:&quot;\f04a&quot;}.fa-play:before{content:&quot;\f04b&quot;}.fa-pause:before{content:&quot;\f04c&quot;}.fa-stop:before{content:&quot;\f04d&quot;}.fa-forward:before{content:&quot;\f04e&quot;}.fa-fast-forward:before{content:&quot;\f050&quot;}.fa-step-forward:before{content:&quot;\f051&quot;}.fa-eject:before{content:&quot;\f052&quot;}.fa-chevron-left:before{content:&quot;\f053&quot;}.fa-chevron-right:before{content:&quot;\f054&quot;}.fa-plus-circle:before{content:&quot;\f055&quot;}.fa-minus-circle:before{content:&quot;\f056&quot;}.fa-times-circle:before{content:&quot;\f057&quot;}.fa-check-circle:before{content:&quot;\f058&quot;}.fa-question-circle:before{content:&quot;\f059&quot;}.fa-info-circle:before{content:&quot;\f05a&quot;}.fa-crosshairs:before{content:&quot;\f05b&quot;}.fa-times-circle-o:before{content:&quot;\f05c&quot;}.fa-check-circle-o:before{content:&quot;\f05d&quot;}.fa-ban:before{content:&quot;\f05e&quot;}.fa-arrow-left:before{content:&quot;\f060&quot;}.fa-arrow-right:before{content:&quot;\f061&quot;}.fa-arrow-up:before{content:&quot;\f062&quot;}.fa-arrow-down:before{content:&quot;\f063&quot;}.fa-mail-forward:before,.fa-share:before{content:&quot;\f064&quot;}.fa-expand:before{content:&quot;\f065&quot;}.fa-compress:before{content:&quot;\f066&quot;}.fa-plus:before{content:&quot;\f067&quot;}.fa-minus:before{content:&quot;\f068&quot;}.fa-asterisk:before{content:&quot;\f069&quot;}.fa-exclamation-circle:before{content:&quot;\f06a&quot;}.fa-gift:before{content:&quot;\f06b&quot;}.fa-leaf:before{content:&quot;\f06c&quot;}.fa-fire:before{content:&quot;\f06d&quot;}.fa-eye:before{content:&quot;\f06e&quot;}.fa-eye-slash:before{content:&quot;\f070&quot;}.fa-warning:before,.fa-exclamation-triangle:before{content:&quot;\f071&quot;}.fa-plane:before{content:&quot;\f072&quot;}.fa-calendar:before{content:&quot;\f073&quot;}.fa-random:before{content:&quot;\f074&quot;}.fa-comment:before{content:&quot;\f075&quot;}.fa-magnet:before{content:&quot;\f076&quot;}.fa-chevron-up:before{content:&quot;\f077&quot;}.fa-chevron-down:before{content:&quot;\f078&quot;}.fa-retweet:before{content:&quot;\f079&quot;}.fa-shopping-cart:before{content:&quot;\f07a&quot;}.fa-folder:before{content:&quot;\f07b&quot;}.fa-folder-open:before{content:&quot;\f07c&quot;}.fa-arrows-v:before{content:&quot;\f07d&quot;}.fa-arrows-h:before{content:&quot;\f07e&quot;}.fa-bar-chart-o:before,.fa-bar-chart:before{content:&quot;\f080&quot;}.fa-twitter-square:before{content:&quot;\f081&quot;}.fa-facebook-square:before{content:&quot;\f082&quot;}.fa-camera-retro:before{content:&quot;\f083&quot;}.fa-key:before{content:&quot;\f084&quot;}.fa-gears:before,.fa-cogs:before{content:&quot;\f085&quot;}.fa-comments:before{content:&quot;\f086&quot;}.fa-thumbs-o-up:before{content:&quot;\f087&quot;}.fa-thumbs-o-down:before{content:&quot;\f088&quot;}.fa-star-half:before{content:&quot;\f089&quot;}.fa-heart-o:before{content:&quot;\f08a&quot;}.fa-sign-out:before{content:&quot;\f08b&quot;}.fa-linkedin-square:before{content:&quot;\f08c&quot;}.fa-thumb-tack:before{content:&quot;\f08d&quot;}.fa-external-link:before{content:&quot;\f08e&quot;}.fa-sign-in:before{content:&quot;\f090&quot;}.fa-trophy:before{content:&quot;\f091&quot;}.fa-github-square:before{content:&quot;\f092&quot;}.fa-upload:before{content:&quot;\f093&quot;}.fa-lemon-o:before{content:&quot;\f094&quot;}.fa-phone:before{content:&quot;\f095&quot;}.fa-square-o:before{content:&quot;\f096&quot;}.fa-bookmark-o:before{content:&quot;\f097&quot;}.fa-phone-square:before{content:&quot;\f098&quot;}.fa-twitter:before{content:&quot;\f099&quot;}.fa-facebook-f:before,.fa-facebook:before{content:&quot;\f09a&quot;}.fa-github:before{content:&quot;\f09b&quot;}.fa-unlock:before{content:&quot;\f09c&quot;}.fa-credit-card:before{content:&quot;\f09d&quot;}.fa-feed:before,.fa-rss:before{content:&quot;\f09e&quot;}.fa-hdd-o:before{content:&quot;\f0a0&quot;}.fa-bullhorn:before{content:&quot;\f0a1&quot;}.fa-bell:before{content:&quot;\f0f3&quot;}.fa-certificate:before{content:&quot;\f0a3&quot;}.fa-hand-o-right:before{content:&quot;\f0a4&quot;}.fa-hand-o-left:before{content:&quot;\f0a5&quot;}.fa-hand-o-up:before{content:&quot;\f0a6&quot;}.fa-hand-o-down:before{content:&quot;\f0a7&quot;}.fa-arrow-circle-left:before{content:&quot;\f0a8&quot;}.fa-arrow-circle-right:before{content:&quot;\f0a9&quot;}.fa-arrow-circle-up:before{content:&quot;\f0aa&quot;}.fa-arrow-circle-down:before{content:&quot;\f0ab&quot;}.fa-globe:before{content:&quot;\f0ac&quot;}.fa-wrench:before{content:&quot;\f0ad&quot;}.fa-tasks:before{content:&quot;\f0ae&quot;}.fa-filter:before{content:&quot;\f0b0&quot;}.fa-briefcase:before{content:&quot;\f0b1&quot;}.fa-arrows-alt:before{content:&quot;\f0b2&quot;}.fa-group:before,.fa-users:before{content:&quot;\f0c0&quot;}.fa-chain:before,.fa-link:before{content:&quot;\f0c1&quot;}.fa-cloud:before{content:&quot;\f0c2&quot;}.fa-flask:before{content:&quot;\f0c3&quot;}.fa-cut:before,.fa-scissors:before{content:&quot;\f0c4&quot;}.fa-copy:before,.fa-files-o:before{content:&quot;\f0c5&quot;}.fa-paperclip:before{content:&quot;\f0c6&quot;}.fa-save:before,.fa-floppy-o:before{content:&quot;\f0c7&quot;}.fa-square:before{content:&quot;\f0c8&quot;}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:&quot;\f0c9&quot;}.fa-list-ul:before{content:&quot;\f0ca&quot;}.fa-list-ol:before{content:&quot;\f0cb&quot;}.fa-strikethrough:before{content:&quot;\f0cc&quot;}.fa-underline:before{content:&quot;\f0cd&quot;}.fa-table:before{content:&quot;\f0ce&quot;}.fa-magic:before{content:&quot;\f0d0&quot;}.fa-truck:before{content:&quot;\f0d1&quot;}.fa-pinterest:before{content:&quot;\f0d2&quot;}.fa-pinterest-square:before{content:&quot;\f0d3&quot;}.fa-google-plus-square:before{content:&quot;\f0d4&quot;}.fa-google-plus:before{content:&quot;\f0d5&quot;}.fa-money:before{content:&quot;\f0d6&quot;}.fa-caret-down:before{content:&quot;\f0d7&quot;}.fa-caret-up:before{content:&quot;\f0d8&quot;}.fa-caret-left:before{content:&quot;\f0d9&quot;}.fa-caret-right:before{content:&quot;\f0da&quot;}.fa-columns:before{content:&quot;\f0db&quot;}.fa-unsorted:before,.fa-sort:before{content:&quot;\f0dc&quot;}.fa-sort-down:before,.fa-sort-desc:before{content:&quot;\f0dd&quot;}.fa-sort-up:before,.fa-sort-asc:before{content:&quot;\f0de&quot;}.fa-envelope:before{content:&quot;\f0e0&quot;}.fa-linkedin:before{content:&quot;\f0e1&quot;}.fa-rotate-left:before,.fa-undo:before{content:&quot;\f0e2&quot;}.fa-legal:before,.fa-gavel:before{content:&quot;\f0e3&quot;}.fa-dashboard:before,.fa-tachometer:before{content:&quot;\f0e4&quot;}.fa-comment-o:before{content:&quot;\f0e5&quot;}.fa-comments-o:before{content:&quot;\f0e6&quot;}.fa-flash:before,.fa-bolt:before{content:&quot;\f0e7&quot;}.fa-sitemap:before{content:&quot;\f0e8&quot;}.fa-umbrella:before{content:&quot;\f0e9&quot;}.fa-paste:before,.fa-clipboard:before{content:&quot;\f0ea&quot;}.fa-lightbulb-o:before{content:&quot;\f0eb&quot;}.fa-exchange:before{content:&quot;\f0ec&quot;}.fa-cloud-download:before{content:&quot;\f0ed&quot;}.fa-cloud-upload:before{content:&quot;\f0ee&quot;}.fa-user-md:before{content:&quot;\f0f0&quot;}.fa-stethoscope:before{content:&quot;\f0f1&quot;}.fa-suitcase:before{content:&quot;\f0f2&quot;}.fa-bell-o:before{content:&quot;\f0a2&quot;}.fa-coffee:before{content:&quot;\f0f4&quot;}.fa-cutlery:before{content:&quot;\f0f5&quot;}.fa-file-text-o:before{content:&quot;\f0f6&quot;}.fa-building-o:before{content:&quot;\f0f7&quot;}.fa-hospital-o:before{content:&quot;\f0f8&quot;}.fa-ambulance:before{content:&quot;\f0f9&quot;}.fa-medkit:before{content:&quot;\f0fa&quot;}.fa-fighter-jet:before{content:&quot;\f0fb&quot;}.fa-beer:before{content:&quot;\f0fc&quot;}.fa-h-square:before{content:&quot;\f0fd&quot;}.fa-plus-square:before{content:&quot;\f0fe&quot;}.fa-angle-double-left:before{content:&quot;\f100&quot;}.fa-angle-double-right:before{content:&quot;\f101&quot;}.fa-angle-double-up:before{content:&quot;\f102&quot;}.fa-angle-double-down:before{content:&quot;\f103&quot;}.fa-angle-left:before{content:&quot;\f104&quot;}.fa-angle-right:before{content:&quot;\f105&quot;}.fa-angle-up:before{content:&quot;\f106&quot;}.fa-angle-down:before{content:&quot;\f107&quot;}.fa-desktop:before{content:&quot;\f108&quot;}.fa-laptop:before{content:&quot;\f109&quot;}.fa-tablet:before{content:&quot;\f10a&quot;}.fa-mobile-phone:before,.fa-mobile:before{content:&quot;\f10b&quot;}.fa-circle-o:before{content:&quot;\f10c&quot;}.fa-quote-left:before{content:&quot;\f10d&quot;}.fa-quote-right:before{content:&quot;\f10e&quot;}.fa-spinner:before{content:&quot;\f110&quot;}.fa-circle:before{content:&quot;\f111&quot;}.fa-mail-reply:before,.fa-reply:before{content:&quot;\f112&quot;}.fa-github-alt:before{content:&quot;\f113&quot;}.fa-folder-o:before{content:&quot;\f114&quot;}.fa-folder-open-o:before{content:&quot;\f115&quot;}.fa-smile-o:before{content:&quot;\f118&quot;}.fa-frown-o:before{content:&quot;\f119&quot;}.fa-meh-o:before{content:&quot;\f11a&quot;}.fa-gamepad:before{content:&quot;\f11b&quot;}.fa-keyboard-o:before{content:&quot;\f11c&quot;}.fa-flag-o:before{content:&quot;\f11d&quot;}.fa-flag-checkered:before{content:&quot;\f11e&quot;}.fa-terminal:before{content:&quot;\f120&quot;}.fa-code:before{content:&quot;\f121&quot;}.fa-mail-reply-all:before,.fa-reply-all:before{content:&quot;\f122&quot;}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:&quot;\f123&quot;}.fa-location-arrow:before{content:&quot;\f124&quot;}.fa-crop:before{content:&quot;\f125&quot;}.fa-code-fork:before{content:&quot;\f126&quot;}.fa-unlink:before,.fa-chain-broken:before{content:&quot;\f127&quot;}.fa-question:before{content:&quot;\f128&quot;}.fa-info:before{content:&quot;\f129&quot;}.fa-exclamation:before{content:&quot;\f12a&quot;}.fa-superscript:before{content:&quot;\f12b&quot;}.fa-subscript:before{content:&quot;\f12c&quot;}.fa-eraser:before{content:&quot;\f12d&quot;}.fa-puzzle-piece:before{content:&quot;\f12e&quot;}.fa-microphone:before{content:&quot;\f130&quot;}.fa-microphone-slash:before{content:&quot;\f131&quot;}.fa-shield:before{content:&quot;\f132&quot;}.fa-calendar-o:before{content:&quot;\f133&quot;}.fa-fire-extinguisher:before{content:&quot;\f134&quot;}.fa-rocket:before{content:&quot;\f135&quot;}.fa-maxcdn:before{content:&quot;\f136&quot;}.fa-chevron-circle-left:before{content:&quot;\f137&quot;}.fa-chevron-circle-right:before{content:&quot;\f138&quot;}.fa-chevron-circle-up:before{content:&quot;\f139&quot;}.fa-chevron-circle-down:before{content:&quot;\f13a&quot;}.fa-html5:before{content:&quot;\f13b&quot;}.fa-css3:before{content:&quot;\f13c&quot;}.fa-anchor:before{content:&quot;\f13d&quot;}.fa-unlock-alt:before{content:&quot;\f13e&quot;}.fa-bullseye:before{content:&quot;\f140&quot;}.fa-ellipsis-h:before{content:&quot;\f141&quot;}.fa-ellipsis-v:before{content:&quot;\f142&quot;}.fa-rss-square:before{content:&quot;\f143&quot;}.fa-play-circle:before{content:&quot;\f144&quot;}.fa-ticket:before{content:&quot;\f145&quot;}.fa-minus-square:before{content:&quot;\f146&quot;}.fa-minus-square-o:before{content:&quot;\f147&quot;}.fa-level-up:before{content:&quot;\f148&quot;}.fa-level-down:before{content:&quot;\f149&quot;}.fa-check-square:before{content:&quot;\f14a&quot;}.fa-pencil-square:before{content:&quot;\f14b&quot;}.fa-external-link-square:before{content:&quot;\f14c&quot;}.fa-share-square:before{content:&quot;\f14d&quot;}.fa-compass:before{content:&quot;\f14e&quot;}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:&quot;\f150&quot;}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:&quot;\f151&quot;}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:&quot;\f152&quot;}.fa-euro:before,.fa-eur:before{content:&quot;\f153&quot;}.fa-gbp:before{content:&quot;\f154&quot;}.fa-dollar:before,.fa-usd:before{content:&quot;\f155&quot;}.fa-rupee:before,.fa-inr:before{content:&quot;\f156&quot;}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:&quot;\f157&quot;}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:&quot;\f158&quot;}.fa-won:before,.fa-krw:before{content:&quot;\f159&quot;}.fa-bitcoin:before,.fa-btc:before{content:&quot;\f15a&quot;}.fa-file:before{content:&quot;\f15b&quot;}.fa-file-text:before{content:&quot;\f15c&quot;}.fa-sort-alpha-asc:before{content:&quot;\f15d&quot;}.fa-sort-alpha-desc:before{content:&quot;\f15e&quot;}.fa-sort-amount-asc:before{content:&quot;\f160&quot;}.fa-sort-amount-desc:before{content:&quot;\f161&quot;}.fa-sort-numeric-asc:before{content:&quot;\f162&quot;}.fa-sort-numeric-desc:before{content:&quot;\f163&quot;}.fa-thumbs-up:before{content:&quot;\f164&quot;}.fa-thumbs-down:before{content:&quot;\f165&quot;}.fa-youtube-square:before{content:&quot;\f166&quot;}.fa-youtube:before{content:&quot;\f167&quot;}.fa-xing:before{content:&quot;\f168&quot;}.fa-xing-square:before{content:&quot;\f169&quot;}.fa-youtube-play:before{content:&quot;\f16a&quot;}.fa-dropbox:before{content:&quot;\f16b&quot;}.fa-stack-overflow:before{content:&quot;\f16c&quot;}.fa-instagram:before{content:&quot;\f16d&quot;}.fa-flickr:before{content:&quot;\f16e&quot;}.fa-adn:before{content:&quot;\f170&quot;}.fa-bitbucket:before{content:&quot;\f171&quot;}.fa-bitbucket-square:before{content:&quot;\f172&quot;}.fa-tumblr:before{content:&quot;\f173&quot;}.fa-tumblr-square:before{content:&quot;\f174&quot;}.fa-long-arrow-down:before{content:&quot;\f175&quot;}.fa-long-arrow-up:before{content:&quot;\f176&quot;}.fa-long-arrow-left:before{content:&quot;\f177&quot;}.fa-long-arrow-right:before{content:&quot;\f178&quot;}.fa-apple:before{content:&quot;\f179&quot;}.fa-windows:before{content:&quot;\f17a&quot;}.fa-android:before{content:&quot;\f17b&quot;}.fa-linux:before{content:&quot;\f17c&quot;}.fa-dribbble:before{content:&quot;\f17d&quot;}.fa-skype:before{content:&quot;\f17e&quot;}.fa-foursquare:before{content:&quot;\f180&quot;}.fa-trello:before{content:&quot;\f181&quot;}.fa-female:before{content:&quot;\f182&quot;}.fa-male:before{content:&quot;\f183&quot;}.fa-gittip:before,.fa-gratipay:before{content:&quot;\f184&quot;}.fa-sun-o:before{content:&quot;\f185&quot;}.fa-moon-o:before{content:&quot;\f186&quot;}.fa-archive:before{content:&quot;\f187&quot;}.fa-bug:before{content:&quot;\f188&quot;}.fa-vk:before{content:&quot;\f189&quot;}.fa-weibo:before{content:&quot;\f18a&quot;}.fa-renren:before{content:&quot;\f18b&quot;}.fa-pagelines:before{content:&quot;\f18c&quot;}.fa-stack-exchange:before{content:&quot;\f18d&quot;}.fa-arrow-circle-o-right:before{content:&quot;\f18e&quot;}.fa-arrow-circle-o-left:before{content:&quot;\f190&quot;}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:&quot;\f191&quot;}.fa-dot-circle-o:before{content:&quot;\f192&quot;}.fa-wheelchair:before{content:&quot;\f193&quot;}.fa-vimeo-square:before{content:&quot;\f194&quot;}.fa-turkish-lira:before,.fa-try:before{content:&quot;\f195&quot;}.fa-plus-square-o:before{content:&quot;\f196&quot;}.fa-space-shuttle:before{content:&quot;\f197&quot;}.fa-slack:before{content:&quot;\f198&quot;}.fa-envelope-square:before{content:&quot;\f199&quot;}.fa-wordpress:before{content:&quot;\f19a&quot;}.fa-openid:before{content:&quot;\f19b&quot;}.fa-institution:before,.fa-bank:before,.fa-university:before{content:&quot;\f19c&quot;}.fa-mortar-board:before,.fa-graduation-cap:before{content:&quot;\f19d&quot;}.fa-yahoo:before{content:&quot;\f19e&quot;}.fa-google:before{content:&quot;\f1a0&quot;}.fa-reddit:before{content:&quot;\f1a1&quot;}.fa-reddit-square:before{content:&quot;\f1a2&quot;}.fa-stumbleupon-circle:before{content:&quot;\f1a3&quot;}.fa-stumbleupon:before{content:&quot;\f1a4&quot;}.fa-delicious:before{content:&quot;\f1a5&quot;}.fa-digg:before{content:&quot;\f1a6&quot;}.fa-pied-piper-pp:before{content:&quot;\f1a7&quot;}.fa-pied-piper-alt:before{content:&quot;\f1a8&quot;}.fa-drupal:before{content:&quot;\f1a9&quot;}.fa-joomla:before{content:&quot;\f1aa&quot;}.fa-language:before{content:&quot;\f1ab&quot;}.fa-fax:before{content:&quot;\f1ac&quot;}.fa-building:before{content:&quot;\f1ad&quot;}.fa-child:before{content:&quot;\f1ae&quot;}.fa-paw:before{content:&quot;\f1b0&quot;}.fa-spoon:before{content:&quot;\f1b1&quot;}.fa-cube:before{content:&quot;\f1b2&quot;}.fa-cubes:before{content:&quot;\f1b3&quot;}.fa-behance:before{content:&quot;\f1b4&quot;}.fa-behance-square:before{content:&quot;\f1b5&quot;}.fa-steam:before{content:&quot;\f1b6&quot;}.fa-steam-square:before{content:&quot;\f1b7&quot;}.fa-recycle:before{content:&quot;\f1b8&quot;}.fa-automobile:before,.fa-car:before{content:&quot;\f1b9&quot;}.fa-cab:before,.fa-taxi:before{content:&quot;\f1ba&quot;}.fa-tree:before{content:&quot;\f1bb&quot;}.fa-spotify:before{content:&quot;\f1bc&quot;}.fa-deviantart:before{content:&quot;\f1bd&quot;}.fa-soundcloud:before{content:&quot;\f1be&quot;}.fa-database:before{content:&quot;\f1c0&quot;}.fa-file-pdf-o:before{content:&quot;\f1c1&quot;}.fa-file-word-o:before{content:&quot;\f1c2&quot;}.fa-file-excel-o:before{content:&quot;\f1c3&quot;}.fa-file-powerpoint-o:before{content:&quot;\f1c4&quot;}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:&quot;\f1c5&quot;}.fa-file-zip-o:before,.fa-file-archive-o:before{content:&quot;\f1c6&quot;}.fa-file-sound-o:before,.fa-file-audio-o:before{content:&quot;\f1c7&quot;}.fa-file-movie-o:before,.fa-file-video-o:before{content:&quot;\f1c8&quot;}.fa-file-code-o:before{content:&quot;\f1c9&quot;}.fa-vine:before{content:&quot;\f1ca&quot;}.fa-codepen:before{content:&quot;\f1cb&quot;}.fa-jsfiddle:before{content:&quot;\f1cc&quot;}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:&quot;\f1cd&quot;}.fa-circle-o-notch:before{content:&quot;\f1ce&quot;}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:&quot;\f1d0&quot;}.fa-ge:before,.fa-empire:before{content:&quot;\f1d1&quot;}.fa-git-square:before{content:&quot;\f1d2&quot;}.fa-git:before{content:&quot;\f1d3&quot;}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:&quot;\f1d4&quot;}.fa-tencent-weibo:before{content:&quot;\f1d5&quot;}.fa-qq:before{content:&quot;\f1d6&quot;}.fa-wechat:before,.fa-weixin:before{content:&quot;\f1d7&quot;}.fa-send:before,.fa-paper-plane:before{content:&quot;\f1d8&quot;}.fa-send-o:before,.fa-paper-plane-o:before{content:&quot;\f1d9&quot;}.fa-history:before{content:&quot;\f1da&quot;}.fa-circle-thin:before{content:&quot;\f1db&quot;}.fa-header:before{content:&quot;\f1dc&quot;}.fa-paragraph:before{content:&quot;\f1dd&quot;}.fa-sliders:before{content:&quot;\f1de&quot;}.fa-share-alt:before{content:&quot;\f1e0&quot;}.fa-share-alt-square:before{content:&quot;\f1e1&quot;}.fa-bomb:before{content:&quot;\f1e2&quot;}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:&quot;\f1e3&quot;}.fa-tty:before{content:&quot;\f1e4&quot;}.fa-binoculars:before{content:&quot;\f1e5&quot;}.fa-plug:before{content:&quot;\f1e6&quot;}.fa-slideshare:before{content:&quot;\f1e7&quot;}.fa-twitch:before{content:&quot;\f1e8&quot;}.fa-yelp:before{content:&quot;\f1e9&quot;}.fa-newspaper-o:before{content:&quot;\f1ea&quot;}.fa-wifi:before{content:&quot;\f1eb&quot;}.fa-calculator:before{content:&quot;\f1ec&quot;}.fa-paypal:before{content:&quot;\f1ed&quot;}.fa-google-wallet:before{content:&quot;\f1ee&quot;}.fa-cc-visa:before{content:&quot;\f1f0&quot;}.fa-cc-mastercard:before{content:&quot;\f1f1&quot;}.fa-cc-discover:before{content:&quot;\f1f2&quot;}.fa-cc-amex:before{content:&quot;\f1f3&quot;}.fa-cc-paypal:before{content:&quot;\f1f4&quot;}.fa-cc-stripe:before{content:&quot;\f1f5&quot;}.fa-bell-slash:before{content:&quot;\f1f6&quot;}.fa-bell-slash-o:before{content:&quot;\f1f7&quot;}.fa-trash:before{content:&quot;\f1f8&quot;}.fa-copyright:before{content:&quot;\f1f9&quot;}.fa-at:before{content:&quot;\f1fa&quot;}.fa-eyedropper:before{content:&quot;\f1fb&quot;}.fa-paint-brush:before{content:&quot;\f1fc&quot;}.fa-birthday-cake:before{content:&quot;\f1fd&quot;}.fa-area-chart:before{content:&quot;\f1fe&quot;}.fa-pie-chart:before{content:&quot;\f200&quot;}.fa-line-chart:before{content:&quot;\f201&quot;}.fa-lastfm:before{content:&quot;\f202&quot;}.fa-lastfm-square:before{content:&quot;\f203&quot;}.fa-toggle-off:before{content:&quot;\f204&quot;}.fa-toggle-on:before{content:&quot;\f205&quot;}.fa-bicycle:before{content:&quot;\f206&quot;}.fa-bus:before{content:&quot;\f207&quot;}.fa-ioxhost:before{content:&quot;\f208&quot;}.fa-angellist:before{content:&quot;\f209&quot;}.fa-cc:before{content:&quot;\f20a&quot;}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:&quot;\f20b&quot;}.fa-meanpath:before{content:&quot;\f20c&quot;}.fa-buysellads:before{content:&quot;\f20d&quot;}.fa-connectdevelop:before{content:&quot;\f20e&quot;}.fa-dashcube:before{content:&quot;\f210&quot;}.fa-forumbee:before{content:&quot;\f211&quot;}.fa-leanpub:before{content:&quot;\f212&quot;}.fa-sellsy:before{content:&quot;\f213&quot;}.fa-shirtsinbulk:before{content:&quot;\f214&quot;}.fa-simplybuilt:before{content:&quot;\f215&quot;}.fa-skyatlas:before{content:&quot;\f216&quot;}.fa-cart-plus:before{content:&quot;\f217&quot;}.fa-cart-arrow-down:before{content:&quot;\f218&quot;}.fa-diamond:before{content:&quot;\f219&quot;}.fa-ship:before{content:&quot;\f21a&quot;}.fa-user-secret:before{content:&quot;\f21b&quot;}.fa-motorcycle:before{content:&quot;\f21c&quot;}.fa-street-view:before{content:&quot;\f21d&quot;}.fa-heartbeat:before{content:&quot;\f21e&quot;}.fa-venus:before{content:&quot;\f221&quot;}.fa-mars:before{content:&quot;\f222&quot;}.fa-mercury:before{content:&quot;\f223&quot;}.fa-intersex:before,.fa-transgender:before{content:&quot;\f224&quot;}.fa-transgender-alt:before{content:&quot;\f225&quot;}.fa-venus-double:before{content:&quot;\f226&quot;}.fa-mars-double:before{content:&quot;\f227&quot;}.fa-venus-mars:before{content:&quot;\f228&quot;}.fa-mars-stroke:before{content:&quot;\f229&quot;}.fa-mars-stroke-v:before{content:&quot;\f22a&quot;}.fa-mars-stroke-h:before{content:&quot;\f22b&quot;}.fa-neuter:before{content:&quot;\f22c&quot;}.fa-genderless:before{content:&quot;\f22d&quot;}.fa-facebook-official:before{content:&quot;\f230&quot;}.fa-pinterest-p:before{content:&quot;\f231&quot;}.fa-whatsapp:before{content:&quot;\f232&quot;}.fa-server:before{content:&quot;\f233&quot;}.fa-user-plus:before{content:&quot;\f234&quot;}.fa-user-times:before{content:&quot;\f235&quot;}.fa-hotel:before,.fa-bed:before{content:&quot;\f236&quot;}.fa-viacoin:before{content:&quot;\f237&quot;}.fa-train:before{content:&quot;\f238&quot;}.fa-subway:before{content:&quot;\f239&quot;}.fa-medium:before{content:&quot;\f23a&quot;}.fa-yc:before,.fa-y-combinator:before{content:&quot;\f23b&quot;}.fa-optin-monster:before{content:&quot;\f23c&quot;}.fa-opencart:before{content:&quot;\f23d&quot;}.fa-expeditedssl:before{content:&quot;\f23e&quot;}.fa-battery-4:before,.fa-battery-full:before{content:&quot;\f240&quot;}.fa-battery-3:before,.fa-battery-three-quarters:before{content:&quot;\f241&quot;}.fa-battery-2:before,.fa-battery-half:before{content:&quot;\f242&quot;}.fa-battery-1:before,.fa-battery-quarter:before{content:&quot;\f243&quot;}.fa-battery-0:before,.fa-battery-empty:before{content:&quot;\f244&quot;}.fa-mouse-pointer:before{content:&quot;\f245&quot;}.fa-i-cursor:before{content:&quot;\f246&quot;}.fa-object-group:before{content:&quot;\f247&quot;}.fa-object-ungroup:before{content:&quot;\f248&quot;}.fa-sticky-note:before{content:&quot;\f249&quot;}.fa-sticky-note-o:before{content:&quot;\f24a&quot;}.fa-cc-jcb:before{content:&quot;\f24b&quot;}.fa-cc-diners-club:before{content:&quot;\f24c&quot;}.fa-clone:before{content:&quot;\f24d&quot;}.fa-balance-scale:before{content:&quot;\f24e&quot;}.fa-hourglass-o:before{content:&quot;\f250&quot;}.fa-hourglass-1:before,.fa-hourglass-start:before{content:&quot;\f251&quot;}.fa-hourglass-2:before,.fa-hourglass-half:before{content:&quot;\f252&quot;}.fa-hourglass-3:before,.fa-hourglass-end:before{content:&quot;\f253&quot;}.fa-hourglass:before{content:&quot;\f254&quot;}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:&quot;\f255&quot;}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:&quot;\f256&quot;}.fa-hand-scissors-o:before{content:&quot;\f257&quot;}.fa-hand-lizard-o:before{content:&quot;\f258&quot;}.fa-hand-spock-o:before{content:&quot;\f259&quot;}.fa-hand-pointer-o:before{content:&quot;\f25a&quot;}.fa-hand-peace-o:before{content:&quot;\f25b&quot;}.fa-trademark:before{content:&quot;\f25c&quot;}.fa-registered:before{content:&quot;\f25d&quot;}.fa-creative-commons:before{content:&quot;\f25e&quot;}.fa-gg:before{content:&quot;\f260&quot;}.fa-gg-circle:before{content:&quot;\f261&quot;}.fa-tripadvisor:before{content:&quot;\f262&quot;}.fa-odnoklassniki:before{content:&quot;\f263&quot;}.fa-odnoklassniki-square:before{content:&quot;\f264&quot;}.fa-get-pocket:before{content:&quot;\f265&quot;}.fa-wikipedia-w:before{content:&quot;\f266&quot;}.fa-safari:before{content:&quot;\f267&quot;}.fa-chrome:before{content:&quot;\f268&quot;}.fa-firefox:before{content:&quot;\f269&quot;}.fa-opera:before{content:&quot;\f26a&quot;}.fa-internet-explorer:before{content:&quot;\f26b&quot;}.fa-tv:before,.fa-television:before{content:&quot;\f26c&quot;}.fa-contao:before{content:&quot;\f26d&quot;}.fa-500px:before{content:&quot;\f26e&quot;}.fa-amazon:before{content:&quot;\f270&quot;}.fa-calendar-plus-o:before{content:&quot;\f271&quot;}.fa-calendar-minus-o:before{content:&quot;\f272&quot;}.fa-calendar-times-o:before{content:&quot;\f273&quot;}.fa-calendar-check-o:before{content:&quot;\f274&quot;}.fa-industry:before{content:&quot;\f275&quot;}.fa-map-pin:before{content:&quot;\f276&quot;}.fa-map-signs:before{content:&quot;\f277&quot;}.fa-map-o:before{content:&quot;\f278&quot;}.fa-map:before{content:&quot;\f279&quot;}.fa-commenting:before{content:&quot;\f27a&quot;}.fa-commenting-o:before{content:&quot;\f27b&quot;}.fa-houzz:before{content:&quot;\f27c&quot;}.fa-vimeo:before{content:&quot;\f27d&quot;}.fa-black-tie:before{content:&quot;\f27e&quot;}.fa-fonticons:before{content:&quot;\f280&quot;}.fa-reddit-alien:before{content:&quot;\f281&quot;}.fa-edge:before{content:&quot;\f282&quot;}.fa-credit-card-alt:before{content:&quot;\f283&quot;}.fa-codiepie:before{content:&quot;\f284&quot;}.fa-modx:before{content:&quot;\f285&quot;}.fa-fort-awesome:before{content:&quot;\f286&quot;}.fa-usb:before{content:&quot;\f287&quot;}.fa-product-hunt:before{content:&quot;\f288&quot;}.fa-mixcloud:before{content:&quot;\f289&quot;}.fa-scribd:before{content:&quot;\f28a&quot;}.fa-pause-circle:before{content:&quot;\f28b&quot;}.fa-pause-circle-o:before{content:&quot;\f28c&quot;}.fa-stop-circle:before{content:&quot;\f28d&quot;}.fa-stop-circle-o:before{content:&quot;\f28e&quot;}.fa-shopping-bag:before{content:&quot;\f290&quot;}.fa-shopping-basket:before{content:&quot;\f291&quot;}.fa-hashtag:before{content:&quot;\f292&quot;}.fa-bluetooth:before{content:&quot;\f293&quot;}.fa-bluetooth-b:before{content:&quot;\f294&quot;}.fa-percent:before{content:&quot;\f295&quot;}.fa-gitlab:before{content:&quot;\f296&quot;}.fa-wpbeginner:before{content:&quot;\f297&quot;}.fa-wpforms:before{content:&quot;\f298&quot;}.fa-envira:before{content:&quot;\f299&quot;}.fa-universal-access:before{content:&quot;\f29a&quot;}.fa-wheelchair-alt:before{content:&quot;\f29b&quot;}.fa-question-circle-o:before{content:&quot;\f29c&quot;}.fa-blind:before{content:&quot;\f29d&quot;}.fa-audio-description:before{content:&quot;\f29e&quot;}.fa-volume-control-phone:before{content:&quot;\f2a0&quot;}.fa-braille:before{content:&quot;\f2a1&quot;}.fa-assistive-listening-systems:before{content:&quot;\f2a2&quot;}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:&quot;\f2a3&quot;}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:&quot;\f2a4&quot;}.fa-glide:before{content:&quot;\f2a5&quot;}.fa-glide-g:before{content:&quot;\f2a6&quot;}.fa-signing:before,.fa-sign-language:before{content:&quot;\f2a7&quot;}.fa-low-vision:before{content:&quot;\f2a8&quot;}.fa-viadeo:before{content:&quot;\f2a9&quot;}.fa-viadeo-square:before{content:&quot;\f2aa&quot;}.fa-snapchat:before{content:&quot;\f2ab&quot;}.fa-snapchat-ghost:before{content:&quot;\f2ac&quot;}.fa-snapchat-square:before{content:&quot;\f2ad&quot;}.fa-pied-piper:before{content:&quot;\f2ae&quot;}.fa-first-order:before{content:&quot;\f2b0&quot;}.fa-yoast:before{content:&quot;\f2b1&quot;}.fa-themeisle:before{content:&quot;\f2b2&quot;}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:&quot;\f2b3&quot;}.fa-fa:before,.fa-font-awesome:before{content:&quot;\f2b4&quot;}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}

=====================================================
== File: src/homepage/assets/css/main.css
=====================================================
@import url(font-awesome.min.css);
@import &quot;https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400&quot;;
@import url('https://fonts.googleapis.com/css?family=Poppins');

/*
	Stellar by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/

/* Reset */

	html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
		margin: 0;
		padding: 0;
		border: 0;
		font-size: 12pt;
		font-family: &quot;Poppins&quot;, Helvetica, sans-serif;
		vertical-align: baseline;
	}

	article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
		display: block;
	}

	body {
		line-height: 1;
	}

	ol, ul {
		list-style: none;
	}

	blockquote, q {
		quotes: none;
	}

	blockquote:before, blockquote:after, q:before, q:after {
		content: '';
		content: none;
	}

	table {
		border-collapse: collapse;
		border-spacing: 0;
	}

	body {
		-webkit-text-size-adjust: none;
	}

=====================================================
== File: src/homepage/assets/css/lity.min.css
=====================================================
/*! Lity - v2.2.2 - 2016-12-14
* http://sorgalla.com/lity/
* Copyright (c) 2015-2016 Jan Sorgalla; Licensed MIT */.lity{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;white-space:nowrap;background:#0b0b0b;background:rgba(0,0,0,0.9);outline:none !important;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity.lity-opened{opacity:1}.lity.lity-closed{opacity:0}.lity *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lity-wrap{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;text-align:center;outline:none !important}.lity-wrap:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-0.25em}.lity-loader{z-index:9991;color:#fff;position:absolute;top:50%;margin-top:-0.8em;width:100%;text-align:center;font-size:14px;font-family:Arial,Helvetica,sans-serif;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity-loading .lity-loader{opacity:1}.lity-container{z-index:9992;position:relative;text-align:left;vertical-align:middle;display:inline-block;white-space:normal;max-width:100%;max-height:100%;outline:none !important}.lity-content{z-index:9993;width:100%;-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1);-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;-o-transition:-o-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease, -webkit-transform .3s ease, -o-transform .3s ease}.lity-loading .lity-content,.lity-closed .lity-content{-webkit-transform:scale(.8);-ms-transform:scale(.8);-o-transform:scale(.8);transform:scale(.8)}.lity-content:after{content:'';position:absolute;left:0;top:0;bottom:0;display:block;right:0;width:auto;height:auto;z-index:-1;-webkit-box-shadow:0 0 8px rgba(0,0,0,0.6);box-shadow:0 0 8px rgba(0,0,0,0.6)}.lity-close{z-index:9994;width:35px;height:35px;position:fixed;right:0;top:0;-webkit-appearance:none;cursor:pointer;text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,0.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close::-moz-focus-inner{border:0;padding:0}.lity-close:hover,.lity-close:focus,.lity-close:active,.lity-close:visited{text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,0.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close:active{top:1px}.lity-image img{max-width:100%;display:block;line-height:0;border:0}.lity-iframe .lity-container,.lity-youtube .lity-container,.lity-vimeo .lity-container,.lity-facebookvideo .lity-container,.lity-googlemaps .lity-container{width:100%;max-width:964px}.lity-iframe-container{width:100%;height:0;padding-top:56.25%;overflow:auto;pointer-events:auto;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-overflow-scrolling:touch}.lity-iframe-container iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;-webkit-box-shadow:0 0 8px rgba(0,0,0,0.6);box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}.lity-hide{display:none}

=====================================================
== File: src/homepage/assets/css/ie8.css
=====================================================
/*
	Stellar by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/

/* Type */

	body {
		color: #ffffff;
	}

/* Button */

	.button {
		position: relative;
		border: solid 1px !important;
	}

		.button.special {
			border: none !important;
		}

/* Icon */

	.icon.major {
		-ms-behavior: url(&quot;assets/js/ie/PIE.htc&quot;);
	}

		.icon.major:before {
			font-size: 4em;
			border: 0;
		}

/* Spotlight */

	.spotlight .image {
		position: relative;
		-ms-behavior: url(&quot;assets/js/ie/PIE.htc&quot;);
	}

		.spotlight .image img {
			position: relative;
			-ms-behavior: url(&quot;assets/js/ie/PIE.htc&quot;);
		}

/* Features */

	.features li {
		width: 29%;

=====================================================
== File: src/homepage/assets/css/ie9.css
=====================================================
/*
	Stellar by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/

/* Spotlight */

	.spotlight:after {
		content: '';
		display: block;
		clear: both;
	}

	.spotlight .content {
		float: left;
		width: 60%;
	}

	.spotlight .image {
		float: left;
	}

/* Features */

	.features:after {
		content: '';
		display: block;
		clear: both;
	}

	.features li {
		float: left;
	}

/* Statistics */

	.statistics {
		display: inline-block;
	}

		.statistics:after {
			content: '';
			display: block;
			clear: both;
		}

		.statistics li {
			float: left;
			padding: 1.5em 2.5em;

=====================================================
== File: src/homepage/assets/css/test.html
=====================================================
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; id=&quot;Calque_1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;841.89px&quot; height=&quot;595.28px&quot; viewBox=&quot;0 0 841.89 595.28&quot; enable-background=&quot;new 0 0 841.89 595.28&quot; xml:space=&quot;preserve&quot;&gt;
&lt;circle fill=&quot;#FFFFFF&quot; cx=&quot;672.754&quot; cy=&quot;148.406&quot; r=&quot;66.5&quot;/&gt;
&lt;g&gt;
  &lt;path fill=&quot;#E64821&quot; d=&quot;M718.72,121.022c-3.564-2.383-7.259-4.322-11.117-5.314c-3.85-1.014-7.823-0.778-11.496,0.742l-0.691,0.288   l-0.342,0.154l-0.169,0.079l-0.087,0.04l-0.042,0.02l-0.022,0.01c0.022-0.015-0.064,0.039,0.048-0.031l-0.011,0.006   c-0.5,0.313-0.969,0.572-1.462,0.83c-0.978,0.509-1.981,0.965-3.021,1.341c-2.077,0.729-4.318,1.242-6.619,0.96   c-1.14-0.15-2.273-0.547-3.228-1.208c-0.954-0.659-1.714-1.552-2.235-2.532c-1.052-1.972-1.373-4.147-1.439-6.262   c0.386,2.077,0.973,4.162,2.13,5.836c0.581,0.827,1.298,1.534,2.146,1.999c0.842,0.471,1.794,0.699,2.763,0.743   c1.946,0.094,3.931-0.496,5.777-1.31c0.931-0.407,1.84-0.872,2.715-1.393c0.433-0.256,0.877-0.537,1.262-0.808l0.763-0.498   c0.242-0.141,0.476-0.302,0.729-0.428c1.985-1.068,4.221-1.805,6.523-1.96c2.296-0.168,4.614,0.158,6.75,0.882   c2.142,0.716,4.112,1.807,5.864,3.129C715.953,117.664,717.52,119.218,718.72,121.022z&quot;/&gt;
  &lt;g&gt;
    &lt;path fill=&quot;none&quot; d=&quot;M637.856,139.139c-0.337,0.258,9.157,11.617,23.405,22.405c4.192,3.205,8.29,5.973,11.994,8.286    c0.281-0.416,0.542-0.842,0.787-1.279c-3.608-2.39-7.623-5.184-11.763-8.348C648.18,149.535,638.222,138.782,637.856,139.139z&quot;/&gt;

      &lt;linearGradient id=&quot;SVGID_5_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;1192.2021&quot; y1=&quot;229.4492&quot; x2=&quot;1234.9417&quot; y2=&quot;229.4492&quot; gradientTransform=&quot;matrix(-0.1008 -0.9949 0.9949 -0.1008 547.1743 1381.7705)&quot;&gt;
      &lt;stop offset=&quot;0&quot; style=&quot;stop-color:#FCC30E&quot;/&gt;
      &lt;stop offset=&quot;0.4969&quot; style=&quot;stop-color:#E64821&quot;/&gt;
      &lt;stop offset=&quot;1&quot; style=&quot;stop-color:#E42328&quot;/&gt;
    &lt;/linearGradient&gt;
    &lt;path fill=&quot;url(#SVGID_5_)&quot; d=&quot;M659.708,160.542c-14.247-10.789-23.741-22.147-23.405-22.406    c0.366-0.357,10.323,10.396,24.424,21.064c4.14,3.164,8.154,5.958,11.763,8.348c0.048-0.086,0.104-0.168,0.152-0.256    c0.592-1.131,1.046-2.347,1.401-3.617c-2.531-5.059-8.833-12.067-16.158-18.494c-1.629-1.413-3.325-2.666-5.04-3.792    c-0.373,3.018-1.118,5.178-1.123,5.177c0,0-0.831-2.873-0.76-6.369c-1.156-0.697-2.313-1.347-3.463-1.94    c-0.011,3.443-1.033,6.021-1.038,6.022c0,0.007-2.07-3.492-2.291-7.581c-0.003-0.026-0.003-0.052-0.003-0.076    c-6.875-3.16-12.671-4.681-12.682-4.666c-0.062-0.155,0.428,14.595,11.28,25.836c0.366-0.022,0.735-0.04,1.114-0.039    c3.946,0.008,7.317,1.426,7.323,1.425c0-0.003-2.075,1.235-5.106,1.653c1.103,0.882,2.235,1.681,3.39,2.406    c2.854-1.034,5.221-1.376,5.221-1.376c0-0.005-1.248,1.226-3.314,2.506c7.54,4.161,14.378,6.28,18.711,6.479    c0.586-0.64,1.121-1.313,1.599-2.021C667.998,166.515,663.901,163.747,659.708,160.542z&quot;/&gt;
    &lt;path fill=&quot;#E42328&quot; d=&quot;M710.524,120.843c-2.746,0.231-5.496,0.723-8.203,1.497c-5.401,1.538-10.711,4.256-15.061,8.381    c-2.191,2.033-4.073,4.437-5.644,7.024c-1.523,2.615-2.755,5.412-3.551,8.303c-0.82,2.884-1.311,5.83-1.479,8.755    c-0.05,0.721-0.077,1.467-0.096,2.221l-0.017,1.005l-0.024,0.862c-0.029,1.145-0.127,2.268-0.303,3.355    c-0.138,0.833-0.329,1.64-0.552,2.429c-0.354,1.27-0.809,2.486-1.4,3.618c-0.048,0.087-0.105,0.169-0.152,0.255    c-0.245,0.438-0.506,0.864-0.787,1.279c-0.479,0.708-1.013,1.381-1.6,2.021c-0.423,0.461-0.865,0.91-1.347,1.333    c-3.241,2.849-7.697,4.804-12.477,6.061c-4.796,1.275-9.926,1.944-15.132,2.303c-5.218,0.352-10.52,0.408-15.913,0.276    c5.027,2.018,10.327,3.3,15.735,4.109c5.415,0.774,10.986,1.024,16.65,0.312c2.825-0.373,5.682-0.975,8.496-1.973    c2.801-1.005,5.597-2.373,8.113-4.309c2.525-1.907,4.765-4.373,6.386-7.192c0.82-1.403,1.494-2.88,2.035-4.386    c0.519-1.511,0.908-3.049,1.171-4.583c0.269-1.535,0.419-3.065,0.479-4.578c0.019-0.379,0.017-0.755,0.021-1.132l0.002-0.989    c0.005-0.574,0.018-1.158,0.049-1.764c0.129-2.384,0.416-4.727,0.939-6.99c1.039-4.525,3.008-8.727,5.973-12.363    c2.961-3.634,6.877-6.692,11.314-9.149c4.449-2.453,9.354-4.38,14.567-5.816C716.026,120.628,713.268,120.607,710.524,120.843z&quot;/&gt;
  &lt;/g&gt;
&lt;/g&gt;
&lt;/svg&gt;

=====================================================
== File: src/homepage/assets/css/lightbox.css
=====================================================
/* Preload images */
body:after {
  content: url(../images/close.png) url(../images/loading.gif) url(../images/prev.png) url(../images/next.png);
  display: none;
}

body.lb-disable-scrolling {
  overflow: hidden;
}

.lightboxOverlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: black;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
  opacity: 0.8;
  display: none;
}

.lightbox {
  position: absolute;
  left: 0;
  width: 100%;
  z-index: 10000;
  text-align: center;
  line-height: 0;
  font-weight: normal;
}

.lightbox .lb-image {
  display: block;
  height: auto;
  max-width: inherit;
  border-radius: 3px;
}

.lightbox a img {
  border: none;
}

.lb-outerContainer {
  position: relative;
  background-color: white;
  *zoom: 1;
  width: 250px;
  height: 250px;
  margin: 0 auto;
  border-radius: 4px;

=====================================================
== File: src/homepage/assets/fonts/fontawesome-webfont.svg
=====================================================
&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
&lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.1//EN&quot; &quot;http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&quot; &gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
&lt;metadata&gt;&lt;/metadata&gt;
&lt;defs&gt;
&lt;font id=&quot;fontawesomeregular&quot; horiz-adv-x=&quot;1536&quot; &gt;
&lt;font-face units-per-em=&quot;1792&quot; ascent=&quot;1536&quot; descent=&quot;-256&quot; /&gt;
&lt;missing-glyph horiz-adv-x=&quot;448&quot; /&gt;
&lt;glyph unicode=&quot; &quot;  horiz-adv-x=&quot;448&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x09;&quot; horiz-adv-x=&quot;448&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xa0;&quot; horiz-adv-x=&quot;448&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xa8;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xa9;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xae;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xb4;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xc6;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xd8;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2000;&quot; horiz-adv-x=&quot;768&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2001;&quot; horiz-adv-x=&quot;1537&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2002;&quot; horiz-adv-x=&quot;768&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2003;&quot; horiz-adv-x=&quot;1537&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2004;&quot; horiz-adv-x=&quot;512&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2005;&quot; horiz-adv-x=&quot;384&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2006;&quot; horiz-adv-x=&quot;256&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2007;&quot; horiz-adv-x=&quot;256&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2008;&quot; horiz-adv-x=&quot;192&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2009;&quot; horiz-adv-x=&quot;307&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x200a;&quot; horiz-adv-x=&quot;85&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x202f;&quot; horiz-adv-x=&quot;307&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x205f;&quot; horiz-adv-x=&quot;384&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2122;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x221e;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2260;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x25fc;&quot; horiz-adv-x=&quot;500&quot; d=&quot;M0 0z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf000;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf001;&quot; d=&quot;M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf002;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf003;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf004;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf005;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf006;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf007;&quot; horiz-adv-x=&quot;1408&quot; d=&quot;M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf008;&quot; horiz-adv-x=&quot;1920&quot; d=&quot;M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf009;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf00a;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf00b;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf00c;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf00d;&quot; horiz-adv-x=&quot;1408&quot; d=&quot;M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf00e;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf010;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z &quot; /&gt;

=====================================================
== File: src/homepage/assets/js/main.js
=====================================================
/*
	Stellar by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/

(function($) {

	skel.breakpoints({
		xlarge: '(max-width: 1680px)',
		large: '(max-width: 1280px)',
		medium: '(max-width: 980px)',
		small: '(max-width: 736px)',
		xsmall: '(max-width: 480px)',
		xxsmall: '(max-width: 360px)'
	});

	$(function() {

		var	$window = $(window),
			$body = $('body'),
			$main = $('#main');

		// Disable animations/transitions until the page has loaded.
			$body.addClass('is-loading');

			$window.on('load', function() {
				window.setTimeout(function() {
					$body.removeClass('is-loading');
				}, 100);
			});

		// Fix: Placeholder polyfill.
			$('form').placeholder();

		// Prioritize &quot;important&quot; elements on medium.
			skel.on('+medium -medium', function() {
				$.prioritize(
					'.important\\28 medium\\29',
					skel.breakpoint('medium').active
				);
			});

		// Nav.
			var $nav = $('#nav');

			if ($nav.length &gt; 0) {

				// Shrink effect.
					$main

=====================================================
== File: src/homepage/assets/js/github-fetch.js
=====================================================
let repositoryInfo = {};
let allContributors = [];
const repositoryUrl = &quot;https://api.github.com/repos/apache/james-project&quot;;

function getAllCollaborators(callback) {
  if (allContributors.length &gt; 0) {
    callback(allContributors);
  } else {
    $.get(repositoryInfo.contributors_url, function(contributors) {
      allContributors = contributors;
      callback(contributors);
    });
  }
}

function getListContributorDom(contributors) {
  let list = &quot;&quot;;
  contributors.sort(function(a, b){
    if(a.login.toLowerCase() &lt; b.login.toLowerCase()) return -1;
    if(a.login.toLowerCase() &gt; b.login.toLowerCase()) return 1;
    return 0;
  });
  for (contributor of contributors) {
    list += `&lt;li class=&quot;contributor-card&quot;&gt;&lt;a href=&quot;` + contributor.html_url + `&quot; alt=&quot;` + contributor.login + ` github account&quot;&gt;&lt;span class=&quot;image contributor-avatar&quot;&gt;&lt;img src=&quot;` + contributor.avatar_url + `&quot;&gt;&lt;/span&gt;&lt;span class=&quot;icon fa-github&quot;&gt;&lt;/span&gt;` + contributor.login + `&lt;/a&gt;&lt;/li&gt;`;
  }
  return list;
}

function getTotalCommit(callback) {
  $.get(&quot;https://api.github.com/repos/apache/james-project/stats/commit_activity&quot;, function(data) {
    let total = 0;
    for(week of data) {
      total += week.total;
    }
    callback(total);
  });
}

$(document).ready(function () {
  $.get(repositoryUrl, function(repository) {
    repositoryInfo = repository;
    getAllCollaborators(function(collabs) {
      $('#contributor-num').append(collabs.length);
      let contributors = getListContributorDom(collabs);
      $('#contributor-list').append(contributors);
    });
    getTotalCommit(function(commits) {
      $('#commit-num').append(commits);
    });
    $('#fork-num').append(repositoryInfo.forks_count);

=====================================================
== File: src/homepage/assets/js/jquery.min.js
=====================================================
/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */
!function(a,b){&quot;object&quot;==typeof module&amp;&amp;&quot;object&quot;==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error(&quot;jQuery requires a window with a document&quot;);return b(a)}:b(a)}(&quot;undefined&quot;!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=&quot;1.11.3&quot;,m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:&quot;&quot;,length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0&gt;a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0&gt;a?b:0);return this.pushStack(c&gt;=0&amp;&amp;b&gt;c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for(&quot;boolean&quot;==typeof g&amp;&amp;(j=g,g=arguments[h]||{},h++),&quot;object&quot;==typeof g||m.isFunction(g)||(g={}),h===i&amp;&amp;(g=this,h--);i&gt;h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&amp;&amp;(j&amp;&amp;c&amp;&amp;(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&amp;&amp;m.isArray(a)?a:[]):f=a&amp;&amp;m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&amp;&amp;(g[d]=c));return g},m.extend({expando:&quot;jQuery&quot;+(l+Math.random()).replace(/\D/g,&quot;&quot;),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return&quot;function&quot;===m.type(a)},isArray:Array.isArray||function(a){return&quot;array&quot;===m.type(a)},isWindow:function(a){return null!=a&amp;&amp;a==a.window},isNumeric:function(a){return!m.isArray(a)&amp;&amp;a-parseFloat(a)+1&gt;=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||&quot;object&quot;!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&amp;&amp;!j.call(a,&quot;constructor&quot;)&amp;&amp;!j.call(a.constructor.prototype,&quot;isPrototypeOf&quot;))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+&quot;&quot;:&quot;object&quot;==typeof a||&quot;function&quot;==typeof a?h[i.call(a)]||&quot;object&quot;:typeof a},globalEval:function(b){b&amp;&amp;m.trim(b)&amp;&amp;(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,&quot;ms-&quot;).replace(p,q)},nodeName:function(a,b){return a.nodeName&amp;&amp;a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f&gt;e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f&gt;e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?&quot;&quot;:(a+&quot;&quot;).replace(n,&quot;&quot;)},makeArray:function(a,b){var c=b||[];return null!=a&amp;&amp;(r(Object(a))?m.merge(c,&quot;string&quot;==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0&gt;c?Math.max(0,d+c):c:0;d&gt;c;c++)if(c in b&amp;&amp;b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c&gt;d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g&gt;f;f++)d=!b(a[f],f),d!==h&amp;&amp;e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g&gt;f;f++)d=b(a[f],f,c),null!=d&amp;&amp;i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&amp;&amp;i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return&quot;string&quot;==typeof b&amp;&amp;(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each(&quot;Boolean Number String Function Array Date RegExp Object Error&quot;.split(&quot; &quot;),function(a,b){h[&quot;[object &quot;+b+&quot;]&quot;]=b.toLowerCase()});function r(a){var b=&quot;length&quot;in a&amp;&amp;a.length,c=m.type(a);return&quot;function&quot;===c||m.isWindow(a)?!1:1===a.nodeType&amp;&amp;b?!0:&quot;array&quot;===c||0===b||&quot;number&quot;==typeof b&amp;&amp;b&gt;0&amp;&amp;b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=&quot;sizzle&quot;+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&amp;&amp;(l=!0),0},C=1&lt;&lt;31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d&gt;c;c++)if(a[c]===b)return c;return-1},K=&quot;checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped&quot;,L=&quot;[\\x20\\t\\r\\n\\f]&quot;,M=&quot;(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+&quot;,N=M.replace(&quot;w&quot;,&quot;w#&quot;),O=&quot;\\[&quot;+L+&quot;*(&quot;+M+&quot;)(?:&quot;+L+&quot;*([*^$|!~]?=)&quot;+L+&quot;*(?:'((?:\\\\.|[^\\\\'])*)'|\&quot;((?:\\\\.|[^\\\\\&quot;])*)\&quot;|(&quot;+N+&quot;))|)&quot;+L+&quot;*\\]&quot;,P=&quot;:(&quot;+M+&quot;)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\&quot;((?:\\\\.|[^\\\\\&quot;])*)\&quot;)|((?:\\\\.|[^\\\\()[\\]]|&quot;+O+&quot;)*)|.*)\\)|)&quot;,Q=new RegExp(L+&quot;+&quot;,&quot;g&quot;),R=new RegExp(&quot;^&quot;+L+&quot;+|((?:^|[^\\\\])(?:\\\\.)*)&quot;+L+&quot;+$&quot;,&quot;g&quot;),S=new RegExp(&quot;^&quot;+L+&quot;*,&quot;+L+&quot;*&quot;),T=new RegExp(&quot;^&quot;+L+&quot;*([&gt;+~]|&quot;+L+&quot;)&quot;+L+&quot;*&quot;),U=new RegExp(&quot;=&quot;+L+&quot;*([^\\]'\&quot;]*?)&quot;+L+&quot;*\\]&quot;,&quot;g&quot;),V=new RegExp(P),W=new RegExp(&quot;^&quot;+N+&quot;$&quot;),X={ID:new RegExp(&quot;^#(&quot;+M+&quot;)&quot;),CLASS:new RegExp(&quot;^\\.(&quot;+M+&quot;)&quot;),TAG:new RegExp(&quot;^(&quot;+M.replace(&quot;w&quot;,&quot;w*&quot;)+&quot;)&quot;),ATTR:new RegExp(&quot;^&quot;+O),PSEUDO:new RegExp(&quot;^&quot;+P),CHILD:new RegExp(&quot;^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(&quot;+L+&quot;*(even|odd|(([+-]|)(\\d*)n|)&quot;+L+&quot;*(?:([+-]|)&quot;+L+&quot;*(\\d+)|))&quot;+L+&quot;*\\)|)&quot;,&quot;i&quot;),bool:new RegExp(&quot;^(?:&quot;+K+&quot;)$&quot;,&quot;i&quot;),needsContext:new RegExp(&quot;^&quot;+L+&quot;*[&gt;+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(&quot;+L+&quot;*((?:-\\d)?\\d*)&quot;+L+&quot;*\\)|)(?=[^-]|$)&quot;,&quot;i&quot;)},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp(&quot;\\\\([\\da-f]{1,6}&quot;+L+&quot;?|(&quot;+L+&quot;)|.)&quot;,&quot;ig&quot;),da=function(a,b,c){var d=&quot;0x&quot;+b-65536;return d!==d||c?b:0&gt;d?String.fromCharCode(d+65536):String.fromCharCode(d&gt;&gt;10|55296,1023&amp;d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&amp;&amp;m(b),b=b||n,d=d||[],k=b.nodeType,&quot;string&quot;!=typeof a||!a||1!==k&amp;&amp;9!==k&amp;&amp;11!==k)return d;if(!e&amp;&amp;p){if(11!==k&amp;&amp;(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&amp;&amp;(h=b.ownerDocument.getElementById(j))&amp;&amp;t(b,h)&amp;&amp;h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&amp;&amp;c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&amp;&amp;(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&amp;&amp;a,1===k&amp;&amp;&quot;object&quot;!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute(&quot;id&quot;))?s=r.replace(ba,&quot;\\$&amp;&quot;):b.setAttribute(&quot;id&quot;,s),s=&quot;[id='&quot;+s+&quot;'] &quot;,l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&amp;&amp;pa(b.parentNode)||b,x=o.join(&quot;,&quot;)}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute(&quot;id&quot;)}}}return i(a.replace(R,&quot;$1&quot;),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+&quot; &quot;)&gt;d.cacheLength&amp;&amp;delete b[a.shift()],b[c+&quot; &quot;]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement(&quot;div&quot;);try{return!!a(b)}catch(c){return!1}finally{b.parentNode&amp;&amp;b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split(&quot;|&quot;),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&amp;&amp;a,d=c&amp;&amp;1===a.nodeType&amp;&amp;1===b.nodeType&amp;&amp;(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return&quot;input&quot;===c&amp;&amp;b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return(&quot;input&quot;===c||&quot;button&quot;===c)&amp;&amp;b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&amp;&amp;(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&amp;&amp;&quot;undefined&quot;!=typeof a.getElementsByTagName&amp;&amp;a}c=ga.support={},f=ga.isXML=function(a){var b=a&amp;&amp;(a.ownerDocument||a).documentElement;return b?&quot;HTML&quot;!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&amp;&amp;9===g.nodeType&amp;&amp;g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&amp;&amp;e!==e.top&amp;&amp;(e.addEventListener?e.addEventListener(&quot;unload&quot;,ea,!1):e.attachEvent&amp;&amp;e.attachEvent(&quot;onunload&quot;,ea)),p=!f(g),c.attributes=ja(function(a){return a.className=&quot;i&quot;,!a.getAttribute(&quot;className&quot;)}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment(&quot;&quot;)),!a.getElementsByTagName(&quot;*&quot;).length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(&quot;undefined&quot;!=typeof b.getElementById&amp;&amp;p){var c=b.getElementById(a);return c&amp;&amp;c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute(&quot;id&quot;)===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c=&quot;undefined&quot;!=typeof a.getAttributeNode&amp;&amp;a.getAttributeNode(&quot;id&quot;);return c&amp;&amp;c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return&quot;undefined&quot;!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if(&quot;*&quot;===a){while(c=f[e++])1===c.nodeType&amp;&amp;d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&amp;&amp;function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&amp;&amp;(ja(function(a){o.appendChild(a).innerHTML=&quot;&lt;a id='&quot;+u+&quot;'&gt;&lt;/a&gt;&lt;select id='&quot;+u+&quot;-\f]' msallowcapture=''&gt;&lt;option selected=''&gt;&lt;/option&gt;&lt;/select&gt;&quot;,a.querySelectorAll(&quot;[msallowcapture^='']&quot;).length&amp;&amp;q.push(&quot;[*^$]=&quot;+L+&quot;*(?:''|\&quot;\&quot;)&quot;),a.querySelectorAll(&quot;[selected]&quot;).length||q.push(&quot;\\[&quot;+L+&quot;*(?:value|&quot;+K+&quot;)&quot;),a.querySelectorAll(&quot;[id~=&quot;+u+&quot;-]&quot;).length||q.push(&quot;~=&quot;),a.querySelectorAll(&quot;:checked&quot;).length||q.push(&quot;:checked&quot;),a.querySelectorAll(&quot;a#&quot;+u+&quot;+*&quot;).length||q.push(&quot;.#.+[+~]&quot;)}),ja(function(a){var b=g.createElement(&quot;input&quot;);b.setAttribute(&quot;type&quot;,&quot;hidden&quot;),a.appendChild(b).setAttribute(&quot;name&quot;,&quot;D&quot;),a.querySelectorAll(&quot;[name=d]&quot;).length&amp;&amp;q.push(&quot;name&quot;+L+&quot;*[*^$|!~]?=&quot;),a.querySelectorAll(&quot;:enabled&quot;).length||q.push(&quot;:enabled&quot;,&quot;:disabled&quot;),a.querySelectorAll(&quot;*,:x&quot;),q.push(&quot;,.*:&quot;)})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&amp;&amp;ja(function(a){c.disconnectedMatch=s.call(a,&quot;div&quot;),s.call(a,&quot;[s!='']:x&quot;),r.push(&quot;!=&quot;,P)}),q=q.length&amp;&amp;new RegExp(q.join(&quot;|&quot;)),r=r.length&amp;&amp;new RegExp(r.join(&quot;|&quot;)),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&amp;&amp;b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&amp;&amp;16&amp;a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&amp;d||!c.sortDetached&amp;&amp;b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&amp;&amp;t(v,a)?-1:b===g||b.ownerDocument===v&amp;&amp;t(v,b)?1:k?J(k,a)-J(k,b):0:4&amp;d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&amp;&amp;m(a),b=b.replace(U,&quot;='$1']&quot;),!(!c.matchesSelector||!p||r&amp;&amp;r.test(b)||q&amp;&amp;q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&amp;&amp;11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length&gt;0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&amp;&amp;m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&amp;&amp;m(a);var e=d.attrHandle[b.toLowerCase()],f=e&amp;&amp;D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&amp;&amp;f.specified?f.value:null},ga.error=function(a){throw new Error(&quot;Syntax error, unrecognized expression: &quot;+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&amp;&amp;a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&amp;&amp;(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c=&quot;&quot;,d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if(&quot;string&quot;==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{&quot;&gt;&quot;:{dir:&quot;parentNode&quot;,first:!0},&quot; &quot;:{dir:&quot;parentNode&quot;},&quot;+&quot;:{dir:&quot;previousSibling&quot;,first:!0},&quot;~&quot;:{dir:&quot;previousSibling&quot;}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||&quot;&quot;).replace(ca,da),&quot;~=&quot;===a[2]&amp;&amp;(a[3]=&quot; &quot;+a[3]+&quot; &quot;),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),&quot;nth&quot;===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*(&quot;even&quot;===a[3]||&quot;odd&quot;===a[3])),a[5]=+(a[7]+a[8]||&quot;odd&quot;===a[3])):a[3]&amp;&amp;ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&amp;&amp;a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||&quot;&quot;:c&amp;&amp;V.test(c)&amp;&amp;(b=g(c,!0))&amp;&amp;(b=c.indexOf(&quot;)&quot;,c.length-b)-c.length)&amp;&amp;(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return&quot;*&quot;===a?function(){return!0}:function(a){return a.nodeName&amp;&amp;a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+&quot; &quot;];return b||(b=new RegExp(&quot;(^|&quot;+L+&quot;)&quot;+a+&quot;(&quot;+L+&quot;|$)&quot;))&amp;&amp;y(a,function(a){return b.test(&quot;string&quot;==typeof a.className&amp;&amp;a.className||&quot;undefined&quot;!=typeof a.getAttribute&amp;&amp;a.getAttribute(&quot;class&quot;)||&quot;&quot;)})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?&quot;!=&quot;===b:b?(e+=&quot;&quot;,&quot;=&quot;===b?e===c:&quot;!=&quot;===b?e!==c:&quot;^=&quot;===b?c&amp;&amp;0===e.indexOf(c):&quot;*=&quot;===b?c&amp;&amp;e.indexOf(c)&gt;-1:&quot;$=&quot;===b?c&amp;&amp;e.slice(-c.length)===c:&quot;~=&quot;===b?(&quot; &quot;+e.replace(Q,&quot; &quot;)+&quot; &quot;).indexOf(c)&gt;-1:&quot;|=&quot;===b?e===c||e.slice(0,c.length+1)===c+&quot;-&quot;:!1):!0}},CHILD:function(a,b,c,d,e){var f=&quot;nth&quot;!==a.slice(0,3),g=&quot;last&quot;!==a.slice(-4),h=&quot;of-type&quot;===b;return 1===d&amp;&amp;0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?&quot;nextSibling&quot;:&quot;previousSibling&quot;,q=b.parentNode,r=h&amp;&amp;b.nodeName.toLowerCase(),s=!i&amp;&amp;!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p=&quot;only&quot;===a&amp;&amp;!o&amp;&amp;&quot;nextSibling&quot;}return!0}if(o=[g?q.firstChild:q.lastChild],g&amp;&amp;s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&amp;&amp;j[1],m=j[0]===w&amp;&amp;j[2],l=n&amp;&amp;q.childNodes[n];while(l=++n&amp;&amp;l&amp;&amp;l[p]||(m=n=0)||o.pop())if(1===l.nodeType&amp;&amp;++m&amp;&amp;l===b){k[a]=[w,n,m];break}}else if(s&amp;&amp;(j=(b[u]||(b[u]={}))[a])&amp;&amp;j[0]===w)m=j[1];else while(l=++n&amp;&amp;l&amp;&amp;l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&amp;&amp;++m&amp;&amp;(s&amp;&amp;((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&amp;&amp;m/d&gt;=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error(&quot;unsupported pseudo: &quot;+a);return e[u]?e(b):e.length&gt;1?(c=[a,a,&quot;&quot;,b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,&quot;$1&quot;));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&amp;&amp;(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length&gt;0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)&gt;-1}}),lang:ia(function(a){return W.test(a||&quot;&quot;)||ga.error(&quot;unsupported lang: &quot;+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute(&quot;xml:lang&quot;)||b.getAttribute(&quot;lang&quot;))return c=c.toLowerCase(),c===a||0===c.indexOf(a+&quot;-&quot;);while((b=b.parentNode)&amp;&amp;1===b.nodeType);return!1}}),target:function(b){var c=a.location&amp;&amp;a.location.hash;return c&amp;&amp;c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&amp;&amp;(!n.hasFocus||n.hasFocus())&amp;&amp;!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return&quot;input&quot;===b&amp;&amp;!!a.checked||&quot;option&quot;===b&amp;&amp;!!a.selected},selected:function(a){return a.parentNode&amp;&amp;a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType&lt;6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return&quot;input&quot;===b&amp;&amp;&quot;button&quot;===a.type||&quot;button&quot;===b},text:function(a){var b;return&quot;input&quot;===a.nodeName.toLowerCase()&amp;&amp;&quot;text&quot;===a.type&amp;&amp;(null==(b=a.getAttribute(&quot;type&quot;))||&quot;text&quot;===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0&gt;c?c+b:c]}),even:oa(function(a,b){for(var c=0;b&gt;c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b&gt;c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0&gt;c?c+b:c;--d&gt;=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0&gt;c?c+b:c;++d&lt;b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+&quot; &quot;];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&amp;&amp;(e&amp;&amp;(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&amp;&amp;(c=e.shift(),f.push({value:c,type:e[0].replace(R,&quot; &quot;)}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&amp;&amp;!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d=&quot;&quot;;c&gt;b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&amp;&amp;&quot;parentNode&quot;===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&amp;&amp;a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&amp;&amp;h[0]===w&amp;&amp;h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length&gt;1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e&gt;d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i&gt;h;h++)(f=a[h])&amp;&amp;(!c||c(f,d,e))&amp;&amp;(g.push(f),j&amp;&amp;b.push(h));return g}function wa(a,b,c,d,e,f){return d&amp;&amp;!d[u]&amp;&amp;(d=wa(d)),e&amp;&amp;!e[u]&amp;&amp;(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||&quot;*&quot;,h.nodeType?[h]:h,[]),q=!a||!f&amp;&amp;b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&amp;&amp;c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&amp;&amp;(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&amp;&amp;j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&amp;&amp;(j=e?J(f,l):m[k])&gt;-1&amp;&amp;(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[&quot; &quot;],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)&gt;-1},h,!0),m=[function(a,c,d){var e=!g&amp;&amp;(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f&gt;i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f&gt;e;e++)if(d.relative[a[e].type])break;return wa(i&gt;1&amp;&amp;ta(m),i&gt;1&amp;&amp;ra(a.slice(0,i-1).concat({value:&quot; &quot;===a[i-2].type?&quot;*&quot;:&quot;&quot;})).replace(R,&quot;$1&quot;),c,e&gt;i&amp;&amp;xa(a.slice(i,e)),f&gt;e&amp;&amp;xa(a=a.slice(e)),f&gt;e&amp;&amp;ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length&gt;0,e=a.length&gt;0,f=function(f,g,h,i,k){var l,m,o,p=0,q=&quot;0&quot;,r=f&amp;&amp;[],s=[],t=j,u=f||e&amp;&amp;d.find.TAG(&quot;*&quot;,k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&amp;&amp;(j=g!==n&amp;&amp;g);q!==x&amp;&amp;null!=(l=u[q]);q++){if(e&amp;&amp;l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&amp;&amp;(w=v)}c&amp;&amp;((l=!o&amp;&amp;l)&amp;&amp;p--,f&amp;&amp;r.push(l))}if(p+=q,c&amp;&amp;q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p&gt;0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&amp;&amp;!f&amp;&amp;s.length&gt;0&amp;&amp;p+b.length&gt;1&amp;&amp;ga.uniqueSort(i)}return k&amp;&amp;(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+&quot; &quot;];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n=&quot;function&quot;==typeof a&amp;&amp;a,o=!f&amp;&amp;g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length&gt;2&amp;&amp;&quot;ID&quot;===(k=j[0]).type&amp;&amp;c.getById&amp;&amp;9===b.nodeType&amp;&amp;p&amp;&amp;d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&amp;&amp;(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&amp;&amp;(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&amp;&amp;pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&amp;&amp;ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&amp;&amp;pa(b.parentNode)||b),e},c.sortStable=u.split(&quot;&quot;).sort(B).join(&quot;&quot;)===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&amp;a.compareDocumentPosition(n.createElement(&quot;div&quot;))}),ja(function(a){return a.innerHTML=&quot;&lt;a href='#'&gt;&lt;/a&gt;&quot;,&quot;#&quot;===a.firstChild.getAttribute(&quot;href&quot;)})||ka(&quot;type|href|height|width&quot;,function(a,b,c){return c?void 0:a.getAttribute(b,&quot;type&quot;===b.toLowerCase()?1:2)}),c.attributes&amp;&amp;ja(function(a){return a.innerHTML=&quot;&lt;input/&gt;&quot;,a.firstChild.setAttribute(&quot;value&quot;,&quot;&quot;),&quot;&quot;===a.firstChild.getAttribute(&quot;value&quot;)})||ka(&quot;value&quot;,function(a,b,c){return c||&quot;input&quot;!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute(&quot;disabled&quot;)})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&amp;&amp;d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[&quot;:&quot;]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^&lt;(\w+)\s*\/?&gt;(?:&lt;\/\1&gt;|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if(&quot;string&quot;==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)&gt;=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&amp;&amp;(a=&quot;:not(&quot;+a+&quot;)&quot;),1===b.length&amp;&amp;1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if(&quot;string&quot;!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e&gt;b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e&gt;b;b++)m.find(a,d[b],c);return c=this.pushStack(e&gt;1?m.unique(c):c),c.selector=this.selector?this.selector+&quot; &quot;+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,&quot;string&quot;==typeof a&amp;&amp;t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(&lt;[\w\W]+&gt;)[^&gt;]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if(&quot;string&quot;==typeof a){if(c=&quot;&lt;&quot;===a.charAt(0)&amp;&amp;&quot;&gt;&quot;===a.charAt(a.length-1)&amp;&amp;a.length&gt;=3?[null,a,null]:z.exec(a),!c||!c[1]&amp;&amp;b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&amp;&amp;b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&amp;&amp;m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&amp;&amp;d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?&quot;undefined&quot;!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&amp;&amp;(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&amp;&amp;9!==e.nodeType&amp;&amp;(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&amp;&amp;d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&amp;&amp;a!==b&amp;&amp;c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d&gt;b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||&quot;string&quot;!=typeof a?m(a,b||this.context):0;e&gt;d;d++)for(c=this[d];c&amp;&amp;c!==b;c=c.parentNode)if(c.nodeType&lt;11&amp;&amp;(g?g.index(c)&gt;-1:1===c.nodeType&amp;&amp;m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length&gt;1?m.unique(f):f)},index:function(a){return a?&quot;string&quot;==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&amp;&amp;this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&amp;&amp;1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&amp;&amp;11!==b.nodeType?b:null},parents:function(a){return m.dir(a,&quot;parentNode&quot;)},parentsUntil:function(a,b,c){return m.dir(a,&quot;parentNode&quot;,c)},next:function(a){return D(a,&quot;nextSibling&quot;)},prev:function(a){return D(a,&quot;previousSibling&quot;)},nextAll:function(a){return m.dir(a,&quot;nextSibling&quot;)},prevAll:function(a){return m.dir(a,&quot;previousSibling&quot;)},nextUntil:function(a,b,c){return m.dir(a,&quot;nextSibling&quot;,c)},prevUntil:function(a,b,c){return m.dir(a,&quot;previousSibling&quot;,c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,&quot;iframe&quot;)?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return&quot;Until&quot;!==a.slice(-5)&amp;&amp;(d=c),d&amp;&amp;&quot;string&quot;==typeof d&amp;&amp;(e=m.filter(d,e)),this.length&gt;1&amp;&amp;(C[a]||(e=m.unique(e)),B.test(a)&amp;&amp;(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a=&quot;string&quot;==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&amp;&amp;[],j=function(l){for(c=a.memory&amp;&amp;l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&amp;&amp;e&gt;f;f++)if(h[f].apply(l[0],l[1])===!1&amp;&amp;a.stopOnFalse){c=!1;break}b=!1,h&amp;&amp;(i?i.length&amp;&amp;j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);&quot;function&quot;===d?a.unique&amp;&amp;k.has(c)||h.push(c):c&amp;&amp;c.length&amp;&amp;&quot;string&quot;!==d&amp;&amp;f(c)})}(arguments),b?e=h.length:c&amp;&amp;(g=d,j(c))}return this},remove:function(){return h&amp;&amp;m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))&gt;-1)h.splice(d,1),b&amp;&amp;(e&gt;=d&amp;&amp;e--,f&gt;=d&amp;&amp;f--)}),this},has:function(a){return a?m.inArray(a,h)&gt;-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&amp;&amp;!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[[&quot;resolve&quot;,&quot;done&quot;,m.Callbacks(&quot;once memory&quot;),&quot;resolved&quot;],[&quot;reject&quot;,&quot;fail&quot;,m.Callbacks(&quot;once memory&quot;),&quot;rejected&quot;],[&quot;notify&quot;,&quot;progress&quot;,m.Callbacks(&quot;memory&quot;)]],c=&quot;pending&quot;,d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&amp;&amp;a[b];e[f[1]](function(){var a=g&amp;&amp;g.apply(this,arguments);a&amp;&amp;m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+&quot;With&quot;](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&amp;&amp;g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+&quot;With&quot;](this===e?d:this,arguments),this},e[f[0]+&quot;With&quot;]=g.fireWith}),d.promise(e),a&amp;&amp;a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&amp;&amp;m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length&gt;1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e&gt;1)for(i=new Array(e),j=new Array(e),k=new Array(e);e&gt;b;b++)c[b]&amp;&amp;m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&amp;&amp;--m.readyWait&gt;0||(H.resolveWith(y,[m]),m.fn.triggerHandler&amp;&amp;(m(y).triggerHandler(&quot;ready&quot;),m(y).off(&quot;ready&quot;)))}}});function I(){y.addEventListener?(y.removeEventListener(&quot;DOMContentLoaded&quot;,J,!1),a.removeEventListener(&quot;load&quot;,J,!1)):(y.detachEvent(&quot;onreadystatechange&quot;,J),a.detachEvent(&quot;onload&quot;,J))}function J(){(y.addEventListener||&quot;load&quot;===event.type||&quot;complete&quot;===y.readyState)&amp;&amp;(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),&quot;complete&quot;===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener(&quot;DOMContentLoaded&quot;,J,!1),a.addEventListener(&quot;load&quot;,J,!1);else{y.attachEvent(&quot;onreadystatechange&quot;,J),a.attachEvent(&quot;onload&quot;,J);var c=!1;try{c=null==a.frameElement&amp;&amp;y.documentElement}catch(d){}c&amp;&amp;c.doScroll&amp;&amp;!function e(){if(!m.isReady){try{c.doScroll(&quot;left&quot;)}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K=&quot;undefined&quot;,L;for(L in m(k))break;k.ownLast=&quot;0&quot;!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName(&quot;body&quot;)[0],c&amp;&amp;c.style&amp;&amp;(b=y.createElement(&quot;div&quot;),d=y.createElement(&quot;div&quot;),d.style.cssText=&quot;position:absolute;border:0;width:0;height:0;top:0;left:-9999px&quot;,c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&amp;&amp;(b.style.cssText=&quot;display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1&quot;,k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&amp;&amp;(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement(&quot;div&quot;);if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+&quot; &quot;).toLowerCase()],c=+a.nodeType||1;return 1!==c&amp;&amp;9!==c?!1:!b||b!==!0&amp;&amp;a.getAttribute(&quot;classid&quot;)===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&amp;&amp;1===a.nodeType){var d=&quot;data-&quot;+b.replace(N,&quot;-$1&quot;).toLowerCase();if(c=a.getAttribute(d),&quot;string&quot;==typeof c){try{c=&quot;true&quot;===c?!0:&quot;false&quot;===c?!1:&quot;null&quot;===c?null:+c+&quot;&quot;===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if((&quot;data&quot;!==b||!m.isEmptyObject(a[b]))&amp;&amp;&quot;toJSON&quot;!==b)return!1;

return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&amp;&amp;h;if(k&amp;&amp;j[k]&amp;&amp;(e||j[k].data)||void 0!==d||&quot;string&quot;!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),(&quot;object&quot;==typeof b||&quot;function&quot;==typeof b)&amp;&amp;(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&amp;&amp;(g[m.camelCase(b)]=d),&quot;string&quot;==typeof b?(f=g[b],null==f&amp;&amp;(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&amp;&amp;(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(&quot; &quot;)),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&amp;&amp;(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{&quot;applet &quot;:!0,&quot;embed &quot;:!0,&quot;object &quot;:&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot;},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&amp;&amp;!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&amp;&amp;f.attributes;if(void 0===a){if(this.length&amp;&amp;(e=m.data(f),1===f.nodeType&amp;&amp;!m._data(f,&quot;parsedAttrs&quot;))){c=g.length;while(c--)g[c]&amp;&amp;(d=g[c].name,0===d.indexOf(&quot;data-&quot;)&amp;&amp;(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,&quot;parsedAttrs&quot;,!0)}return e}return&quot;object&quot;==typeof a?this.each(function(){m.data(this,a)}):arguments.length&gt;1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||&quot;fx&quot;)+&quot;queue&quot;,d=m._data(a,b),c&amp;&amp;(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||&quot;fx&quot;;var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};&quot;inprogress&quot;===e&amp;&amp;(e=c.shift(),d--),e&amp;&amp;(&quot;fx&quot;===b&amp;&amp;c.unshift(&quot;inprogress&quot;),delete f.stop,e.call(a,g,f)),!d&amp;&amp;f&amp;&amp;f.empty.fire()},_queueHooks:function(a,b){var c=b+&quot;queueHooks&quot;;return m._data(a,c)||m._data(a,c,{empty:m.Callbacks(&quot;once memory&quot;).add(function(){m._removeData(a,b+&quot;queue&quot;),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return&quot;string&quot;!=typeof a&amp;&amp;(b=a,a=&quot;fx&quot;,c--),arguments.length&lt;c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),&quot;fx&quot;===a&amp;&amp;&quot;inprogress&quot;!==c[0]&amp;&amp;m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||&quot;fx&quot;,[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};&quot;string&quot;!=typeof a&amp;&amp;(b=a,a=void 0),a=a||&quot;fx&quot;;while(g--)c=m._data(f[g],a+&quot;queueHooks&quot;),c&amp;&amp;c.empty&amp;&amp;(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=[&quot;Top&quot;,&quot;Right&quot;,&quot;Bottom&quot;,&quot;Left&quot;],U=function(a,b){return a=b||a,&quot;none&quot;===m.css(a,&quot;display&quot;)||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if(&quot;object&quot;===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&amp;&amp;(e=!0,m.isFunction(d)||(g=!0),j&amp;&amp;(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i&gt;h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement(&quot;input&quot;),b=y.createElement(&quot;div&quot;),c=y.createDocumentFragment();if(b.innerHTML=&quot;  &lt;link/&gt;&lt;table&gt;&lt;/table&gt;&lt;a href='/a'&gt;a&lt;/a&gt;&lt;input type='checkbox'/&gt;&quot;,k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName(&quot;tbody&quot;).length,k.htmlSerialize=!!b.getElementsByTagName(&quot;link&quot;).length,k.html5Clone=&quot;&lt;:nav&gt;&lt;/:nav&gt;&quot;!==y.createElement(&quot;nav&quot;).cloneNode(!0).outerHTML,a.type=&quot;checkbox&quot;,a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML=&quot;&lt;textarea&gt;x&lt;/textarea&gt;&quot;,k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML=&quot;&lt;input type='radio' checked='checked' name='t'/&gt;&quot;,k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&amp;&amp;(b.attachEvent(&quot;onclick&quot;,function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement(&quot;div&quot;);for(b in{submit:!0,change:!0,focusin:!0})c=&quot;on&quot;+b,(k[b+&quot;Bubbles&quot;]=c in a)||(d.setAttribute(c,&quot;t&quot;),k[b+&quot;Bubbles&quot;]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&amp;&amp;(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&amp;&amp;m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||&quot;&quot;).match(E)||[&quot;&quot;],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||&quot;&quot;).split(&quot;.&quot;).sort(),o&amp;&amp;(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&amp;&amp;m.expr.match.needsContext.test(e),namespace:p.join(&quot;.&quot;)},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&amp;&amp;j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&amp;&amp;a.attachEvent(&quot;on&quot;+o,k))),j.add&amp;&amp;(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&amp;&amp;m._data(a);if(r&amp;&amp;(k=r.events)){b=(b||&quot;&quot;).match(E)||[&quot;&quot;],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||&quot;&quot;).split(&quot;.&quot;).sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&amp;&amp;new RegExp(&quot;(^|\\.)&quot;+p.join(&quot;\\.(?:.*\\.|)&quot;)+&quot;(\\.|$)&quot;),i=f=n.length;while(f--)g=n[f],!e&amp;&amp;q!==g.origType||c&amp;&amp;c.guid!==g.guid||h&amp;&amp;!h.test(g.namespace)||d&amp;&amp;d!==g.selector&amp;&amp;(&quot;**&quot;!==d||!g.selector)||(n.splice(f,1),g.selector&amp;&amp;n.delegateCount--,l.remove&amp;&amp;l.remove.call(a,g));i&amp;&amp;!n.length&amp;&amp;(l.teardown&amp;&amp;l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&amp;&amp;(delete r.handle,m._removeData(a,&quot;events&quot;))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,&quot;type&quot;)?b.type:b,q=j.call(b,&quot;namespace&quot;)?b.namespace.split(&quot;.&quot;):[];if(h=l=d=d||y,3!==d.nodeType&amp;&amp;8!==d.nodeType&amp;&amp;!$.test(p+m.event.triggered)&amp;&amp;(p.indexOf(&quot;.&quot;)&gt;=0&amp;&amp;(q=p.split(&quot;.&quot;),p=q.shift(),q.sort()),g=p.indexOf(&quot;:&quot;)&lt;0&amp;&amp;&quot;on&quot;+p,b=b[m.expando]?b:new m.Event(p,&quot;object&quot;==typeof b&amp;&amp;b),b.isTrigger=e?2:3,b.namespace=q.join(&quot;.&quot;),b.namespace_re=b.namespace?new RegExp(&quot;(^|\\.)&quot;+q.join(&quot;\\.(?:.*\\.|)&quot;)+&quot;(\\.|$)&quot;):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&amp;&amp;!k.noBubble&amp;&amp;!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&amp;&amp;o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&amp;&amp;!b.isPropagationStopped())b.type=n&gt;1?i:k.bindType||p,f=(m._data(h,&quot;events&quot;)||{})[b.type]&amp;&amp;m._data(h,&quot;handle&quot;),f&amp;&amp;f.apply(h,c),f=g&amp;&amp;h[g],f&amp;&amp;f.apply&amp;&amp;m.acceptData(h)&amp;&amp;(b.result=f.apply(h,c),b.result===!1&amp;&amp;b.preventDefault());if(b.type=p,!e&amp;&amp;!b.isDefaultPrevented()&amp;&amp;(!k._default||k._default.apply(o.pop(),c)===!1)&amp;&amp;m.acceptData(d)&amp;&amp;g&amp;&amp;d[p]&amp;&amp;!m.isWindow(d)){l=d[g],l&amp;&amp;(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&amp;&amp;(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,&quot;events&quot;)||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&amp;&amp;!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&amp;&amp;!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&amp;&amp;(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&amp;&amp;(a.result=c)===!1&amp;&amp;(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&amp;&amp;k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&amp;&amp;i.nodeType&amp;&amp;(!a.button||&quot;click&quot;!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&amp;&amp;(i.disabled!==!0||&quot;click&quot;!==a.type)){for(e=[],f=0;h&gt;f;f++)d=b[f],c=d.selector+&quot; &quot;,void 0===e[c]&amp;&amp;(e[c]=d.needsContext?m(c,this).index(i)&gt;=0:m.find(c,this,null,[i]).length),e[c]&amp;&amp;e.push(d);e.length&amp;&amp;g.push({elem:i,handlers:e})}return h&lt;b.length&amp;&amp;g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&amp;&amp;(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:&quot;altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which&quot;.split(&quot; &quot;),fixHooks:{},keyHooks:{props:&quot;char charCode key keyCode&quot;.split(&quot; &quot;),filter:function(a,b){return null==a.which&amp;&amp;(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:&quot;button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement&quot;.split(&quot; &quot;),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&amp;&amp;null!=b.clientX&amp;&amp;(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&amp;&amp;e.scrollLeft||c&amp;&amp;c.scrollLeft||0)-(e&amp;&amp;e.clientLeft||c&amp;&amp;c.clientLeft||0),a.pageY=b.clientY+(e&amp;&amp;e.scrollTop||c&amp;&amp;c.scrollTop||0)-(e&amp;&amp;e.clientTop||c&amp;&amp;c.clientTop||0)),!a.relatedTarget&amp;&amp;g&amp;&amp;(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&amp;f?1:2&amp;f?3:4&amp;f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ca()&amp;&amp;this.focus)try{return this.focus(),!1}catch(a){}},delegateType:&quot;focusin&quot;},blur:{trigger:function(){return this===ca()&amp;&amp;this.blur?(this.blur(),!1):void 0},delegateType:&quot;focusout&quot;},click:{trigger:function(){return m.nodeName(this,&quot;input&quot;)&amp;&amp;&quot;checkbox&quot;===this.type&amp;&amp;this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,&quot;a&quot;)}},beforeunload:{postDispatch:function(a){void 0!==a.result&amp;&amp;a.originalEvent&amp;&amp;(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&amp;&amp;c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&amp;&amp;a.removeEventListener(b,c,!1)}:function(a,b,c){var d=&quot;on&quot;+b;a.detachEvent&amp;&amp;(typeof a[d]===K&amp;&amp;(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&amp;&amp;a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&amp;&amp;a.returnValue===!1?aa:ba):this.type=a,b&amp;&amp;m.extend(this,b),this.timeStamp=a&amp;&amp;a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=aa,a&amp;&amp;(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=aa,a&amp;&amp;(a.stopPropagation&amp;&amp;a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=aa,a&amp;&amp;a.stopImmediatePropagation&amp;&amp;a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:&quot;mouseover&quot;,mouseleave:&quot;mouseout&quot;,pointerenter:&quot;pointerover&quot;,pointerleave:&quot;pointerout&quot;},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&amp;&amp;!m.contains(d,e))&amp;&amp;(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,&quot;form&quot;)?!1:void m.event.add(this,&quot;click._submit keypress._submit&quot;,function(a){var b=a.target,c=m.nodeName(b,&quot;input&quot;)||m.nodeName(b,&quot;button&quot;)?b.form:void 0;c&amp;&amp;!m._data(c,&quot;submitBubbles&quot;)&amp;&amp;(m.event.add(c,&quot;submit._submit&quot;,function(a){a._submit_bubble=!0}),m._data(c,&quot;submitBubbles&quot;,!0))})},postDispatch:function(a){a._submit_bubble&amp;&amp;(delete a._submit_bubble,this.parentNode&amp;&amp;!a.isTrigger&amp;&amp;m.event.simulate(&quot;submit&quot;,this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,&quot;form&quot;)?!1:void m.event.remove(this,&quot;._submit&quot;)}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?((&quot;checkbox&quot;===this.type||&quot;radio&quot;===this.type)&amp;&amp;(m.event.add(this,&quot;propertychange._change&quot;,function(a){&quot;checked&quot;===a.originalEvent.propertyName&amp;&amp;(this._just_changed=!0)}),m.event.add(this,&quot;click._change&quot;,function(a){this._just_changed&amp;&amp;!a.isTrigger&amp;&amp;(this._just_changed=!1),m.event.simulate(&quot;change&quot;,this,a,!0)})),!1):void m.event.add(this,&quot;beforeactivate._change&quot;,function(a){var b=a.target;X.test(b.nodeName)&amp;&amp;!m._data(b,&quot;changeBubbles&quot;)&amp;&amp;(m.event.add(b,&quot;change._change&quot;,function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate(&quot;change&quot;,this.parentNode,a,!0)}),m._data(b,&quot;changeBubbles&quot;,!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||&quot;radio&quot;!==b.type&amp;&amp;&quot;checkbox&quot;!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,&quot;._change&quot;),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:&quot;focusin&quot;,blur:&quot;focusout&quot;},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if(&quot;object&quot;==typeof a){&quot;string&quot;!=typeof b&amp;&amp;(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&amp;&amp;null==d?(d=b,c=b=void 0):null==d&amp;&amp;(&quot;string&quot;==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=ba;else if(!d)return this;return 1===e&amp;&amp;(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&amp;&amp;a.preventDefault&amp;&amp;a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+&quot;.&quot;+d.namespace:d.origType,d.selector,d.handler),this;if(&quot;object&quot;==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||&quot;function&quot;==typeof b)&amp;&amp;(c=b,b=void 0),c===!1&amp;&amp;(c=ba),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function da(a){var b=ea.split(&quot;|&quot;),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var ea=&quot;abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video&quot;,fa=/ jQuery\d+=&quot;(?:null|\d+)&quot;/g,ga=new RegExp(&quot;&lt;(?:&quot;+ea+&quot;)[\\s/&gt;]&quot;,&quot;i&quot;),ha=/^\s+/,ia=/&lt;(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^&gt;]*)\/&gt;/gi,ja=/&lt;([\w:]+)/,ka=/&lt;tbody/i,la=/&lt;|&amp;#?\w+;/,ma=/&lt;(?:script|style|link)/i,na=/checked\s*(?:[^=]|=\s*.checked.)/i,oa=/^$|\/(?:java|ecma)script/i,pa=/^true\/(.*)/,qa=/^\s*&lt;!(?:\[CDATA\[|--)|(?:\]\]|--)&gt;\s*$/g,ra={option:[1,&quot;&lt;select multiple='multiple'&gt;&quot;,&quot;&lt;/select&gt;&quot;],legend:[1,&quot;&lt;fieldset&gt;&quot;,&quot;&lt;/fieldset&gt;&quot;],area:[1,&quot;&lt;map&gt;&quot;,&quot;&lt;/map&gt;&quot;],param:[1,&quot;&lt;object&gt;&quot;,&quot;&lt;/object&gt;&quot;],thead:[1,&quot;&lt;table&gt;&quot;,&quot;&lt;/table&gt;&quot;],tr:[2,&quot;&lt;table&gt;&lt;tbody&gt;&quot;,&quot;&lt;/tbody&gt;&lt;/table&gt;&quot;],col:[2,&quot;&lt;table&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;colgroup&gt;&quot;,&quot;&lt;/colgroup&gt;&lt;/table&gt;&quot;],td:[3,&quot;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&quot;,&quot;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;],_default:k.htmlSerialize?[0,&quot;&quot;,&quot;&quot;]:[1,&quot;X&lt;div&gt;&quot;,&quot;&lt;/div&gt;&quot;]},sa=da(y),ta=sa.appendChild(y.createElement(&quot;div&quot;));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||&quot;*&quot;):typeof a.querySelectorAll!==K?a.querySelectorAll(b||&quot;*&quot;):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&amp;&amp;m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&amp;&amp;(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,&quot;table&quot;)&amp;&amp;m.nodeName(11!==b.nodeType?b:b.firstChild,&quot;tr&quot;)?a.getElementsByTagName(&quot;tbody&quot;)[0]||a.appendChild(a.ownerDocument.createElement(&quot;tbody&quot;)):a}function xa(a){return a.type=(null!==m.find.attr(a,&quot;type&quot;))+&quot;/&quot;+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute(&quot;type&quot;),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,&quot;globalEval&quot;,!b||m._data(b[d],&quot;globalEval&quot;))}function Aa(a,b){if(1===b.nodeType&amp;&amp;m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e&gt;d;d++)m.event.add(b,c,h[c][d])}g.data&amp;&amp;(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&amp;&amp;b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}&quot;script&quot;===c&amp;&amp;b.text!==a.text?(xa(b).text=a.text,ya(b)):&quot;object&quot;===c?(b.parentNode&amp;&amp;(b.outerHTML=a.outerHTML),k.html5Clone&amp;&amp;a.innerHTML&amp;&amp;!m.trim(b.innerHTML)&amp;&amp;(b.innerHTML=a.innerHTML)):&quot;input&quot;===c&amp;&amp;W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&amp;&amp;(b.value=a.value)):&quot;option&quot;===c?b.defaultSelected=b.selected=a.defaultSelected:(&quot;input&quot;===c||&quot;textarea&quot;===c)&amp;&amp;(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test(&quot;&lt;&quot;+a.nodeName+&quot;&gt;&quot;)?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&amp;&amp;k.noCloneChecked||1!==a.nodeType&amp;&amp;11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&amp;&amp;Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,&quot;script&quot;),d.length&gt;0&amp;&amp;za(d,!i&amp;&amp;ua(a,&quot;script&quot;)),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n&gt;q;q++)if(f=a[q],f||0===f)if(&quot;object&quot;===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement(&quot;div&quot;)),i=(ja.exec(f)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,&quot;&lt;$1&gt;&lt;/$2&gt;&quot;)+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&amp;&amp;ha.test(f)&amp;&amp;p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f=&quot;table&quot;!==i||ka.test(f)?&quot;&lt;table&gt;&quot;!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&amp;&amp;f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],&quot;tbody&quot;)&amp;&amp;!j.childNodes.length&amp;&amp;f.removeChild(j)}m.merge(p,h.childNodes),h.textContent=&quot;&quot;;while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&amp;&amp;o.removeChild(h),k.appendChecked||m.grep(ua(p,&quot;input&quot;),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&amp;&amp;(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),&quot;script&quot;),g&amp;&amp;za(h),c)){e=0;while(f=h[e++])oa.test(f.type||&quot;&quot;)&amp;&amp;c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&amp;&amp;(f=d[i],g=f&amp;&amp;j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&amp;&amp;(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&amp;&amp;this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&amp;&amp;this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&amp;&amp;this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&amp;&amp;(b&amp;&amp;m.contains(c.ownerDocument,c)&amp;&amp;za(ua(c,&quot;script&quot;)),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&amp;&amp;m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&amp;&amp;m.nodeName(a,&quot;select&quot;)&amp;&amp;(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,&quot;&quot;):void 0;if(!(&quot;string&quot;!=typeof a||ma.test(a)||!k.htmlSerialize&amp;&amp;ga.test(a)||!k.leadingWhitespace&amp;&amp;ha.test(a)||ra[(ja.exec(a)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase()])){a=a.replace(ia,&quot;&lt;$1&gt;&lt;/$2&gt;&quot;);try{for(;d&gt;c;c++)b=this[c]||{},1===b.nodeType&amp;&amp;(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&amp;&amp;this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&amp;&amp;a.replaceChild(b,this)}),a&amp;&amp;(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l&gt;1&amp;&amp;&quot;string&quot;==typeof p&amp;&amp;!k.checkClone&amp;&amp;na.test(p))return this.each(function(c){var d=n.eq(c);q&amp;&amp;(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&amp;&amp;(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&amp;&amp;(i=c),c)){for(g=m.map(ua(i,&quot;script&quot;),xa),f=g.length;l&gt;j;j++)d=i,j!==o&amp;&amp;(d=m.clone(d,!0,!0),f&amp;&amp;m.merge(g,ua(d,&quot;script&quot;))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f&gt;j;j++)d=g[j],oa.test(d.type||&quot;&quot;)&amp;&amp;!m._data(d,&quot;globalEval&quot;)&amp;&amp;m.contains(h,d)&amp;&amp;(d.src?m._evalUrl&amp;&amp;m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||&quot;&quot;).replace(qa,&quot;&quot;)));i=c=null}return this}}),m.each({appendTo:&quot;append&quot;,prependTo:&quot;prepend&quot;,insertBefore:&quot;before&quot;,insertAfter:&quot;after&quot;,replaceAll:&quot;replaceWith&quot;},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h&gt;=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&amp;&amp;(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],&quot;display&quot;);return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),&quot;none&quot;!==c&amp;&amp;c||(Ca=(Ca||m(&quot;&lt;iframe frameborder='0' width='0' height='0'/&gt;&quot;)).appendTo(b.documentElement),b=(Ca[0].contentWindow||Ca[0].contentDocument).document,b.write(),b.close(),c=Ea(a,b),Ca.detach()),Da[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName(&quot;body&quot;)[0],c&amp;&amp;c.style?(b=y.createElement(&quot;div&quot;),d=y.createElement(&quot;div&quot;),d.style.cssText=&quot;position:absolute;border:0;width:0;height:0;top:0;left:-9999px&quot;,c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&amp;&amp;(b.style.cssText=&quot;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1&quot;,b.appendChild(y.createElement(&quot;div&quot;)).style.width=&quot;5px&quot;,a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Ga=/^margin/,Ha=new RegExp(&quot;^(&quot;+S+&quot;)(?!px)[a-z%]+$&quot;,&quot;i&quot;),Ia,Ja,Ka=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ia=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&amp;&amp;(&quot;&quot;!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Ha.test(g)&amp;&amp;Ga.test(b)&amp;&amp;(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+&quot;&quot;}):y.documentElement.currentStyle&amp;&amp;(Ia=function(a){return a.currentStyle},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c[b]:void 0,null==g&amp;&amp;h&amp;&amp;h[b]&amp;&amp;(g=h[b]),Ha.test(g)&amp;&amp;!Ka.test(b)&amp;&amp;(d=h.left,e=a.runtimeStyle,f=e&amp;&amp;e.left,f&amp;&amp;(e.left=a.currentStyle.left),h.left=&quot;fontSize&quot;===b?&quot;1em&quot;:g,g=h.pixelLeft+&quot;px&quot;,h.left=d,f&amp;&amp;(e.left=f)),void 0===g?g:g+&quot;&quot;||&quot;auto&quot;});function La(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement(&quot;div&quot;),b.innerHTML=&quot;  &lt;link/&gt;&lt;table&gt;&lt;/table&gt;&lt;a href='/a'&gt;a&lt;/a&gt;&lt;input type='checkbox'/&gt;&quot;,d=b.getElementsByTagName(&quot;a&quot;)[0],c=d&amp;&amp;d.style){c.cssText=&quot;float:left;opacity:.5&quot;,k.opacity=&quot;0.5&quot;===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip=&quot;content-box&quot;,b.cloneNode(!0).style.backgroundClip=&quot;&quot;,k.clearCloneStyle=&quot;content-box&quot;===b.style.backgroundClip,k.boxSizing=&quot;&quot;===c.boxSizing||&quot;&quot;===c.MozBoxSizing||&quot;&quot;===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&amp;&amp;i(),g},boxSizingReliable:function(){return null==f&amp;&amp;i(),f},pixelPosition:function(){return null==e&amp;&amp;i(),e},reliableMarginRight:function(){return null==h&amp;&amp;i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName(&quot;body&quot;)[0],c&amp;&amp;c.style&amp;&amp;(b=y.createElement(&quot;div&quot;),d=y.createElement(&quot;div&quot;),d.style.cssText=&quot;position:absolute;border:0;width:0;height:0;top:0;left:-9999px&quot;,c.appendChild(d).appendChild(b),b.style.cssText=&quot;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute&quot;,e=f=!1,h=!0,a.getComputedStyle&amp;&amp;(e=&quot;1%&quot;!==(a.getComputedStyle(b,null)||{}).top,f=&quot;4px&quot;===(a.getComputedStyle(b,null)||{width:&quot;4px&quot;}).width,i=b.appendChild(y.createElement(&quot;div&quot;)),i.style.cssText=b.style.cssText=&quot;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0&quot;,i.style.marginRight=i.style.width=&quot;0&quot;,b.style.width=&quot;1px&quot;,h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML=&quot;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;t&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot;,i=b.getElementsByTagName(&quot;td&quot;),i[0].style.cssText=&quot;margin:0;border:0;padding:0;display:none&quot;,g=0===i[0].offsetHeight,g&amp;&amp;(i[0].style.display=&quot;&quot;,i[1].style.display=&quot;none&quot;,g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Ma=/alpha\([^)]*\)/i,Na=/opacity\s*=\s*([^)]*)/,Oa=/^(none|table(?!-c[ea]).+)/,Pa=new RegExp(&quot;^(&quot;+S+&quot;)(.*)$&quot;,&quot;i&quot;),Qa=new RegExp(&quot;^([+-])=(&quot;+S+&quot;)&quot;,&quot;i&quot;),Ra={position:&quot;absolute&quot;,visibility:&quot;hidden&quot;,display:&quot;block&quot;},Sa={letterSpacing:&quot;0&quot;,fontWeight:&quot;400&quot;},Ta=[&quot;Webkit&quot;,&quot;O&quot;,&quot;Moz&quot;,&quot;ms&quot;];function Ua(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ta.length;while(e--)if(b=Ta[e]+c,b in a)return b;return d}function Va(a,b){for(var c,d,e,f=[],g=0,h=a.length;h&gt;g;g++)d=a[g],d.style&amp;&amp;(f[g]=m._data(d,&quot;olddisplay&quot;),c=d.style.display,b?(f[g]||&quot;none&quot;!==c||(d.style.display=&quot;&quot;),&quot;&quot;===d.style.display&amp;&amp;U(d)&amp;&amp;(f[g]=m._data(d,&quot;olddisplay&quot;,Fa(d.nodeName)))):(e=U(d),(c&amp;&amp;&quot;none&quot;!==c||!e)&amp;&amp;m._data(d,&quot;olddisplay&quot;,e?c:m.css(d,&quot;display&quot;))));for(g=0;h&gt;g;g++)d=a[g],d.style&amp;&amp;(b&amp;&amp;&quot;none&quot;!==d.style.display&amp;&amp;&quot;&quot;!==d.style.display||(d.style.display=b?f[g]||&quot;&quot;:&quot;none&quot;));return a}function Wa(a,b,c){var d=Pa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||&quot;px&quot;):b}function Xa(a,b,c,d,e){for(var f=c===(d?&quot;border&quot;:&quot;content&quot;)?4:&quot;width&quot;===b?1:0,g=0;4&gt;f;f+=2)&quot;margin&quot;===c&amp;&amp;(g+=m.css(a,c+T[f],!0,e)),d?(&quot;content&quot;===c&amp;&amp;(g-=m.css(a,&quot;padding&quot;+T[f],!0,e)),&quot;margin&quot;!==c&amp;&amp;(g-=m.css(a,&quot;border&quot;+T[f]+&quot;Width&quot;,!0,e))):(g+=m.css(a,&quot;padding&quot;+T[f],!0,e),&quot;padding&quot;!==c&amp;&amp;(g+=m.css(a,&quot;border&quot;+T[f]+&quot;Width&quot;,!0,e)));return g}function Ya(a,b,c){var d=!0,e=&quot;width&quot;===b?a.offsetWidth:a.offsetHeight,f=Ia(a),g=k.boxSizing&amp;&amp;&quot;border-box&quot;===m.css(a,&quot;boxSizing&quot;,!1,f);if(0&gt;=e||null==e){if(e=Ja(a,b,f),(0&gt;e||null==e)&amp;&amp;(e=a.style[b]),Ha.test(e))return e;d=g&amp;&amp;(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xa(a,b,c||(g?&quot;border&quot;:&quot;content&quot;),d,f)+&quot;px&quot;}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ja(a,&quot;opacity&quot;);return&quot;&quot;===c?&quot;1&quot;:c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{&quot;float&quot;:k.cssFloat?&quot;cssFloat&quot;:&quot;styleFloat&quot;},style:function(a,b,c,d){if(a&amp;&amp;3!==a.nodeType&amp;&amp;8!==a.nodeType&amp;&amp;a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ua(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&amp;&amp;&quot;get&quot;in g&amp;&amp;void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,&quot;string&quot;===f&amp;&amp;(e=Qa.exec(c))&amp;&amp;(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f=&quot;number&quot;),null!=c&amp;&amp;c===c&amp;&amp;(&quot;number&quot;!==f||m.cssNumber[h]||(c+=&quot;px&quot;),k.clearCloneStyle||&quot;&quot;!==c||0!==b.indexOf(&quot;background&quot;)||(i[b]=&quot;inherit&quot;),!(g&amp;&amp;&quot;set&quot;in g&amp;&amp;void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ua(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&amp;&amp;&quot;get&quot;in g&amp;&amp;(f=g.get(a,!0,c)),void 0===f&amp;&amp;(f=Ja(a,b,d)),&quot;normal&quot;===f&amp;&amp;b in Sa&amp;&amp;(f=Sa[b]),&quot;&quot;===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each([&quot;height&quot;,&quot;width&quot;],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Oa.test(m.css(a,&quot;display&quot;))&amp;&amp;0===a.offsetWidth?m.swap(a,Ra,function(){return Ya(a,b,d)}):Ya(a,b,d):void 0},set:function(a,c,d){var e=d&amp;&amp;Ia(a);return Wa(a,c,d?Xa(a,b,d,k.boxSizing&amp;&amp;&quot;border-box&quot;===m.css(a,&quot;boxSizing&quot;,!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Na.test((b&amp;&amp;a.currentStyle?a.currentStyle.filter:a.style.filter)||&quot;&quot;)?.01*parseFloat(RegExp.$1)+&quot;&quot;:b?&quot;1&quot;:&quot;&quot;},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?&quot;alpha(opacity=&quot;+100*b+&quot;)&quot;:&quot;&quot;,f=d&amp;&amp;d.filter||c.filter||&quot;&quot;;c.zoom=1,(b&gt;=1||&quot;&quot;===b)&amp;&amp;&quot;&quot;===m.trim(f.replace(Ma,&quot;&quot;))&amp;&amp;c.removeAttribute&amp;&amp;(c.removeAttribute(&quot;filter&quot;),&quot;&quot;===b||d&amp;&amp;!d.filter)||(c.filter=Ma.test(f)?f.replace(Ma,e):f+&quot; &quot;+e)}}),m.cssHooks.marginRight=La(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:&quot;inline-block&quot;},Ja,[a,&quot;marginRight&quot;]):void 0}),m.each({margin:&quot;&quot;,padding:&quot;&quot;,border:&quot;Width&quot;},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f=&quot;string&quot;==typeof c?c.split(&quot; &quot;):[c];4&gt;d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Ga.test(a)||(m.cssHooks[a+b].set=Wa)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ia(a),e=b.length;e&gt;g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length&gt;1)},show:function(){return Va(this,!0)},hide:function(){return Va(this)},toggle:function(a){return&quot;boolean&quot;==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Za(a,b,c,d,e){
return new Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||&quot;swing&quot;,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?&quot;&quot;:&quot;px&quot;)},cur:function(){var a=Za.propHooks[this.prop];return a&amp;&amp;a.get?a.get(this):Za.propHooks._default.get(this)},run:function(a){var b,c=Za.propHooks[this.prop];return this.options.duration?this.pos=b=m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&amp;&amp;this.options.step.call(this.elem,this.now,this),c&amp;&amp;c.set?c.set(this):Za.propHooks._default.set(this),this}},Za.prototype.init.prototype=Za.prototype,Za.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&amp;&amp;null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,&quot;&quot;),b&amp;&amp;&quot;auto&quot;!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&amp;&amp;(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Za.propHooks.scrollTop=Za.propHooks.scrollLeft={set:function(a){a.elem.nodeType&amp;&amp;a.elem.parentNode&amp;&amp;(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Za.prototype.init,m.fx.step={};var $a,_a,ab=/^(?:toggle|show|hide)$/,bb=new RegExp(&quot;^(?:([+-])=|)(&quot;+S+&quot;)([a-z%]*)$&quot;,&quot;i&quot;),cb=/queueHooks$/,db=[ib],eb={&quot;*&quot;:[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bb.exec(b),f=e&amp;&amp;e[3]||(m.cssNumber[a]?&quot;&quot;:&quot;px&quot;),g=(m.cssNumber[a]||&quot;px&quot;!==f&amp;&amp;+d)&amp;&amp;bb.exec(m.css(c.elem,a)),h=1,i=20;if(g&amp;&amp;g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||&quot;.5&quot;,g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&amp;&amp;1!==h&amp;&amp;--i)}return e&amp;&amp;(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fb(){return setTimeout(function(){$a=void 0}),$a=m.now()}function gb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4&gt;e;e+=2-b)c=T[e],d[&quot;margin&quot;+c]=d[&quot;padding&quot;+c]=a;return b&amp;&amp;(d.opacity=d.width=a),d}function hb(a,b,c){for(var d,e=(eb[b]||[]).concat(eb[&quot;*&quot;]),f=0,g=e.length;g&gt;f;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&amp;&amp;U(a),r=m._data(a,&quot;fxshow&quot;);c.queue||(h=m._queueHooks(a,&quot;fx&quot;),null==h.unqueued&amp;&amp;(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,&quot;fx&quot;).length||h.empty.fire()})})),1===a.nodeType&amp;&amp;(&quot;height&quot;in b||&quot;width&quot;in b)&amp;&amp;(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,&quot;display&quot;),l=&quot;none&quot;===j?m._data(a,&quot;olddisplay&quot;)||Fa(a.nodeName):j,&quot;inline&quot;===l&amp;&amp;&quot;none&quot;===m.css(a,&quot;float&quot;)&amp;&amp;(k.inlineBlockNeedsLayout&amp;&amp;&quot;inline&quot;!==Fa(a.nodeName)?p.zoom=1:p.display=&quot;inline-block&quot;)),c.overflow&amp;&amp;(p.overflow=&quot;hidden&quot;,k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ab.exec(e)){if(delete b[d],f=f||&quot;toggle&quot;===e,e===(q?&quot;hide&quot;:&quot;show&quot;)){if(&quot;show&quot;!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&amp;&amp;r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))&quot;inline&quot;===(&quot;none&quot;===j?Fa(a.nodeName):j)&amp;&amp;(p.display=j);else{r?&quot;hidden&quot;in r&amp;&amp;(q=r.hidden):r=m._data(a,&quot;fxshow&quot;,{}),f&amp;&amp;(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,&quot;fxshow&quot;);for(b in o)m.style(a,b,o[b])});for(d in o)g=hb(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&amp;&amp;(g.end=g.start,g.start=&quot;width&quot;===d||&quot;height&quot;===d?1:0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&amp;&amp;(e=f[1],f=a[c]=f[0]),c!==d&amp;&amp;(a[d]=f,delete a[c]),g=m.cssHooks[d],g&amp;&amp;&quot;expand&quot;in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=db.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$a||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i&gt;g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1&gt;f&amp;&amp;i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$a||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d&gt;c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);g&gt;f;f++)if(d=db[f].call(j,a,k,j.opts))return d;return m.map(k,hb,j),m.isFunction(j.opts.start)&amp;&amp;j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kb,{tweener:function(a,b){m.isFunction(a)?(b=a,a=[&quot;*&quot;]):a=a.split(&quot; &quot;);for(var c,d=0,e=a.length;e&gt;d;d++)c=a[d],eb[c]=eb[c]||[],eb[c].unshift(b)},prefilter:function(a,b){b?db.unshift(a):db.push(a)}}),m.speed=function(a,b,c){var d=a&amp;&amp;&quot;object&quot;==typeof a?m.extend({},a):{complete:c||!c&amp;&amp;b||m.isFunction(a)&amp;&amp;a,duration:a,easing:c&amp;&amp;b||b&amp;&amp;!m.isFunction(b)&amp;&amp;b};return d.duration=m.fx.off?0:&quot;number&quot;==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&amp;&amp;(d.queue=&quot;fx&quot;),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&amp;&amp;d.old.call(this),d.queue&amp;&amp;m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css(&quot;opacity&quot;,0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kb(this,m.extend({},a),f);(e||m._data(this,&quot;finish&quot;))&amp;&amp;b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return&quot;string&quot;!=typeof a&amp;&amp;(c=b,b=a,a=void 0),b&amp;&amp;a!==!1&amp;&amp;this.queue(a||&quot;fx&quot;,[]),this.each(function(){var b=!0,e=null!=a&amp;&amp;a+&quot;queueHooks&quot;,f=m.timers,g=m._data(this);if(e)g[e]&amp;&amp;g[e].stop&amp;&amp;d(g[e]);else for(e in g)g[e]&amp;&amp;g[e].stop&amp;&amp;cb.test(e)&amp;&amp;d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&amp;&amp;f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&amp;&amp;m.dequeue(this,a)})},finish:function(a){return a!==!1&amp;&amp;(a=a||&quot;fx&quot;),this.each(function(){var b,c=m._data(this),d=c[a+&quot;queue&quot;],e=c[a+&quot;queueHooks&quot;],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&amp;&amp;e.stop&amp;&amp;e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&amp;&amp;f[b].queue===a&amp;&amp;(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g&gt;b;b++)d[b]&amp;&amp;d[b].finish&amp;&amp;d[b].finish.call(this);delete c.finish})}}),m.each([&quot;toggle&quot;,&quot;show&quot;,&quot;hide&quot;],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||&quot;boolean&quot;==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),m.each({slideDown:gb(&quot;show&quot;),slideUp:gb(&quot;hide&quot;),slideToggle:gb(&quot;toggle&quot;),fadeIn:{opacity:&quot;show&quot;},fadeOut:{opacity:&quot;hide&quot;},fadeToggle:{opacity:&quot;toggle&quot;}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($a=m.now();c&lt;b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$a=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_a||(_a=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_a),_a=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||&quot;fx&quot;,this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement(&quot;div&quot;),b.setAttribute(&quot;className&quot;,&quot;t&quot;),b.innerHTML=&quot;  &lt;link/&gt;&lt;table&gt;&lt;/table&gt;&lt;a href='/a'&gt;a&lt;/a&gt;&lt;input type='checkbox'/&gt;&quot;,d=b.getElementsByTagName(&quot;a&quot;)[0],c=y.createElement(&quot;select&quot;),e=c.appendChild(y.createElement(&quot;option&quot;)),a=b.getElementsByTagName(&quot;input&quot;)[0],d.style.cssText=&quot;top:1px&quot;,k.getSetAttribute=&quot;t&quot;!==b.className,k.style=/top/.test(d.getAttribute(&quot;style&quot;)),k.hrefNormalized=&quot;/a&quot;===d.getAttribute(&quot;href&quot;),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement(&quot;form&quot;).enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement(&quot;input&quot;),a.setAttribute(&quot;value&quot;,&quot;&quot;),k.input=&quot;&quot;===a.getAttribute(&quot;value&quot;),a.value=&quot;t&quot;,a.setAttribute(&quot;type&quot;,&quot;radio&quot;),k.radioValue=&quot;t&quot;===a.value}();var lb=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&amp;&amp;(e=d?a.call(this,c,m(this).val()):a,null==e?e=&quot;&quot;:&quot;number&quot;==typeof e?e+=&quot;&quot;:m.isArray(e)&amp;&amp;(e=m.map(e,function(a){return null==a?&quot;&quot;:a+&quot;&quot;})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&amp;&amp;&quot;set&quot;in b&amp;&amp;void 0!==b.set(this,e,&quot;value&quot;)||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&amp;&amp;&quot;get&quot;in b&amp;&amp;void 0!==(c=b.get(e,&quot;value&quot;))?c:(c=e.value,&quot;string&quot;==typeof c?c.replace(lb,&quot;&quot;):null==c?&quot;&quot;:c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,&quot;value&quot;);return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f=&quot;select-one&quot;===a.type||0&gt;e,g=f?null:[],h=f?e+1:d.length,i=0&gt;e?h:f?e:0;h&gt;i;i++)if(c=d[i],!(!c.selected&amp;&amp;i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute(&quot;disabled&quot;))||c.parentNode.disabled&amp;&amp;m.nodeName(c.parentNode,&quot;optgroup&quot;))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)&gt;=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each([&quot;radio&quot;,&quot;checkbox&quot;],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)&gt;=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute(&quot;value&quot;)?&quot;on&quot;:a.value})});var mb,nb,ob=m.expr.attrHandle,pb=/^(?:checked|selected)$/i,qb=k.getSetAttribute,rb=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length&gt;1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&amp;&amp;3!==f&amp;&amp;8!==f&amp;&amp;2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&amp;&amp;m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nb:mb)),void 0===c?d&amp;&amp;&quot;get&quot;in d&amp;&amp;null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&amp;&amp;&quot;set&quot;in d&amp;&amp;void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+&quot;&quot;),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&amp;&amp;b.match(E);if(f&amp;&amp;1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rb&amp;&amp;qb||!pb.test(c)?a[d]=!1:a[m.camelCase(&quot;default-&quot;+c)]=a[d]=!1:m.attr(a,c,&quot;&quot;),a.removeAttribute(qb?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&amp;&amp;&quot;radio&quot;===b&amp;&amp;m.nodeName(a,&quot;input&quot;)){var c=a.value;return a.setAttribute(&quot;type&quot;,b),c&amp;&amp;(a.value=c),b}}}}}),nb={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rb&amp;&amp;qb||!pb.test(c)?a.setAttribute(!qb&amp;&amp;m.propFix[c]||c,c):a[m.camelCase(&quot;default-&quot;+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ob[b]||m.find.attr;ob[b]=rb&amp;&amp;qb||!pb.test(b)?function(a,b,d){var e,f;return d||(f=ob[b],ob[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,ob[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase(&quot;default-&quot;+b)]?b.toLowerCase():null}}),rb&amp;&amp;qb||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,&quot;input&quot;)?void(a.defaultValue=b):mb&amp;&amp;mb.set(a,b,c)}}),qb||(mb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+=&quot;&quot;,&quot;value&quot;===c||b===a.getAttribute(c)?b:void 0}},ob.id=ob.name=ob.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&amp;&amp;&quot;&quot;!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&amp;&amp;c.specified?c.value:void 0},set:mb.set},m.attrHooks.contenteditable={set:function(a,b,c){mb.set(a,&quot;&quot;===b?!1:b,c)}},m.each([&quot;width&quot;,&quot;height&quot;],function(a,b){m.attrHooks[b]={set:function(a,c){return&quot;&quot;===c?(a.setAttribute(b,&quot;auto&quot;),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+&quot;&quot;}});var sb=/^(?:input|select|textarea|button|object)$/i,tb=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length&gt;1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{&quot;for&quot;:&quot;htmlFor&quot;,&quot;class&quot;:&quot;className&quot;},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&amp;&amp;3!==g&amp;&amp;8!==g&amp;&amp;2!==g)return f=1!==g||!m.isXMLDoc(a),f&amp;&amp;(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&amp;&amp;&quot;set&quot;in e&amp;&amp;void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&amp;&amp;&quot;get&quot;in e&amp;&amp;null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,&quot;tabindex&quot;);return b?parseInt(b,10):sb.test(a.nodeName)||tb.test(a.nodeName)&amp;&amp;a.href?0:-1}}}}),k.hrefNormalized||m.each([&quot;href&quot;,&quot;src&quot;],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&amp;&amp;(b.selectedIndex,b.parentNode&amp;&amp;b.parentNode.selectedIndex),null}}),m.each([&quot;tabIndex&quot;,&quot;readOnly&quot;,&quot;maxLength&quot;,&quot;cellSpacing&quot;,&quot;cellPadding&quot;,&quot;rowSpan&quot;,&quot;colSpan&quot;,&quot;useMap&quot;,&quot;frameBorder&quot;,&quot;contentEditable&quot;],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype=&quot;encoding&quot;);var ub=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=&quot;string&quot;==typeof a&amp;&amp;a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||&quot;&quot;).match(E)||[];i&gt;h;h++)if(c=this[h],d=1===c.nodeType&amp;&amp;(c.className?(&quot; &quot;+c.className+&quot; &quot;).replace(ub,&quot; &quot;):&quot; &quot;)){f=0;while(e=b[f++])d.indexOf(&quot; &quot;+e+&quot; &quot;)&lt;0&amp;&amp;(d+=e+&quot; &quot;);g=m.trim(d),c.className!==g&amp;&amp;(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||&quot;string&quot;==typeof a&amp;&amp;a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||&quot;&quot;).match(E)||[];i&gt;h;h++)if(c=this[h],d=1===c.nodeType&amp;&amp;(c.className?(&quot; &quot;+c.className+&quot; &quot;).replace(ub,&quot; &quot;):&quot;&quot;)){f=0;while(e=b[f++])while(d.indexOf(&quot; &quot;+e+&quot; &quot;)&gt;=0)d=d.replace(&quot; &quot;+e+&quot; &quot;,&quot; &quot;);g=a?m.trim(d):&quot;&quot;,c.className!==g&amp;&amp;(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return&quot;boolean&quot;==typeof b&amp;&amp;&quot;string&quot;===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if(&quot;string&quot;===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||&quot;boolean&quot;===c)&amp;&amp;(this.className&amp;&amp;m._data(this,&quot;__className__&quot;,this.className),this.className=this.className||a===!1?&quot;&quot;:m._data(this,&quot;__className__&quot;)||&quot;&quot;)})},hasClass:function(a){for(var b=&quot; &quot;+a+&quot; &quot;,c=0,d=this.length;d&gt;c;c++)if(1===this[c].nodeType&amp;&amp;(&quot; &quot;+this[c].className+&quot; &quot;).replace(ub,&quot; &quot;).indexOf(b)&gt;=0)return!0;return!1}}),m.each(&quot;blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu&quot;.split(&quot; &quot;),function(a,b){m.fn[b]=function(a,c){return arguments.length&gt;0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,&quot;**&quot;):this.off(b,a||&quot;**&quot;,c)}});var vb=m.now(),wb=/\?/,xb=/(,)|(\[|{)|(}|])|&quot;(?:[^&quot;\\\r\n]|\\[&quot;\\\/bfnrt]|\\u[\da-fA-F]{4})*&quot;\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&amp;&amp;a.JSON.parse)return a.JSON.parse(b+&quot;&quot;);var c,d=null,e=m.trim(b+&quot;&quot;);return e&amp;&amp;!m.trim(e.replace(xb,function(a,b,e,f){return c&amp;&amp;b&amp;&amp;(d=0),0===d?a:(c=e||b,d+=!f-!e,&quot;&quot;)}))?Function(&quot;return &quot;+e)():m.error(&quot;Invalid JSON: &quot;+b)},m.parseXML=function(b){var c,d;if(!b||&quot;string&quot;!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,&quot;text/xml&quot;)):(c=new ActiveXObject(&quot;Microsoft.XMLDOM&quot;),c.async=&quot;false&quot;,c.loadXML(b))}catch(e){c=void 0}return c&amp;&amp;c.documentElement&amp;&amp;!c.getElementsByTagName(&quot;parsererror&quot;).length||m.error(&quot;Invalid XML: &quot;+b),c};var yb,zb,Ab=/#.*$/,Bb=/([?&amp;])_=[^&amp;]*/,Cb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Db=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Eb=/^(?:GET|HEAD)$/,Fb=/^\/\//,Gb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hb={},Ib={},Jb=&quot;*/&quot;.concat(&quot;*&quot;);try{zb=location.href}catch(Kb){zb=y.createElement(&quot;a&quot;),zb.href=&quot;&quot;,zb=zb.href}yb=Gb.exec(zb.toLowerCase())||[];function Lb(a){return function(b,c){&quot;string&quot;!=typeof b&amp;&amp;(c=b,b=&quot;*&quot;);var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])&quot;+&quot;===d.charAt(0)?(d=d.slice(1)||&quot;*&quot;,(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mb(a,b,c,d){var e={},f=a===Ib;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return&quot;string&quot;!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e[&quot;*&quot;]&amp;&amp;g(&quot;*&quot;)}function Nb(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&amp;&amp;((e[d]?a:c||(c={}))[d]=b[d]);return c&amp;&amp;m.extend(!0,a,c),a}function Ob(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while(&quot;*&quot;===i[0])i.shift(),void 0===e&amp;&amp;(e=a.mimeType||b.getResponseHeader(&quot;Content-Type&quot;));if(e)for(g in h)if(h[g]&amp;&amp;h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+&quot; &quot;+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&amp;&amp;i.unshift(f),c[f]):void 0}function Pb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&amp;&amp;(c[a.responseFields[f]]=b),!i&amp;&amp;d&amp;&amp;a.dataFilter&amp;&amp;(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if(&quot;*&quot;===f)f=i;else if(&quot;*&quot;!==i&amp;&amp;i!==f){if(g=j[i+&quot; &quot;+f]||j[&quot;* &quot;+f],!g)for(e in j)if(h=e.split(&quot; &quot;),h[1]===f&amp;&amp;(g=j[i+&quot; &quot;+h[0]]||j[&quot;* &quot;+h[0]])){g===!0?g=j[e]:j[e]!==!0&amp;&amp;(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&amp;&amp;a[&quot;throws&quot;])b=g(b);else try{b=g(b)}catch(l){return{state:&quot;parsererror&quot;,error:g?l:&quot;No conversion from &quot;+i+&quot; to &quot;+f}}}return{state:&quot;success&quot;,data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zb,type:&quot;GET&quot;,isLocal:Db.test(yb[1]),global:!0,processData:!0,async:!0,contentType:&quot;application/x-www-form-urlencoded; charset=UTF-8&quot;,accepts:{&quot;*&quot;:Jb,text:&quot;text/plain&quot;,html:&quot;text/html&quot;,xml:&quot;application/xml, text/xml&quot;,json:&quot;application/json, text/javascript&quot;},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:&quot;responseXML&quot;,text:&quot;responseText&quot;,json:&quot;responseJSON&quot;},converters:{&quot;* text&quot;:String,&quot;text html&quot;:!0,&quot;text json&quot;:m.parseJSON,&quot;text xml&quot;:m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nb(Nb(a,m.ajaxSettings),b):Nb(m.ajaxSettings,a)},ajaxPrefilter:Lb(Hb),ajaxTransport:Lb(Ib),ajax:function(a,b){&quot;object&quot;==typeof a&amp;&amp;(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&amp;&amp;(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks(&quot;once memory&quot;),q=k.statusCode||{},r={},s={},t=0,u=&quot;canceled&quot;,v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cb.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2&gt;t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&amp;&amp;i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zb)+&quot;&quot;).replace(Ab,&quot;&quot;).replace(Fb,yb[1]+&quot;//&quot;),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||&quot;*&quot;).toLowerCase().match(E)||[&quot;&quot;],null==k.crossDomain&amp;&amp;(c=Gb.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yb[1]&amp;&amp;c[2]===yb[2]&amp;&amp;(c[3]||(&quot;http:&quot;===c[1]?&quot;80&quot;:&quot;443&quot;))===(yb[3]||(&quot;http:&quot;===yb[1]?&quot;80&quot;:&quot;443&quot;)))),k.data&amp;&amp;k.processData&amp;&amp;&quot;string&quot;!=typeof k.data&amp;&amp;(k.data=m.param(k.data,k.traditional)),Mb(Hb,k,b,v),2===t)return v;h=m.event&amp;&amp;k.global,h&amp;&amp;0===m.active++&amp;&amp;m.event.trigger(&quot;ajaxStart&quot;),k.type=k.type.toUpperCase(),k.hasContent=!Eb.test(k.type),e=k.url,k.hasContent||(k.data&amp;&amp;(e=k.url+=(wb.test(e)?&quot;&amp;&quot;:&quot;?&quot;)+k.data,delete k.data),k.cache===!1&amp;&amp;(k.url=Bb.test(e)?e.replace(Bb,&quot;$1_=&quot;+vb++):e+(wb.test(e)?&quot;&amp;&quot;:&quot;?&quot;)+&quot;_=&quot;+vb++)),k.ifModified&amp;&amp;(m.lastModified[e]&amp;&amp;v.setRequestHeader(&quot;If-Modified-Since&quot;,m.lastModified[e]),m.etag[e]&amp;&amp;v.setRequestHeader(&quot;If-None-Match&quot;,m.etag[e])),(k.data&amp;&amp;k.hasContent&amp;&amp;k.contentType!==!1||b.contentType)&amp;&amp;v.setRequestHeader(&quot;Content-Type&quot;,k.contentType),v.setRequestHeader(&quot;Accept&quot;,k.dataTypes[0]&amp;&amp;k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+(&quot;*&quot;!==k.dataTypes[0]?&quot;, &quot;+Jb+&quot;; q=0.01&quot;:&quot;&quot;):k.accepts[&quot;*&quot;]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&amp;&amp;(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u=&quot;abort&quot;;for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mb(Ib,k,b,v)){v.readyState=1,h&amp;&amp;n.trigger(&quot;ajaxSend&quot;,[v,k]),k.async&amp;&amp;k.timeout&gt;0&amp;&amp;(g=setTimeout(function(){v.abort(&quot;timeout&quot;)},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2&gt;t))throw w;x(-1,w)}}else x(-1,&quot;No Transport&quot;);function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&amp;&amp;(t=2,g&amp;&amp;clearTimeout(g),i=void 0,f=d||&quot;&quot;,v.readyState=a&gt;0?4:0,j=a&gt;=200&amp;&amp;300&gt;a||304===a,c&amp;&amp;(u=Ob(k,v,c)),u=Pb(k,u,v,j),j?(k.ifModified&amp;&amp;(w=v.getResponseHeader(&quot;Last-Modified&quot;),w&amp;&amp;(m.lastModified[e]=w),w=v.getResponseHeader(&quot;etag&quot;),w&amp;&amp;(m.etag[e]=w)),204===a||&quot;HEAD&quot;===k.type?x=&quot;nocontent&quot;:304===a?x=&quot;notmodified&quot;:(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&amp;&amp;(x=&quot;error&quot;,0&gt;a&amp;&amp;(a=0))),v.status=a,v.statusText=(b||x)+&quot;&quot;,j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&amp;&amp;n.trigger(j?&quot;ajaxSuccess&quot;:&quot;ajaxError&quot;,[v,k,j?r:s]),p.fireWith(l,[v,x]),h&amp;&amp;(n.trigger(&quot;ajaxComplete&quot;,[v,k]),--m.active||m.event.trigger(&quot;ajaxStop&quot;)))}return v},getJSON:function(a,b,c){return m.get(a,b,c,&quot;json&quot;)},getScript:function(a,b){return m.get(a,void 0,b,&quot;script&quot;)}}),m.each([&quot;get&quot;,&quot;post&quot;],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&amp;&amp;(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:&quot;GET&quot;,dataType:&quot;script&quot;,async:!1,global:!1,&quot;throws&quot;:!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&amp;&amp;b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&amp;&amp;1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,&quot;body&quot;)||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth&lt;=0&amp;&amp;a.offsetHeight&lt;=0||!k.reliableHiddenOffsets()&amp;&amp;&quot;none&quot;===(a.style&amp;&amp;a.style.display||m.css(a,&quot;display&quot;))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qb=/%20/g,Rb=/\[\]$/,Sb=/\r?\n/g,Tb=/^(?:submit|button|image|reset|file)$/i,Ub=/^(?:input|select|textarea|keygen)/i;function Vb(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rb.test(a)?d(a,e):Vb(a+&quot;[&quot;+(&quot;object&quot;==typeof e?b:&quot;&quot;)+&quot;]&quot;,e,c,d)});else if(c||&quot;object&quot;!==m.type(b))d(a,b);else for(e in b)Vb(a+&quot;[&quot;+e+&quot;]&quot;,b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?&quot;&quot;:b,d[d.length]=encodeURIComponent(a)+&quot;=&quot;+encodeURIComponent(b)};if(void 0===b&amp;&amp;(b=m.ajaxSettings&amp;&amp;m.ajaxSettings.traditional),m.isArray(a)||a.jquery&amp;&amp;!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vb(c,a[c],b,e);return d.join(&quot;&amp;&quot;).replace(Qb,&quot;+&quot;)},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,&quot;elements&quot;);return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&amp;&amp;!m(this).is(&quot;:disabled&quot;)&amp;&amp;Ub.test(this.nodeName)&amp;&amp;!Tb.test(a)&amp;&amp;(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sb,&quot;\r\n&quot;)}}):{name:b.name,value:c.replace(Sb,&quot;\r\n&quot;)}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&amp;&amp;/^(get|post|head|put|delete|options)$/i.test(this.type)&amp;&amp;Zb()||$b()}:Zb;var Wb=0,Xb={},Yb=m.ajaxSettings.xhr();a.attachEvent&amp;&amp;a.attachEvent(&quot;onunload&quot;,function(){for(var a in Xb)Xb[a](void 0,!0)}),k.cors=!!Yb&amp;&amp;&quot;withCredentials&quot;in Yb,Yb=k.ajax=!!Yb,Yb&amp;&amp;m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&amp;&amp;f.overrideMimeType&amp;&amp;f.overrideMimeType(a.mimeType),a.crossDomain||c[&quot;X-Requested-With&quot;]||(c[&quot;X-Requested-With&quot;]=&quot;XMLHttpRequest&quot;);for(e in c)void 0!==c[e]&amp;&amp;f.setRequestHeader(e,c[e]+&quot;&quot;);f.send(a.hasContent&amp;&amp;a.data||null),b=function(c,e){var h,i,j;if(b&amp;&amp;(e||4===f.readyState))if(delete Xb[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&amp;&amp;f.abort();else{j={},h=f.status,&quot;string&quot;==typeof f.responseText&amp;&amp;(j.text=f.responseText);try{i=f.statusText}catch(k){i=&quot;&quot;}h||!a.isLocal||a.crossDomain?1223===h&amp;&amp;(h=204):h=j.text?200:404}j&amp;&amp;d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xb[g]=b:b()},abort:function(){b&amp;&amp;b(void 0,!0)}}}});function Zb(){try{return new a.XMLHttpRequest}catch(b){}}function $b(){try{return new a.ActiveXObject(&quot;Microsoft.XMLHTTP&quot;)}catch(b){}}m.ajaxSetup({accepts:{script:&quot;text/javascript, application/javascript, application/ecmascript, application/x-ecmascript&quot;},contents:{script:/(?:java|ecma)script/},converters:{&quot;text script&quot;:function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter(&quot;script&quot;,function(a){void 0===a.cache&amp;&amp;(a.cache=!1),a.crossDomain&amp;&amp;(a.type=&quot;GET&quot;,a.global=!1)}),m.ajaxTransport(&quot;script&quot;,function(a){if(a.crossDomain){var b,c=y.head||m(&quot;head&quot;)[0]||y.documentElement;return{send:function(d,e){b=y.createElement(&quot;script&quot;),b.async=!0,a.scriptCharset&amp;&amp;(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&amp;&amp;(b.onload=b.onreadystatechange=null,b.parentNode&amp;&amp;b.parentNode.removeChild(b),b=null,c||e(200,&quot;success&quot;))},c.insertBefore(b,c.firstChild)},abort:function(){b&amp;&amp;b.onload(void 0,!0)}}}});var _b=[],ac=/(=)\?(?=&amp;|$)|\?\?/;m.ajaxSetup({jsonp:&quot;callback&quot;,jsonpCallback:function(){var a=_b.pop()||m.expando+&quot;_&quot;+vb++;return this[a]=!0,a}}),m.ajaxPrefilter(&quot;json jsonp&quot;,function(b,c,d){var e,f,g,h=b.jsonp!==!1&amp;&amp;(ac.test(b.url)?&quot;url&quot;:&quot;string&quot;==typeof b.data&amp;&amp;!(b.contentType||&quot;&quot;).indexOf(&quot;application/x-www-form-urlencoded&quot;)&amp;&amp;ac.test(b.data)&amp;&amp;&quot;data&quot;);return h||&quot;jsonp&quot;===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ac,&quot;$1&quot;+e):b.jsonp!==!1&amp;&amp;(b.url+=(wb.test(b.url)?&quot;&amp;&quot;:&quot;?&quot;)+b.jsonp+&quot;=&quot;+e),b.converters[&quot;script json&quot;]=function(){return g||m.error(e+&quot; was not called&quot;),g[0]},b.dataTypes[0]=&quot;json&quot;,f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&amp;&amp;(b.jsonpCallback=c.jsonpCallback,_b.push(e)),g&amp;&amp;m.isFunction(f)&amp;&amp;f(g[0]),g=f=void 0}),&quot;script&quot;):void 0}),m.parseHTML=function(a,b,c){if(!a||&quot;string&quot;!=typeof a)return null;&quot;boolean&quot;==typeof b&amp;&amp;(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&amp;&amp;[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&amp;&amp;e.length&amp;&amp;m(e).remove(),m.merge([],d.childNodes))};var bc=m.fn.load;m.fn.load=function(a,b,c){if(&quot;string&quot;!=typeof a&amp;&amp;bc)return bc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(&quot; &quot;);return h&gt;=0&amp;&amp;(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&amp;&amp;&quot;object&quot;==typeof b&amp;&amp;(f=&quot;POST&quot;),g.length&gt;0&amp;&amp;m.ajax({url:a,type:f,dataType:&quot;html&quot;,data:b}).done(function(a){e=arguments,g.html(d?m(&quot;&lt;div&gt;&quot;).append(m.parseHTML(a)).find(d):a)}).complete(c&amp;&amp;function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each([&quot;ajaxStart&quot;,&quot;ajaxStop&quot;,&quot;ajaxComplete&quot;,&quot;ajaxError&quot;,&quot;ajaxSuccess&quot;,&quot;ajaxSend&quot;],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,&quot;position&quot;),l=m(a),n={};&quot;static&quot;===k&amp;&amp;(a.style.position=&quot;relative&quot;),h=l.offset(),f=m.css(a,&quot;top&quot;),i=m.css(a,&quot;left&quot;),j=(&quot;absolute&quot;===k||&quot;fixed&quot;===k)&amp;&amp;m.inArray(&quot;auto&quot;,[f,i])&gt;-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&amp;&amp;(b=b.call(a,c,h)),null!=b.top&amp;&amp;(n.top=b.top-h.top+g),null!=b.left&amp;&amp;(n.left=b.left-h.left+e),&quot;using&quot;in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&amp;&amp;e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&amp;&amp;(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return&quot;fixed&quot;===m.css(d,&quot;position&quot;)?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],&quot;html&quot;)||(c=a.offset()),c.top+=m.css(a[0],&quot;borderTopWidth&quot;,!0),c.left+=m.css(a[0],&quot;borderLeftWidth&quot;,!0)),{top:b.top-c.top-m.css(d,&quot;marginTop&quot;,!0),left:b.left-c.left-m.css(d,&quot;marginLeft&quot;,!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&amp;&amp;!m.nodeName(a,&quot;html&quot;)&amp;&amp;&quot;static&quot;===m.css(a,&quot;position&quot;))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:&quot;pageXOffset&quot;,scrollTop:&quot;pageYOffset&quot;},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each([&quot;top&quot;,&quot;left&quot;],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+&quot;px&quot;:c):void 0})}),m.each({Height:&quot;height&quot;,Width:&quot;width&quot;},function(a,b){m.each({padding:&quot;inner&quot;+a,content:b,&quot;&quot;:&quot;outer&quot;+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&amp;&amp;(c||&quot;boolean&quot;!=typeof d),g=c||(d===!0||e===!0?&quot;margin&quot;:&quot;border&quot;);return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement[&quot;client&quot;+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body[&quot;scroll&quot;+a],e[&quot;scroll&quot;+a],b.body[&quot;offset&quot;+a],e[&quot;offset&quot;+a],e[&quot;client&quot;+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,&quot;function&quot;==typeof define&amp;&amp;define.amd&amp;&amp;define(&quot;jquery&quot;,[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&amp;&amp;(a.$=fc),b&amp;&amp;a.jQuery===m&amp;&amp;(a.jQuery=ec),m},typeof b===K&amp;&amp;(a.jQuery=a.$=m),m});

=====================================================
== File: src/homepage/assets/js/lightbox.js
=====================================================
/*!
 * Lightbox v2.8.2
 * by Lokesh Dhakar
 *
 * More info:
 * http://lokeshdhakar.com/projects/lightbox2/
 *
 * Copyright 2007, 2015 Lokesh Dhakar
 * Released under the MIT license
 * https://github.com/lokesh/lightbox2/blob/master/LICENSE
 */

// Uses Node, AMD or browser globals to create a module.
(function (root, factory) {
    if (typeof define === 'function' &amp;&amp; define.amd) {
        // AMD. Register as an anonymous module.
        define(['jquery'], factory);
    } else if (typeof exports === 'object') {
        // Node. Does not work with strict CommonJS, but
        // only CommonJS-like environments that support module.exports,
        // like Node.
        module.exports = factory(require('jquery'));
    } else {
        // Browser globals (root is window)
        root.lightbox = factory(root.jQuery);
    }
}(this, function ($) {

  function Lightbox(options) {
    this.album = [];
    this.currentImageIndex = void 0;
    this.init();

    // options
    this.options = $.extend({}, this.constructor.defaults);
    this.option(options);
  }

  // Descriptions of all options available on the demo site:
  // http://lokeshdhakar.com/projects/lightbox2/index.html#options
  Lightbox.defaults = {
    albumLabel: 'Image %1 of %2',
    alwaysShowNavOnTouchDevices: false,
    fadeDuration: 500,
    fitImagesInViewport: true,
    // maxWidth: 800,
    // maxHeight: 600,
    positionFromTop: 50,
    resizeDuration: 700,
    showImageNumberLabel: true,

=====================================================
== File: src/homepage/assets/js/ie/PIE.htc
=====================================================
&lt;!--
PIE: CSS3 rendering for IE
Version 1.0.0
http://css3pie.com
Dual-licensed for use under the Apache License Version 2.0 or the General Public License (GPL) Version 2.
--&gt;
&lt;PUBLIC:COMPONENT lightWeight=&quot;true&quot;&gt;
&lt;!-- saved from url=(0014)about:internet --&gt;
&lt;PUBLIC:ATTACH EVENT=&quot;oncontentready&quot; FOR=&quot;element&quot; ONEVENT=&quot;init()&quot; /&gt;
&lt;PUBLIC:ATTACH EVENT=&quot;ondocumentready&quot; FOR=&quot;element&quot; ONEVENT=&quot;init()&quot; /&gt;
&lt;PUBLIC:ATTACH EVENT=&quot;ondetach&quot; FOR=&quot;element&quot; ONEVENT=&quot;cleanup()&quot; /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
var doc = element.document;var f=window.PIE;
if(!f){f=window.PIE={F:&quot;-pie-&quot;,nb:&quot;Pie&quot;,La:&quot;pie_&quot;,Ac:{TD:1,TH:1},cc:{TABLE:1,THEAD:1,TBODY:1,TFOOT:1,TR:1,INPUT:1,TEXTAREA:1,SELECT:1,OPTION:1,IMG:1,HR:1},fc:{A:1,INPUT:1,TEXTAREA:1,SELECT:1,BUTTON:1},Gd:{submit:1,button:1,reset:1},aa:function(){}};try{doc.execCommand(&quot;BackgroundImageCache&quot;,false,true)}catch(aa){}for(var ba=4,Z=doc.createElement(&quot;div&quot;),ca=Z.getElementsByTagName(&quot;i&quot;),ga;Z.innerHTML=&quot;&lt;!--[if gt IE &quot;+ ++ba+&quot;]&gt;&lt;i&gt;&lt;/i&gt;&lt;![endif]--\&gt;&quot;,ca[0];);f.O=ba;if(ba===6)f.F=f.F.replace(/^-/,&quot;&quot;);f.ja=
doc.documentMode||f.O;Z.innerHTML='&lt;v:shape adj=&quot;1&quot;/&gt;';ga=Z.firstChild;ga.style.behavior=&quot;url(#default#VML)&quot;;f.zc=typeof ga.adj===&quot;object&quot;;(function(){var a,b=0,c={};f.p={Za:function(d){if(!a){a=doc.createDocumentFragment();a.namespaces.add(&quot;css3vml&quot;,&quot;urn:schemas-microsoft-com:vml&quot;)}return a.createElement(&quot;css3vml:&quot;+d)},Ba:function(d){return d&amp;&amp;d._pieId||(d._pieId=&quot;_&quot;+ ++b)},Eb:function(d){var e,g,j,i,h=arguments;e=1;for(g=h.length;e&lt;g;e++){i=h[e];for(j in i)if(i.hasOwnProperty(j))d[j]=i[j]}return d},
Rb:function(d,e,g){var j=c[d],i,h;if(j)Object.prototype.toString.call(j)===&quot;[object Array]&quot;?j.push([e,g]):e.call(g,j);else{h=c[d]=[[e,g]];i=new Image;i.onload=function(){j=c[d]={h:i.width,f:i.height};for(var k=0,n=h.length;k&lt;n;k++)h[k][0].call(h[k][1],j);i.onload=null};i.src=d}}}})();f.Na={gc:function(a,b,c,d){function e(){k=j&gt;=90&amp;&amp;j&lt;270?b:0;n=j&lt;180?c:0;m=b-k;p=c-n}function g(){for(;j&lt;0;)j+=360;j%=360}var j=d.sa;d=d.zb;var i,h,k,n,m,p,r,t;if(d){d=d.coords(a,b,c);i=d.x;h=d.y}if(j){j=j.jd();g();e();
if(!d){i=k;h=n}d=f.Na.tc(i,h,j,m,p);a=d[0];d=d[1]}else if(d){a=b-i;d=c-h}else{i=h=a=0;d=c}r=a-i;t=d-h;if(j===void 0){j=!r?t&lt;0?90:270:!t?r&lt;0?180:0:-Math.atan2(t,r)/Math.PI*180;g();e()}return{sa:j,xc:i,yc:h,td:a,ud:d,Wd:k,Xd:n,rd:m,sd:p,kd:r,ld:t,rc:f.Na.dc(i,h,a,d)}},tc:function(a,b,c,d,e){if(c===0||c===180)return[d,b];else if(c===90||c===270)return[a,e];else{c=Math.tan(-c*Math.PI/180);a=c*a-b;b=-1/c;d=b*d-e;e=b-c;return[(d-a)/e,(c*d-b*a)/e]}},dc:function(a,b,c,d){a=c-a;b=d-b;return Math.abs(a===0?
b:b===0?a:Math.sqrt(a*a+b*b))}};f.ea=function(){this.Gb=[];this.oc={}};f.ea.prototype={ba:function(a){var b=f.p.Ba(a),c=this.oc,d=this.Gb;if(!(b in c)){c[b]=d.length;d.push(a)}},Ha:function(a){a=f.p.Ba(a);var b=this.oc;if(a&amp;&amp;a in b){delete this.Gb[b[a]];delete b[a]}},xa:function(){for(var a=this.Gb,b=a.length;b--;)a[b]&amp;&amp;a[b]()}};f.Oa=new f.ea;f.Oa.Rd=function(){var a=this,b;if(!a.Sd){b=doc.documentElement.currentStyle.getAttribute(f.F+&quot;poll-interval&quot;)||250;(function c(){a.xa();setTimeout(c,b)})();
a.Sd=1}};(function(){function a(){f.L.xa();window.detachEvent(&quot;onunload&quot;,a);window.PIE=null}f.L=new f.ea;window.attachEvent(&quot;onunload&quot;,a);f.L.ta=function(b,c,d){b.attachEvent(c,d);this.ba(function(){b.detachEvent(c,d)})}})();f.Qa=new f.ea;f.L.ta(window,&quot;onresize&quot;,function(){f.Qa.xa()});(function(){function a(){f.mb.xa()}f.mb=new f.ea;f.L.ta(window,&quot;onscroll&quot;,a);f.Qa.ba(a)})();(function(){function a(){c=f.kb.md()}function b(){if(c){for(var d=0,e=c.length;d&lt;e;d++)f.attach(c[d]);c=0}}var c;if(f.ja&lt;9){f.L.ta(window,
&quot;onbeforeprint&quot;,a);f.L.ta(window,&quot;onafterprint&quot;,b)}})();f.lb=new f.ea;f.L.ta(doc,&quot;onmouseup&quot;,function(){f.lb.xa()});f.he=function(){function a(h){this.Y=h}var b=doc.createElement(&quot;length-calc&quot;),c=doc.body||doc.documentElement,d=b.style,e={},g=[&quot;mm&quot;,&quot;cm&quot;,&quot;in&quot;,&quot;pt&quot;,&quot;pc&quot;],j=g.length,i={};d.position=&quot;absolute&quot;;d.top=d.left=&quot;-9999px&quot;;for(c.appendChild(b);j--;){d.width=&quot;100&quot;+g[j];e[g[j]]=b.offsetWidth/100}c.removeChild(b);d.width=&quot;1em&quot;;a.prototype={Kb:/(px|em|ex|mm|cm|in|pt|pc|%)$/,ic:function(){var h=
this.Jd;if(h===void 0)h=this.Jd=parseFloat(this.Y);return h},yb:function(){var h=this.ae;if(!h)h=this.ae=(h=this.Y.match(this.Kb))&amp;&amp;h[0]||&quot;px&quot;;return h},a:function(h,k){var n=this.ic(),m=this.yb();switch(m){case &quot;px&quot;:return n;case &quot;%&quot;:return n*(typeof k===&quot;function&quot;?k():k)/100;case &quot;em&quot;:return n*this.xb(h);case &quot;ex&quot;:return n*this.xb(h)/2;default:return n*e[m]}},xb:function(h){var k=h.currentStyle.fontSize,n,m;if(k.indexOf(&quot;px&quot;)&gt;0)return parseFloat(k);else if(h.tagName in f.cc){m=this;n=h.parentNode;
return f.n(k).a(n,function(){return m.xb(n)})}else{h.appendChild(b);k=b.offsetWidth;b.parentNode===h&amp;&amp;h.removeChild(b);return k}}};f.n=function(h){return i[h]||(i[h]=new a(h))};return a}();f.Ja=function(){function a(e){this.X=e}var b=f.n(&quot;50%&quot;),c={top:1,center:1,bottom:1},d={left:1,center:1,right:1};a.prototype={zd:function(){if(!this.ac){var e=this.X,g=e.length,j=f.v,i=j.qa,h=f.n(&quot;0&quot;);i=i.na;h=[&quot;left&quot;,h,&quot;top&quot;,h];if(g===1){e.push(new j.ob(i,&quot;center&quot;));g++}if(g===2){i&amp;(e[0].k|e[1].k)&amp;&amp;e[0].d in c&amp;&amp;
e[1].d in d&amp;&amp;e.push(e.shift());if(e[0].k&amp;i)if(e[0].d===&quot;center&quot;)h[1]=b;else h[0]=e[0].d;else if(e[0].W())h[1]=f.n(e[0].d);if(e[1].k&amp;i)if(e[1].d===&quot;center&quot;)h[3]=b;else h[2]=e[1].d;else if(e[1].W())h[3]=f.n(e[1].d)}this.ac=h}return this.ac},coords:function(e,g,j){var i=this.zd(),h=i[1].a(e,g);e=i[3].a(e,j);return{x:i[0]===&quot;right&quot;?g-h:h,y:i[2]===&quot;bottom&quot;?j-e:e}}};return a}();f.Ka=function(){function a(b,c){this.h=b;this.f=c}a.prototype={a:function(b,c,d,e,g){var j=this.h,i=this.f,h=c/d;e=e/g;if(j===
&quot;contain&quot;){j=e&gt;h?c:d*e;i=e&gt;h?c/e:d}else if(j===&quot;cover&quot;){j=e&lt;h?c:d*e;i=e&lt;h?c/e:d}else if(j===&quot;auto&quot;){i=i===&quot;auto&quot;?g:i.a(b,d);j=i*e}else{j=j.a(b,c);i=i===&quot;auto&quot;?j/e:i.a(b,d)}return{h:j,f:i}}};a.Kc=new a(&quot;auto&quot;,&quot;auto&quot;);return a}();f.Ec=function(){function a(b){this.Y=b}a.prototype={Kb:/[a-z]+$/i,yb:function(){return this.ad||(this.ad=this.Y.match(this.Kb)[0].toLowerCase())},jd:function(){var b=this.Vc,c;if(b===undefined){b=this.yb();c=parseFloat(this.Y,10);b=this.Vc=b===&quot;deg&quot;?c:b===&quot;rad&quot;?c/Math.PI*180:
b===&quot;grad&quot;?c/400*360:b===&quot;turn&quot;?c*360:0}return b}};return a}();f.Jc=function(){function a(c){this.Y=c}var b={};a.Qd=/\s*rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d+|\d*\.\d+)\s*\)\s*/;a.Fb={aliceblue:&quot;F0F8FF&quot;,antiquewhite:&quot;FAEBD7&quot;,aqua:&quot;0FF&quot;,aquamarine:&quot;7FFFD4&quot;,azure:&quot;F0FFFF&quot;,beige:&quot;F5F5DC&quot;,bisque:&quot;FFE4C4&quot;,black:&quot;000&quot;,blanchedalmond:&quot;FFEBCD&quot;,blue:&quot;00F&quot;,blueviolet:&quot;8A2BE2&quot;,brown:&quot;A52A2A&quot;,burlywood:&quot;DEB887&quot;,cadetblue:&quot;5F9EA0&quot;,chartreuse:&quot;7FFF00&quot;,chocolate:&quot;D2691E&quot;,coral:&quot;FF7F50&quot;,cornflowerblue:&quot;6495ED&quot;,
cornsilk:&quot;FFF8DC&quot;,crimson:&quot;DC143C&quot;,cyan:&quot;0FF&quot;,darkblue:&quot;00008B&quot;,darkcyan:&quot;008B8B&quot;,darkgoldenrod:&quot;B8860B&quot;,darkgray:&quot;A9A9A9&quot;,darkgreen:&quot;006400&quot;,darkkhaki:&quot;BDB76B&quot;,darkmagenta:&quot;8B008B&quot;,darkolivegreen:&quot;556B2F&quot;,darkorange:&quot;FF8C00&quot;,darkorchid:&quot;9932CC&quot;,darkred:&quot;8B0000&quot;,darksalmon:&quot;E9967A&quot;,darkseagreen:&quot;8FBC8F&quot;,darkslateblue:&quot;483D8B&quot;,darkslategray:&quot;2F4F4F&quot;,darkturquoise:&quot;00CED1&quot;,darkviolet:&quot;9400D3&quot;,deeppink:&quot;FF1493&quot;,deepskyblue:&quot;00BFFF&quot;,dimgray:&quot;696969&quot;,dodgerblue:&quot;1E90FF&quot;,firebrick:&quot;B22222&quot;,floralwhite:&quot;FFFAF0&quot;,
forestgreen:&quot;228B22&quot;,fuchsia:&quot;F0F&quot;,gainsboro:&quot;DCDCDC&quot;,ghostwhite:&quot;F8F8FF&quot;,gold:&quot;FFD700&quot;,goldenrod:&quot;DAA520&quot;,gray:&quot;808080&quot;,green:&quot;008000&quot;,greenyellow:&quot;ADFF2F&quot;,honeydew:&quot;F0FFF0&quot;,hotpink:&quot;FF69B4&quot;,indianred:&quot;CD5C5C&quot;,indigo:&quot;4B0082&quot;,ivory:&quot;FFFFF0&quot;,khaki:&quot;F0E68C&quot;,lavender:&quot;E6E6FA&quot;,lavenderblush:&quot;FFF0F5&quot;,lawngreen:&quot;7CFC00&quot;,lemonchiffon:&quot;FFFACD&quot;,lightblue:&quot;ADD8E6&quot;,lightcoral:&quot;F08080&quot;,lightcyan:&quot;E0FFFF&quot;,lightgoldenrodyellow:&quot;FAFAD2&quot;,lightgreen:&quot;90EE90&quot;,lightgrey:&quot;D3D3D3&quot;,lightpink:&quot;FFB6C1&quot;,lightsalmon:&quot;FFA07A&quot;,
lightseagreen:&quot;20B2AA&quot;,lightskyblue:&quot;87CEFA&quot;,lightslategray:&quot;789&quot;,lightsteelblue:&quot;B0C4DE&quot;,lightyellow:&quot;FFFFE0&quot;,lime:&quot;0F0&quot;,limegreen:&quot;32CD32&quot;,linen:&quot;FAF0E6&quot;,magenta:&quot;F0F&quot;,maroon:&quot;800000&quot;,mediumauqamarine:&quot;66CDAA&quot;,mediumblue:&quot;0000CD&quot;,mediumorchid:&quot;BA55D3&quot;,mediumpurple:&quot;9370D8&quot;,mediumseagreen:&quot;3CB371&quot;,mediumslateblue:&quot;7B68EE&quot;,mediumspringgreen:&quot;00FA9A&quot;,mediumturquoise:&quot;48D1CC&quot;,mediumvioletred:&quot;C71585&quot;,midnightblue:&quot;191970&quot;,mintcream:&quot;F5FFFA&quot;,mistyrose:&quot;FFE4E1&quot;,moccasin:&quot;FFE4B5&quot;,navajowhite:&quot;FFDEAD&quot;,
navy:&quot;000080&quot;,oldlace:&quot;FDF5E6&quot;,olive:&quot;808000&quot;,olivedrab:&quot;688E23&quot;,orange:&quot;FFA500&quot;,orangered:&quot;FF4500&quot;,orchid:&quot;DA70D6&quot;,palegoldenrod:&quot;EEE8AA&quot;,palegreen:&quot;98FB98&quot;,paleturquoise:&quot;AFEEEE&quot;,palevioletred:&quot;D87093&quot;,papayawhip:&quot;FFEFD5&quot;,peachpuff:&quot;FFDAB9&quot;,peru:&quot;CD853F&quot;,pink:&quot;FFC0CB&quot;,plum:&quot;DDA0DD&quot;,powderblue:&quot;B0E0E6&quot;,purple:&quot;800080&quot;,red:&quot;F00&quot;,rosybrown:&quot;BC8F8F&quot;,royalblue:&quot;4169E1&quot;,saddlebrown:&quot;8B4513&quot;,salmon:&quot;FA8072&quot;,sandybrown:&quot;F4A460&quot;,seagreen:&quot;2E8B57&quot;,seashell:&quot;FFF5EE&quot;,sienna:&quot;A0522D&quot;,silver:&quot;C0C0C0&quot;,skyblue:&quot;87CEEB&quot;,
slateblue:&quot;6A5ACD&quot;,slategray:&quot;708090&quot;,snow:&quot;FFFAFA&quot;,springgreen:&quot;00FF7F&quot;,steelblue:&quot;4682B4&quot;,tan:&quot;D2B48C&quot;,teal:&quot;008080&quot;,thistle:&quot;D8BFD8&quot;,tomato:&quot;FF6347&quot;,turquoise:&quot;40E0D0&quot;,violet:&quot;EE82EE&quot;,wheat:&quot;F5DEB3&quot;,white:&quot;FFF&quot;,whitesmoke:&quot;F5F5F5&quot;,yellow:&quot;FF0&quot;,yellowgreen:&quot;9ACD32&quot;};a.prototype={parse:function(){if(!this.Ua){var c=this.Y,d;if(d=c.match(a.Qd)){this.Ua=&quot;rgb(&quot;+d[1]+&quot;,&quot;+d[2]+&quot;,&quot;+d[3]+&quot;)&quot;;this.Yb=parseFloat(d[4])}else{if((d=c.toLowerCase())in a.Fb)c=&quot;#&quot;+a.Fb[d];this.Ua=c;this.Yb=c===&quot;transparent&quot;?0:
1}}},U:function(c){this.parse();return this.Ua===&quot;currentColor&quot;?c.currentStyle.color:this.Ua},fa:function(){this.parse();return this.Yb}};f.ha=function(c){return b[c]||(b[c]=new a(c))};return a}();f.v=function(){function a(c){this.$a=c;this.ch=0;this.X=[];this.Ga=0}var b=a.qa={Ia:1,Wb:2,z:4,Lc:8,Xb:16,na:32,K:64,oa:128,pa:256,Ra:512,Tc:1024,URL:2048};a.ob=function(c,d){this.k=c;this.d=d};a.ob.prototype={Ca:function(){return this.k&amp;b.K||this.k&amp;b.oa&amp;&amp;this.d===&quot;0&quot;},W:function(){return this.Ca()||this.k&amp;
b.Ra}};a.prototype={de:/\s/,Kd:/^[\+\-]?(\d*\.)?\d+/,url:/^url\(\s*(&quot;([^&quot;]*)&quot;|'([^']*)'|([!#$%&amp;*-~]*))\s*\)/i,nc:/^\-?[_a-z][\w-]*/i,Yd:/^(&quot;([^&quot;]*)&quot;|'([^']*)')/,Bd:/^#([\da-f]{6}|[\da-f]{3})/i,be:{px:b.K,em:b.K,ex:b.K,mm:b.K,cm:b.K,&quot;in&quot;:b.K,pt:b.K,pc:b.K,deg:b.Ia,rad:b.Ia,grad:b.Ia},fd:{rgb:1,rgba:1,hsl:1,hsla:1},next:function(c){function d(p,r){p=new a.ob(p,r);if(!c){k.X.push(p);k.Ga++}return p}function e(){k.Ga++;return null}var g,j,i,h,k=this;if(this.Ga&lt;this.X.length)return this.X[this.Ga++];for(;this.de.test(this.$a.charAt(this.ch));)this.ch++;
if(this.ch&gt;=this.$a.length)return e();j=this.ch;g=this.$a.substring(this.ch);i=g.charAt(0);switch(i){case &quot;#&quot;:if(h=g.match(this.Bd)){this.ch+=h[0].length;return d(b.z,h[0])}break;case '&quot;':case &quot;'&quot;:if(h=g.match(this.Yd)){this.ch+=h[0].length;return d(b.Tc,h[2]||h[3]||&quot;&quot;)}break;case &quot;/&quot;:case &quot;,&quot;:this.ch++;return d(b.pa,i);case &quot;u&quot;:if(h=g.match(this.url)){this.ch+=h[0].length;return d(b.URL,h[2]||h[3]||h[4]||&quot;&quot;)}}if(h=g.match(this.Kd)){i=h[0];this.ch+=i.length;if(g.charAt(i.length)===&quot;%&quot;){this.ch++;
return d(b.Ra,i+&quot;%&quot;)}if(h=g.substring(i.length).match(this.nc)){i+=h[0];this.ch+=h[0].length;return d(this.be[h[0].toLowerCase()]||b.Lc,i)}return d(b.oa,i)}if(h=g.match(this.nc)){i=h[0];this.ch+=i.length;if(i.toLowerCase()in f.Jc.Fb||i===&quot;currentColor&quot;||i===&quot;transparent&quot;)return d(b.z,i);if(g.charAt(i.length)===&quot;(&quot;){this.ch++;if(i.toLowerCase()in this.fd){g=function(p){return p&amp;&amp;p.k&amp;b.oa};h=function(p){return p&amp;&amp;p.k&amp;(b.oa|b.Ra)};var n=function(p,r){return p&amp;&amp;p.d===r},m=function(){return k.next(1)};
if((i.charAt(0)===&quot;r&quot;?h(m()):g(m()))&amp;&amp;n(m(),&quot;,&quot;)&amp;&amp;h(m())&amp;&amp;n(m(),&quot;,&quot;)&amp;&amp;h(m())&amp;&amp;(i===&quot;rgb&quot;||i===&quot;hsa&quot;||n(m(),&quot;,&quot;)&amp;&amp;g(m()))&amp;&amp;n(m(),&quot;)&quot;))return d(b.z,this.$a.substring(j,this.ch));return e()}return d(b.Xb,i)}return d(b.na,i)}this.ch++;return d(b.Wb,i)},D:function(){return this.X[this.Ga-- -2]},all:function(){for(;this.next(););return this.X},ma:function(c,d){for(var e=[],g,j;g=this.next();){if(c(g)){j=true;this.D();break}e.push(g)}return d&amp;&amp;!j?null:e}};return a}();var ha=function(a){this.e=a};ha.prototype=
{Z:0,Od:function(){var a=this.qb,b;return!a||(b=this.o())&amp;&amp;(a.x!==b.x||a.y!==b.y)},Td:function(){var a=this.qb,b;return!a||(b=this.o())&amp;&amp;(a.h!==b.h||a.f!==b.f)},hc:function(){var a=this.e,b=a.getBoundingClientRect(),c=f.ja===9,d=f.O===7,e=b.right-b.left;return{x:b.left,y:b.top,h:c||d?a.offsetWidth:e,f:c||d?a.offsetHeight:b.bottom-b.top,Hd:d&amp;&amp;e?a.offsetWidth/e:1}},o:function(){return this.Z?this.Va||(this.Va=this.hc()):this.hc()},Ad:function(){return!!this.qb},cb:function(){++this.Z},hb:function(){if(!--this.Z){if(this.Va)this.qb=
this.Va;this.Va=null}}};(function(){function a(b){var c=f.p.Ba(b);return function(){if(this.Z){var d=this.$b||(this.$b={});return c in d?d[c]:(d[c]=b.call(this))}else return b.call(this)}}f.B={Z:0,ka:function(b){function c(d){this.e=d;this.Zb=this.ia()}f.p.Eb(c.prototype,f.B,b);c.$c={};return c},j:function(){var b=this.ia(),c=this.constructor.$c;return b?b in c?c[b]:(c[b]=this.la(b)):null},ia:a(function(){var b=this.e,c=this.constructor,d=b.style;b=b.currentStyle;var e=this.wa,g=this.Fa,j=c.Yc||(c.Yc=
f.F+e);c=c.Zc||(c.Zc=f.nb+g.charAt(0).toUpperCase()+g.substring(1));return d[c]||b.getAttribute(j)||d[g]||b.getAttribute(e)}),i:a(function(){return!!this.j()}),H:a(function(){var b=this.ia(),c=b!==this.Zb;this.Zb=b;return c}),va:a,cb:function(){++this.Z},hb:function(){--this.Z||delete this.$b}}})();f.Sb=f.B.ka({wa:f.F+&quot;background&quot;,Fa:f.nb+&quot;Background&quot;,cd:{scroll:1,fixed:1,local:1},fb:{&quot;repeat-x&quot;:1,&quot;repeat-y&quot;:1,repeat:1,&quot;no-repeat&quot;:1},sc:{&quot;padding-box&quot;:1,&quot;border-box&quot;:1,&quot;content-box&quot;:1},Pd:{top:1,right:1,
bottom:1,left:1,center:1},Ud:{contain:1,cover:1},eb:{Ma:&quot;backgroundClip&quot;,z:&quot;backgroundColor&quot;,da:&quot;backgroundImage&quot;,Pa:&quot;backgroundOrigin&quot;,S:&quot;backgroundPosition&quot;,T:&quot;backgroundRepeat&quot;,Sa:&quot;backgroundSize&quot;},la:function(a){function b(s){return s&amp;&amp;s.W()||s.k&amp;k&amp;&amp;s.d in t}function c(s){return s&amp;&amp;(s.W()&amp;&amp;f.n(s.d)||s.d===&quot;auto&quot;&amp;&amp;&quot;auto&quot;)}var d=this.e.currentStyle,e,g,j,i=f.v.qa,h=i.pa,k=i.na,n=i.z,m,p,r=0,t=this.Pd,v,l,q={M:[]};if(this.wb()){e=new f.v(a);for(j={};g=e.next();){m=g.k;p=g.d;if(!j.P&amp;&amp;m&amp;i.Xb&amp;&amp;p===
&quot;linear-gradient&quot;){v={ca:[],P:p};for(l={};g=e.next();){m=g.k;p=g.d;if(m&amp;i.Wb&amp;&amp;p===&quot;)&quot;){l.color&amp;&amp;v.ca.push(l);v.ca.length&gt;1&amp;&amp;f.p.Eb(j,v);break}if(m&amp;n){if(v.sa||v.zb){g=e.D();if(g.k!==h)break;e.next()}l={color:f.ha(p)};g=e.next();if(g.W())l.db=f.n(g.d);else e.D()}else if(m&amp;i.Ia&amp;&amp;!v.sa&amp;&amp;!l.color&amp;&amp;!v.ca.length)v.sa=new f.Ec(g.d);else if(b(g)&amp;&amp;!v.zb&amp;&amp;!l.color&amp;&amp;!v.ca.length){e.D();v.zb=new f.Ja(e.ma(function(s){return!b(s)},false))}else if(m&amp;h&amp;&amp;p===&quot;,&quot;){if(l.color){v.ca.push(l);l={}}}else break}}else if(!j.P&amp;&amp;
m&amp;i.URL){j.Ab=p;j.P=&quot;image&quot;}else if(b(g)&amp;&amp;!j.$){e.D();j.$=new f.Ja(e.ma(function(s){return!b(s)},false))}else if(m&amp;k)if(p in this.fb&amp;&amp;!j.bb)j.bb=p;else if(p in this.sc&amp;&amp;!j.Wa){j.Wa=p;if((g=e.next())&amp;&amp;g.k&amp;k&amp;&amp;g.d in this.sc)j.ub=g.d;else{j.ub=p;e.D()}}else if(p in this.cd&amp;&amp;!j.bc)j.bc=p;else return null;else if(m&amp;n&amp;&amp;!q.color)q.color=f.ha(p);else if(m&amp;h&amp;&amp;p===&quot;/&quot;&amp;&amp;!j.Xa&amp;&amp;j.$){g=e.next();if(g.k&amp;k&amp;&amp;g.d in this.Ud)j.Xa=new f.Ka(g.d);else if(g=c(g)){m=c(e.next());if(!m){m=g;e.D()}j.Xa=new f.Ka(g,m)}else return null}else if(m&amp;
h&amp;&amp;p===&quot;,&quot;&amp;&amp;j.P){j.Hb=a.substring(r,e.ch-1);r=e.ch;q.M.push(j);j={}}else return null}if(j.P){j.Hb=a.substring(r);q.M.push(j)}}else this.Bc(f.ja&lt;9?function(){var s=this.eb,o=d[s.S+&quot;X&quot;],u=d[s.S+&quot;Y&quot;],x=d[s.da],y=d[s.z];if(y!==&quot;transparent&quot;)q.color=f.ha(y);if(x!==&quot;none&quot;)q.M=[{P:&quot;image&quot;,Ab:(new f.v(x)).next().d,bb:d[s.T],$:new f.Ja((new f.v(o+&quot; &quot;+u)).all())}]}:function(){var s=this.eb,o=/\s*,\s*/,u=d[s.da].split(o),x=d[s.z],y,z,B,E,D,C;if(x!==&quot;transparent&quot;)q.color=f.ha(x);if((E=u.length)&amp;&amp;u[0]!==&quot;none&quot;){x=
d[s.T].split(o);y=d[s.S].split(o);z=d[s.Pa].split(o);B=d[s.Ma].split(o);s=d[s.Sa].split(o);q.M=[];for(o=0;o&lt;E;o++)if((D=u[o])&amp;&amp;D!==&quot;none&quot;){C=s[o].split(&quot; &quot;);q.M.push({Hb:D+&quot; &quot;+x[o]+&quot; &quot;+y[o]+&quot; / &quot;+s[o]+&quot; &quot;+z[o]+&quot; &quot;+B[o],P:&quot;image&quot;,Ab:(new f.v(D)).next().d,bb:x[o],$:new f.Ja((new f.v(y[o])).all()),Wa:z[o],ub:B[o],Xa:new f.Ka(C[0],C[1])})}}});return q.color||q.M[0]?q:null},Bc:function(a){var b=f.ja&gt;8,c=this.eb,d=this.e.runtimeStyle,e=d[c.da],g=d[c.z],j=d[c.T],i,h,k,n;if(e)d[c.da]=&quot;&quot;;if(g)d[c.z]=&quot;&quot;;if(j)d[c.T]=
&quot;&quot;;if(b){i=d[c.Ma];h=d[c.Pa];n=d[c.S];k=d[c.Sa];if(i)d[c.Ma]=&quot;&quot;;if(h)d[c.Pa]=&quot;&quot;;if(n)d[c.S]=&quot;&quot;;if(k)d[c.Sa]=&quot;&quot;}a=a.call(this);if(e)d[c.da]=e;if(g)d[c.z]=g;if(j)d[c.T]=j;if(b){if(i)d[c.Ma]=i;if(h)d[c.Pa]=h;if(n)d[c.S]=n;if(k)d[c.Sa]=k}return a},ia:f.B.va(function(){return this.wb()||this.Bc(function(){var a=this.e.currentStyle,b=this.eb;return a[b.z]+&quot; &quot;+a[b.da]+&quot; &quot;+a[b.T]+&quot; &quot;+a[b.S+&quot;X&quot;]+&quot; &quot;+a[b.S+&quot;Y&quot;]})}),wb:f.B.va(function(){var a=this.e;return a.style[this.Fa]||a.currentStyle.getAttribute(this.wa)}),
qc:function(){var a=0;if(f.O&lt;7){a=this.e;a=&quot;&quot;+(a.style[f.nb+&quot;PngFix&quot;]||a.currentStyle.getAttribute(f.F+&quot;png-fix&quot;))===&quot;true&quot;}return a},i:f.B.va(function(){return(this.wb()||this.qc())&amp;&amp;!!this.j()})});f.Vb=f.B.ka({wc:[&quot;Top&quot;,&quot;Right&quot;,&quot;Bottom&quot;,&quot;Left&quot;],Id:{thin:&quot;1px&quot;,medium:&quot;3px&quot;,thick:&quot;5px&quot;},la:function(){var a={},b={},c={},d=false,e=true,g=true,j=true;this.Cc(function(){for(var i=this.e.currentStyle,h=0,k,n,m,p,r,t,v;h&lt;4;h++){m=this.wc[h];v=m.charAt(0).toLowerCase();k=b[v]=i[&quot;border&quot;+m+&quot;Style&quot;];n=i[&quot;border&quot;+
m+&quot;Color&quot;];m=i[&quot;border&quot;+m+&quot;Width&quot;];if(h&gt;0){if(k!==p)g=false;if(n!==r)e=false;if(m!==t)j=false}p=k;r=n;t=m;c[v]=f.ha(n);m=a[v]=f.n(b[v]===&quot;none&quot;?&quot;0&quot;:this.Id[m]||m);if(m.a(this.e)&gt;0)d=true}});return d?{J:a,Zd:b,gd:c,ee:j,hd:e,$d:g}:null},ia:f.B.va(function(){var a=this.e,b=a.currentStyle,c;a.tagName in f.Ac&amp;&amp;a.offsetParent.currentStyle.borderCollapse===&quot;collapse&quot;||this.Cc(function(){c=b.borderWidth+&quot;|&quot;+b.borderStyle+&quot;|&quot;+b.borderColor});return c}),Cc:function(a){var b=this.e.runtimeStyle,c=b.borderWidth,
d=b.borderColor;if(c)b.borderWidth=&quot;&quot;;if(d)b.borderColor=&quot;&quot;;a=a.call(this);if(c)b.borderWidth=c;if(d)b.borderColor=d;return a}});(function(){f.jb=f.B.ka({wa:&quot;border-radius&quot;,Fa:&quot;borderRadius&quot;,la:function(b){var c=null,d,e,g,j,i=false;if(b){e=new f.v(b);var h=function(){for(var k=[],n;(g=e.next())&amp;&amp;g.W();){j=f.n(g.d);n=j.ic();if(n&lt;0)return null;if(n&gt;0)i=true;k.push(j)}return k.length&gt;0&amp;&amp;k.length&lt;5?{tl:k[0],tr:k[1]||k[0],br:k[2]||k[0],bl:k[3]||k[1]||k[0]}:null};if(b=h()){if(g){if(g.k&amp;f.v.qa.pa&amp;&amp;g.d===
&quot;/&quot;)d=h()}else d=b;if(i&amp;&amp;b&amp;&amp;d)c={x:b,y:d}}}return c}});var a=f.n(&quot;0&quot;);a={tl:a,tr:a,br:a,bl:a};f.jb.Dc={x:a,y:a}})();f.Ub=f.B.ka({wa:&quot;border-image&quot;,Fa:&quot;borderImage&quot;,fb:{stretch:1,round:1,repeat:1,space:1},la:function(a){var b=null,c,d,e,g,j,i,h=0,k=f.v.qa,n=k.na,m=k.oa,p=k.Ra;if(a){c=new f.v(a);b={};for(var r=function(l){return l&amp;&amp;l.k&amp;k.pa&amp;&amp;l.d===&quot;/&quot;},t=function(l){return l&amp;&amp;l.k&amp;n&amp;&amp;l.d===&quot;fill&quot;},v=function(){g=c.ma(function(l){return!(l.k&amp;(m|p))});if(t(c.next())&amp;&amp;!b.fill)b.fill=true;else c.D();if(r(c.next())){h++;
j=c.ma(function(l){return!l.W()&amp;&amp;!(l.k&amp;n&amp;&amp;l.d===&quot;auto&quot;)});if(r(c.next())){h++;i=c.ma(function(l){return!l.Ca()})}}else c.D()};a=c.next();){d=a.k;e=a.d;if(d&amp;(m|p)&amp;&amp;!g){c.D();v()}else if(t(a)&amp;&amp;!b.fill){b.fill=true;v()}else if(d&amp;n&amp;&amp;this.fb[e]&amp;&amp;!b.repeat){b.repeat={f:e};if(a=c.next())if(a.k&amp;n&amp;&amp;this.fb[a.d])b.repeat.Ob=a.d;else c.D()}else if(d&amp;k.URL&amp;&amp;!b.src)b.src=e;else return null}if(!b.src||!g||g.length&lt;1||g.length&gt;4||j&amp;&amp;j.length&gt;4||h===1&amp;&amp;j.length&lt;1||i&amp;&amp;i.length&gt;4||h===2&amp;&amp;i.length&lt;1)return null;if(!b.repeat)b.repeat=

=====================================================
== File: src/homepage/assets/js/ie/respond.min.js
=====================================================
/*! Respond.js v1.4.2: min/max-width media query polyfill
 * Copyright 2014 Scott Jehl
 * Licensed under MIT
 * http://j.mp/respondjs */

!function(a){&quot;use strict&quot;;a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement(&quot;body&quot;),f=a.createElement(&quot;div&quot;);return f.id=&quot;mq-test-1&quot;,f.style.cssText=&quot;position:absolute;top:-100em&quot;,e.style.background=&quot;none&quot;,e.appendChild(f),function(a){return f.innerHTML='&amp;shy;&lt;style media=&quot;'+a+'&quot;&gt; #mq-test-1 { width: 42px; }&lt;/style&gt;',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){&quot;use strict&quot;;function b(){v(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject(&quot;Microsoft.XMLHTTP&quot;)}return function(){return b}}(),f=function(a,b){var c=e();c&amp;&amp;(c.open(&quot;GET&quot;,a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&amp;&amp;304!==c.status||b(c.responseText)},4!==c.readyState&amp;&amp;c.send(null))},g=function(a){return a.replace(c.regex.minmaxwh,&quot;&quot;).match(c.regex.other)};if(c.ajax=f,c.queue=d,c.unsupportedmq=g,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,urls:/(url\()['&quot;]?([^\/\)'&quot;][^:\)'&quot;]+)['&quot;]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,maxw:/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},c.mediaQueriesSupported=a.matchMedia&amp;&amp;null!==a.matchMedia(&quot;only all&quot;)&amp;&amp;a.matchMedia(&quot;only all&quot;).matches,!c.mediaQueriesSupported){var h,i,j,k=a.document,l=k.documentElement,m=[],n=[],o=[],p={},q=30,r=k.getElementsByTagName(&quot;head&quot;)[0]||l,s=k.getElementsByTagName(&quot;base&quot;)[0],t=r.getElementsByTagName(&quot;link&quot;),u=function(){var a,b=k.createElement(&quot;div&quot;),c=k.body,d=l.style.fontSize,e=c&amp;&amp;c.style.fontSize,f=!1;return b.style.cssText=&quot;position:absolute;font-size:1em;width:1em&quot;,c||(c=f=k.createElement(&quot;body&quot;),c.style.background=&quot;none&quot;),l.style.fontSize=&quot;100%&quot;,c.style.fontSize=&quot;100%&quot;,c.appendChild(b),f&amp;&amp;l.insertBefore(c,l.firstChild),a=b.offsetWidth,f?l.removeChild(c):c.removeChild(b),l.style.fontSize=d,e&amp;&amp;(c.style.fontSize=e),a=j=parseFloat(a)},v=function(b){var c=&quot;clientWidth&quot;,d=l[c],e=&quot;CSS1Compat&quot;===k.compatMode&amp;&amp;d||k.body[c]||d,f={},g=t[t.length-1],p=(new Date).getTime();if(b&amp;&amp;h&amp;&amp;q&gt;p-h)return a.clearTimeout(i),i=a.setTimeout(v,q),void 0;h=p;for(var s in m)if(m.hasOwnProperty(s)){var w=m[s],x=w.minw,y=w.maxw,z=null===x,A=null===y,B=&quot;em&quot;;x&amp;&amp;(x=parseFloat(x)*(x.indexOf(B)&gt;-1?j||u():1)),y&amp;&amp;(y=parseFloat(y)*(y.indexOf(B)&gt;-1?j||u():1)),w.hasquery&amp;&amp;(z&amp;&amp;A||!(z||e&gt;=x)||!(A||y&gt;=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(n[w.rules]))}for(var C in o)o.hasOwnProperty(C)&amp;&amp;o[C]&amp;&amp;o[C].parentNode===r&amp;&amp;r.removeChild(o[C]);o.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=k.createElement(&quot;style&quot;),F=f[D].join(&quot;\n&quot;);E.type=&quot;text/css&quot;,E.media=D,r.insertBefore(E,g.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(k.createTextNode(F)),o.push(E)}},w=function(a,b,d){var e=a.replace(c.regex.comments,&quot;&quot;).replace(c.regex.keyframes,&quot;&quot;).match(c.regex.media),f=e&amp;&amp;e.length||0;b=b.substring(0,b.lastIndexOf(&quot;/&quot;));var h=function(a){return a.replace(c.regex.urls,&quot;$1&quot;+b+&quot;$2$3&quot;)},i=!f&amp;&amp;d;b.length&amp;&amp;(b+=&quot;/&quot;),i&amp;&amp;(f=1);for(var j=0;f&gt;j;j++){var k,l,o,p;i?(k=d,n.push(h(a))):(k=e[j].match(c.regex.findStyles)&amp;&amp;RegExp.$1,n.push(RegExp.$2&amp;&amp;h(RegExp.$2))),o=k.split(&quot;,&quot;),p=o.length;for(var q=0;p&gt;q;q++)l=o[q],g(l)||m.push({media:l.split(&quot;(&quot;)[0].match(c.regex.only)&amp;&amp;RegExp.$2||&quot;all&quot;,rules:n.length-1,hasquery:l.indexOf(&quot;(&quot;)&gt;-1,minw:l.match(c.regex.minw)&amp;&amp;parseFloat(RegExp.$1)+(RegExp.$2||&quot;&quot;),maxw:l.match(c.regex.maxw)&amp;&amp;parseFloat(RegExp.$1)+(RegExp.$2||&quot;&quot;)})}v()},x=function(){if(d.length){var b=d.shift();f(b.href,function(c){w(c,b.href,b.media),p[b.href]=!0,a.setTimeout(function(){x()},0)})}},y=function(){for(var b=0;b&lt;t.length;b++){var c=t[b],e=c.href,f=c.media,g=c.rel&amp;&amp;&quot;stylesheet&quot;===c.rel.toLowerCase();e&amp;&amp;g&amp;&amp;!p[e]&amp;&amp;(c.styleSheet&amp;&amp;c.styleSheet.rawCssText?(w(c.styleSheet.rawCssText,e,f),p[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&amp;&amp;!s||e.replace(RegExp.$1,&quot;&quot;).split(&quot;/&quot;)[0]===a.location.host)&amp;&amp;(&quot;//&quot;===e.substring(0,2)&amp;&amp;(e=a.location.protocol+e),d.push({href:e,media:f})))}x()};y(),c.update=y,c.getEmValue=u,a.addEventListener?a.addEventListener(&quot;resize&quot;,b,!1):a.attachEvent&amp;&amp;a.attachEvent(&quot;onresize&quot;,b)}}(this);

=====================================================
== File: src/homepage/assets/js/ie/html5shiv.js
=====================================================
/*
 HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
(function(l,f){function m(){var a=e.elements;return&quot;string&quot;==typeof a?a.split(&quot; &quot;):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&amp;&amp;!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function(&quot;h,f&quot;,&quot;return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&amp;&amp;(&quot;+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c(&quot;'+a+'&quot;)'})+&quot;);return n}&quot;)(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&amp;&amp;!j&amp;&amp;!b.hasCSS){var c,d=a;c=d.createElement(&quot;p&quot;);d=d.getElementsByTagName(&quot;head&quot;)[0]||d.documentElement;c.innerHTML=&quot;x&lt;style&gt;article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}&lt;/style&gt;&quot;;
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^&lt;|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o=&quot;_html5shiv&quot;,h=0,n={},g;(function(){try{var a=f.createElement(&quot;a&quot;);a.innerHTML=&quot;&lt;xyz&gt;&lt;/xyz&gt;&quot;;j=&quot;hidden&quot;in a;var b;if(!(b=1==a.childNodes.length)){f.createElement(&quot;a&quot;);var c=f.createDocumentFragment();b=&quot;undefined&quot;==typeof c.cloneNode||
&quot;undefined&quot;==typeof c.createDocumentFragment||&quot;undefined&quot;==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||&quot;abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video&quot;,version:&quot;3.6.2&quot;,shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:&quot;default&quot;,shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d&lt;h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);

=====================================================
== File: src/homepage/assets/js/jquery.scrolly.min.js
=====================================================
/* jquery.scrolly v1.0.0-dev | (c) @ajlkn | MIT licensed */
(function(e){function u(s,o){var u,a,f;if((u=e(s))[t]==0)return n;a=u[i]()[r];switch(o.anchor){case&quot;middle&quot;:f=a-(e(window).height()-u.outerHeight())/2;break;default:case r:f=Math.max(a,0)}return typeof o[i]==&quot;function&quot;?f-=o[i]():f-=o[i],f}var t=&quot;length&quot;,n=null,r=&quot;top&quot;,i=&quot;offset&quot;,s=&quot;click.scrolly&quot;,o=e(window);e.fn.scrolly=function(i){var o,a,f,l,c=e(this);if(this[t]==0)return c;if(this[t]&gt;1){for(o=0;o&lt;this[t];o++)e(this[o]).scrolly(i);return c}l=n,f=c.attr(&quot;href&quot;);if(f.charAt(0)!=&quot;#&quot;||f[t]&lt;2)return c;a=jQuery.extend({anchor:r,easing:&quot;swing&quot;,offset:0,parent:e(&quot;body,html&quot;),pollOnce:!1,speed:1e3},i),a.pollOnce&amp;&amp;(l=u(f,a)),c.off(s).on(s,function(e){var t=l!==n?l:u(f,a);t!==n&amp;&amp;(e.preventDefault(),a.parent.stop().animate({scrollTop:t},a.speed,a.easing))})}})(jQuery);

=====================================================
== File: src/homepage/assets/js/skel.min.js
=====================================================
/* skel.js v3.0.1 | (c) skel.io | MIT licensed */
var skel=function(){&quot;use strict&quot;;var t={breakpointIds:null,events:{},isInit:!1,obj:{attachments:{},breakpoints:{},head:null,states:{}},sd:&quot;/&quot;,state:null,stateHandlers:{},stateId:&quot;&quot;,vars:{},DOMReady:null,indexOf:null,isArray:null,iterate:null,matchesMedia:null,extend:function(e,n){t.iterate(n,function(i){t.isArray(n[i])?(t.isArray(e[i])||(e[i]=[]),t.extend(e[i],n[i])):&quot;object&quot;==typeof n[i]?(&quot;object&quot;!=typeof e[i]&amp;&amp;(e[i]={}),t.extend(e[i],n[i])):e[i]=n[i]})},newStyle:function(t){var e=document.createElement(&quot;style&quot;);return e.type=&quot;text/css&quot;,e.innerHTML=t,e},_canUse:null,canUse:function(e){t._canUse||(t._canUse=document.createElement(&quot;div&quot;));var n=t._canUse.style,i=e.charAt(0).toUpperCase()+e.slice(1);return e in n||&quot;Moz&quot;+i in n||&quot;Webkit&quot;+i in n||&quot;O&quot;+i in n||&quot;ms&quot;+i in n},on:function(e,n){var i=e.split(/[\s]+/);return t.iterate(i,function(e){var a=i[e];if(t.isInit){if(&quot;init&quot;==a)return void n();if(&quot;change&quot;==a)n();else{var r=a.charAt(0);if(&quot;+&quot;==r||&quot;!&quot;==r){var o=a.substring(1);if(o in t.obj.breakpoints)if(&quot;+&quot;==r&amp;&amp;t.obj.breakpoints[o].active)n();else if(&quot;!&quot;==r&amp;&amp;!t.obj.breakpoints[o].active)return void n()}}}t.events[a]||(t.events[a]=[]),t.events[a].push(n)}),t},trigger:function(e){return t.events[e]&amp;&amp;0!=t.events[e].length?(t.iterate(t.events[e],function(n){t.events[e][n]()}),t):void 0},breakpoint:function(e){return t.obj.breakpoints[e]},breakpoints:function(e){function n(t,e){this.name=this.id=t,this.media=e,this.active=!1,this.wasActive=!1}return n.prototype.matches=function(){return t.matchesMedia(this.media)},n.prototype.sync=function(){this.wasActive=this.active,this.active=this.matches()},t.iterate(e,function(i){t.obj.breakpoints[i]=new n(i,e[i])}),window.setTimeout(function(){t.poll()},0),t},addStateHandler:function(e,n){t.stateHandlers[e]=n},callStateHandler:function(e){var n=t.stateHandlers[e]();t.iterate(n,function(e){t.state.attachments.push(n[e])})},changeState:function(e){t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].sync()}),t.vars.lastStateId=t.stateId,t.stateId=e,t.breakpointIds=t.stateId===t.sd?[]:t.stateId.substring(1).split(t.sd),t.obj.states[t.stateId]?t.state=t.obj.states[t.stateId]:(t.obj.states[t.stateId]={attachments:[]},t.state=t.obj.states[t.stateId],t.iterate(t.stateHandlers,t.callStateHandler)),t.detachAll(t.state.attachments),t.attachAll(t.state.attachments),t.vars.stateId=t.stateId,t.vars.state=t.state,t.trigger(&quot;change&quot;),t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].active?t.obj.breakpoints[e].wasActive||t.trigger(&quot;+&quot;+e):t.obj.breakpoints[e].wasActive&amp;&amp;t.trigger(&quot;-&quot;+e)})},generateStateConfig:function(e,n){var i={};return t.extend(i,e),t.iterate(t.breakpointIds,function(e){t.extend(i,n[t.breakpointIds[e]])}),i},getStateId:function(){var e=&quot;&quot;;return t.iterate(t.obj.breakpoints,function(n){var i=t.obj.breakpoints[n];i.matches()&amp;&amp;(e+=t.sd+i.id)}),e},poll:function(){var e=&quot;&quot;;e=t.getStateId(),&quot;&quot;===e&amp;&amp;(e=t.sd),e!==t.stateId&amp;&amp;t.changeState(e)},_attach:null,attach:function(e){var n=t.obj.head,i=e.element;return i.parentNode&amp;&amp;i.parentNode.tagName?!1:(t._attach||(t._attach=n.firstChild),n.insertBefore(i,t._attach.nextSibling),e.permanent&amp;&amp;(t._attach=i),!0)},attachAll:function(e){var n=[];t.iterate(e,function(t){n[e[t].priority]||(n[e[t].priority]=[]),n[e[t].priority].push(e[t])}),n.reverse(),t.iterate(n,function(e){t.iterate(n[e],function(i){t.attach(n[e][i])})})},detach:function(t){var e=t.element;return t.permanent||!e.parentNode||e.parentNode&amp;&amp;!e.parentNode.tagName?!1:(e.parentNode.removeChild(e),!0)},detachAll:function(e){var n={};t.iterate(e,function(t){n[e[t].id]=!0}),t.iterate(t.obj.attachments,function(e){e in n||t.detach(t.obj.attachments[e])})},attachment:function(e){return e in t.obj.attachments?t.obj.attachments[e]:null},newAttachment:function(e,n,i,a){return t.obj.attachments[e]={id:e,element:n,priority:i,permanent:a}},init:function(){t.initMethods(),t.initVars(),t.initEvents(),t.obj.head=document.getElementsByTagName(&quot;head&quot;)[0],t.isInit=!0,t.trigger(&quot;init&quot;)},initEvents:function(){t.on(&quot;resize&quot;,function(){t.poll()}),t.on(&quot;orientationChange&quot;,function(){t.poll()}),t.DOMReady(function(){t.trigger(&quot;ready&quot;)}),window.onload&amp;&amp;t.on(&quot;load&quot;,window.onload),window.onload=function(){t.trigger(&quot;load&quot;)},window.onresize&amp;&amp;t.on(&quot;resize&quot;,window.onresize),window.onresize=function(){t.trigger(&quot;resize&quot;)},window.onorientationchange&amp;&amp;t.on(&quot;orientationChange&quot;,window.onorientationchange),window.onorientationchange=function(){t.trigger(&quot;orientationChange&quot;)}},initMethods:function(){document.addEventListener?!function(e,n){t.DOMReady=n()}(&quot;domready&quot;,function(){function t(t){for(r=1;t=n.shift();)t()}var e,n=[],i=document,a=&quot;DOMContentLoaded&quot;,r=/^loaded|^c/.test(i.readyState);return i.addEventListener(a,e=function(){i.removeEventListener(a,e),t()}),function(t){r?t():n.push(t)}}):!function(e,n){t.DOMReady=n()}(&quot;domready&quot;,function(t){function e(t){for(h=1;t=i.shift();)t()}var n,i=[],a=!1,r=document,o=r.documentElement,s=o.doScroll,c=&quot;DOMContentLoaded&quot;,d=&quot;addEventListener&quot;,u=&quot;onreadystatechange&quot;,l=&quot;readyState&quot;,f=s?/^loaded|^c/:/^loaded|c/,h=f.test(r[l]);return r[d]&amp;&amp;r[d](c,n=function(){r.removeEventListener(c,n,a),e()},a),s&amp;&amp;r.attachEvent(u,n=function(){/^c/.test(r[l])&amp;&amp;(r.detachEvent(u,n),e())}),t=s?function(e){self!=top?h?e():i.push(e):function(){try{o.doScroll(&quot;left&quot;)}catch(n){return setTimeout(function(){t(e)},50)}e()}()}:function(t){h?t():i.push(t)}}),Array.prototype.indexOf?t.indexOf=function(t,e){return t.indexOf(e)}:t.indexOf=function(t,e){if(&quot;string&quot;==typeof t)return t.indexOf(e);var n,i,a=e?e:0;if(!this)throw new TypeError;if(i=this.length,0===i||a&gt;=i)return-1;for(0&gt;a&amp;&amp;(a=i-Math.abs(a)),n=a;i&gt;n;n++)if(this[n]===t)return n;return-1},Array.isArray?t.isArray=function(t){return Array.isArray(t)}:t.isArray=function(t){return&quot;[object Array]&quot;===Object.prototype.toString.call(t)},Object.keys?t.iterate=function(t,e){if(!t)return[];var n,i=Object.keys(t);for(n=0;i[n]&amp;&amp;e(i[n],t[i[n]])!==!1;n++);}:t.iterate=function(t,e){if(!t)return[];var n;for(n in t)if(Object.prototype.hasOwnProperty.call(t,n)&amp;&amp;e(n,t[n])===!1)break},window.matchMedia?t.matchesMedia=function(t){return&quot;&quot;==t?!0:window.matchMedia(t).matches}:window.styleMedia||window.media?t.matchesMedia=function(t){if(&quot;&quot;==t)return!0;var e=window.styleMedia||window.media;return e.matchMedium(t||&quot;all&quot;)}:window.getComputedStyle?t.matchesMedia=function(t){if(&quot;&quot;==t)return!0;var e=document.createElement(&quot;style&quot;),n=document.getElementsByTagName(&quot;script&quot;)[0],i=null;e.type=&quot;text/css&quot;,e.id=&quot;matchmediajs-test&quot;,n.parentNode.insertBefore(e,n),i=&quot;getComputedStyle&quot;in window&amp;&amp;window.getComputedStyle(e,null)||e.currentStyle;var a=&quot;@media &quot;+t+&quot;{ #matchmediajs-test { width: 1px; } }&quot;;return e.styleSheet?e.styleSheet.cssText=a:e.textContent=a,&quot;1px&quot;===i.width}:t.matchesMedia=function(t){if(&quot;&quot;==t)return!0;var e,n,i,a,r={&quot;min-width&quot;:null,&quot;max-width&quot;:null},o=!1;for(i=t.split(/\s+and\s+/),e=0;e&lt;i.length;e++)n=i[e],&quot;(&quot;==n.charAt(0)&amp;&amp;(n=n.substring(1,n.length-1),a=n.split(/:\s+/),2==a.length&amp;&amp;(r[a[0].replace(/^\s+|\s+$/g,&quot;&quot;)]=parseInt(a[1]),o=!0));if(!o)return!1;var s=document.documentElement.clientWidth,c=document.documentElement.clientHeight;return null!==r[&quot;min-width&quot;]&amp;&amp;s&lt;r[&quot;min-width&quot;]||null!==r[&quot;max-width&quot;]&amp;&amp;s&gt;r[&quot;max-width&quot;]||null!==r[&quot;min-height&quot;]&amp;&amp;c&lt;r[&quot;min-height&quot;]||null!==r[&quot;max-height&quot;]&amp;&amp;c&gt;r[&quot;max-height&quot;]?!1:!0},navigator.userAgent.match(/MSIE ([0-9]+)/)&amp;&amp;RegExp.$1&lt;9&amp;&amp;(t.newStyle=function(t){var e=document.createElement(&quot;span&quot;);return e.innerHTML='&amp;nbsp;&lt;style type=&quot;text/css&quot;&gt;'+t+&quot;&lt;/style&gt;&quot;,e})},initVars:function(){var e,n,i,a=navigator.userAgent;e=&quot;other&quot;,n=0,i=[[&quot;firefox&quot;,/Firefox\/([0-9\.]+)/],[&quot;bb&quot;,/BlackBerry.+Version\/([0-9\.]+)/],[&quot;bb&quot;,/BB[0-9]+.+Version\/([0-9\.]+)/],[&quot;opera&quot;,/OPR\/([0-9\.]+)/],[&quot;opera&quot;,/Opera\/([0-9\.]+)/],[&quot;edge&quot;,/Edge\/([0-9\.]+)/],[&quot;safari&quot;,/Version\/([0-9\.]+).+Safari/],[&quot;chrome&quot;,/Chrome\/([0-9\.]+)/],[&quot;ie&quot;,/MSIE ([0-9]+)/],[&quot;ie&quot;,/Trident\/.+rv:([0-9]+)/]],t.iterate(i,function(t,i){return a.match(i[1])?(e=i[0],n=parseFloat(RegExp.$1),!1):void 0}),t.vars.browser=e,t.vars.browserVersion=n,e=&quot;other&quot;,n=0,i=[[&quot;ios&quot;,/([0-9_]+) like Mac OS X/,function(t){return t.replace(&quot;_&quot;,&quot;.&quot;).replace(&quot;_&quot;,&quot;&quot;)}],[&quot;ios&quot;,/CPU like Mac OS X/,function(t){return 0}],[&quot;wp&quot;,/Windows Phone ([0-9\.]+)/,null],[&quot;android&quot;,/Android ([0-9\.]+)/,null],[&quot;mac&quot;,/Macintosh.+Mac OS X ([0-9_]+)/,function(t){return t.replace(&quot;_&quot;,&quot;.&quot;).replace(&quot;_&quot;,&quot;&quot;)}],[&quot;windows&quot;,/Windows NT ([0-9\.]+)/,null],[&quot;bb&quot;,/BlackBerry.+Version\/([0-9\.]+)/,null],[&quot;bb&quot;,/BB[0-9]+.+Version\/([0-9\.]+)/,null]],t.iterate(i,function(t,i){return a.match(i[1])?(e=i[0],n=parseFloat(i[2]?i[2](RegExp.$1):RegExp.$1),!1):void 0}),t.vars.os=e,t.vars.osVersion=n,t.vars.IEVersion=&quot;ie&quot;==t.vars.browser?t.vars.browserVersion:99,t.vars.touch=&quot;wp&quot;==t.vars.os?navigator.msMaxTouchPoints&gt;0:!!(&quot;ontouchstart&quot;in window),t.vars.mobile=&quot;wp&quot;==t.vars.os||&quot;android&quot;==t.vars.os||&quot;ios&quot;==t.vars.os||&quot;bb&quot;==t.vars.os}};return t.init(),t}();!function(t,e){&quot;function&quot;==typeof define&amp;&amp;define.amd?define([],e):&quot;object&quot;==typeof exports?module.exports=e():t.skel=e()}(this,function(){return skel});

=====================================================
== File: src/homepage/assets/js/lity.min.js
=====================================================
/*! Lity - v2.2.2 - 2016-12-14
* http://sorgalla.com/lity/
* Copyright (c) 2015-2016 Jan Sorgalla; Licensed MIT */
!function(a,b){&quot;function&quot;==typeof define&amp;&amp;define.amd?define([&quot;jquery&quot;],function(c){return b(a,c)}):&quot;object&quot;==typeof module&amp;&amp;&quot;object&quot;==typeof module.exports?module.exports=b(a,require(&quot;jquery&quot;)):a.lity=b(a,a.jQuery||a.Zepto)}(&quot;undefined&quot;!=typeof window?window:this,function(a,b){&quot;use strict&quot;;function c(a){var b=B();return N&amp;&amp;a.length?(a.one(N,b.resolve),setTimeout(b.resolve,500)):b.resolve(),b.promise()}function d(a,c,d){if(1===arguments.length)return b.extend({},a);if(&quot;string&quot;==typeof c){if(&quot;undefined&quot;==typeof d)return&quot;undefined&quot;==typeof a[c]?null:a[c];a[c]=d}else b.extend(a,c);return this}function e(a){for(var b,c=decodeURI(a.split(&quot;#&quot;)[0]).split(&quot;&amp;&quot;),d={},e=0,f=c.length;e&lt;f;e++)c[e]&amp;&amp;(b=c[e].split(&quot;=&quot;),d[b[0]]=b[1]);return d}function f(a,c){return a+(a.indexOf(&quot;?&quot;)&gt;-1?&quot;&amp;&quot;:&quot;?&quot;)+b.param(c)}function g(a,b){var c=a.indexOf(&quot;#&quot;);return-1===c?b:(c&gt;0&amp;&amp;(a=a.substr(c)),b+a)}function h(a){return b('&lt;span class=&quot;lity-error&quot;/&gt;').append(a)}function i(a,c){var d=c.opener()&amp;&amp;c.opener().data(&quot;lity-desc&quot;)||&quot;Image with no description&quot;,e=b('&lt;img src=&quot;'+a+'&quot; alt=&quot;'+d+'&quot;/&gt;'),f=B(),g=function(){f.reject(h(&quot;Failed loading image&quot;))};return e.on(&quot;load&quot;,function(){return 0===this.naturalWidth?g():void f.resolve(e)}).on(&quot;error&quot;,g),f.promise()}function j(a,c){var d,e,f;try{d=b(a)}catch(a){return!1}return!!d.length&amp;&amp;(e=b('&lt;i style=&quot;display:none !important&quot;/&gt;'),f=d.hasClass(&quot;lity-hide&quot;),c.element().one(&quot;lity:remove&quot;,function(){e.before(d).remove(),f&amp;&amp;!d.closest(&quot;.lity-content&quot;).length&amp;&amp;d.addClass(&quot;lity-hide&quot;)}),d.removeClass(&quot;lity-hide&quot;).after(e))}function k(a){var c=J.exec(a);return!!c&amp;&amp;o(g(a,f(&quot;https://www.youtube&quot;+(c[2]||&quot;&quot;)+&quot;.com/embed/&quot;+c[4],b.extend({autoplay:1},e(c[5]||&quot;&quot;)))))}function l(a){var c=K.exec(a);return!!c&amp;&amp;o(g(a,f(&quot;https://player.vimeo.com/video/&quot;+c[3],b.extend({autoplay:1},e(c[4]||&quot;&quot;)))))}function m(a){var c=M.exec(a);return!!c&amp;&amp;(0!==a.indexOf(&quot;http&quot;)&amp;&amp;(a=&quot;https:&quot;+a),o(g(a,f(&quot;https://www.facebook.com/plugins/video.php?href=&quot;+a,b.extend({autoplay:1},e(c[4]||&quot;&quot;))))))}function n(a){var b=L.exec(a);return!!b&amp;&amp;o(g(a,f(&quot;https://www.google.&quot;+b[3]+&quot;/maps?&quot;+b[6],{output:b[6].indexOf(&quot;layer=c&quot;)&gt;0?&quot;svembed&quot;:&quot;embed&quot;})))}function o(a){return'&lt;div class=&quot;lity-iframe-container&quot;&gt;&lt;iframe frameborder=&quot;0&quot; allowfullscreen src=&quot;'+a+'&quot;/&gt;&lt;/div&gt;'}function p(){return z.documentElement.clientHeight?z.documentElement.clientHeight:Math.round(A.height())}function q(a){var b=v();b&amp;&amp;(27===a.keyCode&amp;&amp;b.close(),9===a.keyCode&amp;&amp;r(a,b))}function r(a,b){var c=b.element().find(G),d=c.index(z.activeElement);a.shiftKey&amp;&amp;d&lt;=0?(c.get(c.length-1).focus(),a.preventDefault()):a.shiftKey||d!==c.length-1||(c.get(0).focus(),a.preventDefault())}function s(){b.each(D,function(a,b){b.resize()})}function t(a){1===D.unshift(a)&amp;&amp;(C.addClass(&quot;lity-active&quot;),A.on({resize:s,keydown:q})),b(&quot;body &gt; *&quot;).not(a.element()).addClass(&quot;lity-hidden&quot;).each(function(){var a=b(this);void 0===a.data(F)&amp;&amp;a.data(F,a.attr(E)||null)}).attr(E,&quot;true&quot;)}function u(a){var c;a.element().attr(E,&quot;true&quot;),1===D.length&amp;&amp;(C.removeClass(&quot;lity-active&quot;),A.off({resize:s,keydown:q})),D=b.grep(D,function(b){return a!==b}),c=D.length?D[0].element():b(&quot;.lity-hidden&quot;),c.removeClass(&quot;lity-hidden&quot;).each(function(){var a=b(this),c=a.data(F);c?a.attr(E,c):a.removeAttr(E),a.removeData(F)})}function v(){return 0===D.length?null:D[0]}function w(a,c,d,e){var f,g=&quot;inline&quot;,h=b.extend({},d);return e&amp;&amp;h[e]?(f=h[e](a,c),g=e):(b.each([&quot;inline&quot;,&quot;iframe&quot;],function(a,b){delete h[b],h[b]=d[b]}),b.each(h,function(b,d){return!d||(!(!d.test||d.test(a,c))||(f=d(a,c),!1!==f?(g=b,!1):void 0))})),{handler:g,content:f||&quot;&quot;}}function x(a,e,f,g){function h(a){k=b(a).css(&quot;max-height&quot;,p()+&quot;px&quot;),j.find(&quot;.lity-loader&quot;).each(function(){var a=b(this);c(a).always(function(){a.remove()})}),j.removeClass(&quot;lity-loading&quot;).find(&quot;.lity-content&quot;).empty().append(k),m=!0,k.trigger(&quot;lity:ready&quot;,[l])}var i,j,k,l=this,m=!1,n=!1;e=b.extend({},H,e),j=b(e.template),l.element=function(){return j},l.opener=function(){return f},l.options=b.proxy(d,l,e),l.handlers=b.proxy(d,l,e.handlers),l.resize=function(){m&amp;&amp;!n&amp;&amp;k.css(&quot;max-height&quot;,p()+&quot;px&quot;).trigger(&quot;lity:resize&quot;,[l])},l.close=function(){if(m&amp;&amp;!n){n=!0,u(l);var a=B();if(g&amp;&amp;(z.activeElement===j[0]||b.contains(j[0],z.activeElement)))try{g.focus()}catch(a){}return k.trigger(&quot;lity:close&quot;,[l]),j.removeClass(&quot;lity-opened&quot;).addClass(&quot;lity-closed&quot;),c(k.add(j)).always(function(){k.trigger(&quot;lity:remove&quot;,[l]),j.remove(),j=void 0,a.resolve()}),a.promise()}},i=w(a,l,e.handlers,e.handler),j.attr(E,&quot;false&quot;).addClass(&quot;lity-loading lity-opened lity-&quot;+i.handler).appendTo(&quot;body&quot;).focus().on(&quot;click&quot;,&quot;[data-lity-close]&quot;,function(a){b(a.target).is(&quot;[data-lity-close]&quot;)&amp;&amp;l.close()}).trigger(&quot;lity:open&quot;,[l]),t(l),b.when(i.content).always(h)}function y(a,c,d){a.preventDefault?(a.preventDefault(),d=b(this),a=d.data(&quot;lity-target&quot;)||d.attr(&quot;href&quot;)||d.attr(&quot;src&quot;)):d=b(d);var e=new x(a,b.extend({},d.data(&quot;lity-options&quot;)||d.data(&quot;lity&quot;),c),d,z.activeElement);if(!a.preventDefault)return e}var z=a.document,A=b(a),B=b.Deferred,C=b(&quot;html&quot;),D=[],E=&quot;aria-hidden&quot;,F=&quot;lity-&quot;+E,G='a[href],area[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),iframe,object,embed,[contenteditable],[tabindex]:not([tabindex^=&quot;-&quot;])',H={handler:null,handlers:{image:i,inline:j,youtube:k,vimeo:l,googlemaps:n,facebookvideo:m,iframe:o},template:'&lt;div class=&quot;lity&quot; role=&quot;dialog&quot; aria-label=&quot;Dialog Window (Press escape to close)&quot; tabindex=&quot;-1&quot;&gt;&lt;div class=&quot;lity-wrap&quot; data-lity-close role=&quot;document&quot;&gt;&lt;div class=&quot;lity-loader&quot; aria-hidden=&quot;true&quot;&gt;Loading...&lt;/div&gt;&lt;div class=&quot;lity-container&quot;&gt;&lt;div class=&quot;lity-content&quot;&gt;&lt;/div&gt;&lt;button class=&quot;lity-close&quot; type=&quot;button&quot; aria-label=&quot;Close (Press escape to close)&quot; data-lity-close&gt;&amp;times;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;'},I=/(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|bmp|ico|tiff?)(\?\S*)?$)/i,J=/(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i,K=/(vimeo(pro)?.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/,L=/((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i,M=/(facebook\.com)\/([a-z0-9_-]*)\/videos\/([0-9]*)(.*)?$/i,N=function(){var a=z.createElement(&quot;div&quot;),b={WebkitTransition:&quot;webkitTransitionEnd&quot;,MozTransition:&quot;transitionend&quot;,OTransition:&quot;oTransitionEnd otransitionend&quot;,transition:&quot;transitionend&quot;};for(var c in b)if(void 0!==a.style[c])return b[c];return!1}();return i.test=function(a){return I.test(a)},y.version=&quot;2.2.2&quot;,y.options=b.proxy(d,y,H),y.handlers=b.proxy(d,y,H.handlers),y.current=v,b(z).on(&quot;click.lity&quot;,&quot;[data-lity]&quot;,y),y});

=====================================================
== File: src/homepage/assets/js/util.js
=====================================================
(function($) {

	/**
	 * Generate an indented list of links from a nav. Meant for use with panel().
	 * @return {jQuery} jQuery object.
	 */
	$.fn.navList = function() {

		var	$this = $(this);
			$a = $this.find('a'),
			b = [];

		$a.each(function() {

			var	$this = $(this),
				indent = Math.max(0, $this.parents('li').length - 1),
				href = $this.attr('href'),
				target = $this.attr('target');

			b.push(
				'&lt;a ' +
					'class=&quot;link depth-' + indent + '&quot;' +
					( (typeof target !== 'undefined' &amp;&amp; target != '') ? ' target=&quot;' + target + '&quot;' : '') +
					( (typeof href !== 'undefined' &amp;&amp; href != '') ? ' href=&quot;' + href + '&quot;' : '') +
				'&gt;' +
					'&lt;span class=&quot;indent-' + indent + '&quot;&gt;&lt;/span&gt;' +
					$this.text() +
				'&lt;/a&gt;'
			);

		});

		return b.join('');

	};

	/**
	 * Panel-ify an element.
	 * @param {object} userConfig User config.
	 * @return {jQuery} jQuery object.
	 */
	$.fn.panel = function(userConfig) {

		// No elements?
			if (this.length == 0)
				return $this;

		// Multiple elements?
			if (this.length &gt; 1) {


=====================================================
== File: src/homepage/assets/js/jquery.scrollex.min.js
=====================================================
/* jquery.scrollex v0.2.1 | (c) @ajlkn | github.com/ajlkn/jquery.scrollex | MIT licensed */
!function(t){function e(t,e,n){return&quot;string&quot;==typeof t&amp;&amp;(&quot;%&quot;==t.slice(-1)?t=parseInt(t.substring(0,t.length-1))/100*e:&quot;vh&quot;==t.slice(-2)?t=parseInt(t.substring(0,t.length-2))/100*n:&quot;px&quot;==t.slice(-2)&amp;&amp;(t=parseInt(t.substring(0,t.length-2)))),t}var n=t(window),i=1,o={};n.on(&quot;scroll&quot;,function(){var e=n.scrollTop();t.map(o,function(t){window.clearTimeout(t.timeoutId),t.timeoutId=window.setTimeout(function(){t.handler(e)},t.options.delay)})}).on(&quot;load&quot;,function(){n.trigger(&quot;scroll&quot;)}),jQuery.fn.scrollex=function(l){var s=t(this);if(0==this.length)return s;if(this.length&gt;1){for(var r=0;r&lt;this.length;r++)t(this[r]).scrollex(l);return s}if(s.data(&quot;_scrollexId&quot;))return s;var a,u,h,c,p;switch(a=i++,u=jQuery.extend({top:0,bottom:0,delay:0,mode:&quot;default&quot;,enter:null,leave:null,initialize:null,terminate:null,scroll:null},l),u.mode){case&quot;top&quot;:h=function(t,e,n,i,o){return t&gt;=i&amp;&amp;o&gt;=t};break;case&quot;bottom&quot;:h=function(t,e,n,i,o){return n&gt;=i&amp;&amp;o&gt;=n};break;case&quot;middle&quot;:h=function(t,e,n,i,o){return e&gt;=i&amp;&amp;o&gt;=e};break;case&quot;top-only&quot;:h=function(t,e,n,i,o){return i&gt;=t&amp;&amp;n&gt;=i};break;case&quot;bottom-only&quot;:h=function(t,e,n,i,o){return n&gt;=o&amp;&amp;o&gt;=t};break;default:case&quot;default&quot;:h=function(t,e,n,i,o){return n&gt;=i&amp;&amp;o&gt;=t}}return c=function(t){var i,o,l,s,r,a,u=this.state,h=!1,c=this.$element.offset();i=n.height(),o=t+i/2,l=t+i,s=this.$element.outerHeight(),r=c.top+e(this.options.top,s,i),a=c.top+s-e(this.options.bottom,s,i),h=this.test(t,o,l,r,a),h!=u&amp;&amp;(this.state=h,h?this.options.enter&amp;&amp;this.options.enter.apply(this.element):this.options.leave&amp;&amp;this.options.leave.apply(this.element)),this.options.scroll&amp;&amp;this.options.scroll.apply(this.element,[(o-r)/(a-r)])},p={id:a,options:u,test:h,handler:c,state:null,element:this,$element:s,timeoutId:null},o[a]=p,s.data(&quot;_scrollexId&quot;,p.id),p.options.initialize&amp;&amp;p.options.initialize.apply(this),s},jQuery.fn.unscrollex=function(){var e=t(this);if(0==this.length)return e;if(this.length&gt;1){for(var n=0;n&lt;this.length;n++)t(this[n]).unscrollex();return e}var i,l;return(i=e.data(&quot;_scrollexId&quot;))?(l=o[i],window.clearTimeout(l.timeoutId),delete o[i],e.removeData(&quot;_scrollexId&quot;),l.options.terminate&amp;&amp;l.options.terminate.apply(this),e):e}}(jQuery);

=====================================================
== File: src/homepage/.sass-cache/1d0a46e57975118413d176685dbd41641eaa56fa/_syntax-highlighting.scssc
=====================================================
3.7.4
ef05d1dd452eb066ab53c0c3dbf2871ef35af39b
??o:?Sass::Tree::RootNode?:?@children[?o:?Sass::Tree::CommentNode?:?@value[?I&quot;*/**
 * Syntax highlighting styles
 */?:?ET:
@type:?normal;?[?:?@filename0:
@options{?:
@linei?:?@source_rangeo:?Sass::Source::Range	:?@start_poso:?Sass::Source::Position?;?i?:?@offseti?:
@end_poso;??;?i?;?i	:
@fileI&quot;Q/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass/minima/_syntax-highlighting.scss?;	T:?@importero: Sass::Importers::Filesystem?:
@rootI&quot;0/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass?;	F:?@real_rootI&quot;0/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass?;	F:?@same_name_warningso:?Set?:
@hash}?Fo:?Sass::Tree::RuleNode?:
@rule[?I&quot;?.highlight?;	T:?@parsed_ruleso:&quot;Sass::Selector::CommaSequence?:
@members[?o:?Sass::Selector::Sequence?;![?o:#Sass::Selector::SimpleSequence?;![?o:?Sass::Selector::Class?:
@nameI&quot;?highlight?;	T;?i	;?0:
@subject0:
@sourceso;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	;?i	;?0:?@selector_source_rangeo;?	;?o;??;?i	;?i?;?o;??;?i	;?i?;?@?;?@?:
@tabsi?;?[~o:?Sass::Tree::PropNode?;%[?I&quot;?background?;	T;?[?o: Sass::Script::Tree::Literal?;?o: Sass::Script::Value::String	;?I&quot;	#fff?;	T;
@?;
:?identifier:&quot;@deprecated_interp_equivalent0;?i
;?o;?	;?o;??;?i
;?i?;?o;??;?i
;?i?;?@?;?@?;)i?:?@prop_syntax:?new;?[?;?0;
@?;?i
;?o;?	;?o;??;?i
;?i?;?o;??;?i
;?i?;?@?;?@?:?@name_source_rangeo;?	;?@5;?o;??;?i
;?i?;?@?;?@?:?@value_source_rangeo;?	;?o;??;?i
;?i?;?@6;?@?;?@?o:?Sass::Tree::ExtendNode
:?@selector[?I&quot;?%vertical-rhythm?;	T:?@optionalF;(o;?	;?o;??;?i?;?i?;?o;??;?i?;?i ;?@?;?@?;?[?;?0;
@?;?i?;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i ;?@?;?@?o;??;?[?I&quot;?.highlighter-rouge &amp;?;	T;?o; ?;![?o;&quot;?;![?o;#?;![?o;$?;%I&quot;?highlighter-rouge?;	T;?i
;?0;&amp;0;'o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i
;?0o;#?;![?o:?Sass::Selector::Parent?:?@suffix0;?i
;?0;&amp;0;'o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i
;?0;?i
;?i
;?0;(o;?	;?o;??;?i
;?i?;?o;??;?i
;?i?;?@?;?@?;)i?;?[?o;*?;%[?I&quot;?background?;	T;?[?o;+?;?o;,	;?I&quot;	#eef?;	T;
@?;
;-;.0;?i?;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?@?;?@?;)i?;/;0;?[?;?0;
@?;?i?;?o;?	;?o;??;?i?;?i
;?o;??;?i?;?i?;?@?;?@?;1o;?	;?@m;?o;??;?i?;?i?;?@?;?@?;2o;?	;?o;??;?i?;?i?;?@n;?@?;?@?;?0;
@?;?i
;?o;?	;?@^;?o;??;?i
;?i?;?@?;?@?:?@has_childrenTo;??;?[?I&quot;?.c?;	T;?o; ?;![?o;&quot;?;![?o;#?;![?o;$?;%I&quot;?c?;	T;?i?;?0;&amp;0;'o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i?;?0;?i?;?i?;?0;(o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?@?;?@?;)i?;?[?o;*?;%[?I&quot;
color?;	T;?[?o;+?;?o;,	;?I&quot;	#998?;	T;
@?;
;-;.0;?i?;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?@?;?@?;)i?;/;0;?[?;?0;
@?;?i?;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?@?;?@?;1o;?	;?@??;?o;??;?i?;?i?;?@?;?@?;2o;?	;?o;??;?i?;?i?;?@??;?@?;?@?o;*?;%[?I&quot;?font-style?;	T;?[?o;+	;?o;,	;?I&quot;?italic?;	T;

=====================================================
== File: src/homepage/.sass-cache/1d0a46e57975118413d176685dbd41641eaa56fa/_base.scssc
=====================================================
3.7.4
cf9468af529d43fd143532037e69140b47125bf1
??o:?Sass::Tree::RootNode?:?@children[(o:?Sass::Tree::CommentNode?:?@value[?I&quot;)/**
 * Reset some basic elements
 */?:?ET:
@type:?normal;?[?:?@filename0:
@options{?:
@linei?:?@source_rangeo:?Sass::Source::Range	:?@start_poso:?Sass::Source::Position?;?i?:?@offseti?:
@end_poso;??;?i?;?i	:
@fileI&quot;B/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass/minima/_base.scss?;	T:?@importero: Sass::Importers::Filesystem?:
@rootI&quot;0/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass?;	F:?@real_rootI&quot;0/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass?;	F:?@same_name_warningso:?Set?:
@hash}?Fo:?Sass::Tree::RuleNode?:
@rule[?I&quot;Qbody, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, hr,
dl, dd, ol, ul, figure?;	T:?@parsed_ruleso:&quot;Sass::Selector::CommaSequence?:
@members[?o:?Sass::Selector::Sequence?;![?o:#Sass::Selector::SimpleSequence?;![?o:?Sass::Selector::Element	:
@nameI&quot;	body?;	T:?@namespace0;?i	;?0:
@subject0:
@sourceso;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i
;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?h1?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?h2?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?h3?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?h4?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?h5?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?h6?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i ;?o;??;?i?;?i&quot;;?0;?0;?i	;?0;?i	o;&quot;?;![?I&quot;?
?;	To;#?;![?o;$	;%I&quot;?p?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?blockquote?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i	;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?pre?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?hr?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?I&quot;?
?;	To;#?;![?o;$	;%I&quot;?dl?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?dd?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i
;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?ol?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?ul?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	o;&quot;?;![?o;#?;![?o;$	;%I&quot;?figure?;	T;&amp;0;?i	;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	;?i	;?0:?@selector_source_rangeo;?	;?o;??;?i	;?i?;?o;??;?i?;?i?;?@?;?@?:
@tabsi?;?[?o:?Sass::Tree::PropNode?;%[?I&quot;?margin?;	T;?[?o: Sass::Script::Tree::Literal?;?o: Sass::Script::Value::String	;?I&quot;?0?;	T;
@?;
:?identifier:&quot;@deprecated_interp_equivalent0;?i?;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?@?;?@?;*i?:?@prop_syntax:?new;?[?;?0;
@?;?i?;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?@?;?@?:?@name_source_rangeo;?	;?@??;?o;??;?i?;?i?;?@?;?@?:?@value_source_rangeo;?	;?o;??;?i?;?i?;?@??;?@?;?@?o;+?;%[?I&quot;?padding?;	T;?[?o;,?;?o;-	;?I&quot;?0?;	T;
@?;
;.;/0;?i
;?o;?	;?o;??;?i
;?i?;?o;??;?i
;?i?;?@?;?@?;*i?;0;1;?[?;?0;
@?;?i
;?o;?	;?o;??;?i
;?i?;?o;??;?i
;?i?;?@?;?@?;2o;?	;?@??;?o;??;?i
;?i?;?@?;?@?;3o;?	;?o;??;?i
;?i?;?@??;?@?;?@?;?0;
@?;?i	;?o;?	;?@??;?o;??;?i?;?i?;?@?;?@?:?@has_childrenTo;??;?[?I&quot;?/**
 * Basic styling
 */?;	T;
;?;?[?;?0;
@?;?i?;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i	;?@?;?@?o;??;?[?I&quot;	body?;	T;?o; ?;![?o;&quot;?;![?o;#?;![?o;$	;%I&quot;	body?;	T;&amp;0;?i?;?0;'0;(o;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i
;?0;?0;?i?;?0;?i?;?i?;?0;)o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?@?;?@?;*i?;?[?o;+?;%[?I&quot;	font?;	T;?[?o:&amp;Sass::Script::Tree::Interpolation?:?@beforeo:!Sass::Script::Tree::Variable?;%I&quot;?base-font-weight?;	T:?@underscored_nameI&quot;?base_font_weight?;	T;?i?;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?@?;?@?;?@?;
@?:	@mido;7?;%I&quot;?base-font-size?;	T;8I&quot;?base_font_size?;	T;?i?;?o;?	;?o;??;?i?;?i&quot;;?o;??;?i?;?i1;?@?;?@?;?@?;
@?:?@aftero;5?;6o;5?;60;9o;,	;?o;-	;?I&quot;?/?;	T;
@?;
;.;/0;?i?;?o;?	;?o;??;?i?;?i2;?o;??;?i?;?i3;?@?;?@?;?@?;:0:?@whitespace_before0:?@whitespace_afterF:?@originally_textT:?@warn_for_colorF:?@deprecation:	none;?i?;?o;?	;?@?#?;?o;??;?i?;?i3;?@?;?@?;?@?;
@?;9o;7?;%I&quot;?base-line-height?;	T;8I&quot;?base_line_height?;	T;?i?;?o;?	;?o;??;?i?;?i5;?o;??;?i?;?iF;?@?;?@?;?@?;
@?;:o;7?;%I&quot;?base-font-family?;	T;8I&quot;?base_font_family?;	T;?i?;?o;?	;?o;??;?i?;?iH;?o;??;?i?;?iY;?@?;?@?;?@?;

=====================================================
== File: src/homepage/.sass-cache/1d0a46e57975118413d176685dbd41641eaa56fa/_layout.scssc
=====================================================
3.7.4
fb3a3a30d84791861122a65d6082b602d0d48039
??o:?Sass::Tree::RootNode?:?@children[?o:?Sass::Tree::CommentNode?:?@value[?I&quot;?/**
 * Site header
 */?:?ET:
@type:?normal;?[?:?@filename0:
@options{?:
@linei?:?@source_rangeo:?Sass::Source::Range	:?@start_poso:?Sass::Source::Position?;?i?:?@offseti?:
@end_poso;??;?i?;?i	:
@fileI&quot;D/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass/minima/_layout.scss?;	T:?@importero: Sass::Importers::Filesystem?:
@rootI&quot;0/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass?;	F:?@real_rootI&quot;0/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass?;	F:?@same_name_warningso:?Set?:
@hash}?Fo:?Sass::Tree::RuleNode?:
@rule[?I&quot;?.site-header?;	T:?@parsed_ruleso:&quot;Sass::Selector::CommaSequence?:
@members[?o:?Sass::Selector::Sequence?;![?o:#Sass::Selector::SimpleSequence?;![?o:?Sass::Selector::Class?:
@nameI&quot;?site-header?;	T;?i	;?0:
@subject0:
@sourceso;??;?}?F;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?0;?0;?i	;?0;?i	;?i	;?0:?@selector_source_rangeo;?	;?o;??;?i	;?i?;?o;??;?i	;?i?;?@?;?@?:
@tabsi?;?[
o:?Sass::Tree::PropNode?;%[?I&quot;?border-top?;	T;?[?o:$Sass::Script::Tree::ListLiteral?:?@elements[?o: Sass::Script::Tree::Literal	;?o: Sass::Script::Value::Number
;?i
;
@?:?@numerator_units[?I&quot;?px?;	T:?@denominator_units[?:?@originalI&quot;?5px?;	T;?i
;?o;?	;?o;??;?i
;?i?;?o;??;?i
;?i?;?@?;?@?;?@?o;-	;?o: Sass::Script::Value::String	;?I&quot;
solid?;	T;
@?;
:?identifier:&quot;@deprecated_interp_equivalent0;?i
;?o;?	;?o;??;?i
;?i?;?o;??;?i
;?i?;?@?;?@?;?@?o:!Sass::Script::Tree::Variable?;%I&quot;?grey-color-dark?;	T:?@underscored_nameI&quot;?grey_color_dark?;	T;?i
;?o;?	;?o;??;?i
;?i?;?o;??;?i
;?i.;?@?;?@?;?@?;
@?:?@separator:
space:?@bracketedF;?i
;?o;?	;?o;??;?i
;?i?;?o;??;?i
;?i.;?@?;?@?;?@?;
@?;)i?:?@prop_syntax:?new;?[?;?0;
@?;?i
;?o;?	;?o;??;?i
;?i?;?o;??;?i
;?i.;?@?;?@?:?@name_source_rangeo;?	;?@I;?o;??;?i
;?i?;?@?;?@?:?@value_source_rangeo;?	;?o;??;?i
;?i?;?@J;?@?;?@?o;*?;%[?I&quot;?border-bottom?;	T;?[?o;+?;,[?o;-	;?o;.
;?i?;
@?;/[?I&quot;?px?;	T;0[?;1I&quot;?1px?;	T;?i?;?o;?	;?o;??;?i?;?i?;?o;??;?i?;?i?;?@?;?@?;?@?o;-	;?o;2	;?I&quot;
solid?;	T;
@?;

=====================================================
== File: src/homepage/.sass-cache/0d97c95486dbfb22208e2f940de32f180caddfba/minima.scssc
=====================================================
3.7.4
65ca0a3cfab5f364e3319d8e45e2a88d106358eb
??o:?Sass::Tree::RootNode?:?@children[?o:?Sass::Tree::CharsetNode?:
@nameI&quot;
utf-8?:?ET;?[?:?@filename0:
@options{?:
@linei?:?@source_rangeo:?Sass::Source::Range	:?@start_poso:?Sass::Source::Position?;?i?:?@offseti?:
@end_poso;??;?i?;?i?:
@fileI&quot;&lt;/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass/minima.scss?;	T:?@importero: Sass::Importers::Filesystem?:
@rootI&quot;0/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass?;	F:?@real_rootI&quot;0/var/lib/gems/3.0.0/gems/minima-2.5.1/_sass?;	F:?@same_name_warningso:?Set?:
@hash}?Fo:?Sass::Tree::CommentNode?:?@value[?I&quot;-/* Define defaults for each variable. */?;	T:
@type:?silent;?[?;
0;?@
;?i?;
o;?	;?o;??;?i?;?i?;?o;??;?i?;?i+;?@?;?@?o:?Sass::Tree::VariableNode?;?I&quot;?base-font-family?;	T:
@expro:$Sass::Script::Tree::ListLiteral?:?@elements[?o: Sass::Script::Tree::Literal	;?o: Sass::Script::Value::String	;?I&quot;?-apple-system?;	T;?@
;?:?identifier:&quot;@deprecated_interp_equivalent0;?i
;
o;?	;?o;??;?i
;?i?;?o;??;?i
;?i&amp;;?@?;?@?;
@?o;#	;?o;$	;?I&quot;?BlinkMacSystemFont?;	T;?@
;?;%;&amp;0;?i
;
o;?	;?o;??;?i
;?i(;?o;??;?i
;?i:;?@?;?@?;
@?o;#	;?o;$	;?I&quot;
Segoe UI?;	T;?@
;?:?string;&amp;0;?i
;
o;?	;?o;??;?i
;?i&lt;;?o;??;?i
;?iF;?@?;?@?;
@?o;#	;?o;$	;?I&quot;?Roboto?;	T;?@
;?;%;&amp;0;?i
;
o;?	;?o;??;?i
;?iH;?o;??;?i
;?iN;?@?;?@?;
@?o;#	;?o;$	;?I&quot;?Helvetica?;	T;?@
;?;%;&amp;0;?i
;
o;?	;?o;??;?i
;?iP;?o;??;?i
;?iY;?@?;?@?;
@?o;#	;?o;$	;?I&quot;
Arial?;	T;?@
;?;%;&amp;0;?i
;

=====================================================
== File: src/homepage/_site/about.md
=====================================================
This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](http://jekyllrb.com/)

You can find the source code for the Jekyll new theme at:
{% include icon-github.html username=&quot;jekyll&quot; %} /
[minima](https://github.com/jekyll/minima)

You can find the source code for Jekyll at
{% include icon-github.html username=&quot;jekyll&quot; %} /
[jekyll](https://github.com/jekyll/jekyll)


## How to post new articles on Jekyll


#### The Posts Folder

As explained on the [directory structure](https://jekyllrb.com/docs/structure/) page, the _posts folder is where your blog posts will live:

```
.
&#x251c;&#x2500;&#x2500; _drafts
&#x251c;&#x2500;&#x2500; _includes
&#x251c;&#x2500;&#x2500; _layouts
&#x251c;&#x2500;&#x2500; _posts
|   &#x251c;&#x2500;&#x2500; 2007-10-29-why-every-programmer-should-play-nethack.md
|   &#x2514;&#x2500;&#x2500; 2009-04-26-barcamp-boston-4-roundup.md
&#x251c;&#x2500;&#x2500; _data
&#x251c;&#x2500;&#x2500; _site
&#x251c;&#x2500;&#x2500; .jekyll-metadata
&#x2514;&#x2500;&#x2500; index.html
```

The files extension is Markdown.


#### Front Matter


The front matter is where Jekyll starts to get really cool. Any file that contains a YAML front matter block will be processed by Jekyll as a special file. The front matter must be the first thing in the file and must take the form of valid YAML set between triple-dashed lines. Here is a basic example:

```
---
layout: post
title:  &quot;Welcome to Jekyll&quot;
date:   2016-08-29 16:13:22 +0200
tags: 
---
```

* ```Layout``` attribute must be always Post to load the good HTM-CSS template of the page

=====================================================
== File: src/homepage/_site/images/james-alt.svg
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --&gt;
&lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.1//EN&quot; &quot;http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&quot;&gt;
&lt;svg version=&quot;1.1&quot; id=&quot;Calque_1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; x=&quot;0px&quot; y=&quot;0px&quot;
	 width=&quot;37px&quot; height=&quot;31px&quot; viewBox=&quot;0 0 37 31&quot; enable-background=&quot;new 0 0 37 31&quot; xml:space=&quot;preserve&quot;&gt;
&lt;g&gt;
	&lt;path fill=&quot;#FFFFFF&quot; d=&quot;M37.001,4.407c-1.435-0.966-2.92-1.75-4.473-2.153c-1.552-0.412-3.151-0.315-4.63,0.3l-0.277,0.117
		l-0.139,0.062l-0.064,0.032l-0.036,0.016l-0.018,0.008l-0.008,0.004c0.008-0.007-0.028,0.016,0.02-0.012L27.37,2.783
		c-0.2,0.127-0.391,0.232-0.589,0.337c-0.392,0.207-0.796,0.391-1.216,0.543c-0.836,0.295-1.737,0.503-2.664,0.389
		c-0.458-0.061-0.913-0.222-1.3-0.489c-0.382-0.268-0.689-0.629-0.899-1.026C20.28,1.737,20.15,0.857,20.124,0
		c0.156,0.842,0.393,1.686,0.857,2.363c0.234,0.336,0.523,0.622,0.864,0.811c0.339,0.19,0.723,0.284,1.111,0.301
		c0.782,0.038,1.582-0.201,2.325-0.532c0.376-0.165,0.741-0.353,1.092-0.563c0.176-0.105,0.354-0.219,0.509-0.33l0.307-0.201
		c0.1-0.057,0.194-0.122,0.293-0.173c0.801-0.433,1.702-0.731,2.627-0.793c0.925-0.069,1.856,0.063,2.716,0.357
		c0.863,0.29,1.655,0.731,2.359,1.267C35.888,3.047,36.52,3.676,37.001,4.407z&quot;/&gt;
	&lt;path fill=&quot;#FFFFFF&quot; d=&quot;M13.25,20.418c-5.733-4.373-9.554-8.973-9.418-9.078c0.147-0.145,4.153,4.212,9.83,8.536
		c1.665,1.28,3.28,2.412,4.733,3.381c0.02-0.036,0.041-0.069,0.062-0.105c0.237-0.456,0.42-0.948,0.562-1.462
		c-1.018-2.053-3.554-4.892-6.501-7.496c-0.656-0.572-1.338-1.078-2.028-1.536c-0.151,1.223-0.452,2.098-0.453,2.096
		c0,0-0.335-1.163-0.306-2.579C9.266,11.892,8.8,11.63,8.336,11.389c-0.004,1.395-0.414,2.439-0.417,2.439
		c0,0.002-0.833-1.414-0.922-3.071c-0.002-0.01-0.002-0.021-0.002-0.031c-2.767-1.279-5.1-1.896-5.104-1.89
		C1.867,8.774,2.064,14.75,6.431,19.305c0.147-0.008,0.296-0.016,0.449-0.016c1.588,0.004,2.944,0.577,2.947,0.577
		c0-0.002-0.835,0.501-2.054,0.671c0.444,0.355,0.899,0.682,1.364,0.973c1.148-0.416,2.102-0.557,2.102-0.557
		c0-0.002-0.503,0.495-1.334,1.017c3.035,1.685,5.787,2.542,7.53,2.624c0.236-0.26,0.452-0.532,0.645-0.821
		C16.586,22.84,14.938,21.717,13.25,20.418z&quot;/&gt;
	&lt;path fill=&quot;#FFFFFF&quot; d=&quot;M33.7,4.335c-1.103,0.092-2.21,0.292-3.3,0.605c-2.173,0.623-4.31,1.725-6.062,3.396
		c-0.883,0.824-1.64,1.798-2.271,2.846c-0.614,1.059-1.109,2.191-1.43,3.363c-0.327,1.168-0.529,2.363-0.595,3.548
		c-0.02,0.291-0.031,0.596-0.039,0.9L19.995,19.4l-0.008,0.35c-0.012,0.462-0.051,0.918-0.122,1.358
		c-0.056,0.337-0.131,0.665-0.223,0.984c-0.141,0.514-0.324,1.006-0.562,1.466c-0.02,0.036-0.043,0.066-0.062,0.102
		c-0.099,0.178-0.204,0.353-0.317,0.52c-0.191,0.286-0.407,0.559-0.643,0.819c-0.17,0.186-0.348,0.366-0.544,0.541
		c-1.304,1.152-3.097,1.944-5.021,2.453c-1.931,0.518-3.995,0.788-6.091,0.934c-2.1,0.145-4.234,0.166-6.404,0.112
		c2.023,0.815,4.157,1.338,6.333,1.664c2.179,0.313,4.422,0.415,6.701,0.127c1.137-0.149,2.287-0.394,3.418-0.802
		c1.129-0.405,2.252-0.959,3.265-1.745c1.019-0.771,1.92-1.77,2.571-2.913c0.331-0.568,0.601-1.167,0.82-1.775
		c0.21-0.611,0.364-1.236,0.47-1.859c0.11-0.619,0.17-1.24,0.193-1.852c0.008-0.154,0.008-0.307,0.008-0.461v-0.398
		c0.005-0.234,0.011-0.468,0.022-0.716c0.052-0.967,0.166-1.914,0.376-2.832c0.418-1.832,1.213-3.537,2.405-5.009
		c1.192-1.472,2.767-2.711,4.552-3.706c1.79-0.994,3.765-1.774,5.862-2.355C35.917,4.247,34.808,4.238,33.7,4.335z&quot;/&gt;
&lt;/g&gt;
&lt;/svg&gt;

=====================================================
== File: src/homepage/_site/images/james.svg
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --&gt;
&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; x=&quot;0px&quot; y=&quot;0px&quot;
	 viewBox=&quot;-223 283 164 228&quot; style=&quot;enable-background:new -223 283 164 228;&quot; xml:space=&quot;preserve&quot;&gt;
&lt;style type=&quot;text/css&quot;&gt;
	.st0{display:none;}
	.st1{display:inline;}
	.st2{fill:#FFFFFF;}
	.st3{fill:#E74A24;}
	.st4{fill:none;}
	.st5{fill:url(#SVGID_1_);}
	.st6{fill:#E4262A;}
	.st7{font-family:'Poppins-Regular';}
	.st8{font-size:28px;}
&lt;/style&gt;
&lt;g id=&quot;Calque_2&quot; class=&quot;st0&quot;&gt;
	&lt;rect x=&quot;-233.5&quot; y=&quot;269.3&quot; class=&quot;st1&quot; width=&quot;186&quot; height=&quot;258&quot;/&gt;
&lt;/g&gt;
&lt;g id=&quot;Calque_1&quot;&gt;
	&lt;g&gt;
		&lt;circle class=&quot;st2&quot; cx=&quot;-141.1&quot; cy=&quot;342.3&quot; r=&quot;59.3&quot;/&gt;
		&lt;path class=&quot;st3&quot; d=&quot;M-100.2,317.9c-3.2-2.1-6.5-3.9-9.9-4.7c-3.4-0.9-7-0.7-10.2,0.7l-0.6,0.3l-0.3,0.1l-0.2,0.1l-0.1,0l0,0l0,0
			c0,0-0.1,0,0,0l0,0c-0.4,0.3-0.9,0.5-1.3,0.7c-0.9,0.5-1.8,0.9-2.7,1.2c-1.9,0.6-3.8,1.1-5.9,0.9c-1-0.1-2-0.5-2.9-1.1
			c-0.9-0.6-1.5-1.4-2-2.3c-0.9-1.8-1.2-3.7-1.3-5.6c0.3,1.9,0.9,3.7,1.9,5.2c0.5,0.7,1.2,1.4,1.9,1.8c0.8,0.4,1.6,0.6,2.5,0.7
			c1.7,0.1,3.5-0.4,5.2-1.2c0.8-0.4,1.6-0.8,2.4-1.2c0.4-0.2,0.8-0.5,1.1-0.7l0.7-0.4c0.2-0.1,0.4-0.3,0.7-0.4
			c1.8-1,3.8-1.6,5.8-1.7c2-0.1,4.1,0.1,6,0.8c1.9,0.6,3.7,1.6,5.2,2.8C-102.6,314.9-101.2,316.3-100.2,317.9z&quot;/&gt;
		&lt;path class=&quot;st4&quot; d=&quot;M-172.3,334c-0.3,0.2,8.2,10.4,20.9,20c3.7,2.9,7.4,5.3,10.7,7.4c0.3-0.4,0.5-0.8,0.7-1.1
			c-3.2-2.1-6.8-4.6-10.5-7.4C-163.1,343.3-171.9,333.7-172.3,334z&quot;/&gt;
		
			&lt;linearGradient id=&quot;SVGID_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;8.0298&quot; y1=&quot;783.6619&quot; x2=&quot;46.1336&quot; y2=&quot;783.6619&quot; gradientTransform=&quot;matrix(-0.1008 -0.9949 -0.9949 0.1008 623.7179 292.7814)&quot;&gt;
			&lt;stop  offset=&quot;0&quot; style=&quot;stop-color:#FBC315&quot;/&gt;
			&lt;stop  offset=&quot;0.4969&quot; style=&quot;stop-color:#E74A24&quot;/&gt;
			&lt;stop  offset=&quot;1&quot; style=&quot;stop-color:#E4262A&quot;/&gt;
		&lt;/linearGradient&gt;
		&lt;path class=&quot;st5&quot; d=&quot;M-152.8,353.1c-12.7-9.6-21.2-19.7-20.9-20c0.3-0.3,9.2,9.3,21.8,18.8c3.7,2.8,7.3,5.3,10.5,7.4
			c0-0.1,0.1-0.1,0.1-0.2c0.5-1,0.9-2.1,1.2-3.2c-2.3-4.5-7.9-10.8-14.4-16.5c-1.5-1.3-3-2.4-4.5-3.4c-0.3,2.7-1,4.6-1,4.6
			c0,0-0.7-2.6-0.7-5.7c-1-0.6-2.1-1.2-3.1-1.7c0,3.1-0.9,5.4-0.9,5.4c0,0-1.8-3.1-2-6.8c0,0,0,0,0-0.1c-6.1-2.8-11.3-4.2-11.3-4.2
			c-0.1-0.1,0.4,13,10.1,23c0.3,0,0.7,0,1,0c3.5,0,6.5,1.3,6.5,1.3c0,0-1.8,1.1-4.6,1.5c1,0.8,2,1.5,3,2.1c2.5-0.9,4.7-1.2,4.7-1.2
			c0,0-1.1,1.1-3,2.2c6.7,3.7,12.8,5.6,16.7,5.8c0.5-0.6,1-1.2,1.4-1.8C-145.4,358.4-149,356-152.8,353.1z&quot;/&gt;
		&lt;path class=&quot;st6&quot; d=&quot;M-107.5,317.7c-2.4,0.2-4.9,0.6-7.3,1.3c-4.8,1.4-9.5,3.8-13.4,7.5c-2,1.8-3.6,4-5,6.3
			c-1.4,2.3-2.5,4.8-3.2,7.4c-0.7,2.6-1.2,5.2-1.3,7.8c0,0.6-0.1,1.3-0.1,2l0,0.9l0,0.8c0,1-0.1,2-0.3,3c-0.1,0.7-0.3,1.5-0.5,2.2
			c-0.3,1.1-0.7,2.2-1.2,3.2c0,0.1-0.1,0.1-0.1,0.2c-0.2,0.4-0.5,0.8-0.7,1.1c-0.4,0.6-0.9,1.2-1.4,1.8c-0.4,0.4-0.8,0.8-1.2,1.2
			c-2.9,2.5-6.9,4.3-11.1,5.4c-4.3,1.1-8.9,1.7-13.5,2.1c-4.7,0.3-9.4,0.4-14.2,0.2c4.5,1.8,9.2,2.9,14,3.7
			c4.8,0.7,9.8,0.9,14.8,0.3c2.5-0.3,5.1-0.9,7.6-1.8c2.5-0.9,5-2.1,7.2-3.8c2.3-1.7,4.2-3.9,5.7-6.4c0.7-1.3,1.3-2.6,1.8-3.9
			c0.5-1.3,0.8-2.7,1-4.1c0.2-1.4,0.4-2.7,0.4-4.1c0-0.3,0-0.7,0-1l0-0.9c0-0.5,0-1,0-1.6c0.1-2.1,0.4-4.2,0.8-6.2
			c0.9-4,2.7-7.8,5.3-11c2.6-3.2,6.1-6,10.1-8.2c4-2.2,8.3-3.9,13-5.2C-102.6,317.5-105,317.5-107.5,317.7z&quot;/&gt;
	&lt;/g&gt;
	&lt;g&gt;
		&lt;path class=&quot;st2&quot; d=&quot;M-217.7,479.8c-1.9,0-3.4-0.2-4.7-0.7v-5.7c1.6,0.4,3,0.6,4.2,0.6c3.7,0,5.6-2.4,5.6-7.1v-40.3h6.8v40.1
			c0,4.3-1,7.5-3,9.8C-210.8,478.7-213.8,479.8-217.7,479.8z&quot;/&gt;

=====================================================
== File: src/homepage/_site/assets/main.css
=====================================================
/**
 * Reset some basic elements
 */
body, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, hr,
dl, dd, ol, ul, figure {
  margin: 0;
  padding: 0; }

/**
 * Basic styling
 */
body {
  font: 400 16px/1.5 -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;;
  color: #111;
  background-color: #fdfdfd;
  -webkit-text-size-adjust: 100%;
  -webkit-font-feature-settings: &quot;kern&quot; 1;
  -moz-font-feature-settings: &quot;kern&quot; 1;
  -o-font-feature-settings: &quot;kern&quot; 1;
  font-feature-settings: &quot;kern&quot; 1;
  font-kerning: normal;
  display: flex;
  min-height: 100vh;
  flex-direction: column; }

/**
 * Set `margin-bottom` to maintain vertical rhythm
 */
h1, h2, h3, h4, h5, h6,
p, blockquote, pre,
ul, ol, dl, figure,
.highlight {
  margin-bottom: 15px; }

/**
 * `main` element
 */
main {
  display: block;
  /* Default value of `display` of `main` element is 'inline' in IE 11. */ }

/**
 * Images
 */
img {
  max-width: 100%;
  vertical-align: middle; }

/**

=====================================================
== File: src/homepage/_site/assets/css/font-awesome.min.css
=====================================================
/*!
 *  Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */@font-face{font-family:'FontAwesome';src:url('../../assets/fonts/fontawesome-webfont.eot?v=4.6.3');src:url('../../assets/fonts/fontawesome-webfont.eot?#iefix&amp;v=4.6.3') format('embedded-opentype'),url('../../assets/fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('../../assets/fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('../../assets/fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('../../assets/fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul&gt;li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:&quot;progid:DXImageTransform.Microsoft.BasicImage(rotation=1)&quot;;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:&quot;progid:DXImageTransform.Microsoft.BasicImage(rotation=2)&quot;;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:&quot;progid:DXImageTransform.Microsoft.BasicImage(rotation=3)&quot;;-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:&quot;progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)&quot;;-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:&quot;progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)&quot;;-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:&quot;\f000&quot;}.fa-music:before{content:&quot;\f001&quot;}.fa-search:before{content:&quot;\f002&quot;}.fa-envelope-o:before{content:&quot;\f003&quot;}.fa-heart:before{content:&quot;\f004&quot;}.fa-star:before{content:&quot;\f005&quot;}.fa-star-o:before{content:&quot;\f006&quot;}.fa-user:before{content:&quot;\f007&quot;}.fa-film:before{content:&quot;\f008&quot;}.fa-th-large:before{content:&quot;\f009&quot;}.fa-th:before{content:&quot;\f00a&quot;}.fa-th-list:before{content:&quot;\f00b&quot;}.fa-check:before{content:&quot;\f00c&quot;}.fa-remove:before,.fa-close:before,.fa-times:before{content:&quot;\f00d&quot;}.fa-search-plus:before{content:&quot;\f00e&quot;}.fa-search-minus:before{content:&quot;\f010&quot;}.fa-power-off:before{content:&quot;\f011&quot;}.fa-signal:before{content:&quot;\f012&quot;}.fa-gear:before,.fa-cog:before{content:&quot;\f013&quot;}.fa-trash-o:before{content:&quot;\f014&quot;}.fa-home:before{content:&quot;\f015&quot;}.fa-file-o:before{content:&quot;\f016&quot;}.fa-clock-o:before{content:&quot;\f017&quot;}.fa-road:before{content:&quot;\f018&quot;}.fa-download:before{content:&quot;\f019&quot;}.fa-arrow-circle-o-down:before{content:&quot;\f01a&quot;}.fa-arrow-circle-o-up:before{content:&quot;\f01b&quot;}.fa-inbox:before{content:&quot;\f01c&quot;}.fa-play-circle-o:before{content:&quot;\f01d&quot;}.fa-rotate-right:before,.fa-repeat:before{content:&quot;\f01e&quot;}.fa-refresh:before{content:&quot;\f021&quot;}.fa-list-alt:before{content:&quot;\f022&quot;}.fa-lock:before{content:&quot;\f023&quot;}.fa-flag:before{content:&quot;\f024&quot;}.fa-headphones:before{content:&quot;\f025&quot;}.fa-volume-off:before{content:&quot;\f026&quot;}.fa-volume-down:before{content:&quot;\f027&quot;}.fa-volume-up:before{content:&quot;\f028&quot;}.fa-qrcode:before{content:&quot;\f029&quot;}.fa-barcode:before{content:&quot;\f02a&quot;}.fa-tag:before{content:&quot;\f02b&quot;}.fa-tags:before{content:&quot;\f02c&quot;}.fa-book:before{content:&quot;\f02d&quot;}.fa-bookmark:before{content:&quot;\f02e&quot;}.fa-print:before{content:&quot;\f02f&quot;}.fa-camera:before{content:&quot;\f030&quot;}.fa-font:before{content:&quot;\f031&quot;}.fa-bold:before{content:&quot;\f032&quot;}.fa-italic:before{content:&quot;\f033&quot;}.fa-text-height:before{content:&quot;\f034&quot;}.fa-text-width:before{content:&quot;\f035&quot;}.fa-align-left:before{content:&quot;\f036&quot;}.fa-align-center:before{content:&quot;\f037&quot;}.fa-align-right:before{content:&quot;\f038&quot;}.fa-align-justify:before{content:&quot;\f039&quot;}.fa-list:before{content:&quot;\f03a&quot;}.fa-dedent:before,.fa-outdent:before{content:&quot;\f03b&quot;}.fa-indent:before{content:&quot;\f03c&quot;}.fa-video-camera:before{content:&quot;\f03d&quot;}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:&quot;\f03e&quot;}.fa-pencil:before{content:&quot;\f040&quot;}.fa-map-marker:before{content:&quot;\f041&quot;}.fa-adjust:before{content:&quot;\f042&quot;}.fa-tint:before{content:&quot;\f043&quot;}.fa-edit:before,.fa-pencil-square-o:before{content:&quot;\f044&quot;}.fa-share-square-o:before{content:&quot;\f045&quot;}.fa-check-square-o:before{content:&quot;\f046&quot;}.fa-arrows:before{content:&quot;\f047&quot;}.fa-step-backward:before{content:&quot;\f048&quot;}.fa-fast-backward:before{content:&quot;\f049&quot;}.fa-backward:before{content:&quot;\f04a&quot;}.fa-play:before{content:&quot;\f04b&quot;}.fa-pause:before{content:&quot;\f04c&quot;}.fa-stop:before{content:&quot;\f04d&quot;}.fa-forward:before{content:&quot;\f04e&quot;}.fa-fast-forward:before{content:&quot;\f050&quot;}.fa-step-forward:before{content:&quot;\f051&quot;}.fa-eject:before{content:&quot;\f052&quot;}.fa-chevron-left:before{content:&quot;\f053&quot;}.fa-chevron-right:before{content:&quot;\f054&quot;}.fa-plus-circle:before{content:&quot;\f055&quot;}.fa-minus-circle:before{content:&quot;\f056&quot;}.fa-times-circle:before{content:&quot;\f057&quot;}.fa-check-circle:before{content:&quot;\f058&quot;}.fa-question-circle:before{content:&quot;\f059&quot;}.fa-info-circle:before{content:&quot;\f05a&quot;}.fa-crosshairs:before{content:&quot;\f05b&quot;}.fa-times-circle-o:before{content:&quot;\f05c&quot;}.fa-check-circle-o:before{content:&quot;\f05d&quot;}.fa-ban:before{content:&quot;\f05e&quot;}.fa-arrow-left:before{content:&quot;\f060&quot;}.fa-arrow-right:before{content:&quot;\f061&quot;}.fa-arrow-up:before{content:&quot;\f062&quot;}.fa-arrow-down:before{content:&quot;\f063&quot;}.fa-mail-forward:before,.fa-share:before{content:&quot;\f064&quot;}.fa-expand:before{content:&quot;\f065&quot;}.fa-compress:before{content:&quot;\f066&quot;}.fa-plus:before{content:&quot;\f067&quot;}.fa-minus:before{content:&quot;\f068&quot;}.fa-asterisk:before{content:&quot;\f069&quot;}.fa-exclamation-circle:before{content:&quot;\f06a&quot;}.fa-gift:before{content:&quot;\f06b&quot;}.fa-leaf:before{content:&quot;\f06c&quot;}.fa-fire:before{content:&quot;\f06d&quot;}.fa-eye:before{content:&quot;\f06e&quot;}.fa-eye-slash:before{content:&quot;\f070&quot;}.fa-warning:before,.fa-exclamation-triangle:before{content:&quot;\f071&quot;}.fa-plane:before{content:&quot;\f072&quot;}.fa-calendar:before{content:&quot;\f073&quot;}.fa-random:before{content:&quot;\f074&quot;}.fa-comment:before{content:&quot;\f075&quot;}.fa-magnet:before{content:&quot;\f076&quot;}.fa-chevron-up:before{content:&quot;\f077&quot;}.fa-chevron-down:before{content:&quot;\f078&quot;}.fa-retweet:before{content:&quot;\f079&quot;}.fa-shopping-cart:before{content:&quot;\f07a&quot;}.fa-folder:before{content:&quot;\f07b&quot;}.fa-folder-open:before{content:&quot;\f07c&quot;}.fa-arrows-v:before{content:&quot;\f07d&quot;}.fa-arrows-h:before{content:&quot;\f07e&quot;}.fa-bar-chart-o:before,.fa-bar-chart:before{content:&quot;\f080&quot;}.fa-twitter-square:before{content:&quot;\f081&quot;}.fa-facebook-square:before{content:&quot;\f082&quot;}.fa-camera-retro:before{content:&quot;\f083&quot;}.fa-key:before{content:&quot;\f084&quot;}.fa-gears:before,.fa-cogs:before{content:&quot;\f085&quot;}.fa-comments:before{content:&quot;\f086&quot;}.fa-thumbs-o-up:before{content:&quot;\f087&quot;}.fa-thumbs-o-down:before{content:&quot;\f088&quot;}.fa-star-half:before{content:&quot;\f089&quot;}.fa-heart-o:before{content:&quot;\f08a&quot;}.fa-sign-out:before{content:&quot;\f08b&quot;}.fa-linkedin-square:before{content:&quot;\f08c&quot;}.fa-thumb-tack:before{content:&quot;\f08d&quot;}.fa-external-link:before{content:&quot;\f08e&quot;}.fa-sign-in:before{content:&quot;\f090&quot;}.fa-trophy:before{content:&quot;\f091&quot;}.fa-github-square:before{content:&quot;\f092&quot;}.fa-upload:before{content:&quot;\f093&quot;}.fa-lemon-o:before{content:&quot;\f094&quot;}.fa-phone:before{content:&quot;\f095&quot;}.fa-square-o:before{content:&quot;\f096&quot;}.fa-bookmark-o:before{content:&quot;\f097&quot;}.fa-phone-square:before{content:&quot;\f098&quot;}.fa-twitter:before{content:&quot;\f099&quot;}.fa-facebook-f:before,.fa-facebook:before{content:&quot;\f09a&quot;}.fa-github:before{content:&quot;\f09b&quot;}.fa-unlock:before{content:&quot;\f09c&quot;}.fa-credit-card:before{content:&quot;\f09d&quot;}.fa-feed:before,.fa-rss:before{content:&quot;\f09e&quot;}.fa-hdd-o:before{content:&quot;\f0a0&quot;}.fa-bullhorn:before{content:&quot;\f0a1&quot;}.fa-bell:before{content:&quot;\f0f3&quot;}.fa-certificate:before{content:&quot;\f0a3&quot;}.fa-hand-o-right:before{content:&quot;\f0a4&quot;}.fa-hand-o-left:before{content:&quot;\f0a5&quot;}.fa-hand-o-up:before{content:&quot;\f0a6&quot;}.fa-hand-o-down:before{content:&quot;\f0a7&quot;}.fa-arrow-circle-left:before{content:&quot;\f0a8&quot;}.fa-arrow-circle-right:before{content:&quot;\f0a9&quot;}.fa-arrow-circle-up:before{content:&quot;\f0aa&quot;}.fa-arrow-circle-down:before{content:&quot;\f0ab&quot;}.fa-globe:before{content:&quot;\f0ac&quot;}.fa-wrench:before{content:&quot;\f0ad&quot;}.fa-tasks:before{content:&quot;\f0ae&quot;}.fa-filter:before{content:&quot;\f0b0&quot;}.fa-briefcase:before{content:&quot;\f0b1&quot;}.fa-arrows-alt:before{content:&quot;\f0b2&quot;}.fa-group:before,.fa-users:before{content:&quot;\f0c0&quot;}.fa-chain:before,.fa-link:before{content:&quot;\f0c1&quot;}.fa-cloud:before{content:&quot;\f0c2&quot;}.fa-flask:before{content:&quot;\f0c3&quot;}.fa-cut:before,.fa-scissors:before{content:&quot;\f0c4&quot;}.fa-copy:before,.fa-files-o:before{content:&quot;\f0c5&quot;}.fa-paperclip:before{content:&quot;\f0c6&quot;}.fa-save:before,.fa-floppy-o:before{content:&quot;\f0c7&quot;}.fa-square:before{content:&quot;\f0c8&quot;}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:&quot;\f0c9&quot;}.fa-list-ul:before{content:&quot;\f0ca&quot;}.fa-list-ol:before{content:&quot;\f0cb&quot;}.fa-strikethrough:before{content:&quot;\f0cc&quot;}.fa-underline:before{content:&quot;\f0cd&quot;}.fa-table:before{content:&quot;\f0ce&quot;}.fa-magic:before{content:&quot;\f0d0&quot;}.fa-truck:before{content:&quot;\f0d1&quot;}.fa-pinterest:before{content:&quot;\f0d2&quot;}.fa-pinterest-square:before{content:&quot;\f0d3&quot;}.fa-google-plus-square:before{content:&quot;\f0d4&quot;}.fa-google-plus:before{content:&quot;\f0d5&quot;}.fa-money:before{content:&quot;\f0d6&quot;}.fa-caret-down:before{content:&quot;\f0d7&quot;}.fa-caret-up:before{content:&quot;\f0d8&quot;}.fa-caret-left:before{content:&quot;\f0d9&quot;}.fa-caret-right:before{content:&quot;\f0da&quot;}.fa-columns:before{content:&quot;\f0db&quot;}.fa-unsorted:before,.fa-sort:before{content:&quot;\f0dc&quot;}.fa-sort-down:before,.fa-sort-desc:before{content:&quot;\f0dd&quot;}.fa-sort-up:before,.fa-sort-asc:before{content:&quot;\f0de&quot;}.fa-envelope:before{content:&quot;\f0e0&quot;}.fa-linkedin:before{content:&quot;\f0e1&quot;}.fa-rotate-left:before,.fa-undo:before{content:&quot;\f0e2&quot;}.fa-legal:before,.fa-gavel:before{content:&quot;\f0e3&quot;}.fa-dashboard:before,.fa-tachometer:before{content:&quot;\f0e4&quot;}.fa-comment-o:before{content:&quot;\f0e5&quot;}.fa-comments-o:before{content:&quot;\f0e6&quot;}.fa-flash:before,.fa-bolt:before{content:&quot;\f0e7&quot;}.fa-sitemap:before{content:&quot;\f0e8&quot;}.fa-umbrella:before{content:&quot;\f0e9&quot;}.fa-paste:before,.fa-clipboard:before{content:&quot;\f0ea&quot;}.fa-lightbulb-o:before{content:&quot;\f0eb&quot;}.fa-exchange:before{content:&quot;\f0ec&quot;}.fa-cloud-download:before{content:&quot;\f0ed&quot;}.fa-cloud-upload:before{content:&quot;\f0ee&quot;}.fa-user-md:before{content:&quot;\f0f0&quot;}.fa-stethoscope:before{content:&quot;\f0f1&quot;}.fa-suitcase:before{content:&quot;\f0f2&quot;}.fa-bell-o:before{content:&quot;\f0a2&quot;}.fa-coffee:before{content:&quot;\f0f4&quot;}.fa-cutlery:before{content:&quot;\f0f5&quot;}.fa-file-text-o:before{content:&quot;\f0f6&quot;}.fa-building-o:before{content:&quot;\f0f7&quot;}.fa-hospital-o:before{content:&quot;\f0f8&quot;}.fa-ambulance:before{content:&quot;\f0f9&quot;}.fa-medkit:before{content:&quot;\f0fa&quot;}.fa-fighter-jet:before{content:&quot;\f0fb&quot;}.fa-beer:before{content:&quot;\f0fc&quot;}.fa-h-square:before{content:&quot;\f0fd&quot;}.fa-plus-square:before{content:&quot;\f0fe&quot;}.fa-angle-double-left:before{content:&quot;\f100&quot;}.fa-angle-double-right:before{content:&quot;\f101&quot;}.fa-angle-double-up:before{content:&quot;\f102&quot;}.fa-angle-double-down:before{content:&quot;\f103&quot;}.fa-angle-left:before{content:&quot;\f104&quot;}.fa-angle-right:before{content:&quot;\f105&quot;}.fa-angle-up:before{content:&quot;\f106&quot;}.fa-angle-down:before{content:&quot;\f107&quot;}.fa-desktop:before{content:&quot;\f108&quot;}.fa-laptop:before{content:&quot;\f109&quot;}.fa-tablet:before{content:&quot;\f10a&quot;}.fa-mobile-phone:before,.fa-mobile:before{content:&quot;\f10b&quot;}.fa-circle-o:before{content:&quot;\f10c&quot;}.fa-quote-left:before{content:&quot;\f10d&quot;}.fa-quote-right:before{content:&quot;\f10e&quot;}.fa-spinner:before{content:&quot;\f110&quot;}.fa-circle:before{content:&quot;\f111&quot;}.fa-mail-reply:before,.fa-reply:before{content:&quot;\f112&quot;}.fa-github-alt:before{content:&quot;\f113&quot;}.fa-folder-o:before{content:&quot;\f114&quot;}.fa-folder-open-o:before{content:&quot;\f115&quot;}.fa-smile-o:before{content:&quot;\f118&quot;}.fa-frown-o:before{content:&quot;\f119&quot;}.fa-meh-o:before{content:&quot;\f11a&quot;}.fa-gamepad:before{content:&quot;\f11b&quot;}.fa-keyboard-o:before{content:&quot;\f11c&quot;}.fa-flag-o:before{content:&quot;\f11d&quot;}.fa-flag-checkered:before{content:&quot;\f11e&quot;}.fa-terminal:before{content:&quot;\f120&quot;}.fa-code:before{content:&quot;\f121&quot;}.fa-mail-reply-all:before,.fa-reply-all:before{content:&quot;\f122&quot;}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:&quot;\f123&quot;}.fa-location-arrow:before{content:&quot;\f124&quot;}.fa-crop:before{content:&quot;\f125&quot;}.fa-code-fork:before{content:&quot;\f126&quot;}.fa-unlink:before,.fa-chain-broken:before{content:&quot;\f127&quot;}.fa-question:before{content:&quot;\f128&quot;}.fa-info:before{content:&quot;\f129&quot;}.fa-exclamation:before{content:&quot;\f12a&quot;}.fa-superscript:before{content:&quot;\f12b&quot;}.fa-subscript:before{content:&quot;\f12c&quot;}.fa-eraser:before{content:&quot;\f12d&quot;}.fa-puzzle-piece:before{content:&quot;\f12e&quot;}.fa-microphone:before{content:&quot;\f130&quot;}.fa-microphone-slash:before{content:&quot;\f131&quot;}.fa-shield:before{content:&quot;\f132&quot;}.fa-calendar-o:before{content:&quot;\f133&quot;}.fa-fire-extinguisher:before{content:&quot;\f134&quot;}.fa-rocket:before{content:&quot;\f135&quot;}.fa-maxcdn:before{content:&quot;\f136&quot;}.fa-chevron-circle-left:before{content:&quot;\f137&quot;}.fa-chevron-circle-right:before{content:&quot;\f138&quot;}.fa-chevron-circle-up:before{content:&quot;\f139&quot;}.fa-chevron-circle-down:before{content:&quot;\f13a&quot;}.fa-html5:before{content:&quot;\f13b&quot;}.fa-css3:before{content:&quot;\f13c&quot;}.fa-anchor:before{content:&quot;\f13d&quot;}.fa-unlock-alt:before{content:&quot;\f13e&quot;}.fa-bullseye:before{content:&quot;\f140&quot;}.fa-ellipsis-h:before{content:&quot;\f141&quot;}.fa-ellipsis-v:before{content:&quot;\f142&quot;}.fa-rss-square:before{content:&quot;\f143&quot;}.fa-play-circle:before{content:&quot;\f144&quot;}.fa-ticket:before{content:&quot;\f145&quot;}.fa-minus-square:before{content:&quot;\f146&quot;}.fa-minus-square-o:before{content:&quot;\f147&quot;}.fa-level-up:before{content:&quot;\f148&quot;}.fa-level-down:before{content:&quot;\f149&quot;}.fa-check-square:before{content:&quot;\f14a&quot;}.fa-pencil-square:before{content:&quot;\f14b&quot;}.fa-external-link-square:before{content:&quot;\f14c&quot;}.fa-share-square:before{content:&quot;\f14d&quot;}.fa-compass:before{content:&quot;\f14e&quot;}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:&quot;\f150&quot;}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:&quot;\f151&quot;}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:&quot;\f152&quot;}.fa-euro:before,.fa-eur:before{content:&quot;\f153&quot;}.fa-gbp:before{content:&quot;\f154&quot;}.fa-dollar:before,.fa-usd:before{content:&quot;\f155&quot;}.fa-rupee:before,.fa-inr:before{content:&quot;\f156&quot;}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:&quot;\f157&quot;}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:&quot;\f158&quot;}.fa-won:before,.fa-krw:before{content:&quot;\f159&quot;}.fa-bitcoin:before,.fa-btc:before{content:&quot;\f15a&quot;}.fa-file:before{content:&quot;\f15b&quot;}.fa-file-text:before{content:&quot;\f15c&quot;}.fa-sort-alpha-asc:before{content:&quot;\f15d&quot;}.fa-sort-alpha-desc:before{content:&quot;\f15e&quot;}.fa-sort-amount-asc:before{content:&quot;\f160&quot;}.fa-sort-amount-desc:before{content:&quot;\f161&quot;}.fa-sort-numeric-asc:before{content:&quot;\f162&quot;}.fa-sort-numeric-desc:before{content:&quot;\f163&quot;}.fa-thumbs-up:before{content:&quot;\f164&quot;}.fa-thumbs-down:before{content:&quot;\f165&quot;}.fa-youtube-square:before{content:&quot;\f166&quot;}.fa-youtube:before{content:&quot;\f167&quot;}.fa-xing:before{content:&quot;\f168&quot;}.fa-xing-square:before{content:&quot;\f169&quot;}.fa-youtube-play:before{content:&quot;\f16a&quot;}.fa-dropbox:before{content:&quot;\f16b&quot;}.fa-stack-overflow:before{content:&quot;\f16c&quot;}.fa-instagram:before{content:&quot;\f16d&quot;}.fa-flickr:before{content:&quot;\f16e&quot;}.fa-adn:before{content:&quot;\f170&quot;}.fa-bitbucket:before{content:&quot;\f171&quot;}.fa-bitbucket-square:before{content:&quot;\f172&quot;}.fa-tumblr:before{content:&quot;\f173&quot;}.fa-tumblr-square:before{content:&quot;\f174&quot;}.fa-long-arrow-down:before{content:&quot;\f175&quot;}.fa-long-arrow-up:before{content:&quot;\f176&quot;}.fa-long-arrow-left:before{content:&quot;\f177&quot;}.fa-long-arrow-right:before{content:&quot;\f178&quot;}.fa-apple:before{content:&quot;\f179&quot;}.fa-windows:before{content:&quot;\f17a&quot;}.fa-android:before{content:&quot;\f17b&quot;}.fa-linux:before{content:&quot;\f17c&quot;}.fa-dribbble:before{content:&quot;\f17d&quot;}.fa-skype:before{content:&quot;\f17e&quot;}.fa-foursquare:before{content:&quot;\f180&quot;}.fa-trello:before{content:&quot;\f181&quot;}.fa-female:before{content:&quot;\f182&quot;}.fa-male:before{content:&quot;\f183&quot;}.fa-gittip:before,.fa-gratipay:before{content:&quot;\f184&quot;}.fa-sun-o:before{content:&quot;\f185&quot;}.fa-moon-o:before{content:&quot;\f186&quot;}.fa-archive:before{content:&quot;\f187&quot;}.fa-bug:before{content:&quot;\f188&quot;}.fa-vk:before{content:&quot;\f189&quot;}.fa-weibo:before{content:&quot;\f18a&quot;}.fa-renren:before{content:&quot;\f18b&quot;}.fa-pagelines:before{content:&quot;\f18c&quot;}.fa-stack-exchange:before{content:&quot;\f18d&quot;}.fa-arrow-circle-o-right:before{content:&quot;\f18e&quot;}.fa-arrow-circle-o-left:before{content:&quot;\f190&quot;}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:&quot;\f191&quot;}.fa-dot-circle-o:before{content:&quot;\f192&quot;}.fa-wheelchair:before{content:&quot;\f193&quot;}.fa-vimeo-square:before{content:&quot;\f194&quot;}.fa-turkish-lira:before,.fa-try:before{content:&quot;\f195&quot;}.fa-plus-square-o:before{content:&quot;\f196&quot;}.fa-space-shuttle:before{content:&quot;\f197&quot;}.fa-slack:before{content:&quot;\f198&quot;}.fa-envelope-square:before{content:&quot;\f199&quot;}.fa-wordpress:before{content:&quot;\f19a&quot;}.fa-openid:before{content:&quot;\f19b&quot;}.fa-institution:before,.fa-bank:before,.fa-university:before{content:&quot;\f19c&quot;}.fa-mortar-board:before,.fa-graduation-cap:before{content:&quot;\f19d&quot;}.fa-yahoo:before{content:&quot;\f19e&quot;}.fa-google:before{content:&quot;\f1a0&quot;}.fa-reddit:before{content:&quot;\f1a1&quot;}.fa-reddit-square:before{content:&quot;\f1a2&quot;}.fa-stumbleupon-circle:before{content:&quot;\f1a3&quot;}.fa-stumbleupon:before{content:&quot;\f1a4&quot;}.fa-delicious:before{content:&quot;\f1a5&quot;}.fa-digg:before{content:&quot;\f1a6&quot;}.fa-pied-piper-pp:before{content:&quot;\f1a7&quot;}.fa-pied-piper-alt:before{content:&quot;\f1a8&quot;}.fa-drupal:before{content:&quot;\f1a9&quot;}.fa-joomla:before{content:&quot;\f1aa&quot;}.fa-language:before{content:&quot;\f1ab&quot;}.fa-fax:before{content:&quot;\f1ac&quot;}.fa-building:before{content:&quot;\f1ad&quot;}.fa-child:before{content:&quot;\f1ae&quot;}.fa-paw:before{content:&quot;\f1b0&quot;}.fa-spoon:before{content:&quot;\f1b1&quot;}.fa-cube:before{content:&quot;\f1b2&quot;}.fa-cubes:before{content:&quot;\f1b3&quot;}.fa-behance:before{content:&quot;\f1b4&quot;}.fa-behance-square:before{content:&quot;\f1b5&quot;}.fa-steam:before{content:&quot;\f1b6&quot;}.fa-steam-square:before{content:&quot;\f1b7&quot;}.fa-recycle:before{content:&quot;\f1b8&quot;}.fa-automobile:before,.fa-car:before{content:&quot;\f1b9&quot;}.fa-cab:before,.fa-taxi:before{content:&quot;\f1ba&quot;}.fa-tree:before{content:&quot;\f1bb&quot;}.fa-spotify:before{content:&quot;\f1bc&quot;}.fa-deviantart:before{content:&quot;\f1bd&quot;}.fa-soundcloud:before{content:&quot;\f1be&quot;}.fa-database:before{content:&quot;\f1c0&quot;}.fa-file-pdf-o:before{content:&quot;\f1c1&quot;}.fa-file-word-o:before{content:&quot;\f1c2&quot;}.fa-file-excel-o:before{content:&quot;\f1c3&quot;}.fa-file-powerpoint-o:before{content:&quot;\f1c4&quot;}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:&quot;\f1c5&quot;}.fa-file-zip-o:before,.fa-file-archive-o:before{content:&quot;\f1c6&quot;}.fa-file-sound-o:before,.fa-file-audio-o:before{content:&quot;\f1c7&quot;}.fa-file-movie-o:before,.fa-file-video-o:before{content:&quot;\f1c8&quot;}.fa-file-code-o:before{content:&quot;\f1c9&quot;}.fa-vine:before{content:&quot;\f1ca&quot;}.fa-codepen:before{content:&quot;\f1cb&quot;}.fa-jsfiddle:before{content:&quot;\f1cc&quot;}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:&quot;\f1cd&quot;}.fa-circle-o-notch:before{content:&quot;\f1ce&quot;}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:&quot;\f1d0&quot;}.fa-ge:before,.fa-empire:before{content:&quot;\f1d1&quot;}.fa-git-square:before{content:&quot;\f1d2&quot;}.fa-git:before{content:&quot;\f1d3&quot;}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:&quot;\f1d4&quot;}.fa-tencent-weibo:before{content:&quot;\f1d5&quot;}.fa-qq:before{content:&quot;\f1d6&quot;}.fa-wechat:before,.fa-weixin:before{content:&quot;\f1d7&quot;}.fa-send:before,.fa-paper-plane:before{content:&quot;\f1d8&quot;}.fa-send-o:before,.fa-paper-plane-o:before{content:&quot;\f1d9&quot;}.fa-history:before{content:&quot;\f1da&quot;}.fa-circle-thin:before{content:&quot;\f1db&quot;}.fa-header:before{content:&quot;\f1dc&quot;}.fa-paragraph:before{content:&quot;\f1dd&quot;}.fa-sliders:before{content:&quot;\f1de&quot;}.fa-share-alt:before{content:&quot;\f1e0&quot;}.fa-share-alt-square:before{content:&quot;\f1e1&quot;}.fa-bomb:before{content:&quot;\f1e2&quot;}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:&quot;\f1e3&quot;}.fa-tty:before{content:&quot;\f1e4&quot;}.fa-binoculars:before{content:&quot;\f1e5&quot;}.fa-plug:before{content:&quot;\f1e6&quot;}.fa-slideshare:before{content:&quot;\f1e7&quot;}.fa-twitch:before{content:&quot;\f1e8&quot;}.fa-yelp:before{content:&quot;\f1e9&quot;}.fa-newspaper-o:before{content:&quot;\f1ea&quot;}.fa-wifi:before{content:&quot;\f1eb&quot;}.fa-calculator:before{content:&quot;\f1ec&quot;}.fa-paypal:before{content:&quot;\f1ed&quot;}.fa-google-wallet:before{content:&quot;\f1ee&quot;}.fa-cc-visa:before{content:&quot;\f1f0&quot;}.fa-cc-mastercard:before{content:&quot;\f1f1&quot;}.fa-cc-discover:before{content:&quot;\f1f2&quot;}.fa-cc-amex:before{content:&quot;\f1f3&quot;}.fa-cc-paypal:before{content:&quot;\f1f4&quot;}.fa-cc-stripe:before{content:&quot;\f1f5&quot;}.fa-bell-slash:before{content:&quot;\f1f6&quot;}.fa-bell-slash-o:before{content:&quot;\f1f7&quot;}.fa-trash:before{content:&quot;\f1f8&quot;}.fa-copyright:before{content:&quot;\f1f9&quot;}.fa-at:before{content:&quot;\f1fa&quot;}.fa-eyedropper:before{content:&quot;\f1fb&quot;}.fa-paint-brush:before{content:&quot;\f1fc&quot;}.fa-birthday-cake:before{content:&quot;\f1fd&quot;}.fa-area-chart:before{content:&quot;\f1fe&quot;}.fa-pie-chart:before{content:&quot;\f200&quot;}.fa-line-chart:before{content:&quot;\f201&quot;}.fa-lastfm:before{content:&quot;\f202&quot;}.fa-lastfm-square:before{content:&quot;\f203&quot;}.fa-toggle-off:before{content:&quot;\f204&quot;}.fa-toggle-on:before{content:&quot;\f205&quot;}.fa-bicycle:before{content:&quot;\f206&quot;}.fa-bus:before{content:&quot;\f207&quot;}.fa-ioxhost:before{content:&quot;\f208&quot;}.fa-angellist:before{content:&quot;\f209&quot;}.fa-cc:before{content:&quot;\f20a&quot;}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:&quot;\f20b&quot;}.fa-meanpath:before{content:&quot;\f20c&quot;}.fa-buysellads:before{content:&quot;\f20d&quot;}.fa-connectdevelop:before{content:&quot;\f20e&quot;}.fa-dashcube:before{content:&quot;\f210&quot;}.fa-forumbee:before{content:&quot;\f211&quot;}.fa-leanpub:before{content:&quot;\f212&quot;}.fa-sellsy:before{content:&quot;\f213&quot;}.fa-shirtsinbulk:before{content:&quot;\f214&quot;}.fa-simplybuilt:before{content:&quot;\f215&quot;}.fa-skyatlas:before{content:&quot;\f216&quot;}.fa-cart-plus:before{content:&quot;\f217&quot;}.fa-cart-arrow-down:before{content:&quot;\f218&quot;}.fa-diamond:before{content:&quot;\f219&quot;}.fa-ship:before{content:&quot;\f21a&quot;}.fa-user-secret:before{content:&quot;\f21b&quot;}.fa-motorcycle:before{content:&quot;\f21c&quot;}.fa-street-view:before{content:&quot;\f21d&quot;}.fa-heartbeat:before{content:&quot;\f21e&quot;}.fa-venus:before{content:&quot;\f221&quot;}.fa-mars:before{content:&quot;\f222&quot;}.fa-mercury:before{content:&quot;\f223&quot;}.fa-intersex:before,.fa-transgender:before{content:&quot;\f224&quot;}.fa-transgender-alt:before{content:&quot;\f225&quot;}.fa-venus-double:before{content:&quot;\f226&quot;}.fa-mars-double:before{content:&quot;\f227&quot;}.fa-venus-mars:before{content:&quot;\f228&quot;}.fa-mars-stroke:before{content:&quot;\f229&quot;}.fa-mars-stroke-v:before{content:&quot;\f22a&quot;}.fa-mars-stroke-h:before{content:&quot;\f22b&quot;}.fa-neuter:before{content:&quot;\f22c&quot;}.fa-genderless:before{content:&quot;\f22d&quot;}.fa-facebook-official:before{content:&quot;\f230&quot;}.fa-pinterest-p:before{content:&quot;\f231&quot;}.fa-whatsapp:before{content:&quot;\f232&quot;}.fa-server:before{content:&quot;\f233&quot;}.fa-user-plus:before{content:&quot;\f234&quot;}.fa-user-times:before{content:&quot;\f235&quot;}.fa-hotel:before,.fa-bed:before{content:&quot;\f236&quot;}.fa-viacoin:before{content:&quot;\f237&quot;}.fa-train:before{content:&quot;\f238&quot;}.fa-subway:before{content:&quot;\f239&quot;}.fa-medium:before{content:&quot;\f23a&quot;}.fa-yc:before,.fa-y-combinator:before{content:&quot;\f23b&quot;}.fa-optin-monster:before{content:&quot;\f23c&quot;}.fa-opencart:before{content:&quot;\f23d&quot;}.fa-expeditedssl:before{content:&quot;\f23e&quot;}.fa-battery-4:before,.fa-battery-full:before{content:&quot;\f240&quot;}.fa-battery-3:before,.fa-battery-three-quarters:before{content:&quot;\f241&quot;}.fa-battery-2:before,.fa-battery-half:before{content:&quot;\f242&quot;}.fa-battery-1:before,.fa-battery-quarter:before{content:&quot;\f243&quot;}.fa-battery-0:before,.fa-battery-empty:before{content:&quot;\f244&quot;}.fa-mouse-pointer:before{content:&quot;\f245&quot;}.fa-i-cursor:before{content:&quot;\f246&quot;}.fa-object-group:before{content:&quot;\f247&quot;}.fa-object-ungroup:before{content:&quot;\f248&quot;}.fa-sticky-note:before{content:&quot;\f249&quot;}.fa-sticky-note-o:before{content:&quot;\f24a&quot;}.fa-cc-jcb:before{content:&quot;\f24b&quot;}.fa-cc-diners-club:before{content:&quot;\f24c&quot;}.fa-clone:before{content:&quot;\f24d&quot;}.fa-balance-scale:before{content:&quot;\f24e&quot;}.fa-hourglass-o:before{content:&quot;\f250&quot;}.fa-hourglass-1:before,.fa-hourglass-start:before{content:&quot;\f251&quot;}.fa-hourglass-2:before,.fa-hourglass-half:before{content:&quot;\f252&quot;}.fa-hourglass-3:before,.fa-hourglass-end:before{content:&quot;\f253&quot;}.fa-hourglass:before{content:&quot;\f254&quot;}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:&quot;\f255&quot;}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:&quot;\f256&quot;}.fa-hand-scissors-o:before{content:&quot;\f257&quot;}.fa-hand-lizard-o:before{content:&quot;\f258&quot;}.fa-hand-spock-o:before{content:&quot;\f259&quot;}.fa-hand-pointer-o:before{content:&quot;\f25a&quot;}.fa-hand-peace-o:before{content:&quot;\f25b&quot;}.fa-trademark:before{content:&quot;\f25c&quot;}.fa-registered:before{content:&quot;\f25d&quot;}.fa-creative-commons:before{content:&quot;\f25e&quot;}.fa-gg:before{content:&quot;\f260&quot;}.fa-gg-circle:before{content:&quot;\f261&quot;}.fa-tripadvisor:before{content:&quot;\f262&quot;}.fa-odnoklassniki:before{content:&quot;\f263&quot;}.fa-odnoklassniki-square:before{content:&quot;\f264&quot;}.fa-get-pocket:before{content:&quot;\f265&quot;}.fa-wikipedia-w:before{content:&quot;\f266&quot;}.fa-safari:before{content:&quot;\f267&quot;}.fa-chrome:before{content:&quot;\f268&quot;}.fa-firefox:before{content:&quot;\f269&quot;}.fa-opera:before{content:&quot;\f26a&quot;}.fa-internet-explorer:before{content:&quot;\f26b&quot;}.fa-tv:before,.fa-television:before{content:&quot;\f26c&quot;}.fa-contao:before{content:&quot;\f26d&quot;}.fa-500px:before{content:&quot;\f26e&quot;}.fa-amazon:before{content:&quot;\f270&quot;}.fa-calendar-plus-o:before{content:&quot;\f271&quot;}.fa-calendar-minus-o:before{content:&quot;\f272&quot;}.fa-calendar-times-o:before{content:&quot;\f273&quot;}.fa-calendar-check-o:before{content:&quot;\f274&quot;}.fa-industry:before{content:&quot;\f275&quot;}.fa-map-pin:before{content:&quot;\f276&quot;}.fa-map-signs:before{content:&quot;\f277&quot;}.fa-map-o:before{content:&quot;\f278&quot;}.fa-map:before{content:&quot;\f279&quot;}.fa-commenting:before{content:&quot;\f27a&quot;}.fa-commenting-o:before{content:&quot;\f27b&quot;}.fa-houzz:before{content:&quot;\f27c&quot;}.fa-vimeo:before{content:&quot;\f27d&quot;}.fa-black-tie:before{content:&quot;\f27e&quot;}.fa-fonticons:before{content:&quot;\f280&quot;}.fa-reddit-alien:before{content:&quot;\f281&quot;}.fa-edge:before{content:&quot;\f282&quot;}.fa-credit-card-alt:before{content:&quot;\f283&quot;}.fa-codiepie:before{content:&quot;\f284&quot;}.fa-modx:before{content:&quot;\f285&quot;}.fa-fort-awesome:before{content:&quot;\f286&quot;}.fa-usb:before{content:&quot;\f287&quot;}.fa-product-hunt:before{content:&quot;\f288&quot;}.fa-mixcloud:before{content:&quot;\f289&quot;}.fa-scribd:before{content:&quot;\f28a&quot;}.fa-pause-circle:before{content:&quot;\f28b&quot;}.fa-pause-circle-o:before{content:&quot;\f28c&quot;}.fa-stop-circle:before{content:&quot;\f28d&quot;}.fa-stop-circle-o:before{content:&quot;\f28e&quot;}.fa-shopping-bag:before{content:&quot;\f290&quot;}.fa-shopping-basket:before{content:&quot;\f291&quot;}.fa-hashtag:before{content:&quot;\f292&quot;}.fa-bluetooth:before{content:&quot;\f293&quot;}.fa-bluetooth-b:before{content:&quot;\f294&quot;}.fa-percent:before{content:&quot;\f295&quot;}.fa-gitlab:before{content:&quot;\f296&quot;}.fa-wpbeginner:before{content:&quot;\f297&quot;}.fa-wpforms:before{content:&quot;\f298&quot;}.fa-envira:before{content:&quot;\f299&quot;}.fa-universal-access:before{content:&quot;\f29a&quot;}.fa-wheelchair-alt:before{content:&quot;\f29b&quot;}.fa-question-circle-o:before{content:&quot;\f29c&quot;}.fa-blind:before{content:&quot;\f29d&quot;}.fa-audio-description:before{content:&quot;\f29e&quot;}.fa-volume-control-phone:before{content:&quot;\f2a0&quot;}.fa-braille:before{content:&quot;\f2a1&quot;}.fa-assistive-listening-systems:before{content:&quot;\f2a2&quot;}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:&quot;\f2a3&quot;}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:&quot;\f2a4&quot;}.fa-glide:before{content:&quot;\f2a5&quot;}.fa-glide-g:before{content:&quot;\f2a6&quot;}.fa-signing:before,.fa-sign-language:before{content:&quot;\f2a7&quot;}.fa-low-vision:before{content:&quot;\f2a8&quot;}.fa-viadeo:before{content:&quot;\f2a9&quot;}.fa-viadeo-square:before{content:&quot;\f2aa&quot;}.fa-snapchat:before{content:&quot;\f2ab&quot;}.fa-snapchat-ghost:before{content:&quot;\f2ac&quot;}.fa-snapchat-square:before{content:&quot;\f2ad&quot;}.fa-pied-piper:before{content:&quot;\f2ae&quot;}.fa-first-order:before{content:&quot;\f2b0&quot;}.fa-yoast:before{content:&quot;\f2b1&quot;}.fa-themeisle:before{content:&quot;\f2b2&quot;}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:&quot;\f2b3&quot;}.fa-fa:before,.fa-font-awesome:before{content:&quot;\f2b4&quot;}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}

=====================================================
== File: src/homepage/_site/assets/css/main.css
=====================================================
@import url(font-awesome.min.css);
@import &quot;https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400&quot;;
@import url('https://fonts.googleapis.com/css?family=Poppins');

/*
	Stellar by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/

/* Reset */

	html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
		margin: 0;
		padding: 0;
		border: 0;
		font-size: 12pt;
		font-family: &quot;Poppins&quot;, Helvetica, sans-serif;
		vertical-align: baseline;
	}

	article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
		display: block;
	}

	body {
		line-height: 1;
	}

	ol, ul {
		list-style: none;
	}

	blockquote, q {
		quotes: none;
	}

	blockquote:before, blockquote:after, q:before, q:after {
		content: '';
		content: none;
	}

	table {
		border-collapse: collapse;
		border-spacing: 0;
	}

	body {
		-webkit-text-size-adjust: none;
	}

=====================================================
== File: src/homepage/_site/assets/css/lity.min.css
=====================================================
/*! Lity - v2.2.2 - 2016-12-14
* http://sorgalla.com/lity/
* Copyright (c) 2015-2016 Jan Sorgalla; Licensed MIT */.lity{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;white-space:nowrap;background:#0b0b0b;background:rgba(0,0,0,0.9);outline:none !important;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity.lity-opened{opacity:1}.lity.lity-closed{opacity:0}.lity *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lity-wrap{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;text-align:center;outline:none !important}.lity-wrap:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-0.25em}.lity-loader{z-index:9991;color:#fff;position:absolute;top:50%;margin-top:-0.8em;width:100%;text-align:center;font-size:14px;font-family:Arial,Helvetica,sans-serif;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity-loading .lity-loader{opacity:1}.lity-container{z-index:9992;position:relative;text-align:left;vertical-align:middle;display:inline-block;white-space:normal;max-width:100%;max-height:100%;outline:none !important}.lity-content{z-index:9993;width:100%;-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1);-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;-o-transition:-o-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease, -webkit-transform .3s ease, -o-transform .3s ease}.lity-loading .lity-content,.lity-closed .lity-content{-webkit-transform:scale(.8);-ms-transform:scale(.8);-o-transform:scale(.8);transform:scale(.8)}.lity-content:after{content:'';position:absolute;left:0;top:0;bottom:0;display:block;right:0;width:auto;height:auto;z-index:-1;-webkit-box-shadow:0 0 8px rgba(0,0,0,0.6);box-shadow:0 0 8px rgba(0,0,0,0.6)}.lity-close{z-index:9994;width:35px;height:35px;position:fixed;right:0;top:0;-webkit-appearance:none;cursor:pointer;text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,0.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close::-moz-focus-inner{border:0;padding:0}.lity-close:hover,.lity-close:focus,.lity-close:active,.lity-close:visited{text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,0.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close:active{top:1px}.lity-image img{max-width:100%;display:block;line-height:0;border:0}.lity-iframe .lity-container,.lity-youtube .lity-container,.lity-vimeo .lity-container,.lity-facebookvideo .lity-container,.lity-googlemaps .lity-container{width:100%;max-width:964px}.lity-iframe-container{width:100%;height:0;padding-top:56.25%;overflow:auto;pointer-events:auto;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-overflow-scrolling:touch}.lity-iframe-container iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;-webkit-box-shadow:0 0 8px rgba(0,0,0,0.6);box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}.lity-hide{display:none}

=====================================================
== File: src/homepage/_site/assets/css/ie8.css
=====================================================
/*
	Stellar by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/

/* Type */

	body {
		color: #ffffff;
	}

/* Button */

	.button {
		position: relative;
		border: solid 1px !important;
	}

		.button.special {
			border: none !important;
		}

/* Icon */

	.icon.major {
		-ms-behavior: url(&quot;assets/js/ie/PIE.htc&quot;);
	}

		.icon.major:before {
			font-size: 4em;
			border: 0;
		}

/* Spotlight */

	.spotlight .image {
		position: relative;
		-ms-behavior: url(&quot;assets/js/ie/PIE.htc&quot;);
	}

		.spotlight .image img {
			position: relative;
			-ms-behavior: url(&quot;assets/js/ie/PIE.htc&quot;);
		}

/* Features */

	.features li {
		width: 29%;

=====================================================
== File: src/homepage/_site/assets/css/ie9.css
=====================================================
/*
	Stellar by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/

/* Spotlight */

	.spotlight:after {
		content: '';
		display: block;
		clear: both;
	}

	.spotlight .content {
		float: left;
		width: 60%;
	}

	.spotlight .image {
		float: left;
	}

/* Features */

	.features:after {
		content: '';
		display: block;
		clear: both;
	}

	.features li {
		float: left;
	}

/* Statistics */

	.statistics {
		display: inline-block;
	}

		.statistics:after {
			content: '';
			display: block;
			clear: both;
		}

		.statistics li {
			float: left;
			padding: 1.5em 2.5em;

=====================================================
== File: src/homepage/_site/assets/css/test.html
=====================================================
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; version=&quot;1.1&quot; id=&quot;Calque_1&quot; x=&quot;0px&quot; y=&quot;0px&quot; width=&quot;841.89px&quot; height=&quot;595.28px&quot; viewBox=&quot;0 0 841.89 595.28&quot; enable-background=&quot;new 0 0 841.89 595.28&quot; xml:space=&quot;preserve&quot;&gt;
&lt;circle fill=&quot;#FFFFFF&quot; cx=&quot;672.754&quot; cy=&quot;148.406&quot; r=&quot;66.5&quot;/&gt;
&lt;g&gt;
  &lt;path fill=&quot;#E64821&quot; d=&quot;M718.72,121.022c-3.564-2.383-7.259-4.322-11.117-5.314c-3.85-1.014-7.823-0.778-11.496,0.742l-0.691,0.288   l-0.342,0.154l-0.169,0.079l-0.087,0.04l-0.042,0.02l-0.022,0.01c0.022-0.015-0.064,0.039,0.048-0.031l-0.011,0.006   c-0.5,0.313-0.969,0.572-1.462,0.83c-0.978,0.509-1.981,0.965-3.021,1.341c-2.077,0.729-4.318,1.242-6.619,0.96   c-1.14-0.15-2.273-0.547-3.228-1.208c-0.954-0.659-1.714-1.552-2.235-2.532c-1.052-1.972-1.373-4.147-1.439-6.262   c0.386,2.077,0.973,4.162,2.13,5.836c0.581,0.827,1.298,1.534,2.146,1.999c0.842,0.471,1.794,0.699,2.763,0.743   c1.946,0.094,3.931-0.496,5.777-1.31c0.931-0.407,1.84-0.872,2.715-1.393c0.433-0.256,0.877-0.537,1.262-0.808l0.763-0.498   c0.242-0.141,0.476-0.302,0.729-0.428c1.985-1.068,4.221-1.805,6.523-1.96c2.296-0.168,4.614,0.158,6.75,0.882   c2.142,0.716,4.112,1.807,5.864,3.129C715.953,117.664,717.52,119.218,718.72,121.022z&quot;/&gt;
  &lt;g&gt;
    &lt;path fill=&quot;none&quot; d=&quot;M637.856,139.139c-0.337,0.258,9.157,11.617,23.405,22.405c4.192,3.205,8.29,5.973,11.994,8.286    c0.281-0.416,0.542-0.842,0.787-1.279c-3.608-2.39-7.623-5.184-11.763-8.348C648.18,149.535,638.222,138.782,637.856,139.139z&quot;/&gt;

      &lt;linearGradient id=&quot;SVGID_5_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;1192.2021&quot; y1=&quot;229.4492&quot; x2=&quot;1234.9417&quot; y2=&quot;229.4492&quot; gradientTransform=&quot;matrix(-0.1008 -0.9949 0.9949 -0.1008 547.1743 1381.7705)&quot;&gt;
      &lt;stop offset=&quot;0&quot; style=&quot;stop-color:#FCC30E&quot;/&gt;
      &lt;stop offset=&quot;0.4969&quot; style=&quot;stop-color:#E64821&quot;/&gt;
      &lt;stop offset=&quot;1&quot; style=&quot;stop-color:#E42328&quot;/&gt;
    &lt;/linearGradient&gt;
    &lt;path fill=&quot;url(#SVGID_5_)&quot; d=&quot;M659.708,160.542c-14.247-10.789-23.741-22.147-23.405-22.406    c0.366-0.357,10.323,10.396,24.424,21.064c4.14,3.164,8.154,5.958,11.763,8.348c0.048-0.086,0.104-0.168,0.152-0.256    c0.592-1.131,1.046-2.347,1.401-3.617c-2.531-5.059-8.833-12.067-16.158-18.494c-1.629-1.413-3.325-2.666-5.04-3.792    c-0.373,3.018-1.118,5.178-1.123,5.177c0,0-0.831-2.873-0.76-6.369c-1.156-0.697-2.313-1.347-3.463-1.94    c-0.011,3.443-1.033,6.021-1.038,6.022c0,0.007-2.07-3.492-2.291-7.581c-0.003-0.026-0.003-0.052-0.003-0.076    c-6.875-3.16-12.671-4.681-12.682-4.666c-0.062-0.155,0.428,14.595,11.28,25.836c0.366-0.022,0.735-0.04,1.114-0.039    c3.946,0.008,7.317,1.426,7.323,1.425c0-0.003-2.075,1.235-5.106,1.653c1.103,0.882,2.235,1.681,3.39,2.406    c2.854-1.034,5.221-1.376,5.221-1.376c0-0.005-1.248,1.226-3.314,2.506c7.54,4.161,14.378,6.28,18.711,6.479    c0.586-0.64,1.121-1.313,1.599-2.021C667.998,166.515,663.901,163.747,659.708,160.542z&quot;/&gt;
    &lt;path fill=&quot;#E42328&quot; d=&quot;M710.524,120.843c-2.746,0.231-5.496,0.723-8.203,1.497c-5.401,1.538-10.711,4.256-15.061,8.381    c-2.191,2.033-4.073,4.437-5.644,7.024c-1.523,2.615-2.755,5.412-3.551,8.303c-0.82,2.884-1.311,5.83-1.479,8.755    c-0.05,0.721-0.077,1.467-0.096,2.221l-0.017,1.005l-0.024,0.862c-0.029,1.145-0.127,2.268-0.303,3.355    c-0.138,0.833-0.329,1.64-0.552,2.429c-0.354,1.27-0.809,2.486-1.4,3.618c-0.048,0.087-0.105,0.169-0.152,0.255    c-0.245,0.438-0.506,0.864-0.787,1.279c-0.479,0.708-1.013,1.381-1.6,2.021c-0.423,0.461-0.865,0.91-1.347,1.333    c-3.241,2.849-7.697,4.804-12.477,6.061c-4.796,1.275-9.926,1.944-15.132,2.303c-5.218,0.352-10.52,0.408-15.913,0.276    c5.027,2.018,10.327,3.3,15.735,4.109c5.415,0.774,10.986,1.024,16.65,0.312c2.825-0.373,5.682-0.975,8.496-1.973    c2.801-1.005,5.597-2.373,8.113-4.309c2.525-1.907,4.765-4.373,6.386-7.192c0.82-1.403,1.494-2.88,2.035-4.386    c0.519-1.511,0.908-3.049,1.171-4.583c0.269-1.535,0.419-3.065,0.479-4.578c0.019-0.379,0.017-0.755,0.021-1.132l0.002-0.989    c0.005-0.574,0.018-1.158,0.049-1.764c0.129-2.384,0.416-4.727,0.939-6.99c1.039-4.525,3.008-8.727,5.973-12.363    c2.961-3.634,6.877-6.692,11.314-9.149c4.449-2.453,9.354-4.38,14.567-5.816C716.026,120.628,713.268,120.607,710.524,120.843z&quot;/&gt;
  &lt;/g&gt;
&lt;/g&gt;
&lt;/svg&gt;

=====================================================
== File: src/homepage/_site/assets/css/lightbox.css
=====================================================
/* Preload images */
body:after {
  content: url(../images/close.png) url(../images/loading.gif) url(../images/prev.png) url(../images/next.png);
  display: none;
}

body.lb-disable-scrolling {
  overflow: hidden;
}

.lightboxOverlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
  background-color: black;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
  opacity: 0.8;
  display: none;
}

.lightbox {
  position: absolute;
  left: 0;
  width: 100%;
  z-index: 10000;
  text-align: center;
  line-height: 0;
  font-weight: normal;
}

.lightbox .lb-image {
  display: block;
  height: auto;
  max-width: inherit;
  border-radius: 3px;
}

.lightbox a img {
  border: none;
}

.lb-outerContainer {
  position: relative;
  background-color: white;
  *zoom: 1;
  width: 250px;
  height: 250px;
  margin: 0 auto;
  border-radius: 4px;

=====================================================
== File: src/homepage/_site/assets/minima-social-icons.svg
=====================================================
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;

&lt;symbol id=&quot;dribbble&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M8 16c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm6.747-6.905c-.234-.074-2.115-.635-4.257-.292.894 2.456 1.258 4.456 1.328 4.872 1.533-1.037 2.624-2.68 2.93-4.58zM10.67 14.3c-.102-.6-.5-2.688-1.46-5.18l-.044.014C5.312 10.477 3.93 13.15 3.806 13.4c1.158.905 2.614 1.444 4.194 1.444.947 0 1.85-.194 2.67-.543zm-7.747-1.72c.155-.266 2.03-3.37 5.555-4.51.09-.03.18-.056.27-.08-.173-.39-.36-.778-.555-1.16-3.413 1.02-6.723.977-7.023.97l-.003.208c0 1.755.665 3.358 1.756 4.57zM1.31 6.61c.307.005 3.122.017 6.318-.832-1.132-2.012-2.353-3.705-2.533-3.952-1.912.902-3.34 2.664-3.784 4.785zM6.4 1.368c.188.253 1.43 1.943 2.548 4 2.43-.91 3.46-2.293 3.582-2.468C11.323 1.827 9.736 1.176 8 1.176c-.55 0-1.087.066-1.6.19zm6.89 2.322c-.145.194-1.29 1.662-3.816 2.694.16.325.31.656.453.99.05.117.1.235.147.352 2.274-.286 4.533.172 4.758.22-.015-1.613-.59-3.094-1.543-4.257z&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;facebook&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M15.117 0H.883C.395 0 0 .395 0 .883v14.234c0 .488.395.883.883.883h7.663V9.804H6.46V7.39h2.086V5.607c0-2.066 1.262-3.19 3.106-3.19.883 0 1.642.064 1.863.094v2.16h-1.28c-1 0-1.195.48-1.195 1.18v1.54h2.39l-.31 2.42h-2.08V16h4.077c.488 0 .883-.395.883-.883V.883C16 .395 15.605 0 15.117 0&quot; fill-rule=&quot;nonzero&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;flickr&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M0 8c0 2.05 1.662 3.71 3.71 3.71 2.05 0 3.713-1.66 3.713-3.71S5.76 4.29 3.71 4.29C1.663 4.29 0 5.95 0 8zm8.577 0c0 2.05 1.662 3.71 3.712 3.71C14.33 11.71 16 10.05 16 8s-1.662-3.71-3.71-3.71c-2.05 0-3.713 1.66-3.713 3.71z&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;github&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M8 0C3.58 0 0 3.582 0 8c0 3.535 2.292 6.533 5.47 7.59.4.075.547-.172.547-.385 0-.19-.007-.693-.01-1.36-2.226.483-2.695-1.073-2.695-1.073-.364-.924-.89-1.17-.89-1.17-.725-.496.056-.486.056-.486.803.056 1.225.824 1.225.824.714 1.223 1.873.87 2.33.665.072-.517.278-.87.507-1.07-1.777-.2-3.644-.888-3.644-3.953 0-.873.31-1.587.823-2.147-.09-.202-.36-1.015.07-2.117 0 0 .67-.215 2.2.82.64-.178 1.32-.266 2-.27.68.004 1.36.092 2 .27 1.52-1.035 2.19-.82 2.19-.82.43 1.102.16 1.915.08 2.117.51.56.82 1.274.82 2.147 0 3.073-1.87 3.75-3.65 3.947.28.24.54.73.54 1.48 0 1.07-.01 1.93-.01 2.19 0 .21.14.46.55.38C13.71 14.53 16 11.53 16 8c0-4.418-3.582-8-8-8&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;googleplus&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M5.09 7.273v1.745h2.89c-.116.75-.873 2.197-2.887 2.197-1.737 0-3.155-1.44-3.155-3.215S3.353 4.785 5.09 4.785c.99 0 1.652.422 2.03.786l1.382-1.33c-.887-.83-2.037-1.33-3.41-1.33C2.275 2.91 0 5.19 0 8s2.276 5.09 5.09 5.09c2.94 0 4.888-2.065 4.888-4.974 0-.334-.036-.59-.08-.843H5.09zm10.91 0h-1.455V5.818H13.09v1.455h-1.454v1.454h1.455v1.455h1.46V8.727H16&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;instagram&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M8 0C5.827 0 5.555.01 4.702.048 3.85.088 3.27.222 2.76.42c-.526.204-.973.478-1.417.923-.445.444-.72.89-.923 1.417-.198.51-.333 1.09-.372 1.942C.008 5.555 0 5.827 0 8s.01 2.445.048 3.298c.04.852.174 1.433.372 1.942.204.526.478.973.923 1.417.444.445.89.72 1.417.923.51.198 1.09.333 1.942.372.853.04 1.125.048 3.298.048s2.445-.01 3.298-.048c.852-.04 1.433-.174 1.942-.372.526-.204.973-.478 1.417-.923.445-.444.72-.89.923-1.417.198-.51.333-1.09.372-1.942.04-.853.048-1.125.048-3.298s-.01-2.445-.048-3.298c-.04-.852-.174-1.433-.372-1.942-.204-.526-.478-.973-.923-1.417-.444-.445-.89-.72-1.417-.923-.51-.198-1.09-.333-1.942-.372C10.445.008 10.173 0 8 0zm0 1.44c2.136 0 2.39.01 3.233.048.78.036 1.203.166 1.485.276.374.145.64.318.92.598.28.28.453.546.598.92.11.282.24.705.276 1.485.038.844.047 1.097.047 3.233s-.01 2.39-.05 3.233c-.04.78-.17 1.203-.28 1.485-.15.374-.32.64-.6.92-.28.28-.55.453-.92.598-.28.11-.71.24-1.49.276-.85.038-1.1.047-3.24.047s-2.39-.01-3.24-.05c-.78-.04-1.21-.17-1.49-.28-.38-.15-.64-.32-.92-.6-.28-.28-.46-.55-.6-.92-.11-.28-.24-.71-.28-1.49-.03-.84-.04-1.1-.04-3.23s.01-2.39.04-3.24c.04-.78.17-1.21.28-1.49.14-.38.32-.64.6-.92.28-.28.54-.46.92-.6.28-.11.7-.24 1.48-.28.85-.03 1.1-.04 3.24-.04zm0 2.452c-2.27 0-4.108 1.84-4.108 4.108 0 2.27 1.84 4.108 4.108 4.108 2.27 0 4.108-1.84 4.108-4.108 0-2.27-1.84-4.108-4.108-4.108zm0 6.775c-1.473 0-2.667-1.194-2.667-2.667 0-1.473 1.194-2.667 2.667-2.667 1.473 0 2.667 1.194 2.667 2.667 0 1.473-1.194 2.667-2.667 2.667zm5.23-6.937c0 .53-.43.96-.96.96s-.96-.43-.96-.96.43-.96.96-.96.96.43.96.96z&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;linkedin&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M13.632 13.635h-2.37V9.922c0-.886-.018-2.025-1.234-2.025-1.235 0-1.424.964-1.424 1.96v3.778h-2.37V6H8.51v1.04h.03c.318-.6 1.092-1.233 2.247-1.233 2.4 0 2.845 1.58 2.845 3.637v4.188zM3.558 4.955c-.762 0-1.376-.617-1.376-1.377 0-.758.614-1.375 1.376-1.375.76 0 1.376.617 1.376 1.375 0 .76-.617 1.377-1.376 1.377zm1.188 8.68H2.37V6h2.376v7.635zM14.816 0H1.18C.528 0 0 .516 0 1.153v13.694C0 15.484.528 16 1.18 16h13.635c.652 0 1.185-.516 1.185-1.153V1.153C16 .516 15.467 0 14.815 0z&quot; fill-rule=&quot;nonzero&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;pinterest&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M8 0C3.582 0 0 3.582 0 8c0 3.39 2.108 6.285 5.084 7.45-.07-.633-.133-1.604.028-2.295.146-.625.938-3.977.938-3.977s-.24-.48-.24-1.188c0-1.11.646-1.943 1.448-1.943.683 0 1.012.513 1.012 1.127 0 .687-.436 1.713-.662 2.664-.19.797.4 1.445 1.185 1.445 1.42 0 2.514-1.498 2.514-3.662 0-1.91-1.376-3.25-3.342-3.25-2.276 0-3.61 1.71-3.61 3.47 0 .69.263 1.43.593 1.83.066.08.075.15.057.23-.06.25-.196.8-.223.91-.035.15-.115.18-.268.11C3.516 10.46 2.89 9 2.89 7.82c0-2.52 1.834-4.84 5.287-4.84 2.774 0 4.932 1.98 4.932 4.62 0 2.76-1.74 4.98-4.16 4.98-.81 0-1.57-.42-1.84-.92l-.5 1.9c-.18.698-.67 1.57-1 2.1.75.23 1.54.357 2.37.357 4.41 0 8-3.58 8-8s-3.59-8-8-8z&quot; fill-rule=&quot;nonzero&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;rss&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M12.8 16C12.8 8.978 7.022 3.2 0 3.2V0c8.777 0 16 7.223 16 16h-3.2zM2.194 11.61c1.21 0 2.195.985 2.195 2.196 0 1.21-.99 2.194-2.2 2.194C.98 16 0 15.017 0 13.806c0-1.21.983-2.195 2.194-2.195zM10.606 16h-3.11c0-4.113-3.383-7.497-7.496-7.497v-3.11c5.818 0 10.606 4.79 10.606 10.607z&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;stackoverflow&quot; class=&quot;svg-icon&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M12.658 14.577v-4.27h1.423V16H1.23v-5.693h1.42v4.27h10.006zm-8.583-1.423h7.16V11.73h-7.16v1.424zm.173-3.235l6.987 1.46.3-1.38L4.55 8.54l-.302 1.38zm.906-3.37l6.47 3.02.602-1.3-6.47-3.02-.602 1.29zm1.81-3.19l5.478 4.57.906-1.08L7.87 2.28l-.9 1.078zM10.502 0L9.338.863l4.27 5.735 1.164-.862L10.5 0z&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;twitter&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M16 3.038c-.59.26-1.22.437-1.885.517.677-.407 1.198-1.05 1.443-1.816-.634.37-1.337.64-2.085.79-.598-.64-1.45-1.04-2.396-1.04-1.812 0-3.282 1.47-3.282 3.28 0 .26.03.51.085.75-2.728-.13-5.147-1.44-6.766-3.42C.83 2.58.67 3.14.67 3.75c0 1.14.58 2.143 1.46 2.732-.538-.017-1.045-.165-1.487-.41v.04c0 1.59 1.13 2.918 2.633 3.22-.276.074-.566.114-.865.114-.21 0-.41-.02-.61-.058.42 1.304 1.63 2.253 3.07 2.28-1.12.88-2.54 1.404-4.07 1.404-.26 0-.52-.015-.78-.045 1.46.93 3.18 1.474 5.04 1.474 6.04 0 9.34-5 9.34-9.33 0-.14 0-.28-.01-.42.64-.46 1.2-1.04 1.64-1.7z&quot; fill-rule=&quot;nonzero&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;youtube&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;&lt;path d=&quot;M0 7.345c0-1.294.16-2.59.16-2.59s.156-1.1.636-1.587c.608-.637 1.408-.617 1.764-.684C3.84 2.36 8 2.324 8 2.324s3.362.004 5.6.166c.314.038.996.04 1.604.678.48.486.636 1.588.636 1.588S16 6.05 16 7.346v1.258c0 1.296-.16 2.59-.16 2.59s-.156 1.102-.636 1.588c-.608.638-1.29.64-1.604.678-2.238.162-5.6.166-5.6.166s-4.16-.037-5.44-.16c-.356-.067-1.156-.047-1.764-.684-.48-.487-.636-1.587-.636-1.587S0 9.9 0 8.605v-1.26zm6.348 2.73V5.58l4.323 2.255-4.32 2.24z&quot;/&gt;&lt;/symbol&gt;

&lt;symbol id=&quot;mastodon&quot; fill-rule=&quot;evenodd&quot; clip-rule=&quot;evenodd&quot; stroke-linejoin=&quot;round&quot; stroke-miterlimit=&quot;1.414&quot;&gt;
  &lt;path transform=&quot;scale(0.07)&quot; d=&quot;M211.80734 139.0875c-3.18125 16.36625-28.4925 34.2775-57.5625 37.74875-15.15875 1.80875-30.08375 3.47125-45.99875 2.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125 0 2.53375.15625 4.94625.46875 7.2025 3.38375 25.68625 25.47 27.225 46.39125 27.9425 21.11625.7225 39.91875-5.20625 39.91875-5.20625l.8675 19.09s-14.77 7.93125-41.08125 9.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234 213.82 1.40609 165.31125.20859 116.09125c-.365-14.61375-.14-28.39375-.14-39.91875 0-50.33 32.97625-65.0825 32.97625-65.0825C49.67234 3.45375 78.20359.2425 107.86484 0h.72875c29.66125.2425 58.21125 3.45375 74.8375 11.09 0 0 32.975 14.7525 32.975 65.0825 0 0 .41375 37.13375-4.59875 62.915&quot;/&gt;
  &lt;path transform=&quot;scale(0.07)&quot; fill=&quot;#FFF&quot; d=&quot;M177.50984 80.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025 0-17.4175 7.5075-17.4175 22.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375 0-15.74 6.32875-15.74 18.7975v59.15H38.90484V80.077c0-12.455 3.17125-22.3525 9.54125-29.675 6.56875-7.3225 15.17125-11.07625 25.85-11.07625 12.355 0 21.71125 4.74875 27.8975 14.2475l6.01375 10.08125 6.015-10.08125c6.185-9.49875 15.54125-14.2475 27.8975-14.2475 10.6775 0 19.28 3.75375 25.85 11.07625 6.36875 7.3225 9.54 17.22 9.54 29.675&quot;/&gt;
&lt;/symbol&gt;


&lt;/svg&gt;

=====================================================
== File: src/homepage/_site/assets/fonts/fontawesome-webfont.svg
=====================================================
&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
&lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.1//EN&quot; &quot;http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&quot; &gt;
&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
&lt;metadata&gt;&lt;/metadata&gt;
&lt;defs&gt;
&lt;font id=&quot;fontawesomeregular&quot; horiz-adv-x=&quot;1536&quot; &gt;
&lt;font-face units-per-em=&quot;1792&quot; ascent=&quot;1536&quot; descent=&quot;-256&quot; /&gt;
&lt;missing-glyph horiz-adv-x=&quot;448&quot; /&gt;
&lt;glyph unicode=&quot; &quot;  horiz-adv-x=&quot;448&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x09;&quot; horiz-adv-x=&quot;448&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xa0;&quot; horiz-adv-x=&quot;448&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xa8;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xa9;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xae;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xb4;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xc6;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xd8;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2000;&quot; horiz-adv-x=&quot;768&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2001;&quot; horiz-adv-x=&quot;1537&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2002;&quot; horiz-adv-x=&quot;768&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2003;&quot; horiz-adv-x=&quot;1537&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2004;&quot; horiz-adv-x=&quot;512&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2005;&quot; horiz-adv-x=&quot;384&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2006;&quot; horiz-adv-x=&quot;256&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2007;&quot; horiz-adv-x=&quot;256&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2008;&quot; horiz-adv-x=&quot;192&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2009;&quot; horiz-adv-x=&quot;307&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x200a;&quot; horiz-adv-x=&quot;85&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x202f;&quot; horiz-adv-x=&quot;307&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x205f;&quot; horiz-adv-x=&quot;384&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2122;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x221e;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x2260;&quot; horiz-adv-x=&quot;1792&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#x25fc;&quot; horiz-adv-x=&quot;500&quot; d=&quot;M0 0z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf000;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf001;&quot; d=&quot;M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf002;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf003;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf004;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf005;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf006;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf007;&quot; horiz-adv-x=&quot;1408&quot; d=&quot;M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf008;&quot; horiz-adv-x=&quot;1920&quot; d=&quot;M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf009;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf00a;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf00b;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf00c;&quot; horiz-adv-x=&quot;1792&quot; d=&quot;M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf00d;&quot; horiz-adv-x=&quot;1408&quot; d=&quot;M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf00e;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z&quot; /&gt;
&lt;glyph unicode=&quot;&amp;#xf010;&quot; horiz-adv-x=&quot;1664&quot; d=&quot;M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z &quot; /&gt;

=====================================================
== File: src/homepage/_site/assets/js/main.js
=====================================================
/*
	Stellar by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/

(function($) {

	skel.breakpoints({
		xlarge: '(max-width: 1680px)',
		large: '(max-width: 1280px)',
		medium: '(max-width: 980px)',
		small: '(max-width: 736px)',
		xsmall: '(max-width: 480px)',
		xxsmall: '(max-width: 360px)'
	});

	$(function() {

		var	$window = $(window),
			$body = $('body'),
			$main = $('#main');

		// Disable animations/transitions until the page has loaded.
			$body.addClass('is-loading');

			$window.on('load', function() {
				window.setTimeout(function() {
					$body.removeClass('is-loading');
				}, 100);
			});

		// Fix: Placeholder polyfill.
			$('form').placeholder();

		// Prioritize &quot;important&quot; elements on medium.
			skel.on('+medium -medium', function() {
				$.prioritize(
					'.important\\28 medium\\29',
					skel.breakpoint('medium').active
				);
			});

		// Nav.
			var $nav = $('#nav');

			if ($nav.length &gt; 0) {

				// Shrink effect.
					$main

=====================================================
== File: src/homepage/_site/assets/js/github-fetch.js
=====================================================
let repositoryInfo = {};
let allContributors = [];
const repositoryUrl = &quot;https://api.github.com/repos/apache/james-project&quot;;

function getAllCollaborators(callback) {
  if (allContributors.length &gt; 0) {
    callback(allContributors);
  } else {
    $.get(repositoryInfo.contributors_url, function(contributors) {
      allContributors = contributors;
      callback(contributors);
    });
  }
}

function getListContributorDom(contributors) {
  let list = &quot;&quot;;
  contributors.sort(function(a, b){
    if(a.login.toLowerCase() &lt; b.login.toLowerCase()) return -1;
    if(a.login.toLowerCase() &gt; b.login.toLowerCase()) return 1;
    return 0;
  });
  for (contributor of contributors) {
    list += `&lt;li class=&quot;contributor-card&quot;&gt;&lt;a href=&quot;` + contributor.html_url + `&quot; alt=&quot;` + contributor.login + ` github account&quot;&gt;&lt;span class=&quot;image contributor-avatar&quot;&gt;&lt;img src=&quot;` + contributor.avatar_url + `&quot;&gt;&lt;/span&gt;&lt;span class=&quot;icon fa-github&quot;&gt;&lt;/span&gt;` + contributor.login + `&lt;/a&gt;&lt;/li&gt;`;
  }
  return list;
}

function getTotalCommit(callback) {
  $.get(&quot;https://api.github.com/repos/apache/james-project/stats/commit_activity&quot;, function(data) {
    let total = 0;
    for(week of data) {
      total += week.total;
    }
    callback(total);
  });
}

$(document).ready(function () {
  $.get(repositoryUrl, function(repository) {
    repositoryInfo = repository;
    getAllCollaborators(function(collabs) {
      $('#contributor-num').append(collabs.length);
      let contributors = getListContributorDom(collabs);
      $('#contributor-list').append(contributors);
    });
    getTotalCommit(function(commits) {
      $('#commit-num').append(commits);
    });
    $('#fork-num').append(repositoryInfo.forks_count);

=====================================================
== File: src/homepage/_site/assets/js/jquery.min.js
=====================================================
/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */
!function(a,b){&quot;object&quot;==typeof module&amp;&amp;&quot;object&quot;==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error(&quot;jQuery requires a window with a document&quot;);return b(a)}:b(a)}(&quot;undefined&quot;!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=&quot;1.11.3&quot;,m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:&quot;&quot;,length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0&gt;a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0&gt;a?b:0);return this.pushStack(c&gt;=0&amp;&amp;b&gt;c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for(&quot;boolean&quot;==typeof g&amp;&amp;(j=g,g=arguments[h]||{},h++),&quot;object&quot;==typeof g||m.isFunction(g)||(g={}),h===i&amp;&amp;(g=this,h--);i&gt;h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&amp;&amp;(j&amp;&amp;c&amp;&amp;(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&amp;&amp;m.isArray(a)?a:[]):f=a&amp;&amp;m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&amp;&amp;(g[d]=c));return g},m.extend({expando:&quot;jQuery&quot;+(l+Math.random()).replace(/\D/g,&quot;&quot;),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return&quot;function&quot;===m.type(a)},isArray:Array.isArray||function(a){return&quot;array&quot;===m.type(a)},isWindow:function(a){return null!=a&amp;&amp;a==a.window},isNumeric:function(a){return!m.isArray(a)&amp;&amp;a-parseFloat(a)+1&gt;=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||&quot;object&quot;!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&amp;&amp;!j.call(a,&quot;constructor&quot;)&amp;&amp;!j.call(a.constructor.prototype,&quot;isPrototypeOf&quot;))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+&quot;&quot;:&quot;object&quot;==typeof a||&quot;function&quot;==typeof a?h[i.call(a)]||&quot;object&quot;:typeof a},globalEval:function(b){b&amp;&amp;m.trim(b)&amp;&amp;(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,&quot;ms-&quot;).replace(p,q)},nodeName:function(a,b){return a.nodeName&amp;&amp;a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f&gt;e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f&gt;e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?&quot;&quot;:(a+&quot;&quot;).replace(n,&quot;&quot;)},makeArray:function(a,b){var c=b||[];return null!=a&amp;&amp;(r(Object(a))?m.merge(c,&quot;string&quot;==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0&gt;c?Math.max(0,d+c):c:0;d&gt;c;c++)if(c in b&amp;&amp;b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c&gt;d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g&gt;f;f++)d=!b(a[f],f),d!==h&amp;&amp;e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g&gt;f;f++)d=b(a[f],f,c),null!=d&amp;&amp;i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&amp;&amp;i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return&quot;string&quot;==typeof b&amp;&amp;(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each(&quot;Boolean Number String Function Array Date RegExp Object Error&quot;.split(&quot; &quot;),function(a,b){h[&quot;[object &quot;+b+&quot;]&quot;]=b.toLowerCase()});function r(a){var b=&quot;length&quot;in a&amp;&amp;a.length,c=m.type(a);return&quot;function&quot;===c||m.isWindow(a)?!1:1===a.nodeType&amp;&amp;b?!0:&quot;array&quot;===c||0===b||&quot;number&quot;==typeof b&amp;&amp;b&gt;0&amp;&amp;b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=&quot;sizzle&quot;+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&amp;&amp;(l=!0),0},C=1&lt;&lt;31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d&gt;c;c++)if(a[c]===b)return c;return-1},K=&quot;checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped&quot;,L=&quot;[\\x20\\t\\r\\n\\f]&quot;,M=&quot;(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+&quot;,N=M.replace(&quot;w&quot;,&quot;w#&quot;),O=&quot;\\[&quot;+L+&quot;*(&quot;+M+&quot;)(?:&quot;+L+&quot;*([*^$|!~]?=)&quot;+L+&quot;*(?:'((?:\\\\.|[^\\\\'])*)'|\&quot;((?:\\\\.|[^\\\\\&quot;])*)\&quot;|(&quot;+N+&quot;))|)&quot;+L+&quot;*\\]&quot;,P=&quot;:(&quot;+M+&quot;)(?:\\((('((?:\\\\.|[^\\\\'])*)'|\&quot;((?:\\\\.|[^\\\\\&quot;])*)\&quot;)|((?:\\\\.|[^\\\\()[\\]]|&quot;+O+&quot;)*)|.*)\\)|)&quot;,Q=new RegExp(L+&quot;+&quot;,&quot;g&quot;),R=new RegExp(&quot;^&quot;+L+&quot;+|((?:^|[^\\\\])(?:\\\\.)*)&quot;+L+&quot;+$&quot;,&quot;g&quot;),S=new RegExp(&quot;^&quot;+L+&quot;*,&quot;+L+&quot;*&quot;),T=new RegExp(&quot;^&quot;+L+&quot;*([&gt;+~]|&quot;+L+&quot;)&quot;+L+&quot;*&quot;),U=new RegExp(&quot;=&quot;+L+&quot;*([^\\]'\&quot;]*?)&quot;+L+&quot;*\\]&quot;,&quot;g&quot;),V=new RegExp(P),W=new RegExp(&quot;^&quot;+N+&quot;$&quot;),X={ID:new RegExp(&quot;^#(&quot;+M+&quot;)&quot;),CLASS:new RegExp(&quot;^\\.(&quot;+M+&quot;)&quot;),TAG:new RegExp(&quot;^(&quot;+M.replace(&quot;w&quot;,&quot;w*&quot;)+&quot;)&quot;),ATTR:new RegExp(&quot;^&quot;+O),PSEUDO:new RegExp(&quot;^&quot;+P),CHILD:new RegExp(&quot;^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(&quot;+L+&quot;*(even|odd|(([+-]|)(\\d*)n|)&quot;+L+&quot;*(?:([+-]|)&quot;+L+&quot;*(\\d+)|))&quot;+L+&quot;*\\)|)&quot;,&quot;i&quot;),bool:new RegExp(&quot;^(?:&quot;+K+&quot;)$&quot;,&quot;i&quot;),needsContext:new RegExp(&quot;^&quot;+L+&quot;*[&gt;+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(&quot;+L+&quot;*((?:-\\d)?\\d*)&quot;+L+&quot;*\\)|)(?=[^-]|$)&quot;,&quot;i&quot;)},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp(&quot;\\\\([\\da-f]{1,6}&quot;+L+&quot;?|(&quot;+L+&quot;)|.)&quot;,&quot;ig&quot;),da=function(a,b,c){var d=&quot;0x&quot;+b-65536;return d!==d||c?b:0&gt;d?String.fromCharCode(d+65536):String.fromCharCode(d&gt;&gt;10|55296,1023&amp;d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&amp;&amp;m(b),b=b||n,d=d||[],k=b.nodeType,&quot;string&quot;!=typeof a||!a||1!==k&amp;&amp;9!==k&amp;&amp;11!==k)return d;if(!e&amp;&amp;p){if(11!==k&amp;&amp;(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&amp;&amp;(h=b.ownerDocument.getElementById(j))&amp;&amp;t(b,h)&amp;&amp;h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&amp;&amp;c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&amp;&amp;(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&amp;&amp;a,1===k&amp;&amp;&quot;object&quot;!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute(&quot;id&quot;))?s=r.replace(ba,&quot;\\$&amp;&quot;):b.setAttribute(&quot;id&quot;,s),s=&quot;[id='&quot;+s+&quot;'] &quot;,l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&amp;&amp;pa(b.parentNode)||b,x=o.join(&quot;,&quot;)}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute(&quot;id&quot;)}}}return i(a.replace(R,&quot;$1&quot;),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+&quot; &quot;)&gt;d.cacheLength&amp;&amp;delete b[a.shift()],b[c+&quot; &quot;]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement(&quot;div&quot;);try{return!!a(b)}catch(c){return!1}finally{b.parentNode&amp;&amp;b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split(&quot;|&quot;),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&amp;&amp;a,d=c&amp;&amp;1===a.nodeType&amp;&amp;1===b.nodeType&amp;&amp;(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return&quot;input&quot;===c&amp;&amp;b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return(&quot;input&quot;===c||&quot;button&quot;===c)&amp;&amp;b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&amp;&amp;(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&amp;&amp;&quot;undefined&quot;!=typeof a.getElementsByTagName&amp;&amp;a}c=ga.support={},f=ga.isXML=function(a){var b=a&amp;&amp;(a.ownerDocument||a).documentElement;return b?&quot;HTML&quot;!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&amp;&amp;9===g.nodeType&amp;&amp;g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&amp;&amp;e!==e.top&amp;&amp;(e.addEventListener?e.addEventListener(&quot;unload&quot;,ea,!1):e.attachEvent&amp;&amp;e.attachEvent(&quot;onunload&quot;,ea)),p=!f(g),c.attributes=ja(function(a){return a.className=&quot;i&quot;,!a.getAttribute(&quot;className&quot;)}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment(&quot;&quot;)),!a.getElementsByTagName(&quot;*&quot;).length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(&quot;undefined&quot;!=typeof b.getElementById&amp;&amp;p){var c=b.getElementById(a);return c&amp;&amp;c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute(&quot;id&quot;)===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c=&quot;undefined&quot;!=typeof a.getAttributeNode&amp;&amp;a.getAttributeNode(&quot;id&quot;);return c&amp;&amp;c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return&quot;undefined&quot;!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if(&quot;*&quot;===a){while(c=f[e++])1===c.nodeType&amp;&amp;d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&amp;&amp;function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&amp;&amp;(ja(function(a){o.appendChild(a).innerHTML=&quot;&lt;a id='&quot;+u+&quot;'&gt;&lt;/a&gt;&lt;select id='&quot;+u+&quot;-\f]' msallowcapture=''&gt;&lt;option selected=''&gt;&lt;/option&gt;&lt;/select&gt;&quot;,a.querySelectorAll(&quot;[msallowcapture^='']&quot;).length&amp;&amp;q.push(&quot;[*^$]=&quot;+L+&quot;*(?:''|\&quot;\&quot;)&quot;),a.querySelectorAll(&quot;[selected]&quot;).length||q.push(&quot;\\[&quot;+L+&quot;*(?:value|&quot;+K+&quot;)&quot;),a.querySelectorAll(&quot;[id~=&quot;+u+&quot;-]&quot;).length||q.push(&quot;~=&quot;),a.querySelectorAll(&quot;:checked&quot;).length||q.push(&quot;:checked&quot;),a.querySelectorAll(&quot;a#&quot;+u+&quot;+*&quot;).length||q.push(&quot;.#.+[+~]&quot;)}),ja(function(a){var b=g.createElement(&quot;input&quot;);b.setAttribute(&quot;type&quot;,&quot;hidden&quot;),a.appendChild(b).setAttribute(&quot;name&quot;,&quot;D&quot;),a.querySelectorAll(&quot;[name=d]&quot;).length&amp;&amp;q.push(&quot;name&quot;+L+&quot;*[*^$|!~]?=&quot;),a.querySelectorAll(&quot;:enabled&quot;).length||q.push(&quot;:enabled&quot;,&quot;:disabled&quot;),a.querySelectorAll(&quot;*,:x&quot;),q.push(&quot;,.*:&quot;)})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&amp;&amp;ja(function(a){c.disconnectedMatch=s.call(a,&quot;div&quot;),s.call(a,&quot;[s!='']:x&quot;),r.push(&quot;!=&quot;,P)}),q=q.length&amp;&amp;new RegExp(q.join(&quot;|&quot;)),r=r.length&amp;&amp;new RegExp(r.join(&quot;|&quot;)),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&amp;&amp;b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&amp;&amp;16&amp;a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&amp;d||!c.sortDetached&amp;&amp;b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&amp;&amp;t(v,a)?-1:b===g||b.ownerDocument===v&amp;&amp;t(v,b)?1:k?J(k,a)-J(k,b):0:4&amp;d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&amp;&amp;m(a),b=b.replace(U,&quot;='$1']&quot;),!(!c.matchesSelector||!p||r&amp;&amp;r.test(b)||q&amp;&amp;q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&amp;&amp;11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length&gt;0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&amp;&amp;m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&amp;&amp;m(a);var e=d.attrHandle[b.toLowerCase()],f=e&amp;&amp;D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&amp;&amp;f.specified?f.value:null},ga.error=function(a){throw new Error(&quot;Syntax error, unrecognized expression: &quot;+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&amp;&amp;a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&amp;&amp;(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c=&quot;&quot;,d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if(&quot;string&quot;==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{&quot;&gt;&quot;:{dir:&quot;parentNode&quot;,first:!0},&quot; &quot;:{dir:&quot;parentNode&quot;},&quot;+&quot;:{dir:&quot;previousSibling&quot;,first:!0},&quot;~&quot;:{dir:&quot;previousSibling&quot;}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||&quot;&quot;).replace(ca,da),&quot;~=&quot;===a[2]&amp;&amp;(a[3]=&quot; &quot;+a[3]+&quot; &quot;),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),&quot;nth&quot;===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*(&quot;even&quot;===a[3]||&quot;odd&quot;===a[3])),a[5]=+(a[7]+a[8]||&quot;odd&quot;===a[3])):a[3]&amp;&amp;ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&amp;&amp;a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||&quot;&quot;:c&amp;&amp;V.test(c)&amp;&amp;(b=g(c,!0))&amp;&amp;(b=c.indexOf(&quot;)&quot;,c.length-b)-c.length)&amp;&amp;(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return&quot;*&quot;===a?function(){return!0}:function(a){return a.nodeName&amp;&amp;a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+&quot; &quot;];return b||(b=new RegExp(&quot;(^|&quot;+L+&quot;)&quot;+a+&quot;(&quot;+L+&quot;|$)&quot;))&amp;&amp;y(a,function(a){return b.test(&quot;string&quot;==typeof a.className&amp;&amp;a.className||&quot;undefined&quot;!=typeof a.getAttribute&amp;&amp;a.getAttribute(&quot;class&quot;)||&quot;&quot;)})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?&quot;!=&quot;===b:b?(e+=&quot;&quot;,&quot;=&quot;===b?e===c:&quot;!=&quot;===b?e!==c:&quot;^=&quot;===b?c&amp;&amp;0===e.indexOf(c):&quot;*=&quot;===b?c&amp;&amp;e.indexOf(c)&gt;-1:&quot;$=&quot;===b?c&amp;&amp;e.slice(-c.length)===c:&quot;~=&quot;===b?(&quot; &quot;+e.replace(Q,&quot; &quot;)+&quot; &quot;).indexOf(c)&gt;-1:&quot;|=&quot;===b?e===c||e.slice(0,c.length+1)===c+&quot;-&quot;:!1):!0}},CHILD:function(a,b,c,d,e){var f=&quot;nth&quot;!==a.slice(0,3),g=&quot;last&quot;!==a.slice(-4),h=&quot;of-type&quot;===b;return 1===d&amp;&amp;0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?&quot;nextSibling&quot;:&quot;previousSibling&quot;,q=b.parentNode,r=h&amp;&amp;b.nodeName.toLowerCase(),s=!i&amp;&amp;!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p=&quot;only&quot;===a&amp;&amp;!o&amp;&amp;&quot;nextSibling&quot;}return!0}if(o=[g?q.firstChild:q.lastChild],g&amp;&amp;s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&amp;&amp;j[1],m=j[0]===w&amp;&amp;j[2],l=n&amp;&amp;q.childNodes[n];while(l=++n&amp;&amp;l&amp;&amp;l[p]||(m=n=0)||o.pop())if(1===l.nodeType&amp;&amp;++m&amp;&amp;l===b){k[a]=[w,n,m];break}}else if(s&amp;&amp;(j=(b[u]||(b[u]={}))[a])&amp;&amp;j[0]===w)m=j[1];else while(l=++n&amp;&amp;l&amp;&amp;l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&amp;&amp;++m&amp;&amp;(s&amp;&amp;((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&amp;&amp;m/d&gt;=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error(&quot;unsupported pseudo: &quot;+a);return e[u]?e(b):e.length&gt;1?(c=[a,a,&quot;&quot;,b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,&quot;$1&quot;));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&amp;&amp;(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length&gt;0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)&gt;-1}}),lang:ia(function(a){return W.test(a||&quot;&quot;)||ga.error(&quot;unsupported lang: &quot;+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute(&quot;xml:lang&quot;)||b.getAttribute(&quot;lang&quot;))return c=c.toLowerCase(),c===a||0===c.indexOf(a+&quot;-&quot;);while((b=b.parentNode)&amp;&amp;1===b.nodeType);return!1}}),target:function(b){var c=a.location&amp;&amp;a.location.hash;return c&amp;&amp;c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&amp;&amp;(!n.hasFocus||n.hasFocus())&amp;&amp;!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return&quot;input&quot;===b&amp;&amp;!!a.checked||&quot;option&quot;===b&amp;&amp;!!a.selected},selected:function(a){return a.parentNode&amp;&amp;a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType&lt;6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return&quot;input&quot;===b&amp;&amp;&quot;button&quot;===a.type||&quot;button&quot;===b},text:function(a){var b;return&quot;input&quot;===a.nodeName.toLowerCase()&amp;&amp;&quot;text&quot;===a.type&amp;&amp;(null==(b=a.getAttribute(&quot;type&quot;))||&quot;text&quot;===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0&gt;c?c+b:c]}),even:oa(function(a,b){for(var c=0;b&gt;c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b&gt;c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0&gt;c?c+b:c;--d&gt;=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0&gt;c?c+b:c;++d&lt;b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+&quot; &quot;];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&amp;&amp;(e&amp;&amp;(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&amp;&amp;(c=e.shift(),f.push({value:c,type:e[0].replace(R,&quot; &quot;)}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&amp;&amp;!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d=&quot;&quot;;c&gt;b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&amp;&amp;&quot;parentNode&quot;===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&amp;&amp;a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&amp;&amp;h[0]===w&amp;&amp;h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length&gt;1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e&gt;d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i&gt;h;h++)(f=a[h])&amp;&amp;(!c||c(f,d,e))&amp;&amp;(g.push(f),j&amp;&amp;b.push(h));return g}function wa(a,b,c,d,e,f){return d&amp;&amp;!d[u]&amp;&amp;(d=wa(d)),e&amp;&amp;!e[u]&amp;&amp;(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||&quot;*&quot;,h.nodeType?[h]:h,[]),q=!a||!f&amp;&amp;b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&amp;&amp;c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&amp;&amp;(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&amp;&amp;j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&amp;&amp;(j=e?J(f,l):m[k])&gt;-1&amp;&amp;(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[&quot; &quot;],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)&gt;-1},h,!0),m=[function(a,c,d){var e=!g&amp;&amp;(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f&gt;i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f&gt;e;e++)if(d.relative[a[e].type])break;return wa(i&gt;1&amp;&amp;ta(m),i&gt;1&amp;&amp;ra(a.slice(0,i-1).concat({value:&quot; &quot;===a[i-2].type?&quot;*&quot;:&quot;&quot;})).replace(R,&quot;$1&quot;),c,e&gt;i&amp;&amp;xa(a.slice(i,e)),f&gt;e&amp;&amp;xa(a=a.slice(e)),f&gt;e&amp;&amp;ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length&gt;0,e=a.length&gt;0,f=function(f,g,h,i,k){var l,m,o,p=0,q=&quot;0&quot;,r=f&amp;&amp;[],s=[],t=j,u=f||e&amp;&amp;d.find.TAG(&quot;*&quot;,k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&amp;&amp;(j=g!==n&amp;&amp;g);q!==x&amp;&amp;null!=(l=u[q]);q++){if(e&amp;&amp;l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&amp;&amp;(w=v)}c&amp;&amp;((l=!o&amp;&amp;l)&amp;&amp;p--,f&amp;&amp;r.push(l))}if(p+=q,c&amp;&amp;q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p&gt;0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&amp;&amp;!f&amp;&amp;s.length&gt;0&amp;&amp;p+b.length&gt;1&amp;&amp;ga.uniqueSort(i)}return k&amp;&amp;(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+&quot; &quot;];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n=&quot;function&quot;==typeof a&amp;&amp;a,o=!f&amp;&amp;g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length&gt;2&amp;&amp;&quot;ID&quot;===(k=j[0]).type&amp;&amp;c.getById&amp;&amp;9===b.nodeType&amp;&amp;p&amp;&amp;d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&amp;&amp;(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&amp;&amp;(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&amp;&amp;pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&amp;&amp;ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&amp;&amp;pa(b.parentNode)||b),e},c.sortStable=u.split(&quot;&quot;).sort(B).join(&quot;&quot;)===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&amp;a.compareDocumentPosition(n.createElement(&quot;div&quot;))}),ja(function(a){return a.innerHTML=&quot;&lt;a href='#'&gt;&lt;/a&gt;&quot;,&quot;#&quot;===a.firstChild.getAttribute(&quot;href&quot;)})||ka(&quot;type|href|height|width&quot;,function(a,b,c){return c?void 0:a.getAttribute(b,&quot;type&quot;===b.toLowerCase()?1:2)}),c.attributes&amp;&amp;ja(function(a){return a.innerHTML=&quot;&lt;input/&gt;&quot;,a.firstChild.setAttribute(&quot;value&quot;,&quot;&quot;),&quot;&quot;===a.firstChild.getAttribute(&quot;value&quot;)})||ka(&quot;value&quot;,function(a,b,c){return c||&quot;input&quot;!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute(&quot;disabled&quot;)})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&amp;&amp;d.specified?d.value:null}),ga}(a);m.find=s,m.expr=s.selectors,m.expr[&quot;:&quot;]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^&lt;(\w+)\s*\/?&gt;(?:&lt;\/\1&gt;|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if(&quot;string&quot;==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)&gt;=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&amp;&amp;(a=&quot;:not(&quot;+a+&quot;)&quot;),1===b.length&amp;&amp;1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if(&quot;string&quot;!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e&gt;b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e&gt;b;b++)m.find(a,d[b],c);return c=this.pushStack(e&gt;1?m.unique(c):c),c.selector=this.selector?this.selector+&quot; &quot;+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,&quot;string&quot;==typeof a&amp;&amp;t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(&lt;[\w\W]+&gt;)[^&gt;]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if(&quot;string&quot;==typeof a){if(c=&quot;&lt;&quot;===a.charAt(0)&amp;&amp;&quot;&gt;&quot;===a.charAt(a.length-1)&amp;&amp;a.length&gt;=3?[null,a,null]:z.exec(a),!c||!c[1]&amp;&amp;b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&amp;&amp;b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&amp;&amp;m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&amp;&amp;d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?&quot;undefined&quot;!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&amp;&amp;(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&amp;&amp;9!==e.nodeType&amp;&amp;(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&amp;&amp;d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&amp;&amp;a!==b&amp;&amp;c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d&gt;b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||&quot;string&quot;!=typeof a?m(a,b||this.context):0;e&gt;d;d++)for(c=this[d];c&amp;&amp;c!==b;c=c.parentNode)if(c.nodeType&lt;11&amp;&amp;(g?g.index(c)&gt;-1:1===c.nodeType&amp;&amp;m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length&gt;1?m.unique(f):f)},index:function(a){return a?&quot;string&quot;==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&amp;&amp;this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&amp;&amp;1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&amp;&amp;11!==b.nodeType?b:null},parents:function(a){return m.dir(a,&quot;parentNode&quot;)},parentsUntil:function(a,b,c){return m.dir(a,&quot;parentNode&quot;,c)},next:function(a){return D(a,&quot;nextSibling&quot;)},prev:function(a){return D(a,&quot;previousSibling&quot;)},nextAll:function(a){return m.dir(a,&quot;nextSibling&quot;)},prevAll:function(a){return m.dir(a,&quot;previousSibling&quot;)},nextUntil:function(a,b,c){return m.dir(a,&quot;nextSibling&quot;,c)},prevUntil:function(a,b,c){return m.dir(a,&quot;previousSibling&quot;,c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,&quot;iframe&quot;)?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return&quot;Until&quot;!==a.slice(-5)&amp;&amp;(d=c),d&amp;&amp;&quot;string&quot;==typeof d&amp;&amp;(e=m.filter(d,e)),this.length&gt;1&amp;&amp;(C[a]||(e=m.unique(e)),B.test(a)&amp;&amp;(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a=&quot;string&quot;==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&amp;&amp;[],j=function(l){for(c=a.memory&amp;&amp;l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&amp;&amp;e&gt;f;f++)if(h[f].apply(l[0],l[1])===!1&amp;&amp;a.stopOnFalse){c=!1;break}b=!1,h&amp;&amp;(i?i.length&amp;&amp;j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);&quot;function&quot;===d?a.unique&amp;&amp;k.has(c)||h.push(c):c&amp;&amp;c.length&amp;&amp;&quot;string&quot;!==d&amp;&amp;f(c)})}(arguments),b?e=h.length:c&amp;&amp;(g=d,j(c))}return this},remove:function(){return h&amp;&amp;m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))&gt;-1)h.splice(d,1),b&amp;&amp;(e&gt;=d&amp;&amp;e--,f&gt;=d&amp;&amp;f--)}),this},has:function(a){return a?m.inArray(a,h)&gt;-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&amp;&amp;!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[[&quot;resolve&quot;,&quot;done&quot;,m.Callbacks(&quot;once memory&quot;),&quot;resolved&quot;],[&quot;reject&quot;,&quot;fail&quot;,m.Callbacks(&quot;once memory&quot;),&quot;rejected&quot;],[&quot;notify&quot;,&quot;progress&quot;,m.Callbacks(&quot;memory&quot;)]],c=&quot;pending&quot;,d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&amp;&amp;a[b];e[f[1]](function(){var a=g&amp;&amp;g.apply(this,arguments);a&amp;&amp;m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+&quot;With&quot;](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&amp;&amp;g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+&quot;With&quot;](this===e?d:this,arguments),this},e[f[0]+&quot;With&quot;]=g.fireWith}),d.promise(e),a&amp;&amp;a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&amp;&amp;m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length&gt;1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e&gt;1)for(i=new Array(e),j=new Array(e),k=new Array(e);e&gt;b;b++)c[b]&amp;&amp;m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&amp;&amp;--m.readyWait&gt;0||(H.resolveWith(y,[m]),m.fn.triggerHandler&amp;&amp;(m(y).triggerHandler(&quot;ready&quot;),m(y).off(&quot;ready&quot;)))}}});function I(){y.addEventListener?(y.removeEventListener(&quot;DOMContentLoaded&quot;,J,!1),a.removeEventListener(&quot;load&quot;,J,!1)):(y.detachEvent(&quot;onreadystatechange&quot;,J),a.detachEvent(&quot;onload&quot;,J))}function J(){(y.addEventListener||&quot;load&quot;===event.type||&quot;complete&quot;===y.readyState)&amp;&amp;(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),&quot;complete&quot;===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener(&quot;DOMContentLoaded&quot;,J,!1),a.addEventListener(&quot;load&quot;,J,!1);else{y.attachEvent(&quot;onreadystatechange&quot;,J),a.attachEvent(&quot;onload&quot;,J);var c=!1;try{c=null==a.frameElement&amp;&amp;y.documentElement}catch(d){}c&amp;&amp;c.doScroll&amp;&amp;!function e(){if(!m.isReady){try{c.doScroll(&quot;left&quot;)}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K=&quot;undefined&quot;,L;for(L in m(k))break;k.ownLast=&quot;0&quot;!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName(&quot;body&quot;)[0],c&amp;&amp;c.style&amp;&amp;(b=y.createElement(&quot;div&quot;),d=y.createElement(&quot;div&quot;),d.style.cssText=&quot;position:absolute;border:0;width:0;height:0;top:0;left:-9999px&quot;,c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&amp;&amp;(b.style.cssText=&quot;display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1&quot;,k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&amp;&amp;(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement(&quot;div&quot;);if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+&quot; &quot;).toLowerCase()],c=+a.nodeType||1;return 1!==c&amp;&amp;9!==c?!1:!b||b!==!0&amp;&amp;a.getAttribute(&quot;classid&quot;)===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&amp;&amp;1===a.nodeType){var d=&quot;data-&quot;+b.replace(N,&quot;-$1&quot;).toLowerCase();if(c=a.getAttribute(d),&quot;string&quot;==typeof c){try{c=&quot;true&quot;===c?!0:&quot;false&quot;===c?!1:&quot;null&quot;===c?null:+c+&quot;&quot;===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if((&quot;data&quot;!==b||!m.isEmptyObject(a[b]))&amp;&amp;&quot;toJSON&quot;!==b)return!1;

return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&amp;&amp;h;if(k&amp;&amp;j[k]&amp;&amp;(e||j[k].data)||void 0!==d||&quot;string&quot;!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),(&quot;object&quot;==typeof b||&quot;function&quot;==typeof b)&amp;&amp;(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&amp;&amp;(g[m.camelCase(b)]=d),&quot;string&quot;==typeof b?(f=g[b],null==f&amp;&amp;(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&amp;&amp;(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(&quot; &quot;)),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&amp;&amp;(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{&quot;applet &quot;:!0,&quot;embed &quot;:!0,&quot;object &quot;:&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot;},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&amp;&amp;!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&amp;&amp;f.attributes;if(void 0===a){if(this.length&amp;&amp;(e=m.data(f),1===f.nodeType&amp;&amp;!m._data(f,&quot;parsedAttrs&quot;))){c=g.length;while(c--)g[c]&amp;&amp;(d=g[c].name,0===d.indexOf(&quot;data-&quot;)&amp;&amp;(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,&quot;parsedAttrs&quot;,!0)}return e}return&quot;object&quot;==typeof a?this.each(function(){m.data(this,a)}):arguments.length&gt;1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||&quot;fx&quot;)+&quot;queue&quot;,d=m._data(a,b),c&amp;&amp;(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||&quot;fx&quot;;var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};&quot;inprogress&quot;===e&amp;&amp;(e=c.shift(),d--),e&amp;&amp;(&quot;fx&quot;===b&amp;&amp;c.unshift(&quot;inprogress&quot;),delete f.stop,e.call(a,g,f)),!d&amp;&amp;f&amp;&amp;f.empty.fire()},_queueHooks:function(a,b){var c=b+&quot;queueHooks&quot;;return m._data(a,c)||m._data(a,c,{empty:m.Callbacks(&quot;once memory&quot;).add(function(){m._removeData(a,b+&quot;queue&quot;),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return&quot;string&quot;!=typeof a&amp;&amp;(b=a,a=&quot;fx&quot;,c--),arguments.length&lt;c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),&quot;fx&quot;===a&amp;&amp;&quot;inprogress&quot;!==c[0]&amp;&amp;m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||&quot;fx&quot;,[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};&quot;string&quot;!=typeof a&amp;&amp;(b=a,a=void 0),a=a||&quot;fx&quot;;while(g--)c=m._data(f[g],a+&quot;queueHooks&quot;),c&amp;&amp;c.empty&amp;&amp;(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=[&quot;Top&quot;,&quot;Right&quot;,&quot;Bottom&quot;,&quot;Left&quot;],U=function(a,b){return a=b||a,&quot;none&quot;===m.css(a,&quot;display&quot;)||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if(&quot;object&quot;===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&amp;&amp;(e=!0,m.isFunction(d)||(g=!0),j&amp;&amp;(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i&gt;h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement(&quot;input&quot;),b=y.createElement(&quot;div&quot;),c=y.createDocumentFragment();if(b.innerHTML=&quot;  &lt;link/&gt;&lt;table&gt;&lt;/table&gt;&lt;a href='/a'&gt;a&lt;/a&gt;&lt;input type='checkbox'/&gt;&quot;,k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName(&quot;tbody&quot;).length,k.htmlSerialize=!!b.getElementsByTagName(&quot;link&quot;).length,k.html5Clone=&quot;&lt;:nav&gt;&lt;/:nav&gt;&quot;!==y.createElement(&quot;nav&quot;).cloneNode(!0).outerHTML,a.type=&quot;checkbox&quot;,a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML=&quot;&lt;textarea&gt;x&lt;/textarea&gt;&quot;,k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML=&quot;&lt;input type='radio' checked='checked' name='t'/&gt;&quot;,k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&amp;&amp;(b.attachEvent(&quot;onclick&quot;,function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement(&quot;div&quot;);for(b in{submit:!0,change:!0,focusin:!0})c=&quot;on&quot;+b,(k[b+&quot;Bubbles&quot;]=c in a)||(d.setAttribute(c,&quot;t&quot;),k[b+&quot;Bubbles&quot;]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&amp;&amp;(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&amp;&amp;m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||&quot;&quot;).match(E)||[&quot;&quot;],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||&quot;&quot;).split(&quot;.&quot;).sort(),o&amp;&amp;(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&amp;&amp;m.expr.match.needsContext.test(e),namespace:p.join(&quot;.&quot;)},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&amp;&amp;j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&amp;&amp;a.attachEvent(&quot;on&quot;+o,k))),j.add&amp;&amp;(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&amp;&amp;m._data(a);if(r&amp;&amp;(k=r.events)){b=(b||&quot;&quot;).match(E)||[&quot;&quot;],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||&quot;&quot;).split(&quot;.&quot;).sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&amp;&amp;new RegExp(&quot;(^|\\.)&quot;+p.join(&quot;\\.(?:.*\\.|)&quot;)+&quot;(\\.|$)&quot;),i=f=n.length;while(f--)g=n[f],!e&amp;&amp;q!==g.origType||c&amp;&amp;c.guid!==g.guid||h&amp;&amp;!h.test(g.namespace)||d&amp;&amp;d!==g.selector&amp;&amp;(&quot;**&quot;!==d||!g.selector)||(n.splice(f,1),g.selector&amp;&amp;n.delegateCount--,l.remove&amp;&amp;l.remove.call(a,g));i&amp;&amp;!n.length&amp;&amp;(l.teardown&amp;&amp;l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&amp;&amp;(delete r.handle,m._removeData(a,&quot;events&quot;))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,&quot;type&quot;)?b.type:b,q=j.call(b,&quot;namespace&quot;)?b.namespace.split(&quot;.&quot;):[];if(h=l=d=d||y,3!==d.nodeType&amp;&amp;8!==d.nodeType&amp;&amp;!$.test(p+m.event.triggered)&amp;&amp;(p.indexOf(&quot;.&quot;)&gt;=0&amp;&amp;(q=p.split(&quot;.&quot;),p=q.shift(),q.sort()),g=p.indexOf(&quot;:&quot;)&lt;0&amp;&amp;&quot;on&quot;+p,b=b[m.expando]?b:new m.Event(p,&quot;object&quot;==typeof b&amp;&amp;b),b.isTrigger=e?2:3,b.namespace=q.join(&quot;.&quot;),b.namespace_re=b.namespace?new RegExp(&quot;(^|\\.)&quot;+q.join(&quot;\\.(?:.*\\.|)&quot;)+&quot;(\\.|$)&quot;):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&amp;&amp;!k.noBubble&amp;&amp;!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&amp;&amp;o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&amp;&amp;!b.isPropagationStopped())b.type=n&gt;1?i:k.bindType||p,f=(m._data(h,&quot;events&quot;)||{})[b.type]&amp;&amp;m._data(h,&quot;handle&quot;),f&amp;&amp;f.apply(h,c),f=g&amp;&amp;h[g],f&amp;&amp;f.apply&amp;&amp;m.acceptData(h)&amp;&amp;(b.result=f.apply(h,c),b.result===!1&amp;&amp;b.preventDefault());if(b.type=p,!e&amp;&amp;!b.isDefaultPrevented()&amp;&amp;(!k._default||k._default.apply(o.pop(),c)===!1)&amp;&amp;m.acceptData(d)&amp;&amp;g&amp;&amp;d[p]&amp;&amp;!m.isWindow(d)){l=d[g],l&amp;&amp;(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&amp;&amp;(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,&quot;events&quot;)||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&amp;&amp;!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&amp;&amp;!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&amp;&amp;(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&amp;&amp;(a.result=c)===!1&amp;&amp;(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&amp;&amp;k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&amp;&amp;i.nodeType&amp;&amp;(!a.button||&quot;click&quot;!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&amp;&amp;(i.disabled!==!0||&quot;click&quot;!==a.type)){for(e=[],f=0;h&gt;f;f++)d=b[f],c=d.selector+&quot; &quot;,void 0===e[c]&amp;&amp;(e[c]=d.needsContext?m(c,this).index(i)&gt;=0:m.find(c,this,null,[i]).length),e[c]&amp;&amp;e.push(d);e.length&amp;&amp;g.push({elem:i,handlers:e})}return h&lt;b.length&amp;&amp;g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&amp;&amp;(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:&quot;altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which&quot;.split(&quot; &quot;),fixHooks:{},keyHooks:{props:&quot;char charCode key keyCode&quot;.split(&quot; &quot;),filter:function(a,b){return null==a.which&amp;&amp;(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:&quot;button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement&quot;.split(&quot; &quot;),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&amp;&amp;null!=b.clientX&amp;&amp;(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&amp;&amp;e.scrollLeft||c&amp;&amp;c.scrollLeft||0)-(e&amp;&amp;e.clientLeft||c&amp;&amp;c.clientLeft||0),a.pageY=b.clientY+(e&amp;&amp;e.scrollTop||c&amp;&amp;c.scrollTop||0)-(e&amp;&amp;e.clientTop||c&amp;&amp;c.clientTop||0)),!a.relatedTarget&amp;&amp;g&amp;&amp;(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&amp;f?1:2&amp;f?3:4&amp;f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ca()&amp;&amp;this.focus)try{return this.focus(),!1}catch(a){}},delegateType:&quot;focusin&quot;},blur:{trigger:function(){return this===ca()&amp;&amp;this.blur?(this.blur(),!1):void 0},delegateType:&quot;focusout&quot;},click:{trigger:function(){return m.nodeName(this,&quot;input&quot;)&amp;&amp;&quot;checkbox&quot;===this.type&amp;&amp;this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,&quot;a&quot;)}},beforeunload:{postDispatch:function(a){void 0!==a.result&amp;&amp;a.originalEvent&amp;&amp;(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&amp;&amp;c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&amp;&amp;a.removeEventListener(b,c,!1)}:function(a,b,c){var d=&quot;on&quot;+b;a.detachEvent&amp;&amp;(typeof a[d]===K&amp;&amp;(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&amp;&amp;a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&amp;&amp;a.returnValue===!1?aa:ba):this.type=a,b&amp;&amp;m.extend(this,b),this.timeStamp=a&amp;&amp;a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=aa,a&amp;&amp;(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=aa,a&amp;&amp;(a.stopPropagation&amp;&amp;a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=aa,a&amp;&amp;a.stopImmediatePropagation&amp;&amp;a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:&quot;mouseover&quot;,mouseleave:&quot;mouseout&quot;,pointerenter:&quot;pointerover&quot;,pointerleave:&quot;pointerout&quot;},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&amp;&amp;!m.contains(d,e))&amp;&amp;(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,&quot;form&quot;)?!1:void m.event.add(this,&quot;click._submit keypress._submit&quot;,function(a){var b=a.target,c=m.nodeName(b,&quot;input&quot;)||m.nodeName(b,&quot;button&quot;)?b.form:void 0;c&amp;&amp;!m._data(c,&quot;submitBubbles&quot;)&amp;&amp;(m.event.add(c,&quot;submit._submit&quot;,function(a){a._submit_bubble=!0}),m._data(c,&quot;submitBubbles&quot;,!0))})},postDispatch:function(a){a._submit_bubble&amp;&amp;(delete a._submit_bubble,this.parentNode&amp;&amp;!a.isTrigger&amp;&amp;m.event.simulate(&quot;submit&quot;,this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,&quot;form&quot;)?!1:void m.event.remove(this,&quot;._submit&quot;)}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?((&quot;checkbox&quot;===this.type||&quot;radio&quot;===this.type)&amp;&amp;(m.event.add(this,&quot;propertychange._change&quot;,function(a){&quot;checked&quot;===a.originalEvent.propertyName&amp;&amp;(this._just_changed=!0)}),m.event.add(this,&quot;click._change&quot;,function(a){this._just_changed&amp;&amp;!a.isTrigger&amp;&amp;(this._just_changed=!1),m.event.simulate(&quot;change&quot;,this,a,!0)})),!1):void m.event.add(this,&quot;beforeactivate._change&quot;,function(a){var b=a.target;X.test(b.nodeName)&amp;&amp;!m._data(b,&quot;changeBubbles&quot;)&amp;&amp;(m.event.add(b,&quot;change._change&quot;,function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate(&quot;change&quot;,this.parentNode,a,!0)}),m._data(b,&quot;changeBubbles&quot;,!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||&quot;radio&quot;!==b.type&amp;&amp;&quot;checkbox&quot;!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,&quot;._change&quot;),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:&quot;focusin&quot;,blur:&quot;focusout&quot;},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if(&quot;object&quot;==typeof a){&quot;string&quot;!=typeof b&amp;&amp;(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&amp;&amp;null==d?(d=b,c=b=void 0):null==d&amp;&amp;(&quot;string&quot;==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=ba;else if(!d)return this;return 1===e&amp;&amp;(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&amp;&amp;a.preventDefault&amp;&amp;a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+&quot;.&quot;+d.namespace:d.origType,d.selector,d.handler),this;if(&quot;object&quot;==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||&quot;function&quot;==typeof b)&amp;&amp;(c=b,b=void 0),c===!1&amp;&amp;(c=ba),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function da(a){var b=ea.split(&quot;|&quot;),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var ea=&quot;abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video&quot;,fa=/ jQuery\d+=&quot;(?:null|\d+)&quot;/g,ga=new RegExp(&quot;&lt;(?:&quot;+ea+&quot;)[\\s/&gt;]&quot;,&quot;i&quot;),ha=/^\s+/,ia=/&lt;(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^&gt;]*)\/&gt;/gi,ja=/&lt;([\w:]+)/,ka=/&lt;tbody/i,la=/&lt;|&amp;#?\w+;/,ma=/&lt;(?:script|style|link)/i,na=/checked\s*(?:[^=]|=\s*.checked.)/i,oa=/^$|\/(?:java|ecma)script/i,pa=/^true\/(.*)/,qa=/^\s*&lt;!(?:\[CDATA\[|--)|(?:\]\]|--)&gt;\s*$/g,ra={option:[1,&quot;&lt;select multiple='multiple'&gt;&quot;,&quot;&lt;/select&gt;&quot;],legend:[1,&quot;&lt;fieldset&gt;&quot;,&quot;&lt;/fieldset&gt;&quot;],area:[1,&quot;&lt;map&gt;&quot;,&quot;&lt;/map&gt;&quot;],param:[1,&quot;&lt;object&gt;&quot;,&quot;&lt;/object&gt;&quot;],thead:[1,&quot;&lt;table&gt;&quot;,&quot;&lt;/table&gt;&quot;],tr:[2,&quot;&lt;table&gt;&lt;tbody&gt;&quot;,&quot;&lt;/tbody&gt;&lt;/table&gt;&quot;],col:[2,&quot;&lt;table&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;colgroup&gt;&quot;,&quot;&lt;/colgroup&gt;&lt;/table&gt;&quot;],td:[3,&quot;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&quot;,&quot;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;],_default:k.htmlSerialize?[0,&quot;&quot;,&quot;&quot;]:[1,&quot;X&lt;div&gt;&quot;,&quot;&lt;/div&gt;&quot;]},sa=da(y),ta=sa.appendChild(y.createElement(&quot;div&quot;));ra.optgroup=ra.option,ra.tbody=ra.tfoot=ra.colgroup=ra.caption=ra.thead,ra.th=ra.td;function ua(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||&quot;*&quot;):typeof a.querySelectorAll!==K?a.querySelectorAll(b||&quot;*&quot;):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ua(d,b));return void 0===b||b&amp;&amp;m.nodeName(a,b)?m.merge([a],f):f}function va(a){W.test(a.type)&amp;&amp;(a.defaultChecked=a.checked)}function wa(a,b){return m.nodeName(a,&quot;table&quot;)&amp;&amp;m.nodeName(11!==b.nodeType?b:b.firstChild,&quot;tr&quot;)?a.getElementsByTagName(&quot;tbody&quot;)[0]||a.appendChild(a.ownerDocument.createElement(&quot;tbody&quot;)):a}function xa(a){return a.type=(null!==m.find.attr(a,&quot;type&quot;))+&quot;/&quot;+a.type,a}function ya(a){var b=pa.exec(a.type);return b?a.type=b[1]:a.removeAttribute(&quot;type&quot;),a}function za(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,&quot;globalEval&quot;,!b||m._data(b[d],&quot;globalEval&quot;))}function Aa(a,b){if(1===b.nodeType&amp;&amp;m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e&gt;d;d++)m.event.add(b,c,h[c][d])}g.data&amp;&amp;(g.data=m.extend({},g.data))}}function Ba(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&amp;&amp;b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}&quot;script&quot;===c&amp;&amp;b.text!==a.text?(xa(b).text=a.text,ya(b)):&quot;object&quot;===c?(b.parentNode&amp;&amp;(b.outerHTML=a.outerHTML),k.html5Clone&amp;&amp;a.innerHTML&amp;&amp;!m.trim(b.innerHTML)&amp;&amp;(b.innerHTML=a.innerHTML)):&quot;input&quot;===c&amp;&amp;W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&amp;&amp;(b.value=a.value)):&quot;option&quot;===c?b.defaultSelected=b.selected=a.defaultSelected:(&quot;input&quot;===c||&quot;textarea&quot;===c)&amp;&amp;(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!ga.test(&quot;&lt;&quot;+a.nodeName+&quot;&gt;&quot;)?f=a.cloneNode(!0):(ta.innerHTML=a.outerHTML,ta.removeChild(f=ta.firstChild)),!(k.noCloneEvent&amp;&amp;k.noCloneChecked||1!==a.nodeType&amp;&amp;11!==a.nodeType||m.isXMLDoc(a)))for(d=ua(f),h=ua(a),g=0;null!=(e=h[g]);++g)d[g]&amp;&amp;Ba(e,d[g]);if(b)if(c)for(h=h||ua(a),d=d||ua(f),g=0;null!=(e=h[g]);g++)Aa(e,d[g]);else Aa(a,f);return d=ua(f,&quot;script&quot;),d.length&gt;0&amp;&amp;za(d,!i&amp;&amp;ua(a,&quot;script&quot;)),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=da(b),p=[],q=0;n&gt;q;q++)if(f=a[q],f||0===f)if(&quot;object&quot;===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(la.test(f)){h=h||o.appendChild(b.createElement(&quot;div&quot;)),i=(ja.exec(f)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase(),l=ra[i]||ra._default,h.innerHTML=l[1]+f.replace(ia,&quot;&lt;$1&gt;&lt;/$2&gt;&quot;)+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&amp;&amp;ha.test(f)&amp;&amp;p.push(b.createTextNode(ha.exec(f)[0])),!k.tbody){f=&quot;table&quot;!==i||ka.test(f)?&quot;&lt;table&gt;&quot;!==l[1]||ka.test(f)?0:h:h.firstChild,e=f&amp;&amp;f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],&quot;tbody&quot;)&amp;&amp;!j.childNodes.length&amp;&amp;f.removeChild(j)}m.merge(p,h.childNodes),h.textContent=&quot;&quot;;while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&amp;&amp;o.removeChild(h),k.appendChecked||m.grep(ua(p,&quot;input&quot;),va),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&amp;&amp;(g=m.contains(f.ownerDocument,f),h=ua(o.appendChild(f),&quot;script&quot;),g&amp;&amp;za(h),c)){e=0;while(f=h[e++])oa.test(f.type||&quot;&quot;)&amp;&amp;c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&amp;&amp;(f=d[i],g=f&amp;&amp;j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&amp;&amp;(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&amp;&amp;this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&amp;&amp;this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&amp;&amp;this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ua(c)),c.parentNode&amp;&amp;(b&amp;&amp;m.contains(c.ownerDocument,c)&amp;&amp;za(ua(c,&quot;script&quot;)),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&amp;&amp;m.cleanData(ua(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&amp;&amp;m.nodeName(a,&quot;select&quot;)&amp;&amp;(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fa,&quot;&quot;):void 0;if(!(&quot;string&quot;!=typeof a||ma.test(a)||!k.htmlSerialize&amp;&amp;ga.test(a)||!k.leadingWhitespace&amp;&amp;ha.test(a)||ra[(ja.exec(a)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase()])){a=a.replace(ia,&quot;&lt;$1&gt;&lt;/$2&gt;&quot;);try{for(;d&gt;c;c++)b=this[c]||{},1===b.nodeType&amp;&amp;(m.cleanData(ua(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&amp;&amp;this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ua(this)),a&amp;&amp;a.replaceChild(b,this)}),a&amp;&amp;(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l&gt;1&amp;&amp;&quot;string&quot;==typeof p&amp;&amp;!k.checkClone&amp;&amp;na.test(p))return this.each(function(c){var d=n.eq(c);q&amp;&amp;(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&amp;&amp;(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&amp;&amp;(i=c),c)){for(g=m.map(ua(i,&quot;script&quot;),xa),f=g.length;l&gt;j;j++)d=i,j!==o&amp;&amp;(d=m.clone(d,!0,!0),f&amp;&amp;m.merge(g,ua(d,&quot;script&quot;))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,ya),j=0;f&gt;j;j++)d=g[j],oa.test(d.type||&quot;&quot;)&amp;&amp;!m._data(d,&quot;globalEval&quot;)&amp;&amp;m.contains(h,d)&amp;&amp;(d.src?m._evalUrl&amp;&amp;m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||&quot;&quot;).replace(qa,&quot;&quot;)));i=c=null}return this}}),m.each({appendTo:&quot;append&quot;,prependTo:&quot;prepend&quot;,insertBefore:&quot;before&quot;,insertAfter:&quot;after&quot;,replaceAll:&quot;replaceWith&quot;},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h&gt;=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Ca,Da={};function Ea(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&amp;&amp;(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],&quot;display&quot;);return e.detach(),f}function Fa(a){var b=y,c=Da[a];return c||(c=Ea(a,b),&quot;none&quot;!==c&amp;&amp;c||(Ca=(Ca||m(&quot;&lt;iframe frameborder='0' width='0' height='0'/&gt;&quot;)).appendTo(b.documentElement),b=(Ca[0].contentWindow||Ca[0].contentDocument).document,b.write(),b.close(),c=Ea(a,b),Ca.detach()),Da[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName(&quot;body&quot;)[0],c&amp;&amp;c.style?(b=y.createElement(&quot;div&quot;),d=y.createElement(&quot;div&quot;),d.style.cssText=&quot;position:absolute;border:0;width:0;height:0;top:0;left:-9999px&quot;,c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&amp;&amp;(b.style.cssText=&quot;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1&quot;,b.appendChild(y.createElement(&quot;div&quot;)).style.width=&quot;5px&quot;,a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Ga=/^margin/,Ha=new RegExp(&quot;^(&quot;+S+&quot;)(?!px)[a-z%]+$&quot;,&quot;i&quot;),Ia,Ja,Ka=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ia=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&amp;&amp;(&quot;&quot;!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Ha.test(g)&amp;&amp;Ga.test(b)&amp;&amp;(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+&quot;&quot;}):y.documentElement.currentStyle&amp;&amp;(Ia=function(a){return a.currentStyle},Ja=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ia(a),g=c?c[b]:void 0,null==g&amp;&amp;h&amp;&amp;h[b]&amp;&amp;(g=h[b]),Ha.test(g)&amp;&amp;!Ka.test(b)&amp;&amp;(d=h.left,e=a.runtimeStyle,f=e&amp;&amp;e.left,f&amp;&amp;(e.left=a.currentStyle.left),h.left=&quot;fontSize&quot;===b?&quot;1em&quot;:g,g=h.pixelLeft+&quot;px&quot;,h.left=d,f&amp;&amp;(e.left=f)),void 0===g?g:g+&quot;&quot;||&quot;auto&quot;});function La(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement(&quot;div&quot;),b.innerHTML=&quot;  &lt;link/&gt;&lt;table&gt;&lt;/table&gt;&lt;a href='/a'&gt;a&lt;/a&gt;&lt;input type='checkbox'/&gt;&quot;,d=b.getElementsByTagName(&quot;a&quot;)[0],c=d&amp;&amp;d.style){c.cssText=&quot;float:left;opacity:.5&quot;,k.opacity=&quot;0.5&quot;===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip=&quot;content-box&quot;,b.cloneNode(!0).style.backgroundClip=&quot;&quot;,k.clearCloneStyle=&quot;content-box&quot;===b.style.backgroundClip,k.boxSizing=&quot;&quot;===c.boxSizing||&quot;&quot;===c.MozBoxSizing||&quot;&quot;===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&amp;&amp;i(),g},boxSizingReliable:function(){return null==f&amp;&amp;i(),f},pixelPosition:function(){return null==e&amp;&amp;i(),e},reliableMarginRight:function(){return null==h&amp;&amp;i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName(&quot;body&quot;)[0],c&amp;&amp;c.style&amp;&amp;(b=y.createElement(&quot;div&quot;),d=y.createElement(&quot;div&quot;),d.style.cssText=&quot;position:absolute;border:0;width:0;height:0;top:0;left:-9999px&quot;,c.appendChild(d).appendChild(b),b.style.cssText=&quot;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute&quot;,e=f=!1,h=!0,a.getComputedStyle&amp;&amp;(e=&quot;1%&quot;!==(a.getComputedStyle(b,null)||{}).top,f=&quot;4px&quot;===(a.getComputedStyle(b,null)||{width:&quot;4px&quot;}).width,i=b.appendChild(y.createElement(&quot;div&quot;)),i.style.cssText=b.style.cssText=&quot;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0&quot;,i.style.marginRight=i.style.width=&quot;0&quot;,b.style.width=&quot;1px&quot;,h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML=&quot;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;t&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot;,i=b.getElementsByTagName(&quot;td&quot;),i[0].style.cssText=&quot;margin:0;border:0;padding:0;display:none&quot;,g=0===i[0].offsetHeight,g&amp;&amp;(i[0].style.display=&quot;&quot;,i[1].style.display=&quot;none&quot;,g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Ma=/alpha\([^)]*\)/i,Na=/opacity\s*=\s*([^)]*)/,Oa=/^(none|table(?!-c[ea]).+)/,Pa=new RegExp(&quot;^(&quot;+S+&quot;)(.*)$&quot;,&quot;i&quot;),Qa=new RegExp(&quot;^([+-])=(&quot;+S+&quot;)&quot;,&quot;i&quot;),Ra={position:&quot;absolute&quot;,visibility:&quot;hidden&quot;,display:&quot;block&quot;},Sa={letterSpacing:&quot;0&quot;,fontWeight:&quot;400&quot;},Ta=[&quot;Webkit&quot;,&quot;O&quot;,&quot;Moz&quot;,&quot;ms&quot;];function Ua(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ta.length;while(e--)if(b=Ta[e]+c,b in a)return b;return d}function Va(a,b){for(var c,d,e,f=[],g=0,h=a.length;h&gt;g;g++)d=a[g],d.style&amp;&amp;(f[g]=m._data(d,&quot;olddisplay&quot;),c=d.style.display,b?(f[g]||&quot;none&quot;!==c||(d.style.display=&quot;&quot;),&quot;&quot;===d.style.display&amp;&amp;U(d)&amp;&amp;(f[g]=m._data(d,&quot;olddisplay&quot;,Fa(d.nodeName)))):(e=U(d),(c&amp;&amp;&quot;none&quot;!==c||!e)&amp;&amp;m._data(d,&quot;olddisplay&quot;,e?c:m.css(d,&quot;display&quot;))));for(g=0;h&gt;g;g++)d=a[g],d.style&amp;&amp;(b&amp;&amp;&quot;none&quot;!==d.style.display&amp;&amp;&quot;&quot;!==d.style.display||(d.style.display=b?f[g]||&quot;&quot;:&quot;none&quot;));return a}function Wa(a,b,c){var d=Pa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||&quot;px&quot;):b}function Xa(a,b,c,d,e){for(var f=c===(d?&quot;border&quot;:&quot;content&quot;)?4:&quot;width&quot;===b?1:0,g=0;4&gt;f;f+=2)&quot;margin&quot;===c&amp;&amp;(g+=m.css(a,c+T[f],!0,e)),d?(&quot;content&quot;===c&amp;&amp;(g-=m.css(a,&quot;padding&quot;+T[f],!0,e)),&quot;margin&quot;!==c&amp;&amp;(g-=m.css(a,&quot;border&quot;+T[f]+&quot;Width&quot;,!0,e))):(g+=m.css(a,&quot;padding&quot;+T[f],!0,e),&quot;padding&quot;!==c&amp;&amp;(g+=m.css(a,&quot;border&quot;+T[f]+&quot;Width&quot;,!0,e)));return g}function Ya(a,b,c){var d=!0,e=&quot;width&quot;===b?a.offsetWidth:a.offsetHeight,f=Ia(a),g=k.boxSizing&amp;&amp;&quot;border-box&quot;===m.css(a,&quot;boxSizing&quot;,!1,f);if(0&gt;=e||null==e){if(e=Ja(a,b,f),(0&gt;e||null==e)&amp;&amp;(e=a.style[b]),Ha.test(e))return e;d=g&amp;&amp;(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xa(a,b,c||(g?&quot;border&quot;:&quot;content&quot;),d,f)+&quot;px&quot;}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ja(a,&quot;opacity&quot;);return&quot;&quot;===c?&quot;1&quot;:c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{&quot;float&quot;:k.cssFloat?&quot;cssFloat&quot;:&quot;styleFloat&quot;},style:function(a,b,c,d){if(a&amp;&amp;3!==a.nodeType&amp;&amp;8!==a.nodeType&amp;&amp;a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ua(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&amp;&amp;&quot;get&quot;in g&amp;&amp;void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,&quot;string&quot;===f&amp;&amp;(e=Qa.exec(c))&amp;&amp;(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f=&quot;number&quot;),null!=c&amp;&amp;c===c&amp;&amp;(&quot;number&quot;!==f||m.cssNumber[h]||(c+=&quot;px&quot;),k.clearCloneStyle||&quot;&quot;!==c||0!==b.indexOf(&quot;background&quot;)||(i[b]=&quot;inherit&quot;),!(g&amp;&amp;&quot;set&quot;in g&amp;&amp;void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ua(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&amp;&amp;&quot;get&quot;in g&amp;&amp;(f=g.get(a,!0,c)),void 0===f&amp;&amp;(f=Ja(a,b,d)),&quot;normal&quot;===f&amp;&amp;b in Sa&amp;&amp;(f=Sa[b]),&quot;&quot;===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each([&quot;height&quot;,&quot;width&quot;],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Oa.test(m.css(a,&quot;display&quot;))&amp;&amp;0===a.offsetWidth?m.swap(a,Ra,function(){return Ya(a,b,d)}):Ya(a,b,d):void 0},set:function(a,c,d){var e=d&amp;&amp;Ia(a);return Wa(a,c,d?Xa(a,b,d,k.boxSizing&amp;&amp;&quot;border-box&quot;===m.css(a,&quot;boxSizing&quot;,!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Na.test((b&amp;&amp;a.currentStyle?a.currentStyle.filter:a.style.filter)||&quot;&quot;)?.01*parseFloat(RegExp.$1)+&quot;&quot;:b?&quot;1&quot;:&quot;&quot;},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?&quot;alpha(opacity=&quot;+100*b+&quot;)&quot;:&quot;&quot;,f=d&amp;&amp;d.filter||c.filter||&quot;&quot;;c.zoom=1,(b&gt;=1||&quot;&quot;===b)&amp;&amp;&quot;&quot;===m.trim(f.replace(Ma,&quot;&quot;))&amp;&amp;c.removeAttribute&amp;&amp;(c.removeAttribute(&quot;filter&quot;),&quot;&quot;===b||d&amp;&amp;!d.filter)||(c.filter=Ma.test(f)?f.replace(Ma,e):f+&quot; &quot;+e)}}),m.cssHooks.marginRight=La(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:&quot;inline-block&quot;},Ja,[a,&quot;marginRight&quot;]):void 0}),m.each({margin:&quot;&quot;,padding:&quot;&quot;,border:&quot;Width&quot;},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f=&quot;string&quot;==typeof c?c.split(&quot; &quot;):[c];4&gt;d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Ga.test(a)||(m.cssHooks[a+b].set=Wa)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ia(a),e=b.length;e&gt;g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length&gt;1)},show:function(){return Va(this,!0)},hide:function(){return Va(this)},toggle:function(a){return&quot;boolean&quot;==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Za(a,b,c,d,e){
return new Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||&quot;swing&quot;,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?&quot;&quot;:&quot;px&quot;)},cur:function(){var a=Za.propHooks[this.prop];return a&amp;&amp;a.get?a.get(this):Za.propHooks._default.get(this)},run:function(a){var b,c=Za.propHooks[this.prop];return this.options.duration?this.pos=b=m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&amp;&amp;this.options.step.call(this.elem,this.now,this),c&amp;&amp;c.set?c.set(this):Za.propHooks._default.set(this),this}},Za.prototype.init.prototype=Za.prototype,Za.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&amp;&amp;null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,&quot;&quot;),b&amp;&amp;&quot;auto&quot;!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&amp;&amp;(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Za.propHooks.scrollTop=Za.propHooks.scrollLeft={set:function(a){a.elem.nodeType&amp;&amp;a.elem.parentNode&amp;&amp;(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Za.prototype.init,m.fx.step={};var $a,_a,ab=/^(?:toggle|show|hide)$/,bb=new RegExp(&quot;^(?:([+-])=|)(&quot;+S+&quot;)([a-z%]*)$&quot;,&quot;i&quot;),cb=/queueHooks$/,db=[ib],eb={&quot;*&quot;:[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bb.exec(b),f=e&amp;&amp;e[3]||(m.cssNumber[a]?&quot;&quot;:&quot;px&quot;),g=(m.cssNumber[a]||&quot;px&quot;!==f&amp;&amp;+d)&amp;&amp;bb.exec(m.css(c.elem,a)),h=1,i=20;if(g&amp;&amp;g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||&quot;.5&quot;,g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&amp;&amp;1!==h&amp;&amp;--i)}return e&amp;&amp;(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fb(){return setTimeout(function(){$a=void 0}),$a=m.now()}function gb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4&gt;e;e+=2-b)c=T[e],d[&quot;margin&quot;+c]=d[&quot;padding&quot;+c]=a;return b&amp;&amp;(d.opacity=d.width=a),d}function hb(a,b,c){for(var d,e=(eb[b]||[]).concat(eb[&quot;*&quot;]),f=0,g=e.length;g&gt;f;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&amp;&amp;U(a),r=m._data(a,&quot;fxshow&quot;);c.queue||(h=m._queueHooks(a,&quot;fx&quot;),null==h.unqueued&amp;&amp;(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,&quot;fx&quot;).length||h.empty.fire()})})),1===a.nodeType&amp;&amp;(&quot;height&quot;in b||&quot;width&quot;in b)&amp;&amp;(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,&quot;display&quot;),l=&quot;none&quot;===j?m._data(a,&quot;olddisplay&quot;)||Fa(a.nodeName):j,&quot;inline&quot;===l&amp;&amp;&quot;none&quot;===m.css(a,&quot;float&quot;)&amp;&amp;(k.inlineBlockNeedsLayout&amp;&amp;&quot;inline&quot;!==Fa(a.nodeName)?p.zoom=1:p.display=&quot;inline-block&quot;)),c.overflow&amp;&amp;(p.overflow=&quot;hidden&quot;,k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ab.exec(e)){if(delete b[d],f=f||&quot;toggle&quot;===e,e===(q?&quot;hide&quot;:&quot;show&quot;)){if(&quot;show&quot;!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&amp;&amp;r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))&quot;inline&quot;===(&quot;none&quot;===j?Fa(a.nodeName):j)&amp;&amp;(p.display=j);else{r?&quot;hidden&quot;in r&amp;&amp;(q=r.hidden):r=m._data(a,&quot;fxshow&quot;,{}),f&amp;&amp;(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,&quot;fxshow&quot;);for(b in o)m.style(a,b,o[b])});for(d in o)g=hb(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&amp;&amp;(g.end=g.start,g.start=&quot;width&quot;===d||&quot;height&quot;===d?1:0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&amp;&amp;(e=f[1],f=a[c]=f[0]),c!==d&amp;&amp;(a[d]=f,delete a[c]),g=m.cssHooks[d],g&amp;&amp;&quot;expand&quot;in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=db.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$a||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i&gt;g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1&gt;f&amp;&amp;i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$a||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d&gt;c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);g&gt;f;f++)if(d=db[f].call(j,a,k,j.opts))return d;return m.map(k,hb,j),m.isFunction(j.opts.start)&amp;&amp;j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kb,{tweener:function(a,b){m.isFunction(a)?(b=a,a=[&quot;*&quot;]):a=a.split(&quot; &quot;);for(var c,d=0,e=a.length;e&gt;d;d++)c=a[d],eb[c]=eb[c]||[],eb[c].unshift(b)},prefilter:function(a,b){b?db.unshift(a):db.push(a)}}),m.speed=function(a,b,c){var d=a&amp;&amp;&quot;object&quot;==typeof a?m.extend({},a):{complete:c||!c&amp;&amp;b||m.isFunction(a)&amp;&amp;a,duration:a,easing:c&amp;&amp;b||b&amp;&amp;!m.isFunction(b)&amp;&amp;b};return d.duration=m.fx.off?0:&quot;number&quot;==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&amp;&amp;(d.queue=&quot;fx&quot;),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&amp;&amp;d.old.call(this),d.queue&amp;&amp;m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css(&quot;opacity&quot;,0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kb(this,m.extend({},a),f);(e||m._data(this,&quot;finish&quot;))&amp;&amp;b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return&quot;string&quot;!=typeof a&amp;&amp;(c=b,b=a,a=void 0),b&amp;&amp;a!==!1&amp;&amp;this.queue(a||&quot;fx&quot;,[]),this.each(function(){var b=!0,e=null!=a&amp;&amp;a+&quot;queueHooks&quot;,f=m.timers,g=m._data(this);if(e)g[e]&amp;&amp;g[e].stop&amp;&amp;d(g[e]);else for(e in g)g[e]&amp;&amp;g[e].stop&amp;&amp;cb.test(e)&amp;&amp;d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&amp;&amp;f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&amp;&amp;m.dequeue(this,a)})},finish:function(a){return a!==!1&amp;&amp;(a=a||&quot;fx&quot;),this.each(function(){var b,c=m._data(this),d=c[a+&quot;queue&quot;],e=c[a+&quot;queueHooks&quot;],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&amp;&amp;e.stop&amp;&amp;e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&amp;&amp;f[b].queue===a&amp;&amp;(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g&gt;b;b++)d[b]&amp;&amp;d[b].finish&amp;&amp;d[b].finish.call(this);delete c.finish})}}),m.each([&quot;toggle&quot;,&quot;show&quot;,&quot;hide&quot;],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||&quot;boolean&quot;==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),m.each({slideDown:gb(&quot;show&quot;),slideUp:gb(&quot;hide&quot;),slideToggle:gb(&quot;toggle&quot;),fadeIn:{opacity:&quot;show&quot;},fadeOut:{opacity:&quot;hide&quot;},fadeToggle:{opacity:&quot;toggle&quot;}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($a=m.now();c&lt;b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$a=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_a||(_a=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_a),_a=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||&quot;fx&quot;,this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement(&quot;div&quot;),b.setAttribute(&quot;className&quot;,&quot;t&quot;),b.innerHTML=&quot;  &lt;link/&gt;&lt;table&gt;&lt;/table&gt;&lt;a href='/a'&gt;a&lt;/a&gt;&lt;input type='checkbox'/&gt;&quot;,d=b.getElementsByTagName(&quot;a&quot;)[0],c=y.createElement(&quot;select&quot;),e=c.appendChild(y.createElement(&quot;option&quot;)),a=b.getElementsByTagName(&quot;input&quot;)[0],d.style.cssText=&quot;top:1px&quot;,k.getSetAttribute=&quot;t&quot;!==b.className,k.style=/top/.test(d.getAttribute(&quot;style&quot;)),k.hrefNormalized=&quot;/a&quot;===d.getAttribute(&quot;href&quot;),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement(&quot;form&quot;).enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement(&quot;input&quot;),a.setAttribute(&quot;value&quot;,&quot;&quot;),k.input=&quot;&quot;===a.getAttribute(&quot;value&quot;),a.value=&quot;t&quot;,a.setAttribute(&quot;type&quot;,&quot;radio&quot;),k.radioValue=&quot;t&quot;===a.value}();var lb=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&amp;&amp;(e=d?a.call(this,c,m(this).val()):a,null==e?e=&quot;&quot;:&quot;number&quot;==typeof e?e+=&quot;&quot;:m.isArray(e)&amp;&amp;(e=m.map(e,function(a){return null==a?&quot;&quot;:a+&quot;&quot;})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&amp;&amp;&quot;set&quot;in b&amp;&amp;void 0!==b.set(this,e,&quot;value&quot;)||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&amp;&amp;&quot;get&quot;in b&amp;&amp;void 0!==(c=b.get(e,&quot;value&quot;))?c:(c=e.value,&quot;string&quot;==typeof c?c.replace(lb,&quot;&quot;):null==c?&quot;&quot;:c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,&quot;value&quot;);return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f=&quot;select-one&quot;===a.type||0&gt;e,g=f?null:[],h=f?e+1:d.length,i=0&gt;e?h:f?e:0;h&gt;i;i++)if(c=d[i],!(!c.selected&amp;&amp;i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute(&quot;disabled&quot;))||c.parentNode.disabled&amp;&amp;m.nodeName(c.parentNode,&quot;optgroup&quot;))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)&gt;=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each([&quot;radio&quot;,&quot;checkbox&quot;],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)&gt;=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute(&quot;value&quot;)?&quot;on&quot;:a.value})});var mb,nb,ob=m.expr.attrHandle,pb=/^(?:checked|selected)$/i,qb=k.getSetAttribute,rb=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length&gt;1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&amp;&amp;3!==f&amp;&amp;8!==f&amp;&amp;2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&amp;&amp;m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nb:mb)),void 0===c?d&amp;&amp;&quot;get&quot;in d&amp;&amp;null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&amp;&amp;&quot;set&quot;in d&amp;&amp;void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+&quot;&quot;),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&amp;&amp;b.match(E);if(f&amp;&amp;1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rb&amp;&amp;qb||!pb.test(c)?a[d]=!1:a[m.camelCase(&quot;default-&quot;+c)]=a[d]=!1:m.attr(a,c,&quot;&quot;),a.removeAttribute(qb?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&amp;&amp;&quot;radio&quot;===b&amp;&amp;m.nodeName(a,&quot;input&quot;)){var c=a.value;return a.setAttribute(&quot;type&quot;,b),c&amp;&amp;(a.value=c),b}}}}}),nb={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rb&amp;&amp;qb||!pb.test(c)?a.setAttribute(!qb&amp;&amp;m.propFix[c]||c,c):a[m.camelCase(&quot;default-&quot;+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ob[b]||m.find.attr;ob[b]=rb&amp;&amp;qb||!pb.test(b)?function(a,b,d){var e,f;return d||(f=ob[b],ob[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,ob[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase(&quot;default-&quot;+b)]?b.toLowerCase():null}}),rb&amp;&amp;qb||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,&quot;input&quot;)?void(a.defaultValue=b):mb&amp;&amp;mb.set(a,b,c)}}),qb||(mb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+=&quot;&quot;,&quot;value&quot;===c||b===a.getAttribute(c)?b:void 0}},ob.id=ob.name=ob.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&amp;&amp;&quot;&quot;!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&amp;&amp;c.specified?c.value:void 0},set:mb.set},m.attrHooks.contenteditable={set:function(a,b,c){mb.set(a,&quot;&quot;===b?!1:b,c)}},m.each([&quot;width&quot;,&quot;height&quot;],function(a,b){m.attrHooks[b]={set:function(a,c){return&quot;&quot;===c?(a.setAttribute(b,&quot;auto&quot;),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+&quot;&quot;}});var sb=/^(?:input|select|textarea|button|object)$/i,tb=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length&gt;1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{&quot;for&quot;:&quot;htmlFor&quot;,&quot;class&quot;:&quot;className&quot;},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&amp;&amp;3!==g&amp;&amp;8!==g&amp;&amp;2!==g)return f=1!==g||!m.isXMLDoc(a),f&amp;&amp;(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&amp;&amp;&quot;set&quot;in e&amp;&amp;void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&amp;&amp;&quot;get&quot;in e&amp;&amp;null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,&quot;tabindex&quot;);return b?parseInt(b,10):sb.test(a.nodeName)||tb.test(a.nodeName)&amp;&amp;a.href?0:-1}}}}),k.hrefNormalized||m.each([&quot;href&quot;,&quot;src&quot;],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&amp;&amp;(b.selectedIndex,b.parentNode&amp;&amp;b.parentNode.selectedIndex),null}}),m.each([&quot;tabIndex&quot;,&quot;readOnly&quot;,&quot;maxLength&quot;,&quot;cellSpacing&quot;,&quot;cellPadding&quot;,&quot;rowSpan&quot;,&quot;colSpan&quot;,&quot;useMap&quot;,&quot;frameBorder&quot;,&quot;contentEditable&quot;],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype=&quot;encoding&quot;);var ub=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=&quot;string&quot;==typeof a&amp;&amp;a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||&quot;&quot;).match(E)||[];i&gt;h;h++)if(c=this[h],d=1===c.nodeType&amp;&amp;(c.className?(&quot; &quot;+c.className+&quot; &quot;).replace(ub,&quot; &quot;):&quot; &quot;)){f=0;while(e=b[f++])d.indexOf(&quot; &quot;+e+&quot; &quot;)&lt;0&amp;&amp;(d+=e+&quot; &quot;);g=m.trim(d),c.className!==g&amp;&amp;(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||&quot;string&quot;==typeof a&amp;&amp;a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||&quot;&quot;).match(E)||[];i&gt;h;h++)if(c=this[h],d=1===c.nodeType&amp;&amp;(c.className?(&quot; &quot;+c.className+&quot; &quot;).replace(ub,&quot; &quot;):&quot;&quot;)){f=0;while(e=b[f++])while(d.indexOf(&quot; &quot;+e+&quot; &quot;)&gt;=0)d=d.replace(&quot; &quot;+e+&quot; &quot;,&quot; &quot;);g=a?m.trim(d):&quot;&quot;,c.className!==g&amp;&amp;(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return&quot;boolean&quot;==typeof b&amp;&amp;&quot;string&quot;===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if(&quot;string&quot;===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||&quot;boolean&quot;===c)&amp;&amp;(this.className&amp;&amp;m._data(this,&quot;__className__&quot;,this.className),this.className=this.className||a===!1?&quot;&quot;:m._data(this,&quot;__className__&quot;)||&quot;&quot;)})},hasClass:function(a){for(var b=&quot; &quot;+a+&quot; &quot;,c=0,d=this.length;d&gt;c;c++)if(1===this[c].nodeType&amp;&amp;(&quot; &quot;+this[c].className+&quot; &quot;).replace(ub,&quot; &quot;).indexOf(b)&gt;=0)return!0;return!1}}),m.each(&quot;blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu&quot;.split(&quot; &quot;),function(a,b){m.fn[b]=function(a,c){return arguments.length&gt;0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,&quot;**&quot;):this.off(b,a||&quot;**&quot;,c)}});var vb=m.now(),wb=/\?/,xb=/(,)|(\[|{)|(}|])|&quot;(?:[^&quot;\\\r\n]|\\[&quot;\\\/bfnrt]|\\u[\da-fA-F]{4})*&quot;\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&amp;&amp;a.JSON.parse)return a.JSON.parse(b+&quot;&quot;);var c,d=null,e=m.trim(b+&quot;&quot;);return e&amp;&amp;!m.trim(e.replace(xb,function(a,b,e,f){return c&amp;&amp;b&amp;&amp;(d=0),0===d?a:(c=e||b,d+=!f-!e,&quot;&quot;)}))?Function(&quot;return &quot;+e)():m.error(&quot;Invalid JSON: &quot;+b)},m.parseXML=function(b){var c,d;if(!b||&quot;string&quot;!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,&quot;text/xml&quot;)):(c=new ActiveXObject(&quot;Microsoft.XMLDOM&quot;),c.async=&quot;false&quot;,c.loadXML(b))}catch(e){c=void 0}return c&amp;&amp;c.documentElement&amp;&amp;!c.getElementsByTagName(&quot;parsererror&quot;).length||m.error(&quot;Invalid XML: &quot;+b),c};var yb,zb,Ab=/#.*$/,Bb=/([?&amp;])_=[^&amp;]*/,Cb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Db=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Eb=/^(?:GET|HEAD)$/,Fb=/^\/\//,Gb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hb={},Ib={},Jb=&quot;*/&quot;.concat(&quot;*&quot;);try{zb=location.href}catch(Kb){zb=y.createElement(&quot;a&quot;),zb.href=&quot;&quot;,zb=zb.href}yb=Gb.exec(zb.toLowerCase())||[];function Lb(a){return function(b,c){&quot;string&quot;!=typeof b&amp;&amp;(c=b,b=&quot;*&quot;);var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])&quot;+&quot;===d.charAt(0)?(d=d.slice(1)||&quot;*&quot;,(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mb(a,b,c,d){var e={},f=a===Ib;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return&quot;string&quot;!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e[&quot;*&quot;]&amp;&amp;g(&quot;*&quot;)}function Nb(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&amp;&amp;((e[d]?a:c||(c={}))[d]=b[d]);return c&amp;&amp;m.extend(!0,a,c),a}function Ob(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while(&quot;*&quot;===i[0])i.shift(),void 0===e&amp;&amp;(e=a.mimeType||b.getResponseHeader(&quot;Content-Type&quot;));if(e)for(g in h)if(h[g]&amp;&amp;h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+&quot; &quot;+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&amp;&amp;i.unshift(f),c[f]):void 0}function Pb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&amp;&amp;(c[a.responseFields[f]]=b),!i&amp;&amp;d&amp;&amp;a.dataFilter&amp;&amp;(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if(&quot;*&quot;===f)f=i;else if(&quot;*&quot;!==i&amp;&amp;i!==f){if(g=j[i+&quot; &quot;+f]||j[&quot;* &quot;+f],!g)for(e in j)if(h=e.split(&quot; &quot;),h[1]===f&amp;&amp;(g=j[i+&quot; &quot;+h[0]]||j[&quot;* &quot;+h[0]])){g===!0?g=j[e]:j[e]!==!0&amp;&amp;(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&amp;&amp;a[&quot;throws&quot;])b=g(b);else try{b=g(b)}catch(l){return{state:&quot;parsererror&quot;,error:g?l:&quot;No conversion from &quot;+i+&quot; to &quot;+f}}}return{state:&quot;success&quot;,data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zb,type:&quot;GET&quot;,isLocal:Db.test(yb[1]),global:!0,processData:!0,async:!0,contentType:&quot;application/x-www-form-urlencoded; charset=UTF-8&quot;,accepts:{&quot;*&quot;:Jb,text:&quot;text/plain&quot;,html:&quot;text/html&quot;,xml:&quot;application/xml, text/xml&quot;,json:&quot;application/json, text/javascript&quot;},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:&quot;responseXML&quot;,text:&quot;responseText&quot;,json:&quot;responseJSON&quot;},converters:{&quot;* text&quot;:String,&quot;text html&quot;:!0,&quot;text json&quot;:m.parseJSON,&quot;text xml&quot;:m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nb(Nb(a,m.ajaxSettings),b):Nb(m.ajaxSettings,a)},ajaxPrefilter:Lb(Hb),ajaxTransport:Lb(Ib),ajax:function(a,b){&quot;object&quot;==typeof a&amp;&amp;(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&amp;&amp;(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks(&quot;once memory&quot;),q=k.statusCode||{},r={},s={},t=0,u=&quot;canceled&quot;,v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cb.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2&gt;t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&amp;&amp;i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zb)+&quot;&quot;).replace(Ab,&quot;&quot;).replace(Fb,yb[1]+&quot;//&quot;),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||&quot;*&quot;).toLowerCase().match(E)||[&quot;&quot;],null==k.crossDomain&amp;&amp;(c=Gb.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yb[1]&amp;&amp;c[2]===yb[2]&amp;&amp;(c[3]||(&quot;http:&quot;===c[1]?&quot;80&quot;:&quot;443&quot;))===(yb[3]||(&quot;http:&quot;===yb[1]?&quot;80&quot;:&quot;443&quot;)))),k.data&amp;&amp;k.processData&amp;&amp;&quot;string&quot;!=typeof k.data&amp;&amp;(k.data=m.param(k.data,k.traditional)),Mb(Hb,k,b,v),2===t)return v;h=m.event&amp;&amp;k.global,h&amp;&amp;0===m.active++&amp;&amp;m.event.trigger(&quot;ajaxStart&quot;),k.type=k.type.toUpperCase(),k.hasContent=!Eb.test(k.type),e=k.url,k.hasContent||(k.data&amp;&amp;(e=k.url+=(wb.test(e)?&quot;&amp;&quot;:&quot;?&quot;)+k.data,delete k.data),k.cache===!1&amp;&amp;(k.url=Bb.test(e)?e.replace(Bb,&quot;$1_=&quot;+vb++):e+(wb.test(e)?&quot;&amp;&quot;:&quot;?&quot;)+&quot;_=&quot;+vb++)),k.ifModified&amp;&amp;(m.lastModified[e]&amp;&amp;v.setRequestHeader(&quot;If-Modified-Since&quot;,m.lastModified[e]),m.etag[e]&amp;&amp;v.setRequestHeader(&quot;If-None-Match&quot;,m.etag[e])),(k.data&amp;&amp;k.hasContent&amp;&amp;k.contentType!==!1||b.contentType)&amp;&amp;v.setRequestHeader(&quot;Content-Type&quot;,k.contentType),v.setRequestHeader(&quot;Accept&quot;,k.dataTypes[0]&amp;&amp;k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+(&quot;*&quot;!==k.dataTypes[0]?&quot;, &quot;+Jb+&quot;; q=0.01&quot;:&quot;&quot;):k.accepts[&quot;*&quot;]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&amp;&amp;(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u=&quot;abort&quot;;for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mb(Ib,k,b,v)){v.readyState=1,h&amp;&amp;n.trigger(&quot;ajaxSend&quot;,[v,k]),k.async&amp;&amp;k.timeout&gt;0&amp;&amp;(g=setTimeout(function(){v.abort(&quot;timeout&quot;)},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2&gt;t))throw w;x(-1,w)}}else x(-1,&quot;No Transport&quot;);function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&amp;&amp;(t=2,g&amp;&amp;clearTimeout(g),i=void 0,f=d||&quot;&quot;,v.readyState=a&gt;0?4:0,j=a&gt;=200&amp;&amp;300&gt;a||304===a,c&amp;&amp;(u=Ob(k,v,c)),u=Pb(k,u,v,j),j?(k.ifModified&amp;&amp;(w=v.getResponseHeader(&quot;Last-Modified&quot;),w&amp;&amp;(m.lastModified[e]=w),w=v.getResponseHeader(&quot;etag&quot;),w&amp;&amp;(m.etag[e]=w)),204===a||&quot;HEAD&quot;===k.type?x=&quot;nocontent&quot;:304===a?x=&quot;notmodified&quot;:(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&amp;&amp;(x=&quot;error&quot;,0&gt;a&amp;&amp;(a=0))),v.status=a,v.statusText=(b||x)+&quot;&quot;,j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&amp;&amp;n.trigger(j?&quot;ajaxSuccess&quot;:&quot;ajaxError&quot;,[v,k,j?r:s]),p.fireWith(l,[v,x]),h&amp;&amp;(n.trigger(&quot;ajaxComplete&quot;,[v,k]),--m.active||m.event.trigger(&quot;ajaxStop&quot;)))}return v},getJSON:function(a,b,c){return m.get(a,b,c,&quot;json&quot;)},getScript:function(a,b){return m.get(a,void 0,b,&quot;script&quot;)}}),m.each([&quot;get&quot;,&quot;post&quot;],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&amp;&amp;(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:&quot;GET&quot;,dataType:&quot;script&quot;,async:!1,global:!1,&quot;throws&quot;:!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&amp;&amp;b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&amp;&amp;1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,&quot;body&quot;)||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth&lt;=0&amp;&amp;a.offsetHeight&lt;=0||!k.reliableHiddenOffsets()&amp;&amp;&quot;none&quot;===(a.style&amp;&amp;a.style.display||m.css(a,&quot;display&quot;))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qb=/%20/g,Rb=/\[\]$/,Sb=/\r?\n/g,Tb=/^(?:submit|button|image|reset|file)$/i,Ub=/^(?:input|select|textarea|keygen)/i;function Vb(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rb.test(a)?d(a,e):Vb(a+&quot;[&quot;+(&quot;object&quot;==typeof e?b:&quot;&quot;)+&quot;]&quot;,e,c,d)});else if(c||&quot;object&quot;!==m.type(b))d(a,b);else for(e in b)Vb(a+&quot;[&quot;+e+&quot;]&quot;,b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?&quot;&quot;:b,d[d.length]=encodeURIComponent(a)+&quot;=&quot;+encodeURIComponent(b)};if(void 0===b&amp;&amp;(b=m.ajaxSettings&amp;&amp;m.ajaxSettings.traditional),m.isArray(a)||a.jquery&amp;&amp;!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vb(c,a[c],b,e);return d.join(&quot;&amp;&quot;).replace(Qb,&quot;+&quot;)},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,&quot;elements&quot;);return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&amp;&amp;!m(this).is(&quot;:disabled&quot;)&amp;&amp;Ub.test(this.nodeName)&amp;&amp;!Tb.test(a)&amp;&amp;(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sb,&quot;\r\n&quot;)}}):{name:b.name,value:c.replace(Sb,&quot;\r\n&quot;)}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&amp;&amp;/^(get|post|head|put|delete|options)$/i.test(this.type)&amp;&amp;Zb()||$b()}:Zb;var Wb=0,Xb={},Yb=m.ajaxSettings.xhr();a.attachEvent&amp;&amp;a.attachEvent(&quot;onunload&quot;,function(){for(var a in Xb)Xb[a](void 0,!0)}),k.cors=!!Yb&amp;&amp;&quot;withCredentials&quot;in Yb,Yb=k.ajax=!!Yb,Yb&amp;&amp;m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&amp;&amp;f.overrideMimeType&amp;&amp;f.overrideMimeType(a.mimeType),a.crossDomain||c[&quot;X-Requested-With&quot;]||(c[&quot;X-Requested-With&quot;]=&quot;XMLHttpRequest&quot;);for(e in c)void 0!==c[e]&amp;&amp;f.setRequestHeader(e,c[e]+&quot;&quot;);f.send(a.hasContent&amp;&amp;a.data||null),b=function(c,e){var h,i,j;if(b&amp;&amp;(e||4===f.readyState))if(delete Xb[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&amp;&amp;f.abort();else{j={},h=f.status,&quot;string&quot;==typeof f.responseText&amp;&amp;(j.text=f.responseText);try{i=f.statusText}catch(k){i=&quot;&quot;}h||!a.isLocal||a.crossDomain?1223===h&amp;&amp;(h=204):h=j.text?200:404}j&amp;&amp;d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xb[g]=b:b()},abort:function(){b&amp;&amp;b(void 0,!0)}}}});function Zb(){try{return new a.XMLHttpRequest}catch(b){}}function $b(){try{return new a.ActiveXObject(&quot;Microsoft.XMLHTTP&quot;)}catch(b){}}m.ajaxSetup({accepts:{script:&quot;text/javascript, application/javascript, application/ecmascript, application/x-ecmascript&quot;},contents:{script:/(?:java|ecma)script/},converters:{&quot;text script&quot;:function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter(&quot;script&quot;,function(a){void 0===a.cache&amp;&amp;(a.cache=!1),a.crossDomain&amp;&amp;(a.type=&quot;GET&quot;,a.global=!1)}),m.ajaxTransport(&quot;script&quot;,function(a){if(a.crossDomain){var b,c=y.head||m(&quot;head&quot;)[0]||y.documentElement;return{send:function(d,e){b=y.createElement(&quot;script&quot;),b.async=!0,a.scriptCharset&amp;&amp;(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&amp;&amp;(b.onload=b.onreadystatechange=null,b.parentNode&amp;&amp;b.parentNode.removeChild(b),b=null,c||e(200,&quot;success&quot;))},c.insertBefore(b,c.firstChild)},abort:function(){b&amp;&amp;b.onload(void 0,!0)}}}});var _b=[],ac=/(=)\?(?=&amp;|$)|\?\?/;m.ajaxSetup({jsonp:&quot;callback&quot;,jsonpCallback:function(){var a=_b.pop()||m.expando+&quot;_&quot;+vb++;return this[a]=!0,a}}),m.ajaxPrefilter(&quot;json jsonp&quot;,function(b,c,d){var e,f,g,h=b.jsonp!==!1&amp;&amp;(ac.test(b.url)?&quot;url&quot;:&quot;string&quot;==typeof b.data&amp;&amp;!(b.contentType||&quot;&quot;).indexOf(&quot;application/x-www-form-urlencoded&quot;)&amp;&amp;ac.test(b.data)&amp;&amp;&quot;data&quot;);return h||&quot;jsonp&quot;===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ac,&quot;$1&quot;+e):b.jsonp!==!1&amp;&amp;(b.url+=(wb.test(b.url)?&quot;&amp;&quot;:&quot;?&quot;)+b.jsonp+&quot;=&quot;+e),b.converters[&quot;script json&quot;]=function(){return g||m.error(e+&quot; was not called&quot;),g[0]},b.dataTypes[0]=&quot;json&quot;,f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&amp;&amp;(b.jsonpCallback=c.jsonpCallback,_b.push(e)),g&amp;&amp;m.isFunction(f)&amp;&amp;f(g[0]),g=f=void 0}),&quot;script&quot;):void 0}),m.parseHTML=function(a,b,c){if(!a||&quot;string&quot;!=typeof a)return null;&quot;boolean&quot;==typeof b&amp;&amp;(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&amp;&amp;[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&amp;&amp;e.length&amp;&amp;m(e).remove(),m.merge([],d.childNodes))};var bc=m.fn.load;m.fn.load=function(a,b,c){if(&quot;string&quot;!=typeof a&amp;&amp;bc)return bc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(&quot; &quot;);return h&gt;=0&amp;&amp;(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&amp;&amp;&quot;object&quot;==typeof b&amp;&amp;(f=&quot;POST&quot;),g.length&gt;0&amp;&amp;m.ajax({url:a,type:f,dataType:&quot;html&quot;,data:b}).done(function(a){e=arguments,g.html(d?m(&quot;&lt;div&gt;&quot;).append(m.parseHTML(a)).find(d):a)}).complete(c&amp;&amp;function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each([&quot;ajaxStart&quot;,&quot;ajaxStop&quot;,&quot;ajaxComplete&quot;,&quot;ajaxError&quot;,&quot;ajaxSuccess&quot;,&quot;ajaxSend&quot;],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,&quot;position&quot;),l=m(a),n={};&quot;static&quot;===k&amp;&amp;(a.style.position=&quot;relative&quot;),h=l.offset(),f=m.css(a,&quot;top&quot;),i=m.css(a,&quot;left&quot;),j=(&quot;absolute&quot;===k||&quot;fixed&quot;===k)&amp;&amp;m.inArray(&quot;auto&quot;,[f,i])&gt;-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&amp;&amp;(b=b.call(a,c,h)),null!=b.top&amp;&amp;(n.top=b.top-h.top+g),null!=b.left&amp;&amp;(n.left=b.left-h.left+e),&quot;using&quot;in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&amp;&amp;e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&amp;&amp;(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return&quot;fixed&quot;===m.css(d,&quot;position&quot;)?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],&quot;html&quot;)||(c=a.offset()),c.top+=m.css(a[0],&quot;borderTopWidth&quot;,!0),c.left+=m.css(a[0],&quot;borderLeftWidth&quot;,!0)),{top:b.top-c.top-m.css(d,&quot;marginTop&quot;,!0),left:b.left-c.left-m.css(d,&quot;marginLeft&quot;,!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&amp;&amp;!m.nodeName(a,&quot;html&quot;)&amp;&amp;&quot;static&quot;===m.css(a,&quot;position&quot;))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:&quot;pageXOffset&quot;,scrollTop:&quot;pageYOffset&quot;},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each([&quot;top&quot;,&quot;left&quot;],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+&quot;px&quot;:c):void 0})}),m.each({Height:&quot;height&quot;,Width:&quot;width&quot;},function(a,b){m.each({padding:&quot;inner&quot;+a,content:b,&quot;&quot;:&quot;outer&quot;+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&amp;&amp;(c||&quot;boolean&quot;!=typeof d),g=c||(d===!0||e===!0?&quot;margin&quot;:&quot;border&quot;);return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement[&quot;client&quot;+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body[&quot;scroll&quot;+a],e[&quot;scroll&quot;+a],b.body[&quot;offset&quot;+a],e[&quot;offset&quot;+a],e[&quot;client&quot;+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,&quot;function&quot;==typeof define&amp;&amp;define.amd&amp;&amp;define(&quot;jquery&quot;,[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&amp;&amp;(a.$=fc),b&amp;&amp;a.jQuery===m&amp;&amp;(a.jQuery=ec),m},typeof b===K&amp;&amp;(a.jQuery=a.$=m),m});

=====================================================
== File: src/homepage/_site/assets/js/lightbox.js
=====================================================
/*!
 * Lightbox v2.8.2
 * by Lokesh Dhakar
 *
 * More info:
 * http://lokeshdhakar.com/projects/lightbox2/
 *
 * Copyright 2007, 2015 Lokesh Dhakar
 * Released under the MIT license
 * https://github.com/lokesh/lightbox2/blob/master/LICENSE
 */

// Uses Node, AMD or browser globals to create a module.
(function (root, factory) {
    if (typeof define === 'function' &amp;&amp; define.amd) {
        // AMD. Register as an anonymous module.
        define(['jquery'], factory);
    } else if (typeof exports === 'object') {
        // Node. Does not work with strict CommonJS, but
        // only CommonJS-like environments that support module.exports,
        // like Node.
        module.exports = factory(require('jquery'));
    } else {
        // Browser globals (root is window)
        root.lightbox = factory(root.jQuery);
    }
}(this, function ($) {

  function Lightbox(options) {
    this.album = [];
    this.currentImageIndex = void 0;
    this.init();

    // options
    this.options = $.extend({}, this.constructor.defaults);
    this.option(options);
  }

  // Descriptions of all options available on the demo site:
  // http://lokeshdhakar.com/projects/lightbox2/index.html#options
  Lightbox.defaults = {
    albumLabel: 'Image %1 of %2',
    alwaysShowNavOnTouchDevices: false,
    fadeDuration: 500,
    fitImagesInViewport: true,
    // maxWidth: 800,
    // maxHeight: 600,
    positionFromTop: 50,
    resizeDuration: 700,
    showImageNumberLabel: true,

=====================================================
== File: src/homepage/_site/assets/js/ie/PIE.htc
=====================================================
&lt;!--
PIE: CSS3 rendering for IE
Version 1.0.0
http://css3pie.com
Dual-licensed for use under the Apache License Version 2.0 or the General Public License (GPL) Version 2.
--&gt;
&lt;PUBLIC:COMPONENT lightWeight=&quot;true&quot;&gt;
&lt;!-- saved from url=(0014)about:internet --&gt;
&lt;PUBLIC:ATTACH EVENT=&quot;oncontentready&quot; FOR=&quot;element&quot; ONEVENT=&quot;init()&quot; /&gt;
&lt;PUBLIC:ATTACH EVENT=&quot;ondocumentready&quot; FOR=&quot;element&quot; ONEVENT=&quot;init()&quot; /&gt;
&lt;PUBLIC:ATTACH EVENT=&quot;ondetach&quot; FOR=&quot;element&quot; ONEVENT=&quot;cleanup()&quot; /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
var doc = element.document;var f=window.PIE;
if(!f){f=window.PIE={F:&quot;-pie-&quot;,nb:&quot;Pie&quot;,La:&quot;pie_&quot;,Ac:{TD:1,TH:1},cc:{TABLE:1,THEAD:1,TBODY:1,TFOOT:1,TR:1,INPUT:1,TEXTAREA:1,SELECT:1,OPTION:1,IMG:1,HR:1},fc:{A:1,INPUT:1,TEXTAREA:1,SELECT:1,BUTTON:1},Gd:{submit:1,button:1,reset:1},aa:function(){}};try{doc.execCommand(&quot;BackgroundImageCache&quot;,false,true)}catch(aa){}for(var ba=4,Z=doc.createElement(&quot;div&quot;),ca=Z.getElementsByTagName(&quot;i&quot;),ga;Z.innerHTML=&quot;&lt;!--[if gt IE &quot;+ ++ba+&quot;]&gt;&lt;i&gt;&lt;/i&gt;&lt;![endif]--\&gt;&quot;,ca[0];);f.O=ba;if(ba===6)f.F=f.F.replace(/^-/,&quot;&quot;);f.ja=
doc.documentMode||f.O;Z.innerHTML='&lt;v:shape adj=&quot;1&quot;/&gt;';ga=Z.firstChild;ga.style.behavior=&quot;url(#default#VML)&quot;;f.zc=typeof ga.adj===&quot;object&quot;;(function(){var a,b=0,c={};f.p={Za:function(d){if(!a){a=doc.createDocumentFragment();a.namespaces.add(&quot;css3vml&quot;,&quot;urn:schemas-microsoft-com:vml&quot;)}return a.createElement(&quot;css3vml:&quot;+d)},Ba:function(d){return d&amp;&amp;d._pieId||(d._pieId=&quot;_&quot;+ ++b)},Eb:function(d){var e,g,j,i,h=arguments;e=1;for(g=h.length;e&lt;g;e++){i=h[e];for(j in i)if(i.hasOwnProperty(j))d[j]=i[j]}return d},
Rb:function(d,e,g){var j=c[d],i,h;if(j)Object.prototype.toString.call(j)===&quot;[object Array]&quot;?j.push([e,g]):e.call(g,j);else{h=c[d]=[[e,g]];i=new Image;i.onload=function(){j=c[d]={h:i.width,f:i.height};for(var k=0,n=h.length;k&lt;n;k++)h[k][0].call(h[k][1],j);i.onload=null};i.src=d}}}})();f.Na={gc:function(a,b,c,d){function e(){k=j&gt;=90&amp;&amp;j&lt;270?b:0;n=j&lt;180?c:0;m=b-k;p=c-n}function g(){for(;j&lt;0;)j+=360;j%=360}var j=d.sa;d=d.zb;var i,h,k,n,m,p,r,t;if(d){d=d.coords(a,b,c);i=d.x;h=d.y}if(j){j=j.jd();g();e();
if(!d){i=k;h=n}d=f.Na.tc(i,h,j,m,p);a=d[0];d=d[1]}else if(d){a=b-i;d=c-h}else{i=h=a=0;d=c}r=a-i;t=d-h;if(j===void 0){j=!r?t&lt;0?90:270:!t?r&lt;0?180:0:-Math.atan2(t,r)/Math.PI*180;g();e()}return{sa:j,xc:i,yc:h,td:a,ud:d,Wd:k,Xd:n,rd:m,sd:p,kd:r,ld:t,rc:f.Na.dc(i,h,a,d)}},tc:function(a,b,c,d,e){if(c===0||c===180)return[d,b];else if(c===90||c===270)return[a,e];else{c=Math.tan(-c*Math.PI/180);a=c*a-b;b=-1/c;d=b*d-e;e=b-c;return[(d-a)/e,(c*d-b*a)/e]}},dc:function(a,b,c,d){a=c-a;b=d-b;return Math.abs(a===0?
b:b===0?a:Math.sqrt(a*a+b*b))}};f.ea=function(){this.Gb=[];this.oc={}};f.ea.prototype={ba:function(a){var b=f.p.Ba(a),c=this.oc,d=this.Gb;if(!(b in c)){c[b]=d.length;d.push(a)}},Ha:function(a){a=f.p.Ba(a);var b=this.oc;if(a&amp;&amp;a in b){delete this.Gb[b[a]];delete b[a]}},xa:function(){for(var a=this.Gb,b=a.length;b--;)a[b]&amp;&amp;a[b]()}};f.Oa=new f.ea;f.Oa.Rd=function(){var a=this,b;if(!a.Sd){b=doc.documentElement.currentStyle.getAttribute(f.F+&quot;poll-interval&quot;)||250;(function c(){a.xa();setTimeout(c,b)})();
a.Sd=1}};(function(){function a(){f.L.xa();window.detachEvent(&quot;onunload&quot;,a);window.PIE=null}f.L=new f.ea;window.attachEvent(&quot;onunload&quot;,a);f.L.ta=function(b,c,d){b.attachEvent(c,d);this.ba(function(){b.detachEvent(c,d)})}})();f.Qa=new f.ea;f.L.ta(window,&quot;onresize&quot;,function(){f.Qa.xa()});(function(){function a(){f.mb.xa()}f.mb=new f.ea;f.L.ta(window,&quot;onscroll&quot;,a);f.Qa.ba(a)})();(function(){function a(){c=f.kb.md()}function b(){if(c){for(var d=0,e=c.length;d&lt;e;d++)f.attach(c[d]);c=0}}var c;if(f.ja&lt;9){f.L.ta(window,
&quot;onbeforeprint&quot;,a);f.L.ta(window,&quot;onafterprint&quot;,b)}})();f.lb=new f.ea;f.L.ta(doc,&quot;onmouseup&quot;,function(){f.lb.xa()});f.he=function(){function a(h){this.Y=h}var b=doc.createElement(&quot;length-calc&quot;),c=doc.body||doc.documentElement,d=b.style,e={},g=[&quot;mm&quot;,&quot;cm&quot;,&quot;in&quot;,&quot;pt&quot;,&quot;pc&quot;],j=g.length,i={};d.position=&quot;absolute&quot;;d.top=d.left=&quot;-9999px&quot;;for(c.appendChild(b);j--;){d.width=&quot;100&quot;+g[j];e[g[j]]=b.offsetWidth/100}c.removeChild(b);d.width=&quot;1em&quot;;a.prototype={Kb:/(px|em|ex|mm|cm|in|pt|pc|%)$/,ic:function(){var h=
this.Jd;if(h===void 0)h=this.Jd=parseFloat(this.Y);return h},yb:function(){var h=this.ae;if(!h)h=this.ae=(h=this.Y.match(this.Kb))&amp;&amp;h[0]||&quot;px&quot;;return h},a:function(h,k){var n=this.ic(),m=this.yb();switch(m){case &quot;px&quot;:return n;case &quot;%&quot;:return n*(typeof k===&quot;function&quot;?k():k)/100;case &quot;em&quot;:return n*this.xb(h);case &quot;ex&quot;:return n*this.xb(h)/2;default:return n*e[m]}},xb:function(h){var k=h.currentStyle.fontSize,n,m;if(k.indexOf(&quot;px&quot;)&gt;0)return parseFloat(k);else if(h.tagName in f.cc){m=this;n=h.parentNode;
return f.n(k).a(n,function(){return m.xb(n)})}else{h.appendChild(b);k=b.offsetWidth;b.parentNode===h&amp;&amp;h.removeChild(b);return k}}};f.n=function(h){return i[h]||(i[h]=new a(h))};return a}();f.Ja=function(){function a(e){this.X=e}var b=f.n(&quot;50%&quot;),c={top:1,center:1,bottom:1},d={left:1,center:1,right:1};a.prototype={zd:function(){if(!this.ac){var e=this.X,g=e.length,j=f.v,i=j.qa,h=f.n(&quot;0&quot;);i=i.na;h=[&quot;left&quot;,h,&quot;top&quot;,h];if(g===1){e.push(new j.ob(i,&quot;center&quot;));g++}if(g===2){i&amp;(e[0].k|e[1].k)&amp;&amp;e[0].d in c&amp;&amp;
e[1].d in d&amp;&amp;e.push(e.shift());if(e[0].k&amp;i)if(e[0].d===&quot;center&quot;)h[1]=b;else h[0]=e[0].d;else if(e[0].W())h[1]=f.n(e[0].d);if(e[1].k&amp;i)if(e[1].d===&quot;center&quot;)h[3]=b;else h[2]=e[1].d;else if(e[1].W())h[3]=f.n(e[1].d)}this.ac=h}return this.ac},coords:function(e,g,j){var i=this.zd(),h=i[1].a(e,g);e=i[3].a(e,j);return{x:i[0]===&quot;right&quot;?g-h:h,y:i[2]===&quot;bottom&quot;?j-e:e}}};return a}();f.Ka=function(){function a(b,c){this.h=b;this.f=c}a.prototype={a:function(b,c,d,e,g){var j=this.h,i=this.f,h=c/d;e=e/g;if(j===
&quot;contain&quot;){j=e&gt;h?c:d*e;i=e&gt;h?c/e:d}else if(j===&quot;cover&quot;){j=e&lt;h?c:d*e;i=e&lt;h?c/e:d}else if(j===&quot;auto&quot;){i=i===&quot;auto&quot;?g:i.a(b,d);j=i*e}else{j=j.a(b,c);i=i===&quot;auto&quot;?j/e:i.a(b,d)}return{h:j,f:i}}};a.Kc=new a(&quot;auto&quot;,&quot;auto&quot;);return a}();f.Ec=function(){function a(b){this.Y=b}a.prototype={Kb:/[a-z]+$/i,yb:function(){return this.ad||(this.ad=this.Y.match(this.Kb)[0].toLowerCase())},jd:function(){var b=this.Vc,c;if(b===undefined){b=this.yb();c=parseFloat(this.Y,10);b=this.Vc=b===&quot;deg&quot;?c:b===&quot;rad&quot;?c/Math.PI*180:
b===&quot;grad&quot;?c/400*360:b===&quot;turn&quot;?c*360:0}return b}};return a}();f.Jc=function(){function a(c){this.Y=c}var b={};a.Qd=/\s*rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d+|\d*\.\d+)\s*\)\s*/;a.Fb={aliceblue:&quot;F0F8FF&quot;,antiquewhite:&quot;FAEBD7&quot;,aqua:&quot;0FF&quot;,aquamarine:&quot;7FFFD4&quot;,azure:&quot;F0FFFF&quot;,beige:&quot;F5F5DC&quot;,bisque:&quot;FFE4C4&quot;,black:&quot;000&quot;,blanchedalmond:&quot;FFEBCD&quot;,blue:&quot;00F&quot;,blueviolet:&quot;8A2BE2&quot;,brown:&quot;A52A2A&quot;,burlywood:&quot;DEB887&quot;,cadetblue:&quot;5F9EA0&quot;,chartreuse:&quot;7FFF00&quot;,chocolate:&quot;D2691E&quot;,coral:&quot;FF7F50&quot;,cornflowerblue:&quot;6495ED&quot;,
cornsilk:&quot;FFF8DC&quot;,crimson:&quot;DC143C&quot;,cyan:&quot;0FF&quot;,darkblue:&quot;00008B&quot;,darkcyan:&quot;008B8B&quot;,darkgoldenrod:&quot;B8860B&quot;,darkgray:&quot;A9A9A9&quot;,darkgreen:&quot;006400&quot;,darkkhaki:&quot;BDB76B&quot;,darkmagenta:&quot;8B008B&quot;,darkolivegreen:&quot;556B2F&quot;,darkorange:&quot;FF8C00&quot;,darkorchid:&quot;9932CC&quot;,darkred:&quot;8B0000&quot;,darksalmon:&quot;E9967A&quot;,darkseagreen:&quot;8FBC8F&quot;,darkslateblue:&quot;483D8B&quot;,darkslategray:&quot;2F4F4F&quot;,darkturquoise:&quot;00CED1&quot;,darkviolet:&quot;9400D3&quot;,deeppink:&quot;FF1493&quot;,deepskyblue:&quot;00BFFF&quot;,dimgray:&quot;696969&quot;,dodgerblue:&quot;1E90FF&quot;,firebrick:&quot;B22222&quot;,floralwhite:&quot;FFFAF0&quot;,
forestgreen:&quot;228B22&quot;,fuchsia:&quot;F0F&quot;,gainsboro:&quot;DCDCDC&quot;,ghostwhite:&quot;F8F8FF&quot;,gold:&quot;FFD700&quot;,goldenrod:&quot;DAA520&quot;,gray:&quot;808080&quot;,green:&quot;008000&quot;,greenyellow:&quot;ADFF2F&quot;,honeydew:&quot;F0FFF0&quot;,hotpink:&quot;FF69B4&quot;,indianred:&quot;CD5C5C&quot;,indigo:&quot;4B0082&quot;,ivory:&quot;FFFFF0&quot;,khaki:&quot;F0E68C&quot;,lavender:&quot;E6E6FA&quot;,lavenderblush:&quot;FFF0F5&quot;,lawngreen:&quot;7CFC00&quot;,lemonchiffon:&quot;FFFACD&quot;,lightblue:&quot;ADD8E6&quot;,lightcoral:&quot;F08080&quot;,lightcyan:&quot;E0FFFF&quot;,lightgoldenrodyellow:&quot;FAFAD2&quot;,lightgreen:&quot;90EE90&quot;,lightgrey:&quot;D3D3D3&quot;,lightpink:&quot;FFB6C1&quot;,lightsalmon:&quot;FFA07A&quot;,
lightseagreen:&quot;20B2AA&quot;,lightskyblue:&quot;87CEFA&quot;,lightslategray:&quot;789&quot;,lightsteelblue:&quot;B0C4DE&quot;,lightyellow:&quot;FFFFE0&quot;,lime:&quot;0F0&quot;,limegreen:&quot;32CD32&quot;,linen:&quot;FAF0E6&quot;,magenta:&quot;F0F&quot;,maroon:&quot;800000&quot;,mediumauqamarine:&quot;66CDAA&quot;,mediumblue:&quot;0000CD&quot;,mediumorchid:&quot;BA55D3&quot;,mediumpurple:&quot;9370D8&quot;,mediumseagreen:&quot;3CB371&quot;,mediumslateblue:&quot;7B68EE&quot;,mediumspringgreen:&quot;00FA9A&quot;,mediumturquoise:&quot;48D1CC&quot;,mediumvioletred:&quot;C71585&quot;,midnightblue:&quot;191970&quot;,mintcream:&quot;F5FFFA&quot;,mistyrose:&quot;FFE4E1&quot;,moccasin:&quot;FFE4B5&quot;,navajowhite:&quot;FFDEAD&quot;,
navy:&quot;000080&quot;,oldlace:&quot;FDF5E6&quot;,olive:&quot;808000&quot;,olivedrab:&quot;688E23&quot;,orange:&quot;FFA500&quot;,orangered:&quot;FF4500&quot;,orchid:&quot;DA70D6&quot;,palegoldenrod:&quot;EEE8AA&quot;,palegreen:&quot;98FB98&quot;,paleturquoise:&quot;AFEEEE&quot;,palevioletred:&quot;D87093&quot;,papayawhip:&quot;FFEFD5&quot;,peachpuff:&quot;FFDAB9&quot;,peru:&quot;CD853F&quot;,pink:&quot;FFC0CB&quot;,plum:&quot;DDA0DD&quot;,powderblue:&quot;B0E0E6&quot;,purple:&quot;800080&quot;,red:&quot;F00&quot;,rosybrown:&quot;BC8F8F&quot;,royalblue:&quot;4169E1&quot;,saddlebrown:&quot;8B4513&quot;,salmon:&quot;FA8072&quot;,sandybrown:&quot;F4A460&quot;,seagreen:&quot;2E8B57&quot;,seashell:&quot;FFF5EE&quot;,sienna:&quot;A0522D&quot;,silver:&quot;C0C0C0&quot;,skyblue:&quot;87CEEB&quot;,
slateblue:&quot;6A5ACD&quot;,slategray:&quot;708090&quot;,snow:&quot;FFFAFA&quot;,springgreen:&quot;00FF7F&quot;,steelblue:&quot;4682B4&quot;,tan:&quot;D2B48C&quot;,teal:&quot;008080&quot;,thistle:&quot;D8BFD8&quot;,tomato:&quot;FF6347&quot;,turquoise:&quot;40E0D0&quot;,violet:&quot;EE82EE&quot;,wheat:&quot;F5DEB3&quot;,white:&quot;FFF&quot;,whitesmoke:&quot;F5F5F5&quot;,yellow:&quot;FF0&quot;,yellowgreen:&quot;9ACD32&quot;};a.prototype={parse:function(){if(!this.Ua){var c=this.Y,d;if(d=c.match(a.Qd)){this.Ua=&quot;rgb(&quot;+d[1]+&quot;,&quot;+d[2]+&quot;,&quot;+d[3]+&quot;)&quot;;this.Yb=parseFloat(d[4])}else{if((d=c.toLowerCase())in a.Fb)c=&quot;#&quot;+a.Fb[d];this.Ua=c;this.Yb=c===&quot;transparent&quot;?0:
1}}},U:function(c){this.parse();return this.Ua===&quot;currentColor&quot;?c.currentStyle.color:this.Ua},fa:function(){this.parse();return this.Yb}};f.ha=function(c){return b[c]||(b[c]=new a(c))};return a}();f.v=function(){function a(c){this.$a=c;this.ch=0;this.X=[];this.Ga=0}var b=a.qa={Ia:1,Wb:2,z:4,Lc:8,Xb:16,na:32,K:64,oa:128,pa:256,Ra:512,Tc:1024,URL:2048};a.ob=function(c,d){this.k=c;this.d=d};a.ob.prototype={Ca:function(){return this.k&amp;b.K||this.k&amp;b.oa&amp;&amp;this.d===&quot;0&quot;},W:function(){return this.Ca()||this.k&amp;
b.Ra}};a.prototype={de:/\s/,Kd:/^[\+\-]?(\d*\.)?\d+/,url:/^url\(\s*(&quot;([^&quot;]*)&quot;|'([^']*)'|([!#$%&amp;*-~]*))\s*\)/i,nc:/^\-?[_a-z][\w-]*/i,Yd:/^(&quot;([^&quot;]*)&quot;|'([^']*)')/,Bd:/^#([\da-f]{6}|[\da-f]{3})/i,be:{px:b.K,em:b.K,ex:b.K,mm:b.K,cm:b.K,&quot;in&quot;:b.K,pt:b.K,pc:b.K,deg:b.Ia,rad:b.Ia,grad:b.Ia},fd:{rgb:1,rgba:1,hsl:1,hsla:1},next:function(c){function d(p,r){p=new a.ob(p,r);if(!c){k.X.push(p);k.Ga++}return p}function e(){k.Ga++;return null}var g,j,i,h,k=this;if(this.Ga&lt;this.X.length)return this.X[this.Ga++];for(;this.de.test(this.$a.charAt(this.ch));)this.ch++;
if(this.ch&gt;=this.$a.length)return e();j=this.ch;g=this.$a.substring(this.ch);i=g.charAt(0);switch(i){case &quot;#&quot;:if(h=g.match(this.Bd)){this.ch+=h[0].length;return d(b.z,h[0])}break;case '&quot;':case &quot;'&quot;:if(h=g.match(this.Yd)){this.ch+=h[0].length;return d(b.Tc,h[2]||h[3]||&quot;&quot;)}break;case &quot;/&quot;:case &quot;,&quot;:this.ch++;return d(b.pa,i);case &quot;u&quot;:if(h=g.match(this.url)){this.ch+=h[0].length;return d(b.URL,h[2]||h[3]||h[4]||&quot;&quot;)}}if(h=g.match(this.Kd)){i=h[0];this.ch+=i.length;if(g.charAt(i.length)===&quot;%&quot;){this.ch++;
return d(b.Ra,i+&quot;%&quot;)}if(h=g.substring(i.length).match(this.nc)){i+=h[0];this.ch+=h[0].length;return d(this.be[h[0].toLowerCase()]||b.Lc,i)}return d(b.oa,i)}if(h=g.match(this.nc)){i=h[0];this.ch+=i.length;if(i.toLowerCase()in f.Jc.Fb||i===&quot;currentColor&quot;||i===&quot;transparent&quot;)return d(b.z,i);if(g.charAt(i.length)===&quot;(&quot;){this.ch++;if(i.toLowerCase()in this.fd){g=function(p){return p&amp;&amp;p.k&amp;b.oa};h=function(p){return p&amp;&amp;p.k&amp;(b.oa|b.Ra)};var n=function(p,r){return p&amp;&amp;p.d===r},m=function(){return k.next(1)};
if((i.charAt(0)===&quot;r&quot;?h(m()):g(m()))&amp;&amp;n(m(),&quot;,&quot;)&amp;&amp;h(m())&amp;&amp;n(m(),&quot;,&quot;)&amp;&amp;h(m())&amp;&amp;(i===&quot;rgb&quot;||i===&quot;hsa&quot;||n(m(),&quot;,&quot;)&amp;&amp;g(m()))&amp;&amp;n(m(),&quot;)&quot;))return d(b.z,this.$a.substring(j,this.ch));return e()}return d(b.Xb,i)}return d(b.na,i)}this.ch++;return d(b.Wb,i)},D:function(){return this.X[this.Ga-- -2]},all:function(){for(;this.next(););return this.X},ma:function(c,d){for(var e=[],g,j;g=this.next();){if(c(g)){j=true;this.D();break}e.push(g)}return d&amp;&amp;!j?null:e}};return a}();var ha=function(a){this.e=a};ha.prototype=
{Z:0,Od:function(){var a=this.qb,b;return!a||(b=this.o())&amp;&amp;(a.x!==b.x||a.y!==b.y)},Td:function(){var a=this.qb,b;return!a||(b=this.o())&amp;&amp;(a.h!==b.h||a.f!==b.f)},hc:function(){var a=this.e,b=a.getBoundingClientRect(),c=f.ja===9,d=f.O===7,e=b.right-b.left;return{x:b.left,y:b.top,h:c||d?a.offsetWidth:e,f:c||d?a.offsetHeight:b.bottom-b.top,Hd:d&amp;&amp;e?a.offsetWidth/e:1}},o:function(){return this.Z?this.Va||(this.Va=this.hc()):this.hc()},Ad:function(){return!!this.qb},cb:function(){++this.Z},hb:function(){if(!--this.Z){if(this.Va)this.qb=
this.Va;this.Va=null}}};(function(){function a(b){var c=f.p.Ba(b);return function(){if(this.Z){var d=this.$b||(this.$b={});return c in d?d[c]:(d[c]=b.call(this))}else return b.call(this)}}f.B={Z:0,ka:function(b){function c(d){this.e=d;this.Zb=this.ia()}f.p.Eb(c.prototype,f.B,b);c.$c={};return c},j:function(){var b=this.ia(),c=this.constructor.$c;return b?b in c?c[b]:(c[b]=this.la(b)):null},ia:a(function(){var b=this.e,c=this.constructor,d=b.style;b=b.currentStyle;var e=this.wa,g=this.Fa,j=c.Yc||(c.Yc=
f.F+e);c=c.Zc||(c.Zc=f.nb+g.charAt(0).toUpperCase()+g.substring(1));return d[c]||b.getAttribute(j)||d[g]||b.getAttribute(e)}),i:a(function(){return!!this.j()}),H:a(function(){var b=this.ia(),c=b!==this.Zb;this.Zb=b;return c}),va:a,cb:function(){++this.Z},hb:function(){--this.Z||delete this.$b}}})();f.Sb=f.B.ka({wa:f.F+&quot;background&quot;,Fa:f.nb+&quot;Background&quot;,cd:{scroll:1,fixed:1,local:1},fb:{&quot;repeat-x&quot;:1,&quot;repeat-y&quot;:1,repeat:1,&quot;no-repeat&quot;:1},sc:{&quot;padding-box&quot;:1,&quot;border-box&quot;:1,&quot;content-box&quot;:1},Pd:{top:1,right:1,
bottom:1,left:1,center:1},Ud:{contain:1,cover:1},eb:{Ma:&quot;backgroundClip&quot;,z:&quot;backgroundColor&quot;,da:&quot;backgroundImage&quot;,Pa:&quot;backgroundOrigin&quot;,S:&quot;backgroundPosition&quot;,T:&quot;backgroundRepeat&quot;,Sa:&quot;backgroundSize&quot;},la:function(a){function b(s){return s&amp;&amp;s.W()||s.k&amp;k&amp;&amp;s.d in t}function c(s){return s&amp;&amp;(s.W()&amp;&amp;f.n(s.d)||s.d===&quot;auto&quot;&amp;&amp;&quot;auto&quot;)}var d=this.e.currentStyle,e,g,j,i=f.v.qa,h=i.pa,k=i.na,n=i.z,m,p,r=0,t=this.Pd,v,l,q={M:[]};if(this.wb()){e=new f.v(a);for(j={};g=e.next();){m=g.k;p=g.d;if(!j.P&amp;&amp;m&amp;i.Xb&amp;&amp;p===
&quot;linear-gradient&quot;){v={ca:[],P:p};for(l={};g=e.next();){m=g.k;p=g.d;if(m&amp;i.Wb&amp;&amp;p===&quot;)&quot;){l.color&amp;&amp;v.ca.push(l);v.ca.length&gt;1&amp;&amp;f.p.Eb(j,v);break}if(m&amp;n){if(v.sa||v.zb){g=e.D();if(g.k!==h)break;e.next()}l={color:f.ha(p)};g=e.next();if(g.W())l.db=f.n(g.d);else e.D()}else if(m&amp;i.Ia&amp;&amp;!v.sa&amp;&amp;!l.color&amp;&amp;!v.ca.length)v.sa=new f.Ec(g.d);else if(b(g)&amp;&amp;!v.zb&amp;&amp;!l.color&amp;&amp;!v.ca.length){e.D();v.zb=new f.Ja(e.ma(function(s){return!b(s)},false))}else if(m&amp;h&amp;&amp;p===&quot;,&quot;){if(l.color){v.ca.push(l);l={}}}else break}}else if(!j.P&amp;&amp;
m&amp;i.URL){j.Ab=p;j.P=&quot;image&quot;}else if(b(g)&amp;&amp;!j.$){e.D();j.$=new f.Ja(e.ma(function(s){return!b(s)},false))}else if(m&amp;k)if(p in this.fb&amp;&amp;!j.bb)j.bb=p;else if(p in this.sc&amp;&amp;!j.Wa){j.Wa=p;if((g=e.next())&amp;&amp;g.k&amp;k&amp;&amp;g.d in this.sc)j.ub=g.d;else{j.ub=p;e.D()}}else if(p in this.cd&amp;&amp;!j.bc)j.bc=p;else return null;else if(m&amp;n&amp;&amp;!q.color)q.color=f.ha(p);else if(m&amp;h&amp;&amp;p===&quot;/&quot;&amp;&amp;!j.Xa&amp;&amp;j.$){g=e.next();if(g.k&amp;k&amp;&amp;g.d in this.Ud)j.Xa=new f.Ka(g.d);else if(g=c(g)){m=c(e.next());if(!m){m=g;e.D()}j.Xa=new f.Ka(g,m)}else return null}else if(m&amp;
h&amp;&amp;p===&quot;,&quot;&amp;&amp;j.P){j.Hb=a.substring(r,e.ch-1);r=e.ch;q.M.push(j);j={}}else return null}if(j.P){j.Hb=a.substring(r);q.M.push(j)}}else this.Bc(f.ja&lt;9?function(){var s=this.eb,o=d[s.S+&quot;X&quot;],u=d[s.S+&quot;Y&quot;],x=d[s.da],y=d[s.z];if(y!==&quot;transparent&quot;)q.color=f.ha(y);if(x!==&quot;none&quot;)q.M=[{P:&quot;image&quot;,Ab:(new f.v(x)).next().d,bb:d[s.T],$:new f.Ja((new f.v(o+&quot; &quot;+u)).all())}]}:function(){var s=this.eb,o=/\s*,\s*/,u=d[s.da].split(o),x=d[s.z],y,z,B,E,D,C;if(x!==&quot;transparent&quot;)q.color=f.ha(x);if((E=u.length)&amp;&amp;u[0]!==&quot;none&quot;){x=
d[s.T].split(o);y=d[s.S].split(o);z=d[s.Pa].split(o);B=d[s.Ma].split(o);s=d[s.Sa].split(o);q.M=[];for(o=0;o&lt;E;o++)if((D=u[o])&amp;&amp;D!==&quot;none&quot;){C=s[o].split(&quot; &quot;);q.M.push({Hb:D+&quot; &quot;+x[o]+&quot; &quot;+y[o]+&quot; / &quot;+s[o]+&quot; &quot;+z[o]+&quot; &quot;+B[o],P:&quot;image&quot;,Ab:(new f.v(D)).next().d,bb:x[o],$:new f.Ja((new f.v(y[o])).all()),Wa:z[o],ub:B[o],Xa:new f.Ka(C[0],C[1])})}}});return q.color||q.M[0]?q:null},Bc:function(a){var b=f.ja&gt;8,c=this.eb,d=this.e.runtimeStyle,e=d[c.da],g=d[c.z],j=d[c.T],i,h,k,n;if(e)d[c.da]=&quot;&quot;;if(g)d[c.z]=&quot;&quot;;if(j)d[c.T]=
&quot;&quot;;if(b){i=d[c.Ma];h=d[c.Pa];n=d[c.S];k=d[c.Sa];if(i)d[c.Ma]=&quot;&quot;;if(h)d[c.Pa]=&quot;&quot;;if(n)d[c.S]=&quot;&quot;;if(k)d[c.Sa]=&quot;&quot;}a=a.call(this);if(e)d[c.da]=e;if(g)d[c.z]=g;if(j)d[c.T]=j;if(b){if(i)d[c.Ma]=i;if(h)d[c.Pa]=h;if(n)d[c.S]=n;if(k)d[c.Sa]=k}return a},ia:f.B.va(function(){return this.wb()||this.Bc(function(){var a=this.e.currentStyle,b=this.eb;return a[b.z]+&quot; &quot;+a[b.da]+&quot; &quot;+a[b.T]+&quot; &quot;+a[b.S+&quot;X&quot;]+&quot; &quot;+a[b.S+&quot;Y&quot;]})}),wb:f.B.va(function(){var a=this.e;return a.style[this.Fa]||a.currentStyle.getAttribute(this.wa)}),
qc:function(){var a=0;if(f.O&lt;7){a=this.e;a=&quot;&quot;+(a.style[f.nb+&quot;PngFix&quot;]||a.currentStyle.getAttribute(f.F+&quot;png-fix&quot;))===&quot;true&quot;}return a},i:f.B.va(function(){return(this.wb()||this.qc())&amp;&amp;!!this.j()})});f.Vb=f.B.ka({wc:[&quot;Top&quot;,&quot;Right&quot;,&quot;Bottom&quot;,&quot;Left&quot;],Id:{thin:&quot;1px&quot;,medium:&quot;3px&quot;,thick:&quot;5px&quot;},la:function(){var a={},b={},c={},d=false,e=true,g=true,j=true;this.Cc(function(){for(var i=this.e.currentStyle,h=0,k,n,m,p,r,t,v;h&lt;4;h++){m=this.wc[h];v=m.charAt(0).toLowerCase();k=b[v]=i[&quot;border&quot;+m+&quot;Style&quot;];n=i[&quot;border&quot;+
m+&quot;Color&quot;];m=i[&quot;border&quot;+m+&quot;Width&quot;];if(h&gt;0){if(k!==p)g=false;if(n!==r)e=false;if(m!==t)j=false}p=k;r=n;t=m;c[v]=f.ha(n);m=a[v]=f.n(b[v]===&quot;none&quot;?&quot;0&quot;:this.Id[m]||m);if(m.a(this.e)&gt;0)d=true}});return d?{J:a,Zd:b,gd:c,ee:j,hd:e,$d:g}:null},ia:f.B.va(function(){var a=this.e,b=a.currentStyle,c;a.tagName in f.Ac&amp;&amp;a.offsetParent.currentStyle.borderCollapse===&quot;collapse&quot;||this.Cc(function(){c=b.borderWidth+&quot;|&quot;+b.borderStyle+&quot;|&quot;+b.borderColor});return c}),Cc:function(a){var b=this.e.runtimeStyle,c=b.borderWidth,
d=b.borderColor;if(c)b.borderWidth=&quot;&quot;;if(d)b.borderColor=&quot;&quot;;a=a.call(this);if(c)b.borderWidth=c;if(d)b.borderColor=d;return a}});(function(){f.jb=f.B.ka({wa:&quot;border-radius&quot;,Fa:&quot;borderRadius&quot;,la:function(b){var c=null,d,e,g,j,i=false;if(b){e=new f.v(b);var h=function(){for(var k=[],n;(g=e.next())&amp;&amp;g.W();){j=f.n(g.d);n=j.ic();if(n&lt;0)return null;if(n&gt;0)i=true;k.push(j)}return k.length&gt;0&amp;&amp;k.length&lt;5?{tl:k[0],tr:k[1]||k[0],br:k[2]||k[0],bl:k[3]||k[1]||k[0]}:null};if(b=h()){if(g){if(g.k&amp;f.v.qa.pa&amp;&amp;g.d===
&quot;/&quot;)d=h()}else d=b;if(i&amp;&amp;b&amp;&amp;d)c={x:b,y:d}}}return c}});var a=f.n(&quot;0&quot;);a={tl:a,tr:a,br:a,bl:a};f.jb.Dc={x:a,y:a}})();f.Ub=f.B.ka({wa:&quot;border-image&quot;,Fa:&quot;borderImage&quot;,fb:{stretch:1,round:1,repeat:1,space:1},la:function(a){var b=null,c,d,e,g,j,i,h=0,k=f.v.qa,n=k.na,m=k.oa,p=k.Ra;if(a){c=new f.v(a);b={};for(var r=function(l){return l&amp;&amp;l.k&amp;k.pa&amp;&amp;l.d===&quot;/&quot;},t=function(l){return l&amp;&amp;l.k&amp;n&amp;&amp;l.d===&quot;fill&quot;},v=function(){g=c.ma(function(l){return!(l.k&amp;(m|p))});if(t(c.next())&amp;&amp;!b.fill)b.fill=true;else c.D();if(r(c.next())){h++;
j=c.ma(function(l){return!l.W()&amp;&amp;!(l.k&amp;n&amp;&amp;l.d===&quot;auto&quot;)});if(r(c.next())){h++;i=c.ma(function(l){return!l.Ca()})}}else c.D()};a=c.next();){d=a.k;e=a.d;if(d&amp;(m|p)&amp;&amp;!g){c.D();v()}else if(t(a)&amp;&amp;!b.fill){b.fill=true;v()}else if(d&amp;n&amp;&amp;this.fb[e]&amp;&amp;!b.repeat){b.repeat={f:e};if(a=c.next())if(a.k&amp;n&amp;&amp;this.fb[a.d])b.repeat.Ob=a.d;else c.D()}else if(d&amp;k.URL&amp;&amp;!b.src)b.src=e;else return null}if(!b.src||!g||g.length&lt;1||g.length&gt;4||j&amp;&amp;j.length&gt;4||h===1&amp;&amp;j.length&lt;1||i&amp;&amp;i.length&gt;4||h===2&amp;&amp;i.length&lt;1)return null;if(!b.repeat)b.repeat=

=====================================================
== File: src/homepage/_site/assets/js/ie/respond.min.js
=====================================================
/*! Respond.js v1.4.2: min/max-width media query polyfill
 * Copyright 2014 Scott Jehl
 * Licensed under MIT
 * http://j.mp/respondjs */

!function(a){&quot;use strict&quot;;a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement(&quot;body&quot;),f=a.createElement(&quot;div&quot;);return f.id=&quot;mq-test-1&quot;,f.style.cssText=&quot;position:absolute;top:-100em&quot;,e.style.background=&quot;none&quot;,e.appendChild(f),function(a){return f.innerHTML='&amp;shy;&lt;style media=&quot;'+a+'&quot;&gt; #mq-test-1 { width: 42px; }&lt;/style&gt;',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){&quot;use strict&quot;;function b(){v(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject(&quot;Microsoft.XMLHTTP&quot;)}return function(){return b}}(),f=function(a,b){var c=e();c&amp;&amp;(c.open(&quot;GET&quot;,a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&amp;&amp;304!==c.status||b(c.responseText)},4!==c.readyState&amp;&amp;c.send(null))},g=function(a){return a.replace(c.regex.minmaxwh,&quot;&quot;).match(c.regex.other)};if(c.ajax=f,c.queue=d,c.unsupportedmq=g,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,urls:/(url\()['&quot;]?([^\/\)'&quot;][^:\)'&quot;]+)['&quot;]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,maxw:/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},c.mediaQueriesSupported=a.matchMedia&amp;&amp;null!==a.matchMedia(&quot;only all&quot;)&amp;&amp;a.matchMedia(&quot;only all&quot;).matches,!c.mediaQueriesSupported){var h,i,j,k=a.document,l=k.documentElement,m=[],n=[],o=[],p={},q=30,r=k.getElementsByTagName(&quot;head&quot;)[0]||l,s=k.getElementsByTagName(&quot;base&quot;)[0],t=r.getElementsByTagName(&quot;link&quot;),u=function(){var a,b=k.createElement(&quot;div&quot;),c=k.body,d=l.style.fontSize,e=c&amp;&amp;c.style.fontSize,f=!1;return b.style.cssText=&quot;position:absolute;font-size:1em;width:1em&quot;,c||(c=f=k.createElement(&quot;body&quot;),c.style.background=&quot;none&quot;),l.style.fontSize=&quot;100%&quot;,c.style.fontSize=&quot;100%&quot;,c.appendChild(b),f&amp;&amp;l.insertBefore(c,l.firstChild),a=b.offsetWidth,f?l.removeChild(c):c.removeChild(b),l.style.fontSize=d,e&amp;&amp;(c.style.fontSize=e),a=j=parseFloat(a)},v=function(b){var c=&quot;clientWidth&quot;,d=l[c],e=&quot;CSS1Compat&quot;===k.compatMode&amp;&amp;d||k.body[c]||d,f={},g=t[t.length-1],p=(new Date).getTime();if(b&amp;&amp;h&amp;&amp;q&gt;p-h)return a.clearTimeout(i),i=a.setTimeout(v,q),void 0;h=p;for(var s in m)if(m.hasOwnProperty(s)){var w=m[s],x=w.minw,y=w.maxw,z=null===x,A=null===y,B=&quot;em&quot;;x&amp;&amp;(x=parseFloat(x)*(x.indexOf(B)&gt;-1?j||u():1)),y&amp;&amp;(y=parseFloat(y)*(y.indexOf(B)&gt;-1?j||u():1)),w.hasquery&amp;&amp;(z&amp;&amp;A||!(z||e&gt;=x)||!(A||y&gt;=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(n[w.rules]))}for(var C in o)o.hasOwnProperty(C)&amp;&amp;o[C]&amp;&amp;o[C].parentNode===r&amp;&amp;r.removeChild(o[C]);o.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=k.createElement(&quot;style&quot;),F=f[D].join(&quot;\n&quot;);E.type=&quot;text/css&quot;,E.media=D,r.insertBefore(E,g.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(k.createTextNode(F)),o.push(E)}},w=function(a,b,d){var e=a.replace(c.regex.comments,&quot;&quot;).replace(c.regex.keyframes,&quot;&quot;).match(c.regex.media),f=e&amp;&amp;e.length||0;b=b.substring(0,b.lastIndexOf(&quot;/&quot;));var h=function(a){return a.replace(c.regex.urls,&quot;$1&quot;+b+&quot;$2$3&quot;)},i=!f&amp;&amp;d;b.length&amp;&amp;(b+=&quot;/&quot;),i&amp;&amp;(f=1);for(var j=0;f&gt;j;j++){var k,l,o,p;i?(k=d,n.push(h(a))):(k=e[j].match(c.regex.findStyles)&amp;&amp;RegExp.$1,n.push(RegExp.$2&amp;&amp;h(RegExp.$2))),o=k.split(&quot;,&quot;),p=o.length;for(var q=0;p&gt;q;q++)l=o[q],g(l)||m.push({media:l.split(&quot;(&quot;)[0].match(c.regex.only)&amp;&amp;RegExp.$2||&quot;all&quot;,rules:n.length-1,hasquery:l.indexOf(&quot;(&quot;)&gt;-1,minw:l.match(c.regex.minw)&amp;&amp;parseFloat(RegExp.$1)+(RegExp.$2||&quot;&quot;),maxw:l.match(c.regex.maxw)&amp;&amp;parseFloat(RegExp.$1)+(RegExp.$2||&quot;&quot;)})}v()},x=function(){if(d.length){var b=d.shift();f(b.href,function(c){w(c,b.href,b.media),p[b.href]=!0,a.setTimeout(function(){x()},0)})}},y=function(){for(var b=0;b&lt;t.length;b++){var c=t[b],e=c.href,f=c.media,g=c.rel&amp;&amp;&quot;stylesheet&quot;===c.rel.toLowerCase();e&amp;&amp;g&amp;&amp;!p[e]&amp;&amp;(c.styleSheet&amp;&amp;c.styleSheet.rawCssText?(w(c.styleSheet.rawCssText,e,f),p[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&amp;&amp;!s||e.replace(RegExp.$1,&quot;&quot;).split(&quot;/&quot;)[0]===a.location.host)&amp;&amp;(&quot;//&quot;===e.substring(0,2)&amp;&amp;(e=a.location.protocol+e),d.push({href:e,media:f})))}x()};y(),c.update=y,c.getEmValue=u,a.addEventListener?a.addEventListener(&quot;resize&quot;,b,!1):a.attachEvent&amp;&amp;a.attachEvent(&quot;onresize&quot;,b)}}(this);

=====================================================
== File: src/homepage/_site/assets/js/ie/html5shiv.js
=====================================================
/*
 HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
(function(l,f){function m(){var a=e.elements;return&quot;string&quot;==typeof a?a.split(&quot; &quot;):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&amp;&amp;!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function(&quot;h,f&quot;,&quot;return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&amp;&amp;(&quot;+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c(&quot;'+a+'&quot;)'})+&quot;);return n}&quot;)(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&amp;&amp;!j&amp;&amp;!b.hasCSS){var c,d=a;c=d.createElement(&quot;p&quot;);d=d.getElementsByTagName(&quot;head&quot;)[0]||d.documentElement;c.innerHTML=&quot;x&lt;style&gt;article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}&lt;/style&gt;&quot;;
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^&lt;|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o=&quot;_html5shiv&quot;,h=0,n={},g;(function(){try{var a=f.createElement(&quot;a&quot;);a.innerHTML=&quot;&lt;xyz&gt;&lt;/xyz&gt;&quot;;j=&quot;hidden&quot;in a;var b;if(!(b=1==a.childNodes.length)){f.createElement(&quot;a&quot;);var c=f.createDocumentFragment();b=&quot;undefined&quot;==typeof c.cloneNode||
&quot;undefined&quot;==typeof c.createDocumentFragment||&quot;undefined&quot;==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||&quot;abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video&quot;,version:&quot;3.6.2&quot;,shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:&quot;default&quot;,shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d&lt;h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);

=====================================================
== File: src/homepage/_site/assets/js/jquery.scrolly.min.js
=====================================================
/* jquery.scrolly v1.0.0-dev | (c) @ajlkn | MIT licensed */
(function(e){function u(s,o){var u,a,f;if((u=e(s))[t]==0)return n;a=u[i]()[r];switch(o.anchor){case&quot;middle&quot;:f=a-(e(window).height()-u.outerHeight())/2;break;default:case r:f=Math.max(a,0)}return typeof o[i]==&quot;function&quot;?f-=o[i]():f-=o[i],f}var t=&quot;length&quot;,n=null,r=&quot;top&quot;,i=&quot;offset&quot;,s=&quot;click.scrolly&quot;,o=e(window);e.fn.scrolly=function(i){var o,a,f,l,c=e(this);if(this[t]==0)return c;if(this[t]&gt;1){for(o=0;o&lt;this[t];o++)e(this[o]).scrolly(i);return c}l=n,f=c.attr(&quot;href&quot;);if(f.charAt(0)!=&quot;#&quot;||f[t]&lt;2)return c;a=jQuery.extend({anchor:r,easing:&quot;swing&quot;,offset:0,parent:e(&quot;body,html&quot;),pollOnce:!1,speed:1e3},i),a.pollOnce&amp;&amp;(l=u(f,a)),c.off(s).on(s,function(e){var t=l!==n?l:u(f,a);t!==n&amp;&amp;(e.preventDefault(),a.parent.stop().animate({scrollTop:t},a.speed,a.easing))})}})(jQuery);

=====================================================
== File: src/homepage/_site/assets/js/skel.min.js
=====================================================
/* skel.js v3.0.1 | (c) skel.io | MIT licensed */
var skel=function(){&quot;use strict&quot;;var t={breakpointIds:null,events:{},isInit:!1,obj:{attachments:{},breakpoints:{},head:null,states:{}},sd:&quot;/&quot;,state:null,stateHandlers:{},stateId:&quot;&quot;,vars:{},DOMReady:null,indexOf:null,isArray:null,iterate:null,matchesMedia:null,extend:function(e,n){t.iterate(n,function(i){t.isArray(n[i])?(t.isArray(e[i])||(e[i]=[]),t.extend(e[i],n[i])):&quot;object&quot;==typeof n[i]?(&quot;object&quot;!=typeof e[i]&amp;&amp;(e[i]={}),t.extend(e[i],n[i])):e[i]=n[i]})},newStyle:function(t){var e=document.createElement(&quot;style&quot;);return e.type=&quot;text/css&quot;,e.innerHTML=t,e},_canUse:null,canUse:function(e){t._canUse||(t._canUse=document.createElement(&quot;div&quot;));var n=t._canUse.style,i=e.charAt(0).toUpperCase()+e.slice(1);return e in n||&quot;Moz&quot;+i in n||&quot;Webkit&quot;+i in n||&quot;O&quot;+i in n||&quot;ms&quot;+i in n},on:function(e,n){var i=e.split(/[\s]+/);return t.iterate(i,function(e){var a=i[e];if(t.isInit){if(&quot;init&quot;==a)return void n();if(&quot;change&quot;==a)n();else{var r=a.charAt(0);if(&quot;+&quot;==r||&quot;!&quot;==r){var o=a.substring(1);if(o in t.obj.breakpoints)if(&quot;+&quot;==r&amp;&amp;t.obj.breakpoints[o].active)n();else if(&quot;!&quot;==r&amp;&amp;!t.obj.breakpoints[o].active)return void n()}}}t.events[a]||(t.events[a]=[]),t.events[a].push(n)}),t},trigger:function(e){return t.events[e]&amp;&amp;0!=t.events[e].length?(t.iterate(t.events[e],function(n){t.events[e][n]()}),t):void 0},breakpoint:function(e){return t.obj.breakpoints[e]},breakpoints:function(e){function n(t,e){this.name=this.id=t,this.media=e,this.active=!1,this.wasActive=!1}return n.prototype.matches=function(){return t.matchesMedia(this.media)},n.prototype.sync=function(){this.wasActive=this.active,this.active=this.matches()},t.iterate(e,function(i){t.obj.breakpoints[i]=new n(i,e[i])}),window.setTimeout(function(){t.poll()},0),t},addStateHandler:function(e,n){t.stateHandlers[e]=n},callStateHandler:function(e){var n=t.stateHandlers[e]();t.iterate(n,function(e){t.state.attachments.push(n[e])})},changeState:function(e){t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].sync()}),t.vars.lastStateId=t.stateId,t.stateId=e,t.breakpointIds=t.stateId===t.sd?[]:t.stateId.substring(1).split(t.sd),t.obj.states[t.stateId]?t.state=t.obj.states[t.stateId]:(t.obj.states[t.stateId]={attachments:[]},t.state=t.obj.states[t.stateId],t.iterate(t.stateHandlers,t.callStateHandler)),t.detachAll(t.state.attachments),t.attachAll(t.state.attachments),t.vars.stateId=t.stateId,t.vars.state=t.state,t.trigger(&quot;change&quot;),t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].active?t.obj.breakpoints[e].wasActive||t.trigger(&quot;+&quot;+e):t.obj.breakpoints[e].wasActive&amp;&amp;t.trigger(&quot;-&quot;+e)})},generateStateConfig:function(e,n){var i={};return t.extend(i,e),t.iterate(t.breakpointIds,function(e){t.extend(i,n[t.breakpointIds[e]])}),i},getStateId:function(){var e=&quot;&quot;;return t.iterate(t.obj.breakpoints,function(n){var i=t.obj.breakpoints[n];i.matches()&amp;&amp;(e+=t.sd+i.id)}),e},poll:function(){var e=&quot;&quot;;e=t.getStateId(),&quot;&quot;===e&amp;&amp;(e=t.sd),e!==t.stateId&amp;&amp;t.changeState(e)},_attach:null,attach:function(e){var n=t.obj.head,i=e.element;return i.parentNode&amp;&amp;i.parentNode.tagName?!1:(t._attach||(t._attach=n.firstChild),n.insertBefore(i,t._attach.nextSibling),e.permanent&amp;&amp;(t._attach=i),!0)},attachAll:function(e){var n=[];t.iterate(e,function(t){n[e[t].priority]||(n[e[t].priority]=[]),n[e[t].priority].push(e[t])}),n.reverse(),t.iterate(n,function(e){t.iterate(n[e],function(i){t.attach(n[e][i])})})},detach:function(t){var e=t.element;return t.permanent||!e.parentNode||e.parentNode&amp;&amp;!e.parentNode.tagName?!1:(e.parentNode.removeChild(e),!0)},detachAll:function(e){var n={};t.iterate(e,function(t){n[e[t].id]=!0}),t.iterate(t.obj.attachments,function(e){e in n||t.detach(t.obj.attachments[e])})},attachment:function(e){return e in t.obj.attachments?t.obj.attachments[e]:null},newAttachment:function(e,n,i,a){return t.obj.attachments[e]={id:e,element:n,priority:i,permanent:a}},init:function(){t.initMethods(),t.initVars(),t.initEvents(),t.obj.head=document.getElementsByTagName(&quot;head&quot;)[0],t.isInit=!0,t.trigger(&quot;init&quot;)},initEvents:function(){t.on(&quot;resize&quot;,function(){t.poll()}),t.on(&quot;orientationChange&quot;,function(){t.poll()}),t.DOMReady(function(){t.trigger(&quot;ready&quot;)}),window.onload&amp;&amp;t.on(&quot;load&quot;,window.onload),window.onload=function(){t.trigger(&quot;load&quot;)},window.onresize&amp;&amp;t.on(&quot;resize&quot;,window.onresize),window.onresize=function(){t.trigger(&quot;resize&quot;)},window.onorientationchange&amp;&amp;t.on(&quot;orientationChange&quot;,window.onorientationchange),window.onorientationchange=function(){t.trigger(&quot;orientationChange&quot;)}},initMethods:function(){document.addEventListener?!function(e,n){t.DOMReady=n()}(&quot;domready&quot;,function(){function t(t){for(r=1;t=n.shift();)t()}var e,n=[],i=document,a=&quot;DOMContentLoaded&quot;,r=/^loaded|^c/.test(i.readyState);return i.addEventListener(a,e=function(){i.removeEventListener(a,e),t()}),function(t){r?t():n.push(t)}}):!function(e,n){t.DOMReady=n()}(&quot;domready&quot;,function(t){function e(t){for(h=1;t=i.shift();)t()}var n,i=[],a=!1,r=document,o=r.documentElement,s=o.doScroll,c=&quot;DOMContentLoaded&quot;,d=&quot;addEventListener&quot;,u=&quot;onreadystatechange&quot;,l=&quot;readyState&quot;,f=s?/^loaded|^c/:/^loaded|c/,h=f.test(r[l]);return r[d]&amp;&amp;r[d](c,n=function(){r.removeEventListener(c,n,a),e()},a),s&amp;&amp;r.attachEvent(u,n=function(){/^c/.test(r[l])&amp;&amp;(r.detachEvent(u,n),e())}),t=s?function(e){self!=top?h?e():i.push(e):function(){try{o.doScroll(&quot;left&quot;)}catch(n){return setTimeout(function(){t(e)},50)}e()}()}:function(t){h?t():i.push(t)}}),Array.prototype.indexOf?t.indexOf=function(t,e){return t.indexOf(e)}:t.indexOf=function(t,e){if(&quot;string&quot;==typeof t)return t.indexOf(e);var n,i,a=e?e:0;if(!this)throw new TypeError;if(i=this.length,0===i||a&gt;=i)return-1;for(0&gt;a&amp;&amp;(a=i-Math.abs(a)),n=a;i&gt;n;n++)if(this[n]===t)return n;return-1},Array.isArray?t.isArray=function(t){return Array.isArray(t)}:t.isArray=function(t){return&quot;[object Array]&quot;===Object.prototype.toString.call(t)},Object.keys?t.iterate=function(t,e){if(!t)return[];var n,i=Object.keys(t);for(n=0;i[n]&amp;&amp;e(i[n],t[i[n]])!==!1;n++);}:t.iterate=function(t,e){if(!t)return[];var n;for(n in t)if(Object.prototype.hasOwnProperty.call(t,n)&amp;&amp;e(n,t[n])===!1)break},window.matchMedia?t.matchesMedia=function(t){return&quot;&quot;==t?!0:window.matchMedia(t).matches}:window.styleMedia||window.media?t.matchesMedia=function(t){if(&quot;&quot;==t)return!0;var e=window.styleMedia||window.media;return e.matchMedium(t||&quot;all&quot;)}:window.getComputedStyle?t.matchesMedia=function(t){if(&quot;&quot;==t)return!0;var e=document.createElement(&quot;style&quot;),n=document.getElementsByTagName(&quot;script&quot;)[0],i=null;e.type=&quot;text/css&quot;,e.id=&quot;matchmediajs-test&quot;,n.parentNode.insertBefore(e,n),i=&quot;getComputedStyle&quot;in window&amp;&amp;window.getComputedStyle(e,null)||e.currentStyle;var a=&quot;@media &quot;+t+&quot;{ #matchmediajs-test { width: 1px; } }&quot;;return e.styleSheet?e.styleSheet.cssText=a:e.textContent=a,&quot;1px&quot;===i.width}:t.matchesMedia=function(t){if(&quot;&quot;==t)return!0;var e,n,i,a,r={&quot;min-width&quot;:null,&quot;max-width&quot;:null},o=!1;for(i=t.split(/\s+and\s+/),e=0;e&lt;i.length;e++)n=i[e],&quot;(&quot;==n.charAt(0)&amp;&amp;(n=n.substring(1,n.length-1),a=n.split(/:\s+/),2==a.length&amp;&amp;(r[a[0].replace(/^\s+|\s+$/g,&quot;&quot;)]=parseInt(a[1]),o=!0));if(!o)return!1;var s=document.documentElement.clientWidth,c=document.documentElement.clientHeight;return null!==r[&quot;min-width&quot;]&amp;&amp;s&lt;r[&quot;min-width&quot;]||null!==r[&quot;max-width&quot;]&amp;&amp;s&gt;r[&quot;max-width&quot;]||null!==r[&quot;min-height&quot;]&amp;&amp;c&lt;r[&quot;min-height&quot;]||null!==r[&quot;max-height&quot;]&amp;&amp;c&gt;r[&quot;max-height&quot;]?!1:!0},navigator.userAgent.match(/MSIE ([0-9]+)/)&amp;&amp;RegExp.$1&lt;9&amp;&amp;(t.newStyle=function(t){var e=document.createElement(&quot;span&quot;);return e.innerHTML='&amp;nbsp;&lt;style type=&quot;text/css&quot;&gt;'+t+&quot;&lt;/style&gt;&quot;,e})},initVars:function(){var e,n,i,a=navigator.userAgent;e=&quot;other&quot;,n=0,i=[[&quot;firefox&quot;,/Firefox\/([0-9\.]+)/],[&quot;bb&quot;,/BlackBerry.+Version\/([0-9\.]+)/],[&quot;bb&quot;,/BB[0-9]+.+Version\/([0-9\.]+)/],[&quot;opera&quot;,/OPR\/([0-9\.]+)/],[&quot;opera&quot;,/Opera\/([0-9\.]+)/],[&quot;edge&quot;,/Edge\/([0-9\.]+)/],[&quot;safari&quot;,/Version\/([0-9\.]+).+Safari/],[&quot;chrome&quot;,/Chrome\/([0-9\.]+)/],[&quot;ie&quot;,/MSIE ([0-9]+)/],[&quot;ie&quot;,/Trident\/.+rv:([0-9]+)/]],t.iterate(i,function(t,i){return a.match(i[1])?(e=i[0],n=parseFloat(RegExp.$1),!1):void 0}),t.vars.browser=e,t.vars.browserVersion=n,e=&quot;other&quot;,n=0,i=[[&quot;ios&quot;,/([0-9_]+) like Mac OS X/,function(t){return t.replace(&quot;_&quot;,&quot;.&quot;).replace(&quot;_&quot;,&quot;&quot;)}],[&quot;ios&quot;,/CPU like Mac OS X/,function(t){return 0}],[&quot;wp&quot;,/Windows Phone ([0-9\.]+)/,null],[&quot;android&quot;,/Android ([0-9\.]+)/,null],[&quot;mac&quot;,/Macintosh.+Mac OS X ([0-9_]+)/,function(t){return t.replace(&quot;_&quot;,&quot;.&quot;).replace(&quot;_&quot;,&quot;&quot;)}],[&quot;windows&quot;,/Windows NT ([0-9\.]+)/,null],[&quot;bb&quot;,/BlackBerry.+Version\/([0-9\.]+)/,null],[&quot;bb&quot;,/BB[0-9]+.+Version\/([0-9\.]+)/,null]],t.iterate(i,function(t,i){return a.match(i[1])?(e=i[0],n=parseFloat(i[2]?i[2](RegExp.$1):RegExp.$1),!1):void 0}),t.vars.os=e,t.vars.osVersion=n,t.vars.IEVersion=&quot;ie&quot;==t.vars.browser?t.vars.browserVersion:99,t.vars.touch=&quot;wp&quot;==t.vars.os?navigator.msMaxTouchPoints&gt;0:!!(&quot;ontouchstart&quot;in window),t.vars.mobile=&quot;wp&quot;==t.vars.os||&quot;android&quot;==t.vars.os||&quot;ios&quot;==t.vars.os||&quot;bb&quot;==t.vars.os}};return t.init(),t}();!function(t,e){&quot;function&quot;==typeof define&amp;&amp;define.amd?define([],e):&quot;object&quot;==typeof exports?module.exports=e():t.skel=e()}(this,function(){return skel});

=====================================================
== File: src/homepage/_site/assets/js/lity.min.js
=====================================================
/*! Lity - v2.2.2 - 2016-12-14
* http://sorgalla.com/lity/
* Copyright (c) 2015-2016 Jan Sorgalla; Licensed MIT */
!function(a,b){&quot;function&quot;==typeof define&amp;&amp;define.amd?define([&quot;jquery&quot;],function(c){return b(a,c)}):&quot;object&quot;==typeof module&amp;&amp;&quot;object&quot;==typeof module.exports?module.exports=b(a,require(&quot;jquery&quot;)):a.lity=b(a,a.jQuery||a.Zepto)}(&quot;undefined&quot;!=typeof window?window:this,function(a,b){&quot;use strict&quot;;function c(a){var b=B();return N&amp;&amp;a.length?(a.one(N,b.resolve),setTimeout(b.resolve,500)):b.resolve(),b.promise()}function d(a,c,d){if(1===arguments.length)return b.extend({},a);if(&quot;string&quot;==typeof c){if(&quot;undefined&quot;==typeof d)return&quot;undefined&quot;==typeof a[c]?null:a[c];a[c]=d}else b.extend(a,c);return this}function e(a){for(var b,c=decodeURI(a.split(&quot;#&quot;)[0]).split(&quot;&amp;&quot;),d={},e=0,f=c.length;e&lt;f;e++)c[e]&amp;&amp;(b=c[e].split(&quot;=&quot;),d[b[0]]=b[1]);return d}function f(a,c){return a+(a.indexOf(&quot;?&quot;)&gt;-1?&quot;&amp;&quot;:&quot;?&quot;)+b.param(c)}function g(a,b){var c=a.indexOf(&quot;#&quot;);return-1===c?b:(c&gt;0&amp;&amp;(a=a.substr(c)),b+a)}function h(a){return b('&lt;span class=&quot;lity-error&quot;/&gt;').append(a)}function i(a,c){var d=c.opener()&amp;&amp;c.opener().data(&quot;lity-desc&quot;)||&quot;Image with no description&quot;,e=b('&lt;img src=&quot;'+a+'&quot; alt=&quot;'+d+'&quot;/&gt;'),f=B(),g=function(){f.reject(h(&quot;Failed loading image&quot;))};return e.on(&quot;load&quot;,function(){return 0===this.naturalWidth?g():void f.resolve(e)}).on(&quot;error&quot;,g),f.promise()}function j(a,c){var d,e,f;try{d=b(a)}catch(a){return!1}return!!d.length&amp;&amp;(e=b('&lt;i style=&quot;display:none !important&quot;/&gt;'),f=d.hasClass(&quot;lity-hide&quot;),c.element().one(&quot;lity:remove&quot;,function(){e.before(d).remove(),f&amp;&amp;!d.closest(&quot;.lity-content&quot;).length&amp;&amp;d.addClass(&quot;lity-hide&quot;)}),d.removeClass(&quot;lity-hide&quot;).after(e))}function k(a){var c=J.exec(a);return!!c&amp;&amp;o(g(a,f(&quot;https://www.youtube&quot;+(c[2]||&quot;&quot;)+&quot;.com/embed/&quot;+c[4],b.extend({autoplay:1},e(c[5]||&quot;&quot;)))))}function l(a){var c=K.exec(a);return!!c&amp;&amp;o(g(a,f(&quot;https://player.vimeo.com/video/&quot;+c[3],b.extend({autoplay:1},e(c[4]||&quot;&quot;)))))}function m(a){var c=M.exec(a);return!!c&amp;&amp;(0!==a.indexOf(&quot;http&quot;)&amp;&amp;(a=&quot;https:&quot;+a),o(g(a,f(&quot;https://www.facebook.com/plugins/video.php?href=&quot;+a,b.extend({autoplay:1},e(c[4]||&quot;&quot;))))))}function n(a){var b=L.exec(a);return!!b&amp;&amp;o(g(a,f(&quot;https://www.google.&quot;+b[3]+&quot;/maps?&quot;+b[6],{output:b[6].indexOf(&quot;layer=c&quot;)&gt;0?&quot;svembed&quot;:&quot;embed&quot;})))}function o(a){return'&lt;div class=&quot;lity-iframe-container&quot;&gt;&lt;iframe frameborder=&quot;0&quot; allowfullscreen src=&quot;'+a+'&quot;/&gt;&lt;/div&gt;'}function p(){return z.documentElement.clientHeight?z.documentElement.clientHeight:Math.round(A.height())}function q(a){var b=v();b&amp;&amp;(27===a.keyCode&amp;&amp;b.close(),9===a.keyCode&amp;&amp;r(a,b))}function r(a,b){var c=b.element().find(G),d=c.index(z.activeElement);a.shiftKey&amp;&amp;d&lt;=0?(c.get(c.length-1).focus(),a.preventDefault()):a.shiftKey||d!==c.length-1||(c.get(0).focus(),a.preventDefault())}function s(){b.each(D,function(a,b){b.resize()})}function t(a){1===D.unshift(a)&amp;&amp;(C.addClass(&quot;lity-active&quot;),A.on({resize:s,keydown:q})),b(&quot;body &gt; *&quot;).not(a.element()).addClass(&quot;lity-hidden&quot;).each(function(){var a=b(this);void 0===a.data(F)&amp;&amp;a.data(F,a.attr(E)||null)}).attr(E,&quot;true&quot;)}function u(a){var c;a.element().attr(E,&quot;true&quot;),1===D.length&amp;&amp;(C.removeClass(&quot;lity-active&quot;),A.off({resize:s,keydown:q})),D=b.grep(D,function(b){return a!==b}),c=D.length?D[0].element():b(&quot;.lity-hidden&quot;),c.removeClass(&quot;lity-hidden&quot;).each(function(){var a=b(this),c=a.data(F);c?a.attr(E,c):a.removeAttr(E),a.removeData(F)})}function v(){return 0===D.length?null:D[0]}function w(a,c,d,e){var f,g=&quot;inline&quot;,h=b.extend({},d);return e&amp;&amp;h[e]?(f=h[e](a,c),g=e):(b.each([&quot;inline&quot;,&quot;iframe&quot;],function(a,b){delete h[b],h[b]=d[b]}),b.each(h,function(b,d){return!d||(!(!d.test||d.test(a,c))||(f=d(a,c),!1!==f?(g=b,!1):void 0))})),{handler:g,content:f||&quot;&quot;}}function x(a,e,f,g){function h(a){k=b(a).css(&quot;max-height&quot;,p()+&quot;px&quot;),j.find(&quot;.lity-loader&quot;).each(function(){var a=b(this);c(a).always(function(){a.remove()})}),j.removeClass(&quot;lity-loading&quot;).find(&quot;.lity-content&quot;).empty().append(k),m=!0,k.trigger(&quot;lity:ready&quot;,[l])}var i,j,k,l=this,m=!1,n=!1;e=b.extend({},H,e),j=b(e.template),l.element=function(){return j},l.opener=function(){return f},l.options=b.proxy(d,l,e),l.handlers=b.proxy(d,l,e.handlers),l.resize=function(){m&amp;&amp;!n&amp;&amp;k.css(&quot;max-height&quot;,p()+&quot;px&quot;).trigger(&quot;lity:resize&quot;,[l])},l.close=function(){if(m&amp;&amp;!n){n=!0,u(l);var a=B();if(g&amp;&amp;(z.activeElement===j[0]||b.contains(j[0],z.activeElement)))try{g.focus()}catch(a){}return k.trigger(&quot;lity:close&quot;,[l]),j.removeClass(&quot;lity-opened&quot;).addClass(&quot;lity-closed&quot;),c(k.add(j)).always(function(){k.trigger(&quot;lity:remove&quot;,[l]),j.remove(),j=void 0,a.resolve()}),a.promise()}},i=w(a,l,e.handlers,e.handler),j.attr(E,&quot;false&quot;).addClass(&quot;lity-loading lity-opened lity-&quot;+i.handler).appendTo(&quot;body&quot;).focus().on(&quot;click&quot;,&quot;[data-lity-close]&quot;,function(a){b(a.target).is(&quot;[data-lity-close]&quot;)&amp;&amp;l.close()}).trigger(&quot;lity:open&quot;,[l]),t(l),b.when(i.content).always(h)}function y(a,c,d){a.preventDefault?(a.preventDefault(),d=b(this),a=d.data(&quot;lity-target&quot;)||d.attr(&quot;href&quot;)||d.attr(&quot;src&quot;)):d=b(d);var e=new x(a,b.extend({},d.data(&quot;lity-options&quot;)||d.data(&quot;lity&quot;),c),d,z.activeElement);if(!a.preventDefault)return e}var z=a.document,A=b(a),B=b.Deferred,C=b(&quot;html&quot;),D=[],E=&quot;aria-hidden&quot;,F=&quot;lity-&quot;+E,G='a[href],area[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),iframe,object,embed,[contenteditable],[tabindex]:not([tabindex^=&quot;-&quot;])',H={handler:null,handlers:{image:i,inline:j,youtube:k,vimeo:l,googlemaps:n,facebookvideo:m,iframe:o},template:'&lt;div class=&quot;lity&quot; role=&quot;dialog&quot; aria-label=&quot;Dialog Window (Press escape to close)&quot; tabindex=&quot;-1&quot;&gt;&lt;div class=&quot;lity-wrap&quot; data-lity-close role=&quot;document&quot;&gt;&lt;div class=&quot;lity-loader&quot; aria-hidden=&quot;true&quot;&gt;Loading...&lt;/div&gt;&lt;div class=&quot;lity-container&quot;&gt;&lt;div class=&quot;lity-content&quot;&gt;&lt;/div&gt;&lt;button class=&quot;lity-close&quot; type=&quot;button&quot; aria-label=&quot;Close (Press escape to close)&quot; data-lity-close&gt;&amp;times;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;'},I=/(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|bmp|ico|tiff?)(\?\S*)?$)/i,J=/(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i,K=/(vimeo(pro)?.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/,L=/((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i,M=/(facebook\.com)\/([a-z0-9_-]*)\/videos\/([0-9]*)(.*)?$/i,N=function(){var a=z.createElement(&quot;div&quot;),b={WebkitTransition:&quot;webkitTransitionEnd&quot;,MozTransition:&quot;transitionend&quot;,OTransition:&quot;oTransitionEnd otransitionend&quot;,transition:&quot;transitionend&quot;};for(var c in b)if(void 0!==a.style[c])return b[c];return!1}();return i.test=function(a){return I.test(a)},y.version=&quot;2.2.2&quot;,y.options=b.proxy(d,y,H),y.handlers=b.proxy(d,y,H.handlers),y.current=v,b(z).on(&quot;click.lity&quot;,&quot;[data-lity]&quot;,y),y});

=====================================================
== File: src/homepage/_site/assets/js/util.js
=====================================================
(function($) {

	/**
	 * Generate an indented list of links from a nav. Meant for use with panel().
	 * @return {jQuery} jQuery object.
	 */
	$.fn.navList = function() {

		var	$this = $(this);
			$a = $this.find('a'),
			b = [];

		$a.each(function() {

			var	$this = $(this),
				indent = Math.max(0, $this.parents('li').length - 1),
				href = $this.attr('href'),
				target = $this.attr('target');

			b.push(
				'&lt;a ' +
					'class=&quot;link depth-' + indent + '&quot;' +
					( (typeof target !== 'undefined' &amp;&amp; target != '') ? ' target=&quot;' + target + '&quot;' : '') +
					( (typeof href !== 'undefined' &amp;&amp; href != '') ? ' href=&quot;' + href + '&quot;' : '') +
				'&gt;' +
					'&lt;span class=&quot;indent-' + indent + '&quot;&gt;&lt;/span&gt;' +
					$this.text() +
				'&lt;/a&gt;'
			);

		});

		return b.join('');

	};

	/**
	 * Panel-ify an element.
	 * @param {object} userConfig User config.
	 * @return {jQuery} jQuery object.
	 */
	$.fn.panel = function(userConfig) {

		// No elements?
			if (this.length == 0)
				return $this;

		// Multiple elements?
			if (this.length &gt; 1) {


=====================================================
== File: src/homepage/_site/assets/js/jquery.scrollex.min.js
=====================================================
/* jquery.scrollex v0.2.1 | (c) @ajlkn | github.com/ajlkn/jquery.scrollex | MIT licensed */
!function(t){function e(t,e,n){return&quot;string&quot;==typeof t&amp;&amp;(&quot;%&quot;==t.slice(-1)?t=parseInt(t.substring(0,t.length-1))/100*e:&quot;vh&quot;==t.slice(-2)?t=parseInt(t.substring(0,t.length-2))/100*n:&quot;px&quot;==t.slice(-2)&amp;&amp;(t=parseInt(t.substring(0,t.length-2)))),t}var n=t(window),i=1,o={};n.on(&quot;scroll&quot;,function(){var e=n.scrollTop();t.map(o,function(t){window.clearTimeout(t.timeoutId),t.timeoutId=window.setTimeout(function(){t.handler(e)},t.options.delay)})}).on(&quot;load&quot;,function(){n.trigger(&quot;scroll&quot;)}),jQuery.fn.scrollex=function(l){var s=t(this);if(0==this.length)return s;if(this.length&gt;1){for(var r=0;r&lt;this.length;r++)t(this[r]).scrollex(l);return s}if(s.data(&quot;_scrollexId&quot;))return s;var a,u,h,c,p;switch(a=i++,u=jQuery.extend({top:0,bottom:0,delay:0,mode:&quot;default&quot;,enter:null,leave:null,initialize:null,terminate:null,scroll:null},l),u.mode){case&quot;top&quot;:h=function(t,e,n,i,o){return t&gt;=i&amp;&amp;o&gt;=t};break;case&quot;bottom&quot;:h=function(t,e,n,i,o){return n&gt;=i&amp;&amp;o&gt;=n};break;case&quot;middle&quot;:h=function(t,e,n,i,o){return e&gt;=i&amp;&amp;o&gt;=e};break;case&quot;top-only&quot;:h=function(t,e,n,i,o){return i&gt;=t&amp;&amp;n&gt;=i};break;case&quot;bottom-only&quot;:h=function(t,e,n,i,o){return n&gt;=o&amp;&amp;o&gt;=t};break;default:case&quot;default&quot;:h=function(t,e,n,i,o){return n&gt;=i&amp;&amp;o&gt;=t}}return c=function(t){var i,o,l,s,r,a,u=this.state,h=!1,c=this.$element.offset();i=n.height(),o=t+i/2,l=t+i,s=this.$element.outerHeight(),r=c.top+e(this.options.top,s,i),a=c.top+s-e(this.options.bottom,s,i),h=this.test(t,o,l,r,a),h!=u&amp;&amp;(this.state=h,h?this.options.enter&amp;&amp;this.options.enter.apply(this.element):this.options.leave&amp;&amp;this.options.leave.apply(this.element)),this.options.scroll&amp;&amp;this.options.scroll.apply(this.element,[(o-r)/(a-r)])},p={id:a,options:u,test:h,handler:c,state:null,element:this,$element:s,timeoutId:null},o[a]=p,s.data(&quot;_scrollexId&quot;,p.id),p.options.initialize&amp;&amp;p.options.initialize.apply(this),s},jQuery.fn.unscrollex=function(){var e=t(this);if(0==this.length)return e;if(this.length&gt;1){for(var n=0;n&lt;this.length;n++)t(this[n]).unscrollex();return e}var i,l;return(i=e.data(&quot;_scrollexId&quot;))?(l=o[i],window.clearTimeout(l.timeoutId),delete o[i],e.removeData(&quot;_scrollexId&quot;),l.options.terminate&amp;&amp;l.options.terminate.apply(this),e):e}}(jQuery);

=====================================================
== File: src/homepage-docker/Dockerfile
=====================================================
FROM ruby:2.6.8-buster

RUN apt-get update \
  &amp;&amp; apt-get install -y \
    nodejs \
    python-pygments \
  &amp;&amp; apt-get clean \
  &amp;&amp; rm -rf /var/lib/apt/lists/

RUN gem install \
  github-pages \
  jekyll \
  jekyll-feed \
  jekyll-redirect-from \
  jekyll-seo-tag \
  kramdown \
  rdiscount \
  rouge

# Copy the script
COPY compile.sh /root/compile.sh

# Define the entrypoint
WORKDIR /james-project
ENTRYPOINT [&quot;/root/compile.sh&quot;]

=====================================================
== File: src/homepage-docker/compile.sh
=====================================================
#!/bin/sh -e
#

printUsage() {
   echo &quot;Usage : &quot;
   echo &quot;./compile.sh SHA1&quot;
   echo &quot;    SHA1: SHA1 to build (optional)&quot;
   exit 1
}

ORIGIN=/origin
DESTINATION=/destination

for arg in &quot;$@&quot;
do
   case $arg in
      -*)
         echo &quot;Invalid option: -$OPTARG&quot;
         printUsage
         ;;
      *)
         if ! [ -z &quot;$1&quot; ]; then
            SHA1=$1
         fi
         ;;
   esac
   if [ &quot;0&quot; -lt &quot;$#&quot; ]; then
      shift
   fi
done

if [ -z &quot;$SHA1&quot; ]; then
   SHA1=master
fi

# Sources retrieval
git clone $ORIGIN/.
git checkout $SHA1

# Compilation /james-project/src/jekyll/_site

jekyll build --source src/homepage --destination $DESTINATION


=====================================================
== File: src/site-docker/Dockerfile
=====================================================
# Build James
#
# VERSION	1.0

FROM eclipse-temurin:11-jdk-focal

# Install git
RUN apt-get update
RUN apt-get install -y git wget unzip

# Install Maven
WORKDIR /root
RUN wget https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
RUN tar -xvf apache-maven-3.6.3-bin.tar.gz
RUN ln -s /root/apache-maven-3.6.3/bin/mvn /usr/bin/mvn

# Copy the script
COPY compile.sh /root/compile.sh

# Define the entrypoint
WORKDIR /james-project
ENTRYPOINT [&quot;/root/compile.sh&quot;]

=====================================================
== File: src/site-docker/compile.sh
=====================================================
#!/bin/sh -e
#

printUsage() {
   echo &quot;Usage : &quot;
   echo &quot;./compile.sh SHA1&quot;
   echo &quot;    SHA1: SHA1 to build (optional)&quot;
   exit 1
}

ORIGIN=/origin
DESTINATION=/destination

for arg in &quot;$@&quot;
do
   case $arg in
      -*)
         echo &quot;Invalid option: -$OPTARG&quot;
         printUsage
         ;;
      *)
         if ! [ -z &quot;$1&quot; ]; then
            SHA1=$1
         fi
         ;;
   esac
   if [ &quot;0&quot; -lt &quot;$#&quot; ]; then
      shift
   fi
done

if [ -z &quot;$SHA1&quot; ]; then
   SHA1=master
fi

# Sources retrieval
git clone $ORIGIN/.
git checkout $SHA1

# Compilation

export MAVEN_OPTS=&quot;-Xmx7168m -Xms2048m -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit&quot;

mvn clean install -DskipTests
mvn site:site -Dmaven.javadoc.skip=true -DskipTests -pl .,mpt/core
mkdir /tmp/website-generation
mvn site:stage -DstagingDirectory=/tmp/website-generation -pl .,mpt/core

cp -r /tmp/website-generation/* $DESTINATION/

=====================================================
== File: src/adr/0026-removing-configured-additional-mailboxListeners.md
=====================================================
# 26. Removing a configured additional MailboxListener

Date: 2020-04-03

## Status

Accepted (lazy consensus)

Not implemented yet.

Superseded by [35. Distributed Mailbox Listener Configuration](0035-distributed-listeners-configuration.md)

## Context

James enables a user to register additional mailbox listeners.

The distributed James server is handling mailbox event processing (mailboxListener execution) using a RabbitMQ work-queue
per listener.

The distributed James server then declares a queue upon start for each one of these user registered listeners, that it
binds to the main event exchange. 

More information about this component, and its distributed, RabbitMQ based implementation, can be found in 
[ADR 0036](0037-eventbus.md).

If the user unconfigures the listener, the queue and the binding are still present but not consumed. This results in 
unbounded queue growth eventually causing RabbitMQ resource exhaustion and failure.

## Vocabulary

A **required group** is a group configured within James additional mailbox listener or statically binded via Guice. We 
should have a queue for that mailbox listener binded to the main exchange.

A **registered group** is a group whose queue exists in RabbitMQ and is bound to the exchange, independently of its James 
usage. If it is required, a consumer will consume the queue. Otherwise the queue might grow unbounded.

## Decision

We need a clear consensus and auditability across the James cluster about **required groups** (and their changes). Thus 
Event sourcing will maintain an aggregate tracking **required groups** (and their changes). Audit will be enabled by 
adding host and date information upon changes. A subscriber will perform changes (binds and unbinds) in registered groups 
following the changes of the aggregate.

Event sourcing is desirable as it allows:
 - Detecting previously removed MailboxListener upon start
 - Audit of unbind decisions
 - Enables writing more complex business rules in the future

The event sourcing system will have the following command:


=====================================================
== File: src/adr/0032-distributed-mail-queue-cleanup.md
=====================================================
# 32. Distributed Mail Queue Cleanup

Date: 2020-04-13

## Status

Accepted (lazy consensus) and implemented

## Context

Read [Distributed Mail Queue](0031-distributed-mail-queue.md) for full context.

**enqueuedMailsV3** and **deletedMailsV2** is never cleaned up and the corresponding blobs are always referenced. This is not
ideal both from a privacy and space storage costs point of view.

Note that **enqueuedMailsV3** and **deletedMailsV2** rely on timeWindowCompactionStrategy.

## Decision

Add a new `contentStart` table referencing the point in time from which a given mailQueue holds data, for each mail queue.

The values contained between `contentStart` and `browseStart` can safely be deleted.

We can perform this cleanup upon `browseStartUpdate`: once finished we can browse then delete content of **enqueuedMailsV3**
and **deletedMailsV2** contained between `contentStart` and the new `browseStart` then we can safely set `contentStart` 
to the new `browseStart`.

Content before `browseStart` can safely be considered deletable, and is applicatively no longer exposed. We don't need an
additional grace period mechanism for `contentStart`.

Failing cleanup will lead to the content being eventually updated upon next `browseStart` update.

We will furthermore delete blobStore content upon dequeue, also when the mail had been deleted or purged via MailQueue
management APIs.

## Consequences

All Cassandra SSTable before `browseStart` can safely be dropped as part of the timeWindowCompactionStrategy.

Updating browse start will then be two times more expensive as we need to unreference passed slices.

Eventually this will allow reclaiming Cassandra disk space and enforce mail privacy by removing dandling metadata.

## Alternative

A [proposal](https://github.com/linagora/james-project/pull/3291#pullrequestreview-393501339) was made to piggy back 
cleanup upon dequeue/delete operations. The dequeuer/deleter then directly removes the related metadata from 
`enqueuedMailsV3` and `deletedMailsV2`. This simpler design however have several flaws:

 - if the cleanup fails for any reason then it cannot be retried in the future. There will be no way of cleaning up the 

=====================================================
== File: src/adr/0007-distributed-task-cancellation.md
=====================================================
# 7. Distributed Task cancellation

Date: 2019-10-02

## Status

Accepted (lazy consensus) &amp; implemented

## Context

A `Task` could be run on any node of the cluster. To interrupt it we need to notify all nodes of the cancel request.

## Decision

* We will add an EventHandler to broadcast the `CancelRequested` event to all the workers listening on a RabbitMQ broadcasting exchange.

* The `TaskManager` should register to the exchange and will apply `cancel` on the `TaskManagerWorker` if the `Task` is waiting or in progress on it.

## Consequences

* The task manager's event system should be bound to the RabbitMQ exchange which publish the `TerminationEvent`s
 
## References

* [JIRA ticket](https://issues.apache.org/jira/projects/JAMES/issues/JAMES-2813)

=====================================================
== File: src/adr/0043-avoid-elasticsearch-on-critical-reads.md
=====================================================
# 43. Avoid ElasticSearch on critical reads

Date: 2020-11-11

## Status

Accepted (lazy consensus) &amp; implemented

Scope: Distributed James

## Context

A user willing to use a webmail powered by the JMAP protocol will end up doing the following operations:
 - `Mailbox/get` to retrieve the mailboxes. This call is resolved against metadata stored in Cassandra.
 - `Email/query` to retrieve the list of emails. This call is nowadays resolved on ElasticSearch for Email search after
 a right resolution pass against Cassandra.
 - `Email/get` to retrieve various levels of details. Depending on requested properties, this is either
 retrieved from Cassandra alone or from ObjectStorage.

So, ElasticSearch is queried on every JMAP interaction for listing emails. Administrators thus need to enforce availability and good performance
for this component.

Relying on more services for every read also harms our resiliency as ElasticSearch outages have major impacts.

Also we should mention our ElasticSearch implementation in Distributed James suffers the following flaws:
 - Updates of flags lead to updates of the all Email object, leading to sparse segments
 - We currently rely on scrolling for JMAP (in order to ensure messageId uniqueness in the response while respecting limit &amp; position)
 - We noticed some very slow traces against ElasticSearch, even for simple queries.

Regarding Distributed James data-stores responsibilities:
 - Cassandra is the source of truth for metadata, its storage needs to be adapted to known access patterns.
 - ElasticSearch allows resolution of arbitrary queries, and performs full text search.

## Decision

Provide an optional view for most common `Email/query` requests both on Draft and RFC-8621 implementations.
This includes filters and sorts on 'sentAt'.

This view will be stored into Cassandra, and updated asynchronously via a MailboxListener.

## Consequences

A migration task will be provided for new adopters.

Administrators would be offered a configuration option to turn this view on and off as needed.

If enabled, given clients following well defined Email/query requests, administrators would no longer need
to ensure high availability and good performances for ElasticSearch to ensure availability of basic usages
(mailbox content listing).


=====================================================
== File: src/adr/0068-mutualize-cassandra-storge-for-quota.md
=====================================================
# 68. Mutualize Cassandra storage for Quota

Date: 2023-08-18

## Status

Accepted (lazy consensus).

Implemented.

## Context

One generic threat is resource abuse. Meaning a user uses an unfair amount of resources.

Similarily resource limitation is a way to decrease operating costs.

Quota, standardized in IMAP via [RFC-9208](https://www.rfc-editor.org/rfc/rfc9208.html) and in JMAP via
[RFC-9425](https://datatracker.ietf.org/doc/rfc9425/) are a mechanism designed to keep track of
user current usage of the resource and match it against the stored limit.

Resource limitation is a broad use case that we might want to better enforce in Apache James. This is especially
important when operating in SaaS mode, and actual users might be badly intentionned. See
[ADR-67 Quota for JMAP uploads](0067-quota-for-jmap-uploads.md).

As such, there is duplication, especially at the storage layers. Similar features might benefit from mutualized storage.

Especially, it is worth mentionning that Cassandra tables do not come for free: we have a strong incentive to reduce their count.
See [The Last Pickle blog post on this topic](https://thelastpickle.com/blog/2020/11/25/impacts-of-many-tables-on-cassandra.html).

In particular (quote from the above article):

```
If some tables share the same columns, it could be interesting to merge them into a single one, 
adding a column to the partition key to distinguish data belonging to different tables.
```

## Decision

Add Cassandra storage helpers, exposing a generic interface for Cassandra quota implementation of various services to mutualize their
storage. This relies on a part of the primary key allowing to distinguish the component.

![Architecture diagram for quota related features](img/adr-68-architecture-diagram.png)

The helper will consist of 2 tables:
- One composed of counters to track current value
- One composed of regular `long` to track limits

(one can not mix counters and regular values in the same table in Cassandra).

Port exising Cassandra implementations of quota for various services to use those helpers. Namely the Cassandra mailbox, Sieve storage. Use those

=====================================================
== File: src/adr/0066-modular-user-data-deletion.md
=====================================================
# 66. Deleting user data

Date: 2023-05-11

## Status

Accepted (lazy consensus).

Implemented.

## Context

Regulation like European GDPR involves being able to delete all user data upon requests. Currently there exist some APIs
for deleting some data relative for the users but the overall process is complex, requires a good knowlege of James data structures.

The data is scattered across the database and some sensible items might not be deletable.

## Decision

Define a single endpoint to delete all data relative to a user.

James being modular, we decided to form it under a webadmin task with a modular design.

Each feature storing user data would then implement `UserDeletionTaskStep`.

This modular design for migration steps could help developers easier to manage/test each step, and help other tailor 
James servers can implement their own steps as well.

Today, implemented deletion steps are:

- `RecipientRewriteTableUserDeletionTaskStep`: deletes all rewriting rules related to this user.
- `FilterUserDeletionTaskStep`: deletes all filters belonging to the user.
- `DelegationUserDeletionTaskStep`: deletes all delegations from / to the user.
- `MailboxUserDeletionTaskStep`: deletes mailboxes of this user, all ACLs of this user, as well as his subscriptions.
- `WebPushUserDeletionTaskStep`: deletes push data registered for this user.
- `IdentityUserDeletionTaskStep`: deletes identities registered for this user.
- `VacationUserDeletionTaskStep`: deletes vacations registered for this user.


We introduce `fromStep` query parameter that allows skipping previous steps, allowing the operator to resume the user deletion from a failed step.
This option could ease operators in case the data migration fails in the middle.

## Consequences

- Makes it easier to claim GDPR compliance on top of James.
- Modular design for deleting users is extension friendly for tailor James servers.

## Alternatives

Only deleting the user from the UsersRepository only &quot;disable&quot; the user without affecting the underlying data.

=====================================================
== File: src/adr/0039-distributed-blob-garbage-collector.md
=====================================================
# 39. Distributed blob garbage collector

Date: 2020-02-18

## Status

Proposed, not implemented yet.

Work had been started on this topic.

An alternative is proposed in [Deduplicated blobs GC with bloom filters](0049-deduplicated-blobs-gs-with-bloom-filters.md)
and implemented.

## Context

The body, headers, attachments of the mails are stored as blobs in a blob store.
In order to save space in those stores, those blobs are de-duplicated using a hash of their content.
To attain that the current blob store will read the content of the blob before saving it, and generate its id based on
a hash of this content. This way two blobs with the same content will share the same id and thus be saved only once.
This makes the safe deletion of one of those blobs a non trivial problem as we can't delete one blob without ensuring
that all references to it are themselves deleted. For example if two messages share the same blob, when we delete
one message there is at the time being no way to tell if the blob is still referenced by another message.

## Decision

To address this issue, we propose to implement a distributed blob garbage collector built upon the previously developed
Distributed Task Manager.
The de-duplicating blob store will keep track of the references pointing toward a blob in a `References` table.
It will also keep track of the deletion requests for a blob in a `Deletions` table.
When the garbage collector algorithm runs it will fetch from the `Deletions` table the blobs considered to be effectively deleted,
and will check in the `References` table if there are still some references to them. If there is no more reference to a blob,
it will be effectively deleted from the blob store.

To avoid concurrency issues, where we could garbage collect a blob at the same time a new reference to it appear,
a `reference generation` notion will be added. The de-duplicating id of the blobs which before where constructed
using only the hash of their content,  will now include this `reference generation` too.
At a given interval a new `reference generation` will be emitted, since then all new blobs will point to this new generation.

So a `garbage collection iteration` will run only on the `reference generation` `n-2` to avoid concurrency issues.

The switch of generation will be triggered by a task running on the distributed task manager. This task will
emit an event into the event sourcing system to increment the `reference generation`.


## Alternatives

Not de-duplicating the blobs' content, this simple approach which involves storing the same
blob a lot of times can in some scenario be really slow and costly. Albeit it can in some case be preferred for the sake of
simplicity, data security...


=====================================================
== File: src/adr/0030-separate-attachment-content-and-metadata.md
=====================================================
# 30. Separate attachment content and metadata

Date: 2020-04-13

## Status

Accepted (lazy consensus) &amp; implemented

## Context

Some mailbox implementations of James store already parsed attachments for faster retrieval.

This attachment storage capabilities are required for two features:

 - JMAP attachment download
 - JMAP message search &quot;attachment content&quot; criteria
 
Only Memory and Cassandra backends can be relied upon as a JMAP backend.

Other protocols relies on dynamic EML parsing to expose message subparts (IMAP)

Here are the POJOs related to these attachments:

 - **Attachment** : holds an attachmentId, the attachment content, as well as the content type
 - **MessageAttachment** : composes an attachment with its disposition within a message (cid, inline and name)
 - **Message** exposes its list of MessageAttachment when it is read with FetchType Full.
 - **Blob** represents some downloadable content, and can be either an attachment or a message. Blob has a byte array 
 payload too.
 
The following classes work with the aforementioned POJOs:
 
 - **AttachmentMapper** and **AttachmentManager** are responsible of storing and retrieving an attachment content.
 - **BlobManager** is used by JMAP to allow blob downloads.
 - Mailbox search exposes attachment content related criteria. These criteria are used by the JMAP protocol.

This organisation causes attachment content to be loaded every time a message is fully read (which happens for instance
when you open a message using JMAP) despite the fact that it is not needed, as attachments are downloadable through a 
separate JMAP endpoint, their content is not attached to the JMAP message JSON.

Also, the content being loaded &quot;at once&quot;, we allocate memory space to store the whole attachment, which is sub-optimal. We
want to keep the consumed memory low per-message because a given server should be able to handle a high number of messages 
at a given time.

To be noted that JPA and maildir mailbox implementations do not support attachment storage. To retrieve attachments of a 
message, these implementations parse the messages to extract their attachments.

Cassandra mailbox prior schema version 4 stored attachment and its metadata in the same table, but from version 5 relies 
on the blobStore to store the attachment content.

## Decision

=====================================================
== File: src/adr/0055-rspamd-spam-filtering.md
=====================================================
# 55. RSPAMD

Date: 2022-08-10

## Status

Accepted (lazy consensus).

Implemented. 

## Context

In order to detect spam, James provide 3 mechanisms: 

- SMTP Hook: decide to reject or not before spooling on the SMTP level
- Mailet: custom the mailet pipeline for changing the mail processing when detect spam mail.
- Mailbox listener:  based on user action, eg: move in/out the message to Inbox/Spam mailbox, then decide to report spam or not to separate Spam filtering system.

For basic, we can base on username, DSN filter, domains, IP... for configuring black or grey list.
If we want to analyse deeper in each message content, we need a more complex system.
Currently, James is integrated with [SpamAssassin](https://spamassassin.apache.org/) to tackle this problem.
We found it hard to operate SpamAssassin, and we had a performance issue.

For more selection, James's repository provides the Rspamd extension, which provides the same way as SpamAssassin but another system - [Rspamd](https://github.com/rspamd/rspamd)

A quick introduction about Rspamd:

```
Rspamd is an advanced spam filtering system and email processing framework that allows evaluation of messages by a number of rules including regular expressions, statistical analysis and custom services such as URL black lists. Each message is analysed by Rspamd and given a verdict that might be used by MTA for further processing (e.g. to reject a message, or add a special header indicating spam) along with other information, such as possible DKIM signature or modifications suggested for a message.

Rspamd can act as a Milter allowing direct interaction with popular MTA systems, such as Postfix or Sendmail.

Rspamd is designed to process hundreds of messages per second simultaneously, and provides a number of useful features including a comprehensive Lua API that allows access to messages processing in various aspects as well as asynchronous network API to access external resources, such as DNS, HTTP or even generic TCP/UDP services.
```

## Decision 

Set up a new maven project dedicated to rspamd extension. This allows to be embedded in a James server as a soft dependency
using the external-jar loading mechanism. With this way, the extension could be dropped in one's James installation, and not a runtime dependency.

Based on James' support for custom mailets, listeners, web admin routes, Rspamd extension can be done via:

- `RspamdScanner` mailet: with each mail income, this mailet will query to Rspamd for getting a spam or ham result, then append new headers to the mail with status/flag spam.
By setting up with `IsMarkedAsSpam` matcher, the mail will be rejected or not.
This mailet will be configured in [mailetcontainer.xml](/server/apps/distributed-app/sample-configuration/mailetcontainer.xml).

- Web admin route: to create feeding ham/spam messages task (batch mechanism). It helps spam classify learning.

- `RspamdListener`: the listener will handle mailbox events, based on `MessageMoveEvent`, `MailboxEvents.Added` to detect if the mail is spam or ham, then report to Rspamd,
enrich data to Rspamd, thus we will get more exact results in the next query.

=====================================================
== File: src/adr/0044-against-the-use-of-cassandra-lightweight-transactions.md
=====================================================
# 44. Against the use of Lightweight Transaction in Cassandra code base

Date: 2020-11-11

## Status

Accepted (lazy consensus).

Scope: Distributed James

Implemented.

## Context

As any kind of server James needs to provide some level of consistencies.

Strong consistency can be achieved with Cassandra by relying on LightWeight transactions. This enables
optimistic transactions on a single partition key.

Under the hood, Cassandra relies on the PAXOS algorithm to achieve consensus across replica allowing us
to achieve linearizable consistency at the entry level. To do so, Cassandra tracks consensus in a system.paxos
table. This `system.paxos` table needs to be checked upon reads as well in order to ensure the latest state of the ongoing
consensus is known. This can be achieved by using the SERIAL consistency level.

Experiments on a distributed James cluster (4 James nodes, having 4 CPU and 8 GB of RAM each, and a 3 node Cassandra 
cluster of 32 GB of RAM, 8 CPUs, and SSD disks) demonstrated that the system.paxos table was by far the most read 
and compacted table (ratio 5). 

The table triggering the most reads to the `system.paxos` table was the `acl` table. Deactivating LWT on this table alone
(lightweight transactions &amp; SERIAL consistency level) enabled an instant 80% throughput, latencies reductions
as well as softer degradations when load breaking point is exceeded.

## Decision

Rely on `event sourcing` to maintain a projection of ACLs that do not rely on LWT or SERIAL consistency level. 

Event sourcing is thus responsible for handling concurrency and race conditions as well as governing denormalization
for ACLs. It can be used as a source of truth to re-build ACL projections. 

Note that the ACL projection tables can end up being out of synchronization from the aggregate but we still have a 
non-questionable source of truth handled via event sourcing.

## Consequences

We expect a better load handling, better response time, and cheaper operation costs for Distributed James while not
compromising the data safety of ACL operations.

ACL updates being a rare operation, we do not expect significant degradation of write performance by relying on 
`eventSourcing`.


=====================================================
== File: src/adr/0050-jmap-web-push.md
=====================================================
# 50. Implement web push for JMAP

Date: 2021-10-18

## Status

Accepted (lazy consensus).

Implemented.

## Context

**Notification for newly received emails** is a common feature of modern mail applications. Furthermore,
**real time** updates across devices are a common feature. We wish to provide support for this on top
of Apache James JMAP implementation for a large variety of devices.

Dealing with mobile devices yield a unique set of challenges at the protocol level, including 
low bandwidth connection, long latencies, and the need to save battery. As such, mobile devices 
operating systems tend to limit background connections for applications. Thus, in order to receive
notifications when the application is running on the background, one cannot rely on 
[ADR 0047](0047-jmap-push-over-websockets.md) (JMAP websocket push) - as it would imply 
the application maintaining a persistent connection to the server, which is battery/network
consuming.

As such, [RFC-8620 section 7.2](https://jmap.io/spec-core.html#pushsubscription) `JMAP specification for web push`
introduces the use of [RFC-8030](https://datatracker.ietf.org/doc/html/rfc8030) `Generic Event Delivery Using HTTP Push`
using an intermediate push server: a Push Gateway is used by the device to multiplex all push of all applications on a 
single connection. The device then register the URL of its push gateway on the application server (here JMAP server) for
it to forward `StateChange` events to the push gateway.

## Decision

Implement [RFC-8620 section 7.2](https://jmap.io/spec-core.html#pushsubscription) `JMAP specification for web push`.

We will store StateChanges, provide a Cassandra implementation of this storage for the Distributed application.

We will implement a PushClient based on reactor-netty to send events to the push gateway.

We will rely on a Group listener plugged on the JMAP event bus to handle the web push - See 
[ADR 37: Event bus](0037-eventbus.md).

We will implement the `PushSubscription/get` and `PushSubscription/set` JMAP methods.

We will also implement the verification code mechanism (a first round-trip to verify the push gateway works well).

We also decided to allow a single push subscription per devideId (which includes device and APP identifier...)

## Consequences

The notification traffic transits by some third party infrastructure which can both be a security and privacy risk. 

=====================================================
== File: src/adr/0002-make-taskmanager-distributed.md
=====================================================
# 2. Make TaskManager Distributed

Date: 2019-10-02

## Status

Accepted (lazy consensus) &amp; implemented

## Context

In order to have a distributed version of James we need to have an homogeneous way to deal with `Task`.

Currently, every James nodes of a cluster have their own instance of `TaskManager` and they have no knowledge of others, making it impossible to orchestrate task execution at the cluster level.
Tasks are scheduled and ran on the same node they are scheduled.

We are also unable to list or access to the details of all the `Task`s of a cluster.

## Decision

Create a distribution-aware implementation of `TaskManager`.

## Consequences

 * Split the `TaskManager` part dealing with the coordination (`Task` management and view) and the `Task` execution (located in `TaskManagerWorker`)
 * The distributed `TaskManager` will rely on RabbitMQ to coordinate and the event system to synchronize states
 
## References

* [JIRA ticket](https://issues.apache.org/jira/projects/JAMES/issues/JAMES-2813)

=====================================================
== File: src/adr/0012-jmap-partial-reads.md
=====================================================
# 12. Projections for JMAP Messages

Date: 2019-10-09

## Status

Accepted (lazy consensus) &amp; implemented

## Context

JMAP core RFC8620 requires that the server responds only properties requested by the client.

James currently computes all of the properties regardless of their cost, and if it had been asked by the client.

Clearly we can save some latencies and resources by avoiding reading/computing expensive properties that had not been explicitly requested by the client.

## Decision

Introduce two new datastructures representing JMAP messages:
 - One with only metadata
 - One with metadata + headers

Given the properties requested by the client, the most appropriate message datastructure will be computed, on top of 
existing message storage APIs that should remain unchanged.

Some performance tests will be run in order to evaluate the improvements.

## Consequences

GetMessages with a limited set of requested properties no longer result necessarily in full database message read. We
thus have a significant improvement, for instance when only metadata are requested.

Given the following scenario played by 5000 users per hour (constant rate)
 - Authenticate
 - List mailboxes
 - List messages in one of their mailboxes
 - Get 10 times the mailboxIds and keywords of the given messages

We went from:
 - A 20% failure and timeout rate before this change to no failure
 - Mean time for GetMessages went from 27 159 ms to 27 ms (1000 time improvment), for all operation from
 27 591 ms to 60 ms (460 time improvment)
 - P99 is a metric that did not make sense because the initial simulation exceeded Gatling (the performance measuring tool 
 we use) timeout (60s) at the p50 percentile. After this proposal p99 for the entire scenario is of 1 383 ms

## References

 - /get method: https://tools.ietf.org/html/rfc8620#section-5.1
 - [JIRA](https://issues.apache.org/jira/browse/JAMES-2919)
 * [PR discussing this ADR](https://github.com/apache/james-project/pull/170)

=====================================================
== File: src/adr/0038-distributed-eventbus.md
=====================================================
# 38. Distributed Event bus

Date: 2020-05-25

## Status

Accepted (lazy consensus) &amp; implemented

## Context

Read [Event Bus ADR](0037-eventbus.md) for context.

Given several James servers, we need them to share a common EventBus.

This:
 - Ensures a better load balancing for `group mailbox listners`.
 - Is required for correctness of notifications (like IMAP IDLE).

## Decision

Provide a distributed implementation of the EventBus leveraging RabbitMQ.

Events are emitted to a single Exchange.

Each group will have a corresponding queue, bound to the main exchange, with a default routing key. Each eventBus
will consume this queue and execute the relevant listener, ensuring at least once execution at the cluster level.

Retries are managed via a dedicated exchange for each group: as we need to count retries, the message headers need to 
be altered and we cannot rely on rabbitMQ build in retries. Each time the execution fails locally, a new event is emitted 
via the dedicated exchange, and the original event is acknowledged.

Each eventBus will have a dedicated exclusive queue, bound to the main exchange with the `registrationKeys` used by local 
notification mailboxListeners (to only receive the corresponding subset of events). Errors are not retried for 
notifications, failures are not persisted within `DeadLetter`, achieving at most once event delivery.

## Related ADRs

The implementation of the the distributed EventBus suffers from the following flows:

 - [Removing a configured additional MailboxListener](0026-removing-configured-additional-mailboxListeners.md)
 - [Distributed Mailbox Listeners Configuration](0035-distributed-listeners-configuration.md) also covers more in details
 topology changes and supersedes ADR 0026. 
 
The following enhancement have furthermore been contributed:

 - [EventBus error handling upon dispatch](0027-eventBus-error-handling-upon-dispatch.md)

## References

* [JIRA 1](https://issues.apache.org/jira/browse/MAILBOX-367)

=====================================================
== File: src/adr/0031-distributed-mail-queue.md
=====================================================
# 31. Distributed Mail Queue

Date: 2020-04-13

## Status

Accepted (lazy consensus) &amp; implemented

## Context

MailQueue is a central component of SMTP infrastructure allowing asynchronous mail processing. This enables a short 
SMTP reply time despite a potentially longer mail processing time. It also works as a buffer during SMTP peak workload
to not overload a server. 

Furthermore, when used as a Mail Exchange server (MX), the ability to add delays to be observed before dequeing elements
allows, among others:

 - Delaying retries upon MX delivery failure to a remote site.
 - Throttling, which could be helpful for not being considered a spammer.

A mailqueue also enables advanced administration operations like traffic review, discarding emails, resetting wait 
delays, purging the queue, etc.

Spring implementation and non distributed implementations rely on an embedded ActiveMQ to implement the MailQueue. 
Emails are being stored in a local file system. An administrator wishing to administrate the mailQueue will thus need 
to interact with all its James servers, which is not friendly in a distributed setup.

Distributed James relies on the following third party softwares (among other):

 - **RabbitMQ** for messaging. Good at holding a queue, however some advanced administrative operations can't be 
implemented with this component alone. This is the case for `browse`, `getSize` and `arbitrary mail removal`.
 - **Cassandra** is the metadata database. Due to **tombstone** being used for delete, queue is a well known anti-pattern.
 - **ObjectStorage** (Swift or S3) holds byte content.

## Decision

Distributed James should ship a distributed MailQueue composing the following softwares with the following 
responsibilities:

 - **RabbitMQ** for messaging. A rabbitMQ consumer will trigger dequeue operations.
 - A time series projection of the queue content (order by time list of mail metadata) will be maintained in **Cassandra** (see later). Time series avoid the 
aforementioned tombstone anti-pattern, and no polling is performed on this projection.
 - **ObjectStorage** (Swift or S3) holds large byte content. This avoids overwhelming other softwares which do not scale
 as well in term of Input/Output operation per seconds.
 
Here are details of the tables composing Cassandra MailQueue View data-model:

 - **enqueuedMailsV3** holds the time series. The primary key holds the queue name, the (rounded) time of enqueue 
designed as a slice, and a bucketCount. Slicing enables listing a large amount of items from a given point in time, in an 
fashion that is not achievable with a classic partition approach. The bucketCount enables sharding and avoids all writes 

=====================================================
== File: src/adr/0004-distributed-tasks-listing.md
=====================================================
# 4. Distributed Tasks listing

Date: 2019-10-02

## Status

Accepted (lazy consensus) &amp; implemented

## Context

By switching the task manager to a distributed implementation, we need to be able to `list` all `Task`s running on the cluster.

## Decision

 * Read a Cassandra projection to get all `Task`s and their `Status`

## Consequences

 * A Cassandra projection has to be done
 * The `EventSourcingSystem` should have a `Listener` updating the `Projection`
 
## References

* [JIRA ticket](https://issues.apache.org/jira/projects/JAMES/issues/JAMES-2813)

=====================================================
== File: src/adr/0027-eventBus-error-handling-upon-dispatch.md
=====================================================
# 27. EventBus error handling upon dispatch

Date: 2020-04-03

## Status

Accepted (lazy consensus) &amp; implemented

## Context

James allows asynchronous processing for mailbox events via MailboxListener. This processing is abstracted by the 
EventBus.

If the processing of an event via a mailbox listener fails, it is retried, until it succeeds. If a maxRetries parameter 
is exceeded, the event is stored in deadLetter and no further processing is attended.

The administrator can then look at the content of deadLetter to diagnose processing issues and schedule a reDelivery in 
order to retry their processing via webAdmin APIs.

However no such capabilities are supported upon dispatching the event on the eventbus. A failed dispatch will result in message loss.

More information about this component can be found in [ADR 0036](0037-eventbus.md).

## Decision

Upon dispatch failure, the eventBus should save events in dead letter using a dedicated group.

Reprocessing this group an admin can re-trigger these events dispatch.

In order to ensure auto healing, James will periodically check the corresponding group in deadLetter is empty. If not a
re-dispatching of these events will be attempted. 

## Consequence

In distributed James Guice project an administrator have a way to be eventually consistent upon rabbitMQ failure.

## References

 - [JIRA](https://issues.apache.org/jira/browse/JAMES-3139)

=====================================================
== File: src/adr/0021-cassandra-acl-inconsistency.md
=====================================================
# 21. Cassandra ACL inconsistencies

Date: 2020-02-27

## Status

Proposed

Not implemented yet.

## Context

Mailboxes ACLs are denormalized in Cassandra in order to:

 - given a mailbox, list its ACL (enforcing rights for example)
 - discover which mailboxes are delegated to a given user (used to list mailboxes)

Here is the tables organisation:

 - `acl` stores the ACLs of a given mailbox
 - `UserMailboxACL` stores which mailboxes had been delegated to which user

Failures during the denormalization process will lead to inconsistencies between the two tables.

This can lead to the following user experience:

```
ALICE delegates her INBOX mailbox to BOB
The denormalisation process fails
ALICE INBOX does not appear in BOB mailbox list

Given a delegated mailbox INBOX.delegated
ALICE undo the sharing of her INBOX.delegated mailbox
The denormalisation process fails
ALICE INBOX.delegated mailbox still appears in BOB mailbox list
When BOB tries to select it, he is being denied
```

## Decision

We can adopt a retry policy of the `UserMailboxACL` projection update as a mitigation strategy.

Using `acl` table as a source of truth, we can rebuild the `UserMailboxACL` projection:

 - Iterating `acl` entries, we can rewrite entries in `UserMailboxACL`
 - Iterating `UserMailboxACL` we can remove entries not referenced in `acl`
 - Adding a delay and a re-check before the actual fix can decrease the occurrence of concurrency issues

We will expose a webAdmin task for doing this.


=====================================================
== File: src/adr/0023-cassandra-mailbox-counters-inconsistencies.md
=====================================================
# 23. Cassandra Mailbox Counters inconsistencies

Date: 2020-03-07

## Status

Accepted (lazy consensus) &amp; implemented

## Context

Cassandra maintains a per mailbox projection for message count and unseen message count.

As with any projection, it can go out of sync, leading to inconsistent results being returned to the client, which is not acceptable.

Here is the table organisation:

 - `mailbox` Lists the mailboxes
 - `messageIdTable` Holds mailbox and flags for each message, lookup by mailbox ID + UID
 - `imapUidTable` Holds mailbox and flags for each message, lookup by message ID and serves as a source of truth
 - `mailboxCounters` Holds messages count and unseen message count for each mailbox.
 
Failures during the denormalization process will lead to inconsistencies between the counts and the content of `imapUidTable`

This can lead to the following user experience:

 - Invalid message count can be reported in the Mail User Agent (IMAP &amp; JMAP)
 - Invalid message unseen count can be reported in the Mail User Agent (IMAP &amp; JMAP)

## Decision

Implement a webadmin exposed task to recompute mailbox counters.

This endpoints will:

 - List existing mailboxes
 - List their messages using `messageIdTable`
 - Check them against their source of truth `imapUidTable`
 - Compute mailbox counter values
 - And reset the value of the counter if needed in `mailboxCounters`

## Consequences

This endpoint is subject to data races in the face of concurrent operations. Concurrent increments &amp; decrements will be 
ignored during a single mailbox processing. However the source of truth is unaffected hence, upon rerunning the task, 
the result will be eventually correct. To be noted that Cassandra counters can't be reset in an atomic manner anyway.

We rely on the &quot;listing messages by mailbox&quot; projection (that we recheck). Missing entries in there will
be ignored until the given projection is healed (currently unsupported). 

We furthermore can piggy back a partial check of the message denormalization described in 

=====================================================
== File: src/adr/0063-temporary-file-leaks.md
=====================================================
# 63. Prevent temporary file leaks

Date: 2022-09-13

## Status

Accepted (lazy consensus).

Implemented. 

## Context

In order to reduce memory allocation, Apache James buffers big emails into temporary files, in both SMTP
and during the email processing.

This means that all James entities relying on `Mail` object needs to have resource management in place
to prevent temporary file leaks. If not this can result in both unreasonable disk occupation and file
descriptor leaks.

Core components were found to badly manage those resources. Some mailets (bounce), mail queue APIs, mail 
repository APIs were found to be causing temporary file leaks.

James allows users to define custom mailets, that them too can badly manage emails. If insiders tend to
commit such errors, then we should expect our users to commit them too.

This points toward the need of a systematic approach to detect and mitigate temporary file leaks.

Similar leak detection is performed by other libraries. One can mention here Netty buffer libraries,
which relies on phantom references to detect leaks. Phantom references allows the Java garbage collector
to report recently GCed object. Upon phantom reference allocation, a check can then be done to check recently 
GCed object, and release related resources if need be.

## Decision

Implement a leak detector &quot;a la Netty&quot; using phantom references.

Allow several modes:
 - Off: does nothing which is James 3.6.x behaviour.
 - Simple: logs leaks and deletes associated files
 - Advanced: Same as simple but with the allocation stack trace which comes at a performance cost.
 Useful for diagnostic.
 - Testing: Assertion errors upon leaks. Can be used to streangthen test suite and detect leaks as part 
 of a build.

## Consequences

Makes James core components &quot;leak proofed&quot;.

Allows user to safely write extensions involving emails (eg duplication / sending).


=====================================================
== File: src/adr/0069-crowdsec-IP-filtering.md
=====================================================
# 69. Crowdsec

Date: 2022-10-26

## Status

Accepted (lazy consensus).

Implemented. 

## Context

Currently, there is no mechanism to check harmful IP addresses implementing attacks like bruteforce attacks, dictionary attacks, etc.

- Bruteforce attack: A hacker attempts to guess the user's login credentials.
- Dictionary attacks: A dictionary attack tries to find out the list of valid mail addresses.

## Decision 

To that end, we will integrate James with [Crowdsec](https://www.crowdsec.net/). Crowdsec will check James logs, based on defined scenarios, Crowdsec can detect malevolent behaviors, and block them from accessing James at various levels (infrastructure - firewall, system, applicative). To ease end user configuration, and propose a bundled experience independent from end user infrastructure, we implement Crowdsec remediations at application level. Willing users can very well set up remediations based on their underlying infrastructure.

A quick introduction about Crowdsec:

```
CrowdSec Security Engine is an open-source and lightweight software that allows you to detect peers with malevolent behaviors and block them from accessing your systems at various levels (infrastructural, system, applicative).

To achieve this, the Security Engine reads logs from different sources (files, streams ...) to parse, normalize and enrich them before matching them to threats patterns called scenarios. 
```

CrowdSec ships by default with scenarios (brute force, port scan, web scan, etc.) adapted for most contexts, but we can easily extend it by picking more of them from the [HUB](https://app.crowdsec.net/hub/collections). It is also easy to adapt an existing one or create one ourselves.

Set up a new maven project dedicated to Crowdsec extension. This allows to be embedded in a James server as a soft dependency
using the external-jar loading mechanism. With this way, the extension could be dropped in one's James installation, and not a runtime dependency.

### How does Crowdsec apply?
- Many attacks on James via IMAP, SMTP, JMAP can be detected by Crowdsec
- Crowdsec analyzes logs from James, then based on their patterns in parsers, it can detect each behavior in James. 
- Scenarios are YAML files that allow to detect a specific behavior, usually an attack. With James, we detect bruteforce login attack and Dictionary attack.![img.png](img/adr-69-scenario-diagram.png)
- Each line log is an event in Crowdsec. If an event triggers the condition in Crowdsec, Crowdsec will send an alert to the Local API, and make a decision (ban)
- James connects to Crowdsec via https protocol with reactor http client to query the decision from Crowdsec

## Consequences

- James will be more secure by blocking threats at various levels (applicative, system, infrastructural).
- We can document and share Crowdsec scenario thus allowing users to benefit from each other decisions. Also we can get dangerous IP detected by community via using Central API
- Crowdsec natively supports distributed deployments (reference: ) by setting up an agent per node gathering logs of local containers and forwarding them to the crowdsec API that decides if remediations should be applied. 
- This architecture is not horizontally scalable in itself but should already be able to analyse over 1000 relevant logs per seconds (metric obtained by discussing with Crowdsec team), which should allow leveraging very large scale James deployments.

## Alternatives


=====================================================
== File: src/adr/0037-eventbus.md
=====================================================
# 37. Event bus

Date: 2020-05-05

## Status

Accepted (lazy consensus) &amp; implemented

## Context

Many features rely on behaviors triggered by interactions with the mailbox API main interfaces (`RightManager`,
`MailboxManager`, `MessageManager`, `MessageIdManager`). We need to provide a convenient extension mechanism for 
organizing the execution of these behaviours, provide retries and advanced error handling.

Also, protocols enable notifications upon mailbox modifications. This is for instance the case for `RFC-2177 IMAP IDLE`,
leveraged for `RFC-3501 IMAP unsolicitated notifications` when selecting a Mailbox, as well as maintaining the 
`IMAP Message Sequence Number &lt;-&gt; Unique IDentifier` MSN &lt;-&gt; UID mapping. Changes happening for a specific entity 
(mailbox) need to be propagated to the relevant listeners.

## Decision

James mailbox component, a core component of James handling the storage of mails and mailboxes, should use an event 
driven architecture. 

It means every meaningful action on mailboxes or messages triggers an event for any component to react to that event.

`MailboxListener` allows executing actions upon mailbox events. They could be used for a wide variety of purposes, like 
enriching mailbox managers features or enabling user notifications upon mailboxes operations performed by other devices 
via other protocol sessions.

Interactions happen via the managers (`RightManager`, `MailboxManager`, `MessageManager`, `MessageIdManager`) which emit an
event on the `EventBus`, which will ensure the relevant `MailboxListener`s will be executed at least once.

`MailboxListener` can be registered in a work queue fashion on the `EventBus`. Each work queue corresponds to a given 
MailboxListener class with the same configuration, identified by their group. Each event is executed at least once
within a James cluster, errors are retried with an exponential back-off delay. If the execution keeps failing, the event
 is stored in `DeadLetter` for later reprocessing, triggered via WebAdmin.

Guice products enable the registration of additional mailbox listeners. A user can furthermore define its own 
mailboxListeners via the use of `extension-jars`.

MailboxListener can also be registered to be executed only on events concerning a specific entity (eg. a mailbox). The 
`registrationKey` is identifying entities concerned by the event. Upon event emission, the manager will indicate the 
`registrationKey` this event should be sent to. A mailboxListener will thus only receive the event for the registration 
key it is registered to, in an at least once fashion.

## Consequences

We need to provide an `In VM` implementation of the EventBus for single server deployments.


=====================================================
== File: src/adr/0049-deduplicated-blobs-gs-with-bloom-filters.md
=====================================================
# 49. Deduplicated blobs garbage collection with bloom filters

Date: 2021-07-21

## Status

Accepted (lazy consensus).

Implemented.

Proposes a simple way to implement an alternative to  [39. Distributed blob garbage collector](0039-distributed-blob-garbage-collector.md)

### Changes

2021-08-25: Edited to mention Cuckoo filters (Alternative).

## Context

The body, headers, attachments of the mails are stored as blobs in a blob store.

In order to save space in those stores, those blobs are de-duplicated using a hash of their content.

To attain that the current blob store will read the content of the blob before saving it, and generate its id based on
a hash of this content. This way two blobs with the same content will share the same id and thus be saved only once.

This makes the safe deletion of one of those blobs a non-trivial problem as we can't delete one blob without ensuring
that all references to it are themselves deleted. For example if two messages share the same blob, when we delete
one message there is at the time being no way to tell if the blob is still referenced by another message.

## Decision

To solve this, we will propose a simple two steps algorithms to provide a background deduplication job.

The **first step** consists in building a bloom filter using the entities referencing the blobs.

In the **second step** we iterate over blobs and check in the bloom filter to predict if they are referenced on not.

**Bloom filters** are probabilistic data structures. Here the reference prediction can produce false positives: we might 
skip some non referenced blobs that should have been garbage collected. However, the associated probability can be tuned 
and by adding a salt we can ensure subsequent runs will have different sets of false positives and thus that all blobs is
eventually garbage collected.

To avoid concurrency issues, where we could garbage collect a blob at the same time a new reference to it appear,
a `reference generation` notion will be added. The de-duplicating id of the blobs which before where constructed
using only the hash of their content,  will now include this `reference generation` too. To avoid synchronization 
issues, the `generation` will be time based.

So only blobs belonging to the `reference generation` `n-2` will be eligible for garbage collection to avoid 
concurrency issues, and allow for a clock skew.


=====================================================
== File: src/adr/0024-polyglot-strategy.md
=====================================================
# 24. Polyglot codebase

Date: 2020-03-17

## Status

Proposed

We rely on scala in parts of the code base.

## Context &amp; Problem Statement

James is written in Java for a very long time. In recent years, Java modernized a lot after a decade of slow progress.

However, in the meantime, most software relying on the JVM started supporting alternative JVM languages to keep being relevant.

It includes Groovy, Clojure, Scala and more recently Kotlin, to name a few.

Not being open to those alternative languages can be a problem for James adoption.

## Decision drivers

Nowadays, libraries and framework targeting the JVM are expected to support usage of one or several of these alternative languages.

James being not only a mail server but also a development framework needs to reach those expectations.

At the same time, more and more developers and languages adopt Function Programming (FP) idioms to solve their problems.

## Considered options

### Strategies

1. Let the users figure out how to make polyglot setups
2. Document the usage of polyglot mailets for some popular languages
3. Document the usage of polyglot components for some popular languages
4. Actually implement some mailets in some popular languages
5. Actually implement some components in some popular languages

### Languages:

[upperroman]
I. Clojure
II. Groovy
III. Kotlin
IV. Scala

## Decision

We decide for options 4, 5 and IV.


=====================================================
== File: src/adr/0060-adopt-bounded-elastic.md
=====================================================
# 60. Adopt bounded elastic

Date: 2022-09-13

## Status

Accepted (lazy consensus).

Implemented. 

## Context

See description of blocking vs reactive programming odel described in [ADR-57](0057-reactive-imap.md).

Sometimes reactive code needs to execute blocking tasks. 

 - This is the case when inter-operating with blocking libraries
 - James reactive adoption is progressive, some parts of our application
 are thus not reactive yet, which can result in reactive code calling
 blocking code calling reactive code.
 
Historically James used the elastic scheduler for scheduling such blocking calls. This scheduler
starts a thread for each task submitted (and attempt to reuse threads when possible) and results
in high thread count.

That is why project reactor deprecated the elastic scheduler in favor of bounded-elastic (similar to
a thread pool).

## Decision

Migrate from elastic scheduler to bounded-elastic scheduler.

## Consequences

We expect a reduction in used threads under load from such a change.

Also, getting rid of elastic scheduler might be a requirement to upgrade to reactor 3.5 upward.

Associated risk:
 - In some places, James protocol code is reactive, calls blocking intermediates API, to 
 end up calling reactive data access code. This results in nested blocking calls. Nested blocking
 calls, when using the same scheduler with a bounded thread cap, can result in a dead lock.

To prevent such a dead-lock code executed on bounded-elastic should not depend on scheduling nested
blocking call on bounded-elastic scheduler for its completion. We can thus avoid such a situation by 
using a scheduler dedicated by nested blocking calls.

## Alternatives

Alternatives to the &quot;blocking call wrapper&quot; scheduler described above includes a full reactive 

=====================================================
== File: src/adr/0058-upgrade-to-netty-4.md
=====================================================
# 58. Upgrade to netty 4

Date: 2022-09-13

## Status

Accepted (lazy consensus).

Implemented. 

## Context

James 3.7.0 uses Netty 3 for its TCP stacks (IMAP, SMTP, LMTP, MANAGESIEVE, POP3).

Latests Netty 3 minor releases dates from 20XX. This brings concerns regarding security
(unmaintained dependency).

Netty 4 delivers many enhancements compared to Netty 3. 

 - We can mention here the buffer APIs
 - Netty 4 empowers the use of native SSL, native event loops
 

## Decision

Upgrade James to Netty 4.

## Consequences

Significant rewrite of the protocol stack. Though the count of lines of code involved is low, the code is
tricky and would need several iteration to be stabilized. For this reason, James 3.7.0 was released prior
the Netty 4 adoption.
 
Associated risk:
 - Buffer leaks. Manual buffer management can be error prone. Netty project includes relevant 
 tooling.
 - We encountered issues with write ordering (when execute on, or outside of, the event loop)

Benefits: Netty 4 natively supports graceful shutdown, which enables easily implementing such a feature in 
James.

Netty 4 upgrades was also the opportunity to significantly improve test coverage for IMAP protocol stacks
and IMAP 4 extensions, which allowed fixing numerous bugs. To be mentioned:
 - COMPRESSION
 - STARTTLS and SSL
 - IMAP IDLE
 - QRESYNC and CONDSTORE
 
To be noted that Netty version used by James needs to be aligned with those of our dependencies:
 - S3 driver

=====================================================
== File: src/adr/0042-applicative-read-repairs.md
=====================================================
# 42. Applicative read repairs (POC mailbox &amp; mailbox-counters)

Date: 2020-09-25

## Status

Adopted (lazy consensus) &amp; implemented

Completes [20. Cassandra Mailbox object consistency](0020-cassandra-mailbox-object-consistency.md),
[23. Cassandra Mailbox Counters inconsistencies](0023-cassandra-mailbox-counters-inconsistencies.md)

## Context

Cassandra eventual consistency is all about &quot;replication&quot;, but &quot;denormalization&quot; consistency needs
to be handled at the applicative layer (due to the lack of transactions in a NoSQL database).

In the past we did set up &quot;Solve inconsistency&quot; tasks that can be assimilated to Cassandra repairs. Such
tasks, after being scheduled, ensure that the according entity denormalization is correctly denormalized.

However, the inconsistencies persist between runs. We experienced inconsistencies in some production platform
for both the mailbox entity, and the mailbox counter entity (whose table structure is exposed in
[these](0020-cassandra-mailbox-object-consistency.md), [ADRs](0023-cassandra-mailbox-counters-inconsistencies.md)).
Monitoring is required to detect when to run them and is time consuming for the platform administrator.
Given a large dataset, it could even be impossible to run such tasks in a timely fashion.

Another classic eventual consistency mechanism, that enables auto-healing is read-repair. Randomly piggy back upon reads
synchronous or asynchronous consistency checks. If missed a repair is performed.

In order to achieve denormalization auto-healing, we thus need to implement &quot;applicative read repairs&quot;.

## Decision

Provide a Proof of concept for &quot;Applicative read repairs&quot; for the mailbox and mailbox-counters entities.

This enables read path simplification (and performance enhancements) for the mailbox object.

IMAP LIST should not read mailbox counters. This information is uneeded and we should avoid paying the
price of read repairs for this operation.

Provide a comprehensive documentation page regarding &quot;Distributed James consistency model&quot;.

## Consequences

The expected **auto-healing** inconsistencies on existing deployments (at a limited configuration cost).
This should ease operation of the Distributed James server.

A configuration for James Distributed server will be added to control read repairs, per entity.

## Alternatives


=====================================================
== File: src/adr/0048-cleanup-jmap-uploads.md
=====================================================
# 48. Cleanup of JMAP uploads

Date: 2021-07-21

## Status

Accepted (lazy consensus).

Implemented.

Overridden by [Quota for JMAP uploads](0067-quota-for-jmap-uploads.md)

## Context

JMAP allows users to upload binary content called blobs to be later referenced via method calls. This includes but is not
limited to `Email/set` for specifying the blobId of attachments and `Email/import`.

The [specification](https://jmap.io/spec-core.html#binary-data) strongly encourages enforcing the cleanup of these uploads:

```
A blob that is not referenced by a JMAP object (e.g., as a message attachment) MAY be deleted by the server to free up 
resources. Uploads (see below) are initially unreferenced blobs.

[...] An unreferenced blob MUST NOT be deleted for at least 1 hour from the time of upload; if reuploaded, the same 
blobId MAY be returned, but this SHOULD reset the expiry time.
```

Deleting such uploads in a timely manner is important as:

 - It enables freeing server resources.
 - failing to do so may compromise privacy: content the user have uploaded and long forgotten might still be accessible
 in the underlying data-store. Failing to delete uploads in a timely fashion may jeopardize for instance GDPR compliance.
 
Today, uploads are stored along side email attachments. This means:
 - We can hardly apply a specific lifecycle that cleans up uploads, as distinguishing attachment from uploads is not 
 trivial.
 - We currently have a complex right resolution system on attachment, handling both the upload case (were the attachment
 is linked to a user) and the 'true' attachment case (linked to a message, those who can access the message can access 
 the attachment). This leads to sub-optimal code (slow).

## Decision

We need to create a separate interface `UploadRepository` in `data-jmap` to store uploads for each user. We would provide a memory 
implementation as well as a distributed implementation of it.

The distributed implementation would host metadata of the upload in Cassandra, and the content using the BlobStore API,
so object storage.

This `UploadRepository` would be used by JMAP RFC-8620 to back uploads (instead of the attachment manager), we will 
provide a `BlobResolver` to enable interactions with the uploaded blob. Similarly, we will use the `UploadRepository` to

=====================================================
== File: src/adr/0015-objectstorage-blobid-list.md
=====================================================
# 15. Persist BlobIds for avoiding persisting several time the same blobs within ObjectStorage

Date: 2019-10-09

## Status

Rejected (leads to concurrency issues)

Adoption needs to be backed by some performance tests.

## Context

A given mail is often written to the blob store by different components. And mail traffic is heavily duplicated (several recipients receiving similar email, same attachments). This causes a given blob to often be persisted several times.

Cassandra was the first implementation of the blobStore. Cassandra is a heavily write optimized NoSQL database. One can assume writes to be fast on top of Cassandra. Thus we assumed we could always overwrite blobs.

This usage pattern was also adopted for BlobStore on top of ObjectStorage.

However writing in Object storage:
 - Takes time
 - Is billed by most cloud providers

Thus choosing a right strategy to avoid writing blob twice is desirable.

However, ObjectStorage (OpenStack Swift) `exist` method was not efficient enough to be a real cost and performance saver.

## Decision

Rely on a StoredBlobIdsList API to know which blob is persisted or not in object storage. Provide a Cassandra implementation of it. 
Located in blob-api for convenience, this it not a top level API. It is intended to be used by some blobStore implementations
(here only ObjectStorage). We will provide a CassandraStoredBlobIdsList in blob-cassandra project so that guice products combining
object storage and Cassandra can define a binding to it. 

 - When saving a blob with precomputed blobId, we can check the existence of the blob in storage, avoiding possibly the expensive &quot;save&quot;.
 - When saving a blob too big to precompute its blobId, once the blob had been streamed using a temporary random blobId, copy operation can be avoided and the temporary blob could be directly removed.

Cassandra is probably faster doing &quot;write every time&quot; rather than &quot;read before write&quot; so we should not use the stored blob projection for it

Some performance tests will be run in order to evaluate the improvements.

## Consequences

We expect to reduce the amount of writes to the object storage. This is expected to improve:
 - operational costs on cloud providers
 - performance improvement
 - latency reduction under load

As id persistence in StoredBlobIdsList will be done once the blob successfully saved, inconsistencies in StoredBlobIdsList
will lead to duplicated saved blobs, which is the current behaviour.


=====================================================
== File: src/adr/0017-file-mail-queue-deprecation.md
=====================================================
# 17. FileMailQueue deprecation

Date: 2019-12-04

## Status

Accepted (lazy consensus) &amp; removed

## Context

James offers several implementation for MailQueue, a component allowing asynchronous mail processing upon smtp mail 
reception. These includes:
 - Default embedded ActiveMQ mail queue implementation, leveraging the JMS APIs and using the filesystem.
 - RabbitMQMailQueue allowing several James instances to share their MailQueue content.
 - And FileMailQueue directly leveraging the file system.

We introduced a junit5 test contract regarding management features, concurrency issues, and FileMailQueue do not meet this 
contract. This results in some tests being disabled and in an unstable test suite.

FileMailQueue tries to implement a message queue within James code, which does not really makes sense as some other projects
already provides one.

## Decision

Deprecate FileMailQueue components.

Disable FileMailQueue tests.

Target a removal as part of 3.6.0.

## Consequences

FileMailQueue is not exposed to the end user, be it over Spring or Guice, the impact of this deprecation + removal should
be limited.

We also expect our test suite to be more stable.

## Reference

Issues listing FileMailQueue defects:

 - https://issues.apache.org/jira/browse/JAMES-2298 Unsupported remove management feature
 - https://issues.apache.org/jira/browse/JAMES-2954 Incomplete browse implementation + Mixing concurrent operation might lead to a deadlock and missing fields
 - https://issues.apache.org/jira/browse/JAMES-2979 dequeue is not thread safe

=====================================================
== File: src/adr/0020-cassandra-mailbox-object-consistency.md
=====================================================
# 20. Cassandra Mailbox object consistency

Date: 2020-02-27

## Status

Accepted (lazy consensus) &amp; implemented

## Context

Mailboxes are denormalized in Cassandra in order to access them both by their immutable identifier and their mailbox 
path (name):

 - `mailbox` table stores mailboxes by their immutable identifier
 - `mailboxPathV2` table stores mailboxes by their mailbox path

We furthermore maintain two invariants on top of these tables:
 - **mailboxPath** unicity. Each mailbox path can be used maximum once. This is ensured by writing the mailbox path first
 using Lightweight Transactions.
 - **mailboxId** unicity. Each mailbox identifier is used by only a single path. We have no real way to ensure a given mailbox
 is not referenced by two paths.

Failures during the denormalization process will lead to inconsistencies between the two tables.

This can lead to the following user experience:

```
BOB creates mailbox A
Denormalization fails and an error is returned to A

BOB retries mailbox A creation
BOB is being told mailbox A already exist

BOB tries to access mailbox A
BOB is being told mailbox A does not exist
```

## Decision

We should provide an offline (meaning absence of user traffic via for exemple SMTP, IMAP or JMAP) webadmin task to 
solve mailbox object inconsistencies.

This task will read `mailbox` table and adapt path registrations in `mailboxPathV2`:
 - Missing registrations will be added
 - Orphan registrations will be removed
 - Mismatch in content between the two tables will require merging the two mailboxes together.

## Consequences

As an administrator, if some of my users reports the bugs mentioned above, I have a way to sanitize my Cassandra 

=====================================================
== File: src/adr/0047-jmap-push-over-websockets.md
=====================================================
# 47. JMAP PUSH over WebSockets

Date: 2021-01-26

## Status

Accepted (lazy consensus).

Implemented.

Relates to [45. Support JMAP Push with Mailbox/changes implementation](0045-support-jmap-push-with-mailbox-changes-implementation.md)

Requires [46. Generalize EventBus](0046-generalize-event-bus.md)

## Context

JMAP Push notifications allow clients to efficiently update (almost) instantly to stay in sync with data changes on the server. 

In order to support this, we need to have the server emit newest state changes to the client over a PUSH channel.

## Decision

We will implement [RFC-8887 - A JSON Meta Application Protocol (JMAP) Subprotocol for WebSocket](https://tools.ietf.org/html/rfc8887) 
as a transport mechanism for PUSH notifications.

We will [generalize EventBus](0046-generalize-event-bus.md) in order to achieve an out-of-the box Publish-Subscribe 
system for JMAP related events, that does not fit in the mailbox API.

We will implement listeners registered on the JMAP event bus for WebSocket clients in order to carry over state changes
to the client.

## Consequences

We expect clients using the PUSH to lead to a drastic performance enhancement, as less data needs to be transmitted upon
resynchronisation.

As mentioned in RFC-8887 the usage of webSockets allows other performance optimizations:
 - Requests can easily be compressed, which is not doable over HTTP for most available implementation (HTTP request 
compression is not ubiquitous).
 - WebSockets being connected, authentication can be performed once, when establishing the connection. This can allow to
reduce the load, if needed, on authentication systems. It might ease the use for instance of custom OpenId connect 
providers.

People deploying JMAP need to be aware that load-balancing webSockets requires session stickiness.

## Sequence

 1. Bob authenticates against the `ws://` endpoints. Upgrade to websockets is granted.
 2. Bob registers Email and Mailbox updates. A listener listens for state changes related to Bob account.
 3. Bob receives a mail. The MailboxManager adds it to Bob's mailbox. An `Added` event is fired on the mailbox event bus.

=====================================================
== File: src/adr/0009-disable-elasticsearch-dynamic-mapping.md
=====================================================
# 9. Disable ElasticSearch dynamic mapping

Date: 2019-10-10

## Status

Accepted (lazy consensus) &amp; implemented

## Context

We rely on dynamic mappings to expose our mail headers as a JSON map. Dynamic mapping is enabled for adding not yet encountered headers in the mapping.

This causes a serie of functional issues:
 - Maximum field count can easily be exceeded
 - Field type 'guess' can be wrong, leading to subsequent headers omissions [1]
 - Document indexation needs to be paused at the index level during mapping changes to avoid concurrent changes, impacting negatively performance.

## Decision

Rely on nested objects to represent mail headers within a mapping

## Consequences

The index needs to be re-created. Document reIndexation is needed.

This solves the aforementionned bugs [1].

Regarding performance:
 - Default message list performance is unimpacted
 - We noticed a 4% performance improvment upon indexing throughput
 - We noticed a 7% increase regarding space per message

## References

 - [1]: https://github.com/linagora/james-project/pull/2726 JAMES-2078 Add an integration test to prove that dynamic mapping can lead to ignored header fields
 - [JIRA](https://issues.apache.org/jira/browse/JAMES-2078)
 * [PR discussing this ADR](https://github.com/apache/james-project/pull/171)

=====================================================
== File: src/adr/0006-task-serialization.md
=====================================================
# 6. Task serialization

Date: 2019-10-02

## Status

Accepted (lazy consensus) &amp; implemented

## Context

By switching the task manager to a distributed implementation, we need to be able to execute a `Task` on any node of the cluster.
We need to have a way to describe the `Task` to be executed and serialize it in order to be able to store it in the `Created` event. Which will be persisted in the Event Store, and will be send in the event bus.

At this point in time a `Task` can contain any arbitrary code. It's not an element of a finite set of actions.

## Decision

 * Create a `Factory` for one `Task`
 * Inject a `Factory` `Registry` via a Guice Module
 * The `Task` `Serialization` will be done in JSON, We will get inspired by `EventSerializer`
 * Every `Task`s should have a specific integration test demonstrating that serialization works
 * Each `Task` is responsible of eventually dealing with the different versions of the serialized information


## Consequences

 * Every `Task`s should be serializable.
 * Every `Task`s should provide a `Factory` which would be responsible to deserialize the task and instantiate it.
 * Every `Factory` should be registered through a Guice module to be created for each project containing a `Factory`
 
## References

* [JIRA ticket](https://issues.apache.org/jira/projects/JAMES/issues/JAMES-2813)

=====================================================
== File: src/adr/0057-reactive-imap.md
=====================================================
# 57. Reactive IMAP

Date: 2022-09-13

## Status

Accepted (lazy consensus).

Implemented. 

## Context

Classic java programming involves doing some blocking calls. When performing some input-output, the
thread performing the tasks at hand will hang until a response is received. This means that a server 
performing IOs, which is the case of James, would end up with a high number of threads: for an IMAP
server, one IMAP request in flight equals one thread.

The widely documented issue with such an approach is that, in Java threads correspond to system threads,
and are expensive. Typically, each thread takes up to ~1MB of memory. To cap the count of threads at 
hand, the Thread Pool model is used to cap the count of threads. Process at most N IMAP requests with
N threads, and queue requests that cannot yet be handled.

The blocking thread pool model was the concurrency paradigm used by James IMAP implementation in 3.7.x.

Reactive programming instead does not perform blocking operation, thus one thread can handle several
IO tasks. This can be seen as callbacks executed once the request is received. Reactive programming model,
amongst others, leads to efficient resource usage. It helps keeping the count of applicative threads 
low, helps reduce context switches.

James have been, among the past few years, transitioning to a reactive programming model using the
Reactor library. Migrated components involves:
 - Cassandra/Distributed storage
 - JMAP protocol stacks
 - Some (webadmin) tasks also relies on Reactor

It is to be noted that our IMAP network stack uses Netty 4.x library that allows handling requests
asynchronously.

## Decision

Migrate IMAP to a reactive model.

Implement a way to limit IMAP concurrency to protect James server from bursts.

## Consequences

Significant rewrite of the IMAP stack.

Going reactive on the IMAP stacks yields the following improvements:
 - Reduced thread count. IMAP request handling can now be dealt with from the Netty IO threads.

=====================================================
== File: src/adr/0051-oidc.md
=====================================================
# 51. Integrate James with OIDC

Date: 2021-12-06

## Status

Accepted (lazy consensus).

Implemented.

Complemented by [ADR-62](0062-oidc-token-introspection.md).

## Context

Authentication is a critical item regarding security. The overall internet community have been refining authentication
standards in order to improve overall safety. We can mention here 
[OIDC standard](https://openid.net/specs/openid-connect-core-1_0.html), based on OAUTH, that 
[RFC-7628](https://datatracker.ietf.org/doc/html/rfc7628) allows applying on IMAP and SMTP.

Regarding HTTP applications (including JMAP clients) the industry commonly requires &quot;Single Sign On&quot; and &quot;Single Log 
Out&quot; features.

Nowadays, James only supports plain auth for IMAP, SMTP. In JMAP, we do support HTTP basic authentication, and a set of
custom authentication methods, one being based on custom JWT. None matches the constraints mentioned above.

We believe having more control on authentication methods, and the option to choose state-of-the-art authentication
methods would ultimately increase the overall security of the James server and ease adoption.

## Decision

Provide OIDC integration for the following email protocols: IMAP, SMTP, JMAP.

Regarding JMAP, we propose ourselves to make authentication methods extensible and configurable. We will provide a 
simple authentication method blindly following the value of the `X-User` header. This would allow us to configure an 
API gateway in front of James and delegate it the OIDC management. 

Regarding IMAP and SMTP we will implement RFC-7628 within James. We will validate the validity of the Authorization 
Bearer token against the public exposed by the JWKS endpoint. 

We will document such a setup, and provide a working example under the form of a docker-compose using 
[Keycloack](https://www.keycloak.org/) as an OIDC provider and [Krakend](https://www.krakend.io/) as an API gateway.

We will allow configuring and un-configuring any of the configuration mechanism. For instance, it will be possible to 
operate an OIDC-only James server.

## Consequences

The `X-User` authentication mechanism should be enabled with care as it allows the API gateway to bypass authentication
with the James server. Given such an OIDC setup, an attacker gaining direct access to the James server would trivially
access user accounts. Client headers propagation furthermore needs to be done with care.

=====================================================
== File: src/adr/0019-reactor-netty-adoption.md
=====================================================
# 19. Reactor-netty adoption for JMAP server implementation

Date: 2020-02-28

## Status

Accepted (lazy consensus) &amp; implemented

## Context

After adopting the last specifications of JMAP (see 
[new JMAP specifications adoption ADR](https://github.com/apache/james-project/blob/master/src/adr/0018-jmap-new-specs.md)), 
it was agreed that we need to be able to serve both `jmap-draft` and the new `jmap` with a reactive server. 

The current outdated implementation of JMAP in James is currently using a non-reactive [Jetty server](https://www.eclipse.org/jetty/).

There are many possible candidates as reactive servers. Among the most popular ones for Java:

* [Spring](https://spring.io)
* [Reactor-netty](https://github.com/reactor/reactor-netty)
* [Akka HTTP](https://doc.akka.io/docs/akka-http/current/introduction.html)
* ...

## Decision

We decide to use `reactor-netty` for the following reasons:

* It's a reactive server
* It's using [Reactor](https://projectreactor.io/), which is the same technology that we use in the rest of our codebase
* Implementing JMAP does not require high level HTTP server features

## Consequences

* Porting current `jmap-draft` to use a `reactor-netty` server instead of a Jetty server
* The `reactor-netty` server should serve as well the new `jmap` implementation
* We will be able to refactor and get end-to-end reactive operations for JMAP, unlocking performance gains

## References

* JIRA: [JAMES-3078](https://issues.apache.org/jira/browse/JAMES-3078)
* JMAP new specifications adoption ADR: https://github.com/apache/james-project/blob/master/src/adr/0018-jmap-new-specs.md

=====================================================
== File: src/adr/0054-elasticsearch-search-overrides.md
=====================================================
# 54. ElasticSearch search overrides

Date: 2022-05-16

## Status

Accepted (lazy consensus).

Implemented.

## Context

IMAP SEARCH requests can of course be used for user searches. But many applications (eg Samsung email client) also uses
IMAP SEARCH for resynchronization.

The use of ElasticSearch in the context of resynchronization is a problem as:

 - Resynchronization incurs many requests that ElasticSearch is not made to cope with.
 - This has a performance impact, and some 60+ seconds can be spotted.
 - ElasticSearch indexing is asynchronous which is not ideal for resynchronization
 - An ElasticSearch downtime would imply a full downtime for these clients.
 
Those resynchronization queries would better be served by the metadata database

## Decision

Define an API, `SearchOverride` that can be called on matching search queries and thus offload ElasticSearch.

Provide an extension mechanism for search overrides, where potentially custom implementations can be loaded from the
configuration.

Provide well targeted `SearchOverride`, implemented on top of `Cassandra` database.

## Consequences

We expect to :

 - Observe less IMAP SEARCH slow requests
 - ElasticSearch downtime should not impact IMAP clients using IMAP SEARCH like IMAP Samsung application
 - Thus also be able to support a higher IMAP workload as Cassandra is more suited to resynchronisation requests

## Sample IMAP requests


```
SearchOperation{key=SearchKey{type=TYPE_UID, date=null, size=0, value=null, seconds=-1, modSeq=-1, uids=[IdRange : TYPE: FROM UID: MessageUid{uid=1}:MessageUid{uid=9223372036854775807}], sequences=null, keys=Optional.empty}, options=[]}
```

```
SearchOperation{key=SearchKey{type=TYPE_AND, date=null, size=0, value=null, seconds=-1, modSeq=-1, uids=null, sequences=null, keys=Optional[[

=====================================================
== File: src/adr/0040-quality-levels-definitions.md
=====================================================
# 40. Quality levels definition

Date: 2020-06-21

## Status

Accepted (lazy consensus)

## Context

We hereby define as an artifact compiled artifact that external people consumes. This includes:

 - libraries
 - Mail servers
 - Extensions for James Mail Servers
 - Command line tools

We designate as a feature an optional, opt-in behaviour of a James server that can be configured by 
user willing to rely on it.

James as a project delivers several artifacts, and features. In order for project users to better
understand the underlying quality of the artifact they use, as well as the level of risk associated,
we need to better define some quality levels.

## Decision

For a given artifact or feature, by **mature** we mean that:

 - *interfaces* in components need a contract test suite
 - *interfaces* have several implementations
 - *implementation* of these interfaces need to pass this contract test suite which provides unit tests
 - Decent integration tests coverage is needed
 - Performance tests need to be conducted out
 - Quality Assurance with external clients needs to be conducted out
 - known existing production deployments/usages
 - usable documentation

This is the maximum quality level delivered by the James project. Users should feel confident using these
artifacts or features.

By **experimental** we designate an artifact or feature not matching yet the above requirements. However some
active contributors are willing to raise the quality level of this component, and eventually make it 
mature. Or at least are willing to support users.

Users should have low expectations regarding experimental artifacts or features. They are encouraged to contribute to them 
in order to raise its quality.

By **unsupported** we mean that an artifact or feature do not match most of the *mature* quality conditions. Active 
contributors do not feel confident delivering support for it. This artifact or feature might be deprecated and 
removed from future James releases. Users are strongly encouraged to contribute to the artifact development.

=====================================================
== File: src/adr/0056-opensearch-migration.md
=====================================================
# 56. OpenSearch migration

Date: 2022-08-11

## Status

Accepted (lazy consensus).

Implemented. 

Migration from OpenSearch high-level-rest-client to OpenSearch rest-client remains to be done.

## Context

James distributed server historically uses ElasticSearch software to empower search features. As off Apache James
3.7.0, we relied on ElasticSearch 7.10.

However, [ElasticSearch changed their licenses terms](https://www.elastic.co/pricing/faq/licensing), both for the servers
and driver libraries, choosing the SSPL (Server Side Public License), a [non-OSI compliant license](https://opensource.org/node/1099). 
As such, this clashes from a requirement for Apache projects to rely on ASF v2 compatible client libraries. Similarly, 
requiring a non-free software as a dependency would have been allowed but is a clear infringement to the ASF philosophy 
when free-er alternatives are available.

Alternative forks have emerged from ElasticSearch 7.10, one could mention 
[Open Distro for ElasticSearch](https://opendistro.github.io/for-elasticsearch/) which was renamed 
[OpenSearch](https://opensearch.org/), whose 1.x release line is fully compatible with ElasticSearch 7.10 driver, 
meaning that Apache James 3.7.0 users can use OpenSearch as an alternative to OpenSearch.

However, to fix security issues in its dependencies, we need to upgrade the ElasticSearch driver, which cannot be done
without license infringement and hurting OpenSearch compatibility.

Similarly, OpenSearch 2.x introduces subtle differences that makes its driver no longer compatible with ElasticSearch 7.10.

## Decision

Switch to OpenSearch drivers and fully adopt OpenSearch as the search backend for the Distributed James server.

First, conduct the easy migration toward OpenSearch high-level-rest-client (with dependencies to the whole openSearch 
eco-system), then conduct the more expensive migration to the rest-client (only dependencies to an http client and JSON 
parsing libraries).

## Consequences

Users are expected to deploy and use OpenSearch. Configuration need to be adapted too.

Users will not be able to use James Distributed server on top of ElasticSearch product anymore.

## Alternatives

Not upgrading exposes us to security vulnerabilities and as such is not an option.

=====================================================
== File: src/adr/0042-james-cli-based-on-webadmin.md
=====================================================
# 42. James CLI based on webadmin API

Date: 2020-10-05

## Status

Accepted (lazy consensus).

Partially implemented.

## Context

James servers offer a command-line interface in order to interact with the server. However, it relies on the JMX protocol, which is known to be insecure. The JMX server embedded in Apache James, also used by the command line client is exposed to a java de-serialization issue according to [NVD-CVE-2017-12628 Detail](https://nvd.nist.gov/vuln/detail/CVE-2017-12628), and thus can be used to execute arbitrary commands. 

Besides, the current CLI interface is also not optimal for users. It places actions in front of entities with contiguous syntax, making it harder for the user to remember the command (for example, which entity the GET action command can interact with). If we design to place the entity first and the outgoing actions can interact with that entity afterward, the user will easily imagine what he/she can do with each entity. This creates an intuitive interface that is easier to remember.

Webadmin APIs use HTTP protocol, which is more secure than JMX protocol to interact with James servers.

Webadmin command-line interface is an upcoming replacement for the outdated, security-vulnerable JMX command-line interface. 

## Decision

We decided to write a new CLI client, running on top of the JVM, communicating with James via the webadmin protocol, using http.

* What libraries will we use? 

  * http client: ***Feign library***. We used it as an http client in other parts of James so we continue to use it.

  * CLI: ***Picocli library***. Picocli is a one-file command line parsing framework written in Java that allows us to create command line applications with almost no code. It allows mixing Options with positional Parameters (Eg: no need to the follow order Options then Parameters), [automatic type conversion](https://picocli.info/#_strongly_typed_everything) of command line arguments to the type of the annotated field, provide Automatic Help and better Subcommand Support, easily handle Exceptions.

* How will we limit breaking changes this new CLI will cause?

  * Work on a wrapper to adapt the old CLI API.

* Where will we locate this cli code?

  * server/protocols/webadmin-cli

* Write a man page.

  * Picocli generates beautiful documentation for our CLI (HTML, PDF and Unix man pages).

* We decided to adopt a more modern, modular CLI syntax:

```   
$ ./james-cli [OPTION] ENTITY ACTION {ARGUMENT}
```
where

    OPTION: optional parameter when running the command line,

=====================================================
== File: src/adr/0003-distributed-workqueue.md
=====================================================
# 3. Distributed WorkQueue

Date: 2019-10-02

## Status

Accepted (lazy consensus) &amp; implemented

Superceded by [16. Distributed WorkQueue](0016-distributed-workqueue.md)

## Context

By switching the task manager to a distributed implementation, we need to be able to run a `Task` on any node of the cluster.

## Decision

  For the time being we will keep the sequential execution property of the task manager.
  This is an intermediate milestone toward the final implementation which will drop this property.

 * Use a RabbitMQ queue as a workqueue where only the `Created` events are pushed into.
   This queue will be exclusive and events will be consumed serially. Technically this means the queue will be consumed with a `prefetch = 1`.
   The queue will listen to the worker on the same node and will ack the message only once it is finished (`Completed`, `Failed`, `Cancelled`).

## Consequences

 * It's a temporary and not safe to use in production solution: if the node promoted to exclusive listener of the queue dies, no more tasks will be run
 * The serial execution of tasks does not leverage cluster scalability.
 
## References

* [JIRA ticket](https://issues.apache.org/jira/projects/JAMES/issues/JAMES-2813)


=====================================================
== File: src/adr/0009-java-11-migration.md
=====================================================
# 9. Migration to Java Runtime Environment 11

Date: 2019-10-24

## Status

Accepted &amp; implemented

## Context

Java 11 is the only &quot;Long Term Support&quot; java release right now so more and more people will use it exclusively.

James is known to build with Java Compiler 11 for some weeks.

## Decision

We adopt Java Runtime Environment 11 for James as a runtime to benefits from a supported runtime and new features
of the languages and the platform.

## Consequences

* It requires the upgrade of Spring to 4.3.x.
* All docker images should be updated to adoptopenjdk 11.
* The documentation should be updated accordingly.

## References

* [Mailing list thread](https://www.mail-archive.com/server-dev@james.apache.org/msg62611.html)
* [Mailing list thread](https://www.mail-archive.com/server-dev@james.apache.org/msg61335.html)
* [PR discussing this ADR](https://github.com/apache/james-project/pull/171)

=====================================================
== File: src/adr/0065-changing-username.md
=====================================================
# 65. Changing username

Date: 2023-03-17

## Status

Accepted (lazy consensus).

Implemented.

## Context
Changing username is a desired feature for an email server. It is a common practice especially when a user marries or divorces. For example:

Alice MARTINEZ have an email address `alice.martinez@domain.tld` and gets married to Bob ERNANDEZ. She thus wants to
change her email address to `alice.ernandez@domain.tld` while preserving her email data.

Nowadays, James uses username as an identifier for user data. Therefore, this feature is hard to implement because of changing
directly identifier to another value is difficult and could break data consistency if we do not do it carefully.

## Decision
We decided to do changing username with two steps: first, create new username, then migrate the old user's data to the new account -
the way we expect that is less dangerous to current data consistency. The data in the old account need to be truncated after migrating to the new account.

For the data migration step, we decided to form it under a webadmin task with a modular design. A big data migration task contains
many small tasks that implement `UsernameChangeTaskStep` interface. This modular design for migration steps could help developers easier
to manage/test each step, and help other tailor James servers can implement their own steps as well.

Today, implemented migration steps are:

- `ForwardUsernameChangeTaskStep`: creates forward from the old user to the new user and migrates existing forwards
- `FilterUsernameChangeTaskStep`: migrates users filtering rules
- `DelegationUsernameChangeTaskStep`: migrates delegations where the impacted user is either delegatee or delegator
- `MailboxUsernameChangeTaskStep`: migrates mailboxes belonging to the old user to the account of the new user. It also
  migrates users' mailbox subscriptions.
- `ACLUsernameChangeTaskStep`: migrates ACLs on mailboxes the migrated user has access to and updates subscriptions accordingly.

We introduce `fromStep` query parameter that allows skipping previous steps, allowing the operator to resume the username change from a failed step.
This option could ease operators in case the data migration fails in the middle.

## Consequences
- Add one more useful feature to James rich feature set: Users can change their name while preserving their email data.
- Modular design for changing username is extension friendly for tailor James servers.
- Users would be aware that they have a new account through a new username/password. No implicit migration without user attention is archived today.
- JMAP Identity data is not migrated because they are tightly coupled to the old username, users should create identities again themselves.
- Some data considered not critical like Push subscription, Vacation response,... are not migrated today. Contributions for them are welcome.

## Alternatives
We could have another choice for implementing this topic: create an account identifier not linked directly to the username (e.g a hash value points to a username),
so changing the pointer value would be easier than changing the pointer itself. However, that approach has two great concerns:
- Huge refactoring/breaking change is required: nowadays username as an identifier is used everywhere in tables schema and code.

=====================================================
== File: src/adr/0025-cassandra-blob-store-cache.md
=====================================================
# 25. Cassandra Blob Store Cache

Date: 2020-04-03

## Status

Accepted (lazy consensus) &amp; implemented

Supercedes [14. Add storage policies for BlobStore](0014-blobstore-storage-policies.md)

## Context

James exposes a simple BlobStore API for storing raw data. However such raw data often vary in size and access patterns.

As an example:

 - Mailbox message headers are expected to be small and frequently accessed
 - Mailbox message body are expected to have sizes ranging from small to big but are unfrequently accessed
 - DeletedMessageVault message headers are expected to be small and unfrequently accessed

The access pattern of some of these kind of blobs does not fit Object Storage characteristics: good at storing big blobs, but 
it induces high latencies for reading small blobs. We observe latencies of around 50-100ms while Cassandra latency is of 4ms.

This gets some operations slow (for instance IMAP FETCH headers, or listing JMAP messages).

## Decision

Implement a write through cache to have better read latency for smaller objects.

Such a cache needs to be distributed in order to be more efficient.

Given that we don't want to introduce new technologies, we will implement it using Cassandra.

The cache should be implemented as a key-value table on a dedicated 'cache' keyspace, with a replication factor of 1, 
and be queried with a consistency level of ONE. 

We will leverage a configurable TTL as an eviction policy. Cache will be populated upon writes and missed read, if the 
blob size is below a configurable threashold. We will use the TimeWindow compaction strategy.

Failure to read the cache, or cache miss will result in a read in the object storage.

## Consequences

Metadata queries are expected not to query the object storage anymore.

[Performance tests](https://github.com/linagora/james-project/pull/3031#issuecomment-572865478) proved such strategies
to be highly effective. We expect comparable performance improvements compared to an un-cached ObjectStorage blob store.

HybridBlobStore should be removed.


=====================================================
== File: src/adr/0029-Cassandra-mailbox-deletion-cleanup.md
=====================================================
# 29. Cassandra mailbox deletion cleanup

Date: 2020-04-12

## Status

Accepted (lazy consensus) &amp; implemented

## Context

Cassandra is used within distributed James product to hold messages and mailboxes metadata.

Cassandra holds the following tables:
 - mailboxPathV2 + mailbox allowing to retrieve mailboxes informations
 - acl + UserMailboxACL hold denormalized information
 - messageIdTable &amp; imapUidTable allow to retrieve mailbox context information
 - messageV2 table holds message metadata
 - attachmentV2 holds attachments for messages
 - References to these attachments are contained within the attachmentOwner and attachmentMessageId tables
 
Currently, the deletion only deletes the first level of metadata. Lower level metadata stay unreachable. The data looks 
deleted but references are actually still present.

Concretely:
 - Upon mailbox deletion, only mailboxPathV2 &amp; mailbox content is deleted. messageIdTable, imapUidTable, messageV2, 
 attachmentV2 &amp; attachmentMessageId metadata are left undeleted.
 - Upon mailbox deletion, acl + UserMailboxACL are not deleted.
 - Upon message deletion, only messageIdTable &amp; imapUidTable content are deleted. messageV2, attachmentV2 &amp; 
 attachmentMessageId metadata are left undeleted.

This jeopardize efforts to regain disk space and privacy, for example through blobStore garbage collection.

## Decision

We need to cleanup Cassandra metadata. They can be retrieved from dandling metadata after the delete operation had been 
conducted out. We need to delete the lower levels first so that upon failures undeleted metadata can still be reached.

This cleanup is not needed for strict correctness from a MailboxManager point of view thus it could be carried out 
asynchronously, via mailbox listeners so that it can be retried.

## Consequences

Mailbox listener failures lead to eventBus retrying their execution, we need to ensure the result of the deletion to be 
idempotent. 

## References

 - [JIRA](https://issues.apache.org/jira/browse/JAMES-3148)

=====================================================
== File: src/adr/0064-account-delegation.md
=====================================================
# 64. Account Delegation

Date: 2022-11-15

## Status

Accepted (lazy consensus).

Implemented.

## Context

The account delegation is a feature that gives another permission to access your account.
The user that had been granted access begin accessing that account then read, send, respond to, and delete email messages... on your behalf.
This feature is useful for VIP (who have secretaries), admins, etc...
James currently supports account delegation in IMAP / SMTP through SASL OIDC as well as SASL AUTH PLAIN (https://github.com/apache/james-project/blob/master/src/adr/0061-delegation.md)

Current now James support `urn:apache:james:params:jmap:mail:shares extension`, but it only affects the mailbox scope.

## Decision

Based on DelegationStore API, provide a James specific JMAP extension for managing delegation.

- Provide JMAP methods:
  - Delegate/get: list email addresses can the user access
  - Delegate/set (create/delete): please note that only the owner of the account should be able to interact with the delegation settings
    + Delegate my account to other people
    + Revoke delegation of my account on another person's account (revoke a right given to me)
    + Revoke delegation of another people's account on my account (revoke a right given to others)
  - DelegatedAccount/get: the method for getting delegated accounts
  - DelegatedAccount/set-delete: the method for delete delegated account

JMAP endpoints should support being called with accountIds of delegated accounts and needs to proceed authorization logic according to delegations.

## Consequences
The account delegation will help owner and delegated account:

- Multi-users can use a shared account
- Can give different limited access to each user
- Bring some commonly expected collaborative features
- We would need a way to &quot;list accounts delegated to me&quot; in the delegation store. We could use Cassandra LOGGED batch to keep this eventually consistent
- The mailboxSession needs to cary over information regarding logged-in user to allow restricting access to the delegation JMAP methods to only the account owner.

## References

- [JIRA](https://issues.apache.org/jira/projects/JAMES/issues/JAMES-3756)
- [JMAP Sharing](https://datatracker.ietf.org/doc/draft-ietf-jmap-sharing/)
- [James Delegation](https://github.com/apache/james-project/blob/master/src/adr/0061-delegation.md)

=====================================================
== File: src/adr/0046-generalize-event-bus.md
=====================================================
#46. Generalize EventBus

Date: 2020-06-11

## Status

Implemented, used for JMAP notifications, however not yet used on top of the user entity as 
described in this document.

## Context

User email storage usage is limited both in size and count via quotas (IMAP RFC-2087). In order to ease administrating large user bases, the quota search extension allows administrator
to retrieve all users whose email usages are exceeding a given occupation ratio.

When searching for users by quota ratio if we set the value of the parameters to 0, for example: `/quotas/users?minOccupationRatio=0&amp;maxOccupationRatio=0`, the search feature is supposed to return newly created users
who have not received any email yet at that point. However, this is not the case because the quotas are currently being initialized only after
a user has received the first email.

We need to initialize user quotas upon user creation time. The problem is: there is currently no event at user creation 
and since the quota-search feature is a plugin of James, it cannot be hardwired into the domain logic of user management to initialize the quota for a just created user.

## Decision

For quota-search to be initialized/removed for a given user while keeping this feature as a plugin, we decided to adopt the Event Driven pattern we already use in Mailbox-api. 
We can create new events related to user management (UserCreated, UserRemoved and so on).

To achieve that, we will extract the EventBus out of mailbox-api in order to make it a utility component (eventbus-api), then we will make both mailbox-api and data-api depend on that new module. 

## Consequences

Mailbox-api would leverage the EventBus to keep exposing the mailbox-listener-api without changes on top of the generified EventBus. We need to define a common Event interface in eventbus-api, 
then each EventBus usage will define its own sealed event hierarchy implementing Event.

DeadLetter storage needs to be reworked in order to store events of various EventBus separately (which is needed for knowing which EventBus the event should be reprocessed on 
and knowing which sealed hierarchy an event belongs to.)

As a consequence, we will need a Cassandra data migration to add the EventBus name as part of the EventDeadLetter primary key. 

We could rely on the EventBus reliability for building any feature in James.

=====================================================
== File: src/adr/0001-record-architecture-decisions.md
=====================================================
# 1. [JAMES-2909] Record architecture decisions

Date: 2019-10-02

## Status

Proposed

## Context

In order to be more community-oriented, we should adopt a process to have a structured way to have open architectural decisions.

Using an Architectural Decision Records-based process as a support of discussion on the developers mailing-lists.

## Decision

We will use Architecture Decision Records, as [described by Michael Nygard](https://web.archive.org/web/20190824074401/http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions).

Each ADR will be discussed on the Apache James' developers mailing-list before being accepted.

Following [Apache Decision Making process](https://community.apache.org/committers/decisionMaking.html), we provide the following possible status, with their associated meaning:
 - `Proposed`: The decision is being discussed on the mailing list.
 - `Accepted (lazy consensus)` : the architecture decision was proposed on the mailing list, and a consensus emerged from people involved in the discussion on the mailing list.
 - `Accepted (voted)` : the architecture undergo a voting process.
 - `Rejected` : Consensus built up against that proposal.


## Consequences

See Michael Nygard's article, linked above. For a lightweight ADR toolset, see Nat Pryce's [adr-tools](https://github.com/npryce/adr-tools).

We should provide in a mutable `References` section links to related JIRA meta-ticket (not necessarily to all related sub-tickets) as well as a link to the mail archive discussion thread.

JIRA tickets implementing that architecture decision should also link the related Architecture Decision Record.

## References

 * [JAMES-2909](https://jira.apache.org/jira/browse/JAMES-2909)
 * [PR discussing this ADR](https://github.com/apache/james-project/pull/166)

=====================================================
== File: src/adr/0034-mailbox-api-visibility-and-usage.md
=====================================================
# 34. Mailbox API visibility and usage

Date: 2020-04-27

## Status

Accepted (lazy consensus) &amp; implemented

## Context

All mailboxes implementations rely on `mailbox-store` module that defines some common tools to implement the `mailbox-api`
(representing the API defining how to use a mailbox). 

For example, a `CassandraMailboxmanager` has to extend `StoreMailboxManager` (that implements `Mailboxmanager` from the 
`mailbox-api`) that requires the implementation of some `Mapper`s.

`Mapper`s are designed to provide low-level functions and methods on mailboxes. It's recurrent that we are tempted in 
James, outside of the `mailbox` modules, to rely on some of those common tools located in `mailbox-store` to have an 
easier access on some user's mailboxes or messages. 

Like for example, using a `Mapper` outside to be able to retrieve a message with only its `MessageId`, which is not 
currently possible at the `Manager`'s level, which tends to violate `mailbox-api`'s role and primary mission.

As a matter of fact, we have currently such uses of `mailbox-store` in James:

* `mailbox-adapter` because `Authenticator` and `Authorizator` are part of the `mailbox-store`

The manager layer do further validation including right checking, event dispatching (resulting in message search index 
indexing, current quota calculation mainly), quota validation. Not relying on the manager layer is thus error prone 
and can lead to security vulnerabilities.

## Decision

We should never rely on classes defined in `mailbox-store` outside of the `mailbox` modules (except on some cases 
limited to the test scope). The right way would be to always rely on the `Manager`s defined in `mailbox-api` module to 
access mailboxes and messages, as the `mailbox-api` module defines the API on how to use a mailbox.

We should ensure the correctness of `Manager`s implementations by providing contract tests and not by sharing abstract 
classes.

Regarding the modules wrongly relying already on `mailbox-store`, we can:

* `mailbox-adapter`: move `Authenticator` and `Authorizator` to `mailbox-api`

## Consequences

We need to introduce some refactorings to be able to rely fully on `mailbox-api` in new emerging cases. For example, 
our `mailbox-api` still lacks APIs to handle messages by their MessageId. It 
creates some issues for rebuilding a single message fast view projection, or the reindexation of a single message.


=====================================================
== File: src/adr/0018-jmap-new-specs.md
=====================================================
# 18. New JMAP specifications adoption

Date: 2020-02-06

## Status

Accepted (lazy consensus) &amp; partially implemented

## Context

Historically, James has been an early adopter for the JMAP specification, and a first partial implementation was conducted when JMAP was just a draft. 
But with time, the IETF draft went with radical changes and the community could not keep this implementation up to date with the spec changes.

As of summer 2019, JMAP core ([RFC 8620](https://tools.ietf.org/html/rfc8620)) and JMAP mail ([RFC 8621](https://tools.ietf.org/html/rfc8621)) have been officially published. 
Thus we should implement these new specifications to claim JMAP support.

We need to keep in mind though that part of the community actively relies on the actual 'draft' implementation of JMAP existing in James. 

## Decision

We decided to do as follow:

* Rename packages `server/protocols/jmap*` and guice packages `server/container/guice/protocols/jmap*` to `jmap-draft`. `JMAPServer` should also be renamed to `JMAPDraftServer` (this has already been contributed [here](https://github.com/apache/james-project/pull/164), thanks to @cketti).
* Port `jmap-draft` to be served with a reactive technology
* Implement a JMAP meta project to select the JMAP version specified in the accept header and map it to the correct implementation
* Create a new `jmap` package
* Implement the new JMAP request structure with the [echo](https://jmap.io/spec-core.html#the-coreecho-method) method
* Implement authentication and session of the new JMAP protocol
* Implement protocol-level error handling
* Duplicate and adapt existing mailbox methods of `jmap-draft` to `jmap`
* Duplicate and adapt existing email methods of `jmap-draft` to `jmap`
* Duplicate and adapt existing vacation methods of `jmap-draft` to `jmap`
* Support uploads/downloads

Then when we finish to port our existing methods to the new JMAP specifications, we can implement these new features:

* Accounts
* Identities
* EmailSubmission
* Push and queryChanges
* Threads

We decided to support `jmap` on top of memory-guice and distributed-james products for now. 

We should ensure no changes is done to `jmap-draft` while implementing the new `jmap` one.

Regarding the versioning in the accept headers:

* `Accept: application/json;jmapVersion=draft` would redirect to `jmap-draft`
* `Accept: application/json;jmapVersion=rfc-8621` would redirect to `jmap`

=====================================================
== File: src/adr/0035-distributed-listeners-configuration.md
=====================================================
# 35. Distributed Mailbox Listeners Configuration

Date: 2020-04-23

## Status

Proposed

Supercedes [26. Removing a configured additional MailboxListener](0026-removing-configured-additional-mailboxListeners.md)

Not implemented yet.

## Context

James enables a user to register additional mailbox listeners.

The distributed James server is handling mailbox event processing (mailboxListener execution) using a RabbitMQ work-queue
per listener.

Mailbox listeners can be registered to be triggered every time an event is generated by user interaction with their 
mailbox. They are being executed in a distributed fashion following the workqueue messaging pattern. The &quot;group&quot; is an 
attribute of the mailbox listener identifying to which work queue they belong.

More information about this component can be found in [ADR 0036](0037-eventbus.md).

Currently, mailbox listeners are determined by the guice bindings of the server and additional mailbox listeners defined
via configuration files.

While the configuration might be specific for each James server, what actually is defined in RabbitMQ is common. 
Heterogeneous configuration might then result in unpredictable RabbitMQ resource status. This was left as a limitation
of [26. Removing a configured additional MailboxListener](0026-removing-configured-additional-mailboxListeners.md).

## Decision

We need to centralize the definition of mailbox listeners.

An event sourcing system will track the configured mailbox listeners.

It will have the following commands:

 - **AddListener**: Add a given listener. This should be rejected if the group is already used.
 - **RemoveListener**: Remove a given listener.
 
Configuration changes are not supported. The administrator is expected to remove the given listener, then add it again.

It will have the following events:

 - **ListenerAdded**: A mailbox listener is added
 - **ListenerRemoved**: A mailbox listener is removed


=====================================================
== File: src/adr/0062-oidc-token-introspection.md
=====================================================
# 62. OIDC token introspection

Date: 2022-09-13

## Status

Accepted (lazy consensus).

Implemented. 

Complements [ADR 51](0051-oidc.md).

## Context

[ADR 51](0051-oidc.md) describes work required for OIDC adoption within James.

This work enables the uses of an OIDC access token to authenticate using IMAP and SMTP.
It validates the signature of the token using cryptographic materials exposes by the 
Identity Provider server through the mean of a JWKS endpoint. Yet no effort is made to
see if the access token in question was revoked or not, which can pause a security threat.

OIDC ecosystem can support the following mechanisms to determine if an access token had been 
revoked:

 - Use of an introspection endpoint: the application asks the OIDC server to validate the token
 through an HTTP call. This result in load on the identity provider, which becomes central to the
 authentication process. This can be assimilated to a 'synchronous' mode.
 - Use of back-channel upon token revocation. The OIDC provider is then responsible to call an 
 applicative endpoint to invalidate a token. Invalidated tokens are then stored by the application
 and access token are challenged against that storage. This approach scales better yet is harder 
 to implement and can be seen as less secure (a network incident can prevent revoked token 
 propagation to applications for instance). This can be seen as an 'asynchronous' mode.
 
Also, we need to keep in mind that OIDC validation is only done upon establishing the connection in 
IMAP/SMTP (as they are connected protocols) which defers from stateless protocols like HTTP. Performance
impact of token introspection is thus lower for connected protocols.

## Decision

Allow opt-in use of an introspection endpoint to further secure IMAP/SMTP OIDC implementation.

## Consequences

Security gains for the IMAP/SMTP OIDC implementation in James.

## References

- [JIRA JAMES-3755](https://issues.apache.org/jira/browse/JAMES-3755)
- [RFC-7628](https://www.rfc-editor.org/rfc/rfc7628.html) SASL OATH mechanism for SMTP and IMAP: https://datatracker.ietf.org/doc/html/rfc7628
- [RFC-7662](https://datatracker.ietf.org/doc/html/rfc7662) OAUTH token introspection

=====================================================
== File: src/adr/0041-replace-jcloud-with-s3.md
=====================================================
# 41. Replace JCloud-based ObjectStorage backend with AWS-S3 SDK backend 

Date: 2020-02-11

## Status

Accepted (lazy consensus) &amp; implemented

Adoption had been backed by some performance tests.

## Context

James has an interface called blob-store that allows to choose how Blobs are stored between several implementations.

For Distributed product, the default backend is Cassandra because it's fast and it doesn't require yet another
server. 

When storage cost concerns are more important than raw performances, James can store Blobs in S3 or Swift 
Object Storage technologies.

Object Storage is known to be cheap and yet offers guarantee about durability.

When we implemented Object Storage blob-store in the past, we decided to implement it with 
[Apache jcloud library](https://jclouds.apache.org/) because we wanted to target both S3 and Swift API.

However, we found that our implementation was complex and it didn't fit the Reactive style we now have in the codebase.
It also contribute negatively to the project build time.

At the same time, we figured out Swift was providing a good compatibility layer for S3 and that we may drop
our Swift code without dropping Swift support at the same time. 

## Decision

* Use AWS S3 v2 SDK to implement a Reactive S3 blob-store (`blobstore-s3`).
* Replace current `blob-store-objectstorage` with `blobstore-s3` 
* Run load tests to ensure there's no penalty when switching from Swift to S3 over Swift

## Consequences

* We have to document carefully how to transition from `blob-store-objectstorage` with `blobstore-s3`  in the
configuration and how to handle existing data

* We need to work on a new implementation of blob encryption.

## References

* [JAMES](https://issues.apache.org/jira/browse/JAMES-3028)
* [Pull request tree](https://github.com/linagora/james-project/pull/3773)

=====================================================
== File: src/adr/0036-against-use-of-conditional-statements-in-guice-modules.md
=====================================================
# 36. Against the use of conditional statements in Guice modules

Date: 2019-12-29

## Status

Accepted (lazy consensus) &amp; implemented

## Context

James products rely historically on Spring for dependency injection. It doesn't use last major Spring version (4.x instead of 5.x).
James uses Spring in a way that enables overriding any class via a configuration file thus endangering overall correctness by giving too much 
power to the user.

James proposes several implementations for each of the interfaces it defines. The number of possible combinations of
implementations is thus really high (like factorial(n) with n &gt; 10). It makes it unpractical to run tests for each 
possible component combination. We run integration tests for combinations that we decide brings the more value to
the users. Spring product defeats this testing logic 
by allowing the user arbitrary classes combination, which is likely not being tested.

Instead of having a single product allowing all component combination, we rather have 
several products each one exposing a single component combination. Components are defined by code in a static fashion. 
We thus can provide a decent level of QA for these products. Overriding components requires explicit code modification 
and recompilation, warning the user about the impact of the choices he does, and lowering the project's responsibility. 
Guice had been enacted as a way to reach that goal.

With Guice we expose only supported, well tested combinations of components, thus addressing the combination issue.

Spring application often bring dependencies conflicts, for example between Lucene and ElasticSearch 
components, leading to potential runtime or compile time issues. Instead of having a single big application being able 
to instantiate each and every component application, we have several products defining their dependencies in a 
minimalistic way, relying only on the components implementation that are needed.

Here is the list of products we provide:

 - In-Memory: A memory based James server, mainly for testing purposes
 - Distributed James: A scalable James server, storing data in various data stores. Cassandra is used for metadata, 
 ElasticSearch for search, RabbitMQ for messaging, and ObjectStorage for blobs.
 - Cassandra: An implementation step toward Distributed James. It does not include messaging and ObjectStorage and 
 should not be run in a cluster way but is still relevant for good performance.
 - JPA: A JPA and Lucene based implementation of James. Only Derby driver is currently supported.
 - JPA with SMTP only using Derby: A minimalist SMTP server based on JPA storage technology and Derby driver
 - JPA with SMTP only using MariaDB: A minimalist SMTP server based on JPA storage technology and MariaDB driver

Some components however do have several implementations a user can choose from in a given product. This is the case for:

 - BlobExport: Exporting a blob from the blobStore to an external user. Two implementations are currently supported: 
 localFiles and LinShare.
 - Text extraction: Extracting text from attachment to enable attachment search. There is a Tika implementation, but 
 lighter JSOUP based, as well as no text extraction options are also available.

=====================================================
== File: src/adr/0011-remove-elasticsearch-document-source.md
=====================================================
# 11. Disable ElasticSearch source

Date: 2019-10-17

## Status

Rejected

The benefits do not outweigh the costs.

## Context

Though very handy to have around, the source field does incur storage overhead within the index. 

## Decision

Disable `_source` for ElasticSearch indexed documents.

## Consequences

Given a dataset composed of small text/plain messages, we notice a 20% space reduction of data stored on ElasticSearch.

However, patch updates can no longer be performed upon flags updates. Upon flag update we need to fully read the mail 
content, then mime-parse it, potentially html parse it, extract attachment content again and finally index again the full 
document.

Without `_source` field, flags update is two times slower, 99 percentile 4 times slower, and this impact negatively other 
requests.

Note please that `_source` allows admin flexibility like performing index level changes without downtime, amongst others:
 - Increase shards
 - Modifying replication factor
 - Changing analysers (IE allows an admin to configure FR analyser instead of EN analyser)

## References

 - https://www.elastic.co/guide/en/elasticsearch/reference/6.3/mapping-source-field.html
 - [JIRA](https://issues.apache.org/jira/browse/JAMES-2906)
 - [PR discussing this ADR](https://github.com/apache/james-project/pull/171)

=====================================================
== File: src/adr/0059-upgrade-to-cassadra-driver-4.md
=====================================================
# 59. Upgrade to Cassandra driver 4

Date: 2022-09-13

## Status

Accepted (lazy consensus).

Implemented. 

## Context

Cassandra driver 3 latest release took pace in 201X. An outdated dependency pauses a security risk.

Moreover Cassandra driver 4:
 - Have prime reactive support and do not need to pass through an intermediate &quot;CompletableFuture&quot;
 representation which is more optimised.
 - In Cassandra driver 3, paging is blocking. Handling paging the reactive way means we do not 
 need to aggressively switch the processing to an elastic thread, which helps keeping the count of 
 threads low.
 - Cassandra driver 4 has built in support for advanced driver configuration tuning without the 
 need for the application to programmatically configure the driver. This means great flexibility without
 the need for the application to proxy the driver configuration parameters.

## Decision

Upgrade James to Cassandra driver 4.

Handle Cassandra requests callbacks on the Cassandra driver thread.

## Consequences

We expect a performance enhancement for native reactive support from the Cassandra driver, as well
as a better thread handling which translate to improved latencies/throughput.

This code change needs a rewrite of all the Cassandra data access layer.

Associated risk:
 - Blocking on the Cassandra driver thread is prohibited. Tools like Blockhound can be adapted to 
 mitigate this.
 - Blocking a Cassandra request from within a Cassandra driver thread result in a request timeout.
 - Long running computation should be switched to other threads as it can prevent other Cassandra 
 requests from being executed.
 
Mechanisms related to Cassandra driver configuration will need to be reworked. This leads to a breaking
change but our Cassandra driver configuration will be simpler and more standard.

## References

- [JIRA JAMES-3774](https://issues.apache.org/jira/browse/JAMES-3774)

=====================================================
== File: src/adr/0016-distributed-workqueue.md
=====================================================
# 16. Distributed WorkQueue

Date: 2019-12-03

## Status

Accepted (lazy consensus) &amp; implemented

Supercedes [3. Distributed WorkQueue](0003-distributed-workqueue.md)

## Context

By switching the task manager to a distributed implementation, we need to be able to run a `Task` on any node of the cluster.

## Decision

  For the time being we will keep the sequential execution property of the task manager.
  This is an intermediate milestone toward the final implementation which will drop this property.

 * Use a RabbitMQ queue as a workqueue where only the `Created` events are pushed into.
   Instead of using the brittle exclusive queue mechanism described in [3. Distributed WorkQueue](0003-distributed-workqueue.md), we will
   now use the natively supported [Single Active Consumer](https://www.rabbitmq.com/consumers.html#single-active-consumer) mechanism. 


## Consequences

 * This solution is safer to use in production: if the active consumer dies, an other one is promoted instead.
 * This change needs RabbitMQ version to be at least 3.8.0.
 * The serial execution of tasks still does not leverage cluster scalability.
 
## References

* [JIRA ticket](https://issues.apache.org/jira/projects/JAMES/issues/JAMES-2813)
* [PR discussing this ADR](https://github.com/apache/james-project/pull/259)

=====================================================
== File: src/adr/0052-pulsar-mailqueue.md
=====================================================
# 52. Pulsar MailQueue

Date: 2022-01-07

## Status

Accepted (lazy consensus).

Implemented.

Provides an alternative to [ADR-31 Distributed MailQueue (RabbitMQ + Cassandra)](0031-distributed-mail-queue.md).

## Context

### Mail Queue

MailQueue is a central component of SMTP infrastructure allowing asynchronous mail processing. This enables a short 
SMTP reply time despite a potentially longer mail processing time. It also works as a buffer during SMTP peak workload
to not overload a server. 

Furthermore, when used as a Mail Exchange server (MX), the ability to add delays being observed before dequeing elements
allows, among others:

 - Delaying retries upon MX delivery failure to a remote site.
 - Throttling, which could be helpful for not being considered a spammer.

A mailqueue also enables advanced administration operations like traffic review, discarding emails, resetting wait 
delays, purging the queue, etc.

### Existing distributed MailQueue

Distributed James currently ships a distributed MailQueue composing the following software with the following 
responsibilities:

 - **RabbitMQ** for messaging. A rabbitMQ consumer will trigger dequeue operations.
 - A time series projection of the queue content (order by time list of mail metadata) will be maintained in **Cassandra** . 
 Time series avoid the aforementioned tombstone anti-pattern, and no polling is performed on this projection.
 - **ObjectStorage** (Swift or S3) holds large byte content. This avoids overwhelming other software which do not scale
 as well in term of Input/Output operation per seconds.
 
This implementation suffers from the following pitfall:

 - **RabbitMQ** is hard to reliably operate in a cluster. Cluster queues were only added in the 3.8 release line. Consistency 
 guaranties for exchanges are unclear.
 - The RabbitMQ Java driver is boiler plate and error prone. Things like retries, 
 exponential back-offs, dead-lettering do not come out of the box. Publish confirms are tricky. Blocking calls are 
 often performed. The driver is not cluster aware and would operate connected to a single host.
 - The driver reliability is questionable: we experienced some crashed consumers that are never restarted.
 - Throughput and scalability of RabbitMQ is questionable.
 - The current implementation does not support priorities, delays.

=====================================================
== File: src/adr/0014-blobstore-storage-policies.md
=====================================================
# 14. Add storage policies for BlobStore

Date: 2019-10-09

## Status

Accepted

Adoption had been backed by some performance tests, as well as data repartition between Cassandra and object storage shifts.

## Context

James exposes a simple BlobStore API for storing raw data. However such raw data often vary in size and access patterns.

As an example:

 - Mailbox message headers are expected to be small and frequently accessed
 - Mailbox message body are expected to have sizes ranging from small to big but are unfrequently accessed
 - DeletedMessageVault message headers are expected to be small and unfrequently accessed

Also, the capabilities of the various implementations of BlobStore have different strengths:

 - CassandraBlobStore is efficient for small blobs and offers low latency. However it is known to be expensive for big blobs. Cassandra storage is expensive.
 - Object Storage blob store is good at storing big blobs, but it induces higher latencies than Cassandra for small blobs for a cost gain that isn't worth it.

Thus, significant performance and cost ratio refinement could be unlocked by using the right blob store for the right blob.

## Decision

Introduce StoragePolicies at the level of the BlobStore API.

The proposed policies include:

 - SizeBasedStoragePolicy: The blob underlying storage medium will be chosen depending on its size.
 - LowCostStoragePolicy: The blob is expected to be saved in low cost storage. Access is expected to be unfrequent.
 - PerformantStoragePolicy: The blob is expected to be saved in performant storage. Access is expected to be frequent.

An HybridBlobStore will replace current UnionBlobStore and will allow to choose between Cassandra and ObjectStorage implementations depending on the policies.

DeletedMessageVault, BlobExport &amp; MailRepository will rely on LowCostStoragePolicy. Other BlobStore users will rely on SizeBasedStoragePolicy.

Some performance tests will be run in order to evaluate the improvements.

## Consequences

We expect small frequently accessed blobs to be located in Cassandra, allowing ObjectStorage to be used mainly for large costly blobs.

In case of a less than 5% improvement, the code will not be added to the codebase and the proposal will get the status 'rejected'.

We expect more data to be stored in Cassandra. We need to quantify this for adoption.

=====================================================
== File: src/adr/0008-distributed-task-await.md
=====================================================
# 8. Distributed Task await

Date: 2019-10-02

## Status

Accepted (lazy consensus) &amp; implemented

## Context

By switching the task manager to a distributed implementation, we need to be able to `await` a `Task` running on any node of the cluster.

## Decision

 * Broadcast `Event`s in `RabbitMQ`

## Consequences

 * `RabbitMQTaskManager` should broadcast termination `Event`s (`Completed`|`Failed`|`Canceled`)
 * `RabbitMQTaskManager.await` should: first, check the `Task`'s state; and if it's not terminated, listen to RabbitMQ
 * The await should have a timeout limit
 
## References

* [JIRA ticket](https://issues.apache.org/jira/projects/JAMES/issues/JAMES-2813)


=====================================================
== File: src/adr/0053-email-rate-limiting.md
=====================================================
# 53. Email rate limiting

Date: 2021-01-10

## Status

Accepted (lazy consensus).

Implemented.

## Context

Rate limiting is one of the common features expected from an email system. Examples: SaaS is
one https://www.fastmail.help/hc/en-us/articles/1500000277382-Account-limits#sending/receiving
, https://support.google.com/mail/answer/22839

They limit how many emails users can send/receive from/to each email account over a given period of time.  
We believe the rate-limiting will help James to have more benefits:

- Control of the resources
- Easy to configure dynamically the user policy.
- Complements the storage quota
- Can be a security requirement for SaaS deployments.
- Minimise impacts of Open-relay types of compression.
- Limiting the amount of emails sent to third parties can also prevent them from considering you as an open relay and can
  be beneficial as well.

## Decision

Set up a new maven project dedicated to rating limiting. This allows the rate limiting mailets to be embedded in a James
server as a soft dependency using the external-jar loading mechanism. Please note that this will take the form of an
extension jar, that could be dropped in one's James installation, and thus is optional, and not a runtime dependency.

Rate limiting will be enabled per sender, per receiver and globally. For each we will provide options for email size and
email count.

- This can be done via mailets:
    - PerSenderRateLimit is per sender
    - PerRecipientRateLimit is per recipient
    - GlobalRateLimit is for everyone. Depending on the position in the pipeline this could allow rate limiting all emails in
      transit, relayed emails or locally delivered emails.    
      The rate limit will be configured
      in [mailetcontainer.xml](/server/apps/distributed-app/sample-configuration/mailetcontainer.xml).

- Those mailets will be based on a generic RateLimiter interface. We will propose two implementations for it:
    - In memory implementation: suitable for single instance deployments.
    - [Redis](https://redis.io) based implementation: suitable for distributed deployments.

We will base on [RateLimitJ](https://github.com/mokies/ratelimitj) to provide the implementation.
It is a Java library for rate limiting, assembled using extensible storage (Redis) and application framework adaptors. 

=====================================================
== File: src/adr/0013-precompute-jmap-preview.md
=====================================================
# 13. Precompute JMAP Email preview

Date: 2019-10-09

## Status

Accepted (lazy consensus) &amp; implemented

## Context

JMAP messages have a handy preview property displaying the firsts 256 characters of meaningful test of a message.

This property is often displayed for message listing in JMAP clients, thus it is queried a lot.

Currently, to get the preview, James retrieves the full message body, parse it using MIME parsers, removes HTML and keep meaningful text.

## Decision

We should pre-compute message preview.

A MailboxListener will compute the preview and store it in a MessagePreviewStore.

We should have a Cassandra and memory implementation.

When the preview is precomputed then for these messages we can consider the &quot;preview&quot; property as a metadata.

When the preview is not precomputed then we should compute the preview for these messages, and save the result for later.

We should provide a webAdmin task allowing to rebuild the projection. The computing and storing in MessagePreviewStore 
is idempotent and the task can be run in live without any concurrency problem.

Some performance tests will be run in order to evaluate the improvements.

## Consequences

Given the following scenario played by 2500 users per hour (constant rate)
 - Authenticate
 - List mailboxes
 - List messages in one of their mailboxes
 - Get 8 times the properties expected to be fast to fetch with JMAP

We went from:
 - A 7% failure and timeout rate before this change to almost no failure
 - Mean time for GetMessages went from 9 710 ms to 434 ms (22 time improvment), for all operation from
 12 802 ms to 407 ms (31 time improvment)
 - P99 is a metric that did not make sense because the initial simulation exceeded Gatling (the performance measuring tool 
 we use) timeout (60s) at the p95 percentile. After this proposal p99 for the entire scenario is of 1 747 ms

As such, this changeset significantly increases the JMAP performance.


=====================================================
== File: src/adr/0067-quota-for-jmap-uploads.md
=====================================================
# 67. Quota for JMAP uploads

Date: 2023-08-17

## Status

Accepted (lazy consensus).

Implemented.

Overrides [ADR-48 Cleaup JMAP uploads](0048-cleanup-jmap-uploads.md).

## Context

The [JMAP] protocol offers a distinct API to upload blobs, that can later be referenced when creating emails. The 
specification mentions that implementers `SHOULD` enforce a quota for this use case. For security reason this quota is 
set by user, and exceeded his quota should result in older data being deleted.

Apache James currently do not implement limitations on data being uploaded by users, meaning that authenticated user can 
essentially store unlimited amount of binary data. This is especially problematic for deployments whose users can be 
attackers (eg SAAS).

## Decision

Implement quota for JMAP uploads. We need a generic interface for JMAP upload quota current values that existing 
implementation can implement.

Store current values on a per user basis. Current value is increased upon uploads, and decreased when a blob is deleted.

Limit is set globally via the JMAP configuration. Default value: 10MB.

## Consequences

Improved security for SaaS operation.

Storing such values in Cassandra incurs a cost as it needs extra tables. The count of tables shall be limited (memory and
operational overhead per table.) We plan complementary work to expose a technical Cassandra storage interface for quota,
that can be used to implement arbitrary quota-like use cases.

Cassandra counters that would be used to keep track of users current space usage are easy to get out of synchronisation
(namely because of counters consistency level ONE usage and non-idempotence causing the driver not to retry failed 
updates). We thus need a corrective task in order to recompute the current values.

Care needs to be taken with concurrency. Given the nature of the quota, we expect data races (because 100MB of storage 
space is not much, exceeding the quota should be considered a regular operation. Clients uploading files parallely might
trigger data races upon older data deletion). In practice this means:
 - Be eventually consistent and cleanup data after the upload returns as upfront quota validation with JMAP upload 
constraints on to of Cassandra counter data model is especially prone to data races
 - Upon cleanup, free at least 50% of the space: this would decrease the frequency of updates
 - Expose a configurable probability of recomputing the upload quota

=====================================================
== File: src/adr/0028-Recompute-mailbox-quotas.md
=====================================================
# 28. Recompute mailbox quotas

Date: 2020-04-03

## Status

Accepted (lazy consensus) &amp; implemented

## Context

JMAP custom quota extension, as well as IMAP [RFC-2087](https://tools.ietf.org/html/rfc2087) enables a user to monitor
the amount of space and message count he is allowed to use, and that he is effectively using.

To track the quota values a user is effectively using, James relies on the 
[eventBus](../site/markdown/server/manage-guice-distributed-james.md#mailbox-event-bus) to increment a Cassandra counter
corresponding to this user.

However, upon Cassandra failure, this value can be incorrect, hence the need of correcting it.

## Data model details

Table: imapUidTable: Holds mailbox and flags for each message, lookup by message ID

Table: messageV2: Holds message metadata, independently of any mailboxes. Content of messages is stored in `blobs` 
       and `blobparts` tables.
       
Table: currentQuota: Holds per quota-root current values. Quota-roots defines groups of mailboxes which share quotas 
limitations.

Operation:
 - Quota updates are done asynchronously (event bus + listener) for successful mailbox operations.
   - If the quota update is not applied, then we are inconsistent
   - EventBus errors are retried upon errors, counters being non-indempotent, this can result in inconsistent quotas

## Decision

We will implement a generic corrective task exposed via webadmin.

This task can reuse the `CurrentQuotaCalculator` and call it for each and every quotaRoot of each user.

This way, non-Cassandra implementation will also benefit from this task.

## Consequences

This task is not concurrent-safe. Concurrent operations will result in an invalid quota to be persisted.

However, as the source of truth is not altered, re-running this task will eventually return the correct result.

## References


=====================================================
== File: src/adr/0070-postgresql-adoption.md
=====================================================
# 68. Native PostgreSQL adoption

Date: 2023-10-31

## Status

Accepted (lazy consensus).

Not implemented yet.

## Context

Today, Apache James is mostly developed towards [the Distributed variant](https://james.staged.apache.org/james-distributed-app/3.8.0/index.html)
which targets big enterprises/organizations with a big and scalable deployment.

Meanwhile, there are still great needs for small/medium mail server deployments in the market.

However, nowadays, Apache James is not really great at serving that small/medium deployments. Obviously, Distributed James with the shiny big data
technologies like Apache Cassandra, OpenSearch, RabbitMQ... is too costly for that size of deployment. JPA James should be the feasible variant that
could fit those deployments. Despite the JPA implementation allowing to deploy James on top of various popular RDBMS which is useful, JPA with the
Object Relational Mapping nature which makes optimizing SQL queries hard and a backed JDBC blocking driver is usually a bad fit for applications requiring high performance like a mail server.
Besides that, JPA as an abstraction layer prevents James from using advanced features of a given RDBMS e.g. search engine, or blob storage...
From a development aspect, bad developing experience with JPA also limited James community from contributing more to JPA James e.g. JMAP is not supported for JPA James.

It has been [a long-term desire of the James community](https://issues.apache.org/jira/browse/JAMES-2586) to have a James variant that fit small/medium deployments without relying on JPA.

## Decision

We would implement a PostgresSQL-specific backend.

PostgreSQL is a rock-solid well-known, proven, and mature open source relational database with great adoption on the market.
Besides a traditional SQL database, PostgreSQL could serve as [a blob storage](https://www.postgresql.org/docs/current/largeobjects.html), [a search engine](https://www.postgresql.org/docs/current/textsearch.html) and [a message queue](https://www.postgresql.org/docs/current/sql-notify.html).

We would start implementing James mailbox backed by PostgreSQL:
- We implement it step by step on a feature branch of James called `postgresql`.
- We start from a copy of JPA modules into new Postgres ones, then migrate code step by step from JPA to Postgresql implementation. This means that during the dev process, both JPA and Postgresql implementation will cohabit until we finally get rid of the JPA code.
- The [r2dbc-postgresql](https://github.com/pgjdbc/r2dbc-postgresql) reactive client would be used, alongside [jOOQ](https://www.jooq.org/) (which supports `r2dbc-postgresql` under the hood) for higher level SQL queries.
- We at first would start with a simple connection pool implementation: 1 fixed Postgresql connection per domain.
  The connection pool implementation could be backed by [r2dbc-pool](https://github.com/r2dbc/r2dbc-pool).

- Row Level Security usage would be optional, which enforces strict tenant isolation: domain A won't access domain B data even if we screw up James access control layer.
- We would need to do some benchmarks along the road to prove the gains we get from the Postgres implementation compared to the JPA one.

Once the Postgres mailbox implementation is stable, we will continue to invest in using Postgres on other blocks:
- Blob storage implementation
- Full-text search implementation
- Message queue implementation

## Consequences


=====================================================
== File: src/adr/0022-cassandra-message-inconsistency.md
=====================================================
# 22. Cassandra Message inconsistencies

Date: 2020-02-27

## Status

Accepted (lazy consensus) &amp; implemented

## Context

Messages are denormalized in Cassandra in order to:

 - access them by their unique identifier (messageId), for example through the JMAP protocol
 - access them by their mailbox identifier and Unique IDentifier within that mailbox (mailboxId + uid), for example 
 through the IMAP protocol

Here is the table organisation:

 - `messageIdTable` Holds mailbox and flags for each message, lookup by mailbox ID + UID
 - `imapUidTable` Holds mailbox and flags for each message, lookup by message ID

Failures during the denormalization process will lead to inconsistencies between the two tables.

This can lead to the following user experience:

```
BOB receives a message
The denormalization process fails
BOB can read the message via JMAP
BOB cannot read the message via IMAP

BOB marks a message as SEEN
The denormalization process fails
The message is SEEN in JMAP
The message is UNSEEN in IMAP
```

### Current operations

 - Adding a message:
   - (CassandraMessageMapper) First reference the message in `messageIdTable` then in `imapUidTable`.
   - (CassandraMessageIdMapper) First reference the message in `imapUidTable` then in `messageIdTable`.
 - Deleting a message:
   - (CassandraMessageMapper) First delete the message in `imapUidTable` then in `messageIdTable`.
   - (CassandraMessageIdMapper) Read the message metadata using `imapUidTable`, then first delete the message in 
   `imapUidTable` then in `messageIdTable`.
 - Copying a message:
   - (CassandraMessageMapper) Read the message first, then first reference the message in `messageIdTable` then
    in `imapUidTable`.
 - Moving a message:

=====================================================
== File: src/adr/0005-distributed-task-termination-ackowledgement.md
=====================================================
# 5. Distributed Task termination ackowledgement

Date: 2019-10-02

## Status

Accepted (lazy consensus) &amp; implemented

## Context

By switching the task manager to a distributed implementation, we need to be able to execute a `Task` on any node of the cluster.
We need a way for nodes to be signaled of any termination event so that we can notify blocking clients.

## Decision

 * Creating a `RabbitMQEventHandler` which publish `Event`s pushed to the task manager's event system to RabbitMQ
 * All the events which end a `Task` (`Completed`, `Failed`, and `Canceled`) have to be transmitted to other nodes

## Consequences

 * A new kind of `Event`s should be created: `TerminationEvent` which includes `Completed`, `Failed`, and `Canceled`
 * `TerminationEvent`s will be broadcasted on an exchange which will be bound to all interested components later
 * `EventSourcingSystem.dipatch` should use `RabbitMQ` to dispatch `Event`s instead of triggering local `Listener`s
 * Any node can be notified when a `Task` emits a termination event
 
## References

* [JIRA ticket](https://issues.apache.org/jira/projects/JAMES/issues/JAMES-2813)


=====================================================
== File: src/adr/0033-use-scala-in-event-sourcing-modules.md
=====================================================
# 33. Use scala in event sourcing modules

Date: 2019-12-13

## Status

Accepted (lazy consensus) &amp; implemented

## Context

At the time being James use the scala programming language in some parts of its code base, particularily for implementing the Distributed Task Manager,
which uses the event sourcing modules.

The module `event-store-memory` already uses Scala.

## Decision

What is proposed here, is to convert in Scala the event sourcing modules.
The modules concerned by this change are:
  -  `event-sourcing-core`
  -  `event-sourcing-pojo`
  -  `event-store-api`
  -  `event-store-cassandra`

## Rationales

This will help to standardize the `event-*` modules as `event-store-memory` is already written in Scala.
This change will avoid interopability concerns with the main consumers of those modules which are already written in Scala: see the distributed task manager.
In the long run this will allow to have a stronger typing in those parts of the code and to have a much less verbose code.

## Consequences

We will have to mitigate the pervading of the Scale API in the Java code base by implementing Java facade.

## References

* [JIRA](https://issues.apache.org/jira/browse/JAMES-3009)

=====================================================
== File: src/adr/0061-delegation.md
=====================================================
# 61. Delegation

Date: 2022-09-13

## Status

Accepted (lazy consensus).

Implemented. 

## Context

Delegation is a common feature for email servers:

```
As user A I want to access mailbox of user B.
```

James currently supports a similar feature called impersonation:

```
As an administrator I want to acces mailbox of user B.
```

Impersonation can for instance be used to perform migrations with tools like IMAP-Sync.

## Decision

Implement delegation in Apache James (opt in).

Reuse APIs used for impersonation to also back delegation up. Technically if user B delegates his
account to user A then user A can impersonate user B.

Stored delegated access in a Cassandra database and expose it through webadmin.

Support delegation while logging in IMAP/SMTP. Both LOGIN/PLAIN authentication and OIDC
authentication are supported.

## Consequences

Logging traces belongs to the target user and not the user that really authenticated
though an intermediate log upon logging should allow a correlation.

Associated risk:
 - Special care needs to be paid to delegation as it can fall into the `improper authorization` 
 attack class and might result in data leaks / modification / deletion. However, as delegation 
 is performed upon logging the attack surface is limited, and typically simpler than traditional
 right management systems.

## Follow-up work

=====================================================
== File: src/adr/0045-support-jmap-push-with-mailbox-changes-implementation.md
=====================================================
# 45. Support JMAP Push with Mailbox/changes implementation

Date: 2020-12-08

## Status

Accepted (lazy consensus).

Implemented.

## Context

JMAP Push notifications allow clients to efficiently update (almost) instantly to stay in sync with data changes on the server. 

In order to support this, we need to handle the **state** property that comes with JMAP get/set request. This means that James needs to be able 
to record a new state for objects whenever a change happens as well as return the most recent state to the client when fetching objects. 

First step is to implement Mailbox/changes. 

## Decision

We will implement a mechanism to record all the changes happening to Mailbox objects in the form of a list of **mailboxId**. When an event such as  
created/updated/destroyed occur, or when message is appended to a mailbox we will store their **mailboxIds** along with a **state** object
in a Cassandra table.  

Each state will have a list of changes, and all the **mailboxId** will be stored as separated lists corresponding to the change which they represent: **created**, **updated**, **destroyed**.
For the case when messages are appended to a mailbox, it will be counted as an updated event and that mailboxId should be stored in **updated** list. 

Leveraging the **MailboxChanges** table, we can now fetch all the changes that have occurred since a particular **state**.

States are stored in Cassandra as time based UUID (**TimeUUID**). This ensures that no conflicting changes will happen in the case when two or more events occur at the same point in time.
**TimeUUID** also allows **state** to be sorted in chronological order.

Components that need to be implemented:

- MailboxChangesRepository: Allows storing and fetching the **state** along with the lists of **mailboxId** in **MailboxChanges** table.
- MailboxChangeListener: Listens to changes and triggers the record creation in **MailboxChanges** table.
- MailboxChangeMethod: Handles the **state** property, allowing client to fetch the changes since a particular state. 
- MailboxSetMethod/MailboxGetMethod needs to query the MailboxChangesRepository for their states properties.
 
## Example of a Mailbox/changes request/response

**Request**

```
[[&quot;Mailbox/changes&quot;, {
  &quot;accountId&quot;: &quot;29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6&quot;,
  &quot;sinceState&quot;: &quot;dd3721a6-b3ee-4884-8762-fccc0c576438&quot;
}, &quot;t0&quot;]]
```

=====================================================
== File: src/adr/0010-enable-elasticsearch-routing.md
=====================================================
# 10 Enable ElasticSearch routing

Date: 2019-10-17

## Status

Accepted (lazy consensus) &amp; implemented

Additional performance testing is required for adoption.

## Context

Our queries are mostly bounded to a mailbox or a user. We can easily
limit the number of ElasticSearch nodes involved in a given query by
grouping the underlying documents on the same node using a routing key.

Without a routing key, each shard needs to execute the query. The coordinator
needs also to be waiting for the slowest shard.

Using the routing key unlocks significant throughput enhancement (proportional
to the number of shards) and also a possible high percentile latency enhancement.

As most requests are restricted to a single coordination, most search requests will
hit a single shard, as opposed to non routed searches which would have hit each shards 
(each shard would return the number of searched documents, to be ordered and limited 
again in the coordination node). This allows to be more linearly scalable.

## Decision

Enable ElasticSearch routing.

Messages should be indexed by mailbox.

Quota Ratio should be indexed by user.

## Consequences

A data reindex is needed.

On a single ElasticSearch node with 5 shards, we noticed latency reduction for mailbox search (2x mean time and 3x 99 
percentile reduction)

## References

 - https://www.elastic.co/guide/en/elasticsearch/reference/6.3/mapping-routing-field.html
 - [JIRA](https://issues.apache.org/jira/browse/JAMES-2917)
 - [PR discussing this ADR](https://github.com/apache/james-project/pull/171)

=====================================================
== File: protocols/smtp/src/test/resources/a50.eml
=====================================================
Subject: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Message-ID: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
X-Sender: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
User-Agent: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

=====================================================
== File: server/README.crypto
=====================================================
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See &lt;http://www.wassenaar.org/&gt; for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

The following provides more details on the included cryptographic software: 
  Apache James Server uses third party cryptography software including   
      bcjmail and bcprov libraries by &quot;The Legion of the Bouncy Castle&quot; http://www.bouncycastle.org, 
      jasypt library by &quot;Jasypt.org&quot; http://www.jasypt.org/ 
      and the Java Runtime Environment.
      

=====================================================
== File: server/queue/queue-memory/pom.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

    &lt;parent&gt;
        &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
        &lt;artifactId&gt;james-server&lt;/artifactId&gt;
        &lt;version&gt;3.9.0-SNAPSHOT&lt;/version&gt;
        &lt;relativePath&gt;../../pom.xml&lt;/relativePath&gt;
    &lt;/parent&gt;

    &lt;artifactId&gt;james-server-queue-memory&lt;/artifactId&gt;

    &lt;name&gt;Apache James :: Server :: Mail Queue :: Memory&lt;/name&gt;

    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-mailet-test&lt;/artifactId&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;james-server-core&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;james-server-queue-api&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;james-server-queue-api&lt;/artifactId&gt;
            &lt;type&gt;test-jar&lt;/type&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;james-server-testing&lt;/artifactId&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;testing-base&lt;/artifactId&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;javax.annotation&lt;/groupId&gt;
            &lt;artifactId&gt;javax.annotation-api&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;

=====================================================
== File: server/apps/memory-app/src/main/extensions-jars/README.md
=====================================================
# Adding Jars to JAMES

The jar in this folder will be added to JAMES classpath when mounted under /root/extensions-jars inside the running container.

You can use it to add your custom Mailets/Matchers.

=====================================================
== File: server/apps/memory-app/src/main/scripts/james-cli
=====================================================
#!/bin/bash

java -cp /root/resources:/root/classes:/root/libs/* org.apache.james.cli.ServerCmd &quot;$@&quot;

=====================================================
== File: server/apps/memory-app/src/test/resources/jwt_publickey
=====================================================
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtlChO/nlVP27MpdkG0Bh
16XrMRf6M4NeyGa7j5+1UKm42IKUf3lM28oe82MqIIRyvskPc11NuzSor8HmvH8H
lhDs5DyJtx2qp35AT0zCqfwlaDnlDc/QDlZv1CoRZGpQk1Inyh6SbZwYpxxwh0fi
+d/4RpE3LBVo8wgOaXPylOlHxsDizfkL8QwXItyakBfMO6jWQRrj7/9WDhGf4Hi+
GQur1tPGZDl9mvCoRHjFrD5M/yypIPlfMGWFVEvV5jClNMLAQ9bYFuOc7H1fEWw6
U1LZUUbJW9/CH45YXz82CYqkrfbnQxqRb2iVbVjs/sHopHd1NTiCfUtwvcYJiBVj
kwIDAQAB
-----END PUBLIC KEY-----

=====================================================
== File: server/apps/memory-app/src/assemble/README.adoc
=====================================================
= Guice-Memory Module How-to

== Requirements

 * Java 11 SDK

== Running

To run james, you have to create a directory containing required configuration files.

James requires the configuration to be in a subfolder of working directory that is called
**conf**. A [sample directory](https://github.com/apache/james-project/tree/master/server/container/guice/memory-guice/sample-configuration)
is provided with some default values you may need to replace. You will need to update its content to match your needs.

You also need to generate a keystore with the following command:

[source]
----
$ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore
----

Once everything is set up, you just have to run the jar with:

[source]
----
$ java -Dworking.directory=. -Dlogback.configurationFile=conf/logback.xml -Djdk.tls.ephemeralDHKeySize=2048 -jar james-server-memory-guice.jar
----

Note that binding ports below 1024 requires administrative rights.

=====================================================
== File: server/apps/memory-app/src/assemble/extensions-jars.txt
=====================================================
# Adding Jars to JAMES

The jar in this folder will be added to JAMES classpath when mounted under /root/extensions-jars inside the running container.

You can use it to add you customs Mailets/Matchers.

=====================================================
== File: server/apps/memory-app/README.md
=====================================================
# James Memory server

In order to build both the ZIP and docker packaging, run:

```
mvn clean install -DskipTests
```

## ZIP distribution

Available in `target` directory, the ZIP include detailed instructions.

## Docker distribution

To import the image locally:

```
docker image load -i target/jib-image.tar
```

Then run it:

```
docker run apache/james:memory-latest
```


For security reasons you are required to generate your own keystore, that you can mount into the container via a volume:

```
keytool -genkey -alias james -keyalg RSA -keystore keystore
docker run -v $PWD/keystore:/root/conf/keystore apache/james:memory-latest
```

In the case of quick start James without manually creating a keystore (e.g. for development),
James memory server will auto-generate keystore file with the default setting that is declared in `jmap.properties` (tls.keystoreURL, tls.secret)
Hence just run docker command:

```
docker run apache/james:memory-latest
```


Use the [JAVA_TOOL_OPTIONS environment option](https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#jvm-flags) 
to pass extra JVM flags. For instance:

```
docker run -e &quot;JAVA_TOOL_OPTIONS=-Xmx500m -Xms500m&quot; apache/james:memory-latest
```


=====================================================
== File: server/apps/memory-app/sample-configuration/extensions.properties
=====================================================
# This files enables customization of users extensions injections with guice.
# A user can drop some jar-with-dependencies within the ./extensions-jars folder and
# reference classes of these jars in some of James extension mechanisms.

# This includes mailets, matchers, mailboxListeners, preDeletionHooks, protocolHandlers, webAdmin routes

# Upon injections, the user can reference additional guice modules, that are going to be used only upon extensions instantiation.

#List of coma separated (',') fully qualified class names of additional guice modules to be used to instantiate extensions
#guice.extension.module=

=====================================================
== File: server/apps/memory-app/sample-configuration/deletedMessageVault.properties
=====================================================
# ============================================= Deleted Messages Vault Configuration ==================================
# Retention period for your deleted messages into the vault, after which they expire and can be potentially cleaned up
# Optional, default 1y
# retentionPeriod=1y

=====================================================
== File: server/apps/memory-app/sample-configuration/jvm.properties
=====================================================
# ============================================= Extra JVM System Properties ===========================================
# To avoid clutter on the command line, any properties in this file will be added as system properties on server start.

# Example: If you need an option -Dmy.property=whatever, you can instead add it here as
# my.property=whatever

# (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.
# This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.
# Below, data is stored in memory. Above data is stored on disk.
# Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware
# should however support a high throughput. Higher values will lead to faster single mail processing at the cost
# of higher heap usage.
#james.message.memory.threshold=12K

# Optional. Boolean. Defaults to false. Recommended value is false.
# Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
# be copied to temporary files?
#james.message.usememorycopy=false

# Mode level of resource leak detection. It is used to detect a resource not be disposed of before it's garbage-collected.
# Example `MimeMessageInputStreamSource`
# Optional. Allowed values are: none, simple, advanced, testing
#   - none: Disables resource leak detection.
#   - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default).
#   - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources.
#   - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team.
#james.lifecycle.leak.detection.mode=simple

# Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
# is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.
# Optional. Boolean. Defaults to true.
#james.protocols.mdc.hostname=true

# Manage netty leak detection level see https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
# io.netty.leakDetection.level=SIMPLE

# Should James exit on Startup error? Boolean, defaults to true.
# james.exit.on.startup.error=true

# Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false.
# james.fail.on.missing.configuration=true

# JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h.
sun.rmi.dgc.server.gcInterval=3600000000
sun.rmi.dgc.client.gcInterval=3600000000

# Automatically generate a JMX password upon start. CLI is able to retrieve this password. Not supported on windows.
james.jmx.credential.generation=true

# Disable Remote Code Execution feature from JMX

=====================================================
== File: server/apps/memory-app/sample-configuration/jmap.properties
=====================================================
# Configuration file for JMAP
# Read https://james.apache.org/server/config-jmap.html for further details

enabled=true

tls.keystoreURL=file://conf/keystore
tls.secret=james72laBalle
delay.sends.enabled=true

# Alternatively TLS keys can be supplied via PEM files
# tls.privateKey=file://conf/private.nopass.key
# tls.certificates=file://conf/certs.self-signed.csr
# An optional secret might be specified for the private key
# tls.secret=james72laBalle

#
# If you wish to use OAuth authentication, you should provide a valid JWT public key.
# The following entry specify the link to the URL of the public key file,
# which should be a PEM format file.
#
#jwt.publickeypem.url=file://conf/jwt_publickey

# Should simple Email/query be resolved against a Cassandra projection, or should we resolve them against ElasticSearch?
# This enables a higher resilience, but the projection needs to be correctly populated. False by default.
# view.email.query.enabled=true

# If you want to specify authentication strategies for Jmap draft version
# For custom Authentication Strategy not inside package &quot;org.apache.james.jmap.http&quot;, you have to specify its FQDN
# authentication.strategy.draft=AccessTokenAuthenticationStrategy,JWTAuthenticationStrategy,QueryParameterAccessTokenAuthenticationStrategy

# If you want to specify authentication strategies for Jmap rfc-8621 version
# For custom Authentication Strategy not inside package &quot;org.apache.james.jmap.http&quot;, you have to specify its FQDN
# authentication.strategy.rfc8621=JWTAuthenticationStrategy,BasicAuthenticationStrategy

# Prevent server side request forgery by preventing calls to the private network ranges. Defaults to true, can be disabled for testing.
# webpush.prevent.server.side.request.forgery=false

=====================================================
== File: server/apps/webadmin-cli/src/test/resources/jwt_publickey
=====================================================
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtlChO/nlVP27MpdkG0Bh
16XrMRf6M4NeyGa7j5+1UKm42IKUf3lM28oe82MqIIRyvskPc11NuzSor8HmvH8H
lhDs5DyJtx2qp35AT0zCqfwlaDnlDc/QDlZv1CoRZGpQk1Inyh6SbZwYpxxwh0fi
+d/4RpE3LBVo8wgOaXPylOlHxsDizfkL8QwXItyakBfMO6jWQRrj7/9WDhGf4Hi+
GQur1tPGZDl9mvCoRHjFrD5M/yypIPlfMGWFVEvV5jClNMLAQ9bYFuOc7H1fEWw6
U1LZUUbJW9/CH45YXz82CYqkrfbnQxqRb2iVbVjs/sHopHd1NTiCfUtwvcYJiBVj
kwIDAQAB
-----END PUBLIC KEY-----

=====================================================
== File: server/apps/webadmin-cli/src/test/resources/valid_token_admin_false.jwt
=====================================================
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbkBvcGVu
LXBhYXMub3JnIiwiYWRtaW4iOmZhbHNlLCJpYXQiOjE0ODkwNDA4Njd9.reQc3DiVvbQHF08oW1qOUyDJyv3tfzDNk8jhVZequiCdOI9vXnRlOe
-yDYktd4WT8MYhqY7MgS-wR0vO9jZFv8ZCgd_MkKCvCO0HmMjP5iQPZ0kqGkgWUH7X123tfR38MfbCVAdPDba-K3MfkogV1xvDhlkPScFr_6MxE
xtedOK2JnQZn7t9sUzSrcyjWverm7gZkPptkIVoS8TsEeMMME5vFXe_nqkEG69q3kuBUm_33tbR5oNS0ZGZKlG9r41lHBjyf9J1xN4UYV8n866d
a7RPPCzshIWUtO0q9T2umWTnp-6OnOdBCkndrZmRR6pPxsD5YL0_77Wq8KT_5__fGA

=====================================================
== File: server/apps/webadmin-cli/src/test/resources/valid_token_admin_true.jwt
=====================================================
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbkBvcGVuL
XBhYXMub3JnIiwiYWRtaW4iOnRydWUsImlhdCI6MTQ4OTAzODQzOH0.rgxCkdWEa-92a4R-72a9Z49k4LRvQDShgci5Y7qWRUP9IGJCK-lMkrHF
4H0a6L87BYppxVW701zaZ6dNxRMvHnjLBBWnPsC2B0rkkr2hEL2zfz7sb-iNGV-J4ICx97t8-TfQ5rz3VOX0FwdusPL_rJtmlGEGRivPkR6_aBe1
kQnvMlwpqF_3ox58EUqYJk6lK_6rjKEV3Xfre31IMpuQUy6c7TKc95sL2-13cknelTierBEmZ00RzTtv9SHIEfzZTfaUK2Wm0PvnQjmU2nIdEvU
EqE-jrM3yYXcQzoO-YTQnEhdl-iqbCfmEpYkl2Bx3eIq7gRxxnr7BPsX6HrCB0w

=====================================================
== File: server/apps/webadmin-cli/README.md
=====================================================
# A WebAdmin based CLI for Apache James

## Development

Webadmin command-line interface is an upcoming replacement for the outdated, security-vulnerable JMX command-line interface. It also aims at providing a more modern and intuitive interface.

## Run the command line

## Syntax

General syntax to run the command line

```   
$ ./james-cli [OPTION] ENTITY ACTION {ARGUMENT}
```

where

    OPTION: optional parameter when running the command line,
  
    ENTITY: represents the entity to perform action on,
  
    ACTION: name of the action to perform,
  
    ARGUMENT: arguments needed for the action.

Example: 
```
$ ./james-cli --url http://127.0.0.1:9999 domain list
```

The above command lists all domain names available on domain route at address http://127.0.0.1:9999. 
It does not require any argument to execute. 

The following options can be used:

--url : Without it, the default value is http://127.0.0.1:8000.

When James server's jwt setting is enabled, jwt options are required:

--jwt-token : pass the jwt token directly as plain text. E.g: 
```
$ ./james-cli --url http://127.0.0.1:8000 --jwt-token eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJlc24iLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNjA0Mjg3OTU3fQ.IY3AWg9lQE4muXg8iRu1nbluTm786_6aLcoEylCGcbtGcEOp81Neani1-_17xGp2aF6kxBJva0_f_ADUplhfirGXwoxM8evcsdmQBhNGDfa-oXT_a-dd6n7MMPweGOFGhjxnTRvNHpyqDcfNuGGGcB8OfzOsN5epWNkhlivk2OSuY8vR8fHB9Es1Oiv1i8D5H93-K5IXParVLpAtj7uLZT9b7G-kjxlQagApH8USx6JlqIjMwhvM--79SrzPKZ2AtM59NfDT4g6GPaMNntQvXr06Xu3Leys97cot2rsXNfXY1OohorXiYiZ66-eMRcQ7pHF-NyS6dlg87rnMQlpKHw domain list
```
Commands with valid token with admin=true claim should pass James's authentication.

--jwt-from-file : pass the jwt token through a file (such as token.jwt). E.g:
```
$ ./james-cli --url http://127.0.0.1:8000 --jwt-from-file token.jwt domain list
```

=====================================================
== File: server/apps/webadmin-cli/james-cli
=====================================================
#!/bin/bash

java -jar target/james-cli.jar &quot;$@&quot;

=====================================================
== File: server/apps/scaling-pulsar-smtp/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    depends_on:
      - s3
      - pulsar
      - postgres
    image: apache/james:scaling-pulsar-smtp-latest
    container_name: james
    hostname: james.local
    ports:
      - &quot;80:80&quot;
      - &quot;25:25&quot;
      - &quot;110:110&quot;
      - &quot;143:143&quot;
      - &quot;465:465&quot;
      - &quot;587:587&quot;
      - &quot;993:993&quot;
      - &quot;8000:8000&quot;
      - &quot;5005:5005&quot;
    environment:
      #- JDK_JAVA_OPTIONS=-Dlogback.configurationFile=/root/conf/logback.xml -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=0.0.0.0:5005 -Dworking.directory=/root/
      - JDK_JAVA_OPTIONS=-Dlogback.configurationFile=/root/conf/logback.xml -Dworking.directory=/root/
      - OBJECTSTORAGE_S3_ENDPOINT=http://s3.docker.test:8000/
      - OBJECTSTORAGE_S3_REGION=us-east-1
      - OBJECTSTORAGE_S3_ACCESSKEYID=accessKey1
      - OBJECTSTORAGE_S3_SECRETKEY=secretKey1
      - DATABASE_URL=jdbc:postgresql://postgres/postgres
      - DATABASE_USERNAME=postgres
      - DATABASE_PASSWORD=password
      - PULSAR_BROKER_URI=pulsar://pulsar:6650
      - PULSAR_ADMIN_URI=http://pulsar:8080/
      - PULSAR_NAMESPACE=public/default
    volumes:
      #- $PWD/mariadb-java-client-2.7.2.jar:/root/libs/mariadb-java-client-2.7.2.jar
      #- $PWD/sample-configuration/james-database.properties:/root/conf/james-database.properties
      #- $PWD/sample-configuration/pulsar.properties:/root/conf/pulsar.properties
      #- $PWD/sample-configuration/blob.properties:/root/conf/blob.properties
      #- $PWD/sample-configuration/mailetcontainer.xml:/root/conf/mailetcontainer.xml
      #- $PWD/sample-configuration/mailrepositorystore.xml:/root/conf/mailrepositorystore.xml
      #- $PWD/sample-configuration/jvm.properties:/root/conf/jvm.properties
      #- $PWD/keystore:/root/conf/keystore
      - ./sample-configuration:/root/conf

  s3:
    image: zenko/cloudserver:8.2.6
    container_name: s3.docker.test
    ports:

=====================================================
== File: server/apps/scaling-pulsar-smtp/README.adoc
=====================================================
= Pulsar backed SMTP processing

== App goals

This app provides an easily scalable SMTP processing module based on Apache Pulsar for small to large deployments. The idea being that it is easy enough to operate this assembly at a &quot;reasonable&quot; cost in the cloud until the scale is large enough to warrant switching to the fully distributed app.

In order to support such small deployments destined to grow this app relies on :
- Apache pulsar as there are cost-efficient SAAS deployments that make this app easy to deploy
- A Blobstore (for mail repository) as they are very cost-efficient and available at most providers in the Cloud market.
- A PostgresSQL database for reference data (domain list, recipient rewrite table and users). PostgreSQL databases as a service is available on multiple cloud platform and for this kind of information entry tiers should allow to operate a reasonable service. 

== Building

In order to build the docker packaging, run:

----
mvn clean install -DskipTests

----

== ZIP distribution

Available in `target` directory, the ZIP include detailed instructions.

== Docker distribution

To import the image locally:

----
docker image load -i target/jib-image.tar

----

Then run it:

----
docker run apache/james:scaling-pulsar-smtp-latest

----

For security reasons you are required to generate your own keystore, that you can mount into the container via a volume:

----
keytool -genkey -alias james -keyalg RSA -keystore keystore
docker run -v $PWD/keystore:/root/conf/keystore apache/james:scaling-pulsar-smtp-latest
----

In the case of quick start James without manually creating a keystore (e.g. for development), just input the command argument `--generate-keystore` when running,
James will auto-generate keystore file with the default setting that is declared in `jmap.properties` (tls.keystoreURL, tls.secret)


=====================================================
== File: server/apps/scaling-pulsar-smtp/src/main/scripts/james-cli
=====================================================
#!/bin/bash

java -cp /root/resources:/root/classes:/root/libs/* org.apache.james.cli.ServerCmd &quot;$@&quot;

=====================================================
== File: server/apps/scaling-pulsar-smtp/sample-configuration/extensions.properties
=====================================================
# This files enables customization of users extensions injections with guice.
# A user can drop some jar-with-dependencies within the ./extensions-jars folder and
# reference classes of these jars in some of James extension mechanisms.

# This includes mailets, matchers, mailboxListeners, preDeletionHooks, protocolHandlers, webAdmin routes

# Upon injections, the user can reference additional guice modules, that are going to be used only upon extensions instantiation.

#List of coma separated (',') fully qualified class names of additional guice modules to be used to instantiate extensions
#guice.extension.module=

=====================================================
== File: server/apps/scaling-pulsar-smtp/sample-configuration/pulsar.properties
=====================================================
#broker.uri=pulsar://pulsar:6650
broker.uri=${env:PULSAR_BROKER_URI}
#admin.uri=http://pulsar:8080/
admin.uri=${env:PULSAR_ADMIN_URI}
#namespace=public/default
namespace=${env:PULSAR_NAMESPACE}

=====================================================
== File: server/apps/scaling-pulsar-smtp/sample-configuration/scriptFile.scala
=====================================================
&lt;?xml version=&quot;1.0&quot;?&gt;

=====================================================
== File: server/apps/scaling-pulsar-smtp/sample-configuration/jvm.properties
=====================================================
# ============================================= Extra JVM System Properties ===========================================
# To avoid clutter on the command line, any properties in this file will be added as system properties on server start.

# Example: If you need an option -Dmy.property=whatever, you can instead add it here as
# my.property=whatever

# (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.
# This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.
# Below, data is stored in memory. Above data is stored on disk.
# Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware
# should however support a high throughput. Higher values will lead to faster single mail processing at the cost
# of higher heap usage.
#james.message.memory.threshold=12K

# Optional. Boolean. Defaults to false. Recommended value is false.
# Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
# be copied to temporary files?
#james.message.usememorycopy=false

# Mode level of resource leak detection. It is used to detect a resource not be di  sposed of before it's garbage-collected.
# Example `MimeMessageInputStreamSource`
# Optional. Allowed values are: none, simple, advanced, testing
#   - none: Disables resource leak detection.
#   - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default).
#   - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources.
#   - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team.
#james.lifecycle.leak.detection.mode=simple

# Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
# is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.
# Optional. Boolean. Defaults to true.
#james.protocols.mdc.hostname=true

# Manage netty leak detection level see https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
# io.netty.leakDetection.level=SIMPLE

# Should James exit on Startup error? Boolean, defaults to true. This prevents partial startup.
# james.exit.on.startup.error=true

# Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false.
# james.fail.on.missing.configuration=true

# JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h.
#sun.rmi.dgc.server.gcInterval=3600000000
#sun.rmi.dgc.client.gcInterval=3600000000

=====================================================
== File: server/apps/scaling-pulsar-smtp/sample-configuration/logback.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration&gt;

        &lt;contextListener class=&quot;ch.qos.logback.classic.jul.LevelChangePropagator&quot;&gt;
                &lt;resetJUL&gt;true&lt;/resetJUL&gt;
        &lt;/contextListener&gt;

        &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} %highlight([%-5level]) %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;appender name=&quot;LOG_FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
                &lt;file&gt;/logs/james.log&lt;/file&gt;
                &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.FixedWindowRollingPolicy&quot;&gt;
                    &lt;fileNamePattern&gt;/logs/james.%i.log.tar.gz&lt;/fileNamePattern&gt;
                    &lt;minIndex&gt;1&lt;/minIndex&gt;
                    &lt;maxIndex&gt;3&lt;/maxIndex&gt;
                &lt;/rollingPolicy&gt;

                &lt;triggeringPolicy class=&quot;ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy&quot;&gt;
                    &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
                &lt;/triggeringPolicy&gt;

                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;root level=&quot;WARN&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
                &lt;appender-ref ref=&quot;LOG_FILE&quot; /&gt;
        &lt;/root&gt;

        &lt;logger name=&quot;org.apache.james&quot; level=&quot;INFO&quot; /&gt;

&lt;/configuration&gt;

=====================================================
== File: server/apps/scaling-pulsar-smtp/sample-configuration/blob.properties
=====================================================
# ============================================= BlobStore Implementation ==================================
# Read https://james.apache.org/server/config-blobstore.html for further details

# Choose your BlobStore implementation
# Mandatory, allowed values are: cassandra, s3
# *WARNING*: JAMES-3591 Cassandra is not made to store large binary content, its use will be suboptimal compared to
# alternatives (namely S3 compatible BlobStores backed by for instance S3, MinIO or Ozone)
implementation=s3

# ========================================= Deduplication ========================================
# If you choose to enable deduplication, the mails with the same content will be stored only once.
# Warning: Once this feature is enabled, there is no turning back as turning it off will lead to the deletion of all
# the mails sharing the same content once one is deleted.
# Mandatory, Allowed values are: true, false
deduplication.enable=false

# deduplication.family needs to be incremented every time the deduplication.generation.duration is changed
# Positive integer, defaults to 1
# deduplication.gc.generation.family=1

# Duration of generation.
# Deduplication only takes place within a singe generation.
# Only items two generation old can be garbage collected. (This prevent concurrent insertions issues and
# accounts for a clock skew).
# deduplication.family needs to be incremented everytime this parameter is changed.
# Duration. Default unit: days. Defaults to 30 days.
# deduplication.gc.generation.duration=30days

# ========================================= Encryption ========================================
# If you choose to enable encryption, the blob content will be encrypted before storing them in the BlobStore.
# Warning: Once this feature is enabled, there is no turning back as turning it off will lead to all content being
# encrypted. This comes at a performance impact but presents you from leaking data if, for instance the third party
# offering you a S3 service is compromised.
# Optional, Allowed values are: true, false, defaults to false
encryption.aes.enable=false

# Mandatory (if AES encryption is enabled) salt and password. Salt needs to be an hexadecimal encoded string
#encryption.aes.password=xxx
#encryption.aes.salt=73616c7479

# ========================================= Cassandra BlobStore Cache ======================================
# A cassandra cache can be enabled to reduce latency when reading small blobs frequently
# A dedicated keyspace with a replication factor of one is then used
# Cache eviction policy is TTL based
# Only blobs below a given threshold will be stored.
# To be noted that blobs are stored within a single Cassandra row, hence a low threshold should be used.

# Enable the cache? Optional and default to false. Must be a boolean.
cache.enable=false


=====================================================
== File: server/apps/spring-app/README.crypto
=====================================================
This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See &lt;http://www.wassenaar.org/&gt; for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

The following provides more details on the included cryptographic software: 
  Apache James Server uses third party cryptography software including   
      bcjmail and bcprov libraries by &quot;The Legion of the Bouncy Castle&quot; http://www.bouncycastle.org, 
      jasypt library by &quot;Jasypt.org&quot; http://www.jasypt.org/ 
      and the Java Runtime Environment.
      

=====================================================
== File: server/apps/spring-app/src/main/resources/log4j2.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;Configuration status=&quot;INFO&quot; monitorInterval=&quot;30&quot;&gt;
    &lt;Properties&gt;
        &lt;Property name=&quot;logDir&quot;&gt;${sys:app.home}/log&lt;/Property&gt;
        &lt;Property name=&quot;logLayoutTomcat&quot;&gt;%d{dd-MMM-yyyy HH:mm:ss.SSS} %level [%t] %C.%M:%L - %msg%n&lt;/Property&gt;
        &lt;Property name=&quot;logLayout1&quot;&gt;%d %-7level %logger{36} - %msg%n&lt;/Property&gt;
        &lt;Property name=&quot;logLayout2&quot;&gt;%d %-7level [%t] %C.%M:%L - %msg%n&lt;/Property&gt;
    &lt;/Properties&gt;

    &lt;Appenders&gt;
        &lt;Console name=&quot;Console&quot; target=&quot;SYSTEM_OUT&quot;&gt;
            &lt;PatternLayout pattern=&quot;${logLayoutTomcat}&quot; /&gt;
        &lt;/Console&gt;
        &lt;RollingFile name=&quot;SpringFramework&quot; fileName=&quot;${logDir}/springframework.log&quot;
                     filePattern=&quot;${logDir}/springframework.%d{yyyy-MM-dd}-%i.log.gz&quot;
                     ignoreExceptions=&quot;false&quot;&gt;
            &lt;PatternLayout pattern=&quot;${logLayoutTomcat}&quot;
                           charset=&quot;UTF-8&quot; /&gt;
            &lt;Policies&gt;
                &lt;!-- &lt;OnStartupTriggeringPolicy /&gt; --&gt;
                &lt;!-- &lt;SizeBasedTriggeringPolicy size=&quot;20 MB&quot; /&gt; --&gt;
                &lt;!-- &lt;TimeBasedTriggeringPolicy /&gt; --&gt;
            &lt;/Policies&gt;
            &lt;!-- 			&lt;DefaultRolloverStrategy&gt; --&gt;
            &lt;!-- 				&lt;Delete basePath=&quot;${logDir}&quot; maxDepth=&quot;2&quot;&gt; --&gt;
            &lt;!-- 					&lt;IfFileName --&gt;
            &lt;!-- 						glob=&quot;target/log4j2/roll-by-time-and-size/app.*.log.gz&quot; /&gt; --&gt;
            &lt;!-- 					&lt;IfLastModified age=&quot;20d&quot; /&gt; --&gt;
            &lt;!-- 				&lt;/Delete&gt; --&gt;
            &lt;!-- 			&lt;/DefaultRolloverStrategy&gt; --&gt;
        &lt;/RollingFile&gt;
        &lt;RollingFile name=&quot;openjpa&quot; fileName=&quot;${logDir}/openjpa.log&quot;
                     filePattern=&quot;${logDir}/openjpa.%d{yyyy-MM-dd}-%i.log.gz&quot;
                     ignoreExceptions=&quot;false&quot;&gt;
            &lt;PatternLayout pattern=&quot;${logLayoutTomcat}&quot;
                           charset=&quot;UTF-8&quot; /&gt;
            &lt;Policies&gt;
                &lt;!-- &lt;OnStartupTriggeringPolicy /&gt; --&gt;
                &lt;!-- &lt;SizeBasedTriggeringPolicy size=&quot;20 MB&quot; /&gt; --&gt;
                &lt;!-- &lt;TimeBasedTriggeringPolicy /&gt; --&gt;
            &lt;/Policies&gt;
            &lt;!-- 			&lt;DefaultRolloverStrategy&gt; --&gt;
            &lt;!-- 				&lt;Delete basePath=&quot;${logDir}&quot; maxDepth=&quot;2&quot;&gt; --&gt;
            &lt;!-- 					&lt;IfFileName --&gt;
            &lt;!-- 						glob=&quot;target/log4j2/roll-by-time-and-size/app.*.log.gz&quot; /&gt; --&gt;
            &lt;!-- 					&lt;IfLastModified age=&quot;20d&quot; /&gt; --&gt;
            &lt;!-- 				&lt;/Delete&gt; --&gt;
            &lt;!-- 			&lt;/DefaultRolloverStrategy&gt; --&gt;
        &lt;/RollingFile&gt;
        &lt;RollingFile name=&quot;James&quot; fileName=&quot;${logDir}/james.log&quot;

=====================================================
== File: server/apps/spring-app/src/main/resources/jmxremote.access
=====================================================
james-admin readwrite

=====================================================
== File: server/apps/spring-app/src/main/resources/jmxremote.password
=====================================================
james-admin changeme

=====================================================
== File: server/apps/spring-app/src/main/licensing/app/notice-for-binary.txt
=====================================================

  =========================================================================
  ==      NOTICE file for use with the Apache License, Version 2.0,      ==
  =========================================================================
  
  Apache JAMES Server
  Copyright 1999-2011 The Apache Software Foundation
  
  This product includes software developed at
  The Apache Software Foundation (http://www.apache.org/).
      


  Download the source for:
    jakarta.mail-${version}.jar from https://github.com/eclipse-ee4j/mail/releases
	jakarta.activation-${version}.jar from https://github.com/eclipse-ee4j/jaf/releases

  This distribution contains third party resources requiring the following notices:

    
  For 
    jasypt-1.6.jar
  

        This distribution includes cryptographic software.  The country in 
        which you currently reside may have restrictions on the import, 
        possession, use, and/or re-export to another country, of 
        encryption software.  BEFORE using any encryption software, please 
        check your country's laws, regulations and policies concerning the
        import, possession, or use, and re-export of encryption software, to 
        see if this is permitted.  See http://www.wassenaar.org/ for more
        information.
        
        The U.S. Government Department of Commerce, Bureau of Industry and
        Security (BIS), has classified this software as Export Commodity 
        Control Number (ECCN) 5D002.C.1, which includes information security
        software using or performing cryptographic functions with asymmetric
        algorithms.  The form and manner of this distribution makes it 
        eligible for export under the License Exception ENC Technology 
        Software Unrestricted (TSU) exception (see the BIS Export 
        Administration Regulations, Section 740.13) for both object code and 
        source code.
        
        The following provides more details on the cryptographic software 
        used (note that this software is not included in the distribution):
        
          * The PBE Encryption facilities require the Java Cryptography 
            extensions: http://java.sun.com/javase/technologies/security/.
        
        ---------------------------------

=====================================================
== File: server/apps/spring-app/src/debian/control/control
=====================================================
Source: apache-james
Package: ${artifactId}
Version: ${project.version}
Section: contrib/java
Priority: optional
Maintainer: Apache James Team &lt;server-dev@james.apache.org&gt;
Uploaders: Ioan Eugen Stan &lt;ieugen@apache.org&gt;
Architecture: all
Homepage: http://james.apache.org
Depends: default-jre-headless | java6-runtime-headless | java-6-runtime
Provides: imap-server, mail-transport-agent, pop3-server
Conflicts: mail-transport-agent
Description: Hi-performance, modular and extensible Java based email server.
  The Apache James Project delivers a rich set of open source modules and 
 libraries, written in Java, related to Internet mail communication which build
 into an advanced enterprise mail server.
 James Server provides a mailet container: the email processing is delegated to 
 independent, extensible, pluggable agents specified by the Mailet API. Any 
 function which is not already available (from James or from a third party) can
 be developed.

=====================================================
== File: server/apps/distributed-pop3-app/docker-configuration/jvm.properties
=====================================================
# ============================================= Extra JVM System Properties ===========================================
# To avoid clutter on the command line, any properties in this file will be added as system properties on server start.

# Example: If you need an option -Dmy.property=whatever, you can instead add it here as
# my.property=whatever

# Required to locate Cassandra driver configuration
config.file=/root/conf/cassandra-driver.conf

# (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.
# This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.
# Below, data is stored in memory. Above data is stored on disk.
# Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware
# should however support a high throughput. Higher values will lead to faster single mail processing at the cost
# of higher heap usage.
#james.message.memory.threshold=12K

# Optional. Boolean. Defaults to false. Recommended value is false.
# Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
# be copied to temporary files?
#james.message.usememorycopy=false

# Mode level of resource leak detection. It is used to detect a resource not be disposed of before it's garbage-collected.
# Example `MimeMessageInputStreamSource`
# Optional. Allowed values are: none, simple, advanced, testing
#   - none: Disables resource leak detection.
#   - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default).
#   - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources.
#   - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team.
#james.lifecycle.leak.detection.mode=simple

# Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
# is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.
# Optional. Boolean. Defaults to true.
#james.protocols.mdc.hostname=true

# Manage netty leak detection level see https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
# io.netty.leakDetection.level=SIMPLE

# Should James exit on Startup error? Boolean, defaults to true. This prevents partial startup.
# james.exit.on.startup.error=true

# Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false.
# james.fail.on.missing.configuration=true

# JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h.
sun.rmi.dgc.server.gcInterval=3600000000
sun.rmi.dgc.client.gcInterval=3600000000

=====================================================
== File: server/apps/distributed-pop3-app/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    depends_on:
      cassandra:
        condition: service_healthy
      opensearch:
        condition: service_started
      tika:
        condition: service_started
      rabbitmq:
        condition: service_started
      s3:
        condition: service_started
    image: apache/james:distributed-pop3-latest
    container_name: james
    hostname: james.local
    ports:
      - &quot;80:80&quot;
      - &quot;25:25&quot;
      - &quot;110:110&quot;
      - &quot;143:143&quot;
      - &quot;465:465&quot;
      - &quot;587:587&quot;
      - &quot;993:993&quot;
      - &quot;8000:8000&quot;
    command:
      - --generate-keystore
    networks:
      - james

  opensearch:
    image: opensearchproject/opensearch:2.1.0
    environment:
      - discovery.type=single-node
      - DISABLE_INSTALL_DEMO_CONFIG=true
      - DISABLE_SECURITY_PLUGIN=true
    networks:
      james:
        aliases:
          - elasticsearch

  cassandra:
    image: cassandra:4.1.3
    ports:
      - &quot;9042:9042&quot;
    healthcheck:
      test: [&quot;CMD&quot;, &quot;cqlsh&quot;, &quot;-e&quot;, &quot;describe keyspaces&quot;]

=====================================================
== File: server/apps/distributed-pop3-app/README.adoc
=====================================================
= Guice-Distributed POP3 Server How-to

This server diverges from the distributed server by only using MessageId backed by a TimeUUID as a message identifier,
thus is multi-datacenter friendly, however comes with a reduced feature set (only supports SMTP protocol).

== Requirements

 * Java 11 SDK

Firstly, create your own user network on Docker for the James environment:

    $ docker network create --driver bridge james

Third party compulsory dependencies:

 * Cassandra 4.0
 * RabbitMQ-Management 3.8.18
 * Zenko Cloudserver or AWS S3

[source]
----
$ docker run -d --network james -p 9042:9042 --name=cassandra cassandra:4.1.3
$ docker run -d --network james -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:3.12.1-management
$ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 registry.scality.com/cloudserver/cloudserver:8.7.25
----

== Docker distribution

To import the image locally:

[source]
----
docker image load -i target/jib-image.tar
----

Then run it:

[source]
----
docker run --network james apache/james:distributed-pop3-latest
----

For security reasons you are required to generate your own keystore, that you can mount into the container via a volume:

[source]
----
keytool -genkey -alias james -keyalg RSA -keystore keystore
docker run --network james -v $PWD/keystore:/root/conf/keystore apache/james:distributed-pop3-latest
----


=====================================================
== File: server/apps/distributed-pop3-app/src/main/extensions-jars/README.md
=====================================================
# Adding Jars to JAMES

The jar in this folder will be added to JAMES classpath when mounted under /root/extensions-jars inside the running container.

You can use it to add your custom Mailets/Matchers.

=====================================================
== File: server/apps/distributed-pop3-app/src/main/scripts/james-cli
=====================================================
#!/bin/bash

java -cp /root/resources:/root/classes:/root/libs/* org.apache.james.cli.ServerCmd &quot;$@&quot;

=====================================================
== File: server/apps/distributed-pop3-app/src/test/resources/attachment.eml
=====================================================

=====================================================
== File: server/apps/distributed-pop3-app/src/test/resources/big.eml
=====================================================

=====================================================
== File: server/apps/distributed-pop3-app/src/test/resources/batchsizes.properties
=====================================================
# Those properties let you configure the number of messages queried at the same time.
# IMAP FETCH command
fetch.metadata=200
fetch.headers=200
fetch.body=100
fetch.full=50
# IMAP COPY command
copy=100
# IMAP MOVE command
move=100

=====================================================
== File: server/apps/distributed-pop3-app/src/test/resources/rabbitmq.properties
=====================================================
uri=amqp://james:james@rabbitmq_host:5672
management.uri=http://james:james@rabbitmq_host:15672/api/

=====================================================
== File: server/apps/distributed-pop3-app/sample-configuration/extensions.properties
=====================================================
# This files enables customization of users extensions injections with guice.
# A user can drop some jar-with-dependencies within the ./extensions-jars folder and
# reference classes of these jars in some of James extension mechanisms.

# This includes mailets, matchers, mailboxListeners, preDeletionHooks, protocolHandlers, webAdmin routes

# Upon injections, the user can reference additional guice modules, that are going to be used only upon extensions instantiation.

#List of coma separated (',') fully qualified class names of additional guice modules to be used to instantiate extensions
#guice.extension.module=

=====================================================
== File: server/apps/distributed-pop3-app/sample-configuration/deletedMessageVault.properties
=====================================================
# ============================================= Deleted Messages Vault Configuration ==================================

enabled=false

# Retention period for your deleted messages into the vault, after which they expire and can be potentially cleaned up
# Optional, default 1y
# retentionPeriod=1y

# Mailbox that will contain messages restored from the vault, will be created if it does not exist yet
# Optional, default 'Restored-Messages' ; must be set to INBOX for POP3
restoreLocation=INBOX

=====================================================
== File: server/apps/distributed-pop3-app/sample-configuration/jvm.properties
=====================================================
# ============================================= Extra JVM System Properties ===========================================
# To avoid clutter on the command line, any properties in this file will be added as system properties on server start.

# Example: If you need an option -Dmy.property=whatever, you can instead add it here as
# my.property=whatever

# Required to locate Cassandra driver configuration
config.file=conf/cassandra-driver.conf

# (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.
# This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.
# Below, data is stored in memory. Above data is stored on disk.
# Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware
# should however support a high throughput. Higher values will lead to faster single mail processing at the cost
# of higher heap usage.
#james.message.memory.threshold=12K

# Optional. Boolean. Defaults to false. Recommended value is false.
# Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
# be copied to temporary files?
#james.message.usememorycopy=false

# Mode level of resource leak detection. It is used to detect a resource not be disposed of before it's garbage-collected.
# Example `MimeMessageInputStreamSource`
# Optional. Allowed values are: none, simple, advanced, testing
#   - none: Disables resource leak detection.
#   - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default).
#   - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources.
#   - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team.
#james.lifecycle.leak.detection.mode=simple

# Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
# is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.
# Optional. Boolean. Defaults to true.
#james.protocols.mdc.hostname=true

# Manage netty leak detection level see https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
# io.netty.leakDetection.level=SIMPLE

# Should James exit on Startup error? Boolean, defaults to true. This prevents partial startup.
# james.exit.on.startup.error=true

# Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false.
# james.fail.on.missing.configuration=true

# JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h.
sun.rmi.dgc.server.gcInterval=3600000000
sun.rmi.dgc.client.gcInterval=3600000000

# Automatically generate a JMX password upon start. CLI is able to retrieve this password. Not supported on windows.

=====================================================
== File: server/apps/distributed-pop3-app/sample-configuration/logback.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration&gt;

        &lt;contextListener class=&quot;ch.qos.logback.classic.jul.LevelChangePropagator&quot;&gt;
                &lt;resetJUL&gt;true&lt;/resetJUL&gt;
        &lt;/contextListener&gt;

        &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} %highlight([%-5level]) %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;appender name=&quot;LOG_FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
                &lt;file&gt;/logs/james.log&lt;/file&gt;
                &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.FixedWindowRollingPolicy&quot;&gt;
                    &lt;fileNamePattern&gt;/logs/james.%i.log.tar.gz&lt;/fileNamePattern&gt;
                    &lt;minIndex&gt;1&lt;/minIndex&gt;
                    &lt;maxIndex&gt;3&lt;/maxIndex&gt;
                &lt;/rollingPolicy&gt;

                &lt;triggeringPolicy class=&quot;ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy&quot;&gt;
                    &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
                &lt;/triggeringPolicy&gt;

                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;root level=&quot;WARN&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
                &lt;appender-ref ref=&quot;LOG_FILE&quot; /&gt;
        &lt;/root&gt;

        &lt;logger name=&quot;org.apache.james&quot; level=&quot;INFO&quot; /&gt;
        &lt;logger name=&quot;com.datastax.driver.core.QueryLogger.SLOW&quot; level=&quot;DEBUG&quot; /&gt;


&lt;/configuration&gt;

=====================================================
== File: server/apps/distributed-pop3-app/sample-configuration/cassandra-driver.conf
=====================================================
# James reference configuration for the DataStax Java driver for Apache Cassandra&#xae;.
#
# Unless you use a custom mechanism to load your configuration (see
# SessionBuilder.withConfigLoader), all the values declared here will be used as defaults.
#
# See https://docs.datastax.com/en/developer/java-driver/4.13/manual/core/configuration/ for
# available options.
#
# Please note that contact point and authentication needs to be set in cassandra.properties for now.
datastax-java-driver {

  basic.request {
    timeout = 5 seconds

    consistency = QUORUM

    page-size = 5000

    serial-consistency = SERIAL
  }

  advanced.connection {
    connect-timeout = 5 seconds

    init-query-timeout = 5 seconds

    pool {
      local.size = 2

      remote.size = 2
    }

    max-requests-per-connection = 1024

    max-orphan-requests = 256

    warn-on-init-error = true
  }

  advanced.throttler {
    // class = org.apache.james.backends.cassandra.utils.LockLessConcurrencyLimitingRequestThrottler
    class = ConcurrencyLimitingRequestThrottler

    max-queue-size = 10000

    max-concurrent-requests = 192
  }

  advanced.reconnect-on-init = true


=====================================================
== File: server/apps/distributed-pop3-app/sample-configuration/batchsizes.properties
=====================================================
# Those properties let you configure the number of messages queried at the same time.
# IMAP FETCH command
fetch.metadata=200
fetch.headers=200
fetch.body=100
fetch.full=50
# IMAP COPY command
copy=100
# IMAP MOVE command
move=100

=====================================================
== File: server/apps/distributed-pop3-app/sample-configuration/blob.properties
=====================================================
# ============================================= BlobStore Implementation ==================================
# Read https://james.apache.org/server/config-blobstore.html for further details

# Choose your BlobStore implementation
# Mandatory, allowed values are: cassandra, s3
# *WARNING*: JAMES-3591 Cassandra is not made to store large binary content, its use will be suboptimal compared to
# alternatives (namely S3 compatible BlobStores backed by for instance S3, MinIO or Ozone)
implementation=s3

# ========================================= Deduplication ========================================
# If you choose to enable deduplication, the mails with the same content will be stored only once.
# Warning: Once this feature is enabled, there is no turning back as turning it off will lead to the deletion of all
# the mails sharing the same content once one is deleted.
# Mandatory, Allowed values are: true, false
deduplication.enable=false

# ========================================= Encryption ========================================
# If you choose to enable encryption, the blob content will be encrypted before storing them in the BlobStore.
# Warning: Once this feature is enabled, there is no turning back as turning it off will lead to all content being
# encrypted. This comes at a performance impact but presents you from leaking data if, for instance the third party
# offering you a S3 service is compromised.
# Optional, Allowed values are: true, false, defaults to false
encryption.aes.enable=false

# Mandatory (if AES encryption is enabled) salt and password. Salt needs to be an hexadecimal encoded string
#encryption.aes.password=xxx
#encryption.aes.salt=73616c7479
# Optional, defaults to PBKDF2WithHmacSHA512
#encryption.aes.private.key.algorithm=PBKDF2WithHmacSHA512

# ========================================= Cassandra BlobStore Cache ======================================
# A cassandra cache can be enabled to reduce latency when reading small blobs frequently
# A dedicated keyspace with a replication factor of one is then used
# Cache eviction policy is TTL based
# Only blobs below a given threshold will be stored.
# To be noted that blobs are stored within a single Cassandra row, hence a low threshold should be used.

# Enable the cache? Optional and default to false. Must be a boolean.
cache.enable=false

# Cache eviction policy is TTL based. Optional and defaults to 7 days. Must be a duration.
# Valid units: ms, sec, min, hour, day, week, month, year
# cache.cassandra.ttl=7days

# Maximum size of stored objects expressed in bytes. Must be strictly positive. Defaults to 8192.
# Units: bytes, Kib, MiB, GiB, TiB
# cache.sizeThresholdInBytes=8 KiB

# ============================================== ObjectStorage ============================================


=====================================================
== File: server/apps/distributed-pop3-app/sample-configuration/cassandra.properties
=====================================================
# Configuration file for cassandra mailbox
# Read https://james.apache.org/server/config-cassandra.html for further details
# Advanced Cassandra driver option needs to be set via cassandra-driver.conf configuration file

cassandra.nodes=cassandra
cassandra.keyspace.create=true
cassandra.keyspace=apache_james
#cassandra.user=cassandra
#cassandra.password=cassandra
cassandra.replication.factor=1
cassandra.retryConnection.maxRetries=200
cassandra.retryConnection.minDelay=5000

# Optional. Allows specifying consistency level ONE for reads in Cassandra BlobStore.
# Falls back to default read consistency level if the blob is missing.
# Defaults to false.
# optimistic.consistency.level.enabled=false

# Optional. Allows not to use lightweight transactions in CassandraMailRepository.
# If disabled we implement an idempotent behaviour (duplicates are overridden, missing entries upon deletes are ignored).
# Defaults to true.
# mailrepository.strong.consistency=true

=====================================================
== File: server/apps/distributed-pop3-app/sample-configuration/rabbitmq.properties
=====================================================
# RabbitMQ configuration

# Read https://james.apache.org/server/config-rabbitmq.html for further details

# Mandatory
uri=amqp://rabbitmq:5672
# If you use a vhost, specify it as well at the end of the URI
# uri=amqp://rabbitmq:5672/vhost

# Vhost to use for creating queues and exchanges
# Optional, only use this if you have invalid URIs containing characters like '_'
# vhost=vhost1

# Optional, default to the host specified as part of the URI.
# Allow creating cluster aware connections.
# hosts=ip1:5672,ip2:5672

# RabbitMQ Administration Management
# Mandatory
management.uri=http://rabbitmq:15672
# Mandatory
management.user=guest
# Mandatory
management.password=guest

# Configure retries count to retrieve a connection. Exponential backoff is performed between each retries.
# Optional integer, defaults to 10
#connection.pool.retries=10
# Configure initial duration (in ms) between two connection retries. Exponential backoff is performed between each retries.
# Optional integer, defaults to 100
#connection.pool.min.delay.ms=100
# Configure retries count to retrieve a channel. Exponential backoff is performed between each retries.
# Optional integer, defaults to 3
#channel.pool.retries=3
# Configure timeout duration (in ms) to obtain a rabbitmq channel. Defaults to 30 seconds.
# Optional integer, defaults to 30 seconds.
#channel.pool.max.delay.ms=30000
# Configure the size of the channel pool.
# Optional integer, defaults to 3
#channel.pool.size=3

# Boolean. Whether to activate Quorum queue usage for use cases that benefits from it (work queue).
# Quorum queues enables high availability.
# False (default value) results in the usage of classic queues.
#quorum.queues.enable=true

# Strictly positive integer. The replication factor to use when creating quorum queues.
#quorum.queues.replication.factor

# Parameters for the Cassandra administrative view

=====================================================
== File: server/apps/jpa-smtp-app/docker-compose.yml
=====================================================
version: '3'

# In order to start James JPA app on top of mariaDB:
# 1. Download the driver: `wget https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.7.2/mariadb-java-client-2.7.2.jar`
# 2. Generate the keystore with the default password `james72laBalle`: `keytool -genkey -alias james -keyalg RSA -keystore keystore`
# 3. Start MariaDB: `docker-compose up -d mariadb`
# 4. Start James: `docker-compose up james`

services:

  james:
    depends_on:
      - mariadb
    image: apache/james:jpa-smtp-latest
    container_name: james
    hostname: james.local
    volumes:
      - $PWD/mariadb-java-client-2.7.2.jar:/root/libs/mariadb-java-client-2.7.2.jar
      - $PWD/sample-configuration/james-database-mariadb.properties:/root/conf/james-database.properties
      - $PWD/keystore:/root/conf/keystore

  mariadb:
    image: mariadb:10.6
    environment:
      - MARIADB_ROOT_PASSWORD=test
      - MARIADB_DATABASE=test
      - MARIADB_USER=test
      - MARIADB_PASSWORD=test

=====================================================
== File: server/apps/jpa-smtp-app/README.adoc
=====================================================
= Guice-JPA SMTP Server How-to

This server target single node James deployments. By default, the derby database is used.

This server acts as a Mail Transfer Agent and do not embed the mailbox component.

== Requirements

* Java 11 SDK

== Running

To run james, you have to create a directory containing required configuration files.

James requires the configuration to be in a subfolder of working directory that is called
**conf**. A [sample directory](https://github.com/apache/james-project/tree/master/server/apps/jpa-smtp-app/sample-configuration)
is provided with some default values you may need to replace. You will need to update its content to match your needs.

You also need to generate a keystore with the following command:

[source]
----
$ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore
----

Once everything is set up, you just have to run the jar with:

[source]
----
$ java -javaagent:james-server-jpa-smtp-app.lib/openjpa-3.2.0.jar \
  -Dworking.directory=. \
  -Djdk.tls.ephemeralDHKeySize=2048 \
  -Dlogback.configurationFile=conf/logback.xml \
  -jar james-server-jpa-smtp-app.jar
----

Note that binding ports below 1024 requires administrative rights.

== Docker distribution

To import the image locally:

[source]
----
docker image load -i target/jib-image.tar
----

Then run it:

[source]

=====================================================
== File: server/apps/jpa-smtp-app/src/main/extensions-jars/README.md
=====================================================
# Adding Jars to JAMES

The jar in this folder will be added to JAMES classpath when mounted under /root/extensions-jars inside the running container.

You can use it to add your custom Mailets/Matchers.

=====================================================
== File: server/apps/jpa-smtp-app/src/main/scripts/james-cli
=====================================================
#!/bin/bash

java -cp /root/resources:/root/classes:/root/libs/* org.apache.james.cli.ServerCmd &quot;$@&quot;

=====================================================
== File: server/apps/jpa-smtp-app/src/assemble/extensions-jars.txt
=====================================================
# Adding Jars to JAMES

The jar in this folder will be added to JAMES classpath when mounted under /root/extensions-jars inside the running container.

You can use it to add you customs Mailets/Matchers.

=====================================================
== File: server/apps/jpa-smtp-app/conf/extensions.properties
=====================================================
# This files enables customization of users extensions injections with guice.
# A user can drop some jar-with-dependencies within the ./extensions-jars folder and
# reference classes of these jars in some of James extension mechanisms.

# This includes mailets, matchers, mailboxListeners, preDeletionHooks, protocolHandlers, webAdmin routes

# Upon injections, the user can reference additional guice modules, that are going to be used only upon extensions instantiation.

#List of coma separated (',') fully qualified class names of additional guice modules to be used to instantiate extensions
#guice.extension.module=

=====================================================
== File: server/apps/jpa-smtp-app/conf/jvm.properties
=====================================================
# ============================================= Extra JVM System Properties ===========================================
# To avoid clutter on the command line, any properties in this file will be added as system properties on server start.

# Example: If you need an option -Dmy.property=whatever, you can instead add it here as
# my.property=whatever

# (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.
# This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.
# Below, data is stored in memory. Above data is stored on disk.
# Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware
# should however support a high throughput. Higher values will lead to faster single mail processing at the cost
# of higher heap usage.
#james.message.memory.threshold=12K

# Optional. Boolean. Defaults to false. Recommended value is false.
# Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
# be copied to temporary files?
#james.message.usememorycopy=false

# Mode level of resource leak detection. It is used to detect a resource not be disposed of before it's garbage-collected.
# Example `MimeMessageInputStreamSource`
# Optional. Allowed values are: none, simple, advanced, testing
#   - none: Disables resource leak detection.
#   - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default).
#   - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources.
#   - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team.
#james.lifecycle.leak.detection.mode=simple

# Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
# is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.
# Optional. Boolean. Defaults to true.
#james.protocols.mdc.hostname=true

# Manage netty leak detection level see https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
# io.netty.leakDetection.level=SIMPLE

# Should James exit on Startup error? Boolean, defaults to true. This prevents partial startup.
# james.exit.on.startup.error=true

# Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false.
# james.fail.on.missing.configuration=true

# JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h.
sun.rmi.dgc.server.gcInterval=3600000000
sun.rmi.dgc.client.gcInterval=3600000000

# Automatically generate a JMX password upon start. CLI is able to retrieve this password. Not supported on windows.
james.jmx.credential.generation=true

# Disable Remote Code Execution feature from JMX

=====================================================
== File: server/apps/jpa-smtp-app/conf/logback.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration&gt;

        &lt;contextListener class=&quot;ch.qos.logback.classic.jul.LevelChangePropagator&quot;&gt;
                &lt;resetJUL&gt;true&lt;/resetJUL&gt;
        &lt;/contextListener&gt;

        &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} %highlight([%-5level]) %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;appender name=&quot;LOG_FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
                &lt;file&gt;/logs/james.log&lt;/file&gt;
                &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.FixedWindowRollingPolicy&quot;&gt;
                    &lt;fileNamePattern&gt;/logs/james.%i.log.tar.gz&lt;/fileNamePattern&gt;
                    &lt;minIndex&gt;1&lt;/minIndex&gt;
                    &lt;maxIndex&gt;3&lt;/maxIndex&gt;
                &lt;/rollingPolicy&gt;

                &lt;triggeringPolicy class=&quot;ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy&quot;&gt;
                    &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
                &lt;/triggeringPolicy&gt;

                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;root level=&quot;WARN&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
                &lt;appender-ref ref=&quot;LOG_FILE&quot; /&gt;
        &lt;/root&gt;

        &lt;logger name=&quot;org.apache.james&quot; level=&quot;INFO&quot; /&gt;

&lt;/configuration&gt;

=====================================================
== File: server/apps/jpa-smtp-app/sample-configuration/extensions.properties
=====================================================
# This files enables customization of users extensions injections with guice.
# A user can drop some jar-with-dependencies within the ./extensions-jars folder and
# reference classes of these jars in some of James extension mechanisms.

# This includes mailets, matchers, mailboxListeners, preDeletionHooks, protocolHandlers, webAdmin routes

# Upon injections, the user can reference additional guice modules, that are going to be used only upon extensions instantiation.

#List of coma separated (',') fully qualified class names of additional guice modules to be used to instantiate extensions
#guice.extension.module=

=====================================================
== File: server/apps/jpa-smtp-app/sample-configuration/jvm.properties
=====================================================
# ============================================= Extra JVM System Properties ===========================================
# To avoid clutter on the command line, any properties in this file will be added as system properties on server start.

# Example: If you need an option -Dmy.property=whatever, you can instead add it here as
# my.property=whatever

# (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.
# This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.
# Below, data is stored in memory. Above data is stored on disk.
# Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware
# should however support a high throughput. Higher values will lead to faster single mail processing at the cost
# of higher heap usage.
#james.message.memory.threshold=12K

# Optional. Boolean. Defaults to false. Recommended value is false.
# Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
# be copied to temporary files?
#james.message.usememorycopy=false

# Mode level of resource leak detection. It is used to detect a resource not be disposed of before it's garbage-collected.
# Example `MimeMessageInputStreamSource`
# Optional. Allowed values are: none, simple, advanced, testing
#   - none: Disables resource leak detection.
#   - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default).
#   - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources.
#   - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team.
#james.lifecycle.leak.detection.mode=simple

# Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
# is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.
# Optional. Boolean. Defaults to true.
#james.protocols.mdc.hostname=true

# Manage netty leak detection level see https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
# io.netty.leakDetection.level=SIMPLE

# Should James exit on Startup error? Boolean, defaults to true. This prevents partial startup.
# james.exit.on.startup.error=true

# Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false.
# james.fail.on.missing.configuration=true

# JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h.
sun.rmi.dgc.server.gcInterval=3600000000
sun.rmi.dgc.client.gcInterval=3600000000

# Automatically generate a JMX password upon start. CLI is able to retrieve this password. Not supported on windows.
james.jmx.credential.generation=true

# Disable Remote Code Execution feature from JMX

=====================================================
== File: server/apps/jpa-smtp-app/sample-configuration/logback.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration&gt;

        &lt;contextListener class=&quot;ch.qos.logback.classic.jul.LevelChangePropagator&quot;&gt;
                &lt;resetJUL&gt;true&lt;/resetJUL&gt;
        &lt;/contextListener&gt;

        &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} %highlight([%-5level]) %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;appender name=&quot;LOG_FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
                &lt;file&gt;/logs/james.log&lt;/file&gt;
                &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.FixedWindowRollingPolicy&quot;&gt;
                    &lt;fileNamePattern&gt;/logs/james.%i.log.tar.gz&lt;/fileNamePattern&gt;
                    &lt;minIndex&gt;1&lt;/minIndex&gt;
                    &lt;maxIndex&gt;3&lt;/maxIndex&gt;
                &lt;/rollingPolicy&gt;

                &lt;triggeringPolicy class=&quot;ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy&quot;&gt;
                    &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
                &lt;/triggeringPolicy&gt;

                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;root level=&quot;WARN&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
                &lt;appender-ref ref=&quot;LOG_FILE&quot; /&gt;
        &lt;/root&gt;

        &lt;logger name=&quot;org.apache.james&quot; level=&quot;INFO&quot; /&gt;

&lt;/configuration&gt;

=====================================================
== File: server/apps/conf/jmxremote.access
=====================================================
james-admin readwrite

=====================================================
== File: server/apps/conf/jmxremote.password
=====================================================
james-admin changeme

=====================================================
== File: server/apps/demo/initialdata.sh
=====================================================
#!/bin/bash

james-cli adddomain james.local

james-cli adduser user01@james.local 1234
james-cli adduser user02@james.local 1234
james-cli adduser user03@james.local 1234


=====================================================
== File: server/apps/demo/Dockerfile
=====================================================
# Run James
#
# VERSION	1.0

FROM apache/james:jpa-latest

# Install git
RUN apt-get update
RUN apt-get install -y git openssl

WORKDIR /root

RUN git clone https://github.com/vishnubob/wait-for-it.git wait-for-it
RUN cp /root/wait-for-it/wait-for-it.sh /usr/bin/wait-for-it.sh

COPY startup.sh /root
COPY initialdata.sh /root
COPY imapserver.xml /root/conf
COPY smtpserver.xml /root/conf
COPY pop3server.xml /root/conf

RUN chmod +x /root/startup.sh
RUN chmod +x /root/initialdata.sh

ENTRYPOINT [&quot;./startup.sh&quot;]

=====================================================
== File: server/apps/demo/startup.sh
=====================================================
#!/bin/bash

if [[ ! -e /root/conf/private.key ]]; then
    openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj &quot;/C=US/ST=Apache/L=Fundation/O=/CN=james.apache.org&quot; -keyout /root/conf/private.key -out /root/conf/private.csr
fi

wait-for-it.sh --host=localhost --port=9999 --strict --timeout=0 -- ./initialdata.sh &amp;

java -Djdk.tls.ephemeralDHKeySize=2048 \
     -classpath '/root/resources:/root/classes:/root/libs/*' \
     -javaagent:/root/libs/openjpa-3.2.0.jar \
     -Dlogback.configurationFile=/root/conf/logback.xml \
      -Dworking.directory=/root/ org.apache.james.JPAJamesServerMain

=====================================================
== File: server/apps/cli/README.adoc
=====================================================
== Apache James Server Command Line Interface

To invoke the James CLI from shell during your development process:

[source]
----
java -jar james-server-cli.jar -h localhost -p 9999 help
----

=====================================================
== File: server/apps/distributed-app/docker-configuration/jvm.properties
=====================================================
# ============================================= Extra JVM System Properties ===========================================
# To avoid clutter on the command line, any properties in this file will be added as system properties on server start.

# Required to locate Cassandra driver configuration
config.file=/root/conf/cassandra-driver.conf

# Example: If you need an option -Dmy.property=whatever, you can instead add it here as
# my.property=whatever

# (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.
# This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.
# Below, data is stored in memory. Above data is stored on disk.
# Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware
# should however support a high throughput. Higher values will lead to faster single mail processing at the cost
# of higher heap usage.
#james.message.memory.threshold=12K

# Optional. Boolean. Defaults to false. Recommended value is false.
# Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
# be copied to temporary files?
#james.message.usememorycopy=false

# Mode level of resource leak detection. It is used to detect a resource not be disposed of before it's garbage-collected.
# Example `MimeMessageInputStreamSource`
# Optional. Allowed values are: none, simple, advanced, testing
#   - none: Disables resource leak detection.
#   - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default).
#   - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources.
#   - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team.
#james.lifecycle.leak.detection.mode=simple

# Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
# is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.
# Optional. Boolean. Defaults to true.
#james.protocols.mdc.hostname=true

# Manage netty leak detection level see https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
# io.netty.leakDetection.level=SIMPLE

# Should James exit on Startup error? Boolean, defaults to true. This prevents partial startup.
# james.exit.on.startup.error=true

# Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false.
# james.fail.on.missing.configuration=true

# JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h.
sun.rmi.dgc.server.gcInterval=3600000000
sun.rmi.dgc.client.gcInterval=3600000000

=====================================================
== File: server/apps/distributed-app/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    depends_on:
      cassandra:
        condition: service_healthy
      opensearch:
        condition: service_started
      tika:
        condition: service_started
      rabbitmq:
        condition: service_started
      s3:
        condition: service_started
    image: apache/james:distributed-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    networks:
      - james
    ports:
      - &quot;80:80&quot;
      - &quot;25:25&quot;
      - &quot;110:110&quot;
      - &quot;143:143&quot;
      - &quot;465:465&quot;
      - &quot;587:587&quot;
      - &quot;993:993&quot;
      - &quot;8000:8000&quot;

  opensearch:
    image: opensearchproject/opensearch:2.1.0
    environment:
      - discovery.type=single-node
      - DISABLE_INSTALL_DEMO_CONFIG=true
      - DISABLE_SECURITY_PLUGIN=true
    networks:
      james:
        aliases:
          - elasticsearch

  cassandra:
    image: cassandra:4.1.3
    ports:
      - &quot;9042:9042&quot;
    healthcheck:
      test: [ &quot;CMD&quot;, &quot;cqlsh&quot;, &quot;-e&quot;, &quot;describe keyspaces&quot; ]

=====================================================
== File: server/apps/distributed-app/helm-chart/james/templates/secrets.yaml
=====================================================
apiVersion: v1
data:
  jwt_publickey: &quot;{{ .Values.james.secret.jwtPublicKey | b64enc }}&quot;
  jwt_privatekey: &quot;{{ .Values.james.secret.jwtPrivateKey | b64enc }}&quot;
kind: Secret
type: Opaque
metadata:
  name: james-jwt-key
---
apiVersion: v1
data:
  james-user: &quot;{{ .Values.james.secret.cassandraUser | b64enc }}&quot;
  james-password: &quot;{{ .Values.james.secret.cassandraPassword | b64enc }}&quot;
kind: Secret
type: Opaque
metadata:
  name: db-cassandra-account-james
---
{{- if and (.Values.james.secret.esUser) (.Values.james.secret.esPassword) }}
apiVersion: v1
data:
  james-user: &quot;{{ .Values.james.secret.esUser | b64enc }}&quot;
  james-password: &quot;{{ .Values.james.secret.esPassword | b64enc }}&quot;
kind: Secret
type: Opaque
metadata:
  name: db-es-account-james
{{- end }}
---
apiVersion: v1
data:
  dkim.key: &quot;{{ .Values.james.secret.dkimPrivateKey | b64enc }}&quot;
kind: Secret
type: Opaque
metadata:
  name: dkim-private-key 
---
apiVersion: v1
data:
  OS_S3_ENDPOINT: {{ .Values.james.secret.s3.endpoint | b64enc }}
  OS_S3_REGION: {{ .Values.james.secret.s3.region | b64enc }}
  OS_S3_ACCESSKEYID: {{ .Values.james.secret.s3.accessKeyId | b64enc }}
  OS_S3_SECRETKEY: {{ .Values.james.secret.s3.secretKey | b64enc }}
kind: Secret
type: Opaque
metadata:
  name: s3-james-credentials
---
apiVersion: v1
data:

=====================================================
== File: server/apps/distributed-app/helm-chart/james/templates/servicemonitor.yaml
=====================================================
{{- if .Values.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: james-service-monitor
  labels:
    {{- toYaml .Values.serviceMonitor.additionalLabels | nindent 4 }}
spec:
  jobLabel: jobLabel
  selector:
    matchLabels:
      app: james
  namespaceSelector:
    matchNames:
      - {{ .Release.Namespace }}
  endpoints:
  - port: web
    path: /metrics
{{- end }}

=====================================================
== File: server/apps/distributed-app/helm-chart/james/templates/james-admin-ingress.yaml
=====================================================
{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: james-admin
  {{- with .Values.ingress.annotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
spec:
{{- if .Values.ingress.tls }}
  tls:
  - hosts:
    - {{ .Values.dns.adminUrl }}
    {{ toYaml .Values.ingress.tls }}
{{- end }}    
  rules:
  - host: {{ .Values.dns.adminUrl }}
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service: 
            name: james-admin
            port:
              number: 8000
{{- end }}

=====================================================
== File: server/apps/distributed-app/helm-chart/james/templates/_docker-secrets.tpl
=====================================================
{{- define &quot;imagePullSecret&quot; }}
{{- printf &quot;{\&quot;auths\&quot;: {\&quot;%s\&quot;: {\&quot;auth\&quot;: \&quot;%s\&quot;}}}&quot; .Values.dockerCredentials.registry (printf &quot;%s:%s&quot; .Values.dockerCredentials.username .Values.dockerCredentials.password | b64enc) | b64enc }}
{{- end }}

=====================================================
== File: server/apps/distributed-app/helm-chart/james/templates/_helpers.tpl
=====================================================
{{/*
Builds up the JAVA_TOOL_OPTIONS env variable for java tunning James
*/}}
{{- define &quot;james.jvmOpts&quot; -}}
{{- if .Values.james.env.glowroot.enabled }}
{{- printf &quot;%s -javaagent:/root/glowroot/glowroot.jar&quot; .Values.james.env.jvmOpts }}
{{- else }}
{{- .Values.james.env.jvmOpts }}
{{- end }}
{{- end }}

=====================================================
== File: server/apps/distributed-app/helm-chart/james/templates/jmap-ingress.yaml
=====================================================
{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: jmap
  {{- with .Values.ingress.annotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
spec:
{{- if .Values.ingress.tls }}
  tls:
  - hosts:
    - {{ .Values.dns.jmapUrl }}
    {{ toYaml .Values.ingress.tls }}
{{- end }}    
  rules:
  - host: {{ .Values.dns.jmapUrl }}
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: jmap
            port:
              number: 80
{{- end }}

=====================================================
== File: server/apps/distributed-app/helm-chart/james/templates/deployment.yaml
=====================================================
{{- $elasticsearchUrl := include &quot;elasticsearch.url.list&quot; . }}
{{- $cassandraUrl := include &quot;cassandra.url.list&quot; . }}
{{- $jamesOpts := include &quot;james.jvmOpts&quot; . }}
apiVersion: apps/v1
kind: Deployment
metadata:
  name: james-jmap
spec:
  selector:
    matchLabels:
      instance: james-jmap
  replicas: {{ .Values.james.replicaJmapInstanceCount }}
  template:
    metadata:
      labels:
        app: james
        instance: james-jmap
    spec:
    {{- if .Values.dockerCredentials }}
      imagePullSecrets:
      - name: docker-registry-secret
    {{- end }}
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: app
                  operator: In
                  values:
                  - james
              topologyKey: &quot;kubernetes.io/hostname&quot;

      containers:
      - name: james-jmap
        image: {{ .Values.james.image }}
        readinessProbe:
          httpGet:
            path: /healthcheck/checks/Guice%20application%20lifecycle
            port: 8000
          initialDelaySeconds: 60
          periodSeconds: 10
        livenessProbe:
          httpGet:
            path: /healthcheck/checks/Guice%20application%20lifecycle
            port: 8000
          initialDelaySeconds: 91
          periodSeconds: 30

=====================================================
== File: server/apps/distributed-app/helm-chart/james/templates/service.yaml
=====================================================
kind: Service
apiVersion: v1
metadata:
  name: james-client
spec:
  selector:
    instance: james-imap-smtp
  type: ClusterIP
  ports:
    - protocol: TCP
      port: 465
      name: &quot;smtp-ssl&quot;
---
apiVersion: v1
kind: Service
metadata:
  name: james-imap
spec:
  selector:
    instance: james-imap-smtp
  ports:
    - protocol: TCP
      port: 993
      name : &quot;imap-ssl&quot;
---
kind: Service
apiVersion: v1
metadata:
  name: james-admin
spec:
  selector:
    app: james
  ports:
    - protocol: TCP
      port: 8000
      targetPort: 8000
      name: &quot;web&quot;
---
kind: Service
apiVersion: v1
metadata:
  name: jmap
spec:
  selector:
    instance: james-jmap
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      name: &quot;web&quot;

=====================================================
== File: server/apps/distributed-app/helm-chart/james/templates/_urls.tpl
=====================================================
{{/*
Contruct a temporary URL for Cassandra. This URL ends with a comma.
*/}}
{{- define &quot;cassandra.url.list&quot; -}}
  {{- $port := &quot;9042&quot; }}
  {{- $ns := .Values.cassandra.namespace }}

  {{- if eq .Values.cassandra.deploy &quot;as-pod&quot; }}
    {{- $count :=  int .Values.cassandra.replicaCount }}
    {{- range $index := until $count }}
      {{- printf &quot;cassandra-%d.%s:%s,&quot; $index $ns $port }}
    {{- end }}
  {{- else }}
    {{- range $ip := .Values.cassandra.ips }}
      {{- printf &quot;%s:%s,&quot; $ip $port }}
    {{- end }}
  {{- end }}
{{- end -}}


{{/*
Contruct a temporary URLfor Elastic Search. This URL ends with a comma
*/}}
{{- define &quot;elasticsearch.url.list&quot; -}}
  {{- $port := &quot;9200&quot; }}
  {{- $ns := .Values.cassandra.namespace }}

  {{- if eq .Values.elasticsearch.deploy &quot;as-pod&quot; }}
    {{- $count :=  int .Values.elasticsearch.replicaCount }}
    {{- range $index := until $count }}
      {{- printf &quot;elasticsearch-%d.%s:%s,&quot; $index $ns $port }}
    {{- end }}
  {{- else }}
    {{- range $ip := .Values.elasticsearch.ips }}
      {{- printf &quot;%s:%s,&quot; $ip $port }}
    {{- end }}
  {{- end }}
{{- end -}}

=====================================================
== File: server/apps/distributed-app/helm-chart/james/templates/configmaps.yaml
=====================================================
apiVersion: v1
kind: ConfigMap
metadata:
  name: james-configs
data:
{{ (.Files.Glob &quot;configs/*&quot;).AsConfig | indent 2 }}

=====================================================
== File: server/apps/distributed-app/helm-chart/james/secrets.sample.yaml
=====================================================
james:
  secret:
    jwtPublicKey: |-
      -----BEGIN PUBLIC KEY-----
      change-me
      -----END PUBLIC KEY-----
    jwtPrivateKey: |-
      -----BEGIN PUBLIC KEY-----
      change-me
      -----END PUBLIC KEY-----
    cassandraUser: change-me
    cassandraPassword: change-me
    esUser: change-me
    esPassword: change-me
    dkimPrivateKey: |-
      -----BEGIN PRIVATE KEY-----
      change-me
      -----END PRIVATE KEY-----
    s3:
      endpoint: &quot;http://s3-us-east-1.amazonaws.com&quot;
      region: &quot;US&quot;
      accessKeyId: &quot;change-me&quot;
      secretKey: &quot;change-me&quot;
      bucketNameSuffix: &quot;change-me&quot;
ldap:
  secret:
    ldapUser: change-me
    ldapPassword: change-me
rabbitmq:
  secret:
    jamesUser: change-me
    jamesPassword: change-me

=====================================================
== File: server/apps/distributed-app/helm-chart/james/Chart.yaml
=====================================================
apiVersion: v2
name: james
description: A Helm chart for Distributed Apache James.
type: application
version: 0.2.0

=====================================================
== File: server/apps/distributed-app/helm-chart/james/values.yaml
=====================================================
dns:
  ## Default domain for all emailing components
  emailDomain: &quot;example.com&quot;
  jmapUrl: &quot;jmap.example.com&quot;
  adminUrl: &quot;admin.example.com&quot;
  smtpHostname: &quot;smtp.example.com&quot;

# Default values for james
james:
  replicaJmapInstanceCount: 1
  replicaImapSmtpInstanceCount: 1
  image: apache/james:distributed-3.8.0
  ## Environment for James
  env:
    jamesCassandraKeyspace: sandbox_james
    jamesCassandraCacheKeyspace: sandbox_james_cache
    jamesEsMailboxIndex: &quot;mailbox_v1&quot;
    jamesEsClusterName: &quot;change-me&quot;
    jamesEsHostScheme: &quot;http&quot;
    jamesEsSslValidationStrategy: &quot;default&quot;
    jamesEsHostNameVerifier: &quot;default&quot;
    jamesEsNbShards: 5
    jamesEsNbReplica: 1
    jamesEsMailboxReadAlias: &quot;read-mailbox&quot;
    jamesEsMailboxWriteAlias: &quot;write-mailbox&quot;
    jamesRabbitHost: &quot;change-me&quot;
    jamesMessageSize: 25M
    jamesDkimSignSmtp: &quot;dkimselector&quot;
    jamesDkimSignDomain: &quot;mail.example.com&quot;
    cassandraReplicationFactor: 3
    jamesHELOMessage: &quot;change-me&quot;
    jvmOpts: &quot;-Xms3g -Xmx3g&quot;
    glowroot:
      enabled: false
    jamesResources:
      limits:
        cpu: &quot;2000m&quot;
        memory: &quot;4Gi&quot;
      requests:
        cpu: &quot;1000m&quot;
        memory: &quot;4Gi&quot;
  tls:
    secretName: the-name-of-a-secret

# Requires Prometheus Operator to be installed
serviceMonitor:
  enabled: false
  # Labels for Prometheus Operator to detect ServiceMonitor. Cannot be empty 
  additionalLabels:
    change-me: change-me

=====================================================
== File: server/apps/distributed-app/helm-chart/james/configs/webadmin.properties
=====================================================
enabled=true
port=8000
cors.enable=true
cors.origin=*
jwt.enabled=true
extensions.routes=org.apache.james.webadmin.dropwizard.MetricsRoutes

=====================================================
== File: server/apps/distributed-app/helm-chart/james/configs/logback.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration scan=&quot;true&quot; scanPeriod=&quot;30 seconds&quot;&gt;

        &lt;contextListener class=&quot;ch.qos.logback.classic.jul.LevelChangePropagator&quot;&gt;
                &lt;resetJUL&gt;true&lt;/resetJUL&gt;
        &lt;/contextListener&gt;

        &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
                &lt;encoder class=&quot;ch.qos.logback.core.encoder.LayoutWrappingEncoder&quot;&gt;
                    &lt;layout class=&quot;ch.qos.logback.contrib.json.classic.JsonLayout&quot;&gt;
                        &lt;timestampFormat&gt;yyyy-MM-dd'T'HH:mm:ss.SSSX&lt;/timestampFormat&gt;
                        &lt;timestampFormatTimezoneId&gt;Etc/UTC&lt;/timestampFormatTimezoneId&gt;

                        &lt;!-- Importance for handling multiple lines log --&gt;
                        &lt;appendLineSeparator&gt;true&lt;/appendLineSeparator&gt;

                        &lt;jsonFormatter class=&quot;ch.qos.logback.contrib.jackson.JacksonJsonFormatter&quot;&gt;
                            &lt;prettyPrint&gt;false&lt;/prettyPrint&gt;
                        &lt;/jsonFormatter&gt;
                    &lt;/layout&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;root level=&quot;INFO&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
        &lt;/root&gt;

        &lt;logger name=&quot;http.jmap&quot; level=&quot;INFO&quot; /&gt;
        &lt;logger name=&quot;org.apache.james.smtpserver&quot; level=&quot;DEBUG&quot; /&gt;
        &lt;logger name=&quot;org.apache.mailet.base.MailetPipelineLogging&quot; level=&quot;DEBUG&quot; /&gt;
        &lt;logger name=&quot;org.apache.james.mailetcontainer&quot; level=&quot;DEBUG&quot; /&gt;
        &lt;logger name=&quot;com.datastax.driver.core.QueryLogger.SLOW&quot; level=&quot;DEBUG&quot; /&gt;
        &lt;logger name=&quot;org.apache.james.mailetcontainer&quot; level=&quot;DEBUG&quot; /&gt;
        &lt;logger name=&quot;org.apache.james&quot; level=&quot;DEBUG&quot; /&gt;
        &lt;logger name=&quot;org.apache.james.backends.es&quot; level=&quot;INFO&quot; /&gt;
        &lt;logger name=&quot;com.datastax.driver.core.QueryLogger.SLOW&quot; level=&quot;DEBUG&quot; /&gt;
        &lt;logger name=&quot;com.datastax.driver.core.QueryLogger.ERROR&quot; level=&quot;TRACE&quot; /&gt;
        &lt;logger name=&quot;http.jmap&quot; level=&quot;DEBUG&quot; /&gt;

&lt;/configuration&gt;

=====================================================
== File: server/apps/distributed-app/helm-chart/james/configs/jmap.properties
=====================================================
# Configuration file for JMAP

enabled=${env:JAMES_JMAP_ENABLED}
tls.keystoreURL=file://secrets-jwt/keystore
tls.secret=${env:JAMES_KEYSTORE_PASSWORD}

#
# If you wish to use OAuth authentication, you should provide a valid JWT public key.
# The following entry specify the link to the URL of the public key file,
# which should be a PEM format file.
#
jwt.publickeypem.url=file://conf/jwt_publickey
jwt.privatekeypem.url=file://conf/jwt_privatekey
jmap.port=80

view.email.query.enabled=true
email.send.max.size=${env:JAMES_MESSAGE_SIZE}
upload.max.size=${env:JAMES_MESSAGE_SIZE}

=====================================================
== File: server/apps/distributed-app/helm-chart/james/configs/batchsizes.properties
=====================================================
# Those properties let you configure the number of messages queried at the same time.
# IMAP FETCH command
fetch.metadata=200
fetch.headers=30
fetch.body=30
fetch.full=30
# IMAP COPY command
copy=50
# IMAP MOVE command
move=50

=====================================================
== File: server/apps/distributed-app/helm-chart/james/configs/blob.properties
=====================================================
# ============================================= BlobStore Implementation ==================================
# Choose your BlobStore implementation
# Mandatory, allowed values are: cassandra, s3
implementation=s3

# ========================================= ObjectStorage deduplication ========================================
# If you choose to enable deduplication, the mails with the same content will be stored only once.
# Warning: Once this feature is enabled, there is no turning back as turning it off will lead to the deletion of all
# the mails sharing the same content once one is deleted.
# Mandatory, Allowed values are: true, false
deduplication.enable=true

single.save.enable=true

# ========================================= Cassandra BlobStore Cache ======================================
# A cassandra cache can be enabled to reduce latency when reading small blobs frequently
# A dedicated keyspace with a replication factor of one is then used
# Cache eviction policy is TTL based
# Only blobs below a given threshold will be stored.
# To be noted that blobs are stored within a single Cassandra row, hence a low threshold should be used.

# Enable the cache? Optional and default to false. Must be a boolean.
cache.enable=true

# Cache eviction policy is TTL based. Optional and defaults to 7 days. Must be a duration.
# Valid units: ms, sec, min, hour, day, week, month, year
cache.cassandra.ttl=1year

# Maximum size of stored objects expressed in bytes. Must be strictly positive. Defaults to 8192.
# Units: bytes, Kib, MiB, GiB, TiB
cache.sizeThresholdInBytes=16 KiB

# ============================================== ObjectStorage ============================================

# ========================================= ObjectStorage Buckets ==========================================
# bucket names prefix
# Optional, default no prefix
# objectstorage.bucketPrefix=james-${env:NAMESPACE}-

# Default bucket name
# Optional, default is bucketPrefix + `default`
objectstorage.namespace=james-${env:JAMES_BUCKET_SUFFIX}

# ========================================= ObjectStorage on S3 =============================================
# Mandatory if you choose aws-s3 storage service, S3 authentication endpoint
objectstorage.s3.endPoint=${env:OS_S3_ENDPOINT}

# Mandatory if you choose s3 storage service, S3 region
objectstorage.s3.region=${env:OS_S3_REGION}


=====================================================
== File: server/apps/distributed-app/helm-chart/james/configs/cassandra.properties
=====================================================
# Configuration file for cassandra mailbox
# http://james.apache.org/server/config-cassandra.html
cassandra.nodes=${env:JAMES_CASSANDRA_NODES_URLS}

cassandra.keyspace.create=true
cassandra.keyspace=${env:JAMES_CASSANDRA_KEYSPACE}
cassandra.keyspace.cache=${env:JAMES_CASSANDRA_CACHE_KEYSPACE}

cassandra.user=${env:JAMES_CASSANDRA_USER}
cassandra.password=${env:JAMES_CASSANDRA_PASSWORD}

cassandra.replication.factor=${env:JAMES_CASSANDRA_REPLICATION_FACTOR}
cassandra.retryConnection.maxRetries=10
cassandra.retryConnection.minDelay=5000


mailbox.max.retry.message.flags.update=16
mailbox.max.retry.message.id.flags.update=16
mailbox.max.retry.modseq=16
mailbox.max.retry.acl=16
mailbox.max.retry.uid=16

mailbox.read.repair.chance=0.00
mailbox.counters.read.repair.chance.max=0.000
mailbox.counters.read.repair.chance.one.hundred=0.000

chunk.size.message.read=16

mailbox.read.strong.consistency=false
message.read.strong.consistency=false
message.write.strong.consistency.unsafe=false

=====================================================
== File: server/apps/distributed-app/helm-chart/james/configs/rabbitmq.properties
=====================================================
uri=amqp://${env:JAMES_AMQP_USERNAME}:${env:JAMES_AMQP_PASSWORD}@${env:JAMES_AMQP_HOST}:${env:JAMES_AMQP_PORT}

# RabbitMQ Administration Management
management.uri=http://${env:JAMES_AMQP_HOST}:${env:JAMES_AMQP_MANAGEMENT_PORT}
management.user=${env:JAMES_AMQP_USERNAME}
management.password=${env:JAMES_AMQP_PASSWORD}

# Parameters for the Cassandra administrative view

# Period of the window. Too large values will lead to wide rows while too little values might lead to many queries.
# Use the number of mail per Cassandra row, along with your expected traffic, to determine this value
# This value can only be decreased to a value dividing the current value
mailqueue.view.sliceWindow=1h
# Use to distribute the emails of a given slice within your cassandra cluster
# A good value is 2*cassandraNodeCount
# This parameter can only be increased.
mailqueue.view.bucketCount=${env:JAMES_BUCKET_COUNT}
# Determine the probability to update the browse start pointer
# Too little value will lead to unnecessary reads. Too big value will lead to more expensive browse.
# Choose this parameter so that it get's update one time every one-two sliceWindow
mailqueue.view.updateBrowseStartPace=1000
# Enables or disables the gauge metric on the mail queue size
# Computing the size of the mail queue is currently implemented on top of browse operation and thus have a linear complexity
# Metrics get exported periodically as configured in opensearch.properties, thus getSize is also called periodically
# Choose to disable it when the mail queue size is getting too big
# Note that this is as well a temporary workaround until we get 'getSize' method better optimized
# Optional, default true
mailqueue.size.metricsEnabled=false

connection.pool.retries=3
connection.pool.min.delay.ms=50
channel.pool.retries=2
channel.pool.min.delay.ms=100
channel.pool.size=10

=====================================================
== File: server/apps/distributed-app/helm-chart/README.md
=====================================================
# Helm chart for James


## Introduction

This chart bootstraps the distributed version of Apache James Mail Server on [Kubernetes](http://kubernetes.io) 
cluster using [Helm](https://helm.sh) package manager.

Documentation on how to use it can be found at [Run Kubernetes](https://github.com/apache/james-project/blob/master/server/apps/distributed-app/docs/modules/ROOT/pages/run/run-kubernetes.adoc).

## Notice about mailetcontainer

You will need to add yourself manually the `mailetcontainer.xml` configuration file into
the configs folder proper to your client before installing the helm James package.

You can get the template `mailetcontainer.xml` in our [sample-configuration](https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/) folder.

NB: It should change in a near future as helm should support such an operation.

## Notice about RabbitMQ

James is linked to RabbitMQ instances for mail processing.

You need RabbitMQ to run before deploying James. The username and password for `rabbitmq-account-james` secret must be created first from RabbitMQ.

=====================================================
== File: server/apps/distributed-app/docker-compose-with-pulsar.yml
=====================================================
version: '3'

services:

  james:
    depends_on:
      cassandra:
        condition: service_healthy
      opensearch:
        condition: service_started
      rabbitmq:
        condition: service_started
      s3:
        condition: service_started
      pulsar:
        condition: service_started
    image: apache/james:distributed-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    networks:
      - james
    ports:
      - &quot;80:80&quot;
      - &quot;25:25&quot;
      - &quot;110:110&quot;
      - &quot;143:143&quot;
      - &quot;465:465&quot;
      - &quot;587:587&quot;
      - &quot;993:993&quot;
      - &quot;8000:8000&quot;
    volumes:
      - ./sample-configuration/pulsar.properties:/root/conf/pulsar.properties
      - ./sample-configuration/queue-pulsar.properties:/root/conf/queue.properties

  opensearch:
    image: opensearchproject/opensearch:2.1.0
    container_name: opensearch
    environment:
      - discovery.type=single-node
      - DISABLE_INSTALL_DEMO_CONFIG=true
      - DISABLE_SECURITY_PLUGIN=true
    networks:
      james:
        aliases:
          - elasticsearch

  cassandra:
    container_name: cassandra

=====================================================
== File: server/apps/distributed-app/README.adoc
=====================================================
= Guice-Distributed Server How-to

== Requirements

 * Java 11 SDK

Firstly, create your own user network on Docker for the James environment:

    $ docker network create --driver bridge james

Third party compulsory dependencies:

 * Cassandra 4.0
 * OpenSearch 2.1.0
 * RabbitMQ-Management 3.8.18
 * Zenko Cloudserver or AWS S3

[source]
----
$ docker run -d --network james -p 9042:9042 --name=cassandra cassandra:4.1.3
$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' --env 'DISABLE_SECURITY_PLUGIN=true' --env 'DISABLE_INSTALL_DEMO_CONFIG=true' opensearchproject/opensearch:2.1.0
$ docker run -d --network james -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:3.12.1-management
$ docker run -d --network james -p 8000:8000 --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 registry.scality.com/cloudserver/cloudserver:8.7.25
----

== Docker distribution

To import the image locally:

[source]
----
docker image load -i target/jib-image.tar
----

Then run it along with its dependency:

[source]
----
docker compose up -d
----

Use the [JAVA_TOOL_OPTIONS environment option](https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#jvm-flags)
to pass extra JVM flags. For instance:

[source]
----
  james:
    ...
    environment:
      - JAVA_TOOL_OPTIONS=-Xmx500m -Xms500m

=====================================================
== File: server/apps/distributed-app/src/main/extensions-jars/README.md
=====================================================
# Adding Jars to JAMES

The jar in this folder will be added to JAMES classpath when mounted under /root/extensions-jars inside the running container.

You can use it to add your custom Mailets/Matchers.

=====================================================
== File: server/apps/distributed-app/src/main/scripts/james-cli
=====================================================
#!/bin/bash

java -cp /root/resources:/root/classes:/root/libs/* org.apache.james.cli.ServerCmd &quot;$@&quot;

=====================================================
== File: server/apps/distributed-app/src/test/resources/batchsizes.properties
=====================================================
# Those properties let you configure the number of messages queried at the same time.
# IMAP FETCH command
fetch.metadata=200
fetch.headers=200
fetch.body=100
fetch.full=50
# IMAP COPY command
copy=100
# IMAP MOVE command
move=100

=====================================================
== File: server/apps/distributed-app/src/test/resources/rabbitmq.properties
=====================================================
uri=amqp://james:james@rabbitmq_host:5672
management.uri=http://james:james@rabbitmq_host:15672/api/

=====================================================
== File: server/apps/distributed-app/src/assemble/extensions-jars.txt
=====================================================
# Adding Jars to JAMES

The jar in this folder will be added to JAMES classpath when mounted under /root/extensions-jars inside the running container.

You can use it to add you customs Mailets/Matchers.

=====================================================
== File: server/apps/distributed-app/sample-configuration/extensions.properties
=====================================================
# This files enables customization of users extensions injections with guice.
# A user can drop some jar-with-dependencies within the ./extensions-jars folder and
# reference classes of these jars in some of James extension mechanisms.

# This includes mailets, matchers, mailboxListeners, preDeletionHooks, protocolHandlers, webAdmin routes

# Upon injections, the user can reference additional guice modules, that are going to be used only upon extensions instantiation.

#List of coma separated (',') fully qualified class names of additional guice modules to be used to instantiate extensions
#guice.extension.module=

=====================================================
== File: server/apps/distributed-app/sample-configuration/deletedMessageVault.properties
=====================================================
# ============================================= Deleted Messages Vault Configuration ==================================

enabled=false

# Retention period for your deleted messages into the vault, after which they expire and can be potentially cleaned up
# Optional, default 1y
# retentionPeriod=1y

=====================================================
== File: server/apps/distributed-app/sample-configuration/queue-pulsar.properties
=====================================================
mail.queue.choice=PULSAR

=====================================================
== File: server/apps/distributed-app/sample-configuration/pulsar.properties
=====================================================
broker.uri=pulsar://pulsar:6650
admin.uri=http://pulsar:8080
authentication.type=no-auth
#authentication.basic.userId=userId
#authentication.basic.password=password
namespace=pulsar/system

=====================================================
== File: server/apps/distributed-app/sample-configuration/jvm.properties
=====================================================
# ============================================= Extra JVM System Properties ===========================================
# To avoid clutter on the command line, any properties in this file will be added as system properties on server start.

# Required to locate Cassandra driver configuration
config.file=conf/cassandra-driver.conf

# Example: If you need an option -Dmy.property=whatever, you can instead add it here as
# my.property=whatever

# (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.
# This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.
# Below, data is stored in memory. Above data is stored on disk.
# Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware
# should however support a high throughput. Higher values will lead to faster single mail processing at the cost
# of higher heap usage.
#james.message.memory.threshold=12K

# Optional. Boolean. Defaults to false. Recommended value is false.
# Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
# be copied to temporary files?
#james.message.usememorycopy=false

# Mode level of resource leak detection. It is used to detect a resource not be disposed of before it's garbage-collected.
# Example `MimeMessageInputStreamSource`
# Optional. Allowed values are: none, simple, advanced, testing
#   - none: Disables resource leak detection.
#   - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default).
#   - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources.
#   - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team.
#james.lifecycle.leak.detection.mode=simple

# Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
# is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.
# Optional. Boolean. Defaults to true.
#james.protocols.mdc.hostname=true

# Manage netty leak detection level see https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
# io.netty.leakDetection.level=SIMPLE

# Should James exit on Startup error? Boolean, defaults to true. This prevents partial startup.
# james.exit.on.startup.error=true

# Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false.
# james.fail.on.missing.configuration=true

# JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h.
sun.rmi.dgc.server.gcInterval=3600000000
sun.rmi.dgc.client.gcInterval=3600000000

# Automatically generate a JMX password upon start. CLI is able to retrieve this password. Not supported on windows.

=====================================================
== File: server/apps/distributed-app/sample-configuration/queue.properties
=====================================================
mail.queue.choice=RABBITMQ

=====================================================
== File: server/apps/distributed-app/sample-configuration/logback.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration&gt;

        &lt;contextListener class=&quot;ch.qos.logback.classic.jul.LevelChangePropagator&quot;&gt;
                &lt;resetJUL&gt;true&lt;/resetJUL&gt;
        &lt;/contextListener&gt;

        &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} %highlight([%-5level]) %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;appender name=&quot;LOG_FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
                &lt;file&gt;/logs/james.log&lt;/file&gt;
                &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.FixedWindowRollingPolicy&quot;&gt;
                    &lt;fileNamePattern&gt;/logs/james.%i.log.tar.gz&lt;/fileNamePattern&gt;
                    &lt;minIndex&gt;1&lt;/minIndex&gt;
                    &lt;maxIndex&gt;3&lt;/maxIndex&gt;
                &lt;/rollingPolicy&gt;

                &lt;triggeringPolicy class=&quot;ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy&quot;&gt;
                    &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
                &lt;/triggeringPolicy&gt;

                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;root level=&quot;WARN&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
                &lt;appender-ref ref=&quot;LOG_FILE&quot; /&gt;
        &lt;/root&gt;

        &lt;logger name=&quot;org.apache.james&quot; level=&quot;INFO&quot; /&gt;
        &lt;logger name=&quot;com.datastax.driver.core.QueryLogger.SLOW&quot; level=&quot;DEBUG&quot; /&gt;


&lt;/configuration&gt;

=====================================================
== File: server/apps/distributed-app/sample-configuration/jmap.properties
=====================================================
# Configuration file for JMAP
# Read https://james.apache.org/server/config-jmap.html for further details

enabled=true

tls.keystoreURL=file://conf/keystore
tls.secret=james72laBalle

# only not work for RabbitMQ mail queue
#delay.sends.enabled=true

# Alternatively TLS keys can be supplied via PEM files
# tls.privateKey=file://conf/private.nopass.key
# tls.certificates=file://conf/certs.self-signed.csr
# An optional secret might be specified for the private key
# tls.secret=james72laBalle

#
# If you wish to use OAuth authentication, you should provide a valid JWT public key.
# The following entry specify the link to the URL of the public key file,
# which should be a PEM format file.
#
# jwt.publickeypem.url=file://conf/jwt_publickey

# Should simple Email/query be resolved against a Cassandra projection, or should we resolve them against OpenSearch?
# This enables a higher resilience, but the projection needs to be correctly populated. False by default.
# view.email.query.enabled=true

# If you want to specify authentication strategies for Jmap draft version
# For custom Authentication Strategy not inside package &quot;org.apache.james.jmap.http&quot;, you have to specify its FQDN
# authentication.strategy.draft=AccessTokenAuthenticationStrategy,JWTAuthenticationStrategy,QueryParameterAccessTokenAuthenticationStrategy

# If you want to specify authentication strategies for Jmap rfc-8621 version
# For custom Authentication Strategy not inside package &quot;org.apache.james.jmap.http&quot;, you have to specify its FQDN
# authentication.strategy.rfc8621=JWTAuthenticationStrategy,BasicAuthenticationStrategy

# Prevent server side request forgery by preventing calls to the private network ranges. Defaults to true, can be disabled for testing.
# webpush.prevent.server.side.request.forgery=false

=====================================================
== File: server/apps/distributed-app/sample-configuration/cassandra-driver.conf
=====================================================
# James reference configuration for the DataStax Java driver for Apache Cassandra&#xae;.
#
# Unless you use a custom mechanism to load your configuration (see
# SessionBuilder.withConfigLoader), all the values declared here will be used as defaults.
#
# See https://docs.datastax.com/en/developer/java-driver/4.13/manual/core/configuration/ for
# available options.
#
# Please note that contact point and authentication needs to be set in cassandra.properties for now.
datastax-java-driver {

  basic.request {
    timeout = 5 seconds

    consistency = QUORUM

    page-size = 5000

    serial-consistency = SERIAL
  }

  advanced.connection {
    connect-timeout = 5 seconds

    init-query-timeout = 5 seconds

    pool {
      local.size = 2

      remote.size = 2
    }

    max-requests-per-connection = 1024

    max-orphan-requests = 256

    warn-on-init-error = true
  }

  advanced.throttler {
    // class = org.apache.james.backends.cassandra.utils.LockLessConcurrencyLimitingRequestThrottler
    class = ConcurrencyLimitingRequestThrottler

    max-queue-size = 10000

    max-concurrent-requests = 192
  }

  advanced.reconnect-on-init = true


=====================================================
== File: server/apps/distributed-app/sample-configuration/batchsizes.properties
=====================================================
# Those properties let you configure the number of messages queried at the same time.
# IMAP FETCH command
fetch.metadata=200
fetch.headers=200
fetch.body=100
fetch.full=50
# IMAP COPY command
copy=100
# IMAP MOVE command
move=100

=====================================================
== File: server/apps/distributed-app/sample-configuration/blob.properties
=====================================================
# ============================================= BlobStore Implementation ==================================
# Read https://james.apache.org/server/config-blobstore.html for further details

# Choose your BlobStore implementation
# Mandatory, allowed values are: cassandra, s3
# *WARNING*: JAMES-3591 Cassandra is not made to store large binary content, its use will be suboptimal compared to
# alternatives (namely S3 compatible BlobStores backed by for instance S3, MinIO or Ozone)
implementation=s3

# ========================================= Deduplication ========================================
# If you choose to enable deduplication, the mails with the same content will be stored only once.
# Warning: Once this feature is enabled, there is no turning back as turning it off will lead to the deletion of all
# the mails sharing the same content once one is deleted.
# Mandatory, Allowed values are: true, false
deduplication.enable=false

# deduplication.family needs to be incremented every time the deduplication.generation.duration is changed
# Positive integer, defaults to 1
# deduplication.gc.generation.family=1

# Duration of generation.
# Deduplication only takes place within a singe generation.
# Only items two generation old can be garbage collected. (This prevent concurrent insertions issues and
# accounts for a clock skew).
# deduplication.family needs to be incremented everytime this parameter is changed.
# Duration. Default unit: days. Defaults to 30 days.
# deduplication.gc.generation.duration=30days

# ========================================= Encryption ========================================
# If you choose to enable encryption, the blob content will be encrypted before storing them in the BlobStore.
# Warning: Once this feature is enabled, there is no turning back as turning it off will lead to all content being
# encrypted. This comes at a performance impact but presents you from leaking data if, for instance the third party
# offering you a S3 service is compromised.
# Optional, Allowed values are: true, false, defaults to false
encryption.aes.enable=false

# Mandatory (if AES encryption is enabled) salt and password. Salt needs to be an hexadecimal encoded string
#encryption.aes.password=xxx
#encryption.aes.salt=73616c7479
# Optional, defaults to PBKDF2WithHmacSHA512
#encryption.aes.private.key.algorithm=PBKDF2WithHmacSHA512

# ========================================= Cassandra BlobStore Cache ======================================
# A cassandra cache can be enabled to reduce latency when reading small blobs frequently
# A dedicated keyspace with a replication factor of one is then used
# Cache eviction policy is TTL based
# Only blobs below a given threshold will be stored.
# To be noted that blobs are stored within a single Cassandra row, hence a low threshold should be used.

# Enable the cache? Optional and default to false. Must be a boolean.

=====================================================
== File: server/apps/distributed-app/sample-configuration/cassandra.properties
=====================================================
# Configuration file for cassandra mailbox
# Read https://james.apache.org/server/config-cassandra.html for further details
# Advanced Cassandra driver option needs to be set via cassandra-driver.conf configuration file

cassandra.nodes=cassandra
cassandra.keyspace.create=true
cassandra.keyspace=apache_james
#cassandra.user=cassandra
#cassandra.password=cassandra
cassandra.replication.factor=1
cassandra.retryConnection.maxRetries=200
cassandra.retryConnection.minDelay=5000

## These low level tuning options controls performance related options in Cassandra related code
## The default values are documented here. Understand the effects before editing.
# mailbox.read.repair.chance=0.1
## Maximum probability of running a read repair for the mailbox counters
# mailbox.counters.read.repair.chance.max=0.1
## Probability of running a mailbox counters read repair for 100 messages.
## Inversely proportional to the count of messages
## Formula: read_repair_chance = min(mailbox.counters.read.repair.chance.max, (100/unseens)*mailbox.counters.read.repair.chance.one.hundred)
# mailbox.counters.read.repair.chance.one.hundred=0.01
# mailbox.max.retry.acl=1000
# mailbox.max.retry.modseq=100000
# mailbox.max.retry.uid=100000
# mailbox.max.retry.message.flags.update=1000
# mailbox.max.retry.message.id.flags.update=1000
# fetch.advance.row.count=1000
# chunk.size.expunge=100
# mailbox.blob.part.size=102400

# Optional. Allows specifying consistency level ONE for reads in Cassandra BlobStore.
# Falls back to default read consistency level if the blob is missing.
# Defaults to false.
# optimistic.consistency.level.enabled=false

# Optional. Allows not to use lightweight transactions in CassandraMailRepository.
# If disabled we implement an idempotent behaviour (duplicates are overridden, missing entries upon deletes are ignored).
# Defaults to true.
# mailrepository.strong.consistency=true

# Optional, default to 0. Defensive value to add to uids and modseqs generated. This can be used as an heuristic to maintain
# consistency even when consensus of Lightweight Transactions is broken, exemple during a disaster recovery process.
# uid.modseq.increment=0

=====================================================
== File: server/apps/distributed-app/sample-configuration/rabbitmq.properties
=====================================================
# RabbitMQ configuration

# Read https://james.apache.org/server/config-rabbitmq.html for further details

# Mandatory
uri=amqp://rabbitmq:5672
# If you use a vhost, specify it as well at the end of the URI
# uri=amqp://rabbitmq:5672/vhost

# Vhost to use for creating queues and exchanges
# Optional, only use this if you have invalid URIs containing characters like '_'
# vhost=vhost1

# Optional, default to the host specified as part of the URI.
# Allow creating cluster aware connections.
# hosts=ip1:5672,ip2:5672

# RabbitMQ Administration Management
# Mandatory
management.uri=http://rabbitmq:15672
# Mandatory
management.user=guest
# Mandatory
management.password=guest

# Configure retries count to retrieve a connection. Exponential backoff is performed between each retries.
# Optional integer, defaults to 10
#connection.pool.retries=10
# Configure initial duration (in ms) between two connection retries. Exponential backoff is performed between each retries.
# Optional integer, defaults to 100
#connection.pool.min.delay.ms=100
# Configure retries count to retrieve a channel. Exponential backoff is performed between each retries.
# Optional integer, defaults to 3
#channel.pool.retries=3
# Configure timeout duration (in ms) to obtain a rabbitmq channel. Defaults to 30 seconds.
# Optional integer, defaults to 30 seconds.
#channel.pool.max.delay.ms=30000
# Configure the size of the channel pool.
# Optional integer, defaults to 3
#channel.pool.size=3

# Boolean. Whether to activate Quorum queue usage for use cases that benefits from it (work queue).
# Quorum queues enables high availability.
# False (default value) results in the usage of classic queues.
#quorum.queues.enable=true

# Strictly positive integer. The replication factor to use when creating quorum queues.
#quorum.queues.replication.factor

# Parameters for the Cassandra administrative view

=====================================================
== File: server/apps/distributed-app/docs/ui-overrides/partials/header-content.hbs
=====================================================
&lt;header class=&quot;header&quot;&gt;
  &lt;nav class=&quot;navbar&quot;&gt;
    &lt;div class=&quot;navbar-brand&quot;&gt;
      &lt;a class=&quot;navbar-item&quot; href=&quot;{{{or site.url (or siteRootUrl siteRootPath)}}}&quot;&gt;&lt;img src=&quot;/_/img/james.svg&quot; alt=&quot;james logo&quot;&gt; {{site.title}}&lt;/a&gt;
      &lt;button class=&quot;navbar-burger&quot; data-target=&quot;topbar-nav&quot;&gt;
        &lt;span&gt;&lt;/span&gt;
        &lt;span&gt;&lt;/span&gt;
        &lt;span&gt;&lt;/span&gt;
      &lt;/button&gt;
    &lt;/div&gt;
    &lt;div id=&quot;topbar-nav&quot; class=&quot;navbar-menu&quot;&gt;
      &lt;div class=&quot;navbar-end&quot;&gt;
        &lt;a class=&quot;navbar-item&quot; href=&quot;#&quot;&gt;Home&lt;/a&gt;
        &lt;div class=&quot;navbar-item has-dropdown is-hoverable&quot;&gt;
          &lt;a class=&quot;navbar-link&quot; href=&quot;#&quot;&gt;Products&lt;/a&gt;
          &lt;div class=&quot;navbar-dropdown&quot;&gt;
            &lt;div class=&quot;navbar-item&quot;&gt;&lt;strong&gt;James server&lt;/strong&gt;&lt;/div&gt;
            &lt;a class=&quot;navbar-item&quot; href=&quot;https://github.com/apache/james-project&quot;&gt;Repository&lt;/a&gt;
            &lt;a class=&quot;navbar-item&quot; href=&quot;https://issues.apache.org/jira/projects/JAMES/issues&quot;&gt;Issue Tracker&lt;/a&gt;
            &lt;hr class=&quot;navbar-divider&quot;&gt;
            &lt;a class=&quot;navbar-item&quot; href=&quot;https://james.apache.org/mime4j/index.html&quot;&gt;Mime4J&lt;/a&gt;
            &lt;a class=&quot;navbar-item&quot; href=&quot;https://james.apache.org/jsieve/index.html&quot;&gt;jSieve&lt;/a&gt;
            &lt;a class=&quot;navbar-item&quot; href=&quot;https://james.apache.org/jspf/index.html&quot;&gt;jSPF&lt;/a&gt;
            &lt;a class=&quot;navbar-item&quot; href=&quot;https://james.apache.org/jdkim/index.html&quot;&gt;jDKIM&lt;/a&gt;
            &lt;a class=&quot;navbar-item&quot; href=&quot;https://james.apache.org/hupa/index.html&quot;&gt;HUPA&lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
        &lt;div class=&quot;navbar-item has-dropdown is-hoverable&quot;&gt;
          &lt;a class=&quot;navbar-link&quot; href=&quot;#&quot;&gt;Community&lt;/a&gt;
          &lt;div class=&quot;navbar-dropdown&quot;&gt;
             &lt;!-- Not ideal but dropping the version in the href requires tweaking james-projet docs module first --&gt;
            &lt;a class=&quot;navbar-item&quot; href=&quot;/james-project/3.7.3/community/mailing-lists.html&quot;&gt;Mailing lists&lt;/a&gt;
            &lt;a class=&quot;navbar-item&quot; href=&quot;https://gitter.im/apache/james-project&quot;&gt;&lt;svg version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; viewBox=&quot;0 0 32 32&quot; class=&quot;logo-gitter-sign&quot; data-v-44ebcb1a=&quot;&quot;&gt;&lt;rect x=&quot;15&quot; y=&quot;5&quot; width=&quot;2&quot; height=&quot;10&quot;&gt;&lt;/rect&gt; &lt;rect x=&quot;10&quot; y=&quot;5&quot; width=&quot;2&quot; height=&quot;20&quot;&gt;&lt;/rect&gt; &lt;rect x=&quot;5&quot; y=&quot;5&quot; width=&quot;2&quot; height=&quot;20&quot;&gt;&lt;/rect&gt; &lt;rect width=&quot;2&quot; height=&quot;15&quot;&gt;&lt;/rect&gt;&lt;/svg&gt; Gitter&lt;/a&gt;
            &lt;a class=&quot;navbar-item&quot; href=&quot;https://twitter.com/ApacheJames&quot;&gt;
              &lt;span class=&quot;icon&quot;&gt;
                &lt;svg aria-hidden=&quot;true&quot; data-icon=&quot;twitter&quot; role=&quot;img&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 512 512&quot;&gt;
                  &lt;path fill=&quot;#57aaee&quot; d=&quot;M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z&quot;&gt;&lt;/path&gt;
                &lt;/svg&gt;
              &lt;/span&gt; Twitter
            &lt;/a&gt;            
            &lt;a class=&quot;navbar-item&quot; href=&quot;#&quot;&gt;  &lt;svg class=&quot;octicon octicon-mark-github v-align-middle&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; aria-hidden=&quot;true&quot;&gt;&lt;path fill-rule=&quot;evenodd&quot; d=&quot;M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z&quot;&gt;&lt;/path&gt;&lt;/svg&gt; Github&lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
&lt;!--        &lt;div class=&quot;navbar-item&quot;&gt;
          &lt;span class=&quot;control&quot;&gt;
            &lt;a class=&quot;button is-primary&quot; href=&quot;#&quot;&gt;Download&lt;/a&gt;
          &lt;/span&gt;
        &lt;/div&gt; --&gt;
      &lt;/div&gt;
    &lt;/div&gt;

=====================================================
== File: server/apps/distributed-app/docs/ui-overrides/img/james.svg
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --&gt;
&lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.1//EN&quot; &quot;http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&quot;&gt;
&lt;svg version=&quot;1.1&quot; id=&quot;Calque_1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; x=&quot;0px&quot; y=&quot;0px&quot;
     width=&quot;37px&quot; height=&quot;31px&quot; viewBox=&quot;0 0 37 31&quot; enable-background=&quot;new 0 0 37 31&quot; xml:space=&quot;preserve&quot;&gt;
&lt;g&gt;
	&lt;path fill=&quot;#FFFFFF&quot; d=&quot;M37.001,4.407c-1.435-0.966-2.92-1.75-4.473-2.153c-1.552-0.412-3.151-0.315-4.63,0.3l-0.277,0.117
		l-0.139,0.062l-0.064,0.032l-0.036,0.016l-0.018,0.008l-0.008,0.004c0.008-0.007-0.028,0.016,0.02-0.012L27.37,2.783
		c-0.2,0.127-0.391,0.232-0.589,0.337c-0.392,0.207-0.796,0.391-1.216,0.543c-0.836,0.295-1.737,0.503-2.664,0.389
		c-0.458-0.061-0.913-0.222-1.3-0.489c-0.382-0.268-0.689-0.629-0.899-1.026C20.28,1.737,20.15,0.857,20.124,0
		c0.156,0.842,0.393,1.686,0.857,2.363c0.234,0.336,0.523,0.622,0.864,0.811c0.339,0.19,0.723,0.284,1.111,0.301
		c0.782,0.038,1.582-0.201,2.325-0.532c0.376-0.165,0.741-0.353,1.092-0.563c0.176-0.105,0.354-0.219,0.509-0.33l0.307-0.201
		c0.1-0.057,0.194-0.122,0.293-0.173c0.801-0.433,1.702-0.731,2.627-0.793c0.925-0.069,1.856,0.063,2.716,0.357
		c0.863,0.29,1.655,0.731,2.359,1.267C35.888,3.047,36.52,3.676,37.001,4.407z&quot;/&gt;
	&lt;path fill=&quot;#FFFFFF&quot; d=&quot;M13.25,20.418c-5.733-4.373-9.554-8.973-9.418-9.078c0.147-0.145,4.153,4.212,9.83,8.536
		c1.665,1.28,3.28,2.412,4.733,3.381c0.02-0.036,0.041-0.069,0.062-0.105c0.237-0.456,0.42-0.948,0.562-1.462
		c-1.018-2.053-3.554-4.892-6.501-7.496c-0.656-0.572-1.338-1.078-2.028-1.536c-0.151,1.223-0.452,2.098-0.453,2.096
		c0,0-0.335-1.163-0.306-2.579C9.266,11.892,8.8,11.63,8.336,11.389c-0.004,1.395-0.414,2.439-0.417,2.439
		c0,0.002-0.833-1.414-0.922-3.071c-0.002-0.01-0.002-0.021-0.002-0.031c-2.767-1.279-5.1-1.896-5.104-1.89
		C1.867,8.774,2.064,14.75,6.431,19.305c0.147-0.008,0.296-0.016,0.449-0.016c1.588,0.004,2.944,0.577,2.947,0.577
		c0-0.002-0.835,0.501-2.054,0.671c0.444,0.355,0.899,0.682,1.364,0.973c1.148-0.416,2.102-0.557,2.102-0.557
		c0-0.002-0.503,0.495-1.334,1.017c3.035,1.685,5.787,2.542,7.53,2.624c0.236-0.26,0.452-0.532,0.645-0.821
		C16.586,22.84,14.938,21.717,13.25,20.418z&quot;/&gt;
	&lt;path fill=&quot;#FFFFFF&quot; d=&quot;M33.7,4.335c-1.103,0.092-2.21,0.292-3.3,0.605c-2.173,0.623-4.31,1.725-6.062,3.396
		c-0.883,0.824-1.64,1.798-2.271,2.846c-0.614,1.059-1.109,2.191-1.43,3.363c-0.327,1.168-0.529,2.363-0.595,3.548
		c-0.02,0.291-0.031,0.596-0.039,0.9L19.995,19.4l-0.008,0.35c-0.012,0.462-0.051,0.918-0.122,1.358
		c-0.056,0.337-0.131,0.665-0.223,0.984c-0.141,0.514-0.324,1.006-0.562,1.466c-0.02,0.036-0.043,0.066-0.062,0.102
		c-0.099,0.178-0.204,0.353-0.317,0.52c-0.191,0.286-0.407,0.559-0.643,0.819c-0.17,0.186-0.348,0.366-0.544,0.541
		c-1.304,1.152-3.097,1.944-5.021,2.453c-1.931,0.518-3.995,0.788-6.091,0.934c-2.1,0.145-4.234,0.166-6.404,0.112
		c2.023,0.815,4.157,1.338,6.333,1.664c2.179,0.313,4.422,0.415,6.701,0.127c1.137-0.149,2.287-0.394,3.418-0.802
		c1.129-0.405,2.252-0.959,3.265-1.745c1.019-0.771,1.92-1.77,2.571-2.913c0.331-0.568,0.601-1.167,0.82-1.775
		c0.21-0.611,0.364-1.236,0.47-1.859c0.11-0.619,0.17-1.24,0.193-1.852c0.008-0.154,0.008-0.307,0.008-0.461v-0.398
		c0.005-0.234,0.011-0.468,0.022-0.716c0.052-0.967,0.166-1.914,0.376-2.832c0.418-1.832,1.213-3.537,2.405-5.009
		c1.192-1.472,2.767-2.711,4.552-3.706c1.79-0.994,3.765-1.774,5.862-2.355C35.917,4.247,34.808,4.238,33.7,4.335z&quot;/&gt;
&lt;/g&gt;
&lt;/svg&gt;

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/nav.adoc
=====================================================
* xref:index.adoc[]
** xref:objectives.adoc[]
** xref:architecture/index.adoc[]
*** xref:architecture/implemented-standards.adoc[]
*** xref:architecture/consistency-model.adoc[]
*** xref:architecture/specialized-instances.adoc[]
** xref:run/index.adoc[Run]
*** xref:run/run-java.adoc[Run with Java]
*** xref:run/run-docker.adoc[Run with Docker]
*** xref:run/run-kubernetes.adoc[Run with Kubernetes]
**** xref:run/k8s-checklist.adoc[Deployment Checklist]
**** xref:run/k8s-logsMetrics.adoc[Logs &amp; Metrics]
**** xref:run/k8s-values.adoc[values.yaml]
**** xref:run/k8s-secrets.adoc[secrets.yaml]
** xref:configure/index.adoc[]
*** Protocols
**** xref:configure/imap.adoc[imapserver.xml]
**** xref:configure/jmap.adoc[jmap.properties]
**** xref:configure/jmx.adoc[jmx.properties]
**** xref:configure/smtp.adoc[smtpserver.xml &amp; lmtpserver.xml]
**** xref:configure/smtp-hooks.adoc[Packaged SMTP hooks]
**** xref:configure/pop3.adoc[pop3server.xml]
**** xref:configure/webadmin.adoc[webadmin.properties]
**** xref:configure/ssl.adoc[SSL &amp; TLS]
**** xref:configure/sieve.adoc[Sieve &amp; ManageSieve]
*** Storage dependencies
**** xref:configure/blobstore.adoc[blobstore.properties]
**** xref:configure/cassandra.adoc[cassandra.properties]
**** xref:configure/opensearch.adoc[opensearch.properties]
**** xref:configure/rabbitmq.adoc[rabbitmq.properties]
**** xref:configure/redis.adoc[redis.properties]
**** xref:configure/tika.adoc[tika.properties]
*** Core components
**** xref:configure/batchsizes.adoc[batchsizes.properties]
**** xref:configure/dns.adoc[dnsservice.xml]
**** xref:configure/domainlist.adoc[domainlist.xml]
**** xref:configure/healthcheck.adoc[healthcheck.properties]
**** xref:configure/mailetcontainer.adoc[mailetcontainer.xml]
**** xref:configure/mailets.adoc[Packaged Mailets]
**** xref:configure/matchers.adoc[Packaged Matchers]
**** xref:configure/mailrepositorystore.adoc[mailrepositorystore.xml]
**** xref:configure/recipientrewritetable.adoc[recipientrewritetable.xml]
**** xref:configure/search.adoc[search.properties]
**** xref:configure/usersrepository.adoc[usersrepository.xml]
*** Extensions
**** xref:configure/vault.adoc[deletedMessageVault.properties]
**** xref:configure/extensions.adoc[extensions.properties]
**** xref:configure/listeners.adoc[listeners.xml]
**** xref:configure/spam.adoc[Anti-Spam setup]
**** xref:configure/remote-delivery-error-handling.adoc[About RemoteDelivery error handling]

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/architecture/implemented-standards.adoc
=====================================================
= Distributed James Server &amp;mdash; Implemented standards
:navtitle: Implemented standards

This page details standards implemented by the distributed server.

== Message formats

 - link:https://datatracker.ietf.org/doc/html/rfc5322[RFC-5322] Internet Message Format (MIME)
 - link:https://datatracker.ietf.org/doc/html/rfc2045[RFC-2045] Format of Internet Message Bodies
 - link:https://datatracker.ietf.org/doc/html/rfc3464[RFC-3464] An Extensible Message Format for Delivery Status Notifications
   - James allow emmit DSNs from the mailet container.
 - link:https://datatracker.ietf.org/doc/html/rfc8098[RFC-8098] Message Disposition Notification

== TLS &amp; authentication

- link:https://datatracker.ietf.org/doc/html/rfc2595.html[RFC-2595] TLS for IMAP, POP3, SMTP (StartTLS)
- link:https://datatracker.ietf.org/doc/html/rfc8314.html[RFC-8314] Implicit TLS
- link:https://www.rfc-editor.org/rfc/rfc4959.html[RFC-4959] SASL IR: Initial client response
- link:https://datatracker.ietf.org/doc/html/rfc4616[RFC-4616] SASL plain authentication
- link:https://datatracker.ietf.org/doc/html/rfc8314.html[RFC-7628] SASL for OAUTH
- Implemented for IMAP and SMTP
- Support for OIDC standard only.

== SMTP

- link:https://datatracker.ietf.org/doc/html/rfc5321[RFC-5321] SMTP Protocol
- link:https://datatracker.ietf.org/doc/html/rfc974[RFC-974] MAIL ROUTING AND THE DOMAIN SYSTEM
- link:https://www.rfc-editor.org/rfc/rfc3461[RFC-3461] Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications (DSNs)
   - Requires extra configuration.
- link:https://datatracker.ietf.org/doc/html/rfc1652[RFC-1652] SMTP Service Extension for 8bit-MIME transport
- link:https://datatracker.ietf.org/doc/html/rfc1830[RFC-1830] SMTP Service Extensions for Transmission of Large and Binary MIME Messages
- link:https://datatracker.ietf.org/doc/html/rfc1869[RFC-1869] SMTP Service Extensions
- link:https://datatracker.ietf.org/doc/html/rfc1870[RFC-1870] SMTP Service Extension for Message Size Declaration
- link:https://datatracker.ietf.org/doc/html/rfc1891[RFC-1891] SMTP Service Extension for Delivery Status Notifications
- link:https://datatracker.ietf.org/doc/html/rfc1893[RFC-1893] Enhanced Mail System Status Codes
- link:https://datatracker.ietf.org/doc/html/rfc2034[RFC-2034] SMTP Service Extension for Returning Enhanced Error Codes
- link:https://datatracker.ietf.org/doc/html/rfc2142[RFC-2142] Mailbox Names For Common Services, Roles And Functions
- link:https://datatracker.ietf.org/doc/html/rfc2197[RFC-2197] SMTP Service Extension for Command Pipelining
- link:https://datatracker.ietf.org/doc/html/rfc2554[RFC-2554] ESMTP Service Extension for Authentication
- link:https://datatracker.ietf.org/doc/html/rfc1893[RFC-1893] Enhanced Mail System Status Codes

== LMTP

 - link:https://james.apache.org/server/rfclist/lmtp/rfc2033.txt[RFC-2033] LMTP Local Mail Transfer Protocol

== IMAP

The following IMAP specifications are implemented:

 - link:https://datatracker.ietf.org/doc/html/rfc3501.html[RFC-3501] INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/architecture/specialized-instances.adoc
=====================================================
= Distributed James Server &amp;mdash; Specialized instances
:navtitle: Specialized instances

While it is perfectly possible to deploy homogeneous James instances, with the same configuration and thus the same
protocols and the same responsibilities one might want to investigate in 'Specialized instances'.

This deployment topology consists of Distributed James servers with heterogeneous configurations on top of shared
data-bases. Groups of James servers will thus handle various protocols and have different responsibilities.

This approach limits cascading failures across protocols and services. Think of *OutOfMemoryErrors*, Cassandra driver 
queue overuse, CPUs starvation, etc.

However, we can't speak of micro-services here: all James instances runs the same code, James is still a monolith, and
databases need to be shared across instances.

image::specialized-instances.png[Example of Specialized instances topology]

We speak of:

 - **Front-line servers** serves protocols. James enables to easily turn protocols on and off. Typically, each protocol would 
 be isolated in its own group of James instances: james-imap, james-jmap, james-smtp, james-webadmin, etc... Refer to
 protocols configuration files to learn more.
 
 - **Back-office servers** handles other services like:

    - Mail processing.
    - Remote delivery.
    - Event processing.
    - Task execution.

Front-line servers will likely not handle back office responsibilities (but be sure to have back-office servers that do!).

  - xref:configure/mailetcontainer.adoc[Mail processing can be switched off].
  - xref:configure/listeners.adoc[Mailbox event processing can be switched off].
  - xref:configure/rabbitmq.adoc[Task execution can be switched off].
  - Remote Delivery service is not started if the RemoteDelivery mailet is not positioned in mailetcontainer.xml.
  
Of course, the above instances can be collocated at will, to reach some intermediate deployments with fewer 
instances to mitigate costs.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/architecture/index.adoc
=====================================================
= Distributed James Server &amp;mdash; Architecture
:navtitle: Architecture

This sections presents the Distributed Server architecture.

== Storage

In order to deliver its promises, the Distributed Server leverages the following storage strategies:

image::storage.png[Storage responsibilities for the Distributed Server]

 * *Cassandra* is used for metadata storage. Cassandra is efficient for a very high workload of small queries following
a known pattern.
 * The *blob store* storage interface is responsible of storing potentially large binary data. For instance
 email bodies, headers or attachments. Different technologies can be used: *Cassandra*, or S3 compatible *Object Storage*
(S3 or Swift).
 * *OpenSearch* component empowers full text search on emails. It also enables querying data with unplanned access
patterns. OpenSearch throughput do not however match the one of Cassandra thus its use is avoided upon regular workloads.
 * *RabbitMQ* enables James nodes of a same cluster to collaborate together. It is used to implement connected protocols,
notification patterns as well as distributed resilient work queues and mail queue.
 * *Tika* (optional) enables text extraction from attachments, thus improving full text search results.
 * *link:https://spamassassin.apache.org/[SpamAssassin] or link:https://rspamd.com/[Rspamd]* (optional) can be used for Spam detection and user feedback is supported.

xref:architecture/consistency-model.adoc[This page] further details Distributed James consistency model.

== Protocols

The following protocols are supported and can be used to interact with the Distributed Server:

* *SMTP*
* *IMAP*
* xref:operate/webadmin.adoc[WebAdmin] REST Administration API
* *LMTP*
* *POP3*

The following protocols should be considered experimental:

* *JMAP* (RFC-8620 &amp;RFC-8621 specifications and known limitations of the James implementation are defined link:https://github.com/apache/james-project/tree/master/server/protocols/jmap-rfc-8621/doc[here])
* *ManagedSieve*

The following protocols should be considered deprecated:

* *JMAP-draft* (draft specification as defined link:https://github.com/apache/james-project/tree/master/server/protocols/jmap-draft/doc[here])

Read more on xref:architecture/implemented-standards.adoc[implemented standards].

== Topology

While it is perfectly possible to deploy homogeneous James instances, with the same configuration and thus the same
protocols and the same responsibilities one might want to investigate in

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/architecture/consistency-model.adoc
=====================================================
= Distributed James Server &amp;mdash; Consistency Model
:navtitle: Consistency Model

This page presents the consistency model used by the Distributed Server and
points to the tools built around it.

== Data Replication

The Distributed Server relies on different storage technologies, all having their own
consistency models.

These data stores replicate data in order to enforce some level of availability. We call
this process replication. By consistency, we mean the ability for all replica to hold the
same data. By availability, we mean the ability for a replica to answer a request.

In distributed systems, link:https://en.wikipedia.org/wiki/CAP_theorem[according to the CAP theorem],
as we will necessarily encounter network partitions, then trade-offs need to be made between
consistency and availability.

This section details this trade-off for data stores used by the Distributed Server.

=== Cassandra consistency model

link:https://cassandra.apache.org/[Cassandra] is an
link:https://en.wikipedia.org/wiki/Eventual_consistency[eventually consistent] data store.
This means that replica can hold diverging data, but are guaranteed to converge over time.

Several mechanisms are built in Cassandra to enforce this convergence, and need to be
leveraged by *Distributed Server Administrator*. Namely
link:https://docs.datastax.com/en/dse/5.1/dse-admin/datastax_enterprise/tools/nodetool/toolsRepair.html[nodetool repair],
link:https://cassandra.apache.org/doc/latest/operating/hints.html[Hinted hand-off] and
link:https://cassandra.apache.org/doc/latest/operating/read_repair.html[Read repair].

The Distributed Server tries to mitigate inconsistencies by relying on
link:https://docs.datastax.com/en/archived/cassandra/3.0/cassandra/dml/dmlConfigConsistency.html[QUORUM] read and write levels.
This means that a majority of replica are needed for read and write operations to be performed.

Critical business operations, like UID allocation, rely on strong consistency mechanisms brought by
link:https://www.datastax.com/blog/2013/07/lightweight-transactions-cassandra-20[lightweight transaction].

==== About multi data-center setups

As strong consistency is required for some operation, especially regarding IMAP monotic UID and MODSEQ generation,
and as lightweight transactions are slow across data centers, running James with a
link:https://docs.datastax.com/en/ddac/doc/datastax_enterprise/production/DDACmultiDCperWorkloadType.html[multi data-center]
Cassandra setup is discouraged.

However, xref:configure/cassandra.adoc[this page] enables setting alternative read level,
which could be acceptable regarding limited requirements. `LOCAL_QUORUM` coupled with `LOCAL_SERIAL`
is likely the only scalable setup. Some options were added to turn off SERIAL consistency usage for message

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/objectives.adoc
=====================================================
= Distributed James Server &amp;mdash; Objectives and motivation
:navtitle: Objectives and motivation

The objective of the Distributed Server is to provided facilities to execute
an advanced, extendable, and distributed email system. It is intended for
organization with serious requirements, such as high-throughput or very large
data sets.

Scaling emails infrastructure is a notoriously hard problem. The intent of the Distributed server is
to implement a mail server using modern NoSQL technologies. It relies on:

* Object Storage enables scalable yet cheap storage of large amount of data
* The use of NoSQL for metadata storage enables vertical scalability
* Finally a Distributed search engine enables quick and efficient search

Replication, data availability are thus handled by battle tested technologies.

Such a data storage strategy enables:

* A centralized management of all server components, as each Distributed James server hold the same view on data.
* A better load and data repartition between email servers, as each James servers can cary out any tasks.
* Easy scaling. Handling more users or more data is as easy as adding James instances and scaling the underlying
databases.
* Easier load-balancing, as any email server can handle requests from any user. No sharding is involved.
* Rich feature, especially regarding *sharing*. Every user can delegate access to any over users.

Furthermore, this server is intended to be easily customisable so that it can easily be adapted to ones needs.

* Several packaged extensions can be xref:configure/index.adoc#_for_extensions[configured]
* It is easy to write and load xref:extending/index.adoc[your own extensions]


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/operate/metrics.adoc
=====================================================
= Distributed James Server &amp;mdash; Metrics
:navtitle: Metrics

James relies on the https://metrics.dropwizard.io/4.1.2/manual/core.html[Dropwizard metric library]
for keeping track of some core metrics of James.

Such metrics are made available via JMX. You can connect for instance using VisualVM and the associated
mbean plugins.

We also support displaying them via https://grafana.com/[Grafana]. Two methods can be used to back grafana display:

 - Prometheus metric collection - Data are exposed on a HTTP endpoint for Prometheus scrape.
 - ElasticSearch metric collection - This method is depreciated and will be removed in next version.
 
== Expose metrics for Prometheus collection

To enable James metrics, add ``extensions.routes`` to https://github.com/apache/james-project/blob/master/server/apps/distributed-app/docs/modules/ROOT/pages/configure/webadmin.adoc[webadmin.properties] file:
```
extensions.routes=org.apache.james.webadmin.dropwizard.MetricsRoutes
```
Connect to james-admin url to test the result: 
....
http://james-admin-url/metrics
....

== Configure Prometheus Data source
You need to set up https://prometheus.io/docs/prometheus/latest/getting_started/[Prometheus] first to scrape James metrics. +
Add Apache James WebAdmin Url or IP address to ``prometheus.yaml`` configuration file:
....
scrape_configs:
  # The job name is added as a label `job=&lt;job_name&gt;` to any timeseries scraped from this config.
  - job_name: 'WebAdmin url Example'
    scrape_interval: 5s
    metrics_path: /metrics
    static_configs:
      - targets: ['james-webamin-url']
  - job_name: 'WebAdmin IP Example'
    scrape_interval: 5s
    metrics_path: /metrics
    static_configs:
      - targets: ['192.168.100.10:8000'] 
....

== Connect Prometheus to Grafana

You can do this either from https://prometheus.io/docs/visualization/grafana/[Grafana UI] or from a https://grafana.com/docs/grafana/latest/datasources/prometheus/[configuration file]. +
The following `docker-compose.yaml` will help you install a simple Prometheus/ Grafana stack :
       
```
version: '3'

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/operate/security.adoc
=====================================================
= Security checklist
:navtitle: Security checklist

This document aims as summarizing threats, security best practices as well as recommendations.

== Threats

Operating an email server exposes you to the following threats:

 - Spammers might attempt to use your servers to send their spam messages on their behalf. We speak of
*open relay*. In addition to the resources consumed being an open relay will affect the trust other mail
installations have in you, and thus will cause legitimate traffic to be rejected.
 - Emails mostly consist of private data, which shall only be accessed by their legitimate user. Failure
to do so might result in *information disclosure*.
 - *Email forgery*. An attacker might craft an email on the behalf of legitimate users.
 - Email protocols allow user to authenticate and thus can be used as *oracles* to guess user passwords.
 - *Spam*. Non legitimate traffic can be a real burden to your users.
 - *Phishing*: Crafted emails that tricks the user into doing unintended actions.
 - *Viruses*: An attacker sends an attachment that contains an exploit that could run if a user opens it.
 - *Denial of service*: A small request may result in a very large response and require considerable work on the server...
 - *Denial of service*: A malicious JMAP client may use the JMAP push subscription to attempt to flood a third party
server with requests, creating a denial-of-service attack and masking the attacker&#x2019;s true identity.
 - *Dictionary Harvest Attacks*: An attacker can rely on SMTP command reply code to know if a user exists or not. This
 can be used to obtain the list of local users and later use those address as targets for other attacks.

== Best practices

The following sections ranks best practices.

=== Best practices: Must

 - 1. Configure James in order not to be an xref:configure/smtp.adoc#_about_open_relays[open relay]. This should be the
case with the default configuration.

Be sure in xref:configure/smtp.adoc[smtpserver.xml] to activate the following options: `verifyIdentity`.

We then recommend to manually test your installation in order to ensure that:

    - Unauthenticated SMTP users cannot send mails to external email addresses (they are not relayed)
    - Unauthenticated SMTP users can send mails to internal email addresses
    - Unauthenticated SMTP users cannot use local addresses in their mail from, and send emails both locally and to distant targets.

 - 2. Avoid *STARTTLS* usage and favor SSL. Upgrade from a non encrypted channel into an encrypted channel is an opportunity
for additional vulnerabilities. This is easily prevented by requiring SSL connection upfront. link:https://nostarttls.secvuln.info/[Read more...]

Please note that STARTTLS is still beneficial in the context of email relaying, which happens on SMTP port 25 unencrypted,
and enable opportunistic encryption upgrades that would not overwise be possible. We recommend keeping STARTTLS activated
for SMTP port 25.

 - 3. Use SSL for xref:configure/mailets.adoc#_remotedelivery[remote delivery] whenever you are using a gateway relaying SMTP server.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/operate/migrating.adoc
=====================================================
= Distributed James Server &amp;mdash; Migrating existing data
:navtitle: Migrating existing data

This page presents how operators can migrate your user mailbox and mails into the Distributed Server in order to adopt it.

We assume you have a xref:configure/index.adoc[well configured] running Distributed server
at hand. We also assume existing mails are hosted on a tier mail server which can be accessed via IMAP and supports
impersonation.

First, you want to create the domains handled by your server, as  well as the users you will be hosting. This operation
can be performed via WebAdmin or the CLI.

 * Using webadmin :
 ** Read xref:operate/webadmin.adoc#_create_a_domain[this section] for creating domains
 ** Read xref:operate/webadmin.adoc#_create_a_user[this section] for creating users
 * Using the CLI :
 ** Read xref:operate/cli.adoc#_manage_domains[this section] for creating domains
 ** Read xref:operate/cli.adoc#_managing_users[this section] for creating users

Second, you want to allow an administrator account of your Distributed Server to have write access on other user mailboxes.
This can be setted up this the *administratorId* configuration option of the xref:configure/usersrepository.adoc[usersrepository.xml] configuration file.

Then, it is time to run https://github.com/imapsync/imapsync[imapsync] script to copy the emails from the previous mail server
into the Distributed Server. Here is an example migrating a single user, relying on impersonation:

....
imapsync --host1 previous.server.domain.tld \
    --user1 user@domain.tld --authuser1 adminOldServer@domain.tld \
    --proxyauth1 --password1  passwordOfTheOldAdmin \
    --host2 distributed.james.domain.tld \
    --user2 use1@domain.tld  \
    --authuser2 adminNewServer@domain.tld --proxyauth2 \
    --password2  passwordOfTheNewAdmin
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/operate/guide.adoc
=====================================================
= Distributed James Server &amp;mdash; Operator guide
:navtitle: Operator guide

This guide aims to be an entry-point to the James documentation for user
managing a distributed Guice James server.

It includes:

* Simple architecture explanations
* Propose some diagnostics for some common issues
* Present procedures that can be set up to address these issues

In order to not duplicate information, existing documentation will be
linked.

Please note that this product is under active development, should be
considered experimental and thus targets advanced users.

== Basic Monitoring

A toolbox is available to help an administrator diagnose issues:

* xref:operate/logging.adoc[Structured logging into Kibana]
* xref:operate/metrics.adoc[Metrics graphs into Grafana]
* xref:operate/webadmin.adoc#_healthcheck[WebAdmin HealthChecks]

== Mail processing

Currently, an administrator can monitor mail processing failure through `ERROR` log
review. We also recommend watching in Kibana INFO logs using the
`org.apache.james.transport.mailets.ToProcessor` value as their `logger`. Metrics about
mail repository size, and the corresponding Grafana boards are yet to be contributed.

Furthermore, given the default mailet container configuration, we recommend monitoring
`cassandra://var/mail/error/` to be empty.

WebAdmin exposes all utilities for
xref:operate/webadmin.adoc#_reprocessing_mails_from_a_mail_repository[reprocessing
all mails in a mail repository] or
xref:operate/webadmin.adoc#_reprocessing_a_specific_mail_from_a_mail_repository[reprocessing
a single mail in a mail repository].

In order to prevent unbounded processing that could consume unbounded resources. We can provide a CRON with `limit` parameter.
Ex: 10 reprocessed per minute
Note that it only support the reprocessing all mails.

Also, one can decide to
xref:operate/webadmin.adoc#_removing_all_mails_from_a_mail_repository[delete
all the mails of a mail repository] or
xref:operate/webadmin.adoc#_removing_a_mail_from_a_mail_repository[delete

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/operate/performanceChecklist.adoc
=====================================================
= Distributed James Server &amp;mdash; Performance checklist
:navtitle: Performance checklist

This guide aims to help James operators refine their James configuration and set up to achieve better performance.

== Database setup

Cassandra, OpenSearch, RabbitMQ is a large topic in itself that we do not intend to cover here. Yet, here are some
very basic recommendation that are always beneficial to keep in mind.

We recommend:

* Running Cassandra, OpenSearch on commodity hardware with attached SSD. SAN disks are known to cause performance
issues for these technologies. HDD disks are to be banned for these performance related applications.
* We recommend getting an Object Storage SaaS offering that suites your needs. Most generalist S3 offers will suite
James needs.
* We do provide a guide on xref:[Database benchmarks] that can help identify and fix issues.

== James configuration

=== Cassandra

People tunning for performance would likely accept relaxing their consistency needs. James allows doing this.

**LightWeight Transactions (LWT)** can be disabled where they are not essential. This can be done within
xref:[cassandra.properties]:

....
mailbox.read.strong.consistency=false
message.read.strong.consistency=false
message.write.strong.consistency.unsafe=false
mailrepository.strong.consistency=false
....

Also, James allows for **Read repairs** where consistency checks are piggy backed on reads randomly. This of course
comes at a performance cost as it generates extre reads, thus minimizing read repair probability can help improving
performance. This can be done within
xref:[cassandra.properties]:

....
mailbox.read.repair.chance=0.00
mailbox.counters.read.repair.chance.max=0.000
mailbox.counters.read.repair.chance.one.hundred=0.000
....

One can also avoid some Cassandra requests by disabling ACLs (meaning users will only access to the mailboxes they own,
all mailbox-sharing features will thus not be achievable). This can be done within
xref:[cassandra.properties]:

....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/operate/webadmin.adoc
=====================================================
= Distributed James Server &amp;mdash; WebAdmin REST administration API
:navtitle: WebAdmin REST administration API

The web administration supports for now the CRUD operations on the domains, the users, their mailboxes and their quotas,
 managing mail repositories, performing cassandra migrations, and much more, as described in the following sections.

*WARNING*: This API allow authentication only via the use of JWT. If not
configured with JWT, an administrator should ensure an attacker can not
use this API.

By the way, some endpoints are not filtered by authentication. Those endpoints are not related to data stored in James,
for example: Swagger documentation &amp; James health checks.

In case of any error, the system will return an error message which is
json format like this:

....
{
    statusCode: &lt;error_code&gt;,
    type: &lt;error_type&gt;,
    message: &lt;the_error_message&gt;
    cause: &lt;the_detail_message_from_throwable&gt;
}
....

Also be aware that, in case things go wrong, all endpoints might return
a 500 internal error (with a JSON body formatted as exposed above). To
avoid information duplication, this is omitted on endpoint specific
documentation.

Finally, please note that in case of a malformed URL the 400 bad request
response will contain an HTML body.

== HealthCheck

=== Check all components

This endpoint is simple for now and is just returning the http status
code corresponding to the state of checks (see below). The user has to
check in the logs in order to have more information about failing
checks.

....
curl -XGET http://ip:port/healthcheck
....

Will return a list of healthChecks execution result, with an aggregated
result:

....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/operate/logging.adoc
=====================================================
= Distributed James Server &amp;mdash; Logging
:navtitle: Logging

We recommend to closely monitoring *ERROR* and *WARNING* logs. Those
logs should be considered not normal.

If you encounter some suspicious logs:

* If you have any doubt about the log being caused by a bug in James
source code, please reach us via the bug tracker, the user mailing list or our Gitter channel (see our
http://james.apache.org/#second[community page])
* They can be due to insufficient performance from tier applications (eg
Cassandra timeouts). In such case we advise you to conduct a close
review of performances at the tier level.

Leveraging filters in Kibana discover view can help to filter out
''already known'' frequently occurring logs.

When reporting ERROR or WARNING logs, consider adding the full logs, and
related data (eg the raw content of a mail triggering an issue) to the
bug report in order to ease resolution.

== Logging configuration

Distributed James uses link:http://logback.qos.ch/[logback] as a logging library
and link:https://docs.fluentbit.io/[FluentBit] as centralize logging.

Information about logback configuration can be found
link:http://logback.qos.ch/manual/configuration.html[here].

== Structured logging

=== Pushing logs to ElasticSearch
Distributed Server leverages the use of MDC in order to achieve structured logging,
and better add context to the logged information. We furthermore ship
link:https://github.com/linagora/logback-elasticsearch-appender[Logback Elasticsearch Appender]
on the classpath to easily allow direct log indexation in
link:https://www.elastic.co/elasticsearch[ElasticSearch].

Here is a sample `conf/logback.xml` configuration file for logback with the following
pre-requisites:

* Logging both in an unstructured fashion on the console and in a structured fashion in ElasticSearch
* Logging ElasticSearch Log appender logs in the console

Configuration for pushing log direct to ElasticSearch

* Logging ElasticSearch Log appender logs in the console

....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/operate/index.adoc
=====================================================
= Distributed James Server &amp;mdash; Operate the Distributed server
:navtitle: Operate the Distributed server

The following pages detail how to operate the Distributed server.

Once you have a Distributed James server up and running you then need to ensure it operates correctly and has a decent performance.
You may also need to perform some operation maintenance or recover from incidents. This section covers
these topics.

Read more about xref:operate/logging.adoc[Logging].

The xref:operate/webadmin.adoc[WebAdmin Restfull administration API] is the
recommended way to operate the Distributed James server. It allows managing and interacting with most
server components.

The xref:operate/cli.adoc[Command line interface] allows to interact with some
server components. However it relies on JMX technologies and its use is discouraged.

The xref:operate/metrics.adoc[metrics] allows to build latency and throughput
graphs, that can be visualized, for instance in *Grafana*.

We did put together a xref:operate/guide.adoc[detailed guide] for
distributed James operators. We also propose a xref:operate/performanceChecklist.adoc[performance checklist].

We also included a guide for xref:operate/migrating.adoc[migrating existing data] into the distributed server.

Read more about xref:operate/cassandra-migration.adoc[Cassandra data migration].

== Upgrading

This section sums up and links upgrade instructions for people willing to upgrade their Distributed server to newer versions.

.Upgrade path
|===
| Upgrade from | Recommended upgrade path to 3.7.4

| 3.7.0 - 3.7.4
| Upgrade, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#380-version[3.8.0 upgrade instructions]

| 3.6.0 - 3.6.2
| 1. Upgrade, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#370-version[3.7.0 upgrade instructions]

2. Upgrade, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#380-version[3.8.0 upgrade instructions]

| 3.5.0
| 1. Upgrade, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#360-version[3.6.0 upgrade instructions]

Note: Because of ElasticSearch upgrade (6.3 -&gt; 7.10) this migration cannot be done in a rolling fashion manner.

2. Upgrade, and apply link:https://github.com/apache/james-project/blob/master/upgrade-instructions.md#370-version[3.7.0 upgrade instructions]

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/operate/cassandra-migration.adoc
=====================================================
= Distributed James Server &amp;mdash; Cassandra migration
:navtitle: Cassandra migration

Cassandra upgrades implies the creation of a new table. Thus restarting James is needed, as new tables are created on restart.

Once done, we ship code that tries to read from new tables, and if not possible backs up to old tables. You can thus safely run
without running additional migrations.

On the fly migration can be enabled. However, one might want to force the migration in a controlled fashion, and update
automatically current schema version used (assess in the database old versions is no more used, as the corresponding tables are empty).
Note that this process is safe: we ensure the service is not running concurrently on this James instance, that it does not bump
version upon partial failures, that race condition in version upgrades will be idempotent, etc...

These schema updates can be triggered by xref:operate/webadmin.adoc#_cassandra_schema_upgrades[webadmin].

Note that currently the progress can be tracked by logs.

Here are the implemented migrations:

* *From V8 to V9* : Adopt a more compact representation for message properties.
* *From V9 to V10* : Handles Mailbox ACL transactionality with event-sourcing. We got read of SERIAL consistency upon
reads thus unlocking a major performance enhancement.

The xref:operate/guide.adoc#_updating_cassandra_schema_version[Operator guide] further details the migration process.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/operate/cli.adoc
=====================================================
= Distributed James Server &amp;mdash; Command Line Interface
:navtitle: Command Line Interface

The distributed server is packed with a command line client.

To run this command line client simply execute:

....
java -jar /root/james-cli.jar -h 127.0.0.1 -p 9999 COMMAND
....

The following document will explain you which are the available options
for *COMMAND*.

Note: the above command line before *COMMAND* will be documented as _\{cli}_.

== Manage Domains

Domains represent the domain names handled by your server.

You can add a domain:

....
{cli} AddDomain domain.tld
....

You can remove a domain:

....
{cli} RemoveDomain domain.tld
....

(Note: associated users are not removed automatically)

Check if a domain is handled:

....
{cli} ContainsDomain domain.tld
....

And list your domains:

....
{cli} ListDomains
....

== Managing users

Note: the following commands are explained with virtual hosting turned
on.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/db-benchmark.adoc
=====================================================
= Distributed James Server -- Database benchmarks
:navtitle: Database benchmarks

This document provides basic performance of Distributed James' databases, benchmark methodologies as a basis for a James administrator who
can test and evaluate if his Distributed James databases are performing well.

It includes:

* A sample deployment topology
* Propose benchmark methodology and base performance for each database. This aims to help operators to quickly identify
performance issues and compliance of their databases.

== Sample deployment topology

We deploy a sample topology of Distributed James with these following databases:

- Apache Cassandra 4 as main database: 3 nodes, each node has 8 OVH vCores CPU and 30 GB memory limit (OVH b2-30 instance).
- OpenDistro 1.13.1 as search engine: 3 nodes, each node has 8 OVH vCores CPU and 30 GB memory limit (OVH b2-30 instance).
- RabbitMQ 3.8.17 as message queue: 3 Kubernetes pods, each pod has 0.6 OVH vCore CPU and 2 GB memory limit.
- OVH Swift S3 as an object storage

With the above system, our email service operates stably with valuable performance.
For a more details, it can handle a load throughput up to about 1000 JMAP requests per second with 99th percentile latency is 400ms.

== Benchmark methodologies and base performances
We are willing to share the benchmark methodologies and the result to you as a reference to evaluate your Distributed James' performance.
Other evaluation methods are welcome, as long as your databases exhibit similar or even better performance than ours.
It is up to your business needs. If your databases shows results that fall far from our baseline performance, there's a good chance that
there are problems with your system, and you need to check it out thoroughly.

=== Benchmark Cassandra

==== Benchmark methodology
===== Benchmark tool

We use https://cassandra.apache.org/doc/latest/cassandra/tools/cassandra_stress.html[cassandra-stress tool] - an official
tool of Cassandra for stress loading tests.

The cassandra-stress tool is a Java-based stress testing utility for basic benchmarking and load testing a Cassandra cluster.
Data modeling choices can greatly affect application performance. Significant load testing over several trials is the best method for discovering issues with a particular data model. The cassandra-stress tool is an effective tool for populating a cluster and stress testing CQL tables and queries. Use cassandra-stress to:

- Quickly determine how a schema performs.
- Understand how your database scales.
- Optimize your data model and settings.
- Determine production capacity.

There are several operation types:

- write-only, read-only, and mixed workloads of standard data
- write-only and read-only workloads for counter columns

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/james-benchmark.adoc
=====================================================
= Distributed James Server benchmark
:navtitle: James benchmarks

This document provides benchmark methodology and basic performance of Distributed James as a basis for a James administrator who
can test and evaluate if his Distributed James is performing well.

It includes:

* A sample Distributed James deployment topology
* Propose benchmark methodology
* Sample performance results

This aims to help operators quickly identify performance issues.

== Sample deployment topology

We deploy a sample topology of Distributed James with these following components:

- Distributed James: 3 Kubernetes pods, each pod has 2 OVH vCore CPU and 4 GB memory limit.
- Apache Cassandra 4 as main database: 3 nodes, each node has 8 OVH vCores CPU and 30 GB memory limit (OVH b2-30 instance).
- OpenDistro 1.13.1 as search engine: 3 nodes, each node has 8 OVH vCores CPU and 30 GB memory limit (OVH b2-30 instance).
- RabbitMQ 3.8.17 as message queue: 3 Kubernetes pods, each pod has 0.6 OVH vCore CPU and 2 GB memory limit.
- OVH Swift S3 as an object storage

== Benchmark methodology and base performance

=== Provision testing data

Before doing the performance test, you should make sure you have a Distributed James up and running with some provisioned testing
data so that it is representative of reality.

Please follow these steps to provision testing data:

* Prepare James with a custom `mailetcontainer.xml` having Random storing mailet. This help us easily setting a good amount of
provisioned emails.

Add this under transport processor
----
&lt;mailet match=&quot;All&quot; class=&quot;RandomStoring&quot;/&gt;
----

* Modify https://github.com/apache/james-project/tree/master/server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/provision.sh[provision.sh]
upon your need (number of users, mailboxes, emails to be provisioned).

Currently, this script provisions 10 users, 15 mailboxes and hundreds of emails for example. Normally to make the performance test representative, you
should provision thousands of users, thousands of mailboxes and millions of emails.

* Add the permission to execute the script:
----
chmod +x provision.sh

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/provision.sh
=====================================================
#!/bin/bash

export WEBADMIN_BASE_URL=&quot;http://localhost:8000&quot;
export SMTP_URL=&quot;localhost:25&quot;
export DOMAIN_NAME=&quot;domain.org&quot;
export USERS_COUNT=10
export DUMMY_MAILBOXES_COUNT=10
export DUMMY_EMAILS_COUNT=100

# Create domain
curl -X PUT ${WEBADMIN_BASE_URL}/domains/${DOMAIN_NAME}

for i in $(seq 1 $USERS_COUNT)
do
  # Create user
   echo &quot;Creating user $i&quot;
   username=user${i}@$DOMAIN_NAME
   curl -XPUT ${WEBADMIN_BASE_URL}/users/$username \
     -d '{&quot;password&quot;:&quot;secret&quot;}' \
     -H &quot;Content-Type: application/json&quot;

  # Create mailboxes for each user
   echo &quot;Creating user $i mailboxes&quot;
   # Create some basic mailboxes
   curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/INBOX
   curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Outbox
   curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Sent
   curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Draft
   curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/Trash

   # Create some other dummy mailboxes
   for j in $(seq 1 $DUMMY_MAILBOXES_COUNT)
   do
     dummyMailbox=MAILBOX${j}
     curl -XPUT ${WEBADMIN_BASE_URL}/users/${username}/mailboxes/$dummyMailbox
   done
done

# Create many dummy randomly messages (DUMMY_EMAILS_COUNT*4 to DUMMY_EMAILS_COUNT*8 messages range)
echo &quot;Creating various dummy emails&quot;
smtp-source -m ${DUMMY_MAILBOXES_COUNT} -f user1@domain.org -t user2@domain.org ${SMTP_URL}

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/benchmark/index.adoc
=====================================================
= Distributed James Server &amp;mdash; Performance testing the Distributed server
:navtitle: Performance testing the Distributed server

The following pages detail how to do performance testing for the Distributed server also its database.

Once you have a Distributed James server up and running you then need to ensure it operates correctly and has a decent performance.
You may need to do performance testings periodically to make sure your James performs well.

We introduced xref:benchmark/james-benchmark.adoc[tools and base benchmark result for Distributed James] also xref:benchmark/db-benchmark.adoc[James database's base performance and how to benchmark them]
to cover this topic.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/index.adoc
=====================================================
= James Distributed Mail Server
:navtitle: Distributed James Application

The Distributed server offers an easy way to scale email server. Based on
noSQL solutions, it is intended to be easy to operate for large
deployments, without needing sharding and protocol aware load balancing.

The Distributed Server does assume that you have advanced
technical knowledge and is the most complex and feature-rich option.

This server is:

* Intended for use by experts only
* Used for large-scale distributed deployments
* Is designed for Mail Delivery use cases but can also carry out mail processing
* The most feature-rich server, but also by far the most complex

In this section of the documentation, we will introduce you to:

* xref:objectives.adoc[Objectives and motivation of the Distributed Server]
* xref:architecture/index.adoc[Overview of architecture]
* xref:run/index.adoc[Run the Distributed Server]
* xref:configure/index.adoc[Configure the Distributed Server]
* xref:operate/index.adoc[Operation of the Distributed Server]
* xref:extending/index.adoc[How to extend the server]


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/extending/mail-processing.adoc
=====================================================
= Distributed James Server &amp;mdash; Custom mail processing components
:navtitle: Custom mail processing components

When none of the matchers and mailets available in James allows us to implement what we want, extension
developers will have to write our own mailet and matcher in a separated maven project depending on James
Mailet API.

== Writing custom mailets/matchers

We will write a *IsDelayedForMoreThan* matcher with a configurable delay. If the Sent Date of incoming
emails is older than specified delay, then the emails should be matched (return all mail recipients). Otherwise,
we just return an empty list of recipients.

To ease our Job, we can rely on the *org.apache.james.apache-mailet-base* maven project, which provides us
a *GenericMatcher* that we can extend.

Here is the dependency:

....
&lt;dependency&gt;
  &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
  &lt;artifactId&gt;apache-mailet-base&lt;/artifactId&gt;
&lt;/dependency&gt;
....

The main method of a matcher is the *match* method:

....
Collection&lt;MailAddress&gt; match(Mail mail) throws MessagingException;
....

For us, it becomes, with *maxDelay* being previously configured:

....
private final Clock clock;
private Duration maxDelay;

@Override
public Collection&lt;MailAddress&gt; match(Mail mail) throws MessagingException {
Date sentDate = mail.getMessage().getSentDate();

    if (clock.instant().isAfter(sentDate.toInstant().plusMillis(maxDelay.toMillis()))) {
        return ImmutableList.copyOf(mail.getRecipients());
    }
    return ImmutableList.of();
}
....

*GenericMatcher* exposes us the condition that had been configured. We will use it to compute *maxDelay*.
We can do it in the *init()* method exposed by the generic matcher:

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/extending/smtp-hooks.adoc
=====================================================
= Distributed James Server &amp;mdash; Custom SMTP hooks
:navtitle: Custom SMTP hooks

SMTP hooks enable extending capabilities of the SMTP server and are run synchronously upon email reception, before the email is
enqueued in the MailQueue, and before any mail processing takes place.

== Available generic hooks

The following interfaces allows interacting with the following commands:

 * *AuthHook*: Implement this interfaces to hook in the AUTH Command.

....
    HookResult doAuth(SMTPSession session, Username username, String password);
....

 * *HeloHook*: Implement this interfaces to hook in the HELO Command

....
    HookResult doHelo(SMTPSession session, String helo);
....

 * *MailHook*: Implement this interfaces to hook in the MAIL Command

....
    HookResult doMail(SMTPSession session, MaybeSender sender);
....

 * *MailParametersHook*: Implement this interfaces to hook in the MAIL Command, this is called for specific mail arguments

....
    HookResult doMailParameter(SMTPSession session, String paramName, String paramValue);
....


 * *QuitHook*: Implement this interfaces to hook in the QUIT Command

....
    HookResult doQuit(SMTPSession session);
....

 * *RcptHook*: Implement this interfaces to hook in the RCPT Command

....
    HookResult doRcpt(SMTPSession session, MaybeSender sender, MailAddress rcpt);
....

 * *UnknownHook*: Hook for unknown commands

....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/extending/imap.adoc
=====================================================
= Distributed James Server &amp;mdash; Custom IMAP processing
:navtitle: Custom IMAP processing

James allows defining your own handler packages.

An Imap package is a simple class that bundles IMAP processing components:

....
public interface ImapPackage {
    Collection&lt;ClassName&gt; processors();

    Collection&lt;ClassName&gt; decoders();

    Collection&lt;ClassName&gt; encoders();
}
....

Processors needs to be of class `AbstractProcessor`, decoders of class `AbstractImapCommandParser`
and encoders of class `ImapResponseEncoder`. Extensions-jar mechanism can be used to load custom classes.

Custom configuration can be obtained through `ImapConfiguration` class via the `getCustomProperties` method.

A full working example is available link:https://github.com/apache/james-project/tree/master/examples/custom-imap[here].

See this page for xref:configure/imap.adoc#_extending_imap[more details on configuring IMAP extensions].

== IMAP additional Connection Checks

James allows defining your own additional connection checks to guarantee that the connecting IP is secured.

A custom connection check should implement the following functional interface:
```
@FunctionalInterface
public interface ConnectionCheck {
    Publisher&lt;Void&gt; validate(InetSocketAddress remoteAddress);
}
```

- `validate` method is used to check the connecting IP is secured.

Then the custom defined ConnectionCheck can be added in `imapserver.xml` file:
```
&lt;additionalConnectionChecks&gt;org.apache.james.CrowdsecImapConnectionCheck&lt;/additionalConnectionChecks&gt;
```

An example for configuration is available link:https://github.com/apache/james-project/blob/master/third-party/crowdsec/sample-configuration/imapserver.xml[here].

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/extending/webadmin-routes.adoc
=====================================================
= Distributed James Server &amp;mdash; Custom WebAdmin routes
:navtitle: Custom WebAdmin routes

== Writing custom WebAdmin routes

An extension writer can write additional WebAdmin routes, effectively exposed over the WebAdmin API.

To do so, extend the *Routes* defined in the *james-server-webadmin-core*.

Here is the dependency:

....
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
    &lt;artifactId&gt;james-server-webadmin-core&lt;/artifactId&gt;
&lt;/dependency&gt;
....

Here is the interface:

....
public interface Routes {
    String getBasePath();

    void define(Service service);
}
....

* *getBasePath* enables to know the prefix of your route

* *define* enables you to register endpoint is the http://sparkjava.com/[sparkjava] Service instance. HTTP *GET*, *POST*,
*PUT*, *PATCH*, etc.. verbs are supported.

== Registration

Your custom WebAdmin routes needs to be in the *extensions-jars* folder.

You need to register its fully qualified class name in xref:configure/webadmin.adoc[webadmin.properties]
using the *extensions.routes* property.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/extending/mailbox-listeners.adoc
=====================================================
= Distributed James Server &amp;mdash; Custom Mailbox Listeners
:navtitle: Custom Mailbox Listeners

== Writing additional listener

An extension writer can write new additional mailbox listeners.

To do so, extend the *GroupMailboxListener* defined in the *mailbox-api*.

Here is the dependency:

....
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
    &lt;artifactId&gt;apache-james-mailbox-api&lt;/artifactId&gt;
&lt;/dependency&gt;
....

Here are the methods you can implement:

....
    void event(Event event) throws Exception;
....

allows you to specify the business logic you want to execute upon new events generation.

....
    boolean isHandling(Event event);
....

Allows to know if this event is worth execution, and should be sent on the EventBus. This avoids execution of non
handled events and can save some IOs.

== Registration of custom additional listeners

Your custom additional listener needs to be in the *extensions-jars* folder.

You need to register its fully qualified class name in xref:configure/listeners.adoc[listeners.xml]

== Events

Your listener will be called for the following events:

 - *MailboxAdded*: A new mailbox had been created
 - *MailboxDeletion*: A new mailbox had been deleted
 - *MailboxRenamed*: A mailbox was renamed
 - *MailboxACLUpdated*: The rights of a mailbox had been changed
 - *Expunged*: Some messages had been deleted
 - *FlagsUpdated*: Some message flags had been updated
 - *Added*: New messages had been added to a mailbox

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/extending/index.adoc
=====================================================
= Distributed James Server &amp;mdash; Extending server behavior
:navtitle: Extending server behavior

== Available extension mechanisms

image::james-hexagons-extensions.png[Extension mechanisms for the Distributed Server]

The Distributed Server exposes several interfaces allowing the user to write custom extensions in
order to extend the Distributed Server behavior.

Writing *Mailets* and *Matchers* allows one to supply custom components for the
xref:extending/mail-processing.adoc[Mail Processing] and
enables to take decisions, and implement your business logic at the transport level.

Writing xref:extending/mailbox-listeners.adoc[Mailbox listeners] enables to
react to your user interaction with their mailbox. This powerful tool allows build advanced features
for mail delivery servers.

Writing xref:extending/smtp-hooks.adoc[SMTP hookd] enables to
add features to your SMTP server.

Writing xref:extending/webadmin-routes.adoc[WebAdmin routes] enables to
add features to the WebAdmin REST API.

Writing xref:extending/imap.adoc[IMAP extensions].

The link:https://github.com/apache/james-project/tree/master/examples[examples] are also a good reference.

== Handling injections for your extensions

=== Injecting core components

You can very easily inject core components into your custom extensions.

All you need is to pass them via a constructor annotated via *@Inject*.

For instance:

....
public class MyMailet extends GenericMailet {
    private final UsersRepository usersRepository;

    @Inject
    public MyMailet(UsersRepository usersRepository) {
        this.usersRepository = usersRepository;
    }

    @Override
    public void service(Mail mail) throws MessagingException {
        // Do something

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-secrets.adoc
=====================================================
== Secrets for James Helm template

Helm James has many secret values to configure before being able to use
it correctly. Those secrets are linked to the template through their
declaration in `james-secrets.yaml`. A sample with dumb secrets can be
found in the `secrets.sample.yaml` file.

This document presents a quick description of each secret field.

For more information about encrypt/descrypt secret with Helm, see:
https://github.com/jkroepke/helm-secrets

=== James secret values

[cols=&quot;&lt;,&lt;,&lt;&quot;,options=&quot;header&quot;,]
|===
|Field |Mandatory or optional |Description
|jwtPublicKey |Mandatory |The JWT public key used for JWT tokens.

|jwtPrivateKey |Mandatory |The JWT private key used for JWT tokens.

|cassandraUser |Mandatory |The user for Cassandra access

|cassandraPassword |Mandatory |The password fort Cassandra access

|esUser |Optional |The user for OpenSearch access

|esPassword |Optional |The password for OpenSearch access

|dkimPrivateKey |Optional |The private key for the generated DKIM

|s3.endpoint |Mandatory |The S3 endpoint. ie:
http://s3-us-east-1.amazonaws.com

|s3.region |Mandatory |The region of the S3 object storage.

|s3.accessKeyId |Mandatory |The access key to the S3 object storage

|s3.secretKey |Mandatory |The secret key to the S3 object storage

|s3.bucketNameSuffix |Mandatory |All buckets in S3 related to james
storage start by ``james-''. This allows to have a suffix for each
tenant
|===

=== jwtPublicKey

Use `openssl` to generate self-signed certificate and convert to Java
Key Store JKS. You can find an example
https://loneidealist.medium.com/generating-signing-certificates-with-openssl-and-converting-to-java-key-store-jks-3c8185dbf8fe[here]

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-logsMetrics.adoc
=====================================================
== Logs and Metrics

=== Logs

James exposes its logs on the console. Then a fluent bit instance scraps
and collects them, before being indexed and used by Kibana, with nice
search possibilities.

The way James exposes its logs on the console is defined in the
`logback.xml` configuration file. James currently exposes logs in JSON
format using Jackson Json formatter.

=== Metrics

James exposes its metrics over an HTTP Webadmin endpoint, something like
`https://james-web-admin/metrics`. Those metrics can be scraped by
Prometheus before being visualized on Grafana.

This Helm chart exposes James metrics through Prometheus
https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/getting-started.md#include-servicemonitors[ServiceMonitor].

You can import the dashboards for James metrics in Grafana defined
https://github.com/apache/james-project/tree/master/server/grafana-reporting/prometheus-datasource[here].

Be aware that those dashboards still need more work, as we used to
export metrics to Elasticsearch not long ago, which required to redo all
dashboards. Some enhancements are highly possible and encouraged.

Read more about xref:operate/metrics.adoc[Metrics in James].

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/run/run-docker.adoc
=====================================================
= Distributed James Server &amp;mdash; Run with docker
:navtitle: Run with docker

== Running via docker-compose


Requirements: docker &amp; docker-compose installed.

When you try James this way, you will use the most current state of James.
It will be configured to run with Cassandra &amp; OpenSearch.
All those three components will be started with a single command.

You can retrieve the docker-compose file : ( docker-compose file and james image name should be changed) 

    $ wget https://raw.githubusercontent.com/apache/james-project/master/server/apps/distributed-app/docker-compose.yml
   

Then, you just have to start the services:

    $ docker-compose up -d

Wait a few seconds in order to have all those services start up. You will see the following log when James is available:
james           | Started : true

A default domain, james.local, has been created. You can see this by running:

    $ docker exec james james-cli -h 127.0.0.1 -p 9999 listdomains

James will respond to IMAP port 143 and SMTP port 25.
You have to create users before playing with james. You may also want to create other domains.
Follow the 'Useful commands' section for more information about James CLI.

== Run with docker

=== Requirements

Compile the whole project:

    mvn clean install -DskipTests -T 4

Then load the distributed server docker image:

    docker load -i server/apps/distributed-app/target/jib-image.tar

Alternatively we provide convenience distribution for the latest release:

    docker pull apache/james:distributed-3.8.1

=== Running
Firstly, create your own user network on Docker for the James environment:

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/run/run-kubernetes.adoc
=====================================================
= Distributed James Server &amp;mdash; Run with Kubernetes
:navtitle: Run with Kubernetes

== Deploy Apache James on Kubernetes with Helm chart.

This chart bootstraps a James mail server on a link:http://kubernetes.io[Kubernetes] 
cluster using the link:https://helm.sh[Helm] package manager.

== Before Starting


Before running the Helm chart, James should have particularly accessed to the following external products:

Apache Cassandra::
- You can deploy Cassandra on Kubernetes with a link:https://github.com/bitnami/charts/tree/master/bitnami/cassandra[Cassandra chart] for testing purpose. However we would recommend running Cassandra on VirtualMachine for better stablilty.
OpenSearch::
- OpenSearch community maintains link:https://github.com/opensearch-project/helm-charts[Helm charts]
RabbitMQ::
- link:https://github.com/rabbitmq/cluster-operator[RabbitMQ Cluster Operator] is a custom Kubernetes resource designed for the lifecycle (creation, upgrade, graceful shutdown) of a RabbitMQ cluster. Using Quickstart setup is enough for James deployment.


== Configuration

=== Helm Configuration

The James helm package take parameters that will configure and determine the behavior of James.
There are 2 configuration files: 

* One contains global, non-confidential, configuration: `values.yaml`
* The other one contains secrets: `secrets.yaml`. Values are encrypted with a key stored generated by link:https://github.com/mozilla/sops[sops].

You need to pass these 2 files as parameters to the James Helm package.
To verify the coherence and avoid errors, the packages can validate the input.

This package contains a default `values.yaml` file, but that you should override with proper configuration for your deployment (`conf.yaml`).
The file `secrets.sample.yaml` will show you the possible values of the secrets file. To generate the `secrets.yaml` file, 
you will need a plugin for Helm called link:https://github.com/jkroepke/helm-secrets)[helm-scecrets].

Usually, you will save those configurations in different repositories, per deployment.

Have a look at `values.md` and `secrets.md` in our Chart link:https://github.com/apache/james-project/tree/master/server/apps/distributed-app/helm-chart/james/doc/[documents] to have more information on the configuration James is using.

You can find our Helm chart for James in link:https://github.com/apache/james-project/tree/master/server/apps/distributed-app/helm-chart[here]

=== James Configuration

The configuration files proper to James are stored in the Chart `james/configs` folder. They are being stored in a `ConfigMap` and then being mounted in the James pod at /root/conf path.

If you need to change a conf in James, this is where you need to look at.


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-values.adoc
=====================================================
== Values for Helm James template

Helm James has many visible values to configure before being able to use
it correctly. Values are injected into the deployment template as
environment variables. An example with default values can be found in
the `+values.yaml+` file.

This document presents a quick description of each value field.

=== DNS values
[cols=&quot;&lt;,&lt;,&lt;&quot;,options=&quot;header&quot;,]
|===
|Field |Default value |Description
|emailDomain |mail.example.com |The domain name for your tenant&#x2019;s email
addresses

|jmapUrl |jmap.example.com |The url for the ingress jmap endpoint

|adminUrl |admin.example.com |The url for the ingress admin endpoint

|smtpHostname |smtp.example.com |The SMTP Ehlo hostname
|===

=== James values
[cols=&quot;&lt;,&lt;,&lt;&quot;,options=&quot;header&quot;,]
|===
|Field |Default value |Description
|replicaJmapInstanceCount |1 |The number of pods we deploy for James
JMAP instance in the cluster

|replicaImapSmtpInstanceCount |1 |The number of pods we deploy for James
IMAP/SMTP instance in the cluster

|image |apache/james:distributed-3.8.1 |The James image used for
deployment (Cassandra - RabbitMQ - LDAP distributed James flavor)
|===

=== James environment values
[cols=&quot;&lt;,&lt;,&lt;&quot;,options=&quot;header&quot;,]
|===
|Field |Default value |Description

|jamesCassandraKeyspace |sandbox_james |The keyspace used for Cassandra
James data

|jamesCassandraCacheKeyspace |sandbox_james_cache |The keyspace used for
the Cassandra cache

|jamesEsMailboxIndex |mailbox_v1 |The index used for mailbox in
OpenSearch. The default value should be enough, but in case you had

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/run/index.adoc
=====================================================
= Distributed James Server &amp;mdash; Run 
:navtitle: Run

This sections presents guidance to all current deployment types of Distributed James Server.

== Run with Java

Build your own Apache James Distributed artifacts and start xref:run/run-java.adoc[Running it directly on a Java Virtual Machine].

== Run with Docker

We have prepared a docker-compose for Apache James to run with Cassandra &amp; OpenSearch.

You can start xref:run/run-docker.adoc[Running James with few simple Docker commands].

== Run with Kubernetes

A more complete - production ready deployment type.

We have packed xref:run/run-kubernetes.adoc[Apache James in a Helm chart], parameterized most of the application resources. With it you can easily deploy and test different set of configuration on a Kubernetes Cluster.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/run/run-java.adoc
=====================================================
= Distributed James Server &amp;mdash; Run
:navtitle: Run

== Building

=== Requirements

* Java 11 SDK
* Docker &#x2215; OpenSearch 2.1.0, RabbitMQ Management 3.8.18, S3 compatible
ObjectStorage and Cassandra 4.0
* Maven 3

=== Building the artifacts

An usual compilation using maven will produce two artifacts into
server/apps/distributed-app/target directory:

* james-server-distributed-app.jar
* james-server-distributed-app.lib

You can for example run in the base of
https://github.com/apache/james-project[this git repository]:

....
mvn clean install
....

== Running

=== Requirements

* Cassandra 4.0
* OpenSearch 2.1.0
* RabbitMQ-Management 3.8.17
* Swift ObjectStorage 2.15.1 or Zenko Cloudserver or AWS S3

=== James Launch

To run james, you have to create a directory containing required
configuration files.

James requires the configuration to be in a subfolder of working
directory that is called *conf*. You can get a sample directory for
configuration from
https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/[server/apps/distributed-app/sample-configuration/].
You might need to adapt it to your needs.

You need to have a Cassandra, OpenSearch, S3 and RabbitMQ instance
running. You can either install the servers or launch them via docker:


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-checklist.adoc
=====================================================
= Checklist

There is some things that you must have before being able to run James on your Kubernetes Cluster.

== MUST have

Those are absolutely necessary if you want at least James to start without crashing.

- [ ] Setup RabbitMQ and create James user in it.
- [ ] Create a Kubernetes namespace for James deployment.
- [ ] A `distributed` version of James image.
- [ ] An ObjectStorage compatible with S3 APIs.
- [ ] Configure JWT keys, keystores.
- [ ] Adding the proper `mailetcontainer.xml` file with other conf files in James Helm package

With those you should be able to startup James for first tests without having it crashing. However it's still not enough to have it fully functional.

== Should have

- [ ] Cassandra nodes deployed.
- [ ] Put valid Cassandra keyspaces in the configuration.
- [ ] Have an appropriate email domain (Contact your Domain Service Provider)
- [ ] Create your Domain SPF and DKIM Record. See document [here](https://james.apache.org/howTo/)
- [ ] OpenSearch nodes deployed.
- [ ] DNS registered entries for JMAP, IMAP, SMTP, Webadmin.
- [ ] Enable Ingress and create the secret for TLS certificate used by Ingress.
 * Preproduction: Usually, we use link:https://github.com/jetstack/cert-manager[cert-manager] to request a Let's Encrypt Certificate. Remember to use the full chain certificate. You can verify that your certificate works well with `openssl` before adding 
    the name of that secret to your James values.
 * Production: Some certificates belonging to the client should exist already. See that with the team.
- [ ] Change IMAP ports to NodePort if your Cloud Provider Load Balancer has short idle timeout and we need longer connections for performance reasons (and the RFC for IMAP states also we need 30 minutes for the timeout).
  - [ ] Use an external LB (ie. HA Proxy) to redirect traffic towards James IMAP service NodePort IPs and ports.

== After setup operations

When all of this is working, normally your chain mail should be able to work. To check it you can:

* Use a mail client (ThunderBird, Outlook, ...) to test James IMAP.
* Send a mail internally from one test account to an other.
* Send a mail from James to an external mail provider (your Gmail, Yahoo account for example).
* Send a mail from an external provider to James.
* Use services like link:https://www.mail-tester.com/[mail-tester] to check your score.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/collecting-events.adoc
=====================================================
= Event collection

== Motivation

Many calendar application do add events invitation received by email directly in ones calendar.

Such behaviours requires the calendar application to be aware of the ICalendar related emails a user received.

== Design

The idea is to write a portion of mailet pipeline extracting Icalendar attachments and to hold them as attachments that
can later be sent to other applications over AMQP to be treated in an asynchronous, decoupled fashion.

== Configuration

We can achieve this goal by combining simple mailets building blocks.

Here is a sample pipeline achieving aforementioned objectives :

....
&lt;!-- ICAL pipeline --&gt;
&lt;mailet match=&quot;All&quot; class=&quot;StripAttachment&quot;&gt;
    &lt;mimeType&gt;text/calendar&lt;/mimeType&gt;
    &lt;attribute&gt;rawIcalendar&lt;/attribute&gt;
&lt;/mailet&gt;
&lt;mailet match=&quot;All&quot; class=&quot;MimeDecodingMailet&quot;&gt;
    &lt;attribute&gt;rawIcalendar&lt;/attribute&gt;
&lt;/mailet&gt;
&lt;mailet match=&quot;All&quot; class=&quot;ICalendarParser&quot;&gt;
    &lt;sourceAttribute&gt;rawIcalendar&lt;/sourceAttribute&gt;
    &lt;destinationAttribute&gt;icalendar&lt;/destinationAttribute&gt;
&lt;/mailet&gt;
&lt;mailet match=&quot;All&quot; class=&quot;ICALToHeader&quot;&gt;
    &lt;attribute&gt;icalendar&lt;/attribute&gt;
&lt;/mailet&gt;
&lt;mailet match=&quot;All&quot; class=&quot;ICALToJsonAttribute&quot;&gt;
    &lt;source&gt;icalendar&lt;/source&gt;
    &lt;destination&gt;icalendarAsJson&lt;/destination&gt;
    &lt;rawSource&gt;rawIcalendar&lt;/rawSource&gt;
&lt;/mailet&gt;
&lt;mailet match=&quot;All&quot; class=&quot;AmqpForwardAttribute&quot;&gt;
    &lt;uri&gt;amqp://${env:JAMES_AMQP_USERNAME}:${env:JAMES_AMQP_PASSWORD}@${env:JAMES_AMQP_HOST}:${env:JAMES_AMQP_PORT}&lt;/uri&gt;
    &lt;exchange&gt;james:events&lt;/exchange&gt;
    &lt;attribute&gt;icalendarAsJson&lt;/attribute&gt;
&lt;/mailet&gt;
&lt;!-- End of ICAL pipeline --&gt;
....

A sample message looks like:


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/matchers.adoc
=====================================================
= Distributed James Server &amp;mdash; Matchers
:navtitle: Matchers

This documentation page lists and documents Matchers that can be used within the
Distributed Server MailetContainer in order to write your own mail processing logic with out-of-the-box components.

== Supported matchers

include::partial$All.adoc[]

include::partial$AtLeastPriority.adoc[]

include::partial$AtMost.adoc[]

include::partial$AtMostPriority.adoc[]

include::partial$DLP.adoc[]

include::partial$FetchedFrom.adoc[]

include::partial$HasAttachment.adoc[]

include::partial$HasException.adoc[]

include::partial$HasHeader.adoc[]

include::partial$HasHeaderWithPrefix.adoc[]

include::partial$HasMailAttribute.adoc[]

include::partial$HasMailAttributeWithValue.adoc[]

include::partial$HasMailAttributeWithValueRegex.adoc[]

include::partial$HasMimeType.adoc[]

include::partial$HasMimeTypeParameter.adoc[]

include::partial$HasPriority.adoc[]

include::partial$HostIs.adoc[]

include::partial$HostIsLocal.adoc[]

include::partial$IsMarkedAsSpam.adoc[]

include::partial$IsOverQuota.adoc[]

include::partial$IsRemoteDeliveryPermanentError.adoc[]


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/mailets.adoc
=====================================================
= Distributed James Server &amp;mdash; Mailets
:navtitle: Mailets

This documentation page lists and documents Mailet that can be used within the
Distributed Server MailetContainer in order to write your own mail processing logic with out-of-the-box components.

== Supported mailets

include::partial$AddDeliveredToHeader.adoc[]

include::partial$AddFooter.adoc[]

include::partial$AddSubjectPrefix.adoc[]

include::partial$AmqpForwardAttribute.adoc[]

include::partial$Bounce.adoc[]

include::partial$ContactExtractor.adoc[]

include::partial$ConvertTo7Bit.adoc[]

include::partial$DKIMSign.adoc[]

include::partial$DKIMVerify.adoc[]

include::partial$DSNBounce.adoc[]

include::partial$Expires.adoc[]

include::partial$ExtractMDNOriginalJMAPMessageId.adoc[]

include::partial$Forward.adoc[]

include::partial$ICalendarParser.adoc[]

include::partial$ICALToHeader.adoc[]

include::partial$ICALToJsonAttribute.adoc[]

include::partial$ICSSanitizer.adoc[]

include::partial$LocalDelivery.adoc[]

include::partial$LogMessage.adoc[]

include::partial$MailAttributesListToMimeHeaders.adoc[]

include::partial$MailAttributesToMimeHeaders.adoc[]


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/batchsizes.adoc
=====================================================
= Distributed James Server &amp;mdash; batchsizes.properties
:navtitle: batchsizes.properties

This files allow to define the amount of data that should be fetched 'at once' when interacting with the mailbox. This is
needed as IMAP can generate some potentially large requests.

Increasing these values tend to fasten individual requests, at the cost of enabling potential higher load.

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/batchsizes.properties[example]
to get some examples and hints.

.batchsizes.properties content
|===
| Property name | explanation

| fetch.metadata
| Optional, defaults to 200. How many messages should be read in a batch when using FetchType.MetaData

| fetch.headers
| Optional, defaults to 200. How many messages should be read in a batch when using FetchType.Header

| fetch.body
| Optional, defaults to 100. How many messages should be read in a batch when using FetchType.Body

| fetch.full
| Optional, defaults to 50. How many messages should be read in a batch when using FetchType.Full

| copy
| Optional, defaults to 200. How many messages should be copied in a batch.

| move
| Optional, defaults to 200. How many messages should be moved in a batch.

|===

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/smtp-hooks.adoc
=====================================================
= Distributed James Server &amp;mdash; SMTP Hooks
:navtitle: SMTP Hooks

This documentation page lists and documents SMTP hooks that can be used within the
Distributed Server SMTP protocol stack in order to customize the way your SMTP server
behaves without of the box components.

== DNSRBLHandler

This command handler check against https://www.wikiwand.com/en/Domain_Name_System-based_Blackhole_List[RBL-Lists]
(Real-time Blackhole List).

If getDetail is set to true it try to retrieve information from TXT Record
why the ip was blocked. Default to false.

before you enable out the DNS RBL handler documented as an example below,
please take a moment to review each block in the list.
We have included some that various JAMES committers use,
but you must decide which, if any, are appropriate
for your environment.

The mail servers hosting
@apache.org mailing lists, for example, use a
slightly different list than we have included below.
And it is likely that most JAMES committers also have
slightly different sets of lists.

The SpamAssassin user's list would be one good place to discuss the
measured quality of various block lists.

NOTA BENE: the domain names, below, are terminated
with '.' to ensure that they are absolute names in
DNS lookups.  Under some circumstances, names that
are not explicitly absolute could be treated as
relative names, leading to incorrect results.  This
has been observed on *nix and MS-Windows platforms
by users of multiple mail servers, and is not JAMES
specific.  If you are unsure what this means for you,
please speak with your local system/network admins.

This handler should be considered experimental.

Example configuration:

....
&lt;handlerchain&gt;
    &lt;!-- ... --&gt;
    &lt;handler class=&quot;org.apache.james.smtpserver.fastfail.DNSRBLHandler&quot;&gt;
        &lt;getDetail&gt;false&lt;/getDetail&gt;
        &lt;rblservers&gt;

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/domainlist.adoc
=====================================================
= Distributed James Server &amp;mdash; domainlist.xml
:navtitle: domainlist.xml

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/domainlist.xml[example]
to get some examples and hints.

This configuration block is defined by the *domainlist* tag.

.domainlist.xml content
|===
| Property name | explanation

| domainnames
| Domainnames identifies the DNS namespace served by this instance of James.
These domainnames are used for both matcher/mailet processing and SMTP auth
to determine when a mail is intended for local delivery - Only applicable for XMLDomainList. The entries mentionned here will be created upon start.

|autodetect
|true or false - If autodetect is true, James wil attempt to discover its own host name AND
use any explicitly specified servernames.
If autodetect is false, James will use only the specified domainnames. Defaults to false.

|autodetectIP
|true or false - If autodetectIP is not false, James will also allow add the IP address for each servername.
The automatic IP detection is to support RFC 2821, Sec 4.1.3, address literals. Defaults to false.

|defaultDomain
|Set the default domain which will be used if an email is send to a recipient without a domain part.
If no defaultdomain is set the first domain of the DomainList gets used. If the default is not yet contained by the Domain List, the domain will be created upon start.

|read.cache.enable
|Experimental. Boolean, defaults to false.
Whether or not to cache domainlist.contains calls. Enable a faster execution however writes will take time
to propagate.

|read.cache.expiracy
|Experimental. String (duration), defaults to 10 seconds (10s). Supported units are ms, s, m, h, d, w, month, y.
Expiracy of the cache. Longer means less reads are performed to the backend but writes will take longer to propagate.
Low values (a few seconds) are advised.


|===

To override autodetected domainnames simply add explicit domainname elements.
In most cases this will be necessary. By default, the domainname 'localhost' is specified. This can be removed, if required.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/queue.adoc
=====================================================
= Distributed James Server &amp;mdash; queue.properties
:navtitle: queue.properties

This configuration helps you configure mail queue you want to select.

== Queue Configuration

.queue.properties content
|===
| Property name | explanation

| mail.queue.choice
| Mail queue can be implemented by many type of message brokers: Pulsar, RabbitMQ,... This property will choose which mail queue you want, defaulting to RABBITMQ
|===

`mail.queue.choice` supports the following options:

* You can specify the `RABBITMQ` if you want to choose RabbitMQ mail queue
* You can specify the `PULSAR` if you want to choose Pulsar mail queue

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/dsn.adoc
=====================================================
= Distributed James Server &amp;mdash; Delivery Submission Notifications
:navtitle: ESMTP DSN setup

DSN introduced in link:https://tools.ietf.org/html/rfc3461[RFC-3461] allows a SMTP sender to demand status messages,
defined in link:https://tools.ietf.org/html/rfc3464[RFC-3464] to be sent back to the `Return-Path` upon delivery
progress.

DSN support is not enabled by default, as it needs specific configuration of the
xref:configure/mailetcontainer.adoc[mailetcontainer.xml] to be specification compliant.

To enable it you need to:

- Add DSN SMTP hooks as part of the SMTP server stack
- Configure xref:configure/mailetcontainer.adoc[mailetcontainer.xml] to generate DSN bounces when needed

== Enabling DSN in SMTP server stack

For this simply add the `DSN hooks` in the handler chain in `smtpserver.xml` :

....
&lt;smtpserver enabled=&quot;true&quot;&gt;
    &lt;...&gt; &lt;!-- The rest of your SMTP configuration, unchanged --&gt;
    &lt;handlerchain&gt;
        &lt;handler class=&quot;org.apache.james.smtpserver.dsn.DSNEhloHook&quot;/&gt;
        &lt;handler class=&quot;org.apache.james.smtpserver.dsn.DSNMailParameterHook&quot;/&gt;
        &lt;handler class=&quot;org.apache.james.smtpserver.dsn.DSNRcptParameterHook&quot;/&gt;
        &lt;handler class=&quot;org.apache.james.smtpserver.dsn.DSNMessageHook&quot;/&gt;
        &lt;...&gt; &lt;!-- other handlers, like: --&gt;
        &lt;handler class=&quot;org.apache.james.smtpserver.CoreCmdHandlerLoader&quot;/&gt; &lt;!-- for instance --&gt;
    &lt;/handlerchain&gt;
&lt;/smtpserver&gt;
....

== Enabling DSN generation as part of mail processing

For the below conditions to be matched we assume you follow
xref:configure/remote-delivery-error-handling.adoc[RemoteDelivery error handling for MXs], which is a
requirement for detailed RemoteDelivery error and delay handling on top of the Distributed server.

Here is a sample xref:configure/mailetcontainer.adoc[mailetcontainer.xml] achieving the following DSN generation:

- Generate a generic `delivered` notification if LocalDelivery succeeded, if requested
- Generate a generic `failed` notification in case of local errors, if requested
- Generate a specific `failed` notification in case of a non existing local user, if requested
- Generate a specific `failed` notification in case of an address rewriting loop, if requested
- Generate a `failed` notification in case of remote permanent errors, if requested. We blame the remote server...
- Generate a `delayed` notification in case of temporary remote errors we are about to retry, if requested. We blame the remote server...
- Generate a `failed` notification in case of temporary remote errors we are not going to retry (failed too many time), if requested. We blame the remote server...

....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/jmx.adoc
=====================================================
= Distributed James Server &amp;mdash; jmx.properties
:navtitle: jmx.properties

== Disclaimer

JMX poses several security concerns and had been leveraged to conduct arbitrary code execution.
This threat is mitigated by not allowing remote connections to JMX, setting up authentication and pre-authentication filters.
However, we recommend to either run James in isolation (docker / own virtual machine) or disable JMX altogether.&lt;br/&gt;

James JMX endpoint provides command line utilities and exposes a few metrics, also available on the metric endpoint.&lt;/p&gt;

== Configuration

This is used to configure the JMX MBean server via which all management is achieved.

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/jmx.properties[example]
in GIT to get some examples and hints.

.jmx.properties content
|===
| Property name | explanation

| jmx.enabled
| Boolean. Should the JMX server be enabled? Defaults to `true`.

| jmx.address
|The IP address (host name) the MBean Server will bind/listen to.

| jmx.port
| The port number the MBean Server will bind/listen to.
|===

To access from a remote location, it has been reported that `-Dcom.sun.management.jmxremote.ssl=false` is needed as
a JVM argument.

== JMX Security

In order to set up JMX authentication, we need to put `jmxremote.password` and `jmxremote.access` file
to `/conf` directory.

- `jmxremote.password`: define the username and password, that will be used by the client (here is james-cli)

File's content example:
```
james-admin pass1
```

- `jmxremote.access`: define the pair of username and access permission

File's content example:

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/cassandra.adoc
=====================================================
= Distributed James Server &amp;mdash; cassandra.properties
:navtitle: cassandra.properties

This configuration file allow setting some configuration properties in conjunction to
Cassandra driver native configuration.

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/cassandra.properties[example]
to get some examples and hints.

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/cassandra-driver.conf[example]
to get some examples and hints for Cassandra driver native configuration.

Cassandra native configuration allows configuring SSL, timeouts, logs and metrics as well as execution profiles.

== Configuration

Here are generic properties:

.cassandra.properties content
|===
| Property name | explanation

| cassandra.nodes
| List of some nodes of the cassandra's cluster in following format host:port or host, if the port is not specified we use 9042

|cassandra.keyspace.create
|Indicate if the keyspace should be created by James. Optional, default value: *false*
If set to true James will attempt to create the keyspace when starting up.

|cassandra.keyspace
|Is the name of the keyspace used by James. Optional, default value: *apache_james*

|cassandra.user
|Username used as a credential for contacting Cassandra cluster. Optional, default is absent,
required if *cassandra.password* is supplied

|cassandra.password
|Password used as a credential for contacting Cassandra cluster. Optional, default is absent,
required if &lt;strong&gt;cassandra.user&lt;/strong&gt; is supplied

|cassandra.replication.factor
|Is the replication factor used upon keyspace creation. Modifying this property while the keyspace already exists
will have no effect. Optional. Default value 1.

|cassandra.local.dc
|Optional. Allows specifying the local DC as part of the load balancing policy. Specifying it
would result in the use of `new TokenAwarePolicy(DCAwareRoundRobinPolicy.builder().withLocalDc(value).build())` as a LoadBalancingPolicy.
This value is useful in a multi-DC Cassandra setup. Be aware of xref:../architecture/consistency-model.adoc#_about_multi_data_center_setups[limitation of multi-DC setups for James]
Not specifying this value results in the driver's default load balancing policy to be used.


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/tika.adoc
=====================================================
= Distributed James Server &amp;mdash; tika.properties
:navtitle: tika.properties

When using OpenSearch, you can configure an external Tika server for extracting and indexing text from attachments.
Thus you can significantly improve user experience upon text searches.

Note: You can launch a tika server using this command line:

....
docker run --name tika linagora/docker-tikaserver:1.24
....

Here are the different properties:

.tika.properties content
|===
| Property name | explanation

| tika.enabled
| Should Tika text extractor be used?
If true, the TikaTextExtractor will be used behind a cache.
If false, the DefaultTextExtractor will be used (naive implementation only supporting text).
Defaults to false.

| tika.host
| IP or domain name of your Tika server. The default value is 127.0.0.1

| tika.port
| Port of your tika server. The default value is 9998

| tika.timeoutInMillis
| Timeout when issuing request to the tika server. The default value is 3 seconds.

| tika.cache.eviction.period
| A cache is used to avoid, when possible, query Tika multiple time for the same attachments.
This entry determines how long after the last read an entry vanishes.
Please note that units are supported (ms - millisecond, s - second, m - minute, h - hour, d - day). Default unit is seconds.
Default value is *1 day*

| tika.cache.enabled
| Should the cache be used? False by default

| tika.cache.weight.max
| Maximum weight of the cache.
A value of *0* disables the cache
Please note that units are supported (K for KB, M for MB, G for GB). Defaults is no units, so in bytes.
Default value is *100 MB*.

| tika.contentType.blacklist
| Blacklist of content type is known-to-be-failing with Tika. Specify the list with comma separator.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/jvm.adoc
=====================================================
= Distributed James Server &amp;mdash; jvm.properties
:navtitle: jvm.properties

This file may contain any additional system properties for tweaking JVM execution. When you normally would add a command line option `-Dmy.property=whatever`, you can put it in this file as `my.property=whatever` instead. These properties will be added as system properties on server start.

Note that in some rare cases this might not work,
when a property affects very early JVM start behaviour.

For testing purposes, you may specify a different file path via the command line option `-Dextra.props=/some/other/jvm.properties`.

== Control the threshold memory
This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.

In `jvm.properties`
----
james.message.memory.threshold=12K
----

(Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.

== Enable the copy of message in memory
Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
be copied to temporary files?

----
james.message.usememorycopy=true
----

Optional. Boolean. Defaults to false. Recommended value is false.

== Running resource leak detection
It is used to detect a resource not be disposed of before it's garbage-collected.

In `jvm.properties`
----
james.lifecycle.leak.detection.mode=advanced
----

Allowed mode values are: none, simple, advanced, testing

The purpose of each mode is introduced in `config-system.xml`

== Disabling host information in protocol MDC logging context

Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.


In `jvm.properties`
----

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/jmap.adoc
=====================================================
= Distributed James Server &amp;mdash; jmap.properties
:navtitle: jmap.properties

https://jmap.io/[JMAP]  is intended to be a new standard for email clients to connect to mail
stores. It therefore intends to primarily replace IMAP + SMTP submission. It is also designed to be more
generic. It does not replace MTA-to-MTA SMTP transmission.

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/jmap.properties[example]
to get some examples and hints.

.jmap.properties content
|===
| Property name | explanation

| enabled
| true/false. Governs whether JMAP should be enabled

| jmap.port
| Optional. Defaults to 80. The port this server will be listening on. This value must be a valid
port, ranging between 1 and 65535 (inclusive)

| tls.keystoreURL
| Keystore to be used for generating authentication tokens for password authentication mechanism.
This should not be the same keystore than the ones used by TLS based protocols.

| tls.secret
| Password used to read the keystore

| jwt.publickeypem.url
| Optional. Coma separated list of RSA public keys URLs to validate JWT tokens allowing requests to bypass authentication.
Defaults to an empty list.

| url.prefix
| Optional. Configuration urlPrefix for JMAP routes. Default value: http://localhost.

| websocket.url.prefix
| Optional. URL for JMAP WebSocket route. Default value: ws://localhost

| email.send.max.size
| Optional. Configuration max size for message created in both JMAP Draft amd RFC-8621.
Default value: None. Supported units are B (bytes) K (KB) M (MB) G (GB).

| max.size.attachments.per.mail
| Optional. Defaults to 20MB. RFC-8621 `maxSizeAttachmentsPerEmail` advertised to JMAP client as part of the
`urn:ietf:params:jmap:mail` capability. This needs to be at least 33% lower than `email.send.max.size` property
(in order to account for text body, headers, base64 encoding and MIME structures).
JMAP clients would use this property in order not to create too big emails.
Default value: None. Supported units are B (bytes) K (KB) M (MB) G (GB).

| upload.max.size

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/mailrepositorystore.adoc
=====================================================
= Distributed James Server &amp;mdash; mailrepositorystore.xml

A `mail repository` allows storage of a mail as part of its
processing. Standard configuration relies on the following mail
repository.

A mail repository is identified by its *url*, constituted of a *protocol* and a *path*.

For instance in the url `cassandra://var/mail/error/` `cassandra` is the protocol and `var/mail/error` the path.

The *mailrepositorystore.xml* file allows registration of available protocols, and their binding to actual MailRepository
implementation. Note that extension developers can write their own MailRepository implementations, load them via the
`extensions-jars` mechanism as documented in xref:extending/index.adoc['writing your own extensions'], and finally
associated to a protocol in *mailrepositorystore.xml* for a usage in *mailetcontainer.xml*.

== Configuration

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/mailrepositorystore.xml[example]
to get some examples and hints.

....
&lt;mailrepositorystore&gt;
    &lt;defaultProtocol&gt;cassandra&lt;/defaultProtocol&gt;
    &lt;mailrepositories&gt;
        &lt;mailrepository class=&quot;org.apache.james.mailrepository.cassandra.CassandraMailRepository&quot;&gt;
            &lt;protocols&gt;
                &lt;protocol&gt;cassandra&lt;/protocol&gt;
            &lt;/protocols&gt;
        &lt;/mailrepository&gt;
    &lt;/mailrepositories&gt;
&lt;/mailrepositorystore&gt;
....

Only the *CassandraMailRepository* is available by default for the Distributed Server. Mails metadata are stored in
Cassandra while the headers and bodies are stored within the xref:architecture/index.adoc#_blobstore[BlobStore].

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/collecting-contacts.adoc
=====================================================
= Contact collection

== Motivation

Many modern applications combines email and contacts.

We want recipients of emails sent by a user to automatically be added to this user contacts, for convenience. This
should even be performed when a user sends emails via SMTP for example using thunderbird.

== Design

The idea is to send AMQP messages holding information about mail envelope for a traitment via a tierce application.

== Configuration

We can achieve this goal by combining simple mailets building blocks.

Here is a sample pipeline achieving aforementioned objectives :

....
&lt;mailet match=&quot;SenderIsLocal&quot; class=&quot;ContactExtractor&quot;&gt;
    &lt;attribute&gt;extractedContacts&lt;/attribute&gt;
&lt;/mailet&gt;
&lt;mailet match=&quot;All&quot; class=&quot;AmqpForwardAttribute&quot;&gt;
    &lt;uri&gt;amqp://${env:JAMES_AMQP_USERNAME}:${env:JAMES_AMQP_PASSWORD}@${env:JAMES_AMQP_HOST}:${env:JAMES_AMQP_PORT}&lt;/uri&gt;
    &lt;exchange&gt;collector:email&lt;/exchange&gt;
    &lt;attribute&gt;extractedContacts&lt;/attribute&gt;
&lt;/mailet&gt;

....

A sample message looks like:

....
{
	&quot;userEmail&quot;: &quot;sender@james.org&quot;,
	&quot;emails&quot;: [&quot;to@james.org&quot;]
}
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/search.adoc
=====================================================
= Distributed James Server &amp;mdash; Search configuration
:navtitle: Search configuration

This configuration helps you configure the components used to back search.

.search.properties content
|===
| Property name | explanation

| implementation
| The implementation to be used for search. Should be one of:
 - *opensearch* : Index and search mails into OpenSearch.
 - *scanning* : Do not index documents and perform scanning search, scrolling mailbox for matching contents.
 This implementation can have a prohibitive cost.
 - *opensearch-disabled* : Saves events to index into event dead letter. Make searches fails.
 This is useful to start James without OpenSearch while still tracking messages to index for later recovery. This
 can be used in order to ease delays for disaster recovery action plans.
|===

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/blobstore.adoc
=====================================================
= Distributed James Server &amp;mdash; blobstore.properties
:navtitle: blobstore.properties

== BlobStore

This file is optional. If omitted, the *cassandra* blob store will be used.

BlobStore is the dedicated component to store blobs, non-indexable content.
James uses the BlobStore for storing blobs which are usually mail contents, attachments, deleted mails...

You can choose the underlying implementation of BlobStore to fit with your James setup.

It could be the implementation on top of Cassandra or file storage service S3 compatible like Openstack Swift and AWS S3.

Consult link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/blob.properties[blob.properties]
in GIT to get some examples and hints.

=== Implementation choice

*implementation* :

* cassandra: use cassandra based BlobStore
* objectstorage: use Swift/AWS S3 based BlobStore
* file: (experimental) use directly the file system. Useful for legacy architecture based on shared ISCI SANs and/or
 distributed file system with no object store available.

WARNING: JAMES-3591 Cassandra is not made to store large binary content, its use will be suboptimal compared to
Alternatives (namely S3 compatible BlobStores backed by for instance S3, MinIO or Ozone)

The generated startup warning log can be deactivated via the `cassandra.blob.store.disable.startup.warning` environment
variable being positioned to `false`.

*deduplication.enable*: Mandatory. Supported value: true and false.

If you choose to enable deduplication, the mails with the same content will be stored only once.

WARNING: Once this feature is enabled, there is no turning back as turning it off will lead to the deletion of all
the mails sharing the same content once one is deleted.

NOTE: If you are upgrading from James 3.5 or older, the deduplication was enabled.

Deduplication requires a garbage collector mechanism to effectively drop blobs. A first implementation
based on bloom filters can be used and triggered using the WebAdmin REST API. See
xref:operate/webadmin.adoc#_running_blob_garbage_collection[Running blob garbage collection].

In order to avoid concurrency issues upon garbage collection, we slice the blobs in generation, the two more recent
generations are not garbage collected.

*deduplication.gc.generation.duration*: Allow controlling the duration of one generation. Longer implies better deduplication
but deleted blobs will live longer. Duration, defaults on 30 days, the default unit is in days.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/extensions.adoc
=====================================================
= Distributed James Server &amp;mdash; extensions.properties
:navtitle: extensions.properties

This files enables an operator to define additional bindings used to instantiate others extensions

*guice.extension.module*:  come separated list of fully qualified class name. These classes need to implement Guice modules.

Here is an example of such a class :

....
public class MyServiceModule extends AbstractModule {
    @Override
    protected void configure() {
        bind(MyServiceImpl.class).in(Scopes.SINGLETON);
        bind(MyService.class).to(MyServiceImpl.class);
    }
}
....

Recording it in extensions.properties :

....
guice.extension.module=com.project.MyServiceModule
....

Enables to inject MyService into your extensions.


*guice.extension.tasks*: come separated list of fully qualified class name.

The extension can rely on the Task manager to supervise long-running task execution (progress, await, cancellation, scheduling...).
These extensions need to implement Task extension modules.

Here is an example of such a class :

....
public class RspamdTaskExtensionModule implements TaskExtensionModule {

    @Inject
    public RspamdTaskExtensionModule() {
    }

    @Override
    public Set&lt;TaskDTOModule&lt;? extends Task, ? extends TaskDTO&gt;&gt; taskDTOModules() {
        return Set.of(...);
    }

    @Override
    public Set&lt;AdditionalInformationDTOModule&lt;? extends TaskExecutionDetails.AdditionalInformation, ? extends AdditionalInformationDTO&gt;&gt; taskAdditionalInformationDTOModules() {
        return Set.of(...);

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/sieve.adoc
=====================================================
= Sieve
:navtitle: Sieve

James servers are able to evaluate and execute Sieve scripts.

Sieve is an extensible mail filtering language. It's limited
expressiveness (no loops or variables, no tests with side
effects) allows user created scripts to be run safely on email
servers. Sieve is targeted at the final delivery phase (where
an incoming email is transferred to a user's mailbox).

The following Sieve capabilities are supported by Apache James:

  - link:https://www.ietf.org/rfc/rfc2234.txt[RFC 2234 ABNF]
  - link:https://www.ietf.org/rfc/rfc2244.txt[RFC 2244 ACAP]
  - link:https://www.ietf.org/rfc/rfc2298.txt[RFC 2298 MDN]
  - link:https://tools.ietf.org/html/rfc5228[RFC 5228 Sieve]
  - link:https://tools.ietf.org/html/rfc4790[RFC 4790 IAPCR]
  - link:https://tools.ietf.org/html/rfc5173[RFC 5173 Body Extension]
  - link:https://datatracker.ietf.org/doc/html/rfc5230[RFC 5230 Vacations]

To be correctly executed, please note that the *Sieve* mailet is required to be positioned prior the
*LocalDelivery* mailet.

== Managing Sieve scripts

A user willing to manage his Sieve scripts on the server can do so via several means:

He can ask an admin to upload his script via the xref:operate/cli.adoc[CLI]

As James supports ManageSieve (link:https://datatracker.ietf.org/doc/html/rfc5804[RFC-5804]) a user
can thus use compatible software to manage his Sieve scripts.&lt;/p&gt;

== ManageSieve protocol

*WARNING*: ManageSieve protocol should be considered experimental.

Consult link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/managesieveserver.xml[managesieveserver.xml]
in GIT to get some examples and hints.

The  service is controlled by a configuration block in the managesieveserver.xml.
The managesieveserver tag defines the boundaries of the configuration block.  It encloses
all the relevant configuration for the ManageSieve server.  The behavior of the ManageSieve service is
controlled by the attributes and children of this tag.

This tag has an optional boolean attribute - *enabled* - that defines whether the service is active or not.
The value defaults to &quot;false&quot; if
not present.

The standard children of the managesieveserver tag are:

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/listeners.adoc
=====================================================
= Distributed James Server &amp;mdash; listeners.xml
:navtitle: listeners.xml

Distributed James relies on an event bus system to enrich mailbox capabilities. Each
operation performed on the mailbox will trigger related events, that can
be processed asynchronously by potentially any James node on a
distributed system.

Mailbox listeners can register themselves on this event bus system to be
called when an event is fired, allowing to do different kind of extra
operations on the system.

Distributed James allows the user to register potentially user defined additional mailbox listeners.

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/listener.xml[example]
to get some examples and hints.

== Configuration

The &lt;executeGroupListeners&gt; controls whether to launch group mailbox listener consumption. Defaults to true. Use with caution:
never disable on standalone james servers, and ensure at least some instances do consume group mailbox listeners within a
clustered topology.

Mailbox listener configuration is under the XML element &lt;listener&gt;.

Some MailboxListener allows you to specify if you want to run them synchronously or asynchronously. To do so,
for MailboxListener that supports this, you can use the *async* attribute (optional, per mailet default) to govern the execution mode.
If *true* the execution will be scheduled in a reactor elastic scheduler. If *false*, the execution is synchronous.

Already provided additional listeners are documented below.

=== SpamAssassinListener

Provides per user real-time HAM/SPAM feedback to a SpamAssassin server depending on user actions.

This mailet is asynchronous by default, but this behaviour can be overridden by the *async*
configuration property.

This MailboxListener is supported.

Example:

....
&lt;listeners&gt;
  &lt;!-- ... --&gt;
  &lt;listener&gt;
    &lt;class&gt;org.apache.james.mailbox.spamassassin.SpamAssassinListener&lt;/class&gt;
  &lt;/listener&gt;
&lt;/listeners&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/vault.adoc
=====================================================
= Distributed James Server &amp;mdash; deletedMessageVault.properties
:navtitle: deletedMessageVault.properties

Deleted Messages Vault is the component in charge of retaining messages before they are going to be deleted.
Messages stored in the Deleted Messages Vault could be deleted after exceeding their retentionPeriod (explained below).
It also supports to restore or export messages matching with defined criteria in
xref:operate/webadmin.adoc#_deleted_messages_vault[WebAdmin deleted messages vault document] by using
xref:operate/webadmin.adoc#_deleted_messages_vault[WebAdmin endpoints].

== Deleted Messages Vault Configuration

Once the vault is active, James will start moving deleted messages to it asynchronously.

The Deleted Messages Vault also stores and manages deleted messages into a BlobStore. The BlobStore can be either
based on an object storage or on Cassandra. For configuring the BlobStore the vault will use, you can look at
xref:configure/blobstore.adoc[*blobstore.properties*] BlobStore Configuration section.

== deletedMessageVault.properties

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/deletedMessageVault.properties[example]
to get some examples and hints.

.deletedMessageVault.properties content
|===
| Property name | explanation

| retentionPeriod
| Deleted messages stored in the Deleted Messages Vault are expired after this period (default: 1 year). It can be expressed in *y* years, *d* days, *h* hours, ...

| restoreLocation
| Messages restored from the Deleted Messages Vault are placed in a mailbox with this name (default: ``Restored-Messages``). The mailbox will be created if it does not exist yet.
|===

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/imap.adoc
=====================================================
= Distributed James Server &amp;mdash; imapserver.xml
:navtitle: imapserver.xml

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/imapserver.xml[example]
to get some examples and hints.

The IMAP4 service is controlled by a configuration block in the imap4server.xml.
The imap4server tag defines the boundaries of the configuration block.  It encloses
all the relevant configuration for the IMAP4 server.  The behavior of the IMAP4 service is
controlled by the attributes and children of this tag.

This tag has an optional boolean attribute - *enabled* - that defines whether the service is active or not.
The value defaults to &quot;true&quot; if not present.

The standard children of the imapserver tag are:

.imapserver.xml content
|===
| Property name | explanation

| bind
| Configure this to bind to a specific inetaddress. This is an optional integer value.  This value is the port on which this IMAP4 server is configured
to listen. If the tag or value is absent then the service
will bind to all network interfaces for the machine If the tag or value is omitted, the value will default to the standard IMAP4 port
port 143 is the well-known/IANA registered port for IMAP
port 993 is the well-known/IANA registered port for IMAPS  ie over SSL/TLS

| connectionBacklog
| Number of connection backlog of the server (maximum number of queued connection requests)

| compress
| true or false - Use or don't use COMPRESS extension. Defaults to false.

| maxLineLength
| Maximal allowed line-length before a BAD response will get returned to the client
This should be set with caution as a to high value can make the server a target for DOS (Denial of Service)!

| inMemorySizeLimit
| Optional. Size limit before we will start to stream to a temporary file.
Defaults to 10MB. Must be a positive integer, optionally with a unit: B, K, M, G.

| literalSizeLimit
| Optional. Maximum size of a literal (IMAP APPEND).
Defaults to 0 (unlimited). Must be a positive integer, optionally with a unit: B, K, M, G.

| plainAuthDisallowed
|  Deprecated. Should use `auth.plainAuthEnabled`, `auth.requireSSL` instead.
Whether to enable Authentication PLAIN if the connection is not encrypted via SSL or STARTTLS. Defaults to `true`.

| auth.plainAuthEnabled

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/ssl.adoc
=====================================================
= Distributed James Server &amp;mdash; SSL &amp; TLS configuration
:navtitle: SSL &amp; TLS configuration

This document explains how to enable James 3.0 servers to use Transport Layer Security (TLS)
for encrypted client-server communication.

== Configure a Server to Use SSL/TLS

Each of the servers xref:configure/smtp.adoc[SMTP - LMTP],
xref:configure/pop3.adoc[POP3] and xref:configure/imap.adoc[IMAP]
supports use of SSL/TLS.

TLS (Transport Layer Security) and SSL (Secure Sockets Layer) are protocols that provide
data encryption and authentication between applications in scenarios where that data is
being sent across an insecure network, such as checking your email
(How does the Secure Socket Layer work?). The terms SSL and TLS are often used
interchangeably or in conjunction with each other (TLS/SSL),
but one is in fact the predecessor of the other &#x2014; SSL 3.0 served as the basis
for TLS 1.0 which, as a result, is sometimes referred to as SSL 3.1.

You need to add a block in the corresponding configuration file (smtpserver.xml, pop3server.xml, imapserver.xml,..)

....
&lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
  &lt;keystore&gt;file://conf/keystore&lt;/keystore&gt;
  &lt;keystoreType&gt;PKCS12&lt;/keystoreType&gt;
  &lt;secret&gt;yoursecret&lt;/secret&gt;
  &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
&lt;/tls&gt;
....

Alternatively TLS keys can be supplied via PEM files:

....
&lt;tls socketTLS=&quot;true&quot; startTLS=&quot;false&quot;&gt;
  &lt;privateKey&gt;file://conf/private.key&lt;/privateKey&gt;
  &lt;certificates&gt;file://conf/certs.self-signed.csr&lt;/certificates&gt;
&lt;/tls&gt;
....

An optional secret might be specified for the private key:

....
&lt;tls socketTLS=&quot;true&quot; startTLS=&quot;false&quot;&gt;
  &lt;privateKey&gt;file://conf/private.key&lt;/privateKey&gt;
  &lt;certificates&gt;file://conf/certs.self-signed.csr&lt;/certificates&gt;
  &lt;secret&gt;yoursecret&lt;/secret&gt;
&lt;/tls&gt;
....


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/smtp.adoc
=====================================================
= Distributed James Server &amp;mdash; smtpserver.xml
:navtitle: smtpserver.xml

== Incoming SMTP

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/smtpserver.xml[example]
to get some examples and hints.

The SMTP service is controlled by a configuration block in the smptserver.xml.
The smtpserver tag defines the boundaries of the configuration block.  It encloses
all the relevant configuration for the SMTP server. The behavior of the SMTP service is
controlled by the attributes and children of this tag.

This tag has an optional boolean attribute - *enabled* - that defines whether the service is active or not.  The value defaults to &quot;true&quot; if
not present.

The standard children of the smtpserver tag are:

.smtpserver.xml content
|===
| Property name | explanation

| bind
| A list of address:port separed by comma - This is an optional value.  If present, this value is a string describing
the IP address to which this service should be bound.  If the tag or value is absent then the service
will bind to all network interfaces for the machine on port 25. Port 25 is the well-known/IANA registered port for SMTP.
Port 465 is the well-known/IANA registered port for SMTP over TLS.

| connectBacklog
|The IP address (host name) the MBean Server will bind/listen to.

| tls
| Set to true to support STARTTLS or SSL for the Socket.
To use this you need to copy sunjce_provider.jar to /path/james/lib directory. To create a new keystore execute:
`keytool -genkey -alias james -keyalg RSA -storetype PKCS12 -keystore /path/to/james/conf/keystore`.
The algorithm is optional and only needs to be specified when using something other
than the Sun JCE provider - You could use IbmX509 with IBM Java runtime.
Please note that each SMTP/LMTP server exposed on different port can specify its own keystore, independently from any other
TLS based protocols.

| helloName
| This is a required tag with an optional body that defines the server name
used in the initial service greeting.  The tag may have an optional attribute - *autodetect*.  If
the autodetect attribute is present and true, the service will use the local hostname
returned by the Java libraries.  If autodetect is absent or false, the body of the tag will be used.  In
this case, if nobody is present, the value &quot;localhost&quot; will be used.

| connectionTimeout
| This is an optional tag with a non-negative integer body. Connection timeout in seconds.


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/mailetcontainer.adoc
=====================================================
= Distributed James Server &amp;mdash; mailetcontainer.xml
:navtitle: mailetcontainer.xml

This documents explains how to configure Mail processing. Mails pass through the MailetContainer. The
MailetContainer is a Matchers (condition for executing a mailet) and Mailets (execution units that perform
actions based on incoming mail) pipeline arranged into processors (List of mailet/matcher pairs allowing
better logical organisation). You can read more about these concepts on
xref:architecture/index.adoc#_mail_processing[the mailet container feature description].

Apache James Server includes a number of xref:configure/mailets.adoc[Packaged Mailets] and
xref:configure/matchers.adoc[Packaged Matchers].

Furthermore, you can write and use with James xref:extending/mail-processing.adoc[your own mailet and matchers].

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/mailetcontainer.xml[example]
to get some examples and hints.

.mailetcontainer.xml content
|===
| Property name | explanation

| context.postmaster
| The body of this element is the address that the server
will consider its postmaster address.  This address will be listed as the sender address
of all error messages that originate from James.  Also, all messages addressed to
postmaster@&lt;servername&gt;, where &lt;servername&gt; is one of the domain names whose
mail is being handled by James, will be redirected to this email address.
Set this to the appropriate email address for error reports
If this is set to a non-local email address, the mail server
will still function, but will generate a warning on startup.

| spooler.threads
| Number of simultaneous threads used to spool the mails. Set to zero, it disables mail processing - use with
caution.

| spooler.errorRepository
| Mail repository to store email in after several unrecoverable errors. Mails failing processing, for which
the Mailet Container could not handle Error, will be stored there after their processing had been attempted
5 times. Note that if standard java Exception occurs, *Error handling* section below will be applied
instead.
|===

== The Mailet Tag

Consider the following simple *mailet* tag:&lt;/p&gt;

....
&lt;mailet match=&quot;RemoteAddrNotInNetwork=127.0.0.1&quot; class=&quot;ToProcessor&quot;&gt;
    &lt;processor&gt;spam&lt;/processor&gt;
&lt;/mailet&gt;

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/webadmin.adoc
=====================================================
= Distributed James Server &amp;mdash; webadmin.properties
:navtitle: webadmin.properties

The web administration supports for now the CRUD operations on the domains, the users, their mailboxes and their quotas,
managing mail repositories, performing cassandra migrations, and much more, as described in the following sections.

*WARNING*: This API allows authentication only via the use of JWT. If not
configured with JWT, an administrator should ensure an attacker can not
use this API.

By the way, some endpoints are not filtered by authentication. Those endpoints are not related to data stored in James,
for example: Swagger documentation &amp; James health checks.

== Configuration

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/webadmin.properties[example]
to get some examples and hints.

.webadmin.properties content
|===
| Property name | explanation

| enabled
| Define if WebAdmin is launched (default: false)

| port
| Define WebAdmin's port (default: 8080)

| host
| Define WebAdmin's host (default: localhost, use 0.0.0.0 to listen on all addresses)

| cors.enable
| Allow the Cross-origin resource sharing (default: false)

| cors.origin
| Specify ths CORS origin (default: null)

| jwt.enable
| Allow JSON Web Token as an authentication mechanism (default: false)

| https.enable
| Use https (default: false)

| https.keystore
| Specify a keystore file for https (default: null)

| https.password
| Specify the keystore password (default: null)

| https.trust.keystore

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/recipientrewritetable.adoc
=====================================================
= Distributed James Server &amp;mdash; recipientrewritetable.xml
:navtitle: recipientrewritetable.xml

Here are explanations on the different kinds about xref:architecture/index.adoc#_recipient_rewrite_tables[recipient rewriting].

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/recipientrewritetable.xml[example]
to get some examples and hints.

.recipientrewritetable.xml
|===
| Property name | explanation

| recursiveMapping
| If set to false only the first mapping will get processed - Default true.

| mappingLimit
|By setting the mappingLimit you can specify how much mapping will get processed before a bounce will send. This avoids infinity loops. Default 10.
|===

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/rabbitmq.adoc
=====================================================
= Distributed James Server &amp;mdash; rabbitmq.properties
:navtitle: rabbitmq.properties

This configuration helps you configure components using RabbitMQ.

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/rabbitmq.properties[example]
to get some examples and hints.

== RabbitMQ Configuration

.rabbitmq.properties content
|===
| Property name | explanation

| uri
| the amqp URI pointing to RabbitMQ server. If you use a vhost, specify it as well at the end of the URI.
Details about amqp URI format is in https://www.rabbitmq.com/uri-spec.html[RabbitMQ URI Specification]

| management.uri
| the URI pointing to RabbitMQ Management Service. James need to retrieve some information about listing queues
from this service in runtime.
Details about URI format is in https://www.rabbitmq.com/management.html#usage-ui[RabbitMQ Management URI]

| management.user
| username used to access management service

| management.password
| password used to access management service

| connection.pool.retries
| Configure retries count to retrieve a connection. Exponential backoff is performed between each retries.
Optional integer, defaults to 10

| connection.pool.min.delay.ms
| Configure initial duration (in ms) between two connection retries. Exponential backoff is performed between each retries.
Optional integer, defaults to 100

| channel.pool.retries
| Configure retries count to retrieve a channel. Exponential backoff is performed between each retries.
Optional integer, defaults to 3

| channel.pool.max.delay.ms
| Configure timeout duration (in ms) to obtain a rabbitmq channel. Defaults to 30 seconds.
Optional integer, defaults to 30 seconds.

| channel.pool.size
| Configure the size of the channel pool.
Optional integer, defaults to 3

| ssl.enabled

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/spam.adoc
=====================================================
= Distributed James Server &amp;mdash; Anti-Spam configuration
:navtitle: Anti-Spam configuration

Anti-Spam system can be configured via two main different mechanisms:

* SMTP Hooks;
* Mailets;

== AntiSpam SMTP Hooks

&quot;FastFail&quot; SMTP Hooks acts to reject before spooling
on the SMTP level. The Spam detector hook can be used as a fastfail hook, therefore
Spam filtering system must run as a server on the same machine as the Apache James Server.

SMTP Hooks for non-existent users, DSN filter, domains with invalid MX record,
can also be configured.

*SpamAssassinHandler* (experimental) also enables to classify the messages as spam or not
with a configurable score threshold (`0.0`, non-configurable). Only a global database is supported. Per user spam
detection is not supported by this hook.

== AntiSpam Mailets

James' repository provide two AntiSpam mailets: SpamAssassin and RspamdScanner.
We can select one in them for filtering spam mail.

* *SpamAssassin and RspamdScanner* Mailet is designed to classify the messages as spam or not
with a configurable score threshold. Usually a message will only be
considered as spam if it matches multiple criteria; matching just a single test
will not usually be enough to reach the threshold. Note that this mailet is executed on a per-user basis.

=== Rspamd

The Rspamd extension (optional) requires an extra configuration file `rspamd.properties` to configure RSpamd connection

.rspamd.properties content
|===
| Property name | explanation

| rSpamdUrl
| URL defining the Rspamd's server. Eg: http://rspamd:11334

| rSpamdPassword
| Password for pass authentication when request to Rspamd's server. Eg: admin

| rspamdTimeout
| Integer. Timeout for http requests to Rspamd. Default to 15 seconds.

| perUserBayes
| Boolean. Whether to scan/learn mails using per-user Bayes. Default to false.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/remote-delivery-error-handling.adoc
=====================================================
= Distributed James Server &amp;mdash; About RemoteDelivery error handling
:navtitle: About RemoteDelivery error handling

The advanced server mailQueue implemented by combining RabbitMQ for messaging and Cassandra for administrative operation
does not support delays.

Delays are an important feature for Mail Exchange servers, allowing to defer in time the retries, potentially letting the
time for the remote server to recover. Furthermore, they enable implementation of advanced features like throttling and
rate limiting of emails sent to a given domain.

As such, the use of the distributed server as a Mail Exchange server is currently discouraged.

However, for operators willing to inter-operate with a limited set of well-identified, trusted remote mail servers, such
limitation can be reconsidered. The main concern then become error handling for remote mail server failures. The following
document will present a well tested strategy for Remote Delivery error handling leveraging standards Mail Processing components
and mechanisms.

== Expectations

Such a solution should:

- Attempt delivery a single time
- Store transient and permanent failure in different mail repositories
- After a given number of tries, transient failures should be considered permanent

== Design

image::remote-delivery-error-handling.png[Schema detailing the proposed solution]

- Remote Delivery is configured for performing a single retry.
- Remote Delivery attaches the error code and if the failure is permanent/temporary when transferring failed emails to the
bounce processor.
- The specified bounce processor will categorise the failure, and store temporary and permanent failures in different
mail repositories.
- A reprocessing of the temporary delivery errors mailRepository needs to be scheduled in a recurring basis. For
instance via a CRON job calling the right webadmin endpoint.
- A counter ensures that a configured number of delivery tries is not exceeded.

=== Limitation

MailRepositories are not meant for transient data storage, and thus are prone to tombstone issues.

This might be acceptable if you need to send mail to well-known peers. For instance handling your mail gateway failures.
However a Mail Exchange server doing relay on the internet would quickly hit this limitation.

Also note that external triggering of the retry process is needed.

== Operation

Here is an example of configuration achieving the proposed solution:

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/index.adoc
=====================================================
= Distributed James Server &amp;mdash; Configuration
:navtitle: Configuration

This section presents how to configure the Distributed server.

The Distributed Server relies on separated files for configuring various components. Some files follow a *xml* format
and some others follow a *property* format. Some files can be omitted, in which case the functionality can be disabled,
or rely on reasonable defaults.

The following configuration files are exposed:

== For protocols

By omitting these files, the underlying protocols will be disabled.

** xref:configure/imap.adoc[*imapserver.xml*] allows configuration for the IMAP protocol link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/imapserver.xml[example]
** xref:configure/jmap.adoc[*jmap.properties*] allows to configure the JMAP protocol link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/jmap.properties[example]
** xref:configure/jmx.adoc[*jmx.properties*] allows configuration of JMX being used by the Command Line Interface link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/jmx.properties[example]
** xref:configure/smtp.adoc#_lmtp_configuration[*lmtpserver.xml*] allows configuring the LMTP protocol link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/lmtpserver.xml[example]
** *managesieveserver.xml* allows configuration for ManagedSieve (unsupported) link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/managesieveserver.xml[example]
** xref:configure/pop3.adoc[*pop3server.xml*] allows configuration for the POP3 protocol (experimental) link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/pop3server.xml[example]
** xref:configure/smtp.adoc[*smtpserver.xml*] allows configuration for the SMTP protocol link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/smtpserver.xml[example]
*** xref:configure/smtp-hooks.adoc[This page] list SMTP hooks that can be used out of the box with the Distributed Server.
** xref:configure/webadmin.adoc[*webadmin.properties*] enables configuration for the WebAdmin protocol link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/webadmin.properties[example]
** xref:configure/ssl.adoc[This page] details SSL &amp; TLS configuration.
** xref:configure/sieve.adoc[This page] details Sieve setup and how to enable ManageSieve.

== For storage dependencies

Except specific documented cases, these files are required, at least to establish a connection with the storage components.

** xref:configure/blobstore.adoc[*blobstore.properties*] allows to configure the BlobStore link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/blob.properties[example]
** xref:configure/cassandra.adoc[*cassandra.properties*] allows to configure the Cassandra driver link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/cassandra.properties[example]
** xref:configure/opensearch.adoc[*opensearch.properties*] allows to configure OpenSearch driver link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/opensearch.properties[example]
** xref:configure/rabbitmq.adoc[*rabbitmq.properties*] allows configuration for the RabbitMQ driver link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/rabbitmq.properties[example]
** xref:configure/redis.adoc[*redis.properties*] allows configuration for the Redis driver link:https://github.com/apache/james-project/blob/fabfdf4874da3aebb04e6fe4a7277322a395536a/server/mailet/rate-limiter-redis/redis.properties[example], that is used by optional
distributed rate limiting component.
** xref:configure/tika.adoc[*tika.properties*] allows configuring Tika as a backend for text extraction link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/tika.properties[example]

== For core components

By omitting these files, sane default values are used.

** xref:configure/batchsizes.adoc[*batchsizes.properties*] allows to configure mailbox read batch sizes link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/batchsizes.properties[example]
** xref:configure/dns.adoc[*dnsservice.xml*] allows to configure DNS resolution link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/dnsservice.xml[example]
** xref:configure/domainlist.adoc[*domainlist.xml*] allows to configure Domain storage link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/domainlist.xml[example]
** xref:configure/healthcheck.adoc[*healthcheck.properties*] allows to configure periodical healthchecks link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/healthcheck.properties[example]
** xref:configure/mailetcontainer.adoc[*mailetcontainer.xml*] allows configuring mail processing link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/mailetcontainer.xml[example]
*** xref:configure/mailets.adoc[This page] list matchers that can be used out of the box with the Distributed Server.
*** xref:configure/matchers.adoc[This page] list matchers that can be used out of the box with the Distributed Server.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/dns.adoc
=====================================================
= Distributed James Server &amp;mdash; dnsservice.xml
:navtitle: dnsservice.xml

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/dnsservice.xml[example]
to get some examples and hints.

Specifies DNS Server information for use by various components inside Apache James Server.

DNS Transport services are controlled by a configuration block in
the dnsservice.xml. This block affects SMTP remote delivery.

The dnsservice tag defines the boundaries of the configuration
block. It encloses all the relevant configuration for the DNS server.
The behavior of the DNS service is controlled by the attributes and
children of this tag.

.dnsservice.xml content
|===
| Property name | explanation

| servers
| Information includes a list of DNS Servers to be used by James.  These are
specified by the server elements, each of which is a child element of the
servers element.  Each server element is the IP address of a single DNS server.
The server elements can have multiple server children. Enter ip address of your DNS server, one IP address per server
element. If no DNS servers are found and you have not specified any below, 127.0.0.1 will be used

| autodiscover
| true or false -  If you use autodiscover and add DNS servers manually a combination of all the DNS servers will be used.
If autodiscover is true, James will attempt to autodiscover the DNS servers configured on your underlying system.
Currently, this works if the OS has a unix-like /etc/resolv.xml,
or the system is Windows based with ipconfig or winipcfg. Change autodiscover to false if you would like to turn off autodiscovery
and set the DNS servers manually in the servers section

| authoritative
| *true/false* - This tag specifies whether or not
to require authoritative (non-cached) DNS records; to only accept DNS responses that are
authoritative for the domain. It is primarily useful in an intranet/extranet environment.
This should always be *false* unless you understand the implications.

| maxcachesize
| Maximum number of entries to maintain in the DNS cache (typically 50000)

| negativeCacheTTL
| Sets the maximum length of time that negative records will be stored in the DNS negative cache in
seconds (a negative record means the name has not been found in the DNS). Values for this cache
can be positive meaning the time in seconds before retrying to resolve the name, zero meaning no
cache or a negative value meaning infinite caching.

| singleIPperMX

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/redis.adoc
=====================================================
= Distributed James Server &amp;mdash; redis.properties
:navtitle: redis.properties

This configuration helps you configure components using Redis. This so far only includes optional rate limiting component.

Consult this link:https://github.com/apache/james-project/blob/fabfdf4874da3aebb04e6fe4a7277322a395536a/server/mailet/rate-limiter-redis/redis.properties[example]
to get some examples and hints.

== Redis Configuration

.redis.properties content
|===
| Property name | explanation

| redisURL
| the Redis URI pointing to Redis server. Compulsory.

| cluster.enabled
| Whether we should attempt connections to Redis as a cluster.Defaults to false.

| redis.ioThreads
| IO threads to be using for the underlying Netty networking resources. If unspecified driver defaults applies.

| redis.workerThreads
| Worker threads to be using for the underlying driver. If unspecified driver defaults applies.
|===

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/healthcheck.adoc
=====================================================
= Distributed James Server &amp;mdash; healthcheck.properties
:navtitle: healthcheck.properties

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/healthcheck.properties[example]
to get some examples and hints.

Use this configuration to define the initial delay and period for the PeriodicalHealthChecks. It is only applicable with Guice products.

.healthcheck.properties content
|===
| Property name | explanation

| healthcheck.period
| Define the period between two periodical health checks (default: 60s). Units supported are (ms - millisecond, s - second, m - minute, h - hour, d - day). Default unit is millisecond.

| reception.check.user
| User to be using for running the &quot;mail reception&quot; health check. The user must exist.
If not specified, the mail reception check is a noop.

| reception.check.timeout
| Period after which mail reception is considered faulty. Defaults to one minute.

| additional.healthchecks
| List of fully qualified HealthCheck class names in addition to James' default healthchecks. Default to empty list.
|===

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/usersrepository.adoc
=====================================================
= Distributed James Server &amp;mdash; usersrepository.xml
:navtitle: usersrepository.xml

User repositories are required to store James user information and authentication data.

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/usersrepository.xml[example]
to get some examples and hints.

== The user data model

A user has two attributes: username and password.

A valid user should satisfy these criteria:

* username and password cannot be null or empty
* username should not be longer than 255 characters
* username can not contain '/'
* username can not contain multiple domain delimiter('@')
* A username can have only a local part when virtualHosting is disabled. E.g.'myUser'
* When virtualHosting is enabled, a username should have a domain part, and the domain part should be concatenated
after a domain delimiter('@'). E.g. 'myuser@james.org'

A user is always considered as lower cased, so 'myUser' and 'myuser' are the same user, and can be used as well as
recipient local part than as login for different protocols.

== Configuration

.usersrepository.xml content
|===
| Property name | explanation

| enableVirtualHosting
| true or false. Add domain support for users (default: false, except for Cassandra Users Repository)

| administratorId
|user's name. Allow a user to access to the https://tools.ietf.org/html/rfc4616#section-2[impersonation command],
acting on the behalf of any user.

| verifyFailureDelay
| Delay after a failed authentication attempt with an invalid user name or password. Duration string defaulting to seconds, e.g. `2`, `2s`, `2000ms`. Default `0s` (disabled).

| algorithm
| use a specific hash algorithm to compute passwords, with optional mode `plain` (default) or `salted`; e.g. `SHA-512`,  `SHA-512/plain`, `SHA-512/salted`, `PBKDF2`, `PBKDF2-SHA512` (default).
Note: When using `PBKDF2` or `PBKDF2-SHA512` one can specify the iteration count and the key size in bytes. You can specify it as part of the algorithm. EG: `PBKDF2-SHA512-2000-512` will use
2000 iterations with a key size of 512 bytes.

| hashingMode
| specify the hashing mode to use if there is none recorded in the database: `plain` (default) for newer installations or `legacy` for older ones

|===

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/opensearch.adoc
=====================================================
= Distributed James Server &amp;mdash; opensearch.properties
:navtitle: opensearch.properties

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/opensearch.properties[example]
to get some examples and hints.

If you want more explanation about OpenSearch configuration, you should visit the dedicated https://opensearch.org/[documentation].

== OpenSearch Configuration

This file section is used to configure the connection tp an OpenSearch cluster.

Here are the properties allowing to do so :

.opensearch.properties content
|===
| Property name | explanation

| opensearch.clusterName
| Is the name of the cluster used by James.

| opensearch.nb.shards
| Number of shards for index provisionned by James

| opensearch.nb.replica
| Number of replica for index provisionned by James (default: 0)

| opensearch.index.waitForActiveShards
| Wait for a certain number of active shard copies before proceeding with the operation. Defaults to 1.
You may consult the https://www.elastic.co/guide/en/elasticsearch/reference/7.10/docs-index_.html#active-shards[documentation] for more information.

| opensearch.retryConnection.maxRetries
| Number of retries when connecting the cluster

| opensearch.retryConnection.minDelay
| Minimum delay between connection attempts

| opensearch.max.connections
| Maximum count of HTTP connections allowed for the OpenSearch driver. Optional integer, if unspecified driver defaults
applies (30 connections).

| opensearch.max.connections.per.hosts
| Maximum count of HTTP connections per host allowed for the OpenSearch driver. Optional integer, if unspecified driver defaults
applies (10 connections).

|===

=== Mailbox search

The main use of OpenSearch within the Distributed Server is indexing the mailbox content of users in order to enable

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/pages/configure/pop3.adoc
=====================================================
= Distributed James Server &amp;mdash; pop3server.xml
:navtitle: pop3server.xml

Consult this link:https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/pop3server.xml[example]
to get some examples and hints.

The POP3 service is controlled by a configuration block in the pop3server.xml.
The pop3server tag defines the boundaries of the configuration block.  It encloses
all the relevant configuration for the POP3 server.  The behavior of the POP service is
controlled by the attributes and children of this tag.

This tag has an optional boolean attribute - *enabled* - that defines whether the service is active or not.
The value defaults to &quot;true&quot; if not present.

The standard children of the pop3server tag are:

.jmx.properties content
|===
| Property name | explanation

| bind
| Configure this to bind to a specific inetaddress. This is an optional integer value.
This value is the port on which this POP3 server is configured
to listen. If the tag or value is absent then the service
will bind to all network interfaces for the machine If the tag or value is omitted,
the value will default to the standard POP3 port, 11
port 995 is the well-known/IANA registered port for POP3S  ie over SSL/TLS
port 110 is the well-known/IANA registered port for Standard POP3

| connectionBacklog
|

| tls
| Set to true to support STARTTLS or SSL for the Socket.
To create a new keystore execute:
`keytool -genkey -alias james -keyalg RSA -storetype PKCS12 -keystore /path/to/james/conf/keystore`
Please note that each POP3 server exposed on different port can specify its own keystore, independently from any other
TLS based protocols. Read xref:configure/ssl.adoc[SSL configuration page] for more information.

| handler.helloName
| This is the name used by the server to identify itself in the POP3
protocol.  If autodetect is TRUE, the server will discover its
own host name and use that in the protocol.  If discovery fails,
the value of 'localhost' is used.  If autodetect is FALSE, James
will use the specified value.

| handler.connectiontimeout
| Connection timeout in seconds

| handler.connectionLimit

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/IsOverQuota.adoc
=====================================================
=== IsOverQuota

This matcher will check if the incoming email will make recipients exceed their quotas.

Here is a configuration example:

....
&lt;mailet match=&quot;IsOverQuota&quot; class=&quot;&lt;any-class&gt;&quot;/&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasHeaderWithPrefix.adoc
=====================================================
=== HasHeaderWithPrefix

Matches emails with headers having a given prefix.

If a header with the given prefix is found in the message (global) all recipients will be matched.
If a header with the given prefix is found per recipient (specific), only these will be matched.

Otherwise, no recipient in returned.

use:

....
&lt;mailet match=&quot;HasHeaderWithPrefix=PREFIX&quot; class=&quot;...&quot; /&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ManageSieveMailet.adoc
=====================================================
=== Manage Sieve scripts via a mailet

Each user can manage his SIEVE scripts through the `ManageSieveMailet` mailet.

To use the manage SIEVE mailet :

* You need to create the user sievemanager@DOMAIN ( if you don't, the SMTP server will check the domain, recognize it, and look for an absent local user, and will generate an error ).
* You can send Manage Sieve commands by mail to sievemanager@DOMAIN. Your subject must contain the command. Scripts need to be added as attachments and need the &quot;.sieve&quot; extension.

To activate a script for a user, you need the following combination :

* PUTSCRIPT scriptname
* SETACTIVE scriptname

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/AddFooter.adoc
=====================================================
=== AddFooter

Takes the message and attaches a footer message to it.  Right now, it only
supports simple messages.  Needs to have additions to make it support
messages with alternate content types or with attachments.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/FileRegexMatcher.adoc
=====================================================
=== FileRegexMatcher

Initializes RegexMatcher with regular expressions from a file.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/AtMostPriority.adoc
=====================================================
=== AtMostPriority

Numeric value. The priority of this mail should be at most the specified value to be matched.

Inclusive.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RecipientToLowerCase.adoc
=====================================================
=== RecipientToLowerCase

GenericMailet which convert all Recipients to lowercase.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/Expires.adoc
=====================================================
=== Expires

Sanitizes or adds an expiration date to a message, in the form of an `Expires`
header (RFC 4021).

The mailet can force an existing expiration date to be within the bounds
given by `minAge`, `maxAge`, or both. `minAge` specifies the minimum time
the date must lie in the future, while `maxAge` specifies a maximum.

If a message has no expiration date, the mailet can add one according to
the optional `defaultAge` parameter.

All parameter values should be expressed in the following format: `Nunit`.
`N` should be positive. `unit` could be either in the short form
(`h`, `d`, `w`, `y` etc.), or in the long form (`hours`, days`, `weeks`,
`months`, `years`). The default unit is `days`.

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;Expires&quot;&gt;
    &lt;minAge&gt;12h&lt;/minAge&gt;
    &lt;defaultAge&gt;7d&lt;/defaultAge&gt;
    &lt;maxAge&gt;8w&lt;/maxAge&gt;
&lt;/mailet&gt;
....

By itself the `Expires` header is informational only. But some variants of James
will let you delete expired messages through the 
xref:operate/webadmin.adoc#_administrating_messages[WebAdmin] interface:

....
curl -XDELETE http://ip:port/messages?byExpiresHeader
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/AmqpForwardAttribute.adoc
=====================================================
=== AmqpForwardAttribute

This mailet forwards the attributes values to a AMPQ.

It takes 4 parameters:

* attribute (mandatory): content to be forwarded, expected to be a Map&lt;String, byte[]&gt;
where the byte[] content is issued from a MimeBodyPart.
It is typically generated from the StripAttachment mailet.
* uri (mandatory): AMQP URI defining the server where to send the attachment.
* exchange (mandatory): name of the AMQP exchange.
* routing_key (optional, default to empty string): name of the routing key on this exchange.

This mailet will sent the data attached to the mail as an attribute holding a map.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/LogMessage.adoc
=====================================================
=== LogMessage

Logs Message Headers and/or Body.
If the &quot;passThrough&quot; in confs is true the mail will be left untouched in
the pipe. If false will be destroyed.  Default is true.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ClamAVScan.adoc
=====================================================
=== ClamAVScan

Does an antivirus scan check using a ClamAV daemon (CLAMD)

Interacts directly with the daemon using the &quot;stream&quot; method,
which should have the lowest possible overhead.

The CLAMD daemon will typically reside on *localhost*, but could reside on a
different host.
It may also consist on a set of multiple daemons, each residing on a different
server and on different IP number.
In such case a DNS host name with multiple IP addresses (round-robin load sharing)
is supported by the mailet (but on the same port number).

Handles the following init parameters:

* *&lt;debug&gt;*
* *&lt;host&gt;*: the host name of the server where CLAMD runs. It can either be
a machine name, such as
&quot;*java.sun.com*&quot;, or a textual representation of its
IP address. If a literal IP address is supplied, only the
validity of the address format is checked.
If the machine name resolves to multiple IP addresses, *round-robin load sharing* will
be used.
The default is *localhost*.
* *&lt;port&gt;*: the port on which CLAMD listens. The default is *3310*.
* *&lt;maxPings&gt;*: the maximum number of connection retries during startup.
If the value is *0* no startup test will be done.
The default is *6*.
* *&lt;pingIntervalMilli&gt;*: the interval (in milliseconds)
between each connection retry during startup.
The default is *30000* (30 seconds).
* *&lt;streamBufferSize&gt;*: the BufferedOutputStream buffer size to use
writing to the *stream connection*. The default is *8192*.

The actions performed are as follows:

* During initialization:

* Gets all *config.xml* parameters, handling the defaults;
* resolves the *&lt;host&gt;* parameter, creating the round-robin IP list;
* connects to CLAMD at the first IP in the round-robin list, on
the specified *&lt;port&gt;*;
* if unsuccessful, retries every *&lt;pingIntervalMilli&gt;* milliseconds up to
*&lt;maxPings&gt;* times;
* sends a *PING* request;
* waits for a *PONG* answer;
* repeats steps 3-6 for every other IP resolved.

* For every mail

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/MailAttributesToMimeHeaders.adoc
=====================================================
=== MailAttributesToMimeHeaders

Convert attributes of type Collection&lt;String&gt; to headers

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;MailAttributesToMimeHeaders&quot;&gt;
  &lt;simplemapping&gt;org.apache.james.attribute1;headerName1&lt;/simplemapping&gt;
  &lt;simplemapping&gt;org.apache.james.attribute2;headerName2&lt;/simplemapping&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RemoveMimeHeader.adoc
=====================================================
=== RemoveMimeHeader

Remove mime headers from the message (global) and per recipient (specific).

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;RemoveMimeHeader&quot;&gt;
  &lt;name&gt;header1,header2&lt;/name&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SenderIsNull.adoc
=====================================================
=== SenderIsNull

Matches mails that are sent by a null sender.

....
&lt;mailet match=&quot;SenderIsNull&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SerialiseToHTTP.adoc
=====================================================
=== SerialiseToHTTP

Serialise the email and pass it to an HTTP call

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;SerialiseToHTTP&quot;&gt;
        &lt;name&gt;URL&lt;/name&gt; &lt;value&gt;url where serialised message will be posted&lt;/value&gt;
        &lt;name&gt;ParameterKey&lt;/name&gt; &lt;value&gt;An arbitrary parameter be added to the post&lt;/value&gt;
        &lt;name&gt;ParameterValue&lt;/name&gt; &lt;value&gt;A value for the arbitrary parameter&lt;/value&gt;
        &lt;name&gt;MessageKeyName&lt;/name&gt; &lt;value&gt;Field name for the serialised message&lt;/value&gt;
        &lt;name&gt;passThrough&lt;/name&gt; &lt;value&gt;true or false&lt;/value&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ClassifyBounce.adoc
=====================================================
=== ClassifyBounce

Assesses the message to determine if it was a hard or soft bounce, and if it was a soft bounce, something of its nature..

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;ClassifyBounce&quot;&gt;
  &lt;headerName&gt;X-MailetHeader&lt;/headerName&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/IsSMIMESigned.adoc
=====================================================
=== IsSMIMESigned

Checks if a mail is smime encrypted.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SubjectIs.adoc
=====================================================
=== SubjectIs

Matches mail where the subject is contained in a configurable list.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ToPlainText.adoc
=====================================================
=== ToPlainText

This mailet converts HTML parts of a message into Plain text.

It starts looking for multipart/alternative containing a text/plain and a text/html part
and only keep the text/plain part. Then in a second pass replaces remaining text/html by
their textual content, infered by parsing the HTML content and handling common tags.

Eg:

----
&lt;mailet matcher=&quot;All&quot; class=&quot;ToPlainText&quot;/&gt;
----

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/WithStorageDirective.adoc
=====================================================
=== WithStorageDirective

WithStorageDirective position storage directive for the recipients of this email.

These directives are used by &lt;strong&gt;LocalDelivery&lt;/strong&gt; mailet when adding the email to the recipients mailboxes.

The following storage directives can be set:

* targetFolderNames: the folders to append the email in. Defaults to none (INBOX). Coma separated list of folder names. Fallback to targetFolderName.
* targetFolderName: the folder to append the email in. Defaults to none (INBOX).
* seen: boolean, whether the message should be automatically marked as seen. Defaults to false.
* important: boolean, whether the message should be automatically marked as important. Defaults to false.
* keywords: set of string, encoded as a string (value are coma separated). IMAP user flags to set for the message. Defaults to none

Example:

....
&lt;mailet match=&quot;IsMarkedAsSpam&quot; class=&quot;WithStorageDirective&quot;&gt;
    &lt;targetFolderName&gt;Spam&lt;/targetFolderName&gt;
    &lt;seen&gt;true&lt;/seen&gt;
    &lt;important&gt;true&lt;/important&gt;
    &lt;keywords&gt;keyword1,keyword2&lt;/keywords&gt;
&lt;/mailet&gt;
....

Alternatively, several target folders can be specified:

....
&lt;mailet match=&quot;IsMarkedAsSpam&quot; class=&quot;WithStorageDirective&quot;&gt;
  &lt;targetFolderNames&gt;Important, INBOX&lt;/targetFolderNames&gt;
  &lt;seen&gt;true&lt;/seen&gt;
  &lt;important&gt;true&lt;/important&gt;
  &lt;keywords&gt;keyword1,keyword2&lt;/keywords&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/IsSMIMEEncrypted.adoc
=====================================================
=== IsSMIMEEncrypted

Checks if a mail is smime encrypted.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/AtMost.adoc
=====================================================
=== AtMost

Checks that a mail did at most X executions on a specific operation.

 If no executions have been performed previously for Y attribute, it will be set up.
 In the mail, every time the check succeeds, its counter will be incremented by one.
The check fails when the defined X limit is reached.

* X - count of how many times a specific operation is performed
* Y - name of attribute represented for specific operation executions, default value is: *AT_MOST_EXECUTIONS*


The example below will match a mail with at most 3 executions on the mailet
with attribute name *AT_MOST_EXECUTIONS*

....
&lt;mailet match=&quot;AtMost=AT_MOST_EXECUTIONS:3&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ExtractMDNOriginalJMAPMessageId.adoc
=====================================================
=== ExtractMDNOriginalJMAPMessageId

This mailet handles MDN messages and define a header X-JAMES-MDN-JMAP-MESSAGE-ID referencing
the original message (by its Jmap Id) asking for the recipient to send an MDN.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RecipientRewriteTable.adoc
=====================================================
=== RecipientRewriteTable

Mailet which should get used when using RecipientRewriteTable-Store to
implementations for mappings of forwards and aliases.

By specifying an 'errorProcessor' you can specify your logic upon RecipientRewriteTable failures.

Example:

....
 &lt;mailet match=&quot;All&quot; class=&quot;RecipientRewriteTable&quot;&gt;
   &lt;errorProcessor&gt;rrt-errors&lt;/errorProcessor&gt;
 &lt;/mailet&gt;
....

The *rewriteSenderUponForward* option (default to true) can be used to prevent senders to be rewritten upon forwards in the transport envelope
(JAMES 3.8.0 default behaviour). *WARNING*: Please note that not rewriting the sender will cause issues forwarding emails
from external senders to external addresses as the DKIM and SPF records will not be matching the ones of the sending
domain.

The *forwardAutoSubmittedEmails* option (default to false) can be used to prevent forwarding bounces as such a scenario
can lead to an infinite loop if the forward recipient bounces the email.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RecipientIsLocal.adoc
=====================================================
=== RecipientIsLocal

Matches mail where the recipient is local.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RemoveMimeHeaderByPrefix.adoc
=====================================================
=== RemoveMimeHeader

This mailet removes all of the headers starting with a given prefix in the message (global) and per recipient (specific).

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;RemoveMimeHeaderByPrefix&quot;&gt;
  &lt;name&gt;X-APPLICATIVE-HEADER-&lt;/name&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ConvertTo7Bit.adoc
=====================================================
=== ConvertTo7Bit

Make sure the message stream is 7bit. Every 8bit part is encoded to
quoted-printable or base64 and the message is saved.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HostIs.adoc
=====================================================
=== HostIs

Matches mail to given hosts.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/UserIs.adoc
=====================================================
=== UserIs

Matches mail where the user is contained in a configurable list.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/XOriginatingIpInNetwork.adoc
=====================================================
=== XOriginatingIpInNetwork

Checks the first X_ORIGINATING_IP IP address against a comma-delimited list
of IP addresses, domain names or sub-nets.

See AbstractNetworkMatcher for details on how to specify entries.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ICalendarParser.adoc
=====================================================
=== ICalendarParser

This mailet can be combined with the Strip attachment mailet.

The ICS body part byte array is arranged as map then this mailet should look for ICS and parse it
with Ical4J then store it as a mail attribute

Configuration: The mailet contains 2 mandatory attributes

....
  &lt;mailet match=&quot;All&quot; class=&quot;ICalendarParser&quot; &gt;
    &lt;sourceAttribute&gt;source.attribute.name&lt;/sourceAttribute&gt;
    &lt;!-- The attribute which contains output value of StripAttachment mailet -- &gt;
    &lt;destAttribute&gt;dest.attribute.name&lt;/destAttribute&gt;
    &lt;!-- The attribute store the map of Calendar -- &gt;
  &lt;/mailet &gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasPriority.adoc
=====================================================
=== HasPriority

Numeric value. The priority of this mail should be equal to the specified value to be matched.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/LocalDelivery.adoc
=====================================================
=== LocalDelivery

Receives a Mail from the Queue and takes care of delivery of the
message to local inboxes.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/NESSpamCheck.adoc
=====================================================
=== NESSpamCheck

This is based on a sample filter.cfg for a Netscape Mail Server to stop
spam.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SPF.adoc
=====================================================
=== SPF

Check the ip, sender, helo against SPF. Add the following attributes to the
mail object:

....
 org.apache.james.transport.mailets.spf.explanation
 org.apache.james.transport.mailets.spf.result
....

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;SPF&quot;&gt;
  &lt;addHeader&gt;true&lt;/addHeader&gt;
  &lt;debug&gt;false&lt;/debug&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/TextCalendarBodyToAttachment.adoc
=====================================================
=== TextCalendarBodyToAttachment

This mailet converts Content-Type of MimeMessage from text/calendar to mulitpart/mixed

The BodyPart should be retrieved from content of text/calendar with all the same &quot;Content-*&quot; headers from original message
and those &quot;Content-&quot; header are removed from original message

It does not takes any parameter

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;TextCalendarBodyToAttachment&quot;/&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/WithPriority.adoc
=====================================================
=== WithPriority

This mailet sets the priority of the incoming mail.

Example configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;WithPriority&quot;&gt;
 &lt;priority&gt;7&lt;/priority&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SpamAssassin.adoc
=====================================================
=== SpamAssassin

Sends the message through daemonized SpamAssassin (spamd), visit
http://spamassassin.apache.org[spamassassin.apache.org] for info
on configuration. The header X-Spam-Status is added to every message, this
contains the score and the threshold score for spam (usually 5.0). If the
message exceeds the threshold, the header X-Spam-Flag will be added with the
value of YES. The default host for spamd is localhost and the default port is
783.

....
 org.apache.james.spamassassin.status - Holds the status
 org.apache.james.spamassassin.flag   - Holds the flag
....

Sample Configuration:

....
&lt;mailet notmatch=&quot;SenderHostIsLocal&quot; class=&quot;SpamAssassin&quot;&gt;
  &lt;spamdHost&gt;localhost&lt;/spamdHost&gt;
  &lt;spamdPort&gt;783&lt;/spamdPort&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/Forward.adoc
=====================================================
=== Forward

Replaces incoming recipients with those specified, and resends the message
unaltered.

Can be totally replaced by an equivalent usage of {@link Resend} (see below),
simply replacing *&lt;forwardto&gt;* with *&lt;recipients&gt;*.

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;Forward&quot;&gt;
  &lt;forwardTo&gt;*comma delimited list of email addresses*&lt;/forwardTo&gt;
  &lt;passThrough&gt;*true or false, default=false*&lt;/passThrough&gt;
  &lt;fakeDomainCheck&gt;*true or false, default=true*&lt;/fakeDomainCheck&gt;
  &lt;debug&gt;*true or false, default=false*&lt;/debug&gt;
&lt;/mailet&gt;
....

The behaviour of this mailet is equivalent to using Resend with the following
configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;Resend&quot;&gt;
  &lt;forwardTo&gt;comma delimited list of email addresses&lt;/recipients&gt;
  &lt;passThrough&gt;true or false&lt;/passThrough&gt;
  &lt;fakeDomainCheck&gt;*true or false*&lt;/fakeDomainCheck&gt;
  &lt;debug&gt;*true or false*&lt;/debug&gt;
&lt;/mailet&gt;
....

*forwardto* can be used instead of *forwardTo*; such name is kept
for backward compatibility.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RecipientDomainIs.adoc
=====================================================
=== RecipientDomainIs

This will return recipients matching a configured domain.

Sample configuration:

....
&lt;mailet match=&quot;RecipientDomainIs=&lt;domain.com&gt;&quot; class=&quot;&lt;any-class&gt;&quot;/&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SMTPIsAuthNetwork.adoc
=====================================================
=== SMTPIsAuthNetwork

Matches mails that are sent by a client which is allowed to relay.

....
&lt;mailet match=&quot;SMTPIsAuthNetwork&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasMailAttributeWithValueRegex.adoc
=====================================================
=== HasMailAttributeWithValueRegex

This Matcher determines if the mail contains the attribute specified in the
condition and that attribute matches the supplied regular expression,
it returns all recipients if that is the case.

Sample configuration:

....
&lt;mailet match=&quot;HasMailAttributeWithValueRegex=whatever,&lt;regex&gt;&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
....

Note: as it is not possible to put arbitrary objects in the configuration,
toString() is called on the attribute value, and that is the value matched against.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ReplaceContent.adoc
=====================================================
=== ReplaceContent

Replace text contents

This mailet allow to specific regular expression to replace text in subject and content.


Each expression is defined as: */REGEX_PATTERN/SUBSTITUTION_PATTERN/FLAGS/*

* *REGEX_PATTERN* is a regex used for the match
* *SUBSTITUTION_PATTERN* is a substitution pattern
* *FLAGS* flags supported for the pattern:
** i: case insensitive
** m: multi line
** x: extended (N/A)
** r: repeat - keep matching until a substitution is possible

To identify subject and body pattern we use the tags &lt;subjectPattern&gt; and &lt;bodyPattern&gt;

Rules can be specified in external files.
Lines must be CRLF terminated and lines starting with # are considered comments.
Tags used to include external files are &lt;subjectPatternFile&gt; and
&lt;bodyPatternFile&gt;
If file path starts with # then the file is loaded as a resource.

Use of both files and direct patterns at the same time is allowed.

This mailet allow also to enforce the resulting charset for messages processed, when a replacement has been done.
To do that the tag &lt;charset&gt; must be specified.

NOTE:
Regexp rules must be escaped by regexp escaping rules and applying this 2 additional rules:

- &quot;/&quot; char inside an expression must be prefixed with &quot;\&quot;:
  e.g: &quot;/\//-//&quot; replaces &quot;/&quot; with &quot;-&quot;
- when the rules are specified using &lt;subjectPattern&gt; or &lt;bodyPattern&gt; and
  &quot;/,/&quot; has to be used in a pattern string it must be prefixed with a &quot;\&quot;.
  E.g: &quot;/\/\/,//&quot; replaces &quot;/&quot; with &quot;,&quot; (the rule would be &quot;/\//,//&quot; but the &quot;/,/&quot; must
  be escaped.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RemoteAddrInNetwork.adoc
=====================================================
=== RemoteAddrInNetwork

Checks the IP address of the sending server against a comma-delimited list
of IP addresses, domain names or sub-nets.

See AbstractNetworkMatcher for details on how to specify entries.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/NotifyPostmaster.adoc
=====================================================
=== NotifyPostmaster

Sends a notification message to the Postmaster.

A sender of the notification message can optionally be specified. If one is
not specified, the postmaster's address will be used.

The &quot;To:&quot; header of the notification message can be set to &quot;unaltered&quot;; if
missing will be set to the postmaster.

A notice text can be specified, and in such case will be inserted into the
notification inline text.

If the notified message has an &quot;error message&quot; set, it will be inserted into
the notification inline text. If the *attachError* init
parameter is set to true, such error message will be attached to the
notification message.

The notified messages are attached in their entirety (headers and content)
and the resulting MIME part type is &quot;message/rfc822&quot;.

Supports the *passThrough* init parameter (true if missing).


Sample configuration:


....
&lt;mailet match=&quot;All&quot; class=&quot;NotifyPostmaster&quot;&gt;
  &lt;sender&gt;*an address or postmaster or sender or unaltered, default=postmaster*&lt;/sender&gt;
  &lt;attachError&gt;*true or false, default=false*&lt;/attachError&gt;
  &lt;message&gt;*notice attached to the original message text (optional)*&lt;/message&gt;
  &lt;prefix&gt;*optional subject prefix prepended to the original message, default=&quot;Re:&quot;*&lt;/prefix&gt;
  &lt;inline&gt;*default=none*&lt;/inline&gt;
  &lt;attachment&gt;*default=message*&lt;/attachment&gt;
  &lt;passThrough&gt;*true or false, default=true*&lt;/passThrough&gt;
  &lt;fakeDomainCheck&gt;*true or false, default=true*&lt;/fakeDomainCheck&gt;
  &lt;to&gt;*unaltered (optional, defaults to postmaster)*&lt;/to&gt;
  &lt;debug&gt;*true or false, default=false*&lt;/debug&gt;
&lt;/mailet&gt;
....

The behaviour of this mailet is equivalent to using Resend with the following
configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;Resend&quot;&gt;
  &lt;sender&gt;*an address or postmaster or sender or unaltered*&lt;/sender&gt;
  &lt;attachError&gt;*true or false*&lt;/attachError&gt;
  &lt;message&gt;*&lt;b&gt;dynamically built&lt;/b&gt;*&lt;/message&gt;

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HeadersToHTTP.adoc
=====================================================
=== HeadersToHTTP

Serialise the email and pass it to an HTTP call

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;HeadersToHTTP&quot;&gt;
  &lt;url&gt;http://192.168.0.252:3000/alarm&lt;/url&gt;
  &lt;parameterKey&gt;Test&lt;/parameterKey&gt;
  &lt;parameterValue&gt;ParameterValue&lt;/parameterValue&gt;
  &lt;passThrough&gt;true&lt;/passThrough&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/CommandForListserv.adoc
=====================================================
=== CommandForListserv

Returns positive if the recipient is a command for a listserv.  For example,
if my listserv is james@list.working-dogs.com, this matcher will return true
for james-on@list.working-dogs.com and james-off@list.working-dogs.com.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RandomStoring.adoc
=====================================================
=== RandomStoring

Process messages and randomly assign them to 4 to 8 mailboxes.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/PostmasterAlias.adoc
=====================================================
=== PostmasterAlias

Rewrites recipient addresses to make sure email for the postmaster is
always handled.  This mailet is silently inserted at the top of the root
spool processor.  All recipients mapped to postmaster@&lt;servernames&gt; are
changed to the postmaster account as specified in the server conf.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SMIMECheckSignature.adoc
=====================================================
=== SMIMECheckSignature

Verifies the s/mime signature of a message. The s/mime signing ensure that
the private key owner is the real sender of the message. To be checked by
this mailet the s/mime signature must contain the actual signature, the
signer's certificate and optionally a set of certificate that can be used to
create a chain of trust that starts from the signer's certificate and leads
to a known trusted certificate.

This check is composed by two steps: firstly it's ensured that the signature
is valid, then it's checked if a chain of trust starting from the signer
certificate and that leads to a trusted certificate can be created. The first
check verifies that the message has not been modified after the signature
was put and that the signer's certificate was valid at the time of the
signing. The latter should ensure that the signer is who he declare to be.

The results of the checks perfomed by this mailet are wrote as a mail
attribute which default name is org.apache.james.SMIMECheckSignature (it can
be changed using the mailet parameter *mailAttribute*). After
the check this attribute will contain a list of SMIMESignerInfo object, one
for each message's signer. These objects contain the signer's certificate and
the trust path.

Optionally, specifying the parameter *strip*, the signature of
the message can be stripped after the check. The message will become a
standard message without an attached s/mime signature.

The configuration parameter of this mailet are summerized below. The firsts
defines the location, the format and the password of the keystore containing
the certificates that are considered trusted. Note: only the trusted certificate
entries are read, the key ones are not.


* keyStoreType (default: jks): Certificate store format . &quot;jks&quot; is the
standard java certificate store format, but pkcs12 is also quite common and
compatible with standard email clients like Outlook Express and Thunderbird.
* keyStoreFileName (default: JAVA_HOME/jre/lib/security/cacert): Certificate
store path.
* keyStorePassword (default: &quot;&quot;): Certificate store password.

Other parameters configure the behavior of the mailet:

* strip (default: false): Defines if the s/mime signature of the message
have to be stripped after the check or not. Possible values are true and
false.
* mailAttribute (default: org.apache.james.SMIMECheckSignature):
specifies in which attribute the check results will be written.
* onlyTrusted (default: true): Usually a message signature to be
considered by this mailet as authentic must be valid and trusted. Setting
this mailet parameter to &quot;false&quot; the last condition is relaxed and also

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RecoverAttachment.adoc
=====================================================
=== RecoverAttachment

This mailet takes an attachment stored in an attribute and attach it back to
the message

This may be used to place back attachment stripped by StripAttachment and
stored in the attribute
*org.apache.james.mailet.standard.mailets.StripAttachment.saved*

....
  &lt;mailet match=&quot;All&quot; class=&quot;RecoverAttachment&quot; &gt;
    &lt;attribute&gt;my.attribute.name&lt;/attribute&gt;
  &lt;/mailet &gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/StripAttachment.adoc
=====================================================
=== StripAttachment

Remove attachments from a Message. Supports simple removal, storing to file,
or storing to mail attributes.

Configuration:

....
&lt;mailet match=&amp;quot;All&amp;quot; class=&amp;quot;StripAttachment&amp;quot; &gt;
  &lt;pattern &gt;.*\.xls &lt;/pattern&gt;  &lt;!-- The regular expression that must be matched -- &gt;
  &lt;!-- notpattern &gt;.*\.xls &lt;/notpattern--&gt;  &lt;!-- The regular expression that must be matched -- &gt;
  &lt;mimeType&gt;text/calendar&lt;/mimeType&gt;  &lt;!-- The matching mimeType -- &gt;
  &lt;directory &gt;c:\temp\james_attach &lt;/directory&gt;   &lt;!-- The directory to save to -- &gt;
  &lt;remove &gt;all &lt;/remove&gt;   &lt;!-- either &amp;quot;no&amp;quot;, &amp;quot;matched&amp;quot;, &amp;quot;all&amp;quot; -- &gt;
  &lt;!-- attribute&gt;my.attribute.name&lt;/attribute --&gt;
&lt;/mailet &gt;
....

At least one of pattern, notpattern and mimeType is required.


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/DKIMSign.adoc
=====================================================
=== DKIMSign

This mailet sign a message using the DKIM protocol
If the privateKey is encoded using a password then you can pass
the password as privateKeyPassword parameter.

Sample configuration with inlined private key:

....
&lt;mailet match=&amp;quot;All&amp;quot; class=&amp;quot;DKIMSign&amp;quot;&gt;
  &lt;signatureTemplate&gt;v=1; s=selector; d=example.com; h=from:to:received:received; a=rsa-sha256; bh=; b=;&lt;/signatureTemplate&gt;
  &lt;privateKey&gt;
  -----BEGIN RSA PRIVATE KEY-----
  MIICXAIBAAKBgQDYDaYKXzwVYwqWbLhmuJ66aTAN8wmDR+rfHE8HfnkSOax0oIoT
  M5zquZrTLo30870YMfYzxwfB6j/Nz3QdwrUD/t0YMYJiUKyWJnCKfZXHJBJ+yfRH
  r7oW+UW3cVo9CG2bBfIxsInwYe175g9UjyntJpWueqdEIo1c2bhv9Mp66QIDAQAB
  AoGBAI8XcwnZi0Sq5N89wF+gFNhnREFo3rsJDaCY8iqHdA5DDlnr3abb/yhipw0I
  /1HlgC6fIG2oexXOXFWl+USgqRt1kTt9jXhVFExg8mNko2UelAwFtsl8CRjVcYQO
  cedeH/WM/mXjg2wUqqZenBmlKlD6vNb70jFJeVaDJ/7n7j8BAkEA9NkH2D4Zgj/I
  OAVYccZYH74+VgO0e7VkUjQk9wtJ2j6cGqJ6Pfj0roVIMUWzoBb8YfErR8l6JnVQ
  bfy83gJeiQJBAOHk3ow7JjAn8XuOyZx24KcTaYWKUkAQfRWYDFFOYQF4KV9xLSEt
  ycY0kjsdxGKDudWcsATllFzXDCQF6DTNIWECQEA52ePwTjKrVnLTfCLEG4OgHKvl
  Zud4amthwDyJWoMEH2ChNB2je1N4JLrABOE+hk+OuoKnKAKEjWd8f3Jg/rkCQHj8
  mQmogHqYWikgP/FSZl518jV48Tao3iXbqvU9Mo2T6yzYNCCqIoDLFWseNVnCTZ0Q
  b+IfiEf1UeZVV5o4J+ECQDatNnS3V9qYUKjj/krNRD/U0+7eh8S2ylLqD3RlSn9K
  tYGRMgAtUXtiOEizBH6bd/orzI9V9sw8yBz+ZqIH25Q=
  -----END RSA PRIVATE KEY-----
  &lt;/privateKey&gt;
&lt;/mailet&gt;
....

Sample configuration with file-provided private key:

....
&lt;mailet match=&amp;quot;All&amp;quot; class=&amp;quot;DKIMSign&amp;quot;&gt;
  &lt;signatureTemplate&gt;v=1; s=selector; d=example.com; h=from:to:received:received; a=rsa-sha256; bh=; b=;&lt;/signatureTemplate&gt;
  &lt;privateKeyFilepath&gt;dkim-signing.pem&lt;/privateKeyFilepath&gt;
&lt;/mailet&gt;
....

By default the mailet assume that Javamail will convert LF to CRLF when sending
so will compute the hash using converted newlines. If you don't want this
behaviour then set forceCRLF attribute to false.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/TooManyRecipients.adoc
=====================================================
=== TooManyRecipients

This matcher matches emails that have too many recipients.

The example below will reject any email with more than 5 recipients

....
&lt;mailet match=&quot;TooManyRecipients=5&quot; class=&quot;&lt;any-class&amp;gt;&quot;&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RemoveAllMailAttributes.adoc
=====================================================
=== RemoveAllMailAttributes

This mailet sets removes all attributes set on the Mail instance

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;RemoveAllMailAttributes&quot;/&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ICALToHeader.adoc
=====================================================
=== ICALToHeader

ICALToHeader takes a Map of filenames to ICAL4J calendars, will pick the first Calendar,
and add it to the headers of the e-mail.

The following headers will be added : X_MEETING_UID, X_MEETING_METHOD, X_MEETING_RECURRENCE_ID, X_MEETING_SEQUENCE,
X_MEETING_DTSTAMP

The only configuration parameter for this mailet is the attribute the ICAL4J Calendar map should be attached to,
named *attribute*.

Configuration example :

....
&lt;mailet match=??? class=ICALToHeader&gt;
    &lt;attribute&gt;icalendars&lt;/attribute&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasMimeTypeAnySubPart.adoc
=====================================================
=== HasMimeTypeAnySubPart

This matcher checks if the content type matches.

This matcher walks down the mime tree and will look up at all the mime parts of this message.

use:

....
&lt;mailet match=&quot;HasMimeTypeAnySubPart=text/plain,text/html&quot; class=&quot;...&quot; /&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/AttachmentFileNameIs.adoc
=====================================================
=== AttachmentFileNameIs

Checks if at least one attachment has a file name which matches any
element of a comma-separated or space-separated list of file name masks.

Syntax: *match=&quot;AttachmentFileNameIs=[-d] [-z] masks&quot;*

The match is case insensitive.

File name masks may start with a wildcard '\*'.

Multiple file name masks can be specified, e.g.: '\*.scr,\*.bat'.

If '*-d*' is coded, some debug info will be logged.

If '*-z*' is coded, the check will be non-recursively applied
to the contents of any attached '*.zip' file.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/MimeDecodingMailet.adoc
=====================================================
=== MailAttributesToMimeHeaders

This mailet replace the mail attribute map of key to MimePart
by a map of key to the MimePart content (as bytes).

It takes only one parameter:

* attribute (mandatory): mime content to be decoded, expected to be a Map&lt;String, byte[]&gt;

Then all this map attribute values will be replaced by their content.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/IsX509CertificateSubject.adoc
=====================================================
=== IsX509CertificateSubject

Checks if the subject of a X509Certificate contains the supplied string. The
certificate is read from the specified mail attribute.

If the specified attribute contains more than one certificate the matcher matches if at
least one of the certificates contains the given string.

Configuration string:

* mailAttribute;string

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/Bounce.adoc
=====================================================
=== Bounce

Generates a response to the reverse-path address. Note that this is different
than a mail-client's reply, which would use the Reply-To or From header.

Bounced messages are attached in their entirety (headers and content) and the
resulting MIME part type is &quot;message/rfc822&quot;.

The reverse-path and the Return-Path header of the response is set to &quot;null&quot;
(&quot;&lt;&gt;&quot;), meaning that no reply should be sent.

A sender of the notification message can optionally be specified. If one is
not specified, the postmaster's address will be used.

A notice text can be specified, and in such case will be inserted into the
notification inline text.

If the notified message has an &quot;error message&quot; set, it will be inserted into
the notification inline text. If the *attachError* init
parameter is set to true, such error message will be attached to the
notification message.

Supports the *passThrough* init parameter (true if missing).


Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;Bounce&quot;&gt;
  &lt;sender&gt;*an address or postmaster or sender or unaltered, default=postmaster*&lt;/sender&gt;
  &lt;attachError&gt;*true or false, default=false*&lt;/attachError&gt;
  &lt;message&gt;*notice attached to the original message text (optional)*&lt;/message&gt;
  &lt;prefix&gt;*optional subject prefix prepended to the original message*&lt;/prefix&gt;
  &lt;inline&gt;*default=none*&lt;/inline&gt;
  &lt;attachment&gt;*default=message*&lt;/attachment&gt;
  &lt;passThrough&gt;*true or false, default=true*&lt;/passThrough&gt;
  &lt;fakeDomainCheck&gt;*true or false, default=true*&lt;/fakeDomainCheck&gt;
  &lt;debug&gt;*true or false, default=false*&lt;/debug&gt;
&lt;/mailet&gt;
....

The behaviour of this mailet is equivalent to using Resend with the following
configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;Resend&quot;&gt;
  &lt;sender&gt;*an address or postmaster or sender or unaltered*&lt;/sender&gt;
  &lt;attachError&gt;*true or false*&lt;/attachError&gt;
  &lt;message&gt;**dynamically built**&lt;/message&gt;
  &lt;prefix&gt;*a string*&lt;/prefix&gt;

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/WrapText.adoc
=====================================================
=== WrapText

Convert a message to format=flowed



=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/DKIMVerify.adoc
=====================================================
=== DKIMVerify

This mailet verify a message using the DKIM protocol

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;DKIMVerify&quot;&gt;
&lt;/mailet&gt;
....

By default the mailet assume that Javamail will use LF instead of CRLF
so it will verify the hash using converted newlines. If you don't want this
behaviour then set forceCRLF attribute to false.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/IsSenderInRRTLoop.adoc
=====================================================
=== IsSenderInRRTLoop

This matcher allow you to know if the sender of an email is part of a RRT loop.

This is useful when bouncing upon RRT execution issues: we don't want to create a bouncing loop
(as the execution of that RRT loop will fail).

Example:

....
&lt;mailet match=&quot;IsSenderInRRTLoop&quot; class=&quot;&lt;any-class&gt;&quot;/&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SetMimeHeader.adoc
=====================================================
=== SetMailAttribute

Adds a specified header and value to the message.

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;AddHeader&quot;&gt;
  &lt;name&gt;X-MailetHeader&lt;/name&gt;
  &lt;value&gt;TheHeaderValue&lt;/value&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/Redirect.adoc
=====================================================
=== Redirect

A mailet providing configurable redirection services.

Can produce listserver, forward and notify behaviour, with the original
message intact, attached, appended or left out altogether.

It differs from Resend because (i) some defaults are different,
notably for the following parameters: *&lt;recipients&gt;*,
*&lt;to&gt;*, *&lt;reversePath&gt;* and *&lt;inline&gt;*; (ii)
because it allows the use of the *&lt;static&gt;* parameter;.

Use &lt;code&gt;Resend&lt;/code&gt; if you need full control, &lt;code&gt;Redirect&lt;/code&gt; if
the more automatic behaviour of some parameters is appropriate.

This built in functionality is controlled by the configuration as laid out
below. In the table please note that the parameters controlling message
headers accept the &lt;b&gt;&quot;unaltered&quot;&lt;/b&gt; value, whose meaning is to
keep the associated header unchanged and, unless stated differently,
corresponds to the assumed default if the parameter is missing.

The configuration parameters are:


.Redirect parameters
|===
| Property name | explanation

| recipients
| A comma delimited list of addresses for recipients of this message; it will
use the &quot;to&quot; list if not specified, and &quot;unaltered&quot; if
none of the lists is specified.

These addresses will only appear in the To: header if no &quot;to&quot; list
is supplied.

Such addresses can contain &quot;full names&quot;, like *Mr. John D. Smith
&lt;john.smith@xyz.com&gt;*.

The list can include constants &quot;sender&quot;, &quot;from&quot;,
&quot;replyTo&quot;, &quot;postmaster&quot;, &quot;reversePath&quot;,
&quot;recipients&quot;, &quot;to&quot;, &quot;null&quot; and
&quot;unaltered&quot;; &quot;replyTo&quot; uses the ReplyTo header if
available, otherwise the From header if available, otherwise the Sender
header if available, otherwise the return-path; &quot;from&quot; is made
equivalent to &quot;sender&quot;, and &quot;to&quot; is made equivalent to
&quot;recipients&quot;; &quot;null&quot; is ignored.

| to
| A comma delimited list of addresses to appear in the To: header; the email

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RelayLimit.adoc
=====================================================
=== RelayLimit

Matches mail which has been relayed more than a given number of times.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ICALToJsonAttribute.adoc
=====================================================
=== ICALToJsonAttribute

ICALToJsonAttribute takes a map of ICAL4J objects attached as attribute, and
output the map of corresponding json bytes as an other attribute, with unique String keys.

The JSON contains the following fields :

* *ical* : the raw ical string, in UTF-8
* *sender* : the sender of the mail (compulsory, mail without sender will be discarded)
* *recipient* : the recipient of the mail. If the mail have several recipients, each recipient will have its own JSON.
* *uid* : the UID of the ical (optional)
* *sequence* : the sequence of the ical (optional)
* *dtstamp* : the date stamp of the ical (optional)
* *method* : the method of the ical (optional)
* *recurrence-id* : the recurrence-id of the ical (optional)

Example are included in test call ICalToJsonAttributeTest.

Configuration example :

....
&lt;mailet match=??? class=ICALToJsonAttribute&gt;
    &lt;sourceAttribute&gt;icalendars&lt;/sourceAttribute&gt;
    &lt;destinationAttribute&gt;icalendarJson&lt;/destinationAttribute&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SenderIs.adoc
=====================================================
=== SenderIs

This matcher matches a specific sender, passed as a condition to this matcher.

The example below will match mail with a sender being user@domain

....
&lt;mailet match=&quot;SenderIs=user@domain&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/TooManyLines.adoc
=====================================================
=== TooManyLines

This matcher matches emails that have too many lines. This allows better rejection of emails when, for instance, MIME4J
is configured with a limited number of lines.

&lt;p&gt;The example below will match mail with more than 10000 lines&lt;/p&gt;

....
&lt;mailet match=&quot;TooManyLines=10000&quot; class=&quot;&lt;any-class&gt;&quot;/&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/IsSingleRecipient.adoc
=====================================================
=== IsSingleRecipient

Matches mail where the number of recipients is exactly one.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ToRepository.adoc
=====================================================
=== ToRepository

Stores incoming Mail in the specified Repository.

If the &quot;passThrough&quot; in conf is true the mail will be returned untouched in
the pipe and may be processed by additional mailets. If false will be destroyed.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SenderInFakeDomain.adoc
=====================================================
=== SenderInFakeDomain

Does a DNS lookup (MX and A/CNAME records) on the sender's domain. If there
are no entries, the domain is considered fake and the match is successful.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/Null.adoc
=====================================================
=== Null

Simplest Mailet which destroys any incoming messages by setting their state to GHOST.

This effectively stops all processing of this mail.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/IsRemoteDeliveryPermanentError.adoc
=====================================================
=== IsRemoteDeliveryPermanentError

Checks if the mail has a permanent remote delivery failure attribute

Example:

....
&lt;mailet match=&quot;IsRemoteDeliveryPermanentError&quot; class=&quot;&lt;any-class&gt;&quot;/&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RemoteDelivery.adoc
=====================================================
=== RemoteDelivery

The RemoteDelivery mailet delivers messages to a remote SMTP server able to deliver or forward messages to their final
destination.

The remote SMTP server through which each mail is delivered is resolved using MX lookup for each message destination
unless the *&lt;gateway/&gt;* parameter is set. The *&lt;gateway/&gt;* parameter enables the
definition of one or more gateway servers through which all messages are sent.

If an attempt to deliver a message fails, a redelivery attempt is scheduled according to the scheme defined
by the *&lt;delayTime/&gt;* parameter, retrying up to the limit defined
by the *&lt;maxRetries/&gt;* parameter. When the retry limit is exceeded, delivery failure is processed
according to the setting of the *&lt;bounceProcessor/&gt;* parameter.

These are the parameters that control the operation of the RemoteDelivery mailet:

* *outgoing* (required) - a String containing the name of the queue that will hold messages being processed by this mailet.
* *bind* (optional) - a String describing the local IP address to which the mailet should be bound while delivering
emails. This tag is useful for multihomed machines. Default is to bind to the default local address of the machine.&lt;br&gt;
Note: The same IP address must be used for all of those RemoteDelivery instances where you explicitly supply a bind address.
* *delayTime* (optional) a String containing a comma separated list of patterns defining the number of and delays between delivery
attempts. The pattern is *[attempts\*]delay [unit]* where:

** *attempts* (optional) - an Integer for the number of delivery attempts. Default is 1.
** *delay* (required) - a Long for the delay between attempts.
** *unit* (optional) - a String with the value of one of 'msec', 'sec', 'minute', 'hour', or 'day'. Default is msec.

Default is one attempt after 6 hours, which if explicitly declared would be written as *&lt;delayTime&gt;1 6 hour&lt;/delayTime&gt;*

* *maxRetries* (optional) an Integer for the number of times an attempt is made to deliver a particular mail.
Default is the greater of five and the sum of the attempts for each *&lt;delayTime/&gt;* specified.
* *maxDnsProblemRetries* (optional) - an Integer for the number of times to retry if DNS problems for a domain occur.
Default is 0.
* *timeout* (optional) - an Integer for the Socket I/O timeout in milliseconds. Default is 180000
* *connectionTimeout* (optional) - an Integer for the Socket connection timeout in milliseconds. Default is 60000
* *bounceProcessor* (optional) - a String containing the name of the mailet processor to pass messages that cannot
be delivered to for DSN bounce processing. Default is to send a traditional message containing the bounce details.
* *onSuccess* (optional) - if specified, this processor is called for each email successfully sent to remote third parties.

When using bounceProcessor or onSuccess processors, take special care of error handling (see onMailetException and onMatcherException)
 to avoid confusing situations. Also remember that on partial delivery, both processors will be used: *onSuccess* with successfull recipients,
 and *bounceProcessor* with failed recipients.

* *startTLS* (optional) - a Boolean (true/false) indicating whether the STARTTLS command (if supported by the server)
to switch the connection to a TLS-protected connection before issuing any login commands. Default is false.
* *sslEnable* (optional) - a Boolean (true/false) indicating whether to use SSL to connect and use the SSL port unless
explicitly overridden. Default is false. Setting up to true will result in delivery attempts in SMTPS on port 465 with a fallback
to SMTP on port 25. The trust-store if needed can be customized by *-Djavax.net.ssl.trustStore=/root/conf/keystore*.
* *verifyServerIdentity* (optional) - a Boolean (true/false) indicating whether to match the remote server name against its certificate on TLS connections. Default is true. Disabling this runs the risk of someone spoofing a legitimate server and intercepting mails, but may be necessary to contact servers that have strange certificates, no DNS entries, are reachable by IP address only, and similar edge cases.
* *gateway* (optional) - a String containing a comma separated list of patterns defining the gateway servers to be used to

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ServerTime.adoc
=====================================================
=== ServerTime

Returns the current time for the mail server.

Sample configuration:

....
&lt;mailet match=&quot;RecipientIs=time@cadenza.lokitech.com&quot; class=&quot;ServerTime&quot;/&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/AddSubjectPrefix.adoc
=====================================================
=== AddSubjectPrefix

Add an prefix (tag) to the subject of a message &lt;br&gt;

Sample Configuration:

....
&lt;mailet match=&quot;RecipientIs=robot@james.apache.org&quot; class=&quot;TagMessage&quot;&gt;
  &lt;subjectPrefix&gt;[robot]&lt;/subjectPrefix&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RemoveMailAttribute.adoc
=====================================================
=== RemoveMailAttribute

This mailet sets attributes on the Mail.

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;RemoveMailAttribute&quot;&gt;
  &lt;name&gt;attribute_name1&lt;/name&gt;
  &lt;name&gt;attribute_name2&lt;/name&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/Resend.adoc
=====================================================
=== Resend
A mailet providing configurable redirection services.

Can produce listserver, forward and notify behaviour, with the original
message intact, attached, appended or left out altogether. Can be used as a
replacement to {@link Redirect}, having more consistent defaults, and new
options available.

Use &lt;code&gt;Resend&lt;/code&gt; if you need full control, &lt;code&gt;Redirect&lt;/code&gt; if
the more automatic behaviour of some parameters is appropriate.

This built in functionality is controlled by the configuration as laid out
below. In the table please note that the parameters controlling message
headers accept the &lt;b&gt;&quot;unaltered&quot;&lt;/b&gt; value, whose meaning is to
keep the associated header unchanged and, unless stated differently,
corresponds to the assumed default if the parameter is missing.

The configuration parameters are:

.Resend properties
|===
| Property name | explanation

| recipients
| A comma delimited list of addresses for recipients of this message.

Such addresses can contain &quot;full names&quot;, like *Mr. John D. Smith
&lt;john.smith@xyz.com&gt;*.

The list can include constants &quot;sender&quot;, &quot;from&quot;,
&quot;replyTo&quot;, &quot;postmaster&quot;, &quot;reversePath&quot;,
&quot;recipients&quot;, &quot;to&quot;, &quot;null&quot; and
&quot;unaltered&quot;; &quot;replyTo&quot; uses the ReplyTo header if
available, otherwise the From header if available, otherwise the Sender
header if available, otherwise the return-path; &quot;from&quot; is made
equivalent to &quot;sender&quot;, and &quot;to&quot; is made equivalent to
&quot;recipients&quot;; &quot;null&quot; is ignored. Default:
&quot;unaltered&quot;.

| to
| A comma delimited list of addresses to appear in the To: header.

Such addresses can contain &quot;full names&quot;, like *Mr. John D. Smith
&lt;john.smith@xyz.com&gt;*.

The list can include constants &quot;sender&quot;, &quot;from&quot;,
&quot;replyTo&quot;, &quot;postmaster&quot;, &quot;reversePath&quot;,
&quot;recipients&quot;, &quot;to&quot;, &quot;null&quot; and
&quot;unaltered&quot;; &quot;from&quot; uses the From header if available,
otherwise the Sender header if available, otherwise the return-path;

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasException.adoc
=====================================================
=== HasException

This Matcher determines if the exception specified in the condition or
the subclasses of it has occurred during the processing of the mail.
If true, all recipients are returned, else null. This matcher presupposes
that the exception has been captured as a Mail attribute
org.apache.mailet.Mail#MAILET_ERROR_ATTRIBUTE_NAME in the process.

Sample configuration:

....
&lt;mailet match=&quot;HasException=org.apache.james.managesieve.api.ManageSieveException&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasHabeasWarrantMark.adoc
=====================================================
=== HasHabeasWarrantMark

This matcher tests for the Hebeas Warrant Mark.
For details see: http://www.hebeas.com

Usage: Place this matcher

....
&lt;mailet match=&quot;HasHabeasWarrantMark&quot; class=&quot;ToProcessor&quot;&gt;
    &lt;processor&gt; transport &lt;/processor&gt;
&lt;/mailet&gt;
....

in the root processes before the DNSRBL block lists (the InSpammerBlacklist matcher).

Because the Habeas Warrant Mark is copyright material, I have asked for and
received the following explicit statement from Habeas:

....
-----------------------------------
From: Lindsey Pettit [mailto:support@habeas.com]
Sent: Sunday, September 29, 2002 5:51
To: Noel J. Bergman
Subject: RE: Habeas and Apache James

Dear Noel,

&gt; I guess that since your Warrant Mark is copyright, I should ask for
&gt; something from you to explicitly authorize that Hebeas will permit
&gt; this code to be included and distributed as part of Apache James
&gt; under the Apache Software License.  As we have established, the use
&gt; of the Habeas Warrant Mark for filtering is not restricted, but I
&gt; would like something to confirm that, so that Apache will be happy.

I can hereby confirm to you that there is no license necessary in
order to use the Habeas mark for filtering.  That said, however, we
do insist that it not ever be used as a basis for rejecting email which
bears the Habeas mark.
-----------------------------------
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/UnwrapText.adoc
=====================================================
=== UnwrapText

Remove (best effort to) the hardcoded wrapping from a message.

If the text is  &quot;format=flowed&quot; then deflows the text. Otherwise it forces a dewrap of the text.


Parameters:

* quotewidth - when we try to dewrap e quoted text it helps knowing the original
with, so we can reconstruct &quot;wrapped wraps&quot; created by multiple wrappings by clients with
different original width or simply to the add of the heading &quot;&gt;&quot; that increase the line
length.

The value should be &quot;WIDTH+X&quot; if the original length is known, &quot;-X&quot; otherwise.

In the latter case the length of the longer line will be used.

X is the tollerance needed for the quoting chars: if the original width is known the suggested
value for X is 2 (because of &quot;&gt; &quot; prefix), otherwise it is suggested to increase it to a value
like 10 (-10)

In summary, if the original wrap is known (for example 76, for flowed messages) *quotewidth = 78*

Otherwise *quotewidth = -10*



=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ToSenderDomainRepository.adoc
=====================================================
=== ToSenderDomainRepository

Stores incoming Mail in a repository defined by the sender's domain.&lt;br&gt;

Supported configuration parameters:

* &quot;urlPrefix&quot; mandatory: defines the prefix for the per sender's domain repository. For example for the value
'cassandra://var/mail/sendersRepositories/', a mail sent by 'user@james.org' will be stored
in 'cassandra://var/mail/sendersRepositories/james.org'.
* &quot;passThrough&quot; optional, defaults to false. If true, the processing of the mail continues. If false it stops.
* &quot;allowRepositoryCreation&quot; optional, defaults to true. If true, non existing repository will be created. In case of
misconfiguration, this might lead to arbitrary repository creation. If false, the incoming mails will be stored only
 in already existing repository. If not existing, the email will be dropped with an appropriate log warning (leading
 to potential data loss). In case, you want to create a repository manually, make a http PUT request to
 /mailRepositories/encodedUrlOfTheRepository from web admin api.
  For example http://ip:port/mailRepositories/file%3A%2F%2FmailRepo

Example:

....
&lt;mailet match=&quot;All&quot; class=&quot;ToSenderDomainRepository&quot;&gt;
    &lt;urlPrefix&gt;cassandra://var/mail/sendersRepositories/&lt;/urlPrefix&gt;
    &lt;passThrough&gt;false&lt;/passThrough&gt;
    &lt;allowRepositoryCreation&gt;true&lt;/allowRepositoryCreation&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/VacationMailet.adoc
=====================================================
=== VacationMailet

This mailet uses https://jmap.io/spec-mail.html#vacation-response[JMAP VacationResponse] and
sends back a vacation notice to the sender if needed.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasAttachment.adoc
=====================================================
=== HasAttachment

Checks whether this message has an attachment

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/All.adoc
=====================================================
=== All

Matches all mail.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/CommandListservMatcher.adoc
=====================================================
=== CommandListservMatcher

CommandListservMatcher is the matcher that pairs with the CommandListservManager
It checks to see if the request is intended for the ListservManager, but doesn't guarantee that it is a valid command.

To configure, insert this into the config.xml inside of the root processor block.

....
&lt;mailet match=&quot;CommandListservMatcher=announce@localhost&quot; class=&quot;CommandListservManager&quot;&gt;
...
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/Sieve.adoc
=====================================================
=== Sieve

Execute Sieve scripts for incoming emails, and set the result of the execution as attributes of the mail

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ToProcessor.adoc
=====================================================
=== ToProcessor

This mailet redirects the mail to the named processor

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;ToProcessor&quot;&gt;
  &lt;processor&gt;spam&lt;/processor&gt;
  &lt;notice&gt;Notice attached to the message (optional)&lt;/notice&gt;
&lt;/mailet&gt;
....


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/MailAttributesListToMimeHeaders.adoc
=====================================================
=== MailAttributesListToMimeHeaders

Convert attributes of type Collection&lt;String&gt; to headers

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;MailAttributesToMimeHeaders&quot;&gt;
  &lt;simplemapping&gt;org.apache.james.attribute1;headerName1&lt;/simplemapping&gt;
  &lt;simplemapping&gt;org.apache.james.attribute2;headerName2&lt;/simplemapping&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/FetchedFrom.adoc
=====================================================
=== FetchedFrom

Matches mail with a header set by Fetchpop X-fetched-from

fetchpop sets X-fetched-by to the &quot;name&quot; of the fetchpop fetch task.

This is used to match all mail fetched from a specific pop account.

Once the condition is met the header is stripped from the message to prevent looping if
the mail is re-inserted into the spool.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HostIsLocal.adoc
=====================================================
=== HostIsLocal

Matches mail to Domains which are local

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SetMailAttribute.adoc
=====================================================
=== SetMailAttribute

This mailet sets attributes on the Mail.

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;SetMailAttribute&quot;&gt;
  &lt;name1&gt;value1&lt;/name1&gt;
  &lt;name2&gt;value2&lt;/name2&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasMimeTypeParameter.adoc
=====================================================
=== HasMimeTypeParameter

This matcher checks if the content type parameters matches.

use:

....
&lt;mailet match=&quot;HasMimeTypeParameter=report-type=disposition-notification,report-type=other&quot; class=&quot;...&quot; /&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RemoteAddrNotInNetwork.adoc
=====================================================
=== RemoteAddrInNetwork

Checks the IP address of the sending server against a comma-delimited list
of IP addresses, domain names or sub-nets.

See AbstractNetworkMatcher for details on how to specify entries.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/AtLeastPriority.adoc
=====================================================
=== AtLeastPriority

Numeric value. The priority of this mail should be at least the specified value to be matched.

Inclusive.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ContactExtractor.adoc
=====================================================
=== ContactExtractor

Collects the sender and the recipients of a message and store them as JSON in a
specified message attribute.

Here is the JSON format:

....
{
  &quot;userEmail&quot; : &quot;sender@james.org&quot;,
  &quot;emails&quot; : [ &quot;to@james.org&quot;, &quot;cc@james.org&quot; ]
}
....

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;ContactExtractor&quot;&gt;
  &lt;attribute&gt;ExtractedContacts&lt;/attribute&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/Sign.adoc
=====================================================
=== Sign

Puts a *server-side* SMIME signature on a message.

It is a concrete subclass of Sign, with very few modifications to it,
to specialize for SMIME.

Handles the following init parameters:

* &lt;keyHolderClass&gt;: Sets the class of the KeyHolder object that will handle the cryptography functions,
 for example org.apache.james.security.SMIMEKeyHolder for SMIME.
* &lt;debug&gt;: if *true* some useful information is logged.
 The default is *false*.
* &lt;keyStoreFileName&gt;: the {@link java.security.KeyStore} full file name.
* &lt;keyStorePassword&gt;: the *KeyStore* password.
If given, it is used to check the integrity of the keystore data,
otherwise, if null, the integrity of the keystore is not checked.
* &lt;keyAlias&gt;: the alias name to use to search the Key using {@link java.security.KeyStore#getKey}.
 The default is to look for the first and only alias in the keystore;
 if zero or more than one is found a {@link java.security.KeyStoreException} is thrown.
* &lt;keyAliasPassword&gt;: the alias password. The default is to use the *KeyStore* password.
 At least one of the passwords must be provided.
* &lt;keyStoreType&gt;: the type of the keystore. The default will use {@link java.security.KeyStore#getDefaultType}.
* &lt;postmasterSigns&gt;: if *true* the message will be signed even if the sender is the Postmaster. The default is *true*.
* &lt;rebuildFrom&gt;: If *true* will modify the &quot;From:&quot; header. The default is *true*.
* &lt;signerName&gt;: the name of the signer to be shown in the explanation text. The default is to use the &quot;CN=&quot;
property of the signing certificate.
* &lt;explanationText&gt;. There is a default explanation string template in English, displaying
also all the headers of the original message.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasMailAttributeWithValue.adoc
=====================================================
=== HasMailAttributeWithValue

This Matcher determines if the mail contains the attribute specified in
the condition and if the value answered when the method toString() is
invoked on the attribute is equal to the String value specified in the
condition. If both tests are true, all recipients are returned, else null.

Notes:

The current matcher implementation expects a single String value to match
on. This matcher requires two values, the attribute name and attribute
value. This requires some implicit rules to govern how the single value
supplied to the matcher is parsed into two values.

* In the match condition, the split between the attribute name and the
attribute value is made at the first comma. Attribute names that include
a comma will parse incorrectly and therefore are not supported by this
matcher.
* Leading and trailing spaces are removed from both the attribute name and
attribute value specified in the condition and the tested attribute value in
the mail prior to matching. Therefore, &quot;abc&quot; , &quot; abc&quot;, &quot;abc &quot; and &quot; abc &quot;
are considered equivalent.
* To test for an empty string, do not specify an attribute value after the
comma.

Sample configuration:

....
&lt;mailet match=&quot;HasMailAttributeWithValue=name, value&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/DSNBounce.adoc
=====================================================
=== DSNBounce

Generates a Delivery Status Notification (DSN) Note that this is different
than a mail-client's reply, which would use the Reply-To or From header.

Bounced messages are attached in their entirety (headers and content) and the
resulting MIME part type is &quot;message/rfc822&quot;.

The reverse-path and the Return-Path header of the response is set to &quot;null&quot;
(&quot;&lt;&gt;&quot;), meaning that no reply should be sent.

A sender of the notification message can optionally be specified. If one is
not specified, the postmaster's address will be used.

Supports the &lt;code&gt;passThrough&lt;/code&gt; init parameter (true if missing).

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;DSNBounce&quot;&gt;
  &lt;sender&gt;*an address or postmaster or sender or unaltered, default=postmaster*&lt;/sender&gt;
  &lt;prefix&gt;*optional subject prefix prepended to the original message*&lt;/prefix&gt;
  &lt;attachment&gt;*message, heads or none, default=message*&lt;/attachment&gt;
  &lt;messageString&gt;*the message sent in the bounce, the first occurrence of the pattern [machine] is replaced with the name of the executing machine, default=Hi. This is the James mail server at [machine] ... *&lt;/messageString&gt;
  &lt;passThrough&gt;*true or false, default=true*&lt;/passThrough&gt;
  &lt;debug&gt;*true or false, default=false*&lt;/debug&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RemoteDeliveryFailedWithSMTPCode.adoc
=====================================================
=== RemoteDeliveryFailedWithSMTPCode

Checks the SMTP error code attached to remote delivery failures

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasMailAttribute.adoc
=====================================================
=== HasMailAttribute

This Matcher determines if the mail contains the attribute specified in the
condition, and returns all recipients if it is the case.

Sample configuration:

....
&lt;mailet match=&quot;HasMailAttribute=whatever&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ToSenderFolder.adoc
=====================================================
=== ToSenderFolder

 Receives a Mail from the Queue and takes care to deliver the message
  to a defined folder of the sender.

You have to define the folder name of the sender.

The flag 'consume' will tell is the mail will be further

processed by the upcoming processor mailets, or not.

....
&lt;mailet match=&quot;RecipientIsLocal&quot; class=&quot;ToSenderFolder&quot;&gt;
  &lt;folder&gt; *Sent Items* &lt;/folder&gt;
  &lt;consume&gt; *false* &lt;/consume&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SenderHostIsLocal.adoc
=====================================================
=== SenderHostIsLocal

Checks the sender's displayed domain name against a the hosts serviced by
this mail context.

Sample Configuration:

....
&lt;mailet match=&quot;SenderHostIsLocal&quot; class=&quot;SpamAssassin&quot;&gt; &lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/CompareNumericHeaderValue.adoc
=====================================================
=== CompareNumericHeaderValue

Matches mails containing a header with a numeric value whose comparison with the specified value is true.

If the header is missing in the message, there will be *no match*

Configuration string: The headerName, a comparison operator and the numeric headerValue
to compare with, *space or tab delimited*.

The comparison operators are: *&lt;, &lt;=, ==, &gt;=, &gt;*;
another set of operators is: *LT, LE, EQ, GE, GT*.

Also the following operators are accepted: *=&lt;, =, =&gt;*.

Example:

....
&lt;mailet match=&quot;CompareNumericHeaderValue=X-MessageIsSpamProbability &gt; 0.9&quot; class=&quot;ToProcessor&quot;&gt;
    &lt;processor&gt; spam &lt;/processor&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RecipientIsRegex.adoc
=====================================================
=== RecipientIsRegex

Matches recipients whose address matches a regular expression.

Is equivalent to the SenderIsRegex matcher but matching on the recipient.

Configuration string: a regular expression.

....
&lt;mailet match=&quot;RecipientIsRegex=&lt;regular-expression&gt;&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
....

The example below will match any recipient in the format user@log.anything

....
&lt;mailet match=&quot;RecipientIsRegex=(.*)@log\.(.*)&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/NotifySender.adoc
=====================================================
=== NotifySender

Sends a notification message to the sender of a message.

A sender of the notification message can optionally be specified. If one is
not specified, the postmaster's address will be used.

The &quot;To:&quot; header of the notification message can be set to &quot;unaltered&quot;; if
missing will be set to the sender of the notified message.

A notice text can be specified, and in such case will be inserted into the
notification inline text.

If the notified message has an &quot;error message&quot; set, it will be inserted into
the notification inline text. If the *attachError* init
parameter is set to true, such error message will be attached to the
notification message.

The notified messages are attached in their entirety (headers and content)
and the resulting MIME part type is &quot;message/rfc822&quot;.

Supports the *passThrough* init parameter (true if missing).

Sample configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;NotifySender&quot;&gt;
  &lt;sender&gt;*an address or postmaster or sender or unaltered, default=postmaster*&lt;/sender&gt;
  &lt;attachError&gt;*true or false, default=false*&lt;/attachError&gt;
  &lt;prefix&gt;*optional subject prefix prepended to the original message*&lt;/prefix&gt;
  &lt;inline&gt;default=none*&lt;/inline&gt;
  &lt;attachment&gt;default=message*&lt;/attachment&gt;
  &lt;passThrough&gt;*true or false, default=true*&lt;/passThrough&gt;
  &lt;fakeDomainCheck&gt;*true or false, default=true*&lt;/fakeDomainCheck&gt;
  &lt;to&gt;*unaltered or sender or from(optional, defaults to sender)*&lt;/to&gt;
  &lt;debug&gt;*true or false, default=false*&lt;/debug&gt;
&lt;/mailet&gt;
....

The behaviour of this mailet is equivalent to using Resend with the following
configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;Resend&quot;&gt;
  &lt;sender&gt;*an address or postmaster or sender or unaltered*&lt;/sender&gt;
  &lt;attachError&gt;*true or false*&lt;/attachError&gt;
  &lt;message&gt;*&lt;b&gt;dynamically built&lt;/b&gt;*&lt;/message&gt;
  &lt;prefix&gt;*a string*&lt;/prefix&gt;
  &lt;passThrough&gt;true&lt;/passThrough&gt;
  &lt;fakeDomainCheck&gt;*true or false*&lt;/fakeDomainCheck&gt;

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SMIMESign.adoc
=====================================================
=== SMIMESign

Puts a *server-side* signature on a message.

It is a concrete subclass of AbstractSign, with very few modifications to it.

A text file with an explanation text is attached to the original message,
and the resulting message with all its attachments is signed.

* The resulting appearance of the message is almost unchanged: only an extra attachment
* and the signature are added.

The kind of signature depends on the value of the &lt;keyHolderClass&gt; init parameter.

Handles the following init parameters:

* &lt;keyHolderClass&gt;: Sets the class of the KeyHolder object that will handle the cryptography functions,
for example org.apache.james.security.SMIMEKeyHolder for SMIME.
* &lt;debug&gt;: if *true* some useful information is logged.
The default is *false*.
* &lt;keyStoreFileName&gt;: the {@link java.security.KeyStore} full file name.
* &lt;keyStorePassword&gt;: the *KeyStore* password.
If given, it is used to check the integrity of the keystore data,
otherwise, if null, the integrity of the keystore is not checked.
* &lt;keyAlias&gt;: the alias name to use to search the Key using {@link java.security.KeyStore#getKey}.
The default is to look for the first and only alias in the keystore;
if zero or more than one is found a {@link java.security.KeyStoreException} is thrown.
* &lt;keyAliasPassword&gt;: the alias password. The default is to use the *KeyStore* password.
At least one of the passwords must be provided.
* &lt;keyStoreType&gt;: the type of the keystore. The default will use {@link java.security.KeyStore#getDefaultType}.
* &lt;postmasterSigns&gt;: if *true* the message will be signed even if the sender is the Postmaster. The default is *true*.
* &lt;rebuildFrom&gt;: If *true* will modify the &quot;From:&quot; header. The default is *true*.
* &lt;signerName&gt;: the name of the signer to be shown in the explanation text. The default is to use the &quot;CN=&quot;
property of the signing certificate.
* &lt;explanationText&gt;. There is a default explanation string template in English, displaying
also all the headers of the original message.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SubjectStartsWith.adoc
=====================================================
=== SubjectIs

Matches mail where the subject starts with a given phrase.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SenderDomainIs.adoc
=====================================================
=== SenderDomainIs

SenderDomainIs will look at the envelope sender's domain. If equal to
configured value, then all recipients will be returned. Otherwise an empty
list will be returned.

Sample configuration:

....
&lt;mailet match=&quot;SenderDomainIs=&lt;domain.com&gt;&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/IsRemoteDeliveryTemporaryError.adoc
=====================================================
=== IsRemoteDeliveryPermanentError

Checks if the mail has a temporary remote delivery failure attribute set to false (meaning it's a temporary error)

Example:

....
&lt;mailet match=&quot;IsRemoteDeliveryTemporaryError&quot; class=&quot;&lt;any-class&gt;&quot;/&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SentByMailet.adoc
=====================================================
=== SentByMailet

This matcher matches email sent automatically by mailets.

....
&lt;mailet match=&quot;SentByMailetAny&quot; class=&quot;&lt;any-class&gt;&quot;/&gt;
....

This matcher allows you, for instance, to enable/disable routing automatically generated emails out of your server.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/DLP.adoc
=====================================================
=== DLP

Enable evaluation of incoming emails against DLP rules (Data Leak Prevention) attached to the sender domains.

Example:

----
&lt;mailet match=&quot;DLP&quot; class=&quot;ToRepository&quot;&gt;
   &lt;repositoryPath&gt;/var/mail/quarantine&lt;/repositoryPath&gt;
&lt;/mailet&gt;
----

Rules can be administered via xref:operate/webadmin.adoc#_administrating_dlp_configuration[webAdmin].

Only available on top of Memory and Cassandra storages.

Additionally a cache can be added to reduce queries done to the underlying database.

Example:

----
&lt;mailet match=&quot;DLP=cache:60s&quot; class=&quot;ToRepository&quot;&gt;
   &lt;repositoryPath&gt;/var/mail/quarantine&lt;/repositoryPath&gt;
&lt;/mailet&gt;
----

Will query the DLP rules for a given domain only every 60 seconds.

Please note that querying DLP rules on top of Cassandra relies on Event sourcing, involves reading a potentially
large event stream and involves some SERIAL reads (LightWeight transactions) for each processed emails.

Efficiency of the cache can be tracked with the following metrics:

   - `dlp.cache.hitRate`
   - `dlp.cache.missCount`
   - `dlp.cache.hitCount`
   - `dlp.cache.size`

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SenderIsLocal.adoc
=====================================================
=== SenderIsLocal

Matches mail where the sender is local.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/RecipientIs.adoc
=====================================================
=== RecipientIs

This matcher matches a specific recipient (in the envelope of the mail), passed as a condition to
this matcher.

The example below will match only the recipient user@domain

....
&lt;mailet match=&amp;quot;RecipientIs=user@domain&amp;quot; class=&amp;quot;&lt;any-class&gt;&amp;quot;&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/FromRepository.adoc
=====================================================
=== FromRepository

Re-spools Mail found in the specified Repository.

....
&lt;mailet match=&quot;RecipientIs=respool@localhost&quot; class=&quot;FromRepository&quot;&gt;
   &lt;repositoryPath&gt; *repository path* &lt;/repositoryPath&gt;
   &lt;processor&gt; *target processor* &lt;/repositoryPath&gt;
   &lt;delete&amp;t; [true|&lt;b&gt;false&lt;/b&gt;] &lt;/delete&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/InSpammerBlacklist.adoc
=====================================================
=== InSpammerBlacklist

Checks the network IP address of the sending server against a blacklist of
spammers. There are 3 lists that support this...

* *blackholes.mail-abuse.org*: Rejected - see http://www.mail-abuse.org/rbl/
* *dialups.mail-abuse.org*: Dialup - see http://www.mail-abuse.org/dul/
* *relays.mail-abuse.org*: Open spam relay - see http://www.mail-abuse.org/rss/

Example:

....
&lt;mailet match=&quot;InSpammerBlacklist=blackholes.mail-abuse.org.&quot; class=&quot;ToProcessor&quot;&gt;
  &lt;processor&gt;spam&lt;/processor&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SenderHostIs.adoc
=====================================================
=== SenderHostIs

Checks the sender's displayed domain name against a supplied list.

Sample configuration:

....
&lt;mailet match=&quot;SenderHostIs=domain.com&quot; class=&quot;ToProcessor&quot;&gt;
  &lt;processor&gt; spam &lt;/processor&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/IsMarkedAsSpam.adoc
=====================================================
=== IsMarkedAsSpam

Matches mails having a *org.apache.james.spamassassin.status* per recipient header with a *Yes* value.

As an example, here is a part of a mailet pipeline which can be used in your LocalDelivery processor:

....
&lt;!-- SpamAssassing mailets pipeline --&gt;
    &lt;mailet match=&quot;RecipientIsLocal&quot; class=&quot;SpamAssassin&quot;&gt;
        &lt;spamdHost&gt;spamassassin&lt;/spamdHost&gt;
        &lt;spamdPort&gt;783&lt;/spamdPort&gt;
    &lt;/mailet&gt;
    &lt;mailet match=&quot;IsMarkedAsSpam&quot; class=&quot;WithStorageDirective&quot;&gt;
        &lt;targetFolderName&gt;Spam&lt;/targetFolderName&gt;
    &lt;/mailet&gt;
&lt;!-- End of SpamAssassing mailets pipeline --&gt;
....

In order to use this with `rspamd`, we need to declare a condition for the matcher
and drop the Rspamd jar (*third-party/rspamd*) in the James extensions-jars folder.
Eg: With the recipient header for Rspamd being *org.apache.james.rspamd.status*,
then the configuration would be:

....
&lt;!-- Rspamd mailets pipeline --&gt;
    &lt;mailet match=&quot;IsMarkedAsSpam=org.apache.james.rspamd.status&quot; class=&quot;WithStorageDirective&quot;&gt;
        &lt;targetFolderName&gt;Spam&lt;/targetFolderName&gt;
    &lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SMTPAuthSuccessful.adoc
=====================================================
=== SMTPAuthSuccessful

Matches mails that are sent by an SMTP authenticated user.

If the sender was not authenticated it will not match.

....
&lt;mailet match=&quot;SMTPAuthSuccessful&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasHeader.adoc
=====================================================
=== HasHeader

use:

....
&lt;mailet match=&quot;HasHeader={&lt;header&gt;[=value]}+&quot; class=&quot;...&quot; /&gt;
....

This matcher checks if the header is present in the message (global) and per recipient (specific). It complements the AddHeader mailet.


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/HasMimeType.adoc
=====================================================
=== HasMimeType

This matcher checks if the content type matches.

This matcher does not walk down the mime tree and stops at the top level mime part.

use:

....
&lt;mailet match=&quot;HasMimeType=text/plain,text/html&quot; class=&quot;...&quot; /&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/OnlyText.adoc
=====================================================
=== OnlyText

Keep only the text part of a message.

If the message is text only then it doesn't touch it, if it is a multipart it
transform it a in plain text message with the first text part found.

 * text/plain
 * text/html =&gt; with a conversion to text only
 *  text/* as is.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/UseHeaderRecipients.adoc
=====================================================
=== UseHeaderRecipients

Mailet designed to process the recipients from the mail headers rather
than the recipients specified in the SMTP message header.  This can be
useful if your mail is redirected on-route by a mail server that
substitutes a fixed recipient address for the original.


To use this, match against the redirection address using the
*RecipientIs* matcher and set the mailet 'class' to
*UseHeaderRecipients*.  This will cause the email to be
re-injected into the root process with the recipient substituted
by all the recipients in the Mail-For, To and Cc headers
of the message.

e.g.

....
&lt;mailet match=&quot;RecipientIs=forwarded@myhost&quot; class=&quot;UseHeaderRecipients&quot;&gt;
&lt;/mailet&gt;
....



=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SentByJmap.adoc
=====================================================
=== SentByJmap

Matches mails sent via the JMAP protocol.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/ICSSanitizer.adoc
=====================================================
=== ICSSanitizer

Some senders embed 'text/calendar' content as part of Mime bodypart headers with an empty body.

This mailet duplicate the 'text/calendar' content to the Mime body part.

Example configuration:

....
&lt;mailet match=&quot;All&quot; class=&quot;ICSSanitizer&quot;/&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SenderIsRegex.adoc
=====================================================
=== SenderIsRegex

Matches mails that are sent by a sender whose address matches a regular expression.

Is equivalent to the RecipientIsRegex matcher but matching on the sender.

Configuration string: a regular expression.

....
&lt;mailet match=&quot;SenderIsRegex=&lt;regular-expression&gt;&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
....

The example below will match any sender in the format user@log.anything

....
&lt;mailet match=&quot;SenderIsRegex=(.*)@log\.(.*)&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
&lt;/mailet&gt;
....

Another example below will match any sender having some variations of the string
*mp3* inside the username part.

....
&lt;mailet match=&quot;SenderIsRegex=(.*)(mp3|emmepitre)(.*)@&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
&lt;/mailet&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/AddHabeasWarrantMark.adoc
=====================================================
=== AddHabeasWarrantMark

This matcher adds the Hebeas Warrant Mark to a message.

For details see: http://www.hebeas.com&lt;/p&gt;

Usage:

....
&lt;mailet match=&quot;All&quot; class=&quot;AddHabeasWarrantMark&quot; /&gt;;
....

NOTE: Although this mailet is covered by the Apache Software License,
the Habeas Warrant Mark is copyright.  A separate license from Habeas
is required in order to legally attach the Habeas Warrant Mark to
e-mail messages.  Each James Administrator is responsible for
ensuring that James is configured to attach the Habeas Warrant Mark
only to e-mail covered by a suitable license received from Habeas.

Because the Habeas Warrant Mark is copyright material, I have asked
for and received the following explicit statement from Habeas:

....
-----------------------------------
From: Lindsey Pettit [mailto:support@habeas.com]
Sent: Sunday, September 29, 2002 5:51
To: Noel J. Bergman
Subject: RE: Habeas and Apache James
*
Dear Noel,
*
&gt; FURTHERMORE, if James is to be capable of sending Habeas SWE, I need
&gt; to write a Mailet that attaches the headers.  As with any MTA, it
&gt; would be up to the administrator to properly configure James and make
&gt; sure that licenses are acquired.  Since the Habeas Warrant Mark is
&gt; copyright, I believe that I require authorization from you for that
&gt; Mailet, especially since it attaches the Habeas Warrant Mark.  For my
&gt; own protection, please show me why such authorization is unnecessary,
&gt; send me a digitally signed e-mail, or FAX a signed authorization
*
You do not yourself need the authorization to build the functionality
into the [mailet];  what one needs authorization, in the form of a
license, for, is to use the mark *in headers*, in outgoing email.
However, please let me know if you would like something more
formal, and I can try to have something faxed to you.
*
&gt; The Mailet docs would reference the Habeas website, and inform
&gt; administrators that in order to USE the mailet, they need to ensure
&gt; that they have whatever licenses are required from you as appropriate
&gt; to your licensing terms.

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/MetricsMailet.adoc
=====================================================
=== MetricsMailet

This Metrics mailet increments a counter on every incoming emails.

This counter is accessible via JMX, or grafana. Read xref:operate/metrics.adoc[more about metrics].

Example :

....
&lt;mailet match=&quot;all&quot; class=&quot;MetricsMailet&quot;&gt;
    &lt;metricName&gt;relayDenied&lt;/metricName&gt;
&lt;/mailet&gt;
....

Will increment a counter relayDenied

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SMTPAuthUserIs.adoc
=====================================================
=== SMTPAuthUserIs

Matches mails that are sent by an SMTP authenticated user present in a supplied list.

If the sender was not authenticated it will not match.

Configuration string: a comma, tab or space separated list of James users.

....
&lt;mailet match=&quot;SMTPAuthUserIs=&lt;list-of-user-names&gt;&quot; class=&quot;&lt;any-class&gt;&quot;&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/AddDeliveredToHeader.adoc
=====================================================
=== AddDeliveredToHeader

This mailet adds the de-facto standard QMail Delivered-To header.

Upon processing by LocalDelivery, a Delivered-To header matching the recipient mail address will be added before storage.

Example

....
&lt;mailet match=&quot;All&quot; class=&quot;AddDeliveredToHeader&quot;&gt;
....

=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SMIMEDecrypt.adoc
=====================================================
=== SMIMEDecrypt

This mailet decrypts a s/mime encrypted message. It takes as input an
encrypted message and it tries to dechiper it using the key specified in its
configuration. If the decryption is successful the mail will be changed and
it will contain the decrypted message. The mail attribute
*org.apache.james.SMIMEDecrypt* will contain the public
certificate of the key used in the process.

The configuration parameters of this mailet are summarized below. The firsts
define the keystore where the key that will be used to decrypt messages is
saved.

* keyStoreType (default: system dependent): defines the type of the store.
Usually jks, pkcs12 or pkcs7
* keyStoreFileName (mandatory): private key store path.
* keyStorePassword (default: &quot;&quot;): private key store password

The other parameters define which private key have to be used. (if the store
contains more than one key).

* keyAlias: private key alias.
* keyPass: private key password


=====================================================
== File: server/apps/distributed-app/docs/modules/ROOT/partials/SizeGreaterThan.adoc
=====================================================
=== SizeGreaterThan

Checks whether the message (entire message, not just content) is greater
than a certain number of bytes.  You can use 'k' and 'm' as optional postfixes.

In other words, &quot;1m&quot; is the same as writing &quot;1024k&quot;, which is the same as
&quot;1048576&quot;.

=====================================================
== File: server/apps/distributed-app/docs/README.md
=====================================================
# Building and serving documentation locally

## Executing within source code

(Clone `https://github.com/apache/james-project` locally, go into `server/apps/distributed-app/docs` folder)

**Step 1**: [Install Antora](https://docs.antora.org/antora/2.3/install/install-antora/)

**Step 2**: Build the Antora content locally

```
antora antora-playbook-local.yml
```

**Step 3**: Open `build/site/index.html` in your browser.

## Building from the ZIP package

[Install Antora](https://docs.antora.org/antora/2.3/install/install-antora/).

Unzip `james-server-distributed-app.zip`.

Go in the `docs` folder.

Executing Antora can only be done from within a git repository.

You will need to initialize the git repository:

```
$ git init
$ git add .
$ git commit -m &quot;First commit&quot;
```

Then adapt `antora-playbook-local.yml` to match the git location:

```
site:
  title: Apache James Distributed Server
  url: https://james.apache.org/
  start_page: james-distributed-app::index.adoc
content:
  sources:
    - url: ./
      branches: HEAD
      start_path: ./
ui:
  bundle:
    url: https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/master/raw/build/ui-bundle.zip?job=bundle-stable
  supplemental_files: ./ui-overrides

=====================================================
== File: server/apps/distributed-app/docs/antora-playbook-local.yml
=====================================================
#
# Use this configuration for local testing / docs develop.
#
# Note: Executing Antora can only be done from within a git repository.
# When UNZIPPING the application, you will need to initialize the git repository:
#
# $ git init
# $ git add .
# $ git commit -m &quot;First commit&quot;
#
# You may want to update paths below too...
site:
  title: Apache James Distributed Server
  url: https://james.apache.org/
  start_page: james-distributed-app::index.adoc
content:
  sources:
    # url should match the relative position for your git repository. A value for a git repo located in the docs folder would be:
    # - url: ./
    - url: ./../../../../
      branches: HEAD
      # Must match the relative position of the Antora docs files within the git repository stated above.
      # A value for a git repo located in the docs folder would be:
      # start_path: ./
      start_path: server/apps/distributed-app/docs
ui:
  bundle:
    url: https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/master/raw/build/ui-bundle.zip?job=bundle-stable
  supplemental_files: ./ui-overrides
runtime:
  fetch: true

=====================================================
== File: server/apps/distributed-app/docs/antora.yml
=====================================================
name: james-distributed-app
title: Apache James Distributed Server
version: '3.8.1'
prerelease: SNAPSHOT
nav:
- modules/ROOT/nav.adoc

=====================================================
== File: server/apps/cli-integration-tests/src/test/resources/jwt_publickey
=====================================================
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtlChO/nlVP27MpdkG0Bh
16XrMRf6M4NeyGa7j5+1UKm42IKUf3lM28oe82MqIIRyvskPc11NuzSor8HmvH8H
lhDs5DyJtx2qp35AT0zCqfwlaDnlDc/QDlZv1CoRZGpQk1Inyh6SbZwYpxxwh0fi
+d/4RpE3LBVo8wgOaXPylOlHxsDizfkL8QwXItyakBfMO6jWQRrj7/9WDhGf4Hi+
GQur1tPGZDl9mvCoRHjFrD5M/yypIPlfMGWFVEvV5jClNMLAQ9bYFuOc7H1fEWw6
U1LZUUbJW9/CH45YXz82CYqkrfbnQxqRb2iVbVjs/sHopHd1NTiCfUtwvcYJiBVj
kwIDAQAB
-----END PUBLIC KEY-----

=====================================================
== File: server/apps/cassandra-app/docker-configuration/jvm.properties
=====================================================
# ============================================= Extra JVM System Properties ===========================================
# To avoid clutter on the command line, any properties in this file will be added as system properties on server start.

# Example: If you need an option -Dmy.property=whatever, you can instead add it here as
# my.property=whatever

# Required to locate Cassandra driver configuration
config.file=/root/conf/cassandra-driver.conf

# (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.
# This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.
# Below, data is stored in memory. Above data is stored on disk.
# Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware
# should however support a high throughput. Higher values will lead to faster single mail processing at the cost
# of higher heap usage.
#james.message.memory.threshold=12K

# Optional. Boolean. Defaults to false. Recommended value is false.
# Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
# be copied to temporary files?
#james.message.usememorycopy=false

# Mode level of resource leak detection. It is used to detect a resource not be disposed of before it's garbage-collected.
# Example `MimeMessageInputStreamSource`
# Optional. Allowed values are: none, simple, advanced, testing
#   - none: Disables resource leak detection.
#   - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default).
#   - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources.
#   - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team.
#james.lifecycle.leak.detection.mode=simple

# Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
# is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.
# Optional. Boolean. Defaults to true.
#james.protocols.mdc.hostname=true

# Manage netty leak detection level see https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
# io.netty.leakDetection.level=SIMPLE

# Should James exit on Startup error? Boolean, defaults to true. This prevents partial startup.
# james.exit.on.startup.error=true

# Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false.
# james.fail.on.missing.configuration=true

# JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h.
sun.rmi.dgc.server.gcInterval=3600000000
sun.rmi.dgc.client.gcInterval=3600000000

=====================================================
== File: server/apps/cassandra-app/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    depends_on:
      cassandra:
        condition: service_healthy
      opensearch:
        condition: service_started
      tika:
        condition: service_started
    image: apache/james:cassandra-latest
    container_name: james
    hostname: james.local
    networks:
      - james
    volumes:
      - ${KEYSTORE_PATH}:/root/conf/keystore
    ports:
      - &quot;80:80&quot;
      - &quot;25:25&quot;
      - &quot;110:110&quot;
      - &quot;143:143&quot;
      - &quot;465:465&quot;
      - &quot;587:587&quot;
      - &quot;993:993&quot;
      - &quot;8000:8000&quot;

  opensearch:
    networks:
      james:
        aliases:
          - elasticsearch
    image: opensearchproject/opensearch:2.1.0
    environment:
      - discovery.type=single-node
      - DISABLE_INSTALL_DEMO_CONFIG=true
      - DISABLE_SECURITY_PLUGIN=true

  cassandra:
    image: cassandra:4.1.3
    ports:
      - &quot;9042:9042&quot;
    healthcheck:
      test: [&quot;CMD&quot;, &quot;cqlsh&quot;, &quot;-e&quot;, &quot;describe keyspaces&quot;]
      interval: 3s
      timeout: 20s
      retries: 5
    environment:

=====================================================
== File: server/apps/cassandra-app/README.adoc
=====================================================
= Cassandra Guice Server How-to

*DEPRECATION*: See JAMES-3766. Removal of cassandra-app is planned after Apache James 3.8.0 release.

Users are encouraged to migrate to the distributed server.

*WARNING*: This server only targets single James node deployment on top of a shared database.

It does not target deployments with multiple James nodes as is misses inter-node communication capabilities.

*WARNING*: JAMES-3591 Cassandra is not made to store large binary content, its use will be suboptimal compared to
alternatives (namely S3 compatible BlobStores backed by for instance S3, MinIO or Ozone)

== Requirements

 * Java 11 SDK

Firstly, create your own user network on Docker for the James environment:

    $ docker network create --driver bridge james

Third party compulsory dependencies:

 * Cassandra 4.0
 * OpenSearch 2.1.0

[source]
----
$ docker run -d --network james -p 9042:9042 --name=cassandra cassandra:4.1.3
$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:2.1.0
----

== Running

To run james, you have to create a directory containing required configuration files.

James requires the configuration to be in a subfolder of working directory that is called
**conf**. A [sample directory](https://github.com/apache/james-project/tree/master/server/apps/cassandra-app/sample-configuration)
is provided with some default values you may need to replace, especially compulsory third party software endpoints.

You will need to update its content to match your needs.

You also need to generate a keystore with the following command:

[source]
----
$ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore
----

Once everything is set up, you just have to run the jar with:

=====================================================
== File: server/apps/cassandra-app/src/main/extensions-jars/README.md
=====================================================
# Adding Jars to JAMES

The jar in this folder will be added to JAMES classpath when mounted under /root/extensions-jars inside the running container.

You can use it to add your custom Mailets/Matchers.

=====================================================
== File: server/apps/cassandra-app/src/main/scripts/james-cli
=====================================================
#!/bin/bash

java -cp /root/resources:/root/classes:/root/libs/* org.apache.james.cli.ServerCmd &quot;$@&quot;

=====================================================
== File: server/apps/cassandra-app/src/test/resources/ldif-files/populate.ldif
=====================================================
dn: ou=people, dc=james,dc=org
ou: people
objectClass: organizationalUnit

dn: uid=james-user, ou=people, dc=james,dc=org
objectClass: inetOrgPerson
uid: james-user
cn: james-user
sn: james-user
userPassword: secret
description: James user

=====================================================
== File: server/apps/cassandra-app/src/test/resources/batchsizes.properties
=====================================================
# Those properties let you configure the number of messages queried at the same time.
# IMAP FETCH command
fetch.metadata=200
fetch.headers=200
fetch.body=100
fetch.full=50
# IMAP COPY command
copy=100
# IMAP MOVE command
move=100

=====================================================
== File: server/apps/cassandra-app/src/assemble/extensions-jars.txt
=====================================================
# Adding Jars to JAMES

The jar in this folder will be added to JAMES classpath when mounted under /root/extensions-jars inside the running container.

You can use it to add you customs Mailets/Matchers.

=====================================================
== File: server/apps/cassandra-app/sample-configuration/extensions.properties
=====================================================
# This files enables customization of users extensions injections with guice.
# A user can drop some jar-with-dependencies within the ./extensions-jars folder and
# reference classes of these jars in some of James extension mechanisms.

# This includes mailets, matchers, mailboxListeners, preDeletionHooks, protocolHandlers, webAdmin routes

# Upon injections, the user can reference additional guice modules, that are going to be used only upon extensions instantiation.

#List of coma separated (',') fully qualified class names of additional guice modules to be used to instantiate extensions
#guice.extension.module=

=====================================================
== File: server/apps/cassandra-app/sample-configuration/deletedMessageVault.properties
=====================================================
# ============================================= Deleted Messages Vault Configuration ==================================

enabled=false

# Retention period for your deleted messages into the vault, after which they expire and can be potentially cleaned up
# Optional, default 1y
# retentionPeriod=1y

=====================================================
== File: server/apps/cassandra-app/sample-configuration/jvm.properties
=====================================================
# ============================================= Extra JVM System Properties ===========================================
# To avoid clutter on the command line, any properties in this file will be added as system properties on server start.

# Example: If you need an option -Dmy.property=whatever, you can instead add it here as
# my.property=whatever

# Required to locate Cassandra driver configuration
config.file=conf/cassandra-driver.conf

# (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.
# This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.
# Below, data is stored in memory. Above data is stored on disk.
# Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware
# should however support a high throughput. Higher values will lead to faster single mail processing at the cost
# of higher heap usage.
#james.message.memory.threshold=12K

# Optional. Boolean. Defaults to false. Recommended value is false.
# Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
# be copied to temporary files?
#james.message.usememorycopy=false

# Mode level of resource leak detection. It is used to detect a resource not be disposed of before it's garbage-collected.
# Example `MimeMessageInputStreamSource`
# Optional. Allowed values are: none, simple, advanced, testing
#   - none: Disables resource leak detection.
#   - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default).
#   - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources.
#   - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team.
#james.lifecycle.leak.detection.mode=simple

# Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
# is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.
# Optional. Boolean. Defaults to true.
#james.protocols.mdc.hostname=true

# Manage netty leak detection level see https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
# io.netty.leakDetection.level=SIMPLE

# Should James exit on Startup error? Boolean, defaults to true. This prevents partial startup.
# james.exit.on.startup.error=true

# Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false.
# james.fail.on.missing.configuration=true

# JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h.
sun.rmi.dgc.server.gcInterval=3600000000
sun.rmi.dgc.client.gcInterval=3600000000

# Automatically generate a JMX password upon start. CLI is able to retrieve this password. Not supported on windows.

=====================================================
== File: server/apps/cassandra-app/sample-configuration/logback.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration&gt;

        &lt;contextListener class=&quot;ch.qos.logback.classic.jul.LevelChangePropagator&quot;&gt;
                &lt;resetJUL&gt;true&lt;/resetJUL&gt;
        &lt;/contextListener&gt;

        &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} %highlight([%-5level]) %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;appender name=&quot;LOG_FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
                &lt;file&gt;/logs/james.log&lt;/file&gt;
                &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.FixedWindowRollingPolicy&quot;&gt;
                    &lt;fileNamePattern&gt;/logs/james.%i.log.tar.gz&lt;/fileNamePattern&gt;
                    &lt;minIndex&gt;1&lt;/minIndex&gt;
                    &lt;maxIndex&gt;3&lt;/maxIndex&gt;
                &lt;/rollingPolicy&gt;

                &lt;triggeringPolicy class=&quot;ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy&quot;&gt;
                    &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
                &lt;/triggeringPolicy&gt;

                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;root level=&quot;WARN&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
                &lt;appender-ref ref=&quot;LOG_FILE&quot; /&gt;
        &lt;/root&gt;

        &lt;logger name=&quot;org.apache.james&quot; level=&quot;INFO&quot; /&gt;
        &lt;logger name=&quot;com.datastax.driver.core.QueryLogger.SLOW&quot; level=&quot;DEBUG&quot; /&gt;

&lt;/configuration&gt;

=====================================================
== File: server/apps/cassandra-app/sample-configuration/jmap.properties
=====================================================
# Configuration file for JMAP
# Read https://james.apache.org/server/config-jmap.html for further details

enabled=true

tls.keystoreURL=file://conf/keystore
tls.secret=james72laBalle

# Alternatively TLS keys can be supplied via PEM files
# tls.privateKey=file://conf/private.nopass.key
# tls.certificates=file://conf/certs.self-signed.csr
# An optional secret might be specified for the private key
# tls.secret=james72laBalle

#
# If you wish to use OAuth authentication, you should provide a valid JWT public key.
# The following entry specify the link to the URL of the public key file,
# which should be a PEM format file.
#
# jwt.publickeypem.url=file://conf/jwt_publickey

# Should simple Email/query be resolved against a Cassandra projection, or should we resolve them against OpenSearch?
# This enables a higher resilience, but the projection needs to be correctly populated. False by default.
# view.email.query.enabled=true

# If you want to specify authentication strategies for Jmap draft version
# For custom Authentication Strategy not inside package &quot;org.apache.james.jmap.http&quot;, you have to specify its FQDN
# authentication.strategy.draft=AccessTokenAuthenticationStrategy,JWTAuthenticationStrategy,QueryParameterAccessTokenAuthenticationStrategy

# If you want to specify authentication strategies for Jmap rfc-8621 version
# For custom Authentication Strategy not inside package &quot;org.apache.james.jmap.http&quot;, you have to specify its FQDN
# authentication.strategy.rfc8621=JWTAuthenticationStrategy,BasicAuthenticationStrategy

# Prevent server side request forgery by preventing calls to the private network ranges. Defaults to true, can be disabled for testing.
# webpush.prevent.server.side.request.forgery=false

=====================================================
== File: server/apps/cassandra-app/sample-configuration/cassandra-driver.conf
=====================================================
# James reference configuration for the DataStax Java driver for Apache Cassandra&#xae;.
#
# Unless you use a custom mechanism to load your configuration (see
# SessionBuilder.withConfigLoader), all the values declared here will be used as defaults.
#
# See https://docs.datastax.com/en/developer/java-driver/4.13/manual/core/configuration/ for
# available options.
#
# Please note that contact point and authentication needs to be set in cassandra.properties for now.
datastax-java-driver {

  basic.request {
    timeout = 5 seconds

    consistency = QUORUM

    page-size = 5000

    serial-consistency = SERIAL
  }

  advanced.connection {
    connect-timeout = 5 seconds

    init-query-timeout = 5 seconds

    pool {
      local.size = 2

      remote.size = 2
    }

    max-requests-per-connection = 1024

    max-orphan-requests = 256

    warn-on-init-error = true
  }

  advanced.throttler {
    // class = org.apache.james.backends.cassandra.utils.LockLessConcurrencyLimitingRequestThrottler
    class = ConcurrencyLimitingRequestThrottler

    max-queue-size = 10000

    max-concurrent-requests = 192
  }

  advanced.reconnect-on-init = true


=====================================================
== File: server/apps/cassandra-app/sample-configuration/batchsizes.properties
=====================================================
# Those properties let you configure the number of messages queried at the same time.
# IMAP FETCH command
fetch.metadata=200
fetch.headers=200
fetch.body=100
fetch.full=50
# IMAP COPY command
copy=100
# IMAP MOVE command
move=100

=====================================================
== File: server/apps/cassandra-app/sample-configuration/activemq.properties
=====================================================
# Configuration file for ActiveMQ AQMP

#
# Metric collection (see https://activemq.apache.org/statisticsplugin.html)
# - broker statistics
# - per-queue statistics (e.g. spool, outgoing)
#

# collect ActiveMQ metrics (i.e. broker statistics, per-queue statistics)
metrics.enabled=false
# add start delay for metric collector (must be greater than 1s)
metrics.start_delay=10s
# collect metrics (must be greater than 5s)
metrics.interval=30s
# timeout (must be less than metrics.interval)
metrics.timeout=2s
# ActiveMQ receive timeout (must be less than metrics.timeout)
metrics.aqmp_timeout=1s

=====================================================
== File: server/apps/cassandra-app/sample-configuration/blob.properties
=====================================================
# ============================================= BlobStore Implementation ==================================
# Read https://james.apache.org/server/config-blobstore.html for further details

# The only available choice is cassandra
# *WARNING*: JAMES-3591 Cassandra is not made to store large binary content, its use will be suboptimal compared to
# alternatives (namely S3 compatible BlobStores backed by for instance S3, MinIO or Ozone)

# ========================================= ObjectStorage deduplication ========================================
# If you choose to enable deduplication, the mails with the same content will be stored only once.
# Warning: Once this feature is enabled, there is no turning back as turning it off will lead to the deletion of all
# the mails sharing the same content once one is deleted.
# Mandatory, Allowed values are: true, false
deduplication.enable=false

# deduplication.family needs to be incremented every time the deduplication.generation.duration is changed
# Positive integer, defaults to 1
# deduplication.gc.generation.family=1

# Duration of generation.
# Deduplication only takes place within a singe generation.
# Only items two generation old can be garbage collected. (This prevent concurrent insertions issues and
# accounts for a clock skew).
# deduplication.family needs to be incremented everytime this parameter is changed.
# Duration. Default unit: days. Defaults to 30 days.
# deduplication.gc.generation.duration=30days

# ============================================ Blobs Exporting ==============================================
# Read https://james.apache.org/server/config-blob-export.html for further details

# Choosing blob exporting mechanism, allowed mechanism are: localFile, linshare
# LinShare is a file sharing service, will be explained in the below section
# Optional, default is localFile
blob.export.implementation=localFile

# ======================================= Local File Blobs Exporting ========================================
# Optional, directory to store exported blob, directory path follows James file system format
# default is file://var/blobExporting
blob.export.localFile.directory=file://var/blobExporting

# ======================================= LinShare File Blobs Exporting ========================================
# LinShare is a sharing service where you can use james, connects to an existing LinShare server and shares files to
# other mail addresses as long as those addresses available in LinShare. For example you can deploy James and LinShare
# sharing the same LDAP repository
# Mandatory if you choose LinShare, url to connect to LinShare service
# blob.export.linshare.url=http://linshare:8080

# ======================================= LinShare Configuration BasicAuthentication ===================================
# Authentication is mandatory if you choose LinShare, TechnicalAccount is need to connect to LinShare specific service.
# For Example: It will be formalized to 'Authorization: Basic {Credential of UUID/password}'


=====================================================
== File: server/apps/cassandra-app/sample-configuration/cassandra.properties
=====================================================
# Configuration file for cassandra mailbox
# Read https://james.apache.org/server/config-cassandra.html for further details
# Advanced Cassandra driver option needs to be set via cassandra-driver.conf configuration file

cassandra.nodes=cassandra
cassandra.keyspace.create=true
cassandra.keyspace=apache_james
#cassandra.user=cassandra
#cassandra.password=cassandra
cassandra.replication.factor=1
cassandra.retryConnection.maxRetries=200
cassandra.retryConnection.minDelay=5000

## These low level tuning options controls performance related options in Cassandra related code
## The default values are documented here. Understand the effects before editing.
# mailbox.read.repair.chance=0.1
## Maximum probability of running a read repair for the mailbox counters
# mailbox.counters.read.repair.chance.max=0.1
## Probability of running a mailbox counters read repair for 100 messages.
## Inversely proportional to the count of messages
## Formula: read_repair_chance = min(mailbox.counters.read.repair.chance.max, (100/unseens)*mailbox.counters.read.repair.chance.one.hundred)
# mailbox.counters.read.repair.chance.one.hundred=0.01
# mailbox.max.retry.acl=1000
# mailbox.max.retry.modseq=100000
# mailbox.max.retry.uid=100000
# mailbox.max.retry.message.flags.update=1000
# mailbox.max.retry.message.id.flags.update=1000
# fetch.advance.row.count=1000
# chunk.size.expunge=100
# mailbox.blob.part.size=102400

# Optional. Allows specifying consistency level ONE for reads in Cassandra BlobStore.
# Falls back to default read consistency level if the blob is missing.
# Defaults to false.
# optimistic.consistency.level.enabled=false

# Optional. Allows not to use lightweight transactions in CassandraMailRepository.
# If disabled we implement an idempotent behaviour (duplicates are overridden, missing entries upon deletes are ignored).
# Defaults to true.
# mailrepository.strong.consistency=true

# Optional, default to 0. Defensive value to add to uids and modseqs generated. This can be used as an heuristic to maintain
# consistency even when consensus of Lightweight Transactions is broken, exemple during a disaster recovery process.
# uid.modseq.increment=0

=====================================================
== File: server/apps/jpa-app/docker-compose.yml
=====================================================
version: '3'

# In order to start James JPA app on top of mariaDB:
# 1. Download the driver: `wget https://repo1.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.7.2/mariadb-java-client-2.7.2.jar`
# 2. Generate the keystore with the default password `james72laBalle`: `keytool -genkey -alias james -keyalg RSA -keystore keystore`
# 3. Start MariaDB: `docker-compose up -d mariadb`
# 4. Start James: `docker-compose up james`

services:

  james:
    depends_on:
      - mariadb
    image: apache/james:jpa-latest
    container_name: james
    hostname: james.local
    volumes:
      - $PWD/mariadb-java-client-2.7.2.jar:/root/libs/mariadb-java-client-2.7.2.jar
      - $PWD/sample-configuration/james-database-mariadb.properties:/root/conf/james-database.properties
      - $PWD/keystore:/root/conf/keystore

  mariadb:
    image: mariadb:10.6
    environment:
      - MARIADB_ROOT_PASSWORD=test
      - MARIADB_DATABASE=test
      - MARIADB_USER=test
      - MARIADB_PASSWORD=test

=====================================================
== File: server/apps/jpa-app/README.adoc
=====================================================
= Guice-JPA Server How-to

This server target single node James deployments. By default, the derby database is used.

== Requirements

 * Java 11 SDK

== Running

To run james, you have to create a directory containing required configuration files.

James requires the configuration to be in a subfolder of working directory that is called
**conf**. A [sample directory](https://github.com/apache/james-project/tree/master/server/apps/jpa-app/sample-configuration)
is provided with some default values you may need to replace. You will need to update its content to match your needs.

You also need to generate a keystore with the following command:

[source]
----
$ keytool -genkey -alias james -keyalg RSA -keystore conf/keystore
----

Once everything is set up, you just have to run the jar with:

[source]
----
$ java -javaagent:james-server-jpa-app.lib/openjpa-3.1.2.jar \
  -Dworking.directory=. \
  -Djdk.tls.ephemeralDHKeySize=2048 \
  -Dlogback.configurationFile=conf/logback.xml \
  -jar james-server-jpa-app.jar
----

Note that binding ports below 1024 requires administrative rights.

== Docker distribution

To import the image locally:

[source]
----
docker image load -i target/jib-image.tar
----

Then run it:

[source]
----
docker run apache/james:jpa-latest

=====================================================
== File: server/apps/jpa-app/src/main/extensions-jars/README.md
=====================================================
# Adding Jars to JAMES

The jar in this folder will be added to JAMES classpath when mounted under /root/extensions-jars inside the running container.

You can use it to add your custom Mailets/Matchers.

=====================================================
== File: server/apps/jpa-app/src/main/scripts/james-cli
=====================================================
#!/bin/bash

java -cp /root/resources:/root/classes:/root/libs/* org.apache.james.cli.ServerCmd &quot;$@&quot;

=====================================================
== File: server/apps/jpa-app/src/assemble/extensions-jars.txt
=====================================================
# Adding Jars to JAMES

The jar in this folder will be added to JAMES classpath when mounted under /root/extensions-jars inside the running container.

You can use it to add you customs Mailets/Matchers.

=====================================================
== File: server/apps/jpa-app/sample-configuration/extensions.properties
=====================================================
# This files enables customization of users extensions injections with guice.
# A user can drop some jar-with-dependencies within the ./extensions-jars folder and
# reference classes of these jars in some of James extension mechanisms.

# This includes mailets, matchers, mailboxListeners, preDeletionHooks, protocolHandlers, webAdmin routes

# Upon injections, the user can reference additional guice modules, that are going to be used only upon extensions instantiation.

#List of coma separated (',') fully qualified class names of additional guice modules to be used to instantiate extensions
#guice.extension.module=

=====================================================
== File: server/apps/jpa-app/sample-configuration/jwt_publickey
=====================================================
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtlChO/nlVP27MpdkG0Bh
16XrMRf6M4NeyGa7j5+1UKm42IKUf3lM28oe82MqIIRyvskPc11NuzSor8HmvH8H
lhDs5DyJtx2qp35AT0zCqfwlaDnlDc/QDlZv1CoRZGpQk1Inyh6SbZwYpxxwh0fi
+d/4RpE3LBVo8wgOaXPylOlHxsDizfkL8QwXItyakBfMO6jWQRrj7/9WDhGf4Hi+
GQur1tPGZDl9mvCoRHjFrD5M/yypIPlfMGWFVEvV5jClNMLAQ9bYFuOc7H1fEWw6
U1LZUUbJW9/CH45YXz82CYqkrfbnQxqRb2iVbVjs/sHopHd1NTiCfUtwvcYJiBVj
kwIDAQAB
-----END PUBLIC KEY-----

=====================================================
== File: server/apps/jpa-app/sample-configuration/jvm.properties
=====================================================
# ============================================= Extra JVM System Properties ===========================================
# To avoid clutter on the command line, any properties in this file will be added as system properties on server start.

# Example: If you need an option -Dmy.property=whatever, you can instead add it here as
# my.property=whatever

# (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB.
# This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk.
# Below, data is stored in memory. Above data is stored on disk.
# Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware
# should however support a high throughput. Higher values will lead to faster single mail processing at the cost
# of higher heap usage.
#james.message.memory.threshold=12K

# Optional. Boolean. Defaults to false. Recommended value is false.
# Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold
# be copied to temporary files?
#james.message.usememorycopy=false

# Mode level of resource leak detection. It is used to detect a resource not be disposed of before it's garbage-collected.
# Example `MimeMessageInputStreamSource`
# Optional. Allowed values are: none, simple, advanced, testing
#   - none: Disables resource leak detection.
#   - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default).
#   - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources.
#   - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team.
#james.lifecycle.leak.detection.mode=simple

# Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution
# is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context.
# Optional. Boolean. Defaults to true.
#james.protocols.mdc.hostname=true

# Manage netty leak detection level see https://netty.io/wiki/reference-counted-objects.html#leak-detection-levels
# io.netty.leakDetection.level=SIMPLE

# Should James exit on Startup error? Boolean, defaults to true. This prevents partial startup.
# james.exit.on.startup.error=true

# Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false.
# james.fail.on.missing.configuration=true

# JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h.
sun.rmi.dgc.server.gcInterval=3600000000
sun.rmi.dgc.client.gcInterval=3600000000

# Automatically generate a JMX password upon start. CLI is able to retrieve this password. Not supported on windows.
james.jmx.credential.generation=true

# Disable Remote Code Execution feature from JMX

=====================================================
== File: server/apps/jpa-app/sample-configuration/logback.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration&gt;

        &lt;contextListener class=&quot;ch.qos.logback.classic.jul.LevelChangePropagator&quot;&gt;
                &lt;resetJUL&gt;true&lt;/resetJUL&gt;
        &lt;/contextListener&gt;

        &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} %highlight([%-5level]) %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;appender name=&quot;LOG_FILE&quot; class=&quot;ch.qos.logback.core.rolling.RollingFileAppender&quot;&gt;
                &lt;file&gt;/logs/james.log&lt;/file&gt;
                &lt;rollingPolicy class=&quot;ch.qos.logback.core.rolling.FixedWindowRollingPolicy&quot;&gt;
                    &lt;fileNamePattern&gt;/logs/james.%i.log.tar.gz&lt;/fileNamePattern&gt;
                    &lt;minIndex&gt;1&lt;/minIndex&gt;
                    &lt;maxIndex&gt;3&lt;/maxIndex&gt;
                &lt;/rollingPolicy&gt;

                &lt;triggeringPolicy class=&quot;ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy&quot;&gt;
                    &lt;maxFileSize&gt;100MB&lt;/maxFileSize&gt;
                &lt;/triggeringPolicy&gt;

                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;
        &lt;root level=&quot;WARN&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
                &lt;appender-ref ref=&quot;LOG_FILE&quot; /&gt;
        &lt;/root&gt;

        &lt;logger name=&quot;org.apache.james&quot; level=&quot;INFO&quot; /&gt;

&lt;/configuration&gt;

=====================================================
== File: server/blob/blob-cassandra/src/test/resources/cassandra-driver.conf
=====================================================
datastax-java-driver {
  basic.request {
    timeout = 5 seconds
  }
}

=====================================================
== File: server/protocols/protocols-pop3-distributed/src/test/resources/pop3server.xml
=====================================================
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;pop3server enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;pop3server&lt;/jmxName&gt;
    &lt;bind&gt;127.0.0.1:0&lt;/bind&gt;
    &lt;helloName&gt;myMailServer&lt;/helloName&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
    &lt;/tls&gt;
    &lt;connectiontimeout&gt;3600&lt;/connectiontimeout&gt;
    &lt;handlerchain&gt;
        &lt;handler class=&quot;org.apache.james.pop3server.core.CoreCmdHandlerLoader&quot;/&gt;
    &lt;/handlerchain&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/pop3server&gt;

=====================================================
== File: server/protocols/webadmin/webadmin-mailrepository/src/test/resources/mail.eml
=====================================================
Return-Path: &lt;general@list.org&gt;
MIME-Version: 1.0
From: Hello &lt;hello@gmail.com&gt;
Date: Thu, 4 Jun 2015 06:08:41 +0200
Message-ID: &lt;CAN1zdnW5PW7z5msM-TjUpouygxWY6z-25A3WCB-C5BvqDuP1Qw@mail.gmail.com&gt;
To: General Discussion  &lt;general@list.org&gt;
Content-Type: text/plain; charset=UTF-8
Subject: [arch-general] Very important topic
Reply-To: General Discussion &lt;general@list.org&gt;
Sender: &quot;arch-general&quot; &lt;general@list.org&gt;

Hi all,

Very important message!!!

Thanks!

=====================================================
== File: server/protocols/webadmin/webadmin-data/src/test/resources/sieve/my_sieve
=====================================================
require [&quot;reject&quot;];

if size :over 100K {
   reject &quot;Email too big&quot;;
}

=====================================================
== File: server/protocols/webadmin/webadmin-pop3/README.md
=====================================================
# Pop3 fix inconsistencies

We introduced an additional webadmin endpoint allowing fixing possible inconsistencies.

In order to run this task:

```bash
curl -XPOST 'http://ip:port/mailboxes?task=fixPop3Inconsistencies'
```

Will schedule a task for deleting stale and inserting missing POP3 meta data entries.

[More details about endpoints returning a task](https://james.staged.apache.org/james-project/3.6.0/servers/distributed/operate/webadmin.html#_endpoints_returning_a_task).

The scheduled task will have the following type `Pop3MetaDataFixInconsistenciesTask` and the following additionalInformation:

```json
{
    &quot;type&quot;: &quot;Pop3MetaDataFixInconsistenciesTask&quot;,
    &quot;runningOptions&quot;: {
        &quot;messagesPerSecond&quot;: 100
    },
    &quot;processedImapUidEntries&quot;: 0,
    &quot;processedPop3MetaDataStoreEntries&quot;: 1,
    &quot;stalePOP3Entries&quot;: 1,
    &quot;missingPOP3Entries&quot;: 0,
    &quot;fixedInconsistencies&quot;: [
        {
            &quot;mailboxId&quot;: &quot;6fdae960-c72f-11eb-9b1d-973b9140e460&quot;,
            &quot;messageId&quot;: &quot;6ffca230-c72f-11eb-9b1d-973b9140e460&quot;
        }
    ],
    &quot;errors&quot;: [
        {
            &quot;mailboxId&quot;: &quot;7fdae960-c72f-11eb-9b1d-973b9140e460&quot;,
            &quot;messageId&quot;: &quot;7fdae960-c72f-11eb-2222-973b9140e460&quot;
        }
    ]
}
```

=====================================================
== File: server/protocols/webadmin/webadmin-mail-over-web/src/test/resources/message/rfc822/message.eml
=====================================================
Return-Path: &lt;mlemos@acm.org&gt;
To: Manuel Lemos &lt;mlemos@linux.local&gt;
Subject: Testing Testing
From: mlemos &lt;mlemos@acm.org&gt;
Reply-To: mlemos &lt;mlemos@acm.org&gt;
Sender: mlemos@acm.org
X-Mailer: http://www.phpclasses.org/mimemessage $Revision: 1.63 $ (mail)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=&quot;652b8c4dcb00cdcdda1e16af36781caf&quot;
Message-ID: &lt;20050430192829.0489.mlemos@acm.org&gt;
Date: Sat, 30 Apr 2005 19:28:29 -0300


--652b8c4dcb00cdcdda1e16af36781caf
Content-Type: multipart/related; boundary=&quot;6a82fb459dcaacd40ab3404529e808dc&quot;


--6a82fb459dcaacd40ab3404529e808dc
Content-Type: multipart/alternative; boundary=&quot;69c1683a3ee16ef7cf16edd700694a2f&quot;


--69c1683a3ee16ef7cf16edd700694a2f
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

This is an HTML message. Please use an HTML capable mail program to read
this message.

--69c1683a3ee16ef7cf16edd700694a2f
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Testing Manuel Lemos' MIME E-mail composing and sending PHP class: H=
TML message&lt;/title&gt;
&lt;style type=3D&quot;text/css&quot;&gt;&lt;!--
body { color: black ; font-family: arial, helvetica, sans-serif ; backgroun=
d-color: #A3C5CC }
A:link, A:visited, A:active { text-decoration: underline }
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;table background=3D&quot;cid:4c837ed463ad29c820668e835a270e8a.gif&quot; width=3D&quot;100=
%&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;center&gt;&lt;h1&gt;Testing Manuel Lemos' MIME E-mail composing and sending PHP cla=
ss: HTML message&lt;/h1&gt;&lt;/center&gt;
&lt;hr&gt;

=====================================================
== File: server/protocols/webadmin/webadmin-mail-over-web/src/test/resources/message/rfc822/message-without-from.eml
=====================================================
Return-Path: &lt;mlemos@acm.org&gt;
To: Manuel Lemos &lt;mlemos@linux.local&gt;
Subject: Testing Error
Reply-To: mlemos &lt;mlemos@acm.org&gt;
Sender: mlemos@acm.org
X-Mailer: http://www.phpclasses.org/mimemessage $Revision: 1.63 $ (mail)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=&quot;652b8c4dcb00cdcdda1e16af36781caf&quot;
Message-ID: &lt;20050430192829.0489.mlemos@acm.org&gt;
Date: Sat, 30 Apr 2005 19:28:29 -0300


--652b8c4dcb00cdcdda1e16af36781caf
Content-Type: multipart/related; boundary=&quot;6a82fb459dcaacd40ab3404529e808dc&quot;


--6a82fb459dcaacd40ab3404529e808dc
Content-Type: multipart/alternative; boundary=&quot;69c1683a3ee16ef7cf16edd700694a2f&quot;


--69c1683a3ee16ef7cf16edd700694a2f
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

This is an HTML message. Please use an HTML capable mail program to read
this message.

--69c1683a3ee16ef7cf16edd700694a2f
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Testing Manuel Lemos' MIME E-mail composing and sending PHP class: H=
TML message&lt;/title&gt;
&lt;style type=3D&quot;text/css&quot;&gt;&lt;!--
body { color: black ; font-family: arial, helvetica, sans-serif ; backgroun=
d-color: #A3C5CC }
A:link, A:visited, A:active { text-decoration: underline }
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;table background=3D&quot;cid:4c837ed463ad29c820668e835a270e8a.gif&quot; width=3D&quot;100=
%&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;center&gt;&lt;h1&gt;Testing Manuel Lemos' MIME E-mail composing and sending PHP cla=
ss: HTML message&lt;/h1&gt;&lt;/center&gt;
&lt;hr&gt;
&lt;P&gt;Hello Manuel,&lt;br&gt;&lt;br&gt;

=====================================================
== File: server/protocols/webadmin/webadmin-mail-over-web/src/test/resources/message/rfc822/message-without-tos.eml
=====================================================
Return-Path: &lt;mlemos@acm.org&gt;
Subject: Testing Error
From: mlemos &lt;mlemos@acm.org&gt;
Reply-To: mlemos &lt;mlemos@acm.org&gt;
Sender: mlemos@acm.org
X-Mailer: http://www.phpclasses.org/mimemessage $Revision: 1.63 $ (mail)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=&quot;652b8c4dcb00cdcdda1e16af36781caf&quot;
Message-ID: &lt;20050430192829.0489.mlemos@acm.org&gt;
Date: Sat, 30 Apr 2005 19:28:29 -0300


--652b8c4dcb00cdcdda1e16af36781caf
Content-Type: multipart/related; boundary=&quot;6a82fb459dcaacd40ab3404529e808dc&quot;


--6a82fb459dcaacd40ab3404529e808dc
Content-Type: multipart/alternative; boundary=&quot;69c1683a3ee16ef7cf16edd700694a2f&quot;


--69c1683a3ee16ef7cf16edd700694a2f
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

This is an HTML message. Please use an HTML capable mail program to read
this message.

--69c1683a3ee16ef7cf16edd700694a2f
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Testing Manuel Lemos' MIME E-mail composing and sending PHP class: H=
TML message&lt;/title&gt;
&lt;style type=3D&quot;text/css&quot;&gt;&lt;!--
body { color: black ; font-family: arial, helvetica, sans-serif ; backgroun=
d-color: #A3C5CC }
A:link, A:visited, A:active { text-decoration: underline }
--&gt;&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;table background=3D&quot;cid:4c837ed463ad29c820668e835a270e8a.gif&quot; width=3D&quot;100=
%&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;center&gt;&lt;h1&gt;Testing Manuel Lemos' MIME E-mail composing and sending PHP cla=
ss: HTML message&lt;/h1&gt;&lt;/center&gt;
&lt;hr&gt;
&lt;P&gt;Hello Manuel,&lt;br&gt;&lt;br&gt;

=====================================================
== File: server/protocols/jmap-draft/doc/annotation.css
=====================================================
aside {
  padding: 1em;
  margin-top: 1.5em;
  margin-bottom: 1.5em;
  background: #6F8000;
  line-height: 1.6;
  font-family: 'FontAwesome';
}
aside:before {
  padding-right: 0.5em;
  font-size: 14px;
}
aside.warning { background: #ac5c64; }
aside.warning:before { content: &quot;\f071&quot;; }
aside.notice { background: #67875C; }
aside.notice:before { content: &quot;\f06a&quot;; }

=====================================================
== File: server/protocols/jmap-draft/doc/Dockerfile
=====================================================
FROM iron/python:2-dev

RUN pip install mkdocs

COPY . /doc

RUN find . -name &quot;*.mdwn&quot; | while IFS= read -r f; do mv -v &quot;$f&quot; &quot;$(echo &quot;$f&quot; | sed -e 's/.mdwn$/.md/' - )&quot;; done

RUN mv /doc/specs/spec/apimodel.md /doc/specs/index.md

WORKDIR /doc

RUN mkdocs build --clean

WORKDIR site

EXPOSE 8000

CMD python -m SimpleHTTPServer 8000

=====================================================
== File: server/protocols/jmap-draft/doc/specs/client-guide/jmap-client-guide.mdwn
=====================================================
Guide for client developers
===========================

This guide shows how you can use JMAP to efficiently minimise bandwidth usage and round trips whilst still giving the user a complete view of their mail. This is particularly relevant to clients on mobile devices, where there is not the space to store a complete cache of all messages, or for web clients where you often do not have a permanent cache at all and must efficiently start from scratch each time the app is loaded.

A single login may have access to multiple accounts. In this guide I'm going to ignore this and just use the primary account, which I'm going to presume has full read-write mail access.

## Cold boot

When a user first logs in and you have no data cached for them, first call:

    [
        [ &quot;getMailboxes&quot;, {}, &quot;#0&quot; ]
    ]

This will fetch the list of mailboxes (folders or labels) for the user, and the permissions and roles for each. Here's an example of the response you might receive:

    [
        [ &quot;mailboxes&quot;, {
            accountId: 'user@example.com',
            state: &quot;m123456789&quot;,
            list: [
                {
                    id: &quot;mailbox1&quot;,
                    name: &quot;Inbox&quot;,
                    parentId: null,
                    role: &quot;inbox&quot;,
                    mustBeOnlyMailbox: false,
                    mayAddMessages: true,
                    mayRemoveMessages: true,
                    mayCreateChild: false,
                    mayRenameMailbox: true,
                    mayDeleteMailbox: false,
                    totalMessages: 1424,
                    unreadMessages: 3,
                    totalThreads: 1213,
                    unreadThreads: 2
                },
                {
                    id: &quot;mailbox2&quot;,
                    name: &quot;Sent&quot;,
                    parentId: null,
                    role: &quot;sent&quot;,
                    mustBeOnlyMailbox: false,
                    mayAddMessages: true,
                    mayRemoveMessages: true,
                    mayCreateChild: false,
                    mayRenameMailbox: true,
                    mayDeleteMailbox: false,
                    totalMessages: 41,

=====================================================
== File: server/protocols/jmap-draft/doc/specs/home/faq.mdwn
=====================================================
# JMAP

&lt;p style=&quot;margin-left:-40px;&quot;&gt;&lt;iframe width=&quot;780&quot; height=&quot;469&quot; src=&quot;http://www.youtube.com/embed/8qCSK-aGSBA?version=3&amp;amp;rel=0&amp;amp;fs=1&amp;amp;showsearch=0&amp;amp;showinfo=1&amp;amp;iv_load_policy=1&amp;amp;wmode=transparent&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;

## What is JMAP?

JMAP is a transport-agnostic, stateless JSON-based API for synchronising a mail client with a mail server. It is intended as a replacement for IMAP. The specification is based on the API currently used by [FastMail](https://www.fastmail.com)'s web app.  It aims to be compatible with the IMAP data model, so that it can be easily implemented on a server that currently supports IMAP, but also allows for reduced data usage and more efficient synchronisation, bundling of requests for latency mitigation and is generally much easier to work with than IMAP.

## Why is it not REST based?

JMAP is actually more REST-like than most &quot;RESTful&quot; APIs. It is stateless, highly cacheable, supports transparent intermediaries and provides a uniform interface for manipulating different resources. However, it doesn't use HTTP verbs to implement this.

When you have a high latency connection (such as on a mobile phone, or even wired connections from the other side of the world), the extra round trips required for an HTTP REST-based protocol can make a huge impact on  performance. This is especially an issue when you have an order-dependency in your API calls and you need to make sure one has finished before the other can be run (for example when you mutate the state of a message then want to fetch the changes to a mailbox containing the message). In the JMAP protocol, this can be done in a single round trip. An HTTP REST-based version would require two full round trips for the same operation.

The JMAP protocol is transport agnostic and can be easily transported over a WebSocket, for example, as well as HTTP.

## Why is it not a binary protocol?

A binary protocol would be arguably more compact and faster to encode/parse. However, history has shown text-based protocols are much easier to debug, and by using an existing widely-used encoding format (JSON) we make it much easier for developers to use this protocol. No need to write new custom, error-prone parsers. The difference in speed is likely to be minimal, especially if you GZIP the exchange and use WebSockets instead of HTTP.

## Why do labels apply to messages not threads?

Mutable state has to be stored per-message, for example the `isUnread` status must apply on a per message basis, and it's very useful to be able to flag a particular useful message rather than just the whole thread. To be able to delete a particular message to the Trash out of a thread, you need to be able to change the mailbox of that message. Sent messages should belong to the sent mailbox, but not messages you receive.

Meanwhile, it is simple to aggregate the information of the messages in the thread. So, for example, if any message in the thread is unread, then the thread can be considered unread. There is no need to store mutable state as a property of a thread therefore, and the less mutable state, the easier it is to manage. Finally, all known existing IMAP implementations, plus Gmail, store this state per-message, not per-thread, so it makes it easier for implementors to migrate to JMAP.

## Why are there flags (e.g. isUnread) separate to mailboxes?

In IMAP, you can only have one mailbox but you can have multiple flags on a single message. In other systems (where you have labels), these are really the same thing and you can have a single message in multiple mailboxes. JMAP aims to support both, so it has to be able to specify whether a mailbox can be used in combination with other mailboxes on a message, or must be the only one with the message (but does allow different flags). The clearest way of specifying what is allowed by the server is to keep the mailboxes separate to flags in JMAP as well.

## Why isUnread instead of isRead?

Although this may seem inconsistent at first, it actually makes more sense. The &quot;special&quot; status is when a message is unread (this is what clients are interested in), so like isDraft, isFlagged and isAnswered, we make the special status equal to `true`. It is also consistent with the need for unread counts in mailbox objects, not read counts, and makes the definition of sorting a message list the same for isFlagged and isUnread when conversations are collapsed.

## I want to get involved with JMAP. What do I need to know?

First of all, you should join the [JMAP mailing list](https://groups.google.com/forum/#!forum/jmap-discuss). Feedback is welcome: send your thoughts or comments on anything that is imprecise, incomplete, or could simply be done better in another way. Or if you're working on something JMAP related, this list is a good place to let other people know and to raise any issues you come across.

The specification itself is [hosted on GitHub](https://github.com/jmapio/jmap). If you've found a typo or other minor change, feel free to just submit a pull request. Otherwise, discussion on the mailing list first is preferred.

## I want to implement it. What do I need to know?

That's great! There are lots of resources on this website to help you. Counter-intuitive though it may seem, I recommend starting with the [guide for client authors](client.html) to get a good feel for how the JMAP spec works. After that though, [the spec](spec.html) is your bible and the [advice for implementors](server.html) is your friend.

If you're implementing the spec and suddenly find there's an externally visible behaviour that's not specified, please email the [mailing list](https://groups.google.com/forum/#!forum/jmap-discuss) so we can update the spec to nail down this corner.

## I want to use it to build a client. What do I need to know?

Have a read through the [client guide](client.html) to get an idea of how it works. Then you'll want to find a JMAP server to test against.

=====================================================
== File: server/protocols/jmap-draft/doc/specs/software/software.mdwn
=====================================================
# JMAP software

JMAP is still young but several implementations already exist, and more are on the way. If you're working on a project that uses JMAP, please email the [mailing list](https://groups.google.com/forum/#!forum/jmap-discuss) and we'll add it here.

## Clients

* **[JMAP Demo Webmail](https://github.com/jmapio/jmap-demo-webmail)** (JavaScript, MIT): a sophisticated demo webmail client to be used as a base for new projects. Default client for the [proxy](https://proxy.jmap.io).

## Servers

* **[JMAP Proxy](https://github.com/jmapio/jmap-perl)** (Perl, MIT): a complete JMAP server implementation that uses any IMAP, CalDAV and CardDAV store as a backend. Also available as a hosted service at [proxy.jmap.io](https://proxy.jmap.io).
* **[Cyrus IMAP](https://docs.cyrus.foundation/imap/release-notes/3.0/x/3.0.0-beta1.html)** (C, BSD-style): A scalable enterprise-grade IMAP, CalDAV and CardDAV server. The 3.0 series is adding JMAP support.
* **[salada](https://github.com/robn/salada)** (Rust, MIT): A small standalone JMAP server, suitable for development and experimentation.

## Libraries

* **[JMAP-JS](https://github.com/jmapio/jmap-js)** (JavaScript, MIT): a full implementation of the JMAP mail, calendar and contacts model in JavaScript. It supports asynchronous local changes and is tolerant of network failure &#x2013; actions will update the UI instantly, then synchronise changes back to the server when it can. It also has multi-level undo/redo support. Used by the [demo webmail](https://github.com/jmapio/jmap-demo-webmail).
* **[jmap-client](https://github.com/linagora/jmap-client)** (JavaScript ES6, MIT): a simple promise-based API to send requests to a JMAP server.
* **[jmap-rs](https://github.com/robn/jmap-rs)** (Rust, MIT): JMAP parser, generator and data model library for Rust. Used by [salada](https://github.com/robn/salada).

=====================================================
== File: server/protocols/jmap-draft/doc/specs/server-guide/jmap-server-guide.mdwn
=====================================================
# Advice for JMAP implementors

This document describes a recommended set of data structures and algorithms for efficiently implementing JMAP. It is intended to serve as suggestions only; there may well be better ways to do it. The spec is the authoritative guide on what constitutes a conformant JMAP implementation.

## Assigning Message Ids
 
A good way of assigning a message id is to sha1 the RFC2822 message and take the first 80 bits (this is sufficient for avoiding collisions in any reasonable sized instance, but the server may choose any length it likes). If this is already in use (i.e. another copy of the message already exists), sha1 the GUID. Repeat until there is no collision. The bytes can be represented in any reasonable encoding for transmission as a `String` within the API.

## Modification sequences

A modification sequence, or **modseq**, is a 63-bit monotonically incrementing counter. Each user has their own modseq counter (in IMAP it's originally per-mailbox, but per user is backwards compatible with this). Every time a change occurs to data within the user, the modseq is incremented by one and the new value is associated with the changes. This is used in a number of data structures and algorithms below to efficiently calculate changes.

## Data structures

As ever in programming, get your data structures right and the server will practically write itself.

There are three types of data structures suggested in this guide (excluding the email indexing for search, which is more complicated than this guide is prepared to go into):

1. A **Map** (associative array) of id to variable-length data blob:
   - Insert should be O(1).
   - Lookup should be O(1).
   - Delete should be O(1).
   - Not ordered, but we need to be able to iterate over all the values.
2. An **append-only log** of variable length blobs:
   - Insert is only at tail.
   - Lookup needs to be able to binary search (based on modseq) to find start location, then read sequentially.
   - Delete is only at head.
3. An **Ordered list** of fixed-sized objects:
   - Insert is mainly at or near the head, but can be in a random location.
   - Want to be able to read sequentially from head (common case), or read whole structure into memory and sort.
   - Delete is mainly near head, but can be in a random location.

### 1. User

This is a simple collection of important top-level values for the user (kept in a **Map**):

- Highest ModSeq for the user (`63 bits` for IMAP compatibility)
- Highest ModSeq of any Mailbox.
- Low watermark ModSeq for Thread Log `63 bits` &#x2013;&#xa0;whenever the thread log (see below) is truncated, the modseq of the new first item in the log is stored here. Any attempt to call *getThreadUpdates* with a modseq lower than this must be rejected with a `cannotCalculateUpdates` error.
- Low watermark ModSeq for Message Log `63 bits` &#x2013;&#xa0;the same, but for the message log.
- Quota available in bytes (63 bits. -1 =&gt; Don't care)
- Quota used in bytes `63 bits`
- List of other users with mailboxes made available to this user (shared mailboxes) (var length).
 
### 2. Mailboxes

A map of Mailbox Id to all of the mailbox object values (as defined in the spec, including the counts). For the purposes of calculating `getMailboxUpdates`, also include the following for each mailbox:

- **Mailbox ModSeq** `63 bits` Updated when any of the mailbox properties (as defined in the spec) change &#x2013; not updated when the mailbox message list changes.
- **Mailbox Non-Counts ModSeq** `63 bits` Updated when any of the mailbox properties that are not counts change. When calculating `getMailboxUpdates`, if this is lower than the previous mod seq, but the Mailbox ModSeq is higher, then only counts have changed.

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/vacationresponse.mdwn
=====================================================
## Vacation Response

The **VacationResponse** object represents the state of vacation-response
related settings for an account. It has the following properties:

- **id**: `String`
  The id of the object. This property is immutable. There is only ever one
  vacation response object, and its id is `&quot;singleton&quot;`.
- **isEnabled** `Boolean`
  Is the vacation response enabled?
- **fromDate**: `Date|null`
  If *isEnabled* is `true`, the date/time after which messages that arrive should receive the user's vacation response, in UTC. If `null`, the vacation response is effective immediately.
- **toDate**: `Date|null`
  If *isEnabled* is `true`, the date/time after which messages that arrive should no longer receive the user's vacation response, in UTC. If `null`, the vacation response is effective indefinitely.
- **textBody**: `String`
  The plain text message to send in response to messages when the vacation response is enabled.

### getVacationResponse

There MUST only be exactly one VacationResponse object in an account. It MUST have the id `&quot;singleton&quot;`.

To fetch the vacation response object, make a call to `getVacationResponse`. It takes the following argument:

- **accountId**: `String|null`
  The Account to get the vacation response for. If `null`, the primary account is used.

The response to *getVacationResponse* is called *vacationResponse*. It has the following arguments:

- **accountId**: `String`
  The id of the account used for the call.
- **list**: `VacationResponse[]`
  An array containing the single VacationResponse object.

The following errors may be returned instead of the *vacationResponse* response:

`accountNotFound`: Returned if an *accountId* was explicitly included with the request, but it does not correspond to a valid account.

`accountNoMail`: Returned if the *accountId* given corresponds to a valid account, but does not contain any mail data.

### setVacationResponse

Sets properties on the vacation response object. It takes the following arguments:

- **accountId**: `String|null`
  The Account to set the vacation response for. If `null`, the primary account is used.
- **update**: `String[VacationResponse]|null`
  A map of id (&quot;singleton&quot;) to the VacationResponse object with new values for the properties you wish to change. The object may omit any property; only properties that have changed need be included.

If any of the properties in the update are invalid (immutable and different to the current server value, wrong type), the server MUST reject the update with a SetError of type `invalidProperties`. The SetError object SHOULD contain a property called *properties* of type `String[]` that lists **all** the properties that were invalid. The object MAY also contain a *description* property of type `String` with a user-friendly description of the problems.


=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/searchsnippet.mdwn
=====================================================
## SearchSnippets
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

When doing a search on a `String` property, the client may wish to show the relevant section of the body that matches the search as a preview instead of the beginning of the message, and to highlight any matching terms in both this and the subject of the message. Search snippets represent this data.

A **SearchSnippet** object has the following properties:

- **messageId**: `String`
  The message id the snippet applies to.
- **subject**: `String|null`
  If text from the filter matches the subject, this is the subject of the message HTML-escaped, with matching words/phrases wrapped in `&lt;mark&gt;&lt;/mark&gt;` tags. If it does not match, this is `null`.
- **preview**: `String|null`
  If text from the filter matches the plain-text or HTML body, this is the relevant section of the body (converted to plain text if originally HTML), HTML-escaped, with matching words/phrases wrapped in `&lt;mark&gt;&lt;/mark&gt;` tags, up to 256 characters long. If it does not match, this is `null`.

It is server-defined what is a relevant section of the body for preview. If the server is unable to determine search snippets, it MUST just return `null` for both the *subject* and *preview* properties.

Note, unlike most data types, a SearchSnippet DOES NOT have a property called `id`.

### getSearchSnippets

To fetch search snippets, make a call to `getSearchSnippets`. It takes the following arguments:

- **accountId**: `String|null`
  The id of the account to use for this call. If `null`, defaults to the primary account.
- **messageIds**: `String[]`
  The list of ids of messages to fetch the snippets for.
- **filter**: `FilterCondition|FilterOperator|null`
  The same filter as passed to getMessageList; see the description of this method for details.

The response to `getSearchSnippets` is called `searchSnippets`. It has the following arguments:

- **accountId**: `String`
  The id of the account used for the call.
- **filter**: `FilterOperator`
  Echoed back from the call.
- **list**: `SearchSnippet[]`
  An array of SearchSnippets objects for the requested message ids. This may not be in the same order as the ids that were in the request.
- **notFound**: `String[]|null`
  An array of message ids requested which could not be found, or `null` if all
  ids were found.

Since snippets are only based on immutable properties, there is no state string or update mechanism needed.

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/push.mdwn
=====================================================
## Push
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

Any modern email client should be able to update instantly whenever the data on the server is changed by another client or message delivery. Push notifications in JMAP occur out-of-band (i.e. not over the same connection as API exchanges) so that they can make use of efficient native push mechanisms on different platforms.

The general model for push is simple and does not send any sensitive data over the push channel, making it suitable for use with less trusted 3rd party intermediaries. The format allows multiple changes to be coalesced into a single push update, and the frequency of pushes to be rate limited by the server. It doesn't matter if some push events are dropped before they reach the client; it will still get all changes next time it syncs.

When something changes on the server, the server pushes a small JSON object to the client with the following property:

- **changed**: `String[ChangedStates]`
  A map of *account id* to an object encoding the state of data types which have changed for that account since the last push event, for each of the accounts to which the user has access and for which something has changed.

A **ChangedStates** object is a map of the type name (e.g. &quot;Mailbox&quot; or &quot;Message&quot;) to the current state token for that type (i.e. the &quot;state&quot; property that would currently be returned by a call to &quot;getMailboxes&quot; or &quot;getMessages&quot;, as appropriate). The types in JMAP are &quot;Mailbox&quot;, &quot;Thread&quot;, &quot;Message&quot;, &quot;ContactGroup&quot;, &quot;Contact&quot;, &quot;Calendar&quot;, &quot;CalendarEvent&quot;.

Upon receiving this data, the client can compare the new state strings with its current values to see whether it has the current data for these types. The actual changes can then be efficiently fetched in a single standard API request (using the *getFooUpdates* type methods).

### Event Source

There are two mechanisms by which the client can receive the push events. The first is directly via a `text/event-stream` resource, as described in
&lt;http://www.w3.org/TR/eventsource/&gt;. This is essentially a long running HTTP request down which the server can push data. When a change occurs, the server MUST push an event called **state** to any connected clients.

The server MAY also set a new `Last-Event-Id` that encodes the entire server state visible to the user. When a new connection is made to the event-source endpoint, the server can then work out whether the client has missed some changes which it should send immediately.

The server MUST also send an event called **ping** with an empty object as the data if a maximum of 5 minutes has elapsed since the previous event. This MUST NOT set a new `Last-Event-Id`. A client may detect the absence of these to determine that the HTTP connection has been dropped somewhere along the route and so it needs to re-establish the connection.

Refer to the Authentication section of this spec for details on how to get the URL for the event-source endpoint. The request must be authenticated using an `Authorization` header like any HTTP request.

A client MAY hold open multiple connections to the event-source, although it SHOULD try to use a single connection for efficiency.

### setPushCallback

The second push mechanism is to register a callback URL to which the JMAP server will make an HTTPS POST request whenever the event occurs. The request MUST have a content type of `application/json` and contain the same UTF-8 JSON encoded object as described above as the body.

The JMAP server MUST also set the following headers in the POST request:
- `X-JMAP-EventType: state`
- `X-JMAP-User: ${username}` where `${username}` is the username of the authenticated user for which the push event occurred.

The JMAP server MUST follow any redirects. If the final response code from the server is `2xx`, the callback is considered a success. If the response code is `503` (Service Unavailable), the JMAP server MAY try again later (but may also just drop the event). If the response code is `429` (Too Many Requests) the JMAP server SHOULD attempt to reduce the frequency of pushes to that URL. Any other response code SHOULD be considered a **permanent failure** and the callback should be deregistered (not tried again even for future events unless explicitly re-registered by the client).

The URL set by the client MUST use the HTTPS protocol and SHOULD encode within it a unique token that can be verified by the server to know that the request comes from the JMAP server the authenticated client connected to.

The callback is tied to the access token used to create it. Should the access token expire or be revoked, the callback MUST be removed by the JMAP server. The client MUST re-register the callback after reauthenticating to resume callbacks.

Each session may only have a single callback URL registered. To set it, make a call to *setPushCallback*. It takes the following argument:

- **callback**: `String|null`
  The (HTTPS) URL the JMAP server should POST events to. This will replace any previously set URL. Set to `null` to just remove any previously set callback URL.


=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/calendarevent.mdwn
=====================================================
## Calendar Events
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

A CalendarEvent contains information about an event, or recurring series of events, that takes place at a particular time. The object is designed to be easily convertible to/from iCalendar format ([RFC 5545](https://tools.ietf.org/html/rfc5545)) for compatibility with existing calendaring systems.

A **CalendarEvent** object has the following properties:

- **id**: `String`
  The id of the event. This property is immutable.
- **calendarId**: `String`
  The id of the calendar this event belongs to.
- **summary**: `String`
  A short summary of the event. This maps to the SUMMARY property in iCalendar.
- **description**: `String`
  A longer form description of the event. This is plain text, not HTML, but
  a client *should* attempt to mark up URLs. This maps to the DESCRIPTION property in iCalendar.
- **location**: `String`
  Where the event is to take place. This maps to the LOCATION property in iCalendar.
- **showAsFree**: `Boolean`
  If true, the even should be ignored when calculating free/busy data for the
  user. This maps to the TRANSP property in iCalendar (`false &lt;=&gt; OPAQUE`, `true &lt;=&gt; TRANSPARENT`).
- **isAllDay**: `Boolean`
  Is the event an all day event, such as a birthday or public holiday? This corresponds to the type (DATE or DATE-TIME) of the DTSTART property in iCalendar.
- **start**: `LocalDate`
  The date/time the event would start in the event's time zone. This corresponds to the DTSTART property in iCalendar.
- **end**: `LocalDate`
  The date/time the event would end in the event's time zone. This corresponds to the DTSTART/DURATION or DTEND property in iCalendar.
- **startTimeZone**: `String|null`
  The [Olsen Time Zone Database](http://www.iana.org/time-zones) name for the timezone the start of the event is actually in, or `null` for floating time. This corresponds to the TZID part of the DTSTART property; if the underlying iCalendar file does not use an Olsen name, the server SHOULD try to guess the correct time zone based on the VTIMEZONE information, or fallback to floating time.
- **endTimeZone**: `String|null`
  The [Olsen Time Zone Database](http://www.iana.org/time-zones) name for the timezone the end of the event is actually in, or `null` for floating time. This corresponds to the TZID part of the DTEND property (or DTSTART if not present); if the underlying iCalendar file does not use an Olsen name, the server SHOULD try to guess the correct time zone based on the VTIMEZONE information, or fallback to floating time.
- **recurrence**: `Recurrence|null`
  The recurrence rule for the event, or `null` if it does not recur. This corresponds to the RRULE property in iCalendar.
- **inclusions**: `LocalDate[]|null`
  List of extra **local** start times to recur on. The list MUST be sorted in date order (oldest first). This corresponds to the RDATE property in iCalendar.
- **exceptions**: `LocalDate[null|CalendarEvent]|null`
  An object mapping an occurrence start time (in **local time**, not UTC) to either:
  - `null`: The occurrence has been deleted. This corresponds to the EXDATE property in iCalendar.
  - `CalendarEvent`: A partial CalendarEvent object. Any properties in the object override the property of the same name for this occurrence. This corresponds to extra VEVENTs with RECURRENCE-IDs in iCalendar. Allowed properties are:
    - summary
    - description
    - location
    - showAsFree
    - start
    - end
    - startTimeZone
    - endTimeZone
    - alerts

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/thread.mdwn
=====================================================
## Threads
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

Replies are grouped together with the original message to form a thread. In JMAP, a thread is simply a flat list of messages, ordered by date. Every message MUST belong to a thread, even if it is the only message in the thread.

The JMAP spec does not require the server to use any particular algorithm for determining whether two messages belong to the same thread, however there is a recommended algorithm in the [implementation guide](server.html).

If messages are delivered out of order for some reason, a user may receive two messages in the same thread but without headers that associate them with each other. The arrival of a third message in the thread may provide the missing references to join them all together into a single thread. Since the `threadId` of a message is immutable, if the server wishes to merge the threads, it MUST handle this by deleting and reinserting (with a new message id) the messages that change threadId.

A **Thread** object has the following properties:

- **id**: `String`
  The id of the thread. This property is immutable.
- **messageIds**: `String[]`
  The ids of the messages in the thread, sorted such that:
  - Any message with `isDraft == true` and an *inReplyToMessageId* property that corresponds to another message in the thread comes immediately after that message in the sort order.
  - Other than that, everything is sorted in date order (the same as the *date* property on the Message object), oldest first.

### getThreads

Threads can only be fetched explicitly by id. To fetch threads, make a call to *getThreads*. It takes the following arguments:

- **accountId**: `String|null`
  The id of the account to use for this call. If not given, defaults to the primary account.
- **ids**: `String[]`
  An array of ids for the threads to fetch.
- **fetchMessages**: `Boolean|null`
  If true, after outputting a *threads* response, an implicit call will be made to *getMessages* with a list of all message ids in the returned threads as the *ids* argument, and the *fetchMessageProperties* argument as the *properties* argument. If `false` or `null`, no implicit call will be made.
- **fetchMessageProperties**: `String[]|null`
  The list of properties to fetch on any fetched messages. See *getMessages* for a full description.

The response to *getThreads* is called *threads*. It has the following arguments:

- **accountId**: `String`
  The id of the account used for the call.
- **state**: `String`
  A string encoding the current state on the server. This string will change
  if any threads change (that is, new messages arrive, or messages are deleted, as these are the only two events that change thread membership). It can be passed to *getThreadUpdates* to efficiently get the list of changes from the previous state.
- **list**: `Thread[]`
  An array of Thread objects for the requested thread ids. This may not be in the same order as the ids were in the request.
- **notFound**: `String[]|null`
  An array of thread ids requested which could not be found, or `null` if all ids were found.

The following errors may be returned instead of the `threads` response:

`accountNotFound`: Returned if an *accountId* was explicitly included with the request, but it does not correspond to a valid account.

`accountNoMail`: Returned if the *accountId* given corresponds to a valid account, but does not contain any mail data.

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/mailbox.mdwn
=====================================================
## Mailboxes

A mailbox represents a named set of emails. This is the primary mechanism for organising messages within an account. It is analogous to a folder in IMAP or a label in other systems. A mailbox may perform a certain role in the system.

A **Mailbox** object has the following properties:

- **id**: `String`
  The id of the mailbox. This property is immutable.
- **name**: `String`
  User-visible name for the mailbox, e.g. &quot;Inbox&quot;. This may be any UTF-8 string of at least 1 character in length and maximum 256 bytes in size. Mailboxes MAY have the same name as a sibling Mailbox.
- **parentId**: `String|null`
  &lt;aside class=&quot;warning&quot;&gt;
  Not implemented
  &lt;/aside&gt;
  The mailbox id for the parent of this mailbox, or `null` if this mailbox is at the top level. Mailboxes form acyclic graphs (forests) directed by the child-to-parent relationship. There MUST NOT be a loop.
- **role**: `String|null`
  &lt;aside class=&quot;notice&quot;&gt;
  The role of a mailbox depends actually on the mailbox name.
  We should implement RFC 6154 in James in order to fully support this feature.
  &lt;/aside&gt;
  Identifies system mailboxes. This property is immutable.

  The following values SHOULD be used for the relevant mailboxes:

  - `inbox` &#x2013;&#xa0;the mailbox to which new mail is delivered by default, unless diverted by a rule or spam filter etc.
  - `archive` &#x2013;&#xa0;messages the user does not need right now, but does not wish to delete.
  - `drafts` &#x2013; messages the user is currently writing and are not yet sent.
  - `outbox` &#x2013;&#xa0;messages the user has finished writing and wishes to send (see the `setMessages` method description for more information). A mailbox with this role MUST be present if the user is allowed to send mail through an account. If not present, the user MAY NOT send mail with that account.
  - `sent` &#x2013;&#xa0;messages the user has sent.
  - `trash` &#x2013;&#xa0;messages the user has deleted.
  - `spam` &#x2013;&#xa0;messages considered spam by the server.
  - `templates` &#x2013;&#xa0;drafts which should be used as templates (i.e. used as the basis for creating new drafts).

  No two mailboxes may have the same role. Mailboxes without a known purpose MUST have a role of `null`.

  An account is not required to have mailboxes with any of the above roles. A client MAY create new mailboxes with a role property to help them keep track of a use-case not covered by the above list. To avoid potential conflict with any special behaviour a server might apply to mailboxes with certain roles in the future, any roles not in the above list created by the client must begin with `&quot;x-&quot;`. The client MAY attempt to create mailboxes with the standard roles if not already present, but the server MAY reject these.
- **sortOrder**: `Number`
  Defines the sort order of mailboxes when presented in the UI, so it is
  consistent between devices. The number MUST be an integer in the range
  0 &lt;= sortOrder &lt; 2^31.

  A mailbox with a lower order should be displayed before a mailbox with
  a higher order (but the same parent) in any mailbox listing in the
  client's UI. Mailboxes with equal order should be sorted in
  alphabetical order by name. The sorting should take into locale-specific
  character order convention.
- **mustBeOnlyMailbox**: `Boolean`
  &lt;aside class=&quot;warning&quot;&gt;
  Not implemented
  &lt;/aside&gt;

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/message.mdwn
=====================================================
## Messages

Just like in IMAP, a message is **immutable** except for the boolean `isXXX` status properties and the set of mailboxes it is in. This allows for more efficient caching of messages, and gives easier backwards compatibility for servers implementing an IMAP interface to the same data.

JMAP completely hides the complexities of MIME. All special encodings of either headers or the body, such as [base64](https://tools.ietf.org/html/rfc4648), or [RFC2047](http://tools.ietf.org/html/rfc2047) encoding of non-ASCII characters, MUST be fully decoded into standard UTF-8.

A **Message** object has the following properties:

- **id**: `String`
  &lt;aside class=&quot;notice&quot;&gt;
  Work in progress. Unique message id is generated by concatenate the username, the mailboxId and the uid.
  &lt;/aside&gt;
  The id of the message.
- **blobId**: `String`
  &lt;aside class=&quot;warning&quot;&gt;
  Not implemented
  &lt;/aside&gt;
  The id representing the raw RFC2822 message. This may be used to download
  the original message or to attach it directly to another message etc.
- **threadId**: `String`
  &lt;aside class=&quot;warning&quot;&gt;
  Not implemented
  &lt;/aside&gt;
  The id of the thread to which this message belongs.
- **mailboxIds**: `String[]` (Mutable)
  The ids of the mailboxes the message is in. A message MUST belong to one or more mailboxes at all times (until it is deleted).
- **inReplyToMessageId**: `String|null`
  The id of the Message this message is a reply to. This is primarily for drafts, but the server MAY support this for received messages as well by looking up the RFC2822 Message-Id referenced in the `In-Reply-To` header and searching for this message in the user's mail.
- **isUnread**: `Boolean` (Mutable)
  Has the message not yet been read? This corresponds to the **opposite** of the `\Seen` system flag in IMAP.
- **isFlagged**: `Boolean` (Mutable)
  Is the message flagged? This corresponds to the `\Flagged` system flag in IMAP.
- **isAnswered**: `Boolean` (Mutable)
  Has the message been replied to? This corresponds to the `\Answered` system flag in IMAP.
- **isDraft**: `Boolean` (Mutable by the server only)
  Is the message a draft? This corresponds to the `\Draft` system flag in IMAP.
- **hasAttachment**: `Boolean`
  Does the message have any attachments?
- **headers**: `String[String]`
  A map of header name to (decoded) header value for all headers in the message. For headers that occur multiple times (e.g. `Received`), the values are concatenated with a single new line (`\n`) character in between each one.
- **from**: `Emailer|null`
  An Emailer object (see below) containing the name/email from the parsed `From` header of the email. If the email doesn't have a `From` header, this is `null`.
- **to**:  `Emailer[]|null`
  An array of name/email objects (see below) representing the parsed `To` header of the email, in the same order as they appear in the header. If the email doesn't have a `To` header, this is `null`. If the header exists but does not have any content, the response is an array of zero length.
- **cc**:  `Emailer[]|null`
  An array of name/email objects (see below) representing the parsed `Cc` header of the email, in the same order as they appear in the header. If the email doesn't have a `Cc` header, this is `null`. If the header exists but does not have any content, the response is an array of zero length.
- **bcc**:  `Emailer[]|null`
  An array of name/email objects (see below) representing the parsed `Bcc` header of the email. If the email doesn't have a `Bcc` header (which will be true for most emails outside of the Sent mailbox), this is `null`. If the header exists but does not have any content, the response is an array of zero length.
- **replyTo**: `Emailer|null`
  An Emailer object (see below) containing the name/email from the parsed `Reply-To` header of the email. If the email doesn't have a `Reply-To` header, this is `null`.

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/account.mdwn
=====================================================
## Accounts
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

A single login may provide access to multiple accounts, for example if another user is sharing their mail with the logged in user.

All data belongs to an account. With the exception of a few explicit operations to copy data between accounts, all methods take an *accountId* argument that specifies on which account the operations are to take place. This argument is always optional; if not specified, the primary account is used. All ids (other than Account ids of course) are only unique within their account.

An **Account** object has the following properties:

- **id**: `String`
  The id of the account. This property is immutable.
- **name**: `String`
  A user-friendly string to show when presenting content from this account. e.g. the email address of the account.
- **isPrimary**: `Boolean`
  This MUST be true for exactly one of the accounts returned.
- **capabilities**: `AccountCapabilities`
  An object describing general capabilities of this server.
- **mail**: `MailCapabilities|null`
  If `null`, this account does not support mail, and any use of the mail-related methods with this account will result in an `accountNoMail` error. Otherwise, it will be an object describing certain capabilities of the mail system.
- **contacts**: `ContactsCapabilities|null`
  If `null`, this account does not support contacts, and any use of the contacts-related methods with this account will result in an `accountNoContacts` error. Otherwise, it will be an object describing certain capabilities of the contacts system.
- **calendars**: `CalendarsCapabilities|null`
  If `null`, this account does not support calendars, and any use of the calendar-related methods with this account will result in an `accountNoCalendars` error. Otherwise, it will be an object describing certain capabilities of the calendars system.

An **AccountCapabilities** object has the following properties:

- **maxSizeUpload**: `Number`
  The maximum file size, in bytes, that the server will accept for a single file upload (for any purpose).

A **MailCapabilities** object has the following properties:

- **isReadOnly**: `Boolean`
  True if the user has read-only access to the mail in this account. The user may not use the `set`-type mail methods with this account.
- **maxSizeMessageAttachments**: `Number`
  The maximum total size of attachments, in bytes, allowed for messages. A server MAY still reject messages with a lower attachment size total (for example, if the body includes several megabytes of text, causing the size of the encoded MIME structure to be over some server-defined limit).
- **canDelaySend**: `Boolean`
  Does the server support inserting a message into the outbox to be sent later at a user-specified time?
- **messageListSortOptions**: `String[]`
  A list of all the message properties the server supports for sorting by. This MAY include properties the client does not recognise (for example custom properties specified in the vendor extension). Clients MUST just ignore any unknown properties in the list.

A **ContactsCapabilities** object has the following properties:

- **isReadOnly**: `Boolean`
  True if the user has read-only access to the contacts in this account. The user may not use the `set`-type contacts methods with this account.

A **CalendarsCapabilities** object has the following properties:

- **isReadOnly**: `Boolean`

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/contactgroup.mdwn
=====================================================
## Contact Groups
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

A **Contact Group** represents a named set of contacts. It has the following properties:

- **id**: `String`
  The id of the group. This property is immutable.
- **name**: `String`
  The user-visible name for the group, e.g. &quot;Friends&quot;. This may be any UTF-8 string of at least 1 character in length and maximum 256 bytes in size. The same name may be used by two different groups.
- **contactIds**: `String[]`
  The ids of the contacts in the group. This must be returned in the same order given by the client when the property is set.

### getContactGroups

Contact Groups can either be fetched explicitly by id, or all of them at once. To fetch contact groups, make a call to `getContactGroups`. It takes the following arguments:

- **accountId**: `String|null`
  The Account to fetch the groups for. If `null`, the primary account is used.
- **ids**: `String[]|null`
  The ids of the groups to fetch. If `null`, all contact groups in the account are be fetched.

The response to *getContactGroups* is called *contactGroups*. It has the following arguments:

- **accountId**: `String`
  The id of the account used for the call.
- **state**: `String`
  A string representing the state on the server for **all** contact groups. If the name of a group changes, or a new group is created, or a group is destroyed, this string will change. It is used to get delta updates.
- **list**: `ContactGroup[]`
  An array of the ContactGroup objects requested. This will be the **empty array** if the *ids* argument was the empty array, or contained only ids for contact groups that could not be found.
- **notFound**: `String[]|null`
  This array contains the ids passed to the method for groups that do not exist, or `null` if all requested ids were found. It will always be `null` if the *ids* argument in the call was `null`.

The following errors may be returned instead of the *contactGroups* response:

`accountNotFound`: Returned if an *accountId* was explicitly included with the request, but it does not correspond to a valid account.

`accountNoContacts`: Returned if the *accountId* given corresponds to a valid account, but does not contain any contact data.

`invalidArguments`: Returned if one of the arguments is of the wrong type, or otherwise invalid. A `description` property MAY be present on the response object to help debug with an explanation of what the problem was.

### getContactGroupUpdates

The *getContactGroupUpdates* call allows a client to efficiently update the state of its cached contacts to match the new state on the server. It takes the following arguments:

- **accountId**: `String|null`
  The id of the account to use for this call. If `null`, the primary account will be used.
- **sinceState**: `String`
  The current state of the client. This is the string that was returned as the *state* argument in the *contactGroups* response. The server will return the changes made since this state.

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/calendar.mdwn
=====================================================
## Calendars
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

A Calendar is a named collection of events. All events are associated with one, and only one, calendar.

A **Calendar** object has the following properties:

- **id**: `String`
  The id of the calendar. This property is immutable.
- **name**: `String`
  The user-visible name of the calendar. This may be any UTF-8 string of at least 1 character in length and maximum 256 bytes in size.
- **color**: `String`
  Any valid CSS color value. The color to be used when displaying events associated with the calendar. The color SHOULD have sufficient contrast to be used as text on a white background.
- **sortOrder**: `Number`
  Defines the sort order of calendars when presented in the UI, so it is
  consistent between devices. The number MUST be an integer in the range
  0 &lt;= sortOrder &lt; 2^31.

  A calendar with a lower order should be displayed before a calendar with
  a higher order in any list of calendars in the client's UI. Calendars with
  equal order should be sorted in alphabetical order by name. The sorting
  should take into locale-specific character order convention.
- **isVisible**: `Boolean`
  Should the calendar's events be displayed to the user at the moment?
- **mayReadFreeBusy**: `Boolean`
  The user may read the free-busy information for this calendar. In JMAP
  terms, this means the user may use this calendar as part of a filter in a
  *getCalendarEventList* call, however unless `mayRead == true`, the events
  returned for this calendar will only contain free-busy information, and be stripped of any other data.
  This property MUST be `true` if *mayRead* is `true`.
- **mayReadItems**: `Boolean`
  The user may fetch the events in this calendar. In JMAP terms, this means
  the user may use this calendar as part of a filter in a
  *getCalendarEventList* call
- **mayAddItems**: `Boolean`
  The user may add events to this calendar. In JMAP terms, this means the
  user may call *setCalendarEvents* to create new events in this calendar or
  move existing events into this calendar from another calendar.
  This property MUST be `false` if the account to which this calendar belongs
  has the *isReadOnly* property set to `true`.
- **mayModifyItems**: `Boolean`
  The user may edit events in this calendar by calling *setCalendarEvents* with
  the *update* argument referencing events in this collection.
  This property MUST be `false` if the account to which this calendar belongs
  has the *isReadOnly* property set to `true`.
- **mayRemoveItems**: `Boolean`
  The user may remove events from this calendar by calling *setCalendarEvents*
  with the *destroy* argument referencing events in this collection, or by

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/contactlist.mdwn
=====================================================
## ContactLists
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

A **ContactList** is a query on the set of contacts in a user's contacts. The client can optionally also fetch the contacts.

### getContactList

To fetch a contact list, make a call to *getContactList*. It takes the following arguments:

- **accountId**: `String|null`
  The id of the account to use for this call. If `null`, the primary account will be used.
- **filter**: `FilterCondition|FilterOperator|null`
  Determines the set of contacts returned in the results. See the &quot;Filtering&quot; section below for allowed values and semantics.
- **position**: `Number|null`
  The 0-based index of the first result in the list to return, presumed `0` if `null`. If a negative value is given, the call MUST be rejected with an `invalidArguments` error.
- **limit**: `Number|null`
  The maximum number of results to return. If `null`, no limit presumed. The server MAY choose to enforce a maximum `limit` argument. In this case, if a greater value is given (or if it is `null`), the limit should be clamped to the maximum; since the total number of results in the list is returned, the client can determine if it has received all the results. If a negative value is given, the call MUST be rejected with an `invalidArguments` error.
- **fetchContacts**: `Boolean|null`
  If `true` then after outputting a *contactList* response, an implicit call will be made to *getContacts* with the `contactIds` array in the response as the *ids* argument. If `false` or `null`, no implicit call will be made.

#### Filtering

A **FilterOperator** object has the following properties:

- **operator**: `String`
  This MUST be one of the following strings: &quot;AND&quot;/&quot;OR&quot;/&quot;NOT&quot;:
  - **AND**: all of the conditions must match for the filter to match.
  - **OR**: at least one of the conditions must match for the filter to match.
  - **NOT**: none of the conditions must match for the filter to match.
- **conditions**: `(FilterCondition|FilterOperator)[]`
  The conditions to evaluate against each contact.

A **FilterCondition** object has the following properties:

- **inContactGroup**: `String[]|null`
  A list of contact group ids. A contact must be in ANY of these groups to match the condition.
- **isFlagged**: `Boolean|null`
  The `isFlagged` property of the contact must be identical to the value given to match the condition.
- **text**: `String|null`
  Equivalent to ORing together a FilterCondition for each of the `String` typed conditions (prefix, firstName, etc.).
- **prefix**: `String`
  Looks for the text in the *prefix* property of the contact.
- **firstName**: `String`
  Looks for the text in the *firstName* property of the contact.
- **lastName**: `String`
  Looks for the text in the *lastName* property of the contact.
- **suffix**: `String`
  Looks for the text in the *suffix* property of the contact.

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/contact.mdwn
=====================================================
## Contacts
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

A **Contact** object stores information about a person or company. It has the following properties:

- **id**: `String`
  The id of the contact. This property is immutable.
- **isFlagged**: `Boolean`
  Is the contact flagged (marked as important in some way by the user)?
- **avatar**: `File|null`
  A file containing an image to be used to represent this contact.
- **prefix**: `String`
  The honorific title of the contact, e.g. &quot;Mr&quot;, &quot;Ms&quot;, &quot;Dr&quot;, etc.
- **firstName**: `String`
  The first name(s) of a contact.
- **lastName**: `String`
  The last name of a contact.
- **suffix**: `String`
  The honorific suffix of the contact, e.g. &quot;B.A.&quot;, &quot;Esq.&quot; etc.
- **nickname**: `String`
  The nickname of the contact.
- **birthday**: `String`
  The person's birth date in the form `&quot;YYYY-MM-DD&quot;` (any part may be all `0`s for unknown).
- **anniversary**: `String`
  The person's anniversary date in the form `&quot;YYYY-MM-DD&quot;` (any part may be all `0`s for unknown).
- **company**: `String`
  The company for which the person works.
- **department**: `String`
  The department within the company for which the person works.
- **jobTitle**: `String`
  The job title of the person.
- **emails**: `ContactInformation[]`
  An array of ContactInformation objects where the values are email addresses. Types are:
  - `&quot;personal&quot;` The address is for emailing the person in a personal context.
  - `&quot;work&quot;` The address is for emailing the person in a professional context.
  - `&quot;other&quot;` The address is for some other purpose. A *label* property MAY be included to display next to the address to help the user identify its purpose.
- **phones**: `ContactInformation[]`
  An array of ContactInformation objects where the values are phone numbers. Types are:
  - `&quot;home&quot;` The number is for contacting the person at their residence.
  - `&quot;work&quot;` The number is for contacting the person at their workplace.
  - `&quot;mobile&quot;` The number is for contacting the person regardless of location.
  - `&quot;fax&quot;` The number is for sending faxes to the contact.
  - `&quot;pager&quot;` The number is for a pager or beeper associated with the contact.
  - `&quot;other&quot;` The number is for some other purpose. A *label* property MAY be included to display next to the number to help the user identify its purpose.
- **online**: `ContactInformation[]`
  An array of ContactInformation objects where the values are URIs or usernames associated with the person for online services.
  Types are:
  - `&quot;uri&quot;` The value is a URI, e.g. a website link.

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/upload.mdwn
=====================================================
## File Uploads
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

There is a single endpoint which handles all file uploads, regardless of what they are to be used for. To upload a file, submit a POST request to the file upload endpoint (see the authentication section for information on how to obtain this URL). The Content-Type MUST be correctly set for the type of the file being uploaded. The request MUST be authenticated as per any HTTP request. The request MAY include an &quot;X-JMAP-AccountId&quot; header, with the value being the account to use for the request. Otherwise, the default account will be used.

The server will respond with one of the following HTTP response codes:

#### `201`: File uploaded successfully

The content of the response is a single JSON object with the following properties:

- **accountId**: `String`
  The id of the account used for the call.
- **blobId**: `String`,
  The id representing the binary data uploaded. The data for this id is immutable. The id *only* refers to the binary data, not any metadata.
- **type**: `String`
  The content type of the file.
- **size**: `Number`
  The size of the file in bytes.
- **expires**: `Date`
  The date the file will be deleted from temp storage if not referenced by another object, e.g. used in a draft.

Once the file has been used, for example attached to a draft message, the file will no longer expire, and is instead guaranteed to exist while at least one other object references it. Once no other object references it, the server MAY immediately delete the file at any time. It MUST NOT delete the file during the method call which removed the last reference, so that if there is a create and a delete within the same call which both reference the file, this always works.

If uploading a file would take the user over quota, the server SHOULD delete previously uploaded (but unused) files before their expiry time. This means a client does not have to explicitly delete unused temporary files (indeed, there is no way for it to do so).

If identical binary content is uploaded, the same *blobId* SHOULD be returned.

#### `400`: Bad request

The request was malformed (this includes the case where an `X-JMAP-AccountId` header is sent with a value that does not exist). The client SHOULD NOT retry the same request.

#### `401`: Unauthorized

The `Authorization` header was missing or did not contain a valid token. Reauthenticate and then retry the request. There is no content in the response.

#### `404`: Not Found

The upload endpoint has moved. See the Authentication section of the spec for how to rediscover the current URL to use. There is no content in the response.

#### `413`:  Request Entity Too Large

The file is larger than the maximum size the server is willing to accept for a single file. The client SHOULD NOT retry uploading the same file. There is no content in the response. The client may discover the maximum size the server is prepared to accept by inspecting the capabilities property of the Account object.

#### `415`: Unsupported Media Type

The server MAY choose to not allow certain content types to be uploaded, such as executable files. This error response is returned if an unacceptable type is uploaded. The client SHOULD NOT retry uploading the same file. There is no content in the response.


=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/authentication.mdwn
=====================================================
## Authentication

Before connecting to any JMAP service, the client must first gain an access token. It cannot just use a username/password directly. This allows the server to know (and show the user) which clients currently have access to the account, and to be able to revoke access individually.

The server may support multiple different mechanisms for authenticating a user to gain the access token. It is expected that further types may be added in future extensions to the JMAP specification (for example [FIDO](https://fidoalliance.org/)).

### Service autodiscovery
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

There are three common autodiscovery methods in use for internet protocols:

- **DNS srv**
  See [RFC6186](https://tools.ietf.org/html/rfc6186) and [RFC6764](https://tools.ietf.org/html/rfc6764)
- **.well-known/`servicename`**
  See [RFC5785](https://tools.ietf.org/html/rfc5785)
- **autoconfig.example.com**/**autodiscover.example.com**
  Used by [Thunderbird](https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Autoconfiguration/FileFormat/HowTo) and Outlook.

A JMAP-supporting email host for the domain `example.com` SHOULD publish a SRV record `_jmaps._tcp.example.com` which gives a hostname and port (usually port `443`).

The authentication URL is `https://hostname/.well-known/jmap` (following any redirects).

Other autodiscovery options using `autoconfig.example.com` or `autodiscover.example.com` may be added to a future version of JMAP to support clients which can't use SRV lookup.

### Getting an access token
&lt;aside class=&quot;notice&quot;&gt;
Partially supported
&lt;/aside&gt;

Authorization always starts with the client making a POST request to the authentication URL (found either via service autodiscovery or manual entry). The request MUST be of type `application/json` and specify an `Accept: application/json` header. The body of the request MUST be a single JSON object, encoded in UTF-8, with the following properties:

- **username**: `String`
  The username the client wishes to authenticate. This is normally the primary email address of the user.
- **clientName**: `String`
  The name of the client software. e.g. `Mozilla Thunderbird`.
- **clientVersion**: `String`
  Information to identify the version of the client.  This MUST change for any changed client code (e.g. a version control tag or counter for development software) and SHOULD sort lexically later for newer versions.
- **deviceName**: `String`
  A human-friendly string to identify the device making the request, e.g. &quot;Joe Blogg's iPhone&quot;.

The server may use the client/device information to help identify the login to the user in a login log or other security reporting. Although hopefully unnecessary, they may also be helpful for working around client bugs in the future.

The server will respond with one of the following HTTP status codes:

#### `200`: Success, but more authorization required.

The response body will be a single JSON object with the following properties.


=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/messagelist.mdwn
=====================================================
## MessageLists

A **MessageList** is a sorted query on the set of messages in a user's account. Since it can be very long, the client must specify what section of the list to return. The client can optionally also fetch the threads and/or messages for this part of the list.

The same message may appear in multiple messages lists. For example, it may belong to multiple mailboxes, and of course it can appear in searches. Since messages have an immutable id, a client can easily tell if it already has a message cached and only fetch the ones it needs.

When the state changes on the server, a delta update can be requested to efficiently update the client's cache of this list to the new state. If the server doesn't support this, the client still only needs to fetch the message list again, not the messages themselves.

### getMessageList

To fetch a message list, make a call to *getMessageList*. It takes the following arguments:

- **accountId**: `String|null`
  &lt;aside class=&quot;warning&quot;&gt;
  Not implemented
  &lt;/aside&gt;
  The id of the account to use for this call. If `null`, the primary account will be used.
- **filter**: `FilterCondition|FilterOperator|null`
  &lt;aside class=&quot;notice&quot;&gt;
  Only filtering on a list of mailboxIds is supported
  &lt;/aside&gt;
  Determines the set of messages returned in the results. See the &quot;Filtering&quot; section below for allowed values and semantics.
- **sort**: `String[]|null`
  A list of Message property names to sort by. See the &quot;Sorting&quot; section below for allowed values and semantics.
- **collapseThreads**: `Boolean|null`
  &lt;aside class=&quot;warning&quot;&gt;
  Not implemented
  &lt;/aside&gt;
  If true, each thread will only be returned once in the resulting list, at the position of the first message in the list (given the filter and sort order) belonging to the thread. If `false` or `null`, threads may be returned multiple times.
- **position**: `Number|null`
  The 0-based index of the first result in the list to return. If a negative value is given, the call MUST be rejected with an `invalidArguments` error. If `null`, 0 is used.
- **anchor**: `String|null`
  &lt;aside class=&quot;warning&quot;&gt;
  Not implemented
  &lt;/aside&gt;
  A Message id. The index of this message id will be used in combination with the `anchorOffset` argument to determine the index of the first result to return (see the &quot;Windowing&quot; section below for more details).
- **anchorOffset**: `Number|null`
  &lt;aside class=&quot;warning&quot;&gt;
  Not implemented
  &lt;/aside&gt;
  The index of the anchor message relative to the index of the first result to return. This MAY be negative. For example, `-1` means the first message after the anchor message should be the first result in the results returned (see the &quot;Windowing&quot; section below for more details).
- **limit**: `Number|null`
  The maximum number of results to return. If `null`, no limit is presumed. The server MAY choose to enforce a maximum `limit` argument. In this case, if a greater value is given, the limit should be clamped to the maximum; since the total number of results in the list is returned, the client should not be relying on how many results are returned to determine if it has reached the end of the list. If a negative value is given, the call MUST be rejected with an `invalidArguments` error.
- **fetchThreads**: `Boolean|null`
  &lt;aside class=&quot;warning&quot;&gt;
  Not implemented
  &lt;/aside&gt;
  If `true`, after outputting a *messageList* response, an implicit call will be made to *getThreads* with the *threadIds* array in the response as the *ids* argument, and the *fetchMessages* and *fetchMessageProperties* arguments passed straight through from the call to *getMessageList*. If `false` or `null`, no implicit call will be made.
- **fetchMessages**: `Boolean|null`
  &lt;aside class=&quot;warning&quot;&gt;

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/apimodel.mdwn
=====================================================
# JMAP: The Spec

&lt;div id=&quot;last-update&quot;&gt;Last updated 2016-01-15&lt;/div&gt;

This is a specification. It is meant to be readable but it also has to be comprehensive, so it can be dense in places. If you want to get a quick idea of how JMAP works, you should probably read the [guide for client developers](client.html) first. This has lots of example exchanges and should give you a good feel for what JMAP is all about. The spec is heavier going; it attempts to document exactly what each method should do, and what should happen in a myriad of edge cases.

There are undoubtably edge cases that are not yet covered. If you find one, please email &lt;editor@jmap.io&gt; or make a pull request on GitHub if you have a proposed fix.

The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be interpreted as described in [RFC2119](https://tools.ietf.org/html/rfc2119).

## The JSON API model

JSON is a text-based data interchange format as specified in [RFC7159](https://tools.ietf.org/html/rfc7159). The I-JSON format defined in [RFC7493](https://tools.ietf.org/html/rfc7493) is a strict subset of this, adding restrictions to avoid potentially confusing scenarios (for example, it mandates that an object MUST NOT have two properties with the same key). All data sent from the client to the server or from the server to the client MUST be valid I-JSON according to the RFC, encoded in UTF-8.

### The structure of an exchange

The client initiates an API request by sending the server a JSON array. Each element in this array is another array representing a method invocation on the server. The server will process the method calls and return a response consisting of an array in the same format. Each method call always contains three elements:

1. The **name** of the method to call, or the name of the response from the server. This is a `String`.
2. An `Object` containing *named* **arguments** for that method or response.
3. A **client id**: an arbitrary `String` to be echoed back with the responses emitted by that method call (as we'll see lower down, a method may return 1 or more responses, as some methods make implicit calls to other ones).

Example query:

    [
      [&quot;method1&quot;, {&quot;arg1&quot;: &quot;arg1data&quot;, &quot;arg2&quot;: &quot;arg2data&quot;}, &quot;#1&quot;],
      [&quot;method2&quot;, {&quot;arg1&quot;: &quot;arg1data&quot;}, &quot;#2&quot;],
      [&quot;method3&quot;, {}, &quot;#3&quot;]
    ]

The method calls MUST be processed sequentially, in order. Each API request
(which, as shown, may contain multiple method calls) receives a JSON
response in exactly the same format. The output of the methods MUST be added
to the array in the same order as the methods are processed.

Example response:

    [
      [&quot;responseFromMethod1&quot;, {&quot;arg1&quot;: 3, &quot;arg2&quot;: &quot;foo&quot;}, &quot;#1&quot;],
      [&quot;responseFromMethod2&quot;, {&quot;isBlah&quot;: true}, &quot;#2&quot;],
      [&quot;anotherResponseFromMethod2&quot;, {&quot;data&quot;: 10, &quot;yetmoredata&quot;: &quot;Hello&quot;}, &quot;#2&quot;],
      [&quot;aResponseFromMethod3&quot;, {}, &quot;#3&quot;]
    ]

### Errors

If the data sent as an API request is not valid JSON or does not match the structure above, an error will be returned at the transport level. For example, when using JMAP over HTTP, a `400 Bad Request` error will be returned at the HTTP level.

Possible errors for each method are specified in the method descriptions. If a method encounters an error, an `error` response must be inserted at the current point in the output array and, unless otherwise specified, no further processing must happen within that method.


=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/calendareventlist.mdwn
=====================================================
## CalendarEventLists
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

A **CalendarEventList** is a query on the set of events in a user's calendars. The client can optionally also fetch the events.

### getCalendarEventList

To fetch a calendar event list, make a call to *getCalendarEventList*. It takes the following arguments:

- **accountId**: `String|null`
  The id of the account to use for this call. If `null`, the primary account will be used.
- **filter**: `FilterCondition|FilterOperator|null`
  Determines the set of events returned in the results. See the &quot;Filtering&quot; section below for allowed values and semantics.
- **position**: `Number|null`
  The 0-based index of the first result in the list to return, presumed `0` if `null`. If a negative value is given, the call MUST be rejected with an `invalidArguments` error.
- **limit**: `Number|null`
  The maximum number of results to return. If `null`, no limit presumed. The server MAY choose to enforce a maximum `limit` argument. In this case, if a greater value is given (or if it is `null`), the limit should be clamped to the maximum; since the total number of results in the list is returned, the client can determine if it has received all the results. If a negative value is given, the call MUST be rejected with an `invalidArguments` error.
- **fetchCalendarEvents**: `Boolean|null`
  If `true` then after outputting a *calendarEventList* response, an implicit call will be made to *getCalendarEvents* with the `calendarEventIds` array in the response as the *ids* argument. If `false` or `null`, no implicit call will be made.

#### Filtering

A **FilterOperator** object has the following properties:

- **operator**: `String`
  This MUST be one of the following strings: &quot;AND&quot;/&quot;OR&quot;/&quot;NOT&quot;:
  - **AND**: all of the conditions must match for the filter to match.
  - **OR**: at least one of the conditions must match for the filter to match.
  - **NOT**: none of the conditions must match for the filter to match.
- **conditions**: `(FilterCondition|FilterOperator)[]`
  The conditions to evaluate against each event.

A **FilterCondition** object has the following properties:

- **inCalendars**: `String[]|null`
  A list of calendar ids. An event must be in ANY of these calendars to match the condition.
- **after**: `Date|null`
  The end of the event, or any recurrence of the event, in UTC time must be after this date to match the condition.
- **before**: `Date|null`
  The start of the event, or any recurrence of the event, in UTC time must be before this date to match the condition.
- **text**: `String|null`
  Looks for the text in the *summary*, *description*, *location*, *organizer*, *attendees* properties of the event or any recurrence of the event (matching either name or email in the organizer/attendee case).
- **summary**: `String|null`
  Looks for the text in the *summary* property of the event, or the overridden *summary* property of a recurrence.
- **description**: `String|null`
  Looks for the text in the *description* property of the event, or the overridden *description* property of a recurrence.
- **location**: `String|null`
  Looks for the text in the *location* property of the event, or the overridden *location* property of a recurrence.

=====================================================
== File: server/protocols/jmap-draft/doc/specs/spec/datamodel.mdwn
=====================================================
## Data model overview

### Accounts
&lt;aside class=&quot;warning&quot;&gt;
Not implemented
&lt;/aside&gt;

All data belongs to an account. An account may provide access to mail, contacts and/or calendars. Most operations are isolated to a single account; there are a few explicit operations to copy data between them. A single login may provide access to multiple accounts, for example if another user is sharing data with the user.

### Ids
&lt;aside class=&quot;notice&quot;&gt;
Work in progress. Unique message id is generated by concatenate the username, the mailboxId and the uid.
&lt;/aside&gt;

All ids for messages, contacts, etc. are assigned by the server and are immutable. They MUST be unique among all records of the **same type** within the **same account**. Ids may clash across accounts, or for two records of different types within the same account.

### Mail

As for all data types, each message has a unique, immutable id. This id does not change if the message changes mailboxes. A mailbox is a named, arbitrary set of emails. For compatibility with IMAP, a message MUST always belong to at least one mailbox at any time.

Each message has 4 mutable boolean &quot;flags&quot; stored with it, each with a direct
equivalent in IMAP. In JMAP these flags are called:

* **isUnread**: Has the email not yet been read?
* **isFlagged**: Has the email been flagged (starred, or pinned)?
* **isDraft**: Is the email a draft?
* **isAnswered**: Has the email been answered (replied to)?

Messages are **immutable** other than these 4 flags and the set of mailboxes to which it belongs. To change anything else, the message must be deleted and a new one created (which will get a different id).

Related messages are grouped into threads. When getting a message list you can collapse threads, which means the thread is only returned **once**, at the position of the first message in the thread in the non-collapsed list (given the sort order).

### Contacts

The contacts API is designed to be compatible with existing CardDAV systems. Each contact must have a unique, immutable id. A contact can be assigned to contact groups in a many-to-many relationship. A group is simply a named set of contacts. Contacts are completely mutable.

### Calendars

The calendars API is designed to be compatible with existing CalDAV systems. Each event must have a unique, immutable id. An event must belong to a single calendar. Events are completely mutable.

=====================================================
== File: server/protocols/jmap-draft/doc/mkdocs.yml
=====================================================
docs_dir: specs
site_name: JMAP specifications with annotations from apache/james contributors
theme: readthedocs
use_directory_urls: false
extra_css:
  - annotations.css

=====================================================
== File: server/protocols/jmap-draft/doc/README.md
=====================================================
Annotated JMAP documentation
============================

This directory contains annotated jmap documentation as found on http://jmap.io/.

Annotations aim at tracking implementation progress in James project.

You can read it as an html site using the provided Dockerfile.

&#x300;
$ docker build --tag=mkdocs .
$ docker run --rm -p 8000:8000 mkdocs
&#x300;

Then open http://localhost:8000/ in your browser.

=====================================================
== File: server/protocols/jmap-draft/src/main/resources/jwt-public.der
=====================================================

=====================================================
== File: server/protocols/jmap-draft/src/test/resources/noReplyTo.eml
=====================================================
Return-Path: &lt;root-bounces@listes.apache.org&gt;
Content-Type: multipart/mixed; boundary=&quot;----------=_1433322346-12583-0&quot;
MIME-Version: 1.0
From: &quot;Content-filter at spam.apache.org&quot; &lt;postmaster@apache.org&gt;
Date: Wed, 3 Jun 2015 09:05:46 +0000 (UTC)
To: &lt;root@listes.apache.org&gt;
Message-ID: &lt;VASs-IZaXqmZao@spam.apache.org&gt;
Subject: Original subject
X-BeenThere: root@listes.apache.org
Errors-To: root-bounces@listes.apache.org
Sender: &quot;root&quot; &lt;root-bounces@listes.apache.org&gt;
Reply-To: &lt;&gt;

This is a multi-part message in MIME format...

------------=_1433322346-12583-0
Content-Type: text/plain; charset=&quot;UTF-8&quot;
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

No viruses were found.

Content type: Unchecked
Internal reference code for the message is 12583-16/Ss-IZaXqmZao

According to a 'Received:' trace, the message apparently originated at:
  [198.252.153.129], [127.0.0.1] localhost [127.0.0.1] Authenticated sender:
  quentin.h

Return-Path: &lt;quentin.h@apache.org&gt;
From: Quentin &lt;quentin.h@apache.org&gt;
Message-ID: &lt;556EC361.6000308@apache.org&gt;
Subject: XYZ
Not quarantined.

The message WILL BE relayed to:
&lt;xxx@apache.org&gt;


------------=_1433322346-12583-0
Content-Type: text/rfc822-headers; name=&quot;header&quot;
Content-Disposition: inline; filename=&quot;header&quot;
Content-Transfer-Encoding: 7bit
Content-Description: Message header section

Return-Path: &lt;quentin.h@apache.org&gt;
Message-ID: &lt;556EC361.6000308@apache.org&gt;
Date: Wed, 03 Jun 2015 11:05:37 +0200
From: Quentin &lt;quentin.h@apache.org&gt;
MIME-Version: 1.0

=====================================================
== File: server/protocols/jmap-draft/src/test/resources/inlineAttachment.eml
=====================================================
To: me@linagora.com
From: Benoit Tellier &lt;me@linagora.com&gt;
Subject: Mail with text attachment
Message-ID: &lt;befd8cab-9c9c-5537-4e77-937f32326087@any.com&gt;
Date: Thu, 13 Oct 2016 10:26:20 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------4FD2D252DB453546C22C25B2&quot;

This is a multi-part message in MIME format.
--------------4FD2D252DB453546C22C25B2
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

I'm the body!

--------------4FD2D252DB453546C22C25B2
Content-Disposition: inline
Content-Type: text/plain; charset=UTF-8;
 name=&quot;attachment.txt&quot;
Content-ID: &lt;id&gt;

I'm a Schroedinger cat
--------------4FD2D252DB453546C22C25B2--

=====================================================
== File: server/protocols/jmap-draft/src/test/resources/spamMail.eml
=====================================================
Return-Path: &lt;root-bounces@listes.minet.net&gt;
Received: from mx1.minet.net (mx1.minet.net [192.168.102.25])
	 by imap (Cyrus v2.4.16-Debian-2.4.16-4+deb7u1) with LMTPA;
	 Wed, 03 Jun 2015 11:05:45 +0200
X-Sieve: CMU Sieve 2.4
Received: from smtp.minet.net (smtp.minet.net [192.168.102.18])
	by mx1.minet.net (Postfix) with ESMTP id F06FE610F72;
	Wed,  3 Jun 2015 11:05:48 +0200 (CEST)
Received: from listes.minet.net (listes.minet.net [192.168.102.29])
	by smtp.minet.net (Postfix) with ESMTP id AAB15610F70;
	Wed,  3 Jun 2015 09:05:48 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=minet.net; s=mail;
	t=1433322348; bh=8OtmVRMX7IWWyQo8WQIi5rKeDEQFghSX2r1WN9/pqUk=;
	h=From:Date:To:Subject:List-Id:List-Unsubscribe:List-Post:List-Help:
	 List-Subscribe:From;
	b=UkthSFXn5mtPnn7sYvDJIxgCk1O36L0p+hTOnI/xTF2WRMGJyXtLyCdFdE5jQ5gE4
	 EGNdhwmfjaKsoE7IDtc/4GrPvbnM8i9ojpSOBW1hXJPOeYnRgah/4gsXsMJWvmmq/A
	 4oTnw8ZswFXiShDmBMyaSEZuVrWTdaPBgUhVhGw8=
Received: from listes.minet.net (listes.minet.net [127.0.0.1])
	by listes.minet.net (Postfix) with ESMTP id 9CD5BA27FF9;
	Wed,  3 Jun 2015 09:05:48 +0000 (UTC)
X-Original-To: root@listes.minet.net
Delivered-To: root@listes.minet.net
Received: from mx1.minet.net (mx1.minet.net [192.168.102.25])
 by listes.minet.net (Postfix) with ESMTP id B8C1FA27FEF
 for &lt;root@listes.minet.net&gt;; Wed,  3 Jun 2015 09:05:46 +0000 (UTC)
Received: from localhost (spam.minet.net [192.168.102.97])
 by mx1.minet.net (Postfix) with ESMTP id AD28B610F6D
 for &lt;root@listes.minet.net&gt;; Wed,  3 Jun 2015 11:05:46 +0200 (CEST)
Content-Type: multipart/mixed; boundary=&quot;----------=_1433322346-12583-0&quot;
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
From: &quot;Content-filter at spam.minet.net&quot; &lt;postmaster@minet.net&gt;
Date: Wed, 3 Jun 2015 09:05:46 +0000 (UTC)
To: &lt;root@listes.minet.net&gt;
Message-ID: &lt;VASs-IZaXqmZao@spam.minet.net&gt;
Subject: Original subject
X-BeenThere: root@listes.minet.net
X-Mailman-Version: 2.1.15
Errors-To: root-bounces@listes.minet.net
Sender: &quot;root&quot; &lt;root-bounces@listes.minet.net&gt;

This is a multi-part message in MIME format...

------------=_1433322346-12583-0
Content-Type: text/plain; charset=&quot;UTF-8&quot;
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

No viruses were found.

=====================================================
== File: server/protocols/jmap-draft/src/test/resources/key.pub
=====================================================
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzpnC3fUkdKJLEg9ussLh
9juskI7NVyGjwtQwV5+qMdigDwxW3GoUG02wz9Uo5wyZcyM1c8eNQX1Xnyd+muER
/ARGott3+7iNxrPylev0kfzIRP216NwyZn5vrlhQ3JwYhpumwXAL+q04MKVesOVa
QQWl7H7hfMm6NBwaUrsxjFzOYYIZUALYb/T3hgkaiMm5cm+iSCA5eFszTGGvYmgA
eQiKs6j2A9YCIOs3dlo1sMBOx/JAiHHuZHjVh1recW8rcX3iLGq8P/le1rpNZ3Lv
nDzqAp2lq4Q3hlaB+fBcl5JB+zIY4uV4wdh+oopj2djrrwwzxmzskriEAjX9BbDY
9QIDAQAB
-----END PUBLIC KEY-----

=====================================================
== File: server/protocols/jmap-draft/src/test/resources/fullMessage.eml
=====================================================
Reply-to: alice &lt;alice@local&gt;
In-reply-to: bob@local
Mime-Version: 1.0
To: bob &lt;bob@local&gt;
From: alice &lt;alice@local&gt;
Cc: jack &lt;jack@local&gt;, jacob &lt;jacob@local&gt;
Bcc: alice &lt;alice@local&gt;
Subject: Full message
Message-ID: &lt;1cc7f114-dbc4-42c2-99bd-f1100db6d0c1@open-paas.org&gt;
Date: Tue, 7 Jun 2016 16:23:37 +0200
Content-Type: multipart/mixed;
 boundary=&quot;------------7AF1D14DE1DFA16229726B54&quot;

This is a multi-part message in MIME format.
--------------7AF1D14DE1DFA16229726B54
Content-Type: multipart/alternative;
 boundary=&quot;------------172F9470CFA3BF3417835D92&quot;


--------------172F9470CFA3BF3417835D92
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

/blabla/
*bloblo*

--------------172F9470CFA3BF3417835D92
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

&lt;i&gt;blabla&lt;/i&gt;
&lt;b&gt;bloblo&lt;/b&gt;

--------------172F9470CFA3BF3417835D92--

--------------7AF1D14DE1DFA16229726B54
Content-Type: image/jpeg;
 name=&quot;4037_014.jpg&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;4037_014.jpg&quot;

/9j/4X2cRXhpZgAASUkqAAgAAAANAA8BAgAKAAAAqgAAABABAgAJAAAAtAAAABIBAwABAAAA
AQAAABoBBQABAAAAvgAAABsBBQABAAAAxgAAACgBAwABAAAAAgAAADEBAgAKAAAAzgAAADIB
AgAUAAAA2AAAABMCAwABAAAAAgAAAGmHBAABAAAAfAIAAKXEBwDQAAAA7AAAANLGBwBAAAAA
vAEAANPGBwCAAAAA/AEAAEwqAABQYW5hc29uaWMARE1DLUZaNDUAALQAAAABAAAAtAAAAAEA
AABWZXIuMS4wICAAMjAxNDowMjoyNSAxMDozMjowOQBQcmludElNADAyNTAAAA4AAQAWABYA
AgAAAAAAAwBkAAAABwAAAAAACAAAAAAACQAAAAAACgAAAAAACwCsAAAADAAAAAAADQAAAAAA
DgDEAAAAAAEFAAAAAQEBAAAAEAGAAAAACREAABAnAAALDwAAECcAAJcFAAAQJwAAsAgAABAn
AAABHAAAECcAAF4CAAAQJwAAiwAAABAnAADLAwAAECcAAOUbAAAQJwAAAAAAAAAAAAAAAAAA

=====================================================
== File: server/protocols/jmap-draft/src/test/resources/example.html
=====================================================
&lt;div class=&quot;section&quot;&gt;
    &lt;h3&gt;Why a new Logo?&lt;a name=&quot;Why_a_new_Logo&quot;&gt;&lt;/a&gt;&lt;/h3&gt;


    &lt;p&gt;We are happy with our current logo, but for the
        upcoming James Server 3.0 release, we would like to
        give our community the opportunity to create a new image for James.&lt;/p&gt;


    &lt;p&gt;Don't be shy, take your inkscape and gimp, and send us on
        the &lt;a href=&quot;mail.html&quot;&gt;James Server User mailing list&lt;/a&gt;
        your creations. We will publish them on this page.&lt;/p&gt;


    &lt;p&gt;We need an horizontal logo (100p height) to be show displayed on the upper
        left corner of this page, an avatar (48x48p) to be used on a Twitter stream for example.
        The used fonts should be redistributable (or commonly available on Windows and Linux).
        The chosen logo should be delivered in SVG format.
        We also like the &lt;a class=&quot;externalLink&quot; href=&quot;http://www.apache.org/foundation/press/kit/&quot;&gt;Apache feather&lt;/a&gt;.&lt;/p&gt;

&lt;/div&gt;

=====================================================
== File: server/protocols/jmap-draft/src/test/resources/private.nopass.key
=====================================================
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAsjjah2w8AKpnGKya4QG/tdRoR9pJkKWfyf17ywcYWBxcpj0Q
+dkn+CXvBafhQ2zlf+bPkWxYhBuXyMB8QNCp/sMlaQ8dGFw/LGojglHk8T4aIu+a
Ffy0hgN9yniuEHmFdjP2XECbA7UbHQPZTO/DU3QJ0FabqKO61pHB4bliNsTWGjzg
seU5kdS1Uup0AK/URO2pSLpnDPV/l0yNmxvGfO/ulPNVJyxiJuT+Rl51LlxpWhu3
G/hFX2mJP0Mn/cX3xNm2HrYIaasglum7bXN/vfiqSFAg46LgT7UJ4pCHoLI99K7Z
OpgBqK/Q4P4UxOggxkawI+JmVLTmCpz1c6JR3QIDAQABAoIBAEvx7DVfCuahtpMO
ImWVkDMUk2di/owz97ZkXRc0K8yIMXbpeM1vGxgkWgmH83b+9YEeQv9OMx4AgBqc
45XfFUGpuMxfE1/pF0Z+6CjFaxDeDNcsUPXjnK2q2TSpXktI7XVkSSwgn63hw+8G
T9f4J7ztKq1r6qLfOmPq8rqUe+SoH5tkwmJJgnxx3Qt2xZ4nmFXiuscOcVUjV3D/
EdghjcExNSgxmo8HN34DLQPZrDDwarrYJouiufe7m0Etk8m9bOWkNsoCif0wQ0mS
uQVAHMzCKqrUmAM3X1IimTnwOWu2sYle9VXYijwDkZ0PGQnS4rywz9D9MWy57ZLM
zklb5MUCgYEA5qrK9PmMGNi6ihhjkDw6b4sqOs4Dec89jdkhhYdrbPVXZzB+Shmh
CDhviXhLi7m5G5d707DLPloPR0LdNmf3YsLCvMej70O8DrDG/z1Vv++DF2XcAtvW
TLoXOcSS1E3tKRSp2Uks7osWIwUAomhkEIXsDJ+esH9wHD7rOYA02fsCgYEAxcuR
Sp0rcVqwyuINEmrvH5zxSWk0O5MqM95kyvElFuPCPAKv0EK9t8T7dv7fEtQoupqa
hbDGzatif7B4tVaeWZRYJUrr9uwIyZfVSfYUi5y2KwHGJJPH+EkoQ6sZlRw6Aqj/
AeW4/cnmhK+IrgBDKF99DiVs1nVTgeA0vEneVAcCgYBh9l0VpznJf5nRdkQqiHmk
z6ySptWxEMOqj3F+HSIRdyy0hVLNM49BR36PGoizAaBMyIvtPqNCisr8T7hVF9hn
mCFOPVcxEUo3zvnkgm79gcHh2P+UMzsTAOFGRma5RZMYJE9yGXK8qFMxcjlvv/fn
UIkMX2nsuWKqjEon9Hv9qwKBgFLk760/lVdaVMGSXzwayMCM+6pyhst477TxPXi3
+31OUrbnwVscvXno+iJyynaPp8ocxSnGXmsPqqYtBUmqVY7hVte6QI4peb1S/raS
hSXFtarsgWgO7z2lG1TQvlX5kG5Q+R6IcjEajpuJHVUfEwY2jqiBEs4GOcsydad7
pcu9AoGBANHQQS7U1o0Ks2H9iB02b72rq0Lr7d4xJ7bbeL0PdJNxnKWYtYYrNKvu
R7wWF6MBH+pfm0CzJo0Pog58wkAiKnD8nPuVUdXgi/3PQXu/ZARY0g30wqubaBeZ
UN7bL/TrIc67ldEi07A8Wo6H5Gd6jIHBnmO93an2zXlrvhrvACRX
-----END RSA PRIVATE KEY-----

=====================================================
== File: server/protocols/jmap-draft/src/test/resources/oneAttachment.eml
=====================================================
Return-Path: &lt;chibenwa@apache.org&gt;
Subject: 29989 btellier
From: &lt;any@mail.com&gt;
Content-Disposition: attachment
MIME-Version: 1.0
Date: Sun, 02 Apr 2017 22:09:04 -0000
Content-Type: application/zip; name=&quot;9559333830.zip&quot;
To: &lt;chibenwa@apache.org&gt;
Message-ID: &lt;149117094410.10639.6001033367375624@any.com&gt;
Content-Transfer-Encoding: base64

UEsDBBQAAgAIAEQeg0oN2YT/EAsAAMsWAAAIABwAMjIwODUuanNVVAkAAxBy4VgQcuFYdXgLAAEE
AAAAAAQAAAAApZhbi1zHFYWfY/B/MP3i7kwj1/2CokAwBPIQ+sGPkgJ1tURkdeiMbYzQf8+3q8+M
ZmQllgn2aHrqnNq1L2uvtavnj2/b7evz26/Op5M6q/P+8OUX77784g8/lQtLisXTU/68vfzCv/Lg
D9vqs/3b8fNXf92273ey4XTCykk9w9LpfD7tX+zGzU83b8pPg39uBr/Kmxe7w9PLuP3xwpFKTJ32
AAEEAAAAAAQAAAAAUEsFBgAAAAABAAEATgAAAFILAAAAAA==

=====================================================
== File: server/protocols/jmap-draft/src/test/resources/emptyBodyMessageWithOneAttachment.eml
=====================================================
Reply-to: alice &lt;alice@local&gt;
In-reply-to: bob@local
Mime-Version: 1.0
To: bob &lt;bob@local&gt;
From: alice &lt;alice@local&gt;
Cc: jack &lt;jack@local&gt;, jacob &lt;jacob@local&gt;
Bcc: alice &lt;alice@local&gt;
Subject: Full message
Message-ID: &lt;1cc7f114-dbc4-42c2-99bd-f1100db6d0c1@open-paas.org&gt;
Date: Tue, 7 Jun 2016 16:23:37 +0200
Content-Type: multipart/mixed;
 boundary=&quot;------------7AF1D14DE1DFA16229726B54&quot;

This is a multi-part message in MIME format.
--------------7AF1D14DE1DFA16229726B54
Content-Type: multipart/alternative;
 boundary=&quot;------------172F9470CFA3BF3417835D92&quot;


--------------172F9470CFA3BF3417835D92
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit



--------------172F9470CFA3BF3417835D92--

--------------7AF1D14DE1DFA16229726B54
Content-Type: image/jpeg;
 name=&quot;4037_014.jpg&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;4037_014.jpg&quot;

/9j/4X2cRXhpZgAASUkqAAgAAAANAA8BAgAKAAAAqgAAABABAgAJAAAAtAAAABIBAwABAAAA
AQAAABoBBQABAAAAvgAAABsBBQABAAAAxgAAACgBAwABAAAAAgAAADEBAgAKAAAAzgAAADIB
AgAUAAAA2AAAABMCAwABAAAAAgAAAGmHBAABAAAAfAIAAKXEBwDQAAAA7AAAANLGBwBAAAAA
vAEAANPGBwCAAAAA/AEAAEwqAABQYW5hc29uaWMARE1DLUZaNDUAALQAAAABAAAAtAAAAAEA
AABWZXIuMS4wICAAMjAxNDowMjoyNSAxMDozMjowOQBQcmludElNADAyNTAAAA4AAQAWABYA
AgAAAAAAAwBkAAAABwAAAAAACAAAAAAACQAAAAAACgAAAAAACwCsAAAADAAAAAAADQAAAAAA
DgDEAAAAAAEFAAAAAQEBAAAAEAGAAAAACREAABAnAAALDwAAECcAAJcFAAAQJwAAsAgAABAn
AAABHAAAECcAAF4CAAAQJwAAiwAAABAnAADLAwAAECcAAOUbAAAQJwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

=====================================================
== File: server/protocols/jmap-draft/src/test/resources/calendar.eml
=====================================================
Return-Path: &lt;local@localhost.com&gt;
MIME-Version: 1.0
Delivered-To: to@localhost.com
From: User From &lt;fromUser@localhost.com&gt;
Message-ID: &lt;2d0fa16c-4c37-58de-1acc-50b5f6a23a60@localhost.com&gt;
To: User To &lt;toUser@linagora.com&gt;
Date: Wed, 26 Jul 2017 10:34:02 +0200
Subject: Any subject
Content-class: urn:content-classes:calendarmessage
Content-Type: text/calendar; method=REPLY; charset=UTF-8
Content-transfer-encoding: 8BIT

BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
METHOD:REPLY
BEGIN:VEVENT
CREATED:20170726T081145Z
LAST-MODIFIED:20170726T083402Z
DTSTAMP:20170726T083402Z
UID:f1514f44bf39311568d6407249cb76c48103fcd1fb398c3c501cb72b2d293f36e04
 b2aab16e43439a608f28671ab7c10e754cbc85ddee4a07fa8cf8f4f7af05bfb502b8f6

SUMMARY:[A CONFIRMER] Call OVH
PRIORITY:5
ORGANIZER;CN=User;X-OBM-ID=id:mailto:userTo@localhost.com
ATTENDEE;CN=User;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL;X-OBM-ID=810:
 mailto:user1To@linagora.com
DTSTART:20170727T130000Z
DURATION:PT1H
TRANSP:OPAQUE
SEQUENCE:2
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. Rem
 oving entire property:
CLASS:PUBLIC
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:uuid_value
LOCATION:01.78.14.42.61 / 1586
X-OBM-ALERT;X-OBM-ID=486:600
END:VEVENT
END:VCALENDAR


=====================================================
== File: server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/OldKeywordTest.java
=====================================================
/****************************************************************
 * Licensed to the Apache Software Foundation (ASF) under one   *
 * or more contributor license agreements.  See the NOTICE file *
 * distributed with this work for additional information        *
 * regarding copyright ownership.  The ASF licenses this file   *
 * to you under the Apache License, Version 2.0 (the            *
 * &quot;License&quot;); you may not use this file except in compliance   *
 * with the License.  You may obtain a copy of the License at   *
 *                                                              *
 *   http://www.apache.org/licenses/LICENSE 2.0                 *
 *                                                              *
 * Unless required by applicable law or agreed to in writing,   *
 * software distributed under the License is distributed on an  *
 * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
 * KIND, either express or implied.  See the License for the    *
 * specific language governing permissions and limitations      *
 * under the License.                                           *
 ****************************************************************/

package org.apache.james.jmap.draft.model;

import static org.assertj.core.api.Assertions.assertThat;

import java.util.Optional;

import jakarta.mail.Flags;
import jakarta.mail.Flags.Flag;

import org.apache.james.mailbox.FlagsBuilder;
import org.junit.Test;

import nl.jqno.equalsverifier.EqualsVerifier;

public class OldKeywordTest {
    @Test
    public void shouldRespectBeanContract() {
        EqualsVerifier.forClass(OldKeyword.class).verify();
    }

    @Test
    public void asKeywordsShouldContainFlaggedWhenIsFlagged() {
        Optional&lt;OldKeyword&gt; testee = OldKeyword.builder()
            .isFlagged(Optional.of(true))
            .computeOldKeyword();

        assertThat(testee.get().asKeywords())
            .isEqualTo(Keywords.strictFactory().from(Keyword.FLAGGED));
    }

    @Test

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/rfc/src/jmap.mdown
=====================================================
%%%
    title = &quot;The JSON Meta Application Protocol&quot;
    abbrev = &quot;JMAP&quot;
    category = &quot;std&quot;
    docName = &quot;draft-ietf-jmap-core-17&quot;
    ipr= &quot;trust200902&quot;
    area = &quot;Applications&quot;
    workgroup = &quot;JMAP&quot;
    keyword = [&quot;JMAP&quot;, &quot;JSON&quot;]

    date = 2019-03-18T00:00:00Z

    [[author]]
    initials=&quot;N.M.&quot;
    surname=&quot;Jenkins&quot;
    fullname=&quot;Neil Jenkins&quot;
    role=&quot;editor&quot;
    organization = &quot;Fastmail&quot;
        [author.address]
        email = &quot;neilj@fastmailteam.com&quot;
        uri = &quot;https://www.fastmail.com&quot;
        [author.address.postal]
            street = &quot;PO Box 234, Collins St West&quot;
            city = &quot;Melbourne&quot;
            code = &quot;VIC 8007&quot;
            country = &quot;Australia&quot;

    [[author]]
    initials=&quot;C.&quot;
    surname=&quot;Newman&quot;
    fullname=&quot;Chris Newman&quot;
    role=&quot;editor&quot;
    organization = &quot;Oracle&quot;
        [author.address]
        email = &quot;chris.newman@oracle.com&quot;
        [author.address.postal]
            street = &quot;440 E. Huntington Dr., Suite 400&quot;
            city = &quot;Arcadia&quot;
            code = &quot;CA 91006&quot;
            country = &quot;United States of America&quot;
%%%

.# Abstract

This document specifies a protocol for clients to efficiently query, fetch, and modify JSON-based data objects, with support for push notification of changes and fast resynchronisation and for out-of-band binary data upload/download.

{mainmatter}

{{spec/jmap/intro.mdown}}
{{spec/jmap/session.mdown}}

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/rfc/src/quotas.mdown
=====================================================
%%%
    title = &quot;JMAP for Quotas&quot;
    abbrev = &quot;JMAP Quotas&quot;
    category = &quot;std&quot;
    docName = &quot;draft-ietf-jmap-quotas-06&quot;
    ipr= &quot;trust200902&quot;
    area = &quot;Applications&quot;
    workgroup = &quot;JMAP&quot;
    keyword = [&quot;JMAP&quot;, &quot;JSON&quot;, &quot;email&quot;, &quot;quotas&quot;]

    date = 2022-09-28T00:00:00Z

    [seriesInfo]
    name=&quot;Internet-Draft&quot;
    value=&quot;draft-ietf-jmap-quotas-06&quot;
    stream=&quot;IETF&quot;
    status=&quot;standard&quot;

    [[author]]
    initials=&quot;R.C.&quot;
    surname=&quot;Cordier&quot;
    fullname=&quot;Ren&#xe9; Cordier&quot;
    role=&quot;editor&quot;
    organization = &quot;Linagora Vietnam&quot;
        [author.address]
        email = &quot;rcordier@linagora.com&quot;
        uri = &quot;https://linagora.vn&quot;
        [author.address.postal]
            street = &quot;5 Dien Bien Phu&quot;
            city = &quot;Hanoi&quot;
            code = &quot;10000&quot;
            country = &quot;Vietnam&quot;
%%%

.# Abstract

This document specifies a data model for handling quotas on accounts with a server using JMAP.

{mainmatter}

{{spec/quotas/intro.mdown}}
{{spec/quotas/quota.mdown}}
{{spec/quotas/securityconsiderations.mdown}}
{{spec/quotas/ianaconsiderations.mdown}}

{backmatter}

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/rfc/src/mail.mdown
=====================================================
%%%
    title = &quot;JMAP (JSON Meta Application Protocol) for Mail&quot;
    abbrev = &quot;JMAP Mail&quot;
    category = &quot;std&quot;
    docName = &quot;draft-ietf-jmap-mail-16&quot;
    updates = [5788]
    ipr= &quot;trust200902&quot;
    area = &quot;Applications&quot;
    workgroup = &quot;JMAP&quot;
    keyword = [&quot;JMAP&quot;, &quot;JSON&quot;, &quot;email&quot;]

    date = 2019-03-08T00:00:00Z

    [[author]]
    initials=&quot;N.M.&quot;
    surname=&quot;Jenkins&quot;
    fullname=&quot;Neil Jenkins&quot;
    role=&quot;editor&quot;
    organization = &quot;Fastmail&quot;
        [author.address]
        email = &quot;neilj@fastmailteam.com&quot;
        uri = &quot;https://www.fastmail.com&quot;
        [author.address.postal]
            street = &quot;PO Box 234, Collins St West&quot;
            city = &quot;Melbourne&quot;
            code = &quot;VIC 8007&quot;
            country = &quot;Australia&quot;

    [[author]]
    initials=&quot;C.&quot;
    surname=&quot;Newman&quot;
    fullname=&quot;Chris Newman&quot;
    role=&quot;editor&quot;
    organization = &quot;Oracle&quot;
        [author.address]
        email = &quot;chris.newman@oracle.com&quot;
        [author.address.postal]
            street = &quot;440 E. Huntington Dr., Suite 400&quot;
            city = &quot;Arcadia&quot;
            code = &quot;CA 91006&quot;
            country = &quot;United States of America&quot;
%%%

.# Abstract

This document specifies a data model for synchronising email data with a server using JMAP (the JSON Meta Application Protocol). Clients can use this to efficiently search, access, organise and send messages, and get pushed notifications for fast resynchronisation when new messages are delivered or a change is made in another client.

{mainmatter}

{{spec/mail/intro.mdown}}

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/README.md
=====================================================
# JSON Meta Application Protocol (JMAP) Specification

This repo contains the specifications for JMAP. 

JMAP is a modern standard for email clients to connect to mail stores. It therefore primarily replaces IMAP + SMTP submission. It does not replace MTA-to-MTA SMTP transmission. JMAP was built by the community, and continues to improve via the [IETF standardization process](https://datatracker.ietf.org/wg/jmap/about/). Upcoming work includes adding contacts and calendars (replacing CardDAV/CalDAV).

The pretty HTML version of the spec along with more JMAP info and resources can be found at http://jmap.io.

## Get involved

JMAP is being developed within the IETF by the [JMAP Working Group](https://datatracker.ietf.org/wg/jmap/about/).

You can join the mailing list at https://www.ietf.org/mailman/listinfo/jmap. Feedback is welcome: send your thoughts or comments on anything that is imprecise, incomplete, or could simply be done better in another way. Discussion is preferred prior to pull requests, except in the case of minor typos etc.

## Contributions

This repository relates to activities in the Internet Engineering Task
Force (IETF). All material in this repository is considered Contributions
to the IETF Standards Process, as defined in the intellectual property
policies of IETF currently designated as [BCP 78](https://www.rfc-editor.org/info/bcp78), [BCP 79](https://www.rfc-editor.org/info/bcp79) and the [IETF Trust Legal Provisions (TLP) Relating to IETF Documents](http://trustee.ietf.org/trust-legal-provisions.html).

Any edit, commit, pull request, issue, comment or other change made to this
repository constitutes Contributions to the [IETF Standards Process](https://www.ietf.org/).

You agree to comply with all applicable IETF policies and procedures,
including, BCP 78, 79, the TLP, and the TLP rules regarding code
components (e.g. being subject to a Simplified BSD License) in
Contributions.

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/message.mdown
=====================================================
# Emails

&gt;:warning:
&gt;Partially implemented

An **Email** object is a representation of a message [@!RFC5322], which allows clients to avoid the complexities of MIME parsing, transfer encoding, and character encoding.

## Properties of the Email Object

Broadly, a message consists of two parts: a list of header fields and then a body. The Email data type provides a way to access the full structure or to use simplified properties and avoid some complexity if this is sufficient for the client application.

While raw headers can be fetched and set, the vast majority of clients should use an appropriate parsed form for each of the header fields it wants to process, as this allows it to avoid the complexities of various encodings that are required in a valid message per RFC 5322.

The body of a message is normally a MIME-encoded set of documents in a tree structure. This may be arbitrarily nested, but the majority of email clients present a flat model of a message body (normally plaintext or HTML) with a set of attachments. Flattening the MIME structure to form this model can be difficult and causes inconsistency between clients. Therefore, in addition to the *bodyStructure* property, which gives the full tree, the Email object contains 3 alternate properties with flat lists of body parts:

- *textBody*/*htmlBody*: These provide a list of parts that should be
  rendered sequentially as the &quot;body&quot; of the message. This is a list rather than a single part as messages may have headers and/or footers appended/prepended as separate parts when they are transmitted, and some clients send text and images intended to be displayed inline in the body (or even videos and sound clips) as multiple parts rather than a single HTML part with referenced images.

  Because MIME allows for multiple representations of the same data (using `multipart/alternative`), there is a textBody property (which prefers a plaintext representation) and an htmlBody property (which prefers an HTML representation) to accommodate the two most common client requirements. The same part may appear in both lists where there is no alternative between the two.

- *attachments*: This provides a list of parts that should be presented as
  &quot;attachments&quot; to the message. Some images may be solely there for embedding within an HTML body part; clients may wish to not present these as attachments in the user interface if they are displaying the HTML with the embedded images directly. Some parts may also be in htmlBody/textBody; again, clients may wish to not present these as attachments in the user interface if rendered as part of the body.

The *bodyValues* property allows for clients to fetch the value of text parts directly without having to do a second request for the blob and to have the server handle decoding the charset into unicode. This data is in a separate property rather than on the EmailBodyPart object to avoid duplication of large amounts of data, as the same part may be included twice if the client fetches more than one of bodyStructure, textBody, and htmlBody.

In the following subsections, the common notational convention for wildcards has been adopted for content types, so `foo/*` means any content type that starts with `foo/`.

Due to the number of properties involved, the set of *Email* properties is specified over the following four subsections. This is purely for readability; all properties are top-level peers.

### Metadata

These properties represent metadata about the message in the mail store and are not derived from parsing the message itself.

- **id**: `Id` (immutable; server-set)
  The id of the Email object. Note that this is the JMAP object id, NOT the Message-ID header field value of the message [@!RFC5322].
- **blobId**: `Id` (immutable; server-set)
  The id representing the raw octets of the message [@!RFC5322] for this Email. This may be used to download the raw original message or to attach it directly to another Email, etc.
- **threadId**: `Id` (immutable; server-set)
  The id of the Thread to which this Email belongs.

&gt;:warning:
&gt;threadId support is not implemented yet. Default to the id of the email.

- **mailboxIds**: `Id[Boolean]`
  The set of Mailbox ids this Email belongs to. An Email in the mail store MUST belong to one or more Mailboxes at all times (until it is destroyed). The set is represented as an object, with each key being a *Mailbox id*. The value for each key in the object MUST be `true`.
- **keywords**: `String[Boolean]` (default: \{\})
  A set of keywords that apply to the Email. The set is represented as an object, with the keys being the *keywords*. The value for each key in the object MUST be `true`.

    Keywords are shared with IMAP. The six system keywords from IMAP get special treatment. The following four keywords have their first character changed from `\` in IMAP to `$` in JMAP and have particular semantic meaning:


=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/mailbox.mdown
=====================================================
# Mailboxes

A Mailbox represents a named set of Emails. This is the primary mechanism for organising Emails within an account. It is analogous to a folder or a label in other systems. A Mailbox may perform a certain role in the system; see below for more details.

For compatibility with IMAP, an Email MUST belong to one or more Mailboxes. The Email id does not change if the Email changes Mailboxes.

A **Mailbox** object has the following properties:

&gt; :information_source:
&gt; Implemented

- **id**: `Id` (immutable; server-set)
  The id of the Mailbox.
- **name**: `String`

&gt; :warning:
&gt; &quot;name&quot; should not contain the IMAP hierarchy delimiter &quot;.&quot;.


  User-visible name for the Mailbox, e.g., &quot;Inbox&quot;. This MUST be a Net-Unicode string [@!RFC5198] of at least 1 character in length, subject to the maximum size given in the capability object. There MUST NOT be two sibling Mailboxes with both the same parent and the same name. Servers MAY reject names that violate server policy (e.g., names containing a slash (/) or control characters).
- **parentId**: `Id|null` (default: null)
  The Mailbox id for the parent of this Mailbox, or `null` if this Mailbox is at the top level. Mailboxes form acyclic graphs (forests) directed by the child-to-parent relationship. There MUST NOT be a loop.
- **role**: `String|null` (default: null)

&gt; :warning:
&gt; Partially implemented. Role are based on the name of the mailbox. An evolution would be to use a mailbox annotation to hold its
&gt; value, removing the link with the name, and allow the user to define locale based system mailboxes. This value cannot be updated.

  Identifies Mailboxes that have a particular common purpose (e.g., the &quot;inbox&quot;), regardless of the *name* property (which may be localised).

    This value is shared with IMAP (exposed in IMAP via the SPECIAL-USE extension [@!RFC6154]). However, unlike in IMAP, a Mailbox MUST only have a single role, and there MUST NOT be two Mailboxes in the same account with the same role. Servers providing IMAP access to the same data are encouraged to enforce these extra restrictions in IMAP as well. Otherwise, modifying the IMAP attributes to ensure compliance when exposing the data over JMAP is implementation dependent.

    The value MUST be one of the Mailbox attribute names listed in the [IANA IMAP Mailbox Name Attributes](https://www.iana.org/assignments/imap-mailbox-name-attributes/imap-mailbox-name-attributes.xhtml) registry, as established in [@!RFC8457], converted to lowercase. New roles may be established here in the future.

    An account is not required to have Mailboxes with any particular roles.

- **sortOrder**: `UnsignedInt` (default: 0)

&gt; :warning:
&gt; Partially implemented. Based on the role. This value cannot be updated.

  Defines the sort order of Mailboxes when presented in the client's UI, so it
  is consistent between devices. The number MUST be an integer in the range
  0 &lt;= sortOrder &lt; 2^31.

    A Mailbox with a lower order should be displayed before a Mailbox with a higher order (that has the same parent) in any Mailbox listing in the client's UI. Mailboxes with equal order SHOULD be sorted in alphabetical order by name. The sorting should take into account locale-specific character order convention.

- **totalEmails**: `UnsignedInt` (server-set)
  The number of Emails in this Mailbox.
- **unreadEmails**: `UnsignedInt` (server-set)

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/identity.mdown
=====================================================
# Identities

&gt; :warning:
&gt; Partially implemented.

An **Identity** object stores information about an email address or domain the user may send from. It has the following properties:

- **id**: `Id` (immutable; server-set)
  The id of the Identity.
- **name**: `String` (default: &quot;&quot;)
  The &quot;From&quot; *name* the client SHOULD use when creating a new Email from this Identity.
- **email**: `String` (immutable)
  The &quot;From&quot; email address the client MUST use when creating a new Email from this Identity. If the *mailbox* part of the address (the section before the &quot;@&quot;) is the single character `*` (e.g., `*@example.com`) then the client may use any valid address ending in that domain (e.g., `foo@example.com`).
- **replyTo**: `EmailAddress[]|null` (default: null)
  The Reply-To value the client SHOULD set when creating a new Email from this Identity.
- **bcc**: `EmailAddress[]|null` (default: null)
  The Bcc value the client SHOULD set when creating a new Email from this Identity.
- **textSignature**: `String` (default: &quot;&quot;)
  A signature the client SHOULD insert into new plaintext messages that will be sent from this Identity. Clients MAY ignore this and/or combine this with a client-specific signature preference.
- **htmlSignature**: `String` (default: &quot;&quot;)
  A signature the client SHOULD insert into new HTML messages that will be sent from this Identity. This text MUST be an HTML snippet to be inserted into the `&lt;body&gt;&lt;/body&gt;` section of the HTML. Clients MAY ignore this and/or combine this with a client-specific signature preference.
- **mayDelete**: `Boolean` (server-set)
  Is the user allowed to delete this Identity? Servers may wish to set this to `false` for the user's username or other default address. Attempts to destroy an Identity with `mayDelete: false` will be rejected with a standard `forbidden` SetError.

See the &quot;Addresses&quot; header form description in the Email object for the definition of *EmailAddress*.

Multiple identities with the same email address MAY exist, to allow for different settings the user wants to pick between (for example, with different names/signatures).

The following JMAP methods are supported.

## Identity/get

This is a standard &quot;/get&quot; method as described in [@!RFC8620], Section 5.1. The *ids* argument may be `null` to fetch all at once.

## Identity/changes

&gt; :warning:
&gt; Not implemented.

This is a standard &quot;/changes&quot; method as described in [@!RFC8620], Section 5.2.

## Identity/set

This is a standard &quot;/set&quot; method as described in [@!RFC8620], Section 5.3. The following extra *SetError* types are defined:

For **create**:

- `forbiddenFrom`: The user is not allowed to send from the address given as
  the *email* property of the Identity.


=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/identitySortOrder.mdown
=====================================================
# Identity sort order

&gt; :information_source:
&gt; Implemented

### urn:apache:james:params:jmap:mail:identity:sortorder

This represents support for the extra `sortOrder` property on the `Identity` object.

Servers supporting this specification MUST add this property to the capabilities object.

This extension is specific to the Apache James server and is a temporary solution while waiting for the main work on
Identity sort order as part of the IETF group to be finalized as a proper RFC document.

### Additions to the Identity object

This specification adds the following property on `Identity` object:

- **sortOrder**: `UnsignedInt` (default: 0)  Defines the sort order of Identities when presented in the client&#x2019;s UI, so
it is consistent between devices. The number MUST be an integer in the range 0 &lt;= sortOrder &lt; 2^31.

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/messagesubmission.mdown
=====================================================
# Email Submission

&gt; :warning:
&gt; Partially implemented

An **EmailSubmission** object represents the submission of an Email for delivery to one or more recipients. It has the following properties:

- **id**: `Id` (immutable; server-set)
  The id of the EmailSubmission.
- **identityId**: `Id` (immutable)
  The id of the Identity to associate with this submission.

&gt; :warning:
&gt; Not implemented. Submissions cannot be created with identityId. This field should be omitted.

- **emailId**: `Id` (immutable)
  The id of the Email to send. The Email being sent does not have to be a draft, for example, when &quot;redirecting&quot; an existing Email to a different address.
- **threadId**: `Id` (immutable; server-set)
  The Thread id of the Email to send. This is set by the server to the *threadId* property of the Email referenced by the *emailId*.
- **envelope**: `Envelope|null` (immutable)
  Information for use when sending via SMTP.

    An **Envelope** object has the following properties:

    - **mailFrom**: `Address`
      The email address to use as the return address in the SMTP submission, plus any parameters to pass with the MAIL FROM address. The JMAP server MAY allow the address to be the empty string.

        When a JMAP server performs an SMTP message submission, it MAY use the
        same id string for the ENVID parameter [@!RFC3461] and the
        EmailSubmission object id. Servers that do this MAY replace a
        client-provided value for ENVID with a server-provided value.

    - **rcptTo**: `Address[]`
      The email addresses to send the message to, and any RCPT TO parameters to pass with the recipient.

    An **Address** object has the following properties:

    - **email**: `String`
      The email address being represented by the object. This is a &quot;Mailbox&quot; as used in the Reverse-path or Forward-path of the MAIL FROM or RCPT TO command in [@!RFC5321].
    - **parameters**: `Object|null`
      Any parameters to send with the email address (either mail-parameter or rcpt-parameter as appropriate, as specified in [@!RFC5321]). If supplied, each key in the object is a parameter name, and the value is either the parameter value&#xa0;(type `String`) or `null` if the parameter does not take a value. For both name and value, any xtext or unitext encodings are removed (see [@!RFC3461] and [@!RFC6533]) and JSON string encoding is applied.

&gt; :warning:
&gt; Not implemented. Submissions cannot be created with parameters. This field should be omitted.

    If the *envelope* property is `null` or omitted on creation, the server MUST generate this from the referenced Email as follows:

    - **mailFrom**: The email address in the *Sender* header field, if present;
      otherwise, it's the email address in the *From* header field, if present. In either case, no parameters are added.


=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/rights.mdown
=====================================================
# urn:apache:james:params:jmap:mail:shares extension

&lt;aside class=&quot;notice&quot;&gt;
  Implemented
&lt;/aside&gt;

This extension is specific to the Apache James server as it relies on a common shared storage allowing arbitrary cross-account entity access.

This extension to the JMAP specification enables to:

 - Grant access on mailboxes, and the email they contain to other users.
 - Enable display of shared mailboxes, and shared messages as part of the main user account, making effectively account sharing transparent from a client perspective.

## Defined capability

The new capability `urn:apache:james:params:jmap:mail:shares` is defined.

This extension defines both behavioral changes and additional fields for the Mailbox object.

If specified, behavioral changes and additional fields defined hereafter MUST apply.

If unspecified no additional fields to the Mailbox object are returned, and the behaviour needs to be exactly the one of `urn:ietf:params:jmap:mail`.

## Addition to existing data types

The following data types are defined:

`Username` of type `String` corresponds to a username.

`Right` of type `String` defines an action that can be carried out on a mailbox or its content.

The following `Right`s are defined:

 - `&quot;a&quot;` Administer: the user can view and modify the rights of this mailbox
 - `&quot;i&quot;` Insert: the user can use the id of this mailbox in `mailboxId` fields of Emails.
 - `&quot;l&quot;` Lookup: the user can see the name of this mailbox but information about the content of this mailbox MUST not be disclosed.
 - `&quot;r&quot;` Read: the user can read the content of this mailbox, and see the assiociated Email and Thread counts.
 - `&quot;t&quot;` DeleteMessages: the user can delete Email in this Mailbox
 - `&quot;w&quot;` Write: the user can alter the Keywords of messages contained in this Mailbox, except the `$Seen` keyword
 - `&quot;s&quot;` Seen: the user can alter the `$Seen` keyword of messages contained in this Mailbox
 - `&quot;e&quot;` Expunge: the user can mark Email as Expunged in this Mailbox. This action is not achievable using JMAP.

`UserRights` is an array of `Right`, representing the actions a user can perform on a mailbox.

`Rights` indicates which user can perform which operation on the Mailbox and the related entities.

Of type `Username[UserRights]` this map associate to each `Username` the associated `UserRights` actions that can be performed.

## Additional fields for Mailbox object


=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/securityconsiderations.mdown
=====================================================
# Security Considerations

All security considerations of JMAP ([@!RFC8620]) apply to this specification. Additional considerations specific to the data types and functionality introduced by this document are described in the following subsections.

## EmailBodyPart Value

Service providers typically perform security filtering on incoming messages, and it's important that the detection of content-type and charset for the security filter aligns with the heuristics performed by JMAP servers. Servers that apply heuristics to determine the content-type or charset for an *EmailBodyValue* SHOULD document the heuristics and provide a mechanism to turn them off in the event they are misaligned with the security filter used at a particular mail host.

Automatic conversion of charsets that allow hidden channels for ASCII text, such as UTF-7, have been problematic for security filters in the past, so server implementations can mitigate this risk by having such conversions  off-by-default and/or separately configurable.

To allow the client to restrict the volume of data it can receive in response to a request, a maximum length may be requested for the data returned for a textual body part. However, truncating the data may change the semantic meaning, for example, truncating a URL changes its location. Servers that scan for links to malicious sites should take care to either ensure truncation is not at a semantically significant point or rescan the truncated value for malicious content before returning it.

## HTML Email Display

HTML message bodies provide richer formatting for messages but present a number of security challenges, especially when embedded in a webmail context in combination with interface HTML. Clients that render HTML messages should carefully consider the potential risks, including:

* Embedded JavaScript can rewrite the message to change its content on
  subsequent opening, allowing users to be mislead. In webmail systems, if run in the same origin as the interface, it can access and exfiltrate all private data accessible to the user, including all other messages and potentially contacts, calendar events, settings, and credentials. It can also rewrite the interface to undetectably phish passwords. A compromise is likely to be persistent, not just for the duration of page load, due to exfiltration of session credentials or installation of a service worker that can intercept all subsequent network requests (however, this would only be possible if blob downloads are also available on the same origin, and the service worker script is attached to the message).
* HTML documents may load content directly from the Internet, rather than just
  referencing attached resources. For example, you may have an `&lt;img&gt;` tag with an external `src` attribute. This may leak to the sender when a message is opened, as well as the IP address of the recipient. Cookies may also be sent and set by the server, allowing tracking between different messages and even website visits and advertising profiles.
* In webmail systems, CSS can break the layout or create phishing
  vulnerabilities. For example, the use of `position:fixed` can allow a message to draw content outside of its normal bounds, potentially clickjacking a real interface element.
* If in a webmail context and not inside a separate frame, any styles defined in
  CSS rules will apply to interface elements as well if the selector matches, allowing the interface to be modified. Similarly, any interface styles that match elements in the message will alter their appearance, potentially breaking the layout of the message.
* The link text in HTML has no necessary correlation with the actual target of
  the link, which can be used to make phishing attacks more convincing.
* Links opened from a message or embedded external content may leak private info
  in the `Referer` header sent by default in most systems.
* Forms can be used to mimic login boxes, providing a potent phishing vector if
  allowed to submit directly from the message display.

There are a number of ways clients can mitigate these issues, and a defence-in-depth approach that uses a combination of techniques will provide the strongest security.

* HTML can be filtered before rendering, stripping potentially malicious
  content. Sanitising HTML correctly is tricky, and implementors are strongly recommended to use a well-tested library with a carefully vetted whitelist-only approach. New features with unexpected security characteristics may be added to HTML rendering engines in the future; a blacklist approach is likely to result in security issues.

  Subtle differences in parsing of HTML can introduce security flaws: to filter with 100% accuracy, you need to use the same parser that the HTML rendering engine will use.

* Encapsulating the message in an `&lt;iframe sandbox&gt;`, as defined in
  [HTML](https://www.w3.org/TR/html52/), Section 4.7.6, can help mitigate a
  number of risks. This will:

  * Disable JavaScript.
  * Disable form submission.
  * Prevent drawing outside of its bounds or conflicts between message CSS and interface CSS.
  * Establish a unique anonymous origin, separate to the containing origin.

* A strong [Content Security Policy](https://www.w3.org/TR/CSP3/) can, among
  other things, block JavaScript and loading of external content should it manage to evade the filter.


=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/thread.mdown
=====================================================
# Threads

&gt; :warning:
&gt; Partially implemented.

Replies are grouped together with the original message to form a Thread. In JMAP, a Thread is simply a flat list of Emails, ordered by date. Every Email MUST belong to a Thread, even if it is the only Email in the Thread.

The exact algorithm for determining whether two Emails belong to the same Thread is not mandated in this spec to allow for compatibility with different existing systems. For new implementations, it is suggested that two messages belong in the same Thread if both of the following conditions apply:

  1. An identical message id [@!RFC5322] appears in both messages in any of the
     Message-Id, In-Reply-To, and References header fields.
  2. After stripping automatically added prefixes such as &quot;Fwd:&quot;, &quot;Re:&quot;,
     &quot;[List-Tag]&quot;, etc., and ignoring white space, the subjects are the same. This avoids the situation where a person replies to an old message as a convenient way of finding the right recipient to send to but changes the subject and starts a new conversation.

If messages are delivered out of order for some reason, a user may have two Emails in the same Thread but without headers that associate them with each other. The arrival of a third Email may provide the missing references to join them all together into a single Thread. Since the *threadId* of an Email is immutable, if the server wishes to merge the Threads, it MUST handle this by deleting and reinserting (with a new Email id) the Emails that change *threadId*.

A **Thread** object has the following properties:

- **id**: `Id` (immutable; server-set)
  The id of the Thread.
- **emailIds**: `Id[]` (server-set)
  The ids of the Emails in the Thread, sorted by the *receivedAt* date of the Email, oldest first. If two Emails have an identical date, the sort is server dependent but MUST be stable (sorting by id is recommended).

The following JMAP methods are supported.

## Thread/get

&gt; :information_source:
&gt; Implemented

This is a standard &quot;/get&quot; method as described in [@!RFC8620], Section 5.1.

### Example

Request:

    [[ &quot;Thread/get&quot;, {
      &quot;accountId&quot;: &quot;acme&quot;,
      &quot;ids&quot;: [&quot;f123u4&quot;, &quot;f41u44&quot;]
    }, &quot;#1&quot; ]]

with response:

    [[ &quot;Thread/get&quot;, {
      &quot;accountId&quot;: &quot;acme&quot;,
      &quot;state&quot;: &quot;f6a7e214&quot;,
      &quot;list&quot;: [
        {
          &quot;id&quot;: &quot;f123u4&quot;,
          &quot;emailIds&quot;: [ &quot;eaa623&quot;, &quot;f782cbb&quot;]

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/ianaconsiderations.mdown
=====================================================
# IANA Considerations

## JMAP Capability Registration for &quot;mail&quot;

IANA has registered the &quot;mail&quot; JMAP Capability as follows:

Capability Name: `urn:ietf:params:jmap:mail`

Specification document: this document

Intended use: common

Change Controller: IETF

Security and privacy considerations: this document, Section 9

## JMAP Capability Registration for &quot;submission&quot;

IANA has registered the &quot;submission&quot; JMAP Capability as follows:

Capability Name: `urn:ietf:params:jmap:submission`

Specification document: this document

Intended use: common

Change Controller: IETF

Security and privacy considerations: this document, Section 9

## JMAP Capability Registration for &quot;vacationresponse&quot;

IANA has registered the &quot;vacationresponse&quot; JMAP Capability as follows:

Capability Name: `urn:ietf:params:jmap:vacationresponse`

Specification document: this document

Intended use: common

Change Controller: IETF

Security and privacy considerations: this document, Section 9

## IMAP and JMAP Keywords Registry

This document makes two changes to the IMAP keywords registry as defined in [@!RFC5788].

First, the name of the registry is changed to the &quot;IMAP and JMAP Keywords&quot; registry.


=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/searchsnippet.mdown
=====================================================
# Search Snippets

&gt; :warning:
&gt; Not implemented

When doing a search on a `String` property, the client may wish to show the relevant section of the body that matches the search as a preview and to highlight any matching terms in both this and the subject of the Email. Search snippets represent this data.

A **SearchSnippet** object has the following properties:

- **emailId**: `Id`
  The Email id the snippet applies to.
- **subject**: `String|null`
  If text from the filter matches the subject, this is the subject of the Email with the following transformations:

    1. Any instance of the following three characters MUST be replaced by an appropriate HTML entity: &amp; (ampersand), &lt; (less-than sign), and &gt; (greater-than sign) [HTML](https://www.w3.org/TR/html52/). Other characters MAY also be replaced with an HTML entity form.

    2. The matching words/phrases from the filter are wrapped in HTML `&lt;mark&gt;&lt;/mark&gt;` tags.

    If the subject does not match text from the filter, this property is `null`.
- **preview**: `String|null`
  If text from the filter matches the plaintext or HTML body, this is the relevant section of the body (converted to plaintext if originally HTML), with the same transformations as the *subject* property. It MUST NOT be bigger than 255 octets in size. If the body does not contain a match for the text from the filter, this property is `null`.

What is a relevant section of the body for preview is server defined. If the server is unable to determine search snippets, it MUST return `null` for both the *subject* and *preview* properties.

Note that unlike most data types, a SearchSnippet DOES NOT have a property called `id`.

The following JMAP method is supported.

## SearchSnippet/get

To fetch search snippets, make a call to `SearchSnippet/get`. It takes the following arguments:

- **accountId**: `Id`
  The id of the account to use.
- **filter**: `FilterOperator|FilterCondition|null`
  The same filter as passed to Email/query; see the description of this method in Section 4.4 for details.
- **emailIds**: `Id[]`
  The ids of the Emails to fetch snippets for.

The response has the following arguments:

- **accountId**: `Id`
  The id of the account used for the call.
- **list**: `SearchSnippet[]`
  An array of SearchSnippet objects for the requested Email ids. This may not be in the same order as the ids that were in the request.
- **notFound**: `Id[]|null`
  An array of Email ids requested that could not be found, or `null` if all
  ids were found.

As the search snippets are derived from the message content and the algorithm for doing so could change over time, fetching the same snippets a second time MAY return a different result. However, the previous value is not considered incorrect, so there is no state string or update mechanism needed.

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/vacationresponse.mdown
=====================================================
# Vacation Response

&gt; :information_source:
&gt; Implemented

A vacation response sends an automatic reply when a message is delivered to the mail store, informing the original sender that their message may not be read for some time.

Automated message sending can produce undesirable behaviour. To avoid this, implementors MUST follow the recommendations set forth in [@!RFC3834].

The **VacationResponse** object represents the state of vacation-response-related settings for an account. It has the following properties:

- **id**: `Id` (immutable; server-set)
  The id of the object. There is only ever one VacationResponse object, and its id is `&quot;singleton&quot;`.
- **isEnabled**: `Boolean`
  Should a vacation response be sent if a message arrives between the *fromDate* and *toDate*?
- **fromDate**: `UTCDate|null`
  If *isEnabled* is `true`, messages that arrive on or after this date-time (but before the *toDate* if defined) should receive the user's vacation response. If `null`, the vacation response is effective immediately.
- **toDate**: `UTCDate|null`
  If *isEnabled* is `true`, messages that arrive before this date-time (but on or after the *fromDate* if defined) should receive the user's vacation response. If `null`, the vacation response is effective indefinitely.
- **subject**: `String|null`
  The subject that will be used by the message sent in response to messages when the vacation response is enabled. If `null`, an appropriate subject SHOULD be set by the server.
- **textBody**: `String|null`
  The plaintext body to send in response to messages when the vacation response is enabled. If this is `null`, the server SHOULD generate a plaintext body part from the *htmlBody* when sending vacation responses but MAY choose to send the response as HTML only. If both *textBody* and *htmlBody* are `null`, an appropriate default body SHOULD be generated for responses by the server.
- **htmlBody**: `String|null`
  The HTML body to send in response to messages when the vacation response is enabled. If this is `null`, the server MAY choose to generate an HTML body part from the *textBody* when sending vacation responses or MAY choose to send the response as plaintext only.

The following JMAP methods are supported.

## VacationResponse/get

This is a standard &quot;/get&quot; method as described in [@!RFC8620], Section 5.1.

There MUST only be exactly one VacationResponse object in an account. It MUST have the id &quot;singleton&quot;.

## VacationResponse/set

This is a standard &quot;/set&quot; method as described in [@!RFC8620], Section 5.3.

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/delegation.mdown
=====================================================
# Delegations extension

&gt; :information_source:
&gt; Implemented

## Context
This extension is specific to the Apache James server which defines methods to manage users' JMAP delegation settings.

This extension to the JMAP specification enables to:

- Manage accounts that a user delegates access to.
- Manage accounts that a user is allowed access.

## Addition capability
The URN `urn:apache:james:params:jmap:delegation` represents support for the Delegation data type and associated API methods.

Servers supporting this specification MUST add this property to the capabilities object.

## Addition to the Session object
Servers supporting this specification MUST add the delegated accounts to the `accounts` property of the Session object.

## Behavioral changes
When `urn:apache:james:params:jmap:delegation` is specified, access to a delegated account is enabled through standard JMAP API calls
but MUST except API calls to manage delegated account's delegation setting to avoid privilege escalation.

## Delegation methods
A **Delegation** object stores information about an email address that either has access to the user's account or delegates access
to the user. The semantics for this object depends on the context of usage methods: either manage delegate accounts or delegated accounts.

The delegation object MUST have the following properties:
- **id**: `Id` (immutable; server-set)
  The id of the Delegation.
- **username**: `String` (immutable)
  The email address of the user that either delegates or is delegated to this user account.
  
The **Delegate** object follows the structure of **Delegation** and represents delegations accessing this account (allowing the listed user to connect as the current account owner).

The **DelegatedAccount** object follows the structure of **Delegation** and represents delegations active for this account (allowing the current account owner to connect as the listed user).

A user can delegate his account to multiple users as well as be allowed to access other accounts.

A user can manage his delegations to other users to access his account by creating, deleting and retrieving **Delegate** objects.
Meanwhile, a user can only retrieve and delete **DelegatedAccount** objects.

A server MUST not allow a delegated user to access and manage the owner user's delegation setting to avoid privilege escalation.

The following JMAP methods are supported:

### Delegate/get
This method returns **Delegate** objects of the user.

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/mail/intro.mdown
=====================================================
# Introduction

The JSON Meta Application Protocol (JMAP) [@!RFC8620] is a generic protocol for synchronising data, such as mail, calendars, or contacts between a client and a server. It is optimised for mobile and web environments and aims to provide a consistent interface to different data types.

This specification defines a data model for accessing a mail store over JMAP,
allowing you to query, read, organise, and submit mail for sending.

The data model is designed to allow a server to provide consistent access to
the same data via IMAP [@?RFC3501] as well as JMAP. As in IMAP, a message
must belong to a Mailbox; however, in JMAP, its id does not change if you move
it between Mailboxes, and the server may allow it to belong to multiple
Mailboxes simultaneously (often exposed in a user agent as labels rather than
folders).

As in IMAP, messages may also be assigned zero or more keywords: short arbitrary
strings. These are primarily intended to store metadata to inform client
display, such as unread status or whether a message has been replied to. An
IANA registry allows common semantics to be shared between clients and extended
easily in the future.

A message and its replies are linked on the server by a common Thread id.
Clients may fetch the list of messages with a particular Thread id to more
easily present a threaded or conversational interface.

Permissions for message access happen on a per-Mailbox basis. Servers may give
the user restricted permissions for certain Mailboxes, for example, if another
user's inbox has been shared as read-only with them.

## Notational Conventions

The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;NOT RECOMMENDED&quot;, &quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be interpreted as described in BCP 14 [@!RFC2119] [@!RFC8174] when, and only when, they appear in all capitals, as shown here.

Type signatures, examples, and property descriptions in this document follow the conventions established in Section 1.1 of [@!RFC8620]. Data types defined in the core specification are also used in this document.

Servers MUST support all properties specified for the new data types defined in this document.

## Terminology

This document uses the same terminology as in the core JMAP specification.

The terms Mailbox, Thread, Email, SearchSnippet, EmailSubmission and VacationResponse (with that specific capitalisation) are used to refer to the data types defined in this document and instances of those data types.

The term message refers to a document in Internet Message Format, as described in [@!RFC5322]. The Email data type represents messages in the mail store and associated metadata.

## Additions to the Capabilities Object

The capabilities object is returned as part of the JMAP Session object; see [@!RFC8620], Section 2.

This document defines three additional capability URIs.


=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/custom-quotas/quotas.mdown
=====================================================
# Introduction

&lt;aside class=&quot;notice&quot;&gt;
  Implemented, deprecated
&lt;/aside&gt;

This specification defines a data model for handling mail quotas over JMAP, allowing you to read quota information.

This specification does not address quota administration, which should be handled by other means.

This specification is not official and proper to the James project usage at the moment.

## Terminology

### Quota

A quota is a numeric upper limit that the server is enforcing. Quotas are applied to JMAP Mailbox objects.

## Addition to the capabilities object

The capabilities object is returned as part of the JMAP Session object; see [@!RFC8620], section 2.

This document defines one additional capability URI.

### urn:apache:james:params:jmap:mail:quota

This represents support for the Quota data type and associated API methods.
Servers supporting this specification MUST add this property to the capabilities object.

This extension is specific to the Apache James server and is a temporary solution while waiting for the main work on
quotas as part of the IETF group to be finalized as a proper RFC document.

This extension enables to:

* read quotas usage and limits on mailboxes.

If specified, behavioral changes and additional fields defined hereafter MUST apply.

If unspecified no additional fields to the Mailbox object are returned, and the behaviour needs to be exactly the one of `urn:ietf:params:jmap:mail`.

# Quotas definition

The quota is an addition to the Mailbox object that displays the limit set to a mailbox usage as well as the current usage in regard to that limit.

## The QuotaId Data Type

The **QuotaId** is a `String` defined with the name of the **QuotaRoot** (as defined in [RFC2087](https://tools.ietf.org/html/rfc2087.html)) it represents.
It usually represents the ID attached to one or more **Quota** objects defined for that Mailbox.

## The Quotas.Type Data Type

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/securityconsiderations.mdown
=====================================================
# Security considerations

All security considerations of JMAP ([@!RFC8620]) apply to this specification.

Implementors should be careful to make sure the implementation of that extension does not violate the site's security policy.
The resource usage of other users is likely to be considered confidential information and should not be divulged to
unauthorized persons.

As for any resource shared across users (for example, a quota with the `domain` or `global` scope), a user that can consume
the resource can affect the resources available to the other users. For example, a user could spam himself with events and
make the shared resource hit the limit and unusable for others (implementors could mitigate that with some rate limiting
implementation on the server).

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/ianaconsiderations.mdown
=====================================================
# IANA Considerations

## JMAP Capability Registration for &quot;quota&quot;

IANA will register the &quot;quota&quot; JMAP Capability as follows:

Capability Name: `urn:ietf:params:jmap:quota`

Specification document: this document

Intended use: common

Change Controller: IETF

Security and privacy considerations: this document, section 4.

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/quota.mdown
=====================================================
# Quota

&gt; :warning:
&gt; Partially implemented

The quota is an object that displays the limit set to an account usage as well as the current usage in regard to that limit.

The quota object **MUST** contain the following fields:

* **id**: `Id` The unique identifier for this object.

* **resourceType**: `String` The resource type of the quota.

* **used**: `UnsignedInt` The current usage of the defined quota, using the &quot;resourceType&quot; defined as unit of measure. Computation of this value is handled by the server.

* **hardLimit**: `UnsignedInt` The hard limit set by this quota, using the &quot;resourceType&quot; defined as unit of measure. Objects in scope may not be created or updated if this limit is reached.

* **scope**: `String` The &quot;Scope&quot; of this quota.

* **name**: `String` The name of the quota. Useful for managing quotas and using queries for searching.

* **types**: `String[]` A list of all the type names as defined in the &quot;JMAP Types Names&quot; registry (e.g., Email, Calendar, etc.) to which this quota applies. This allows the quotas to be assigned to distinct or shared data types.
  
  The server **MUST** filter out any types for which the client did not request the associated capability in the &quot;using&quot; section of the request. Further, the server **MUST NOT** return Quota objects for which there are no types recognized by the client.

The quota object **MAY** contain the following field:

* **warnLimit**: `UnsignedInt|null` The warn limit set by this quota, using the &quot;resourceType&quot; defined as unit of measure. 
It can be used to send a warning to an entity about to reach the hard limit soon, but with no action taken yet. 
If set, it **SHOULD** be lower than the &quot;softLimit&quot; (if present and different from null) and the &quot;hardLimit&quot;.

* **softLimit**: `UnsignedInt|null` The soft limit set by this quota, using the &quot;resourceType&quot; defined as unit of measure. 
It can be used to still allow some operations but refuse some others. What is allowed or not is up to the server. 
For example, it could be used for blocking outgoing events of an entity (sending emails, creating calendar events, etc.) while still receiving incoming events (receiving emails, receiving calendars events, etc.). 
If set, it **SHOULD** be higher than the &quot;warnLimit&quot; (if present and different from null) but lower than the &quot;hardLimit&quot;.

* **description**: `String|null` Arbitrary, free, human-readable description of this quota. It might be used to explain where the different limits come from and explain the entities and data types this quota applies to. 
The description **MUST** be encoded in UTF-8 [RFC3629] as described in [RFC8620], Section 1.5, and selected based on an Accept-Language header in the request (as defined in [RFC9110], Section 12.5.4) or out-of-band information about the user's language or locale.

The following JMAP methods are supported.

## Quota/get

&gt; :information_source:
&gt; Implemented

Standard &#x201c;/get&#x201d; method as described in [@!RFC8620] section 5.1. The id's argument may be &quot;null&quot; to fetch all quotas of the account at once, as demonstrated in Section 5.1.

## Quota/changes


=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/quotas/intro.mdown
=====================================================
# Introduction

&gt; :warning:
&gt; Partially implemented

JMAP ([@!RFC8620] &#x2013; JSON Meta Application Protocol) is a generic protocol for synchronising data, such as mails,
calendars or contacts, between a client and a server. It is optimised for mobile and web environments, and aims
to provide a consistent interface to different data types.

This specification defines a data model for handling quotas over JMAP, allowing you to read and explain quota information.

This specification does not address quota administration, which should be handled by other means.

## Notational conventions

The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;,
&quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;NOT RECOMMENDED&quot;, &quot;MAY&quot;, and
&quot;OPTIONAL&quot; in this document are to be interpreted as described in BCP
14 [@!RFC2119] [@!RFC8174] when, and only when, they appear in all
capitals, as shown here.

Type signatures, examples and property descriptions in this document follow the conventions established in section 1.1
of [@!RFC8620]. Data types defined in the core specification are also used in this document.

Servers MUST support all properties specified for the new data types defined in this document.

## Terminology

The same terminology is used in this document as in the core JMAP specification.

The term Quota (with that specific capitalization) is used to refer to the data type defined in this document and instance of that data type.

## Addition to the capabilities object

The capabilities object is returned as part of the JMAP Session object; see [@!RFC8620], section 2.

This document defines one additional capability URI.

### urn:ietf:params:jmap:quota

This represents support for the Quota data type and associated API methods. Servers supporting this specification **MUST** add a property called `urn:ietf:params:jmap:quota` to the capabilities object.

The value of this property is an empty object in both the JMAP session capabilities property and an account&#x2019;s accountCapabilities property.

## Sub-types of the Quota Data Type

There are two fields within the `Quota` data type, which have an enumerated set of possible values. These are:

### Scope


=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/push.mdown
=====================================================
# Push

&gt; :information_source:
&gt; Implemented.
&gt;
&gt; Some limitations for event source are described below.

Push notifications allow clients to efficiently update (almost) instantly to stay in sync with data changes on the server. The general model for push is simple and sends minimal data over the push channel: just enough for the client to know whether it needs to resync. The format allows multiple changes to be coalesced into a single push update and the frequency of pushes to be rate limited by the server. It doesn't matter if some push events are dropped before they reach the client; the next time it gets/sets any records of a changed type, it will discover the data has changed and still sync all changes.

There are two different mechanisms by which a client can receive push notifications, to allow for the different environments in which a client may exist. An event source resource (see Section 7.3) allows clients that can hold transport connections open to receive push notifications directly from the JMAP server. This is simple and avoids third parties, but it is often not feasible on constrained platforms such as mobile devices. Alternatively, clients can make use of any push service supported by their environment. A URL for the push service is registered with the JMAP server (see Section 7.2), then the server then POSTs each notification to that URL. The push service is then responsible for routing these to the client.

## The StateChange Object

When something changes on the server, the server pushes a **StateChange** object to the client. A **StateChange** object has the following properties:

- **@type**: `String`
  This MUST be the string &quot;StateChange&quot;.
- **changed**: `Id[TypeState]`
  A map of an *account id* to an object encoding the state of data types that have changed for that account since the last StateChange object was pushed, for each of the accounts to which the user has access and for which something has changed.

    A **TypeState** object is a map. The keys are the type name `Foo` (e.g., &quot;Mailbox&quot; or &quot;Email&quot;), and the value is the *state* property that would currently be returned by a call to *Foo/get*.

    The client can compare the new state strings with its current values to see whether it has the current data for these types. If not, the changes can then be efficiently fetched in a single standard API request (using the */changes* type methods).

### Example

In this example, the server has amalgamated a few changes together across two different accounts the user has access to, before pushing the following StateChange object to the client:

    {
      &quot;@type&quot;: &quot;StateChange&quot;,
      &quot;changed&quot;: {
        &quot;a3123&quot;: {
          &quot;Email&quot;: &quot;d35ecb040aab&quot;,
          &quot;EmailDelivery&quot;: &quot;428d565f2440&quot;,
          &quot;CalendarEvent&quot;: &quot;87accfac587a&quot;
        },
        &quot;a43461d&quot;: {
          &quot;Mailbox&quot;: &quot;0af7a512ce70&quot;,
          &quot;CalendarEvent&quot;: &quot;7a4297cecd76&quot;
        }
      }
    }

The client can compare the state strings with its current state for the Email, CalendarEvent, etc., object types in the appropriate accounts to see if it needs to fetch changes.

If the client is itself making changes, it may receive a StateChange object while the /set API call is in flight. It can wait until the call completes and then compare if the new state string after the /set is the same as was pushed in the StateChange object; if so, and the old state of the /set response matches the client's previous state, it does not need to waste a request asking for changes it already knows.

## PushSubscription

Clients may create a *PushSubscription* to register a URL with the JMAP server. The JMAP server will then make an HTTP POST request to this URL for each push notification it wishes to send to the client.

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/securityconsiderations.mdown
=====================================================
# Security Considerations

## Transport Confidentiality

To ensure the confidentiality and integrity of data sent and received via JMAP, all requests MUST use TLS 1.2 [@!RFC5246] [@!RFC8446] or later, following the recommendations in [@!RFC7525]. Servers SHOULD support TLS 1.3 [@!RFC8446] or later.

Clients MUST validate TLS certificate chains to protect against man-in-the-middle attacks [@!RFC5280].

## Authentication Scheme

A number of HTTP authentication schemes have been standardised (see https://www.iana.org/assignments/http-authschemes/). Servers should take care to assess the security characteristics of different schemes in relation to their needs when deciding what to implement.

Use of the Basic authentication scheme is NOT RECOMMENDED. Services that choose to use it are strongly recommended to require generation of a unique &quot;app password&quot; via some external mechanism for each client they wish to connect. This allows connections from different devices to be differentiated by the server and access to be individually revoked.

## Service Autodiscovery

Unless secured by something like DNSSEC, autodiscovery of server
details using SRV DNS records is vulnerable to a DNS poisoning attack, which can lead to the client talking to an attacker's server instead of the real JMAP server. The attacker may then intercept requests to execute man-in-the-middle attacks and, depending on the authentication scheme, steal credentials to generate its own requests.

Clients that do not support SRV lookups are likely to try just using the `/.well-known/jmap` path directly against the domain of the username over HTTPS. Servers SHOULD ensure this path resolves or redirects to the correct JMAP Session resource to allow this to work. If this is not feasible, servers MUST ensure this path cannot be controlled by an attacker, as again it may be used to steal credentials.

## JSON Parsing

The Security Considerations of [@!RFC8259] apply to the use of JSON as the data interchange format.

As for any serialization format, parsers need to thoroughly check the
syntax of the supplied data. JSON uses opening and closing tags for
several types and structures, and it is possible that the end of supplied
data will be reached when scanning for a matching closing tag; this is an
error condition, and implementations need to stop scanning at the end of the
supplied data.

JSON also uses a string encoding with some escape sequences to encode
special characters within a string. Care is needed when processing these
escape sequences to ensure that they are fully formed before
the special processing is triggered, with special care taken when the
escape sequences appear adjacent to other (non-escaped) special characters
or adjacent to the end of data (as in the previous paragraph).

If parsing JSON into a non-textual structured data format, implementations
may need to allocate storage to hold JSON string elements.&#xa0; Since JSON
does not use explicit string lengths, the risk of denial of service due to
resource exhaustion is small, but implementations may still wish to place
limits on the size of allocations they are willing to make in any given
context, to avoid untrusted data causing excessive memory allocation.

## Denial of Service

A small request may result in a very large response and require considerable
work on the server if resource limits are not enforced. JMAP provides mechanisms for advertising and enforcing a wide variety of limits for mitigating this threat, including limits on the number of objects fetched in a single method call, number of methods in a single request, number of concurrent requests, etc.

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/session.mdown
=====================================================
# The JMAP Session Resource

&gt; :information_source:
&gt; Implemented

You need two things to connect to a JMAP server:

1. The URL for the JMAP Session resource. This may be requested directly from
   the user or discovered automatically based on a username domain (see Section 2.2 below).
2. Credentials to authenticate with. How to obtain credentials is out of scope
   for this document.

A successful authenticated GET request to the JMAP Session resource MUST return a JSON-encoded **Session** object, giving details about the data and capabilities the server can provide to the client given those credentials. It has the following properties:

- **capabilities**: `String[Object]`
  An object specifying the capabilities of this server. Each key is a URI for a capability supported by the server. The value for each of these keys is an object with further information about the server's capabilities in relation to that capability.

    The client MUST ignore any properties it does not understand.

    The capabilities object MUST include a property called `urn:ietf:params:jmap:core`. The value of this property is an object that MUST contain the following information on server capabilities (suggested minimum values for limits are supplied that allow clients to make efficient use of the network):

    - **maxSizeUpload**: `UnsignedInt`

&gt; :warning:
&gt; Not enforced yet

      The maximum file size, in octets, that the server will accept for a single file upload (for any purpose). Suggested minimum: 50,000,000.
    - **maxConcurrentUpload**: `UnsignedInt`

&gt; :warning:
&gt; Not enforced yet

      The maximum number of concurrent requests the server will accept to the upload endpoint.  Suggested minimum: 4.
    - **maxSizeRequest**: `UnsignedInt`

&gt; :warning:
&gt; Not enforced yet

      The maximum size, in octets, that the server will accept for a single
      request to the API endpoint. Suggested minimum: 10,000,000.
    - **maxConcurrentRequests**: `UnsignedInt`

&gt; :warning:
&gt; Not enforced yet

      The maximum number of concurrent requests the server will accept to
      the API endpoint. Suggested minimum: 4.
    - **maxCallsInRequest**: `UnsignedInt`

&gt; :warning:

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/ianaconsiderations.mdown
=====================================================
# IANA Considerations

## Assignment of jmap Service Name

IANA has assigned the 'jmap' service name in the &quot;Service Name and Transport Protocol Port Number Registry&quot; [@!RFC6335].

Service Name: jmap

Transport Protocol(s): tcp

Assignee: IESG

Contact: IETF Chair

Description: JSON Meta Application Protocol

Reference: [@!RFC8620]

Assignment Notes: This service name was previously assigned under the name *JSON Mail Access Protocol*. This has been de-assigned and re-assigned with the approval of the previous assignee.

## Registration of Well-Known URI suffix for JMAP

IANA has registered the following suffix in the &quot;Well-Known URIs&quot; registry for JMAP, as described in [@!RFC8615]:

URI Suffix: jmap

Change Controller: IETF

Specification Document: [@!RFC8620], Section 2.2.

## Registration of the jmap URN Sub-namespace

IANA has registered the following URN sub-namespace in the &quot;IETF URN Sub-namespace for Registered Protocol Parameter Identifiers&quot; registry within the &quot;Uniform Resource Name (URN) Namespace for IETF Use&quot; registry as described in [@!RFC3553].

Registered Parameter Identifier: jmap

Reference: [@!RFC8620], Section 9.4

IANA Registry Reference: http://www.iana.org/assignments/jmap

## Creation of &quot;JMAP Capabilities&quot; Registry

IANA has created the &quot;JMAP Capabilities&quot; registry as described in Section 2. JMAP capabilities are advertised in the *capabilities* property of the Session object. They are used to extend the functionality of a JMAP server. A capability is referenced by a URI. The JMAP capability URI can be a URN starting with `urn:ietf:params:jmap:` plus a unique suffix that is the index value in the jmap URN sub-namespace. Registration of a JMAP capability with another form of URI has no impact on the jmap URN sub-namespace.

This registry follows the expert review process unless the &quot;intended use&quot; field is *common* or *placeholder*, in which case registration follows the specification required process.

A JMAP capability registration can have an intended use of *common*, *placeholder*, *limited*, or *obsolete*. IANA will list common-use registrations prominently and separately from those with other intended use values.

The JMAP capability registration procedure is not a formal standards process but rather an administrative procedure intended to allow community comment and sanity checking without excessive time delay.


=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/binary.mdown
=====================================================
# Binary Data

&gt; :information_source:
&gt; Implemented

Binary data is referenced by a *blobId* in JMAP and uploaded/downloaded separately to the core API. The blobId solely represents the raw bytes of data, not any associated metadata such as a file name or content type. Such metadata is stored alongside the blobId in the object referencing it. The data represented by a blobId is immutable.

Any blobId that exists within an account may be used when creating/updating another object in that account. For example, an Email type may have a blobId that represents the object in Internet Message Format [@!RFC5322]. A client could create a new Email object with an attachment and use this blobId, in effect attaching the old message to the new one. Similarly, it could attach any existing attachment of an old message without having to download and upload it again.

When the client uses a blobId in a create/update, the server MAY assign a new blobId to refer to the same binary data within the new/updated object. If it does so, it MUST return any properties that contain a changed blobId in the created/updated response, so the client gets the new ids.

A blob that is not referenced by a JMAP object (e.g., as a message attachment) MAY be deleted by the server to free up resources. Uploads (see below) are initially unreferenced blobs. To ensure interoperability:

* The server SHOULD use a separate quota for unreferenced blobs to the
  account's usual quota. In the case of shared accounts, this quota SHOULD be separate per user.
* This quota SHOULD be at least the maximum total size that a single
  object can reference on this server. For example, if supporting JMAP Mail, this should be at least the maximum total attachments size for a message.
* When an upload would take the user over quota, the server MUST delete
  unreferenced blobs in date order, oldest first, until there is room for the new blob.
* Except where quota restrictions force early deletion, an unreferenced blob
  MUST NOT be deleted for at least 1 hour from the time of upload; if reuploaded, the same blobId MAY be returned, but this SHOULD reset the expiry time.
* A blob MUST NOT be deleted during the method call that removed the last
  reference, so that a client can issue a create and a destroy that both reference the blob within the same method call.

## Uploading Binary Data

There is a single endpoint that handles all file uploads for an account, regardless of what they are to be used for. The Session object (see Section 2) has an *uploadUrl* property in URI Template (level 1) format [@!RFC6570], which MUST contain a variable called `accountId`. The client may use this template in combination with an *accountId* to get the URL of the file upload resource.

To upload a file, the client submits an authenticated POST request to the file upload resource.

A successful request MUST return a single JSON object with the following properties as the response:

- **accountId**: `Id`
  The id of the account used for the call.
- **blobId**: `Id`
  The id representing the binary data uploaded. The data for this id is immutable. The id *only* refers to the binary data, not any metadata.
- **type**: `String`
  The media type of the file (as specified in [@!RFC6838], Section 4.2) as set in the Content-Type header of the upload HTTP request.
- **size**: `UnsignedInt`
  The size of the file in octets.

If identical binary content to an existing blob in the account is uploaded, the existing blobId MAY be returned.

Clients should use the blobId returned in a timely manner. Under rare circumstances, the server may have deleted the blob before the client uses it; the client should keep a reference to the local file so it can upload it again in such a situation.

When an HTTP error response is returned to the client, the server SHOULD return a JSON &quot;problem details&quot; object as the response body, as per [@!RFC7807].

As access controls are often determined by the object holding the reference to a blob, unreferenced blobs MUST only be accessible to the uploader, even in shared accounts.

## Downloading Binary Data

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/api.mdown
=====================================================
# Structured Data Exchange

The client may make an API request to the server to get or set structured data. This request consists of an ordered series of method calls. These are processed by the server, which then returns an ordered series of responses.

## Making an API Request

To make an API request, the client makes an authenticated POST request to the API resource, which is defined by the *apiUrl* property in the Session object (see Section 2).

The request MUST be of type `application/json` and consist of a single JSON-encoded **Request** object, as defined in Section 3.3. If successful, the response MUST also be of type `application/json` and consist of a single **Response** object, as defined in Section 3.4.

## The Invocation Data Type

&gt; :information_source:
&gt; Implemented

Method calls and responses are represented by the **Invocation** data type. This is a tuple, represented as a JSON array containing three elements:

1. A `String` **name** of the method to call or of the response.
2. A `String[*]` object containing *named* **arguments** for that method or
   response.
3. A `String` **method call id**: an arbitrary string from the client to be
   echoed back with the responses emitted by that method call (a method may return 1 or more responses, as it may make implicit calls to other methods; all responses initiated by this method call get the same method call id in the response).

## The Request Object

&gt; :information_source:
&gt; Implemented

A **Request** object has the following properties:

- **using**: `String[]`
  The set of capabilities the client wishes to use. The client MAY include capability identifiers even if the method calls it makes do not utilise those capabilities.

    The server advertises the set of specifications it supports in the Session object (see Section 2), as keys on the *capabilities* property.

- **methodCalls**: `Invocation[]`
  An array of method calls to process on the server. The method calls MUST be processed sequentially, in order.

- **createdIds**: `Id[Id]` (optional)
  A map of a (client-specified) creation id to the id the server assigned when a record was successfully created.

    As described later in this specification, some records may have a property that contains the id of another record. To allow more efficient network usage, you can set this property to reference a record created earlier in the same API request. Since the real id is unknown when the request is created, the client can instead specify the creation id it assigned, prefixed with a `#` (see Section 5.3 for more details).

    As the server processes API requests, any time it successfully creates a new record, it adds the creation id to this map (see the *create* argument to &quot;/set&quot; in Section 5.3), with the server-assigned real id as the value. If it comes across a reference to a creation id in a create/update, it looks it up in the map and replaces the reference with the real id, if found.

    The client can pass an initial value for this map as the *createdIds* property of the Request object. This may be an empty object. If given in the request, the response will also include a createdIds property. This allows proxy servers to easily split a JMAP request into multiple JMAP requests to send to different servers. For example, it could send the first two method calls to server A, then the third to server B, before sending the fourth to server A again. By passing the createdIds of the previous response to the next request, it can ensure all of these still resolve. See Section 5.8 for further discussion of proxy considerations.

Future specifications MAY add further properties to the Request object to extend the semantics. To ensure forwards compatibility, a server MUST ignore any other properties it does not understand on the JMAP Request object.

### Example Request

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/jmap/intro.mdown
=====================================================
# Introduction

 The JSON Meta Application Protocol (JMAP) is used for synchronising data, such as mail, calendars, or contacts, between a client and a server. It is optimised for mobile and web environments and aims to provide a consistent interface to different data types.

This specification is for the generic mechanism of data synchronisation. Further specifications define the data models for different data types that may be synchronised via JMAP.

JMAP is designed to make efficient use of limited network resources. Multiple API calls may be batched in a single request to the server, reducing round trips and improving battery life on mobile devices. Push connections remove the need for polling, and an efficient delta update mechanism ensures a minimum amount of data is transferred.

JMAP is designed to be horizontally scalable to a very large number of users. This is facilitated by separate endpoints for users after login, the separation of binary and structured data, and a data model for sharing that does not allow data dependencies between accounts.

## Notational Conventions

The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;NOT RECOMMENDED&quot;, &quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be interpreted as described in BCP 14 [@!RFC2119] [@!RFC8174] when, and only when, they appear in all capitals, as shown here.

The underlying format used for this specification is JSON. Consequently, the terms &quot;object&quot; and &quot;array&quot; as well as the four primitive types (strings, numbers, booleans, and null) are to be interpreted as described in Section 1 of [@!RFC8259]. Unless otherwise noted, all the property names and values are case sensitive.

Some examples in this document contain &quot;partial&quot; JSON documents used for illustrative purposes.  In these examples, three periods &quot;...&quot; are used to indicate a portion of the document that has been removed for compactness.

For compatibility with publishing requirements, line breaks have been inserted inside long JSON strings, with the following continuation lines indented. To form the valid JSON example, any line breaks inside a string must be replaced with a space and any other white space after the line break removed.

Unless otherwise specified, examples of API exchanges only show the methodCalls array of the Request object or the methodResponses array of the Response object. For compactness, the rest of the Request/Response object is omitted.

Type signatures are given for all JSON values in this document. The following conventions are used:

* `*` &#x2013; The type is undefined (the value could be any type, although permitted
  values may be constrained by the context of this value).
* `String` &#x2013; The JSON string type.
* `Number` &#x2013; The JSON number type.
* `Boolean` &#x2013; The JSON boolean type.
* `A[B]` &#x2013; A JSON object where the keys are all of type `A`, and the values
  are all of type `B`.
* `A[]` &#x2013;&#xa0;An array of values of type `A`.
* `A|B` &#x2013; The value is either of type `A` or of type `B`.

Other types may also be given, with their representation defined elsewhere in this document.

Object properties may also have a set of attributes defined along with the type
signature. These have the following meanings:

* `server-set` &#x2013; Only the server can set the value for this property. The
  client MUST NOT send this property when creating a new object of this type.
* `immutable` &#x2013; The value MUST NOT change after the object is created.
* `default` &#x2013; (This is followed by a JSON value). The value that will be used
  for this property if it is omitted in an argument or when creating a new object of this type.

## The Id Data Type

&gt; :information_source:
&gt; Implemented


=====================================================
== File: server/protocols/jmap-rfc-8621/doc/specs/spec/authentication.mdown
=====================================================
# Authentication

JMAP RFC-8620 deliberately does not address authentication concerns, and only assumes authenticated requests are handled.

Discovery of available authentication mechanism is not part of the JMAP specification.

This document summarizes available authentication mechanism on top of JMAP RFC-8621 implementation as part of the James
project.

## Basic authentication

James JMAP RFC-8621 supports [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication).

Please note that while convenient for testing purpose, this authentication mechanism should not be used for production
workflow: the credentials are transmitted again and over again, should be retained in memory, authentication is
challenged for each request...

## JWT authentication

We rely on a third party software to supply a signed JWT token, valid according to the James JWT public key.
If valid, the request is blindly trusted.

[Read more](https://github.com/apache/james-project/blob/master/docs/modules/servers/pages/distributed/configure/jmap.adoc#generating-a-jwt-key-pair).

## Implementing new authentication mechanisms

Administrator might need to adapt authentication to their needs.

To implement custom authentication mechanisms, you need to implement `org.apache.james.jmap.http.AuthenticationStrategy`
and register it in `RFC8621MethodsModule::provideAuthenticator`.

Note that the Apache James project would happily welcome contributions regarding support of other authentication flows.

=====================================================
== File: server/protocols/jmap-rfc-8621/doc/README.md
=====================================================
Annotated JMAP documentation
============================

This directory contains annotated JMAP documentation as found on https://jmap.io/.

Officially finalized specifications so far regarding JMAP are:

* [The core protocol](https://jmap.io/spec-core.html) [[RFC 8620](https://tools.ietf.org/html/rfc8620)]
* [JMAP Mail](https://jmap.io/spec-mail.html) [[RFC 8621](https://tools.ietf.org/html/rfc8621)]

Annotations aim at tracking implementation progress in James project.

Annotations are usually represented in the documentation by an `aside` tag. That tag can have two classes:

* `notice` More like an informative annotation, usually used to mark that a feature has been implemented
* `warning` To get the developer's attention, usually to say that maybe a point or detail of an implemented feature has 
not been implemented, or partially

=====================================================
== File: server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/method/PushSubscriptionSetCreatePerformer.scala
=====================================================
package org.apache.james.jmap.method

import java.nio.charset.StandardCharsets

import eu.timepit.refined.auto._
import javax.inject.Inject
import org.apache.james.jmap.api.model.{DeviceClientIdInvalidException, ExpireTimeInvalidException, PushSubscriptionCreationRequest, PushSubscriptionExpiredTime, PushSubscriptionId, PushSubscriptionKeys, PushSubscriptionServerURL, VerificationCode}
import org.apache.james.jmap.api.pushsubscription.PushSubscriptionRepository
import org.apache.james.jmap.core.SetError.SetErrorDescription
import org.apache.james.jmap.core.{Properties, PushSubscriptionCreation, PushSubscriptionCreationId, PushSubscriptionCreationParseException, PushSubscriptionCreationResponse, PushSubscriptionSetRequest, SetError}
import org.apache.james.jmap.json.{PushSerializer, PushSubscriptionSerializer}
import org.apache.james.jmap.method.PushSubscriptionSetCreatePerformer.{CreationFailure, CreationResult, CreationResults, CreationSuccess}
import org.apache.james.jmap.pushsubscription.{PushRequest, PushTTL, WebPushClient}
import org.apache.james.mailbox.MailboxSession
import org.slf4j.LoggerFactory
import play.api.libs.json.{JsObject, JsPath, Json, JsonValidationError}
import reactor.core.scala.publisher.{SFlux, SMono}

object PushSubscriptionSetCreatePerformer {
  private val LOGGER = LoggerFactory.getLogger(classOf[PushSubscriptionSetCreatePerformer])
  trait CreationResult

  case class CreationSuccess(clientId: PushSubscriptionCreationId, response: PushSubscriptionCreationResponse) extends CreationResult

  case class CreationFailure(clientId: PushSubscriptionCreationId, e: Throwable) extends CreationResult {
    def asMessageSetError: SetError = e match {
      case e: PushSubscriptionCreationParseException =&gt;
        LOGGER.info(&quot;Failure to parse PushSubscription/set create&quot;, e)
        e.setError
      case e: ExpireTimeInvalidException =&gt;
        LOGGER.info(&quot;Invalid time expiracy for push subscription: {}&quot;, e.getMessage)
        SetError.invalidArguments(SetErrorDescription(e.getMessage), Some(Properties(&quot;expires&quot;)))
      case e: DeviceClientIdInvalidException =&gt;
        LOGGER.info(&quot;Invalid deviceId for push subscription: {}&quot;, e.getMessage)
        SetError.invalidArguments(SetErrorDescription(e.getMessage))
      case e: IllegalArgumentException =&gt;
        LOGGER.info(&quot;Illegal argument in PushSubscription/set create&quot;, e)
        SetError.invalidArguments(SetErrorDescription(e.getMessage))
      case e =&gt;
        LOGGER.error(&quot;Failed to create push subscription&quot;, e)
        SetError.serverFail(SetErrorDescription(e.getMessage))
    }
  }

  case class CreationResults(results: Seq[CreationResult]) {
    def created: Option[Map[PushSubscriptionCreationId, PushSubscriptionCreationResponse]] =
      Option(results.flatMap {
        case result: CreationSuccess =&gt; Some((result.clientId, result.response))
        case _ =&gt; None
      }.toMap)

=====================================================
== File: server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/delegation/DelegatedAccountSet.scala
=====================================================
package org.apache.james.jmap.delegation

import org.apache.james.jmap.core.{AccountId, SetError, UuidState}
import org.apache.james.jmap.method.{SetRequest, WithAccountId}

case class DelegatedAccountSetRequest(accountId: AccountId,
                                      destroy: Option[Seq[UnparsedDelegateId]]) extends WithAccountId with SetRequest {
  override def idCount: Int = destroy.map(_.size).getOrElse(0)
}

case class DelegatedAccountSetResponse(accountId: AccountId,
                                       oldState: Option[UuidState],
                                       newState: UuidState,
                                       destroyed: Option[Seq[DelegationId]],
                                       notDestroyed: Option[Map[UnparsedDelegateId, SetError]])

=====================================================
== File: server/protocols/protocols-smtp/src/test/resources/log4j.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;!DOCTYPE log4j:configuration SYSTEM &quot;log4j.dtd&quot; &gt;
&lt;log4j:configuration&gt;
    &lt;appender name=&quot;stdout&quot; class=&quot;org.apache.log4j.ConsoleAppender&quot;&gt;
        &lt;layout class=&quot;org.apache.log4j.PatternLayout&quot;&gt;
            &lt;param name=&quot;ConversionPattern&quot; value=&quot;%d{ISO8601} %-5p [%-11t] [%-50c{4}] %L %m%n&quot; /&gt;
        &lt;/layout&gt;
    &lt;/appender&gt;

    &lt;logger name=&quot;james&quot; additivity=&quot;false&quot;&gt;
        &lt;level value=&quot;info&quot;&gt;&lt;/level&gt;
        &lt;appender-ref ref=&quot;stdout&quot; /&gt;
    &lt;/logger&gt;
    &lt;logger name=&quot;org.apache.james&quot; additivity=&quot;false&quot;&gt;
        &lt;level value=&quot;info&quot;&gt;&lt;/level&gt;
        &lt;appender-ref ref=&quot;stdout&quot; /&gt;
    &lt;/logger&gt;

    
    &lt;root&gt;
        &lt;priority value=&quot;info&quot; /&gt;
        &lt;appender-ref ref=&quot;stdout&quot; /&gt;
    &lt;/root&gt;
&lt;/log4j:configuration&gt;

=====================================================
== File: server/protocols/protocols-smtp/src/test/resources/smtpserver-advancedSecurity.xml
=====================================================
&lt;smtpserver enabled=&quot;true&quot;&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;auth&gt;
        &lt;announce&gt;always&lt;/announce&gt;
        &lt;requireSSL&gt;true&lt;/requireSSL&gt;
        &lt;plainAuthEnabled&gt;false&lt;/plainAuthEnabled&gt;
        &lt;!--OIDC path will be add dynamically in Tests--&gt;
    &lt;/auth&gt;
    &lt;verifyIdentity&gt;true&lt;/verifyIdentity&gt;
    &lt;smtpGreeting&gt;Apache JAMES awesome SMTP Server&lt;/smtpGreeting&gt;
    &lt;handlerchain&gt;
        &lt;handler class=&quot;org.apache.james.smtpserver.CoreCmdHandlerLoader&quot;/&gt;
    &lt;/handlerchain&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/smtpserver&gt;

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/twoSameAttachments.eml
=====================================================
Return-Path: &lt;from@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Fri, 27 Feb 2015 20:32:14 +0100
X-Sieve: CMU Sieve 2.2
Received: from canondir.par.lng (unknown [92.103.166.6])
	(using TLSv1 with cipher AES256-SHA (256/256 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id BAB0D728
	for &lt;to@linagora.com&gt;; Fri, 27 Feb 2015 20:31:38 +0100 (CET)
X-Priority: 3 (Normal)
From: &quot;From&quot;
 &lt;from@linagora.com&gt;
To: &quot;To&quot;
 &lt;to@linagora.com&gt;
Subject: [8/10]Attached Image light with text
Date: Fri, 27 Mar 2015 21:48:38 +0100
Message-Id: &lt;20150227203838.0011.CanonTxNo.4037@canondir.par.lng&gt;
Mime-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;AHNPACBLDCDIDAGGGDDFAABECGCA&quot;

--AHNPACBLDCDIDAGGGDDFAABECGCA
Content-Type: text/html; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

&lt;b&gt;html&lt;/b&gt;

--AHNPACBLDCDIDAGGGDDFAABECGCA
Content-Type: image/jpeg;
 name=&quot;4037_014.jpg&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;4037_014.jpg&quot;

/9j/4X2cRXhpZgAASUkqAAgAAAANAA8BAgAKAAAAqgAAABABAgAJAAAAtAAAABIBAwABAAAA
AQAAABoBBQABAAAAvgAAABsBBQABAAAAxgAAACgBAwABAAAAAgAAADEBAgAKAAAAzgAAADIB
AgAUAAAA2AAAABMCAwABAAAAAgAAAGmHBAABAAAAfAIAAKXEBwDQAAAA7AAAANLGBwBAAAAA
vAEAANPGBwCAAAAA/AEAAEwqAABQYW5hc29uaWMARE1DLUZaNDUAALQAAAABAAAAtAAAAAEA
AABWZXIuMS4wICAAMjAxNDowMjoyNSAxMDozMjowOQBQcmludElNADAyNTAAAA4AAQAWABYA
AgAAAAAAAwBkAAAABwAAAAAACAAAAAAACQAAAAAACgAAAAAACwCsAAAADAAAAAAADQAAAAAA
DgDEAAAAAAEFAAAAAQEBAAAAEAGAAAAACREAABAnAAALDwAAECcAAJcFAAAQJwAAsAgAABAn
AAABHAAAECcAAF4CAAAQJwAAiwAAABAnAADLAwAAECcAAOUbAAAQJwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlMail.eml
=====================================================
Delivered-To: mister@james.org
Received: by 10.28.170.202 with SMTP id t193csp327634wme;
        Thu, 4 Jun 2015 00:36:15 -0700 (PDT)
X-Received: by 10.180.77.195 with SMTP id u3mr5042880wiw.30.1433403375307;
        Thu, 04 Jun 2015 00:36:15 -0700 (PDT)
Return-Path: &lt;bounces+1453977-062b-mister=james.org@email.airbnb.com&gt;
Received: from o7.email.airbnb.com (o7.email.airbnb.com. [167.89.32.249])
        by mx.google.com with ESMTPS id i2si5691730wjz.123.2015.06.04.00.36.13
        for &lt;mister@james.org&gt;
        (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Thu, 04 Jun 2015 00:36:15 -0700 (PDT)
Received-SPF: pass (google.com: domain of bounces+1453977-062b-mister=james.org@email.airbnb.com designates 167.89.32.249 as permitted sender) client-ip=167.89.32.249;
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of bounces+1453977-062b-mister=james.org@email.airbnb.com designates 167.89.32.249 as permitted sender) smtp.mail=bounces+1453977-062b-mister=james.org@email.airbnb.com;
       dkim=pass header.i=@email.airbnb.com;
       dmarc=pass (p=REJECT dis=NONE) header.from=airbnb.com
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=email.airbnb.com;
	h=from:to:subject:mime-version:content-type:content-transfer-encoding;
	s=s20150428; bh=2mhWUwzjtQTC0KljgpaEsuvrqok=; b=EhC2QHKb5+63egDD
	qDCAepUELCeUZXCkw8+31kGT+O1va3iAKvQSAvzXJ3qJlIL9FgdeFk8sR78Vszn/
	A73vp6NGjAW60M4gUZjxEOIPzGKIS95KfmHxg10fXUOFW0uePojNEg4ZPCcuitrZ
	HuWvzHK5I2siGnqupiivwxDgs5c=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.info;
	h=from:to:subject:mime-version:content-type:content-transfer-encoding:x-feedback-id;
	s=smtpapi; bh=2mhWUwzjtQTC0KljgpaEsuvrqok=; b=FPiYMmNJLCrL2e8v/0
	DQC4voofe8nuuE7rhXZ25oqNAhAQja4oKIysJ1qAME2aEaqh+N5aJlCEuHrSG/7+
	NAQ0OY8KaJ2zlnxAbmgJETOjnf4oGdAa+nU/nVVEPfN2NRcBCNLGQZ80U4T5k8Xi
	PakIuZvKDTRq7PiosSCSHT/FQ=
Received: by filter0490p1mdw1.sendgrid.net with SMTP id filter0490p1mdw1.13271.556FFFE7B
        2015-06-04 07:36:09.249601779 +0000 UTC
Received: from i-dee0850e.inst.aws.airbnb.com (ec2-54-90-154-187.compute-1.amazonaws.com [54.90.154.187])
	by ismtpd-017 (SG) with ESMTP id 14dbd7fa6b4.779a.254b43
	for &lt;mister@james.org&gt;; Thu, 04 Jun 2015 07:36:09 +0000 (UTC)
Received: by i-dee0850e.inst.aws.airbnb.com (Postfix, from userid 1041)
	id 19CBA24C60; Thu,  4 Jun 2015 07:36:09 +0000 (UTC)
Date: Thu, 04 Jun 2015 07:36:08 +0000
From: Airbnb &lt;discover@airbnb.com&gt;
To: mister@james.org
Message-ID: &lt;556fffe8cac78_7ed0e0fe204457be@i-dee0850e.mail&gt;
Subject: Text and Html not similar
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary=&quot;--==_mimepart_556fffe8c7e84_7ed0e0fe20445637&quot;;
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-User-ID: 32692788
X-Locale: fr
X-Category: engagement
X-Template: low_intent_top_destinations
recipients:

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlWithLongAndComplicatedContent.eml
=====================================================
Return-Path: &lt;bounce-md_9656357.58dbec18.v1-49d8af7b35d9488c9dead4cc3cc198b0@mandrillapp.com&gt;
Received: from obm3-ui.linagora.dc1 (arathi.linagora.dc1 [172.16.18.50])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Wed, 29 Mar 2017 19:17:15 +0200
X-Sieve: CMU Sieve 2.2
Received: from localhost (obm3-ui.linagora.dc1 [127.0.0.1])
	by obm3-ui.linagora.dc1 (Postfix) with ESMTP id 577115A5F2;
	Wed, 29 Mar 2017 19:17:15 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at linagora.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level:
X-Spam-Status: No, score=x tagged_above=-99 required=2 WHITELISTED tests=[]
	autolearn=unavailable
Received: from obm3-ui.linagora.dc1 ([127.0.0.1])
	by localhost (arathi.linagora.com [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id 4bzZP7QfPmJE; Wed, 29 Mar 2017 19:17:15 +0200 (CEST)
Received: from mail136-224.atl41.mandrillapp.com (mail136-224.atl41.mandrillapp.com [198.2.136.224])
	by obm3-ui.linagora.dc1 (Postfix) with ESMTP id 8584158403
	for &lt;vietnam@linagora.com&gt;; Wed, 29 Mar 2017 19:17:14 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=mandrill; d=mail136-224.atl41.mandrillapp.com;
 h=From:Sender:Subject:To:Message-Id:Date:MIME-Version:Content-Type; i=communication@mail136-224.atl41.mandrillapp.com;
 bh=yJhIEmCfgDbo8xdU9+tDNkfptMw=;
 b=fzGGO+DuKddeSBCRPAw/7FYZ/705poaWScEOFMYDPk0lK0xivc3RpPFf+KqnICqfh/l7tSQuixzG
   rYdpBv3panK7BO/kCtnr4Cchy9G4x6PRaIaa5Yn+4ATbNF+G5ZMEo4VQ6b2eYRpun9GNKf4KH/Xa
   JLvjpo6zlG26d18VPDE=
Received: from pmta04.mandrill.prod.atl01.rsglab.com (127.0.0.1) by mail136-224.atl41.mandrillapp.com id hrfm1k1sb1k5 for &lt;vietnam@linagora.com&gt;; Wed, 29 Mar 2017 17:17:12 +0000 (envelope-from &lt;bounce-md_9656357.58dbec18.v1-49d8af7b35d9488c9dead4cc3cc198b0@mandrillapp.com&gt;)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
 i=@mandrillapp.com; q=dns/txt; s=mandrill; t=1490807832; h=From :
 Sender : Subject : To : Message-Id : Date : MIME-Version : Content-Type
 : From : Subject : Date : X-Mandrill-User : List-Unsubscribe;
 bh=ewlRqmSXhXnjGp1bY43oska+6G6I3EvUCfH5hCQaH4A=;
 b=UPFJiVExUycrvG/DF1YjJFTbTw/S1k2JofcEVY9AmJC8JurPBsWkiP2zljPgaDRI7ufo0r
 tahqpPJYX/sRtkYmRXSlPDKMeRCI67tBiB3XnHuUE5p9Y6+jdRoRZ+aRdskohp8jZ8gCT/pM
 LVTBwMMJSf39TNWmWRMkM2Gx9SA8c=
From: &lt;communication@linagora.com&gt;
Sender: &lt;communication@mail136-224.atl41.mandrillapp.com&gt;
Subject: MailChimp Template Test - &quot;Formation sur les technologies Open Source avec Pa&quot;
X-Accounttype: ff
X-Auto-Response-Suppress: OOF, AutoReply
Auto-Submitted: auto-generated
To: &lt;vietnam@linagora.com&gt;
X-Report-Abuse: Please forward a copy of this message, including all headers, to abuse@mandrill.com
X-Report-Abuse: You can also report abuse here: http://mandrillapp.com/contact/abuse?id=9656357.49d8af7b35d9488c9dead4cc3cc198b0
X-Mandrill-User: md_9656357
Message-Id: &lt;9656357.20170329171712.58dbec18aa5717.87868045@mail136-224.atl41.mandrillapp.com&gt;
Date: Wed, 29 Mar 2017 17:17:12 +0000
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary=&quot;_av-17eAoYMNNKEIcqCToyLXBA&quot;


=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/ics_in_header.eml
=====================================================
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary=&quot;----=_Part_80_888179120.1536742699653&quot;
From: Alice &lt;alice@linagora.com&gt;
Message-ID: &lt;82eb227b-d3e1-3d7a-3220-8a1b4e96a85b@linagora.com&gt;
To: Bob &lt;bob@linagora.com&gt;
Date: Wed, 12 Sep 2018 10:58:18 +0200
Subject: Event Invitation Reply (Accepted):
 Point Produit

------=_Part_80_888179120.1536742699653
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
METHOD:REPLY
BEGIN:VEVENT
CREATED:20180911T144134Z
LAST-MODIFIED:20180912T085818Z
DTSTAMP:20180912T085818Z
UID:f1514f44bf39311568d64072945fc3b2973debebb0d550e8c841f3f0604b2481e047fe
 b2aab16e43439a608f28671ab7c10e754cbbe63441a01ba232a553df751eb0931728d67672
 
SUMMARY:Point Produit
PRIORITY:5
ORGANIZER;CN=Bob;X-OBM-ID=348:mailto:bob@linagora.com
ATTENDEE;CN=Alice;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL;X-OBM-ID=810:
 mailto:alice@linagora.com
DTSTART:20180919T123000Z
DURATION:PT1H
TRANSP:OPAQUE
SEQUENCE:0
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. Rem
 oving entire property:
CLASS:PUBLIC
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:02874f7c-d10e-102f-acda-0015176f7922
LOCATION:T&#xc3;&#xa9;l&#xc3;&#xa9;phone
END:VEVENT
END:VCALENDAR
Content-class: urn:content-classes:calendarmessage
Content-type: text/calendar; method=REPLY; charset=UTF-8
Content-transfer-encoding: 8BIT
Content-Disposition: attachment


------=_Part_80_888179120.1536742699653--

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlBodyWithManyEmptyTags.eml
=====================================================
From: User1 &lt;user1@apache.org&gt;
Content-Type: multipart/alternative;
	boundary=&quot;Apple-Mail=_D2911C08-3A5E-42E0-8425-66C5B77B4CFB&quot;
Message-Id: &lt;AB19EFD0-02FC-4141-AB01-00E5DE4ECAC7@apache.org&gt;
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
X-Smtp-Server: 0977CE5E-80CD-4915-A107-FAFEC09C4749
Subject: Re: Subject
Date: Thu, 2 Mar 2017 17:45:51 +0100
X-Universally-Unique-Identifier: A41C9129-282B-42B3-ABE2-4FA16E75C536
References: &lt;5982F566-52E5-45B5-80A0-D52FB38EEB2C@apache.org&gt; &lt;f0899677-7238-b9e6-8a15-7bad5abb8fd6@apache.org&gt; &lt;6F0808B0-742B-4480-AD6F-E85C093E94FB@apache.org&gt; &lt;30371dd1-d178-d1e3-af42-6a87b48c7c70@apache.org&gt; &lt;CA8C086E-13CD-40C0-B653-664436B07B3C@apache.org&gt; &lt;7424b885-8168-9369-d718-b3efb73bfdae@apache.org&gt;
To: User2 &lt;user2@apache.org&gt;
In-Reply-To: &lt;7424b885-8168-9369-d718-b3efb73bfdae@apache.org&gt;


--Apple-Mail=_D2911C08-3A5E-42E0-8425-66C5B77B4CFB
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252


--
Signature



&gt; On 02 Mar 2017, at 17:36, User2 =
&lt;user2@apache.org&gt; wrote:
&gt;=20
&gt; Hi,=20
&gt; Test.
&gt;=20


--Apple-Mail=_D2911C08-3A5E-42E0-8425-66C5B77B4CFB
Content-Type: multipart/mixed;
	boundary=&quot;Apple-Mail=_B0F07404-D743-4428-AC87-850B66EAB0FF&quot;


--Apple-Mail=_B0F07404-D743-4428-AC87-850B66EAB0FF
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
	charset=windows-1252

&lt;html&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html charset=windows-1252&quot;&gt;&lt;/head&gt;&lt;body style=&quot;word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;&quot; class=&quot;&quot;&gt;&lt;/body&gt;&lt;/html&gt;
--Apple-Mail=_B0F07404-D743-4428-AC87-850B66EAB0FF
Content-Disposition: attachment;
	filename*0=&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL&quot;;
	filename*1=&quot;MNOPQRSTUVW.rtf&quot;
Content-Type: text/rtf;
	name=&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA&quot;

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/mailWithInlinedAttachmentAndBlankCid.eml
=====================================================
Return-Path: &lt;sender@gmail.com&gt;
MIME-Version: 1.0
Delivered-To: test@localhost
Received: from localhost
X-Virus-Scanned: Debian
X-Spam-Flag: NO
X-Spam-Score: -1.78
X-Spam-Level:
X-Spam-Status: No, score=-1.78 tagged_above=-99 required=2
	tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, FREEMAIL_FROM=0.001,
	RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIM_INVALID=0.01,
	T_FREEMAIL_DOC_PDF=0.01] autolearn=no
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:mime-version:subject:message-id:date:cc:to;
        bh=lgK1xUjmh9FzAPFKLN2lvhSSlfI6ujj8K57kqImKrA8=;
        b=tw7ave7egTqm3ZcXDe0NeuPSli3nkOBuqjOWLaK0MivSzO8FTQEWzCMEAlyhG4PMcP
         jkxmhKAAjNPshiFnAYzPB4LNQV6GKPNUQ5igA9HDzh4dfbdT/6GiTEvUyWKZ6VpGVASR
         x9Ioyiwxrdf4phsMYSHT7/Y+94/SvmAQj5gZZXfQ8JvmIAlxN9F4mvMnk2JQM4wcGv8Z
         15zNoTxcUPODEybnawotJUewQu2sCKL7S46vFfKiuYEiKPC/XhGPFsjvwBAvcMBfRgbm
         jJSAPk0TlXERVjhd3CSCHC1ukQ1nICb3yTZacuOK0gUgJ7rKY25zQoq2QvYgX97SuThz
         BpHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:mime-version:subject:message-id:date:cc:to;
        bh=lgK1xUjmh9FzAPFKLN2lvhSSlfI6ujj8K57kqImKrA8=;
        b=VmTt7K8LRHq/MdOYtIhRnA/Lkbx41VnZh6+SYior8s5kLaKgrJWi+N/ql7SU6lCR2m
         JFTyvIfUqsNFiHy0wPMlI4RauXHNVQWe9C+UQ5hc5BT+Z67O/5dxe+KDhtchRqh7JWC5
         aWDjuvROFqhEEqphuEtGLqEqnHPbmweMZBIouasP2Z0TiHTSASSJq60HUcwf7UcVbmbw
         m5O35XykCkecEX+H9fGAqgzlvFvtfy4PDENWfz8Yhzv730FsAmDutRjww0HYriyLwgpN
         OjrT1o6p6DrWs5JlcgRh7F5qauiR/WTq+srbWbe/tLD7Lx8WRKyeXuzjKyTKJ5TjV6c5
         AHKA==
X-Gm-Message-State: AFeK/H1blcvejtSjL0KgKvb81Bc5uVOYQpq8wm/HouMZgtBr1kw+d9+VOes+FQrObRJdbQ==
X-Received: by 10.28.133.84 with SMTP id h81mr8649035wmd.23.1489999897292;
        Mon, 20 Mar 2017 01:51:37 -0700 (PDT)
From: &lt;from@localhost&gt;
Content-Type: multipart/mixed;
 boundary=&quot;Apple-Mail=_DF3869A6-784C-445C-8AA0-EBEFE28034A4&quot;
Subject: mail with attachment from apple mail
Message-Id: &lt;153836C4-4563-400A-ACBF-E2E2ED0FBB49@gmail.com&gt;
Date: Mon, 20 Mar 2017 09:51:28 +0100
To: &lt;to@localhost&gt;
X-Mailer: Apple Mail (2.3259)


--Apple-Mail=_DF3869A6-784C-445C-8AA0-EBEFE28034A4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/windows1252charset.eml
=====================================================
Return-Path: &lt;aduprat@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Mon, 03 Apr 2017 12:36:55 +0200
X-Sieve: CMU Sieve 2.2
Received: from [10.69.0.145] (LFbn-1-9855-213.w86-202.abo.wanadoo.fr [86.202.211.213])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id 5CD7B76B
	for &lt;aduprat@linagora.com&gt;; Mon,  3 Apr 2017 12:36:55 +0200 (CEST)
To: Antoine DUPRAT &lt;aduprat@linagora.com&gt;
From: aduprat &lt;aduprat@linagora.com&gt;
Subject: =?UTF-8?B?w6Agw6kgw6g=?=
Message-ID: &lt;3325d853-c33c-bc4a-4435-cd704f6a341c@linagora.com&gt;
Date: Mon, 3 Apr 2017 12:36:55 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.8.0
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary=&quot;------------4609A4E8FA0583CE89472864&quot;

This is a multi-part message in MIME format.
--------------4609A4E8FA0583CE89472864
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit

????

????

????

--------------4609A4E8FA0583CE89472864
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: 8bit

&lt;html&gt;
  &lt;p&gt;????&lt;/p&gt;
  &lt;p&gt;????&lt;/p&gt;
  &lt;p&gt;????&lt;/p&gt;
&lt;/html&gt;

--------------4609A4E8FA0583CE89472864--

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/embeddedMultipartWithInlineTextAttachment.eml
=====================================================
Date: Tue, 03 Jan 2017 16:05:01 +0100
From: sender &lt;sender@james.org&gt;
MIME-Version: 1.0
To: David DOLCIMASCOLO &lt;david.ddo@linagora.com&gt;
Subject: Re: [Internet] Rendez-vous
References: &lt;9b6a4271-69fb-217a-5c14-c68c68375d96@linagora.com&gt;
In-Reply-To: &lt;d5c6f1d6-96e7-8172-9fe6-41fa6c9bd6ec@linagora.com&gt;
X-Gie-Attachments: none
Cc: 
Content-type: multipart/mixed; boundary=&quot;----------=_1483455916-7086-3&quot;

This is a multi-part message in MIME format...

------------=_1483455916-7086-3
Content-Type: multipart/alternative; boundary=&quot;------------060506070600060108040700&quot;

This is a multi-part message in MIME format.
--------------060506070600060108040700
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

/blabla/
*bloblo*

--------------060506070600060108040700
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

&lt;i&gt;blabla&lt;/i&gt;
&lt;b&gt;bloblo&lt;/b&gt;

--------------060506070600060108040700--

------------=_1483455916-7086-3
Content-ID: &lt;14672787885774e5c4d4cee471352039@linagora.com&gt;
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;; name=&quot;avertissement.txt&quot;
Content-Disposition: inline; filename=&quot;avertissement.txt&quot;
Content-Transfer-Encoding: binary

inline attachment

------------=_1483455916-7086-3--

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/mailWithRecipients.eml
=====================================================
Content-Type: text/plain; Charset=UTF-8
Date: Fri, 17 Sep 2010 17:12:26 +0200
Subject: my subject
To: to &lt;to@james.org&gt;
Cc: cc@james.org
Bcc: bcc@james.org
MIME-Version: 1.0
Message-Id: &lt;20100917151246.2A9384BA1@lenny&gt;
From: From &lt;from@james.org&gt;

Mail content

-- 
Ad Min

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/noTextBodyButHtmlBody.eml
=====================================================
Return-Path: &lt;returnPath&gt;
Received: from localhost (localhost [127.0.0.1])
    by localhost (Postfix) with ESMTP id 27358B3A09;
    Tue, 11 Oct 2016 11:59:12 +0200 (CEST)
X-Sieve: CMU Sieve 2.2
Date: Tue, 14 Mar 2017 16:47:05 +0100 (CET)
From: &quot;Test User (JIRA)&quot; &lt;test@localhost&gt;
To: you@localhost
Message-ID: &lt;JIRA.18278.1489506415000.375139.1489506425447@Atlassian.JIRA&gt;
In-Reply-To: &lt;JIRA.18278.1489506415000@Atlassian.JIRA&gt;
References: &lt;JIRA.18278.1489506415000@Atlassian.JIRA&gt; &lt;JIRA.18278.1489506415104@localhost&gt;
Subject: [JIRA] (CHAT-338) Update + icon
MIME-Version: 1.0
Content-Type: multipart/related;
	boundary=&quot;----=_Part_370449_1340169331.1489506420401&quot;
X-JIRA-FingerPrint: 2cc56fe0b6c36a47776991d4aa5e9674
Auto-Submitted: auto-generated
Precedence: bulk

------=_Part_370449_1340169331.1489506420401
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

&lt;a&gt;The Test User&lt;/a&gt; &lt;strong&gt;created&lt;/strong&gt; an issue
------=_Part_370449_1340169331.1489506420401
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Disposition: inline
Content-ID: &lt;jira-generated-image-static-major-2aab6bf2-4155-47c6-9c0b-b0ec1fdeaf9a&gt;

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEX////QRDfQRDfQRDfQRDfQ
RDcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFHZsIAAAABXRSTlMAEZnM3Uchgx8AAAAb
dEVYdGppcmEtc3lzdGVtLWltYWdlLXR5cGUAaWNvbroqOUUAAABESURBVHjaY2BAAsKGQIKJgYFR
SUkAzBBSYFIEMRiVHvwDCjExMMk9+PdIgYGF4f+9D//v8YJ1sQZAdEEACuP/BwYSAQCDPg0vvqNM
LwAAAABJRU5ErkJggu2YDBYHBhIBAEDzBgwy4Sb4AAAAAElFTkSuQmCC
------=_Part_370449_1340169331.1489506420401
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Disposition: inline
Content-ID: &lt;jira-generated-image-static-comment-icon-d374d5f6-0597-421c-a4ef-50f59dbc5d33&gt;

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEX///+1tbWzs7OysrKrq6um
pqalpaWdnZ2ZmZn///+VlZWPj4/7+/vu7u7p6enn5+fl5eXk5OTh4eHW1tbT09PMzMzJycm6urq5
ubm1tbWzs7OysrKrq6upqamlpaWKioqFhYWRkZGKioqHh4eDg4OAgIB/f398fHx6enp4eHh2dnZ0
dHRycnJwcHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gg==
------=_Part_370449_1340169331.1489506420401
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Disposition: inline

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneInlinedImageWithoutContentDisposition.eml
=====================================================
Return-Path: &lt;test@linagora.com&gt;
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary=&quot;=_78be9b39405e216b14ea426a30eef65c&quot;
Date: Thu, 30 Jun 2016 11:26:28 +0200
From: Test &lt;test@linagora.com&gt;
To: test &lt;test@linagora.com&gt;
Subject: Mail with inlined image
Message-ID: &lt;e544b5c4bb46598380ce57c7dd1f5340@linagora.com&gt;
X-Sender: test@linagora.com
User-Agent: Roundcube Webmail/1.1.4

--=_78be9b39405e216b14ea426a30eef65c
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII

Inlined image: 

Signature. 
--=_78be9b39405e216b14ea426a30eef65c
Content-Type: multipart/related;
 boundary=&quot;=_09507e56cd9618e600636c7ef4ea9f8f&quot;

--=_09507e56cd9618e600636c7ef4ea9f8f
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8

&lt;html&gt;&lt;head&gt;&lt;meta http-equiv=3D&quot;Content-Type&quot; content=3D&quot;text/html; charset=
=3DUTF-8&quot; /&gt;&lt;/head&gt;&lt;body style=3D'font-size: 10pt; font-family: Verdana,Gen=
eva,sans-serif'&gt;
&lt;p&gt;Inlined image:&lt;/p&gt;
&lt;p&gt;&lt;img src=3D&quot;cid:14672787885774e5c4d4cee471352039@linagora.com&quot; alt=3D&quot;&quot; =
width=3D&quot;32&quot; height=3D&quot;32&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Signature.&lt;/p&gt;
&lt;/body&gt;&lt;/html&gt;

--=_09507e56cd9618e600636c7ef4ea9f8f
Content-Transfer-Encoding: base64
Content-ID: &lt;14672787885774e5c4d4cee471352039@linagora.com&gt;
Content-Type: image/png;
 name=vlc.png

iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFrUlEQVRYw8WWW2wc1RnHf+fMZS+z
O7veXXZtr+M4Bl+IHNwrSau0ahEkNIloeCgttKoaJFT1oZUqRUJqEaqqPoAoSLRqK4FaISFUIVQQ
IMETCBmqBpSGm9OIOKbEju11vNfZnZ29zUwfxiGUkta17PZIZ85I55zv+8///11G+L7P/3Oom704
c2ff8R169ftCF2LBijz65cfs+zdjR2yGgSe+O5KciizOT2S9lBaF2bPCOtXIjB576mLpv7UlN/X5
DWt/POKlXBd6LiQivql1e1/ajKlNAYhJ55AhgRaILpgaxGjd/D+R4JcPPahPpDgzHZ0bDbUdhGhi
qzn+vJT425LfN3338eO9bQ3C/PDoFz0zPeLuOcaq0yYeCbFSrDI4XL529dRf9wBvbqsEyyuF/SP5
q6RdK2HqPrZVJmMoVCtlkR/I3bHtMTA+dvVttuMQixlYdZuYEaVWbzCcH6Swunb9tgJ4/Mmnd5fr
zlgmlabesDHjBg27SdKMU7HqjI2P773v4d8NbxsA56WH9l17lRa2bJuYmaTaBsNMU3Vcspk01tzJ

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/twoAttachments.eml
=====================================================
Return-Path: &lt;from@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Fri, 27 Feb 2015 20:32:14 +0100
X-Sieve: CMU Sieve 2.2
Received: from canondir.par.lng (unknown [92.103.166.6])
	(using TLSv1 with cipher AES256-SHA (256/256 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id BAB0D728
	for &lt;to@linagora.com&gt;; Fri, 27 Feb 2015 20:31:38 +0100 (CET)
X-Priority: 3 (Normal)
From: &quot;From&quot;
 &lt;from@linagora.com&gt;
To: &quot;To&quot;
 &lt;to@linagora.com&gt;
Subject: [8/10]Attached Image light with text
Date: Fri, 27 Mar 2015 21:48:38 +0100
Message-Id: &lt;20150227203838.0011.CanonTxNo.4037@canondir.par.lng&gt;
Mime-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;AHNPACBLDCDIDAGGGDDFAABECGCA&quot;

--AHNPACBLDCDIDAGGGDDFAABECGCA
Content-Type: text/html; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

&lt;b&gt;html tiramisu&lt;/b&gt;

--AHNPACBLDCDIDAGGGDDFAABECGCA
Content-Type: image/jpeg;
 name=&quot;4037_014.jpg&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;4037_014.jpg&quot;

/9j/4X2cRXhpZgAASUkqAAgAAAANAA8BAgAKAAAAqgAAABABAgAJAAAAtAAAABIBAwABAAAA
AQAAABoBBQABAAAAvgAAABsBBQABAAAAxgAAACgBAwABAAAAAgAAADEBAgAKAAAAzgAAADIB
AgAUAAAA2AAAABMCAwABAAAAAgAAAGmHBAABAAAAfAIAAKXEBwDQAAAA7AAAANLGBwBAAAAA
vAEAANPGBwCAAAAA/AEAAEwqAABQYW5hc29uaWMARE1DLUZaNDUAALQAAAABAAAAtAAAAAEA
AABWZXIuMS4wICAAMjAxNDowMjoyNSAxMDozMjowOQBQcmludElNADAyNTAAAA4AAQAWABYA
AgAAAAAAAwBkAAAABwAAAAAACAAAAAAACQAAAAAACgAAAAAACwCsAAAADAAAAAAADQAAAAAA
DgDEAAAAAAEFAAAAAQEBAAAAEAGAAAAACREAABAnAAALDwAAECcAAJcFAAAQJwAAsAgAABAn
AAABHAAAECcAAF4CAAAQJwAAiwAAABAnAADLAwAAECcAAOUbAAAQJwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneAttachment.eml
=====================================================
Mail content:
To: &quot;=?utf-8?B?UmFuaSBBc3NhZg==?=&quot; &lt;rani.assaf@jri.obm.lng.org&gt;
Subject: =?utf-8?B?VHIuIDogUGhvdG9zICE=?=
Importance: Normal
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary=&quot;----=_Part_0_1330682067197&quot;

------=_Part_0_1330682067197
Content-Type: multipart/alternative;
	boundary=&quot;----=_Part_2_1330682067197&quot;

------=_Part_2_1330682067197
Content-Type: text/plain;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Content of part 1-1
------=_Part_2_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

&lt;b&gt;Content of part 1-2&lt;/b&gt;
------=_Part_2_1330682067197--

------=_Part_0_1330682067197
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename=&quot;gimp.png&quot;

iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAALxklEQVR4Ae2Xe0xUZ97H5X4RiyAXEARURBSYCzNnLjMwwAx3huGOIBcUFJERAUVRq+KlwHABFdu+b9+0766x1W21ttnUtE3rul6aGNtm3XbdWncjaa3VXrZRK6IgfPd3Tp6wOGmyo0v/cOMknxwy5xzO7/P8LueZaWlpaU80TwWeCvy3CcRwXJlUqp39RApIOE4i5hQPxBz30hMpIJIrjktkseMimfzPUyoglilTf/XVl8u1Ik4xrOJEEMu4wSkVEMmVZ6VSTeivFXy0TDZfIlfc0qil0KpIQM59P6UCUk71lVShPD1t2jT7qQ4+Sq32prq/GhfHjSXFSxGvEfMCQ1MsoLzOadT3pArFwBQ3LSdRqK4mJyfcz0xRwaCLRVKcBDEybmxqBRTKH8uXpEOj0/1MD3wuMTHR8T9adY4LoOD3KuPj7xYVGlGYo0e6gUNKoowkpKBmHpXJZO5TKXCrpjwT5pWFSM1IvROrVH0hksujf+laAHYWi8XT+nsKyIlvVKlSeVSu0twtXpI/Yq4rR2lBKoxpamQmK5Gm55CcIAP1wxAvOWUCEk4xVLvchIaVedi8rgq1NSXjqnjdHcrGayK5yhStVPpbLLvE/Xt6Tnf3Wu529XSM9fZ13Wzbse2kJiGhK1ap/ETCqe5lGLNum+trxnZsbca6tcuwJM+AvKw4mNI1yEpVURYUSE2S8wJ3RSKN35QJUJPdM6/IQ8vaCmzdZMbObU2w7G7BhhbzeEFR4e2SsrIRChqnz5zE999/h9HREXz19SDefOt1dPW0Y8e2Frywtx0vDnRg57NrUVdTgJJ8PYpyEpBvjEdOhvahLIg55YOioiKHRxKgjwPBEaHEQzfz/3DH9mb07+nGsbeO4MjRw+jts8DS3or/GdiNnr4ufP6XC/jhh+9w587PuHdvGLdv38SNG9fwwYfvon9vN3Zvb0Td8lxUlqSirCgZpSRQnJuIgmwdcikL2elqZKUwAbni0aaQvb19M3HT2dnlloODw5Cdnd0d+rKVRFz48xkm0+i+gX5cv34NP/30I86fP4ePPjqL3n4LOjq24O2338CVK1/i22+v4ssvL+HTTz+B2WzGqlUrcfr0HzCwvw9Na8pRXZaBqtI0VBSnYGmBgUooEYUmHYQyyhDKCClJCl7gus0C9DE5OjkNpefkoXvPPugzjIiMEcN9+vQ7JHKFzvs1tzTdO3P2lBD8wYMHce3aNVBTYk1DPXp62/HHUx/g0qXPSOIyBgcHwX/u37+PiMhIiCViHP7dAbRuqAc/CJbxAktIoJAXSEKRiZURCRhJwJCoAPXcRZsF7B0dL8cq1RgeHgb/+fziX6E1pPCjDJ5e3iOUmcHWzRvHz398ThAoKSnB5b/9HYbUdMwJmUPl04GTJ9/DhQvn8cYbh/D++++D/1y/cYOvZbi6uWHvvj48u7kRgsDSdEGgjARKSOChPiCBpAQFpBx3ymYBWuXR9Zu2gH0wPj6O7KISyNRxiBJLMeMZz/GcXOP4a4cOCAJ5eXmY5eMDL29v6PUJ6O7aQX1xGOfOncLx429h5syZMDc2I05vQJQ0Fq6uriTZifWNy60yYCXAMqDVcmMiTtlrswAZPMgtLsXY2Jgg8PXVb5CYngWpSoMFi6MRsTAS7rSKnZZdeP3IIarv89ixow21tTXoaN9KE6kefdQLJ04cx5kzH0Cp5OA9axYCgoIx08sLCQlxsHS3o646F9XlGSQwuQeSJveAICBTKm49yuaRb+Drco0W6zdTM75zHJW1dVAlGvjXOULDF2ABCQQFz4FcEomdbc3o7qGpQ+za3oQtzWXY3LwUHc9twfPP9+Gd40ephN5GW9tmJCXpsHnLBrq+HS1N1VhRkYnlZemooilUzk+hgokpNPEuyExWUdlx99lb2GaBV+eGh48kJKciVq0VSofqX1j9wDkhCA4Ng0gihb+vF5pXF2K9uQgta4qxoWEJNq4l6LihoQRtW5vQRSu9d6AH//vSAI1cCzq7dmNdQxVWVmahhq3+RP3n/6t8cjO1yE5TQ59EDaxQsN8Ctk+hUH50JhqSESONFQKfF0GrToH7+AfAf3YQdIlJcHNzwdrafDTWFaCJRJqJdfVFAvzfTfR9c30xrfYytLbUotlchtXVOULwND6FICuXPLz61uWj1iruUePv4gvbZgGWhv2+fn5DesrCXCob34BAPniBoJBQJOj18KMM1NfkYM2KXGFL0VCbxwsJ0N/Cd2Y6x1+zmrYdq5YZJ1Z+OU2ejGTK6rwg4QX20Phkq59mUPLz/264SBRMAva2Sky8hWka/T4gMPBuVnY2OJUaIXPnYU7YXCQlJ0MsFkMaE05BZdPbNJtW1iRQTytMCH9T0MK5VVVC4ELN8ytPZSNsG6IjQ5C4wAkVWl+UZsYiP1sonYl9kIpWPzpW9gLFMp1wJhyYhM1bCUfqh5dp7A3J5PIHqWnpyDQaIZFKMMvbU3iD0hikwLKEAGt5KFhCWGUKlk2ZdGGrUEQlkqaXC+LBgV4ok7tik8Edr1fOwKbkGajXeaBcH4aclFik6hXC9sE7ICCK4vAhZhAutkj8UlMsopL6jZ2d/acOjo7fBAbPuW/Qax7QHkYoBZIQgqUjQ5guQm3nG3VCqeg0IsSKFmDRwlBERYZBHDUPxvhICvoZdGR54IudEfisg8Nva+aiQTcDpVq/B4qY8Ffo2QuIYCsJVk62C9gRTiyVPkFhYSqxnLuk0qqH83P0FGwmVi3PpbLJp2MeZSSbxGjlSa6yRJjxgsxSNmmWUCZo2gjjMj9LgwpDGMzxbji20h9Xu6JxpV+FI+aF4016z/u1atcPq/P1DTqdOoae7U24E46PI+DMVsCfCHN2do6OWBzdS9vqf3Bq1bAxM4FKJZMalqbQmkq00N6+eU0FGlaV0gurgErJiPLiNHpZJfN7fiqnJNawwrYZJoMYtfFeVErT8fG6WbjaGYHBPg6v1EWNdXa2Yeuz6w75+PgEshicHkfAhXiGCCDmEosJGaELCgnpiJJIByUK5YjBED++tDANtctoGq0uw4amGmxaX0vHFSRUhfqVJVhRlYeK0iwSSSaBeCoxJTQablwk40aTYvwvrta6DL9c7DF6eYsPeixtOPjqAbzw4v6hrp7OC+XV5QsfV8CJ2fsRIUQkISXURCpR6enl1b1g0eLP+d8KsQrlqEqjGtHr48ezMmhMFmWiqsyEylIjivNSKPBEJBu0UKoVD0Qy+djC6Oir7h4eA/R/mvw87FdXK13PbsyPHOnt7aAtyQmBQ4dfHe3p7by187ntOXTdPCKDcLZVwIFwI7yIQGLepCxomUQ50Ui0UTD/5+Pr925waOifFi6OuiaKlQ1JOOUYMU6CozGx8uHIqJjr/kFBJ11cXJ6ne7YSZmIpkUJoWxqXv2fp2n133/49d44de1OQOHr0CAIC/Meio6MhkUhA110jNhL21gLWEvaTGtmbmM0kFk3KRCKRRZQR9cQGoo3oIHppJPfTsY/oJtqJbUQLUUeUshVNIJSExMvLK9rT03P+upbGVd09nZfo9/XPJlM2/P390dnZKRAWFsZL8JT+OwG7SRLuxEzCn5VTOBHFRJREPKEn0ggTUcRWtoJRyr4zscwlEXHsXinLbDgbn37sWW7bdm2L9/Pzu+nu7o6NGzeitbWVshEAlokvCPsJARskXFlPeDORYJaRCCYjZuWlYNnREFqGhlCxczJ27WJ279xJgXsRHmyAOLJnnyTAQxkVjvPnz4evry94eWuBX5RgOEwSmU54ErOYzGxiDhHGpMKJCCvC2bkwFvBsFrQ3m3bTWeBO7Fl2jPUErKFy44/p1gK2ijgSzkzGnfBgQcxkAfkwfBk+DG9iJrvWg93ryoJ2nBy41bMPWQvQ7pk/LrMSeCQRe8JhkpATk3JhQblZ4crOOVsFLGwTrAOfDLv3AAErWq0FHldmktQEDlbYM+yseYTnLSOGCDD6H1/ARilrpuD/LyYuMoFDVgJPBqx3/p84YS3wpInonmQBxlOBpwJPBf4JszXhha5WvGwAAAAASUVORK5CYII=

------=_Part_0_1330682067197--


=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/multipartRelated.eml
=====================================================
Return-Path: &lt;linshare-noreply@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
     by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
     Mon, 22 Aug 2016 14:06:47 +0200
X-Sieve: CMU Sieve 2.2
Received: from linshare1.linagora.dc1 (linshare1.linagora.dc1 [172.16.18.60])
    by alderaan.linagora.com (Postfix) with ESMTP id 36470776
    for &lt;ddolcimascolo@linagora.com&gt;; Mon, 22 Aug 2016 14:06:47 +0200 (CEST)
Date: Mon, 22 Aug 2016 14:06:47 +0200 (CEST)
From: LinShare &lt;linshare-noreply@linagora.com&gt;
Reply-To: abenchi@linagora.com
To: ddolcimascolo@linagora.com
Message-ID: &lt;2020561626.8931471867607210.JavaMail.tomcat7@linshare1&gt;
Subject: A user Abdulkader BENCHI has just made a file available to you!
MIME-Version: 1.0
Content-Type: multipart/alternative; 
    boundary=&quot;----=_Part_1786_771314706.1471867607209&quot;

------=_Part_1786_771314706.1471867607209
Content-Type: multipart/related; 
    boundary=&quot;----=_Part_1787_1274970450.1471867607209&quot;

------=_Part_1787_1274970450.1471867607209
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

&lt;html&gt;multipart/related content&lt;/html&gt;

------=_Part_1787_1274970450.1471867607209
Content-Type: image/png; name=gimp.png
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=gimp.png
Content-ID: &lt;image.part.1@linshare.org&gt;

iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAALxklEQVR4Ae2Xe0xUZ97H5X4RiyAXEARURBSYCzNnLjMwwAx3huGOIBcUFJERAUVRq+KlwHABFdu+b9+0766x1W21ttnUtE3rul6aGNtm3XbdWncjaa3VXrZRK6IgfPd3Tp6wOGmyo0v/cOMknxwy5xzO7/P8LueZaWlpaU80TwWeCvy3CcRwXJlUqp39RApIOE4i5hQPxBz30hMpIJIrjktkseMimfzPUyoglilTf/XVl8u1Ik4xrOJEEMu4wSkVEMmVZ6VSTeivFXy0TDZfIlfc0qil0KpIQM59P6UCUk71lVShPD1t2jT7qQ4+Sq32prq/GhfHjSXFSxGvEfMCQ1MsoLzOadT3pArFwBQ3LSdRqK4mJyfcz0xRwaCLRVKcBDEybmxqBRTKH8uXpEOj0/1MD3wuMTHR8T9adY4LoOD3KuPj7xYVGlGYo0e6gUNKoowkpKBmHpXJZO5TKXCrpjwT5pWFSM1IvROrVH0hksujf+laAHYWi8XT+nsKyIlvVKlSeVSu0twtXpI/Yq4rR2lBKoxpamQmK5Gm55CcIAP1wxAvOWUCEk4xVLvchIaVedi8rgq1NSXjqnjdHcrGayK5yhStVPpbLLvE/Xt6Tnf3Wu529XSM9fZ13Wzbse2kJiGhK1ap/ETCqe5lGLNum+trxnZsbca6tcuwJM+AvKw4mNI1yEpVURYUSE2S8wJ3RSKN35QJUJPdM6/IQ8vaCmzdZMbObU2w7G7BhhbzeEFR4e2SsrIRChqnz5zE999/h9HREXz19SDefOt1dPW0Y8e2Frywtx0vDnRg57NrUVdTgJJ8PYpyEpBvjEdOhvahLIg55YOioiKHRxKgjwPBEaHEQzfz/3DH9mb07+nGsbeO4MjRw+jts8DS3or/GdiNnr4ufP6XC/jhh+9w587PuHdvGLdv38SNG9fwwYfvon9vN3Zvb0Td8lxUlqSirCgZpSRQnJuIgmwdcikL2elqZKUwAbni0aaQvb19M3HT2dnlloODw5Cdnd0d+rKVRFz48xkm0+i+gX5cv34NP/30I86fP4ePPjqL3n4LOjq24O2338CVK1/i22+v4ssvL+HTTz+B2WzGqlUrcfr0HzCwvw9Na8pRXZaBqtI0VBSnYGmBgUooEYUmHYQyyhDKCClJCl7gus0C9DE5OjkNpefkoXvPPugzjIiMEcN9+vQ7JHKFzvs1tzTdO3P2lBD8wYMHce3aNVBTYk1DPXp62/HHUx/g0qXPSOIyBgcHwX/u37+PiMhIiCViHP7dAbRuqAc/CJbxAktIoJAXSEKRiZURCRhJwJCoAPXcRZsF7B0dL8cq1RgeHgb/+fziX6E1pPCjDJ5e3iOUmcHWzRvHz398ThAoKSnB5b/9HYbUdMwJmUPl04GTJ9/DhQvn8cYbh/D++++D/1y/cYOvZbi6uWHvvj48u7kRgsDSdEGgjARKSOChPiCBpAQFpBx3ymYBWuXR9Zu2gH0wPj6O7KISyNRxiBJLMeMZz/GcXOP4a4cOCAJ5eXmY5eMDL29v6PUJ6O7aQX1xGOfOncLx429h5syZMDc2I05vQJQ0Fq6uriTZifWNy60yYCXAMqDVcmMiTtlrswAZPMgtLsXY2Jgg8PXVb5CYngWpSoMFi6MRsTAS7rSKnZZdeP3IIarv89ixow21tTXoaN9KE6kefdQLJ04cx5kzH0Cp5OA9axYCgoIx08sLCQlxsHS3o646F9XlGSQwuQeSJveAICBTKm49yuaRb+Drco0W6zdTM75zHJW1dVAlGvjXOULDF2ABCQQFz4FcEomdbc3o7qGpQ+za3oQtzWXY3LwUHc9twfPP9+Gd40ephN5GW9tmJCXpsHnLBrq+HS1N1VhRkYnlZemooilUzk+hgokpNPEuyExWUdlx99lb2GaBV+eGh48kJKciVq0VSofqX1j9wDkhCA4Ng0gihb+vF5pXF2K9uQgta4qxoWEJNq4l6LihoQRtW5vQRSu9d6AH//vSAI1cCzq7dmNdQxVWVmahhq3+RP3n/6t8cjO1yE5TQ59EDaxQsN8Ctk+hUH50JhqSESONFQKfF0GrToH7+AfAf3YQdIlJcHNzwdrafDTWFaCJRJqJdfVFAvzfTfR9c30xrfYytLbUotlchtXVOULwND6FICuXPLz61uWj1iruUePv4gvbZgGWhv2+fn5DesrCXCob34BAPniBoJBQJOj18KMM1NfkYM2KXGFL0VCbxwsJ0N/Cd2Y6x1+zmrYdq5YZJ1Z+OU2ejGTK6rwg4QX20Phkq59mUPLz/264SBRMAva2Sky8hWka/T4gMPBuVnY2OJUaIXPnYU7YXCQlJ0MsFkMaE05BZdPbNJtW1iRQTytMCH9T0MK5VVVC4ELN8ytPZSNsG6IjQ5C4wAkVWl+UZsYiP1sonYl9kIpWPzpW9gLFMp1wJhyYhM1bCUfqh5dp7A3J5PIHqWnpyDQaIZFKMMvbU3iD0hikwLKEAGt5KFhCWGUKlk2ZdGGrUEQlkqaXC+LBgV4ok7tik8Edr1fOwKbkGajXeaBcH4aclFik6hXC9sE7ICCK4vAhZhAutkj8UlMsopL6jZ2d/acOjo7fBAbPuW/Qax7QHkYoBZIQgqUjQ5guQm3nG3VCqeg0IsSKFmDRwlBERYZBHDUPxvhICvoZdGR54IudEfisg8Nva+aiQTcDpVq/B4qY8Ffo2QuIYCsJVk62C9gRTiyVPkFhYSqxnLuk0qqH83P0FGwmVi3PpbLJp2MeZSSbxGjlSa6yRJjxgsxSNmmWUCZo2gjjMj9LgwpDGMzxbji20h9Xu6JxpV+FI+aF4016z/u1atcPq/P1DTqdOoae7U24E46PI+DMVsCfCHN2do6OWBzdS9vqf3Bq1bAxM4FKJZMalqbQmkq00N6+eU0FGlaV0gurgErJiPLiNHpZJfN7fiqnJNawwrYZJoMYtfFeVErT8fG6WbjaGYHBPg6v1EWNdXa2Yeuz6w75+PgEshicHkfAhXiGCCDmEosJGaELCgnpiJJIByUK5YjBED++tDANtctoGq0uw4amGmxaX0vHFSRUhfqVJVhRlYeK0iwSSSaBeCoxJTQablwk40aTYvwvrta6DL9c7DF6eYsPeixtOPjqAbzw4v6hrp7OC+XV5QsfV8CJ2fsRIUQkISXURCpR6enl1b1g0eLP+d8KsQrlqEqjGtHr48ezMmhMFmWiqsyEylIjivNSKPBEJBu0UKoVD0Qy+djC6Oir7h4eA/R/mvw87FdXK13PbsyPHOnt7aAtyQmBQ4dfHe3p7by187ntOXTdPCKDcLZVwIFwI7yIQGLepCxomUQ50Ui0UTD/5+Pr925waOifFi6OuiaKlQ1JOOUYMU6CozGx8uHIqJjr/kFBJ11cXJ6ne7YSZmIpkUJoWxqXv2fp2n133/49d44de1OQOHr0CAIC/Meio6MhkUhA110jNhL21gLWEvaTGtmbmM0kFk3KRCKRRZQR9cQGoo3oIHppJPfTsY/oJtqJbUQLUUeUshVNIJSExMvLK9rT03P+upbGVd09nZfo9/XPJlM2/P390dnZKRAWFsZL8JT+OwG7SRLuxEzCn5VTOBHFRJREPKEn0ggTUcRWtoJRyr4zscwlEXHsXinLbDgbn37sWW7bdm2L9/Pzu+nu7o6NGzeitbWVshEAlokvCPsJARskXFlPeDORYJaRCCYjZuWlYNnREFqGhlCxczJ27WJ279xJgXsRHmyAOLJnnyTAQxkVjvPnz4evry94eWuBX5RgOEwSmU54ErOYzGxiDhHGpMKJCCvC2bkwFvBsFrQ3m3bTWeBO7Fl2jPUErKFy44/p1gK2ijgSzkzGnfBgQcxkAfkwfBk+DG9iJrvWg93ryoJ2nBy41bMPWQvQ7pk/LrMSeCQRe8JhkpATk3JhQblZ4crOOVsFLGwTrAOfDLv3AAErWq0FHldmktQEDlbYM+yseYTnLSOGCDD6H1/ARilrpuD/LyYuMoFDVgJPBqx3/p84YS3wpInonmQBxlOBpwJPBf4JszXhha5WvGwAAAAASUVORK5CYII=
------=_Part_1787_1274970450.1471867607209--

------=_Part_1786_771314706.1471867607209--

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneInlinedImage.eml
=====================================================
Return-Path: &lt;test@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Thu, 30 Jun 2016 11:26:28 +0200
X-Sieve: CMU Sieve 2.2
Received: from extranet.linagora.com (ldap.linagora.com [172.16.18.50])
	by alderaan.linagora.com (Postfix) with ESMTP id D9D01743
	for &lt;test@linagora.com&gt;; Thu, 30 Jun 2016 11:26:28 +0200 (CEST)
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary=&quot;=_78be9b39405e216b14ea426a30eef65c&quot;
Date: Thu, 30 Jun 2016 11:26:28 +0200
From: Test &lt;test@linagora.com&gt;
To: test &lt;test@linagora.com&gt;
Subject: Mail with inlined image
Message-ID: &lt;e544b5c4bb46598380ce57c7dd1f5340@linagora.com&gt;
X-Sender: test@linagora.com
User-Agent: Roundcube Webmail/1.1.4

--=_78be9b39405e216b14ea426a30eef65c
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII

Inlined image: 

Signature. 
--=_78be9b39405e216b14ea426a30eef65c
Content-Type: multipart/related;
 boundary=&quot;=_09507e56cd9618e600636c7ef4ea9f8f&quot;

--=_09507e56cd9618e600636c7ef4ea9f8f
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8

&lt;html&gt;&lt;head&gt;&lt;meta http-equiv=3D&quot;Content-Type&quot; content=3D&quot;text/html; charset=
=3DUTF-8&quot; /&gt;&lt;/head&gt;&lt;body style=3D'font-size: 10pt; font-family: Verdana,Gen=
eva,sans-serif'&gt;
&lt;p&gt;Inlined image:&lt;/p&gt;
&lt;p&gt;&lt;img src=3D&quot;cid:14672787885774e5c4d4cee471352039@linagora.com&quot; alt=3D&quot;&quot; =
width=3D&quot;32&quot; height=3D&quot;32&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Signature.&lt;/p&gt;
&lt;/body&gt;&lt;/html&gt;

--=_09507e56cd9618e600636c7ef4ea9f8f
Content-Transfer-Encoding: base64
Content-ID: &lt;14672787885774e5c4d4cee471352039@linagora.com&gt;
Content-Type: image/png;
 name=vlc.png
Content-Disposition: inline;
 filename=vlc.png;

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/sameInlinedImages.eml
=====================================================
Return-Path: &lt;test@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Thu, 29 Dec 2016 04:19:28 +0100
X-Sieve: CMU Sieve 2.2
Received: from extranet.linagora.com (ldap.linagora.com [172.16.18.50])
	by alderaan.linagora.com (Postfix) with ESMTP id F33174499
	for &lt;test@linagora.com&gt;; Thu, 29 Dec 2016 04:19:27 +0100 (CET)
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary=&quot;=_c0feb3c9f3d562fc7adebe39b63a7f62&quot;
Date: Thu, 29 Dec 2016 04:19:27 +0100
From: Test &lt;test@linagora.com&gt;
To: test &lt;test@linagora.com&gt;
Subject: Send many inlined images
Message-ID: &lt;ba8178c9417b36c627a7c6de9d1470e8@linagora.com&gt;
X-Sender: test@linagora.com
User-Agent: Roundcube Webmail/1.1.4

--=_c0feb3c9f3d562fc7adebe39b63a7f62
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII

Add more images 

  
--=_c0feb3c9f3d562fc7adebe39b63a7f62
Content-Type: multipart/related;
 boundary=&quot;=_ebeed74b39dc10b43908b65b893b4ea4&quot;

--=_ebeed74b39dc10b43908b65b893b4ea4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8

&lt;html&gt;&lt;head&gt;&lt;meta http-equiv=3D&quot;Content-Type&quot; content=3D&quot;text/html; charset=
=3DUTF-8&quot; /&gt;&lt;/head&gt;&lt;body style=3D'font-size: 10pt; font-family: Verdana,Gen=
eva,sans-serif'&gt;
&lt;p&gt;Add more images &lt;img src=3D&quot;cid:1482981567586480bfca67b793175279@linagor=
a.com&quot; alt=3D&quot;&quot; width=3D&quot;163&quot; height=3D&quot;71&quot; /&gt;&lt;img src=3D&quot;cid:1482981567586=
480bfca67b793175279@linagora.com&quot; alt=3D&quot;&quot; width=3D&quot;163&quot; height=3D&quot;71&quot; /&gt;&lt;i=
mg src=3D&quot;cid:1482981567586480bfca67b793175279@linagora.com&quot; alt=3D&quot;&quot; width=
=3D&quot;163&quot; height=3D&quot;71&quot; /&gt;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/body&gt;&lt;/html&gt;

--=_ebeed74b39dc10b43908b65b893b4ea4
Content-Transfer-Encoding: base64
Content-ID: &lt;1482981567586480bfca67b793175279@linagora.com&gt;
Content-Type: image/png;
 name=&quot;g3619(1).png&quot;

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/inlinedWithoutContentID.eml
=====================================================
Return-Path: &lt;user@localhost.com&gt;
Received: from localhost
X-Sieve: CMU Sieve 2.4
X-Virus-Scanned: Debian amavisd-new at localhost.com
X-Spam-Flag: NO
X-Spam-Score: -1.289
X-Spam-Level:
Content-Type: multipart/mixed; boundary=Apple-Mail-E1D6D861-D1AD-47F9-A403-F2AA32CC52CC
Content-Transfer-Encoding: 7bit
From: Sender &lt;from@localhost.com&gt;
Mime-Version: 1.0 (1.0)
Date: Mon, 11 Dec 2017 22:06:42 +0100
Subject: Inlined Photos
Message-Id: &lt;sendId@localhost.com&gt;
X-Mailer: iPhone Mail (14G60)


--Apple-Mail-E1D6D861-D1AD-47F9-A403-F2AA32CC52CC
Content-Type: text/plain;
	charset=us-ascii
Content-Transfer-Encoding: 7bit




--Apple-Mail-E1D6D861-D1AD-47F9-A403-F2AA32CC52CC
Content-Type: image/jpeg;
	name=IMG_6112.JPG;
	x-apple-part-url=B11616AF-86EB-47AF-863A-176A823498DB
Content-Disposition: inline;
	filename=IMG_6112.JPG
Content-Transfer-Encoding: base64

/9j/4QZIRXhpZgAATU0AKgAAAAgACgEPAAIAAAAGAAAAhgEQAAIAAAAJAAAAjAESAAMAAAABAAYA
AAEaAAUAAAABAAAAlgEbAAUAAAABAAAAngEoAAMAAAABAAIAAAExAAIAAAAHAAAApgEyAAIAAAAU
AAAArgITAAMAAAABAAEAAIdpAAQAAAABAAAAwgAAAABBcHBsZQBpUGhvbmUgNgAAAAAASAAAAAEA
AABIAAAAATEwLjMuMwAAMjAxNzoxMjoxMSAxODowNjoyMAAAIIKaAAUAAAABAAACSIKdAAUAAAAB
AAACUIgiAAMAAAABAAIAAIgnAAMAAAABAPoAAJAAAAcAAAAEMDIyMZADAAIAAAAUAAACWJAEAAIA
AAAUAAACbJEBAAcAAAAEAQIDAJIBAAoAAAABAAACgJICAAUAAAABAAACiJIDAAoAAAABAAACkJIE
AAoAAAABAAACmJIHAAMAAAABAAUAAJIJAAMAAAABABgAAJIKAAUAAAABAAACoJIUAAMAAAAEAAAC
qJJ8AAcAAANGAAACsJKRAAIAAAAEOTExAJKSAAIAAAAEOTExAKAAAAcAAAAEMDEwMKABAAMAAAAB
AAEAAKACAAQAAAABAAAMwKADAAQAAAABAAAJkKIXAAMAAAABAAIAAKMBAAcAAAABAQAAAKQCAAMA
AAABAAAAAKQDAAMAAAABAAAAAKQFAAMAAAABAB0AAKQGAAMAAAABAAAAAKQyAAUAAAAEAAAF9qQz
AAIAAAAGAAAGFqQ0AAIAAAAiAAAGHAAAAAAAAAABAAAAIQAAAAsAAAAFMjAxNzoxMjoxMSAxODow
NjoyMAAyMDE3OjEyOjExIDE4OjA2OjIwAAAAAP0AAAAyAAAe1AAADY0AABEhAAAItAAAAAAAAAAB
AAAAUwAAABQGXwTHBwMENUFwcGxlIGlPUwAAAU1NAAsAAQAJAAAAAQAAAAUAAgAHAAACLgAAAJgA
AwAHAAAAaAAAAsYABAAJAAAAAQAAAAEABQAJAAAAAQAAAO8ABgAJAAAAAQAAAQIABwAJAAAAAQAA
AAEACAAKAAAAAwAAAy4ACQAJAAAAAQAAARMADgAJAAAAAQAAAAAAFAAJAAAAAQAAAAQAAAAAYnBs
aXN0MDBPEQIAXABhAG8AHwFaAUUBOAEfAQUB/gCJAZUBnQGxAcEByAFgAJUAVgFcATEBKAE/AVgB
dwFtAXsBqgGsAbABtAG8AXwAUwEdAe0A5gCyAIAAbACQAOwAdwGuAcUBrQGlAbMBFwE5ARwB6gCf

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/htmlAndTextMultipartWithOneAttachment.eml
=====================================================
Return-Path: &lt;user0@open-paas.org&gt;
MIME-Version: 1.0
Delivered-To: user0@open-paas.org
Received: from 172.18.0.1 (EHLO [172.18.0.1]) ([172.18.0.1])
          by open-paas.org (JAMES SMTP Server ) with ESMTP ID -674616268
          for &lt;user0@open-paas.org&gt;;
          Tue, 07 Jun 2016 14:23:37 +0000 (UTC)
To: user0@open-paas.org
From: user0 &lt;user0@open-paas.org&gt;
Subject: BOTH
Message-ID: &lt;1cc7f114-dbc4-42c2-99bd-f1100db6d0c1@open-paas.org&gt;
Date: Tue, 7 Jun 2016 16:23:37 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.1.1
Content-Type: multipart/mixed;
 boundary=&quot;------------7AF1D14DE1DFA16229726B54&quot;

This is a multi-part message in MIME format.
--------------7AF1D14DE1DFA16229726B54
Content-Type: multipart/alternative;
 boundary=&quot;------------172F9470CFA3BF3417835D92&quot;


--------------172F9470CFA3BF3417835D92
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

/blabla/
*bloblo*

--------------172F9470CFA3BF3417835D92
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

&lt;i&gt;blabla&lt;/i&gt;
&lt;b&gt;bloblo&lt;/b&gt;

--------------172F9470CFA3BF3417835D92--

--------------7AF1D14DE1DFA16229726B54
Content-Type: image/jpeg;
 name=&quot;4037_014.jpg&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;4037_014.jpg&quot;

/9j/4X2cRXhpZgAASUkqAAgAAAANAA8BAgAKAAAAqgAAABABAgAJAAAAtAAAABIBAwABAAAA
AQAAABoBBQABAAAAvgAAABsBBQABAAAAxgAAACgBAwABAAAAAgAAADEBAgAKAAAAzgAAADIB
AgAUAAAA2AAAABMCAwABAAAAAgAAAGmHBAABAAAAfAIAAKXEBwDQAAAA7AAAANLGBwBAAAAA
vAEAANPGBwCAAAAA/AEAAEwqAABQYW5hc29uaWMARE1DLUZaNDUAALQAAAABAAAAtAAAAAEA

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/longLine.eml
=====================================================
01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/textInMainMultipartHtmlInInnerMultipart.eml
=====================================================
To: David DOLCIMASCOLO &lt;david.ddo@linagora.com&gt;
From: David DOLCIMASCOLO &lt;david.ddo@linagora.com&gt;
Subject: Inline twice
Message-ID: &lt;03947d9b-4188-4d3a-b072-475278063036@linagora.com&gt;
Date: Tue, 3 Jan 2017 17:59:01 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.5.1
Content-Type: multipart/alternative;
 boundary=&quot;------------41916E9CB699BB85B7A39ABF&quot;

This is a multi-part message in MIME format.
--------------41916E9CB699BB85B7A39ABF
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

/blabla/
*bloblo*

--------------41916E9CB699BB85B7A39ABF
Content-Type: multipart/related;
 boundary=&quot;------------7562AB559B6C67B3BE780AA2&quot;


--------------7562AB559B6C67B3BE780AA2
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

&lt;i&gt;blabla&lt;/i&gt;
&lt;b&gt;bloblo&lt;/b&gt;

--------------7562AB559B6C67B3BE780AA2
Content-Type: image/png;
 name=&quot;=?UTF-8?Q?S=c3=a9lection=5f014.png?=&quot;
Content-Transfer-Encoding: base64
Content-ID: &lt;part1.C774CD18.95513753@linagora.com&gt;
Content-Disposition: inline;
 filename*=utf-8''%53%C3%A9%6C%65%63%74%69%6F%6E%5F%30%31%34%2E%70%6E%67

iVBORw0KGgoAAAANSUhEUgAAAUcAAAJCCAIAAADcDpISAAAAA3NCSVQICAjb4U/gAAAAEHRF
ASEB8/ejg6KNLS31fZ+u8hQAPj/AXiuIAuF4TyOAAAAAElFTkSuQmCC
--------------7562AB559B6C67B3BE780AA2--

--------------41916E9CB699BB85B7A39ABF--

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/twoAttachmentsTextPlain.eml
=====================================================
Return-Path: &lt;from@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Fri, 27 Feb 2015 20:32:14 +0100
X-Sieve: CMU Sieve 2.2
Received: from canondir.par.lng (unknown [92.103.166.6])
	(using TLSv1 with cipher AES256-SHA (256/256 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id BAB0D728
	for &lt;to@linagora.com&gt;; Fri, 27 Feb 2015 20:31:38 +0100 (CET)
X-Priority: 3 (Normal)
From: &quot;From&quot;
 &lt;from@linagora.com&gt;
To: &quot;To&quot;
 &lt;to@linagora.com&gt;
Subject: [8/10]Attached Image light with text
Date: Fri, 27 Mar 2015 21:48:38 +0100
Message-Id: &lt;20150227203838.0011.CanonTxNo.4037@canondir.par.lng&gt;
Mime-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;AHNPACBLDCDIDAGGGDDFAABECGCA&quot;

--AHNPACBLDCDIDAGGGDDFAABECGCA
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

html

--AHNPACBLDCDIDAGGGDDFAABECGCA
Content-Type: image/jpeg;
 name=&quot;4037_014.jpg&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;4037_014.jpg&quot;

/9j/4X2cRXhpZgAASUkqAAgAAAANAA8BAgAKAAAAqgAAABABAgAJAAAAtAAAABIBAwABAAAA
AQAAABoBBQABAAAAvgAAABsBBQABAAAAxgAAACgBAwABAAAAAgAAADEBAgAKAAAAzgAAADIB
AgAUAAAA2AAAABMCAwABAAAAAgAAAGmHBAABAAAAfAIAAKXEBwDQAAAA7AAAANLGBwBAAAAA
vAEAANPGBwCAAAAA/AEAAEwqAABQYW5hc29uaWMARE1DLUZaNDUAALQAAAABAAAAtAAAAAEA
AABWZXIuMS4wICAAMjAxNDowMjoyNSAxMDozMjowOQBQcmludElNADAyNTAAAA4AAQAWABYA
AgAAAAAAAwBkAAAABwAAAAAACAAAAAAACQAAAAAACgAAAAAACwCsAAAADAAAAAAADQAAAAAA
DgDEAAAAAAEFAAAAAQEBAAAAEAGAAAAACREAABAnAAALDwAAECcAAJcFAAAQJwAAsAgAABAn
AAABHAAAECcAAF4CAAAQJwAAiwAAABAnAADLAwAAECcAAOUbAAAQJwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneAttachment-part1.eml
=====================================================
Mail content:
To: &quot;=?utf-8?B?UmFuaSBBc3NhZg==?=&quot; &lt;rani.assaf@jri.obm.lng.org&gt;
Subject: =?utf-8?B?VHIuIDogUGhvdG9zICE=?=
Importance: Normal
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary=&quot;----=_Part_0_1330682067197&quot;

------=_Part_0_1330682067197
Content-Type: multipart/alternative;
	boundary=&quot;----=_Part_2_1330682067197&quot;

------=_Part_2_1330682067197
Content-Type: text/plain;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Content of part 1-1
------=_Part_2_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

&lt;b&gt;Content of part 1-2&lt;/b&gt;
------=_Part_2_1330682067197--

------=_Part_0_1330682067197
Content-Type:

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/inlinedWithoutContentDisposition.eml
=====================================================
FCC: imap://user@localhost.com/Sent
X-Identity-Key: id6
X-Account-Key: account7
Subject: Re: Excuse pour vendredi dernier
To: To User &lt;to@localhost.com&gt;
From: From User &lt;from@localhost.com&gt;
X-Enigmail-Draft-Status: N1110
Message-ID: &lt;55AE39CD.8050802&gt;
Date: Tue, 21 Jul 2015 14:23:41 +0200
X-Mozilla-Draft-Info: internal/draft; vcard=0; receipt=0; DSN=0; uuencode=0;
 attachmentreminder=0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.1.0
MIME-Version: 1.0
In-Reply-To: &lt;dcc6e01637bbd527c411f34de96e6326&gt;
Content-Type: multipart/encrypted;
 protocol=&quot;application/pgp-encrypted&quot;;
 boundary=&quot;09AtNRN8t1bkTL9UtJde8HAiXSJ7dIX0X&quot;

This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156)
--09AtNRN8t1bkTL9UtJde8HAiXSJ7dIX0X
Content-Type: application/pgp-encrypted
Content-Description: PGP/MIME version identification

Version: 1

--09AtNRN8t1bkTL9UtJde8HAiXSJ7dIX0X
Content-Type: application/octet-stream; name=&quot;encrypted.asc&quot;
Content-Description: OpenPGP encrypted message
Content-Disposition: inline; filename=&quot;encrypted.asc&quot;

-----BEGIN PGP MESSAGE-----
Version: GnuPG v2

hQEMA047f/J68U5CAQf/XXJE8zpJa23r5HqXHRlWHIEQIYGebfzpa1KRy5nx6EB8
Ku8K0UBIpIK9bxuYV1529jAWfx3iK7M5ekMrAobjbbE0ANB3MfEJX+SAl2m/pNY6
RM7RoyVkYjzyaKXFshxRIxTIDXxq/YqeIre2yFSSnUYkM9k8mJZkt+f9KAm1CZ28
YF7oE/+8JmsLBEkNnblb+3c8UiqQLGOywnIVlcv017+e175bq739fJaZgcugHKK5
l4U7TIFXGHrR5OQO/ec52PZuVAGn4tFEza7ddVd4kdpW37d9DBgLEmUh1aZls0wY
F6MzvsyUqvw9S1V/B6h8pIvDsfwQL04bGaaXnm5/9dLqAU8P4g8jVlgSdDPEvH7/
WB1lZABZXgEUEE29/NXQNHYka2Ael4tK6dfDxikrHrsTK5NJUCptXLkaBKnd8+l9
nKhkUoaJTpXFxuKRYNVDHhJLKGD8klLEsM8AKwk4wEDjJ2SqtdmEGgpGLq1Tje9d
Ckb9W5NNaZJ0g5lyxtH3YbFNGs9YTP5D8WQ7k8TUxYrvgHiXRROKQwUDAVHIkLnm
8AJcBwmFFbWSfok5JL1p91jSaYCe7vbqFsggbFO6/uRtSP+U80ZIsbtg+8jhY8x/
2LAOD/UQopJV3ulIyWDeRmYjP4tiP2JJRuXoG9mYmnMnpBNulEqk0PCgoh9WTw+w
dPQEHm9DnENCD5r4oBgHXizS14NlL4JbikQjpRhZSB+AZsT7Z2MczDWZ36T8k3cb
o2ec7HjL4PNaNSpcHTXuuFoCtaKBw0C3oZVJIbSkjHKv80SD8B2+kZ3+uZSWqy6Q
2t36KJuFwQFqvKeaw69XWjVrPEpkgR8YA7CVjUibYi5q4C81RF5wNIUMzjNO7BNu
pMYI0w0Gvbmv7O/ekeuaRsClFJTMLxNKaTj1W/Ujeetnww6Ak0xbFSJHRVaR0m4y
8m7vixRsC2RHI4XHddIdn7nkGE8Y28gRsUj3iH8fzJY1hD87DV1+pNjl3uVUWRm6

=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/calendar.eml
=====================================================
Return-Path: &lt;local@localhost.com&gt;
MIME-Version: 1.0
Delivered-To: to@localhost.com
From: User From &lt;fromUser@localhost.com&gt;
Message-ID: &lt;2d0fa16c-4c37-58de-1acc-50b5f6a23a60@localhost.com&gt;
To: User To &lt;toUser@linagora.com&gt;
Date: Wed, 26 Jul 2017 10:34:02 +0200
Subject: Any subject
Content-class: urn:content-classes:calendarmessage
Content-Type: text/calendar; method=REPLY; charset=UTF-8
Content-transfer-encoding: 8BIT

BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
METHOD:REPLY
BEGIN:VEVENT
CREATED:20170726T081145Z
LAST-MODIFIED:20170726T083402Z
DTSTAMP:20170726T083402Z
UID:f1514f44bf39311568d6407249cb76c48103fcd1fb398c3c501cb72b2d293f36e04
 b2aab16e43439a608f28671ab7c10e754cbc85ddee4a07fa8cf8f4f7af05bfb502b8f6

SUMMARY:[A CONFIRMER] Call OVH
PRIORITY:5
ORGANIZER;CN=User;X-OBM-ID=id:mailto:userTo@localhost.com
ATTENDEE;CN=User;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL;X-OBM-ID=810:
 mailto:user1To@linagora.com
DTSTART:20170727T130000Z
DURATION:PT1H
TRANSP:OPAQUE
SEQUENCE:2
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. Rem
 oving entire property:
CLASS:PUBLIC
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:uuid_value
LOCATION:01.78.14.42.61 / 1586
X-OBM-ALERT;X-OBM-ID=486:600
END:VEVENT
END:VCALENDAR


=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/inlinedMultipart.eml
=====================================================
Return-Path: &lt;returnPath&gt;
Received: from localhost (localhost [127.0.0.1])
	by localhost (Postfix) with ESMTP id 27358B3A09;
	Tue, 11 Oct 2016 11:59:12 +0200 (CEST)
Date: Tue, 11 Oct 2016 02:59:07 -0700
From: you@apache.org
To: me@apache.org
Message-ID: messageId
Subject: Confirm your email address
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary=&quot;----=_Part_5211_53602129.1476179947600&quot;
Content-Disposition: inline

------=_Part_5211_53602129.1476179947600
Content-Type: multipart/alternative; 
	boundary=&quot;----=_Part_5210_1271316664.1476179947600&quot;

------=_Part_5210_1271316664.1476179947600
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hello text body

------=_Part_5210_1271316664.1476179947600
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

&lt;html&gt;Hello html body&lt;/html&gt;

------=_Part_5210_1271316664.1476179947600--

------=_Part_5211_53602129.1476179947600--


=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/mailWithInlinedAttachmentButNoCid.eml
=====================================================
Return-Path: &lt;sender@gmail.com&gt;
MIME-Version: 1.0
Delivered-To: test@localhost
Received: from localhost
X-Virus-Scanned: Debian
X-Spam-Flag: NO
X-Spam-Score: -1.78
X-Spam-Level:
X-Spam-Status: No, score=-1.78 tagged_above=-99 required=2
	tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, FREEMAIL_FROM=0.001,
	RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIM_INVALID=0.01,
	T_FREEMAIL_DOC_PDF=0.01] autolearn=no
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=from:mime-version:subject:message-id:date:cc:to;
        bh=lgK1xUjmh9FzAPFKLN2lvhSSlfI6ujj8K57kqImKrA8=;
        b=tw7ave7egTqm3ZcXDe0NeuPSli3nkOBuqjOWLaK0MivSzO8FTQEWzCMEAlyhG4PMcP
         jkxmhKAAjNPshiFnAYzPB4LNQV6GKPNUQ5igA9HDzh4dfbdT/6GiTEvUyWKZ6VpGVASR
         x9Ioyiwxrdf4phsMYSHT7/Y+94/SvmAQj5gZZXfQ8JvmIAlxN9F4mvMnk2JQM4wcGv8Z
         15zNoTxcUPODEybnawotJUewQu2sCKL7S46vFfKiuYEiKPC/XhGPFsjvwBAvcMBfRgbm
         jJSAPk0TlXERVjhd3CSCHC1ukQ1nICb3yTZacuOK0gUgJ7rKY25zQoq2QvYgX97SuThz
         BpHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:from:mime-version:subject:message-id:date:cc:to;
        bh=lgK1xUjmh9FzAPFKLN2lvhSSlfI6ujj8K57kqImKrA8=;
        b=VmTt7K8LRHq/MdOYtIhRnA/Lkbx41VnZh6+SYior8s5kLaKgrJWi+N/ql7SU6lCR2m
         JFTyvIfUqsNFiHy0wPMlI4RauXHNVQWe9C+UQ5hc5BT+Z67O/5dxe+KDhtchRqh7JWC5
         aWDjuvROFqhEEqphuEtGLqEqnHPbmweMZBIouasP2Z0TiHTSASSJq60HUcwf7UcVbmbw
         m5O35XykCkecEX+H9fGAqgzlvFvtfy4PDENWfz8Yhzv730FsAmDutRjww0HYriyLwgpN
         OjrT1o6p6DrWs5JlcgRh7F5qauiR/WTq+srbWbe/tLD7Lx8WRKyeXuzjKyTKJ5TjV6c5
         AHKA==
X-Gm-Message-State: AFeK/H1blcvejtSjL0KgKvb81Bc5uVOYQpq8wm/HouMZgtBr1kw+d9+VOes+FQrObRJdbQ==
X-Received: by 10.28.133.84 with SMTP id h81mr8649035wmd.23.1489999897292;
        Mon, 20 Mar 2017 01:51:37 -0700 (PDT)
From: &lt;from@localhost&gt;
Content-Type: multipart/mixed;
 boundary=&quot;Apple-Mail=_DF3869A6-784C-445C-8AA0-EBEFE28034A4&quot;
Subject: mail with attachment from apple mail
Message-Id: &lt;153836C4-4563-400A-ACBF-E2E2ED0FBB49@gmail.com&gt;
Date: Mon, 20 Mar 2017 09:51:28 +0100
To: &lt;to@localhost&gt;
X-Mailer: Apple Mail (2.3259)


--Apple-Mail=_DF3869A6-784C-445C-8AA0-EBEFE28034A4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/eml/oneAttachment-part2.eml
=====================================================

Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename=&quot;gimp.png&quot;

iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAALxklEQVR4Ae2Xe0xUZ97H5X4RiyAXEARURBSYCzNnLjMwwAx3huGOIBcUFJERAUVRq+KlwHABFdu+b9+0766x1W21ttnUtE3rul6aGNtm3XbdWncjaa3VXrZRK6IgfPd3Tp6wOGmyo0v/cOMknxwy5xzO7/P8LueZaWlpaU80TwWeCvy3CcRwXJlUqp39RApIOE4i5hQPxBz30hMpIJIrjktkseMimfzPUyoglilTf/XVl8u1Ik4xrOJEEMu4wSkVEMmVZ6VSTeivFXy0TDZfIlfc0qil0KpIQM59P6UCUk71lVShPD1t2jT7qQ4+Sq32prq/GhfHjSXFSxGvEfMCQ1MsoLzOadT3pArFwBQ3LSdRqK4mJyfcz0xRwaCLRVKcBDEybmxqBRTKH8uXpEOj0/1MD3wuMTHR8T9adY4LoOD3KuPj7xYVGlGYo0e6gUNKoowkpKBmHpXJZO5TKXCrpjwT5pWFSM1IvROrVH0hksujf+laAHYWi8XT+nsKyIlvVKlSeVSu0twtXpI/Yq4rR2lBKoxpamQmK5Gm55CcIAP1wxAvOWUCEk4xVLvchIaVedi8rgq1NSXjqnjdHcrGayK5yhStVPpbLLvE/Xt6Tnf3Wu529XSM9fZ13Wzbse2kJiGhK1ap/ETCqe5lGLNum+trxnZsbca6tcuwJM+AvKw4mNI1yEpVURYUSE2S8wJ3RSKN35QJUJPdM6/IQ8vaCmzdZMbObU2w7G7BhhbzeEFR4e2SsrIRChqnz5zE999/h9HREXz19SDefOt1dPW0Y8e2Frywtx0vDnRg57NrUVdTgJJ8PYpyEpBvjEdOhvahLIg55YOioiKHRxKgjwPBEaHEQzfz/3DH9mb07+nGsbeO4MjRw+jts8DS3or/GdiNnr4ufP6XC/jhh+9w587PuHdvGLdv38SNG9fwwYfvon9vN3Zvb0Td8lxUlqSirCgZpSRQnJuIgmwdcikL2elqZKUwAbni0aaQvb19M3HT2dnlloODw5Cdnd0d+rKVRFz48xkm0+i+gX5cv34NP/30I86fP4ePPjqL3n4LOjq24O2338CVK1/i22+v4ssvL+HTTz+B2WzGqlUrcfr0HzCwvw9Na8pRXZaBqtI0VBSnYGmBgUooEYUmHYQyyhDKCClJCl7gus0C9DE5OjkNpefkoXvPPugzjIiMEcN9+vQ7JHKFzvs1tzTdO3P2lBD8wYMHce3aNVBTYk1DPXp62/HHUx/g0qXPSOIyBgcHwX/u37+PiMhIiCViHP7dAbRuqAc/CJbxAktIoJAXSEKRiZURCRhJwJCoAPXcRZsF7B0dL8cq1RgeHgb/+fziX6E1pPCjDJ5e3iOUmcHWzRvHz398ThAoKSnB5b/9HYbUdMwJmUPl04GTJ9/DhQvn8cYbh/D++++D/1y/cYOvZbi6uWHvvj48u7kRgsDSdEGgjARKSOChPiCBpAQFpBx3ymYBWuXR9Zu2gH0wPj6O7KISyNRxiBJLMeMZz/GcXOP4a4cOCAJ5eXmY5eMDL29v6PUJ6O7aQX1xGOfOncLx429h5syZMDc2I05vQJQ0Fq6uriTZifWNy60yYCXAMqDVcmMiTtlrswAZPMgtLsXY2Jgg8PXVb5CYngWpSoMFi6MRsTAS7rSKnZZdeP3IIarv89ixow21tTXoaN9KE6kefdQLJ04cx5kzH0Cp5OA9axYCgoIx08sLCQlxsHS3o646F9XlGSQwuQeSJveAICBTKm49yuaRb+Drco0W6zdTM75zHJW1dVAlGvjXOULDF2ABCQQFz4FcEomdbc3o7qGpQ+za3oQtzWXY3LwUHc9twfPP9+Gd40ephN5GW9tmJCXpsHnLBrq+HS1N1VhRkYnlZemooilUzk+hgokpNPEuyExWUdlx99lb2GaBV+eGh48kJKciVq0VSofqX1j9wDkhCA4Ng0gihb+vF5pXF2K9uQgta4qxoWEJNq4l6LihoQRtW5vQRSu9d6AH//vSAI1cCzq7dmNdQxVWVmahhq3+RP3n/6t8cjO1yE5TQ59EDaxQsN8Ctk+hUH50JhqSESONFQKfF0GrToH7+AfAf3YQdIlJcHNzwdrafDTWFaCJRJqJdfVFAvzfTfR9c30xrfYytLbUotlchtXVOULwND6FICuXPLz61uWj1iruUePv4gvbZgGWhv2+fn5DesrCXCob34BAPniBoJBQJOj18KMM1NfkYM2KXGFL0VCbxwsJ0N/Cd2Y6x1+zmrYdq5YZJ1Z+OU2ejGTK6rwg4QX20Phkq59mUPLz/264SBRMAva2Sky8hWka/T4gMPBuVnY2OJUaIXPnYU7YXCQlJ0MsFkMaE05BZdPbNJtW1iRQTytMCH9T0MK5VVVC4ELN8ytPZSNsG6IjQ5C4wAkVWl+UZsYiP1sonYl9kIpWPzpW9gLFMp1wJhyYhM1bCUfqh5dp7A3J5PIHqWnpyDQaIZFKMMvbU3iD0hikwLKEAGt5KFhCWGUKlk2ZdGGrUEQlkqaXC+LBgV4ok7tik8Edr1fOwKbkGajXeaBcH4aclFik6hXC9sE7ICCK4vAhZhAutkj8UlMsopL6jZ2d/acOjo7fBAbPuW/Qax7QHkYoBZIQgqUjQ5guQm3nG3VCqeg0IsSKFmDRwlBERYZBHDUPxvhICvoZdGR54IudEfisg8Nva+aiQTcDpVq/B4qY8Ffo2QuIYCsJVk62C9gRTiyVPkFhYSqxnLuk0qqH83P0FGwmVi3PpbLJp2MeZSSbxGjlSa6yRJjxgsxSNmmWUCZo2gjjMj9LgwpDGMzxbji20h9Xu6JxpV+FI+aF4016z/u1atcPq/P1DTqdOoae7U24E46PI+DMVsCfCHN2do6OWBzdS9vqf3Bq1bAxM4FKJZMalqbQmkq00N6+eU0FGlaV0gurgErJiPLiNHpZJfN7fiqnJNawwrYZJoMYtfFeVErT8fG6WbjaGYHBPg6v1EWNdXa2Yeuz6w75+PgEshicHkfAhXiGCCDmEosJGaELCgnpiJJIByUK5YjBED++tDANtctoGq0uw4amGmxaX0vHFSRUhfqVJVhRlYeK0iwSSSaBeCoxJTQablwk40aTYvwvrta6DL9c7DF6eYsPeixtOPjqAbzw4v6hrp7OC+XV5QsfV8CJ2fsRIUQkISXURCpR6enl1b1g0eLP+d8KsQrlqEqjGtHr48ezMmhMFmWiqsyEylIjivNSKPBEJBu0UKoVD0Qy+djC6Oir7h4eA/R/mvw87FdXK13PbsyPHOnt7aAtyQmBQ4dfHe3p7by187ntOXTdPCKDcLZVwIFwI7yIQGLepCxomUQ50Ui0UTD/5+Pr925waOifFi6OuiaKlQ1JOOUYMU6CozGx8uHIqJjr/kFBJ11cXJ6ne7YSZmIpkUJoWxqXv2fp2n133/49d44de1OQOHr0CAIC/Meio6MhkUhA110jNhL21gLWEvaTGtmbmM0kFk3KRCKRRZQR9cQGoo3oIHppJPfTsY/oJtqJbUQLUUeUshVNIJSExMvLK9rT03P+upbGVd09nZfo9/XPJlM2/P390dnZKRAWFsZL8JT+OwG7SRLuxEzCn5VTOBHFRJREPKEn0ggTUcRWtoJRyr4zscwlEXHsXinLbDgbn37sWW7bdm2L9/Pzu+nu7o6NGzeitbWVshEAlokvCPsJARskXFlPeDORYJaRCCYjZuWlYNnREFqGhlCxczJ27WJ279xJgXsRHmyAOLJnnyTAQxkVjvPnz4evry94eWuBX5RgOEwSmU54ErOYzGxiDhHGpMKJCCvC2bkwFvBsFrQ3m3bTWeBO7Fl2jPUErKFy44/p1gK2ijgSzkzGnfBgQcxkAfkwfBk+DG9iJrvWg93ryoJ2nBy41bMPWQvQ7pk/LrMSeCQRe8JhkpATk3JhQblZ4crOOVsFLGwTrAOfDLv3AAErWq0FHldmktQEDlbYM+yseYTnLSOGCDD6H1/ARilrpuD/LyYuMoFDVgJPBqx3/p84YS3wpInonmQBxlOBpwJPBf4JszXhha5WvGwAAAAASUVORK5CYII=

------=_Part_0_1330682067197--


=====================================================
== File: server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/resources/attachment/nonIndexableAttachment.html
=====================================================
&lt;!DOCTYPE html&gt;
&lt;html class=&quot;mozilla&quot; lang=&quot;en&quot;&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
    





&lt;meta charset=&quot;utf-8&quot;&gt;
&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=Edge&quot;&gt;
&lt;meta name=&quot;application-name&quot; content=&quot;JIRA&quot; data-name=&quot;jira&quot; data-version=&quot;6.4.5&quot;&gt;&lt;meta name=&quot;ajs-serverRenderedViewIssue&quot; content=&quot;true&quot;&gt;
&lt;meta name=&quot;ajs-hasCriteriaAutoUpdate&quot; content=&quot;true&quot;&gt;
&lt;meta name=&quot;ajs-viewissue-use-history-api&quot; content=&quot;false&quot;&gt;
&lt;meta name=&quot;ajs-viewissue-max-cache-size&quot; content=&quot;&quot;&gt;
&lt;meta name=&quot;ajs-autocomplete-enabled&quot; content=&quot;true&quot;&gt;
&lt;meta name=&quot;ajs-view-issue-trace-key&quot; content=&quot;jira.issue.refreshed&quot;&gt;
&lt;meta name=&quot;ajs-view-issue-psycho-key&quot; content=&quot;jira.psycho.issue.refreshed&quot;&gt;
&lt;meta name=&quot;ajs-view-issue-refreshed-cached-key&quot; content=&quot;jira.psycho.issue.refreshed.cached&quot;&gt;
&lt;meta name=&quot;ajs-return-to-search-trace-key&quot; content=&quot;jira.returned.to.search&quot;&gt;
&lt;meta name=&quot;ajs-return-to-search-psycho-key&quot; content=&quot;jira.psycho.returned.to.search&quot;&gt;
&lt;meta name=&quot;ajs-default-avatar-url&quot; content=&quot;https://ci.open-paas.org/jira/secure/useravatar?size=xsmall&amp;amp;avatarId=10123&quot;&gt;
&lt;meta name=&quot;ajs-jira.issues.preferred.layout.key&quot; content=&quot;split-view&quot;&gt;
&lt;meta name=&quot;ajs-max-recent-searchers&quot; content=&quot;10&quot;&gt;
&lt;meta name=&quot;ajs-jira-base-url&quot; content=&quot;https://ci.open-paas.org/jira&quot;&gt;
&lt;meta name=&quot;ajs-dev-mode&quot; content=&quot;false&quot;&gt;
&lt;meta name=&quot;ajs-context-path&quot; content=&quot;/jira&quot;&gt;
&lt;meta name=&quot;ajs-version-number&quot; content=&quot;6.4.5&quot;&gt;
&lt;meta name=&quot;ajs-build-number&quot; content=&quot;64020&quot;&gt;
&lt;meta name=&quot;ajs-is-beta&quot; content=&quot;false&quot;&gt;
&lt;meta name=&quot;ajs-is-rc&quot; content=&quot;false&quot;&gt;
&lt;meta name=&quot;ajs-is-snapshot&quot; content=&quot;false&quot;&gt;
&lt;meta name=&quot;ajs-is-milestone&quot; content=&quot;false&quot;&gt;
&lt;meta name=&quot;ajs-remote-user&quot; content=&quot;scolson&quot;&gt;
&lt;meta name=&quot;ajs-remote-user-fullname&quot; content=&quot;Stephane COLSON&quot;&gt;
&lt;meta name=&quot;ajs-user-locale&quot; content=&quot;en_US&quot;&gt;
&lt;meta name=&quot;ajs-user-locale-group-separator&quot; content=&quot;,&quot;&gt;
&lt;meta name=&quot;ajs-app-title&quot; content=&quot;OpenPaas-Linagora&quot;&gt;
&lt;meta name=&quot;ajs-keyboard-shortcuts-enabled&quot; content=&quot;true&quot;&gt;
&lt;meta name=&quot;ajs-keyboard-accesskey-modifier&quot; content=&quot;Alt+Shift&quot;&gt;
&lt;meta name=&quot;ajs-enabled-dark-features&quot; content=&quot;[&amp;quot;com.atlassian.jira.projects.issuenavigator&amp;quot;,&amp;quot;com.atlassian.jira.projects.ProjectCentricNavigation.Switch&amp;quot;,&amp;quot;jira.plugin.devstatus.phasetwo.enabled&amp;quot;,&amp;quot;com.atlassian.jira.config.PDL&amp;quot;,&amp;quot;jira.frother.reporter.field&amp;quot;,&amp;quot;jira.plugin.devstatus.phasetwo&amp;quot;,&amp;quot;com.atlassian.jira.darkfeature.CommonHeader&amp;quot;,&amp;quot;app-switcher.new&amp;quot;,&amp;quot;frother.assignee.field&amp;quot;,&amp;quot;jira.issue.status.lozenge&amp;quot;]&quot;&gt;
&lt;meta name=&quot;ajs-date-relativize&quot; content=&quot;true&quot;&gt;
&lt;meta name=&quot;ajs-date-time&quot; content=&quot;h:mm a&quot;&gt;
&lt;meta name=&quot;ajs-date-day&quot; content=&quot;EEEE h:mm a&quot;&gt;
&lt;meta name=&quot;ajs-date-dmy&quot; content=&quot;dd/MMM/yy&quot;&gt;
&lt;meta name=&quot;ajs-date-complete&quot; content=&quot;dd/MMM/yy h:mm a&quot;&gt;
&lt;meta name=&quot;ajs-in-admin-mode&quot; content=&quot;false&quot;&gt;
&lt;meta name=&quot;ajs-is-sysadmin&quot; content=&quot;true&quot;&gt;
&lt;meta name=&quot;ajs-is-admin&quot; content=&quot;true&quot;&gt;
&lt;meta name=&quot;ajs-outgoing-mail-enabled&quot; content=&quot;true&quot;&gt;

=====================================================
== File: server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

    &lt;parent&gt;
        &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
        &lt;artifactId&gt;jmap-draft-integration-testing&lt;/artifactId&gt;
        &lt;version&gt;3.9.0-SNAPSHOT&lt;/version&gt;
        &lt;relativePath&gt;../pom.xml&lt;/relativePath&gt;
    &lt;/parent&gt;

    &lt;artifactId&gt;rabbitmq-jmap-draft-integration-testing&lt;/artifactId&gt;
    &lt;packaging&gt;jar&lt;/packaging&gt;

    &lt;name&gt;Apache James :: Server :: JMAP (draft) :: RabbitMQ + Object Store + Cassandra Integration testing&lt;/name&gt;

    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-backends-cassandra&lt;/artifactId&gt;
            &lt;type&gt;test-jar&lt;/type&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-backends-opensearch&lt;/artifactId&gt;
            &lt;type&gt;test-jar&lt;/type&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-backends-rabbitmq&lt;/artifactId&gt;
            &lt;type&gt;test-jar&lt;/type&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-mailbox-api&lt;/artifactId&gt;
            &lt;type&gt;test-jar&lt;/type&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;apache-james-mailbox-scanning-search&lt;/artifactId&gt;
            &lt;type&gt;test-jar&lt;/type&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;blob-s3&lt;/artifactId&gt;

=====================================================
== File: server/protocols/protocols-library/src/test/resources/testServerTLSDefaultAuth.xml
=====================================================
&lt;testserver enabled=&quot;true&quot;&gt;
    &lt;tls socketTLS=&quot;true&quot; startTLS=&quot;false&quot;&gt;
        &lt;keystore&gt;file://conf/keystore&lt;/keystore&gt;
        &lt;keystoreType&gt;JKS&lt;/keystoreType&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;

        &lt;clientAuth/&gt;
    &lt;/tls&gt;
&lt;/testserver&gt;

=====================================================
== File: server/protocols/protocols-library/src/test/resources/testServerDisabled.xml
=====================================================
&lt;testserver enabled=&quot;false&quot;&gt;
&lt;/testserver&gt;

=====================================================
== File: server/protocols/protocols-library/src/test/resources/testServerStartTLS.xml
=====================================================
&lt;testserver enabled=&quot;true&quot;&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;file://conf/keystore&lt;/keystore&gt;
        &lt;keystoreType&gt;JKS&lt;/keystoreType&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
&lt;/testserver&gt;

=====================================================
== File: server/protocols/protocols-library/src/test/resources/testServerTLSNeedAuth.xml
=====================================================
&lt;testserver enabled=&quot;true&quot;&gt;
    &lt;tls socketTLS=&quot;true&quot; startTLS=&quot;false&quot;&gt;
        &lt;keystore&gt;file://conf/keystore&lt;/keystore&gt;
        &lt;keystoreType&gt;JKS&lt;/keystoreType&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;

        &lt;clientAuth&gt;
            &lt;truststore&gt;file://conf/truststore&lt;/truststore&gt;
            &lt;truststoreType&gt;JKS&lt;/truststoreType&gt;
            &lt;truststoreSecret&gt;james72laBalle&lt;/truststoreSecret&gt;
        &lt;/clientAuth&gt;
    &lt;/tls&gt;
&lt;/testserver&gt;

=====================================================
== File: server/protocols/protocols-library/src/test/resources/testServerDefaults.xml
=====================================================
&lt;testserver enabled=&quot;true&quot;&gt;
&lt;/testserver&gt;

=====================================================
== File: server/protocols/protocols-library/src/test/resources/testServerPlain.xml
=====================================================
&lt;testserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;testserver-custom&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;connectionBacklog&gt;150&lt;/connectionBacklog&gt;
    &lt;connectiontimeout&gt;360&lt;/connectiontimeout&gt;
    &lt;connectionLimit&gt;100&lt;/connectionLimit&gt;
    &lt;connectionLimitPerIP&gt;5&lt;/connectionLimitPerIP&gt;
    &lt;helloName autodetect=&quot;false&quot;&gt;custom-mailer&lt;/helloName&gt;
&lt;/testserver&gt;

=====================================================
== File: server/protocols/protocols-library/src/test/resources/testServerTLS.xml
=====================================================
&lt;testserver enabled=&quot;true&quot;&gt;
    &lt;tls socketTLS=&quot;true&quot; startTLS=&quot;false&quot;&gt;
        &lt;keystore&gt;file://conf/keystore&lt;/keystore&gt;
        &lt;keystoreType&gt;JKS&lt;/keystoreType&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
&lt;/testserver&gt;

=====================================================
== File: server/protocols/protocols-managesieve/pom.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
    &lt;parent&gt;
        &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
        &lt;artifactId&gt;james-server&lt;/artifactId&gt;
        &lt;version&gt;3.9.0-SNAPSHOT&lt;/version&gt;
        &lt;relativePath&gt;../../pom.xml&lt;/relativePath&gt;
    &lt;/parent&gt;

    &lt;artifactId&gt;james-server-protocols-managesieve&lt;/artifactId&gt;

    &lt;name&gt;Apache James :: Server :: ManageSieve&lt;/name&gt;

    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;james-server-filesystem-api&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;james-server-protocols-library&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;james-server-util&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;testing-base&lt;/artifactId&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.protocols.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;protocols-managesieve&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;${james.protocols.groupId}&lt;/groupId&gt;
            &lt;artifactId&gt;protocols-netty&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;io.netty&lt;/groupId&gt;
            &lt;artifactId&gt;netty-handler&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;javax.annotation&lt;/groupId&gt;
            &lt;artifactId&gt;javax.annotation-api&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;javax.inject&lt;/groupId&gt;

=====================================================
== File: server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/jwt_publickey
=====================================================
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtlChO/nlVP27MpdkG0Bh
16XrMRf6M4NeyGa7j5+1UKm42IKUf3lM28oe82MqIIRyvskPc11NuzSor8HmvH8H
lhDs5DyJtx2qp35AT0zCqfwlaDnlDc/QDlZv1CoRZGpQk1Inyh6SbZwYpxxwh0fi
+d/4RpE3LBVo8wgOaXPylOlHxsDizfkL8QwXItyakBfMO6jWQRrj7/9WDhGf4Hi+
GQur1tPGZDl9mvCoRHjFrD5M/yypIPlfMGWFVEvV5jClNMLAQ9bYFuOc7H1fEWw6
U1LZUUbJW9/CH45YXz82CYqkrfbnQxqRb2iVbVjs/sHopHd1NTiCfUtwvcYJiBVj
kwIDAQAB
-----END PUBLIC KEY-----

=====================================================
== File: server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/resources/eml/emailWithOnlyAttachment.eml
=====================================================
Return-Path: &lt;abc@apache.org&gt;
Subject: 29989 btellier
From: &lt;any@mail.com&gt;
Content-Disposition: attachment
MIME-Version: 1.0
Date: Sun, 02 Apr 2017 22:09:04 -0000
Content-Type: application/zip; name=&quot;9559333830.zip&quot;
To: &lt;abc@apache.org&gt;
Message-ID: &lt;149117094410.10639.6001033367375624@any.com&gt;
Content-Transfer-Encoding: base64

UEsDBBQAAgAIAEQeg0oN2YT/EAsAAMsWAAAIABwAMjIwODUuanNVVAkAAxBy4VgQcuFYdXgLAAEE
AAAAAAQAAAAApZhbi1zHFYWfY/B/MP3i7kwj1/2CokAwBPIQ+sGPkgJ1tURkdeiMbYzQf8+3q8+M
ZmQllgn2aHrqnNq1L2uvtavnj2/b7evz26/Op5M6q/P+8OUX77784g8/lQtLisXTU/68vfzCv/Lg
D9vqs/3b8fNXf92273ey4XTCykk9w9LpfD7tX+zGzU83b8pPg39uBr/Kmxe7w9PLuP3xwpFKTJ32
AAEEAAAAAAQAAAAAUEsFBgAAAAABAAEATgAAAFILAAAAAA==

=====================================================
== File: server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/resources/jwt_publickey
=====================================================
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtlChO/nlVP27MpdkG0Bh
16XrMRf6M4NeyGa7j5+1UKm42IKUf3lM28oe82MqIIRyvskPc11NuzSor8HmvH8H
lhDs5DyJtx2qp35AT0zCqfwlaDnlDc/QDlZv1CoRZGpQk1Inyh6SbZwYpxxwh0fi
+d/4RpE3LBVo8wgOaXPylOlHxsDizfkL8QwXItyakBfMO6jWQRrj7/9WDhGf4Hi+
GQur1tPGZDl9mvCoRHjFrD5M/yypIPlfMGWFVEvV5jClNMLAQ9bYFuOc7H1fEWw6
U1LZUUbJW9/CH45YXz82CYqkrfbnQxqRb2iVbVjs/sHopHd1NTiCfUtwvcYJiBVj
kwIDAQAB
-----END PUBLIC KEY-----

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/rtf.mp.alt.eml
=====================================================
From - Wed Jan 24 16:24:38 2024
X-Mozilla-Status: 0001
X-Mozilla-Status2: 10000000
Date: Mon, 22 Jan 2024 21:15:28 +0100
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=170610834810.eCBB07cc.47912
Content-Transfer-Encoding: 7bit
Subject: TEST MAIL SORTANT 01
From: &quot;Alexandre BOUZENAD&quot; &lt;bouzenad.alexandre@avocat-conseil.fr&gt;
To: &quot;Nicolas DAZON&quot; &lt;N.DAZON@cnb.avocat.fr&gt;
Message-Id: &lt;620821581.313185.1705954528177@cloud.avocat.fr&gt;
Received: from bizpsie4.9services.com (84.96.93.162) by
 AM4PEPF00027A6B.mail.protection.outlook.com (10.167.16.89) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7202.16 via Frontend Transport; Mon, 22 Jan 2024 20:15:31 +0000
Received: from AM4PEPF00027A6B.eurprd04.prod.outlook.com
 (2603:10a6:20b:458:cafe::f0) by AS8P189CA0032.outlook.office365.com
 (2603:10a6:20b:458::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.32 via Frontend
 Transport; Mon, 22 Jan 2024 20:15:31 +0000
Received: from cnb1012vu-01.jmsp.prod (cnb1012vu-02.cnb.priv [10.170.208.61])
 by cnb-vip-relais-smtp-pub.sfr-sh.net (Postfix) with ESMTPA id 3E6DD70544 for
 &lt;n.dazon@cnb.avocat.fr&gt;; Mon, 22 Jan 2024 21:15:28 +0100 (CET)
Received: from mta.avocat.fr ([87.255.138.194]) by cmsmtp with ESMTP id
 S0hcrExBB1WvcS0hcr2zQX; Mon, 22 Jan 2024 21:15:30 +0100
Received: from AS8P189CA0032.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:458::10)
 by PR0P264MB3424.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:14b::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.33; Mon, 22 Jan
 2024 20:15:31 +0000
Received: from PR0P264MB3424.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:14b::11)
 by PR1P264MB4134.FRAP264.PROD.OUTLOOK.COM with HTTPS; Mon, 22 Jan 2024
 20:15:44 +0000
X-Priority: 3
Thread-Index: AQGgb/nNNTXYh27zvUF14MtQ3tEsXQ==
Authentication-Results: spf=pass (sender IP is 84.96.93.162)
 smtp.mailfrom=avocat-conseil.fr; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none
 header.from=avocat-conseil.fr;compauth=pass reason=100
X-MS-Exchange-Organization-SCL: 1
X-MS-Exchange-Organization-MessageDirectionality: Incoming
X-MS-Exchange-Organization-AuthSource:
 AM4PEPF00027A6B.eurprd04.prod.outlook.com
X-MS-Exchange-Organization-AuthAs: Anonymous
X-MS-Exchange-Organization-Network-Message-Id:
 c3ddd41f-249a-4a17-0999-08dc1b86e22a
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic:
 AM4PEPF00027A6B:EE_|PR0P264MB3424:EE_|PR1P264MB4134:EE_
X-MS-Exchange-Organization-ExpirationStartTime: 22 Jan 2024 20:15:31.3741

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/multipart_report.eml
=====================================================
Return-Path: &lt;&gt;
org.apache.james.rspamd.flag: NO
org.apache.james.rspamd.status: No, actions=greylist score=4.5 requiredScore=15.0
Received: from 100.96.74.171 (EHLO outgoing.avocat.fr) ([100.96.74.171])
          (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384)
          by smtps.avocat.fr (JAMES SMTP Server ) with ESMTP ID 1c2a7467
          for &lt;comptetest15.linagora@avocat.fr&gt;;
          Wed, 14 Feb 2024 11:10:03 +0000 (UTC)
Received: by outgoing.avocat.fr (Postfix)
	id E7271402C0; Wed, 14 Feb 2024 12:10:02 +0100 (CET)
Date: Wed, 14 Feb 2024 12:10:02 +0100 (CET)
From: Mail Delivery System &lt;MAILER-DAEMON@outgoing.avocat.fr&gt;
Subject: Undelivered Mail Returned to Sender
To: comptetest15.linagora@avocat.fr
Auto-Submitted: auto-replied
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status;
	boundary=&quot;593CE40281.1707909002/outgoing.avocat.fr&quot;
Content-Transfer-Encoding: 8bit
Message-Id: &lt;20240214111002.E7271402C0@outgoing.avocat.fr&gt;

This is a MIME-encapsulated message.

--593CE40281.1707909002/outgoing.avocat.fr
Content-Description: Notification
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

This is the mail system at host outgoing.avocat.fr.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                   The mail system

&lt;invalid@linagora.com&gt;: host 67504e1f.21.ik2.com[66.228.130.220] said: 500
    5.1.1 invalid@linagora.com Address Error (in reply to RCPT TO command)

--593CE40281.1707909002/outgoing.avocat.fr
Content-Description: Delivery report
Content-Type: message/delivery-status

Reporting-MTA: dns; outgoing.avocat.fr
X-Postfix-Queue-ID: 593CE40281
X-Postfix-Sender: rfc822; comptetest15.linagora@avocat.fr

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/nested.eml
=====================================================
Return-Path: &lt;me@linagora.com&gt;
Delivered-To: me@linagora.com
Content-Type: multipart/mixed; boundary=&quot;------------8Z6SfsfcYTjrhgeuagphvHB4&quot;
Message-ID: &lt;bb76dd1c-044f-316f-c4aa-12d143256e0f@linagora.com&gt;
Date: Wed, 3 May 2023 07:37:27 +0700
MIME-Version: 1.0
References: &lt;ed24d4ad-53c0-48c7-2fc9-39f762e4d98d@linagora.com&gt;
Subject: Fwd: test subject
To: Me ME &lt;me@linagora.com&gt;
From: Me ME &lt;me@linagora.com&gt;
In-Reply-To: &lt;ed24d4ad-53c0-48c7-2fc9-39f762e4d98d@linagora.com&gt;
X-Forwarded-Message-Id: &lt;ed24d4ad-53c0-48c7-2fc9-39f762e4d98d@linagora.com&gt;

This is a multi-part message in MIME format.
--------------8Z6SfsfcYTjrhgeuagphvHB4
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

CF the attachment

--------------8Z6SfsfcYTjrhgeuagphvHB4
Content-Type: message/rfc822; name=&quot;test subject.eml&quot;
Content-Disposition: attachment; filename=&quot;test subject.eml&quot;
Content-Transfer-Encoding: 7bit

Return-Path: &lt;me@linagora.com&gt;
Delivered-To: me@linagora.com
Content-Type: multipart/mixed; boundary=&quot;------------F6Ykx4Sf21a3Ovh9U5C4q1Qb&quot;
Message-ID: &lt;ed24d4ad-53c0-48c7-2fc9-39f762e4d98d@linagora.com&gt;
Date: Wed, 3 May 2023 07:36:49 +0700
MIME-Version: 1.0
To: Me ME &lt;me@linagora.com&gt;
From: Me ME &lt;me@linagora.com&gt;
Subject: test subject

This is a multi-part message in MIME format.
--------------F6Ykx4Sf21a3Ovh9U5C4q1Qb
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

test body

--------------F6Ykx4Sf21a3Ovh9U5C4q1Qb
Content-Type: text/plain; charset=UTF-8; name=&quot;whatever.txt&quot;
Content-Disposition: attachment; filename=&quot;whatever.txt&quot;
Content-Transfer-Encoding: base64

dGVzdCBhdHRhY2htZW50Cg==

--------------F6Ykx4Sf21a3Ovh9U5C4q1Qb--

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/inlined-single-attachment.eml
=====================================================
Date: Wed, 26 Jan 2022 12:21:37 +0100
From: Bob &lt;bob@domain.tld&gt;
To: Alice &lt;alice@domain.tld&gt;
Subject: My subject
Message-ID: &lt;20220126112137.wookj26xellphlam@W0248292&gt;
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=&quot;7f4cfz6rtfqdbqxn&quot;
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

--7f4cfz6rtfqdbqxn
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Main test message...

--7f4cfz6rtfqdbqxn
Content-Type: application/json; charset=us-ascii
Content-Disposition: attachment; filename=&quot;yyy.txt&quot;
Content-Transfer-Encoding: quoted-printable

[
    {
        &quot;Id&quot;: &quot;2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;
    }
]

--7f4cfz6rtfqdbqxn



=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mdn_complex.eml
=====================================================
Return-Path: &lt;tungexplorer@linagora.com&gt;
X-JAMES-MDN-JMAP-MESSAGE-ID: 49c73510-9108-11eb-a5a7-11eb7059e7ef
Delivered-To: magiclan@linagora.com
MIME-Version: 1.0
Content-Type: multipart/report; report-type=disposition-notification;
 boundary=&quot;-=Part.e.fbba3f3ef449cf21.1788130035a.be0dce94fc2486bf=-&quot;
To: magiclan@linagora.com
X-LINAGORA-Copy-Delivery-Done: 1
From: tungexplorer@linagora.com
Subject: Read: test
Date: Tue, 30 Mar 2021 03:31:50 +0000
Message-ID: &lt;Mime4j.f.9089aa43e656a14b.1788130035c@linagora.com&gt;

---=Part.e.fbba3f3ef449cf21.1788130035a.be0dce94fc2486bf=-
Content-Type: text/plain; charset=UTF-8

To: magiclan@linagora.com
Subject: test
Message was displayed on Tue Mar 30 2021 10:31:50 GMT+0700 (Indochina Time)
---=Part.e.fbba3f3ef449cf21.1788130035a.be0dce94fc2486bf=-
Content-Type: message/disposition-notification; charset=UTF-8

Reporting-UA: OpenPaaS Unified Inbox; UA_Product
Original-Recipient: rfc822; tungexplorer@linagora.com
Final-Recipient: rfc822; tungexplorer@linagora.com
Original-Message-ID: &lt;633c6811-f897-ec7c-642a-2360366e1b93@linagora.com&gt;
Disposition: manual-action/MDN-sent-manually;displayed
Error: Message1
Error: Message2
X-OPENPAAS-IP: 177.177.177.77
X-OPENPAAS-PORT: 8000

---=Part.e.fbba3f3ef449cf21.1788130035a.be0dce94fc2486bf=-
Content-Type: message/rfc822

Subject: test
To: magiclan@linagora.com
Content-Type: text/plain

This is content of original message, that already on third bodypart
---=Part.e.fbba3f3ef449cf21.1788130035a.be0dce94fc2486bf=-

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/related_in_alternative_multipart.eml
=====================================================
Return-Path: &lt;from@linagora.com&gt;
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;----sinikael-?=_1-16049770230370.5904051543231188&quot;

This is a multi-part message in MIME format.
------sinikael-?=_1-16049770230370.5904051543231188
Content-Type: multipart/alternative;
 boundary=&quot;----sinikael-?=_2-16049770230370.5904051543231188&quot;

------sinikael-?=_2-16049770230370.5904051543231188
Content-Type: multipart/related; type=&quot;text/html&quot;;
 boundary=&quot;----sinikael-?=_3-16049770230370.5904051543231188&quot;

------sinikael-?=_3-16049770230370.5904051543231188
Content-Type: text/html
Content-Transfer-Encoding: base64

PHRhYmxlPjwvdGFibGU+
------sinikael-?=_3-16049770230370.5904051543231188--

------sinikael-?=_2-16049770230370.5904051543231188
Content-Type: text/calendar; charset=UTF-8; method=CANCEL
Content-Transfer-Encoding: base64

QkVHSU46VkNBTEVOREFSDQpWRVJTSU9OOjIuMA0KUFJPRElEOi0vL1NhYnJlLy9TYWJyZSBWT2Jq
ZWN0IDQuMS4zLy9FTg0KQ0FMU0NBTEU6R1JFR09SSUFODQpNRVRIT0Q6Q0FOQ0VMDQpCRUdJTjpW
VElNRVpPTkUNClRaSUQ6QXNpYS9KYWthcnRhDQpCRUdJTjpTVEFOREFSRA0KVFpPRkZTRVRGUk9N
OiswNzAwDQpUWk9GRlNFVFRPOiswNzAwDQpUWk5BTUU6V0lCDQpEVFNUQVJUOjE5NzAwMTAxVDAw
MDAwMA0KRU5EOlNUQU5EQVJEDQpFTkQ6VlRJTUVaT05FDQpCRUdJTjpWRVZFTlQNClVJRDpkYTdj
MzljNS0xNzg3LTQ0MDktYjAwNS05MjBmZTBiMmMxYTINCkRUU1RBTVA6MjAyMDExMTBUMDI1NzAx
Wg0KU0VRVUVOQ0U6MQ0KU1VNTUFSWTo8QVQ+IFZlcmlmeSBVc2VyIFNlbmQgRW1haWwgVG8gQXR0
ZW5kZWVzIFR1ZSBOb3ZlbWJlciAxMCAwOTo1MjoxMiBVDQogVEMgMjAyMA0KRFRTVEFSVDoyMDIw
MTIwNlQwMzAwMDBaDQpEVEVORDoyMDIwMTIwNlQwNDAwMDBaDQpPUkdBTklaRVI7Q049VXNlciBB
Om1haWx0bzp1c2VyYUBxYS5vcGVuLXBhYXMub3JnDQpBVFRFTkRFRTtDTj06bWFpbHRvOnVzZXJk
QHFhLm9wZW4tcGFhcy5vcmcNCkVORDpWRVZFTlQNCkVORDpWQ0FMRU5EQVINCg==
------sinikael-?=_2-16049770230370.5904051543231188--

------sinikael-?=_1-16049770230370.5904051543231188
Content-Type: application/ics; name=meeting.ics
Content-Disposition: attachment; filename=meeting.ics
Content-Transfer-Encoding: base64

QkVHSU46VkNBTEVOREFSDQpWRVJTSU9OOjIuMA0KUFJPRElEOi0vL1NhYnJlLy9TYWJyZSBWT2Jq
ZWN0IDQuMS4zLy9FTg0KQ0FMU0NBTEU6R1JFR09SSUFODQpNRVRIT0Q6Q0FOQ0VMDQpCRUdJTjpW
VElNRVpPTkUNClRaSUQ6QXNpYS9KYWthcnRhDQpCRUdJTjpTVEFOREFSRA0KVFpPRkZTRVRGUk9N
OiswNzAwDQpUWk9GRlNFVFRPOiswNzAwDQpUWk5BTUU6V0lCDQpEVFNUQVJUOjE5NzAwMTAxVDAw
MDAwMA0KRU5EOlNUQU5EQVJEDQpFTkQ6VlRJTUVaT05FDQpCRUdJTjpWRVZFTlQNClVJRDpkYTdj
MzljNS0xNzg3LTQ0MDktYjAwNS05MjBmZTBiMmMxYTINCkRUU1RBTVA6MjAyMDExMTBUMDI1NzAx
Wg0KU0VRVUVOQ0U6MQ0KU1VNTUFSWTo8QVQ+IFZlcmlmeSBVc2VyIFNlbmQgRW1haWwgVG8gQXR0

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/alternative.cal.eml
=====================================================
Return-Path: &lt;j@linagora.com&gt;
MIME-version: 1.0
X-LINAGORA-Copy-Delivery-Done: 1
From: J &lt;j@linagora.com&gt;
Message-ID: &lt;00ecbe90-cdbc-7222-75c4-0e297c5a8eef@linagora.com&gt;
To: B &lt;b@linagora.com&gt;
Date: Thu, 14 Oct 2021 16:04:30 +0200
Subject: A little explanation
Content-type: multipart/mixed; boundary=&quot;Boundary_(ID_qyG4ZdjoAsiZ+Jo19dCbWQ)&quot;


--Boundary_(ID_qyG4ZdjoAsiZ+Jo19dCbWQ)
Content-type: multipart/alternative;
 boundary=&quot;Boundary_(ID_ryU4ZdJoASiZ+Jo21dCbwA)&quot;


--Boundary_(ID_ryU4ZdJoASiZ+Jo21dCbwA)
Content-type: text/plain; charset=UTF-8
Content-transfer-encoding: 8BIT

J &lt;j@linagora.com&gt; a accept&#xe9; votre invitation.
--Boundary_(ID_ryU4ZdJoASiZ+Jo21dCbwA)
Content-type: text/calendar; method=REPLY; charset=UTF-8
Content-transfer-encoding: 8BIT

BEGIN:VCALENDAR
VERSION:2.0
METHOD:REPLY
BEGIN:VTIMEZONE
END:VTIMEZONE
BEGIN:VEVENT
UID:08985ae5-8e62-4f3e-971d-27c8b40cf838
END:VEVENT
END:VCALENDAR


--Boundary_(ID_ryU4ZdJoASiZ+Jo21dCbwA)--

--Boundary_(ID_qyG4ZdjoAsiZ+Jo19dCbWQ)
Content-type: application/ics; name=invite.ics
Content-transfer-encoding: 8BIT
Content-disposition: attachment; filename=invite.ics

BEGIN:VCALENDAR
VERSION:2.0
METHOD:REPLY
BEGIN:VTIMEZONE
END:VTIMEZONE
BEGIN:VEVENT
UID:08985ae5-8e62-4f3e-971d-27c8b40cf838

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/html.eml
=====================================================
Return-Path: &lt;from@linagora.com&gt;
To: to@linagora.com
From: Lina &lt;from@linagora.com&gt;
Subject: MultiAttachment
Message-ID: &lt;13d4375e-a4a9-f613-06a1-7e8cb1e0ea93@linagora.com&gt;
Date: Mon, 27 Feb 2017 11:24:48 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.2.0
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------64D8D789FC30153D6ED18258&quot;

This is a multi-part message in MIME format.
--------------64D8D789FC30153D6ED18258
Content-Type: text/html; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

&lt;p&gt;Send&lt;br/&gt;concerted from html&lt;/p&gt;


--------------64D8D789FC30153D6ED18258
Content-Type: text/plain; charset=UTF-8;
 name=&quot;text1&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;text1&quot;

LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBeDdQRzAr
RS8vRU1wbTdJZ0k1UTlUTURTRnlhLzFoRSt2dlRKcmswaUdGbGxQZUhMCkE1L1ZsVE0wWVdn
RzZYNTBxaU1mRTNWTGF6ZjJjMTlpWHJUMG1xLzIxUFoxd0Zub2d2NHp4VU5haWgrQm5nNjIK
RjBTeXJ1RS9PL05qcXhoL0NjcTZLL2UwNVRWNFQ2NDNVU3hBZUcwS3BwbVlXOXg4SEEvR3ZW
ODMyYXBadXhrVgppNk5Wa0RCcmZ6YVVDd3U0ekgrSHdPdi9wSTg3RTdLY2NIWUMrK0JpYWoz
Cg==
--------------64D8D789FC30153D6ED18258
Content-Type: application/vnd.ms-publisher;
 name=&quot;text2&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;text2&quot;

c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFESHM4YlQ0VC84UXltYnNp
QWpsRDFNd05JWEpyL1dFVDYrOU1tdVRTSVlXV1U5NGNzRG45V1ZNelJoYUFicGZuU3FJeDhU
ZFV0ck4vWnpYMkpldFBTYXIvYlU5blhBV2VpQy9qUEZRMXFLSDRHZURyWVhSTEt1NFQ4Nzgy
T3JHSDhKeXJvcjk3VGxOWGhQcmpkUkxFQjRiUXFtbVpoYjNId2NEOGE5WHpmWnFsbTdHUldM
bzFXUU1HdC9OcFFMQzdqTWY0ZkE2LytranpzVHNweHdkZ0w3NEdKcVBmT1hPaXdnTEhYOENa
Ni81UnlUcWhUNnBEM01rdFNOV2F6L3pJSFBORXFmNUJZOUNCTTFURlI1dys2TURIbzBnbWlJ
c1hGRUpUUG5maEJ2SERoU2pCMVJJMEt4VUNseVlySjRmQmxVVmVLZm5hd29WY3U3WXZDcUY0
RjUgcXV5bmhubkBsaW5hZ29yYQo=
--------------64D8D789FC30153D6ED18258
Content-Type: text/plain; charset=UTF-8;

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/inlined-mixed.eml
=====================================================
Date: Wed, 26 Jan 2022 12:21:37 +0100
From: Bob &lt;bob@domain.tld&gt;
To: Alice &lt;alice@domain.tld&gt;
Subject: My subject
Message-ID: &lt;20220126112137.wookj26xellphlam@W0248292&gt;
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=&quot;7f4cfz6rtfqdbqxn&quot;
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

--7f4cfz6rtfqdbqxn
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Main test message...

--7f4cfz6rtfqdbqxn
Content-Type: application/json; charset=us-ascii
Content-Disposition: attachment; filename=&quot;yyy.txt&quot;
Content-Transfer-Encoding: quoted-printable

[
    {
        &quot;Id&quot;: &quot;2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;
    }
]

--7f4cfz6rtfqdbqxn
Content-Type: application/json; charset=us-ascii
Content-Disposition: attachment; filename=&quot;xxx.txt&quot;
Content-Transfer-Encoding: quoted-printable

[
    {
        &quot;Id&quot;: &quot;3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;
    }
]

--7f4cfz6rtfqdbqxn--



=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/multipart_simple.eml
=====================================================
Return-Path: &lt;from@linagora.com&gt;
To: to@linagora.com
From: Lina &lt;from@linagora.com&gt;
Subject: MultiAttachment
Message-ID: &lt;13d4375e-a4a9-f613-06a1-7e8cb1e0ea93@linagora.com&gt;
Date: Mon, 27 Feb 2017 11:24:48 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.2.0
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------64D8D789FC30153D6ED18258&quot;

This is a multi-part message in MIME format.
--------------64D8D789FC30153D6ED18258
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Send


--------------64D8D789FC30153D6ED18258
Content-Type: text/plain; charset=UTF-8;
 name=&quot;text1&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;text1&quot;

LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBeDdQRzAr
RS8vRU1wbTdJZ0k1UTlUTURTRnlhLzFoRSt2dlRKcmswaUdGbGxQZUhMCkE1L1ZsVE0wWVdn
RzZYNTBxaU1mRTNWTGF6ZjJjMTlpWHJUMG1xLzIxUFoxd0Zub2d2NHp4VU5haWgrQm5nNjIK
RjBTeXJ1RS9PL05qcXhoL0NjcTZLL2UwNVRWNFQ2NDNVU3hBZUcwS3BwbVlXOXg4SEEvR3ZW
ODMyYXBadXhrVgppNk5Wa0RCcmZ6YVVDd3U0ekgrSHdPdi9wSTg3RTdLY2NIWUMrK0JpYWoz
Cg==
--------------64D8D789FC30153D6ED18258
Content-Type: application/vnd.ms-publisher;
 name=&quot;text2&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;text2&quot;

c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFESHM4YlQ0VC84UXltYnNp
QWpsRDFNd05JWEpyL1dFVDYrOU1tdVRTSVlXV1U5NGNzRG45V1ZNelJoYUFicGZuU3FJeDhU
ZFV0ck4vWnpYMkpldFBTYXIvYlU5blhBV2VpQy9qUEZRMXFLSDRHZURyWVhSTEt1NFQ4Nzgy
T3JHSDhKeXJvcjk3VGxOWGhQcmpkUkxFQjRiUXFtbVpoYjNId2NEOGE5WHpmWnFsbTdHUldM
bzFXUU1HdC9OcFFMQzdqTWY0ZkE2LytranpzVHNweHdkZ0w3NEdKcVBmT1hPaXdnTEhYOENa
Ni81UnlUcWhUNnBEM01rdFNOV2F6L3pJSFBORXFmNUJZOUNCTTFURlI1dys2TURIbzBnbWlJ
c1hGRUpUUG5maEJ2SERoU2pCMVJJMEt4VUNseVlySjRmQmxVVmVLZm5hd29WY3U3WXZDcUY0
RjUgcXV5bmhubkBsaW5hZ29yYQo=
--------------64D8D789FC30153D6ED18258
Content-Type: text/plain; charset=UTF-8;

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mdn_simple.eml
=====================================================
Return-Path: &lt;tungexplorer@linagora.com&gt;
X-JAMES-MDN-JMAP-MESSAGE-ID: 49c73510-9108-11eb-a5a7-11eb7059e7ef
Delivered-To: magiclan@linagora.com
MIME-Version: 1.0
Content-Type: multipart/report; report-type=disposition-notification;
 boundary=&quot;-=Part.e.fbba3f3ef449cf21.1788130035a.be0dce94fc2486bf=-&quot;
To: magiclan@linagora.com
X-LINAGORA-Copy-Delivery-Done: 1
From: tungexplorer@linagora.com
Subject: Read: test
Date: Tue, 30 Mar 2021 03:31:50 +0000
Message-ID: &lt;Mime4j.f.9089aa43e656a14b.1788130035c@linagora.com&gt;

---=Part.e.fbba3f3ef449cf21.1788130035a.be0dce94fc2486bf=-
Content-Type: text/plain; charset=UTF-8

This is simple body of human-readable part
---=Part.e.fbba3f3ef449cf21.1788130035a.be0dce94fc2486bf=-
Content-Type: message/disposition-notification; charset=UTF-8

Final-Recipient: rfc822; tungexplorer@linagora.com
Disposition: manual-action/MDN-sent-manually;displayed

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/multipart_complex.eml
=====================================================
Date: Tue, 03 Jan 2017 16:05:01 +0100
From: sender &lt;sender@james.org&gt;
MIME-Version: 1.0
To: David DOLCIMASCOLO &lt;david.ddo@linagora.com&gt;
Subject: Re: [Internet] Rendez-vous
References: &lt;9b6a4271-69fb-217a-5c14-c68c68375d96@linagora.com&gt;
In-Reply-To: &lt;d5c6f1d6-96e7-8172-9fe6-41fa6c9bd6ec@linagora.com&gt;
X-Gie-Attachments: none
Cc:
Content-type: multipart/mixed; boundary=&quot;----------=_1483455916-7086-3&quot;

This is a multi-part message in MIME format...

------------=_1483455916-7086-3
Content-Type: multipart/alternative; boundary=&quot;------------060506070600060108040700&quot;

This is a multi-part message in MIME format.
--------------060506070600060108040700
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

/blabla/
*bloblo*

--------------060506070600060108040700
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

&lt;i&gt;blabla&lt;/i&gt;
&lt;b&gt;bloblo&lt;/b&gt;

--------------060506070600060108040700--

------------=_1483455916-7086-3
Content-ID: &lt;14672787885774e5c4d4cee471352039@linagora.com&gt;
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;; name=&quot;avertissement.txt&quot;
Content-Disposition: inline; filename=&quot;avertissement.txt&quot;
Content-Transfer-Encoding: binary

inline attachment

------------=_1483455916-7086-3--

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/nested_mixed_alternative.txt
=====================================================
Return-Path: &lt;btellier@linagora.com&gt;
org.apache.james.rspamd.flag: NO
org.apache.james.rspamd.status: No, actions=no action score=-4.0 requiredScore=15.0
Delivered-To: btellier@linagora.com
Received: from 172.17.0.1 (EHLO incoming.linagora.com) ([172.17.0.1])
          by incoming.linagora.com (JAMES SMTP Server ) with ESMTP ID 0ae4733b
          for &lt;btellier@linagora.com&gt;;
          Wed, 21 Feb 2024 21:58:57 +0000 (UTC)
Received: from smtp.linagora.com (smtp.linagora.com [54.36.8.78])
	by incoming.linagora.com (Postfix) with ESMTPS id 18D6714004C
	for &lt;btellier@linagora.com&gt;; Wed, 21 Feb 2024 21:58:57 +0000 (UTC)
Received: from [192.168.1.23] (lfbn-lyo-1-2021-156.w90-66.abo.wanadoo.fr [90.66.189.156])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.linagora.com (Postfix) with ESMTPSA id CADE13EC33
	for &lt;btellier@linagora.com&gt;; Wed, 21 Feb 2024 22:58:55 +0100 (CET)
Content-Type: multipart/mixed; boundary=&quot;------------6a0Tq7Y8z9M0dIG10PnZ7l7E&quot;
Message-ID: &lt;b3493b24-116a-4d6b-a61c-1a3b09e44619@linagora.com&gt;
Date: Wed, 21 Feb 2024 22:58:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
References: &lt;Mime4j.8f3.69abfdd624c15c44.18dcdad3859@linagora.com&gt;
Subject: Fwd: Will be nested
Content-Language: en-US
To: btellier@linagora.com
X-LINAGORA-Copy-Delivery-Done: 1
From: &quot;btellier@linagora.com&quot; &lt;btellier@linagora.com&gt;
In-Reply-To: &lt;Mime4j.8f3.69abfdd624c15c44.18dcdad3859@linagora.com&gt;
X-Forwarded-Message-Id: &lt;Mime4j.8f3.69abfdd624c15c44.18dcdad3859@linagora.com&gt;

This is a multi-part message in MIME format.
--------------6a0Tq7Y8z9M0dIG10PnZ7l7E
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


--------------6a0Tq7Y8z9M0dIG10PnZ7l7E
Content-Type: message/rfc822; name=&quot;Will be nested.eml&quot;
Content-Disposition: attachment; filename=&quot;Will be nested.eml&quot;
Content-Transfer-Encoding: 7bit

Return-Path: &lt;btellier@linagora.com&gt;
org.apache.james.rspamd.flag: NO
org.apache.james.rspamd.status: No, actions=no action score=0.0 requiredScore=15.0
Delivered-To: btellier@linagora.com
Received: from 172.17.0.1 (EHLO incoming.linagora.com) ([172.17.0.1])
          by incoming.linagora.com (JAMES SMTP Server ) with ESMTP ID a67da490
          for &lt;btellier@linagora.com&gt;;
          Wed, 21 Feb 2024 21:58:20 +0000 (UTC)
Received: from smtp.linagora.com (smtp.linagora.com [54.36.8.78])

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mdn_relate_original_message.eml
=====================================================
Return-Path: &lt;return.path@james.apache.org&gt;
Mailing-List: contact contact1@james.apache.org; run by ABC
Message-ID: &lt;messageId1@Atlassian.JIRA&gt;
In-Reply-To: &lt;JIRA.12781874.1426269127000@Atlassian.JIRA&gt;
References: &lt;JIRA.12781874.1426269127000@Atlassian.JIRA&gt; &lt;JIRA.12781874.1426269127444@arcas&gt;
Subject: This is subject of original message that mdn has been related
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394
----------------------------------

This is body content

---------------------------------------------------------------------
To unsubscribe, e-mail: server1@james.apache.org


=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/iso-8859-1.eml
=====================================================
Subject: =?UTF-8?Q?Re=3a_=5bInternet=5d_Pr=c3=a9sent_!?=
To: Xavier &lt;xavier@free.fr&gt;
From: &quot;Recipient&quot;
 &lt;recipient@free.fr&gt;
Date: Tue, 30 Jan 2024 09:19:23 +0100
Message-ID:
 &lt;deba8ec5-f24f-a433-f03c-0d277f0ac94a@free.fr&gt;
MIME-Version: 1.0
Cc: 
Content-type: multipart/mixed; boundary=&quot;----------=_1706602778-31669-7&quot;

This is a multi-part message in MIME format...

------------=_1706602778-31669-7
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: fr

Salut,
motiv&#xe9; pour un d&#xee;ner :-\ ?
A+

------------=_1706602778-31669-7
Content-Type: text/plain; name=&quot;avertissement.txt&quot;
Content-Disposition: inline; filename=&quot;avertissement.txt&quot;
Content-Transfer-Encoding: base64

Q2UgbWVzc2FnZSDpbGVjdHJvbmlxdWUgZXQgdG91cyBsZXMgZmljaGllcnMgYXR0YWNo6XMgcXUn
aWwgY29udGllbnQgc29udCBjb25maWRlbnRpZWxzIGV0IGRlc3RpbulzIGV4Y2x1c2l2ZW1lbnQg
4CBsJ3VzYWdlIGRlIGxhIHBlcnNvbm5lIOAgbGFxdWVsbGUgaWxzIHNvbnQgYWRyZXNz6XMuIFNp
IHZvdXMgYXZleiByZed1IGNlIG1lc3NhZ2UgcGFyIGVycmV1ciwgbWVyY2kgZGUgbGUgcmV0b3Vy
bmVyIOAgc29uIOltZXR0ZXVyLiBMYSBwdWJsaWNhdGlvbiwgbCd1c2FnZSwgbGEgZGlzdHJpYnV0
aW9uLCBsJ2ltcHJlc3Npb24gb3UgbGEgY29waWUgbm9uIGF1dG9yaXPpZSBkZSBjZSBtZXNzYWdl
IGV0IGRlcyBhdHRhY2hlbWVudHMgcXUnaWwgY29udGllbnQgc29udCBzdHJpY3RlbWVudCBpbnRl
cmRpdHMuCgpFbiBjYXMgZCd1cmdlbmNlLCBjb21wb3NleiBsZSAxNyBvdSBsZSAxMTIuCkFmaW4g
ZGUgY29udHJpYnVlciBhdSByZXNwZWN0IGRlIGwnZW52aXJvbm5lbWVudCwgbWVyY2kgZGUgbidp
bXByaW1lciBjZXQgZS1tYWlsIHF1J2VuIGNhcyBkZSBuZWNlc3NpdGUuCgpUaGlzIGUtbWFpbCBh
bmQgYW55IGZpbGVzIHRyYW5zbWl0dGVkIHdpdGggaXQgYXJlIGNvbmZpZGVudGlhbCBhbmQgaW50
ZW5kZWQgc29sZWx5IGZvciB0aGUgdXNlIG9mIHRoZSBpbmRpdmlkdWFsIHRvIHdob20gaXQgaXMg
YWRkcmVzc2VkLiBJZiB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIGVtYWlsIGluIGVycm9yIHBsZWFz
ZSBzZW5kIGl0IGJhY2sgdG8gdGhlIHBlcnNvbiB0aGF0IHNlbnQgaXQgdG8geW91LiBVbmF1dGhv
cml6ZWQgcHVibGljYXRpb24sIHVzZSwgZGlzc2VtaW5hdGlvbiwgZm9yd2FyZGluZywgcHJpbnRp
bmcgb3IgY29weWluZyBvZiB0aGlzIGVtYWlsIGFuZCBpdHMgYXNzb2NpYXRlZCBhdHRhY2htZW50
cyBpcyBzdHJpY3RseSBwcm9oaWJpdGVkLgoKSW4gY2FzZSBvZiBlbWVyZ2VuY3ksIGRpYWwgbnVt
YmVyIDE3IG9yIDExMi4KVG8gY29udHJpYnV0ZSB0byB0aGUgZW52aXJvbm1lbnRhbCBwcm90ZWN0
aW9uLCBwbGVhc2UgcHJpbnQgdGhpcyBlLW1haWwgb25seSBpZiBuZWNlc3NhcnkuIAo=

------------=_1706602778-31669-7--

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/mixed_alternative.eml
=====================================================
Return-Path: &lt;comptetest15.linagora@avocat.fr&gt;
MIME-Version: 1.0
Subject: efvvbe
From: Test SFR15 &lt;comptetest15.linagora@avocat.fr&gt;
To: comptetest15.linagora@avocat.fr
Reply-To: comptetest15.linagora@avocat.fr
Date: Fri, 16 Feb 2024 07:43:48 +0000
Message-ID: &lt;Mime4j.1c.9f6396389b10101f.18db0df1ea7@avocat.fr&gt;
User-Agent: Team-Mail/0.11.3 Mozilla/5.0 (X11; Linux x86_64)
 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36
Content-Type: multipart/mixed;
 boundary=&quot;-=Part.1e.ad48eadb4d16313.18db0df1ef2.27f27d27a1f5f6c9=-&quot;

---=Part.1e.ad48eadb4d16313.18db0df1ef2.27f27d27a1f5f6c9=-
Content-Type: multipart/alternative;
 boundary=&quot;-=Part.1d.e7a28233d3e94785.18db0df1ef1.4fa526bb3070cbce=-&quot;

---=Part.1d.e7a28233d3e94785.18db0df1ef1.4fa526bb3070cbce=-
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable


reber
---=Part.1d.e7a28233d3e94785.18db0df1ef1.4fa526bb3070cbce=-
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

&lt;div&gt;&lt;br&gt;reber&lt;/div&gt;
---=Part.1d.e7a28233d3e94785.18db0df1ef1.4fa526bb3070cbce=---

---=Part.1e.ad48eadb4d16313.18db0df1ef2.27f27d27a1f5f6c9=-
Content-Type: image/jpeg; name=&quot;=?US-ASCII?Q?0_WXYsA=5FWrYTAaQMRH.jpg?=&quot;
Content-Disposition: attachment
Content-Transfer-Encoding: base64

/9j/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAA
ACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABIAAAAAQAAAEgAAAABAAAA
BgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAA
AH4CAAADoAQAAQAAAN8BAAAAAAAA/9sAQwAGBgYGBwYHCAgHCgsKCwoPDgwMDg8WEBEQERAWIhUZ
FRUZFSIeJB4cHiQeNiomJio2PjQyND5MRERMX1pffHyn/9sAQwEGBgYGBwYHCAgHCgsKCwoPDgwM
Dg8WEBEQERAWIhUZFRUZFSIeJB4cHiQeNiomJio2PjQyND5MRERMX1pffHyn/8AAEQgB3wJ+AwEi
AAIRAQMRAf/EAB0AAQABBQEBAQAAAAAAAAAAAAAGAgMEBQcBCAn/xABUEAABAwMBAwQLDAgFAwMD
BQABAAIDBAURBhIhMRMUQVEHIlVhcXSRk7Gz0RUWMjQ2QlJTVHOBkjM1cnWUoaLSCCNisuFDwcMk
N+ImRPAXOEVjgv/EABoBAQADAQEBAAAAAAAAAAAAAAACBAUDAQb/xAAiEQEAAgMAAgIDAQEAAAAA
AAAAAQIDBBEFEjFREyFBInH/2gAMAwEAAhEDEQA/APqlERAREQEREBERAREQEREBERAREQEREBER
AREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQER
EBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAR
EQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREB
ERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQ
EREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBER

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/alternative.eml
=====================================================
Return-Path: &lt;from@linagora.com&gt;
To: to@linagora.com
From: Lina &lt;from@linagora.com&gt;
Subject: MultiAttachment
Message-ID: &lt;13d4375e-a4a9-f613-06a1-7e8cb1e0ea93@linagora.com&gt;
Date: Mon, 27 Feb 2017 11:24:48 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.2.0
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary=&quot;------------64D8D789FC30153D6ED18258&quot;

This is a multi-part message in MIME format.
--------------64D8D789FC30153D6ED18258
Content-Type: text/html; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

&lt;p&gt;Send&lt;br/&gt;concerted from html&lt;/p&gt;


--------------64D8D789FC30153D6ED18258
Content-Type: text/plain; charset=UTF-8;
 name=&quot;text1&quot;
Content-Transfer-Encoding: 7bit

I am the text plain part!

--------------64D8D789FC30153D6ED18258

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/resources/eml/nested2.eml
=====================================================
Content-Type: multipart/mixed; boundary=&quot;------------6a0Tq7Y8z9M0dIG10PnZ7l7E&quot;
Message-ID: &lt;b3493b24-116a-4d6b-a61c-1a3b09e44619@linagora.com&gt;
Date: Wed, 21 Feb 2024 22:58:55 +0100
MIME-Version: 1.0
References: &lt;Mime4j.8f3.69abfdd624c15c44.18dcdad3859@linagora.com&gt;
Subject: Fwd: Will be nested
To: btellier@linagora.com
From: &quot;btellier@linagora.com&quot; &lt;btellier@linagora.com&gt;
In-Reply-To: &lt;Mime4j.8f3.69abfdd624c15c44.18dcdad3859@linagora.com&gt;
X-Forwarded-Message-Id: &lt;Mime4j.8f3.69abfdd624c15c44.18dcdad3859@linagora.com&gt;

This is a multi-part message in MIME format.
--------------6a0Tq7Y8z9M0dIG10PnZ7l7E
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


--------------6a0Tq7Y8z9M0dIG10PnZ7l7E
Content-Type: message/rfc822; name=&quot;Will be nested.eml&quot;
Content-Disposition: attachment; filename=&quot;Will be nested.eml&quot;
Content-Transfer-Encoding: 7bit

MIME-Version: 1.0
Subject: Will be nested
From: Benoit TELLIER &lt;bxxxx@linagora.com&gt;
To: =?ISO-8859-1?Q?Beno=EEt_TELLIER?= &lt;bxxxx@linagora.com&gt;
Reply-To: btellier@linagora.com
Date: Wed, 21 Feb 2024 21:58:17 +0000
Message-ID: &lt;Mime4j.8f3.69abfdd624c15c44.18dcdad3859@linagora.com&gt;
Content-Type: multipart/mixed;
 boundary=&quot;-=Part.8f5.4ee8b8343a133e4f.18dcdad38b0.f1b9fcef27eb8231=-&quot;

---=Part.8f5.4ee8b8343a133e4f.18dcdad38b0.f1b9fcef27eb8231=-
Content-Type: multipart/alternative;
 boundary=&quot;-=Part.8f4.9ab3439f1c0c1361.18dcdad38b0.b6d054e4dd1744c7=-&quot;

---=Part.8f4.9ab3439f1c0c1361.18dcdad38b0.b6d054e4dd1744c7=-
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Nested body

--=C2=A0

Best regards,

Benoit TELLIER

---=Part.8f4.9ab3439f1c0c1361.18dcdad38b0.b6d054e4dd1744c7=-
Content-Type: text/html; charset=UTF-8

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/src/test/resources/jmap.properties
=====================================================
# Configuration urlPrefix for JMAP routes.
url.prefix=http://domain.com
websocket.url.prefix=ws://domain.com
upload.max.size=20M
webpush.maxTimeoutSeconds=10
webpush.maxConnections=10
dynamic.jmap.prefix.resolution.enabled=true

=====================================================
== File: server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/resources/jmap.properties
=====================================================
# Configuration urlPrefix for JMAP routes.
url.prefix=http://domain.com
websocket.url.prefix=ws://domain.com
upload.max.size=20M
dynamic.jmap.prefix.resolution.enabled=true

=====================================================
== File: server/protocols/protocols-pop3/src/test/resources/pop3server.xml
=====================================================
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;pop3server enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;pop3server&lt;/jmxName&gt;
    &lt;bind&gt;127.0.0.1:0&lt;/bind&gt;
    &lt;helloName&gt;myMailServer&lt;/helloName&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
    &lt;/tls&gt;
    &lt;connectiontimeout&gt;3600&lt;/connectiontimeout&gt;
    &lt;handlerchain&gt;
        &lt;handler class=&quot;org.apache.james.pop3server.core.CoreCmdHandlerLoader&quot;/&gt;
    &lt;/handlerchain&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/pop3server&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslJKSNotFound.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;keystore.notfound.jks&lt;/keystore&gt;
        &lt;keystoreType&gt;JKS&lt;/keystoreType&gt;
        &lt;secret&gt;123456&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslPEM.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;privateKey&gt;private.key&lt;/privateKey&gt;
        &lt;certificates&gt;certs.self-signed.csr&lt;/certificates&gt;
        &lt;secret&gt;123456&lt;/secret&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthAllowed.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;plainAuthDisallowed&gt;false&lt;/plainAuthDisallowed&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSSLCompress.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;true&quot; startTLS=&quot;false&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;connectionBacklog&gt;200&lt;/connectionBacklog&gt;
    &lt;connectionLimit&gt;0&lt;/connectionLimit&gt;
    &lt;connectionLimitPerIP&gt;0&lt;/connectionLimitPerIP&gt;
    &lt;idleTimeInterval&gt;120&lt;/idleTimeInterval&gt;
    &lt;idleTimeIntervalUnit&gt;SECONDS&lt;/idleTimeIntervalUnit&gt;
    &lt;enableIdle&gt;true&lt;/enableIdle&gt;
    &lt;inMemorySizeLimit&gt;64K&lt;/inMemorySizeLimit&gt;
    &lt;literalSizeLimit&gt;128K&lt;/literalSizeLimit&gt;
    &lt;plainAuthDisallowed&gt;false&lt;/plainAuthDisallowed&gt;
    &lt;compress&gt;true&lt;/compress&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslDefaultJKS.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;keystore.jks&lt;/keystore&gt;
        &lt;secret&gt;123456&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthEnabledWithoutRequireSSL.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;auth&gt;
        &lt;plainAuthEnabled&gt;true&lt;/plainAuthEnabled&gt;
    &lt;/auth&gt;
    &lt;plainAuthDisallowed&gt;false&lt;/plainAuthDisallowed&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/oauth.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;privateKey&gt;private.key&lt;/privateKey&gt;
        &lt;certificates&gt;certs.self-signed.csr&lt;/certificates&gt;
        &lt;secret&gt;123456&lt;/secret&gt;
    &lt;/tls&gt;
    &lt;auth&gt;
        &lt;plainAuthEnabled&gt;true&lt;/plainAuthEnabled&gt;
        &lt;requireSSL&gt;true&lt;/requireSSL&gt;
    &lt;/auth&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsTrueAndStartSSLIsFalse.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;false&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;auth&gt;
        &lt;plainAuthEnabled&gt;true&lt;/plainAuthEnabled&gt;
        &lt;requireSSL&gt;true&lt;/requireSSL&gt;
    &lt;/auth&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthDisabled.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;auth&gt;
        &lt;plainAuthEnabled&gt;false&lt;/plainAuthEnabled&gt;
    &lt;/auth&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMBadPass.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;privateKey&gt;private.key&lt;/privateKey&gt;
        &lt;certificates&gt;certs.self-signed.csr&lt;/certificates&gt;
        &lt;secret&gt;badbad&lt;/secret&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerProxy.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;connectionBacklog&gt;200&lt;/connectionBacklog&gt;
    &lt;connectionLimit&gt;0&lt;/connectionLimit&gt;
    &lt;connectionLimitPerIP&gt;0&lt;/connectionLimitPerIP&gt;
    &lt;idleTimeInterval&gt;120&lt;/idleTimeInterval&gt;
    &lt;idleTimeIntervalUnit&gt;SECONDS&lt;/idleTimeIntervalUnit&gt;
    &lt;enableIdle&gt;true&lt;/enableIdle&gt;
    &lt;inMemorySizeLimit&gt;65536&lt;/inMemorySizeLimit&gt; &lt;!-- 64 KB --&gt;
    &lt;plainAuthDisallowed&gt;false&lt;/plainAuthDisallowed&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
    &lt;proxyRequired&gt;true&lt;/proxyRequired&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslPKCS12.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;keystore.p12&lt;/keystore&gt;
        &lt;keystoreType&gt;PKCS12&lt;/keystoreType&gt;
        &lt;secret&gt;123456&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSSL.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;true&quot; startTLS=&quot;false&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;connectionBacklog&gt;200&lt;/connectionBacklog&gt;
    &lt;connectionLimit&gt;0&lt;/connectionLimit&gt;
    &lt;connectionLimitPerIP&gt;0&lt;/connectionLimitPerIP&gt;
    &lt;idleTimeInterval&gt;120&lt;/idleTimeInterval&gt;
    &lt;idleTimeIntervalUnit&gt;SECONDS&lt;/idleTimeIntervalUnit&gt;
    &lt;enableIdle&gt;true&lt;/enableIdle&gt;
    &lt;inMemorySizeLimit&gt;64K&lt;/inMemorySizeLimit&gt;
    &lt;literalSizeLimit&gt;128K&lt;/literalSizeLimit&gt;
    &lt;plainAuthDisallowed&gt;false&lt;/plainAuthDisallowed&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMNoPass.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;privateKey&gt;private.nopass.key&lt;/privateKey&gt;
        &lt;certificates&gt;certs.self-signed.csr&lt;/certificates&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerCompress.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;compress&gt;true&lt;/compress&gt;
    &lt;connectionBacklog&gt;200&lt;/connectionBacklog&gt;
    &lt;connectionLimit&gt;0&lt;/connectionLimit&gt;
    &lt;connectionLimitPerIP&gt;0&lt;/connectionLimitPerIP&gt;
    &lt;idleTimeInterval&gt;120&lt;/idleTimeInterval&gt;
    &lt;idleTimeIntervalUnit&gt;SECONDS&lt;/idleTimeIntervalUnit&gt;
    &lt;enableIdle&gt;true&lt;/enableIdle&gt;
    &lt;inMemorySizeLimit&gt;65536&lt;/inMemorySizeLimit&gt; &lt;!-- 64 KB --&gt;
    &lt;plainAuthDisallowed&gt;false&lt;/plainAuthDisallowed&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerImapConnectCheck.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;connectionBacklog&gt;200&lt;/connectionBacklog&gt;
    &lt;connectionLimit&gt;0&lt;/connectionLimit&gt;
    &lt;connectionLimitPerIP&gt;0&lt;/connectionLimitPerIP&gt;
    &lt;idleTimeInterval&gt;120&lt;/idleTimeInterval&gt;
    &lt;idleTimeIntervalUnit&gt;SECONDS&lt;/idleTimeIntervalUnit&gt;
    &lt;enableIdle&gt;true&lt;/enableIdle&gt;
    &lt;inMemorySizeLimit&gt;64K&lt;/inMemorySizeLimit&gt;
    &lt;literalSizeLimit&gt;128K&lt;/literalSizeLimit&gt;
    &lt;plainAuthDisallowed&gt;false&lt;/plainAuthDisallowed&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
    &lt;additionalConnectionChecks&gt;org.apache.james.imapserver.netty.IpConnectionCheck&lt;/additionalConnectionChecks&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/private.nopass.key
=====================================================
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAsjjah2w8AKpnGKya4QG/tdRoR9pJkKWfyf17ywcYWBxcpj0Q
+dkn+CXvBafhQ2zlf+bPkWxYhBuXyMB8QNCp/sMlaQ8dGFw/LGojglHk8T4aIu+a
Ffy0hgN9yniuEHmFdjP2XECbA7UbHQPZTO/DU3QJ0FabqKO61pHB4bliNsTWGjzg
seU5kdS1Uup0AK/URO2pSLpnDPV/l0yNmxvGfO/ulPNVJyxiJuT+Rl51LlxpWhu3
G/hFX2mJP0Mn/cX3xNm2HrYIaasglum7bXN/vfiqSFAg46LgT7UJ4pCHoLI99K7Z
OpgBqK/Q4P4UxOggxkawI+JmVLTmCpz1c6JR3QIDAQABAoIBAEvx7DVfCuahtpMO
ImWVkDMUk2di/owz97ZkXRc0K8yIMXbpeM1vGxgkWgmH83b+9YEeQv9OMx4AgBqc
45XfFUGpuMxfE1/pF0Z+6CjFaxDeDNcsUPXjnK2q2TSpXktI7XVkSSwgn63hw+8G
T9f4J7ztKq1r6qLfOmPq8rqUe+SoH5tkwmJJgnxx3Qt2xZ4nmFXiuscOcVUjV3D/
EdghjcExNSgxmo8HN34DLQPZrDDwarrYJouiufe7m0Etk8m9bOWkNsoCif0wQ0mS
uQVAHMzCKqrUmAM3X1IimTnwOWu2sYle9VXYijwDkZ0PGQnS4rywz9D9MWy57ZLM
zklb5MUCgYEA5qrK9PmMGNi6ihhjkDw6b4sqOs4Dec89jdkhhYdrbPVXZzB+Shmh
CDhviXhLi7m5G5d707DLPloPR0LdNmf3YsLCvMej70O8DrDG/z1Vv++DF2XcAtvW
TLoXOcSS1E3tKRSp2Uks7osWIwUAomhkEIXsDJ+esH9wHD7rOYA02fsCgYEAxcuR
Sp0rcVqwyuINEmrvH5zxSWk0O5MqM95kyvElFuPCPAKv0EK9t8T7dv7fEtQoupqa
hbDGzatif7B4tVaeWZRYJUrr9uwIyZfVSfYUi5y2KwHGJJPH+EkoQ6sZlRw6Aqj/
AeW4/cnmhK+IrgBDKF99DiVs1nVTgeA0vEneVAcCgYBh9l0VpznJf5nRdkQqiHmk
z6ySptWxEMOqj3F+HSIRdyy0hVLNM49BR36PGoizAaBMyIvtPqNCisr8T7hVF9hn
mCFOPVcxEUo3zvnkgm79gcHh2P+UMzsTAOFGRma5RZMYJE9yGXK8qFMxcjlvv/fn
UIkMX2nsuWKqjEon9Hv9qwKBgFLk760/lVdaVMGSXzwayMCM+6pyhst477TxPXi3
+31OUrbnwVscvXno+iJyynaPp8ocxSnGXmsPqqYtBUmqVY7hVte6QI4peb1S/raS
hSXFtarsgWgO7z2lG1TQvlX5kG5Q+R6IcjEajpuJHVUfEwY2jqiBEs4GOcsydad7
pcu9AoGBANHQQS7U1o0Ks2H9iB02b72rq0Lr7d4xJ7bbeL0PdJNxnKWYtYYrNKvu
R7wWF6MBH+pfm0CzJo0Pog58wkAiKnD8nPuVUdXgi/3PQXu/ZARY0g30wqubaBeZ
UN7bL/TrIc67ldEi07A8Wo6H5Gd6jIHBnmO93an2zXlrvhrvACRX
-----END RSA PRIVATE KEY-----

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslPKCS12MissingPassword.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;keystore.p12&lt;/keystore&gt;
        &lt;keystoreType&gt;PKCS12&lt;/keystoreType&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServer.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;connectionBacklog&gt;200&lt;/connectionBacklog&gt;
    &lt;connectionLimit&gt;0&lt;/connectionLimit&gt;
    &lt;connectionLimitPerIP&gt;0&lt;/connectionLimitPerIP&gt;
    &lt;idleTimeInterval&gt;120&lt;/idleTimeInterval&gt;
    &lt;idleTimeIntervalUnit&gt;SECONDS&lt;/idleTimeIntervalUnit&gt;
    &lt;enableIdle&gt;true&lt;/enableIdle&gt;
    &lt;inMemorySizeLimit&gt;64K&lt;/inMemorySizeLimit&gt;
    &lt;literalSizeLimit&gt;128K&lt;/literalSizeLimit&gt;
    &lt;plainAuthDisallowed&gt;false&lt;/plainAuthDisallowed&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslJKSBadPassword.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;keystore.jks&lt;/keystore&gt;
        &lt;keystoreType&gt;JKS&lt;/keystoreType&gt;
        &lt;secret&gt;badbad&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMExtraPass.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;privateKey&gt;private.nopass.key&lt;/privateKey&gt;
        &lt;certificates&gt;certs.self-signed.csr&lt;/certificates&gt;
        &lt;secret&gt;123456&lt;/secret&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerNoLimits.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;connectionBacklog&gt;200&lt;/connectionBacklog&gt;
    &lt;connectionLimit&gt;0&lt;/connectionLimit&gt;
    &lt;connectionLimitPerIP&gt;0&lt;/connectionLimitPerIP&gt;
    &lt;idleTimeInterval&gt;120&lt;/idleTimeInterval&gt;
    &lt;idleTimeIntervalUnit&gt;SECONDS&lt;/idleTimeIntervalUnit&gt;
    &lt;enableIdle&gt;true&lt;/enableIdle&gt;
    &lt;inMemorySizeLimit&gt;65536&lt;/inMemorySizeLimit&gt; &lt;!-- 64 KB --&gt;
    &lt;plainAuthDisallowed&gt;false&lt;/plainAuthDisallowed&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslNoKeys.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapSSL.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;true&quot; startTLS=&quot;false&quot;&gt;
        &lt;privateKey&gt;private.key&lt;/privateKey&gt;
        &lt;certificates&gt;certs.self-signed.csr&lt;/certificates&gt;
        &lt;secret&gt;123456&lt;/secret&gt;
    &lt;/tls&gt;
    &lt;auth&gt;
        &lt;plainAuthEnabled&gt;true&lt;/plainAuthEnabled&gt;
        &lt;requireSSL&gt;true&lt;/requireSSL&gt;
    &lt;/auth&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/private.key
=====================================================
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,5D8E78A6193D484A

YaZzaxmoE+/F5WUWlWAsKXY4e+9oSjYDFFcutiFgxK7UOIFnITTK15ri6VrPzh4R
/VlXVyxNp37NRLiHKG4t+w7F12Vo8j2V6n+3DInOBRjh2z7rP4k9WTefTX8QoXgT
pHXAUf8p3mcooHPhsLk2rQAPmzDXGG7fg9UMoFIVXTvyDi0alLmm8+k2HT0pllIp
drhUg5Rknm09JcD/js45r4qkOVLMh8guU5g+M7x1jOf4PzF8CWTJSLpXmXPwwEHI
DquwjDbaDN2543qOQZYPtJQ6LBlE1vfybFsy8IsYfcfrf6hkXrBdCTUx9FZgOOiF
B9c9gkxWDkZ4Gc2qC7NYebGKsvzg5sKeED/g8ynMCzSQnn6WuhWmsqCmAJR+B0vm
DeBioHW4hfbge+qfkRtcivodxFOGhJkMvBQ5nee84XK5ivZRR7YfBdNO9ES7uYgX
1zr7XvkwOW9tZKDHSPfgwWXcNY7oZ9JgIHbDKp6sndeVJDEA/pJzfNSHWmIjWmld
r7WTAZPghB+I2H2rPGYTUs1iuenyaZVYMX2RAX23zZEBx/TZSmEKp2dO12G2M0ru
LX7ft0gcj7wmT376WnJJ07OG41R041+RAlAr6Im1oUAx7PhPTj21sM8WFsmczip7
RdVBbUCdRd0UjIfd7PjNlut0RFTtctC+oTgD+bOp1jx/UB1bSu/i6JRO52zsggxP
T6yRg59a2TzZEoM4gmRKyF5TFIlTDAsRJXStL2v847pA442fA0S6kaa9sFEf9PrT
CipSCb/DJeVZxslAOZwKMWG/XK3/L3zZ9ctDvqw+OxSYGKKZHcAdNa/nJTZ7f1W9
aSMWBHViZz3nxsuJ2Q8eVGG5YETtyzqgDJ1R16bfBjDGJvR4fdghJge2Nqhliz4G
NeJWqoXdvKobj4CdoGLT6mWlyrmZ/Z9kKKtKm0Oc0MY6MijkKGwJWDjn7ybrsN5h
LG2fYoyBly95n+1phxLXxmJMrCBSyhuxIMnXmFEn/0jYDleHRR+lN95ZFWrmXpPC
vDSBLxmp03EMqj5BpVXwTA3S3WUOlk5Ao8tgvg8MXvzNbZ5Sgzix9Ms/H+ofK53k
YLfpurKZ6rfMF+tbN0cZ4WSYZUJil6vBu03xxJJ2hyGt2b9cupT1ftxewjjBvq4W
C4+eI86WRsTxRfVnsBob9Ok+A0IxxR8MNHfQVBFLTm2XgjFKdMku+eqop5nV3m3m
iltSEoJlkBmCfBsDvkeueTG3M9Gg96MJ05LZQtmdYcW79R6ynvdVeA/KFJ1I7PbM
tmZ5UjyVnbIsEjEw+O++uG7xQWQBqnI4tU6wPqYpJDND4Hsp3CWP5zW0LfFXzzdG
e473CQTJRhiyBHUUhE1+RzHNt1GY5mR9DNfwS3nJdL36k9Hnu2mo+Vzif1JLs2pE
LjKg62lYSic3g73AlnB02tAsjxRA1Pv2OZjhIMQ3WT+caqpckt1Xvqc4ABS9fT8c
4d3kQ4bcsSoRN7lyO+KPwqGl7YPK8+utih12P8ZUqgxhYuCqpWVf7YxEQVzZqmWO
uHx1fpFCbzmDnoIhUQOOMAwxMpDus8huwroycfr67ukzpwxje+6shA==
-----END RSA PRIVATE KEY-----

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsFalseAndStartSSLIsTrue.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;auth&gt;
        &lt;plainAuthEnabled&gt;true&lt;/plainAuthEnabled&gt;
        &lt;requireSSL&gt;false&lt;/requireSSL&gt;
    &lt;/auth&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsTrueAndStartSSLIsTrue.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;auth&gt;
        &lt;plainAuthEnabled&gt;true&lt;/plainAuthEnabled&gt;
        &lt;requireSSL&gt;true&lt;/requireSSL&gt;
    &lt;/auth&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerPlainAuthDisallowed.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;false&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;plainAuthDisallowed&gt;true&lt;/plainAuthDisallowed&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerStartTLS.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;connectionBacklog&gt;200&lt;/connectionBacklog&gt;
    &lt;connectionLimit&gt;0&lt;/connectionLimit&gt;
    &lt;connectionLimitPerIP&gt;0&lt;/connectionLimitPerIP&gt;
    &lt;idleTimeInterval&gt;120&lt;/idleTimeInterval&gt;
    &lt;idleTimeIntervalUnit&gt;SECONDS&lt;/idleTimeIntervalUnit&gt;
    &lt;enableIdle&gt;true&lt;/enableIdle&gt;
    &lt;inMemorySizeLimit&gt;64K&lt;/inMemorySizeLimit&gt;
    &lt;literalSizeLimit&gt;128K&lt;/literalSizeLimit&gt;
    &lt;plainAuthDisallowed&gt;false&lt;/plainAuthDisallowed&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslJKS.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;keystore.jks&lt;/keystore&gt;
        &lt;keystoreType&gt;JKS&lt;/keystoreType&gt;
        &lt;secret&gt;123456&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslPEMMissingPass.xml
=====================================================

&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;privateKey&gt;private.key&lt;/privateKey&gt;
        &lt;certificates&gt;certs.self-signed.csr&lt;/certificates&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/certs.csr
=====================================================
-----BEGIN CERTIFICATE REQUEST-----
MIICijCCAXICAQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBALI42odsPACqZxismuEBv7XUaEfaSZCln8n9e8sH
GFgcXKY9EPnZJ/gl7wWn4UNs5X/mz5FsWIQbl8jAfEDQqf7DJWkPHRhcPyxqI4JR
5PE+GiLvmhX8tIYDfcp4rhB5hXYz9lxAmwO1Gx0D2Uzvw1N0CdBWm6ijutaRweG5
YjbE1ho84LHlOZHUtVLqdACv1ETtqUi6Zwz1f5dMjZsbxnzv7pTzVScsYibk/kZe
dS5caVobtxv4RV9piT9DJ/3F98TZth62CGmrIJbpu21zf734qkhQIOOi4E+1CeKQ
h6CyPfSu2TqYAaiv0OD+FMToIMZGsCPiZlS05gqc9XOiUd0CAwEAAaAAMA0GCSqG
SIb3DQEBCwUAA4IBAQCLTucL2oggfXTuGZTHVv1N6U9ZlTh7ikMDex3aCTlZZG1m
rT3BJ0Z7QcvJDkUOT0iEgrES6ta61uy2l9BFbfBYgIWJUXaCijid1oaB3YaxFeHb
Y8rTGsJQqHPxjy720ZUiNXrOQuF+QA++auHIAzC2t51H6e3EjIrpNqio8IWYhmEH
wSpYERm5yQ7WSPcWWXI0GoCSYsOgJeE9VwrlXaTv62UwJKfCJM6dUgieKXxtEHpX
eAviSOqU1WJhCQqNJaqtP78Q2g95qMdf7193WigtsMqqgeyT5ewozvQCe8V9Y0H0
zjwS/1kBp50gGs5PWizQJYHra/KVzgIaobgD5u3Z
-----END CERTIFICATE REQUEST-----

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/certs.self-signed.csr
=====================================================
-----BEGIN CERTIFICATE-----
MIIDETCCAfkCFEng6ISWvEq/JkD8u64MA+x2VhS/MA0GCSqGSIb3DQEBCwUAMEUx
CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjEwODMwMDQwMzIwWhcNMjIwODMwMDQw
MzIwWjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE
CgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAsjjah2w8AKpnGKya4QG/tdRoR9pJkKWfyf17ywcYWBxcpj0Q
+dkn+CXvBafhQ2zlf+bPkWxYhBuXyMB8QNCp/sMlaQ8dGFw/LGojglHk8T4aIu+a
Ffy0hgN9yniuEHmFdjP2XECbA7UbHQPZTO/DU3QJ0FabqKO61pHB4bliNsTWGjzg
seU5kdS1Uup0AK/URO2pSLpnDPV/l0yNmxvGfO/ulPNVJyxiJuT+Rl51LlxpWhu3
G/hFX2mJP0Mn/cX3xNm2HrYIaasglum7bXN/vfiqSFAg46LgT7UJ4pCHoLI99K7Z
OpgBqK/Q4P4UxOggxkawI+JmVLTmCpz1c6JR3QIDAQABMA0GCSqGSIb3DQEBCwUA
A4IBAQAzSrClRytVW1fzL1rXMw7rYVoyoQ6ar3+e/SYiy5p+uSlEda9M/suNSvnV
HAdoZS5Ka6v4AAsWtc6gfwa91jGzxMr5O+mvcx/VCCwahwzQe9KOm17WDhHfObq0
sWDkXSVrrXiZC7gWkB4tczHQJNJKD3aNzYmlKX6GaCKVdBT3eCgIzMkolvIQdW5r
lexckmoeEI+52UzgSyLFYzw+HLphmvszsYNLo6s6LBqgHWLdjVA1KsqSKGrqaNJd
xdjw3S5PHAgOdwxNgip5Vdg1Rq8MjtoVGSC2fn678SyZYOAqxEeKf1CtkYTLySjz
w0ipBFOo1qLHlaT5lHQxOIAmKsK1
-----END CERTIFICATE-----

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerRequireSSLIsFalseAndStartSSLIsFalse.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;false&quot;&gt;
        &lt;keystore&gt;classpath://keystore&lt;/keystore&gt;
        &lt;secret&gt;james72laBalle&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
    &lt;/tls&gt;
    &lt;auth&gt;
        &lt;plainAuthEnabled&gt;true&lt;/plainAuthEnabled&gt;
        &lt;requireSSL&gt;false&lt;/requireSSL&gt;
    &lt;/auth&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/protocols/protocols-imap4/src/test/resources/imapServerSslPKCS12WrongPassword.xml
=====================================================
&lt;imapserver enabled=&quot;true&quot;&gt;
    &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
    &lt;bind&gt;0.0.0.0:0&lt;/bind&gt;
    &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;true&quot;&gt;
        &lt;keystore&gt;keystore.p12&lt;/keystore&gt;
        &lt;keystoreType&gt;PKCS12&lt;/keystoreType&gt;
        &lt;secret&gt;badbad&lt;/secret&gt;
        &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
    &lt;/tls&gt;
    &lt;gracefulShutdown&gt;false&lt;/gracefulShutdown&gt;
&lt;/imapserver&gt;

=====================================================
== File: server/Overview.md
=====================================================
Apache James Server
===================

This document is an effort to document the architecture and components that make Apache James. As a new committer to
the project I found out fast that the lack of documentation made development slow. On my quest to solving issues I
decided to document what I understand about Apache James.

Feel free to add/change things if you think it's required.

Server structure: components and services
=========================================

The directory structure is presented bellow. All directories are maven projects and correspond roughly to a component/service.
I'll explain what I mean by 'component' and 'service' bellow.

~~~
|-- app
|-- container
    `-- cli
    `-- core
    `-- lifecycle-api
    `-- filesystem-api
    `-- mailbox-adapter
    `-- spring
    `-- util
|-- data
    `-- data-api
    `-- data-file
    `-- data-jdbc
    `-- data-jpa
    `-- data-ldap
    `-- data-library
|-- dns-service
    `-- dnsservice-api
    `-- dnsservice-dnsjava
    `-- dnsservice-library
|-- karaf
    `-- distribution
     `-- features
     `-- integration
|--mailet
    `-- mailetcontainer-api
    `-- mailetcontainer-camel
    `-- mailets
|-- protocols
    `-- protocols-imap4
    `-- protocols-library
    `-- protocols-lmtp
    `-- protocols-pop3
    `-- protocols-smtp

=====================================================
== File: server/mailet/rate-limiter-redis/redis.properties
=====================================================
redisURL=redis://redis:6379
cluster.enabled=false

=====================================================
== File: server/mailet/rate-limiter-redis/extensions.properties
=====================================================
guice.extension.module=org.apache.james.rate.limiter.redis.RedisRateLimiterModule

=====================================================
== File: server/mailet/rate-limiter-redis/docker-compose.yml
=====================================================
version: '3'

services:

  redis:
    image: redis:7.0.12
    command:
      - &quot;--loglevel&quot;
      - &quot;debug&quot;
  james:
    image: apache/james:memory-latest
    depends_on:
      - redis
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - $PWD/target/james-server-rate-limiter-redis-jar-with-dependencies.jar:/root/extensions-jars/james-server-rate-limiter-redis.jar
      - $PWD/extensions.properties:/root/conf/extensions.properties
      - $PWD/redis.properties:/root/conf/redis.properties
      - $PWD/mailetcontainer.xml:/root/conf/mailetcontainer.xml

=====================================================
== File: server/mailet/rate-limiter-redis/README.adoc
=====================================================
= Distributed Rate limiting for Apache James on top of Redis

This package provides distributed rate limiting using Redis as a shared data store.

It reuses work of xref:../rate-limiter/README.adoc[the Rate Limiter extensions] but substitute a Redis implementation
for the underlying rate limiting.

== Running rate limiting with the memory implementation

- 1. Compile this project.
- 2. Place the generated &quot;jar with dependencies&quot; in James `extensions-jars` folder.
- 3. Configure James to use the redis implementation for Rate Limiting by putting the following content within
`extension.properties`:

----
guice.extension.module=org.apache.james.rate.limiter.redis.RedisRateLimiterModule
----

- 4. Provide a `redis.properties` file:

----
redisURL=redis://redis:6379
cluster.enabled=false
----

- 5. Use the rate limiting mailets within `mailetcontainer.xml`

We provide a sample `docker-compose` demonstrating this setup.

=====================================================
== File: server/mailet/integration-testing/src/main/resources/eml/message-multipart-8bit.eml
=====================================================
Return-Path: &lt;bob@james.org&gt;
MIME-Version: 1.0
Delivered-To: bob@james.org
Received: from 10.233.68.83 (EHLO incoming.james.org) ([10.233.68.83])
          by james-0 (JAMES SMTP Server ) with ESMTP ID 926590876
          for &lt;bob@james.james.org&gt;;
          Tue, 21 Jan 2020 07:12:56 +0000 (UTC)
Received: from smtp.james.org (unknown [10.233.68.1])
	by incoming.james.org (Postfix) with ESMTPS id B39A643
	for &lt;bob@james.james.org&gt;; Tue, 21 Jan 2020 07:12:56 +0000 (UTC)
Received: from duc-HP-ProBook-450-G4 (unknown [1.54.162.156])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))
	(No client certificate requested)
	by smtp.james.org (Postfix) with ESMTPSA id F11B13F386
	for &lt;bob@james.org&gt;; Tue, 21 Jan 2020 08:12:55 +0100 (CET)
Date: Tue, 21 Jan 2020 14:12:39 +0700 (ICT)
X-LINAGORA-Copy-Delivery-Done: 1
From: bob@james.org
To: bob@james.org
Message-ID: &lt;423733503.3.1579590775567@duc-HP-ProBook-450-G4&gt;
Subject: UTF-8 8bit multipart
Content-Type: multipart/mixed; 
	boundary=&quot;----=_Part_0_238762799.1579590759052&quot;

------=_Part_0_238762799.1579590759052
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

A 8bit encoded body with &#x20ac;uro symbol.
------=_Part_0_238762799.1579590759052
Content-Type: application/octet-stream; name=james-logo.png
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=james-logo.png

iVBORw0KGgoAAAANSUhEUgAAANkAAABaCAYAAAA1mvMAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAFB1JREFUeNrsXV2MI9lVvuX+m2EXrTtLQGwydPVsRlmkSOOW+BNItB2t
NiAk2n5BeYG2EwkpiSLbPPAjAW7zQiQe3C0SkBBg9ysv7ZZ4AGWFa/KClJeuRQhls2SnOj1pYIfN
1EhICRLj4pzyufbt6rrlW+W/cvc90lGVXVW37r11vnt+7h/zPI/JeJnp8jOmyTRpmhNF4Shzg8ud
059eUxrIiNJYhmEssybL4/G1f3SsGaSNAM7STxfeYWtR0ppMRqs3uNwu8D6wNQVQoelZBc6HaUi4
jgeH3nUKoOtqsdN04zUZCf8ZCPzOhNqwQeCKC/Aj4EN4v6vF7HZrspsOsjYcHoGgd2I+lyVw1SQA
CpqHWYkPiPc24f2HWgw1yG4qyFADnQAXVP0meKZMADOFv9H8O0VzENJxxrxvD7gYeB7NyJLWahpk
Nw5kJPgnJPCVKKBJwNUhTeQkDI6gH1cWtFpBB0k0yG4iyNCU65E51yGNxDUK/veQNE92GuCSBE0a
BDYNNA2ymwcyQdgPSLNkJbeg4B+jaTgNcEnA1qIgigaaBtnNA1nAb+L9XA6xPU1/6eL+G3nhp0ns
B0wyr/5fnt3t733sG+/vaNHUILuRIJsmAZhM0kwPCbi5CE3J/TIMojzC4733v6UDIbcAZKu6emID
C4G0z65HEMcB6xRApTupbyFpkKkBK0uBi6oisJAs9PEAWB1dgxpkmqLNwQa7Hn2MIgRVE8Dl6BrU
pEEWrblqLDoaGTQJ/WFU2s/SpEE2HmB5OLRjmIWoueoaXJo0yNS0l2y8osznqmizUJMGmTrA+KgQ
FdMQfS496FeTBpkiwHIEMBXfC0dplLT20qRBNhuAdQBcFS0ymmYOMhDMtn9isNN731neztWYAKvo
/i5NSSn2sKqLB2+gYOaZMfRPuj7g3l0ewJEP9lgDTNO0aLrDqjLMYSPsZeG8DMfyxU+/4cI5Au3o
3r99K+0jzLUG0zQ3ir8k3Ao7959aIc4Qr3hZlvHKwGcXn/okcjmlWgynm+Q0wDSl11z81CfzpAkC
N4clMJikeO9f3rVTArDwvOsgh6YZmotJFje1h9prqMUCv0f/gXaLvdLTLKmtUj4NME0LNRfv/eu7

=====================================================
== File: server/mailet/integration-testing/src/main/resources/eml/crypted.eml
=====================================================
To: sender@localdomain
From: sender &lt;sender@localdomain&gt;
Subject: test
Message-ID: &lt;7fe4c217-ab73-d149-9bd0-e6aa3aebfc14@localdomain&gt;
Date: Tue, 3 Jan 2017 16:30:03 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.5.1
MIME-Version: 1.0
Content-Type: application/pkcs7-mime; name=&quot;smime.p7m&quot;; smime-type=enveloped-data
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=&quot;smime.p7m&quot;
Content-Description: =?UTF-8?Q?Message_chiffr=c3=a9_S/MIME?=

MIAGCSqGSIb3DQEHA6CAMIACAQAxggKHMIICgwIBADBrMGYxCzAJBgNVBAYTAkZSMQ8wDQYD
VQQIDAZGcmFuY2UxDTALBgNVBAcMBEx5b24xETAPBgNVBAoMCExpbmFnb3JhMQ4wDAYDVQQL
DAVKYW1lczEUMBIGA1UEAwwLbG9jYWxkb21haW4CAQEwDQYJKoZIhvcNAQEBBQAEggIAjNnW
2EhtDcfG/naGChQPZ2EOiPo5BRabR3dXvLcOPImX97mV51B4sggqpYdUrirD/beRkpbr814i
0LCFbNh3Xm6ojhZGiBHscStNysNjun7MOtUHXs5eDVOthsPVes/YjkHklxtJKH9J7QYwJY/m
L9MgQES2HkALhfqiQDN9UDtn7AE89m70FZfkxJQZSD1NByF7dxiFvhZbd8CFmcV1C0vZRlH9
opZcVg9AkbDytKO+U4FF9/uGmiIQ99Qng0YqcG7abZqwouJ59yxmKTwrggk1+MyJ0NqB1wVP
w2t1C/8hmvMISiij2bidoTTIYCybwvbuM/35POmDJVsvakLMZLG7aHSKvA+Bj+iR/RBgHHvd
c7UdDMvkH0O8tYDsuAW8uh0H8LkvJ/ZWbOsev8DuAVYTm85Zd8d7islgDqfYmjvPeTHqSSgA
sIFdPikRxtetU3JJKRls2BrKV6gM06++/Su+IFvTMaQYRbiQOeGc0ZfGHtlz3BSAeK32tjZu
OrVrxR+BLP4huBqctvcfgjiqtRB5i06wX4q5v/5UNMq9BAtQEDEhERAoXSOWSu3wvocBWtlX
xY5xw34KoFvsztHewakENjgfBG3ysH031UoOIZD0OvHyQ7BGUiu+lM22rj4Pnp6M2W+V1Jjm
OHmV9siU2YsUBE78Lu+hiOcrbydgptswgAYJKoZIhvcNAQcBMBQGCCqGSIb3DQMHBAiTtikP
UrH82KCABHhPrx30MofZ4L1e9dmHrvHo32h93dFJpTLqG0E3T8y8Y5fySEu7x3jWtZNIXERs
/SJYDeww9tOi4tjV2z+3OCXMQjy7P9Pzb+sekX9GuVo640q7Z/2F6C1hShqyLVa7eJFZK8Na
1JasVj9lst+HD+A0SBA63Z+90bsECIXa4/tJqoBPAAAAAAAAAAAAAA==

=====================================================
== File: server/mailet/integration-testing/src/main/resources/eml/message-multipart-7bit.eml
=====================================================
Return-Path: &lt;bob@james.org&gt;
MIME-Version: 1.0
Delivered-To: bob@james.org
Received: from 10.233.68.83 (EHLO incoming.james.org) ([10.233.68.83])
          by james-0 (JAMES SMTP Server ) with ESMTP ID -973333758
          for &lt;bob@james.james.org&gt;;
          Wed, 22 Jan 2020 03:47:32 +0000 (UTC)
Received: from smtp.james.org (unknown [10.233.65.0])
	by incoming.james.org (Postfix) with ESMTPS id 8151D43
	for &lt;bob@james.james.org&gt;; Wed, 22 Jan 2020 03:47:32 +0000 (UTC)
Received: from [10.116.29.102] (unknown [1.54.162.156])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.james.org (Postfix) with ESMTPSA id D6C653F38C
	for &lt;bob@james.org&gt;; Wed, 22 Jan 2020 04:47:31 +0100 (CET)
To: bob@james.org
X-LINAGORA-Copy-Delivery-Done: 1
From: Uncle Bob &lt;bob@james.org&gt;
Subject: multipart
Message-ID: &lt;69bd7da2-5b13-de50-bd77-c985f6b0215c@james.org&gt;
Date: Wed, 22 Jan 2020 10:47:17 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.2.1
Content-Type: multipart/mixed;
 boundary=&quot;------------C3FD44EAF9B6A93E163D9176&quot;
Content-Language: en-US

This is a multi-part message in MIME format.
--------------C3FD44EAF9B6A93E163D9176
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

A quoted-printable encoded body with =E2=82=ACuro symbol.



--------------C3FD44EAF9B6A93E163D9176
Content-Type: image/png;
 name=&quot;james-logo.png&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;james-logo.png&quot;

iVBORw0KGgoAAAANSUhEUgAAANkAAABaCAYAAAA1mvMAAAAAGXRFWHRTb2Z0d2FyZQBBZG9i
ZSBJbWFnZVJlYWR5ccllPAAAFB1JREFUeNrsXV2MI9lVvuX+m2EXrTtLQGwydPVsRlmkSOOW
+BNItB2tNiAk2n5BeYG2EwkpiSLbPPAjAW7zQiQe3C0SkBBg9ysv7ZZ4AGWFa/KClJeuRQhl
s2SnOj1pYIfN1EhICRLj4pzyufbt6rrlW+W/cvc90lGVXVW37r11vnt+7h/zPI/JeJnp8jOm
yTRpmhNF4Shzg8ud059eUxrIiNJYhmEssybL4/G1f3SsGaSNAM7STxfeYWtR0ppMRqs3uNwu
8D6wNQVQoelZBc6HaUi4jgeH3nUKoOtqsdN04zUZCf8ZCPzOhNqwQeCKC/Aj4EN4v6vF7HZr
spsOsjYcHoGgd2I+lyVw1SQACpqHWYkPiPc24f2HWgw1yG4qyFADnQAXVP0meKZMADOFv9H8

=====================================================
== File: server/mailet/integration-testing/src/main/resources/eml/dlp_read_mail_with_attachment.eml
=====================================================
To: user2@james.org
From: user@james.org
Subject: dlp subject
Message-ID: &lt;df73c05a-2e18-3e22-040c-9eda6abe02ae@open-paas.org&gt;
Date: Fri, 1 Nov 2019 10:21:39 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.2.1
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------589DDD2515E3B3CC74D74E40&quot;
Content-Language: en-US

This is a multi-part message in MIME format.
--------------589DDD2515E3B3CC74D74E40
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

matchAnother



--------------589DDD2515E3B3CC74D74E40
Content-Type: image/jpeg;
 name=&quot;linux.jpeg&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;linux.jpeg&quot;

/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMSEhIQEBIVFRUXFRcYFhgVFxUVGBUQFRgW
FhcVFxUdHSggGBonGxUWITIlJSkrLi4uFx8/ODMsNygtLisBCgoKDg0OGhAQGjMlICY4Mi83
NSs3LTcyMC8wLTAtLS0tLy0tNS0vLzUtLS0tLS0tLzYvKy0tLS0tLy0tLS0tLf/AABEIAOEA
4QMBIgACEQEDEQH/xAAcAAEAAgIDAQAAAAAAAAAAAAAAce
BgcEBQIDCAH/xABDEAABAwICBwUE
CAMGBwAAAAABAAIDBBEFIQYHEjFBUWETInGBkTJSobEUI0JicoLB0QiS8BUzotLh8SRDY3OD
ssL/xAAaAQEAAgMBAAAAAAAAAAAAAAAABAUBAgMG/8QALBEBAAIBAwIEBQUBAQAAAAAAAAEC
AwQRIQUSEzFBUSIzgZGhYXGx0fBDMv/aAAwDAQACEQMRAD8AvFERAREQEREBERAREQEREBV/
pJrPjildSUELqydtw7YIEUbhlZ8m7eCFia0tK3hww2lkLHubtVEjfaihO5jTwe7PPgLqJ4OI
4WCOJoa0cuJ5k8SgkDcWxqe5NRS0o4BkZlcByJcbX8Fk08mNRi7a6mqD7ssJjv8AmYcj5LCp
q3qtrTVqDMwrWGGytpsUgNHK42Y8kOglP3ZdwO7I8+CnQKr7E6WKrhfTztDmOHHe08HDkQo1
qq0ykpqp+B1zy7Ye5lPI43yHsxk8i3NvjbkguZERAREQEREBERAREQEREBERAREQEREBERAR
EQFh4viDKeCaok9iKN73fhY0uIHM5LMVda+sQMWEyMBzmkjj67Id2h/9APNBTVLiz5nyVMpv
JM90jvPcB0AAHktvTVvVQXDqk7IHJbemrUZTimreq2lNWqD01atrTVqCcU1b1VM6f1t8Tnli
cQWujsRkRJHHGLjqHNUyxPSFtPEXk3duaObuHkqpnmL3Oe43c4kk8yTcow9haD479Ooaary2
nxjbtwmb3Xi3AbQNuhC3qqf+HOuL6CeE7o5zbwe0H9FbCAiIgIiICIiAiIgIiICIiAiIgIiI
CIiAiIgKvNbOCitdQ07yQwPkkkAyLmsa1oF+Fy4eV1YahGsev7FrntNntppXN42s6Nu1bkC4
HyQU5p3oKKSP6XSXDG2EjCS6zSbB4JztfeoPHWDjkVdmi2JMqjNh8kjpw6Fzmuk2S4syZIxx
aAD7bSMuJ5KisRpTFLLCd7HuZ47JIv8ABBt6Ss2nBrLucdwaC4nwAzWzxCSpp2bTqaVo957S
Gjr/AL2Voar9FYqOkbVSgCWVge97v+XHvDB7uWZ5nwCkcOLUtQ4wB4cXA2a9pAe3js7Qs7yQ
3eYayrfK7akNz8AOQC6FL9ZujAoKu0QtDK3bj+6b2cy/GxsfBwUQQXp/DVL3a1nWM/AhXeqX
/hrj+prXf9Rg6+ySroQEREBERAREQEREBERAREQEREBERAREQEREBVXrZqmCtoYJHbLKmGop

=====================================================
== File: server/mailet/integration-testing/src/main/resources/eml/message-text-only-8bit.eml
=====================================================
Return-Path: &lt;bob@james.org&gt;
MIME-Version: 1.0
Delivered-To: bob@james.org
Received: from 10.233.68.83 (EHLO incoming.james.org) ([10.233.68.83])
          by james-0 (JAMES SMTP Server ) with ESMTP ID -1705393842
          for &lt;bob@james.james.org&gt;;
          Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from smtp.james.org (unknown [10.233.65.0])
	by incoming.james.org (Postfix) with ESMTPS id CCCA943
	for &lt;bob@james.james.org&gt;; Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from [10.116.29.102] (unknown [1.54.162.156])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.james.org (Postfix) with ESMTPSA id 2B7D13F393
	for &lt;bob@james.org&gt;; Wed, 22 Jan 2020 05:11:53 +0100 (CET)
To: bob@james.org
X-LINAGORA-Copy-Delivery-Done: 1
From: Uncle Bob &lt;bob@james.org&gt;
Subject: quoted
Message-ID: &lt;f4d046a8-e563-1e92-dbd9-c5038603e3a2@james.org&gt;
Date: Wed, 22 Jan 2020 11:11:38 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.2.1
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US

A 8bit encoded body with &#x20ac;uro symbol.

=====================================================
== File: server/mailet/integration-testing/src/main/resources/eml/crypted_with_attachment.eml
=====================================================
Return-Path: &lt;sender@localdomain&gt;
MIME-Version: 1.0
Delivered-To: sender@localdomain
Received: from 172.17.0.1 (EHLO [127.0.0.1]) ([172.17.0.1])
          by localdomain (JAMES SMTP Server ) with ESMTP ID 1899632362
          for &lt;sender@localdomain&gt;;
          Thu, 05 Jan 2017 14:37:00 +0000 (UTC)
To: sender@localdomain
From: sender &lt;sender@localdomain&gt;
Subject: with attachment
Message-ID: &lt;6e654951-2131-11df-2949-ce94c5a9f629@localdomain&gt;
Date: Thu, 5 Jan 2017 15:37:00 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.5.1
Content-Type: application/pkcs7-mime; name=&quot;smime.p7m&quot;; smime-type=enveloped-data
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=&quot;smime.p7m&quot;
Content-Description: =?UTF-8?Q?Message_chiffr=c3=a9_S/MIME?=

MIAGCSqGSIb3DQEHA6CAMIACAQAxggKHMIICgwIBADBrMGYxCzAJBgNVBAYTAkZSMQ8wDQYD
VQQIDAZGcmFuY2UxDTALBgNVBAcMBEx5b24xETAPBgNVBAoMCExpbmFnb3JhMQ4wDAYDVQQL
DAVKYW1lczEUMBIGA1UEAwwLbG9jYWxkb21haW4CAQEwDQYJKoZIhvcNAQEBBQAEggIAtA5t
92TBG5Jsqz7C2JNHtV06CwT21xkrjr8muwFBgOAIzIgivVN8Ok5flU8DmqKKv7XOgAnDp9+j
UcS5fFaW1gGpppArIxOmlQdYZYOg+NRUanGbwSHBdL4kAe++oEcD4MI36JIeHj9JZ60dUI5e
8NRcH5r1Nedg43YxC/L/WT2bl1Y0DchXgLs97lfGaC6K3RiSfepN5ZWmE7D1RkjJMeTqx7EY
67apiBp4/JvLhr8+SURtaFmfuW2SXGaRgnANlGzHVwaJvr2IOBxBjxruCbNnw2ifWcwep1rt
6gFxN+9PVaMETu2ra5vf26wr+V739b/yladIFkwQEtKo3teJLI/0OeUHec8Rpz1CA/Eo1unL
mqij4G/u0BoJVSiwJM7ObU/CpJvK4SZ7WKuo9Oz4R9emeDOs2c48ueETwZ+htiN1ibEJ/Joz
tehYMiFOCXdmXEcrJKbz1ZzhfMoZvHx3iSs9s4dQD60U1n/nAbxhq36am1xu+Q1vCnQux3p9
zVGflhGopgYsdF/ewObkZBDiJg9wqP/e2newOXR+N2zUCOUQtRjEyOVrhX6hmj7yWh3npsvb
wbVL3fpaEv0sV5NYVUB6y8SbEC0IjyvYU5HxWBEtRelzNyD0q+UiA9M5InU5p0ODwsz0tCv2
zDgsCBqz58s+Jsn2x3o4e38NZ6DUKTkwgAYJKoZIhvcNAQcBMBQGCCqGSIb3DQMHBAgY++oJ
+tJ9G6CABIIgAI1YI3XeCBqt55XEr8WnaxLB3aTNuAA/S7N78YNEQxT+iglY7GRNRMhF3Hab
Dz12LPycAMlx9dpm69gmnWOUS9/6Td/f+ci9Jw/oJyyBfLmmVhVh5jxusW4h9H01KhZJTYBd
NlqxFtxxdpQ0BunRZO9zBVxui2hxEuKNIF2jH5tIkIctba5fxl83Ot3zJLir+3lXZI8mU/DO
aUqJTrKWEb9suL7Cx8uxCmgWgZDyXRdWyY5SWvHerXu+SCxkorPr/ZF2HnR7BVlooJPAjjpI
GfIBSuB+1p8K0bWtn5v7GCILQYORf9tqEuHxR/f9ywQRK6imQiG5/XUNQyHw3aEed86S+TEM
Za+3uixhuBMIMFVKqihaJLKztbcktrhHN1tqSNV9b4orWwGmzQ/LqdVcI6792uPdDZIf+cIb
5oa6FulJd9y03z0++dtuJ8yOXU2o43nel0kw6CSPiyhopHoGeKGTHNJ2BqvCvI7jRA83Dlxg
/KlCqpWMcU5RL/I5fOjOSHbeU9Ze0p/ozX2ajGR7adNCKHyiBI+D3c4DPGE2zJqi4bIpalJp
AwFWuKnVozbq3TCK2X8OjxZ9AsvhN1dEKbahpCGCg6v4rS0DnRaRMKu7xgzwP1RtOXy8w2nY
5GDVTwbychGrRY2cVLfXwFqYvXmLrSloIxKO1VJf+KM4wl4CirZB9CB71bSJ1E6Mf+5fNB8x
8YtqJzO+7dtS5T99vHY1n7Q/bOSJvCtrSSy8TC97xJxsJDvtpAlYp2dGRjIPuA/Hfiu8Sa8t
OoGWQpUR1YqNB+AnnxaNTz0DasZDROneGndEZY/SzFfCqkUXmkoJQf3FVk8pkcvHTJRbhzqH
bC+reJX1QSpLkT9uLPycb2IcglOdjRkAU2JrIxqqinAVbJ3caTVdZ7+YTb1AxjunFUF5TSrW
y4rhstNBGeoF04x77c1phoAz3QzSXSDW5tTdxlAh807D62iepeLsJMMMBjSjQJ9yCYGfkYyl
1V0u4Ra4aUK9XIjr1OVLw9gg0g9gKZ5KMdI8IQ4BNA7O38xC82cLPvj3OQWSj3+Sf54KTvam
76Iy8LWw0whD/4l13LucUfexOIBY8/tpr7zJpRqwWnpPyWilrQQ22xPtk962B7ugITR6KU/K
oH3NhE67hsW2z9c/2cHt/SD+NiHBN4wvNRUAo0ADJ3wxUEMkEHVPU39Fusi7qw+siD0u7Ys6
4RvdS+wxrbeJN/1ihU2LvwisLbgSlCkVq5J0uSqEqsBAOvw8f9OlNR5BjvbUtv8/eqNr70IA

=====================================================
== File: server/mailet/integration-testing/src/main/resources/eml/message-text-only-7bit.eml
=====================================================
Return-Path: &lt;bob@james.org&gt;
MIME-Version: 1.0
Delivered-To: bob@james.org
Received: from 10.233.68.83 (EHLO incoming.james.org) ([10.233.68.83])
          by james-0 (JAMES SMTP Server ) with ESMTP ID -1705393842
          for &lt;bob@james.james.org&gt;;
          Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from smtp.james.org (unknown [10.233.65.0])
	by incoming.james.org (Postfix) with ESMTPS id CCCA943
	for &lt;bob@james.james.org&gt;; Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from [10.116.29.102] (unknown [1.54.162.156])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.james.org (Postfix) with ESMTPSA id 2B7D13F393
	for &lt;bob@james.org&gt;; Wed, 22 Jan 2020 05:11:53 +0100 (CET)
To: bob@james.org
X-LINAGORA-Copy-Delivery-Done: 1
From: Uncle Bob &lt;bob@james.org&gt;
Subject: quoted
Message-ID: &lt;f4d046a8-e563-1e92-dbd9-c5038603e3a2@james.org&gt;
Date: Wed, 22 Jan 2020 11:11:38 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.2.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

A quoted-printable encoded body with =E2=82=ACuro symbol.

=====================================================
== File: server/mailet/integration-testing/src/main/resources/eml/calendar.eml
=====================================================
Return-Path: &lt;local@localhost.com&gt;
MIME-Version: 1.0
Delivered-To: to@localhost.com
From: User From &lt;fromUser@localhost.com&gt;
Message-ID: &lt;2d0fa16c-4c37-58de-1acc-50b5f6a23a60@localhost.com&gt;
To: User To &lt;toUser@linagora.com&gt;
Date: Wed, 26 Jul 2017 10:34:02 +0200
Subject: Any subject
Content-class: urn:content-classes:calendarmessage
Content-Type: text/calendar; method=REPLY; charset=UTF-8
Content-transfer-encoding: 8BIT

BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
METHOD:REPLY
BEGIN:VEVENT
CREATED:20170726T081145Z
LAST-MODIFIED:20170726T083402Z
DTSTAMP:20170726T083402Z
UID:f1514f44bf39311568d6407249cb76c48103fcd1fb398c3c501cb72b2d293f36e04
 b2aab16e43439a608f28671ab7c10e754cbc85ddee4a07fa8cf8f4f7af05bfb502b8f6

SUMMARY:[A CONFIRMER] Call OVH
PRIORITY:5
ORGANIZER;CN=User;X-OBM-ID=id:mailto:userTo@localhost.com
ATTENDEE;CN=User;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL;X-OBM-ID=810:
 mailto:user1To@linagora.com
DTSTART:20170727T130000Z
DURATION:PT1H
TRANSP:OPAQUE
SEQUENCE:2
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. Rem
 oving entire property:
CLASS:PUBLIC
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:uuid_value
LOCATION:01.78.14.42.61 / 1586
X-OBM-ALERT;X-OBM-ID=486:600
END:VEVENT
END:VCALENDAR


=====================================================
== File: server/mailet/integration-testing/src/main/resources/eml/bad_crypted.eml
=====================================================
Return-Path: &lt;bad@localdomain&gt;
MIME-Version: 1.0
Delivered-To: bad@localdomain
Received: from 172.17.0.1 (EHLO [127.0.0.1]) ([172.17.0.1])
          by HOSTNAME (JAMES SMTP Server ) with ESMTP ID 1133072046
          for &lt;bad@localdomain&gt;;
          Wed, 04 Jan 2017 11:00:49 +0000 (UTC)
To: bad@localdomain
From: bad &lt;bad@localdomain&gt;
Subject: test
Message-ID: &lt;6a568227-58c9-a3bc-f0d4-dd3eeb6bce43@localdomain&gt;
Date: Wed, 4 Jan 2017 12:00:49 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.5.1
Content-Type: application/pkcs7-mime; name=&quot;smime.p7m&quot;; smime-type=enveloped-data
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=&quot;smime.p7m&quot;
Content-Description: =?UTF-8?Q?Message_chiffr=c3=a9_S/MIME?=

MIAGCSqGSIb3DQEHA6CAMIACAQAxggKpMIICpQIBADCBjDCBhjELMAkGA1UEBhMCRlIxDzAN
BgNVBAgMBkZyYW5jZTENMAsGA1UEBwwETHlvbjERMA8GA1UECgwITGluYWdvcmExDjAMBgNV
BAsMBUphbWVzMRQwEgYDVQQDDAtsb2NhbGRvbWFpbjEeMBwGCSqGSIb3DQEJARYPYmFkQGxv
Y2FsZG9tYWluAgEBMA0GCSqGSIb3DQEBAQUABIICAI1UxuCdpInNJ0BRSWReJNkt1N+hX+dr
JrRlFRT2BnLcpzumGtVr9uEYC6JIkgAg3NVMqI7E9LQG260NSoQfKgDkBli/x9S5DJMtvqCz
wlOj3uyMKXK1rRKvLlVm3wJJHsO2n2oMRsDkf8cStshGBYsvMObxENt5n6X7HGsa9oF8KpwD
WPwdjN6OvFIkfRW+v5y6SLrjH4sZUm2kSIAdDgrZym3ELgUrtus0LMklMzpRiUAuqgRKXoga
DmX/7TrbdZrZPjQi7Pe4jc1A2i8m9xQFcctgcn2IbCxAV9o8wHkmMAOh70SOijMI+kNeyh6r
PiLcRH18EWhv/kdWcRX41wEGhV9RFQObH1CyOBoy5LJIkfITggo4qz4Pa1Z25LM5ma3ajHu8
6u2TImH/Dx2szQm3FiQ3+zA3WlRQjnN+TbOPvfx0wl+Ve7jDHC0wkW0L5w3c3esUsH1ftk2b
S8hG1RLK3gBSOF0nKPcG0nK7AF0d2sd7FA71ao4PR4de7LE2tABNVDuMWVggwCYL4pfh77VM
kKH7vhA1YWwn7oAo/3ZWoPOWUSJaHJYbb65APjRQ+yVl3ucwl/ok6vrU+YoQZATIcu+kU56e
ZsaJiFyEmv7j9K3sEtjvwkoAYwf5sQmIbtZo+Dux6IisTFNWDQhGSmjfImuoYQ8kLckj2Wx1
wyv+MIAGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIlSYUQVkU/yqggAR44PWcNvdwIMSxYl/t
ZtCd6BGwHPDRGOKAzsYcRuIWwA2wHQljjqTDiORW7uqVDyiEMDPd2nVXtAbjkZN4sujVbh5q
TNbDUOihMiUn+gXcYq4Go6UD4djqx6K7YT6LIHONtP6zgygeS+EfM/9CaJd/7Z/bfuY4Jcko
BAhb/n3N2DrjfgAAAAAAAAAAAAA=

=====================================================
== File: server/mailet/integration-testing/src/main/resources/eml/yahooInvitation.eml
=====================================================
Return-Path: &lt;do-not-reply@yahoo.com&gt;
Date: 23 Jan 2017 12:16:35 +0000
To: raph.ouazana@linagora.com
From: &quot;OBM Linagora&quot; &lt;obmlinagora@yahoo.fr&gt;
Reply-To: &quot;OBM Linagora&quot; &lt;obmlinagora@yahoo.fr&gt; 
MIME-Version: 1.0
X-Yahoo-Newman-Property: calendar-remind
X-Yahoo-Newman-Id: calendar-remind-87cf88d6-0909-4010-99a4-f156b375adbd
Subject: ***SPAM*** =?UTF-8?Q?Invitation=C3=82=C2=A0:?= Test from Yahoo
Content-Type: multipart/mixed;
        boundary=&quot;_004_CD15A92E9002734AADB6F2075789C4D70108100CB8EDEGLEX07VS01_&quot;
Message-Id: &lt;20170123121641.2505248D3F@obm3-ui.linagora.dc1&gt;


--_004_CD15A92E9002734AADB6F2075789C4D70108100CB8EDEGLEX07VS01_
Content-Type: multipart/alternative;
        boundary=&quot;_000_CD15A92E9002734AADB6F2075789C4D70108100CB8EDEGLEX07VS01_&quot;

--_000_CD15A92E9002734AADB6F2075789C4D70108100CB8EDEGLEX07VS01_
Content-Type: text/plain; charset=&quot;utf-8&quot;
Content-Transfer-Encoding: quoted-printable


--_000_CD15A92E9002734AADB6F2075789C4D70108100CB8EDEGLEX07VS01_
Content-Type: text/html; charset=&quot;utf-8&quot;
Content-Transfer-Encoding: 8bit

&lt;div style=&quot;min-width: 300px; max-width: 585px; padding: 15px 15px 15px 15px; font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 13px; &quot;&gt;

    &lt;table style=&quot;margin: 0px 0px 0px 0px&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
			&lt;tr&gt;
                &lt;td&gt;
&lt;div style=&quot;width:55px;height:55px;border-radius:5px;text-align:center;font-family:Helvetica Neue medium, Helvetica, Arial, sans-serif;color:white;background-color:#400090;&quot;&gt;
                        &lt;div style=&quot;padding-top:5px;line-height:20px&quot;&gt;
                                &lt;div style=&quot;font-size:12px;font-weight:lighter;&quot;&gt;
                                    JANV.
                                &lt;/div&gt;
                                &lt;div style=&quot;font-size:32px;font-weight:bolder;font-family:Helvetica Neue bold, Helvetica, Arial, sans-serif;&quot;&gt;
                                    27
                                &lt;/div&gt;
                        &lt;/div&gt;
				    &lt;/div&gt;
					&lt;/td&gt;
				&lt;td width=&quot;40px&quot; /&gt;
				&lt;td
					style=&quot;font-size: 24px; vertical-align: middle; color: #454545; font-weight: lighter; line-height: 26px;&quot;&gt;
                        
    		&quot;Test from Yahoo&quot;
	                        
			

=====================================================
== File: server/mailet/rate-limiter/extensions.properties
=====================================================
guice.extension.module=org.apache.james.rate.limiter.memory.MemoryRateLimiterModule

=====================================================
== File: server/mailet/rate-limiter/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    image: apache/james:memory-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - $PWD/target/james-server-rate-limiter-jar-with-dependencies.jar:/root/extensions-jars/james-server-rate-limiter.jar
      - $PWD/extensions.properties:/root/conf/extensions.properties
      - $PWD/mailetcontainer.xml:/root/conf/mailetcontainer.xml

=====================================================
== File: server/mailet/rate-limiter/README.adoc
=====================================================
= Rate limiting for Apache James

This maven module provide a James extension allowing one to enforce rate limiting for Apache James email processing.

== Running rate limiting with the memory implementation

 - 1. Compile this project.
 - 2. Place the generated &quot;jar with dependencies&quot; in James `extensions-jars` folder.
 - 3. Configure James to use the memory implementation for Rate Limiting by putting the following content within
`extension.properties`:

----
guice.extension.module=org.apache.james.rate.limiter.memory.MemoryRateLimiterModule
----

 - 4. Use the rate limiting mailets within `mailetcontainer.xml`

We provide a sample `docker-compose` demonstrating this setup.

== Mailets

=== PerSenderRateLimit

*PerSenderRateLimit* allows defining and enforcing rate limits for the sender of matching emails.

This allows writing rules like:

 - A sender can send 10 emails per hour
 - A sender can send email to a total of 20 recipients per hour
 - A sender can send 100 MB of emails (total computed taking only the email size into account) per hour
 - A sender can send 200 MB of emails (total computed taking each recipient copies into account) per hour

Depending on its position and the matcher it is being combined with, those rate limiting rules could be applied to
submitted emails, received emails or emitted email being relayed to third parties.

Here are supported configuration parameters:

 - *keyPrefix*: An optional key prefix to apply to rate limiting. Choose distinct values if you specify
 this mailet twice within your `mailetcontainer.xml` file. Defaults to none.
 - *exceededProcessor*: Processor to which emails whose rate is exceeded should be redirected to. Defaults to error.
 Use this to customize the behaviour upon exceeded rate.
 - *duration*: Duration during which the rate limiting shall be applied. Compulsory, must be a valid duration of at least one second. Supported units includes s (second), m (minute), h (hour), d (day).
 - *precision*: Defines the time precision that will be used to approximate the sliding window. A lower duration increases precision but requests more computing power. The precision must be greater than 1 second. Optional, default to duration means fixed window counters. Supported units includes s (second), m (minute), h (hour), d (day).
 - *count*: Count of emails allowed for a given sender during duration. Optional, if unspecified this rate limit is not applied.
 - *recipients*: Count of recipients allowed for a given sender during duration. Optional, if unspecified this rate limit is not applied.
 - *size*: Size of emails allowed for a given sender during duration (each email count one time, regardless of recipient count). Optional, if unspecified this rate limit is not applied. Supported units : B ( 2^0 ), K ( 2^10 ), M ( 2^20 ), G ( 2^30 ), defaults to B.
 - *totalSize*: Size of emails allowed for a given sender during duration (each recipient of the email email count one time). Optional, if unspecified this rate limit is not applied. Supported units : B ( 2^0 ), K ( 2^10 ), M ( 2^20 ), G ( 2^30 ), defaults to B. Note that
   totalSize is limited in increments of 2exp(31) - ~2 billions: sending a 10MB file to more than 205 recipients will be rejected if this parameter is enabled.



=====================================================
== File: server/mailet/mailets/src/main/resources/managesieve.help.txt
=====================================================
managesieve implements the commands defined by RFC 5804 ((http://tools.ietf.org/html/rfc5804) to manage sieve scripts via mail messages. A mail is sent to the managesieve user with the command and parameters in the subject header. Sieve scripts are exchanged as mail attachments.

Consult your mail administrator for the name of the managesieve user configured for your installation.

Users MUST be SMTP authenticated to execute all except the CAPABILITY and HELP commands (see note (1) below).

Commands are executed and answered within the namespace of the sending user as denoted by the sender header of the mail. Thus, a command such as LISTSCRIPTS lists the scripts within namespace of the user identified by the sender header.

The supported commands are summarised in &quot;Command Summary&quot; below. Generally the responses are self describing. For full details see RFC 5804 - Commands (http://tools.ietf.org/html/rfc5804#section-2).

In these descriptions the following keywords apply:

- sieve-name
    The name of a sieve script enclosed in parentheses, eg: &quot;my script&quot;. An empty name is not allowed.
- active-sieve-name
    As sieve-name, except an empty name, eg: &quot;&quot;, is allowed.
- old-sieve-name
    As sieve-name
- new-sieve-name
    As sieve-name    
- sieve-script
    A mail attachment recognised as a sieve script. This is the first attachment in a mail satisfying any of these characteristics:
        - A MIME type of &quot;application/sieve&quot;
        - A filename with the suffix &quot;.sieve&quot;
        - A filename with the suffix &quot;.siv&quot;
    Returned sieve-scripts always have the MIME type of &quot;application/sieve&quot;

Command Summary
---------------

CAPABILITY
    Subject:
        CAPABILITY
    Attachments: 
        none
Answers the capabilities of the underlying sieve inplementation.

CHECKSCRIPT
    Subject:
        CHECKSCRIPT
    Attachments: 
        sieve-script
Verifies the attached sieve-script without storing it on the server.

DELETESCRIPT
    Subject: 
        DELETESCRIPT sieve-name
    Attachments: 
        none
Deletes the named sieve script.

=====================================================
== File: server/mailet/mailets/src/test/resources/noReplyTo.eml
=====================================================
Return-Path: &lt;root-bounces@listes.apache.org&gt;
Content-Type: multipart/mixed; boundary=&quot;----------=_1433322346-12583-0&quot;
MIME-Version: 1.0
From: &quot;Content-filter at spam.apache.org&quot; &lt;postmaster@apache.org&gt;
Date: Wed, 3 Jun 2015 09:05:46 +0000 (UTC)
To: &lt;root@listes.apache.org&gt;
Message-ID: &lt;VASs-IZaXqmZao@spam.apache.org&gt;
Subject: Original subject
X-BeenThere: root@listes.apache.org
Errors-To: root-bounces@listes.apache.org
Sender: &quot;root&quot; &lt;root-bounces@listes.apache.org&gt;
Reply-To: &lt;&gt;

This is a multi-part message in MIME format...

------------=_1433322346-12583-0
Content-Type: text/plain; charset=&quot;UTF-8&quot;
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

No viruses were found.

Content type: Unchecked
Internal reference code for the message is 12583-16/Ss-IZaXqmZao

According to a 'Received:' trace, the message apparently originated at:
  [198.252.153.129], [127.0.0.1] localhost [127.0.0.1] Authenticated sender:
  quentin.h

Return-Path: &lt;quentin.h@apache.org&gt;
From: Quentin &lt;quentin.h@apache.org&gt;
Message-ID: &lt;556EC361.6000308@apache.org&gt;
Subject: XYZ
Not quarantined.

The message WILL BE relayed to:
&lt;xxx@apache.org&gt;


------------=_1433322346-12583-0
Content-Type: text/rfc822-headers; name=&quot;header&quot;
Content-Disposition: inline; filename=&quot;header&quot;
Content-Transfer-Encoding: 7bit
Content-Description: Message header section

Return-Path: &lt;quentin.h@apache.org&gt;
Message-ID: &lt;556EC361.6000308@apache.org&gt;
Date: Wed, 03 Jun 2015 11:05:37 +0200
From: Quentin &lt;quentin.h@apache.org&gt;
MIME-Version: 1.0

=====================================================
== File: server/mailet/mailets/src/test/resources/spamMail.eml
=====================================================
Return-Path: &lt;root-bounces@listes.minet.net&gt;
Received: from mx1.minet.net (mx1.minet.net [192.168.102.25])
	 by imap (Cyrus v2.4.16-Debian-2.4.16-4+deb7u1) with LMTPA;
	 Wed, 03 Jun 2015 11:05:45 +0200
X-Sieve: CMU Sieve 2.4
Received: from smtp.minet.net (smtp.minet.net [192.168.102.18])
	by mx1.minet.net (Postfix) with ESMTP id F06FE610F72;
	Wed,  3 Jun 2015 11:05:48 +0200 (CEST)
Received: from listes.minet.net (listes.minet.net [192.168.102.29])
	by smtp.minet.net (Postfix) with ESMTP id AAB15610F70;
	Wed,  3 Jun 2015 09:05:48 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=minet.net; s=mail;
	t=1433322348; bh=8OtmVRMX7IWWyQo8WQIi5rKeDEQFghSX2r1WN9/pqUk=;
	h=From:Date:To:Subject:List-Id:List-Unsubscribe:List-Post:List-Help:
	 List-Subscribe:From;
	b=UkthSFXn5mtPnn7sYvDJIxgCk1O36L0p+hTOnI/xTF2WRMGJyXtLyCdFdE5jQ5gE4
	 EGNdhwmfjaKsoE7IDtc/4GrPvbnM8i9ojpSOBW1hXJPOeYnRgah/4gsXsMJWvmmq/A
	 4oTnw8ZswFXiShDmBMyaSEZuVrWTdaPBgUhVhGw8=
Received: from listes.minet.net (listes.minet.net [127.0.0.1])
	by listes.minet.net (Postfix) with ESMTP id 9CD5BA27FF9;
	Wed,  3 Jun 2015 09:05:48 +0000 (UTC)
X-Original-To: root@listes.minet.net
Delivered-To: root@listes.minet.net
Received: from mx1.minet.net (mx1.minet.net [192.168.102.25])
 by listes.minet.net (Postfix) with ESMTP id B8C1FA27FEF
 for &lt;root@listes.minet.net&gt;; Wed,  3 Jun 2015 09:05:46 +0000 (UTC)
Received: from localhost (spam.minet.net [192.168.102.97])
 by mx1.minet.net (Postfix) with ESMTP id AD28B610F6D
 for &lt;root@listes.minet.net&gt;; Wed,  3 Jun 2015 11:05:46 +0200 (CEST)
Content-Type: multipart/mixed; boundary=&quot;----------=_1433322346-12583-0&quot;
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
From: &quot;Content-filter at spam.minet.net&quot; &lt;postmaster@minet.net&gt;
Date: Wed, 3 Jun 2015 09:05:46 +0000 (UTC)
To: &lt;root@listes.minet.net&gt;
Message-ID: &lt;VASs-IZaXqmZao@spam.minet.net&gt;
Subject: Original subject
X-BeenThere: root@listes.minet.net
X-Mailman-Version: 2.1.15
Errors-To: root-bounces@listes.minet.net
Sender: &quot;root&quot; &lt;root-bounces@listes.minet.net&gt;

This is a multi-part message in MIME format...

------------=_1433322346-12583-0
Content-Type: text/plain; charset=&quot;UTF-8&quot;
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

No viruses were found.

=====================================================
== File: server/mailet/mailets/src/test/resources/eml/gmail.eml
=====================================================
Return-Path: &lt;aduprat@linagora.com&gt;
Subject: Fwd: Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
 (CET) (aduprat@linagora.com)
To: =?UTF-8?Q?Beno=c3=aet_TELLIER?=
 &lt;tellier@linagora.com&gt;
From: aduprat &lt;duprat@linagora.com&gt;
X-Forwarded-Message-Id: &lt;001a114380a6a260d105467765ab@google.com&gt;
Message-ID: &lt;f18fa52e-2e9d-1125-327d-2100b23f8a6b@linagora.com&gt;
Date: Thu, 19 Jan 2017 20:36:37 +0100
MIME-Version: 1.0
In-Reply-To: &lt;001a114380a6a260d105467765ab@google.com&gt;
Content-Type: multipart/mixed;
 boundary=&quot;------------17D96D411CBD55D8239A8C1F&quot;

This is a multi-part message in MIME format.
--------------17D96D411CBD55D8239A8C1F
Content-Type: multipart/alternative;
 boundary=&quot;------------64D716A3DDAEC185D3E67448&quot;


--------------64D716A3DDAEC185D3E67448
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit




-------- Message trans&#xe9;r&#xe9; --------
Sujet : 	Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
(CET) (duprat@linagora.com)
Date : 	Thu, 19 Jan 2017 19:18:23 +0000
De : 	Antoine Duprat &lt;duprat@gmail.com&gt;
R&#xc3;&#xa9;pondre &#xc3;  : 	antduprat@gmail.com
Pour : 	aduprat@linagora.com




--------------64D716A3DDAEC185D3E67448
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

&lt;html&gt;
  &lt;head&gt;

    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
  &lt;/head&gt;
  &lt;body bgcolor=&quot;#FFFFFF&quot; text=&quot;#000000&quot;&gt;
    &lt;p&gt;&lt;br&gt;
    &lt;/p&gt;

=====================================================
== File: server/mailet/mock-smtp-server/README.adoc
=====================================================
= James Mock SMTP server

This is our custom made Mock SMTP server that we use for some of our tests in James.

== Dockerized Mock SMTP server

Compile and build the image into a tarball with maven:

    $ mvn compile jib:buildTar

*Note* : You can add the option '-DskipTests' if you want to skip tests

After Jib created the image, you can load it into Docker with:

    $ docker load --input target/jib-image.tar

You can alternatively directly build your image directly to a Docker daemon. To to so:

    $ mvn compile jib:dockerBuild

Then run it with:

    $ docker run --rm -p 25:25 -p 8000:8000 linagora/mock-smtp-server

Where ports:

* 25 : SMTP
* 8000 : HTTP interface for setting mock SMTP server behavior

Then you can use the http endpoints. Let's demonstrate them via the standard unix `curl` command.

Right after startup, the server should have no emails, no behaviors.

----
$ curl -X GET localhost:8000/smtpBehaviors
[]
$ curl -X GET localhost:8000/smtpMails
[]
$ curl -X GET localhost:8000/smtpMailsCount
0
$
----

Given you send an email on port 25, the counter updates to 1 and you're able to observe the email
via the smtpMails endpoint.

----
$ cat mail.txt
From: Alice
To: Bob

=====================================================
== File: server/mailet/mock-smtp-server/src/main/jib/logback.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration&gt;

        &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} %highlight([%-5level]) %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                        &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;

        &lt;root level=&quot;WARN&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
        &lt;/root&gt;

        &lt;logger name=&quot;org.apache.james.mock.smtp.server&quot; level=&quot;DEBUG&quot;/&gt;
        &lt;logger name=&quot;org.subethamail.smtp&quot; level=&quot;DEBUG&quot;/&gt;

&lt;/configuration&gt;

=====================================================
== File: server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConfigurationClientTest.java
=====================================================
/****************************************************************
 * Licensed to the Apache Software Foundation (ASF) under one   *
 * or more contributor license agreements.  See the NOTICE file *
 * distributed with this work for additional information        *
 * regarding copyright ownership.  The ASF licenses this file   *
 * to you under the Apache License, Version 2.0 (the            *
 * &quot;License&quot;); you may not use this file except in compliance   *
 * with the License.  You may obtain a copy of the License at   *
 *                                                              *
 *   http://www.apache.org/licenses/LICENSE2.0                 *
 *                                                              *
 * Unless required by applicable law or agreed to in writing,   *
 * software distributed under the License is distributed on an  *
 * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
 * KIND, either express or implied.  See the License for the    *
 * specific language governing permissions and limitations      *
 * under the License.                                           *
 ****************************************************************/

package org.apache.james.mock.smtp.server;

import static org.apache.james.mock.smtp.server.Fixture.BEHAVIOR_LIST;
import static org.assertj.core.api.Assertions.assertThat;

import org.apache.james.core.MailAddress;
import org.apache.james.mock.smtp.server.Fixture.MailsFixutre;
import org.apache.james.mock.smtp.server.model.Mail;
import org.apache.james.mock.smtp.server.model.SMTPExtension;
import org.apache.james.mock.smtp.server.model.SMTPExtensions;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.testcontainers.shaded.com.google.common.collect.ImmutableList;

class ConfigurationClientTest {
    private ConfigurationClient testee;
    private HTTPConfigurationServer.RunningStage server;
    private SMTPBehaviorRepository behaviorRepository;
    private ReceivedMailRepository mailRepository;

    @BeforeEach
    void setUp() {
        behaviorRepository = new SMTPBehaviorRepository();
        mailRepository = new ReceivedMailRepository();
        server = HTTPConfigurationServer.onRandomPort(behaviorRepository, mailRepository)
            .start();

        testee = ConfigurationClient.fromServer(server);
    }


=====================================================
== File: server/container/filesystem-api/src/test/resources/classpathTest.txt
=====================================================
Non empty

=====================================================
== File: server/container/filesystem-api/src/test/resources/class path Test.txt
=====================================================
Non empty

=====================================================
== File: server/container/core/src/test/resources/JAMES-1593.eml
=====================================================
Return-Path: &lt;c@yahoo.com&gt;
Received: from 10.6.1.81 (EHLO ws1.comp.us/127.0.0.1) ([10.6.1.81])
          by ws1.comp.us (JAMES SMTP Server ) with ESMTP ID 273836343
          for &lt;s@yahoo.com&gt;;
          Fri, 10 Jul 2015 19:30:01 +0000 (UTC)
Delivered-To: d@f.com
Received: from 10.6.1.53 (EHLO egate3.comp.us) ([10.6.1.53])
          by ws1.comp.us (JAMES SMTP Server ) with ESMTP ID 18268234
          for &lt;d@f.com&gt;;
          Wed, 08 Jul 2015 19:35:41 +0000 (UTC)
Received: from nm2-vm2.bullet.mail.ne1.yahoo.com (nm2-vm2.bullet.mail.ne1.yahoo.com [98.138.91.18])
	(using TLSv1 with cipher RC4-SHA (128/128 bits))
	(No client certificate requested)
	by egate3.comp.us (Postfix) with ESMTPS id 5CA816007B
	for &lt;d@f.com&gt;; Wed,  8 Jul 2015 19:35:28 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1436384127; bh=FSXIN3+naGGGcYCXqSW4VRdVxpAgX6l36HzbsAmcUMs=; h=To:Date:From:Subject:From:Subject; b=aoCPczTdZENebjurWW5X8+IOGzgTp2AJ2TF0Cg5Zr0wCGPnNa3pzLN7XtpcCkQAaHpzpvSn/WLxVosJiV9ylnDyFTJg/i+ik1937k2LTaCP7Dc9bjqLSrZAjFd+u2YalXanSOXrKIz6L05xrwEeIgBV+IvarvleEZ4/mSRtAwKJJ2w8nZOKX1hxJ1uN/rYMUAhNaNnafHKZ9ZTj6Bb2PWQLKylHy98dq48PJYOe757Ns3I5DhxyS1swVvuNv7ROj1ix+wIK5vgchMliF5C50IAF4HZ9GZwlBCSUUV6C0fiyp7p2MbtDO1cdNGzUUAyrSt9UiwBX/OyIkPcya7Bzxjg==
Received: from [98.138.226.176] by nm2.bullet.mail.ne1.yahoo.com with NNFMP; 08 Jul 2015 19:35:27 -0000
Received: from [98.138.226.56] by tm11.bullet.mail.ne1.yahoo.com with NNFMP; 08 Jul 2015 19:35:27 -0000
Received: from [127.0.0.1] by smtp207.mail.ne1.yahoo.com with NNFMP; 08 Jul 2015 19:35:27 -0000
X-Yahoo-Newman-Id: 948689.21253.bm@smtp207.mail.ne1.yahoo.com
Message-ID: &lt;948689.21253.bm@smtp207.mail.ne1.yahoo.com&gt;
X-Yahoo-Newman-Property: ymail-5
X-YMail-OSG: PKdW3f0VM1mqo5bJtNcAn9nrmSrO6somPjt3dkTFZefq.k9
 8mtErk2hfr0pzo.g4.3D1TYDy1yPA52CEt1K7yWtY4G54.wVaqrTbNsp1SHi
 YOVrR_WNprH82OItTUXOWs4b6tIZjrnQwhvgiYNQ0v0y.5mavYexI7V7vHjE
 AQau2gFnHDMI4VkGKk5VtkVYo7m9kyLljxFn6JBpDfm2BHCQ6nB44vr_KEGb
 fu4siLPPBgE3DD2x1jPSgZuePniFPh94ohDe_ZDsbYXPM4Fy1udmEuial5Me
 lrgOmh8mjeybAFdj_y4kbpHb.xjlxg_AgrZEY5LjdL2_xp8JljEZyvKo5ccA
 CTVQSOEe5m8qlhRIWMGLqqp3DLOBwgQ4lKfOXyt3.MaFgClF1yPm5aSFxG.g
 O52rSXRe9QwcFLgeLk3U6h2fuUGnH4Ejw75ni0rPKFEBQn9y0X3vVtjgQPbc
 K3fZUXI48vD3IjhR4ZdnoRfuJDmdgjmV_MbGVQ_IglrFNWe5dKb0WmCr455A
 E.B_E_RcROdsq06R72Be7Nap1ySUo
X-Yahoo-SMTP: P5ZpI6KswBDOCixizgOFZTojz9DhLg.Dm91rJ0th
To: &lt;d@f.com&gt;
Date: Wed, 8 Jul 2015 12:35:24 -0700
From: =?UTF-8?B?QmV2ZXJseSBIaWxscyBNRA0==?=  &lt;c@yahoo.com&gt;
Subject: =?ISO-8859-1?Q?How=20to=20lift=20saggy=20skin,=20without=20surgery=20(Video)?=
Msg-Id: &lt;993367577.OlyOp7onoD1vcPAHU+z/IXX2rD.secm@nycaptrentals.com&gt;
MIME-Version: 1.0
Content-Type: multipart/alternative;
              boundary=&quot;----=_NextPart_000_0000_047F21AD.5CEFB1C0&quot;
Content-Transfer-Encoding: &quot;base64&quot;
X-comp-Information: Please contact administrator@comp.com for more information
X-comp-ID: 5CA816007B.A1BA5
X-comp-general: Clean
X-comp-SpamCheck: spam, SpamAssassin (not cached, score=12.4,
	required 3, autolearn=disabled, BASE64_LENGTH_79_INF 2.02,
	BODY_URI_ONLY 1.00, DKIM_ADSP_CUSTOM_MED 0.00, DKIM_SIGNED 0.10,
	FREEMAIL_FROM 0.00, FROM_EXCESS_BASE64 0.10, HTML_IMAGE_ONLY_12 1.63,
	HTML_MESSAGE 0.00, HTML_SHORT_LINK_IMG_1 0.14, MIME_HTML_MOSTLY 0.00,

=====================================================
== File: server/container/core/src/test/resources/mail-containing-unicode-characters.eml
=====================================================
Return-Path: &lt;bob@james.org&gt;
MIME-Version: 1.0
Delivered-To: bob@james.org
Received: from 10.233.68.83 (EHLO incoming.james.org) ([10.233.68.83])
          by james-0 (JAMES SMTP Server ) with ESMTP ID -1705393842
          for &lt;bob@james.james.org&gt;;
          Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from smtp.james.org (unknown [10.233.65.0])
	by incoming.james.org (Postfix) with ESMTPS id CCCA943
	for &lt;bob@james.james.org&gt;; Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from [10.116.29.102] (unknown [1.54.162.156])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.james.org (Postfix) with ESMTPSA id 2B7D13F393
	for &lt;bob@james.org&gt;; Wed, 22 Jan 2020 05:11:53 +0100 (CET)
To: bob@james.org
X-LINAGORA-Copy-Delivery-Done: 1
From: Uncle Bob &lt;bob@james.org&gt;
Subject: quoted
Message-ID: &lt;f4d046a8-e563-1e92-dbd9-c5038603e3a2@james.org&gt;
Date: Wed, 22 Jan 2020 11:11:38 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.2.1
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US

Unicode &#x20ac;uro symbol.

=====================================================
== File: server/container/guice/memory/README.md
=====================================================
# James Memory server

In order to build both the ZIP and docker packaging, run:

```
mvn clean install -DskipTests
```

## ZIP distribution

Available in `target` directory, the ZIP include detailed instructions.

## Docker distribution

To import the image locally:

```
docker image load -i target/jib-image.tar
```

Then run it:

```
docker run apache/james:memory-latest
```


For security reasons you are required to generate your own keystore, that you can mount into the container via a volume:

```
keytool -genkey -alias james -keyalg RSA -keystore keystore
docker run -v $PWD/keystore:/root/conf/keystore apache/james:cassandra-latest
```

Use the [JAVA_TOOL_OPTIONS environment option](https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#jvm-flags) 
to pass extra JVM flags. For instance:

```
docker run -e &quot;JAVA_TOOL_OPTIONS=-Xmx500m -Xms500m&quot; apache/james:memory-latest
```

[Glowroot APM](https://glowroot.org/) is packaged as part of the docker distribution to easily enable valuable performances insights.
Disabled by default, its java agent can easily be enabled:

```
docker run -e &quot;JAVA_TOOL_OPTIONS=-javaagent:/root/glowroot.jar&quot; apache/james:memory-latest
```
The [CLI](https://james.apache.org/server/manage-cli.html) can easily be used:

```

=====================================================
== File: server/container/guice/configuration/src/test/resources/b.properties
=====================================================
prop=value2

=====================================================
== File: server/container/guice/configuration/src/test/resources/a.properties
=====================================================
prop=value1
keyByList=value1, value2, value3, value4, value5
thisIsEmpty=

=====================================================
== File: server/container/guice/configuration/src/test/resources/env.properties
=====================================================
keyByEnv=${env:PROPERTIES_PROVIDER_ENV_VARIABLES}

=====================================================
== File: server/container/guice/common/src/test/resources/eml/mail-containing-unicode-characters.eml
=====================================================
Return-Path: &lt;bob@james.org&gt;
MIME-Version: 1.0
Delivered-To: bob@james.org
Received: from 10.233.68.83 (EHLO incoming.james.org) ([10.233.68.83])
          by james-0 (JAMES SMTP Server ) with ESMTP ID -1705393842
          for &lt;bob@james.james.org&gt;;
          Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from smtp.james.org (unknown [10.233.65.0])
	by incoming.james.org (Postfix) with ESMTPS id CCCA943
	for &lt;bob@james.james.org&gt;; Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from [10.116.29.102] (unknown [1.54.162.156])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.james.org (Postfix) with ESMTPSA id 2B7D13F393
	for &lt;bob@james.org&gt;; Wed, 22 Jan 2020 05:11:53 +0100 (CET)
To: bob@james.org
X-LINAGORA-Copy-Delivery-Done: 1
From: Uncle Bob &lt;bob@james.org&gt;
Subject: quoted
Message-ID: &lt;f4d046a8-e563-1e92-dbd9-c5038603e3a2@james.org&gt;
Date: Wed, 22 Jan 2020 11:11:38 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.2.1
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US

Unicode &#x20ac;uro symbol.

=====================================================
== File: server/container/guice/common/src/test/resources/test.properties
=====================================================
# Configuration file for cassandra mailbox

cassandra.nodes=127.0.0.1:9142
cassandra.keyspace=apache_james
cassandra.replication.factor=1

=====================================================
== File: server/container/guice/protocols/webadmin/src/test/resources/webadmin-two.properties
=====================================================
extensions.routes=org.apache.custom.webadmin.CustomRoute,org.apache.custom.webadmin.AnotherCustomRoute

=====================================================
== File: server/container/guice/protocols/webadmin/src/test/resources/webadmin-one.properties
=====================================================
extensions.routes=org.apache.custom.webadmin.CustomRoute

=====================================================
== File: server/container/guice/protocols/webadmin/src/test/resources/webadmin-empty.properties
=====================================================
extensions.routes=

=====================================================
== File: server/container/guice/protocols/webadmin/src/test/resources/webadmin-none.properties
=====================================================

=====================================================
== File: server/container/guice/utils/src/test/resources/extensions-empty.properties
=====================================================
guice.extension.module=

=====================================================
== File: server/container/guice/utils/src/test/resources/extensions-two.properties
=====================================================
guice.extension.module=org.apache.custom.extensions.CustomExtension,org.apache.custom.extension.AnotherCustomExtension

=====================================================
== File: server/container/guice/utils/src/test/resources/extensions-none.properties
=====================================================

=====================================================
== File: server/container/guice/utils/src/test/resources/extensions-one.properties
=====================================================
guice.extension.module=org.apache.custom.extensions.CustomExtension

=====================================================
== File: server/container/guice/testing/custom-mailets/README.md
=====================================================
# How to

This project is used to generate custom mailet / matcher used in unit tests of the underlying Guice project.

This associated JAR is in the test resources.

Run:

```
mvn clean install
```

And overwrite it in *server/container/guice/mailet/src/test/resources/recursive/extensions-jars/\*.jar* to update it.

=====================================================
== File: server/container/guice/cassandra/src/test/resources/modules/mailbox/cassandra.properties
=====================================================
mailbox.max.retry.acl=1
mailbox.max.retry.modseq=2
mailbox.max.retry.uid=3
mailbox.max.retry.message.flags.update=4
mailbox.max.retry.message.id.flags.update=5
fetch.advance.row.count=6
chunk.size.message.read=7
chunk.size.expunge=8
mailbox.blob.part.size=9
attachment.v2.migration.read.timeout=10
message.attachmentids.read.timeout=11

=====================================================
== File: server/container/mailbox-jmx/src/test/resources/eml/frnog.eml
=====================================================
Message-ID: &lt;556D7ED7.2090108&gt;
Date: Tue, 2 Jun 2015 12:00:55 +0200
From: sender &lt;sender@domain.com&gt;
MIME-Version: 1.0
To: &lt;list@james.org&gt;
Content-Type: text/plain; charset=&quot;utf-8&quot;; format=flowed
Content-Transfer-Encoding: 8bit

Bonjour


Je cherche un partenaire.

Merci d'avance !


Cordialement,

=====================================================
== File: server/data/data-library/src/test/resources/sieve/my_sieve
=====================================================
require [&quot;reject&quot;];

if size :over 100K {
   reject &quot;Email too big&quot;;
}

=====================================================
== File: server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
=====================================================
Feature: Rewrite Tables tests

  @readonly
  Scenario: rewrite tables should be empty when none defined
    Then mappings should be empty

# Regexp mapping

  Scenario: stored regexp mapping should be retrieved when one mapping matching
    Given store &quot;(.*)@localhost:user@localhost&quot; regexp mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    Then mappings for user &quot;test&quot; at domain &quot;localhost&quot; should contain only &quot;user@localhost&quot;

  Scenario: stored regexp mapping should be retrieved when two mappings matching
    Given store &quot;(.*)@localhost:user@localhost&quot; regexp mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    And store &quot;tes(.+)@localhost:user2@localhost&quot; regexp mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    Then mappings for user &quot;test&quot; at domain &quot;localhost&quot; should contain only &quot;user@localhost, user2@localhost&quot;

  Scenario: stored regexp mapping should not be retrieved by another user
    Given store &quot;(.*)@localhost:user@localhost&quot; regexp mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    And store &quot;tes(.+)@localhost:user2@localhost&quot; regexp mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    Then mappings for user &quot;test2&quot; at domain &quot;localhost&quot; should be empty

  Scenario: removing a stored regexp mapping should work
    Given store &quot;(.*)@localhost:user@localhost&quot; regexp mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    And store &quot;tes(.+)@localhost:user2@localhost&quot; regexp mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    When user &quot;test&quot; at domain &quot;localhost&quot; removes a regexp mapping &quot;tes(.+)@localhost:user2@localhost&quot;
    Then mappings for user &quot;test&quot; at domain &quot;localhost&quot; should contain only &quot;user@localhost&quot;

  Scenario: storing an invalid regexp mapping should not work
    When store an invalid &quot;.*):&quot; regexp mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    Then a &quot;InvalidRegexException&quot; exception should have been thrown

  Scenario: storing a wrong formatted regexp mapping should not be retrieved
    Given store &quot;(.*)@localhost&quot; regexp mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    Then mappings for user &quot;test&quot; at domain &quot;localhost&quot; should be empty

  Scenario: chained stored regexp mapping should be retrieved when two levels
    Given store &quot;(.*)@localhost:user@localhost&quot; regexp mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    And store &quot;use(.+)@localhost:final@localhost&quot; regexp mapping for user &quot;user&quot; at domain &quot;localhost&quot;
    Then mappings for user &quot;test&quot; at domain &quot;localhost&quot; should contain only &quot;final@localhost&quot;

# Address mapping

  Scenario: stored address mapping should be retrieved when one mapping matching
    Given store &quot;test@localhost2&quot; address mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    Then mappings for user &quot;test&quot; at domain &quot;localhost&quot; should contain only &quot;test@localhost2&quot;

  Scenario: stored address mapping should be retrieved when two mappings matching
    Given store &quot;test@localhost2&quot; address mapping for user &quot;test&quot; at domain &quot;localhost&quot;
    And store &quot;test@james&quot; address mapping for user &quot;test&quot; at domain &quot;localhost&quot;

=====================================================
== File: server/data/data-ldap/src/test/resources/usersrepository-enableVirtualHosting.xml
=====================================================
&lt;usersrepository name=&quot;LocalUsers&quot; class=&quot;org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository&quot;
                 ldapHost=&quot;ldap://myldapserver:389&quot;
                 principal=&quot;uid=ldapUser,ou=system&quot;
                 credentials=&quot;password&quot;
                 userBase=&quot;ou=People,o=myorg.com,ou=system&quot;
                 userIdAttribute=&quot;uid&quot;
                 userObjectClass=&quot;person&quot;&gt;
    &lt;enableVirtualHosting&gt;true&lt;/enableVirtualHosting&gt;
&lt;/usersrepository&gt;

=====================================================
== File: server/data/data-ldap/src/test/resources/invalid/ldif-files/populate.ldif
=====================================================
dn: ou=people, dc=james,dc=org
ou: people
objectClass: organizationalUnit

dn: uid=james-user, ou=people, dc=james,dc=org
objectClass: inetOrgPerson
uid: james-user
cn: james-user
sn: james-user
userPassword: secret
description: James user

=====================================================
== File: server/data/data-ldap/src/test/resources/localpartLogin/ldif-files/populate.ldif
=====================================================
dn: ou=people, dc=james,dc=org
ou: people
objectClass: organizationalUnit

dn: ou=empty, dc=james,dc=org
ou: empty
objectClass: organizationalUnit

dn: ou=whatever, dc=james,dc=org
ou: whatever
objectClass: organizationalUnit

dn: uid=james-user, ou=people, dc=james,dc=org
objectClass: inetOrgPerson
uid: james-user
cn: james-user
sn: james-user
mail: james-user@james.org
userPassword: secret
description: James user

dn: uid=james-user-app1, ou=people, dc=james,dc=org
objectClass: inetOrgPerson
uid: james-user-app1
cn: james-user
sn: james-user
mail: james-user@james.org
userPassword: secret
description: James user App 1

dn: uid=james-user-app2, ou=people, dc=james,dc=org
objectClass: inetOrgPerson
uid: james-user-app2
cn: james-user
sn: james-user
mail: james-user@james.org
userPassword: secret
description: James user App 2

dn: uid=alice, ou=people, dc=james,dc=org
objectClass: inetOrgPerson
uid: alice
cn: alice-cn
sn: alice-sn
mail: alice@james.org
userPassword: secret
description: Alice user

dn: uid=alice-app1, ou=people, dc=james,dc=org
objectClass: inetOrgPerson

=====================================================
== File: server/data/data-ldap/src/test/resources/ldif-files/populate.ldif
=====================================================
dn: ou=people, dc=james,dc=org
ou: people
objectClass: organizationalUnit

dn: ou=empty, dc=james,dc=org
ou: empty
objectClass: organizationalUnit

dn: ou=whatever, dc=james,dc=org
ou: whatever
objectClass: organizationalUnit

dn: uid=james-user, ou=people, dc=james,dc=org
objectClass: inetOrgPerson
uid: james-user
cn: james-user
sn: james-user
mail: james-user@james.org
userPassword: secret
description: James user

dn: uid=bob, ou=whatever, dc=james,dc=org
objectClass: inetOrgPerson
uid: bob
cn: bob
sn: bob
mail: bob@extra.org
userPassword: secret
description: bob user

=====================================================
== File: server/data/data-ldap/src/test/resources/usersrepository-supportsVirtualHosting.xml
=====================================================
&lt;usersrepository name=&quot;LocalUsers&quot; class=&quot;org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository&quot;
                 ldapHost=&quot;ldap://myldapserver:389&quot;
                 principal=&quot;uid=ldapUser,ou=system&quot;
                 credentials=&quot;password&quot;
                 userBase=&quot;ou=People,o=myorg.com,ou=system&quot;
                 userIdAttribute=&quot;uid&quot;
                 userObjectClass=&quot;person&quot;&gt;
    &lt;supportsVirtualHosting&gt;true&lt;/supportsVirtualHosting&gt;
&lt;/usersrepository&gt;

=====================================================
== File: server/data/data-ldap/src/test/resources/usersrepository-default.xml
=====================================================
&lt;usersrepository name=&quot;LocalUsers&quot; class=&quot;org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository&quot;
                 ldapHost=&quot;ldap://myldapserver:389&quot;
                 principal=&quot;uid=ldapUser,ou=system&quot;
                 credentials=&quot;password&quot;
                 userBase=&quot;ou=People,o=myorg.com,ou=system&quot;
                 userIdAttribute=&quot;uid&quot;
                 userObjectClass=&quot;person&quot;&gt;
&lt;/usersrepository&gt;

=====================================================
== File: server/data/data-jpa/src/test/resources/log4j.properties
=====================================================
log4j.rootLogger=WARN, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

=====================================================
== File: server/data/data-file/src/test/resources/org/apache/james/mailrepository/testdata/Inbox
=====================================================
From - Sat Sep 16 14:01:26 2006
X-Account-Key: account4
X-UIDL: Mail1158408075937-0
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Message-ID: &lt;12617107.11158408076390.JavaMail.maurer@byteacti-757792&gt;
MIME-Version: 1.0
Return-Path: &lt;nm@localhost&gt;
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Delivered-To: test@localhost
Received: from localhost ([127.0.0.1])
          by byteacti-757792 (JAMES SMTP Server 3.0-dev) with SMTP ID 842
          for &lt;test@localhost&gt;;
          Sat, 16 Sep 2006 14:01:14 +0200 (CEST)
Date: Sat, 16 Sep 2006 14:01:14 +0200 (CEST)
From: nm@localhost
invalid
test: test
test



From - Sat Sep 16 14:02:40 2006
X-Account-Key: account4
X-UIDL: Mail1158408158171-1
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Message-ID: &lt;3534544.31158408158203.JavaMail.maurer@byteacti-757792&gt;
MIME-Version: 1.0
Return-Path: &lt;nm@localhost&gt;
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Delivered-To: test@localhost
Received: from localhost ([127.0.0.1])
          by byteacti-757792 (JAMES SMTP Server 3.0-dev) with SMTP ID 317
          for &lt;test@localhost&gt;;
          Sat, 16 Sep 2006 14:02:38 +0200 (CEST)
Date: Sat, 16 Sep 2006 14:02:38 +0200 (CEST)
From: nm@localhost
testmail
test: test

test


=====================================================
== File: server/data/data-jmap/src/test/java/org/apache/james/jmap/api/upload/UploadUsageRepositoryContract.scala
=====================================================
package org.apache.james.jmap.api.upload

import org.apache.james.core.Username
import org.apache.james.core.quota.QuotaSizeUsage
import org.apache.james.jmap.api.upload.UploadUsageRepositoryContract.USER_NAME
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
import reactor.core.publisher.Mono
import reactor.core.scala.publisher.SMono

object UploadUsageRepositoryContract {
  val USER_NAME = Username.of(&quot;james@abc.com&quot;)
}

trait UploadUsageRepositoryContract {
  def uploadUsageRepository: UploadUsageRepository

  def resetCounterToZero(): Unit = {
    Mono.from(uploadUsageRepository.resetSpace(USER_NAME, QuotaSizeUsage.size(0))).block
  }

  @Test
  def increaseSpaceShouldIncreaseSuccessfully(): Unit = {
    SMono.fromPublisher(uploadUsageRepository.increaseSpace(USER_NAME, QuotaSizeUsage.size(100))).block()
    val expected = SMono.fromPublisher(uploadUsageRepository.getSpaceUsage(USER_NAME)).block()
    assertThat(expected.asLong()).isEqualTo(100)
  }

  @Test
  def decreaseSpaceShouldDecreaseSuccessfully(): Unit = {
    SMono.fromPublisher(uploadUsageRepository.increaseSpace(USER_NAME, QuotaSizeUsage.size(200))).block()
    SMono.fromPublisher(uploadUsageRepository.decreaseSpace(USER_NAME, QuotaSizeUsage.size(100))).block()
    val expected = SMono.fromPublisher(uploadUsageRepository.getSpaceUsage(USER_NAME)).block()
    assertThat(expected.asLong()).isEqualTo(100)
  }

  @Test
  def resetSpaceShouldResetSuccessfully(): Unit = {
    SMono.fromPublisher(uploadUsageRepository.increaseSpace(USER_NAME, QuotaSizeUsage.size(200))).block()
    SMono.fromPublisher(uploadUsageRepository.resetSpace(USER_NAME, QuotaSizeUsage.size(99))).block()
    val expected = SMono.fromPublisher(uploadUsageRepository.getSpaceUsage(USER_NAME)).block()
    assertThat(expected.asLong()).isEqualTo(99)
  }

  @Test
  def getSpaceUsageShouldReturnZeroWhenRecordDoesNotExist(): Unit = {
    assertThat(SMono.fromPublisher(uploadUsageRepository.getSpaceUsage(Username.of(&quot;aaa&quot;))).block().asLong()).isEqualTo(0)
  }

}

=====================================================
== File: server/grafana-reporting/prometheus-datasource/README.md
=====================================================
# Dashboards for James on top of Prometheus / Grafana

The boards are slightly different than what we used to do with ES reporter, as we 
count now on Prometheus to scrap metrics from the /metrics endpoint exposed from James.

This is just a rough conversion for starters, it will likely need more refining over time.

# Grafana reporting

This is a collection of Grafana dashboards to display James metrics.

## Expose metrics for Prometheus collection

To enable James metrics, add ``extensions.routes`` to [webadmin.properties]( https://github.com/apache/james-project/blob/master/server/apps/distributed-app/docs/modules/ROOT/pages/configure/webadmin.adoc) file:
```
extensions.routes=org.apache.james.webadmin.dropwizard.MetricsRoutes
```

## Configure Prometheus Data source
You need to set up [Prometheus](https://prometheus.io/docs/prometheus/latest/getting_started/) first to scrape James metrics.\
Add Apache James WebAdmin Url or IP address to `prometheus.yaml` configuration file.

```
scrape_configs:
  # The job name is added as a label `job=&lt;job_name&gt;` to any timeseries scraped from this config.
  - job_name: 'WebAdmin url Example'
    scrape_interval: 5s
    metrics_path: /metrics
    static_configs:
      - targets: ['james-webamin-url']
  - job_name: 'WebAdmin IP Example'
    scrape_interval: 5s
    metrics_path: /metrics
    static_configs:
      - targets: ['192.168.100.10:8000']      
```   
For Kubernetes deployment, we recommend using Prometheus `ServiceMonitor` to collect James metrics through James Webadmin service. Please see our James Helm-chart for more information.

## Connect Data source to Grafana

Add Prometheus data source to Grafana.\
You can do this either from [Grafana UI](https://prometheus.io/docs/visualization/grafana/) or from a [configuration file](https://grafana.com/docs/grafana/latest/datasources/prometheus/). 

The following `docker-compose.yaml` will help you install a simple Prometheus/ Grafana stack :

```
version: '3'
#Metric monitoring
  grafana:
    image: grafana/grafana:latest

=====================================================
== File: server/grafana-reporting/es-datasource/README.md
=====================================================
# Grafana reporting

This is a collection of Grafana dashboards to display James metrics.

## Run Grafana 

The following command allow you to run a fresh grafana server :

```
docker run -i -p 3000:3000 grafana/grafana
```

## Configure a data source
Once running, you need to set up an [ElasticSearch data-source](https://grafana.com/docs/grafana/latest/datasources/elasticsearch/).
You can do this either from UI or from a configuration file.

## Setting up via UI
 - name it DS_JAMES_ES
 - select proxy mode
 - Select version 6.x of ElasticSearch
 - make the URL point your ES node
 - Specify the index name. By default, it should be :

```
[james-metrics-]YYYY-MM
```

## Setting up using a configuration file

Look up file grafana-datasource.yaml from Grafana and add following data source into it:

```
apiVersion: 1

datasources:
  - name: DS_JAMES_ES
    type: elasticsearch
    access: proxy
    database: &quot;[james-metrics-]YYYY-MM&quot;
    url: http://elasticsearch:9200
    version: 6
    editable: true
    jsonData:
      interval: Daily
      timeField: &quot;@timestamp&quot;
```

## Getting dashboards

Import the different dashboard JSON files in this directory to Grafana via UI

=====================================================
== File: mailet/icalendar/src/test/resources/ics_in_header.eml
=====================================================
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary=&quot;----=_Part_80_888179120.1536742699653&quot;
From: Alice &lt;alice@linagora.com&gt;
Message-ID: &lt;82eb227b-d3e1-3d7a-3220-8a1b4e96a85b@linagora.com&gt;
To: Bob &lt;bob@linagora.com&gt;
Date: Wed, 12 Sep 2018 10:58:18 +0200
Subject: Event Invitation Reply (Accepted):
 Point Produit

------=_Part_80_888179120.1536742699653
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
METHOD:REPLY
BEGIN:VEVENT
CREATED:20180911T144134Z
LAST-MODIFIED:20180912T085818Z
DTSTAMP:20180912T085818Z
UID:f1514f44bf39311568d64072945fc3b2973debebb0d550e8c841f3f0604b2481e047fe
 b2aab16e43439a608f28671ab7c10e754cbbe63441a01ba232a553df751eb0931728d67672
 
SUMMARY:Point Produit
PRIORITY:5
ORGANIZER;CN=Bob;X-OBM-ID=348:mailto:bob@linagora.com
ATTENDEE;CN=Alice;PARTSTAT=ACCEPTED;CUTYPE=INDIVIDUAL;X-OBM-ID=810:
 mailto:alice@linagora.com
DTSTART:20180919T123000Z
DURATION:PT1H
TRANSP:OPAQUE
SEQUENCE:0
X-LIC-ERROR;X-LIC-ERRORTYPE=VALUE-PARSE-ERROR:No value for X property. Rem
 oving entire property:
CLASS:PUBLIC
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:02874f7c-d10e-102f-acda-0015176f7922
LOCATION:T&#xc3;&#xa9;l&#xc3;&#xa9;phone
END:VEVENT
END:VCALENDAR
Content-class: urn:content-classes:calendarmessage
Content-type: text/calendar; method=REPLY; charset=UTF-8
Content-transfer-encoding: 8BIT
Content-Disposition: attachment


------=_Part_80_888179120.1536742699653--

=====================================================
== File: mailet/icalendar/src/test/resources/ics/no_event.ics
=====================================================
BEGIN:VCALENDAR
PRODID:-//Aliasource Groupe LINAGORA//OBM Calendar 3.2.1-rc2//FR
CALSCALE:GREGORIAN
X-OBM-TIME:1483703436
VERSION:2.0
METHOD:REQUEST
END:VCALENDAR

=====================================================
== File: mailet/icalendar/src/test/resources/ics/meeting_without_dtstamp.ics
=====================================================
BEGIN:VCALENDAR
PRODID:-//Aliasource Groupe LINAGORA//OBM Calendar 3.2.1-rc2//FR
CALSCALE:GREGORIAN
X-OBM-TIME:1483703436
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
CREATED:20170106T115035Z
LAST-MODIFIED:20170106T115036Z
DTSTART:20170111T090000Z
DURATION:PT1H30M
TRANSP:OPAQUE
SEQUENCE:0
SUMMARY:Sprint planning #23
DESCRIPTION:
CLASS:PUBLIC
PRIORITY:5
ORGANIZER;X-OBM-ID=128;CN=Raphael OUAZANA:MAILTO:ouazana@linagora.com
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:02874f7c-d10e-102f-acda-0015176f7922
LOCATION:Hangout
CATEGORIES:
X-OBM-COLOR:
UID:f1514f44bf39311568d640727cff54e819573448d09d2e5677987ff29caa01a9e047fe
 b2aab16e43439a608f28671ab7c10e754ce92be513f8e04ae9ff15e65a9819cf285a6962bc
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Matthieu EXT_BAECHLER;PARTSTAT=NEE
 DS-ACTION;X-OBM-ID=302:MAILTO:baechler@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Laura ROYET;PARTSTAT=NEEDS-ACTION;
 X-OBM-ID=723:MAILTO:royet@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Raphael OUAZANA;PARTSTAT=ACCEPTED;
 X-OBM-ID=128:MAILTO:ouazana@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Luc DUZAN;PARTSTAT=NEEDS-ACTION;X-
 OBM-ID=715:MAILTO:duzan@linagora.com
ATTENDEE;CUTYPE=RESOURCE;CN=Salle de reunion Lyon;PARTSTAT=ACCEPTED;X-OBM-
 ID=66:MAILTO:noreply@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Antoine DUPRAT;PARTSTAT=NEEDS-ACTI
 ON;X-OBM-ID=453:MAILTO:duprat@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Beno&#xee;t TELLIER;PARTSTAT=NEEDS-ACTI
 ON;X-OBM-ID=623:MAILTO:tellier@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Quynh Quynh N NGUYEN;PARTSTAT=NEED
 S-ACTION;X-OBM-ID=769:MAILTO:nguyen@linagora.com
END:VEVENT
END:VCALENDAR

=====================================================
== File: mailet/icalendar/src/test/resources/ics/ics_with_error.ics
=====================================================
BEGIN:VCALENDAR
PRODID:-//Aliasource Groupe LINAGORA//OBM Calendar 3.2.1-rc2//FR
CALSCALE:GREGORIAN
X-OBM-TIME:1483703436
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
CREATED:20170106T115035Z
LAST-MODIFIED:20170106T115036Z
DTSTAMP:20170106T115036Z
DTSTART;TZID=&quot;Pacific Time (US &amp; Canada),Tijuana&quot;:20041011T223000
DURATION:PT1H30M
TRANSP:OPAQUE
SEQUENCE:0
VEVENT:62
SUMMARY:Sprint planning #23
DESCRIPTION:
CLASS:PUBLIC
PRIORITY:5
ORGANIZER;X-OBM-ID=128;CN=Raphael OUAZANA:MAILTO:ouazana@linagora.com
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:02874f7c-d10e-102f-acda-0015176f7922
LOCATION:Hangout
CATEGORIES:
X-OBM-COLOR:
UID:f1514f44bf39311568d640727cff54e819573448d09d2e5677987ff29caa01a9e047fe
 b2aab16e43439a608f28671ab7c10e754ce92be513f8e04ae9ff15e65a9819cf285a6962bc
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Matthieu EXT_BAECHLER;PARTSTAT=NEE
 DS-ACTION;X-OBM-ID=302:MAILTO:baechler@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Laura ROYET;PARTSTAT=NEEDS-ACTION;
 X-OBM-ID=723:MAILTO:royet@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Raphael OUAZANA;PARTSTAT=ACCEPTED;
 X-OBM-ID=128:MAILTO:ouazana@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Luc DUZAN;PARTSTAT=NEEDS-ACTION;X-
 OBM-ID=715:MAILTO:duzan@linagora.com
ATTENDEE;CUTYPE=RESOURCE;CN=Salle de reunion Lyon;PARTSTAT=ACCEPTED;X-OBM-
 ID=66:MAILTO:noreply@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Antoine DUPRAT;PARTSTAT=NEEDS-ACTI
 ON;X-OBM-ID=453:MAILTO:duprat@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Beno&#xee;t TELLIER;PARTSTAT=NEEDS-ACTI
 ON;X-OBM-ID=623:MAILTO:tellier@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Quynh Quynh N NGUYEN;PARTSTAT=NEED
 S-ACTION;X-OBM-ID=769:MAILTO:nguyen@linagora.com
END:VEVENT
END:VCALENDAR

=====================================================
== File: mailet/icalendar/src/test/resources/ics/meeting_without_sequence.ics
=====================================================
BEGIN:VCALENDAR
PRODID:-//Aliasource Groupe LINAGORA//OBM Calendar 3.2.1-rc2//FR
CALSCALE:GREGORIAN
X-OBM-TIME:1483439571
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
CREATED:20170103T103250Z
LAST-MODIFIED:20170103T103250Z
DTSTAMP:20170103T103250Z
DTSTART:20170120T100000Z
DURATION:PT30M
TRANSP:OPAQUE
SUMMARY:Sprint Social #3 Demo
DESCRIPTION:
CLASS:PUBLIC
PRIORITY:5
ORGANIZER;X-OBM-ID=468;CN=Attendee 1:MAILTO:attendee1@linagora.
 com
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:02874f7c-d10e-102f-acda-0015176f7922
LOCATION:hangout
CATEGORIES:
X-OBM-COLOR:
UID:f1514f44bf39311568d64072ac247c17656ceafde3b4b3eba961c8c5184cdc6ee047fe
 b2aab16e43439a608f28671ab7c10e754c301b1e32001ad51dd20eac2fc7af20abf4093bbe
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Attendee 2;PARTSTAT=NEEDS-ACTI
 ON;X-OBM-ID=348:MAILTO:attendee2@linagora.com
END:VEVENT
END:VCALENDAR

=====================================================
== File: mailet/icalendar/src/test/resources/ics/meeting_2.ics
=====================================================
BEGIN:VCALENDAR
PRODID:-//Aliasource Groupe LINAGORA//OBM Calendar 3.2.1-rc2//FR
CALSCALE:GREGORIAN
X-OBM-TIME:1483439571
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
CREATED:20170103T103250Z
LAST-MODIFIED:20170103T103250Z
DTSTAMP:20170103T103250Z
DTSTART:20170120T100000Z
DURATION:PT30M
TRANSP:OPAQUE
SEQUENCE:0
SUMMARY:Sprint Social #3 Demo
DESCRIPTION:
CLASS:PUBLIC
PRIORITY:5
ORGANIZER;X-OBM-ID=468;CN=Attendee 1:MAILTO:attendee1@linagora.
 com
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:02874f7c-d10e-102f-acda-0015176f7922
LOCATION:hangout
CATEGORIES:
X-OBM-COLOR:
UID:f1514f44bf39311568d64072ac247c17656ceafde3b4b3eba961c8c5184cdc6ee047fe
 b2aab16e43439a608f28671ab7c10e754c301b1e32001ad51dd20eac2fc7af20abf4093bbe
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Attendee 2;PARTSTAT=NEEDS-ACTI
 ON;X-OBM-ID=348:MAILTO:attendee2@linagora.com
END:VEVENT
END:VCALENDAR

=====================================================
== File: mailet/icalendar/src/test/resources/ics/meeting_without_uid.ics
=====================================================
BEGIN:VCALENDAR
PRODID:-//Aliasource Groupe LINAGORA//OBM Calendar 3.2.1-rc2//FR
CALSCALE:GREGORIAN
X-OBM-TIME:1483439571
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
CREATED:20170103T103250Z
LAST-MODIFIED:20170103T103250Z
DTSTAMP:20170103T103250Z
DTSTART:20170120T100000Z
DURATION:PT30M
TRANSP:OPAQUE
SEQUENCE:0
SUMMARY:Sprint Social #3 Demo
DESCRIPTION:
CLASS:PUBLIC
PRIORITY:5
ORGANIZER;X-OBM-ID=468;CN=Attendee 1:MAILTO:attendee1@linagora.
 com
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:02874f7c-d10e-102f-acda-0015176f7922
LOCATION:hangout
CATEGORIES:
X-OBM-COLOR:
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Attendee 2;PARTSTAT=NEEDS-ACTI
 ON;X-OBM-ID=348:MAILTO:attendee2@linagora.com
END:VEVENT
END:VCALENDAR

=====================================================
== File: mailet/icalendar/src/test/resources/ics/meeting.ics
=====================================================
BEGIN:VCALENDAR
PRODID:-//Aliasource Groupe LINAGORA//OBM Calendar 3.2.1-rc2//FR
CALSCALE:GREGORIAN
X-OBM-TIME:1483703436
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
CREATED:20170106T115035Z
LAST-MODIFIED:20170106T115036Z
DTSTAMP:20170106T115036Z
DTSTART:20170111T090000Z
DURATION:PT1H30M
TRANSP:OPAQUE
SEQUENCE:0
SUMMARY:Sprint planning #23
DESCRIPTION:
CLASS:PUBLIC
PRIORITY:5
ORGANIZER;X-OBM-ID=128;CN=Raphael OUAZANA:MAILTO:ouazana@linagora.com
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:02874f7c-d10e-102f-acda-0015176f7922
LOCATION:Hangout
CATEGORIES:
X-OBM-COLOR:
UID:f1514f44bf39311568d640727cff54e819573448d09d2e5677987ff29caa01a9e047fe
 b2aab16e43439a608f28671ab7c10e754ce92be513f8e04ae9ff15e65a9819cf285a6962bc
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Matthieu EXT_BAECHLER;PARTSTAT=NEE
 DS-ACTION;X-OBM-ID=302:MAILTO:baechler@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Laura ROYET;PARTSTAT=NEEDS-ACTION;
 X-OBM-ID=723:MAILTO:royet@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Raphael OUAZANA;PARTSTAT=ACCEPTED;
 X-OBM-ID=128:MAILTO:ouazana@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Luc DUZAN;PARTSTAT=NEEDS-ACTION;X-
 OBM-ID=715:MAILTO:duzan@linagora.com
ATTENDEE;CUTYPE=RESOURCE;CN=Salle de reunion Lyon;PARTSTAT=ACCEPTED;X-OBM-
 ID=66:MAILTO:noreply@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Antoine DUPRAT;PARTSTAT=NEEDS-ACTI
 ON;X-OBM-ID=453:MAILTO:duprat@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Beno&#xee;t TELLIER;PARTSTAT=NEEDS-ACTI
 ON;X-OBM-ID=623:MAILTO:tellier@linagora.com
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Quynh Quynh N NGUYEN;PARTSTAT=NEED
 S-ACTION;X-OBM-ID=769:MAILTO:nguyen@linagora.com
END:VEVENT
END:VCALENDAR

=====================================================
== File: mailet/icalendar/src/test/resources/ics/meeting_without_method.ics
=====================================================
BEGIN:VCALENDAR
PRODID:-//Aliasource Groupe LINAGORA//OBM Calendar 3.2.1-rc2//FR
CALSCALE:GREGORIAN
X-OBM-TIME:1483439571
VERSION:2.0
BEGIN:VEVENT
CREATED:20170103T103250Z
LAST-MODIFIED:20170103T103250Z
DTSTAMP:20170103T103250Z
DTSTART:20170120T100000Z
DURATION:PT30M
TRANSP:OPAQUE
SEQUENCE:0
SUMMARY:Sprint Social #3 Demo
DESCRIPTION:
CLASS:PUBLIC
PRIORITY:5
ORGANIZER;X-OBM-ID=468;CN=Attendee 1:MAILTO:attendee1@linagora.
 com
X-OBM-DOMAIN:linagora.com
X-OBM-DOMAIN-UUID:02874f7c-d10e-102f-acda-0015176f7922
LOCATION:hangout
CATEGORIES:
X-OBM-COLOR:
UID:f1514f44bf39311568d64072ac247c17656ceafde3b4b3eba961c8c5184cdc6ee047fe
 b2aab16e43439a608f28671ab7c10e754c301b1e32001ad51dd20eac2fc7af20abf4093bbe
ATTENDEE;CUTYPE=INDIVIDUAL;RSVP=TRUE;CN=Attendee 2;PARTSTAT=NEEDS-ACTI
 ON;X-OBM-ID=348:MAILTO:attendee2@linagora.com
END:VEVENT
END:VCALENDAR

=====================================================
== File: mailet/standard/src/test/resources/mime/sendToRemoteHttp.mime
=====================================================
Return-Path: &lt;aduprat@linagora.com&gt;
Subject: Fwd: Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
 (CET) (aduprat@linagora.com)
To: =?UTF-8?Q?Beno=c3=aet_TELLIER?= &lt;tellier@linagora.com&gt;
From: aduprat &lt;duprat@linagora.com&gt;
X-Forwarded-Message-Id: &lt;001a114380a6a260d105467765ab@google.com&gt;
Message-ID: &lt;f18fa52e-2e9d-1125-327d-2100b23f8a6b@linagora.com&gt;
Date: Thu, 19 Jan 2017 20:36:37 +0100
MIME-Version: 1.0
In-Reply-To: &lt;001a114380a6a260d105467765ab@google.com&gt;
Content-Type: multipart/mixed;
 boundary=&quot;------------17D96D411CBD55D8239A8C1F&quot;

This is a multi-part message in MIME format.
--------------17D96D411CBD55D8239A8C1F
Content-Type: multipart/alternative;
 boundary=&quot;------------64D716A3DDAEC185D3E67448&quot;


--------------64D716A3DDAEC185D3E67448
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit




-------- Message trans&#xe9;r&#xe9; --------
Sujet : 	Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
(CET) (duprat@linagora.com)
Date : 	Thu, 19 Jan 2017 19:18:23 +0000
De : 	Antoine Duprat &lt;duprat@gmail.com&gt;
R&#xc3;&#xa9;pondre &#xc3;  : 	antduprat@gmail.com
Pour : 	aduprat@linagora.com




--------------64D716A3DDAEC185D3E67448
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

&lt;html&gt;
  &lt;head&gt;

    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
  &lt;/head&gt;
  &lt;body bgcolor=&quot;#FFFFFF&quot; text=&quot;#000000&quot;&gt;
    &lt;p&gt;&lt;br&gt;
    &lt;/p&gt;
    &lt;div class=&quot;moz-forward-container&quot;&gt;&lt;br&gt;

=====================================================
== File: mailet/standard/src/test/resources/mime/gmail.mime
=====================================================
Return-Path: &lt;aduprat@linagora.com&gt;
Subject: Fwd: Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
 (CET) (aduprat@linagora.com)
To: =?UTF-8?Q?Beno=c3=aet_TELLIER?= &lt;tellier@linagora.com&gt;
From: aduprat &lt;duprat@linagora.com&gt;
X-Forwarded-Message-Id: &lt;001a114380a6a260d105467765ab@google.com&gt;
Message-ID: &lt;f18fa52e-2e9d-1125-327d-2100b23f8a6b@linagora.com&gt;
Date: Thu, 19 Jan 2017 20:36:37 +0100
MIME-Version: 1.0
In-Reply-To: &lt;001a114380a6a260d105467765ab@google.com&gt;
Content-Type: multipart/mixed;
 boundary=&quot;------------17D96D411CBD55D8239A8C1F&quot;

This is a multi-part message in MIME format.
--------------17D96D411CBD55D8239A8C1F
Content-Type: multipart/alternative;
 boundary=&quot;------------64D716A3DDAEC185D3E67448&quot;


--------------64D716A3DDAEC185D3E67448
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit




-------- Message trans&#xe9;r&#xe9; --------
Sujet : 	Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
(CET) (duprat@linagora.com)
Date : 	Thu, 19 Jan 2017 19:18:23 +0000
De : 	Antoine Duprat &lt;duprat@gmail.com&gt;
R&#xc3;&#xa9;pondre &#xc3;  : 	antduprat@gmail.com
Pour : 	aduprat@linagora.com




--------------64D716A3DDAEC185D3E67448
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

&lt;html&gt;
  &lt;head&gt;

    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
  &lt;/head&gt;
  &lt;body bgcolor=&quot;#FFFFFF&quot; text=&quot;#000000&quot;&gt;
    &lt;p&gt;&lt;br&gt;
    &lt;/p&gt;
    &lt;div class=&quot;moz-forward-container&quot;&gt;&lt;br&gt;

=====================================================
== File: mailet/standard/src/test/resources/mime/headerFolded.mime
=====================================================
Return-Path: &lt;duprat@linagora.com&gt;
Subject: Fwd: Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
 (CET) (duprat@linagora.com)
To: =?UTF-8?Q?Beno=c3=aet_TELLIER?= &lt;tellier@linagora.com&gt;
From: aduprat
 &lt;duprat@linagora.com&gt;
X-Forwarded-Message-Id: &lt;001a114380a6a260d105467765ab@google.com&gt;
Message-ID: &lt;f18fa52e-2e9d-1125-327d-2100b23f8a6b@linagora.com&gt;
Date: Thu, 19 Jan 2017 20:36:37 +0100
MIME-Version: 1.0
In-Reply-To: &lt;001a114380a6a260d105467765ab@google.com&gt;
Content-Type: multipart/mixed;
 boundary=&quot;------------17D96D411CBD55D8239A8C1F&quot;

This is a multi-part message in MIME format.
--------------17D96D411CBD55D8239A8C1F
Content-Type: multipart/alternative;
 boundary=&quot;------------64D716A3DDAEC185D3E67448&quot;


--------------64D716A3DDAEC185D3E67448
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit




-------- Message trans&#xe9;r&#xe9; --------
Sujet : 	Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
(CET) (duprat@linagora.com)
Date : 	Thu, 19 Jan 2017 19:18:23 +0000
De : 	Antoine Duprat &lt;duprat@gmail.com&gt;
R&#xc3;&#xa9;pondre &#xc3;  : 	antduprat@gmail.com
Pour : 	aduprat@linagora.com




--------------64D716A3DDAEC185D3E67448
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

&lt;html&gt;
  &lt;head&gt;

    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
  &lt;/head&gt;
  &lt;body bgcolor=&quot;#FFFFFF&quot; text=&quot;#000000&quot;&gt;
    &lt;p&gt;&lt;br&gt;
    &lt;/p&gt;

=====================================================
== File: mailet/standard/src/test/resources/mime/space.eml
=====================================================
Content-Type: multipart/mixed; boundary=&quot;------------gwA6NAbT8Pk0FYCy0yoPh61m&quot;
Message-ID: &lt;1745dbd6-f23b-44d0-be4c-9b9472c50348@linagora.com&gt;
Date: Tue, 27 Feb 2024 07:38:14 +0100
MIME-Version: 1.0
To: BT TEST &lt;xxx@linagora.com&gt;
From: &quot;xxx@linagora.com&quot; &lt;xxx@linagora.com&gt;
Subject: Space

This is a multi-part message in MIME format.
--------------gwA6NAbT8Pk0FYCy0yoPh61m
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

space in attachment filename

--------------gwA6NAbT8Pk0FYCy0yoPh61m
Content-Type: application/pdf
Content-Disposition: attachment; filename=Vietnam Airline.pdf
Content-Transfer-Encoding: base64

JVBERi0xLjUKJbXtrvsKMyAwIG9iago8PCAvTGVuZ3RoIDQgMCBSCiAgIC9GaWx0ZXIgL0Zs
YXRlRGVjb2RlCj4+CnN0cmVhbQp4nN1aS6/buhHe61foD1ghh28g0OIC3XTVAgfooujC9jm+

--------------gwA6NAbT8Pk0FYCy0yoPh61m--

=====================================================
== File: mailet/standard/src/test/resources/mime/incorrect-headers.mime
=====================================================
Return-Path: &lt;james@linagora.com&gt;
Subject: Fwd: Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
 (CET) (james@linagora.com)
To: =?UTF-8?Q?Beno=c3=aet_SOMEONE?= &lt;someone@linagora.com&gt;
From: james &lt;james@linagora.com&gt;
X-Forwarded-Message-Id: &lt;001a114380a6a260d105467765ab@google.com&gt;
Message-ID: &lt;f18fa52e-2e9d-1125-327d-2100b23f8a6b@linagora.com&gt;
Date: Thu, 19 Jan 2017 20:36:37 +0100
MIME-Version: 1.0
In-Reply-To: &lt;001a114380a6a260d105467765ab@google.com&gt;
Content-Type: multipart/mixed;charset=charset=us-ascii;
 boundary=&quot;------------17D96D411CBD55D8239A8C1F&quot;

This is a multi-part message in MIME format.
--------------17D96D411CBD55D8239A8C1F
Content-Type: multipart/alternative;
 boundary=&quot;------------64D716A3DDAEC185D3E67448&quot;


--------------64D716A3DDAEC185D3E67448
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit




-------- Message trans&#xe9;r&#xe9; --------
Sujet : 	Invitation: (Aucun objet) - ven. 20 janv. 2017 14:00 - 15:00
(CET) (jamef@linagora.com)
Date : 	Thu, 19 Jan 2017 19:18:23 +0000
De : 	James &lt;james@gmail.com&gt;
R&#xc3;&#xa9;pondre &#xc3;  : 	james@gmail.com
Pour : 	james@linagora.com




--------------64D716A3DDAEC185D3E67448
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

&lt;html&gt;
  &lt;head&gt;

    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
  &lt;/head&gt;
  &lt;body bgcolor=&quot;#FFFFFF&quot; text=&quot;#000000&quot;&gt;
    &lt;p&gt;&lt;br&gt;
    &lt;/p&gt;
    &lt;div class=&quot;moz-forward-container&quot;&gt;&lt;br&gt;

=====================================================
== File: mailet/standard/LICENSE.apache
=====================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      &quot;control&quot; means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      &quot;Source&quot; form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      &quot;Object&quot; form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      &quot;Work&quot; shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      &quot;Contribution&quot; shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally

=====================================================
== File: mailet/standard/LICENSE.activation
=====================================================
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0

1. Definitions.

1.1. Contributor means each individual or entity that creates or contributes to the creation of Modifications.

1.2. Contributor Version means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor.

1.3. Covered Software means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.

1.4. Executable means the Covered Software in any form other than Source Code.

1.5. Initial Developer means the individual or entity that first makes Original Software available under this License.

1.6. Larger Work means a work which combines Covered Software or portions thereof with code not governed by the terms of this License.

1.7. License means this document.

1.8. Licensable means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.

1.9. Modifications means the Source Code and Executable form of any of the following:

A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications;

B. Any new file that contains any part of the Original Software or previous Modification; or

C. Any new file that is contributed or otherwise made available under the terms of this License.

1.10. Original Software means the Source Code and Executable form of computer software code that is originally released under this License.

1.11. Patent Claims means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.

1.12. Source Code means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code.

1.13. You (or Your) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, You includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, control means (a)?the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b)?ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.

2. License Grants.

2.1. The Initial Developer Grant.
Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license:
(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and
(b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof).
(c) The licenses granted in Sections?2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License.
(d) Notwithstanding Section?2.1(b) above, no patent license is granted: (1)?for code that You delete from the Original Software, or (2)?for infringements caused by: (i)?the modification of the Original Software, or (ii)?the combination of the Original Software with other software or devices.

2.2. Contributor Grant.
Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and
(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1)?Modifications made by that Contributor (or portions thereof); and (2)?the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).
(c) The licenses granted in Sections?2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party.

=====================================================
== File: mailet/standard/LICENSE.mail
=====================================================
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0

1. Definitions.

1.1. Contributor means each individual or entity that creates or contributes to the creation of Modifications.

1.2. Contributor Version means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor.

1.3. Covered Software means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.

1.4. Executable means the Covered Software in any form other than Source Code.

1.5. Initial Developer means the individual or entity that first makes Original Software available under this License.

1.6. Larger Work means a work which combines Covered Software or portions thereof with code not governed by the terms of this License.

1.7. License means this document.

1.8. Licensable means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.

1.9. Modifications means the Source Code and Executable form of any of the following:

A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications;

B. Any new file that contains any part of the Original Software or previous Modification; or

C. Any new file that is contributed or otherwise made available under the terms of this License.

1.10. Original Software means the Source Code and Executable form of computer software code that is originally released under this License.

1.11. Patent Claims means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.

1.12. Source Code means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code.

1.13. You (or Your) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, You includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, control means (a)?the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b)?ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.

2. License Grants.

2.1. The Initial Developer Grant.
Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license:
(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and
(b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof).
(c) The licenses granted in Sections?2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License.
(d) Notwithstanding Section?2.1(b) above, no patent license is granted: (1)?for code that You delete from the Original Software, or (2)?for infringements caused by: (i)?the modification of the Original Software, or (ii)?the combination of the Original Software with other software or devices.

2.2. Contributor Grant.
Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and
(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1)?Modifications made by that Contributor (or portions thereof); and (2)?the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).
(c) The licenses granted in Sections?2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party.

=====================================================
== File: mailet/base/src/test/resources/eml/text-only-7bit.eml
=====================================================
Return-Path: &lt;bob@james.org&gt;
MIME-Version: 1.0
Delivered-To: bob@james.org
Received: from 10.233.68.83 (EHLO incoming.james.org) ([10.233.68.83])
          by james-0 (JAMES SMTP Server ) with ESMTP ID -1705393842
          for &lt;bob@james.james.org&gt;;
          Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from smtp.james.org (unknown [10.233.65.0])
	by incoming.james.org (Postfix) with ESMTPS id CCCA943
	for &lt;bob@james.james.org&gt;; Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from [10.116.29.102] (unknown [1.54.162.156])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.james.org (Postfix) with ESMTPSA id 2B7D13F393
	for &lt;bob@james.org&gt;; Wed, 22 Jan 2020 05:11:53 +0100 (CET)
To: bob@james.org
X-LINAGORA-Copy-Delivery-Done: 1
From: Uncle Bob &lt;bob@james.org&gt;
Subject: quoted
Message-ID: &lt;f4d046a8-e563-1e92-dbd9-c5038603e3a2@james.org&gt;
Date: Wed, 22 Jan 2020 11:11:38 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.2.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

A 8bit encoded body with =E2=82=ACuro symbol.

=====================================================
== File: mailet/base/src/test/resources/eml/multipart-7bit.eml
=====================================================
Return-Path: &lt;bob@james.org&gt;
MIME-Version: 1.0
Delivered-To: bob@james.org
Received: from 10.233.68.83 (EHLO incoming.james.org) ([10.233.68.83])
          by james-0 (JAMES SMTP Server ) with ESMTP ID -973333758
          for &lt;bob@james.james.org&gt;;
          Wed, 22 Jan 2020 03:47:32 +0000 (UTC)
Received: from smtp.james.org (unknown [10.233.65.0])
	by incoming.james.org (Postfix) with ESMTPS id 8151D43
	for &lt;bob@james.james.org&gt;; Wed, 22 Jan 2020 03:47:32 +0000 (UTC)
Received: from [10.116.29.102] (unknown [1.54.162.156])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.james.org (Postfix) with ESMTPSA id D6C653F38C
	for &lt;bob@james.org&gt;; Wed, 22 Jan 2020 04:47:31 +0100 (CET)
To: bob@james.org
X-LINAGORA-Copy-Delivery-Done: 1
From: Uncle Bob &lt;bob@james.org&gt;
Subject: multipart
Message-ID: &lt;69bd7da2-5b13-de50-bd77-c985f6b0215c@james.org&gt;
Date: Wed, 22 Jan 2020 10:47:17 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.2.1
Content-Type: multipart/mixed;
 boundary=&quot;------------C3FD44EAF9B6A93E163D9176&quot;
Content-Language: en-US

This is a multi-part message in MIME format.
--------------C3FD44EAF9B6A93E163D9176
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

A 8bit encoded body with =E2=82=ACuro symbol.



--------------C3FD44EAF9B6A93E163D9176
Content-Type: image/png;
 name=&quot;james-logo.png&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;james-logo.png&quot;

iVBORw0KGgoAAAANSUhEUgAAANkAAABaCAYAAAA1mvMAAAAAGXRFWHRTb2Z0d2FyZQBBZG9i
ZSBJbWFnZVJlYWR5ccllPAAAFB1JREFUeNrsXV2MI9lVvuX+m2EXrTtLQGwydPVsRlmkSOOW
+BNItB2tNiAk2n5BeYG2EwkpiSLbPPAjAW7zQiQe3C0SkBBg9ysv7ZZ4AGWFa/KClJeuRQhl
s2SnOj1pYIfN1EhICRLj4pzyufbt6rrlW+W/cvc90lGVXVW37r11vnt+7h/zPI/JeJnp8jOm
yTRpmhNF4Shzg8ud059eUxrIiNJYhmEssybL4/G1f3SsGaSNAM7STxfeYWtR0ppMRqs3uNwu
8D6wNQVQoelZBc6HaUi4jgeH3nUKoOtqsdN04zUZCf8ZCPzOhNqwQeCKC/Aj4EN4v6vF7HZr
spsOsjYcHoGgd2I+lyVw1SQACpqHWYkPiPc24f2HWgw1yG4qyFADnQAXVP0meKZMADOFv9H8

=====================================================
== File: mailet/base/src/test/resources/eml/multipart-7bit-attachment-content.txt
=====================================================
iVBORw0KGgoAAAANSUhEUgAAANkAAABaCAYAAAA1mvMAAAAAGXRFWHRTb2Z0d2FyZQBBZG9i
ZSBJbWFnZVJlYWR5ccllPAAAFB1JREFUeNrsXV2MI9lVvuX+m2EXrTtLQGwydPVsRlmkSOOW
+BNItB2tNiAk2n5BeYG2EwkpiSLbPPAjAW7zQiQe3C0SkBBg9ysv7ZZ4AGWFa/KClJeuRQhl
s2SnOj1pYIfN1EhICRLj4pzyufbt6rrlW+W/cvc90lGVXVW37r11vnt+7h/zPI/JeJnp8jOm
yTRpmhNF4Shzg8ud059eUxrIiNJYhmEssybL4/G1f3SsGaSNAM7STxfeYWtR0ppMRqs3uNwu
8D6wNQVQoelZBc6HaUi4jgeH3nUKoOtqsdN04zUZCf8ZCPzOhNqwQeCKC/Aj4EN4v6vF7HZr
spsOsjYcHoGgd2I+lyVw1SQACpqHWYkPiPc24f2HWgw1yG4qyFADnQAXVP0meKZMADOFv9H8
O0VzENJxxrxvD7gYeB7NyJLWahpkNw5kJPgnJPCVKKBJwNUhTeQkDI6gH1cWtFpBB0k0yG4i
yNCU65E51yGNxDUK/veQNE92GuCSBE0aBDYNNA2ymwcyQdgPSLNkJbeg4B+jaTgNcEnA1qIg
igaaBtnNA1nAb+L9XA6xPU1/6eL+G3nhp0nsB0wyr/5fnt3t733sG+/vaNHUILuRIJsmAZhM
0kwPCbi5CE3J/TIMojzC4733v6UDIbcAZKu6emIDC4G0z65HEMcB6xRApTupbyFpkKkBK0uB
i6oisJAs9PEAWB1dgxpkmqLNwQa7Hn2MIgRVE8Dl6BrUpEEWrblqLDoaGTQJ/WFU2s/SpEE2
HmB5OLRjmIWoueoaXJo0yNS0l2y8osznqmizUJMGmTrA+KgQFdMQfS496FeTBpkiwHIEMBXf
C0dplLT20qRBNhuAdQBcFS0ymmYOMhDMtn9isNN731neztWYAKvo/i5NSSn2sKqLB2+gYOaZ
MfRPuj7g3l0ewJEP9lgDTNO0aLrDqjLMYSPsZeG8DMfyxU+/4cI5Au3o3r99K+0jzLUG0zQ3
ir8k3Ao7959aIc4Qr3hZlvHKwGcXn/okcjmlWgynm+Q0wDSl11z81CfzpAkCN4clMJikeO9f
3rVTArDwvOsgh6YZmotJFje1h9prqMUCv0f/gXaLvdLTLKmtUj4NME0LNRfv/eu76Hs5+KTB
GTTW8HwF2YNz4pX+Fn/2yc88OAE+ePKzD7LzLihoMRzJYaqYiVosNC3WJ2M+iCwEEvO5z9hq
H4+2f57p0//EoibD8wxrAEjPnvzcg+IcAcaHTI0jHMmhlwXQtHiQAXhOWQYB5IlmIXLTT9Eg
HpiOuSc//8AkHy1L10z4v+prt1/4xDy0WpmNjyai/6iHSmlKCcgMZg19L2PIJvAecH1wzcOw
CucygCnnn3NwGh5Pq/fkFz9Rm3E5qwr3HOmR9JpSA7KPf/M98Mu8rgAiDp4c8D78rgvgw7fs
k6kogpI9+aXXUfsB+FgLzk/839M3FVWWCdBaTFPKNNlAAx1fiSaOwIOg2QWu+CH8gdYCLee1
AoDMD+4d/GdkWBH47PKXX5/2lkd7Cvd0tBbTlDqQffyf/x01mROizZCLwLvABSZGHokznFfY
PjAe+TX01XqX+dfLUyyjSoDlWIuCpvRpMtJmEvAgl4Gr8LsA19xBaH/AggYsC8DkvloWuH35
6fsTA406n8eZoI6OKGqaJU001QUAdAhAq/pRw6vgA/IDGxwouJAnrkmfY0YkaEVqX755/+Fr
b79fnyCLeYV7Yg9sfvPBl6S7uLz93tc0YDVNT5O99o3voM91FDAVyXwc+mhlv28sw0rAdiC8
L7AXxrXLt7bbE2RxV+GeRwnS5dNkgtzSIqVpuubiQPscQiruGPCgWXjCVjwAmtcZdFIH+Urw
hEL8Ppcv3zKTAk1Fk2nNoyndIHvtn94faLMMH+EhBQ+0/gA0DO8z75AANGIjyEzsAij/x6/G
AxqtmTiOXL2UgKb0azIE2tcfHwAY7GvAuQYe3yfrAR/5If5A1HEYHAFP0VgDXgfeGDBbB6CV
YgFNBWRai2laDpANzEavIpqMEeDJAXjOjLvMht8FtgGm5h34/w4BSjzfIKCtD8/L//lZZaCp
rjylSdNygAz32wIANTkwGGofOXiycG/PeNkHXQHut/n9bCNw/108eiPe8MofVLZUgKYyeuQd
LQKalkeTAf3k3zsHABhrqIU2RmC7Bp47CDSvZ7zkoWYrAHjgOY9lNnwgjXjdY2J6XKM9/cJW
WX8+TctA018Sbp2VjBWvNwh0jIIXhnA+7A8bnLfB1Nz98b86L3zw21stMC9r4nOh54Nj+2lt
i3308LwjycnWMn6QNx98abhB4dvvfc2Z43t531/ivj5IwyRfeKb9hWI/JbzHmvU70HeH9yR2
LWayCeAHn9vKsRVarIaDTAaY0bnl96W98AcSt4VpMVfvNXje2GB5gwwr/NhXzq990Iv7tKpW
NOH8sYMEHwDTDVvGwIKPUYghkJjOLhttICjzG1GQcK/rrurHhvSD+UNBqQeECIec7Uvqie+r
diwTZCoDWhR7kvw7lPfjScBA76lSPmX1xOuokwQQ8I4ilSPP5EEzf7dUNuhbtcQyLWSnzadf
3MoRyLIUVXyFjvlQ4AyAiDOuS94LP2DSpvuvaDDjukZzQB/vvHpw7i4DyODZcoRgqwRqmvCO
Q4U8Xvuw8JwhCFSbqW8HhcJUEoUX0jhg6rvehKahqE1abDRySJWwjg5igKvF1DcYCTYi2BA1
v/7tr7pzB1kkAH93qwxJt4ba6ip4XH9OWh8yn4F7MlTBxlB7sUHXwBWgdT/yh98tJQBZKcnu
l0lBBs/V2HRGhWBrXYkLMjYY3pZjamudBAlb8AKCBNJuJxD8K2koms29GCCO/S54B36LSecy
YvrbUSDLsDnRh3+0ZQKXgduZDdb2I4wUns8Mgxp+sCML3DZ+xGtl7np1Y92rwG83w4Mga94g
pL8m9KWtsaL7Z/dqCStonjStBWDL1ALHpUZCgDECZ4sEszxBGo05AIy/q0faUKbBalNq8Nz5
Bj7CAPbHW1ljxUOtVLxm+onK8qoZWUZzMZPxKt4Lo4B+mmF4uTA/jYIqjed/fq/7ypcveLDA
ZCkjDGTAx+2ECKlo64uBmyj/oJUAtMUIP4PXWVS9lcf4Kipp1KAOmjLBJFCcRACMm2jP6fcr
TL68BAd1XVJ/UVrQEt6xFeE3H80/uhhCr/6J7y+Vnv3pT9UQDIKZiAWxDZx/Nli+IAgef4QI
aLC61/enzDQAmLXh0gXsSlAl60cqwUSIATJnAVhrCsKKgDsFgetGtOoy08zE1jjqWQVzqh4M
SJAprLoJokX+T9w0ilR2mbaVPVcP80cRtBG+G4L6VMwj5c+UNBaliEAPDxbt0bGrEgHOzFO6
Nv/gu4cAmB3fBFzzNjN3+/XMHS8PJp/pm41gDvq8NmBjcJ4Fbq/cRe434bkS/O/6913vV8v/
z99+LEfzyMbSIsYt0kdBf2oT/apxICHfy4kwiSbxV6yQ91nUUI0zpVHAotIoRaSxGxFFlJlw

=====================================================
== File: mailet/base/src/test/resources/eml/multipart-8bit-attachment-content.txt
=====================================================
iVBORw0KGgoAAAANSUhEUgAAANkAAABaCAYAAAA1mvMAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAFB1JREFUeNrsXV2MI9lVvuX+m2EXrTtLQGwydPVsRlmkSOOW+BNItB2t
NiAk2n5BeYG2EwkpiSLbPPAjAW7zQiQe3C0SkBBg9ysv7ZZ4AGWFa/KClJeuRQhls2SnOj1pYIfN
1EhICRLj4pzyufbt6rrlW+W/cvc90lGVXVW37r11vnt+7h/zPI/JeJnp8jOmyTRpmhNF4Shzg8ud
059eUxrIiNJYhmEssybL4/G1f3SsGaSNAM7STxfeYWtR0ppMRqs3uNwu8D6wNQVQoelZBc6HaUi4
jgeH3nUKoOtqsdN04zUZCf8ZCPzOhNqwQeCKC/Aj4EN4v6vF7HZrspsOsjYcHoGgd2I+lyVw1SQA
CpqHWYkPiPc24f2HWgw1yG4qyFADnQAXVP0meKZMADOFv9H8O0VzENJxxrxvD7gYeB7NyJLWahpk
Nw5kJPgnJPCVKKBJwNUhTeQkDI6gH1cWtFpBB0k0yG4iyNCU65E51yGNxDUK/veQNE92GuCSBE0a
BDYNNA2ymwcyQdgPSLNkJbeg4B+jaTgNcEnA1qIgigaaBtnNA1nAb+L9XA6xPU1/6eL+G3nhp0ns
B0wyr/5fnt3t733sG+/vaNHUILuRIJsmAZhM0kwPCbi5CE3J/TIMojzC4733v6UDIbcAZKu6emID
C4G0z65HEMcB6xRApTupbyFpkKkBK0uBi6oisJAs9PEAWB1dgxpkmqLNwQa7Hn2MIgRVE8Dl6BrU
pEEWrblqLDoaGTQJ/WFU2s/SpEE2HmB5OLRjmIWoueoaXJo0yNS0l2y8osznqmizUJMGmTrA+KgQ
FdMQfS496FeTBpkiwHIEMBXfC0dplLT20qRBNhuAdQBcFS0ymmYOMhDMtn9isNN731neztWYAKvo
/i5NSSn2sKqLB2+gYOaZMfRPuj7g3l0ewJEP9lgDTNO0aLrDqjLMYSPsZeG8DMfyxU+/4cI5Au3o
3r99K+0jzLUG0zQ3ir8k3Ao7959aIc4Qr3hZlvHKwGcXn/okcjmlWgynm+Q0wDSl11z81CfzpAkC
N4clMJikeO9f3rVTArDwvOsgh6YZmotJFje1h9prqMUCv0f/gXaLvdLTLKmtUj4NME0LNRfv/eu7
6Hs5+KTBGTTW8HwF2YNz4pX+Fn/2yc88OAE+ePKzD7LzLihoMRzJYaqYiVosNC3WJ2M+iCwEEvO5
z9hqH4+2f57p0//EoibD8wxrAEjPnvzcg+IcAcaHTI0jHMmhlwXQtHiQAXhOWQYB5IlmIXLTT9Eg
HpiOuSc//8AkHy1L10z4v+prt1/4xDy0WpmNjyai/6iHSmlKCcgMZg19L2PIJvAecH1wzcOwCucy
gCnnn3NwGh5Pq/fkFz9Rm3E5qwr3HOmR9JpSA7KPf/M98Mu8rgAiDp4c8D78rgvgw7fsk6kogpI9
+aXXUfsB+FgLzk/839M3FVWWCdBaTFPKNNlAAx1fiSaOwIOg2QWu+CH8gdYCLee1AoDMD+4d/Gdk
WBH47PKXX5/2lkd7Cvd0tBbTlDqQffyf/x01mROizZCLwLvABSZGHokznFfYPjAe+TX01XqX+dfL
UyyjSoDlWIuCpvRpMtJmEvAgl4Gr8LsA19xBaH/AggYsC8DkvloWuH356fsTA406n8eZoI6OKGqa
JU001QUAdAhAq/pRw6vgA/IDGxwouJAnrkmfY0YkaEVqX755/+Frb79fnyCLeYV7Yg9sfvPBl6S7
uLz93tc0YDVNT5O99o3voM91FDAVyXwc+mhlv28sw0rAdiC8L7AXxrXLt7bbE2RxV+GeRwnS5dNk
gtzSIqVpuubiQPscQiruGPCgWXjCVjwAmtcZdFIH+UrwhEL8Ppcv3zKTAk1Fk2nNoyndIHvtn94f
aLMMH+EhBQ+0/gA0DO8z75AANGIjyEzsAij/x6/GAxqtmTiOXL2UgKb0azIE2tcfHwAY7GvAuQYe
3yfrAR/5If5A1HEYHAFP0VgDXgfeGDBbB6CVYgFNBWRai2laDpANzEavIpqMEeDJAXjOjLvMht8F
tgGm5h34/w4BSjzfIKCtD8/L//lZZaCprjylSdNygAz32wIANTkwGGofOXiycG/PeNkHXQHut/n9
bCNw/108eiPe8MofVLZUgKYyeuQdLQKalkeTAf3k3zsHABhrqIU2RmC7Bp47CDSvZ7zkoWYrAHjg
OY9lNnwgjXjdY2J6XKM9/cJWWX8+TctA018Sbp2VjBWvNwh0jIIXhnA+7A8bnLfB1Nz98b86L3zw
21stMC9r4nOh54Nj+2lti3308LwjycnWMn6QNx98abhB4dvvfc2Z43t531/ivj5IwyRfeKb9hWI/
JbzHmvU70HeH9yR2LWayCeAHn9vKsRVarIaDTAaY0bnl96W98AcSt4VpMVfvNXje2GB5gwwr/NhX
zq990Iv7tKpWNOH8sYMEHwDTDVvGwIKPUYghkJjOLhttICjzG1GQcK/rrurHhvSD+UNBqQeECIec
7Uvqie+rdiwTZCoDWhR7kvw7lPfjScBA76lSPmX1xOuokwQQ8I4ilSPP5EEzf7dUNuhbtcQyLWSn
zadf3MoRyLIUVXyFjvlQ4AyAiDOuS94LP2DSpvuvaDDjukZzQB/vvHpw7i4DyODZcoRgqwRqmvCO
Q4U8Xvuw8JwhCFSbqW8HhcJUEoUX0jhg6rvehKahqE1abDRySJWwjg5igKvF1DcYCTYi2BA1v/7t
r7pzB1kkAH93qwxJt4ba6ip4XH9OWh8yn4F7MlTBxlB7sUHXwBWgdT/yh98tJQBZKcnul0lBBs/V
2HRGhWBrXYkLMjYY3pZjamudBAlb8AKCBNJuJxD8K2koms29GCCO/S54B36LSecyYvrbUSDLsDnR
h3+0ZQKXgduZDdb2I4wUns8Mgxp+sCML3DZ+xGtl7np1Y92rwG83w4Mga94gpL8m9KWtsaL7Z/dq
CStonjStBWDL1ALHpUZCgDECZ4sEszxBGo05AIy/q0faUKbBalNq8Nz5Bj7CAPbHW1ljxUOtVLxm
+onK8qoZWUZzMZPxKt4Lo4B+mmF4uTA/jYIqjed/fq/7ypcveLDAZCkjDGTAx+2ECKlo64uBmyj/
oJUAtMUIP4PXWVS9lcf4Kipp1KAOmjLBJFCcRACMm2jP6fcrTL68BAd1XVJ/UVrQEt6xFeE3H80/
uhhCr/6J7y+Vnv3pT9UQDIKZiAWxDZx/Nli+IAgef4QIaLC61/enzDQAmLXh0gXsSlAl60cqwUSI
ATJnAVhrCsKKgDsFgetGtOoy08zE1jjqWQVzqh4MSJAprLoJokX+T9w0ilR2mbaVPVcP80cRtBG+
G4L6VMwj5c+UNBaliEAPDxbt0bGrEgHOzFO6Nv/gu4cAmB3fBFzzNjN3+/XMHS8PJp/pm41gDvq8
NmBjcJ4Fbq/cRe434bkS/O/6913vV8v/z99+LEfzyMbSIsYt0kdBf2oT/apxICHfy4kwiSbxV6yQ
91nUUI0zpVHAotIoRaSxGxFFlJlwFVnAB7Ui1ZMMuPvBBirC9LMivgW+B+/Bsm1KNORiQearm9+5
cLL1i84KAmSFnQBYcj5YfIAR0DZCALQG2m7VO8vc6bvGKttma17X98+QV+k4OHdZykff04eK4w/K
TJKHCbMQGeWjhqA7xpetjCmjHZGGGdMcxYBSR6FcdQmwi4rvz8b4hq5qP2ZmUYL2o1984gJvAzBQ

=====================================================
== File: mailet/base/src/test/resources/eml/multipart-8bit.eml
=====================================================
Return-Path: &lt;bob@james.org&gt;
MIME-Version: 1.0
Delivered-To: bob@james.org
Received: from 10.233.68.83 (EHLO incoming.james.org) ([10.233.68.83])
          by james-0 (JAMES SMTP Server ) with ESMTP ID 926590876
          for &lt;bob@james.james.org&gt;;
          Tue, 21 Jan 2020 07:12:56 +0000 (UTC)
Received: from smtp.james.org (unknown [10.233.68.1])
	by incoming.james.org (Postfix) with ESMTPS id B39A643
	for &lt;bob@james.james.org&gt;; Tue, 21 Jan 2020 07:12:56 +0000 (UTC)
Received: from duc-HP-ProBook-450-G4 (unknown [1.54.162.156])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))
	(No client certificate requested)
	by smtp.james.org (Postfix) with ESMTPSA id F11B13F386
	for &lt;bob@james.org&gt;; Tue, 21 Jan 2020 08:12:55 +0100 (CET)
Date: Tue, 21 Jan 2020 14:12:39 +0700 (ICT)
X-LINAGORA-Copy-Delivery-Done: 1
From: bob@james.org
To: bob@james.org
Message-ID: &lt;423733503.3.1579590775567@duc-HP-ProBook-450-G4&gt;
Subject: UTF-8 8bit multipart
Content-Type: multipart/mixed; 
	boundary=&quot;----=_Part_0_238762799.1579590759052&quot;

------=_Part_0_238762799.1579590759052
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

A 8bit encoded body with &#x20ac;uro symbol.
------=_Part_0_238762799.1579590759052
Content-Type: application/octet-stream; name=james-logo.png
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=james-logo.png

iVBORw0KGgoAAAANSUhEUgAAANkAAABaCAYAAAA1mvMAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAFB1JREFUeNrsXV2MI9lVvuX+m2EXrTtLQGwydPVsRlmkSOOW+BNItB2t
NiAk2n5BeYG2EwkpiSLbPPAjAW7zQiQe3C0SkBBg9ysv7ZZ4AGWFa/KClJeuRQhls2SnOj1pYIfN
1EhICRLj4pzyufbt6rrlW+W/cvc90lGVXVW37r11vnt+7h/zPI/JeJnp8jOmyTRpmhNF4Shzg8ud
059eUxrIiNJYhmEssybL4/G1f3SsGaSNAM7STxfeYWtR0ppMRqs3uNwu8D6wNQVQoelZBc6HaUi4
jgeH3nUKoOtqsdN04zUZCf8ZCPzOhNqwQeCKC/Aj4EN4v6vF7HZrspsOsjYcHoGgd2I+lyVw1SQA
CpqHWYkPiPc24f2HWgw1yG4qyFADnQAXVP0meKZMADOFv9H8O0VzENJxxrxvD7gYeB7NyJLWahpk
Nw5kJPgnJPCVKKBJwNUhTeQkDI6gH1cWtFpBB0k0yG4iyNCU65E51yGNxDUK/veQNE92GuCSBE0a
BDYNNA2ymwcyQdgPSLNkJbeg4B+jaTgNcEnA1qIgigaaBtnNA1nAb+L9XA6xPU1/6eL+G3nhp0ns
B0wyr/5fnt3t733sG+/vaNHUILuRIJsmAZhM0kwPCbi5CE3J/TIMojzC4733v6UDIbcAZKu6emID
C4G0z65HEMcB6xRApTupbyFpkKkBK0uBi6oisJAs9PEAWB1dgxpkmqLNwQa7Hn2MIgRVE8Dl6BrU
pEEWrblqLDoaGTQJ/WFU2s/SpEE2HmB5OLRjmIWoueoaXJo0yNS0l2y8osznqmizUJMGmTrA+KgQ
FdMQfS496FeTBpkiwHIEMBXfC0dplLT20qRBNhuAdQBcFS0ymmYOMhDMtn9isNN731neztWYAKvo
/i5NSSn2sKqLB2+gYOaZMfRPuj7g3l0ewJEP9lgDTNO0aLrDqjLMYSPsZeG8DMfyxU+/4cI5Au3o
3r99K+0jzLUG0zQ3ir8k3Ao7959aIc4Qr3hZlvHKwGcXn/okcjmlWgynm+Q0wDSl11z81CfzpAkC
N4clMJikeO9f3rVTArDwvOsgh6YZmotJFje1h9prqMUCv0f/gXaLvdLTLKmtUj4NME0LNRfv/eu7

=====================================================
== File: mailet/base/src/test/resources/eml/text-only-8bit.eml
=====================================================
Return-Path: &lt;bob@james.org&gt;
MIME-Version: 1.0
Delivered-To: bob@james.org
Received: from 10.233.68.83 (EHLO incoming.james.org) ([10.233.68.83])
          by james-0 (JAMES SMTP Server ) with ESMTP ID -1705393842
          for &lt;bob@james.james.org&gt;;
          Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from smtp.james.org (unknown [10.233.65.0])
	by incoming.james.org (Postfix) with ESMTPS id CCCA943
	for &lt;bob@james.james.org&gt;; Wed, 22 Jan 2020 04:11:54 +0000 (UTC)
Received: from [10.116.29.102] (unknown [1.54.162.156])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.james.org (Postfix) with ESMTPSA id 2B7D13F393
	for &lt;bob@james.org&gt;; Wed, 22 Jan 2020 05:11:53 +0100 (CET)
To: bob@james.org
X-LINAGORA-Copy-Delivery-Done: 1
From: Uncle Bob &lt;bob@james.org&gt;
Subject: quoted
Message-ID: &lt;f4d046a8-e563-1e92-dbd9-c5038603e3a2@james.org&gt;
Date: Wed, 22 Jan 2020 11:11:38 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.2.1
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US

A 8bit encoded body with &#x20ac;uro symbol.


=====================================================
== File: examples/custom-webadmin-route/README.md
=====================================================
# Writing custom webadmin routes

Read this page [on the website](http://james.apache.org/howTo/custom-webadmin-routes.html).

The current project demonstrates how to write custom webadmin routes for Apache James. This enables writing new 
administrative features exposed over a REST API. This can allow you to write some additional features, make James 
interact with third party systems, do advance reporting... 

Start by importing the dependencies:

```
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
    &lt;artifactId&gt;james-server-webadmin-core&lt;/artifactId&gt;
&lt;/dependency&gt;
```

You can then write your first route using the [Spark Java](https://sparkjava.com/) framework:

```
public class RouteA implements Routes {
    @Override
    public String getBasePath() {
        return &quot;/hello/a&quot;;
    }

    @Override
    public void define(Service service) {
        service.get(getBasePath(), (req, res) -&gt; &quot;RouteA\n&quot;);
    }
}
```

Knowing that:
 - entending `Routes` will ensure that authentication is requested if configured.
 - extending `PublicRoutes` will not request authentication.
 
You can compile this example project:

```
mvn clean install
```

Then embed your route into a James server. First configure your route into `webadmin.properties`:

```
enabled=true
port=8000
host=localhost


=====================================================
== File: examples/metrics-graphite/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    depends_on:
      - graphite
    image: apache/james:memory-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - ./target/metrics-graphite-jar-with-dependencies.jar:/root/extensions-jars/metrics-graphite.jar
      - ./james/extensions.properties:/root/conf/extensions.properties

  graphite:
    image: graphiteapp/graphite-statsd
    container_name: graphite

=====================================================
== File: examples/metrics-graphite/james/extensions.properties
=====================================================
# This files enables customization of users extensions injections with guice.
# A user can drop some jar-with-dependencies within the ./extensions-jars folder and
# reference classes of these jars in some of James extension mechanisms.

# This includes mailets, matchers, mailboxListeners, preDeletionHooks, protocolHandlers, webAdmin routes

# Upon injections, the user can reference additional guice modules, that are going to be used only upon extensions instantiation.

#List of coma separated (',') fully qualified class names of additional guice modules to be used to instantiate extensions
guice.extension.startable=org.apache.james.examples.GraphiteExporter

=====================================================
== File: examples/metrics-graphite/README.md
=====================================================
# Custom metric integration

James comes with built in integration with the [Prometheus](https://prometheus.io/) ecosystem, and
a plugin to [export metrics directly to ElasticSearch]() exist.

However, one might be willing to integrate with arbitrary metric system.

This project demonstrate how to leverage [dropwizard metrics](https://metrics.dropwizard.io/4.2.0/)
 [built in extensions](https://metrics.dropwizard.io/4.2.0/manual/graphite.html)
to connect Apache James with [Graphite](https://graphiteapp.org/).

# Running the example

For this we build a GraphiteExporter implementing the `UserDefinedStartable` interface.

Build the project:

```
mvn clean install
```

Drop the jar with dependencies in the James `extensions-jars` folder.

Register it in James configuration, in `extensions.properties`:

```
guice.extension.startable=org.apache.james.examples.GraphiteExporter
```

Then start James.

Metrics can be retrieved in Graphite:

```
curl -XGET http://192.168.64.2:80/metrics/find?query=* | jq
```

![](image/metrics-graphite.png)

# Running the example with docker compose

Compile:

```
mvn clean install
```

Then start James:

```

=====================================================
== File: examples/custom-smtp-hooks/README.md
=====================================================
# Writing custom behaviour for Apache James SMTP server

Read this page [on the website](http://james.apache.org/howTo/custom-smtp-hooks.html).

The current project demonstrates how to write custom behaviours for Apache James SMTP server
by the means of SMTP hooks.

SMTP hooks allow integrating third party systems with the SMTP stack and writing additional SMTP extensions, for
instance.

Start by importing the dependencies:

```
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.james.protocols&lt;/groupId&gt;
    &lt;artifactId&gt;protocols-smtp/artifactId&gt;
&lt;/dependency&gt;
```

Allows writing the following hooks:

 - `AuthHook`: hook in the AUTH Command
 - `HeloHook`: hook in the HELO Command
 - `MailHook`: hook in the MAIL Command
 - `MailParametersHook`: hook for MAIL Command parameters
 - `RcptHook`: hook in the RCPT Command
 - `MessageHook`: hook in the DATA Command
 - `QuitHook`: hook in the QUIT Command
 - `UnknownHook`: hook for unknown commands
 
```
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
    &lt;artifactId&gt;james-server-protocols-smtp&lt;/artifactId&gt;
&lt;/dependency&gt;
```

Allows writing the following hooks:

 - `JamesMessageHook`: DATA command. Allows access to the message content.
 
James comes bundled with [provided SMTP hooks for common features](http://james.apache.org/server/dev-provided-smtp-hooks.html).
We encourage you to review them before starting writing your own hooks.

## Writing your own hooks
 
In this example we implement a single RCPT hook:

```
public class LoggingRcptHook implements RcptHook {

=====================================================
== File: examples/proxy-smtp/docker-compose.yml
=====================================================
version: '3.0'

services:
  haproxy:
    image: haproxytech/haproxy-alpine:2.4
    volumes:
      - ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
    ports:
      - &quot;25:25&quot;
      - 143:143
      - 993:993
      - 465:465
    depends_on:
      - james

  james:
    image: apache/james:memory-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - ./smtpserver.xml:/root/conf/smtpserver.xml:ro
      - ./imapserver.xml:/root/conf/imapserver.xml:ro

  helo:
    image: alpine:latest
    command: &quot;ash -c 'apk add --update --no-cache netcat-openbsd &amp;&amp; echo \&quot;HELO example.local\&quot; | nc haproxy 25'&quot;
    depends_on:
      - haproxy

=====================================================
== File: examples/proxy-smtp/haproxy.cfg
=====================================================
global
  log stdout format raw local0 info

defaults
  mode tcp
  timeout client 1800s
  timeout connect 5s
  timeout server 1800s
  log global
  option tcplog

frontend smtp-frontend
  bind :25
  default_backend james-servers

frontend smtps-frontend
  bind :465
  default_backend smtps-servers

backend james-servers
  server james1 james:2525 send-proxy

backend smtps-servers
  server james1 james:465 send-proxy

frontend imap-frontend
  bind :143
  default_backend james-servers-imap

frontend imaps-frontend
  bind :993
  default_backend james-servers-imaps

backend james-servers-imap
  server james1 james:143 send-proxy

backend james-servers-imaps
  server james1 james:993 send-proxy

=====================================================
== File: examples/proxy-smtp/README.md
=====================================================
# Use one or more James instances behind a proxy

It is common to run a proxy in front of a mail server such as James. The proxy receives incoming
connections and forwards the request (e.g. SMTP) to James. The proxy passes the remote address to
James, so James knows the origin ip address of the remote peer.

So far SMTP has been tested successfully, but is not limited to. Since the proxy protocol
implementation is implemented on Netty level, it can also be used for IMAP.

## Proxy

This example uses [HAProxy](https://www.haproxy.org/). Other proxy software that implement
[HAProxy's proxy protocol](https://www.haproxy.org/download/2.7/doc/proxy-protocol.txt) can also be
used (e.g. [traefik](https://traefik.io)).

It is possible to run more than one James instance and let the proxy decide which connection it
forwards to which instance (i.e. load balancing).

## SMTP

This docker example uses HAProxy exposes port 25 (SMTP)

James might take a while to start. Thus start James first, then haproxy and finally helo.
```shell
docker-compose up -d james
# wait until james is ready
docker-compose up -d haproxy

# sends a &quot;HELO&quot; SMTP command to haproxy that will be forwarded to james. James will answer
# including the remote ip address of the helo container.
docker-compose up helo
```

If you expose HAProxy's port 25 you can also send a HELO using telnet.

Similarly, one can test a setup mixing SSL and SMTP (with James responsible for SSL termination):

```
openssl s_client -host 127.0.0.1 -port 465
```

## IMAP

This docker example uses HAProxy exposes port 143 (SMTP)

Then interacting with HAProxy port 143:

```
telnet 127.0.0.1 143
```

=====================================================
== File: examples/custom-smtp-command/README.md
=====================================================
# Creating your own SMTP commands

Read this page [on the website](http://james.apache.org/howTo/custom-smtp-commands.html).

The current project demonstrates how to write custom commands for Apache James SMTP server.

Start by importing the dependencies:

```
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.james.protocols&lt;/groupId&gt;
    &lt;artifactId&gt;protocols-smtp/artifactId&gt;
&lt;/dependency&gt;
```

You can write your commands by extending the `CommandHandler&lt;SMTPSession&gt;` class. For instance:

```
/**
  * Copy of NoopCmdHandler
  */
public class MyNoopCmdHandler implements CommandHandler&lt;SMTPSession&gt; {
    private static final Collection&lt;String&gt; COMMANDS = ImmutableSet.of(&quot;MYNOOP&quot;);

    private static final Response NOOP = new SMTPResponse(SMTPRetCode.MAIL_OK,
        DSNStatus.getStatus(DSNStatus.SUCCESS, DSNStatus.UNDEFINED_STATUS) + &quot; OK&quot;)
        .immutable();

    @Override
    public Response onCommand(SMTPSession session, Request request) {
        return NOOP;
    }
    
    @Override
    public Collection&lt;String&gt; getImplCommands() {
        return COMMANDS;
    }
}
```

You then need to list the exposed SMTP commands with a `HandlersPackage`. For instance:

```
/**
 * This class copies CoreCmdHandlerLoader adding support for MYNOOP command
 */
public class MyCmdHandlerLoader implements HandlersPackage {

    private final List&lt;String&gt; commands = new LinkedList&lt;&gt;();


=====================================================
== File: examples/custom-listeners/README.md
=====================================================
# Writing custom Mailbox listeners

Mailbox listeners allow extending the behaviour of mail delivery agents.

Read this page [on the website](http://james.apache.org/howTo/custom-listeners.html) to see how to run this example.

=====================================================
== File: examples/custom-imap/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    image: apache/james:memory-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - ./target/custom-imap-jar-with-dependencies.jar:/root/extensions-jars/custom-imap.jar
      - ./sample-configuration/imapserver.xml:/root/conf/imapserver.xml
    ports:
      - &quot;143:143&quot;
      - &quot;8000:8000&quot;

=====================================================
== File: examples/custom-imap/README.md
=====================================================
# Creating your own IMAP commands

James allows defining your own handler packages (logical union).
To do that you need to define `imapPackages` in `imapserver.xml` configuration file.

Eg:

```xml
&lt;imapPackages&gt;org.apache.james.modules.protocols.DefaultImapPackage&lt;/imapPackages&gt;
&lt;imapPackages&gt;org.apache.james.examples.imap.PingImapPackages&lt;/imapPackages&gt;
```
Sample configure file: [imapserver.xml](./sample-configuration/imapserver.xml)

Note that when `imapPackages` is not provided, James will implicit use
`org.apache.James.modules.protocols.DefaultImapPackage`

## Running the example

Build the project:

```
mvn clean install
```

Drop the jar with dependencies in the James `extensions-jars` folder.

Then start James.

## Running the example with docker compose

Compile:

```
mvn clean install
```

Then start James:

```
docker-compose up
```

Test with imap package: `org.apache.james.examples.imap.PingImapPackages`

Command example:
```bash
telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

=====================================================
== File: examples/custom-mailets/README.md
=====================================================
# How to customize mail processing

Mailet and matcher allow in depth customisation of mail processing within 
Apache James, even allowing writing custom components.

Read this page [on the website](http://james.apache.org/howTo/mail-processing.html) to see how to run this example.

=====================================================
== File: examples/custom-healthcheck/README.md
=====================================================
# Writing custom healthchecks

Read this page [on the website](http://james.apache.org/howTo/custom-healthchecks.html).

The current project demonstrates how to write custom healthchecks for Apache James. 
This enables writing new custom healthcheck that fits your monitoring need.

Start by importing the dependencies:

```
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.james&lt;/groupId&gt;
    &lt;artifactId&gt;james-core&lt;/artifactId&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
    &lt;groupId&gt;io.projectreactor&lt;/groupId&gt;
    &lt;artifactId&gt;reactor-core&lt;/artifactId&gt;
&lt;/dependency&gt;
```

You can then start writing your first HealthCheck by implementing HealthCheck interface.
 
You can compile this example project:

```
mvn clean install
```

Then embed your healthcheck into a James server. First configure your custom healthcheck into `healthcheck.properties`:

```
# List of fully qualified HealthCheck class names in addition to James' default healthchecks.
# Healthchecks need to be located within the classpath or in the ./extensions-jars folder.
additional.healthchecks=org.apache.james.examples.HealthCheckA
```

Then start a James server with your JAR and the configuration:

```
$ docker run -d \
   -v $PWD/healthcheck.properties:/root/conf/healthcheck.properties \
   -v $PWD/healthcheck-extension.jar:/root/extensions-jars \
   -p 25:25 \
   apache/james:memory-latest --generate-keystore
```

You can use `curl` command to get your healthcheck status:

```
$ curl -XGET http://172.17.0.2:8000/healthcheck

=====================================================
== File: examples/README.md
=====================================================
# Examples

This submodule shows how one can work with James. 

Each subprojects illustrate a specific concept.

## How to customize mail processing

At the heart of James lies the Mailet container, which allows mail processing. This is splitted into smaller units, with specific responsibilities:

 - `Mailets`: Are operations performed with the mail: modifying it, performing a side-effect, etc...
 - `Matchers`: Are per-recipient conditions for mailet executions
 - `Processors`: Are matcher/mailet pair execution threads

Once we define the mailet container content through the mailetcontailer.xml file. Hence, we can arrange James standard 
components to achieve basic logic. But what if our goals are more complex? What if we need our own processing components?

[This example](custom-mailets) shows how to write such components!

## Configure Custom Mailbox Listeners

Mailbox Listener is a component in James Mailbox System. Each time an action is applied on a mailbox(adding, deleting),
 or on an email(adding, deleting, updating flags...), then an event representing that action is generated and delivered 
 to all the Listeners that had been registered before. After receiving events, listeners retrieve information from the 
 events then execute their business (Indexing emails in OpenSearch, updating quota of users, detecting spam emails...)
 
**Mailbox Listeners** allow customizing the behaviour of James used as a Mail Delivery Agent (MDA). 

[This example](custom-listeners) shows how to write such components!

## Configure Custom SMTP hooks

SMTP hooks allow integrating third party systems with the SMTP stack, allows writing additional SMTP extensions, for 
instance. 

[This example](custom-smtp-hooks) shows how to write such components!

## Configure Custom SMTP commands

This subproject demonstrates how to write custom commands for Apache James SMTP server. 

[This example](custom-smtp-command) shows how to write additional SMTP commands!

## Configure Custom WebAdmin routes

The current project demonstrates how to write custom webadmin routes for Apache James. This enables writing new 
administrative features exposed over a REST API. This can allow you to write some additional features, make James 
interact with third party systems, do advance reporting... 

[This example](custom-webadmin-route) shows how to write additional Webadmin routes!

=====================================================
== File: examples/imap-autoconf/content/mail/config-v1.1.xml
=====================================================
&lt;clientConfig version=&quot;1.1&quot;&gt;
    &lt;emailProvider id=&quot;MessagingEngine&quot;&gt;
        &lt;domain&gt;domain.tld&lt;/domain&gt;
        &lt;displayName&gt;My company&lt;/displayName&gt;
        &lt;displayShortName&gt;My company&lt;/displayShortName&gt;
        &lt;incomingServer type=&quot;imap&quot;&gt;
            &lt;hostname&gt;imap.domain.tld&lt;/hostname&gt;
            &lt;port&gt;993&lt;/port&gt;
            &lt;socketType&gt;SSL&lt;/socketType&gt;
            &lt;authentication&gt;password-cleartext&lt;/authentication&gt;
            &lt;username&gt;%EMAILADDRESS%&lt;/username&gt;
        &lt;/incomingServer&gt;
        &lt;outgoingServer type=&quot;smtp&quot;&gt;
            &lt;hostname&gt;smtp.domain.tld&lt;/hostname&gt;
            &lt;port&gt;465&lt;/port&gt;
            &lt;socketType&gt;SSL&lt;/socketType&gt;
            &lt;authentication&gt;password-cleartext&lt;/authentication&gt;
            &lt;username&gt;%EMAILADDRESS%&lt;/username&gt;
        &lt;/outgoingServer&gt;
    &lt;/emailProvider&gt;
&lt;/clientConfig&gt;

=====================================================
== File: examples/imap-autoconf/content/Autodiscover/Autodiscover.xml
=====================================================
&lt;Autodiscover xmlns=&quot;http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006&quot;&gt;
    &lt;Response xmlns=&quot;http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a&quot;&gt;
        &lt;Account&gt;
            &lt;AccountType&gt;email&lt;/AccountType&gt;
            &lt;Action&gt;settings&lt;/Action&gt;
            &lt;Protocol&gt;
                &lt;Type&gt;IMAP&lt;/Type&gt;
                &lt;Server&gt;imaps.avocat.fr&lt;/Server&gt;
                &lt;Port&gt;993&lt;/Port&gt;
                &lt;DomainRequired&gt;off&lt;/DomainRequired&gt;
                &lt;LoginName/&gt;
                &lt;SPA&gt;off&lt;/SPA&gt;
                &lt;SSL&gt;on&lt;/SSL&gt;
                &lt;AuthRequired&gt;on&lt;/AuthRequired&gt;
            &lt;/Protocol&gt;
            &lt;Protocol&gt;
                &lt;Type&gt;SMTP&lt;/Type&gt;
                &lt;Server&gt;smtps.avocat.fr&lt;/Server&gt;
                &lt;Port&gt;465&lt;/Port&gt;
                &lt;DomainRequired&gt;off&lt;/DomainRequired&gt;
                &lt;LoginName/&gt;
                &lt;SPA&gt;off&lt;/SPA&gt;
                &lt;Encryption&gt;SSL&lt;/Encryption&gt;
                &lt;AuthRequired&gt;on&lt;/AuthRequired&gt;
                &lt;UsePOPAuth&gt;off&lt;/UsePOPAuth&gt;
                &lt;SMTPLast&gt;off&lt;/SMTPLast&gt;
            &lt;/Protocol&gt;
        &lt;/Account&gt;
    &lt;/Response&gt;
&lt;/Autodiscover&gt;

=====================================================
== File: examples/imap-autoconf/content/.well-known/autoconfig/mail/config-v1.1.xml
=====================================================
&lt;clientConfig version=&quot;1.1&quot;&gt;
    &lt;emailProvider id=&quot;MessagingEngine&quot;&gt;
        &lt;domain&gt;domain.tld&lt;/domain&gt;
        &lt;displayName&gt;My company&lt;/displayName&gt;
        &lt;displayShortName&gt;My company&lt;/displayShortName&gt;
        &lt;incomingServer type=&quot;imap&quot;&gt;
            &lt;hostname&gt;imap.domain.tld&lt;/hostname&gt;
            &lt;port&gt;993&lt;/port&gt;
            &lt;socketType&gt;SSL&lt;/socketType&gt;
            &lt;authentication&gt;password-cleartext&lt;/authentication&gt;
            &lt;username&gt;%EMAILADDRESS%&lt;/username&gt;
        &lt;/incomingServer&gt;
        &lt;outgoingServer type=&quot;smtp&quot;&gt;
            &lt;hostname&gt;smtp.domain.tld&lt;/hostname&gt;
            &lt;port&gt;465&lt;/port&gt;
            &lt;socketType&gt;SSL&lt;/socketType&gt;
            &lt;authentication&gt;password-cleartext&lt;/authentication&gt;
            &lt;username&gt;%EMAILADDRESS%&lt;/username&gt;
        &lt;/outgoingServer&gt;
    &lt;/emailProvider&gt;
&lt;/clientConfig&gt;

=====================================================
== File: examples/imap-autoconf/content/autodiscover/autodiscover.xml
=====================================================
&lt;Autodiscover xmlns=&quot;http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006&quot;&gt;
    &lt;Response xmlns=&quot;http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a&quot;&gt;
        &lt;Account&gt;
            &lt;AccountType&gt;email&lt;/AccountType&gt;
            &lt;Action&gt;settings&lt;/Action&gt;
            &lt;Protocol&gt;
                &lt;Type&gt;IMAP&lt;/Type&gt;
                &lt;Server&gt;imap.domain.tld&lt;/Server&gt;
                &lt;Port&gt;993&lt;/Port&gt;
                &lt;DomainRequired&gt;off&lt;/DomainRequired&gt;
                &lt;LoginName/&gt;
                &lt;SPA&gt;off&lt;/SPA&gt;
                &lt;SSL&gt;on&lt;/SSL&gt;
                &lt;AuthRequired&gt;on&lt;/AuthRequired&gt;
            &lt;/Protocol&gt;
            &lt;Protocol&gt;
                &lt;Type&gt;SMTP&lt;/Type&gt;
                &lt;Server&gt;smtp.domain.tld&lt;/Server&gt;
                &lt;Port&gt;465&lt;/Port&gt;
                &lt;DomainRequired&gt;off&lt;/DomainRequired&gt;
                &lt;LoginName/&gt;
                &lt;SPA&gt;off&lt;/SPA&gt;
                &lt;Encryption&gt;SSL&lt;/Encryption&gt;
                &lt;AuthRequired&gt;on&lt;/AuthRequired&gt;
                &lt;UsePOPAuth&gt;off&lt;/UsePOPAuth&gt;
                &lt;SMTPLast&gt;off&lt;/SMTPLast&gt;
            &lt;/Protocol&gt;
        &lt;/Account&gt;
    &lt;/Response&gt;
&lt;/Autodiscover&gt;

=====================================================
== File: examples/imap-autoconf/docker-compose.yml
=====================================================
version: '3'

services:

  james:
    image: apache/james:memory-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    ports:
      - &quot;465:465&quot;
      - &quot;993:993&quot;
      - &quot;8000:8000&quot;
  autoconf:
    image: nginx
    container_name: autoconf
    volumes:
     - ./content:/usr/share/nginx/html
    ports:
     - &quot;80:80&quot;

=====================================================
== File: examples/imap-autoconf/README.adoc
=====================================================
= Auto-configuration of Mail User Agents

== RFC-6186 use of SRV records

link:https://tools.ietf.org/html/rfc6186[RFC-6186] defines the usage of SRV records in order
to help users configuring their Mail User Agents in order to access your service, as it allows
to locate your services (hostnames and ports).

You would then need to publish SRV records on your DNS.

----
_imaps._tcp.domain.tld. 3600       IN    SRV    0 1 993 imap.domain.tld.
_submission._tcp.domain.tld. 3600  IN    SRV    0 1 587 smtp.domain.tld.
_jmap._tcp.domain.tld. 3600        IN    SRV    0 1 443 jmap.domain.tld.
----

== Thunderbird

Thunderbird relies on a custom XML payload being served on a subdomain.

For `user@domain.tld` an HTTP GET request would be done at `http://autoconfig.domain.tld/mail/config-v1.1.xml`

You could for instance serve the following XML payload:

[xml]
----
&lt;clientConfig version=&quot;1.1&quot;&gt;
  &lt;emailProvider id=&quot;MessagingEngine&quot;&gt;
    &lt;domain&gt;domain.tld&lt;/domain&gt;
    &lt;displayName&gt;My company&lt;/displayName&gt;
    &lt;displayShortName&gt;My company&lt;/displayShortName&gt;
    &lt;incomingServer type=&quot;imap&quot;&gt;
      &lt;hostname&gt;imap.domain.tld&lt;/hostname&gt;
      &lt;port&gt;993&lt;/port&gt;
      &lt;socketType&gt;SSL&lt;/socketType&gt;
      &lt;authentication&gt;password-cleartext&lt;/authentication&gt;
      &lt;username&gt;%EMAILADDRESS%&lt;/username&gt;
    &lt;/incomingServer&gt;
    &lt;outgoingServer type=&quot;smtp&quot;&gt;
      &lt;hostname&gt;smtp.domain.tld&lt;/hostname&gt;
      &lt;port&gt;465&lt;/port&gt;
      &lt;socketType&gt;SSL&lt;/socketType&gt;
      &lt;authentication&gt;password-cleartext&lt;/authentication&gt;
      &lt;username&gt;%EMAILADDRESS%&lt;/username&gt;
    &lt;/outgoingServer&gt;
  &lt;/emailProvider&gt;
&lt;/clientConfig&gt;
----

== JMAP

=====================================================
== File: examples/imap-autoconf/default.conf
=====================================================
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page  405     =200 $uri;

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}


=====================================================
== File: examples/custom-james-assembly/README.md
=====================================================
# Assemble a James server tailored to your needs

Read this page [on the website](http://james.apache.org/howTo/custom-james-assembly.html).

The current project demonstrates how to write a custom assembly in order to write your
own tailor-made server.

This enables:

 - Arbitrary composition of technologies (example JPA mailbox with Cassandra user management)
 - Write any additional components
 - Drop any unneeded component
 - You have control on the dependencies and can reduce the classpath size

## Example: Write an IMAP+SMTP only memory server

In order to do this select the modules you wished to assemble [in the Guice building blocks](https://github.com/apache/james-project/tree/master/server/container/guice). We encourage you to have
a fine grain control of your dependencies but for the sake of simplicity this example will reuse the dependencies of an
existing James application:

```
&lt;dependency&gt;
    &lt;groupId&gt;${james.groupId}&lt;/groupId&gt;
    &lt;artifactId&gt;james-server-memory-app&lt;/artifactId&gt;
    &lt;version&gt;${project.version}&lt;/version&gt;
&lt;/dependency&gt;
```

Once done assemble the guice modules together in a class implementing `JamesServerMain`:

```
public class CustomJamesServerMain implements JamesServerMain {
       public static final Module PROTOCOLS = Modules.combine(
           new IMAPServerModule(),
           new ProtocolHandlerModule(),
           new MailRepositoryTaskSerializationModule(),
           new SMTPServerModule());
   
       public static final Module CUSTOM_SERVER_MODULE = Modules.combine(
           new MailetProcessingModule(),
           new MailboxModule(),
           new MemoryDataModule(),
           new MemoryEventStoreModule(),
           new MemoryMailboxModule(),
           new MemoryMailQueueModule(),
           new TaskManagerModule(),
           new RawPostDequeueDecoratorModule(),
           binder -&gt; binder.bind(MailetContainerModule.DefaultProcessorsConfigurationSupplier.class)
               .toInstance(BaseHierarchicalConfiguration::new));
   

=====================================================
== File: examples/oidc/test.sh
=====================================================
#!/bin/sh

set -eux

docker-compose up -d

GET_TOKEN_RESPONSE=`curl --location 'http://sso.example.com:8080/auth/realms/oidc/protocol/openid-connect/token' \
                                  --header 'Content-Type: application/x-www-form-urlencoded' \
                                  --data-urlencode 'grant_type=password' \
                                  --data-urlencode 'scope=openid profile email' \
                                  --data-urlencode 'client_id=james-thunderbird' \
                                  --data-urlencode 'client_secret=Xw9ht1veTu0Tk5sMMy03PdzY3AiFvssw' \
                                  --data-urlencode 'username=james-user@localhost' \
                                  --data-urlencode 'password=secret' 2&gt;/dev/null`

ACCESS_TOKEN=`echo $GET_TOKEN_RESPONSE 2&gt;/dev/null |perl -pe 's/^.*&quot;access_token&quot;\s*:\s*&quot;(.*?)&quot;.*$/$1/'`
REFRESH_TOKEN=`echo $GET_TOKEN_RESPONSE 2&gt;/dev/null |perl -pe 's/^.*&quot;refresh_token&quot;\s*:\s*&quot;(.*?)&quot;.*$/$1/'`

echo &quot;Got an access_token&quot;
if curl -H &quot;Authorization: Bearer $ACCESS_TOKEN&quot; http://sso.example.com:8080/auth/realms/oidc/protocol/openid-connect/userinfo 2&gt;/dev/null| grep james-user &gt;/dev/null; then
	echo &quot;Access_token is valid&quot;
else
	echo &quot;ACCESS_TOKEN VERIFICATION FAILED&quot;
fi

echo -n &quot;Trying James: &quot;

APISIX_JMAP_ENDPOINT=apisix.example.com:9080/oidc/jmap/session
if curl -v -H 'Accept: application/json; jmapVersion=rfc-8621' -H &quot;Authorization: Bearer $ACCESS_TOKEN&quot; $APISIX_JMAP_ENDPOINT 2&gt;/dev/null | grep uploadUrl &gt;/dev/null; then
	echo &quot;OK&quot;
else
	echo &quot;Not OK&quot;
fi

# Logout

curl --location 'http://sso.example.com:8080/auth/realms/oidc/protocol/openid-connect/logout' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=james-thunderbird' \
--data-urlencode 'client_secret=Xw9ht1veTu0Tk5sMMy03PdzY3AiFvssw' \
--data-urlencode 'refresh_token='$REFRESH_TOKEN  &gt;/dev/null 2&gt;&amp;1

sleep 1

if curl -v -H 'Accept: application/json; jmapVersion=rfc-8621' -H &quot;Authorization: Bearer $ACCESS_TOKEN&quot; $APISIX_JMAP_ENDPOINT 2&gt;/dev/null | grep uploadUrl &gt;/dev/null; then
	echo &quot;LOGOUT FAILED&quot;
else
	echo &quot;Logout OK&quot;
fi

=====================================================
== File: examples/oidc/docker-compose.yml
=====================================================
version: &quot;3&quot;

services:
  apisix:
    container_name: apisix.example.com
    image: linagora/apisix:3.2.0-debian-javaplugin
    volumes:
      - ./apisix/conf/apisix.yaml:/usr/local/apisix/conf/apisix.yaml
      - ./apisix/conf/config.yaml:/usr/local/apisix/conf/config.yaml
    networks:
      - james
    ports:
      - &quot;9080:9080/tcp&quot;

  james:
    depends_on:
      - ldap
    networks:
      - james
    image: apache/james:memory-latest
    container_name: james
    hostname: james.local
    command:
      - --generate-keystore
    volumes:
      - ./james/usersrepository.xml:/root/conf/usersrepository.xml
      - ./james/jmap.properties:/root/conf/jmap.properties
    ports:
      - &quot;8000:8000&quot;
    healthcheck:
      test: [&quot;CMD&quot;, &quot;curl&quot;, &quot;-f&quot;, &quot;http://james:8000/domains&quot;]

  sso.example.com:
    depends_on:
      - ldap
    image: quay.io/keycloak/keycloak:16.1.0
    container_name: sso.example.com
    volumes:
      - ./keycloak/realm-oidc.json:/tmp/realm-oidc.json
    ports:
      - &quot;8080:8080&quot;
    environment:
      - KEYCLOAK_USER=admin
      - KEYCLOAK_PASSWORD=admin
      - KEYCLOAK_IMPORT=/tmp/realm-oidc.json
    networks:
      james:
        aliases:
          - keycloak


=====================================================
== File: examples/oidc/james/imapserver.xml
=====================================================
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;imapservers&gt;
    &lt;imapserver enabled=&quot;true&quot;&gt;
        &lt;jmxName&gt;imapserver&lt;/jmxName&gt;
        &lt;bind&gt;0.0.0.0:143&lt;/bind&gt;
        &lt;connectionBacklog&gt;200&lt;/connectionBacklog&gt;
        &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;false&quot;&gt;
            &lt;keystore&gt;file://conf/keystore&lt;/keystore&gt;
            &lt;keystoreType&gt;PKCS12&lt;/keystoreType&gt;
            &lt;secret&gt;james72laBalle&lt;/secret&gt;
            &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
        &lt;/tls&gt;
        &lt;connectionLimit&gt;0&lt;/connectionLimit&gt;
        &lt;connectionLimitPerIP&gt;0&lt;/connectionLimitPerIP&gt;
        &lt;idleTimeInterval&gt;120&lt;/idleTimeInterval&gt;
        &lt;idleTimeIntervalUnit&gt;SECONDS&lt;/idleTimeIntervalUnit&gt;
        &lt;enableIdle&gt;true&lt;/enableIdle&gt;
        &lt;auth&gt;
            &lt;plainAuthEnabled&gt;true&lt;/plainAuthEnabled&gt;
            &lt;oidc&gt;
                &lt;oidcConfigurationURL&gt;http://keycloak:8080/auth/realms/oidc/.well-known/openid-configuration&lt;/oidcConfigurationURL&gt;
                &lt;jwksURL&gt;http://keycloak:8080/auth/realms/oidc/protocol/openid-connect/certs&lt;/jwksURL&gt;
                &lt;claim&gt;email&lt;/claim&gt;
                &lt;scope&gt;openid profile email&lt;/scope&gt;
                &lt;introspection&gt;
                    &lt;url&gt;http://keycloak:8080/auth/realms/oidc/protocol/openid-connect/token/introspect&lt;/url&gt;
                    &lt;auth&gt;Basic amFtZXMtdGh1bmRlcmJpcmQ6WHc5aHQxdmVUdTBUazVzTU15MDNQZHpZM0FpRnZzc3c=&lt;/auth&gt;
                &lt;/introspection&gt;
            &lt;/oidc&gt;
        &lt;/auth&gt;
    &lt;/imapserver&gt;
&lt;/imapservers&gt;

=====================================================
== File: examples/oidc/james/jmap.properties
=====================================================
# Configuration file for JMAP
# Read https://james.apache.org/server/config-jmap.html for further details

enabled=true                                                                                                                                                                           

tls.keystoreURL=file://conf/keystore
tls.secret=james72laBalle                                                                  

# Alternatively TLS keys can be supplied via PEM files
# tls.privateKey=file://conf/private.nopass.key
# tls.certificates=file://conf/certs.self-signed.csr
# An optional secret might be specified for the private key
# tls.secret=james72laBalle

#
# If you wish to use OAuth authentication, you should provide a valid JWT public key.
# The following entry specify the link to the URL of the public key file,
# which should be a PEM format file.
#
#jwt.publickeypem.url=file://conf/jwt_publickey

# Should simple Email/query be resolved against a Cassandra projection, or should we resolve them against OpenSearch?
# This enables a higher resilience, but the projection needs to be correctly populated. False by default.
# view.email.query.enabled=true

# If you want to specify authentication strategies for Jmap draft version
# For custom Authentication Strategy not inside package &quot;org.apache.james.jmap.http&quot;, you have to specify its FQDN
# authentication.strategy.draft=AccessTokenAuthenticationStrategy,JWTAuthenticationStrategy,QueryParameterAccessTokenAuthenticationStrategy

# If you want to specify authentication strategies for Jmap rfc-8621 version
# For custom Authentication Strategy not inside package &quot;org.apache.james.jmap.http&quot;, you have to specify its FQDN
authentication.strategy.rfc8621=BasicAuthenticationStrategy,XUserAuthenticationStrategy

=====================================================
== File: examples/oidc/james/smtpserver.xml
=====================================================
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;smtpservers&gt;
    &lt;smtpserver enabled=&quot;true&quot;&gt;
        &lt;jmxName&gt;smtpserver&lt;/jmxName&gt;
        &lt;bind&gt;0.0.0.0:587&lt;/bind&gt;
        &lt;connectionBacklog&gt;200&lt;/connectionBacklog&gt;
        &lt;tls socketTLS=&quot;false&quot; startTLS=&quot;false&quot;&gt;
            &lt;keystore&gt;file://conf/keystore&lt;/keystore&gt;
            &lt;keystoreType&gt;PKCS12&lt;/keystoreType&gt;
            &lt;secret&gt;james72laBalle&lt;/secret&gt;
            &lt;provider&gt;org.bouncycastle.jce.provider.BouncyCastleProvider&lt;/provider&gt;
            &lt;algorithm&gt;SunX509&lt;/algorithm&gt;
        &lt;/tls&gt;
        &lt;connectiontimeout&gt;360&lt;/connectiontimeout&gt;
        &lt;connectionLimit&gt;0&lt;/connectionLimit&gt;
        &lt;connectionLimitPerIP&gt;0&lt;/connectionLimitPerIP&gt;
        &lt;auth&gt;
            &lt;announce&gt;forUnauthorizedAddresses&lt;/announce&gt;
            &lt;plainAuthEnabled&gt;true&lt;/plainAuthEnabled&gt;
            &lt;oidc&gt;
                &lt;oidcConfigurationURL&gt;http://keycloak:8080/auth/realms/oidc/.well-known/openid-configuration&lt;/oidcConfigurationURL&gt;
                &lt;jwksURL&gt;http://keycloak:8080/auth/realms/oidc/protocol/openid-connect/certs&lt;/jwksURL&gt;
                &lt;claim&gt;email&lt;/claim&gt;
                &lt;scope&gt;openid profile email&lt;/scope&gt;
                &lt;introspection&gt;
                    &lt;url&gt;http://keycloak:8080/auth/realms/oidc/protocol/openid-connect/token/introspect&lt;/url&gt;
                    &lt;auth&gt;Basic amFtZXMtdGh1bmRlcmJpcmQ6WHc5aHQxdmVUdTBUazVzTU15MDNQZHpZM0FpRnZzc3c=&lt;/auth&gt;
                &lt;/introspection&gt;
            &lt;/oidc&gt;
        &lt;/auth&gt;
        &lt;authorizedAddresses&gt;127.0.0.0/8&lt;/authorizedAddresses&gt;
        &lt;verifyIdentity&gt;false&lt;/verifyIdentity&gt;
        &lt;maxmessagesize&gt;0&lt;/maxmessagesize&gt;
        &lt;addressBracketsEnforcement&gt;true&lt;/addressBracketsEnforcement&gt;
        &lt;smtpGreeting&gt;Apache JAMES awesome SMTP Server&lt;/smtpGreeting&gt;
        &lt;handlerchain&gt;
            &lt;handler class=&quot;org.apache.james.smtpserver.fastfail.ValidRcptHandler&quot;/&gt;
            &lt;handler class=&quot;org.apache.james.smtpserver.CoreCmdHandlerLoader&quot;/&gt;
        &lt;/handlerchain&gt;
    &lt;/smtpserver&gt;
&lt;/smtpservers&gt;



=====================================================
== File: examples/oidc/_media/oidc-sso.drawio
=====================================================
&lt;mxfile host=&quot;drawio-plugin&quot; modified=&quot;2023-05-19T09:35:49.753Z&quot; agent=&quot;5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36&quot; etag=&quot;8cXSAneUY9EacNUk1MxU&quot; version=&quot;20.5.3&quot; type=&quot;embed&quot;&gt;&lt;diagram id=&quot;9t5u96WNi0rS4HrvDtxI&quot; name=&quot;Page-1&quot;&gt;&lt;mxGraphModel dx=&quot;1045&quot; dy=&quot;583&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;850&quot; pageHeight=&quot;1100&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&lt;root&gt;&lt;mxCell id=&quot;0&quot;/&gt;&lt;mxCell id=&quot;1&quot; parent=&quot;0&quot;/&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-1&quot; value=&quot;Apisix&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;API gateway&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;300&quot; y=&quot;320&quot; width=&quot;140&quot; height=&quot;140&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-2&quot; value=&quot;&quot; style=&quot;shape=actor;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;50&quot; y=&quot;300&quot; width=&quot;40&quot; height=&quot;60&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-4&quot; value=&quot;Keycloack&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;OIDC provider&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;300&quot; y=&quot;80&quot; width=&quot;140&quot; height=&quot;140&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-5&quot; value=&quot;James&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;JMAP server&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;600&quot; y=&quot;320&quot; width=&quot;140&quot; height=&quot;140&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-7&quot; value=&quot;&quot; style=&quot;shape=flexArrow;endArrow=classic;html=1;rounded=0;&quot; parent=&quot;1&quot; edge=&quot;1&quot;&gt;&lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;mxPoint x=&quot;110&quot; y=&quot;360&quot; as=&quot;sourcePoint&quot;/&gt;&lt;mxPoint x=&quot;290&quot; y=&quot;390&quot; as=&quot;targetPoint&quot;/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-8&quot; value=&quot;&quot; style=&quot;shape=flexArrow;endArrow=classic;html=1;rounded=0;&quot; parent=&quot;1&quot; edge=&quot;1&quot;&gt;&lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;mxPoint x=&quot;100&quot; y=&quot;400&quot; as=&quot;sourcePoint&quot;/&gt;&lt;mxPoint x=&quot;280&quot; y=&quot;430&quot; as=&quot;targetPoint&quot;/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-9&quot; value=&quot;&quot; style=&quot;shape=flexArrow;endArrow=classic;html=1;rounded=0;&quot; parent=&quot;1&quot; edge=&quot;1&quot;&gt;&lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;mxPoint x=&quot;450&quot; y=&quot;400&quot; as=&quot;sourcePoint&quot;/&gt;&lt;mxPoint x=&quot;590&quot; y=&quot;400&quot; as=&quot;targetPoint&quot;/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-10&quot; value=&quot;&quot; style=&quot;shape=flexArrow;endArrow=classic;html=1;rounded=0;&quot; parent=&quot;1&quot; edge=&quot;1&quot;&gt;&lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;mxPoint x=&quot;110&quot; y=&quot;330&quot; as=&quot;sourcePoint&quot;/&gt;&lt;mxPoint x=&quot;290&quot; y=&quot;200&quot; as=&quot;targetPoint&quot;/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-11&quot; value=&quot;1. Un-authenticated request will be rejected&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;130&quot; y=&quot;300&quot; width=&quot;210&quot; height=&quot;70&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-12&quot; value=&quot;2. Login against keycloack&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;40&quot; y=&quot;180&quot; width=&quot;210&quot; height=&quot;70&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-13&quot; value=&quot;3. Use of the access token to authenticate against Apisix&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;60&quot; y=&quot;420&quot; width=&quot;210&quot; height=&quot;70&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-14&quot; value=&quot;4. use of the X-User header to proxy authentication to Apache James&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;410&quot; y=&quot;430&quot; width=&quot;210&quot; height=&quot;70&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-15&quot; value=&quot;LDAP&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;600&quot; y=&quot;80&quot; width=&quot;140&quot; height=&quot;140&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-16&quot; value=&quot;&quot; style=&quot;endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;&quot; parent=&quot;1&quot; source=&quot;TRxEg24sL5Zt3rOSAXKO-5&quot; target=&quot;TRxEg24sL5Zt3rOSAXKO-15&quot; edge=&quot;1&quot;&gt;&lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;mxPoint x=&quot;400&quot; y=&quot;310&quot; as=&quot;sourcePoint&quot;/&gt;&lt;mxPoint x=&quot;450&quot; y=&quot;260&quot; as=&quot;targetPoint&quot;/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-17&quot; value=&quot;&quot; style=&quot;endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;&quot; parent=&quot;1&quot; source=&quot;TRxEg24sL5Zt3rOSAXKO-4&quot; target=&quot;TRxEg24sL5Zt3rOSAXKO-15&quot; edge=&quot;1&quot;&gt;&lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;mxPoint x=&quot;400&quot; y=&quot;310&quot; as=&quot;sourcePoint&quot;/&gt;&lt;mxPoint x=&quot;450&quot; y=&quot;260&quot; as=&quot;targetPoint&quot;/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-18&quot; value=&quot;Verify credentials&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;490&quot; y=&quot;110&quot; width=&quot;60&quot; height=&quot;30&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-19&quot; value=&quot;List users,&amp;lt;br&amp;gt;Verify that user exists&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;590&quot; y=&quot;260&quot; width=&quot;60&quot; height=&quot;30&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;&lt;/diagram&gt;&lt;/mxfile&gt;

=====================================================
== File: examples/oidc/_media/oidc-slo.drawio
=====================================================
&lt;mxfile host=&quot;drawio-plugin&quot; modified=&quot;2023-05-19T09:39:47.749Z&quot; agent=&quot;5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36&quot; etag=&quot;MQ-wdtVOlcMwVUt4tywV&quot; version=&quot;20.5.3&quot; type=&quot;embed&quot;&gt;&lt;diagram id=&quot;9t5u96WNi0rS4HrvDtxI&quot; name=&quot;Page-1&quot;&gt;&lt;mxGraphModel dx=&quot;1045&quot; dy=&quot;583&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;850&quot; pageHeight=&quot;1100&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&lt;root&gt;&lt;mxCell id=&quot;0&quot;/&gt;&lt;mxCell id=&quot;1&quot; parent=&quot;0&quot;/&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-1&quot; value=&quot;Apisix&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;API gateway&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;450&quot; y=&quot;320&quot; width=&quot;140&quot; height=&quot;140&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-2&quot; value=&quot;&quot; style=&quot;shape=actor;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;50&quot; y=&quot;300&quot; width=&quot;40&quot; height=&quot;60&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-4&quot; value=&quot;Keycloack&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;OIDC provider&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;260&quot; y=&quot;90&quot; width=&quot;140&quot; height=&quot;140&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-20&quot; value=&quot;&quot; style=&quot;shape=flexArrow;endArrow=classic;html=1;rounded=0;&quot; parent=&quot;1&quot; target=&quot;TRxEg24sL5Zt3rOSAXKO-4&quot; edge=&quot;1&quot;&gt;&lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;mxPoint x=&quot;110&quot; y=&quot;330&quot; as=&quot;sourcePoint&quot;/&gt;&lt;mxPoint x=&quot;450&quot; y=&quot;260&quot; as=&quot;targetPoint&quot;/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-21&quot; value=&quot;1. logout with keycloack logout endpoint&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;50&quot; y=&quot;180&quot; width=&quot;190&quot; height=&quot;80&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-22&quot; value=&quot;Apisix plugin runner&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;475&quot; y=&quot;220&quot; width=&quot;80&quot; height=&quot;80&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-23&quot; value=&quot;&quot; style=&quot;shape=flexArrow;endArrow=classic;html=1;rounded=0;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;&quot; parent=&quot;1&quot; source=&quot;TRxEg24sL5Zt3rOSAXKO-4&quot; target=&quot;TRxEg24sL5Zt3rOSAXKO-22&quot; edge=&quot;1&quot;&gt;&lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;mxPoint x=&quot;400&quot; y=&quot;310&quot; as=&quot;sourcePoint&quot;/&gt;&lt;mxPoint x=&quot;450&quot; y=&quot;260&quot; as=&quot;targetPoint&quot;/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-24&quot; value=&quot;2. Use of logout backchannel (HTTP call)&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;450&quot; y=&quot;150&quot; width=&quot;130&quot; height=&quot;50&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-27&quot; value=&quot;&quot; style=&quot;shape=flexArrow;endArrow=classic;html=1;rounded=0;startArrow=none;entryX=0;entryY=0.75;entryDx=0;entryDy=0;&quot; parent=&quot;1&quot; source=&quot;TRxEg24sL5Zt3rOSAXKO-29&quot; target=&quot;2&quot; edge=&quot;1&quot;&gt;&lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;mxPoint x=&quot;120&quot; y=&quot;340&quot; as=&quot;sourcePoint&quot;/&gt;&lt;mxPoint x=&quot;290&quot; y=&quot;390&quot; as=&quot;targetPoint&quot;/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-28&quot; value=&quot;3.Access tokens used after logout are rejected&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;130&quot; y=&quot;430&quot; width=&quot;120&quot; height=&quot;30&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-29&quot; value=&quot;&quot; style=&quot;verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.no_symbol;fillColor=#f8cecc;strokeColor=#b85450;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;160&quot; y=&quot;310&quot; width=&quot;100&quot; height=&quot;100&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;TRxEg24sL5Zt3rOSAXKO-30&quot; value=&quot;&quot; style=&quot;shape=flexArrow;endArrow=none;html=1;rounded=0;&quot; parent=&quot;1&quot; target=&quot;TRxEg24sL5Zt3rOSAXKO-29&quot; edge=&quot;1&quot;&gt;&lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&lt;mxPoint x=&quot;120&quot; y=&quot;340&quot; as=&quot;sourcePoint&quot;/&gt;&lt;mxPoint x=&quot;290&quot; y=&quot;390&quot; as=&quot;targetPoint&quot;/&gt;&lt;/mxGeometry&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;2&quot; value=&quot;&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;gradientColor=none;opacity=30;strokeWidth=5;strokeColor=#000000;perimeterSpacing=0;fillColor=#808080;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;430&quot; y=&quot;200&quot; width=&quot;180&quot; height=&quot;290&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;mxCell id=&quot;3&quot; value=&quot;Apisix&quot; style=&quot;text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&lt;mxGeometry x=&quot;536&quot; y=&quot;469&quot; width=&quot;90&quot; height=&quot;20&quot; as=&quot;geometry&quot;/&gt;&lt;/mxCell&gt;&lt;/root&gt;&lt;/mxGraphModel&gt;&lt;/diagram&gt;&lt;/mxfile&gt;

=====================================================
== File: examples/oidc/_media/IMAP_SMTP oidc.drawio
=====================================================
&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2022-01-20T04:07:37.309Z&quot; agent=&quot;5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36&quot; etag=&quot;OGjRz3jpXBH_9HMDoK-6&quot; version=&quot;16.4.2&quot; type=&quot;google&quot;&gt;&lt;diagram id=&quot;thl9NaU5WR5Ri5IL_89n&quot; name=&quot;Page-1&quot;&gt;5VnbcuI4EP0aqnYfoCwZG3gkcfYym9RSlcrs5U3YwmhiLCKJAPn6adky2LK9MBkIm0weiNRqt6Q+3UdtueNeLza/CrKc3/GIJh3sRJuOG3QwHg0R/GrBNhd4yAhiwaJcVBLcsxdqhI6RrlhEZUVRcZ4otqwKQ56mNFQVGRGCr6tqM55UZ12SmNYE9yFJ6tK/WKTmuXSIB3v5b5TF82Jm5I/ykQUplM1O5JxEfF0SuTcd91pwrvLWYnNNE+27wi/5c7+0jO4WJmiqjnkgoqOXeE05uxulo6fPwcu/D1+6xsozSVZmwx3sJ2DvasbBLKxabY0r/KcVLwa6MgNqDAqov9zsB6EV6/8PkorCEiwpN5YPGW/s7GJwzFI3V4tkHCouQOeZCsUAhFsypcmES6YYT0FlypXii5LCOGGxHlB8CdK5WiTQQbtZtBrdtDoM7WCA8KV8QZXYgop5wDPAmchFvumv93FQiOalEBgZGTGRF+8M78GBhsHnG7Dyvx8r3ITVH3QbJpw8Ftamohj58/cAlupMBH+GLBR1hWMhht1BwkLnaj1nit4vSahH1kAZVdiIXOZZPGMbGpkdGFZA/dPgigdVYN06rqO3xHVwJlxvg/Hkg0DW961c9C6M2fBMmH0a393cfxDQ7DzDwwuDNmoAreUsmiV0M9blA7iCppFpBmFCpGRh1ZeCr9JIOzFwLEfi/OmicEBODw+9AeoXv34+btSHPYSd0t/+GKNRrUixQICqiIiYqkMhWwerBIbXAEYhEzQhij1Xl9GEkJlhwlmWB0XwuFYs9C2QJV+JkJqnylWMZch1LEPIMpT7oWYoC5jdtl8fQwi3Zr5ckrQx86ckfIyzKOmGPNEFjiYAEU9/wp7X0WWbPmWt9s91ckC9h7Q7Xqk5YA/Fj4KY08A8rahUMoMyW/+UZuIvkOBaY8cc+fpamAPSXFXDWirBH+l1vuAg5ammlRlMYYmIKcFCWBUtF29FbbZgUZS0cVJ78pyoikPW0dF03KNBQ+S756Ih5L4/HgJni+3fxnTW+Ud3er4/KATBpjwcbMu9CRUMnKfDIxOekNb8/xOtoeEraQ1bUWqfgedmtf7lWK1e7eDeLY+ZnpXEhKVS+2n/kgLv//pegGrpOAyplJnskaY/PNd5zUF0iOnss/h0TOe9Y6brOj3HGVp0h9GF6e6yVRy2ztLBiejOtQ/bc/Nd+13K2fnO7cHQg9RFGrHoK6c2UqrwKhz4iSyo/OFJzg4ddPF6rukywH4xb2I0CVGuXkl0GQ9tmMpqst6o3zf9nKfwYGj6e5rSnW2pY5NUc4l3iO+Op7acGw5R2xEUOLgkBXr9A8x1LAX27dsR/MYUWL8N+QwRMdOuVHOiV7rKLvEdCJbs/dIOacA8u5+3bpaOZg9BJXsh08yeDqWl3mq2ee+q4wXfwh7m648x1tn5shyG/5G7rVwDNQByB8MKUOj74qhQ4bOZpGdBttj82/PRjkF6joerlRMkynkrp4P04r8HerFL+JPdk6E3fqMstt5EL6GgkS5wSPJBWaX0fbeFVVxcfAc3+HTx5WgFuvvP0Ln6/lu+e/MV&lt;/diagram&gt;&lt;/mxfile&gt;

=====================================================
== File: examples/oidc/apisix/conf/apisix.yaml
=====================================================
routes:
  #  OIDC authentication endpoints
  -
    id: jmap
    uri: /oidc/jmap
    service_id: jmap_service_oidc
    methods:
      - POST
      - OPTIONS
    plugin_config_id: jmap-plugin
    plugins:
      proxy-rewrite:
        uri: /jmap
  -
    id: jmap_websocket
    uri: /oidc/jmap/ws
    service_id: jmap_service_oidc
    enable_websocket: true
    methods:
      - GET
      - OPTIONS
    plugin_config_id: jmap-plugin
    plugins:
      proxy-rewrite:
        uri: /jmap/ws
  -
    id: jmap_session_oidc
    uri: /oidc/jmap/session
    service_id: jmap_service_oidc
    methods:
      - GET
      - OPTIONS
    plugin_config_id: jmap-plugin
    plugins:
      proxy-rewrite:
        uri: /jmap/session
  -
    id: download
    uri: /oidc/download/*
    service_id: jmap_service_oidc
    methods:
      - GET
      - POST
      - OPTIONS
    plugin_config_id: jmap-plugin
    plugins:
      proxy-rewrite:
        regex_uri:
          - &quot;^/oidc/download/(.*)/(.*)&quot;
          - &quot;/download/$1/$2&quot;

=====================================================
== File: examples/oidc/apisix/conf/config.yaml
=====================================================
deployment:
  role: data_plane
  role_data_plane:
    config_provider: yaml

ext-plugin:
  path_for_test: /tmp/runner.sock
  cmd: ['java', '-jar', '-DREDIS_PASSWORD=secret1', '-DREDIS_URL=redis.example.com:6379','-DAPP_REWRITE_XUSER_USERINFO_FIELD=email', '-Xmx1g', '-Xms1g', '/usr/local/apisix/token_revoker_plugin.jar']

=====================================================
== File: examples/oidc/README.md
=====================================================
# OIDC JMAP, IMAP and SMTP example with James, Apisix API Gateway, Keycloak, LDAP

====

This is example of an OIDC setup with James.

The API Gateway for example is [Apisix](https://apisix.apache.org/), we can use Apisix for websocket gateway, horizontal scaling, etc...

This [docker-compose](docker-compose.yml) will start the following services:

- apisix: The image `linagora/apisix:3.2.0-debian-javaplugin` was created by Linagora. It based on `apisix:3.2.0-debian`, it already contain apisix plugin for 
  SLO (Single Logout) and rewrite the `X-User` header. 
  - Dockerfile: [here](https://github.com/linagora/tmail-backend/blob/master/demo/apisix/Dockerfile)
  - Project `tmail-apisix-plugin-runner`: [here](https://github.com/linagora/tmail-backend/tree/master/demo/apisix/tmail-apisix-plugin-runner)
  - Apisix being the OIDC gateway against James by exposing two endpoints:
      - `POST /jmap` for JMAP requests against James with normal authentication
      - `POST /oidc/jmap` for JMAP request against James with a JWT token issued by the LemonLDAP
- james: Memory version using the LDAP and `XUserAuthenticationStrategy` for JMAP
- sso.example.com: keycloak image with a pre-configured `oidc` realm, `oidc` client (Authorization Code Flow, should dedicate for JMAP), `james-thunderbird` client (Client Credentials Flow, dedicated for IMAP/SMTP) and connected to the LDAP for its user base
- ldap: with a pre-provisioned user `james-user@tmail.com` and his password `secret`
- redis: for storage of the revoked token. This is optional, we can un-use it if we want to store it in-memory with Apisix standalone.

## Overall architecture

### JMAP

Here is an architecture diagram showing how Single Sign On works for this example:

![](_media/oidc-sso.png)

SSO auto-discovery might require the set up of a `.well-known/webfinger` endpoint described in
[this spec](https://openid.net/specs/openid-connect-discovery-1_0.html)
via external means (not provided here).

Here is an architecture diagram showing how Single Log Out works for this example, using the backchannel OIDC flow:

![](_media/oidc-slo.png)

### IMAP/SMTP
Here is an architecture diagram showing how to authenticate JAMES IMAP/SMTP using OIDC Provider:

![](_media/IMAP-SMTP-oidc.png)


## How to run it

```bash
docker-compose up -d
```


=====================================================
== File: examples/oidc/ldap/populate.ldif
=====================================================
dn: ou=people, dc=localhost
ou: people
objectClass: organizationalUnit

dn: ou=empty, dc=localhost
ou: empty
objectClass: organizationalUnit

dn: uid=james-user@localhost, ou=people, dc=localhost
objectClass: inetOrgPerson
uid: james-user@localhost
cn: james-user
sn: james-user
mail: james-user@localhost
userPassword: secret
description: James user

=====================================================
== File: mailbox/spring/src/test/README.md
=====================================================

Running these tests requires applying the openjpa javaagent. This is configured for you when running the tests through maven. 
In your IDE you will have to add the following JVM argument (the version may vary check the apache.openjpa.version property value in the top level pom.xml): 

```
-javaagent:${HOME}/.m2/repository/org/apache/openjpa/openjpa/3.2.0/openjpa-3.2.0.jar
```

=====================================================
== File: mailbox/plugin/quota-mailing/src/main/resources/templates/QuotaThresholdMailBody.mustache
=====================================================
You receive this email because you recently exceeded a threshold related to the quotas of your email account.

{{#hasExceededSizeThreshold}}
You currently occupy more than {{sizeThreshold}} % of the total size allocated to you.
You currently occupy {{usedSize}}{{#hasSizeLimit}} on a total of {{limitSize}} allocated to you{{/hasSizeLimit}}.

{{/hasExceededSizeThreshold}}
{{#hasExceededCountThreshold}}
You currently occupy more than {{countThreshold}} % of the total message count allocated to you.
You currently have {{usedCount}} messages{{#hasCountLimit}} on a total of {{limitCount}} allowed for you{{/hasCountLimit}}.

{{/hasExceededCountThreshold}}
You need to be aware that actions leading to exceeded quotas will be denied. This will result in a degraded service.
To mitigate this issue you might reach your administrator in order to increase your configured quota. You might also delete some non important emails.

=====================================================
== File: mailbox/plugin/quota-mailing/src/main/resources/templates/QuotaThresholdMailSubject.mustache
=====================================================
Warning: Your email usage just exceeded a configured threshold

=====================================================
== File: mailbox/plugin/quota-mailing/src/test/resources/templates/body1.mustache
=====================================================
[BODY_1]

=====================================================
== File: mailbox/plugin/quota-mailing/src/test/resources/templates/body2.mustache
=====================================================
[BODY_2]

=====================================================
== File: mailbox/plugin/quota-mailing/src/test/resources/templates/subject2.mustache
=====================================================
[SUBJECT_2]

=====================================================
== File: mailbox/plugin/quota-mailing/src/test/resources/templates/subject1.mustache
=====================================================
[SUBJECT_1]

=====================================================
== File: mailbox/opensearch/src/test/resources/eml/emailWith3Attachments.eml
=====================================================
To: Laura ROYET &lt;laura.ro@linagora.com&gt;
From: Laura Royet &lt;laura.ro@linagora.com&gt;
Subject: test
Message-ID: &lt;cb415bdb-b27d-fc25-b91f-aae6b4774b71@linagora.com&gt;
Date: Wed, 11 Jan 2017 11:52:35 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.6.0
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------36566F1E9D791340FFB75FF8&quot;

This is a multi-part message in MIME format.
--------------36566F1E9D791340FFB75FF8
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit



-- 
Laura Royet


--------------36566F1E9D791340FFB75FF8
Content-Type: application/vnd.oasis.opendocument.text;
 name=&quot;attachment1.odt&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;attachment1.odt&quot;

UEsDBBQAAAgAAGJVK0pexjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQu
dC54bWxQSwUGAAAAABEAEQBwBAAAjyUAAAAA
--------------36566F1E9D791340FFB75FF8
Content-Type: application/vnd.oasis.opendocument.text;
 name=&quot;attachment2-nonIndexableAttachment.html&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;attachment2-nonIndexableAttachment.odt&quot;

PCFET0NUWVBFIGh0bWw+CjxodG1sIGNsYXNzPSJtb3ppbGxhIiBsYW5nPSJlbiI+PGhlYWQ+
CI+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4=
--------------36566F1E9D791340FFB75FF8
Content-Type: application/vnd.oasis.opendocument.text;
 name=&quot;attachment3.odt&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;attachment3.odt&quot;

UEsDBBQAAAgAAG9VK0pexjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQu
AAAAEgkAABNRVRBLUlORi9tYW5pZmVzdC54bWxQSwUGAAAAABEAEQBwBAAApyUAAAAA
--------------36566F1E9D791340FFB75FF8--

=====================================================
== File: mailbox/opensearch/src/test/resources/eml/mailCustomStringHeader.eml
=====================================================
Content-Type: text/plain; Charset=UTF-8
Subject: subject
MIME-Version: 1.0
Message-Id: &lt;20100916151246.2A9384BA1@lenny&gt;
From: a@test
To: b@test
Custom-header: custom header

Mail content

=====================================================
== File: mailbox/opensearch/src/test/resources/eml/bodyMakeTikaToFail.eml
=====================================================
Date: Mon, 30 Jan 2017 11:51:35 +0100
From: Raphael OUAZANA &lt;raph.ouazana@linagora.com&gt;
To: OUAZANA Raphael &lt;raph.ouazana@linagora.com&gt;
Subject: subject should be parsed
Message-ID: &lt;255cb2b85feee171cd9a88bda109c9f0@linagora.com&gt;
X-Sender: raph.ouazana@linagora.com
User-Agent: Roundcube Webmail/1.1.4

Return-Path: &lt;iphone@obm.lng.org&gt;
Received: from lenny.obm.lng.org (localhost [127.0.0.1])
	 by lenny.obm.lng.org (Cyrus v2.3.14-Debian-2.3.14-2) with LMTPA;
	 Wed, 21 Mar 2012 14:51:59 +0100
X-Sieve: CMU Sieve 2.3
Received: from [192.168.2.48] (unknown [192.168.2.48])
	by lenny.obm.lng.org (Postfix) with ESMTP id E495D32929
	for &lt;usera@obm.lng.org&gt;; Wed, 21 Mar 2012 14:51:58 +0100 (CET)
Message-ID: &lt;4F69DD0E.3010502@obm.lng.org&gt;
Date: Wed, 21 Mar 2012 14:52:14 +0100
 From: iphone &lt;iphone@obm.lng.org&gt;
User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; 
rv:1.9.2.28) Gecko/20120306 Lightning/1.0b2 Thunderbird/3.1.20
MIME-Version: 1.0
To: usera &lt;usera@obm.lng.org&gt;
Subject: Fwd: Re: email with sign
Content-Type: multipart/mixed;
  boundary=&quot;------------080809000000030101030405&quot;

This is a multi-part message in MIME format.
--------------080809000000030101030405
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

new email text part

--------------080809000000030101030405
Content-Type: message/rfc822;
  name=&quot;Re: email with sign.eml&quot;
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
  filename=&quot;Re: email with sign.eml&quot;

Return-Path: &lt;usera@obm.lng.org&gt;
Received: from lenny.obm.lng.org (localhost [127.0.0.1])
	 by lenny.obm.lng.org (Cyrus v2.3.14-Debian-2.3.14-2) with LMTPA;
	 Wed, 21 Mar 2012 14:19:29 +0100
X-Sieve: CMU Sieve 2.3
Received: from [192.168.2.48] (unknown [192.168.2.48])
	by lenny.obm.lng.org (Postfix) with ESMTP id 47EC832D51
	for &lt;iphone@obm.lng.org&gt;; Wed, 21 Mar 2012 14:19:29 +0100 (CET)
Message-ID: &lt;4F69D570.9090502@obm.lng.org&gt;

=====================================================
== File: mailbox/opensearch/src/test/resources/eml/alternative_simple.eml
=====================================================
MIME-Version: 1.0
Subject: Test
From: Benoit TELLIER &lt;btellier@linagora.com&gt;
To: Benoit TELLIER &lt;btellier@linagora.com&gt;
Date: Tue, 13 Feb 2024 23:01:18 +0000
Message-ID: &lt;Mime4j.17d.c7b7d059b303c215.18da4b4076b@linagora.com&gt;
Content-Type: multipart/alternative;
 boundary=&quot;-=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-&quot;

---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Test

---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

&lt;div&gt;Test&lt;br&gt;&lt;br&gt;&lt;/div&gt;

---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=---

=====================================================
== File: mailbox/opensearch/src/test/resources/eml/mailCustomDateHeader.eml
=====================================================
Content-Type: text/plain; Charset=UTF-8
Subject: my subject test
MIME-Version: 1.0
Message-Id: &lt;20100916151246.2A9384BA1@lenny&gt;
From: B &lt;b@test&gt;
To: c@test
Custom-header: 2015/09/02

Mail content

=====================================================
== File: mailbox/opensearch/src/test/resources/eml/inlined-mixed.eml
=====================================================
Date: Wed, 26 Jan 2022 12:21:37 +0100
From: Bob &lt;bob@domain.tld&gt;
To: Alice &lt;alice@domain.tld&gt;
Subject: My subject
Message-ID: &lt;20220126112137.wookj26xellphlam@W0248292&gt;
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=&quot;7f4cfz6rtfqdbqxn&quot;
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

--7f4cfz6rtfqdbqxn
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Main test message...

--7f4cfz6rtfqdbqxn
Content-Type: application/json; charset=us-ascii
Content-Disposition: attachment; filename=&quot;yyy.txt&quot;
Content-Transfer-Encoding: quoted-printable

[
    {
        &quot;Id&quot;: &quot;2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;
    }
]

--7f4cfz6rtfqdbqxn
Content-Type: application/json; charset=us-ascii
Content-Disposition: attachment; filename=&quot;xxx.txt&quot;
Content-Transfer-Encoding: quoted-printable

[
    {
        &quot;Id&quot;: &quot;3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;
    }
]

--7f4cfz6rtfqdbqxn--



=====================================================
== File: mailbox/opensearch/src/test/resources/eml/mailWithHeaders.eml
=====================================================
Content-Type: text/plain; Charset=UTF-8
Date: Fri, 17 Sep 2010 17:12:26 +0200
Subject: my subject
To: a@test, B &lt;b@test&gt;
Cc: c@test
Bcc: dD &lt;d@test&gt;
MIME-Version: 1.0
Message-Id: &lt;20100917151246.2A9384BA1@lenny&gt;
From: Ad Min &lt;admin@opush.test&gt;

Mail content

-- 
Ad Min

=====================================================
== File: mailbox/opensearch/src/test/resources/eml/htmlContent.txt
=====================================================
Linked Applications OpenPaas-Linagora Stash - OpenPaas Jenkins - OpenPaas Configure&#x2026; Dashboards Projects Issues Agile More Create Help Online Help JIRA Agile Help Keyboard Shortcuts About JIRA JIRA Credits Administration JIRA administration Projects Issues User management System Add-ons Profile Atlassian Marketplace My JIRA Home Dashboard Agile Issue Navigator Disable new project navigation Log Out OpenPaaS RSE OR-2349 Docker-compose doesn't activate attachments and dwld/upld url are wrongly populated Edit Comment Assign More Agile Board Rank to Top Rank to Bottom Log Work Attach Files Attach Screenshot Add Drawio Diagram Voters Stop Watching Watchers Create Sub-Task Convert to Sub-Task Create branch Move Link Clone Labels Delete Stop Progress Resolve Issue Close Issue Admin Add field Where is my field? Permission Helper Notification Helper Export XML Word Printable Details Type: Bug Status: Progressing (View Workflow) Priority: Major Resolution: Unresolved Affects Version/s: None Fix Version/s: None Component/s: None Labels: None Labels Rank (Obsolete): 9223372036854775807 Acceptance Criteria: 0/1 Hide checkedShow checked Tested show more show less Description                {
                    &quot;name&quot; : &quot;uploadUrl&quot;,
                    &quot;value&quot; : &quot;http://10.69.0.163:1080/jmap/upload&quot;,
                    &quot;_id&quot; : ObjectId(&quot;5785f85cd7f4033c00fc606d&quot;)
                }, 
                {
                    &quot;name&quot; : &quot;downloadUrl&quot;,
                    &quot;value&quot; : &quot;http://10.69.0.163:1080/jmap/download&quot;,
                    &quot;_id&quot; : ObjectId(&quot;5785f85cd7f4033c00fc606c&quot;)
                }, 
 should be replaced with               {
                    &quot;name&quot; : &quot;uploadUrl&quot;,
                    &quot;value&quot; : &quot;http://10.69.0.163:1080/upload&quot;,
                    &quot;_id&quot; : ObjectId(&quot;5785f85cd7f4033c00fc606d&quot;)
                }, 
                {
                    &quot;name&quot; : &quot;downloadUrl&quot;,
                    &quot;value&quot; : &quot;http://10.69.0.163:1080/download&quot;,
                    &quot;_id&quot; : ObjectId(&quot;5785f85cd7f4033c00fc606c&quot;)
                }, 
               {
                   &quot;name&quot; : &quot;composer.attachments&quot;,
                    &quot;value&quot; : true
               }

 Activity All Comments Work Log History Activity There are no comments yet on this issue. Comment Paragraph Heading 1 Heading 2 Heading 3 Heading 4 Heading 5 Heading 6 Preformatted Paragraph quote Block quote Strikethrough Superscript Subscript Citation External link Mail link Anchor link Attachment link Attachment link External image Attached image Attached image User mention Table Code Preformatted Panel Horizontal ruler Style BoldItalicUnderlineText colorMore colorsMore LinkImage Bullet listNumbered list IconsOther Lock / Unlock Preview comment This comment will be Viewable by All Users All Users Administrators Developers Users Viewable by All Users Cancel Comment People Assignee: Stephane COLSON Reporter: Stephane COLSON Votes: 0 Watchers: 1 Stop watching this issue Dates Created: 4 hours ago Updated: 4 hours ago Development 1 branch Updated 33 minutes ago 1 pull request OPEN Updated 33 minutes ago Create branch Agile View on Board Issue deployment Atlassian JIRA Project Management Software (v6.4.5#64020-sha1:78acd6c) About JIRA Report a problem Powered by a free Atlassian JIRA open source license for OpenPaas. Try JIRA - bug tracking software for your team. Atlassian

=====================================================
== File: mailbox/opensearch/src/test/resources/eml/alternative.eml
=====================================================
MIME-Version: 1.0
Subject: Test
From: Benoit TELLIER &lt;btellier@linagora.com&gt;
To: Benoit TELLIER &lt;btellier@linagora.com&gt;
Date: Tue, 13 Feb 2024 23:01:18 +0000
Message-ID: &lt;Mime4j.17d.c7b7d059b303c215.18da4b4076b@linagora.com&gt;
Content-Type: multipart/mixed;
 boundary=&quot;-=Part.17f.732e3d28e1c76db4.18da4b40791.62ef5e3fa995057d=-&quot;

---=Part.17f.732e3d28e1c76db4.18da4b40791.62ef5e3fa995057d=-
Content-Type: multipart/alternative;
 boundary=&quot;-=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-&quot;

---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Test

---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=-
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

&lt;div&gt;Test&lt;br&gt;&lt;br&gt;&lt;/div&gt;

---=Part.17e.48ac92d73c356567.18da4b40791.360a293e2f389efe=---

---=Part.17f.732e3d28e1c76db4.18da4b40791.62ef5e3fa995057d=-
Content-Type: application/json; name=&quot;=?US-ASCII?Q?id=5Frsa.txt?=&quot;
Content-Disposition: attachment
Content-Transfer-Encoding: base64

c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFDQVFDa0dXMkp5c2lKR2hQZXdBOXRr
bVFFQm5EVjRaQ0llLy92ZFoyV0RybnZiNlZLQzdpWldjODFpU1ZkTFcxUkRBTll4c3ExN0dQanpV
OFlWdk9sRkFJSk1WTm9ESWhuQWtYOU9VUUJpd1hpOHlHZ3FLNGR0RmIxczJBRzNrQmxNUFFJOE5K
MkpLT2Z5MW51VnJubEtoVDlCVnpYMm5iSjNOak9PZlkxQlJEaDZZcVl1a2RuejBUT2k1Rkp1YUJT
NDZQemx3eWdIa0dzeXBLVHM2Y2FUNjBRdjl3eWFadm4yenN1RmNML3o2Mmd3aGZyZGFsakF1UGRX
cERlNG1IRVFmMXA2SXNRMDdPb0lwTmRHQ0tLZHRZQlVTcktzTXRpMllLUGZpSzB2WGU1L3owRWJE
VlRja1BrY3NwQ2cwYVZuZTB2eFVsRGt2U2pwV2tiQkZ0YTk5ekJjOVlJL0ROK28vRmtONlFTdXV5
U29tNDZkamZpUjdqSzNMRmJKUkhaem9BblNvaTZvRlR0MW1LWjNzam44bnZWUG1PV3pJWHY0Tm1O
R1ExZHFrV1hXcUtyQjlIZUZiQnRPWVAzaEkxQ0kvaVhNbVR1SkdvcHVTUmlTNW1QZXlSQWV6VGtk
UG8vZ2NSVWNzbklhVW1EallUWHBFNzU3Yk5LWVNHbFJsS3FrbEhKc2JveEdTK0NaVzBJS2dZeTdG
cmZRZ1FGMTdvaUpWM1JJQ1VHcU9rM1I2VnZOYlhlL2VmZS9IT24xd0lZUS9qVGRzY0hCamRIM2FF
MmY4Y3dVS1IzNUtWNlJ1SE4vYVpiekxiVkJxUEMvUTcwd3NMQlloV29Da1dRMElUUmxGV2N3bnN3
VTE5NnlGWkVHSmthOUNEaHZQdUVBV0NLWnFRT3gyMnRoYWVSQlE9PSBiZW53YUBob3Jpem9uCg==

=====================================================
== File: mailbox/memory/src/test/resources/test.eml
=====================================================

=====================================================
== File: mailbox/tika/src/test/resources/documents/Text.txt
=====================================================
This is some awesome text text.


=====================================================
== File: mailbox/api/src/test/resources/eml/twoAttachmentsApi.eml
=====================================================
Return-Path: &lt;from@linagora.com&gt;
X-Priority: 3 (Normal)
From: &quot;From&quot;
 &lt;from@linagora.com&gt;
To: &quot;To&quot;
 &lt;to@linagora.com&gt;
Subject: [8/10]Attached Image light with text
Date: Fri, 27 Mar 2015 21:48:38 +0100
Message-Id: &lt;20150227203838.0011.CanonTxNo.4037@canondir.par.lng&gt;
Mime-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;AHNPACBLDCDIDAGGGDDFAABECGCA&quot;

--AHNPACBLDCDIDAGGGDDFAABECGCA
Content-Type: text/html; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

&lt;b&gt;html&lt;/b&gt;

--AHNPACBLDCDIDAGGGDDFAABECGCA
Content-Type: image/jpeg;
 name=&quot;4037_014.jpg&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;4037_014.jpg&quot;

/9j/4X2cRXhpZgAASUkqAAgAAAANAA8BAgAKAAAAqgAAABABAgAJAAAAtAAAABIBAwABAAAA
AQAAABoBBQABAAAAvgAAABsBBQABAAAAxgAAACgBAwABAAAAAgAAADEBAgAKAAAAzgAAADIB
AgAUAAAA2AAAABMCAwABAAAAAgAAAGmHBAABAAAAfAIAAKXEBwDQAAAA7AAAANLGBwBAAAAA
vAEAANPGBwCAAAAA/AEAAEwqAABQYW5hc29uaWMARE1DLUZaNDUAALQAAAABAAAAtAAAAAEA
AABWZXIuMS4wICAAMjAxNDowMjoyNSAxMDozMjowOQBQcmludElNADAyNTAAAA4AAQAWABYA
AgAAAAAAAwBkAAAABwAAAAAACAAAAAAACQAAAAAACgAAAAAACwCsAAAADAAAAAAADQAAAAAA
DgDEAAAAAAEFAAAAAQEBAAAAEAGAAAAACREAABAnAAALDwAAECcAAJcFAAAQJwAAsAgAABAn
AAABHAAAECcAAF4CAAAQJwAAiwAAABAnAADLAwAAECcAAOUbAAAQJwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

--AHNPACBLDCDIDAGGGDDFAABECGCA
Content-Type: image/jpeg;
 name=&quot;4037_015.jpg&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;4037_015.jpg&quot;


=====================================================
== File: mailbox/README.md
=====================================================
Apache James Mailbox project
============================

The James Mailbox project aims to provide an email (message) store. The main user of the Mailbox project is James Server
project. The implementations can be used standalone and do not depend on James Server.

The project defines the Mailbox API and has several implementations that you can use. More details bellow.

Overview
========

Apache James Mailbox has the following project (Maven) structure:

~~~
|-- api             -- Mailbox API
|-- jpa             -- Database Mailbox implementation using Java Persistence API
|-- lucene          -- Email indexing module with Apache Lucene
|-- memory          -- In memory Mailbox implementation - good for testing
|-- spring          -- Spring module - starts a specific mailbox implementation
|-- store           -- Common base/utility classes used in all mailbox implementations
|-- tool            -- Database migration/mailbox export tool
~~~

Mailbox JPA
===========

Persist email messages inside any database that is supported by your Java Persistence Api provider. Currently James uses
OpenJPA (http://openjpa.apache.org/), but it's easy to implement your own.

Mailbox 'In memory' message store
=================================

In module **memory**, does not persist emails. It just keeps them in memory. Fast, and good for testing.
**Note:** Not to be used in production.


Building
========

The primary build tool for Apache James Mailbox is maven 3.

On a new checkout start by running
~~~
    $ mvn clean package
~~~

This will compiled all modules

For just building without running junit tests:
~~~

=====================================================
== File: mailbox/var/store/derby/db.lck
=====================================================
?$a816c00e-0188-957f-71f4-00001716d8f0

=====================================================
== File: mailbox/var/store/derby/service.properties
=====================================================
#/home/interview1/Documents/james-project/mailbox/var/store/derby
# ********************************************************************
# ***                Please do NOT edit this file.                 ***
# *** CHANGING THE CONTENT OF THIS FILE MAY CAUSE DATA CORRUPTION. ***
# ********************************************************************
#Wed Jun 07 17:55:39 ICT 2023
SysconglomeratesIdentifier=32
SyscolumnsIdentifier=144
derby.serviceLocale=en_US
SystablesIdentifier=96
SysconglomeratesIndex3Identifier=81
derby.storage.propertiesId=16
derby.serviceProtocol=org.apache.derby.database.Database
SyscolumnsIndex1Identifier=161
SysschemasIndex2Identifier=225
SystablesIndex2Identifier=129
SyscolumnsIndex2Identifier=177
SysconglomeratesIndex2Identifier=65
SysschemasIndex1Identifier=209
SysschemasIdentifier=192
SystablesIndex1Identifier=113
SysconglomeratesIndex1Identifier=49
#--- last line, don't put anything after this line ---

=====================================================
== File: mailbox/var/store/derby/log/README_DO_NOT_TOUCH_FILES.txt
=====================================================

# *************************************************************************
# ***              DO NOT TOUCH FILES IN THIS DIRECTORY!                ***
# *** FILES IN THIS DIRECTORY ARE USED BY THE DERBY DATABASE RECOVERY   ***
# *** SYSTEM. EDITING, ADDING, OR DELETING FILES IN THIS DIRECTORY      ***
# *** WILL CAUSE THE DERBY RECOVERY SYSTEM TO FAIL, LEADING TO          ***
# *** NON-RECOVERABLE CORRUPT DATABASES.                                ***
# *************************************************************************

=====================================================
== File: mailbox/var/store/derby/README_DO_NOT_TOUCH_FILES.txt
=====================================================

# *************************************************************************
# ***              DO NOT TOUCH FILES IN THIS DIRECTORY!                ***
# *** FILES IN THIS DIRECTORY AND SUBDIRECTORIES CONSTITUTE A DERBY     ***
# *** DATABASE, WHICH INCLUDES THE DATA (USER AND SYSTEM) AND THE       ***
# *** FILES NECESSARY FOR DATABASE RECOVERY.                            ***
# *** EDITING, ADDING, OR DELETING ANY OF THESE FILES MAY CAUSE DATA    ***
# *** CORRUPTION AND LEAVE THE DATABASE IN A NON-RECOVERABLE STATE.     ***
# *************************************************************************

=====================================================
== File: mailbox/var/store/derby/seg0/README_DO_NOT_TOUCH_FILES.txt
=====================================================

# *************************************************************************
# ***              DO NOT TOUCH FILES IN THIS DIRECTORY!                ***
# *** FILES IN THIS DIRECTORY ARE USED BY THE DERBY DATABASE TO STORE   *** 
# *** USER AND SYSTEM DATA. EDITING, ADDING, OR DELETING FILES IN THIS  ***
# *** DIRECTORY WILL CORRUPT THE ASSOCIATED DERBY DATABASE AND MAKE     ***
# *** IT NON-RECOVERABLE.                                               ***
# *************************************************************************

=====================================================
== File: mailbox/var/store/lucene/write.lock
=====================================================

=====================================================
== File: mailbox/store/src/test/resources/eml/pgpSignedMail.eml
=====================================================
Return-Path: &lt;bounce-debian-security-announce=benwa=minet.net@lists.debian.org&gt;
Received: from mx2.minet.net (mx2.minet.net [192.168.102.26])
	 by imap (Cyrus v2.4.16-Debian-2.4.16-4+deb7u1) with LMTPA;
	 Wed, 03 Jun 2015 21:19:59 +0200
X-Sieve: CMU Sieve 2.4
Received: from localhost (spam.minet.net [192.168.102.97])
	by mx2.minet.net (Postfix) with ESMTP id 8A9DAA27DA1
	for &lt;benwa@minet.net&gt;; Wed,  3 Jun 2015 21:20:03 +0200 (CEST)
X-Virus-Scanned: by amavisd-new using ClamAV at minet.net
X-Spam-Flag: NO
X-Spam-Score: -1.51
X-Spam-Level:
X-Spam-Status: No, score=-1.51 required=1 tests=[BAYES_00=-1.5,
	T_RP_MATCHES_RCVD=-0.01] autolearn=unavailable
Received: from mx2.minet.net ([IPv6:::ffff:192.168.102.26])
	by localhost (spam.minet.net [::ffff:192.168.102.97]) (amavisd-new, port 10024)
	with ESMTP id cF6J0AAnzsTX for &lt;benwa@minet.net&gt;;
	Wed,  3 Jun 2015 19:20:02 +0000 (UTC)
Received-SPF: None (no SPF record) identity=mailfrom; client-ip=82.195.75.100; helo=bendel.debian.org; envelope-from=bounce-debian-security-announce=benwa=minet.net@lists.debian.org; receiver=benwa@minet.net
Received: from bendel.debian.org (bendel.debian.org [82.195.75.100])
	(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mx2.minet.net (Postfix) with ESMTPS id 7F69FA27D98
	for &lt;benwa@minet.net&gt;; Wed,  3 Jun 2015 21:20:01 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
	by bendel.debian.org (Postfix) with QMQP
	id 1C2F6275; Wed,  3 Jun 2015 19:14:50 +0000 (UTC)
Old-Return-Path: &lt;carnil@master.debian.org&gt;
X-Original-To: lists-debian-security-announce@bendel.debian.org
Delivered-To: lists-debian-security-announce@bendel.debian.org
Received: from localhost (localhost [127.0.0.1])
	by bendel.debian.org (Postfix) with ESMTP id 7EFBF228
	for &lt;lists-debian-security-announce@bendel.debian.org&gt;; Wed,  3 Jun 2015 19:14:39 +0000 (UTC)
X-Amavis-Spam-Status: No, score=-8.99 tagged_above=-10000 required=5.3
	tests=[BAYES_00=-2, DIGITS_LETTERS=1, FVGT_m_MULTI_ODD=0.02,
	LDO_WHITELIST=-5, OUR_MTA_MSGID=2, PGPSIGNATURE=-5,
	T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from bendel.debian.org ([127.0.0.1])
	by localhost (lists.debian.org [127.0.0.1]) (amavisd-new, port 2525)
	with ESMTP id RiKdt2PVwXOm
	for &lt;lists-debian-security-announce@bendel.debian.org&gt;;
	Wed,  3 Jun 2015 19:14:34 +0000 (UTC)
Received: from master.debian.org (master.debian.org [IPv6:2001:41b8:202:deb:216:36ff:fe40:4001])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(Client CN &quot;master.debian.org&quot;, Issuer &quot;Debian SMTP CA&quot; (not verified))
	by bendel.debian.org (Postfix) with ESMTPS id ABE761B7
	for &lt;debian-security-announce@lists.debian.org&gt;; Wed,  3 Jun 2015 19:14:34 +0000 (UTC)
Received: from carnil by master.debian.org with local (Exim 4.84)
	(envelope-from &lt;carnil@master.debian.org&gt;)
	id 1Z0E7U-0004Bc-Jv

=====================================================
== File: mailbox/store/src/test/resources/eml/htmlMail.eml
=====================================================
Delivered-To: mister@james.org
Received: by 10.28.170.202 with SMTP id t193csp327634wme;
        Thu, 4 Jun 2015 00:36:15 -0700 (PDT)
X-Received: by 10.180.77.195 with SMTP id u3mr5042880wiw.30.1433403375307;
        Thu, 04 Jun 2015 00:36:15 -0700 (PDT)
Return-Path: &lt;bounces+1453977-062b-mister=james.org@email.airbnb.com&gt;
Received: from o7.email.airbnb.com (o7.email.airbnb.com. [167.89.32.249])
        by mx.google.com with ESMTPS id i2si5691730wjz.123.2015.06.04.00.36.13
        for &lt;mister@james.org&gt;
        (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Thu, 04 Jun 2015 00:36:15 -0700 (PDT)
Received-SPF: pass (google.com: domain of bounces+1453977-062b-mister=james.org@email.airbnb.com designates 167.89.32.249 as permitted sender) client-ip=167.89.32.249;
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of bounces+1453977-062b-mister=james.org@email.airbnb.com designates 167.89.32.249 as permitted sender) smtp.mail=bounces+1453977-062b-mister=james.org@email.airbnb.com;
       dkim=pass header.i=@email.airbnb.com;
       dmarc=pass (p=REJECT dis=NONE) header.from=airbnb.com
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=email.airbnb.com;
	h=from:to:subject:mime-version:content-type:content-transfer-encoding;
	s=s20150428; bh=2mhWUwzjtQTC0KljgpaEsuvrqok=; b=EhC2QHKb5+63egDD
	qDCAepUELCeUZXCkw8+31kGT+O1va3iAKvQSAvzXJ3qJlIL9FgdeFk8sR78Vszn/
	A73vp6NGjAW60M4gUZjxEOIPzGKIS95KfmHxg10fXUOFW0uePojNEg4ZPCcuitrZ
	HuWvzHK5I2siGnqupiivwxDgs5c=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.info;
	h=from:to:subject:mime-version:content-type:content-transfer-encoding:x-feedback-id;
	s=smtpapi; bh=2mhWUwzjtQTC0KljgpaEsuvrqok=; b=FPiYMmNJLCrL2e8v/0
	DQC4voofe8nuuE7rhXZ25oqNAhAQja4oKIysJ1qAME2aEaqh+N5aJlCEuHrSG/7+
	NAQ0OY8KaJ2zlnxAbmgJETOjnf4oGdAa+nU/nVVEPfN2NRcBCNLGQZ80U4T5k8Xi
	PakIuZvKDTRq7PiosSCSHT/FQ=
Received: by filter0490p1mdw1.sendgrid.net with SMTP id filter0490p1mdw1.13271.556FFFE7B
        2015-06-04 07:36:09.249601779 +0000 UTC
Received: from i-dee0850e.inst.aws.airbnb.com (ec2-54-90-154-187.compute-1.amazonaws.com [54.90.154.187])
	by ismtpd-017 (SG) with ESMTP id 14dbd7fa6b4.779a.254b43
	for &lt;mister@james.org&gt;; Thu, 04 Jun 2015 07:36:09 +0000 (UTC)
Received: by i-dee0850e.inst.aws.airbnb.com (Postfix, from userid 1041)
	id 19CBA24C60; Thu,  4 Jun 2015 07:36:09 +0000 (UTC)
Date: Thu, 04 Jun 2015 07:36:08 +0000
From: Airbnb &lt;discover@airbnb.com&gt;
To: mister@james.org
Message-ID: &lt;556fffe8cac78_7ed0e0fe204457be@i-dee0850e.mail&gt;
Subject: Text and Html not similar
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary=&quot;--==_mimepart_556fffe8c7e84_7ed0e0fe20445637&quot;;
 charset=UTF-8
Content-Transfer-Encoding: 7bit
X-User-ID: 32692788
X-Locale: fr
X-Category: engagement
X-Template: low_intent_top_destinations
recipients:

=====================================================
== File: mailbox/store/src/test/resources/eml/mail4.eml
=====================================================
Return-Path: &lt;mailet-api-return-812-benwa=minet.net@james.apache.org&gt;
Received: from mx2.minet.net (mx2.minet.net [192.168.102.26])
	 by imap (Cyrus v2.4.16-Debian-2.4.16-4+deb7u1) with LMTPA;
	 Fri, 15 May 2015 08:36:03 +0200
X-Sieve: CMU Sieve 2.4
Received: from localhost (spam.minet.net [192.168.102.97])
	by mx2.minet.net (Postfix) with ESMTP id 5AC87A19A4F
	for &lt;benwa@minet.net&gt;; Fri, 15 May 2015 08:36:03 +0200 (CEST)
X-Virus-Scanned: by amavisd-new using ClamAV at minet.net
X-Spam-Flag: NO
X-Spam-Score: -1.51
X-Spam-Level:
X-Spam-Status: No, score=-1.51 required=1 tests=[BAYES_00=-1.5,
	T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mx1.minet.net ([IPv6:::ffff:192.168.102.25])
	by localhost (spam.minet.net [::ffff:192.168.102.97]) (amavisd-new, port 10024)
	with ESMTP id 2xNJ-Rh-AWoj for &lt;benwa@minet.net&gt;;
	Fri, 15 May 2015 06:36:02 +0000 (UTC)
Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=140.211.11.3; helo=mail.apache.org; envelope-from=mailet-api-return-812-benwa=minet.net@james.apache.org; receiver=benwa@minet.net
Authentication-Results: mx1.minet.net; dkim=none reason=&quot;no signature&quot;;
	dkim-adsp=none (insecure policy); dkim-atps=neutral
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by mx1.minet.net (Postfix) with SMTP id 24F75686039
	for &lt;benwa@minet.net&gt;; Fri, 15 May 2015 08:36:01 +0200 (CEST)
Received: (qmail 81830 invoked by uid 500); 15 May 2015 06:36:00 -0000
Mailing-List: contact mailet-api-help@james.apache.org; run by ezmlm
Precedence: bulk
List-Help: &lt;mailto:mailet-api-help@james.apache.org&gt;
List-Unsubscribe: &lt;mailto:mailet-api-unsubscribe@james.apache.org&gt;
List-Post: &lt;mailto:mailet-api@james.apache.org&gt;
List-Id: &lt;mailet-api.james.apache.org&gt;
Reply-To: mailet-api@james.apache.org
Delivered-To: mailing list mailet-api@james.apache.org
Received: (qmail 81730 invoked by uid 99); 15 May 2015 06:36:00 -0000
Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28)
    by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 May 2015 06:36:00 +0000
Date: Fri, 15 May 2015 06:35:59 +0000 (UTC)
From: &quot;Eric Charles (JIRA)&quot; &lt;mailet-api@james.apache.org&gt;
To: &quot;zzz&quot; &lt;a-mailet-api@james.apache.org&gt;
Cc: monkey@any.com
Bcc: monkey@any.com
Message-ID: &lt;JIRA.12825882.1430301328000.124152.1431671759942@Atlassian.JIRA&gt;
In-Reply-To: &lt;JIRA.12825882.1430301328000@Atlassian.JIRA&gt;
References: &lt;JIRA.12825882.1430301328000@Atlassian.JIRA&gt; &lt;JIRA.12825882.1430301328925@arcas&gt;
Subject: [jira] [Resolved] (MAILET-94) James Mailet should use latest
 version of other James subprojects
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394

=====================================================
== File: mailbox/store/src/test/resources/eml/recursiveMail.eml
=====================================================
Return-Path: &lt;mbaechler@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Wed, 10 Jun 2015 10:45:29 +0200
X-Sieve: CMU Sieve 2.2
Received: from [10.69.2.28] (mne69-10-88-173-78-196.fbx.proxad.net [88.173.78.196])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id 7F33E728
	for &lt;btellier@linagora.com&gt;; Wed, 10 Jun 2015 10:45:28 +0200 (CEST)
Message-ID: &lt;5577F927.2040409@linagora.com&gt;
Date: Wed, 10 Jun 2015 10:45:27 +0200
From: Matthieu Baechler &lt;mbaechler@linagora.com&gt;
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0
MIME-Version: 1.0
To: btellier@linagora.com
Subject: Fwd: Courbe Sprint
References: &lt;556EA5E0.8010008@linagora.com&gt;
In-Reply-To: &lt;556EA5E0.8010008@linagora.com&gt;
X-Forwarded-Message-Id: &lt;556EA5E0.8010008@linagora.com&gt;
Content-Type: multipart/mixed;
 boundary=&quot;------------080603090509090707040003&quot;

This is a multi-part message in MIME format.
--------------080603090509090707040003
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Forward as attachment !



--------------080603090509090707040003
Content-Type: message/rfc822;
 name=&quot;Courbe Sprint.eml&quot;
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment;
 filename=&quot;Courbe Sprint.eml&quot;

Return-Path: &lt;aduprat@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Wed, 03 Jun 2015 08:59:45 +0200
X-Sieve: CMU Sieve 2.2
Received: from [10.69.43.36] (mne69-10-88-173-78-196.fbx.proxad.net [88.173.78.196])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id 4FBAF720
	for &lt;mbaechler@linagora.com&gt;; Wed,  3 Jun 2015 08:59:45 +0200 (CEST)
Message-ID: &lt;556EA5E0.8010008@linagora.com&gt;

=====================================================
== File: mailbox/store/src/test/resources/eml/emailWithNonIndexableAttachment.eml
=====================================================
Return-Path: &lt;laura.ro@linagora.com&gt;
MIME-Version: 1.0
Delivered-To: laura.ro@linagora.com
Content-Type: multipart/mixed;
 boundary=&quot;-=Part.0.16b49c355c1c1b54.158b4d6fd1b.bd3741f90275bb0a=-&quot;
From: Laura ROYET &lt;laura.ro@linagora.com&gt;
Sender: Laura ROYET &lt;laura.ro@linagora.com&gt;
To: Laura ROYET &lt;laura.ro@linagora.com&gt;
Subject: test
Message-ID: 1480502737913
Date: Wed, 30 Nov 2016 10:45:38 +0000

---=Part.0.16b49c355c1c1b54.158b4d6fd1b.bd3741f90275bb0a=-
Content-Type: text/html; charset=utf-8; name=&quot;=?US-ASCII?Q?test.html?=&quot;
Content-Disposition: attachment
Content-Transfer-Encoding: base64

PCFET0NUWVBFIGh0bWw+CjxodG1sIGNsYXNzPSJtb3ppbGxhIiBsYW5nPSJlbiI+PGhlYWQ+Cjxt
ZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PVVURi04Ij4KICAgIAoKCgoKCjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgaHR0cC1lcXVp
dj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1FZGdlIj4KPG1ldGEgbmFtZT0iYXBwbGlj
YXRpb24tbmFtZSIgY29udGVudD0iSklSQSIgZGF0YS1uYW1lPSJqaXJhIiBkYXRhLXZlcnNpb249
IjYuNC41Ij48bWV0YSBuYW1lPSJhanMtc2VydmVyUmVuZGVyZWRWaWV3SXNzdWUiIGNvbnRlbnQ9
InRydWUiPgo8bWV0YSBuYW1lPSJhanMtaGFzQ3JpdGVyaWFBdXRvVXBkYXRlIiBjb250ZW50PSJ0
cnVlIj4KPG1ldGEgbmFtZT0iYWpzLXZpZXdpc3N1ZS11c2UtaGlzdG9yeS1hcGkiIGNvbnRlbnQ9
ImZhbHNlIj4KPG1ldGEgbmFtZT0iYWpzLXZpZXdpc3N1ZS1tYXgtY2FjaGUtc2l6ZSIgY29udGVu
dD0iIj4KPG1ldGEgbmFtZT0iYWpzLWF1dG9jb21wbGV0ZS1lbmFibGVkIiBjb250ZW50PSJ0cnVl
Ij4KPG1ldGEgbmFtZT0iYWpzLXZpZXctaXNzdWUtdHJhY2Uta2V5IiBjb250ZW50PSJqaXJhLmlz
c3VlLnJlZnJlc2hlZCI+CjxtZXRhIG5hbWU9ImFqcy12aWV3LWlzc3VlLXBzeWNoby1rZXkiIGNv
bnRlbnQ9ImppcmEucHN5Y2hvLmlzc3VlLnJlZnJlc2hlZCI+CjxtZXRhIG5hbWU9ImFqcy12aWV3
LWlzc3VlLXJlZnJlc2hlZC1jYWNoZWQta2V5IiBjb250ZW50PSJqaXJhLnBzeWNoby5pc3N1ZS5y
ZWZyZXNoZWQuY2FjaGVkIj4KPG1ldGEgbmFtZT0iYWpzLXJldHVybi10by1zZWFyY2gtdHJhY2Ut
a2V5IiBjb250ZW50PSJqaXJhLnJldHVybmVkLnRvLnNlYXJjaCI+CjxtZXRhIG5hbWU9ImFqcy1y
ZXR1cm4tdG8tc2VhcmNoLXBzeWNoby1rZXkiIGNvbnRlbnQ9ImppcmEucHN5Y2hvLnJldHVybmVk
LnRvLnNlYXJjaCI+CjxtZXRhIG5hbWU9ImFqcy1kZWZhdWx0LWF2YXRhci11cmwiIGNvbnRlbnQ9
Imh0dHBzOi8vY2kub3Blbi1wYWFzLm9yZy9qaXJhL3NlY3VyZS91c2VyYXZhdGFyP3NpemU9eHNt
YWxsJmFtcDthdmF0YXJJZD0xMDEyMyI+CjxtZXRhIG5hbWU9ImFqcy1qaXJhLmlzc3Vlcy5wcmVm
ZXJyZWQubGF5b3V0LmtleSIgY29udGVudD0ic3BsaXQtdmlldyI+CjxtZXRhIG5hbWU9ImFqcy1t
YXgtcmVjZW50LXNlYXJjaGVycyIgY29udGVudD0iMTAiPgo8bWV0YSBuYW1lPSJhanMtamlyYS1i
YXNlLXVybCIgY29udGVudD0iaHR0cHM6Ly9jaS5vcGVuLXBhYXMub3JnL2ppcmEiPgo8bWV0YSBu
YW1lPSJhanMtZGV2LW1vZGUiIGNvbnRlbnQ9ImZhbHNlIj4KPG1ldGEgbmFtZT0iYWpzLWNvbnRl
eHQtcGF0aCIgY29udGVudD0iL2ppcmEiPgo8bWV0YSBuYW1lPSJhanMtdmVyc2lvbi1udW1iZXIi
IGNvbnRlbnQ9IjYuNC41Ij4KPG1ldGEgbmFtZT0iYWpzLWJ1aWxkLW51bWJlciIgY29udGVudD0i
NjQwMjAiPgo8bWV0YSBuYW1lPSJhanMtaXMtYmV0YSIgY29udGVudD0iZmFsc2UiPgo8bWV0YSBu
YW1lPSJhanMtaXMtcmMiIGNvbnRlbnQ9ImZhbHNlIj4KPG1ldGEgbmFtZT0iYWpzLWlzLXNuYXBz
aG90IiBjb250ZW50PSJmYWxzZSI+CjxtZXRhIG5hbWU9ImFqcy1pcy1taWxlc3RvbmUiIGNvbnRl
bnQ9ImZhbHNlIj4KPG1ldGEgbmFtZT0iYWpzLXJlbW90ZS11c2VyIiBjb250ZW50PSJzY29sc29u
Ij4KPG1ldGEgbmFtZT0iYWpzLXJlbW90ZS11c2VyLWZ1bGxuYW1lIiBjb250ZW50PSJTdGVwaGFu
ZSBDT0xTT04iPgo8bWV0YSBuYW1lPSJhanMtdXNlci1sb2NhbGUiIGNvbnRlbnQ9ImVuX1VTIj4K
PG1ldGEgbmFtZT0iYWpzLXVzZXItbG9jYWxlLWdyb3VwLXNlcGFyYXRvciIgY29udGVudD0iLCI+

=====================================================
== File: mailbox/store/src/test/resources/eml/mailWithLongHeaders.eml
=====================================================
Mail content:
To: &quot;=?utf-8?B?UmFuaSBBc3NhZg==?=&quot; &lt;rani.assaf@jri.obm.lng.org&gt;
Subject: =?utf-8?B?VHIuIDogUGhvdG9zICE=?=
Importance: Normal
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary=&quot;----=_Part_0_1330682067197&quot;

------=_Part_0_1330682067197
Content-Type: multipart/alternative;
	boundary=&quot;----=_Part_2_1330682067197&quot;

------=_Part_2_1330682067197
Content-Type: text/plain;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Content of part 1-1
------=_Part_2_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

&lt;b&gt;Content of part 1-2&lt;/b&gt;
------=_Part_2_1330682067197--

------=_Part_0_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment
header: 012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798012345679801234567980123456798

# Hello

```
Code snipset
```

------=_Part_0_1330682067197--


=====================================================
== File: mailbox/store/src/test/resources/eml/calendar2.eml
=====================================================
From: Test 1 &lt;test1@linagora.com&gt;
To: Test 2 &lt;test2@linagora.com&gt;
Subject: New Time Proposed: New event from Test: lole
Date: Tue, 13 Mar 2018 14:36:08 +0000
Message-ID: &lt;AM5P190MB03542A58E344C68475A951AFD20@AM5P190MB0354.EURP190.PROD.OUTLOOK.COM&gt;
Accept-Language: en-US
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary=&quot;_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_&quot;
MIME-Version: 1.0

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;
Content-Transfer-Encoding: quoted-printable

Will be better for me, thx

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/html; charset=&quot;iso-8859-1&quot;
Content-Transfer-Encoding: quoted-printable

&lt;html&gt;
 &lt;p&gt;Will be better for me, thx&lt;/p&gt;
&lt;/html&gt;

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/calendar; charset=&quot;utf-8&quot;; method=COUNTER
Content-Disposition: attachment;
 filename=&quot;attachment.txt&quot;
Content-Transfer-Encoding: base64

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6Q09VTlRFUg0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
ZSBTZXJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpFdXJvcGUv
QmVybGluDQpCRUdJTjpTVEFOREFSRA0KRFRTVEFSVDoxNjAxMDEwMVQwMzAwMDANClRaT0ZGU0VU
RlJPTTorMDIwMA0KVFpPRkZTRVRUTzorMDEwMA0KUlJVTEU6RlJFUT1ZRUFSTFk7SU5URVJWQUw9
MTtCWURBWT0tMVNVO0JZTU9OVEg9MTANCkVORDpTVEFOREFSRA0KQkVHSU46REFZTElHSFQNCkRU
U0VRVUVOQ0U6MA0KRFRTVEFNUDoyMDE4MDMxM1QxNDM2MDdaDQpDT01NRU5UO0xBTkdVQUdFPWVu
LVVTOldpbGwgYmUgYmV0dGVyIGZvciBtZVwsIHRoeFxuDQpFTkQ6VkVWRU5UDQpFTkQ6VkNBTEVO
REFSDQo=

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_--

=====================================================
== File: mailbox/store/src/test/resources/eml/signedMessage.eml
=====================================================
Return-Path: &lt;client@linagora.com&gt;
From: Important Client &lt;client@linagora.com&gt;
To: Big Boss &lt;big.boss@linagora.com&gt;, Big big boss &lt;big.big.boss@linagora.com&gt;
Subject: Fwd: Re: Deploying production instances of James
Date: Fri, 17 Nov 2017 11:50:12 +0100
Message-ID: &lt;3927114.HFsDrDgxHn@domain.com&gt;
Organization: Linagora
MIME-Version: 1.0
Content-Type: multipart/signed; boundary=&quot;nextPart2399737.qbvXs1L0ps&quot;; micalg=&quot;pgp-sha1&quot;; protocol=&quot;application/pgp-signature&quot;

--nextPart2399737.qbvXs1L0ps
Content-Type: multipart/mixed; boundary=&quot;nextPart3147505.khcI58SeaZ&quot;
Content-Transfer-Encoding: 7Bit

This is a multi-part message in MIME format.

--nextPart3147505.khcI58SeaZ
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;

For your information,

--nextPart3147505.khcI58SeaZ
Content-Type: message/rfc822
Content-Disposition: inline; filename=&quot;message suivi&quot;
Content-Description: Harold Goguelin &lt;hgoguelin@linagora.com&gt;: Re: La Cerise - certificat =?UTF-8?B?RXhwaXLDqQ==?=

Return-Path: &lt;project.manager@linagora.com&gt;
Subject: Re: Deploying production instances of James
To: Important Client &lt;client@linagora.com&gt;
From: Project manager &lt;project.manager@linagora.com&gt;
Organization: Linagora
Message-ID: &lt;c66d7ca6-24R2-d6ec-abac-c1f72ca428dd@linagora.com&gt;
Date: Fri, 17 Nov 2017 11:39:27 +0100
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary=&quot;------------51EED611A8498A33106C3AAD&quot;
Content-Language: fr

 This is a multi-part message in MIME format.
--------------51EED611A8498A33106C3AAD
Content-Type: text/plain; charset=&quot;utf-8&quot;; format=&quot;flowed&quot;
Content-Transfer-Encoding: 8bit

Message envoy&#xe9; gr&#xe2;ce &#xe0; OBM &lt;http://obm.org&gt;, la Communication Libre par 
Linagora &lt;http://www.linagora.com/&gt;

--------------51EED611A8498A33106C3AAD
Content-Type: text/html; charset=&quot;utf-8&quot;
Content-Transfer-Encoding: 8bit


=====================================================
== File: mailbox/store/src/test/resources/eml/oneAttachmentWithSimpleContentType.eml
=====================================================
Mail content:
To: &quot;=?utf-8?B?UmFuaSBBc3NhZg==?=&quot; &lt;rani.assaf@jri.obm.lng.org&gt;
Subject: =?utf-8?B?VHIuIDogUGhvdG9zICE=?=
Importance: Normal
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary=&quot;----=_Part_0_1330682067197&quot;

------=_Part_0_1330682067197
Content-Type: multipart/alternative;
	boundary=&quot;----=_Part_2_1330682067197&quot;

------=_Part_2_1330682067197
Content-Type: text/plain;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Content of part 1-1
------=_Part_2_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

&lt;b&gt;Content of part 1-2&lt;/b&gt;
------=_Part_2_1330682067197--

------=_Part_0_1330682067197
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename=&quot;gimp.png&quot;

iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAALxklEQVR4Ae2Xe0xUZ97H5X4RiyAXEARURBSYCzNnLjMwwAx3huGOIBcUFJERAUVRq+KlwHABFdu+b9+0766x1W21ttnUtE3rul6aGNtm3XbdWncjaa3VXrZRK6IgfPd3Tp6wOGmyo0v/cOMknxwy5xzO7/P8LueZaWlpaU80TwWeCvy3CcRwXJlUqp39RApIOE4i5hQPxBz30hMpIJIrjktkseMimfzPUyoglilTf/XVl8u1Ik4xrOJEEMu4wSkVEMmVZ6VSTeivFXy0TDZfIlfc0qil0KpIQM59P6UCUk71lVShPD1t2jT7qQ4+Sq32prq/GhfHjSXFSxGvEfMCQ1MsoLzOadT3pArFwBQ3LSdRqK4mJyfcz0xRwaCLRVKcBDEybmxqBRTKH8uXpEOj0/1MD3wuMTHR8T9adY4LoOD3KuPj7xYVGlGYo0e6gUNKoowkpKBmHpXJZO5TKXCrpjwT5pWFSM1IvROrVH0hksujf+laAHYWi8XT+nsKyIlvVKlSeVSu0twtXpI/Yq4rR2lBKoxpamQmK5Gm55CcIAP1wxAvOWUCEk4xVLvchIaVedi8rgq1NSXjqnjdHcrGayK5yhStVPpbLLvE/Xt6Tnf3Wu529XSM9fZ13Wzbse2kJiGhK1ap/ETCqe5lGLNum+trxnZsbca6tcuwJM+AvKw4mNI1yEpVURYUSE2S8wJ3RSKN35QJUJPdM6/IQ8vaCmzdZMbObU2w7G7BhhbzeEFR4e2SsrIRChqnz5zE999/h9HREXz19SDefOt1dPW0Y8e2Frywtx0vDnRg57NrUVdTgJJ8PYpyEpBvjEdOhvahLIg55YOioiKHRxKgjwPBEaHEQzfz/3DH9mb07+nGsbeO4MjRw+jts8DS3or/GdiNnr4ufP6XC/jhh+9w587PuHdvGLdv38SNG9fwwYfvon9vN3Zvb0Td8lxUlqSirCgZpSRQnJuIgmwdcikL2elqZKUwAbni0aaQvb19M3HT2dnlloODw5Cdnd0d+rKVRFz48xkm0+i+gX5cv34NP/30I86fP4ePPjqL3n4LOjq24O2338CVK1/i22+v4ssvL+HTTz+B2WzGqlUrcfr0HzCwvw9Na8pRXZaBqtI0VBSnYGmBgUooEYUmHYQyyhDKCClJCl7gus0C9DE5OjkNpefkoXvPPugzjIiMEcN9+vQ7JHKFzvs1tzTdO3P2lBD8wYMHce3aNVBTYk1DPXp62/HHUx/g0qXPSOIyBgcHwX/u37+PiMhIiCViHP7dAbRuqAc/CJbxAktIoJAXSEKRiZURCRhJwJCoAPXcRZsF7B0dL8cq1RgeHgb/+fziX6E1pPCjDJ5e3iOUmcHWzRvHz398ThAoKSnB5b/9HYbUdMwJmUPl04GTJ9/DhQvn8cYbh/D++++D/1y/cYOvZbi6uWHvvj48u7kRgsDSdEGgjARKSOChPiCBpAQFpBx3ymYBWuXR9Zu2gH0wPj6O7KISyNRxiBJLMeMZz/GcXOP4a4cOCAJ5eXmY5eMDL29v6PUJ6O7aQX1xGOfOncLx429h5syZMDc2I05vQJQ0Fq6uriTZifWNy60yYCXAMqDVcmMiTtlrswAZPMgtLsXY2Jgg8PXVb5CYngWpSoMFi6MRsTAS7rSKnZZdeP3IIarv89ixow21tTXoaN9KE6kefdQLJ04cx5kzH0Cp5OA9axYCgoIx08sLCQlxsHS3o646F9XlGSQwuQeSJveAICBTKm49yuaRb+Drco0W6zdTM75zHJW1dVAlGvjXOULDF2ABCQQFz4FcEomdbc3o7qGpQ+za3oQtzWXY3LwUHc9twfPP9+Gd40ephN5GW9tmJCXpsHnLBrq+HS1N1VhRkYnlZemooilUzk+hgokpNPEuyExWUdlx99lb2GaBV+eGh48kJKciVq0VSofqX1j9wDkhCA4Ng0gihb+vF5pXF2K9uQgta4qxoWEJNq4l6LihoQRtW5vQRSu9d6AH//vSAI1cCzq7dmNdQxVWVmahhq3+RP3n/6t8cjO1yE5TQ59EDaxQsN8Ctk+hUH50JhqSESONFQKfF0GrToH7+AfAf3YQdIlJcHNzwdrafDTWFaCJRJqJdfVFAvzfTfR9c30xrfYytLbUotlchtXVOULwND6FICuXPLz61uWj1iruUePv4gvbZgGWhv2+fn5DesrCXCob34BAPniBoJBQJOj18KMM1NfkYM2KXGFL0VCbxwsJ0N/Cd2Y6x1+zmrYdq5YZJ1Z+OU2ejGTK6rwg4QX20Phkq59mUPLz/264SBRMAva2Sky8hWka/T4gMPBuVnY2OJUaIXPnYU7YXCQlJ0MsFkMaE05BZdPbNJtW1iRQTytMCH9T0MK5VVVC4ELN8ytPZSNsG6IjQ5C4wAkVWl+UZsYiP1sonYl9kIpWPzpW9gLFMp1wJhyYhM1bCUfqh5dp7A3J5PIHqWnpyDQaIZFKMMvbU3iD0hikwLKEAGt5KFhCWGUKlk2ZdGGrUEQlkqaXC+LBgV4ok7tik8Edr1fOwKbkGajXeaBcH4aclFik6hXC9sE7ICCK4vAhZhAutkj8UlMsopL6jZ2d/acOjo7fBAbPuW/Qax7QHkYoBZIQgqUjQ5guQm3nG3VCqeg0IsSKFmDRwlBERYZBHDUPxvhICvoZdGR54IudEfisg8Nva+aiQTcDpVq/B4qY8Ffo2QuIYCsJVk62C9gRTiyVPkFhYSqxnLuk0qqH83P0FGwmVi3PpbLJp2MeZSSbxGjlSa6yRJjxgsxSNmmWUCZo2gjjMj9LgwpDGMzxbji20h9Xu6JxpV+FI+aF4016z/u1atcPq/P1DTqdOoae7U24E46PI+DMVsCfCHN2do6OWBzdS9vqf3Bq1bAxM4FKJZMalqbQmkq00N6+eU0FGlaV0gurgErJiPLiNHpZJfN7fiqnJNawwrYZJoMYtfFeVErT8fG6WbjaGYHBPg6v1EWNdXa2Yeuz6w75+PgEshicHkfAhXiGCCDmEosJGaELCgnpiJJIByUK5YjBED++tDANtctoGq0uw4amGmxaX0vHFSRUhfqVJVhRlYeK0iwSSSaBeCoxJTQablwk40aTYvwvrta6DL9c7DF6eYsPeixtOPjqAbzw4v6hrp7OC+XV5QsfV8CJ2fsRIUQkISXURCpR6enl1b1g0eLP+d8KsQrlqEqjGtHr48ezMmhMFmWiqsyEylIjivNSKPBEJBu0UKoVD0Qy+djC6Oir7h4eA/R/mvw87FdXK13PbsyPHOnt7aAtyQmBQ4dfHe3p7by187ntOXTdPCKDcLZVwIFwI7yIQGLepCxomUQ50Ui0UTD/5+Pr925waOifFi6OuiaKlQ1JOOUYMU6CozGx8uHIqJjr/kFBJ11cXJ6ne7YSZmIpkUJoWxqXv2fp2n133/49d44de1OQOHr0CAIC/Meio6MhkUhA110jNhL21gLWEvaTGtmbmM0kFk3KRCKRRZQR9cQGoo3oIHppJPfTsY/oJtqJbUQLUUeUshVNIJSExMvLK9rT03P+upbGVd09nZfo9/XPJlM2/P390dnZKRAWFsZL8JT+OwG7SRLuxEzCn5VTOBHFRJREPKEn0ggTUcRWtoJRyr4zscwlEXHsXinLbDgbn37sWW7bdm2L9/Pzu+nu7o6NGzeitbWVshEAlokvCPsJARskXFlPeDORYJaRCCYjZuWlYNnREFqGhlCxczJ27WJ279xJgXsRHmyAOLJnnyTAQxkVjvPnz4evry94eWuBX5RgOEwSmU54ErOYzGxiDhHGpMKJCCvC2bkwFvBsFrQ3m3bTWeBO7Fl2jPUErKFy44/p1gK2ijgSzkzGnfBgQcxkAfkwfBk+DG9iJrvWg93ryoJ2nBy41bMPWQvQ7pk/LrMSeCQRe8JhkpATk3JhQblZ4crOOVsFLGwTrAOfDLv3AAErWq0FHldmktQEDlbYM+yseYTnLSOGCDD6H1/ARilrpuD/LyYuMoFDVgJPBqx3/p84YS3wpInonmQBxlOBpwJPBf4JszXhha5WvGwAAAAASUVORK5CYII=

------=_Part_0_1330682067197--


=====================================================
== File: mailbox/store/src/test/resources/eml/mail5.eml
=====================================================
Date: Fri, 15 May 2015 06:35:59 +0000 (UTC)
From: &quot;Luc DUZAN (JIRA)&quot; &lt;luc.duzan@james.apache.org&gt;
To: &quot;zzz&quot; &lt;mailet-api@james.apache.org&gt;
Cc: any@any.com
Bcc: any@any.com
Message-ID: &lt;JIRA.1234567890@Atlassian.JIRA&gt;
Subject: This is a mail about mail!
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This is the body of the mail


=====================================================
== File: mailbox/store/src/test/resources/eml/multiAttachmentsWithOneWrongContentDisposition.eml
=====================================================
Return-Path: &lt;from@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Mon, 27 Feb 2017 05:24:55 +0100
X-Sieve: CMU Sieve 2.2
Received: from [192.168.12.138] (unknown [1.55.245.4])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id 688BF7A9
	for &lt;from@linagora.com&gt;; Mon, 27 Feb 2017 05:24:54 +0100 (CET)
To: to@linagora.com
From: Lina &lt;from@linagora.com&gt;
Subject: MultiAttachment
Message-ID: &lt;13d4375e-a4a9-f613-06a1-7e8cb1e0ea93@linagora.com&gt;
Date: Mon, 27 Feb 2017 11:24:48 +0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.2.0
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------64D8D789FC30153D6ED18258&quot;

This is a multi-part message in MIME format.
--------------64D8D789FC30153D6ED18258
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Send


--------------64D8D789FC30153D6ED18258
Content-Type: text/plain; charset=UTF-8;
 name=&quot;text1&quot;
Content-Transfer-Encoding: base64
Content-Disposition: wrongDisposition;
 filename=&quot;text1&quot;

LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBeDdQRzAr
RS8vRU1wbTdJZ0k1UTlUTURTRnlhLzFoRSt2dlRKcmswaUdGbGxQZUhMCkE1L1ZsVE0wWVdn
RzZYNTBxaU1mRTNWTGF6ZjJjMTlpWHJUMG1xLzIxUFoxd0Zub2d2NHp4VU5haWgrQm5nNjIK
RjBTeXJ1RS9PL05qcXhoL0NjcTZLL2UwNVRWNFQ2NDNVU3hBZUcwS3BwbVlXOXg4SEEvR3ZW
ODMyYXBadXhrVgppNk5Wa0RCcmZ6YVVDd3U0ekgrSHdPdi9wSTg3RTdLY2NIWUMrK0JpYWoz
Cg==
--------------64D8D789FC30153D6ED18258
Content-Type: application/vnd.ms-publisher;
 name=&quot;text2&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;text2&quot;

c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFESHM4YlQ0VC84UXltYnNp

=====================================================
== File: mailbox/store/src/test/resources/eml/spamMail.eml
=====================================================
Return-Path: &lt;root-bounces@listes.minet.net&gt;
Received: from mx1.minet.net (mx1.minet.net [192.168.102.25])
	 by imap (Cyrus v2.4.16-Debian-2.4.16-4+deb7u1) with LMTPA;
	 Wed, 03 Jun 2015 11:05:45 +0200
X-Sieve: CMU Sieve 2.4
Received: from smtp.minet.net (smtp.minet.net [192.168.102.18])
	by mx1.minet.net (Postfix) with ESMTP id F06FE610F72;
	Wed,  3 Jun 2015 11:05:48 +0200 (CEST)
Received: from listes.minet.net (listes.minet.net [192.168.102.29])
	by smtp.minet.net (Postfix) with ESMTP id AAB15610F70;
	Wed,  3 Jun 2015 09:05:48 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=minet.net; s=mail;
	t=1433322348; bh=8OtmVRMX7IWWyQo8WQIi5rKeDEQFghSX2r1WN9/pqUk=;
	h=From:Date:To:Subject:List-Id:List-Unsubscribe:List-Post:List-Help:
	 List-Subscribe:From;
	b=UkthSFXn5mtPnn7sYvDJIxgCk1O36L0p+hTOnI/xTF2WRMGJyXtLyCdFdE5jQ5gE4
	 EGNdhwmfjaKsoE7IDtc/4GrPvbnM8i9ojpSOBW1hXJPOeYnRgah/4gsXsMJWvmmq/A
	 4oTnw8ZswFXiShDmBMyaSEZuVrWTdaPBgUhVhGw8=
Received: from listes.minet.net (listes.minet.net [127.0.0.1])
	by listes.minet.net (Postfix) with ESMTP id 9CD5BA27FF9;
	Wed,  3 Jun 2015 09:05:48 +0000 (UTC)
X-Original-To: root@listes.minet.net
Delivered-To: root@listes.minet.net
Received: from mx1.minet.net (mx1.minet.net [192.168.102.25])
 by listes.minet.net (Postfix) with ESMTP id B8C1FA27FEF
 for &lt;root@listes.minet.net&gt;; Wed,  3 Jun 2015 09:05:46 +0000 (UTC)
Received: from localhost (spam.minet.net [192.168.102.97])
 by mx1.minet.net (Postfix) with ESMTP id AD28B610F6D
 for &lt;root@listes.minet.net&gt;; Wed,  3 Jun 2015 11:05:46 +0200 (CEST)
Content-Type: multipart/mixed; boundary=&quot;----------=_1433322346-12583-0&quot;
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
From: &quot;Content-filter at spam.minet.net&quot; &lt;postmaster@minet.net&gt;
Date: Wed, 3 Jun 2015 09:05:46 +0000 (UTC)
To: &lt;root@listes.minet.net&gt;
Message-ID: &lt;VASs-IZaXqmZao@spam.minet.net&gt;
Subject: [root] UNCHECKED contents in mail FROM &lt;quentin.h@riseup.net&gt;
X-BeenThere: root@listes.minet.net
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: &lt;root.listes.minet.net&gt;
List-Unsubscribe: &lt;https://listes.minet.net/cgi-bin/mailman/options/root&gt;,
 &lt;mailto:root-request@listes.minet.net?subject=unsubscribe&gt;
List-Post: &lt;mailto:root@listes.minet.net&gt;
List-Help: &lt;mailto:root-request@listes.minet.net?subject=help&gt;
List-Subscribe: &lt;https://listes.minet.net/cgi-bin/mailman/listinfo/root&gt;,
 &lt;mailto:root-request@listes.minet.net?subject=subscribe&gt;
Errors-To: root-bounces@listes.minet.net
Sender: &quot;root&quot; &lt;root-bounces@listes.minet.net&gt;


=====================================================
== File: mailbox/store/src/test/resources/eml/mail.eml
=====================================================
Return-Path: &lt;arch-general-bounces@archlinux.org&gt;
Received: from mx2.minet.net (mx2.minet.net [192.168.102.26])
	 by imap (Cyrus v2.4.16-Debian-2.4.16-4+deb7u1) with LMTPA;
	 Thu, 04 Jun 2015 06:09:06 +0200
X-Sieve: CMU Sieve 2.4
Received: from localhost (spam.minet.net [192.168.102.97])
	by mx2.minet.net (Postfix) with ESMTP id 4492D821966
	for &lt;benwa@minet.net&gt;; Thu,  4 Jun 2015 06:09:11 +0200 (CEST)
X-Virus-Scanned: by amavisd-new using ClamAV at minet.net
X-Spam-Flag: NO
X-Spam-Score: -1.499
X-Spam-Level:
X-Spam-Status: No, score=-1.499 required=1 tests=[BAYES_00=-1.5,
	FREEMAIL_FROM=0.001, T_DKIM_INVALID=0.01, T_RP_MATCHES_RCVD=-0.01]
	autolearn=ham
Received: from mx2.minet.net ([IPv6:::ffff:192.168.102.26])
	by localhost (spam.minet.net [::ffff:192.168.102.97]) (amavisd-new, port 10024)
	with ESMTP id Meygb-OHe7nm for &lt;benwa@minet.net&gt;;
	Thu,  4 Jun 2015 04:09:10 +0000 (UTC)
Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=5.9.250.164; helo=luna.archlinux.org; envelope-from=arch-general-bounces@archlinux.org; receiver=benwa@minet.net 
Authentication-Results: mx2.minet.net; dkim=fail
	reason=&quot;verification failed; insecure key&quot;
	header.d=gmail.com header.i=@gmail.com header.b=rtUETpuc;
	dkim-adsp=none (insecure policy); dkim-atps=neutral
Received: from luna.archlinux.org (luna.archlinux.org [5.9.250.164])
	(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mx2.minet.net (Postfix) with ESMTPS id DD66B821952
	for &lt;benwa@minet.net&gt;; Thu,  4 Jun 2015 06:09:09 +0200 (CEST)
Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1])
	by luna.archlinux.org (Postfix) with ESMTP id A0E06260C6;
	Thu,  4 Jun 2015 04:09:05 +0000 (UTC)
Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1])
 by luna.archlinux.org (Postfix) with ESMTP id 0CD88260C5
 for &lt;arch-general@lists.archlinux.org&gt;; Thu,  4 Jun 2015 04:09:04 +0000 (UTC)
Received: from nymeria.archlinux.org (nymeria.archlinux.org [89.238.67.251])
 by luna.archlinux.org (Postfix) with ESMTPS
 for &lt;arch-general@lists.archlinux.org&gt;; Thu,  4 Jun 2015 04:09:04 +0000 (UTC)
Received: from nymeria.archlinux.org (localhost.localdomain [127.0.0.1])
 by nymeria.archlinux.org (Postfix) with ESMTP id DDBB240260
 for &lt;arch-general@archlinux.org&gt;; Thu,  4 Jun 2015 06:09:02 +0200 (CEST)
Received: from mail-wg0-x22c.google.com (mail-wg0-x22c.google.com
 [IPv6:2a00:1450:400c:c00::22c])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by nymeria.archlinux.org (Postfix) with ESMTPS
 for &lt;arch-general@archlinux.org&gt;; Thu,  4 Jun 2015 06:09:02 +0200 (CEST)
Received: by wgme6 with SMTP id e6so23798103wgm.2
 for &lt;arch-general@archlinux.org&gt;; Wed, 03 Jun 2015 21:09:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;

=====================================================
== File: mailbox/store/src/test/resources/eml/mailWithManyHeaders.eml
=====================================================
Mail content:
To: &quot;=?utf-8?B?UmFuaSBBc3NhZg==?=&quot; &lt;rani.assaf@jri.obm.lng.org&gt;
Subject: =?utf-8?B?VHIuIDogUGhvdG9zICE=?=
Importance: Normal
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary=&quot;----=_Part_0_1330682067197&quot;

------=_Part_0_1330682067197
Content-Type: multipart/alternative;
	boundary=&quot;----=_Part_2_1330682067197&quot;

------=_Part_2_1330682067197
Content-Type: text/plain;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Content of part 1-1
------=_Part_2_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

&lt;b&gt;Content of part 1-2&lt;/b&gt;
------=_Part_2_1330682067197--

------=_Part_0_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto
header: toto

=====================================================
== File: mailbox/store/src/test/resources/eml/oneAttachmentWithEmptyContentType.eml
=====================================================
Mail content:
To: &quot;=?utf-8?B?UmFuaSBBc3NhZg==?=&quot; &lt;rani.assaf@jri.obm.lng.org&gt;
Subject: =?utf-8?B?VHIuIDogUGhvdG9zICE=?=
Importance: Normal
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary=&quot;----=_Part_0_1330682067197&quot;

------=_Part_0_1330682067197
Content-Type: multipart/alternative;
	boundary=&quot;----=_Part_2_1330682067197&quot;

------=_Part_2_1330682067197
Content-Type: text/plain;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Content of part 1-1
------=_Part_2_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

&lt;b&gt;Content of part 1-2&lt;/b&gt;
------=_Part_2_1330682067197--

------=_Part_0_1330682067197
Content-Type:
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename=&quot;gimp.png&quot;

iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAALxklEQVR4Ae2Xe0xUZ97H5X4RiyAXEARURBSYCzNnLjMwwAx3huGOIBcUFJERAUVRq+KlwHABFdu+b9+0766x1W21ttnUtE3rul6aGNtm3XbdWncjaa3VXrZRK6IgfPd3Tp6wOGmyo0v/cOMknxwy5xzO7/P8LueZaWlpaU80TwWeCvy3CcRwXJlUqp39RApIOE4i5hQPxBz30hMpIJIrjktkseMimfzPUyoglilTf/XVl8u1Ik4xrOJEEMu4wSkVEMmVZ6VSTeivFXy0TDZfIlfc0qil0KpIQM59P6UCUk71lVShPD1t2jT7qQ4+Sq32prq/GhfHjSXFSxGvEfMCQ1MsoLzOadT3pArFwBQ3LSdRqK4mJyfcz0xRwaCLRVKcBDEybmxqBRTKH8uXpEOj0/1MD3wuMTHR8T9adY4LoOD3KuPj7xYVGlGYo0e6gUNKoowkpKBmHpXJZO5TKXCrpjwT5pWFSM1IvROrVH0hksujf+laAHYWi8XT+nsKyIlvVKlSeVSu0twtXpI/Yq4rR2lBKoxpamQmK5Gm55CcIAP1wxAvOWUCEk4xVLvchIaVedi8rgq1NSXjqnjdHcrGayK5yhStVPpbLLvE/Xt6Tnf3Wu529XSM9fZ13Wzbse2kJiGhK1ap/ETCqe5lGLNum+trxnZsbca6tcuwJM+AvKw4mNI1yEpVURYUSE2S8wJ3RSKN35QJUJPdM6/IQ8vaCmzdZMbObU2w7G7BhhbzeEFR4e2SsrIRChqnz5zE999/h9HREXz19SDefOt1dPW0Y8e2Frywtx0vDnRg57NrUVdTgJJ8PYpyEpBvjEdOhvahLIg55YOioiKHRxKgjwPBEaHEQzfz/3DH9mb07+nGsbeO4MjRw+jts8DS3or/GdiNnr4ufP6XC/jhh+9w587PuHdvGLdv38SNG9fwwYfvon9vN3Zvb0Td8lxUlqSirCgZpSRQnJuIgmwdcikL2elqZKUwAbni0aaQvb19M3HT2dnlloODw5Cdnd0d+rKVRFz48xkm0+i+gX5cv34NP/30I86fP4ePPjqL3n4LOjq24O2338CVK1/i22+v4ssvL+HTTz+B2WzGqlUrcfr0HzCwvw9Na8pRXZaBqtI0VBSnYGmBgUooEYUmHYQyyhDKCClJCl7gus0C9DE5OjkNpefkoXvPPugzjIiMEcN9+vQ7JHKFzvs1tzTdO3P2lBD8wYMHce3aNVBTYk1DPXp62/HHUx/g0qXPSOIyBgcHwX/u37+PiMhIiCViHP7dAbRuqAc/CJbxAktIoJAXSEKRiZURCRhJwJCoAPXcRZsF7B0dL8cq1RgeHgb/+fziX6E1pPCjDJ5e3iOUmcHWzRvHz398ThAoKSnB5b/9HYbUdMwJmUPl04GTJ9/DhQvn8cYbh/D++++D/1y/cYOvZbi6uWHvvj48u7kRgsDSdEGgjARKSOChPiCBpAQFpBx3ymYBWuXR9Zu2gH0wPj6O7KISyNRxiBJLMeMZz/GcXOP4a4cOCAJ5eXmY5eMDL29v6PUJ6O7aQX1xGOfOncLx429h5syZMDc2I05vQJQ0Fq6uriTZifWNy60yYCXAMqDVcmMiTtlrswAZPMgtLsXY2Jgg8PXVb5CYngWpSoMFi6MRsTAS7rSKnZZdeP3IIarv89ixow21tTXoaN9KE6kefdQLJ04cx5kzH0Cp5OA9axYCgoIx08sLCQlxsHS3o646F9XlGSQwuQeSJveAICBTKm49yuaRb+Drco0W6zdTM75zHJW1dVAlGvjXOULDF2ABCQQFz4FcEomdbc3o7qGpQ+za3oQtzWXY3LwUHc9twfPP9+Gd40ephN5GW9tmJCXpsHnLBrq+HS1N1VhRkYnlZemooilUzk+hgokpNPEuyExWUdlx99lb2GaBV+eGh48kJKciVq0VSofqX1j9wDkhCA4Ng0gihb+vF5pXF2K9uQgta4qxoWEJNq4l6LihoQRtW5vQRSu9d6AH//vSAI1cCzq7dmNdQxVWVmahhq3+RP3n/6t8cjO1yE5TQ59EDaxQsN8Ctk+hUH50JhqSESONFQKfF0GrToH7+AfAf3YQdIlJcHNzwdrafDTWFaCJRJqJdfVFAvzfTfR9c30xrfYytLbUotlchtXVOULwND6FICuXPLz61uWj1iruUePv4gvbZgGWhv2+fn5DesrCXCob34BAPniBoJBQJOj18KMM1NfkYM2KXGFL0VCbxwsJ0N/Cd2Y6x1+zmrYdq5YZJ1Z+OU2ejGTK6rwg4QX20Phkq59mUPLz/264SBRMAva2Sky8hWka/T4gMPBuVnY2OJUaIXPnYU7YXCQlJ0MsFkMaE05BZdPbNJtW1iRQTytMCH9T0MK5VVVC4ELN8ytPZSNsG6IjQ5C4wAkVWl+UZsYiP1sonYl9kIpWPzpW9gLFMp1wJhyYhM1bCUfqh5dp7A3J5PIHqWnpyDQaIZFKMMvbU3iD0hikwLKEAGt5KFhCWGUKlk2ZdGGrUEQlkqaXC+LBgV4ok7tik8Edr1fOwKbkGajXeaBcH4aclFik6hXC9sE7ICCK4vAhZhAutkj8UlMsopL6jZ2d/acOjo7fBAbPuW/Qax7QHkYoBZIQgqUjQ5guQm3nG3VCqeg0IsSKFmDRwlBERYZBHDUPxvhICvoZdGR54IudEfisg8Nva+aiQTcDpVq/B4qY8Ffo2QuIYCsJVk62C9gRTiyVPkFhYSqxnLuk0qqH83P0FGwmVi3PpbLJp2MeZSSbxGjlSa6yRJjxgsxSNmmWUCZo2gjjMj9LgwpDGMzxbji20h9Xu6JxpV+FI+aF4016z/u1atcPq/P1DTqdOoae7U24E46PI+DMVsCfCHN2do6OWBzdS9vqf3Bq1bAxM4FKJZMalqbQmkq00N6+eU0FGlaV0gurgErJiPLiNHpZJfN7fiqnJNawwrYZJoMYtfFeVErT8fG6WbjaGYHBPg6v1EWNdXa2Yeuz6w75+PgEshicHkfAhXiGCCDmEosJGaELCgnpiJJIByUK5YjBED++tDANtctoGq0uw4amGmxaX0vHFSRUhfqVJVhRlYeK0iwSSSaBeCoxJTQablwk40aTYvwvrta6DL9c7DF6eYsPeixtOPjqAbzw4v6hrp7OC+XV5QsfV8CJ2fsRIUQkISXURCpR6enl1b1g0eLP+d8KsQrlqEqjGtHr48ezMmhMFmWiqsyEylIjivNSKPBEJBu0UKoVD0Qy+djC6Oir7h4eA/R/mvw87FdXK13PbsyPHOnt7aAtyQmBQ4dfHe3p7by187ntOXTdPCKDcLZVwIFwI7yIQGLepCxomUQ50Ui0UTD/5+Pr925waOifFi6OuiaKlQ1JOOUYMU6CozGx8uHIqJjr/kFBJ11cXJ6ne7YSZmIpkUJoWxqXv2fp2n133/49d44de1OQOHr0CAIC/Meio6MhkUhA110jNhL21gLWEvaTGtmbmM0kFk3KRCKRRZQR9cQGoo3oIHppJPfTsY/oJtqJbUQLUUeUshVNIJSExMvLK9rT03P+upbGVd09nZfo9/XPJlM2/P390dnZKRAWFsZL8JT+OwG7SRLuxEzCn5VTOBHFRJREPKEn0ggTUcRWtoJRyr4zscwlEXHsXinLbDgbn37sWW7bdm2L9/Pzu+nu7o6NGzeitbWVshEAlokvCPsJARskXFlPeDORYJaRCCYjZuWlYNnREFqGhlCxczJ27WJ279xJgXsRHmyAOLJnnyTAQxkVjvPnz4evry94eWuBX5RgOEwSmU54ErOYzGxiDhHGpMKJCCvC2bkwFvBsFrQ3m3bTWeBO7Fl2jPUErKFy44/p1gK2ijgSzkzGnfBgQcxkAfkwfBk+DG9iJrvWg93ryoJ2nBy41bMPWQvQ7pk/LrMSeCQRe8JhkpATk3JhQblZ4crOOVsFLGwTrAOfDLv3AAErWq0FHldmktQEDlbYM+yseYTnLSOGCDD6H1/ARilrpuD/LyYuMoFDVgJPBqx3/p84YS3wpInonmQBxlOBpwJPBf4JszXhha5WvGwAAAAASUVORK5CYII=

------=_Part_0_1330682067197--


=====================================================
== File: mailbox/store/src/test/resources/eml/oneInlinedAttachmentWithNoCid.eml
=====================================================
Return-Path: &lt;test@local.com&gt;
Received: from localhost;
	 Tue, 05 Jul 2016 11:47:47 +0200
X-Sieve: CMU Sieve 2.2
To: Test &lt;test@local.com&gt;
From: Test &lt;test@local.com&gt;
Subject: Inline attachment
Message-ID: &lt;26d91590-b995-8d45-f66a-0433c65745bb@linagora.com&gt;
Date: Tue, 5 Jul 2016 11:47:46 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.1.1
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary=&quot;------------FC06E08B3CDF05E9A3E28077&quot;

This is a multi-part message in MIME format.
--------------FC06E08B3CDF05E9A3E28077
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

This is an inline attachment:
Cheers!

--------------FC06E08B3CDF05E9A3E28077
Content-Type: multipart/related;
 boundary=&quot;------------47107B0D40019CDFED2C4263&quot;


--------------47107B0D40019CDFED2C4263
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

&lt;html&gt;
  &lt;head&gt;
    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
  &lt;/head&gt;
  &lt;body bgcolor=&quot;#FFFFFF&quot; text=&quot;#000000&quot;&gt;
    This is an inline attachment:&lt;br&gt;
    &lt;br&gt;
    &lt;img alt=&quot;&quot; src=&quot;cid:part1.37A15C92.A7C3488D@linagora.com&quot;
      height=&quot;73&quot; width=&quot;73&quot;&gt;&lt;br&gt;
    &lt;br&gt;
    &lt;br&gt;
    Cheers!&lt;br&gt;
  &lt;/body&gt;
&lt;/html&gt;

--------------47107B0D40019CDFED2C4263
Content-Type: image/png;
 name=&quot;james-logo-square.png&quot;

=====================================================
== File: mailbox/store/src/test/resources/eml/invalidCharset.eml
=====================================================
To: Antoine DUPRAT &lt;xyz@linagora.com&gt;
From: Antoine DUPRAT &lt;xyz@linagora.com&gt;
Subject: Inline attachment
Message-ID: &lt;26d91590-b995-8d45-f66a-0433c65745bb@linagora.com&gt;
Date: Tue, 5 Jul 2016 11:47:46 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset=%invalid; format=flowed
Content-Transfer-Encoding: 7bit

This is an inline attachment: Cheers!

=====================================================
== File: mailbox/store/src/test/resources/eml/headerWithDot.eml
=====================================================
From: me@example.com
To: you@example.com
X-normal-header: normal header
X-header.with.dots: header with dots
Subject: Test me

Please!

=====================================================
== File: mailbox/store/src/test/resources/eml/emailWithOnlyAttachment.eml
=====================================================
Return-Path: &lt;chibenwa@apache.org&gt;
Subject: 29989 btellier
From: &lt;any@mail.com&gt;
Content-Disposition: attachment
MIME-Version: 1.0
Date: Sun, 02 Apr 2017 22:09:04 -0000
Content-Type: application/zip; name=&quot;9559333830.zip&quot;
To: &lt;chibenwa@apache.org&gt;
Message-ID: &lt;149117094410.10639.6001033367375624@any.com&gt;
Content-Transfer-Encoding: base64

UEsDBBQAAgAIAEQeg0oN2YT/EAsAAMsWAAAIABwAMjIwODUuanNVVAkAAxBy4VgQcuFYdXgLAAEE
AAAAAAQAAAAApZhbi1zHFYWfY/B/MP3i7kwj1/2CokAwBPIQ+sGPkgJ1tURkdeiMbYzQf8+3q8+M
ZmQllgn2aHrqnNq1L2uvtavnj2/b7evz26/Op5M6q/P+8OUX77784g8/lQtLisXTU/68vfzCv/Lg
D9vqs/3b8fNXf92273ey4XTCykk9w9LpfD7tX+zGzU83b8pPg39uBr/Kmxe7w9PLuP3xwpFKTJ32
AAEEAAAAAAQAAAAAUEsFBgAAAAABAAEATgAAAFILAAAAAA==

=====================================================
== File: mailbox/store/src/test/resources/eml/inlined-mixed.eml
=====================================================
Date: Wed, 26 Jan 2022 12:21:37 +0100
From: Bob &lt;bob@domain.tld&gt;
To: Alice &lt;alice@domain.tld&gt;
Subject: My subject
Message-ID: &lt;20220126112137.wookj26xellphlam@W0248292&gt;
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=&quot;7f4cfz6rtfqdbqxn&quot;
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

--7f4cfz6rtfqdbqxn
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Main test message...

--7f4cfz6rtfqdbqxn
Content-Type: application/json; charset=us-ascii
Content-Disposition: attachment; filename=&quot;yyy.txt&quot;
Content-Transfer-Encoding: quoted-printable

[
    {
        &quot;Id&quot;: &quot;2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;
    }
]

--7f4cfz6rtfqdbqxn
Content-Type: application/json; charset=us-ascii
Content-Disposition: attachment; filename=&quot;xxx.txt&quot;
Content-Transfer-Encoding: quoted-printable

[
    {
        &quot;Id&quot;: &quot;3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;
    }
]

--7f4cfz6rtfqdbqxn--



=====================================================
== File: mailbox/store/src/test/resources/eml/filenameOnly.eml
=====================================================
Return-Path: &lt;any@linagora.com&gt;
MIME-Version: 1.0
Delivered-To: ddo@linagora.com
Date: Mon, 21 Aug 2017 00:17:47 +0200
From: any@linagora.com
To: any@linagora.com
Subject: Inventaire des VMs
Message-ID: &lt;599a0a8b.MepmS5MLy1x/pobR%any@linagora.com&gt;
Content-Type: multipart/mixed;
 boundary=&quot;=_599a0a8b.iCfd4209N6lpM3fjUmImU2D6HH6PWpQZh/HT8dK7qTYz0tRA&quot;

This is a multi-part message in MIME format.

--=_599a0a8b.iCfd4209N6lpM3fjUmImU2D6HH6PWpQZh/HT8dK7qTYz0tRA
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Bonjour
En pi&#xe8;ce jointe l'inventaire &#xe0; jour des VMs et les erreurs
Cordialement.


--=_599a0a8b.iCfd4209N6lpM3fjUmImU2D6HH6PWpQZh/HT8dK7qTYz0tRA
Content-Type: text/csv;
 charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment;
 filename=&quot;inventory.csv&quot;

DATA
--=_599a0a8b.iCfd4209N6lpM3fjUmImU2D6HH6PWpQZh/HT8dK7qTYz0tRA

=====================================================
== File: mailbox/store/src/test/resources/eml/noContentDispositionWithCID.eml
=====================================================
To: me@linagora.com
From: Benoit Tellier &lt;me@linagora.com&gt;
Subject: Mail with text attachment
Message-ID: &lt;befd8cab-9c9c-5537-4e77-937f32326087@any.com&gt;
Date: Thu, 13 Oct 2016 10:26:20 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------4FD2D252DB453546C22C25B2&quot;

This is a multi-part message in MIME format.
--------------4FD2D252DB453546C22C25B2
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

I'm the body!

--------------4FD2D252DB453546C22C25B2
Content-Type: text/plain; charset=UTF-8;
 name=&quot;attachment.txt&quot;
Content-ID: &lt;id&gt;

I'm a Schroedinger cat
--------------4FD2D252DB453546C22C25B2--

=====================================================
== File: mailbox/store/src/test/resources/eml/embeddedAttachmentWithAttachment.eml
=====================================================
Return-Path: &lt;aduprat@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Thu, 12 May 2016 16:09:40 +0200
X-Sieve: CMU Sieve 2.2
Received: from [10.69.0.107] (mne69-10-88-173-78-196.fbx.proxad.net [88.173.78.196])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id 233CA267F
	for &lt;aduprat@linagora.com&gt;; Thu, 12 May 2016 16:09:40 +0200 (CEST)
References: &lt;57348E62.7000505@linagora.com&gt;
Subject: Fwd: EmbeddedAttachment
To: Antoine DUPRAT &lt;aduprat@linagora.com&gt;
From: Antoine DUPRAT &lt;aduprat@linagora.com&gt;
X-Forwarded-Message-Id: &lt;57348E62.7000505@linagora.com&gt;
Message-ID: &lt;57348EA3.8010501@linagora.com&gt;
Date: Thu, 12 May 2016 16:09:39 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: &lt;57348E62.7000505@linagora.com&gt;
Content-Type: multipart/mixed;
 boundary=&quot;------------040807010700040800000502&quot;

This is a multi-part message in MIME format.
--------------040807010700040800000502
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

forwarded

--------------040807010700040800000502
Content-Type: message/rfc822;
 name=&quot;EmbeddedAttachment.eml&quot;
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename=&quot;EmbeddedAttachment.eml&quot;

Return-Path: &lt;aduprat@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Thu, 12 May 2016 16:08:35 +0200
X-Sieve: CMU Sieve 2.2
Received: from [10.69.0.107] (mne69-10-88-173-78-196.fbx.proxad.net [88.173.78.196])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id 0FC992683
	for &lt;aduprat@linagora.com&gt;; Thu, 12 May 2016 16:08:35 +0200 (CEST)
To: Antoine DUPRAT &lt;aduprat@linagora.com&gt;
From: Antoine DUPRAT &lt;aduprat@linagora.com&gt;

=====================================================
== File: mailbox/store/src/test/resources/eml/oneInlinedAttachment.eml
=====================================================
Return-Path: &lt;aduprat@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Tue, 05 Jul 2016 11:47:47 +0200
X-Sieve: CMU Sieve 2.2
Received: from [10.69.0.107] (mne69-10-88-173-78-196.fbx.proxad.net [88.173.78.196])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id F1F3E74E
	for &lt;aduprat@linagora.com&gt;; Tue,  5 Jul 2016 11:47:46 +0200 (CEST)
To: Antoine DUPRAT &lt;aduprat@linagora.com&gt;
From: Antoine DUPRAT &lt;aduprat@linagora.com&gt;
Subject: Inline attachment
Message-ID: &lt;26d91590-b995-8d45-f66a-0433c65745bb@linagora.com&gt;
Date: Tue, 5 Jul 2016 11:47:46 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.1.1
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary=&quot;------------FC06E08B3CDF05E9A3E28077&quot;

This is a multi-part message in MIME format.
--------------FC06E08B3CDF05E9A3E28077
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

This is an inline attachment:




Cheers!

--------------FC06E08B3CDF05E9A3E28077
Content-Type: multipart/related;
 boundary=&quot;------------47107B0D40019CDFED2C4263&quot;


--------------47107B0D40019CDFED2C4263
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

&lt;html&gt;
  &lt;head&gt;

    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
  &lt;/head&gt;
  &lt;body bgcolor=&quot;#FFFFFF&quot; text=&quot;#000000&quot;&gt;
    This is an inline attachment:&lt;br&gt;
    &lt;br&gt;

=====================================================
== File: mailbox/store/src/test/resources/eml/james-3901.eml
=====================================================
Return-Path: &lt;firstname1.surname1@upn.integration-open-paas.org&gt;
Received: from 10.2.0.0 (EHLO 617) ([10.2.0.0])
          by smtp.upn.integration-open-paas.org (JAMES SMTP Server ) with ESMTP ID -489272706
          for &lt;firstname1.surname1@upn.integration-open-paas.org&gt;;
          Sat, 28 Nov 2020 10:49:24 +0000 (GMT)
Date: Wed, 4 Apr 2001 13:19:00 -0700 (PDT),Wed, 4 Apr 2001 13:19:00 -0700  (PDT)
Message-ID: &lt;IYIOY5YCQEC2XEIOMNMMMASDTLDQ3JZLB@zlsvr22&gt;
from: &quot;Drew Fossum&quot;
to: &quot;Mary Kay Miller&quot;
subject: Revised Draft
filename: dfossum.nsf
folder: \Drew_Fossum_Dec2000_June2001_2\Notes Folders\Sent
date: Wed, 4 Apr 2001 13:19:00 -0700 (PDT),Wed, 4 Apr 2001 13:19:00 -0700  (PDT)
Status: RO
Cc: 
X-libpst-forensic-sender: Drew Fossum
X-libpst-forensic-bcc: 
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary=&quot;--boundary-LibPST-iamunique-1722682679_-_-&quot;


----boundary-LibPST-iamunique-1722682679_-_-
Content-Type: text/plain; charset=&quot;us-ascii&quot;

---------------------- Forwarded by Drew Fossum/ET&amp;S/Enron on 04/04/2001 
01:19 PM ---------------------------


&quot;Hirasuna, Robert&quot; &lt;rhirasuna@AkinGump.com&gt; on 04/04/2001 10:18:00 AM
To: &quot;Drew Fossum (E-mail)&quot; &lt;dfossum@enron.com&gt;
cc:  

Subject: Revised Draft


 &lt;&lt;4%P001!.DOC&gt;&gt; Use this draft instead.  I missed a couple of delted dashes 
on the first page.

The information contained in this e-mail message is intended only for the 
personal and confidential use of the recipient(s) named above. This message 
may be an attorney-client communication and/or work product and as such is 
privileged and confidential. If the reader of this message is not the 
intended recipient or an agent responsible for delivering it to the intended 
recipient, you are hereby notified that you have received this document in 
error and that any review, dissemination, distribution, or copying of this 
message is strictly prohibited. If you have received this communication in 
error, please notify us immediately by e-mail, and delete the original 
message.


=====================================================
== File: mailbox/store/src/test/resources/eml/messageWithNonASCIIFilenameAttachment.eml
=====================================================
Return-Path: &lt;lroyet@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Fri, 26 Aug 2016 10:00:36 +0200
X-Sieve: CMU Sieve 2.2
Received: from [10.69.0.146] (mne69-10-88-173-78-196.fbx.proxad.net [88.173.78.196])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id A863676F
	for &lt;lroyet@linagora.com&gt;; Fri, 26 Aug 2016 10:00:36 +0200 (CEST)
To: Laura ROYET &lt;lroyet@linagora.com&gt;
From: Laura Royet &lt;lroyet@linagora.com&gt;
Subject: message with non ASCII filename attachment
Message-ID: &lt;d929964c-032e-ada5-c97d-a048e9a32bab@linagora.com&gt;
Date: Fri, 26 Aug 2016 10:00:35 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.2.0
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------9F1006EBC7F5F7758497FD08&quot;

This is a multi-part message in MIME format.
--------------9F1006EBC7F5F7758497FD08
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit



--------------9F1006EBC7F5F7758497FD08
Content-Type: application/vnd.oasis.opendocument.text;
 name=&quot;=?UTF-8?B?2K/ZitmG2KfYtdmI2LEub2R0?=&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename*=utf-8''%D8%AF%D9%8A%D9%86%D8%A7%D8%B5%D9%88%D8%B1%2E%6F%64%74

UEsDBBQAAAgAAOB8GElexjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQu
b2FzaXMub3BlbmRvY3VtZW50LnRleHRQSwMEFAAACAAA4HwYSQ5gBad3CQAAdwkAABgAAABU
aHVtYm5haWxzL3RodW1ibmFpbC5wbmeJUE5HDQoaCgAAAA1JSERSAAAAtQAAAQAIAgAAAHpB
oIwAAAk+SURBVHic7dvJT1TpAobxYihmmSQCojIICYao6Q6ioGHlgo2b3nWivei9/1ivOr2Q
hYZIolFDwAQktCIgQeIEMg8y3pf65KSA229fSuWyeH7pVE6dOnWw+3vqO+cr6czt7e0Y8A8y
/99/ABxr9AGHPuDQBxz6gEMfcOgDDn3AoQ849AGHPuDQBxz6gEMfcOgDzuH62N7eTktL0+PW
1paeajs9PT38BknYH21HT8MBevqvpw3nDE/1Lj0N7wpPwwn9efDdHa6PMDwhiyiUsJH86lZC
OCaMejhs36j/048ISWVkZMR244iKTH5XyOV/6Q8pS2X+WFxcfPbs2fr6emVl5eXLl2dmZoqL
i7V/aWlpbGwsLy9PT0tLS3XA+Ph4fX19eNe+CSB5RMP+d+/eZWVlLS8vT09PV1dX9/f3l5WV
6dWNjY2mpqZ4PL4vqYPnxHeXyv1HQYI+369evdLgffnyRSPa0dHx+vXrBw8etLW1jYyMbG5u
ak9vb69eVSjDw8O1tbXNzc3d3d1VVVXa+eHDhxMnTugk8/Pzubm5V69effLkifbk5OQohcHB
wUuXLn3+/Pn9+/eaIVZWVu7du3fx4sWJiYn8/HxVWFRUpB+hR/24MFd99/80iKVwfQmDkZm5
80ZNEm/evNEY63Fubk6jW15ePjU1pWlDB+iTrblEZWhi0B6Nuvp4+vSphvn06dMaeA32yZMn
dU7NGaOjo6urq3qLJiftqaio0AGrCXqqnrTx4sWLoaGh8+fP6+Saqx49enTz5s0f858FX6Vy
fdHGuXPntK1HzR8qpqWlRa3oo3/9+nUN3rVr11SDjlQQ4ZOt0S0sLNTGnTt3NFuEAhSWDtPs

=====================================================
== File: mailbox/store/src/test/resources/eml/filenameAndName.eml
=====================================================
Return-Path: &lt;any@linagora.com&gt;
MIME-Version: 1.0
Delivered-To: ddo@linagora.com
Date: Mon, 21 Aug 2017 00:17:47 +0200
From: any@linagora.com
To: any@linagora.com
Subject: Inventaire des VMs
Message-ID: &lt;599a0a8b.MepmS5MLy1x/pobR%any@linagora.com&gt;
Content-Type: multipart/mixed;
 boundary=&quot;=_599a0a8b.iCfd4209N6lpM3fjUmImU2D6HH6PWpQZh/HT8dK7qTYz0tRA&quot;

This is a multi-part message in MIME format.

--=_599a0a8b.iCfd4209N6lpM3fjUmImU2D6HH6PWpQZh/HT8dK7qTYz0tRA
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Bonjour
En pi&#xe8;ce jointe l'inventaire &#xe0; jour des VMs et les erreurs
Cordialement.


--=_599a0a8b.iCfd4209N6lpM3fjUmImU2D6HH6PWpQZh/HT8dK7qTYz0tRA
Content-Type: text/csv;
 charset=utf-8; name=&quot;good.csv&quot;;
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment;
 filename=&quot;bad.csv&quot;

DATA
--=_599a0a8b.iCfd4209N6lpM3fjUmImU2D6HH6PWpQZh/HT8dK7qTYz0tRA

=====================================================
== File: mailbox/store/src/test/resources/eml/invitationEmailFromOP.eml
=====================================================
Return-Path: &lt;rbevillard@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Tue, 05 Jul 2016 17:33:42 +0200
X-Sieve: CMU Sieve 2.2
Received: from [127.0.0.1] (openpaas-rse.linagora.dc1 [172.16.18.188])
	by alderaan.linagora.com (Postfix) with ESMTP id 1F72974B
	for &lt;ddolcimascolo@linagora.com&gt;; Tue,  5 Jul 2016 17:33:42 +0200 (CEST)
Content-Type: multipart/mixed;
 boundary=&quot;----sinikael-?=_1-14677328221140.595814419677481&quot;
From: rbevillard@linagora.com
To: ddolcimascolo@linagora.com
Subject: New event from Romain BEVILLARD: test event
X-Mailer: nodemailer (1.3.4; +http://www.nodemailer.com;
 SMTP/1.1.0[client:1.3.8])
Date: Tue, 05 Jul 2016 15:33:42 +0000
Message-Id: &lt;1467732822125-f0c14587-1cd7b923-0d50a279@linagora.com&gt;
MIME-Version: 1.0

------sinikael-?=_1-14677328221140.595814419677481
Content-Type: multipart/alternative;
 boundary=&quot;----sinikael-?=_2-14677328221140.595814419677481&quot;

------sinikael-?=_2-14677328221140.595814419677481
Content-Type: multipart/related; type=&quot;text/html&quot;;
 boundary=&quot;----sinikael-?=_3-14677328221140.595814419677481&quot;

------sinikael-?=_3-14677328221140.595814419677481
Content-Type: text/html
Content-Transfer-Encoding: base64

PCFET0NUWVBFIGh0bWw+CjxodG1sIGNsYXNzPSJtYWlsIj4KICA8aGVhZD4KICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgICA8c3R5bGU+QG1lZGlhIChtYXgtd2lk
dGg6IDc2OHB4KSB7CiAgLmNvbnRlbnQgewogICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAg
IGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDsKICB9Cn0KCiAgICA8L3N0eWxlPgogIDwvaGVh
ZD4KICA8Ym9keSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTsiPgogICAgPGRpdiBj
bGFzcz0id3JhcHBlciIgc3R5bGU9IndpZHRoOiA3MDBweDsgbWFyZ2luLWxlZnQ6IGF1dG87IG1h
cmdpbi1yaWdodDogYXV0bzsiPjxicj4KICAgICAgPGRpdiBjbGFzcz0ibWFpbC1jb250ZW50IiBz
dHlsZT0icGFkZGluZzogMTBweCAxM3B4OyBib3JkZXItcmFkaXVzOiA1cHg7IHRleHQtYWxpZ246
IGp1c3RpZnk7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyI+CiAgICAgICAgPHRhYmxlIHN0eWxl
PSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB3aWR0aDogMTAwJTsgY29sb3I6ICMzMzMzMzM7
Ij4KICAgICAgICAgIDx0ciBjbGFzcz0idGFibGUtaGVhZGVyIiBzdHlsZT0idGV4dC1hbGlnbjog
cmlnaHQ7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDZkN2Q5OyI+CiAgICAgICAgICAgIDx0
ZCBjb2xzcGFuPSIyIiBjbGFzcz0ibG9nbyIgc3R5bGU9InBhZGRpbmctYm90dG9tOiAxMHB4OyBw
YWRkaW5nLXRvcDogNXB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICA8ZGl2
PjxhIGhyZWY9Imh0dHBzOi8vZGV2Lm9wZW4tcGFhcy5vcmciPjxpbWcgc3JjPSJjaWQ6bG9nbyIg
YWx0PSJvcGVuLXBhYXMgbG9nbyI+PC9hPjwvZGl2PgogICAgICAgICAgICA8L3RkPgogICAgICAg
ICAgICA8dGQgY29sc3Bhbj0iMyIgY2xhc3M9Im9yZ2FuaXplciIgc3R5bGU9InBhZGRpbmctYm90
dG9tOiAxMHB4OyBwYWRkaW5nLXRvcDogNXB4OyB0ZXh0LWFsaWduOiByaWdodDsgdHJhbnNmb3Jt

=====================================================
== File: mailbox/store/src/test/resources/eml/mail3.eml
=====================================================
Return-Path: &lt;server-dev-return-56848-benwa=minet.net@james.apache.org&gt;
Received: from mx1.minet.net (mx1.minet.net [192.168.102.25])
	 by imap (Cyrus v2.4.16-Debian-2.4.16-4+deb7u1) with LMTPA;
	 Tue, 02 Jun 2015 10:16:17 +0200
X-Sieve: CMU Sieve 2.4
Received: from localhost (spam.minet.net [192.168.102.97])
	by mx1.minet.net (Postfix) with ESMTP id 52917327827
	for &lt;benwa@minet.net&gt;; Tue,  2 Jun 2015 10:16:22 +0200 (CEST)
X-Virus-Scanned: by amavisd-new using ClamAV at minet.net
X-Spam-Flag: NO
X-Spam-Score: -1.51
X-Spam-Level:
X-Spam-Status: No, score=-1.51 required=1 tests=[BAYES_00=-1.5,
	T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mx1.minet.net ([IPv6:::ffff:192.168.102.25])
	by localhost (spam.minet.net [::ffff:192.168.102.97]) (amavisd-new, port 10024)
	with ESMTP id rcP3IZbh_eqS for &lt;benwa@minet.net&gt;;
	Tue,  2 Jun 2015 08:16:21 +0000 (UTC)
Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=140.211.11.3; helo=mail.apache.org; envelope-from=server-dev-return-56848-benwa=minet.net@james.apache.org; receiver=benwa@minet.net
Authentication-Results: mx1.minet.net; dkim=none reason=&quot;no signature&quot;;
	dkim-adsp=none (insecure policy); dkim-atps=neutral
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by mx1.minet.net (Postfix) with SMTP id 37EAD327826
	for &lt;benwa@minet.net&gt;; Tue,  2 Jun 2015 10:16:20 +0200 (CEST)
Received: (qmail 1143 invoked by uid 500); 2 Jun 2015 08:16:20 -0000
Mailing-List: contact server-dev-help@james.apache.org; run by ezmlm
Precedence: bulk
List-Unsubscribe: &lt;mailto:server-dev-unsubscribe@james.apache.org&gt;
List-Help: &lt;mailto:server-dev-help@james.apache.org&gt;
List-Post: &lt;mailto:server-dev@james.apache.org&gt;
List-Id: &quot;James Developers List&quot; &lt;server-dev.james.apache.org&gt;
Reply-To: &quot;James Developers List&quot; &lt;server-dev@james.apache.org&gt;
Delivered-To: mailing list server-dev@james.apache.org
Received: (qmail 1132 invoked by uid 99); 2 Jun 2015 08:16:20 -0000
Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28)
    by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 02 Jun 2015 08:16:20 +0000
Date: Tue, 2 Jun 2015 08:16:19 +0000 (UTC)
From: &quot;abcd&quot; &lt;jira@apache.org&gt;
Cc: zzz@bcd.org
To: &quot;server&quot; &lt;c-server-dev@james.apache.org&gt;
Message-ID: &lt;JIRA.12473940.1284322083000.91735.1433232979714@Atlassian.JIRA&gt;
In-Reply-To: &lt;JIRA.12473940.1284322083000@Atlassian.JIRA&gt;
References: &lt;JIRA.12473940.1284322083000@Atlassian.JIRA&gt; &lt;JIRA.12473940.1284322083687@arcas&gt;
Subject: [jira] [Closed] (MAILBOX-11) MailboxQuery ignore namespace
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394



=====================================================
== File: mailbox/store/src/test/resources/eml/frnog.eml
=====================================================
Return-Path: &lt;frnog-owner@frnog.org&gt;
Received: from mx2.minet.net (mx2.minet.net [192.168.102.26])
	 by imap (Cyrus v2.4.16-Debian-2.4.16-4+deb7u1) with LMTPA;
	 Tue, 02 Jun 2015 12:01:42 +0200
X-Sieve: CMU Sieve 2.4
Received: from localhost (spam.minet.net [192.168.102.97])
	by mx2.minet.net (Postfix) with ESMTP id E92F2A25320
	for &lt;benwa@minet.net&gt;; Tue,  2 Jun 2015 12:01:46 +0200 (CEST)
X-Virus-Scanned: by amavisd-new using ClamAV at minet.net
X-Spam-Flag: NO
X-Spam-Score: -1.499
X-Spam-Level:
X-Spam-Status: No, score=-1.499 required=1 tests=[BAYES_00=-1.5,
	UNPARSEABLE_RELAY=0.001] autolearn=ham
Received: from mx2.minet.net ([IPv6:::ffff:192.168.102.26])
	by localhost (spam.minet.net [::ffff:192.168.102.97]) (amavisd-new, port 10024)
	with ESMTP id bRNLR9Tbk4Jg for &lt;benwa@minet.net&gt;;
	Tue,  2 Jun 2015 10:01:46 +0000 (UTC)
Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=217.24.82.4; helo=cabale.usenet-fr.net; envelope-from=frnog-owner@frnog.org; receiver=benwa@minet.net
Received: from cabale.usenet-fr.net (cabale.usenet-fr.net [217.24.82.4])
	by mx2.minet.net (Postfix) with ESMTP id 089E7A2531A
	for &lt;benwa@minet.net&gt;; Tue,  2 Jun 2015 12:01:45 +0200 (CEST)
Received: by cabale.usenet-fr.net (Postfix, from userid 90)
	id A267298A5DC6; Tue,  2 Jun 2015 12:01:44 +0200 (CEST)
X-Original-To: frnog@frnog.org
Delivered-To: frnog@frnog.org
Received: from mta.mail.waycom.net (mta.mail.waycom.net [194.177.32.18])
	by cabale.usenet-fr.net (Postfix) with ESMTP id AE2E798A58FC
	for &lt;frnog@frnog.org&gt;; Tue,  2 Jun 2015 12:01:01 +0200 (CEST)
Received: from [127.0.0.1] (localhost [127.0.0.1])
	by mta.mail.waycom.net (Postfix) with ESMTP id D30D6567E1
	for &lt;frnog@frnog.org&gt;; Tue,  2 Jun 2015 12:00:56 +0200 (CEST)
Received: from [127.0.0.1] (localhost [127.0.0.1])
 wcm-hv1-exch1.wcmnoc.local (2002:c3d6:f04a::c3d6:f04a) with Microsoft SMTP
 Server (TLS) id 15.0.847.32; Tue, 2 Jun 2015 12:00:56 +0200
Message-ID: &lt;556D7ED7.2090108@waycom.net&gt;
Date: Tue, 2 Jun 2015 12:00:55 +0200
From: Guillaume Genty &lt;ggenty@waycom.net&gt;
Organization: Waycom
MIME-Version: 1.0
To: &lt;frnog@frnog.org&gt;
Cc: no@no.com
Bcc: no@no.com
Content-Type: text/plain; charset=&quot;utf-8&quot;; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WCM-HV1-EXCH1.wcmnoc.local (2002:c3d6:f04a::c3d6:f04a) To
 wcm-hv1-exch1.wcmnoc.local (2002:c3d6:f04a::c3d6:f04a)
X-C2ProcessedOrg: 9180093e-3f32-48c9-b36b-0805cbe4c266
Subject: [FRnOG] [BIZ] Collecte de liens C2E/CELAN en DOM
X-Loop: frnog@frnog.org

=====================================================
== File: mailbox/store/src/test/resources/eml/twoAttachments.eml
=====================================================
Return-Path: &lt;from@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Fri, 27 Feb 2015 20:32:14 +0100
X-Sieve: CMU Sieve 2.2
Received: from canondir.par.lng (unknown [92.103.166.6])
	(using TLSv1 with cipher AES256-SHA (256/256 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id BAB0D728
	for &lt;to@linagora.com&gt;; Fri, 27 Feb 2015 20:31:38 +0100 (CET)
X-Priority: 3 (Normal)
From: &quot;From&quot;
 &lt;from@linagora.com&gt;
To: &quot;To&quot;
 &lt;to@linagora.com&gt;
Subject: [8/10]Attached Image light with text
Date: Fri, 27 Mar 2015 21:48:38 +0100
Message-Id: &lt;20150227203838.0011.CanonTxNo.4037@canondir.par.lng&gt;
Mime-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;AHNPACBLDCDIDAGGGDDFAABECGCA&quot;

--AHNPACBLDCDIDAGGGDDFAABECGCA
Content-Type: text/html; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

&lt;b&gt;html&lt;/b&gt;

--AHNPACBLDCDIDAGGGDDFAABECGCA
Content-Type: image/jpeg;
 name=&quot;4037_014.jpg&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;4037_014.jpg&quot;

/9j/4X2cRXhpZgAASUkqAAgAAAANAA8BAgAKAAAAqgAAABABAgAJAAAAtAAAABIBAwABAAAA
AQAAABoBBQABAAAAvgAAABsBBQABAAAAxgAAACgBAwABAAAAAgAAADEBAgAKAAAAzgAAADIB
AgAUAAAA2AAAABMCAwABAAAAAgAAAGmHBAABAAAAfAIAAKXEBwDQAAAA7AAAANLGBwBAAAAA
vAEAANPGBwCAAAAA/AEAAEwqAABQYW5hc29uaWMARE1DLUZaNDUAALQAAAABAAAAtAAAAAEA
AABWZXIuMS4wICAAMjAxNDowMjoyNSAxMDozMjowOQBQcmludElNADAyNTAAAA4AAQAWABYA
AgAAAAAAAwBkAAAABwAAAAAACAAAAAAACQAAAAAACgAAAAAACwCsAAAADAAAAAAADQAAAAAA
DgDEAAAAAAEFAAAAAQEBAAAAEAGAAAAACREAABAnAAALDwAAECcAAJcFAAAQJwAAsAgAABAn
AAABHAAAECcAAF4CAAAQJwAAiwAAABAnAADLAwAAECcAAOUbAAAQJwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

=====================================================
== File: mailbox/store/src/test/resources/eml/oneAttachmentAndSomeTextInlined.eml
=====================================================
Mail content:
To: &quot;=?utf-8?B?UmFuaSBBc3NhZg==?=&quot; &lt;rani.assaf@jri.obm.lng.org&gt;
Subject: =?utf-8?B?VHIuIDogUGhvdG9zICE=?=
Importance: Normal
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary=&quot;----=_Part_0_1330682067197&quot;

------=_Part_0_1330682067197
Content-Type: multipart/alternative;
	boundary=&quot;----=_Part_2_1330682067197&quot;

------=_Part_2_1330682067197
Content-Type: text/plain;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Content of part 1-1
------=_Part_2_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

&lt;b&gt;Content of part 1-2&lt;/b&gt;
------=_Part_2_1330682067197--

------=_Part_0_1330682067197
Content-Type: application/octet-stream;
	name=&quot;exploits_of_a_mom.png&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename=&quot;gimp.png&quot;

iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAALxklEQVR4Ae2Xe0xUZ97H5X4RiyAXEARURBSYCzNnLjMwwAx3huGOIBcUFJERAUVRq+KlwHABFdu+b9+0766x1W21ttnUtE3rul6aGNtm3XbdWncjaa3VXrZRK6IgfPd3Tp6wOGmyo0v/cOMknxwy5xzO7/P8LueZaWlpaU80TwWeCvy3CcRwXJlUqp39RApIOE4i5hQPxBz30hMpIJIrjktkseMimfzPUyoglilTf/XVl8u1Ik4xrOJEEMu4wSkVEMmVZ6VSTeivFXy0TDZfIlfc0qil0KpIQM59P6UCUk71lVShPD1t2jT7qQ4+Sq32prq/GhfHjSXFSxGvEfMCQ1MsoLzOadT3pArFwBQ3LSdRqK4mJyfcz0xRwaCLRVKcBDEybmxqBRTKH8uXpEOj0/1MD3wuMTHR8T9adY4LoOD3KuPj7xYVGlGYo0e6gUNKoowkpKBmHpXJZO5TKXCrpjwT5pWFSM1IvROrVH0hksujf+laAHYWi8XT+nsKyIlvVKlSeVSu0twtXpI/Yq4rR2lBKoxpamQmK5Gm55CcIAP1wxAvOWUCEk4xVLvchIaVedi8rgq1NSXjqnjdHcrGayK5yhStVPpbLLvE/Xt6Tnf3Wu529XSM9fZ13Wzbse2kJiGhK1ap/ETCqe5lGLNum+trxnZsbca6tcuwJM+AvKw4mNI1yEpVURYUSE2S8wJ3RSKN35QJUJPdM6/IQ8vaCmzdZMbObU2w7G7BhhbzeEFR4e2SsrIRChqnz5zE999/h9HREXz19SDefOt1dPW0Y8e2Frywtx0vDnRg57NrUVdTgJJ8PYpyEpBvjEdOhvahLIg55YOioiKHRxKgjwPBEaHEQzfz/3DH9mb07+nGsbeO4MjRw+jts8DS3or/GdiNnr4ufP6XC/jhh+9w587PuHdvGLdv38SNG9fwwYfvon9vN3Zvb0Td8lxUlqSirCgZpSRQnJuIgmwdcikL2elqZKUwAbni0aaQvb19M3HT2dnlloODw5Cdnd0d+rKVRFz48xkm0+i+gX5cv34NP/30I86fP4ePPjqL3n4LOjq24O2338CVK1/i22+v4ssvL+HTTz+B2WzGqlUrcfr0HzCwvw9Na8pRXZaBqtI0VBSnYGmBgUooEYUmHYQyyhDKCClJCl7gus0C9DE5OjkNpefkoXvPPugzjIiMEcN9+vQ7JHKFzvs1tzTdO3P2lBD8wYMHce3aNVBTYk1DPXp62/HHUx/g0qXPSOIyBgcHwX/u37+PiMhIiCViHP7dAbRuqAc/CJbxAktIoJAXSEKRiZURCRhJwJCoAPXcRZsF7B0dL8cq1RgeHgb/+fziX6E1pPCjDJ5e3iOUmcHWzRvHz398ThAoKSnB5b/9HYbUdMwJmUPl04GTJ9/DhQvn8cYbh/D++++D/1y/cYOvZbi6uWHvvj48u7kRgsDSdEGgjARKSOChPiCBpAQFpBx3ymYBWuXR9Zu2gH0wPj6O7KISyNRxiBJLMeMZz/GcXOP4a4cOCAJ5eXmY5eMDL29v6PUJ6O7aQX1xGOfOncLx429h5syZMDc2I05vQJQ0Fq6uriTZifWNy60yYCXAMqDVcmMiTtlrswAZPMgtLsXY2Jgg8PXVb5CYngWpSoMFi6MRsTAS7rSKnZZdeP3IIarv89ixow21tTXoaN9KE6kefdQLJ04cx5kzH0Cp5OA9axYCgoIx08sLCQlxsHS3o646F9XlGSQwuQeSJveAICBTKm49yuaRb+Drco0W6zdTM75zHJW1dVAlGvjXOULDF2ABCQQFz4FcEomdbc3o7qGpQ+za3oQtzWXY3LwUHc9twfPP9+Gd40ephN5GW9tmJCXpsHnLBrq+HS1N1VhRkYnlZemooilUzk+hgokpNPEuyExWUdlx99lb2GaBV+eGh48kJKciVq0VSofqX1j9wDkhCA4Ng0gihb+vF5pXF2K9uQgta4qxoWEJNq4l6LihoQRtW5vQRSu9d6AH//vSAI1cCzq7dmNdQxVWVmahhq3+RP3n/6t8cjO1yE5TQ59EDaxQsN8Ctk+hUH50JhqSESONFQKfF0GrToH7+AfAf3YQdIlJcHNzwdrafDTWFaCJRJqJdfVFAvzfTfR9c30xrfYytLbUotlchtXVOULwND6FICuXPLz61uWj1iruUePv4gvbZgGWhv2+fn5DesrCXCob34BAPniBoJBQJOj18KMM1NfkYM2KXGFL0VCbxwsJ0N/Cd2Y6x1+zmrYdq5YZJ1Z+OU2ejGTK6rwg4QX20Phkq59mUPLz/264SBRMAva2Sky8hWka/T4gMPBuVnY2OJUaIXPnYU7YXCQlJ0MsFkMaE05BZdPbNJtW1iRQTytMCH9T0MK5VVVC4ELN8ytPZSNsG6IjQ5C4wAkVWl+UZsYiP1sonYl9kIpWPzpW9gLFMp1wJhyYhM1bCUfqh5dp7A3J5PIHqWnpyDQaIZFKMMvbU3iD0hikwLKEAGt5KFhCWGUKlk2ZdGGrUEQlkqaXC+LBgV4ok7tik8Edr1fOwKbkGajXeaBcH4aclFik6hXC9sE7ICCK4vAhZhAutkj8UlMsopL6jZ2d/acOjo7fBAbPuW/Qax7QHkYoBZIQgqUjQ5guQm3nG3VCqeg0IsSKFmDRwlBERYZBHDUPxvhICvoZdGR54IudEfisg8Nva+aiQTcDpVq/B4qY8Ffo2QuIYCsJVk62C9gRTiyVPkFhYSqxnLuk0qqH83P0FGwmVi3PpbLJp2MeZSSbxGjlSa6yRJjxgsxSNmmWUCZo2gjjMj9LgwpDGMzxbji20h9Xu6JxpV+FI+aF4016z/u1atcPq/P1DTqdOoae7U24E46PI+DMVsCfCHN2do6OWBzdS9vqf3Bq1bAxM4FKJZMalqbQmkq00N6+eU0FGlaV0gurgErJiPLiNHpZJfN7fiqnJNawwrYZJoMYtfFeVErT8fG6WbjaGYHBPg6v1EWNdXa2Yeuz6w75+PgEshicHkfAhXiGCCDmEosJGaELCgnpiJJIByUK5YjBED++tDANtctoGq0uw4amGmxaX0vHFSRUhfqVJVhRlYeK0iwSSSaBeCoxJTQablwk40aTYvwvrta6DL9c7DF6eYsPeixtOPjqAbzw4v6hrp7OC+XV5QsfV8CJ2fsRIUQkISXURCpR6enl1b1g0eLP+d8KsQrlqEqjGtHr48ezMmhMFmWiqsyEylIjivNSKPBEJBu0UKoVD0Qy+djC6Oir7h4eA/R/mvw87FdXK13PbsyPHOnt7aAtyQmBQ4dfHe3p7by187ntOXTdPCKDcLZVwIFwI7yIQGLepCxomUQ50Ui0UTD/5+Pr925waOifFi6OuiaKlQ1JOOUYMU6CozGx8uHIqJjr/kFBJ11cXJ6ne7YSZmIpkUJoWxqXv2fp2n133/49d44de1OQOHr0CAIC/Meio6MhkUhA110jNhL21gLWEvaTGtmbmM0kFk3KRCKRRZQR9cQGoo3oIHppJPfTsY/oJtqJbUQLUUeUshVNIJSExMvLK9rT03P+upbGVd09nZfo9/XPJlM2/P390dnZKRAWFsZL8JT+OwG7SRLuxEzCn5VTOBHFRJREPKEn0ggTUcRWtoJRyr4zscwlEXHsXinLbDgbn37sWW7bdm2L9/Pzu+nu7o6NGzeitbWVshEAlokvCPsJARskXFlPeDORYJaRCCYjZuWlYNnREFqGhlCxczJ27WJ279xJgXsRHmyAOLJnnyTAQxkVjvPnz4evry94eWuBX5RgOEwSmU54ErOYzGxiDhHGpMKJCCvC2bkwFvBsFrQ3m3bTWeBO7Fl2jPUErKFy44/p1gK2ijgSzkzGnfBgQcxkAfkwfBk+DG9iJrvWg93ryoJ2nBy41bMPWQvQ7pk/LrMSeCQRe8JhkpATk3JhQblZ4crOOVsFLGwTrAOfDLv3AAErWq0FHldmktQEDlbYM+yseYTnLSOGCDD6H1/ARilrpuD/LyYuMoFDVgJPBqx3/p84YS3wpInonmQBxlOBpwJPBf4JszXhha5WvGwAAAAASUVORK5CYII=

------=_Part_0_1330682067197--


=====================================================
== File: mailbox/store/src/test/resources/eml/oneHtmlAttachmentAndSomeTextInlined.eml
=====================================================
Mail content:
To: &quot;=?utf-8?B?UmFuaSBBc3NhZg==?=&quot; &lt;rani.assaf@jri.obm.lng.org&gt;
Subject: =?utf-8?B?VHIuIDogUGhvdG9zICE=?=
Importance: Normal
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary=&quot;----=_Part_0_1330682067197&quot;

------=_Part_0_1330682067197
Content-Type: multipart/alternative;
	boundary=&quot;----=_Part_2_1330682067197&quot;

------=_Part_2_1330682067197
Content-Type: text/plain;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Content of part 1-1
------=_Part_2_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

&lt;b&gt;Content of part 1-2&lt;/b&gt;
------=_Part_2_1330682067197--

------=_Part_0_1330682067197
Content-Type: text/html;
	name=&quot;attachment.html&quot;
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment;
	filename=&quot;attachment.html&quot;
&lt;html&gt;
  &lt;body&gt;
    Hello!
  &lt;/body&gt;
&lt;/html&gt;

=====================================================
== File: mailbox/store/src/test/resources/eml/unknownDisposition.eml
=====================================================
To: me@linagora.com
From: Benoit Tellier &lt;me@linagora.com&gt;
Subject: Mail with text attachment
Message-ID: &lt;befd8cab-9c9c-5537-4e77-937f32326087@any.com&gt;
Date: Thu, 13 Oct 2016 10:26:20 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------4FD2D252DB453546C22C25B2&quot;

This is a multi-part message in MIME format.
--------------4FD2D252DB453546C22C25B2
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

I'm the body!

--------------4FD2D252DB453546C22C25B2
Content-Type: text/plain; charset=UTF-8;
 name=&quot;attachment.txt&quot;
Content-Disposition: gabouzomeuh;
 filename=&quot;attachment.txt&quot;

I'm a Schroedinger cat
--------------4FD2D252DB453546C22C25B2--

=====================================================
== File: mailbox/store/src/test/resources/eml/mail2.eml
=====================================================
Return-Path: &lt;server-dev-return-56863-benwa=minet.net@james.apache.org&gt;
Received: from mx2.minet.net (mx2.minet.net [192.168.102.26])
	 by imap (Cyrus v2.4.16-Debian-2.4.16-4+deb7u1) with LMTPA;
	 Thu, 04 Jun 2015 11:27:36 +0200
X-Sieve: CMU Sieve 2.4
Received: from localhost (spam.minet.net [192.168.102.97])
	by mx2.minet.net (Postfix) with ESMTP id D65F3A1CA35
	for &lt;benwa@minet.net&gt;; Thu,  4 Jun 2015 11:27:40 +0200 (CEST)
X-Virus-Scanned: by amavisd-new using ClamAV at minet.net
X-Spam-Flag: NO
X-Spam-Score: -1.51
X-Spam-Level:
X-Spam-Status: No, score=-1.51 required=1 tests=[BAYES_00=-1.5,
	T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mx2.minet.net ([IPv6:::ffff:192.168.102.26])
	by localhost (spam.minet.net [::ffff:192.168.102.97]) (amavisd-new, port 10024)
	with ESMTP id jH3GE2vu5VKE for &lt;benwa@minet.net&gt;;
	Thu,  4 Jun 2015 09:27:40 +0000 (UTC)
Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=140.211.11.3; helo=mail.apache.org; envelope-from=server-dev-return-56863-benwa=minet.net@james.apache.org; receiver=benwa@minet.net
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by mx2.minet.net (Postfix) with SMTP id 85A3AA1CA2C
	for &lt;benwa@minet.net&gt;; Thu,  4 Jun 2015 11:27:38 +0200 (CEST)
Received: (qmail 43145 invoked by uid 500); 4 Jun 2015 09:27:38 -0000
Mailing-List: contact server-dev-help@james.apache.org; run by ezmlm
Precedence: bulk
List-Unsubscribe: &lt;mailto:server-dev-unsubscribe@james.apache.org&gt;
List-Help: &lt;mailto:server-dev-help@james.apache.org&gt;
List-Post: &lt;mailto:server-dev@james.apache.org&gt;
List-Id: &quot;James Developers List&quot; &lt;server-dev.james.apache.org&gt;
Reply-To: &quot;James Developers List&quot; &lt;server-dev@james.apache.org&gt;
Delivered-To: mailing list server-dev@james.apache.org
Received: (qmail 43130 invoked by uid 99); 4 Jun 2015 09:27:38 -0000
Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Jun 2015 09:27:38 +0000
Date: Thu, 4 Jun 2015 09:27:37 +0000 (UTC)
From: &quot;efij&quot; &lt;jira1@apache.org&gt;
To: &quot;aaa&quot; &lt;a-server-dev@james.apache.org&gt;
Cc: abc@abc.org
Message-ID: &lt;JIRA.12781874.1426269127000.9353.1433410057953@Atlassian.JIRA&gt;
In-Reply-To: &lt;JIRA.12781874.1426269127000@Atlassian.JIRA&gt;
References: &lt;JIRA.12781874.1426269127000@Atlassian.JIRA&gt; &lt;JIRA.12781874.1426269127444@arcas&gt;
Subject: [jira] [Closed] (MAILBOX-217) We should index attachment in elastic
 search
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394


     [ https://issues.apache.org/jira/browse/MAILBOX-217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

=====================================================
== File: mailbox/store/src/test/resources/eml/mail1.eml
=====================================================
Return-Path: &lt;server-dev-return-56862-benwa=minet.net@james.apache.org&gt;
Received: from mx1.minet.net (mx1.minet.net [192.168.102.25])
	 by imap (Cyrus v2.4.16-Debian-2.4.16-4+deb7u1) with LMTPA;
	 Thu, 04 Jun 2015 11:23:39 +0200
X-Sieve: CMU Sieve 2.4
Received: from localhost (spam.minet.net [192.168.102.97])
	by mx1.minet.net (Postfix) with ESMTP id 0113F385C15
	for &lt;benwa@minet.net&gt;; Thu,  4 Jun 2015 11:23:43 +0200 (CEST)
X-Virus-Scanned: by amavisd-new using ClamAV at minet.net
X-Spam-Flag: NO
X-Spam-Score: -1.51
X-Spam-Level:
X-Spam-Status: No, score=-1.51 required=1 tests=[BAYES_00=-1.5,
	T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mx2.minet.net ([IPv6:::ffff:192.168.102.26])
	by localhost (spam.minet.net [::ffff:192.168.102.97]) (amavisd-new, port 10024)
	with ESMTP id IeILbadS9lo5 for &lt;benwa@minet.net&gt;;
	Thu,  4 Jun 2015 09:23:42 +0000 (UTC)
Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=140.211.11.3; helo=mail.apache.org; envelope-from=server-dev-return-56862-benwa=minet.net@james.apache.org; receiver=benwa@minet.net
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
	by mx2.minet.net (Postfix) with SMTP id CDE83A1C7FC
	for &lt;benwa@minet.net&gt;; Thu,  4 Jun 2015 11:23:40 +0200 (CEST)
Received: (qmail 37249 invoked by uid 500); 4 Jun 2015 09:23:38 -0000
Mailing-List: contact server-dev-help@james.apache.org; run by ezmlm
Precedence: bulk
List-Unsubscribe: &lt;mailto:server-dev-unsubscribe@james.apache.org&gt;
List-Help: &lt;mailto:server-dev-help@james.apache.org&gt;
List-Post: &lt;mailto:server-dev@james.apache.org&gt;
List-Id: &quot;James Developers List&quot; &lt;server-dev.james.apache.org&gt;
Reply-To: &quot;James Developers List&quot; &lt;server-dev@james.apache.org&gt;
Delivered-To: mailing list server-dev@james.apache.org
Received: (qmail 37236 invoked by uid 99); 4 Jun 2015 09:23:38 -0000
Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28)
    by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Jun 2015 09:23:38 +0000
Date: Thu, 4 Jun 2015 09:23:37 +0000 (UTC)
From: &quot;Tellier Benoit (JIRA)&quot; &lt;jira2@apache.org&gt;
To: &quot;abc&quot; &lt;b-server-dev@james.apache.org&gt;
Message-ID: &lt;JIRA.12835341.1433409792000.9340.1433409817961@Atlassian.JIRA&gt;
In-Reply-To: &lt;JIRA.12835341.1433409792000@Atlassian.JIRA&gt;
References: &lt;JIRA.12835341.1433409792000@Atlassian.JIRA&gt; &lt;JIRA.12835341.1433409792972@arcas&gt;
Subject: [jira] [Created] (MAILBOX-234) Convert Message into JSON
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394

Tellier Benoit created MAILBOX-234:
--------------------------------------

             Summary: Convert Message into JSON

=====================================================
== File: mailbox/store/src/test/resources/eml/noAttachment.eml
=====================================================
Content-Type: text/plain; Charset=UTF-8
Date: Fri, 17 Sep 2010 17:12:26 +0200
Subject: my subject
To: a@test, B &lt;b@test&gt;
Cc: c@test
Bcc: d@test
MIME-Version: 1.0
Message-Id: &lt;20100917151246.2A9384BA1@lenny&gt;
From: Ad Min &lt;admin@opush.test&gt;

Mail content

-- 
Ad Min

=====================================================
== File: mailbox/store/src/test/resources/eml/charset.eml
=====================================================
From: Test 1 &lt;test1@linagora.com&gt;
To: Test 2 &lt;test2@linagora.com&gt;
Subject: New Time Proposed: New event from Test: lole
Date: Tue, 13 Mar 2018 14:36:08 +0000
Message-ID: &lt;AM5P190MB03542A58E344C68475A951AFD20@AM5P190MB0354.EURP190.PROD.OUTLOOK.COM&gt;
Accept-Language: en-US
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary=&quot;_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_&quot;
MIME-Version: 1.0

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;
Content-Transfer-Encoding: quoted-printable

Will be better for me, thx

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/html; charset=&quot;iso-8859-1&quot;
Content-Transfer-Encoding: quoted-printable

&lt;html&gt;
 &lt;p&gt;Will be better for me, thx&lt;/p&gt;
&lt;/html&gt;

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/calendar; charset=&quot;iso-8859-1&quot;; method=COUNTER
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;attachment1.txt&quot;

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6Q09VTlRFUg0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
ZSBTZXJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpFdXJvcGUv
QmVybGluDQpCRUdJTjpTVEFOREFSRA0KRFRTVEFSVDoxNjAxMDEwMVQwMzAwMDANClRaT0ZGU0VU
RlJPTTorMDIwMA0KVFpPRkZTRVRUTzorMDEwMA0KUlJVTEU6RlJFUT1ZRUFSTFk7SU5URVJWQUw9
MTtCWURBWT0tMVNVO0JZTU9OVEg9MTANCkVORDpTVEFOREFSRA0KQkVHSU46REFZTElHSFQNCkRU
U0VRVUVOQ0U6MA0KRFRTVEFNUDoyMDE4MDMxM1QxNDM2MDdaDQpDT01NRU5UO0xBTkdVQUdFPWVu
LVVTOldpbGwgYmUgYmV0dGVyIGZvciBtZVwsIHRoeFxuDQpFTkQ6VkVWRU5UDQpFTkQ6VkNBTEVO
REFSDQo=

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_--

=====================================================
== File: mailbox/store/src/test/resources/eml/oneInlinedAttachmentWithBlankCid.eml
=====================================================
Return-Path: &lt;test@local.com&gt;
Received: from localhost;
	 Tue, 05 Jul 2016 11:47:47 +0200
X-Sieve: CMU Sieve 2.2
To: Test &lt;test@local.com&gt;
From: Test &lt;test@local.com&gt;
Subject: Inline attachment
Message-ID: &lt;26d91590-b995-8d45-f66a-0433c65745bb@linagora.com&gt;
Date: Tue, 5 Jul 2016 11:47:46 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.1.1
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary=&quot;------------FC06E08B3CDF05E9A3E28077&quot;

This is a multi-part message in MIME format.
--------------FC06E08B3CDF05E9A3E28077
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

This is an inline attachment:
Cheers!

--------------FC06E08B3CDF05E9A3E28077
Content-Type: multipart/related;
 boundary=&quot;------------47107B0D40019CDFED2C4263&quot;


--------------47107B0D40019CDFED2C4263
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

&lt;html&gt;
  &lt;head&gt;
    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
  &lt;/head&gt;
  &lt;body bgcolor=&quot;#FFFFFF&quot; text=&quot;#000000&quot;&gt;
    This is an inline attachment:&lt;br&gt;
    &lt;br&gt;
    &lt;img alt=&quot;&quot; src=&quot;cid:part1.37A15C92.A7C3488D@linagora.com&quot;
      height=&quot;73&quot; width=&quot;73&quot;&gt;&lt;br&gt;
    &lt;br&gt;
    &lt;br&gt;
    Cheers!&lt;br&gt;
  &lt;/body&gt;
&lt;/html&gt;

--------------47107B0D40019CDFED2C4263
Content-Type: image/png;
 name=&quot;james-logo-square.png&quot;

=====================================================
== File: mailbox/store/src/test/resources/eml/embeddedAttachmentWithInline.eml
=====================================================
Return-Path: &lt;iphone@obm.lng.org&gt;
Received: from lenny.obm.lng.org (localhost [127.0.0.1])
	 by lenny.obm.lng.org (Cyrus v2.3.14-Debian-2.3.14-2) with LMTPA;
	 Wed, 21 Mar 2012 14:51:59 +0100
X-Sieve: CMU Sieve 2.3
Received: from [192.168.2.48] (unknown [192.168.2.48])
	by lenny.obm.lng.org (Postfix) with ESMTP id E495D32929
	for &lt;usera@obm.lng.org&gt;; Wed, 21 Mar 2012 14:51:58 +0100 (CET)
Message-ID: &lt;4F69DD0E.3010502@obm.lng.org&gt;
Date: Wed, 21 Mar 2012 14:52:14 +0100
From: iphone &lt;iphone@obm.lng.org&gt;
User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.28) Gecko/20120306 Lightning/1.0b2 Thunderbird/3.1.20
MIME-Version: 1.0
To: usera &lt;usera@obm.lng.org&gt;
Subject: Fwd: Re: email with sign
Content-Type: multipart/mixed;
 boundary=&quot;------------080809000000030101030405&quot;

This is a multi-part message in MIME format.
--------------080809000000030101030405
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

new email text part

--------------080809000000030101030405
Content-Type: message/rfc822;
 name=&quot;Re: email with sign.eml&quot;
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename=&quot;Re: email with sign.eml&quot;

Return-Path: &lt;usera@obm.lng.org&gt;
Received: from lenny.obm.lng.org (localhost [127.0.0.1])
	 by lenny.obm.lng.org (Cyrus v2.3.14-Debian-2.3.14-2) with LMTPA;
	 Wed, 21 Mar 2012 14:19:29 +0100
X-Sieve: CMU Sieve 2.3
Received: from [192.168.2.48] (unknown [192.168.2.48])
	by lenny.obm.lng.org (Postfix) with ESMTP id 47EC832D51
	for &lt;iphone@obm.lng.org&gt;; Wed, 21 Mar 2012 14:19:29 +0100 (CET)
Message-ID: &lt;4F69D570.9090502@obm.lng.org&gt;
Date: Wed, 21 Mar 2012 14:19:44 +0100
From: usera &lt;usera@obm.lng.org&gt;
User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.28) Gecko/20120306 Thunderbird/3.1.20
MIME-Version: 1.0
To: iphone &lt;iphone@obm.lng.org&gt;
Subject: Re: email with sign
References: &lt;4F69D0C6.501@obm.lng.org&gt;
In-Reply-To: &lt;4F69D0C6.501@obm.lng.org&gt;
Content-Type: multipart/alternative;

=====================================================
== File: mailbox/store/src/test/resources/eml/oneAttachmentWithoutContentType.eml
=====================================================
Mail content:
To: &quot;=?utf-8?B?UmFuaSBBc3NhZg==?=&quot; &lt;rani.assaf@jri.obm.lng.org&gt;
Subject: =?utf-8?B?VHIuIDogUGhvdG9zICE=?=
Importance: Normal
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary=&quot;----=_Part_0_1330682067197&quot;

------=_Part_0_1330682067197
Content-Type: multipart/alternative;
	boundary=&quot;----=_Part_2_1330682067197&quot;

------=_Part_2_1330682067197
Content-Type: text/plain;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Content of part 1-1
------=_Part_2_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

&lt;b&gt;Content of part 1-2&lt;/b&gt;
------=_Part_2_1330682067197--

------=_Part_0_1330682067197
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename=&quot;gimp.png&quot;

iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAALxklEQVR4Ae2Xe0xUZ97H5X4RiyAXEARURBSYCzNnLjMwwAx3huGOIBcUFJERAUVRq+KlwHABFdu+b9+0766x1W21ttnUtE3rul6aGNtm3XbdWncjaa3VXrZRK6IgfPd3Tp6wOGmyo0v/cOMknxwy5xzO7/P8LueZaWlpaU80TwWeCvy3CcRwXJlUqp39RApIOE4i5hQPxBz30hMpIJIrjktkseMimfzPUyoglilTf/XVl8u1Ik4xrOJEEMu4wSkVEMmVZ6VSTeivFXy0TDZfIlfc0qil0KpIQM59P6UCUk71lVShPD1t2jT7qQ4+Sq32prq/GhfHjSXFSxGvEfMCQ1MsoLzOadT3pArFwBQ3LSdRqK4mJyfcz0xRwaCLRVKcBDEybmxqBRTKH8uXpEOj0/1MD3wuMTHR8T9adY4LoOD3KuPj7xYVGlGYo0e6gUNKoowkpKBmHpXJZO5TKXCrpjwT5pWFSM1IvROrVH0hksujf+laAHYWi8XT+nsKyIlvVKlSeVSu0twtXpI/Yq4rR2lBKoxpamQmK5Gm55CcIAP1wxAvOWUCEk4xVLvchIaVedi8rgq1NSXjqnjdHcrGayK5yhStVPpbLLvE/Xt6Tnf3Wu529XSM9fZ13Wzbse2kJiGhK1ap/ETCqe5lGLNum+trxnZsbca6tcuwJM+AvKw4mNI1yEpVURYUSE2S8wJ3RSKN35QJUJPdM6/IQ8vaCmzdZMbObU2w7G7BhhbzeEFR4e2SsrIRChqnz5zE999/h9HREXz19SDefOt1dPW0Y8e2Frywtx0vDnRg57NrUVdTgJJ8PYpyEpBvjEdOhvahLIg55YOioiKHRxKgjwPBEaHEQzfz/3DH9mb07+nGsbeO4MjRw+jts8DS3or/GdiNnr4ufP6XC/jhh+9w587PuHdvGLdv38SNG9fwwYfvon9vN3Zvb0Td8lxUlqSirCgZpSRQnJuIgmwdcikL2elqZKUwAbni0aaQvb19M3HT2dnlloODw5Cdnd0d+rKVRFz48xkm0+i+gX5cv34NP/30I86fP4ePPjqL3n4LOjq24O2338CVK1/i22+v4ssvL+HTTz+B2WzGqlUrcfr0HzCwvw9Na8pRXZaBqtI0VBSnYGmBgUooEYUmHYQyyhDKCClJCl7gus0C9DE5OjkNpefkoXvPPugzjIiMEcN9+vQ7JHKFzvs1tzTdO3P2lBD8wYMHce3aNVBTYk1DPXp62/HHUx/g0qXPSOIyBgcHwX/u37+PiMhIiCViHP7dAbRuqAc/CJbxAktIoJAXSEKRiZURCRhJwJCoAPXcRZsF7B0dL8cq1RgeHgb/+fziX6E1pPCjDJ5e3iOUmcHWzRvHz398ThAoKSnB5b/9HYbUdMwJmUPl04GTJ9/DhQvn8cYbh/D++++D/1y/cYOvZbi6uWHvvj48u7kRgsDSdEGgjARKSOChPiCBpAQFpBx3ymYBWuXR9Zu2gH0wPj6O7KISyNRxiBJLMeMZz/GcXOP4a4cOCAJ5eXmY5eMDL29v6PUJ6O7aQX1xGOfOncLx429h5syZMDc2I05vQJQ0Fq6uriTZifWNy60yYCXAMqDVcmMiTtlrswAZPMgtLsXY2Jgg8PXVb5CYngWpSoMFi6MRsTAS7rSKnZZdeP3IIarv89ixow21tTXoaN9KE6kefdQLJ04cx5kzH0Cp5OA9axYCgoIx08sLCQlxsHS3o646F9XlGSQwuQeSJveAICBTKm49yuaRb+Drco0W6zdTM75zHJW1dVAlGvjXOULDF2ABCQQFz4FcEomdbc3o7qGpQ+za3oQtzWXY3LwUHc9twfPP9+Gd40ephN5GW9tmJCXpsHnLBrq+HS1N1VhRkYnlZemooilUzk+hgokpNPEuyExWUdlx99lb2GaBV+eGh48kJKciVq0VSofqX1j9wDkhCA4Ng0gihb+vF5pXF2K9uQgta4qxoWEJNq4l6LihoQRtW5vQRSu9d6AH//vSAI1cCzq7dmNdQxVWVmahhq3+RP3n/6t8cjO1yE5TQ59EDaxQsN8Ctk+hUH50JhqSESONFQKfF0GrToH7+AfAf3YQdIlJcHNzwdrafDTWFaCJRJqJdfVFAvzfTfR9c30xrfYytLbUotlchtXVOULwND6FICuXPLz61uWj1iruUePv4gvbZgGWhv2+fn5DesrCXCob34BAPniBoJBQJOj18KMM1NfkYM2KXGFL0VCbxwsJ0N/Cd2Y6x1+zmrYdq5YZJ1Z+OU2ejGTK6rwg4QX20Phkq59mUPLz/264SBRMAva2Sky8hWka/T4gMPBuVnY2OJUaIXPnYU7YXCQlJ0MsFkMaE05BZdPbNJtW1iRQTytMCH9T0MK5VVVC4ELN8ytPZSNsG6IjQ5C4wAkVWl+UZsYiP1sonYl9kIpWPzpW9gLFMp1wJhyYhM1bCUfqh5dp7A3J5PIHqWnpyDQaIZFKMMvbU3iD0hikwLKEAGt5KFhCWGUKlk2ZdGGrUEQlkqaXC+LBgV4ok7tik8Edr1fOwKbkGajXeaBcH4aclFik6hXC9sE7ICCK4vAhZhAutkj8UlMsopL6jZ2d/acOjo7fBAbPuW/Qax7QHkYoBZIQgqUjQ5guQm3nG3VCqeg0IsSKFmDRwlBERYZBHDUPxvhICvoZdGR54IudEfisg8Nva+aiQTcDpVq/B4qY8Ffo2QuIYCsJVk62C9gRTiyVPkFhYSqxnLuk0qqH83P0FGwmVi3PpbLJp2MeZSSbxGjlSa6yRJjxgsxSNmmWUCZo2gjjMj9LgwpDGMzxbji20h9Xu6JxpV+FI+aF4016z/u1atcPq/P1DTqdOoae7U24E46PI+DMVsCfCHN2do6OWBzdS9vqf3Bq1bAxM4FKJZMalqbQmkq00N6+eU0FGlaV0gurgErJiPLiNHpZJfN7fiqnJNawwrYZJoMYtfFeVErT8fG6WbjaGYHBPg6v1EWNdXa2Yeuz6w75+PgEshicHkfAhXiGCCDmEosJGaELCgnpiJJIByUK5YjBED++tDANtctoGq0uw4amGmxaX0vHFSRUhfqVJVhRlYeK0iwSSSaBeCoxJTQablwk40aTYvwvrta6DL9c7DF6eYsPeixtOPjqAbzw4v6hrp7OC+XV5QsfV8CJ2fsRIUQkISXURCpR6enl1b1g0eLP+d8KsQrlqEqjGtHr48ezMmhMFmWiqsyEylIjivNSKPBEJBu0UKoVD0Qy+djC6Oir7h4eA/R/mvw87FdXK13PbsyPHOnt7aAtyQmBQ4dfHe3p7by187ntOXTdPCKDcLZVwIFwI7yIQGLepCxomUQ50Ui0UTD/5+Pr925waOifFi6OuiaKlQ1JOOUYMU6CozGx8uHIqJjr/kFBJ11cXJ6ne7YSZmIpkUJoWxqXv2fp2n133/49d44de1OQOHr0CAIC/Meio6MhkUhA110jNhL21gLWEvaTGtmbmM0kFk3KRCKRRZQR9cQGoo3oIHppJPfTsY/oJtqJbUQLUUeUshVNIJSExMvLK9rT03P+upbGVd09nZfo9/XPJlM2/P390dnZKRAWFsZL8JT+OwG7SRLuxEzCn5VTOBHFRJREPKEn0ggTUcRWtoJRyr4zscwlEXHsXinLbDgbn37sWW7bdm2L9/Pzu+nu7o6NGzeitbWVshEAlokvCPsJARskXFlPeDORYJaRCCYjZuWlYNnREFqGhlCxczJ27WJ279xJgXsRHmyAOLJnnyTAQxkVjvPnz4evry94eWuBX5RgOEwSmU54ErOYzGxiDhHGpMKJCCvC2bkwFvBsFrQ3m3bTWeBO7Fl2jPUErKFy44/p1gK2ijgSzkzGnfBgQcxkAfkwfBk+DG9iJrvWg93ryoJ2nBy41bMPWQvQ7pk/LrMSeCQRe8JhkpATk3JhQblZ4crOOVsFLGwTrAOfDLv3AAErWq0FHldmktQEDlbYM+yseYTnLSOGCDD6H1/ARilrpuD/LyYuMoFDVgJPBqx3/p84YS3wpInonmQBxlOBpwJPBf4JszXhha5WvGwAAAAASUVORK5CYII=

------=_Part_0_1330682067197--


=====================================================
== File: mailbox/store/src/test/resources/eml/emailWithTextAttachment.eml
=====================================================
To: James User &lt;user@james.org&gt;
From: James Sender &lt;sender@james.org&gt;
Subject: Message with text attachment
Message-ID: &lt;ffaa7bce-fbe3-83b5-de3f-9a7301233615@linagora.com&gt;
Date: Tue, 5 Sep 2017 09:54:16 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------D24E361990BDBA143D4D8794&quot;
Content-Language: en-US

This is a multi-part message in MIME format.
--------------D24E361990BDBA143D4D8794
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

The message has a text attachment.

--------------D24E361990BDBA143D4D8794
Content-Type: text/plain; charset=UTF-8;
 name=&quot;attachment.txt&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;attachment.txt&quot;

VGhpcyBpcyBhIGJlYXV0aWZ1bCBiYW5hbmEuCg==
--------------D24E361990BDBA143D4D8794--

=====================================================
== File: mailbox/store/src/test/resources/eml/oneAttachmentWithoutName.eml
=====================================================
Mail content:
To: &quot;=?utf-8?B?UmFuaSBBc3NhZg==?=&quot; &lt;rani.assaf@jri.obm.lng.org&gt;
Subject: =?utf-8?B?VHIuIDogUGhvdG9zICE=?=
Importance: Normal
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary=&quot;----=_Part_0_1330682067197&quot;

------=_Part_0_1330682067197
Content-Type: multipart/alternative;
	boundary=&quot;----=_Part_2_1330682067197&quot;

------=_Part_2_1330682067197
Content-Type: text/plain;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

Content of part 1-1
------=_Part_2_1330682067197
Content-Type: text/html;
	charset= utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

&lt;b&gt;Content of part 1-2&lt;/b&gt;
------=_Part_2_1330682067197--

------=_Part_0_1330682067197
Content-Type: application/octet-stream;
Content-Transfer-Encoding: base64
Content-Disposition: attachment

iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAALxklEQVR4Ae2Xe0xUZ97H5X4RiyAXEARURBSYCzNnLjMwwAx3huGOIBcUFJERAUVRq+KlwHABFdu+b9+0766x1W21ttnUtE3rul6aGNtm3XbdWncjaa3VXrZRK6IgfPd3Tp6wOGmyo0v/cOMknxwy5xzO7/P8LueZaWlpaU80TwWeCvy3CcRwXJlUqp39RApIOE4i5hQPxBz30hMpIJIrjktkseMimfzPUyoglilTf/XVl8u1Ik4xrOJEEMu4wSkVEMmVZ6VSTeivFXy0TDZfIlfc0qil0KpIQM59P6UCUk71lVShPD1t2jT7qQ4+Sq32prq/GhfHjSXFSxGvEfMCQ1MsoLzOadT3pArFwBQ3LSdRqK4mJyfcz0xRwaCLRVKcBDEybmxqBRTKH8uXpEOj0/1MD3wuMTHR8T9adY4LoOD3KuPj7xYVGlGYo0e6gUNKoowkpKBmHpXJZO5TKXCrpjwT5pWFSM1IvROrVH0hksujf+laAHYWi8XT+nsKyIlvVKlSeVSu0twtXpI/Yq4rR2lBKoxpamQmK5Gm55CcIAP1wxAvOWUCEk4xVLvchIaVedi8rgq1NSXjqnjdHcrGayK5yhStVPpbLLvE/Xt6Tnf3Wu529XSM9fZ13Wzbse2kJiGhK1ap/ETCqe5lGLNum+trxnZsbca6tcuwJM+AvKw4mNI1yEpVURYUSE2S8wJ3RSKN35QJUJPdM6/IQ8vaCmzdZMbObU2w7G7BhhbzeEFR4e2SsrIRChqnz5zE999/h9HREXz19SDefOt1dPW0Y8e2Frywtx0vDnRg57NrUVdTgJJ8PYpyEpBvjEdOhvahLIg55YOioiKHRxKgjwPBEaHEQzfz/3DH9mb07+nGsbeO4MjRw+jts8DS3or/GdiNnr4ufP6XC/jhh+9w587PuHdvGLdv38SNG9fwwYfvon9vN3Zvb0Td8lxUlqSirCgZpSRQnJuIgmwdcikL2elqZKUwAbni0aaQvb19M3HT2dnlloODw5Cdnd0d+rKVRFz48xkm0+i+gX5cv34NP/30I86fP4ePPjqL3n4LOjq24O2338CVK1/i22+v4ssvL+HTTz+B2WzGqlUrcfr0HzCwvw9Na8pRXZaBqtI0VBSnYGmBgUooEYUmHYQyyhDKCClJCl7gus0C9DE5OjkNpefkoXvPPugzjIiMEcN9+vQ7JHKFzvs1tzTdO3P2lBD8wYMHce3aNVBTYk1DPXp62/HHUx/g0qXPSOIyBgcHwX/u37+PiMhIiCViHP7dAbRuqAc/CJbxAktIoJAXSEKRiZURCRhJwJCoAPXcRZsF7B0dL8cq1RgeHgb/+fziX6E1pPCjDJ5e3iOUmcHWzRvHz398ThAoKSnB5b/9HYbUdMwJmUPl04GTJ9/DhQvn8cYbh/D++++D/1y/cYOvZbi6uWHvvj48u7kRgsDSdEGgjARKSOChPiCBpAQFpBx3ymYBWuXR9Zu2gH0wPj6O7KISyNRxiBJLMeMZz/GcXOP4a4cOCAJ5eXmY5eMDL29v6PUJ6O7aQX1xGOfOncLx429h5syZMDc2I05vQJQ0Fq6uriTZifWNy60yYCXAMqDVcmMiTtlrswAZPMgtLsXY2Jgg8PXVb5CYngWpSoMFi6MRsTAS7rSKnZZdeP3IIarv89ixow21tTXoaN9KE6kefdQLJ04cx5kzH0Cp5OA9axYCgoIx08sLCQlxsHS3o646F9XlGSQwuQeSJveAICBTKm49yuaRb+Drco0W6zdTM75zHJW1dVAlGvjXOULDF2ABCQQFz4FcEomdbc3o7qGpQ+za3oQtzWXY3LwUHc9twfPP9+Gd40ephN5GW9tmJCXpsHnLBrq+HS1N1VhRkYnlZemooilUzk+hgokpNPEuyExWUdlx99lb2GaBV+eGh48kJKciVq0VSofqX1j9wDkhCA4Ng0gihb+vF5pXF2K9uQgta4qxoWEJNq4l6LihoQRtW5vQRSu9d6AH//vSAI1cCzq7dmNdQxVWVmahhq3+RP3n/6t8cjO1yE5TQ59EDaxQsN8Ctk+hUH50JhqSESONFQKfF0GrToH7+AfAf3YQdIlJcHNzwdrafDTWFaCJRJqJdfVFAvzfTfR9c30xrfYytLbUotlchtXVOULwND6FICuXPLz61uWj1iruUePv4gvbZgGWhv2+fn5DesrCXCob34BAPniBoJBQJOj18KMM1NfkYM2KXGFL0VCbxwsJ0N/Cd2Y6x1+zmrYdq5YZJ1Z+OU2ejGTK6rwg4QX20Phkq59mUPLz/264SBRMAva2Sky8hWka/T4gMPBuVnY2OJUaIXPnYU7YXCQlJ0MsFkMaE05BZdPbNJtW1iRQTytMCH9T0MK5VVVC4ELN8ytPZSNsG6IjQ5C4wAkVWl+UZsYiP1sonYl9kIpWPzpW9gLFMp1wJhyYhM1bCUfqh5dp7A3J5PIHqWnpyDQaIZFKMMvbU3iD0hikwLKEAGt5KFhCWGUKlk2ZdGGrUEQlkqaXC+LBgV4ok7tik8Edr1fOwKbkGajXeaBcH4aclFik6hXC9sE7ICCK4vAhZhAutkj8UlMsopL6jZ2d/acOjo7fBAbPuW/Qax7QHkYoBZIQgqUjQ5guQm3nG3VCqeg0IsSKFmDRwlBERYZBHDUPxvhICvoZdGR54IudEfisg8Nva+aiQTcDpVq/B4qY8Ffo2QuIYCsJVk62C9gRTiyVPkFhYSqxnLuk0qqH83P0FGwmVi3PpbLJp2MeZSSbxGjlSa6yRJjxgsxSNmmWUCZo2gjjMj9LgwpDGMzxbji20h9Xu6JxpV+FI+aF4016z/u1atcPq/P1DTqdOoae7U24E46PI+DMVsCfCHN2do6OWBzdS9vqf3Bq1bAxM4FKJZMalqbQmkq00N6+eU0FGlaV0gurgErJiPLiNHpZJfN7fiqnJNawwrYZJoMYtfFeVErT8fG6WbjaGYHBPg6v1EWNdXa2Yeuz6w75+PgEshicHkfAhXiGCCDmEosJGaELCgnpiJJIByUK5YjBED++tDANtctoGq0uw4amGmxaX0vHFSRUhfqVJVhRlYeK0iwSSSaBeCoxJTQablwk40aTYvwvrta6DL9c7DF6eYsPeixtOPjqAbzw4v6hrp7OC+XV5QsfV8CJ2fsRIUQkISXURCpR6enl1b1g0eLP+d8KsQrlqEqjGtHr48ezMmhMFmWiqsyEylIjivNSKPBEJBu0UKoVD0Qy+djC6Oir7h4eA/R/mvw87FdXK13PbsyPHOnt7aAtyQmBQ4dfHe3p7by187ntOXTdPCKDcLZVwIFwI7yIQGLepCxomUQ50Ui0UTD/5+Pr925waOifFi6OuiaKlQ1JOOUYMU6CozGx8uHIqJjr/kFBJ11cXJ6ne7YSZmIpkUJoWxqXv2fp2n133/49d44de1OQOHr0CAIC/Meio6MhkUhA110jNhL21gLWEvaTGtmbmM0kFk3KRCKRRZQR9cQGoo3oIHppJPfTsY/oJtqJbUQLUUeUshVNIJSExMvLK9rT03P+upbGVd09nZfo9/XPJlM2/P390dnZKRAWFsZL8JT+OwG7SRLuxEzCn5VTOBHFRJREPKEn0ggTUcRWtoJRyr4zscwlEXHsXinLbDgbn37sWW7bdm2L9/Pzu+nu7o6NGzeitbWVshEAlokvCPsJARskXFlPeDORYJaRCCYjZuWlYNnREFqGhlCxczJ27WJ279xJgXsRHmyAOLJnnyTAQxkVjvPnz4evry94eWuBX5RgOEwSmU54ErOYzGxiDhHGpMKJCCvC2bkwFvBsFrQ3m3bTWeBO7Fl2jPUErKFy44/p1gK2ijgSzkzGnfBgQcxkAfkwfBk+DG9iJrvWg93ryoJ2nBy41bMPWQvQ7pk/LrMSeCQRe8JhkpATk3JhQblZ4crOOVsFLGwTrAOfDLv3AAErWq0FHldmktQEDlbYM+yseYTnLSOGCDD6H1/ARilrpuD/LyYuMoFDVgJPBqx3/p84YS3wpInonmQBxlOBpwJPBf4JszXhha5WvGwAAAAASUVORK5CYII=

------=_Part_0_1330682067197--


=====================================================
== File: mailbox/store/src/test/resources/eml/calendar.eml
=====================================================
From: Test 1 &lt;test1@linagora.com&gt;
To: Test 2 &lt;test2@linagora.com&gt;
Subject: New Time Proposed: New event from Test: lole
Date: Tue, 13 Mar 2018 14:36:08 +0000
Message-ID: &lt;AM5P190MB03542A58E344C68475A951AFD20@AM5P190MB0354.EURP190.PROD.OUTLOOK.COM&gt;
Accept-Language: en-US
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary=&quot;_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_&quot;
MIME-Version: 1.0

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;
Content-Transfer-Encoding: quoted-printable

Will be better for me, thx

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/html; charset=&quot;iso-8859-1&quot;
Content-Transfer-Encoding: quoted-printable

&lt;html&gt;
 &lt;p&gt;Will be better for me, thx&lt;/p&gt;
&lt;/html&gt;

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/calendar; charset=&quot;utf-8&quot;; method=COUNTER
Content-Transfer-Encoding: base64

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6Q09VTlRFUg0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
ZSBTZXJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpFdXJvcGUv
QmVybGluDQpCRUdJTjpTVEFOREFSRA0KRFRTVEFSVDoxNjAxMDEwMVQwMzAwMDANClRaT0ZGU0VU
RlJPTTorMDIwMA0KVFpPRkZTRVRUTzorMDEwMA0KUlJVTEU6RlJFUT1ZRUFSTFk7SU5URVJWQUw9
MTtCWURBWT0tMVNVO0JZTU9OVEg9MTANCkVORDpTVEFOREFSRA0KQkVHSU46REFZTElHSFQNCkRU
U0VRVUVOQ0U6MA0KRFRTVEFNUDoyMDE4MDMxM1QxNDM2MDdaDQpDT01NRU5UO0xBTkdVQUdFPWVu
LVVTOldpbGwgYmUgYmV0dGVyIGZvciBtZVwsIHRoeFxuDQpFTkQ6VkVWRU5UDQpFTkQ6VkNBTEVO
REFSDQo=

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_--

=====================================================
== File: mailbox/store/src/test/resources/eml/oneInlinedAttachmentWithEmptyCid.eml
=====================================================
Return-Path: &lt;test@local.com&gt;
Received: from localhost;
	 Tue, 05 Jul 2016 11:47:47 +0200
X-Sieve: CMU Sieve 2.2
To: Test &lt;test@local.com&gt;
From: Test &lt;test@local.com&gt;
Subject: Inline attachment
Message-ID: &lt;26d91590-b995-8d45-f66a-0433c65745bb@linagora.com&gt;
Date: Tue, 5 Jul 2016 11:47:46 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.1.1
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary=&quot;------------FC06E08B3CDF05E9A3E28077&quot;

This is a multi-part message in MIME format.
--------------FC06E08B3CDF05E9A3E28077
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

This is an inline attachment:
Cheers!

--------------FC06E08B3CDF05E9A3E28077
Content-Type: multipart/related;
 boundary=&quot;------------47107B0D40019CDFED2C4263&quot;


--------------47107B0D40019CDFED2C4263
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

&lt;html&gt;
  &lt;head&gt;
    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
  &lt;/head&gt;
  &lt;body bgcolor=&quot;#FFFFFF&quot; text=&quot;#000000&quot;&gt;
    This is an inline attachment:&lt;br&gt;
    &lt;br&gt;
    &lt;img alt=&quot;&quot; src=&quot;cid:part1.37A15C92.A7C3488D@linagora.com&quot;
      height=&quot;73&quot; width=&quot;73&quot;&gt;&lt;br&gt;
    &lt;br&gt;
    &lt;br&gt;
    Cheers!&lt;br&gt;
  &lt;/body&gt;
&lt;/html&gt;

--------------47107B0D40019CDFED2C4263
Content-Type: image/png;
 name=&quot;james-logo-square.png&quot;

=====================================================
== File: mailbox/store/src/test/resources/eml/charset2.eml
=====================================================
From: Test 1 &lt;test1@linagora.com&gt;
To: Test 2 &lt;test2@linagora.com&gt;
Subject: New Time Proposed: New event from Test: lole
Date: Tue, 13 Mar 2018 14:36:08 +0000
Message-ID: &lt;AM5P190MB03542A58E344C68475A951AFD20@AM5P190MB0354.EURP190.PROD.OUTLOOK.COM&gt;
Accept-Language: en-US
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary=&quot;_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_&quot;
MIME-Version: 1.0

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;
Content-Transfer-Encoding: quoted-printable

Will be better for me, thx

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/html; charset=&quot;iso-8859-1&quot;
Content-Transfer-Encoding: quoted-printable

&lt;html&gt;
 &lt;p&gt;Will be better for me, thx&lt;/p&gt;
&lt;/html&gt;

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/calendar; charset=&quot;iso-8859-1&quot;; method=COUNTER
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;attachment1.txt&quot;

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6Q09VTlRFUg0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
ZSBTZXJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpFdXJvcGUv
QmVybGluDQpCRUdJTjpTVEFOREFSRA0KRFRTVEFSVDoxNjAxMDEwMVQwMzAwMDANClRaT0ZGU0VU
RlJPTTorMDIwMA0KVFpPRkZTRVRUTzorMDEwMA0KUlJVTEU6RlJFUT1ZRUFSTFk7SU5URVJWQUw9
MTtCWURBWT0tMVNVO0JZTU9OVEg9MTANCkVORDpTVEFOREFSRA0KQkVHSU46REFZTElHSFQNCkRU
U0VRVUVOQ0U6MA0KRFRTVEFNUDoyMDE4MDMxM1QxNDM2MDdaDQpDT01NRU5UO0xBTkdVQUdFPWVu
LVVTOldpbGwgYmUgYmV0dGVyIGZvciBtZVwsIHRoeFxuDQpFTkQ6VkVWRU5UDQpFTkQ6VkNBTEVO
REFSDQo=

--_000_AM5P190MB03542A58E344F2C68475A951AFD20AM5P190MB0354EURP_
Content-Type: text/calendar; charset=&quot;iso-4444-5&quot;; method=COUNTER
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;attachment2.txt&quot;

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6Q09VTlRFUg0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
ZSBTZXJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpFdXJvcGUv
QmVybGluDQpCRUdJTjpTVEFOREFSRA0KRFRTVEFSVDoxNjAxMDEwMVQwMzAwMDANClRaT0ZGU0VU
RlJPTTorMDIwMA0KVFpPRkZTRVRUTzorMDEwMA0KUlJVTEU6RlJFUT1ZRUFSTFk7SU5URVJWQUw9

=====================================================
== File: mailbox/store/src/test/resources/eml/nonTextual.eml
=====================================================
Return-Path: &lt;btellier@linagora.com&gt;
Received: from alderaan.linagora.com (smtp.linagora.dc1 [172.16.18.53])
	 by imap (Cyrus v2.2.13-Debian-2.2.13-19+squeeze3) with LMTPA;
	 Thu, 18 Jun 2015 12:43:28 +0200
X-Sieve: CMU Sieve 2.2
Received: from [10.75.9.154] (unknown [92.103.166.6])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	by alderaan.linagora.com (Postfix) with ESMTPSA id 0EB1078A
	for &lt;btellier@linagora.com&gt;; Thu, 18 Jun 2015 12:43:28 +0200 (CEST)
To: btellier@linagora.com
From: Benoit Tellier &lt;btellier@linagora.com&gt;
Subject: Test message
Message-ID: &lt;5582A0CE.4020801@linagora.com&gt;
Date: Thu, 18 Jun 2015 12:43:26 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.0.1
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary=&quot;------------030000010109090603040500&quot;

This is a multi-part message in MIME format.
--------------030000010109090603040500
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This mail have a non textual attachment !

--------------030000010109090603040500
Content-Type: application/vnd.oasis.opendocument.text;
 name=&quot;toto.odt&quot;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename=&quot;toto.odt&quot;

UEsDBBQAAAgAAGNV0kZexjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQu
b2FzaXMub3BlbmRvY3VtZW50LnRleHRQSwMEFAAACAAAY1XSRnPWCvM4AwAAOAMAABgAAABU
aHVtYm5haWxzL3RodW1ibmFpbC5wbmeJUE5HDQoaCgAAAA1JSERSAAAAxgAAAQAIAwAAAN+D
+XIAAAEyUExURXJoXXN0dXZ4e3h3eHl7fnx8gXqCh32IgXuJnoB7fI+Fa4+IbIODe4iEe5+Q
eISDhICFiISJhIaMiY2Gg4uJgomMjIGJkIuOkY6Uj4SRm4+WkomZnJGKgJGUjJuTh5uWj5GV
kZGVnJaYkpWbmpmVlZmblJ2en4OYqZSYoJSfqpyeoI6gs5SipJygopKhsZapvKeajKGemKqd
k6KjnaqilKmrn7SllL2tnaampaarraquo6msrqmusKq2urSwqLu5tLy5uaO2yKu5w77EtrXI
1sC5p8+8rcHGt83BtdfGttnKus3NysLO3svP0tbRzdrQy9rYztrb2tvg5Nru9+bf3Ozg0PLj
yfLl0PXo0/vt0uTn7ujn5+jp7Ovw6OL2/en4/fLr5/336vP7/v7+/gAAAP///4uCFGkAAAHB
SURBVHja7dPbThMBEAbgYgsaQmkEVhfbxR5YDKUIslBUWuTogZI0HGxq0gBt3/8dIE00ek+C
gW8uZv6Zu+9iUsNHUSkMDAwMDAwMDAwMDAyMJ8o4Of137+z/vfV+h7Nh+a6X+8t/rqN2MxjF
y9H4fv1wjN1c5eOXdOpdshTNFQuvTrbGk2pzIq6/DJbGnk+udOY/ZYNqsBcnM4WpSqVbquxk
e7nCRPZ4pZ8Oxhe+vZh+3RzbqC1uzlxvXz0Y4+fpbC7qlVqZ8moUhfH5j8/PkupBMahHYb4V
Ti7/mm+EH1a/HkXFIG7n33RrpUY4DOOzjeR9v9SefXtYy2YOovX84mZ00R78t7/RWfPiGBgY
GBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgY

=====================================================
== File: mailbox/store/src/test/resources/documents/writter.docx
=====================================================

=====================================================
== File: mailbox/store/src/test/resources/documents/Text.txt
=====================================================
This is some awesome text text.


=====================================================
== File: mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/FetchGroupConverterTest.java
=====================================================
/****************************************************************
 * Licensed to the Apache Software Foundation (ASF) under one   *
 * or more contributor license agreements.  See the NOTICE file *
 * distributed with this work for additional information        *
 * regarding copyright ownership.  The ASF licenses this file   *
 * to you under the Apache License, Version 2.0 (the            *
 * &quot;License&quot;); you may not use this file except in compliance   *
 * with the License.  You may obtain a copy of the License at   *
 *                                                              *
 *   http: ww.apache.org/licenses/LICENSE-2.0                 *
 *                                                              *
 * Unless required by applicable law or agreed to in writing,   *
 * software distributed under the License is distributed on an  *
 * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
 * KIND, either express or implied.  See the License for the    *
 * specific language governing permissions and limitations      *
 * under the License.                                           *
 ****************************************************************/

package org.apache.james.mailbox.store.mail;

import static org.assertj.core.api.Assertions.assertThat;

import java.util.EnumSet;
import java.util.stream.Stream;

import org.apache.james.mailbox.model.FetchGroup;
import org.apache.james.mailbox.model.FetchGroup.Profile;
import org.apache.james.mailbox.model.MimePath;
import org.apache.james.mailbox.store.mail.MessageMapper.FetchType;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;

class FetchGroupConverterTest {
    private static final int[] PARTS = new int[]{12};

    static Stream&lt;Arguments&gt; getFetchTypeShouldReturnCorrectValue() {
        return Stream.of(
            Arguments.arguments(FetchGroup.MINIMAL, FetchType.METADATA),
            Arguments.arguments(FetchGroup.HEADERS, FetchType.HEADERS),
            Arguments.arguments(FetchGroup.HEADERS_WITH_ATTACHMENTS_METADATA, FetchType.ATTACHMENTS_METADATA),
            Arguments.arguments(FetchGroup.BODY_CONTENT, FetchType.FULL),
            Arguments.arguments(FetchGroup.FULL_CONTENT, FetchType.FULL),
            Arguments.arguments(FetchGroup.BODY_CONTENT.with(Profile.HEADERS), FetchType.FULL),
            Arguments.arguments(FetchGroup.MINIMAL.with(Profile.MIME_CONTENT), FetchType.FULL),
            Arguments.arguments(FetchGroup.MINIMAL.with(Profile.MIME_DESCRIPTOR), FetchType.FULL),
            Arguments.arguments(FetchGroup.MINIMAL.with(Profile.MIME_HEADERS), FetchType.FULL),
            Arguments.arguments(FetchGroup.MINIMAL.addPartContent(new MimePath(PARTS), EnumSet.noneOf(Profile.class)), FetchType.FULL),
            Arguments.arguments(FetchGroup.MINIMAL.addPartContent(new MimePath(PARTS), Profile.HEADERS), FetchType.FULL),

=====================================================
== File: mailbox/cassandra/doc/README.md
=====================================================
# Cassandra implementation for the mailbox

This file attempts to provide information useful to mailbox/cassandra developers.

## Table structure

![Table structure chart](table_structure.png)

Can be edited using [this source file](table_structure.drawio) on [this website](https://app.diagrams.net/).

This file should be edited everytime the table structure is modified.

## Approach regarding denormalization

The Cassandra mailbox is heavily relying on denormalization. The same data is stored several times, in distinct tables,
to satisfy the various read access patterns. Of course, the various tables can become inconsistent between them.

We have been developing several approaches in order to diagnose, mitigate and solve such issues. They are described in
the following documents:

 - [Applicative read repaires](../../../src/adr/0042-applicative-read-repairs.md)
 - [Inconsistencies among messages](../../../src/adr/0022-cassandra-message-inconsistency.md)
 - [Inconsistencies among mailboxes](../../../src/adr/0020-cassandra-mailbox-object-consistency.md)
 - [Recompute user quotas](../../../src/adr/0028-Recompute-mailbox-quotas.md)
 - [Mailbox counter inconsistencies](../../../src/adr/0023-cassandra-mailbox-counters-inconsistencies.md)

=====================================================
== File: mailbox/cassandra/doc/table_structure.drawio
=====================================================
&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2021-08-24T02:04:00.037Z&quot; agent=&quot;5.0 (X11)&quot; etag=&quot;lTsFg4HG33iSt8uwSXVP&quot; version=&quot;14.9.8&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;T0L1nU3M2jZuK1mChcqM&quot; name=&quot;Page-1&quot;&gt;7R1bd6M2+tf4nPTBOSDuj5lk0nY72c42SbfztEcG2abF4AKexP31KwHCIAmML1xMPA8TWwiB9X367peJcr96/zGE6+VT4CBvAiTnfaI8TAD+J0n4DxnZpiOGBtKBReg66ZC0G3h2/0HpoExHN66DomwsHYqDwIvddXnQDnwf2XFpDIZh8FaeNg88pzSwhgvEDTzb0ONH/+s68TIdNTVpN/4TchdL+mSZ/uAVpJOzgWgJneCtMKR8nij3YRDE6afV+z3yyOaV9+Wx4mr+YiHy4yY3PNg/rl//eQr+RPP41z9+/dWG7r+nevZu8Zb+YOTg3599DcJ4GSwCH3qfd6OfwmDjO4isKuFvuzlfgmCNB2U8+CeK420GTLiJAzy0jFdedhW9u/Ef5PZbLfv2rXDl4T1bOfmypV/8ONz+UfzyLVlBNWU6sLsx+Va68ysK3RWKUZgNRjEM4zuCH3jA9mAUuTYdfnQ9+qb8HmfbHgWb0EY1G0txFYYLFNfMU9J5ZNcLD8gg+CMK8EuHWzwhRB6M3e9lrIQZci/yeTv44w8ZChyADrLSBz6UgOEHPmIgIZ0DEufb4ezWr4GLXwVIGamTDS29JSN0llReIcWE7CYGTPlbnAC59GnfobfJfsEE6B7eqk+O+528hucu/OSC/veGkJxPHr599w1/WpC/L3BGgHpHnreC61fXSUeyxWYhnVg9gt8/eWZ59LDXaHf1r78QAo2iCFPvn512n3WfPAu63ix4Fz0ruY6ZnOAKuTFwntHf4mtudOdHbyhEFfe60QPyMM2rvPwbsslpqrj66MHFovrmZ4T8yueGcF6xbrwMEXSEG0H2IUIheW7UMkzIW/qYG2Aq9QBjAXaTGbPA2T4TMvSrHaNY8Epk0nzjefcBXsuvnbbEPxqF2cTmP46hxWVK+7Z0Y/S8hgn1e8PiV5mq0s1ItkD5NHfJi3pBmCylzOdIt1OWFwZ/ocIVx7BmUi3J/Y7CGL3XElN6lUpDGVGUzez7206WkqkstSzIUQqQqgnwSSzOuDyJ59YEelHqmUq3kpSPDErsAZcp9gwIKaRapGhXVALdiEqK2auopGoCWakG/Nk2D1zMbXryzi4On3TywPnF1lyuG63gWi1Mnl1wrRZMq6Xnq9x6lVsvXG5V5MHJrVqfIgr9/K0kruyRW4mYKufWucxcp+8z1zUUUYXi7fHcU2nIPdVBcU+lNe75XemacXZqkxkaHU04DHqPN/hsuj6mapuqWeSlapdZIceFL9t1xY+KNrPqi3a6cBWXyy4/oMgO3XXsBhWMlM5zo3UQuWTe3kc+OVrt9ZcQ+tEchZ99O3Bcf9Fo8pfAhnvf8gv0FxviBGr4U77CECY0pwLS9B3wL943FcYxtJcrPPsAueHSWStQyqxVUwWs1WqLteqv25dvr7b+0xY+/oLWX5UIvfbLWg8xCR3P387Ot8SavcZo9qbBLNG2an9+hrg7pL+D6lN6scqk69xFr0It7+wMt4KrzLxgVsVx4mo+Rs5VM810bBRUkxtQUJFyIqttKScmd+58bp+JfDNhDGLFXcosYsUtzYbophOtn8j6n8heuTb07rILK9dxEqosgl4ZvmfYf5nlYDK//6pg+1tTDa2PtPus8ViTet59Cv2Psf2qoZe2X5eMnrefj3yQR7z9DO3XBYapbrcffKTtB4w/Wzf63n5e4n2i8s8T9PHfkJeSbgpT1msU/sBPmeIPcEX2MBOasGYQhy7CmkEuYUXE/BEGK/K76m03N/96uvv6w3jRQnAIhWiQh0OcHw/0KjyoxIKSJF9GDAYtajSA47Fl58TCe0JuOUAJufl53PiUe8RzGYfHL12AX63J9zIvYt7levFBGFa87YxIVjKl5Xjml640tyqPnV6pqlzCL9PqG8EAL0Tf2MHaTcjGm5ss4CFIqEUcEKhgsIeQjBJHUDptTaxKiW04nUO2vuTQIHPdeDtiwLKWAYFuJLYMKK0B9kOJ5wpLuEHP8qFSb9s+V2hTW6FshRhIbVJwJO9zIleCcn8YVabP7I9gzGxebZvUTVO91VVD0kwTKBqwlBKCcRJlywZ2uj1ndTmnouAIjetdRWrhuT7EjC6hbpUBSuIr5MaKe1znd/wKDmaZH8c9KUsKuC1bGIGIi8rdclFRpAez1dESrsnHuYfeM7KKqaJTEUrDDxcAwey8A5E5F+68bptoNq/b+b3ksbCpIsmEjp1IRfN1MpgqrCSbMgaObvKxy4yIpSgWRZeuSLDIyXnFhea4gLVZUIKhYZnHIcPUArdS4Z+qMesat1bhn9kpnij1ub1X0Y87WFpT0c/qRvSTJcbXlXOdjlBIM7tBoR2oQQnW0h5Yt5xR0RQfgH5ufDhNWBDlt5xHRv8K4+XvnYeGdiCp14jPZ39WhSxOX6MiqqUmg/ijyuomKMtiQkG9Y3MX74c5+exB2xvhiTtYNyZoHhIYRpePuRaDuareO+ZShehCxcUT2LzRkTQHpFpLXseyHf3Z56RUhLM9pef67v7LCIkW+YFiHt0lfcQAzzyh/ixapzcy33NK+VFkAZmNyhwASQV8WCy30e1ZapDsaMgQ7bulGwrU6/Z9IJYaWTIYf5rKWdua2mo4BNFUs0frDOAjKk4mv+gdUwGS8o5V1nGmvndDf/eWbJoQ8a0ZCb5qc00p+FQ2jdIB1VW1bwquiMqq1UjJCEP1rZgmlgzgC8sgdP8J/Bh6VfS9AI2hk+WpTNO6aAEXAG6puflwG/r+tSpoMd5EuC1MSwKAorr3Bsyz5PxZOyxJVz2vKR5waHRn2yhKopZgTBKRo0TRt8MgGUzot0B6e3MxePHEMKEMDCKOJopmqqqMC9ai8a1FUmAKMLy9QJr6ypjnV4+NoejHFHn3u0VAQyrVUXEEXsHNdNM8YFW6yUfW4jj48R4y02SNp9wJy1O1iydMb+2E8dpSTiRn27LQNFagcApP3+k9Cq+meG4UJwLwY8qyChBak5rXowWOqRgMWxJVBZK1DsGj8vJpBp4bB3loAZMqWvTkoGjMoc+yPjTgdC0yDEViUM8uCIjleQMw4REdB8PS39mCoz2pAFSXU3OxJpyrp/0CbTM6Gz7Zv6edGocKhy/J+iE6SiGmXLLTk8Q7jUfD+XSdlUtEro9uWZ8oDILZ/15jVMtFCs1JMejsVgfKpD7wTFh9UFwsUQdmLSsmX85Xx7Cprt6YRXcUnq0z9EVjMLNxeDYTWKHwDqMzGRM1Rn9WzFL7nXYMiarIazSkc1WJuQNBNItREjDiHe1QlBjxE2hWjw5FukG1roo9joedKgGa6xKF6F2jq0htoyGZo3swEOwzLTHNOBj3LJVZiBWz2ka2Jn6xxsh2VE+MgwLFT0C1phy1cRD4FdUOQzVeyR5xeS1ZZpiKKiju16kFWONTD8e9/xXo3tv+83ruiAsoyBJraeh9/3lVdtT7z1Q465/+8G7cEe8/72NSBMWfugUAr3OOGAAkJIjhwH1TIGobEbgZ5kEiqu0AQc3g5MI0qZGceBVkc/1eY+3P7duwVNUfv+1MYNlOHzr2+Ii8KRy1qdJSi72hQTfuxHZdg3o2ca86pTfV3LsJJtJFCu+Jrr60pdRYu5R1mSrjrtD/sjpv/xOWmd/TW2Z/g68ZjNDzZvYnaTH/Ybx+U5mxcTdug9We24/ShcJBfF0TloUJgY3c72n9P0T8fxNwz8PKXiL7L/ILlq69zMGefEDkp8+QF+QlBEfL2wBgi6hzcBUyt9bqP+r1HVj7jJU5thBJy4xUbcpImzpgOmKkLbRoSc8wRoK/NuuxstMOO6NVc+77jNk+Hf4yo+OFSuOuK+3xQj5imkR9EhVuxOEuU8az0bT4emu8ywCD5V0t86Cu6mApTOpu17USdN4EdjLTijazmjaKF8+vxKGXZ2VVhSxd/OmGsCxhBs84GZIMmFQRYfUj0ClDMkSWyhrSWJkuSznM5PKTZWWFqQrJOdAbBxwpjG9GYXOxzhTaJgNW1tE7iG0zeBMbU3VurBKNDDRNDNi+bM0G7/QnLVfwyJfn10+JYUXiSe2/0ilPlCY/JrHY44Xa/ly9bqOujQaVgc9freCYHvEnyJyN7R5N6/N3wwbYDAr12HgsJlKa6+l5Jh5QUVqxXQ7QQuFSexMSJPsPngBHKGaTMfhbEBzglTjWLJRZoGp600dxEAo7qY9WBlfV4cngLVQgdQIsiflP8H2sxyj9gUKs3lvmaQXfn/YdjSaLPJdPz+jOisb4nBRB70xZ2DWxvbPSQg3M1XhPSXfMpq9D9wFYlt6kaLao91+Lx1BUJ/NUloXmcOPFlGeBaghf7HH8Cwky0BvhfXpyjrs5GjmbMmhlzjo21e35MOvV+BbacAyoC4dhNVT4qfY4kEAHcwzhmkZXHj7NLFdDV6jLrSMPn6l2c8TE5f3aSXocyrk8e33904QN3pebyetSXhdwtCZrVgfr3WRtikx+gzRZV6a5t5d73PyIDcvWLWtsLf5jjd0yW2VDbZh9fLDL06yocFT5ZlzzIaMDC7m5x7iXSuE/+w6mMXHWFB2jfxISiVUiPwhXmCRFMA06kdwo2uzKDNcoJunQlNcYngNvk8WbSUv4nTxmhlCyNilFvyJ0z5lkDdnhxnHJFkKfDM1dErYRL9Hq9mj1ezSUeSpbepky02q6JeuYxZ9ZnamVfT7S3IJWvgqcCP09Ql38qG5WdDcuXWcWFCDrP1HErI7ZOzZrUrLz/dsNKo+P0oP0UI11Gw4N6cCX/74UkGMmQBju3g+Tfsnn4YK+83Bp3PEVoy4Sowym9Jdu9Y1PoqbuV3y6FHyasgWnrb4rNVh8/FeWDiVBm+hzXmZm2SZZkqygkqgE91hdxvJ5SOwhHnnnt/TNsaQeQj8i64w7uyS/h0KVNovf13qkNUnGaqOfc8F5Osoy00cJ5D7G4leSQH7pErnJxCUNQB63qk0XV243fLpocYWJ+pefTG67h5J3d3RN1HZ9NlbTuqlmU4NyNz4by7oESINLhLQ1LK+5xUfkvf6M/398CpxnYiuTFshHITVgb9LSH1m5j6wECBRX/sgSWJ4/f/l8/zJeQm0ArkuRgFDLhoBSt9baK2/MUs38haxckozHx8ca+ZEdOK0e2o33Fv9QydlrBYOPIQTIrMKr9SsByBKfM/iUqasOWqPEz3SQWpsUesrv2mIym+CmP3cXG0p1xgrdqVqueGcZPHhlUxAd0CLdAFe6MQLMAnJZHRXVEeuYcFSXIapHrPt7wsv2ItbLb68vP11hP0nMpKAMfInSmf6gz1vUnlOJGhP+ecIUNkmj5SRswXHhwg+i+hCK8YJPshjwKf2zhb22pOvpbYdyi9oEd3x2q3O2rrBv2wXft4crJ0YF6H/+jlLhjVBwoWOLH7nJin4GfuISczah8EZokzdaBY47JwF1REXgO+ji13bXURVUio6BaE3KxyoPc/edwIlzDZg2ErsGZqamaufS4STekivyDoh6f7fnHZBlvqb8AE18A7Lw5TXQ9pr48kMzEBtf/ubFTu/3X5iTRp4cEplr7XpBGkSa9BiHicGPO/NStI1itGpy+PP6NLuAf+kmLySWdjVPzj1cr1E44pbZFltJ0eIlu7xScClOXGsNNUQKP7P/7TU4RLKjIUNEgS3dUKBet+1nPIYdRemzrV4064ReiExZGs3ssxeiLItCq4aERjlPkScHpJIc0zLveA7TuMvi8DCb0Vp06QTMNvRbzVBlBeO4opqUQGUrG3hlU5E0gKeosqYxwfit4/nVjNVZYyyT1YZ6D4DIU/WuMTWXilNlOmX0bheXecvaZz92YzdJJlsl8jIVxTltmUjmHAJQ9fyZUc9F2FBYa7EI0QLGiIP+panb5bx2XeW7SHWuareQ2IVVJQ8fJPz90YOLiAdo9ciYA0pJFexsQxg0vriQUllhiJVOK82VMhSVblG5hcLs0PeDGI60LPtRWFxVaCjb9stHbcDU/BGiNlA7RW3AG8lORu25G0bxqx8lGdpX3B5VyL+sqXoDJDa6RWKROe9EJCZBnqKKfx8Tf9PdyLsfbkaByjqNP691UHUraoDqbM1Ts7AeSNMmVAP2j4XS48BhU7GGh8MNqi0Nwyx+YKkzuqeyegtMzZBV+r9OXzTzCGu3oHAV/18H7f2Gb3lohZfMsgygGYzjpbHZG1jgVpJkS5UMw8CIU06K1U3t1rJMSbMAAKZBjRpdmb2BKP7risfH4zFVNoaCxzoTdKiZx+KxqstctEvHThogsrddsfUEbAUDw1ajjGGaJR2JrYah9I6tIpPaFVtPwFZlWNhqSGWXhGYc6xq3lN6xVeGtZO4Krl9dJ6t8wmDueHyHbB1/jaZZ9OY7pBULa2u57qhEtq+X1MpRZyxsVEo59ORMATDqV2r93DSpu3vZsCrvsCyZRwKLXal7WDXQdi4aVvg4qCywjpX3dWvPSq1DS5SfMnZoGUfTwfJSuqR1Cy3KIa9pB9k+7E07ULLzdEbjWEdpB+pFpJgMqYrMAcBubEHqCtjdtF85BtjDgVlTO0pXMOu6CcuHOqBNzRAdAVvhraIPNLv+H5oBluTfz2EUJy0FIvxs/Ccr5BSsszpQJDL1hgR7ktyxH8iVeTr/7w0Ks8BVFEMHJk1eEEkWSzLJPkhBKFlTys4bk4rExTQvWkmnlMBvtQV8deiOyKEL4aBswzOsIyVwzANKeVqaxqyr95nGpe7pz5oVduun3UltS5MJzV5NZs3Ip1JDlKaRF2MlSlOm2wnVA0tNFkUk6QzdTvTX7cu3V1v/aQsff0Hrr0qEXqd8IbEOCZIDkTkXhqTotolm8wsgSLJmlc1kGguqA1y25ZWUtno+aUxyhpZZ9o5s4YS/hqQ5cmE6Pj3Lp8BBZMb/AQ==&lt;/diagram&gt;&lt;/mxfile&gt;

=====================================================
== File: mailbox/cassandra/src/test/resources/cassandra-driver.conf
=====================================================
datastax-java-driver {
  basic.request {
    timeout = 5 seconds
  }
}

=====================================================
== File: docs/modules/customization/nav.adoc
=====================================================
* xref:index.adoc[]

=====================================================
== File: docs/modules/customization/pages/index.adoc
=====================================================
= Apache James Customization
:navtitle: Customization


=====================================================
== File: docs/modules/servers/nav.adoc
=====================================================
* xref:index.adoc[]
** xref:demo.adoc[]
*** xref:servers:5-minute-demo.adoc[]
*** xref:servers:15-minute-demo.adoc[]
** xref:basic/index.adoc[]
*** xref:basic/context.adoc[]
*** xref:basic/objectives.adoc[]
*** xref:basic/concepts.adoc[]
*** xref:basic/architecture.adoc[]
*** xref:basic/conf/index.adoc[]
*** xref:basic/help.adoc[]
** xref:extendable.adoc[]
** xref:test.adoc[]

=====================================================
== File: docs/modules/servers/pages/5-minute-demo.adoc
=====================================================
= Short Demo

In this short demo (~5 minutes), we will set up a running James demo very quickly
using a prepared Docker image.
Then you will add a domain, and a user account within that domain.


Requirements: 

 * Docker

== Set up the demo server

To begin, run the James demo server using Docker:

[source,bash]
----
docker run -d -p &quot;25:25&quot; -p &quot;143:143&quot; --name james apache/james:demo-latest
----

Explanation:

 * `docker run` runs the provided image with the given parameters
 * The `-d` parameter runs the container in &quot;detached&quot; mode
 * `-p &quot;25:25&quot; -p &quot;143:143&quot;` attaches the image ports to the ports 25 (SMTP) and 143 (IMAP) on the host machine
 * The `--name james` parameter gives the running container a name to make it easier to manipulate
 * `apache/james:demo-latest` is the image that is used for this demo

Docker will pull the image and start the container.

== Connect via the CLI

****
To run commands using the James CLI, you can use the running container via Docker:

----
docker exec james james-cli &lt;&lt;COMMAND&gt;&gt;
----

****

As an example, list all the domains currently in use by James:

[source,bash]
----
docker exec james james-cli listDomains
----

You should notice that a default domain, james.local, has been created


=====================================================
== File: docs/modules/servers/pages/extendable.adoc
=====================================================
= James Extendable Mail Server
:navtitle: Extendable

(TODO)


=====================================================
== File: docs/modules/servers/pages/15-minute-demo.adoc
=====================================================
= Long Demo

In this demo (~15 minutes), we will set up a running James demo using a prepared Docker image.
We will then test the server by connecting with an email client. Finally, we
will connect to the server via the REST-based Admin API.


Requirements: 

 * Docker
 * curl
 * Thunderbird client (optional)

== Set up the demo server

Before starting the server, because we will be connecting to the Admin API we need to set some configuration parameters.
We will create a `webadmin.properties` file that James will use in order to allow us to connect to the API.

Run this command to create the `webadmin.properties` file:

[source,bash]
----
printf 'enabled=true\nport=8000\nhost=localhost' &gt;&gt; webadmin.properties
----

Explanation:

 * `enabled=true` instructs James to run the Admin API service
 * `port=8000` configures the Admin API to be made available via port 8000
 * `host=localhost` configures the Admin API to respond on localhost


Now run the James demo server using this command:

[source,bash]
----
docker run -d -p &quot;25:25&quot; -p &quot;143:143&quot; -p &quot;127.0.0.1:8000:8000&quot; -v $(pwd)/webadmin.properties:/root/conf/webadmin.properties --name james apache/james:demo-latest
----

Explanation:

 * `docker run` runs the provided image with the given parameters
 * The `-d` parameter runs the container in &quot;detached&quot; mode
 * `-p &quot;25:25&quot; -p &quot;143:143&quot;` attaches the image ports to the ports 25 (SMTP) and 143 (IMAP) on the host machine
 * `-p &quot;127.0.0.1:8000:8000&quot; attaches the port 8000 to localhost on the host machine to allow us to connect to the Admin API
 * `-v $(pwd)/webadmin.properties:/root/conf/webadmin.properties` mounts the webadmin.properties file to configure the Admin API
 * The `--name james` parameter gives the running container a name to make it easier to manipulate
 * `apache/james:demo-latest` is the image that is used for this demo

Docker will pull the image and start the container.

=====================================================
== File: docs/modules/servers/pages/test.adoc
=====================================================
= James Test Server
:navtitle: Test 

https://github.com/apache/james-project/tree/master/server/apps/memory-app[Apache James Memory App]
is a memory-only implementation of Apache James. It is useful for testing and development purposes.


=====================================================
== File: docs/modules/servers/pages/demo.adoc
=====================================================
= Server Demo
:navtitle: Demo

The James Demo Server sets up  a light-weight, disposable mail server
so you can try it out easily on your own local machine.

 * xref:servers:5-minute-demo.adoc[Short demo] (~5 minutes)
   ** Set up a demo server
   ** Create a new user with the CLI
 * xref:servers:15-minute-demo.adoc[Long demo] (~15 minutes)
   ** Same steps as above
   ** Interact with the server via the Admin API
   ** Test the server with an email client

=====================================================
== File: docs/modules/servers/pages/basic/context.adoc
=====================================================
= James Basic Server &amp;mdash; Context
:navtitle: Context

Email has been around in one form or another for more than 50 years.
It is arguably one of the most resilient applications or our day, and
may even be called **THE** killer app of our time. Most of us, if not
all but the most unfortunate, use email on a regular basis. If you are
reading this page over the web, it is almost 100% certain that you have
used and continue to use email.

Despite its ubiquity, the vast majority of people do not control their
own email infrastructure. Although, unlike telecommunications or electricity
for example, the barriers to owning and maintaining your own infrastructure 
are very low, individuals and companies alike usually defer to the large
email providers for this essential service.
Although relying on the big providers is easy, what they offer is often
limited and in some cases much more costly than it ought to be.

The Apache James Community is dedicated to liberating email. Our mission
is to make email hosting both easy and fun. We do this by:

 * Providing an easy-to-use self-hosted server for amateur Operators
 * Providing an extendable server for those more experienced Operators
 * Providing a distributed solution for heavy-duty projects
 * Ensuring that James remains a flexible, reliable technology platform

=====================================================
== File: docs/modules/servers/pages/basic/objectives.adoc
=====================================================
= James Basic Server &amp;mdash; Objectives
:navtitle: Objectives

The objective of the Basic Server is to be as simple and minimalistic as possible,
while still being useful. Many people wish to have a basic self-hosted mail server that they
can use without having to become a deep technical expert.
The Basic Server is intended to be an entry-level server that is accessible to
those who want a self-hosted mail server, but who don't want to have to learn about all the
complexities of email communications.

This server is therefore intended to be the simplest to set up and use in 
production.
Of all the James Servers, it has the least amount of dependencies and configurations.
If you are not sure which of the James servers is best for you, you should
probably choose this one.

The default configuration of the Basic Server includes the following features:

 * Secure SMTP (SSL/TLS) over port 465
 * Secure IMAP4 (SSL/TLS) over port 993
 * Local Mailbox support
  ** Files are stored locally on the filesystem
  ** Optionally use a volume if you are a Docker or Kubernetes user
 * Multi-domain (virtual domain) support
 * Administration of users either via a command-line tool or the admin api

We have disabled all of the insecure communications and require SSL. If you have
a specific requirement to use an insecure protocol, or if the above list does not
satisfy your needs, then after having successfully set up this server you may want
to move on to the xref:extendable.adoc[Extendable Server].

=====================================================
== File: docs/modules/servers/pages/basic/conf/index.adoc
=====================================================
= James Basic Mail Server Configuration
:navtitle: Configuration

(Work in progress.)

////
== JIRA Issues

* dnsservice.xml - DNS Service Configuration -&gt; https://issues.apache.org/jira/browse/JAMES-3219
  ** Status: to be removed
* domainlist.xml - Domain List Configuration -&gt; https://issues.apache.org/jira/browse/JAMES-3220
  ** Status: to be removed
* events.xml - Event system Configuration (Spring only)
  ** Status: Spring only, so n/a
* fetchmail.xml- FetchMail Configuration (Spring only) 
  ** Status: Spring only, so n/a
* imapserver.xml - IMAP4 Configuration -&gt; https://issues.apache.org/jira/browse/JAMES-3229
  ** Status: 
* jmap.properties - JMAP Configuration (Guice only) -&gt; https://issues.apache.org/jira/browse/JAMES-3230
  ** Status:
* lmtpserver.xml - LMTP Configuration -&gt; https://issues.apache.org/jira/browse/JAMES-3231
  ** Status: 
* mailrepositorystore.xml - Mail Repository Stores Configuration -&gt; https://issues.apache.org/jira/browse/JAMES-3232
  ** Status: 
* mailbox.xml - Mailbox Configuration (Spring only)
  ** Status: Spring only, so n/a
* mailetcontainer.xml - Mailet Container Configuration -&gt; https://issues.apache.org/jira/browse/JAMES-3233
  ** Status: 
* pop3server.xml - POP3 Configuration -&gt; https://issues.apache.org/jira/browse/JAMES-3234
  ** Status:
* mailbox.xml - Quota Configuration (Spring only)
  ** Status: Spring only, so n/a
* recipientrewritetable.xml - Recipient Rewrite Table Configuration -&gt; https://issues.apache.org/jira/browse/JAMES-3235
  ** Status: 
* smtpserver.xml - SMTP Configuration -&gt; https://issues.apache.org/jira/browse/JAMES-3236
  ** Status:
* usersrepository.xml - Users Configuration -&gt; https://issues.apache.org/jira/browse/JAMES-3237
  ** Status:  
* webadmin.properties - WebAdmin Configuration -&gt; https://issues.apache.org/jira/browse/JAMES-3238
  ** Status: 
* jmx.properties -&gt; https://issues.apache.org/jira/browse/JAMES-3240
  ** Status: 
* extensions.properties -&gt; https://issues.apache.org/jira/browse/JAMES-3241
  ** Status: 
* jwt_publickey -&gt; https://issues.apache.org/jira/browse/JAMES-3242a
  ** Status:
* healthcheck.properties -&gt; https://issues.apache.org/jira/browse/JAMES-3243
  ** Status: 
* listeners.xml -&gt; https://issues.apache.org/jira/browse/JAMES-3244
  ** Status: 

=====================================================
== File: docs/modules/servers/pages/basic/help.adoc
=====================================================
= James Basic Server &amp;mdash; Where to get help
:navtitle: Help

////

This information is based on the email discussion from here:
  --&gt; https://www.mail-archive.com/server-dev@james.apache.org/msg66420.html

However, I am not satisfied that I have properly captured the community's
opinion, and there are only a few people who have contributed to the
thread.

Would be good to have some comments on this content.

It could just be that I don't like the content. But if that is what the
community thinks, then that is what we should write.

////

////
Comment this out until there is agreement.
== Warning

Please note that if you want to try to use James, you are pretty
much on your own.

James is intended for use only by the current committers, or perhaps only by
competent developers only who have the ability to understand the code as it
exists now and can make changes themselves without any help. What you see
is what you get. Take it or leave it.

The James Community is made up of people who &quot;scratch their own itch&quot;.
If you have a problem with the code or the documentation, then please
step up and fix it rather than asking for help.

If you are a user who wants to try to use James, you should seriously
consider hiring a professional organization to help you. Most likely,
James is not for you.

You can try filing issues, but there is absolutely no guarantee it will be
fixed. If you are lucky and a developer has the same problem as you, then
it may be fixed. Or if one of the developers is feeling particularly generous and wants
to volunteer their valuable time to help you, it may happen. There is no 
way to know unless you try.

On the other hand, the developers would **love** for you to do stuff that
they are not interested in doing, like documentation. If you don't know anything
about the code, it would be a good way to help out until you can eventually
join the exclusive committer club, too.
////

=====================================================
== File: docs/modules/servers/pages/basic/concepts.adoc
=====================================================
= James Basic Server &amp;mdash; Background Concepts
:navtitle: Concepts

Before embarking on your adventure with the **James Basic Server**, we
highly recommend that you familiarize yourself with the following concepts:

[TODO: provide links and ensure that articles exist for each of these topics]

 * xref:concepts:user/index.adoc[James User Model]
 * xref:concepts:protocols/smtp.adoc[SMTP]
 * xref:concepts:protocols/imap.adoc[IMAP]
// What link should go here??
 * Secured email communications
 * xref:concepts:/storage/index.adoc[Email storage]

=====================================================
== File: docs/modules/servers/pages/basic/architecture.adoc
=====================================================
= James Basic Server &amp;mdash; Architecture
:navtitle: Architecture

(TODO)

=====================================================
== File: docs/modules/servers/pages/basic/index.adoc
=====================================================
= James Basic Mail Server
:navtitle: Basic 

The **James Basic Server** is intended for xref:concepts:user/index.adoc#Operator[Operators]
who are just getting initiated with operating their own 
xref:concepts/???[Self-Hosted] mail server.

The server is intended to be a mostly &quot;out-of-the-box&quot; solution.
With a few small interactions necessary to configure the system, you should
be up and running in no time with all the standard features.

These documents will present all the concepts that underpin this server,
and will walk you through its installation and configuration. If you run into
trouble, we explain how you can get help from the James Community.

 * xref:basic/context.adoc[The context of contemporary email]
 * xref:basic/objectives.adoc[Objectives and motivation of the Basic Server]
 * xref:basic/concepts.adoc[Useful background concepts]
 * xref:basic/architecture.adoc[Overview of architecture]
 * xref:basic/conf/index.adoc[Configuration]
 * xref:basic/help.adoc[Where to go for help]

=====================================================
== File: docs/modules/servers/pages/basic/self-hosting.notes
=====================================================
The name of the project is &quot;Jame Self Hosting Sandbox&quot;, and I see the term &quot;self hosting&quot; in a few places... So it sounds like it is important, but what is that intended to mean?

I would like to understand better the intention behind the term.



I would say &quot;self hosting&quot; means individuals having bought a domain name and want to install their own mail server for hosting their personal emails. Volumetry is small. They want control on their data.

One generally tricky point about this kind of set up is getting third parties (like eg GMail) trusting your setup. It would be important to document a checklist regarding Mail Exchange trust like:

 I'm not an open spam relay
 MX record registered for my domain
 Reverse DNS setted up for MX servers
 SPF records setted up
 DKIM signature setted up
(which is slightly external to James as DNS setup is required)



A &quot;how to&quot; regarding this is a MUST have in my opinion http://james.apache.org/howTo/index.html



Just a thought based on the ideas you wrote here...

But what if the mission of James were to &quot;help people self-host their email&quot; as an alternative to providers like gmail etc.

Right now James is very obscure and is only for total tekkie geeks. If we modify the target, perhaps this could be the mission.

The way of accomplishing this is:

Provide in-depth &quot;concept&quot; articles
Provide more &quot;how tos&quot; for important things
Make James easier to install and operate
wdyt?


It would be more like:

Apache James give you the ability to &quot;self-host&quot; email. Many companies and individuals are unable to develop their own mail infrastructure, but often feel trapped into using services like gmail, yahoo, etc. James provides a low-cost alternative for those who desire the freedom to use email the way they want.

Or something like that.



Apache James give you the ability to &quot;self-host&quot; email. Many companies and individuals are unable to develop their own mail infrastructure, but often feel trapped into using services like gmail, yahoo, etc. James provides a low-cost alternative for those who desire the freedom to use email the way they want.

This should be the goal of the Basic server.

Regarding &quot;Advanced server&quot;:

=====================================================
== File: docs/modules/servers/pages/run.adoc
=====================================================
= Run James in Production
:navtitle: Run

James provides a number of *profiles* out of the box.
These profiles have been tested and verified so you can
get set up quickly with a production mail server that you
can use with confidence.

The available profiles are:

 * &lt;&lt;minimal,James Minimal Profile&gt;&gt;
 * &lt;&lt;basic,James Basic Profile&gt;&gt;
 * &lt;&lt;advanced,James Advanced Profile&gt;&gt;
 * &lt;&lt;distributed,James Distributed Profile&gt;&gt;



[#minimal]
== James Minimal Profile

If you are not sure which profile you should be using, then
you probably ought to be using the *James Minimal Profile*.

This profile is intended to be the simplest to set up and use in production.
It has the least amount of dependencies and complexities. If you do not yet
have a huge amount of emails to process, then usually the simplicity is
well worth the loss of some functionality. The last thing you need is
to have to resolve difficult issues on a production server when you have not
yet acquired the requisite knowledge to deal with those issues. Using the
*James Minimal Profile* will help you reduce the risk of running into 
production issues.

This profile is:

 * Suggested for use with smaller deployments
 * Appropriate for use by most operators
 * The preferred choice for most installations
 * Endowed with fewer dependencies, which makes it simpler and less risky to use in production
 * Only dependent on your local file system for data storage, so very easy to manage

(TODO: Add link to details page)


[#basic]
== James Basic Profile

This profile is intended to be relatively easy to use, but provides additional features with regards
to data storage and management. Of course, these additional features come at the cost of more
operational complexity. You will have to now deal with a relational database and all the fun
that comes with it. However, if you are already an expert at relational database management,

=====================================================
== File: docs/modules/servers/pages/index.adoc
=====================================================
= Apache James Mail Servers
:navtitle: Servers

James offers five types of ready-made Mail Servers. The servers are intended 
for those with different needs, ranging from xref:concepts:user/index.adoc#Operators[Operators]
who are interested in setting up a server for the first time, to experienced teams of 
xref:concepts:user/index.adoc#Developer[Developers]
looking to deploy an advanced distributed system.
Each of the servers has been tested and verified so you can 
deploy a production-grade 
xref:concepts/insert-link[Mail Server] with confidence.

The available James Servers are:

 * &lt;&lt;demo,James Demo Mail Server&gt;&gt;
 * &lt;&lt;basic,James Basic Mail Server&gt;&gt;
 * &lt;&lt;extendable,James Extendable Mail Server&gt;&gt;
 * &lt;&lt;distributed,James Distributed Mail Server&gt;&gt;
 * &lt;&lt;test,James Test Server&gt;&gt;

If you are just checking out James for the first time, then we highly recommend
investigating the servers in this order:

. Initiate yourself with James by using the &lt;&lt;demo,Demo Server&gt;&gt;
. Install the &lt;&lt;basic,Basic Server&gt;&gt;
. If and only if the Basic Server is not enough, then try the &lt;&lt;extendable,Extendable Server&gt;&gt;

[#demo]
== James Demo Server
The xref:demo.adoc[Demo Server] is intended for those who just want 
to give James a quick spin on their local machine to see what all
the fuss is about.



[#basic]
== James Basic Mail Server

If you just want to get up and running quickly, if you have very simple needs,
or you want to try deploying a mail server for the first time, then the
xref:basic/index.adoc[*Basic Server*] is the right choice for you. If you are
not sure which server you should be using, then this server is probably the right
choice.

This server is intended to be the simplest to set up and use in production.
It has the least amount of complexity and configurations to worry about.
The last thing you need is
to have to resolve difficult issues on a production server when you have not
yet acquired the requisite knowledge to deal with those issues. Using the
xref:basic/index.adoc[*Basic Server*] will help you reduce the risk of running into 

=====================================================
== File: docs/modules/concepts/nav.adoc
=====================================================
* xref:index.adoc[]
** xref:user/index.adoc[]
** xref:mail/index.adoc[]
*** xref:messages/index.adoc[]
**** xref:messages/imf.adoc[]
**** xref:messages/mime.adoc[]
** xref:protocols/index.adoc[]
*** xref:protocols/smtp.adoc[]
*** xref:protocols/pop.adoc[]
*** xref:protocols/imap.adoc[]
*** xref:protocols/jmap.adoc[]
*** xref:protocols/esmtp.adoc[]
*** xref:protocols/lmtp.adoc[]
** xref:storage/index.adoc[]
*** xref:storage/mailbox.adoc[]
*** xref:storage/users.adoc[]
** xref:processing/index.adoc[]
** xref:configuration.adoc[]
** xref:glossary.adoc[]

=====================================================
== File: docs/modules/concepts/pages/configuration.adoc
=====================================================
= Configuration

== Overview

An important aspect to understand about James is the idea of &quot;configuration&quot;.
Sometimes &quot;configuration&quot; means different things to different people, so we
wanted to ensure that what we mean by the concept is clear and precise, 
because in order operate a James server, you will necessarily need to 
configure it.

A &quot;*Configuration*&quot; is a https://martinfowler.com/bliki/ValueObject.html[value object]
that communicates to a James server how the xref:user/index.adoc#_operator[Operator] wishes the
server to behave. It is very similar to an interface, but yet it is not quite an interface
(which is why we call it something different).

An &quot;interface&quot; provides a means for an Operator to interact with a server as part of the
normal course of ongoing operations. Interfacing with the system essentially means either
reading the server's current state, or updating the server's current state. A typical example
would be adding a new mailbox via the xref:concepts:???.adoc[Useradmin API]. Each time the Operator
interacts with the system via an interface, although the *state* of the system may change, 
the *behavior* of the system is not expected to change.

By contrast, &quot;configuration&quot; of a system (also a noun, but yet not the same as the
&quot;Configuration&quot; we mention above) is more like a switching mechanism that instructs the server
how to behave given some kind of interaction via an interface. For example, if a James server
is configured to allow multiple domains, then if an Operator adds &quot;user@domain1.com&quot; and
&quot;user@domain2.com&quot;, the server will happily accept the command. If only a single domain is
permitted via configuration, then only one of those mailboxes will be allowed. In other words,
given the same interaction by the Operator, given different configurations the behavior of 
the system is different.

Some systems call these &quot;settings&quot;, so as a user of a system you would &quot;configure your settings&quot;.



=====================================================
== File: docs/modules/concepts/pages/mail/index.adoc
=====================================================
= All About Emails
:navtitle: Emails

The https://en.wikipedia.org/wiki/History_of_email[history of email] has resulted
in a convoluted patchwork of standards and practices, which can be very difficult
to understand and decipher. Fortunately, James has your back.

We have built up our own view of emails that allows us to process messages in a
consistent and comprehensible way.

To help you understand how James approaches emails, we have divided this section
up into the following parts:

 * xref:messages/index.adoc[]
 * xref:protocols/index.adoc[]

=====================================================
== File: docs/modules/concepts/pages/storage/mailbox.adoc
=====================================================
= Mailboxes
:navtitle: Mailboxes

== Overview

To (over)use the analogy once again of a postal system, we think of a mailbox
as a place where a letter is placed to await pickup by its recipient. Although
current methods have evolved considerably, the original idea used for the development
of email was exactly that. The concept &lt;&lt;RFC196,has been around officially&gt;&gt; since
at least 1971. The image of a mailbox is so prevalent that, although current
systems have evolved to do so much more than just hold messages for processing,
the industry continues to apply the concept.

The more general term is &quot;Email Storage&quot;. It is necessary to store email for
many reasons:

 * As a mailbox system &amp;mdash; part of a queue to await processing
 * As a persistence mechanism &amp;mdash; a place where you can go back and predictably
    locate a message that you may want to refer to again in the future
 * As an archive &amp;mdash; a place where you may want to store &quot;deleted&quot; emails so that
    you can potentially retrieve them if you wish to change your mind later
 * As a temporary step in a process &amp;mdash; perhaps you have a &quot;todo&quot; folder where
    you temporarily store an email that you intend to process soon

There are numerous ways to store emails, just as there are numerous reasons for
storing them:

 * A &lt;&lt;Specifications,standardized&gt;&gt; &quot;mailbox&quot; format
 * A relational database
 * A custom file-based mechanism
 * Etc.

This section briefly describes how email storage is a core concept in an
email system.



== Specifications

=== Electronic Mail Box

==== RFC196

The concept of an &quot;electronic mail box&quot; was 
https://tools.ietf.org/html/rfc196[initially specified] way back in 1971.
It is amusing to read the retro concepts in the initial description of this
document:

  The purpose of this protocol is to provide at each site a
  standard mechanism to receive sequential files for immediate or

=====================================================
== File: docs/modules/concepts/pages/storage/users.adoc
=====================================================
= User Repository
:navtitle: Users

== Overview

Whereas xref:storage/mailbox.adoc[mailboxes] are clearly a core component of
any email system, user management is a lighter shade of gray.

// &quot;Repository&quot; should be &quot;Directory&quot;. See JAMES-3360.
On the one hand, mailboxes ought to match up with actual 
xref:user/index.adoc#_user[Users], so there is
a clear relationship between mailbox management and user management.
Because of this relationship, it is not at all strange to include a user respository
within an email system.

However, on the other hand email is only one of many applications that require
user management. It is therefore also completely reasonable to use some kind of
centralized user directory, and ensure that mailboxes somehow synchronize with
this external system.

The former case is much simpler to manage, but requires duplicate and therefore
unproductive work. The latter case can become quite complex from a technological 
perspective (and all the risks that are associated with it), but reduces the
amount of unproductive work.

== Common Operations

// &quot;Repository&quot; should be &quot;Directory&quot;. See JAMES-3360.
Because the user repository is used in the context of managing mailboxes, there
are some operations that are relatively common to any email system.

=== Domain Management

A mailbox belongs to a https://en.wikipedia.org/wiki/Domain_name[domain]. For a mail
system that can process multiple domains, the system will usually have operations to:

* List available domains
* Add a domain
* Remove a domain
* Update a user's password


=== User Management

A User has at least one mail box, and will usually have a canonical mailbox
that matches the user's identity in the system.
For each domain that is managed by the system, it is common to be able to:

* List all users for the domain
* Add a user

=====================================================
== File: docs/modules/concepts/pages/storage/index.adoc
=====================================================
= Storage
:navtitle: Storage

== Overview

Email is useful because any one person can send a message to any other person,
anywhere in the world. The heart of email is the ability to transfer some message
based on a  commonly-understood message format between two different systems that
may have been developed entirely independently of each other. The concept is relatively
simple, but the fact that email is so ubiquitous is simply a miracle.

However, there is more to email than just the transfer of messages.

For starters, I want people I know to be able to send me a mail even when 
I happen to be out mountain climbing. I want to be able to receive the message
when I'm not available, then review it afterward when I am back at my desk.
For this reason, email is by design asynchronous. Time can pass between the moment
a mail is sent and the moment it is read. 
In the meantime, it needs to be stored somewhere.


Additionally, although it is possible to read a message, then discard it, never to be seen again,
it is more common for people to archive a message. Some people even get creative and
use their email for various other purposes, such as a kind of poor man's information archive.
Many corporations use email for business purposes, which requires administration of
users within the organization.
Even individuals with a self-hosted email server want to ensure that their system does
not get abused as an xref:concepts:glossary.adoc#open_relay[open relay].

All of these types of concerns requires that the system maintain some kind of state,
whether that be the messages themselves, information about the system's users,
and even in some cases user credentials. Keeping state requires a storage system.
The system of storage must work intimately with the various 
xref:protocols/index.adoc[protocols].

In this section, we describe the two principle types of storage that James manages:

 * xref:storage/mailbox.adoc[Mailboxes] for email storage, and
// &quot;Repository&quot; should be &quot;Directory&quot;. See JAMES-3360.
 * xref:storage/users.adoc[User Repository] for data about Mailbox users.

=====================================================
== File: docs/modules/concepts/pages/messages/mime.adoc
=====================================================
= Multipurpose Internet Mail Extensions
:navtitle: MIME

== Overview

The base format of an email message is xref:messages/imf.adoc[Internet Message Format&quot;],
but most contemporary messages use a format called
https://en.wikipedia.org/wiki/MIME[&quot;Multipurpose Internet Mail Extensions&quot;].
MIME specifies how to extend a valid IMF message, dealing with character encodings, 
various file formats, and many other odds and ends that make email what it is today.

A user of email rarely has to be concerned with the MIME specifications. Usually the
communications system should take care of all the nitty gritty, and even then MIME 
processing is usually at a very low level. For this reason, the blissfully simple 
conception of a simple &quot;email&quot; is usually just fine from the perspective of a user
and even in most cases for a developer.




== Specifications

Multipurpose Internet Mail Extensions, or just MIME, functions much like an extension
to IMF in order to:

 * Add different character sets for internationalization
 * Allow for processing of media types other than plain text

=== RFC2045

https://tools.ietf.org/html/rfc2045[RFC2045] (&quot;Multipurpose Internet Mail Extensions
Part One: Format of Internet Message Bodies&quot;)
describes the message body format of an email. It is part of a serious of MIME
specifications including &lt;&lt;RFC2046&gt;&gt;, &lt;&lt;RFC2047&gt;&gt;, &lt;&lt;RFC2048&gt;&gt;, and &lt;&lt;RFC2049&gt;&gt;.
This particular document in the series specifies the various headers that
are used to describe the structure of a MIME message.



=== RFC2046

https://tools.ietf.org/html/rfc2046[RFC2046] (&quot;Multipurpose Internet Mail Extensions
Part Two: Media Types&quot;) describes the various MIME media types, such as
plain text, images, videos, etc. It is part of the serious of MIME specifications
that includes &lt;&lt;RFC2045&gt;&gt;, &lt;&lt;RFC2047&gt;&gt;, &lt;&lt;RFC2048&gt;&gt;, and &lt;&lt;RFC2049&gt;&gt;.




=== RFC2047

=====================================================
== File: docs/modules/concepts/pages/messages/imf.adoc
=====================================================
= Internet Message Format
:navtitle: IMF

== Overview

What people casually call &quot;email&quot; actually refers more specifically to a
text message written in a specified format called
https://en.wikipedia.org/wiki/Email[&quot;Internet Message Format&quot;] or &quot;IMF&quot;.
After the first IMF specification was published in 1982 there was no looking back.
Email took the world by storm. Today it is arguably the most prevalent means of 
communicating with a distant party.

IMF is very basic, and is limited to only specifying a syntax for text messages.  
For the transmission of images, audio, or other types of data we need to make
use of the xref:mail/messages/mime.adoc[MIME] specification. 
Although IMF forms the base standard upon which
email is based, email today is rarely used without MIME. We therefore consider
for practical purposes that an email message is essentially the equivalent of
a MIME message.



== Specifications

The specifications for Internet Message Format (IMF) form the basis of what we commonly
call &quot;email&quot;.

=== RFC822

https://tools.ietf.org/html/rfc822[RFC822] (&quot;Standard for the Format of ARPA Internet Text Messages&quot;)
was the original standard that defined the format of an email. It was obsoleted by
&lt;&lt;RFC2822&gt;&gt;. The definition of an email under this standard was an attempt to take the lessons
learned from the ARPANET and extend the use of text messaging to a broader context.

Electronic mail messages are defined as having contents and an envelope. The contents
consist of header fields and, optionally, a body. The body is nothing more than
a (potentially empty) sequence of lines of text.

Although this sounds like an extremely simple concept, to get two completely separate systems
to agree and understand each other is a surprisingly complex problem that most people
today take for granted. Most of RFC822 deals with the nitty-gritty of formatting and parsing
this type of text message.

This specification deals with the headers, additionally relating them to the sending and
forwarding of messages. The body content is dealt with in &lt;&lt;RFC2045&gt;&gt;



=== RFC2822


=====================================================
== File: docs/modules/concepts/pages/messages/index.adoc
=====================================================
= Email Messages
:navtitle: Messages

An email message is essentially a simple text message that is communicated
from one party to another. It is no miracle that two unknown parties are
able to communicate; rather we can thank a set of standards that
allow any two unrelated systems to process an email even if the system owners
do not know each other.

The two most important standards upon which today's emails are based
are:

 * xref:messages/imf.adoc[Internet Mail Format] (IMF)
 * xref:messages/mime.adoc[Multipurpose Internet Mail Extensions] (MIME)

=====================================================
== File: docs/modules/concepts/pages/protocols/jmap.adoc
=====================================================
= JSON Meta Application Protocol (JMAP)
:navtitle: JMAP

== Overview

https://jmap.io/[JSON Meta Application Protocol] (&quot;JMAP&quot;)
is

From &lt;&lt;RFC8620&gt;&gt;:

   The JSON Meta Application Protocol (JMAP) is used for synchronising
   data, such as mail, calendars, or contacts, between a client and a
   server.  It is optimised for mobile and web environments and aims to
   provide a consistent interface to different data types.

   This specification is for the generic mechanism of data
   synchronisation.  Further specifications define the data models for
   different data types that may be synchronised via JMAP.


== Specifications

=== RFC8620

https://tools.ietf.org/html/rfc8620[RFC8620] (&quot;The JSON Meta Application Protocol (JMAP)&quot;)

== Related Concepts



=====================================================
== File: docs/modules/concepts/pages/protocols/imap.adoc
=====================================================
= Internet Message Access Protocol (IMAP)
:navtitle: IMAP

== Overview

https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol[Internet Message Access Protocol],
or IMAP, is a protocol used by email clients to retrieve 
xref:messages/index.adoc[email messages] from a xref:glossary.adoc#email_server[mail server].
One could say that it is effectively in competition with xref:protocols/pop.adoc[POP]
because it accomplishes a function similar in nature, and most clients will force you
to choose one or the other.
These days, the natural choice of protocol tends to be IMAP rather than POP.

The main difference between IMAP and POP is that messages are kept on the server, which
keeps a kind of master reference. Instead of transferring the message to the client,
only an image, or copy of the message is kept locally. When the client synchronises with
the state of the server, it will tend to mimic that state. So if a new message is stored
in a mailbox, it will appear on the client, or if a message is deleted from the server,
it will also be deleted from the client.

The user can control the state of server from the client by adding, deleting, or moving
messages between folders. The user can also add folders from the client, the state of which
will be stored on the server.


== Specifications

=== IMAP

Apparently, no official specification exists for the original IMAP.
It became a specification with the publication of &lt;&lt;IMAP2&gt;&gt;


=== IMAP2

==== RFC1064

https://tools.ietf.org/html/rfc1064[RFC1064] (&quot;Interactive Mail Access Protocol - Version 2&quot;)
was the original IMAP2 specification, published in 1988. The specification was obsoleted
by &lt;&lt;RFC1176&gt;&gt;.

==== RFC1176

https://tools.ietf.org/html/rfc1176[RFC1176] (&quot;Interactive Mail Access Protocol - Version 2&quot;)
provides various, somewhat minor updates to &lt;&lt;RFC1064&gt;&gt;. This specification was superseded by
the first IMAP3 specification, &lt;&lt;RFC1203&gt;&gt;.

=== IMAP3

==== RFC1203

=====================================================
== File: docs/modules/concepts/pages/protocols/smtp.adoc
=====================================================
= Simple Mail Transfer Protocol (SMTP)
:navtitle: SMTP

== Overview

When the original specification for Simple Mail Transfer Protocol, or SMTP, 
was published almost 40 years ago together with 
xref:messages/imf.adoc[IMF], email as we know it today was born.



== Specifications

=== RFC821

https://tools.ietf.org/html/rfc821[RFC821] (&quot;Simple Mail Transfer Protocol&quot;)
was the original SMTP specification published in 1982. 
It was obsoleted by &lt;&lt;RFC2821&gt;&gt; in 2001.

=== RFC2821

https://tools.ietf.org/html/rfc2821[RFC2821] (&quot;Simple Mail Transfer Protocol&quot;) replaced
&lt;&lt;RFC821&gt;&gt;. It was itself replaced by &lt;&lt;RFC5321&gt;&gt; in 2008.

=== RFC 5321

https://tools.ietf.org/html/rfc5321[RFC5321] is the currently used standard for
&quot;Simple Mail Transfer Protocol&quot;, or &quot;SMTP&quot;. Published in 2008, it is &quot;a specification of the basic 
protocol for Internet electronic mail transport&quot;. If you are interested in all
the gory details, we recommend that you read this document.

This specification has many dependencies with xref:messages/imf.adoc[IMF],
xref:messages/mime.adoc[MIME], and other technical concepts, which can quickly
become utterly confusing.
Here, we provide a very short and simplified description of those portions of the 
specification that we felt were interesting enough to repeat here.

As the spec mentions, &quot;SMTP transports a mail object&quot;,  a mail object being described
as an object that contains both an envelope and content. An SMTP client connects
to a server and communicates via a session. Both client and server provide a
mail transport service, and are therefore act as &quot;Mail Transfer Agents&quot;, or
&quot;MTAs&quot;. A mail originates and terminates with a &quot;Mail User Agent&quot; (&quot;MUA&quot;).
On the originating side, a MUA may, for instance, collect mail to be transmitted
by a user and hand it off to an MTA. On the terminating side, an MTA would 
hand a mail off to an MUA.

&quot;SMTP sessions are stateful, with both parties carefully maintaining a
common view of the current state.&quot; The session is initiated by the client,
which establishes a two-way channel to an SMTP server. The session must either
close successful (or with a failure message), else delivery is considered to

=====================================================
== File: docs/modules/concepts/pages/protocols/index.adoc
=====================================================
= Transmission Protocols
:navtitle: Protocols 

The true value of email is that any one party can communicate with any
other party located virtually anywhere. All they need are a common understanding
of a xref:messages/index.adoc[message format], and a means of
transmitting the message.

Transmitting email messages between parties requires a mutually-known protocol. 
It turns out that there are several standard protocols used for the 
transmission of email messages, each with a different purpose:

 ** xref:protocols/smtp.adoc[Simple Mail Transfer]
 ** xref:protocols/pop.adoc[Post Office]
 ** xref:protocols/imap.adoc[Internet Message Access]
 ** xref:protocols/jmap.adoc[JSON Meta Application]
 ** xref:protocols/lmtp.adoc[Local Mail Transfer]

=====================================================
== File: docs/modules/concepts/pages/protocols/pop.adoc
=====================================================
= Post Office Protocol (POP)
:navtitle: POP

== Overview

The https://en.wikipedia.org/wiki/Post_Office_Protocol[Post Office Protocol], 
or POP, is described in the original specification
as being &quot;a simple method for workstations to dynamically access mail from 
a xref:storage/index.adoc[mailbox server]&quot; (though interestingly &quot;mailbox server&quot; 
is never actually defined in this specification nor in later specifications. ??)

POP was proposed as the first non-xref:protocols/smtp.adoc[SMTP] protocol aimed
at users for the purpose of retrieving emails stored remotely for local consumption.
POP was developed in pre-spam days, so was inherently a non-secure protocol.
It has been updated several times to address several issues, including lack of
security, so that POP3 is now the current specification.

As the name suggests, the protocol is modeled after a post office. The analogy being:

 * The various SMTP servers along the transmission chain are like post offices
 * The user's mail server is the local post office that will dispatch the mail to the recipient
 * The postman is, ummm, well no analogy is perfect ??
 * The mail gets dropped into the user's mailbox (though just to make the analogy even 
    muddier there is an option to leave a copy on the server)

Analogies aside, the protocol worked quite well for most users, and is still widely
in use today.

POP requires essentially two pieces, the POP Client and the POP Server. How the
message gets initially delivered to the POP Server and how a message is managed
once delivered to the POP Client is out of scope of the POP protocol.


== Specifications

=== POP

POP has been around since the early days of email. The original specification
&lt;&lt;RFC918&gt;&gt; was published in 1984. 


==== RFC918

https://tools.ietf.org/html/rfc918[RFC918] (&quot;Post Office Protocol&quot;) was the original
specification published in 1984. The RFC &quot;suggests a simple method for workstations 
to dynamically access mail from a mailbox server.&quot;
Like xref:protocols/smtp.adoc[SMTP] that came before it, POP is a session-based
protocol with a handful of defined commands.
This RFC was obsoleted shortly after its publication by &lt;&lt;RFC937&gt;&gt;.


=====================================================
== File: docs/modules/concepts/pages/protocols/esmtp.adoc
=====================================================
= SMTP Service Extensions (ESMTP)
:navtitle: ESMTP

== Overview

https://en.wikipedia.org/wiki/Extended_SMTP[SMTP Service Extensions], written as &quot;ESMTP&quot;
and characterized in the literature as &quot;Extended SMTP&quot; (and sometimes &quot;Enhanced SMTP&quot;)
is a framework for extending SMTP. Extensions are expected to be registered with
IANA and negotiated between the client and server.

Whereas SMTP mandates that a session begins with the &quot;HELO&quot; command, ESMTP requires
the &quot;EHLO&quot; (extended hello) command. Note that nowadays even &quot;standard&quot; SMTP uses
EHLO as its initial greeting, and only falls back to HELO, so in a sense every
SMTP server has effectively become an ESMTP server.

The ESMTP specification itself no longer actually exists independently of SMTP.
We mention it here mostly for completion, historical purposes, and as a reference 
to a concept that is still very much in use, albeit now as a concept internal to
SMTP.


== Specifications

=== RFC1425

https://tools.ietf.org/html/rfc1425[RFC1425] (&quot;SMTP Service Extensions&quot;) is the originally
published ESMTP specification. It was obsoleted by &lt;&lt;RFC1651&gt;&gt;.


=== RFC1651

https://tools.ietf.org/html/rfc1651[RFC1651] (&quot;SMTP Service Extensions&quot;) obsoletes &lt;&lt;RFC1425&gt;&gt;
and was itself obsoleted by &lt;&lt;RFC1869&gt;&gt;.


=== RFC1869

https://tools.ietf.org/html/rfc1869[RFC1869] (&quot;SMTP Service Extensions&quot;) obsoletes &lt;&lt;RFC1651&gt;&gt;, and
is essentially the final specification in which ESMTP was defined separately from SMTP. When this
spec was obsoleted by xref:protocols/smtp.adoc#RFC2821[RFC2821], it was incorporated into the
SMTP specification.
 

== Related Concepts

 * *xref:protocols/smtp.adoc[SMTP]*, because ESMTP defines an extension framework for SMTP
 * *xref:protocols/lmtp.adoc[LMTP]*, as LMTP is defined by the ESMTP framework


=====================================================
== File: docs/modules/concepts/pages/protocols/lmtp.adoc
=====================================================
= Local Mail Transfer Protocol (LMTP)
:navtitle: LMTP

== Overview

https://en.wikipedia.org/wiki/Local_Mail_Transfer_Protocol[Local Mail Transfer Protocol] (&quot;LMTP&quot;)
is

From &lt;&lt;RFC2033&gt;&gt;:

   Although LMTP is an alternative protocol to ESMTP, it uses (with a
   few changes) the syntax and semantics of ESMTP.  This design permits
   LMTP to utilize the extensions defined for ESMTP.  LMTP should be
   used only by specific prior arrangement and configuration, and it
   MUST NOT be used on TCP port 25. 


== Specifications

=== RFC2033

https://tools.ietf.org/html/rfc2033[RFC2033] (&quot;Local Mail Transfer Protocol&quot;) was published
in 1996, and defines a simplified protocol for local mail delivery mainly inspired by
xref:protocols/esmtp.adoc[ESMTP]. It is the first, last, and only specification of its kind.


== Related Concepts

LMTP relates to:

 * *xref:protocols/esmtp.adoc[ESMTP]*, as it is a derivative thereof


=====================================================
== File: docs/modules/concepts/pages/user/index.adoc
=====================================================
= James User Model
:navtitle: User Model


For clarity, we have defined various roles for actors who interact
with xref:servers:index.adoc[James servers] in one way or another.
The deliverables we make available are produced with these roles in mind.
Note that any given person may play more than one role, even at the same
time.

 * &lt;&lt;User&gt;&gt;
 * &lt;&lt;Operator&gt;&gt;
 * &lt;&lt;Integrator&gt;&gt;
 * &lt;&lt;Developer&gt;&gt;
 * &lt;&lt;Contributor&gt;&gt;
 * &lt;&lt;Committer&gt;&gt;
 * &lt;&lt;PMC Member&gt;&gt;

== User

A **User** simply uses email without any notion of what server is providing the service.

More precisely, in typical cases a User will have an email client for reading and writing email. The
xref:glossary.adoc[email client] will connect to the James server via
xref:protocols/smtp.adoc[SMTP],
xref:protocols/pop.adoc[POP], or
xref:protocols/imap.adoc[IMAP].
The User will have no indication anywhere that the server is a James server.


== Operator

An **Operator** installs and runs James for the benefit of Users.

The Operator does not compile any Java code, and does not require any software
development environment. 

Apache James offers Operators a range of servers for various use cases, including:
 * A xref:servers:basic/index.adoc[Basic Server] ideal for busy Operators who
   are interested in an easy-to-use self-hosting solution, but who may not have the
   time to gain deep expertise
 * An xref:server/advanced/index.adoc[Advanced Server] well-suited for Operators with
   advanced skills and resources who are not daunted by getting their hands dirty
   with configurations or using built-in extensions



== Integrator 

An **Integrator** has some expertise with Java or a JVM-based language. Based 

=====================================================
== File: docs/modules/concepts/pages/processing/index.adoc
=====================================================
= Mail Processing Domain Model
:navtitle: Processing

(TODO)


=====================================================
== File: docs/modules/concepts/pages/glossary.adoc
=====================================================
= Glossary

[[email_client]]
Email Client::
Any software application that acts as a POP Client or an IMAP Client.

xref:messages/imf.adoc[IMF]::
*Internet Message Format* (IMF) is the base specification that defines the
syntax of an email message.

[[email_server]]
Email Server (or Mail Server)::
Any host that contains a software application that acts as a POP Server, an
IMAP Server, or an MTA.

IMAP::

IMAP Client::
One of the main actors in an email system that implements the IMAP protocol. The client
acts as a slave, in that it mirrors the state of the IMAP Server.

IMAP Server::
One of the main actors in an email system that implements the IMAP protocol. The server
acts as the master, in that it dictates the state that will be seen on each of the
IMAP Clients.

JMAP::

xref:messages/mime.adoc[MIME]::
*Multipurpose Internet Mail Extension* (MIME) is a specification that extends
IMF, defining most of the &quot;advanced&quot; features of email.

[[mta]]
MTA::
A *Mail Transfer Agent* (MTA) is a host that is capable of providing a mail
transport service compliant with the SMTP protocol.

MUA::
A *Mail User Agent* (MUA) is either an agent that hands over a message to an initial
MTA on the originating side of a transmission, or receives the message from the
final MTA on the terminating side of a transmission. It is in some respects similar to
an MTA, but is local in scope and does not necessarily follow a known specification.

xref:protocols/smtp.adoc[SMTP]::
*Simple Mail Transfer Protocol* (SMTP) is a protocol that specifies how to transmit
a valid email message from one MTA to another.

[[open_relay]]
Open Relay::


=====================================================
== File: docs/modules/concepts/pages/index.adoc
=====================================================
= Apache James Core Concepts
:navtitle: Concepts

The core domain of Apache James is intimately related to email communications.
Therefore this section is divided into topics that deal with the various
aspect of email systems.

 * &lt;&lt;emails&gt;&gt;
 * &lt;&lt;protocols&gt;&gt;
 * &lt;&lt;mailbox&gt;&gt;
 * &lt;&lt;processing&gt;&gt;

[#emails]
== Email Messages

Electronic Mail (often written as &quot;e-mail&quot; or &quot;email&quot;) is a means of
exchanging messages over a data network. In our context, it is obvious
that we mean &quot;electronic mail&quot; and not &quot;postal mail&quot;, so we usually just
write &quot;mail&quot;.

xref:mail/index.adoc[Email messages] are based on a few specifications
that are not easy to digest, so we make an effort to provide a simplified
model.




[#protocols]
== Transmission Protocols

Emails are only useful because people can communicate with each other.
To allow for this, obviously there must be a means of transmitting messages
from one user to another. A number of different protocols have emerged to
handle the various different requirements of using email in a practical 
manner. The most common xref:protocols/index.adoc[transmission protocols]
are SMTP, POP, and IMAP. More recently JMAP is an interesting protocol
that merits attention.





[#mailbox]
== Mailbox and Email Storage

Email would not be very useful if, like in https://www.youtube.com/watch?v=0TiqXFssKMY[Mission Impossible], 
a message would self-destruct immediately after being read.
For those of us who are not secret agents, we generally prefer to keep
a record of those messages that we receive. For this reason we need a means
of xref:storage/index.adoc[storing messages].

=====================================================
== File: docs/modules/ROOT/nav.adoc
=====================================================
* Apache James Reference Documentation

=====================================================
== File: docs/modules/ROOT/pages/index.adoc
=====================================================
= Welcome

Welcome to the Apache James Reference Documentation! These documents are for version {page-version} of James.

Apache James is a flexible email platform that provides out-of-the-box mail servers that you can start
using in production immediately.
James runs on the JVM and is highly customizable.

This Reference Book is divided into the following Parts:

* xref:james-project:concepts:index.adoc[James Core Concepts]
**    These are the core concepts that describe what James is all about.
    Start here if you want to learn more about what James can do
    and how it is designed.
* xref:james-project:servers:index.adoc[James Servers]
**    We provide a few out-of-the-box servers that you can 
    choose from depending on your needs. Start here if you just
    want to get up and running quickly with a working production-grade mail server.
* xref:james-project:customization:index.adoc[Customization]
**    Shows how you can customize any James server with the 
    functionalities that you need.
    Check out this section if you have special business or technical
    needs and are interested in a custom solution.
* xref:james-project:development:index.adoc[James Developer Guide]
**    A guide aimed at experienced developers, describing 
    how you can assemble your own specialized server.
* xref:james-project:community:index.adoc[James Community]
**    All about the Apache James community, and how you can be 
    part of this active and dynamic group, too!

Please note that this Reference Documentation is a **living document**. It is subject to change. You are currently reading version {page-version}. If you find anything that is unclear, unfinished, or confusing, please do not hestiate to xref:james-project:community:index.adoc[lend us a hand].

=====================================================
== File: docs/modules/development/nav.adoc
=====================================================
* xref:index.adoc[]
** xref:logging.adoc[]

=====================================================
== File: docs/modules/development/pages/deployment-tests.adoc
=====================================================
= How to run deployment Tests
:navtitle: Deployment tests

We wrote some MPT (James' Mail Protocols Tests subproject) deployment tests to validate a James
deployment.

It uses the External-James module, that uses environment variables to locate a remote
IMAP server and run integration tests against it.

For that, the target James Server needs to be configured with a domain `domain` and a user `imapuser`
with password `password`. Read above documentation to see how you can do this.

You have to run MPT tests inside docker. As you need to use maven, the simplest option is to
use james/parent image, and override the entry point ( as git and maven are already configured
there ) :

    $ export JAMES_ADDRESS=127.0.0.1
    $ export JAMES_IMAP_PORT=143
    $ export JAMES_SMTP_PORT=25

    $ mvn -T 1C -DskipTests -pl org.apache.james:apache-james-mpt-external-james -am install
    $ mvn -T 1C -pl org.apache.james:apache-james-mpt-external-james test -Pintegration-tests

Where :

* JAMES_IP: IP address or DNS entry for your James server
* JAMES_IMAP_PORT: Port allocated to James' IMAP port (should be 143).
* JAMES_SMTP_PORT: Port allocated to James' SMTP port (should be 25).



=====================================================
== File: docs/modules/development/pages/logging.adoc
=====================================================
= Logging in Apache James

NOTE: This information targets developers.

Logging is very important when running a software.
Most of the time people use logs for debugging and troubleshooting issues in production.
In Apache James we leverage a logging facade for logging http://www.slf4j.org/[Slf4j] .
Please see the documentation for exact details.

In a typical application logs are stored for a specific period.
This can be 1 day, 1 week, etc.

Some other typical scenarios include:

* Rotating logs periodically.
* Shipping logs centrally.
* Saving some logging messages to other files / end devices

By leveraging a logging facade like Slf4j, the end user has the ability to use different logging back ends and achieve the above requirements.

Logging is something we do to help the people running our code.
We also help ourselves when they encounter bugs, and they need to share information with us for a fix.
As developers, we should be mindful of the logging statements.
We should also be mindful about the performance implications of logging and not abuse it.

== Loggers used in code

You can define a logger using a string or a class.
For common loggers it's ok to use a string name.

[source,java]
--
    private static final Logger LOGGER = LoggerFactory.getLogger(&quot;org.apache.james.CONFIGURATION&quot;);
    private static final Logger LOGGER = LoggerFactory.getLogger(JamesServerMain.class);
--

Loggers can be hierarchical.
This helps when we build a logger from a class name, and we use package structure to drive the logger hierarchy.

The most useful loggers should to be documented below.
Please maintain this list of loggers.

org.apache.james.CONFIGURATION:: It is used to log events related to configuration loading and updating.

=====================================================
== File: docs/modules/development/pages/index.adoc
=====================================================
= Apache James Developer Guide
:navtitle: Developer Guide

(TODO)


=====================================================
== File: docs/modules/community/nav.adoc
=====================================================
* xref:index.adoc[]
** xref:mailing-lists.adoc[]
** xref:contributing.adoc[]
** xref:guidelines.adoc[]
** xref:download.adoc[]
** xref:website.adoc[]
** xref:release.adoc[]
** xref:support.adoc[]
** Apache Software Foundation
*** https://www.apache.org/[ASF]
*** https://www.apache.org/foundation/getinvolved.html[Get involved]
*** https://www.apache.org/foundation/faq.html[FAQ]
*** https://www.apache.org/licenses/[Licenses]
*** https://www.apache.org/security/[Security]
*** https://www.apache.org/foundation/sponsorship.html[Sponsorship]
*** https://www.apache.org/foundation/thanks.html[Thanks]

=====================================================
== File: docs/modules/community/pages/support.adoc
=====================================================
= Professional support

Here is a list of companies which can provide you some support on James.

== Baechler Craftsmanship

mailto:matthieu@baechler-craftsmanship.fr[*Baechler Craftsmanship*] has a very strong knowledge both on email and James. The company is
run by a long-time contributor and PMC of James which contributed significant enhancements
over the years.

The company is committed to contribute to James and offers consultancy for companies willing
to use James on their own infrastructure and/or need enhancements to fit their own needs.

Free Software is a core value of the company and it can also help customers to work with
James community in an efficient and positive way.

== Linagora

image::linagora.png[link=https://linagora.com]

*Linagora* is an Open Source Software Company.

Their mission is to bring digital independence to their customers.

They are focused on large organizations both from private and public sector. They have set themselves the goal of
helping Governments to achieve their digital sovereignty.

*Linagora* can offer professional services related to James: support, feature development or project integration.

=====================================================
== File: docs/modules/community/pages/website.adoc
=====================================================
= Building and publishing the website

The source code of website https://james.apache.org[james.apache.org] is located in src/homepage.
Here are the instructions how to publish new changes to the website.

1. Install Apache Maven 3.0.2+ and make its binary 'mvn' available on your PATH.
See http://maven.apache.org/download.html#Installation.
2. run &quot;mvn clean site&quot;
3. Test the built site in your browser from the {path}/target/site folder
4. If everything looks OK, deploy the site using &quot;mvn clean site-deploy&quot;.
5. Wait for the changes to replicate to the Apache web server or setup 140.211.11.10:80 as
a proxy to review the changes (described here: http://www.apache.org/dev/project-site.html)

To deploy the technical reports use the &quot;-Psite-reports&quot; profile.

For wagon-ssh-external configuration see
http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html

You can alternatively use a docker container to build the website :

You need to build the homepage by:

    $ docker build -t james/homepage src/homepage-docker
    $ docker run -v $PWD:/origin -v $PWD/site:/destination james/homepage master

In order to test the homepage, you can use this command:

    $ docker run --rm -v $PWD/site:/srv/jekyll  -p 4000:4000 -it jekyll/minimal:3.8.3 jekyll serve

the site will be available at http://localhost:4000/

Then you build the other pages by:

    $ docker build -t james/site src/site-docker
    $ docker run -v $PWD/.m2:/root/.m2 -v $PWD:/origin -v $PWD/site:/destination james/site master

If you need to update the current site, checkout the branch asf-site from Apache git:

    $ git clone https://git-wip-us.apache.org/repos/asf/james-site.git
    $ cd james-site
    $ git checkout origin/asf-site -b asf-site

And replace in the previous commands `$PWD/site` by `&lt;james-site-clone-directory&gt;/content`, for example:

    $ docker run -v $PWD:/origin -v $PWD/../james-site/content:/destination james/homepage master
    $ docker run -v $PWD/.m2:/root/.m2 -v $PWD/../james-site/content:/origin -v $PWD/site:/destination james/site master

Then just push the new site:

    $ cd ../james-site

=====================================================
== File: docs/modules/community/pages/guidelines.adoc
=====================================================
= Apache James Project guidelines
:navtitle: Guidelines

This document defines the guidelines for the Apache James Project. It includes definitions of how conflict is being
resolved by voting and who is able to vote.

The objective here is to avoid unnecessary conflicts over changes and continue to produce a quality system in a timely
manner. Not all conflict can be avoided, but at least we can agree on the procedures for conflicts to be resolved.

== People, Places, and Things

=== Apache James Project Management Committee

The group of volunteers who are responsible for managing the Apache James Project. This includes deciding what is
distributed as products of the Apache James Project, maintaining the Project's shared resources, speaking on behalf of
the Project, resolving license disputes regarding Apache James products, nominating new PMC members or committers,
and establishing these guidelines.

Membership in the Apache James PMC is by invitation only and must be approved by consensus of the active Apache James
PMC members. A PMC member is considered inactive by their own declaration or by not contributing in any form to the
project for over six months. An inactive member can become active again by reversing whichever condition made them
inactive (i.e., by reversing their earlier declaration or by once again contributing toward the project's work).
Membership can be revoked by a unanimous vote of all the active PMC members other than the member in question.

=== Apache James Committers

The group of volunteers who are responsible for the technical aspects of the Apache James Project. This group has write
access to the appropriate source repositories and these volunteers may cast non-binding votes on any technical discussion.

Membership as a Committer is by invitation only and must be approved by consensus of the active Apache James PMC members.
A Committer is considered inactive by their own declaration or by not contributing in any form to the project for over
six months. An inactive member can become active again by reversing whichever condition made them inactive (i.e., by
reversing their earlier declaration or by once again contributing toward the project's work). Membership can be revoked
by a unanimous vote of all the active PMC members (except the member in question if they are a PMC member).

=== Mailing list

The Apache committers' primary mailing list for discussion of issues and changes related to the project
(xref:mailing-lists.adoc#_server_developer_list[server-dev@james.apache.org]). Subscription to the list is open, but
only subscribers can post directly to the list.

=== Private list

The Apache James Project's private mailing list for discussion of issues that are inappropriate for public discussion,
such as legal, personal, or security issues prior to a published fix. Subscription to the list is only opened to Apache
James PMC members and Apache Software Foundation Members.

Topics to be discussed on the private mailing list:

 - Discussion of board reports. PMC members need to report quarterly project activity to the Apache board of directors,

=====================================================
== File: docs/modules/community/pages/download.adoc
=====================================================
= Download Apache James releases
:navtitle: Download releases

https://james.apache.org/download[Download Apache James releases]

=====================================================
== File: docs/modules/community/pages/mailing-lists.adoc
=====================================================
= Mailing lists

Please read the &lt;&lt;_guidelines&gt;&gt; below before subscribing to our lists and join our community.

== James mailing lists

Most James mailing lists are open and also archived and available online.
You can read them even if you are not subscribed. 
You can post only if you are subscribed.

=== Mailing list archives and web browsing

You can browse the mailing list archives online using the https://lists.apache.org/list.html?james.apache.org[Pony Mail] instance.

=== Server user list

*Low traffic*
mailto:server-user-subscribe@james.apache.org[Subscribe]
mailto:server-user-unsubscribe@james.apache.org[Unsubscribe]
link:++https://lists.apache.org/list.html?server-user@james.apache.org++[Archive]

This is the list where users of the Apache James (Server) meet and discuss issues. Developers are also expected to be
subscribed to this list to offer support to users of Apache James (Server).

=== Server developer list

*Medium traffic*
mailto:server-dev-subscribe@james.apache.org[Subscribe]
mailto:server-dev-unsubscribe@james.apache.org[Unsubscribe]
link:++https://lists.apache.org/list.html?server-dev@james.apache.org++[Archive]

This is the list where participating developers of the Apache James Project meet and discuss issues, code changes/additions,
etc. Do not send mail to this list with usage questions or configuration problems -- that's what server-user@james is for.

=== Mime4j

*Medium traffic*
mailto:mime4j-dev-subscribe@james.apache.org[Subscribe]
mailto:mime4j-dev-unsubscribe@james.apache.org[Unsubscribe]
link:++https://lists.apache.org/list.html?mime4j-dev@james.apache.org++[Archive]

Discussions on the http://james.apache.org/mime4j[Mime4j] parser library.

=== James general list

*Low traffic*
mailto:general-subscribe@james.apache.org[Subscribe]
mailto:general-unsubscribe@james.apache.org[Unsubscribe]
link:++https://lists.apache.org/list.html?general@james.apache.org++[Archive]


=====================================================
== File: docs/modules/community/pages/release.adoc
=====================================================
= Creating an official Apache James release

Read details about http://www.apache.org/dev/publishing-maven-artifacts.html[Publishing Maven releases to Maven Central Repository]

In short, just follow the 'standard' process:

* prepare pom for release
* publish snapshot
* prepare release
* stage the release for a vote (don't forget to close the staging repository)
* vote
* release

Don't forget to add your key to https://downloads.apache.org/james/KEYS

    $ ssh people.apache.org
    $ cd /www/www.apache.org/dist/james

== Release cheat sheet

First, discuss your intention to perform a release on server-dev mailing list, to ensure a consensus would be reached
before starting this time-consuming process.

Then you can prepare the release materials:

 * Ensure the `CHANGELOG.md` and `upgrade-instructions.md` files are up to date.
 * Freeze your version in it and initiate a new iteration.
 * Write a blog post within `/src/homepage/_post` about your release.
 * Update the documentation website `/docs`, `src/site`, and `README.md` to point to your new release.
 * Update the `/dockerfiles`

Open a pull request to validate the changes.

=== Running a maven release

Once merged, it is time for the maven release.

Set up your maven configuration in `~/.m2/settings.xml` :

[source,bash]
----
&lt;settings&gt;
  &lt;servers&gt;
    &lt;server&gt;
      &lt;id&gt;apache.snapshots.https&lt;/id&gt;
      &lt;username&gt;apacheId&lt;/username&gt;
      &lt;password&gt;xxxxxx&lt;/password&gt;
    &lt;/server&gt;
    &lt;!-- To stage a release of some part of Maven --&gt;
    &lt;server&gt;

=====================================================
== File: docs/modules/community/pages/index.adoc
=====================================================
= Apache James Community
:navtitle: Community

Apache James Project is an Open Source all-volunteer project obtaining its strength from its Community made of
developers and users. All are welcome to the Community!

== Join the community

There are many ways for Users, Developers, Curious and Fans to join and be part of the James Community:

 * https://james.apache.org/[Apache James Website]
 * xref:mailing-lists.adoc[Mailing lists]: Subscribe to the appropriate Mailing Lists according to your interests and profile.
 * https://gitter.im/apache/james-project[Gitter chat room]: Chat in live with the community on Gitter.
 * https://twitter.com/ApacheJames[Twitter]: Express yourself and follow us @ApacheJames.
 * https://github.com/apache/james-project[GitHub]: Read and contribute to the source code of the project.
 * https://issues.apache.org/jira/projects/JAMES[JIRA]: Report issues or make suggestions for the project on our bug tracker.
 * https://builds.apache.org/job/ApacheJames/[CI]: Check the status of James builds on our Jenkins CI.
 * xref:download.adoc[Download releases]: Download artifacts and sources your need for the James Server and James libraries.
 * xref:support.adoc[Professional support]: Find a list of companies which can provide you some support on James.

== Contribute

James is a project that lives from the contributions of its community. *Anyone can contribute!*

That's right, we always want to hear from people with contributions to the code, the documentation, the website,
and bug reports. We more than welcome non-coding contributions.

You can find more information on how to contribute to the James project on the xref:contributing.adoc[contributing] section.

== Articles for contributors

** xref:website.adoc[]
** xref:release.adoc[]

== The Apache Software Foundation

James is a project belonging to the https://www.apache.org/[Apache Software Foundation [ASF\]]. Thus, the Apache Jame project
is governed by a number of xref:guidelines.adoc[guidelines] directly depending on the *ASF*.

If you wish to get more involved with the *ASF* community in general, those links might interest you as well:

 * https://www.apache.org/foundation/getinvolved.html[Get involved with the ASF]
 * https://www.apache.org/foundation/faq.html[Apache FAQ]
 * https://www.apache.org/licenses/[Apache Licenses]
 * https://www.apache.org/security/[The Apache security team]
 * https://www.apache.org/foundation/sponsorship.html[Sponsorship program]
 * https://www.apache.org/foundation/thanks.html[Sponsors list]

=====================================================
== File: docs/modules/community/pages/contributing.adoc
=====================================================
= Contributing

This document defines the different ways available for contributing to the Apache James project.

To keep you informed on James issues, subscribe to the relevant xref:mailing-lists.adoc[mailing lists].

== Be involved in the community

An easy start is to be involved in the community.

Share your experiences with James, your needs, your enhancements proposition via the
xref:mailing-lists.adoc[mailing lists], on https://gitter.im/apache/james-project[Gitter], or on our
https://issues.apache.org/jira/projects/JAMES/issues[Bug Tracker].

Don't hesitate to write articles and blog posts. Use your preferred media to spread the love!

== Reporting bugs

Many improvements come as a direct result of bug reports.

To report a bug, please use the appropriate Bug Tracker JIRA link according to the project you want to address:

* https://issues.apache.org/jira/browse/JAMES[Server]
* https://issues.apache.org/jira/browse/MAILET[Mailet]
* https://issues.apache.org/jira/browse/MAILBOX[Mailbox]
* https://issues.apache.org/jira/browse/PROTOCOLS[Protocols]
* https://issues.apache.org/jira/browse/MPT[MPT]
* https://issues.apache.org/jira/browse/MIME4J[Mime4j]
* https://issues.apache.org/jira/browse/JSIEVE[jSieve]
* https://issues.apache.org/jira/browse/JSPF[jSPF]
* https://issues.apache.org/jira/browse/JDKIM[jDKIM]

Once you are logged on the appropriate JIRA page, click on the red Create button, then complete the different fields
as accurately as possible, so that any user can reproduce the reported bug. Also, note that all your information must be
readable (use markdown).

Then, you have to click on Create to submit your bug.

=== Reporting security vulnerabilities

http://www.apache.org/security/[Security vulnerabilities] should be announced to the Apache Security team.
PMCs will be notified about them, and will work hard to propose fixes as fast as possible.

Specific details about security in James can be found here.

== Documentation

Documentation is an easy way to get on board! Check out the
link:https://issues.apache.org/jira/issues/?jql=project%20%3D%20JAMES%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20documentation%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC[~documentation]
label on JIRA to get some ideas.

=====================================================
== File: docs/antora.yml
=====================================================
name: james-project
title: Apache James Server
version: '3.8.1'
prerelease: SNAPSHOT
nav:
- modules/concepts/nav.adoc
- modules/servers/nav.adoc
- modules/customization/nav.adoc
- modules/development/nav.adoc
- modules/community/nav.adoc

=====================================================
== File: testing/base/src/main/resources/logback-test.xml
=====================================================
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration&gt;
        &lt;appender name=&quot;FILE&quot; class=&quot;ch.qos.logback.core.FileAppender&quot;&gt;
                &lt;file&gt;target/test-run.log&lt;/file&gt;
                &lt;append&gt;false&lt;/append&gt;
                &lt;!-- set immediateFlush to false for much higher logging throughput --&gt;
                &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;!-- encoders are assigned the type
                     ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --&gt;
                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} [%-5level] %logger{35} - %msg%n%rEx&lt;/pattern&gt;
                &lt;/encoder&gt;
        &lt;/appender&gt;


        &lt;appender name=&quot;CONSOLE&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&gt;
                &lt;encoder&gt;
                        &lt;pattern&gt;%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx&lt;/pattern&gt;
                &lt;/encoder&gt;
                &lt;immediateFlush&gt;false&lt;/immediateFlush&gt;
                &lt;!-- Disable below block for debug logs mode--&gt;
                &lt;filter class=&quot;ch.qos.logback.classic.filter.ThresholdFilter&quot;&gt;
                        &lt;level&gt;ERROR&lt;/level&gt;
                &lt;/filter&gt;
        &lt;/appender&gt;

        &lt;root level=&quot;WARN&quot;&gt;
                &lt;appender-ref ref=&quot;CONSOLE&quot; /&gt;
                &lt;appender-ref ref=&quot;FILE&quot; /&gt;
        &lt;/root&gt;
        &lt;logger name=&quot;org.apache.james&quot; level=&quot;DEBUG&quot; /&gt;
        &lt;logger name=&quot;org.testcontainers&quot; level=&quot;DEBUG&quot;/&gt;
        &lt;logger name=&quot;org.apache.james.metrics&quot; level=&quot;INFO&quot;/&gt;
&lt;/configuration&gt;

=====================================================
== File: testing/base/src/main/resources/testcontainers.properties
=====================================================
checks.disable = false
</pre></div></section>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">Copyright &#169;                    2006-2024
                        <a href="https://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
                
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
