<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-iab-protocol-greasing-01" category="info" consensus="true" submissionType="IAB" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Protocol Greasing">Considerations For Maintaining Protocols Using Grease and Variability</title>
    <seriesInfo name="Internet-Draft" value="draft-iab-protocol-greasing-01"/>
    <author fullname="Lucas Pardue">
      <organization>Cloudflare</organization>
      <address>
        <email>lucas@lucaspardue.com</email>
      </address>
    </author>
    <author fullname="Tommy Pauly">
      <organization>Apple</organization>
      <address>
        <email>tpauly@apple.com</email>
      </address>
    </author>
    <author fullname="Dave Thaler">
      <organization>Armidale Consulting</organization>
      <address>
        <email>dave.thaler.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="06"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 46?>

<t>Active use and maintenance of network protocols is an important way to
ensure that protocols remain interoperable and extensible over time.
Techniques such as intentionally exercising extension points with
non-meaningful values (referred to as "grease") or adding variability
to how protocol elements are used help generate this active use.</t>
      <t>Grease and variability are used across various protocols developed
by the IETF. This document discusses considerations when designing
and deploying grease and variability mechanisms, and provides
advice for making them as effective as possible.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://intarchboard.github.io/draft-protocol-greasing/draft-iab-protocol-greasing.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-iab-protocol-greasing/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/intarchboard/draft-protocol-greasing"/>.</t>
    </note>
  </front>
  <middle>
    <?line 59?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref section="3" sectionFormat="of" target="VIABILITY"/> discusses "active use" as a category
of techniques that protocol designers and implementers employ to ensure
that protocol extension mechanisms are exercised and can be used in the
future. This ability to change (to handle protocol updates and extensions)
is an important factor in the success of protocol deployment, as discussed
in <xref target="SUCCESS"/>.</t>
      <t>Active use of protocol features and extensions often requires intentional
efforts beyond what would organically occur in deployments. Some extension
points do not frequently see new values being used, but that they remain
usable in the future is important. Some patterns of protocol usage might be
relatively static without specific efforts to ensure that they can change
in the future.</t>
      <t>One key technique for intentional use is "grease" (an acronym for
Generate Random Extensions And Sustain Extensibility), or "greasing".
Greasing was initially designed for TLS <xref target="GREASE"/> and was later
adopted by other protocols such as QUIC <xref target="QUIC"/>. In these protocols,
extension codepoints are reserved only for greasing and must be ignored
upon receipt. Greasing is suitable for many protocols but not all; <xref section="3.3" sectionFormat="of" target="VIABILITY"/> discusses the applicability and limitations of greasing.</t>
      <t>While it is becoming more common, designing and applying grease is not
necessarily trivial. There are best practices, and some common pitfalls to
avoid, that have been developed by the protocols using grease thus far.
<xref target="grease-considerations"/> takes these learnings and provides considerations
for new protocol design and deployment.</t>
      <t>Separate from greasing using reserved values, protocol deployments can
intentionally add variability to ensure that network endpoints and
middleboxes do not end up ossifying certain patterns. For example, an HTTP
deployment focused on downloads might want to add support for uploads.
Changing use of the application and transport protocol features can affect
the deployment's network traffic profile. If expectations have been formed
around historical patterns of use, i.e., ossification, introducing change
might lead to deployment problems. <xref target="variability"/> presents
considerations about how intentionally increasing the variability of protocols
can mitigate some of these concerns.</t>
      <t>Protocol extensions can provide longevity in the face of changing needs or
environment. However, a replacment protocol might be preferred when extensions
are not adequate or feasible. A protocol replacement could aggregate common
extensions and possibly make them mandatory, effectively defining a new baseline
that can simplify deployment and interoperability. A replacement protocol
version may or may not be compatible with other versions. A protocol may or may
not have a mechanism for version selection or agility. <xref target="versions"/> presents
considerations about designing for and/or implementing version negotiation and
migration.</t>
    </section>
    <section anchor="grease-considerations">
      <name>Considerations for Greasing Protocols</name>
      <t>Greasing can take many forms, depending on the protocol and the nature of its
extension points. The common pattern across forms of greasing is that values
are generated that have no useful meaning to the protocol and are meant to
be ignored upon receipt. Such values used for the purpose of greasing are
referred to as "grease values" within this document.</t>
      <t>More background to this approach is given in <xref section="3.3" sectionFormat="of" target="VIABILITY"/>.</t>
      <t>This section provides some practical considerations for how to define and
use greasing, and avoid possible pitfalls.</t>
      <section anchor="define">
        <name>Define and Register Grease Value Ranges</name>
        <t>Many protocols that use greasing have a limited set of possible values or
codepoints that can be used in a particular extension point. A common
approach is to reserve a subset of the registrable space for greasing.</t>
        <t>The following are some examples of protocols that have reserved codepoints for grease values:</t>
        <ul spacing="normal">
          <li>
            <t>TLS (<xref target="GREASE"/>)</t>
          </li>
          <li>
            <t>QUIC (<xref section="18.1" sectionFormat="of" target="QUIC"/>)</t>
          </li>
          <li>
            <t>HTTP/3 (<xref section="7.2.8" sectionFormat="of" target="RFC9114"/>)</t>
          </li>
          <li>
            <t>Privacy Pass (<xref target="PRIVACYPASS"/>)</t>
          </li>
        </ul>
        <t>The specifics of how to reserve values depends on the nature of the
available space. For protocols with large possible spaces, it is useful
to have a large set of grease values to increase the chance that
receiver greasing requirements are exercised. The specific
size and distribution of the grease range needs to accommodate the
protocol constraints. For instance, protocols that use 8-bit fields may
find it too costly to dedicate many grease values, while 32-bit or 64-bit
fields are likely to have no such limitations.</t>
        <t>It is recommended to use an algorithm to reserve large sets of values.
For example, <xref target="QUIC"/> uses an algorithm of <tt>31 * N + 27</tt> to allocate
grease values for transport parameters.</t>
        <t>One possible problem with some algorithms is that they will spread out
values over the space, and impact the ability to use or reserve contiguous
blocks of non-grease values. It is common for protocol extension designers
to want to reserve contiguous blocks of codepoints in order to aid
iteration and experimentation. Reserved grease values can end up being
in spaces that would otherwise be used for such contiguous blocks.</t>
        <t>Codepoints being used for new reservations, or experimentation, need
to be careful to not unintentionally use grease values. Doing so could
lead to interoperability failures.</t>
        <section anchor="iana-tips">
          <name>Recommendations for IANA Considerations</name>
          <t>IANA registries that contain reserved grease values need to indicate that
the values are reserved in order to prevent them from being allocated
for other uses. The specifics of how to represent the reservations
is up to the documents that define the registries.</t>
          <t>Some registries list out the reserved grease values individually, marked as
"Reserved". For example, the TLS registry uses this approach
(https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml).</t>
          <t>If an algorithm or pattern is used to define grease values, it is recommended
