<?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.7.11 (Ruby 3.0.2) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cxx-ippm-ioamaggr-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="ioam-aggr">Aggregation Trace Option for In-situ Operations, Administration, and Maintenance (IOAM)</title>
    <seriesInfo name="Internet-Draft" value="draft-cxx-ippm-ioamaggr-01"/>
    <author initials="A." surname="Clemm" fullname="Alexander Clemm">
      <organization/>
      <address>
        <email>ludwig@clemm.org</email>
      </address>
    </author>
    <author initials="L." surname="Metzger" fullname="Laurent Metzger">
      <organization>Ostschweizer Fachhochschule - OST</organization>
      <address>
        <email>laurent.metzger@ost.ch</email>
      </address>
    </author>
    <date year="2024" month="April" day="25"/>
    <workgroup>IPPM</workgroup>
    <abstract>
      <?line 36?>

<t>The purpose of this memo is to describe a new option type for In-Situ Operations, Administration, and Maintenance (IOAM).  This option type allows to aggregate IOAM data along a network path.  Aggregates include functions such as the sum, average, minimum, or maximum of a given data parameter.</t>
    </abstract>
  </front>
  <middle>
    <?line 40?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This memo proposes a new option type for In-Situ Operations, Administration, and Maintenance (IOAM) <xref target="RFC9197"/>.  The IOAM Aggregate option type allows to aggregate IOAM data along a network path.  Aggregates include functions such as the sum, average, minimum, or maximum of a given data parameter.</t>
      <t>Many applications interested in telemetry data across a path are not so much interested in each individual node's telemetry, but an aggregate to paint a more holistic picture.  An example of an aggregate could be a sum (for example, the sum of packet dwell times experienced across a path), an average (for example, the average dwell time experienced across a path), or a minimum or maximum (for example, of the dwell time experienced on any hop across the path, along with the node ID where the extreme was experienced).  Other applications include sustainable networking, where (for example) the carbon-intensity of a path as a whole needs to be determined as an input to applications that attempt to minimize pollution attributable to specific networking traffic.</t>
      <t>The aggregation option type proposed in this memo addresses the needs of those applications.  Rather than collecting individual IOAM data parameters at each node and exporting them for further processing, IOAM Aggregate allows to preprocess telemetry data into an aggregate as a packet traverses a path. Aggregating parameters along the path, instead of merely collecting them, offers the following advantages:</t>
      <ul spacing="normal">
        <li>
          <t>It keeps the packet size constant.  This avoids problems such as the possibility of packets exceeding their MTU and need for fragmentation and reassembly in case of longer data paths, or deteriorating packet delays as packets grow in size along a path.</t>
        </li>
        <li>
          <t>It reduces the volume of data to be exported.</t>
        </li>
        <li>
          <t>It obviates the need to correlate data exported from individual nodes as belonging to the same flow, when compared with processing of postcard telemetry data <xref target="RFC9326"/>.</t>
        </li>
        <li>
          <t>It significantly reduces the amount of processing that needs to be done by applications, simplifying their development and deployment.</t>
        </li>
        <li>
          <t>It enables greater network intelligence, such as taking actions on aggregates when certain thresholds are exceeded.</t>
        </li>
      </ul>
      <t>Aggregating parameters does require a small amount of processing (such as, an arithmetic operations to add to a sum, or a comparison operation to determine a minimum) at each hop, requiring some additional processing cycles.  This is a small tradeoff to be aware of when choosing this option.  We believe that this tradeoff will be acceptable in many implementations and deployment scenarios.</t>
    </section>
    <section anchor="background">
      <name>Background</name>
      <t><xref target="RFC9197"/> defines the scope of IOAM as well as the different IOAM nodes.  The following section reiterates those roles and explains how they are applied in the context of IOAM Aggregation.</t>
      <t>IOAM is focused on "limited domains", as defined in <xref target="RFC8799"/>. IOAM is not targeted for a deployment on the global Internet, which would incur additional considerations such as the crossing of Trust Boundaries, authentication of IOAM data, or the desire to obfuscate domain internals to outside parties.   The part of the network that employs IOAM is referred to as the "IOAM-Domain".</t>
      <t>An IOAM-Domain consists of "IOAM encapsulating nodes", "IOAM decapsulating nodes", and "IOAM transit nodes", as depicted in <xref target="FIG-ioam-roles"/>.</t>
      <figure anchor="FIG-ioam-roles">
        <name>Roles of IOAM nodes</name>
        <artwork><![CDATA[
                                                      Export of
                                                  IOAM data (opt.)
                                                          ^
                                                          |
User     +--------+     +--------+     +--------+     +---+----+
packets  |Encapsu-|     | Transit|     | Transit|     |Decapsu-|
-------->|lating  |====>| Node   |====>| Node   |====>|lating  |-->
         |Node    |     | A      |     | B      |     |Node    |
         +--------+     +--------+     +--------+     +--------+
]]></artwork>
      </figure>
      <t>The role of these nodes is as follows:</t>
      <ul spacing="normal">
        <li>
          <t>The Encapsulating Node originates the IOAM aggregation. It adds the IOAM Aggregation Option to the packet for which telemetry data is to be aggregated across the path and populates the fields with their initial values.</t>
        </li>
        <li>
          <t>The Transit Node is an IOAM-enabled node that aggregates the value of its own telemetry with the aggregate in the packet, updating the aggregation data as needed.</t>
        </li>
        <li>
          <t>The Decapsulating Node terminates the IOAM aggregation.  It aggregates the value of its own telemetry with the aggregate in the packet and updates the aggregation data as needed. It subsequently exports the aggregated data, specifically, including the value of the aggregate itself as well as auxiliary data as applicable (e.g. node ID for min, max, and in case of errors).</t>
        </li>
      </ul>
    </section>
    <section anchor="ioam-aggregation-option-type">
      <name>IOAM Aggregation Option-Type</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>This section defines the data fields for the IOAM Aggregation Option Type format.  Like other IOAM Aggregation Option Types, these data fields can be mapped into a number of transport protocols <xref target="RFC9378"/>.  For example, a transport over IPv6 <xref target="RFC8200"/> has been defined in <xref target="RFC9486"/>.</t>
        <t>The format of the IOAM Aggregation Option Type data fields is depicted in <xref target="FIG-ioam-aggr-option-hdr"/>.</t>
        <figure anchor="FIG-ioam-aggr-option-hdr">
          <name>IOAM Aggregation Option Type Format</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Namespace-ID           | Flags |       Reserved        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               IOAM Data Param                 |  Aggregator   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Aggregate                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Auxil-data Node-ID                |   Hop Count    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The total length of the IOAM Aggregation Option Type data fields is fixed at 16 octets (word-aligned).  These 16 octets hold header information as well as aggregation data in the following fields:</t>
        <ul spacing="normal">
          <li>
            <t>Namespace-ID: 16-bit identifier of an IOAM-Namespace, as defined in <xref target="RFC9197"/>.  The Namespace-ID is populated by the encapsulating node and MUST NOT be changed by any of the intermediate nodes.  The Namespace-ID value of 0x0000 is defined as the "Default-Namespace-ID" and MUST be known to all the nodes implementing IOAM.  For any other Namespace-ID value that does not match any Namespace-ID the node is configured to operate on, the node MUST NOT change the contents of the IOAM-Data-Fields except for the Namespace Flag (see below).</t>
          </li>
          <li>
            <t>Flags: 4-bit field to indicate errors that were encountered when attempting to process the IOAM Aggregation Option along the path.  Once a flag is set, no further aggregation occurs along the path.  An intermediate node that encounters an error during processing of the IOAM Aggregation that prevents it from updating the aggregate as requested MUST set the corresponding flag to 1.  In order to facilitate troubleshooting, it also MUST set the value of the Auxil-data Node-ID field to its own Node-ID. The encapsulating node MUST set the value of Flags to zero upon transmission.  When an intermediate node encounters receives a packet in which any of the Flags are non-zero, the node MUST NOT perform further IOAM operations on that packet; instead, the IOAM data MUST be forwarded as-is unchanged.  The following flags are defined:
            </t>
            <ul spacing="normal">
              <li>
                <t>Flag 1: Aggregator not supported</t>
              </li>
              <li>
                <t>Flag 2: Unsupported IOAM data parameter</t>
              </li>
              <li>
                <t>Flag 3: Unsupported Namespace</t>
              </li>
              <li>
                <t>Flag 4: Any other error</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Reserved: An IOAM encapsulating node MUST set the value to zero upon transmission. IOAM transit nodes MUST ignore the received value.</t>
          </li>
          <li>
            <t>IOAM Data Param: This field identifies the data parameter that is to be aggregated across the nodes.  It MUST be set by the IOAM encapsulating node.  IOAM transit nodes MUST NOT change it.  Contrary to IOAM Trace-Type in the pre-allocated and incremental trace option types, only a single parameter is aggregated at a time.  Accordingly, the data parameter to be aggregated is not identified by a a particular bit, but by a value.</t>
          </li>
          <li>
            <t>Aggregator: This 8-bit field identifies the aggregation function that is to be applied.  Its value MUST be set by the IOAM encapsulating node.  IOAM transit nodes MUST not change it.  The following aggregators are defined:
            </t>
            <ul spacing="normal">
              <li>
                <t>Sum (value: 0b1)</t>
              </li>
              <li>
                <t>Min (value: 0b10)</t>
              </li>
              <li>
                <t>Max (value: 0b100)</t>
              </li>
              <li>
                <t>Average (value: 0b1000)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Aggregate: This 32-bit field contains the aggregated value.  Its value is initialized by the encapsulating node,in general by simply recording the value of its data parameter that is to be aggregated.  The field is updated 
