<?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.1 (Ruby 2.7.0) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-xxx-operational-compute-metrics-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="TODO - Abbreviation">Joint Exposure of Network and Compute Information for Infrastructure-Aware Service Deployment</title>
    <seriesInfo name="Internet-Draft" value="draft-xxx-operational-compute-metrics-00"/>
    <author fullname="S. Randriamasy">
      <organization>Nokia Bell Labs</organization>
      <address>
        <email>sabine.randriamasy@nokia-bell-labs.com</email>
      </address>
    </author>
    <author fullname="L. M. Contreras">
      <organization>Telefonica</organization>
      <address>
        <email>luismiguel.contrerasmurillo@telefonica.com</email>
      </address>
    </author>
    <author fullname="Jordi Ros-Giralt">
      <organization>Qualcomm Europe, Inc.</organization>
      <address>
        <email>jros@qti.qualcomm.com</email>
      </address>
    </author>
    <date year="2023" month="October" day="23"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 58?>

<t>Service providers are starting to deploy computing capabilities
across the network for hosting applications such as AR/VR, vehicle
networks, IoT, and AI training, among others. In these distributed
computing environments, information about computing and communication
resources is necessary to determine both the proper deployment location of
each application and the best server location on which to run it.
This information is used by numerous different implementations with different
interpretations. This document proposes an initial approach towards a
common understanding and exposure scheme for metrics reflecting compute
capabilities.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://giralt.github.io/draft-xxx-operational-compute-metrics/draft-xxx-operational-compute-metrics.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-xxx-operational-compute-metrics/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/giralt/draft-xxx-operational-compute-metrics"/>.</t>
    </note>
  </front>
  <middle>
    <?line 71?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Operators are starting to deploy distributed computing environments
in different parts of the network with the objective of addressing
different service needs including latency, bandwidth, processing
capabilities, storage, etc.
This translates in the emergence of a
number of data centers (both in the cloud and at the edge) of
different sizes (e.g., large, medium, small) characterized by
distinct dimension of CPUs, memory, and storage capabilities, as well
as bandwidth capacity for forwarding the traffic generated in and out
of the corresponding data center.</t>
      <t>The proliferation of the edge computing paradigm further increases
the potential footprint and heterogeneity of the environments where a
function or application can be deployed, resulting in different
unitary cost per CPU, memory, and storage. This increases the
complexity of deciding the location where a given function or
application should be best deployed or executed.
This decision should be jointly
influenced on the one hand by the available resources in a given computing
environment, and on the other hand by the capabilities of the network path connecting
the traffic source with the destination.</t>
      <t>Network and compute aware function placement and selection has become of utmost importance in the last decade. The availability of such information is taken for granted by the numerous service providers and bodies that are specifying them.
However, deployments may reach out to data centers running different implementations with different understandings and representations of compute capabilities and smooth operation is a challenge. While standardization efforts on network capabilities representation and exposure are well-advanced, similar efforts on compute capabilitites are in their infancy.</t>
      <t>This document proposes an initial approach towards  a common understanding
and exposure scheme for metrics reflecting compute capabilities.
It aims at leveraging on existing work in the IETF on compute metrics definitions to build synergies.
It also aims at reaching out to working or research groups in the IETF that would consume such information and have particular requirements.</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>
      <?line -18?>

<!-- # Motivations

TODO TEST
ANOTHE CHANGE + COMMENTS
CHANGE 2 -->

</section>
    <section anchor="problem-space-and-needs">
      <name>Problem Space and Needs</name>
      <t>Visibility and exposure of both (1) network and (2) compute
resources to the application is critical to
enable the proper functioning of the new class of services
arising at the edge (e.g., distributed AI, driverless vehicles,
AR/VR, etc.). To understand the problem space and the capabilities
that are lacking in today's protocol interfaces needed to enable
these new services, we focus on the life cycle of
a service.</t>
      <t>At the edge, compute nodes
