<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-clayton-dkim2-spec-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="DKIM2 Signtures">DomainKeys Identified Mail Signatures v2 (DKIM2)</title>

    <author initials="R." surname="Clayton" fullname="Richard Clayton">
      <organization>Yahoo</organization>
      <address>
        <email>rclayton@yahooinc.com</email>
      </address>
    </author>
    <author initials="W." surname="Chuang" fullname="Wei Chuang">
      <organization>Google</organization>
      <address>
        <email>weihaw@google.com</email>
      </address>
    </author>
    <author initials="B." surname="Gondwana" fullname="Bron Gondwana">
      <organization>Fastmail Pty Ltd</organization>
      <address>
        <postal>
          <street>Level 2, 114 William Street</street>
          <code>3000</code>
          <country>Australia</country>
        </postal>
        <phone>+61 457 416 436</phone>
        <email>brong@fastmailteam.com</email>
      </address>
    </author>

    <date year="2025" month="August" day="27"/>

    
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 60?>

<t>DomainKeys Identified Mail v2 (DKIM2) permits a person, role, or
organization that owns a signing domain to document that it has
handled an email message by associating their domain with the
message.  This is achieved by applying a cryptographic
signature to the message. Verification is performed by querying an entry
within the signing domain's DNS space to retrieve an appropriate public
key. As a message is transferred from author to recipient further signatures
will be added to provide a validatable "chain". This permits validators
to identify when messages have been unexpectedly "replayed" and can ensure that
delivery status notifications are only sent to entities that were
involved in the transmission of a message.</t>



    </abstract>



  </front>

  <middle>


<?line 74?>

<section anchor="introduction"><name>Introduction</name>

<t>DomainKeys Identified Mail v2 (DKIM2) permits a person, role, or
organization to document that they have handled an email message by
associating a domain name <xref target="RFC1034"></xref> with the message <xref target="RFC5322"></xref>. A
public key signature is used to record that they have been able
to read the contents of the message and write to it.</t>

<t>Verification of claims is achieved by fetching a public key stored
in the DNS under the relevant domain and then checking the signature.</t>

<t>Message transit from author to recipient is through
Forwarders that typically make no substantive change to the message
content and thus preserve the DKIM2 signature. Where they do make
a change the changes they have made are documented so that
these can be "undone" and the original signature validated.</t>

<t>When a message is forwarded from one system to another an
additional DKIM2 signature is added on each occasion. This chain
of custody assists validators in distinguishing between messages that
were intended to be sent to a particular email address and those
that are being "replayed" to that address.</t>

<t>The chain of custody can also be used to ensure that delivery status
notifications are only sent to entities that were involved in the
transmission of a message.</t>

<t>Organizations that process a message can add to their signature
a request for feedback as to any opinion (for example, that it
was considered to be spam) that the eventual recipient of the message
wishes to share.</t>

<section anchor="dkim2-architecture-documents"><name>DKIM2 Architecture Documents</name>

<t>Readers are advised to be familiar with the material in TBA, TBA and TBA
which provide the background for the development of DKIM2, an overview
of the service, and deployment and operations guidance and advice.</t>

</section>
</section>
<section anchor="terminology-and-definitions"><name>Terminology and Definitions</name>

<t>This section defines terms used in the rest of the document.</t>

<t>DKIM2 is designed to operate within the Internet Mail service, as
defined in <xref target="RFC5598"></xref>.  Basic email terminology is taken from that
specification.</t>

<t>DKIM2 inherits many ideas from DKIM (<xref target="RFC6376"></xref>) which, for clarity
we refer to in this specification as DKIM1.</t>

<t>Syntax descriptions use Augmented BNF (ABNF) <xref target="RFC5234"></xref>.</t>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
<xref target="RFC2119"></xref>.  These words take their normative meanings only when they
are presented in ALL UPPERCASE.</t>

<section anchor="forwarder"><name>Forwarder</name>

<t><xref target="RFC5598"></xref> defines a Relay as transmitting or retransmitting a message
but states that it will not modify the envelope information or the
message content semantics. It also defines a Gateway as a hybrid of
User and Relay that connects heterogeneous mail services, In this
document we use the concept of a Forwarder which is an MTA that receives
a message and then either delivers it into a destination mailbox or
forwards it on to another system in an automated, pre-determined, manner.</t>

<t>As will be seen, Forwarders may alter message content or envelopes
but will create a signed record of what they have done.</t>

</section>
<section anchor="signers"><name>Signers</name>

<t>Elements in the mail system that sign messages on behalf of a domain
are referred to as Signers.  These may be MUAs (Mail User Agents),
MSAs (Mail Submission Agents), MTAs (Mail Transfer Agents), or other
agents such as mailing list "exploders".  In general, any Signer will
be involved in the injection of a message into the message system in
some way.  The key point is that a message must be signed before it
leaves the administrative domain of the Signer.</t>

</section>
<section anchor="verifiers"><name>Verifiers</name>

<t>Elements in the mail system that verify signatures are referred to as
Verifiers.  These may be Forwarders, MTAs, Mail Delivery Agents (MDAs), or MUAs.
It is an expectation of DKIM2 that a recipient of a message will
wish to verify some or all signatures before determining whether or
not to accept the message or pass it on to another entity.</t>

</section>
<section anchor="signing-domain"><name>Signing Domain</name>

<t>A domain name associated with a signature. This domain may be
associated with the author of an email, their organization, a
company hired to deliver the email, a mailing list operator, or
some other entity that handles email. What they have in common is
that at some point they had access to the entire contents of the
email and were in a position to add their signature to the email.</t>

</section>
<section anchor="whitespace"><name>Whitespace</name>

<t>There are two forms of whitespace used in this specification:</t>

<t><list style="symbols">
  <t>WSP represents simple whitespace, i.e., a space or a tab character
(formal definition in <xref target="RFC5234"></xref>).</t>
  <t>FWS is folding whitespace.  It allows multiple lines separated by
CRLF followed by at least one whitespace, to be joined.</t>
</list></t>

<t>The formal ABNF for these are (WSP given for information only):</t>

<figure><artwork><![CDATA[
WSP =   SP / HTAB
FWS =   [*WSP CRLF] 1*WSP
]]></artwork></figure>

<t>The definition of FWS is identical to that in <xref target="RFC5322"></xref> except for
the exclusion of obs-FWS.</t>

</section>
<section anchor="imported-abnf-tokens"><name>Imported ABNF Tokens</name>

<t>The following tokens are imported from other RFCs as noted.  Those
RFCs should be considered definitive.</t>

<t>The following tokens are imported from <xref target="RFC5321"></xref>:</t>

<t><list style="symbols">
  <t>"local-part" (implementation warning: this permits quoted strings)</t>
  <t>"sub-domain"</t>
</list></t>

<t>The following tokens are imported from <xref target="RFC5322"></xref>:</t>

<t><list style="symbols">
  <t>"field-name" (name of a header field)</t>
</list></t>

<t>Other tokens not defined herein are imported from <xref target="RFC5234"></xref>.  These
are intuitive primitives such as SP, HTAB, WSP, ALPHA, DIGIT, CRLF,
etc.</t>

</section>
<section anchor="common-abnf-tokens"><name>Common ABNF Tokens</name>

<t>The following ABNF tokens are used elsewhere in this document:</t>

<figure><artwork><![CDATA[
ALPHADIGITPS =  (ALPHA / DIGIT / "+" / "/")
base64string =  ALPHADIGITPS *([FWS] ALPHADIGITPS)
                [ [FWS] "=" [ [FWS] "=" ] ]
]]></artwork></figure>

</section>
</section>
<section anchor="protocol-elements"><name>Protocol Elements</name>

<t>Protocol Elements are conceptual parts of the protocol that are not
specific to either Signers or Verifiers.  The protocol descriptions
for Signers and Verifiers are described in later sections ("Signer
Actions" (<xref target="signer-actions"/>) and "Verifier Actions" (<xref target="verifier_actions"/>).
NOTE: This section must be read in the context of those sections.</t>

<section anchor="selectors"><name>Selectors</name>

<t>To support multiple concurrent public keys per signing domain, the
key namespace is subdivided using "selectors".</t>

<t>Periods are allowed in selectors and are component separators. Periods in
selectors define DNS label boundaries in a manner similar to the
 conventional use in domain names.  This will allow portions of
the selector namespace to be delegated.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
selector = sub-domain *( "." sub-domain )
]]></artwork></figure>

<t>The number of public keys and corresponding selectors for each domain
is determined by the domain owner.  Many domain owners will be
satisfied with just one selector, whereas administratively
distributed organizations can choose to manage disparate selectors
and key pairs in different regions or on different email servers.</t>

<t>Beyond administrative convenience, selectors make it possible to
seamlessly replace public keys on a routine basis.  If a domain
wishes to change from using a public key associated with selector
"january2026" to a public key associated with selector
"february2026", it merely makes sure that both public keys are
advertised in the public key repository concurrently for the
transition period during which email may be in transit prior to
verification.  At the start of the transition period, the outbound
email servers are configured to sign with the "february2026" private
key.  At the end of the transition period, the "january2026" public
key is removed from the public key repository.</t>

<t>INFORMATIVE NOTE: A key may also be revoked as described below.
   The distinction between revoking and removing a key selector
   record is subtle.  When phasing out keys as described above, a
   signing domain would probably simply remove the key record after
   the transition period.  However, a signing domain could elect to
   revoke the key (but maintain the key record) for a further period.
   There is no defined semantic difference between a revoked key and
   a removed key.</t>

</section>
<section anchor="tagvaluelists"><name>Tag=Value Lists</name>

<t>DKIM2 uses a simple "tag=value" syntax in several contexts, including
in messages and domain signature records (see <xref target="DKIMKEYS"></xref>).</t>

<t>Values are a series of strings containing either plain text or "base64"
text (as defined in <xref target="RFC2045"></xref>, Section 6.8). The name of the tag will
determine the encoding of each value.  Unencoded semicolon (";")
characters MUST NOT occur in the tag value, since that separates tag-specs.</t>

<t>INFORMATIVE IMPLEMENTATION NOTE: Although the "plain text" defined
   below (as "tag-value") only includes 7-bit characters, an
   implementation that wished to anticipate future standards would be
   advised not to preclude the use of UTF-8-encoded (<xref target="RFC3629"></xref>) text
   in tag=value lists.</t>

<t>Formally, the ABNF syntax rules are as follows:</t>

<figure><artwork><![CDATA[
tag-list  =  tag-spec *( ";" tag-spec ) [ ";" ]
tag-spec  =  [FWS] tag-name [FWS] "=" [FWS] tag-value [FWS]
tag-name  =  ALPHA *ALNUMPUNC
tag-value =  [ tval *( 1*(WSP / FWS) tval ) ]
                  ; Prohibits WSP and FWS at beginning and end
tval      =  1*VALCHAR
VALCHAR   =  %x21-3A / %x3C-7E
                  ; EXCLAMATION to TILDE except SEMICOLON
ALNUMPUNC =  ALPHA / DIGIT / "_"
]]></artwork></figure>

<t>Note that WSP is allowed anywhere around tags.  In particular, any
WSP after the "=" and any WSP before the terminating ";" is not part
of the value; however, WSP inside the value is significant.</t>

<t>Tags MUST be interpreted in a case-sensitive manner.  Values MUST be
processed as case sensitive unless the specific tag description of
semantics specifies case insensitivity.</t>

<t>Tags with duplicate names MUST NOT occur within a single tag-list; if
a tag name does occur more than once, the entire tag-list is invalid.</t>

<t>Whitespace within a value MUST be retained unless explicitly excluded
by the specific tag description.</t>

<t>Tag=value pairs that represent the default value MAY be included to
aid legibility.</t>

<t>Unrecognized tags MUST be ignored.</t>

<t>Tags that have an empty value are not the same as omitted tags.  An
omitted tag is treated as having the default value; a tag with an
empty value explicitly designates the empty string as the value.</t>

</section>
<section anchor="algorithms"><name>Signing and Verification Algorithms</name>

<t>DKIM2 supports multiple digital signature algorithms.  Two algorithms
are defined by this specification: RSA-SHA256 and Ed25519-SHA256.
Signers SHOULD implement both RSA-SHA256 and Ed25519-SHA256. Verifiers MUST
implement both RSA-SHA256 and Ed25519-SHA256.</t>

<section anchor="the-rsa-sha256-signing-algorithm"><name>The RSA-SHA256 Signing Algorithm</name>