by each subsequent node pre the requested aggregation, including IOAM transit nodes as well as the IOAM decapsulating node (prior to performing decapsulation).</t>
          </li>
          <li>
            <t>Auxil-data Node-ID: This 24-bit field contains a Node-ID. It MUST be set by the encapsulating node to its own Node ID. 
Subsequent nodes (IOAM transit nodes, as well as the IOAM decapsulating node prior to performing decapsulation) MUST update the value to their own Node-ID IF AND ONLY IF one of the following conditions hold, otherwise they MUST NOT change its value:
            </t>
            <ul spacing="normal">
              <li>
                <t>When a flag is set by the node (i.e., the first time any type of error is encounted along the path)</t>
              </li>
              <li>
                <t>When the aggregator is one of Min or Max, and a new minimum respectively maximum is encountered.  The value of the Auxil-data Node-ID field is hence used to record where the minimum respectively maximum value was  first encountered.  (When a node matches an existing minimum or maximum but does not beat it, the Node-ID is not updated.)</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Hop Count.  This 8-bit fields contains a hop count to record the number of nodes along the path that successfully processed the IOAM Aggregation.  The encapsulating node MUST set the value to 1, and each subsequent node (transit nodes, as well as the decapsulating node prior to performing decapsulation) MUST increment its value by 1.  If the Hop Count at a node exceeds 255, that node MUST set the Hop Count to 0 and set Flag 4 ("any other error") to prevent further processing of the IOAM Aggregation.</t>
          </li>
        </ul>
      </section>
      <section anchor="discussion">
        <name>Discussion</name>
        <t>This section explains some of the design choices and points out items that may be subjected to further discussion.</t>
        <ul spacing="normal">
          <li>
            <t>Single versus multiple parameters.  The Aggregation Option Type allows to only aggregate one data parameter at a time.  This allows to keep the format of the data structure simple and of fixed size. This facilitates processing. It also limits the number of processing cycles that need to be spent for aggregation at each node. An application seeking to perform multiple types of aggregation at a time will need to apply different types of aggregation for different packets.</t>
          </li>
          <li>
            <t>IOAM data parameter identification.  Unlike other IOAM Option Types, data parameters are not represented by a bit position in a field but by a 24-bit identifier.  This allows to support a greater number of parameters.  In order to facilitate compatibility, initially only identifiers SHOULD be used that utilize bits 12 through 22, with other bits set to 0.  The assignment of IOAM data parameter identifiers is at this point up to the network operator, with IOAM data parameters being specific to an IOAM name space.  It is conceivable that a global namespace and a corresponding IANA registry for IOAM data parameters would be introduced at a later point in time.</t>
          </li>
          <li>
            <t>Average aggregator.  An average can be easily derived from dividing a sum obtained across all nodes by the hopcount.  Avoiding division operations along the path can save considerable processing cycles.  It is FFS if the average aggregator is really required.</t>
          </li>
          <li>
            <t>Simultaneous use with other IOAM Option Types.  There are use cases conceivable that would benefit from also adding a trace of which nodes were actually traversed on the path.  The possibility to do so is already provided with other IOAM Option Types and does not need to be added here.  In order to use multiple IOAM Option Types simultaneously, applications can use one of several alternatives.  In one alternative, multiple IOAM Option Types with their corresponding data structures are simultaneously used in the same packet.  In another alternative, different packets of the same flow are each send with a different IOAM Option Type, a form of sampling which however provides no absolute guarantees of path congruency (i.e., different packets traversing the exact same path).</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>A malicious node along the path could attempt to forge the aggregate, resulting in a wrong aggregate to be reported.  This might mislead applications.  Likewise, a malicious node along the path could set a flag to trick other nodes not to process the aggregate any further, or clear a flag to make an errored result appear legitimate.  To avoid this, network operators need to ensure that their network nodes can be trusted and are not compromised.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA requests are TBD.  Future versions of this document may request the establishment of a registry for Aggregators as well as for IOAM Data Parameters.</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <ul spacing="normal">
        <li>
          <t>Ramon Bister, OST</t>
        </li>
        <li>
          <t>Severin Dellsperger, OST</t>
        </li>
        <li>
          <t>Reto Furrer, OST</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9197">
          <front>
            <title>Data Fields for In Situ Operations, Administration, and Maintenance (IOAM)</title>
            <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
            <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
            <author fullname="T. Mizrahi" initials="T." role="editor" surname="Mizrahi"/>
            <date month="May" year="2022"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) collects operational and telemetry information in the packet while the packet traverses a path between two points in the network. This document discusses the data fields and associated data types for IOAM. IOAM-Data-Fields can be encapsulated into a variety of protocols, such as Network Service Header (NSH), Segment Routing, Generic Network Virtualization Encapsulation (Geneve), or IPv6. IOAM can be used to complement OAM mechanisms based on, e.g., ICMP or other types of probe packets.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9197"/>
          <seriesInfo name="DOI" value="10.17487/RFC9197"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC8799">
          <front>
            <title>Limited Domains and Internet Protocols</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="B. Liu" initials="B." surname="Liu"/>
            <date month="July" year="2020"/>
            <abstract>
              <t>There is a noticeable trend towards network behaviors and semantics that are specific to a particular set of requirements applied within a limited region of the Internet. Policies, default parameters, the options supported, the style of network management, and security requirements may vary between such limited regions. This document reviews examples of such limited domains (also known as controlled environments), notes emerging solutions, and includes a related taxonomy. It then briefly discusses the standardization of protocols for limited domains. Finally, it shows the need for a precise definition of "limited domain membership" and for mechanisms to allow nodes to join a domain securely and to find other members, including boundary nodes.</t>
              <t>This document is the product of the research of the authors. It has been produced through discussions and consultation within the IETF but is not the product of IETF consensus.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8799"/>
          <seriesInfo name="DOI" value="10.17487/RFC8799"/>
        </reference>
        <reference anchor="RFC9326">
          <front>
            <title>In Situ Operations, Administration, and Maintenance (IOAM) Direct Exporting</title>
            <author fullname="H. Song" initials="H." surname="Song"/>
            <author fullname="B. Gafni" initials="B." surname="Gafni"/>
            <author fullname="F. Brockners" initials="F." surname="Brockners"/>
            <author fullname="S. Bhandari" initials="S." surname="Bhandari"/>
            <author fullname="T. Mizrahi" initials="T." surname="Mizrahi"/>
            <date month="November" year="2022"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) is used for recording and collecting operational and telemetry information. Specifically, IOAM allows telemetry data to be pushed into data packets while they traverse the network. This document introduces a new IOAM option type (denoted IOAM-Option-Type) called the "IOAM Direct Export (DEX) Option-Type". This Option-Type is used as a trigger for IOAM data to be directly exported or locally aggregated without being pushed into in-flight data packets. The exporting method and format are outside the scope of this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9326"/>
          <seriesInfo name="DOI" value="10.17487/RFC9326"/>
        </reference>
        <reference anchor="RFC9378">
          <front>
            <title>In Situ Operations, Administration, and Maintenance (IOAM) Deployment</title>
            <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
            <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
            <author fullname="D. Bernier" initials="D." surname="Bernier"/>
            <author fullname="T. Mizrahi" initials="T." role="editor" surname="Mizrahi"/>
            <date month="April" year="2023"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) collects operational and telemetry information in the packet while the packet traverses a path between two points in the network. This document provides a framework for IOAM deployment and provides IOAM deployment considerations and guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9378"/>
          <seriesInfo name="DOI" value="10.17487/RFC9378"/>
        </reference>
        <reference anchor="RFC9486">
          <front>
            <title>IPv6 Options for In Situ Operations, Administration, and Maintenance (IOAM)</title>
            <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
            <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>In situ Operations, Administration, and Maintenance (IOAM) records operational and telemetry information in the packet while the packet traverses a path between two points in the network. This document outlines how IOAM Data-Fields are encapsulated in IPv6.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9486"/>
          <seriesInfo name="DOI" value="10.17487/RFC9486"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9VbbXPbRpL+zl8xZX9YqUyyJNmJbW7t1spWdOsqv6Rsubau
