<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.24 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wkumari-dhc-addr-notification-05" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="Registering SLAAC Addresses using DHCPv6">Registering Self-generated IPv6 Addresses using DHCPv6</title>
    <seriesInfo name="Internet-Draft" value="draft-wkumari-dhc-addr-notification-05"/>
    <author initials="W." surname="Kumari" fullname="Warren Kumari">
      <organization>Google, LLC</organization>
      <address>
        <email>warren@kumari.net</email>
      </address>
    </author>
    <author initials="S." surname="Krishnan" fullname="Suresh Krishnan">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>suresh.krishnan@gmail.com</email>
      </address>
    </author>
    <author initials="R." surname="Asati" fullname="Rajiv Asati">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>7025 Kit Creek road</street>
          <city>Research Triangle Park</city>
          <code>27709-4987</code>
          <country>USA</country>
        </postal>
        <email>rajiva@cisco.com</email>
      </address>
    </author>
    <author initials="L." surname="Colitti" fullname="Lorenzo Colitti">
      <organization>Google, LLC</organization>
      <address>
        <postal>
          <street>Shibuya 3-21-3</street>
          <country>Japan</country>
        </postal>
        <email>lorenzo@google.com</email>
      </address>
    </author>
    <author initials="J." surname="Linkova" fullname="Jen Linkova">
      <organization>Google, LLC</organization>
      <address>
        <postal>
          <street>1 Darling Island Rd</street>
          <city>Pyrmont</city>
          <code>2009</code>
          <country>Australia</country>
        </postal>
        <email>furry@google.com</email>
      </address>
    </author>
    <date year="2023" month="March" day="01"/>
    <area>Internet</area>
    <workgroup>Dynamic Host Configuration</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document defines a method to inform a DHCPv6 server that a device has a self-generated or statically configured address.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://wkumari.github.io/draft-wkumari-dhc-addr-notification/draft-wkumari-dhc-addr-notification.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wkumari-dhc-addr-notification/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Dynamic Host Configuration Working Group mailing list (<eref target="mailto:dhcwg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dhcwg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dhcwg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/wkumari/draft-wkumari-dhc-addr-notification"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>It is very common operational practice, especially in enterprise networks, to use IPv4 DHCP logs for troubleshooting or security purposes. Examples of this include a helpdesk dealing with a ticket such as "The CEO's laptop cannot connect to the printer"; if the MAC address of the printer is known (for example from an inventory system), the IPv4 address can be retrieved from the DHCP logs and the printer pinged to determine if it is reachable. Another common example is a Security Operations team discovering suspicious events in outbound firewall logs and then consulting DHCP logs to determine which employee's laptop had that IPv4 address at that time so that they can quarantine it and remove the malware.</t>
      <t>This operational practice relies on the DHCP server knowing the IP address assignments. Therefore, the practice does not work if static IP addresses are manually configured on devices or self-assigned addresses (such as when self-configuring an IPv6 address using SLAAC <xref target="RFC4862"/>) are used.</t>
      <t>The lack of this parity with IPv4 is one of the reasons that some enterprise networks are unwilling to deploy IPv6.</t>
      <t>This document provides a mechanism for a device to inform the DHCPv6 server that it has a self-configured IPv6 address (or has a statically configured address), and thus provides parity with IPv4 in this aspect.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
    </section>
    <section anchor="description-of-mechanism">
      <name>Description of Mechanism</name>
      <t>After successfully assigning a self-generated IPv6 address on one of its interfaces, an end-host implementing this specification <bcp14>SHOULD</bcp14> multicast an ADDR-REG-INFORM message in order to inform the DHCPv6 server that this address is in use.</t>
      <figure anchor="figops">
        <name>Address Registration Procedure</name>
        <artwork><![CDATA[
+----+   +----------------+                  +---------------+
|Host|   |First-hop router|                  |Addr-Reg Server|
+----+   +----------------+                  +---------------+
|   SLAAC   |                                      |
|<--------->|                                      |
|           |                                      |
|           |        ADDR-REG-INFORM               |
|------------------------------------------------->|
|           |                                      |Register / log
|           |        REPLY (optional)              |address
|<-------------------------------------------------

]]></artwork>
      </figure>
    </section>
    <section anchor="dhcpv6-addr-reg-inform-message">
      <name>DHCPv6 ADDR-REG-INFORM Message</name>
      <t>The DHCPv6 client sends an ADDR-REG-INFORM message to inform that an IPv6 address is in use.  The format of the ADDR-REG-INFORM message is described as follows:</t>
      <figure anchor="message">
        <name>DHCPv6 ADDR-REG-INFORM message</name>
        <artwork><![CDATA[
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |    msg-type   |               transaction-id                  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 .                            options                            .
 .                           (variable)                          .
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  msg-type             Identifies the DHCPv6 message type;
                       Set to ADDR-REG-INFORM (TBA1).

  transaction-id       The transaction ID for this message exchange.

  options              Options carried in this message.
]]></artwork>
      </figure>
      <t>The ADDR-REG-INFORM message <bcp14>MUST NOT</bcp14> contain server-identifier option and <bcp14>MUST</bcp14> contain the IA Address option.  The ADDR-REG-INFORM message is dedicated for clients to initiate an address registration request toward an address registration server.  Consequently, clients <bcp14>MUST NOT</bcp14> put any Option Request Option(s) in the ADDR-REG-INFORM message. Clients <bcp14>MAY</bcp14> include other options, such as the Client FQDN Option <xref target="RFC4704"/>.</t>
      <t>Clients <bcp14>MUST</bcp14> discard any received ADDR-REG-INFORM messages.</t>
      <t>Servers <bcp14>MUST</bcp14> discard any ADDR-REG-INFORM messages that meet any of the following conditions:</t>
      <ul spacing="normal">
        <li>the address is not appropriate for the link;</li>
        <li>the message does not include a Client Identifier option;</li>
        <li>the message includes a Server Identifier option;</li>
        <li>the message does not include the IA Address option;</li>
        <li>the message includes an Option Request Option.</li>
      </ul>
    </section>
    <section anchor="dhcpv6-address-registration-procedure">
      <name>DHCPv6 Address Registration Procedure</name>
      <t>The DHCPv6 protocol is used as the address registration protocol when a DHCPv6 server performs the role of an address registration server.