<t>The RSA-SHA256 Signing Algorithm computes a message hash as described
in <xref target="computing-hashes"/> using SHA-256 (FIPS-180-4-2015) as the hash-alg.  That
hash is then signed by the Signer using the RSA algorithm (defined in
PKCS#1 version 1.5 <xref target="RFC8017"></xref>) as the crypt-alg and the Signer's
private key.  The hash MUST NOT be truncated or converted into any
form other than the native binary form before being signed.  The
signing algorithm SHOULD use a public exponent of 65537.</t>

<t>Signers MUST use RSA keys of at least 1024 bits.  Verifiers MUST be able
to validate signatures with keys ranging from 1024 bits to 2048 bits, and
they MAY be able to validate signatures with larger keys.</t>

</section>
<section anchor="the-ed25519-sha256-signing-algorithm"><name>The Ed25519-SHA256 Signing Algorithm</name>

<t>The Ed25519-SHA256 signing algorithm computes a message hash as
defined in Section 3 of <xref target="RFC6376"></xref> using SHA-256 (FIPS-180-4-2015) as
the hash-alg.  It signs the hash with the PureEdDSA variant Ed25519,
as defined in Section 5.1 of <xref target="RFC8032"></xref>.</t>

</section>
<section anchor="other-algorithms"><name>Other Algorithms</name>

<t>Other algorithms MAY be defined in the future.  Verifiers MUST ignore
any signatures using algorithms that they do not implement.</t>

</section>
</section>
<section anchor="canonicalization"><name>Canonicalization</name>

<t>Some mail systems modify email in transit, potentially invalidating a
signature. DKIM2 provides a method of documenting such changes as
they occur. However, in order to reduce the necessity to document minor
changes to header fields DKIM2 uses an algorithm for computing header
hashes which permits minor changes. This is identical to the "relaxed"
algorithm of DKIM1 (<xref target="RFC6376"></xref>). For the body no modifications are
permitted (equivalent to the DKIM1 "relaxed" algorithm.</t>

<t>Canonicalization simply prepares the email for presentation to the
signing or verification algorithm.  It MUST NOT change the
transmitted data in any way.  Canonicalization of header fields and
body are described below.</t>

<t>NOTE: This section assumes that the message is already in "network
normal" format (text is ASCII encoded, lines are separated with CRLF
characters, etc.).  See also <xref target="signer_normalize"/> for information about
normalizing the message.</t>

<section anchor="header-canonicalization"><name>The Header Canonicalization Algorithm</name>

<t>All header fields present in a message are signed, with the exception
of Trace Header Fields. "Trace headers" are described in <xref target="RFC5321"></xref> and
<xref target="RFC5322"></xref> and documented in an IANA registry established by <xref target="RFC3864"></xref>.
At present the only header fields designated as "Trace" are Received
and Return-path.</t>

<t>The header canonicalization algorithm MUST apply the
following steps in order:</t>

<t><list style="symbols">
  <t>Ignore any trace header fields that are present.</t>
  <t>Convert all header field names (not the header field values) to
lowercase.  For example, convert "SUBJect: AbC" to "subject: AbC".</t>
  <t>Unfold all header field continuation lines as described in
<xref target="RFC5322"></xref>; in particular, lines with terminators embedded in
continued header field values (that is, CRLF sequences followed by
WSP) MUST be interpreted without the CRLF.  Implementations MUST
NOT remove the CRLF at the end of the header field value.</t>
  <t>Convert all sequences of one or more WSP characters to a single SP
character.  WSP characters here include those before and after a
line folding boundary.</t>
  <t>Delete all WSP characters at the end of each unfolded header field
value.</t>
  <t>Delete any WSP characters remaining before and after the colon
separating the header field name from the header field value.  The
colon separator MUST be retained.</t>
  <t>Place the header fields in alphabetical order by the header field
name, except for any header fields that start "DKIM2" which are
placed last.</t>
  <t>If there is more than one header with the same header field name
then the header fields are placed in the order in which they occur
in the email header. It is sometimes suggested that some MTAs re-order
header fields after they receive an email, if they do then it is their
responsibility to recover the original order of any header fields
with identical header field names (that are part of a signature calculation)
before verifying an existing signature or passing a previously signed
message to another MTA that is going to wish to verify a signature.</t>
  <t>The DKIM2 header fields are placed at the end of the list of header
fields to be signed, ordered first by their "i=" value (in ascending
numerical order) and then by their header field name.</t>
</list></t>

<t>Note that the special rules for ordering DKIM2 header fields are intended
to assist systems that wish to pre-calculate a hash value for all the
other header fields and then finish off with the actual DKIM2 headers
that they will be adding.</t>

</section>
<section anchor="the-body-canonicalization-algorithm"><name>The Body Canonicalization Algorithm</name>

<t>The body canonicalization algorithm MUST apply the
following steps in order:</t>

<t><list style="symbols">
  <t>Ignore all whitespace at the end of lines.  Implementations
MUST NOT remove the CRLF at the end of the line.</t>
  <t>Reduce all sequences of WSP within a line to a single SP
character.</t>
  <t>Ignore all empty lines at the end of the message body. An empty line is
a line of zero length after removal of the line terminator. If there is
no body or no trailing CRLF on the message body, a CRLF is added.</t>
</list></t>

<t>Note that a completely empty or missing body is canonicalized as a
single "CRLF"; that is, the canonicalized length will be 2 octets.</t>

</section>
</section>
<section anchor="hfDKIM2signature"><name>The DKIM2-Signature Header Field</name>

<t>The signature of the email is stored in the DKIM2-Signature header
field.  This header field contains all of the signature and key-
fetching data.  The DKIM2-Signature value is a tag-list as described
in <xref target="tagvaluelists"/>.</t>

<t>The DKIM2-Signature header field SHOULD be treated as though it were a
trace header field as defined in Section 3.6 of <xref target="RFC5322"></xref> and hence
SHOULD NOT be reordered and SHOULD be prepended to the message.</t>

<t>The DKIM2-Signature header field being created or verified is always
included in the signature calculation, after the rest of the header
fields being signed; however, when calculating or verifying the
signature, the value of the "b=" tag (signature value) of that DKIM-
Signature header field MUST be treated as though it were an empty
string.  Unknown tags in the DKIM2-Signature header field MUST be
included in the signature calculation.</t>

<t>Tags on the DKIM2-Signature header field along with their type,
encoding and requirement status are shown below. It will be noted that we
have not included a version number.  Experience from IMF onwards shows
that it is essentially impossible to change version numbers.
If it becomes necessary to change DKIM2 in the sort of incompatible way that
a v=2 / v=3 version number would support, it is expected that header
fields will be labelled as DKIM3 instead.</t>

<t>i= The sequence number of the DKIM2-Signature header field.</t>

<figure><artwork><![CDATA[
plain-text unsigned decimal integer; REQUIRED
]]></artwork></figure>

<t>The originator of a message uses the
value 1. Further DKIM2-Signature header fields are added with a value one
more than the current highest numbered DKIM2-Signature header field. Gaps
in the numbering MUST be treated as making the whole message unsigned.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
sig-i-tag    = %x69 [FWS] "=" [FWS] 1*2DIGIT
]]></artwork></figure>

<t>n=  Nonce value</t>

<figure><artwork><![CDATA[
plain-text unsigned decimal integer; OPTIONAL
]]></artwork></figure>

<t>This value, if present, has a meaning to the creator of the signature
but MUST NOT be assumed to have any meaning to any other entity. It
MAY be used as an index into a database to assist in handling Delivery
Status Notifications or for any other purpose.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
sig-n-tag    = %x6e [FWS] "=" [FWS] 1*(DIGIT)
]]></artwork></figure>

<t>t=  Signature Timestamp</t>

<figure><artwork><![CDATA[
plain-text unsigned decimal integer; REQUIRED
]]></artwork></figure>

<t>The time that this header field was created.  The format
is the number of seconds since 1970-01-01T00:00:00 UTC. This value
is not constrained to fit into a 31- or 32-bit integer.
Implementations SHOULD be prepared to handle values up to at least
10^12 (until approximately AD 200,000; this fits into 40 bits).
Implementations MAY ignore signatures that have a timestamp in the future.
Implementations MAY ignore signatures that are more than 14 days old.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
sig-t-tag    = %x74 [FWS] "=" [FWS] 1*12DIGIT
]]></artwork></figure>

<t>mf= The <xref target="RFC5321"></xref> MAIL FROM value to be used when this message is transmitted
    over an SMTP link from the signing MTA.</t>

<figure><artwork><![CDATA[
plain-text; REQUIRED
]]></artwork></figure>

<t>Note that MAIL FROM may be just "&lt;&gt;", for example for a Delivery Status Notification.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
sig-mf-tag = %x6d %65 [FWS] "="
             [FWS] "<" [ local-part "@" domain-name ] ">"
]]></artwork></figure>

<t>rt= The <xref target="RFC5321"></xref> RCPT TO value(s) to be used when this message is transmitted
    over an SMTP link from the signing MTA.</t>

<figure><artwork><![CDATA[
plain-text; REQUIRED
]]></artwork></figure>

<t>When a message is intended for more than one recipient then this field MAY include
all of the recipients so that a single copy of the email MAY be sent to all of
the recipients in a single SMTP transaction. Note that if "bcc:" recipients are
involved then in order to meet the requirements of <xref target="RFC5322"></xref> Section 3.6.3 each
bcc recipient MUST be sent a message with just their email address appearing
in this tag.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
sig-rt-tag = %72 %x74 [FWS] "="
             1*( [FWS] "<" local-part "@" domain-name ">" )
]]></artwork></figure>

<t>d=  The domain associated with this signature.</t>

<figure><artwork><![CDATA[
plain-text; REQUIRED
]]></artwork></figure>

<t>This domain is used to form the query for the public key. The domain MUST be a valid DNS
name under which the DKIM2 key record is published. Internationalized domain
names MUST be encoded as A-labels, as described in Section 2.3 of <xref target="RFC5890"></xref>.</t>

<t>The domain in the d= tag MUST exactly match the rightmost labels of the domain-name part
of the mf= tag. That is to say, the domain-name of the mf= tag MUST either match the
d= domain exactly or be a sub-domain of d= domain.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
sig-d-tag   = %x64 [FWS] "=" [FWS] domain-name
domain-name = sub-domain 1*("." sub-domain)
                         ; from [RFC5321] Domain,
                         ; excluding address-literal
]]></artwork></figure>

<t>s1= The selector subdividing the namespace for the "d=" (domain) tag.</t>

<figure><artwork><![CDATA[
plain-text; REQUIRED
]]></artwork></figure>

<t>Internationalized selector names MUST be encoded as A-labels, as
described in Section 2.3 of <xref target="RFC5890"></xref>.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
sig-s-tag = %x73 %x31 [FWS] "=" [FWS] selector
]]></artwork></figure>

<t>a1= The algorithm used to generate the signature.</t>

<figure><artwork><![CDATA[
plain-text; REQUIRED
]]></artwork></figure>

<t>Verifiers MUST support "rsa-sha256" and "ed25519"; See <xref target="algorithms"/> for a
description of the algorithms.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
sig-a-tag     = %x61 %x31 [FWS] "=" [FWS] sig-a-tag-alg
sig-a-tag-alg = sig-a-tag-k "-" sig-a-tag-h
sig-a-tag-k   = "rsa" / "ed25519" / x-sig-a-tag-k
sig-a-tag-h   = "sha256" / x-sig-a-tag-h
x-sig-a-tag-k = ALPHA *(ALPHA / DIGIT)
                         ; for later extension
x-sig-a-tag-h = ALPHA *(ALPHA / DIGIT)
                         ; for later extension
]]></artwork></figure>

<t>b1= The signature data.</t>

<figure><artwork><![CDATA[
base64; REQUIRED
]]></artwork></figure>

<t>Whitespace is ignored in this value and MUST be ignored when reassembling the original
signature.  In particular, the signing process can safely insert
FWS in this value in arbitrary places to conform to line-length
limits.  See "Signer Actions" (<xref target="signer-actions"/>) for how the signature is computed.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
sig-b-tag      = %x62 %x31 [FWS] "=" [FWS] sig-b-tag-data
sig-b-tag-data = base64string
]]></artwork></figure>

<t>bh1=  The hash of the canonicalized body part of the message.</t>

<figure><artwork><![CDATA[
base64; REQUIRED
]]></artwork></figure>

<t>Whitespace is ignored in this value and MUST be ignored when reassembling the original
signature.  In particular, the signing process can safely insert
FWS in this value in arbitrary places to conform to line-length
limits.  See <xref target="computing-hashes"/> for how the body hash is computed.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
sig-bh-tag      = %x62 %x68 %x31 [FWS] "=" [FWS] sig-bh-tag-data
sig-bh-tag-data = base64string
]]></artwork></figure>

<t>s2=, a2= b2= bh2= Further signatures (equivalent to s1, a1, b2 and bh1)</t>

<figure><artwork><![CDATA[
plain text / base64; OPTIONAL
]]></artwork></figure>

<t>To provide for algorithmic dexterity a second signature, using a
different algorithm MAY be supplied. A verifier MUST check all
signatures that it understands and SHOULD treat any failure as
invalidating all signatures.</t>

<t>f=  Flags</t>

<figure><artwork><![CDATA[
plain text; OPTIONAL
]]></artwork></figure>

<t>Flags serve two purposes; they either report what has been done to
the message by the system creating the DKIM2-Signature or they make
a request to systems that handle the mail thereafter. Flags are
separated by commas, and optional white-space allows systems to
add several flags without creating long lines.</t>

<t>If a flag value is not recognised it MUST be ignored.</t>

<t>The flag values that report things are:</t>

<t>"exploded": this message (identified by its unique header hash value (recorded
in b1= and perhaps b2=)) is being sent to more than one email address. An
MTA which receives a message MAY use this information to help it distinguish
between malicious "DKIM replay" and legitimate activity performed by
mailing lists.</t>

<t>"modifiedbody": the body of the message has been altered in some way. A
corresponding DKIM2-Delta-Body MUST be present with the same i= value
as defined in <xref target="ALGEBRA"></xref>. This flag MUST
NOT be present when i=1;</t>

<t>"modifiedheader": the header of the message has been altered in some way. A
corresponding DKIM2-Delta-Header must be present with the same i= value
as defined in <xref target="ALGEBRA"></xref>. This flag MUST
NOT be present when i=1;</t>

<t>The flags values that make requests are:</t>

<t>"donotexplode": this signer requests that the message not be sent to more
than one recipient. A system that, by local policy, ignores this request
MUST NOT allow any of the copies it creates to be forwarded on to any
MTA outside its control.</t>

