[PATCH] WIP: port leafnode-2 to pcre2

MatÄ›j Cepl via leafnode-list <[email protected]> Wed, 26 Mar 2025 22:01:53 +0100
Newsgroups gmane.network.leafnode
Message-ID <[email protected]>
SSB0cmllZCB0byBwb3J0IHBhdGNoZXMgZnJvbQpodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wL2xl
YWZub2RlL2dpdC9jaS9jNDczOGJmM2IyOGJkY2RiZTcyNDdjZWVkZTExNTU5NGQwM2U3NjRjLwph
bmQKaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9sZWFmbm9kZS9naXQvY2kvYTMwMzcxYzJkYzFj
MjhiYmNlYjQ5ODlkZDdjZjc2NDc0NjFiOWNlNC8KYnV0IGN1cnJlbnRseSBJIGFtIG5vdCBldmVu
IGFibGUgdG8gcnVuIC4vY29uZmlndXJlLgotLS0KIE1ha2VmaWxlLmFtICAgICAgICB8ICAyICst
CiBORVdTICAgICAgICAgICAgICAgfCAgNyArKysrKysKIGFwcGx5ZmlsdGVyLmMgICAgICB8ICA0
ICsrLS0KIGNvbmZpZ3VyZS5hYyAgICAgICB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIGNvbmZpZ3V0aWwuYyAgICAgICB8ICA0ICsrLS0KIGZldGNo
bmV3cy5jICAgICAgICB8IDEwICsrKystLS0tLQogZmlsdGVydXRpbC5jICAgICAgIHwgMTYgKysr
KysrKy0tLS0tLS0KIGdyb3Vwc2VsZWN0LmMgICAgICB8IDI2ICsrKysrKysrKysrKysrKystLS0t
LS0KIGdyb3Vwc2VsZWN0LmggICAgICB8ICA3ICsrKy0tLQogbGVhZm5vZGUtdmVyc2lvbi5jIHwg
IDggKysrKystLQogbGVhZm5vZGUuOC5pbiAgICAgIHwgIDIgKy0KIGxlYWZub2RlLmggICAgICAg
ICB8ICA5ICsrKystLS0tCiBtYXNvY2tfc2EybmFtZS5jICAgfCAgMyArKy0KIHBjcmV3cmFwLmMg
ICAgICAgICB8IDE2ICsrKysrKystLS0tLS0tCiBwY3Jld3JhcC5oICAgICAgICAgfCAgNSArKyst
LQogMTUgZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDcyIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KaW5kZXggZGVmYThiMi4uNDk5
ZDgzNiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuYW0KKysrIGIvTWFrZWZpbGUuYW0KQEAgLTI3MSw3
ICsyNzEsNyBAQCBiX3NvcnRubF9TT1VSQ0VTCT0gYl9zb3J0bmwuYyBjcml0bWVtX21hbGxvYy5j
IGNyaXRtZW1fcmVhbGxvYy5jCiBiX3NvcnRubF9MREFERAkJPSBATElCT0JKU0AKIAogIyBwcm9n
cmFtcwotTERBREQJCQk9IEBMSUJPQkpTQCBsaWJsbnV0aWwuYQorTERBREQJCQk9IEBMSUJPQkpT
QCBsaWJsbnV0aWwuYSBAUENSRTJfOExJQkAKIGFwcGx5ZmlsdGVyX1NPVVJDRVMJPSBhcHBseWZp
bHRlci5jCiBmZXRjaG5ld3NfU09VUkNFUwk9IGZldGNobmV3cy5jIGZldGNobmV3c19jaGVja19k
YXRlLmMgZmV0Y2huZXdzLmgKIGxlYWZub2RlX1NPVVJDRVMJPSBubnRwZC5jCmRpZmYgLS1naXQg
YS9ORVdTIGIvTkVXUwppbmRleCAwOGFlOTM4Li45MGQ1OThhIDEwMDY0NAotLS0gYS9ORVdTCisr
KyBiL05FV1MKQEAgLTEsNiArMSwxMyBAQAogS05PV04gQlVHUzoKICogVGhlIGNvZGUgc29tZXRp
bWVzIHVzZXMgdGltZW91dF9jbGllbnQgd2hlcmUgaXQgc2hvdWxkIHVzZSBhIHNlcnZlciB0aW1l
b3V0LgogfAorIyMjIENIQU5HRVMKKy0gbGVhZm5vZGUgbm93IHJlcXVpcmVzIHRoZSBQQ1JFMiBs
aWJyYXJ5IGluc3RlYWQgb2YgUENSRS4KKyAgUENSRTIgaGFzIGJlZW4gYXJvdW5kIGZvciBhIGZl
dyB5ZWFycyBhbmQgaXMgbWFpbnRhaW5lZCwKKyAgd2hpbGUgUENSRSBpcyBlbmQgb2YgbGlmZSwg
bm8gbG9uZ2VyIHN1cHBvcnRlZCwKKyAgYW5kIGlzIGJlaW5nIHBoYXNlZCBvdXQgYnkgZGlzdHJp
YnV0aW9ucy4KKyAgU2VlIGl0cyBob21lIHBhZ2UsIGh0dHBzOi8vZ2l0aHViLmNvbS9QaGlsaXBI
YXplbC9wY3JlMgorCiAyLjAuMC5hbHBoYTIwMjMwMTogQ2hhbmdlcyBzaW5jZSAyMDIxMDE6CiAt
IEJ1Z2ZpeDogc3RvcmUgbWVzc2FnZXMgd2l0aCBmb2xkZWQgaGVhZGVyIGxpbmVzIHN1Y2ggYXMg
TWVzc2FnZS1JRCwKICAgcmVwb3J0ZWQgYnkgTWF0xJtqIENlcGwgdmlhIGxlYWZub2RlLWxpc3RA
LgpkaWZmIC0tZ2l0IGEvYXBwbHlmaWx0ZXIuYyBiL2FwcGx5ZmlsdGVyLmMKaW5kZXggYmZhY2Fj
YS4uMjdjMDc0ZSAxMDA2NDQKLS0tIGEvYXBwbHlmaWx0ZXIuYworKysgYi9hcHBseWZpbHRlci5j
CkBAIC0xMDgsMTQgKzEwOCwxNCBAQCBzdGF0aWMgaW50IGFwcGx5ZmlsdGVyKGNvbnN0IGNoYXIg
Km5hbWUsIHN0cnVjdCBuZXdzZ3JvdXAgKmcsCiAKIAlzd2l0Y2ggKHJldCkgewogCSAgICBjYXNl
IDA6Ci0JCXNjb3JlID0ga2lsbGZpbHRlcihteWZpbHRlciwgbCk7CisJCXNjb3JlID0ga2lsbGZp
bHRlcihteWZpbHRlciwgKHVuc2lnbmVkIGNoYXIgKilsKTsKIAkJYnJlYWs7CiAJICAgIGNhc2Ug
LTE6CiAJCXNjb3JlID0gVFJVRTsKIAkJYnJlYWs7CiAJICAgIGNhc2UgLTI6IC8qIGFydGljbGUg
aGFzIG5vIGJvZHkgKi8KIAkJaWYgKGRlbGF5Ym9keV9ncm91cChnLT5uYW1lKSkKLQkJICAgIHNj
b3JlID0ga2lsbGZpbHRlcihteWZpbHRlciwgbCk7CisJCSAgICBzY29yZSA9IGtpbGxmaWx0ZXIo
bXlmaWx0ZXIsICh1bnNpZ25lZCBjaGFyICopbCk7CiAJCWVsc2UKIAkJICAgIHNjb3JlID0gVFJV
RTsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5k
ZXggYzk5OWU0OS4uMDIyMGUxMSAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZp
Z3VyZS5hYwpAQCAtMTc4LDU5ICsxNzgsNjEgQEAgQUNfQ0hFQ0tfTElCKGNyeXB0LCBjcnlwdCkK
IAogQUNfQ0FDSEVfU0FWRQogCi1kbmwgQ2hlY2sgZm9yIFBDUkUgbGlicmFyeS4KLUFDX1BBVEhf
UFJPRyhQQ1JFQ09ORklHLHBjcmUtY29uZmlnLEFDX01TR19FUlJPUihwY3JlLWNvbmZpZyBub3Qg
Zm91bmQsIG1ha2Ugc3VyZSB5b3UgaGF2ZSB0aGUgcGNyZSBhbmQgcGNyZS1kZXZlbCBwYWNrYWdl
cyBpbnN0YWxsZWQpKQorZG5sIENoZWNrIGZvciBQQ1JFMiBsaWJyYXJ5LgorQUNfQVJHX1ZBUihQ
Q1JFMkNPTkZJRyx3aGVyZSB0aGUgcGNyZTItY29uZmlnIHNjcmlwdCBpcyBpbnN0YWxsZWQpCitB
Q19QQVRIX1BST0coUENSRTJDT05GSUcscGNyZTItY29uZmlnLG5vKQogCi1DRj1gJFBDUkVDT05G
SUcgLS1jZmxhZ3NgCitDRj1gJFBDUkUyQ09ORklHIC0tY2ZsYWdzYAogY2FzZSAkQ0YgaW4gPyop
CiBBQ19NU0dfTk9USUNFKFthZGRpbmcgJENGIHRvIENGTEFHU10pOyBDRkxBR1M9IiRDRkxBR1Mg
JENGIjsgZXhwb3J0IENGTEFHUwogOzsgZXNhYwogCiAKLUxGPWAkUENSRUNPTkZJRyAtLWxpYnNg
CitMRj1gJFBDUkUyQ09ORklHIC0tbGlic2AKIGNhc2UgJExGIGluID8qKQogQUNfTVNHX05PVElD
RShbYWRkaW5nICRMRiB0byBMSUJTXSk7IExJQlM9IiRMSUJTICRMRiI7IGV4cG9ydCBMSUJTCiA7
OyBlc2FjCiAKLUFDX0NBQ0hFX0NIRUNLKGZvciBwY3JlLmgsYWNfY3ZfaGVhZGVyX3BjcmVfaCxb
Ci0gIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjaW5jbHVkZSA8cGNyZS5o
Pl1dLCBbW3JldHVybiAwO11dKV0sW2FjX2N2X2hlYWRlcl9wY3JlX2g9eWVzXSxbYWNfY3ZfaGVh
ZGVyX3BjcmVfaD1ub10pCitBQ19DQUNIRV9DSEVDSyhmb3IgcGNyZTIuaCxhY19jdl9oZWFkZXJf
cGNyZTJfaCxbCisgIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjZGVmaW5l
IFBDUkUyX0NPREVfVU5JVF9XSURUSCAwXV0sIFtbI2luY2x1ZGUgPHBjcmUyLmg+XV0sIFtbcmV0
dXJuIDA7XV0pXSxbYWNfY3ZfaGVhZGVyX3BjcmUyX2g9eWVzXSxbYWNfY3ZfaGVhZGVyX3BjcmUy
X2g9bm9dKQogXSkKIAotaWYgdGVzdCAieCRhY19jdl9oZWFkZXJfcGNyZV9oIiA9IHh5ZXMKK2lm
IHRlc3QgIngkYWNfY3ZfaGVhZGVyX3BjcmUyX2giID0geHllcwogdGhlbgotICBBQ19NU0dfQ0hF
Q0tJTkcoW2ZvciBwY3JlX2NvbXBpbGUoKSBpbiBQQ1JFIGxpYnJhcnldKQotICBBQ19DQUNIRV9W
QUwoW2xuX2N2X2hhdmVfbGlicGNyZV0sIFsKKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgcGNyZTJf
Y29tcGlsZV84KCkgaW4gUENSRTIgbGlicmFyeV0pCisgIEFDX0NBQ0hFX1ZBTChbbG5fY3ZfaGF2
ZV9saWJwY3JlMl0sIFsKICAgQUNfTElOS19JRkVMU0UoCi0gIFtBQ19MQU5HX1BST0dSQU0oW1sj
aW5jbHVkZSA8cGNyZS5oPl1dLAotICAgIFtbcGNyZV9jb21waWxlKDAsIDAsIDAsIDAsIDApO11d
KV0sCi0gIFtsbl9jdl9oYXZlX2xpYnBjcmU9eWVzXSwgW2xuX2N2X2hhdmVfbGlicGNyZT1ub10p
CisgIFtBQ19MQU5HX1BST0dSQU0oW1sjZGVmaW5lIFBDUkUyX0NPREVfVU5JVF9XSURUSCAwXV0s
CisgICAgW1sjaW5jbHVkZSA8cGNyZTIuaD5dXSwKKyAgICBbW3BjcmUyX2NvbXBpbGVfOCgwLCAw
LCAwLCAwLCAwKTtdXSldLAorICBbbG5fY3ZfaGF2ZV9saWJwY3JlMj15ZXNdLCBbbG5fY3ZfaGF2
ZV9saWJwY3JlMj1ub10pCiAgIF0pCi0gIEFDX01TR19SRVNVTFQoWyRsbl9jdl9oYXZlX2xpYnBj
cmVdKQorICBBQ19NU0dfUkVTVUxUKFskbG5fY3ZfaGF2ZV9saWJwY3JlMl0pCiBmaQogCi1pZiB0
ZXN0ICJ4JGxuX2N2X2hhdmVfbGlicGNyZSIgPSB4eWVzCitpZiB0ZXN0ICJ4JGxuX2N2X2hhdmVf
bGlicGNyZTIiID0geHllcwogdGhlbgotICBBQ19ERUZJTkUoSEFWRV9MSUJQQ1JFLCAxLCBbU2V0
IGlmIFBDUkUgbGlicmFyeSBpcyBwcmVzZW50Ll0pCisgIEFDX0RFRklORShIQVZFX0xJQlBDUkUy
LCAxLCBbU2V0IGlmIFBDUkUyIGxpYnJhcnkgaXMgcHJlc2VudC5dKQogZWxzZQotICAgIGVjaG8g
IioqKiBJIGNhbm5vdCBmaW5kIFBDUkUuIGxlYWZub2RlIGRlcGVuZHMgb24gaXQuIgorICAgIGVj
aG8gIioqKiBJIGNhbm5vdCBmaW5kIFBDUkUyLiBsZWFmbm9kZSBkZXBlbmRzIG9uIGl0LiIKICAg
ICBlY2hvICIqKioiCi0gICAgZWNobyAiKioqIElmIHlvdSBoYXZlIFBDUkUgaW5zdGFsbGVkLCBw
Y3JlLWNvbmZpZyB3YXMgbm90IGZvdW5kLiIKKyAgICBlY2hvICIqKiogSWYgeW91IGhhdmUgUENS
RTIgaW5zdGFsbGVkLCBwY3JlMi1jb25maWcgd2FzIG5vdCBmb3VuZC4iCiAgICAgZWNobyAiKioq
IFlvdSBjYW4gd29yayBhcm91bmQgdGhpcyBieSBhZGRpbmcgdGhlIGhlYWRlciBsb2NhdGlvbiB0
byIKLSAgICBlY2hvICIqKiogdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBDUFBGTEFHUywgaS4g
ZS4gQ1BQRkxBR1M9LUkvb3B0L3BjcmUvaW5jbHVkZSIKKyAgICBlY2hvICIqKiogdGhlIGVudmly
b25tZW50IHZhcmlhYmxlcyBDUFBGTEFHUywgaS4gZS4gQ1BQRkxBR1M9LUkvb3B0L3BjcmUyL2lu
Y2x1ZGUiCiAgICAgZWNobyAiKioqIGFuZCB0aGUgbGlicmFyeSBsb2NhdGlvbiB0byB0aGUgZW52
aXJvbm1lbnQgdmFyaWFibGVzIExERkxBR1MsIgotICAgIGVjaG8gIioqKiBlLiBnLiBMREZMQUdT
PS1ML29wdC9wY3JlL2xpYiwgYXNzdW1pbmcgeW91ciBQQ1JFIHJlc2lkZXMgaW4gL29wdC9wY3Jl
LiIKKyAgICBlY2hvICIqKiogZS4gZy4gTERGTEFHUz0tTC9vcHQvcGNyZTIvbGliLCBhc3N1bWlu
ZyB5b3VyIFBDUkUgcmVzaWRlcyBpbiAvb3B0L3BjcmUyLiIKICAgICBlY2hvICIqKioiCi0gICAg
ZWNobyAiKioqIElmIG5vdCB5b3UgZG9uJ3QgaGF2ZSBQQ1JFIGluc3RhbGxlZCwgcGxlYXNlIGRv
d25sb2FkIGFuZCBpbnN0YWxsIFBDUkUgMy43IgotICAgIGVjaG8gIioqKiBvciBhIG5ld2VyIHZl
cnNpb24gZnJvbSBodHRwOi8vd3d3LnBjcmUub3JnLywgaXQncyBlYXN5OiIKLSAgICBlY2hvICIq
KiogSnVzdCBkb3dubG9hZCwgdW5wYWNrLCB0aGVuIGNkIHRvIHBjcmUtMy43LCB0aGVuIgorICAg
IGVjaG8gIioqKiBJZiBub3QgeW91IGRvbid0IGhhdmUgUENSRTIgaW5zdGFsbGVkLCBwbGVhc2Ug
ZG93bmxvYWQgYW5kIGluc3RhbGwgUENSRTIiCisgICAgZWNobyAiKioqIG9yIGEgbmV3ZXIgdmVy
c2lvbiBmcm9tIGh0dHA6Ly93d3cucGNyZTIub3JnLywgaXQncyBlYXN5OiIKKyAgICBlY2hvICIq
KiogSnVzdCBkb3dubG9hZCwgdW5wYWNrLCB0aGVuIGNkIHRvIHBjcmUyKiwgdGhlbiIKICAgICBl
Y2hvICIqKiogLi9jb25maWd1cmUgJiYgbWFrZSwgdGhlbiBhcyByb290OiBtYWtlIGluc3RhbGwi
CiAgICAgZWNobyAiKioqIFRoZW4sIHJlY29uZmlndXJlIGxlYWZub2RlLiIKLSAgICBBQ19NU0df
RVJST1IoUENSRSBsaWJyYXJ5IG5vdCBmb3VuZCkKKyAgICBBQ19NU0dfRVJST1IoUENSRTIgbGli
cmFyeSBub3QgZm91bmQpCiAgICAgZXhpdCAxCiBmaQogCi1BQ19TVUJTVChQQ1JFTElCKQotQUNf
U1VCU1QoTElOS1BDUkVMSUIpCitBQ19TVUJTVChQQ1JFMl84TElCKQorQUNfU1VCU1QoUENSRTJf
OERFUCkKIAogZG5sIENoZWNrcyBmb3IgbGlicmFyeSBmdW5jdGlvbnMuCiBBQ19DSEVDS19GVU5D
Uyhbc2V0Z3JvdXBzXSkKQEAgLTI0Niw3ICsyNDgsNyBAQCBBQ19DSEVDS19MSUIobnNsLCBnZXRo
b3N0ZW50KQogQUNfQ0hFQ0tfTElCKHNvY2tldCwgc2V0c29ja29wdCkKIEFDX1JFUExBQ0VfRlVO
Q1MoYXJjNHJhbmRvbSBtZXJnZXNvcnQgc3RyY2FzZXN0ciBzdHJsY3B5KQogCi1kbmwgVGhlICdw
Y3JlJyBsaWJyYXJ5IHVzZXMgbm9uLXN0YW5kYXJkIGRlZmluZXMKK2RubCBUaGUgJ3BjcmUyJyBs
aWJyYXJ5IHVzZXMgbm9uLXN0YW5kYXJkIGRlZmluZXMKIHRlc3QgIi4kYWNfY3ZfZnVuY19zdHJl
cnJvciIgIT0gIi55ZXMiICYmIFwKIHRlc3QgIi4kY2ZfY3ZfaGF2ZV9zeXNfZXJybGlzdCIgPSAi
LnllcyIgJiYgXAogCVBDUkVfREVGSU5FUz0iJFBDUkVfREVGSU5FUyAtRFNUUkVSUk9SX0ZST01f
RVJSTElTVCIKZGlmZiAtLWdpdCBhL2NvbmZpZ3V0aWwuYyBiL2NvbmZpZ3V0aWwuYwppbmRleCBi
M2NlZmRlLi4zNmYyZTNhIDEwMDY0NAotLS0gYS9jb25maWd1dGlsLmMKKysrIGIvY29uZmlndXRp
bC5jCkBAIC01MjMsNyArNTIzLDcgQEAgcmVhZGNvbmZpZygvKkBudWxsQCovIGNvbnN0IGNoYXIg
KmNvbmZpZ2ZpbGUpCiAJCSAgICBicmVhazsKIAkJY2FzZSBDUF9PTkxZR1JPVVBTUENSRToKIAkJ
ICAgIHsKLQkJCXBjcmUgKnIgPSBnc19jb21waWxlKHZhbHVlLCBjb25maWdmaWxlLCBsaW5lKTsK
KwkJCXBjcmUyX2NvZGVfOCAqciA9IGdzX2NvbXBpbGUoKHVuc2lnbmVkIGNoYXIgKil2YWx1ZSwg
Y29uZmlnZmlsZSwgbGluZSk7CiAKIAkJCWlmICghcikKIAkJCSAgICBleGl0KDIpOwpAQCAtNjIz
LDcgKzYyMyw3IEBAIGZyZWVzZXJ2ZXJzKHN0cnVjdCBzZXJ2ZXJsaXN0ICpzKQogCWlmIChwLT5w
YXNzd29yZCkKIAkgICAgZnJlZShwLT5wYXNzd29yZCk7CiAJaWYgKHAtPmdyb3VwX3BjcmUpCi0J
ICAgIGZyZWUocC0+Z3JvdXBfcGNyZSk7CisJICAgIHBjcmUyX2NvZGVfZnJlZV84KHAtPmdyb3Vw
X3BjcmUpOwogCWZyZWUocCk7CiAJcCA9IHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvZmV0Y2huZXdz
LmMgYi9mZXRjaG5ld3MuYwppbmRleCAyM2NlNTM3Li5jMmY3YzkwIDEwMDY0NAotLS0gYS9mZXRj
aG5ld3MuYworKysgYi9mZXRjaG5ld3MuYwpAQCAtMzg4LDcgKzM4OCw3IEBAIGlzZ3JvdXBvbnNl
cnZlcihjb25zdCBzdHJ1Y3Qgc2VydmVybGlzdCAqY3Vyc3J2LCBjaGFyICpuZXdzZ3JvdXBzKQog
CSAgICBxID0gc3RyY2hyKHAsICcsJyk7CiAJICAgIGlmIChxKQogCQkqcSsrID0gJ1wwJzsKLQkg
ICAgaWYgKGdzX21hdGNoKGN1cnNydiAtPiBncm91cF9wY3JlLCBwKSkgeworCSAgICBpZiAoZ3Nf
bWF0Y2goY3Vyc3J2IC0+IGdyb3VwX3BjcmUsICh1bnNpZ25lZCBjaGFyICopcCkpIHsKIAkJcHV0
YWxpbmUobm50cG91dCwgIkdST1VQICVzIiwgcCk7CiAJCWlmIChubnRwcmVwbHkoY3Vyc3J2KSA9
PSAyMTEpCiAJCSAgICByZXR2YWwgPSBUUlVFOwpAQCAtNzY5LDcgKzc2OSw3IEBAIGdldGZpcnN0
bGFzdChzdHJ1Y3Qgc2VydmVybGlzdCAqY3Vyc3J2LCBzdHJ1Y3QgbmV3c2dyb3VwICpnLCB1bnNp
Z25lZAogICAgIGxvbmcgbjsKICAgICBjaGFyICpsLCAqdDsKIAotICAgIGlmICghZ3NfbWF0Y2go
Y3Vyc3J2IC0+IGdyb3VwX3BjcmUsIGctPm5hbWUpKQorICAgIGlmICghZ3NfbWF0Y2goY3Vyc3J2
IC0+IGdyb3VwX3BjcmUsICh1bnNpZ25lZCBjaGFyICopZy0+bmFtZSkpCiAJcmV0dXJuIDA7CiAK
ICAgICBwdXRhbGluZShubnRwb3V0LCAiR1JPVVAgJXMiLCBnLT5uYW1lKTsKQEAgLTEyMjIsNyAr
MTIyMiw3IEBAIGdldGdyb3VwKHN0cnVjdCBzZXJ2ZXJsaXN0ICpjdXJzcnYsIHN0cnVjdCBuZXdz
Z3JvdXAgKmcsIHVuc2lnbmVkIGxvbmcgZmlyc3QpCiAJcmV0dXJuIDA7CiAgICAgaWYgKCFjaGRp
cmdyb3VwKGctPm5hbWUsIFRSVUUpKQkvKiBhbHNvIGNyZWF0ZXMgdGhlIGRpcmVjdG9yeSAqLwog
CXJldHVybiAwOwotICAgIGlmICghZ3NfbWF0Y2goY3Vyc3J2IC0+IGdyb3VwX3BjcmUsIGctPm5h
bWUpKQorICAgIGlmICghZ3NfbWF0Y2goY3Vyc3J2IC0+IGdyb3VwX3BjcmUsICh1bnNpZ25lZCBj
aGFyICopZy0+bmFtZSkpCiAJcmV0dXJuIDA7CiAKICAgICAvKiB3ZSBkb24ndCBjYXJlIGFib3V0
IHgtcG9zdHMgZm9yIGRlbGF5Ym9keSAqLwpAQCAtMTQ0Miw3ICsxNDQyLDcgQEAgbm50cGFjdGl2
ZShzdHJ1Y3Qgc2VydmVybGlzdCAqY3Vyc3J2LCBpbnQgZmEpCiAJICAgIGlmICghc3BsaXRMSVNU
bGluZShsLCAmcCwgJnIpKQogCQljb250aW51ZTsKIAkgICAgKnAgPSAnXDAnOwotCSAgICBpZiAo
Z3NfbWF0Y2goY3Vyc3J2LT5ncm91cF9wY3JlLCBsKSkgeworCSAgICBpZiAoZ3NfbWF0Y2goY3Vy
c3J2LT5ncm91cF9wY3JlLCAodW5zaWduZWQgY2hhciAqKWwpKSB7CiAJCWluc2VydGdyb3VwKGws
ICpyLCAxLCAwLCB0aW1lKE5VTEwpLCBOVUxMKTsKIAkJYXBwZW5kdG9saXN0KGdyb3VwcywgbCk7
CiAJCWNvdW50Kys7CkBAIC0xNTEzLDcgKzE1MTMsNyBAQCBubnRwYWN0aXZlKHN0cnVjdCBzZXJ2
ZXJsaXN0ICpjdXJzcnYsIGludCBmYSkKIAkgICAgLyogRklYTUU6IHNhdmUgaGlnaCB3YXRlciBt
YXJrIGluIC5sYXN0LnBvc3Rpbmc/ICovCiAJICAgIGZpcnN0ID0gMTsKIAkgICAgbGFzdCA9IDA7
Ci0JICAgIGlmIChnc19tYXRjaChjdXJzcnYtPmdyb3VwX3BjcmUsIGwpKSB7CisJICAgIGlmIChn
c19tYXRjaChjdXJzcnYtPmdyb3VwX3BjcmUsICh1bnNpZ25lZCBjaGFyICopbCkpIHsKIAkJaWYg
KGlzX2ludGVyZXN0aW5nKGwpCiAJCQkmJiAoZm9yY2VhY3QgfHwgIShhY3RpdmUgJiYgZmluZGdy
b3VwKGwsIGFjdGl2ZSwgLTEpKSkKIAkJCSYmIGNoZGlyZ3JvdXAobCwgRkFMU0UpKSB7CmRpZmYg
LS1naXQgYS9maWx0ZXJ1dGlsLmMgYi9maWx0ZXJ1dGlsLmMKaW5kZXggOGVmNzk2Ni4uYTUxZGFj
ZSAxMDA2NDQKLS0tIGEvZmlsdGVydXRpbC5jCisrKyBiL2ZpbHRlcnV0aWwuYwpAQCAtMTk2LDcg
KzE5Niw3IEBAIG5ld2ZpbHRlcih2b2lkKQogc3RhdGljIHN0cnVjdCBmaWx0ZXJsaXN0ICpvbGRm
ID0gTlVMTDsKIAogc3RhdGljIHZvaWQKLWluc2VydGZpbHRlcigvKkBvd25lZEAqLyBzdHJ1Y3Qg
ZmlsdGVybGlzdCAqZiwgLypAb25seUAqLyBwY3JlICpuZywgLypAb25seUAqLyBjaGFyICpuZ3Bj
cmV0ZXh0LCBpbnQgaW52ZXJ0bmdzKQoraW5zZXJ0ZmlsdGVyKC8qQG93bmVkQCovIHN0cnVjdCBm
aWx0ZXJsaXN0ICpmLCAvKkBvbmx5QCovIHBjcmUyX2NvZGVfOCAqbmcsIC8qQG9ubHlAKi8gY2hh
ciAqbmdwY3JldGV4dCwgaW50IGludmVydG5ncykKIHsKICAgICAoZi0+ZW50cnkpLT5pbnZlcnRu
Z3MgPSBpbnZlcnRuZ3M7CiAgICAgKGYtPmVudHJ5KS0+bmV3c2dyb3VwcyA9IG5nOwpAQCAtMjkx
LDcgKzI5MSw3IEBAIHJlYWRmaWx0ZXIoLypAbnVsbEAqLyBjb25zdCBjaGFyICpmaWx0ZXJmaWxl
bmFtZSkKIAkJc3RhdGUgPSBSRl9XQU5UUEFUOwogCSAgICB9IGVsc2UgaWYgKChzdGF0ZSA9PSBS
Rl9XQU5UUEFUIHx8IHN0YXRlID09IFJGX1dBTlROR09SUEFUKSAmJgogCQkgICAgIXN0cmNhc2Vj
bXAoInBhdHRlcm4iLCBwYXJhbSkpIHsKLQkJcGNyZSAqcmUsICpuZ3A7CisJCXBjcmUyX2NvZGVf
OCAqcmUsICpuZ3A7CiAJCWlmICghbmd0IHx8ICEobmdwID0gbG5fcGNyZV9jb21waWxlKG5ndCAr
IGludmVydG5ncywgMCwgTlVMTCwgZmlsdGVyZmlsZW5hbWUsIGxpbmUpKSkgewogCQkgICAgbG5f
bG9nKExOTE9HX1NOT1RJQ0UsIExOTE9HX0NUT1AsCiAJCQkgICAgIk5vIG5ld3Nncm91cCBmb3Ig
cGF0dGVybiA9ICVzIChsaW5lICVsdSkgZm91bmQiLApAQCAtMzIyLDcgKzMyMiw3IEBAIHJlYWRm
aWx0ZXIoLypAbnVsbEAqLyBjb25zdCBjaGFyICpmaWx0ZXJmaWxlbmFtZSkKIAkJCSghc3RyY2Fz
ZWNtcCgibWF4bGluZXMiLCBwYXJhbSkpIHx8CiAJCQkoIXN0cmNhc2VjbXAoIm1heGJ5dGVzIiwg
cGFyYW0pKSB8fAogCQkJKCFzdHJjYXNlY21wKCJtYXhjcm9zc3Bvc3QiLCBwYXJhbSkpKSkgewot
CQlwY3JlICpuZ3A7CisJCXBjcmUyX2NvZGVfOCAqbmdwOwogCQlmID0gbmV3ZmlsdGVyKCk7CiAJ
CWlmICghKG5ncCA9IGxuX3BjcmVfY29tcGlsZShuZ3QgKyBpbnZlcnRuZ3MsIDAsIE5VTEwsIGZp
bHRlcmZpbGVuYW1lLCBsaW5lKSkpIHsKIAkJICAgIHJ2ID0gRkFMU0U7CkBAIC0zOTEsNyArMzkx
LDcgQEAgc2VsZWN0ZmlsdGVyKGNvbnN0IGNoYXIgKmdyb3VwbmFtZSkKICAgICBmb2xkID0gTlVM
TDsKICAgICBtYXN0ZXIgPSBmaWx0ZXI7CiAgICAgd2hpbGUgKG1hc3RlcikgewotCWlmICgobWFz
dGVyLT5lbnRyeSktPmludmVydG5ncyBeIChwY3JlX2V4ZWMoKG1hc3Rlci0+ZW50cnkpLT5uZXdz
Z3JvdXBzLCBOVUxMLCBncm91cG5hbWUsCisJaWYgKChtYXN0ZXItPmVudHJ5KS0+aW52ZXJ0bmdz
IF4gKHBjcmUyX21hdGNoXzgoKG1hc3Rlci0+ZW50cnkpLT5uZXdzZ3JvdXBzLCBOVUxMLCBncm91
cG5hbWUsCiAJCSAgICBzdHJsZW4oZ3JvdXBuYW1lKSwgMCwgLyogb3B0aW9ucyAqLyAwLCBOVUxM
LCAwKSA+PSAwKSkgewogCSAgICBmID0gKHN0cnVjdCBmaWx0ZXJsaXN0ICopY3JpdG1hbGxvYyhz
aXplb2Yoc3RydWN0IGZpbHRlcmxpc3QpLAogCQkJCQkJIkFsbG9jYXRpbmcgZ3JvdXBmaWx0ZXIg
c3BhY2UiKTsKQEAgLTQyMCw3ICs0MjAsNyBAQCByZWdleHBfYWRkaW5mbyhjb25zdCBzdHJ1Y3Qg
ZmlsdGVyZW50cnkgKmcsIGNvbnN0IGNoYXIgKmhkcikgewogICAgIGNvbnN0IGNoYXIgKnggPSBo
ZHI7CiAgICAgd2hpbGUgKCp4KSB7CiAJaW50IGxlbiA9IHN0cmNzcG4oeCwgIlxuIik7Ci0JaW50
IG1hdGNoID0gKHBjcmVfZXhlYyhnLT5leHByLCBOVUxMLCB4LCAoaW50KXN0cmNzcG4oeCwgIlxu
IiksCisJaW50IG1hdGNoID0gKHBjcmUyX21hdGNoXzgoZy0+ZXhwciwgTlVMTCwgeCwgKGludClz
dHJjc3BuKHgsICJcbiIpLAogCQkwLCAwLCBOVUxMLCAwKSA+PSAwKTsKIAlpZiAobWF0Y2gpIHsK
IAkgICAgbG5fbG9nKExOTE9HX1NERUJVRywgTE5MT0dfQ0FMTCwgInJlZ2V4cCBmaWx0ZXI6IGRl
dGFpbDogXCIlLS4qc1wiIgpAQCAtNDYyLDcgKzQ2Miw3IEBAIGtpbGxmaWx0ZXIoY29uc3Qgc3Ry
dWN0IGZpbHRlcmxpc3QgKmYsIGNvbnN0IGNoYXIgKmhkcikKIAkgICAgICAgICAgIGctPm5ncGNy
ZXRleHQpOwogCX0KIAlpZiAoKGctPmxpbWl0ID09IC0xKSAmJiAoZy0+ZXhwcikpIHsKLQkgICAg
bWF0Y2ggPSAocGNyZV9leGVjKGctPmV4cHIsIE5VTEwsIGhkciwgKGludClzdHJsZW4oaGRyKSwK
KwkgICAgbWF0Y2ggPSAocGNyZTJfbWF0Y2hfOChnLT5leHByLCBOVUxMLCBoZHIsIChpbnQpc3Ry
bGVuKGhkciksCiAJCQkgICAgICAwLCAwLCBOVUxMLCAwKSk7CiAJICAgIGlmIChkZWJ1Z21vZGUg
JiBERUJVR19GSUxURVIpIHsKIAkgICAgICAgIGxuX2xvZyhMTkxPR19TREVCVUcsIExOTE9HX0NB
TEwsCkBAIC01OTEsMTMgKzU5MSwxMyBAQCBmcmVlX2VudHJ5KC8qQG51bGxAKi8gLypAb25seUAq
LyBzdHJ1Y3QgZmlsdGVyZW50cnkgKmUpCiB7CiAgICAgaWYgKGUpIHsKIAlpZiAoZS0+ZXhwcikK
LQkgICAgcGNyZV9mcmVlKGUtPmV4cHIpOworCSAgICBwY3JlMl9jb2RlX2ZyZWVfOChlLT5leHBy
KTsKIAlpZiAoZS0+YWN0aW9uKQogCSAgICBmcmVlKGUtPmFjdGlvbik7CiAJaWYgKGUtPmNsZWFy
dGV4dCkKIAkgICAgZnJlZShlLT5jbGVhcnRleHQpOwogCWlmIChlLT5uZXdzZ3JvdXBzKQotCSAg
ICBwY3JlX2ZyZWUoZS0+bmV3c2dyb3Vwcyk7CisJICAgIHBjcmUyX2NvZGVfZnJlZV84KGUtPm5l
d3Nncm91cHMpOwogCWlmIChlLT5uZ3BjcmV0ZXh0KQogCSAgICBmcmVlKGUtPm5ncGNyZXRleHQp
OwogCWZyZWUoZSk7CmRpZmYgLS1naXQgYS9ncm91cHNlbGVjdC5jIGIvZ3JvdXBzZWxlY3QuYwpp
bmRleCA4ODEyNzJkLi40MjdmOTE5IDEwMDY0NAotLS0gYS9ncm91cHNlbGVjdC5jCisrKyBiL2dy
b3Vwc2VsZWN0LmMKQEAgLTEsMjQgKzEsMzYgQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNs
dWRlIDxwY3JlLmg+CiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJncm91cHNlbGVj
dC5oIgogI2luY2x1ZGUgImxuX2xvZy5oIgogI2luY2x1ZGUgInBjcmV3cmFwLmgiCiAKLXBjcmUg
KmdzX2NvbXBpbGUoY29uc3QgY2hhciAqcmVnZXgsIGNvbnN0IGNoYXIgKmZpbGUsIHVuc2lnbmVk
IGxvbmcgbGluZSkgeworcGNyZTJfY29kZV84ICpnc19jb21waWxlKGNvbnN0IGNoYXIgKnJlZ2V4
LCBjb25zdCBjaGFyICpmaWxlLCB1bnNpZ25lZCBsb25nIGxpbmUpIHsKKyAgICBpbnQgcmVnZXhf
ZXJyY29kZTsKKyAgICBzaXplX3QgcmVnZXhfZXJycG9zOworICAgIHBjcmUyX2NvZGVfOCAqcmU7
CiAgICAgcmV0dXJuIGxuX3BjcmVfY29tcGlsZShyZWdleCwgUENSRV9NVUxUSUxJTkUsIE5VTEws
IGZpbGUsIGxpbmUpOwogfQogCiAvKiBtYXRjaCBzIGFnYWluc3QgUENSRSBwCiAgKiBXQVJOSU5H
OiBJZiBwIGlzIE5VTEwsIGV2ZXJ5IHN0cmluZyBzIGlzIGNvbnNpZGVyZWQgYSBtYXRjaAogICog
cmV0dXJucyAxIGZvciBtYXRjaCwgMCBmb3IgbWlzbWF0Y2gsIG5lZ2F0aXZlIGZvciBlcnJvciAq
LwotaW50IGdzX21hdGNoKGNvbnN0IHBjcmUgKnAsIGNvbnN0IGNoYXIgKnMpIHsKK2ludCBnc19t
YXRjaChjb25zdCBwY3JlMl9jb2RlXzggKnAsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnMpIHsKICAg
ICBpbnQgbWF0Y2g7Ci0gICAgaWYgKHAgPT0gTlVMTCkgcmV0dXJuIDE7Ci0gICAgbWF0Y2ggPSBw
Y3JlX2V4ZWMocCwgTlVMTCwgcywgc3RybGVuKHMpLCAwLCBQQ1JFX0FOQ0hPUkVELCBOVUxMLCAw
KTsKKyAgICBwY3JlMl9tYXRjaF9kYXRhXzggKm1hdGNoX2RhdGE7CiAKLSAgICBpZiAobWF0Y2gg
PT0gUENSRV9FUlJPUl9OT01BVENIKSByZXR1cm4gMDsKKyAgICBpZiAocmUgPT0gTlVMTCkgcmV0
dXJuIDE7CisgICAgbWF0Y2hfZGF0YSA9IHBjcmUyX21hdGNoX2RhdGFfY3JlYXRlXzgoMSwgTlVM
TCk7CisgICAgaWYgKE5VTEwgPT0gbWF0Y2hfZGF0YSkgeworICAgICAgICBsbl9sb2coTE5MT0df
U0VSUiwgTE5MT0dfQ1RPUCwgImdzX21hdGNoOiBvdXQgb2YgbWVtb3J5IGFsbG9jYXRpbmcgbWF0
Y2hfZGF0YSIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgbWF0Y2ggPSBwY3Jl
Ml9tYXRjaF84KHJlLCBzLCBQQ1JFMl9aRVJPX1RFUk1JTkFURUQsIDAsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBDUkUyX0FOQ0hPUkVELCBtYXRjaF9kYXRhLCBOVUxMKTsKKworICAgIHBj
cmUyX21hdGNoX2RhdGFfZnJlZV84KG1hdGNoX2RhdGEpOworICAgIGlmIChtYXRjaCA9PSBQQ1JF
Ml9FUlJPUl9OT01BVENIKSByZXR1cm4gMDsKICAgICBpZiAobWF0Y2ggPj0gMCkgcmV0dXJuIDE7
Ci0gICAgcmV0dXJuIG1hdGNoOworICAgIHJldHVybiBtYXRjaDsgLyogbWF0Y2ggPCAwLCBidXQg
bm90IFBDUkUyX0VSUk9SX05PTUFUQ0ggKi8KIH0KZGlmZiAtLWdpdCBhL2dyb3Vwc2VsZWN0Lmgg
Yi9ncm91cHNlbGVjdC5oCmluZGV4IGQxYzAzZDYuLjA3NTFkZjYgMTAwNjQ0Ci0tLSBhL2dyb3Vw
c2VsZWN0LmgKKysrIGIvZ3JvdXBzZWxlY3QuaApAQCAtMiw5ICsyLDEwIEBACiAjZGVmaW5lIEdS
T1VQU0VMRUNUX0gKIAogLyogZm9yIHBjcmUgdHlwZSAqLwotI2luY2x1ZGUgPHBjcmUuaD4KKyNk
ZWZpbmUgUENSRTJfQ09ERV9VTklUX1dJRFRIIDAKKyNpbmNsdWRlIDxwY3JlMi5oPgogCi1wY3Jl
ICpnc19jb21waWxlKGNvbnN0IGNoYXIgKnJlZ2V4LCBjb25zdCBjaGFyICpmaWxlLCB1bnNpZ25l
ZCBsb25nIGxpbmUpOwotaW50IGdzX21hdGNoKGNvbnN0IHBjcmUgKnAsIGNvbnN0IGNoYXIgKnMp
OworcGNyZTJfY29kZV84ICpnc19jb21waWxlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnJlZ2V4LCBj
b25zdCBjaGFyICpmaWxlLCB1bnNpZ25lZCBsb25nIGxpbmUpOworaW50IGdzX21hdGNoKGNvbnN0
IHBjcmUyX2NvZGVfOCAqcCwgY29uc3QgdW5zaWduZWQgY2hhciAqcyk7CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvbGVhZm5vZGUtdmVyc2lvbi5jIGIvbGVhZm5vZGUtdmVyc2lvbi5jCmluZGV4IGFj
MGE4ZGEuLjA3NjFiMTUgMTAwNjQ0Ci0tLSBhL2xlYWZub2RlLXZlcnNpb24uYworKysgYi9sZWFm
bm9kZS12ZXJzaW9uLmMKQEAgLTI0LDYgKzI0LDcgQEAgbWFpbih2b2lkKSAvKiBpZiB5b3Ugc3Vw
cG9ydCBhcmd1bWVudHMgc29tZSBkYXksIHBsZWFzZSBtYWtlIC12CiAJICAgICAgY29tcGF0aWJs
ZSB3aXRoIGxlYWZub2RlLTEuICovCiB7CiAgICAgc3RhdGljIGNoYXIgZW52X3BhdGhbXSA9ICJQ
QVRIPS9iaW46L3Vzci9iaW4iOworICAgIHVpbnQ4X3QgcGNyZTJpbmZvWzY0XTsgLyogUENSRSAx
MCByZXF1aXJlcyBhdCBsZWFzdCAyNCBjb2RlIHVuaXRzICovCiAgICAgLyogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAgICAgLyogKioqIElNUE9S
VEFOVCAqKioKICAgICAgKiAKQEAgLTQ3LDcgKzQ4LDEwIEBAIG1haW4odm9pZCkgLyogaWYgeW91
IHN1cHBvcnQgYXJndW1lbnRzIHNvbWUgZGF5LCBwbGVhc2UgbWFrZSAtdgogICAgIHB1dHMoZGVm
X3Nwb29sZGlyKTsKICAgICBmcHV0cygiZGVmYXVsdCBNVEE6ICIsIHN0ZG91dCk7CiAgICAgcHV0
cyhERUZBVUxUTVRBKTsKLSAgICBmcHV0cygicGNyZSB2ZXJzaW9uOiAiLCBzdGRvdXQpOwotICAg
IHB1dHMocGNyZV92ZXJzaW9uKCkpOworCXBjcmUyX2NvbmZpZ184KFBDUkUyX0NPTkZJR19WRVJT
SU9OLCBwY3JlMmluZm8pOworCXByaW50ZigiUENSRTIgdmVyc2lvbjogJXNcbiIsIHBjcmUyaW5m
byk7CisKKwlwY3JlMl9jb25maWdfOChQQ1JFMl9DT05GSUdfVU5JQ09ERV9WRVJTSU9OLCBwY3Jl
MmluZm8pOworCXByaW50ZigiUENSRTIgVW5pY29kZSB2ZXJzaW9uOiAlc1xuIiwgcGNyZTJpbmZv
KTsKICAgICBleGl0KDApOwogfQpkaWZmIC0tZ2l0IGEvbGVhZm5vZGUuOC5pbiBiL2xlYWZub2Rl
LjguaW4KaW5kZXggNzAwNTJkZS4uODk3YzYwYSAxMDA2NDQKLS0tIGEvbGVhZm5vZGUuOC5pbgor
KysgYi9sZWFmbm9kZS44LmluCkBAIC02MDEsNyArNjAxLDcgQEAgaGFzIGJlZW4gcGFpZCBmb3Ig
YnkgVW5pbmV0dCBBUyAoaHR0cDovL3d3dy51bmluZXR0Lm5vLykuCiAuQlIgdGV4cGlyZSAoOCks
CiAuQlIgY2hlY2tncm91cHMgKDgpLAogLkJSIGdsb2IgKDcpLAotLkJSIHBjcmUgKDMpLAorLkJS
IHBjcmUyICgzKSwKIC5CUiBAc3lzY29uZmRpckAvZmlsdGVycy5leGFtcGxlCiAtIG5vdGUgdGhh
dCBmaWx0ZXJzLmV4YW1wbGUgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIGlzIC0sCiAuQiAiUkZDIDk3
NyIKZGlmZiAtLWdpdCBhL2xlYWZub2RlLmggYi9sZWFmbm9kZS5oCmluZGV4IGI1YzJjZjkuLmVm
OGY0ZmUgMTAwNjQ0Ci0tLSBhL2xlYWZub2RlLmgKKysrIGIvbGVhZm5vZGUuaApAQCAtNTgsNyAr
NTgsOCBAQCB1c2luZyBzdGQ6Om1heDsKICNpZmRlZiBfX0xDTElOVF9fCiAjaW5jbHVkZSAibGNs
aW50X2ZpeGVzLmgiCiAjZWxzZSAvKiBub3QgX19MQ0xJTlRfXyAqLwotI2luY2x1ZGUgPHBjcmUu
aD4KKyNkZWZpbmUgUENSRTJfQ09ERV9VTklUX1dJRFRIIDAJLyogbGV0J3MgZmFpbCB1bmxlc3Mg
ZXhwbGljaXRseSB1c2luZyB0aGUgXzgoKSBmdW5jdGlvbnMgKi8KKyNpbmNsdWRlIDxwY3JlMi5o
PgogI2VuZGlmIC8qIG5vdCBfX0xDTElOVF9fICovCiAKICNpbmNsdWRlIDxzdGRib29sLmg+CkBA
IC0yOTgsMTEgKzI5OSwxMSBAQCBtYXRjaGxpc3Qoc3RydWN0IHN0cmluZ2xpc3Rub2RlICpwYXR0
ZXJucywgY29uc3QgY2hhciAqc3RyKTsKICAqLwogc3RydWN0IGZpbHRlcmVudHJ5IHsKICAgICBj
aGFyICpuZ3BjcmV0ZXh0OwotICAgIHBjcmUgKm5ld3Nncm91cHM7CisgICAgcGNyZTJfY29kZV84
ICpuZXdzZ3JvdXBzOwogICAgIGludCBpbnZlcnRuZ3M7CiAgICAgbG9uZyBsaW1pdDsKICAgICBj
aGFyICpjbGVhcnRleHQ7Ci0gICAgcGNyZSAqZXhwcjsKKyAgICBwY3JlMl9jb2RlXzggKmV4cHI7
CiAgICAgY2hhciAqYWN0aW9uOwogfTsKIHN0cnVjdCBmaWx0ZXJsaXN0IHsKQEAgLTQzNyw3ICs0
MzgsNyBAQCBzdHJ1Y3Qgc2VydmVybGlzdCB7CiAgICAgY2hhciAqbmFtZTsJCS8qIFNlcnZlcm5h
bWUgKi8KICAgICBjaGFyICp1c2VybmFtZTsKICAgICBjaGFyICpwYXNzd29yZDsKLSAgICBwY3Jl
ICpncm91cF9wY3JlOworICAgIHBjcmUyX2NvZGVfOCAqZ3JvdXBfcGNyZTsKICAgICB1bnNpZ25l
ZCBzaG9ydCBwb3J0OwkvKiBwb3J0LCBpZiAwLCBsb29rIHVwIG5udHAvdGNwICovCiAgICAgaW50
IHVzZXhoZHI7CQkvKiB1c2UgWEhEUiBpbnN0ZWFkIG9mIFhPVkVSIGlmIHNlbnNpYmxlICovCiAg
ICAgaW50IGRlc2NyaXB0aW9uczsJLyogZG93bmxvYWQgZGVzY3JpcHRpb25zIGFzIHdlbGwgKi8K
ZGlmZiAtLWdpdCBhL21hc29ja19zYTJuYW1lLmMgYi9tYXNvY2tfc2EybmFtZS5jCmluZGV4IDRj
OTgxMGIuLjUyN2JkMTIgMTAwNjQ0Ci0tLSBhL21hc29ja19zYTJuYW1lLmMKKysrIGIvbWFzb2Nr
X3NhMm5hbWUuYwpAQCAtNiw5ICs2LDEwIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI3Vu
ZGVmIF9HTlVfU09VUkNFCisjaWZuZGVmIF9HTlVfU09VUkNFCiAjZGVmaW5lIF9HTlVfU09VUkNF
CS8vIHRvIGV4cG9zZSBub25zdGFuZGFyZCBtZW1iZXJzIGluIGluLmggc3RydWN0dXJlcyB0bwog
CQkJLy8gZml4IGNvbXBpbGF0aW9uIGluIHN0cmljdCBjb25mb3JtYW5jZSBtb2RlIG9uIExpbnV4
CisjZW5kaWYKIAogI2luY2x1ZGUgIm1hc29jay5oIgogI2luY2x1ZGUgImNyaXRtZW0uaCIKZGlm
ZiAtLWdpdCBhL3BjcmV3cmFwLmMgYi9wY3Jld3JhcC5jCmluZGV4IDgyM2JkNTMuLmNkZGJiZTIg
MTAwNjQ0Ci0tLSBhL3BjcmV3cmFwLmMKKysrIGIvcGNyZXdyYXAuYwpAQCAtMSwxOSArMSwxOSBA
QAogI2luY2x1ZGUgInBjcmV3cmFwLmgiCi0jaW5jbHVkZSA8cGNyZS5oPgogI2luY2x1ZGUgImxu
X2xvZy5oIgogCi1wY3JlICpsbl9wY3JlX2NvbXBpbGUoY29uc3QgY2hhciAqcGF0dGVybiwgaW50
IG9wdGlvbnMsCitwY3JlMl9jb2RlXzggKmxuX3BjcmVfY29tcGlsZShjb25zdCBjaGFyICpwYXR0
ZXJuLCBpbnQgb3B0aW9ucywKIAljb25zdCB1bnNpZ25lZCBjaGFyICp0YWJsZXB0ciwgY29uc3Qg
Y2hhciAqZmlsZW5hbWUsCiAJdW5zaWduZWQgbG9uZyBsaW5lKQogewotICAgIGNvbnN0IGNoYXIg
KnJlZ2V4X2Vycm1zZzsKLSAgICBpbnQgcmVnZXhfZXJycG9zOwotICAgIHBjcmUgKnJlOworICAg
IGludCByZWdleF9lcnJjb2RlOworICAgIHNpemVfdCByZWdleF9lcnJwb3M7CisgICAgcGNyZTJf
Y29kZV84ICpyZTsKIAotICAgIHJlID0gcGNyZV9jb21waWxlKHBhdHRlcm4sIG9wdGlvbnMsCi0J
ICAgICZyZWdleF9lcnJtc2csICZyZWdleF9lcnJwb3MsIHRhYmxlcHRyKTsKLSAgICBpZiAoIXJl
KSB7CisgICAgaWYgKE5VTEwgPT0gKHJlID0gcGNyZTJfY29tcGlsZV84KHJlZ2V4LCBQQ1JFMl9a
RVJPX1RFUk1JTkFURUQsIFBDUkUyX01VTFRJTElORSwgJnJlZ2V4X2VycmNvZGUsCisJCQkJICAg
ICAgJnJlZ2V4X2VycnBvcywgTlVMTCkpKSB7CiAJLyogY291bGQgbm90IGNvbXBpbGUgKi8KKwl1
bnNpZ25lZCBjaGFyIHJlZ2V4X2Vycm1zZ1sxMDI0XTsKKwlpbnQgbGVuID0gcGNyZTJfZ2V0X2Vy
cm9yX21lc3NhZ2VfOChyZWdleF9lcnJjb2RlLCByZWdleF9lcnJtc2csIHNpemVvZihyZWdleF9l
cnJtc2cpKTsKIAlsbl9sb2coTE5MT0dfU1dBUk5JTkcsIExOTE9HX0NUT1AsCiAJCSIlczogaW52
YWxpZCBwYXR0ZXJuIGF0IGxpbmUgJWx1OiAlcyIsCiAJCWZpbGVuYW1lLCBsaW5lLCByZWdleF9l
cnJtc2cpOwpkaWZmIC0tZ2l0IGEvcGNyZXdyYXAuaCBiL3BjcmV3cmFwLmgKaW5kZXggYTYzNzA1
My4uNDdlZTAzOSAxMDA2NDQKLS0tIGEvcGNyZXdyYXAuaAorKysgYi9wY3Jld3JhcC5oCkBAIC0x
LDkgKzEsMTAgQEAKICNpZm5kZWYgUENSRVdSQVBfSAogI2RlZmluZSBQQ1JFV1JBUF9ICiAKLSNp
bmNsdWRlIDxwY3JlLmg+CisjZGVmaW5lIFBDUkUyX0NPREVfVU5JVF9XSURUSCAwCS8qIGxldCdz
IGZhaWwgdW5sZXNzIGV4cGxpY2l0bHkgdXNpbmcgdGhlIF84KCkgZnVuY3Rpb25zICovCisjaW5j
bHVkZSA8cGNyZTIuaD4KIAotcGNyZSAqbG5fcGNyZV9jb21waWxlKGNvbnN0IGNoYXIgKnZhbHVl
LCBpbnQgb3B0aW9ucywKK3BjcmUyX2NvZGVfOCAqbG5fcGNyZV9jb21waWxlKGNvbnN0IGNoYXIg
KnZhbHVlLCBpbnQgb3B0aW9ucywKIAljb25zdCB1bnNpZ25lZCBjaGFyICp0YWJsZXB0ciwgY29u
c3QgY2hhciAqZmlsZW5hbWUsCiAJdW5zaWduZWQgbG9uZyBsaW5lKTsKICNlbmRpZgotLSAKMi40
OS4wCgotLSAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
bGVhZm5vZGUtbGlzdCBtYWlsaW5nIGxpc3QKbGVhZm5vZGUtbGlzdEBsZWFmbm9kZS5vcmcKaHR0
cHM6Ly93d3cubGVhZm5vZGUub3JnL21haWxtYW4vbGlzdGluZm8vbGVhZm5vZGUtbGlzdApodHRw
Oi8vbGVhZm5vZGUuc291cmNlZm9yZ2UubmV0Lwo=