are deployed near communication nodes (e.g., co-located
in a 5G base station) to provide computing services that are
close to users with the goal to (1) reduce latency, (2) increase
communication bandwidth, (3) enable privacy/personalization
(e.g., federated AI learning), and (4) reduce cloud costs and
energy. Services are deployed on the communication and compute
infrastructure through a two-phase life cycle that involves first a
service <em>deployment stage</em> and then a <em>service selection</em> stage
(<xref target="lifecycle"/>).</t>
      <figure anchor="lifecycle">
        <name>Service life cycle.</name>
        <artwork><![CDATA[
 +-------------+      +--------------+      +-------------+
 |             |      |              |      |             |
 |  New        +------>  Service     +------>  Service    |
 |  Service    |      |  Deployment  |      |  Selection  |
 |             |      |              |      |             |
 +-------------+      +--------------+      +-------------+
]]></artwork>
      </figure>
      <!--
In this Section, we introduce the life cycle of a
service as a simple framework to understand the capabilities
that are lacking in today's protocol interfaces and that are necessary for
these new services. -->

<t><strong>Service deployment.</strong> This phase is carried out by the service
provider, and consists in the deployment of a new service
(e.g., a distributed AI training/inference, an XR/AR service, etc.)
on the communication and compute infrastructure. The service
provider needs to properly size the amount of communication and compute
resources assigned to this new service to meet the expected user
demand. The decision on where the service is deployed and how
many resources are requested from the infrastructure depends on
the levels of QoE that the provider wants to guarantee to the
user base. To make a proper deployment decision, the provider
must have visibility on the resources available from
the infrastructure, including communication resources (e.g., latency and
bandwidth) and compute (e.g., CPU, GPU, memory, storage). For instance,
to run a Large Language Model (LLM) with 175 billion parameters, a total
aggregated memory of 400GB and 8 GPUs are needed. The service provider needs
an interface to query the infrastructure, extract the available compute
and communication resources, and decide which subset of resources are
needed to run the service.</t>
      <t><strong>Service selection.</strong> This phase is initiated by the user, through
a client application that connects to the deployed service. There
are two main decisions that must be performed in the service selection
stage: compute node selection and path selection. In the compute node selection
step, as the service is generally replicated in
N locations (e.g., by leveraging a microservices architecture),
the application must decide which of the service replicas
it connects to. Similar to the service deployment stage, this
decision requires knowledge about communication and compute
resources available in each replica. On the other hand, in the path selection decision,
the application must decide which path it chooses to connect to the service.
This decision depends on the communication properties (e.g., bandwidth and latency)
of the available paths. Similar to the service deployment case,
the service provider needs an interface to query the infrastructure and extract the available compute
and communication resources, with the goal to make informed node and path selection decisions.
It is also important to note that, ideally, the node and path selection
decisions should be jointly optimized, since in general the best end-to-end performance
is achieved by jointly taking into account both decisions. In some cases, however,
such decisions may be owned by different players. For instance, in some network
environments, the path selection may be decided by the network operator,
wheres the node selection may be decided by the application. Even in these cases,
it is crucial to have a proper interface (for both the network operator and the service
provider) to query the available compute and communication resources from the system.</t>
      <t><xref target="prob_space"/> summarizes the problem space, the information that needs to be exposed, and the stakeholders that need this information.</t>
      <table anchor="prob_space">
        <name>Problem space, needs, and stakeholders.</name>
        <thead>
          <tr>
            <th align="right">Action to take</th>
            <th align="center">Information needed</th>
            <th align="left">Who needs it</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">Service placement</td>
            <td align="center">Compute and communication</td>
            <td align="left">Service provider</td>
          </tr>
          <tr>
            <td align="right">Service selection/node selection</td>
            <td align="center">Compute</td>
            <td align="left">Network/service provider and/or application</td>
          </tr>
          <tr>
            <td align="right">Service selection/path selection</td>
            <td align="center">Communication</td>
            <td align="left">Network/service and/or application</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="guiding-principles">
      <name>Guiding Principles</name>
      <t>The driving principles for designing an interface to jointly extract network and compute information are as follows:</t>
      <t>P1. Leverage metrics across working groups to avoid reinventing the wheel. For instance:</t>
      <ul spacing="normal">
        <li>
          <t>RFC 9439 <xref target="I-D.ietf-alto-performance-metrics"/> leverages IPPM metrics from RFC 7679.</t>
        </li>
        <li>
          <t>Section 5.2 of <xref target="I-D.du-cats-computing-modeling-description"/> considers delay as a good metric, since it is easy to use in both compute and communication domains. RFC 9439 also defines delay as part of the performance metrics.</t>
        </li>
        <li>
          <t>Section 6 of <xref target="I-D.du-cats-computing-modeling-description"/> proposes to represent the network structure as graphs, which is similar to the ALTO map services in <xref target="RFC7285"/>.</t>
        </li>
      </ul>
      <t>P2. Aim for simplicity, while ensuring the combined efforts