<t>"donotmodify": this signer requests that the message not be modified from
the form in which it is sent. A system that, by local policy, ignores this
request MUST NOT allow the message to be forwarded on to any
MTA outside its control.</t>

<t>"feedback": this signer requests feedback about how this message is handled
during delivery and thereafter. This document does not describe what such
feedback might be or where it might be delivered. If this flag is absent
then feedback is explicitly not required.</t>

<t>ABNF:</t>

<figure><artwork><![CDATA[
sig-f-tag = %x66 [FWS] "=" [FWS] sig-f-data *("," [FWS] sig-f-tag-data)
sig-f-tag-data   = "modifiedbody" | "modifiedheader" | "exploded" |
                   "donotmodify" | "donotexplode" | "feedback"
x-sig-f-tag-data = ALPHA *(ALPHA / DIGIT)
                         ; for later extension
]]></artwork></figure>

</section>
<section anchor="key_management"><name>Key Management</name>

<t>Signature applications require some level of assurance that the
a public key is associated with the claimed Signer. DKIM2
does this by fetching the key from the DNS for the domain specified
in the d= field. These keys are no different, and are stored in the
same locations as those for DKIM1 (<xref target="RFC6376"></xref>).</t>

<t>All DKIM keys are stored in a subdomain named "_domainkey".  Given a
DKIM2-Signature field with a "d=" tag of "example.com" and an "s1=" tag
of "foo.bar", the DNS query will be for "foo.bar._domainkey.example.com".</t>

</section>
<section anchor="computing-hashes"><name>Computing the Message Hashes</name>

<t>Both signing and verifying message signatures start with a step of
computing two cryptographic hashes over the message.  Signers will
choose the parameters of the signature as described in "Signer
Actions" (<xref target="signer-actions"/>); Verifiers will use the parameters specified in
the DKIM2-Signature header field being verified.  In the following
discussion, the names of the tags in the DKIM2-Signature header field
that either exists (when verifying) or will be created (when signing)
are used.  Note that canonicalization (<xref target="canonicalization"/>) is only used to
prepare the email for signing or verifying; it does not affect the
transmitted email in any way.</t>

<t>For clarity this section will discuss the first pair of signatures
(s1=, a1=, h1=, bh1). If a second pair (s2=, a2=, h2=, bh2=) is
present then that is calculated or verified in an identical manner
except using the "2" values rather than the "1" values.</t>

<t>The Signer/Verifier MUST compute two hashes: one over the body of the
message and one over relevant header fields of the message.</t>

<t>Signers MUST compute them in the order shown.  Verifiers MAY compute
them in any order convenient to the Verifier, provided that the
result is semantically identical to the semantics that would be the
case had they been computed in this order.</t>

<t>In hash step 1, the Signer/Verifier MUST hash the message body,
canonicalized using the body canonicalization algorithm. That hash
value is then converted to base64 form and inserted
into (Signers) or compared to (Verifiers) the "bh1=" tag of the DKIM-
Signature header field.</t>

<t>In hash step 2, the Signer/Verifier MUST pass header fields to the
hash algorithm as specified in <xref target="header-canonicalization"/>.</t>