The DHCPv6 IA Address option <xref target="RFC8415"/> is adopted in order to fulfill the address registration interactions.</t>
      <section anchor="dhcpv6-address-registration-request">
        <name>DHCPv6 Address Registration Request</name>
        <t>The end-host sends a DHCPv6 ADDR-REG-INFORM message to the address registration server to the All_DHCP_Relay_Agents_and_Servers multicast address (ff02::1:2).
The host <bcp14>MUST</bcp14> only send the packet on the network interface that has the address being registered (i.e. if the host has multiple interfaces with different addresses, it should only send the packet on the interface with the address being registered).
The host <bcp14>MUST</bcp14> send the packet from the address being registered. This is primarily for "fate sharing" purposes - for example, if the network implements some form of L2 security to prevent a client from spoofing other clients' addresses this prevents an attacker from spoofing ADDR-REG-INFORM messages. The host <bcp14>MUST</bcp14> send separate messages for each address being registered.</t>
        <t>The end-host <bcp14>MUST</bcp14> include a Client Identifier option in the ADDR-REG-INFORM message.</t>
        <t>The host <bcp14>MUST</bcp14> only send the ADDR-REG-INFORM message for valid (<xref target="RFC4862"/>) addresses of global scope (<xref target="RFC4007"/>).
The host <bcp14>MUST NOT</bcp14> send the  ADDR-REG-INFORM message for addresses configured by DHCPv6.</t>
        <t>The host <bcp14>MUST NOT</bcp14> send the ADDR-REG-INFORM message if it has not received any Router Advertisement message with either M or O flags set to 1.</t>
        <t>After receiving this ADDR-REG-INFORM message, the address registration server <bcp14>SHOULD</bcp14> verify that the address being registered is "appropriate to the link" as defined by <xref target="RFC8415"/>. If the server believes that  address being registered is not appropriate to the link <xref target="RFC8415"/>, it <bcp14>MUST</bcp14> drop the message, and <bcp14>SHOULD</bcp14> log this fact. If the address is appropriate, the server:</t>
        <ul spacing="normal">
          <li>
            <bcp14>SHOULD</bcp14> register or update a binding between the provided Client Identifier and IPv6 address in its database;</li>
          <li>
            <bcp14>SHOULD</bcp14> log the address registration information (as is done normally for clients which have requested an address), unless configured not to do so;</li>
          <li>
            <bcp14>SHOULD</bcp14> mark the address as unavailable for use and not include it in future ADVERTISE messages.</li>
          <li>
            <bcp14>MAY</bcp14> send back a REPLY message.</li>
        </ul>
        <t>If the DHCPv6 server does not support the address registration function, it <bcp14>MUST</bcp14> drop the message, and <bcp14>SHOULD</bcp14> log this fact.</t>
        <t>DHCPv6 relay agents that relay address registration messages directly from clients <bcp14>SHOULD</bcp14> include the client's link-layer address in the relayed message using the Client Link-Layer Address option (<xref target="RFC6939"/>)</t>
      </section>
      <section anchor="dhcpv6-address-registration-acknowledgement">
        <name>DHCPv6 Address Registration Acknowledgement</name>
        <t>The server <bcp14>MAY</bcp14> choose to acknowledge receipt of an ADDR-REG-INFORM message by sending a REPLY message back. The REPLY message only indicates that the ADDR-REG-INFORM message has been received. It <bcp14>MUST NOT</bcp14> be considered as any indication of the address validity.</t>
      </section>
      <section anchor="registration-expiry-and-refresh">
        <name>Registration Expiry and Refresh</name>
        <t>The client <bcp14>MUST</bcp14> refresh the registration every AddrRegRefresh seconds, where  AddrRegRefresh is min(1/3 of the Valid Lifetime filed in the very first PIO received to form the address; 4 hours ). Registration refresh packets <bcp14>SHOULD</bcp14> be retransmitted using the same logic as described in the 'Retransmission' section below. In particular, retransmissions <bcp14>SHOULD</bcp14> be jittered to avoid synchronization causing a large number of registrations to expire at the same time.</t>
        <t>If the address registration server does not receive such a refresh after the preferred lifetime has passed, it <bcp14>SHOULD</bcp14> remove the record of the Client-Identifier-to-IPv6-address binding.</t>
        <t>The client <bcp14>MAY</bcp14> choose to notify the server when an address is no longer being used (the client is disconnecting from the network, the address lifetime expired or the address is being removed from the interface). To indicate that the address is not being used anymore the client <bcp14>MUST</bcp14> set the preferred-lifetime and valid-lifetime fields of the IA Address option to zero.</t>
      </section>
      <section anchor="retransmission">
        <name>Retransmission</name>
        <t>The client can not rely on the server acknowledging recipt of the registration message with a REPLY, as the server might not support address registration or choose not to acknowledge.  To reduce the effects of packet loss on registration, the client <bcp14>SHOULD</bcp14> send each registration message ADDREG_XMIT times. If the acknowledgement is received, the client <bcp14>SHOULD</bcp14> stop retransmission. The minimal interval between retransmissions ADDRREG_XMIT be at least ADDREG_RT_DELAY second and should be jittered to prevent overloading the DHCP infrastructure when a new prefix is announced to the link via Router Advertisement. It should be noted that ADDR-REG-INFORM is the first and the only DHCPv6 message which does not require acknowledgement from the server, so the retransmission logic described in Section 15 of RFC8415 is not really applicable.
