Re: [PATCH v2 015/110] nilfs2: use PRIino format for i_ino

Viacheslav Dubeyko <[email protected]> Mon, 2 Mar 2026 22:34:45 +0000
Newsgroups org.kernel.vger.autofs,dev.linux.lists.fsverity,dev.linux.lists.netfs,dev.linux.lists.ntfs3,dev.linux.lists.nvdimm,dev.linux.lists.ocfs2-devel,dev.linux.lists.v9fs,net.sourceforge.lists.linux-f2fs-devel,org.freedesktop.lists.amd-gfx,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-mtd,org.kernel.vger.audit,org.kernel.vger.bpf,org.kernel.vger.ceph-devel,org.kernel.vger.ecryptfs,org.kernel.vger.linux-bluetooth,org.kernel.vger.linux-can,org.kernel.vger.linux-cifs,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fscrypt,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-hams,org.kernel.vger.linux-integrity,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media,org.kernel.vger.linux-nfs,org.kernel.vger.linux-nilfs,org.kernel.vger.linux-perf-users,org.kernel.vger.linux-sctp,org.kernel.vger.linux-security-module,org.kernel.vger.linux-trace-kernel,org.kernel.vger.linux-unionfs,org.kernel.vger.linux-x25,org.kernel.vger.linux-xfs,org.kernel.vger.netdev,org.kernel.vger.selinux,org.kvack.linux-mm
Message-ID <[email protected]>
T24gTW9uLCAyMDI2LTAzLTAyIGF0IDE1OjIzIC0wNTAwLCBKZWZmIExheXRvbiB3cm90ZToNCj4g
Q29udmVydCBuaWxmczIgaV9pbm8gZm9ybWF0IHN0cmluZ3MgdG8gdXNlIHRoZSBQUklpbm8gZm9y
bWF0DQo+IG1hY3JvIGluIHByZXBhcmF0aW9uIGZvciB0aGUgd2lkZW5pbmcgb2YgaV9pbm8gdmlh
IGtpbm9fdC4NCj4gDQo+IEluIHRyYWNlIGV2ZW50cywgY2hhbmdlIF9fZmllbGQoaW5vX3QsIC4u
LikgdG8gX19maWVsZCh1NjQsIC4uLikNCj4gYW5kIHVwZGF0ZSBUUF9wcmludGsgZm9ybWF0IHN0
cmluZ3MgdG8gJWxsdS8lbGx4IHRvIG1hdGNoIHRoZQ0KPiB3aWRlbmVkIGZpZWxkIHR5cGUuDQo+
IA0KPiBTaWduZWQtb2ZmLWJ5OiBKZWZmIExheXRvbiA8amxheXRvbkBrZXJuZWwub3JnPg0KPiAt
LS0NCj4gIGZzL25pbGZzMi9hbGxvYy5jICAgICAgICAgICAgIHwgMTAgKysrKystLS0tLQ0KPiAg
ZnMvbmlsZnMyL2JtYXAuYyAgICAgICAgICAgICAgfCAgMiArLQ0KPiAgZnMvbmlsZnMyL2J0bm9k
ZS5jICAgICAgICAgICAgfCAgMiArLQ0KPiAgZnMvbmlsZnMyL2J0cmVlLmMgICAgICAgICAgICAg
fCAxMiArKysrKystLS0tLS0NCj4gIGZzL25pbGZzMi9kaXIuYyAgICAgICAgICAgICAgIHwgMTIg
KysrKysrLS0tLS0tDQo+ICBmcy9uaWxmczIvZGlyZWN0LmMgICAgICAgICAgICB8ICA0ICsrLS0N
Cj4gIGZzL25pbGZzMi9nY2lub2RlLmMgICAgICAgICAgIHwgIDIgKy0NCj4gIGZzL25pbGZzMi9p
bm9kZS5jICAgICAgICAgICAgIHwgIDggKysrKy0tLS0NCj4gIGZzL25pbGZzMi9tZHQuYyAgICAg
ICAgICAgICAgIHwgIDIgKy0NCj4gIGZzL25pbGZzMi9uYW1laS5jICAgICAgICAgICAgIHwgIDIg
Ky0NCj4gIGZzL25pbGZzMi9zZWdtZW50LmMgICAgICAgICAgIHwgIDIgKy0NCj4gIGluY2x1ZGUv
dHJhY2UvZXZlbnRzL25pbGZzMi5oIHwgMTIgKysrKysrLS0tLS0tDQo+ICAxMiBmaWxlcyBjaGFu
Z2VkLCAzNSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQg
YS9mcy9uaWxmczIvYWxsb2MuYyBiL2ZzL25pbGZzMi9hbGxvYy5jDQo+IGluZGV4IGU3ZWViYjA0
ZjlhNDA4MGEzOWYxN2Q0MTIzZTU4ZWQ3ZGY2YjJmNGIuLmEzYzU1OWM4NmU1YTRjNjNiMWM5ZGQ0
Y2ExMzdmMjQ3NDljM2VlODcgMTAwNjQ0DQo+IC0tLSBhL2ZzL25pbGZzMi9hbGxvYy5jDQo+ICsr
KyBiL2ZzL25pbGZzMi9hbGxvYy5jDQo+IEBAIC03MDcsNyArNzA3LDcgQEAgdm9pZCBuaWxmc19w
YWxsb2NfY29tbWl0X2ZyZWVfZW50cnkoc3RydWN0IGlub2RlICppbm9kZSwNCj4gIA0KPiAgCWlm
ICghbmlsZnNfY2xlYXJfYml0X2F0b21pYyhsb2NrLCBncm91cF9vZmZzZXQsIGJpdG1hcCkpDQo+
ICAJCW5pbGZzX3dhcm4oaW5vZGUtPmlfc2IsDQo+IC0JCQkgICAiJXMgKGlubz0lbHUpOiBlbnRy
eSBudW1iZXIgJWxsdSBhbHJlYWR5IGZyZWVkIiwNCj4gKwkJCSAgICIlcyAoaW5vPSUiIFBSSWlu
byAidSk6IGVudHJ5IG51bWJlciAlbGx1IGFscmVhZHkgZnJlZWQiLA0KPiAgCQkJICAgX19mdW5j
X18sIGlub2RlLT5pX2lubywNCj4gIAkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpcmVxLT5wcl9l
bnRyeV9ucik7DQo+ICAJZWxzZQ0KPiBAQCAtNzQ4LDcgKzc0OCw3IEBAIHZvaWQgbmlsZnNfcGFs
bG9jX2Fib3J0X2FsbG9jX2VudHJ5KHN0cnVjdCBpbm9kZSAqaW5vZGUsDQo+ICANCj4gIAlpZiAo
IW5pbGZzX2NsZWFyX2JpdF9hdG9taWMobG9jaywgZ3JvdXBfb2Zmc2V0LCBiaXRtYXApKQ0KPiAg
CQluaWxmc193YXJuKGlub2RlLT5pX3NiLA0KPiAtCQkJICAgIiVzIChpbm89JWx1KTogZW50cnkg
bnVtYmVyICVsbHUgYWxyZWFkeSBmcmVlZCIsDQo+ICsJCQkgICAiJXMgKGlubz0lIiBQUklpbm8g
InUpOiBlbnRyeSBudW1iZXIgJWxsdSBhbHJlYWR5IGZyZWVkIiwNCj4gIAkJCSAgIF9fZnVuY19f
LCBpbm9kZS0+aV9pbm8sDQo+ICAJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKXJlcS0+cHJfZW50
cnlfbnIpOw0KPiAgCWVsc2UNCj4gQEAgLTg2MSw3ICs4NjEsNyBAQCBpbnQgbmlsZnNfcGFsbG9j
X2ZyZWV2KHN0cnVjdCBpbm9kZSAqaW5vZGUsIF9fdTY0ICplbnRyeV9ucnMsIHNpemVfdCBuaXRl
bXMpDQo+ICAJCQlpZiAoIW5pbGZzX2NsZWFyX2JpdF9hdG9taWMobG9jaywgZ3JvdXBfb2Zmc2V0
LA0KPiAgCQkJCQkJICAgIGJpdG1hcCkpIHsNCj4gIAkJCQluaWxmc193YXJuKGlub2RlLT5pX3Ni
LA0KPiAtCQkJCQkgICAiJXMgKGlubz0lbHUpOiBlbnRyeSBudW1iZXIgJWxsdSBhbHJlYWR5IGZy
ZWVkIiwNCj4gKwkJCQkJICAgIiVzIChpbm89JSIgUFJJaW5vICJ1KTogZW50cnkgbnVtYmVyICVs
bHUgYWxyZWFkeSBmcmVlZCIsDQo+ICAJCQkJCSAgIF9fZnVuY19fLCBpbm9kZS0+aV9pbm8sDQo+
ICAJCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpZW50cnlfbnJzW2pdKTsNCj4gIAkJCX0gZWxz
ZSB7DQo+IEBAIC05MDYsNyArOTA2LDcgQEAgaW50IG5pbGZzX3BhbGxvY19mcmVldihzdHJ1Y3Qg
aW5vZGUgKmlub2RlLCBfX3U2NCAqZW50cnlfbnJzLCBzaXplX3Qgbml0ZW1zKQ0KPiAgCQkJCQkJ
CSAgICAgIGxhc3RfbnJzW2tdKTsNCj4gIAkJCWlmIChyZXQgJiYgcmV0ICE9IC1FTk9FTlQpDQo+
ICAJCQkJbmlsZnNfd2Fybihpbm9kZS0+aV9zYiwNCj4gLQkJCQkJICAgImVycm9yICVkIGRlbGV0
aW5nIGJsb2NrIHRoYXQgb2JqZWN0IChlbnRyeT0lbGx1LCBpbm89JWx1KSBiZWxvbmdzIHRvIiwN
Cj4gKwkJCQkJICAgImVycm9yICVkIGRlbGV0aW5nIGJsb2NrIHRoYXQgb2JqZWN0IChlbnRyeT0l
bGx1LCBpbm89JSIgUFJJaW5vICJ1KSBiZWxvbmdzIHRvIiwNCj4gIAkJCQkJICAgcmV0LCAodW5z
aWduZWQgbG9uZyBsb25nKWxhc3RfbnJzW2tdLA0KPiAgCQkJCQkgICBpbm9kZS0+aV9pbm8pOw0K
PiAgCQl9DQo+IEBAIC05MjMsNyArOTIzLDcgQEAgaW50IG5pbGZzX3BhbGxvY19mcmVldihzdHJ1
Y3QgaW5vZGUgKmlub2RlLCBfX3U2NCAqZW50cnlfbnJzLCBzaXplX3Qgbml0ZW1zKQ0KPiAgCQkJ
cmV0ID0gbmlsZnNfcGFsbG9jX2RlbGV0ZV9iaXRtYXBfYmxvY2soaW5vZGUsIGdyb3VwKTsNCj4g
IAkJCWlmIChyZXQgJiYgcmV0ICE9IC1FTk9FTlQpDQo+ICAJCQkJbmlsZnNfd2Fybihpbm9kZS0+
aV9zYiwNCj4gLQkJCQkJICAgImVycm9yICVkIGRlbGV0aW5nIGJpdG1hcCBibG9jayBvZiBncm91
cD0lbHUsIGlubz0lbHUiLA0KPiArCQkJCQkgICAiZXJyb3IgJWQgZGVsZXRpbmcgYml0bWFwIGJs
b2NrIG9mIGdyb3VwPSVsdSwgaW5vPSUiIFBSSWlubyAidSIsDQo+ICAJCQkJCSAgIHJldCwgZ3Jv
dXAsIGlub2RlLT5pX2lubyk7DQo+ICAJCX0NCj4gIAl9DQo+IGRpZmYgLS1naXQgYS9mcy9uaWxm
czIvYm1hcC5jIGIvZnMvbmlsZnMyL2JtYXAuYw0KPiBpbmRleCBjY2MxYTdhYTUyZDIwNjRkNTZi
ODI2MDU4NTU0MjY0YzQ5OGQ1OTJmLi5lMTI5NzliYWMzYzNlZTVlYjdmY2MyYmYxNTZmZTZlNDhm
YzY1YTdkIDEwMDY0NA0KPiAtLS0gYS9mcy9uaWxmczIvYm1hcC5jDQo+ICsrKyBiL2ZzL25pbGZz
Mi9ibWFwLmMNCj4gQEAgLTMzLDcgKzMzLDcgQEAgc3RhdGljIGludCBuaWxmc19ibWFwX2NvbnZl
cnRfZXJyb3Ioc3RydWN0IG5pbGZzX2JtYXAgKmJtYXAsDQo+ICANCj4gIAlpZiAoZXJyID09IC1F
SU5WQUwpIHsNCj4gIAkJX19uaWxmc19lcnJvcihpbm9kZS0+aV9zYiwgZm5hbWUsDQo+IC0JCQkg
ICAgICAiYnJva2VuIGJtYXAgKGlub2RlIG51bWJlcj0lbHUpIiwgaW5vZGUtPmlfaW5vKTsNCj4g
KwkJCSAgICAgICJicm9rZW4gYm1hcCAoaW5vZGUgbnVtYmVyPSUiIFBSSWlubyAidSkiLCBpbm9k
ZS0+aV9pbm8pOw0KPiAgCQllcnIgPSAtRUlPOw0KPiAgCX0NCj4gIAlyZXR1cm4gZXJyOw0KPiBk
aWZmIC0tZ2l0IGEvZnMvbmlsZnMyL2J0bm9kZS5jIGIvZnMvbmlsZnMyL2J0bm9kZS5jDQo+IGlu
ZGV4IDU2ODM2NzEyOTA5MjAxNzc1OTA3NDgzODg3ZThhMDAyMjg1MWJiZWMuLjNkNjRmM2E5MjIz
ZTU2MDFkYzIzMzJhZTZlMTAwN2VkZDViNDgyN2IgMTAwNjQ0DQo+IC0tLSBhL2ZzL25pbGZzMi9i
dG5vZGUuYw0KPiArKysgYi9mcy9uaWxmczIvYnRub2RlLmMNCj4gQEAgLTY0LDcgKzY0LDcgQEAg
bmlsZnNfYnRub2RlX2NyZWF0ZV9ibG9jayhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqYnRuYywgX191
NjQgYmxvY2tucikNCj4gIAkJICogY2xlYXJpbmcgb2YgYW4gYWJhbmRvbmVkIGItdHJlZSBub2Rl
IGlzIG1pc3Npbmcgc29tZXdoZXJlKS4NCj4gIAkJICovDQo+ICAJCW5pbGZzX2Vycm9yKGlub2Rl
LT5pX3NiLA0KPiAtCQkJICAgICJzdGF0ZSBpbmNvbnNpc3RlbmN5IHByb2JhYmx5IGR1ZSB0byBk
dXBsaWNhdGUgdXNlIG9mIGItdHJlZSBub2RlIGJsb2NrIGFkZHJlc3MgJWxsdSAoaW5vPSVsdSki
LA0KPiArCQkJICAgICJzdGF0ZSBpbmNvbnNpc3RlbmN5IHByb2JhYmx5IGR1ZSB0byBkdXBsaWNh
dGUgdXNlIG9mIGItdHJlZSBub2RlIGJsb2NrIGFkZHJlc3MgJWxsdSAoaW5vPSUiIFBSSWlubyAi
dSkiLA0KPiAgCQkJICAgICh1bnNpZ25lZCBsb25nIGxvbmcpYmxvY2tuciwgaW5vZGUtPmlfaW5v
KTsNCj4gIAkJZ290byBmYWlsZWQ7DQo+ICAJfQ0KPiBkaWZmIC0tZ2l0IGEvZnMvbmlsZnMyL2J0
cmVlLmMgYi9mcy9uaWxmczIvYnRyZWUuYw0KPiBpbmRleCBkZDBjOGU1NjBlZjZhMmM5NjUxNTAy
NTMyMTkxNGUwZDczZjQxMTQ0Li41NzE2M2U5OTFmYmM0OWUyYmZiYTJmYTU0M2YxYjhkYmQ3Nzcx
OGY0IDEwMDY0NA0KPiAtLS0gYS9mcy9uaWxmczIvYnRyZWUuYw0KPiArKysgYi9mcy9uaWxmczIv
YnRyZWUuYw0KPiBAQCAtMzUzLDcgKzM1Myw3IEBAIHN0YXRpYyBpbnQgbmlsZnNfYnRyZWVfbm9k
ZV9icm9rZW4oY29uc3Qgc3RydWN0IG5pbGZzX2J0cmVlX25vZGUgKm5vZGUsDQo+ICAJCSAgICAg
bmNoaWxkcmVuIDw9IDAgfHwNCj4gIAkJICAgICBuY2hpbGRyZW4gPiBOSUxGU19CVFJFRV9OT0RF
X05DSElMRFJFTl9NQVgoc2l6ZSkpKSB7DQo+ICAJCW5pbGZzX2NyaXQoaW5vZGUtPmlfc2IsDQo+
IC0JCQkgICAiYmFkIGJ0cmVlIG5vZGUgKGlubz0lbHUsIGJsb2NrbnI9JWxsdSk6IGxldmVsID0g
JWQsIGZsYWdzID0gMHgleCwgbmNoaWxkcmVuID0gJWQiLA0KPiArCQkJICAgImJhZCBidHJlZSBu
b2RlIChpbm89JSIgUFJJaW5vICJ1LCBibG9ja25yPSVsbHUpOiBsZXZlbCA9ICVkLCBmbGFncyA9
IDB4JXgsIG5jaGlsZHJlbiA9ICVkIiwNCj4gIAkJCSAgIGlub2RlLT5pX2lubywgKHVuc2lnbmVk
IGxvbmcgbG9uZylibG9ja25yLCBsZXZlbCwNCj4gIAkJCSAgIGZsYWdzLCBuY2hpbGRyZW4pOw0K
PiAgCQlyZXQgPSAxOw0KPiBAQCAtMzg0LDcgKzM4NCw3IEBAIHN0YXRpYyBpbnQgbmlsZnNfYnRy
ZWVfcm9vdF9icm9rZW4oY29uc3Qgc3RydWN0IG5pbGZzX2J0cmVlX25vZGUgKm5vZGUsDQo+ICAJ
CSAgICAgbmNoaWxkcmVuID4gTklMRlNfQlRSRUVfUk9PVF9OQ0hJTERSRU5fTUFYIHx8DQo+ICAJ
CSAgICAgKG5jaGlsZHJlbiA9PSAwICYmIGxldmVsID4gTklMRlNfQlRSRUVfTEVWRUxfTk9ERV9N
SU4pKSkgew0KPiAgCQluaWxmc19jcml0KGlub2RlLT5pX3NiLA0KPiAtCQkJICAgImJhZCBidHJl
ZSByb290IChpbm89JWx1KTogbGV2ZWwgPSAlZCwgZmxhZ3MgPSAweCV4LCBuY2hpbGRyZW4gPSAl
ZCIsDQo+ICsJCQkgICAiYmFkIGJ0cmVlIHJvb3QgKGlubz0lIiBQUklpbm8gInUpOiBsZXZlbCA9
ICVkLCBmbGFncyA9IDB4JXgsIG5jaGlsZHJlbiA9ICVkIiwNCj4gIAkJCSAgIGlub2RlLT5pX2lu
bywgbGV2ZWwsIGZsYWdzLCBuY2hpbGRyZW4pOw0KPiAgCQlyZXQgPSAxOw0KPiAgCX0NCj4gQEAg
LTQ1Myw3ICs0NTMsNyBAQCBzdGF0aWMgaW50IG5pbGZzX2J0cmVlX2JhZF9ub2RlKGNvbnN0IHN0
cnVjdCBuaWxmc19ibWFwICpidHJlZSwNCj4gIAlpZiAodW5saWtlbHkobmlsZnNfYnRyZWVfbm9k
ZV9nZXRfbGV2ZWwobm9kZSkgIT0gbGV2ZWwpKSB7DQo+ICAJCWR1bXBfc3RhY2soKTsNCj4gIAkJ
bmlsZnNfY3JpdChidHJlZS0+Yl9pbm9kZS0+aV9zYiwNCj4gLQkJCSAgICJidHJlZSBsZXZlbCBt
aXNtYXRjaCAoaW5vPSVsdSk6ICVkICE9ICVkIiwNCj4gKwkJCSAgICJidHJlZSBsZXZlbCBtaXNt
YXRjaCAoaW5vPSUiIFBSSWlubyAidSk6ICVkICE9ICVkIiwNCj4gIAkJCSAgIGJ0cmVlLT5iX2lu
b2RlLT5pX2lubywNCj4gIAkJCSAgIG5pbGZzX2J0cmVlX25vZGVfZ2V0X2xldmVsKG5vZGUpLCBs
ZXZlbCk7DQo+ICAJCXJldHVybiAxOw0KPiBAQCAtNTIxLDcgKzUyMSw3IEBAIHN0YXRpYyBpbnQg
X19uaWxmc19idHJlZV9nZXRfYmxvY2soY29uc3Qgc3RydWN0IG5pbGZzX2JtYXAgKmJ0cmVlLCBf
X3U2NCBwdHIsDQo+ICAgb3V0X25vX3dhaXQ6DQo+ICAJaWYgKCFidWZmZXJfdXB0b2RhdGUoYmgp
KSB7DQo+ICAJCW5pbGZzX2VycihidHJlZS0+Yl9pbm9kZS0+aV9zYiwNCj4gLQkJCSAgIkkvTyBl
cnJvciByZWFkaW5nIGItdHJlZSBub2RlIGJsb2NrIChpbm89JWx1LCBibG9ja25yPSVsbHUpIiwN
Cj4gKwkJCSAgIkkvTyBlcnJvciByZWFkaW5nIGItdHJlZSBub2RlIGJsb2NrIChpbm89JSIgUFJJ
aW5vICJ1LCBibG9ja25yPSVsbHUpIiwNCj4gIAkJCSAgYnRyZWUtPmJfaW5vZGUtPmlfaW5vLCAo
dW5zaWduZWQgbG9uZyBsb25nKXB0cik7DQo+ICAJCWJyZWxzZShiaCk7DQo+ICAJCXJldHVybiAt
RUlPOw0KPiBAQCAtMjEwNCw3ICsyMTA0LDcgQEAgc3RhdGljIGludCBuaWxmc19idHJlZV9wcm9w
YWdhdGUoc3RydWN0IG5pbGZzX2JtYXAgKmJ0cmVlLA0KPiAgCWlmIChyZXQgPCAwKSB7DQo+ICAJ
CWlmICh1bmxpa2VseShyZXQgPT0gLUVOT0VOVCkpIHsNCj4gIAkJCW5pbGZzX2NyaXQoYnRyZWUt
PmJfaW5vZGUtPmlfc2IsDQo+IC0JCQkJICAgIndyaXRpbmcgbm9kZS9sZWFmIGJsb2NrIGRvZXMg
bm90IGFwcGVhciBpbiBiLXRyZWUgKGlubz0lbHUpIGF0IGtleT0lbGx1LCBsZXZlbD0lZCIsDQo+
ICsJCQkJICAgIndyaXRpbmcgbm9kZS9sZWFmIGJsb2NrIGRvZXMgbm90IGFwcGVhciBpbiBiLXRy
ZWUgKGlubz0lIiBQUklpbm8gInUpIGF0IGtleT0lbGx1LCBsZXZlbD0lZCIsDQo+ICAJCQkJICAg
YnRyZWUtPmJfaW5vZGUtPmlfaW5vLA0KPiAgCQkJCSAgICh1bnNpZ25lZCBsb25nIGxvbmcpa2V5
LCBsZXZlbCk7DQo+ICAJCQlyZXQgPSAtRUlOVkFMOw0KPiBAQCAtMjE0Niw3ICsyMTQ2LDcgQEAg
c3RhdGljIHZvaWQgbmlsZnNfYnRyZWVfYWRkX2RpcnR5X2J1ZmZlcihzdHJ1Y3QgbmlsZnNfYm1h
cCAqYnRyZWUsDQo+ICAJICAgIGxldmVsID49IE5JTEZTX0JUUkVFX0xFVkVMX01BWCkgew0KPiAg
CQlkdW1wX3N0YWNrKCk7DQo+ICAJCW5pbGZzX3dhcm4oYnRyZWUtPmJfaW5vZGUtPmlfc2IsDQo+
IC0JCQkgICAiaW52YWxpZCBidHJlZSBsZXZlbDogJWQgKGtleT0lbGx1LCBpbm89JWx1LCBibG9j
a25yPSVsbHUpIiwNCj4gKwkJCSAgICJpbnZhbGlkIGJ0cmVlIGxldmVsOiAlZCAoa2V5PSVsbHUs
IGlubz0lIiBQUklpbm8gInUsIGJsb2NrbnI9JWxsdSkiLA0KPiAgCQkJICAgbGV2ZWwsICh1bnNp
Z25lZCBsb25nIGxvbmcpa2V5LA0KPiAgCQkJICAgYnRyZWUtPmJfaW5vZGUtPmlfaW5vLA0KPiAg
CQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZyliaC0+Yl9ibG9ja25yKTsNCj4gZGlmZiAtLWdpdCBh
L2ZzL25pbGZzMi9kaXIuYyBiL2ZzL25pbGZzMi9kaXIuYw0KPiBpbmRleCBiMjQzMTk5MDM2ZGZh
MWFiMjI5OWVmYWFhNWJkZjVkYTJkMTU5ZmYyLi5iMTgyZGEwNzZjNThjNDgxMzE0NWJjM2U1MDFh
MWU5YTE4OGJjZTg1IDEwMDY0NA0KPiAtLS0gYS9mcy9uaWxmczIvZGlyLmMNCj4gKysrIGIvZnMv
bmlsZnMyL2Rpci5jDQo+IEBAIC0xNTAsNyArMTUwLDcgQEAgc3RhdGljIGJvb2wgbmlsZnNfY2hl
Y2tfZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbywgY2hhciAqa2FkZHIpDQo+ICANCj4gIEViYWRz
aXplOg0KPiAgCW5pbGZzX2Vycm9yKHNiLA0KPiAtCQkgICAgInNpemUgb2YgZGlyZWN0b3J5ICMl
bHUgaXMgbm90IGEgbXVsdGlwbGUgb2YgY2h1bmsgc2l6ZSIsDQo+ICsJCSAgICAic2l6ZSBvZiBk
aXJlY3RvcnkgIyUiIFBSSWlubyAidSBpcyBub3QgYSBtdWx0aXBsZSBvZiBjaHVuayBzaXplIiwN
Cj4gIAkJICAgIGRpci0+aV9pbm8pOw0KPiAgCWdvdG8gZmFpbDsNCj4gIEVzaG9ydDoNCj4gQEAg
LTE2OSw3ICsxNjksNyBAQCBzdGF0aWMgYm9vbCBuaWxmc19jaGVja19mb2xpbyhzdHJ1Y3QgZm9s
aW8gKmZvbGlvLCBjaGFyICprYWRkcikNCj4gIAllcnJvciA9ICJkaXNhbGxvd2VkIGlub2RlIG51
bWJlciI7DQo+ICBiYWRfZW50cnk6DQo+ICAJbmlsZnNfZXJyb3Ioc2IsDQo+IC0JCSAgICAiYmFk
IGVudHJ5IGluIGRpcmVjdG9yeSAjJWx1OiAlcyAtIG9mZnNldD0lbHUsIGlub2RlPSVsdSwgcmVj
X2xlbj0lemQsIG5hbWVfbGVuPSVkIiwNCj4gKwkJICAgICJiYWQgZW50cnkgaW4gZGlyZWN0b3J5
ICMlIiBQUklpbm8gInU6ICVzIC0gb2Zmc2V0PSVsdSwgaW5vZGU9JWx1LCByZWNfbGVuPSV6ZCwg
bmFtZV9sZW49JWQiLA0KPiAgCQkgICAgZGlyLT5pX2lubywgZXJyb3IsIChmb2xpby0+aW5kZXgg
PDwgUEFHRV9TSElGVCkgKyBvZmZzLA0KPiAgCQkgICAgKHVuc2lnbmVkIGxvbmcpbGU2NF90b19j
cHUocC0+aW5vZGUpLA0KPiAgCQkgICAgcmVjX2xlbiwgcC0+bmFtZV9sZW4pOw0KPiBAQCAtMTc3
LDcgKzE3Nyw3IEBAIHN0YXRpYyBib29sIG5pbGZzX2NoZWNrX2ZvbGlvKHN0cnVjdCBmb2xpbyAq
Zm9saW8sIGNoYXIgKmthZGRyKQ0KPiAgRWVuZDoNCj4gIAlwID0gKHN0cnVjdCBuaWxmc19kaXJf
ZW50cnkgKikoa2FkZHIgKyBvZmZzKTsNCj4gIAluaWxmc19lcnJvcihzYiwNCj4gLQkJICAgICJl
bnRyeSBpbiBkaXJlY3RvcnkgIyVsdSBzcGFucyB0aGUgcGFnZSBib3VuZGFyeSBvZmZzZXQ9JWx1
LCBpbm9kZT0lbHUiLA0KPiArCQkgICAgImVudHJ5IGluIGRpcmVjdG9yeSAjJSIgUFJJaW5vICJ1
IHNwYW5zIHRoZSBwYWdlIGJvdW5kYXJ5IG9mZnNldD0lbHUsIGlub2RlPSVsdSIsDQo+ICAJCSAg
ICBkaXItPmlfaW5vLCAoZm9saW8tPmluZGV4IDw8IFBBR0VfU0hJRlQpICsgb2ZmcywNCj4gIAkJ
ICAgICh1bnNpZ25lZCBsb25nKWxlNjRfdG9fY3B1KHAtPmlub2RlKSk7DQo+ICBmYWlsOg0KPiBA
QCAtMjUxLDcgKzI1MSw3IEBAIHN0YXRpYyBpbnQgbmlsZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAq
ZmlsZSwgc3RydWN0IGRpcl9jb250ZXh0ICpjdHgpDQo+ICANCj4gIAkJa2FkZHIgPSBuaWxmc19n
ZXRfZm9saW8oaW5vZGUsIG4sICZmb2xpbyk7DQo+ICAJCWlmIChJU19FUlIoa2FkZHIpKSB7DQo+
IC0JCQluaWxmc19lcnJvcihzYiwgImJhZCBwYWdlIGluICMlbHUiLCBpbm9kZS0+aV9pbm8pOw0K
PiArCQkJbmlsZnNfZXJyb3Ioc2IsICJiYWQgcGFnZSBpbiAjJSIgUFJJaW5vICJ1IiwgaW5vZGUt
PmlfaW5vKTsNCj4gIAkJCWN0eC0+cG9zICs9IFBBR0VfU0laRSAtIG9mZnNldDsNCj4gIAkJCXJl
dHVybiAtRUlPOw0KPiAgCQl9DQo+IEBAIC0zMzYsNyArMzM2LDcgQEAgc3RydWN0IG5pbGZzX2Rp
cl9lbnRyeSAqbmlsZnNfZmluZF9lbnRyeShzdHJ1Y3QgaW5vZGUgKmRpciwNCj4gIAkJLyogbmV4
dCBmb2xpbyBpcyBwYXN0IHRoZSBibG9ja3Mgd2UndmUgZ290ICovDQo+ICAJCWlmICh1bmxpa2Vs
eShuID4gKGRpci0+aV9ibG9ja3MgPj4gKFBBR0VfU0hJRlQgLSA5KSkpKSB7DQo+ICAJCQluaWxm
c19lcnJvcihkaXItPmlfc2IsDQo+IC0JCQkgICAgICAgImRpciAlbHUgc2l6ZSAlbGxkIGV4Y2Vl
ZHMgYmxvY2sgY291bnQgJWxsdSIsDQo+ICsJCQkgICAgICAgImRpciAlIiBQUklpbm8gInUgc2l6
ZSAlbGxkIGV4Y2VlZHMgYmxvY2sgY291bnQgJWxsdSIsDQo+ICAJCQkgICAgICAgZGlyLT5pX2lu
bywgZGlyLT5pX3NpemUsDQo+ICAJCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylkaXItPmlf
YmxvY2tzKTsNCj4gIAkJCWdvdG8gb3V0Ow0KPiBAQCAtMzgyLDcgKzM4Miw3IEBAIHN0cnVjdCBu
aWxmc19kaXJfZW50cnkgKm5pbGZzX2RvdGRvdChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGZv
bGlvICoqZm9saW9wKQ0KPiAgCXJldHVybiBuZXh0X2RlOw0KPiAgDQo+ICBmYWlsOg0KPiAtCW5p
bGZzX2Vycm9yKGRpci0+aV9zYiwgImRpcmVjdG9yeSAjJWx1ICVzIiwgZGlyLT5pX2lubywgbXNn
KTsNCj4gKwluaWxmc19lcnJvcihkaXItPmlfc2IsICJkaXJlY3RvcnkgIyUiIFBSSWlubyAidSAl
cyIsIGRpci0+aV9pbm8sIG1zZyk7DQo+ICAJZm9saW9fcmVsZWFzZV9rbWFwKGZvbGlvLCBkZSk7
DQo+ICAJcmV0dXJuIE5VTEw7DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9mcy9uaWxmczIvZGlyZWN0
LmMgYi9mcy9uaWxmczIvZGlyZWN0LmMNCj4gaW5kZXggMmQ4ZGM2YjM1YjU0Nzc5NDdjYTEyYTcw
Mjg4ZDNhM2NjZTg1OGFhYi4uMTA4NGQ0ZDU4NmUwNzhhYjY4MjUxNjc5NzZkZDJhNzFkNTJiYzhh
YSAxMDA2NDQNCj4gLS0tIGEvZnMvbmlsZnMyL2RpcmVjdC5jDQo+ICsrKyBiL2ZzL25pbGZzMi9k
aXJlY3QuYw0KPiBAQCAtMzM4LDcgKzMzOCw3IEBAIHN0YXRpYyBpbnQgbmlsZnNfZGlyZWN0X2Fz
c2lnbihzdHJ1Y3QgbmlsZnNfYm1hcCAqYm1hcCwNCj4gIAlrZXkgPSBuaWxmc19ibWFwX2RhdGFf
Z2V0X2tleShibWFwLCAqYmgpOw0KPiAgCWlmICh1bmxpa2VseShrZXkgPiBOSUxGU19ESVJFQ1Rf
S0VZX01BWCkpIHsNCj4gIAkJbmlsZnNfY3JpdChibWFwLT5iX2lub2RlLT5pX3NiLA0KPiAtCQkJ
ICAgIiVzIChpbm89JWx1KTogaW52YWxpZCBrZXk6ICVsbHUiLA0KPiArCQkJICAgIiVzIChpbm89
JSIgUFJJaW5vICJ1KTogaW52YWxpZCBrZXk6ICVsbHUiLA0KPiAgCQkJICAgX19mdW5jX18sDQo+
ICAJCQkgICBibWFwLT5iX2lub2RlLT5pX2lubywgKHVuc2lnbmVkIGxvbmcgbG9uZylrZXkpOw0K
PiAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gQEAgLTM0Niw3ICszNDYsNyBAQCBzdGF0aWMgaW50IG5p
bGZzX2RpcmVjdF9hc3NpZ24oc3RydWN0IG5pbGZzX2JtYXAgKmJtYXAsDQo+ICAJcHRyID0gbmls
ZnNfZGlyZWN0X2dldF9wdHIoYm1hcCwga2V5KTsNCj4gIAlpZiAodW5saWtlbHkocHRyID09IE5J
TEZTX0JNQVBfSU5WQUxJRF9QVFIpKSB7DQo+ICAJCW5pbGZzX2NyaXQoYm1hcC0+Yl9pbm9kZS0+
aV9zYiwNCj4gLQkJCSAgICIlcyAoaW5vPSVsdSk6IGludmFsaWQgcG9pbnRlcjogJWxsdSIsDQo+
ICsJCQkgICAiJXMgKGlubz0lIiBQUklpbm8gInUpOiBpbnZhbGlkIHBvaW50ZXI6ICVsbHUiLA0K
PiAgCQkJICAgX19mdW5jX18sDQo+ICAJCQkgICBibWFwLT5iX2lub2RlLT5pX2lubywgKHVuc2ln
bmVkIGxvbmcgbG9uZylwdHIpOw0KPiAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gZGlmZiAtLWdpdCBh
L2ZzL25pbGZzMi9nY2lub2RlLmMgYi9mcy9uaWxmczIvZ2Npbm9kZS5jDQo+IGluZGV4IDU2MWMy
MjA3OTljN2FlZTg3OWFkODY2ODY1ZTM3Nzc5OWM4ZWU2YmIuLjcxNDk2MmQwMTBkYTRhMjNlOWI1
ZjQwZGU4YWFhY2E4Yjk1YTc0ZGEgMTAwNjQ0DQo+IC0tLSBhL2ZzL25pbGZzMi9nY2lub2RlLmMN
Cj4gKysrIGIvZnMvbmlsZnMyL2djaW5vZGUuYw0KPiBAQCAtMTM3LDcgKzEzNyw3IEBAIGludCBu
aWxmc19nY2NhY2hlX3dhaXRfYW5kX21hcmtfZGlydHkoc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkN
Cj4gIAkJc3RydWN0IGlub2RlICppbm9kZSA9IGJoLT5iX2ZvbGlvLT5tYXBwaW5nLT5ob3N0Ow0K
PiAgDQo+ICAJCW5pbGZzX2Vycihpbm9kZS0+aV9zYiwNCj4gLQkJCSAgIkkvTyBlcnJvciByZWFk
aW5nICVzIGJsb2NrIGZvciBHQyAoaW5vPSVsdSwgdmJsb2NrbnI9JWxsdSkiLA0KPiArCQkJICAi
SS9PIGVycm9yIHJlYWRpbmcgJXMgYmxvY2sgZm9yIEdDIChpbm89JSIgUFJJaW5vICJ1LCB2Ymxv
Y2tucj0lbGx1KSIsDQo+ICAJCQkgIGJ1ZmZlcl9uaWxmc19ub2RlKGJoKSA/ICJub2RlIiA6ICJk
YXRhIiwNCj4gIAkJCSAgaW5vZGUtPmlfaW5vLCAodW5zaWduZWQgbG9uZyBsb25nKWJoLT5iX2Js
b2NrbnIpOw0KPiAgCQlyZXR1cm4gLUVJTzsNCj4gZGlmZiAtLWdpdCBhL2ZzL25pbGZzMi9pbm9k
ZS5jIGIvZnMvbmlsZnMyL2lub2RlLmMNCj4gaW5kZXggNTFiZGU0NWQ1ODY1MDlkZGEzZWYwY2I3
YzQ2ZmFjYjdmYjJjNjFkZC4uMGJjMWM1MTQxZWM1OTZiM2MzMWU3ZDE4ZTRiYTM1NDFiZjYxODQw
NiAxMDA2NDQNCj4gLS0tIGEvZnMvbmlsZnMyL2lub2RlLmMNCj4gKysrIGIvZnMvbmlsZnMyL2lu
b2RlLmMNCj4gQEAgLTEwOCw3ICsxMDgsNyBAQCBpbnQgbmlsZnNfZ2V0X2Jsb2NrKHN0cnVjdCBp
bm9kZSAqaW5vZGUsIHNlY3Rvcl90IGJsa29mZiwNCj4gIAkJCQkgKiBiZSBsb2NrZWQgaW4gdGhp
cyBjYXNlLg0KPiAgCQkJCSAqLw0KPiAgCQkJCW5pbGZzX3dhcm4oaW5vZGUtPmlfc2IsDQo+IC0J
CQkJCSAgICIlcyAoaW5vPSVsdSk6IGEgcmFjZSBjb25kaXRpb24gd2hpbGUgaW5zZXJ0aW5nIGEg
ZGF0YSBibG9jayBhdCBvZmZzZXQ9JWxsdSIsDQo+ICsJCQkJCSAgICIlcyAoaW5vPSUiIFBSSWlu
byAidSk6IGEgcmFjZSBjb25kaXRpb24gd2hpbGUgaW5zZXJ0aW5nIGEgZGF0YSBibG9jayBhdCBv
ZmZzZXQ9JWxsdSIsDQo+ICAJCQkJCSAgIF9fZnVuY19fLCBpbm9kZS0+aV9pbm8sDQo+ICAJCQkJ
CSAgICh1bnNpZ25lZCBsb25nIGxvbmcpYmxrb2ZmKTsNCj4gIAkJCQllcnIgPSAtRUFHQUlOOw0K
PiBAQCAtNzg5LDcgKzc4OSw3IEBAIHN0YXRpYyB2b2lkIG5pbGZzX3RydW5jYXRlX2JtYXAoc3Ry
dWN0IG5pbGZzX2lub2RlX2luZm8gKmlpLA0KPiAgCQlnb3RvIHJlcGVhdDsNCj4gIA0KPiAgZmFp
bGVkOg0KPiAtCW5pbGZzX3dhcm4oaWktPnZmc19pbm9kZS5pX3NiLCAiZXJyb3IgJWQgdHJ1bmNh
dGluZyBibWFwIChpbm89JWx1KSIsDQo+ICsJbmlsZnNfd2FybihpaS0+dmZzX2lub2RlLmlfc2Is
ICJlcnJvciAlZCB0cnVuY2F0aW5nIGJtYXAgKGlubz0lIiBQUklpbm8gInUpIiwNCj4gIAkJICAg
cmV0LCBpaS0+dmZzX2lub2RlLmlfaW5vKTsNCj4gIH0NCj4gIA0KPiBAQCAtMTAyNiw3ICsxMDI2
LDcgQEAgaW50IG5pbGZzX3NldF9maWxlX2RpcnR5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2ln
bmVkIGludCBucl9kaXJ0eSkNCj4gIAkJCSAqIHRoaXMgaW5vZGUuDQo+ICAJCQkgKi8NCj4gIAkJ
CW5pbGZzX3dhcm4oaW5vZGUtPmlfc2IsDQo+IC0JCQkJICAgImNhbm5vdCBzZXQgZmlsZSBkaXJ0
eSAoaW5vPSVsdSk6IHRoZSBmaWxlIGlzIGJlaW5nIGZyZWVkIiwNCj4gKwkJCQkgICAiY2Fubm90
IHNldCBmaWxlIGRpcnR5IChpbm89JSIgUFJJaW5vICJ1KTogdGhlIGZpbGUgaXMgYmVpbmcgZnJl
ZWQiLA0KPiAgCQkJCSAgIGlub2RlLT5pX2lubyk7DQo+ICAJCQlzcGluX3VubG9jaygmbmlsZnMt
Pm5zX2lub2RlX2xvY2spOw0KPiAgCQkJcmV0dXJuIC1FSU5WQUw7IC8qDQo+IEBAIC0xMDU3LDcg
KzEwNTcsNyBAQCBpbnQgX19uaWxmc19tYXJrX2lub2RlX2RpcnR5KHN0cnVjdCBpbm9kZSAqaW5v
ZGUsIGludCBmbGFncykNCj4gIAllcnIgPSBuaWxmc19sb2FkX2lub2RlX2Jsb2NrKGlub2RlLCAm
aWJoKTsNCj4gIAlpZiAodW5saWtlbHkoZXJyKSkgew0KPiAgCQluaWxmc193YXJuKGlub2RlLT5p
X3NiLA0KPiAtCQkJICAgImNhbm5vdCBtYXJrIGlub2RlIGRpcnR5IChpbm89JWx1KTogZXJyb3Ig
JWQgbG9hZGluZyBpbm9kZSBibG9jayIsDQo+ICsJCQkgICAiY2Fubm90IG1hcmsgaW5vZGUgZGly
dHkgKGlubz0lIiBQUklpbm8gInUpOiBlcnJvciAlZCBsb2FkaW5nIGlub2RlIGJsb2NrIiwNCj4g
IAkJCSAgIGlub2RlLT5pX2lubywgZXJyKTsNCj4gIAkJcmV0dXJuIGVycjsNCj4gIAl9DQo+IGRp
ZmYgLS1naXQgYS9mcy9uaWxmczIvbWR0LmMgYi9mcy9uaWxmczIvbWR0LmMNCj4gaW5kZXggOTQ2
YjBkMzUzNGE1ZjIyZjM0YWM0NGE5MWZiMTIxNTQxODgxYzU0OC4uODYyOWM3MmI2MmRiMzMyMTdk
NDc0NzEyNDg4NWI2ZjcyN2YxODJiZSAxMDA2NDQNCj4gLS0tIGEvZnMvbmlsZnMyL21kdC5jDQo+
ICsrKyBiL2ZzL25pbGZzMi9tZHQuYw0KPiBAQCAtMjAzLDcgKzIwMyw3IEBAIHN0YXRpYyBpbnQg
bmlsZnNfbWR0X3JlYWRfYmxvY2soc3RydWN0IGlub2RlICppbm9kZSwgdW5zaWduZWQgbG9uZyBi
bG9jaywNCj4gIAllcnIgPSAtRUlPOw0KPiAgCWlmICghYnVmZmVyX3VwdG9kYXRlKGZpcnN0X2Jo
KSkgew0KPiAgCQluaWxmc19lcnIoaW5vZGUtPmlfc2IsDQo+IC0JCQkgICJJL08gZXJyb3IgcmVh
ZGluZyBtZXRhLWRhdGEgZmlsZSAoaW5vPSVsdSwgYmxvY2stb2Zmc2V0PSVsdSkiLA0KPiArCQkJ
ICAiSS9PIGVycm9yIHJlYWRpbmcgbWV0YS1kYXRhIGZpbGUgKGlubz0lIiBQUklpbm8gInUsIGJs
b2NrLW9mZnNldD0lbHUpIiwNCj4gIAkJCSAgaW5vZGUtPmlfaW5vLCBibG9jayk7DQo+ICAJCWdv
dG8gZmFpbGVkX2JoOw0KPiAgCX0NCj4gZGlmZiAtLWdpdCBhL2ZzL25pbGZzMi9uYW1laS5jIGIv
ZnMvbmlsZnMyL25hbWVpLmMNCj4gaW5kZXggNDBmNGIxYTI4NzA1YjZlMGViOGYwOTc4Y2YzYWMx
OGI0M2FhMTMzMS4uMjllZGI4NGEwNjYzY2FhNGIyOWZhNDg4YzA0OTVmYzUzMzU4Y2EwMCAxMDA2
NDQNCj4gLS0tIGEvZnMvbmlsZnMyL25hbWVpLmMNCj4gKysrIGIvZnMvbmlsZnMyL25hbWVpLmMN
Cj4gQEAgLTI5Miw3ICsyOTIsNyBAQCBzdGF0aWMgaW50IG5pbGZzX2RvX3VubGluayhzdHJ1Y3Qg
aW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KPiAgDQo+ICAJaWYgKCFpbm9kZS0+
aV9ubGluaykgew0KPiAgCQluaWxmc193YXJuKGlub2RlLT5pX3NiLA0KPiAtCQkJICAgImRlbGV0
aW5nIG5vbmV4aXN0ZW50IGZpbGUgKGlubz0lbHUpLCAlZCIsDQo+ICsJCQkgICAiZGVsZXRpbmcg
bm9uZXhpc3RlbnQgZmlsZSAoaW5vPSUiIFBSSWlubyAidSksICVkIiwNCj4gIAkJCSAgIGlub2Rl
LT5pX2lubywgaW5vZGUtPmlfbmxpbmspOw0KPiAgCQlzZXRfbmxpbmsoaW5vZGUsIDEpOw0KPiAg
CX0NCj4gZGlmZiAtLWdpdCBhL2ZzL25pbGZzMi9zZWdtZW50LmMgYi9mcy9uaWxmczIvc2VnbWVu
dC5jDQo+IGluZGV4IDA5OGEzYmQxMDNlMDRjZDA5YjA2ODlmZTIwMTczODBkNzQ2NjQ0OTYuLjlh
OGJjM2ZhMzVjZTliNDQ3YWJiYzJmYjU2Y2JkMmIwY2M1Zjc2ZGUgMTAwNjQ0DQo+IC0tLSBhL2Zz
L25pbGZzMi9zZWdtZW50LmMNCj4gKysrIGIvZnMvbmlsZnMyL3NlZ21lbnQuYw0KPiBAQCAtMjAy
NCw3ICsyMDI0LDcgQEAgc3RhdGljIGludCBuaWxmc19zZWdjdG9yX2NvbGxlY3RfZGlydHlfZmls
ZXMoc3RydWN0IG5pbGZzX3NjX2luZm8gKnNjaSwNCj4gIAkJCQlpZmlsZSwgaWktPnZmc19pbm9k
ZS5pX2lubywgJmliaCk7DQo+ICAJCQlpZiAodW5saWtlbHkoZXJyKSkgew0KPiAgCQkJCW5pbGZz
X3dhcm4oc2NpLT5zY19zdXBlciwNCj4gLQkJCQkJICAgImxvZyB3cml0ZXI6IGVycm9yICVkIGdl
dHRpbmcgaW5vZGUgYmxvY2sgKGlubz0lbHUpIiwNCj4gKwkJCQkJICAgImxvZyB3cml0ZXI6IGVy
cm9yICVkIGdldHRpbmcgaW5vZGUgYmxvY2sgKGlubz0lIiBQUklpbm8gInUpIiwNCj4gIAkJCQkJ
ICAgZXJyLCBpaS0+dmZzX2lub2RlLmlfaW5vKTsNCj4gIAkJCQlyZXR1cm4gZXJyOw0KPiAgCQkJ
fQ0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS90cmFjZS9ldmVudHMvbmlsZnMyLmggYi9pbmNsdWRl
L3RyYWNlL2V2ZW50cy9uaWxmczIuaA0KPiBpbmRleCA4ODgwYzExNzMzZGQzMDdjMjIzY2M2MmVl
MzRlYmVmZjY1MGVjYjEyLi44NmEwMDExYzllZWFmMDMxY2ZhMGI3OTg3NWIyYjEwNmVmOGI3Y2Zk
IDEwMDY0NA0KPiAtLS0gYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy9uaWxmczIuaA0KPiArKysgYi9p
bmNsdWRlL3RyYWNlL2V2ZW50cy9uaWxmczIuaA0KPiBAQCAtMTY1LDE0ICsxNjUsMTQgQEAgVFJB
Q0VfRVZFTlQobmlsZnMyX3NlZ21lbnRfdXNhZ2VfZnJlZWQsDQo+ICANCj4gIFRSQUNFX0VWRU5U
KG5pbGZzMl9tZHRfaW5zZXJ0X25ld19ibG9jaywNCj4gIAkgICAgVFBfUFJPVE8oc3RydWN0IGlu
b2RlICppbm9kZSwNCj4gLQkJICAgICB1bnNpZ25lZCBsb25nIGlubywNCj4gKwkJICAgICB1NjQg
aW5vLA0KPiAgCQkgICAgIHVuc2lnbmVkIGxvbmcgYmxvY2spLA0KPiAgDQo+ICAJICAgIFRQX0FS
R1MoaW5vZGUsIGlubywgYmxvY2spLA0KPiAgDQo+ICAJICAgIFRQX1NUUlVDVF9fZW50cnkoDQo+
ICAJCSAgICBfX2ZpZWxkKHN0cnVjdCBpbm9kZSAqLCBpbm9kZSkNCj4gLQkJICAgIF9fZmllbGQo
dW5zaWduZWQgbG9uZywgaW5vKQ0KPiArCQkgICAgX19maWVsZCh1NjQsIGlubykNCj4gIAkJICAg
IF9fZmllbGQodW5zaWduZWQgbG9uZywgYmxvY2spDQo+ICAJICAgICksDQo+ICANCj4gQEAgLTE4
Miw3ICsxODIsNyBAQCBUUkFDRV9FVkVOVChuaWxmczJfbWR0X2luc2VydF9uZXdfYmxvY2ssDQo+
ICAJCSAgICBfX2VudHJ5LT5ibG9jayA9IGJsb2NrOw0KPiAgCQkgICAgKSwNCj4gIA0KPiAtCSAg
ICBUUF9wcmludGsoImlub2RlID0gJXAgaW5vID0gJWx1IGJsb2NrID0gJWx1IiwNCj4gKwkgICAg
VFBfcHJpbnRrKCJpbm9kZSA9ICVwIGlubyA9ICVsbHUgYmxvY2sgPSAlbHUiLA0KPiAgCQkgICAg
ICBfX2VudHJ5LT5pbm9kZSwNCj4gIAkJICAgICAgX19lbnRyeS0+aW5vLA0KPiAgCQkgICAgICBf
X2VudHJ5LT5ibG9jaykNCj4gQEAgLTE5MCw3ICsxOTAsNyBAQCBUUkFDRV9FVkVOVChuaWxmczJf
bWR0X2luc2VydF9uZXdfYmxvY2ssDQo+ICANCj4gIFRSQUNFX0VWRU5UKG5pbGZzMl9tZHRfc3Vi
bWl0X2Jsb2NrLA0KPiAgCSAgICBUUF9QUk9UTyhzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KPiAtCQkg
ICAgIHVuc2lnbmVkIGxvbmcgaW5vLA0KPiArCQkgICAgIHU2NCBpbm8sDQo+ICAJCSAgICAgdW5z
aWduZWQgbG9uZyBibGtvZmYsDQo+ICAJCSAgICAgZW51bSByZXFfb3AgbW9kZSksDQo+ICANCj4g
QEAgLTE5OCw3ICsxOTgsNyBAQCBUUkFDRV9FVkVOVChuaWxmczJfbWR0X3N1Ym1pdF9ibG9jaywN
Cj4gIA0KPiAgCSAgICBUUF9TVFJVQ1RfX2VudHJ5KA0KPiAgCQkgICAgX19maWVsZChzdHJ1Y3Qg
aW5vZGUgKiwgaW5vZGUpDQo+IC0JCSAgICBfX2ZpZWxkKHVuc2lnbmVkIGxvbmcsIGlubykNCj4g
KwkJICAgIF9fZmllbGQodTY0LCBpbm8pDQo+ICAJCSAgICBfX2ZpZWxkKHVuc2lnbmVkIGxvbmcs
IGJsa29mZikNCj4gIAkJICAgIC8qDQo+ICAJCSAgICAgKiBVc2UgZmllbGRfc3RydWN0KCkgdG8g
YXZvaWQgaXNfc2lnbmVkX3R5cGUoKSBvbiB0aGUNCj4gQEAgLTIxNCw3ICsyMTQsNyBAQCBUUkFD
RV9FVkVOVChuaWxmczJfbWR0X3N1Ym1pdF9ibG9jaywNCj4gIAkJICAgIF9fZW50cnktPm1vZGUg
PSBtb2RlOw0KPiAgCQkgICAgKSwNCj4gIA0KPiAtCSAgICBUUF9wcmludGsoImlub2RlID0gJXAg
aW5vID0gJWx1IGJsa29mZiA9ICVsdSBtb2RlID0gJXgiLA0KPiArCSAgICBUUF9wcmludGsoImlu
b2RlID0gJXAgaW5vID0gJWxsdSBibGtvZmYgPSAlbHUgbW9kZSA9ICV4IiwNCj4gIAkJICAgICAg
X19lbnRyeS0+aW5vZGUsDQo+ICAJCSAgICAgIF9fZW50cnktPmlubywNCj4gIAkJICAgICAgX19l
bnRyeS0+Ymxrb2ZmLA0KDQpSZXZpZXdlZC1ieTogVmlhY2hlc2xhdiBEdWJleWtvIDxzbGF2YUBk
dWJleWtvLmNvbT4NCg0KVGhhbmtzLA0KU2xhdmEuDQo=