[PATCH 3/5] symtab: Reduce redundant strlen on macro names

Eric Blake via M4-patches <[email protected]> Wed, 2 Apr 2025 17:28:38 -0500
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
SW4gbWFueSBjYXNlcywgdGhlIGxlbmd0aCBvZiBhIG1hY3JvIG5hbWUgd2FzIHByZXZpb3VzbHkg
bGVhcm5lZDsgbm8KbmVlZCB0byByZXBlYXQgdGhlIGVmZm9ydCBvbiBhIHN0cmxlbi4KCiogc3Jj
L200LmggKHN0cnVjdCBzeW1ib2wpOiBBZGQgbGVuIG1lbWJlci4KKFNZTUJPTF9OQU1FX0xFTik6
IE5ldyBtYWNyby4KKGxvb2t1cF9zeW1ib2wsIGRlZmluZV91c2VyX21hY3JvKTogVXBkYXRlIHBy
b3RvdHlwZXMuCiogc3JjL3N5bXRhYiAobG9va3VwX3N5bWJvbCk6IFVwZGF0ZSBzaWduYXR1cmUg
dG8gdGFrZSBsZW5ndGguCihzeW10YWJfZGVidWcsIHN5bXRhYl9wcmludF9saXN0KTogQWRqdXN0
IGNhbGxlcnMuCiogc3JjL2J1aWx0aW4uYyAoZGVmaW5lX3VzZXJfbWFjcm8pOiBVcGRhdGUgc2ln
bmF0dXJlIHRvIHRha2UgbGVuZ3Rocy4KKGRlZmluZV9idWlsdGluLCBidWlsdGluX2luaXQsIGRl
ZmluZV9tYWNybywgbTRfdW5kZWZpbmUsIG00X3BvcGRlZikKKG00X2lmZGVmLCBtNF9kdW1wZGVm
LCBtNF9pbmRpciwgbTRfZGVmbiwgc2V0X3RyYWNlLCBtNF90cmFjZW9uKQoobTRfdHJhY2VvZmYp
OiBBZGp1c3QgY2FsbGVycy4KKiBzcmMvZnJlZXplLmMgKHJlbG9hZF9mcm96ZW5fc3RhdGUpOiBM
aWtld2lzZS4KKiBzcmMvbTQuYyAobWFpbik6IExpa2V3aXNlLgoqIHNyYy9tYWNyby5jIChleHBh
bmRfdG9rZW4sIGNvbGxlY3RfYXJndW1lbnRzKTogTGlrZXdpc2UuCi0tLQogc3JjL2J1aWx0aW4u
YyB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogc3JjL2ZyZWV6ZS5jICB8ICAzICsrLQogc3JjL200LmMgICAgICB8ICA5ICsrKysrLS0tCiBz
cmMvbTQuaCAgICAgIHwgIDcgKysrKystLQogc3JjL21hY3JvLmMgICB8ICA1ICsrKy0tCiBzcmMv
c3ltdGFiLmMgIHwgMjIgKysrKysrKysrKysrKystLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgNjMg
aW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2J1aWx0aW4u
YyBiL3NyYy9idWlsdGluLmMKaW5kZXggNjllYjJhOGMuLjkwN2VmYzlkIDEwMDY0NAotLS0gYS9z
cmMvYnVpbHRpbi5jCisrKyBiL3NyYy9idWlsdGluLmMKQEAgLTIxNCw3ICsyMTQsNyBAQCBkZWZp
bmVfYnVpbHRpbiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgYnVpbHRpbiAqYnAsIHN5bWJvbF9s
b29rdXAgbW9kZSkKIHsKICAgc3ltYm9sICpzeW07CgotICBzeW0gPSBsb29rdXBfc3ltYm9sIChu
YW1lLCBtb2RlKTsKKyAgc3ltID0gbG9va3VwX3N5bWJvbCAobmFtZSwgc3RybGVuIChuYW1lKSwg
bW9kZSk7CiAgIFNZTUJPTF9UWVBFIChzeW0pID0gVE9LRU5fRlVOQzsKICAgU1lNQk9MX01BQ1JP
X0FSR1MgKHN5bSkgPSBicC0+Z3Jva3NfbWFjcm9fYXJnczsKICAgU1lNQk9MX0JMSU5EX05PX0FS
R1MgKHN5bSkgPSBicC0+YmxpbmRfaWZfbm9fYXJnczsKQEAgLTI4NywzNSArMjg3LDM2IEBAIGZy
ZWVfbWFjcm9fc2VxdWVuY2UgKHZvaWQpCiBgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKIHZvaWQKLWRlZmluZV91c2Vy
X21hY3JvIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp0ZXh0LCBzeW1ib2xfbG9va3Vw
IG1vZGUpCitkZWZpbmVfdXNlcl9tYWNybyAoY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVfbGVu
LCBjb25zdCBjaGFyICp0ZXh0LAorICAgICAgICAgICAgICAgICAgIHNpemVfdCB0ZXh0X2xlbiwg
c3ltYm9sX2xvb2t1cCBtb2RlKQogewogICBzeW1ib2wgKnM7CiAgIGNoYXIgKmRlZm4gPSB4c3Ry
ZHVwICh0ZXh0ID8gdGV4dCA6ICIiKTsKLSAgc2l6ZV90IGxlbiA9IHN0cmxlbiAoZGVmbik7Cgot
ICBpZiAobGVuID4gSU5UX01BWCkKKyAgaWYgKHRleHRfbGVuID4gSU5UX01BWCkKICAgICB7CiAg
ICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsCiAgICAgICAgICAgICAgICAgXygibWFj
cm8gYCVzJyBkZWZpbml0aW9uIHRvbyBsb25nOyB0cnVuY2F0aW5nIHRvIElOVF9NQVggYnl0ZXMi
KSwKICAgICAgICAgICAgICAgICAgIG5hbWUpKTsKLSAgICAgIGxlbiA9IElOVF9NQVg7CisgICAg
ICB0ZXh0X2xlbiA9IElOVF9NQVg7CiAgICAgfQoKLSAgcyA9IGxvb2t1cF9zeW1ib2wgKG5hbWUs
IG1vZGUpOworICBzID0gbG9va3VwX3N5bWJvbCAobmFtZSwgbmFtZV9sZW4sIG1vZGUpOwogICBp
ZiAoU1lNQk9MX1RZUEUgKHMpID09IFRPS0VOX1RFWFQpCiAgICAgZnJlZSAoU1lNQk9MX1RFWFQg
KHMpKTsKCiAgIFNZTUJPTF9UWVBFIChzKSA9IFRPS0VOX1RFWFQ7CiAgIFNZTUJPTF9URVhUIChz
KSA9IGRlZm47Ci0gIFNZTUJPTF9URVhUX0xFTiAocykgPSBsZW47CisgIFNZTUJPTF9URVhUX0xF
TiAocykgPSB0ZXh0X2xlbjsKCiAgIC8qIEltcGxlbWVudCAtLXdhcm4tbWFjcm8tc2VxdWVuY2Uu
ICAqLwogICBpZiAobWFjcm9fc2VxdWVuY2VfaW51c2UgJiYgdGV4dCkKICAgICB7CiAgICAgICBy
ZWdvZmZfdCBvZmZzZXQgPSAwOwoKLSAgICAgIHdoaWxlICgob2Zmc2V0ID0gcmVfc2VhcmNoICgm
bWFjcm9fc2VxdWVuY2VfYnVmLCBkZWZuLCBsZW4sIG9mZnNldCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZW4gLSBvZmZzZXQsICZtYWNyb19zZXF1ZW5jZV9yZWdzKSkgPj0g
MCkKKyAgICAgIHdoaWxlICgob2Zmc2V0ID0gcmVfc2VhcmNoICgmbWFjcm9fc2VxdWVuY2VfYnVm
LCBkZWZuLCB0ZXh0X2xlbiwgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRleHRfbGVuIC0gb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZtYWNyb19zZXF1ZW5jZV9yZWdzKSkgPj0gMCkKICAgICAgICAgewogICAgICAgICAgIC8qIFNr
aXAgZW1wdHkgbWF0Y2hlcy4gICovCiAgICAgICAgICAgaWYgKG1hY3JvX3NlcXVlbmNlX3JlZ3Mu
c3RhcnRbMF0gPT0gbWFjcm9fc2VxdWVuY2VfcmVncy5lbmRbMF0pCkBAIC0zNjcsMTIgKzM2OCwx
NCBAQCBidWlsdGluX2luaXQgKHZvaWQpCiAgICAgaWYgKG5vX2dudV9leHRlbnNpb25zKQogICAg
ICAgewogICAgICAgICBpZiAocHAtPnVuaXhfbmFtZSAhPSBOVUxMKQotICAgICAgICAgIGRlZmlu
ZV91c2VyX21hY3JvIChwcC0+dW5peF9uYW1lLCBwcC0+ZnVuYywgU1lNQk9MX0lOU0VSVCk7Cisg
ICAgICAgICAgZGVmaW5lX3VzZXJfbWFjcm8gKHBwLT51bml4X25hbWUsIHN0cmxlbiAocHAtPnVu
aXhfbmFtZSksIHBwLT5mdW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4g
KHBwLT5mdW5jKSwgU1lNQk9MX0lOU0VSVCk7CiAgICAgICB9CiAgICAgZWxzZQogICAgICAgewog
ICAgICAgICBpZiAocHAtPmdudV9uYW1lICE9IE5VTEwpCi0gICAgICAgICAgZGVmaW5lX3VzZXJf
bWFjcm8gKHBwLT5nbnVfbmFtZSwgcHAtPmZ1bmMsIFNZTUJPTF9JTlNFUlQpOworICAgICAgICAg
IGRlZmluZV91c2VyX21hY3JvIChwcC0+Z251X25hbWUsIHN0cmxlbiAocHAtPmdudV9uYW1lKSwg
cHAtPmZ1bmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbiAocHAtPmZ1bmMp
LCBTWU1CT0xfSU5TRVJUKTsKICAgICAgIH0KIH0KCkBAIC01NjUsMTQgKzU2OCwxNCBAQCBkZWZp
bmVfbWFjcm8gKGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndiwgc3ltYm9sX2xvb2t1cCBtb2Rl
KQoKICAgaWYgKGFyZ2MgPT0gMikKICAgICB7Ci0gICAgICBkZWZpbmVfdXNlcl9tYWNybyAoQVJH
ICgxKSwgIiIsIG1vZGUpOworICAgICAgZGVmaW5lX3VzZXJfbWFjcm8gKEFSRyAoMSksIEFSR0xF
TiAoMSksICIiLCAwLCBtb2RlKTsKICAgICAgIHJldHVybjsKICAgICB9CgogICBzd2l0Y2ggKFRP
S0VOX0RBVEFfVFlQRSAoYXJndlsyXSkpCiAgICAgewogICAgIGNhc2UgVE9LRU5fVEVYVDoKLSAg
ICAgIGRlZmluZV91c2VyX21hY3JvIChBUkcgKDEpLCBBUkcgKDIpLCBtb2RlKTsKKyAgICAgIGRl
ZmluZV91c2VyX21hY3JvIChBUkcgKDEpLCBBUkdMRU4gKDEpLCBBUkcgKDIpLCBBUkdMRU4gKDIp
LCBtb2RlKTsKICAgICAgIGJyZWFrOwoKICAgICBjYXNlIFRPS0VOX0ZVTkM6CkBAIC02MDQsNyAr
NjA3LDcgQEAgbTRfdW5kZWZpbmUgKHN0cnVjdCBvYnN0YWNrICpvYnMgTUFZQkVfVU5VU0VELCBp
bnQgYXJnYywgdG9rZW5fZGF0YSAqKmFyZ3YpCiAgIGlmIChiYWRfYXJnYyAoYXJndlswXSwgYXJn
YywgMiwgLTEpKQogICAgIHJldHVybjsKICAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykKLSAg
ICBsb29rdXBfc3ltYm9sIChBUkcgKGkpLCBTWU1CT0xfREVMRVRFKTsKKyAgICBsb29rdXBfc3lt
Ym9sIChBUkcgKGkpLCBBUkdMRU4gKGkpLCBTWU1CT0xfREVMRVRFKTsKIH0KCiBzdGF0aWMgdm9p
ZApAQCAtNjIwLDcgKzYyMyw3IEBAIG00X3BvcGRlZiAoc3RydWN0IG9ic3RhY2sgKm9icyBNQVlC
RV9VTlVTRUQsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikKICAgaWYgKGJhZF9hcmdjIChh
cmd2WzBdLCBhcmdjLCAyLCAtMSkpCiAgICAgcmV0dXJuOwogICBmb3IgKGkgPSAxOyBpIDwgYXJn
YzsgaSsrKQotICAgIGxvb2t1cF9zeW1ib2wgKEFSRyAoaSksIFNZTUJPTF9QT1BERUYpOworICAg
IGxvb2t1cF9zeW1ib2wgKEFSRyAoaSksIEFSR0xFTiAoaSksIFNZTUJPTF9QT1BERUYpOwogfQog
DAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0uCkBAIC02MzUsNyArNjM4LDcgQEAgbTRfaWZkZWYg
KHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikKCiAgIGlm
IChiYWRfYXJnYyAoYXJndlswXSwgYXJnYywgMywgNCkpCiAgICAgcmV0dXJuOwotICBzID0gbG9v
a3VwX3N5bWJvbCAoQVJHICgxKSwgU1lNQk9MX0xPT0tVUCk7CisgIHMgPSBsb29rdXBfc3ltYm9s
IChBUkcgKDEpLCBBUkdMRU4gKDEpLCBTWU1CT0xfTE9PS1VQKTsKCiAgIGlmIChzICE9IE5VTEwg
JiYgU1lNQk9MX1RZUEUgKHMpICE9IFRPS0VOX1ZPSUQpCiAgICAgcmVzdWx0ID0gMjsKQEAgLTc1
Miw3ICs3NTUsOCBAQCBtNF9kdW1wZGVmIChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywg
dG9rZW5fZGF0YSAqKmFyZ3YpCiAgICAgewogICAgICAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkr
KykKICAgICAgICAgewotICAgICAgICAgIHMgPSBsb29rdXBfc3ltYm9sIChUT0tFTl9EQVRBX1RF
WFQgKGFyZ3ZbaV0pLCBTWU1CT0xfTE9PS1VQKTsKKyAgICAgICAgICBzID0gbG9va3VwX3N5bWJv
bCAoVE9LRU5fREFUQV9URVhUIChhcmd2W2ldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVE9LRU5fREFUQV9MRU4gKGFyZ3ZbaV0pLCBTWU1CT0xfTE9PS1VQKTsKICAgICAgICAgICBp
ZiAocyAhPSBOVUxMICYmIFNZTUJPTF9UWVBFIChzKSAhPSBUT0tFTl9WT0lEKQogICAgICAgICAg
ICAgZHVtcF9zeW1ib2wgKHMsICZkYXRhKTsKICAgICAgICAgICBlbHNlCkBAIC04NjcsNyArODcx
LDcgQEAgbTRfaW5kaXIgKHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCB0b2tlbl9kYXRh
ICoqYXJndikKICAgICB9CgogICBuYW1lID0gQVJHICgxKTsKLSAgcyA9IGxvb2t1cF9zeW1ib2wg
KG5hbWUsIFNZTUJPTF9MT09LVVApOworICBzID0gbG9va3VwX3N5bWJvbCAobmFtZSwgQVJHTEVO
ICgxKSwgU1lNQk9MX0xPT0tVUCk7CiAgIGlmIChzID09IE5VTEwgfHwgU1lNQk9MX1RZUEUgKHMp
ID09IFRPS0VOX1ZPSUQpCiAgICAgTTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLAogICAgICAg
ICAgICAgICBfKCJ1bmRlZmluZWQgbWFjcm8gYCVzJyIpLCBuYW1lKSk7CkBAIC04OTcsMTYgKzkw
MSwxNiBAQCBtNF9kZWZuIChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5fZGF0
YSAqKmFyZ3YpCiB7CiAgIHN5bWJvbCAqczsKICAgYnVpbHRpbl9mdW5jICpiOwotICB1bnNpZ25l
ZCBpbnQgaTsKKyAgaW50IGk7CgogICBpZiAoYmFkX2FyZ2MgKGFyZ3ZbMF0sIGFyZ2MsIDIsIC0x
KSkKICAgICByZXR1cm47CgogICBhc3NlcnQgKDAgPCBhcmdjKTsKLSAgZm9yIChpID0gMTsgaSA8
ICh1bnNpZ25lZCkgYXJnYzsgaSsrKQorICBmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKQogICAg
IHsKLSAgICAgIGNvbnN0IGNoYXIgKmFyZyA9IEFSRygoaW50KSBpKTsKLSAgICAgIHMgPSBsb29r
dXBfc3ltYm9sIChhcmcsIFNZTUJPTF9MT09LVVApOworICAgICAgY29uc3QgY2hhciAqYXJnID0g
QVJHKGkpOworICAgICAgcyA9IGxvb2t1cF9zeW1ib2wgKGFyZywgQVJHTEVOIChpKSwgU1lNQk9M
X0xPT0tVUCk7CiAgICAgICBpZiAocyA9PSBOVUxMKQogICAgICAgICBjb250aW51ZTsKCkBAIC0x
NjIwLDcgKzE2MjQsNyBAQCBzZXRfdHJhY2UgKHN5bWJvbCAqc3ltLCB2b2lkICpkYXRhKQogICBT
WU1CT0xfVFJBQ0VEIChzeW0pID0gZGF0YSAhPSBOVUxMOwogICAvKiBSZW1vdmUgcGxhY2Vob2xk
ZXIgZnJvbSB0YWJsZSBpZiBtYWNybyBpcyB1bmRlZmluZWQgYW5kIHVudHJhY2VkLiAgKi8KICAg
aWYgKFNZTUJPTF9UWVBFIChzeW0pID09IFRPS0VOX1ZPSUQgJiYgZGF0YSA9PSBOVUxMKQotICAg
IGxvb2t1cF9zeW1ib2wgKFNZTUJPTF9OQU1FIChzeW0pLCBTWU1CT0xfUE9QREVGKTsKKyAgICBs
b29rdXBfc3ltYm9sIChTWU1CT0xfTkFNRSAoc3ltKSwgU1lNQk9MX05BTUVfTEVOIChzeW0pLCBT
WU1CT0xfUE9QREVGKTsKIH0KCiBzdGF0aWMgdm9pZApAQCAtMTYzNCw5ICsxNjM4LDkgQEAgbTRf
dHJhY2VvbiAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2
KQogICBlbHNlCiAgICAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykKICAgICAgIHsKLSAgICAg
ICAgcyA9IGxvb2t1cF9zeW1ib2wgKEFSRyAoaSksIFNZTUJPTF9MT09LVVApOworICAgICAgICBz
ID0gbG9va3VwX3N5bWJvbCAoQVJHIChpKSwgQVJHTEVOIChpKSwgU1lNQk9MX0xPT0tVUCk7CiAg
ICAgICAgIGlmICghcykKLSAgICAgICAgICBzID0gbG9va3VwX3N5bWJvbCAoQVJHIChpKSwgU1lN
Qk9MX0lOU0VSVCk7CisgICAgICAgICAgcyA9IGxvb2t1cF9zeW1ib2wgKEFSRyAoaSksIEFSR0xF
TiAoaSksIFNZTUJPTF9JTlNFUlQpOwogICAgICAgICBzZXRfdHJhY2UgKHMsIG9icyk7CiAgICAg
ICB9CiB9CkBAIC0xNjU2LDcgKzE2NjAsOCBAQCBtNF90cmFjZW9mZiAoc3RydWN0IG9ic3RhY2sg
Km9icyBNQVlCRV9VTlVTRUQsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikKICAgZWxzZQog
ICAgIGZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspCiAgICAgICB7Ci0gICAgICAgIHMgPSBsb29r
dXBfc3ltYm9sIChUT0tFTl9EQVRBX1RFWFQgKGFyZ3ZbaV0pLCBTWU1CT0xfTE9PS1VQKTsKKyAg
ICAgICAgcyA9IGxvb2t1cF9zeW1ib2wgKFRPS0VOX0RBVEFfVEVYVCAoYXJndltpXSksIFRPS0VO
X0RBVEFfTEVOIChhcmd2W2ldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZTUJPTF9M
T09LVVApOwogICAgICAgICBpZiAocyAhPSBOVUxMKQogICAgICAgICAgIHNldF90cmFjZSAocywg
TlVMTCk7CiAgICAgICB9CmRpZmYgLS1naXQgYS9zcmMvZnJlZXplLmMgYi9zcmMvZnJlZXplLmMK
aW5kZXggZDBiNWNlY2QuLmJmN2YyNGJlIDEwMDY0NAotLS0gYS9zcmMvZnJlZXplLmMKKysrIGIv
c3JjL2ZyZWV6ZS5jCkBAIC0zNTcsNyArMzU3LDggQEAgcmVsb2FkX2Zyb3plbl9zdGF0ZSAoY29u
c3QgY2hhciAqbmFtZSkKCiAgICAgICAgICAgICAgIC8qIEVudGVyIGEgbWFjcm8gaGF2aW5nIGFu
IGV4cGFuc2lvbiB0ZXh0IGFzIGEgZGVmaW5pdGlvbi4gICovCgotICAgICAgICAgICAgICBkZWZp
bmVfdXNlcl9tYWNybyAoc3RyaW5nWzBdLCBzdHJpbmdbMV0sIFNZTUJPTF9QVVNIREVGKTsKKyAg
ICAgICAgICAgICAgZGVmaW5lX3VzZXJfbWFjcm8gKHN0cmluZ1swXSwgc3RybGVuIChzdHJpbmdb
MF0pLCBzdHJpbmdbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4g
KHN0cmluZ1sxXSksIFNZTUJPTF9QVVNIREVGKTsKICAgICAgICAgICAgICAgYnJlYWs7CgogICAg
ICAgICAgICAgY2FzZSAnUSc6CmRpZmYgLS1naXQgYS9zcmMvbTQuYyBiL3NyYy9tNC5jCmluZGV4
IGRiNjZkOGRmLi4wNDM5YzZlMiAxMDA2NDQKLS0tIGEvc3JjL200LmMKKysrIGIvc3JjL200LmMK
QEAgLTY2NSwxNyArNjY1LDIwIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICpjb25zdCAqYXJndikK
ICAgICAgICAgICAgIGNoYXIgKm1hY3JvX3ZhbHVlID0gc3RyY2hyIChtYWNyb19uYW1lLCAnPScp
OwogICAgICAgICAgICAgaWYgKG1hY3JvX3ZhbHVlKQogICAgICAgICAgICAgICAqbWFjcm9fdmFs
dWUrKyA9ICdcMCc7Ci0gICAgICAgICAgICBkZWZpbmVfdXNlcl9tYWNybyAobWFjcm9fbmFtZSwg
bWFjcm9fdmFsdWUsIFNZTUJPTF9JTlNFUlQpOworICAgICAgICAgICAgZGVmaW5lX3VzZXJfbWFj
cm8gKG1hY3JvX25hbWUsIHN0cmxlbiAobWFjcm9fbmFtZSksIG1hY3JvX3ZhbHVlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1hY3JvX3ZhbHVlID8gc3RybGVuIChtYWNyb192YWx1
ZSkgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZTUJPTF9JTlNFUlQpOwog
ICAgICAgICAgICAgZnJlZSAobWFjcm9fbmFtZSk7CiAgICAgICAgICAgfQogICAgICAgICAgIGJy
ZWFrOwoKICAgICAgICAgY2FzZSAnVSc6Ci0gICAgICAgICAgbG9va3VwX3N5bWJvbCAoZGVmaW5l
cy0+YXJnLCBTWU1CT0xfREVMRVRFKTsKKyAgICAgICAgICBsb29rdXBfc3ltYm9sIChkZWZpbmVz
LT5hcmcsIHN0cmxlbiAoZGVmaW5lcy0+YXJnKSwgU1lNQk9MX0RFTEVURSk7CiAgICAgICAgICAg
YnJlYWs7CgogICAgICAgICBjYXNlICd0JzoKLSAgICAgICAgICBzeW0gPSBsb29rdXBfc3ltYm9s
IChkZWZpbmVzLT5hcmcsIFNZTUJPTF9JTlNFUlQpOworICAgICAgICAgIHN5bSA9IGxvb2t1cF9z
eW1ib2wgKGRlZmluZXMtPmFyZywgc3RybGVuIChkZWZpbmVzLT5hcmcpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNZTUJPTF9JTlNFUlQpOwogICAgICAgICAgIFNZTUJPTF9UUkFD
RUQgKHN5bSkgPSB0cnVlOwogICAgICAgICAgIGJyZWFrOwoKZGlmZiAtLWdpdCBhL3NyYy9tNC5o
IGIvc3JjL200LmgKaW5kZXggYjg0ZjQyNjIuLjZjMjc5MWNkIDEwMDY0NAotLS0gYS9zcmMvbTQu
aAorKysgYi9zcmMvbTQuaApAQCAtMzc1LDYgKzM3NSw3IEBAIHN0cnVjdCBzeW1ib2wKCiAgIHNp
emVfdCBoYXNoOwogICBjaGFyICpuYW1lOworICBpbnQgbmFtZWxlbjsKICAgdG9rZW5fZGF0YSBk
YXRhOwogfTsKCkBAIC0zODUsNiArMzg2LDcgQEAgc3RydWN0IHN5bWJvbAogI2RlZmluZSBTWU1C
T0xfREVMRVRFRChTKSAgICAgICAoKFMpLT5kZWxldGVkKQogI2RlZmluZSBTWU1CT0xfUEVORElO
R19FWFBBTlNJT05TKFMpICgoUyktPnBlbmRpbmdfZXhwYW5zaW9ucykKICNkZWZpbmUgU1lNQk9M
X05BTUUoUykgICAgICAgICAgKChTKS0+bmFtZSkKKyNkZWZpbmUgU1lNQk9MX05BTUVfTEVOKFMp
ICAgICAgKChTKS0+bmFtZWxlbikKICNkZWZpbmUgU1lNQk9MX1RZUEUoUykgICAgICAgICAgKFRP
S0VOX0RBVEFfVFlQRSAoJihTKS0+ZGF0YSkpCiAjZGVmaW5lIFNZTUJPTF9URVhUKFMpICAgICAg
ICAgIChUT0tFTl9EQVRBX1RFWFQgKCYoUyktPmRhdGEpKQogI2RlZmluZSBTWU1CT0xfVEVYVF9M
RU4oUykgICAgICAoVE9LRU5fREFUQV9MRU4gKCYoUyktPmRhdGEpKQpAQCAtMzk4LDcgKzQwMCw3
IEBAIHR5cGVkZWYgdm9pZCBoYWNrX3N5bWJvbCAoc3ltYm9sICosIHZvaWQgKik7CgogZXh0ZXJu
IHZvaWQgZnJlZV9zeW1ib2wgKHN5bWJvbCAqc3ltKTsKIGV4dGVybiB2b2lkIHN5bXRhYl9pbml0
ICh2b2lkKTsKLWV4dGVybiBzeW1ib2wgKmxvb2t1cF9zeW1ib2wgKGNvbnN0IGNoYXIgKiwgc3lt
Ym9sX2xvb2t1cCk7CitleHRlcm4gc3ltYm9sICpsb29rdXBfc3ltYm9sIChjb25zdCBjaGFyICos
IGludCwgc3ltYm9sX2xvb2t1cCk7CiBleHRlcm4gdm9pZCBoYWNrX2FsbF9zeW1ib2xzIChoYWNr
X3N5bWJvbCAqLCB2b2lkICopOwogDAogLyogRmlsZTogbWFjcm8uYyAgLS0tIG1hY3JvIGV4cGFu
c2lvbi4gICovCkBAIC00NDAsNyArNDQyLDggQEAgZXh0ZXJuIHZvaWQgYnVpbHRpbl9pbml0ICh2
b2lkKTsKIGV4dGVybiB2b2lkIGRlZmluZV9idWlsdGluIChjb25zdCBjaGFyICosIGNvbnN0IGJ1
aWx0aW4gKiwgc3ltYm9sX2xvb2t1cCk7CiBleHRlcm4gdm9pZCBzZXRfbWFjcm9fc2VxdWVuY2Ug
KGNvbnN0IGNoYXIgKik7CiBleHRlcm4gdm9pZCBmcmVlX21hY3JvX3NlcXVlbmNlICh2b2lkKTsK
LWV4dGVybiB2b2lkIGRlZmluZV91c2VyX21hY3JvIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg
Kiwgc3ltYm9sX2xvb2t1cCk7CitleHRlcm4gdm9pZCBkZWZpbmVfdXNlcl9tYWNybyAoY29uc3Qg
Y2hhciAqLCBpbnQsIGNvbnN0IGNoYXIgKiwgc2l6ZV90LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN5bWJvbF9sb29rdXApOwogZXh0ZXJuIHZvaWQgdW5kaXZlcnRfYWxsICh2b2lk
KTsKIGV4dGVybiB2b2lkIGV4cGFuZF91c2VyX21hY3JvIChzdHJ1Y3Qgb2JzdGFjayAqLCBzeW1i
b2wgKiwgaW50LCB0b2tlbl9kYXRhICoqKTsKIGV4dGVybiB2b2lkIG00X3BsYWNlaG9sZGVyIChz
dHJ1Y3Qgb2JzdGFjayAqLCBpbnQsIHRva2VuX2RhdGEgKiopCmRpZmYgLS1naXQgYS9zcmMvbWFj
cm8uYyBiL3NyYy9tYWNyby5jCmluZGV4IDc2ZTQ2OWUyLi41OTMyNTEwYiAxMDA2NDQKLS0tIGEv
c3JjL21hY3JvLmMKKysrIGIvc3JjL21hY3JvLmMKQEAgLTEwMCw3ICsxMDAsOCBAQCBleHBhbmRf
dG9rZW4gKHN0cnVjdCBvYnN0YWNrICpvYnMsIHRva2VuX3R5cGUgdCwgdG9rZW5fZGF0YSAqdGQs
IGludCBsaW5lKQogICAgICAgYnJlYWs7CgogICAgIGNhc2UgVE9LRU5fV09SRDoKLSAgICAgIHN5
bSA9IGxvb2t1cF9zeW1ib2wgKFRPS0VOX0RBVEFfVEVYVCAodGQpLCBTWU1CT0xfTE9PS1VQKTsK
KyAgICAgIHN5bSA9IGxvb2t1cF9zeW1ib2wgKFRPS0VOX0RBVEFfVEVYVCAodGQpLCBUT0tFTl9E
QVRBX0xFTiAodGQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lNQk9MX0xPT0tVUCk7
CiAgICAgICBpZiAoc3ltID09IE5VTEwgfHwgU1lNQk9MX1RZUEUgKHN5bSkgPT0gVE9LRU5fVk9J
RAogICAgICAgICAgIHx8IChTWU1CT0xfVFlQRSAoc3ltKSA9PSBUT0tFTl9GVU5DCiAgICAgICAg
ICAgICAgICYmIFNZTUJPTF9CTElORF9OT19BUkdTIChzeW0pCkBAIC0yMzgsNyArMjM5LDcgQEAg
Y29sbGVjdF9hcmd1bWVudHMgKHN5bWJvbCAqc3ltLCBzdHJ1Y3Qgb2JzdGFjayAqYXJncHRyLAoK
ICAgVE9LRU5fREFUQV9UWVBFICgmdGQpID0gVE9LRU5fVEVYVDsKICAgVE9LRU5fREFUQV9URVhU
ICgmdGQpID0gU1lNQk9MX05BTUUgKHN5bSk7Ci0gIFRPS0VOX0RBVEFfTEVOICgmdGQpID0gc3Ry
bGVuIChTWU1CT0xfTkFNRSAoc3ltKSk7CisgIFRPS0VOX0RBVEFfTEVOICgmdGQpID0gU1lNQk9M
X05BTUVfTEVOIChzeW0pOwogICB0ZHAgPSAodG9rZW5fZGF0YSAqKSBvYnN0YWNrX2NvcHkgKGFy
Z3VtZW50cywgJnRkLCBzaXplb2YgdGQpOwogICBvYnN0YWNrX3B0cl9ncm93IChhcmdwdHIsIHRk
cCk7CgpkaWZmIC0tZ2l0IGEvc3JjL3N5bXRhYi5jIGIvc3JjL3N5bXRhYi5jCmluZGV4IGVjM2Jh
MmEzLi5lMThmYzk3ZCAxMDA2NDQKLS0tIGEvc3JjL3N5bXRhYi5jCisrKyBiL3NyYy9zeW10YWIu
YwpAQCAtMTcyLDcgKzE3Miw3IEBAIGZyZWVfc3ltYm9sIChzeW1ib2wgKnN5bSkKIGAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKi8KCiBzeW1ib2wgKgotbG9va3VwX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwgc3ltYm9s
X2xvb2t1cCBtb2RlKQorbG9va3VwX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbiwg
c3ltYm9sX2xvb2t1cCBtb2RlKQogewogICBzaXplX3QgaDsKICAgaW50IGNtcCA9IDE7CkBAIC0y
MjcsNiArMjI3LDcgQEAgbG9va3VwX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwgc3ltYm9sX2xv
b2t1cCBtb2RlKQogICAgICAgICAgICAgICBTWU1CT0xfVFJBQ0VEIChzeW0pID0gU1lNQk9MX1RS
QUNFRCAob2xkKTsKICAgICAgICAgICAgICAgc3ltLT5oYXNoID0gaDsKICAgICAgICAgICAgICAg
U1lNQk9MX05BTUUgKHN5bSkgPSBTWU1CT0xfTkFNRSAob2xkKTsKKyAgICAgICAgICAgICAgU1lN
Qk9MX05BTUVfTEVOIChzeW0pID0gU1lNQk9MX05BTUVfTEVOIChvbGQpOwogICAgICAgICAgICAg
ICBTWU1CT0xfTUFDUk9fQVJHUyAoc3ltKSA9IGZhbHNlOwogICAgICAgICAgICAgICBTWU1CT0xf
QkxJTkRfTk9fQVJHUyAoc3ltKSA9IGZhbHNlOwogICAgICAgICAgICAgICBTWU1CT0xfREVMRVRF
RCAoc3ltKSA9IGZhbHNlOwpAQCAtMjY3LDkgKzI2OCwxMyBAQCBsb29rdXBfc3ltYm9sIChjb25z
dCBjaGFyICpuYW1lLCBzeW1ib2xfbG9va3VwIG1vZGUpCiAgICAgICAgICAgU1lNQk9MX1NUQUNL
IChzeW0pLT5uZXh0ID0gTlVMTDsKICAgICAgICAgICBTWU1CT0xfVFJBQ0VEIChzeW0pID0gU1lN
Qk9MX1RSQUNFRCAoU1lNQk9MX1NUQUNLIChzeW0pKTsKICAgICAgICAgICBTWU1CT0xfTkFNRSAo
c3ltKSA9IFNZTUJPTF9OQU1FIChTWU1CT0xfU1RBQ0sgKHN5bSkpOworICAgICAgICAgIFNZTUJP
TF9OQU1FX0xFTiAoc3ltKSA9IFNZTUJPTF9OQU1FX0xFTiAoU1lNQk9MX1NUQUNLIChzeW0pKTsK
ICAgICAgICAgfQogICAgICAgZWxzZQotICAgICAgICBTWU1CT0xfTkFNRSAoc3ltKSA9IHhzdHJk
dXAgKG5hbWUpOworICAgICAgICB7CisgICAgICAgICAgU1lNQk9MX05BTUUgKHN5bSkgPSB4c3Ry
ZHVwIChuYW1lKTsKKyAgICAgICAgICBTWU1CT0xfTkFNRV9MRU4gKHN5bSkgPSBsZW47CisgICAg
ICAgIH0KICAgICAgIHJldHVybiBzeW07CgogICAgIGNhc2UgU1lNQk9MX0RFTEVURToKQEAgLTMx
NSw2ICszMjAsNyBAQCBsb29rdXBfc3ltYm9sIChjb25zdCBjaGFyICpuYW1lLCBzeW1ib2xfbG9v
a3VwIG1vZGUpCiAgICAgICAgICAgICBTWU1CT0xfVFJBQ0VEIChzeW0pID0gdHJ1ZTsKICAgICAg
ICAgICAgIHN5bS0+aGFzaCA9IGg7CiAgICAgICAgICAgICBTWU1CT0xfTkFNRSAoc3ltKSA9IHhz
dHJkdXAgKG5hbWUpOworICAgICAgICAgICAgU1lNQk9MX05BTUVfTEVOIChzeW0pID0gbGVuOwog
ICAgICAgICAgICAgU1lNQk9MX01BQ1JPX0FSR1MgKHN5bSkgPSBmYWxzZTsKICAgICAgICAgICAg
IFNZTUJPTF9CTElORF9OT19BUkdTIChzeW0pID0gZmFsc2U7CiAgICAgICAgICAgICBTWU1CT0xf
REVMRVRFRCAoc3ltKSA9IGZhbHNlOwpAQCAtMzc4LDI0ICszODQsMjcgQEAgc3ltdGFiX2RlYnVn
ICh2b2lkKQogICBzeW1ib2wgKnM7CiAgIGludCBkZWxldGU7CiAgIHN0YXRpYyBpbnQgaTsKKyAg
aW50IGxlbjsKCiAgIHdoaWxlIChuZXh0X3Rva2VuICgmdGQsIE5VTEwpID09IFRPS0VOX1dPUkQp
CiAgICAgewogICAgICAgdGV4dCA9IFRPS0VOX0RBVEFfVEVYVCAoJnRkKTsKKyAgICAgIGxlbiA9
IFRPS0VOX0RBVEFfTEVOICgmdGQpOwogICAgICAgaWYgKCp0ZXh0ID09ICdfJykKICAgICAgICAg
ewogICAgICAgICAgIGRlbGV0ZSA9IDE7CiAgICAgICAgICAgdGV4dCsrOworICAgICAgICAgIGxl
bi0tOwogICAgICAgICB9CiAgICAgICBlbHNlCiAgICAgICAgIGRlbGV0ZSA9IDA7CgotICAgICAg
cyA9IGxvb2t1cF9zeW1ib2wgKHRleHQsIFNZTUJPTF9MT09LVVApOworICAgICAgcyA9IGxvb2t1
cF9zeW1ib2wgKHRleHQsIGxlbiwgU1lNQk9MX0xPT0tVUCk7CgogICAgICAgaWYgKHMgPT0gTlVM
TCkKICAgICAgICAgeHByaW50ZiAoIk5hbWUgYCVzJyBpcyB1bmtub3duXG4iLCB0ZXh0KTsKCi0g
ICAgICBsb29rdXBfc3ltYm9sICh0ZXh0LCBkZWxldGUgPyBTWU1CT0xfREVMRVRFIDogU1lNQk9M
X0lOU0VSVCk7CisgICAgICBsb29rdXBfc3ltYm9sICh0ZXh0LCBsZW4sIGRlbGV0ZSA/IFNZTUJP
TF9ERUxFVEUgOiBTWU1CT0xfSU5TRVJUKTsKICAgICB9CiAgIHN5bXRhYl9wcmludF9saXN0IChp
KyspOwogfQpAQCAtNDExLDkgKzQyMCwxMCBAQCBzeW10YWJfcHJpbnRfbGlzdCAoaW50IGkpCiAg
IGZvciAoaCA9IDA7IGggPCBoYXNoX3RhYmxlX3NpemU7IGgrKykKICAgICBmb3IgKGJ1Y2tldCA9
IHN5bXRhYltoXTsgYnVja2V0ICE9IE5VTEw7IGJ1Y2tldCA9IGJ1Y2tldC0+bmV4dCkKICAgICAg
IGZvciAoc3ltID0gYnVja2V0OyBzeW07IHN5bSA9IHN5bS0+c3RhY2spCi0gICAgICAgIHhwcmlu
dGYgKCJcdG5hbWUgJXMsIGhhc2ggJWx1LCBidWNrZXQgJWx1LCBhZGRyICVwLCBzdGFjayAlcCwg
IgorICAgICAgICB4cHJpbnRmICgiXHRuYW1lICVzLCBsZW4gJWksIGhhc2ggJWx1LCBidWNrZXQg
JWx1LCBhZGRyICVwLCBzdGFjayAlcCwgIgogICAgICAgICAgICAgICAgICAibmV4dCAlcCwgZmxh
Z3MlcyVzLCBwZW5kaW5nICVkXG4iLAotICAgICAgICAgICAgICAgICBTWU1CT0xfTkFNRSAoc3lt
KSwgKHVuc2lnbmVkIGxvbmcgaW50KSBzeW0tPmhhc2gsCisgICAgICAgICAgICAgICAgIFNZTUJP
TF9OQU1FIChzeW0pLCBTWU1CT0xfTkFNRV9MRU4gKHN5bSksCisgICAgICAgICAgICAgICAgICh1
bnNpZ25lZCBsb25nIGludCkgc3ltLT5oYXNoLAogICAgICAgICAgICAgICAgICAodW5zaWduZWQg
bG9uZyBpbnQpIGgsIHN5bSwgU1lNQk9MX1NUQUNLIChzeW0pLAogICAgICAgICAgICAgICAgICBz
eW0tPm5leHQsCiAgICAgICAgICAgICAgICAgIFNZTUJPTF9UUkFDRUQgKHN5bSkgPyAiIHRyYWNl
ZCIgOiAiIiwKLS0gCjIuNDguMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk00LXBhdGNoZXMgbWFpbGluZyBsaXN0Ck00LXBhdGNoZXNAZ251Lm9yZwpo
dHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9tNC1wYXRjaGVzCg==