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


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

]>


<rfc ipr="trust200902" docName="draft-li-oauth-delegated-authorization-01" category="info" submissionType="IETF">
  <front>
    <title abbrev="Delegated-Auth">OAuth 2.0 Delegated Authorization</title>

    <author initials="R." surname="Li" fullname="Ruochen Li">
      <organization>Huawei Int. Pte Ltd</organization>
      <address>
        <email>li.ruochen@h-partners.com</email>
      </address>
    </author>
    <author initials="H." surname="Wang" fullname="Haiguang Wang">
      <organization>Huawei Int. Pte Ltd</organization>
      <address>
        <email>wang.haiguang.shieldlab@huawei.com</email>
      </address>
    </author>
    <author initials="C." surname="Liu" fullname="Chunchi Peter Liu">
      <organization>Huawei Technologies</organization>
      <address>
        <email>liuchunchi@huawei.com</email>
      </address>
    </author>
    <author initials="T." surname="Li" fullname="Tieyan Li">
      <organization>Huawei Int. Pte Ltd</organization>
      <address>
        <email>Li.Tieyan@huawei.com</email>
      </address>
    </author>

    <date year="2026" month="March" day="02"/>

    
    <workgroup>oauth</workgroup>
    

    <abstract>


<?line 66?>

<t>Delegated authorization enables a client to delegate a subset of its granted privileges to a subordinate access token (also known as a delegated access token). This mechanism allows the client to securely delegate authorization to a delegated party while maintaining fine-grained control over delegated permissions.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://liuchunchi.github.io/li-oauth-delegated-authorization/draft-li-oauth-delegated-authorization.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-li-oauth-delegated-authorization/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        WG Working Group mailing list (<eref target="mailto:oauth@ietf.org"/>),
        which is archived at <eref target="https://datatracker.ietf.org/wg/oauth/about/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/oauth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/liuchunchi/li-oauth-delegated-authorization"/>.</t>
    </note>


  </front>

  <middle>


<?line 70?>

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

<t>OAuth 2.0 <xref target="RFC6749"/> provides a framework for authorizing third-party applications to access protected resources on behalf of a resource owner. However, in existing implementations, access tokens issued to clients often contain excessive permissions that exceed actual requirements, creating security vulnerabilities and potential data exposure risks.</t>

<t>This specification extends OAuth 2.0 with a delegated authorization framework that enables clients to create subordinate access tokens with restricted permissions. This approach addresses the problem of over-privileged access tokens by implementing a two-token architecture that decouples initial authorization from final resource access.</t>

</section>
<section anchor="requirements-language"><name>Requirements Language</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?>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>This specification uses the following terms defined in OAuth 2.0 <xref target="RFC6749"/>: authorization server, client, resource server, and resource owner.</t>

<t>The following additional terms are used throughout this document:</t>

<dl>
  <dt><strong>Delegated Party (DP)</strong>:</dt>
  <dd>
    <t>An entity (e.g., a service, component, or application) authorized by the client to access protected resources on behalf of the resource owner.</t>
  </dd>
  <dt><strong>Delegated Resource</strong>:</dt>
  <dd>
    <t>A resource or API endpoint hosted by the delegated party that requires access to the resource owner’s protected data at a target resource server.</t>
  </dd>
  <dt><strong>Delegation Token</strong>:</dt>
  <dd>
    <t>A token issued by the authorization server for the client that enables the client to create delegated access tokens.</t>
  </dd>
  <dt><strong>Delegated Access Token</strong>:</dt>
  <dd>
    <t>A token created by the client using the delegation token, with permissions being a subset of the delegation token's privileges and a more limited lifespan.</t>
  </dd>
  <dt><strong>Delegation Key</strong>:</dt>
  <dd>
    <t>A cryptographic key bound to the delegation token, used by the client to sign delegated access tokens. The delegation key is presented in the token request as the <spanx style="verb">delegation_key</spanx> parameter.</t>
  </dd>
</dl>

</section>
<section anchor="overview"><name>Overview</name>

<t>The delegated authorization framework introduces a hierarchical token structure where a client can obtain a delegation token from an authorization server and use it to issue subordinate access tokens with reduced permissions. This enables fine-grained access control while maintaining the security properties of the original authorization grant.</t>

<figure title="Delegated Authorization Framework Architecture" align="center" anchor="fig-architecture"><artset><artwork  type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="512" viewBox="0 0 512 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 96,32 L 96,288" fill="none" stroke="black"/>
<path d="M 96,368 L 96,480" fill="none" stroke="black"/>
<path d="M 120,288 L 120,368" fill="none" stroke="black"/>
<path d="M 168,288 L 168,368" fill="none" stroke="black"/>
<path d="M 192,32 L 192,112" fill="none" stroke="black"/>
<path d="M 192,144 L 192,256" fill="none" stroke="black"/>
<path d="M 192,368 L 192,448" fill="none" stroke="black"/>
<path d="M 376,32 L 376,48" fill="none" stroke="black"/>
<path d="M 376,80 L 376,144" fill="none" stroke="black"/>
<path d="M 376,176 L 376,192" fill="none" stroke="black"/>
<path d="M 376,224 L 376,288" fill="none" stroke="black"/>
<path d="M 376,368 L 376,384" fill="none" stroke="black"/>
<path d="M 376,416 L 376,480" fill="none" stroke="black"/>
<path d="M 504,32 L 504,144" fill="none" stroke="black"/>
<path d="M 504,176 L 504,288" fill="none" stroke="black"/>
<path d="M 504,368 L 504,480" fill="none" stroke="black"/>
<path d="M 96,32 L 192,32" fill="none" stroke="black"/>
<path d="M 376,32 L 504,32" fill="none" stroke="black"/>
<path d="M 192,64 L 376,64" fill="none" stroke="black"/>
<path d="M 192,128 L 376,128" fill="none" stroke="black"/>
<path d="M 376,144 L 504,144" fill="none" stroke="black"/>
<path d="M 376,176 L 504,176" fill="none" stroke="black"/>
<path d="M 192,208 L 376,208" fill="none" stroke="black"/>
<path d="M 192,272 L 376,272" fill="none" stroke="black"/>
<path d="M 96,288 L 112,288" fill="none" stroke="black"/>
<path d="M 128,288 L 192,288" fill="none" stroke="black"/>
<path d="M 376,288 L 504,288" fill="none" stroke="black"/>
<path d="M 96,368 L 160,368" fill="none" stroke="black"/>
<path d="M 176,368 L 192,368" fill="none" stroke="black"/>
<path d="M 376,368 L 504,368" fill="none" stroke="black"/>
<path d="M 192,400 L 376,400" fill="none" stroke="black"/>
<path d="M 192,464 L 376,464" fill="none" stroke="black"/>
<path d="M 96,480 L 192,480" fill="none" stroke="black"/>
<path d="M 376,480 L 504,480" fill="none" stroke="black"/>
<polygon class="arrowhead" points="384,400 372,394.4 372,405.6" fill="black" transform="rotate(0,376,400)"/>
<polygon class="arrowhead" points="384,208 372,202.4 372,213.6" fill="black" transform="rotate(0,376,208)"/>
<polygon class="arrowhead" points="384,64 372,58.4 372,69.6" fill="black" transform="rotate(0,376,64)"/>
<polygon class="arrowhead" points="200,464 188,458.4 188,469.6" fill="black" transform="rotate(180,192,464)"/>
<polygon class="arrowhead" points="200,272 188,266.4 188,277.6" fill="black" transform="rotate(180,192,272)"/>
<polygon class="arrowhead" points="200,128 188,122.4 188,133.6" fill="black" transform="rotate(180,192,128)"/>
<polygon class="arrowhead" points="176,368 164,362.4 164,373.6" fill="black" transform="rotate(90,168,368)"/>
<polygon class="arrowhead" points="128,288 116,282.4 116,293.6" fill="black" transform="rotate(270,120,288)"/>
<g class="text">
<text x="212" y="36">1.</text>
<text x="280" y="36">Authorization</text>
<text x="272" y="52">Request</text>
<text x="436" y="84">Resource</text>
<text x="212" y="100">2.</text>
<text x="280" y="100">Authorization</text>
<text x="440" y="100">Owner</text>
<text x="264" y="116">Grant</text>
<text x="140" y="164">Client</text>
<text x="212" y="180">3.</text>
<text x="280" y="180">Authorization</text>
<text x="264" y="196">Grant</text>
<text x="440" y="228">Authorization</text>
<text x="212" y="244">4.</text>
<text x="268" y="244">Delegation</text>
<text x="444" y="244">Server</text>
<text x="264" y="260">Token</text>
<text x="180" y="308">5.</text>
<text x="232" y="308">Delegated</text>
<text x="12" y="324">6.</text>
<text x="64" y="324">Delegated</text>
<text x="236" y="324">Access</text>
<text x="84" y="340">Resource</text>
<text x="232" y="340">Token</text>
<text x="212" y="372">5.</text>
<text x="264" y="372">Delegated</text>
<text x="268" y="388">Access</text>
<text x="320" y="388">Token</text>
<text x="144" y="420">Delegated</text>
<text x="436" y="420">Resource</text>
<text x="144" y="436">Party</text>
<text x="212" y="436">6.</text>
<text x="264" y="436">Protected</text>
<text x="436" y="436">Server</text>
<text x="276" y="452">Resource</text>
</g>
</svg>
</artwork><artwork  type="ascii-art"><![CDATA[
           +-----------+ 1. Authorization     +---------------+
           |           |      Request         |               |
           |           +---------------------->               |
           |           |                      |   Resource    |
           |           | 2. Authorization     |     Owner     |
           |           |      Grant           |               |
           |           <----------------------+               |
           |           |                      +---------------+
           |  Client   |                                       
           |           | 3. Authorization     +---------------+
           |           |      Grant           |               |
           |           +---------------------->               |
           |           |                      | Authorization |
           |           | 4. Delegation        |     Server    |
           |           |      Token           |               |
           |           <----------------------+               |
           +--^-----+--+                      +---------------+
              |     |5. Delegated                              
6. Delegated  |     |     Access                               
      Resource|     |     Token                                
              |     |                                          
           +--+-----v--+ 5. Delegated         +---------------+
           |           |      Access Token    |               |
           |           +---------------------->               |
           | Delegated |                      |   Resource    |
           |   Party   | 6. Protected         |    Server     |
           |           |      Resource        |               |
           |           <----------------------+               |
           +-----------+                      +---------------+
]]></artwork></artset></figure>

<t><list style="numbers" type="1">
  <t>The client requests authorization from the resource owner. The client indicates in the authorization request that the requested authorization grant is for delegated authorization.</t>
  <t>The client receives an authorization grant.</t>
  <t>The client requests a delegation token by authenticating with the authorization server and presenting the authorization grant and its delegation key as defined in Section 3.</t>
  <t>The authorization server authenticates the client and validates the authorization grant, and if valid, issues a delegation token.</t>
  <t>The client calls the delegated party's API, presenting the delegated access token generated from the delegation token. The delegated access token is issued by the client using the delegation key. The delegated party requests the target protected resource from the resource server and presents the delegated access token.</t>
  <t>The resource server validates the delegated access token, and if valid, serves the resource. The delegated party receives the resource, optionally transforms it into a service-specific response (also known as delegated resource), and returns it to the client.</t>
</list></t>

<t>Both delegation token and delegated access token can be JSON Web Tokens (JWTs) <xref target="RFC7519"/> or CBOR Web Tokens (CWTs) <xref target="RFC8392"/>.</t>

</section>
<section anchor="delegated-party-metadata"><name>Delegated Party Metadata</name>

<t>Before the OAuth 2.0 client retrieves a delegation token and generates a delegated access token for the delegated party, the client needs to obtain the authorization server endpoint and the permissions needed by the delegated party. Such information can be manually configured into the client, or it can be dynamically discovered through delegated party metadata.</t>

<t>Delegated party metadata enables OAuth 2.0 clients to obtain information needed to interact with a delegated party. The structure of the metadata format is similar to "OAuth 2.0 Authorization Server Metadata" <xref target="RFC8414"/> and "OAuth 2.0 Protected Resource Metadata" <xref target="RFC9728"/>.</t>

<t>The delegated party metadata is retrieved from a well-known <xref target="RFC8615"/> location as a JSON <xref target="RFC8259"/> document. By default, the well-known URI string used is <spanx style="verb">/.well-known/oauth-delegated-party</spanx>.</t>

<section anchor="delegated-party-metadata-attributes"><name>Delegated Party Metadata Attributes</name>

<dl>
  <dt><strong>resources</strong>:</dt>
  <dd>
    <t><strong><bcp14>RECOMMENDED</bcp14></strong>. JSON array containing a list of target protected resources' resource identifiers, as defined in <xref target="RFC9728"/>. Either this attribute or <strong>authorization_servers</strong> defined below <bcp14>MUST</bcp14> be present.</t>
  </dd>
  <dt><strong>authorization_servers</strong>:</dt>
  <dd>
    <t><strong><bcp14>OPTIONAL</bcp14></strong>. JSON array containing a list of OAuth authorization server issuer identifiers, as defined in <xref target="RFC8414"/>. Either this attribute or <strong>resources</strong> defined above <bcp14>MUST</bcp14> be present.</t>
  </dd>
  <dt><strong>permissions_supported</strong>:</dt>
  <dd>
    <t><strong><bcp14>RECOMMENDED</bcp14></strong>. JSON object indicating the permissions the delegated party may request. The <spanx style="verb">scopes</spanx> attribute lists supported scope values <xref target="RFC6749"/>; the <spanx style="verb">authorization_details</spanx> attribute lists supported rich authorization request objects as defined in <xref target="RFC9396"/>. These guide the client in constructing valid authorization and token requests. Either the <spanx style="verb">scopes</spanx> attribute or the <spanx style="verb">authorization_details</spanx> attribute must be present.</t>
  </dd>
  <dt><strong>api_permissions</strong>:</dt>
  <dd>
    <t><strong><bcp14>RECOMMENDED</bcp14></strong>. JSON object mapping API endpoints (resource identifiers) to the permissions required to access them. Each value can include <spanx style="verb">scopes</spanx> and/or <spanx style="verb">authorization_details</spanx> to specify the permissions needed for that endpoint/resource.</t>
  </dd>
  <dt><strong>delegated_party_documentation</strong>:</dt>
  <dd>
    <t><strong><bcp14>OPTIONAL</bcp14></strong>: URL of a page containing human-readable information that developers might want or need to know when using the delegated party. The value of this field <bcp14>MAY</bcp14> be internationalized.</t>
  </dd>