The default values for the variables:</t>
        <ul spacing="normal">
          <li>ADDRREG_XMIT 3</li>
          <li>ADDREG_RT_DELAY 3 secs</li>
        </ul>
        <t>The client <bcp14>SHOULD</bcp14> allow those variables to be configured by the administrator.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>An attacker may attempt to register a large number of addresses in quick succession in order to overwhelm the address registration server and / or fill up log files.  These attacks may be mitigated by using generic DHCPv6 protection such as the AUTH option <xref target="RFC8415"/>. The similar attack vector exist today, e.g. an attacker can DoS the server with messages contained spoofed DUIDs.</t>
      <t>If a network is using FCFS SAVI [RFC6620], then the DHCPv6 server can trust that the ADDR-REG-INFORM message was sent by the legitimate owner of the address. This prevents a host from registering an address owned by another host.</t>
      <t>One of the use-cases for the mechanism described in this document is to identify sources of malicious traffic after the fact. Note, however, that as the device itself is responsible for informing the DHCPv6 server that it is using an address, a malicious or compromised device can simply not send the ADDR-REG-INFORM message. This is an informational, optional mechanism, and is designed to aid in troubleshooting and forensics. On its own, it is not intended to be a strong security access mechanism.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document defines a new DHCPv6 message, the ADDR-REG-INFORM message (TBA1) described in Section 4, that requires an allocation out of the registry of Message Types defined at http://www.iana.org/assignments/dhcpv6-parameters/</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner">
            <organization/>
          </author>
          <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="RFC4007">
        <front>
          <title>IPv6 Scoped Address Architecture</title>
          <author fullname="S. Deering" initials="S." surname="Deering">
            <organization/>
          </author>
          <author fullname="B. Haberman" initials="B." surname="Haberman">
            <organization/>
          </author>
          <author fullname="T. Jinmei" initials="T." surname="Jinmei">
            <organization/>
          </author>
          <author fullname="E. Nordmark" initials="E." surname="Nordmark">
            <organization/>
          </author>
          <author fullname="B. Zill" initials="B." surname="Zill">
            <organization/>
          </author>
          <date month="March" year="2005"/>
          <abstract>
            <t>This document specifies the architectural characteristics, expected behavior, textual representation, and usage of IPv6 addresses of different scopes.  According to a decision in the IPv6 working group, this document intentionally avoids the syntax and usage of unicast site-local addresses.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4007"/>
        <seriesInfo name="DOI" value="10.17487/RFC4007"/>
      </reference>
      <reference anchor="RFC4862">
        <front>
          <title>IPv6 Stateless Address Autoconfiguration</title>
          <author fullname="S. Thomson" initials="S." surname="Thomson">
            <organization/>
          </author>
          <author fullname="T. Narten" initials="T." surname="Narten">
            <organization/>
          </author>
          <author fullname="T. Jinmei" initials="T." surname="Jinmei">
            <organization/>
          </author>
          <date month="September" year="2007"/>
          <abstract>
            <t>This document specifies the steps a host takes in deciding how to autoconfigure its interfaces in IP version 6.  The autoconfiguration process includes generating a link-local address, generating global addresses via stateless address autoconfiguration, and the Duplicate Address Detection procedure to verify the uniqueness of the addresses on a link.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4862"/>
        <seriesInfo name="DOI" value="10.17487/RFC4862"/>
      </reference>
      <reference anchor="RFC6939">
        <front>
          <title>Client Link-Layer Address Option in DHCPv6</title>
          <author fullname="G. Halwasia" initials="G." surname="Halwasia">
            <organization/>
          </author>
          <author fullname="S. Bhandari" initials="S." surname="Bhandari">
            <organization/>
          </author>
          <author fullname="W. Dec" initials="W." surname="Dec">
            <organization/>
          </author>
          <date month="May" year="2013"/>
          <abstract>
            <t>This document specifies the format and mechanism that is to be used for encoding the client link-layer address in DHCPv6 Relay-Forward messages by defining a new DHCPv6 Client Link-Layer Address option.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6939"/>
        <seriesInfo name="DOI" value="10.17487/RFC6939"/>
      </reference>
      <reference anchor="RFC8415">
        <front>
          <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
          <author fullname="T. Mrugalski" initials="T." surname="Mrugalski">
            <organization/>
          </author>
          <author fullname="M. Siodelski" initials="M." surname="Siodelski">
            <organization/>
          </author>
          <author fullname="B. Volz" initials="B." surname="Volz">
            <organization/>
          </author>
          <author fullname="A. Yourtchenko" initials="A." surname="Yourtchenko">
            <organization/>
          </author>
          <author fullname="M. Richardson" initials="M." surname="Richardson">
            <organization/>
          </author>
          <author fullname="S. Jiang" initials="S." surname="Jiang">
            <organization/>
          </author>
          <author fullname="T. Lemon" initials="T." surname="Lemon">
            <organization/>
          </author>
          <author fullname="T. Winters" initials="T." surname="Winters">
            <organization/>
          </author>
          <date month="November" year="2018"/>
          <abstract>
            <t>This document describes the Dynamic Host Configuration Protocol for IPv6 (DHCPv6): an extensible mechanism for configuring nodes with network configuration parameters, IP addresses, and prefixes. Parameters can be provided statelessly, or in combination with stateful assignment of one or more IPv6 addresses and/or IPv6 prefixes.  DHCPv6 can operate either in place of or in addition to stateless address autoconfiguration (SLAAC).</t>
            <t>This document updates the text from RFC 3315 (the original DHCPv6 specification) and incorporates prefix delegation (RFC 3633), stateless DHCPv6 (RFC 3736), an option to specify an upper bound for how long a client should wait before refreshing information (RFC 4242), a mechanism for throttling DHCPv6 clients when DHCPv6 service is not available (RFC 7083), and relay agent handling of unknown messages (RFC 7283).  In addition, this document clarifies the interactions between models of operation (RFC 7550).  As such, this document obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242, RFC 7083, RFC 7283, and RFC 7550.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8415"/>
        <seriesInfo name="DOI" value="10.17487/RFC8415"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba">
            <organization/>
          </author>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC4704">
        <front>
          <title>The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Client Fully Qualified Domain Name (FQDN) Option</title>
          <author fullname="B. Volz" initials="B." surname="Volz">
            <organization/>
          </author>
          <date month="October" year="2006"/>
          <abstract>
            <t>This document specifies a new Dynamic Host Configuration Protocol for IPv6 (DHCPv6) option that can be used to exchange information about a DHCPv6 client's Fully Qualified Domain Name (FQDN) and about responsibility for updating DNS resource records (RRs) related to the client's address assignments.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4704"/>
        <seriesInfo name="DOI" value="10.17487/RFC4704"/>
      </reference>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Much thanks to Bernie Volz for significant review and feedback, as well as Stuart Cheshire, Alan DeKok, Ryan Globus, Erik Kline, Ted Lemon, Eric Levy-Abegnoli, Mark Smith, Eric Vynke, Timothy Winter for their feedback, comments and guidance.</t>
      <t>This document borrows heavily from a previous document, draft-ietf-dhc-addr-registration, which defined "a mechanism to register self-generated and statically configured addresses in DNS through a DHCPv6 server". That document was written Sheng Jiang, Gang Chen, Suresh Krishnan, and Rajiv Asati.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="G." surname="Chen" fullname="Gang Chen">
        <organization>China Mobile</organization>
        <address>
          <postal>
            <street>53A, Xibianmennei Ave.</street>
            <street>Xuanwu District</street>
            <city>Beijing</city>
            <country>P.R. China</country>
          </postal>
          <email>phdgang@gmail.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
