From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id CC3BB1FF17C
	for <inbox@lore.proxmox.com>; Wed,  2 Apr 2025 18:31:54 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id D2BA01F327;
	Wed,  2 Apr 2025 18:31:40 +0200 (CEST)
Mime-Version: 1.0
Date: Wed, 02 Apr 2025 18:31:35 +0200
Message-Id: <D8WAOUZPCMO5.37G29XB8M94OE@proxmox.com>
To: "Proxmox VE development discussion" <pve-devel@lists.proxmox.com>
From: "Max Carrara" <m.carrara@proxmox.com>
X-Mailer: aerc 0.18.2-0-ge037c095a049
References: <20250326142059.261938-1-m.carrara@proxmox.com>
 <20250326142059.261938-3-m.carrara@proxmox.com>
 <1743421835.hd6pyusvlb.astroid@yuna.none>
In-Reply-To: <1743421835.hd6pyusvlb.astroid@yuna.none>
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.077 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: Re: [pve-devel] [PATCH v1 pve-storage 2/8] pluginbase: add
 high-level plugin API description
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

T24gTW9uIE1hciAzMSwgMjAyNSBhdCA1OjEzIFBNIENFU1QsIEZhYmlhbiBHcsO8bmJpY2hsZXIg
d3JvdGU6Cj4gT24gTWFyY2ggMjYsIDIwMjUgMzoyMCBwbSwgTWF4IENhcnJhcmEgd3JvdGU6Cj4g
PiBBZGQgYSBzaG9ydCBwYXJhZ3JhcGggaW4gREVTQ1JJUFRJT04gc2VydmluZyBhcyBhbiBpbnRy
b2R1Y3Rpb24gYXMKPiA+IHdlbGwgYXMgdGhlIEdFTkVSQUwgUEFSQU1FVEVSUyBhbmQgQ0FDSElO
RyBFWFBFTlNJVkUgT1BFUkFUSU9OUwo+ID4gc2VjdGlvbnMuCj4gPiAKPiA+IFRoZXNlIHNlY3Rp
b25zIGFyZSBhZGRlZCBpbiBvcmRlciB0byBhdm9pZCByZXBlYXRlZGx5IGRlc2NyaWJpbmcgdGhl
Cj4gPiBzYW1lIHBhcmFtZXRlcnMgYXMgd2VsbCBhcyB0byBlbGFib3JhdGUgb24gLyBjbGFyaWZ5
IGEgY291cGxlIHRlcm1zLAo+ID4gZS5nLiB3aGF0IHRoZSAkY2FjaGUgcGFyYW1ldGVyIGRvZXMg
b3Igd2hhdCBhIHZvbHVtZSBpbiBvdXIgY2FzZSBpcy4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTog
TWF4IENhcnJhcmEgPG0uY2FycmFyYUBwcm94bW94LmNvbT4KPiA+IC0tLQo+ID4gIHNyYy9QVkUv
U3RvcmFnZS9QbHVnaW5CYXNlLnBtIHwgNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKPiA+ICAxIGZpbGUgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKQo+ID4gCj4gPiBkaWZm
IC0tZ2l0IGEvc3JjL1BWRS9TdG9yYWdlL1BsdWdpbkJhc2UucG0gYi9zcmMvUFZFL1N0b3JhZ2Uv
UGx1Z2luQmFzZS5wbQo+ID4gaW5kZXggZTU2YWE3Mi4uMTY5NzdmMyAxMDA2NDQKPiA+IC0tLSBh
L3NyYy9QVkUvU3RvcmFnZS9QbHVnaW5CYXNlLnBtCj4gPiArKysgYi9zcmMvUFZFL1N0b3JhZ2Uv
UGx1Z2luQmFzZS5wbQo+ID4gQEAgLTQsNiArNCw4MyBAQCBDPFBWRTo6U3RvcmFnZTo6UGx1Z2lu
QmFzZT4gLSBTdG9yYWdlIFBsdWdpbiBBUEkgSW50ZXJmYWNlCj4gPiAgCj4gPiAgPWhlYWQxIERF
U0NSSVBUSU9OCj4gPiAgCj4gPiArVGhpcyBtb2R1bGUgZG9jdW1lbnRzIHRoZSBwdWJsaWMgU3Rv
cmFnZSBQbHVnaW4gQVBJIG9mIFBWRSBhbmQgc2VydmVzCj4gPiArYXMgYSBiYXNlIGZvciBDPEw8
UFZFOjpTdG9yYWdlOjpQbHVnaW4+Pi4gUGx1Z2lucyBtdXN0IEI8YWx3YXlzPiBpbmhlcml0IGZy
b20KPiA+ICtDPEw8UFZFOjpTdG9yYWdlOjpQbHVnaW4+PiwgYXMgdGhpcyBtb2R1bGUgaXMgZm9y
IGRvY3VtZW50YXRpb24gcHVycG9zZXMKPiA+ICtvbmx5Lgo+Cj4gZG9lcyB0aGlzIG1ha2Ugc2Vu
c2U/IGlmIHdlIG5vdyBwcm92aWRlIGEgY2xlYW4gYmFzZSBmb3IgdGhlIHN0cnVjdHVyZQo+IG9m
IHBsdWdpbnMsIHdoeSBzaG91bGRuJ3QgcGx1Z2lucyBiZSBhYmxlIHRvIHVzZSB0aGF0LCBidXQg
aW5zdGVhZCBoYXZlCj4gdG8gaW5oZXJpdCBmcm9tIFBWRTo6U3RvcmFnZTo6UGx1Z2luIHdoaWNo
IGhhcyBhIGxvdCBvZiBleHRyYSBzdHVmZiB0aGF0Cj4gbWFrZXMgdGhpbmdzIG1lc3N5Pwo+Cj4g
Z3JhbnRlZCwgc3dpdGNoaW5nIG92ZXIgdG8gbG9hZCBmcm9tIFBsdWdpbkJhc2UgY291bGQgYmUg
ZG9uZSBhcyBhCj4gZm9sbG93IHVwIG9yIHdpdGggOS4wIChvciBub3QgYXQgYWxsLCBpZiB0aGVy
ZSBpcyBhIHJhdGlvbmFsZSkuLgo+Cj4gYWZ0ZXIgdGhpcyBzZXJpZXMgd2UgaGF2ZToKPgo+IFNl
Y3Rpb25Db25maWcKPiAtPiBQbHVnaW5CYXNlIChub3QgYW4gYWN0dWFsIGJhc2UgcGx1Z2luIHcu
ci50LiBTZWN0aW9uQ29uZmlnLCBhbmQgbm90Cj4gc29tZXRoaW5nIHlvdSBiYXNlIHBsdWdpbnMg
b24gYXMgYSByZXN1bHQpCj4gLS0+IFBsdWdpbiAoYSBjb21iaW5hdGlvbiBvZiBiYXNlIHBsdWdp
biBhbmQgYmFzZSBvZiBhbGwgb3VyCj4gZGlyZWN0b3J5LWJhc2VkIHBsdWdpbnMpCj4gLS0tPiBv
dGhlciBwbHVnaW5zLCBpbmNsdWRpbmcgdGhpcmQgcGFydHkgb25lcwo+Cj4gd2hpY2ggc2VlbXMg
dW5mb3J0dW5hdGUsIGV2ZW4gaWYgdGhlIGNvbnRlbnRzIG9mIFBsdWdpbkJhc2UgYXJlIGhlbHBm
dWwKPiB3aGVuIGltcGxlbWVudGluZyB5b3VyIG93bi4uCj4KPiBJTUhPIHRoaXMgc2hvdWxkIGVp
dGhlciBiZQo+Cj4gU2VjdGlvbkNvbmZpZwo+IC0+IFBsdWdpbkJhc2UgKGFjdHVhbCBiYXNlIHBs
dWdpbiwgd2l0aCBTZWN0aW9uQ29uZmlnIGltcGxlbWVudGF0aW9ucwo+IG1vdmVkIG92ZXIgZnJv
bSBjdXJyZW50IFBsdWdpbi5wbSBhcyBuZWVkZWQpCj4gLS0+IFBsdWdpblRlbXBsYXRlICh3aGF0
J3MgY3VycmVudGx5IFBsdWdpbkJhc2UgaW4gdGhpcyBzZXJpZXMgLSBuaWNlbHkKPiBkb2N1bWVu
dGVkIHBhcmVudCBvZiB0aGlyZCBwYXJ0eSBwbHVnaW5zLCBub3QgYWN0dWFsbHkgcmVnaXN0ZXJl
ZCwganVzdAo+IGNvbnRhaW5zIHRoZSBzdG9yYWdlLmNmZyBpbnRlcmZhY2Ugd2l0aG91dCB0aGUg
bG93LWxldmVsIFNlY3Rpb25Db25maWcKPiB0aGluZ3MpCj4gLS0tPiBOZXdUaGlyZFBhcnR5UGx1
Z2luIChjbGVhbiBzbGF0ZSBpbXBsZW1lbnRhdGlvbiBqdXN0IHVzaW5nIHRoZQo+IG5pY2VseSBk
b2N1bWVudGVkIGludGVyZmFjZXMsIGd1YXJhbnRlZWQgdG8gbm90IHVzZSBhbnkgaGVscGVycyBm
cm9tCj4gUGx1Z2luIHNpbmNlIGl0J3Mgbm90IGEgKGdyYW5kKXBhcmVudCkKPiAtLT4gUGx1Z2lu
IChiYXNlIG9mIGJ1aWx0LWluIHBsdWdpbnMsIHByb2JhYmx5IGJhc2Ugb2YgZXhpc3RpbmcgdGhp
cmQKPiBwYXJ0eSBwbHVnaW5zLCBzaG91bGQgaWRlYWxseSBoYXZlIGEgZGlmZmVyZW50IG5hbWUg
aW4gdGhlIGZ1dHVyZSEpCj4gLS0tPiBEaXJQbHVnaW4KPiAtLS0+IC4uLgo+IC0tLT4gRXhpc3Rp
bmdUaGlyZFBhcnR5UGx1Z2luICh0aGlzIG1pZ2h0IHJlbHkgb24gaGVscGVycyBmcm9tIFBsdWdp
biwKPiBzbyB3ZSBjYW4ndCBqdXN0IHJlbmFtZSB0aGF0IG9uZSB1bmxlc3Mgd2Ugd2FpdCBmb3Ig
OS4wKQo+Cj4gb3IKPgo+IFNlY3Rpb25Db25maWcKPiAtPiBQbHVnaW5CYXNlIChhY3R1YWwgYmFz
ZSBwbHVnaW4gKyBkb2NzIG9mIFBsdWdpbiBBUEkpCj4gLS0+IFBsdWdpbiAoYmFzZSBvZiBvdXIg
cGx1Z2lucyBhbmQgZXhpc3RpbmcgdGhpcmQgcGFydHkgb25lcywgZGlyLXJlbGF0ZWQgaGVscGVy
cywgLi4pCj4gLS0tPiBvdGhlciBwbHVnaW5zLCBpbmNsdWRpbmcgdGhpcmQgcGFydHkgb25lcwo+
IC0tPiBOZXdUaGlyZFBhcnR5UGx1Z2luIChjbGVhbiBzbGF0ZSBhcyBhYm92ZSkKCkkgYWdyZWUg
d2l0aCB5b3VyIHBvaW50IGhlcmUgLS0gZm9yIG5vdywgYDo6UGx1Z2luQmFzZWAgc2hvdWxkIElN
TyBzdGlsbApvbmx5IGJlIGFib3V0IGRvY3VtZW50YXRpb24gYW5kIGVudW1lcmF0aW5nIHdoYXQn
cyBwYXJ0IG9mIHRoZSBQbHVnaW4KQVBJLCAqYnV0KiBhZGRpbmcgbW9yZSBsYXllcnMgaW5iZXR3
ZWVuIGNhbiBzdGlsbCBiZSBkb25lIGV2ZW50dWFsbHkuCgpIb3dldmVyLCBJIHRoaW5rIHdlIHNo
b3VsZG4ndCBoYXZlIHR3byBkaWZmZXJlbnQgcGFyZW50cyBmb3IgaW50ZXJuYWwKYW5kIGV4dGVy
bmFsIHBsdWdpbnMsIGFzIGl0IHdvdWxkIGludHJvZHVjZSB5ZXQgYW5vdGhlciB0aGluZyB3ZSdk
IGhhdmUKdG8gdHJhY2sgd3J0LiBBUElBR0UgcmVzZXRzIGV0Yy4gTWF5YmUgaXQncyBub3QgYWN0
dWFsbHkgYW4gaXNzdWUgaW4KdGhpcyBjYXNlLCBidXQgLi4uCgpUaGF0IGFjdHVhbGx5IGdpdmVz
IG1lIGFuIGlkZWEgdGhhdCdzIHNpbWlsYXIgdG8geW91ciBmaXJzdCBzdWdnZXN0aW9uOgoKQXMg
b2YgdGhpcyBzZXJpZXMsIHRoZSBoaWVyYXJjaHkgd291bGQgYmUgYXMgZm9sbG93czoKClBsdWdp
bkJhc2UK4pSU4pSA4pSAIFBsdWdpbgogICAg4pSc4pSA4pSAIEV4aXN0aW5nVGhpcmRQYXJ0eVBs
dWdpbgogICAg4pSc4pSA4pSAIERpclBsdWdpbgogICAg4pSU4pSA4pSAIC4uLgoKV2UgY291bGQg
a2VlcCBgUGx1Z2luQmFzZWAgYXMgaXQgaXMsIHNpbmNlIElNTyBoYXZpbmcgdGhlIGRvY3MgYW5k
IHRoZQpTZWN0aW9uQ29uZmlnLXJlbGF0ZWQgc3R1ZmYgaW4gb25lIHBsYWNlIGlzIGZpbmUsIHVu
bGVzcyB3ZSByZWFsbHkgd2FudAp0byBrZWVwIHRoZSBkb2NzIHNlcGFyYXRlIGZyb20gdGhlIHJl
c3Qgb2YgdGhlIGNvZGUuIChXb3VsZCBzZWVtIGEgYml0CnJlZHVuZGFudCB0byBpbnRyb2R1Y2Ug
YW5vdGhlciBpbmhlcml0YW5jZSBsYXllciBpbiB0aGF0IGNhc2UsIGJ1dCBJCnBlcnNvbmFsbHkg
ZG9uJ3QgbWluZC4pCgpUaGVuLCB3ZSBldmVudHVhbGx5IGludHJvZHVjZSBgUGx1Z2luVGVtcGxh
dGVgIG9uIHRoZSBzYW1lIGxheWVyIGFzCmBQbHVnaW5gLiBgUGx1Z2luVGVtcGxhdGVgIHdvdWxk
IG9ubHkgY29udGFpbiBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZQptb3N0IGJhc2ljIG1ldGhvZHMg
KGFuZCBub3QgcHJvdmlkZSBkZWZhdWx0cyBmb3IgZmlsZS1iYXNlZCBzdG9yYWdlcykuCgpQbHVn
aW5CYXNlCuKUnOKUgOKUgCBQbHVnaW4K4pSCwqDCoCDilJzilIDilIAgRXhpc3RpbmdUaGlyZFBh
cnR5UGx1Z2luCuKUgsKgwqAg4pSc4pSA4pSAIERpclBsdWdpbgrilILCoMKgIOKUlOKUgOKUgCAu
Li4K4pSU4pSA4pSAIFBsdWdpblRlbXBsYXRlCgpUaGUgaWRlYSBiZWhpbmQgdGhpcyBpcyB0aGF0
IHdlIGNvdWxkIHRoZW4gIm1pZ3JhdGUiIGVhY2ggcGx1Z2luIGFuZApiYXNlIGl0IG9mZiBgUGx1
Z2luVGVtcGxhdGVgIGluc3RlYWQuIEhlbHBlcnMgdGhhdCBhcmUgc2hhcmVkIGJldHdlZW4KcGx1
Z2lucyBjb3VsZCBnbyBpbnRvIGBQVkU6OlN0b3JhZ2U6OkNvbW1vbjo6KmAgaW5zdGVhZCBvZiBi
ZWluZwppbXBsaWNpdGx5IGJlY29taW5nIHBhcnQgb2YgcGx1Z2lucycgbW9kdWxlcyBkdWUgdG8g
aW5oZXJpdGFuY2UuCgpQbHVnaW5CYXNlCuKUnOKUgOKUgCBQbHVnaW4K4pSCwqDCoCDilJzilIDi
lIAgLi4uCuKUgsKgwqAg4pSU4pSA4pSAIEV4aXN0aW5nVGhpcmRQYXJ0eVBsdWdpbgrilJTilIDi
lIAgUGx1Z2luVGVtcGxhdGUKICAgIOKUnOKUgOKUgCAuLi4KICAgIOKUlOKUgOKUgCBEaXJQbHVn
aW4gKGNsZWFuZWQgdXApCgpUaGF0IHdheSB3ZSBjb3VsZCBzdGVwIGJ5IHN0ZXAgImRpc2VudGFu
Z2xlIiB0aGUgZXhpc3RpbmcgcGx1Z2lucyBmcm9tCmVhY2ggb3RoZXIgd2l0aG91dCBoYXZpbmcg
dG8gY29uc3RhbnRseSBrZWVwIHRoZSBvcmlnaW5hbCBiZWhhdmlvdXIocykKb2YgYFBsdWdpbmAg
aW4gdGhlIGJhY2sgb2Ygb25lJ3MgaGVhZCBhbmQgYWNjb3VudCBmb3IgdGhlbS4gSW5zdGVhZCwK
ZWFjaCBwbHVnaW4gd291bGQgaW1wbGVtZW50IHByZWNpc2VseSB3aGF0IGl0IGl0c2VsZiBuZWVk
cy4KClNpbmNlIGJvdGggdGhlIG9sZCBgUGx1Z2luYCBhbmQgdGhlIG5ldyBgUGx1Z2luVGVtcGxh
dGVgIHNoYXJlIHRoZSBzYW1lCmludGVyZmFjZSwgbmFtZWx5IGBQbHVnaW5CYXNlYCwgd2UgY291
bGQgc3RpbGwgc3VwcG9ydCB0aGUgb2xkIGBQbHVnaW5gCnVudGlsIGV2ZXJ5dGhpbmcncyBiZWVu
IG1vdmVkIG92ZXIgYW5kIHRoaXJkLXBhcnR5IGRldnMgaGF2ZSBoYWQgZW5vdWdoCnRpbWUgdG8g
YWRhcHQgdGhlaXIgb3duIGNvZGUsIHRvby4KCldoaWxlIGRvaW5nIGFsbCB0aGlzLCB3ZSBjb3Vs
ZCBhbHNvIHJld29yayBwYXJ0cyBvZiB0aGUgQVBJIHRoYXQgZGlkbid0CmFnZSB0aGF0IGdyYWNl
ZnVsbHksIHBlcmhhcHMgZGVwcmVjYXRlIGNlcnRhaW4gb2xkIG1ldGhvZHMsIGludHJvZHVjZQpu
ZXcgbWV0aG9kcywgZXRjLiBhcyB3ZSdkIGhhdmUgYSAiY2xlYW4iIGJyZWFrLCBzb3Rvc3BlYWsu
CgoKU28sIHRvIHN1bW1hcml6ZSBteSBpZGVhOgotIEtlZXAgYFBsdWdpbkJhc2VgIGFzIGl0IGlz
IHJpZ2h0IG5vdywgYnV0IGFsc28gaW5jbHVkZQogIFNlY3Rpb25Db25maWctcmVsYXRlZCBjb2Rl
Ci0gSW50cm9kdWNlIGBQbHVnaW5UZW1wbGF0ZWAgd2l0aCBtaW5pbWFsIGltcGxlbWVudGF0aW9u
IGxhdGVyIGRvd24gdGhlCiAgbGluZSBvbiB0aGUgc2FtZSBpbmhlcml0YW5jZSBsYXllciBhcyBg
UGx1Z2luYAotIFNsb3dseSBtaWdyYXRlIG91ciBwbHVnaW5zLCBiYXNpbmcgdGhlbSBvZmYgb2Yg
YFBsdWdpblRlbXBsYXRlYCB3aGlsZQogIHRvc3Npbmcgb3V0IG9sZCBjb2RlLCBtYWtpbmcgdGhl
bSBpbmRlcGVuZGVudCBmcm9tIG9uZSBhbm90aGVyLCBhbmQKICBjb2xsZWN0aW5nIHNoYXJlZCBo
ZWxwZXJzIGluIGBQVkU6OlN0b3JhZ2U6OkNvbW1vbjo6KmAKCgpJJ2QgcmVhbGx5IGxpa2UgdG8g
aGVhciB5b3VyIHRob3VnaHRzIG9uIHRoaXMsIGJlY2F1c2UgSSdtIG5vdCBzdXJlIGlmCnRoaXMg
aXMgKmFjdHVhbGx5KiBmZWFzaWJsZSBvciBwcm92aWRlcyBhbnkgUk9JIGRvd24gdGhlIGxpbmUu
IE9uZQphbHRlcm5hdGl2ZSB0aGF0IEkgY2FuIHRoaW5rIG9mIGlzIHRvIGp1c3Qga2VlcCB0aGUg
aW5oZXJpdGFuY2UKaGllcmFyY2h5IGFzIGl0IGlzIChhcyBpbiB0aGlzIHNlcmllcykgYW5kIGRp
c2VudGFuZ2xlIHRoZSBwbHVnaW5zIGFzCnRoZXkgYXJlIHJpZ2h0IG5vdywgd2l0aG91dCBjaGFu
Z2luZyB0aGVpciBwYXJlbnQgKHNvLCBhbG1vc3QgdGhlIHNhbWUKYXMgeW91ciBzZWNvbmQgaWRl
YSkuIEkgZGlkIHN0YXJ0IGJyZWFraW5nIGFwYXJ0IG91ciBwbHVnaW5zIGxpa2UgdGhhdApsYXN0
IHllYXIsIGJ1dCB0aGF0IHdhcyB0b28gbXVjaCBhbGwgYXQgb25jZSBbMV0uCgpbMV06IGh0dHBz
Oi8vbG9yZS5wcm94bW94LmNvbS9wdmUtZGV2ZWwvMjAyNDA3MTcwOTQwMzQuMTI0ODU3LTEtbS5j
YXJyYXJhQHByb3htb3guY29tLwoKPgo+IHNpZGUtbm90ZTogc2hvdWxkIHdlIG1lbnRpb24gc29t
ZXdoZXJlIHRoYXQgcGx1Z2luIGNvZGUgaXMgbm90IGNhbGxlZAo+IGRpcmVjdGx5IChwcmUtZXhp
c3RpbmcgZXhjZXB0aW9ucyB0aGF0IHdlIHdhbnQgdG8gZ2V0IHJpZCBvZmYgaWdub3JlZCksCj4g
YnV0IHRoYXQgUFZFOjpTdG9yYWdlIGlzIHRoZSAiZ2F0ZXdheSIvaW50ZXJmYWNlIGZvciBpdD8K
ClllYWgsIGdvb2QgcG9pbnQ7IHdlIHNob3VsZCBkZWZpbml0ZWx5IG1lbnRpb24gdGhhdC4gV2ls
bCBpbmNsdWRlIGl0IGluIHYyIQoKPgo+ID4gKwo+ID4gKz1oZWFkMiBERUZBVUxUIElNUExFTUVO
VEFUSU9OUwo+ID4gKwo+ID4gK0M8TDxQVkU6OlN0b3JhZ2U6OlBsdWdpbj4+IGltcGxlbWVudHMg
bW9zdCBvZiB0aGUgbWV0aG9kcyBsaXN0ZWQgaW4KPiA+ICtMPC9QTFVHSU4gSU5URVJGQUNFIE1F
VEhPRFM+IGJ5IGRlZmF1bHQuIFRoZXNlIHByb3ZpZGVkIGltcGxlbWVudGF0aW9ucyBhcmUKPiA+
ICt0YWlsb3JlZCB0b3dhcmRzIGZpbGUtYmFzZWQgc3RvcmFnZXMgYW5kIGNhbiB0aGVyZWZvcmUg
YmUgdXNlZCBhcy1pcyBpbiB0aGF0Cj4gPiArY2FzZS4gUGx1Z2lucyBmb3Igb3RoZXIga2luZHMg
b2Ygc3RvcmFnZXMgd2lsbCBtb3N0IGxpa2VseSBoYXZlIHRvIGFkYXB0IGVhY2gKPiA+ICttZXRo
b2QgZm9yIHRoZWlyIGluZGl2aWR1YWwgdXNlIGNhc2VzLgo+Cj4gc2VlIGFib3ZlCj4KPiA+ICsK
PiA+ICs9aGVhZDIgR0VORVJBTCBQQVJBTUVURVJTCj4gPiArCj4gPiArVGhlIHBhcmFtZXRlciBu
YW1pbmcgdGhyb3VnaG91dCB0aGUgY29kZSBpcyBrZXB0IGFzIGNvbnNpc3RlbnQgYXMgcG9zc2li
bGUuCj4gPiArVGhlcmVmb3JlLCBjb21tb24gcmVhcHBlYXJpbmcgc3Vicm91dGluZSBwYXJhbWV0
ZXJzIGFyZSBsaXN0ZWQgaGVyZSBmb3IKPiA+ICtjb252ZW5pZW5jZToKPiA+ICsKPiA+ICs9b3Zl
cgo+ID4gKwo+ID4gKz1pdGVtICogQzw8IFwlc2NmZyA+Pgo+ID4gKwo+ID4gK1RoZSBzdG9yYWdl
IGNvbmZpZ3VyYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBDPCRzdG9yZWlkPi4gVGhp
cyBpcyBhCj4gPiArcmVmZXJlbmNlIHRvIGEgaGFzaCB0aGF0IHJlcHJlc2VudHMgdGhlIHNlY3Rp
b24gYXNzb2NpYXRlZCB3aXRoIEM8JHN0b3JlaWQ+IGluCj4gPiArQzwvZXRjL3B2ZS9zdG9yYWdl
LmNmZz4uCj4gPiArCj4gPiArPWl0ZW0gKiBDPDwgJHN0b3JlaWQgPj4KPiA+ICsKPiA+ICtUaGUg
SUQgb2YgdGhlIHN0b3JhZ2UuIFRoaXMgSUQgaXMgdXNlci1wcm92aWRlZDsgdGhlIElEcyBmb3Ig
ZXhpc3RpbmcKPiA+ICtzdG9yYWdlcyBjYW4gYmUgZm91bmQgaW4gdGhlIFVJIHZpYSBCPDwgRGF0
YWNlbnRlciA+IFN0b3JhZ2UgPj4uCj4KPiBUaGUgdW5pcXVlIElEIG9mIHRoZSBzdG9yYWdlLCBh
cyB1c2VkIGluIEM8L2V0Yy9wdmUvc3RvcmFnZS5jZmc+IGFuZCBhcwo+IHBhcnQgb2YgZXZlcnkg
dm9saWQuCj4KPiB0aGlzIGlzIG5vdCByZWFsbHkgdXNlci1wcm92aWRlZCBpbiBtb3N0IGNhc2Vz
ICh0aGF0IG1ha2VzIGl0IHNvdW5kIGxpa2UKPiB5b3UgaGF2ZSB0byBiZSBzdXBlciBjYXJlZnVs
IHdoZW4gaGFuZGxpbmcgaXQgdG8gcHJldmVudCBleHBsb2l0cyksCj4gYWx0aG91Z2ggdGhlIHVz
ZXIgb2YgY291cnNlIGluaXRpYWxseSBuYW1lZCB0aGUgc2VjdGlvbiBsaWtlIHRoYXQgOykKCkFD
SyEgVGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlvbiEKCj4KPiA+ICsKPiA+ICs9aXRlbSAqIEM8PCAk
dm9sbmFtZSA+Pgo+ID4gKwo+ID4gK1RoZSBuYW1lIG9mIGEgdm9sdW1lLiBUaGUgdGVybSBJPHZv
bHVtZT4gY2FuIHJlZmVyIHRvIGEgZGlzayBpbWFnZSwgYW4gSVNPCj4gPiAraW1hZ2UsIGEgYmFj
a3VwLCBldGMuIGRlcGVuZGluZyBvbiB0aGUgY29udGVudCB0eXBlIG9mIHRoZSB2b2x1bWUuCj4K
PiBiYWNrdXAgYXJjaGl2ZS9zbmFwc2hvdCA/Cj4KPiBzaG91bGQgd2UgbGlzdCBhbGwgdHlwZXMg
aGVyZT8KClBlcmhhcHMgbm90IGhlcmUsIGJ1dCBtYXliZSBpbiBhIHNlcGFyYXRlIHNlY3Rpb24g
aW5zdGVhZCB0byB3aGljaCB3ZQpjYW4gcmVmZXIgdG8/IFRoZW4gYWdhaW4sIHRoZXkncmUgbGlz
dGVkIGluIHRoZSBkb2NzdHJpbmcgZm9yCmBwbHVnaW5kYXRhKClgLiBQZXJoYXBzIGl0cyBkb2Nz
IGNvdWxkIGJlbmVmaXQgZnJvbSBzdWNoIGEgc2VjdGlvbiwgdG9vLgoKSSdsbCBzZWUgd2hhdCBJ
IGNhbiBkby4KCj4KPiA+ICsKPiA+ICs9aXRlbSAqIEM8PCAkdm9saWQgPj4KPiA+ICsKPiA+ICtU
aGUgSUQgb2YgYSB2b2x1bWUsIHdoaWNoIGlzIGVzc2VudGlhbGx5IEM8IiR7c3RvcmVpZH06JHt2
b2xuYW1lfSI+LiBMZXNzIHVzZWQKPiA+ICt3aXRoaW4gdGhlIHBsdWdpbiBBUEksIGJ1dCBuZXZl
cnRoZWxlc3MgcmVsZXZhbnQuCj4KPiBzL2Vzc2VudGlhbGx5Ly8gKGl0IGlzIGV4YWN0bHkgdGhh
dCwgbm90IGVzc2VudGlhbGx5KQo+Cj4gdGhlIHNlY29uZCBzZW50ZW5jZSBkb2Vzbid0IHJlYWxs
eSBhZGQgbXVjaCwgaWYgd2Ugd2FudCB0byBrZWVwIGl0LCB0aGVuCj4gSSBzdWdnZXN0IHJlcGxh
Y2luZyBpdCB3aXRoIHNvbWV0aGluZyBsaWtlCj4KPiBGcmVxdWVudGx5IHVzZWQgaW4gZ3Vlc3Qt
c3BlY2lmaWMgQVBJIGNhbGxzIGFuZCBwYXNzZWQgdG8KPiBQVkU6OlN0b3JhZ2U6OnBhcnNlX3Zv
bHVtZV9pZCB0byBzcGxpdCBpdCBpbnRvIHN0b3JlaWQgYW5kIHZvbG5hbWUgcGFydHMKPiBiZWZv
cmUgY2FsbGluZyBpbnRvIHN0b3JhZ2UgcGx1Z2luIGNvZGUuCgpBZ3JlZSwgdGhpcyBpcyBtdWNo
IGJldHRlci4KCj4KPiA+ICsKPiA+ICs9aXRlbSAqIEM8PCAkc25hcG5hbWUgPj4gKG9yIEM8PCAk
c25hcCA+PikKPiA+ICsKPiA+ICtUaGUgbmFtZSBvZiBhIHNuYXBzaG90IGFzc29jaWF0ZWQgd2l0
aCB0aGUgZ2l2ZW4gQzwkdm9sbmFtZT4uCj4KPiB3aGF0IGlzICJnaXZlbiIgaGVyZT8gdGhlIHBo
cmFzaW5nIGRvZXNuJ3QgcmVhbGx5IG1ha2Ugc2Vuc2UgSU1ITyA7KQoKV29vcHMsIHRoYXQgd2Fz
IGEgcmVtbmFudCBvZiB3aGVuIEkgd2FzIG1vdmluZyB0aGlzIGFyb3VuZC4gVGhhbmtzIGZvcgpz
cG90dGluZyEKCj4KPiBUaGUgbmFtZSBvZiBhIHNuYXBzaG90IG9mIGEgdm9sdW1lLgo+Cj4gPiAr
Cj4gPiArPWl0ZW0gKiBDPDwgXCVjYWNoZSA+Pgo+ID4gKwo+ID4gK1NlZSBMPENBQ0hJTkcgRVhQ
RU5TSVZFIE9QRVJBVElPTlM+Lgo+ID4gKwo+ID4gKz1pdGVtICogQzw8ICR2bWlkID4+Cj4gPiAr
Cj4gPiArVGhlIElEIG9mIGEgZ3Vlc3QgKHNvLCBlaXRoZXIgb2YgYSBWTSBvciBhIGNvbnRhaW5l
cikuCj4gPiArCj4gPiArPWJhY2sKPiA+ICsKPiA+ICs9aGVhZDIgQ0FDSElORyBFWFBFTlNJVkUg
T1BFUkFUSU9OUwo+ID4gKwo+ID4gK0NlcnRhaW4gbWV0aG9kcyB0YWtlIGEgQzxcJWNhY2hlPiBh
cyBwYXJhbWV0ZXIsIHdoaWNoIGlzIHVzZWQgdG8gc3RvcmUgdGhlCj4gPiArcmVzdWx0cyBvZiB0
aW1lLWNvbnN1bWluZyAvIGV4cGVuc2l2ZSBvcGVyYXRpb25zIHNwZWNpZmljIHRvIGNlcnRhaW4g
cGx1Z2lucy4KPgo+IHRoaXMgaXMgbm90IHJlYWxseSBhY2N1cmF0ZS4gdGhlIGNhY2hlIGlzIHVz
ZWQgdG8gc3RvcmUgZGlmZmVyZW50Cj4gaW5mb3JtYXRpb24sIGN1cnJlbnRseSAoYWNjb3JkaW5n
IHRvIGEgcXVpY2sgZ3JlcCB0aHJvdWdoIHRoZSBjb2RlKToKPgo+IGZvciBzdG9yYWdlcyAoYWN0
aXZhdGVfc3RvcmFnZS9hY3RpdmF0ZV9zdG9yYWdlX2xpc3QpOgo+IC0gcGFyc2VkIC9wcm9jL21v
dW50cyBmb3IgdmFyaW91cyBkaXItYmFzZWQgc3RvcmFnZXMgd2hlcmUgdGhlIHBsdWdpbgo+ICAg
aGFuZGxlcyBtb3VudGluZywgdG8gc3BlZWQgdXAgImlzIHN0b3JhZ2UgYWxyZWFkeSBtb3VudGVk
IiBjaGVja3MKPiAtIHVkZXYgc2VxdWVuY2UgbnVtYmVycyAodG8ga25vdyB3aGV0aGVyIHVkZXYg
bmVlZHMgc2V0dGxpbmcgYWZ0ZXIKPiAgIGFjdGl2YXRpbmcgYSBzdG9yYWdlKQo+IC0gYSBmbGFn
IHRoYXQgYSBzdG9yYWdlIHdhcyBhY3RpdmF0ZWQgKGFzIGFuIG9wdGltaXphdGlvbiB0byBza2lw
Cj4gICAiaXMgaXQgYWxyZWFkeSBhY3RpdmUiIGNoZWNrcykKPgo+IHRoaXMgYWxyZWFkeSBtaXhl
cyBzdGF0ZSBvZiBQVkU6OlN0b3JhZ2Ugd2l0aCBwbHVnaW4tc3BlY2lmaWMgZGF0YSwKPiB3aGlj
aCBpcyBhIG1lc3MuCj4KPiB3aGVuIGxpc3RpbmcgaW1hZ2VzIGFjcm9zcyBtdWx0aXBsZSBzdG9y
YWdlczoKPiAtIHZncy9sdnMgb3V0cHV0IChMVk0gcGx1Z2lucykKPgo+IHRoYXQgb25lIHdlJ3Zl
IGVsaW1pbmF0ZWQgZnJvbSBtb3N0IHBsdWdpbnMsIHNpbmNlIGl0IHJhcmVseSBtYWtlcwo+IHNl
bnNlLiBMVk0gaXMgYSBiaXQgb2YgYW4gZXhjZXB0aW9uIHRoZXJlLCBhcyB3ZSBxdWVyeSBnbG9i
YWwgTFZNIHN0YXRlCj4gdGhhdCBpcyB2YWxpZCBmb3IgbXVsdGlwbGUgc3RvcmFnZSBpbnN0YW5j
ZXMuIHRoaXMgbWF5YmUgY291bGQgYmUKPiBjaGFuZ2VkIHRvIGRyb3AgdGhlIHVzYWdlIGFzIHdl
bGwsIGFuZCBpbnN0ZWFkIHF1ZXJ5IFZHLXNwZWNpZmljCj4gaW5mb3JtYXRpb24gb25seT8KPgo+
ID4gK1RoZSBleGFjdCBsaWZldGltZSBvZiB0aGUgY2FjaGVkIGRhdGEgaXMgQjx1bnNwZWNpZmll
ZD4sIHNpbmNlIGl0IGRlcGVuZHMgb24KPiA+ICt0aGUgZXhhY3QgdXNhZ2Ugb2YgdGhlIEM8TDxQ
VkU6OlN0b3JhZ2U+PiBBUEksIGJ1dCBjYW4gZ2VuZXJhbGx5IGJlIGFzc3VtZWQgdG8KPiA+ICti
ZSBCPHNob3J0LWxpdmVkPi4KPgo+IHRoaXMgaXMgbm90IHJlYWxseSBzb21ldGhpbmcgdGhhdCBo
ZWxwcyBtZSBhcyBhIHBsdWdpbiBkZXZlbG9wZXIgLSB3aGF0Cj4ga2luZCBvZiBpbmZvcm1hdGlv
biBjYW4vc2hvdWxkL211c3QgSSBzdG9yZSBpbiB0aGUgY2FjaGUgKG9yIG5vdCk/IGhvdwo+IGlz
IGl0IHN0cnVjdHVyZWQ/Cj4KPiA+ICsKPiA+ICtGb3IgZXhhbXBsZSwgdGhlIEM8TDxQVkU6OlN0
b3JhZ2U6OkxWTVBsdWdpbj4+IHVzZXMgdGhpcyBjYWNoZSB0byBzdG9yZSB0aGUKPiA+ICtwYXJz
ZWQgb3V0cHV0IG9mIHRoZSBDPGx2cz4gY29tbWFuZC4gU2luY2UgdGhlIG51bWJlciBhbmQgcHJl
Y2lzZSBpbmZvcm1hdGlvbgo+ID4gK2Fib3V0IExWTSdzIGxvZ2ljYWwgdm9sdW1lcyBpcyB1bmxp
a2VseSB0byBjaGFuZ2Ugd2l0aGluIGEgc2hvcnQgdGltZSwgb3RoZXIKPiA+ICtBUEkgbWV0aG9k
cyBjYW4gdGhlbiB1c2UgdGhpcyBkYXRhIGluIG9yZGVyIHRvIGF2b2lkIHJlcGVhdGVkbHkgY2Fs
bGluZyBhbmQKPiA+ICtwYXJzaW5nIHRoZSBvdXRwdXQgb2YgQzxsdnM+Lgo+Cj4gdGhpcyByZWFk
cyBsaWtlIHRoZSBjYWNoZSBpcyB1c2VkIGFjcm9zcyBQVkUgQVBJIGNhbGxzIChhbHRob3VnaCBt
YXliZQo+IHlvdSBtZWFudCAic3RvcmFnZSBwbHVnaW4gQVBJIj8pLiB0aGUgb3JpZ2luYWwgKGZs
YXdlZCkgcmVhc29uIHdhcy9pcwo+IHRoYXQgaWYgd2UgYWN0aXZhdGUgMjAgdm9sdW1lcyBvbiBh
IHNpbmdsZSBzdG9yYWdlIGZvciBhIGNlcnRhaW4gdGFzaywKPiB0aGVuIGl0IGlzIGVub3VnaCB0
byBjaGVjayB3aXRoIExWTSBvbmNlIGFuZCByZS11c2UgdGhlIChzbGlnaHRseSBzdGFsZSkKPiBk
YXRhLiB0aGlzIHNpbmNlIGdvdCBlbGltaW5hdGVkIGZyb20gbW9zdCBwbHVnaW5zIGFzIGl0IHdh
cyBub3Qgd29ya2luZy4KPiB0aGUgb3RoZXIgdXNlIGNhc2UgKHNlZSBhYm92ZSkgaXMgaWYgd2Ug
KHBvdGVudGlhbGx5KSBhY3RpdmF0ZSAxMAo+IHN0b3JhZ2VzLCB3ZSBjYW4gY2hlY2sgb25jZSB3
aGF0IGlzIGFscmVhZHkgbW91bnRlZCBhbmQgcmUtdXNlIHRoYXQgZm9yCj4gdGhlIHN1YnNlcXVl
bnQgOSBhY3RpdmF0aW9ucy4gSSBhbSBub3Qgc3VyZSB0aGlzIGlzIHdvcnRoIGl0IGVpdGhlciB0
bwo+IGJlIGhvbmVzdC4KPgo+ID4gKwo+ID4gK1RoaXJkLXBhcnR5IHBsdWdpbiBkZXZlbG9wZXJz
IHNob3VsZCBlbnN1cmUgdGhhdCB0aGUgZGF0YSBzdG9yZWQgYW5kIHJldHJpZXZlZAo+ID4gK2lz
IHNwZWNpZmljIHRvIHRoZWlyIHBsdWdpbiwgYW5kIG5vdCByZWx5IG9uIHRoZSBkYXRhIHRoYXQg
b3RoZXIgcGx1Z2lucyBtaWdodAo+ID4gK3N0b3JlIGluIEM8XCVjYWNoZT4uIEZ1cnRoZXJtb3Jl
LCB0aGUgbmFtZXMgb2Yga2V5cyBzaG91bGQgYmUgcmF0aGVyIHVuaXF1ZSBpbgo+ID4gK3RoZSBz
ZW5zZSB0aGF0IHRoZXkncmUgdW5saWtlbHkgdG8gY29uZmxpY3Qgd2l0aCBhbnkgZnV0dXJlIGtl
eXMgdGhhdCBtYXkgYmUKPiA+ICtpbnRyb2R1Y2VkIGludGVybmFsbHkuIFRvIGlsbHVzdHJhdGUs
IGUuZy4gQzxteXBsdWdpbl9tb3VudHM+IHNob3VsZCBiZSB1c2VkCj4gPiAraW5zdGVhZCBvZiBh
IHBsYWluIEM8bW91bnRzPiBrZXkuCj4KPiBhbmQgdGhpcyBoZXJlIGNsZWFybHkgc2hvd3MgdGhh
dCB0aGUgY3VycmVudCBpbnRlcmZhY2UgaXMgYm9ndXMgYW5kCj4gdW5kZXItc3BlY2lmaWVkIGlu
IGFueSBjYXNlLiBzbyB1bnRpbCB0aGF0IGlzIGZpeGVkLCB0aGlzIGhlcmUgc2hvdWxkCj4gcmVh
ZCAiaWdub3JlIHRoZSBjYWNoZSBwYXJhbWV0ZXIgaXQgaXMgZm9yIGludGVybmFsIHVzZSBvbmx5
Ii4gaWYgYQo+IHBsdWdpbiBuZWVkcyB0byBjYWNoZSB0aGluZ3MgaW50ZXJuYWxseSwgaXQgY2Fu
IGRvIHNvIGFueXdheSBiYXNlZCBvbgo+IGl0cyBvd24gY3JpdGVyaWEuLgoKSW4gdGhlIGluaXRp
YWwgZGVzY3JpcHRpb24gSSB0cmllZCB0byBzaW1wbGlmeSAvIGdlbmVyYWxpemUgaXRzCmRlc2Ny
aXB0aW9uIGFuZCBub3QgcmVhbGx5IGRvY3VtZW50IGV2ZXJ5IHNpbmdsZSBpbXBsZW1lbnRhdGlv
biBkZXRhaWwKc28gdGhhdCB0aGlyZC1wYXJ0eSBkZXZzIGNvdWxkIHVzZSBpdCBmb3IgdGhlaXIg
b3duIHB1cnBvc2VzIGluIG9yZGVyIHRvCmF2b2lkIHJ1bm5pbmcgdGhlIHNhbWUgdGltZS1jb25z
dW1pbmcgY29kZSBpbiBzaG9ydCBzdWNjZXNzaW9uLgoKSSBoYWRuJ3QgcmVhbGx5IHRob3VnaHQg
b2YgdGhlIGZhY3QgdGhhdCBwbHVnaW5zIGNhbiBqdXN0IGtlZXAgYW4KaW50ZXJuYWwgY2FjaGUg
aWYgdGhleSB3YW50IHRvIGNhY2hlIHN0dWZmLiDwn6SmCgpTbyB5ZWFoLCBhZnRlciByZWFkaW5n
IGFsbCB0aGlzLCBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIGp1c3QgZGV0ZXIgdGhpcmQKcGFydGll
cyBmcm9tIHVzaW5nIHRoZSBwYXJhbWV0ZXIgYWx0b2dldGhlci4KClNpZGUtbm90ZTogSSdsbCBh
bHNvIHJlZnJhaW4gZnJvbSB1c2luZyBpdCBpbiB0aGUgU1NIRlMgZXhhbXBsZSBwbHVnaW4gSQpy
ZWNlbnRseSBjb29rZWQgdXAgWzJdLgoKWzJdOiBodHRwczovL2xvcmUucHJveG1veC5jb20vcHZl
LWRldmVsLzIwMjUwMzI4MTcxMjA5LjUwMzEzMi0xLW0uY2FycmFyYUBwcm94bW94LmNvbS8KCj4K
Pgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gcHZl
LWRldmVsIG1haWxpbmcgbGlzdAo+IHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+IGh0dHBz
Oi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAoK
CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2
ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3Rz
LnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK