From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 13912 invoked from network); 1 Aug 2023 10:04:14 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 1 Aug 2023 10:04:14 -0000 Content-Type: multipart/mixed; boundary="===============8772685964262590997==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIG11c2wgMS4y?= To: ml@inbox.vuxu.org From: dkwo Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 01 Aug 2023 12:04:14 +0200 List-Id: Message-ID: <20230801100414.nwqx5fPTrKCNN4HS8401etl8jrCmm4T51cYMbJI_NZI@z> GitHub notification mails are now in MIME to allow UTF8. --===============8772685964262590997== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgZGt3byBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vZGt3by92 b2lkLXBhY2thZ2VzIG11c2wKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzQzMTA2CgptdXNsIDEuMgpbY2kgc2tpcF0NCg0KLSBJIHRlc3RlZCB0aGUgY2hh bmdlcyBpbiB0aGlzIFBSOiB5ZXMNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5h dGl2ZSBhcmNoaXRlY3R1cmUsICh4ODZfNjQtbXVzbCkNCi0ga2VlcGluZyB0aGUgbGFyZ2UtZmls ZSBwYXRjaCwgZm9yIG5vdw0KLSByZXF1aXJlcyBjaGFuZ2VzIHRvIHhicHMsIGFsb25nIHRoZSBs aW5lcyBvZiBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC94YnBzL3B1bGwvMzMxCgpBIHBh dGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2Vz L3B1bGwvNDMxMDYucGF0Y2ggaXMgYXR0YWNoZWQ= --===============8772685964262590997== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-musl-43106.patch" RnJvbSA3M2IxYTQwMTQ1MzJjZGVhNWY3ZmI3ZjliZWM4ZThkMDNkMjEwMzE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBka3dvIDxuaWNvbG9waWF6emFsdW5nYUBnbWFpbC5jb20+CkRh dGU6IFRodSwgMTMgTWF5IDIwMjEgMTM6NTE6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEvM10g bXVzbDogdXBkYXRlIHRvIDEuMi40CgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAtcmVhbGxv Y2FycmF5LnBhdGNoICAgIHwgIDQyIC0tLS0KIC4uLi9wYXRjaGVzLzAwMDEtcmVtb3ZlLU9fTEFS R0VGSUxFLnBhdGNoICAgICB8ICAyNiArKysKIC4uLmlzdF91bmxpbmtfaW5fcHRocmVhZF9leGl0 X2FmdGVyX2FsbC5wYXRjaCB8ICA1NiAtLS0tLQogLi4uaHJlYWRzX21pbnVzXzFfYXNfcmVsYXhl ZF9hdG9taWNfZm9yLnBhdGNoIHwgIDc4IC0tLS0tLS0KIC4uLm93bl9zaXplX29mX3NvbWVfbGli Y19zdHJ1Y3RfbWVtYmVycy5wYXRjaCB8ICAzMCAtLS0KIC4uLnBwaW5nX2Zvcl9wcm9jZXNzZXNf dGhhdF9yZXR1cm5fdG9fcy5wYXRjaCB8IDEwMiAtLS0tLS0tLQogLi4uODhhOWRhNWU3YjI5MjVk ZGExN2EyZDY4MjBkZGRmMWZiMjg3LnBhdGNoIHwgMTM5IC0tLS0tLS0tLS0tCiAuLi4wOThhODg1 ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzgucGF0Y2ggfCAxMTMgLS0tLS0tLS0tCiBzcmNw a2dzL211c2wvcGF0Y2hlcy9DVkUtMjAyMC0yODkyOC5wYXRjaCAgICAgfCAgNjQgLS0tLS0KIHNy Y3BrZ3MvbXVzbC9wYXRjaGVzL2FhcmNoNjQtZnJlZ3MucGF0Y2ggICAgICB8ICAzNyAtLS0KIHNy Y3BrZ3MvbXVzbC9wYXRjaGVzL2FkZC1xc29ydF9yLnBhdGNoICAgICAgICB8IDIwMSAtLS0tLS0t LS0tLS0tLS0tCiAuLi5kLXN1cHBvcnQtZm9yLVNJR0VWX1RIUkVBRF9JRC10aW1lcnMucGF0Y2gg fCAgNzQgLS0tLS0tCiAuLi5ybGltaXQtbWlzYmVoYXZpb3ItYW5kLWhhbmctaW4tdmZvcmsucGF0 Y2ggfCAgNDkgLS0tLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvZXBvbGxfY3AucGF0Y2ggICAgICAg ICAgIHwgIDI4IC0tLQogLi4uL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0xLnBhdGNo ICAgIHwgIDU2IC0tLS0tCiAuLi4vbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTIucGF0 Y2ggICAgfCAgNDggLS0tLQogLi4uL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0zLnBh dGNoICAgIHwgIDI4IC0tLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvZ2V0dGlkLnBhdGNoICAgICAg ICAgICAgIHwgIDQ5IC0tLS0KIC4uLnRseV9pbnN0ZWFkX29mX3VzaW5nX3Byb2Nmc19yZWFkbGlu ay5wYXRjaCB8IDIxOSAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2lz YXNjaWkucGF0Y2ggICAgICAgICAgICB8ICAyMSAtLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvbW9f bG9va3VwLnBhdGNoICAgICAgICAgIHwgIDE5IC0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9wcGMt cHRfcmVncy5wYXRjaCAgICAgICAgfCAgMzggLS0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9wcGM2 NC1mcHJlZ3NldF90LnBhdGNoICAgfCAgMzEgLS0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9wcGNs ZS5wYXRjaCAgICAgICAgICAgICAgfCAgMjQgLS0KIC4uLmluX3JlYWRsaW5rX3N5c2NhbGxfd2l0 aF96ZXJvX2J1ZmZlci5wYXRjaCB8ICA1OSAtLS0tLQogc3JjcGtncy9tdXNsL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiAyNyBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNl cnRpb25zKCspLCAxNjEwIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bXVzbC9wYXRjaGVzLzAwLXJlYWxsb2NhcnJheS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDEtcmVtb3ZlLU9fTEFSR0VGSUxFLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMV9yZW9yZGVyX3RocmVhZF9saXN0 X3VubGlua19pbl9wdGhyZWFkX2V4aXRfYWZ0ZXJfYWxsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMl9kb25fdF91c2VfbGliY190aHJlYWRzX21pbnVz XzFfYXNfcmVsYXhlZF9hdG9taWNfZm9yLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9tdXNsL3BhdGNoZXMvMDAwM19jdXRfZG93bl9zaXplX29mX3NvbWVfbGliY19zdHJ1Y3RfbWVt YmVycy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDRf cmVzdG9yZV9sb2NrX3NraXBwaW5nX2Zvcl9wcm9jZXNzZXNfdGhhdF9yZXR1cm5fdG9fcy5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzLzk4ZTY4OGE5ZGE1ZTdi MjkyNWRkYTE3YTJkNjgyMGRkZGYxZmIyODcucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL211c2wvcGF0Y2hlcy85OWQ1MDk4YTg4NWZlYWUzYWU4YzMyYjQwNzM1MGQ4Y2E4NWRkMTc4 LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvQ1ZFLTIwMjAt Mjg5MjgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9hYXJj aDY0LWZyZWdzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMv YWRkLXFzb3J0X3IucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hl cy9hZGQtc3VwcG9ydC1mb3ItU0lHRVZfVEhSRUFEX0lELXRpbWVycy5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2F2b2lkLXNldC1pZC1zZXRybGltaXQtbWlz YmVoYXZpb3ItYW5kLWhhbmctaW4tdmZvcmsucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL211c2wvcGF0Y2hlcy9lcG9sbF9jcC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0yLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMy5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2dldHRpZC5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2ltcGxlbWVudF9yZWFs cGF0aF9kaXJlY3RseV9pbnN0ZWFkX29mX3VzaW5nX3Byb2Nmc19yZWFkbGluay5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2lzYXNjaWkucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9tb19sb29rdXAucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9wcGMtcHRfcmVncy5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYzY0LWZwcmVnc2V0X3QucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9wcGNsZS5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3dvcmtfYXJvdW5kX2xpbnV4 X2J1Z19pbl9yZWFkbGlua19zeXNjYWxsX3dpdGhfemVyb19idWZmZXIucGF0Y2gKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAyZDUyOGFhNzk4ZWU1Li5j ZThjZTUxYjI3Njc3IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxp YnMKQEAgLTE2LDcgKzE2LDcgQEAKICMgUExFQVNFIE5PVEU6IHdoZW4gbXVsdGlwbGUgcGFja2Fn ZXMgcHJvdmlkZSB0aGUgc2FtZSBTT05BTUUsIHRoZSBmaXJzdAogIyBvbmUgKG9yZGVyIHRvcC0+ Ym90dG9tKSBpcyBwcmVmZXJyZWQgb3ZlciB0aGUgbmV4dCBvbmVzLgogIwotbGliYy5zbyBtdXNs LTEuMS4yNF83CitsaWJjLnNvIG11c2wtMS4yLjNfMQogbGliYy5zby42IGdsaWJjLTIuMzZfMQog bGlibS5zby42IGdsaWJjLTIuMzZfMQogbGlicHRocmVhZC5zby4wIGdsaWJjLTIuMzZfMQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAtcmVhbGxvY2FycmF5LnBhdGNoIGIvc3Jj cGtncy9tdXNsL3BhdGNoZXMvMDAtcmVhbGxvY2FycmF5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBjZmFhYjMzMGU4OWFkLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv bXVzbC9wYXRjaGVzLzAwLXJlYWxsb2NhcnJheS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQy ICswLDAgQEAKLUZyb20gODIxMDgzYWM3YjU0ZWFhMDQwZDVhOGRkYzY3YzYyMDZhMTc1ZTBjYSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyaWFkbmUgQ29uaWxsIDxhcmlhZG5lQGRl cmVmZXJlbmNlZC5vcmc+Ci1EYXRlOiBTYXQsIDEgQXVnIDIwMjAgMDg6MjY6MzUgLTA2MDAKLVN1 YmplY3Q6IFtQQVRDSF0gaW1wbGVtZW50IHJlYWxsb2NhcnJheQotCi1yZWFsbG9jYXJyYXkgaXMg YW4gZXh0ZW5zaW9uIGludHJvZHVjZWQgYnkgT3BlbkJTRCwgd2hpY2ggaW50cm9kdWNlcwotY2Fs bG9jIG92ZXJmbG93IGNoZWNraW5nIHRvIHJlYWxsb2MuCi0KLWdsaWJjIDIuMjggaW50cm9kdWNl ZCBzdXBwb3J0IGZvciB0aGlzIGZ1bmN0aW9uIGJlaGluZCBfR05VX1NPVVJDRSwKLXdoaWxlIGds aWJjIDIuMjkgYWxsb3dzIGl0cyB1c2FnZSBpbiBfREVGQVVMVF9TT1VSQ0UuCi0KLWRpZmYgLS1n aXQgYS9pbmNsdWRlL3N0ZGxpYi5oIGIvaW5jbHVkZS9zdGRsaWIuaAotaW5kZXggMTk0YzIwMzMu LmI1NGEwNTFmIDEwMDY0NAotLS0tIGEvaW5jbHVkZS9zdGRsaWIuaAotKysrIGIvaW5jbHVkZS9z dGRsaWIuaAotQEAgLTE0NSw2ICsxNDUsNyBAQCBpbnQgZ2V0bG9hZGF2Zyhkb3VibGUgKiwgaW50 KTsKLSBpbnQgY2xlYXJlbnYodm9pZCk7Ci0gI2RlZmluZSBXQ09SRURVTVAocykgKChzKSAmIDB4 ODApCi0gI2RlZmluZSBXSUZDT05USU5VRUQocykgKChzKSA9PSAweGZmZmYpCi0rdm9pZCAqcmVh bGxvY2FycmF5ICh2b2lkICosIHNpemVfdCwgc2l6ZV90KTsKLSAjZW5kaWYKLSAKLSAjaWZkZWYg X0dOVV9TT1VSQ0UKLWRpZmYgLS1naXQgYS9zcmMvbWFsbG9jL3JlYWxsb2NhcnJheS5jIGIvc3Jj L21hbGxvYy9yZWFsbG9jYXJyYXkuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAw MDAwLi40YTZlYmU0NgotLS0tIC9kZXYvbnVsbAotKysrIGIvc3JjL21hbGxvYy9yZWFsbG9jYXJy YXkuYwotQEAgLTAsMCArMSwxMyBAQAotKyNkZWZpbmUgX0JTRF9TT1VSQ0UKLSsjaW5jbHVkZSA8 ZXJybm8uaD4KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rCi0rdm9pZCAqcmVhbGxvY2FycmF5KHZv aWQgKnB0ciwgc2l6ZV90IG0sIHNpemVfdCBuKQotK3sKLSsJaWYgKG4gJiYgbSA+IC0xIC8gbikg ewotKwkJZXJybm8gPSBFTk9NRU07Ci0rCQlyZXR1cm4gMDsKLSsJfQotKwotKwlyZXR1cm4gcmVh bGxvYyhwdHIsIG0gKiBuKTsKLSt9CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy8w MDAxLXJlbW92ZS1PX0xBUkdFRklMRS5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDEt cmVtb3ZlLU9fTEFSR0VGSUxFLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAuLjFjYTM2MjYzNjkxYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL211c2wv cGF0Y2hlcy8wMDAxLXJlbW92ZS1PX0xBUkdFRklMRS5wYXRjaApAQCAtMCwwICsxLDI2IEBACitG cm9tIDdkNTU0ZDBjNzg2ZjU0MzFhZDMwMzVhMzI4ODE1ODkwYTk1YTI5NzkgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/PUMzPTg5cmljbz0yME5vZ3VlaXJhPz0gPGVy aWNvbnJAZGlzcm9vdC5vcmc+CitEYXRlOiBXZWQsIDEyIE1heSAyMDIxIDE3OjM5OjIwIC0wMzAw CitTdWJqZWN0OiBbUEFUQ0hdIHJlbW92ZSBPX0xBUkdFRklMRQorCit1c2VmdWwgaGFjayB0byBi dWlsZCAxLjIuMiBtdXNsIGZvciB4ODZfNjQgYW5kIG5vdCBoYXZlIHRvIHJlYnVpbGQKK2ZpcmVm b3guCistLS0KKyBhcmNoL2dlbmVyaWMvYml0cy9mY250bC5oIHwgMiArLQorIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvYXJjaC9n ZW5lcmljL2JpdHMvZmNudGwuaCBiL2FyY2gvZ2VuZXJpYy9iaXRzL2ZjbnRsLmgKK2luZGV4IDcz MGE5OGNmLi5jMmZkMTc2MCAxMDA2NDQKKy0tLSBhL2FyY2gvZ2VuZXJpYy9iaXRzL2ZjbnRsLmgK KysrKyBiL2FyY2gvZ2VuZXJpYy9iaXRzL2ZjbnRsLmgKK0BAIC0xMyw3ICsxMyw3IEBACisgCisg I2RlZmluZSBPX0FTWU5DICAgICAgMDIwMDAwCisgI2RlZmluZSBPX0RJUkVDVCAgICAgMDQwMDAw CistI2RlZmluZSBPX0xBUkdFRklMRSAwMTAwMDAwCisrI2RlZmluZSBPX0xBUkdFRklMRSAwCisg I2RlZmluZSBPX05PQVRJTUUgIDAxMDAwMDAwCisgI2RlZmluZSBPX1BBVEggICAgMDEwMDAwMDAw CisgI2RlZmluZSBPX1RNUEZJTEUgMDIwMjAwMDAwCistLSAKKzIuMzEuMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMV9yZW9yZGVyX3RocmVhZF9saXN0X3VubGlua19pbl9w dGhyZWFkX2V4aXRfYWZ0ZXJfYWxsLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMV9y ZW9yZGVyX3RocmVhZF9saXN0X3VubGlua19pbl9wdGhyZWFkX2V4aXRfYWZ0ZXJfYWxsLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YzFhNTViYzg1ZTMwLi4wMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDFfcmVvcmRlcl90aHJlYWRfbGlzdF91 bmxpbmtfaW5fcHRocmVhZF9leGl0X2FmdGVyX2FsbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDU2ICswLDAgQEAKLT5Gcm9tIDRkNWFhMjBhOTRhMmQzZmFlM2U2OTI4OWRjMjNlY2FmYmQwYzE2 YzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFl cmlmYWwuY3g+Ci1EYXRlOiBGcmksIDIyIE1heSAyMDIwIDE3OjM1OjE0IC0wNDAwCi1TdWJqZWN0 OiBbUEFUQ0ggMS80XSByZW9yZGVyIHRocmVhZCBsaXN0IHVubGluayBpbiBwdGhyZWFkX2V4aXQg YWZ0ZXIgYWxsCi0gbG9ja3MKLQotc2luY2UgdGhlIGJhY2tlbmQgZm9yIExPQ0soKSBza2lwcyBs b2NraW5nIGlmIHNpbmdsZS10aHJlYWRlZCwgaXQncwotdW5zYWZlIHRvIG1ha2UgdGhlIHByb2Nl c3MgYXBwZWFyIHNpbmdsZS10aHJlYWRlZCBiZWZvcmUgdGhlIGxhc3QgdXNlCi1vZiBsb2NrLgot Ci10aGlzIGZpeGVzIHBvdGVudGlhbCB1bnN5bmNocm9uaXplZCBhY2Nlc3MgdG8gYSBsaW5rZWQg bGlzdCB2aWEKLV9fZGxfdGhyZWFkX2NsZWFudXAuCi0tLS0KLSBzcmMvdGhyZWFkL3B0aHJlYWRf Y3JlYXRlLmMgfCAxOSArKysrKysrKysrKy0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDExIGlu c2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvdGhyZWFkL3B0 aHJlYWRfY3JlYXRlLmMgYi9zcmMvdGhyZWFkL3B0aHJlYWRfY3JlYXRlLmMKLWluZGV4IDVmNDkx MDkyLi42YTNiMGMyMSAxMDA2NDQKLS0tLSBhL3NyYy90aHJlYWQvcHRocmVhZF9jcmVhdGUuYwot KysrIGIvc3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5jCi1AQCAtOTAsMTQgKzkwLDcgQEAgX05v cmV0dXJuIHZvaWQgX19wdGhyZWFkX2V4aXQodm9pZCAqcmVzdWx0KQotIAkJZXhpdCgwKTsKLSAJ fQotIAotLQkvKiBBdCB0aGlzIHBvaW50IHdlIGFyZSBjb21taXR0ZWQgdG8gdGhyZWFkIHRlcm1p bmF0aW9uLiBVbmxpbmsKLS0JICogdGhlIHRocmVhZCBmcm9tIHRoZSBsaXN0LiBUaGlzIGNoYW5n ZSB3aWxsIG5vdCBiZSB2aXNpYmxlCi0tCSAqIHVudGlsIHRoZSBsb2NrIGlzIHJlbGVhc2VkLCB3 aGljaCBvbmx5IGhhcHBlbnMgYWZ0ZXIgU1lTX2V4aXQKLS0JICogaGFzIGJlZW4gY2FsbGVkLCB2 aWEgdGhlIGV4aXQgZnV0ZXggYWRkcmVzcyBwb2ludGluZyBhdCB0aGUgbG9jay4gKi8KLS0JbGli Yy50aHJlYWRzX21pbnVzXzEtLTsKLS0Jc2VsZi0+bmV4dC0+cHJldiA9IHNlbGYtPnByZXY7Ci0t CXNlbGYtPnByZXYtPm5leHQgPSBzZWxmLT5uZXh0OwotLQlzZWxmLT5wcmV2ID0gc2VsZi0+bmV4 dCA9IHNlbGY7Ci0rCS8qIEF0IHRoaXMgcG9pbnQgd2UgYXJlIGNvbW1pdHRlZCB0byB0aHJlYWQg dGVybWluYXRpb24uICovCi0gCi0gCS8qIFByb2Nlc3Mgcm9idXN0IGxpc3QgaW4gdXNlcnNwYWNl IHRvIGhhbmRsZSBub24tcHNoYXJlZCBtdXRleGVzCi0gCSAqIGFuZCB0aGUgZGV0YWNoZWQgdGhy ZWFkIGNhc2Ugd2hlcmUgdGhlIHJvYnVzdCBsaXN0IGhlYWQgd2lsbAotQEAgLTEyMSw2ICsxMTQs MTYgQEAgX05vcmV0dXJuIHZvaWQgX19wdGhyZWFkX2V4aXQodm9pZCAqcmVzdWx0KQotIAlfX2Rv X29ycGhhbmVkX3N0ZGlvX2xvY2tzKCk7Ci0gCV9fZGxfdGhyZWFkX2NsZWFudXAoKTsKLSAKLSsJ LyogTGFzdCwgdW5saW5rIHRocmVhZCBmcm9tIHRoZSBsaXN0LiBUaGlzIGNoYW5nZSB3aWxsIG5v dCBiZSB2aXNpYmxlCi0rCSAqIHVudGlsIHRoZSBsb2NrIGlzIHJlbGVhc2VkLCB3aGljaCBvbmx5 IGhhcHBlbnMgYWZ0ZXIgU1lTX2V4aXQKLSsJICogaGFzIGJlZW4gY2FsbGVkLCB2aWEgdGhlIGV4 aXQgZnV0ZXggYWRkcmVzcyBwb2ludGluZyBhdCB0aGUgbG9jay4KLSsJICogVGhpcyBuZWVkcyB0 byBoYXBwZW4gYWZ0ZXIgYW55IHBvc3NpYmxlIGNhbGxzIHRvIExPQ0soKSB0aGF0IG1pZ2h0Ci0r CSAqIHNraXAgbG9ja2luZyBpZiBsaWJjLnRocmVhZHNfbWludXNfMSBpcyB6ZXJvLiAqLwotKwls aWJjLnRocmVhZHNfbWludXNfMS0tOwotKwlzZWxmLT5uZXh0LT5wcmV2ID0gc2VsZi0+cHJldjsK LSsJc2VsZi0+cHJldi0+bmV4dCA9IHNlbGYtPm5leHQ7Ci0rCXNlbGYtPnByZXYgPSBzZWxmLT5u ZXh0ID0gc2VsZjsKLSsKLSAJLyogVGhpcyBhdG9taWMgcG90ZW50aWFsbHkgY29tcGV0ZXMgd2l0 aCBhIGNvbmN1cnJlbnQgcHRocmVhZF9kZXRhY2gKLSAJICogY2FsbDsgdGhlIGxvc2VyIGlzIHJl c3BvbnNpYmxlIGZvciBmcmVlaW5nIHRocmVhZCByZXNvdXJjZXMuICovCi0gCWludCBzdGF0ZSA9 IGFfY2FzKCZzZWxmLT5kZXRhY2hfc3RhdGUsIERUX0pPSU5BQkxFLCBEVF9FWElUSU5HKTsKLS0t IAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDJfZG9uX3Rf dXNlX2xpYmNfdGhyZWFkc19taW51c18xX2FzX3JlbGF4ZWRfYXRvbWljX2Zvci5wYXRjaCBiL3Ny Y3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDJfZG9uX3RfdXNlX2xpYmNfdGhyZWFkc19taW51c18xX2Fz X3JlbGF4ZWRfYXRvbWljX2Zvci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg ZTA2MDc2MmU5OWE2Mi4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy8w MDAyX2Rvbl90X3VzZV9saWJjX3RocmVhZHNfbWludXNfMV9hc19yZWxheGVkX2F0b21pY19mb3Iu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi0+RnJvbSBlMDFiNTkzOWIzOGFl YTVlY2JlNDE2NzA2NDMxOTk4MjU4NzRiMjZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogVGh1LCAyMSBNYXkgMjAy MCAyMzozMjo0NSAtMDQwMAotU3ViamVjdDogW1BBVENIIDIvNF0gZG9uJ3QgdXNlIGxpYmMudGhy ZWFkc19taW51c18xIGFzIHJlbGF4ZWQgYXRvbWljIGZvcgotIHNraXBwaW5nIGxvY2tzCi0KLWFm dGVyIGFsbCBidXQgdGhlIGxhc3QgdGhyZWFkIGV4aXRzLCB0aGUgbmV4dCB0aHJlYWQgdG8gb2Jz ZXJ2ZQotbGliYy50aHJlYWRzX21pbnVzXzE9PTAgYW5kIGNvbmNsdWRlIHRoYXQgaXQgY2FuIHNr aXAgbG9ja2luZyBmYWlscyB0bwotc3luY2hyb25pemUgd2l0aCBhbnkgY2hhbmdlcyB0byBtZW1v cnkgdGhhdCB3ZXJlIG1hZGUgYnkgdGhlCi1sYXN0LWV4aXRpbmcgdGhyZWFkLiB0aGlzIGNhbiBw cm9kdWNlIGRhdGEgcmFjZXMuCi0KLW9uIHNvbWUgYXJjaHMsIGF0IGxlYXN0IHg4NiwgbWVtb3J5 IHN5bmNocm9uaXphdGlvbiBpcyB1bmxpa2VseSB0byBiZQotYSBwcm9ibGVtOyBob3dldmVyLCB3 aXRoIHRoZSBpbmxpbmUgbG9ja3MgaW4gbWFsbG9jLCBza2lwcGluZyB0aGUgbG9jawotYWxzbyBl bGltaW5hdGVkIHRoZSBjb21waWxlciBiYXJyaWVyLCBhbmQgY2F1c2VkIGNvZGUgdGhhdCBuZWVk ZWQgdG8KLXJlLWNoZWNrIGNodW5rIGluLXVzZSBiaXRzIGFmdGVyIG9idGFpbmluZyB0aGUgbG9j ayB0byByZXVzZSBhIHN0YWxlCi12YWx1ZSwgcG9zc2libHkgZnJvbSBiZWZvcmUgdGhlIHByb2Nl c3MgYmVjYW1lIHNpbmdsZS10aHJlYWRlZC4gdGhpcwotaW4gdHVybiBwcm9kdWNlZCBjb3JydXB0 aW9uIG9mIHRoZSBoZWFwIHN0YXRlLgotCi1zb21lIHVzZXMgb2YgbGliYy50aHJlYWRzX21pbnVz XzEgcmVtYWluLCBlc3BlY2lhbGx5IGZvciBhbGxvY2F0aW9uIG9mCi1uZXcgVExTIGluIHRoZSBk eW5hbWljIGxpbmtlcjsgb3RoZXJ3aXNlLCBpdCBjb3VsZCBiZSByZW1vdmVkCi1lbnRpcmVseS4g aXQncyBtYWRlIG5vbi12b2xhdGlsZSB0byByZWZsZWN0IHRoYXQgdGhlIHJlbWFpbmluZwotYWNj ZXNzZXMgYXJlIG9ubHkgbWFkZSB1bmRlciBsb2NrIG9uIHRoZSB0aHJlYWQgbGlzdC4KLQotaW5z dGVhZCBvZiBsaWJjLnRocmVhZHNfbWludXNfMSwgbGliYy50aHJlYWRlZCBpcyBub3cgdXNlZCBm b3IKLXNraXBwaW5nIGxvY2tzLiB0aGUgZGlmZmVyZW5jZSBpcyB0aGF0IGxpYmMudGhyZWFkZWQg aXMgcGVybWFuZW50bHkKLXRydWUgb25jZSBhbiBhZGRpdGlvbmFsIHRocmVhZCBoYXMgYmVlbiBj cmVhdGVkLiB0aGlzIHdpbGwgcHJvZHVjZQotc29tZSBwZXJmb3JtYW5jZSByZWdyZXNzaW9uIGlu IHByb2Nlc3NlcyB0aGF0IGFyZSBtb3N0bHkKLXNpbmdsZS10aHJlYWRlZCBidXQgb2NjYXNpb25h bGx5IGNyZWF0aW5nIHRocmVhZHMuIGluIHRoZSBmdXR1cmUgaXQKLW1heSBiZSBwb3NzaWJsZSB0 byBicmluZyBiYWNrIHRoZSBmdWxsIGxvY2stc2tpcHBpbmcsIGJ1dCBtb3JlIGNhcmUKLW5lZWRz IHRvIGJlIHRha2VuIHRvIHByb2R1Y2UgYSBzYWZlIGRlc2lnbi4KLS0tLQotIHNyYy9pbnRlcm5h bC9saWJjLmggfCAyICstCi0gc3JjL21hbGxvYy9tYWxsb2MuYyB8IDIgKy0KLSBzcmMvdGhyZWFk L19fbG9jay5jIHwgMiArLQotIDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2ludGVybmFsL2xpYmMuaCBiL3NyYy9pbnRl cm5hbC9saWJjLmgKLWluZGV4IGFjOTdkYzdlLi5jMDYxNDg1MiAxMDA2NDQKLS0tLSBhL3NyYy9p bnRlcm5hbC9saWJjLmgKLSsrKyBiL3NyYy9pbnRlcm5hbC9saWJjLmgKLUBAIC0yMSw3ICsyMSw3 IEBAIHN0cnVjdCBfX2xpYmMgewotIAlpbnQgY2FuX2RvX3RocmVhZHM7Ci0gCWludCB0aHJlYWRl ZDsKLSAJaW50IHNlY3VyZTsKLS0Jdm9sYXRpbGUgaW50IHRocmVhZHNfbWludXNfMTsKLSsJaW50 IHRocmVhZHNfbWludXNfMTsKLSAJc2l6ZV90ICphdXh2OwotIAlzdHJ1Y3QgdGxzX21vZHVsZSAq dGxzX2hlYWQ7Ci0gCXNpemVfdCB0bHNfc2l6ZSwgdGxzX2FsaWduLCB0bHNfY250OwotZGlmZiAt LWdpdCBhL3NyYy9tYWxsb2MvbWFsbG9jLmMgYi9zcmMvbWFsbG9jL21hbGxvYy5jCi1pbmRleCA5 Njk4MjU5Ni4uMjU1M2E2MmUgMTAwNjQ0Ci0tLS0gYS9zcmMvbWFsbG9jL21hbGxvYy5jCi0rKysg Yi9zcmMvbWFsbG9jL21hbGxvYy5jCi1AQCAtMjYsNyArMjYsNyBAQCBpbnQgX19tYWxsb2NfcmVw bGFjZWQ7Ci0gCi0gc3RhdGljIGlubGluZSB2b2lkIGxvY2sodm9sYXRpbGUgaW50ICpsaykKLSB7 Ci0tCWlmIChsaWJjLnRocmVhZHNfbWludXNfMSkKLSsJaWYgKGxpYmMudGhyZWFkZWQpCi0gCQl3 aGlsZShhX3N3YXAobGssIDEpKSBfX3dhaXQobGssIGxrKzEsIDEsIDEpOwotIH0KLSAKLWRpZmYg LS1naXQgYS9zcmMvdGhyZWFkL19fbG9jay5jIGIvc3JjL3RocmVhZC9fX2xvY2suYwotaW5kZXgg NDU1NTdjODguLjViOWIxNDRlIDEwMDY0NAotLS0tIGEvc3JjL3RocmVhZC9fX2xvY2suYwotKysr IGIvc3JjL3RocmVhZC9fX2xvY2suYwotQEAgLTE4LDcgKzE4LDcgQEAKLSAKLSB2b2lkIF9fbG9j ayh2b2xhdGlsZSBpbnQgKmwpCi0gewotLQlpZiAoIWxpYmMudGhyZWFkc19taW51c18xKSByZXR1 cm47Ci0rCWlmICghbGliYy50aHJlYWRlZCkgcmV0dXJuOwotIAkvKiBmYXN0IHBhdGg6IElOVF9N SU4gZm9yIHRoZSBsb2NrLCArMSBmb3IgdGhlIGNvbmdlc3Rpb24gKi8KLSAJaW50IGN1cnJlbnQg PSBhX2NhcyhsLCAwLCBJTlRfTUlOICsgMSk7Ci0gCWlmICghY3VycmVudCkgcmV0dXJuOwotLS0g Ci0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwM19jdXRfZG93 bl9zaXplX29mX3NvbWVfbGliY19zdHJ1Y3RfbWVtYmVycy5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9w YXRjaGVzLzAwMDNfY3V0X2Rvd25fc2l6ZV9vZl9zb21lX2xpYmNfc3RydWN0X21lbWJlcnMucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0MGM1ZDk1MDE5NTcuLjAwMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwM19jdXRfZG93bl9zaXplX29mX3Nv bWVfbGliY19zdHJ1Y3RfbWVtYmVycy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAg QEAKLT5Gcm9tIGYxMjg4OGU5ZWI5ZWVkNjBjYzI2NmI4OTlkY2FmZWNiNDc1Mjk2NGEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+ Ci1EYXRlOiBGcmksIDIyIE1heSAyMDIwIDE3OjI1OjM4IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0gg My80XSBjdXQgZG93biBzaXplIG9mIHNvbWUgbGliYyBzdHJ1Y3QgbWVtYmVycwotCi10aGVzZSBh cmUgYWxsIGZsYWdzIHRoYXQgY2FuIGJlIHNpbmdsZS1ieXRlIHZhbHVlcy4KLS0tLQotIHNyYy9p bnRlcm5hbC9saWJjLmggfCA2ICsrKy0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaW50ZXJuYWwvbGliYy5oIGIv c3JjL2ludGVybmFsL2xpYmMuaAotaW5kZXggYzA2MTQ4NTIuLmQ0N2Y1OGUwIDEwMDY0NAotLS0t IGEvc3JjL2ludGVybmFsL2xpYmMuaAotKysrIGIvc3JjL2ludGVybmFsL2xpYmMuaAotQEAgLTE4 LDkgKzE4LDkgQEAgc3RydWN0IHRsc19tb2R1bGUgewotIH07Ci0gCi0gc3RydWN0IF9fbGliYyB7 Ci0tCWludCBjYW5fZG9fdGhyZWFkczsKLS0JaW50IHRocmVhZGVkOwotLQlpbnQgc2VjdXJlOwot KwljaGFyIGNhbl9kb190aHJlYWRzOwotKwljaGFyIHRocmVhZGVkOwotKwljaGFyIHNlY3VyZTsK LSAJaW50IHRocmVhZHNfbWludXNfMTsKLSAJc2l6ZV90ICphdXh2OwotIAlzdHJ1Y3QgdGxzX21v ZHVsZSAqdGxzX2hlYWQ7Ci0tLSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wv cGF0Y2hlcy8wMDA0X3Jlc3RvcmVfbG9ja19za2lwcGluZ19mb3JfcHJvY2Vzc2VzX3RoYXRfcmV0 dXJuX3RvX3MucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDA0X3Jlc3RvcmVfbG9ja19z a2lwcGluZ19mb3JfcHJvY2Vzc2VzX3RoYXRfcmV0dXJuX3RvX3MucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGU3MDNjMWY0MDNjNTkuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9tdXNsL3BhdGNoZXMvMDAwNF9yZXN0b3JlX2xvY2tfc2tpcHBpbmdfZm9yX3Byb2Nlc3Nl c190aGF0X3JldHVybl90b19zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAK LT5Gcm9tIDhkODFiYThjMGJjNmZlMzExMzZjYjE1YzljODJlZjRjMjQ5NjUwNDAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1E YXRlOiBGcmksIDIyIE1heSAyMDIwIDE3OjQ1OjQ3IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggNC80 XSByZXN0b3JlIGxvY2stc2tpcHBpbmcgZm9yIHByb2Nlc3NlcyB0aGF0IHJldHVybiB0bwotIHNp bmdsZS10aHJlYWRlZCBzdGF0ZQotCi10aGUgZGVzaWduIHVzZWQgaGVyZSByZWxpZXMgb24gdGhl IGJhcnJpZXIgcHJvdmlkZWQgYnkgdGhlIGZpcnN0IGxvY2sKLW9wZXJhdGlvbiBhZnRlciB0aGUg cHJvY2VzcyByZXR1cm5zIHRvIHNpbmdsZS10aHJlYWRlZCBzdGF0ZSB0bwotc3luY2hyb25pemUg d2l0aCBhY3Rpb25zIGJ5IHRoZSBsYXN0IHRocmVhZCB0aGF0IGV4aXRlZC4gYnkgc3RvcmluZwot dGhlIGludGVudCB0byBjaGFuZ2UgbW9kZXMgaW4gdGhlIHNhbWUgb2JqZWN0IHVzZWQgdG8gZGV0 ZWN0IHdoZXRoZXIKLWxvY2tpbmcgaXMgbmVlZGVkLCBpdCdzIHBvc3NpYmxlIHRvIGF2b2lkIGFu IGV4dHJhIChwb3NzaWJseSBjb3N0bHkpCi1tZW1vcnkgbG9hZCBhZnRlciB0aGUgbG9jayBpcyB0 YWtlbi4KLS0tLQotIHNyYy9pbnRlcm5hbC9saWJjLmggICAgICAgICB8IDEgKwotIHNyYy9tYWxs b2MvbWFsbG9jLmMgICAgICAgICB8IDUgKysrKy0KLSBzcmMvdGhyZWFkL19fbG9jay5jICAgICAg ICAgfCA0ICsrKy0KLSBzcmMvdGhyZWFkL3B0aHJlYWRfY3JlYXRlLmMgfCA4ICsrKystLS0tCi0g NCBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvc3JjL2ludGVybmFsL2xpYmMuaCBiL3NyYy9pbnRlcm5hbC9saWJjLmgKLWluZGV4 IGQ0N2Y1OGUwLi42MTliYmE4NiAxMDA2NDQKLS0tLSBhL3NyYy9pbnRlcm5hbC9saWJjLmgKLSsr KyBiL3NyYy9pbnRlcm5hbC9saWJjLmgKLUBAIC0yMSw2ICsyMSw3IEBAIHN0cnVjdCBfX2xpYmMg ewotIAljaGFyIGNhbl9kb190aHJlYWRzOwotIAljaGFyIHRocmVhZGVkOwotIAljaGFyIHNlY3Vy ZTsKLSsJdm9sYXRpbGUgc2lnbmVkIGNoYXIgbmVlZF9sb2NrczsKLSAJaW50IHRocmVhZHNfbWlu dXNfMTsKLSAJc2l6ZV90ICphdXh2OwotIAlzdHJ1Y3QgdGxzX21vZHVsZSAqdGxzX2hlYWQ7Ci1k aWZmIC0tZ2l0IGEvc3JjL21hbGxvYy9tYWxsb2MuYyBiL3NyYy9tYWxsb2MvbWFsbG9jLmMKLWlu ZGV4IDI1NTNhNjJlLi5hODAzZDRjOSAxMDA2NDQKLS0tLSBhL3NyYy9tYWxsb2MvbWFsbG9jLmMK LSsrKyBiL3NyYy9tYWxsb2MvbWFsbG9jLmMKLUBAIC0yNiw4ICsyNiwxMSBAQCBpbnQgX19tYWxs b2NfcmVwbGFjZWQ7Ci0gCi0gc3RhdGljIGlubGluZSB2b2lkIGxvY2sodm9sYXRpbGUgaW50ICps aykKLSB7Ci0tCWlmIChsaWJjLnRocmVhZGVkKQotKwlpbnQgbmVlZF9sb2NrcyA9IGxpYmMubmVl ZF9sb2NrczsKLSsJaWYgKG5lZWRfbG9ja3MpIHsKLSAJCXdoaWxlKGFfc3dhcChsaywgMSkpIF9f d2FpdChsaywgbGsrMSwgMSwgMSk7Ci0rCQlpZiAobmVlZF9sb2NrcyA8IDApIGxpYmMubmVlZF9s b2NrcyA9IDA7Ci0rCX0KLSB9Ci0gCi0gc3RhdGljIGlubGluZSB2b2lkIHVubG9jayh2b2xhdGls ZSBpbnQgKmxrKQotZGlmZiAtLWdpdCBhL3NyYy90aHJlYWQvX19sb2NrLmMgYi9zcmMvdGhyZWFk L19fbG9jay5jCi1pbmRleCA1YjliMTQ0ZS4uNjBlZWNlNDkgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhy ZWFkL19fbG9jay5jCi0rKysgYi9zcmMvdGhyZWFkL19fbG9jay5jCi1AQCAtMTgsOSArMTgsMTEg QEAKLSAKLSB2b2lkIF9fbG9jayh2b2xhdGlsZSBpbnQgKmwpCi0gewotLQlpZiAoIWxpYmMudGhy ZWFkZWQpIHJldHVybjsKLSsJaW50IG5lZWRfbG9ja3MgPSBsaWJjLm5lZWRfbG9ja3M7Ci0rCWlm ICghbmVlZF9sb2NrcykgcmV0dXJuOwotIAkvKiBmYXN0IHBhdGg6IElOVF9NSU4gZm9yIHRoZSBs b2NrLCArMSBmb3IgdGhlIGNvbmdlc3Rpb24gKi8KLSAJaW50IGN1cnJlbnQgPSBhX2NhcyhsLCAw LCBJTlRfTUlOICsgMSk7Ci0rCWlmIChuZWVkX2xvY2tzIDwgMCkgbGliYy5uZWVkX2xvY2tzID0g MDsKLSAJaWYgKCFjdXJyZW50KSByZXR1cm47Ci0gCS8qIEEgZmlyc3Qgc3BpbiBsb29wLCBmb3Ig bWVkaXVtIGNvbmdlc3Rpb24uICovCi0gCWZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDsgKytp KSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5jIGIvc3JjL3RocmVh ZC9wdGhyZWFkX2NyZWF0ZS5jCi1pbmRleCA2YTNiMGMyMS4uNmJkZmI0NGYgMTAwNjQ0Ci0tLS0g YS9zcmMvdGhyZWFkL3B0aHJlYWRfY3JlYXRlLmMKLSsrKyBiL3NyYy90aHJlYWQvcHRocmVhZF9j cmVhdGUuYwotQEAgLTExOCw4ICsxMTgsOCBAQCBfTm9yZXR1cm4gdm9pZCBfX3B0aHJlYWRfZXhp dCh2b2lkICpyZXN1bHQpCi0gCSAqIHVudGlsIHRoZSBsb2NrIGlzIHJlbGVhc2VkLCB3aGljaCBv bmx5IGhhcHBlbnMgYWZ0ZXIgU1lTX2V4aXQKLSAJICogaGFzIGJlZW4gY2FsbGVkLCB2aWEgdGhl IGV4aXQgZnV0ZXggYWRkcmVzcyBwb2ludGluZyBhdCB0aGUgbG9jay4KLSAJICogVGhpcyBuZWVk cyB0byBoYXBwZW4gYWZ0ZXIgYW55IHBvc3NpYmxlIGNhbGxzIHRvIExPQ0soKSB0aGF0IG1pZ2h0 Ci0tCSAqIHNraXAgbG9ja2luZyBpZiBsaWJjLnRocmVhZHNfbWludXNfMSBpcyB6ZXJvLiAqLwot LQlsaWJjLnRocmVhZHNfbWludXNfMS0tOwotKwkgKiBza2lwIGxvY2tpbmcgaWYgcHJvY2VzcyBh cHBlYXJzIHNpbmdsZS10aHJlYWRlZC4gKi8KLSsJaWYgKCEtLWxpYmMudGhyZWFkc19taW51c18x KSBsaWJjLm5lZWRfbG9ja3MgPSAtMTsKLSAJc2VsZi0+bmV4dC0+cHJldiA9IHNlbGYtPnByZXY7 Ci0gCXNlbGYtPnByZXYtPm5leHQgPSBzZWxmLT5uZXh0OwotIAlzZWxmLT5wcmV2ID0gc2VsZi0+ bmV4dCA9IHNlbGY7Ci1AQCAtMzM5LDcgKzMzOSw3IEBAIGludCBfX3B0aHJlYWRfY3JlYXRlKHB0 aHJlYWRfdCAqcmVzdHJpY3QgcmVzLCBjb25zdCBwdGhyZWFkX2F0dHJfdCAqcmVzdHJpY3QgYXR0 Ci0gCQl+KDFVTDw8KChTSUdDQU5DRUwtMSklKDgqc2l6ZW9mKGxvbmcpKSkpOwotIAotIAlfX3Rs X2xvY2soKTsKLS0JbGliYy50aHJlYWRzX21pbnVzXzErKzsKLSsJaWYgKCFsaWJjLnRocmVhZHNf bWludXNfMSsrKSBsaWJjLm5lZWRfbG9ja3MgPSAxOwotIAlyZXQgPSBfX2Nsb25lKChjMTEgPyBz dGFydF9jMTEgOiBzdGFydCksIHN0YWNrLCBmbGFncywgYXJncywgJm5ldy0+dGlkLCBUUF9BREoo bmV3KSwgJl9fdGhyZWFkX2xpc3RfbG9jayk7Ci0gCi0gCS8qIEFsbCBjbG9uZSBmYWlsdXJlcyB0 cmFuc2xhdGUgdG8gRUFHQUlOLiBJZiBleHBsaWNpdCBzY2hlZHVsaW5nCi1AQCAtMzYzLDcgKzM2 Myw3IEBAIGludCBfX3B0aHJlYWRfY3JlYXRlKHB0aHJlYWRfdCAqcmVzdHJpY3QgcmVzLCBjb25z dCBwdGhyZWFkX2F0dHJfdCAqcmVzdHJpY3QgYXR0Ci0gCQluZXctPm5leHQtPnByZXYgPSBuZXc7 Ci0gCQluZXctPnByZXYtPm5leHQgPSBuZXc7Ci0gCX0gZWxzZSB7Ci0tCQlsaWJjLnRocmVhZHNf bWludXNfMS0tOwotKwkJaWYgKCEtLWxpYmMudGhyZWFkc19taW51c18xKSBsaWJjLm5lZWRfbG9j a3MgPSAwOwotIAl9Ci0gCV9fdGxfdW5sb2NrKCk7Ci0gCV9fcmVzdG9yZV9zaWdzKCZzZXQpOwot LS0gCi0yLjIxLjAKLQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy85OGU2ODhh OWRhNWU3YjI5MjVkZGExN2EyZDY4MjBkZGRmMWZiMjg3LnBhdGNoIGIvc3JjcGtncy9tdXNsL3Bh dGNoZXMvOThlNjg4YTlkYTVlN2IyOTI1ZGRhMTdhMmQ2ODIwZGRkZjFmYjI4Ny5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYThiZmE2NmQ2YzQ3ZC4uMDAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy85OGU2ODhhOWRhNWU3YjI5MjVkZGExN2EyZDY4MjBk ZGRmMWZiMjg3LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTM5ICswLDAgQEAKLUZyb20gOThl Njg4YTlkYTVlN2IyOTI1ZGRhMTdhMmQ2ODIwZGRkZjFmYjI4NyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IElzbWFlbCBMdWNlbm8gPGlzbWFlbEBpb2Rldi5jby51az4KLURhdGU6IFN1 biwgMTUgQXVnIDIwMjEgMTc6NTE6NTcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gZGVmaW5lIE5V TEwgYXMgbnVsbHB0ciB3aGVuIHVzZWQgaW4gQysrMTEgb3IgbGF0ZXIKLQotVGhpcyBzaG91bGQg YmUgc2FmZXIgZm9yIGNhc3RpbmcgYW5kIG1vcmUgY29tcGF0aWJsZSB3aXRoIGV4aXN0aW5nIGNv ZGUKLWJhc2VzIHRoYXQgd3JvbmdseSBhc3N1bWUgaXQgbXVzdCBiZSBkZWZpbmVkIGFzIGEgcG9p bnRlci4KLS0tLQotIGluY2x1ZGUvbG9jYWxlLmggfCA0ICsrKy0KLSBpbmNsdWRlL3N0ZGRlZi5o IHwgNCArKystCi0gaW5jbHVkZS9zdGRpby5oICB8IDQgKysrLQotIGluY2x1ZGUvc3RkbGliLmgg fCA0ICsrKy0KLSBpbmNsdWRlL3N0cmluZy5oIHwgNCArKystCi0gaW5jbHVkZS90aW1lLmggICB8 IDQgKysrLQotIGluY2x1ZGUvdW5pc3RkLmggfCA0ICsrKy0KLSBpbmNsdWRlL3djaGFyLmggIHwg NCArKystCi0gOCBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9sb2NhbGUuaCBiL2luY2x1ZGUvbG9jYWxlLmgKLWlu ZGV4IGNlMzg0MzgxYy4uMTExMDZmZWE4IDEwMDY0NAotLS0tIGEvaW5jbHVkZS9sb2NhbGUuaAot KysrIGIvaW5jbHVkZS9sb2NhbGUuaAotQEAgLTcsNyArNyw5IEBAIGV4dGVybiAiQyIgewotIAot ICNpbmNsdWRlIDxmZWF0dXJlcy5oPgotIAotLSNpZmRlZiBfX2NwbHVzcGx1cwotKyNpZiBfX2Nw bHVzcGx1cyA+PSAyMDExMDNMCi0rI2RlZmluZSBOVUxMIG51bGxwdHIKLSsjZWxpZiBkZWZpbmVk KF9fY3BsdXNwbHVzKQotICNkZWZpbmUgTlVMTCAwTAotICNlbHNlCi0gI2RlZmluZSBOVUxMICgo dm9pZCopMCkKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3N0ZGRlZi5oIGIvaW5jbHVkZS9zdGRkZWYu aAotaW5kZXggYmQ3NTM4NTM1Li5mMjViODYzOTYgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3N0ZGRl Zi5oCi0rKysgYi9pbmNsdWRlL3N0ZGRlZi5oCi1AQCAtMSw3ICsxLDkgQEAKLSAjaWZuZGVmIF9T VERERUZfSAotICNkZWZpbmUgX1NURERFRl9ICi0gCi0tI2lmZGVmIF9fY3BsdXNwbHVzCi0rI2lm IF9fY3BsdXNwbHVzID49IDIwMTEwM0wKLSsjZGVmaW5lIE5VTEwgbnVsbHB0cgotKyNlbGlmIGRl ZmluZWQoX19jcGx1c3BsdXMpCi0gI2RlZmluZSBOVUxMIDBMCi0gI2Vsc2UKLSAjZGVmaW5lIE5V TEwgKCh2b2lkKikwKQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3RkaW8uaCBiL2luY2x1ZGUvc3Rk aW8uaAotaW5kZXggMzYwNDE5OGMzLi5kMWVkMDFmMDMgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3N0 ZGlvLmgKLSsrKyBiL2luY2x1ZGUvc3RkaW8uaAotQEAgLTI1LDcgKzI1LDkgQEAgZXh0ZXJuICJD IiB7Ci0gCi0gI2luY2x1ZGUgPGJpdHMvYWxsdHlwZXMuaD4KLSAKLS0jaWZkZWYgX19jcGx1c3Bs dXMKLSsjaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAotKyNkZWZpbmUgTlVMTCBudWxscHRyCi0r I2VsaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKLSAjZGVmaW5lIE5VTEwgMEwKLSAjZWxzZQotICNk ZWZpbmUgTlVMTCAoKHZvaWQqKTApCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9zdGRsaWIuaCBiL2lu Y2x1ZGUvc3RkbGliLmgKLWluZGV4IDdhZjg2ZTNiYy4uYjUwN2NhMzNiIDEwMDY0NAotLS0tIGEv aW5jbHVkZS9zdGRsaWIuaAotKysrIGIvaW5jbHVkZS9zdGRsaWIuaAotQEAgLTcsNyArNyw5IEBA IGV4dGVybiAiQyIgewotIAotICNpbmNsdWRlIDxmZWF0dXJlcy5oPgotIAotLSNpZmRlZiBfX2Nw bHVzcGx1cwotKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCi0rI2RlZmluZSBOVUxMIG51bGxw dHIKLSsjZWxpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotICNkZWZpbmUgTlVMTCAwTAotICNlbHNl Ci0gI2RlZmluZSBOVUxMICgodm9pZCopMCkKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3N0cmluZy5o IGIvaW5jbHVkZS9zdHJpbmcuaAotaW5kZXggNzk1YTJhYmNkLi40M2FkMDk0MmUgMTAwNjQ0Ci0t LS0gYS9pbmNsdWRlL3N0cmluZy5oCi0rKysgYi9pbmNsdWRlL3N0cmluZy5oCi1AQCAtNyw3ICs3 LDkgQEAgZXh0ZXJuICJDIiB7Ci0gCi0gI2luY2x1ZGUgPGZlYXR1cmVzLmg+Ci0gCi0tI2lmZGVm IF9fY3BsdXNwbHVzCi0rI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKLSsjZGVmaW5lIE5VTEwg bnVsbHB0cgotKyNlbGlmIGRlZmluZWQoX19jcGx1c3BsdXMpCi0gI2RlZmluZSBOVUxMIDBMCi0g I2Vsc2UKLSAjZGVmaW5lIE5VTEwgKCh2b2lkKikwKQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvdGlt ZS5oIGIvaW5jbHVkZS90aW1lLmgKLWluZGV4IDU0OTRkZjE4My4uM2Q5NDgzNzIwIDEwMDY0NAot LS0tIGEvaW5jbHVkZS90aW1lLmgKLSsrKyBiL2luY2x1ZGUvdGltZS5oCi1AQCAtNyw3ICs3LDkg QEAgZXh0ZXJuICJDIiB7Ci0gCi0gI2luY2x1ZGUgPGZlYXR1cmVzLmg+Ci0gCi0tI2lmZGVmIF9f Y3BsdXNwbHVzCi0rI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKLSsjZGVmaW5lIE5VTEwgbnVs bHB0cgotKyNlbGlmIGRlZmluZWQoX19jcGx1c3BsdXMpCi0gI2RlZmluZSBOVUxMIDBMCi0gI2Vs c2UKLSAjZGVmaW5lIE5VTEwgKCh2b2lkKikwKQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvdW5pc3Rk LmggYi9pbmNsdWRlL3VuaXN0ZC5oCi1pbmRleCAxMzA2NDAyNjAuLmVlMmRiZThhZiAxMDA2NDQK LS0tLSBhL2luY2x1ZGUvdW5pc3RkLmgKLSsrKyBiL2luY2x1ZGUvdW5pc3RkLmgKLUBAIC0xNSw3 ICsxNSw5IEBAIGV4dGVybiAiQyIgewotICNkZWZpbmUgU0VFS19DVVIgMQotICNkZWZpbmUgU0VF S19FTkQgMgotIAotLSNpZmRlZiBfX2NwbHVzcGx1cwotKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDEx MDNMCi0rI2RlZmluZSBOVUxMIG51bGxwdHIKLSsjZWxpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQot ICNkZWZpbmUgTlVMTCAwTAotICNlbHNlCi0gI2RlZmluZSBOVUxMICgodm9pZCopMCkKLWRpZmYg LS1naXQgYS9pbmNsdWRlL3djaGFyLmggYi9pbmNsdWRlL3djaGFyLmgKLWluZGV4IDg4ZWI1NWIx OC4uZWQ1ZDc3NGRmIDEwMDY0NAotLS0tIGEvaW5jbHVkZS93Y2hhci5oCi0rKysgYi9pbmNsdWRl L3djaGFyLmgKLUBAIC0zOCw3ICszOCw5IEBAIGV4dGVybiAiQyIgewotICNkZWZpbmUgV0NIQVJf TUlOICgtMS0weDdmZmZmZmZmK0wnXDAnKQotICNlbmRpZgotIAotLSNpZmRlZiBfX2NwbHVzcGx1 cwotKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCi0rI2RlZmluZSBOVUxMIG51bGxwdHIKLSsj ZWxpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotICNkZWZpbmUgTlVMTCAwTAotICNlbHNlCi0gI2Rl ZmluZSBOVUxMICgodm9pZCopMCkKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMv OTlkNTA5OGE4ODVmZWFlM2FlOGMzMmI0MDczNTBkOGNhODVkZDE3OC5wYXRjaCBiL3NyY3BrZ3Mv bXVzbC9wYXRjaGVzLzk5ZDUwOThhODg1ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzgucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlMDNhZDE2MDdjZTkuLjAwMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvOTlkNTA5OGE4ODVmZWFlM2FlOGMzMmI0 MDczNTBkOGNhODVkZDE3OC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBACi1G cm9tIDk5ZDUwOThhODg1ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzggTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBKdWxpZW4gUmFtc2VpZXIgPGoucmFtc2VpZXJAZ21haWwuY29t PgotRGF0ZTogU3VuLCAxOCBPY3QgMjAyMCAxMjoxNTowNiAtMDQwMAotU3ViamVjdDogdXBkYXRl IGNyeXB0X2Jsb3dmaXNoIHRvIHN1cHBvcnQgJDJiJCBwcmVmaXgKLQotTWVyZ2UgY2hhbmdlcyBm cm9tIFNvbGFyIERlc2lnbmVyJ3MgY3J5cHRfYmxvd2Zpc2ggdjEuMy4gVGhpcyBtYWtlcwotY3J5 cHRfYmxvd2Zpc2ggZnVsbHkgY29tcGF0aWJsZSB3aXRoIE9wZW5CU0QncyBiY3J5cHQgYnkgYWRk aW5nCi1zdXBwb3J0IGZvciB0aGUgJDJiJCBwcmVmaXggKHdoaWNoIGJlaGF2ZXMgdGhlIHNhbWUg YXMKLWNyeXB0X2Jsb3dmaXNoJ3MgJDJ5JCkuCi0tLS0KLSBzcmMvY3J5cHQvY3J5cHRfYmxvd2Zp c2guYyB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxl IGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQotCi0obGltaXRlZCB0 byAnc3JjL2NyeXB0L2NyeXB0X2Jsb3dmaXNoLmMnKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2NyeXB0 L2NyeXB0X2Jsb3dmaXNoLmMgYi9zcmMvY3J5cHQvY3J5cHRfYmxvd2Zpc2guYwotaW5kZXggZDNm Nzk4NTEuLmQ3MjI2MDdiIDEwMDY0NAotLS0tIGEvc3JjL2NyeXB0L2NyeXB0X2Jsb3dmaXNoLmMK LSsrKyBiL3NyYy9jcnlwdC9jcnlwdF9ibG93ZmlzaC5jCi1AQCAtMTUsNyArMTUsNyBAQAotICAq IE5vIGNvcHlyaWdodCBpcyBjbGFpbWVkLCBhbmQgdGhlIHNvZnR3YXJlIGlzIGhlcmVieSBwbGFj ZWQgaW4gdGhlIHB1YmxpYwotICAqIGRvbWFpbi4gIEluIGNhc2UgdGhpcyBhdHRlbXB0IHRvIGRp c2NsYWltIGNvcHlyaWdodCBhbmQgcGxhY2UgdGhlIHNvZnR3YXJlCi0gICogaW4gdGhlIHB1Ymxp YyBkb21haW4gaXMgZGVlbWVkIG51bGwgYW5kIHZvaWQsIHRoZW4gdGhlIHNvZnR3YXJlIGlzCi0t ICogQ29weXJpZ2h0IChjKSAxOTk4LTIwMTIgU29sYXIgRGVzaWduZXIgYW5kIGl0IGlzIGhlcmVi eSByZWxlYXNlZCB0byB0aGUKLSsgKiBDb3B5cmlnaHQgKGMpIDE5OTgtMjAxNCBTb2xhciBEZXNp Z25lciBhbmQgaXQgaXMgaGVyZWJ5IHJlbGVhc2VkIHRvIHRoZQotICAqIGdlbmVyYWwgcHVibGlj IHVuZGVyIHRoZSBmb2xsb3dpbmcgdGVybXM6Ci0gICoKLSAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLUBAIC0zMSwx MiArMzEsMTIgQEAKLSAgKiB5b3UgcGxhY2UgdGhpcyBjb2RlIGFuZCBhbnkgbW9kaWZpY2F0aW9u cyB5b3UgbWFrZSB1bmRlciBhIGxpY2Vuc2UKLSAgKiBvZiB5b3VyIGNob2ljZS4KLSAgKgotLSAq IFRoaXMgaW1wbGVtZW50YXRpb24gaXMgbW9zdGx5IGNvbXBhdGlibGUgd2l0aCBPcGVuQlNEJ3Mg YmNyeXB0LmMgKHByZWZpeAotLSAqICIkMmEkIikgYnkgTmllbHMgUHJvdm9zIDxwcm92b3MgYXQg Y2l0aS51bWljaC5lZHU+LCBhbmQgdXNlcyBzb21lIG9mIGhpcwotLSAqIGlkZWFzLiAgVGhlIHBh c3N3b3JkIGhhc2hpbmcgYWxnb3JpdGhtIHdhcyBkZXNpZ25lZCBieSBEYXZpZCBNYXppZXJlcwot LSAqIDxkbSBhdCBsY3MubWl0LmVkdT4uICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgbGV2 ZWwgb2YgY29tcGF0aWJpbGl0eSwKLS0gKiBwbGVhc2UgcmVmZXIgdG8gdGhlIGNvbW1lbnRzIGlu IEJGX3NldF9rZXkoKSBiZWxvdyBhbmQgdG8gdGhlIGluY2x1ZGVkCi0tICogY3J5cHQoMykgbWFu IHBhZ2UuCi0rICogVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBmdWxseSBjb21wYXRpYmxlIHdpdGgg T3BlbkJTRCdzIGJjcnlwdC5jIGZvciBwcmVmaXgKLSsgKiAiJDJiJCIsIG9yaWdpbmFsbHkgYnkg TmllbHMgUHJvdm9zIDxwcm92b3MgYXQgY2l0aS51bWljaC5lZHU+LCBhbmQgaXQgdXNlcwotKyAq IHNvbWUgb2YgaGlzIGlkZWFzLiAgVGhlIHBhc3N3b3JkIGhhc2hpbmcgYWxnb3JpdGhtIHdhcyBk ZXNpZ25lZCBieSBEYXZpZAotKyAqIE1hemllcmVzIDxkbSBhdCBsY3MubWl0LmVkdT4uICBGb3Ig aW5mb3JtYXRpb24gb24gdGhlIGxldmVsIG9mCi0rICogY29tcGF0aWJpbGl0eSBmb3IgYmNyeXB0 IGhhc2ggcHJlZml4ZXMgb3RoZXIgdGhhbiAiJDJiJCIsIHBsZWFzZSByZWZlciB0bwotKyAqIHRo ZSBjb21tZW50cyBpbiBCRl9zZXRfa2V5KCkgYmVsb3cgYW5kIHRvIHRoZSBpbmNsdWRlZCBjcnlw dCgzKSBtYW4gcGFnZS4KLSAgKgotICAqIFRoZXJlJ3MgYSBwYXBlciBvbiB0aGUgYWxnb3JpdGht IHRoYXQgZXhwbGFpbnMgaXRzIGRlc2lnbiBkZWNpc2lvbnM6Ci0gICoKLUBAIC01MzMsNiArNTMz LDcgQEAgc3RhdGljIHZvaWQgQkZfc2V0X2tleShjb25zdCBjaGFyICprZXksIEJGX2tleSBleHBh bmRlZCwgQkZfa2V5IGluaXRpYWwsCi0gICogVmFsaWQgY29tYmluYXRpb25zIG9mIHNldHRpbmdz IGFyZToKLSAgKgotICAqIFByZWZpeCAiJDJhJCI6IGJ1ZyA9IDAsIHNhZmV0eSA9IDB4MTAwMDAK LSsgKiBQcmVmaXggIiQyYiQiOiBidWcgPSAwLCBzYWZldHkgPSAwCi0gICogUHJlZml4ICIkMngk IjogYnVnID0gMSwgc2FmZXR5ID0gMAotICAqIFByZWZpeCAiJDJ5JCI6IGJ1ZyA9IDAsIHNhZmV0 eSA9IDAKLSAgKi8KLUBAIC01OTYsMTIgKzU5NywxNCBAQCBzdGF0aWMgdm9pZCBCRl9zZXRfa2V5 KGNvbnN0IGNoYXIgKmtleSwgQkZfa2V5IGV4cGFuZGVkLCBCRl9rZXkgaW5pdGlhbCwKLSAJaW5p dGlhbFswXSBePSBzaWduOwotIH0KLSAKLStzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBmbGFn c19ieV9zdWJ0eXBlWzI2XSA9IHsKLSsJMiwgNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwKLSsJMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgNCwgMAotK307Ci0rCi0g c3RhdGljIGNoYXIgKkJGX2NyeXB0KGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqc2V0dGlu ZywKLSAJY2hhciAqb3V0cHV0LCBCRl93b3JkIG1pbikKLSB7Ci0tCXN0YXRpYyBjb25zdCB1bnNp Z25lZCBjaGFyIGZsYWdzX2J5X3N1YnR5cGVbMjZdID0KLS0JCXsyLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLAotLQkJMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwg NCwgMH07Ci0gCXN0cnVjdCB7Ci0gCQlCRl9jdHggY3R4OwotIAkJQkZfa2V5IGV4cGFuZGVkX2tl eTsKLUBAIC03NDYsOSArNzQ5LDExIEBAIGNoYXIgKl9fY3J5cHRfYmxvd2Zpc2goY29uc3QgY2hh ciAqa2V5LCBjb25zdCBjaGFyICpzZXR0aW5nLCBjaGFyICpvdXRwdXQpCi0gewotIAljb25zdCBj aGFyICp0ZXN0X2tleSA9ICI4YiBceGQwXHhjMVx4ZDJceGNmXHhjY1x4ZDgiOwotIAljb25zdCBj aGFyICp0ZXN0X3NldHRpbmcgPSAiJDJhJDAwJGFiY2RlZmdoaWprbG1ub3BxcnN0dXUiOwotLQlz dGF0aWMgY29uc3QgY2hhciB0ZXN0X2hhc2hbMl1bMzRdID0KLS0JCXsiVlVyUG1YRDZxL25WU1Nw N3BORGhDUjkwNzFJZklSZVwwXHg1NSIsIC8qICQyeCQgKi8KLS0JCSJpMUQ3MDl2ZmFtdWxpbWxH Y3EwcXEzVXZ1VWFzdkVhXDBceDU1In07IC8qICQyYSQsICQyeSQgKi8KLSsJc3RhdGljIGNvbnN0 IGNoYXIgdGVzdF9oYXNoZXNbMl1bMzRdID0gewotKwkJImkxRDcwOXZmYW11bGltbEdjcTBxcTNV dnVVYXN2RWFcMFx4NTUiLCAvKiAnYScsICdiJywgJ3knICovCi0rCQkiVlVyUG1YRDZxL25WU1Nw N3BORGhDUjkwNzFJZklSZVwwXHg1NSIsIC8qICd4JyAqLwotKwl9OwotKwljb25zdCBjaGFyICp0 ZXN0X2hhc2ggPSB0ZXN0X2hhc2hlc1swXTsKLSAJY2hhciAqcmV0dmFsOwotIAljb25zdCBjaGFy ICpwOwotIAlpbnQgb2s7Ci1AQCAtNzY4LDggKzc3MywxMSBAQCBjaGFyICpfX2NyeXB0X2Jsb3dm aXNoKGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqc2V0dGluZywgY2hhciAqb3V0cHV0KQot ICAqIGRldGVjdGVkIGJ5IHRoZSBzZWxmLXRlc3QuCi0gICovCi0gCW1lbWNweShidWYucywgdGVz dF9zZXR0aW5nLCBzaXplb2YoYnVmLnMpKTsKLS0JaWYgKHJldHZhbCkKLSsJaWYgKHJldHZhbCkg ewotKwkJdW5zaWduZWQgaW50IGZsYWdzID0gZmxhZ3NfYnlfc3VidHlwZVtzZXR0aW5nWzJdIC0g J2EnXTsKLSsJCXRlc3RfaGFzaCA9IHRlc3RfaGFzaGVzW2ZsYWdzICYgMV07Ci0gCQlidWYuc1sy XSA9IHNldHRpbmdbMl07Ci0rCX0KLSAJbWVtc2V0KGJ1Zi5vLCAweDU1LCBzaXplb2YoYnVmLm8p KTsKLSAJYnVmLm9bc2l6ZW9mKGJ1Zi5vKSAtIDFdID0gMDsKLSAJcCA9IEJGX2NyeXB0KHRlc3Rf a2V5LCBidWYucywgYnVmLm8sIDEpOwotQEAgLTc3Nyw3ICs3ODUsNyBAQCBjaGFyICpfX2NyeXB0 X2Jsb3dmaXNoKGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hhciAqc2V0dGluZywgY2hhciAqb3V0 cHV0KQotIAlvayA9IChwID09IGJ1Zi5vICYmCi0gCSAgICAhbWVtY21wKHAsIGJ1Zi5zLCA3ICsg MjIpICYmCi0gCSAgICAhbWVtY21wKHAgKyAoNyArIDIyKSwKLS0JICAgIHRlc3RfaGFzaFtidWYu c1syXSAmIDFdLAotKwkgICAgdGVzdF9oYXNoLAotIAkgICAgMzEgKyAxICsgMSArIDEpKTsKLSAK LSAJewotLS0gCi1jZ2l0IHYxLjIuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hl cy9DVkUtMjAyMC0yODkyOC5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL0NWRS0yMDIwLTI4 OTI4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiM2ZmM2I0ZWUwOGYwLi4w MDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL0NWRS0yMDIwLTI4OTI4LnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLS0tIGEvc3JjL211bHRpYnl0ZS93 Y3NucnRvbWJzLmMKLSsrKyBiL3NyYy9tdWx0aWJ5dGUvd2NzbnJ0b21icy5jCi1AQCAtMSw0MSAr MSwzMyBAQAotICNpbmNsdWRlIDx3Y2hhci5oPgotKyNpbmNsdWRlIDxsaW1pdHMuaD4KLSsjaW5j bHVkZSA8c3RyaW5nLmg+Ci0gCi0gc2l6ZV90IHdjc25ydG9tYnMoY2hhciAqcmVzdHJpY3QgZHN0 LCBjb25zdCB3Y2hhcl90ICoqcmVzdHJpY3Qgd2NzLCBzaXplX3Qgd24sIHNpemVfdCBuLCBtYnN0 YXRlX3QgKnJlc3RyaWN0IHN0KQotIHsKLS0Jc2l6ZV90IGwsIGNudD0wLCBuMjsKLS0JY2hhciAq cywgYnVmWzI1Nl07Ci0gCWNvbnN0IHdjaGFyX3QgKndzID0gKndjczsKLS0JY29uc3Qgd2NoYXJf dCAqdG1wX3dzOwotLQotLQlpZiAoIWRzdCkgcyA9IGJ1ZiwgbiA9IHNpemVvZiBidWY7Ci0tCWVs c2UgcyA9IGRzdDsKLS0KLS0Jd2hpbGUgKCB3cyAmJiBuICYmICggKG4yPXduKT49biB8fCBuMj4z MiApICkgewotLQkJaWYgKG4yPj1uKSBuMj1uOwotLQkJdG1wX3dzID0gd3M7Ci0tCQlsID0gd2Nz cnRvbWJzKHMsICZ3cywgbjIsIDApOwotLQkJaWYgKCEobCsxKSkgewotLQkJCWNudCA9IGw7Ci0t CQkJbiA9IDA7Ci0rCXNpemVfdCBjbnQgPSAwOwotKwlpZiAoIWRzdCkgbj0wOwotKwl3aGlsZSAo d3MgJiYgd24pIHsKLSsJCWNoYXIgdG1wW01CX0xFTl9NQVhdOwotKwkJc2l6ZV90IGwgPSB3Y3J0 b21iKG48TUJfTEVOX01BWCA/IHRtcCA6IGRzdCwgKndzLCAwKTsKLSsJCWlmIChsPT0tMSkgewot KwkJCWNudCA9IC0xOwotIAkJCWJyZWFrOwotIAkJfQotLQkJaWYgKHMgIT0gYnVmKSB7Ci0tCQkJ cyArPSBsOwotKwkJaWYgKGRzdCkgewotKwkJCWlmIChuPE1CX0xFTl9NQVgpIHsKLSsJCQkJaWYg KGw+bikgYnJlYWs7Ci0rCQkJCW1lbWNweShkc3QsIHRtcCwgbCk7Ci0rCQkJfQotKwkJCWRzdCAr PSBsOwotIAkJCW4gLT0gbDsKLSAJCX0KLS0JCXduID0gd3MgPyB3biAtICh3cyAtIHRtcF93cykg OiAwOwotLQkJY250ICs9IGw7Ci0tCX0KLS0JaWYgKHdzKSB3aGlsZSAobiAmJiB3bikgewotLQkJ bCA9IHdjcnRvbWIocywgKndzLCAwKTsKLS0JCWlmICgobCsxKTw9MSkgewotLQkJCWlmICghbCkg d3MgPSAwOwotLQkJCWVsc2UgY250ID0gbDsKLSsJCWlmICghKndzKSB7Ci0rCQkJd3MgPSAwOwot IAkJCWJyZWFrOwotIAkJfQotLQkJd3MrKzsgd24tLTsKLS0JCS8qIHNhZmUgLSB0aGlzIGxvb3Ag cnVucyBmZXdlciB0aGFuIHNpemVvZihidWYpIHRpbWVzICovCi0tCQlzKz1sOyBuLT1sOwotKwkJ d3MrKzsKLSsJCXduLS07Ci0gCQljbnQgKz0gbDsKLSAJfQotIAlpZiAoZHN0KSAqd2NzID0gd3M7 Ci0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2FhcmNoNjQtZnJlZ3MucGF0Y2gg Yi9zcmNwa2dzL211c2wvcGF0Y2hlcy9hYXJjaDY0LWZyZWdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMjRlZWQxMWE4ZTUzLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvbXVzbC9wYXRjaGVzL2FhcmNoNjQtZnJlZ3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwz NyArMCwwIEBACi1Vc2UgdHlwZXMgY29tcGF0aWJsZSB3aXRoIGdsaWJjL2tlcm5lbCBoZWFkZXJz LgotCi1kaWZmIC0tZ2l0IGEvYXJjaC9hYXJjaDY0L2JpdHMvc2lnbmFsLmggYi9hcmNoL2FhcmNo NjQvYml0cy9zaWduYWwuaAotaW5kZXggYjcxMjYxZjUuLjUwOThjNzM0IDEwMDY0NAotLS0tIGEv YXJjaC9hYXJjaDY0L2JpdHMvc2lnbmFsLmgKLSsrKyBiL2FyY2gvYWFyY2g2NC9iaXRzL3NpZ25h bC5oCi1AQCAtMTEsNyArMTEsNyBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgZ3JlZ190OwotIHR5 cGVkZWYgdW5zaWduZWQgbG9uZyBncmVnc2V0X3RbMzRdOwotIAotIHR5cGVkZWYgc3RydWN0IHsK LS0JbG9uZyBkb3VibGUgdnJlZ3NbMzJdOwotKwlfX3VpbnQxMjhfdCB2cmVnc1szMl07Ci0gCXVu c2lnbmVkIGludCBmcHNyOwotIAl1bnNpZ25lZCBpbnQgZnBjcjsKLSB9IGZwcmVnc2V0X3Q7Ci1A QCAtMzQsNyArMzQsNyBAQCBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQgewotIAlzdHJ1Y3QgX2FhcmNo NjRfY3R4IGhlYWQ7Ci0gCXVuc2lnbmVkIGludCBmcHNyOwotIAl1bnNpZ25lZCBpbnQgZnBjcjsK LS0JbG9uZyBkb3VibGUgdnJlZ3NbMzJdOwotKwlfX3VpbnQxMjhfdCB2cmVnc1szMl07Ci0gfTsK LSBzdHJ1Y3QgZXNyX2NvbnRleHQgewotIAlzdHJ1Y3QgX2FhcmNoNjRfY3R4IGhlYWQ7Ci1kaWZm IC0tZ2l0IGEvYXJjaC9hYXJjaDY0L2JpdHMvdXNlci5oIGIvYXJjaC9hYXJjaDY0L2JpdHMvdXNl ci5oCi1pbmRleCBkMTJjZGY3Zi4uOGExMDAyYWEgMTAwNjQ0Ci0tLS0gYS9hcmNoL2FhcmNoNjQv Yml0cy91c2VyLmgKLSsrKyBiL2FyY2gvYWFyY2g2NC9iaXRzL3VzZXIuaAotQEAgLTYsNyArNiw3 IEBAIHN0cnVjdCB1c2VyX3JlZ3Nfc3RydWN0IHsKLSB9OwotIAotIHN0cnVjdCB1c2VyX2Zwc2lt ZF9zdHJ1Y3QgewotLQlsb25nIGRvdWJsZSB2cmVnc1szMl07Ci0rCV9fdWludDEyOF90IHZyZWdz WzMyXTsKLSAJdW5zaWduZWQgaW50IGZwc3I7Ci0gCXVuc2lnbmVkIGludCBmcGNyOwotIH07CmRp ZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtcXNvcnRfci5wYXRjaCBiL3NyY3Br Z3MvbXVzbC9wYXRjaGVzL2FkZC1xc29ydF9yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAzZDg1NDk2YWZiNjlmLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9w YXRjaGVzL2FkZC1xc29ydF9yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjAxICswLDAgQEAK LUZyb20gYjc2ZjM3ZmQ1NjI1ZDAzODE0MWI1MjE4NDk1NmZiNGI3ODM4ZTlhNSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT89QzM9ODlyaWNvPTIwTm9ndWVpcmE/PSA8 ZXJpY29uckBkaXNyb290Lm9yZz4KLURhdGU6IFR1ZSwgOSBNYXIgMjAyMSAxODowMjoxMyAtMDMw MAotU3ViamVjdDogW1BBVENIXSBhZGQgcXNvcnRfciBhbmQgbWFrZSBxc29ydCBhIHdyYXBwZXIg YXJvdW5kIGl0Ci0KLXdlIG1ha2UgcXNvcnQgYSB3cmFwcGVyIGJ5IHByb3ZpZGluZyBhIHdyYXBw ZXJfY21wIGZ1bmN0aW9uIHRoYXQgdXNlcwotdGhlIGV4dHJhIGFyZ3VtZW50IGFzIGEgZnVuY3Rp b24gcG9pbnRlci4gc2hvdWxkIGJlIG9wdGltaXplZCB0byBhIHRhaWwKLWNhbGwgb24gbW9zdCBh cmNoaXRlY3R1cmVzLCBhcyBsb25nIGFzIGl0J3MgYnVpbHQgd2l0aAotLWZvbWl0LWZyYW1lLXBv aW50ZXIsIHNvIHRoZSBwZXJmb3JtYW5jZSBpbXBhY3Qgc2hvdWxkIGJlIG1pbmltYWwuCi0KLXRv IGtlZXAgdGhlIGdpdCBoaXN0b3J5IGNsZWFuLCBmb3Igbm93IHFzb3J0X3IgaXMgaW1wbGVtZW50 ZWQgaW4gcXNvcnQuYwotYW5kIHFzb3J0IGlzIGltcGxlbWVudGVkIGluIHFzb3J0X25yLmMuICBx c29ydC5jIGFsc28gcmVjZWl2ZWQgYSBmZXcKLXRyaXZpYWwgY2xlYW51cHMsIGluY2x1ZGluZyBy ZXBsYWNpbmcgKCpjbXApKCkgY2FsbHMgd2l0aCBjbXAoKS4KLXFzb3J0X25yLmMgY29udGFpbnMg b25seSB3cmFwcGVyX2NtcCBhbmQgcXNvcnQgYXMgYSBxc29ydF9yIHdyYXBwZXIKLWl0c2VsZi4K LS0tLQotIGluY2x1ZGUvc3RkbGliLmggICAgICB8ICAxICsKLSBzcmMvaW5jbHVkZS9zdGRsaWIu aCAgfCAgMSArCi0gc3JjL3N0ZGxpYi9xc29ydC5jICAgIHwgMzcgKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLQotIHNyYy9zdGRsaWIvcXNvcnRfbnIuYyB8IDE0ICsrKysrKysr KysrKysrCi0gNCBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMo LSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3N0ZGxpYi9xc29ydF9uci5jCi0KLWRpZmYgLS1n aXQgYS9pbmNsdWRlL3N0ZGxpYi5oIGIvaW5jbHVkZS9zdGRsaWIuaAotaW5kZXggYjU0YTA1MWZl Li43YWY4NmUzYmMgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3N0ZGxpYi5oCi0rKysgYi9pbmNsdWRl L3N0ZGxpYi5oCi1AQCAtMTQ2LDYgKzE0Niw3IEBAIGludCBjbGVhcmVudih2b2lkKTsKLSAjZGVm aW5lIFdDT1JFRFVNUChzKSAoKHMpICYgMHg4MCkKLSAjZGVmaW5lIFdJRkNPTlRJTlVFRChzKSAo KHMpID09IDB4ZmZmZikKLSB2b2lkICpyZWFsbG9jYXJyYXkgKHZvaWQgKiwgc2l6ZV90LCBzaXpl X3QpOwotK3ZvaWQgcXNvcnRfciAodm9pZCAqLCBzaXplX3QsIHNpemVfdCwgaW50ICgqKShjb25z dCB2b2lkICosIGNvbnN0IHZvaWQgKiwgdm9pZCAqKSwgdm9pZCAqKTsKLSAjZW5kaWYKLSAKLSAj aWZkZWYgX0dOVV9TT1VSQ0UKLWRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdGRsaWIuaCBiL3Ny Yy9pbmNsdWRlL3N0ZGxpYi5oCi1pbmRleCBlOWRhMjAxNTguLjgxMmIwNGRlMiAxMDA2NDQKLS0t LSBhL3NyYy9pbmNsdWRlL3N0ZGxpYi5oCi0rKysgYi9zcmMvaW5jbHVkZS9zdGRsaWIuaAotQEAg LTgsNiArOCw3IEBAIGhpZGRlbiB2b2lkIF9fZW52X3JtX2FkZChjaGFyICosIGNoYXIgKik7Ci0g aGlkZGVuIGludCBfX21rb3N0ZW1wcyhjaGFyICosIGludCwgaW50KTsKLSBoaWRkZW4gaW50IF9f cHRzbmFtZV9yKGludCwgY2hhciAqLCBzaXplX3QpOwotIGhpZGRlbiBjaGFyICpfX3JhbmRuYW1l KGNoYXIgKik7Ci0raGlkZGVuIHZvaWQgX19xc29ydF9yICh2b2lkICosIHNpemVfdCwgc2l6ZV90 LCBpbnQgKCopKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqLCB2b2lkICopLCB2b2lkICopOwot IAotIGhpZGRlbiB2b2lkICpfX2xpYmNfbWFsbG9jKHNpemVfdCk7Ci0gaGlkZGVuIHZvaWQgKl9f bGliY19tYWxsb2NfaW1wbChzaXplX3QpOwotZGlmZiAtLWdpdCBhL3NyYy9zdGRsaWIvcXNvcnQu YyBiL3NyYy9zdGRsaWIvcXNvcnQuYwotaW5kZXggZGE1OGZkMzE3Li4zMTRkZGMyOWQgMTAwNjQ0 Ci0tLS0gYS9zcmMvc3RkbGliL3Fzb3J0LmMKLSsrKyBiL3NyYy9zdGRsaWIvcXNvcnQuYwotQEAg LTI0LDYgKzI0LDcgQEAKLSAvKiBTbW9vdGhzb3J0LCBhbiBhZGFwdGl2ZSB2YXJpYW50IG9mIEhl YXBzb3J0LiAgTWVtb3J5IHVzYWdlOiBPKDEpLgotICAgIFJ1biB0aW1lOiBXb3JzdCBjYXNlIE8o biBsb2cgbiksIGNsb3NlIHRvIE8obikgaW4gdGhlIG1vc3RseS1zb3J0ZWQgY2FzZS4gKi8KLSAK LSsjZGVmaW5lIF9CU0RfU09VUkNFCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotICNpbmNsdWRlIDxz dGRsaWIuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci1AQCAtMzEsNyArMzIsNyBAQAotICNpbmNs dWRlICJhdG9taWMuaCIKLSAjZGVmaW5lIG50eih4KSBhX2N0el9sKCh4KSkKLSAKLS10eXBlZGVm IGludCAoKmNtcGZ1bikoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopOwotK3R5cGVkZWYgaW50 ICgqY21wZnVuKShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKiwgdm9pZCAqKTsKLSAKLSBzdGF0 aWMgaW5saW5lIGludCBwbnR6KHNpemVfdCBwWzJdKSB7Ci0gCWludCByID0gbnR6KHBbMF0gLSAx KTsKLUBAIC04OCw3ICs4OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzaHIoc2l6ZV90IHBbMl0s IGludCBuKQotIAlwWzFdID4+PSBuOwotIH0KLSAKLS1zdGF0aWMgdm9pZCBzaWZ0KHVuc2lnbmVk IGNoYXIgKmhlYWQsIHNpemVfdCB3aWR0aCwgY21wZnVuIGNtcCwgaW50IHBzaGlmdCwgc2l6ZV90 IGxwW10pCi0rc3RhdGljIHZvaWQgc2lmdCh1bnNpZ25lZCBjaGFyICpoZWFkLCBzaXplX3Qgd2lk dGgsIGNtcGZ1biBjbXAsIHZvaWQgKmFyZywgaW50IHBzaGlmdCwgc2l6ZV90IGxwW10pCi0gewot IAl1bnNpZ25lZCBjaGFyICpydCwgKmxmOwotIAl1bnNpZ25lZCBjaGFyICphclsxNCAqIHNpemVv ZihzaXplX3QpICsgMV07Ci1AQCAtOTksMTAgKzEwMCwxMCBAQCBzdGF0aWMgdm9pZCBzaWZ0KHVu c2lnbmVkIGNoYXIgKmhlYWQsIHNpemVfdCB3aWR0aCwgY21wZnVuIGNtcCwgaW50IHBzaGlmdCwg c2l6ZQotIAkJcnQgPSBoZWFkIC0gd2lkdGg7Ci0gCQlsZiA9IGhlYWQgLSB3aWR0aCAtIGxwW3Bz aGlmdCAtIDJdOwotIAotLQkJaWYoKCpjbXApKGFyWzBdLCBsZikgPj0gMCAmJiAoKmNtcCkoYXJb MF0sIHJ0KSA+PSAwKSB7Ci0rCQlpZihjbXAoYXJbMF0sIGxmLCBhcmcpID49IDAgJiYgY21wKGFy WzBdLCBydCwgYXJnKSA+PSAwKSB7Ci0gCQkJYnJlYWs7Ci0gCQl9Ci0tCQlpZigoKmNtcCkobGYs IHJ0KSA+PSAwKSB7Ci0rCQlpZihjbXAobGYsIHJ0LCBhcmcpID49IDApIHsKLSAJCQlhcltpKytd ID0gbGY7Ci0gCQkJaGVhZCA9IGxmOwotIAkJCXBzaGlmdCAtPSAxOwotQEAgLTExNSw3ICsxMTYs NyBAQCBzdGF0aWMgdm9pZCBzaWZ0KHVuc2lnbmVkIGNoYXIgKmhlYWQsIHNpemVfdCB3aWR0aCwg Y21wZnVuIGNtcCwgaW50IHBzaGlmdCwgc2l6ZQotIAljeWNsZSh3aWR0aCwgYXIsIGkpOwotIH0K LSAKLS1zdGF0aWMgdm9pZCB0cmlua2xlKHVuc2lnbmVkIGNoYXIgKmhlYWQsIHNpemVfdCB3aWR0 aCwgY21wZnVuIGNtcCwgc2l6ZV90IHBwWzJdLCBpbnQgcHNoaWZ0LCBpbnQgdHJ1c3R5LCBzaXpl X3QgbHBbXSkKLStzdGF0aWMgdm9pZCB0cmlua2xlKHVuc2lnbmVkIGNoYXIgKmhlYWQsIHNpemVf dCB3aWR0aCwgY21wZnVuIGNtcCwgdm9pZCAqYXJnLCBzaXplX3QgcHBbMl0sIGludCBwc2hpZnQs IGludCB0cnVzdHksIHNpemVfdCBscFtdKQotIHsKLSAJdW5zaWduZWQgY2hhciAqc3RlcHNvbiwK LSAJICAgICAgICAgICAgICAqcnQsICpsZjsKLUBAIC0xMzAsMTMgKzEzMSwxMyBAQCBzdGF0aWMg dm9pZCB0cmlua2xlKHVuc2lnbmVkIGNoYXIgKmhlYWQsIHNpemVfdCB3aWR0aCwgY21wZnVuIGNt cCwgc2l6ZV90IHBwWzJdLAotIAlhclswXSA9IGhlYWQ7Ci0gCXdoaWxlKHBbMF0gIT0gMSB8fCBw WzFdICE9IDApIHsKLSAJCXN0ZXBzb24gPSBoZWFkIC0gbHBbcHNoaWZ0XTsKLS0JCWlmKCgqY21w KShzdGVwc29uLCBhclswXSkgPD0gMCkgewotKwkJaWYoY21wKHN0ZXBzb24sIGFyWzBdLCBhcmcp IDw9IDApIHsKLSAJCQlicmVhazsKLSAJCX0KLSAJCWlmKCF0cnVzdHkgJiYgcHNoaWZ0ID4gMSkg ewotIAkJCXJ0ID0gaGVhZCAtIHdpZHRoOwotIAkJCWxmID0gaGVhZCAtIHdpZHRoIC0gbHBbcHNo aWZ0IC0gMl07Ci0tCQkJaWYoKCpjbXApKHJ0LCBzdGVwc29uKSA+PSAwIHx8ICgqY21wKShsZiwg c3RlcHNvbikgPj0gMCkgewotKwkJCWlmKGNtcChydCwgc3RlcHNvbiwgYXJnKSA+PSAwIHx8IGNt cChsZiwgc3RlcHNvbiwgYXJnKSA+PSAwKSB7Ci0gCQkJCWJyZWFrOwotIAkJCX0KLSAJCX0KLUBA IC0xNTAsMTEgKzE1MSwxMSBAQCBzdGF0aWMgdm9pZCB0cmlua2xlKHVuc2lnbmVkIGNoYXIgKmhl YWQsIHNpemVfdCB3aWR0aCwgY21wZnVuIGNtcCwgc2l6ZV90IHBwWzJdLAotIAl9Ci0gCWlmKCF0 cnVzdHkpIHsKLSAJCWN5Y2xlKHdpZHRoLCBhciwgaSk7Ci0tCQlzaWZ0KGhlYWQsIHdpZHRoLCBj bXAsIHBzaGlmdCwgbHApOwotKwkJc2lmdChoZWFkLCB3aWR0aCwgY21wLCBhcmcsIHBzaGlmdCwg bHApOwotIAl9Ci0gfQotIAotLXZvaWQgcXNvcnQodm9pZCAqYmFzZSwgc2l6ZV90IG5lbCwgc2l6 ZV90IHdpZHRoLCBjbXBmdW4gY21wKQotK3ZvaWQgX19xc29ydF9yKHZvaWQgKmJhc2UsIHNpemVf dCBuZWwsIHNpemVfdCB3aWR0aCwgY21wZnVuIGNtcCwgdm9pZCAqYXJnKQotIHsKLSAJc2l6ZV90 IGxwWzEyKnNpemVvZihzaXplX3QpXTsKLSAJc2l6ZV90IGksIHNpemUgPSB3aWR0aCAqIG5lbDsK LUBAIC0xNzMsMTYgKzE3NCwxNiBAQCB2b2lkIHFzb3J0KHZvaWQgKmJhc2UsIHNpemVfdCBuZWws IHNpemVfdCB3aWR0aCwgY21wZnVuIGNtcCkKLSAKLSAJd2hpbGUoaGVhZCA8IGhpZ2gpIHsKLSAJ CWlmKChwWzBdICYgMykgPT0gMykgewotLQkJCXNpZnQoaGVhZCwgd2lkdGgsIGNtcCwgcHNoaWZ0 LCBscCk7Ci0rCQkJc2lmdChoZWFkLCB3aWR0aCwgY21wLCBhcmcsIHBzaGlmdCwgbHApOwotIAkJ CXNocihwLCAyKTsKLSAJCQlwc2hpZnQgKz0gMjsKLSAJCX0gZWxzZSB7Ci0gCQkJaWYobHBbcHNo aWZ0IC0gMV0gPj0gaGlnaCAtIGhlYWQpIHsKLS0JCQkJdHJpbmtsZShoZWFkLCB3aWR0aCwgY21w LCBwLCBwc2hpZnQsIDAsIGxwKTsKLSsJCQkJdHJpbmtsZShoZWFkLCB3aWR0aCwgY21wLCBhcmcs IHAsIHBzaGlmdCwgMCwgbHApOwotIAkJCX0gZWxzZSB7Ci0tCQkJCXNpZnQoaGVhZCwgd2lkdGgs IGNtcCwgcHNoaWZ0LCBscCk7Ci0rCQkJCXNpZnQoaGVhZCwgd2lkdGgsIGNtcCwgYXJnLCBwc2hp ZnQsIGxwKTsKLSAJCQl9Ci0tCQkJCi0rCi0gCQkJaWYocHNoaWZ0ID09IDEpIHsKLSAJCQkJc2hs KHAsIDEpOwotIAkJCQlwc2hpZnQgPSAwOwotQEAgLTE5MSwxMiArMTkyLDEyIEBAIHZvaWQgcXNv cnQodm9pZCAqYmFzZSwgc2l6ZV90IG5lbCwgc2l6ZV90IHdpZHRoLCBjbXBmdW4gY21wKQotIAkJ CQlwc2hpZnQgPSAxOwotIAkJCX0KLSAJCX0KLS0JCQotKwotIAkJcFswXSB8PSAxOwotIAkJaGVh ZCArPSB3aWR0aDsKLSAJfQotIAotLQl0cmlua2xlKGhlYWQsIHdpZHRoLCBjbXAsIHAsIHBzaGlm dCwgMCwgbHApOwotKwl0cmlua2xlKGhlYWQsIHdpZHRoLCBjbXAsIGFyZywgcCwgcHNoaWZ0LCAw LCBscCk7Ci0gCi0gCXdoaWxlKHBzaGlmdCAhPSAxIHx8IHBbMF0gIT0gMSB8fCBwWzFdICE9IDAp IHsKLSAJCWlmKHBzaGlmdCA8PSAxKSB7Ci1AQCAtMjA4LDExICsyMDksMTMgQEAgdm9pZCBxc29y dCh2b2lkICpiYXNlLCBzaXplX3QgbmVsLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXApCi0gCQkJ cHNoaWZ0IC09IDI7Ci0gCQkJcFswXSBePSA3OwotIAkJCXNocihwLCAxKTsKLS0JCQl0cmlua2xl KGhlYWQgLSBscFtwc2hpZnRdIC0gd2lkdGgsIHdpZHRoLCBjbXAsIHAsIHBzaGlmdCArIDEsIDEs IGxwKTsKLSsJCQl0cmlua2xlKGhlYWQgLSBscFtwc2hpZnRdIC0gd2lkdGgsIHdpZHRoLCBjbXAs IGFyZywgcCwgcHNoaWZ0ICsgMSwgMSwgbHApOwotIAkJCXNobChwLCAxKTsKLSAJCQlwWzBdIHw9 IDE7Ci0tCQkJdHJpbmtsZShoZWFkIC0gd2lkdGgsIHdpZHRoLCBjbXAsIHAsIHBzaGlmdCwgMSwg bHApOwotKwkJCXRyaW5rbGUoaGVhZCAtIHdpZHRoLCB3aWR0aCwgY21wLCBhcmcsIHAsIHBzaGlm dCwgMSwgbHApOwotIAkJfQotIAkJaGVhZCAtPSB3aWR0aDsKLSAJfQotIH0KLSsKLSt3ZWFrX2Fs aWFzKF9fcXNvcnRfciwgcXNvcnRfcik7Ci1kaWZmIC0tZ2l0IGEvc3JjL3N0ZGxpYi9xc29ydF9u ci5jIGIvc3JjL3N0ZGxpYi9xc29ydF9uci5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXgg MDAwMDAwMDAwLi5lZmU3Y2NlY2QKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9zdGRsaWIvcXNv cnRfbnIuYwotQEAgLTAsMCArMSwxNCBAQAotKyNkZWZpbmUgX0JTRF9TT1VSQ0UKLSsjaW5jbHVk ZSA8c3RkbGliLmg+Ci0rCi0rdHlwZWRlZiBpbnQgKCpjbXBmdW4pKGNvbnN0IHZvaWQgKiwgY29u c3Qgdm9pZCAqKTsKLSsKLStzdGF0aWMgaW50IHdyYXBwZXJfY21wKGNvbnN0IHZvaWQgKnYxLCBj b25zdCB2b2lkICp2Miwgdm9pZCAqY21wKQotK3sKLSsJcmV0dXJuICgoY21wZnVuKWNtcCkodjEs IHYyKTsKLSt9Ci0rCi0rdm9pZCBxc29ydCh2b2lkICpiYXNlLCBzaXplX3QgbmVsLCBzaXplX3Qg d2lkdGgsIGNtcGZ1biBjbXApCi0rewotKwlfX3Fzb3J0X3IoYmFzZSwgbmVsLCB3aWR0aCwgd3Jh cHBlcl9jbXAsIGNtcCk7Ci0rfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvYWRk LXN1cHBvcnQtZm9yLVNJR0VWX1RIUkVBRF9JRC10aW1lcnMucGF0Y2ggYi9zcmNwa2dzL211c2wv cGF0Y2hlcy9hZGQtc3VwcG9ydC1mb3ItU0lHRVZfVEhSRUFEX0lELXRpbWVycy5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTIwZGZmNWJhMGQ0NS4uMDAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtc3VwcG9ydC1mb3ItU0lHRVZfVEhSRUFEX0lE LXRpbWVycy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLUZyb20gN2M3MTc5 MmU4NzY5MTQ1MWYyYTZiNzYzNDhlODNhZDE4ODlmMWRjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IEphbWVzIFkgS25pZ2h0IDxqeWtuaWdodEBnb29nbGUuY29tPgotRGF0ZTogU3Vu LCAzMCBKdW4gMjAxOSAyMTo1NToyMCAtMDQwMAotU3ViamVjdDogW1BBVENIXSBhZGQgc3VwcG9y dCBmb3IgU0lHRVZfVEhSRUFEX0lEIHRpbWVycwotCi1UaGlzIGlzIGxpa2UgU0lHRVZfU0lHTkFM LCBidXQgdGFyZ2V0ZWQgdG8gYSBwYXJ0aWN1bGFyIHRocmVhZCdzCi10aWQsIHJhdGhlciB0aGFu IHRoZSBwcm9jZXNzLgotLS0tCi0gaW5jbHVkZS9zaWduYWwuaCAgICAgICAgfCAxNiArKysrKysr KysrKysrLS0tCi0gc3JjL3RpbWUvdGltZXJfY3JlYXRlLmMgfCAgOCArKysrKystLQotIDIgZmls ZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhL2luY2x1ZGUvc2lnbmFsLmggYi9pbmNsdWRlL3NpZ25hbC5oCi1pbmRleCBmYmRmNjY3YjIu LjllZDkyOWU0ZiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvc2lnbmFsLmgKLSsrKyBiL2luY2x1ZGUv c2lnbmFsLmgKLUBAIC0xODAsMTQgKzE4MCwyNCBAQCBzdHJ1Y3Qgc2lnZXZlbnQgewotIAl1bmlv biBzaWd2YWwgc2lnZXZfdmFsdWU7Ci0gCWludCBzaWdldl9zaWdubzsKLSAJaW50IHNpZ2V2X25v dGlmeTsKLS0Jdm9pZCAoKnNpZ2V2X25vdGlmeV9mdW5jdGlvbikodW5pb24gc2lndmFsKTsKLS0J cHRocmVhZF9hdHRyX3QgKnNpZ2V2X25vdGlmeV9hdHRyaWJ1dGVzOwotLQljaGFyIF9fcGFkWzU2 LTMqc2l6ZW9mKGxvbmcpXTsKLSsJdW5pb24gewotKwkJY2hhciBfX3BhZFs2NCAtIDIqc2l6ZW9m KGludCkgLSBzaXplb2YodW5pb24gc2lndmFsKV07Ci0rCQlwaWRfdCBzaWdldl9ub3RpZnlfdGhy ZWFkX2lkOwotKwkJc3RydWN0IHsKLSsJCQl2b2lkICgqc2lnZXZfbm90aWZ5X2Z1bmN0aW9uKSh1 bmlvbiBzaWd2YWwpOwotKwkJCXB0aHJlYWRfYXR0cl90ICpzaWdldl9ub3RpZnlfYXR0cmlidXRl czsKLSsJCX0gX19zZXZfdGhyZWFkOwotKwl9IF9fc2V2X2ZpZWxkczsKLSB9OwotIAotKyNkZWZp bmUgc2lnZXZfbm90aWZ5X3RocmVhZF9pZCBfX3Nldl9maWVsZHMuc2lnZXZfbm90aWZ5X3RocmVh ZF9pZAotKyNkZWZpbmUgc2lnZXZfbm90aWZ5X2Z1bmN0aW9uIF9fc2V2X2ZpZWxkcy5fX3Nldl90 aHJlYWQuc2lnZXZfbm90aWZ5X2Z1bmN0aW9uCi0rI2RlZmluZSBzaWdldl9ub3RpZnlfYXR0cmli dXRlcyBfX3Nldl9maWVsZHMuX19zZXZfdGhyZWFkLnNpZ2V2X25vdGlmeV9hdHRyaWJ1dGVzCi0r Ci0gI2RlZmluZSBTSUdFVl9TSUdOQUwgMAotICNkZWZpbmUgU0lHRVZfTk9ORSAxCi0gI2RlZmlu ZSBTSUdFVl9USFJFQUQgMgotKyNkZWZpbmUgU0lHRVZfVEhSRUFEX0lEIDQKLSAKLSBpbnQgX19s aWJjX2N1cnJlbnRfc2lncnRtaW4odm9pZCk7Ci0gaW50IF9fbGliY19jdXJyZW50X3NpZ3J0bWF4 KHZvaWQpOwotZGlmZiAtLWdpdCBhL3NyYy90aW1lL3RpbWVyX2NyZWF0ZS5jIGIvc3JjL3RpbWUv dGltZXJfY3JlYXRlLmMKLWluZGV4IDVkZGZkYTI3OC4uNGJlZjIzOTA1IDEwMDY0NAotLS0tIGEv c3JjL3RpbWUvdGltZXJfY3JlYXRlLmMKLSsrKyBiL3NyYy90aW1lL3RpbWVyX2NyZWF0ZS5jCi1A QCAtNzEsMTEgKzcxLDE1IEBAIGludCB0aW1lcl9jcmVhdGUoY2xvY2tpZF90IGNsaywgc3RydWN0 IHNpZ2V2ZW50ICpyZXN0cmljdCBldnAsIHRpbWVyX3QgKnJlc3RyaWN0Ci0gCXN3aXRjaCAoZXZw ID8gZXZwLT5zaWdldl9ub3RpZnkgOiBTSUdFVl9TSUdOQUwpIHsKLSAJY2FzZSBTSUdFVl9OT05F OgotIAljYXNlIFNJR0VWX1NJR05BTDoKLSsJY2FzZSBTSUdFVl9USFJFQURfSUQ6Ci0gCQlpZiAo ZXZwKSB7Ci0gCQkJa3Nldi5zaWdldl92YWx1ZSA9IGV2cC0+c2lnZXZfdmFsdWU7Ci0gCQkJa3Nl di5zaWdldl9zaWdubyA9IGV2cC0+c2lnZXZfc2lnbm87Ci0gCQkJa3Nldi5zaWdldl9ub3RpZnkg PSBldnAtPnNpZ2V2X25vdGlmeTsKLS0JCQlrc2V2LnNpZ2V2X3RpZCA9IDA7Ci0rCQkJaWYgKGV2 cC0+c2lnZXZfbm90aWZ5ID09IFNJR0VWX1RIUkVBRF9JRCkKLSsJCQkJa3Nldi5zaWdldl90aWQg PSBldnAtPnNpZ2V2X25vdGlmeV90aHJlYWRfaWQ7Ci0rCQkJZWxzZQotKwkJCQlrc2V2LnNpZ2V2 X3RpZCA9IDA7Ci0gCQkJa3NldnAgPSAma3NldjsKLSAJCX0KLSAJCWlmIChzeXNjYWxsKFNZU190 aW1lcl9jcmVhdGUsIGNsaywga3NldnAsICZ0aW1lcmlkKSA8IDApCi1AQCAtMTA3LDcgKzExMSw3 IEBAIGludCB0aW1lcl9jcmVhdGUoY2xvY2tpZF90IGNsaywgc3RydWN0IHNpZ2V2ZW50ICpyZXN0 cmljdCBldnAsIHRpbWVyX3QgKnJlc3RyaWN0Ci0gCi0gCQlrc2V2LnNpZ2V2X3ZhbHVlLnNpdmFs X3B0ciA9IDA7Ci0gCQlrc2V2LnNpZ2V2X3NpZ25vID0gU0lHVElNRVI7Ci0tCQlrc2V2LnNpZ2V2 X25vdGlmeSA9IDQ7IC8qIFNJR0VWX1RIUkVBRF9JRCAqLwotKwkJa3Nldi5zaWdldl9ub3RpZnkg PSBTSUdFVl9USFJFQURfSUQ7Ci0gCQlrc2V2LnNpZ2V2X3RpZCA9IHRkLT50aWQ7Ci0gCQlpZiAo c3lzY2FsbChTWVNfdGltZXJfY3JlYXRlLCBjbGssICZrc2V2LCAmdGltZXJpZCkgPCAwKQotIAkJ CXRpbWVyaWQgPSAtMTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2F2b2lkLXNl dC1pZC1zZXRybGltaXQtbWlzYmVoYXZpb3ItYW5kLWhhbmctaW4tdmZvcmsucGF0Y2ggYi9zcmNw a2dzL211c2wvcGF0Y2hlcy9hdm9pZC1zZXQtaWQtc2V0cmxpbWl0LW1pc2JlaGF2aW9yLWFuZC1o YW5nLWluLXZmb3JrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMWYyMzZi M2E2Y2QxLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2F2b2lkLXNl dC1pZC1zZXRybGltaXQtbWlzYmVoYXZpb3ItYW5kLWhhbmctaW4tdmZvcmsucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1Gcm9tIGE1YWZmMTk3MmM5ZTM5ODE1NjY0MTRiMDlh MjhlMzMxY2NkMmJlNWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtl ciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBUaHUsIDE3IFNlcCAyMDIwIDE1OjA5OjQ2IC0w NDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjM3LzUxM10gYXZvaWQgc2V0KmlkL3NldHJsaW1pdCBtaXNi ZWhhdmlvciBhbmQgaGFuZyBpbgotIHZmb3JrZWQvY2xvbmVkIGNoaWxkCi0KLXRha2luZyB0aGUg ZGVwcmVjYXRlZC9kcm9wcGVkIHZmb3JrIHNwZWMgc3RyaWN0bHksIGRvaW5nIHByZXR0eSBtdWNo Ci1hbnl0aGluZyBidXQgZXhlY3ZlIGluIHRoZSBjaGlsZCBpcyB3cm9uZyBhbmQgdW5kZWZpbmVk LiBob3dldmVyLAotdGhlc2UgYXJlIGNvbW1vbmx5IG5lZWRlZCBvcGVyYXRpb25zIHRvIHNldHVw IHRoZSBjaGlsZCBzdGF0ZSBiZWZvcmUKLWV4ZWMsIGFuZCBoaXN0b3JpY2FsIGltcGxlbWVudGF0 aW9ucyB0b2xlcmF0ZWQgdGhlbS4KLQotZm9yIHNpbmdsZS10aHJlYWRlZCBwYXJlbnRzLCB0aGVz ZSBvcGVyYXRpb25zIGFscmVhZHkgd29ya2VkIGFzCi1leHBlY3RlZCBpbiB0aGUgdmZvcmtlZCBj aGlsZC4gaG93ZXZlciwgZHVlIHRvIHRoZSBuZWVkIGZvciBfX3N5bmNjYWxsCi10byBzeW5jaHJv bml6ZSBpZC9yZXNvdXJjZSBsaW1pdCBjaGFuZ2VzIGFtb25nIGFsbCB0aHJlYWRzLCBjYWxsaW5n Ci10aGVzZSBmdW5jdGlvbnMgaW4gdGhlIHZmb3JrZWQgY2hpbGQgb2YgYSBtdWx0aXRocmVhZGVk IHBhcmVudCBjYXVzZWQKLWEgbWlzZGlyZWN0ZWQgYnJvYWRjYXN0IHNpZ25hbGluZyBvZiBhbGwg dGhyZWFkcyBpbiB0aGUgcGFyZW50LiB0aGVzZQotc2lnbmFscyBjb3VsZCBraWxsIHRoZSBwYXJl bnQgZW50aXJlbHkgaWYgdGhlIHN5bmNjYWxsIHNpZ25hbCBoYW5kbGVyCi1oYWQgbmV2ZXIgYmVl biBpbnN0YWxsZWQgaW4gdGhlIHBhcmVudCwgb3IgY291bGQgYmUgaWdub3JlZCBpZiBpdCBoYWQs Ci1vciBjb3VsZCBzaWduYWwva2lsbCBvbmUgb3IgbW9yZSB1dHRlcmx5IHdyb25nIHByb2Nlc3Nl cyBpZiB0aGUgcGFyZW50Ci1hbHJlYWR5IHRlcm1pbmF0ZWQgKGR1ZSB0byB2Zm9yayBzZW1hbnRp Y3MsIG9ubHkgcG9zc2libGUgdmlhIGZhdGFsCi1zaWduYWwpIGFuZCB0aGUgcGFyZW50IHRpZHMg d2VyZSByZWN5Y2xlZC4gaW4gYW55IGNhc2UsIHRoZSBleHBlY3RlZAotbnVtYmVyIG9mIHNlbWFw aG9yZSBwb3N0cyB3b3VsZCBuZXZlciBoYXBwZW4sIHNvIHRoZSBjaGlsZCB3b3VsZAotcGVybWFu ZW50bHkgaGFuZyAod2l0aCBhbGwgc2lnbmFscyBibG9ja2VkKSB3YWl0aW5nIGZvciB0aGVtLgot Ci10byBtaXRpZ2F0ZSB0aGlzLCBhbmQgYWxzbyBtYWtlIHRoZSBub3JtYWwgdXNhZ2UgY2FzZSB3 b3JrIGFzCi1pbnRlbmRlZCwgdHJlYXQgdGhlIGNvbmRpdGlvbiB3aGVyZSB0aGUgY2FsbGVyJ3Mg YWN0dWFsIHRpZCBkb2VzIG5vdAotbWF0Y2ggdGhlIHRpZCBpbiBpdHMgdGhyZWFkIHN0cnVjdHVy ZSBhcyBzaW5nbGUtdGhyZWFkZWQsIGFuZCBieXBhc3MKLXRoZSBlbnRpcmUgc3luY2NhbGwgYnJv YWRjYXN0IG9wZXJhdGlvbi4KLS0tLQotIHNyYy90aHJlYWQvc3luY2NhbGwuYyB8IDMgKystCi0g MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0t Z2l0IGEvc3JjL3RocmVhZC9zeW5jY2FsbC5jIGIvc3JjL3RocmVhZC9zeW5jY2FsbC5jCi1pbmRl eCA2NDhhNmFkNC4uZDU4Yzg1MWYgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhyZWFkL3N5bmNjYWxsLmMK LSsrKyBiL3NyYy90aHJlYWQvc3luY2NhbGwuYwotQEAgLTYzLDcgKzYzLDggQEAgdm9pZCBfX3N5 bmNjYWxsKHZvaWQgKCpmdW5jKSh2b2lkICopLCB2b2lkICpjdHgpCi0gCXNlbV9pbml0KCZ0YXJn ZXRfc2VtLCAwLCAwKTsKLSAJc2VtX2luaXQoJmNhbGxlcl9zZW0sIDAsIDApOwotIAotLQlpZiAo IWxpYmMudGhyZWFkc19taW51c18xKSBnb3RvIHNpbmdsZV90aHJlYWRlZDsKLSsJaWYgKCFsaWJj LnRocmVhZHNfbWludXNfMSB8fCBfX3N5c2NhbGwoU1lTX2dldHRpZCkgIT0gc2VsZi0+dGlkKQot KwkJZ290byBzaW5nbGVfdGhyZWFkZWQ7Ci0gCi0gCWNhbGxiYWNrID0gZnVuYzsKLSAJY29udGV4 dCA9IGN0eDsKLS0tIAotMi40MS4wCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVz L2Vwb2xsX2NwLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvZXBvbGxfY3AucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyZjQ3NTUxYWQ4ZWIuLjAwMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZXBvbGxfY3AucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwyOCArMCwwIEBACi1Gcm9tIDJjMDBmOTVjMWFjN2RkNTBmNTNkOWUzNjE4NDdlYmQyNTEz YzhkYTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFz QGFlcmlmYWwuY3g+Ci1EYXRlOiBTYXQsIDMgQXByIDIwMjEgMjE6MTY6NDEgLTA0MDAKLVN1Ympl Y3Q6IFtQQVRDSF0gbWFrZSBlcG9sbF9bcF13YWl0IGEgY2FuY2VsbGF0aW9uIHBvaW50Ci0KLXRo aXMgaXMgYSBMaW51eC1zcGVjaWZpYyBmdW5jdGlvbiBhbmQgbm90IGNvdmVyZWQgYnkgUE9TSVgn cwotcmVxdWlyZW1lbnRzIGZvciB3aGljaCBpbnRlcmZhY2VzIGFyZSBjYW5jZWxsYXRpb24gcG9p bnRzLCBidXQgZ2xpYmMKLW1ha2VzIGl0IG9uZSBhbmQgZXhpc3Rpbmcgc29mdHdhcmUgcmVsaWVz IG9uIGl0IGJlaW5nIG9uZS4KLQotYXQgc29tZSBwb2ludCBhIHJldmlldyBmb3Igc2ltaWxhciBm dW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgbWFkZQotY2FuY2VsbGF0aW9uIHBvaW50cyBzaG91bGQg YmUgZG9uZS4KLQotZGlmZiAtLWdpdCBzcmMvbGludXgvZXBvbGwuYyBzcmMvbGludXgvZXBvbGwu YwotaW5kZXggZGVmZjViMTAuLjkzYmFhODE0IDEwMDY0NAotLS0tIGEvc3JjL2xpbnV4L2Vwb2xs LmMKLSsrKyBiL3NyYy9saW51eC9lcG9sbC5jCi1AQCAtMjQsOSArMjQsOSBAQCBpbnQgZXBvbGxf Y3RsKGludCBmZCwgaW50IG9wLCBpbnQgZmQyLCBzdHJ1Y3QgZXBvbGxfZXZlbnQgKmV2KQotIAot IGludCBlcG9sbF9wd2FpdChpbnQgZmQsIHN0cnVjdCBlcG9sbF9ldmVudCAqZXYsIGludCBjbnQs IGludCB0bywgY29uc3Qgc2lnc2V0X3QgKnNpZ3MpCi0gewotLQlpbnQgciA9IF9fc3lzY2FsbChT WVNfZXBvbGxfcHdhaXQsIGZkLCBldiwgY250LCB0bywgc2lncywgX05TSUcvOCk7Ci0rCWludCBy ID0gX19zeXNjYWxsX2NwKFNZU19lcG9sbF9wd2FpdCwgZmQsIGV2LCBjbnQsIHRvLCBzaWdzLCBf TlNJRy84KTsKLSAjaWZkZWYgU1lTX2Vwb2xsX3dhaXQKLS0JaWYgKHI9PS1FTk9TWVMgJiYgIXNp Z3MpIHIgPSBfX3N5c2NhbGwoU1lTX2Vwb2xsX3dhaXQsIGZkLCBldiwgY250LCB0byk7Ci0rCWlm IChyPT0tRU5PU1lTICYmICFzaWdzKSByID0gX19zeXNjYWxsX2NwKFNZU19lcG9sbF93YWl0LCBm ZCwgZXYsIGNudCwgdG8pOwotICNlbmRpZgotIAlyZXR1cm4gX19zeXNjYWxsX3JldChyKTsKLSB9 CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0xLnBh dGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzlhZjcyYjBjNWY5MS4uMDAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0xLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotRnJvbSAyZDBiYmU2Yzc4ODkzOGQxMzMyNjA5YzAx NGVlZWJjMWRmZjk2NmFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxr ZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogTW9uLCAyNiBPY3QgMjAyMCAxNTo1NjoyNSAt MDQwMAotU3ViamVjdDogZml4IHB0aHJlYWRfY29uZF93YWl0IHBhaXJlZCB3aXRoIHdpdGggcHJp b3JpdHktaW5oZXJpdGFuY2UgbXV0ZXgKLQotcHRocmVhZF9jb25kX3dhaXQgYXJyYW5nZWQgZm9y IHJlcXVldWVkIHdhaXRlcnMgdG8gd2FrZSB3aGVuIHRoZSBtdXRleAotaXMgdW5sb2NrZWQgYnkg dGVtcG9yYXJpbHkgYWRqdXN0aW5nIHRoZSBtdXRleCdzIHdhaXRlciBjb3VudC4gY29tbWl0Ci01 NGNhNjc3OTgzZDQ3NTI5YmFiODc1MjMxNWFjMWEyYjQ5ODg4ODcwIGJyb2tlIHRoaXMgd2hlbiBp bnRyb2R1Y2luZwotUEkgbXV0ZXhlcyBieSByZXB1cnBvc2luZyB0aGUgd2FpdGVyIGNvdW50IGZp ZWxkIG9mIHRoZSBtdXRleAotc3RydWN0dXJlLiBzaW5jZSB0aGVuLCBmb3IgUEkgbXV0ZXhlcywg dGhlIHdhaXRlciBjb3VudCBhZGp1c3RtZW50IHdhcwotbWlzaW50ZXJwcmV0ZWQgYnkgdGhlIG11 dGV4IGxvY2tpbmcgY29kZSBhcyBpbmRpY2F0aW5nIHRoYXQgdGhlIG11dGV4Ci1pcyBub24gYSBu b24tcmVjb3ZlcmFibGUgc3RhdGUuCi0KLWl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIHNwZWNpYWwt Y2FzZSBQSSBtdXRleGVzIGhlcmUsIGJ1dCBpbnN0ZWFkIGp1c3QKLWRyb3AgYWxsIGFkanVzdG1l bnQgb2YgdGhlIHdhaXRlcnMgY291bnQsIGFuZCBpbnN0ZWFkIHVzZSB0aGUgbG9jawotd29yZCB3 YWl0ZXJzIGJpdCBmb3IgYWxsIG11dGV4IHR5cGVzLiBzaW5jZSB0aGUgbXV0ZXggaXMgZWl0aGVy IGhlbGQKLWJ5IHRoZSBjYWxsZXIgb3IgaW4gdW5yZWNvdmVyYWJsZSBzdGF0ZSBhdCB0aGUgdGlt ZSB0aGUgYml0IGlzIHNldCwgaXQKLXdpbGwgbmVjZXNzYXJpbHkgc3RpbGwgYmUgc2V0IGF0IHRo ZSB0aW1lIG9mIGFueSBzdWJzZXF1ZW50IHZhbGlkCi11bmxvY2sgb3BlcmF0aW9uLCBhbmQgdGhp cyB3aWxsIHByb2R1Y2UgdGhlIGRlc2lyZWQgZWZmZWN0IG9mIHdha2luZwotdGhlIG5leHQgd2Fp dGVyLgotCi1pZiB3YWl0ZXIgY291bnRzIGFyZSBlbnRpcmVseSBkcm9wcGVkIGF0IHNvbWUgcG9p bnQgaW4gdGhlIGZ1dHVyZSB0aGlzCi1jb2RlIHNob3VsZCBzdGlsbCB3b3JrIHdpdGhvdXQgbW9k aWZpY2F0aW9uLgotLS0tCi0gc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMgfCAx MSArKysrKy0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCi0KLShsaW1pdGVkIHRvICdzcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQu YycpCi0KLWRpZmYgLS1naXQgYS9zcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYyBi L3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCi1pbmRleCBkMTUwMTI0MC4uZjVm MzdhZjEgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYwot KysrIGIvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMKLUBAIC0xNDYsMTQgKzE0 NiwxMyBAQCByZWxvY2s6Ci0gCi0gCWlmIChvbGRzdGF0ZSA9PSBXQUlUSU5HKSBnb3RvIGRvbmU7 Ci0gCi0tCWlmICghbm9kZS5uZXh0KSBhX2luYygmbS0+X21fd2FpdGVycyk7Ci0tCi0gCS8qIFVu bG9jayB0aGUgYmFycmllciB0aGF0J3MgaG9sZGluZyBiYWNrIHRoZSBuZXh0IHdhaXRlciwgYW5k Ci0gCSAqIGVpdGhlciB3YWtlIGl0IG9yIHJlcXVldWUgaXQgdG8gdGhlIG11dGV4LiAqLwotLQlp ZiAobm9kZS5wcmV2KQotLQkJdW5sb2NrX3JlcXVldWUoJm5vZGUucHJldi0+YmFycmllciwgJm0t Pl9tX2xvY2ssIG0tPl9tX3R5cGUgJiAxMjgpOwotLQllbHNlCi0tCQlhX2RlYygmbS0+X21fd2Fp dGVycyk7Ci0rCWlmIChub2RlLnByZXYpIHsKLSsJCWludCB2YWwgPSBtLT5fbV9sb2NrOwotKwkJ aWYgKHZhbD4wKSBhX2NhcygmbS0+X21fbG9jaywgdmFsLCB2YWx8MHg4MDAwMDAwMCk7Ci0rCQl1 bmxvY2tfcmVxdWV1ZSgmbm9kZS5wcmV2LT5iYXJyaWVyLCAmbS0+X21fbG9jaywgbS0+X21fdHlw ZSAmICg4fDEyOCkpOwotKwl9Ci0gCi0gCS8qIFNpbmNlIGEgc2lnbmFsIHdhcyBjb25zdW1lZCwg Y2FuY2VsbGF0aW9uIGlzIG5vdCBwZXJtaXR0ZWQuICovCi0gCWlmIChlID09IEVDQU5DRUxFRCkg ZSA9IDA7Ci0tLSAKLWNnaXQgdjEuMi4xCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRj aGVzL2ZpeC1waS1tdXRleC1jb25kLTIucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9maXgt cGktbXV0ZXgtY29uZC0yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzU2 ZTM4YjYxZjgzLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1w aS1tdXRleC1jb25kLTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi1Gcm9t IDI3YjJmYzlkNmRiOTU2MzU5NzI3YTY2YzI2MmYxZTY5OTk1NjYwYWEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBG cmksIDMwIE9jdCAyMDIwIDExOjIxOjA2IC0wNDAwCi1TdWJqZWN0OiBmaXggbWlzc2luZy13YWtl IHJlZ3Jlc3Npb24gaW4gcHRocmVhZF9jb25kX3dhaXQKLQotdGhlIHJlYXNvbmluZyBpbiBjb21t aXQgMmQwYmJlNmM3ODg5MzhkMTMzMjYwOWMwMTRlZWViYzFkZmY5NjZhYyB3YXMKLW5vdCBlbnRp cmVseSBjb3JyZWN0LiB3aGlsZSBpdCdzIHRydWUgdGhhdCBzZXR0aW5nIHRoZSB3YWl0ZXJzIGZs YWcKLWVuc3VyZXMgdGhhdCB0aGUgbmV4dCB1bmxvY2sgd2lsbCBwZXJmb3JtIGEgd2FrZSwgaXQn cyBwb3NzaWJsZSB0aGF0Ci10aGUgd2FrZSBpcyBjb25zdW1lZCBieSBhIG11dGV4IHdhaXRlciB0 aGF0IGhhcyBubyByZWxhdGlvbnNoaXAgd2l0aAotdGhlIGNvbmR2YXIgd2FpdCBxdWV1ZSBiZWlu ZyBwcm9jZXNzZWQsIHdoaWNoIHRoZW4gdGFrZXMgdGhlIG11dGV4Lgotd2hlbiB0aGF0IHRocmVh ZCBzdWJzZXF1ZW50bHkgdW5sb2NrcywgaXQgc2VlcyBubyB3YWl0ZXJzLCBhbmQgbGVhdmVzCi10 aGUgcmVzdCBvZiB0aGUgY29uZHZhciBxdWV1ZSBzdHVjay4KLQotYnJpbmcgYmFjayB0aGUgd2Fp dGVyIGNvdW50IGFkanVzdG1lbnQsIGJ1dCBza2lwIGl0IGZvciBQSSBtdXRleGVzLAotZm9yIHdo aWNoIGEgc3VjY2Vzc2Z1bCBsb2NrLWFmdGVyLXdhaXRpbmcgYWx3YXlzIHNldHMgdGhlIHdhaXRl cnMgYml0LgotaWYgZnV0dXJlIGNoYW5nZXMgYXJlIG1hZGUgdG8gYnJpbmcgdGhpcyBzYW1lIHdh aXRlcnMtYml0IGNvbnRyYWN0IHRvCi1hbGwgbG9jayB0eXBlcywgdGhpcyBjYW4gYmUgcmV2ZXJ0 ZWQuCi0tLS0KLSBzcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYyB8IDUgKysrKysK LSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCi0KLShsaW1pdGVkIHRvICdzcmMvdGhy ZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYycpCi0KLWRpZmYgLS1naXQgYS9zcmMvdGhyZWFk L3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYyBiL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVk d2FpdC5jCi1pbmRleCBmNWYzN2FmMS4uYTBjZDQ5MDQgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhyZWFk L3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYwotKysrIGIvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRf dGltZWR3YWl0LmMKLUBAIC0xNDYsMTIgKzE0NiwxNyBAQCByZWxvY2s6Ci0gCi0gCWlmIChvbGRz dGF0ZSA9PSBXQUlUSU5HKSBnb3RvIGRvbmU7Ci0gCi0rCWlmICghbm9kZS5uZXh0ICYmICEobS0+ X21fdHlwZSAmIDgpKQotKwkJYV9pbmMoJm0tPl9tX3dhaXRlcnMpOwotKwotIAkvKiBVbmxvY2sg dGhlIGJhcnJpZXIgdGhhdCdzIGhvbGRpbmcgYmFjayB0aGUgbmV4dCB3YWl0ZXIsIGFuZAotIAkg KiBlaXRoZXIgd2FrZSBpdCBvciByZXF1ZXVlIGl0IHRvIHRoZSBtdXRleC4gKi8KLSAJaWYgKG5v ZGUucHJldikgewotIAkJaW50IHZhbCA9IG0tPl9tX2xvY2s7Ci0gCQlpZiAodmFsPjApIGFfY2Fz KCZtLT5fbV9sb2NrLCB2YWwsIHZhbHwweDgwMDAwMDAwKTsKLSAJCXVubG9ja19yZXF1ZXVlKCZu b2RlLnByZXYtPmJhcnJpZXIsICZtLT5fbV9sb2NrLCBtLT5fbV90eXBlICYgKDh8MTI4KSk7Ci0r CX0gZWxzZSBpZiAoISEobS0+X21fdHlwZSAmIDgpKSB7Ci0rCQlhX2RlYygmbS0+X21fd2FpdGVy cyk7CQkKLSAJfQotIAotIAkvKiBTaW5jZSBhIHNpZ25hbCB3YXMgY29uc3VtZWQsIGNhbmNlbGxh dGlvbiBpcyBub3QgcGVybWl0dGVkLiAqLwotLS0gCi1jZ2l0IHYxLjIuMQotCmRpZmYgLS1naXQg YS9zcmNwa2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0zLnBhdGNoIGIvc3JjcGtn cy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMy5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMmNjOTQzZjI2ZjZhNi4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0zLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMjggKzAsMCBAQAotRnJvbSBkOTFhNmNmNmUzNjlhNzk1ODdjNTY2NWZjZTk2MzVlNTYzNGNh MjAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0Bh ZXJpZmFsLmN4PgotRGF0ZTogRnJpLCAzMCBPY3QgMjAyMCAxNjo1MDowOCAtMDQwMAotU3ViamVj dDogZml4IGVycm9uZW91cyBwdGhyZWFkX2NvbmRfd2FpdCBtdXRleCB3YWl0ZXIgY291bnQgbG9n aWMgZHVlIHRvIHR5cG8KLQotaW50cm9kdWNlZCBpbiBjb21taXQgMjdiMmZjOWQ2ZGI5NTYzNTk3 MjdhNjZjMjYyZjFlNjk5OTU2NjBhYS4KLS0tLQotIHNyYy90aHJlYWQvcHRocmVhZF9jb25kX3Rp bWVkd2FpdC5jIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQotCi0obGltaXRlZCB0byAnc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0 LmMnKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMg Yi9zcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYwotaW5kZXggYTBjZDQ5MDQuLjZi NzYxNDU1IDEwMDY0NAotLS0tIGEvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMK LSsrKyBiL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCi1AQCAtMTU1LDcgKzE1 NSw3IEBAIHJlbG9jazoKLSAJCWludCB2YWwgPSBtLT5fbV9sb2NrOwotIAkJaWYgKHZhbD4wKSBh X2NhcygmbS0+X21fbG9jaywgdmFsLCB2YWx8MHg4MDAwMDAwMCk7Ci0gCQl1bmxvY2tfcmVxdWV1 ZSgmbm9kZS5wcmV2LT5iYXJyaWVyLCAmbS0+X21fbG9jaywgbS0+X21fdHlwZSAmICg4fDEyOCkp OwotLQl9IGVsc2UgaWYgKCEhKG0tPl9tX3R5cGUgJiA4KSkgewotKwl9IGVsc2UgaWYgKCEobS0+ X21fdHlwZSAmIDgpKSB7Ci0gCQlhX2RlYygmbS0+X21fd2FpdGVycyk7CQkKLSAJfQotIAotLS0g Ci1jZ2l0IHYxLjIuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9nZXR0aWQu cGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9nZXR0aWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGJiOGJmNTkwNWI4ODAuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9tdXNsL3BhdGNoZXMvZ2V0dGlkLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBA QAotRnJvbSBkNDljZjA3NTQxYmI1NGE1YWM3YWVjMWZlZWM4NTE0ZGIzM2RiOGVhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4Pgot RGF0ZTogTW9uLCAxNyBBdWcgMjAyMCAyMDoxMjo1MyAtMDQwMAotU3ViamVjdDogW1BBVENIXSBh ZGQgZ2V0dGlkIGZ1bmN0aW9uCi0KLXRoaXMgaXMgYSBwcmVyZXF1aXNpdGUgZm9yIGFkZGl0aW9u IG9mIG90aGVyIGludGVyZmFjZXMgdGhhdCB1c2UKLWtlcm5lbCB0aWRzLCBpbmNsdWRpbmcgZnV0 ZXggYW5kIFNJR0VWX1RIUkVBRF9JRC4KLQotdGhlcmUgaXMgc29tZSBhbWJpZ3VpdHkgYXMgdG8g d2hldGhlciB0aGUgc2VtYW50aWMgcmV0dXJuIHR5cGUgc2hvdWxkCi1iZSBpbnQgb3IgcGlkX3Qu IGVpdGhlciB3YXksIGZ1dGV4IEFQSSBpbXBvc2VzIGEgY29udHJhY3QgdGhhdCB0aGUKLXZhbHVl cyBmaXQgaW4gaW50IChleGNsdWRpbmcgc29tZSB1cHBlciByZXNlcnZlZCBiaXRzKS4gZ2xpYmMg dXNlZAotcGlkX3QsIHNvIGluIHRoZSBpbnRlcmVzdCBvZiBub3QgaGF2aW5nIGdyYXR1aXRvdXMg bWlzbWF0Y2ggKHRoZQotdW5kZXJseWluZyB0eXBlcyBhcmUgdGhlIHNhbWUgYW55d2F5KSwgcGlk X3QgaXMgdXNlZCBoZXJlIGFzIHdlbGwuCi0KLXdoaWxlIGNvbmNlcHR1YWxseSB0aGlzIGlzIGEg c3lzY2FsbCwgdGhlIGNvcHkgc3RvcmVkIGluIHRoZSB0aHJlYWQKLXN0cnVjdHVyZSBpcyBhbHdh eXMgdmFsaWQgaW4gYWxsIGNvbnRleHRzIHdoZXJlIGl0J3MgdmFsaWQgdG8gY2FsbAotbGliYyBm dW5jdGlvbnMsIHNvIGl0J3MgdXNlZCB0byBhdm9pZCB0aGUgc3lzY2FsbC4KLS0tLQotIGluY2x1 ZGUvdW5pc3RkLmggICB8IDEgKwotIHNyYy9saW51eC9nZXR0aWQuYyB8IDggKysrKysrKysKLSAy IGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv bGludXgvZ2V0dGlkLmMKLQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvdW5pc3RkLmggYi9pbmNsdWRl L3VuaXN0ZC5oCi1pbmRleCA3YmNiZmY5NDMuLjA3NTg0YTIzZSAxMDA2NDQKLS0tLSBhL2luY2x1 ZGUvdW5pc3RkLmgKLSsrKyBiL2luY2x1ZGUvdW5pc3RkLmgKLUBAIC0xOTAsNiArMTkwLDcgQEAg aW50IHN5bmNmcyhpbnQpOwotIGludCBldWlkYWNjZXNzKGNvbnN0IGNoYXIgKiwgaW50KTsKLSBp bnQgZWFjY2Vzcyhjb25zdCBjaGFyICosIGludCk7Ci0gc3NpemVfdCBjb3B5X2ZpbGVfcmFuZ2Uo aW50LCBvZmZfdCAqLCBpbnQsIG9mZl90ICosIHNpemVfdCwgdW5zaWduZWQpOwotK3BpZF90IGdl dHRpZCh2b2lkKTsKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfTEFSR0VGSUxFNjRfU09VUkNF KSB8fCBkZWZpbmVkKF9HTlVfU09VUkNFKQotZGlmZiAtLWdpdCBhL3NyYy9saW51eC9nZXR0aWQu YyBiL3NyYy9saW51eC9nZXR0aWQuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAw MDAwMC4uNzA3NjcxMzdlCi0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvbGludXgvZ2V0dGlkLmMK LUBAIC0wLDAgKzEsOCBAQAotKyNkZWZpbmUgX0dOVV9TT1VSQ0UKLSsjaW5jbHVkZSA8dW5pc3Rk Lmg+Ci0rI2luY2x1ZGUgInB0aHJlYWRfaW1wbC5oIgotKwotK3BpZF90IGdldHRpZCh2b2lkKQot K3sKLSsJcmV0dXJuIF9fcHRocmVhZF9zZWxmKCktPnRpZDsKLSt9CmRpZmYgLS1naXQgYS9zcmNw a2dzL211c2wvcGF0Y2hlcy9pbXBsZW1lbnRfcmVhbHBhdGhfZGlyZWN0bHlfaW5zdGVhZF9vZl91 c2luZ19wcm9jZnNfcmVhZGxpbmsucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9pbXBsZW1l bnRfcmVhbHBhdGhfZGlyZWN0bHlfaW5zdGVhZF9vZl91c2luZ19wcm9jZnNfcmVhZGxpbmsucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2OWExZjUyYzdjZDkuLjAwMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvaW1wbGVtZW50X3JlYWxwYXRoX2RpcmVj dGx5X2luc3RlYWRfb2ZfdXNpbmdfcHJvY2ZzX3JlYWRsaW5rLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjE5ICswLDAgQEAKLUZyb20gMjlmZjc1OTlhNDQ4MjMyZjI1Mjc4NDFjMjM2MjY0M2Qy NDZjZWUzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxp YXNAYWVyaWZhbC5jeD4KLURhdGU6IE1vbiwgMzAgTm92IDIwMjAgMTI6MTQ6NDcgLTA1MDAKLVN1 YmplY3Q6IFtQQVRDSF0gaW1wbGVtZW50IHJlYWxwYXRoIGRpcmVjdGx5IGluc3RlYWQgb2YgdXNp bmcgcHJvY2ZzIHJlYWRsaW5rCi0KLWluYWJpbGl0eSB0byB1c2UgcmVhbHBhdGggaW4gY2hyb290 L2NvbnRhaW5lciB3aXRob3V0IHByb2NmcyBhY2Nlc3MKLWFuZCBhdCBlYXJseSBib290IHByaW9y IHRvIG1vdW50IG9mIC9wcm9jIGhhcyBiZWVuIGFuIG9uZ29pbmcgaXNzdWUsCi1hbmQgaXQgdHVy bnMgb3V0IHJlYWxwYXRoIHdhcyBvbmUgb2YgdGhlIGxhc3QgcmVtYWluaW5nIGludGVyZmFjZXMK LXRoYXQgbmVlZGVkIHByb2NmcyBmb3IgaXRzIGNvcmUgZnVuY3Rpb25hbGl0eS4gZHVyaW5nIGlu dmVzdGlnYXRpb24KLXdoaWxlIHJlaW1wbGVtZW50aW5nLCBpdCB3YXMgZGV0ZXJtaW5lZCB0aGF0 IHRoZXJlIHdlcmUgYWxzbyBzZXJpb3VzCi1wcm9ibGVtcyB3aXRoIHRoZSBwcm9jZnMtYmFzZWQg aW1wbGVtZW50YXRpb24uIG1vc3Qgc2VyaW91c2x5IGl0IHdhcwotdW5zYWZlIG9uIHByZS1PX1BB VEgga2VybmVscywgYW5kIHVubGlrZSBvdGhlciBwbGFjZXMgd2hlcmUgT19QQVRIIHdhcwotdXNl ZCwgdGhlIHVuc2FmZXR5IHdhcyBoYXJkIG9yIGltcG9zc2libGUgdG8gZml4IGJlY2F1c2UgT19O T0ZPTExPVwotY2FuJ3QgYmUgdXNlZCAoc2luY2UgdGhlIHdob2xlIHB1cnBvc2Ugd2FzIHRvIGZv bGxvdyBzeW1saW5rcykuCi0KLXRoZSBuZXcgaW1wbGVtZW50YXRpb24gaXMgYSBkaXJlY3Qgb25l LCBwZXJmb3JtaW5nIHJlYWRsaW5rIG9uIGVhY2gKLXBhdGggY29tcG9uZW50IHRvIHJlc29sdmUg aXQuIGFuIGV4cGxpY2l0IHN0YWNrLCBhcyBvcHBvc2VkIHRvCi1yZWN1cnNpb24sIGlzIHVzZWQg dG8gcmVwcmVzZW50IHRoZSByZW1haW5pbmcgY29tcG9uZW50cyB0byBiZQotcHJvY2Vzc2VkLiB0 aGUgc3RhY2sgc3RhcnRzIG91dCBob2xkaW5nIGp1c3QgdGhlIGlucHV0IHN0cmluZywgYW5kCi1y ZWFkaW5nIGEgbGluayBwdXNoZXMgdGhlIGxpbmsgY29udGVudHMgb250byB0aGUgc3RhY2suCi0K LXVubGlrZSBtYW55IG90aGVyIGltcGxlbWVudGF0aW9ucywgdGhpcyBvbmUgZG9lcyBub3QgY2Fs bCBnZXRjd2QKLWluaXRpYWxseSBmb3IgcmVsYXRpdmUgcGF0aG5hbWVzLiBpbnN0ZWFkIGl0IGFj Y3VtdWxhdGVzIGluaXRpYWwgLi4KLWNvbXBvbmVudHMgdG8gYmUgYXBwbGllZCB0byB0aGUgd29y a2luZyBkaXJlY3RvcnkgaWYgdGhlIHJlc3VsdCBpcwotc3RpbGwgYSByZWxhdGl2ZSBwYXRoLiB0 aGlzIGF2b2lkcyBjYWxsaW5nIGdldGN3ZCAod2hpY2ggbWF5IGZhaWwpIGF0Ci1hbGwgd2hlbiBz eW1saW5rIHRyYXZlcnNhbCB3aWxsIGV2ZW50dWFsbHkgeWllbGQgYW4gYWJzb2x1dGUgcGF0aC4g aXQKLWFsc28gZG9lc24ndCB1c2UgYW55IGZvcm0gb2Ygc3RhdCBvcGVyYXRpb247IGluc3RlYWQg aXQgYXJyYW5nZXMgZm9yCi1yZWFkbGluayB0byB0ZWxsIGl0IHdoZW4gYSBub24tZGlyZWN0b3J5 IGlzIHVzZWQgaW4gYSBjb250ZXh0IHdoZXJlIGEKLWRpcmVjdG9yeSBpcyBuZWVkZWQuIHRoaXMg bWluaW1pemVzIHRoZSBudW1iZXIgb2Ygc3lzY2FsbHMgbmVlZGVkLAotYXZvaWRzIGFjY2Vzc2lu ZyBpbm9kZXMgd2hlbiB0aGUgZGlyZWN0b3J5IHRhYmxlIHN1ZmZpY2VzLCBhbmQgcmVkdWNlcwot dGhlIGFtb3VudCBvZiBjb2RlIHB1bGxlZCBpbiBmb3Igc3RhdGljIGxpbmtpbmcuCi0tLS0KLSBz cmMvbWlzYy9yZWFscGF0aC5jIHwgMTU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEzNiBpbnNlcnRpb25zKCspLCAyMyBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9taXNjL3JlYWxwYXRoLmMgYi9zcmMvbWlzYy9y ZWFscGF0aC5jCi1pbmRleCBkMjcwOGU1OWQuLmRiOGI3NGRjOCAxMDA2NDQKLS0tLSBhL3NyYy9t aXNjL3JlYWxwYXRoLmMKLSsrKyBiL3NyYy9taXNjL3JlYWxwYXRoLmMKLUBAIC0xLDQzICsxLDE1 NiBAQAotICNpbmNsdWRlIDxzdGRsaWIuaD4KLSAjaW5jbHVkZSA8bGltaXRzLmg+Ci0tI2luY2x1 ZGUgPHN5cy9zdGF0Lmg+Ci0tI2luY2x1ZGUgPGZjbnRsLmg+Ci0gI2luY2x1ZGUgPGVycm5vLmg+ Ci0gI2luY2x1ZGUgPHVuaXN0ZC5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLS0jaW5jbHVkZSAi c3lzY2FsbC5oIgotKwotK3N0YXRpYyBzaXplX3Qgc2xhc2hfbGVuKGNvbnN0IGNoYXIgKnMpCi0r ewotKwljb25zdCBjaGFyICpzMCA9IHM7Ci0rCXdoaWxlICgqcyA9PSAnLycpIHMrKzsKLSsJcmV0 dXJuIHMtczA7Ci0rfQotIAotIGNoYXIgKnJlYWxwYXRoKGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZp bGVuYW1lLCBjaGFyICpyZXN0cmljdCByZXNvbHZlZCkKLSB7Ci0tCWludCBmZDsKLS0Jc3NpemVf dCByOwotLQlzdHJ1Y3Qgc3RhdCBzdDEsIHN0MjsKLS0JY2hhciBidWZbMTUrMypzaXplb2YoaW50 KV07Ci0tCWNoYXIgdG1wW1BBVEhfTUFYXTsKLSsJY2hhciBzdGFja1tQQVRIX01BWCsxXTsKLSsJ Y2hhciBvdXRwdXRbUEFUSF9NQVhdOwotKwlzaXplX3QgcCwgcSwgbCwgbDAsIGNudD0wLCBudXA9 MDsKLSsJaW50IGNoZWNrX2Rpcj0wOwotIAotIAlpZiAoIWZpbGVuYW1lKSB7Ci0gCQllcnJubyA9 IEVJTlZBTDsKLSAJCXJldHVybiAwOwotIAl9Ci0rCWwgPSBzdHJubGVuKGZpbGVuYW1lLCBzaXpl b2Ygc3RhY2spOwotKwlpZiAoIWwpIHsKLSsJCWVycm5vID0gRU5PRU5UOwotKwkJcmV0dXJuIDA7 Ci0rCX0KLSsJaWYgKGwgPj0gUEFUSF9NQVgpIGdvdG8gdG9vbG9uZzsKLSsJcCA9IHNpemVvZiBz dGFjayAtIGwgLSAxOwotKwlxID0gMDsKLSsJbWVtY3B5KHN0YWNrK3AsIGZpbGVuYW1lLCBsKzEp OwotKwotKwkvKiBNYWluIGxvb3AuIEVhY2ggaXRlcmF0aW9uIHBvcHMgdGhlIG5leHQgcGFydCBm cm9tIHN0YWNrIG9mCi0rCSAqIHJlbWFpbmluZyBwYXRoIGNvbXBvbmVudHMgYW5kIGNvbnN1bWVz IGFueSBzbGFzaGVzIHRoYXQgZm9sbG93LgotKwkgKiBJZiBub3QgYSBsaW5rLCBpdCdzIG1vdmVk IHRvIG91dHB1dDsgaWYgYSBsaW5rLCBjb250ZW50cyBhcmUKLSsJICogcHVzaGVkIHRvIHRoZSBz dGFjay4gKi8KLStyZXN0YXJ0OgotKwlmb3IgKDsgOyBwKz1zbGFzaF9sZW4oc3RhY2srcCkpIHsK LSsJCS8qIElmIHN0YWNrIHN0YXJ0cyB3aXRoIC8sIHRoZSB3aG9sZSBjb21wb25lbnQgaXMgLyBv ciAvLwotKwkJICogYW5kIHRoZSBvdXRwdXQgc3RhdGUgbXVzdCBiZSByZXNldC4gKi8KLSsJCWlm IChzdGFja1twXSA9PSAnLycpIHsKLSsJCQljaGVja19kaXI9MDsKLSsJCQludXA9MDsKLSsJCQlx PTA7Ci0rCQkJb3V0cHV0W3ErK10gPSAnLyc7Ci0rCQkJcCsrOwotKwkJCS8qIEluaXRpYWwgLy8g aXMgc3BlY2lhbC4gKi8KLSsJCQlpZiAoc3RhY2tbcF0gPT0gJy8nICYmIHN0YWNrW3ArMV0gIT0g Jy8nKQotKwkJCQlvdXRwdXRbcSsrXSA9ICcvJzsKLSsJCQljb250aW51ZTsKLSsJCX0KLSsKLSsJ CWNoYXIgKnogPSBfX3N0cmNocm51bChzdGFjaytwLCAnLycpOwotKwkJbDAgPSBsID0gei0oc3Rh Y2srcCk7Ci0gCi0tCWZkID0gc3lzX29wZW4oZmlsZW5hbWUsIE9fUEFUSHxPX05PTkJMT0NLfE9f Q0xPRVhFQyk7Ci0tCWlmIChmZCA8IDApIHJldHVybiAwOwotLQlfX3Byb2NmZG5hbWUoYnVmLCBm ZCk7Ci0rCQlpZiAoIWwgJiYgIWNoZWNrX2RpcikgYnJlYWs7Ci0gCi0tCXIgPSByZWFkbGluayhi dWYsIHRtcCwgc2l6ZW9mIHRtcCAtIDEpOwotLQlpZiAociA8IDApIGdvdG8gZXJyOwotLQl0bXBb cl0gPSAwOwotKwkJLyogU2tpcCBhbnkgLiBjb21wb25lbnQgYnV0IHByZXNlcnZlIGNoZWNrX2Rp ciBzdGF0dXMuICovCi0rCQlpZiAobD09MSAmJiBzdGFja1twXT09Jy4nKSB7Ci0rCQkJcCArPSBs OwotKwkJCWNvbnRpbnVlOwotKwkJfQotIAotLQlmc3RhdChmZCwgJnN0MSk7Ci0tCXIgPSBzdGF0 KHRtcCwgJnN0Mik7Ci0tCWlmIChyPDAgfHwgc3QxLnN0X2RldiAhPSBzdDIuc3RfZGV2IHx8IHN0 MS5zdF9pbm8gIT0gc3QyLnN0X2lubykgewotLQkJaWYgKCFyKSBlcnJubyA9IEVMT09QOwotLQkJ Z290byBlcnI7Ci0rCQkvKiBDb3B5IG5leHQgY29tcG9uZW50IG9udG8gb3V0cHV0IGF0IGxlYXN0 IHRlbXBvcmFyaWx5LCB0bwotKwkJICogY2FsbCByZWFkbGluaywgYnV0IHdhaXQgdG8gYWR2YW5j ZSBvdXRwdXQgcG9zaXRpb24gdW50aWwKLSsJCSAqIGRldGVybWluaW5nIGl0J3Mgbm90IGEgbGlu ay4gKi8KLSsJCWlmIChxICYmIG91dHB1dFtxLTFdICE9ICcvJykgewotKwkJCWlmICghcCkgZ290 byB0b29sb25nOwotKwkJCXN0YWNrWy0tcF0gPSAnLyc7Ci0rCQkJbCsrOwotKwkJfQotKwkJaWYg KHErbCA+PSBQQVRIX01BWCkgZ290byB0b29sb25nOwotKwkJbWVtY3B5KG91dHB1dCtxLCBzdGFj aytwLCBsKTsKLSsJCW91dHB1dFtxK2xdID0gMDsKLSsJCXAgKz0gbDsKLSsKLSsJCWludCB1cCA9 IDA7Ci0rCQlpZiAobDA9PTIgJiYgc3RhY2tbcC0yXT09Jy4nICYmIHN0YWNrW3AtMV09PScuJykg ewotKwkJCXVwID0gMTsKLSsJCQkvKiBBbnkgbm9uLS4uIHBhdGggY29tcG9uZW50cyB3ZSBjb3Vs ZCBjYW5jZWwgc3RhcnQKLSsJCQkgKiBhZnRlciBudXAgcmVwZXRpdGlvbnMgb2YgdGhlIDMtYnl0 ZSBzdHJpbmcgIi4uLyI7Ci0rCQkJICogaWYgdGhlcmUgYXJlIG5vbmUsIGFjY3VtdWxhdGUgLi4g Y29tcG9uZW50cyB0bwotKwkJCSAqIGxhdGVyIGFwcGx5IHRvIGN3ZCwgaWYgbmVlZGVkLiAqLwot KwkJCWlmIChxIDw9IDMqbnVwKSB7Ci0rCQkJCW51cCsrOwotKwkJCQlxICs9IGw7Ci0rCQkJCWNv bnRpbnVlOwotKwkJCX0KLSsJCQkvKiBXaGVuIHByZXZpb3VzIGNvbXBvbmVudHMgYXJlIGFscmVh ZHkga25vd24gdG8gYmUKLSsJCQkgKiBkaXJlY3RvcmllcywgcHJvY2Vzc2luZyAuLiBjYW4gc2tp cCByZWFkbGluay4gKi8KLSsJCQlpZiAoIWNoZWNrX2RpcikgZ290byBza2lwX3JlYWRsaW5rOwot KwkJfQotKwkJc3NpemVfdCBrID0gcmVhZGxpbmsob3V0cHV0LCBzdGFjaywgcCk7Ci0rCQlpZiAo az09cCkgZ290byB0b29sb25nOwotKwkJaWYgKCFrKSB7Ci0rCQkJZXJybm8gPSBFTk9FTlQ7Ci0r CQkJcmV0dXJuIDA7Ci0rCQl9Ci0rCQlpZiAoazwwKSB7Ci0rCQkJaWYgKGVycm5vICE9IEVJTlZB TCkgcmV0dXJuIDA7Ci0rc2tpcF9yZWFkbGluazoKLSsJCQljaGVja19kaXIgPSAwOwotKwkJCWlm ICh1cCkgewotKwkJCQl3aGlsZShxICYmIG91dHB1dFtxLTFdIT0nLycpIHEtLTsKLSsJCQkJaWYg KHE+MSAmJiAocT4yIHx8IG91dHB1dFswXSE9Jy8nKSkgcS0tOwotKwkJCQljb250aW51ZTsKLSsJ CQl9Ci0rCQkJaWYgKGwwKSBxICs9IGw7Ci0rCQkJY2hlY2tfZGlyID0gc3RhY2tbcF07Ci0rCQkJ Y29udGludWU7Ci0rCQl9Ci0rCQlpZiAoKytjbnQgPT0gU1lNTE9PUF9NQVgpIHsKLSsJCQllcnJu byA9IEVMT09QOwotKwkJCXJldHVybiAwOwotKwkJfQotKwotKwkJLyogSWYgbGluayBjb250ZW50 cyBlbmQgaW4gLywgc3RyaXAgYW55IHNsYXNoZXMgYWxyZWFkeSBvbgotKwkJICogc3RhY2sgdG8g YXZvaWQgLy0+Ly8gb3IgLy8tPi8vLyBvciBzcHVyaW91cyB0b29sb25nLiAqLwotKwkJaWYgKHN0 YWNrW2stMV09PScvJykgd2hpbGUgKHN0YWNrW3BdPT0nLycpIHArKzsKLSsJCXAgLT0gazsKLSsJ CW1lbW1vdmUoc3RhY2srcCwgc3RhY2ssIGspOwotKwotKwkJLyogU2tpcCB0aGUgc3RhY2sgYWR2 YW5jZW1lbnQgaW4gY2FzZSB3ZSBoYXZlIGEgbmV3Ci0rCQkgKiBhYnNvbHV0ZSBiYXNlIHBhdGgu ICovCi0rCQlnb3RvIHJlc3RhcnQ7Ci0gCX0KLSAKLS0JX19zeXNjYWxsKFNZU19jbG9zZSwgZmQp OwotLQlyZXR1cm4gcmVzb2x2ZWQgPyBzdHJjcHkocmVzb2x2ZWQsIHRtcCkgOiBzdHJkdXAodG1w KTsKLS1lcnI6Ci0tCV9fc3lzY2FsbChTWVNfY2xvc2UsIGZkKTsKLSsgCW91dHB1dFtxXSA9IDA7 Ci0rCi0rCWlmIChvdXRwdXRbMF0gIT0gJy8nKSB7Ci0rCQlpZiAoIWdldGN3ZChzdGFjaywgc2l6 ZW9mIHN0YWNrKSkgcmV0dXJuIDA7Ci0rCQlsID0gc3RybGVuKHN0YWNrKTsKLSsJCS8qIENhbmNl bCBhbnkgaW5pdGlhbCAuLiBjb21wb25lbnRzLiAqLwotKwkJcCA9IDA7Ci0rCQl3aGlsZSAobnVw LS0pIHsKLSsJCQl3aGlsZShsPjEgJiYgc3RhY2tbbC0xXSE9Jy8nKSBsLS07Ci0rCQkJaWYgKGw+ MSkgbC0tOwotKwkJCXAgKz0gMjsKLSsJCQlpZiAocDxxKSBwKys7Ci0rCQl9Ci0rCQlpZiAocS1w ICYmIHN0YWNrW2wtMV0hPScvJykgc3RhY2tbbCsrXSA9ICcvJzsKLSsJCWlmIChsICsgKHEtcCkg KyAxID49IFBBVEhfTUFYKSBnb3RvIHRvb2xvbmc7Ci0rCQltZW1tb3ZlKG91dHB1dCArIGwsIG91 dHB1dCArIHAsIHEgLSBwICsgMSk7Ci0rCQltZW1jcHkob3V0cHV0LCBzdGFjaywgbCk7Ci0rCQlx ID0gbCArIHEtcDsKLSsJfQotKwotKwlpZiAocmVzb2x2ZWQpIHJldHVybiBtZW1jcHkocmVzb2x2 ZWQsIG91dHB1dCwgcSsxKTsKLSsJZWxzZSByZXR1cm4gc3RyZHVwKG91dHB1dCk7Ci0rCi0rdG9v bG9uZzoKLSsJZXJybm8gPSBFTkFNRVRPT0xPTkc7Ci0gCXJldHVybiAwOwotIH0KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2lzYXNjaWkucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0 Y2hlcy9pc2FzY2lpLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzE5ZDJl ZTE4OGZhLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2lzYXNjaWku cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1Gcm9tIGU0OGU5OWMxMTIyNDZm YjU4MDU5NjQwNDA3NDQ0NWNiMjVkNzg1OGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiA9P1VURi04P3E/PUMzPTg5cmljbz0yMFJvbGltPz0gPGVyaWNvbnJAZGlzcm9vdC5vcmc+Ci1E YXRlOiBNb24sIDQgSmFuIDIwMjEgMjI6NDg6MzQgLTAzMDAKLVN1YmplY3Q6IFtQQVRDSF0gc3Vw cHJlc3MgaXNhc2NpaSgpIG1hY3JvIGZvciBDKysKLQotYW5hbG9nb3VzIHRvIGNvbW1pdCBhNjA0 NTdjODRhNGI1OWFiNTY0ZDdmNGFiYjY2MGE3MDI4M2JhOThkLgotCi1kaWZmIC0tZ2l0IGluY2x1 ZGUvY3R5cGUuaCBpbmNsdWRlL2N0eXBlLmgKLWluZGV4IDc5MzY1MzZmLi4zMmJjZWY0ZCAxMDA2 NDQKLS0tLSBhL2luY2x1ZGUvY3R5cGUuaAotKysrIGIvaW5jbHVkZS9jdHlwZS5oCi1AQCAtNjQs NyArNjQsOSBAQCBpbnQgICBpc2FzY2lpKGludCk7Ci0gaW50ICAgdG9hc2NpaShpbnQpOwotICNk ZWZpbmUgX3RvbG93ZXIoYSkgKChhKXwweDIwKQotICNkZWZpbmUgX3RvdXBwZXIoYSkgKChhKSYw eDVmKQotKyNpZm5kZWYgX19jcGx1c3BsdXMKLSAjZGVmaW5lIGlzYXNjaWkoYSkgKDAgPyBpc2Fz Y2lpKGEpIDogKHVuc2lnbmVkKShhKSA8IDEyOCkKLSsjZW5kaWYKLSAKLSAjZW5kaWYKLSAKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL21vX2xvb2t1cC5wYXRjaCBiL3NyY3BrZ3Mv bXVzbC9wYXRjaGVzL21vX2xvb2t1cC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggYWU4NmUzM2M5YzcwMC4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hl cy9tb19sb29rdXAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1EbyBub3Qg Y3Jhc2ggd2l0aCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIGRjbmdldHRleHQoKQot aXMgY2FsbGVkIHdpdGggTlVMTCBtc2dpZFsxMl0gYXJndW1lbnRzLgotCi1GaXggZm9yIGh0dHBz Oi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzLzEyMDQyCi1hbmQg cHJvYmFibHkgb3RoZXJzLgotCi0JLS14dHJhZW1lCi0KLS0tLSBhL3NyYy9sb2NhbGUvX19tb19s b29rdXAuYy5vcmlnCTIwMTktMDYtMjYgMDk6NTU6MzYuODQzMDEyNjc0ICswMjAwCi0rKysgYi9z cmMvbG9jYWxlL19fbW9fbG9va3VwLmMJMjAxOS0wNi0yNiAwOTo1NjoxMS41Mjk0NDM5NTUgKzAy MDAKLUBAIC0xMyw3ICsxMyw3IEBAIGNvbnN0IGNoYXIgKl9fbW9fbG9va3VwKGNvbnN0IHZvaWQg KnAsIHMKLSAJdWludDMyX3QgYiA9IDAsIG4gPSBzd2FwYyhtb1syXSwgc3cpOwotIAl1aW50MzJf dCBvID0gc3dhcGMobW9bM10sIHN3KTsKLSAJdWludDMyX3QgdCA9IHN3YXBjKG1vWzRdLCBzdyk7 Ci0tCWlmIChuPj1zaXplLzQgfHwgbz49c2l6ZS00Km4gfHwgdD49c2l6ZS00Km4gfHwgKChvfHQp JTQpKQotKwlpZiAoIXMgfHwgbj49c2l6ZS80IHx8IG8+PXNpemUtNCpuIHx8IHQ+PXNpemUtNCpu IHx8ICgob3x0KSU0KSkKLSAJCXJldHVybiAwOwotIAlvLz00OwotIAl0Lz00OwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjLXB0X3JlZ3MucGF0Y2ggYi9zcmNwa2dzL211c2wv cGF0Y2hlcy9wcGMtcHRfcmVncy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NDU4MTUzMjFiZjBmMS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9w cGMtcHRfcmVncy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLWNvbW1pdCBj MjUxOGE4ZWZiNjUwN2YxYjQxYzNiMTJlMDNiMDZmOGYyMzE3YTFmCi1BdXRob3I6IFJpY2ggRmVs a2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6ICAgU2F0IE9jdCAxOSAxNTo1Mzo0MyAyMDE5 IC0wNDAwCi0KLSAgICB1c2Ugc3RydWN0IHB0X3JlZ3MgKiByYXRoZXIgdGhhbiB2b2lkICogZm9y IHBvd2VycGNbNjRdIHNpZ2NvbnRleHQgcmVncwotICAgIAotICAgIHRoaXMgaXMgdG8gbWF0Y2gg dGhlIGtlcm5lbCBhbmQgZ2xpYmMgaW50ZXJmYWNlcy4gaGVyZSwgc3RydWN0IHB0X3JlZ3MKLSAg ICBpcyBhbiBpbmNvbXBsZXRlIHR5cGUsIGJ1dCB0aGF0J3MgaGFybWxlc3MsIGFuZCBpZiBpdCdz IGNvbXBsZXRlZCBieQotICAgIGluY2x1c2lvbiBvZiBhbm90aGVyIGhlYWRlciB0aGVuIG1lbWJl cnMgb2YgdGhlIHN0cnVjdCBwb2ludGVkIHRvIGJ5Ci0gICAgdGhlIHJlZ3MgbWVtYmVyIGNhbiBi ZSBhY2Nlc3NlZCBkaXJlY3RseSB3aXRob3V0IGdvaW5nIHRocm91Z2ggYSBjYXN0Ci0gICAgb3Ig aW50ZXJtZWRpYXRlIHBvaW50ZXIgb2JqZWN0LgotCi1kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBj L2JpdHMvc2lnbmFsLmggYi9hcmNoL3Bvd2VycGMvYml0cy9zaWduYWwuaAotaW5kZXggMDZlZmIx MWMuLmMxYmYzY2FmIDEwMDY0NAotLS0tIGEvYXJjaC9wb3dlcnBjL2JpdHMvc2lnbmFsLmgKLSsr KyBiL2FyY2gvcG93ZXJwYy9iaXRzL3NpZ25hbC5oCi1AQCAtMjgsNyArMjgsNyBAQCBzdHJ1Y3Qg c2lnY29udGV4dCB7Ci0gCWludCBzaWduYWw7Ci0gCXVuc2lnbmVkIGxvbmcgaGFuZGxlcjsKLSAJ dW5zaWduZWQgbG9uZyBvbGRtYXNrOwotLQl2b2lkICpyZWdzOwotKwlzdHJ1Y3QgcHRfcmVncyAq cmVnczsKLSB9OwotIAotIHR5cGVkZWYgc3RydWN0IHsKLWRpZmYgLS1naXQgYS9hcmNoL3Bvd2Vy cGM2NC9iaXRzL3NpZ25hbC5oIGIvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaAotaW5kZXgg NGRlYzIyYTUuLmQ1NDkzYjE4IDEwMDY0NAotLS0tIGEvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWdu YWwuaAotKysrIGIvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaAotQEAgLTMyLDcgKzMyLDcg QEAgdHlwZWRlZiBzdHJ1Y3Qgc2lnY29udGV4dCB7Ci0gCWludCBfcGFkMDsKLSAJdW5zaWduZWQg bG9uZyBoYW5kbGVyOwotIAl1bnNpZ25lZCBsb25nIG9sZG1hc2s7Ci0tCXZvaWQgKnJlZ3M7Ci0r CXN0cnVjdCBwdF9yZWdzICpyZWdzOwotIAlncmVnc2V0X3QgZ3BfcmVnczsKLSAJZnByZWdzZXRf dCBmcF9yZWdzOwotIAl2cnJlZ3NldF90ICp2X3JlZ3M7CmRpZmYgLS1naXQgYS9zcmNwa2dzL211 c2wvcGF0Y2hlcy9wcGM2NC1mcHJlZ3NldF90LnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMv cHBjNjQtZnByZWdzZXRfdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI2 MTdiYTBlZjdkNS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9wcGM2 NC1mcHJlZ3NldF90LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotY29tbWl0 IGM5ZjQ4Y2RlMGEyMjY0MWNlM2RhZjU0NTk2YTllY2ViZGFiOTE0MzUKLUF1dGhvcjogUmljaCBG ZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogICBTYXQgT2N0IDE5IDE1OjM5OjQ1IDIw MTkgLTA0MDAKLQotICAgIGZpeCBmcHJlZ3NldF90IHR5cGUgb24gcG93ZXJwYzY0Ci0gICAgCi0g ICAgdGhlIHVzZXJzcGFjZSB1Y29udGV4dCBBUEkgaGFzIHRoaXMgYXMgYW4gYXJyYXkgcmF0aGVy IHRoYW4gYQotICAgIHN0cnVjdHVyZS4KLSAgICAKLSAgICBjb21taXQgM2M1OWE4Njg5NTY2MzZi YzhhZGFmYjFiMTY4ZDA5MDg5NzY5MjUzMiBmaXhlZCB0aGUKLSAgICBjb3JyZXNwb25kaW5nIG1p c3Rha2UgZm9yIHZycmVnc2V0X3QsIG5hbWVseSB0aGF0IHRoZSBvcmlnaW5hbAotICAgIHBvd2Vy cGM2NCBwb3J0IHVzZWQgYSBtaXggb2YgdHlwZXMgZnJvbSAzMi1iaXQgcG93ZXJwYyBhbmQgcG93 ZXJwYzY0Ci0gICAgcmF0aGVyIHRoYW4gbWF0Y2hpbmcgdGhlIDY0LWJpdCB0eXBlcy4KLQotZGlm ZiAtLWdpdCBhL2FyY2gvcG93ZXJwYzY0L2JpdHMvc2lnbmFsLmggYi9hcmNoL3Bvd2VycGM2NC9i aXRzL3NpZ25hbC5oCi1pbmRleCAyY2MwNjA0Yy4uNGRlYzIyYTUgMTAwNjQ0Ci0tLS0gYS9hcmNo L3Bvd2VycGM2NC9iaXRzL3NpZ25hbC5oCi0rKysgYi9hcmNoL3Bvd2VycGM2NC9iaXRzL3NpZ25h bC5oCi1AQCAtOSwxMSArOSw3IEBACi0gI2lmIGRlZmluZWQoX0dOVV9TT1VSQ0UpIHx8IGRlZmlu ZWQoX0JTRF9TT1VSQ0UpCi0gCi0gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGdyZWdfdCwgZ3JlZ3Nl dF90WzQ4XTsKLS0KLS10eXBlZGVmIHN0cnVjdCB7Ci0tCWRvdWJsZSBmcHJlZ3NbMzJdOwotLQlk b3VibGUgZnBzY3I7Ci0tfSBmcHJlZ3NldF90OwotK3R5cGVkZWYgZG91YmxlIGZwcmVnc2V0X3Rb MzNdOwotIAotIHR5cGVkZWYgc3RydWN0IHsKLSAjaWZkZWYgX19HTlVDX18KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwY2xlLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMv cHBjbGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkNDkzMzhhNWEwZjEu LjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjbGUucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1Gcm9tIDIwZGZjMjAwMjQ4MmEyMWI5NTViNzEw YWYxMTlhMDFhZWNlZTc4NGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KLURhdGU6IFR1ZSwgMTUgRGVjIDIwMjAgMjA6 NDI6MTcgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gYWRkIHBwYzMyIGxlIHN1YmFyY2gKLQotLS0t Ci0gY29uZmlndXJlIHwgMSArCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCi0KLWRp ZmYgLS1naXQgY29uZmlndXJlIGNvbmZpZ3VyZQotaW5kZXggODY4MDEyOC4uZjFjYTU4ZSAxMDA3 NTUKLS0tLSBhL2NvbmZpZ3VyZQotKysrIGIvY29uZmlndXJlCi1AQCAtNjQ1LDYgKzY0NSw3IEBA IGZpCi0gaWYgdGVzdCAiJEFSQ0giID0gInBvd2VycGMiIDsgdGhlbgotIHRyeWNwcGlmICJfX05P X0ZQUlNfXyAmJiAhX1NPRlRfRkxPQVQiICIkdCIgJiYgZmFpbCBcCi0gICAiJDA6IGVycm9yOiBj b21waWxlcidzIGZsb2F0aW5nIHBvaW50IGNvbmZpZ3VyYXRpb24gaXMgdW5zdXBwb3J0ZWQiCi0r dHJ5Y3BwaWYgX19MSVRUTEVfRU5ESUFOX18gIiR0IiAmJiBTVUJBUkNIPSR7U1VCQVJDSH1sZQot IHRyeWNwcGlmIF9TT0ZUX0ZMT0FUICIkdCIgJiYgU1VCQVJDSD0ke1NVQkFSQ0h9LXNmCi0gZmkK LSAKLS0tIAotMi4yOS4yCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3dvcmtf YXJvdW5kX2xpbnV4X2J1Z19pbl9yZWFkbGlua19zeXNjYWxsX3dpdGhfemVyb19idWZmZXIucGF0 Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy93b3JrX2Fyb3VuZF9saW51eF9idWdfaW5fcmVhZGxp bmtfc3lzY2FsbF93aXRoX3plcm9fYnVmZmVyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAzMjg2NDMyZWJlYTIzLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9w YXRjaGVzL3dvcmtfYXJvdW5kX2xpbnV4X2J1Z19pbl9yZWFkbGlua19zeXNjYWxsX3dpdGhfemVy b19idWZmZXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi1Gcm9tIGUyZmE3 MjBiZTcwMjRjY2U0ZmM0ODlmMzg3NzQ3NmQzNWRhNDhlZTIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBNb24sIDIz IE5vdiAyMDIwIDE5OjQ0OjE5IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHdvcmsgYXJvdW5kIGxp bnV4IGJ1ZyBpbiByZWFkbGluayBzeXNjYWxsIHdpdGggemVybyBidWZmZXIKLSBzaXplCi0KLWxp bnV4IGZhaWxzIHdpdGggRUlOVkFMIHdoZW4gYSB6ZXJvIGJ1ZmZlciBzaXplIGlzIHBhc3NlZCB0 byB0aGUKLXN5c2NhbGwuIHRoaXMgaXMgbm9uLWNvbmZvcm1pbmcgYmVjYXVzZSBQT1NJWCBhbHJl YWR5IGRlZmluZXMgRUlOVkFMCi13aXRoIGEgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQgbWVhbmlu ZzogdGhlIHRhcmdldCBpcyBub3QgYSBzeW1saW5rLgotCi1zaW5jZSB0aGUgcmVxdWVzdCBpcyBz ZW1hbnRpY2FsbHkgdmFsaWQsIHBhdGNoIGl0IHVwIGJ5IHVzaW5nIGEgZHVtbXkKLWJ1ZmZlciBv ZiBsZW5ndGggb25lLCBhbmQgdHJ1bmNhdGluZyB0aGUgcmV0dXJuIHZhbHVlIHRvIHplcm8gaWYg aXQKLXN1Y2NlZWRzLgotLS0tCi0gc3JjL3VuaXN0ZC9yZWFkbGluay5jICAgfCAxMSArKysrKysr KystLQotIHNyYy91bmlzdGQvcmVhZGxpbmthdC5jIHwgIDkgKysrKysrKystCi0gMiBmaWxlcyBj aGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv c3JjL3VuaXN0ZC9yZWFkbGluay5jIGIvc3JjL3VuaXN0ZC9yZWFkbGluay5jCi1pbmRleCBhMTUy ZDUyNDkuLjMyZjQ1MzdmOSAxMDA2NDQKLS0tLSBhL3NyYy91bmlzdGQvcmVhZGxpbmsuYwotKysr IGIvc3JjL3VuaXN0ZC9yZWFkbGluay5jCi1AQCAtNCw5ICs0LDE2IEBACi0gCi0gc3NpemVfdCBy ZWFkbGluayhjb25zdCBjaGFyICpyZXN0cmljdCBwYXRoLCBjaGFyICpyZXN0cmljdCBidWYsIHNp emVfdCBidWZzaXplKQotIHsKLSsJY2hhciBkdW1teVsxXTsKLSsJaWYgKCFidWZzaXplKSB7Ci0r CQlidWYgPSBkdW1teTsKLSsJCWJ1ZnNpemUgPSAxOwotKwl9Ci0gI2lmZGVmIFNZU19yZWFkbGlu awotLQlyZXR1cm4gc3lzY2FsbChTWVNfcmVhZGxpbmssIHBhdGgsIGJ1ZiwgYnVmc2l6ZSk7Ci0r CWludCByID0gX19zeXNjYWxsKFNZU19yZWFkbGluaywgcGF0aCwgYnVmLCBidWZzaXplKTsKLSAj ZWxzZQotLQlyZXR1cm4gc3lzY2FsbChTWVNfcmVhZGxpbmthdCwgQVRfRkRDV0QsIHBhdGgsIGJ1 ZiwgYnVmc2l6ZSk7Ci0rCWludCByID0gX19zeXNjYWxsKFNZU19yZWFkbGlua2F0LCBBVF9GRENX RCwgcGF0aCwgYnVmLCBidWZzaXplKTsKLSAjZW5kaWYKLSsJaWYgKGJ1ZiA9PSBkdW1teSAmJiBy ID4gMCkgciA9IDA7Ci0rCXJldHVybiBfX3N5c2NhbGxfcmV0KHIpOwotIH0KLWRpZmYgLS1naXQg YS9zcmMvdW5pc3RkL3JlYWRsaW5rYXQuYyBiL3NyYy91bmlzdGQvcmVhZGxpbmthdC5jCi1pbmRl eCA5YWY0NWNkNWEuLmY3OWQzZDE0MiAxMDA2NDQKLS0tLSBhL3NyYy91bmlzdGQvcmVhZGxpbmth dC5jCi0rKysgYi9zcmMvdW5pc3RkL3JlYWRsaW5rYXQuYwotQEAgLTMsNSArMywxMiBAQAotIAot IHNzaXplX3QgcmVhZGxpbmthdChpbnQgZmQsIGNvbnN0IGNoYXIgKnJlc3RyaWN0IHBhdGgsIGNo YXIgKnJlc3RyaWN0IGJ1Ziwgc2l6ZV90IGJ1ZnNpemUpCi0gewotLQlyZXR1cm4gc3lzY2FsbChT WVNfcmVhZGxpbmthdCwgZmQsIHBhdGgsIGJ1ZiwgYnVmc2l6ZSk7Ci0rCWNoYXIgZHVtbXlbMV07 Ci0rCWlmICghYnVmc2l6ZSkgewotKwkJYnVmID0gZHVtbXk7Ci0rCQlidWZzaXplID0gMTsKLSsJ fQotKwlpbnQgciA9IF9fc3lzY2FsbChTWVNfcmVhZGxpbmthdCwgZmQsIHBhdGgsIGJ1ZiwgYnVm c2l6ZSk7Ci0rCWlmIChidWYgPT0gZHVtbXkgJiYgciA+IDApIHIgPSAwOwotKwlyZXR1cm4gX19z eXNjYWxsX3JldChyKTsKLSB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvdGVtcGxhdGUgYi9z cmNwa2dzL211c2wvdGVtcGxhdGUKaW5kZXggZTBlMDVjMmRmMDk5NS4uOWViZjgxMThlZDZkOCAx MDA2NDQKLS0tIGEvc3JjcGtncy9tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbXVzbC90ZW1w bGF0ZQpAQCAtMSw4ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ211c2wnCiBwa2duYW1l PW11c2wKLXJldmVydHM9IjEuMi4wXzEiCi12ZXJzaW9uPTEuMS4yNAotcmV2aXNpb249MTcKK3Zl cnNpb249MS4yLjQKK3JldmlzaW9uPTEKIGFyY2hzPSIqLW11c2wiCiBib290c3RyYXA9eWVzCiBi dWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMiw3ICsxMSw3IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJNSVQiCiBob21lcGFn ZT0iaHR0cHM6Ly9tdXNsLmxpYmMub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9tdXNsLmxpYmMu b3JnL3JlbGVhc2VzL211c2wtJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT0xMzcwYzlhODEy YjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCitj aGVja3N1bT03YTM1ZWFlMzNkNTM3MmE3YzBkYTExODhkZTc5ODcyNmY2ODgyNTUxM2I3YWUzZWJl OTdhYWFhNTIxMTRmMDM5CiAKIG5vc3RyaXBfZmlsZXM9ImxpYmMuc28iCiBzaGxpYl9wcm92aWRl cz0ibGliYy5zbyIKCkZyb20gMzk4YTgzYzc1YTlhNDMwOTgxM2NhYzgwYmZkODY3ZmNmYTY1NGJj YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogZGt3byA8bmljb2xvcGlhenphbHVuZ2FA Z21haWwuY29tPgpEYXRlOiBXZWQsIDI5IE1hciAyMDIzIDE1OjA4OjE2IC0wNDAwClN1YmplY3Q6 IFtQQVRDSCAyLzNdIGJhc2UtY2hyb290OiBidW1wIG11c2wtZGV2ZWwgdmVyc2lvbgoKLS0tCiBz cmNwa2dzL2Jhc2UtY2hyb290L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iYXNl LWNocm9vdC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmFzZS1jaHJvb3QvdGVtcGxhdGUKaW5kZXggZTZm MTY4NGVkMzcwZC4uMzUwNmU3MDRmM2YwNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9iYXNlLWNocm9v dC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Jhc2UtY2hyb290L3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmFzZS1jaHJvb3QnCiBwa2duYW1lPWJhc2UtY2hy b290Ci12ZXJzaW9uPTAuNjcKLXJldmlzaW9uPTIKK3ZlcnNpb249MC42OAorcmV2aXNpb249MQog Ym9vdHN0cmFwPXllcwogYnVpbGRfc3R5bGU9bWV0YQogc2hvcnRfZGVzYz0iTWluaW1hbCBzZXQg b2YgcGFja2FnZXMgcmVxdWlyZWQgZm9yIGNocm9vdCB3aXRoIHhicHMtc3JjIgpAQCAtMTEsNyAr MTEsNyBAQCBob21lcGFnZT0iaHR0cDovL3d3dy52b2lkbGludXgub3JnIgogcmVwb3NpdG9yeT1i b290c3RyYXAKIAogY2FzZSAiJFhCUFNfVEFSR0VUX0xJQkMiIGluCi0JbXVzbCkgZGVwZW5kcz0i bXVzbC1kZXZlbCI7OworCW11c2wpIGRlcGVuZHM9Im11c2wtZGV2ZWw+PTEuMi40XzEiOzsKIAkq KSBkZXBlbmRzPSJnbGliYy1kZXZlbCBnbGliYy1sb2NhbGVzIjs7CiBlc2FjCiAKCkZyb20gZWE5 NjhiOGVkY2NiNWU5Yjc5MWY4NzFmMWNhZDc2ZGMxNWE3N2Q5OCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogZGt3byA8bmljb2xvcGlhenphbHVuZ2FAZ21haWwuY29tPgpEYXRlOiBXZWQs IDI5IE1hciAyMDIzIDE1OjA5OjAxIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAzLzNdIGJhc2UtZGV2 ZWw6IGJ1bXAgbXVzbC1kZXZlbCB2ZXJzaW9uCgotLS0KIHNyY3BrZ3MvYmFzZS1kZXZlbC90ZW1w bGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Jhc2UtZGV2ZWwvdGVtcGxhdGUgYi9zcmNwa2dz L2Jhc2UtZGV2ZWwvdGVtcGxhdGUKaW5kZXggNTcwZjY5OWNhOTYwMS4uMzAzYTdmNTBlNDczOCAx MDA2NDQKLS0tIGEvc3JjcGtncy9iYXNlLWRldmVsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYmFz ZS1kZXZlbC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Jh c2UtZGV2ZWwnCiBwa2duYW1lPWJhc2UtZGV2ZWwKIHZlcnNpb249MjAxODEwMDMKLXJldmlzaW9u PTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPW1ldGEKIGRlcGVuZHM9ImF1dG9jb25mIGF1dG9t YWtlIGJjIGJpbnV0aWxzIGJpc29uIGVkIGZsZXggZ2NjIGdldHRleHQKICBncm9mZiBsaWJ0b29s IG00IG1ha2UgcGF0Y2ggcGtnLWNvbmZpZyB0ZXhpbmZvIHVuemlwIHh6IgpAQCAtMTIsNiArMTIs NiBAQCBob21lcGFnZT0iaHR0cDovL3d3dy52b2lkbGludXgub3JnLyIKIGxpYjMyZGlzYWJsZWQ9 eWVzCiAKIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCSotbXVzbCkgZGVwZW5kcys9 IiBtdXNsLWRldmVsIjs7CisJKi1tdXNsKSBkZXBlbmRzKz0iIG11c2wtZGV2ZWw+PTEuMi40XzEi OzsKIAkqKSBkZXBlbmRzKz0iIGdsaWJjLWRldmVsIjs7CiBlc2FjCg== --===============8772685964262590997==--