hhMCf3g9gCGbFGSuAgvs7uuxv2XrtJV4rWUQx0YTjW1IKXDZsD+jwtFSeCDF
C+rBEjiul5WT8sKYE7oHOiO4VcOzs1F/dP6yf/H6xfXoCj6bZXpqOFCkIXnk
Q94qfuMJ5cBOaASd/6v663yGLKX/GTIz/tD8o8G1v/U5n3XeU138Ho/ev7Bp
loPbBNVGASm831z+nnoF/ZGh3gNR+f5Pn45RwV1svrlg29/7zvu/Vzt8+fGL
mt/+1KJ1tW4sWpfEg39f/m/kla0ctU+JxPYtRudvLn8EnicS2x+tbeFtqynS
j/1rGeEfJ+oTBAeXIN5Rp+ofXd9VUkKk5BbqTeoCEyKEdNX9zz94fxeXWJf4
lTiSRAo/J0CqAljO4LHZfc7X9Dmdb6QCtZMpSmAouqKmKWP6To9GYKhgX1Pu
HkVumaGgETkfbFHf4Zaxoy1jj6s9DvH8sTpWT9RT9Ux9rp7/N2Oyy2f9P/lf
pzaveTbtU/tMbVos9Blnmiulvg23mO5fT82f+PPUDO6bIw6U3Tdl8PA2ewsk
R1SAPNo9Z/CXMvUXibip7PrvIqSAOKEaoRHAKk/D9C8695B4Y7iwXHeqvduv
h4ePBqXvbLUlcs3GA3VxJvUyxcvyfPMbZQdTU+20VYfXfjDQKarMsEr0/C4D
hraKJcG2HbDkZ3UZvG7vgYsyPaOUOtc29jEf7Hl5pp5Wzgt5djmTC65hhZ4y
zWPVvegUUqZCNTTEJFiZCRYi68YDAsISA9MmJKfm18JkpCiUi+HOacIBCEFm
n9GSOI9WveqkiuOkIMxdebED/WV3+bqXPVKexx28DNRpuePwx6rPIaW8V2+v
6mrQPjJdvfjn2evyTF/hPTtA+g3bOG2SSBW+sLkCf4Gx1HbYQQu1iCQN2rJ4
1xqJOnNjRAw+rki8oNQSeg6lDqJuGD9shCaqmlEWpA5VJClNbB51qY3vvvDT
S61XZXbdDfLCuFg3s/WlfoX0QjgbfXDJxmlbDXX3QfF2ixg0s4B7M4ZWMgAJ
5S5wEcmMyvfSGraabjWZmwXrrcQE5QByAFmfuogrhQe8oEnKhgzK8u/48AnK
P87v8UCQpyoLUMJMLKq+nURznSLgR3b4yf1S8kIVGVU1jc+VdmVZjYxpJxll
sSJThlH0jjZ7NzKRXr0bTsmx3tG7pNJPGvVR2WqYTA6OTk4OT44eidyYNPYn
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

-->

</rfc>