when possible to instead only define a single entry for the entire grease value
set. This entry should include the pattern or algorithm. This approach is used by
the QUIC registry (https://www.iana.org/assignments/quic/quic.xhtml) and the
HTTP/3 registry (https://www.iana.org/assignments/http3-parameters/http3-parameters.xhtml#http3-parameters-frame-types)</t>
          <t>Grease values must not be used or registered for any other purpose. This is in
contrast to other potentially "reserved" values that might be reused or
claimed for a new purpose in the future. To avoid confusion, it is recommended
to label the reservation with a clear identifier, such as "reserved for greasing".</t>
        </section>
      </section>
      <section anchor="use-unpredictable-grease-values">
        <name>Use Unpredictable Grease Values</name>
        <t>In order to gain the benefits of active use and avoid ossification, grease values
used in actual packets
need to be sent in ways that won't become a predictable pattern that receiver and
middlebox implementations
and deployments ossify around.</t>
        <t>Implementations that generate grease values should pick unpredictable entries
from the set of reserved grease values. It is most important that values be
unpredictable across the set of all protocol participants for particular deployments.
This can be achieved in multiple ways: for example, an individual sender
might pick random values from the grease value space on each interaction;
alternatively, a single sender could pick a specific grease value to use, while
other senders pick other values.</t>
        <t>In order to support picking unpredictable values, the set of reserved values
should be large, when possible. See <xref target="define"/> for a discussion of how to allocate
grease values.</t>
      </section>
      <section anchor="use-grease-values-unpredictably">
        <name>Use Grease Values Unpredictably</name>
        <t>In addition to selecting unpredictable values, the inclusion of grease itself
can be made unpredictable. Implementations can vary their behavior by including
no grease values, one grease value, or multiple grease values for a given protocol
extension point.</t>
        <t>How consistently and frequently to use grease values is a choice that implementations
and deployments need to consider and weigh against several factors.</t>
        <t>Deployments of greasing should consider how they expect errors exposed by
using grease values to be noticed and measured.</t>
        <t>If grease values are sent too infrequently, so that errors due to sending
grease values blend in with the noise of other errors, it is likely that
no one will notice failures, thus defeating the purpose of greasing.
When grease values are sent more frequently, they will be noticed more.
However, if grease values are sent too consistently, receiver implementations
might end up special-casing grease values.</t>
        <t>The patterns for sending grease values can be made more effective by
coordinating between devices sending the values. One example of coordination
is having a "flag day" where implementations start sending grease values
broadly, and measure to see where errors occur.  See <xref section="3" sectionFormat="of" target="TRANSITION"/>
for more considerations concerning the use of a flag day.</t>
      </section>
      <section anchor="dont-handle-grease-values-as-a-special-case">
        <name>Don't Handle Grease Values as a Special Case</name>
        <t>Implementations that read and process grease values must ignore the values.
"Ignoring" a value upon receipt can have multiple dimensions, however.
Simply not performing any protocol action based on the grease value isn't
enough to ensure that the protocol will remain extensible. The ignoring
must be handled as a general case of "unknown" or "unhandled" values,
not as a special case for ignored grease values.</t>
        <t>This means that grease values can only meaningfully be used for protocol elements
where all unknown values are ignored by default. (Protocols may have ways
to indicate that some specific values are "mandatory" or "critical" in order
to have the protocol interaction succeed, but these must not be marked
for any grease values.)</t>
        <t>One pitfall that implementations may encounter when building logic to
handle the receipt of grease values is related to cases where some recognized
non-grease values need to be handled as errors. Consider the following abstract
example:</t>
        <ol spacing="normal" type="1"><li>
            <t>A protocol element has values 1, 2, 3, and 4 defined and registered for
use. The values 13 and 42 are reserved as grease values.</t>
          </li>
          <li>
            <t>In a specific scenario, only the known values 1 and 2 are valid; 3 and 4
are considered errors.</t>
          </li>
          <li>
            <t>An implementation might naively choose to check for the value being 1 or 2, handle
those cases, and send an error otherwise.</t>
          </li>
          <li>
            <t>When grease values are used, the previous logic will flag an error for the grease value.
If this is detected, implementations might choose to work around this by updating
the logic to check for the value being 1 or 2, then check for grease values to ignore,
and then send an error otherwise. This logic is also incorrect since it doesn't
allow for new extensibility.</t>
          </li>
        </ol>
        <t>The correct logic for the above scenario would be to check for the value being 1 or 2,
then explicitly check for the value being 3 or 4 (to handle the error), with a
catch-all for ignored values.</t>
        <t>In pseudo-code, the correct logic would work like this, where the grease values
would fall into the final <tt>else</tt> case as ignored values.</t>
        <artwork><![CDATA[
if is_valid_case_one(value):
  handle_case_one()
else if is_valid_case_two(value):
  handle_case_two()
else if is_known_invalid_case(value):
  handle_error()
else:
  ignore_value()
]]></artwork>
        <t>Implementations need to take care when implementing such logic. Protocol specification
designers should emphasize that grease values must not be special-cased. It is also
recommended to provide example logic or pseudocode in specifications, similar to the example
above, as guidance to implementers on how to correctly process protocol elements like these.
Documents can also provide test vectors, when applicable, that include grease values
to ensure they are processed correctly.</t>
        <t>One limitation of greasing is that it only exercises grease values. It does not check whether
other values that are reserved for future use are correctly treated as ignored or errors.
As such, ossification remains a possibility for non-grease values. The goal of greasing
is to increase the chances of correct implementation, and thereby reduce (but not
eliminate) the possibility of ossification.</t>
      </section>
      <section anchor="versions">
        <name>Greasing Protocol Versions</name>
        <t><xref target="TRANSITION"/> discusses considerations around planning for transitioning
from an existing protocol, or protocol version, to a new one.
There are also intrinsic and well-documented issues related to testing version
negotiation of protocols; see <xref target="EXTENSIBILITY"/> and Sections <xref target="VIABILITY" section="2.1" sectionFormat="bare"/> and <xref target="VIABILITY" section="3.2" sectionFormat="bare"/> of <xref target="VIABILITY"/>.</t>
        <t>One way to grease protocol versions is to have a protocol pass
a list of supported versions or features (e.g., cipher suites), along with a grease
value, such that the grease value will not impact the actual version
or features chosen, since it will not be selected by the receiving entity.</t>
        <t>Another method is to have a protocol include a recovery mechanism (e.g., an extra
round trip to try with another option) for cases when an unsupported version or feature
is attempted.  In this case, a grease value might be attempted at some
frequency or opportunity that would not adversely affect performance.</t>
      </section>
      <section anchor="deployment-considerations-and-incentives-for-greasing">
        <name>Deployment Considerations and Incentives for Greasing</name>
        <t>Greasing can be used as a tool to improve the active use of existing protocol
elements (which weren't necessarily designed with greasing to begin with, or
weren't deployed with greasing); or as part of new protocol design and deployments.</t>
        <t>When greasing isn't used from the beginning of protocol deployment, starting to use
greasing comes with the risk of triggering failures or anomalies. These failures might be innocuous,
but they also might be very impactful and visible to users. This risk creates a
disincentive to deploy greasing in existing systems, since generally the change that
triggers failures is often blamed for the failure. The risk is highest when
adding greasing to a particular protocol flow that doesn't require any
change of behavior or adoption to hit the greasing behavior. For example,
if a service migrates to use a new web server implementation that enables
greasing, while the previous server didn't, some new failures may be hit
if clients react poorly to greasing.</t>
        <t>Some approaches to avoid failures due to greasing include:</t>
        <ul spacing="normal">
          <li>
            <t>Designing, implementing, and using greasing very early on in protocol development
and deployment. This avoids the aforementioned risk of adding greasing late in a deployment.</t>
          </li>
          <li>
            <t>Enabling greasing along with other major protocol feature changes or deployment changes.
For example, when upgrading to a new protocol version that requires implementation updates
on multiple systems, greasing can be added for the new version specifically. This approach
works well for situations where the protocol participants are known and already need
to cooperate (such as within an encrypted protocol between two endpoints). This approach
applies less well for situations where non-cooperating entities (such as middleboxes)
are the source of ossification.</t>
          </li>
          <li>
            <t>Using heuristics to disable greasing when errors are encountered. For example,
if a client-initiated protocol operation fails multiple times when grease values are used, it can be retried
without any grease values. Alternatively, if a server recognizes a property of a client that always fails
when greasing is used, it could choose to disable greasing when that client is detected.
This reduces the effectiveness of grease values in removing
existing ossification, but can still have benefits for flagging issues in new implementations
when they receive grease values.</t>
          </li>
        </ul>
        <section anchor="negotiating-greasing-greasing-the-wire-image">
          <name>Negotiating Greasing: Greasing the Wire Image</name>
          <t>Greasing is always intended to prevent ossification, but the protocol participants targeted by
greasing can vary. Typically, greasing fields that are part of an end-to-end encrypted
protocol allows a sender to target greasing at a known peer. In this case, the sender chooses
to send grease without any explicit negotiation with the peer, since the point is to ensure
that the peer will tolerate receiving grease.</t>
          <t>Other kinds of greasing apply to protocol fields that are visible in the wire image of a protocol
<xref target="WIREIMAGE"/>, generally unencrypted fields in a protocol. These cases target
greasing at all parties that can observe the wire image, including any middleboxes. In
these cases, the two endpoints of a protocol might explicitly negotiate the use of greasing.
This doesn't prevent the endpoints themselves ossifying (since they might choose to not negotiate),
but it can still be effective for preventing ossification of middleboxes. For example,
the "QUIC bit" is a unencrypted bit visible in QUIC's wire image that is used to differentiate
it from other UDP traffic, and is set to a value of 1 in version 1 of QUIC. Being able to set
the bit to 0 requires negotiation between clients and servers to ensure that the QUIC traffic
won't conflict with other traffic (<xref target="QUICBIT"/>). The purpose of this mechanism
is to grease the wire image by ensuring middleboxes can tolerate the bit being set to 0, but
it cannot be used to grease the peer since it requires negotiation.</t>
          <t>Greasing the wire image inherently involves more parties than other kinds of greasing, and it is
more difficult for implementations to anticipate all possible incompatibilities, so it is
more likely to encounter deployment challenges.</t>
        </section>
        <section anchor="discouraging-ossification">
          <name>Discouraging Ossification</name>
          <t>Greasing alone can help ensure that middleboxes tolerate unrecognized extensions rather than
crashing, but one common middlebox behavior is to simply drop all unrecognized extensions.
Techniques such as disabling greasing when errors are encountered can enable communication
but may not provide enough incentive to discourage ossification.</t>
          <t>One approach to preserving the incentive to grease without being blamed for doing so,
while still potentially discouraging ossification, is to make any such ossification visible.
For example, a sender can log and report ossification issues on a given path
when falling back to non-grease values. Similarly, a receiver can log and report communication
that does not include grease values.  Such reports might be used in social feedback
(e.g., public product or service reviews), or in contractual business relationship (e.g., SLA)
discussion, in order to provide an incentive to implementers or deployers of ossified implementations.</t>
          <t>Similar techniques can be used to encourage greasing and variability by others, to
provide further discouragements against ossification in the future.
Having a receiver log and report communication that does not include grease values,
as noted above, can also be used to report on senders that do not support greasing.
It is useful, however, to be able to distinguish between the sender not supporting greasing,
versus the sender supporting greasing but only non-greased messages arriving at the
receiver.  Protocols defining greasing mechanisms should consider whether receivers
can distinguish between these two cases.</t>
          <t>It is not generally recommended to use more drastic incentives to require greasing
such as degrading performance or reliability for senders that don't support greasing.
While this is possible, the benefits of greasing are longer term, rather than immediate,
and the incentives are often not aligned. <xref section="2.1.1" sectionFormat="of" target="SUCCESS"/> explains that success
most easily comes when those who are required to make a change are the ones who gain
the most benefit, and the benefit is noticeable.  If the sending implementation does
not plan to use new extensions in the future, it would not see any benefit from being
pushed to add greasing.</t>
        </section>
      </section>
    </section>
    <section anchor="variability">
      <name>Considerations for Increasing Protocol Variability</name>
      <t>Greasing can maintain protocol extensibility by falsifying active use of its
extension points (see <xref section="3.3" sectionFormat="of" target="VIABILITY"/>). However, greasing alone does not ensure positive use of extension mechanisms. A protocol may
define a wide-ranging extension capability that remains unused in the absence of
real use cases. This can lead to ossification that does not expect extensions,
leading to interoperability problems later on.</t>
      <t>Long-term maintenance and interoperability can be ensured by exercising
extension points positively. To some extent this can be thought of as protocol
fuzzing. This might be difficult to exercise because varying the protocol
elements might change the outcome of interactions, leading to real errors.
However, some protocols allow elements to be safely changed, as shown in the
following examples. The principles in these examples are not limited to
the protocols mentioned, but also arise in many other protocols as well
(e.g., the Session Initiation Protocol (SIP) <xref target="SIP"/>).</t>
      <section anchor="example-quic-frames">
        <name>Example: QUIC frames</name>
        <t>QUIC packets contain frames. Receivers might build expectations on the
longitudinal aspects of packets or frames - size, ordering, frequency, etc. A
sender can quite often manipulate these parameters and stay compliant to the
requirements of the QUIC protocol.</t>
        <t>A QUIC stream is an ordered reliable byte stream that is serialized as a
sequence of STREAM frames with a length and offset. Receivers are expected to
reassemble frames, which could arrive in any order, into an ordered reliable
byte stream that is readable by applications.</t>
        <t>A form of positive testing is for a sender to unpredictably order the STREAM
frames that it transmits. For example, the sender can vary the sequence order of offset
values. This allows exercising the QUIC reassembly features of the receiver
with the expectation that no failure would occur. However, doing this may
introduce delay or stream head-of-line blocking that affects the performance
aspects of a transmission, which may not be acceptable for a given use case. As
such, positive testing might be most appropriate to use in a subset of
connections, or phases within a connection.</t>
      </section>
      <section anchor="example-post-quantum-key-exchange-in-tls">
        <name>Example: Post-quantum key exchange in TLS</name>
        <t>Post-quantum key exchange in TLS (such as defined in
<xref target="PQTLS"/>) expands the key sizes sent in Client Hello
messages in TLS 1.3 <xref target="TLS"/>. Before using these algorithms,
Client Hello messages would generally fit within a single packet (either in
TCP or QUIC). However, with these larger keys, Client Hello messages need to be
split across two (or more) separate packets. Initial deployments of these keys uncovered
many buggy server and middlebox implementations that did not correctly handle
Client Hello messages being split across multiple packets.</t>
        <t>This is a case in which adding variability to how TLS Client Hello messages were
sent could have helped avoid ossification and buggy implementations. Variations
could include intentionally splitting the messages across packets without increasing
message size, and also adding other values to messages to force them to exceed
the length that can fit within a single packet.</t>
      </section>
      <section anchor="example-ipv6">
        <name>Example: IPv6</name>
        <t>The IPv6 protocol <xref target="IPV6"/> defines the ability to use extension headers,
and further defines the ability to include options in two of those headers. It
also defines a recommended (but not required) order of such headers.</t>
        <t>If the same headers tend to appear in the same order, and with the same size
and offset most of the time, middleboxes can begin to incorrectly rely on assumptions
that those will always be the case, and lead to ossification and inability to
use new headers or options or differing orders in the future.</t>
        <t>IPv6 did not define grease values, but a sender may vary some aspects of the
protocol, such as varying the order of options within an extension header,
or even including a Destination Options Header with only Pad1 or PadN options
between other headers.</t>
        <t>While doing such variations can discourage ossification, they might also have
a negative performance impact if done indiscriminately. For example, making packets
larger as a result might result in fragmentation.</t>
        <t>Finally, there may be security or gateway middleboxes already deployed that
incorrectly rely on assumptions about header order, size, or location in a packet.
Introducing variability might then cause operational problems in such networks and
result in a disincentive to use the protocol or device or application using it.</t>
      </section>
      <section anchor="wire-image-variation">
        <name>Wire Image Variation</name>
        <t>The examples of variation above highlight ways in which specific protocol
fields are sent. Variation can also apply to more generic aspects of a flow's
wire image <xref target="WIREIMAGE"/>. Even when fields are encrypted, there
are aspects of a protocol's wire image that middleboxes observe and
can ossify around.</t>
        <t>Aspects of the wire image include packet sizes (and patterns in packet sizes),
number of packets in a flow, directionality of flows (how many packets
are sent in one direction or another), and relative timing of packet transmissions.</t>
        <t>Senders can induce intentional wire image variations in many ways, including:
adding padding to extend packet sizes, breaking up data across multiple packets
to reduce packet sizes, pacing or bursting packets to change the frequency of
packet sends, and adding packets that are purely padding or random data
(often referred to as "chaff").</t>
      </section>
      <section anchor="variability-in-protocol-choice">
        <name>Variability in Protocol Choice</name>
        <t>Variation can occur when an endpoint chooses to use one protocol over
another, given the option to use either. For example, a client connecting
to a HTTP server when connected to a dual-stack network might have several
such choices:</t>
        <ul spacing="normal">
          <li>
            <t>Perform DNS resolution using unencrypted DNS, or DNS over TLS <xref target="DOT"/>,
or DNS over HTTPS <xref target="DOH"/></t>
          </li>
          <li>
            <t>Connect to the server's IPv6 or IPv4 address, or both</t>
          </li>
          <li>
            <t>Connect to the server using HTTP/3 (over QUIC) or HTTP/2 (over TCP)</t>
          </li>
        </ul>
        <t>Endpoints often will have a preferred set of protocols to use, and will use
the less preferred protocols as options they fall back to (as described
in "Happy Eyeballs", <xref target="HEv3"/>). However,
for the sake of variation and preventing ossification, endpoints can
intentionally choose to alter their preferences some percentage of the time.</t>
        <t>Variation can also be created when an endpoint chooses to not use a protocol
feature, as an intentional way to ensure the network path or peer still
tolerates its absence. For example, <xref section="3.1" sectionFormat="of" target="PRIVACYPASS"/>
recommends that, in some situations, clients randomly act as if they don't
support sending privacy pass tokens, to ensure that receivers cannot ossify
around them being available.</t>
      </section>
      <section anchor="cost-of-variability">
        <name>Cost of Variability</name>
        <t>Adding variability to implementations and deployments can come with costs for
complexity and performance, and needs to be weighed against the benefits
received of reducing or preventing ossification.</t>
        <ul spacing="normal">
          <li>
            <t>Implementation complexity: Correctly implemented receivers need to be
able to handle all valid inputs, but sender-side logic is often made more
complex by adding support for variation. The kinds of protocol variability
described in this document can require sender logic to not only support
less straightforward ways of constructing packets, but also support
randomly deciding when to induce variability.</t>
          </li>
          <li>
            <t>Processing overhead: For both senders and receivers, protocol variability
can lead to processing overhead, and potentially higher memory usage. For
example, intentionally breaking up and reordering data frames is less
efficient than processing a complete data chunk.</t>
          </li>
          <li>
            <t>Network efficiency: Variability that changes the wire image of a protocol
(<xref target="wire-image-variation"/>) might be achieved by spreading data out across
more packets, sending smaller packets, adding chaff packets, or adding delay.
All of these, if used in excess, could degrade the overall performance of a flow
on a network, such as to reduce goodput, increase latency, etc.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The considerations in <xref target="MAINTENANCE"/>, <xref target="GREASE"/>, <xref target="END-USERS"/>, and
<xref target="VIABILITY"/> all apply to the topics discussed in this document.</t>
      <t>The use of protocol features, extensions, and versions can already allow
fingerprinting <xref target="PRIVCON"/>. Any techniques that change parameters  in any way, including but
not limited to those discussed in this document, can affect fingerprinting. A
deeper analysis of this topic has been deemed out of scope.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions itself. Guidance on how other documents can effectively
instruct IANA about protocol greasing is provided in <xref target="iana-tips"/></t>
    </section>
  </middle>
  <back>
    <displayreference target="RFC9114" to="HTTP/3"/>
    <references anchor="sec-informative-references">
      <name>Informative References</name>
      <reference anchor="RFC9114">
        <front>
          <title>HTTP/3</title>
          <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
          <date month="June" year="2022"/>
          <abstract>
            <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9114"/>
        <seriesInfo name="DOI" value="10.17487/RFC9114"/>
      </reference>
      <reference anchor="VIABILITY">
        <front>
          <title>Long-Term Viability of Protocol Extension Mechanisms</title>
          <author fullname="M. Thomson" initials="M." surname="Thomson"/>
          <author fullname="T. Pauly" initials="T." surname="Pauly"/>
          <date month="December" year="2021"/>
          <abstract>
            <t>The ability to change protocols depends on exercising the extension and version-negotiation mechanisms that support change. This document explores how regular use of new protocol features can ensure that it remains possible to deploy changes to a protocol. Examples are given where lack of use caused changes to be more difficult or costly.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9170"/>
        <seriesInfo name="DOI" value="10.17487/RFC9170"/>
      </reference>
      <reference anchor="SUCCESS">
        <front>
          <title>What Makes for a Successful Protocol?</title>
          <author fullname="D. Thaler" initials="D." surname="Thaler"/>
          <author fullname="B. Aboba" initials="B." surname="Aboba"/>
          <date month="July" year="2008"/>
          <abstract>
            <t>The Internet community has specified a large number of protocols to date, and these protocols have achieved varying degrees of success. Based on case studies, this document attempts to ascertain factors that contribute to or hinder a protocol's success. It is hoped that these observations can serve as guidance for future protocol work. This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5218"/>
        <seriesInfo name="DOI" value="10.17487/RFC5218"/>
      </reference>
      <reference anchor="GREASE">
        <front>
          <title>Applying Generate Random Extensions And Sustain Extensibility (GREASE) to TLS Extensibility</title>
          <author fullname="D. Benjamin" initials="D." surname="Benjamin"/>
          <date month="January" year="2020"/>
          <abstract>
            <t>This document describes GREASE (Generate Random Extensions And Sustain Extensibility), a mechanism to prevent extensibility failures in the TLS ecosystem. It reserves a set of TLS protocol values that may be advertised to ensure peers correctly handle unknown values.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8701"/>
        <seriesInfo name="DOI" value="10.17487/RFC8701"/>
      </reference>
      <reference anchor="QUIC">
        <front>
          <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
          <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
          <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
          <date month="May" year="2021"/>
          <abstract>
            <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9000"/>
        <seriesInfo name="DOI" value="10.17487/RFC9000"/>
      </reference>
      <reference anchor="PRIVACYPASS">
        <front>
          <title>The Privacy Pass HTTP Authentication Scheme</title>
          <author fullname="T. Pauly" initials="T." surname="Pauly"/>
          <author fullname="S. Valdez" initials="S." surname="Valdez"/>
          <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
          <date month="June" year="2024"/>
          <abstract>
            <t>This document defines an HTTP authentication scheme for Privacy Pass, a privacy-preserving authentication mechanism used for authorization. The authentication scheme specified in this document can be used by Clients to redeem Privacy Pass tokens with an Origin. It can also be used by Origins to challenge Clients to present Privacy Pass tokens.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9577"/>
        <seriesInfo name="DOI" value="10.17487/RFC9577"/>
      </reference>
      <reference anchor="TRANSITION">
        <front>
          <title>Planning for Protocol Adoption and Subsequent Transitions</title>
          <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>Over the many years since the introduction of the Internet Protocol, we have seen a number of transitions throughout the protocol stack, such as deploying a new protocol, or updating or replacing an existing protocol. Many protocols and technologies were not designed to enable smooth transition to alternatives or to easily deploy extensions; thus, some transitions, such as the introduction of IPv6, have been difficult. This document attempts to summarize some basic principles to enable future transitions, and it also summarizes what makes for a good transition plan.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8170"/>
        <seriesInfo name="DOI" value="10.17487/RFC8170"/>
      </reference>
      <reference anchor="EXTENSIBILITY">
        <front>
          <title>Design Considerations for Protocol Extensions</title>
          <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
          <author fullname="B. Aboba" initials="B." role="editor" surname="Aboba"/>
          <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
          <date month="September" year="2012"/>
          <abstract>
            <t>This document discusses architectural issues related to the extensibility of Internet protocols, with a focus on design considerations. It is intended to assist designers of both base protocols and extensions. Case studies are included. A companion document, RFC 4775 (BCP 125), discusses procedures relating to the extensibility of IETF protocols. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6709"/>
        <seriesInfo name="DOI" value="10.17487/RFC6709"/>
      </reference>
      <reference anchor="WIREIMAGE">
        <front>
          <title>The Wire Image of a Network Protocol</title>
          <author fullname="B. Trammell" initials="B." surname="Trammell"/>
          <author fullname="M. Kuehlewind" initials="M." surname="Kuehlewind"/>
          <date month="April" year="2019"/>
          <abstract>
            <t>This document defines the wire image, an abstraction of the information available to an on-path non-participant in a networking protocol. This abstraction is intended to shed light on the implications that increased encryption has for network functions that use the wire image.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8546"/>
        <seriesInfo name="DOI" value="10.17487/RFC8546"/>
      </reference>
      <reference anchor="QUICBIT">
        <front>
          <title>Greasing the QUIC Bit</title>
          <author fullname="M. Thomson" initials="M." surname="Thomson"/>
          <date month="August" year="2022"/>
          <abstract>
            <t>This document describes a method for negotiating the ability to send an arbitrary value for the second-most significant bit in QUIC packets.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9287"/>
        <seriesInfo name="DOI" value="10.17487/RFC9287"/>
      </reference>
      <reference anchor="SIP">
        <front>
          <title>SIP: Session Initiation Protocol</title>
          <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
          <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
          <author fullname="G. Camarillo" initials="G." surname="Camarillo"/>
          <author fullname="A. Johnston" initials="A." surname="Johnston"/>
          <author fullname="J. Peterson" initials="J." surname="Peterson"/>
          <author fullname="R. Sparks" initials="R." surname="Sparks"/>
          <author fullname="M. Handley" initials="M." surname="Handley"/>
          <author fullname="E. Schooler" initials="E." surname="Schooler"/>
          <date month="July" year="2002"/>
          <abstract>
            <t>This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="3261"/>
        <seriesInfo name="DOI" value="10.17487/RFC3261"/>
      </reference>
      <reference anchor="PQTLS">
        <front>
          <title>Post-quantum hybrid ECDHE-MLKEM Key Agreement for TLSv1.3</title>
          <author fullname="Kris Kwiatkowski" initials="K." surname="Kwiatkowski">
            <organization>PQShield</organization>
          </author>
          <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
            <organization>AWS</organization>
          </author>
          <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
            <organization>Cloudflare</organization>
          </author>
          <author fullname="Douglas Stebila" initials="D." surname="Stebila">
            <organization>University of Waterloo</organization>
          </author>
          <date day="26" month="May" year="2026"/>
          <abstract>
            <t>   This draft defines three hybrid key agreement mechanisms for TLS 1.3
   - X25519MLKEM768, SecP256r1MLKEM768, and SecP384r1MLKEM1024 - that
   combine the post-quantum ML-KEM (Module-Lattice-Based Key
   Encapsulation Mechanism) with an ECDHE (Elliptic Curve Diffie-
   Hellman) exchange.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-tls-ecdhe-mlkem-05"/>
      </reference>
      <reference anchor="TLS">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="August" year="2018"/>
          <abstract>
            <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
            <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8446"/>
        <seriesInfo name="DOI" value="10.17487/RFC8446"/>
      </reference>
      <reference anchor="IPV6">
        <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="DOT">
        <front>
          <title>Specification for DNS over Transport Layer Security (TLS)</title>
          <author fullname="Z. Hu" initials="Z." surname="Hu"/>
          <author fullname="L. Zhu" initials="L." surname="Zhu"/>
          <author fullname="J. Heidemann" initials="J." surname="Heidemann"/>
          <author fullname="A. Mankin" initials="A." surname="Mankin"/>
          <author fullname="D. Wessels" initials="D." surname="Wessels"/>
          <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
          <date month="May" year="2016"/>
          <abstract>
            <t>This document describes the use of Transport Layer Security (TLS) to provide privacy for DNS. Encryption provided by TLS eliminates opportunities for eavesdropping and on-path tampering with DNS queries in the network, such as discussed in RFC 7626. In addition, this document specifies two usage profiles for DNS over TLS and provides advice on performance considerations to minimize overhead from using TCP and TLS with DNS.</t>
            <t>This document focuses on securing stub-to-recursive traffic, as per the charter of the DPRIVE Working Group. It does not prevent future applications of the protocol to recursive-to-authoritative traffic.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7858"/>
        <seriesInfo name="DOI" value="10.17487/RFC7858"/>
      </reference>
      <reference anchor="DOH">
        <front>
          <title>DNS Queries over HTTPS (DoH)</title>
          <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
          <author fullname="P. McManus" initials="P." surname="McManus"/>
          <date month="October" year="2018"/>
          <abstract>
            <t>This document defines a protocol for sending DNS queries and getting DNS responses over HTTPS. Each DNS query-response pair is mapped into an HTTP exchange.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8484"/>
        <seriesInfo name="DOI" value="10.17487/RFC8484"/>
      </reference>
      <reference anchor="HEv3">
        <front>
          <title>Happy Eyeballs Version 3: Better Connectivity Using Concurrency</title>
          <author fullname="Tommy Pauly" initials="T." surname="Pauly">
            <organization>Apple Inc</organization>
          </author>
          <author fullname="David Schinazi" initials="D." surname="Schinazi">
            <organization>Google LLC</organization>
          </author>
          <author fullname="Nidhi Jaju" initials="N." surname="Jaju">
            <organization>Google LLC</organization>
          </author>
          <author fullname="Kenichi Ishibashi" initials="K." surname="Ishibashi">
            <organization>Google LLC</organization>
          </author>
          <date day="1" month="July" year="2026"/>
          <abstract>
            <t>   Many communication protocols operating over the modern Internet use
   hostnames.  These often resolve to multiple IP addresses, each of
   which may have different performance and connectivity
   characteristics.  Since specific addresses or address families (IPv4
   or IPv6) may be blocked, broken, or sub-optimal on a network, clients
   that attempt multiple connections in parallel have a chance of
   establishing a connection more quickly.  This document defines the
   algorithm for "Happy Eyeballs", a technique for reducing user-visible
   delays on dual-stack hosts.  This document updates the algorithm in
   RFC 8305.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-happy-happyeyeballs-v3-04"/>
      </reference>
      <reference anchor="MAINTENANCE">
        <front>
          <title>Maintaining Robust Protocols</title>
          <author fullname="M. Thomson" initials="M." surname="Thomson"/>
          <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
          <date month="June" year="2023"/>
          <abstract>
            <t>The main goal of the networking standards process is to enable the long-term interoperability of protocols. This document describes active protocol maintenance, a means to accomplish that goal. By evolving specifications and implementations, it is possible to reduce ambiguity over time and create a healthy ecosystem.</t>
            <t>The robustness principle, often phrased as "be conservative in what you send, and liberal in what you accept", has long guided the design and implementation of Internet protocols. However, it has been interpreted in a variety of ways. While some interpretations help ensure the health of the Internet, others can negatively affect interoperability over time. When a protocol is actively maintained, protocol designers and implementers can avoid these pitfalls.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9413"/>
        <seriesInfo name="DOI" value="10.17487/RFC9413"/>
      </reference>
      <reference anchor="END-USERS">
        <front>
          <title>The Internet is for End Users</title>
          <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
          <date month="August" year="2020"/>
          <abstract>
            <t>This document explains why the IAB believes that, when there is a conflict between the interests of end users of the Internet and other parties, IETF decisions should favor end users. It also explores how the IETF can more effectively achieve this.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8890"/>
        <seriesInfo name="DOI" value="10.17487/RFC8890"/>
      </reference>
      <reference anchor="PRIVCON">
        <front>
          <title>Privacy Considerations for Internet Protocols</title>
          <author fullname="A. Cooper" initials="A." surname="Cooper"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <author fullname="B. Aboba" initials="B." surname="Aboba"/>
          <author fullname="J. Peterson" initials="J." surname="Peterson"/>
          <author fullname="J. Morris" initials="J." surname="Morris"/>
          <author fullname="M. Hansen" initials="M." surname="Hansen"/>
          <author fullname="R. Smith" initials="R." surname="Smith"/>
          <date month="July" year="2013"/>
          <abstract>
            <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6973"/>
        <seriesInfo name="DOI" value="10.17487/RFC6973"/>
      </reference>
    </references>
    <?line 569?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This work is a summary of the topics discussed during EDM meetings. The
contributors at those meetings are thanked.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5V9W5PbRpLue/0KROthus8haUvy2HI7Jjw9kmx1hC1r3bJ9
9skDAkU2jkCAgwK6TXdofvvml5l1A9n2bMTuuEUCdcnKy5eXSi6XSzM2Y2sv
i7OXfeea2g7l2NBfxTf9UHxfNt1I/9902+Ld0I991beu+Mnh398OtnS2KLu6
+LkcmnLdtM14ODPlej3YOxrPvyBP0itnpipHu+2Hw2XRdJvemLqvunJHk9dD
uRmXNMhyr28tt/rW8tOnxk3rXeMcrWs87Onx66t/mG7are1waWoa89JUtGTb
ucldFuMwWUMLeG6eFCUNcllc/fj6iv5x3w8ftkM/7S+LX74tfqF/yT7oE/PB
Hujr+tIUy6Kzv43F1nZKCnw0dU3VD/yn25fDhxZv1o0bh2Y9jbYuWltv7WDu
bDfRap4URZgI/5BV5zPSx7uyafHI3+1v5W7f2lXV7/B5OVS3l8XtOO7d5Sef
JF9+QsPR0M14O62JwjgcenTdl0P9iZDwiHxn9EJLJHIjveCHTF9cyXCrpn9s
iE/+4HRWt+OuPTOmnMbbfgD5aL6i2ExtKyf73VSVrnhHE9Gp4Kt+2JZd8zuT
9rJ42fZTvWnpnPhLKyQ5a/HW3/l/9/wqdn92PPr7frc70OhTezgx+NWe6JaN
O+7x6N/LvRL0xJCvyjtbvL8tWzrOE0MOu6am7wpIy9SORIJsgpreXo389qqx
4+bvW3whU5muH3Y0zh1xiIEAhH8VxY/fvPzy6dPPLnkwYqx9W5KUvHn//t0n
z41ZLpdFuSZuK6vRmKsKbxWTSt8OQmq7sqts0W+Ie0cwerEP8to4eq5odvt+
GMtuLO7LQzH2BuIy2IIWOyYPD9gJPU1DDv2eRGDdyjQkFPRGg3/2d3YoxmZn
V+a9rW675l+TdYWbqtuCzppXA2qVbXug1+xQNawxdIS+K/Y9PeSKe+I8Ikq3
3NkSOoYOobgrWwx2PtiNHQaSrLHHoGfMcPbsgs6jKOsa491FtWPoqdv+Puyj
sK3dWcxBnAVK1cWtbfdeqrFrUCUQcmVMos+SgeP7ZTX0zvF3/eQSitX2zrZE
qtqsia63trh+/f6bFbEQzUAKbsI6cKTV5BztrMrV7P2t7WgI12xBAYPpa7tv
+wN2uD29ph0RnQjmdm7B39Fa7mhIZ8r6riEuIM4irmBdQ+vZgX52s7GyW/rH
njaCg1wJZxFH1yQnpHmuu3Ho66litWceHm4s/1k8B2N9/TOp3evvrt//99+Y
W7/49OPHZF9nkZpnmKQsvLY39PIY+SRjON26HRzvpIGmA8Hwgd2BDmAAYVWT
vxnZKdKDj0tZDmdGQ1bE+2s9Q2JsIojZTCMNp0fkiUrTYJStLc7BTPQqcXqY
bNrDzrhUEuj0LsxctjZEBaK+TASRqCwxDREg2TB2hT0uQCZPwJo0QvHw8PXN
Ty9fvr65AYn/+uzpi48fV5nApyNtbIl9zBdFz9CfJMj/mhp8m8ijITaghToi
yKGnl+5B0Pt+amtVcxXLbF9VE+8hrtWtipt+Z+M0RmW47ouup31jOnqO3nbW
khK695K8tuBDkH9RkK2U4yfiHFTVmMmxjlGSydlAZwWi6tT7ciS26HJq0st0
YrtmezvSTGawLatULGOkvyrWMT1N6/a2ajb0gSdBYKtkReAVYQKTLYfO4IfO
FgQSIiOzlCW05eNpoqYqzmkwKI3usMOz5luve36k8+p3xet4Yld0FjeTA9Ty
HwtXXiyg786CMV8ZD6ZIi+Nom7HhI1MxqnlV77+7ASt9S7Dn5jU46cUXnz4l
YQWf4DXggYGURb8HdCGt1dNWh0SleVX+Xz9dv8RI+C8L/aefktCvSE+AOC7K
h1uYKI5VT3wj3AFxJB60wx1N1He0UKzPb0fMF+0bAkrL70nfm2nfg3kr2+zp
5MN2G6yqGZlVRL91h2TF4CzwIRHjqyJRXCuoLvMnqgsHDUhA7O+1Pi2sbXbN
qFqaWC4gHmN+uW3AsCMWtbZk27HAHa2etr7b9d0iKnQeCWOn+pxeo7WazkI5
kF4nshCQvKOThE6yNA7otibMRjuEWqXnRNM7CIJMUuybcUPbBSeb8q5vSL6Y
k28BYNaWzYpapkItU6TX5JL1EP5zpLmGFal8+WiZWymi1lh+EErR860tB2zO
ZdZnZtkMTgl6YKbqi2jioFiInDeWMB4EYzOQWATmkCUG7hF1sjilSB0E1+S4
gzBCZjNn4u5Rku1qz6pdbcQSrvvfbFBs9AAp/wIWc8NnWNmB5dSroxV7SgrS
cUqM2kxcHbFrxdaHzqzu77u2L2unKuseNgMIh1brpj0UHnP3tOenVuYltJEq
UHBhwqrM4CAmwcLO8avHpgEarWTbb/BqXNVfXKABvb+BZqS3N8TYJN4b2g/p
S8/9kaOAWUlGS/JgaGIyn2TsYDQy5UxLXRTNyq4WQjZd6wLakuEFk1HUrJCB
GIqBXkI0WgyJ+o7I+/CQnCNx4h4sQSdmZkiqXEPPAwXmnNB0lWcpkCBlisSS
0HBEKpL4ZgtWZEETejtIHIFrnLUx747ghxBZpaBoe9rWHQb3FqQUXF75k+ys
pfMng2C7u4bMA0tB8aa/J2kdiIGI5Qn9V54KMpu3cNi9AmNGjnEVBjqDVWBN
phh7ID7aYONAesVVHEvGZ5hFO4PxL7ckdbxv0S0m2RyLuADGA1ClFUxJ+pcQ
EaG7RcSWbIc2Ei4oWfbXpEvIV1boBjo5QDwSpfSsGflFh4PPBitOF+pXTy72
IKCPvBi2Awfe9ZrXTmzIHgqsvlo1fd5lJIgvG7zMDF5GHMky6CeiHag1geux
1dURV+rAf8qS0RhgWNrsJ0AOHumyJ6NTdYSXyaB7yYZ0yFAroPNZgAaDBfMY
ozMPT06rcBOhA84B+lyMKGTawWTtSdfh677LjIXoGPqgY50CXm5oq3Nvjk1X
sE2iDrzTxFOkRhQmkFlCtDrzrvfN6sSMdT20CfxCdRGhJY4Wh7fxPVSpiVCi
yKHEDUCNglLWxyAgjzUNxOA2Wx8CEqddUB3ijHmMZTzx8+icvgcOWJcVh5q6
WhYMN2FPay5pCfT3loQFPvYRUjnpZNGg7Kk4fTQYXFZSihBIB1fH/AFtyHqV
pJL9SAM74ncpmIKxQ/AJA6wAyz0pXoU3ix/tlvS9HXzk72fQAWB2a8F1Mgex
2fc5MuPDTGf10sb4iqjr7MiK2C9Aj4gUZAIkg/5IXLmS2GygrU9tOcyDC5B2
1WUp4YkWCijobTetdW5wwcDbk3iH25fqRieoD+y96du2v1cGEfqr5c/cEpew
cAAwyW7CyH63l+SJM2w/f3gQ2P7x4wV9xAD8PHLJ0xerp5gIn8sTEiJKn/li
9Wz1Ag9pTEmee0cAs6wQKyN5pKe/fvfj9c9XL//73ZU4m1/+9Ysv8CRv0ztL
vCnlIU83PR5RF84ri6gb4GCXd2XTRkoKRIrEYe1Mh0aeWzh1fpDUkKBqEXqO
6iiz8NN6XBnpsDY18Wya2NBWAvMMCz+iVYH51C2OwaEQLRAF5rduXPO78H0I
87IJEGbRFQwcLxCDDiVRMcvVEmCyJigpSCaxlqjJb9hvJGePVrk4JSgvlmui
wqaxLXAimSgSrBqEGfuehnJwslmoayAr1eIZTRYEDuCiPH/GQ9GEn3+Gv4wO
in23zQcrA3lNy15f4vUQz1/zaQzwcYhitehCCTySq7Ul8Dfe7lLuCOfErCOr
WZkMIT88CPdiHJcPRK/88/nT4v8Ub4v/Wzz74p9MVJI4bNPkp87KOwJfciB2
FlEjddWjOhMcKTzHAhumc8EKsfN/37QtHf8ALEpm23g9xMHOW+XQhQ9TkdIV
MB79C4boQyAFHTqByamfnFnTFj4wRRDtzDZCaJtprIZzkwhKotNClAwi4Z2G
44mKOFGibRoglxq7IGo2tSGtO0TvAUh/aCAPgjRIz6vCygkO5avOEId0ECER
oRUaahgJmOuexCkoauyIOetomXRUL+MqY5yo8J6jbFCYkQMhs7UuWPRAEqA/
YmoAhVH8tqnLvYBggSLhX/WY0fUCgo13QuZIlBB808KZYov4hOij0pDY2eur
t1dzfPbwpCm7cjk2e4AvfkJtTONpBpLAlxxOkxy7kxWppLNOEyeGH8jCK+kx
ExffATUzVGe3Wsjrhalm71wAMsQw13252ldwq0Yynghin8QMCsg8AtKdKeJI
DGvDBORIXkKGlv6AtCWjH5EB2yfAM+EcF6Tthg8I7Tpz5jn1bOaDYywYU53n
IJomQ2Hm3OfC7u/vVzioVT9sPyHjSHLG+/hkbN0y6pXZP1e/IfF1ARW5memw
IaDfRoFmRGAzLd3M1athpy4oLz57wlylBs88jitgyuh7WudwCDgW3D7kcxjS
xBrnlmfdLYspGcx2quV8/Grhm/hd+Nh4Ap14J+sDsx/DkkDdPyclmdyK/0fJ
5l0Ko+jlfzEUHniensv8A5niyfzj5QZ/LZGJdRch26McxjFI9SIlVDPomuyg
+gg2VsOk4i4oifB/Hfw+MkaO1bI+1bP2Yd1z5hn7LGAWyEjw6Qerk5qqLUm9
6YwSPVPnJI9HF+97xe0082ZyEl454iZaDcEw285lV6xhWVSI5BWks2ilBA2G
RYj8hiVnKPhMnIKfaD0/daQXSC1JRDZ1CRzJRKKKtqUufU3+3aYRYFDmKUzZ
Sh4sykTFBMxfjROHm6oPhDGM15BrYA7SUfTEfXkIFqn7yygBWshMul7P8/xc
AIlZCDB66Kru8ril05BgIbEwKIL8eRk7JBxzlaZiuG+qD2Sp0pVBTEkxGlba
DDsE857WjR497AgVJlmoxLVGViSfQX3yZGxi0gg6xKdq9qV3VBInK80HiU+q
LhnpiMaqEdohLb5HEIZO4pKHSKOjUZvjyIhJNAbItBgkNeIxnqdBumd1zoiJ
LWsmWOuSPZ+vTNniVDUDtIh6UibSYBdPVMaEUDa4wDjFz0ZEWd528qIGlRTY
ZpzuA7h4jrFMRnav80+dqTK5csVaYfSiyKzBqrixltCzOtofVUloGkOdE7Xa
p0FzlN5MXjNZPvCekGFnRYFtSfzrDzfE9sSvwWc5RnpzY5RDdiWZm2wA4t2Z
xODRu3LgXEUz0FvkmTS0yfVBDRZgJzkqMyvazwwrQ8XAhcduQ6nxlxBSnMcO
jHlDZORwihslqQnhT3KcivZnOIWT3rd9o97nn2oQr7184EYSdJbEoSihNkmm
HYLCJCqSV8YJvkpVUBKxUuYJYzEnwK+RUH5hh6FHUv03mBO25FkOKDrTaw4j
0yYkf76jr8nk1AJ18qc5CMLYsAdSiQRaAFYzDXTaWmTLSYhx5ssRM3AEWMwS
hxP6RgJyIm4yiLdw3nMFGCZuwPGz7yarDnB9IXktEhdbjj76fyLWtzK/QMwe
2Rmn9dKNRV8xIRSeWpkQw2/+kFApYy2i9Zlzi6hFdblYW5XtsiqPD01jUyEF
wx6XxnKPfTgvi7yxWBZC/FD1pMqaToi1tuO95hCRfgwDRu9jVcDRVtUuLqd/
v+/gHEB6ORNwtmnLbVGXhzNoNGT3Z4LvRrIxp9ds1oRAa9bmkRmFlayOpizG
VQurQrVkXrry/sertzfX769/eMvpcA6rsgukWdvMcdNsj9+tZt7Kwu9CI6OM
Lt5InUiuT7n65UZOrHhJXzwCDjjUoClUrhPZHqNSiWWnZDdn1/gMcIymEbOV
Rrr5lDmmE3RgDZ/ZiRt9K0y6Mjc4BUmekLOLEL3kqw9JcF1oiCxO7SN9mbls
HBHB2K6fSGcdV1TEkVhgtLYsVpKJ29nodowvBZDim1roKAiqpV3JOZxN3Yeu
v+/OuDJi6vRhD60XnNDhN1Vm5E2u1tC8wLH0AELZMoC2I6Fh7ytWqdE/0vDG
UdWZEcYErtLVporAL2PNDl1Jh7QqzmMCB7kpPj7gJzN3/yWGFcBLMuxZSMkJ
aSry5JAXOAuRgRBPzY4mQVBSsBQrdZD7TH0j8b2N94dyOl5o5E3yByctIO/N
doTDMKfAm/XUtCz2bb+lDY290dor8VmEpY+CvuzotJIt6vmEnWoDJxGGqt92
ze+02KOIW5E4DQmniRZZhSiOuFsx3u/LL1XhXRrzNEsp6tnTkM5P9HRRPFsU
z0V1fabeu0h87l3CvRFZ8G8+l3ee5SGe0s159ykX4yRo1lW2Q4niQngWm8gY
8CkPLOPSR039VaFzcRLOq0KaTAnC2+xmJ6m+a1dK1pdAD4wql9BZAsk+IiFK
QkJPT8GURA4huRlv8QYfnJa2wNIhxohpYxyR53/EQEtRmTAzmSlEFoWJWNuw
ug4D+iWlo6yAaEb14ms7ksnAgEdMy3uNe+SiCS2B4LdJkLk+EDoMc3hO/g+o
MWJn8bHjzAbrioXRgEn3KJkkGiEzA4i2jtMi/TAA/BFoqLhiqe4tq2w4CPch
0GrTmjOFE/5VGdLvoVz3pD88k2nQd/2fHb0ZpWIB1SvNyGzz2BvP8cZnaSUm
B7iw54uFRi9wm6C6XULXpMo9dc32zk51v0QsXPgk35Ssno8TmJIPc6FqZM4r
pNP5adZtpDIl6kkCTQbmn7Z19p9iZ1CVN1/Jv//9b0OQsHG/ssT9igd/Jdh6
zk9coOhbdhm/uTAYszh6a7zvH3kL32Rvsdj/2nTx7eM3maL6Gj6Wpf/Kz9HH
WPgRdPHqkysIEHUXPZ4VNEgqCURehdKEoKMEIMbCX/Vc7G5PuhNZtxNGOLVC
CRZG1k4iIGB4M0tU+Zocj1Hl1GGwmS/AFgVnMZJ1EQO4Ztcg2qFnrG8bZn2u
2d1OTS05xj6vWCbFqA64Mlp7CNjuuDRdec5Cyb0K4XOu2IL0+tXj7kZxZ9n/
05CAL1aUYDfsrMZzc45NAZmVUnZdDaejdYWaMYuJv5OFGkgjdrGe384tEY4B
yoUPSQSblgr1ZNKQiQyWGTUIr1b9cjxwsAn1RppkFMvnxaofgmm6klLVvM5M
YSYQoIRONIsDXXecfYOq2/YkxMmmTfNYVllTa6JEcjux8EHtwa5R21xPxCDn
WpdKAkbkJdfIXoi9ShYGLzdZvngXR4U9xc9ablQ8PAmVR6jRj65NVtM6r0QS
c7Vvyy5UInH6lMM82DMH22BYfiNggkc8w3I4JXCvzr3gKBMbD1JXCAb6slW1
PCMhekfSJiGNtl36BBGChM6BFRIABx5PCqFMWgiV1lV8xW7fw8PXr//f+9e0
7Vgq8/kXn36pJc7B+XPFsxXjHfN89QzjhOIaLqoB18tdGM/L8106rRnRIoQk
RuqcKTV5tfGBP6h8/57U3kkN5rldbVeLomr2HE2cGtotWbESpYI+Ei8LMBq/
YvUZnKjM4/KRjiwHLUFxT7x07gowq1tEABDe55B5y5DHlwdLKIKv6pAaZyRw
1Yn07kiU+/oRcnjtUzLupmUkV1T87pmziOOM4qahkdThcFAS6ET9Hid3wQwa
YD0y1eRJHdE5ITPfxBhHMiIjjIKUqHOAGuHcMidiyLyENwr1rIyGeiquD+x5
vqnjBH9MckuVJdYA8Cvltd6HhpbwpVOhwHGWGQaTXtNzHSIveSHfrErPe5ns
z45936rJGXr14srsasiR7JpgbM7vbxtiqnsSU8Qt0trzcHeADyJofvaQthqV
gxIw/mWJYc5fuPiKU4iOEwZyE+3Pir8dF9N7bC/mBhOIZ+2j/7wK1lqP3aPh
+JGumd41YTikflwMKw6N+8AlPEOz3dqBFaFGC3ntXb8jsKRmwcVQYmQYWgjp
MfI0FkZd5INovPAEs78IJ8oR+O5WE9K5tLrBKVjn1VRs4Oh4Td2wkDJTxGLo
hDSJbnYHch53zsu1xkjU39NrTFIsIDt1cSuNvyC0bkufapQ6ZX5ALCIvDSE8
2hXgB2TQ6LW7lEGyErxYfd5y7LkM7oavukLUwOjy6BhCgJ/v9Inks35pEsUn
wUh5MM/zA1OT50soAmFfqZUVr4lxBPPfvV3zE0fxVY1OdwBRLjCML5zKfEp9
v25q2spCAgwYO3JHyfEgWjaWVBEHQeJoSKiFvh/aaGOklJCrIHxyXZYsKdAw
pMbLk8NnFct1gq98PfEiA90CQJKgvhpUwmwlltBzxWkiP3w5BC/PEhM++Y8V
6eUYYhKZpoee8GI0ZwiYcynMTO93LIvXoHL2ZGL71L6U/z9FGarUlZVZOJN6
cf10VlfGdmLaExfUgTszFeSNhsZe/fW4nC30op/pk0RmkLbtTDcTARIJ4ktv
vmjc+xQklLNiCgOH0zEoklB9Q9Y7XAYdZtG5LB0LfCXRHM6atwggH0IRVNVz
1RKdwblP42uNMpduVcOBLV0Y2of4yXOM92Au5qtlXwOVOnBiHl80oLVfQEAQ
eC+sJblcc8GxJs6E9tMg9yNyDLzULgO3dhqg8yoWElKRnHoM5yB3ICT+z8Wc
PrYIDHCsK0Q0l3JtLqOFLhwVeCSCLp49rjkrBnksANWEyuTBInlfG3/p8DhI
WlzlKeqgwuwQg5ZOwBUtSdwDv3B1nlouceB1mvuZ9UyWJOnAELU6TTspQ5PR
kyCYZvfFixEdEFJFnd5onRdpwe/qgR5NMFN5RQcMJl8BGYFB9VKR1oSwE9iW
261sw+mQEKl5XkzXzRdIOXV2FM9Hld5b70H4VhX0x2V0q7CjX2CRrnfl1iao
i0MJTGCuHwyRBKmnO97Q48I6Iocv6NpkigMpbpKyw17UQ6JWtDw3+MgeSUnp
5XLsl4j+BVGOBcYczuOch1Q6cHgG0ycql4ZU5bG3dljNELKUJUiZBPMMhw84
2qjkTZnaB/GyGysBZmF8D03E222EvWZXuf2z4pSMfSvaK7ohMjNcNTYSHxqu
OE+vaeBmpYZ61HLMSOixlxYh3Tecfiy3mtMLQJl8yl+uf3x9/f3Vt3Jl9q+f
ff7x4yKBVlMXdajOIpcQdAgPGsVrEfKbjPytckgo/0RmaS1FvPniFrHggemd
6E4cnBnjTHJ0mQ7Pt6bQNIm7+kOzaX4zwhPtXCDILakkTSZAXSk5P/Be4s3I
83Dih6OYOVymMO2FgOcmVQfrNBktSTWeeK5GsNSMGpmWxyrPuDpx3YxnUpGR
nhuq4ROOwJN/cSlTSKwrqdtsaFEDV/KN5GOO4pUIZvnp1Tt/d1LLwh1X9jDy
EEeTFvsUE3lYEC5vrIp/SEGu+gX0Hi9+zWX+xacRn6QS5i22h5iSN4HxOHWf
Xco0dYVGquFQLkhsMKbYy9//PNeb3v+4fs83Qp69wI0QcQiSuolRsqXq32us
LNwkzkRsfZA18f3o5G4tX0Dz4u63LZF/JeCnrF2NsEhamZnPxdojxDZO0WyV
6PbZ6prulo+W74je9czNXA+QCGmnNDpSPXriYBbDL4FT4AjJBd55Dgk80Ylt
GCUxHIp8kaWRi4uIBzaQaETQ4sjxpkZMneZouG2tAGI2fa8aR48NJdvSHxLZ
SUgBAG6lUgB9UVLOSQ8qHNLUxZRqevWVvmQWIkqZaijdLZMG0s3jy6WGWFMZ
PD7hGiclCDVhHU2Wn5zlZJsZwTOZV/EHaFCvL7C4YVVo6CQ0wVr9JdKQMJCC
htwd91S183At4oihUlrAAjulynHZKDNbKjyfeOK13klYGHFERTmmxcR1erqz
+9VMVL6jC6PBlMp0p6q+meMUUANo1PZbTVBzLWP2uuIyXBzxJXR0/ALIkBfj
vZTVB1H4R6H2G8mrSGVmKHs6MWl+QCGQIGHPU5kOVP1gs/J+Eq7xZcOu50qQ
DXlKWKDRoOR+Ig7ii+9oelNw3ZREE+D723sn/TearpACb4mzruFjAwRLtxFi
0Ntm7+OcN99dXZhYk7mYXcsQ/uIy2IQr8iSSl27+h3eMbD3XKYgj+ExVFI80
aug1BjNt1nQjvQTv+38ASfTGL3EzDSzZke31ypwWJuaMkTdLeeMLv8Ih/9EB
F//BAS9Myd8iFCppuJAmSzbrebYLJbs6NA/sy3Mj0LlO7hqGwqiFloZ4y1yL
LzM17jZ6zBEsJyOnumjB99Qnlz564jHVlFyG5eUFVW4ObW2gxAYBwmLQw3VG
4vdYLxSu3IdBk35I86pQzcmFk5G2B4/s0QmuZJgZLgNiwxEUn7gaKNYQtyFQ
ihDD3HxAEgYMibagzK0P2yRhdLmF0QZG9XWNycEC0hyf6y8aw5PCDm9oF0e3
ENLb3tK4AaI07BapWSOxI+UM+BeqMNJdlXzrFfFUaT/DkfRVUoD4bPVU7uxq
Z6ePHxmKc4ZSCrqkSZThGn4sCJURfYg6SKHM/W2vWVOmYB0VvQ/3+ogK2V3H
j0NQGVPywLrvkKX0H+iRks6TmuziehN4lv3hPDwGMeUKO2QS/YknJSScM0u1
AcciYtoE6TvYJj97vJtm9pO71cv2dZ1GS092PriOXT1iijTRag9P0q4hs7TK
TvtaHl21jCqR7Jn3a/Icy6neB+T65EWncpk/STdeJB0+tjkIC5pPQRjxa5Mn
dY77nM2bWZhwM+ye6LQctNVI0pOp3IebqhL+lBz51CWN0VDkZqWNIKkabWkl
0l+E2x7+mmRmAHIV7ivOA0ss+HKlRmWP7lf6Vi/Sl6pgTPUdSeMSspi1NzzV
KMRbPKEe5zJjz8Hjk/LU5bBs76/wj+LixgstgGfAEPCkY+2G2Uy//w6mFHIE
mBGxP0yuVkjg5lE5sQkbDqH+/Cgx5z1lzdlY3IastPtMUppJ1jmhIZ+Or4II
jKX9ILxhkBqvMJFekyo3UrGH+WouZyEbce9tuIkVj76xgTqA5MRVDTc6aLxx
CK0PfOsZ39KBcES6WbiLmjsQ34ANN4mn3GvbJXfr4uIl2OyRGoa7sXLN5VrC
t/gziP75zfW7C+6fd/0OzuvzZ58/hdRxJva1lmyKQ8wXAZ0x/A+9SBZu4sqX
uASt9tEfMqpU865IUg9tYDeaEaEaOpIScX8xLn5kBDZ5UPSOJcdmIXCQ/aSQ
bF4UdqxIqE2CxP+FQgG1LUSiZj+16i47m1x4lyDAWLLR2JO1lMvhAheSXgfa
uUB27UNWxlzJJw6FNjttFcoLRJ6HjW8LPx4tkeQRHyEhpEyQmj01ZKdp5bwV
5tub9z++vvre71tLHOCjcqK/pkc2fDE1Ulk6MeylHGFEJVfpnN1xtzcehTNz
fIucGxYBGEmuCbyD9S6kKu/E8s2p5SN1ontLG2o5JgkQiPYkEVXs61Maf4Mo
xlnTO00HD/XBrUwDozTwNVRcc0NCMm8bloZfk1tQRaQqDwx3gGlnYv1S43z4
N+m1Go46EPIQi0JCxxOhvgmB24S/ZcVd71OS/n6/XLIIKkf8VQkJkRnyHb7Q
aayVHktK91ui97LfLNENSu7/y4uIi3Lcz2lAJ8A/kwhT6QmnTpXwQtL7qSQM
tY/dAb1/6g0YiZYzUip2dKZBizNOYkeelB2LmsAbjvKGZjG469tZr5MRqLyV
MhVNtRXx+5n2eUfjL/81kYBOO+4laX9TtU/vvf/uxpg/eyIm03wtOUE89HL5
L/ryb9fLV9xzeImr6raqb+1y136wO9KDONmy02wuBnacZvJ3Zl9KAugNKdze
BO9D53xKYIbmwAyIi3+GuDjCl8gJa7pZdFJsrLEw6YjRnxEeit7Dphkj3fSu
puhNcqcbtgi0wfcv34HOYOcURnmudXpdcsDG6EhOTx2L/o0jaR/DNVhycM71
ItAFEURbEar2XqmxybsNhr5wmJAUANc82dqwIVtP2+3Bp/T4ztJjN4oVNTWC
jGPNo1bIn96HRknTLYRcpV+03miR+4ilcLBIzHHnZK63IJiAk37k0GhvxsVm
cZy4Q9TQnrq4zVsWGszjFYLPJYlXZW0I8lYdvLlwYy86w7Jbb1d9CC229/Oc
q2ZWUuSu95vOy1CTDdLfxMuVNrZjBFdxSh2l/GK0QrrmcY6dCfv1u7vPpZAe
f0WwTpJ0/e7nz1mUnn3KfUhZlLXQIu8mE9Er1CdCNOyChtjM6Tc9VaWgRvAa
cTlzLXxJHQslu4YJ5McpM3fe164Gn/MiGiFWQ34cY7zPSKbOf1ogecrO3H7P
TQa6+Ijaay4N9aaHv8DBmQgQRCOrtUIifnGURZAKtTG568BBCSl3Ics37YQI
PuHIvjRCqprkXWt1r1QJouvrKfdG/I5IYuO9Xr/ZfgjURviOk0bMcwN/PW8m
zCzhBf90axCGyR4SwNAxJJAGRtEujkmXqdi8IXU4Im7Q9SUlITPuWqBy1Epn
upB8RLXRqJc6ix90jDf8vOaQEL16V9Z8yYP++9bPZHwkSQQvcouEZzTSLU35
vF4oNBp1KtK+SDOLzLfQRAZFPluup8hiR1oe22wQJbJ8h85VgxZhw/nL4Jd2
S/dtJdSelCIS6POv0+o/xFHYxqZJxnzTdJLM5wpwXxLmLMElLvIeCvTXRLlx
ysK+hCdUVHLR3p/wsu90KoegwuRdi4Iv/mtQtgy66TppvZq1kudt8cUccVZD
IUzZRse86eSgtGOsNMuNtOAmBFlAe/L5uVBfM+hNYq71SxrYCoBoVH3Gkoxo
LIqHJ0jaLTlptwy88lG0a9p+L3yn15RQvdhqn10u6FArGC7LRb8+9kVzXAEX
Zw+B5lBrwAFOBjGob09BKgof/+JMkmM8XVawKl5DzCRxEqcOeWrlIq6Syibw
Cz6RtE7ZyhcV4Ji4yGDWquQq0yB5TlRsh6IwgYnnfEfZXy/n3sfx24uF/hRL
6vQyU4Aa5CE0g6Dh0t922LCzcg7UIV28VerCJXmkTBAY829qbS5ocrHQPIL0
eYdV8IXBsqbUT+AUiQaMK2k9AtckbdqebD3RQj4oAbZJSjEufQnsXv/LWIEN
XUoRUt4k1dICZF/U5Vg+htQMh3J4UfkA9C8xH2QHBi3pVtKOfRosSsrVN8aP
gcaMin/8evXdUFg0sV7x+0CgXTqvYLXm3P+CQN7/lKbdbM40ppLGWpskEPOS
+18YkwuQ/KKAr+T3dSS+0ig0z+tSjQHPVE99oe4cG7RQJswIib2EeQ9uX9Hm
XTHcy0RRBtpNeWjOi9EHdI8FutIs3YgUpm+OLQqSMa/24pCkhfT5kMad78Tu
FK/eoueY69spUW1p+Qk9wDoaD3JfQe3U/+oHrrj44sVfX3z8yGY4PIEl6zNv
xP968dnHjzTpS1m6v6UmuyK9wNgCAfJ3d5/h/GlB4qeuiZSPvadr9c1EeWb2
t/Aif/pMPyVn7MKY10mpEVjlPlT0lUmHat/ZNba41O46gvxaDjArzOYbcv7F
LAzogQtbf75+6XPM5+wIw6yv5fczzt6Qkj4Urw92jRa2Z2g2+fWb13fPo298
iyfkf60+trx7ngXojS/odUiw5HaFmzWcLExaJOVRx+3oYyUU9yjC8M2gO7Z8
sUyCt3aAFdXyNA97V3Nx8onPSm/H/ZFgcTNEl97XMRoI4uBv2eX6sMxb5dv4
e0IlwN6gJTcoSzC+OsQhKeKTBzNZTJMinAY73Xg2Xt0ULbWQrD37BL7SeBFL
61lZ4e5Nxb0emo1wBycEjU8I+hTWXlvf4tYWbe6D7TjVnRW9hHyorzcSk2nC
NW8bWij63raiB1+qi5LoQ7KvJ93sufs/bwfEvz6CLTOuRqNXjjYajuva3/zv
UiQoVyQp9J8ljuDuQXDMNU2fpjx9+riW3lOKBh8vtcPPA816NBVxLZe0dQ9S
Y/1CnVAyCbn4ZLpe5oYQ87VkOuX9NKq7I87O0kkbfb3I7uPf2rHGE4PDtkLl
9HcTgqRK0iJUbcU7AMkxBdVRzNt481H4ZLX6YOFSP3MHnB6d2LDy4v6+ZCpo
FfflUAvi5MuiaP07VakNT5IgfozA0TVB0zqWZ/cetCQL53N5Jxd5+cyI2nAG
LlnyoOZDmlywkh7I4jQZ0qTe/nhU/YmppAKJLwXhSiAdyEF+gYeF3gShz3Vf
ioZkQT4DIuBIQ+SN3DHAbxQ1lS9379Illcp+o5UXq9up+8DUeOt/zkPfrYg9
U4Qi8Ru9TPKHdcDnDw8nvY2PF8mtQd/tbn3QhsFhL1wgzWDPaCmhnrhXRm6H
ar0hfqFczOAqftqHXznjQPrKXLVtiDvytQGft0WwChZeImpSSKGJRIYrbV5S
4d0Uw1Vcqtxj6CAC0m3f1ySbi3gNGumnkKtCWv7Ge7d5ft73j8hy9vLrVt9f
Xb99//rt1duX7A19+dnT5yiyjk3P2WK/fvtq+dPN6x8l4Pziy0/xOXyZh4ck
pc5aJDhlbCv7PS6KhJ/UOpJrbW3x2A9pLdKUtdRJ+fu8YnXFWedsC5pyb+2A
tCiLtnZUfykdpj7/8ovncPOuusPRT58pek8yeD6PRTojLfxGAWyeVdUA1uMb
XCQ/+FLkK0R2sbZ2z1Hpsj24xoVqXiYcd67R3w2yqEcELyPWV/V7GDv8Ptxx
m2Pjy8VVc95yoZY8qZlr7QS4Kr71fRO0T4IEhuqs9UHyYyKmUdWpo3HUIxxa
eulFi9Zq4bLYdvmjkV+445o/Wv9VhQsQ+K1OadP0cCmuq63/doaCD3v2UffD
2oQD6G7a7RB683hszmO1lDe/fvU9aUQLSkvGXHrCom88l6P64KN/Rut1yu4D
btv8DyyQlMGIdQAA

-->

</rfc>