</dl>

</section>
<section anchor="delegated-party-metadata-example"><name>Delegated Party Metadata Example</name>

<t>The following is a non-normative example delegated party metadata:</t>

<figure><sourcecode type="sourcecode"><![CDATA[
{
  "resources": [
    "https://res1.example.com",
    "https://res2.example.net"
  ],
  "authorization_servers": [
    "https://as1.example.com",
    "https://as2.example.net"
  ],
  "permissions_supported": {
    "scopes": ["profile:read", "profile:write", "email:read", "email:write"],
    "authorization_details": [
      {
        "type": "payment",
        "actions": ["initiate", "status", "cancel"],
        "instructedAmount": {
          "notMoreThan": {
            "currency": "USD",
            "amount": "500.00"
          }
        }
      }
    ]
  },
  "api_permissions": {
    "/emails/list": {
      "scopes": ["email:read"]
    },
    "/balance/transfer": {
      "authorization_details": [
        {
          "type": "payment",
          "actions": ["initiate"],
          "instructedAmount": {
            "notMoreThan": {
              "currency": "USD",
              "amount": "500.00"
            }
          }
        }
      ]
    },
    "/balance/transfer/status": {
      "authorization_details": [
        {
          "type": "payment",
          "actions": ["status"]
        }
      ]
    },
    "/balance/transfer/cancel": {
      "authorization_details": [
        {
          "type": "payment",
          "actions": ["cancel"]
        }
      ]
    }
  },
  "delegated_party_documentation": "https://dp.example.com/dp_documentation.html"
}
]]></sourcecode></figure>

</section>
<section anchor="www-authenticate"><name>WWW-Authenticate</name>

<t>Upon receipt of a request for a delegated resource that lacks credentials, the delegated party can reply with a challenge using the 401 (Unauthorized) status code (<xref target="RFC9110"/> Section 15.5.2) and the <spanx style="verb">WWW-Authenticate</spanx> header field (<xref target="RFC9110"/> Section 11.6.1).</t>

<t>This specification introduces a new parameter in the <spanx style="verb">WWW-Authenticate</spanx> HTTP response header field to indicate the delegated party metadata URL:</t>

<dl>
  <dt><strong>delegated_party_metadata</strong>:</dt>
  <dd>
    <t>The URL of the delegated party metadata.</t>
  </dd>
</dl>

<t>The response below is an example of a <spanx style="verb">WWW-Authenticate</spanx> header that includes the delegated party metadata URL. NOTE: '\' line wrapping per <xref target="RFC8792"/>.</t>

<figure><artwork><![CDATA[
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer delegated_party_metadata=\
  "https://dp.example.com/.well-known/oauth-delegated-party"
]]></artwork></figure>

</section>
</section>
<section anchor="delegation-tokens-and-delegated-access-tokens"><name>Delegation Tokens and Delegated Access Tokens</name>

<t>This section defines the properties of delegation tokens and delegated access tokens. The delegated authorization framework uses a hierarchical token structure where tokens form a chain: a delegation token can be used to create subordinate tokens, which can either be another delegation token (to continue the chain) or a delegated access token (to access protected resources). The top-level token in the chain is issued by the authorization server, while subordinate tokens are created by clients.</t>

<section anchor="delegation-tokens"><name>Delegation Tokens</name>

<t>A delegation token is a token that can be used to create subordinate tokens. It contains a <spanx style="verb">max_delegation_depth</spanx> claim that limits the maximum length of the delegation chain.</t>

<dl>
  <dt><strong>delegation_key</strong>:</dt>
  <dd>
    <t>The cryptographic key bound to the delegation token, used by the client to sign subordinate tokens (either another delegation token or a delegated access token). The value is a JSON object representing the public key, using key format as defined in <xref target="RFC7517"/>. This claim <bcp14>MUST</bcp14> be present in delegation tokens. The corresponding private key is held by the client and used to create subordinate tokens. Subordinate tokens <bcp14>MUST</bcp14> include the parent delegation token in the <spanx style="verb">delegation_token</spanx> claim, creating a verifiable chain from the top-level token to the subordinate token.</t>
  </dd>
  <dt><strong>max_delegation_depth</strong>:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14>. Integer value indicating the maximum depth of the delegation chain. If not present, the delegation chain is unrestricted. When a client creates a subordinate token from a delegation token:</t>
  </dd>
</dl>

<t><list style="symbols">
  <t>If the parent delegation token has a <spanx style="verb">max_delegation_depth</spanx> value, the subordinate delegation token <bcp14>MUST</bcp14> have a <spanx style="verb">max_delegation_depth</spanx> value smaller than the parent's value.</t>
  <t>If the parent delegation token does not have a <spanx style="verb">max_delegation_depth</spanx> value, the subordinate delegation token <bcp14>MAY</bcp14> set any <spanx style="verb">max_delegation_depth</spanx> value.</t>
</list></t>

<t>When <spanx style="verb">max_delegation_depth</spanx> reaches 1, the subordinate token <bcp14>MUST</bcp14> be a delegated access token (no further delegation is allowed).</t>

<t>The <spanx style="verb">scope</spanx> / <spanx style="verb">authorization_details</spanx>, <spanx style="verb">aud</spanx>, <spanx style="verb">exp</spanx>, and <spanx style="verb">nbf</spanx> claims <bcp14>MAY</bcp14> be present in delegation tokens and can be reduced in subordinate tokens.</t>

<dl>
  <dt><strong>scope</strong> / <strong>authorization_details</strong>:</dt>
  <dd>
    <t>The scope (as defined in <xref target="RFC8693"/>) or authorization details (as defined in <xref target="RFC9396"/>) of the delegation token. When creating a subordinate token, the client <bcp14>MAY</bcp14> reduce the scope or authorization_details to a subset of the parent token's permissions.</t>
  </dd>
  <dt><strong>aud</strong>:</dt>
  <dd>
    <t>The audience of the delegation token. When creating a subordinate token, the client <bcp14>MAY</bcp14> narrow the audience to a subset of the parent token's audience.</t>
  </dd>
  <dt><strong>exp</strong>:</dt>
  <dd>
    <t>The expiration time of the delegation token. When creating a subordinate token, the client <bcp14>MUST</bcp14> set an expiration time that is no later than the parent token's expiration time.</t>
  </dd>
  <dt><strong>nbf</strong>:</dt>
  <dd>
    <t>The not-before time of the delegation token. When creating a subordinate token, the client <bcp14>MAY</bcp14> set a not-before time that is later than the parent token's not-before time.</t>
  </dd>
</dl>

<section anchor="top-level-delegation-token"><name>Top Level Delegation Token</name>

<t>The top-level delegation token is issued by the authorization server and <bcp14>MAY</bcp14> contain the <spanx style="verb">iss</spanx>, <spanx style="verb">sub</spanx>, and <spanx style="verb">jti</spanx> claims. If present, these claims apply to the entire token chain. These claims <bcp14>MUST NOT</bcp14> be present in subordinate delegation tokens or delegated access tokens.</t>

<dl>
  <dt><strong>iss</strong>:</dt>
  <dd>
    <t>The issuer of the delegation token. This claim applies to all subordinate tokens in the chain.</t>
  </dd>
  <dt><strong>sub</strong>:</dt>
  <dd>
    <t>The subject of the delegation token, typically representing the resource owner or the client. This claim applies to all subordinate tokens in the chain.</t>
  </dd>
  <dt><strong>jti</strong>:</dt>
  <dd>
    <t>Unique identifier for the delegation token. This claim applies to all subordinate tokens in the chain.</t>
  </dd>
</dl>

<t>Subordinate delegation tokens and delegated access tokens <bcp14>MUST NOT</bcp14> include the <spanx style="verb">iss</spanx>, <spanx style="verb">sub</spanx>, or <spanx style="verb">jti</spanx> claims. Verifiers (resource servers and delegated parties) <bcp14>SHALL</bcp14> consider these claims from the top-level delegation token when validating the entire token chain.</t>

</section>
</section>
<section anchor="delegated-access-tokens"><name>Delegated Access Tokens</name>

<t>A delegated access token is a token used to access protected resources. It cannot be used to create subordinate tokens.</t>

<t>The <spanx style="verb">scope</spanx>, <spanx style="verb">aud</spanx>, <spanx style="verb">exp</spanx>, and <spanx style="verb">nbf</spanx> claims in delegated access tokens follow the same rules as in delegation tokens, as described in Section 6.1.</t>

<dl>
  <dt><strong>max_delegation_depth</strong>:</dt>
  <dd>
    <t>Delegated access tokens do not need to include a <spanx style="verb">max_delegation_depth</spanx> claim, even if the parent delegation token has one. If a delegated access token includes <spanx style="verb">max_delegation_depth</spanx>, its value <bcp14>MUST</bcp14> be 0.</t>
  </dd>
</dl>

</section>
</section>
<section anchor="acquiring-delegation-tokens"><name>Acquiring Delegation Tokens</name>

<t>The client requests a delegation token using standard OAuth 2.0 grant types with additional parameters to distinguish delegation requests from standard token requests.</t>

<section anchor="authorization-code-grant"><name>Authorization Code Grant</name>

<t>For authorization code grant type, the client <bcp14>MUST</bcp14> include a <spanx style="verb">delegation=true</spanx> parameter in the authorization request to indicate that the client is requesting a delegation token instead of an OAuth 2.0 access token.</t>

<t>Additionally, the authorization request <bcp14>MUST</bcp14> include either a <spanx style="verb">scope</spanx> parameter (as defined in <xref target="RFC6749"/> Section 3.3), an <spanx style="verb">authorization_details</spanx> parameter (as defined in "Rich Authorization Requests" <xref target="RFC9396"/>), or both, that define the permissions granted to the requested delegation token.</t>

<t>In the token request, the client <bcp14>MUST</bcp14> include a <spanx style="verb">delegation_key</spanx> parameter with the value of the delegation key. The delegation key is a public key for digital signature.</t>

<t>Additionally, the client <bcp14>MAY</bcp14> include in the token request either a <spanx style="verb">scope</spanx> parameter, an <spanx style="verb">authorization_details</spanx> parameter, or both. The client <bcp14>MAY</bcp14> also include a <spanx style="verb">delegation=true</spanx> parameter in the token request.</t>

<t>In the token response, the authorization server <bcp14>MUST</bcp14> include an <spanx style="verb">access_token</spanx> attribute whose value is the delegation token, and <bcp14>MUST</bcp14> include a <spanx style="verb">token_type</spanx> attribute valued <spanx style="verb">"Delegation"</spanx>, and <bcp14>MAY</bcp14> include a <spanx style="verb">refresh_token</spanx> attribute which is the refresh token for obtaining a new delegation token via the refresh token grant.</t>

<t>Other procedures of the authorization code grant are as described in <xref target="RFC6749"/>. Use of Proof Key for Code Exchange (PKCE) <xref target="RFC7636"/> is <bcp14>RECOMMENDED</bcp14>.</t>

</section>
<section anchor="other-grant-types"><name>Other Grant Types</name>

<t>Other OAuth 2.0 grant types, such as the refresh token grant or client credentials grant, <bcp14>MAY</bcp14> support delegated authorization by including the <spanx style="verb">delegation</spanx> and <spanx style="verb">delegation_key</spanx> parameters when applicable. The authorization server <bcp14>MUST</bcp14> validate that the client is authorized to request delegation tokens using the given grant type.</t>

</section>
</section>
<section anchor="creating-delegated-access-tokens"><name>Creating Delegated Access Tokens</name>

<t>The client creates delegated access tokens by:</t>

<t><list style="numbers" type="1">
  <t>Validating the delegation token's validity and permissions.</t>
  <t>Generating a subordinate access token with (optionally) reduced privileges.</t>
  <t>Applying cryptographic protection using the delegation key (digital signature).</t>
</list></t>

<t>The client <bcp14>MUST</bcp14> include the delegation token in the <spanx style="verb">delegation_token</spanx> attribute of the delegated access token.</t>

<t>The client <bcp14>MUST</bcp14> ensure that the delegated access token's scope, lifetime, audience, and other claims do not exceed those of the delegation token. The client <bcp14>MAY</bcp14> generate single-use delegated access tokens that the resource server or authorization server only consider valid when validating it for the first time.</t>

<t>The client is <bcp14>RECOMMENDED</bcp14> to "sender-constrain" the delegated access tokens by binding the delegated access tokens with public keys or certificates where the corresponding private keys are owned by the delegated parties, via techniques similar to OAuth 2.0 mTLS <xref target="RFC8705"/> or OAuth 2.0 DPoP <xref target="RFC9449"/>.</t>

</section>
<section anchor="using-delegated-access-tokens"><name>Using Delegated Access Tokens</name>

<t>When the client accesses a delegated resource on the delegated party, the client <bcp14>MUST</bcp14> include the delegated access token as a bearer token <xref target="RFC6750"/> in the <spanx style="verb">Delegated-Authorization</spanx> header, used by the target resource server to verify requests from the delegated party. The <spanx style="verb">Delegated-Authorization</spanx> header <bcp14>MAY</bcp14> be used in combination with an <spanx style="verb">Authorization</spanx> header used by the delegated party to verify the request from the client.</t>

<t>For example:</t>

<figure><artwork><![CDATA[
GET /dp-resource HTTP/1.1
Host: delegated-party.example.com
Authorization: Bearer mF_9.B5g1234
Delegated-Authorization: Bearer mF_9.B5f-4.1JqM
]]></artwork></figure>

<t>Upon receiving a delegated resource request with a <spanx style="verb">Delegated-Authorization</spanx> header, the delegated party sends a request to the target resource server for the respective target resource. The delegated party <bcp14>MUST</bcp14> include the received delegated access token as a bearer token in the <spanx style="verb">Authorization</spanx> header.</t>

<t>For example:</t>

<figure><artwork><![CDATA[
GET /target-resource HTTP/1.1
Host: resource.example.com
Authorization: Bearer mF_9.B5f-4.1JqM
]]></artwork></figure>

</section>
<section anchor="verification-of-delegated-access-tokens"><name>Verification of Delegated Access Tokens</name>

<t>Resource servers verify delegated access tokens through either local validation using pre-configured public keys or remote validation via token introspection <xref target="RFC7662"/> at the authorization server.</t>

<section anchor="local-verification"><name>Local Verification</name>

<t>The resource server verifies delegated access tokens by:</t>