don’t leave technical gaps in supporting the full life cycle
of service deployment and selection. For instance, the CATS working
group is covering path selection from a network standpoint, while
ALTO (e.g., <xref target="RFC7285"/>) covers exposing of network information
to the service provider and the client application. However,
there is currently no effort being pursued to expose compute information
to the service provider and the client application for
service placement or selection.</t>
    </section>
    <section anchor="related-work">
      <name>Related Work</name>
      <t>Some existing work has explored compute-related metrics. They can be categorized as follows:</t>
      <ul spacing="normal">
        <li>
          <t>References providing raw compute infrastructure metrics: <xref target="I-D.contreras-alto-service-edge"/> includes references to cloud management solutions (i.e., OpenStack, Kubernetes, etc) which administer the virtualization infrastructure, providing information about raw compute infrastructure metrics. Furthermore, <xref target="NFV-TST"/> describes processor, memory and network interface usage metrics.</t>
        </li>
        <li>
          <t>References providing compute virtualization metrics: <xref target="RFC7666"/> provides several metrics as part of the Management Information Base (MIB) definition for managing virtual machines controlled by a hypervisor. The objects there defined make reference to the resources consumed by a particluar virtual machine serving as host for services or applications. Moreover, <xref target="NFV-INF"/> provides metrics associated to virtualized network functions.</t>
        </li>
        <li>
          <t>References providing service metrics including compute-related information: <xref target="I-D.dunbar-cats-edge-service-metrics"/> proposes metrics associated to services running in compute infrastructures. Some of these metrics do not depend on the infrastructure behavior itself but from where such compute infrastructure is topologically located.</t>
        </li>
      </ul>
    </section>
    <section anchor="gap-analysis">
      <name>GAP Analysis</name>
      <t>From this related work it is evident that compute-related metrics can serve several purposes, ranging from service instance instantiation to service instance behavior, and then to service instance selection. Some of the metrics could refer to the same object (e.g., CPU) but with a particular usage and scope.</t>
      <t>In contrast, the network metrics are more uniform and straightforward. It is then necessary to consistently define a set of metrics that could assist to the operation in the different concerns identified so far, so that networks and systems could have a common understanding of the perceived compute performance. When combined with network metrics, the combined network plus compute performance behavior will assist informed decisions particular to each of the operational concerns related to the different parts of a service life cycle.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7285">
          <front>
            <title>Application-Layer Traffic Optimization (ALTO) Protocol</title>
            <author fullname="R. Alimi" initials="R." role="editor" surname="Alimi"/>
            <author fullname="R. Penno" initials="R." role="editor" surname="Penno"/>
            <author fullname="Y. Yang" initials="Y." role="editor" surname="Yang"/>
            <author fullname="S. Kiesel" initials="S." surname="Kiesel"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="W. Roome" initials="W." surname="Roome"/>
            <author fullname="S. Shalunov" initials="S." surname="Shalunov"/>
            <author fullname="R. Woundy" initials="R." surname="Woundy"/>
            <date month="September" year="2014"/>
            <abstract>
              <t>Applications using the Internet already have access to some topology information of Internet Service Provider (ISP) networks. For example, views to Internet routing tables at Looking Glass servers are available and can be practically downloaded to many network application clients. What is missing is knowledge of the underlying network topologies from the point of view of ISPs. In other words, what an ISP prefers in terms of traffic optimization -- and a way to distribute it.</t>
              <t>The Application-Layer Traffic Optimization (ALTO) services defined in this document provide network information (e.g., basic network location structure and preferences of network paths) with the goal of modifying network resource consumption patterns while maintaining or improving application performance. The basic information of ALTO is based on abstract maps of a network. These maps provide a simplified view, yet enough information about a network for applications to effectively utilize them. Additional services are built on top of the maps.</t>
              <t>This document describes a protocol implementing the ALTO services. Although the ALTO services would primarily be provided by ISPs, other entities, such as content service providers, could also provide ALTO services. Applications that could use the ALTO services are those that have a choice to which end points to connect. Examples of such applications are peer-to-peer (P2P) and content delivery networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7285"/>
          <seriesInfo name="DOI" value="10.17487/RFC7285"/>
        </reference>
        <reference anchor="I-D.ietf-alto-performance-metrics">
          <front>
            <title>Application-Layer Traffic Optimization (ALTO) Performance Cost Metrics</title>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Y. Richard Yang" initials="Y. R." surname="Yang">
              <organization>Yale University</organization>
            </author>
            <author fullname="Young Lee" initials="Y." surname="Lee">
              <organization>Samsung</organization>
            </author>
            <author fullname="Dhruv Dhody" initials="D." surname="Dhody">
              <organization>Huawei</organization>
            </author>
            <author fullname="Sabine Randriamasy" initials="S." surname="Randriamasy">
              <organization>Nokia Bell Labs</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <date day="21" month="March" year="2022"/>
            <abstract>
              <t>The cost metric is a basic concept in Application-Layer Traffic
