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=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 22626 invoked from network); 26 Nov 2021 13:08:11 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 26 Nov 2021 13:08:11 -0000 Content-Type: multipart/mixed; boundary="===============0811341741569690999==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Subsurface?= To: ml@inbox.vuxu.org From: adbrown101 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 26 Nov 2021 14:08:11 +0100 List-Id: Message-ID: <20211126130811.6_6w-3qbPDdBfzQJHKqsOrLa2YYe9SNSTiTFBtY7K3g@z> GitHub notification mails are now in MIME to allow UTF8. --===============0811341741569690999== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYWRicm93bjEwMSBhZ2FpbnN0IG1h c3RlciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20v YWRicm93bjEwMS92b2lkLXBhY2thZ2VzIHN1YnN1cmZhY2UKaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM0MTg3CgpTdWJzdXJmYWNlCjwhLS0gVW5jb21t ZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3aGljaCBhcmUgbm90IGFw cGxpY2FibGUgLS0+DQoNCiMjIyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0aGUg Y2hhbmdlcyBpbiB0aGlzIFBSOiAqKllFUyoqDQoNCiMjIyMgTmV3IHBhY2thZ2UNCi0gVGhpcyBu ZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRzXShodHRwczov L2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5t ZCNxdWFsaXR5LXJlcXVpcmVtZW50cyk6ICoqWUVTKioNCg0KDQo8IS0tIE5vdGU6IElmIHRoZSBi dWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIFtza2lwIENJ XShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVy L0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uKQ0KYW5kIHRlc3QgYXQgbGVh c3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3Nz IGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlzIG5vdCBza2lwcGluZyBD SS4NCi0tPg0KDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxv Y2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIHg4Nl82NCwgeDg2XzY0LW11c2wsIGk2 ODYNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlm IHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2NCwgYWFyY2g2NC1tdXNs DQogDQpJIGhhdmUgYmVlbiB1c2luZyBzdWJzdXJmYWNlIGZvciBzb21lIHRpbWUgYW5kIGhhdmUg dXNlZCBvbiB4ODZfNjQgYW5kIHg4Nl82NC1tdXNsLiBXb3JrcyB3ZWxsIG9uIHZvaWQuDQoKCkEg cGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvcHVsbC8zNDE4Ny5wYXRjaCBpcyBhdHRhY2hlZA== --===============0811341741569690999== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-subsurface-34187.patch" RnJvbSA2ZDk3ZjRhZGZmMTJhMzc5NzkxMTZlYzY4ZDZlZWI0NGY3MDhiZjU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJyb3duIDxhZGJyb3duQHJvY2tldG1haWwuY29tPgpE YXRlOiBUaHUsIDI1IE5vdiAyMDIxIDE4OjIyOjE0ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxLzZd IE5ldyBwYWNrYWdlOiBxdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzLTAuMC4wLjIKCi0tLQog c3JjcGtncy9xdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzL3RlbXBsYXRlIHwgMTkgKysrKysr KysrKysrKysrKysrKwogc3JjcGtncy9xdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVtYXBzL3VwZGF0 ZSAgIHwgIDIgKysKIDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy90ZW1wbGF0ZQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy91 cGRhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0bG9jYXRpb24tcGx1Z2luLWdvb2dsZW1hcHMv dGVtcGxhdGUgYi9zcmNwa2dzL3F0bG9jYXRpb24tcGx1Z2luLWdvb2dsZW1hcHMvdGVtcGxhdGUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43NTQyNzFlM2M3ZGEKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0bG9jYXRpb24tcGx1Z2luLWdvb2dsZW1hcHMvdGVt cGxhdGUKQEAgLTAsMCArMSwxOSBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAncXRsb2NhdGlvbi1w bHVnaW4tZ29vZ2xlbWFwcycKK3BrZ25hbWU9cXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcwor X2Rpc3Rwa2duYW1lPWdvb2dsZW1hcHMKK3ZlcnNpb249MC4wLjAuMgorcmV2aXNpb249MQord3Jr c3JjPSR7X2Rpc3Rwa2duYW1lfS12LiR7dmVyc2lvbn0KK2J1aWxkX3N0eWxlPXFtYWtlCitob3N0 bWFrZWRlcGVuZHM9InF0NS1xbWFrZSBxdDUtZGV2ZWwiCittYWtlZGVwZW5kcz0icXQ1LWRldmVs IHF0NS1sb2NhdGlvbi1kZXZlbCBxdDUtZGVjbGFyYXRpdmUtZGV2ZWwiCitzaG9ydF9kZXNjPSJH b29nbGVtYXBzIHBsdWdpbiBmb3IgUXRMb2NhdGlvbiIKK21haW50YWluZXI9IkFsYW4gQnJvd24g PGFkYnJvd25Acm9ja2V0bWFpbC5jb20+IgorbGljZW5zZT0iTUlUIgoraG9tZXBhZ2U9Imh0dHBz Oi8vZ2l0aHViLmNvbS92bGFkZXN0L2dvb2dsZW1hcHMiCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0 aHViLmNvbS92bGFkZXN0LyR7X2Rpc3Rwa2duYW1lfS9hcmNoaXZlL3YuJHt2ZXJzaW9ufS50YXIu Z3oiCitjaGVja3N1bT1hYWMyZjk5NTkxN2U3NWRmZjI4NjFjZTM4MDQ5Y2NiYjFjZDUxZDA3OGNi NDVkNzgxNThjYWE0MGE5N2E1YmYwCisKK3Bvc3RfaW5zdGFsbCgpIHsKKwl2bGljZW5zZSBMSUNF TlNFLnR4dAorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdGxvY2F0aW9uLXBsdWdpbi1nb29nbGVt YXBzL3VwZGF0ZSBiL3NyY3BrZ3MvcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy91cGRhdGUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43YjY4ZjliZTYyZTMKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0bG9jYXRpb24tcGx1Z2luLWdvb2dsZW1hcHMvdXBk YXRlCkBAIC0wLDAgKzEsMiBAQAorcGtnbmFtZT1nb29nbGVtYXBzCitwYXR0ZXJuPSJ2XC5cS1tc ZFwuXSsoPz1cLnRhclwuZ3opIgoKRnJvbSA4NDE5ODg4YjA0NDgwM2ViMDc1NDVkYmY0N2IwODk5 NTY1MWY3OTA2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJyb3duIDxhZGJy b3duQHJvY2tldG1haWwuY29tPgpEYXRlOiBUaHUsIDI1IE5vdiAyMDIxIDE4OjIzOjA0ICswMDAw ClN1YmplY3Q6IFtQQVRDSCAyLzZdIE5ldyBwYWNrYWdlOiBsaWJkaXZlY29tcHV0ZXItc3Vic3Vy ZmFjZS01LjAuNQoKLS0tCiBzcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlLWRldmVs ICAgIHwgIDEgKwogc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS90ZW1wbGF0ZSB8 IDMwICsrKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3Vy ZmFjZS91cGRhdGUgICB8ICAyICsrCiAzIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKykK IGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlLWRl dmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFj ZS90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1 YnN1cmZhY2UvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vi c3VyZmFjZS1kZXZlbCBiL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtZGV2ZWwK bmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi4zNTAwZTBiNWIwZDUKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlLWRldmVs CkBAIC0wLDAgKzEgQEAKK2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3Vy ZmFjZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UvdGVtcGxh dGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zMGI1OTVkZmQxNzAK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3Rl bXBsYXRlCkBAIC0wLDAgKzEsMzAgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYmRpdmVjb21w dXRlci1zdWJzdXJmYWNlJworcGtnbmFtZT1saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZQordmVy c2lvbj01LjAuNQorcmV2aXNpb249MQord3Jrc3JjPSJsaWJkaXZlY29tcHV0ZXItc3Vic3VyZmFj ZS1icmFuY2gtJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2hvc3RtYWtl ZGVwZW5kcz0ibGlidG9vbCBhdXRvbWFrZSBhdXRvY29uZiBwa2ctY29uZmlnIgorc2hvcnRfZGVz Yz0iU3Vic3VyZmFjZSB2ZXJzaW9uIG9mIGxpYmRpdmVjb21wdXRlciIKK21haW50YWluZXI9IkFs YW4gQnJvd24gPGFkYnJvd25Acm9ja2V0bWFpbC5jb20+IgorbGljZW5zZT0iTEdQTC0yLjEtb25s eSIKK2hvbWVwYWdlPSJodHRwczovL3N1YnN1cmZhY2UtZGl2ZWxvZy5vcmcvIgorZGlzdGZpbGVz PSIke2hvbWVwYWdlfS9kb3dubG9hZHMvJHtwa2duYW1lfS1icmFuY2gtJHt2ZXJzaW9ufS50Z3oi CitjaGVja3N1bT05NGI2OWQxYjEyZDNjMzUzNzZmZGNlOTYwODhjMGNjZTIxMzkyYTM3YTBmZjY3 OTkxMjQ2MTcxZDIyMDU1YzAyCitzaGxpYl9wcm92aWRlcz0ibGliZGl2ZWNvbXB1dGVyLnNvIgor CitwcmVfY29uZmlndXJlKCkgeworCWF1dG9yZWNvbmYgLWZpCit9CisKK2xpYmRpdmVjb21wdXRl ci1zdWJzdXJmYWNlLWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0k e3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxl cyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xp Yi9wa2djb25maWcKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJdm1vdmUgInVzci9saWIvKi5h IgorCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjMKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dz L2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3VwZGF0ZSBiL3NyY3BrZ3MvbGliZGl2ZWNvbXB1 dGVyLXN1YnN1cmZhY2UvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uNjFmZmYyNDU5NzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJkaXZlY29t cHV0ZXItc3Vic3VyZmFjZS91cGRhdGUKQEAgLTAsMCArMSwyIEBACitzaXRlPSIke2hvbWVwYWdl fS9kb3dubG9hZHMiCitwYXR0ZXJuPSIke3BrZ25hbWV9LWJyYW5jaC1cS1tcZFwuXSsoPz1cLnRn eikiCgpGcm9tIDJhNGE5ODI5MWIzOGVkMWNhODA0MDIwNmE3YzhhNDliOTBhYjNiZTIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsYW4gQnJvd24gPGFkYnJvd25Acm9ja2V0bWFpbC5j b20+CkRhdGU6IFRodSwgMjUgTm92IDIwMjEgMTg6MjM6MzkgKzAwMDAKU3ViamVjdDogW1BBVENI IDMvNl0gTmV3IHBhY2thZ2U6IFN1YnN1cmZhY2UtNS4wLjUKCi0tLQogc3JjcGtncy9TdWJzdXJm YWNlL3RlbXBsYXRlIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdl ZCwgMjQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvU3Vic3VyZmFj ZS90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvU3Vic3VyZmFjZS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvU3Vic3VyZmFjZS90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjRiYzgwNTY5YWVlYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvU3Vic3Vy ZmFjZS90ZW1wbGF0ZQpAQCAtMCwwICsxLDI0IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdTdWJz dXJmYWNlJworcGtnbmFtZT1TdWJzdXJmYWNlCit2ZXJzaW9uPTUuMC41CityZXZpc2lvbj0xCiti dWlsZF9zdHlsZT1jbWFrZQorY29uZmlndXJlX2FyZ3M9Ii1EU1VCU1VSRkFDRV9UQVJHRVRfRVhF Q1VUQUJMRT1EZXNrdG9wRXhlY3V0YWJsZQorIC1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIC1E QlRTVVBQT1JUPU9OIC1ETk9fVVNFUk1BTlVBTD1PRkYKKyAtRE5PX1BSSU5USU5HPU9GRiIKK21h a2VfY21kPW1ha2UKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvY29uZiBhdXRvbWFr ZSBsaWJ0b29sIHF0NS1kZXZlbCIKK21ha2VkZXBlbmRzPSJsaWJkaXZlY29tcHV0ZXItc3Vic3Vy ZmFjZS1kZXZlbCBsaWJibHVldG9vdGgtZGV2ZWwgbGliY3VybC1kZXZlbAorIHNxbGl0ZS1kZXZl bCBsaWJzc2gyLWRldmVsIGV1ZGV2LWxpYnVkZXYtZGV2ZWwgbGlidXNiLWRldmVsIGxpYnhtbDIt ZGV2ZWwKKyBsaWJ4c2x0LWRldmVsIHF0NS1kZXZlbCBxdDUtY29ubmVjdGl2aXR5LWRldmVsIHF0 NS1kZWNsYXJhdGl2ZS1kZXZlbAorIHF0NS1sb2NhdGlvbi1kZXZlbCBxdDUtc2NyaXB0LWRldmVs IHF0NS1zdmctZGV2ZWwgcXQ1LXRvb2xzLWRldmVsCisgcXQ1LXdlYmtpdC1kZXZlbCBibHVlei1x dDUtZGV2ZWwgbGliZ2l0Mi1kZXZlbCBsaWJ6aXAtZGV2ZWwgbGlibXRwLWRldmVsIgorZGVwZW5k cz0ibGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UgcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFw cyIKK3Nob3J0X2Rlc2M9Ik11bHRpLXBsYXRmb3JtIGRpdmVsb2cgc29mdHdhcmUiCittYWludGFp bmVyPSJBbGFuIEJyb3duIDxhZGJyb3duQHJvY2tldG1haWwuY29tPiIKK2xpY2Vuc2U9IkdQTC0y LjAtb25seSIKK2hvbWVwYWdlPSJodHRwczovL3N1YnN1cmZhY2UtZGl2ZWxvZy5vcmcvIgorZGlz dGZpbGVzPSIke2hvbWVwYWdlfS9kb3dubG9hZHMvJHtwa2duYW1lfS0ke3ZlcnNpb259LnRneiIK K2NoZWNrc3VtPWZlMGZmOGIxZjY1NDQxYjJhNzZhMjdhMDA3MmZlNWZhYWY3MzRlZTA4ZjVlMTk4 NDU0MDBkMGZjM2QzNTU0MWMKKworZXhwb3J0IENNQUtFX0dFTkVSQVRPUj0iVW5peCBNYWtlZmls ZXMiCgpGcm9tIDAwZTE2MDIwOGZhMjdkNDExOTc4OTg2YzM5ZTg4ZTE3MTBjNzFhZGIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUx PUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRl OiBGcmksIDI2IE5vdiAyMDIxIDEwOjM2OjA0ICswNzAwClN1YmplY3Q6IFtQQVRDSCA0LzZdIGZp eHVwISBOZXcgcGFja2FnZTogcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy0wLjAuMC4yCgot LS0KIHNyY3BrZ3MvcXRsb2NhdGlvbi1wbHVnaW4tZ29vZ2xlbWFwcy90ZW1wbGF0ZSB8IDcgKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3F0bG9jYXRpb24tcGx1Z2luLWdvb2dsZW1hcHMvdGVtcGxhdGUg Yi9zcmNwa2dzL3F0bG9jYXRpb24tcGx1Z2luLWdvb2dsZW1hcHMvdGVtcGxhdGUKaW5kZXggNzU0 MjcxZTNjN2RhLi5lZjMwMWQ1NDIyNzMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXRsb2NhdGlvbi1w bHVnaW4tZ29vZ2xlbWFwcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0bG9jYXRpb24tcGx1Z2lu LWdvb2dsZW1hcHMvdGVtcGxhdGUKQEAgLTEsMTcgKzEsMTYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ3F0bG9jYXRpb24tcGx1Z2luLWdvb2dsZW1hcHMnCiBwa2duYW1lPXF0bG9jYXRpb24tcGx1 Z2luLWdvb2dsZW1hcHMKLV9kaXN0cGtnbmFtZT1nb29nbGVtYXBzCiB2ZXJzaW9uPTAuMC4wLjIK IHJldmlzaW9uPTEKLXdya3NyYz0ke19kaXN0cGtnbmFtZX0tdi4ke3ZlcnNpb259Cit3cmtzcmM9 Z29vZ2xlbWFwcy12LiR7dmVyc2lvbn0KIGJ1aWxkX3N0eWxlPXFtYWtlCiBob3N0bWFrZWRlcGVu ZHM9InF0NS1xbWFrZSBxdDUtZGV2ZWwiCiBtYWtlZGVwZW5kcz0icXQ1LWRldmVsIHF0NS1sb2Nh dGlvbi1kZXZlbCBxdDUtZGVjbGFyYXRpdmUtZGV2ZWwiCi1zaG9ydF9kZXNjPSJHb29nbGVtYXBz IHBsdWdpbiBmb3IgUXRMb2NhdGlvbiIKK3Nob3J0X2Rlc2M9Ikdvb2dsZSBNYXBzIHBsdWdpbiBm b3IgUXRMb2NhdGlvbiIKIG1haW50YWluZXI9IkFsYW4gQnJvd24gPGFkYnJvd25Acm9ja2V0bWFp bC5jb20+IgogbGljZW5zZT0iTUlUIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS92bGFk ZXN0L2dvb2dsZW1hcHMiCi1kaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS92bGFkZXN0LyR7 X2Rpc3Rwa2duYW1lfS9hcmNoaXZlL3YuJHt2ZXJzaW9ufS50YXIuZ3oiCitkaXN0ZmlsZXM9Imh0 dHBzOi8vZ2l0aHViLmNvbS92bGFkZXN0L2dvb2dsZW1hcHMvYXJjaGl2ZS92LiR7dmVyc2lvbn0u dGFyLmd6IgogY2hlY2tzdW09YWFjMmY5OTU5MTdlNzVkZmYyODYxY2UzODA0OWNjYmIxY2Q1MWQw NzhjYjQ1ZDc4MTU4Y2FhNDBhOTdhNWJmMAogCiBwb3N0X2luc3RhbGwoKSB7CgpGcm9tIGY5OWVk MjQxZmEzNDUyYTkzZTYzYWMxOWVhOWFlZWExNDc1MTc0YzAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9 QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBGcmksIDI2IE5vdiAy MDIxIDEwOjU3OjQxICswNzAwClN1YmplY3Q6IFtQQVRDSCA1LzZdIGZpeHVwISBOZXcgcGFja2Fn ZTogbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UtNS4wLjUKCi0tLQogLi4uL3BhdGNoZXMvUEFH RVNJWkUucGF0Y2ggICAgICAgICAgICAgICAgICAgIHwgODczICsrKysrKysrKysrKysrKysrKwog c3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS90ZW1wbGF0ZSAgIHwgICAyICstCiAy IGZpbGVzIGNoYW5nZWQsIDg3NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS9wYXRjaGVzL1BB R0VTSVpFLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vic3Vy ZmFjZS9wYXRjaGVzL1BBR0VTSVpFLnBhdGNoIGIvc3JjcGtncy9saWJkaXZlY29tcHV0ZXItc3Vi c3VyZmFjZS9wYXRjaGVzL1BBR0VTSVpFLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uN2JhNTRmMTE4MDk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS9wYXRjaGVzL1BBR0VTSVpFLnBhdGNoCkBAIC0wLDAg KzEsODczIEBACistLS0gYS9zcmMvbGlxdWl2aXNpb25fbHlueC5jCisrKysgYi9zcmMvbGlxdWl2 aXNpb25fbHlueC5jCitAQCAtNjEsMTYgKzYxLDE2IEBACisgI2RlZmluZSBNQVhSRVRSSUVTIDIK KyAjZGVmaW5lIE1BWFBBQ0tFVCAxMgorICNkZWZpbmUgU0VHTUVOVFNJWkUgMHg0MDAKKy0jZGVm aW5lIFBBR0VTSVpFICAgIDB4MTAwMAorKyNkZWZpbmUgWFBBR0VTSVpFICAgIDB4MTAwMAorICNk ZWZpbmUgTUVNU0laRSAgICAgMHgyMDAwMDAKKyAKKy0jZGVmaW5lIFJCX0xPR0JPT0tfQkVHSU4g ICAgICAgICAoMSAqIFBBR0VTSVpFKQorLSNkZWZpbmUgUkJfTE9HQk9PS19FTkQgICAgICAgICAg ICgyNSAqIFBBR0VTSVpFKQorKyNkZWZpbmUgUkJfTE9HQk9PS19CRUdJTiAgICAgICAgICgxICog WFBBR0VTSVpFKQorKyNkZWZpbmUgUkJfTE9HQk9PS19FTkQgICAgICAgICAgICgyNSAqIFhQQUdF U0laRSkKKyAjZGVmaW5lIFJCX0xPR0JPT0tfU0laRSAgICAgICAgICAoUkJfTE9HQk9PS19FTkQg LSBSQl9MT0dCT09LX0JFR0lOKQorICNkZWZpbmUgUkJfTE9HQk9PS19ESVNUQU5DRShhLGIpIHJp bmdidWZmZXJfZGlzdGFuY2UgKGEsIGIsIDEsIFJCX0xPR0JPT0tfQkVHSU4sIFJCX0xPR0JPT0tf RU5EKQorIAorLSNkZWZpbmUgUkJfUFJPRklMRV9CRUdJTiAgICAgICAgICgyNSAqIFBBR0VTSVpF KQorLSNkZWZpbmUgUkJfUFJPRklMRV9FTkQgICAgICAgICAgICg1MDAgKiBQQUdFU0laRSkKKysj ZGVmaW5lIFJCX1BST0ZJTEVfQkVHSU4gICAgICAgICAoMjUgKiBYUEFHRVNJWkUpCisrI2RlZmlu ZSBSQl9QUk9GSUxFX0VORCAgICAgICAgICAgKDUwMCAqIFhQQUdFU0laRSkKKyAjZGVmaW5lIFJC X1BST0ZJTEVfU0laRSAgICAgICAgICAoUkJfUFJPRklMRV9FTkQgLSBSQl9QUk9GSUxFX0JFR0lO KQorICNkZWZpbmUgUkJfUFJPRklMRV9ESVNUQU5DRShhLGIpIHJpbmdidWZmZXJfZGlzdGFuY2Ug KGEsIGIsIDEsIFJCX1BST0ZJTEVfQkVHSU4sIFJCX1BST0ZJTEVfRU5EKQorIAorQEAgLTMxMSw4 ICszMTEsOCBAQCBsaXF1aXZpc2lvbl9seW54X2RldmljZV9yZWFkIChkY19kZXZpY2VfCisgCQly ZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdTOworIAorIAkvLyBHZXQgdGhlIHBhZ2UgYW5kIHNl Z21lbnQgbnVtYmVyLgorLQl1bnNpZ25lZCBpbnQgcGFnZSAgICA9IChhZGRyZXNzIC8gUEFHRVNJ WkUpOworLQl1bnNpZ25lZCBpbnQgc2VnbWVudCA9IChhZGRyZXNzICUgUEFHRVNJWkUpIC8gU0VH TUVOVFNJWkU7CisrCXVuc2lnbmVkIGludCBwYWdlICAgID0gKGFkZHJlc3MgLyBYUEFHRVNJWkUp OworKwl1bnNpZ25lZCBpbnQgc2VnbWVudCA9IChhZGRyZXNzICUgWFBBR0VTSVpFKSAvIFNFR01F TlRTSVpFOworIAorIAl1bnNpZ25lZCBpbnQgbmJ5dGVzID0gMDsKKyAJd2hpbGUgKG5ieXRlcyA8 IHNpemUpIHsKK0BAIC0zMzYsNyArMzM2LDcgQEAgbGlxdWl2aXNpb25fbHlueF9kZXZpY2VfcmVh ZCAoZGNfZGV2aWNlXworIAorIAkJbmJ5dGVzICs9IFNFR01FTlRTSVpFOworIAkJc2VnbWVudCsr OworLQkJaWYgKHNlZ21lbnQgPT0gKFBBR0VTSVpFIC8gU0VHTUVOVFNJWkUpKSB7CisrCQlpZiAo c2VnbWVudCA9PSAoWFBBR0VTSVpFIC8gU0VHTUVOVFNJWkUpKSB7CisgCQkJc2VnbWVudCA9IDA7 CisgCQkJcGFnZSsrOworIAkJfQorQEAgLTQxMCwxMyArNDEwLDEzIEBAIGxpcXVpdmlzaW9uX2x5 bnhfZGV2aWNlX2ZvcmVhY2ggKGRjX2RldmkKKyAJdW5zaWduZWQgaW50IGhlYWRlcnNpemUgPSAo bW9kZWwgPT0gWEVOKSA/IFNaX0hFQURFUl9YRU4gOiBTWl9IRUFERVJfT1RIRVI7CisgCisgCS8v IEdldCB0aGUgbnVtYmVyIG9mIGhlYWRlcnMgcGVyIHBhZ2UuCistCXVuc2lnbmVkIGludCBucGFn ZXMgPSBQQUdFU0laRSAvIGhlYWRlcnNpemU7CisrCXVuc2lnbmVkIGludCBucGFnZXMgPSBYUEFH RVNJWkUgLyBoZWFkZXJzaXplOworIAorIAkvLyBHZXQgdGhlIGxvZ2Jvb2sgcG9pbnRlcnMuCisg CXVuc2lnbmVkIGludCBiZWdpbiA9IGFycmF5X3VpbnQxNl9sZSAoY29uZmlnICsgMHg0Nik7Cisg CXVuc2lnbmVkIGludCBlbmQgICA9IGFycmF5X3VpbnQxNl9sZSAoY29uZmlnICsgMHg0OCk7Cist CXVuc2lnbmVkIGludCByYl9sb2dib29rX2JlZ2luID0gUkJfTE9HQk9PS19CRUdJTiArIChiZWdp biAvIG5wYWdlcykgKiBQQUdFU0laRSArIChiZWdpbiAlIG5wYWdlcykgKiBoZWFkZXJzaXplOwor LQl1bnNpZ25lZCBpbnQgcmJfbG9nYm9va19lbmQgICA9IFJCX0xPR0JPT0tfQkVHSU4gKyAoZW5k ICAgLyBucGFnZXMpICogUEFHRVNJWkUgKyAoZW5kICAgJSBucGFnZXMpICogaGVhZGVyc2l6ZTsK KysJdW5zaWduZWQgaW50IHJiX2xvZ2Jvb2tfYmVnaW4gPSBSQl9MT0dCT09LX0JFR0lOICsgKGJl Z2luIC8gbnBhZ2VzKSAqIFhQQUdFU0laRSArIChiZWdpbiAlIG5wYWdlcykgKiBoZWFkZXJzaXpl OworKwl1bnNpZ25lZCBpbnQgcmJfbG9nYm9va19lbmQgICA9IFJCX0xPR0JPT0tfQkVHSU4gKyAo ZW5kICAgLyBucGFnZXMpICogWFBBR0VTSVpFICsgKGVuZCAgICUgbnBhZ2VzKSAqIGhlYWRlcnNp emU7CisgCWlmIChyYl9sb2dib29rX2JlZ2luIDwgUkJfTE9HQk9PS19CRUdJTiB8fCByYl9sb2di b29rX2JlZ2luID4gUkJfTE9HQk9PS19FTkQgfHwKKyAJCXJiX2xvZ2Jvb2tfZW5kICAgPCBSQl9M T0dCT09LX0JFR0lOIHx8IHJiX2xvZ2Jvb2tfZW5kICAgPiBSQl9MT0dCT09LX0VORCkgeworIAkJ RVJST1IgKGFic3RyYWN0LT5jb250ZXh0LCAiSW52YWxpZCBsb2dib29rIHBvaW50ZXJzICglMDR4 LCAlMDR4KS4iLAorQEAgLTQ3OCw4ICs0NzgsOCBAQCBsaXF1aXZpc2lvbl9seW54X2RldmljZV9m b3JlYWNoIChkY19kZXZpCisgCQkJYWRkcmVzcyA9IFJCX0xPR0JPT0tfRU5EOworIAorIAkJLy8g U2tpcCB0aGUgcGFkZGluZyBieXRlcy4KKy0JCWlmICgoYWRkcmVzcyAlIFBBR0VTSVpFKSA9PSAw KSB7CistCQkJdW5zaWduZWQgaW50IHBhZGRpbmcgPSBQQUdFU0laRSAlIGhlYWRlcnNpemU7Cisr CQlpZiAoKGFkZHJlc3MgJSBYUEFHRVNJWkUpID09IDApIHsKKysJCQl1bnNpZ25lZCBpbnQgcGFk ZGluZyA9IFhQQUdFU0laRSAlIGhlYWRlcnNpemU7CisgCQkJdW5zaWduZWQgY2hhciBkdW1teVtT Wl9IRUFERVJfTUFYXSA9IHswfTsKKyAJCQlzdGF0dXMgPSBkY19yYnN0cmVhbV9yZWFkIChyYmxv Z2Jvb2ssICZwcm9ncmVzcywgZHVtbXksIHBhZGRpbmcpOworIAkJCWlmIChzdGF0dXMgIT0gRENf U1RBVFVTX1NVQ0NFU1MpIHsKKy0tLSBhL3NyYy9vY2VhbmljX2F0b20yLmMKKysrKyBiL3NyYy9v Y2VhbmljX2F0b20yLmMKK0BAIC05OTQsMTEgKzk5NCwxMSBAQCBvY2VhbmljX2F0b20yX2Rldmlj ZV92ZXJzaW9uIChkY19kZXZpY2VfCisgCWlmICghSVNJTlNUQU5DRSAoYWJzdHJhY3QpKQorIAkJ cmV0dXJuIERDX1NUQVRVU19JTlZBTElEQVJHUzsKKyAKKy0JaWYgKHNpemUgPCBQQUdFU0laRSkK KysJaWYgKHNpemUgPCBYUEFHRVNJWkUpCisgCQlyZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdT OworIAorIAl1bnNpZ25lZCBjaGFyIGNvbW1hbmRbXSA9IHtDTURfVkVSU0lPTn07CistCWRjX3N0 YXR1c190IHJjID0gb2NlYW5pY19hdG9tMl90cmFuc2ZlciAoZGV2aWNlLCBjb21tYW5kLCBzaXpl b2YgKGNvbW1hbmQpLCBBQ0ssIGRhdGEsIFBBR0VTSVpFLCAxKTsKKysJZGNfc3RhdHVzX3QgcmMg PSBvY2VhbmljX2F0b20yX3RyYW5zZmVyIChkZXZpY2UsIGNvbW1hbmQsIHNpemVvZiAoY29tbWFu ZCksIEFDSywgZGF0YSwgWFBBR0VTSVpFLCAxKTsKKyAJaWYgKHJjICE9IERDX1NUQVRVU19TVUND RVNTKQorIAkJcmV0dXJuIHJjOworIAorQEAgLTEwMTIsOCArMTAxMiw4IEBAIG9jZWFuaWNfYXRv bTJfZGV2aWNlX3JlYWQgKGRjX2RldmljZV90ICoKKyAJb2NlYW5pY19hdG9tMl9kZXZpY2VfdCAq ZGV2aWNlID0gKG9jZWFuaWNfYXRvbTJfZGV2aWNlX3QqKSBhYnN0cmFjdDsKKyAJY29uc3Qgb2Nl YW5pY19jb21tb25fbGF5b3V0X3QgKmxheW91dCA9IGRldmljZS0+YmFzZS5sYXlvdXQ7CisgCist CWlmICgoYWRkcmVzcyAlIFBBR0VTSVpFICE9IDApIHx8CistCQkoc2l6ZSAgICAlIFBBR0VTSVpF ICE9IDApKQorKwlpZiAoKGFkZHJlc3MgJSBYUEFHRVNJWkUgIT0gMCkgfHwKKysJCShzaXplICAg ICUgWFBBR0VTSVpFICE9IDApKQorIAkJcmV0dXJuIERDX1NUQVRVU19JTlZBTElEQVJHUzsKKyAK KyAJLy8gUGljayB0aGUgY29ycmVjdCByZWFkIGNvbW1hbmQgYW5kIG51bWJlciBvZiBjaGVja3N1 bSBieXRlcy4KK0BAIC0xMDM3LDcgKzEwMzcsNyBAQCBvY2VhbmljX2F0b20yX2RldmljZV9yZWFk IChkY19kZXZpY2VfdCAqCisgCX0KKyAKKyAJLy8gUGljayB0aGUgYmVzdCBwYWdlc2l6ZSB0byB1 c2UuCistCXVuc2lnbmVkIGludCBwYWdlc2l6ZSA9IGRldmljZS0+YmlncGFnZSAqIFBBR0VTSVpF OworKwl1bnNpZ25lZCBpbnQgcGFnZXNpemUgPSBkZXZpY2UtPmJpZ3BhZ2UgKiBYUEFHRVNJWkU7 CisgCisgCS8vIEhpZ2ggbWVtb3J5IHN0YXRlLgorIAl1bnNpZ25lZCBpbnQgaGlnaG1lbSA9IDA7 CitAQCAtMTA0OSw3ICsxMDQ5LDcgQEAgb2NlYW5pY19hdG9tMl9kZXZpY2VfcmVhZCAoZGNfZGV2 aWNlX3QgKgorIAkJCWhpZ2htZW0gPSBsYXlvdXQtPmhpZ2htZW07CisgCQkJcmVhZF9jbWQgPSBD TURfUkVBRDE2SEk7CisgCQkJY3JjX3NpemUgPSAyOworLQkJCXBhZ2VzaXplID0gMTYgKiBQQUdF U0laRTsKKysJCQlwYWdlc2l6ZSA9IDE2ICogWFBBR0VTSVpFOworIAkJfQorIAorIAkJLy8gQ2Fs Y3VsYXRlIHRoZSBwYWdlIG51bWJlciBhZnRlciBtYXBwaW5nIHRoZSB2aXJ0dWFsIGhpZ2ggbWVt b3J5CitAQCAtMTA1OCw3ICsxMDU4LDcgQEAgb2NlYW5pY19hdG9tMl9kZXZpY2VfcmVhZCAoZGNf ZGV2aWNlX3QgKgorIAorIAkJaWYgKHBhZ2UgIT0gZGV2aWNlLT5jYWNoZWRfcGFnZSB8fCBoaWdo bWVtICE9IGRldmljZS0+Y2FjaGVkX2hpZ2htZW0pIHsKKyAJCQkvLyBSZWFkIHRoZSBwYWNrYWdl LgorLQkJCXVuc2lnbmVkIGludCBudW1iZXIgPSBoaWdobWVtID8gcGFnZSA6IHBhZ2UgKiBkZXZp Y2UtPmJpZ3BhZ2U7IC8vIFRoaXMgaXMgYWx3YXlzIFBBR0VTSVpFLCBldmVuIGluIGJpZyBwYWdl IG1vZGUuCisrCQkJdW5zaWduZWQgaW50IG51bWJlciA9IGhpZ2htZW0gPyBwYWdlIDogcGFnZSAq IGRldmljZS0+YmlncGFnZTsgLy8gVGhpcyBpcyBhbHdheXMgWFBBR0VTSVpFLCBldmVuIGluIGJp ZyBwYWdlIG1vZGUuCisgCQkJdW5zaWduZWQgY2hhciBjb21tYW5kW10gPSB7cmVhZF9jbWQsCisg CQkJCQkobnVtYmVyID4+IDgpICYgMHhGRiwgLy8gaGlnaAorIAkJCQkJKG51bWJlciAgICAgKSAm IDB4RkYsIC8vIGxvdworQEAgLTEwOTMsOCArMTA5Myw4IEBAIG9jZWFuaWNfYXRvbTJfZGV2aWNl X3dyaXRlIChkY19kZXZpY2VfdAorIHsKKyAJb2NlYW5pY19hdG9tMl9kZXZpY2VfdCAqZGV2aWNl ID0gKG9jZWFuaWNfYXRvbTJfZGV2aWNlX3QqKSBhYnN0cmFjdDsKKyAKKy0JaWYgKChhZGRyZXNz ICUgUEFHRVNJWkUgIT0gMCkgfHwKKy0JCShzaXplICAgICUgUEFHRVNJWkUgIT0gMCkpCisrCWlm ICgoYWRkcmVzcyAlIFhQQUdFU0laRSAhPSAwKSB8fAorKwkJKHNpemUgICAgJSBYUEFHRVNJWkUg IT0gMCkpCisgCQlyZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdTOworIAorIAkvLyBJbnZhbGlk YXRlIHRoZSBjYWNoZS4KK0BAIC0xMTA0LDcgKzExMDQsNyBAQCBvY2VhbmljX2F0b20yX2Rldmlj ZV93cml0ZSAoZGNfZGV2aWNlX3QKKyAJdW5zaWduZWQgaW50IG5ieXRlcyA9IDA7CisgCXdoaWxl IChuYnl0ZXMgPCBzaXplKSB7CisgCQkvLyBQcmVwYXJlIHRvIHdyaXRlIHRoZSBwYWNrYWdlLgor LQkJdW5zaWduZWQgaW50IG51bWJlciA9IGFkZHJlc3MgLyBQQUdFU0laRTsKKysJCXVuc2lnbmVk IGludCBudW1iZXIgPSBhZGRyZXNzIC8gWFBBR0VTSVpFOworIAkJdW5zaWduZWQgY2hhciBwcmVw YXJlW10gPSB7Q01EX1dSSVRFLAorIAkJCQkobnVtYmVyID4+IDgpICYgMHhGRiwgLy8gaGlnaAor IAkJCQkobnVtYmVyICAgICApICYgMHhGRiwgLy8gbG93CitAQCAtMTExNCwxNiArMTExNCwxNiBA QCBvY2VhbmljX2F0b20yX2RldmljZV93cml0ZSAoZGNfZGV2aWNlX3QKKyAJCQlyZXR1cm4gcmM7 CisgCisgCQkvLyBXcml0ZSB0aGUgcGFja2FnZS4KKy0JCXVuc2lnbmVkIGNoYXIgY29tbWFuZFtQ QUdFU0laRSArIDFdID0gezB9OworLQkJbWVtY3B5IChjb21tYW5kLCBkYXRhLCBQQUdFU0laRSk7 CistCQljb21tYW5kW1BBR0VTSVpFXSA9IGNoZWNrc3VtX2FkZF91aW50OCAoY29tbWFuZCwgUEFH RVNJWkUsIDB4MDApOworKwkJdW5zaWduZWQgY2hhciBjb21tYW5kW1hQQUdFU0laRSArIDFdID0g ezB9OworKwkJbWVtY3B5IChjb21tYW5kLCBkYXRhLCBYUEFHRVNJWkUpOworKwkJY29tbWFuZFtY UEFHRVNJWkVdID0gY2hlY2tzdW1fYWRkX3VpbnQ4IChjb21tYW5kLCBYUEFHRVNJWkUsIDB4MDAp OworIAkJcmMgPSBvY2VhbmljX2F0b20yX3RyYW5zZmVyIChkZXZpY2UsIGNvbW1hbmQsIHNpemVv ZiAoY29tbWFuZCksIEFDSywgTlVMTCwgMCwgMCk7CisgCQlpZiAocmMgIT0gRENfU1RBVFVTX1NV Q0NFU1MpCisgCQkJcmV0dXJuIHJjOworIAorLQkJbmJ5dGVzICs9IFBBR0VTSVpFOworLQkJYWRk cmVzcyArPSBQQUdFU0laRTsKKy0JCWRhdGEgKz0gUEFHRVNJWkU7CisrCQluYnl0ZXMgKz0gWFBB R0VTSVpFOworKwkJYWRkcmVzcyArPSBYUEFHRVNJWkU7CisrCQlkYXRhICs9IFhQQUdFU0laRTsK KyAJfQorIAorIAlyZXR1cm4gRENfU1RBVFVTX1NVQ0NFU1M7CistLS0gYS9zcmMvb2NlYW5pY19h dG9tMl9wYXJzZXIuYworKysrIGIvc3JjL29jZWFuaWNfYXRvbTJfcGFyc2VyLmMKK0BAIC0xNjUs OCArMTY1LDggQEAgb2NlYW5pY19hdG9tMl9wYXJzZXJfY3JlYXRlIChkY19wYXJzZXJfdAorIAor IAkvLyBTZXQgdGhlIGRlZmF1bHQgdmFsdWVzLgorIAlwYXJzZXItPm1vZGVsID0gbW9kZWw7Cist CXBhcnNlci0+aGVhZGVyc2l6ZSA9IDkgKiBQQUdFU0laRSAvIDI7CistCXBhcnNlci0+Zm9vdGVy c2l6ZSA9IDIgKiBQQUdFU0laRSAvIDI7CisrCXBhcnNlci0+aGVhZGVyc2l6ZSA9IDkgKiBYUEFH RVNJWkUgLyAyOworKwlwYXJzZXItPmZvb3RlcnNpemUgPSAyICogWFBBR0VTSVpFIC8gMjsKKyAJ aWYgKG1vZGVsID09IERBVEFNQVNLIHx8IG1vZGVsID09IENPTVBVTUFTSyB8fAorIAkJbW9kZWwg PT0gR0VPIHx8IG1vZGVsID09IEdFTzIwIHx8CisgCQltb2RlbCA9PSBWRU8yMCB8fCBtb2RlbCA9 PSBWRU8zMCB8fAorQEAgLTE3NywzMCArMTc3LDMwIEBAIG9jZWFuaWNfYXRvbTJfcGFyc2VyX2Ny ZWF0ZSAoZGNfcGFyc2VyX3QKKyAJCW1vZGVsID09IEkyMDAgfHwgbW9kZWwgPT0gSTIwMEMgfHwK KyAJCW1vZGVsID09IEkzMDBDIHx8IG1vZGVsID09IEdFTzQwIHx8CisgCQltb2RlbCA9PSBWRU80 MCB8fCBtb2RlbCA9PSBJNDcwVEMpIHsKKy0JCXBhcnNlci0+aGVhZGVyc2l6ZSAtPSBQQUdFU0la RTsKKysJCXBhcnNlci0+aGVhZGVyc2l6ZSAtPSBYUEFHRVNJWkU7CisgCX0gZWxzZSBpZiAobW9k ZWwgPT0gVlQ0IHx8IG1vZGVsID09IFZUNDEpIHsKKy0JCXBhcnNlci0+aGVhZGVyc2l6ZSArPSBQ QUdFU0laRTsKKysJCXBhcnNlci0+aGVhZGVyc2l6ZSArPSBYUEFHRVNJWkU7CisgCX0gZWxzZSBp ZiAobW9kZWwgPT0gVFgxKSB7CistCQlwYXJzZXItPmhlYWRlcnNpemUgKz0gMiAqIFBBR0VTSVpF OworKwkJcGFyc2VyLT5oZWFkZXJzaXplICs9IDIgKiBYUEFHRVNJWkU7CisgCX0gZWxzZSBpZiAo bW9kZWwgPT0gQVRPTTEgfHwgbW9kZWwgPT0gSTEwMCB8fAorIAkJbW9kZWwgPT0gUFJPUExVUzQp IHsKKy0JCXBhcnNlci0+aGVhZGVyc2l6ZSAtPSAyICogUEFHRVNJWkU7CisrCQlwYXJzZXItPmhl YWRlcnNpemUgLT0gMiAqIFhQQUdFU0laRTsKKyAJfSBlbHNlIGlmIChtb2RlbCA9PSBGMTBBIHx8 IG1vZGVsID09IEYxMEIgfHwKKyAJCW1vZGVsID09IE1VTkRJQUwyIHx8IG1vZGVsID09IE1VTkRJ QUwzKSB7CistCQlwYXJzZXItPmhlYWRlcnNpemUgPSAzICogUEFHRVNJWkU7CisrCQlwYXJzZXIt PmhlYWRlcnNpemUgPSAzICogWFBBR0VTSVpFOworIAkJcGFyc2VyLT5mb290ZXJzaXplID0gMDsK KyAJfSBlbHNlIGlmIChtb2RlbCA9PSBGMTFBIHx8IG1vZGVsID09IEYxMUIpIHsKKy0JCXBhcnNl ci0+aGVhZGVyc2l6ZSA9IDUgKiBQQUdFU0laRTsKKysJCXBhcnNlci0+aGVhZGVyc2l6ZSA9IDUg KiBYUEFHRVNJWkU7CisgCQlwYXJzZXItPmZvb3RlcnNpemUgPSAwOworIAl9IGVsc2UgaWYgKG1v ZGVsID09IEEzMDBDUyB8fCBtb2RlbCA9PSBWVFggfHwKKyAJCW1vZGVsID09IEk0NTBUIHx8IG1v ZGVsID09IEk3NTBUQyB8fAorIAkJbW9kZWwgPT0gSTc3MFIgfHwgbW9kZWwgPT0gU0FHRSB8fAor IAkJbW9kZWwgPT0gQkVBQ09OKSB7CistCQlwYXJzZXItPmhlYWRlcnNpemUgPSA1ICogUEFHRVNJ WkU7CisrCQlwYXJzZXItPmhlYWRlcnNpemUgPSA1ICogWFBBR0VTSVpFOworIAl9IGVsc2UgaWYg KG1vZGVsID09IFBST1BMVVNYKSB7CistCQlwYXJzZXItPmhlYWRlcnNpemUgPSAzICogUEFHRVNJ WkU7CisrCQlwYXJzZXItPmhlYWRlcnNpemUgPSAzICogWFBBR0VTSVpFOworIAl9IGVsc2UgaWYg KG1vZGVsID09IEk1NTBDIHx8IG1vZGVsID09IFdJU0RPTTQpIHsKKy0JCXBhcnNlci0+aGVhZGVy c2l6ZSA9IDUgKiBQQUdFU0laRSAvIDI7CisrCQlwYXJzZXItPmhlYWRlcnNpemUgPSA1ICogWFBB R0VTSVpFIC8gMjsKKyAJfQorIAorIAlwYXJzZXItPnNlcmlhbCA9IHNlcmlhbDsKK0BAIC00Mjgs MTIgKzQyOCwxMiBAQCBvY2VhbmljX2F0b20yX3BhcnNlcl9jYWNoZSAob2NlYW5pY19hdG9tCisg CQlyZXR1cm4gRENfU1RBVFVTX0RBVEFGT1JNQVQ7CisgCisgCS8vIEdldCB0aGUgb2Zmc2V0IHRv IHRoZSBoZWFkZXIgYW5kIGZvb3RlciBzYW1wbGUuCistCXVuc2lnbmVkIGludCBoZWFkZXIgPSBo ZWFkZXJzaXplIC0gUEFHRVNJWkUgLyAyOworKwl1bnNpZ25lZCBpbnQgaGVhZGVyID0gaGVhZGVy c2l6ZSAtIFhQQUdFU0laRSAvIDI7CisgCXVuc2lnbmVkIGludCBmb290ZXIgPSBzaXplIC0gZm9v dGVyc2l6ZTsKKyAJaWYgKHBhcnNlci0+bW9kZWwgPT0gVlQ0IHx8IHBhcnNlci0+bW9kZWwgPT0g VlQ0MSB8fAorIAkJcGFyc2VyLT5tb2RlbCA9PSBBMzAwQUkgfHwgcGFyc2VyLT5tb2RlbCA9PSBW SVNJT04gfHwKKyAJCXBhcnNlci0+bW9kZWwgPT0gWFBBSVIpIHsKKy0JCWhlYWRlciA9IDMgKiBQ QUdFU0laRTsKKysJCWhlYWRlciA9IDMgKiBYUEFHRVNJWkU7CisgCX0KKyAKKyAJLy8gR2V0IHRo ZSBkaXZlIG1vZGUuCitAQCAtNjYwLDcgKzY2MCw3IEBAIG9jZWFuaWNfYXRvbTJfcGFyc2VyX3Zl bmRvciAob2NlYW5pY19hdG8KKyAJCS8vIEdldCB0aGUgc2FtcGxlIHNpemUuCisgCQl1bnNpZ25l ZCBpbnQgbGVuZ3RoID0gc2FtcGxlc2l6ZTsKKyAJCWlmIChzYW1wbGV0eXBlID09IDB4QkIpIHsK Ky0JCQlsZW5ndGggPSBQQUdFU0laRTsKKysJCQlsZW5ndGggPSBYUEFHRVNJWkU7CisgCQl9Cisg CisgCQkvLyBWZW5kb3Igc3BlY2lmaWMgZGF0YQorQEAgLTczOCw3ICs3MzgsNyBAQCBvY2Vhbmlj X2F0b20yX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGRjCisgCQl9CisgCX0KKyAKKy0JdW5zaWdu ZWQgaW50IHNhbXBsZXNpemUgPSBQQUdFU0laRSAvIDI7CisrCXVuc2lnbmVkIGludCBzYW1wbGVz aXplID0gWFBBR0VTSVpFIC8gMjsKKyAJaWYgKHBhcnNlci0+bW9kZSA9PSBGUkVFRElWRSkgewor IAkJaWYgKHBhcnNlci0+bW9kZWwgPT0gRjEwQSB8fCBwYXJzZXItPm1vZGVsID09IEYxMEIgfHwK KyAJCQlwYXJzZXItPm1vZGVsID09IEYxMUEgfHwgcGFyc2VyLT5tb2RlbCA9PSBGMTFCIHx8CitA QCAtNzU0LDcgKzc1NCw3IEBAIG9jZWFuaWNfYXRvbTJfcGFyc2VyX3NhbXBsZXNfZm9yZWFjaCAo ZGMKKyAJCXBhcnNlci0+bW9kZWwgPT0gSTc1MFRDIHx8IHBhcnNlci0+bW9kZWwgPT0gUFJPUExV U1ggfHwKKyAJCXBhcnNlci0+bW9kZWwgPT0gSTc3MFIgfHwgcGFyc2VyLT5tb2RlbCA9PSBJNDcw VEMgfHwKKyAJCXBhcnNlci0+bW9kZWwgPT0gU0FHRSB8fCBwYXJzZXItPm1vZGVsID09IEJFQUNP TikgeworLQkJc2FtcGxlc2l6ZSA9IFBBR0VTSVpFOworKwkJc2FtcGxlc2l6ZSA9IFhQQUdFU0la RTsKKyAJfQorIAorIAl1bnNpZ25lZCBpbnQgaGF2ZV90ZW1wZXJhdHVyZSA9IDEsIGhhdmVfcHJl c3N1cmUgPSAxOworQEAgLTgyNCw3ICs4MjQsNyBAQCBvY2VhbmljX2F0b20yX3BhcnNlcl9zYW1w bGVzX2ZvcmVhY2ggKGRjCisgCQkvLyBsYXJnZXIgc2l6ZS4gQ2hlY2sgd2hldGhlciB3ZSBoYXZl IHRoYXQgbWFueSBieXRlcyBhdmFpbGFibGUuCisgCQl1bnNpZ25lZCBpbnQgbGVuZ3RoID0gc2Ft cGxlc2l6ZTsKKyAJCWlmIChzYW1wbGV0eXBlID09IDB4QkIpIHsKKy0JCQlsZW5ndGggPSBQQUdF U0laRTsKKysJCQlsZW5ndGggPSBYUEFHRVNJWkU7CisgCQkJaWYgKG9mZnNldCArIGxlbmd0aCA+ IHNpemUgLSBwYXJzZXItPmZvb3RlcnNpemUpIHsKKyAJCQkJRVJST1IgKGFic3RyYWN0LT5jb250 ZXh0LCAiQnVmZmVyIG92ZXJmbG93IGRldGVjdGVkISIpOworIAkJCQlyZXR1cm4gRENfU1RBVFVT X0RBVEFGT1JNQVQ7CistLS0gYS9zcmMvb2NlYW5pY19jb21tb24uYworKysrIGIvc3JjL29jZWFu aWNfY29tbW9uLmMKK0BAIC0xMDQsNyArMTA0LDcgQEAgb2NlYW5pY19jb21tb25fbWF0Y2hfcGF0 dGVybiAoY29uc3QgdW5zaQorIAl1bnNpZ25lZCBpbnQgdmFsdWUgPSAwOworIAl1bnNpZ25lZCBp bnQgY291bnQgPSAwOworIAorLQlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IFBBR0VTSVpF OyArK2ksICsrcGF0dGVybiwgKytzdHJpbmcpIHsKKysJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7 IGkgPCBYUEFHRVNJWkU7ICsraSwgKytwYXR0ZXJuLCArK3N0cmluZykgeworIAkJaWYgKCpwYXR0 ZXJuICE9ICdcMCcpIHsKKyAJCQkvLyBDb21wYXJlIHRoZSBwYXR0ZXJuLgorIAkJCWlmICgqcGF0 dGVybiAhPSAqc3RyaW5nKQorQEAgLTIwNiw3ICsyMDYsNyBAQCBvY2VhbmljX2NvbW1vbl9kZXZp Y2VfZHVtcCAoZGNfZGV2aWNlX3QKKyAJZGV2aWNlX2V2ZW50X2VtaXQgKGFic3RyYWN0LCBEQ19F VkVOVF9WRU5ET1IsICZ2ZW5kb3IpOworIAorIAlyZXR1cm4gZGV2aWNlX2R1bXBfcmVhZCAoYWJz dHJhY3QsIGRjX2J1ZmZlcl9nZXRfZGF0YSAoYnVmZmVyKSwKKy0JCWRjX2J1ZmZlcl9nZXRfc2l6 ZSAoYnVmZmVyKSwgUEFHRVNJWkUgKiBkZXZpY2UtPm11bHRpcGFnZSk7CisrCQlkY19idWZmZXJf Z2V0X3NpemUgKGJ1ZmZlciksIFhQQUdFU0laRSAqIGRldmljZS0+bXVsdGlwYWdlKTsKKyB9Cisg CisgCitAQCAtMjM1LDcgKzIzNSw3IEBAIG9jZWFuaWNfY29tbW9uX2RldmljZV9sb2dib29rIChk Y19kZXZpY2UKKyAJfQorIAorIAkvLyBSZWFkIHRoZSBwb2ludGVyIGRhdGEuCistCXVuc2lnbmVk IGNoYXIgcG9pbnRlcnNbUEFHRVNJWkVdID0gezB9OworKwl1bnNpZ25lZCBjaGFyIHBvaW50ZXJz W1hQQUdFU0laRV0gPSB7MH07CisgCXJjID0gZGNfZGV2aWNlX3JlYWQgKGFic3RyYWN0LCBsYXlv dXQtPmNmX3BvaW50ZXJzLCBwb2ludGVycywgc2l6ZW9mIChwb2ludGVycykpOworIAlpZiAocmMg IT0gRENfU1RBVFVTX1NVQ0NFU1MpIHsKKyAJCUVSUk9SIChhYnN0cmFjdC0+Y29udGV4dCwgIkZh aWxlZCB0byByZWFkIHRoZSBtZW1vcnkgcGFnZS4iKTsKK0BAIC0yNzksOCArMjc5LDggQEAgb2Nl YW5pY19jb21tb25fZGV2aWNlX2xvZ2Jvb2sgKGRjX2RldmljZQorIAl9CisgCisgCS8vIFVwZGF0 ZSBhbmQgZW1pdCBhIHByb2dyZXNzIGV2ZW50LgorLQlwcm9ncmVzcy0+Y3VycmVudCArPSBQQUdF U0laRTsKKy0JcHJvZ3Jlc3MtPm1heGltdW0gKz0gUEFHRVNJWkU7CisrCXByb2dyZXNzLT5jdXJy ZW50ICs9IFhQQUdFU0laRTsKKysJcHJvZ3Jlc3MtPm1heGltdW0gKz0gWFBBR0VTSVpFOworIAlw cm9ncmVzcy0+bWF4aW11bSAtPSAobGF5b3V0LT5yYl9sb2dib29rX2VuZCAtIGxheW91dC0+cmJf bG9nYm9va19iZWdpbikgLSByYl9sb2dib29rX3NpemU7CisgCWRldmljZV9ldmVudF9lbWl0IChh YnN0cmFjdCwgRENfRVZFTlRfUFJPR1JFU1MsIHByb2dyZXNzKTsKKyAKK0BAIC0yOTgsNyArMjk4 LDcgQEAgb2NlYW5pY19jb21tb25fZGV2aWNlX2xvZ2Jvb2sgKGRjX2RldmljZQorIAorIAkvLyBD cmVhdGUgdGhlIHJpbmdidWZmZXIgc3RyZWFtLgorIAlkY19yYnN0cmVhbV90ICpyYnN0cmVhbSA9 IE5VTEw7CistCXJjID0gZGNfcmJzdHJlYW1fbmV3ICgmcmJzdHJlYW0sIGFic3RyYWN0LCBQQUdF U0laRSwgUEFHRVNJWkUgKiBkZXZpY2UtPm11bHRpcGFnZSwgbGF5b3V0LT5yYl9sb2dib29rX2Jl Z2luLCBsYXlvdXQtPnJiX2xvZ2Jvb2tfZW5kLCByYl9sb2dib29rX2VuZCk7CisrCXJjID0gZGNf cmJzdHJlYW1fbmV3ICgmcmJzdHJlYW0sIGFic3RyYWN0LCBYUEFHRVNJWkUsIFhQQUdFU0laRSAq IGRldmljZS0+bXVsdGlwYWdlLCBsYXlvdXQtPnJiX2xvZ2Jvb2tfYmVnaW4sIGxheW91dC0+cmJf bG9nYm9va19lbmQsIHJiX2xvZ2Jvb2tfZW5kKTsKKyAJaWYgKHJjICE9IERDX1NUQVRVU19TVUND RVNTKSB7CisgCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQsICJGYWlsZWQgdG8gY3JlYXRlIHRo ZSByaW5nYnVmZmVyIHN0cmVhbS4iKTsKKyAJCXJldHVybiByYzsKK0BAIC0zNzUsNyArMzc1LDcg QEAgb2NlYW5pY19jb21tb25fZGV2aWNlX3Byb2ZpbGUgKGRjX2RldmljZQorIAljb25zdCBvY2Vh bmljX2NvbW1vbl9sYXlvdXRfdCAqbGF5b3V0ID0gZGV2aWNlLT5sYXlvdXQ7CisgCisgCS8vIEdl dCB0aGUgcGFnZXNpemUKKy0JdW5zaWduZWQgaW50IHBhZ2VzaXplID0gbGF5b3V0LT5oaWdobWVt ID8gMTYgKiBQQUdFU0laRSA6IFBBR0VTSVpFOworKwl1bnNpZ25lZCBpbnQgcGFnZXNpemUgPSBs YXlvdXQtPmhpZ2htZW0gPyAxNiAqIFhQQUdFU0laRSA6IFhQQUdFU0laRTsKKyAKKyAJLy8gQ2Fj aGUgdGhlIGxvZ2Jvb2sgcG9pbnRlciBhbmQgc2l6ZS4KKyAJY29uc3QgdW5zaWduZWQgY2hhciAq bG9nYm9va3MgPSBkY19idWZmZXJfZ2V0X2RhdGEgKGxvZ2Jvb2spOworQEAgLTQ2MCw3ICs0NjAs NyBAQCBvY2VhbmljX2NvbW1vbl9kZXZpY2VfcHJvZmlsZSAoZGNfZGV2aWNlCisgCisgCS8vIENy ZWF0ZSB0aGUgcmluZ2J1ZmZlciBzdHJlYW0uCisgCWRjX3Jic3RyZWFtX3QgKnJic3RyZWFtID0g TlVMTDsKKy0JcmMgPSBkY19yYnN0cmVhbV9uZXcgKCZyYnN0cmVhbSwgYWJzdHJhY3QsIFBBR0VT SVpFLCBQQUdFU0laRSAqIGRldmljZS0+bXVsdGlwYWdlLCBsYXlvdXQtPnJiX3Byb2ZpbGVfYmVn aW4sIGxheW91dC0+cmJfcHJvZmlsZV9lbmQsIHJiX3Byb2ZpbGVfZW5kKTsKKysJcmMgPSBkY19y YnN0cmVhbV9uZXcgKCZyYnN0cmVhbSwgYWJzdHJhY3QsIFhQQUdFU0laRSwgWFBBR0VTSVpFICog ZGV2aWNlLT5tdWx0aXBhZ2UsIGxheW91dC0+cmJfcHJvZmlsZV9iZWdpbiwgbGF5b3V0LT5yYl9w cm9maWxlX2VuZCwgcmJfcHJvZmlsZV9lbmQpOworIAlpZiAocmMgIT0gRENfU1RBVFVTX1NVQ0NF U1MpIHsKKyAJCUVSUk9SIChhYnN0cmFjdC0+Y29udGV4dCwgIkZhaWxlZCB0byBjcmVhdGUgdGhl IHJpbmdidWZmZXIgc3RyZWFtLiIpOworIAkJcmV0dXJuIHJjOworQEAgLTU1Myw3ICs1NTMsNyBA QCBvY2VhbmljX2NvbW1vbl9kZXZpY2VfcHJvZmlsZSAoZGNfZGV2aWNlCisgCQkJdW5zaWduZWQg aW50IHZhbHVlX2hpID0gdmFsdWUgJiAweEUwMDA7CisgCQkJdW5zaWduZWQgaW50IHZhbHVlX2xv ID0gdmFsdWUgJiAweDBGRkY7CisgCQkJdW5zaWduZWQgaW50IG5wYWdlcyA9ICgodmFsdWVfaGkg Pj4gMSkgfCB2YWx1ZV9sbykgKyAxOworLQkJCXVuc2lnbmVkIGludCBsZW5ndGggPSBucGFnZXMg KiBQQUdFU0laRTsKKysJCQl1bnNpZ25lZCBpbnQgbGVuZ3RoID0gbnBhZ2VzICogWFBBR0VTSVpF OworIAkJCWlmIChyYl9lbnRyeV9zaXplID4gbGVuZ3RoKSB7CisgCQkJCXJiX2VudHJ5X3NpemUg PSBsZW5ndGg7CisgCQkJfQorQEAgLTU4NCw3ICs1ODQsNyBAQCBvY2VhbmljX2NvbW1vbl9kZXZp Y2VfZm9yZWFjaCAoZGNfZGV2aWNlCisgCisgCS8vIEVuYWJsZSBwcm9ncmVzcyBub3RpZmljYXRp b25zLgorIAlkY19ldmVudF9wcm9ncmVzc190IHByb2dyZXNzID0gRVZFTlRfUFJPR1JFU1NfSU5J VElBTElaRVI7CistCXByb2dyZXNzLm1heGltdW0gPSBQQUdFU0laRSArCisrCXByb2dyZXNzLm1h eGltdW0gPSBYUEFHRVNJWkUgKworIAkJKGxheW91dC0+cmJfbG9nYm9va19lbmQgLSBsYXlvdXQt PnJiX2xvZ2Jvb2tfYmVnaW4pICsKKyAJCShsYXlvdXQtPnJiX3Byb2ZpbGVfZW5kIC0gbGF5b3V0 LT5yYl9wcm9maWxlX2JlZ2luKTsKKyAJZGV2aWNlX2V2ZW50X2VtaXQgKGFic3RyYWN0LCBEQ19F VkVOVF9QUk9HUkVTUywgJnByb2dyZXNzKTsKK0BAIC01OTYsNyArNTk2LDcgQEAgb2NlYW5pY19j b21tb25fZGV2aWNlX2ZvcmVhY2ggKGRjX2RldmljZQorIAlkZXZpY2VfZXZlbnRfZW1pdCAoYWJz dHJhY3QsIERDX0VWRU5UX1ZFTkRPUiwgJnZlbmRvcik7CisgCisgCS8vIFJlYWQgdGhlIGRldmlj ZSBpZC4KKy0JdW5zaWduZWQgY2hhciBpZFtQQUdFU0laRV0gPSB7MH07CisrCXVuc2lnbmVkIGNo YXIgaWRbWFBBR0VTSVpFXSA9IHswfTsKKyAJZGNfc3RhdHVzX3QgcmMgPSBkY19kZXZpY2VfcmVh ZCAoYWJzdHJhY3QsIGxheW91dC0+Y2ZfZGV2aW5mbywgaWQsIHNpemVvZiAoaWQpKTsKKyAJaWYg KHJjICE9IERDX1NUQVRVU19TVUNDRVNTKSB7CisgCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQs ICJGYWlsZWQgdG8gcmVhZCB0aGUgbWVtb3J5IHBhZ2UuIik7CitAQCAtNjA0LDcgKzYwNCw3IEBA IG9jZWFuaWNfY29tbW9uX2RldmljZV9mb3JlYWNoIChkY19kZXZpY2UKKyAJfQorIAorIAkvLyBV cGRhdGUgYW5kIGVtaXQgYSBwcm9ncmVzcyBldmVudC4KKy0JcHJvZ3Jlc3MuY3VycmVudCArPSBQ QUdFU0laRTsKKysJcHJvZ3Jlc3MuY3VycmVudCArPSBYUEFHRVNJWkU7CisgCWRldmljZV9ldmVu dF9lbWl0IChhYnN0cmFjdCwgRENfRVZFTlRfUFJPR1JFU1MsICZwcm9ncmVzcyk7CisgCisgCS8v IEVtaXQgYSBkZXZpY2UgaW5mbyBldmVudC4KKy0tLSBhL3NyYy9vY2VhbmljX2NvbW1vbi5oCisr KysgYi9zcmMvb2NlYW5pY19jb21tb24uaAorQEAgLTI4LDcgKzI4LDcgQEAKKyBleHRlcm4gIkMi IHsKKyAjZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KKyAKKy0jZGVmaW5lIFBBR0VTSVpFIDB4MTAK KysjZGVmaW5lIFhQQUdFU0laRSAweDEwCisgI2RlZmluZSBGUE1BWFNJWkUgMHgyMAorIAorICNk ZWZpbmUgT0NFQU5JQ19DT01NT05fTUFUQ0godmVyc2lvbixwYXR0ZXJucyxmaXJtd2FyZSkgXAor QEAgLTYyLDcgKzYyLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgb2NlYW5pY19jb21tb25fbGF5b3V0X3Qg eworIHR5cGVkZWYgc3RydWN0IG9jZWFuaWNfY29tbW9uX2RldmljZV90IHsKKyAJZGNfZGV2aWNl X3QgYmFzZTsKKyAJdW5zaWduZWQgaW50IGZpcm13YXJlOworLQl1bnNpZ25lZCBjaGFyIHZlcnNp b25bUEFHRVNJWkVdOworKwl1bnNpZ25lZCBjaGFyIHZlcnNpb25bWFBBR0VTSVpFXTsKKyAJdW5z aWduZWQgY2hhciBmaW5nZXJwcmludFtGUE1BWFNJWkVdOworIAljb25zdCBvY2VhbmljX2NvbW1v bl9sYXlvdXRfdCAqbGF5b3V0OworIAl1bnNpZ25lZCBpbnQgbXVsdGlwYWdlOworQEAgLTc1LDcg Kzc1LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgb2NlYW5pY19jb21tb25fZGV2aWNlX3Z0YQorIH0gb2Nl YW5pY19jb21tb25fZGV2aWNlX3Z0YWJsZV90OworIAorIHR5cGVkZWYgc3RydWN0IG9jZWFuaWNf Y29tbW9uX3ZlcnNpb25fdCB7CistCXVuc2lnbmVkIGNoYXIgcGF0dGVybltQQUdFU0laRSArIDFd OworKwl1bnNpZ25lZCBjaGFyIHBhdHRlcm5bWFBBR0VTSVpFICsgMV07CisgCXVuc2lnbmVkIGlu dCBmaXJtd2FyZTsKKyAJY29uc3Qgb2NlYW5pY19jb21tb25fbGF5b3V0X3QgKmxheW91dDsKKyB9 IG9jZWFuaWNfY29tbW9uX3ZlcnNpb25fdDsKKy0tLSBhL3NyYy9vY2VhbmljX3ZlbzI1MC5jCisr KysgYi9zcmMvb2NlYW5pY192ZW8yNTAuYworQEAgLTM4NCwyNCArMzg0LDI0IEBAIG9jZWFuaWNf dmVvMjUwX2RldmljZV92ZXJzaW9uIChkY19kZXZpY2UKKyAJaWYgKCFJU0lOU1RBTkNFIChhYnN0 cmFjdCkpCisgCQlyZXR1cm4gRENfU1RBVFVTX0lOVkFMSURBUkdTOworIAorLQlpZiAoc2l6ZSA8 IFBBR0VTSVpFKQorKwlpZiAoc2l6ZSA8IFhQQUdFU0laRSkKKyAJCXJldHVybiBEQ19TVEFUVVNf SU5WQUxJREFSR1M7CisgCistCXVuc2lnbmVkIGNoYXIgYW5zd2VyW1BBR0VTSVpFICsgMl0gPSB7 MH07CisrCXVuc2lnbmVkIGNoYXIgYW5zd2VyW1hQQUdFU0laRSArIDJdID0gezB9OworIAl1bnNp Z25lZCBjaGFyIGNvbW1hbmRbMl0gPSB7MHg5MCwgMHgwMH07CisgCWRjX3N0YXR1c190IHJjID0g b2NlYW5pY192ZW8yNTBfdHJhbnNmZXIgKGRldmljZSwgY29tbWFuZCwgc2l6ZW9mIChjb21tYW5k KSwgYW5zd2VyLCBzaXplb2YgKGFuc3dlcikpOworIAlpZiAocmMgIT0gRENfU1RBVFVTX1NVQ0NF U1MpCisgCQlyZXR1cm4gcmM7CisgCisgCS8vIFZlcmlmeSB0aGUgY2hlY2tzdW0gb2YgdGhlIGFu c3dlci4KKy0JdW5zaWduZWQgY2hhciBjcmMgPSBhbnN3ZXJbUEFHRVNJWkVdOworLQl1bnNpZ25l ZCBjaGFyIGNjcmMgPSBjaGVja3N1bV9hZGRfdWludDggKGFuc3dlciwgUEFHRVNJWkUsIDB4MDAp OworKwl1bnNpZ25lZCBjaGFyIGNyYyA9IGFuc3dlcltYUEFHRVNJWkVdOworKwl1bnNpZ25lZCBj aGFyIGNjcmMgPSBjaGVja3N1bV9hZGRfdWludDggKGFuc3dlciwgWFBBR0VTSVpFLCAweDAwKTsK KyAJaWYgKGNyYyAhPSBjY3JjKSB7CisgCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQsICJVbmV4 cGVjdGVkIGFuc3dlciBjaGVja3N1bS4iKTsKKyAJCXJldHVybiBEQ19TVEFUVVNfUFJPVE9DT0w7 CisgCX0KKyAKKy0JbWVtY3B5IChkYXRhLCBhbnN3ZXIsIFBBR0VTSVpFKTsKKysJbWVtY3B5IChk YXRhLCBhbnN3ZXIsIFhQQUdFU0laRSk7CisgCisgCXJldHVybiBEQ19TVEFUVVNfU1VDQ0VTUzsK KyB9CitAQCAtNDEyLDI4ICs0MTIsMjggQEAgb2NlYW5pY192ZW8yNTBfZGV2aWNlX3JlYWQgKGRj X2RldmljZV90CisgeworIAlvY2VhbmljX3ZlbzI1MF9kZXZpY2VfdCAqZGV2aWNlID0gKG9jZWFu aWNfdmVvMjUwX2RldmljZV90KikgYWJzdHJhY3Q7CisgCistCWlmICgoYWRkcmVzcyAlIFBBR0VT SVpFICE9IDApIHx8CistCQkoc2l6ZSAgICAlIFBBR0VTSVpFICE9IDApKQorKwlpZiAoKGFkZHJl c3MgJSBYUEFHRVNJWkUgIT0gMCkgfHwKKysJCShzaXplICAgICUgWFBBR0VTSVpFICE9IDApKQor IAkJcmV0dXJuIERDX1NUQVRVU19JTlZBTElEQVJHUzsKKyAKKyAJdW5zaWduZWQgaW50IG5ieXRl cyA9IDA7CisgCXdoaWxlIChuYnl0ZXMgPCBzaXplKSB7CisgCQkvLyBDYWxjdWxhdGUgdGhlIG51 bWJlciBvZiBwYWNrYWdlcy4KKy0JCXVuc2lnbmVkIGludCBucGFja2V0cyA9IChzaXplIC0gbmJ5 dGVzKSAvIFBBR0VTSVpFOworKwkJdW5zaWduZWQgaW50IG5wYWNrZXRzID0gKHNpemUgLSBuYnl0 ZXMpIC8gWFBBR0VTSVpFOworIAkJaWYgKG5wYWNrZXRzID4gTVVMVElQQUdFKQorIAkJCW5wYWNr ZXRzID0gTVVMVElQQUdFOworIAorIAkJLy8gUmVhZCB0aGUgcGFja2FnZS4KKy0JCXVuc2lnbmVk IGludCBmaXJzdCA9ICBhZGRyZXNzIC8gUEFHRVNJWkU7CisrCQl1bnNpZ25lZCBpbnQgZmlyc3Qg PSAgYWRkcmVzcyAvIFhQQUdFU0laRTsKKyAJCXVuc2lnbmVkIGludCBsYXN0ICA9IGZpcnN0ICsg bnBhY2tldHMgLSAxOworLQkJdW5zaWduZWQgY2hhciBhbnN3ZXJbKFBBR0VTSVpFICsgMSkgKiBN VUxUSVBBR0UgKyAxXSA9IHswfTsKKysJCXVuc2lnbmVkIGNoYXIgYW5zd2VyWyhYUEFHRVNJWkUg KyAxKSAqIE1VTFRJUEFHRSArIDFdID0gezB9OworIAkJdW5zaWduZWQgY2hhciBjb21tYW5kWzZd ID0gezB4MjAsCisgCQkJCShmaXJzdCAgICAgKSAmIDB4RkYsIC8vIGxvdworIAkJCQkoZmlyc3Qg Pj4gOCkgJiAweEZGLCAvLyBoaWdoCisgCQkJCShsYXN0ICAgICApICYgMHhGRiwgLy8gbG93Cisg CQkJCShsYXN0ID4+IDgpICYgMHhGRiwgLy8gaGlnaAorIAkJCQkwfTsKKy0JCWRjX3N0YXR1c190 IHJjID0gb2NlYW5pY192ZW8yNTBfdHJhbnNmZXIgKGRldmljZSwgY29tbWFuZCwgc2l6ZW9mIChj b21tYW5kKSwgYW5zd2VyLCAoUEFHRVNJWkUgKyAxKSAqIG5wYWNrZXRzICsgMSk7CisrCQlkY19z dGF0dXNfdCByYyA9IG9jZWFuaWNfdmVvMjUwX3RyYW5zZmVyIChkZXZpY2UsIGNvbW1hbmQsIHNp emVvZiAoY29tbWFuZCksIGFuc3dlciwgKFhQQUdFU0laRSArIDEpICogbnBhY2tldHMgKyAxKTsK KyAJCWlmIChyYyAhPSBEQ19TVEFUVVNfU1VDQ0VTUykKKyAJCQlyZXR1cm4gcmM7CisgCitAQCAt NDQyLDE5ICs0NDIsMTkgQEAgb2NlYW5pY192ZW8yNTBfZGV2aWNlX3JlYWQgKGRjX2RldmljZV90 CisgCQl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gMDsKKyAJCWZvciAodW5zaWduZWQgaW50IGkgPSAw OyBpIDwgbnBhY2tldHM7ICsraSkgeworIAkJCS8vIFZlcmlmeSB0aGUgY2hlY2tzdW0gb2YgdGhl IGFuc3dlci4KKy0JCQl1bnNpZ25lZCBjaGFyIGNyYyA9IGFuc3dlcltvZmZzZXQgKyBQQUdFU0la RV07CistCQkJdW5zaWduZWQgY2hhciBjY3JjID0gY2hlY2tzdW1fYWRkX3VpbnQ4IChhbnN3ZXIg KyBvZmZzZXQsIFBBR0VTSVpFLCAweDAwKTsKKysJCQl1bnNpZ25lZCBjaGFyIGNyYyA9IGFuc3dl cltvZmZzZXQgKyBYUEFHRVNJWkVdOworKwkJCXVuc2lnbmVkIGNoYXIgY2NyYyA9IGNoZWNrc3Vt X2FkZF91aW50OCAoYW5zd2VyICsgb2Zmc2V0LCBYUEFHRVNJWkUsIDB4MDApOworIAkJCWlmIChj cmMgIT0gY2NyYykgeworIAkJCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQsICJVbmV4cGVjdGVk IGFuc3dlciBjaGVja3N1bS4iKTsKKyAJCQkJcmV0dXJuIERDX1NUQVRVU19QUk9UT0NPTDsKKyAJ CQl9CisgCistCQkJbWVtY3B5IChkYXRhLCBhbnN3ZXIgKyBvZmZzZXQsIFBBR0VTSVpFKTsKKysJ CQltZW1jcHkgKGRhdGEsIGFuc3dlciArIG9mZnNldCwgWFBBR0VTSVpFKTsKKyAKKy0JCQlvZmZz ZXQgKz0gUEFHRVNJWkUgKyAxOworLQkJCW5ieXRlcyArPSBQQUdFU0laRTsKKy0JCQlhZGRyZXNz ICs9IFBBR0VTSVpFOworLQkJCWRhdGEgKz0gUEFHRVNJWkU7CisrCQkJb2Zmc2V0ICs9IFhQQUdF U0laRSArIDE7CisrCQkJbmJ5dGVzICs9IFhQQUdFU0laRTsKKysJCQlhZGRyZXNzICs9IFhQQUdF U0laRTsKKysJCQlkYXRhICs9IFhQQUdFU0laRTsKKyAJCX0KKyAJfQorIAorLS0tIGEvc3JjL29j ZWFuaWNfdmVvMjUwX3BhcnNlci5jCisrKysgYi9zcmMvb2NlYW5pY192ZW8yNTBfcGFyc2VyLmMK K0BAIC0xNDIsNyArMTQyLDcgQEAgb2NlYW5pY192ZW8yNTBfcGFyc2VyX2dldF9maWVsZCAoZGNf cGFycworIAljb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhID0gYWJzdHJhY3QtPmRhdGE7CisgCXVu c2lnbmVkIGludCBzaXplID0gYWJzdHJhY3QtPnNpemU7CisgCistCWlmIChzaXplIDwgNyAqIFBB R0VTSVpFIC8gMikKKysJaWYgKHNpemUgPCA3ICogWFBBR0VTSVpFIC8gMikKKyAJCXJldHVybiBE Q19TVEFUVVNfREFUQUZPUk1BVDsKKyAKKyAJaWYgKCFwYXJzZXItPmNhY2hlZCkgeworQEAgLTE1 Nyw3ICsxNTcsNyBAQCBvY2VhbmljX3ZlbzI1MF9wYXJzZXJfZ2V0X2ZpZWxkIChkY19wYXJzCisg CQlwYXJzZXItPm1heGRlcHRoID0gc3RhdGlzdGljcy5tYXhkZXB0aDsKKyAJfQorIAorLQl1bnNp Z25lZCBpbnQgZm9vdGVyID0gc2l6ZSAtIFBBR0VTSVpFOworKwl1bnNpZ25lZCBpbnQgZm9vdGVy ID0gc2l6ZSAtIFhQQUdFU0laRTsKKyAKKyAJZGNfZ2FzbWl4X3QgKmdhc21peCA9IChkY19nYXNt aXhfdCAqKSB2YWx1ZTsKKyAKK0BAIC0xOTYsNyArMTk2LDcgQEAgb2NlYW5pY192ZW8yNTBfcGFy c2VyX3NhbXBsZXNfZm9yZWFjaCAoZAorIAljb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhID0gYWJz dHJhY3QtPmRhdGE7CisgCXVuc2lnbmVkIGludCBzaXplID0gYWJzdHJhY3QtPnNpemU7CisgCist CWlmIChzaXplIDwgNyAqIFBBR0VTSVpFIC8gMikKKysJaWYgKHNpemUgPCA3ICogWFBBR0VTSVpF IC8gMikKKyAJCXJldHVybiBEQ19TVEFUVVNfREFUQUZPUk1BVDsKKyAKKyAJdW5zaWduZWQgaW50 IHRpbWUgPSAwOworQEAgLTIyMSwxMyArMjIxLDEzIEBAIG9jZWFuaWNfdmVvMjUwX3BhcnNlcl9z YW1wbGVzX2ZvcmVhY2ggKGQKKyAJCWJyZWFrOworIAl9CisgCistCXVuc2lnbmVkIGludCBvZmZz ZXQgPSA1ICogUEFHRVNJWkUgLyAyOworLQl3aGlsZSAob2Zmc2V0ICsgUEFHRVNJWkUgLyAyIDw9 IHNpemUgLSBQQUdFU0laRSkgeworKwl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gNSAqIFhQQUdFU0la RSAvIDI7CisrCXdoaWxlIChvZmZzZXQgKyBYUEFHRVNJWkUgLyAyIDw9IHNpemUgLSBYUEFHRVNJ WkUpIHsKKyAJCWRjX3NhbXBsZV92YWx1ZV90IHNhbXBsZSA9IHswfTsKKyAKKyAJCS8vIElnbm9y ZSBlbXB0eSBzYW1wbGVzLgorLQkJaWYgKGFycmF5X2lzZXF1YWwgKGRhdGEgKyBvZmZzZXQsIFBB R0VTSVpFIC8gMiwgMHgwMCkpIHsKKy0JCQlvZmZzZXQgKz0gUEFHRVNJWkUgLyAyOworKwkJaWYg KGFycmF5X2lzZXF1YWwgKGRhdGEgKyBvZmZzZXQsIFhQQUdFU0laRSAvIDIsIDB4MDApKSB7Cisr CQkJb2Zmc2V0ICs9IFhQQUdFU0laRSAvIDI7CisgCQkJY29udGludWU7CisgCQl9CisgCitAQCAt MjM4LDcgKzIzOCw3IEBAIG9jZWFuaWNfdmVvMjUwX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGQK KyAKKyAJCS8vIFZlbmRvciBzcGVjaWZpYyBkYXRhCisgCQlzYW1wbGUudmVuZG9yLnR5cGUgPSBT QU1QTEVfVkVORE9SX09DRUFOSUNfVkVPMjUwOworLQkJc2FtcGxlLnZlbmRvci5zaXplID0gUEFH RVNJWkUgLyAyOworKwkJc2FtcGxlLnZlbmRvci5zaXplID0gWFBBR0VTSVpFIC8gMjsKKyAJCXNh bXBsZS52ZW5kb3IuZGF0YSA9IGRhdGEgKyBvZmZzZXQ7CisgCQlpZiAoY2FsbGJhY2spIGNhbGxi YWNrIChEQ19TQU1QTEVfVkVORE9SLCBzYW1wbGUsIHVzZXJkYXRhKTsKKyAKK0BAIC0yODMsNyAr MjgzLDcgQEAgb2NlYW5pY192ZW8yNTBfcGFyc2VyX3NhbXBsZXNfZm9yZWFjaCAoZAorIAkJCWlm IChjYWxsYmFjaykgY2FsbGJhY2sgKERDX1NBTVBMRV9ERUNPLCBzYW1wbGUsIHVzZXJkYXRhKTsK KyAJCX0KKyAKKy0JCW9mZnNldCArPSBQQUdFU0laRSAvIDI7CisrCQlvZmZzZXQgKz0gWFBBR0VT SVpFIC8gMjsKKyAJfQorIAorIAlyZXR1cm4gRENfU1RBVFVTX1NVQ0NFU1M7CistLS0gYS9zcmMv b2NlYW5pY192dHByby5jCisrKysgYi9zcmMvb2NlYW5pY192dHByby5jCitAQCAtMjk2LDcgKzI5 Niw3IEBAIG9jZWFuaWNfYWVyaXM1MDBhaV9kZXZpY2VfbG9nYm9vayAoZGNfZGUKKyAKKyAJYXNz ZXJ0IChkZXZpY2UgIT0gTlVMTCk7CisgCWFzc2VydCAoZGV2aWNlLT5iYXNlLmxheW91dCAhPSBO VUxMKTsKKy0JYXNzZXJ0IChkZXZpY2UtPmJhc2UubGF5b3V0LT5yYl9sb2dib29rX2VudHJ5X3Np emUgPT0gUEFHRVNJWkUgLyAyKTsKKysJYXNzZXJ0IChkZXZpY2UtPmJhc2UubGF5b3V0LT5yYl9s b2dib29rX2VudHJ5X3NpemUgPT0gWFBBR0VTSVpFIC8gMik7CisgCWFzc2VydCAoZGV2aWNlLT5i YXNlLmxheW91dC0+cmJfbG9nYm9va19iZWdpbiA9PSBkZXZpY2UtPmJhc2UubGF5b3V0LT5yYl9s b2dib29rX2VuZCk7CisgCWFzc2VydCAocHJvZ3Jlc3MgIT0gTlVMTCk7CisgCitAQCAtMzA3LDcg KzMwNyw3IEBAIG9jZWFuaWNfYWVyaXM1MDBhaV9kZXZpY2VfbG9nYm9vayAoZGNfZGUKKyAJCXJl dHVybiBEQ19TVEFUVVNfTk9NRU1PUlk7CisgCisgCS8vIFJlYWQgdGhlIHBvaW50ZXIgZGF0YS4K Ky0JdW5zaWduZWQgY2hhciBwb2ludGVyc1tQQUdFU0laRV0gPSB7MH07CisrCXVuc2lnbmVkIGNo YXIgcG9pbnRlcnNbWFBBR0VTSVpFXSA9IHswfTsKKyAJcmMgPSBvY2VhbmljX3Z0cHJvX2Rldmlj ZV9yZWFkIChhYnN0cmFjdCwgbGF5b3V0LT5jZl9wb2ludGVycywgcG9pbnRlcnMsIHNpemVvZiAo cG9pbnRlcnMpKTsKKyAJaWYgKHJjICE9IERDX1NUQVRVU19TVUNDRVNTKSB7CisgCQlFUlJPUiAo YWJzdHJhY3QtPmNvbnRleHQsICJGYWlsZWQgdG8gcmVhZCB0aGUgbWVtb3J5IHBhZ2UuIik7CitA QCAtMzE4LDEyICszMTgsMTIgQEAgb2NlYW5pY19hZXJpczUwMGFpX2RldmljZV9sb2dib29rIChk Y19kZQorIAl1bnNpZ25lZCBpbnQgbGFzdCA9IHBvaW50ZXJzWzB4MDNdOworIAorIAkvLyBVcGRh dGUgYW5kIGVtaXQgYSBwcm9ncmVzcyBldmVudC4KKy0JcHJvZ3Jlc3MtPmN1cnJlbnQgKz0gUEFH RVNJWkU7CistCXByb2dyZXNzLT5tYXhpbXVtICs9IFBBR0VTSVpFICsgKGxhc3QgKyAxKSAqIFBB R0VTSVpFIC8gMjsKKysJcHJvZ3Jlc3MtPmN1cnJlbnQgKz0gWFBBR0VTSVpFOworKwlwcm9ncmVz cy0+bWF4aW11bSArPSBYUEFHRVNJWkUgKyAobGFzdCArIDEpICogWFBBR0VTSVpFIC8gMjsKKyAJ ZGV2aWNlX2V2ZW50X2VtaXQgKGFic3RyYWN0LCBEQ19FVkVOVF9QUk9HUkVTUywgcHJvZ3Jlc3Mp OworIAorIAkvLyBBbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBsb2dib29rIGVudHJpZXMuCistCWlm ICghZGNfYnVmZmVyX3Jlc2VydmUgKGxvZ2Jvb2ssIChsYXN0ICsgMSkgKiBQQUdFU0laRSAvIDIp KQorKwlpZiAoIWRjX2J1ZmZlcl9yZXNlcnZlIChsb2dib29rLCAobGFzdCArIDEpICogWFBBR0VT SVpFIC8gMikpCisgCQlyZXR1cm4gRENfU1RBVFVTX05PTUVNT1JZOworIAorIAkvLyBTZW5kIHRo ZSBsb2dib29rIGluZGV4IGNvbW1hbmQuCitAQCAtMzQwLDcgKzM0MCw3IEBAIG9jZWFuaWNfYWVy aXM1MDBhaV9kZXZpY2VfbG9nYm9vayAoZGNfZGUKKyAJLy8gUmVhZCB0aGUgbG9nYm9vayBpbmRl eC4KKyAJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBsYXN0ICsgMTsgKytpKSB7CisgCQkv LyBSZWNlaXZlIHRoZSBhbnN3ZXIgb2YgdGhlIGRpdmUgY29tcHV0ZXIuCistCQl1bnNpZ25lZCBj aGFyIGFuc3dlcltQQUdFU0laRSAvIDIgKyAxXSA9IHswfTsKKysJCXVuc2lnbmVkIGNoYXIgYW5z d2VyW1hQQUdFU0laRSAvIDIgKyAxXSA9IHswfTsKKyAJCXJjID0gZGNfaW9zdHJlYW1fcmVhZCAo ZGV2aWNlLT5pb3N0cmVhbSwgYW5zd2VyLCBzaXplb2YoYW5zd2VyKSwgTlVMTCk7CisgCQlpZiAo cmMgIT0gRENfU1RBVFVTX1NVQ0NFU1MpIHsKKyAJCQlFUlJPUiAoYWJzdHJhY3QtPmNvbnRleHQs ICJGYWlsZWQgdG8gcmVjZWl2ZSB0aGUgYW5zd2VyLiIpOworQEAgLTM0OCwyOCArMzQ4LDI4IEBA IG9jZWFuaWNfYWVyaXM1MDBhaV9kZXZpY2VfbG9nYm9vayAoZGNfZGUKKyAJCX0KKyAKKyAJCS8v IFZlcmlmeSB0aGUgY2hlY2tzdW0gb2YgdGhlIGFuc3dlci4KKy0JCXVuc2lnbmVkIGNoYXIgY3Jj ID0gYW5zd2VyW1BBR0VTSVpFIC8gMl07CistCQl1bnNpZ25lZCBjaGFyIGNjcmMgPSBjaGVja3N1 bV9hZGRfdWludDQgKGFuc3dlciwgUEFHRVNJWkUgLyAyLCAweDAwKTsKKysJCXVuc2lnbmVkIGNo YXIgY3JjID0gYW5zd2VyW1hQQUdFU0laRSAvIDJdOworKwkJdW5zaWduZWQgY2hhciBjY3JjID0g Y2hlY2tzdW1fYWRkX3VpbnQ0IChhbnN3ZXIsIFhQQUdFU0laRSAvIDIsIDB4MDApOworIAkJaWYg KGNyYyAhPSBjY3JjKSB7CisgCQkJRVJST1IgKGFic3RyYWN0LT5jb250ZXh0LCAiVW5leHBlY3Rl ZCBhbnN3ZXIgY2hlY2tzdW0uIik7CisgCQkJcmV0dXJuIERDX1NUQVRVU19QUk9UT0NPTDsKKyAJ CX0KKyAKKyAJCS8vIFVwZGF0ZSBhbmQgZW1pdCBhIHByb2dyZXNzIGV2ZW50LgorLQkJcHJvZ3Jl c3MtPmN1cnJlbnQgKz0gUEFHRVNJWkUgLyAyOworKwkJcHJvZ3Jlc3MtPmN1cnJlbnQgKz0gWFBB R0VTSVpFIC8gMjsKKyAJCWRldmljZV9ldmVudF9lbWl0IChhYnN0cmFjdCwgRENfRVZFTlRfUFJP R1JFU1MsIHByb2dyZXNzKTsKKyAKKyAJCS8vIElnbm9yZSB1bmluaXRpYWxpemVkIGVudHJpZXMu CistCQlpZiAoYXJyYXlfaXNlcXVhbCAoYW5zd2VyLCBQQUdFU0laRSAvIDIsIDB4RkYpKSB7Cisr CQlpZiAoYXJyYXlfaXNlcXVhbCAoYW5zd2VyLCBYUEFHRVNJWkUgLyAyLCAweEZGKSkgeworIAkJ CVdBUk5JTkcgKGFic3RyYWN0LT5jb250ZXh0LCAiVW5pbml0aWFsaXplZCBsb2dib29rIGVudHJp ZXMgZGV0ZWN0ZWQhIik7CisgCQkJY29udGludWU7CisgCQl9CisgCisgCQkvLyBDb21wYXJlIHRo ZSBmaW5nZXJwcmludCB0byBpZGVudGlmeSBwcmV2aW91c2x5IGRvd25sb2FkZWQgZW50cmllcy4K Ky0JCWlmIChtZW1jbXAgKGFuc3dlciwgZGV2aWNlLT5iYXNlLmZpbmdlcnByaW50LCBQQUdFU0la RSAvIDIpID09IDApIHsKKysJCWlmIChtZW1jbXAgKGFuc3dlciwgZGV2aWNlLT5iYXNlLmZpbmdl cnByaW50LCBYUEFHRVNJWkUgLyAyKSA9PSAwKSB7CisgCQkJZGNfYnVmZmVyX2NsZWFyIChsb2di b29rKTsKKyAJCX0gZWxzZSB7CistCQkJZGNfYnVmZmVyX2FwcGVuZCAobG9nYm9vaywgYW5zd2Vy LCBQQUdFU0laRSAvIDIpOworKwkJCWRjX2J1ZmZlcl9hcHBlbmQgKGxvZ2Jvb2ssIGFuc3dlciwg WFBBR0VTSVpFIC8gMik7CisgCQl9CisgCX0KKyAKK0BAIC01NjAsNyArNTYwLDcgQEAgb2NlYW5p Y192dHByb19kZXZpY2VfdmVyc2lvbiAoZGNfZGV2aWNlXworIAlpZiAoIUlTSU5TVEFOQ0UgKGFi c3RyYWN0KSkKKyAJCXJldHVybiBEQ19TVEFUVVNfSU5WQUxJREFSR1M7CisgCistCWlmIChzaXpl IDwgUEFHRVNJWkUpCisrCWlmIChzaXplIDwgWFBBR0VTSVpFKQorIAkJcmV0dXJuIERDX1NUQVRV U19JTlZBTElEQVJHUzsKKyAKKyAJLy8gU3dpdGNoIHRoZSBkZXZpY2UgaW50byBkb3dubG9hZCBt b2RlLiBUaGUgcmVzcG9uc2UgaXMgaWdub3JlZCBoZXJlLAorQEAgLTU2OCwxNCArNTY4LDE0IEBA IG9jZWFuaWNfdnRwcm9fZGV2aWNlX3ZlcnNpb24gKGRjX2RldmljZV8KKyAJLy8gcmVzcG9uc2Ug b2YgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIG90aGVyIGNvbW1hbmQgaW4gdGhpcyBmdW5jdGlvbi4K KyAKKyAJdW5zaWduZWQgY2hhciBjbWRbMl0gPSB7MHg4OCwgMHgwMH07CistCXVuc2lnbmVkIGNo YXIgYW5zW1BBR0VTSVpFIC8gMiArIDFdID0gezB9OworKwl1bnNpZ25lZCBjaGFyIGFuc1tYUEFH RVNJWkUgLyAyICsgMV0gPSB7MH07CisgCWRjX3N0YXR1c190IHJjID0gb2NlYW5pY192dHByb190 cmFuc2ZlciAoZGV2aWNlLCBjbWQsIHNpemVvZiAoY21kKSwgYW5zLCBzaXplb2YgKGFucykpOwor IAlpZiAocmMgIT0gRENfU1RBVFVTX1NVQ0NFU1MpCisgCQlyZXR1cm4gcmM7CisgCisgCS8vIFZl cmlmeSB0aGUgY2hlY2tzdW0gb2YgdGhlIGFuc3dlci4KKy0JdW5zaWduZWQgY2hhciBjcmMgPSBh bnNbUEFHRVNJWkUgLyAyXTsKKy0JdW5zaWduZWQgY2hhciBjY3JjID0gY2hlY2tzdW1fYWRkX3Vp bnQ0IChhbnMsIFBBR0VTSVpFIC8gMiwgMHgwMCk7CisrCXVuc2lnbmVkIGNoYXIgY3JjID0gYW5z W1hQQUdFU0laRSAvIDJdOworKwl1bnNpZ25lZCBjaGFyIGNjcmMgPSBjaGVja3N1bV9hZGRfdWlu dDQgKGFucywgWFBBR0VTSVpFIC8gMiwgMHgwMCk7CisgCWlmIChjcmMgIT0gY2NyYykgeworIAkJ RVJST1IgKGFic3RyYWN0LT5jb250ZXh0LCAiVW5leHBlY3RlZCBhbnN3ZXIgY2hlY2tzdW0uIik7 CisgCQlyZXR1cm4gRENfU1RBVFVTX1BST1RPQ09MOworQEAgLTU4NiwzMSArNTg2LDMxIEBAIG9j ZWFuaWNfdnRwcm9fZGV2aWNlX3ZlcnNpb24gKGRjX2RldmljZV8KKyAJCS8vIHNwbGl0IG92ZXIg dHdvIHBhY2tldHMsIGJ1dCB3ZSBqb2luIGJvdGggcGFydHMgYWdhaW4uCisgCQlmb3IgKHVuc2ln bmVkIGludCBpID0gMDsgaSA8IDI7ICsraSkgeworIAkJCXVuc2lnbmVkIGNoYXIgY29tbWFuZFs0 XSA9IHsweDcyLCAweDAzLCBpICogMHgxMCwgMHgwMH07CistCQkJdW5zaWduZWQgY2hhciBhbnN3 ZXJbUEFHRVNJWkUgLyAyICsgMl0gPSB7MH07CisrCQkJdW5zaWduZWQgY2hhciBhbnN3ZXJbWFBB R0VTSVpFIC8gMiArIDJdID0gezB9OworIAkJCXJjID0gb2NlYW5pY192dHByb190cmFuc2ZlciAo ZGV2aWNlLCBjb21tYW5kLCBzaXplb2YgKGNvbW1hbmQpLCBhbnN3ZXIsIHNpemVvZiAoYW5zd2Vy KSk7CisgCQkJaWYgKHJjICE9IERDX1NUQVRVU19TVUNDRVNTKQorIAkJCQlyZXR1cm4gcmM7Cisg CisgCQkJLy8gVmVyaWZ5IHRoZSBjaGVja3N1bSBvZiB0aGUgYW5zd2VyLgorLQkJCWNyYyA9IGFu c3dlcltQQUdFU0laRSAvIDJdOworLQkJCWNjcmMgPSBjaGVja3N1bV9hZGRfdWludDQgKGFuc3dl ciwgUEFHRVNJWkUgLyAyLCAweDAwKTsKKysJCQljcmMgPSBhbnN3ZXJbWFBBR0VTSVpFIC8gMl07 CisrCQkJY2NyYyA9IGNoZWNrc3VtX2FkZF91aW50NCAoYW5zd2VyLCBYUEFHRVNJWkUgLyAyLCAw eDAwKTsKKyAJCQlpZiAoY3JjICE9IGNjcmMpIHsKKyAJCQkJRVJST1IgKGFic3RyYWN0LT5jb250 ZXh0LCAiVW5leHBlY3RlZCBhbnN3ZXIgY2hlY2tzdW0uIik7CisgCQkJCXJldHVybiBEQ19TVEFU VVNfUFJPVE9DT0w7CisgCQkJfQorIAorIAkJCS8vIFZlcmlmeSB0aGUgbGFzdCBieXRlIG9mIHRo ZSBhbnN3ZXIuCistCQkJaWYgKGFuc3dlcltQQUdFU0laRSAvIDIgKyAxXSAhPSBFTkQpIHsKKysJ CQlpZiAoYW5zd2VyW1hQQUdFU0laRSAvIDIgKyAxXSAhPSBFTkQpIHsKKyAJCQkJRVJST1IgKGFi c3RyYWN0LT5jb250ZXh0LCAiVW5leHBlY3RlZCBhbnN3ZXIgYnl0ZS4iKTsKKyAJCQkJcmV0dXJu IERDX1NUQVRVU19QUk9UT0NPTDsKKyAJCQl9CisgCisgCQkJLy8gQXBwZW5kIHRoZSBhbnN3ZXIg dG8gdGhlIG91dHB1dCBidWZmZXIuCistCQkJbWVtY3B5IChkYXRhICsgaSAqIFBBR0VTSVpFIC8g MiwgYW5zd2VyLCBQQUdFU0laRSAvIDIpOworKwkJCW1lbWNweSAoZGF0YSArIGkgKiBYUEFHRVNJ WkUgLyAyLCBhbnN3ZXIsIFhQQUdFU0laRSAvIDIpOworIAkJfQorIAl9IGVsc2UgeworIAkJLy8g UmV0dXJuIGFuIGVtcHR5IGRldmljZSBpZGVudGlmaWNhdGlvbiBzdHJpbmcuCistCQltZW1zZXQg KGRhdGEsIDB4MDAsIFBBR0VTSVpFKTsKKysJCW1lbXNldCAoZGF0YSwgMHgwMCwgWFBBR0VTSVpF KTsKKyAJfQorIAorIAlyZXR1cm4gRENfU1RBVFVTX1NVQ0NFU1M7CitAQCAtNjIyLDQ3ICs2MjIs NDcgQEAgb2NlYW5pY192dHByb19kZXZpY2VfcmVhZCAoZGNfZGV2aWNlX3QgKgorIHsKKyAJb2Nl YW5pY192dHByb19kZXZpY2VfdCAqZGV2aWNlID0gKG9jZWFuaWNfdnRwcm9fZGV2aWNlX3QqKSBh YnN0cmFjdDsKKyAKKy0JaWYgKChhZGRyZXNzICUgUEFHRVNJWkUgIT0gMCkgfHwKKy0JCShzaXpl ICAgICUgUEFHRVNJWkUgIT0gMCkpCisrCWlmICgoYWRkcmVzcyAlIFhQQUdFU0laRSAhPSAwKSB8 fAorKwkJKHNpemUgICAgJSBYUEFHRVNJWkUgIT0gMCkpCisgCQlyZXR1cm4gRENfU1RBVFVTX0lO VkFMSURBUkdTOworIAorIAl1bnNpZ25lZCBpbnQgbmJ5dGVzID0gMDsKKyAJd2hpbGUgKG5ieXRl cyA8IHNpemUpIHsKKyAJCS8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIHBhY2thZ2VzLgorLQkJ dW5zaWduZWQgaW50IG5wYWNrZXRzID0gKHNpemUgLSBuYnl0ZXMpIC8gUEFHRVNJWkU7CisrCQl1 bnNpZ25lZCBpbnQgbnBhY2tldHMgPSAoc2l6ZSAtIG5ieXRlcykgLyBYUEFHRVNJWkU7CisgCQlp ZiAobnBhY2tldHMgPiBNVUxUSVBBR0UpCisgCQkJbnBhY2tldHMgPSBNVUxUSVBBR0U7CisgCisg CQkvLyBSZWFkIHRoZSBwYWNrYWdlLgorLQkJdW5zaWduZWQgaW50IGZpcnN0ID0gIGFkZHJlc3Mg LyBQQUdFU0laRTsKKysJCXVuc2lnbmVkIGludCBmaXJzdCA9ICBhZGRyZXNzIC8gWFBBR0VTSVpF OworIAkJdW5zaWduZWQgaW50IGxhc3QgID0gZmlyc3QgKyBucGFja2V0cyAtIDE7CistCQl1bnNp Z25lZCBjaGFyIGFuc3dlclsoUEFHRVNJWkUgKyAxKSAqIE1VTFRJUEFHRV0gPSB7MH07CisrCQl1 bnNpZ25lZCBjaGFyIGFuc3dlclsoWFBBR0VTSVpFICsgMSkgKiBNVUxUSVBBR0VdID0gezB9Owor IAkJdW5zaWduZWQgY2hhciBjb21tYW5kWzZdID0gezB4MzQsCisgCQkJCShmaXJzdCA+PiA4KSAm IDB4RkYsIC8vIGhpZ2gKKyAJCQkJKGZpcnN0ICAgICApICYgMHhGRiwgLy8gbG93CisgCQkJCShs YXN0ID4+IDgpICYgMHhGRiwgLy8gaGlnaAorIAkJCQkobGFzdCAgICAgKSAmIDB4RkYsIC8vIGxv dworIAkJCQkweDAwfTsKKy0JCWRjX3N0YXR1c190IHJjID0gb2NlYW5pY192dHByb190cmFuc2Zl ciAoZGV2aWNlLCBjb21tYW5kLCBzaXplb2YgKGNvbW1hbmQpLCBhbnN3ZXIsIChQQUdFU0laRSAr IDEpICogbnBhY2tldHMpOworKwkJZGNfc3RhdHVzX3QgcmMgPSBvY2VhbmljX3Z0cHJvX3RyYW5z ZmVyIChkZXZpY2UsIGNvbW1hbmQsIHNpemVvZiAoY29tbWFuZCksIGFuc3dlciwgKFhQQUdFU0la RSArIDEpICogbnBhY2tldHMpOworIAkJaWYgKHJjICE9IERDX1NUQVRVU19TVUNDRVNTKQorIAkJ CXJldHVybiByYzsKKyAKKyAJCXVuc2lnbmVkIGludCBvZmZzZXQgPSAwOworIAkJZm9yICh1bnNp Z25lZCBpbnQgaSA9IDA7IGkgPCBucGFja2V0czsgKytpKSB7CisgCQkJLy8gVmVyaWZ5IHRoZSBj aGVja3N1bSBvZiB0aGUgYW5zd2VyLgorLQkJCXVuc2lnbmVkIGNoYXIgY3JjID0gYW5zd2VyW29m ZnNldCArIFBBR0VTSVpFXTsKKy0JCQl1bnNpZ25lZCBjaGFyIGNjcmMgPSBjaGVja3N1bV9hZGRf dWludDggKGFuc3dlciArIG9mZnNldCwgUEFHRVNJWkUsIDB4MDApOworKwkJCXVuc2lnbmVkIGNo YXIgY3JjID0gYW5zd2VyW29mZnNldCArIFhQQUdFU0laRV07CisrCQkJdW5zaWduZWQgY2hhciBj Y3JjID0gY2hlY2tzdW1fYWRkX3VpbnQ4IChhbnN3ZXIgKyBvZmZzZXQsIFhQQUdFU0laRSwgMHgw MCk7CisgCQkJaWYgKGNyYyAhPSBjY3JjKSB7CisgCQkJCUVSUk9SIChhYnN0cmFjdC0+Y29udGV4 dCwgIlVuZXhwZWN0ZWQgYW5zd2VyIGNoZWNrc3VtLiIpOworIAkJCQlyZXR1cm4gRENfU1RBVFVT X1BST1RPQ09MOworIAkJCX0KKyAKKy0JCQltZW1jcHkgKGRhdGEsIGFuc3dlciArIG9mZnNldCwg UEFHRVNJWkUpOworKwkJCW1lbWNweSAoZGF0YSwgYW5zd2VyICsgb2Zmc2V0LCBYUEFHRVNJWkUp OworIAorLQkJCW9mZnNldCArPSBQQUdFU0laRSArIDE7CistCQkJbmJ5dGVzICs9IFBBR0VTSVpF OworLQkJCWFkZHJlc3MgKz0gUEFHRVNJWkU7CistCQkJZGF0YSArPSBQQUdFU0laRTsKKysJCQlv ZmZzZXQgKz0gWFBBR0VTSVpFICsgMTsKKysJCQluYnl0ZXMgKz0gWFBBR0VTSVpFOworKwkJCWFk ZHJlc3MgKz0gWFBBR0VTSVpFOworKwkJCWRhdGEgKz0gWFBBR0VTSVpFOworIAkJfQorIAl9Cisg CistLS0gYS9zcmMvb2NlYW5pY192dHByb19wYXJzZXIuYworKysrIGIvc3JjL29jZWFuaWNfdnRw cm9fcGFyc2VyLmMKK0BAIC0xNTUsNyArMTU1LDcgQEAgb2NlYW5pY192dHByb19wYXJzZXJfZ2V0 X2ZpZWxkIChkY19wYXJzZQorIAljb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhID0gYWJzdHJhY3Qt PmRhdGE7CisgCXVuc2lnbmVkIGludCBzaXplID0gYWJzdHJhY3QtPnNpemU7CisgCistCWlmIChz aXplIDwgNyAqIFBBR0VTSVpFIC8gMikKKysJaWYgKHNpemUgPCA3ICogWFBBR0VTSVpFIC8gMikK KyAJCXJldHVybiBEQ19TVEFUVVNfREFUQUZPUk1BVDsKKyAKKyAJaWYgKCFwYXJzZXItPmNhY2hl ZCkgeworQEAgLTE3MCw3ICsxNzAsNyBAQCBvY2VhbmljX3Z0cHJvX3BhcnNlcl9nZXRfZmllbGQg KGRjX3BhcnNlCisgCQlwYXJzZXItPm1heGRlcHRoID0gc3RhdGlzdGljcy5tYXhkZXB0aDsKKyAJ fQorIAorLQl1bnNpZ25lZCBpbnQgZm9vdGVyID0gc2l6ZSAtIFBBR0VTSVpFOworKwl1bnNpZ25l ZCBpbnQgZm9vdGVyID0gc2l6ZSAtIFhQQUdFU0laRTsKKyAKKyAJdW5zaWduZWQgaW50IG94eWdl biA9IDA7CisgCXVuc2lnbmVkIGludCBtYXhkZXB0aCA9IDA7CitAQCAtMjM3LDcgKzIzNyw3IEBA IG9jZWFuaWNfdnRwcm9fcGFyc2VyX3NhbXBsZXNfZm9yZWFjaCAoZGMKKyAJY29uc3QgdW5zaWdu ZWQgY2hhciAqZGF0YSA9IGFic3RyYWN0LT5kYXRhOworIAl1bnNpZ25lZCBpbnQgc2l6ZSA9IGFi c3RyYWN0LT5zaXplOworIAorLQlpZiAoc2l6ZSA8IDcgKiBQQUdFU0laRSAvIDIpCisrCWlmIChz aXplIDwgNyAqIFhQQUdFU0laRSAvIDIpCisgCQlyZXR1cm4gRENfU1RBVFVTX0RBVEFGT1JNQVQ7 CisgCisgCXVuc2lnbmVkIGludCB0aW1lID0gMDsKK0BAIC0yNTksMTQgKzI1OSwxNCBAQCBvY2Vh bmljX3Z0cHJvX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGRjCisgCS8vIEluaXRpYWxpemUgdGhl IHN0YXRlIGZvciB0aGUgdGltZXN0YW1wIHByb2Nlc3NpbmcuCisgCXVuc2lnbmVkIGludCB0aW1l c3RhbXAgPSAwLCBjb3VudCA9IDAsIGkgPSAwOworIAorLQl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0g NSAqIFBBR0VTSVpFIC8gMjsKKy0Jd2hpbGUgKG9mZnNldCArIFBBR0VTSVpFIC8gMiA8PSBzaXpl IC0gUEFHRVNJWkUpIHsKKysJdW5zaWduZWQgaW50IG9mZnNldCA9IDUgKiBYUEFHRVNJWkUgLyAy OworKwl3aGlsZSAob2Zmc2V0ICsgWFBBR0VTSVpFIC8gMiA8PSBzaXplIC0gWFBBR0VTSVpFKSB7 CisgCQlkY19zYW1wbGVfdmFsdWVfdCBzYW1wbGUgPSB7MH07CisgCisgCQkvLyBJZ25vcmUgZW1w dHkgc2FtcGxlcy4KKy0JCWlmIChhcnJheV9pc2VxdWFsIChkYXRhICsgb2Zmc2V0LCBQQUdFU0la RSAvIDIsIDB4MDApIHx8CistCQkJYXJyYXlfaXNlcXVhbCAoZGF0YSArIG9mZnNldCwgUEFHRVNJ WkUgLyAyLCAweEZGKSkgeworLQkJCW9mZnNldCArPSBQQUdFU0laRSAvIDI7CisrCQlpZiAoYXJy YXlfaXNlcXVhbCAoZGF0YSArIG9mZnNldCwgWFBBR0VTSVpFIC8gMiwgMHgwMCkgfHwKKysJCQlh cnJheV9pc2VxdWFsIChkYXRhICsgb2Zmc2V0LCBYUEFHRVNJWkUgLyAyLCAweEZGKSkgeworKwkJ CW9mZnNldCArPSBYUEFHRVNJWkUgLyAyOworIAkJCWNvbnRpbnVlOworIAkJfQorIAorQEAgLTI4 OCwxMiArMjg4LDEyIEBAIG9jZWFuaWNfdnRwcm9fcGFyc2VyX3NhbXBsZXNfZm9yZWFjaCAoZGMK KyAJCQkJLy8gV2l0aCBhIGRlcHRoIGJhc2VkIHNhbXBsZSBpbnRlcnZhbCwgdGhlIGV4YWN0IG51 bWJlcgorIAkJCQkvLyBvZiBzYW1wbGVzIGZvciBhIHNpbmdsZSB0aW1lc3RhbXAgbmVlZHMgdG8g YmUgY291bnRlZC4KKyAJCQkJY291bnQgPSAxOworLQkJCQl1bnNpZ25lZCBpbnQgaWR4ID0gb2Zm c2V0ICsgUEFHRVNJWkUgLyAyIDsKKy0JCQkJd2hpbGUgKGlkeCArIFBBR0VTSVpFIC8gMiA8PSBz aXplIC0gUEFHRVNJWkUpIHsKKysJCQkJdW5zaWduZWQgaW50IGlkeCA9IG9mZnNldCArIFhQQUdF U0laRSAvIDIgOworKwkJCQl3aGlsZSAoaWR4ICsgWFBBR0VTSVpFIC8gMiA8PSBzaXplIC0gWFBB R0VTSVpFKSB7CisgCQkJCQkvLyBJZ25vcmUgZW1wdHkgc2FtcGxlcy4KKy0JCQkJCWlmIChhcnJh eV9pc2VxdWFsIChkYXRhICsgaWR4LCBQQUdFU0laRSAvIDIsIDB4MDApIHx8CistCQkJCQkJYXJy YXlfaXNlcXVhbCAoZGF0YSArIGlkeCwgUEFHRVNJWkUgLyAyLCAweEZGKSkgeworLQkJCQkJCWlk eCArPSBQQUdFU0laRSAvIDI7CisrCQkJCQlpZiAoYXJyYXlfaXNlcXVhbCAoZGF0YSArIGlkeCwg WFBBR0VTSVpFIC8gMiwgMHgwMCkgfHwKKysJCQkJCQlhcnJheV9pc2VxdWFsIChkYXRhICsgaWR4 LCBYUEFHRVNJWkUgLyAyLCAweEZGKSkgeworKwkJCQkJCWlkeCArPSBYUEFHRVNJWkUgLyAyOwor IAkJCQkJCWNvbnRpbnVlOworIAkJCQkJfQorIAorQEAgLTMwMSw3ICszMDEsNyBAQCBvY2Vhbmlj X3Z0cHJvX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGRjCisgCQkJCQlpZiAobmV4dCAhPSBjdXJy ZW50KQorIAkJCQkJCWJyZWFrOworIAorLQkJCQkJaWR4ICs9IFBBR0VTSVpFIC8gMjsKKysJCQkJ CWlkeCArPSBYUEFHRVNJWkUgLyAyOworIAkJCQkJY291bnQrKzsKKyAJCQkJfQorIAkJCX0KK0BA IC0zMTcsNyArMzE3LDcgQEAgb2NlYW5pY192dHByb19wYXJzZXJfc2FtcGxlc19mb3JlYWNoIChk YworIAkJCX0KKyAJCQlpZiAoaSA+PSBjb3VudCkgeworIAkJCQlXQVJOSU5HIChhYnN0cmFjdC0+ Y29udGV4dCwgIlVuZXhwZWN0ZWQgc2FtcGxlIHdpdGggdGhlIHNhbWUgdGltZXN0YW1wIGlnbm9y ZWQuIik7CistCQkJCW9mZnNldCArPSBQQUdFU0laRSAvIDI7CisrCQkJCW9mZnNldCArPSBYUEFH RVNJWkUgLyAyOworIAkJCQljb250aW51ZTsKKyAJCQl9CisgCQl9CitAQCAtMzM1LDcgKzMzNSw3 IEBAIG9jZWFuaWNfdnRwcm9fcGFyc2VyX3NhbXBsZXNfZm9yZWFjaCAoZGMKKyAKKyAJCS8vIFZl bmRvciBzcGVjaWZpYyBkYXRhCisgCQlzYW1wbGUudmVuZG9yLnR5cGUgPSBTQU1QTEVfVkVORE9S X09DRUFOSUNfVlRQUk87CistCQlzYW1wbGUudmVuZG9yLnNpemUgPSBQQUdFU0laRSAvIDI7Cisr CQlzYW1wbGUudmVuZG9yLnNpemUgPSBYUEFHRVNJWkUgLyAyOworIAkJc2FtcGxlLnZlbmRvci5k YXRhID0gZGF0YSArIG9mZnNldDsKKyAJCWlmIChjYWxsYmFjaykgY2FsbGJhY2sgKERDX1NBTVBM RV9WRU5ET1IsIHNhbXBsZSwgdXNlcmRhdGEpOworIAorQEAgLTM3NCw3ICszNzQsNyBAQCBvY2Vh bmljX3Z0cHJvX3BhcnNlcl9zYW1wbGVzX2ZvcmVhY2ggKGRjCisgCQkJaWYgKGNhbGxiYWNrKSBj YWxsYmFjayAoRENfU0FNUExFX0RFQ08sIHNhbXBsZSwgdXNlcmRhdGEpOworIAkJfQorIAorLQkJ b2Zmc2V0ICs9IFBBR0VTSVpFIC8gMjsKKysJCW9mZnNldCArPSBYUEFHRVNJWkUgLyAyOworIAl9 CisgCisgCXJldHVybiBEQ19TVEFUVVNfU1VDQ0VTUzsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGli ZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmRpdmVjb21wdXRl ci1zdWJzdXJmYWNlL3RlbXBsYXRlCmluZGV4IDMwYjU5NWRmZDE3MC4uZTk5Njk4NDM1MmMwIDEw MDY0NAotLS0gYS9zcmNwa2dzL2xpYmRpdmVjb21wdXRlci1zdWJzdXJmYWNlL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvbGliZGl2ZWNvbXB1dGVyLXN1YnN1cmZhY2UvdGVtcGxhdGUKQEAgLTUsMTMg KzUsMTMgQEAgcmV2aXNpb249MQogd3Jrc3JjPSJsaWJkaXZlY29tcHV0ZXItc3Vic3VyZmFjZS1i cmFuY2gtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVw ZW5kcz0ibGlidG9vbCBhdXRvbWFrZSBhdXRvY29uZiBwa2ctY29uZmlnIgorbWFrZWRlcGVuZHM9 ImxpYnVzYi1kZXZlbCBsaWJtdHAtZGV2ZWwgaGlkYXBpLWRldmVsIGxpYmJsdWV0b290aC1kZXZl bCIKIHNob3J0X2Rlc2M9IlN1YnN1cmZhY2UgdmVyc2lvbiBvZiBsaWJkaXZlY29tcHV0ZXIiCiBt YWludGFpbmVyPSJBbGFuIEJyb3duIDxhZGJyb3duQHJvY2tldG1haWwuY29tPiIKIGxpY2Vuc2U9 IkxHUEwtMi4xLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly9zdWJzdXJmYWNlLWRpdmVsb2cub3Jn LyIKIGRpc3RmaWxlcz0iJHtob21lcGFnZX0vZG93bmxvYWRzLyR7cGtnbmFtZX0tYnJhbmNoLSR7 dmVyc2lvbn0udGd6IgogY2hlY2tzdW09OTRiNjlkMWIxMmQzYzM1Mzc2ZmRjZTk2MDg4YzBjY2Uy MTM5MmEzN2EwZmY2Nzk5MTI0NjE3MWQyMjA1NWMwMgotc2hsaWJfcHJvdmlkZXM9ImxpYmRpdmVj b21wdXRlci5zbyIKIAogcHJlX2NvbmZpZ3VyZSgpIHsKIAlhdXRvcmVjb25mIC1maQoKRnJvbSBh OTM2Nzk3YzU1YWJmNWY4NzgxMzgyYjY4YTc5NWNhMGY4NDJhYjFhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBD PUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyNiBO b3YgMjAyMSAxMToxOTo1MCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggNi82XSBmaXh1cCEgTmV3IHBh Y2thZ2U6IFN1YnN1cmZhY2UtNS4wLjUKCi0tLQogLi4uL3BhdGNoZXMvY29yZS1kZXBlbmRzLWdl bmVyYXRlZC11aS5wYXRjaCAgICAgICAgICAgfCAxMCArKysrKysrKysrCiBzcmNwa2dzL1N1YnN1 cmZhY2UvcGF0Y2hlcy9tYWtlLW9yLW5pbmphLnBhdGNoICAgICAgICB8IDExICsrKysrKysrKysr CiBzcmNwa2dzL1N1YnN1cmZhY2UvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA2ICstLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvU3Vic3VyZmFjZS9wYXRjaGVzL2NvcmUt ZGVwZW5kcy1nZW5lcmF0ZWQtdWkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL1N1 YnN1cmZhY2UvcGF0Y2hlcy9tYWtlLW9yLW5pbmphLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9TdWJzdXJmYWNlL3BhdGNoZXMvY29yZS1kZXBlbmRzLWdlbmVyYXRlZC11aS5wYXRjaCBiL3Ny Y3BrZ3MvU3Vic3VyZmFjZS9wYXRjaGVzL2NvcmUtZGVwZW5kcy1nZW5lcmF0ZWQtdWkucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMzVhYTk5ZWY4NmUKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL1N1YnN1cmZhY2UvcGF0Y2hlcy9jb3JlLWRlcGVuZHMt Z2VuZXJhdGVkLXVpLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL0NNYWtlTGlzdHMudHh0 CisrKysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTQxNCw2ICs0MTQsNyBAQCBlbHNlaWYgKFNVQlNV UkZBQ0VfVEFSR0VUX0VYRUNVVEFCTEUgTUFUCisgCWFkZF9kZXBlbmRlbmNpZXMoc3Vic3VyZmFj ZV9pbnRlcmZhY2Ugc3Vic3VyZmFjZV9nZW5lcmF0ZWRfdWkpCisgCWFkZF9kZXBlbmRlbmNpZXMo c3Vic3VyZmFjZV9wcm9maWxlIHN1YnN1cmZhY2VfZ2VuZXJhdGVkX3VpKQorIAlhZGRfZGVwZW5k ZW5jaWVzKHN1YnN1cmZhY2VfbW9kZWxzX2Rlc2t0b3Agc3Vic3VyZmFjZV9nZW5lcmF0ZWRfdWkp CisrCWFkZF9kZXBlbmRlbmNpZXMoc3Vic3VyZmFjZV9jb3JlbGliIHN1YnN1cmZhY2VfZ2VuZXJh dGVkX3VpKQorIAlhZGRfZGVwZW5kZW5jaWVzKHN1YnN1cmZhY2VfZ2VuZXJhdGVkX3VpIHZlcnNp b24pCisgZWxzZWlmIChTVUJTVVJGQUNFX1RBUkdFVF9FWEVDVVRBQkxFIE1BVENIRVMgIkRvd25s b2FkZXJFeGVjdXRhYmxlIikKKyAJc2V0KERPV05MT0FERVJfQVBQCmRpZmYgLS1naXQgYS9zcmNw a2dzL1N1YnN1cmZhY2UvcGF0Y2hlcy9tYWtlLW9yLW5pbmphLnBhdGNoIGIvc3JjcGtncy9TdWJz dXJmYWNlL3BhdGNoZXMvbWFrZS1vci1uaW5qYS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjA4ZjExYTQzNGI1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvU3Vic3VyZmFjZS9wYXRjaGVzL21ha2Utb3ItbmluamEucGF0Y2gKQEAgLTAsMCArMSwxMSBA QAorLS0tIGEvY21ha2UvTW9kdWxlcy9SdW5PbkJ1aWxkRGlyLmNtYWtlCisrKysgYi9jbWFrZS9N b2R1bGVzL1J1bk9uQnVpbGREaXIuY21ha2UKK0BAIC0yNSw3ICsyNSw3IEBAIGlmKE5PVCBOT19E T0NTKQorIAlhZGRfY3VzdG9tX3RhcmdldCgKKyAJCWRvY3VtZW50YXRpb24gQUxMCisgCQlDT01N QU5ECistCQkke0NNQUtFX01BS0VfUFJPR1JBTX0gLUMgJHtDTUFLRV9TT1VSQ0VfRElSfS9Eb2N1 bWVudGF0aW9uIE9VVD0ke0NNQUtFX0JJTkFSWV9ESVJ9L0RvY3VtZW50YXRpb24vIGRvYworKwkJ bWFrZSAtQyAke0NNQUtFX1NPVVJDRV9ESVJ9L0RvY3VtZW50YXRpb24gT1VUPSR7Q01BS0VfQklO QVJZX0RJUn0vRG9jdW1lbnRhdGlvbi8gZG9jCisgCQlERVBFTkRTIGRvY3VtZW50YXRpb25MaW5r CisgCSkKKyBlbmRpZigpCmRpZmYgLS1naXQgYS9zcmNwa2dzL1N1YnN1cmZhY2UvdGVtcGxhdGUg Yi9zcmNwa2dzL1N1YnN1cmZhY2UvdGVtcGxhdGUKaW5kZXggNGJjODA1NjlhZWViLi5jOTNjZGJl MTllZTUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvU3Vic3VyZmFjZS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL1N1YnN1cmZhY2UvdGVtcGxhdGUKQEAgLTQsOSArNCw3IEBAIHZlcnNpb249NS4wLjUKIHJl dmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURTVUJTVVJGQUNF X1RBUkdFVF9FWEVDVVRBQkxFPURlc2t0b3BFeGVjdXRhYmxlCi0gLURDTUFLRV9CVUlMRF9UWVBF PVJlbGVhc2UgLURCVFNVUFBPUlQ9T04gLUROT19VU0VSTUFOVUFMPU9GRgotIC1ETk9fUFJJTlRJ Tkc9T0ZGIgotbWFrZV9jbWQ9bWFrZQorIC1EQlRTVVBQT1JUPU9OIC1ETk9fVVNFUk1BTlVBTD1P RkYgLUROT19QUklOVElORz1PRkYiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b2Nv bmYgYXV0b21ha2UgbGlidG9vbCBxdDUtZGV2ZWwiCiBtYWtlZGVwZW5kcz0ibGliZGl2ZWNvbXB1 dGVyLXN1YnN1cmZhY2UtZGV2ZWwgbGliYmx1ZXRvb3RoLWRldmVsIGxpYmN1cmwtZGV2ZWwKICBz cWxpdGUtZGV2ZWwgbGlic3NoMi1kZXZlbCBldWRldi1saWJ1ZGV2LWRldmVsIGxpYnVzYi1kZXZl bCBsaWJ4bWwyLWRldmVsCkBAIC0yMCw1ICsxOCwzIEBAIGxpY2Vuc2U9IkdQTC0yLjAtb25seSIK IGhvbWVwYWdlPSJodHRwczovL3N1YnN1cmZhY2UtZGl2ZWxvZy5vcmcvIgogZGlzdGZpbGVzPSIk e2hvbWVwYWdlfS9kb3dubG9hZHMvJHtwa2duYW1lfS0ke3ZlcnNpb259LnRneiIKIGNoZWNrc3Vt PWZlMGZmOGIxZjY1NDQxYjJhNzZhMjdhMDA3MmZlNWZhYWY3MzRlZTA4ZjVlMTk4NDU0MDBkMGZj M2QzNTU0MWMKLQotZXhwb3J0IENNQUtFX0dFTkVSQVRPUj0iVW5peCBNYWtlZmlsZXMiCg== --===============0811341741569690999==--