<t><list style="numbers" type="1">
  <t>The resource server is pre-configured with the authorization server's public key, or it fetches the public key via the authorization server's JWKS endpoint <xref target="RFC7517"/>.</t>
  <t>Checking the digital signature of the delegation token (part of the delegated access token) against the authorization server's public key.</t>
  <t>Checking the digital signature of the delegated access token against the delegation key bound to the delegation token.</t>
  <t>Verifying the delegated access token's permissions and validity are within the scope of the delegation token.</t>
  <t>Verifying the delegated access token is within validity period, and the delegated access token's permissions cover the resource request.</t>
</list></t>

</section>
<section anchor="token-introspection"><name>Token Introspection</name>

<t>The resource server sends the delegated access token to the authorization server via the token introspection endpoint <xref target="RFC7662"/>. The authorization server verifies the delegated access token against its keys.</t>

</section>
</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>This section describes the privacy properties of the local delegation approach defined in this specification.</t>

<section anchor="privacy-benefits"><name>Privacy Benefits</name>

<t>When a client creates delegated access tokens locally using a delegation token, the authorization server only observes the initial delegation token request. After that, the client can independently issue subordinate tokens without further authorization server interaction. This provides the following privacy benefits:</t>

<t><list style="symbols">
  <t><strong>Minimized Authorization Server Visibility</strong>: The authorization server does not learn which delegated parties are authorized, what resources they access, or when they access them.</t>
  <t><strong>No Access Pattern Correlation</strong>: The authorization server cannot track usage patterns or correlate activities across different delegated parties.</t>
  <t><strong>Reduced Data Collection</strong>: The authorization server stores only metadata about the initial delegation token, not about each delegated access token.</t>
  <t><strong>Network Traffic Reduction</strong>: Fewer network round-trips to the authorization server reduce exposure to network surveillance.</t>
</list></t>

</section>
<section anchor="relationship-to-token-exchange"><name>Relationship to Token Exchange</name>

<t>Token Exchange <xref target="RFC8693"/> provides a mechanism for delegating access by having the client exchange one token for another at the authorization server. That approach requires authorization server involvement for each delegation event, which necessarily exposes delegation metadata to the authorization server. The local delegation approach in this specification performs delegation entirely on the client side after the initial token issuance, providing an alternative with different privacy characteristics.</t>

</section>
<section anchor="trade-offs"><name>Trade-offs</name>

<t>While local delegation provides significant privacy benefits, implementations should consider:</t>

<t><list style="symbols">
  <t><strong>Client Responsibility</strong>: The client must securely protect the delegation key and properly enforce delegation rules.</t>
  <t><strong>Auditability</strong>: Deployments requiring delegation event audits can implement client-side logging rather than relying on authorization server monitoring.</t>
  <t><strong>Revocation</strong>: If a delegation key is compromised, the authorization server may need to revoke the entire delegation token.</t>
</list></t>

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

<t>This specification extends OAuth 2.0 to support delegated authorization through hierarchical token issuance. While this enables fine-grained privilege delegation, it also introduces new trust and security considerations.</t>

<t><list style="symbols">
  <t>Delegation tokens <bcp14>MUST NOT</bcp14> be sent to resource servers without subordinate delegated access tokens. Resource servers and authorization servers <bcp14>MUST NOT</bcp14> treat delegation tokens as regular OAuth access tokens.</t>
  <t>Clients <bcp14>MUST</bcp14> protect the delegation key, as compromise allows an attacker to mint valid delegated access tokens within the scope of the delegation token.</t>
  <t>Delegated access tokens <bcp14>SHOULD</bcp14> have short lifetimes and be bound to specific audiences, methods, and sender keys (e.g., via DPoP or mTLS) to mitigate replay and token leakage risks. Resource servers <bcp14>MUST</bcp14> validate both the delegation token and the delegated access token, ensuring the latter does not exceed the former’s permissions.</t>
  <t>Token introspection CAN be used in scenarios where the tokens are kept opaque from the delegated party and the resource server. If employed, token introspection responses <bcp14>MUST NOT</bcp14> reveal sensitive internal information. Authorization servers <bcp14>SHOULD</bcp14> enforce rate limiting and audit token issuance and validation activities.</t>
</list></t>

</section>
<section anchor="operational-considerations"><name>Operational Considerations</name>

<t>Deployments of this specification should consider the following operational aspects:</t>

<t><list style="symbols">
  <t><strong>Key Management</strong>: Clients <bcp14>MUST</bcp14> securely store and rotate delegation keys. Authorization servers <bcp14>SHOULD</bcp14> support key rotation for delegation tokens and provide mechanisms to revoke compromised keys.</t>
  <t><strong>Token Lifetimes</strong>: Delegation tokens <bcp14>SHOULD</bcp14> have longer lifetimes than delegated access tokens to reduce authorization server load, and <bcp14>SHOULD</bcp14> be refreshable using refresh tokens.</t>
  <t><strong>Metadata Caching</strong>: Delegated party metadata at the well-known URI /.well-known/oauth-delegated-party can be cached by clients; a reasonable default TTL (e.g., 24 hours) is <bcp14>RECOMMENDED</bcp14>.</t>
  <t><strong>Error Handling</strong>: Delegated parties and resource servers <bcp14>SHOULD</bcp14> provide clear error responses (e.g., invalid token, insufficient scope) without exposing implementation details.</t>
  <t><strong>Interoperability</strong>: Implementers <bcp14>SHOULD</bcp14> ensure compatibility with existing OAuth 2.0 features such as PKCE, Rich Authorization Requests, and sender-constrained tokens.</t>
</list></t>

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

<section anchor="well-known-uris-registry"><name>Well-Known URIs Registry</name>

<t>This specification registers the following entry in the "Well-Known URIs" registry:</t>

<t><list style="symbols">
  <t><strong>URI suffix</strong>: oauth-delegated-party</t>
  <t><strong>Reference</strong>: [this document]</t>
  <t><strong>Status</strong>: permanent</t>
  <t><strong>Change controller</strong>: IETF</t>
  <t><strong>Related information</strong>: (none)</t>
</list></t>

</section>
<section anchor="oauth-parameters-registry"><name>OAuth Parameters Registry</name>

<t>This specification registers the following parameters in the "OAuth Parameters" registry:</t>

<t><strong>Delegation:</strong></t>

<t><list style="symbols">
  <t><strong>Name</strong>: delegation</t>
  <t><strong>Parameter Usage Location</strong>: authorization request, token request</t>
  <t><strong>Change Controller</strong>: IETF</t>
  <t><strong>Reference</strong>: [this document]</t>
</list></t>

<t><strong>Delegation Key:</strong></t>

<t><list style="symbols">
  <t><strong>Name</strong>: delegation_key</t>
  <t><strong>Parameter Usage Location</strong>: token request</t>
  <t><strong>Change Controller</strong>: IETF</t>
  <t><strong>Reference</strong>: [this document]</t>
</list></t>

</section>
<section anchor="oauth-access-token-types-registry"><name>OAuth Access Token Types Registry</name>

<t>This specification registers the following parameters in the "OAuth Access Token Types" registry:</t>

<t><list style="symbols">
  <t><strong>Name</strong>: Delegation</t>
  <t><strong>Additional Token Endpoint Response Parameters</strong>: (none)</t>
  <t><strong>HTTP Authentication Scheme(s)</strong>: Bearer</t>
  <t><strong>Change Controller</strong>: IETF</t>
  <t><strong>Reference</strong>: [this document]</t>
</list></t>

</section>
<section anchor="http-field-name-registry"><name>HTTP Field Name Registry</name>

<t>This specification registers the following parameters in the "Hypertext Transfer Protocol (HTTP) Field Name" registry:</t>

<t><list style="symbols">
  <t><strong>Field Name</strong>: Delegated-Authorization</t>
  <t><strong>Status</strong>: permanent</t>
  <t><strong>Structured Type</strong>: (none)</t>
  <t><strong>Reference</strong>: [this document]</t>
</list></t>

</section>
<section anchor="oauth-delegated-party-metadata-registry"><name>OAuth Delegated Party Metadata Registry</name>

<t>This specification establishes the "OAuth Delegated Party Metadata" registry for OAuth 2.0 delegated party metadata names. The registry records the delegated party metadata parameter and a reference to the specification that defines it.</t>

<section anchor="registration-template"><name>Registration Template</name>

<dl>
  <dt><strong>Metadata Name</strong>:</dt>
  <dd>
    <t>The name requested (e.g., "resource"). This name is case sensitive. Names may not match other registered names in a case-insensitive manner unless the designated experts state that there is a compelling reason to allow an exception.</t>
  </dd>
  <dt><strong>Metadata Description</strong>:</dt>
  <dd>
    <t>Brief description of the metadata (e.g., "Resource identifier URL").</t>
  </dd>
  <dt><strong>Change Controller</strong>:</dt>
  <dd>
    <t>For IETF Stream RFCs, list "IETF". For others, give the name of the responsible party. Other details (e.g., postal address, email address, home page URI) may also be included.</t>
  </dd>
  <dt><strong>Specification Document(s)</strong>:</dt>
  <dd>
    <t>Reference to the document or documents that specify the parameter, preferably including URIs that can be used to retrieve copies of the documents. An indication of the relevant sections may also be included but is not required.</t>
  </dd>
</dl>

</section>
<section anchor="initial-registry-contents"><name>Initial Registry Contents</name>

<t><strong>Resources:</strong></t>

<t><list style="symbols">
  <t><strong>Metadata Name</strong>: resources</t>
  <t><strong>Metadata Description</strong>: JSON array containing a list of target protected resources' resource identifier URLs</t>
  <t><strong>Change Controller</strong>: IETF</t>
  <t><strong>Specification Document(s)</strong>: [this document]</t>
</list></t>

<t><strong>Authorization Servers:</strong></t>

<t><list style="symbols">
  <t><strong>Metadata Name</strong>: authorization_servers</t>
  <t><strong>Metadata Description</strong>: JSON array containing a list of authorization server issuer identifiers</t>
  <t><strong>Change Controller</strong>: IETF</t>
  <t><strong>Specification Document(s)</strong>: [this document]</t>
</list></t>

<t><strong>Supported Permissions:</strong></t>

<t><list style="symbols">
  <t><strong>Metadata Name</strong>: permissions_supported</t>
  <t><strong>Metadata Description</strong>: JSON object indicating the permissions the delegated party may request</t>
  <t><strong>Change Controller</strong>: IETF</t>
  <t><strong>Specification Document(s)</strong>: [this document]</t>
</list></t>

<t><strong>API Permissions:</strong></t>

<t><list style="symbols">
  <t><strong>Metadata Name</strong>: api_permissions</t>
  <t><strong>Metadata Description</strong>: JSON object mapping API endpoints (resource identifiers) to the permissions required to access them</t>
  <t><strong>Change Controller</strong>: IETF</t>
  <t><strong>Specification Document(s)</strong>: [this document]</t>
</list></t>

<t><strong>Delegated Party Documentation:</strong></t>

<t><list style="symbols">
  <t><strong>Metadata Name</strong>: delegated_party_documentation</t>
  <t><strong>Metadata Description</strong>: URL of a page containing human-readable information that developers might want or need to know when using the delegated party</t>
  <t><strong>Change Controller</strong>: IETF</t>
  <t><strong>Specification Document(s)</strong>: [this document]</t>
</list></t>

</section>
</section>
</section>


  </middle>

  <back>


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

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



<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="RFC6749">
  <front>
    <title>The OAuth 2.0 Authorization Framework</title>
    <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
    <date month="October" year="2012"/>
    <abstract>
      <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6749"/>
  <seriesInfo name="DOI" value="10.17487/RFC6749"/>
</reference>
<reference anchor="RFC6750">
  <front>
    <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="D. Hardt" initials="D." surname="Hardt"/>
    <date month="October" year="2012"/>
    <abstract>
      <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6750"/>
  <seriesInfo name="DOI" value="10.17487/RFC6750"/>
</reference>
<reference anchor="RFC7515">
  <front>
    <title>JSON Web Signature (JWS)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7515"/>
  <seriesInfo name="DOI" value="10.17487/RFC7515"/>
</reference>
<reference anchor="RFC7516">
  <front>
    <title>JSON Web Encryption (JWE)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Hildebrand" initials="J." surname="Hildebrand"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries defined by that specification. Related digital signature and Message Authentication Code (MAC) capabilities are described in the separate JSON Web Signature (JWS) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7516"/>
  <seriesInfo name="DOI" value="10.17487/RFC7516"/>
</reference>
<reference anchor="RFC7517">
  <front>
    <title>JSON Web Key (JWK)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7517"/>
  <seriesInfo name="DOI" value="10.17487/RFC7517"/>
