From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Justin M. Forbes To: git-commits@fedoraproject.org Subject: [rpms/kernel] f43: kernel-7.0.11-100 Date: Mon, 01 Jun 2026 22:01:04 GMT Message-ID: <178035126466.1.12306156436821586710.rpms-kernel-1f9e35f1e59a@fedoraproject.org> List-ID: X-Git-Repo: rpms/kernel X-Git-Branch: f43 X-Git-Rev: 1f9e35f1e59a4d1f7a8c70e591b0fa30e27e19a0 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMva2VybmVsCiAgICAgICAgICAgIEJyYW5jaCA6IGY0MwogICAgICAgICAgICBD b21taXQgOiAxZjllMzVmMWU1OWE0ZDFmN2E4YzcwZTU5MWIwZmEzMGUyN2UxOWEwCiAgICAgICAg ICAgIEF1dGhvciA6IEp1c3RpbiBNLiBGb3JiZXMgPGpmb3JiZXNAZmVkb3JhcHJvamVjdC5vcmc+ CiAgICAgICAgICAgIERhdGUgICA6IDIwMjYtMDYtMDFUMTY6MDA6NDYtMDY6MDAKICAgICAgICAg ICAgU3RhdHMgIDogKzQwLy0xOTA5IGluIDUgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBo dHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2tlcm5lbC9jLzFmOWUzNWYxZTU5YTRk MWY3YThjNzBlNTkxYjBmYTMwZTI3ZTE5YTA/YnJhbmNoPWY0MwoKICAgICAgICAgICAgTG9nOgog ICAgICAgICAgICBrZXJuZWwtNy4wLjExLTEwMAoKKiBNb24gSnVuIDAxIDIwMjYgSnVzdGluIE0u IEZvcmJlcyA8amZvcmJlc0BmZWRvcmFwcm9qZWN0Lm9yZz4gWzcuMC4xMS0xXQotIFJldmVydCAi Y3J5cHRvL2tyYjUsIHJ4cnBjOiBGaXggbGFjayBvZiBwcmUtZGVjcnlwdC9wcmUtdmVyaWZ5IGxl bmd0aCBjaGVja3MiIChKdXN0aW4gTS4gRm9yYmVzKQotIFJldmVydCAicnhycGM6IEZpeCBEQVRB IGRlY3J5cHQgdnMgc3BsaWNlKCkgYnkgY29weWluZyBkYXRhIHRvIGJ1ZmZlciBpbiByZWN2bXNn IiAoSnVzdGluIE0uIEZvcmJlcykKLSBSZXZlcnQgInJ4cnBjOiBGaXggUkVTUE9OU0UgcGFja2V0 IHZlcmlmaWNhdGlvbiB0byBleHRyYWN0IHNrYiB0byBhIGxpbmVhciBidWZmZXIiIChKdXN0aW4g TS4gRm9yYmVzKQotIExpbnV4IHY3LjAuMTEKUmVzb2x2ZXM6CgpTaWduZWQtb2ZmLWJ5OiBKdXN0 aW4gTS4gRm9yYmVzIDxqZm9yYmVzQGZlZG9yYXByb2plY3Qub3JnPgoKLS0tCmRpZmYgLS1naXQg YS9QYXRjaGxpc3QuY2hhbmdlbG9nIGIvUGF0Y2hsaXN0LmNoYW5nZWxvZwppbmRleCBjMzYwODZi Li40MDE1OGYxIDEwMDY0NAotLS0gYS9QYXRjaGxpc3QuY2hhbmdlbG9nCisrKyBiL1BhdGNobGlz dC5jaGFuZ2Vsb2cKQEAgLTEsMyArMSwxMiBAQAoraHR0cHM6Ly9naXRsYWIuY29tL2NraS1wcm9q ZWN0L2tlcm5lbC1hcmsvLS9jb21taXQvOWEwYjU1NzJjY2ZkMWI3Yzc5ZGZiOWM2ODNlODk3NTg4 OTNlY2YwYQorIDlhMGI1NTcyY2NmZDFiN2M3OWRmYjljNjgzZTg5NzU4ODkzZWNmMGEgUmV2ZXJ0 ICJjcnlwdG8va3JiNSwgcnhycGM6IEZpeCBsYWNrIG9mIHByZS1kZWNyeXB0L3ByZS12ZXJpZnkg bGVuZ3RoIGNoZWNrcyIKKworaHR0cHM6Ly9naXRsYWIuY29tL2NraS1wcm9qZWN0L2tlcm5lbC1h cmsvLS9jb21taXQvOTJmYzU2YWM2NzhhYzI3NGFiMDIzN2JmYTAzN2I2NmJiZDU1YjQ4YworIDky ZmM1NmFjNjc4YWMyNzRhYjAyMzdiZmEwMzdiNjZiYmQ1NWI0OGMgUmV2ZXJ0ICJyeHJwYzogRml4 IERBVEEgZGVjcnlwdCB2cyBzcGxpY2UoKSBieSBjb3B5aW5nIGRhdGEgdG8gYnVmZmVyIGluIHJl Y3Ztc2ciCisKK2h0dHBzOi8vZ2l0bGFiLmNvbS9ja2ktcHJvamVjdC9rZXJuZWwtYXJrLy0vY29t bWl0LzcwM2MxYzRkOWQ2ZTUyMjc2OTU0YTkwOWFhNTlhMWZjMzNjYmMyYjgKKyA3MDNjMWM0ZDlk NmU1MjI3Njk1NGE5MDlhYTU5YTFmYzMzY2JjMmI4IFJldmVydCAicnhycGM6IEZpeCBSRVNQT05T RSBwYWNrZXQgdmVyaWZpY2F0aW9uIHRvIGV4dHJhY3Qgc2tiIHRvIGEgbGluZWFyIGJ1ZmZlciIK KwogaHR0cHM6Ly9naXRsYWIuY29tL2NraS1wcm9qZWN0L2tlcm5lbC1hcmsvLS9jb21taXQvZDgy ZDVmYmQyYjBkNmIzNmYzZTJlYjE4MGJlYzU1ZWJlZTQ5ZjY0YQogIGQ4MmQ1ZmJkMmIwZDZiMzZm M2UyZWIxODBiZWM1NWViZWU0OWY2NGEgYXRhOiBsaWJhdGEtc2NzaTogZG8gbm90IG5lZWRsZXNz bHkgZGVmZXIgY29tbWFuZHMgd2hlbiB1c2luZyBQTVAgd2l0aCBGQlMKIAoKZGlmZiAtLWdpdCBh L2tlcm5lbC5jaGFuZ2Vsb2cgYi9rZXJuZWwuY2hhbmdlbG9nCmluZGV4IGZiM2Q0ZWMuLjU0ZjFh YTYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC5jaGFuZ2Vsb2cKKysrIGIva2VybmVsLmNoYW5nZWxvZwpA QCAtMSwzICsxLDEwIEBACisqIE1vbiBKdW4gMDEgMjAyNiBKdXN0aW4gTS4gRm9yYmVzIDxqZm9y YmVzQGZlZG9yYXByb2plY3Qub3JnPiBbNy4wLjExLTFdCistIFJldmVydCAiY3J5cHRvL2tyYjUs IHJ4cnBjOiBGaXggbGFjayBvZiBwcmUtZGVjcnlwdC9wcmUtdmVyaWZ5IGxlbmd0aCBjaGVja3Mi IChKdXN0aW4gTS4gRm9yYmVzKQorLSBSZXZlcnQgInJ4cnBjOiBGaXggREFUQSBkZWNyeXB0IHZz IHNwbGljZSgpIGJ5IGNvcHlpbmcgZGF0YSB0byBidWZmZXIgaW4gcmVjdm1zZyIgKEp1c3RpbiBN LiBGb3JiZXMpCistIFJldmVydCAicnhycGM6IEZpeCBSRVNQT05TRSBwYWNrZXQgdmVyaWZpY2F0 aW9uIHRvIGV4dHJhY3Qgc2tiIHRvIGEgbGluZWFyIGJ1ZmZlciIgKEp1c3RpbiBNLiBGb3JiZXMp CistIExpbnV4IHY3LjAuMTEKK1Jlc29sdmVzOiAKKwogKiBXZWQgTWF5IDI3IDIwMjYgSnVzdGlu IE0uIEZvcmJlcyA8amZvcmJlc0BmZWRvcmFwcm9qZWN0Lm9yZz4gWzcuMC4xMC0xXQogLSBhdGE6 IGxpYmF0YS1zY3NpOiBkbyBub3QgbmVlZGxlc3NseSBkZWZlciBjb21tYW5kcyB3aGVuIHVzaW5n IFBNUCB3aXRoIEZCUyAoTmlrbGFzIENhc3NlbCkKIC0gYXRhOiBsaWJhdGEtc2NzaTogZG8gbm90 IHVzZSB0aGUgZGVmZXJyZWQgUUMgZmVhdHVyZSBvbiBQTVBzIHdpdGggQ0JTIChOaWtsYXMgQ2Fz c2VsKQoKZGlmZiAtLWdpdCBhL2tlcm5lbC5zcGVjIGIva2VybmVsLnNwZWMKaW5kZXggNDA2OTcx Yi4uOGQyZmY1NyAxMDA2NDQKLS0tIGEva2VybmVsLnNwZWMKKysrIGIva2VybmVsLnNwZWMKQEAg LTE4NywxOCArMTg3LDE4IEBAIFN1bW1hcnk6IFRoZSBMaW51eCBrZXJuZWwKICMgIHRoZSAtLXdp dGgtcmVsZWFzZSBvcHRpb24gb3ZlcnJpZGVzIHRoaXMgc2V0dGluZy4pCiAlZGVmaW5lIGRlYnVn YnVpbGRzZW5hYmxlZCAxCiAjIGRlZmluZSBidWlsZGlkIC5sb2NhbAotJWRlZmluZSBzcGVjcnBt dmVyc2lvbiA3LjAuMTAKLSVkZWZpbmUgc3BlY3ZlcnNpb24gNy4wLjEwCislZGVmaW5lIHNwZWNy cG12ZXJzaW9uIDcuMC4xMQorJWRlZmluZSBzcGVjdmVyc2lvbiA3LjAuMTEKICVkZWZpbmUgcGF0 Y2h2ZXJzaW9uIDcuMAotJWRlZmluZSBwa2dyZWxlYXNlIDEwMQorJWRlZmluZSBwa2dyZWxlYXNl IDEwMAogJWRlZmluZSBrdmVyc2lvbiA3Ci0lZGVmaW5lIHRhcmZpbGVfcmVsZWFzZSA3LjAuMTAK KyVkZWZpbmUgdGFyZmlsZV9yZWxlYXNlIDcuMC4xMQogIyBUaGlzIGlzIG5lZWRlZCB0byBkbyBt ZXJnZSB3aW5kb3cgdmVyc2lvbiBtYWdpYwogJWRlZmluZSBwYXRjaGxldmVsIDAKICMgVGhpcyBh bGxvd3MgcGtnX3JlbGVhc2UgdG8gaGF2ZSBjb25maWd1cmFibGUgJSV7P2Rpc3R9IHRhZwotJWRl ZmluZSBzcGVjcmVsZWFzZSAxMDElez9idWlsZGlkfSV7P2Rpc3R9CislZGVmaW5lIHNwZWNyZWxl YXNlIDEwMCV7P2J1aWxkaWR9JXs/ZGlzdH0KICMgVGhpcyBkZWZpbmVzIHRoZSBrYWJpIHRhcmJh bGwgdmVyc2lvbgotJWRlZmluZSBrYWJpdmVyc2lvbiA3LjAuMTAKKyVkZWZpbmUga2FiaXZlcnNp b24gNy4wLjExCiAKICMgSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gMSwgYSBicGYgc2VsZnRl c3RzIGJ1aWxkIGZhaWx1cmUgd2lsbCBjYXVzZSBhCiAjIGZhdGFsIGtlcm5lbCBwYWNrYWdlIGJ1 aWxkIGVycm9yCkBAIC00ODI1LDYgKzQ4MjUsMTIgQEAgZmlcCiAjCiAjCiAlY2hhbmdlbG9nCisq IE1vbiBKdW4gMDEgMjAyNiBKdXN0aW4gTS4gRm9yYmVzIDxqZm9yYmVzQGZlZG9yYXByb2plY3Qu b3JnPiBbNy4wLjExLTFdCistIFJldmVydCAiY3J5cHRvL2tyYjUsIHJ4cnBjOiBGaXggbGFjayBv ZiBwcmUtZGVjcnlwdC9wcmUtdmVyaWZ5IGxlbmd0aCBjaGVja3MiIChKdXN0aW4gTS4gRm9yYmVz KQorLSBSZXZlcnQgInJ4cnBjOiBGaXggREFUQSBkZWNyeXB0IHZzIHNwbGljZSgpIGJ5IGNvcHlp bmcgZGF0YSB0byBidWZmZXIgaW4gcmVjdm1zZyIgKEp1c3RpbiBNLiBGb3JiZXMpCistIFJldmVy dCAicnhycGM6IEZpeCBSRVNQT05TRSBwYWNrZXQgdmVyaWZpY2F0aW9uIHRvIGV4dHJhY3Qgc2ti IHRvIGEgbGluZWFyIGJ1ZmZlciIgKEp1c3RpbiBNLiBGb3JiZXMpCistIExpbnV4IHY3LjAuMTEK KwogKiBXZWQgTWF5IDI3IDIwMjYgSnVzdGluIE0uIEZvcmJlcyA8amZvcmJlc0BmZWRvcmFwcm9q ZWN0Lm9yZz4gWzcuMC4xMC0xXQogLSBhdGE6IGxpYmF0YS1zY3NpOiBkbyBub3QgbmVlZGxlc3Ns eSBkZWZlciBjb21tYW5kcyB3aGVuIHVzaW5nIFBNUCB3aXRoIEZCUyAoTmlrbGFzIENhc3NlbCkK IC0gYXRhOiBsaWJhdGEtc2NzaTogZG8gbm90IHVzZSB0aGUgZGVmZXJyZWQgUUMgZmVhdHVyZSBv biBQTVBzIHdpdGggQ0JTIChOaWtsYXMgQ2Fzc2VsKQoKZGlmZiAtLWdpdCBhL3BhdGNoLTcuMC1y ZWRoYXQucGF0Y2ggYi9wYXRjaC03LjAtcmVkaGF0LnBhdGNoCmluZGV4IDRlOTc3ZGQuLmE1Yzk5 MzggMTAwNjQ0Ci0tLSBhL3BhdGNoLTcuMC1yZWRoYXQucGF0Y2gKKysrIGIvcGF0Y2gtNy4wLXJl ZGhhdC5wYXRjaApAQCAtMSw3ICsxLDYgQEAKICBEb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21l ZGlhL2FtZGlzcDQtMS5yc3QgICAgICB8ICAgNjMgKysKICBEb2N1bWVudGF0aW9uL2FkbWluLWd1 aWRlL21lZGlhL2FtZGlzcDQuZG90ICAgICAgICB8ICAgIDYgKwogIERvY3VtZW50YXRpb24vYWRt aW4tZ3VpZGUvbWVkaWEvdjRsLWRyaXZlcnMucnN0ICAgIHwgICAgMSArCi0gRG9jdW1lbnRhdGlv bi9jcnlwdG8va3JiNS5yc3QgICAgICAgICAgICAgICAgICAgICAgfCAgIDE3ICstCiAgTUFJTlRB SU5FUlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI1ICsKICBN YWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzAg KwogIGFyY2gvYXJtL0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgNCArLQpAQCAtMTgsMTggKzE3LDEyIEBACiAgYXJjaC9zMzkwL2tlcm5lbC9pcGwuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA1ICsKICBhcmNoL3MzOTAva2VybmVsL3NldHVw LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogIGFyY2gveDg2L2tlcm5lbC9z ZXR1cC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiArLQotIGNyeXB0by9rcmI1 L2tyYjVfYXBpLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1NCArLQogIGNyeXB0 by9zaWcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArLQog IGNyeXB0by90ZXN0bWdyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg MiArLQogIGRyaXZlcnMvYWNwaS9hcGVpL2hlc3QuYyAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgOCArCiAgZHJpdmVycy9hY3BpL2lycS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDE3ICstCiAgZHJpdmVycy9hY3BpL3NjYW4uYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICA5ICsKICBkcml2ZXJzL2F0YS9saWJhaGNpLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMTggKwotIGRyaXZlcnMvYXRhL2xpYmF0YS1jb3JlLmMgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSArLQotIGRyaXZlcnMvYXRhL2xpYmF0YS1laC5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArLQotIGRyaXZlcnMvYXRhL2xpYmF0 YS1wbXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArLQotIGRyaXZlcnMvYXRh L2xpYmF0YS1zY3NpLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwMCArLQotIGRyaXZl cnMvYXRhL3NhdGFfc2lsMjQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQog IGRyaXZlcnMvY2hhci9pcG1pL2lwbWlfZG1pLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAx NSArCiAgZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9tc2doYW5kbGVyLmMgICAgICAgICAgICAgICAg fCAgIDE2ICstCiAgZHJpdmVycy9maXJtd2FyZS9lZmkvTWFrZWZpbGUgICAgICAgICAgICAgICAg ICAgICAgfCAgICAxICsKQEAgLTQ2LDcgKzM5LDYgQEAKICBkcml2ZXJzL2hpZC9oaWQtcm1pLmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjYgLS0KICBkcml2ZXJzL2h3dHJhY2lu Zy9jb3Jlc2lnaHQvY29yZXNpZ2h0LWV0bTR4LWNvcmUuYyB8ICAgMTkgKwogIGRyaXZlcnMvaW5w dXQvcm1pNC9ybWlfZHJpdmVyLmMgICAgICAgICAgICAgICAgICAgIHwgIDEyNCArKy0KLSBkcml2 ZXJzL2lvbW11L2FtZC9kZWJ1Z2ZzLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDMgKy0K ICBkcml2ZXJzL2lvbW11L2lvbW11LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MjIgKwogIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAg IHwgICAgMSArCiAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgICAgfCAgICAxICsKQEAgLTcyLDMwICs2NCwxNSBAQAogIGRyaXZlcnMvbmZjL254cC1uY2kv aTJjLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArLQogIGRyaXZlcnMvcGNpL3F1 aXJrcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNCArCiAgZHJpdmVycy91 c2IvY29yZS9odWIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsKLSBmcy9z bWIvY2xpZW50L2NpZnNfc3BuZWdvLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKwot IGZzL3NtYi9zZXJ2ZXIvdmZzX2NhY2hlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEw MiArLQotIGluY2x1ZGUvY3J5cHRvL2tyYjUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgOSArLQogIGluY2x1ZGUvbGludXgvZWZpLmggICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAyMiArLQotIGluY2x1ZGUvbGludXgvbGliYXRhLmggICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgNyArLQogIGluY2x1ZGUvbGludXgvbHNtX2hvb2tfZGVmcy5oICAg ICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiAgaW5jbHVkZS9saW51eC9tZmQvYmNtMjgzNS1w bS5oICAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsKICBpbmNsdWRlL2xpbnV4L3JtaS5oICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogIGluY2x1ZGUvbGludXgvc2Vj dXJpdHkuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSArCi0gaW5jbHVkZS90cmFj ZS9ldmVudHMvcnhycGMuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKICBrZXJuZWwv bW9kdWxlL3NpZ25pbmcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKy0KICBu ZXQvY29yZS9ncm8uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMg KwogIG5ldC9pcHY0L2VzcDQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgNSArLQogIG5ldC9pcHY2L2VzcDYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgNSArLQotIG5ldC9yeHJwYy9hci1pbnRlcm5hbC5oICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAxNCArLQotIG5ldC9yeHJwYy9jYWxsX2V2ZW50LmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAyMiArLQotIG5ldC9yeHJwYy9jYWxsX29iamVjdC5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCi0gbmV0L3J4cnBjL2Nvbm5fZXZlbnQuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMyICstCi0gbmV0L3J4cnBjL2luc2VjdXJl LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICstCi0gbmV0L3J4cnBjL3Jl Y3Ztc2cuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDY4ICstCi0gbmV0L3J4 cnBjL3J4Z2suYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTYwICsrLQot IG5ldC9yeHJwYy9yeGdrX2FwcC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0 NiArLQotIG5ldC9yeHJwYy9yeGdrX2NvbW1vbi5oICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA2NiArLQotIG5ldC9yeHJwYy9yeGthZC5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDExNSArLS0KICBuZXQvc2NoZWQvYWN0X3BlZGl0LmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgNzIgKy0KICBzY3JpcHRzL01ha2VmaWxlLmxpYiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogIHNjcmlwdHMvdGFncy5zaCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCkBAIC0xMDcsNyArODQsNyBAQAogIHNv dW5kL3NvYy9jb2RlY3MvcnQ3MjItc2RjYS5oICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCAr CiAgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlICAgICAgICAgICAgICAgfCAg ICAyICstCiAgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMva3N5bXNfYnRm LmMgfCAgIDMxIC0KLSAxMDkgZmlsZXMgY2hhbmdlZCwgNjA5NyBpbnNlcnRpb25zKCspLCAxMDAz IGRlbGV0aW9ucygtKQorIDg2IGZpbGVzIGNoYW5nZWQsIDU1ODQgaW5zZXJ0aW9ucygrKSwgNTkz IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9t ZWRpYS9hbWRpc3A0LTEucnN0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tZWRpYS9hbWRp c3A0LTEucnN0CiBuZXcgZmlsZSBtb2RlIDEwMDY0NApAQCAtMjAyLDM3ICsxNzksNiBAQCBpbmRl eCAzOTNmODNlOGRjNGQuLjBmYjg4NDQ5ZmZmZCAxMDA2NDQKICAJYnR0dgogIAljMy1pc3AKICAJ Y2FmZV9jY2ljCi1kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9jcnlwdG8va3JiNS5yc3QgYi9E b2N1bWVudGF0aW9uL2NyeXB0by9rcmI1LnJzdAotaW5kZXggYmVmZmEwMTMzNDQ2Li5mNjJlMDdh YzY4MTEgMTAwNjQ0Ci0tLS0gYS9Eb2N1bWVudGF0aW9uL2NyeXB0by9rcmI1LnJzdAotKysrIGIv RG9jdW1lbnRhdGlvbi9jcnlwdG8va3JiNS5yc3QKLUBAIC0xNTgsMTMgKzE1OCwyMiBAQCByZXR1 cm5lZC4KLSBXaGVuIGEgbWVzc2FnZSBoYXMgYmVlbiByZWNlaXZlZCwgdGhlIGxvY2F0aW9uIGFu ZCBzaXplIG9mIHRoZSBkYXRhIHdpdGggdGhlCi0gbWVzc2FnZSBjYW4gYmUgZGV0ZXJtaW5lZCBi eSBjYWxsaW5nOjoKLSAKLS0Jdm9pZCBjcnlwdG9fa3JiNV93aGVyZV9pc190aGVfZGF0YShjb25z dCBzdHJ1Y3Qga3JiNV9lbmN0eXBlICprcmI1LAotLQkJCQkJICAgZW51bSBrcmI1X2NyeXB0b19t b2RlIG1vZGUsCi0tCQkJCQkgICBzaXplX3QgKl9vZmZzZXQsIHNpemVfdCAqX2xlbik7Ci0rCWlu dCBjcnlwdG9fa3JiNV93aGVyZV9pc190aGVfZGF0YShjb25zdCBzdHJ1Y3Qga3JiNV9lbmN0eXBl ICprcmI1LAotKwkJCQkJICBlbnVtIGtyYjVfY3J5cHRvX21vZGUgbW9kZSwKLSsJCQkJCSAgc2l6 ZV90ICpfb2Zmc2V0LCBzaXplX3QgKl9sZW4pOwotIAotIFRoZSBjYWxsZXIgcHJvdmlkZXMgdGhl IG9mZnNldCBhbmQgbGVuZ3RoIG9mIHRoZSBtZXNzYWdlIHRvIHRoZSBmdW5jdGlvbiwgd2hpY2gK LSB0aGVuIGFsdGVycyB0aG9zZSB2YWx1ZXMgdG8gaW5kaWNhdGUgdGhlIHJlZ2lvbiBjb250YWlu aW5nIHRoZSBkYXRhIChwbHVzIGFueQotLXBhZGRpbmcpLiAgSXQgaXMgdXAgdG8gdGhlIGNhbGxl ciB0byBkZXRlcm1pbmUgaG93IG11Y2ggcGFkZGluZyB0aGVyZSBpcy4KLStwYWRkaW5nKS4gIEl0 IGlzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZGV0ZXJtaW5lIGhvdyBtdWNoIHBhZGRpbmcgdGhlcmUg aXMuICBUaGUKLStmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yIGlmIHRoZSBsZW5ndGggaXMgdG9v IHNtYWxsIG9yIGlmIHRoZSBtb2RlIGlzCi0rdW5zdXBwb3J0ZWQuICBBbiBhZGRpdGlvbmFsIGZ1 bmN0aW9uOjoKLSsKLSsJaW50IGNyeXB0b19rcmI1X2NoZWNrX2RhdGFfbGVuKGNvbnN0IHN0cnVj dCBrcmI1X2VuY3R5cGUgKmtyYjUsCi0rCQkJCSAgICAgICBlbnVtIGtyYjVfY3J5cHRvX21vZGUg bW9kZSwKLSsJCQkJICAgICAgIHNpemVfdCBsZW4sIHNpemVfdCBtaW5fY29udGVudCk7Ci0rCi0r aXMgcHJvdmlkZWQgdG8ganVzdCBkbyBhIGJhc2ljIGNoZWNrIHRoYXQgdGhlIGRlY3J5cHRlZC92 ZXJpZmllZCBtZXNzYWdlIHdvdWxkCi0raGF2ZSBhIHN1ZmZpY2llbnQgbWluaW11bSBwYXlsb2Fk LgotIAotIFByZXBhcmF0aW9uIEZ1bmN0aW9ucwotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZGlm ZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKIGluZGV4IGQxY2MwZTEyZmUxZi4u OTg1YzY2OTUxNDc1IDEwMDY0NAogLS0tIGEvTUFJTlRBSU5FUlMKQEAgLTI3MCw3ICsyMTYsNyBA QCBpbmRleCBkMWNjMGUxMmZlMWYuLjk4NWM2Njk1MTQ3NSAxMDA2NDQKICBNOglGZWxpeCBLdWVo bGluZyA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4KICBMOglhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwogZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKLWluZGV4IGE5NWYwYjNk MjZiZi4uOTliMmM3NjRjNGM5IDEwMDY0NAoraW5kZXggZDJhMWMzYTFhYjQ0Li41MzQzZTM0YzBm YjEgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZQogKysrIGIvTWFrZWZpbGUKIEBAIC0zNTYsNiArMzU2 LDE3IEBAIGlmbmVxICgkKGZpbHRlciBpbnN0YWxsLCQoTUFLRUNNREdPQUxTKSksKQpAQCAtODc3 LDg2ICs4MjMsNiBAQCBpbmRleCBlZWJjYzlkYjFhMWIuLjc3OWFjYTY5NjlkZiAxMDA2NDQKICAK ICAJcmVzZXJ2ZV9pbml0cmQoKTsKICAKLWRpZmYgLS1naXQgYS9jcnlwdG8va3JiNS9rcmI1X2Fw aS5jIGIvY3J5cHRvL2tyYjUva3JiNV9hcGkuYwotaW5kZXggMjMwMjZkNDIwNmM4Li5jN2VhNDBm OTAwYTcgMTAwNjQ0Ci0tLS0gYS9jcnlwdG8va3JiNS9rcmI1X2FwaS5jCi0rKysgYi9jcnlwdG8v a3JiNS9rcmI1X2FwaS5jCi1AQCAtMTM0LDI3ICsxMzQsNjkgQEAgRVhQT1JUX1NZTUJPTChjcnlw dG9fa3JiNV9ob3dfbXVjaF9kYXRhKTsKLSAgKiBGaW5kIHRoZSBvZmZzZXQgYW5kIHNpemUgb2Yg dGhlIGRhdGEgaW4gYSBzZWN1cmUgbWVzc2FnZSBzbyB0aGF0IHRoaXMKLSAgKiBpbmZvcm1hdGlv biBjYW4gYmUgdXNlZCBpbiB0aGUgbWV0YWRhdGEgYnVmZmVyIHdoaWNoIHdpbGwgZ2V0IGFkZGVk IHRvIHRoZQotICAqIGRpZ2VzdCBieSBjcnlwdG9fa3JiNV92ZXJpZnlfbWljKCkuCi0rICoKLSsg KiBSZXR1cm46IDAgaWYgc3VjY2Vzc2Z1bCwgLUVCQURNU0cgaWYgdGhlIG1lc3NhZ2UgaXMgdG9v IHNob3J0IG9yIC1FSU5WQUwgaWYKLSsgKiB0aGUgbW9kZSBpcyB1bnN1cHBvcnRlZC4KLSAgKi8K LS12b2lkIGNyeXB0b19rcmI1X3doZXJlX2lzX3RoZV9kYXRhKGNvbnN0IHN0cnVjdCBrcmI1X2Vu Y3R5cGUgKmtyYjUsCi0tCQkJCSAgIGVudW0ga3JiNV9jcnlwdG9fbW9kZSBtb2RlLAotLQkJCQkg ICBzaXplX3QgKl9vZmZzZXQsIHNpemVfdCAqX2xlbikKLStpbnQgY3J5cHRvX2tyYjVfd2hlcmVf aXNfdGhlX2RhdGEoY29uc3Qgc3RydWN0IGtyYjVfZW5jdHlwZSAqa3JiNSwKLSsJCQkJICBlbnVt IGtyYjVfY3J5cHRvX21vZGUgbW9kZSwKLSsJCQkJICBzaXplX3QgKl9vZmZzZXQsIHNpemVfdCAq X2xlbikKLSB7Ci0gCXN3aXRjaCAobW9kZSkgewotIAljYXNlIEtSQjVfQ0hFQ0tTVU1fTU9ERToK LSsJCWlmICgqX2xlbiA8IGtyYjUtPmNrc3VtX2xlbikKLSsJCQlyZXR1cm4gLUVCQURNU0c7Ci0g CQkqX29mZnNldCArPSBrcmI1LT5ja3N1bV9sZW47Ci0gCQkqX2xlbiAtPSBrcmI1LT5ja3N1bV9s ZW47Ci0tCQlyZXR1cm47Ci0rCQlyZXR1cm4gMDsKLSAJY2FzZSBLUkI1X0VOQ1JZUFRfTU9ERToK LSsJCWlmICgqX2xlbiA8IGtyYjUtPmNvbmZfbGVuICsga3JiNS0+Y2tzdW1fbGVuKQotKwkJCXJl dHVybiAtRUJBRE1TRzsKLSAJCSpfb2Zmc2V0ICs9IGtyYjUtPmNvbmZfbGVuOwotIAkJKl9sZW4g LT0ga3JiNS0+Y29uZl9sZW4gKyBrcmI1LT5ja3N1bV9sZW47Ci0tCQlyZXR1cm47Ci0rCQlyZXR1 cm4gMDsKLSAJZGVmYXVsdDoKLSAJCVdBUk5fT05fT05DRSgxKTsKLS0JCXJldHVybjsKLSsJCXJl dHVybiAtRUlOVkFMOwotIAl9Ci0gfQotIEVYUE9SVF9TWU1CT0woY3J5cHRvX2tyYjVfd2hlcmVf aXNfdGhlX2RhdGEpOwotIAotKy8qKgotKyAqIGNyeXB0b19rcmI1X2NoZWNrX2RhdGFfbGVuIC0g Q2hlY2sgYSBtZXNzYWdlIGlzIGJpZyBlbm91Z2gKLSsgKiBAa3JiNTogVGhlIGVuY29kaW5nIHRv IHVzZS4KLSsgKiBAbW9kZTogTW9kZSBvZiBvcGVyYXRpb24uCi0rICogQGxlbjogVGhlIGxlbmd0 aCBvZiB0aGUgc2VjdXJlIGJsb2IuCi0rICogQG1pbl9jb250ZW50OiBNaW5pbXVtIGxlbmd0aCBv ZiB0aGUgY29udGVudCBpbnNpZGUgdGhlIGJsb2IuCi0rICoKLSsgKiBDaGVjayB0aGF0IGEgbWVz c2FnZSBpcyBsYXJnZSBlbm91Z2ggdG8gaG9sZCB3aGF0ZXZlciBiaXRzIHRoZSBlbmNyeXB0aW9u Ci0rICogdHlwZSB3YW50cyB0byBnbHVlIG9uIChub25jZSwgY2hlY2tzdW0pIHBsdXMgYSBtaW5p bXVtIGFtb3VudCBvZiBjb250ZW50LgotKyAqCi0rICogUmV0dXJuOiAwIGlmIHN1Y2Nlc3NmdWws IC1FQkFETVNHIGlmIHRoZSBtZXNzYWdlIGlzIHRvbyBzaG9ydCBvciAtRUlOVkFMIGlmCi0rICog dGhlIG1vZGUgaXMgdW5zdXBwb3J0ZWQuCi0rICovCi0raW50IGNyeXB0b19rcmI1X2NoZWNrX2Rh dGFfbGVuKGNvbnN0IHN0cnVjdCBrcmI1X2VuY3R5cGUgKmtyYjUsCi0rCQkJICAgICAgIGVudW0g a3JiNV9jcnlwdG9fbW9kZSBtb2RlLAotKwkJCSAgICAgICBzaXplX3QgbGVuLCBzaXplX3QgbWlu X2NvbnRlbnQpCi0rewotKwlzd2l0Y2ggKG1vZGUpIHsKLSsJY2FzZSBLUkI1X0NIRUNLU1VNX01P REU6Ci0rCQlpZiAobGVuIDwga3JiNS0+Y2tzdW1fbGVuIHx8Ci0rCQkgICAgbGVuIC0ga3JiNS0+ Y2tzdW1fbGVuIDwgbWluX2NvbnRlbnQpCi0rCQkJcmV0dXJuIC1FQkFETVNHOwotKwkJcmV0dXJu IDA7Ci0rCWNhc2UgS1JCNV9FTkNSWVBUX01PREU6Ci0rCQlpZiAobGVuIDwga3JiNS0+Y29uZl9s ZW4gKyBrcmI1LT5ja3N1bV9sZW4gfHwKLSsJCSAgICBsZW4gLSAoa3JiNS0+Y29uZl9sZW4gKyBr cmI1LT5ja3N1bV9sZW4pIDwgbWluX2NvbnRlbnQpCi0rCQkJcmV0dXJuIC1FQkFETVNHOwotKwkJ cmV0dXJuIDA7Ci0rCWRlZmF1bHQ6Ci0rCQlXQVJOX09OX09OQ0UoMSk7Ci0rCQlyZXR1cm4gLUVJ TlZBTDsKLSsJfQotK30KLStFWFBPUlRfU1lNQk9MKGNyeXB0b19rcmI1X2NoZWNrX2RhdGFfbGVu KTsKLSsKLSAvKgotICAqIFByZXBhcmUgdGhlIGVuY3J5cHRpb24gd2l0aCBkZXJpdmVkIGtleSBk YXRhLgotICAqLwogZGlmZiAtLWdpdCBhL2NyeXB0by9zaWcuYyBiL2NyeXB0by9zaWcuYwogaW5k ZXggYmViYTc0NWI2NDA1Li5mZDQxZjZkM2FiZjkgMTAwNjQ0CiAtLS0gYS9jcnlwdG8vc2lnLmMK QEAgLTEwOTUsMzI2ICs5NjEsNiBAQCBpbmRleCBjNzlhYmRmY2Q3YTkuLmUyM2JmYjdmOTRjNyAx MDA2NDQKICAJLyogd2FpdCBmb3IgZW5naW5lIHRvIHN0b3AuIFRoaXMgY291bGQgYmUgYXMgbG9u ZyBhcyA1MDAgbXNlYyAqLwogIAl0bXAgPSBhdGFfd2FpdF9yZWdpc3RlcihhcCwgcG9ydF9tbWlv ICsgUE9SVF9DTUQsCiAgCQkJCVBPUlRfQ01EX0xJU1RfT04sIFBPUlRfQ01EX0xJU1RfT04sIDEs IDUwMCk7Ci1kaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLWNvcmUuYyBiL2RyaXZlcnMv YXRhL2xpYmF0YS1jb3JlLmMKLWluZGV4IDM3NDk5MzAzMTg5NS4uZjhjMmUzMTkyYTcwIDEwMDY0 NAotLS0tIGEvZHJpdmVycy9hdGEvbGliYXRhLWNvcmUuYwotKysrIGIvZHJpdmVycy9hdGEvbGli YXRhLWNvcmUuYwotQEAgLTU1NzksNiArNTU3OSw3IEBAIHZvaWQgYXRhX2xpbmtfaW5pdChzdHJ1 Y3QgYXRhX3BvcnQgKmFwLCBzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIGludCBwbXApCi0gCWxpbmst PnBtcCA9IHBtcDsKLSAJbGluay0+YWN0aXZlX3RhZyA9IEFUQV9UQUdfUE9JU09OOwotIAlsaW5r LT5od19zYXRhX3NwZF9saW1pdCA9IFVJTlRfTUFYOwotKwlJTklUX1dPUksoJmxpbmstPmRlZmVy cmVkX3FjX3dvcmssIGF0YV9zY3NpX2RlZmVycmVkX3FjX3dvcmspOwotIAotIAkvKiBjYW4ndCB1 c2UgaXRlcmF0b3IsIGFwIGlzbid0IGluaXRpYWxpemVkIHlldCAqLwotIAlmb3IgKGkgPSAwOyBp IDwgQVRBX01BWF9ERVZJQ0VTOyBpKyspIHsKLUBAIC01NjYxLDcgKzU2NjIsNiBAQCBzdHJ1Y3Qg YXRhX3BvcnQgKmF0YV9wb3J0X2FsbG9jKHN0cnVjdCBhdGFfaG9zdCAqaG9zdCkKLSAJbXV0ZXhf aW5pdCgmYXAtPnNjc2lfc2Nhbl9tdXRleCk7Ci0gCUlOSVRfREVMQVlFRF9XT1JLKCZhcC0+aG90 cGx1Z190YXNrLCBhdGFfc2NzaV9ob3RwbHVnKTsKLSAJSU5JVF9ERUxBWUVEX1dPUksoJmFwLT5z Y3NpX3Jlc2Nhbl90YXNrLCBhdGFfc2NzaV9kZXZfcmVzY2FuKTsKLS0JSU5JVF9XT1JLKCZhcC0+ ZGVmZXJyZWRfcWNfd29yaywgYXRhX3Njc2lfZGVmZXJyZWRfcWNfd29yayk7Ci0gCUlOSVRfTElT VF9IRUFEKCZhcC0+ZWhfZG9uZV9xKTsKLSAJaW5pdF93YWl0cXVldWVfaGVhZCgmYXAtPmVoX3dh aXRfcSk7Ci0gCWluaXRfY29tcGxldGlvbigmYXAtPnBhcmtfcmVxX3BlbmRpbmcpOwotQEAgLTYy ODYsMTIgKzYyODYsMTUgQEAgc3RhdGljIHZvaWQgYXRhX3BvcnRfZGV0YWNoKHN0cnVjdCBhdGFf cG9ydCAqYXApCi0gCi0gCS8qIEl0IGJldHRlciBiZSBkZWFkIG5vdyBhbmQgbm90IGhhdmUgYW55 IHJlbWFpbmluZyBkZWZlcnJlZCBxYy4gKi8KLSAJV0FSTl9PTighKGFwLT5wZmxhZ3MgJiBBVEFf UEZMQUdfVU5MT0FERUQpKTsKLS0JV0FSTl9PTihhcC0+ZGVmZXJyZWRfcWMpOwotIAotLQljYW5j ZWxfd29ya19zeW5jKCZhcC0+ZGVmZXJyZWRfcWNfd29yayk7Ci0gCWNhbmNlbF9kZWxheWVkX3dv cmtfc3luYygmYXAtPmhvdHBsdWdfdGFzayk7Ci0gCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygm YXAtPnNjc2lfcmVzY2FuX3Rhc2spOwotIAotKwlhdGFfZm9yX2VhY2hfbGluayhsaW5rLCBhcCwg UE1QX0ZJUlNUKSB7Ci0rCQlXQVJOX09OKGxpbmstPmRlZmVycmVkX3FjKTsKLSsJCWNhbmNlbF93 b3JrX3N5bmMoJmxpbmstPmRlZmVycmVkX3FjX3dvcmspOwotKwl9Ci0rCi0gCS8qIERlbGV0ZSBw b3J0IG11bHRpcGxpZXIgbGluayB0cmFuc3BvcnQgZGV2aWNlcyAqLwotIAlpZiAoYXAtPnBtcF9s aW5rKSB7Ci0gCQlpbnQgaTsKLWRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9saWJhdGEtZWguYyBi L2RyaXZlcnMvYXRhL2xpYmF0YS1laC5jCi1pbmRleCAyM2JlODU0MThiM2IuLjVlOGE2MzIwNjEw OCAxMDA2NDQKLS0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1laC5jCi0rKysgYi9kcml2ZXJzL2F0 YS9saWJhdGEtZWguYwotQEAgLTY0MywxMSArNjQzLDExIEBAIHZvaWQgYXRhX3Njc2lfY21kX2Vy cm9yX2hhbmRsZXIoc3RydWN0IFNjc2lfSG9zdCAqaG9zdCwgc3RydWN0IGF0YV9wb3J0ICphcCwK LSAJCQlpZiAocWMtPnNjc2ljbWQgIT0gc2NtZCkKLSAJCQkJY29udGludWU7Ci0gCQkJaWYgKChx Yy0+ZmxhZ3MgJiBBVEFfUUNGTEFHX0FDVElWRSkgfHwKLS0JCQkgICAgcWMgPT0gYXAtPmRlZmVy cmVkX3FjKQotKwkJCSAgICBxYyA9PSBxYy0+ZGV2LT5saW5rLT5kZWZlcnJlZF9xYykKLSAJCQkJ YnJlYWs7Ci0gCQl9Ci0gCi0tCQlpZiAoaSA8IEFUQV9NQVhfUVVFVUUgJiYgcWMgPT0gYXAtPmRl ZmVycmVkX3FjKSB7Ci0rCQlpZiAoaSA8IEFUQV9NQVhfUVVFVUUgJiYgcWMgPT0gcWMtPmRldi0+ bGluay0+ZGVmZXJyZWRfcWMpIHsKLSAJCQkvKgotIAkJCSAqIFRoaXMgaXMgYSBkZWZlcnJlZCBj b21tYW5kIHRoYXQgdGltZWQgb3V0IHdoaWxlCi0gCQkJICogd2FpdGluZyBmb3IgdGhlIGNvbW1h bmQgcXVldWUgdG8gZHJhaW4uIFNpbmNlIHRoZSBxYwotQEAgLTY1OCw4ICs2NTgsOCBAQCB2b2lk IGF0YV9zY3NpX2NtZF9lcnJvcl9oYW5kbGVyKHN0cnVjdCBTY3NpX0hvc3QgKmhvc3QsIHN0cnVj dCBhdGFfcG9ydCAqYXAsCi0gCQkJICogZGVmZXJyZWQgcWMgd29yayBmcm9tIGlzc3VpbmcgdGhp cyBxYy4KLSAJCQkgKi8KLSAJCQlXQVJOX09OX09OQ0UocWMtPmZsYWdzICYgQVRBX1FDRkxBR19B Q1RJVkUpOwotLQkJCWFwLT5kZWZlcnJlZF9xYyA9IE5VTEw7Ci0tCQkJY2FuY2VsX3dvcmsoJmFw LT5kZWZlcnJlZF9xY193b3JrKTsKLSsJCQlxYy0+ZGV2LT5saW5rLT5kZWZlcnJlZF9xYyA9IE5V TEw7Ci0rCQkJY2FuY2VsX3dvcmsoJnFjLT5kZXYtPmxpbmstPmRlZmVycmVkX3FjX3dvcmspOwot IAkJCXNldF9ob3N0X2J5dGUoc2NtZCwgRElEX1RJTUVfT1VUKTsKLSAJCQlzY3NpX2VoX2Zpbmlz aF9jbWQoc2NtZCwgJmFwLT5laF9kb25lX3EpOwotIAkJfSBlbHNlIGlmIChpIDwgQVRBX01BWF9R VUVVRSkgewotZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1wbXAuYyBiL2RyaXZlcnMv YXRhL2xpYmF0YS1wbXAuYwotaW5kZXggZTNhZGMwMDhmZWQxLi5lODU0MDkzMWI0YTEgMTAwNjQ0 Ci0tLS0gYS9kcml2ZXJzL2F0YS9saWJhdGEtcG1wLmMKLSsrKyBiL2RyaXZlcnMvYXRhL2xpYmF0 YS1wbXAuYwotQEAgLTExMCwxMyArMTEwLDI0IEBAIGludCBzYXRhX3BtcF9xY19kZWZlcl9jbWRf c3dpdGNoKHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMpCi0gewotIAlzdHJ1Y3QgYXRhX2xpbmsg KmxpbmsgPSBxYy0+ZGV2LT5saW5rOwotIAlzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gbGluay0+YXA7 Ci0rCWludCByZXQ7Ci0gCi0gCWlmIChhcC0+ZXhjbF9saW5rID09IE5VTEwgfHwgYXAtPmV4Y2xf bGluayA9PSBsaW5rKSB7Ci0gCQlpZiAoYXAtPm5yX2FjdGl2ZV9saW5rcyA9PSAwIHx8IGF0YV9s aW5rX2FjdGl2ZShsaW5rKSkgewotIAkJCXFjLT5mbGFncyB8PSBBVEFfUUNGTEFHX0NMRUFSX0VY Q0w7Ci0tCQkJcmV0dXJuIGF0YV9zdGRfcWNfZGVmZXIocWMpOwotKwkJCXJldCA9IGF0YV9zdGRf cWNfZGVmZXIocWMpOwotKwkJCWlmIChyZXQgPT0gQVRBX0RFRkVSX0xJTkspCi0rCQkJCXJldHVy biBBVEFfREVGRVJfTElOS19FWENMOwotKwkJCXJldHVybiByZXQ7Ci0gCQl9Ci0gCi0rCQkvKgot KwkJICogTm90ZTogYXAtPmV4Y2xfbGluayBjb250YWlucyB0aGUgbGluayB0aGF0IGlzIG5leHQg aW4gbGluZSwKLSsJCSAqIGkuZS4gaW1wbGljaXQgcm91bmQgcm9iaW4uIElmIHRoZXJlIGlzIG9u bHkgb25lIGxpbmsKLSsJCSAqIGRpc3BhdGNoaW5nLCBhcC0+ZXhjbF9saW5rIHdpbGwgYmUgbGVm dCB1bmNsYWltZWQsIGFsbG93aW5nCi0rCQkgKiBvdGhlciBsaW5rcyB0byBzZXQgYXAtPmV4Y2xf bGluaywgZW5zdXJpbmcgdGhhdCB0aGUgY3VycmVudGx5Ci0rCQkgKiBhY3RpdmUgbGluayBjYW5u b3QgcXVldWUgYW55IG1vcmUuCi0rCQkgKi8KLSAJCWFwLT5leGNsX2xpbmsgPSBsaW5rOwotIAl9 Ci0gCi1AQCAtNTcxLDggKzU4MiwxMSBAQCBzdGF0aWMgdm9pZCBzYXRhX3BtcF9kZXRhY2goc3Ry dWN0IGF0YV9kZXZpY2UgKmRldikKLSAJaWYgKGFwLT5vcHMtPnBtcF9kZXRhY2gpCi0gCQlhcC0+ b3BzLT5wbXBfZGV0YWNoKGFwKTsKLSAKLS0JYXRhX2Zvcl9lYWNoX2xpbmsodGxpbmssIGFwLCBF REdFKQotKwlhdGFfZm9yX2VhY2hfbGluayh0bGluaywgYXAsIEVER0UpIHsKLSsJCVdBUk5fT04o dGxpbmstPmRlZmVycmVkX3FjKTsKLSsJCWNhbmNlbF93b3JrX3N5bmMoJnRsaW5rLT5kZWZlcnJl ZF9xY193b3JrKTsKLSAJCWF0YV9laF9kZXRhY2hfZGV2KHRsaW5rLT5kZXZpY2UpOwotKwl9Ci0g Ci0gCXNwaW5fbG9ja19pcnFzYXZlKGFwLT5sb2NrLCBmbGFncyk7Ci0gCWFwLT5ucl9wbXBfbGlu a3MgPSAwOwotZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1zY3NpLmMgYi9kcml2ZXJz L2F0YS9saWJhdGEtc2NzaS5jCi1pbmRleCBjZDYwNzkxMWQ3MjQuLjBiNGFkZmM4ZGM4NCAxMDA2 NDQKLS0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1zY3NpLmMKLSsrKyBiL2RyaXZlcnMvYXRhL2xp YmF0YS1zY3NpLmMKLUBAIC0xNjYwLDggKzE2NjAsOSBAQCBzdGF0aWMgdm9pZCBhdGFfcWNfZG9u ZShzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjKQotIAotIHZvaWQgYXRhX3Njc2lfZGVmZXJyZWRf cWNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCi0gewotLQlzdHJ1Y3QgYXRhX3BvcnQg KmFwID0KLS0JCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgYXRhX3BvcnQsIGRlZmVycmVkX3Fj X3dvcmspOwotKwlzdHJ1Y3QgYXRhX2xpbmsgKmxpbmsgPQotKwkJY29udGFpbmVyX29mKHdvcmss IHN0cnVjdCBhdGFfbGluaywgZGVmZXJyZWRfcWNfd29yayk7Ci0rCXN0cnVjdCBhdGFfcG9ydCAq YXAgPSBsaW5rLT5hcDsKLSAJc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYzsKLSAJdW5zaWduZWQg bG9uZyBmbGFnczsKLSAKLUBAIC0xNjcyLDEwICsxNjczLDEwIEBAIHZvaWQgYXRhX3Njc2lfZGVm ZXJyZWRfcWNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCi0gCSAqIHN1Y2ggY2FzZSwg d2Ugc2hvdWxkIG5vdCBuZWVkIGFueSBtb3JlIGRlZmVycmluZyB0aGUgcWMsIHNvIHdhcm4gaWYK LSAJICogcWNfZGVmZXIoKSBzYXlzIG90aGVyd2lzZS4KLSAJICovCi0tCXFjID0gYXAtPmRlZmVy cmVkX3FjOwotKwlxYyA9IGxpbmstPmRlZmVycmVkX3FjOwotIAlpZiAocWMgJiYgIWF0YV9wb3J0 X2VoX3NjaGVkdWxlZChhcCkpIHsKLSAJCVdBUk5fT05fT05DRShhcC0+b3BzLT5xY19kZWZlcihx YykpOwotLQkJYXAtPmRlZmVycmVkX3FjID0gTlVMTDsKLSsJCWxpbmstPmRlZmVycmVkX3FjID0g TlVMTDsKLSAJCWF0YV9xY19pc3N1ZShxYyk7Ci0gCX0KLSAKLUBAIC0xNjg0LDggKzE2ODUsNyBA QCB2b2lkIGF0YV9zY3NpX2RlZmVycmVkX3FjX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQotIAotIHZvaWQgYXRhX3Njc2lfcmVxdWV1ZV9kZWZlcnJlZF9xYyhzdHJ1Y3QgYXRhX3BvcnQg KmFwKQotIHsKLS0Jc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYyA9IGFwLT5kZWZlcnJlZF9xYzsK LS0Jc3RydWN0IHNjc2lfY21uZCAqc2NtZDsKLSsJc3RydWN0IGF0YV9saW5rICpsaW5rOwotIAot IAlsb2NrZGVwX2Fzc2VydF9oZWxkKGFwLT5sb2NrKTsKLSAKLUBAIC0xNjk0LDIwICsxNjk0LDI1 IEBAIHZvaWQgYXRhX3Njc2lfcmVxdWV1ZV9kZWZlcnJlZF9xYyhzdHJ1Y3QgYXRhX3BvcnQgKmFw KQotIAkgKiBkbyBub3QgdHJ5IHRvIGJlIHNtYXJ0IGFib3V0IHdoYXQgdG8gZG8gd2l0aCB0aGlz IGRlZmVycmVkIGNvbW1hbmQKLSAJICogYW5kIHNpbXBseSByZXF1ZXVlIGl0IGJ5IGNvbXBsZXRp bmcgaXQgd2l0aCBESURfUkVRVUVVRS4KLSAJICovCi0tCWlmICghcWMpCi0tCQlyZXR1cm47Ci0t Ci0tCXNjbWQgPSBxYy0+c2NzaWNtZDsKLS0JYXAtPmRlZmVycmVkX3FjID0gTlVMTDsKLS0JY2Fu Y2VsX3dvcmsoJmFwLT5kZWZlcnJlZF9xY193b3JrKTsKLS0JYXRhX3FjX2ZyZWUocWMpOwotLQlz Y21kLT5yZXN1bHQgPSAoRElEX1JFUVVFVUUgPDwgMTYpOwotLQlzY3NpX2RvbmUoc2NtZCk7Ci0r CWF0YV9mb3JfZWFjaF9saW5rKGxpbmssIGFwLCBQTVBfRklSU1QpIHsKLSsJCXN0cnVjdCBhdGFf cXVldWVkX2NtZCAqcWMgPSBsaW5rLT5kZWZlcnJlZF9xYzsKLSsJCXN0cnVjdCBzY3NpX2NtbmQg KnNjbWQ7Ci0rCi0rCQlpZiAocWMpIHsKLSsJCQlzY21kID0gcWMtPnNjc2ljbWQ7Ci0rCQkJbGlu ay0+ZGVmZXJyZWRfcWMgPSBOVUxMOwotKwkJCWNhbmNlbF93b3JrKCZsaW5rLT5kZWZlcnJlZF9x Y193b3JrKTsKLSsJCQlhdGFfcWNfZnJlZShxYyk7Ci0rCQkJc2NtZC0+cmVzdWx0ID0gKERJRF9S RVFVRVVFIDw8IDE2KTsKLSsJCQlzY3NpX2RvbmUoc2NtZCk7Ci0rCQl9Ci0rCX0KLSB9Ci0gCi0t c3RhdGljIHZvaWQgYXRhX3Njc2lfc2NoZWR1bGVfZGVmZXJyZWRfcWMoc3RydWN0IGF0YV9wb3J0 ICphcCkKLStzdGF0aWMgdm9pZCBhdGFfc2NzaV9zY2hlZHVsZV9kZWZlcnJlZF9xYyhzdHJ1Y3Qg YXRhX2xpbmsgKmxpbmspCi0gewotLQlzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjID0gYXAtPmRl ZmVycmVkX3FjOwotKwlzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjID0gbGluay0+ZGVmZXJyZWRf cWM7Ci0rCXN0cnVjdCBhdGFfcG9ydCAqYXAgPSBsaW5rLT5hcDsKLSAKLSAJbG9ja2RlcF9hc3Nl cnRfaGVsZChhcC0+bG9jayk7Ci0gCi1AQCAtMTcyNCwxMiArMTcyOSwxMiBAQCBzdGF0aWMgdm9p ZCBhdGFfc2NzaV9zY2hlZHVsZV9kZWZlcnJlZF9xYyhzdHJ1Y3QgYXRhX3BvcnQgKmFwKQotIAkJ cmV0dXJuOwotIAl9Ci0gCWlmICghYXAtPm9wcy0+cWNfZGVmZXIocWMpKQotLQkJcXVldWVfd29y ayhzeXN0ZW1faGlnaHByaV93cSwgJmFwLT5kZWZlcnJlZF9xY193b3JrKTsKLSsJCXF1ZXVlX3dv cmsoc3lzdGVtX2hpZ2hwcmlfd3EsICZsaW5rLT5kZWZlcnJlZF9xY193b3JrKTsKLSB9Ci0gCi0g c3RhdGljIHZvaWQgYXRhX3Njc2lfcWNfY29tcGxldGUoc3RydWN0IGF0YV9xdWV1ZWRfY21kICpx YykKLSB7Ci0tCXN0cnVjdCBhdGFfcG9ydCAqYXAgPSBxYy0+YXA7Ci0rCXN0cnVjdCBhdGFfbGlu ayAqbGluayA9IHFjLT5kZXYtPmxpbms7Ci0gCXN0cnVjdCBzY3NpX2NtbmQgKmNtZCA9IHFjLT5z Y3NpY21kOwotIAl1OCAqY2RiID0gY21kLT5jbW5kOwotIAlib29sIGhhdmVfc2Vuc2UgPSBxYy0+ ZmxhZ3MgJiBBVEFfUUNGTEFHX1NFTlNFX1ZBTElEOwotQEAgLTE3NjAsMjIgKzE3NjUsMjMgQEAg c3RhdGljIHZvaWQgYXRhX3Njc2lfcWNfY29tcGxldGUoc3RydWN0IGF0YV9xdWV1ZWRfY21kICpx YykKLSAKLSAJYXRhX3FjX2RvbmUocWMpOwotIAotLQlhdGFfc2NzaV9zY2hlZHVsZV9kZWZlcnJl ZF9xYyhhcCk7Ci0rCWF0YV9zY3NpX3NjaGVkdWxlX2RlZmVycmVkX3FjKGxpbmspOwotIH0KLSAK LSBzdGF0aWMgaW50IGF0YV9zY3NpX3FjX2lzc3VlKHN0cnVjdCBhdGFfcG9ydCAqYXAsIHN0cnVj dCBhdGFfcXVldWVkX2NtZCAqcWMpCi0gewotKwlzdHJ1Y3QgYXRhX2xpbmsgKmxpbmsgPSBxYy0+ ZGV2LT5saW5rOwotIAlpbnQgcmV0OwotIAotIAlpZiAoIWFwLT5vcHMtPnFjX2RlZmVyKQotLQkJ Z290byBpc3N1ZTsKLSsJCWdvdG8gaXNzdWVfcWM7Ci0gCi0gCS8qCi0gCSAqIElmIHdlIGFscmVh ZHkgaGF2ZSBhIGRlZmVycmVkIHFjLCB0aGVuIHJlbHkgb24gdGhlIFNDU0kgbGF5ZXIgdG8KLSAJ ICogcmVxdWV1ZSBhbmQgZGVmZXIgYWxsIGluY29taW5nIGNvbW1hbmRzIHVudGlsIHRoZSBkZWZl cnJlZCBxYyBpcwotIAkgKiBwcm9jZXNzZWQsIG9uY2UgYWxsIG9uLWdvaW5nIGNvbW1hbmRzIGNv bXBsZXRlLgotIAkgKi8KLS0JaWYgKGFwLT5kZWZlcnJlZF9xYykgewotKwlpZiAobGluay0+ZGVm ZXJyZWRfcWMpIHsKLSAJCWF0YV9xY19mcmVlKHFjKTsKLSAJCXJldHVybiBTQ1NJX01MUVVFVUVf REVWSUNFX0JVU1k7Ci0gCX0KLUBAIC0xNzg3LDM4ICsxNzkzLDQ2IEBAIHN0YXRpYyBpbnQgYXRh X3Njc2lfcWNfaXNzdWUoc3RydWN0IGF0YV9wb3J0ICphcCwgc3RydWN0IGF0YV9xdWV1ZWRfY21k ICpxYykKLSAJCWJyZWFrOwotIAljYXNlIEFUQV9ERUZFUl9MSU5LOgotIAkJcmV0ID0gU0NTSV9N TFFVRVVFX0RFVklDRV9CVVNZOwotLQkJYnJlYWs7Ci0rCQlnb3RvIGRlZmVyX3FjOwotKwljYXNl IEFUQV9ERUZFUl9MSU5LX0VYQ0w6Ci0rCQkvKgotKwkJICogRHJpdmVycyBtYWtpbmcgdXNlIG9m IGFwLT5leGNsX2xpbmsgY2Fubm90IHN0b3JlIHRoZSBRQyBpbgotKwkJICogbGluay0+ZGVmZXJy ZWRfcWMsIGJlY2F1c2UgdGhlIGFwLT5leGNsX2xpbmsgaGFuZGxpbmcgaXMKLSsJCSAqIGluY29t cGF0aWJsZSB3aXRoIHRoZSBsaW5rLT5kZWZlcnJlZF9xYyB3b3JrcXVldWUgaGFuZGxpbmcuCi0r CQkgKi8KLSsJCXJldCA9IFNDU0lfTUxRVUVVRV9ERVZJQ0VfQlVTWTsKLSsJCWdvdG8gZnJlZV9x YzsKLSAJY2FzZSBBVEFfREVGRVJfUE9SVDoKLSAJCXJldCA9IFNDU0lfTUxRVUVVRV9IT1NUX0JV U1k7Ci0tCQlicmVhazsKLSsJCWdvdG8gZnJlZV9xYzsKLSAJZGVmYXVsdDoKLSAJCVdBUk5fT05f T05DRSgxKTsKLSAJCXJldCA9IFNDU0lfTUxRVUVVRV9IT1NUX0JVU1k7Ci0tCQlicmVhazsKLSsJ CWdvdG8gZnJlZV9xYzsKLSAJfQotIAotLQlpZiAocmV0KSB7Ci0tCQkvKgotLQkJICogV2UgbXVz dCBkZWZlciB0aGlzIHFjOiBpZiB0aGlzIGlzIG5vdCBhbiBOQ1EgY29tbWFuZCwga2VlcAotLQkJ ICogdGhpcyBxYyBhcyBhIGRlZmVycmVkIG9uZSBhbmQgcmVwb3J0IHRvIHRoZSBTQ1NJIGxheWVy IHRoYXQKLS0JCSAqIHdlIGlzc3VlZCBpdCBzbyB0aGF0IGl0IGlzIG5vdCByZXF1ZXVlZC4gVGhl IGRlZmVycmVkIHFjIHdpbGwKLS0JCSAqIGJlIGlzc3VlZCB3aXRoIHRoZSBwb3J0IGRlZmVycmVk X3FjX3dvcmsgb25jZSBhbGwgb24tZ29pbmcKLS0JCSAqIGNvbW1hbmRzIGNvbXBsZXRlLgotLQkJ ICovCi0tCQlpZiAoIWF0YV9pc19uY3EocWMtPnRmLnByb3RvY29sKSkgewotLQkJCWFwLT5kZWZl cnJlZF9xYyA9IHFjOwotLQkJCXJldHVybiAwOwotLQkJfQotK2lzc3VlX3FjOgotKwlhdGFfcWNf aXNzdWUocWMpOwotKwlyZXR1cm4gMDsKLSAKLS0JCS8qIEZvcmNlIGEgcmVxdWV1ZSBvZiB0aGUg Y29tbWFuZCB0byBkZWZlciBpdHMgZXhlY3V0aW9uLiAqLwotLQkJYXRhX3FjX2ZyZWUocWMpOwot LQkJcmV0dXJuIHJldDsKLStkZWZlcl9xYzoKLSsJLyoKLSsJICogV2UgbXVzdCBkZWZlciB0aGlz IHFjOiBpZiB0aGlzIGlzIG5vdCBhbiBOQ1EgY29tbWFuZCwga2VlcAotKwkgKiB0aGlzIHFjIGFz IGEgZGVmZXJyZWQgb25lIGFuZCByZXBvcnQgdG8gdGhlIFNDU0kgbGF5ZXIgdGhhdAotKwkgKiB3 ZSBpc3N1ZWQgaXQgc28gdGhhdCBpdCBpcyBub3QgcmVxdWV1ZWQuIFRoZSBkZWZlcnJlZCBxYyB3 aWxsCi0rCSAqIGJlIGlzc3VlZCB3aXRoIHRoZSBwb3J0IGRlZmVycmVkX3FjX3dvcmsgb25jZSBh bGwgb24tZ29pbmcKLSsJICogY29tbWFuZHMgY29tcGxldGUuCi0rCSAqLwotKwlpZiAoIWF0YV9p c19uY3EocWMtPnRmLnByb3RvY29sKSkgewotKwkJbGluay0+ZGVmZXJyZWRfcWMgPSBxYzsKLSsJ CXJldHVybiAwOwotIAl9Ci0gCi0taXNzdWU6Ci0tCWF0YV9xY19pc3N1ZShxYyk7Ci0rZnJlZV9x YzoKLSsJLyogRm9yY2UgYSByZXF1ZXVlIG9mIHRoZSBjb21tYW5kIHRvIGRlZmVyIGl0cyBleGVj dXRpb24uICovCi0rCWF0YV9xY19mcmVlKHFjKTsKLSAKLS0JcmV0dXJuIDA7Ci0rCXJldHVybiBy ZXQ7Ci0gfQotIAotIC8qKgotZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3NhdGFfc2lsMjQuYyBi L2RyaXZlcnMvYXRhL3NhdGFfc2lsMjQuYwotaW5kZXggZDY0MmVjZTlmMDdhLi41N2YxMDgxYjg2 ZGIgMTAwNjQ0Ci0tLS0gYS9kcml2ZXJzL2F0YS9zYXRhX3NpbDI0LmMKLSsrKyBiL2RyaXZlcnMv YXRhL3NhdGFfc2lsMjQuYwotQEAgLTc4OSw2ICs3ODksNyBAQCBzdGF0aWMgaW50IHNpbDI0X3Fj X2RlZmVyKHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMpCi0gCXN0cnVjdCBhdGFfbGluayAqbGlu ayA9IHFjLT5kZXYtPmxpbms7Ci0gCXN0cnVjdCBhdGFfcG9ydCAqYXAgPSBsaW5rLT5hcDsKLSAJ dTggcHJvdCA9IHFjLT50Zi5wcm90b2NvbDsKLSsJaW50IHJldDsKLSAKLSAJLyoKLSAJICogVGhl cmUgaXMgYSBidWcgaW4gdGhlIGNoaXA6Ci1AQCAtODI2LDcgKzgyNywxMCBAQCBzdGF0aWMgaW50 IHNpbDI0X3FjX2RlZmVyKHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMpCi0gCQlxYy0+ZmxhZ3Mg fD0gQVRBX1FDRkxBR19DTEVBUl9FWENMOwotIAl9Ci0gCi0tCXJldHVybiBhdGFfc3RkX3FjX2Rl ZmVyKHFjKTsKLSsJcmV0ID0gYXRhX3N0ZF9xY19kZWZlcihxYyk7Ci0rCWlmIChyZXQgPT0gQVRB X0RFRkVSX0xJTkspCi0rCQlyZXR1cm4gQVRBX0RFRkVSX0xJTktfRVhDTDsKLSsJcmV0dXJuIHJl dDsKLSB9Ci0gCi0gc3RhdGljIGVudW0gYXRhX2NvbXBsZXRpb25fZXJyb3JzIHNpbDI0X3FjX3By ZXAoc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYykKIGRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIv aXBtaS9pcG1pX2RtaS5jIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9kbWkuYwogaW5kZXggNTA1 ZTMyOTExYzM0Li4yNmY3ZWUwY2NmNDAgMTAwNjQ0CiAtLS0gYS9kcml2ZXJzL2NoYXIvaXBtaS9p cG1pX2RtaS5jCkBAIC0xNDg5LDcgKzEwMzUsNyBAQCBpbmRleCA4ZWZiY2Y2OTllNGYuLjk2ZDVh MWNhOTgxZCAxMDA2NDQKICBvYmotJChDT05GSUdfRUZJX1JDSTJfVEFCTEUpCQkrPSByY2kyLXRh YmxlLm8KICBvYmotJChDT05GSUdfRUZJX0VNQkVEREVEX0ZJUk1XQVJFKQkrPSBlbWJlZGRlZC1m aXJtd2FyZS5vCiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9lZmkvZWZpLmMgYi9kcml2 ZXJzL2Zpcm13YXJlL2VmaS9lZmkuYwotaW5kZXggYjJmYjkyYTRiYmQxLi41MzNlMTMyZTFiZDgg MTAwNjQ0CitpbmRleCA2Yjk2MWM5YjA4YjcuLjIxODdmMTM0NmY5NyAxMDA2NDQKIC0tLSBhL2Ry aXZlcnMvZmlybXdhcmUvZWZpL2VmaS5jCiArKysgYi9kcml2ZXJzL2Zpcm13YXJlL2VmaS9lZmku YwogQEAgLTMzLDYgKzMzLDcgQEAKQEAgLTE1MDAsNyArMTA0Niw3IEBAIGluZGV4IGIyZmI5MmE0 YmJkMS4uNTMzZTEzMmUxYmQ4IDEwMDY0NAogIAogICNpbmNsdWRlIDxhc20vZWFybHlfaW9yZW1h cC5oPgogIAotQEAgLTEwMjEsNDAgKzEwMjIsMTAxIEBAIGludCBlZmlfbWVtX3R5cGUodW5zaWdu ZWQgbG9uZyBwaHlzX2FkZHIpCitAQCAtMTAyNSw0MCArMTAyNiwxMDEgQEAgaW50IGVmaV9tZW1f dHlwZSh1bnNpZ25lZCBsb25nIHBoeXNfYWRkcikKICAJcmV0dXJuIC1FSU5WQUw7CiAgfQogIApA QCAtMjIzNSwxMTYgKzE3ODEsOCBAQCBpbmRleCBjY2Q5MzM4YTQ0ZGIuLjVjNTRlNTIyZThhNCAx MDA2NDQKICAKICAJaWYgKGRhdGEtPmYwMV9jb250YWluZXItPmRldi5kcml2ZXIpIHsKICAJCS8q IERyaXZlciBhbHJlYWR5IGJvdW5kLCBzbyBlbmFibGUgQVRUTiBub3cuICovCi1kaWZmIC0tZ2l0 IGEvZHJpdmVycy9pb21tdS9hbWQvZGVidWdmcy5jIGIvZHJpdmVycy9pb21tdS9hbWQvZGVidWdm cy5jCi1pbmRleCAyMGIwNDk5NjQ0MWQuLjM5MDlhMWZiMjE4ZSAxMDA2NDQKLS0tLSBhL2RyaXZl cnMvaW9tbXUvYW1kL2RlYnVnZnMuYwotKysrIGIvZHJpdmVycy9pb21tdS9hbWQvZGVidWdmcy5j Ci1AQCAtMjYsMjIgKzI2LDIwIEBAIHN0YXRpYyBzc2l6ZV90IGlvbW11X21taW9fd3JpdGUoc3Ry dWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAotIHsKLSAJc3RydWN0IHNl cV9maWxlICptID0gZmlscC0+cHJpdmF0ZV9kYXRhOwotIAlzdHJ1Y3QgYW1kX2lvbW11ICppb21t dSA9IG0tPnByaXZhdGU7Ci0tCWludCByZXQ7Ci0tCi0tCWlvbW11LT5kYmdfbW1pb19vZmZzZXQg PSAtMTsKLSsJaW50IHJldCwgZGJnX21taW9fb2Zmc2V0ID0gaW9tbXUtPmRiZ19tbWlvX29mZnNl dCA9IC0xOwotIAotIAlpZiAoY250ID4gT0ZTX0lOX1NaKQotIAkJcmV0dXJuIC1FSU5WQUw7Ci0g Ci0tCXJldCA9IGtzdHJ0b3UzMl9mcm9tX3VzZXIodWJ1ZiwgY250LCAwLCAmaW9tbXUtPmRiZ19t bWlvX29mZnNldCk7Ci0rCXJldCA9IGtzdHJ0b3MzMl9mcm9tX3VzZXIodWJ1ZiwgY250LCAwLCAm ZGJnX21taW9fb2Zmc2V0KTsKLSAJaWYgKHJldCkKLSAJCXJldHVybiByZXQ7Ci0gCi0tCWlmIChp b21tdS0+ZGJnX21taW9fb2Zmc2V0ID4gaW9tbXUtPm1taW9fcGh5c19lbmQgLSBzaXplb2YodTY0 KSkgewotLQkJaW9tbXUtPmRiZ19tbWlvX29mZnNldCA9IC0xOwotLQkJcmV0dXJuICAtRUlOVkFM OwotLQl9Ci0rCWlmIChkYmdfbW1pb19vZmZzZXQgPCAwIHx8IGRiZ19tbWlvX29mZnNldCA+Ci0r CQkJaW9tbXUtPm1taW9fcGh5c19lbmQgLSBzaXplb2YodTY0KSkKLSsJCXJldHVybiAtRUlOVkFM OwotIAotKwlpb21tdS0+ZGJnX21taW9fb2Zmc2V0ID0gZGJnX21taW9fb2Zmc2V0OwotIAlyZXR1 cm4gY250OwotIH0KLSAKLUBAIC00OSwxNCArNDcsMTYgQEAgc3RhdGljIGludCBpb21tdV9tbWlv X3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCi0gewotIAlzdHJ1Y3QgYW1k X2lvbW11ICppb21tdSA9IG0tPnByaXZhdGU7Ci0gCXU2NCB2YWx1ZTsKLSsJaW50IGRiZ19tbWlv X29mZnNldCA9IGlvbW11LT5kYmdfbW1pb19vZmZzZXQ7Ci0gCi0tCWlmIChpb21tdS0+ZGJnX21t aW9fb2Zmc2V0IDwgMCkgewotKwlpZiAoZGJnX21taW9fb2Zmc2V0IDwgMCB8fCBkYmdfbW1pb19v ZmZzZXQgPgotKwkJCWlvbW11LT5tbWlvX3BoeXNfZW5kIC0gc2l6ZW9mKHU2NCkpIHsKLSAJCXNl cV9wdXRzKG0sICJQbGVhc2UgcHJvdmlkZSBtbWlvIHJlZ2lzdGVyJ3Mgb2Zmc2V0XG4iKTsKLSAJ CXJldHVybiAwOwotIAl9Ci0gCi0tCXZhbHVlID0gcmVhZHEoaW9tbXUtPm1taW9fYmFzZSArIGlv bW11LT5kYmdfbW1pb19vZmZzZXQpOwotLQlzZXFfcHJpbnRmKG0sICJPZmZzZXQ6MHgleCBWYWx1 ZToweCUwMTZsbHhcbiIsIGlvbW11LT5kYmdfbW1pb19vZmZzZXQsIHZhbHVlKTsKLSsJdmFsdWUg PSByZWFkcShpb21tdS0+bW1pb19iYXNlICsgZGJnX21taW9fb2Zmc2V0KTsKLSsJc2VxX3ByaW50 ZihtLCAiT2Zmc2V0OjB4JXggVmFsdWU6MHglMDE2bGx4XG4iLCBkYmdfbW1pb19vZmZzZXQsIHZh bHVlKTsKLSAKLSAJcmV0dXJuIDA7Ci0gfQotQEAgLTY3LDIzICs2NywyMCBAQCBzdGF0aWMgc3Np emVfdCBpb21tdV9jYXBhYmlsaXR5X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFy IF9fdXNlciAqdWJ1ZgotIHsKLSAJc3RydWN0IHNlcV9maWxlICptID0gZmlscC0+cHJpdmF0ZV9k YXRhOwotIAlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSA9IG0tPnByaXZhdGU7Ci0tCWludCByZXQ7 Ci0tCi0tCWlvbW11LT5kYmdfY2FwX29mZnNldCA9IC0xOwotKwlpbnQgcmV0LCBkYmdfY2FwX29m ZnNldCA9IGlvbW11LT5kYmdfY2FwX29mZnNldCA9IC0xOwotIAotIAlpZiAoY250ID4gT0ZTX0lO X1NaKQotIAkJcmV0dXJuIC1FSU5WQUw7Ci0gCi0tCXJldCA9IGtzdHJ0b3UzMl9mcm9tX3VzZXIo dWJ1ZiwgY250LCAwLCAmaW9tbXUtPmRiZ19jYXBfb2Zmc2V0KTsKLSsJcmV0ID0ga3N0cnRvczMy X2Zyb21fdXNlcih1YnVmLCBjbnQsIDAsICZkYmdfY2FwX29mZnNldCk7Ci0gCWlmIChyZXQpCi0g CQlyZXR1cm4gcmV0OwotIAotIAkvKiBDYXBhYmlsaXR5IHJlZ2lzdGVyIGF0IG9mZnNldCAweDE0 IGlzIHRoZSBsYXN0IElPTU1VIGNhcGFiaWxpdHkgcmVnaXN0ZXIuICovCi0tCWlmIChpb21tdS0+ ZGJnX2NhcF9vZmZzZXQgPiAweDE0KSB7Ci0tCQlpb21tdS0+ZGJnX2NhcF9vZmZzZXQgPSAtMTsK LSsJaWYgKGRiZ19jYXBfb2Zmc2V0IDwgMCB8fCBkYmdfY2FwX29mZnNldCA+IDB4MTQpCi0gCQly ZXR1cm4gLUVJTlZBTDsKLS0JfQotIAotKwlpb21tdS0+ZGJnX2NhcF9vZmZzZXQgPSBkYmdfY2Fw X29mZnNldDsKLSAJcmV0dXJuIGNudDsKLSB9Ci0gCi1AQCAtOTEsMjEgKzg4LDIxIEBAIHN0YXRp YyBpbnQgaW9tbXVfY2FwYWJpbGl0eV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51 c2VkKQotIHsKLSAJc3RydWN0IGFtZF9pb21tdSAqaW9tbXUgPSBtLT5wcml2YXRlOwotIAl1MzIg dmFsdWU7Ci0tCWludCBlcnI7Ci0rCWludCBlcnIsIGRiZ19jYXBfb2Zmc2V0ID0gaW9tbXUtPmRi Z19jYXBfb2Zmc2V0OwotIAotLQlpZiAoaW9tbXUtPmRiZ19jYXBfb2Zmc2V0IDwgMCkgewotKwlp ZiAoZGJnX2NhcF9vZmZzZXQgPCAwIHx8IGRiZ19jYXBfb2Zmc2V0ID4gMHgxNCkgewotIAkJc2Vx X3B1dHMobSwgIlBsZWFzZSBwcm92aWRlIGNhcGFiaWxpdHkgcmVnaXN0ZXIncyBvZmZzZXQgaW4g dGhlIHJhbmdlIFsweDAwIC0gMHgxNF1cbiIpOwotIAkJcmV0dXJuIDA7Ci0gCX0KLSAKLS0JZXJy ID0gcGNpX3JlYWRfY29uZmlnX2R3b3JkKGlvbW11LT5kZXYsIGlvbW11LT5jYXBfcHRyICsgaW9t bXUtPmRiZ19jYXBfb2Zmc2V0LCAmdmFsdWUpOwotKwllcnIgPSBwY2lfcmVhZF9jb25maWdfZHdv cmQoaW9tbXUtPmRldiwgaW9tbXUtPmNhcF9wdHIgKyBkYmdfY2FwX29mZnNldCwgJnZhbHVlKTsK LSAJaWYgKGVycikgewotIAkJc2VxX3ByaW50ZihtLCAiTm90IGFibGUgdG8gcmVhZCBjYXBhYmls aXR5IHJlZ2lzdGVyIGF0IDB4JXhcbiIsCi0tCQkJICAgaW9tbXUtPmRiZ19jYXBfb2Zmc2V0KTsK LSsJCQkgICBkYmdfY2FwX29mZnNldCk7Ci0gCQlyZXR1cm4gMDsKLSAJfQotIAotLQlzZXFfcHJp bnRmKG0sICJPZmZzZXQ6MHgleCBWYWx1ZToweCUwOHhcbiIsIGlvbW11LT5kYmdfY2FwX29mZnNl dCwgdmFsdWUpOwotKwlzZXFfcHJpbnRmKG0sICJPZmZzZXQ6MHgleCBWYWx1ZToweCUwOHhcbiIs IGRiZ19jYXBfb2Zmc2V0LCB2YWx1ZSk7Ci0gCi0gCXJldHVybiAwOwotIH0KIGRpZmYgLS1naXQg YS9kcml2ZXJzL2lvbW11L2lvbW11LmMgYi9kcml2ZXJzL2lvbW11L2lvbW11LmMKLWluZGV4IGVm MDhjMmM0ZWM5NS4uYzIyZDAyNjU4ZWE0IDEwMDY0NAoraW5kZXggOTNjOTA4MTcwNzQwLi40Mjhi MGMzYjI1MTkgMTAwNjQ0CiAtLS0gYS9kcml2ZXJzL2lvbW11L2lvbW11LmMKICsrKyBiL2RyaXZl cnMvaW9tbXUvaW9tbXUuYwogQEAgLTgsNiArOCw3IEBACkBAIC0yMzU1LDcgKzE3OTMsNyBAQCBp bmRleCBlZjA4YzJjNGVjOTUuLmMyMmQwMjY1OGVhNCAxMDA2NDQKICAjaW5jbHVkZSA8bGludXgv a2VybmVsLmg+CiAgI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4KICAjaW5jbHVkZSA8bGludXgvYnVn Lmg+Ci1AQCAtMzEwOCw2ICszMTA5LDI3IEBAIGludCBpb21tdV9md3NwZWNfYWRkX2lkcyhzdHJ1 Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHUzMiAqaWRzLCBpbnQgbnVtX2lkcykKK0BAIC0zMTM2LDYg KzMxMzcsMjcgQEAgaW50IGlvbW11X2Z3c3BlY19hZGRfaWRzKHN0cnVjdCBkZXZpY2UgKmRldiwg Y29uc3QgdTMyICppZHMsIGludCBudW1faWRzKQogIH0KICBFWFBPUlRfU1lNQk9MX0dQTChpb21t dV9md3NwZWNfYWRkX2lkcyk7CiAgCkBAIC04MDYwLDIyOSArNzQ5OCw2IEBAIGluZGV4IDI0OTYw YmE5Y2FhOS4uMzI1OTdjZGI3MmVmIDEwMDY0NAogIAkvKiBMb2NrIHRoZSBkZXZpY2UsIHRoZW4g Y2hlY2sgdG8gc2VlIGlmIHdlIHdlcmUKICAJICogZGlzY29ubmVjdGVkIHdoaWxlIHdhaXRpbmcg Zm9yIHRoZSBsb2NrIHRvIHN1Y2NlZWQuICovCiAgCXVzYl9sb2NrX2RldmljZShoZGV2KTsKLWRp ZmYgLS1naXQgYS9mcy9zbWIvY2xpZW50L2NpZnNfc3BuZWdvLmMgYi9mcy9zbWIvY2xpZW50L2Np ZnNfc3BuZWdvLmMKLWluZGV4IDNhNDFiYmFkYTA0Yy4uNDRjNDA3Mjc1NjgwIDEwMDY0NAotLS0t IGEvZnMvc21iL2NsaWVudC9jaWZzX3NwbmVnby5jCi0rKysgYi9mcy9zbWIvY2xpZW50L2NpZnNf c3BuZWdvLmMKLUBAIC04LDYgKzgsNyBAQAotICAqLwotIAotICNpbmNsdWRlIDxsaW51eC9saXN0 Lmg+Ci0rI2luY2x1ZGUgPGxpbnV4L2NyZWQuaD4KLSAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgot ICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSAjaW5jbHVkZSA8a2V5cy91c2VyLXR5cGUuaD4K LUBAIC00MCwxMiArNDEsMjcgQEAgY2lmc19zcG5lZ29fa2V5X2Rlc3Ryb3koc3RydWN0IGtleSAq a2V5KQotIAlrZnJlZShrZXktPnBheWxvYWQuZGF0YVswXSk7Ci0gfQotIAotK3N0YXRpYyBpbnQK LStjaWZzX3NwbmVnb19rZXlfdmV0X2Rlc2NyaXB0aW9uKGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9u KQotK3sKLSsJLyoKLSsJICogY2lmcy5zcG5lZ28gZGVzY3JpcHRpb25zIGFyZSBhdXRob3JpdHkt YmVhcmluZyBpbnB1dHMgdG8gY2lmcy51cGNhbGwuCi0rCSAqIFRoZXkgYXJlIG9ubHkgdmFsaWQg d2hlbiBwcm9kdWNlZCBieSBDSUZTIHdoaWxlIHVzaW5nIHRoZSBwcml2YXRlCi0rCSAqIHNwbmVn b19jcmVkIGluc3RhbGxlZCBiZWxvdy4gIERvIG5vdCBsZXQgdXNlcnNwYWNlIGNyZWF0ZSB0aGlz IHR5cGUKLSsJICogb2Yga2V5IHRocm91Z2ggcmVxdWVzdF9rZXkoMikvYWRkX2tleSgyKSwgc2lu Y2UgdGhlIGhlbHBlciB0cmVhdHMKLSsJICogcGlkL3VpZC9jcmVkdWlkL3VwY2FsbF90YXJnZXQg YXMga2VybmVsLW9yaWdpbmF0aW5nIGZpZWxkcy4KLSsJICovCi0rCWlmIChjdXJyZW50X2NyZWQo KSAhPSBzcG5lZ29fY3JlZCkKLSsJCXJldHVybiAtRVBFUk07Ci0rCXJldHVybiAwOwotK30KLSAK LSAvKgotICAqIGtleXR5cGUgZm9yIENJRlMgc3BuZWdvIGtleXMKLSAgKi8KLSBzdHJ1Y3Qga2V5 X3R5cGUgY2lmc19zcG5lZ29fa2V5X3R5cGUgPSB7Ci0gCS5uYW1lCQk9ICJjaWZzLnNwbmVnbyIs Ci0rCS52ZXRfZGVzY3JpcHRpb24gPSBjaWZzX3NwbmVnb19rZXlfdmV0X2Rlc2NyaXB0aW9uLAot IAkuaW5zdGFudGlhdGUJPSBjaWZzX3NwbmVnb19rZXlfaW5zdGFudGlhdGUsCi0gCS5kZXN0cm95 CT0gY2lmc19zcG5lZ29fa2V5X2Rlc3Ryb3ksCi0gCS5kZXNjcmliZQk9IHVzZXJfZGVzY3JpYmUs Ci1kaWZmIC0tZ2l0IGEvZnMvc21iL3NlcnZlci92ZnNfY2FjaGUuYyBiL2ZzL3NtYi9zZXJ2ZXIv dmZzX2NhY2hlLmMKLWluZGV4IDM1NTFmMDFhM2ZhMC4uNjBiN2EyZDYwMjM4IDEwMDY0NAotLS0t IGEvZnMvc21iL3NlcnZlci92ZnNfY2FjaGUuYwotKysrIGIvZnMvc21iL3NlcnZlci92ZnNfY2Fj aGUuYwotQEAgLTQxOCw2ICs0MTgsMTQgQEAgc3RhdGljIHZvaWQgX19rc21iZF9yZW1vdmVfZHVy YWJsZV9mZChzdHJ1Y3Qga3NtYmRfZmlsZSAqZnApCi0gCQlyZXR1cm47Ci0gCi0gCWlkcl9yZW1v dmUoZ2xvYmFsX2Z0LmlkciwgZnAtPnBlcnNpc3RlbnRfaWQpOwotKwkvKgotKwkgKiBDbGVhciBw ZXJzaXN0ZW50X2lkIHNvIGEgbGF0ZXIgX19rc21iZF9jbG9zZV9mZCgpIHRoYXQgcnVucyBmcm9t IGEKLSsJICogZGVsYXllZCBwdXR0ZXIgKGUuZy4gd2hlbiBhIGNvbmN1cnJlbnQga3NtYmRfbG9v a3VwX2ZkX2lub2RlKCkKLSsJICogd2Fsa2VyIGhlbGQgdGhlIGZpbmFsIHJlZmVyZW5jZSkgZG9l cyBub3QgcmUtaXNzdWUgaWRyX3JlbW92ZSgpIG9uCi0rCSAqIGFuIGlkIHRoYXQgaWRyX2FsbG9j X2N5Y2xpYygpIG1heSBoYXZlIGFscmVhZHkgaGFuZGVkIG91dCB0byBhIG5ldwotKwkgKiBkdXJh YmxlIGhhbmRsZS4KLSsJICovCi0rCWZwLT5wZXJzaXN0ZW50X2lkID0gS1NNQkRfTk9fRklEOwot IH0KLSAKLSBzdGF0aWMgdm9pZCBrc21iZF9yZW1vdmVfZHVyYWJsZV9mZChzdHJ1Y3Qga3NtYmRf ZmlsZSAqZnApCi1AQCAtNTEwLDYgKzUxOCwyMCBAQCBzdGF0aWMgc3RydWN0IGtzbWJkX2ZpbGUg Kl9fa3NtYmRfbG9va3VwX2ZkKHN0cnVjdCBrc21iZF9maWxlX3RhYmxlICpmdCwKLSAKLSBzdGF0 aWMgdm9pZCBfX3B1dF9mZF9maW5hbChzdHJ1Y3Qga3NtYmRfd29yayAqd29yaywgc3RydWN0IGtz bWJkX2ZpbGUgKmZwKQotIHsKLSsJLyoKLSsJICogRGV0YWNoZWQgZHVyYWJsZSBmcCAtLSBzZXNz aW9uX2ZkX2NoZWNrKCkgY2xlYXJlZCBmcC0+Y29ubiBhdAotKwkgKiBwcmVzZXJ2ZSwgc28gdGhp cyBmcCBpcyBubyBsb25nZXIgdHJhY2tlZCBieSBhbnkgY29ubidzCi0rCSAqIHN0YXRzLm9wZW5f ZmlsZXNfY291bnQuICBUaGlzIGhhcHBlbnMgd2hlbgotKwkgKiBrc21iZF9zY2F2ZW5nZXJfZGlz cG9zZV9kaCgpIGhhbmRzIHRoZSBmaW5hbCBjbG9zZSBvZmYgdG8gYW4KLSsJICogbV9mcF9saXN0 IHdhbGtlciAoZS5nLiBrc21iZF9sb29rdXBfZmRfaW5vZGUoKSkgd2hvc2Ugd29yay0+Y29ubgot KwkgKiBpcyB1bnJlbGF0ZWQgdG8gdGhlIGNvbm4gdGhhdCBvcmlnaW5hbGx5IG9wZW5lZCB0aGUg aGFuZGxlOyBjbG9zZQotKwkgKiB2aWEgdGhlIE5VTEwtZnQgcGF0aCBzbyB3ZSBkbyBub3QgdW5k ZXJmbG93IHRoYXQgdW5yZWxhdGVkCi0rCSAqIGNvdW50ZXIuCi0rCSAqLwotKwlpZiAoIWZwLT5j b25uKSB7Ci0rCQlfX2tzbWJkX2Nsb3NlX2ZkKE5VTEwsIGZwKTsKLSsJCXJldHVybjsKLSsJfQot IAlfX2tzbWJkX2Nsb3NlX2ZkKCZ3b3JrLT5zZXNzLT5maWxlX3RhYmxlLCBmcCk7Ci0gCWF0b21p Y19kZWMoJndvcmstPmNvbm4tPnN0YXRzLm9wZW5fZmlsZXNfY291bnQpOwotIH0KLUBAIC04ODEs MjQgKzkwMywzNyBAQCBzdGF0aWMgYm9vbCBrc21iZF9kdXJhYmxlX3NjYXZlbmdlcl9hbGl2ZSh2 b2lkKQotIAlyZXR1cm4gdHJ1ZTsKLSB9Ci0gCi0tc3RhdGljIHZvaWQga3NtYmRfc2NhdmVuZ2Vy X2Rpc3Bvc2VfZGgoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKLStzdGF0aWMgdm9pZCBrc21iZF9z Y2F2ZW5nZXJfZGlzcG9zZV9kaChzdHJ1Y3Qga3NtYmRfZmlsZSAqZnApCi0gewotLQl3aGlsZSAo IWxpc3RfZW1wdHkoaGVhZCkpIHsKLS0JCXN0cnVjdCBrc21iZF9maWxlICpmcDsKLSsJLyoKLSsJ ICogRHVyYWJsZS1wcmVzZXJ2ZWQgZnAgY2FuIHJlbWFpbiBsaW5rZWQgb24gZl9jaS0+bV9mcF9s aXN0IGZvcgotKwkgKiBzaGFyZS1tb2RlIGNoZWNrcy4gIFVubGluayBpdCBiZWZvcmUgZmluYWwg Y2xvc2U7IGZwLT5ub2RlIGlzIG5vdAotKwkgKiBhdmFpbGFibGUgYXMgYSBzY2F2ZW5nZXItcHJp dmF0ZSBsaXN0IG5vZGUgYmVjYXVzZSByZS1hZGRpbmcgaXQgdG8KLSsJICogYW5vdGhlciBsaXN0 IGNvcnJ1cHRzIG1fZnBfbGlzdC4KLSsJICovCi0rCWRvd25fd3JpdGUoJmZwLT5mX2NpLT5tX2xv Y2spOwotKwlsaXN0X2RlbF9pbml0KCZmcC0+bm9kZSk7Ci0rCXVwX3dyaXRlKCZmcC0+Zl9jaS0+ bV9sb2NrKTsKLSAKLS0JCWZwID0gbGlzdF9maXJzdF9lbnRyeShoZWFkLCBzdHJ1Y3Qga3NtYmRf ZmlsZSwgbm9kZSk7Ci0tCQlsaXN0X2RlbF9pbml0KCZmcC0+bm9kZSk7Ci0rCS8qCi0rCSAqIERy b3AgYm90aCB0aGUgZHVyYWJsZSBsaWZldGltZSByZWZlcmVuY2UgYW5kIHRoZSB0cmFuc2llbnQg cmVmZXJlbmNlCi0rCSAqIHRha2VuIGJ5IHRoZSBzY2F2ZW5nZXIgdW5kZXIgZ2xvYmFsX2Z0Lmxv Y2suICBJZiBhIGNvbmN1cnJlbnQKLSsJICoga3NtYmRfbG9va3VwX2ZkX2lub2RlKCkgKG9yIGFu eSBvdGhlciBtX2ZwX2xpc3Qgd2Fsa2VyKSBzbmF0Y2hlZCBmcAotKwkgKiBiZWZvcmUgdGhlIHVu bGluayBhYm92ZSwgdGhhdCBob2xkZXIgb3ducyB0aGUgZmluYWwgY2xvc2UgdmlhCi0rCSAqIGtz bWJkX2ZkX3B1dCgpIC0+IF9fa3NtYmRfY2xvc2VfZmQoKS4gIE90aGVyd2lzZSB0aGUgc2NhdmVu Z2VyIGlzCi0rCSAqIHRoZSBsYXN0IHB1dHRlciBhbmQgZmluYWxpc2VzIGZwIGhlcmUuCi0rCSAq LwotKwlpZiAoYXRvbWljX3N1Yl9hbmRfdGVzdCgyLCAmZnAtPnJlZmNvdW50KSkKLSAJCV9fa3Nt YmRfY2xvc2VfZmQoTlVMTCwgZnApOwotLQl9Ci0gfQotIAotIHN0YXRpYyBpbnQga3NtYmRfZHVy YWJsZV9zY2F2ZW5nZXIodm9pZCAqZHVtbXkpCi0gewotIAlzdHJ1Y3Qga3NtYmRfZmlsZSAqZnAg PSBOVUxMOwotKwlzdHJ1Y3Qga3NtYmRfZmlsZSAqZXhwaXJlZF9mcDsKLSAJdW5zaWduZWQgaW50 IGlkOwotIAl1bnNpZ25lZCBpbnQgbWluX3RpbWVvdXQgPSAxOwotIAlib29sIGZvdW5kX2ZwX3Rp bWVvdXQ7Ci0tCUxJU1RfSEVBRChzY2F2ZW5nZXJfbGlzdCk7Ci0gCXVuc2lnbmVkIGxvbmcgcmVt YWluaW5nX2ppZmZpZXM7Ci0gCi0gCV9fbW9kdWxlX2dldChUSElTX01PRFVMRSk7Ci1AQCAtOTA4 LDggKzk0Myw2IEBAIHN0YXRpYyBpbnQga3NtYmRfZHVyYWJsZV9zY2F2ZW5nZXIodm9pZCAqZHVt bXkpCi0gCQlpZiAodHJ5X3RvX2ZyZWV6ZSgpKQotIAkJCWNvbnRpbnVlOwotIAotLQkJZm91bmRf ZnBfdGltZW91dCA9IGZhbHNlOwotLQotIAkJcmVtYWluaW5nX2ppZmZpZXMgPSB3YWl0X2V2ZW50 X3RpbWVvdXQoZGhfd3EsCi0gCQkJCSAgIGtzbWJkX2R1cmFibGVfc2NhdmVuZ2VyX2FsaXZlKCkg PT0gZmFsc2UsCi0gCQkJCSAgIF9fbXNlY3NfdG9famlmZmllcyhtaW5fdGltZW91dCkpOwotQEAg LTkxOCwyMyArOTUxLDM5IEBAIHN0YXRpYyBpbnQga3NtYmRfZHVyYWJsZV9zY2F2ZW5nZXIodm9p ZCAqZHVtbXkpCi0gCQllbHNlCi0gCQkJbWluX3RpbWVvdXQgPSBEVVJBQkxFX0hBTkRMRV9NQVhf VElNRU9VVDsKLSAKLS0JCXdyaXRlX2xvY2soJmdsb2JhbF9mdC5sb2NrKTsKLS0JCWlkcl9mb3Jf ZWFjaF9lbnRyeShnbG9iYWxfZnQuaWRyLCBmcCwgaWQpIHsKLS0JCQlpZiAoIWZwLT5kdXJhYmxl X3RpbWVvdXQpCi0tCQkJCWNvbnRpbnVlOwotKwkJZG8gewotKwkJCWV4cGlyZWRfZnAgPSBOVUxM OwotKwkJCWZvdW5kX2ZwX3RpbWVvdXQgPSBmYWxzZTsKLSAKLS0JCQlpZiAoYXRvbWljX3JlYWQo JmZwLT5yZWZjb3VudCkgPiAxIHx8Ci0tCQkJICAgIGZwLT5jb25uKQotLQkJCQljb250aW51ZTsK LS0KLS0JCQlmb3VuZF9mcF90aW1lb3V0ID0gdHJ1ZTsKLS0JCQlpZiAoZnAtPmR1cmFibGVfc2Nh dmVuZ2VyX3RpbWVvdXQgPD0KLS0JCQkgICAgamlmZmllc190b19tc2VjcyhqaWZmaWVzKSkgewot LQkJCQlfX2tzbWJkX3JlbW92ZV9kdXJhYmxlX2ZkKGZwKTsKLS0JCQkJbGlzdF9hZGQoJmZwLT5u b2RlLCAmc2NhdmVuZ2VyX2xpc3QpOwotLQkJCX0gZWxzZSB7Ci0rCQkJd3JpdGVfbG9jaygmZ2xv YmFsX2Z0LmxvY2spOwotKwkJCWlkcl9mb3JfZWFjaF9lbnRyeShnbG9iYWxfZnQuaWRyLCBmcCwg aWQpIHsKLSAJCQkJdW5zaWduZWQgbG9uZyBkdXJhYmxlX3RpbWVvdXQ7Ci0gCi0rCQkJCWlmICgh ZnAtPmR1cmFibGVfdGltZW91dCkKLSsJCQkJCWNvbnRpbnVlOwotKwotKwkJCQlpZiAoYXRvbWlj X3JlYWQoJmZwLT5yZWZjb3VudCkgPiAxIHx8Ci0rCQkJCSAgICBmcC0+Y29ubikKLSsJCQkJCWNv bnRpbnVlOwotKwotKwkJCQlmb3VuZF9mcF90aW1lb3V0ID0gdHJ1ZTsKLSsJCQkJaWYgKGZwLT5k dXJhYmxlX3NjYXZlbmdlcl90aW1lb3V0IDw9Ci0rCQkJCSAgICBqaWZmaWVzX3RvX21zZWNzKGpp ZmZpZXMpKSB7Ci0rCQkJCQlfX2tzbWJkX3JlbW92ZV9kdXJhYmxlX2ZkKGZwKTsKLSsJCQkJCS8q Ci0rCQkJCQkgKiBUYWtlIGEgdHJhbnNpZW50IHJlZmVyZW5jZSBzbyBmcAotKwkJCQkJICogY2Fu bm90IGJlIGZyZWVkIGJ5IGFuIGluLWZsaWdodAotKwkJCQkJICoga3NtYmRfbG9va3VwX2ZkX2lu b2RlKCkgdGhhdCBmb3VuZAotKwkJCQkJICogaXQgdGhyb3VnaCBmX2NpLT5tX2ZwX2xpc3Qgd2hp bGUgd2UKLSsJCQkJCSAqIGRyb3AgZ2xvYmFsX2Z0LmxvY2sgYW5kIHJlYWNoIHRoZQotKwkJCQkJ ICogbV9mcF9saXN0IHVubGluayBpbgotKwkJCQkJICoga3NtYmRfc2NhdmVuZ2VyX2Rpc3Bvc2Vf ZGgoKS4KLSsJCQkJCSAqLwotKwkJCQkJYXRvbWljX2luYygmZnAtPnJlZmNvdW50KTsKLSsJCQkJ CWV4cGlyZWRfZnAgPSBmcDsKLSsJCQkJCWJyZWFrOwotKwkJCQl9Ci0rCi0gCQkJCWR1cmFibGVf dGltZW91dCA9Ci0gCQkJCQlmcC0+ZHVyYWJsZV9zY2F2ZW5nZXJfdGltZW91dCAtCi0gCQkJCQkJ amlmZmllc190b19tc2VjcyhqaWZmaWVzKTsKLUBAIC05NDIsMTAgKzk5MSwxMSBAQCBzdGF0aWMg aW50IGtzbWJkX2R1cmFibGVfc2NhdmVuZ2VyKHZvaWQgKmR1bW15KQotIAkJCQlpZiAobWluX3Rp bWVvdXQgPiBkdXJhYmxlX3RpbWVvdXQpCi0gCQkJCQltaW5fdGltZW91dCA9IGR1cmFibGVfdGlt ZW91dDsKLSAJCQl9Ci0tCQl9Ci0tCQl3cml0ZV91bmxvY2soJmdsb2JhbF9mdC5sb2NrKTsKLSsJ CQl3cml0ZV91bmxvY2soJmdsb2JhbF9mdC5sb2NrKTsKLSAKLS0JCWtzbWJkX3NjYXZlbmdlcl9k aXNwb3NlX2RoKCZzY2F2ZW5nZXJfbGlzdCk7Ci0rCQkJaWYgKGV4cGlyZWRfZnApCi0rCQkJCWtz bWJkX3NjYXZlbmdlcl9kaXNwb3NlX2RoKGV4cGlyZWRfZnApOwotKwkJfSB3aGlsZSAoZXhwaXJl ZF9mcCk7Ci0gCi0gCQlpZiAoZm91bmRfZnBfdGltZW91dCA9PSBmYWxzZSkKLSAJCQlicmVhazsK LWRpZmYgLS1naXQgYS9pbmNsdWRlL2NyeXB0by9rcmI1LmggYi9pbmNsdWRlL2NyeXB0by9rcmI1 LmgKLWluZGV4IDcxZGQzOGY1OWJlMS4uYWFjM2VjZjg4NDY3IDEwMDY0NAotLS0tIGEvaW5jbHVk ZS9jcnlwdG8va3JiNS5oCi0rKysgYi9pbmNsdWRlL2NyeXB0by9rcmI1LmgKLUBAIC0xMjEsOSAr MTIxLDEyIEBAIHNpemVfdCBjcnlwdG9fa3JiNV9ob3dfbXVjaF9idWZmZXIoY29uc3Qgc3RydWN0 IGtyYjVfZW5jdHlwZSAqa3JiNSwKLSBzaXplX3QgY3J5cHRvX2tyYjVfaG93X211Y2hfZGF0YShj b25zdCBzdHJ1Y3Qga3JiNV9lbmN0eXBlICprcmI1LAotIAkJCQkgZW51bSBrcmI1X2NyeXB0b19t b2RlIG1vZGUsCi0gCQkJCSBzaXplX3QgKl9idWZmZXJfc2l6ZSwgc2l6ZV90ICpfb2Zmc2V0KTsK LS12b2lkIGNyeXB0b19rcmI1X3doZXJlX2lzX3RoZV9kYXRhKGNvbnN0IHN0cnVjdCBrcmI1X2Vu Y3R5cGUgKmtyYjUsCi0tCQkJCSAgIGVudW0ga3JiNV9jcnlwdG9fbW9kZSBtb2RlLAotLQkJCQkg ICBzaXplX3QgKl9vZmZzZXQsIHNpemVfdCAqX2xlbik7Ci0raW50IGNyeXB0b19rcmI1X3doZXJl X2lzX3RoZV9kYXRhKGNvbnN0IHN0cnVjdCBrcmI1X2VuY3R5cGUgKmtyYjUsCi0rCQkJCSAgZW51 bSBrcmI1X2NyeXB0b19tb2RlIG1vZGUsCi0rCQkJCSAgc2l6ZV90ICpfb2Zmc2V0LCBzaXplX3Qg Kl9sZW4pOwotK2ludCBjcnlwdG9fa3JiNV9jaGVja19kYXRhX2xlbihjb25zdCBzdHJ1Y3Qga3Ji NV9lbmN0eXBlICprcmI1LAotKwkJCSAgICAgICBlbnVtIGtyYjVfY3J5cHRvX21vZGUgbW9kZSwK LSsJCQkgICAgICAgc2l6ZV90IGxlbiwgc2l6ZV90IG1pbl9jb250ZW50KTsKLSBzdHJ1Y3QgY3J5 cHRvX2FlYWQgKmNyeXB0b19rcmI1X3ByZXBhcmVfZW5jcnlwdGlvbihjb25zdCBzdHJ1Y3Qga3Ji NV9lbmN0eXBlICprcmI1LAotIAkJCQkJCSAgIGNvbnN0IHN0cnVjdCBrcmI1X2J1ZmZlciAqVEss Ci0gCQkJCQkJICAgdTMyIHVzYWdlLCBnZnBfdCBnZnApOwogZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvZWZpLmggYi9pbmNsdWRlL2xpbnV4L2VmaS5oCiBpbmRleCA2NjQ4OThkMDlmZjUuLjM0 ZjQ3NmQwMjE4MSAxMDA2NDQKIC0tLSBhL2luY2x1ZGUvbGludXgvZWZpLmgKQEAgLTgzNTEsMzgg Kzc1NjYsNiBAQCBpbmRleCA2NjQ4OThkMDlmZjUuLjM0ZjQ3NmQwMjE4MSAxMDA2NDQKICBzdGF0 aWMgaW5saW5lCiAgZW51bSBlZmlfc2VjdXJlYm9vdF9tb2RlIGVmaV9nZXRfc2VjdXJlYm9vdF9t b2RlKGVmaV9nZXRfdmFyaWFibGVfdCAqZ2V0X3ZhcikKICB7Ci1kaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9saWJhdGEuaCBiL2luY2x1ZGUvbGludXgvbGliYXRhLmgKLWluZGV4IDAwMzQ2Y2Uz YWY1ZS4uOTNhYjM1OTVjNjQwIDEwMDY0NAotLS0tIGEvaW5jbHVkZS9saW51eC9saWJhdGEuaAot KysrIGIvaW5jbHVkZS9saW51eC9saWJhdGEuaAotQEAgLTM3MSw2ICszNzEsNyBAQCBlbnVtIHsK LSAJLyogcmV0dXJuIHZhbHVlcyBmb3IgLT5xY19kZWZlciAqLwotIAlBVEFfREVGRVJfTElOSwkJ PSAxLAotIAlBVEFfREVGRVJfUE9SVAkJPSAyLAotKwlBVEFfREVGRVJfTElOS19FWENMCT0gMywK LSAKLSAJLyogZGVzY19sZW4gZm9yIGF0YV9laF9pbmZvIGFuZCBjb250ZXh0ICovCi0gCUFUQV9F SF9ERVNDX0xFTgkJPSA4MCwKLUBAIC04NTQsNiArODU1LDkgQEAgc3RydWN0IGF0YV9saW5rIHsK LSAJdW5zaWduZWQgaW50CQlzYXRhX3NwZDsJLyogY3VycmVudCBTQVRBIFBIWSBzcGVlZCAqLwot IAllbnVtIGF0YV9scG1fcG9saWN5CWxwbV9wb2xpY3k7Ci0gCi0rCXN0cnVjdCB3b3JrX3N0cnVj dAlkZWZlcnJlZF9xY193b3JrOwotKwlzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQJKmRlZmVycmVkX3Fj OwotKwotIAkvKiByZWNvcmQgcnVudGltZSBlcnJvciBpbmZvLCBwcm90ZWN0ZWQgYnkgaG9zdF9z ZXQgbG9jayAqLwotIAlzdHJ1Y3QgYXRhX2VoX2luZm8JZWhfaW5mbzsKLSAJLyogRUggY29udGV4 dCAqLwotQEAgLTg5OSw5ICs5MDMsNiBAQCBzdHJ1Y3QgYXRhX3BvcnQgewotIAl1NjQJCQlxY19h Y3RpdmU7Ci0gCWludAkJCW5yX2FjdGl2ZV9saW5rczsgLyogI2xpbmtzIHdpdGggYWN0aXZlIHFj cyAqLwotIAotLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QJZGVmZXJyZWRfcWNfd29yazsKLS0Jc3RydWN0 IGF0YV9xdWV1ZWRfY21kCSpkZWZlcnJlZF9xYzsKLS0KLSAJc3RydWN0IGF0YV9saW5rCQlsaW5r OwkJLyogaG9zdCBkZWZhdWx0IGxpbmsgKi8KLSAJc3RydWN0IGF0YV9saW5rCQkqc2xhdmVfbGlu azsJLyogc2VlIGF0YV9zbGF2ZV9saW5rX2luaXQoKSAqLwotIAogZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvbHNtX2hvb2tfZGVmcy5oIGIvaW5jbHVkZS9saW51eC9sc21faG9va19kZWZzLmgK IGluZGV4IGI0OTU4MTY3ZTM4MS4uNjRmZmU4YzJkYWNkIDEwMDY0NAogLS0tIGEvaW5jbHVkZS9s aW51eC9sc21faG9va19kZWZzLmgKQEAgLTg0NDgsMTggKzc2MzEsNiBAQCBpbmRleCA4ZDJkNDg1 NjkzNGUuLmQ2YjFhZWM0MzQwZiAxMDA2NDQKICsjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZX0xP Q0tET1dOX0xTTSAqLwogKwogICNlbmRpZiAvKiAhIF9fTElOVVhfU0VDVVJJVFlfSCAqLwotZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdHJhY2UvZXZlbnRzL3J4cnBjLmggYi9pbmNsdWRlL3RyYWNlL2V2 ZW50cy9yeHJwYy5oCi1pbmRleCA1NzNmMmRmM2EyYzkuLjcwNGExMGRlNjY3MCAxMDA2NDQKLS0t LSBhL2luY2x1ZGUvdHJhY2UvZXZlbnRzL3J4cnBjLmgKLSsrKyBiL2luY2x1ZGUvdHJhY2UvZXZl bnRzL3J4cnBjLmgKLUBAIC03MSw2ICs3MSw3IEBACi0gCUVNKHJ4a2FkX2Fib3J0X3Jlc3BfdW5r bm93bl90a3QsCSJyeGthZC1yZXNwLXVua25vd24tdGt0IikgXAotIAlFTShyeGthZF9hYm9ydF9y ZXNwX3ZlcnNpb24sCQkicnhrYWQtcmVzcC12ZXJzaW9uIikJXAotIAkvKiBSeEdLIHNlY3VyaXR5 IGVycm9ycyAqLwkJCQkJXAotKwlFTShyeGdrX2Fib3J0XzFfc2hvcnRfaGVhZGVyLAkJInJ4Z2sx LXNob3J0LWhkciIpCVwKLSAJRU0ocnhna19hYm9ydF8xX3ZlcmlmeV9taWNfZXByb3RvLAkicnhn azEtdmZ5LW1pYy1lcHJvdG8iKQlcCi0gCUVNKHJ4Z2tfYWJvcnRfMl9kZWNyeXB0X2Vwcm90bywJ CSJyeGdrMi1kZWMtZXByb3RvIikJXAotIAlFTShyeGdrX2Fib3J0XzJfc2hvcnRfZGF0YSwJCSJy eGdrMi1zaG9ydC1kYXRhIikJXAogZGlmZiAtLWdpdCBhL2tlcm5lbC9tb2R1bGUvc2lnbmluZy5j IGIva2VybmVsL21vZHVsZS9zaWduaW5nLmMKIGluZGV4IGEyZmY0MjQyZTYyMy4uZjBkMmJlMWVl NGYxIDEwMDY0NAogLS0tIGEva2VybmVsL21vZHVsZS9zaWduaW5nLmMKQEAgLTg0ODQsMTAgKzc2 NTUsMTAgQEAgaW5kZXggYTJmZjQyNDJlNjIzLi5mMGQyYmUxZWU0ZjEgMTAwNjQ0CiAgCiAgaW50 IG1vZHVsZV9zaWdfY2hlY2soc3RydWN0IGxvYWRfaW5mbyAqaW5mbywgaW50IGZsYWdzKQogZGlm ZiAtLWdpdCBhL25ldC9jb3JlL2dyby5jIGIvbmV0L2NvcmUvZ3JvLmMKLWluZGV4IDlmODk2MDc4 OWIyYy4uYzdiOGVhYjYxZTAyIDEwMDY0NAoraW5kZXggYTg0NzUzOTgzNDY3Li4zZTIwZjYxNzI0 YWQgMTAwNjQ0CiAtLS0gYS9uZXQvY29yZS9ncm8uYwogKysrIGIvbmV0L2NvcmUvZ3JvLmMKLUBA IC0xMjMsNiArMTIzLDkgQEAgaW50IHNrYl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqcCwg c3RydWN0IHNrX2J1ZmYgKnNrYikKK0BAIC0xMjYsNiArMTI2LDkgQEAgaW50IHNrYl9ncm9fcmVj ZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKICAJbHAgPSBOQVBJ X0dST19DQihwKS0+bGFzdDsKICAJcGluZm8gPSBza2Jfc2hpbmZvKGxwKTsKICAKQEAgLTg1NDMs MTA2OCArNzcxNCw2IEBAIGluZGV4IDljMDZjNWExNDE5ZC4uMGZhZDFkYzU1OGI4IDEwMDY0NAog IAkJZ290byBjb3c7CiAgCiAgCWlmICghc2tiX2Nsb25lZChza2IpKSB7Ci1kaWZmIC0tZ2l0IGEv bmV0L3J4cnBjL2FyLWludGVybmFsLmggYi9uZXQvcnhycGMvYXItaW50ZXJuYWwuaAotaW5kZXgg MjdjMmFhMmRkMDIzLi45OGYyMTY1MTU5ZDcgMTAwNjQ0Ci0tLS0gYS9uZXQvcnhycGMvYXItaW50 ZXJuYWwuaAotKysrIGIvbmV0L3J4cnBjL2FyLWludGVybmFsLmgKLUBAIC0yMTMsOCArMjEzLDYg QEAgc3RydWN0IHJ4cnBjX3NrYl9wcml2IHsKLSAJCXN0cnVjdCB7Ci0gCQkJdTE2CQlvZmZzZXQ7 CQkvKiBPZmZzZXQgb2YgZGF0YSAqLwotIAkJCXUxNgkJbGVuOwkJLyogTGVuZ3RoIG9mIGRhdGEg Ki8KLS0JCQl1OAkJZmxhZ3M7Ci0tI2RlZmluZSBSWFJQQ19SWF9WRVJJRklFRAkweDAxCi0gCQl9 OwotIAkJc3RydWN0IHsKLSAJCQlyeHJwY19zZXFfdAlmaXJzdF9hY2s7CS8qIEZpcnN0IHBhY2tl dCBpbiBhY2tzIHRhYmxlICovCi1AQCAtMzA5LDE1ICszMDcsMTYgQEAgc3RydWN0IHJ4cnBjX3Nl Y3VyaXR5IHsKLSAJCQkJICAgIHN0cnVjdCBza19idWZmICpjaGFsbGVuZ2UpOwotIAotIAkvKiB2 ZXJpZnkgYSByZXNwb25zZSAqLwotLQlpbnQgKCp2ZXJpZnlfcmVzcG9uc2UpKHN0cnVjdCByeHJw Y19jb25uZWN0aW9uICosCi0tCQkJICAgICAgIHN0cnVjdCBza19idWZmICopOwotKwlpbnQgKCp2 ZXJpZnlfcmVzcG9uc2UpKHN0cnVjdCByeHJwY19jb25uZWN0aW9uICpjb25uLAotKwkJCSAgICAg ICBzdHJ1Y3Qgc2tfYnVmZiAqcmVzcG9uc2Vfc2tiLAotKwkJCSAgICAgICB2b2lkICpyZXNwb25z ZSwgdW5zaWduZWQgaW50IGxlbik7Ci0gCi0gCS8qIGNsZWFyIGNvbm5lY3Rpb24gc2VjdXJpdHkg Ki8KLSAJdm9pZCAoKmNsZWFyKShzdHJ1Y3QgcnhycGNfY29ubmVjdGlvbiAqKTsKLSAKLSAJLyog RGVmYXVsdCB0aWNrZXQgLT4ga2V5IGRlY29kZXIgKi8KLSAJaW50ICgqZGVmYXVsdF9kZWNvZGVf dGlja2V0KShzdHJ1Y3QgcnhycGNfY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IHNrX2J1ZmYgKnNr YiwKLS0JCQkJICAgICB1bnNpZ25lZCBpbnQgdGlja2V0X29mZnNldCwgdW5zaWduZWQgaW50IHRp Y2tldF9sZW4sCi0rCQkJCSAgICAgdm9pZCAqdGlja2V0LCB1bnNpZ25lZCBpbnQgdGlja2V0X2xl biwKLSAJCQkJICAgICBzdHJ1Y3Qga2V5ICoqX2tleSk7Ci0gfTsKLSAKLUBAIC03NzQsNiArNzcz LDExIEBAIHN0cnVjdCByeHJwY19jYWxsIHsKLSAJc3RydWN0IHNrX2J1ZmZfaGVhZAlyZWN2bXNn X3F1ZXVlOwkvKiBRdWV1ZSBvZiBwYWNrZXRzIHJlYWR5IGZvciByZWN2bXNnKCkgKi8KLSAJc3Ry dWN0IHNrX2J1ZmZfaGVhZAlyeF9xdWV1ZTsJLyogUXVldWUgb2YgcGFja2V0cyBmb3IgdGhpcyBj YWxsIHRvIHJlY2VpdmUgKi8KLSAJc3RydWN0IHNrX2J1ZmZfaGVhZAlyeF9vb3NfcXVldWU7CS8q IFF1ZXVlIG9mIG91dCBvZiBzZXF1ZW5jZSBwYWNrZXRzICovCi0rCXZvaWQJCQkqcnhfZGVjX2J1 ZmZlcjsJLyogRGVjcnlwdGlvbiBidWZmZXIgKi8KLSsJdW5zaWduZWQgc2hvcnQJCXJ4X2RlY19i c2l6ZTsJLyogcnhfZGVjX2J1ZmZlciBzaXplICovCi0rCXVuc2lnbmVkIHNob3J0CQlyeF9kZWNf b2Zmc2V0OwkvKiBEZWNyeXB0ZWQgcGFja2V0IGRhdGEgb2Zmc2V0ICovCi0rCXVuc2lnbmVkIHNo b3J0CQlyeF9kZWNfbGVuOwkvKiBEZWNyeXB0ZWQgcGFja2V0IGRhdGEgbGVuICovCi0rCXJ4cnBj X3NlcV90CQlyeF9kZWNfc2VxOwkvKiBQYWNrZXQgaW4gZGVjcnlwdGlvbiBidWZmZXIgKi8KLSAK LSAJcnhycGNfc2VxX3QJCXJ4X2hpZ2hlc3Rfc2VxOwkvKiBIaWdlc3Qgc2VxdWVuY2UgbnVtYmVy IHJlY2VpdmVkICovCi0gCXJ4cnBjX3NlcV90CQlyeF9jb25zdW1lZDsJLyogSGlnaGVzdCBwYWNr ZXQgY29uc3VtZWQgKi8KLWRpZmYgLS1naXQgYS9uZXQvcnhycGMvY2FsbF9ldmVudC5jIGIvbmV0 L3J4cnBjL2NhbGxfZXZlbnQuYwotaW5kZXggMmIxOWIyNTIyMjVlLi5mZWM1OWQ5MzM4YjkgMTAw NjQ0Ci0tLS0gYS9uZXQvcnhycGMvY2FsbF9ldmVudC5jCi0rKysgYi9uZXQvcnhycGMvY2FsbF9l dmVudC5jCi1AQCAtMzMyLDI3ICszMzIsNyBAQCBib29sIHJ4cnBjX2lucHV0X2NhbGxfZXZlbnQo c3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwpCi0gCi0gCQkJc2F3X2FjayB8PSBzcC0+aGRyLnR5cGUg PT0gUlhSUENfUEFDS0VUX1RZUEVfQUNLOwotIAotLQkJCWlmIChzcC0+aGRyLnR5cGUgPT0gUlhS UENfUEFDS0VUX1RZUEVfREFUQSAmJgotLQkJCSAgICBzcC0+aGRyLnNlY3VyaXR5SW5kZXggIT0g MCAmJgotLQkJCSAgICAoc2tiX2Nsb25lZChza2IpIHx8Ci0tCQkJICAgICBza2JfaGFzX2ZyYWdf bGlzdChza2IpIHx8Ci0tCQkJICAgICBza2JfaGFzX3NoYXJlZF9mcmFnKHNrYikpKSB7Ci0tCQkJ CS8qIFVuc2hhcmUgdGhlIHBhY2tldCBzbyB0aGF0IGl0IGNhbiBiZQotLQkJCQkgKiBtb2RpZmll ZCBieSBpbi1wbGFjZSBkZWNyeXB0aW9uLgotLQkJCQkgKi8KLS0JCQkJc3RydWN0IHNrX2J1ZmYg Km5za2IgPSBza2JfY29weShza2IsIEdGUF9BVE9NSUMpOwotLQotLQkJCQlpZiAobnNrYikgewot LQkJCQkJcnhycGNfbmV3X3NrYihuc2tiLCByeHJwY19za2JfbmV3X3Vuc2hhcmVkKTsKLS0JCQkJ CXJ4cnBjX2lucHV0X2NhbGxfcGFja2V0KGNhbGwsIG5za2IpOwotLQkJCQkJcnhycGNfZnJlZV9z a2IobnNrYiwgcnhycGNfc2tiX3B1dF9jYWxsX3J4KTsKLS0JCQkJfSBlbHNlIHsKLS0JCQkJCS8q IE9PTSAtIERyb3AgdGhlIHBhY2tldC4gKi8KLS0JCQkJCXJ4cnBjX3NlZV9za2Ioc2tiLCByeHJw Y19za2Jfc2VlX3Vuc2hhcmVfbm9tZW0pOwotLQkJCQl9Ci0tCQkJfSBlbHNlIHsKLS0JCQkJcnhy cGNfaW5wdXRfY2FsbF9wYWNrZXQoY2FsbCwgc2tiKTsKLS0JCQl9Ci0rCQkJcnhycGNfaW5wdXRf Y2FsbF9wYWNrZXQoY2FsbCwgc2tiKTsKLSAJCQlyeHJwY19mcmVlX3NrYihza2IsIHJ4cnBjX3Nr Yl9wdXRfY2FsbF9yeCk7Ci0gCQkJZGlkX3JlY2VpdmUgPSB0cnVlOwotIAkJfQotZGlmZiAtLWdp dCBhL25ldC9yeHJwYy9jYWxsX29iamVjdC5jIGIvbmV0L3J4cnBjL2NhbGxfb2JqZWN0LmMKLWlu ZGV4IGYwMzVmNDg2YzEzOS4uZmNiOWQzOGJiNTIxIDEwMDY0NAotLS0tIGEvbmV0L3J4cnBjL2Nh bGxfb2JqZWN0LmMKLSsrKyBiL25ldC9yeHJwYy9jYWxsX29iamVjdC5jCi1AQCAtMTUyLDYgKzE1 Miw3IEBAIHN0cnVjdCByeHJwY19jYWxsICpyeHJwY19hbGxvY19jYWxsKHN0cnVjdCByeHJwY19z b2NrICpyeCwgZ2ZwX3QgZ2ZwLAotIAlzcGluX2xvY2tfaW5pdCgmY2FsbC0+bm90aWZ5X2xvY2sp OwotIAlyZWZjb3VudF9zZXQoJmNhbGwtPnJlZiwgMSk7Ci0gCWNhbGwtPmRlYnVnX2lkCQk9IGRl YnVnX2lkOwotKwljYWxsLT5yeF9wa3Rfb2Zmc2V0CT0gVVNIUlRfTUFYOwotIAljYWxsLT50eF90 b3RhbF9sZW4JPSAtMTsKLSAJY2FsbC0+dHhfanVtYm9fbWF4CT0gMTsKLSAJY2FsbC0+bmV4dF9y eF90aW1vCT0gMjAgKiBIWjsKLUBAIC01NTMsNiArNTU0LDcgQEAgc3RhdGljIHZvaWQgcnhycGNf Y2xlYW51cF9yeF9idWZmZXJzKHN0cnVjdCByeHJwY19jYWxsICpjYWxsKQotIAlyeHJwY19wdXJn ZV9xdWV1ZSgmY2FsbC0+cmVjdm1zZ19xdWV1ZSk7Ci0gCXJ4cnBjX3B1cmdlX3F1ZXVlKCZjYWxs LT5yeF9xdWV1ZSk7Ci0gCXJ4cnBjX3B1cmdlX3F1ZXVlKCZjYWxsLT5yeF9vb3NfcXVldWUpOwot KwlrZnJlZShjYWxsLT5yeF9kZWNfYnVmZmVyKTsKLSB9Ci0gCi0gLyoKLWRpZmYgLS1naXQgYS9u ZXQvcnhycGMvY29ubl9ldmVudC5jIGIvbmV0L3J4cnBjL2Nvbm5fZXZlbnQuYwotaW5kZXggNDQy NDE0ZDkwYmExLi5jOTZjYTYxNWI3ODcgMTAwNjQ0Ci0tLS0gYS9uZXQvcnhycGMvY29ubl9ldmVu dC5jCi0rKysgYi9uZXQvcnhycGMvY29ubl9ldmVudC5jCi1AQCAtMjQzLDI4ICsyNDMsMjIgQEAg c3RhdGljIHZvaWQgcnhycGNfY2FsbF9pc19zZWN1cmUoc3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwp Ci0gc3RhdGljIGludCByeHJwY192ZXJpZnlfcmVzcG9uc2Uoc3RydWN0IHJ4cnBjX2Nvbm5lY3Rp b24gKmNvbm4sCi0gCQkJCSBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotIHsKLSsJdW5zaWduZWQgaW50 IGxlbiA9IHNrYi0+bGVuIC0gc2l6ZW9mKHN0cnVjdCByeHJwY193aXJlX2hlYWRlcik7Ci0rCXZv aWQgKmJ1ZmZlcjsKLSAJaW50IHJldDsKLSAKLS0JaWYgKHNrYl9jbG9uZWQoc2tiKSB8fCBza2Jf aGFzX2ZyYWdfbGlzdChza2IpIHx8Ci0tCSAgICBza2JfaGFzX3NoYXJlZF9mcmFnKHNrYikpIHsK LS0JCS8qIENvcHkgdGhlIHBhY2tldCBpZiBzaGFyZWQgc28gdGhhdCB3ZSBjYW4gZG8gaW4tcGxh Y2UKLS0JCSAqIGRlY3J5cHRpb24uCi0tCQkgKi8KLS0JCXN0cnVjdCBza19idWZmICpuc2tiID0g c2tiX2NvcHkoc2tiLCBHRlBfTk9GUyk7Ci0tCi0tCQlpZiAobnNrYikgewotLQkJCXJ4cnBjX25l d19za2IobnNrYiwgcnhycGNfc2tiX25ld191bnNoYXJlZCk7Ci0tCQkJcmV0ID0gY29ubi0+c2Vj dXJpdHktPnZlcmlmeV9yZXNwb25zZShjb25uLCBuc2tiKTsKLS0JCQlyeHJwY19mcmVlX3NrYihu c2tiLCByeHJwY19za2JfcHV0X3Jlc3BvbnNlX2NvcHkpOwotLQkJfSBlbHNlIHsKLS0JCQkvKiBP T00gLSBEcm9wIHRoZSBwYWNrZXQuICovCi0tCQkJcnhycGNfc2VlX3NrYihza2IsIHJ4cnBjX3Nr Yl9zZWVfdW5zaGFyZV9ub21lbSk7Ci0tCQkJcmV0ID0gLUVOT01FTTsKLS0JCX0KLS0JfSBlbHNl IHsKLS0JCXJldCA9IGNvbm4tPnNlY3VyaXR5LT52ZXJpZnlfcmVzcG9uc2UoY29ubiwgc2tiKTsK LS0JfQotKwlidWZmZXIgPSBrbWFsbG9jKGxlbiwgR0ZQX05PRlMpOwotKwlpZiAoIWJ1ZmZlcikK LSsJCXJldHVybiAtRU5PTUVNOwotKwotKwlyZXQgPSBza2JfY29weV9iaXRzKHNrYiwgc2l6ZW9m KHN0cnVjdCByeHJwY193aXJlX2hlYWRlciksIGJ1ZmZlciwgbGVuKTsKLSsJaWYgKHJldCA8IDAp Ci0rCQlnb3RvIG91dDsKLSsKLSsJcmV0ID0gY29ubi0+c2VjdXJpdHktPnZlcmlmeV9yZXNwb25z ZShjb25uLCBza2IsIGJ1ZmZlciwgbGVuKTsKLSAKLStvdXQ6Ci0rCWtmcmVlKGJ1ZmZlcik7Ci0g CXJldHVybiByZXQ7Ci0gfQotIAotZGlmZiAtLWdpdCBhL25ldC9yeHJwYy9pbnNlY3VyZS5jIGIv bmV0L3J4cnBjL2luc2VjdXJlLmMKLWluZGV4IDBhMjYwZGY0NWQyNS4uMGIzOTA0NmJkYzYxIDEw MDY0NAotLS0tIGEvbmV0L3J4cnBjL2luc2VjdXJlLmMKLSsrKyBiL25ldC9yeHJwYy9pbnNlY3Vy ZS5jCi1AQCAtMzIsOSArMzIsNiBAQCBzdGF0aWMgaW50IG5vbmVfc2VjdXJlX3BhY2tldChzdHJ1 Y3QgcnhycGNfY2FsbCAqY2FsbCwgc3RydWN0IHJ4cnBjX3R4YnVmICp0eGIpCi0gCi0gc3RhdGlj IGludCBub25lX3ZlcmlmeV9wYWNrZXQoc3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwsIHN0cnVjdCBz a19idWZmICpza2IpCi0gewotLQlzdHJ1Y3QgcnhycGNfc2tiX3ByaXYgKnNwID0gcnhycGNfc2ti KHNrYik7Ci0tCi0tCXNwLT5mbGFncyB8PSBSWFJQQ19SWF9WRVJJRklFRDsKLSAJcmV0dXJuIDA7 Ci0gfQotIAotQEAgLTU3LDkgKzU0LDEwIEBAIHN0YXRpYyBpbnQgbm9uZV9zZW5kbXNnX3Jlc3Bv bmRfdG9fY2hhbGxlbmdlKHN0cnVjdCBza19idWZmICpjaGFsbGVuZ2UsCi0gfQotIAotIHN0YXRp YyBpbnQgbm9uZV92ZXJpZnlfcmVzcG9uc2Uoc3RydWN0IHJ4cnBjX2Nvbm5lY3Rpb24gKmNvbm4s Ci0tCQkJCXN0cnVjdCBza19idWZmICpza2IpCi0rCQkJCXN0cnVjdCBza19idWZmICpyZXNwb25z ZV9za2IsCi0rCQkJCXZvaWQgKnJlc3BvbnNlLCB1bnNpZ25lZCBpbnQgbGVuKQotIHsKLS0JcmV0 dXJuIHJ4cnBjX2Fib3J0X2Nvbm4oY29ubiwgc2tiLCBSWF9QUk9UT0NPTF9FUlJPUiwgLUVQUk9U TywKLSsJcmV0dXJuIHJ4cnBjX2Fib3J0X2Nvbm4oY29ubiwgcmVzcG9uc2Vfc2tiLCBSWF9QUk9U T0NPTF9FUlJPUiwgLUVQUk9UTywKLSAJCQkJcnhycGNfZXByb3RvX3J4bnVsbF9yZXNwb25zZSk7 Ci0gfQotIAotZGlmZiAtLWdpdCBhL25ldC9yeHJwYy9yZWN2bXNnLmMgYi9uZXQvcnhycGMvcmVj dm1zZy5jCi1pbmRleCBlMWY3NTEzYTQ2ZGIuLmM5NDA2MDAxMTdhNCAxMDA2NDQKLS0tLSBhL25l dC9yeHJwYy9yZWN2bXNnLmMKLSsrKyBiL25ldC9yeHJwYy9yZWN2bXNnLmMKLUBAIC0xNDcsMTUg KzE0Nyw1MiBAQCBzdGF0aWMgdm9pZCByeHJwY19yb3RhdGVfcnhfd2luZG93KHN0cnVjdCByeHJw Y19jYWxsICpjYWxsKQotIH0KLSAKLSAvKgotLSAqIERlY3J5cHQgYW5kIHZlcmlmeSBhIERBVEEg cGFja2V0LgotKyAqIERlY3J5cHQgYW5kIHZlcmlmeSBhIERBVEEgcGFja2V0LiAgVGhlIGNvbnRl bnQgb2YgdGhlIHBhY2tldCBpcyBwdWxsZWQgb3V0Ci0rICogaW50byBhIGZsYXQgYnVmZmVyIHJh dGhlciB0aGFuIGRlY3J5cHRpbmcgaW4gcGxhY2UgaW4gdGhlIHNrYnVmZi4gIFRoaXMgYWxzbwot KyAqIGhhcyB0aGUgYWR2YW50YWdlIG9mIGFsaWduaW5nIHRoZSBidWZmZXIgY29ycmVjdGx5IGZv ciB0aGUgY3J5cHRvIHJvdXRpbmVzLgotKyAqCi0rICogV2Uga2VlcCB0cmFjayBvZiB0aGUgc2Vx dWVuY2UgbnVtYmVyIG9mIHRoZSBwYWNrZXQgY3VycmVudGx5IGRlY3J5cHRlZCBpbnRvCi0rICog dGhlIGJ1ZmZlciBpbiAtPnJ4X2RlY19zZXEuICBJZiBNU0dfUEVFSyBpcyB1c2VkIGFuZCBzdGVw cyBvbnRvIGEgbmV3Ci0rICogcGFja2V0LCBzdWJzZXF1ZW50IHJlY3Ztc2coKSBjYWxscyB3aWxs IGhhdmUgdG8gZ28gYmFjayBhbmQgcmUtZGVjcnlwdCB0aGUKLSsgKiBjdXJyZW50IHBhY2tldC4K LSAgKi8KLSBzdGF0aWMgaW50IHJ4cnBjX3ZlcmlmeV9kYXRhKHN0cnVjdCByeHJwY19jYWxsICpj YWxsLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotIHsKLSAJc3RydWN0IHJ4cnBjX3NrYl9wcml2ICpz cCA9IHJ4cnBjX3NrYihza2IpOwotKwlpbnQgcmV0OwotIAotLQlpZiAoc3AtPmZsYWdzICYgUlhS UENfUlhfVkVSSUZJRUQpCi0tCQlyZXR1cm4gMDsKLS0JcmV0dXJuIGNhbGwtPnNlY3VyaXR5LT52 ZXJpZnlfcGFja2V0KGNhbGwsIHNrYik7Ci0rCWlmIChzcC0+bGVuID4gY2FsbC0+cnhfZGVjX2Jz aXplKSB7Ci0rCQkvKiBNYWtlIHN1cmUgd2UgY2FuIGhvbGQgYSAxNDEyLWJ5dGUganVtYm8gc3Vi cGFja2V0IGFuZCBtYWtlCi0rCQkgKiBzdXJlIHRoYXQgdGhlIGJ1ZmZlciBzaXplIGlzIGFsaWdu ZWQgdG8gYSBjcnlwdG8gYmxvY2tzaXplLgotKwkJICovCi0rCQlzaXplX3Qgc2l6ZSA9IGNsYW1w KHJvdW5kX3VwKHNwLT5sZW4sIDMyKSwgMjA0OCwgNjU1MzUpOwotKwkJdm9pZCAqYnVmZmVyID0g a3JlYWxsb2MoY2FsbC0+cnhfZGVjX2J1ZmZlciwgc2l6ZSwgR0ZQX05PRlMpOwotKwotKwkJaWYg KCFidWZmZXIpCi0rCQkJcmV0dXJuIC1FTk9NRU07Ci0rCQljYWxsLT5yeF9kZWNfYnVmZmVyID0g YnVmZmVyOwotKwkJY2FsbC0+cnhfZGVjX2JzaXplID0gc2l6ZTsKLSsJfQotKwotKwlyZXQgPSAt RUZBVUxUOwotKwlpZiAoc2tiX2NvcHlfYml0cyhza2IsIHNwLT5vZmZzZXQsIGNhbGwtPnJ4X2Rl Y19idWZmZXIsIHNwLT5sZW4pIDwgMCkKLSsJCWdvdG8gZXJyOwotKwotKwljYWxsLT5yeF9kZWNf b2Zmc2V0ID0gMDsKLSsJY2FsbC0+cnhfZGVjX2xlbiA9IHNwLT5sZW47Ci0rCWNhbGwtPnJ4X2Rl Y19zZXEgPSBzcC0+aGRyLnNlcTsKLSsJcmV0ID0gY2FsbC0+c2VjdXJpdHktPnZlcmlmeV9wYWNr ZXQoY2FsbCwgc2tiKTsKLSsJaWYgKHJldCA8IDApCi0rCQlnb3RvIGVycjsKLSsJcmV0dXJuIDA7 Ci0rCi0rZXJyOgotKwlrZnJlZShjYWxsLT5yeF9kZWNfYnVmZmVyKTsKLSsJY2FsbC0+cnhfZGVj X2J1ZmZlciA9IE5VTEw7Ci0rCWNhbGwtPnJ4X2RlY19ic2l6ZSA9IDA7Ci0rCWNhbGwtPnJ4X2Rl Y19vZmZzZXQgPSAwOwotKwljYWxsLT5yeF9kZWNfbGVuID0gMDsKLSsJcmV0dXJuIHJldDsKLSB9 Ci0gCi0gLyoKLUBAIC0yODMsMTYgKzMyMCwyMSBAQCBzdGF0aWMgaW50IHJ4cnBjX3JlY3Ztc2df ZGF0YShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgcnhycGNfY2FsbCAqY2FsbCwKLSAJCWlm IChtc2cpCi0gCQkJc29ja19yZWN2X3RpbWVzdGFtcChtc2csIHNvY2stPnNrLCBza2IpOwotIAot LQkJaWYgKHJ4X3BrdF9vZmZzZXQgPT0gMCkgewotKwkJaWYgKGNhbGwtPnJ4X2RlY19zZXEgIT0g c3AtPmhkci5zZXEgfHwKLSsJCSAgICAhY2FsbC0+cnhfZGVjX2J1ZmZlcikgewotIAkJCXJldDIg PSByeHJwY192ZXJpZnlfZGF0YShjYWxsLCBza2IpOwotIAkJCXRyYWNlX3J4cnBjX3JlY3ZkYXRh KGNhbGwsIHJ4cnBjX3JlY3Ztc2dfbmV4dCwgc2VxLAotLQkJCQkJICAgICBzcC0+b2Zmc2V0LCBz cC0+bGVuLCByZXQyKTsKLSsJCQkJCSAgICAgY2FsbC0+cnhfZGVjX29mZnNldCwKLSsJCQkJCSAg ICAgY2FsbC0+cnhfZGVjX2xlbiwgcmV0Mik7Ci0gCQkJaWYgKHJldDIgPCAwKSB7Ci0gCQkJCXJl dCA9IHJldDI7Ci0gCQkJCWdvdG8gb3V0OwotIAkJCX0KLS0JCQlyeF9wa3Rfb2Zmc2V0ID0gc3At Pm9mZnNldDsKLS0JCQlyeF9wa3RfbGVuID0gc3AtPmxlbjsKLSsJCX0KLSsKLSsJCWlmIChyeF9w a3Rfb2Zmc2V0ID09IFVTSFJUX01BWCkgewotKwkJCXJ4X3BrdF9vZmZzZXQgPSBjYWxsLT5yeF9k ZWNfb2Zmc2V0OwotKwkJCXJ4X3BrdF9sZW4gPSBjYWxsLT5yeF9kZWNfbGVuOwotIAkJfSBlbHNl IHsKLSAJCQl0cmFjZV9yeHJwY19yZWN2ZGF0YShjYWxsLCByeHJwY19yZWN2bXNnX2NvbnQsIHNl cSwKLSAJCQkJCSAgICAgcnhfcGt0X29mZnNldCwgcnhfcGt0X2xlbiwgMCk7Ci1AQCAtMzA0LDEw ICszNDYsMTAgQEAgc3RhdGljIGludCByeHJwY19yZWN2bXNnX2RhdGEoc3RydWN0IHNvY2tldCAq c29jaywgc3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwsCi0gCQlpZiAoY29weSA+IHJlbWFpbikKLSAJ CQljb3B5ID0gcmVtYWluOwotIAkJaWYgKGNvcHkgPiAwKSB7Ci0tCQkJcmV0MiA9IHNrYl9jb3B5 X2RhdGFncmFtX2l0ZXIoc2tiLCByeF9wa3Rfb2Zmc2V0LCBpdGVyLAotLQkJCQkJCSAgICAgIGNv cHkpOwotLQkJCWlmIChyZXQyIDwgMCkgewotLQkJCQlyZXQgPSByZXQyOwotKwkJCXJldDIgPSBj b3B5X3RvX2l0ZXIoY2FsbC0+cnhfZGVjX2J1ZmZlciArIHJ4X3BrdF9vZmZzZXQsCi0rCQkJCQkg ICAgY29weSwgaXRlcik7Ci0rCQkJaWYgKHJldDIgIT0gY29weSkgewotKwkJCQlyZXQgPSAtRUZB VUxUOwotIAkJCQlnb3RvIG91dDsKLSAJCQl9Ci0gCi1AQCAtMzI4LDcgKzM3MCw3IEBAIHN0YXRp YyBpbnQgcnhycGNfcmVjdm1zZ19kYXRhKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCByeHJw Y19jYWxsICpjYWxsLAotIAkJLyogVGhlIHdob2xlIHBhY2tldCBoYXMgYmVlbiB0cmFuc2ZlcnJl ZC4gKi8KLSAJCWlmIChzcC0+aGRyLmZsYWdzICYgUlhSUENfTEFTVF9QQUNLRVQpCi0gCQkJcmV0 ID0gMTsKLS0JCXJ4X3BrdF9vZmZzZXQgPSAwOwotKwkJcnhfcGt0X29mZnNldCA9IFVTSFJUX01B WDsKLSAJCXJ4X3BrdF9sZW4gPSAwOwotIAotIAkJc2tiID0gc2tiX3BlZWtfbmV4dChza2IsICZj YWxsLT5yZWN2bXNnX3F1ZXVlKTsKLWRpZmYgLS1naXQgYS9uZXQvcnhycGMvcnhnay5jIGIvbmV0 L3J4cnBjL3J4Z2suYwotaW5kZXggMGQ1ZTY1NGRhOTE4Li5hMWVlMTAyYWJhZTEgMTAwNjQ0Ci0t LS0gYS9uZXQvcnhycGMvcnhnay5jCi0rKysgYi9uZXQvcnhycGMvcnhnay5jCi1AQCAtNDczLDE1 ICs0NzMsMjAgQEAgc3RhdGljIGludCByeGdrX3ZlcmlmeV9wYWNrZXRfaW50ZWdyaXR5KHN0cnVj dCByeHJwY19jYWxsICpjYWxsLAotIAlzdHJ1Y3QgcnhycGNfc2tiX3ByaXYgKnNwID0gcnhycGNf c2tiKHNrYik7Ci0gCXN0cnVjdCByeGdrX2hlYWRlciAqaGRyOwotIAlzdHJ1Y3Qga3JiNV9idWZm ZXIgbWV0YWRhdGE7Ci0tCXVuc2lnbmVkIGludCBvZmZzZXQgPSBzcC0+b2Zmc2V0LCBsZW4gPSBz cC0+bGVuOwotKwl1bnNpZ25lZCBpbnQgbGVuID0gY2FsbC0+cnhfZGVjX2xlbjsKLSAJc2l6ZV90 IGRhdGFfb2Zmc2V0ID0gMCwgZGF0YV9sZW4gPSBsZW47Ci0rCXZvaWQgKmRhdGEgPSBjYWxsLT5y eF9kZWNfYnVmZmVyLCAqcCA9IGRhdGE7Ci0gCXUzMiBhYyA9IDA7Ci0gCWludCByZXQgPSAtRU5P TUVNOwotIAotIAlfZW50ZXIoIiIpOwotIAotLQljcnlwdG9fa3JiNV93aGVyZV9pc190aGVfZGF0 YShnay0+a3JiNSwgS1JCNV9DSEVDS1NVTV9NT0RFLAotLQkJCQkgICAgICAmZGF0YV9vZmZzZXQs ICZkYXRhX2xlbik7Ci0rCWlmIChjcnlwdG9fa3JiNV93aGVyZV9pc190aGVfZGF0YShnay0+a3Ji NSwgS1JCNV9DSEVDS1NVTV9NT0RFLAotKwkJCQkJICAmZGF0YV9vZmZzZXQsICZkYXRhX2xlbikg PCAwKSB7Ci0rCQlyZXQgPSByeHJwY19hYm9ydF9lcHJvdG8oY2FsbCwgc2tiLCBSWEdLX1BBQ0tF VFNIT1JULAotKwkJCQkJIHJ4Z2tfYWJvcnRfMV9zaG9ydF9oZWFkZXIpOwotKwkJZ290byBwdXRf Z2s7Ci0rCX0KLSAKLSAJaGRyID0ga3phbGxvY19vYmooKmhkciwgR0ZQX05PRlMpOwotIAlpZiAo IWhkcikKLUBAIC00OTYsMTYgKzUwMSwxNSBAQCBzdGF0aWMgaW50IHJ4Z2tfdmVyaWZ5X3BhY2tl dF9pbnRlZ3JpdHkoc3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwsCi0gCi0gCW1ldGFkYXRhLmxlbiA9 IHNpemVvZigqaGRyKTsKLSAJbWV0YWRhdGEuZGF0YSA9IGhkcjsKLS0JcmV0ID0gcnhna192ZXJp ZnlfbWljX3NrYihnay0+a3JiNSwgZ2stPnJ4X0tjLCAmbWV0YWRhdGEsCi0tCQkJCSAgc2tiLCAm b2Zmc2V0LCAmbGVuLCAmYWMpOwotKwlyZXQgPSByeGdrX3ZlcmlmeV9taWMoZ2stPmtyYjUsIGdr LT5yeF9LYywgJm1ldGFkYXRhLCAmcCwgJmxlbiwgJmFjKTsKLSAJa2ZyZWUoaGRyKTsKLSAJaWYg KHJldCA8IDApIHsKLSAJCWlmIChyZXQgIT0gLUVOT01FTSkKLSAJCQlyeHJwY19hYm9ydF9lcHJv dG8oY2FsbCwgc2tiLCBhYywKLSAJCQkJCSAgIHJ4Z2tfYWJvcnRfMV92ZXJpZnlfbWljX2Vwcm90 byk7Ci0gCX0gZWxzZSB7Ci0tCQlzcC0+b2Zmc2V0ID0gb2Zmc2V0OwotLQkJc3AtPmxlbiA9IGxl bjsKLSsJCWNhbGwtPnJ4X2RlY19vZmZzZXQgPSBwIC0gZGF0YTsKLSsJCWNhbGwtPnJ4X2RlY19s ZW4gPSBsZW47Ci0gCX0KLSAKLSBwdXRfZ2s6Ci1AQCAtNTIyLDQ5ICs1MjYsNTMgQEAgc3RhdGlj IGludCByeGdrX3ZlcmlmeV9wYWNrZXRfZW5jcnlwdGVkKHN0cnVjdCByeHJwY19jYWxsICpjYWxs LAotIAkJCQkJc3RydWN0IHNrX2J1ZmYgKnNrYikKLSB7Ci0gCXN0cnVjdCByeHJwY19za2JfcHJp diAqc3AgPSByeHJwY19za2Ioc2tiKTsKLS0Jc3RydWN0IHJ4Z2tfaGVhZGVyIGhkcjsKLS0JdW5z aWduZWQgaW50IG9mZnNldCA9IHNwLT5vZmZzZXQsIGxlbiA9IHNwLT5sZW47Ci0rCXN0cnVjdCBy eGdrX2hlYWRlciAqaGRyOwotKwl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gMCwgbGVuID0gY2FsbC0+ cnhfZGVjX2xlbjsKLSsJdm9pZCAqZGF0YSA9IGNhbGwtPnJ4X2RlY19idWZmZXIsICpwID0gZGF0 YTsKLSAJaW50IHJldDsKLSAJdTMyIGFjID0gMDsKLSAKLSAJX2VudGVyKCIiKTsKLSAKLS0JcmV0 ID0gcnhna19kZWNyeXB0X3NrYihnay0+a3JiNSwgZ2stPnJ4X2VuYywgc2tiLCAmb2Zmc2V0LCAm bGVuLCAmYWMpOwotKwlpZiAoY3J5cHRvX2tyYjVfY2hlY2tfZGF0YV9sZW4oZ2stPmtyYjUsIEtS QjVfRU5DUllQVF9NT0RFLAotKwkJCQkgICAgICAgbGVuLCBzaXplb2YoKmhkcikpIDwgMCkgewot KwkJcmV0ID0gcnhycGNfYWJvcnRfZXByb3RvKGNhbGwsIHNrYiwgUlhHS19QQUNLRVRTSE9SVCwK LSsJCQkJCSByeGdrX2Fib3J0XzJfc2hvcnRfaGVhZGVyKTsKLSsJCWdvdG8gZXJyb3I7Ci0rCX0K LSsKLSsJcmV0ID0gcnhna19kZWNyeXB0KGdrLT5rcmI1LCBnay0+cnhfZW5jLCAmcCwgJmxlbiwg JmFjKTsKLSAJaWYgKHJldCA8IDApIHsKLSAJCWlmIChyZXQgIT0gLUVOT01FTSkKLSAJCQlyeHJw Y19hYm9ydF9lcHJvdG8oY2FsbCwgc2tiLCBhYywgcnhna19hYm9ydF8yX2RlY3J5cHRfZXByb3Rv KTsKLSAJCWdvdG8gZXJyb3I7Ci0gCX0KLSsJb2Zmc2V0ID0gcCAtIGRhdGE7Ci0gCi0tCWlmIChs ZW4gPCBzaXplb2YoaGRyKSkgewotKwlpZiAobGVuIDwgc2l6ZW9mKCpoZHIpKSB7Ci0gCQlyZXQg PSByeHJwY19hYm9ydF9lcHJvdG8oY2FsbCwgc2tiLCBSWEdLX1BBQ0tFVFNIT1JULAotIAkJCQkJ IHJ4Z2tfYWJvcnRfMl9zaG9ydF9oZWFkZXIpOwotIAkJZ290byBlcnJvcjsKLSAJfQotIAotIAkv KiBFeHRyYWN0IHRoZSBoZWFkZXIgZnJvbSB0aGUgc2tiICovCi0tCXJldCA9IHNrYl9jb3B5X2Jp dHMoc2tiLCBvZmZzZXQsICZoZHIsIHNpemVvZihoZHIpKTsKLS0JaWYgKHJldCA8IDApIHsKLS0J CXJldCA9IHJ4cnBjX2Fib3J0X2Vwcm90byhjYWxsLCBza2IsIFJYR0tfUEFDS0VUU0hPUlQsCi0t CQkJCQkgcnhna19hYm9ydF8yX3Nob3J0X2VuY2RhdGEpOwotLQkJZ290byBlcnJvcjsKLS0JfQot LQlvZmZzZXQgKz0gc2l6ZW9mKGhkcik7Ci0tCWxlbiAtPSBzaXplb2YoaGRyKTsKLS0KLS0JaWYg KG50b2hsKGhkci5lcG9jaCkJCSE9IGNhbGwtPmNvbm4tPnByb3RvLmVwb2NoIHx8Ci0tCSAgICBu dG9obChoZHIuY2lkKQkJIT0gY2FsbC0+Y2lkIHx8Ci0tCSAgICBudG9obChoZHIuY2FsbF9udW1i ZXIpCSE9IGNhbGwtPmNhbGxfaWQgfHwKLS0JICAgIG50b2hsKGhkci5zZXEpCQkhPSBzcC0+aGRy LnNlcSB8fAotLQkgICAgbnRvaGwoaGRyLnNlY19pbmRleCkJIT0gY2FsbC0+c2VjdXJpdHlfaXgg fHwKLS0JICAgIG50b2hsKGhkci5kYXRhX2xlbikJCT4gbGVuKSB7Ci0rCWhkciA9IGRhdGEgKyBv ZmZzZXQ7Ci0rCW9mZnNldCArPSBzaXplb2YoKmhkcik7Ci0rCWxlbiAtPSBzaXplb2YoKmhkcik7 Ci0rCi0rCWlmIChudG9obChoZHItPmVwb2NoKQkJIT0gY2FsbC0+Y29ubi0+cHJvdG8uZXBvY2gg fHwKLSsJICAgIG50b2hsKGhkci0+Y2lkKQkJIT0gY2FsbC0+Y2lkIHx8Ci0rCSAgICBudG9obCho ZHItPmNhbGxfbnVtYmVyKQkhPSBjYWxsLT5jYWxsX2lkIHx8Ci0rCSAgICBudG9obChoZHItPnNl cSkJCSE9IHNwLT5oZHIuc2VxIHx8Ci0rCSAgICBudG9obChoZHItPnNlY19pbmRleCkJIT0gY2Fs bC0+c2VjdXJpdHlfaXggfHwKLSsJICAgIG50b2hsKGhkci0+ZGF0YV9sZW4pCT4gbGVuKSB7Ci0g CQlyZXQgPSByeHJwY19hYm9ydF9lcHJvdG8oY2FsbCwgc2tiLCBSWEdLX1NFQUxFRElOQ09OLAot IAkJCQkJIHJ4Z2tfYWJvcnRfMl9zaG9ydF9kYXRhKTsKLSAJCWdvdG8gZXJyb3I7Ci0gCX0KLSAK LS0Jc3AtPm9mZnNldCA9IG9mZnNldDsKLS0Jc3AtPmxlbiA9IG50b2hsKGhkci5kYXRhX2xlbik7 Ci0rCWNhbGwtPnJ4X2RlY19vZmZzZXQgPSBvZmZzZXQ7Ci0rCWNhbGwtPnJ4X2RlY19sZW4gPSBu dG9obChoZHItPmRhdGFfbGVuKTsKLSAJcmV0ID0gMDsKLSBlcnJvcjoKLSAJcnhna19wdXQoZ2sp OwotQEAgLTEwNzYsMTEgKzEwODQsMTIgQEAgc3RhdGljIGludCByeGdrX3NlbmRtc2dfcmVzcG9u ZF90b19jaGFsbGVuZ2Uoc3RydWN0IHNrX2J1ZmYgKmNoYWxsZW5nZSwKLSAgKgl1bnNpZ25lZCBp bnQgY2FsbF9udW1iZXJzPD47Ci0gICogfTsKLSAgKi8KLS1zdGF0aWMgaW50IHJ4Z2tfZG9fdmVy aWZ5X2F1dGhlbnRpY2F0b3Ioc3RydWN0IHJ4cnBjX2Nvbm5lY3Rpb24gKmNvbm4sCi0tCQkJCQlj b25zdCBzdHJ1Y3Qga3JiNV9lbmN0eXBlICprcmI1LAotLQkJCQkJc3RydWN0IHNrX2J1ZmYgKnNr YiwKLS0JCQkJCV9fYmUzMiAqcCwgX19iZTMyICplbmQpCi0rc3RhdGljIGludCByeGdrX3Zlcmlm eV9hdXRoZW50aWNhdG9yKHN0cnVjdCByeHJwY19jb25uZWN0aW9uICpjb25uLAotKwkJCQkgICAg IGNvbnN0IHN0cnVjdCBrcmI1X2VuY3R5cGUgKmtyYjUsCi0rCQkJCSAgICAgc3RydWN0IHNrX2J1 ZmYgKnNrYiwKLSsJCQkJICAgICB2b2lkICphdXRoLCB1bnNpZ25lZCBpbnQgYXV0aF9sZW4pCi0g ewotKwlfX2JlMzIgKnAgPSBhdXRoLCAqZW5kID0gYXV0aCArIGF1dGhfbGVuOwotIAl1MzIgYXBw X2xlbiwgY2FsbF9jb3VudCwgbGV2ZWwsIGVwb2NoLCBjaWQsIGk7Ci0gCi0gCV9lbnRlcigiIik7 Ci1AQCAtMTE0MywzNyArMTE1Miw2IEBAIHN0YXRpYyBpbnQgcnhna19kb192ZXJpZnlfYXV0aGVu dGljYXRvcihzdHJ1Y3QgcnhycGNfY29ubmVjdGlvbiAqY29ubiwKLSAJcmV0dXJuIDA7Ci0gfQot IAotLS8qCi0tICogRXh0cmFjdCB0aGUgYXV0aGVudGljYXRvciBhbmQgdmVyaWZ5IGl0LgotLSAq LwotLXN0YXRpYyBpbnQgcnhna192ZXJpZnlfYXV0aGVudGljYXRvcihzdHJ1Y3QgcnhycGNfY29u bmVjdGlvbiAqY29ubiwKLS0JCQkJICAgICBjb25zdCBzdHJ1Y3Qga3JiNV9lbmN0eXBlICprcmI1 LAotLQkJCQkgICAgIHN0cnVjdCBza19idWZmICpza2IsCi0tCQkJCSAgICAgdW5zaWduZWQgaW50 IGF1dGhfb2Zmc2V0LCB1bnNpZ25lZCBpbnQgYXV0aF9sZW4pCi0tewotLQl2b2lkICphdXRoOwot LQlfX2JlMzIgKnA7Ci0tCWludCByZXQ7Ci0tCi0tCWF1dGggPSBrbWFsbG9jKGF1dGhfbGVuLCBH RlBfTk9GUyk7Ci0tCWlmICghYXV0aCkKLS0JCXJldHVybiAtRU5PTUVNOwotLQotLQlyZXQgPSBz a2JfY29weV9iaXRzKHNrYiwgYXV0aF9vZmZzZXQsIGF1dGgsIGF1dGhfbGVuKTsKLS0JaWYgKHJl dCA8IDApIHsKLS0JCXJldCA9IHJ4cnBjX2Fib3J0X2Nvbm4oY29ubiwgc2tiLCBSWEdLX05PVEFV VEgsIC1FUFJPVE8sCi0tCQkJCSAgICAgICByeGdrX2Fib3J0X3Jlc3Bfc2hvcnRfYXV0aCk7Ci0t CQlnb3RvIGVycm9yOwotLQl9Ci0tCi0tCXAgPSBhdXRoOwotLQlyZXQgPSByeGdrX2RvX3Zlcmlm eV9hdXRoZW50aWNhdG9yKGNvbm4sIGtyYjUsIHNrYiwgcCwKLS0JCQkJCSAgIHAgKyBhdXRoX2xl biAvIHNpemVvZigqcCkpOwotLWVycm9yOgotLQlrZnJlZShhdXRoKTsKLS0JcmV0dXJuIHJldDsK LS19Ci0tCi0gLyoKLSAgKiBWZXJpZnkgYSByZXNwb25zZS4KLSAgKgotQEAgLTExODQsNDkgKzEx NjIsNDUgQEAgc3RhdGljIGludCByeGdrX3ZlcmlmeV9hdXRoZW50aWNhdG9yKHN0cnVjdCByeHJw Y19jb25uZWN0aW9uICpjb25uLAotICAqIH07Ci0gICovCi0gc3RhdGljIGludCByeGdrX3Zlcmlm eV9yZXNwb25zZShzdHJ1Y3QgcnhycGNfY29ubmVjdGlvbiAqY29ubiwKLS0JCQkJc3RydWN0IHNr X2J1ZmYgKnNrYikKLSsJCQkJc3RydWN0IHNrX2J1ZmYgKnNrYiwKLSsJCQkJdm9pZCAqYnVmZmVy LCB1bnNpZ25lZCBpbnQgbGVuKQotIHsKLSAJY29uc3Qgc3RydWN0IGtyYjVfZW5jdHlwZSAqa3Ji NTsKLSAJc3RydWN0IHJ4cnBjX2tleV90b2tlbiAqdG9rZW47Ci0gCXN0cnVjdCByeHJwY19za2Jf cHJpdiAqc3AgPSByeHJwY19za2Ioc2tiKTsKLS0Jc3RydWN0IHJ4Z2tfcmVzcG9uc2UgcmhkcjsK LSsJc3RydWN0IHJ4Z2tfcmVzcG9uc2UgKnJoZHI7Ci0gCXN0cnVjdCByeGdrX2NvbnRleHQgKmdr OwotIAlzdHJ1Y3Qga2V5ICprZXkgPSBOVUxMOwotLQl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gc2l6 ZW9mKHN0cnVjdCByeHJwY193aXJlX2hlYWRlcik7Ci0tCXVuc2lnbmVkIGludCBsZW4gPSBza2It PmxlbiAtIHNpemVvZihzdHJ1Y3QgcnhycGNfd2lyZV9oZWFkZXIpOwotLQl1bnNpZ25lZCBpbnQg dG9rZW5fb2Zmc2V0LCB0b2tlbl9sZW47Ci0tCXVuc2lnbmVkIGludCBhdXRoX29mZnNldCwgYXV0 aF9sZW47Ci0rCXVuc2lnbmVkIGludCByZXNwX3Rva2VuX2xlbiwgYXV0aF9sZW47Ci0rCXZvaWQg KnJlc3BfdG9rZW4sICphdXRoOwotIAlfX2JlMzIgeGF1dGhfbGVuOwotIAlpbnQgcmV0LCBlYzsK LSAKLSAJX2VudGVyKCJ7JWR9IiwgY29ubi0+ZGVidWdfaWQpOwotIAotIAkvKiBQYXJzZSB0aGUg UlhHS19SZXNwb25zZSBvYmplY3QgKi8KLS0JaWYgKHNpemVvZihyaGRyKSArIHNpemVvZihfX2Jl MzIpID4gbGVuKQotKwlpZiAobGVuIDwgc2l6ZW9mKCpyaGRyKSArIHNpemVvZihfX2JlMzIpKQot IAkJZ290byBzaG9ydF9wYWNrZXQ7Ci0tCi0tCWlmIChza2JfY29weV9iaXRzKHNrYiwgb2Zmc2V0 LCAmcmhkciwgc2l6ZW9mKHJoZHIpKSA8IDApCi0tCQlnb3RvIHNob3J0X3BhY2tldDsKLS0Jb2Zm c2V0CSs9IHNpemVvZihyaGRyKTsKLS0JbGVuCS09IHNpemVvZihyaGRyKTsKLS0KLS0JdG9rZW5f b2Zmc2V0CT0gb2Zmc2V0OwotLQl0b2tlbl9sZW4JPSBudG9obChyaGRyLnRva2VuX2xlbik7Ci0t CWlmICh0b2tlbl9sZW4gPiBsZW4gfHwKLS0JICAgIHhkcl9yb3VuZF91cCh0b2tlbl9sZW4pICsg c2l6ZW9mKF9fYmUzMikgPiBsZW4pCi0rCXJoZHIgPSBidWZmZXI7Ci0rCWJ1ZmZlcgkrPSBzaXpl b2YoKnJoZHIpOwotKwlsZW4JLT0gc2l6ZW9mKCpyaGRyKTsKLSsKLSsJcmVzcF90b2tlbgk9IGJ1 ZmZlcjsKLSsJcmVzcF90b2tlbl9sZW4JPSBudG9obChyaGRyLT50b2tlbl9sZW4pOwotKwlpZiAo cmVzcF90b2tlbl9sZW4gPiBsZW4gfHwKLSsJICAgIHhkcl9yb3VuZF91cChyZXNwX3Rva2VuX2xl bikgKyBzaXplb2YoX19iZTMyKSA+IGxlbikKLSAJCWdvdG8gc2hvcnRfcGFja2V0OwotIAotLQl0 cmFjZV9yeHJwY19yeF9yZXNwb25zZShjb25uLCBzcC0+aGRyLnNlcmlhbCwgMCwgc3AtPmhkci5j a3N1bSwgdG9rZW5fbGVuKTsKLSsJdHJhY2VfcnhycGNfcnhfcmVzcG9uc2UoY29ubiwgc3AtPmhk ci5zZXJpYWwsIDAsIHNwLT5oZHIuY2tzdW0sIHJlc3BfdG9rZW5fbGVuKTsKLSAKLS0Jb2Zmc2V0 CSs9IHhkcl9yb3VuZF91cCh0b2tlbl9sZW4pOwotLQlsZW4JLT0geGRyX3JvdW5kX3VwKHRva2Vu X2xlbik7Ci0rCWJ1ZmZlcgkrPSB4ZHJfcm91bmRfdXAocmVzcF90b2tlbl9sZW4pOwotKwlsZW4J LT0geGRyX3JvdW5kX3VwKHJlc3BfdG9rZW5fbGVuKTsKLSAKLS0JaWYgKHNrYl9jb3B5X2JpdHMo c2tiLCBvZmZzZXQsICZ4YXV0aF9sZW4sIHNpemVvZih4YXV0aF9sZW4pKSA8IDApCi0tCQlnb3Rv IHNob3J0X3BhY2tldDsKLS0Jb2Zmc2V0CSs9IHNpemVvZih4YXV0aF9sZW4pOwotKwl4YXV0aF9s ZW4gPSAqKF9fYmUzMiAqKWJ1ZmZlcjsKLSsJYnVmZmVyCSs9IHNpemVvZih4YXV0aF9sZW4pOwot IAlsZW4JLT0gc2l6ZW9mKHhhdXRoX2xlbik7Ci0gCi0tCWF1dGhfb2Zmc2V0CT0gb2Zmc2V0Owot KwlhdXRoCQk9IGJ1ZmZlcjsKLSAJYXV0aF9sZW4JPSBudG9obCh4YXV0aF9sZW4pOwotIAlpZiAo YXV0aF9sZW4gPiBsZW4pCi0gCQlnb3RvIHNob3J0X3BhY2tldDsKLUBAIC0xMjQxLDcgKzEyMTUs NyBAQCBzdGF0aWMgaW50IHJ4Z2tfdmVyaWZ5X3Jlc3BvbnNlKHN0cnVjdCByeHJwY19jb25uZWN0 aW9uICpjb25uLAotIAkgKiB0byB0aGUgYXBwIHRvIGRlYWwgd2l0aCAtIHdoaWNoIG1pZ2h0IG1l YW4gYSByb3VuZCB0cmlwIHRvCi0gCSAqIHVzZXJzcGFjZS4KLSAJICovCi0tCXJldCA9IHJ4Z2tf ZXh0cmFjdF90b2tlbihjb25uLCBza2IsIHRva2VuX29mZnNldCwgdG9rZW5fbGVuLCAma2V5KTsK LSsJcmV0ID0gcnhna19leHRyYWN0X3Rva2VuKGNvbm4sIHNrYiwgcmVzcF90b2tlbiwgcmVzcF90 b2tlbl9sZW4sICZrZXkpOwotIAlpZiAocmV0IDwgMCkKLSAJCWdvdG8gb3V0OwotIAotQEAgLTEy NTUsNyArMTIyOSw3IEBAIHN0YXRpYyBpbnQgcnhna192ZXJpZnlfcmVzcG9uc2Uoc3RydWN0IHJ4 cnBjX2Nvbm5lY3Rpb24gKmNvbm4sCi0gCSAqLwotIAl0b2tlbiA9IGtleS0+cGF5bG9hZC5kYXRh WzBdOwotIAljb25uLT5zZWN1cml0eV9sZXZlbCA9IHRva2VuLT5yeGdrLT5sZXZlbDsKLS0JY29u bi0+cnhnay5zdGFydF90aW1lID0gX19iZTY0X3RvX2NwdShyaGRyLnN0YXJ0X3RpbWUpOwotKwlj b25uLT5yeGdrLnN0YXJ0X3RpbWUgPSBfX2JlNjRfdG9fY3B1KHJoZHItPnN0YXJ0X3RpbWUpOwot IAotIAlnayA9IHJ4Z2tfZ2VuZXJhdGVfdHJhbnNwb3J0X2tleShjb25uLCB0b2tlbi0+cnhnaywg c3AtPmhkci5ja3N1bSwgR0ZQX05PRlMpOwotIAlpZiAoSVNfRVJSKGdrKSkgewotQEAgLTEyNjUs MTggKzEyMzksMTggQEAgc3RhdGljIGludCByeGdrX3ZlcmlmeV9yZXNwb25zZShzdHJ1Y3Qgcnhy cGNfY29ubmVjdGlvbiAqY29ubiwKLSAKLSAJa3JiNSA9IGdrLT5rcmI1OwotIAotLQl0cmFjZV9y eHJwY19yeF9yZXNwb25zZShjb25uLCBzcC0+aGRyLnNlcmlhbCwga3JiNS0+ZXR5cGUsIHNwLT5o ZHIuY2tzdW0sIHRva2VuX2xlbik7Ci0rCXRyYWNlX3J4cnBjX3J4X3Jlc3BvbnNlKGNvbm4sIHNw LT5oZHIuc2VyaWFsLCBrcmI1LT5ldHlwZSwgc3AtPmhkci5ja3N1bSwKLSsJCQkJcmVzcF90b2tl bl9sZW4pOwotIAotIAkvKiBEZWNyeXB0LCBwYXJzZSBhbmQgdmVyaWZ5IHRoZSBhdXRoZW50aWNh dG9yLiAqLwotLQlyZXQgPSByeGdrX2RlY3J5cHRfc2tiKGtyYjUsIGdrLT5yZXNwX2VuYywgc2ti LAotLQkJCSAgICAgICAmYXV0aF9vZmZzZXQsICZhdXRoX2xlbiwgJmVjKTsKLSsJcmV0ID0gcnhn a19kZWNyeXB0KGtyYjUsIGdrLT5yZXNwX2VuYywgJmF1dGgsICZhdXRoX2xlbiwgJmVjKTsKLSAJ aWYgKHJldCA8IDApIHsKLSAJCXJ4cnBjX2Fib3J0X2Nvbm4oY29ubiwgc2tiLCBSWEdLX1NFQUxF RElOQ09OLCByZXQsCi0gCQkJCSByeGdrX2Fib3J0X3Jlc3BfYXV0aF9kZWMpOwotIAkJZ290byBv dXRfZ2s7Ci0gCX0KLSAKLS0JcmV0ID0gcnhna192ZXJpZnlfYXV0aGVudGljYXRvcihjb25uLCBr cmI1LCBza2IsIGF1dGhfb2Zmc2V0LCBhdXRoX2xlbik7Ci0rCXJldCA9IHJ4Z2tfdmVyaWZ5X2F1 dGhlbnRpY2F0b3IoY29ubiwga3JiNSwgc2tiLCBhdXRoLCBhdXRoX2xlbik7Ci0gCWlmIChyZXQg PCAwKQotIAkJZ290byBvdXRfZ2s7Ci0gCi1kaWZmIC0tZ2l0IGEvbmV0L3J4cnBjL3J4Z2tfYXBw LmMgYi9uZXQvcnhycGMvcnhna19hcHAuYwotaW5kZXggMGVmMmEyOWViNjk1Li4yMDBhMzAwNjRm YWUgMTAwNjQ0Ci0tLS0gYS9uZXQvcnhycGMvcnhna19hcHAuYwotKysrIGIvbmV0L3J4cnBjL3J4 Z2tfYXBwLmMKLUBAIC00MCw3ICs0MCw3IEBACi0gICogfTsKLSAgKi8KLSBpbnQgcnhna195ZnNf ZGVjb2RlX3RpY2tldChzdHJ1Y3QgcnhycGNfY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IHNrX2J1 ZmYgKnNrYiwKLS0JCQkgICB1bnNpZ25lZCBpbnQgdGlja2V0X29mZnNldCwgdW5zaWduZWQgaW50 IHRpY2tldF9sZW4sCi0rCQkJICAgdm9pZCAqYnVmZmVyLCB1bnNpZ25lZCBpbnQgdGlja2V0X2xl biwKLSAJCQkgICBzdHJ1Y3Qga2V5ICoqX2tleSkKLSB7Ci0gCXN0cnVjdCByeHJwY19rZXlfdG9r ZW4gKnRva2VuOwotQEAgLTQ5LDcgKzQ5LDcgQEAgaW50IHJ4Z2tfeWZzX2RlY29kZV90aWNrZXQo c3RydWN0IHJ4cnBjX2Nvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBza19idWZmICpza2IsCi0gCXNp emVfdCBwcmVfdGlja2V0X2xlbiwgcGF5bG9hZF9sZW47Ci0gCXVuc2lnbmVkIGludCBrbGVuLCBl bmN0eXBlOwotIAl2b2lkICpwYXlsb2FkLCAqdGlja2V0OwotLQlfX2JlMzIgKnQsICpwLCAqcSwg dG1wWzJdOwotKwlfX2JlMzIgKnQsICpwLCAqcSwgKnRtcDsKLSAJaW50IHJldDsKLSAKLSAJX2Vu dGVyKCIiKTsKLUBAIC01OSwxMCArNTksNyBAQCBpbnQgcnhna195ZnNfZGVjb2RlX3RpY2tldChz dHJ1Y3QgcnhycGNfY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKLSAJCQkJ CXJ4Z2tfYWJvcnRfcmVzcF9zaG9ydF95ZnNfdGt0KTsKLSAKLSAJLyogR2V0IHRoZSBzZXNzaW9u IGtleSBsZW5ndGggKi8KLS0JcmV0ID0gc2tiX2NvcHlfYml0cyhza2IsIHRpY2tldF9vZmZzZXQs IHRtcCwgc2l6ZW9mKHRtcCkpOwotLQlpZiAocmV0IDwgMCkKLS0JCXJldHVybiByeHJwY19hYm9y dF9jb25uKGNvbm4sIHNrYiwgUlhHS19JTkNPTlNJU1RFTkNZLCAtRVBST1RPLAotLQkJCQkJcnhn a19hYm9ydF9yZXNwX3Nob3J0X3lmc19rbGVuKTsKLSsJdG1wID0gYnVmZmVyOwotIAllbmN0eXBl ID0gbnRvaGwodG1wWzBdKTsKLSAJa2xlbiA9IG50b2hsKHRtcFsxXSk7Ci0gCi1AQCAtODQsMTIg KzgxLDcgQEAgaW50IHJ4Z2tfeWZzX2RlY29kZV90aWNrZXQoc3RydWN0IHJ4cnBjX2Nvbm5lY3Rp b24gKmNvbm4sIHN0cnVjdCBza19idWZmICpza2IsCi0gCSAqIGl0LgotIAkgKi8KLSAJdGlja2V0 ID0gcGF5bG9hZCArIHByZV90aWNrZXRfbGVuOwotLQlyZXQgPSBza2JfY29weV9iaXRzKHNrYiwg dGlja2V0X29mZnNldCwgdGlja2V0LCB0aWNrZXRfbGVuKTsKLS0JaWYgKHJldCA8IDApIHsKLS0J CXJldCA9IHJ4cnBjX2Fib3J0X2Nvbm4oY29ubiwgc2tiLCBSWEdLX0lOQ09OU0lTVEVOQ1ksIC1F UFJPVE8sCi0tCQkJCSAgICAgICByeGdrX2Fib3J0X3Jlc3Bfc2hvcnRfeWZzX3RrdCk7Ci0tCQln b3RvIGVycm9yOwotLQl9Ci0rCW1lbWNweSh0aWNrZXQsIGJ1ZmZlciwgdGlja2V0X2xlbik7Ci0g Ci0gCS8qIEZpbGwgb3V0IHRoZSBmb3JtIGhlYWRlci4gKi8KLSAJcCA9IHBheWxvYWQ7Ci1AQCAt MTMxLDcgKzEyMyw3IEBAIGludCByeGdrX3lmc19kZWNvZGVfdGlja2V0KHN0cnVjdCByeHJwY19j b25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotIAkJZ290byBlcnJvcjsKLSAJ fQotIAotLQkvKiBUaWNrZXQgcmVhZCBpbiB3aXRoIHNrYl9jb3B5X2JpdHMgYWJvdmUgKi8KLSsJ LyogVGlja2V0IGFwcGVuZGVkIGFib3ZlLiAqLwotIAlxICs9IHhkcl9yb3VuZF91cCh0aWNrZXRf bGVuKSAvIDQ7Ci0gCWlmIChXQVJOX09OKCh1bnNpZ25lZCBsb25nKXEgLSAodW5zaWduZWQgbG9u ZylwYXlsb2FkICE9IHBheWxvYWRfbGVuKSkgewotIAkJcmV0ID0gLUVJTzsKLUBAIC0xODIsMTQg KzE3NCwxNSBAQCBpbnQgcnhna195ZnNfZGVjb2RlX3RpY2tldChzdHJ1Y3QgcnhycGNfY29ubmVj dGlvbiAqY29ubiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKLSAgKiBbdG9vbHMuaWV0Zi5vcmcvaHRt bC9kcmFmdC13aWxraW5zb24tYWZzMy1yeGdrLWFmcy0wOCBzZWMgNi4xXQotICAqLwotIGludCBy eGdrX2V4dHJhY3RfdG9rZW4oc3RydWN0IHJ4cnBjX2Nvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBz a19idWZmICpza2IsCi0tCQkgICAgICAgdW5zaWduZWQgaW50IHRva2VuX29mZnNldCwgdW5zaWdu ZWQgaW50IHRva2VuX2xlbiwKLSsJCSAgICAgICB2b2lkICp0b2tlbiwgdW5zaWduZWQgaW50IHRv a2VuX2xlbiwKLSAJCSAgICAgICBzdHJ1Y3Qga2V5ICoqX2tleSkKLSB7Ci0gCWNvbnN0IHN0cnVj dCBrcmI1X2VuY3R5cGUgKmtyYjU7Ci0gCWNvbnN0IHN0cnVjdCBrcmI1X2J1ZmZlciAqc2VydmVy X3NlY3JldDsKLSAJc3RydWN0IGNyeXB0b19hZWFkICp0b2tlbl9lbmMgPSBOVUxMOwotIAlzdHJ1 Y3Qga2V5ICpzZXJ2ZXJfa2V5OwotLQl1bnNpZ25lZCBpbnQgdGlja2V0X29mZnNldCwgdGlja2V0 X2xlbjsKLSsJdW5zaWduZWQgaW50IHRpY2tldF9sZW47Ci0rCXZvaWQgKnRpY2tldDsKLSAJdTMy IGt2bm8sIGVuY3R5cGU7Ci0gCWludCByZXQsIGVjID0gMDsKLSAKLUBAIC0xOTcsMjQgKzE5MCwy MyBAQCBpbnQgcnhna19leHRyYWN0X3Rva2VuKHN0cnVjdCByeHJwY19jb25uZWN0aW9uICpjb25u LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotIAkJX19iZTMyIGt2bm87Ci0gCQlfX2JlMzIgZW5jdHlw ZTsKLSAJCV9fYmUzMiB0b2tlbl9sZW47Ci0tCX0gY29udGFpbmVyOwotKwl9ICpjb250YWluZXI7 Ci0gCi0tCWlmICh0b2tlbl9sZW4gPCBzaXplb2YoY29udGFpbmVyKSkKLSsJaWYgKHRva2VuX2xl biA8IHNpemVvZigqY29udGFpbmVyKSkKLSAJCWdvdG8gc2hvcnRfcGFja2V0OwotIAotIAkvKiBE ZWNvZGUgdGhlIFJYR0tfVG9rZW5Db250YWluZXIgb2JqZWN0LiAgVGhpcyB0ZWxscyB1cyB3aGlj aCBzZXJ2ZXIKLSAJICoga2V5IHdlIHNob3VsZCBiZSB1c2luZy4gIFdlIGNhbiB0aGVuIGZldGNo IHRoZSBrZXksIGdldCB0aGUgc2VjcmV0Ci0gCSAqIGFuZCBzZXQgdXAgdGhlIGNyeXB0byB0byBl eHRyYWN0IHRoZSB0b2tlbi4KLSAJICovCi0tCWlmIChza2JfY29weV9iaXRzKHNrYiwgdG9rZW5f b2Zmc2V0LCAmY29udGFpbmVyLCBzaXplb2YoY29udGFpbmVyKSkgPCAwKQotLQkJZ290byBzaG9y dF9wYWNrZXQ7Ci0rCWNvbnRhaW5lciA9IHRva2VuOwotKwl0b2tlbiArPSBzaXplb2YoKmNvbnRh aW5lcik7Ci0gCi0tCWt2bm8JCT0gbnRvaGwoY29udGFpbmVyLmt2bm8pOwotLQllbmN0eXBlCQk9 IG50b2hsKGNvbnRhaW5lci5lbmN0eXBlKTsKLS0JdGlja2V0X2xlbgk9IG50b2hsKGNvbnRhaW5l ci50b2tlbl9sZW4pOwotLQl0aWNrZXRfb2Zmc2V0CT0gdG9rZW5fb2Zmc2V0ICsgc2l6ZW9mKGNv bnRhaW5lcik7Ci0rCWt2bm8JCT0gbnRvaGwoY29udGFpbmVyLT5rdm5vKTsKLSsJZW5jdHlwZQkJ PSBudG9obChjb250YWluZXItPmVuY3R5cGUpOwotKwl0aWNrZXRfbGVuCT0gbnRvaGwoY29udGFp bmVyLT50b2tlbl9sZW4pOwotIAotLQlpZiAodGlja2V0X2xlbiA+IHhkcl9yb3VuZF9kb3duKHRv a2VuX2xlbiAtIHNpemVvZihjb250YWluZXIpKSkKLSsJaWYgKHRpY2tldF9sZW4gPiB4ZHJfcm91 bmRfZG93bih0b2tlbl9sZW4gLSBzaXplb2YoKmNvbnRhaW5lcikpKQotIAkJZ290byBzaG9ydF9w YWNrZXQ7Ci0gCi0gCV9kZWJ1ZygiS1ZOTyAldSIsIGt2bm8pOwotQEAgLTIzNyw4ICsyMjksOCBA QCBpbnQgcnhna19leHRyYWN0X3Rva2VuKHN0cnVjdCByeHJwY19jb25uZWN0aW9uICpjb25uLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiLAotIAkgKiBnYWluIGFjY2VzcyB0byBLMCwgZnJvbSB3aGljaCB3 ZSBjYW4gZGVyaXZlIHRoZSB0cmFuc3BvcnQga2V5IGFuZAotIAkgKiB0aGVuY2UgZGVjb2RlIHRo ZSBhdXRoZW50aWNhdG9yLgotIAkgKi8KLS0JcmV0ID0gcnhna19kZWNyeXB0X3NrYihrcmI1LCB0 b2tlbl9lbmMsIHNrYiwKLS0JCQkgICAgICAgJnRpY2tldF9vZmZzZXQsICZ0aWNrZXRfbGVuLCAm ZWMpOwotKwl0aWNrZXQgPSB0b2tlbjsKLSsJcmV0ID0gcnhna19kZWNyeXB0KGtyYjUsIHRva2Vu X2VuYywgJnRpY2tldCwgJnRpY2tldF9sZW4sICZlYyk7Ci0gCWNyeXB0b19mcmVlX2FlYWQodG9r ZW5fZW5jKTsKLSAJdG9rZW5fZW5jID0gTlVMTDsKLSAJaWYgKHJldCA8IDApIHsKLUBAIC0yNDgs NyArMjQwLDcgQEAgaW50IHJ4Z2tfZXh0cmFjdF90b2tlbihzdHJ1Y3QgcnhycGNfY29ubmVjdGlv biAqY29ubiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKLSAJCXJldHVybiByZXQ7Ci0gCX0KLSAKLS0J cmV0ID0gY29ubi0+c2VjdXJpdHktPmRlZmF1bHRfZGVjb2RlX3RpY2tldChjb25uLCBza2IsIHRp Y2tldF9vZmZzZXQsCi0rCXJldCA9IGNvbm4tPnNlY3VyaXR5LT5kZWZhdWx0X2RlY29kZV90aWNr ZXQoY29ubiwgc2tiLCB0aWNrZXQsCi0gCQkJCQkJICAgIHRpY2tldF9sZW4sIF9rZXkpOwotIAlp ZiAocmV0IDwgMCkKLSAJCWdvdG8gY2FudF9nZXRfdG9rZW47Ci1kaWZmIC0tZ2l0IGEvbmV0L3J4 cnBjL3J4Z2tfY29tbW9uLmggYi9uZXQvcnhycGMvcnhna19jb21tb24uaAotaW5kZXggMWUyNTdk N2FiOGVjLi4zZGVlZDU4NjNmNWEgMTAwNjQ0Ci0tLS0gYS9uZXQvcnhycGMvcnhna19jb21tb24u aAotKysrIGIvbmV0L3J4cnBjL3J4Z2tfY29tbW9uLmgKLUBAIC00MSwxMCArNDEsMTAgQEAgc3Ry dWN0IHJ4Z2tfY29udGV4dCB7Ci0gICogcnhna19hcHAuYwotICAqLwotIGludCByeGdrX3lmc19k ZWNvZGVfdGlja2V0KHN0cnVjdCByeHJwY19jb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLAotLQkJCSAgIHVuc2lnbmVkIGludCB0aWNrZXRfb2Zmc2V0LCB1bnNpZ25lZCBpbnQg dGlja2V0X2xlbiwKLSsJCQkgICB2b2lkICp0aWNrZXQsIHVuc2lnbmVkIGludCB0aWNrZXRfbGVu LAotIAkJCSAgIHN0cnVjdCBrZXkgKipfa2V5KTsKLSBpbnQgcnhna19leHRyYWN0X3Rva2VuKHN0 cnVjdCByeHJwY19jb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotLQkJICAg ICAgIHVuc2lnbmVkIGludCB0b2tlbl9vZmZzZXQsIHVuc2lnbmVkIGludCB0b2tlbl9sZW4sCi0r CQkgICAgICAgdm9pZCAqdG9rZW4sIHVuc2lnbmVkIGludCB0b2tlbl9sZW4sCi0gCQkgICAgICAg c3RydWN0IGtleSAqKl9rZXkpOwotIAotIC8qCi1AQCAtNjIsMzEgKzYyLDMwIEBAIGludCByeGdr X3NldF91cF90b2tlbl9jaXBoZXIoY29uc3Qgc3RydWN0IGtyYjVfYnVmZmVyICpzZXJ2ZXJfa2V5 LAotIAkJCSAgICAgZ2ZwX3QgZ2ZwKTsKLSAKLSAvKgotLSAqIEFwcGx5IGRlY3J5cHRpb24gYW5k IGNoZWNrc3VtbWluZyBmdW5jdGlvbnMgdG8gcGFydCBvZiBhbiBza2J1ZmYuICBUaGUKLS0gKiBv ZmZzZXQgYW5kIGxlbmd0aCBhcmUgdXBkYXRlZCB0byByZWZsZWN0IHRoZSBhY3R1YWwgY29udGVu dCBvZiB0aGUgZW5jcnlwdGVkCi0rICogQXBwbHkgZGVjcnlwdGlvbiBhbmQgY2hlY2tzdW1taW5n IGZ1bmN0aW9ucyBhIGZsYXQgZGF0YSBidWZmZXIuICBUaGUgZGF0YQotKyAqIHBvaW50IGFuZCBs ZW5ndGggYXJlIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgYWN0dWFsIGNvbnRlbnQgb2YgdGhlIGVu Y3J5cHRlZAotICAqIHJlZ2lvbi4KLSAgKi8KLS1zdGF0aWMgaW5saW5lCi0taW50IHJ4Z2tfZGVj cnlwdF9za2IoY29uc3Qgc3RydWN0IGtyYjVfZW5jdHlwZSAqa3JiNSwKLS0JCSAgICAgc3RydWN0 IGNyeXB0b19hZWFkICphZWFkLAotLQkJICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotLQkJICAg ICB1bnNpZ25lZCBpbnQgKl9vZmZzZXQsIHVuc2lnbmVkIGludCAqX2xlbiwKLS0JCSAgICAgaW50 ICpfZXJyb3JfY29kZSkKLStzdGF0aWMgaW5saW5lIGludCByeGdrX2RlY3J5cHQoY29uc3Qgc3Ry dWN0IGtyYjVfZW5jdHlwZSAqa3JiNSwKLSsJCQkgICAgICAgc3RydWN0IGNyeXB0b19hZWFkICph ZWFkLAotKwkJCSAgICAgICB2b2lkICoqX2RhdGEsIHVuc2lnbmVkIGludCAqX2xlbiwKLSsJCQkg ICAgICAgaW50ICpfZXJyb3JfY29kZSkKLSB7Ci0tCXN0cnVjdCBzY2F0dGVybGlzdCBzZ1sxNl07 Ci0rCXN0cnVjdCBzY2F0dGVybGlzdCBzZ1sxXTsKLSAJc2l6ZV90IG9mZnNldCA9IDAsIGxlbiA9 ICpfbGVuOwotLQlpbnQgbnJfc2csIHJldDsKLSsJaW50IHJldDsKLSAKLS0Jc2dfaW5pdF90YWJs ZShzZywgQVJSQVlfU0laRShzZykpOwotLQlucl9zZyA9IHNrYl90b19zZ3ZlYyhza2IsIHNnLCAq X29mZnNldCwgbGVuKTsKLS0JaWYgKHVubGlrZWx5KG5yX3NnIDwgMCkpCi0tCQlyZXR1cm4gbnJf c2c7Ci0rCXNnX2luaXRfb25lKHNnLCAqX2RhdGEsIGxlbik7Ci0gCi0tCXJldCA9IGNyeXB0b19r cmI1X2RlY3J5cHQoa3JiNSwgYWVhZCwgc2csIG5yX3NnLAotLQkJCQkgICZvZmZzZXQsICZsZW4p OwotKwlyZXQgPSBjcnlwdG9fa3JiNV9kZWNyeXB0KGtyYjUsIGFlYWQsIHNnLCAxLCAmb2Zmc2V0 LCAmbGVuKTsKLSAJc3dpdGNoIChyZXQpIHsKLSAJY2FzZSAwOgotLQkJKl9vZmZzZXQgKz0gb2Zm c2V0OwotKwkJaWYgKG9mZnNldCAmIDMpIHsKLSsJCQkqX2Vycm9yX2NvZGUgPSBSWEdLX0lOQ09O U0lTVEVOQ1k7Ci0rCQkJcmV0ID0gLUVQUk9UTzsKLSsJCQlicmVhazsKLSsJCX0KLSsJCSpfZGF0 YSArPSBvZmZzZXQ7Ci0gCQkqX2xlbiA9IGxlbjsKLSAJCWJyZWFrOwotIAljYXNlIC1FQkFETVNH OiAvKiBDaGVja3N1bSBtaXNtYXRjaC4gKi8KLUBAIC0xMDYsMzEgKzEwNSwyNiBAQCBpbnQgcnhn a19kZWNyeXB0X3NrYihjb25zdCBzdHJ1Y3Qga3JiNV9lbmN0eXBlICprcmI1LAotIH0KLSAKLSAv KgotLSAqIENoZWNrIHRoZSBNSUMgb24gYSByZWdpb24gb2YgYW4gc2tidWZmLiAgVGhlIG9mZnNl dCBhbmQgbGVuZ3RoIGFyZSB1cGRhdGVkCi0tICogdG8gcmVmbGVjdCB0aGUgYWN0dWFsIGNvbnRl bnQgb2YgdGhlIHNlY3VyZSByZWdpb24uCi0rICogQ2hlY2sgdGhlIE1JQyBvbiBhIGZsYXQgYnVm ZmVyLiAgVGhlIGRhdGEgcG9pbnRlciBhbmQgbGVuZ3RoIGFyZSB1cGRhdGVkIHRvCi0rICogcmVm bGVjdCB0aGUgYWN0dWFsIGNvbnRlbnQgb2YgdGhlIHNlY3VyZSByZWdpb24uCi0gICovCi0gc3Rh dGljIGlubGluZQotLWludCByeGdrX3ZlcmlmeV9taWNfc2tiKGNvbnN0IHN0cnVjdCBrcmI1X2Vu Y3R5cGUgKmtyYjUsCi0tCQkJc3RydWN0IGNyeXB0b19zaGFzaCAqc2hhc2gsCi0tCQkJY29uc3Qg c3RydWN0IGtyYjVfYnVmZmVyICptZXRhZGF0YSwKLS0JCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAot LQkJCXVuc2lnbmVkIGludCAqX29mZnNldCwgdW5zaWduZWQgaW50ICpfbGVuLAotLQkJCXUzMiAq X2Vycm9yX2NvZGUpCi0raW50IHJ4Z2tfdmVyaWZ5X21pYyhjb25zdCBzdHJ1Y3Qga3JiNV9lbmN0 eXBlICprcmI1LAotKwkJICAgIHN0cnVjdCBjcnlwdG9fc2hhc2ggKnNoYXNoLAotKwkJICAgIGNv bnN0IHN0cnVjdCBrcmI1X2J1ZmZlciAqbWV0YWRhdGEsCi0rCQkgICAgdm9pZCAqKl9kYXRhLCB1 bnNpZ25lZCBpbnQgKl9sZW4sCi0rCQkgICAgdTMyICpfZXJyb3JfY29kZSkKLSB7Ci0tCXN0cnVj dCBzY2F0dGVybGlzdCBzZ1sxNl07Ci0rCXN0cnVjdCBzY2F0dGVybGlzdCBzZ1sxXTsKLSAJc2l6 ZV90IG9mZnNldCA9IDAsIGxlbiA9ICpfbGVuOwotLQlpbnQgbnJfc2csIHJldDsKLSsJaW50IHJl dDsKLSAKLS0Jc2dfaW5pdF90YWJsZShzZywgQVJSQVlfU0laRShzZykpOwotLQlucl9zZyA9IHNr Yl90b19zZ3ZlYyhza2IsIHNnLCAqX29mZnNldCwgbGVuKTsKLS0JaWYgKHVubGlrZWx5KG5yX3Nn IDwgMCkpCi0tCQlyZXR1cm4gbnJfc2c7Ci0rCXNnX2luaXRfb25lKHNnLCAqX2RhdGEsIGxlbik7 Ci0gCi0tCXJldCA9IGNyeXB0b19rcmI1X3ZlcmlmeV9taWMoa3JiNSwgc2hhc2gsIG1ldGFkYXRh LCBzZywgbnJfc2csCi0tCQkJCSAgICAgJm9mZnNldCwgJmxlbik7Ci0rCXJldCA9IGNyeXB0b19r cmI1X3ZlcmlmeV9taWMoa3JiNSwgc2hhc2gsIG1ldGFkYXRhLCBzZywgMSwgJm9mZnNldCwgJmxl bik7Ci0gCXN3aXRjaCAocmV0KSB7Ci0gCWNhc2UgMDoKLS0JCSpfb2Zmc2V0ICs9IG9mZnNldDsK LSsJCSpfZGF0YSArPSBvZmZzZXQ7Ci0gCQkqX2xlbiA9IGxlbjsKLSAJCWJyZWFrOwotIAljYXNl IC1FQkFETVNHOiAvKiBDaGVja3N1bSBtaXNtYXRjaCAqLwotZGlmZiAtLWdpdCBhL25ldC9yeHJw Yy9yeGthZC5jIGIvbmV0L3J4cnBjL3J4a2FkLmMKLWluZGV4IGNiYTc5MzU5NzdmMC4uNmZiZDg4 MzQwMWFjIDEwMDY0NAotLS0tIGEvbmV0L3J4cnBjL3J4a2FkLmMKLSsrKyBiL25ldC9yeHJwYy9y eGthZC5jCi1AQCAtNDMwLDI3ICs0MzAsMjUgQEAgc3RhdGljIGludCByeGthZF92ZXJpZnlfcGFj a2V0XzEoc3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwsIHN0cnVjdCBza19idWZmICpza2IsCi0gCQkJ CSByeHJwY19zZXFfdCBzZXEsCi0gCQkJCSBzdHJ1Y3Qgc2tjaXBoZXJfcmVxdWVzdCAqcmVxKQot IHsKLS0Jc3RydWN0IHJ4a2FkX2xldmVsMV9oZHIgc2VjaGRyOwotKwlzdHJ1Y3QgcnhrYWRfbGV2 ZWwxX2hkciAqc2VjaGRyOwotIAlzdHJ1Y3QgcnhycGNfc2tiX3ByaXYgKnNwID0gcnhycGNfc2ti KHNrYik7Ci0gCXN0cnVjdCByeHJwY19jcnlwdCBpdjsKLS0Jc3RydWN0IHNjYXR0ZXJsaXN0IHNn WzE2XTsKLS0JdTMyIGRhdGFfc2l6ZSwgYnVmOwotKwlzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2dbMV07 Ci0rCXZvaWQgKmRhdGEgPSBjYWxsLT5yeF9kZWNfYnVmZmVyOwotKwl1MzIgbGVuID0gc3AtPmxl biwgZGF0YV9zaXplLCBidWY7Ci0gCXUxNiBjaGVjazsKLSAJaW50IHJldDsKLSAKLSAJX2VudGVy KCIiKTsKLSAKLS0JaWYgKHNwLT5sZW4gPCA4KQotKwlpZiAobGVuIDwgOCkKLSAJCXJldHVybiBy eHJwY19hYm9ydF9lcHJvdG8oY2FsbCwgc2tiLCBSWEtBRFNFQUxFRElOQ09OLAotIAkJCQkJICBy eGthZF9hYm9ydF8xX3Nob3J0X2hlYWRlcik7Ci0gCi0gCS8qIERlY3J5cHQgdGhlIHNrYnVmZiBp bi1wbGFjZS4gIFRPRE86IFdlIHJlYWxseSB3YW50IHRvIGRlY3J5cHQKLSAJICogZGlyZWN0bHkg aW50byB0aGUgdGFyZ2V0IGJ1ZmZlci4KLSAJICovCi0tCXNnX2luaXRfdGFibGUoc2csIEFSUkFZ X1NJWkUoc2cpKTsKLS0JcmV0ID0gc2tiX3RvX3NndmVjKHNrYiwgc2csIHNwLT5vZmZzZXQsIDgp OwotLQlpZiAodW5saWtlbHkocmV0IDwgMCkpCi0tCQlyZXR1cm4gcmV0OwotKwlzZ19pbml0X29u ZShzZywgZGF0YSwgbGVuKTsKLSAKLSAJLyogc3RhcnQgdGhlIGRlY3J5cHRpb24gYWZyZXNoICov Ci0gCW1lbXNldCgmaXYsIDAsIHNpemVvZihpdikpOwotQEAgLTQ2NCwxMyArNDYyLDExIEBAIHN0 YXRpYyBpbnQgcnhrYWRfdmVyaWZ5X3BhY2tldF8xKHN0cnVjdCByeHJwY19jYWxsICpjYWxsLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiLAotIAkJcmV0dXJuIHJldDsKLSAKLSAJLyogRXh0cmFjdCB0aGUg ZGVjcnlwdGVkIHBhY2tldCBsZW5ndGggKi8KLS0JaWYgKHNrYl9jb3B5X2JpdHMoc2tiLCBzcC0+ b2Zmc2V0LCAmc2VjaGRyLCBzaXplb2Yoc2VjaGRyKSkgPCAwKQotLQkJcmV0dXJuIHJ4cnBjX2Fi b3J0X2Vwcm90byhjYWxsLCBza2IsIFJYS0FEREFUQUxFTiwKLS0JCQkJCSAgcnhrYWRfYWJvcnRf MV9zaG9ydF9lbmNkYXRhKTsKLS0Jc3AtPm9mZnNldCArPSBzaXplb2Yoc2VjaGRyKTsKLS0Jc3At PmxlbiAgICAtPSBzaXplb2Yoc2VjaGRyKTsKLSsJc2VjaGRyID0gZGF0YTsKLSsJY2FsbC0+cnhf ZGVjX29mZnNldCA9IHNpemVvZigqc2VjaGRyKTsKLSsJbGVuIC09IHNpemVvZigqc2VjaGRyKTsK LSAKLS0JYnVmID0gbnRvaGwoc2VjaGRyLmRhdGFfc2l6ZSk7Ci0rCWJ1ZiA9IG50b2hsKHNlY2hk ci0+ZGF0YV9zaXplKTsKLSAJZGF0YV9zaXplID0gYnVmICYgMHhmZmZmOwotIAotIAljaGVjayA9 IGJ1ZiA+PiAxNjsKLUBAIC00NzksMTAgKzQ3NSwxMCBAQCBzdGF0aWMgaW50IHJ4a2FkX3Zlcmlm eV9wYWNrZXRfMShzdHJ1Y3QgcnhycGNfY2FsbCAqY2FsbCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwK LSAJaWYgKGNoZWNrICE9IDApCi0gCQlyZXR1cm4gcnhycGNfYWJvcnRfZXByb3RvKGNhbGwsIHNr YiwgUlhLQURTRUFMRURJTkNPTiwKLSAJCQkJCSAgcnhrYWRfYWJvcnRfMV9zaG9ydF9jaGVjayk7 Ci0tCWlmIChkYXRhX3NpemUgPiBzcC0+bGVuKQotKwlpZiAoZGF0YV9zaXplID4gbGVuKQotIAkJ cmV0dXJuIHJ4cnBjX2Fib3J0X2Vwcm90byhjYWxsLCBza2IsIFJYS0FEREFUQUxFTiwKLSAJCQkJ CSAgcnhrYWRfYWJvcnRfMV9zaG9ydF9kYXRhKTsKLS0Jc3AtPmxlbiA9IGRhdGFfc2l6ZTsKLSsJ Y2FsbC0+cnhfZGVjX2xlbiA9IGRhdGFfc2l6ZTsKLSAKLSAJX2xlYXZlKCIgPSAwIFtkbGVuPSV4 XSIsIGRhdGFfc2l6ZSk7Ci0gCXJldHVybiAwOwotQEAgLTQ5Niw0MyArNDkyLDI4IEBAIHN0YXRp YyBpbnQgcnhrYWRfdmVyaWZ5X3BhY2tldF8yKHN0cnVjdCByeHJwY19jYWxsICpjYWxsLCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLAotIAkJCQkgc3RydWN0IHNrY2lwaGVyX3JlcXVlc3QgKnJlcSkKLSB7 Ci0gCWNvbnN0IHN0cnVjdCByeHJwY19rZXlfdG9rZW4gKnRva2VuOwotLQlzdHJ1Y3QgcnhrYWRf bGV2ZWwyX2hkciBzZWNoZHI7Ci0rCXN0cnVjdCByeGthZF9sZXZlbDJfaGRyICpzZWNoZHI7Ci0g CXN0cnVjdCByeHJwY19za2JfcHJpdiAqc3AgPSByeHJwY19za2Ioc2tiKTsKLSAJc3RydWN0IHJ4 cnBjX2NyeXB0IGl2OwotLQlzdHJ1Y3Qgc2NhdHRlcmxpc3QgX3NnWzRdLCAqc2c7Ci0tCXUzMiBk YXRhX3NpemUsIGJ1ZjsKLSsJc3RydWN0IHNjYXR0ZXJsaXN0IHNnWzFdOwotKwl2b2lkICpkYXRh ID0gY2FsbC0+cnhfZGVjX2J1ZmZlcjsKLSsJdTMyIGxlbiA9IHNwLT5sZW4sIGRhdGFfc2l6ZSwg YnVmOwotIAl1MTYgY2hlY2s7Ci0tCWludCBuc2csIHJldDsKLSsJaW50IHJldDsKLSAKLS0JX2Vu dGVyKCIseyVkfSIsIHNwLT5sZW4pOwotKwlfZW50ZXIoIix7JWR9IiwgbGVuKTsKLSAKLS0JaWYg KHNwLT5sZW4gPCA4KQotKwlpZiAobGVuIDwgOCkKLSAJCXJldHVybiByeHJwY19hYm9ydF9lcHJv dG8oY2FsbCwgc2tiLCBSWEtBRFNFQUxFRElOQ09OLAotIAkJCQkJICByeGthZF9hYm9ydF8yX3No b3J0X2hlYWRlcik7Ci0gCi0gCS8qIERvbid0IGxldCB0aGUgY3J5cHRvIGFsZ28gc2VlIGEgbWlz YWxpZ25lZCBsZW5ndGguICovCi0tCXNwLT5sZW4gPSByb3VuZF9kb3duKHNwLT5sZW4sIDgpOwot KwlsZW4gPSByb3VuZF9kb3duKGxlbiwgOCk7Ci0gCi0tCS8qIERlY3J5cHQgdGhlIHNrYnVmZiBp bi1wbGFjZS4gIFRPRE86IFdlIHJlYWxseSB3YW50IHRvIGRlY3J5cHQKLS0JICogZGlyZWN0bHkg aW50byB0aGUgdGFyZ2V0IGJ1ZmZlci4KLSsJLyogRGVjcnlwdCBpbiBwbGFjZSBpbiB0aGUgY2Fs bCdzIGRlY3J5cHRpb24gYnVmZmVyLiAgVE9ETzogV2UgcmVhbGx5Ci0rCSAqIHdhbnQgdG8gZGVj cnlwdCBkaXJlY3RseSBpbnRvIHRoZSB0YXJnZXQgYnVmZmVyLgotIAkgKi8KLS0Jc2cgPSBfc2c7 Ci0tCW5zZyA9IHNrYl9zaGluZm8oc2tiKS0+bnJfZnJhZ3MgKyAxOwotLQlpZiAobnNnIDw9IDQp IHsKLS0JCW5zZyA9IDQ7Ci0tCX0gZWxzZSB7Ci0tCQlzZyA9IGttYWxsb2Nfb2Jqcygqc2csIG5z ZywgR0ZQX05PSU8pOwotLQkJaWYgKCFzZykKLS0JCQlyZXR1cm4gLUVOT01FTTsKLS0JfQotLQot LQlzZ19pbml0X3RhYmxlKHNnLCBuc2cpOwotLQlyZXQgPSBza2JfdG9fc2d2ZWMoc2tiLCBzZywg c3AtPm9mZnNldCwgc3AtPmxlbik7Ci0tCWlmICh1bmxpa2VseShyZXQgPCAwKSkgewotLQkJaWYg KHNnICE9IF9zZykKLS0JCQlrZnJlZShzZyk7Ci0tCQlyZXR1cm4gcmV0OwotLQl9Ci0rCXNnX2lu aXRfb25lKHNnLCBkYXRhLCBsZW4pOwotIAotIAkvKiBkZWNyeXB0IGZyb20gdGhlIHNlc3Npb24g a2V5ICovCi0gCXRva2VuID0gY2FsbC0+Y29ubi0+a2V5LT5wYXlsb2FkLmRhdGFbMF07Ci1AQCAt NTQwLDExICs1MjEsOSBAQCBzdGF0aWMgaW50IHJ4a2FkX3ZlcmlmeV9wYWNrZXRfMihzdHJ1Y3Qg cnhycGNfY2FsbCAqY2FsbCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKLSAKLSAJc2tjaXBoZXJfcmVx dWVzdF9zZXRfc3luY190Zm0ocmVxLCBjYWxsLT5jb25uLT5yeGthZC5jaXBoZXIpOwotIAlza2Np cGhlcl9yZXF1ZXN0X3NldF9jYWxsYmFjayhyZXEsIDAsIE5VTEwsIE5VTEwpOwotLQlza2NpcGhl cl9yZXF1ZXN0X3NldF9jcnlwdChyZXEsIHNnLCBzZywgc3AtPmxlbiwgaXYueCk7Ci0rCXNrY2lw aGVyX3JlcXVlc3Rfc2V0X2NyeXB0KHJlcSwgc2csIHNnLCBsZW4sIGl2LngpOwotIAlyZXQgPSBj cnlwdG9fc2tjaXBoZXJfZGVjcnlwdChyZXEpOwotIAlza2NpcGhlcl9yZXF1ZXN0X3plcm8ocmVx KTsKLS0JaWYgKHNnICE9IF9zZykKLS0JCWtmcmVlKHNnKTsKLSAJaWYgKHJldCA8IDApIHsKLSAJ CWlmIChyZXQgPT0gLUVOT01FTSkKLSAJCQlyZXR1cm4gcmV0OwotQEAgLTU1MywxMyArNTMyLDEx IEBAIHN0YXRpYyBpbnQgcnhrYWRfdmVyaWZ5X3BhY2tldF8yKHN0cnVjdCByeHJwY19jYWxsICpj YWxsLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotIAl9Ci0gCi0gCS8qIEV4dHJhY3QgdGhlIGRlY3J5 cHRlZCBwYWNrZXQgbGVuZ3RoICovCi0tCWlmIChza2JfY29weV9iaXRzKHNrYiwgc3AtPm9mZnNl dCwgJnNlY2hkciwgc2l6ZW9mKHNlY2hkcikpIDwgMCkKLS0JCXJldHVybiByeHJwY19hYm9ydF9l cHJvdG8oY2FsbCwgc2tiLCBSWEtBRERBVEFMRU4sCi0tCQkJCQkgIHJ4a2FkX2Fib3J0XzJfc2hv cnRfbGVuKTsKLS0Jc3AtPm9mZnNldCArPSBzaXplb2Yoc2VjaGRyKTsKLS0Jc3AtPmxlbiAgICAt PSBzaXplb2Yoc2VjaGRyKTsKLSsJc2VjaGRyID0gZGF0YTsKLSsJY2FsbC0+cnhfZGVjX29mZnNl dCA9IHNpemVvZigqc2VjaGRyKTsKLSsJbGVuIC09IHNpemVvZigqc2VjaGRyKTsKLSAKLS0JYnVm ID0gbnRvaGwoc2VjaGRyLmRhdGFfc2l6ZSk7Ci0rCWJ1ZiA9IG50b2hsKHNlY2hkci0+ZGF0YV9z aXplKTsKLSAJZGF0YV9zaXplID0gYnVmICYgMHhmZmZmOwotIAotIAljaGVjayA9IGJ1ZiA+PiAx NjsKLUBAIC01NjksMTcgKzU0NiwxOCBAQCBzdGF0aWMgaW50IHJ4a2FkX3ZlcmlmeV9wYWNrZXRf MihzdHJ1Y3QgcnhycGNfY2FsbCAqY2FsbCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKLSAJCXJldHVy biByeHJwY19hYm9ydF9lcHJvdG8oY2FsbCwgc2tiLCBSWEtBRFNFQUxFRElOQ09OLAotIAkJCQkJ ICByeGthZF9hYm9ydF8yX3Nob3J0X2NoZWNrKTsKLSAKLS0JaWYgKGRhdGFfc2l6ZSA+IHNwLT5s ZW4pCi0rCWlmIChkYXRhX3NpemUgPiBsZW4pCi0gCQlyZXR1cm4gcnhycGNfYWJvcnRfZXByb3Rv KGNhbGwsIHNrYiwgUlhLQUREQVRBTEVOLAotIAkJCQkJICByeGthZF9hYm9ydF8yX3Nob3J0X2Rh dGEpOwotIAotLQlzcC0+bGVuID0gZGF0YV9zaXplOwotKwljYWxsLT5yeF9kZWNfbGVuID0gZGF0 YV9zaXplOwotIAlfbGVhdmUoIiA9IDAgW2RsZW49JXhdIiwgZGF0YV9zaXplKTsKLSAJcmV0dXJu IDA7Ci0gfQotIAotIC8qCi0tICogVmVyaWZ5IHRoZSBzZWN1cml0eSBvbiBhIHJlY2VpdmVkIHBh Y2tldCBhbmQgdGhlIHN1YnBhY2tldHMgdGhlcmVpbi4KLSsgKiBWZXJpZnkgdGhlIHNlY3VyaXR5 IG9uIGEgcmVjZWl2ZWQgKHN1YilwYWNrZXQuICBJZiB0aGUgcGFja2V0IG5lZWRzCi0rICogbW9k aWZ5aW5nIChlLmcuIGRlY3J5cHRpbmcpLCBpdCBtdXN0IGJlIGNvcGllZC4KLSAgKi8KLSBzdGF0 aWMgaW50IHJ4a2FkX3ZlcmlmeV9wYWNrZXQoc3RydWN0IHJ4cnBjX2NhbGwgKmNhbGwsIHN0cnVj dCBza19idWZmICpza2IpCi0gewotQEAgLTk4NSw3ICs5NjMsNiBAQCBzdGF0aWMgaW50IHJ4a2Fk X2RlY3J5cHRfdGlja2V0KHN0cnVjdCByeHJwY19jb25uZWN0aW9uICpjb25uLAotIAkqX2V4cGly eSA9IDA7Ci0gCi0gCUFTU0VSVChzZXJ2ZXJfa2V5LT5wYXlsb2FkLmRhdGFbMF0gIT0gTlVMTCk7 Ci0tCUFTU0VSVENNUCgodW5zaWduZWQgbG9uZykgdGlja2V0ICYgN1VMLCA9PSwgMCk7Ci0gCi0g CW1lbWNweSgmaXYsICZzZXJ2ZXJfa2V5LT5wYXlsb2FkLmRhdGFbMl0sIHNpemVvZihpdikpOwot IAotQEAgLTExMzQsMTQgKzExMTEsMTUgQEAgc3RhdGljIGludCByeGthZF9kZWNyeXB0X3Jlc3Bv bnNlKHN0cnVjdCByeHJwY19jb25uZWN0aW9uICpjb25uLAotICAqIHZlcmlmeSBhIHJlc3BvbnNl Ci0gICovCi0gc3RhdGljIGludCByeGthZF92ZXJpZnlfcmVzcG9uc2Uoc3RydWN0IHJ4cnBjX2Nv bm5lY3Rpb24gKmNvbm4sCi0tCQkJCSBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotKwkJCQkgc3RydWN0 IHNrX2J1ZmYgKnNrYiwKLSsJCQkJIHZvaWQgKmJ1ZmZlciwgdW5zaWduZWQgaW50IGxlbikKLSB7 Ci0gCXN0cnVjdCByeGthZF9yZXNwb25zZSAqcmVzcG9uc2U7Ci0gCXN0cnVjdCByeHJwY19za2Jf cHJpdiAqc3AgPSByeHJwY19za2Ioc2tiKTsKLSAJc3RydWN0IHJ4cnBjX2NyeXB0IHNlc3Npb25f a2V5OwotIAlzdHJ1Y3Qga2V5ICpzZXJ2ZXJfa2V5OwotIAl0aW1lNjRfdCBleHBpcnk7Ci0tCXZv aWQgKnRpY2tldCA9IE5VTEw7Ci0rCXZvaWQgKnRpY2tldDsKLSAJdTMyIHZlcnNpb24sIGt2bm8s IHRpY2tldF9sZW4sIGxldmVsOwotIAlfX2JlMzIgY3N1bTsKLSAJaW50IHJldCwgaTsKLUBAIC0x MTY0LDEzICsxMTQyLDggQEAgc3RhdGljIGludCByeGthZF92ZXJpZnlfcmVzcG9uc2Uoc3RydWN0 IHJ4cnBjX2Nvbm5lY3Rpb24gKmNvbm4sCi0gCQl9Ci0gCX0KLSAKLS0JcmV0ID0gLUVOT01FTTsK LS0JcmVzcG9uc2UgPSBremFsbG9jX29iaihzdHJ1Y3QgcnhrYWRfcmVzcG9uc2UsIEdGUF9OT0ZT KTsKLS0JaWYgKCFyZXNwb25zZSkKLS0JCWdvdG8gZXJyb3I7Ci0tCi0tCWlmIChza2JfY29weV9i aXRzKHNrYiwgc2l6ZW9mKHN0cnVjdCByeHJwY193aXJlX2hlYWRlciksCi0tCQkJICByZXNwb25z ZSwgc2l6ZW9mKCpyZXNwb25zZSkpIDwgMCkgewotKwlyZXNwb25zZSA9IGJ1ZmZlcjsKLSsJaWYg KGxlbiA8IHNpemVvZigqcmVzcG9uc2UpKSB7Ci0gCQlyZXQgPSByeHJwY19hYm9ydF9jb25uKGNv bm4sIHNrYiwgUlhLQURQQUNLRVRTSE9SVCwgLUVQUk9UTywKLSAJCQkJICAgICAgIHJ4a2FkX2Fi b3J0X3Jlc3Bfc2hvcnQpOwotIAkJZ290byBlcnJvcjsKLUBAIC0xMTgyLDYgKzExNTUsOSBAQCBz dGF0aWMgaW50IHJ4a2FkX3ZlcmlmeV9yZXNwb25zZShzdHJ1Y3QgcnhycGNfY29ubmVjdGlvbiAq Y29ubiwKLSAKLSAJdHJhY2VfcnhycGNfcnhfcmVzcG9uc2UoY29ubiwgc3AtPmhkci5zZXJpYWws IHZlcnNpb24sIGt2bm8sIHRpY2tldF9sZW4pOwotIAotKwlidWZmZXIJKz0gc2l6ZW9mKCpyZXNw b25zZSk7Ci0rCWxlbgktPSBzaXplb2YoKnJlc3BvbnNlKTsKLSsKLSAJaWYgKHZlcnNpb24gIT0g UlhLQURfVkVSU0lPTikgewotIAkJcmV0ID0gcnhycGNfYWJvcnRfY29ubihjb25uLCBza2IsIFJY S0FESU5DT05TSVNURU5DWSwgLUVQUk9UTywKLSAJCQkJICAgICAgIHJ4a2FkX2Fib3J0X3Jlc3Bf dmVyc2lvbik7Ci1AQCAtMTIwMSwxMyArMTE3Nyw4IEBAIHN0YXRpYyBpbnQgcnhrYWRfdmVyaWZ5 X3Jlc3BvbnNlKHN0cnVjdCByeHJwY19jb25uZWN0aW9uICpjb25uLAotIAl9Ci0gCi0gCS8qIGV4 dHJhY3QgdGhlIGtlcmJlcm9zIHRpY2tldCBhbmQgZGVjcnlwdCBhbmQgZGVjb2RlIGl0ICovCi0t CXJldCA9IC1FTk9NRU07Ci0tCXRpY2tldCA9IGttYWxsb2ModGlja2V0X2xlbiwgR0ZQX05PRlMp OwotLQlpZiAoIXRpY2tldCkKLS0JCWdvdG8gZXJyb3I7Ci0tCi0tCWlmIChza2JfY29weV9iaXRz KHNrYiwgc2l6ZW9mKHN0cnVjdCByeHJwY193aXJlX2hlYWRlcikgKyBzaXplb2YoKnJlc3BvbnNl KSwKLS0JCQkgIHRpY2tldCwgdGlja2V0X2xlbikgPCAwKSB7Ci0rCXRpY2tldCA9IGJ1ZmZlcjsK LSsJaWYgKHRpY2tldF9sZW4gPiBsZW4pIHsKLSAJCXJldCA9IHJ4cnBjX2Fib3J0X2Nvbm4oY29u biwgc2tiLCBSWEtBRFBBQ0tFVFNIT1JULCAtRVBST1RPLAotIAkJCQkgICAgICAgcnhrYWRfYWJv cnRfcmVzcF9zaG9ydF90a3QpOwotIAkJZ290byBlcnJvcjsKLUBAIC0xMjg3LDggKzEyNTgsNiBA QCBzdGF0aWMgaW50IHJ4a2FkX3ZlcmlmeV9yZXNwb25zZShzdHJ1Y3QgcnhycGNfY29ubmVjdGlv biAqY29ubiwKLSAJcmV0ID0gcnhycGNfZ2V0X3NlcnZlcl9kYXRhX2tleShjb25uLCAmc2Vzc2lv bl9rZXksIGV4cGlyeSwga3Zubyk7Ci0gCi0gZXJyb3I6Ci0tCWtmcmVlKHRpY2tldCk7Ci0tCWtm cmVlKHJlc3BvbnNlKTsKLSAJa2V5X3B1dChzZXJ2ZXJfa2V5KTsKLSAJX2xlYXZlKCIgPSAlZCIs IHJldCk7Ci0gCXJldHVybiByZXQ7CiBkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9wZWRpdC5j IGIvbmV0L3NjaGVkL2FjdF9wZWRpdC5jCiBpbmRleCBiYzIwZjA4YTI3ODkuLjFhYTk1YzM0YWQ4 NyAxMDA2NDQKIC0tLSBhL25ldC9zY2hlZC9hY3RfcGVkaXQuYwpAQCAtOTgyNiw3ICs3OTM1LDcg QEAgaW5kZXggOGQ0Njg4NmQyY2NhLi4xNGE5Y2RmZjk0MmIgMTAwNjQ0CiAgCUxTTV9IT09LX0lO SVQobG9ja2VkX2Rvd24sIGxvY2tkb3duX2lzX2xvY2tlZF9kb3duKSwKICB9OwogZGlmZiAtLWdp dCBhL3NvdW5kL3NvYy9hbWQvYWNwL2FjcC1zZHctbGVnYWN5LW1hY2guYyBiL3NvdW5kL3NvYy9h bWQvYWNwL2FjcC1zZHctbGVnYWN5LW1hY2guYwotaW5kZXggYTljOGQ5NTQ1MjgxLi4wOTdlMTkx Y2VkZGUgMTAwNjQ0CitpbmRleCBhZTk1NzljODUxMWUuLjc0NzRkYmE5N2QyNCAxMDA2NDQKIC0t LSBhL3NvdW5kL3NvYy9hbWQvYWNwL2FjcC1zZHctbGVnYWN5LW1hY2guYwogKysrIGIvc291bmQv c29jL2FtZC9hY3AvYWNwLXNkdy1sZWdhY3ktbWFjaC5jCiBAQCAtOTUsNiArOTUsMjIgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkIHNvY19zZHdfcXVpcmtfdGFibGVbXSA9IHsK CmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCA0Yjk3YmYyLi5lYWMxM2U5IDEw MDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEsMyArMSwzIEBACi1TSEE1MTIg KGxpbnV4LTcuMC4xMC50YXIueHopID0gZTRmZmI2ZTNlNzQyYjFkYjc0ZTQwYzEzNWVmNzRiYWZm MzZhNjJlOTI1YzZjNTQxYTBjMzhkYjQwZmJmMGQ5NWMxNzNhYjQ0MDVjMzk0YjI4YWMyY2M5MTdj YTE2Y2JlODRlMzU5OTIwYTMzNmIwM2EwNWI0NDQ0NjRiNTNmMjUKLVNIQTUxMiAoa2VybmVsLWFi aS1zdGFibGVsaXN0cy03LjAuMTAudGFyLnh6KSA9IGQxY2NjZjEyOGZlZDg5MTE4YTMwNzVjYTJh NjU2ODYwOTQ2ZjQzNzZlZDg2ZWYzY2YyNTNlMWRmYjI3NTNlODQzNjQzZWMwMjNmMzljNDkwODg4 ZTRjYmFjM2NmZTdkYTQ2YzE2NWRiYzEzMzNjM2RhYjMxZjIyMGNiNzcxODFjCi1TSEE1MTIgKGtl cm5lbC1rYWJpLWR3LTcuMC4xMC50YXIueHopID0gMzRjODdlNjMzNGM1YmE0ZTg0MGYwMzAwYThm NzFiYjlmMTAwYmI3YzUyZWViNzU5ODNlYTZlMmFlZTE0ZGEyZGU4NjcyYzU5ZjcwNjBjNjgzZTQw MDc4MmVjMjU4NzIxOGZlODQ1NmEzZGRkOGQ1NTdkMWEyYmYyYmE2ZjFlNjQKK1NIQTUxMiAobGlu dXgtNy4wLjExLnRhci54eikgPSA0ODIzZDlkMWFhZTY5MDAxOTgzYzg2NWM3ZmFhNTZmNmNkNjdm MjdhNTQ4ZmE2ZTM1MzI1NzJlNjgwMGRkZWJmZTlmMDQxMTNkNGI5ZTdhNTIyMzJjMTZjZWQ5M2Ew Y2MxMTVmMWFjMjMzODgzZTU0MGQwM2IxNzkzYmY3NjgyMgorU0hBNTEyIChrZXJuZWwtYWJpLXN0 YWJsZWxpc3RzLTcuMC4xMS50YXIueHopID0gMTRlY2RkMzU3Yzg1M2VlOTQ2MTU3YzVlMTRiNDYz YmJmMjlmYzU4YTg2ZGY4ZTdhYThlZDdjMDI2NjM1NTcwMjVkYTcwZmZhMmNkNzlmYWNkMTNhMzU0 NTUwZGVlNDBiODU1ZDA2NWNkZWNiZWFmMGRkZmIzNzJiOGIzOThiZTkKK1NIQTUxMiAoa2VybmVs LWthYmktZHctNy4wLjExLnRhci54eikgPSA2YzYzMjU1ZjM4YjIwMjdjODE2NWE0NzFlYWE2ODc1 YWEyNjZjYWY5NzU1NmU2OTMzOWIyZjE0NmRkOTI2Zjc4OWEyMDAzNGQ5MjNlZThlNzU0YTM5NWNm ZjA0MTIyZjljODlhNjIxZWNjZDJiYjZiMjAzMmIzNzA1M2UwNzNhMgo=