rnavhsCQnDOAwWIAUUqU++37dPcMMCAprZP4PhxTSUhgXnr69eme1mw2m2Qu
t9V6obp2NXsxmbS2LcxCna/XjVnr1rpKXTU6M+pDzT9WrlFvqpm3bYdHpuEh
fqrO89JW1rfyYKp0lat32latqXSF6UdvPpy/O57o5bIx1wtlnS5nGptMcpdV
usSWeaNX7Sy7uZnZui5nNIIGzE5OJ1vQ9+bHH99NbN0sVNt0vj07OXl5cjbJ
dGvWrrldKN/mk4lvse9/68JVWPDW+EltF+q/WpdNlXdN25gVSPW3pXzJXFma
qvV/n0x0125cs5goNcO//LGVBx/m6nVhyjI+FFLPC3ODjUwzfmlKbYuFKrp8
a9d/yejV3DXrvUXfztU70/60Ns142be6a0DP7ksssVAffOuzzdbYn7Drpc42
G5dt8KQrjJqpD5+udomQtealrPUX59t5tplMKteUENG1obN+vHz98vTl88Vk
YqvVzosX4HD8+vzlyzj86dn3/dfnL+LXZy/wdDKZzWZKL0kJsnYyudoYVXdN
7bxRbqXajfWqNKVT+H/rVG581tilUVpVZquc6Fd7W5uoZJ9+m5LNlbqivdIV
dVG4LW+rg2YbRYNVrlutSGHWTEe7dc0XVet2g1WiERgPuWUQKyjrqoyJUb7L
NkpjSZzSdyWIuQahazNVRGNJT3CKUt/Qdzq/Vmtwt5Ida91A5K1psI3wrbR5
XpjJ5DFO3jYu73gf4mJkW9044qX/5gxTP/8cNOGXX5h5gTf9+f8fsfKdrm6V
ruvCZsIERadtjG9Njq+qNTBL0za3gdyscZ44SnQq3RhVuRa+QpVE03iq0fwo
t9c273SBkbn5gx9WnKpl14LFCV/ApJrYjQ1Kh8U3roA0bKZqm7UwUOIMFr7R
ZV2wkYxmZ64rcsUWAraoI5JyGDuNzKJJtc6+mFblW1MUqrUlmGxuoAXWQMb5
+IzHU95DGHxgyfhmWOzBtTBdRymlQhovzNZ/75pQLBLaxtVxeRpMG0yDOm0t
hEMPieXqzYXabiAXfmJu4NWx4FaPDk1O4APeN7u6ILrnEUEgF70E14OmIghO
w7op8ce8S6abpatmbDgIfbeihKIzxI0tBEsrmZwNAyLLSSPBGOKZJ5bbqoZ2
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

-->

</rfc>
