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,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 29627 invoked from network); 26 Dec 2022 06:05:47 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 26 Dec 2022 06:05:47 -0000 Content-Type: multipart/mixed; boundary="===============1429881109089241078==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_musl?= To: ml@inbox.vuxu.org From: CameronNemo Reply-to: ml@inbox.vuxu.org Message-ID: Date: Mon, 26 Dec 2022 07:05:46 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============1429881109089241078== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IENhbWVyb25OZW1vIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9DYW1l cm9uTmVtby92b2lkLXBhY2thZ2VzIG11c2wKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9wdWxsLzQxMjk1CgptdXNsCi0gbXVzbDogdXBkYXRlIHRvIDEuMi4zCi0g YmFzZS1jaHJvb3Q6IGJ1bXAgbXVzbC1kZXZlbCB2ZXJzaW9uCi0gYmFzZS1kZXZlbDogYnVtcCBt dXNsLWRldmVsIHZlcnNpb24KCjwhLS0gVW5jb21tZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBk ZWxldGUgb3B0aW9ucyB3aGljaCBhcmUgbm90IGFwcGxpY2FibGUgLS0+CgojIyMjIFRlc3Rpbmcg dGhlIGNoYW5nZXMKLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBpbiB0aGlzIFBSOiAqKk5PKioKCjwh LS0KIyMjIyBOZXcgcGFja2FnZQotIFRoaXMgbmV3IHBhY2thZ2UgY29uZm9ybXMgdG8gdGhlIFtw YWNrYWdlIHJlcXVpcmVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjcGFja2FnZS1yZXF1aXJlbWVudHMp OiAqKllFUyoqfCoqTk8qKgotLT4KCjwhLS0gTm90ZTogSWYgdGhlIGJ1aWxkIGlzIGxpa2VseSB0 byB0YWtlIG1vcmUgdGhhbiAyIGhvdXJzLCBwbGVhc2UgYWRkIGNpIHNraXAgdGFnIGFzIGRlc2Ny aWJlZCBpbgpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2Iv bWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uCmFuZCB0ZXN0IGF0 IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0IG9uZSBj cm9zcyBidWlsZC4KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlzIG5vdCBza2lwcGlu ZyBDSS4KLS0+CjwhLS0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nCi0gSSBidWlsdCB0aGlzIFBS IGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpCi0gSSBidWls dCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4g bWFyayBjcm9zc2J1aWxkcyk6CiAgLSBhYXJjaDY0LW11c2wKICAtIGFybXY3bAogIC0gYXJtdjZs LW11c2wKLS0+CgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQxMjk1LnBhdGNoIGlzIGF0dGFjaGVk --===============1429881109089241078== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-musl-41295.patch" RnJvbSAzNDcxY2RjNTQwNzkzMzE2MGUyOWNkMmM0ZTc3MDEyMGRjZGRlYjdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDYW1lcm9uIE5lbW8gPGNhbUBub2hvbS5vcmc+CkRhdGU6IFN1 biwgMjUgRGVjIDIwMjIgMjE6MzY6NDIgLTA4MDAKU3ViamVjdDogW1BBVENIIDEvM10gbXVzbDog dXBkYXRlIHRvIDEuMi4zCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogLi4uaXN0X3VubGlua19pbl9wdGhyZWFkX2V4aXRfYWZ0ZXJf YWxsLnBhdGNoIHwgIDU2IC0tLS0tCiAuLi5ocmVhZHNfbWludXNfMV9hc19yZWxheGVkX2F0b21p Y19mb3IucGF0Y2ggfCAgNzggLS0tLS0tLQogLi4ub3duX3NpemVfb2Zfc29tZV9saWJjX3N0cnVj dF9tZW1iZXJzLnBhdGNoIHwgIDMwIC0tLQogLi4ucHBpbmdfZm9yX3Byb2Nlc3Nlc190aGF0X3Jl dHVybl90b19zLnBhdGNoIHwgMTAyIC0tLS0tLS0tCiAuLi4wOThhODg1ZmVhZTNhZThjMzJiNDA3 MzUwZDhjYTg1ZGQxNzgucGF0Y2ggfCAxMTMgLS0tLS0tLS0tCiBzcmNwa2dzL211c2wvcGF0Y2hl cy9DVkUtMjAyMC0yODkyOC5wYXRjaCAgICAgfCAgNjQgLS0tLS0KIHNyY3BrZ3MvbXVzbC9wYXRj aGVzL2FhcmNoNjQtZnJlZ3MucGF0Y2ggICAgICB8ICAzNyAtLS0KIC4uLmQtc3VwcG9ydC1mb3It U0lHRVZfVEhSRUFEX0lELXRpbWVycy5wYXRjaCB8ICA3NCAtLS0tLS0KIHNyY3BrZ3MvbXVzbC9w YXRjaGVzL2Vwb2xsX2NwLnBhdGNoICAgICAgICAgICB8ICAyOCAtLS0KIC4uLi9tdXNsL3BhdGNo ZXMvZml4LXBpLW11dGV4LWNvbmQtMS5wYXRjaCAgICB8ICA1NiAtLS0tLQogLi4uL211c2wvcGF0 Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0yLnBhdGNoICAgIHwgIDQ4IC0tLS0KIC4uLi9tdXNsL3Bh dGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMy5wYXRjaCAgICB8ICAyOCAtLS0KIHNyY3BrZ3MvbXVz bC9wYXRjaGVzL2dldHRpZC5wYXRjaCAgICAgICAgICAgICB8ICA0OSAtLS0tCiAuLi50bHlfaW5z dGVhZF9vZl91c2luZ19wcm9jZnNfcmVhZGxpbmsucGF0Y2ggfCAyMTkgLS0tLS0tLS0tLS0tLS0t LS0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9pc2FzY2lpLnBhdGNoICAgICAgICAgICAgfCAgMjEg LS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYy1wdF9yZWdzLnBhdGNoICAgICAgICB8ICAzOCAt LS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYzY0LWZwcmVnc2V0X3QucGF0Y2ggICB8ICAzMSAt LS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwY2xlLnBhdGNoICAgICAgICAgICAgICB8ICAyNCAt LQogc3JjcGtncy9tdXNsL3BhdGNoZXMvcmVhbGxvY2FycmF5LnBhdGNoICAgICAgIHwgIDQyIC0t LS0KIC4uLmluX3JlYWRsaW5rX3N5c2NhbGxfd2l0aF96ZXJvX2J1ZmZlci5wYXRjaCB8ICA1OSAt LS0tLQogc3JjcGtncy9tdXNsL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3 ICstCiAyMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEyMDIgZGVsZXRpb25zKC0p CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMV9yZW9yZGVyX3Ro cmVhZF9saXN0X3VubGlua19pbl9wdGhyZWFkX2V4aXRfYWZ0ZXJfYWxsLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMl9kb25fdF91c2VfbGliY190aHJl YWRzX21pbnVzXzFfYXNfcmVsYXhlZF9hdG9taWNfZm9yLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwM19jdXRfZG93bl9zaXplX29mX3NvbWVfbGliY19z dHJ1Y3RfbWVtYmVycy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRj aGVzLzAwMDRfcmVzdG9yZV9sb2NrX3NraXBwaW5nX2Zvcl9wcm9jZXNzZXNfdGhhdF9yZXR1cm5f dG9fcy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzLzk5ZDUw OThhODg1ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9DVkUtMjAyMC0yODkyOC5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2FhcmNoNjQtZnJlZ3MucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtc3VwcG9ydC1mb3ItU0lHRVZf VEhSRUFEX0lELXRpbWVycy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9w YXRjaGVzL2Vwb2xsX2NwLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3Bh dGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0zLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvZ2V0dGlkLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvaW1wbGVtZW50X3JlYWxwYXRoX2RpcmVj dGx5X2luc3RlYWRfb2ZfdXNpbmdfcHJvY2ZzX3JlYWRsaW5rLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvaXNhc2NpaS5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYy1wdF9yZWdzLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjNjQtZnByZWdzZXRfdC5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwY2xlLnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvcmVhbGxvY2FycmF5LnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvd29ya19hcm91bmRfbGludXhfYnVnX2lu X3JlYWRsaW5rX3N5c2NhbGxfd2l0aF96ZXJvX2J1ZmZlci5wYXRjaAoKZGlmZiAtLWdpdCBhL2Nv bW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDExZWY2NGUwY2M3Zi4uYzJkMTU4MDFj YzJmIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTE2 LDcgKzE2LDcgQEAKICMgUExFQVNFIE5PVEU6IHdoZW4gbXVsdGlwbGUgcGFja2FnZXMgcHJvdmlk ZSB0aGUgc2FtZSBTT05BTUUsIHRoZSBmaXJzdAogIyBvbmUgKG9yZGVyIHRvcC0+Ym90dG9tKSBp cyBwcmVmZXJyZWQgb3ZlciB0aGUgbmV4dCBvbmVzLgogIwotbGliYy5zbyBtdXNsLTEuMS4yNF83 CitsaWJjLnNvIG11c2wtMS4yLjNfMQogbGliYy5zby42IGdsaWJjLTIuMzZfMQogbGlibS5zby42 IGdsaWJjLTIuMzZfMQogbGlicHRocmVhZC5zby4wIGdsaWJjLTIuMzZfMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMV9yZW9yZGVyX3RocmVhZF9saXN0X3VubGlua19pbl9w dGhyZWFkX2V4aXRfYWZ0ZXJfYWxsLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMV9y ZW9yZGVyX3RocmVhZF9saXN0X3VubGlua19pbl9wdGhyZWFkX2V4aXRfYWZ0ZXJfYWxsLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YzFhNTViYzg1ZTMuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAxX3Jlb3JkZXJfdGhyZWFkX2xpc3RfdW5s aW5rX2luX3B0aHJlYWRfZXhpdF9hZnRlcl9hbGwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1 NiArMCwwIEBACi0+RnJvbSA0ZDVhYTIwYTk0YTJkM2ZhZTNlNjkyODlkYzIzZWNhZmJkMGMxNmM0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJp ZmFsLmN4PgotRGF0ZTogRnJpLCAyMiBNYXkgMjAyMCAxNzozNToxNCAtMDQwMAotU3ViamVjdDog W1BBVENIIDEvNF0gcmVvcmRlciB0aHJlYWQgbGlzdCB1bmxpbmsgaW4gcHRocmVhZF9leGl0IGFm dGVyIGFsbAotIGxvY2tzCi0KLXNpbmNlIHRoZSBiYWNrZW5kIGZvciBMT0NLKCkgc2tpcHMgbG9j a2luZyBpZiBzaW5nbGUtdGhyZWFkZWQsIGl0J3MKLXVuc2FmZSB0byBtYWtlIHRoZSBwcm9jZXNz IGFwcGVhciBzaW5nbGUtdGhyZWFkZWQgYmVmb3JlIHRoZSBsYXN0IHVzZQotb2YgbG9jay4KLQot dGhpcyBmaXhlcyBwb3RlbnRpYWwgdW5zeW5jaHJvbml6ZWQgYWNjZXNzIHRvIGEgbGlua2VkIGxp c3QgdmlhCi1fX2RsX3RocmVhZF9jbGVhbnVwLgotLS0tCi0gc3JjL3RocmVhZC9wdGhyZWFkX2Ny ZWF0ZS5jIHwgMTkgKysrKysrKysrKystLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNl cnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3RocmVhZC9wdGhy ZWFkX2NyZWF0ZS5jIGIvc3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5jCi1pbmRleCA1ZjQ5MTA5 Mi4uNmEzYjBjMjEgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhyZWFkL3B0aHJlYWRfY3JlYXRlLmMKLSsr KyBiL3NyYy90aHJlYWQvcHRocmVhZF9jcmVhdGUuYwotQEAgLTkwLDE0ICs5MCw3IEBAIF9Ob3Jl dHVybiB2b2lkIF9fcHRocmVhZF9leGl0KHZvaWQgKnJlc3VsdCkKLSAJCWV4aXQoMCk7Ci0gCX0K LSAKLS0JLyogQXQgdGhpcyBwb2ludCB3ZSBhcmUgY29tbWl0dGVkIHRvIHRocmVhZCB0ZXJtaW5h dGlvbi4gVW5saW5rCi0tCSAqIHRoZSB0aHJlYWQgZnJvbSB0aGUgbGlzdC4gVGhpcyBjaGFuZ2Ug d2lsbCBub3QgYmUgdmlzaWJsZQotLQkgKiB1bnRpbCB0aGUgbG9jayBpcyByZWxlYXNlZCwgd2hp Y2ggb25seSBoYXBwZW5zIGFmdGVyIFNZU19leGl0Ci0tCSAqIGhhcyBiZWVuIGNhbGxlZCwgdmlh IHRoZSBleGl0IGZ1dGV4IGFkZHJlc3MgcG9pbnRpbmcgYXQgdGhlIGxvY2suICovCi0tCWxpYmMu dGhyZWFkc19taW51c18xLS07Ci0tCXNlbGYtPm5leHQtPnByZXYgPSBzZWxmLT5wcmV2OwotLQlz ZWxmLT5wcmV2LT5uZXh0ID0gc2VsZi0+bmV4dDsKLS0Jc2VsZi0+cHJldiA9IHNlbGYtPm5leHQg PSBzZWxmOwotKwkvKiBBdCB0aGlzIHBvaW50IHdlIGFyZSBjb21taXR0ZWQgdG8gdGhyZWFkIHRl cm1pbmF0aW9uLiAqLwotIAotIAkvKiBQcm9jZXNzIHJvYnVzdCBsaXN0IGluIHVzZXJzcGFjZSB0 byBoYW5kbGUgbm9uLXBzaGFyZWQgbXV0ZXhlcwotIAkgKiBhbmQgdGhlIGRldGFjaGVkIHRocmVh ZCBjYXNlIHdoZXJlIHRoZSByb2J1c3QgbGlzdCBoZWFkIHdpbGwKLUBAIC0xMjEsNiArMTE0LDE2 IEBAIF9Ob3JldHVybiB2b2lkIF9fcHRocmVhZF9leGl0KHZvaWQgKnJlc3VsdCkKLSAJX19kb19v cnBoYW5lZF9zdGRpb19sb2NrcygpOwotIAlfX2RsX3RocmVhZF9jbGVhbnVwKCk7Ci0gCi0rCS8q IExhc3QsIHVubGluayB0aHJlYWQgZnJvbSB0aGUgbGlzdC4gVGhpcyBjaGFuZ2Ugd2lsbCBub3Qg YmUgdmlzaWJsZQotKwkgKiB1bnRpbCB0aGUgbG9jayBpcyByZWxlYXNlZCwgd2hpY2ggb25seSBo YXBwZW5zIGFmdGVyIFNZU19leGl0Ci0rCSAqIGhhcyBiZWVuIGNhbGxlZCwgdmlhIHRoZSBleGl0 IGZ1dGV4IGFkZHJlc3MgcG9pbnRpbmcgYXQgdGhlIGxvY2suCi0rCSAqIFRoaXMgbmVlZHMgdG8g aGFwcGVuIGFmdGVyIGFueSBwb3NzaWJsZSBjYWxscyB0byBMT0NLKCkgdGhhdCBtaWdodAotKwkg KiBza2lwIGxvY2tpbmcgaWYgbGliYy50aHJlYWRzX21pbnVzXzEgaXMgemVyby4gKi8KLSsJbGli Yy50aHJlYWRzX21pbnVzXzEtLTsKLSsJc2VsZi0+bmV4dC0+cHJldiA9IHNlbGYtPnByZXY7Ci0r CXNlbGYtPnByZXYtPm5leHQgPSBzZWxmLT5uZXh0OwotKwlzZWxmLT5wcmV2ID0gc2VsZi0+bmV4 dCA9IHNlbGY7Ci0rCi0gCS8qIFRoaXMgYXRvbWljIHBvdGVudGlhbGx5IGNvbXBldGVzIHdpdGgg YSBjb25jdXJyZW50IHB0aHJlYWRfZGV0YWNoCi0gCSAqIGNhbGw7IHRoZSBsb3NlciBpcyByZXNw b25zaWJsZSBmb3IgZnJlZWluZyB0aHJlYWQgcmVzb3VyY2VzLiAqLwotIAlpbnQgc3RhdGUgPSBh X2Nhcygmc2VsZi0+ZGV0YWNoX3N0YXRlLCBEVF9KT0lOQUJMRSwgRFRfRVhJVElORyk7Ci0tLSAK LTIuMjEuMAotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAyX2Rvbl90X3Vz ZV9saWJjX3RocmVhZHNfbWludXNfMV9hc19yZWxheGVkX2F0b21pY19mb3IucGF0Y2ggYi9zcmNw a2dzL211c2wvcGF0Y2hlcy8wMDAyX2Rvbl90X3VzZV9saWJjX3RocmVhZHNfbWludXNfMV9hc19y ZWxheGVkX2F0b21pY19mb3IucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUw NjA3NjJlOTlhNi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDJf ZG9uX3RfdXNlX2xpYmNfdGhyZWFkc19taW51c18xX2FzX3JlbGF4ZWRfYXRvbWljX2Zvci5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLT5Gcm9tIGUwMWI1OTM5YjM4YWVhNWVj YmU0MTY3MDY0MzE5OTgyNTg3NGIyNmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBS aWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBUaHUsIDIxIE1heSAyMDIwIDIz OjMyOjQ1IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMi80XSBkb24ndCB1c2UgbGliYy50aHJlYWRz X21pbnVzXzEgYXMgcmVsYXhlZCBhdG9taWMgZm9yCi0gc2tpcHBpbmcgbG9ja3MKLQotYWZ0ZXIg YWxsIGJ1dCB0aGUgbGFzdCB0aHJlYWQgZXhpdHMsIHRoZSBuZXh0IHRocmVhZCB0byBvYnNlcnZl Ci1saWJjLnRocmVhZHNfbWludXNfMT09MCBhbmQgY29uY2x1ZGUgdGhhdCBpdCBjYW4gc2tpcCBs b2NraW5nIGZhaWxzIHRvCi1zeW5jaHJvbml6ZSB3aXRoIGFueSBjaGFuZ2VzIHRvIG1lbW9yeSB0 aGF0IHdlcmUgbWFkZSBieSB0aGUKLWxhc3QtZXhpdGluZyB0aHJlYWQuIHRoaXMgY2FuIHByb2R1 Y2UgZGF0YSByYWNlcy4KLQotb24gc29tZSBhcmNocywgYXQgbGVhc3QgeDg2LCBtZW1vcnkgc3lu Y2hyb25pemF0aW9uIGlzIHVubGlrZWx5IHRvIGJlCi1hIHByb2JsZW07IGhvd2V2ZXIsIHdpdGgg dGhlIGlubGluZSBsb2NrcyBpbiBtYWxsb2MsIHNraXBwaW5nIHRoZSBsb2NrCi1hbHNvIGVsaW1p bmF0ZWQgdGhlIGNvbXBpbGVyIGJhcnJpZXIsIGFuZCBjYXVzZWQgY29kZSB0aGF0IG5lZWRlZCB0 bwotcmUtY2hlY2sgY2h1bmsgaW4tdXNlIGJpdHMgYWZ0ZXIgb2J0YWluaW5nIHRoZSBsb2NrIHRv IHJldXNlIGEgc3RhbGUKLXZhbHVlLCBwb3NzaWJseSBmcm9tIGJlZm9yZSB0aGUgcHJvY2VzcyBi ZWNhbWUgc2luZ2xlLXRocmVhZGVkLiB0aGlzCi1pbiB0dXJuIHByb2R1Y2VkIGNvcnJ1cHRpb24g b2YgdGhlIGhlYXAgc3RhdGUuCi0KLXNvbWUgdXNlcyBvZiBsaWJjLnRocmVhZHNfbWludXNfMSBy ZW1haW4sIGVzcGVjaWFsbHkgZm9yIGFsbG9jYXRpb24gb2YKLW5ldyBUTFMgaW4gdGhlIGR5bmFt aWMgbGlua2VyOyBvdGhlcndpc2UsIGl0IGNvdWxkIGJlIHJlbW92ZWQKLWVudGlyZWx5LiBpdCdz IG1hZGUgbm9uLXZvbGF0aWxlIHRvIHJlZmxlY3QgdGhhdCB0aGUgcmVtYWluaW5nCi1hY2Nlc3Nl cyBhcmUgb25seSBtYWRlIHVuZGVyIGxvY2sgb24gdGhlIHRocmVhZCBsaXN0LgotCi1pbnN0ZWFk IG9mIGxpYmMudGhyZWFkc19taW51c18xLCBsaWJjLnRocmVhZGVkIGlzIG5vdyB1c2VkIGZvcgot c2tpcHBpbmcgbG9ja3MuIHRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgbGliYy50aHJlYWRlZCBpcyBw ZXJtYW5lbnRseQotdHJ1ZSBvbmNlIGFuIGFkZGl0aW9uYWwgdGhyZWFkIGhhcyBiZWVuIGNyZWF0 ZWQuIHRoaXMgd2lsbCBwcm9kdWNlCi1zb21lIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gaW4gcHJv Y2Vzc2VzIHRoYXQgYXJlIG1vc3RseQotc2luZ2xlLXRocmVhZGVkIGJ1dCBvY2Nhc2lvbmFsbHkg Y3JlYXRpbmcgdGhyZWFkcy4gaW4gdGhlIGZ1dHVyZSBpdAotbWF5IGJlIHBvc3NpYmxlIHRvIGJy aW5nIGJhY2sgdGhlIGZ1bGwgbG9jay1za2lwcGluZywgYnV0IG1vcmUgY2FyZQotbmVlZHMgdG8g YmUgdGFrZW4gdG8gcHJvZHVjZSBhIHNhZmUgZGVzaWduLgotLS0tCi0gc3JjL2ludGVybmFsL2xp YmMuaCB8IDIgKy0KLSBzcmMvbWFsbG9jL21hbGxvYy5jIHwgMiArLQotIHNyYy90aHJlYWQvX19s b2NrLmMgfCAyICstCi0gMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaW50ZXJuYWwvbGliYy5oIGIvc3JjL2ludGVybmFs L2xpYmMuaAotaW5kZXggYWM5N2RjN2UuLmMwNjE0ODUyIDEwMDY0NAotLS0tIGEvc3JjL2ludGVy bmFsL2xpYmMuaAotKysrIGIvc3JjL2ludGVybmFsL2xpYmMuaAotQEAgLTIxLDcgKzIxLDcgQEAg c3RydWN0IF9fbGliYyB7Ci0gCWludCBjYW5fZG9fdGhyZWFkczsKLSAJaW50IHRocmVhZGVkOwot IAlpbnQgc2VjdXJlOwotLQl2b2xhdGlsZSBpbnQgdGhyZWFkc19taW51c18xOwotKwlpbnQgdGhy ZWFkc19taW51c18xOwotIAlzaXplX3QgKmF1eHY7Ci0gCXN0cnVjdCB0bHNfbW9kdWxlICp0bHNf aGVhZDsKLSAJc2l6ZV90IHRsc19zaXplLCB0bHNfYWxpZ24sIHRsc19jbnQ7Ci1kaWZmIC0tZ2l0 IGEvc3JjL21hbGxvYy9tYWxsb2MuYyBiL3NyYy9tYWxsb2MvbWFsbG9jLmMKLWluZGV4IDk2OTgy NTk2Li4yNTUzYTYyZSAxMDA2NDQKLS0tLSBhL3NyYy9tYWxsb2MvbWFsbG9jLmMKLSsrKyBiL3Ny Yy9tYWxsb2MvbWFsbG9jLmMKLUBAIC0yNiw3ICsyNiw3IEBAIGludCBfX21hbGxvY19yZXBsYWNl ZDsKLSAKLSBzdGF0aWMgaW5saW5lIHZvaWQgbG9jayh2b2xhdGlsZSBpbnQgKmxrKQotIHsKLS0J aWYgKGxpYmMudGhyZWFkc19taW51c18xKQotKwlpZiAobGliYy50aHJlYWRlZCkKLSAJCXdoaWxl KGFfc3dhcChsaywgMSkpIF9fd2FpdChsaywgbGsrMSwgMSwgMSk7Ci0gfQotIAotZGlmZiAtLWdp dCBhL3NyYy90aHJlYWQvX19sb2NrLmMgYi9zcmMvdGhyZWFkL19fbG9jay5jCi1pbmRleCA0NTU1 N2M4OC4uNWI5YjE0NGUgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhyZWFkL19fbG9jay5jCi0rKysgYi9z cmMvdGhyZWFkL19fbG9jay5jCi1AQCAtMTgsNyArMTgsNyBAQAotIAotIHZvaWQgX19sb2NrKHZv bGF0aWxlIGludCAqbCkKLSB7Ci0tCWlmICghbGliYy50aHJlYWRzX21pbnVzXzEpIHJldHVybjsK LSsJaWYgKCFsaWJjLnRocmVhZGVkKSByZXR1cm47Ci0gCS8qIGZhc3QgcGF0aDogSU5UX01JTiBm b3IgdGhlIGxvY2ssICsxIGZvciB0aGUgY29uZ2VzdGlvbiAqLwotIAlpbnQgY3VycmVudCA9IGFf Y2FzKGwsIDAsIElOVF9NSU4gKyAxKTsKLSAJaWYgKCFjdXJyZW50KSByZXR1cm47Ci0tLSAKLTIu MjEuMAotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAzX2N1dF9kb3duX3Np emVfb2Zfc29tZV9saWJjX3N0cnVjdF9tZW1iZXJzLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNo ZXMvMDAwM19jdXRfZG93bl9zaXplX29mX3NvbWVfbGliY19zdHJ1Y3RfbWVtYmVycy5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQwYzVkOTUwMTk1Li4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwM19jdXRfZG93bl9zaXplX29mX3NvbWVfbGli Y19zdHJ1Y3RfbWVtYmVycy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLT5G cm9tIGYxMjg4OGU5ZWI5ZWVkNjBjYzI2NmI4OTlkY2FmZWNiNDc1Mjk2NGEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRl OiBGcmksIDIyIE1heSAyMDIwIDE3OjI1OjM4IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMy80XSBj dXQgZG93biBzaXplIG9mIHNvbWUgbGliYyBzdHJ1Y3QgbWVtYmVycwotCi10aGVzZSBhcmUgYWxs IGZsYWdzIHRoYXQgY2FuIGJlIHNpbmdsZS1ieXRlIHZhbHVlcy4KLS0tLQotIHNyYy9pbnRlcm5h bC9saWJjLmggfCA2ICsrKy0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaW50ZXJuYWwvbGliYy5oIGIvc3JjL2lu dGVybmFsL2xpYmMuaAotaW5kZXggYzA2MTQ4NTIuLmQ0N2Y1OGUwIDEwMDY0NAotLS0tIGEvc3Jj L2ludGVybmFsL2xpYmMuaAotKysrIGIvc3JjL2ludGVybmFsL2xpYmMuaAotQEAgLTE4LDkgKzE4 LDkgQEAgc3RydWN0IHRsc19tb2R1bGUgewotIH07Ci0gCi0gc3RydWN0IF9fbGliYyB7Ci0tCWlu dCBjYW5fZG9fdGhyZWFkczsKLS0JaW50IHRocmVhZGVkOwotLQlpbnQgc2VjdXJlOwotKwljaGFy IGNhbl9kb190aHJlYWRzOwotKwljaGFyIHRocmVhZGVkOwotKwljaGFyIHNlY3VyZTsKLSAJaW50 IHRocmVhZHNfbWludXNfMTsKLSAJc2l6ZV90ICphdXh2OwotIAlzdHJ1Y3QgdGxzX21vZHVsZSAq dGxzX2hlYWQ7Ci0tLSAKLTIuMjEuMAotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hl cy8wMDA0X3Jlc3RvcmVfbG9ja19za2lwcGluZ19mb3JfcHJvY2Vzc2VzX3RoYXRfcmV0dXJuX3Rv X3MucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDA0X3Jlc3RvcmVfbG9ja19za2lwcGlu Z19mb3JfcHJvY2Vzc2VzX3RoYXRfcmV0dXJuX3RvX3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGU3MDNjMWY0MDNjNS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVz bC9wYXRjaGVzLzAwMDRfcmVzdG9yZV9sb2NrX3NraXBwaW5nX2Zvcl9wcm9jZXNzZXNfdGhhdF9y ZXR1cm5fdG9fcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi0+RnJvbSA4 ZDgxYmE4YzBiYzZmZTMxMTM2Y2IxNWM5YzgyZWY0YzI0OTY1MDQwIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogRnJp LCAyMiBNYXkgMjAyMCAxNzo0NTo0NyAtMDQwMAotU3ViamVjdDogW1BBVENIIDQvNF0gcmVzdG9y ZSBsb2NrLXNraXBwaW5nIGZvciBwcm9jZXNzZXMgdGhhdCByZXR1cm4gdG8KLSBzaW5nbGUtdGhy ZWFkZWQgc3RhdGUKLQotdGhlIGRlc2lnbiB1c2VkIGhlcmUgcmVsaWVzIG9uIHRoZSBiYXJyaWVy IHByb3ZpZGVkIGJ5IHRoZSBmaXJzdCBsb2NrCi1vcGVyYXRpb24gYWZ0ZXIgdGhlIHByb2Nlc3Mg cmV0dXJucyB0byBzaW5nbGUtdGhyZWFkZWQgc3RhdGUgdG8KLXN5bmNocm9uaXplIHdpdGggYWN0 aW9ucyBieSB0aGUgbGFzdCB0aHJlYWQgdGhhdCBleGl0ZWQuIGJ5IHN0b3JpbmcKLXRoZSBpbnRl bnQgdG8gY2hhbmdlIG1vZGVzIGluIHRoZSBzYW1lIG9iamVjdCB1c2VkIHRvIGRldGVjdCB3aGV0 aGVyCi1sb2NraW5nIGlzIG5lZWRlZCwgaXQncyBwb3NzaWJsZSB0byBhdm9pZCBhbiBleHRyYSAo cG9zc2libHkgY29zdGx5KQotbWVtb3J5IGxvYWQgYWZ0ZXIgdGhlIGxvY2sgaXMgdGFrZW4uCi0t LS0KLSBzcmMvaW50ZXJuYWwvbGliYy5oICAgICAgICAgfCAxICsKLSBzcmMvbWFsbG9jL21hbGxv Yy5jICAgICAgICAgfCA1ICsrKystCi0gc3JjL3RocmVhZC9fX2xvY2suYyAgICAgICAgIHwgNCAr KystCi0gc3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5jIHwgOCArKysrLS0tLQotIDQgZmlsZXMg Y2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L3NyYy9pbnRlcm5hbC9saWJjLmggYi9zcmMvaW50ZXJuYWwvbGliYy5oCi1pbmRleCBkNDdmNThl MC4uNjE5YmJhODYgMTAwNjQ0Ci0tLS0gYS9zcmMvaW50ZXJuYWwvbGliYy5oCi0rKysgYi9zcmMv aW50ZXJuYWwvbGliYy5oCi1AQCAtMjEsNiArMjEsNyBAQCBzdHJ1Y3QgX19saWJjIHsKLSAJY2hh ciBjYW5fZG9fdGhyZWFkczsKLSAJY2hhciB0aHJlYWRlZDsKLSAJY2hhciBzZWN1cmU7Ci0rCXZv bGF0aWxlIHNpZ25lZCBjaGFyIG5lZWRfbG9ja3M7Ci0gCWludCB0aHJlYWRzX21pbnVzXzE7Ci0g CXNpemVfdCAqYXV4djsKLSAJc3RydWN0IHRsc19tb2R1bGUgKnRsc19oZWFkOwotZGlmZiAtLWdp dCBhL3NyYy9tYWxsb2MvbWFsbG9jLmMgYi9zcmMvbWFsbG9jL21hbGxvYy5jCi1pbmRleCAyNTUz YTYyZS4uYTgwM2Q0YzkgMTAwNjQ0Ci0tLS0gYS9zcmMvbWFsbG9jL21hbGxvYy5jCi0rKysgYi9z cmMvbWFsbG9jL21hbGxvYy5jCi1AQCAtMjYsOCArMjYsMTEgQEAgaW50IF9fbWFsbG9jX3JlcGxh Y2VkOwotIAotIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2NrKHZvbGF0aWxlIGludCAqbGspCi0gewot LQlpZiAobGliYy50aHJlYWRlZCkKLSsJaW50IG5lZWRfbG9ja3MgPSBsaWJjLm5lZWRfbG9ja3M7 Ci0rCWlmIChuZWVkX2xvY2tzKSB7Ci0gCQl3aGlsZShhX3N3YXAobGssIDEpKSBfX3dhaXQobGss IGxrKzEsIDEsIDEpOwotKwkJaWYgKG5lZWRfbG9ja3MgPCAwKSBsaWJjLm5lZWRfbG9ja3MgPSAw OwotKwl9Ci0gfQotIAotIHN0YXRpYyBpbmxpbmUgdm9pZCB1bmxvY2sodm9sYXRpbGUgaW50ICps aykKLWRpZmYgLS1naXQgYS9zcmMvdGhyZWFkL19fbG9jay5jIGIvc3JjL3RocmVhZC9fX2xvY2su YwotaW5kZXggNWI5YjE0NGUuLjYwZWVjZTQ5IDEwMDY0NAotLS0tIGEvc3JjL3RocmVhZC9fX2xv Y2suYwotKysrIGIvc3JjL3RocmVhZC9fX2xvY2suYwotQEAgLTE4LDkgKzE4LDExIEBACi0gCi0g dm9pZCBfX2xvY2sodm9sYXRpbGUgaW50ICpsKQotIHsKLS0JaWYgKCFsaWJjLnRocmVhZGVkKSBy ZXR1cm47Ci0rCWludCBuZWVkX2xvY2tzID0gbGliYy5uZWVkX2xvY2tzOwotKwlpZiAoIW5lZWRf bG9ja3MpIHJldHVybjsKLSAJLyogZmFzdCBwYXRoOiBJTlRfTUlOIGZvciB0aGUgbG9jaywgKzEg Zm9yIHRoZSBjb25nZXN0aW9uICovCi0gCWludCBjdXJyZW50ID0gYV9jYXMobCwgMCwgSU5UX01J TiArIDEpOwotKwlpZiAobmVlZF9sb2NrcyA8IDApIGxpYmMubmVlZF9sb2NrcyA9IDA7Ci0gCWlm ICghY3VycmVudCkgcmV0dXJuOwotIAkvKiBBIGZpcnN0IHNwaW4gbG9vcCwgZm9yIG1lZGl1bSBj b25nZXN0aW9uLiAqLwotIAlmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTA7ICsraSkgewotZGlm ZiAtLWdpdCBhL3NyYy90aHJlYWQvcHRocmVhZF9jcmVhdGUuYyBiL3NyYy90aHJlYWQvcHRocmVh ZF9jcmVhdGUuYwotaW5kZXggNmEzYjBjMjEuLjZiZGZiNDRmIDEwMDY0NAotLS0tIGEvc3JjL3Ro cmVhZC9wdGhyZWFkX2NyZWF0ZS5jCi0rKysgYi9zcmMvdGhyZWFkL3B0aHJlYWRfY3JlYXRlLmMK LUBAIC0xMTgsOCArMTE4LDggQEAgX05vcmV0dXJuIHZvaWQgX19wdGhyZWFkX2V4aXQodm9pZCAq cmVzdWx0KQotIAkgKiB1bnRpbCB0aGUgbG9jayBpcyByZWxlYXNlZCwgd2hpY2ggb25seSBoYXBw ZW5zIGFmdGVyIFNZU19leGl0Ci0gCSAqIGhhcyBiZWVuIGNhbGxlZCwgdmlhIHRoZSBleGl0IGZ1 dGV4IGFkZHJlc3MgcG9pbnRpbmcgYXQgdGhlIGxvY2suCi0gCSAqIFRoaXMgbmVlZHMgdG8gaGFw cGVuIGFmdGVyIGFueSBwb3NzaWJsZSBjYWxscyB0byBMT0NLKCkgdGhhdCBtaWdodAotLQkgKiBz a2lwIGxvY2tpbmcgaWYgbGliYy50aHJlYWRzX21pbnVzXzEgaXMgemVyby4gKi8KLS0JbGliYy50 aHJlYWRzX21pbnVzXzEtLTsKLSsJICogc2tpcCBsb2NraW5nIGlmIHByb2Nlc3MgYXBwZWFycyBz aW5nbGUtdGhyZWFkZWQuICovCi0rCWlmICghLS1saWJjLnRocmVhZHNfbWludXNfMSkgbGliYy5u ZWVkX2xvY2tzID0gLTE7Ci0gCXNlbGYtPm5leHQtPnByZXYgPSBzZWxmLT5wcmV2OwotIAlzZWxm LT5wcmV2LT5uZXh0ID0gc2VsZi0+bmV4dDsKLSAJc2VsZi0+cHJldiA9IHNlbGYtPm5leHQgPSBz ZWxmOwotQEAgLTMzOSw3ICszMzksNyBAQCBpbnQgX19wdGhyZWFkX2NyZWF0ZShwdGhyZWFkX3Qg KnJlc3RyaWN0IHJlcywgY29uc3QgcHRocmVhZF9hdHRyX3QgKnJlc3RyaWN0IGF0dAotIAkJfigx VUw8PCgoU0lHQ0FOQ0VMLTEpJSg4KnNpemVvZihsb25nKSkpKTsKLSAKLSAJX190bF9sb2NrKCk7 Ci0tCWxpYmMudGhyZWFkc19taW51c18xKys7Ci0rCWlmICghbGliYy50aHJlYWRzX21pbnVzXzEr KykgbGliYy5uZWVkX2xvY2tzID0gMTsKLSAJcmV0ID0gX19jbG9uZSgoYzExID8gc3RhcnRfYzEx IDogc3RhcnQpLCBzdGFjaywgZmxhZ3MsIGFyZ3MsICZuZXctPnRpZCwgVFBfQURKKG5ldyksICZf X3RocmVhZF9saXN0X2xvY2spOwotIAotIAkvKiBBbGwgY2xvbmUgZmFpbHVyZXMgdHJhbnNsYXRl IHRvIEVBR0FJTi4gSWYgZXhwbGljaXQgc2NoZWR1bGluZwotQEAgLTM2Myw3ICszNjMsNyBAQCBp bnQgX19wdGhyZWFkX2NyZWF0ZShwdGhyZWFkX3QgKnJlc3RyaWN0IHJlcywgY29uc3QgcHRocmVh ZF9hdHRyX3QgKnJlc3RyaWN0IGF0dAotIAkJbmV3LT5uZXh0LT5wcmV2ID0gbmV3OwotIAkJbmV3 LT5wcmV2LT5uZXh0ID0gbmV3OwotIAl9IGVsc2UgewotLQkJbGliYy50aHJlYWRzX21pbnVzXzEt LTsKLSsJCWlmICghLS1saWJjLnRocmVhZHNfbWludXNfMSkgbGliYy5uZWVkX2xvY2tzID0gMDsK LSAJfQotIAlfX3RsX3VubG9jaygpOwotIAlfX3Jlc3RvcmVfc2lncygmc2V0KTsKLS0tIAotMi4y MS4wCi0KLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvOTlkNTA5OGE4ODVmZWFl M2FlOGMzMmI0MDczNTBkOGNhODVkZDE3OC5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzk5 ZDUwOThhODg1ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzgucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDRlMDNhZDE2MDdjZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvbXVzbC9wYXRjaGVzLzk5ZDUwOThhODg1ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzgu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTMgKzAsMCBAQAotRnJvbSA5OWQ1MDk4YTg4NWZl YWUzYWU4YzMyYjQwNzM1MGQ4Y2E4NWRkMTc4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogSnVsaWVuIFJhbXNlaWVyIDxqLnJhbXNlaWVyQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMTgg T2N0IDIwMjAgMTI6MTU6MDYgLTA0MDAKLVN1YmplY3Q6IHVwZGF0ZSBjcnlwdF9ibG93ZmlzaCB0 byBzdXBwb3J0ICQyYiQgcHJlZml4Ci0KLU1lcmdlIGNoYW5nZXMgZnJvbSBTb2xhciBEZXNpZ25l cidzIGNyeXB0X2Jsb3dmaXNoIHYxLjMuIFRoaXMgbWFrZXMKLWNyeXB0X2Jsb3dmaXNoIGZ1bGx5 IGNvbXBhdGlibGUgd2l0aCBPcGVuQlNEJ3MgYmNyeXB0IGJ5IGFkZGluZwotc3VwcG9ydCBmb3Ig dGhlICQyYiQgcHJlZml4ICh3aGljaCBiZWhhdmVzIHRoZSBzYW1lIGFzCi1jcnlwdF9ibG93Zmlz aCdzICQyeSQpLgotLS0tCi0gc3JjL2NyeXB0L2NyeXB0X2Jsb3dmaXNoLmMgfCAzOCArKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNl cnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKLQotKGxpbWl0ZWQgdG8gJ3NyYy9jcnlwdC9jcnlw dF9ibG93ZmlzaC5jJykKLQotZGlmZiAtLWdpdCBhL3NyYy9jcnlwdC9jcnlwdF9ibG93ZmlzaC5j IGIvc3JjL2NyeXB0L2NyeXB0X2Jsb3dmaXNoLmMKLWluZGV4IGQzZjc5ODUxLi5kNzIyNjA3YiAx MDA2NDQKLS0tLSBhL3NyYy9jcnlwdC9jcnlwdF9ibG93ZmlzaC5jCi0rKysgYi9zcmMvY3J5cHQv Y3J5cHRfYmxvd2Zpc2guYwotQEAgLTE1LDcgKzE1LDcgQEAKLSAgKiBObyBjb3B5cmlnaHQgaXMg Y2xhaW1lZCwgYW5kIHRoZSBzb2Z0d2FyZSBpcyBoZXJlYnkgcGxhY2VkIGluIHRoZSBwdWJsaWMK LSAgKiBkb21haW4uICBJbiBjYXNlIHRoaXMgYXR0ZW1wdCB0byBkaXNjbGFpbSBjb3B5cmlnaHQg YW5kIHBsYWNlIHRoZSBzb2Z0d2FyZQotICAqIGluIHRoZSBwdWJsaWMgZG9tYWluIGlzIGRlZW1l ZCBudWxsIGFuZCB2b2lkLCB0aGVuIHRoZSBzb2Z0d2FyZSBpcwotLSAqIENvcHlyaWdodCAoYykg MTk5OC0yMDEyIFNvbGFyIERlc2lnbmVyIGFuZCBpdCBpcyBoZXJlYnkgcmVsZWFzZWQgdG8gdGhl Ci0rICogQ29weXJpZ2h0IChjKSAxOTk4LTIwMTQgU29sYXIgRGVzaWduZXIgYW5kIGl0IGlzIGhl cmVieSByZWxlYXNlZCB0byB0aGUKLSAgKiBnZW5lcmFsIHB1YmxpYyB1bmRlciB0aGUgZm9sbG93 aW5nIHRlcm1zOgotICAqCi0gICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1AQCAtMzEsMTIgKzMxLDEyIEBACi0gICog eW91IHBsYWNlIHRoaXMgY29kZSBhbmQgYW55IG1vZGlmaWNhdGlvbnMgeW91IG1ha2UgdW5kZXIg YSBsaWNlbnNlCi0gICogb2YgeW91ciBjaG9pY2UuCi0gICoKLS0gKiBUaGlzIGltcGxlbWVudGF0 aW9uIGlzIG1vc3RseSBjb21wYXRpYmxlIHdpdGggT3BlbkJTRCdzIGJjcnlwdC5jIChwcmVmaXgK LS0gKiAiJDJhJCIpIGJ5IE5pZWxzIFByb3ZvcyA8cHJvdm9zIGF0IGNpdGkudW1pY2guZWR1Piwg YW5kIHVzZXMgc29tZSBvZiBoaXMKLS0gKiBpZGVhcy4gIFRoZSBwYXNzd29yZCBoYXNoaW5nIGFs Z29yaXRobSB3YXMgZGVzaWduZWQgYnkgRGF2aWQgTWF6aWVyZXMKLS0gKiA8ZG0gYXQgbGNzLm1p dC5lZHU+LiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGxldmVsIG9mIGNvbXBhdGliaWxp dHksCi0tICogcGxlYXNlIHJlZmVyIHRvIHRoZSBjb21tZW50cyBpbiBCRl9zZXRfa2V5KCkgYmVs b3cgYW5kIHRvIHRoZSBpbmNsdWRlZAotLSAqIGNyeXB0KDMpIG1hbiBwYWdlLgotKyAqIFRoaXMg aW1wbGVtZW50YXRpb24gaXMgZnVsbHkgY29tcGF0aWJsZSB3aXRoIE9wZW5CU0QncyBiY3J5cHQu YyBmb3IgcHJlZml4Ci0rICogIiQyYiQiLCBvcmlnaW5hbGx5IGJ5IE5pZWxzIFByb3ZvcyA8cHJv dm9zIGF0IGNpdGkudW1pY2guZWR1PiwgYW5kIGl0IHVzZXMKLSsgKiBzb21lIG9mIGhpcyBpZGVh cy4gIFRoZSBwYXNzd29yZCBoYXNoaW5nIGFsZ29yaXRobSB3YXMgZGVzaWduZWQgYnkgRGF2aWQK LSsgKiBNYXppZXJlcyA8ZG0gYXQgbGNzLm1pdC5lZHU+LiAgRm9yIGluZm9ybWF0aW9uIG9uIHRo ZSBsZXZlbCBvZgotKyAqIGNvbXBhdGliaWxpdHkgZm9yIGJjcnlwdCBoYXNoIHByZWZpeGVzIG90 aGVyIHRoYW4gIiQyYiQiLCBwbGVhc2UgcmVmZXIgdG8KLSsgKiB0aGUgY29tbWVudHMgaW4gQkZf c2V0X2tleSgpIGJlbG93IGFuZCB0byB0aGUgaW5jbHVkZWQgY3J5cHQoMykgbWFuIHBhZ2UuCi0g ICoKLSAgKiBUaGVyZSdzIGEgcGFwZXIgb24gdGhlIGFsZ29yaXRobSB0aGF0IGV4cGxhaW5zIGl0 cyBkZXNpZ24gZGVjaXNpb25zOgotICAqCi1AQCAtNTMzLDYgKzUzMyw3IEBAIHN0YXRpYyB2b2lk IEJGX3NldF9rZXkoY29uc3QgY2hhciAqa2V5LCBCRl9rZXkgZXhwYW5kZWQsIEJGX2tleSBpbml0 aWFsLAotICAqIFZhbGlkIGNvbWJpbmF0aW9ucyBvZiBzZXR0aW5ncyBhcmU6Ci0gICoKLSAgKiBQ cmVmaXggIiQyYSQiOiBidWcgPSAwLCBzYWZldHkgPSAweDEwMDAwCi0rICogUHJlZml4ICIkMmIk IjogYnVnID0gMCwgc2FmZXR5ID0gMAotICAqIFByZWZpeCAiJDJ4JCI6IGJ1ZyA9IDEsIHNhZmV0 eSA9IDAKLSAgKiBQcmVmaXggIiQyeSQiOiBidWcgPSAwLCBzYWZldHkgPSAwCi0gICovCi1AQCAt NTk2LDEyICs1OTcsMTQgQEAgc3RhdGljIHZvaWQgQkZfc2V0X2tleShjb25zdCBjaGFyICprZXks IEJGX2tleSBleHBhbmRlZCwgQkZfa2V5IGluaXRpYWwsCi0gCWluaXRpYWxbMF0gXj0gc2lnbjsK LSB9Ci0gCi0rc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZmxhZ3NfYnlfc3VidHlwZVsyNl0g PSB7Ci0rCTIsIDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCi0rCTAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDQsIDAKLSt9OwotKwotIHN0YXRpYyBjaGFyICpCRl9j cnlwdChjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnNldHRpbmcsCi0gCWNoYXIgKm91dHB1 dCwgQkZfd29yZCBtaW4pCi0gewotLQlzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBmbGFnc19i eV9zdWJ0eXBlWzI2XSA9Ci0tCQl7MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwKLS0JCTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDQsIDB9OwotIAlzdHJ1Y3Qg ewotIAkJQkZfY3R4IGN0eDsKLSAJCUJGX2tleSBleHBhbmRlZF9rZXk7Ci1AQCAtNzQ2LDkgKzc0 OSwxMSBAQCBjaGFyICpfX2NyeXB0X2Jsb3dmaXNoKGNvbnN0IGNoYXIgKmtleSwgY29uc3QgY2hh ciAqc2V0dGluZywgY2hhciAqb3V0cHV0KQotIHsKLSAJY29uc3QgY2hhciAqdGVzdF9rZXkgPSAi OGIgXHhkMFx4YzFceGQyXHhjZlx4Y2NceGQ4IjsKLSAJY29uc3QgY2hhciAqdGVzdF9zZXR0aW5n ID0gIiQyYSQwMCRhYmNkZWZnaGlqa2xtbm9wcXJzdHV1IjsKLS0Jc3RhdGljIGNvbnN0IGNoYXIg dGVzdF9oYXNoWzJdWzM0XSA9Ci0tCQl7IlZVclBtWEQ2cS9uVlNTcDdwTkRoQ1I5MDcxSWZJUmVc MFx4NTUiLCAvKiAkMngkICovCi0tCQkiaTFENzA5dmZhbXVsaW1sR2NxMHFxM1V2dVVhc3ZFYVww XHg1NSJ9OyAvKiAkMmEkLCAkMnkkICovCi0rCXN0YXRpYyBjb25zdCBjaGFyIHRlc3RfaGFzaGVz WzJdWzM0XSA9IHsKLSsJCSJpMUQ3MDl2ZmFtdWxpbWxHY3EwcXEzVXZ1VWFzdkVhXDBceDU1Iiwg LyogJ2EnLCAnYicsICd5JyAqLwotKwkJIlZVclBtWEQ2cS9uVlNTcDdwTkRoQ1I5MDcxSWZJUmVc MFx4NTUiLCAvKiAneCcgKi8KLSsJfTsKLSsJY29uc3QgY2hhciAqdGVzdF9oYXNoID0gdGVzdF9o YXNoZXNbMF07Ci0gCWNoYXIgKnJldHZhbDsKLSAJY29uc3QgY2hhciAqcDsKLSAJaW50IG9rOwot QEAgLTc2OCw4ICs3NzMsMTEgQEAgY2hhciAqX19jcnlwdF9ibG93ZmlzaChjb25zdCBjaGFyICpr ZXksIGNvbnN0IGNoYXIgKnNldHRpbmcsIGNoYXIgKm91dHB1dCkKLSAgKiBkZXRlY3RlZCBieSB0 aGUgc2VsZi10ZXN0LgotICAqLwotIAltZW1jcHkoYnVmLnMsIHRlc3Rfc2V0dGluZywgc2l6ZW9m KGJ1Zi5zKSk7Ci0tCWlmIChyZXR2YWwpCi0rCWlmIChyZXR2YWwpIHsKLSsJCXVuc2lnbmVkIGlu dCBmbGFncyA9IGZsYWdzX2J5X3N1YnR5cGVbc2V0dGluZ1syXSAtICdhJ107Ci0rCQl0ZXN0X2hh c2ggPSB0ZXN0X2hhc2hlc1tmbGFncyAmIDFdOwotIAkJYnVmLnNbMl0gPSBzZXR0aW5nWzJdOwot Kwl9Ci0gCW1lbXNldChidWYubywgMHg1NSwgc2l6ZW9mKGJ1Zi5vKSk7Ci0gCWJ1Zi5vW3NpemVv ZihidWYubykgLSAxXSA9IDA7Ci0gCXAgPSBCRl9jcnlwdCh0ZXN0X2tleSwgYnVmLnMsIGJ1Zi5v LCAxKTsKLUBAIC03NzcsNyArNzg1LDcgQEAgY2hhciAqX19jcnlwdF9ibG93ZmlzaChjb25zdCBj aGFyICprZXksIGNvbnN0IGNoYXIgKnNldHRpbmcsIGNoYXIgKm91dHB1dCkKLSAJb2sgPSAocCA9 PSBidWYubyAmJgotIAkgICAgIW1lbWNtcChwLCBidWYucywgNyArIDIyKSAmJgotIAkgICAgIW1l bWNtcChwICsgKDcgKyAyMiksCi0tCSAgICB0ZXN0X2hhc2hbYnVmLnNbMl0gJiAxXSwKLSsJICAg IHRlc3RfaGFzaCwKLSAJICAgIDMxICsgMSArIDEgKyAxKSk7Ci0gCi0gCXsKLS0tIAotY2dpdCB2 MS4yLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvQ1ZFLTIwMjAtMjg5Mjgu cGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9DVkUtMjAyMC0yODkyOC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjNmZjNiNGVlMDhmLi4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9tdXNsL3BhdGNoZXMvQ1ZFLTIwMjAtMjg5MjgucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw2NCArMCwwIEBACi0tLS0gYS9zcmMvbXVsdGlieXRlL3djc25ydG9tYnMuYwotKysrIGIv c3JjL211bHRpYnl0ZS93Y3NucnRvbWJzLmMKLUBAIC0xLDQxICsxLDMzIEBACi0gI2luY2x1ZGUg PHdjaGFyLmg+Ci0rI2luY2x1ZGUgPGxpbWl0cy5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSAK LSBzaXplX3Qgd2NzbnJ0b21icyhjaGFyICpyZXN0cmljdCBkc3QsIGNvbnN0IHdjaGFyX3QgKipy ZXN0cmljdCB3Y3MsIHNpemVfdCB3biwgc2l6ZV90IG4sIG1ic3RhdGVfdCAqcmVzdHJpY3Qgc3Qp Ci0gewotLQlzaXplX3QgbCwgY250PTAsIG4yOwotLQljaGFyICpzLCBidWZbMjU2XTsKLSAJY29u c3Qgd2NoYXJfdCAqd3MgPSAqd2NzOwotLQljb25zdCB3Y2hhcl90ICp0bXBfd3M7Ci0tCi0tCWlm ICghZHN0KSBzID0gYnVmLCBuID0gc2l6ZW9mIGJ1ZjsKLS0JZWxzZSBzID0gZHN0OwotLQotLQl3 aGlsZSAoIHdzICYmIG4gJiYgKCAobjI9d24pPj1uIHx8IG4yPjMyICkgKSB7Ci0tCQlpZiAobjI+ PW4pIG4yPW47Ci0tCQl0bXBfd3MgPSB3czsKLS0JCWwgPSB3Y3NydG9tYnMocywgJndzLCBuMiwg MCk7Ci0tCQlpZiAoIShsKzEpKSB7Ci0tCQkJY250ID0gbDsKLS0JCQluID0gMDsKLSsJc2l6ZV90 IGNudCA9IDA7Ci0rCWlmICghZHN0KSBuPTA7Ci0rCXdoaWxlICh3cyAmJiB3bikgewotKwkJY2hh ciB0bXBbTUJfTEVOX01BWF07Ci0rCQlzaXplX3QgbCA9IHdjcnRvbWIobjxNQl9MRU5fTUFYID8g dG1wIDogZHN0LCAqd3MsIDApOwotKwkJaWYgKGw9PS0xKSB7Ci0rCQkJY250ID0gLTE7Ci0gCQkJ YnJlYWs7Ci0gCQl9Ci0tCQlpZiAocyAhPSBidWYpIHsKLS0JCQlzICs9IGw7Ci0rCQlpZiAoZHN0 KSB7Ci0rCQkJaWYgKG48TUJfTEVOX01BWCkgewotKwkJCQlpZiAobD5uKSBicmVhazsKLSsJCQkJ bWVtY3B5KGRzdCwgdG1wLCBsKTsKLSsJCQl9Ci0rCQkJZHN0ICs9IGw7Ci0gCQkJbiAtPSBsOwot IAkJfQotLQkJd24gPSB3cyA/IHduIC0gKHdzIC0gdG1wX3dzKSA6IDA7Ci0tCQljbnQgKz0gbDsK LS0JfQotLQlpZiAod3MpIHdoaWxlIChuICYmIHduKSB7Ci0tCQlsID0gd2NydG9tYihzLCAqd3Ms IDApOwotLQkJaWYgKChsKzEpPD0xKSB7Ci0tCQkJaWYgKCFsKSB3cyA9IDA7Ci0tCQkJZWxzZSBj bnQgPSBsOwotKwkJaWYgKCEqd3MpIHsKLSsJCQl3cyA9IDA7Ci0gCQkJYnJlYWs7Ci0gCQl9Ci0t CQl3cysrOyB3bi0tOwotLQkJLyogc2FmZSAtIHRoaXMgbG9vcCBydW5zIGZld2VyIHRoYW4gc2l6 ZW9mKGJ1ZikgdGltZXMgKi8KLS0JCXMrPWw7IG4tPWw7Ci0rCQl3cysrOwotKwkJd24tLTsKLSAJ CWNudCArPSBsOwotIAl9Ci0gCWlmIChkc3QpICp3Y3MgPSB3czsKLQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9tdXNsL3BhdGNoZXMvYWFyY2g2NC1mcmVncy5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRj aGVzL2FhcmNoNjQtZnJlZ3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAy NGVlZDExYThlNS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2FhcmNo NjQtZnJlZ3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1Vc2UgdHlwZXMg Y29tcGF0aWJsZSB3aXRoIGdsaWJjL2tlcm5lbCBoZWFkZXJzLgotCi1kaWZmIC0tZ2l0IGEvYXJj aC9hYXJjaDY0L2JpdHMvc2lnbmFsLmggYi9hcmNoL2FhcmNoNjQvYml0cy9zaWduYWwuaAotaW5k ZXggYjcxMjYxZjUuLjUwOThjNzM0IDEwMDY0NAotLS0tIGEvYXJjaC9hYXJjaDY0L2JpdHMvc2ln bmFsLmgKLSsrKyBiL2FyY2gvYWFyY2g2NC9iaXRzL3NpZ25hbC5oCi1AQCAtMTEsNyArMTEsNyBA QCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgZ3JlZ190OwotIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBn cmVnc2V0X3RbMzRdOwotIAotIHR5cGVkZWYgc3RydWN0IHsKLS0JbG9uZyBkb3VibGUgdnJlZ3Nb MzJdOwotKwlfX3VpbnQxMjhfdCB2cmVnc1szMl07Ci0gCXVuc2lnbmVkIGludCBmcHNyOwotIAl1 bnNpZ25lZCBpbnQgZnBjcjsKLSB9IGZwcmVnc2V0X3Q7Ci1AQCAtMzQsNyArMzQsNyBAQCBzdHJ1 Y3QgZnBzaW1kX2NvbnRleHQgewotIAlzdHJ1Y3QgX2FhcmNoNjRfY3R4IGhlYWQ7Ci0gCXVuc2ln bmVkIGludCBmcHNyOwotIAl1bnNpZ25lZCBpbnQgZnBjcjsKLS0JbG9uZyBkb3VibGUgdnJlZ3Nb MzJdOwotKwlfX3VpbnQxMjhfdCB2cmVnc1szMl07Ci0gfTsKLSBzdHJ1Y3QgZXNyX2NvbnRleHQg ewotIAlzdHJ1Y3QgX2FhcmNoNjRfY3R4IGhlYWQ7Ci1kaWZmIC0tZ2l0IGEvYXJjaC9hYXJjaDY0 L2JpdHMvdXNlci5oIGIvYXJjaC9hYXJjaDY0L2JpdHMvdXNlci5oCi1pbmRleCBkMTJjZGY3Zi4u OGExMDAyYWEgMTAwNjQ0Ci0tLS0gYS9hcmNoL2FhcmNoNjQvYml0cy91c2VyLmgKLSsrKyBiL2Fy Y2gvYWFyY2g2NC9iaXRzL3VzZXIuaAotQEAgLTYsNyArNiw3IEBAIHN0cnVjdCB1c2VyX3JlZ3Nf c3RydWN0IHsKLSB9OwotIAotIHN0cnVjdCB1c2VyX2Zwc2ltZF9zdHJ1Y3QgewotLQlsb25nIGRv dWJsZSB2cmVnc1szMl07Ci0rCV9fdWludDEyOF90IHZyZWdzWzMyXTsKLSAJdW5zaWduZWQgaW50 IGZwc3I7Ci0gCXVuc2lnbmVkIGludCBmcGNyOwotIH07CmRpZmYgLS1naXQgYS9zcmNwa2dzL211 c2wvcGF0Y2hlcy9hZGQtc3VwcG9ydC1mb3ItU0lHRVZfVEhSRUFEX0lELXRpbWVycy5wYXRjaCBi L3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2FkZC1zdXBwb3J0LWZvci1TSUdFVl9USFJFQURfSUQtdGlt ZXJzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjBkZmY1YmEwZDQuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtc3VwcG9ydC1mb3ItU0lH RVZfVEhSRUFEX0lELXRpbWVycy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAK LUZyb20gN2M3MTc5MmU4NzY5MTQ1MWYyYTZiNzYzNDhlODNhZDE4ODlmMWRjYiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbWVzIFkgS25pZ2h0IDxqeWtuaWdodEBnb29nbGUuY29t PgotRGF0ZTogU3VuLCAzMCBKdW4gMjAxOSAyMTo1NToyMCAtMDQwMAotU3ViamVjdDogW1BBVENI XSBhZGQgc3VwcG9ydCBmb3IgU0lHRVZfVEhSRUFEX0lEIHRpbWVycwotCi1UaGlzIGlzIGxpa2Ug U0lHRVZfU0lHTkFMLCBidXQgdGFyZ2V0ZWQgdG8gYSBwYXJ0aWN1bGFyIHRocmVhZCdzCi10aWQs IHJhdGhlciB0aGFuIHRoZSBwcm9jZXNzLgotLS0tCi0gaW5jbHVkZS9zaWduYWwuaCAgICAgICAg fCAxNiArKysrKysrKysrKysrLS0tCi0gc3JjL3RpbWUvdGltZXJfY3JlYXRlLmMgfCAgOCArKysr KystLQotIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvc2lnbmFsLmggYi9pbmNsdWRlL3NpZ25hbC5oCi1pbmRl eCBmYmRmNjY3YjIuLjllZDkyOWU0ZiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvc2lnbmFsLmgKLSsr KyBiL2luY2x1ZGUvc2lnbmFsLmgKLUBAIC0xODAsMTQgKzE4MCwyNCBAQCBzdHJ1Y3Qgc2lnZXZl bnQgewotIAl1bmlvbiBzaWd2YWwgc2lnZXZfdmFsdWU7Ci0gCWludCBzaWdldl9zaWdubzsKLSAJ aW50IHNpZ2V2X25vdGlmeTsKLS0Jdm9pZCAoKnNpZ2V2X25vdGlmeV9mdW5jdGlvbikodW5pb24g c2lndmFsKTsKLS0JcHRocmVhZF9hdHRyX3QgKnNpZ2V2X25vdGlmeV9hdHRyaWJ1dGVzOwotLQlj aGFyIF9fcGFkWzU2LTMqc2l6ZW9mKGxvbmcpXTsKLSsJdW5pb24gewotKwkJY2hhciBfX3BhZFs2 NCAtIDIqc2l6ZW9mKGludCkgLSBzaXplb2YodW5pb24gc2lndmFsKV07Ci0rCQlwaWRfdCBzaWdl dl9ub3RpZnlfdGhyZWFkX2lkOwotKwkJc3RydWN0IHsKLSsJCQl2b2lkICgqc2lnZXZfbm90aWZ5 X2Z1bmN0aW9uKSh1bmlvbiBzaWd2YWwpOwotKwkJCXB0aHJlYWRfYXR0cl90ICpzaWdldl9ub3Rp ZnlfYXR0cmlidXRlczsKLSsJCX0gX19zZXZfdGhyZWFkOwotKwl9IF9fc2V2X2ZpZWxkczsKLSB9 OwotIAotKyNkZWZpbmUgc2lnZXZfbm90aWZ5X3RocmVhZF9pZCBfX3Nldl9maWVsZHMuc2lnZXZf bm90aWZ5X3RocmVhZF9pZAotKyNkZWZpbmUgc2lnZXZfbm90aWZ5X2Z1bmN0aW9uIF9fc2V2X2Zp ZWxkcy5fX3Nldl90aHJlYWQuc2lnZXZfbm90aWZ5X2Z1bmN0aW9uCi0rI2RlZmluZSBzaWdldl9u b3RpZnlfYXR0cmlidXRlcyBfX3Nldl9maWVsZHMuX19zZXZfdGhyZWFkLnNpZ2V2X25vdGlmeV9h dHRyaWJ1dGVzCi0rCi0gI2RlZmluZSBTSUdFVl9TSUdOQUwgMAotICNkZWZpbmUgU0lHRVZfTk9O RSAxCi0gI2RlZmluZSBTSUdFVl9USFJFQUQgMgotKyNkZWZpbmUgU0lHRVZfVEhSRUFEX0lEIDQK LSAKLSBpbnQgX19saWJjX2N1cnJlbnRfc2lncnRtaW4odm9pZCk7Ci0gaW50IF9fbGliY19jdXJy ZW50X3NpZ3J0bWF4KHZvaWQpOwotZGlmZiAtLWdpdCBhL3NyYy90aW1lL3RpbWVyX2NyZWF0ZS5j IGIvc3JjL3RpbWUvdGltZXJfY3JlYXRlLmMKLWluZGV4IDVkZGZkYTI3OC4uNGJlZjIzOTA1IDEw MDY0NAotLS0tIGEvc3JjL3RpbWUvdGltZXJfY3JlYXRlLmMKLSsrKyBiL3NyYy90aW1lL3RpbWVy X2NyZWF0ZS5jCi1AQCAtNzEsMTEgKzcxLDE1IEBAIGludCB0aW1lcl9jcmVhdGUoY2xvY2tpZF90 IGNsaywgc3RydWN0IHNpZ2V2ZW50ICpyZXN0cmljdCBldnAsIHRpbWVyX3QgKnJlc3RyaWN0Ci0g CXN3aXRjaCAoZXZwID8gZXZwLT5zaWdldl9ub3RpZnkgOiBTSUdFVl9TSUdOQUwpIHsKLSAJY2Fz ZSBTSUdFVl9OT05FOgotIAljYXNlIFNJR0VWX1NJR05BTDoKLSsJY2FzZSBTSUdFVl9USFJFQURf SUQ6Ci0gCQlpZiAoZXZwKSB7Ci0gCQkJa3Nldi5zaWdldl92YWx1ZSA9IGV2cC0+c2lnZXZfdmFs dWU7Ci0gCQkJa3Nldi5zaWdldl9zaWdubyA9IGV2cC0+c2lnZXZfc2lnbm87Ci0gCQkJa3Nldi5z aWdldl9ub3RpZnkgPSBldnAtPnNpZ2V2X25vdGlmeTsKLS0JCQlrc2V2LnNpZ2V2X3RpZCA9IDA7 Ci0rCQkJaWYgKGV2cC0+c2lnZXZfbm90aWZ5ID09IFNJR0VWX1RIUkVBRF9JRCkKLSsJCQkJa3Nl di5zaWdldl90aWQgPSBldnAtPnNpZ2V2X25vdGlmeV90aHJlYWRfaWQ7Ci0rCQkJZWxzZQotKwkJ CQlrc2V2LnNpZ2V2X3RpZCA9IDA7Ci0gCQkJa3NldnAgPSAma3NldjsKLSAJCX0KLSAJCWlmIChz eXNjYWxsKFNZU190aW1lcl9jcmVhdGUsIGNsaywga3NldnAsICZ0aW1lcmlkKSA8IDApCi1AQCAt MTA3LDcgKzExMSw3IEBAIGludCB0aW1lcl9jcmVhdGUoY2xvY2tpZF90IGNsaywgc3RydWN0IHNp Z2V2ZW50ICpyZXN0cmljdCBldnAsIHRpbWVyX3QgKnJlc3RyaWN0Ci0gCi0gCQlrc2V2LnNpZ2V2 X3ZhbHVlLnNpdmFsX3B0ciA9IDA7Ci0gCQlrc2V2LnNpZ2V2X3NpZ25vID0gU0lHVElNRVI7Ci0t CQlrc2V2LnNpZ2V2X25vdGlmeSA9IDQ7IC8qIFNJR0VWX1RIUkVBRF9JRCAqLwotKwkJa3Nldi5z aWdldl9ub3RpZnkgPSBTSUdFVl9USFJFQURfSUQ7Ci0gCQlrc2V2LnNpZ2V2X3RpZCA9IHRkLT50 aWQ7Ci0gCQlpZiAoc3lzY2FsbChTWVNfdGltZXJfY3JlYXRlLCBjbGssICZrc2V2LCAmdGltZXJp ZCkgPCAwKQotIAkJCXRpbWVyaWQgPSAtMTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRj aGVzL2Vwb2xsX2NwLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvZXBvbGxfY3AucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyZjQ3NTUxYWQ4ZS4uMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2Vwb2xsX2NwLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjggKzAsMCBAQAotRnJvbSAyYzAwZjk1YzFhYzdkZDUwZjUzZDllMzYxODQ3ZWJkMjUx M2M4ZGEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlh c0BhZXJpZmFsLmN4PgotRGF0ZTogU2F0LCAzIEFwciAyMDIxIDIxOjE2OjQxIC0wNDAwCi1TdWJq ZWN0OiBbUEFUQ0hdIG1ha2UgZXBvbGxfW3Bdd2FpdCBhIGNhbmNlbGxhdGlvbiBwb2ludAotCi10 aGlzIGlzIGEgTGludXgtc3BlY2lmaWMgZnVuY3Rpb24gYW5kIG5vdCBjb3ZlcmVkIGJ5IFBPU0lY J3MKLXJlcXVpcmVtZW50cyBmb3Igd2hpY2ggaW50ZXJmYWNlcyBhcmUgY2FuY2VsbGF0aW9uIHBv aW50cywgYnV0IGdsaWJjCi1tYWtlcyBpdCBvbmUgYW5kIGV4aXN0aW5nIHNvZnR3YXJlIHJlbGll cyBvbiBpdCBiZWluZyBvbmUuCi0KLWF0IHNvbWUgcG9pbnQgYSByZXZpZXcgZm9yIHNpbWlsYXIg ZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIG1hZGUKLWNhbmNlbGxhdGlvbiBwb2ludHMgc2hvdWxk IGJlIGRvbmUuCi0KLWRpZmYgLS1naXQgc3JjL2xpbnV4L2Vwb2xsLmMgc3JjL2xpbnV4L2Vwb2xs LmMKLWluZGV4IGRlZmY1YjEwLi45M2JhYTgxNCAxMDA2NDQKLS0tLSBhL3NyYy9saW51eC9lcG9s bC5jCi0rKysgYi9zcmMvbGludXgvZXBvbGwuYwotQEAgLTI0LDkgKzI0LDkgQEAgaW50IGVwb2xs X2N0bChpbnQgZmQsIGludCBvcCwgaW50IGZkMiwgc3RydWN0IGVwb2xsX2V2ZW50ICpldikKLSAK LSBpbnQgZXBvbGxfcHdhaXQoaW50IGZkLCBzdHJ1Y3QgZXBvbGxfZXZlbnQgKmV2LCBpbnQgY250 LCBpbnQgdG8sIGNvbnN0IHNpZ3NldF90ICpzaWdzKQotIHsKLS0JaW50IHIgPSBfX3N5c2NhbGwo U1lTX2Vwb2xsX3B3YWl0LCBmZCwgZXYsIGNudCwgdG8sIHNpZ3MsIF9OU0lHLzgpOwotKwlpbnQg ciA9IF9fc3lzY2FsbF9jcChTWVNfZXBvbGxfcHdhaXQsIGZkLCBldiwgY250LCB0bywgc2lncywg X05TSUcvOCk7Ci0gI2lmZGVmIFNZU19lcG9sbF93YWl0Ci0tCWlmIChyPT0tRU5PU1lTICYmICFz aWdzKSByID0gX19zeXNjYWxsKFNZU19lcG9sbF93YWl0LCBmZCwgZXYsIGNudCwgdG8pOwotKwlp ZiAocj09LUVOT1NZUyAmJiAhc2lncykgciA9IF9fc3lzY2FsbF9jcChTWVNfZXBvbGxfd2FpdCwg ZmQsIGV2LCBjbnQsIHRvKTsKLSAjZW5kaWYKLSAJcmV0dXJuIF9fc3lzY2FsbF9yZXQocik7Ci0g fQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMS5w YXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTEucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5YWY3MmIwYzVmOS4uMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTEucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1Gcm9tIDJkMGJiZTZjNzg4OTM4ZDEzMzI2MDljMDE0 ZWVlYmMxZGZmOTY2YWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtl ciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBNb24sIDI2IE9jdCAyMDIwIDE1OjU2OjI1IC0w NDAwCi1TdWJqZWN0OiBmaXggcHRocmVhZF9jb25kX3dhaXQgcGFpcmVkIHdpdGggd2l0aCBwcmlv cml0eS1pbmhlcml0YW5jZSBtdXRleAotCi1wdGhyZWFkX2NvbmRfd2FpdCBhcnJhbmdlZCBmb3Ig cmVxdWV1ZWQgd2FpdGVycyB0byB3YWtlIHdoZW4gdGhlIG11dGV4Ci1pcyB1bmxvY2tlZCBieSB0 ZW1wb3JhcmlseSBhZGp1c3RpbmcgdGhlIG11dGV4J3Mgd2FpdGVyIGNvdW50LiBjb21taXQKLTU0 Y2E2Nzc5ODNkNDc1MjliYWI4NzUyMzE1YWMxYTJiNDk4ODg4NzAgYnJva2UgdGhpcyB3aGVuIGlu dHJvZHVjaW5nCi1QSSBtdXRleGVzIGJ5IHJlcHVycG9zaW5nIHRoZSB3YWl0ZXIgY291bnQgZmll bGQgb2YgdGhlIG11dGV4Ci1zdHJ1Y3R1cmUuIHNpbmNlIHRoZW4sIGZvciBQSSBtdXRleGVzLCB0 aGUgd2FpdGVyIGNvdW50IGFkanVzdG1lbnQgd2FzCi1taXNpbnRlcnByZXRlZCBieSB0aGUgbXV0 ZXggbG9ja2luZyBjb2RlIGFzIGluZGljYXRpbmcgdGhhdCB0aGUgbXV0ZXgKLWlzIG5vbiBhIG5v bi1yZWNvdmVyYWJsZSBzdGF0ZS4KLQotaXQgd291bGQgYmUgcG9zc2libGUgdG8gc3BlY2lhbC1j YXNlIFBJIG11dGV4ZXMgaGVyZSwgYnV0IGluc3RlYWQganVzdAotZHJvcCBhbGwgYWRqdXN0bWVu dCBvZiB0aGUgd2FpdGVycyBjb3VudCwgYW5kIGluc3RlYWQgdXNlIHRoZSBsb2NrCi13b3JkIHdh aXRlcnMgYml0IGZvciBhbGwgbXV0ZXggdHlwZXMuIHNpbmNlIHRoZSBtdXRleCBpcyBlaXRoZXIg aGVsZAotYnkgdGhlIGNhbGxlciBvciBpbiB1bnJlY292ZXJhYmxlIHN0YXRlIGF0IHRoZSB0aW1l IHRoZSBiaXQgaXMgc2V0LCBpdAotd2lsbCBuZWNlc3NhcmlseSBzdGlsbCBiZSBzZXQgYXQgdGhl IHRpbWUgb2YgYW55IHN1YnNlcXVlbnQgdmFsaWQKLXVubG9jayBvcGVyYXRpb24sIGFuZCB0aGlz IHdpbGwgcHJvZHVjZSB0aGUgZGVzaXJlZCBlZmZlY3Qgb2Ygd2FraW5nCi10aGUgbmV4dCB3YWl0 ZXIuCi0KLWlmIHdhaXRlciBjb3VudHMgYXJlIGVudGlyZWx5IGRyb3BwZWQgYXQgc29tZSBwb2lu dCBpbiB0aGUgZnV0dXJlIHRoaXMKLWNvZGUgc2hvdWxkIHN0aWxsIHdvcmsgd2l0aG91dCBtb2Rp ZmljYXRpb24uCi0tLS0KLSBzcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYyB8IDEx ICsrKysrLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKLQotKGxpbWl0ZWQgdG8gJ3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5j JykKLQotZGlmZiAtLWdpdCBhL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jIGIv c3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMKLWluZGV4IGQxNTAxMjQwLi5mNWYz N2FmMSAxMDA2NDQKLS0tLSBhL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCi0r KysgYi9zcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYwotQEAgLTE0NiwxNCArMTQ2 LDEzIEBAIHJlbG9jazoKLSAKLSAJaWYgKG9sZHN0YXRlID09IFdBSVRJTkcpIGdvdG8gZG9uZTsK LSAKLS0JaWYgKCFub2RlLm5leHQpIGFfaW5jKCZtLT5fbV93YWl0ZXJzKTsKLS0KLSAJLyogVW5s b2NrIHRoZSBiYXJyaWVyIHRoYXQncyBob2xkaW5nIGJhY2sgdGhlIG5leHQgd2FpdGVyLCBhbmQK LSAJICogZWl0aGVyIHdha2UgaXQgb3IgcmVxdWV1ZSBpdCB0byB0aGUgbXV0ZXguICovCi0tCWlm IChub2RlLnByZXYpCi0tCQl1bmxvY2tfcmVxdWV1ZSgmbm9kZS5wcmV2LT5iYXJyaWVyLCAmbS0+ X21fbG9jaywgbS0+X21fdHlwZSAmIDEyOCk7Ci0tCWVsc2UKLS0JCWFfZGVjKCZtLT5fbV93YWl0 ZXJzKTsKLSsJaWYgKG5vZGUucHJldikgewotKwkJaW50IHZhbCA9IG0tPl9tX2xvY2s7Ci0rCQlp ZiAodmFsPjApIGFfY2FzKCZtLT5fbV9sb2NrLCB2YWwsIHZhbHwweDgwMDAwMDAwKTsKLSsJCXVu bG9ja19yZXF1ZXVlKCZub2RlLnByZXYtPmJhcnJpZXIsICZtLT5fbV9sb2NrLCBtLT5fbV90eXBl ICYgKDh8MTI4KSk7Ci0rCX0KLSAKLSAJLyogU2luY2UgYSBzaWduYWwgd2FzIGNvbnN1bWVkLCBj YW5jZWxsYXRpb24gaXMgbm90IHBlcm1pdHRlZC4gKi8KLSAJaWYgKGUgPT0gRUNBTkNFTEVEKSBl ID0gMDsKLS0tIAotY2dpdCB2MS4yLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNo ZXMvZml4LXBpLW11dGV4LWNvbmQtMi5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1w aS1tdXRleC1jb25kLTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzNTZl MzhiNjFmOC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1t dXRleC1jb25kLTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi1Gcm9tIDI3 YjJmYzlkNmRiOTU2MzU5NzI3YTY2YzI2MmYxZTY5OTk1NjYwYWEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBGcmks IDMwIE9jdCAyMDIwIDExOjIxOjA2IC0wNDAwCi1TdWJqZWN0OiBmaXggbWlzc2luZy13YWtlIHJl Z3Jlc3Npb24gaW4gcHRocmVhZF9jb25kX3dhaXQKLQotdGhlIHJlYXNvbmluZyBpbiBjb21taXQg MmQwYmJlNmM3ODg5MzhkMTMzMjYwOWMwMTRlZWViYzFkZmY5NjZhYyB3YXMKLW5vdCBlbnRpcmVs eSBjb3JyZWN0LiB3aGlsZSBpdCdzIHRydWUgdGhhdCBzZXR0aW5nIHRoZSB3YWl0ZXJzIGZsYWcK LWVuc3VyZXMgdGhhdCB0aGUgbmV4dCB1bmxvY2sgd2lsbCBwZXJmb3JtIGEgd2FrZSwgaXQncyBw b3NzaWJsZSB0aGF0Ci10aGUgd2FrZSBpcyBjb25zdW1lZCBieSBhIG11dGV4IHdhaXRlciB0aGF0 IGhhcyBubyByZWxhdGlvbnNoaXAgd2l0aAotdGhlIGNvbmR2YXIgd2FpdCBxdWV1ZSBiZWluZyBw cm9jZXNzZWQsIHdoaWNoIHRoZW4gdGFrZXMgdGhlIG11dGV4Lgotd2hlbiB0aGF0IHRocmVhZCBz dWJzZXF1ZW50bHkgdW5sb2NrcywgaXQgc2VlcyBubyB3YWl0ZXJzLCBhbmQgbGVhdmVzCi10aGUg cmVzdCBvZiB0aGUgY29uZHZhciBxdWV1ZSBzdHVjay4KLQotYnJpbmcgYmFjayB0aGUgd2FpdGVy IGNvdW50IGFkanVzdG1lbnQsIGJ1dCBza2lwIGl0IGZvciBQSSBtdXRleGVzLAotZm9yIHdoaWNo IGEgc3VjY2Vzc2Z1bCBsb2NrLWFmdGVyLXdhaXRpbmcgYWx3YXlzIHNldHMgdGhlIHdhaXRlcnMg Yml0LgotaWYgZnV0dXJlIGNoYW5nZXMgYXJlIG1hZGUgdG8gYnJpbmcgdGhpcyBzYW1lIHdhaXRl cnMtYml0IGNvbnRyYWN0IHRvCi1hbGwgbG9jayB0eXBlcywgdGhpcyBjYW4gYmUgcmV2ZXJ0ZWQu Ci0tLS0KLSBzcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYyB8IDUgKysrKysKLSAx IGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCi0KLShsaW1pdGVkIHRvICdzcmMvdGhyZWFk L3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYycpCi0KLWRpZmYgLS1naXQgYS9zcmMvdGhyZWFkL3B0 aHJlYWRfY29uZF90aW1lZHdhaXQuYyBiL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2Fp dC5jCi1pbmRleCBmNWYzN2FmMS4uYTBjZDQ5MDQgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhyZWFkL3B0 aHJlYWRfY29uZF90aW1lZHdhaXQuYwotKysrIGIvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGlt ZWR3YWl0LmMKLUBAIC0xNDYsMTIgKzE0NiwxNyBAQCByZWxvY2s6Ci0gCi0gCWlmIChvbGRzdGF0 ZSA9PSBXQUlUSU5HKSBnb3RvIGRvbmU7Ci0gCi0rCWlmICghbm9kZS5uZXh0ICYmICEobS0+X21f dHlwZSAmIDgpKQotKwkJYV9pbmMoJm0tPl9tX3dhaXRlcnMpOwotKwotIAkvKiBVbmxvY2sgdGhl IGJhcnJpZXIgdGhhdCdzIGhvbGRpbmcgYmFjayB0aGUgbmV4dCB3YWl0ZXIsIGFuZAotIAkgKiBl aXRoZXIgd2FrZSBpdCBvciByZXF1ZXVlIGl0IHRvIHRoZSBtdXRleC4gKi8KLSAJaWYgKG5vZGUu cHJldikgewotIAkJaW50IHZhbCA9IG0tPl9tX2xvY2s7Ci0gCQlpZiAodmFsPjApIGFfY2FzKCZt LT5fbV9sb2NrLCB2YWwsIHZhbHwweDgwMDAwMDAwKTsKLSAJCXVubG9ja19yZXF1ZXVlKCZub2Rl LnByZXYtPmJhcnJpZXIsICZtLT5fbV9sb2NrLCBtLT5fbV90eXBlICYgKDh8MTI4KSk7Ci0rCX0g ZWxzZSBpZiAoISEobS0+X21fdHlwZSAmIDgpKSB7Ci0rCQlhX2RlYygmbS0+X21fd2FpdGVycyk7 CQkKLSAJfQotIAotIAkvKiBTaW5jZSBhIHNpZ25hbCB3YXMgY29uc3VtZWQsIGNhbmNlbGxhdGlv biBpcyBub3QgcGVybWl0dGVkLiAqLwotLS0gCi1jZ2l0IHYxLjIuMQotCmRpZmYgLS1naXQgYS9z cmNwa2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0zLnBhdGNoIGIvc3JjcGtncy9t dXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMmNjOTQzZjI2ZjZhLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNs L3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4 ICswLDAgQEAKLUZyb20gZDkxYTZjZjZlMzY5YTc5NTg3YzU2NjVmY2U5NjM1ZTU2MzRjYTIwMSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZh bC5jeD4KLURhdGU6IEZyaSwgMzAgT2N0IDIwMjAgMTY6NTA6MDggLTA0MDAKLVN1YmplY3Q6IGZp eCBlcnJvbmVvdXMgcHRocmVhZF9jb25kX3dhaXQgbXV0ZXggd2FpdGVyIGNvdW50IGxvZ2ljIGR1 ZSB0byB0eXBvCi0KLWludHJvZHVjZWQgaW4gY29tbWl0IDI3YjJmYzlkNmRiOTU2MzU5NzI3YTY2 YzI2MmYxZTY5OTk1NjYwYWEuCi0tLS0KLSBzcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdh aXQuYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKLQotKGxpbWl0ZWQgdG8gJ3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jJykK LQotZGlmZiAtLWdpdCBhL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jIGIvc3Jj L3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMKLWluZGV4IGEwY2Q0OTA0Li42Yjc2MTQ1 NSAxMDA2NDQKLS0tLSBhL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCi0rKysg Yi9zcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYwotQEAgLTE1NSw3ICsxNTUsNyBA QCByZWxvY2s6Ci0gCQlpbnQgdmFsID0gbS0+X21fbG9jazsKLSAJCWlmICh2YWw+MCkgYV9jYXMo Jm0tPl9tX2xvY2ssIHZhbCwgdmFsfDB4ODAwMDAwMDApOwotIAkJdW5sb2NrX3JlcXVldWUoJm5v ZGUucHJldi0+YmFycmllciwgJm0tPl9tX2xvY2ssIG0tPl9tX3R5cGUgJiAoOHwxMjgpKTsKLS0J fSBlbHNlIGlmICghIShtLT5fbV90eXBlICYgOCkpIHsKLSsJfSBlbHNlIGlmICghKG0tPl9tX3R5 cGUgJiA4KSkgewotIAkJYV9kZWMoJm0tPl9tX3dhaXRlcnMpOwkJCi0gCX0KLSAKLS0tIAotY2dp dCB2MS4yLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZ2V0dGlkLnBhdGNo IGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvZ2V0dGlkLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBiYjhiZjU5MDViODguLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wv cGF0Y2hlcy9nZXR0aWQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1Gcm9t IGQ0OWNmMDc1NDFiYjU0YTVhYzdhZWMxZmVlYzg1MTRkYjMzZGI4ZWEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBN b24sIDE3IEF1ZyAyMDIwIDIwOjEyOjUzIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGFkZCBnZXR0 aWQgZnVuY3Rpb24KLQotdGhpcyBpcyBhIHByZXJlcXVpc2l0ZSBmb3IgYWRkaXRpb24gb2Ygb3Ro ZXIgaW50ZXJmYWNlcyB0aGF0IHVzZQota2VybmVsIHRpZHMsIGluY2x1ZGluZyBmdXRleCBhbmQg U0lHRVZfVEhSRUFEX0lELgotCi10aGVyZSBpcyBzb21lIGFtYmlndWl0eSBhcyB0byB3aGV0aGVy IHRoZSBzZW1hbnRpYyByZXR1cm4gdHlwZSBzaG91bGQKLWJlIGludCBvciBwaWRfdC4gZWl0aGVy IHdheSwgZnV0ZXggQVBJIGltcG9zZXMgYSBjb250cmFjdCB0aGF0IHRoZQotdmFsdWVzIGZpdCBp biBpbnQgKGV4Y2x1ZGluZyBzb21lIHVwcGVyIHJlc2VydmVkIGJpdHMpLiBnbGliYyB1c2VkCi1w aWRfdCwgc28gaW4gdGhlIGludGVyZXN0IG9mIG5vdCBoYXZpbmcgZ3JhdHVpdG91cyBtaXNtYXRj aCAodGhlCi11bmRlcmx5aW5nIHR5cGVzIGFyZSB0aGUgc2FtZSBhbnl3YXkpLCBwaWRfdCBpcyB1 c2VkIGhlcmUgYXMgd2VsbC4KLQotd2hpbGUgY29uY2VwdHVhbGx5IHRoaXMgaXMgYSBzeXNjYWxs LCB0aGUgY29weSBzdG9yZWQgaW4gdGhlIHRocmVhZAotc3RydWN0dXJlIGlzIGFsd2F5cyB2YWxp ZCBpbiBhbGwgY29udGV4dHMgd2hlcmUgaXQncyB2YWxpZCB0byBjYWxsCi1saWJjIGZ1bmN0aW9u cywgc28gaXQncyB1c2VkIHRvIGF2b2lkIHRoZSBzeXNjYWxsLgotLS0tCi0gaW5jbHVkZS91bmlz dGQuaCAgIHwgMSArCi0gc3JjL2xpbnV4L2dldHRpZC5jIHwgOCArKysrKysrKwotIDIgZmlsZXMg Y2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9saW51eC9n ZXR0aWQuYwotCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS91bmlzdGQuaCBiL2luY2x1ZGUvdW5pc3Rk LmgKLWluZGV4IDdiY2JmZjk0My4uMDc1ODRhMjNlIDEwMDY0NAotLS0tIGEvaW5jbHVkZS91bmlz dGQuaAotKysrIGIvaW5jbHVkZS91bmlzdGQuaAotQEAgLTE5MCw2ICsxOTAsNyBAQCBpbnQgc3lu Y2ZzKGludCk7Ci0gaW50IGV1aWRhY2Nlc3MoY29uc3QgY2hhciAqLCBpbnQpOwotIGludCBlYWNj ZXNzKGNvbnN0IGNoYXIgKiwgaW50KTsKLSBzc2l6ZV90IGNvcHlfZmlsZV9yYW5nZShpbnQsIG9m Zl90ICosIGludCwgb2ZmX3QgKiwgc2l6ZV90LCB1bnNpZ25lZCk7Ci0rcGlkX3QgZ2V0dGlkKHZv aWQpOwotICNlbmRpZgotIAotICNpZiBkZWZpbmVkKF9MQVJHRUZJTEU2NF9TT1VSQ0UpIHx8IGRl ZmluZWQoX0dOVV9TT1VSQ0UpCi1kaWZmIC0tZ2l0IGEvc3JjL2xpbnV4L2dldHRpZC5jIGIvc3Jj L2xpbnV4L2dldHRpZC5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi43 MDc2NzEzN2UKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9saW51eC9nZXR0aWQuYwotQEAgLTAs MCArMSw4IEBACi0rI2RlZmluZSBfR05VX1NPVVJDRQotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsj aW5jbHVkZSAicHRocmVhZF9pbXBsLmgiCi0rCi0rcGlkX3QgZ2V0dGlkKHZvaWQpCi0rewotKwly ZXR1cm4gX19wdGhyZWFkX3NlbGYoKS0+dGlkOwotK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVz bC9wYXRjaGVzL2ltcGxlbWVudF9yZWFscGF0aF9kaXJlY3RseV9pbnN0ZWFkX29mX3VzaW5nX3By b2Nmc19yZWFkbGluay5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ltcGxlbWVudF9yZWFs cGF0aF9kaXJlY3RseV9pbnN0ZWFkX29mX3VzaW5nX3Byb2Nmc19yZWFkbGluay5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTY5YTFmNTJjN2NkLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvaW1wbGVtZW50X3JlYWxwYXRoX2RpcmVjdGx5X2luc3Rl YWRfb2ZfdXNpbmdfcHJvY2ZzX3JlYWRsaW5rLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjE5 ICswLDAgQEAKLUZyb20gMjlmZjc1OTlhNDQ4MjMyZjI1Mjc4NDFjMjM2MjY0M2QyNDZjZWUzNiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZh bC5jeD4KLURhdGU6IE1vbiwgMzAgTm92IDIwMjAgMTI6MTQ6NDcgLTA1MDAKLVN1YmplY3Q6IFtQ QVRDSF0gaW1wbGVtZW50IHJlYWxwYXRoIGRpcmVjdGx5IGluc3RlYWQgb2YgdXNpbmcgcHJvY2Zz IHJlYWRsaW5rCi0KLWluYWJpbGl0eSB0byB1c2UgcmVhbHBhdGggaW4gY2hyb290L2NvbnRhaW5l ciB3aXRob3V0IHByb2NmcyBhY2Nlc3MKLWFuZCBhdCBlYXJseSBib290IHByaW9yIHRvIG1vdW50 IG9mIC9wcm9jIGhhcyBiZWVuIGFuIG9uZ29pbmcgaXNzdWUsCi1hbmQgaXQgdHVybnMgb3V0IHJl YWxwYXRoIHdhcyBvbmUgb2YgdGhlIGxhc3QgcmVtYWluaW5nIGludGVyZmFjZXMKLXRoYXQgbmVl ZGVkIHByb2NmcyBmb3IgaXRzIGNvcmUgZnVuY3Rpb25hbGl0eS4gZHVyaW5nIGludmVzdGlnYXRp b24KLXdoaWxlIHJlaW1wbGVtZW50aW5nLCBpdCB3YXMgZGV0ZXJtaW5lZCB0aGF0IHRoZXJlIHdl cmUgYWxzbyBzZXJpb3VzCi1wcm9ibGVtcyB3aXRoIHRoZSBwcm9jZnMtYmFzZWQgaW1wbGVtZW50 YXRpb24uIG1vc3Qgc2VyaW91c2x5IGl0IHdhcwotdW5zYWZlIG9uIHByZS1PX1BBVEgga2VybmVs cywgYW5kIHVubGlrZSBvdGhlciBwbGFjZXMgd2hlcmUgT19QQVRIIHdhcwotdXNlZCwgdGhlIHVu c2FmZXR5IHdhcyBoYXJkIG9yIGltcG9zc2libGUgdG8gZml4IGJlY2F1c2UgT19OT0ZPTExPVwot Y2FuJ3QgYmUgdXNlZCAoc2luY2UgdGhlIHdob2xlIHB1cnBvc2Ugd2FzIHRvIGZvbGxvdyBzeW1s aW5rcykuCi0KLXRoZSBuZXcgaW1wbGVtZW50YXRpb24gaXMgYSBkaXJlY3Qgb25lLCBwZXJmb3Jt aW5nIHJlYWRsaW5rIG9uIGVhY2gKLXBhdGggY29tcG9uZW50IHRvIHJlc29sdmUgaXQuIGFuIGV4 cGxpY2l0IHN0YWNrLCBhcyBvcHBvc2VkIHRvCi1yZWN1cnNpb24sIGlzIHVzZWQgdG8gcmVwcmVz ZW50IHRoZSByZW1haW5pbmcgY29tcG9uZW50cyB0byBiZQotcHJvY2Vzc2VkLiB0aGUgc3RhY2sg c3RhcnRzIG91dCBob2xkaW5nIGp1c3QgdGhlIGlucHV0IHN0cmluZywgYW5kCi1yZWFkaW5nIGEg bGluayBwdXNoZXMgdGhlIGxpbmsgY29udGVudHMgb250byB0aGUgc3RhY2suCi0KLXVubGlrZSBt YW55IG90aGVyIGltcGxlbWVudGF0aW9ucywgdGhpcyBvbmUgZG9lcyBub3QgY2FsbCBnZXRjd2QK LWluaXRpYWxseSBmb3IgcmVsYXRpdmUgcGF0aG5hbWVzLiBpbnN0ZWFkIGl0IGFjY3VtdWxhdGVz IGluaXRpYWwgLi4KLWNvbXBvbmVudHMgdG8gYmUgYXBwbGllZCB0byB0aGUgd29ya2luZyBkaXJl Y3RvcnkgaWYgdGhlIHJlc3VsdCBpcwotc3RpbGwgYSByZWxhdGl2ZSBwYXRoLiB0aGlzIGF2b2lk cyBjYWxsaW5nIGdldGN3ZCAod2hpY2ggbWF5IGZhaWwpIGF0Ci1hbGwgd2hlbiBzeW1saW5rIHRy YXZlcnNhbCB3aWxsIGV2ZW50dWFsbHkgeWllbGQgYW4gYWJzb2x1dGUgcGF0aC4gaXQKLWFsc28g ZG9lc24ndCB1c2UgYW55IGZvcm0gb2Ygc3RhdCBvcGVyYXRpb247IGluc3RlYWQgaXQgYXJyYW5n ZXMgZm9yCi1yZWFkbGluayB0byB0ZWxsIGl0IHdoZW4gYSBub24tZGlyZWN0b3J5IGlzIHVzZWQg aW4gYSBjb250ZXh0IHdoZXJlIGEKLWRpcmVjdG9yeSBpcyBuZWVkZWQuIHRoaXMgbWluaW1pemVz IHRoZSBudW1iZXIgb2Ygc3lzY2FsbHMgbmVlZGVkLAotYXZvaWRzIGFjY2Vzc2luZyBpbm9kZXMg d2hlbiB0aGUgZGlyZWN0b3J5IHRhYmxlIHN1ZmZpY2VzLCBhbmQgcmVkdWNlcwotdGhlIGFtb3Vu dCBvZiBjb2RlIHB1bGxlZCBpbiBmb3Igc3RhdGljIGxpbmtpbmcuCi0tLS0KLSBzcmMvbWlzYy9y ZWFscGF0aC5jIHwgMTU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEzNiBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL3NyYy9taXNjL3JlYWxwYXRoLmMgYi9zcmMvbWlzYy9yZWFscGF0aC5j Ci1pbmRleCBkMjcwOGU1OWQuLmRiOGI3NGRjOCAxMDA2NDQKLS0tLSBhL3NyYy9taXNjL3JlYWxw YXRoLmMKLSsrKyBiL3NyYy9taXNjL3JlYWxwYXRoLmMKLUBAIC0xLDQzICsxLDE1NiBAQAotICNp bmNsdWRlIDxzdGRsaWIuaD4KLSAjaW5jbHVkZSA8bGltaXRzLmg+Ci0tI2luY2x1ZGUgPHN5cy9z dGF0Lmg+Ci0tI2luY2x1ZGUgPGZjbnRsLmg+Ci0gI2luY2x1ZGUgPGVycm5vLmg+Ci0gI2luY2x1 ZGUgPHVuaXN0ZC5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLS0jaW5jbHVkZSAic3lzY2FsbC5o IgotKwotK3N0YXRpYyBzaXplX3Qgc2xhc2hfbGVuKGNvbnN0IGNoYXIgKnMpCi0rewotKwljb25z dCBjaGFyICpzMCA9IHM7Ci0rCXdoaWxlICgqcyA9PSAnLycpIHMrKzsKLSsJcmV0dXJuIHMtczA7 Ci0rfQotIAotIGNoYXIgKnJlYWxwYXRoKGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZpbGVuYW1lLCBj aGFyICpyZXN0cmljdCByZXNvbHZlZCkKLSB7Ci0tCWludCBmZDsKLS0Jc3NpemVfdCByOwotLQlz dHJ1Y3Qgc3RhdCBzdDEsIHN0MjsKLS0JY2hhciBidWZbMTUrMypzaXplb2YoaW50KV07Ci0tCWNo YXIgdG1wW1BBVEhfTUFYXTsKLSsJY2hhciBzdGFja1tQQVRIX01BWCsxXTsKLSsJY2hhciBvdXRw dXRbUEFUSF9NQVhdOwotKwlzaXplX3QgcCwgcSwgbCwgbDAsIGNudD0wLCBudXA9MDsKLSsJaW50 IGNoZWNrX2Rpcj0wOwotIAotIAlpZiAoIWZpbGVuYW1lKSB7Ci0gCQllcnJubyA9IEVJTlZBTDsK LSAJCXJldHVybiAwOwotIAl9Ci0rCWwgPSBzdHJubGVuKGZpbGVuYW1lLCBzaXplb2Ygc3RhY2sp OwotKwlpZiAoIWwpIHsKLSsJCWVycm5vID0gRU5PRU5UOwotKwkJcmV0dXJuIDA7Ci0rCX0KLSsJ aWYgKGwgPj0gUEFUSF9NQVgpIGdvdG8gdG9vbG9uZzsKLSsJcCA9IHNpemVvZiBzdGFjayAtIGwg LSAxOwotKwlxID0gMDsKLSsJbWVtY3B5KHN0YWNrK3AsIGZpbGVuYW1lLCBsKzEpOwotKwotKwkv KiBNYWluIGxvb3AuIEVhY2ggaXRlcmF0aW9uIHBvcHMgdGhlIG5leHQgcGFydCBmcm9tIHN0YWNr IG9mCi0rCSAqIHJlbWFpbmluZyBwYXRoIGNvbXBvbmVudHMgYW5kIGNvbnN1bWVzIGFueSBzbGFz aGVzIHRoYXQgZm9sbG93LgotKwkgKiBJZiBub3QgYSBsaW5rLCBpdCdzIG1vdmVkIHRvIG91dHB1 dDsgaWYgYSBsaW5rLCBjb250ZW50cyBhcmUKLSsJICogcHVzaGVkIHRvIHRoZSBzdGFjay4gKi8K LStyZXN0YXJ0OgotKwlmb3IgKDsgOyBwKz1zbGFzaF9sZW4oc3RhY2srcCkpIHsKLSsJCS8qIElm IHN0YWNrIHN0YXJ0cyB3aXRoIC8sIHRoZSB3aG9sZSBjb21wb25lbnQgaXMgLyBvciAvLwotKwkJ ICogYW5kIHRoZSBvdXRwdXQgc3RhdGUgbXVzdCBiZSByZXNldC4gKi8KLSsJCWlmIChzdGFja1tw XSA9PSAnLycpIHsKLSsJCQljaGVja19kaXI9MDsKLSsJCQludXA9MDsKLSsJCQlxPTA7Ci0rCQkJ b3V0cHV0W3ErK10gPSAnLyc7Ci0rCQkJcCsrOwotKwkJCS8qIEluaXRpYWwgLy8gaXMgc3BlY2lh bC4gKi8KLSsJCQlpZiAoc3RhY2tbcF0gPT0gJy8nICYmIHN0YWNrW3ArMV0gIT0gJy8nKQotKwkJ CQlvdXRwdXRbcSsrXSA9ICcvJzsKLSsJCQljb250aW51ZTsKLSsJCX0KLSsKLSsJCWNoYXIgKnog PSBfX3N0cmNocm51bChzdGFjaytwLCAnLycpOwotKwkJbDAgPSBsID0gei0oc3RhY2srcCk7Ci0g Ci0tCWZkID0gc3lzX29wZW4oZmlsZW5hbWUsIE9fUEFUSHxPX05PTkJMT0NLfE9fQ0xPRVhFQyk7 Ci0tCWlmIChmZCA8IDApIHJldHVybiAwOwotLQlfX3Byb2NmZG5hbWUoYnVmLCBmZCk7Ci0rCQlp ZiAoIWwgJiYgIWNoZWNrX2RpcikgYnJlYWs7Ci0gCi0tCXIgPSByZWFkbGluayhidWYsIHRtcCwg c2l6ZW9mIHRtcCAtIDEpOwotLQlpZiAociA8IDApIGdvdG8gZXJyOwotLQl0bXBbcl0gPSAwOwot KwkJLyogU2tpcCBhbnkgLiBjb21wb25lbnQgYnV0IHByZXNlcnZlIGNoZWNrX2RpciBzdGF0dXMu ICovCi0rCQlpZiAobD09MSAmJiBzdGFja1twXT09Jy4nKSB7Ci0rCQkJcCArPSBsOwotKwkJCWNv bnRpbnVlOwotKwkJfQotIAotLQlmc3RhdChmZCwgJnN0MSk7Ci0tCXIgPSBzdGF0KHRtcCwgJnN0 Mik7Ci0tCWlmIChyPDAgfHwgc3QxLnN0X2RldiAhPSBzdDIuc3RfZGV2IHx8IHN0MS5zdF9pbm8g IT0gc3QyLnN0X2lubykgewotLQkJaWYgKCFyKSBlcnJubyA9IEVMT09QOwotLQkJZ290byBlcnI7 Ci0rCQkvKiBDb3B5IG5leHQgY29tcG9uZW50IG9udG8gb3V0cHV0IGF0IGxlYXN0IHRlbXBvcmFy aWx5LCB0bwotKwkJICogY2FsbCByZWFkbGluaywgYnV0IHdhaXQgdG8gYWR2YW5jZSBvdXRwdXQg cG9zaXRpb24gdW50aWwKLSsJCSAqIGRldGVybWluaW5nIGl0J3Mgbm90IGEgbGluay4gKi8KLSsJ CWlmIChxICYmIG91dHB1dFtxLTFdICE9ICcvJykgewotKwkJCWlmICghcCkgZ290byB0b29sb25n OwotKwkJCXN0YWNrWy0tcF0gPSAnLyc7Ci0rCQkJbCsrOwotKwkJfQotKwkJaWYgKHErbCA+PSBQ QVRIX01BWCkgZ290byB0b29sb25nOwotKwkJbWVtY3B5KG91dHB1dCtxLCBzdGFjaytwLCBsKTsK LSsJCW91dHB1dFtxK2xdID0gMDsKLSsJCXAgKz0gbDsKLSsKLSsJCWludCB1cCA9IDA7Ci0rCQlp ZiAobDA9PTIgJiYgc3RhY2tbcC0yXT09Jy4nICYmIHN0YWNrW3AtMV09PScuJykgewotKwkJCXVw ID0gMTsKLSsJCQkvKiBBbnkgbm9uLS4uIHBhdGggY29tcG9uZW50cyB3ZSBjb3VsZCBjYW5jZWwg c3RhcnQKLSsJCQkgKiBhZnRlciBudXAgcmVwZXRpdGlvbnMgb2YgdGhlIDMtYnl0ZSBzdHJpbmcg Ii4uLyI7Ci0rCQkJICogaWYgdGhlcmUgYXJlIG5vbmUsIGFjY3VtdWxhdGUgLi4gY29tcG9uZW50 cyB0bwotKwkJCSAqIGxhdGVyIGFwcGx5IHRvIGN3ZCwgaWYgbmVlZGVkLiAqLwotKwkJCWlmIChx IDw9IDMqbnVwKSB7Ci0rCQkJCW51cCsrOwotKwkJCQlxICs9IGw7Ci0rCQkJCWNvbnRpbnVlOwot KwkJCX0KLSsJCQkvKiBXaGVuIHByZXZpb3VzIGNvbXBvbmVudHMgYXJlIGFscmVhZHkga25vd24g dG8gYmUKLSsJCQkgKiBkaXJlY3RvcmllcywgcHJvY2Vzc2luZyAuLiBjYW4gc2tpcCByZWFkbGlu ay4gKi8KLSsJCQlpZiAoIWNoZWNrX2RpcikgZ290byBza2lwX3JlYWRsaW5rOwotKwkJfQotKwkJ c3NpemVfdCBrID0gcmVhZGxpbmsob3V0cHV0LCBzdGFjaywgcCk7Ci0rCQlpZiAoaz09cCkgZ290 byB0b29sb25nOwotKwkJaWYgKCFrKSB7Ci0rCQkJZXJybm8gPSBFTk9FTlQ7Ci0rCQkJcmV0dXJu IDA7Ci0rCQl9Ci0rCQlpZiAoazwwKSB7Ci0rCQkJaWYgKGVycm5vICE9IEVJTlZBTCkgcmV0dXJu IDA7Ci0rc2tpcF9yZWFkbGluazoKLSsJCQljaGVja19kaXIgPSAwOwotKwkJCWlmICh1cCkgewot KwkJCQl3aGlsZShxICYmIG91dHB1dFtxLTFdIT0nLycpIHEtLTsKLSsJCQkJaWYgKHE+MSAmJiAo cT4yIHx8IG91dHB1dFswXSE9Jy8nKSkgcS0tOwotKwkJCQljb250aW51ZTsKLSsJCQl9Ci0rCQkJ aWYgKGwwKSBxICs9IGw7Ci0rCQkJY2hlY2tfZGlyID0gc3RhY2tbcF07Ci0rCQkJY29udGludWU7 Ci0rCQl9Ci0rCQlpZiAoKytjbnQgPT0gU1lNTE9PUF9NQVgpIHsKLSsJCQllcnJubyA9IEVMT09Q OwotKwkJCXJldHVybiAwOwotKwkJfQotKwotKwkJLyogSWYgbGluayBjb250ZW50cyBlbmQgaW4g Lywgc3RyaXAgYW55IHNsYXNoZXMgYWxyZWFkeSBvbgotKwkJICogc3RhY2sgdG8gYXZvaWQgLy0+ Ly8gb3IgLy8tPi8vLyBvciBzcHVyaW91cyB0b29sb25nLiAqLwotKwkJaWYgKHN0YWNrW2stMV09 PScvJykgd2hpbGUgKHN0YWNrW3BdPT0nLycpIHArKzsKLSsJCXAgLT0gazsKLSsJCW1lbW1vdmUo c3RhY2srcCwgc3RhY2ssIGspOwotKwotKwkJLyogU2tpcCB0aGUgc3RhY2sgYWR2YW5jZW1lbnQg aW4gY2FzZSB3ZSBoYXZlIGEgbmV3Ci0rCQkgKiBhYnNvbHV0ZSBiYXNlIHBhdGguICovCi0rCQln b3RvIHJlc3RhcnQ7Ci0gCX0KLSAKLS0JX19zeXNjYWxsKFNZU19jbG9zZSwgZmQpOwotLQlyZXR1 cm4gcmVzb2x2ZWQgPyBzdHJjcHkocmVzb2x2ZWQsIHRtcCkgOiBzdHJkdXAodG1wKTsKLS1lcnI6 Ci0tCV9fc3lzY2FsbChTWVNfY2xvc2UsIGZkKTsKLSsgCW91dHB1dFtxXSA9IDA7Ci0rCi0rCWlm IChvdXRwdXRbMF0gIT0gJy8nKSB7Ci0rCQlpZiAoIWdldGN3ZChzdGFjaywgc2l6ZW9mIHN0YWNr KSkgcmV0dXJuIDA7Ci0rCQlsID0gc3RybGVuKHN0YWNrKTsKLSsJCS8qIENhbmNlbCBhbnkgaW5p dGlhbCAuLiBjb21wb25lbnRzLiAqLwotKwkJcCA9IDA7Ci0rCQl3aGlsZSAobnVwLS0pIHsKLSsJ CQl3aGlsZShsPjEgJiYgc3RhY2tbbC0xXSE9Jy8nKSBsLS07Ci0rCQkJaWYgKGw+MSkgbC0tOwot KwkJCXAgKz0gMjsKLSsJCQlpZiAocDxxKSBwKys7Ci0rCQl9Ci0rCQlpZiAocS1wICYmIHN0YWNr W2wtMV0hPScvJykgc3RhY2tbbCsrXSA9ICcvJzsKLSsJCWlmIChsICsgKHEtcCkgKyAxID49IFBB VEhfTUFYKSBnb3RvIHRvb2xvbmc7Ci0rCQltZW1tb3ZlKG91dHB1dCArIGwsIG91dHB1dCArIHAs IHEgLSBwICsgMSk7Ci0rCQltZW1jcHkob3V0cHV0LCBzdGFjaywgbCk7Ci0rCQlxID0gbCArIHEt cDsKLSsJfQotKwotKwlpZiAocmVzb2x2ZWQpIHJldHVybiBtZW1jcHkocmVzb2x2ZWQsIG91dHB1 dCwgcSsxKTsKLSsJZWxzZSByZXR1cm4gc3RyZHVwKG91dHB1dCk7Ci0rCi0rdG9vbG9uZzoKLSsJ ZXJybm8gPSBFTkFNRVRPT0xPTkc7Ci0gCXJldHVybiAwOwotIH0KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbXVzbC9wYXRjaGVzL2lzYXNjaWkucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9pc2Fz Y2lpLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzE5ZDJlZTE4OGYuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9pc2FzY2lpLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotRnJvbSBlNDhlOTljMTEyMjQ2ZmI1ODA1OTY0MDQw NzQ0NDVjYjI1ZDc4NThkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9x Pz1DMz04OXJpY289MjBSb2xpbT89IDxlcmljb25yQGRpc3Jvb3Qub3JnPgotRGF0ZTogTW9uLCA0 IEphbiAyMDIxIDIyOjQ4OjM0IC0wMzAwCi1TdWJqZWN0OiBbUEFUQ0hdIHN1cHByZXNzIGlzYXNj aWkoKSBtYWNybyBmb3IgQysrCi0KLWFuYWxvZ291cyB0byBjb21taXQgYTYwNDU3Yzg0YTRiNTlh YjU2NGQ3ZjRhYmI2NjBhNzAyODNiYTk4ZC4KLQotZGlmZiAtLWdpdCBpbmNsdWRlL2N0eXBlLmgg aW5jbHVkZS9jdHlwZS5oCi1pbmRleCA3OTM2NTM2Zi4uMzJiY2VmNGQgMTAwNjQ0Ci0tLS0gYS9p bmNsdWRlL2N0eXBlLmgKLSsrKyBiL2luY2x1ZGUvY3R5cGUuaAotQEAgLTY0LDcgKzY0LDkgQEAg aW50ICAgaXNhc2NpaShpbnQpOwotIGludCAgIHRvYXNjaWkoaW50KTsKLSAjZGVmaW5lIF90b2xv d2VyKGEpICgoYSl8MHgyMCkKLSAjZGVmaW5lIF90b3VwcGVyKGEpICgoYSkmMHg1ZikKLSsjaWZu ZGVmIF9fY3BsdXNwbHVzCi0gI2RlZmluZSBpc2FzY2lpKGEpICgwID8gaXNhc2NpaShhKSA6ICh1 bnNpZ25lZCkoYSkgPCAxMjgpCi0rI2VuZGlmCi0gCi0gI2VuZGlmCi0gCmRpZmYgLS1naXQgYS9z cmNwa2dzL211c2wvcGF0Y2hlcy9wcGMtcHRfcmVncy5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRj aGVzL3BwYy1wdF9yZWdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTgx NTMyMWJmMGYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9wcGMtcHRf cmVncy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLWNvbW1pdCBjMjUxOGE4 ZWZiNjUwN2YxYjQxYzNiMTJlMDNiMDZmOGYyMzE3YTFmCi1BdXRob3I6IFJpY2ggRmVsa2VyIDxk YWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6ICAgU2F0IE9jdCAxOSAxNTo1Mzo0MyAyMDE5IC0wNDAw Ci0KLSAgICB1c2Ugc3RydWN0IHB0X3JlZ3MgKiByYXRoZXIgdGhhbiB2b2lkICogZm9yIHBvd2Vy cGNbNjRdIHNpZ2NvbnRleHQgcmVncwotICAgIAotICAgIHRoaXMgaXMgdG8gbWF0Y2ggdGhlIGtl cm5lbCBhbmQgZ2xpYmMgaW50ZXJmYWNlcy4gaGVyZSwgc3RydWN0IHB0X3JlZ3MKLSAgICBpcyBh biBpbmNvbXBsZXRlIHR5cGUsIGJ1dCB0aGF0J3MgaGFybWxlc3MsIGFuZCBpZiBpdCdzIGNvbXBs ZXRlZCBieQotICAgIGluY2x1c2lvbiBvZiBhbm90aGVyIGhlYWRlciB0aGVuIG1lbWJlcnMgb2Yg dGhlIHN0cnVjdCBwb2ludGVkIHRvIGJ5Ci0gICAgdGhlIHJlZ3MgbWVtYmVyIGNhbiBiZSBhY2Nl c3NlZCBkaXJlY3RseSB3aXRob3V0IGdvaW5nIHRocm91Z2ggYSBjYXN0Ci0gICAgb3IgaW50ZXJt ZWRpYXRlIHBvaW50ZXIgb2JqZWN0LgotCi1kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2JpdHMv c2lnbmFsLmggYi9hcmNoL3Bvd2VycGMvYml0cy9zaWduYWwuaAotaW5kZXggMDZlZmIxMWMuLmMx YmYzY2FmIDEwMDY0NAotLS0tIGEvYXJjaC9wb3dlcnBjL2JpdHMvc2lnbmFsLmgKLSsrKyBiL2Fy Y2gvcG93ZXJwYy9iaXRzL3NpZ25hbC5oCi1AQCAtMjgsNyArMjgsNyBAQCBzdHJ1Y3Qgc2lnY29u dGV4dCB7Ci0gCWludCBzaWduYWw7Ci0gCXVuc2lnbmVkIGxvbmcgaGFuZGxlcjsKLSAJdW5zaWdu ZWQgbG9uZyBvbGRtYXNrOwotLQl2b2lkICpyZWdzOwotKwlzdHJ1Y3QgcHRfcmVncyAqcmVnczsK LSB9OwotIAotIHR5cGVkZWYgc3RydWN0IHsKLWRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGM2NC9i aXRzL3NpZ25hbC5oIGIvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaAotaW5kZXggNGRlYzIy YTUuLmQ1NDkzYjE4IDEwMDY0NAotLS0tIGEvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaAot KysrIGIvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaAotQEAgLTMyLDcgKzMyLDcgQEAgdHlw ZWRlZiBzdHJ1Y3Qgc2lnY29udGV4dCB7Ci0gCWludCBfcGFkMDsKLSAJdW5zaWduZWQgbG9uZyBo YW5kbGVyOwotIAl1bnNpZ25lZCBsb25nIG9sZG1hc2s7Ci0tCXZvaWQgKnJlZ3M7Ci0rCXN0cnVj dCBwdF9yZWdzICpyZWdzOwotIAlncmVnc2V0X3QgZ3BfcmVnczsKLSAJZnByZWdzZXRfdCBmcF9y ZWdzOwotIAl2cnJlZ3NldF90ICp2X3JlZ3M7CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0 Y2hlcy9wcGM2NC1mcHJlZ3NldF90LnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjNjQt ZnByZWdzZXRfdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI2MTdiYTBl ZjdkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjNjQtZnByZWdz ZXRfdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLWNvbW1pdCBjOWY0OGNk ZTBhMjI2NDFjZTNkYWY1NDU5NmE5ZWNlYmRhYjkxNDM1Ci1BdXRob3I6IFJpY2ggRmVsa2VyIDxk YWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6ICAgU2F0IE9jdCAxOSAxNTozOTo0NSAyMDE5IC0wNDAw Ci0KLSAgICBmaXggZnByZWdzZXRfdCB0eXBlIG9uIHBvd2VycGM2NAotICAgIAotICAgIHRoZSB1 c2Vyc3BhY2UgdWNvbnRleHQgQVBJIGhhcyB0aGlzIGFzIGFuIGFycmF5IHJhdGhlciB0aGFuIGEK LSAgICBzdHJ1Y3R1cmUuCi0gICAgCi0gICAgY29tbWl0IDNjNTlhODY4OTU2NjM2YmM4YWRhZmIx YjE2OGQwOTA4OTc2OTI1MzIgZml4ZWQgdGhlCi0gICAgY29ycmVzcG9uZGluZyBtaXN0YWtlIGZv ciB2cnJlZ3NldF90LCBuYW1lbHkgdGhhdCB0aGUgb3JpZ2luYWwKLSAgICBwb3dlcnBjNjQgcG9y dCB1c2VkIGEgbWl4IG9mIHR5cGVzIGZyb20gMzItYml0IHBvd2VycGMgYW5kIHBvd2VycGM2NAot ICAgIHJhdGhlciB0aGFuIG1hdGNoaW5nIHRoZSA2NC1iaXQgdHlwZXMuCi0KLWRpZmYgLS1naXQg YS9hcmNoL3Bvd2VycGM2NC9iaXRzL3NpZ25hbC5oIGIvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWdu YWwuaAotaW5kZXggMmNjMDYwNGMuLjRkZWMyMmE1IDEwMDY0NAotLS0tIGEvYXJjaC9wb3dlcnBj NjQvYml0cy9zaWduYWwuaAotKysrIGIvYXJjaC9wb3dlcnBjNjQvYml0cy9zaWduYWwuaAotQEAg LTksMTEgKzksNyBAQAotICNpZiBkZWZpbmVkKF9HTlVfU09VUkNFKSB8fCBkZWZpbmVkKF9CU0Rf U09VUkNFKQotIAotIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBncmVnX3QsIGdyZWdzZXRfdFs0OF07 Ci0tCi0tdHlwZWRlZiBzdHJ1Y3QgewotLQlkb3VibGUgZnByZWdzWzMyXTsKLS0JZG91YmxlIGZw c2NyOwotLX0gZnByZWdzZXRfdDsKLSt0eXBlZGVmIGRvdWJsZSBmcHJlZ3NldF90WzMzXTsKLSAK LSB0eXBlZGVmIHN0cnVjdCB7Ci0gI2lmZGVmIF9fR05VQ19fCmRpZmYgLS1naXQgYS9zcmNwa2dz L211c2wvcGF0Y2hlcy9wcGNsZS5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwY2xlLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDQ5MzM4YTVhMGYuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9wcGNsZS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDI0ICswLDAgQEAKLUZyb20gMjBkZmMyMDAyNDgyYTIxYjk1NWI3MTBhZjExOWEwMWFl Y2VlNzg0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgotRGF0ZTogVHVlLCAxNSBEZWMgMjAyMCAyMDo0MjoxNyArMDEw MAotU3ViamVjdDogW1BBVENIXSBhZGQgcHBjMzIgbGUgc3ViYXJjaAotCi0tLS0KLSBjb25maWd1 cmUgfCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBj b25maWd1cmUgY29uZmlndXJlCi1pbmRleCA4NjgwMTI4Li5mMWNhNThlIDEwMDc1NQotLS0tIGEv Y29uZmlndXJlCi0rKysgYi9jb25maWd1cmUKLUBAIC02NDUsNiArNjQ1LDcgQEAgZmkKLSBpZiB0 ZXN0ICIkQVJDSCIgPSAicG93ZXJwYyIgOyB0aGVuCi0gdHJ5Y3BwaWYgIl9fTk9fRlBSU19fICYm ICFfU09GVF9GTE9BVCIgIiR0IiAmJiBmYWlsIFwKLSAgICIkMDogZXJyb3I6IGNvbXBpbGVyJ3Mg ZmxvYXRpbmcgcG9pbnQgY29uZmlndXJhdGlvbiBpcyB1bnN1cHBvcnRlZCIKLSt0cnljcHBpZiBf X0xJVFRMRV9FTkRJQU5fXyAiJHQiICYmIFNVQkFSQ0g9JHtTVUJBUkNIfWxlCi0gdHJ5Y3BwaWYg X1NPRlRfRkxPQVQgIiR0IiAmJiBTVUJBUkNIPSR7U1VCQVJDSH0tc2YKLSBmaQotIAotLS0gCi0y LjI5LjIKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvcmVhbGxvY2FycmF5LnBh dGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvcmVhbGxvY2FycmF5LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBjZmFhYjMzMGU4OWEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL211c2wvcGF0Y2hlcy9yZWFsbG9jYXJyYXkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0 MiArMCwwIEBACi1Gcm9tIDgyMTA4M2FjN2I1NGVhYTA0MGQ1YThkZGM2N2M2MjA2YTE3NWUwY2Eg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmlhZG5lIENvbmlsbCA8YXJpYWRuZUBk ZXJlZmVyZW5jZWQub3JnPgotRGF0ZTogU2F0LCAxIEF1ZyAyMDIwIDA4OjI2OjM1IC0wNjAwCi1T dWJqZWN0OiBbUEFUQ0hdIGltcGxlbWVudCByZWFsbG9jYXJyYXkKLQotcmVhbGxvY2FycmF5IGlz IGFuIGV4dGVuc2lvbiBpbnRyb2R1Y2VkIGJ5IE9wZW5CU0QsIHdoaWNoIGludHJvZHVjZXMKLWNh bGxvYyBvdmVyZmxvdyBjaGVja2luZyB0byByZWFsbG9jLgotCi1nbGliYyAyLjI4IGludHJvZHVj ZWQgc3VwcG9ydCBmb3IgdGhpcyBmdW5jdGlvbiBiZWhpbmQgX0dOVV9TT1VSQ0UsCi13aGlsZSBn bGliYyAyLjI5IGFsbG93cyBpdHMgdXNhZ2UgaW4gX0RFRkFVTFRfU09VUkNFLgotCi1kaWZmIC0t Z2l0IGEvaW5jbHVkZS9zdGRsaWIuaCBiL2luY2x1ZGUvc3RkbGliLmgKLWluZGV4IDE5NGMyMDMz Li5iNTRhMDUxZiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvc3RkbGliLmgKLSsrKyBiL2luY2x1ZGUv c3RkbGliLmgKLUBAIC0xNDUsNiArMTQ1LDcgQEAgaW50IGdldGxvYWRhdmcoZG91YmxlICosIGlu dCk7Ci0gaW50IGNsZWFyZW52KHZvaWQpOwotICNkZWZpbmUgV0NPUkVEVU1QKHMpICgocykgJiAw eDgwKQotICNkZWZpbmUgV0lGQ09OVElOVUVEKHMpICgocykgPT0gMHhmZmZmKQotK3ZvaWQgKnJl YWxsb2NhcnJheSAodm9pZCAqLCBzaXplX3QsIHNpemVfdCk7Ci0gI2VuZGlmCi0gCi0gI2lmZGVm IF9HTlVfU09VUkNFCi1kaWZmIC0tZ2l0IGEvc3JjL21hbGxvYy9yZWFsbG9jYXJyYXkuYyBiL3Ny Yy9tYWxsb2MvcmVhbGxvY2FycmF5LmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwMC4uNGE2ZWJlNDYKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9tYWxsb2MvcmVhbGxvY2Fy cmF5LmMKLUBAIC0wLDAgKzEsMTMgQEAKLSsjZGVmaW5lIF9CU0RfU09VUkNFCi0rI2luY2x1ZGUg PGVycm5vLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKwotK3ZvaWQgKnJlYWxsb2NhcnJheSh2 b2lkICpwdHIsIHNpemVfdCBtLCBzaXplX3QgbikKLSt7Ci0rCWlmIChuICYmIG0gPiAtMSAvIG4p IHsKLSsJCWVycm5vID0gRU5PTUVNOwotKwkJcmV0dXJuIDA7Ci0rCX0KLSsKLSsJcmV0dXJuIHJl YWxsb2MocHRyLCBtICogbik7Ci0rfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMv d29ya19hcm91bmRfbGludXhfYnVnX2luX3JlYWRsaW5rX3N5c2NhbGxfd2l0aF96ZXJvX2J1ZmZl ci5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3dvcmtfYXJvdW5kX2xpbnV4X2J1Z19pbl9y ZWFkbGlua19zeXNjYWxsX3dpdGhfemVyb19idWZmZXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDMyODY0MzJlYmVhMi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVz bC9wYXRjaGVzL3dvcmtfYXJvdW5kX2xpbnV4X2J1Z19pbl9yZWFkbGlua19zeXNjYWxsX3dpdGhf emVyb19idWZmZXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi1Gcm9tIGUy ZmE3MjBiZTcwMjRjY2U0ZmM0ODlmMzg3NzQ3NmQzNWRhNDhlZTIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBNb24s IDIzIE5vdiAyMDIwIDE5OjQ0OjE5IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHdvcmsgYXJvdW5k IGxpbnV4IGJ1ZyBpbiByZWFkbGluayBzeXNjYWxsIHdpdGggemVybyBidWZmZXIKLSBzaXplCi0K LWxpbnV4IGZhaWxzIHdpdGggRUlOVkFMIHdoZW4gYSB6ZXJvIGJ1ZmZlciBzaXplIGlzIHBhc3Nl ZCB0byB0aGUKLXN5c2NhbGwuIHRoaXMgaXMgbm9uLWNvbmZvcm1pbmcgYmVjYXVzZSBQT1NJWCBh bHJlYWR5IGRlZmluZXMgRUlOVkFMCi13aXRoIGEgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQgbWVh bmluZzogdGhlIHRhcmdldCBpcyBub3QgYSBzeW1saW5rLgotCi1zaW5jZSB0aGUgcmVxdWVzdCBp cyBzZW1hbnRpY2FsbHkgdmFsaWQsIHBhdGNoIGl0IHVwIGJ5IHVzaW5nIGEgZHVtbXkKLWJ1ZmZl ciBvZiBsZW5ndGggb25lLCBhbmQgdHJ1bmNhdGluZyB0aGUgcmV0dXJuIHZhbHVlIHRvIHplcm8g aWYgaXQKLXN1Y2NlZWRzLgotLS0tCi0gc3JjL3VuaXN0ZC9yZWFkbGluay5jICAgfCAxMSArKysr KysrKystLQotIHNyYy91bmlzdGQvcmVhZGxpbmthdC5jIHwgIDkgKysrKysrKystCi0gMiBmaWxl cyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvc3JjL3VuaXN0ZC9yZWFkbGluay5jIGIvc3JjL3VuaXN0ZC9yZWFkbGluay5jCi1pbmRleCBh MTUyZDUyNDkuLjMyZjQ1MzdmOSAxMDA2NDQKLS0tLSBhL3NyYy91bmlzdGQvcmVhZGxpbmsuYwot KysrIGIvc3JjL3VuaXN0ZC9yZWFkbGluay5jCi1AQCAtNCw5ICs0LDE2IEBACi0gCi0gc3NpemVf dCByZWFkbGluayhjb25zdCBjaGFyICpyZXN0cmljdCBwYXRoLCBjaGFyICpyZXN0cmljdCBidWYs IHNpemVfdCBidWZzaXplKQotIHsKLSsJY2hhciBkdW1teVsxXTsKLSsJaWYgKCFidWZzaXplKSB7 Ci0rCQlidWYgPSBkdW1teTsKLSsJCWJ1ZnNpemUgPSAxOwotKwl9Ci0gI2lmZGVmIFNZU19yZWFk bGluawotLQlyZXR1cm4gc3lzY2FsbChTWVNfcmVhZGxpbmssIHBhdGgsIGJ1ZiwgYnVmc2l6ZSk7 Ci0rCWludCByID0gX19zeXNjYWxsKFNZU19yZWFkbGluaywgcGF0aCwgYnVmLCBidWZzaXplKTsK LSAjZWxzZQotLQlyZXR1cm4gc3lzY2FsbChTWVNfcmVhZGxpbmthdCwgQVRfRkRDV0QsIHBhdGgs IGJ1ZiwgYnVmc2l6ZSk7Ci0rCWludCByID0gX19zeXNjYWxsKFNZU19yZWFkbGlua2F0LCBBVF9G RENXRCwgcGF0aCwgYnVmLCBidWZzaXplKTsKLSAjZW5kaWYKLSsJaWYgKGJ1ZiA9PSBkdW1teSAm JiByID4gMCkgciA9IDA7Ci0rCXJldHVybiBfX3N5c2NhbGxfcmV0KHIpOwotIH0KLWRpZmYgLS1n aXQgYS9zcmMvdW5pc3RkL3JlYWRsaW5rYXQuYyBiL3NyYy91bmlzdGQvcmVhZGxpbmthdC5jCi1p bmRleCA5YWY0NWNkNWEuLmY3OWQzZDE0MiAxMDA2NDQKLS0tLSBhL3NyYy91bmlzdGQvcmVhZGxp bmthdC5jCi0rKysgYi9zcmMvdW5pc3RkL3JlYWRsaW5rYXQuYwotQEAgLTMsNSArMywxMiBAQAot IAotIHNzaXplX3QgcmVhZGxpbmthdChpbnQgZmQsIGNvbnN0IGNoYXIgKnJlc3RyaWN0IHBhdGgs IGNoYXIgKnJlc3RyaWN0IGJ1Ziwgc2l6ZV90IGJ1ZnNpemUpCi0gewotLQlyZXR1cm4gc3lzY2Fs bChTWVNfcmVhZGxpbmthdCwgZmQsIHBhdGgsIGJ1ZiwgYnVmc2l6ZSk7Ci0rCWNoYXIgZHVtbXlb MV07Ci0rCWlmICghYnVmc2l6ZSkgewotKwkJYnVmID0gZHVtbXk7Ci0rCQlidWZzaXplID0gMTsK LSsJfQotKwlpbnQgciA9IF9fc3lzY2FsbChTWVNfcmVhZGxpbmthdCwgZmQsIHBhdGgsIGJ1Ziwg YnVmc2l6ZSk7Ci0rCWlmIChidWYgPT0gZHVtbXkgJiYgciA+IDApIHIgPSAwOwotKwlyZXR1cm4g X19zeXNjYWxsX3JldChyKTsKLSB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvdGVtcGxhdGUg Yi9zcmNwa2dzL211c2wvdGVtcGxhdGUKaW5kZXggYWZiMzNjZDg2OGI1Li5iYjhjOGJjNTkyYjYg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL211c2wvdGVt cGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtdXNsJwogcGtnbmFt ZT1tdXNsCi1yZXZlcnRzPSIxLjIuMF8xIgotdmVyc2lvbj0xLjEuMjQKLXJldmlzaW9uPTEyCit2 ZXJzaW9uPTEuMi4zCityZXZpc2lvbj0xCiBhcmNocz0iKi1tdXNsIgogYm9vdHN0cmFwPXllcwog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTIsNyArMTEsNyBAQCBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTUlUIgogaG9tZXBh Z2U9Imh0dHA6Ly93d3cubXVzbC1saWJjLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly93d3cubXVz bC1saWJjLm9yZy9yZWxlYXNlcy9tdXNsLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09MTM3 MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3YmVkZDcwMDUxZjBhMzQwMTUw MjJhMworY2hlY2tzdW09N2Q1YjBiNjA2MjUyMWU0NjI3ZTA5OWU0YzlkYzgyNDhkMzJhMzAyODVl OTU5YjdlZWNhYTc4MGNmOGNmZDRhNAogCiBub3N0cmlwX2ZpbGVzPSJsaWJjLnNvIgogc2hsaWJf cHJvdmlkZXM9ImxpYmMuc28iCgpGcm9tIDFhMGRmOWQyZTU2MDkxNThiOTk0N2M4MDc4ODdkYjQz YTBiODllMmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENhbWVyb24gTmVtbyA8Y2Ft QG5vaG9tLm9yZz4KRGF0ZTogU3VuLCAyNSBEZWMgMjAyMiAyMjowNDozNCAtMDgwMApTdWJqZWN0 OiBbUEFUQ0ggMi8zXSBiYXNlLWNocm9vdDogYnVtcCBtdXNsLWRldmVsIHZlcnNpb24KCi0tLQog c3JjcGtncy9iYXNlLWNocm9vdC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Jhc2Ut Y2hyb290L3RlbXBsYXRlIGIvc3JjcGtncy9iYXNlLWNocm9vdC90ZW1wbGF0ZQppbmRleCA0MGM3 NmJlZGQ0MTcuLjBjODM5YmZjODUxZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9iYXNlLWNocm9vdC90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Jhc2UtY2hyb290L3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmFzZS1jaHJvb3QnCiBwa2duYW1lPWJhc2UtY2hyb290 Ci12ZXJzaW9uPTAuNjcKK3ZlcnNpb249MC42OAogcmV2aXNpb249MQogYm9vdHN0cmFwPXllcwog YnVpbGRfc3R5bGU9bWV0YQpAQCAtMTAsNyArMTAsNyBAQCBsaWNlbnNlPSJQdWJsaWMgRG9tYWlu IgogaG9tZXBhZ2U9Imh0dHA6Ly93d3cudm9pZGxpbnV4Lm9yZyIKIAogY2FzZSAiJFhCUFNfVEFS R0VUX0xJQkMiIGluCi0JbXVzbCkgZGVwZW5kcz0ibXVzbC1kZXZlbCI7OworCW11c2wpIGRlcGVu ZHM9Im11c2wtZGV2ZWw+PTEuMi4zXzEiOzsKIAkqKSBkZXBlbmRzPSJnbGliYy1kZXZlbCBnbGli Yy1sb2NhbGVzIjs7CiBlc2FjCiAKCkZyb20gMzM5ZTIzOWRkYmY5NTVhNjE3NzNjNDJkNmM1N2Jm NWQxZDIwZWM3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2FtZXJvbiBOZW1vIDxj YW1Abm9ob20ub3JnPgpEYXRlOiBTdW4sIDI1IERlYyAyMDIyIDIyOjA1OjA0IC0wODAwClN1Ympl Y3Q6IFtQQVRDSCAzLzNdIGJhc2UtZGV2ZWw6IGJ1bXAgbXVzbC1kZXZlbCB2ZXJzaW9uCgotLS0K IHNyY3BrZ3MvYmFzZS1kZXZlbC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Jhc2Ut ZGV2ZWwvdGVtcGxhdGUgYi9zcmNwa2dzL2Jhc2UtZGV2ZWwvdGVtcGxhdGUKaW5kZXggNTcwZjY5 OWNhOTYwLi41NjEwMTM4NWM0ZjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYmFzZS1kZXZlbC90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2Jhc2UtZGV2ZWwvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdiYXNlLWRldmVsJwogcGtnbmFtZT1iYXNlLWRldmVsCiB2ZXJz aW9uPTIwMTgxMDAzCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1tZXRhCiBk ZXBlbmRzPSJhdXRvY29uZiBhdXRvbWFrZSBiYyBiaW51dGlscyBiaXNvbiBlZCBmbGV4IGdjYyBn ZXR0ZXh0CiAgZ3JvZmYgbGlidG9vbCBtNCBtYWtlIHBhdGNoIHBrZy1jb25maWcgdGV4aW5mbyB1 bnppcCB4eiIKQEAgLTEyLDYgKzEyLDYgQEAgaG9tZXBhZ2U9Imh0dHA6Ly93d3cudm9pZGxpbnV4 Lm9yZy8iCiBsaWIzMmRpc2FibGVkPXllcwogCiBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KLQkqLW11c2wpIGRlcGVuZHMrPSIgbXVzbC1kZXZlbCI7OworCSotbXVzbCkgZGVwZW5kcys9 IiBtdXNsLWRldmVsPj0xLjIuM18xIjs7CiAJKikgZGVwZW5kcys9IiBnbGliYy1kZXZlbCI7Owog ZXNhYwo= --===============1429881109089241078==--