Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Apr 2017 20:19:15 +0000
From:      "ale (Alex Dupre)" <phabric-noreply@FreeBSD.org>
To:        freebsd-net@freebsd.org
Subject:   [Differential] D9270: Add support for user-supplied Host-Uniq tag and handle PADM messages in Netgraph PPPoE
Message-ID:  <8513b9a6eeb72a7bfdce60f3f947d8d7@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-zs5j6sjj2bwywywa3p22-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-zs5j6sjj2bwywywa3p22-req@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--b1_8513b9a6eeb72a7bfdce60f3f947d8d7
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: base64

YWxlIHVwZGF0ZWQgdGhpcyByZXZpc2lvbiB0byBEaWZmIDI3MDU5LgphbGUgYWRkZWQgYSBjb21t
ZW50LgoKCiAgQWRkcmVzc2VkIGxhdGVzdCBjb21tZW50cywgdXBkYXRlZCBhbHNvIHRoZSBwcHBv
ZSBkaXNjb25uZWN0IGZ1bmN0aW9uLgogIFBsZWFzZSBjaGVjayB0aGUgY29ycmVjdG5lc3MsIGFu
ZCBjb21taXQgdGhlIHBhdGNoIGlmIHlvdSBhcmUgc2F0aXNmaWVkLgoKUkVQT1NJVE9SWQogIHJT
IEZyZWVCU0Qgc3JjIHJlcG9zaXRvcnkKCkNIQU5HRVMgU0lOQ0UgTEFTVCBVUERBVEUKICBodHRw
czovL3Jldmlld3MuZnJlZWJzZC5vcmcvRDkyNzA/dnM9MjU5NzcmaWQ9MjcwNTkKClJFVklTSU9O
IERFVEFJTAogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9EOTI3MAoKQUZGRUNURUQgRklM
RVMKICBzaGFyZS9tYW4vbWFuNC9uZ19wcHBvZS40CiAgc3lzL25ldGdyYXBoL25nX3BwcG9lLmMK
ICBzeXMvbmV0Z3JhcGgvbmdfcHBwb2UuaAoKRU1BSUwgUFJFRkVSRU5DRVMKICBodHRwczovL3Jl
dmlld3MuZnJlZWJzZC5vcmcvc2V0dGluZ3MvcGFuZWwvZW1haWxwcmVmZXJlbmNlcy8KClRvOiBh
bGUsICNtYW5wYWdlcywgd2Jsb2NrLCAjbmV0d29yaywganVsaWFuLCBtYXYsIGFkcmlhbiwgZ2xl
Yml1cwpDYzogZ2xlYml1cywgd2Jsb2NrLCBtYXYsIHBvb2xyb29tX2dtYWlsLmNvbSwgbWFuZHJl
ZSwgaW1wLCBmcmVlYnNkLW5ldC1saXN0Cg==

--b1_8513b9a6eeb72a7bfdce60f3f947d8d7
Content-Type: text/x-patch; charset=utf-8; name="D9270.27059.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D9270.27059.patch"