<t>After these header fields add any DKIM2-Delta-Header header field
(as specified in <xref target="ALGEBRA"></xref> for
the current i= value. This header field has its CRLF included in
the hash in the normal way.</t>

<t>Finally add a canonicalized copy of the DKIM2-Signature header field
that exists (verifying) or will be inserted (signing) in the message,
with the value of the "b=" tag (including all surrounding whitespace)
deleted (i.e., treated as the empty string) without a trailing CRLF.</t>

<t>When calculating the hash on messages that will be transmitted using
base64 or quoted-printable encoding, Signers MUST compute the hash
after the encoding.  Likewise, the Verifier MUST incorporate the
values into the hash before decoding the base64 or quoted-printable
text.  However, the hash MUST be computed before transport-level
encodings such as SMTP "dot-stuffing" (the modification of lines
beginning with a "." to avoid confusion with the SMTP end-of-message
marker, as specified in <xref target="RFC5321"></xref>).</t>

<t>With the exception of the canonicalization procedure described in
<xref target="canonicalization"/>, the DKIM2 signing process treats the body of messages as
simply a string of octets.  DKIM2 messages MAY be either in plain-text
or in MIME format; no special treatment is afforded to MIME content.
Message attachments in MIME format MUST be included in the content
that is signed.</t>

</section>
<section anchor="input-requirements"><name>Input Requirements</name>

<t>A message that is not compliant with <xref target="RFC5322"></xref>, <xref target="RFC2045"></xref>, and
<xref target="RFC2047"></xref> can be subject to attempts by intermediaries to correct or
interpret such content.  See Section 8 of <xref target="RFC6409"></xref> for examples of
changes that are commonly made.  Such "corrections" may invalidate
DKIM2 signatures or have other undesirable effects, including some
that involve changes to the way a message is presented to an end
user.</t>

<t>Accordingly, DKIM2's design is predicated on valid input.  Therefore,
Signers and Verifiers SHOULD take reasonable steps to ensure that the
messages they are processing are valid according to <xref target="RFC5322"></xref>,
<xref target="RFC2045"></xref>, and any other relevant message format standards.</t>

</section>
<section anchor="output-requirements"><name>Output Requirements</name>

<t>The evaluation of each signature ends in one of three states, which
this document refers to as follows:</t>

<t>SUCCESS:  a successful verification</t>

<t>PERMFAIL:  a permanent, non-recoverable error such as a signature
   verification failure</t>

<t>TEMPFAIL:  a temporary, recoverable error such as a DNS query timeout</t>

<t>For each signature that verifies successfully or produces a TEMPFAIL
result, output of the DKIM2 algorithm MUST include the set of:</t>

<t><list style="symbols">
  <t>The domain name, taken from the "d=" signature tag; and</t>
  <t>The result of the verification attempt for that signature.</t>
</list></t>

<t>The output MAY include other signature properties or result meta-
data, including PERMFAILed or otherwise ignored signatures, for use
by modules that consume those results.</t>

<t>See <xref target="verifier_extract"/> for discussion of signature validation result codes.</t>

</section>
</section>
<section anchor="semantics-of-multiple-signatures"><name>Semantics of Multiple Signatures</name>

<t>In DKIM2 a new signature (with an incremented i= value) is added by
every MTA that handles a message. However, if these MTAs are handling
email within an organization then it is only necessary for the MTA
that sends the email outside of that organization to apply a DKIM2
signature.</t>

<t>Verifiers may check the entire chain of signatures to establish that
there is a valid chain from start to finish; however where the chain
shows that the email has not been modified during its travels it will
generally be sufficient to check only the first and last signature.</t>

<t>When there is evidence of "DKIM replay" inspection of the entire
chain will enable the location of the replay to be determined and
appropriate action can then be taken.</t>

<t>Further information about multiple signatures can be found in TBA.</t>

</section>
<section anchor="signer-actions"><name>Signer Actions</name>

<t>The following steps are performed in order by Signers.</t>

<section anchor="document-modifications-made-to-a-message"><name>Document modifications made to a message</name>

<t>MTAs that accept a DKIM2 signed message and send it onward to
another MTA MUST record the changes that they have made to the
message. A scheme for generating appropriate DKIM2-Delta-Header header fields
to describe such modifications can be found in <xref target="ALGEBRA"></xref>.</t>

<t>Note in particular that adding header fields must be documented, with
the exception of trace header fields (such as Received:) that are
not signed.</t>

<t>Failure to record modifications will mean that an MTA that subsequently
handles the message SHOULD detect this and this MAY lead to the message being
rejected.</t>

</section>
<section anchor="determine-what-rfc5321-envelope-will-be-used-for-the-message"><name>Determine what <xref target="RFC5321"></xref> "envelope" will be used for the message</name>

<t>The DKIM2-Signature field contains mf= and rt= values, so the MAIL FROM
and RCPT TO values that will be used when the message is transmitted must
be available to (or deducible by) a Signer or Verifier.</t>

<t>When the message being signed already has a DKIM2-Signature header field (i.e. it has
already been transmitted at least once) then the mf= of the message to be signed MUST
match with an entry in the rt= of currently highest numbered (i=) DKIM2-Signature
header field. If this will not be the case then a Signer MUST generate an extra
DKIM2-Signature field that causes values to match, noting that the creation
of this extra header field will require the Signer to have access to the DKIM2
key value associated with a domain in the rt= entry.</t>

</section>
<section anchor="signer_privatekey"><name>Select a Private Key and Corresponding Selector Information</name>

<t>This specification does not define the basis by which a Signer should
choose which private key and selector information to use.  Currently,
all selectors are equal as far as this specification is concerned, so
the decision should largely be a matter of administrative
convenience.  Distribution and management of private keys is also
outside the scope of this document.</t>

</section>
<section anchor="signer_normalize"><name>Normalize the Message to Prevent Transport Conversions</name>

<t>Some messages, particularly those using 8-bit characters, are subject
to modification during transit, notably conversion to 7-bit form.
Such conversions will break DKIM2 signatures. Hence the message
SHOULD be converted to only contain 7-bit characters, for example by
employing a suitable MIME content-transfer encoding such as quoted-printable or
base64 as described in <xref target="RFC2045"></xref>. The way in which this is achieved is
outside the scope of this specification.</t>

<t>If the message contains local encoding that will be modified before transmission,
that modification to canonical <xref target="RFC5322"></xref> form MUST be done before signing.
In particular, bare CR or LF characters (used by some systems as a local line
separator convention) MUST be converted to the SMTP-standard CRLF
sequence before the message is signed.  Any conversion of this sort
SHOULD be applied to the message actually sent to the recipient(s),
not just to the version presented to the signing algorithm.</t>

<t>More generally, the Signer MUST sign the message as it is expected to
be received by the Verifier rather than in some local or internal
form.</t>

</section>
<section anchor="compute-the-message-hash-and-signaturesigner-compute"><name>Compute the Message Hash and Signature{#signer-compute}</name>

<t>The Signer MUST compute the message hash as described in <xref target="computing-hashes"/>
and then sign it using the selected public key algorithm.  This will
result in a DKIM2-Signature header field that will include the body
hash and a signature of the header hash, where that header includes
the DKIM2-Signature header field itself.</t>

<t>Entities such as mailing list managers that implement DKIM2 and that
modify the message or a header field (for example, inserting
unsubscribe information) before retransmitting the message SHOULD
check any existing signature on input and MUST make such
modifications before re-signing the message.</t>

</section>
<section anchor="signer-insert"><name>Insert the DKIM2-Signature Header Field</name>

<t>Finally, the Signer MUST insert the DKIM2-Signature header field
created in the previous step prior to transmitting the email.  The
DKIM2-Signature header field MUST be the same as used to compute the
hash as described above, except that the value of the "b=" tag MUST
be the appropriately signed hash computed in the previous step,
signed using the algorithm specified in the "a=" tag of the DKIM2-
Signature header field and using the private key corresponding to the
selector given in the "s=" tag of the DKIM2-Signature header field, as
chosen above in <xref target="signer_privatekey"/>}.</t>

<t>The DKIM2-Signature header field MUST be inserted before any other
DKIM2-Signature fields in the header block.</t>

<t>INFORMATIVE IMPLEMENTATION NOTE: The easiest way to achieve this
   is to insert the DKIM2-Signature header field at the beginning of
   the header block before any
   existing Received header fields.  This is consistent with treating
   DKIM2-Signature as a trace header field.</t>

</section>
</section>
<section anchor="verifier_actions"><name>Verifier Actions</name>

<t>A border or intermediate MTA MAY verify the message signature(s).  An
MTA that has performed verification MAY communicate the result of that
verification by adding a verification header field to incoming
messages.  This simplifies things considerably for the user, who can
now use an existing mail user agent.  Most MUAs have the ability to
filter messages based on message header fields or content; these
filters would be used to implement whatever policy the user wishes
with respect to unsigned mail.</t>

<t>A verifying MTA MAY implement a policy with respect to unverifiable
mail, regardless of whether or not it applies the verification header
field to signed messages.</t>

<t>Verifiers MUST produce a result that is semantically equivalent to
applying the steps listed in <xref target="verifier_extract"/>, <xref target="verifier_valheader"/>,
and <xref target="verifier_publickey"/> in order.
In practice, several of these steps can be performed in parallel in
order to improve performance.</t>

<section anchor="verifier_extract"><name>Extract Signatures from the Message</name>

<t>A Verifier SHOULD check the most recently applied (highest numbered
i= value) DKIM2-Signature before accepting an email. If this check
does not pass then a Delivery Status Notification for the email MUST
NOT be generated thereafter -- hence the best strategy, if the email
is not wanted, is to reject it (with a 5xx error code) whilst the
relevant SMTP conversation is till ongoing.</t>

<t>A Verifier that wishes to ascertain whether or not a message has
been modified since it was first created need only check the first (i=1)
DKIM2-Signature.</t>

<t>If the message has been modified since it's original creation then
the DKIM2-Modification header fields (see <xref target="ALGEBRA"></xref>)
will enable a Verifier to determine whether or not all the changes
made are correctly recorded.</t>

<t>For each signature to be validated, the following steps should be
performed in such a manner as to produce a result that is
semantically equivalent to performing them in the indicated order.</t>

<t>Where the status is TEMPFAIL then it may be possible for the
Verifier to determine the validity of the signature at a later
time. If the SMTP conversation is still ongoing then a 4xx
error code SHOULD be used to allow the sending MTA to understand
the situation.</t>

<section anchor="verifier_valheader"><name>Validate the Signature Header Field</name>

<t>Implementers MUST meticulously validate the format and values in the
DKIM2-Signature header field; any inconsistency or unexpected values
MUST cause the header field to be completely ignored and the Verifier
to return PERMFAIL (signature syntax error).  Being "liberal in what
you accept" is definitely a bad strategy in this security context.</t>

<t>Note, however, that this does not include the existence of unknown
tags in a DKIM2-Signature header field, which are explicitly
permitted.</t>

<t>Verifiers MAY return PERMFAIL (signature expired) if it is more than
14 days since the timestamp recorded in the "t=" tag.</t>

</section>
<section anchor="verifier_publickey"><name>Get the Public Key</name>

<t>The public key for a signature is needed to complete the verification
process. Details of key management and representation are described in
<xref target="key_management"/>.  The Verifier MUST validate the key record and MUST
ignore any public key records that are malformed.</t>

<t>NOTE: The use of a wildcard TXT RR that covers a queried DKIM
   domain name will produce a response to a DKIM query that is
   unlikely to be a valid DKIM key record.  This problem is not
   specific to DKIM and applies to many other types of queries.
   Client software that processes DNS responses needs to take this
   problem into account.</t>

<t>When validating a message, a Verifier MUST perform the following
steps in a manner that is semantically the same as performing them in
the order indicated; in some cases, the implementation may
parallelize or reorder these steps, as long as the semantics remain
unchanged:</t>

<t><list style="numbers" type="1">
  <t>The Verifier retrieves the public key as described in <xref target="signer_privatekey"/>
using the algorithm in the "a=" tag, the domain from the "d="
tag, and the selector from the "s=" tag.</t>
  <t>If the query for the public key fails to respond, the Verifier
MAY seek a later verification attempt by returning TEMPFAIL (key
unavailable).</t>
  <t>If the query for the public key fails because the corresponding
key record does not exist, the Verifier MUST return
PERMFAIL (no key for signature).</t>
  <t>If the query for the public key returns multiple key records, the
Verifier can choose one of the key records or may cycle through
the key records, performing the remainder of these steps on each
record at the discretion of the implementer.  The order of the
key records is unspecified.  If the Verifier chooses to cycle
through the key records, then the "return ..." wording in the
remainder of this section means "try the next key record, if any;
if none, return to try another signature in the usual way".</t>
  <t>If the result returned from the query does not adhere to the
format defined in the DKIM key specification <xref target="DKIMKEYS"></xref>, the Verifier MUST ignore
the key record and return PERMFAIL (key syntax error).  Verifiers
are urged to validate the syntax of key records carefully to
avoid attempted attacks.  In particular, the Verifier MUST ignore
keys with a version code ("v=" tag) that they do not implement.</t>
  <t>If the public key data (the "p=" tag) is empty, then this key has
been revoked and the Verifier MUST treat this as a failed
signature check and return PERMFAIL (key revoked).  There is no
defined semantic difference between a key that has been revoked
and a key record that has been removed.</t>
  <t>If the public key data is not suitable for use with the algorithm
and key types defined by the "a=" and "k=" tags in the DKIM-
Signature header field, the Verifier MAY immediately return
PERMFAIL (inappropriate key algorithm). However, these fields
are now deprecated so DKIM2 implementations MAY ignore them
altogether.</t>
  <t>If the "h=" tag exists in the public key record and the hash
algorithm implied by the "a=" tag in the DKIM2-Signature header
field is not included in the contents of the "h=" tag, the
Verifier MUST ignore the key record and return PERMFAIL
(inappropriate hash algorithm).</t>
</list></t>

</section>
<section anchor="compute-the-verification"><name>Compute the Verification</name>

<t>Given a Signer and a public key, verifying a signature consists of
actions semantically equivalent to the following steps.</t>

<t><list style="numbers" type="1">
  <t>Prepare a canonicalized version of the message as is
described in <xref target="computing-hashes"/> (note that this canonicalized version
does not actually replace the original content).</t>
  <t>Based on the algorithm indicated in the "a=" tag, compute the
message hashes from the canonical copy as described in
<xref target="computing-hashes"/>.</t>
  <t>Verify that the hash of the canonicalized message body computed
in the previous step matches the hash value conveyed in the "bh="
tag.  If the hash does not match, the Verifier SHOULD ignore the
signature and return PERMFAIL (body hash did not verify).</t>
  <t>Using the signature conveyed in the "b=" tag, verify the
signature against the header hash using the mechanism appropriate
for the public key algorithm described in the "a=" tag.  If the
signature does not validate, the Verifier SHOULD ignore the
signature and return PERMFAIL (signature did not verify).</t>
  <t>Otherwise, the signature has correctly verified.</t>
</list></t>

</section>
</section>
<section anchor="verifier_communicate"><name>Communicate Verification Results</name>

<t>Verifiers wishing to communicate the results of verification to other
parts of the mail system may do so in whatever manner they see fit.
For example, implementations might choose to add an email header
field to the message before passing it on.  Any such header field
SHOULD be inserted before any existing DKIM2-Signature or pre-existing
authentication status header fields in the header field block.  The
Authentication-Results: header field (<xref target="RFC8601"></xref>) MAY be used for this
purpose.</t>

</section>
<section anchor="verifier_interpret"><name>Interpret Results/Apply Local Policy</name>

<t>It is beyond the scope of this specification to describe what actions
the recipient of an email performs, but mail carrying valid DKIM2
signatures gives the recipient opportunities that unauthenticated
email would not.  Specifically, an authenticated email provides
predictable information by which other decisions can reliably be
managed, such as trust and reputation.  Conversely, it is hard
to assign trust or reputation to unauthenticated email.</t>

<t>In general, modules that consume DKIM2 verification results SHOULD NOT
determine message acceptability based solely on a lack of any
signature or on an unverifiable signature; such rejection would cause
severe interoperability problems.  If an MTA does wish to reject such
messages during an SMTP session (for example, when communicating with
a peer who, by prior agreement, agrees to only send signed messages),
and a signature is missing or does not verify, the handling MTA
SHOULD use a 550/5.7.x reply code.</t>

<t>Where the Verifier is integrated within the MTA and it is not
possible to fetch the public key, perhaps because the key server is
not available, a temporary failure message MAY be generated using a
451/4.7.5 reply code, such as:</t>

<t>451 4.7.5 Unable to verify signature - key server unavailable</t>

<t>Temporary failures such as inability to access the key server or
other external service are the only conditions that SHOULD use a 4xx
SMTP reply code.  In particular, cryptographic signature verification
failures MUST NOT provoke 4xx SMTP replies.</t>

<t>If the email cannot be verified, then it SHOULD be treated the same
as all unverified email, regardless of whether or not it looks like
it was signed.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>TBA</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>TBA</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC1034">
  <front>
    <title>Domain names - concepts and facilities</title>
    <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
    <date month="November" year="1987"/>
    <abstract>
      <t>This RFC is the revised basic definition of The Domain Name System. It obsoletes RFC-882. This memo describes the domain style names and their used for host address look up and electronic mail forwarding. It discusses the clients and servers in the domain name system and the protocol used between them.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="13"/>
  <seriesInfo name="RFC" value="1034"/>
  <seriesInfo name="DOI" value="10.17487/RFC1034"/>
</reference>

<reference anchor="RFC2045">
  <front>
    <title>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</title>
    <author fullname="N. Freed" initials="N." surname="Freed"/>
    <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
    <date month="November" year="1996"/>
    <abstract>
      <t>This initial document specifies the various headers used to describe the structure of MIME messages. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2045"/>
  <seriesInfo name="DOI" value="10.17487/RFC2045"/>
</reference>

<reference anchor="RFC2047">
  <front>
    <title>MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text</title>
    <author fullname="K. Moore" initials="K." surname="Moore"/>
    <date month="November" year="1996"/>
    <abstract>
      <t>This particular document is the third document in the series. It describes extensions to RFC 822 to allow non-US-ASCII text data in Internet mail header fields. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2047"/>
  <seriesInfo name="DOI" value="10.17487/RFC2047"/>
</reference>

<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC3629">
  <front>
    <title>UTF-8, a transformation format of ISO 10646</title>
    <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
    <date month="November" year="2003"/>
    <abstract>
      <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="63"/>
  <seriesInfo name="RFC" value="3629"/>
  <seriesInfo name="DOI" value="10.17487/RFC3629"/>
</reference>

<reference anchor="RFC3864">
  <front>
    <title>Registration Procedures for Message Header Fields</title>
    <author fullname="G. Klyne" initials="G." surname="Klyne"/>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="J. Mogul" initials="J." surname="Mogul"/>
    <date month="September" year="2004"/>
    <abstract>
      <t>This specification defines registration procedures for the message header fields used by Internet mail, HTTP, Netnews and other applications. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="90"/>
  <seriesInfo name="RFC" value="3864"/>
  <seriesInfo name="DOI" value="10.17487/RFC3864"/>
</reference>

<reference anchor="RFC5234">
  <front>
    <title>Augmented BNF for Syntax Specifications: ABNF</title>
    <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
    <author fullname="P. Overell" initials="P." surname="Overell"/>
    <date month="January" year="2008"/>
    <abstract>
      <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="68"/>
  <seriesInfo name="RFC" value="5234"/>
  <seriesInfo name="DOI" value="10.17487/RFC5234"/>
</reference>

<reference anchor="RFC5321">
  <front>
    <title>Simple Mail Transfer Protocol</title>
    <author fullname="J. Klensin" initials="J." surname="Klensin"/>
    <date month="October" year="2008"/>
    <abstract>
      <t>This document is a specification of the basic protocol for Internet electronic mail transport. It consolidates, updates, and clarifies several previous documents, making all or parts of most of them obsolete. It covers the SMTP extension mechanisms and best practices for the contemporary Internet, but does not provide details about particular extensions. Although SMTP was designed as a mail transport and delivery protocol, this specification also contains information that is important to its use as a "mail submission" protocol for "split-UA" (User Agent) mail reading systems and mobile environments. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5321"/>
  <seriesInfo name="DOI" value="10.17487/RFC5321"/>
</reference>

<reference anchor="RFC5322">
  <front>
    <title>Internet Message Format</title>
    <author fullname="P. Resnick" initials="P." role="editor" surname="Resnick"/>
    <date month="October" year="2008"/>
    <abstract>
      <t>This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of "electronic mail" messages. This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, "Standard for the Format of ARPA Internet Text Messages", updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5322"/>
  <seriesInfo name="DOI" value="10.17487/RFC5322"/>
</reference>

<reference anchor="RFC5890">
  <front>
    <title>Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework</title>
    <author fullname="J. Klensin" initials="J." surname="Klensin"/>
    <date month="August" year="2010"/>
    <abstract>
      <t>This document is one of a collection that, together, describe the protocol and usage context for a revision of Internationalized Domain Names for Applications (IDNA), superseding the earlier version. It describes the document collection and provides definitions and other material that are common to the set. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5890"/>
  <seriesInfo name="DOI" value="10.17487/RFC5890"/>
</reference>

<reference anchor="RFC6376">
  <front>
    <title>DomainKeys Identified Mail (DKIM) Signatures</title>
    <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
    <author fullname="T. Hansen" initials="T." role="editor" surname="Hansen"/>
    <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy"/>
    <date month="September" year="2011"/>
    <abstract>
      <t>DomainKeys Identified Mail (DKIM) permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message. This can be an author's organization, an operational relay, or one of their agents. DKIM separates the question of the identity of the Signer of the message from the purported author of the message. Assertion of responsibility is validated through a cryptographic signature and by querying the Signer's domain directly to retrieve the appropriate public key. Message transit from author to recipient is through relays that typically make no substantive change to the message content and thus preserve the DKIM signature.</t>
      <t>This memo obsoletes RFC 4871 and RFC 5672. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="76"/>
  <seriesInfo name="RFC" value="6376"/>
  <seriesInfo name="DOI" value="10.17487/RFC6376"/>
</reference>

<reference anchor="RFC6409">
  <front>
    <title>Message Submission for Mail</title>
    <author fullname="R. Gellens" initials="R." surname="Gellens"/>
    <author fullname="J. Klensin" initials="J." surname="Klensin"/>
    <date month="November" year="2011"/>
    <abstract>
      <t>This memo splits message submission from message relay, allowing each service to operate according to its own rules (for security, policy, etc.), and specifies what actions are to be taken by a submission server.</t>
      <t>Message relay is unaffected, and continues to use SMTP over port 25.</t>
      <t>When conforming to this document, message submission uses the protocol specified here, normally over port 587.</t>
      <t>This separation of function offers a number of benefits, including the ability to apply specific security or policy requirements. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="72"/>
  <seriesInfo name="RFC" value="6409"/>
  <seriesInfo name="DOI" value="10.17487/RFC6409"/>
</reference>

<reference anchor="RFC8601">
  <front>
    <title>Message Header Field for Indicating Message Authentication Status</title>
    <author fullname="M. Kucherawy" initials="M." surname="Kucherawy"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This document specifies a message header field called "Authentication-Results" for use with electronic mail messages to indicate the results of message authentication efforts. Any receiver-side software, such as mail filters or Mail User Agents (MUAs), can use this header field to relay that information in a convenient and meaningful way to users or to make sorting and filtering decisions.</t>
      <t>This document obsoletes RFC 7601.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8601"/>
  <seriesInfo name="DOI" value="10.17487/RFC8601"/>
</reference>


<reference anchor="ALGEBRA">
   <front>
      <title>A method for describing changes made to an email</title>
      <author fullname="Bron Gondwana" initials="B." surname="Gondwana">
         <organization>Fastmail Pty Ltd</organization>
      </author>
      <date day="18" month="June" year="2025"/>
      <abstract>
	 <t>   This memo describes a method for describing the changes made to an
   email during common email modifications, for example those caused by
   mailing lists and forwarders.

   While this is general enough to be used for any changes, it is
   anticipated that this method will normally be used for removing added
   data rather than large complex changes.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-gondwana-dkim2-modification-alegbra-02"/>
   
</reference>


<reference anchor="DKIMKEYS">
   <front>
      <title>Domain Name Specification for DKIM2</title>
      <author fullname="Wei Chuang" initials="W." surname="Chuang">
         <organization>Google</organization>
      </author>
      <date day="7" month="July" year="2025"/>
      <abstract>
	 <t>   The updated DomainKeys Identified Mail (DKIM2) permits an
   organization that owns the signing domain to claim some
   responsibility for a message by associating the domain with the
   message through a digital signature.  This is done by publishing to
   Domain Name Service (DNS) of the domain a public key that is then
   associated to the domain and where messages can be signed by the
   corresponding private key.  Assertion of responsibility is validated
   through a cryptographic signature and by querying the Signer’s domain
   directly to retrieve the appropriate public key.  This document
   describes DKIM2 DNS record format and how to find the record.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-chuang-dkim2-dns-02"/>
   
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC5598">
  <front>
    <title>Internet Mail Architecture</title>
    <author fullname="D. Crocker" initials="D." surname="Crocker"/>
    <date month="July" year="2009"/>
    <abstract>
      <t>Over its thirty-five-year history, Internet Mail has changed significantly in scale and complexity, as it has become a global infrastructure service. These changes have been evolutionary, rather than revolutionary, reflecting a strong desire to preserve both its installed base and its usefulness. To collaborate productively on this large and complex system, all participants need to work from a common view of it and use a common language to describe its components and the interactions among them. But the many differences in perspective currently make it difficult to know exactly what another participant means. To serve as the necessary common frame of reference, this document describes the enhanced Internet Mail architecture, reflecting the current service. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5598"/>
  <seriesInfo name="DOI" value="10.17487/RFC5598"/>
</reference>

<reference anchor="RFC8017">
  <front>
    <title>PKCS #1: RSA Cryptography Specifications Version 2.2</title>
    <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
    <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
    <author fullname="J. Jonsson" initials="J." surname="Jonsson"/>
    <author fullname="A. Rusch" initials="A." surname="Rusch"/>
    <date month="November" year="2016"/>
    <abstract>
      <t>This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm, covering cryptographic primitives, encryption schemes, signature schemes with appendix, and ASN.1 syntax for representing keys and for identifying the schemes.</t>
      <t>This document represents a republication of PKCS #1 v2.2 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
      <t>This document also obsoletes RFC 3447.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8017"/>
  <seriesInfo name="DOI" value="10.17487/RFC8017"/>
</reference>

<reference anchor="RFC8032">
  <front>
    <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8032"/>
  <seriesInfo name="DOI" value="10.17487/RFC8032"/>
</reference>




    </references>

</references>


<?line 1124?>

<section anchor="changes-from-earlier-versions"><name>Changes from Earlier Versions</name>

<t>[[This section to be removed by RFC Editor]]</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAFQUr2gAA+V9a3PbVpbg91v7I27R1dVihmQk+ZXI46mmZTnRxrK1kpxM
yu1NgSRIIgIBBgAlsz3+73ue9wFQsjOV3S+b6k5EEriPc88978dwODRN1uTp
kX1ZrpKs+Cnd1vZ0lhZNNs/SmT1LstxeZosiaTZVWtubQ7v38qfTs8O+SSaT
Kr2BF/EjPUOPmFk5LZIVjDirknkznObJtimL4ew6Wx0O63U6He7vm3ozWWV1
nZXF1XYNz56eXL0yxWY1SasjM0ua9MjcHJkp/LEoq+2RrZuZ2azxh/rIZOvq
yDbVpm4O9/e/3z801+n2tqxmMEzRpFWRNsOXOLepm6SY/ZbkZQFTbGFt6+zI
vm/K6cDWZdVU6byGv7Yr/OODMcmmWZYwv/7XDo2Ff7KiPrIXI3vMO6HveIcX
2XSZVLPol7JaHNlfk2VZ0scUoJof2UrA8I8t/pIV09G0XEUT/AITLDdJsQjG
/yXNwi9p6B/KcpGn4di3abZMbv+xoB86474YwSvF7DYpkmDkF1VZxN/T4K+S
usFB7Xmzta8B5vhLDYBKmyP7Or1Jc3s4sAcHj+wvWZ5nycpe0o/03LScwcgP
9+F4+eOmaPDsxnBQVQJP09frJZ1G79+eHNhHj5/aRwdP7KOHT3rhjiawusU/
5rKYJk1WtC1TlNUqabIbwA58+uLV8cH+w0fuw+H+o8fhh6f+w8HB9+7DwyeH
wYfvnvgBHh8Goz1+eHgQfjj0H777ft99ePLw6RP/4dG+H/q7J/sywPj1Dycv
LsaAn8OXo4VAXW7EqpzBVQNMh7swTPJ0MakYUHivfjr59ZLfmhIayDuzojYm
K+YdcDx+/P13fv79g6fBh4ewATMcDm0ywfOYNsbcc+f9RbfrtFplTW0T/Ksu
i4GtyjwdAMYYQJqkyP5Fi7fNMmlseVvgkzWQg6xY2BnNYJsS/ppuVjAHP5Y1
dpnUZgn3M4cpk4KP3q7Suk4WqZ1sbVLX5TSDoWGYZplmlQ52mzVL/MbIwyNr
r5ZZbeF/yXSZAZbO6P31Ot/iy4mdVtt1Uy6qZL3MpqZWcobLgnGsG+fntHJn
gcPBfhHGPN4fm7Ti8WCxiNkGF4KbgyHi/f69ti/fXNp6nUxpkiptKlwXvgrL
qsp1BRtL7XozyWFBQL5Gdoxg0+3D3HBERT1Pqwpmn1flyjJV4uGm2TpDWM43
FcxeWbelGhaV53YCU81m8CY8DdPdZDP4wt7AJQQSmkzy1PaAcmVFb8Sg0yOW
J8qqNvBmxjixtbfLtNC11XBwsJNJCl9tivQjEPQmneVb26vSNRC5dNaDbc7s
lMBUE5jhxM0szQFTqy2QE1hpbYuycbCGrcNjZQGj1IQiJUI4azKYjdDlNq1S
QPibMsfDFZgThISL2HLuwTdiPF9lM0AuYx4gW6jK2WaKc/3lWN9GbVjalmF0
D3abELsTxWykzfa9kLUPDtHde++FEn0AdDGMPBaQxx8/Is6m5nMHLAGe2F4T
nRtigKFHkhlNMC2BcRawWwBjOCEe5G2VNYTFWQOAja4IPA18LVt17t48beAT
bS1cJiBWOjNyfHhDNsUMsBc/VWme3iQAQwEFztwg2k2X6fRaaIDfKKzkTNZI
aAD05M5LgpdpWZWbxdK8KqtbYNhwoAKX7Rr2kgPerZLrFHDSgmCCUgNSVZga
SG6bShiBlawQMHkN1y6tblLeFUlDfp32F7ifKR/ArKRpTOJGXuokdXBEqwRv
K7ykeAUwrUu+RfBUndLdgiveA/ABM+0psAA3s0VWJHmAEHKj0xlA7BeEZ0Rk
5gIPITEwGIhDdZOucNMJXFEkLklhgJhkeOIwdGuDdPJEagAfUsABW06nCV5J
IS1EZwxiCogB5YzoelZHtAYv9Ay+g1PeZDXhzSRtbtOQ6NDukQzAwwB+oW0A
BCUYgGlJ1WTTTZ5Uct1gXXA0tYCnrAHn8dARtJMUZwlIVsMA1ncAWld8OBmj
uSweIZ/kNc2sFy2gcrZF5cyfpnK2ReXMfVTubUCIZAyg9lPasztmWvJsJmic
BcwCELFKga3VDSICXNp0Nkmm13BCfPxbW66zAufdw9/Tj8lqjSRQOLi5hQfh
NtTAJyp/Hutk1XdUxwJFAL0A8Mbfx5jGAMOqlynNWIMwjdt68ECwbFwBFWmA
wSB8X8ptANHnAugW3mGEZzK7yWo3+zxZZSBpVgHtBOQHbpsjPK9ejAf4L8II
+K+5BXlg6TgkPo4AWACxgAdwz/jVDOXecr2StdPSBkjUSzjpmyy9NbIjpALZ
NB3Q8DNArXK7UkpRAheRcwIknyXFlKkrLn9Km7ZXyHGKMi8XW/rpZToH6NM7
iI1wl+qUWBiMDb8gzOANIfhCVCs8TFmOkg8YnMEJI8xSPH0GFy8ptYEYo/oT
c0O/H9DqaEqa570ImsCF7Au46lO5bk2wfqS5QOoKpit0eVH1c3fBr6kAEoN8
doX4BqcAOEXv4M92771I2B/6ls5qQKcCTAfeAQEMNzxPid7TDhBG4TSIyjjQ
Acx3uS2a5CNCYFplaz4KAB2oJwshsi/evLJ7Y/h3n/cI2sAHIQTIvlDFrG3v
7N3lVW/A/7Vv3tLfFyf/693pxclL/Pvyx/Hr1+4PfsLAh7fvXsvv+Jd/8/jt
2dnJm5f8MnxrW1+djX/tEUqZ3tvzq9O3b8ave263TvRIWJydMH2sgCfhjpJa
9juhozPvRRf6QDIzshLeFJ6VUAenY8EFTVCmrZlkkQyITMrgVMTzCGiwEtzm
u/Pzk4vj8eUJ31/HaI1x6OLQNrEXKZBdojNM3RqSg+BkUVIOvnFUzEw2DdFU
pZXA8EnSBQJrSYXaMrkp6K4iFEQ7QqpZheqCCjuA3itk9NN6ZE8bpup+hT/A
VLe8xsQut5Mqgzs8N+9qYogz2QEtBcYr4GKCYAwwr8pFWqTlBhHaX6F6AFeL
Tsy4E7slDqLi1zRdN0zeHegY44nBFvbsasyzAR1N4XRqk0RSGslKaUYMW5hQ
jUACbEDeCFgAAGVw4MIm5UeUZIX/05MsyyrTFzGAJDGUqkqko7MBHvxwlvJV
x88AwiKt4NBBf1HVowbOPbCBrLVCQIIeX9n2GSBbkSOr6YxpjCkIpk0qaiTg
mIiyAJ7bWJpF8YcRDu1PMJUxJ3lKXEIpIh+DCDX4No7p5YoSJallks8Z+Cx9
EooTZRG+BlggE7iLg3uCvZ69g43vEbkk3BgvcPL+wJxduh8unbHL/YznqT9f
iabnfwSo0CmYhL4BoRTwIGGUwmuRg7Bke6B75SXCF7Q4RC9EvCrJB8S5ebkE
TjPpSBXwn9+Fl4QiBWNLqAA4NDB1CboJ3AgGABHEdZmpeI2Sk3tpBcIS4QGf
3iQFNEtRYMhTODQSdYHvAQJlaIggWiNSv3AuXjwfLCscX3e0N/hsoA6xhBAf
pHEDto/SIywfz4C54EsV6fh44NBejuWQ8PBH5rSRO8rKsFONmMEJbCLxx4OK
zgclIFycLh8hDaODXhJuRcColw/xAGgyXVa4yUgHcX9TIiThEcJIa5C5u1ec
hM+tvz44IuvGcJsjlVSVVYAhyVVJqOBcMR+ipxmSpv08HThrZrh7UYcHwnFC
dRqQFxSs1RpReJnJoQk9YwLPbybxXWBRpqxIPWf4BVvkM2BtvOYRUC+LKAks
HuZdkd1H1ISGT4KxXJ6cEYTrWpVCnKDq6M9G9A/UnlmmR/WkrDO1GJA8Hgvj
bkRaHh3KLyj8khGJhJCKtcLmtkQhaFUzPdRHAjGwLQUdGfONtb9cngMWCuOG
JzIU5oMBBjYbpSMELY+HGAiCwQSVIDQXAjmyljSBFUjTMyecOpEQxaX+iOZ6
9cslq5f5jPFUJ0FKhbw2L2+BnG3yJsNF5MR06xQ0OEKayRanOr54/QqHgGfF
otdYoCB43EW8cBZ8fi+RJYnAJstEaU4F+Zrht4eAWABCFfRDJCiAoNMHaKHN
FJ96Dv+F/3xrf7wav6BvcWP47ftv8Hdc4Qd7gH/zrAFU4HAECmxGm8JqVMlU
iKEpB6gGXVlYhaHz/zjNN6rslZN6CKMwOpyu1mWF4KFNXZUgXte6WQQSGUno
W9pnpo+zak/3ASatkZEABQBIIf1DrZi+rZflJkdiHap0up+bdPTVM8nODj4w
2vXyErY+ROW8Z/cI6ZCIM8CB3iLZOWKkVZPbH5uSbB5NheJnn4epN5MhU5ne
n13KoS4FyH4+GyJJg6UQZSNivCR10tKvMNtbApUMinRVdR+8gniVd89D2oKw
FBIggGxsCHYgNGUr+suz8svzAWHVABFtACL0+Y+gm748/eH0akB4NTBpM+WD
P2bCdM+x008BGIgWpHmd3i6F/kTagqA4TUpTnhNW79EXgO70Hfy39289/Pe3
vT49P0nq9MkjPhZ8Pnr/m733gKkfoi/5tfY/7y0/2Xvei/7+YD+gGnxelU05
LXOr7N6Yzle0SZGa0biA2OWMl2t92ll74BCd+klmF5aTRaRDStcSCvwYobqI
4rJ7CYm7e4vNdYGmZXM0O6jCDkJDj98zY/4C8O/TJ5KPqmHCX33+3KdBezqq
DZ+9kS9/80+PDGiLJ0c2Mg2o7EWmXZGTiDt9FLsAXHi3LOH9aQ6f0eZvrtAA
ukbU9sQZwbwB+QmYoLfl0mVteT2In6Mzg4QGZiK4ss1klqF9ZQZoSVa3Wifs
wQLOYWPlTGw5Quth3e4ZtpLQccOdK1hxI0ZR4mnp6yihulf4wpKFOU8mKSgl
aNBJKrS0ES9mrQV5YIbmQma9BreK5io2dKJyhoZJLwfV6mkiJYUWaxFWdMKg
HLINiBcRwIC5Ewgx6UIMsXhd5Q66559bT+HgMtneqBd+0+crzy5yPMnwLMjf
UsIZ1QAh4rgeFmS5Q7usqDZkBFL9Dbkqm4pY/L5FsduC3Ftso++cbmdqINw1
OUxIsvt9I+xYJxxYIjmoNkcSfr41aOKF+7FBsllGlks0UU6XJaJmgzbyAuVW
eJzlAb8ZgxslzSPJ1Gw8B+EekaJKF3wOFYq5/vvU6eF4u415kW5LsrtF+gef
PMjnKE544JFXAARnkN3qDN1mTQlolqxAjqzzrSXz8TSNzgKNTrYqNw1iIFDM
DLHmNNAtvb1TvADEQvhqRO6SthStyzK935Nik1Tbw/3DJz2xfX/Na/N0Urn3
BrivFcBInB94UdWKPQFpIUYwNBbPAIJNFhgbg0kBEijelqAmeXoBI4voZcRJ
gxRqTTfWzjaViIaAm+IeYz0MRxefDjBO8uaYm8DtBPAcs4pTN0D3lex3phiw
T2TT0O03ESIoA5lni41oGWQXcOpKDCxcyA2AlF21On1azL4weXxS3t2LdLFK
V+WNShB3gnNEZOL0zau3F2fjq9OfTywT/TE9x4YVdkdU6Q0IAC2bHxC/8naE
Q5B4Sk4WZhTqYaHX2K094zUxIpLDTlEH3hcbDBP0JkdJnvxJ62VCqAtwFlwJ
508msEdU6pDUxTEBtyRvAqOdJBN0iaBouBWoEDwYEDRrMhf1YyesYSk/At+A
cx10Qw+mNA1tBBGJdoKAclPsodkJH20SwWs/cZ8QOHF+dplP4Mner6J0AqJa
FB35maYOzok7ILqkBcXWJA4LELGIG18li+c/J/kmta/JTfbpQZMsbvAL1HTr
z2o4B/bEgRakxvXgoef0FHANNnQTE71Bi5AKADXc+QK0C+QQ6IV1RjDyVzC4
vD7KEADRpU5T+16jUUjDo/UJy8YbhXwVLoII7DRdwhYKkbSATCJsSQipbI8F
yZ6hL/aS2ra8CxjI82EAggmj6pPRd/0RIbDK7IQGyYLNJ46dyaWclsQC4THi
ewQVQJF3Bf3Ex5SBbId+rd4zkG2dgltbNeqjF3NTuUgDmIqGAd6Q4aGyIVH0
VTSfLyiyre7e1tOz89cnZydvrsZoutfLm4MctlkIpfHA6SkgcBS6ugQdPNwh
H26fjfF8jDDz0+EEyKTfABr/8OWWnsXuRWQ8bAVDJM3WyFvnGzpsipQjS/Ct
qIGEnuJbE+PSGlACp6Vlo3gEIH539Wr43VAhS/4ajK/60KcN0VIK65CTrDUI
pVeknudbJpOkvgjaVptcUasWDacWWQnBQOYeVD4U5iQrPev5z31QKvCLD+4d
+hrfYV0Dv+JIC6+GuB94mfTZvU8PO4XHfjN+/ebd2fm7N8fuCX4LZ7AN/I1r
OviGDA3fohWgz9/2ZU3df56h1rPMJqj94lt4IdF6gLwY5JqiUAKdMt3g8egf
mPTgm5/Hr49/HF/QT/I3//S3j4cHw4eo0/3t48Pj4dOTOxdw8p/Hr8dnjKVw
1lenr1+eqG3i8uTs9Pjt67dvRG2U7XuQBCrjb6CevykbuSO4GTSOimAPcuWt
GLLIxQqwq9l47Z33ZL82BAWk+nxHnnOQA8ql+IvYQulu0t3nQBo89ox1dhxP
/bJ0Os/sUnkELYpsHP5nYmzIOVDKIJ8pEGKhBy2nGmkQUyBhwzolRkQxGwWL
zkIa5T0j7nhmy/iO9e9sipwsiSjIOOUUKE2gcqJW4dxU+lQqI8EWZCw249KC
SYCZbdY5CktMMDtUTRy+yDyKRZ66e/XMZnOT0BoI5Wcl0nV6ZcXgRqc3iciB
7dPdSjR1FRTVQbEmzjDppmNAK0gBmAkRfYEDujOAKqHUSDYwoCdG1JO7wMOb
FtLCOoH4yMTMKf77eQLKrE4//pUPlKdAmSDJZhaUM7h+OUPyXYHMD5DhXynj
qMeDRYExTAptMSxzZF+6WjdbmUWsDrx6NqHbEr2aqUP6cWGCbzjkL03Eawtj
asxTtPxnNhHGh2b4woRzBgBkN794S1NZmRhuktpjfWz89yYN8Z6P80VZwUwr
FEMS98HJIGIrCCy5s2yRNVEAkn8NtefbMvjCsNVk7jXRjuXaXlyOh5c/jg8f
P6HlncwOHz8++F6+Ghm1xohT3bE9VmHufzkw3+Dxmj/1MgLuAckkwXMKSAc3
Vtrve4LMGpsmDSN2QKJeRmI0CmufPvGT8PYQH0jrz59Fa4Sxhzj43qvT88vh
wXf7w0fDw/2Dx309a3x+CHAn+0XSGJqA/HZp4bx028D1JgM3vHh/ZHbPS2rm
/KfjywcH6LUic/XB6DEJbxh2/MFNTaG3OLcLUuMZ/l4b0aks61RXsk5PrCYo
6m+KacIGA9bRK6bAHJ+EBjk1bRNxakhGJOo6AaZQkQK6UnbBQV+8X57RqLLg
dyiYhOKNU6vhZrHlCRjKk8ePHz7FcBLBPFouPo2AYgvA3HsqDvYPH1lk68ga
InSjGF2Jw9QgvdDdRzecxgN1Z4FrJEXRDYhMGuTk7+gDx4eQj0roW8LWiruH
Bk67ALDhDAEyx1h+F0K3nuoC8W6kDgOJVL5/iCBzkT5fgdSmhdSn7NX3yO71
+HPY8cnsJZzNTVJlGGAqix+YWO/QxTweHehyMGb+gwCHnQKeIKqbwFMzhXww
Ji6ABezu8TMnMSjRBEcjZiA/qA/fnZXEURyVEt9AUpQFOpc0HvnTg2nrKyDX
l+jIDNzltcbMsFHEW1wGdl2iJzOjoFhh5xKlbAKnL9N/CZzjYwaVhswh6mSg
u4beDo1w5XPbskQx8io7Ghkp3oWidmebKYtlRYqSE7lvgxBrjDCrjAuaLSPn
TW1D3bgIEJKixpR+yjuGyaiYoNT5RBPomkcus6DlxEsxdjRPPqaznvGziNP/
IIxbG2FcAYcWYgBpUdow44NNazw3Ura99I8NUMVc4kMbiSg+8NP5TQECdE5f
rCgg/oAA7Lg/njFCQKQiF7jeBBQQfg6NbME0dL8cVfahy8aFaqGnMGkSjhba
SpRIZ20AnfiwkGYRUGLvidisdnk3krrerFJ/K8JY5iRHnwcire0VaXNbVtec
MJT32Bvc2D0yOMCz48vj01MrWutA/M+4Cu+DJgqCjjgTatfok4MjBWqRsuFN
vTi/8VQgMQJbbvuVk0m5aYw+oZzVx/Eq9f2RwdOBnJcWPj1gEA53XPJxnrcA
rFJwFoZ90zaJBw48mWRFD9Mj4JSuKhTbZTGvaKiR7fG3PEHd63q8nN+XztX7
t9m45CLZOaLsdPxmTCZ7EEqBCtWYlMLmCZBD3kteFtDecWNDUZ6MH/EenahL
cjOvkld3wZFyM8PxekC4iuE6aZbiypZh2oAMiAbhPKUREbp7dyuQ0HXt6BY7
l0+JnhP+NwGkdJnOFynb4TiJYxZpKNQnfF70tj1VIaLfSHKv+2LNRMW6Qn0Q
sPJVGKUt4pLtXb578T/h/hzZ8eSY3AXoS//dfcMreVdgsEZ3IWjLy4oNg0bu
SSuoFF26etrPECqhLs+vMJ6Jpo6OlXQFL8/c+zIL+dg7O4VrS0ETNTvG4Y7+
sUHTah0GhxgO2ejv1NhxerRPIyhxCCRpkYFMNAAYA0lcYIOmCZOOub+7yu55
+mViIEdBATWkRqP5ITA5kv9GNPHLc4KG/jiy7YfFna9mOPSYiXBL5hEymJCx
HeHu4m/E/bnlRb5M87QhZ2t79HijZD3dEF60DgYnCHatA4pxJhiwQt5TcEJH
a5XsmM45a1bIrlLGzlXwTpIdkGdJnrAIbbrOO9yxNPBqz8ll1x6LHcP5eplM
UubzLJOIWtTePS5qEITu0OZ33Hj2UPVILOmJpIEcH4Yg1+EM5PBaiMEp4RY7
FUJ7i5vdUWuyKHSAJP6RYsfeiPDwfCKW8u7QDUNr8oKZmmyd4MAjUYw0cmKQ
JJtsRe7CBUhIZL5YaqwcRbVW6ZBGx5Fay9CT32oYcxAMmM2dnEu7yCS0NM3E
/4TO7VqMNJrgpmGBLvOJ90VRhq0DwUEIgl6U20VyPaEW32IQ7AjMIke6hiSj
zzZ6wmoO3NTc0I+cyhS8JiGY4uGt0pus3NT5VtgwDqTMOQjPdBHfAIVFyXFO
thUqGgZiEg5duRS0OxGgS804hFKlM1yOonDpw3gHDFp0WGYVxphsJYKxlz3v
iQVqD+9QPU0pBoGuCXD9yt+mvg9Vd693zmAU2o+d9Q8ziMgzgJeNBqNw1Tu2
qjlihkJ+Md/MKT7OFSIejaGeKer7pDvyXuYSgYucnw+kI7zyTjBCDt4q5/Mg
2HVKYUnh8iSqlFA8yNGFXQQC4AuUhu8W/1hwmUgi2l8qtsCCgljSGEeIh3d5
Jh6wUwu+zDNxFEbSC1byOkwSmYczFhMDu483tpfPRk4RUTqzu9RbAN7Ijovg
cYz4JV8sfYDn/5VWpQUVbIE2ViJZtDvEYr+VQJwZhaSb0L7kQ8IwoBLFQQ5V
JsCURWc96LWm3zSXMroCCSmuyGHRMk6rRkkiY3pC82R1iA8sCaO6TnDr4dC9
Z9YJUcR5o8dlr4qWh8AJmrSR8DBHUoauDkikG6BOMqcHHC36zIgaEMB5wFCQ
i1AmsPKZ9uhCh+iiachVRygFjk5+JR07sDhzkNDQuCxkVE5HdudOnPMn8Y6M
ruk1dsF/Fg1i97pljWJHJCOmM+uL2zeTXM/EdFUFu9ss9XD0RM1SXq1a4tUx
PqGMhR2l0/iEXwWaBFzebKx+fnEvbDidyj6cpSCdsd4N+n5tnEMlqIjQYZqD
QPgLUxXDE68jO23gtqMMNDdYYLLYitzoDVSDwLEnU/Qmz8lJbPfq+PD7/ARc
DoTB0NwBAxUm7zlNISqGHS0UcnBdlLcFu5DuRfZ4kq8Dpjqhyq8YGGvgLBx/
ArbbbNfpwLhgCQ7++WOTVewBkSINZCtY4hbYKINCoFIJiiEXdpoacoKRfVKX
njjPAActAjxOPmIADYXFkEB/eob0kDPQcBrhkSz5odvUGSJXQQSemqDi4TER
Z46vTkAsREmO7YfoA/CvaM4pA7VkAQ9WjBknDQ1/K1l9Bpb//NB+C/9+2JpJ
QiTE+TXQ5UolDPEJRgitIKNg1JyRB5fyEH24DTwKR5k9J/qkDDGI9PzS4XLQ
CcfYDMnCtSnEqTMDyWlFuc9NukirZ1YTVfnSi9TcSF6OY0pkP8ULxTfoYGRf
SQDUfevQfOyZTxOSG1ikxis0xH4koHiZLZZIBniz8N69+7Q/JOtay0fwK4i7
O27mKnElI26XZe7ZrUKmFYSbLYbZEIkDRU387eOT7zvBIQffHFKMgzHFc2vf
oBuct/cnoK/5u5LOLSFFoPiIUWiAAiidA2XeKqUmwltWHU5HCZOhu4zNo0Th
xSm9DceijP4mSP2C62zEa7GRGIUE83lm6UeXOIr1YhIOzBVJGg6AcqlIAJfk
OHPJBONNVO8AiwqIbszzrjcVXOS0C/0ign43NOfgmz2Cft+YBsDvEeQKddEm
Wa3/25cAtVlVNtqCBlU4YLQS+YGNuoY10+CS1kB1CiRjFB928P3T/eH+Afzv
an//iP5n310dizuB0UYCVTDbBiVEScqf+5zdhwdDhODDQ4rxktUDlWtZrmIW
n1R6/pjtpha0zZrOT7yS5mD/fx8c2r0NYEHOBYk+ZpjfC5R2/NIe7u8P9vf3
nzE85hklXMLrj/bJ19jvLgFxiP1ZoS8rCI4gINMxtdxif2YopC6ejBw8AtxE
b2u+4zI3ITo9fbQDnQ70Nq/mTHi9+fpsfPravrp4eybkq/HVPiQJHg00rUpN
7AbhSmo3lCNuL8+uzlFVuPbWK3W2gG7fodohXnrp3y9GoqMp4r737//R41II
Yu6VOFWXq7rjOnahtJoTmOjKzezfnjz2cOqGiclP/445Oz6ly/b+0ZPQUQ6T
g0f+o2dM1bShenF8fmWv3jJM98h8/f8crN0COK6YzLysWkY3n7HbuOWJlIY4
ymKOCTQQ90Kt5Xq88jot19tYCxK668rX0DimNU4YpUX7JqBwCtDIeiwBFtKb
TKdHvfDlJKyZxSa1wNO6StNGlu3EvjpWMQLdY/SQzMEGJgkAo5yXNhEmNWtm
CMuarWo863WaVBKCTFAFJOwiZ9Uocj49bF3iLnICewgQ9B70BOTEVJrZcwmI
l2JTnXxliQZUy9rdKBVmPwfFtyjsBKFLVeNcKRkf4j8K53fxIByugYlLhpbL
9bGciVbk1yAwHrMmN+I6G0n5loQTmEizl5yTIAxwkqrfE9n9eEgyKQaQxF4d
d/iHIxeegXUPtSCKbpmpOcATD4smAIo0bSippJFVg5S5bFYl4ANP5gvU+IMJ
4zWRJCNOULASkYLS1onECocvxc/L9Bxx7mbHs5bF6srgMAjYQXoVxi3oc11c
nAk7IUrZ5SbBkuiVcIlRWhegaZzWtTtBMojKjTNqJT1/8KW3OH6S9Dq+dMM8
azATwJj6QPUMyTvT9DyVl33emiJtbwY73ZMFy2W9+0J0cTBOifsSFpqvxcLW
GdWOlz19iMHOB51jctksJhEgeJup3luuodGksaB974ZbcT2aP9mr6mRYL5PD
x084drmXcuBR7xlFD3z6FARUcshAYuLQXzYl+/jJzp4TFXMYMw/u2Lc+idFS
8bsUmPc8+Hxte8Ne8HnZev6a5sK9UWawbgn+/jgMnmq9teS3FBrxwzxF9Do8
LKH2cUryl68LQJEzb+GQMDhaivJG8/2lo5uJXiinkpC10QQZ07EI4ozsKH5w
OLFL0Jbg4cKbm/QJEpEwr7JOV5NcL6u6vcLQrHY0fSggaXU4TLisk3lKMV51
CqSXahVEq6BMdxD4KzShkO+IkxbLgplbSWbwIduOTY4Z7rVExkiys70/2RnB
uSxvWwYutGVz9OAOuX7iEJ4x/vBujKdHh3gW8dv0FbwdJrPDKS4PngcxqHL3
Yis5mdrXQcaht6D+f3zWO+OSw6MlsGnE8T1Hu9xxtk++u+eAlztOeHn3EdeH
z4G/HMLX+P8l/OtVp3puO/6uPoBX4P+TQzoowJJ+wAo4oe1bd/KBeceX3WU/
otBwTA1E2oHV6yh1Do0Gfv6Bxn8an78c+PVEYwAGk2co7o3VDi+hDlQqFTUJ
U7dU56xhUZLSvOrQM0BGM7LQzEFIJ/cJmtjCuM+oDBEcHEhb9lWeLOo2KEII
0ANW6qLelmr5qZ+xB1SkNMxzhft0y5aCmqvTYlEvDG6K3GSSCMLFnsgko/ei
bTIsJcJASq1qhUs8zdAFLAYSmoSqF1La+pyibnjxqD+FNWmoQFDCsda2XEuZ
APKaDsVtynVt3DwlFk51WZjzXBN0MBbJ7YEs8+xiNYYSxfFB75hCI5Gko1Du
ddOmF1qaxb3ls2AQuOhP5d3AbdOiYbPeUaxw72W+FDJsFY0+myID0KlBLHCN
77Hywc4x5H8IkHVaLZN1jber38d1ixdHblKsW0caIbpjDUY7sJ6jBe4ChRIx
n2vlkcruAysp/jdfI1CCArLGVY9NMCEGi/FRBA7n629ZHMOEn4asXuitpxyq
qN63CQtM4dH0OG43nSFBI/AJbWt5mB0eU8U7qWbhiqeNTVyogbH3ZZo3yZC8
/3q4GvYYB/1kz8V62EqalQrzH8TCSLhAIW1iGXajkRng+cGzYD98wLIjOe2/
bE/iKdayJP/Xd6U3oY6uAtVxEErgrgLQmbKR+6DXgaUU/2gn0BhvY2C2QbQ2
XZMR0uagMN0ArxRZJey6BJQEVZbvbs2zynTG2fK5tgjZzUUSKddUvEToRqqx
Ob6As9Z229JVAgpD+Y14j9FbXpVYU4y3zKH/f3bHii2kkhJtJtHARZCxF6z+
05s3SqBbmw+X8N/aq5YzvmujvtwxRmeLuBKbIKWAu5FaFa64s8T+OH5xFZVi
pbRJrhvFmizzN8yFMG7SFdpEcFdlZaVIU+O/lJnIpjMX02POSYLJBGFsOPRI
R8ui9EnmGGTV2yFoBUbfJzsFqznLT9/s9Qbx1ypa9eOx+HHS8CISaf/LtmkM
fuU4kP2vuxSuCE/xneiq4hfucAP1bh7Kfn+hhvfggf0JE6uoLA2d8KcH1+n2
t5X74rMJogYw8sp5wOQYmFjm1EAFPa11vakSV0gArVRRCRc85h0lFKnWPnwh
5TGZzhpCN0KRsPA+Po9DORs5FkNyFa2l1oPkE7uS/LPn6mm9onJ5WvuFalyo
RDpwFZmiKB5DlBzvueS1UHxEzQJwNyuG0xWIK7tZ/HhkmwsqL81s7zf+CA9j
udMfqH5fYtrCn7jt2PtMhitEdgB5Txwl2EhGc8ltrz7gJ9Dy2JuX5WiSVL2B
gxcbb9V7jxvRh0Z+OaNwZFewTTKNcCRtVPAjpxt9etBRmIx5gRmnLo8OVucD
W1wpVi/Tc1SxluJs0jW6Dnx6E8rbUcsTK5lOLlzWd07RNEaqpKE1mJZkjwW4
UxB3N8CqZSr+qtpmz4IEOILopjuTQ0hMC/hiTAsLmBqKxMow8yUJeMSKU9MN
Fd4deNtmUD/kq4JyOCZFFBYK7gU1kSQOd0Z9ouKCJhomxc/ImfaNluUb2cBv
04niBMh1Mns+kzhNqS9ipjTi6Q3cSYic7VQuXNozko2VIyVwh6dMcMLkLZcF
qNlbVKBDy6wL+xRLLG1TAMvgpnBgzL4nP7jDUrMHtwvVZ/jXEv+F2vOIS2GJ
4ksv7aliDo8d0mOgQWAgZZD4IxVMKM5RonVbcWiUVeQju7keg5EAfZ/N3Dvs
qWAIal2UN9w70J9EoWKs/vbnWMdmAwbdMb5VR5zcoVcrUAlcxXFSGPUh1+kk
jp3p2JSiBGM37ZKLcjcuhJ/Cs+L0UtCW5Hmjz5MoSc+7SmcuwVDfHKjNwjeN
AeGsxtoDdP5choLjsdrZkL5IBQeEaS1RHIOKVSy508yW1Qg1AzkzFK0N9d+C
FU0iagd8a3eeAz0VWQgwkNbEFjt/7l+ImRZXEw5qnOJNeOeTzlEIJUMPC754
pmxPI/4Jv+7JifWtJJtqLMaeO5s+YxpaGx1nUvpzV+RhGyqH90CFCj230lA4
zZPTr50tKYmJrf306a68Qgx2HWvQZt2J+JpxUZYdKl9EQ/faEzrdzhW+1Zgw
VQZHOwJ/UQ9FMZ+jpX2QpEsI17vBuZZKy9BsClhLi20ZdUPH/FdwASH/uym/
ogOHmNKvWqmckXRgnCx3R2yqq8/FZjcACaZuxTWU+9hLi/La9rhicxSSGlf7
6Dt7UxLHoWs7oDCe1gGxbDXecTsMmQZdLiNXAqDAVXuH6worqWEopQaXDuxd
pIwvnA8J1jeAnL3OrtPbrJZI3hjLMWCzWpfqpzNC0F3xetqDK5cuEa5EBe5c
LJUiC+vIuXHUHuNIltYeQlCggW1IYr0LpQ1K/GLABqguzbBuNvM5/NbD9KI0
SgB3+RXGF3pS8XXExR1vyoxC3udcFtqhEI2fFrNhOR9qm4xVUl1TGbz2dVMX
Mkrev3Syfnc4PHh15ESYbVq5vmaXlDLwd6jjgyAMrSP+6IvP1Uay1hMtUYMJ
k5yBYGVA97QYwUUcw2RT55Q1lHVtz07PTiRM7xl19JL0IVrDShqCgSBEFkwE
ML0gFdxHrq1Y0jTJdOn6DQSjBimmcZS2jGFUVnGhpli8uwDssRdBrA0W2XcG
DnmDAwIBGFSpgk7aheMMwtJ4mmKNXS4/aD8wSevlUL8GyQDphJQJCzpUxgVw
ya8DpHaKtfiMS5OVWg0CBvbtqPf9O1eg49H+9x/CuDOqe+tbmEmUHlfSpxiQ
GSkZOHRPZmUVAaPZnJshNR5tRMVBBxKGDnLcKDov6qxiskIybFjLkLRrgTrH
O9mgQASeDHVyCS07vn8NGZKorhoI19TIZIrGbYy52g4Y+/6uWeby5iyTmjSF
xOtkeLgjqQmJ1GHgpLe4TLQ6XdgcmdRlQVvixKxWK7FAgJTucJw+TjeKOIS2
d8OeBLxkHMMjjIkRJojDdTKogkQw25UBZKR9u2m6WIuicYok19EvShT26mFa
cDZtWQiDq9JUevcM2Fho4t5F1KCjlj4rvuTf5bvj45PLyyNL5gBquzDf5FGV
CmPOTy7OXo1PX9NTWEcjKchGAdRpKAmijDXASStHmoO8ScplDgtfiB8MNnpy
du6GxutUont0YO8b1lsNMOIVqz6QJtWCkG9WknFJeNkbxyatqVclOUB0CSKH
D9DWiScSCiztzD+fHY5iOT575FJDA5PKIG7QJWE+wRoT0B2RzOi7ogpoTb2o
VghTG7EvSY8djZzBd2XZQeCkIKKfD7uiYn1hvvsy2SoFeRL7QSfhddczZx2Q
BkJRwfnPPRnhGFm42FhJDtguZZBq0yaMlRcbFU+HWM8ubVdtHdgKphuKS9vb
EyJVV4ss4feycAxtoksENFQ1I3jlTOukXXo1GaV7OUhbpLfBsHtS5Q23ztcP
ec1zTVtynRcnW5OSXdqlDGuvE98sMCi3MxdJnpK1kYhoNL+USNYUzMK22vu6
pGyi7T6/Rs2KMKCRyqjFLKw9oxZ6TbRqN1DlZNVEDJoh8njSiQyDHdwsKXLf
Fe3PGDq8S19PxGrTzEpy/Jhe8muE+WxKo8B7TON16WZilCe2Th0sKT/Je0ck
N557abBS6zwk4i6gIl0VMLG81nZlRno05Vvm1yAVTlUV580RaL1ZhTyVWEgs
BMovkuTPm0pRZUdbMtowIzcn6CNr3+XJg83w/kmoT5kD4Y9qu/XxzGvqcSbl
613NeCQKYRdjtvGREEI4gnoCkhbUvCTColMMx1cMDE5OxJg5lQbNqF0jX6Eo
msh+etAyLra7YTA7JW7pHLou9Hmyda28uNOkqywVlWWiJqyUhqGitaH7wjIO
d1lKAmkXpgitPXgDuOMSuqwoEiBI6yc67frzhj1go55EuoYm7HU9tjVgyorN
0RKuSNJAcCJf0MapubNzThHzijffPgjviJXUhKjIi9XGqb60lpoH1O3r6/9w
zSHtdBNoHztq5uwpX9VKPkd9J2NSwysnYL+S2BXf9jjeEKE6ZkLJ+0E/PWz4
Szl3Tb41SjdDw5LIbHgBppIjxP6/jLWRnJoox23TyDQNTPt3SgkURHNlqskd
6IN6e9oBr+f0bLLzKll1CHi1w0bRSojGUGjK5WyETQALrHltLpOE6yGF6Rgt
LT/MyYhKbIXqPx4tdpZLbgD2Wm1wD5kkZvdTLuVk24c7Irc3aLISkLAYYnqT
tJQXZ8Pd6wQgE4i2k9f3iByHiw06R03TvlqUOXK8FeoQ1rzgYAMOJVdeTK3f
VeNDMFN3YO130Elo3Mue99s7MHFWo3p4XT/LifCdhD0khQciEQ4Xo0zFRmCb
d3jBxMNAyZx6zCUHxg+o/TpZRYSfcTgS1/+i1dDIrWw4XKB6NL0N0qcbRq3R
mJmjD1IiHTtN5OIcAoQlATfsSgNPnUuZ0J+4bL49jmJNtHkNKNiexSiH+E1K
jMIiPmsL3ag9bOCqn2sBeerZgWxCqvXoLrlBlvrItHOwK2EqZF9W0wpS2lB5
rmNFk4Hh2heuxQ1qTX9gxRBUgICiJuLRjVdL8ZOAwBWVY6k5Qg6zG0kilQZe
VNeT5Qvsc9M0Ug4n6ndign4naGPRzizEn2Ef3rVNrWb8LrnTew5zq0xHasYU
W64q5gR9h+Ec32hdPBv6QgEm5xX1hub2lxSpxtWz6ojJB3X1tIyl6MSDgAWR
zITHwhb/77pV8StnHjFNXIJRxTVXARPwgTpSTN1ycLlcaR9PdWQuxVTiVsuU
E67Qdbs/eg2Sd1pIwSml5D5lM3IvkOwnpHxHZf8w3Q9F/hU2mOaaQvUmY5tr
aMsaNtpY1KX5K0Pt2GrLSi25beeusyFwxtIt2W1cShIXxwTtNkupu2h9D160
G0CfxoTX8TCOFXJrjliTk7FDK6w0Vx2w8hGdLcrVaqkMMtvIg6NmPIo3lfHE
cDkyrcDqCSLQ8QVysdevwgpne8QsJ9K1UyM/iW/xPtC4a3xNMt9iqh+YlgMk
UMvuUG0xXITS1QUISt8HnFkkIawqHiGugz3crwDtEg4hbostXLYo6E/PaoAE
te1hW1sklpzaV6odoGZDcWBQ03CBqJYtnPgZrtypQKEfS3Jn0MYWLajuVFco
DRU5YYFQ44KdfyB06mqMIp8DEWVKTcoN32IfqRHTph/JVVbMvJLuNA5xAnwO
HcRdr8addbztHXW8jSsmxVbG0GPNXALeDVs8BbVZXUMy56stviQz+RsV2orQ
MC9uQrQVdqv3BIHAA6ceu1oXrifJlwM3QDFO8zkcwAmWIciCrohRU1dmQlrT
31dnF2NJwRsxQffvoOVtS3TZC4jnQBx1KKJvCpT/WREKeHZfr1mrH3lXLzAS
dF9sdxZ+K9g27NM8KBKVQgFjDcXNN9SLE0cDkAsBV73TU9mqxyTYytv87Byg
3QuX3T1k5PzUmBZt/CUl7NghrU26bAdU0mqX6jN+Td0bRnhpl6ApecHNMt0b
JQ2mJNDDibO73askzss0gb7sKvHxjY2DE1q7HRh51N9Qb3+NXG40c9L18x/e
WWIIkcQPG8qWcXy1Vm5WYZOb2eqU9a4pd89I+ZZTFJwKBiQTqK7w/HUlr7xf
TPzgruin+B12KyouCksGmwDBvv7KTkrkjACBHXWuWzZWiTBCfI+KWZJG8pWY
rpXjvDO2nGvfsXB5wdbwZ3f11VIRWzKUTLMAj0VUfAy8pIHgKO2FkRTRNYyQ
TazdJBRufadFKHoYJ1IQswrcgE3KVqjxr1pHMqRrjnoBv+c2JYFZuQ5MapEL
QIKOVpuCG880LY8BEOro+clWLUZJPFDMqUquzoQAUrlfgUlOY/agSIqLNi4m
6V2tJ+jVQ3ZFgiCIL7fc2iGo00mWXHzMJgv2fZ6VFI8+rlmvpUvu6o6aeYZJ
EN4ljYLzLIiZaAd2VSqQP2PDuwzgW205Uud5HJqIyAzNIfNuJ9zEq+Y4EiQJ
4u91xW6ke/g4CCDVs/ajJzpsdxg+CwqJ4LKsVboAIZQ69FC/ce04z8W+GhEl
665TKCyBpf0VvZW0HnUyp8XvRU3xCHGcHz0MPYsS9Ax5DpyoRHZflB1U1Or6
cQbhtzAOrxK+Jxks+I3FLSJ+znjMagEOlHGfUE7sKtWjwgsQ62lke0bxP89T
lLiMK8EBB1Ih0ZUnMSCcOf0JrzbwEnk3nUqpwX3XzeGxO7ogwr53mVABBhSc
yVClGsBe22JlvIOpTY+U5pH1W6vdMotXGxZNZ5xZheLRxIR1X20ad1ulNkqQ
46PWrjDjwg6HXPtQaDX6R9CykS626t/ikbTI0m3CtmfmBWyXReQVD5t9/PGj
uHLRcddH9TavNQJSXOUUbiOqlbPHNChFlwXV5x1F8Pct98SzPQX+Q26X+ApF
HVJM7EjiYlLoO0K7EDmEVBIrUqI5eegU4yf2sucH/Tan7arbLqWrM9vfa19O
Wc2CdIiBZH8WKtltqz32i1SPQd+EbqYkgE/pfUodmHDdXfWLGHKEcGAJhZDk
Wv+Ejf87HOxkxNXoEmnG2nYQuY73JrqqrItoi+ik5jrBu0mTuZs06a0W4uSi
drPChY9IzOsvztMoVRcBr9Txb9XrKtWfXBlEbay7G54iAmczZFnd+H3EOkpz
MRiloOVrd2N4HaK43uVHHz8af1+CEmTKyXwOV83VoNnhUgZpyNwuO2s2ag/C
Isg/a7si1VR26jc7CLjxlcQcQ8FK5dNNzrW2b8KRJdyFEi00eJDAeZ9s+IwE
WZRHRISbUrjGpnDGCR6L0/jI8B7KjY4RSjChVPTVoAVtj6UHaohQYdMKF+8Q
li6Vbpl0CCimvSD/SS8HpaiiWnckQphtuRF6TZ0Rycyd0bwJyC0zRzZdIHad
TjcU9C89Y8XjN/BlWH2pPEfmQzMCiVXqj95wAVSjuRb3GyYGvkB+kM7mu+PE
IgNINPfAB97H9Lc+sgM2IbkMZKOl47SXaxqUp1O64tSphtUpwc8fpGjWORtj
0CcRoKOXGVhbCkw2XJ8tKnOBJNyruNRCoS1Eaf/IEXoPgZ+RDMaNn52Bnku3
Rq192r1ZzKdPrYS1z1LOMA6sje5I2H5ZrBcm801Oom7V3CnYV+lLcqanrMV5
VU2axiZofZpN0bh59Z9X9uJCfFUlt+amCKpMqoHiAEHYEtutInqMbQHEV0/h
DxJ/JRQaXt8UeXaNOM+Xz1XZkuQzWb/qFdiROkd6TbhN3Slc+8mSXyIDmcq9
1LBeA+uwrC4dEm+hplbRxznFeNTlvLlN1GqmnUFrihnTbTBWsA8tufZKrFsU
lYacTssN+VfIjRrWanCR5iGrZema2VHMCY0rCe8Y3k6hO7TLdPkaUXJtKCHc
7Zkzv6IbU6qOt7oSA08zKhijg4jivkQ69vI0BTNTkQSJb/e5JtxexGwKFhRm
R8YctBEbLXhoD+B3QyNqxzC7w+5BCaO7TD0tA09YmywOqdMewQNH4Z3dxj9X
OyKD6xd2fFfpOIpQFEGWbEJxjDxNiNQR5LBrZfS74/UmWyGhuD8ncuzBHLzv
wjn3+39qaZPUc7/IdEXDBoTFcRDiGrti/Xl99J4n80XpaKqjqF+7Qh4waFka
UDBaADdR1kWgMicuXxfPGr1DxfgxNm07pTiqCmuC86EvW4PHN0ew11dbcAok
nBAVW8RBlAJLK9sMEDYNg7QyL/UI5rsOKLqXcLFYorBwZkoPLr9f2itHieOO
ZCeVa1feBpfcA2HFo9GoZ28lGFlkKt5GtNcgnxCjcrDFecVUpsCSOn4OUueA
vD6jUeDvAk5hoIyfbM5b1zEl4K6FWEw2nATUi5FDhHgeRUoaBFjj0yVnLJqX
bh8iOLZ6PDpOEvvr3+P3P538evlhZxYLN4DsYopw9JZoQ8O3hD4nDdEolGFa
LVikiFi5vCeyg+IC8N+Ug465k5hkmghxoKiZJple72jQfe9mKEpA63+Ld5C0
hL3eDZO5vvWBbju6WgYHFdxbyuun9JneWodBxyAmOzlEhC+uKXqOIUL6bZXe
lNc7BGxeONc/4qguFD2QgEnBWY9O6uO541hkhr5mALDowKUgBVGUZ7k0evLk
cpWahNbsDKzhovlYyB0X4Ef7Uey8MrsfcGIHcXECEhYddKxxPWZ0SloUiTNR
i2bheVTR8JoPIkqjHtIAdwn48QGQUVJM0vl2N63PijCyMfJ+9kdRvlat/gR3
G9DaO0PRmBXuutQGAHcXnUaRht/Pm3JBVokYsr2l+FckF1CdRG1x2OEb5bjx
iE54WLHxLQQo9QC/tx8K0R92oNZxq4U4/8jlEutSd7C14NJ+BfWhd1snESeU
9kU/Cv3pYStxY6Rig7ofGak91AZhE63w6rGyTXlG4te4xx68y84jx3cuKfPt
BNAoUiKOPKjlCn/Be09tGsMS8jsnkMqwylk00oKCrEUL9VY3PkgVaV6og6Et
gqolqSOMhj5TnDeMSAiNyT42hvJgd3R23LljWdfP6jwS6eTu0olhkrbzrzJL
3+VRphjFNGjnzO5cMk1tg/1Oll6+9jeU3nCQlnjHiPBot3iH/y16v5PS+zqG
M+CSODRjrJ7SOx+yEWJva8V6Qt7x1p57gUFQUdtPmtQrIasU1Z2sXoU+bJVO
OlqOQ5cIj0N0cZBrrcSBUGWJvwKKwfA7oUhdtX3ir38c+Z03/7qqHxrF4xyP
IdWxF5zXE9poAifl59CehKZ6ca7v9mMSWY3UKAzZw+WiEuupbtBmmxQDkHDq
Ug1y5NNzmjaKdClyLRB7ot6tbQbFhaG0PEspafdRg0bvaAvJmLhstPsgZSRI
lBjZuaMoD2/G3eXBd/7SHQUXsY+e/m6SDUpjjUJJjNqdZpsd0yj7/TlaZByN
MZRzPGoF9VCT9if7Bx/6NmxjwtcAK4i4diMUPqOZrjLat2NKO3pN4WHn7BAN
EMVlxqJtueGKhttSdfi7IxttmFxxy+ki3C+PcUmL51OPSjlC0QxBo8KWLvQV
SOcVcUNvrDoM63ouMrVpBENS6WlA3SbTmH7Q4T0ogeZKihd5PuD2YXKuLp4i
hLBreviCLlA6vRtOf2UhMgxydvHSrIppVDJ7Q6s0z8gpP0GvMhohMX5ZYr6a
alM7K+aGMX6krXTrFBfFBtxlUrmGjhgnSO+RzUhfYwfDjvVzDQ2JPBzszgRk
0TC64HrxfYc1430sPmgSzesaH8DBAHWZo0BbUiNDLNDGDUn9+VHiIuXYhS53
T+6eMXjYU0lZ/3RiZFYx5HeWDseYNKlzi5GwZoIuSS5ExbXfpXg+Of5M4xck
/llba9QpZzjGIXPcfM0RRi1TgHXLUsqWK6nOH8eCJYsqJfI14D9rF91MeVGt
SIA++95b1nFtcIgZJY4REavQ4gzSggizDuWAKLLDPn68/+3j0dPRRxKutqR8
Rm42x8GkAcjCd3wXuoSASziDS8zAYf8xKrLWYrQDXwA1MH6R0o41cHEuip11
FrVBmFTsiu+GFU8j57cWBn70+ODbR7C5x8Hm3F06Mvi75d/fFZqVI7KGB+8w
XFhg5TPmqr0iH5sJkqnvvaupHvEey0papVKNY5Rk8Ydsys5bEnElxH2WMWOj
GxidHroWCQ+Dw+sYIOLqZkEibqhyuB24ypJIxUCtxjmsmyPTwruNiz8AmiV5
OCpniIUha3b0dVTjOFYvRc+13mglPl+OocnL8hoDV65TI85+XzoCo+DGb8ZI
Dzm4iXmJuXox5l8v1WO384nhcGixUKIx5liyDEn6P0mqHK/Az5LCYJ7f948x
/3z/z/dXod2OfSlifMCrD7zYnsC5ltU/P/zzg/kf5v8Ap/tuzV24AAA=

-->

</rfc>

