Re: [PATCH v1 0/7] Add HPD support for Rockchip Analogix DP

Damon Ding <[email protected]> Mon, 3 Aug 2026 09:50:31 +0800
Newsgroups org.infradead.lists.linux-rockchip,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
SGkgSGVpa28sCgpPbiA3LzMxLzIwMjYgNjozMCBQTSwgSGVpa28gU3TDvGJuZXIgd3JvdGU6Cj4g
SGkgRGFtb24sCj4gCj4gQW0gRnJlaXRhZywgMzEuIEp1bGkgMjAyNiwgMTE6NTU6NDIgTWl0dGVs
ZXVyb3DDpGlzY2hlIFNvbW1lcnplaXQgc2NocmllYiBEYW1vbiBEaW5nOgo+PiBPbiA3LzMxLzIw
MjYgNToyMyBQTSwgSGVpa28gU3TDvGJuZXIgd3JvdGU6Cj4+PiBBbSBGcmVpdGFnLCAzMS4gSnVs
aSAyMDI2LCAwNTowODo0NSBNaXR0ZWxldXJvcMOkaXNjaGUgU29tbWVyemVpdCBzY2hyaWViIERh
bW9uIERpbmc6Cj4+Pj4gT24gNy8zMS8yMDI2IDI6NDkgQU0sIEhlaWtvIFN0w7xibmVyIHdyb3Rl
Ogo+Pj4+PiBBbSBEb25uZXJzdGFnLCAzMC4gSnVsaSAyMDI2LCAwNToyNzozNyBNaXR0ZWxldXJv
cMOkaXNjaGUgU29tbWVyemVpdCBzY2hyaWViIERhbW9uIERpbmc6Cj4+Pj4+PiBUaGlzIHNlcmll
cyBpbXByb3ZlcyB0aGUgSFBEIChIb3RwbHVnIERldGVjdCkgaW50ZXJydXB0IGhhbmRsaW5nIGlu
Cj4+Pj4+PiB0aGUgQW5hbG9naXggRFAgZHJpdmVyIHRvIGVuYWJsZSByZWxpYWJsZSBuYXRpdmUg
SFBEIHBpbiBkZXRlY3Rpb24gb24KPj4+Pj4+IFJvY2tjaGlwIHBsYXRmb3JtcywgYW5kIGludHJv
ZHVjZXMgcGxhdGZvcm0tc3BlY2lmaWMgSFBEIGRldGVjdGlvbgo+Pj4+Pj4gc2NoZW1lcyB3aXRo
IGZpbmUtZ3JhaW5lZCBpbnRlcnJ1cHQgY29udHJvbC4KPj4+Pj4KPj4+Pj4gWy4uLl0KPj4+Pj4K
Pj4+Pj4+IFRlc3RlZCBvbiBSSzM1NzYgd2l0aCBib3RoIG5hdGl2ZSBIUEQgcGluIGFuZCBHUElP
IEhQRCBjb25maWd1cmF0aW9ucy4KPj4+Pj4+Cj4+Pj4+PiBOYXRpdmUgSFBEIHBpbiBtb2RlOgo+
Pj4+Pj4KPj4+Pj4+ICAgICAgJmVkcCB7Cj4+Pj4+PiAgICAgICAgICBzdGF0dXMgPSAib2theSI7
Cj4+Pj4+PiAgICAgICAgICBwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOwo+Pj4+Pj4gICAgICAg
ICAgcGluY3RybC0wID0gPCZlZHBfdHhtMF9waW5zPjsKPj4+Pj4+ICAgICAgfTsKPj4+Pj4+Cj4+
Pj4+PiBHUElPIEhQRCBtb2RlOgo+Pj4+Pj4KPj4+Pj4+ICAgICAgJmVkcCB7Cj4+Pj4+PiAgICAg
ICAgICBzdGF0dXMgPSAib2theSI7Cj4+Pj4+PiAgICAgICAgICBwaW5jdHJsLW5hbWVzID0gImRl
ZmF1bHQiOwo+Pj4+Pj4gICAgICAgICAgcGluY3RybC0wID0gPCZlZHAwX2hwZD47Cj4+Pj4+PiAg
ICAgICAgICBocGQtZ3Bpb3MgPSA8JmdwaW80IFJLX1BDMSBHUElPX0FDVElWRV9ISUdIPjsKPj4+
Pj4+ICAgICAgfTsKPj4+Pj4+Cj4+Pj4+PiAgICAgICZwaW5jdHJsIHsKPj4+Pj4+ICAgICAgICAg
IGVkcCB7Cj4+Pj4+PiAgICAgICAgICAgICAgZWRwMF9ocGQ6IGVkcDAtaHBkIHsKPj4+Pj4+ICAg
ICAgICAgICAgICAgICAgcm9ja2NoaXAscGlucyA9IDw0IFJLX1BDMSAwICZwY2ZnX3B1bGxfbm9u
ZT47Cj4+Pj4+PiAgICAgICAgICAgICAgfTsKPj4+Pj4+ICAgICAgICAgIH07Cj4+Pj4+PiAgICAg
IH07Cj4+Pj4+Cj4+Pj4+IFlheSBhbmQgdGhhbmtzIGEgbG90IGZvciB3b3JraW5nIG9uIHRoYXQu
Cj4+Pj4+Cj4+Pj4+IElmIEkgcm9sbCBteSBkaXNwbGF5LXBvcnQgY2FycmllciBib2FyZCBiYWNr
IHRvIHRoZSBhbmFsb2dpeC1kcCBiZWluZwo+Pj4+PiB0aGUgZW5kcG9pbnQsIHRoaXMgd29ya3Mg
ZXhhY3RseSBhcyBleHBlY3RlZCA6LSkgLgo+Pj4+Pgo+Pj4+PiBJIGNhbiBwbHVnIGluIHRoZSBk
aXNwbGF5IGF0IHNvbWUgcG9pbnQgYWZ0ZXIgdGhlIGJvb3QgYW5kIGhhdmUgaXQKPj4+Pj4gZGV0
ZWN0ZWQgYW5kIHNldHVwIGNvcnJlY3RseS4gU2FtZSB3aXRoIHVucGx1Z2dpbmcgaXQgd2hpbGUK
Pj4+Pj4gdGhlIHN5c3RlbSBpcyBydW5uaW5nLiBUaGUgY29ubmVjdGlvbiBzdGF0dXMgaXMgY29y
cmVjdGx5IHJlcG9ydGVkCj4+Pj4+IGluIHN5c2ZzLgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBUaG91Z2gg
dGhlcmUgaXMgYSBjYXZlYXQuIFdoZW4gdGhlIGVEUCBpcyBub3QgdGhlIGxhc3QgcGFydCwgdGhp
cyBkb2VzIG5vdAo+Pj4+PiB3b3JrIGFueW1vcmUuIFRoZSBkZXRlY3QgZnVuY3Rpb24gYWx3YXlz
IHJldHVybnMgImNvbm5lY3RlZCIgaWYgdGhlcmUgaXMKPj4+Pj4gYSBuZXh0IGJyaWRnZSBhdmFp
bGFibGUuCj4+Pj4+Cj4+Pj4+IE15IGJvYXJkIFswXSBoYXMgYSBwaHlzaWNhbCBEUCBjb25uZWN0
b3Igb24gaXQsIHNvIG1vZGVscyBpdCBhcwo+Pj4+PiBkcC1jb25uZWN0b3IsIGJ1dCBpbiB0aGF0
IGNhc2UgdGhlIEFuYWxvZ2l4IGRyaXZlciBhbHdheXMgcmVwb3J0cyBiZWluZwo+Pj4+PiBjb25u
ZWN0ZWQuCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IFswXSBodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51
eC1yb2NrY2hpcC8yMDI1MTAwOTIyNTA1MC44ODE5Mi0zLWhlaWtvQHNudGVjaC5kZS8KPj4+Pj4g
Li4uIHNhbWUgZWZmZWN0IHdpdGggaHBkLWdwaW9zIGluIGVpdGhlciB0aGUgZWRwIG5vZGUgb3Ig
ZHAtY29ubmVjdG9yIG5vZGUKPj4+Pj4KPj4+Pj4KPj4+Pgo+Pj4+IE15IHByZXZpb3VzIHRlc3Rz
IHdlcmUgY2FycmllZCBvdXQgb24gdGhlIG1vZGlmaWVkIFJLMzU3NiBJT1RFU1QgYm9hcmQKPj4+
PiBEVFMgYmFzZWQgb24gUkszNTc2IEVWQjEsIHdoaWNoIGluY2x1ZGVzIGRwLWNvbm5lY3RvciBi
eSBkZWZhdWx0LiBJIGFsc28KPj4+PiBkaWQgZXh0cmEgdmVyaWZpY2F0aW9uIHdpdGhvdXQgZHAt
Y29ubmVjdG9yLCBhbmQgSFBEIGRldGVjdGlvbiB3b3Jrcwo+Pj4+IGNvcnJlY3RseSBpbiBib3Ro
IGNhc2VzLgo+Pj4+Cj4+Pj4gSSd2ZSB0YWtlbiBhIGxvb2sgYXQgdGhlIFRpZ2VyIGJvYXJkIERU
IGNvbmZpZ3VyYXRpb24uIFRoZSBwaW5jdHJsCj4+Pj4gc2V0dGluZ3MgZm9yIHRoZSBlRFAgSFBE
IEdQSU8gbWF5IG5lZWQgYWRqdXN0bWVudDoKPj4+Pgo+Pj4+ICZwaW5jdHJsIHsKPj4+PiAJZWRw
MCB7Cj4+Pj4gCQllZHAwX2hwZF9sOiBlZHAwLWhwZC1sLXBpbiB7Cj4+Pj4gCQkJcm9ja2NoaXAs
cGlucyA9IDw0IFJLX1BCNSBSS19GVU5DX0dQSU8gJnBjZmdfcHVsbF9kb3duPjsKPj4+PiAJCX07
Cj4+Pj4gCX07Cj4+Pj4gfTsKPj4+Pgo+Pj4+IEl0IGlzIHJlY29tbWVuZGVkIHRvIGNvbmZpZ3Vy
ZSBHUElPNEI1IGFzIHB1bGwtZG93biBvciBwbGwtbm9uZS4gUHVsbC11cAo+Pj4+IGNvbmZpZ3Vy
YXRpb24gbWF5IHByZXZlbnQgR1BJTyBpbnRlcnJ1cHRzIGZyb20gYmVpbmcgdHJpZ2dlcmVkIHBy
b3Blcmx5LAo+Pj4+IHJlc3VsdGluZyBpbiBhIHBlcm1hbmVudCAiY29ubmVjdGVkIiBzdGF0dXMu
Cj4+Pgo+Pj4gQXQgbGVhc3Qgb24gdGhhdCBEUC1jYXJyaWVyIHRoZSBwaW4gZGlyZWN0aW9uIGlz
IGRpZmZlcmVudC4KPj4+IEkuZS4gaXQgaXMgYWN0aXZlLWxvdywgbWVhbmluZyAwIGZvciBwbHVn
Z2VkIGluLgo+Pj4KPj4+IEluIHRoZSBzY2hlbWF0aWNzIEkgZG8gc2VlIGEgaHcgcHVsbCB1cCB0
b28gLSBzbyBwdWxsLW5vbmUgaW4gdGhlIHBpbmNvbmZpZwo+Pj4gd291bGQgYWxzbyBiZSBwb3Nz
aWJsZSwgYnV0IHB1bGwtZG93biBpcyBkZWZpbml0bHkgd3Jvbmcgb24gX3RoaXNfIGJvYXJkLgo+
Pj4KPj4+IFNvIHdlJ3JlIHRhbGtpbmcgYWJvdXQgdGhlIHNhbWUgY29kZSwgSSBwdXQgdGhlIGR0
cyB1cCBvbiBbMF0gLgo+Pj4KPj4+IEknbSBjdXJyZW50bHkgcnVubmluZyB3aXRoIGEgcHJpbnRr
IGRpZmYgWzFdIHRvIHNob3djYXNlIHRoZSBpc3N1ZS4KPj4+Cj4+PiBTbyBvbiBib290LCB3aXRo
IHRoZSBkaXNwbGF5IHVucGx1Z2dlZCBJIGdldDoKPj4+IFsgICAxNC43NTc5MTFdIC0tLT4gZHJt
X2JyaWRnZV9jb25uZWN0b3JfZGV0ZWN0OiBkZXRlY3QKPj4+IFsgICAxNC43NTc5MTRdIC0tLT4g
YW5hbG9naXhfZHBfYnJpZGdlX2RldGVjdCBhCj4+PiBbICAgMTQuNzU3OTE4XSAtLS0+IGRybV9i
cmlkZ2VfY29ubmVjdG9yX2RldGVjdDogZGV0ZWN0Cj4+PiBbICAgMTQuNzczNzc5XSAtLS0+IGFu
YWxvZ2l4X2RwX2JyaWRnZV9kZXRlY3QgYQo+Pj4gWyAgIDE0LjgzODY1OF0gcm9ja2NoaXAtZHAg
ZmRlYzAwMDAuZWRwOiBmYWlsZWQgdG8gcmVhZCBkcGNkIGNhcHM6IC0xMTAKPj4+IFsgICAxNC44
Mzg2NjJdIFtkcm06YW5hbG9naXhfZHBfYnJpZGdlX2F0b21pY19lbmFibGUgW2FuYWxvZ2l4X2Rw
XV0gKkVSUk9SKiBkcCBjb21taXQgZXJyb3IsIHJldCA9IC0xMTAKPj4+IFsgICAxNC44Mzg2NzBd
IHJvY2tjaGlwLWRwIGZkZWMwMDAwLmVkcDogZmFpbGVkIHRvIHNldCBicmlkZ2UsIHJldHJ5OiAw
Cj4+PiBbICAgMTQuODg0NzkxXSByb2NrY2hpcC1kcCBmZGVjMDAwMC5lZHA6IGZhaWxlZCB0byBy
ZWFkIGRwY2QgY2FwczogLTExMAo+Pj4gWyAgIDE0Ljg4NDc5M10gW2RybTphbmFsb2dpeF9kcF9i
cmlkZ2VfYXRvbWljX2VuYWJsZSBbYW5hbG9naXhfZHBdXSAqRVJST1IqIGRwIGNvbW1pdCBlcnJv
ciwgcmV0ID0gLTExMAo+Pj4gWyAgIDE0Ljg4NDc5Nl0gcm9ja2NoaXAtZHAgZmRlYzAwMDAuZWRw
OiBmYWlsZWQgdG8gc2V0IGJyaWRnZSwgcmV0cnk6IDEKPj4+IFsgICAxNC45MzA5MjVdIHJvY2tj
aGlwLWRwIGZkZWMwMDAwLmVkcDogZmFpbGVkIHRvIHJlYWQgZHBjZCBjYXBzOiAtMTEwCj4+PiBb
ICAgMTQuOTMwOTI3XSBbZHJtOmFuYWxvZ2l4X2RwX2JyaWRnZV9hdG9taWNfZW5hYmxlIFthbmFs
b2dpeF9kcF1dICpFUlJPUiogZHAgY29tbWl0IGVycm9yLCByZXQgPSAtMTEwCj4+PiBbICAgMTQu
OTMwOTMwXSByb2NrY2hpcC1kcCBmZGVjMDAwMC5lZHA6IGZhaWxlZCB0byBzZXQgYnJpZGdlLCBy
ZXRyeTogMgo+Pj4gWyAgIDE0Ljk3NzAzMl0gcm9ja2NoaXAtZHAgZmRlYzAwMDAuZWRwOiBmYWls
ZWQgdG8gcmVhZCBkcGNkIGNhcHM6IC0xMTAKPj4+IFsgICAxNC45NzcwMzRdIFtkcm06YW5hbG9n
aXhfZHBfYnJpZGdlX2F0b21pY19lbmFibGUgW2FuYWxvZ2l4X2RwXV0gKkVSUk9SKiBkcCBjb21t
aXQgZXJyb3IsIHJldCA9IC0xMTAKPj4+IFsgICAxNC45NzcwMzddIHJvY2tjaGlwLWRwIGZkZWMw
MDAwLmVkcDogZmFpbGVkIHRvIHNldCBicmlkZ2UsIHJldHJ5OiAzCj4+PiBbICAgMTUuMDIzMTUw
XSByb2NrY2hpcC1kcCBmZGVjMDAwMC5lZHA6IGZhaWxlZCB0byByZWFkIGRwY2QgY2FwczogLTEx
MAo+Pj4gWyAgIDE1LjAyMzE1Ml0gW2RybTphbmFsb2dpeF9kcF9icmlkZ2VfYXRvbWljX2VuYWJs
ZSBbYW5hbG9naXhfZHBdXSAqRVJST1IqIGRwIGNvbW1pdCBlcnJvciwgcmV0ID0gLTExMAo+Pj4g
WyAgIDE1LjAyMzE1NV0gcm9ja2NoaXAtZHAgZmRlYzAwMDAuZWRwOiBmYWlsZWQgdG8gc2V0IGJy
aWRnZSwgcmV0cnk6IDQKPj4+IFsgICAxNS4wMjMxNjhdIHJvY2tjaGlwLWRwIGZkZWMwMDAwLmVk
cDogdG9vIG1hbnkgdGltZXMgcmV0cnkgc2V0IGJyaWRnZSwgZ2l2ZSBpdCB1cAo+Pj4gWyAgIDE1
LjA1MjQ4NV0gQ29uc29sZTogc3dpdGNoaW5nIHRvIGNvbG91ciBmcmFtZSBidWZmZXIgZGV2aWNl
IDgweDMwCj4+PiBbICAgMTUuMjEwNDU3XSByb2NrY2hpcC1kcm0gZGlzcGxheS1zdWJzeXN0ZW06
IFtkcm1dIGZiMDogcm9ja2NoaXBkcm1mYiBmcmFtZSBidWZmZXIgZGV2aWNlCj4+PiBbICAgMTUu
MjIzNDQ0XSAtLS0+IGRybV9icmlkZ2VfY29ubmVjdG9yX2RldGVjdDogZGV0ZWN0Cj4+PiBbICAg
MTUuMjMxOTc0XSAtLS0+IGFuYWxvZ2l4X2RwX2JyaWRnZV9kZXRlY3QgYQo+Pj4gWyAgIDE1LjIz
OTU4N10gLS0tPiBkcm1fYnJpZGdlX2Nvbm5lY3Rvcl9kZXRlY3Q6IGRldGVjdAo+Pj4gWyAgIDE1
LjI0NTM0MV0gLS0tPiBhbmFsb2dpeF9kcF9icmlkZ2VfZGV0ZWN0IGEKPj4+Cj4+PiBTbyBhbmFs
b2dpeF9kcF9icmlkZ2VfZGV0ZWN0KCkgaXMgY2FsbGVkIGFuZCBhbHdheXMgcmV0dXJucyBjb25u
ZWN0ZWQuCj4+Pgo+Pj4gUGx1Z2dpbmcgaW4gdGhlIHRoZSBkaXNwbGF5LCBJIGdldDoKPj4+IFsg
IDI5MC41OTIwOTZdIC0tLT4gZGlzcGxheV9jb25uZWN0b3JfZGV0ZWN0IGdwaW8gdmFsdWUgaXMg
MSAgIHtkaXNwbGF5LWNvbm5lY3RvciByZXR1cm5pbmcgY29ubmVjdGVkfQo+Pj4gWyAgMjkwLjU5
ODY0OF0gLS0tPiBkcm1fYnJpZGdlX2Nvbm5lY3Rvcl9kZXRlY3Q6IGRldGVjdAo+Pj4gWyAgMjkw
LjYwNDYzN10gLS0tPiBhbmFsb2dpeF9kcF9icmlkZ2VfZGV0ZWN0IGEKPj4+IFsgIDI5MC42MDk4
MjZdIC0tLT4gZHJtX2JyaWRnZV9jb25uZWN0b3JfZGV0ZWN0OiBkZXRlY3QKPj4+IFsgIDI5MC42
MTU3ODRdIC0tLT4gYW5hbG9naXhfZHBfYnJpZGdlX2RldGVjdCBhCj4+Pgo+Pj4gVW5wbHVnZ2lu
ZyB0aGUgZGlzcGxheSwgSSBnZXQ6Cj4+PiBbICAzMDIuMDgxNDQ0XSAtLS0+IGRpc3BsYXlfY29u
bmVjdG9yX2RldGVjdCBncGlvIHZhbHVlIGlzIDAgICB7ZGlzcGxheS1jb25uZWN0b3IgcmV0dXJu
aW5nIGRpc2Nvbm5lY3RlZH0KPj4+IFsgIDMwMi4wODc5OTZdIC0tLT4gZHJtX2JyaWRnZV9jb25u
ZWN0b3JfZGV0ZWN0OiBkZXRlY3QKPj4+IFsgIDMwMi4wOTM5NDVdIC0tLT4gYW5hbG9naXhfZHBf
YnJpZGdlX2RldGVjdCBhCj4+PiBbICAzMDIuMDk5MTMxXSAtLS0+IGRybV9icmlkZ2VfY29ubmVj
dG9yX2RldGVjdDogZGV0ZWN0Cj4+PiBbICAzMDIuMTA1MDkwXSAtLS0+IGFuYWxvZ2l4X2RwX2Jy
aWRnZV9kZXRlY3QgYQo+Pj4gWyAgMzAyLjE0NDgzNF0gLS0tPiBkcm1fYnJpZGdlX2Nvbm5lY3Rv
cl9kZXRlY3Q6IGRldGVjdAo+Pj4gWyAgMzAyLjE1MDc4NF0gLS0tPiBhbmFsb2dpeF9kcF9icmlk
Z2VfZGV0ZWN0IGEKPj4+IFsgIDMwMi4xNTU5MzNdIC0tLT4gZHJtX2JyaWRnZV9jb25uZWN0b3Jf
ZGV0ZWN0OiBkZXRlY3QKPj4+IFsgIDMwMi4xNjE4NTldIC0tLT4gYW5hbG9naXhfZHBfYnJpZGdl
X2RldGVjdCBhCj4+Pgo+Pj4KPj4+IFNvIGl0IGxvb2tzIGxpa2Ugb24gdGhlIGdwaW8tc2lkZSB0
aGUgZGV0ZWN0aW9uIGlzIGNvcnJlY3QgYW5kL2J1dAo+Pj4gYW5hbG9naXhfZHBfYnJpZGdlX2Rl
dGVjdCgpIGlzIGFsd2F5cyByZXR1cm5pbmcgYSBjb25uZWN0ZWQgc3RhdGUKPj4+ICgiYiIgb3V0
cHV0IGlzIG5ldmVyIHJlYWNoZWQpLgo+Pj4KPj4+IEknbSBzdGlsbCB3b3JraW5nIG9uIHVuZGVy
c3RhbmRpbmcgaG93IHRoZSB3aG9sZSBkZXRlY3Rpb24gbG9naWMgd29ya3MKPj4+IGluIGRybSA7
LSkgLgo+Pj4KPj4+Cj4+Cj4+IEkgdGhpbmsgSSd2ZSBzcG90dGVkIHRoZSBlbnZpcm9ubWVudGFs
IGRpZmZlcmVuY2UgYmV0d2VlbiBvdXIgc2V0dXBzLgo+PiBZb3VyIERUUyBwbGFjZXMgdGhlIGhw
ZC1ncGlvcyBwcm9wZXJ0eSB1bmRlciB0aGUgZHAtY29ubmVjdG9yIG5vZGUsCj4+IHdoaWNoIGlz
IGEgc2NlbmFyaW8gSSBoYXZlbid0IGNvdmVyZWQgeWV0LiBJIHdpbGwgcmVwcm9kdWNlIGFuZCB0
ZXN0Cj4+IHRoaXMgY2FzZSBsb2NhbGx5Lgo+Pgo+PiBBcyBhIHF1aWNrIGV4cGVyaW1lbnQsIGNv
dWxkIHlvdSB0cnkgcmVtb3ZpbmcgaHBkLWdwaW9zIGZyb20KPj4gZHAtY29ubmVjdG9yIGFuZCBt
b3ZlIGl0IHVuZGVyIHRoZSBlZHAgbm9kZSBpbnN0ZWFkPyBBcyBleHBlY3RlZCwgR1BJTwo+PiBI
UEQgc2hvdWxkIHdvcmsgcHJvcGVybHkgd2l0aCB0aGF0IGNvbmZpZ3VyYXRpb24uCj4gCj4gSSd2
ZSB1cGRhdGVkIHRoZSBicmFuY2ggaW4gWzBdIHdpdGggdGhhdCBocGQgbW92ZSB0byB0aGUgZWRw
IG5vZGUsIGJ1dAo+IHRoZSByZXN1bHQgaXMgc2ltaWxhcjoKPiAKPiBXaXRoIHRoZSBwYW5lbCBf
ZGlzY29ubmVjdGVkXyBvbiBib290IEkgc2VlCj4gWyAgIDEyLjg4NzU1NV0gLS0tPiBkcm1fYnJp
ZGdlX2Nvbm5lY3Rvcl9kZXRlY3Q6IGRldGVjdAo+IFsgICAxMi44OTMxMDRdIC0tLT4gYW5hbG9n
aXhfZHBfYnJpZGdlX2RldGVjdCBhCj4gWyAgIDEyLjg5Nzg4MV0gLS0tPiBkcm1fYnJpZGdlX2Nv
bm5lY3Rvcl9kZXRlY3Q6IGRldGVjdAo+IFsgICAxMi45MDM0MjRdIC0tLT4gYW5hbG9naXhfZHBf
YnJpZGdlX2RldGVjdCBhCj4gWyAgIDE0LjEyNDg0OF0gW2RybTphbmFsb2dpeF9kcF9icmlkZ2Vf
YXRvbWljX2VuYWJsZSBbYW5hbG9naXhfZHBdXSAqRVJST1IqIGZhaWxlZCB0byBnZXQgaHBkIHNp
bmdsZSByZXQgPSAtMTEwCj4gWyAgIDE0LjEyNDg5MV0gcm9ja2NoaXAtZHAgZmRlYzAwMDAuZWRw
OiBmYWlsZWQgdG8gc2V0IGJyaWRnZSwgcmV0cnk6IDAKPiBbICAgMTQuMjM2MDMxXSBbZHJtOmFu
YWxvZ2l4X2RwX2JyaWRnZV9hdG9taWNfZW5hYmxlIFthbmFsb2dpeF9kcF1dICpFUlJPUiogZmFp
bGVkIHRvIGdldCBocGQgc2luZ2xlIHJldCA9IC0xMTAKPiBbICAgMTQuMjM2MDc0XSByb2NrY2hp
cC1kcCBmZGVjMDAwMC5lZHA6IGZhaWxlZCB0byBzZXQgYnJpZGdlLCByZXRyeTogMQo+IFsgICAx
NC4zNDY5NDBdIFtkcm06YW5hbG9naXhfZHBfYnJpZGdlX2F0b21pY19lbmFibGUgW2FuYWxvZ2l4
X2RwXV0gKkVSUk9SKiBmYWlsZWQgdG8gZ2V0IGhwZCBzaW5nbGUgcmV0ID0gLTExMAo+IFsgICAx
NC4zNDY5OTBdIHJvY2tjaGlwLWRwIGZkZWMwMDAwLmVkcDogZmFpbGVkIHRvIHNldCBicmlkZ2Us
IHJldHJ5OiAyCj4gWyAgIDE0LjQ1ODU5MF0gW2RybTphbmFsb2dpeF9kcF9icmlkZ2VfYXRvbWlj
X2VuYWJsZSBbYW5hbG9naXhfZHBdXSAqRVJST1IqIGZhaWxlZCB0byBnZXQgaHBkIHNpbmdsZSBy
ZXQgPSAtMTEwCj4gWyAgIDE0LjQ1ODYzOF0gcm9ja2NoaXAtZHAgZmRlYzAwMDAuZWRwOiBmYWls
ZWQgdG8gc2V0IGJyaWRnZSwgcmV0cnk6IDMKPiBbICAgMTQuNTcwMjYyXSBbZHJtOmFuYWxvZ2l4
X2RwX2JyaWRnZV9hdG9taWNfZW5hYmxlIFthbmFsb2dpeF9kcF1dICpFUlJPUiogZmFpbGVkIHRv
IGdldCBocGQgc2luZ2xlIHJldCA9IC0xMTAKPiBbICAgMTQuNTcwMzEyXSByb2NrY2hpcC1kcCBm
ZGVjMDAwMC5lZHA6IGZhaWxlZCB0byBzZXQgYnJpZGdlLCByZXRyeTogNAo+IFsgICAxNC41NzAz
MjhdIHJvY2tjaGlwLWRwIGZkZWMwMDAwLmVkcDogdG9vIG1hbnkgdGltZXMgcmV0cnkgc2V0IGJy
aWRnZSwgZ2l2ZSBpdCB1cAo+IFsgICAxNC43NTEzNzFdIC0tLT4gZHJtX2JyaWRnZV9jb25uZWN0
b3JfZGV0ZWN0OiBkZXRlY3QKPiBbICAgMTQuNzU3MjA3XSAtLS0+IGFuYWxvZ2l4X2RwX2JyaWRn
ZV9kZXRlY3QgYQo+IAo+IFNvIHdpdGggdGhlIGRpZmYgZnJvbSBlYXJsaWVyLCBhbmFsb2dpeF9k
cF9icmlkZ2VfZGV0ZWN0KCkgc3RpbGwgcnVucywKPiBmaW5kcyBpdHMgbmV4dCBicmlkZ2UgYW5k
IHJldHVybnMgImNvbm5lY3RlZCIuCj4gCj4gSS5lLiB0aGUKPj4+ICAgICAgICAgICBpZiAoZHAt
PnBsYXRfZGF0YS0+bmV4dF9icmlkZ2UpCj4+PiAgICAgICAgICAgICAgICAgICByZXR1cm4gY29u
bmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7Cj4gCj4gcGFydC4KPiAKPiAKClRoYW5rcyBhIGxvdCBm
b3IgcnVubmluZyB0aGUgdGVzdCBhbmQgY29uZmlybWluZyB0aGUgYmVoYXZpb3VyLiBJJ3ZlIAph
bHNvIHJlcHJvZHVjZWQgdGhpcyBpc3N1ZSBsb2NhbGx5LgoKSSB3aWxsIGRpZyBkZWVwZXIgaW50
byB0aGlzIHByb2JsZW0gYW5kIGZpeCB0aGlzIGluY29ycmVjdCBjb25uZWN0aW9uIApzdGF0dXMg
bG9naWMgaW4gdjIuIDotKQoKQmVzdCByZWdhcmRzLApEYW1vbgoKPiAKPiAKPiAKPj4+IFswXSBo
dHRwczovL2dpdGh1Yi5jb20vbW1pbmQvbGludXgtcm9ja2NoaXAvYmxvYi9kZXYvdjcuMy9yazM1
ODgtdGlnZXItZHAtY2Fycmllci12NS9hcmNoL2FybTY0L2Jvb3QvZHRzL3JvY2tjaGlwL3JrMzU4
OC10aWdlci1kaXNwbGF5cG9ydC1jYXJyaWVyLmR0cwo+Pj4gWzFdCj4+PiBkaWZmIC0tZ2l0IGEv
ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMgYi9kcml2
ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYwo+Pj4gaW5kZXgg
N2E4OTU0OGE3YTg4NS4uMGFjY2RmNjI2MzdhZSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1
L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5jCj4+PiArKysgYi9kcml2ZXJz
L2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYwo+Pj4gQEAgLTkxNSw4
ICs5MTUsMTAgQEAgYW5hbG9naXhfZHBfYnJpZGdlX2RldGVjdChzdHJ1Y3QgZHJtX2JyaWRnZSAq
YnJpZGdlLCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmUKPj4+ICAgICAgICAgICBzdHJ1Y3Qg
YW5hbG9naXhfZHBfZGV2aWNlICpkcCA9IHRvX2RwKGJyaWRnZSk7Cj4+PiAgICAgICAgICAgZW51
bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5l
Y3RlZDsKPj4+ICAgIAo+Pj4gK3ByaW50aygiLS0tPiAlcyBhXG4iLCBfX2Z1bmNfXyk7Cj4+PiAg
ICAgICAgICAgaWYgKGRwLT5wbGF0X2RhdGEtPm5leHRfYnJpZGdlKQo+Pj4gICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwo+Pj4gK3ByaW50aygiLS0t
PiAlcyBiXG4iLCBfX2Z1bmNfXyk7Cj4+PiAgICAKPj4+ICAgICAgICAgICBpZiAoIWFuYWxvZ2l4
X2RwX2RldGVjdF9ocGQoZHApKQo+Pj4gICAgICAgICAgICAgICAgICAgc3RhdHVzID0gY29ubmVj
dG9yX3N0YXR1c19jb25uZWN0ZWQ7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Jy
aWRnZS9kaXNwbGF5LWNvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9kaXNwbGF5
LWNvbm5lY3Rvci5jCj4+PiBpbmRleCAxNmMwNjMxYWRlYjE4Li5iMGMwNzY5NGI4MmUzIDEwMDY0
NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9kaXNwbGF5LWNvbm5lY3Rvci5jCj4+
PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Rpc3BsYXktY29ubmVjdG9yLmMKPj4+IEBA
IC00NSw2ICs0NSw3IEBAIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIGRpc3BsYXlf
Y29ubmVjdG9yX2RldGVjdChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpCj4+PiAgICAgICAgICAgc3Ry
dWN0IGRpc3BsYXlfY29ubmVjdG9yICpjb25uID0gdG9fZGlzcGxheV9jb25uZWN0b3IoYnJpZGdl
KTsKPj4+ICAgIAo+Pj4gICAgICAgICAgIGlmIChjb25uLT5ocGRfZ3Bpbykgewo+Pj4gK3ByaW50
aygiLS0tPiAlcyBncGlvIHZhbHVlIGlzICVkXG4iLCBfX2Z1bmNfXywgZ3Bpb2RfZ2V0X3ZhbHVl
X2NhbnNsZWVwKGNvbm4tPmhwZF9ncGlvKSk7Cj4+PiAgICAgICAgICAgICAgICAgICBpZiAoZ3Bp
b2RfZ2V0X3ZhbHVlX2NhbnNsZWVwKGNvbm4tPmhwZF9ncGlvKSkKPj4+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwo+Pj4gICAgICAg
ICAgICAgICAgICAgZWxzZQo+Pj4gQEAgLTg0LDYgKzg1LDcgQEAgc3RhdGljIGVudW0gZHJtX2Nv
bm5lY3Rvcl9zdGF0dXMgZGlzcGxheV9jb25uZWN0b3JfZGV0ZWN0KHN0cnVjdCBkcm1fYnJpZGdl
ICpicmkKPj4+ICAgIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCj4+PiAgICBkaXNw
bGF5X2Nvbm5lY3Rvcl9icmlkZ2VfZGV0ZWN0KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsIHN0
cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4+PiAgICB7Cj4+PiArcHJpbnRrKCItLS0+
ICVzXG4iLCBfX2Z1bmNfXyk7Cj4+PiAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlfY29ubmVjdG9y
X2RldGVjdChicmlkZ2UpOwo+Pj4gICAgfQo+Pj4gICAgCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy
cy9ncHUvZHJtL2Rpc3BsYXkvZHJtX2JyaWRnZV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2Ry
bS9kaXNwbGF5L2RybV9icmlkZ2VfY29ubmVjdG9yLmMKPj4+IGluZGV4IDY0OTk2OWZjYTE0MTMu
Ljg4MTZkODM3YzlhNzcgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZGlzcGxheS9k
cm1fYnJpZGdlX2Nvbm5lY3Rvci5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZGlzcGxheS9k
cm1fYnJpZGdlX2Nvbm5lY3Rvci5jCj4+PiBAQCAtMjE4LDYgKzIxOCw3IEBAIGRybV9icmlkZ2Vf
Y29ubmVjdG9yX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZv
cmNlKQo+Pj4gICAgICAgICAgIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzOwo+Pj4g
ICAgCj4+PiAgICAgICAgICAgaWYgKGRldGVjdCkgewo+Pj4gK3ByaW50aygiLS0tPiAlczogZGV0
ZWN0XG4iLCBfX2Z1bmNfXyk7Cj4+PiAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBkZXRlY3Qt
PmZ1bmNzLT5kZXRlY3QoZGV0ZWN0LCBjb25uZWN0b3IpOwo+Pj4gICAgCj4+PiAgICAgICAgICAg
ICAgICAgICBpZiAoaGRtaSkKPj4+Cj4+Pgo+Pj4KPj4+Cj4+Pgo+Pgo+Pgo+IAo+IAo+IAo+IAo+
IAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxp
bnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQu
b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9j
a2NoaXAK