</reference>
<reference anchor="RFC7519">
  <front>
    <title>JSON Web Token (JWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7519"/>
  <seriesInfo name="DOI" value="10.17487/RFC7519"/>
</reference>
<reference anchor="RFC7636">
  <front>
    <title>Proof Key for Code Exchange by OAuth Public Clients</title>
    <author fullname="N. Sakimura" initials="N." role="editor" surname="Sakimura"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Agarwal" initials="N." surname="Agarwal"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>OAuth 2.0 public clients utilizing the Authorization Code Grant are susceptible to the authorization code interception attack. This specification describes the attack as well as a technique to mitigate against the threat through the use of Proof Key for Code Exchange (PKCE, pronounced "pixy").</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7636"/>
  <seriesInfo name="DOI" value="10.17487/RFC7636"/>
</reference>
<reference anchor="RFC7662">
  <front>
    <title>OAuth 2.0 Token Introspection</title>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <date month="October" year="2015"/>
    <abstract>
      <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7662"/>
  <seriesInfo name="DOI" value="10.17487/RFC7662"/>
</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>
<reference anchor="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</reference>
<reference anchor="RFC8392">
  <front>
    <title>CBOR Web Token (CWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8392"/>
  <seriesInfo name="DOI" value="10.17487/RFC8392"/>
</reference>
<reference anchor="RFC8414">
  <front>
    <title>OAuth 2.0 Authorization Server Metadata</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <date month="June" year="2018"/>
    <abstract>
      <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8414"/>
  <seriesInfo name="DOI" value="10.17487/RFC8414"/>
</reference>
<reference anchor="RFC8615">
  <front>
    <title>Well-Known Uniform Resource Identifiers (URIs)</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
      <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8615"/>
  <seriesInfo name="DOI" value="10.17487/RFC8615"/>
</reference>
<reference anchor="RFC8693">
  <front>
    <title>OAuth 2.0 Token Exchange</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
    <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
    <date month="January" year="2020"/>
    <abstract>
      <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8693"/>
  <seriesInfo name="DOI" value="10.17487/RFC8693"/>
</reference>
<reference anchor="RFC8705">
  <front>
    <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>This document describes OAuth client authentication and certificate-bound access and refresh tokens using mutual Transport Layer Security (TLS) authentication with X.509 certificates. OAuth clients are provided a mechanism for authentication to the authorization server using mutual TLS, based on either self-signed certificates or public key infrastructure (PKI). OAuth authorization servers are provided a mechanism for binding access tokens to a client's mutual-TLS certificate, and OAuth protected resources are provided a method for ensuring that such an access token presented to it was issued to the client presenting the token.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8705"/>
  <seriesInfo name="DOI" value="10.17487/RFC8705"/>
</reference>
<reference anchor="RFC9110">
  <front>
    <title>HTTP Semantics</title>
    <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
    <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
    <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
      <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="97"/>
  <seriesInfo name="RFC" value="9110"/>
  <seriesInfo name="DOI" value="10.17487/RFC9110"/>
</reference>
<reference anchor="RFC9396">
  <front>
    <title>OAuth 2.0 Rich Authorization Requests</title>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <author fullname="J. Richer" initials="J." surname="Richer"/>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <date month="May" year="2023"/>
    <abstract>
      <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9396"/>
  <seriesInfo name="DOI" value="10.17487/RFC9396"/>
</reference>
<reference anchor="RFC9449">
  <front>
    <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
    <author fullname="D. Fett" initials="D." surname="Fett"/>
    <author fullname="B. Campbell" initials="B." surname="Campbell"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="D. Waite" initials="D." surname="Waite"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9449"/>
  <seriesInfo name="DOI" value="10.17487/RFC9449"/>
</reference>
<reference anchor="RFC9700">
  <front>
    <title>Best Current Practice for OAuth 2.0 Security</title>
    <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="A. Labunets" initials="A." surname="Labunets"/>
    <author fullname="D. Fett" initials="D." surname="Fett"/>
    <date month="January" year="2025"/>
    <abstract>
      <t>This document describes best current security practice for OAuth 2.0. It updates and extends the threat model and security advice given in RFCs 6749, 6750, and 6819 to incorporate practical experiences gathered since OAuth 2.0 was published and covers new threats relevant due to the broader application of OAuth 2.0. Further, it deprecates some modes of operation that are deemed less secure or even insecure.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="240"/>
  <seriesInfo name="RFC" value="9700"/>
  <seriesInfo name="DOI" value="10.17487/RFC9700"/>
</reference>
<reference anchor="RFC9728">
  <front>
    <title>OAuth 2.0 Protected Resource Metadata</title>
    <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
    <author fullname="P. Hunt" initials="P." surname="Hunt"/>
    <author fullname="A. Parecki" initials="A." surname="Parecki"/>
    <date month="April" year="2025"/>
    <abstract>
      <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9728"/>
  <seriesInfo name="DOI" value="10.17487/RFC9728"/>
</reference>

<reference anchor="I-D.lombardo-oauth-step-up-authz-challenge-proto">
   <front>
      <title>OAuth 2.0 step-up authorization challenge proto</title>
      <author fullname="Jeff Lombardo" initials="J." surname="Lombardo">
         <organization>AWS</organization>
      </author>
      <author fullname="Alexandre Babeanu" initials="A." surname="Babeanu">
         <organization>IndyKite</organization>
      </author>
      <author fullname="Yaron Zehavi" initials="Y." surname="Zehavi">
         <organization>Raiffeisen Bank International</organization>
      </author>
      <author fullname="George Fletcher" initials="G." surname="Fletcher">
         <organization>Practical Identity</organization>
      </author>
      <date day="30" month="June" year="2025"/>
      <abstract>
	 <t>   It is not uncommon for resource servers to require additional
   information like details of delegation authorization, or assurance
   proof of the delegation of authorization mechanism used according to
   the characteristics of a request.  This document introduces a
   mechanism that resource servers can use to signal to a client that
   the data and metadata associated with the access token of the current
   request does not meet its authorization requirements and, further,
   how to meet them.  This document also codifies a taxonomy to guide
   the client into starting a new request towards the authorization
   server in order to get issued, if applicable, a new set of tokens
   matching the requirements.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-lombardo-oauth-step-up-authz-challenge-proto-02"/>
   
</reference>



    </references>

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



<reference anchor="RFC8792">
  <front>
    <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <author fullname="Q. Wu" initials="Q." surname="Wu"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8792"/>
  <seriesInfo name="DOI" value="10.17487/RFC8792"/>
</reference>



    </references>

</references>


<?line 564?>

<section anchor="token-format"><name>Token Format</name>

<t>The example tokens in this section are shown in Flattened JSON Serialization <xref target="RFC7515"/> <xref target="RFC7516"/>, un-base64url-encoded and with comments for ease of reading. When used as JWTs <xref target="RFC7519"/>, they should be represented in Compact Serialization <xref target="RFC7515"/> <xref target="RFC7516"/>. Similarly, they can be represented as CWTs <xref target="RFC8392"/>.</t>

<section anchor="example-1"><name>Example 1</name>

<t>In this example, the delegation token is a JWS token signed with HS256, and the delegated access token is a JWS token signed with RS256.</t>

<t><strong>Delegation Token</strong>:</t>

<figure><sourcecode type="sourcecode"><![CDATA[
{
  "protected": {
    "_comment": "to be base64url-encoded",
    "alg": "HS256",
    "typ": "JWT",
    "kid": "as-key-1"
  },
  "payload": {
    "_comment": "to be base64url-encoded",
    "iss": "https://as1.example.com",
    "sub": "user@example.com",
    "aud": "https://res1.example.com",
    "iat": 1772177588,
    "exp": 1774769588,
    "scope": "email:read email:send",
    "delegation_key": {
      "kty": "RSA",
      "n": "0Z5t3Rwhfz4MJxdNzg2I6Bsf9H_3kcMKtH6iwJsLV2DKO1MVcHb6wsxHZpqRePjm5Q1-pImr4pT67hCHyAR6kS4QbTrBZcjSe8lsvZIiifiBVWZxz8ZAfdj6EFSOWhFLZ0GVqe9NMslwX1hHOwmhRmMjGjexISPsZk5qN3gwqmD36H1GS-rE-cWlXI9f4pVcCdYqE0rfhZ7hDn5mrpWWY8wJuQa2jFqX-Fhyvt_Zh-qaa5Wp8cLJPS_ceAcLeS5mOYE58beelp51PuCDpq7a9fN4K_EpcSD7Ay0GrJxgN_VcLA7DgOAuU6zYDzk2KnmQ3qz35Tj5hy8jDHgF1AaSTw",
      "e": "AQAB"
    }
  },
  "signature": "SBwdWhy4dissabBRoyyxMxRuVUbsFYv_1HZFeROLh5A"
}
]]></sourcecode></figure>

<t><strong>Delegated Access Token</strong>:</t>

<figure><sourcecode type="sourcecode"><![CDATA[
{
  "protected": {
    "_comment": "to be base64url-encoded",
    "alg": "RS256",
    "typ": "JWT",
    "kid": "delegation-key-1"
  },
  "payload": {
    "_comment": "to be base64url-encoded",
    "sub": "https://dp1.example.com",
    "aud": "https://res1.example.com",
    "iat": 1772181188,
    "exp": 1772184788,
    "scope": "email:read",
    "delegationToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImFzLWtleS0xIn0.eyJpc3MiOiJodHRwczovL2FzMS5leGFtcGxlLmNvbSIsInN1YiI6InVzZXJAZXhhbXBsZS5jb20iLCJhdWQiOiJodHRwczovL3JlczEuZXhhbXBsZS5jb20iLCJpYXQiOjE3NzIxNzc1ODgsImV4cCI6MTc3NDc2OTU4OCwic2NvcGUiOiJlbWFpbDpyZWFkIGVtYWlsOnNlbmQiLCJkZWxlZ2F0aW9uX2tleSI6eyJrdHkiOiJSU0EiLCJuIjoiMFo1dDNSd2hmejRNSnhkTnpnMkk2QnNmOUhfM2tjTUt0SDZpd0pzTFYyREtPMU1WY0hiNndzeEhacHFSZVBqbTVRMS1wSW1yNHBUNjdoQ0h5QVI2a1M0UWJUckJaY2pTZThsc3ZaSWlpZmlCVldaeHo4WkFmZGo2RUZTT1doRkxaMEdWcWU5Tk1zbHdYMWhIT3dtaFJtTWpHamV4SVNQc1prNXFOM2d3cW1EMzZIMUdTLXJFLWNXbFhJOWY0cFZjQ2RZcUUwcmZoWjdoRG41bXJwV1dZOHdKdVFhMmpGcVgtRmh5dnRfWmgtcWFhNVdwOGNMSlBTX2NlQWNMZVM1bU9ZRTU4YmVlbHA1MVB1Q0RwcTdhOWZONEtfRXBjU0Q3QXkwR3JKeGdOX1ZjTEE3RGdPQXVVNnpZRHprMktubVEzcXozNVRqNWh5OGpESGdGMUFhU1R3IiwiZSI6IkFRQUIifX0.SBwdWhy4dissabBRoyyxMxRuVUbsFYv_1HZFeROLh5A"
  },
  "signature": "df5sTdp6j-ULv3To3yqYFFZWLrY41wu6jpKfsZdjMNMeRH3TXY5nSc-lhdFfJElVGnyCa5Rf9YGlvacGVy84maFCq0zhNTiLL8xBYieCKTAhmMuWZvIUZFBoE1KBj2YXskpnU6CFTKhALbW5lidZSGXdcEnygxwaumpO_AxlYghU8RQrQgF1wAsoDLcoun1-FROuHUzqKGWqYSbXe1lGJ3dTt5ftod7SjGqM2Quz4BvfQMpw82VVGq7YlvRJMuPe4ITUeikFNQ672bvVrjhwHUlglQ9HuFj5iroHqwr6dLtfKVDBtw33A_lCnsWfk4vPWDJ-1fy3Klj4hT_bhBIVJA"
}
]]></sourcecode></figure>

</section>
<section anchor="example-2"><name>Example 2</name>

<t>In this example, the delegation token chain consists of three tokens: a top-level delegation token issued by the authorization server, a subordinate delegation token created by the client, and a delegated access token created from the subordinate token. The top-level delegation token has <spanx style="verb">max_delegation_depth</spanx> of 3, which allows for two levels of delegation.</t>

<t><strong>Top-Level Delegation Token</strong>:</t>

<figure><sourcecode type="sourcecode"><![CDATA[
{
  "protected": {
    "_comment": "to be base64url-encoded",
    "alg": "RS256",
    "typ": "JWT",
    "kid": "as-key-2"
  },
  "payload": {
    "_comment": "to be base64url-encoded",
    "iss": "https://as1.example.com",
    "sub": "user@example.com",
    "aud": "https://res1.example.com",
    "iat": 1772177588,
    "exp": 1774769588,
    "scope": "email:read email:write email:send",
    "delegation_key": {
      "kty": "RSA",
      "n": "3O1EVa-_zsENOhylq99puKjF6NBq8S8Ntw9sufyCB9LrTSs-xRoDQ7X6rYbPEOn5E-6ASZyUW2vFxLacj0Wir05hznlnfRLRTmJhud4im5COfAhuiPeL0Mbs3WFLdBfWVGXSP2O5UNkd7dJ2KqudqxNF81Nrt51RpmPR59pUZS3REfAYgtqhQ07WuCTzd2VpFttPFurDSiWcriyELNdgsT9wap0nyceSVLQgY9ZgR0VvsmHj_LUKie1t5RCjTsaMHJH6x3QI0tjKG9Psbil0ORlhA9WEgOO6E6KOC_StEBnK_Ntb2ArGPDjlNPzTqWOeeev84MM8VXdRzpTLOrRmHQ",
      "e": "AQAB"
    },
    "max_delegation_depth": 3
  },
  "signature": "p1OjJQ2tASuFPPCXzdbuSHaZiPTF2jM1Z_My2_qPx0IAAJJ5RVo9Km2hFeXjqqGcjkG5wEFxMw_q8JO48O9bVaKNBa1k_-UoBxf5KlMpldMFIUyV4D8Sugshh73iqVii5HW2MY4uS5Gj46GDUcX1NQRg8LW6Wa4zso0SPfIfunXF0dvBG24cCUoIFOr1NzryZ7OcVt9kdC4_uXGoSmjtGl1XsRvgb216fZFuZV0F88zWFsDcBZn4i8qGcBS2XAHjW4jbH7Y1O8dvl2h0afftmNkG2ZgHPl3phj_i-unQsAxhCUI_8MjtfF5iwe586uQw_1iED2IUlEXOgX-Ld5GgTw"
}
]]></sourcecode></figure>

<t><strong>Subordinate Delegation Token</strong>:</t>

<figure><sourcecode type="sourcecode"><![CDATA[
{
  "protected": {
    "_comment": "to be base64url-encoded",
    "alg": "RS256",
    "typ": "JWT",
    "kid": "delegation-key-2"
  },
  "payload": {
    "_comment": "to be base64url-encoded",
    "aud": "https://res1.example.com",
    "iat": 1772181188,
    "exp": 1772782388,
    "max_delegation_depth": 1,
    "scope": "email:read email:write",
    "delegationToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImFzLWtleS0yIn0.eyJpc3MiOiJodHRwczovL2FzMS5leGFtcGxlLmNvbSIsInN1YiI6InVzZXJAZXhhbXBsZS5jb20iLCJhdWQiOiJodHRwczovL3JlczEuZXhhbXBsZS5jb20iLCJpYXQiOjE3NzIxNzc1ODgsImV4cCI6MTc3NDc2OTU4OCwic2NvcGUiOiJlbWFpbDpyZWFkIGVtYWlsOndyaXRlIGVtYWlsOnNlbmQiLCJkZWxlZ2F0aW9uX2tleSI6eyJrdHkiOiJSU0EiLCJuIjoiM08xRVZhLV96c0VOT2h5bHE5OXB1S2pGNk5CcThTOE50dzlzdWZ5Q0I5THJUU3MteFJvRFE3WDZyWWJQRU9uNUUtNkFTWnlVVzJ2RnhMYWNqMFdpcjA1aHpubG5mUkxSVG1KaHVkNGltNUNPZkFodWlQZUwwTWJzM1dGTGRCZldWR1hTUDJPNVVOa2Q3ZEoyS3F1ZHF4TkY4MU5ydDUxUnBtUFI1OXBVWlMzUkVmQVlndHFoUTA3V3VDVHpkMlZwRnR0UEZ1ckRTaVdjcml5RUxOZGdzVDl3YXAwbnljZVNWTFFnWTlaZ1IwVnZzbUhqX0xVS2llMXQ1UkNqVHNhTUhKSDZ4M1FJMHRqS0c5UHNiaWwwT1JsaEE5V0VnT082RTZLT0NfU3RFQm5LX050YjJBckdQRGpsTlB6VHFXT2VlZXY4NE1NOFZYZFJ6cFRMT3JSbUhRIiwiZSI6IkFRQUIifSwibWF4X2RlbGVnYXRpb25fZGVwdGgiOjN9.p1OjJQ2tASuFPPCXzdbuSHaZiPTF2jM1Z_My2_qPx0IAAJJ5RVo9Km2hFeXjqqGcjkG5wEFxMw_q8JO48O9bVaKNBa1k_-UoBxf5KlMpldMFIUyV4D8Sugshh73iqVii5HW2MY4uS5Gj46GDUcX1NQRg8LW6Wa4zso0SPfIfunXF0dvBG24cCUoIFOr1NzryZ7OcVt9kdC4_uXGoSmjtGl1XsRvgb216fZFuZV0F88zWFsDcBZn4i8qGcBS2XAHjW4jbH7Y1O8dvl2h0afftmNkG2ZgHPl3phj_i-unQsAxhCUI_8MjtfF5iwe586uQw_1iED2IUlEXOgX-Ld5GgTw"
  },
  "signature": "lnf8Wz5M_B4dVTOOjT0aQa0ZSqEbTZVGb1HU_dk1tJ4eCbkCB8lmO0wJXc07Ys8gKqqb3TS4tKUbnwwKo3_Dw3FGYjbDqDE7rBtdc0lqi6fKSecff2ujVCi2U2dLjX78_h7U0LP1XbJuhkjdBYa-_mwiygAXf0j8cilXTigbTWJfgqcziVmkJzl9a_5HJ8HYF5ohdGmVBhOfyRrwGikYoHEQB6Ye_6jwTD_IQsUJe0eYdD4xAdA7C2awZAvhdYduKXit7WSyGuEhbyKopsm6WVZz4BkjWDjcJ2S7Xjb6RxPCGc_nNiAMsGT1nG9MIj-oGYy8gIWPSLEyF_6sk8hiaQ"
}
]]></sourcecode></figure>

<t><strong>Delegated Access Token</strong>:</t>

<figure><sourcecode type="sourcecode"><![CDATA[
{
  "protected": {
    "_comment": "to be base64url-encoded",
    "alg": "RS256",
    "typ": "JWT",
    "kid": "delegation-key-2-sub"
  },
  "payload": {
    "_comment": "to be base64url-encoded",
    "sub": "https://dp1.example.com",
    "aud": "https://res1.example.com",
    "iat": 1772184788,
    "exp": 1772188388,
    "scope": "email:read",
    "delegationToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRlbGVnYXRpb24ta2V5LTIifQ.eyJhdWQiOiJodHRwczovL3JlczEuZXhhbXBsZS5jb20iLCJpYXQiOjE3NzIxODExODgsImV4cCI6MTc3Mjc4MjM4OCwibWF4X2RlbGVnYXRpb25fZGVwdGgiOjEsInNjb3BlIjoiZW1haWw6cmVhZCBlbWFpbDp3cml0ZSIsImRlbGVnYXRpb25Ub2tlbiI6ImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJa3BYVkNJc0ltdHBaQ0k2SW1GekxXdGxlUzB5SW4wLmV5SnBjM01pT2lKb2RIUndjem92TDJGek1TNWxlR0Z0Y0d4bExtTnZiU0lzSW5OMVlpSTZJblZ6WlhKQVpYaGhiWEJzWlM1amIyMGlMQ0poZFdRaU9pSm9kSFJ3Y3pvdkwzSmxjekV1WlhoaGJYQnNaUzVqYjIwaUxDSnBZWFFpT2pFM056SXhOemMxT0Rnc0ltVjRjQ0k2TVRjM05EYzJPVFU0T0N3aWMyTnZjR1VpT2lKbGJXRnBiRHB5WldGa0lHVnRZV2xzT25keWFYUmxJR1Z0WVdsc09uTmxibVFpTENKa1pXeGxaMkYwYVc5dVgydGxlU0k2ZXlKcmRIa2lPaUpTVTBFaUxDSnVJam9pTTA4eFJWWmhMVjk2YzBWT1QyaDViSEU1T1hCMVMycEdOazVDY1RoVE9FNTBkemx6ZFdaNVEwSTVUSEpVVTNNdGVGSnZSRkUzV0RaeVdXSlFSVTl1TlVVdE5rRlRXbmxWVnpKMlJuaE1ZV05xTUZkcGNqQTFhSHB1Ykc1bVVreFNWRzFLYUhWa05HbHROVU5QWmtGb2RXbFFaVXd3VFdKek0xZEdUR1JDWmxkV1IxaFRVREpQTlZWT2EyUTNaRW95UzNGMVpIRjRUa1k0TVU1eWREVXhVbkJ0VUZJMU9YQlZXbE16VWtWbVFWbG5kSEZvVVRBM1YzVkRWSHBrTWxad1JuUjBVRVoxY2tSVGFWZGpjbWw1UlV4T1pHZHpWRGwzWVhBd2JubGpaVk5XVEZGbldUbGFaMUl3Vm5aemJVaHFYMHhWUzJsbE1YUTFVa05xVkhOaFRVaEtTRFo0TTFGSk1IUnFTMGM1VUhOaWFXd3dUMUpzYUVFNVYwVm5UMDgyUlRaTFQwTmZVM1JGUW01TFgwNTBZakpCY2tkUVJHcHNUbEI2VkhGWFQyVmxaWFk0TkUxTk9GWllaRko2Y0ZSTVQzSlNiVWhSSWl3aVpTSTZJa0ZSUVVJaWZTd2liV0Y0WDJSbGJHVm5ZWFJwYjI1ZlpHVndkR2dpT2pOOS5wMU9qSlEydEFTdUZQUENYemRidVNIYVppUFRGMmpNMVpfTXkyX3FQeDBJQUFKSjVSVm85S20yaEZlWGpxcUdjamtHNXdFRnhNd19xOEpPNDhPOWJWYUtOQmExa18tVW9CeGY1S2xNcGxkTUZJVXlWNEQ4U3Vnc2hoNzNpcVZpaTVIVzJNWTR1UzVHajQ2R0RVY1gxTlFSZzhMVzZXYTR6c28wU1BmSWZ1blhGMGR2QkcyNGNDVW9JRk9yMU56cnlaN09jVnQ5a2RDNF91WEdvU21qdEdsMVhzUnZnYjIxNmZaRnVaVjBGODh6V0ZzRGNCWm40aThxR2NCUzJYQUhqVzRqYkg3WTFPOGR2bDJoMGFmZnRtTmtHMlpnSFBsM3Boal9pLXVuUXNBeGhDVUlfOE1qdGZGNWl3ZTU4NnVRd18xaUVEMklVbEVYT2dYLUxkNUdnVHcifQ.lnf8Wz5M_B4dVTOOjT0aQa0ZSqEbTZVGb1HU_dk1tJ4eCbkCB8lmO0wJXc07Ys8gKqqb3TS4tKUbnwwKo3_Dw3FGYjbDqDE7rBtdc0lqi6fKSecff2ujVCi2U2dLjX78_h7U0LP1XbJuhkjdBYa-_mwiygAXf0j8cilXTigbTWJfgqcziVmkJzl9a_5HJ8HYF5ohdGmVBhOfyRrwGikYoHEQB6Ye_6jwTD_IQsUJe0eYdD4xAdA7C2awZAvhdYduKXit7WSyGuEhbyKopsm6WVZz4BkjWDjcJ2S7Xjb6RxPCGc_nNiAMsGT1nG9MIj-oGYy8gIWPSLEyF_6sk8hiaQ"
  },
  "signature": "mn-0y0F3lx0IM-60UsBp1_M7uRhdT28dPqxt6-s1OnjM-obyF-p5XbQV9jI5Q56X4cb3jLl6RkM789ODTGt5y4QNdOA2WhlS0WldSOzYkV1Xj2yrC0mZakYCHTpzzgvfeUjeNj-fDWmtgRb2Lfm6Z6dguT071WQkaIyH4IW5xVxroqbn1tFM07uX3huIV9tC_iS926rWaDW7eQDm1nhhjS_QSgUcTF1eJy7hOjEtzs70iij5bQU-B9nn6OfXdpb1jO5vx3lCSnZfL2h2EaQYK3CbjrflbDnIYKtJ0NMx5D03KRcv_uPlG5HHRL5cuMz8eToKc08rc0Qs5PxDbeqV4A"
}
]]></sourcecode></figure>

</section>
</section>
<section anchor="integration-with-step-up-authorization"><name>Integration with Step-Up Authorization</name>

<t>This specification can be used together with step-up authorization <xref target="I-D.lombardo-oauth-step-up-authz-challenge-proto"/>. When a resource server returns an <spanx style="verb">insufficient_authorization</spanx> error, the client can create a new delegated access token with the required permissions from its existing delegation token.</t>

<t>This is particularly useful for AI agents that hold a delegation token. Upon receiving a step-up authorization challenge, the agent can automatically create a new delegated access token with the additional authorization_details required by the resource server, without requiring the user to re-authenticate.</t>

<t>Resource servers that support both delegated authorization and step-up challenges <bcp14>SHOULD</bcp14> use the <spanx style="verb">body_instructions</spanx> parameter to specify the exact authorization_details or scope required.</t>

</section>
<section anchor="use-cases"><name>Use Cases</name>

<section anchor="delegating-subset-of-access-rights-to-specialized-ai-agents"><name>Delegating Subset of Access Rights to Specialized AI Agents</name>

<t>Enterprise Identity and Access Management systems often employ Role Based Access Control (RBAC) or Attribute Based Access Control (ABAC), assigning a set of minimal permissions to the employee based on their role, department, or other attributes. AI Agent can be an employee's personal assistant, or a virtual employee of a certain department in general. The permissions delegated to an AI agent CAN be long-term, but an AI agent <bcp14>MUST NOT</bcp14> directly inherit all its owner's access rights. Rather, they <bcp14>SHOULD</bcp14> be a subset of its owner, bound to specific service/API/database/codebase according to its specialty and dedicated workflow.</t>

<texttable title="AI Agents" align="center">
      <ttcol align='left'>Role</ttcol>
      <ttcol align='left'>Service / Component</ttcol>
      <c>Resource Owner</c>
      <c>an enterprise, individual or a department</c>
      <c>Client</c>
      <c>agent's client application</c>
      <c>Delegated Party</c>
      <c>CI-CD agent, test agent, DEV agent, research agent</c>
      <c>Authorization Server</c>
      <c>enterprise IAM system</c>
      <c>Resource Server</c>
      <c>enterprise IT systems</c>
      <c>Target Protected Resource</c>
      <c>DEV/STAGE/PROD environments, internal knowledge database</c>
</texttable>

</section>
<section anchor="thirdparty-analytics-platform-integrated-in-an-enterprise-saas"><name>Third‑Party Analytics Platform Integrated in an Enterprise SaaS</name>

<t>In this scenario, a corporate customer uses a Software-as-a-Service (SaaS) Customer Relationship Management (CRM) application. The customer wishes to gain business insights by granting a specialized third-party analytics platform limited access to its CRM data.</t>

<t>The CRM application obtains a delegation token from the enterprise's identity provider. It then creates a narrowly scoped delegated access token for the analytics service. This token only permits read access to a predefined, non-sensitive subset of customer data (e.g., names and identifiers, but not personal email addresses). The analytics platform uses this token to pull data, generates an aggregated business intelligence report, and delivers it back to the CRM application for the corporate customer to view.</t>

<texttable title="Enterprise-SaaS" align="center">
      <ttcol align='left'>Role</ttcol>
      <ttcol align='left'>Service / Component</ttcol>
      <c>Resource Owner</c>
      <c>company A (the tenant)</c>
      <c>Client</c>
      <c>SaaS CRM application</c>
      <c>Delegated Party</c>
      <c>analytics service</c>
      <c>Authorization Server</c>
      <c>enterprise IdP</c>
      <c>Resource Server</c>
      <c>CRM application server</c>
      <c>Target Protected Resource</c>
      <c>CRM application's data retrieval API</c>
</texttable>

</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+192ZbiyJLgO1+hiftQmXkDErHF0n27m00sEUCgFeiuiXRJ
DhJoCy1sVXlP/8I8ztv8wfzDfEp/yRx31wqCiKqb1dMz0/lQRYDL3dzc3HYz
FYvFQsHXfQM+Uj9NmoGvUZVSmepAA66AD1UKfWW7+hH4um39VACy7MLtI/VT
PKKIRvxUUG3FAiaaRXXB0i8aetEGga8V1XggSE9VNIAPPf+nQsHzgaW+AsO2
4CPluwEs7FaPFH64oDsu/s7zK+XyQ7lS8ALZ1D1Pty3/4MBHatDlmYIC/EdK
t5Z2obCFVgAfCxS1cu3AeaSkXoGiyFDJdje6taJ66JcCRZlAN8J1/kmH/rJk
u6sCRQFX0R4pzfcd7/HrVxX4wHeBsoFuKRr0dbf6ih/7CmQ78L+i1XRfC+RH
ytADRQssRdO/voeAAkURFCSLJU+XyIQl3X53nq8fw3dJ802jUCDfPRaKlG55
jxRbop71AkWRo2MDW9GgRb6y3dUj1Q/ADurUwPJL1IsPqWdfLVAUJKgz9JJL
nvgnregA17eg65UU24xm75coCVireP4+0FcBsFbRt+8vsQPWqqSFj5U8TYeG
agD5nzT8UHqtNtpJEC/VJnikXqAP3fCX9HI8VDTLNuyVDr30jqIDyFmBz+CK
1+EBfBhVz3qJPJCet2DZrgl8fYsJlmXaFZp+CD827mrJx3o5/HhXp+vJx0by
8S75GD1216jGAxqNSvjxnr6rRR8r9WjsffUhHlCj4wGNeLX7xkM1+nhXjr59
oOkIsofqQ7TaQy0G/eGuHA+4q9yjj4Nip2TYpgxc1Q4p1vOhUwwcTK/HoqIB
w4DWChYd1/btx0IB3ewsou7vELyFYrFIAdlD99MvFBKelSF8ClpANqBHAUox
dGj5lG9T0SWhAOUFsgd9yl5Suu9RKxdYaArH1be6AVfQQ8PxKNtVdQs/oyjQ
Q99voEV9AoZnUxvL3lkUQIuoCRipcZ9LFK/pHmVCRQOW7pkUMAx751G+BlNw
eVAJXGgcUgBm9oJhSVZAl+5A7TTdgIidWT7QLcTilroFiysX6BZUKcW2fNc2
KHsL3fSz0A05qVciqDR1VTVgofAnRMSurQYK5lOFRCz88ktImt+/U45rb3UV
43XpAhPubHdDLW03hhgB4mu6qxYJmMBxDF3B+yBIJehBpwwVBJELPTtwFehR
tkXJUAPGEh0LiH+g7J0F3RLVt3dwC91bSrcouNc9Hy2lm44BTWj5ZIXbDPo9
Sve8AKpoXYJtj7KXPrQwdgCeB43WtzCNGMrXgI9/wsfpB8CgXPgW6C5eybul
FBcCvDw+Od0/UNvAsKALZN3QfR2hx1Ipx/ah5evAoJA8oeDesb3AhZSrexuE
fUwangMVfRliiIJ7H1qqRyXI3+m+lqWvDGkkh0CADqk+2i3aOIIVXiRlj6zg
Qs93deWURAj5AsdxbaBoFFBVF3oeJATsuLZsQBOdFqKyYnx71JMV5ENyTghr
gPJ3dpHcJCR4dUQKCDN4DypU7MBBu9AtHaPvdMu2iWgdn0pIImS9EqJiNnVS
1DOwVgFYQYRsSG3ggdrZrupRNyOB429uyf+p8QR/ZrtTYcB2O+gz128+P8cf
CuEIrj8RnjvJp+TJ9mQ06o475OHxhKcyXxVuRs35zS2mipvJCz+YjJvPN4iQ
fYRf1VYCBC8FEA5sSoaUbvnQdVyIT9wrqNBTXF2GKnqm1X75X/+DrlG//PJf
QvHx/Xv4B2L0379TOw1aZDXbMg7hn74GDwXgOBC4aBZgGJQCHN0HBro2HuVp
iJtp0IWlQuHLPyPM/PxI/b2sOHTtH8Iv0IYzX0Y4y3yJcXb+zdnDBIk5X+Us
E2Mz8/0JprPwNueZvyO8p778+380dAtSRfr+H/+hgIiHR7SPNYRD7v0MItpf
2oiRY2YHXdOjVLjEbFe3qFzG+XhCxB50MS8jF/U2oeToB3R4JxyQEHGyMlBV
HU0GjBAIRD6Bh/id5trBSrMDP0tgj4XCly+JxHzBHPpT5+Xzly+PhUeqicSm
j9jZJ1halW6RBITuVlfgLaXYpmNbGFbE7ROu/jneGVTRTc+Kto+ye/TU2XbT
sLLhjyGkqcEu1XwZUNBSHVu3fEqzPT+B5FRqYg4TMnMvYVM56//bv/73NNyY
hQMf8S7grqB/emJpcNEB84i7RcASVhcKoxCyPHrAkjSNwDRPzyI2ZOv5eod3
grwm+S0HJjLN6cEFHhHj8fxEC9kgNoLFRVpaypDw9ESlynvwJy+tXSHqBpRp
u5AydFNHEBj6EnoOsE4R+QQPEciKe3B8e+UCR9MVzM1lO7DU6PzOYcWX4Ywm
PX1lXUQcxWdnQqvoCHboQawjYqYNQ/QhSoKej9gn+vJb8uDrBh6+IaIDJjJG
sGiabNFtgjtykd8X6XqokGF1S9Ohi4Wlgu47Xt3z3YAIzh1i24muqwCLsmWs
4YAztBABCqx8CkQnE3iQ0jGqMMm+rzsgGPMUh4h0M5ppOEOkoJ7rsQiTsWLl
uLYDXaxThZRlu/oKS/8s/FiHLxUKf/3rXwHwtsjSjP/9uZj8+zNFl7L+jbMh
eFj6+V/PP7PhyecNwX9fev50ofDfP3z0+dOFUl9HPPKd5yt5+ydDJojzfWj9
HkL3FbAuPv/3+fv/89+4//fOr01uxsXnz/5dXr/6I+jnd+PvD6Of7J6uPF8r
USn+nBnCESbygfWxLPo9+/899PPnYvG/klHnA5Mhl88vBuHXeinlJb36r9DI
DP01NUsojt95nvwvutPp509xd+35E/jfeyr/+T9jzBWLxS3CXy4Ofiv9p1WS
PMh+MP0nAP9e/kmUZfS5UaJeYr0wA2JC/u/Sf3qt37T/30n/FwfmDCHn99e/
/rXwyyP1p6W+KmatdBQ4+MvNhWgBxcT6SzP11A0FDH1l/eVGQWqUe/O9UKCJ
shXqLKEq5eVZ+znWQfpR3VKRMYI9Bjm6daSkYW2aTIW/ONO8sAqBtD2khl9Q
z0qFQuUEbgXqW6zTXtBIqhf2ea6ZyQc8BTLCFOJgwgrWRXMBe5mIZhopTnk7
QsOQm/NErQUZs5WD2PFHVUuFQo1AnL9mAmDWKEGrbIGhq/EPObAQw1ZfkpG3
RMHMw0WpUKhn8KYAw/DybLqfPGQA3p4iIl/Bp1YQ+enQ1zFlnS1N8Zef170T
O+6aybSBh9PJiBkaEwE2JYhBeW4j5xD/+cGf4iQNbamApBCfM0H2oPKfPj0r
/KiXgefS7sIrkR56S9kO8VYYB8p3geUh/76HDA3dIt524msoRi4X9KhjWx48
dbcn60WTf44cJn7gWl5ovCSnUyoUWravnV849NCFg0Y2lAypITcZUxKUiaTy
qE9Difc+E9cOirt8/448EO3WhM2MaiejUJjl+3dsAJ66XkbQB8ixUCi04NLG
DlCY8h/FHMN3dbjNvSZ4BxFNXw5ExI6Fk6O6TZOwBaGKnSGh6XiR7cS+FrQ4
9gSn3AFolov+lxLFBYpGxbEdO8azCawAk4ZiW0t9FbiYK2VOEXuedD96Qj1Y
wETWMAqc6J6CfNCJ7+uMKM0Q16V0zCj7U2yvnh5BGitp2MO9IkMZCTWg+Of+
+nDf6J4k9npoysYLkykRc/F0UzeAi+a8ScDISthQzYio5yaksxqNfL/Exxw/
mWgqscZx8hyK0WH6zLvKMYS6F9NhyDoBtYOGUSS3kkDQoOvfv1OGHXpLcWQM
XyDyc6WOrkvkjCxRLRTxWoLA8AkdpuYT2AFCF+Kp2Imje9S3r6VkwNfTsDcG
9xu6ZZevGdX0fVeXAx96yMkUuyKJf+nLl5Qn+cuXEoEcuC44RPEi4ugydI+4
uS7xbe+nhN/qKpJJSx26xMuekrhp7FNd3degS9y1IAITEfyXL5k7+EruoPfl
SzyVDA17R2H3vAwjsYDdaBeeJLuN/OEf2Sqhp1xmgKWh++4+CXVe3WfqPOLH
gWxvYe7eUjzn1Qscx3Z9qF47SVteQyVWFiNpnY375VwAEEtrcom/eYrtQO9b
CnqEJY+KgaDwCCQ1kWqTCgL8HXESZk9FhT7QjavzubpyivxIpyWb8nIpq/rQ
QBjnNehBahXoKkxzex1HQQlLQsjAQv5kFczf045OL3WAuagIxcz7ezQDzz8j
V0d/TZ3HBw7TBI6DgE9HADzqU97t+xypBOkTDyMBaipU4WvQLFFdFO7EJ4jF
jW4pRqCmd2ypX2334j6RlxlrMYdL8pEIZOzeJ2B/jXUqhIqYDF8xGb5GTBOv
c36DHymBfSZhcwesYPoSa4EJrKILgYpkW0Z8heHWLTSQj9WjTH2l+Sj7xkfn
iABFG0H8FocQz3XcrHgj6MKiDdlQKGuHGjXncTjTAkT/Q5Gidxh1dw9QwPg0
4oV4BmXZVjHOoaEgGXlRcD1ijzDBrGKrsPBLgaJuYlZz80j9M7aUb6J0LBd6
dCmcFSXs3Nye/V6Jf7egf1OgqJ/RmJtcbnu+ALg+P7g0fS7Du3mkfiHPE8pE
y904rr3UDfiIDh3Fo6O/d67uQ/QFyU+KfiZ/kR9/DqHJpet4L1S4KB6K8uxu
HqkbBxwQhYb7IbNgk5IARYL5ZH3PB37goU8KsBRoRMvih/SQKUG1adqB5cdb
DH+3bH9ku5DXgHXyE0XdKIHrQks5IIAErpMChgAUzXhTL5dL5fJN6ufvhdNP
5P8/FyjqOzngLH9KcP8Vo9D7ihh3Cqb0maRQ/jP++XuI6a8yMBASvhKbCLrp
Cd47BiqLmstHcekwfs4MeQf17yD/XfS/cwDpI8g7jnfw9jWkqn8H9IUr/fyb
QQzJ/d8BxOhiXQIxJuqrkgYtFSfFOmm29VV1skNxqulN4Tv2GyLmLkkSzhKO
nEWFguBgzUWBuuNHOV5EjcEZZDl2PRFRBlA2HgpVqySfyrvNVdWQoHahgxJe
iBEWJxWmJFetTFOfBCvJWfhMkdOkkHSgPhHViabL37/HLjG6XqqXKp9jc/fb
6da+URoEKorfY6GXPwldapToz/l5X5lIrwV3SeA4cmnmrNnn+ZfER5KBAFuk
xCmar9VGglZgnx/z9I1oAFE1kBQOFYxrs4U2ZAwSMUx07BqN5DQ+9ssIxOcd
alsXFPIU6CWUKNR9pH76l3/5icKpPDs31Agd6IaGx13ofkF0iVD2lS7RmAzS
VFA4heiRakHgpnMnTzDzl38pUBcvx7uW6k14TajTlBGSG5GfuuFFtBOSFNH4
42S8VJz81E3kXfF0eWf+zgvpCDj56UOJCOGaSNMk11C3HvOcV6Enh+Qs5aYq
kpluUZaAouHxkNgfMqSAZeOPZ9N+QnPZyBUchCYPguAzdcJkshm9V5OVPhMc
+bZTNJC+HDmDrWT6c89wfsYXyXc43yPO3kql44Sep4yinFBJodA83zdWj8lH
fI8+it4SNfAjkwFN8c0E+9dUKosKHV/7RikG0M2QI6OkHUJ4JtjrZmBSiNH6
Wk76D8ZO2qgJs2MS1vIj83pyEPspJJmL9HKFLj6nTRs99meF5qcLT4IOTiAb
ZAu3ocxBuwm9ezk2OkriJza67oX4PfF1oKFntzkMjNguYbUqZniuvkWbDhOW
NCQGsigKU3veowXuHIMYpsgGxvsELprxnAKtszwo/ENIPKnMaUBtoasvdWyU
kgsURztOr1lIB2fAYqLKo1VCWpF5XEKZ7XBFoh7oGLMeoIiA8ZMX6ZcaLCnL
9qNjuc0dhRAfWEkudYmSkN2c5GVhrHsnlQXprKwzlKKCB7T2Naxr4MqtxXu+
PUPg2ST4jDWwhe9MRXkm0qqwqLZSYP3kkd9L78Or2tDDyPzAch+BvDmnUOYh
sA5XpyoVCvg4LoxxIVA06FH0+ZIpDCG5c1GGWDa1DNxTJoPYBvJgQPVzqCER
N9I36uslB9It+kFF/4N75xsJbn2z5GV4j7zIr3KNSeCHQhEQpejpeQwSXyMM
0Zcv1Nczh3MIU8KuiXvzU56Tt/FQ/f6dCNqM8AvnyH2I+Ck/X0ocDe9QinGc
7SATxUKYIdslx4iBPQUo2lRc5pPKXA2pNs5azVTMIOSoCSpAoOrQUuCPBN4C
rmvvQg0inP59MKOhGEa4dxIY4d7R3RAm3fxxoKLbQK7d2RJEi0d3HFc7nvGK
GOqTBzHwlrxMgLdsvyiHsdEfCXzEMs4WiEC/DvfJU1hJ+xPF2w71jOXWqb5G
rn0i1/JUtw+kh6MbjUCPypewrNU9zC+8QI4YxdrXI0aB5VZaZnkwYiEoh/8Q
yVakw0SKeyTx+PToqPrjhOtcY8welU2jOUtQ170UVwnjSBcPOKUi4eqDsEbP
MPJUvrRiTthbIKcYWEDUtwtr3aLS4TCwfKbhZdOQqEy+/t8K5NrXCZCCpb8F
6ejFafz+B+GFu3p6V0zGhBzSWmGWFFF4JEOJIlb4UKDh00k6yulayETWofeZ
InVDKE6lE+9AiiJz1MWza4XDFmGuS3SCOaR+Eow4sbmbl+R9yt6K9OrLJiQx
soCF9J4PGWUZVeFdhUC/WNIQxk+INAQmpNwAF8Z6uVpDGLxNlZtFDqxGiX5H
4e5cAEC1sbYXBZQikrluaN5ScItw/L7qa1sQs7mLelnsT8pf7xYnxxHlNtLx
yjhfp6mg8CAinBwD/IM5fcQMxO0OgKumUktIbh5y6IZ1FKl6rtj9hy+zSopd
A93LpDDFq+KbEK9wErDFtJ3NH2kjTydOQC8UmDNdDftBE+DOhX7q/BJo/oJ6
OHw791teSMXM+CfDtMwoMO1Fw4gkzzEyPR8CFbsS0+V2J5lvzRidRpjnlA9L
Zk+RqyBW0ZMN5emuYVV0kjtZxZloF+PCF2e7YZF/K3tMYYmJd5PRkzFjlW1f
u43it2iSszBzVNIe17ZFKa85iZaDnJKmDx77SZlTkq+aCgZfTYlM1ViBlPuE
pODqK1Seih07ALkXc081pdJFIObWaF0+2o8dWYz4TFoqWhZnJ/6mW5GB7PwE
iP88j2hDRTB7IAh4TPuRsyVJs9hptpdyX+WrO1itPDli/NMrYgDp6fBEKvXt
JuGHN6E0SuMfUN9cuHShp+VBhChdj5JD8ahUkiLJsiM3HwVCzm7/Vgc5j0a5
1hN8xo5rK1AN3KRo7CKLQ17XU4mXutolSvAwGb+4tr1ExYgYSsxBu3vU1WEF
qU8vT+1ulBPaqDa+f0f7S6WtECZMYCOFPzxi+xG4uTLhlvJQqiTIQxQZZrsp
v1IUGovSrLGFQ7IELrr2UV0+PrFINUpR7jeiYly86R7RrcJCYNmAV1LGMW1F
Gcd5/D5VQezb8YU910iTMN5K38Z4QOjC4rodmX9Xwifw1Bd3SWuSD4+4REHM
ao85da14Z6hWEWdlp90FlRLVI7m550ZpRkPBbPNTkiD9OSmqjItmS6iQoImM
NjRZ1mce6pukRD0/EZ36dMZOI3dUHpfP2+sV924qA+w0Rngilk8XhJYXt364
/OBPHvHk3OI6YWRz38Yuj7DTAb5KoTYcapxhDw8fM8ErlmWGm0fZ1BRCpAGL
qBr2EpGkSkqy+fVnWlX0vUVSnIk9Q3LuTo0U3Y/NvaXuIm2JuBj4zJ1JsRec
LOxBS4VukeT0Ad26uYJN3JJD1i31PJ8rp743kcrYoldQmHEZ1n+E8b5r0QgS
2ULm8oWscB0xO8zWUXsmZPlm0qAT7mjyz1wU1C3XSeZ9qnvZi/0Sako1zLoR
SxC8q/wAe43SIRL880kifWLyW+/m0F+6Q6cmCfbYyyTCTL4JhU4d5QxE9yzb
bi0mpihang2E5fclQBjEkZbDib1wMY3vvVUj3zPJy0bC1JR1ktsX2jEW9S3/
yTS4p3H9BM6UvpqAGhdyIIMlDLWT3L5Cr8tTX1WnGO88ivIX+jZqtHYSek8H
6gsZOOOYv8m8PpRa9RVdqdYKF9BxOnhZrJXo4duIBPaTVJdtxopJk1O0xzBb
5f3TzkObh/sFgbRldYUYIr6CbiqSF9uzkfkVPWdkHZb4XKyeOafviKZz93b5
XAl4F882BvvDh5o9pz+FXqkwD8deXuYV7KnPKiTXy7KBFKKEdgeqijBiNh8L
aseFxVTJywmvdaFpE7U7egrzyRChvmuTY7SjcHKjUUElIP5Fy4Foos8YlvTO
48ydbJUY8di9ryTlPUy6ZqQ3d7WYEYVaUtFzUuqzhD6OyWVj67ENcGGeofTE
JUVK6UA70sjaGlQ2seA71YkuqQnUJ3QTrms3nymwQikUl9Gf2SRW6H4TNGe3
LLXcibZ3NYOihCo88fEfrmsA2fhXUuKJtV2U7qP7Wnixw0DbBSULFXN+ZEFE
NeGk8UIOdHVbvY3T7z4EKi4Hy6pmibmNYzVotUH6DuXfAcJgr0Ac4jhX3YsI
Ne/GnhAovrpXjKj4Ln6AHpA/E7EQrAK9IFVMOVDtUOvEs56nkhH7N0omI4+c
N18hXCx1vHFvuJQzyz9LcCQ4jyBpQQsudT/Sv87SIy5xG7y4cQg557ln8IrD
BOvdtpwqYY2ay51d9Ljap7kMQ4BZZxipB1GhgxRuyzcOOV1yUuozasIVJQXk
F1CFpYMITSSaEzdZ9DPVD9GpyCH6cGrIly8j3dJNbDvnVgmKuqfjtoQo4eoy
ecU5GQYErhV6ac70dOIuia11lM0GEt0BA3wIDw2z8F2oXx/ik0TVNRjssR0J
2Bfgo+oQqo0sCANDdRXUMIiCG/RSgYfqXRwyBbFPwmmQie3r27Afo+Lankep
+nIJ05GEZGsEKjY0uzsow7RtGwa5H1fh8Xwbe5oQicXZqbhJ8FVCu8XoJuMg
yGA7azJjbEEf52DyLlii0mgMZwQZA3cQ1euQIS7i/EXf1R3vKm8KkyTitpS+
HU/hBe4W6gZOXidXlw0PxtN0B40k7DPygBUK2b/T2SDplqFJH9RUhwV8l8mG
5QNKCYokRHjfYDSpbcW5UnaSzXdN2aF4RJ4xi0r6vuXfw61tbHHjSLxA+kww
v97iGDq5GRZEAANXNw4EgzDTXiEmgysHQHj9ZYaay0iRjCN182nIcEQTMbiM
MYu4PQVCJpbQYSRnvQBg5wk5H3wKqCtkWKi1JcI9dWMi9qNoALEr6KKolBIG
mHgXqLBoL5eYqaMM17ONxXSAtBu8odSkEU+7Pe3oitpSBoYa+0xCphe2c2KJ
q/yEwYX7xyWGcW/d0EWWpyuRbgpI1KHTRAVySmYMDpiSe9gMVN0HyXId6Bj2
gTQbJeSFEHlKNdhV5XtEdET7C8Es4mMy7NUKPemCsLoS1zIQV599oVWbaVu6
b6MFI961DSuvEWTpgGgqyIL6OLq2qXuIe1/kDajqNQrXunBrb2A6dJ4TQvoT
ioGRjm35esY7bW5R+u473urInsrJP4+IGaUBIdrzLzafi92pqU2g+G8Uw4nL
MFDsAbegx9QRt6NTMptDLZTToeHT5AgZaZEkOfks4yHSDXIyaM4T9M9sT9xA
MefkUov7SJvKS+tAlLoKkHctLOvOJuYUw15p4VSX7w1OFUjoKeptjbiI7+Pm
+WjjJlJxiaPzmpfxY1ZE8WKOQdg4FmeUehqio8hRTJAlw8QkihuMRB5k7xZx
bM1WvdvwuJEvlVjhYStUpMljD6PtYj/kZ7I3X8f9ulHZETik6qUNCDZIMSG9
ns/PLxsSQVHFfKvzus1zS7znkcA0sBaUqHKx+xviFPSop2k6QlEMJXnWNGk3
x2kPn6dAC7i6nXb3pooWNhCVczkApSxdci3GGzltm4r4FDQRE8UMKQeYKBya
Im0XbiEyk6Hl6VhUhfXFRrq8+bRLX4T6kFIiPo9d/biegYhAlTDrE86S7m6E
pXSsWpLOnk7IEoBxxv/SIiIqjs6ywxMRd6L226m5AcZKpPmjaOQIWGCF5Qli
+pmbG4s+rKCSBjm2f5Lrhc3E65iKGDOSIHgCXBZknxdSeJEkRXI+Ufa8lBRJ
iZ/QQkUbITT4HF1YIlhP507fcMO2UD5/csWxwLzoibMjZTdX2Bk2CL0L4RJy
HG/F1QnE3MxEYEO443r1NlA03VqlAD+vVwsV1ZMmJ++XikU53ApKT0+XBv0d
dvsCz8aCLmqlQvH8c8S0KjVKswPU++A0Ho2g77qu7VJ9YKlGLuxRH/sz0RWi
KTpoBZmMFMSzJZc1BEG3CO8P+ZVueQEyYIiCipj951gSYj36vKl/lDxOgEal
HFhVSylhg2h85npjowbRG/BD/ZBotPG7AxLtYwmxt82LQ+4ooH9LXcnJScuJ
JOYG1SR570/UoDlunnEDVBiLDvwpogCPYuFK93w3v+O4i3/EiWAZrgAt3z1E
TvWbkylvwsfcQ8gpcDsdhPg9wlcumYUqJFb2cZtt6p8zvcN/xgM4XCuLfkVi
BKCG4EQfJyZa2NTXgC4+F/SaHjKtAUjv5Jg7o98/WbYFP5PcCHwWL0l2we9C
Sio7IcLM6cQZ1KQbTT9++UJwNQYm3n7C3fDX8RSUgF0OzyldOzex7DbrT0qj
qX0JTVewf9YV+wrAKFfjXaB/LHTxGWYae+I0lx98lucLnJF7hJFO9giT3LHI
fxG5YNmoZDkhlBSBomdxsXWqQBh72BQNmvCTh9rnh1GmH4FHvBSD67jRRn4Y
+voH5MyFex9Z67gfAe4OZiu2QX1Ci35OrXqG0+SnjKTIxiqv8gguqhJW8bGd
IPiD5HWxZcxVLEHPB7Khe1Es6eb6ZMnmsZ6TCIpTrTYW7uj1UF4UBwsfdaGC
XzaSpw7HDyapgaQnvhuhIa56zGwklfKJ2hyGhSfh3skQHqnTuN9CSkEJzy2q
qsFp4HFKaCiq4644N9F7i/A45DQAHky07RKezSNOAhs1YfIVLcy/icgRqgQl
+E0j+PmibiX6ugksVD0RWEboFEYBCBz0girSA6CLGmD56XQxN6y/RRIdGgZR
yZDyE5Y72DtSiaRAJ4w4pLbfweENx4+bJ7VcHS7DqIcThX79dEu+CCnseS8p
1Hrg5jNeIe+qFx4pFMxGF57ikBVuordXebekm9oN+v6mhIdgnHm3OJsNr44R
nrwOg/i2DBilZ0zC0sKwmI5A6NgeihmG7+a5JS8fS/7UbBOSplACO/iMDw37
OnBXJhzQV/FOuAyddcKrR5hb4ZFiT+kyfmkNMgTCz2FCVKb1VZI+62DaBrKR
TjvEGlBetXrUbZBSbCcVgIqXKqHXlUSlvMn5udCAW+RZDCNbXu6OKTkIC9Ti
t4Go4V0ahG7SiJ/gs0ULIiRFxODFwvf0hiXBkOzPWQr80b0FEUV6H5A91w45
T+PIiyhd2XtuB6y/CQ8fbDn4B2ydi9vvvSQOk8tbz+3O9f7W/+amhH/Eob8M
Prbnk35YH97tH9S17w9AxamC0El3PLqMmPi88noqXUXT/9E2fj8cgej9gjJQ
NvjVWljjZjDUJNMiagmUrk1MpSQg1yJ5J5luUQz2bSIDGxMSB10dNRIEqdyn
Om4+G31ufP9+SwVWUQYebNQC1yhCC6X9q1jPwo4AxTaJ0CLRPpIijDCMIiqk
oBgLI4Ayingv3fOZvE0tctxhf1HmDUFt5HZQ/I/BWaI4ku0aVrQckqr9ZFLg
Ue0YiKSl9J+iVokUHVaRoMgH+eqsR0WqanEoceGfSO2KcrP6XKXeeC/R5toE
LJrg4quw8joxxhIu6ab3Gh4Maj5G3oZ3dohR00RgrNAoDHf0nX9w0HdDiY++
2eho9hvgFTfwUKRv4t5nDjgg59/vWlr3vHR3tAtdHb1ARqMCD7r/lPMzCNT0
JJd6T+oAQUTf3VXou7v6/X34Ndw75OvaXeMh+Rq71dC0Sc/B8I20yF8VzZn1
FqRb0m183L+P5Zpxe7kb3AmuvKj7VXanLY+10XCvjo+ryqDR8pYP/dfqRhk9
+f2Gvht6z2Kl8zShR6LSlxs7b99fOG8sfFmb9SlddAamW3P4xp3W7h+abGPD
1aYy77YWypqD94a3XQx0fam3RGmxP94vmkt13egy3ETSmOdFuSe+wYfxyDN2
M1rrT3amxpqjdW8N9wPuxVts6m/j6mr3ZnaqjT7d44put6hIxmzwsKw5otJW
52/dsrvUFndax6qbriNJ8/vdMJiCypp5mxUZ7bD1Xxda8Q2AuuTcK8/DF+5V
gU3lGXJ1czLv1u9lCA2nTr8E7Y7zdgceluPa02vXUbjOXfNQ7rnD/Wr8KirP
zbvOatIMhMZx3jluKk+WOa2+Hat1fl3XDvfrTn/F0E3A8bsEyfjQmtNm6+ak
R1+cD4gGcK2dKmmHmqp7HpBbrH047Ed7NhAF2WPm21e6v2AgO3nW6s24Hd+1
l8H9YbeS/dCtTOjwR97O8N4l7dly79Vvv373NH1+/Sr0fe3u2vU7v3MY+3jQ
YajJPUWf6MOBcBzQY33gDSy2rrQHjcHGmYntgTcwfWeB/jaZ47PkG5Ar7wdW
uQQPQ0epjtCzttpnd8rR3j5XmOOIqxuwx/hKb288m+OtzKE5x/RcHzQGlnhc
zIbNxUzT5FnLW3D1tVwp68/toaZK0+xc1aGhHLtBzlhnPpvqk3W3Oj4O9uOj
Qk86K29gijUE94hXquOOUpnwQm3S3ulKZbxVegKa25AlxpE7zmEhMZtBT/Tn
kuFNrLEhm1M072Yh7Y1FhSkD6SGYVdBeBw14GLpqf4Oe54RyF40LBmtbHzE2
rXbGnFrRTLhmx5ylbXjLsUabTWVqjc2JoC1HFX/NC36Z6ywctewceWZ+YLv+
y0igpXlZ08eWeoRdDSh9hluIrTeZF9kRR+84iT6M+y1hvFbtaVmrT8VBBdCj
siANBWUzBPOKwy94zVOqC8BJhrMwjbZoqAD27Zq0YcxFz66wwoLnadVmN3sw
6qqSIgl1fkMf5b46H0nagK+qPmCGPi85fWCKNU4cTxXaccczZjKqqFVForuj
42IwElT+eTZknqXxTGa04USalxVmsZ5W2IUiCDvFXNjSWrXZXo2WZ8OdSKuL
SV99UkVGG5lOTxFXPmtqddVil5K58hWJ0caiupv0xiPOaPGzytiYSuPRQhzR
svCwYHmhNjdFQ+436ZHYoqdldqfwqjaRFpNx11+ys9ZaKE+r09lmx1aHT7Cn
Tmb0Ys13u1W2p75MZ6I4tpwF23fc0cYPZLF7VGb2cSyyb2NJq096Tpfrqb2R
wGgCzVYH+k5fcIjeGXYqDPTlrFz6TVwul0+qy7rHq05jXRSet1Xerh7e5gyz
kJ7deY3eBY2187T0Fup6NB5Btl/lZ/O6xSlFQ1OZ5bBriD3r0AZ1dvkw7xlb
oPTEw33NBEz7rXzUxrz+/Hy/b8112H7im5o5CqTFdiAsmJbdpZ9a68p85m0c
S2i0Gf5Jaz7LUt3Q1QXXm6lK1zqs9jsQmM7ktbk35itNuGen7nTF0LumZ3ee
FTuw6CLDToK+cHx76klvc06eQdroDasq79eXvq3eceve26gyDY611nY5HTm7
+4oo9t7u5saWHY6CF1gb8ALUN8x42riryFvRXWu7vmCsjOlDP2DWdd21+287
t6E++8snsdPyd9Vq89VoW5603NS2L1JnWKSXh+qTsa5p/KustQbisJnu8Bqp
npWPqp6kSRqOc3tRNNyFkQXwiLtpXGmR835zRXC9U1ju205vQ8/rBW03eibO
bDhvQ0e909wHNam40OrCXlLVKKcwzJ/BNTo7m8KTnXTzxKo1bzvF/DZD/wHE
eahkV/7/VbJxI/Ufo3BXJ3RXBMXXo9cdT7SD8fbw4ARPa6Yxbr3dc/djf/fg
BctDu/Xw7PKcV9yzdmd6N2u4c/mlO7Hq3WKjyS0OglTZMvtnoKzLku6W69rR
Mqwl+8zy5lAL1Jpu1tuTZVML9Bf4XB7JXlVintXWUhJ7M+6lMqkL4416pw4r
T2+B+rYfM/f02PXrNOuYL2z9wREWXJXtLpvzlf+mTct3UtDmj2pFdBjff2EC
t8PpkuLqh+7zWF15/MMOOGXroEBOfJ6u5g+LFVsWt57ZX78+C086pP06217z
Hhj1h/3GvjodlP31U+/hxZN1ozxhDa35IHVXk0mj23iatF85v9uynl7Hvlxp
ur2XztoYvxz5N2kCIdze10aje3GmskeHf564rNmfXla4w5PKu6o3j1Q1X844
9GQ9nFb8JhcwLy/t2VGVA64PFvoLz1TWI3rxOjpUXt9e9uVBszkc1lnRfngy
KxoDZ+u3t56y3vTquy6zH+1e3+6Hk9r95EEWwdO4BejNa1GwW/tl/ckYOYY6
YgbCQax17rlg5WnaXVV/E3W93pcqo3kt4Oq9da3R6wjKjB5P2dX9s9SQQO3o
2WXuZTlYBtaMKavbVq9SU9qCPWAmLj0+uofF3UQR/YeN2q69BrOezZlrv2fQ
M4/druQK3VgumGAhlpn7+6PEeB2ltbBq+v1bT2lxlVmzv5Zqa7l/N6cn9+rW
qGhlsFz65njTqyxW/Rej6mjrV70YWFOvudfawuD1frT2l0xd38H6fSOY7l5p
vdupDASjO5usZsVntd5b8buU6ZLuUvUfkOOdGDA/iPP9KNPk7r5Sjb++QNj0
x3jax6wY7jdYMYf/t6wY9QBmrPE3WzXl+z0rLrRn8aGhlMUJX9Hqcr9bn8xa
NFdxeuNNva3wGj/p1svq0Tiq0qI+LQ/qfH8oCNWRD5nhlmW6VamzOEjScMoK
D8FYEPzxhuElyxDF47DCWtpoLo3fRozqKOsmDfpOIPfqprDZc2KPfgJ9cTPu
Gf5YGL8sNoytSsZ0Iex2vDQ8jmi1x/fY9sJQJZbWeKEzfBmL4gRUptVF1z5w
VYZe9Jkav5nXRkL9oHaEvWC1fIEZ0JNZS5SM0VHYiOZUNCy1z9gC36yKVbEj
9p3NyFjsWIstC90FrWxYHojqWjGNOivsJ4ueehQ7RnU+a+5ky1gvxLHEM4wl
8QZY0IOdaC2OsqC9zcp7kasYxmg2pYXN+E3sjzVe0J64zqI2opnhqM++cWWl
LvTHOpB2O54eeqDbrYtl0eLL9xWWXzzz5fFSqLLM1Kw/z8r18nw9bCkbdcr2
HI83Wg2xz8z4imgsZvPauEuPJ8xivmCGDYVhR3x1yMmCxp5ZNdxOlyWmNquw
htwTrfmMdeRKfbnoiTu1t9In6/FD6T+FyR8jTHIlt2Et76VjffTaqqkiP5ms
+TKYgvKCe+vK/ELsyXRfeFU3tD+swba8abfuDXNS3g1nSvlu7t2vnt7e5CrP
1fwnQbZ2uye7+trZVZnefC133jrdO7flq0rZeNMbyycOKstlJViLbb0iVNTn
9ezu/lW7E8rPL/RMHgbaZq225qD4au70w6o5W5bX94puzHh9JfPScLl6U466
aG6GR+MBvNb7w/v+nKnbmtozxZY2WR5Yd9fTN3O73522GnP42ljv+M7rYOoJ
Q1iGc7VT2zfV5l27AnaL5lZT52rwNNP9O4k79IKuJh+ebMczG5K4ONZam7XU
WSvDCnc3W8sNdv/S7imv1lhvjrweT1u9h9FgXbR788P9aiC9cM/dA/Pa8Db3
mg6m/xc6HStFZEL8x3Y8pjyMacfjffVvdzx+QGSnWVbNBxWx/swP9OUUSe/f
LXEnne7+VOKO1kpttB5hiXudW3aRNrCWqy0DSc2FRGtA2jUUU9QW7VYkoauK
aZQXSHPIbKEuyBXfkJEmYYp1ztR0tjJ2+IrxJNBig+OZCRCMIyfVubE07nD8
Ygiqrbm4GQ+VsuGr/RaYljcVTqJ7cLOfqb29IRxbdU6q7Z7RfFZrPSrTeD65
wg4ES11D86HCd4Y9uKH5sbQ32PKiPC+rNbm793lroQtlvN5kJBoOWk82Fg3J
0J6mojMHPU2XusOjZIxoYA4Oo54xmpYde8GoLBAeHM582HDMsDqvOlt1szty
5n4NNyItGZoNesP51BoD4Si+zdeDHRD2Hc5qLSSGcfiKw4zK9QY30ybQHO35
Mmuh/Ylrdo32x4vselSud+fH4YvICGW+PK4CaXTgrcWapUWyv95wxlotne23
6pKh9kDZ6IsWuxAr+yNfqW+gxMwFcz9k6UVZElVPKT8EvLnXZZFx+O74CdDO
DPb2YLSZ7+aiUlfF1QHjs7ypLGbGk2KyA1AxXoDg8CLfYgj84hCYDw7PN2uQ
GUqSqY3E9aYyP7Yknp4eQEfUua5A87TWHomjg9JVJ+AoduY0a4vdB2bMtzbQ
3DcWjArGYnfH8aLAdR1R5MdjtSf2OGvBsRvhKJZZAEV1xhkMJ/IGzRuiqHbr
LmuwM9ncS6LlPI2MYQC69EIs1/e8sNgovfHblGc0rt+i5xuFlkXRhcxYYo/M
81zQJFCu9+U+OxGF+lQy/Z5cYWcywwBxplZFRn2Cm/J+0VUFlh52JHO/EenB
HjCsyHadKW8sJL7SPQj8GLDSQ104jnsj0Rmwa1YA9KbMiwINJbYrzjRR3gzL
orAYjoSH+dRYzOQu3RAlX5JFRpJ79Q3XXWxFkW2N6PlR3LAS12+5vLQHKj0M
hHVLZEV7P6/4nNhjpEXPWcvSjhYMscbTTn/RdyS2tztKotZSK8NA7jlA3NRn
YnfRkw1VkHsMGAlGVTTrAJpDEfSZ+aivScJx6Mldei7wjAjK9b240SZob6Dr
8yxjl3me6XEbeiBYDD/qjWhR0CZAYmZqVRVGgnOcCyIzFuc70awLo87qIBgs
4JnpjjeR53rYE6QyzTOr3ZhvLcDGac8r/kYQh32lPxbk7qAibrSexEwPorkH
ErMp8xthz28eepJhAHZjV+blBceL0yNnjHVR0jhOMqpAdHh8/8sLThDFIZAW
vFoxdLE8L0udISf3hn3RrC8kZribrwf0wnD6oqVu2IqK7tdkwtV3I+HhjTO6
B7XL8KqwmArd8RyarK6K48FcdByBYXsj0xmPRGfJzzaHWZWZwk5rOBWYJ24t
cqJ5X+cq5QPoLgyp5+wVQV0D0++PZyrDWtpYpR/2k67zMu5oLxNpKM0FfzI1
u3tA3/ui9NCGvTnNVfZjpbff8MJiKM4Madyd1oSqaCkVzR4fx44iLhzAiwPx
OBxLPEsLR7EPUIShzIpzerXnDYZbHLURsrvmPNtQKvc7gW6ZnLSgZUPrjXps
ZbpRDuPeuCNKD0N283AYCfWGYhlgXH5Yi9a0DipsZ8w80FJX3QoV+k3tqt5I
1I6CtbDm68F+bC4Aa4lAXLd6k47WEMuLI9sbtyWzVga8tmcr47ZwHM6ngvYm
Htm3+WZVlXjmZdJjK3JnaI96jLmwWJ83/f7IcCyOaXmjassGxoPzPBMDYTZu
wZ7WEQVjOenSb2pv0RtLRnXBC7WxJbIqfb8HgtgdbQxR7opzvqLOn4X9Ziyo
lthXkLj7T5Xxj1EZc/Vz0yqWD2WmauzLg1GxURa8lkO/ju4CVlP5yr368rb3
G0WPnljrUdGWD0zRqc/kqfiwHtSn9caspsjV9bPRYDeju/uHSYfv+fVDbTpW
J82KpBlcWTJUbnKcb0R6tq4c3HbZXIDNvN3nneNxtV1CYQ3H6+KyI5n+ipUr
z0uzsWioq4Av39HSdAMGh35tINX34t6132SL9plR+S6YVbVgID747Vede6g0
XAl0pDs47Zi0pWlr7nXKrQSFZ2g4PNxpk3XXP3p3ZV1f1+WpUGw9WFZjspyp
jkyvJ/Xtvmq0OWuxfK5olS6Yzp+qbXntLg25Yw3mT/6wPB7t651y9YlVtq/B
i9Gr9/vsc10JRsd7yNtPSvneVcpTr/6y78jwTaylIjjkvThh2jjO3+F86BQF
J1v0lJtRn83WXUGcmYzn8NAcgXMSofnll0GxUzJsUwauahdJCVI4tIj+OBbj
1/UVkSVgo8SosD/MaU8eF/qBi8sNqW/pirLXzJrfSE3aWfOWsOV6pr/sadQn
blUV5xqmExBxLAgV9Me1ZDkl8RhpqJsLKqVTApzfhfC1DAwc42kOKLBKkqY1
21BzetqUqLNWcvkIjrEXlvWvou2CwLdRpiDpnfObNp/qSJ7/+pQYO3LUti9z
ULdxbV/SGwENQ5EakuONjz56514pp8kaSSgPK1BxnfSl/gC4IC9ETYyMuB4Q
dfHE/edkWz28Ri86RaeZbs988t5muEdJfPlbt92wWD2dP467BbeBB73Ma9us
FXqrVvjyltAUZlGWJq5NxTmV5LXIiCiaK5Jt3kX1jI6LKusHOCE2rKIOn08K
fynv4PnQRKFCH1phNTXF2gakWsBLjO8wpZP6xLaabfySnmbctTV/YBMNRGX+
uGUHIT6yCRM1HUKN6tOZyuGrREg1N7GR1bAnie5Sro3iwipE98HEcdeoAiLp
Houy+kMMRBwGWPGMpMWXF1ZCoxgyCKcB1FZ3/QAYyeo4ixb1KgX4NQfRqig7
k3R4NUjcNr2DhLRQZrEVX9GoIB6VHRd96Jq3uIAgPSKuTVd1Fyq4K5SlQRd3
ljAwr8AvDEFv6iFIdvH5lygWd/wIEz+TAuT0637ip29zehigi6Ir8GvzZfAV
ZRQjrH9FLgn0AS2GYycr3HLfD7k4MEJaUiFpwq9SqO/P0rB3pULhV0I7v+J8
f12B1Fecz2qjQi7q18KvFErrDf+LBkdXdoLfiPIrPrGYdm9xbvtWV9HhhC/a
i88CPR52cvmV4PEnL27FSjpL46uNxp2mYv9KtQfFdoc8dkv5qPll+LnTFaOP
KH8WNQsJTwlNlNsl69cUyNSgOQrvVHaDuWP5+PqhsTyp23iJ6zbih39FYH3l
+Gav+/WFnaAK5a3u2hZOQb5NOhigPG0DqqhDSXia1K+FXx4pX/cN+JebmEHc
UMDQV9ZfbhQMzc130odH01313/71vxEcNS1gHFCTHurFAD5+HWck8kmeMkA1
kPFeOAC4JJUj6vpwi4uuXMfGnRKUwPNtk/RyRXnAnL30dwAxcq8IihHFfEJT
faba0eBM+6gU5/rUZkef00cddmOOntuFJXs2hTrbUTJKXUeXR7c8wj7lA2kC
HjKnFCf1ESaKUfOJCA9OhAfc8SEt+PDtaLMjKvUmW/Rnmg5Jc/rc13zE6SEJ
bfzkhZUM/iGqlXfxW2D8+F1V5H2/+IVfqE8DkicXW6pGvVuTzYRXPyzWI6Nw
FzLM03BHIpDeIUAlWGGfPtR9zComFXkJt4mRny6DI8V8iGWkijMIF8RvRYzY
cqb4LH5vag7+Mfn4Cdy+TTmBYeBFb+Me3KSbzGrlhghJEYCPigBXuCLNhUg7
uI1eIqRjxUH3celBJJVOjzLCZg5lo07EOvwRnBB3H7AO//av/7NJfcJdU6AF
LP9zlvGhu3IGXz7LOzv7j3I09eUCKztdN9Sw3+NlJ4/95BFqCYv2gIFrezDf
ihhXwmeKaMPn7Ot/A6m6GOyVqAAA

-->

</rfc>