ZGlmZiAtLWdpdCBhL3N5cy9uZXRncmFwaC9uZ19wcHBvZS5oIGIvc3lzL25ldGdyYXBoL25nX3Bw
cG9lLmgKLS0tIGEvc3lzL25ldGdyYXBoL25nX3BwcG9lLmgKKysrIGIvc3lzL25ldGdyYXBoL25n
X3BwcG9lLmgKQEAgLTUyLDggKzUyLDEwIEBACiAKICNkZWZpbmUgTkdNX1BQUE9FX0NPT0tJRQkJ
MTA4OTg5MzA3MgogI2RlZmluZSBOR01fUFBQT0VfU0VUTUFYUF9DT09LSUUJMTQ0MTYyNDMyMgor
I2RlZmluZSBOR01fUFBQT0VfUEFETV9DT09LSUUJCTE0ODg0MDU4MjIKIAogI2RlZmluZQlQUFBP
RV9TRVJWSUNFX05BTUVfU0laRQkJNjQgLyogZm9yIG5vdyAqLworI2RlZmluZQlQUFBPRV9QQURN
X1ZBTFVFX1NJWkUJCTEyOCAvKiBmb3Igbm93ICovCiAKIC8qIEhvb2sgbmFtZXMgKi8KICNkZWZp
bmUgTkdfUFBQT0VfSE9PS19FVEhFUk5FVAkiZXRoZXJuZXQiCkBAIC04NCw3ICs4NiwxMSBAQAog
CU5HTV9QUFBPRV9TRVRNT0RFICA9IDEyLCAvKiBzZXQgdG8gc3RhbmRhcmQgb3IgY29tcGF0IG1v
ZGVzICovCiAJTkdNX1BQUE9FX0dFVE1PREUgID0gMTMsIC8qIHNlZSBjdXJyZW50IG1vZGUgKi8K
IAlOR01fUFBQT0VfU0VURU5BRERSID0gMTQsIC8qIHNldCBFdGhlcm5ldCBhZGRyZXNzICovCi0J
TkdNX1BQUE9FX1NFVE1BWFAgID0gMTUgLyogU2V0IFBQUC1NYXgtUGF5bG9hZCB2YWx1ZSAqLwor
CU5HTV9QUFBPRV9TRVRNQVhQICAgPSAxNSwgLyogU2V0IFBQUC1NYXgtUGF5bG9hZCB2YWx1ZSAq
LworCU5HTV9QUFBPRV9TRU5EX0hVUkwgPSAxNiwgLyogU2VuZCBQQURNIEhVUkwgbWVzc2FnZSAq
LworCU5HTV9QUFBPRV9IVVJMICAgICAgPSAxNywgLyogSFVSTCBmb3IgaW5mb3JtYXRpb25hbCBw
dXJwb3NlcyAqLworCU5HTV9QUFBPRV9TRU5EX01PVE0gPSAxOCwgLyogU2VuZCBQQURNIE1PVE0g
bWVzc2FnZSAqLworCU5HTV9QUFBPRV9NT1RNICAgICAgPSAxOSAgLyogTU9UTSBmb3IgaW5mb3Jt
YXRpb25hbCBwdXJwb3NlcyAqLwogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqCkBAIC0x
NTcsNiArMTYzLDEzIEBACiAJdWludDE2X3QJZGF0YTsKIH07CiAKKy8qCisgKiBUaGlzIHN0cnVj
dHVyZSBpcyB1c2VkIHRvIHNlbmQgUEFETSBtZXNzYWdlcyBmcm9tIHNlcnZlciB0byBjbGllbnQu
CisgKi8KK3N0cnVjdCBuZ3BwcG9lX3BhZG0geworCWNoYXIJbXNnW1BQUE9FX1BBRE1fVkFMVUVf
U0laRV07Cit9OworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvbnN0YW50cyBhbmQgZGVmaW5pdGlvbnMg
c3BlY2lmaWMgdG8gcHBwb2UKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTE3MSw2ICsxODQsNyBAQAogI2Rl
ZmluZSBQQURSX0NPREUJMHgxOQogI2RlZmluZSBQQURTX0NPREUJMHg2NQogI2RlZmluZSBQQURU
X0NPREUJMHhhNworI2RlZmluZSBQQURNX0NPREUJMHhkMwogCiAvKiBUYWcgaWRlbnRpZmllcnMg
Ki8KICNpZiBCWVRFX09SREVSID09IEJJR19FTkRJQU4KQEAgLTE4MSw2ICsxOTUsOCBAQAogI2Rl
ZmluZSBQVFRfQUNfQ09PS0lFCSgweDAxMDQpCiAjZGVmaW5lIFBUVF9WRU5ET1IgCSgweDAxMDUp
CiAjZGVmaW5lIFBUVF9SRUxBWV9TSUQJKDB4MDExMCkKKyNkZWZpbmUgUFRUX0hVUkwJKDB4MDEx
MSkJLyogUFBQb0UgRXh0ZW5zaW9ucyAoQ0FSUkVMKSAqLworI2RlZmluZSBQVFRfTU9UTQkoMHgw
MTEyKQkvKiBQUFBvRSBFeHRlbnNpb25zIChDQVJSRUwpICovCiAjZGVmaW5lCVBUVF9NQVhfUEFZ
TAkoMHgwMTIwKQkvKiBQUFAtTWF4LVBheWxvYWQgKFJGQzQ2MzgpICovCiAjZGVmaW5lIFBUVF9T
UlZfRVJSICAgICAoMHgwMjAxKQogI2RlZmluZSBQVFRfU1lTX0VSUiAgCSgweDAyMDIpCkBAIC0x
OTgsNiArMjE0LDggQEAKICNkZWZpbmUgUFRUX0FDX0NPT0tJRQkoMHgwNDAxKQogI2RlZmluZSBQ
VFRfVkVORE9SIAkoMHgwNTAxKQogI2RlZmluZSBQVFRfUkVMQVlfU0lECSgweDEwMDEpCisjZGVm
aW5lIFBUVF9IVVJMCSgweDExMDEpCS8qIFBQUG9FIEV4dGVuc2lvbnMgKENBUlJFTCkgKi8KKyNk
ZWZpbmUgUFRUX01PVE0JKDB4MTIwMSkJLyogUFBQb0UgRXh0ZW5zaW9ucyAoQ0FSUkVMKSAqLwog
I2RlZmluZQlQVFRfTUFYX1BBWUwJKDB4MjAwMSkJLyogUFBQLU1heC1QYXlsb2FkIChSRkM0NjM4
KSAqLwogI2RlZmluZSBQVFRfU1JWX0VSUiAgICAgKDB4MDEwMikKICNkZWZpbmUgUFRUX1NZU19F
UlIgIAkoMHgwMjAyKQpkaWZmIC0tZ2l0IGEvc3lzL25ldGdyYXBoL25nX3BwcG9lLmMgYi9zeXMv
bmV0Z3JhcGgvbmdfcHBwb2UuYwotLS0gYS9zeXMvbmV0Z3JhcGgvbmdfcHBwb2UuYworKysgYi9z
eXMvbmV0Z3JhcGgvbmdfcHBwb2UuYwpAQCAtMTc1LDYgKzE3NSwyMCBAQAogCSAgJm5nX3BhcnNl
X3VpbnQxNl90eXBlLAogCSAgTlVMTAogCX0sCisgICAgICAgIHsKKwkgIE5HTV9QUFBPRV9DT09L
SUUsCisJICBOR01fUFBQT0VfU0VORF9IVVJMLAorCSAgInNlbmRfaHVybCIsCisJICAmbmdwcHBv
ZV9pbml0X2RhdGFfc3RhdGVfdHlwZSwKKwkgIE5VTEwKKyAgICAgICAgfSwKKyAgICAgICAgewor
CSAgTkdNX1BQUE9FX0NPT0tJRSwKKwkgIE5HTV9QUFBPRV9TRU5EX01PVE0sCisJICAic2VuZF9t
b3RtIiwKKwkgICZuZ3BwcG9lX2luaXRfZGF0YV9zdGF0ZV90eXBlLAorCSAgTlVMTAorICAgICAg
ICB9LAogCXsgMCB9CiB9OwogCkBAIC0yMjYsOSArMjQwLDExIEBACiAJY29uc3Qgc3RydWN0IHBw
cG9lX3RhZwkqdGFnc1tOVU1UQUdTXTsKIAl1X2ludAkJCXNlcnZpY2VfbGVuOwogCXVfaW50CQkJ
YWNfbmFtZV9sZW47CisJdV9pbnQJCQlob3N0X3VuaXFfbGVuOwogCiAJc3RydWN0IGRhdGF0YWcJ
CXNlcnZpY2U7CiAJc3RydWN0IGRhdGF0YWcJCWFjX25hbWU7CisJc3RydWN0IGRhdGF0YWcJCWhv
c3RfdW5pcTsKIH07CiB0eXBlZGVmIHN0cnVjdCBzZXNzX25lZyAqbmVncDsKIApAQCAtNTg5LDE4
ICs2MDUsNDAgQEAKIHBwcG9lX2ZpbmR1bmlxKG5vZGVfcCBub2RlLCBjb25zdCBzdHJ1Y3QgcHBw
b2VfdGFnICp0YWcpCiB7CiAJaG9va19wCWhvb2sgPSBOVUxMOwotCXVuaW9uIHVuaXEgdW5pcTsK
KwlzZXNzcAlzcDsKKworCS8qIEN5Y2xlIHRocm91Z2ggYWxsIGtub3duIGhvb2tzLiAqLworCUxJ
U1RfRk9SRUFDSChob29rLCAmbm9kZS0+bmRfaG9va3MsIGhrX2hvb2tzKSB7CisJCS8qIFNraXAg
YW55IG5vbnNlc3Npb24gaG9vay4gKi8KKwkJaWYgKE5HX0hPT0tfUFJJVkFURShob29rKSA9PSBO
VUxMKQorCQkJY29udGludWU7CisJCXNwID0gTkdfSE9PS19QUklWQVRFKGhvb2spOworCQlpZiAo
c3AtPm5lZy0+aG9zdF91bmlxX2xlbiA9PSBudG9ocyh0YWctPnRhZ19sZW4pICYmCisJCSAgICBi
Y21wKHNwLT5uZWctPmhvc3RfdW5pcS5kYXRhLCAoY29uc3QgY2hhciAqKSh0YWcgKyAxKSwKKwkJ
ICAgICBzcC0+bmVnLT5ob3N0X3VuaXFfbGVuKSA9PSAwKQorCQkJYnJlYWs7CisJfQorCUNUUjMo
S1RSX05FVCwgIiUyMHM6IG1hdGNoZWQgJXAgZm9yICVwIiwgX19mdW5jX18sIGhvb2ssIHNwKTsK
KworCXJldHVybiAoaG9vayk7Cit9CisKK3N0YXRpYyBob29rX3AKK3BwcG9lX2ZpbmRjb29raWUo
bm9kZV9wIG5vZGUsIGNvbnN0IHN0cnVjdCBwcHBvZV90YWcgKnRhZykKK3sKKwlob29rX3AJaG9v
ayA9IE5VTEw7CisJdW5pb24gdW5pcSBjb29raWU7CiAKLQliY29weSh0YWcgKyAxLCB1bmlxLmJ5
dGVzLCBzaXplb2Yodm9pZCAqKSk7CisJYmNvcHkodGFnICsgMSwgY29va2llLmJ5dGVzLCBzaXpl
b2Yodm9pZCAqKSk7CiAJLyogQ3ljbGUgdGhyb3VnaCBhbGwga25vd24gaG9va3MuICovCiAJTElT
VF9GT1JFQUNIKGhvb2ssICZub2RlLT5uZF9ob29rcywgaGtfaG9va3MpIHsKIAkJLyogU2tpcCBh
bnkgbm9uc2Vzc2lvbiBob29rLiAqLwogCQlpZiAoTkdfSE9PS19QUklWQVRFKGhvb2spID09IE5V
TEwpCiAJCQljb250aW51ZTsKLQkJaWYgKHVuaXEucG9pbnRlciA9PSBOR19IT09LX1BSSVZBVEUo
aG9vaykpCisJCWlmIChjb29raWUucG9pbnRlciA9PSBOR19IT09LX1BSSVZBVEUoaG9vaykpCiAJ
CQlicmVhazsKIAl9Ci0JQ1RSMyhLVFJfTkVULCAiJTIwczogbWF0Y2hlZCAlcCBmb3IgJXAiLCBf
X2Z1bmNfXywgaG9vaywgdW5pcS5wb2ludGVyKTsKKwlDVFIzKEtUUl9ORVQsICIlMjBzOiBtYXRj
aGVkICVwIGZvciAlcCIsIF9fZnVuY19fLCBob29rLCBjb29raWUucG9pbnRlcik7CiAKIAlyZXR1
cm4gKGhvb2spOwogfQpAQCAtNzQ0LDE3ICs3ODIsMjkgQEAKIAkJY2FzZSBOR01fUFBQT0VfTElT
VEVOOgogCQljYXNlIE5HTV9QUFBPRV9PRkZFUjoKIAkJY2FzZSBOR01fUFBQT0VfU0VSVklDRToK
KwkJY2FzZSBOR01fUFBQT0VfU0VORF9IVVJMOgorCQljYXNlIE5HTV9QUFBPRV9TRU5EX01PVE06
CiAJCQlvdXJtc2cgPSAoc3RydWN0IG5ncHBwb2VfaW5pdF9kYXRhICopbXNnLT5kYXRhOwogCQkJ
aWYgKG1zZy0+aGVhZGVyLmFyZ2xlbiA8IHNpemVvZigqb3VybXNnKSkgewogCQkJCWxvZyhMT0df
RVJSLCAibmdfcHBwb2VbJXhdOiBpbml0IGRhdGEgdG9vICIKIAkJCQkgICAgInNtYWxsXG4iLCBu
b2RlLT5uZF9JRCk7CiAJCQkJTEVBVkUoRU1TR1NJWkUpOwogCQkJfQotCQkJaWYgKG1zZy0+aGVh
ZGVyLmFyZ2xlbiAtIHNpemVvZigqb3VybXNnKSA+Ci0JCQkgICAgUFBQT0VfU0VSVklDRV9OQU1F
X1NJWkUpIHsKLQkJCQlsb2coTE9HX0VSUiwgIm5nX3BwcG9lWyV4XTogc2VydmljZSBuYW1lICIK
LQkJCQkgICAgInRvbyBiaWdcbiIsIG5vZGUtPm5kX0lEKTsKLQkJCQlMRUFWRShFTVNHU0laRSk7
CisJCQlpZiAobXNnLT5oZWFkZXIuY21kID09IE5HTV9QUFBPRV9TRU5EX0hVUkwgfHwKKwkJCSAg
ICBtc2ctPmhlYWRlci5jbWQgPT0gTkdNX1BQUE9FX1NFTkRfTU9UTSkgeworCQkJCWlmIChtc2ct
PmhlYWRlci5hcmdsZW4gLSBzaXplb2YoKm91cm1zZykgPgorCQkJCSAgICBQUFBPRV9QQURNX1ZB
TFVFX1NJWkUpIHsKKwkJCQkJbG9nKExPR19FUlIsICJuZ19wcHBvZVsleF06IG1lc3NhZ2UgIgor
CQkJCQkgICAgInRvbyBiaWdcbiIsIG5vZGUtPm5kX0lEKTsKKwkJCQkJTEVBVkUoRU1TR1NJWkUp
OworCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJaWYgKG1zZy0+aGVhZGVyLmFyZ2xlbiAtIHNpemVv
Zigqb3VybXNnKSA+CisJCQkJICAgIFBQUE9FX1NFUlZJQ0VfTkFNRV9TSVpFKSB7CisJCQkJCWxv
ZyhMT0dfRVJSLCAibmdfcHBwb2VbJXhdOiBzZXJ2aWNlIG5hbWUgIgorCQkJCQkgICAgInRvbyBi
aWdcbiIsIG5vZGUtPm5kX0lEKTsKKwkJCQkJTEVBVkUoRU1TR1NJWkUpOworCQkJCX0KIAkJCX0K
IAkJCWlmIChtc2ctPmhlYWRlci5hcmdsZW4gLSBzaXplb2YoKm91cm1zZykgPAogCQkJICAgIG91
cm1zZy0+ZGF0YV9sZW4pIHsKQEAgLTc5NCw2ICs4NDQsMjAgQEAKIAkJCWlmIChtc2ctPmhlYWRl
ci5jbWQgPT0gTkdNX1BQUE9FX1NFUlZJQ0UpCiAJCQkJYnJlYWs7CiAKKwkJCS8qCisJCQkgKiBQ
QURNIG1lc3NhZ2VzIGFyZSBzZXQgdXAgb24gYWN0aXZlIHNlc3Npb25zLgorCQkJICovCisJCQlp
ZiAobXNnLT5oZWFkZXIuY21kID09IE5HTV9QUFBPRV9TRU5EX0hVUkwgfHwKKwkJCSAgICBtc2ct
PmhlYWRlci5jbWQgPT0gTkdNX1BQUE9FX1NFTkRfTU9UTSkgeworCQkJCWlmIChzcC0+c3RhdGUg
IT0gUFBQT0VfTkVXQ09OTkVDVEVEICYmCisJCQkJICAgIHNwLT5zdGF0ZSAhPSBQUFBPRV9DT05O
RUNURUQpIHsKKwkJCQkJbG9nKExPR19OT1RJQ0UsICJuZ19wcHBvZVsleF06IHNlc3Npb24gaXMg
bm90ICIKKwkJCQkJICAgICJhY3RpdmVcbiIsIG5vZGUtPm5kX0lEKTsKKwkJCQkJTEVBVkUoRUlT
Q09OTik7CisJCQkJfQorCQkJCWJyZWFrOworCQkJfQorCiAJCQlpZiAoc3AtPnN0YXRlICE9IFBQ
UE9FX1NOT05FKSB7CiAJCQkJbG9nKExPR19OT1RJQ0UsICJuZ19wcHBvZVsleF06IFNlc3Npb24g
YWxyZWFkeSAiCiAJCQkJICAgICJhY3RpdmVcbiIsIG5vZGUtPm5kX0lEKTsKQEAgLTg0OCwyOCAr
OTEyLDcyIEBACiAJCQkgKiBDaGVjayB0aGUgaG9vayBleGlzdHMgYW5kIGlzIFVuaW5pdGlhbGlz
ZWQuCiAJCQkgKiBTZW5kIGEgUEFESSByZXF1ZXN0LCBhbmQgc3RhcnQgdGhlIHRpbWVvdXQgbG9n
aWMuCiAJCQkgKiBTdG9yZSB0aGUgb3JpZ2luYXRvciBvZiB0aGlzIG1lc3NhZ2Ugc28gd2UgY2Fu
IHNlbmQKLQkJCSAqIGEgc3VjY2VzcyBvZiBmYWlsIG1lc3NhZ2UgdG8gdGhlbSBsYXRlci4KKwkJ
CSAqIGEgc3VjY2VzcyBvciBmYWlsIG1lc3NhZ2UgdG8gdGhlbSBsYXRlci4KIAkJCSAqIE1vdmUg
dGhlIHNlc3Npb24gdG8gU0lOSVQuCiAJCQkgKiBTZXQgdXAgdGhlIHNlc3Npb24gdG8gdGhlIGNv
cnJlY3Qgc3RhdGUgYW5kCiAJCQkgKiBzdGFydCBpdC4KIAkJCSAqLwotCQkJaW50CWksIGFjbmxl
biA9IDAsIGFjbnNlcCA9IDAsIHNydmxlbjsKKwkJCWludAlhY25wb3MsIGFjbmxlbiA9IDAsIGFj
bnNlcCA9IDA7CisJCQlpbnQJaHVwb3MsIGh1bGVuID0gMCwgaHVzZXAgPSAwOworCQkJaW50CWks
IHNydnBvcywgc3J2bGVuOworCQkJYWNucG9zID0gMDsKIAkJCWZvciAoaSA9IDA7IGkgPCBvdXJt
c2ctPmRhdGFfbGVuOyBpKyspIHsKIAkJCQlpZiAob3VybXNnLT5kYXRhW2ldID09ICdcXCcpIHsK
IAkJCQkJYWNubGVuID0gaTsKIAkJCQkJYWNuc2VwID0gMTsKIAkJCQkJYnJlYWs7CiAJCQkJfQog
CQkJfQotCQkJc3J2bGVuID0gb3VybXNnLT5kYXRhX2xlbiAtIGFjbmxlbiAtIGFjbnNlcDsKKwkJ
CWh1cG9zID0gYWNubGVuICsgYWNuc2VwOworCQkJZm9yIChpID0gaHVwb3M7IGkgPCBvdXJtc2ct
PmRhdGFfbGVuOyBpKyspIHsKKwkJCQlpZiAob3VybXNnLT5kYXRhW2ldID09ICd8JykgeworCQkJ
CQlodWxlbiA9IGkgLSBodXBvczsKKwkJCQkJaHVzZXAgPSAxOworCQkJCQlicmVhazsKKwkJCQl9
CisJCQl9CisJCQlzcnZwb3MgPSBodXBvcyArIGh1bGVuICsgaHVzZXA7CisJCQlzcnZsZW4gPSBv
dXJtc2ctPmRhdGFfbGVuIC0gc3J2cG9zOwogCi0JCQliY29weShvdXJtc2ctPmRhdGEsIG5lZy0+
YWNfbmFtZS5kYXRhLCBhY25sZW4pOworCQkJYmNvcHkob3VybXNnLT5kYXRhICsgYWNucG9zLCBu
ZWctPmFjX25hbWUuZGF0YSwgYWNubGVuKTsKIAkJCW5lZy0+YWNfbmFtZV9sZW4gPSBhY25sZW47
CiAKKwkJCW5lZy0+aG9zdF91bmlxLmhkci50YWdfdHlwZSA9IFBUVF9IT1NUX1VOSVE7CisJCQlp
ZiAoaHVsZW4gPT0gMCkgeworCQkJCS8qIE5vdCBwcm92aWRlZCwgZ2VuZXJhdGUgb25lICovCisJ
CQkJbmVnLT5ob3N0X3VuaXEuaGRyLnRhZ19sZW4gPSBodG9ucyhzaXplb2Yoc3ApKTsKKwkJCQli
Y29weSgmc3AsIG5lZy0+aG9zdF91bmlxLmRhdGEsIHNpemVvZihzcCkpOworCQkJCW5lZy0+aG9z
dF91bmlxX2xlbiA9IHNpemVvZihzcCk7CisJCQl9IGVsc2UgaWYgKGh1bGVuID4gMiAmJiBvdXJt
c2ctPmRhdGFbaHVwb3NdID09ICcwJyAmJgorCQkJICBvdXJtc2ctPmRhdGFbaHVwb3MgKyAxXSA9
PSAneCcgJiYgaHVsZW4gJSAyID09IDApIHsKKwkJCQkvKiBIZXggZW5jb2RlZCAqLworCQkJCXN0
YXRpYyBjb25zdCBjaGFyIGhleGRpZ1sxNl0gPSAiMDEyMzQ1Njc4OWFiY2RlZiI7CisJCQkJaW50
IGo7CisKKwkJCQluZWctPmhvc3RfdW5pcS5oZHIudGFnX2xlbiA9IGh0b25zKCh1aW50MTZfdCko
aHVsZW4gLyAyIC0gMSkpOworCQkJCWZvciAoaSA9IDA7IGkgPCBodWxlbiAtIDI7IGkrKykgewor
CQkJCQlmb3IgKGogPSAwOworCQkJCQkgICAgIGogPCAxNiAmJgorCQkJCQkgICAgIG91cm1zZy0+
ZGF0YVtodXBvcyArIDIgKyBpXSAhPSBoZXhkaWdbal07CisJCQkJCSAgICAgaisrKTsKKwkJCQkJ
aWYgKGogPT0gMTYpCisJCQkJCQlMRUFWRShFSU5WQUwpOworCQkJCQlpZiAoaSAlIDIgPT0gMCkK
KwkJCQkJCW5lZy0+aG9zdF91bmlxLmRhdGFbaSAvIDJdID0gaiA8PCA0OworCQkJCQllbHNlCisJ
CQkJCQluZWctPmhvc3RfdW5pcS5kYXRhW2kgLyAyXSB8PSBqOworCQkJCX0KKwkJCQluZWctPmhv
c3RfdW5pcV9sZW4gPSBodWxlbiAvIDIgLSAxOworCQkJfSBlbHNlIHsKKwkJCQkvKiBQbGFpbiBz
dHJpbmcgKi8KKwkJCQluZWctPmhvc3RfdW5pcS5oZHIudGFnX2xlbiA9IGh0b25zKCh1aW50MTZf
dClodWxlbik7CisJCQkJYmNvcHkob3VybXNnLT5kYXRhICsgaHVwb3MsIG5lZy0+aG9zdF91bmlx
LmRhdGEsIGh1bGVuKTsKKwkJCQluZWctPmhvc3RfdW5pcV9sZW4gPSBodWxlbjsKKwkJCX0KKwog
CQkJbmVnLT5zZXJ2aWNlLmhkci50YWdfdHlwZSA9IFBUVF9TUlZfTkFNRTsKIAkJCW5lZy0+c2Vy
dmljZS5oZHIudGFnX2xlbiA9IGh0b25zKCh1aW50MTZfdClzcnZsZW4pOwotCQkJYmNvcHkob3Vy
bXNnLT5kYXRhICsgYWNubGVuICsgYWNuc2VwLAotCQkJICAgIG5lZy0+c2VydmljZS5kYXRhLCBz
cnZsZW4pOworCQkJYmNvcHkob3VybXNnLT5kYXRhICsgc3J2cG9zLCBuZWctPnNlcnZpY2UuZGF0
YSwgc3J2bGVuKTsKIAkJCW5lZy0+c2VydmljZV9sZW4gPSBzcnZsZW47CiAJCQlwcHBvZV9zdGFy
dChzcCk7CiAJCQlicmVhazsKQEAgLTg3OSw3ICs5ODcsNyBAQAogCQkJICogQ2hlY2sgdGhlIGhv
b2sgZXhpc3RzIGFuZCBpcyBVbmluaXRpYWxpc2VkLgogCQkJICogSW5zdGFsbCB0aGUgc2Vydmlj
ZSBtYXRjaGluZyBzdHJpbmcuCiAJCQkgKiBTdG9yZSB0aGUgb3JpZ2luYXRvciBvZiB0aGlzIG1l
c3NhZ2Ugc28gd2UgY2FuIHNlbmQKLQkJCSAqIGEgc3VjY2VzcyBvZiBmYWlsIG1lc3NhZ2UgdG8g
dGhlbSBsYXRlci4KKwkJCSAqIGEgc3VjY2VzcyBvciBmYWlsIG1lc3NhZ2UgdG8gdGhlbSBsYXRl
ci4KIAkJCSAqIE1vdmUgdGhlIGhvb2sgdG8gJ0xJU1RFTklORycKIAkJCSAqLwogCQkJbmVnLT5z
ZXJ2aWNlLmhkci50YWdfdHlwZSA9IFBUVF9TUlZfTkFNRTsKQEAgLTEwMTksNiArMTEyNyw5MiBA
QAogCQkJcHJpdnAtPm1heF9wYXlsb2FkLmhkci50YWdfbGVuID0gaHRvbnMoc2l6ZW9mKHVpbnQx
Nl90KSk7CiAJCQlwcml2cC0+bWF4X3BheWxvYWQuZGF0YSA9IGh0b25zKCooKHVpbnQxNl90ICop
bXNnLT5kYXRhKSk7CiAJCQlicmVhazsKKwkJY2FzZSBOR01fUFBQT0VfU0VORF9IVVJMOgorCQkg
ICAgeworCQkJc3RydWN0IG1idWYgKm07CisKKwkJCS8qIEdlbmVyYXRlIGEgcGFja2V0IG9mIHRo
YXQgdHlwZS4gKi8KKwkJCW0gPSBtX2dldGhkcihNX05PV0FJVCwgTVRfREFUQSk7CisJCQlpZiAo
bSA9PSBOVUxMKQorCQkJCWxvZyhMT0dfTk9USUNFLCAibmdfcHBwb2VbJXhdOiBzZXNzaW9uIG91
dCBvZiAiCisJCQkJICAgICJtYnVmc1xuIiwgbm9kZS0+bmRfSUQpOworCQkJZWxzZSB7CisJCQkJ
c3RydWN0IHBwcG9lX2Z1bGxfaGRyICp3aDsKKwkJCQlzdHJ1Y3QgcHBwb2VfdGFnICp0YWc7CisJ
CQkJaW50ICAgICBlcnJvciA9IDA7CisKKwkJCQl3aCA9IG10b2QobSwgc3RydWN0IHBwcG9lX2Z1
bGxfaGRyICopOworCQkJCWJjb3B5KCZzcC0+cGt0X2hkciwgd2gsIHNpemVvZigqd2gpKTsKKwor
CQkJCS8qIFJldmVydCB0aGUgc3RvcmVkIGhlYWRlciB0byBESVNDL1BBRE0gbW9kZS4gKi8KKwkJ
CQl3aC0+cGguY29kZSA9IFBBRE1fQ09ERTsKKwkJCQkvKgorCQkJCSAqIENvbmZpZ3VyZSBldGhl
cnR5cGUgZGVwZW5kaW5nIG9uIHdoYXQKKwkJCQkgKiB3YXMgdXNlZCBkdXJpbmcgc2Vzc2lvbnMg
c3RhZ2UuCisJCQkJICovCisJCQkJaWYgKHdoLT5laC5ldGhlcl90eXBlID09CisJCQkJICAgIEVU
SEVSVFlQRV9QUFBPRV8zQ09NX1NFU1MpCisJCQkJCXdoLT5laC5ldGhlcl90eXBlID0gRVRIRVJU
WVBFX1BQUE9FXzNDT01fRElTQzsKKwkJCQllbHNlCisJCQkJCXdoLT5laC5ldGhlcl90eXBlID0g
RVRIRVJUWVBFX1BQUE9FX0RJU0M7CisJCQkJLyoKKwkJCQkgKiBBZGQgUEFETSBtZXNzYWdlIGFu
ZCBhZGp1c3Qgc2l6ZXMuCisJCQkJICovCisJCQkJdGFnID0gKHZvaWQgKikoJndoLT5waCArIDEp
OworCQkJCXRhZy0+dGFnX3R5cGUgPSBQVFRfSFVSTDsKKwkJCQl0YWctPnRhZ19sZW4gPSBodG9u
cyhvdXJtc2ctPmRhdGFfbGVuKTsKKwkJCQlzdHJuY3B5KChjaGFyICopKHRhZyArIDEpLCBvdXJt
c2ctPmRhdGEsIG91cm1zZy0+ZGF0YV9sZW4pOworCQkJCW0tPm1fcGt0aGRyLmxlbiA9IG0tPm1f
bGVuID0gc2l6ZW9mKCp3aCkgKyBzaXplb2YoKnRhZykgKworCQkJCSAgICBvdXJtc2ctPmRhdGFf
bGVuOworCQkJCXdoLT5waC5sZW5ndGggPSBodG9ucyhzaXplb2YoKnRhZykgKyBvdXJtc2ctPmRh
dGFfbGVuKTsKKwkJCQlOR19TRU5EX0RBVEFfT05MWShlcnJvciwKKwkJCQkgICAgcHJpdnAtPmV0
aGVybmV0X2hvb2ssIG0pOworCQkJfQorCQkJYnJlYWs7CisJCSAgICB9CisJCWNhc2UgTkdNX1BQ
UE9FX1NFTkRfTU9UTToKKwkJICAgIHsKKwkJCXN0cnVjdCBtYnVmICptOworCisJCQkvKiBHZW5l
cmF0ZSBhIHBhY2tldCBvZiB0aGF0IHR5cGUuICovCisJCQltID0gbV9nZXRoZHIoTV9OT1dBSVQs
IE1UX0RBVEEpOworCQkJaWYgKG0gPT0gTlVMTCkKKwkJCQlsb2coTE9HX05PVElDRSwgIm5nX3Bw
cG9lWyV4XTogc2Vzc2lvbiBvdXQgb2YgIgorCQkJCSAgICAibWJ1ZnNcbiIsIG5vZGUtPm5kX0lE
KTsKKwkJCWVsc2UgeworCQkJCXN0cnVjdCBwcHBvZV9mdWxsX2hkciAqd2g7CisJCQkJc3RydWN0
IHBwcG9lX3RhZyAqdGFnOworCQkJCWludCAgICAgZXJyb3IgPSAwOworCisJCQkJd2ggPSBtdG9k
KG0sIHN0cnVjdCBwcHBvZV9mdWxsX2hkciAqKTsKKwkJCQliY29weSgmc3AtPnBrdF9oZHIsIHdo
LCBzaXplb2YoKndoKSk7CisKKwkJCQkvKiBSZXZlcnQgdGhlIHN0b3JlZCBoZWFkZXIgdG8gRElT
Qy9QQURNIG1vZGUuICovCisJCQkJd2gtPnBoLmNvZGUgPSBQQURNX0NPREU7CisJCQkJLyoKKwkJ
CQkgKiBDb25maWd1cmUgZXRoZXJ0eXBlIGRlcGVuZGluZyBvbiB3aGF0CisJCQkJICogd2FzIHVz
ZWQgZHVyaW5nIHNlc3Npb25zIHN0YWdlLgorCQkJCSAqLworCQkJCWlmICh3aC0+ZWguZXRoZXJf
dHlwZSA9PQorCQkJCSAgICBFVEhFUlRZUEVfUFBQT0VfM0NPTV9TRVNTKQorCQkJCQl3aC0+ZWgu
ZXRoZXJfdHlwZSA9IEVUSEVSVFlQRV9QUFBPRV8zQ09NX0RJU0M7CisJCQkJZWxzZQorCQkJCQl3
aC0+ZWguZXRoZXJfdHlwZSA9IEVUSEVSVFlQRV9QUFBPRV9ESVNDOworCQkJCS8qCisJCQkJICog
QWRkIFBBRE0gbWVzc2FnZSBhbmQgYWRqdXN0IHNpemVzLgorCQkJCSAqLworCQkJCXRhZyA9ICh2
b2lkICopKCZ3aC0+cGggKyAxKTsKKwkJCQl0YWctPnRhZ190eXBlID0gUFRUX01PVE07CisJCQkJ
dGFnLT50YWdfbGVuID0gaHRvbnMob3VybXNnLT5kYXRhX2xlbik7CisJCQkJc3RybmNweSgoY2hh
ciAqKSh0YWcgKyAxKSwgb3VybXNnLT5kYXRhLCBvdXJtc2ctPmRhdGFfbGVuKTsKKwkJCQltLT5t
X3BrdGhkci5sZW4gPSBtLT5tX2xlbiA9IHNpemVvZigqd2gpICsgc2l6ZW9mKCp0YWcpICsKKwkJ
CQkgICAgb3VybXNnLT5kYXRhX2xlbjsKKwkJCQl3aC0+cGgubGVuZ3RoID0gaHRvbnMoc2l6ZW9m
KCp0YWcpICsgb3VybXNnLT5kYXRhX2xlbik7CisJCQkJTkdfU0VORF9EQVRBX09OTFkoZXJyb3Is
CisJCQkJICAgIHByaXZwLT5ldGhlcm5ldF9ob29rLCBtKTsKKwkJCX0KKwkJCWJyZWFrOworCQkg
ICAgfQogCQlkZWZhdWx0OgogCQkJTEVBVkUoRUlOVkFMKTsKIAkJfQpAQCAtMTA2MSwxMCArMTI1
NSw2IEBACiAJbm9kZV9wCW5vZGUgPSBOR19IT09LX05PREUoaG9vayk7CiAJcHJpdl9wCXByaXZw
ID0gTkdfTk9ERV9QUklWQVRFKG5vZGUpOwogCW5lZ3AJbmVnID0gc3AtPm5lZzsKLQlzdHJ1Y3Qg
ewotCQlzdHJ1Y3QgcHBwb2VfdGFnIGhkcjsKLQkJdW5pb24JdW5pcQlkYXRhOwotCX0gX19wYWNr
ZWQgdW5pcXRhZzsKIAlzdHJ1Y3QgIG1idWYgKm0wOwogCWludAllcnJvcjsKIApAQCAtMTA4MCwx
MSArMTI3MCw4IEBACiAJbWVtY3B5KCh2b2lkICopJm5lZy0+cGt0LT5wa3RfaGVhZGVyLmVoLCAm
cHJpdnAtPmVoLAogCSAgICBzaXplb2Yoc3RydWN0IGV0aGVyX2hlYWRlcikpOwogCW5lZy0+cGt0
LT5wa3RfaGVhZGVyLnBoLmNvZGUgPSBQQURJX0NPREU7Ci0JdW5pcXRhZy5oZHIudGFnX3R5cGUg
PSBQVFRfSE9TVF9VTklROwotCXVuaXF0YWcuaGRyLnRhZ19sZW4gPSBodG9ucygodV9pbnQxNl90
KXNpemVvZih1bmlxdGFnLmRhdGEpKTsKLQl1bmlxdGFnLmRhdGEucG9pbnRlciA9IHNwOwogCWlu
aXRfdGFncyhzcCk7Ci0JaW5zZXJ0X3RhZyhzcCwgJnVuaXF0YWcuaGRyKTsKKwlpbnNlcnRfdGFn
KHNwLCAmbmVnLT5ob3N0X3VuaXEuaGRyKTsKIAlpbnNlcnRfdGFnKHNwLCAmbmVnLT5zZXJ2aWNl
Lmhkcik7CiAJaWYgKHByaXZwLT5tYXhfcGF5bG9hZC5kYXRhICE9IDApCiAJCWluc2VydF90YWco
c3AsICZwcml2cC0+bWF4X3BheWxvYWQuaGRyKTsKQEAgLTExNjMsNiArMTM1MCw1MiBAQAogCXJl
dHVybiAoZXJyb3IpOwogfQogCitzdGF0aWMgaW50CitzZW5kX2h1cmwoc2Vzc3Agc3AsIGNvbnN0
IHN0cnVjdCBwcHBvZV90YWcgKnRhZykKK3sKKwlpbnQgZXJyb3IsIHRsZW47CisJc3RydWN0IG5n
X21lc2cgKm1zZzsKKwlzdHJ1Y3QgbmdwcHBvZV9wYWRtICpwYWRtOworCisJQ1RSMihLVFJfTkVU
LCAiJTIwczogY2FsbGVkICVkIiwgX19mdW5jX18sIHNwLT5TZXNzaW9uX0lEKTsKKworCU5HX01L
TUVTU0FHRShtc2csIE5HTV9QUFBPRV9DT09LSUUsIE5HTV9QUFBPRV9IVVJMLAorCSAgICBzaXpl
b2Yoc3RydWN0IG5ncHBwb2VfcGFkbSksIE1fTk9XQUlUKTsKKwlpZiAobXNnID09IE5VTEwpCisJ
CXJldHVybiAoRU5PTUVNKTsKKworCXBhZG0gPSAoc3RydWN0IG5ncHBwb2VfcGFkbSAqKW1zZy0+
ZGF0YTsKKwl0bGVuID0gbWluKFBQUE9FX1BBRE1fVkFMVUVfU0laRSAtIDEsIG50b2hzKHRhZy0+
dGFnX2xlbikpOworCXN0cm5jcHkocGFkbS0+bXNnLCAoY29uc3QgY2hhciAqKSh0YWcgKyAxKSwg
dGxlbik7CisJcGFkbS0+bXNnW3RsZW5dID0gJ1wwJzsKKwlOR19TRU5EX01TR19JRChlcnJvciwg
TkdfSE9PS19OT0RFKHNwLT5ob29rKSwgbXNnLCBzcC0+Y3JlYXRvciwgMCk7CisKKwlyZXR1cm4g
KGVycm9yKTsKK30KKworc3RhdGljIGludAorc2VuZF9tb3RtKHNlc3NwIHNwLCBjb25zdCBzdHJ1
Y3QgcHBwb2VfdGFnICp0YWcpCit7CisJaW50IGVycm9yLCB0bGVuOworCXN0cnVjdCBuZ19tZXNn
ICptc2c7CisJc3RydWN0IG5ncHBwb2VfcGFkbSAqcGFkbTsKKworCUNUUjIoS1RSX05FVCwgIiUy
MHM6IGNhbGxlZCAlZCIsIF9fZnVuY19fLCBzcC0+U2Vzc2lvbl9JRCk7CisKKwlOR19NS01FU1NB
R0UobXNnLCBOR01fUFBQT0VfQ09PS0lFLCBOR01fUFBQT0VfTU9UTSwKKwkgICAgc2l6ZW9mKHN0
cnVjdCBuZ3BwcG9lX3BhZG0pLCBNX05PV0FJVCk7CisJaWYgKG1zZyA9PSBOVUxMKQorCQlyZXR1
cm4gKEVOT01FTSk7CisKKwlwYWRtID0gKHN0cnVjdCBuZ3BwcG9lX3BhZG0gKiltc2ctPmRhdGE7
CisJdGxlbiA9IG1pbihQUFBPRV9QQURNX1ZBTFVFX1NJWkUgLSAxLCBudG9ocyh0YWctPnRhZ19s
ZW4pKTsKKwlzdHJuY3B5KHBhZG0tPm1zZywgKGNvbnN0IGNoYXIgKikodGFnICsgMSksIHRsZW4p
OworCXBhZG0tPm1zZ1t0bGVuXSA9ICdcMCc7CisJTkdfU0VORF9NU0dfSUQoZXJyb3IsIE5HX0hP
T0tfTk9ERShzcC0+aG9vayksIG1zZywgc3AtPmNyZWF0b3IsIDApOworCisJcmV0dXJuIChlcnJv
cik7Cit9CisKIC8qCiAgKiBSZWNlaXZlIGRhdGEgZnJvbSBzZXNzaW9uIGhvb2sgYW5kIGRvIHNv
bWV0aGluZyB3aXRoIGl0LgogICovCkBAIC0xMzIwLDYgKzE1NTMsNyBAQAogCWNvbnN0IHByaXZf
cAkJcHJpdnAgPSBOR19OT0RFX1BSSVZBVEUobm9kZSk7CiAJc2Vzc3AJCQlzcDsKIAljb25zdCBz
dHJ1Y3QgcHBwb2VfdGFnCSp1dGFnID0gTlVMTCwgKnRhZyA9IE5VTEw7CisJY29uc3Qgc3RydWN0
IHBwcG9lX3RhZwlzbnRhZyA9IHsgUFRUX1NSVl9OQU1FLCAwIH07CiAJY29uc3Qgc3RydWN0IHBw
cG9lX2Z1bGxfaGRyICp3aDsKIAljb25zdCBzdHJ1Y3QgcHBwb2VfaGRyCSpwaDsKIAluZWdwCQkJ
bmVnID0gTlVMTDsKQEAgLTE0MDksMTEgKzE2NDMsOCBAQAogCQkJICogcHJvY2Vzc2luZy4KIAkJ
CSAqLwogCQkJdGFnID0gZ2V0X3RhZyhwaCwgUFRUX1NSVl9OQU1FKTsKLQkJCWlmICh0YWcgPT0g
TlVMTCkgewotCQkJCUNUUjEoS1RSX05FVCwgIiUyMHM6IFBBREkgdy9vIFNlcnZpY2UtTmFtZSIs
Ci0JCQkJICAgIF9fZnVuY19fKTsKLQkJCQlMRUFWRShFTkVUVU5SRUFDSCk7Ci0JCQl9CisJCQlp
ZiAodGFnID09IE5VTEwpCisJCQkJdGFnID0gJnNudGFnOwogCiAJCQkvKgogCQkJICogRmlyc3Qs
IHRyeSB0byBtYXRjaCBTZXJ2aWNlLU5hbWUgYWdhaW5zdCBvdXIgCkBAIC0xNDM4LDggKzE2Njks
NyBAQAogCQkJICogRm9yIG5vdyBzaW1wbHkgYWNjZXB0IHRoZSBmaXJzdCB3ZSByZWNlaXZlLgog
CQkJICovCiAJCQl1dGFnID0gZ2V0X3RhZyhwaCwgUFRUX0hPU1RfVU5JUSk7Ci0JCQlpZiAoKHV0
YWcgPT0gTlVMTCkgfHwKLQkJCSAgICAobnRvaHModXRhZy0+dGFnX2xlbikgIT0gc2l6ZW9mKHNw
KSkpIHsKKwkJCWlmICh1dGFnID09IE5VTEwpIHsKIAkJCQlsb2coTE9HX05PVElDRSwgIm5nX3Bw
cG9lWyV4XTogbm8gaG9zdCAiCiAJCQkJICAgICJ1bmlxdWUgZmllbGRcbiIsIG5vZGUtPm5kX0lE
KTsKIAkJCQlMRUFWRShFTkVUVU5SRUFDSCk7CkBAIC0xNTI5LDcgKzE3NTksNyBAQAogCQkJCUxF
QVZFKEVORVRVTlJFQUNIKTsKIAkJCX0KIAotCQkJc2VuZGhvb2sgPSBwcHBvZV9maW5kdW5pcShu
b2RlLCB1dGFnKTsKKwkJCXNlbmRob29rID0gcHBwb2VfZmluZGNvb2tpZShub2RlLCB1dGFnKTsK
IAkJCWlmIChzZW5kaG9vayA9PSBOVUxMKQogCQkJCUxFQVZFKEVORVRVTlJFQUNIKTsKIApAQCAt
MTYwNSw4ICsxODM1LDcgQEAKIAkJCSAqIHNldCB1cyBpbnRvIFNlc3Npb24gbW9kZS4KIAkJCSAq
LwogCQkJdXRhZyA9IGdldF90YWcocGgsIFBUVF9IT1NUX1VOSVEpOwotCQkJaWYgKCh1dGFnID09
IE5VTEwpIHx8Ci0JCQkgICAgKG50b2hzKHV0YWctPnRhZ19sZW4pICE9IHNpemVvZihzcCkpKSB7
CisJCQlpZiAodXRhZyA9PSBOVUxMKSB7CiAJCQkJTEVBVkUgKEVORVRVTlJFQUNIKTsKIAkJCX0K
IAkJCXNlbmRob29rID0gcHBwb2VfZmluZHVuaXEobm9kZSwgdXRhZyk7CkBAIC0xNjU5LDYgKzE4
ODgsMTkgQEAKIAkJCS8qIERpc2Nvbm5lY3QgdGhhdCBob29rLiAqLwogCQkJbmdfcm1ob29rX3Nl
bGYoc3AtPmhvb2spOwogCQkJYnJlYWs7CisJCWNhc2UJUEFETV9DT0RFOgorCQkJLyoKKwkJCSAq
IFdlIGFyZSBhIGNsaWVudDoKKwkJCSAqIGZpbmQgbWF0Y2hpbmcgcGVlci9zZXNzaW9uIGNvbWJp
bmF0aW9uLgorCQkJICovCisJCQlzcCA9IHBwcG9lX2ZpbmRzZXNzaW9uKHByaXZwLCB3aCk7CisJ
CQlpZiAoc3AgPT0gTlVMTCkKKwkJCQlMRUFWRSAoRU5FVFVOUkVBQ0gpOworCQkJaWYgKCh0YWcg
PSBnZXRfdGFnKHBoLCBQVFRfSFVSTCkpKQorCQkJCXNlbmRfaHVybChzcCwgdGFnKTsKKwkJCWlm
ICgodGFnID0gZ2V0X3RhZyhwaCwgUFRUX01PVE0pKSkKKwkJCQlzZW5kX21vdG0oc3AsIHRhZyk7
CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCUxFQVZFKEVQRk5PU1VQUE9SVCk7CiAJCX0KQEAg
LTE3ODEsNyArMjAyMyw3IEBACiAJCQlzdHJ1Y3QgbWJ1ZiAqbTsKIAogCQkJLyogR2VuZXJhdGUg
YSBwYWNrZXQgb2YgdGhhdCB0eXBlLiAqLwotCQkJTUdFVEhEUihtLCBNX05PV0FJVCwgTVRfREFU
QSk7CisJCQltID0gbV9nZXRoZHIoTV9OT1dBSVQsIE1UX0RBVEEpOwogCQkJaWYgKG0gPT0gTlVM
TCkKIAkJCQlsb2coTE9HX05PVElDRSwgIm5nX3BwcG9lWyV4XTogc2Vzc2lvbiBvdXQgb2YgIgog
CQkJCSAgICAibWJ1ZnNcbiIsIG5vZGUtPm5kX0lEKTsKQEAgLTE3OTEsOCArMjAzMyw2IEBACiAJ
CQkJaW50CW1zZ2xlbiA9IHN0cmxlbihTSUdOT0ZGKTsKIAkJCQlpbnQJZXJyb3IgPSAwOwogCi0J
CQkJbS0+bV9wa3RoZHIucmN2aWYgPSBOVUxMOwotCQkJCW0tPm1fcGt0aGRyLmxlbiA9IG0tPm1f
bGVuID0gc2l6ZW9mKCp3aCk7CiAJCQkJd2ggPSBtdG9kKG0sIHN0cnVjdCBwcHBvZV9mdWxsX2hk
ciAqKTsKIAkJCQliY29weSgmc3AtPnBrdF9oZHIsIHdoLCBzaXplb2YoKndoKSk7CiAKQEAgLTE4
MTUsOCArMjA1NSw4IEBACiAJCQkJdGFnLT50YWdfdHlwZSA9IFBUVF9HRU5fRVJSOwogCQkJCXRh
Zy0+dGFnX2xlbiA9IGh0b25zKCh1X2ludDE2X3QpbXNnbGVuKTsKIAkJCQlzdHJuY3B5KChjaGFy
ICopKHRhZyArIDEpLCBTSUdOT0ZGLCBtc2dsZW4pOwotCQkJCW0tPm1fcGt0aGRyLmxlbiA9ICht
LT5tX2xlbiArPSBzaXplb2YoKnRhZykgKwotCQkJCSAgICBtc2dsZW4pOworCQkJCW0tPm1fcGt0
aGRyLmxlbiA9IG0tPm1fbGVuID0gc2l6ZW9mKCp3aCkgKyBzaXplb2YoKnRhZykgKworCQkJCSAg
ICBtc2dsZW47CiAJCQkJd2gtPnBoLmxlbmd0aCA9IGh0b25zKHNpemVvZigqdGFnKSArIG1zZ2xl
bik7CiAJCQkJTkdfU0VORF9EQVRBX09OTFkoZXJyb3IsCiAJCQkJCXByaXZwLT5ldGhlcm5ldF9o
b29rLCBtKTsKQEAgLTE5MzMsNiArMjE3Myw4IEBACiAJCWNhc2UJUFRUX1NZU19FUlI6CiAJCWNh
c2UJUFRUX0dFTl9FUlI6CiAJCWNhc2UJUFRUX01BWF9QQVlMOgorCQljYXNlCVBUVF9IVVJMOgor
CQljYXNlCVBUVF9NT1RNOgogCQkJYnJlYWs7CiAJCX0KIAkJcHQgPSAoY29uc3Qgc3RydWN0IHBw
cG9lX3RhZyopcHRuOwpkaWZmIC0tZ2l0IGEvc2hhcmUvbWFuL21hbjQvbmdfcHBwb2UuNCBiL3No
YXJlL21hbi9tYW40L25nX3BwcG9lLjQKLS0tIGEvc2hhcmUvbWFuL21hbjQvbmdfcHBwb2UuNAor
KysgYi9zaGFyZS9tYW4vbWFuNC9uZ19wcHBvZS40CkBAIC0zNSw3ICszNSw3IEBACiAuXCIgJEZy
ZWVCU0QkCiAuXCIgJFdoaXN0bGU6IG5nX3BwcG9lLjgsdiAxLjEgMTk5OS8wMS8yNSAyMzo0Njoy
NyBhcmNoaWUgRXhwICQKIC5cIgotLkRkIFNlcHRlbWJlciAxNSwgMjAxNQorLkRkIEFwcmlsIDQs
IDIwMTcKIC5EdCBOR19QUFBPRSA0CiAuT3MKIC5TaCBOQU1FCkBAIC0xMDQsMTIgKzEwNCwzMyBA
QAogSXQgbXVzdCBiZSBuZXdseSBjcmVhdGVkIGFuZCBhIHNlcnZpY2UgbmFtZSBjYW4gYmUgZ2l2
ZW4gYXMgYW4gYXJndW1lbnQuCiBJdCBpcyBsZWdhbCB0byBzcGVjaWZ5IGEgemVyby1sZW5ndGgg
c2VydmljZSBuYW1lLCB0aGlzIGlzIGNvbW1vbgogb24gc29tZSBEU0wgc2V0dXBzLgotSXQgaXMg
cG9zc2libGUgdG8gcmVxdWVzdCBhIGNvbm5lY3Rpb24gdG8gYSBzcGVjaWZpYwotYWNjZXNzIGNv
bmNlbnRyYXRvciBieSBpdHMgbmFtZSB1c2luZyB0aGUgIkFDLU5hbWVcXFNlcnZpY2UtTmFtZSIg
c3ludGF4LgotQSBzZXNzaW9uIHJlcXVlc3QgcGFja2V0IHdpbGwgYmUgYnJvYWRjYXN0ZWQgb24g
dGhlIEV0aGVybmV0LgorSXQgaXMgcG9zc2libGUgdG8gcmVxdWVzdCBhIGNvbm5lY3Rpb24gdG8g
YSBzcGVjaWZpYyBhY2Nlc3MgY29uY2VudHJhdG9yLAorYW5kL29yIHNldCBhIHNwZWNpZmljIEhv
c3QtVW5pcSB0YWcsIHJlcXVpcmVkIGJ5IHNvbWUgSW50ZXJuZXQgcHJvdmlkZXJzLAordXNpbmcg
dGhlCisuUXEgTGkgW0FDLU5hbWVcXF1bSG9zdC1VbmlxfF1TZXJ2aWNlLU5hbWUKK3N5bnRheC4K
K1RvIHNldCBhIGJpbmFyeSBIb3N0LVVuaXEsIGl0IG11c3QgYmUgZW5jb2RlZCBhcyBhIGhleGFk
ZWNpbWFsIGxvd2VyY2FzZQorc3RyaW5nIGFuZCBwcmVmaXhlZCB3aXRoIAorLlFxIExpIDB4ICwK
K2ZvciBleGFtcGxlIAorLlFxIExpIDB4NmQ3OTJkNzQ2MTY3CitpcyBlcXVpdmFsZW50IHRvCisu
UXEgTGkgbXktdGFnIC4KK0Egc2Vzc2lvbiByZXF1ZXN0IHBhY2tldCB3aWxsIGJlIGJyb2FkY2Fz
dCBvbiB0aGUgRXRoZXJuZXQuCiBUaGlzIGNvbW1hbmQgdXNlcyB0aGUKIC5EdiBuZ3BwcG9lX2lu
aXRfZGF0YQogc3RydWN0dXJlIHNob3duIGJlbG93LgorRm9yIGV4YW1wbGUsIHRoaXMgaW5pdCBk
YXRhIGFyZ3VtZW50IGNhbiBiZSB1c2VkIHRvCitjb25uZWN0IHRvCisuUXEgTGkgbXktaXNwCitz
ZXJ2aWNlIHdpdGgKKy5RcSBMaSBteS1ob3N0Cit1bmlxIHRhZywgYWNjZXB0aW5nIG9ubHkKKy5R
cSBMaSByZW1vdGUtYWMKK2FzIGFjY2VzcyBjb25jZW50cmF0b3I6CisuQmQgLWxpdGVyYWwgLW9m
ZnNldCBpbmRlbnQKKyJyZW1vdGUtYWNcXG15LWhvc3R8bXktaXNwIgorLkVkCiAuSXQgRHYgTkdN
X1BQUE9FX0xJU1RFTiBQcSBJYyBwcHBvZV9saXN0ZW4KIFRlbGwgYSBub21pbmF0ZWQgbmV3bHkg
Y3JlYXRlZCBob29rIHRoYXQgaXRzIHNlc3Npb24gc2hvdWxkIGVudGVyCiB0aGUgc3RhdGUgbWFj
aGluZSBhcyBhIHNlcnZlciBsaXN0ZW5lci4KQEAgLTI1OCw3ICsyNzksNDEgQEAKICAgICB1aW50
MTZfdCBkYXRhOwogfTsKIC5FZAorLkl0IER2IE5HTV9QUFBPRV9TRU5EX0hVUkwgUHEgSWMgc2Vu
ZF9odXJsCitUZWxsIGEgbm9taW5hdGVkIGhvb2sgd2l0aCBhbiBhY3RpdmUgc2Vzc2lvbiB0byBz
ZW5kIGEgUEFETSBtZXNzYWdlIHdpdGgKK2EgSFVSTCB0YWcuCitUaGUgYXJndW1lbnQgaXMgdGhl
IFVSTCB0byBiZSBkZWxpdmVyZWQgdG8gdGhlIGNsaWVudDoKKy5CZCAtbGl0ZXJhbCAtb2Zmc2V0
IGluZGVudAorbmdjdGwgbXNnIGZ4cDA6b3JwaGFucyBzZW5kX2h1cmwgJ3sgaG9vaz0ibXlIb29r
IiBkYXRhPSJodHRwOi8vZXhhbXBsZS5uZXQvY3BlIiB9JworLkVkCisuSXQgRHYgTkdNX1BQUE9F
X1NFTkRfTU9UTSBQcSBJYyBzZW5kX21vdG0KK1RlbGwgYSBub21pbmF0ZWQgaG9vayB3aXRoIGFu
IGFjdGl2ZSBzZXNzaW9uIHRvIHNlbmQgYSBQQURNIG1lc3NhZ2Ugd2l0aAorYSBNT1RNIHRhZy4K
K1RoZSBhcmd1bWVudCBpcyB0aGUgbWVzc2FnZSB0byBiZSBkZWxpdmVyZWQgdG8gdGhlIGNsaWVu
dDoKKy5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGluZGVudAorbmdjdGwgbXNnIGZ4cDA6b3JwaGFucyBz
ZW5kX21vdG0gJ3sgaG9vaz0ibXlIb29rIiBkYXRhPSJXZWxjb21lIGFib2FyZCIgfScKKy5FZAog
LkVsCisuUHAKK1RoZSB0d28gY29tbWFuZHMgYWJvdmUgdXNlIHRoZSBzYW1lIG5ncHBwb2VfaW5p
dF9kYXRhIHN0cnVjdHVyZSBkZXNjcmliZWQKK2Fib3ZlLgorLkJsIC10YWcgLXdpZHRoIDNuCisu
SXQgRHYgTkdNX1BQUE9FX0hVUkwKK1RoaXMgY29tbWFuZCBpcyBzZW50IHRvIHRoZSBub2RlIHRo
YXQgc3RhcnRlZCB0aGlzIHNlc3Npb24gd2hlbiBhIFBBRE0KK21lc3NhZ2Ugd2l0aCBhIEhVUkwg
dGFnIGlzIHJlY2VpdmVkLCBhbmQgY29udGFpbnMgYSBVUkwgdGhhdCB0aGUgaG9zdCBjYW4KK3Bh
c3MgdG8gYSB3ZWIgYnJvd3NlciBmb3IgcHJlc2VudGF0aW9uIHRvIHRoZSB1c2VyLgorLkl0IER2
IE5HTV9QUFBPRV9NT1RNCitUaGlzIGNvbW1hbmQgaXMgc2VudCB0byB0aGUgbm9kZSB0aGF0IHN0
YXJ0ZWQgdGhpcyBzZXNzaW9uIHdoZW4gYSBQQURNCittZXNzYWdlIHdpdGggYSBNT1RNIHRhZyBp
cyByZWNlaXZlZCwgYW5kIGNvbnRhaW5zIGEgTWVzc2FnZSBPZiBUaGUKK01pbnV0ZSB0aGF0IHRo
ZSBob3N0IGNhbiBkaXNwbGF5IHRvIHRoZSB1c2VyLgorLkVsCisuUHAKK1RoZSB0d28gY29tbWFu
ZHMgYWJvdmUgdXNlIGEgY29tbW9uIGRhdGEgc3RydWN0dXJlOgorLkJkIC1saXRlcmFsIC1vZmZz
ZXQgNG4KK3N0cnVjdCBuZ3BwcG9lX3BhZG0geworICAgIGNoYXIgICAgbXNnW1BQUE9FX1BBRE1f
VkFMVUVfU0laRV07Cit9OworLkVkCiAuU2ggU0hVVERPV04KIFRoaXMgbm9kZSBzaHV0cyBkb3du
IHVwb24gcmVjZWlwdCBvZiBhCiAuRHYgTkdNX1NIVVRET1dOCgo=


--b1_8513b9a6eeb72a7bfdce60f3f947d8d7--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8513b9a6eeb72a7bfdce60f3f947d8d7>