Optimization (ALTO), and different applications may use different
types of cost metrics. Since the ALTO base protocol (RFC 7285)
defines only a single cost metric (namely, the generic "routingcost"
metric), if an application wants to issue a cost map or an endpoint
cost request in order to identify a resource provider that offers
better performance metrics (e.g., lower delay or loss rate), the base
protocol does not define the cost metric to be used.

 This document addresses this issue by extending the specification to
provide a variety of network performance metrics, including network
delay, delay variation (a.k.a. jitter), packet loss rate, hop count,
and bandwidth.

 There are multiple sources (e.g., estimations based on measurements
or a Service Level Agreement) available for deriving a performance
metric. This document introduces an additional "cost-context" field
to the ALTO "cost-type" field to convey the source of a performance
metric.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-alto-performance-metrics-28"/>
        </reference>
        <reference anchor="I-D.du-cats-computing-modeling-description">
          <front>
            <title>Computing Information Description in Computing-Aware Traffic Steering</title>
            <author fullname="Zongpeng Du" initials="Z." surname="Du">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Yuexia Fu" initials="Y." surname="Fu">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Cheng Li" initials="C." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Daniel Huang" initials="D." surname="Huang">
              <organization>ZTE</organization>
            </author>
            <author fullname="Zhihua Fu" initials="Z." surname="Fu">
              <organization>New H3C Technologies</organization>
            </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <t>   This document describes the considerations and the potential
   architecture of the computing information that needs to be notified
   into the network in Computing-Aware Traffic Steering (CATS).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-du-cats-computing-modeling-description-02"/>
        </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="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="NFV-TST" target="https://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/008/03.03.01_60/gs_NFV-TST008v030301p.pdf">
          <front>
            <title>ETSI GS NFV-TST 008 V3.3.1, NFVI Compute and Network Metrics Specification</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="June" day="01"/>
          </front>
        </reference>
        <reference anchor="NFV-INF" target="https://www.etsi.org/deliver/etsi_gs/NFV-INF/001_099/010/01.01.01_60/gs_NFV-INF010v010101p.pdf">
          <front>
            <title>ETSI GS NFV-INF 010, v1.1.1, Service Quality Metrics</title>
            <author>
              <organization/>
            </author>
            <date year="2014" month="December" day="01"/>
          </front>
        </reference>
        <reference anchor="I-D.contreras-alto-service-edge">
          <front>
            <title>Use of ALTO for Determining Service Edge</title>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Sabine Randriamasy" initials="S." surname="Randriamasy">
              <organization>Nokia Bell Labs</organization>
            </author>
            <author fullname="Jordi Ros-Giralt" initials="J." surname="Ros-Giralt">
              <organization>Qualcomm Europe</organization>
            </author>
            <author fullname="Danny Alex Lachos Perez" initials="D. A. L." surname="Perez">
              <organization>Benocs</organization>
            </author>
            <author fullname="Christian Esteve Rothenberg" initials="C. E." surname="Rothenberg">
              <organization>Unicamp</organization>
            </author>
            <date day="13" month="October" year="2023"/>
            <abstract>
              <t>   Service providers are starting to deploy computing capabilities
   across the network for hosting applications such as AR/VR, vehicle
   networks, IoT, and AI training, among others.  In these distributed
   computing environments, knowledge about computing and communication
   resources is necessary to determine the proper deployment location of
   each application.  This document proposes an initial approach towards
   the use of ALTO to expose such information to the applications and
   assist the selection of their deployment locations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-contreras-alto-service-edge-10"/>
        </reference>
        <reference anchor="RFC7666">
          <front>
            <title>Management Information Base for Virtual Machines Controlled by a Hypervisor</title>
            <author fullname="H. Asai" initials="H." surname="Asai"/>
            <author fullname="M. MacFaden" initials="M." surname="MacFaden"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="K. Shima" initials="K." surname="Shima"/>
            <author fullname="T. Tsou" initials="T." surname="Tsou"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, this specifies objects for managing virtual machines controlled by a hypervisor (a.k.a. virtual machine monitor).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7666"/>
          <seriesInfo name="DOI" value="10.17487/RFC7666"/>
        </reference>
        <reference anchor="I-D.dunbar-cats-edge-service-metrics">
          <front>
            <title>5G Edge Services Use Cases</title>
            <author fullname="Linda Dunbar" initials="L." surname="Dunbar">
              <organization>Futurewei</organization>
            </author>
            <author fullname="Kausik Majumdar" initials="K." surname="Majumdar">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Gyan Mishra" initials="G. S." surname="Mishra">
              <organization>Huawei</organization>
            </author>
            <author fullname="Haibo Wang" initials="H." surname="Wang">
              <organization>Huawei</organization>
            </author>
            <author fullname="Haoyu Song" initials="H." surname="Song">
              <organization>Futurewei</organization>
            </author>
            <date day="6" month="July" year="2023"/>
            <abstract>
              <t>   This draft describes the 5G Edge computing use cases for CATS
   and how BGP can be used to propagate additional IP layer
   detectable information about the 5G edge data centers so that
   the ingress routers in the 5G Local Data Network can make
   path selections based on not only the routing distance but
   also the IP Layer relevant metrics of the destinations. The
   goal is to improve latency and performance for 5G Edge
   Computing (EC) services even when the detailed servers
   running status are unavailable.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dunbar-cats-edge-service-metrics-01"/>
        </reference>
      </references>
    </references>
    <?line 274?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
quyvezOk/Wrvo9tchpEg9v8AcimAkiw2AAA=

-->

</rfc>
