From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 70de37e7 for ; Tue, 3 Sep 2019 18:16:37 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============1146426604861075469==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] WIP: Openjdk 11 To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 03 Sep 2019 20:16:37 +0200 Message-ID: <20190903181637.yOU8XoUL4_jJTJmdHVep4ngMstvMkPHERWbSkmLq4tk@z> GitHub notification mails are now in MIME to allow UTF8. --===============1146426604861075469== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkga251c2JhdW0gYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2tu dXNiYXVtL3ZvaWQtcGFja2FnZXMgb3Blbmpkay0xMQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTM3MjEKCldJUDogT3BlbmpkayAxMQpJJ2QgbXVjaCBy YXRoZXIgaGF2ZSBAcTY2J3Mgc29sdXRpb24gKCMzMjM3KSBidXQgdGhpcyBzZWVtcyB0byBidWls ZCBmb3IgYXQgbGVhc3QgeDg2XzY0LCBpNjg2LCBhYXJjaDY0Lg0KDQpUaGlzIGJvb3RzdHJhcHMg b3Blbmpkay0xMSBmcm9tIG9wZW5qZGstMTEtYmluLCB3aGljaCBpcyB0aGUgYmluYXJ5IHJlZmVy ZW5jZSBpbXBsZW1lbnRhdGlvbi4NCg0KVHJhdmlzIHdpbGwgZmFpbCBiZWNhdXNlIHRoZSBidWls ZHMgdGFrZSB0b28gbG9uZywgYnV0IEkndmUgdGVzdGVkIG9uIG15IGxvY2FsIG1hY2hpbmUgYW5k IHRoZXkgYnVpbGQuIAoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzEzNzIxLnBhdGNoIGlzIGF0dGFjaGVk --===============1146426604861075469== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openjdk-11-13721.patch" RnJvbSA5YmQ0Y2Q1Yzk5NTNjNDNkNGVhMGJlYTg5MWI1OTZmN2Y0ODc5ZWZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLeWxlIE51c2JhdW0gPGt5bGVudXNiYXVtQGdyYW51bGFyLmFn PgpEYXRlOiBGcmksIDE2IEF1ZyAyMDE5IDE3OjIwOjEzIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAx LzJdIE5ldyBwYWNrYWdlOiBvcGVuamRrLTExLWJpbi0xMSsyOAoKLS0tCiBzcmNwa2dzL29wZW5q ZGstMTEtYmluL3RlbXBsYXRlIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiAxIGZpbGUgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvb3Blbmpkay0xMS1iaW4vdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5q ZGstMTEtYmluL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrLTExLWJpbi90ZW1wbGF0ZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjRkZmFhZWYyMjkKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGstMTEtYmluL3RlbXBsYXRlCkBAIC0wLDAgKzEsNzMg QEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGstMTEtYmluJworcGtnbmFtZT1vcGVuamRr LTExLWJpbgordmVyc2lvbj0xMSsyOAorcmV2aXNpb249MQorYXJjaHM9Ing4Nl82NCIKK3dya3Ny Yz1qZGstMTEKK3Nob3J0X2Rlc2M9Ik9mZmljaWFsIFJlZmVyZW5jZSBJbXBsZW1lbnRhdGlvbiBm b3IgSmF2YSBTRSAxMSIKK21haW50YWluZXI9Ikt5bGUgTnVzYmF1bSA8a251c2JhdW0rdm9pZEBz ZGYub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly9q ZGsuamF2YS5uZXQvamF2YS1zZS1yaS8xMSIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5q YXZhLm5ldC9vcGVuamRrL2pkazExL3JpL29wZW5qZGstJHt2ZXJzaW9ufV9saW51eC14NjRfYmlu LnRhci5neiIKK2NoZWNrc3VtPTM3ODRjZmM0NjcwZjBkNGM1NDgyNjA0YzdjNTEzYmViMWE5MmIw MDVmNTY5ZGY5YmYxMDBlOGJlZjY2MTBmMmUKK25vcGllPXRydWUKKworYWx0ZXJuYXRpdmVzPSIK KyBqYXZhOi91c3IvYmluL2phdmE6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZh CisgamF2YTovdXNyL2Jpbi9qYXZhd3M6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9q YXZhd3MKKyBqYXZhOi91c3IvYmluL2pjb250cm9sOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJp bi9iaW4vamNvbnRyb2wKKyBqYXZhOi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3Blbmpkay0x MS1iaW4vYmluL2pqcworIGphdmE6L3Vzci9iaW4va2V5dG9vbDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS1iaW4vYmluL2tleXRvb2wKKyBqYXZhOi91c3IvYmluL29yYmQ6L3Vzci9saWIvanZtL29w ZW5qZGstMTEtYmluL2Jpbi9vcmJkCisgamF2YTovdXNyL2Jpbi9wYWNrMjAwOi91c3IvbGliL2p2 bS9vcGVuamRrLTExLWJpbi9iaW4vcGFjazIwMAorIGphdmE6L3Vzci9iaW4vcG9saWN5dG9vbDov dXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL3BvbGljeXRvb2wKKyBqYXZhOi91c3IvYmlu L3JtaWQ6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9ybWlkCisgamF2YTovdXNyL2Jp bi9ybWlyZWdpc3RyeTovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL3JtaXJlZ2lzdHJ5 CisgamF2YTovdXNyL2Jpbi9zZXJ2ZXJ0b29sOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9i aW4vc2VydmVydG9vbAorIGphdmE6L3Vzci9iaW4vdG5hbWVzZXJ2Oi91c3IvbGliL2p2bS9vcGVu amRrLTExLWJpbi9iaW4vdG5hbWVzZXJ2CisgamF2YTovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9s aWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi91bnBhY2syMDAKKworIGpkazovdXNyL2Jpbi9Db250 cm9sUGFuZWw6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9Db250cm9sUGFuZWwKKyBq ZGs6L3Vzci9iaW4vYXBwbGV0dmlld2VyOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4v YXBwbGV0dmlld2VyCisgamRrOi91c3IvYmluL2V4dGNoZWNrOi91c3IvbGliL2p2bS9vcGVuamRr LTExLWJpbi9iaW4vZXh0Y2hlY2sKKyBqZGs6L3Vzci9iaW4vaWRsajovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS1iaW4vYmluL2lkbGoKKyBqZGs6L3Vzci9iaW4vamFyOi91c3IvbGliL2p2bS9vcGVu amRrLTExLWJpbi9iaW4vamFyCisgamRrOi91c3IvYmluL2phcnNpZ25lcjovdXNyL2xpYi9qdm0v b3Blbmpkay0xMS1iaW4vYmluL2phcnNpZ25lcgorIGpkazovdXNyL2Jpbi9qYXZhLXJtaS5jZ2k6 L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZhLXJtaS5jZ2kKKyBqZGs6L3Vzci9i aW4vamF2YWM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZhYworIGpkazovdXNy L2Jpbi9qYXZhZG9jOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vamF2YWRvYworIGpk azovdXNyL2Jpbi9qYXZhZnhwYWNrYWdlcjovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmlu L2phdmFmeHBhY2thZ2VyCisgamRrOi91c3IvYmluL2phdmFoOi91c3IvbGliL2p2bS9vcGVuamRr LTExLWJpbi9iaW4vamF2YWgKKyBqZGs6L3Vzci9iaW4vamF2YXA6L3Vzci9saWIvanZtL29wZW5q ZGstMTEtYmluL2Jpbi9qYXZhcAorIGpkazovdXNyL2Jpbi9qYXZhcGFja2FnZXI6L3Vzci9saWIv anZtL29wZW5qZGstMTEtYmluL2Jpbi9qYXZhcGFja2FnZXIKKyBqZGs6L3Vzci9iaW4vamNtZDov dXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2pjbWQKKyBqZGs6L3Vzci9iaW4vamNvbnNv bGU6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qY29uc29sZQorIGpkazovdXNyL2Jp bi9qZGI6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qZGIKKyBqZGs6L3Vzci9iaW4v amRlcHM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qZGVwcworIGpkazovdXNyL2Jp bi9qaGF0Oi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vamhhdAorIGpkazovdXNyL2Jp bi9qaW5mbzovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2ppbmZvCisgamRrOi91c3Iv YmluL2ptYXA6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qbWFwCisgamRrOi91c3Iv YmluL2ptYzovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2ptYworIGpkazovdXNyL2Jp bi9qbWMuaW5pOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vam1jLmluaQorIGpkazov dXNyL2Jpbi9qcHM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9qcHMKKyBqZGs6L3Vz ci9iaW4vanJ1bnNjcmlwdDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL2pydW5zY3Jp cHQKKyBqZGs6L3Vzci9iaW4vanNhZGVidWdkOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9i aW4vanNhZGVidWdkCisgamRrOi91c3IvYmluL2pzdGFjazovdXNyL2xpYi9qdm0vb3Blbmpkay0x MS1iaW4vYmluL2pzdGFjaworIGpkazovdXNyL2Jpbi9qc3RhdDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS1iaW4vYmluL2pzdGF0CisgamRrOi91c3IvYmluL2pzdGF0ZDovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS1iaW4vYmluL2pzdGF0ZAorIGpkazovdXNyL2Jpbi9qdmlzdWFsdm06L3Vzci9saWIv anZtL29wZW5qZGstMTEtYmluL2Jpbi9qdmlzdWFsdm0KKyBqZGs6L3Vzci9iaW4vbmF0aXZlMmFz Y2lpOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9iaW4vbmF0aXZlMmFzY2lpCisgamRrOi91 c3IvYmluL3JtaWM6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jpbi9ybWljCisgamRrOi91 c3IvYmluL3NjaGVtYWdlbjovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4vYmluL3NjaGVtYWdl bgorIGpkazovdXNyL2Jpbi9zZXJpYWx2ZXI6L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluL2Jp bi9zZXJpYWx2ZXIKKyBqZGs6L3Vzci9iaW4vd3NnZW46L3Vzci9saWIvanZtL29wZW5qZGstMTEt YmluL2Jpbi93c2dlbgorIGpkazovdXNyL2Jpbi93c2ltcG9ydDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS1iaW4vYmluL3dzaW1wb3J0CisgamRrOi91c3IvYmluL3hqYzovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS1iaW4vYmluL3hqYworCisgamF2YS1wbHVnaW46L3Vzci9saWIvbW96aWxsYS9wbHVn aW5zL2xpYm5wanAyLnNvOi91c3IvbGliL2p2bS9vcGVuamRrLTExLWJpbi9qcmUvbGliLyRfYXJj aC9saWJucGpwMi5zbworIgorCitkb19pbnN0YWxsKCkgeworCXZta2RpciAvdXNyL2xpYi9qdm0v b3Blbmpkay0xMS1iaW4KKwljcCAtUiAuLyogJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRr LTExLWJpbgorfQoKRnJvbSBjMGUwODFhYWVkYWMyY2Q2MWIwNTZjOGFkZDQ5NTM4ZmNhMTJiZjM5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLeWxlIE51c2JhdW0gPGt5bGVudXNiYXVt QGdyYW51bGFyLmFnPgpEYXRlOiBGcmksIDE2IEF1ZyAyMDE5IDE3OjIyOjA5IC0wNTAwClN1Ympl Y3Q6IFtQQVRDSCAyLzJdIE5ldyBwYWNrYWdlOiBvcGVuamRrLTExLTExKzI4CgotLS0KIGNvbW1v bi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmNwa2dz L29wZW5qZGstMTEtZG9jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9v cGVuamRrLTExLXNyYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3Mvb3Bl bmpkay0xMS9maWxlcy9ta2NhY2VydHMgICAgICAgICAgICB8IDIxNCArKysrKysrCiAuLi4vZmls ZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAgMTAgKwogLi4uL29wZW5q ZGstMTEvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgIHwgIDI5ICsKIC4uLi9vcGVuamRr LTExL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCB8IDUzNiArKysrKysrKysrKysrKysr KysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjNjRsZS5wYXRjaCAgICAgICAgICB8IDIyMCAr KysrKysrCiAuLi4vb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgfCAx MjkgKysrKysKIHNyY3BrZ3Mvb3Blbmpkay0xMS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICB8 IDE4NiArKysrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDEzMzIgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTIwMDAwIHNyY3BrZ3Mvb3Blbmpkay0xMS1kb2MKIGNyZWF0ZSBtb2RlIDEyMDAwMCBz cmNwa2dzL29wZW5qZGstMTEtc3JjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRr LTExL2ZpbGVzL21rY2FjZXJ0cwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpkay0x MS9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNo ZXMvcHBjNjRsZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpkay0xMS9m aWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9v cGVuamRrLTExL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9z aGxpYnMKaW5kZXggMTE0NDJmMWI5MzYuLmU4NmM5MmM3NGQ4IDEwMDY0NAotLS0gYS9jb21tb24v c2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTE3NzUsNiArMTc3NSwxMiBAQCBsaWJhd3Rf eGF3dC5zbyBvcGVuamRrLWpyZS04dTIwXzEKIGxpYmphdmEuc28gb3Blbmpkay1qcmUtOHUyMF8x CiBsaWJqbGkuc28gb3Blbmpkay1qcmUtOHUyMF8xCiBsaWJqdm0uc28gb3Blbmpkay1qcmUtOHUy MF8xCitsaWJqYXd0LnNvIG9wZW5qZGstMTEtMTEuMC40KzExXzEKK2xpYmF3dC5zbyBvcGVuamRr LTExLTExLjAuNCsxMV8xCitsaWJhd3RfeGF3dC5zbyBvcGVuamRrLTExLTExLjAuNCsxMV8xCits aWJqYXZhLnNvIG9wZW5qZGstMTEtMTEuMC40KzExXzEKK2xpYmpsaS5zbyBvcGVuamRrLTExLTEx LjAuNCsxMV8xCitsaWJqdm0uc28gb3Blbmpkay0xMS0xMS4wLjQrMTFfMQogbGlidWNsLnNvLjUg bGlidWNsLTAuOC4xXzEKIGxpYmhhbmRsZS5zby4xIHhmc3Byb2dzLTMuMi4xXzEKIGxpYm5mbmV0 bGluay5zby4wIGxpYm5mbmV0bGluay0xLjAuMV8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5q ZGstMTEtZG9jIGIvc3JjcGtncy9vcGVuamRrLTExLWRvYwpuZXcgZmlsZSBtb2RlIDEyMDAwMApp bmRleCAwMDAwMDAwMDAwMC4uN2ZhYmE3MWI5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L29wZW5qZGstMTEtZG9jCkBAIC0wLDAgKzEgQEAKK29wZW5qZGstMTEKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEtc3JjIGIvc3JjcGtn cy9vcGVuamRrLTExLXNyYwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMC4u N2ZhYmE3MWI5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGstMTEtc3JjCkBA IC0wLDAgKzEgQEAKK29wZW5qZGstMTEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbWtjYWNlcnRzIGIvc3JjcGtncy9vcGVu amRrLTExL2ZpbGVzL21rY2FjZXJ0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMmRiNWE3N2JiMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGstMTEv ZmlsZXMvbWtjYWNlcnRzCkBAIC0wLDAgKzEsMjE0IEBACisjIS9iaW4vc2gKKyMgU2NyaXB0IHBy b3ZpZGVkIGJ5IGh0dHA6Ly93d3cubGludXhmcm9tc2NyYXRjaC5vcmcvYmxmcy92aWV3L3N2bi9n ZW5lcmFsL29wZW5qZGsuaHRtbCNvamRrLWNlcnRzCisjIEVCIDIwMTQxMjE3OiByZW1vdmVkIGJh c2hpc21zCisjIFNpbXBsZSBzY3JpcHQgdG8gZXh0cmFjdCB4NTA5IGNlcnRpZmljYXRlcyBhbmQg Y3JlYXRlIGEgSlJFIGNhY2VydHMgZmlsZS4KKworZ2V0X2FyZ3MoKQorICAgIHsKKyAgICAgICAg aWYgdGVzdCAteiAiJHsxfSIgOyB0aGVuCisgICAgICAgICAgICBzaG93aGVscAorICAgICAgICAg ICAgZXhpdCAxCisgICAgICAgIGZpCisKKyAgICAgICAgd2hpbGUgdGVzdCAtbiAiJHsxfSIgOyBk bworICAgICAgICAgICAgY2FzZSAiJHsxfSIgaW4KKyAgICAgICAgICAgICAgICAtZiB8IC0tY2Fm aWxlKQorICAgICAgICAgICAgICAgICAgICBjaGVja19hcmcgJDEgJDIKKyAgICAgICAgICAgICAg ICAgICAgQ0FGSUxFPSIkezJ9IgorICAgICAgICAgICAgICAgICAgICBzaGlmdCAyCisgICAgICAg ICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgLWQgfCAtLWNhZGlyKQorICAgICAgICAg ICAgICAgICAgICBjaGVja19hcmcgJDEgJDIKKyAgICAgICAgICAgICAgICAgICAgQ0FESVI9IiR7 Mn0iCisgICAgICAgICAgICAgICAgICAgIHNoaWZ0IDIKKyAgICAgICAgICAgICAgICAgICAgOzsK KyAgICAgICAgICAgICAgICAtbyB8IC0tb3V0ZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgY2hl Y2tfYXJnICQxICQyCisgICAgICAgICAgICAgICAgICAgIE9VVEZJTEU9IiR7Mn0iCisgICAgICAg ICAgICAgICAgICAgIHNoaWZ0IDIKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAg ICAgICAtayB8IC0ta2V5dG9vbCkKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tfYXJnICQxICQy CisgICAgICAgICAgICAgICAgICAgIEtFWVRPT0w9IiR7Mn0iCisgICAgICAgICAgICAgICAgICAg IHNoaWZ0IDIKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAtcyB8IC0t b3BlbnNzbCkKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tfYXJnICQxICQyCisgICAgICAgICAg ICAgICAgICAgIE9QRU5TU0w9IiR7Mn0iCisgICAgICAgICAgICAgICAgICAgIHNoaWZ0IDIKKyAg ICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAtaCB8IC0taGVscCkKKyAgICAg ICAgICAgICAgICAgICAgc2hvd2hlbHAKKyAgICAgICAgICAgICAgICAgICAgZXhpdCAwCisgICAg ICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgKikKKyAgICAgICAgICAgICAgICAg ICAgc2hvd2hlbHAKKyAgICAgICAgICAgICAgICAgICAgZXhpdCAxCisgICAgICAgICAgICAgICAg ICAgIDs7CisgICAgICAgICAgICBlc2FjCisgICAgICAgIGRvbmUKKyAgICB9CisKK2NoZWNrX2Fy ZygpCisgICAgeworICAgICAgICBlY2hvICIkezJ9IiB8IGdyZXAgLXYgIl4tIiA+IC9kZXYvbnVs bAorICAgICAgICBpZiBbIC16ICIkPyIgLW8gISAtbiAiJDIiIF07IHRoZW4KKyAgICAgICAgICAg IGVjaG8gIkVycm9yOiAgJDEgcmVxdWlyZXMgYSB2YWxpZCBhcmd1bWVudC4iCisgICAgICAgICAg ICBleGl0IDEKKyAgICAgICAgZmkKKyAgICB9CisKKyMgVGhlIGRhdGUgYmluYXJ5IGlzIG5vdCBy ZWxpYWJsZSBvbiAzMmJpdCBzeXN0ZW1zIGZvciBkYXRlcyBhZnRlciAyMDM4CitteWRhdGUoKQor ICAgIHsKKyAgICAgICAgbG9jYWwgeT0kKCBlY2hvICQxIHwgY3V0IC1kIiAiIC1mNCApCisgICAg ICAgIGxvY2FsIE09JCggZWNobyAkMSB8IGN1dCAtZCIgIiAtZjEgKQorICAgICAgICBsb2NhbCBk PSQoIGVjaG8gJDEgfCBjdXQgLWQiICIgLWYyICkKKyAgICAgICAgbG9jYWwgbQorCisgICAgICAg IGlmIFsgJHtkfSAtbHQgMTAgXTsgdGhlbiBkPSIwJHtkfSI7IGZpCisKKyAgICAgICAgY2FzZSAk TSBpbgorICAgICAgICAgICAgSmFuKSBtPSIwMSI7OworICAgICAgICAgICAgRmViKSBtPSIwMiI7 OworICAgICAgICAgICAgTWFyKSBtPSIwMyI7OworICAgICAgICAgICAgQXByKSBtPSIwNCI7Owor ICAgICAgICAgICAgTWF5KSBtPSIwNSI7OworICAgICAgICAgICAgSnVuKSBtPSIwNiI7OworICAg ICAgICAgICAgSnVsKSBtPSIwNyI7OworICAgICAgICAgICAgQXVnKSBtPSIwOCI7OworICAgICAg ICAgICAgU2VwKSBtPSIwOSI7OworICAgICAgICAgICAgT2N0KSBtPSIxMCI7OworICAgICAgICAg ICAgTm92KSBtPSIxMSI7OworICAgICAgICAgICAgRGVjKSBtPSIxMiI7OworICAgICAgICBlc2Fj CisKKyAgICAgICAgY2VydGRhdGU9IiR7eX0ke219JHtkfSIKKyAgICB9CisKK3Nob3doZWxwKCkK KyAgICB7CisgICAgICAgIGVjaG8gImBiYXNlbmFtZSAkezB9YCBjcmVhdGVzIGEgdmFsaWQgY2Fj ZXJ0cyBmaWxlIGZvciB1c2Ugd2l0aCBJY2VkVGVhLiIKKyAgICAgICAgZWNobyAiIgorICAgICAg ICBlY2hvICIgICAgICAgIC1mICAtLWNhZmlsZSAgICAgVGhlIHBhdGggdG8gYSBmaWxlIGNvbnRh aW5pbmcgUEVNIgorICAgICAgICBlY2hvICIgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0 ZWQgQ0EgY2VydGlmaWNhdGVzLiBNYXkgbm90IGJlIgorICAgICAgICBlY2hvICIgICAgICAgICAg ICAgICAgICAgICAgICAgdXNlZCB3aXRoIC1kLy0tY2FkaXIuIgorICAgICAgICBlY2hvICIiCisg ICAgICAgIGVjaG8gIiAgICAgICAgLWQgIC0tY2FkaXIgICAgICBUaGUgcGF0aCB0byBhIGRpcmVj dG9yeSBvZiBQRU0gZm9ybWF0dGVkIgorICAgICAgICBlY2hvICIgICAgICAgICAgICAgICAgICAg ICAgICAgQ0EgY2VydGlmaWNhdGVzLiBNYXkgbm90IGJlIHVzZWQgd2l0aCIKKyAgICAgICAgZWNo byAiICAgICAgICAgICAgICAgICAgICAgICAgIC1mLy0tY2FmaWxlLiIKKyAgICAgICAgZWNobyAi IgorICAgICAgICBlY2hvICIgICAgICAgIC1vICAtLW91dGZpbGUgICAgVGhlIHBhdGggdG8gdGhl IG91dHB1dCBmaWxlLiIKKyAgICAgICAgZWNobyAiIgorICAgICAgICBlY2hvICIgICAgICAgIC1r ICAtLWtleXRvb2wgICAgVGhlIHBhdGggdG8gdGhlIGphdmEga2V5dG9vbCB1dGlsaXR5LiIKKyAg ICAgICAgZWNobyAiIgorICAgICAgICBlY2hvICIgICAgICAgIC1zICAtLW9wZW5zc2wgICAgVGhl IHBhdGggdG8gdGhlIG9wZW5zc2wgdXRpbGl0eS4iCisgICAgICAgIGVjaG8gIiIKKyAgICAgICAg ZWNobyAiICAgICAgICAtaCAgLS1oZWxwICAgICAgIFNob3cgdGhpcyBoZWxwIG1lc3NhZ2UgYW5k IGV4aXQuIgorICAgICAgICBlY2hvICIiCisgICAgICAgIGVjaG8gIiIKKyAgICB9CisKKyMgSW5p dGlhbGl6ZSBlbXB0eSB2YXJpYWJsZXMgc28gdGhhdCB0aGUgc2hlbGwgZG9lcyBub3QgcG9sbHV0 ZSB0aGUgc2NyaXB0CitDQUZJTEU9IiIKK0NBRElSPSIiCitPVVRGSUxFPSIiCitPUEVOU1NMPSIi CitLRVlUT09MPSIiCitjZXJ0ZGF0ZT0iIgorZGF0ZT0iIgordG9kYXk9JCggZGF0ZSArJVklbSVk ICkKKworIyBQcm9jZXNzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKK2dldF9hcmdzICR7QH0KKwor IyBIYW5kbGUgY29tbW9uIGVycm9ycworaWYgdGVzdCAiJHtDQUZJTEV9eCIgPSAieCIgLWEgIiR7 Q0FESVJ9eCIgPSAieCIgOyB0aGVuCisgICAgZWNobyAiRVJST1IhICBZb3UgbXVzdCBwcm92aWRl IGFuIHg1MDkgY2VydGlmaWNhdGUgc3RvcmUhIgorICAgIGVjaG8gIlwnJChiYXNlbmFtZSAkezB9 KSAtLWhlbHBcJyBmb3IgbW9yZSBpbmZvLiIKKyAgICBlY2hvICIiCisgICAgZXhpdCAxCitmaQor CitpZiB0ZXN0ICIke0NBRklMRX14IiAhPSAieCIgLWEgIiR7Q0FESVJ9eCIgIT0gIngiIDsgdGhl bgorICAgIGVjaG8gIkVSUk9SISAgWW91IGNhbm5vdCBwcm92aWRlIHR3byB4NTA5IGNlcnRpZmlj YXRlIHN0b3JlcyEiCisgICAgZWNobyAiXCckKGJhc2VuYW1lICR7MH0pIC0taGVscFwnIGZvciBt b3JlIGluZm8uIgorICAgIGVjaG8gIiIKKyAgICBleGl0IDEKK2ZpCisKK2lmIHRlc3QgIiR7S0VZ VE9PTH14IiA9ICJ4IiA7IHRoZW4KKyAgICBlY2hvICJFUlJPUiEgIFlvdSBtdXN0IHByb3ZpZGUg YSB2YWxpZCBrZXl0b29sIHByb2dyYW0hIgorICAgIGVjaG8gIlwnJChiYXNlbmFtZSAkezB9KSAt LWhlbHBcJyBmb3IgbW9yZSBpbmZvLiIKKyAgICBlY2hvICIiCisgICAgZXhpdCAxCitmaQorCitp ZiB0ZXN0ICIke09QRU5TU0x9eCIgPSAieCIgOyB0aGVuCisgICAgZWNobyAiRVJST1IhICBZb3Ug bXVzdCBwcm92aWRlIGEgdmFsaWQgcGF0aCB0byBvcGVuc3NsISIKKyAgICBlY2hvICJcJyQoYmFz ZW5hbWUgJHswfSkgLS1oZWxwXCcgZm9yIG1vcmUgaW5mby4iCisgICAgZWNobyAiIgorICAgIGV4 aXQgMQorZmkKKworaWYgdGVzdCAiJHtPVVRGSUxFfXgiID0gIngiIDsgdGhlbgorICAgIGVjaG8g IkVSUk9SISAgWW91IG11c3QgcHJvdmlkZSBhIHZhbGlkIG91dHB1dCBmaWxlISIKKyAgICBlY2hv ICJcJyQoYmFzZW5hbWUgJHswfSkgLS1oZWxwXCcgZm9yIG1vcmUgaW5mby4iCisgICAgZWNobyAi IgorICAgIGV4aXQgMQorZmkKKworIyBHZXQgb24gd2l0aCB0aGUgd29yaworCisjIElmIHVzaW5n IGEgQ0FGSUxFLCBzcGxpdCBpdCBpbnRvIGluZGl2aWR1YWwgZmlsZXMgaW4gYSB0ZW1wIGRpcmVj dG9yeQoraWYgdGVzdCAiJHtDQUZJTEV9eCIgIT0gIngiIDsgdGhlbgorICAgIFRFTVBESVI9YG1r dGVtcCAtZGAKKyAgICBDQURJUj0iJHtURU1QRElSfSIKKworICAgICMgR2V0IGEgbGlzdCBvZiBz dGFyaW5nIGxpbmVzIGZvciBlYWNoIGNlcnQKKyAgICBDRVJUTElTVD1gZ3JlcCAtbiAiXi0tLS0t QkVHSU4iICIke0NBRklMRX0iIHwgY3V0IC1kICI6IiAtZiAxYAorCisgICAgIyBHZXQgYSBsaXN0 IG9mIGVuZGluZyBsaW5lcyBmb3IgZWFjaCBjZXJ0CisgICAgRU5EQ0VSVExJU1Q9YGdyZXAgLW4g Il4tLS0tLUVORCIgIiR7Q0FGSUxFfSIgfCBjdXQgLWQgIjoiIC1mIDFgCisKKyAgICAjIFN0YXJ0 IGEgbG9vcAorICAgIGZvciBjZXJ0YmVnaW4gaW4gJHtDRVJUTElTVH0gOyBkbworICAgICAgICBm b3IgY2VydGVuZCBpbiAke0VORENFUlRMSVNUfSA7IGRvCisgICAgICAgICAgICBpZiB0ZXN0ICIk e2NlcnRlbmR9IiAtZ3QgIiR7Y2VydGJlZ2lufSI7IHRoZW4KKyAgICAgICAgICAgICAgICBicmVh aworICAgICAgICAgICAgZmkKKyAgICAgICAgZG9uZQorICAgICAgICBzZWQgLW4gIiR7Y2VydGJl Z2lufSwke2NlcnRlbmR9cCIgIiR7Q0FGSUxFfSIgPiAiJHtDQURJUn0vJHtjZXJ0YmVnaW59LnBl bSIKKyAgICAgICAga2V5aGFzaD1gJHtPUEVOU1NMfSB4NTA5IC1ub291dCAtaW4gIiR7Q0FESVJ9 LyR7Y2VydGJlZ2lufS5wZW0iIC1oYXNoYAorICAgICAgICBlY2hvICJHZW5lcmF0ZWQgUEVNIGZp bGUgd2l0aCBoYXNoOiAgJHtrZXloYXNofS4iCisgICAgZG9uZQorZmkKKworIyBXcml0ZSB0aGUg b3V0cHV0IGZpbGUKK2ZvciBjZXJ0IGluIGBmaW5kICIke0NBRElSfSIgLXR5cGUgZiAtbmFtZSAi Ki5wZW0iIC1vIC1uYW1lICIqLmNydCJgCitkbworCisgICAgIyBNYWtlIHN1cmUgdGhlIGNlcnRp ZmljYXRlIGRhdGUgaXMgdmFsaWQuLi4KKyAgICBkYXRlPSQoICR7T1BFTlNTTH0geDUwOSAtZW5k ZGF0ZSAtaW4gIiR7Y2VydH0iIC1ub291dCB8IHNlZCAncy9ebm90QWZ0ZXI9Ly8nICkKKyAgICBt eWRhdGUgIiR7ZGF0ZX0iCisgICAgaWYgdGVzdCAiJHtjZXJ0ZGF0ZX0iIC1sdCAiJHt0b2RheX0i IDsgdGhlbgorICAgICAgICBlY2hvICIke2NlcnR9IGV4cGlyZWQgb24gJHtjZXJ0ZGF0ZX0hIFNr aXBwaW5nLi4uIgorICAgICAgICB1bnNldCBkYXRlIGNlcnRkYXRlCisgICAgICAgIGNvbnRpbnVl CisgICAgZmkKKyAgICB1bnNldCBkYXRlIGNlcnRkYXRlCisgICAgbHMgIiR7Y2VydH0iCisgICAg dGVtcGZpbGU9YG1rdGVtcGAKKyAgICBzZWQgLW4gIi9eLS0tLS1CRUdJTi8sL14tLS0tLUVORC9w IiAiJHtjZXJ0fSIgPiAiJHt0ZW1wZmlsZX0iCisgICAgZWNobyB5ZXMgfCBlbnYgTENfQUxMPUMg IiR7S0VZVE9PTH0iIC1pbXBvcnQgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1hbGlhcyBgYmFzZW5hbWUgIiR7Y2VydH0iYCBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1rZXlzdG9yZSAiJHtP VVRGSUxFfSIgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC1zdG9yZXBhc3MgJ2NoYW5nZWl0JyAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC1maWxlICIke3RlbXBmaWxlfSIKKyAgICBybSAiJHt0ZW1wZmlsZX0i Citkb25lCisKK2lmIHRlc3QgIiR7VEVNUERJUn14IiAhPSAieCIgOyB0aGVuCisgICAgcm0gLXJm ICIke1RFTVBESVJ9IgorZmkKK2V4aXQgMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrLTEx L2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrLTExL2Zp bGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5jNGQ1Nzg3MzhkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Bl bmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDEwIEBA CistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNo NjQuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29zX2xpbnV4 X2FhcmNoNjQuY3BwCitAQCAtNzcsNyArNzcsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBp bmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1 X2NvbnRyb2wuaD4KKworICNpZmRlZiBCVUlMVElOX1NJTQorICNkZWZpbmUgUkVHX1NQIFJFR19S U1AKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxlcy9tdXNsX3BhdGNoZXMvYXJt LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI4ZjEwNGM4ZmE5Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0u cGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhf YXJtL29zX2xpbnV4X2FybS5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2Fy bS9vc19saW51eF9hcm0uY3BwCitAQCAtNzEsNyArNzEsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+ CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVk ZSA8ZnB1X2NvbnRyb2wuaD4KKyAjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKworICNkZWZpbmUg U1BFTExfUkVHX1NQICAic3AiCitAQCAtMTA0LDYgKzEwMywxOCBAQAorICNkZWZpbmUgQVJNX1JF R1NfSU5fQ09OVEVYVCAgMzEKKworICNlbHNlCisrCisrLy8gU3R1cGlkIGhhY2sgYXMgdGhlIG9y aWdpbiBpZiBiZWxvdyBkb2VzbnQgY29tcGlsZSB3aXRoIGdjYyA4LjIuMDoKKysvLworKy8vIG9z X2xpbnV4X2FybS5jcHA6MTE0OjU6IGVycm9yOiBtaXNzaW5nIGJpbmFyeSBvcGVyYXRvciBiZWZv cmUgdG9rZW4gIigiCisrLy8gICNpZiBOR1JFRyA9PSAxNgorKy8vICAgICAgIF5+fn5+CisrLy8K KysvLyBUaGUgTkdSRUcgaXMgMTgsIHNvIGZvcmNlIGl0IHRvIHRoYXQgdmFsdWUuCisrI2lmZGVm IE5HUkVHCisrIyAgdW5kZWYgTkdSRUcKKysjZW5kaWYKKysjZGVmaW5lIE5HUkVHIDE4CisKKyAj aWYgTkdSRUcgPT0gMTYKKyAvLyBUaGVzZSBkZWZpbml0aW9ucyBhcmUgYmFzZWQgb24gdGhlIG9i c2VydmF0aW9uIHRoYXQgdW50aWwKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpkay0xMS9maWxl cy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbXVz bF9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5hYWIzZDZlYTZkNgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Blbmpkay0xMS9m aWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSw1MzYgQEAKKy0tLSBvbGQv bWFrZS9SZWxlYXNlRmlsZS5nbWsKKysrKyBuZXcvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01 Myw2ICs1Myw3IEBACisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJKQVZBX1ZFUlNJT05fREFU RSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfTkFN RSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0s ICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FSQ0gpIikKKysgICQoY2FsbCBpbmZvLWZp bGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYKKworICMgUGFyYW0gMSAtIFRoZSBmaWxl IGNvbnRhaW5pbmcgdGhlIE1PRFVMRVMgbGlzdAorLS0tIG9sZC9tYWtlL2F1dG9jb25mL2J1aWxk LWF1eC9jb25maWcuZ3Vlc3MKKysrKyBuZXcvbWFrZS9hdXRvY29uZi9idWlsZC1hdXgvY29uZmln Lmd1ZXNzCitAQCAtMzAsNiArMzAsMTcgQEAKKyBESVI9YGRpcm5hbWUgJDBgCisgT1VUPWAuICRE SVIvYXV0b2NvbmYtY29uZmlnLmd1ZXNzYAorCisrIyBjb25maWcuZ3Vlc3MgZG9lc24ndCBpZGVu dGlmeSBzeXN0ZW1zIHJ1bm5pbmcgdGhlIG11c2wgQyBsaWJyYXJ5LCBhbmQgd2lsbAorKyMgaW5z dGVhZCByZXR1cm4gYSBzdHJpbmcgd2l0aCBhIC1nbnUgc3VmZml4LiBUaGlzIGJsb2NrIGRldGVj dHMgbXVzbCBhbmQKKysjIG1vZGlmaWVzIHRoZSBzdHJpbmcgdG8gaGF2ZSBhIC1tdXNsIHN1ZmZp eCBpbnN0ZWFkLiAKKytlY2hvICRPVVQgfCBncmVwIC0tIC1saW51eC0gPiAvZGV2L251bGwgMj4g L2Rldi9udWxsCisraWYgdGVzdCAkPyA9IDA7IHRoZW4KKysgIGxkZF92ZXJzaW9uPWBsZGQgLS12 ZXJzaW9uIDI+JjEgfCBoZWFkIC0xIHwgY3V0IC1mMSAtZCcgJ2AKKysgIGlmIFsgeCIke2xkZF92 ZXJzaW9ufSIgPSB4Im11c2wiIF07IHRoZW4KKysgICAgT1VUPWBlY2hvICRPVVQgfCBzZWQgJ3Mv LWdudS8tbXVzbC8nYAorKyAgZmkKKytmaQorKworICMgVGVzdCBhbmQgZml4IHNvbGFyaXMgb24g eDg2XzY0CisgZWNobyAkT1VUIHwgZ3JlcCBpMzg2LXBjLXNvbGFyaXMgPiAvZGV2L251bGwgMj4g L2Rldi9udWxsCisgaWYgdGVzdCAkPyA9IDA7IHRoZW4KKy0tLSBvbGQvbWFrZS9ob3RzcG90L2xp Yi9Db21waWxlSnZtLmdtaworKysrIG5ldy9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21r CitAQCAtNzcsNiArNzcsNyBAQAorICAgICAtREhPVFNQT1RfQlVJTERfVVNFUj0nIiQoVVNFUk5B TUUpIicgXAorICAgICAtREhPVFNQT1RfVk1fRElTVFJPPSciJChIT1RTUE9UX1ZNX0RJU1RSTyki JyBcCisgICAgIC1EQ1BVPSciJChPUEVOSkRLX1RBUkdFVF9DUFVfVk1fVkVSU0lPTikiJyBcCisr ICAgIC1ETElCQz0nIm11c2wiJyBcCisgICAgICMKKworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CistLS0gb2xkL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCisrKysgbmV3L21ha2UvbGliL0Nv cmVMaWJyYXJpZXMuZ21rCitAQCAtMjQxLDYgKzI0MSw3IEBACisgZW5kaWYKKworIExJQkpMSV9D RkxBR1MgKz0gJChMSUJaX0NGTEFHUykKKytMSUJKTElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xc IgorCisgaWZuZXEgKCQoVVNFX0VYVEVSTkFMX0xJQlopLCB0cnVlKQorICAgTElCSkxJX0VYVFJB X0ZJTEVTICs9IFwKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCisr KysgbmV3L3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorQEAgLTk5LDcgKzk5LDYg QEAKKyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVkZSA8c3lzY2FsbC5oPgorICMgaW5j bHVkZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4KKyAj IGluY2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5cy9zaG0uaD4KKyAjIGluY2x1ZGUg PGxpbmsuaD4KK0BAIC01MTEsNiArNTEwLDExIEBACisgLy8gZGV0ZWN0aW5nIHB0aHJlYWQgbGli cmFyeQorCisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKysjaWYgIWRlZmlu ZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAgLy8gSGFyZCBjb2RlIEFs cGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRpbmdzCisrICBvczo6TGlu dXg6OnNldF9nbGliY192ZXJzaW9uKCJnbGliYyAyLjkiKTsKKysgIG9zOjpMaW51eDo6c2V0X2xp YnB0aHJlYWRfdmVyc2lvbigiTlBUTCIpOworKyNlbHNlCisgICAvLyBTYXZlIGdsaWJjIGFuZCBw dGhyZWFkIHZlcnNpb24gc3RyaW5ncy4KKyAjaWYgIWRlZmluZWQoX0NTX0dOVV9MSUJDX1ZFUlNJ T04pIHx8IFwKKyAgICAgIWRlZmluZWQoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04pCitAQCAt NTI4LDYgKzUzMiw3IEBACisgICBzdHIgPSAoY2hhciAqKW1hbGxvYyhuLCBtdEludGVybmFsKTsK KyAgIGNvbmZzdHIoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04sIHN0ciwgbik7CisgICBvczo6 TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oc3RyKTsKKysjZW5kaWYKKyB9CisKKyAvLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLworQEAgLTI5MTYsMjAgKzI5MjEsMzYgQEAKKyBleHRlcm4gIkMiIEpO SUVYUE9SVCB2b2lkIG51bWFfd2FybihpbnQgbnVtYmVyLCBjaGFyICp3aGVyZSwgLi4uKSB7IH0K KyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfZXJyb3IoY2hhciAqd2hlcmUpIHsgfQor Cisrc3RhdGljIHZvaWQqIGRsdnN5bV9pZl9hdmFpbGFibGUodm9pZCogaGFuZGxlLCBjb25zdCBj aGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKSB7CisrICB0eXBlZGVmIHZvaWQqICgqZGx2 c3ltX2Z1bmNfdHlwZSkodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFy KiB2ZXJzaW9uKTsKKysgIHN0YXRpYyBkbHZzeW1fZnVuY190eXBlIGRsdnN5bV9mdW5jOworKyAg c3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysKKysgIGlmICghaW5pdGlhbGl6ZWQp IHsKKysgICAgZGx2c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNfdHlwZSlkbHN5bShSVExEX05FWFQs ICJkbHZzeW0iKTsKKysgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworKyAgfQorKworKyAgaWYgKGRs dnN5bV9mdW5jICE9IE5VTEwpIHsKKysgICAgdm9pZCAqZiA9IGRsdnN5bV9mdW5jKGhhbmRsZSwg bmFtZSwgdmVyc2lvbik7CisrICAgIGlmIChmICE9IE5VTEwpIHsKKysgICAgICByZXR1cm4gZjsK KysgICAgfQorKyAgfQorKworKyAgcmV0dXJuIGRsc3ltKGhhbmRsZSwgbmFtZSk7CisrfQorKwor IC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjEgKEFQ SSB2MSkuIElmIGl0IGZhaWxzCisgLy8gbG9hZCBzeW1ib2wgZnJvbSBiYXNlIHZlcnNpb24gaW5z dGVhZC4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfZGxzeW0odm9pZCogaGFuZGxlLCBjb25z dCBjaGFyICpuYW1lKSB7CistICB2b2lkICpmID0gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51 bWFfMS4xIik7CistICBpZiAoZiA9PSBOVUxMKSB7CistICAgIGYgPSBkbHN5bShoYW5kbGUsIG5h bWUpOworLSAgfQorLSAgcmV0dXJuIGY7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZSho YW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworIH0KKworIC8vIEhhbmRsZSByZXF1ZXN0IHRv IGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1 cm4gTlVMTCBpZiB0aGUgc3ltYm9sIGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2 ZXJzaW9uLgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUs IGNvbnN0IGNoYXIqIG5hbWUpIHsKKy0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGli bnVtYV8xLjIiKTsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwg ImxpYm51bWFfMS4yIik7CisgfQorCisgYm9vbCBvczo6TGludXg6OmxpYm51bWFfaW5pdCgpIHsK Ky0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisr KysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAg LTc1LDkgKzc1LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgor ICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVf Y29udHJvbC5oPgorLSNlbmRpZgorCisgI2lmZGVmIEFNRDY0CisgI2RlZmluZSBSRUdfU1AgUkVH X1JTUAorLS0tIG9sZC9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVh cC5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhl YXAuY3BwCitAQCAtMTE0Nyw3ICsxMTQ3LDcgQEAKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1v dmVTbWFsbGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmly c3QgPSB0cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRo aXMgY29uY2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRy LCAqc21hbGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21h bGxlc3Q7CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3Vy KSB7CisgICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0t IG9sZC9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24uY3BwCisrKysgbmV3L3Ny Yy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvdm1fdmVyc2lvbi5jcHAKK0BAIC0yNzIsNyArMjcyLDcg QEAKKyAgICNlbmRpZgorCisgICAjZGVmaW5lIElOVEVSTkFMX1ZFUlNJT05fU1VGRklYIFZNX1JF TEVBU0UgIikiIFwKKy0gICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIg XAorKyAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBMSUJDIFwKKyAg ICAgICAgICAiIEpSRSAoIiBWRVJTSU9OX1NUUklORyAiKSwgYnVpbHQgb24gIiBfX0RBVEVfXyAi ICIgX19USU1FX18gXAorICAgICAgICAgICIgYnkgIiBYU1RSKEhPVFNQT1RfQlVJTERfVVNFUikg IiB3aXRoICIgSE9UU1BPVF9CVUlMRF9DT01QSUxFUgorCistLS0gb2xkL3NyYy9ob3RzcG90L3No YXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisrKysgbmV3L3NyYy9ob3Rz cG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCitAQCAtMjA0LDcg KzIwNCw3IEBACisgI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisgaW5saW5lIGludCBnX2lzbmFu KGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbGlmIGRlZmluZWQoTElOVVgpIHx8 IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCistaW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7 IHJldHVybiBpc25hbmYoZik7IH0KKytpbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0 dXJuIGlzbmFuKGYpOyB9CisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBp c25hbihmKTsgfQorICNlbHNlCisgI2Vycm9yICJtaXNzaW5nIHBsYXRmb3JtLXNwZWNpZmljIGRl ZmluaXRpb24gaGVyZSIKKy0tLSBvbGQvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0 L2xpbnV4X2Nsb3NlLmMKKysrKyBuZXcvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0 L2xpbnV4X2Nsb3NlLmMKK0BAIC02MCw3ICs2MCw3IEBACisgLyoKKyAgKiBTaWduYWwgdG8gdW5i bG9jayB0aHJlYWQKKyAgKi8KKy1zdGF0aWMgaW50IHNpZ1dha2V1cCA9IChfX1NJR1JUTUFYIC0g Mik7Cisrc3RhdGljIGludCBzaWdXYWtldXA7CisKKyAvKgorICAqIGZkVGFibGUgaG9sZHMgb25l IGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEgY2VydGFpbgorQEAgLTE0OSw2ICsx NDksNyBAQAorICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhhbmRsZXIKKyAgICAg ICovCisrICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Euc2FfaGFuZGxlciA9 IHNpZ193YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBzaWdlbXB0eXNldCgm c2Euc2FfbWFzayk7CistLS0gb2xkL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9j aGlsZHByb2MuYworKysrIG5ldy9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hp bGRwcm9jLmMKK0BAIC0yMzcsNyArMjM3LDEzIEBACisgeworICAgICBpZiAoZW52cCA9PSBOVUxM IHx8IChjaGFyICoqKSBlbnZwID09IGVudmlyb24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAo Y2hhciAqKikgYXJndik7CistICAgICAgICByZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGlu ZGljYXRlcyB0aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNs IEMKKysgICAgICAgIC8vIGxpYnJhcnkgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0 byAvYmluL3NoIGZvciB0aGF0IGNhc2UsIHNvIGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8g dGhlIGNvZGUgYmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAg ICAgICAvLyBleGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAh PSBFTk9FWEVDKSB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisK KyAgICAgaWYgKCpmaWxlID09ICdcMCcpIHsKKy0tLSBvbGQvc3JjL2phdmEuYmFzZS91bml4L25h dGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKKysrKyBuZXcvc3JjL2phdmEuYmFzZS91bml4L25h dGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKK0BAIC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJ U05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChf QUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlz bmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkg aXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0tLSBv bGQvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKKysr KyBuZXcvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMK K0BAIC0yMzUsNiArMjM1LDM5IEBACisgICAgIGNoYXIgKmRtbGxwID0gTlVMTDsKKyAgICAgY2hh ciAqcDsgLyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KKworKyNpZmRlZiBfX2xpbnV4CisrI2lmbmRl ZiBMSUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisrI2VuZGlmCisrCisrICAgIGlmIChzdHJj bXAoTElCQywgIm11c2wiKSA9PSAwKSB7CisrICAgICAgLyoKKysgICAgICAgKiBUaGUgbXVzbCBs aWJyYXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8gYmUgc2V0IGluCisrICAg ICAgICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVuZGVuY3kgbGliamF2YS5z byBoYXMgb24gbGlianZtLnNvLgorKyAgICAgICAqCisrICAgICAgICogU3BlY2lmaWNhbGx5LCBp dCBkaWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZlbiBpZgorKyAgICAgICAq IGxpYmp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxsIG5vdCBiZSBjb25zaWRl cmVkIGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0aGUgZGVwZW5kZW5jeSB1 bmxlc3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAgICogb2YgdGhlIGFscmVhZHkgbG9hZGVkIGxp YnJhcnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQuCisrICAgICAgICoKKysg ICAgICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBsYXVuY2hlciB1c2luZyBh IGxvbmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3QgdGhlIGJhc2VuYW1lIG9m IHRoZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAgICAgICAqIGlzIHNvbWV0aGluZyBsaWtl ICIuLi9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3doZW4KKysgICAgICAgKiBs aWJqdm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28gKHdoaWNoIGl0IGRvZXMg aW4KKysgICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3IGZ1bmN0aW9ucyBpbXBs ZW1lbnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNsIGxvYWRlciB3aWxsLCBh cyBwYXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBlbmRlbnQgbGlicmFyaWVzLCB0cnkgdG8g bG9hZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysgICAgICAgKiBiYXNlbmFtZSAibGlianZt LnNvIi4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2VyCisrICAgICAgICogcGF0 aCBwYXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVhZHkgbG9hZGVkCisrICAg ICAgICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0ZSwgYW5kIHRoZSBsb2Fk ZXIgd2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZtLnNvIGVsc2V3aGVyZS4g SWYgaXQncyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJSQVJZX1BBVEggdGhlIGRlcGVuZGVuY3kg bG9hZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisrICAgICAgICogd2lsbCB0aGVyZWZvcmUg ZmFpbCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAgICAgIHJldHVybiBKTklfVFJVRTsKKysgICAg fQorKyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAgICAgLyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0 IHRoZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAq LworICAgICByZXR1cm4gSk5JX1RSVUU7CistLS0gb2xkL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRp dmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgbmV3L3NyYy9qYXZhLmJhc2UvdW5peC9u YXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCitAQCAtMzYsNyArMzYsNyBAQAorICNpZmRl ZiBfX2xpbnV4X18KKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRlZmluZWQg aW4gbmV0L2xpbnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoX19T SUdSVE1BWCAtIDIpCisrICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKFNJR1JUTUFYIC0gMikK KyAjZWxpZiBfQUlYCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVk IGluIG5ldC9haXhfY2xvc2UuYyAqLworLS0tIG9sZC9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0 aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworKysrIG5ldy9zcmMvamF2YS5kZXNrdG9w L3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworQEAgLTI3LDkgKzI3LDYg QEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1ZGUgPFgxMS9Yb3MuaD4KKyAjaW5j bHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhfXworLSNpbmNsdWRlIDxleGVjaW5m by5oPgorLSNlbmRpZgorCisgI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxqbmkuaD4KK0BA IC03ODYsMjYgKzc4Myw2IEBACisgICAgIH0KKyAgICAgcmV0dXJuIHJldDsKKyB9CistCistI2lm ZGVmIF9fbGludXhfXworLXZvaWQgcHJpbnRfc3RhY2sodm9pZCkKKy17CistICB2b2lkICphcnJh eVsxMF07CistICBzaXplX3Qgc2l6ZTsKKy0gIGNoYXIgKipzdHJpbmdzOworLSAgc2l6ZV90IGk7 CistCistICBzaXplID0gYmFja3RyYWNlIChhcnJheSwgMTApOworLSAgc3RyaW5ncyA9IGJhY2t0 cmFjZV9zeW1ib2xzIChhcnJheSwgc2l6ZSk7CistCistICBmcHJpbnRmIChzdGRlcnIsICJPYnRh aW5lZCAlemQgc3RhY2sgZnJhbWVzLlxuIiwgc2l6ZSk7CistCistICBmb3IgKGkgPSAwOyBpIDwg c2l6ZTsgaSsrKQorLSAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXNcbiIsIHN0cmluZ3NbaV0pOwor LQorLSAgZnJlZSAoc3RyaW5ncyk7CistfQorLSNlbmRpZgorCisgV2luZG93IGdldF94YXd0X3Jv b3Rfc2hlbGwoSk5JRW52ICplbnYpIHsKKyAgIHN0YXRpYyBqY2xhc3MgY2xhc3NYUm9vdFdpbmRv dyA9IE5VTEw7CistLS0gb2xkL3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3 cC91dGlsLmgKKysrKyBuZXcvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdw L3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0 IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAg ICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVy ZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQor ICAgICAjdW5kZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhp cyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZh Y2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8g bm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90 aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSBy ZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxv YyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAor LSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAj ZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgor CisgI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgorLS0tIG9sZC90ZXN0L2hvdHNwb3QvanRyZWcv cnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMKKysrKyBuZXcvdGVzdC9ob3RzcG90 L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiArMzMs NyBAQAorCisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxqbmkuaD4KKysjaW5jbHVk ZSA8anZtLmg+CisgI2luY2x1ZGUgPGFsbG9jYS5oPgorICNpbmNsdWRlIDxzaWduYWwuaD4KKyAj aW5jbHVkZSA8c3RyaW5nLmg+CitAQCAtOTEsNiArOTIsMjAgQEAKKyAgIH0KKyB9CisKKytpbnQg Z2V0X2phdmFfc3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBzdGFja3NpemU7CisrICBwdGhyZWFk X2F0dHJfdCBhdHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRrX2FyZ3M7CisrCisrICBqZGtfYXJn cy52ZXJzaW9uID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5JX0dldERlZmF1bHRKYXZhVk1Jbml0 QXJncygmamRrX2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmphdmFTdGFja1NpemUgPD0gMCkgewor KyAgICBmcHJpbnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENhbid0IGdldCBhIHZhbGlkIHZhbHVl IGZvciB0aGUgZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysgICAgZXhpdCg3KTsKKysgIH0KKysg IHJldHVybiBqZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30KKysKKyB2b2lkICpydW5famF2YV9v dmVyZmxvdyAodm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7CisgICBqY2xhc3MgY2xhc3NfaWQ7 CitAQCAtMjU0LDEzICsyNjksMTkgQEAKKyAgICAgZXhpdCg3KTsKKyAgIH0KKworKyAgaW50IHN0 YWNrX3NpemUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0aHJlYWRfdCB0aHI7CisrICBw dGhyZWFkX2F0dHJfdCB0aHJlYWRfYXR0cjsKKworKyAgcHRocmVhZF9hdHRyX2luaXQoJnRocmVh ZF9hdHRyKTsKKysgIHB0aHJlYWRfYXR0cl9zZXRzdGFja3NpemUoJnRocmVhZF9hdHRyLCBzdGFj a19zaXplKTsKKysKKyAgIGlmIChhcmdjID4gMSAmJiBzdHJjbXAoYXJndlsxXSwgInRlc3RfamF2 YV9vdmVyZmxvdyIpID09IDApIHsKKyAgICAgcHJpbnRmKCJcblRlc3RpbmcgSkFWQV9PVkVSRkxP V1xuIik7CisKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3Vy IGZvciBvdGhlciB0aHJlYWRcbiIpOworLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwg cnVuX2phdmFfb3ZlcmZsb3csIE5VTEwpOworKworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwg JnRocmVhZF9hdHRyLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9p biAodGhyLCBOVUxMKTsKKworICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBi ZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BAIC0yNzMsNyArMjk0LDcgQEAKKyAg ICAgcHJpbnRmKCJcblRlc3RpbmcgTkFUSVZFX09WRVJGTE9XXG4iKTsKKworICAgICBwcmludGYo IlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7 CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJmbG93LCBO VUxMKTsKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX25hdGl2 ZV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKworICAg ICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwg dGhyZWFkXG4iKTsKKy0tLSBvbGQvdGVzdC9qZGsvamF2YS9sYW5nL1Byb2Nlc3NCdWlsZGVyL0Jh c2ljLmphdmEKKysrKyBuZXcvdGVzdC9qZGsvamF2YS9sYW5nL1Byb2Nlc3NCdWlsZGVyL0Jhc2lj LmphdmEKK0BAIC0zODksOCArMzg5LDggQEAKKyAgICAgICAgICAgICAgICAgaWYgKGZhaWxlZCAh PSAwKSB0aHJvdyBuZXcgRXJyb3IoIm51bGwgUEFUSCIpOworICAgICAgICAgICAgIH0gZWxzZSBp ZiAoYWN0aW9uLmVxdWFscygiUEFUSCBzZWFyY2ggYWxnb3JpdGhtIikpIHsKKyAgICAgICAgICAg ICAgICAgZXF1YWwoU3lzdGVtLmdldGVudigiUEFUSCIpLCAiZGlyMTpkaXIyOiIpOworLSAgICAg ICAgICAgICAgICBjaGVjayhuZXcgRmlsZSgiL2Jpbi90cnVlIikuZXhpc3RzKCkpOworLSAgICAg ICAgICAgICAgICBjaGVjayhuZXcgRmlsZSgiL2Jpbi9mYWxzZSIpLmV4aXN0cygpKTsKKysgICAg ICAgICAgICAgICAgY2hlY2sobmV3IEZpbGUoVHJ1ZUV4ZS5wYXRoKCkpLmV4aXN0cygpKTsKKysg ICAgICAgICAgICAgICAgY2hlY2sobmV3IEZpbGUoRmFsc2VFeGUucGF0aCgpKS5leGlzdHMoKSk7 CisgICAgICAgICAgICAgICAgIFN0cmluZ1tdIGNtZCA9IHsicHJvZyJ9OworICAgICAgICAgICAg ICAgICBQcm9jZXNzQnVpbGRlciBwYjEgPSBuZXcgUHJvY2Vzc0J1aWxkZXIoY21kKTsKKyAgICAg ICAgICAgICAgICAgUHJvY2Vzc0J1aWxkZXIgcGIyID0gbmV3IFByb2Nlc3NCdWlsZGVyKGNtZCk7 CitAQCAtNDMxLDEzICs0MzEsMTMgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Bl cm1pc3Npb25EZW5pZWQocGIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGlu dWUgc2VhcmNoaW5nIGlmIEVBQ0NFUworLSAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9i aW4vdHJ1ZSIsICJkaXIyL3Byb2ciKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBjb3B5KFRy dWVFeGUucGF0aCgpLCAiZGlyMi9wcm9nIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXF1 YWwocnVuKHBiKS5leGl0VmFsdWUoKSwgVHJ1ZS5leGl0VmFsdWUoKSk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgbmV3IEZpbGUoImRpcjEvcHJvZyIpLmRlbGV0ZSgpOworICAgICAgICAgICAg ICAgICAgICAgICAgIG5ldyBGaWxlKCJkaXIyL3Byb2ciKS5kZWxldGUoKTsKKworICAgICAgICAg ICAgICAgICAgICAgICAgIG5ldyBGaWxlKCJkaXIyL3Byb2ciKS5ta2RpcnMoKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBjb3B5KCIvYmluL3RydWUiLCAiZGlyMS9wcm9nIik7CisrICAgICAg ICAgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwgImRpcjEvcHJvZyIpOworICAg ICAgICAgICAgICAgICAgICAgICAgIGVxdWFsKHJ1bihwYikuZXhpdFZhbHVlKCksIFRydWUuZXhp dFZhbHVlKCkpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgZW1wdHkgUEFU SCBjb21wb25lbnQgbWVhbnMgY3VycmVudCBkaXJlY3RvcnkuCitAQCAtNDUzLDEwICs0NTMsMTAg QEAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGIuY29tbWFuZChjb21tYW5kKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZSBwcm9nID0gbmV3IEZpbGUoIi4vcHJvZyIp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAiTm9ybWFsIiBiaW5hcmllcworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5KCIvYmluL3RydWUiLCAiLi9wcm9nIik7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoVHJ1ZUV4ZS5wYXRoKCksICIuL3Byb2ci KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXF1YWwocnVuKHBiKS5leGl0VmFsdWUo KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZS5leGl0VmFsdWUoKSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vZmFsc2UiLCAiLi9wcm9n Iik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoRmFsc2VFeGUucGF0aCgpLCAi Li9wcm9nIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxdWFsKHJ1bihwYikuZXhp dFZhbHVlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLmV4aXRW YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZy5kZWxldGUoKTsKK0BA IC01MTEsMTIgKzUxMSwxMiBAQAorICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKCJk aXIyL3Byb2ciKS5kZWxldGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZSgi cHJvZyIpLmRlbGV0ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKCJkaXIz IikubWtkaXJzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgY29weSgiL2Jpbi90cnVlIiwg ImRpcjEvcHJvZyIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vZmFsc2Ui LCAiZGlyMy9wcm9nIik7CisrICAgICAgICAgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBh dGgoKSwgImRpcjEvcHJvZyIpOworKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkoRmFsc2VF eGUucGF0aCgpLCAiZGlyMy9wcm9nIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgcGIuZW52 aXJvbm1lbnQoKS5wdXQoIlBBVEgiLCJkaXIzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg ZXF1YWwocnVuKHBiKS5leGl0VmFsdWUoKSwgVHJ1ZS5leGl0VmFsdWUoKSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgY29weSgiL2Jpbi90cnVlIiwgImRpcjMvcHJvZyIpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vZmFsc2UiLCAiZGlyMS9wcm9nIik7CisrICAgICAg ICAgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwgImRpcjMvcHJvZyIpOworKyAg ICAgICAgICAgICAgICAgICAgICAgIGNvcHkoRmFsc2VFeGUucGF0aCgpLCAiZGlyMS9wcm9nIik7 CisgICAgICAgICAgICAgICAgICAgICAgICAgZXF1YWwocnVuKHBiKS5leGl0VmFsdWUoKSwgRmFs c2UuZXhpdFZhbHVlKCkpOworCisgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkgeworQEAg LTYxMyw2ICs2MTMsMTMgQEAKKyAgICAgICAgICAgICAgbmV3IEZpbGUoIi9iaW4vZmFsc2UiKS5l eGlzdHMoKSk7CisgICAgIH0KKworKyAgICBzdGF0aWMgY2xhc3MgQnVzeUJveCB7CisrICAgICAg ICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXMoKSB7IHJldHVybiBpczsgfQorKyAgICAgICAgcHJp dmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpcyA9CisrICAgICAgICAgICAgKCEgV2luZG93cy5p cygpICYmCisrICAgICAgICAgICAgIG5ldyBGaWxlKCIvYmluL2J1c3lib3giKS5leGlzdHMoKSk7 CisrICAgIH0KKysKKyAgICAgc3RhdGljIGNsYXNzIFVuaWNvZGVPUyB7CisgICAgICAgICBwdWJs aWMgc3RhdGljIGJvb2xlYW4gaXMoKSB7IHJldHVybiBpczsgfQorICAgICAgICAgcHJpdmF0ZSBz dGF0aWMgZmluYWwgU3RyaW5nIG9zTmFtZSA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgib3MubmFtZSIp OworQEAgLTY1MSw2ICs2NTgsNDUgQEAKKyAgICAgICAgIH0KKyAgICAgfQorCisrICAgIC8vIE9u IGFscGluZSBsaW51eCwgL2Jpbi90cnVlIGFuZCAvYmluL2ZhbHNlIGFyZSBqdXN0IGxpbmtzIHRv IC9iaW4vYnVzeWJveC4KKysgICAgLy8gU29tZSB0ZXN0cyBjb3B5IC9iaW4vdHJ1ZSBhbmQgL2Jp bi9mYWxzZSB0byBmaWxlcyB3aXRoIGEgZGlmZmVyZW50IGZpbGVuYW1lLgorKyAgICAvLyBIb3dl dmVyLCBjb3B5aW5nIHRoZSBidXNib3ggZXhlY3V0YWJsZSBpbnRvIGEgZmlsZSB3aXRoIGEgZGlm ZmVyZW50IG5hbWUKKysgICAgLy8gd29uJ3QgcmVzdWx0IGluIHRoZSBleHBlY3RlZCByZXR1cm4g Y29kZXMuIEFzIHdvcmthcm91bmQsIHdlIGNyZWF0ZQorKyAgICAvLyBleGVjdXRhYmxlIGZpbGVz IHRoYXQgY2FuIGJlIGNvcGllZCBhbmQgcHJvZHVjZSB0aGUgZXhlcGVjdGVkIHJldHVybgorKyAg ICAvLyB2YWx1ZXMuIFdlIHVzZSB0aGlzIHdvcmthcm91bmQsIGlmIHdlIGZpbmQgdGhlIGJ1c3li b3ggZXhlY3V0YWJsZS4KKysKKysgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVHJ1ZUV4ZSB7Cisr ICAgICAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBwYXRoKCkgeyByZXR1cm4gcGF0aDsgfQorKyAg ICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHBhdGggPSBwYXRoMCgpOworKyAgICAg ICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHBhdGgwKCl7CisrICAgICAgICAgICAgaWYgKCFCdXN5 Qm94LmlzKCkpIHsKKysgICAgICAgICAgICAgICAgcmV0dXJuICIvYmluL3RydWUiOworKyAgICAg ICAgICAgIH0KKysgICAgICAgICAgICBlbHNlIHsKKysgICAgICAgICAgICAgICAgRmlsZSB0cnVl RXhlID0gbmV3IEZpbGUoInRydWUiKTsKKysgICAgICAgICAgICAgICAgc2V0RmlsZUNvbnRlbnRz KHRydWVFeGUsICIjIS9iaW4vdHJ1ZVxuIik7CisrICAgICAgICAgICAgICAgIHRydWVFeGUuc2V0 RXhlY3V0YWJsZSh0cnVlKTsKKysgICAgICAgICAgICAgICAgcmV0dXJuIHRydWVFeGUuZ2V0QWJz b2x1dGVQYXRoKCk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrCisrICAg IHByaXZhdGUgc3RhdGljIGNsYXNzIEZhbHNlRXhlIHsKKysgICAgICAgIHB1YmxpYyBzdGF0aWMg U3RyaW5nIHBhdGgoKSB7IHJldHVybiBwYXRoOyB9CisrICAgICAgICBwcml2YXRlIHN0YXRpYyBm aW5hbCBTdHJpbmcgcGF0aCA9IHBhdGgwKCk7CisrICAgICAgICBwcml2YXRlIHN0YXRpYyBTdHJp bmcgcGF0aDAoKXsKKysgICAgICAgICAgICBpZiAoIUJ1c3lCb3guaXMoKSkgeworKyAgICAgICAg ICAgICAgICByZXR1cm4gIi9iaW4vZmFsc2UiOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAg ICBlbHNlIHsKKysgICAgICAgICAgICAgICAgRmlsZSBmYWxzZUV4ZSA9IG5ldyBGaWxlKCJmYWxz ZSIpOworKyAgICAgICAgICAgICAgICBzZXRGaWxlQ29udGVudHMoZmFsc2VFeGUsICIjIS9iaW4v ZmFsc2VcbiIpOworKyAgICAgICAgICAgICAgICBmYWxzZUV4ZS5zZXRFeGVjdXRhYmxlKHRydWUp OworKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VFeGUuZ2V0QWJzb2x1dGVQYXRoKCk7Cisr ICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrCisgICAgIHN0YXRpYyBjbGFzcyBF bmdsaXNoVW5peCB7CisgICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBCb29sZWFuIGlzID0K KyAgICAgICAgICAgICAoISBXaW5kb3dzLmlzKCkgJiYgaXNFbmdsaXNoKCJMQU5HIikgJiYgaXNF bmdsaXNoKCJMQ19BTEwiKSk7CitAQCAtMTk1NCw3ICsyMDAwLDcgQEAKKyAgICAgICAgICAgICAv Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICBuZXcgRmlsZSgi c3VCZGlSIikubWtkaXJzKCk7CistICAgICAgICAgICAgICAgIGNvcHkoIi9iaW4vdHJ1ZSIsICJz dUJkaVIvdW5saUtlbHkiKTsKKysgICAgICAgICAgICAgICAgY29weShUcnVlRXhlLnBhdGgoKSwg InN1QmRpUi91bmxpS2VseSIpOworICAgICAgICAgICAgICAgICBmaW5hbCBQcm9jZXNzQnVpbGRl ciBwYiA9CisgICAgICAgICAgICAgICAgICAgICBuZXcgUHJvY2Vzc0J1aWxkZXIobmV3IFN0cmlu Z1tdeyJ1bmxpS2VseSJ9KTsKKyAgICAgICAgICAgICAgICAgcGIuZW52aXJvbm1lbnQoKS5wdXQo IlBBVEgiLCAic3VCZGlSIik7CistLS0gb2xkL3Rlc3QvamRrL2phdmEvbGFuZy9Qcm9jZXNzSGFu ZGxlL0luZm9UZXN0LmphdmEKKysrKyBuZXcvdGVzdC9qZGsvamF2YS9sYW5nL1Byb2Nlc3NIYW5k bGUvSW5mb1Rlc3QuamF2YQorQEAgLTI5OCw2ICsyOTgsMTMgQEAKKyAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICBpZiAoaW5mby5jb21tYW5kKCkuaXNQcmVzZW50KCkpIHsKKyAg ICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb21tYW5kID0gaW5mby5jb21tYW5kKCkuZ2V0KCk7 CistICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSBQbGF0Zm9ybS5pc1dpbmRv d3MoKSA/ICJzbGVlcC5leGUiIDogInNsZWVwIjsKKysgICAgICAgICAgICAgICAgICAgIFN0cmlu ZyBleHBlY3RlZCA9ICJzbGVlcCI7CisrICAgICAgICAgICAgICAgICAgICBpZiAoUGxhdGZvcm0u aXNXaW5kb3dzKCkpIHsKKysgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9ICJzbGVl cC5leGUiOworKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXcgRmlsZSgiL2Jpbi9i dXN5Ym94IikuZXhpc3RzKCkpIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaXRoIGJ1 c3lib3ggc2xlZXAgaXMganVzdCBhIHN5bSBsaW5rIHRvIGJ1c3lib3guCisrICAgICAgICAgICAg ICAgICAgICAgICAgLy8gVGhlIGJ1c2JveCBleGVjdXRhYmxlIGlzIHNlZW4gYXMgUHJvY2Vzc0hh bmRsZS5JbmZvIGNvbW1hbmQuCisrICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAi YnVzeWJveCI7CisrICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBB c3NlcnQuYXNzZXJ0VHJ1ZShjb21tYW5kLmVuZHNXaXRoKGV4cGVjdGVkKSwgIkNvbW1hbmQ6IGV4 cGVjdGVkOiBcJyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCArICJc JywgYWN0dWFsOiAiICsgY29tbWFuZCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGstMTEv ZmlsZXMvbXVzbF9wYXRjaGVzL3BwYzY0bGUucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGstMTEvZmls ZXMvbXVzbF9wYXRjaGVzL3BwYzY0bGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmUxNDk0NGQ3ZGU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVu amRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGM2NGxlLnBhdGNoCkBAIC0wLDAgKzEsMjIwIEBA CistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAorKysr IG5ldy9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKK0BAIC0xMjkw LDcgKzEyOTAsMTEgQEAKKyAgIC8vIHRoZSBzYWZlcG9pbmcgcG9sbGluZyBwYWdlLgorICAgdWNv bnRleHRfdCogdWMgPSAodWNvbnRleHRfdCopIHVjb250ZXh0OworICAgLy8gU2V0IHBvbGxpbmcg YWRkcmVzcy4KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykK KyAgIGFkZHJlc3MgYWRkciA9IChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5yZWdzLT5ncHJbcmFd ICsgKHNzaXplX3QpZHM7CisrI2Vsc2UgLy8gTXVzbAorKyAgYWRkcmVzcyBhZGRyID0gKGFkZHJl c3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmFdICsgKHNzaXplX3QpIGRzOworKyNlbmRpZgor ICAgaWYgKHBvbGxpbmdfYWRkcmVzc19wdHIgIT0gTlVMTCkgeworICAgICAqcG9sbGluZ19hZGRy ZXNzX3B0ciA9IGFkZHI7CisgICB9CitAQCAtMTMxMSwxNSArMTMxNSwyNCBAQAorICAgICBpbnQg cmIgPSBpbnZfcmJfZmllbGQoaW5zdHJ1Y3Rpb24pOworCisgICAgIC8vIGxvb2sgdXAgY29udGVu dCBvZiByYSBhbmQgcmIgaW4gdWNvbnRleHQKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRl ZmluZWQoX19VQ0xJQkNfXykKKyAgICAgYWRkcmVzcyByYV92YWw9KGFkZHJlc3MpdWMtPnVjX21j b250ZXh0LnJlZ3MtPmdwcltyYV07CisgICAgIGxvbmcgcmJfdmFsPShsb25nKXVjLT51Y19tY29u dGV4dC5yZWdzLT5ncHJbcmJdOworKyNlbHNlIC8vIE11c2wKKysgICAgYWRkcmVzcyByYV92YWw9 KGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmFdOworKyAgICBsb25nIHJiX3ZhbD0o bG9uZyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyYl07CisrI2VuZGlmCisgICAgIHJldHVybiBv czo6aXNfbWVtb3J5X3NlcmlhbGl6ZV9wYWdlKHRocmVhZCwgcmFfdmFsK3JiX3ZhbCk7CisgICB9 IGVsc2UgaWYgKGlzX3N0dyhpbnN0cnVjdGlvbikgfHwgaXNfc3R3dShpbnN0cnVjdGlvbikpIHsK KyAgICAgaW50IHJhID0gaW52X3JhX2ZpZWxkKGluc3RydWN0aW9uKTsKKyAgICAgaW50IGQxID0g aW52X2QxX2ZpZWxkKGluc3RydWN0aW9uKTsKKworICAgICAvLyBsb29rIHVwIGNvbnRlbnQgb2Yg cmEgaW4gdWNvbnRleHQKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJ QkNfXykKKyAgICAgYWRkcmVzcyByYV92YWw9KGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LnJlZ3Mt PmdwcltyYV07CisrI2Vsc2UgLy8gTXVzbAorKyAgICBhZGRyZXNzIHJhX3ZhbD0oYWRkcmVzcyl1 Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyYV07CisrI2VuZGlmCisgICAgIHJldHVybiBvczo6aXNf bWVtb3J5X3NlcmlhbGl6ZV9wYWdlKHRocmVhZCwgcmFfdmFsK2QxKTsKKyAgIH0gZWxzZSB7Cisg ICAgIHJldHVybiBmYWxzZTsKK0BAIC0xMzgyLDExICsxMzk1LDIwIEBACisgICAgICAgfHwgKGlz X3N0ZHUoaW5zdHJ1Y3Rpb24pICYmIHJzID09IDEpKSB7CisgICAgIGludCBkcyA9IGludl9kc19m aWVsZChpbnN0cnVjdGlvbik7CisgICAgIC8vIHJldHVybiBiYW5nZWQgYWRkcmVzcworKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgICByZXR1cm4gZHMr KGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwcltyYV07CisrI2Vsc2UgLy8gTXVzbAor KyAgICByZXR1cm4gZHMrKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmFdOworKyNl bmRpZgorICAgfSBlbHNlIGlmIChpc19zdGR1eChpbnN0cnVjdGlvbikgJiYgcnMgPT0gMSkgewor ICAgICBpbnQgcmIgPSBpbnZfcmJfZmllbGQoaW5zdHJ1Y3Rpb24pOworKyNpZiBkZWZpbmVkKF9f R0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgICBhZGRyZXNzIHNwID0gKGFkZHJl c3MpdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwclsxXTsKKyAgICAgbG9uZyByYl92YWwgPSAobG9u Zyl1Yy0+dWNfbWNvbnRleHQucmVncy0+Z3ByW3JiXTsKKysjZWxzZSAvLyBNdXNsCisrICAgIGFk ZHJlc3Mgc3AgPSAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxXTsKKysgICAgbG9u ZyByYl92YWwgPSAobG9uZyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tyYl07CisrI2VuZGlmCisg ICAgIHJldHVybiByYSAhPSAxIHx8IHJiX3ZhbCA+PSAwID8gTlVMTCAgICAgICAgIC8vIG5vdCBh IHN0YWNrIGJhbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzcCArIHJi X3ZhbDsgLy8gYmFuZ2VkIGFkZHJlc3MKKyAgIH0KKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3Bw Yy92bV92ZXJzaW9uX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJz aW9uX3BwYy5jcHAKK0BAIC03NjgsNyArNzY4LDcgQEAKKyAgIHVuc2lnbmVkIGxvbmcgYXV4diA9 IGdldGF1eHZhbChBVF9IV0NBUDIpOworCisgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE1f Tk9TQykgeworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IQVNfSFRNKSB7CisrICAgIGlm IChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8vIFRNIG9uIFBPV0VSOCBhbmQg UE9XRVI5IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBKVk0uCisgICAg ICAgLy8gVE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwpIGlzIG5vdCBzdXBwb3J0ZWQg YnkgdGhlIEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQyLjEgTlYgaGFzIGEgZmV3IGlz c3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0tLSBvbGQvc3JjL2hvdHNwb3Qv b3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29z X2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTEwOCwyNCArMTA4LDQyIEBACisg ICAvLyAtIGlmIHVjIHdhcyBmaWxsZWQgYnkgZ2V0Y29udGV4dCgpLCBpdCBpcyB1bmRlZmluZWQg LSBnZXRjb250ZXh0KCkgZG9lcyBub3QgZmlsbAorICAgLy8gICBpdCBiZWNhdXNlIHRoZSB2b2xh dGlsZSByZWdpc3RlcnMgYXJlIG5vdCBuZWVkZWQgdG8gbWFrZSBzZXRjb250ZXh0KCkgd29yay4K KyAgIC8vICAgSG9wZWZ1bGx5IGl0IHdhcyB6ZXJvJ2Qgb3V0IGJlZm9yZWhhbmQuCisrI2lmIGRl ZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICBndWFyYW50ZWUodWMt PnVjX21jb250ZXh0LnJlZ3MgIT0gTlVMTCwgIm9ubHkgdXNlIHVjb250ZXh0X2dldF9wYyBpbiBz aWdhY3Rpb24gY29udGV4dCIpOworICAgcmV0dXJuIChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5y ZWdzLT5uaXA7CisrI2Vsc2UgLy8gTXVzbAorKyAgZ3VhcmFudGVlKHVjLT51Y19tY29udGV4dC5n cF9yZWdzICE9IE5VTEwsICJvbmx5IHVzZSB1Y29udGV4dF9nZXRfcGMgaW4gc2lnYWN0aW9uIGNv bnRleHQiKTsKKysgIHJldHVybiAoYWRkcmVzcyl1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMl07 CisrI2VuZGlmCisgfQorCisgLy8gbW9kaWZ5IFBDIGluIHVjb250ZXh0LgorIC8vIE5vdGU6IE9u bHkgdXNlIHRoaXMgZm9yIGFuIHVjb250ZXh0IGhhbmRlZCBkb3duIHRvIGEgc2lnbmFsIGhhbmRs ZXIuIFNlZSBjb21tZW50CisgLy8gaW4gdWNvbnRleHRfZ2V0X3BjLgorIHZvaWQgb3M6OkxpbnV4 Ojp1Y29udGV4dF9zZXRfcGModWNvbnRleHRfdCAqIHVjLCBhZGRyZXNzIHBjKSB7CisrI2lmIGRl ZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICBndWFyYW50ZWUodWMt PnVjX21jb250ZXh0LnJlZ3MgIT0gTlVMTCwgIm9ubHkgdXNlIHVjb250ZXh0X3NldF9wYyBpbiBz aWdhY3Rpb24gY29udGV4dCIpOworICAgdWMtPnVjX21jb250ZXh0LnJlZ3MtPm5pcCA9ICh1bnNp Z25lZCBsb25nKXBjOworKyNlbHNlIC8vIE11c2wKKysgIGd1YXJhbnRlZSh1Yy0+dWNfbWNvbnRl eHQuZ3BfcmVncyAhPSBOVUxMLCAib25seSB1c2UgdWNvbnRleHRfc2V0X3BjIGluIHNpZ2FjdGlv biBjb250ZXh0Iik7CisrICB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szMl0gPSAodW5zaWduZWQg bG9uZylwYzsKKysjZW5kaWYKKyB9CisKKyBzdGF0aWMgYWRkcmVzcyB1Y29udGV4dF9nZXRfbHIo Y29uc3QgdWNvbnRleHRfdCAqIHVjKSB7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZp bmVkKF9fVUNMSUJDX18pCisgICByZXR1cm4gKGFkZHJlc3MpdWMtPnVjX21jb250ZXh0LnJlZ3Mt Pmxpbms7CisrI2Vsc2UgLy8gTXVzbAorKyAgcmV0dXJuIChhZGRyZXNzKXVjLT51Y19tY29udGV4 dC5ncF9yZWdzWzM2XTsKKysjZW5kaWYKKyB9CisKKyBpbnRwdHJfdCogb3M6OkxpbnV4Ojp1Y29u dGV4dF9nZXRfc3AoY29uc3QgdWNvbnRleHRfdCAqIHVjKSB7CisrI2lmIGRlZmluZWQoX19HTElC Q19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICByZXR1cm4gKGludHB0cl90Kil1Yy0+dWNf bWNvbnRleHQucmVncy0+Z3ByWzEvKlJFR19TUCovXTsKKysjZWxzZSAvLyBNdXNsCisrICByZXR1 cm4gKGludHB0cl90Kil1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxLypSRUdfU1AqL107CisrI2Vu ZGlmCisgfQorCisgaW50cHRyX3QqIG9zOjpMaW51eDo6dWNvbnRleHRfZ2V0X2ZwKGNvbnN0IHVj b250ZXh0X3QgKiB1YykgeworQEAgLTEzMyw3ICsxNTEsMTEgQEAKKyB9CisKKyBzdGF0aWMgdW5z aWduZWQgbG9uZyB1Y29udGV4dF9nZXRfdHJhcChjb25zdCB1Y29udGV4dF90ICogdWMpIHsKKysj aWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19VQ0xJQkNfXykKKyAgIHJldHVybiB1 Yy0+dWNfbWNvbnRleHQucmVncy0+dHJhcDsKKysjZWxzZSAvLyBNdXNsCisrICByZXR1cm4gdWMt PnVjX21jb250ZXh0LmdwX3JlZ3NbNDBdOworKyNlbmRpZgorIH0KKworIEV4dGVuZGVkUEMgb3M6 OmZldGNoX2ZyYW1lX2Zyb21fY29udGV4dChjb25zdCB2b2lkKiB1Y1ZvaWQsCitAQCAtMjU5LDcg KzI4MSwxMyBAQAorICAgICAvLyAzLjIuMSAiTWFjaGluZSBTdGF0ZSBSZWdpc3RlciIpLCBob3dl dmVyIG5vdGUgdGhhdCBJU0Egbm90YXRpb24gZm9yIGJpdAorICAgICAvLyBudW1iZXJpbmcgaXMg TVNCIDAsIHNvIGZvciBub3JtYWwgYml0IG51bWJlcmluZyAoTFNCIDApIHRoZXkgY29tZSB0byBi ZQorICAgICAvLyBiaXRzIDMzIGFuZCAzNC4gSXQncyBub3QgcmVsYXRlZCB0byBlbmRpYW5uZXNz LCBqdXN0IGEgbm90YXRpb24gbWF0dGVyLgorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVm aW5lZChfX1VDTElCQ19fKQorICAgICBpZiAoc2Vjb25kX3VjLT51Y19tY29udGV4dC5yZWdzLT5t c3IgJiAweDYwMDAwMDAwMCkgeworKyNlbHNlIC8vIE11c2wKKysgICAgLy8gd2h5IDMzPworKyAg ICAvLyBzZWUgY29tbWVudCBmb3IgZ2xpYmMgTkdSRUc6ICJyMC1yMzEsIG5pcCwgbXNyLCBsciwg ZXRjLiIKKysgICAgaWYgKHNlY29uZF91Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szM10gJiAweDYw MDAwMDAwMCkgeworKyNlbmRpZgorICAgICAgIGlmIChUcmFjZVRyYXBzKSB7CisgICAgICAgICB0 dHktPnByaW50X2NyKCJjYXVnaHQgc2lnbmFsIGluIHRyYW5zYWN0aW9uLCAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgImlnbm9yaW5nIHRvIGp1bXAgdG8gYWJvcnQgaGFuZGxlciIpOworQEAg LTU4Niw2ICs2MTQsNyBAQAorICAgY29uc3QgdWNvbnRleHRfdCogdWMgPSAoY29uc3QgdWNvbnRl eHRfdCopY29udGV4dDsKKworICAgc3QtPnByaW50X2NyKCJSZWdpc3RlcnM6Iik7CisrI2lmIGRl ZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKF9fVUNMSUJDX18pCisgICBzdC0+cHJpbnQoInBj ID0iIElOVFBUUl9GT1JNQVQgIiAgIiwgdWMtPnVjX21jb250ZXh0LnJlZ3MtPm5pcCk7CisgICBz dC0+cHJpbnQoImxyID0iIElOVFBUUl9GT1JNQVQgIiAgIiwgdWMtPnVjX21jb250ZXh0LnJlZ3Mt PmxpbmspOworICAgc3QtPnByaW50KCJjdHI9IiBJTlRQVFJfRk9STUFUICIgICIsIHVjLT51Y19t Y29udGV4dC5yZWdzLT5jdHIpOworQEAgLTU5NCw4ICs2MjMsMTggQEAKKyAgICAgc3QtPnByaW50 KCJyJS0yZD0iIElOVFBUUl9GT1JNQVQgIiAgIiwgaSwgdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdw cltpXSk7CisgICAgIGlmIChpICUgMyA9PSAyKSBzdC0+Y3IoKTsKKyAgIH0KKysjZWxzZSAvLyBN dXNsCisrICBzdC0+cHJpbnQoInBjID0iIElOVFBUUl9GT1JNQVQgIiAgIiwgdWMtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMzJdKTsKKysgIHN0LT5wcmludCgibHIgPSIgSU5UUFRSX0ZPUk1BVCAiICAi LCB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1szNl0pOworKyAgc3QtPnByaW50KCJjdHI9IiBJTlRQ VFJfRk9STUFUICIgICIsIHVjLT51Y19tY29udGV4dC5ncF9yZWdzWzM1XSk7CisgICBzdC0+Y3Io KTsKKysgIGZvciAoaW50IGkgPSAwOyBpIDwgMzI7IGkrKykgeworKyAgICBzdC0+cHJpbnQoInIl LTJkPSIgSU5UUFRSX0ZPUk1BVCAiICAiLCBpLCB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tpXSk7 CisrICAgIGlmIChpICUgMyA9PSAyKSBzdC0+Y3IoKTsKKysgIH0KKysjZW5kaWYKKyAgIHN0LT5j cigpOworKyAgc3QtPmNyKCk7CisKKyAgIGludHB0cl90ICpzcCA9IChpbnRwdHJfdCAqKW9zOjpM aW51eDo6dWNvbnRleHRfZ2V0X3NwKHVjKTsKKyAgIHN0LT5wcmludF9jcigiVG9wIG9mIFN0YWNr OiAoc3A9IiBQVFJfRk9STUFUICIpIiwgcDJpKHNwKSk7CitAQCAtNjE4LDEyICs2NTcsMjIgQEAK KyAgIHN0LT5wcmludF9jcigiUmVnaXN0ZXIgdG8gbWVtb3J5IG1hcHBpbmc6Iik7CisgICBzdC0+ Y3IoKTsKKworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQor ICAgc3QtPnByaW50KCJwYyA9Iik7IHByaW50X2xvY2F0aW9uKHN0LCAoaW50cHRyX3QpdWMtPnVj X21jb250ZXh0LnJlZ3MtPm5pcCk7CisgICBzdC0+cHJpbnQoImxyID0iKTsgcHJpbnRfbG9jYXRp b24oc3QsIChpbnRwdHJfdCl1Yy0+dWNfbWNvbnRleHQucmVncy0+bGluayk7CisgICBzdC0+cHJp bnQoImN0ciA9Iik7IHByaW50X2xvY2F0aW9uKHN0LCAoaW50cHRyX3QpdWMtPnVjX21jb250ZXh0 LnJlZ3MtPmN0cik7CisrI2Vsc2UgLy8gTXVzbAorKyAgc3QtPnByaW50KCJwYyA9Iik7IHByaW50 X2xvY2F0aW9uKHN0LCAoaW50cHRyX3QpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzJdKTsKKysg IHN0LT5wcmludCgibHIgPSIpOyBwcmludF9sb2NhdGlvbihzdCwgKGludHB0cl90KXVjLT51Y19t Y29udGV4dC5ncF9yZWdzWzM2XSk7CisrICBzdC0+cHJpbnQoImN0ciA9Iik7IHByaW50X2xvY2F0 aW9uKHN0LCAoaW50cHRyX3QpdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMzVdKTsKKysjZW5kaWYK KyAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzI7IGkrKykgeworICAgICBzdC0+cHJpbnQoInIlLTJk PSIsIGkpOworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQor ICAgICBwcmludF9sb2NhdGlvbihzdCwgdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwcltpXSk7Cisr I2Vsc2UgLy8gTXVzbAorKyAgICBwcmludF9sb2NhdGlvbihzdCwgdWMtPnVjX21jb250ZXh0Lmdw X3JlZ3NbaV0pOworKyNlbmRpZgorICAgfQorICAgc3QtPmNyKCk7CisgfQorLS0tIG9sZC9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCisrKysgbmV3L3Ny Yy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKK0BAIC01Niw4 ICs1NiwxMyBAQAorICAgLy8gaWYgd2Ugd2VyZSBydW5uaW5nIEphdmEgY29kZSB3aGVuIFNJR1BS T0YgY2FtZSBpbi4KKyAgIGlmIChpc0luSmF2YSkgeworICAgICB1Y29udGV4dF90KiB1YyA9ICh1 Y29udGV4dF90KikgdWNvbnRleHQ7CisrI2lmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVk KF9fVUNMSUJDX18pCisgICAgIGZyYW1lIHJldF9mcmFtZSgoaW50cHRyX3QqKXVjLT51Y19tY29u dGV4dC5yZWdzLT5ncHJbMS8qUkVHX1NQKi9dLAorICAgICAgICAgICAgICAgICAgICAgIChhZGRy ZXNzKXVjLT51Y19tY29udGV4dC5yZWdzLT5uaXApOworKyNlbHNlIC8vIE11c2wKKysgICAgZnJh bWUgcmV0X2ZyYW1lKChpbnRwdHJfdCopdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbMS8qUkVHX1NQ Ki9dLAorKyAgICAgICAgICAgICAgICAgICAgIChhZGRyZXNzKXVjLT51Y19tY29udGV4dC5ncF9y ZWdzWzMyXSk7CisrI2VuZGlmCisKKyAgICAgaWYgKHJldF9mcmFtZS5wYygpID09IE5VTEwpIHsK KyAgICAgICAvLyB1Y29udGV4dCB3YXNuJ3QgdXNlZnVsCitAQCAtNjksNyArNzQsMTEgQEAKKyAg ICAgICAgaWYgKCEoKE1ldGhvZCopKGlzdGF0ZS0+bWV0aG9kKSktPmlzX21ldGFzcGFjZV9vYmpl Y3QoKSkgeworICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX1VDTElCQ19fKQorICAgICAgICB1aW50NjRfdCByZWdf YmNwID0gdWMtPnVjX21jb250ZXh0LnJlZ3MtPmdwclsxNC8qUjE0X2JjcCovXTsKKysjZWxzZSAv LyBNdXNsCisrICAgICAgIHVpbnQ2NF90IHJlZ19iY3AgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVn c1sxNC8qUjE0X2JjcCovXTsKKysjZW5kaWYKKyAgICAgICAgdWludDY0X3QgaXN0YXRlX2JjcCA9 IGlzdGF0ZS0+YmNwOworICAgICAgICB1aW50NjRfdCBjb2RlX3N0YXJ0ID0gKHVpbnQ2NF90KSgo KE1ldGhvZCopKGlzdGF0ZS0+bWV0aG9kKSktPmNvZGVfYmFzZSgpKTsKKyAgICAgICAgdWludDY0 X3QgY29kZV9lbmQgPSAodWludDY0X3QpKCgoTWV0aG9kKilpc3RhdGUtPm1ldGhvZCktPmNvZGVf YmFzZSgpICsgKChNZXRob2QqKWlzdGF0ZS0+bWV0aG9kKS0+Y29kZV9zaXplKCkpOwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9vcGVuamRrLTExL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggYi9z cmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2VmMmFjZTRlMTMKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL29wZW5qZGstMTEvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApAQCAt MCwwICsxLDEyOSBAQAorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xp bnV4X3g4Ni5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51 eF94ODYuY3BwCitAQCAtOTAsNiArOTAsMTI2IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVi cCIKKyAjZW5kaWYgLy8gQU1ENjQKKworKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRh a2VuIGZyb20gZ2xpYmMgMi4yOAorKy8vIHNvdXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9n aXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5 OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJj Mzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZu ZGVmIEFNRDY0CisrLyogRlBVIGNvbnRyb2wgd29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAg Q29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0 ZWQgYnkgT2xhZiBGbGViYmUuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAg IHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor KyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisr ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYg bm90LCBzZWUKKysgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNp Zm5kZWYgX0ZQVV9DT05UUk9MX0gKKysjZGVmaW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBO b3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24geDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRv ZXMgbm90CisrICAgdG91Y2ggdGhlIFNTRSB1bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBk aXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICog KGN3KSByZWdpc3Rlci4KKysgKgorKyAqICAgICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAg Ny02ICAgICA1ICAgIDQgICAgMyAgICAyICAgIDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8 IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgor KyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBtYXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVy YW5kIG1hc2sKKysgKiBaTTogWmVyby1kaXZpZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNr CisrICogVU06IFVuZGVyZmxvdyBtYXNrCisrICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1 bHQpIG1hc2sKKysgKgorKyAqIE1hc2sgYml0IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAq CisrICogUEM6IFByZWNpc2lvbiBjb250cm9sCisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBw cmVjaXNpb24KKysgKiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJv dW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KKysgKgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisr ICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dh cmQgLSBpbmZpbml0eSkKKysgKiAxMCAtIHJvdW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkK KysgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29u dHJvbAorKyAqIFRoYXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUg aGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Ygd2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNs dWRlIDxmZWF0dXJlcy5oPgorKworKy8qIG1hc2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZp bmUgX0ZQVV9NQVNLX0lNICAweDAxCisrI2RlZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVm aW5lIF9GUFVfTUFTS19aTSAgMHgwNAorKyNkZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2Rl ZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKKysjZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKwor Ky8qIHByZWNpc2lvbiBjb250cm9sICovCisrI2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8q IGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVuZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBf RlBVX0RPVUJMRSAgIDB4MjAwCisrI2RlZmluZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJv dW5kaW5nIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVD T01NRU5ERUQgKi8KKysjZGVmaW5lIF9GUFVfUkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQ VV9SQ19VUCAgICAgIDB4ODAwCisrI2RlZmluZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysj ZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMwICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisr CisrCisrLyogVGhlIGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVj aXNpb24gYXJpdGhtZXRpYywKKysgICBhbmQgbm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywg cm91bmRpbmcgdG8gbmVhcmVzdC4gICovCisrCisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3 ZgorKworKy8qIElFRUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAg ICAgMHgwMzdmCisrCisrLyogVHlwZSBvZiB0aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVm IHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19I SV9fKSkpOworKworKy8qIE1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9s IHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KKysgICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2 ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxlX18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29t YmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29udHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAg IGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRpbGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNl ZCBmb3IgcmVhZGluZworKyAgIGJhY2sgdW5kZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKwor KyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRoZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBh bnltb3JlIHdpdGgKKysgICByZWNlbnQgaGFyZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxv YXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUKKysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIg ZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdp c3Rlci4gICovCisrI2RlZmluZSBfRlBVX0dFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAo ImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkKKysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNt X18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAiIDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1 bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFydHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xf dCBfX2ZwdV9jb250cm9sOworKworKyNlbmRpZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2Vu ZGlmIC8vIEFNRDY0CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3Vy cmVudF9zdGFja19wb2ludGVyKCkgeworICNpZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIg dm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrLTExL3RlbXBsYXRlIGIvc3Jj cGtncy9vcGVuamRrLTExL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4wYjE1YjhmMzlkMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Blbmpkay0x MS90ZW1wbGF0ZQpAQCAtMCwwICsxLDE4NiBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3Blbmpk ay0xMScKK19qYXZhX3Zlcj0xMQorX2phdmFfbWluX3Zlcj0wCitfamF2YV9zZWNfdmVyPTQKK19q ZGtfdXBkYXRlPTExCitfb3Blbmpka192ZXJzaW9uPSJvcGVuamRrLSR7X2phdmFfdmVyfSIKKwor Citwa2duYW1lPW9wZW5qZGstMTEKK3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92 ZXJ9LiR7X2phdmFfc2VjX3Zlcn0rJHtfamRrX3VwZGF0ZX0iCityZXZpc2lvbj0xCit3cmtzcmM9 ImpkayR7X2phdmFfdmVyfXUtamRrLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1nbnUtY29uZmln dXJlCitjb25maWd1cmVfYXJncz0iCisgLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycworIC0t cHJlZml4PSR7WEJQU19ERVNURElSfS8ke1hCUFNfQ1JPU1NfVFJJUExFVH0vJHtwa2duYW1lfS0k e3ZlcnNpb259L3Vzci9saWIKKyAtLWVuYWJsZS11bmxpbWl0ZWQtY3J5cHRvCisgLS13aXRoLXps aWI9c3lzdGVtCisgLS13aXRoLWxpYmpwZWc9c3lzdGVtCisgLS13aXRoLWdpZmxpYj1zeXN0ZW0K KyAtLXdpdGgtbGlicG5nPXN5c3RlbQorIC0td2l0aC1sY21zPXN5c3RlbQorIC0td2l0aC1qdHJl Zz1ubworIC0td2l0aC12ZXJzaW9uLWJ1aWxkPSR7dmVyc2lvbn0KKyAtLXdpdGgtdmVuZG9yLW5h bWU9IlZvaWQiCisgLS13aXRoLXZlbmRvci11cmw9Imh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8iCisg LS13aXRoLXZlbmRvci1idWctdXJsPSJodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL2lzc3VlcyIKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9Imh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzIgorIC0td2l0aC1ib290LWpk az0vdXNyL2xpYi9qdm0vb3Blbmpkay0xMS1iaW4iCisKK21ha2VfYnVpbGRfYXJncz0iaW1hZ2Vz ICQodm9wdF9pZiBkb2NzIGRvY3MpIgorbWFrZV9jaGVja190YXJnZXQ9InRlc3QtaG90c3BvdC1n dGVzdCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlv IHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIgorbWFrZWRl cGVuZHM9ImxpYlhyZW5kZXItZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFu ZHItZGV2ZWwKKyBnaWZsaWItZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZy ZWV0eXBlLWRldmVsIGFsc2EtbGliLWRldmVsCisgZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVs IGxjbXMyLWRldmVsIgorcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGph dmEtcnVudGltZSIKK3Nob3J0X2Rlc2M9Ik9wZW5KREsgSmF2YSBEZXZlbG9wbWVudCBLaXQiCitt YWludGFpbmVyPSJLeWxlIE51c2JhdW0gPGtudXNiYXVtK3ZvaWRAc2RmLm9yZz4iCitsaWNlbnNl PSJHUEwtMi4wLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHA6Ly9vcGVuamRrLmphdmEubmV0LyIK K2Rpc3RmaWxlcz0iaHR0cHM6Ly9oZy5vcGVuamRrLmphdmEubmV0L2pkay11cGRhdGVzL2pkayR7 X2phdmFfdmVyfXUvYXJjaGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT0yNzJh ZWFiMGI2ODI2MmUyNzBiOWUyZjlhYWU5YTM3YTk3OTNiMTEwNDI4YzhkOTZkNDg2YzA5NGNjNmE2 NDI5CitzaGxpYl9wcm92aWRlcz0ibGliYXd0LnNvIGxpYmF3dF94YXd0LnNvIGxpYmphdmEuc28g bGliamxpLnNvIGxpYmp2bS5zbyBsaWJqYXd0LnNvIgorCisjIEJ1aWxkIGlzIHN0aWxsIHBhcmFs bGVsLCBidXQgZG9uJ3QgdXNlIC1qTi4KK2Rpc2FibGVfcGFyYWxsZWxfYnVpbGQ9eWVzCitidWls ZF9vcHRpb25zPSJkb2NzIgorCitjYXNlICIkWEJQU19UQVJHRVRfTElCQyIgaW4KKwlnbGliYykg YnVpbGRfb3B0aW9uc19kZWZhdWx0Kz0iIGRvY3MiOzsKK2VzYWMKKworaWYgWyAiJENST1NTX0JV SUxEIiBdOyB0aGVuCisJaG9zdG1ha2VkZXBlbmRzKz0iIG9wZW5qZGstMTEiCisJY29uZmlndXJl X2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVuamRrLTExIgorZWxzZQor CWhvc3RtYWtlZGVwZW5kcys9IiBvcGVuamRrLTExLWJpbiIKKwljb25maWd1cmVfYXJncys9IiAt LXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGstMTEtYmluIgorZmkKKworYWx0ZXJu YXRpdmVzPSIKKyBqYXZhOi91c3IvYmluL2phdmE6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmlu L2phdmEKKyBqYXZhOi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vampz CisgamF2YTovdXNyL2Jpbi9rZXl0b29sOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9rZXl0 b29sCisgamF2YTovdXNyL2Jpbi9ta2NhY2VydHM6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmlu L21rY2FjZXJ0cworIGphdmE6L3Vzci9iaW4vb3JiZDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9i aW4vb3JiZAorIGphdmE6L3Vzci9iaW4vcGFjazIwMDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9i aW4vcGFjazIwMAorIGphdmE6L3Vzci9iaW4vcG9saWN5dG9vbDovdXNyL2xpYi9qdm0vb3Blbmpk ay0xMS9iaW4vcG9saWN5dG9vbAorIGphdmE6L3Vzci9iaW4vcm1pZDovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS9iaW4vcm1pZAorIGphdmE6L3Vzci9iaW4vcm1pcmVnaXN0cnk6L3Vzci9saWIvanZt L29wZW5qZGstMTEvYmluL3JtaXJlZ2lzdHJ5CisgamF2YTovdXNyL2Jpbi9zZXJ2ZXJ0b29sOi91 c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9zZXJ2ZXJ0b29sCisgamF2YTovdXNyL2Jpbi90bmFt ZXNlcnY6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3RuYW1lc2VydgorIGphdmE6L3Vzci9i aW4vdW5wYWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi91bnBhY2syMDAKKworIGpk azovdXNyL2Jpbi9hcHBsZXR2aWV3ZXI6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2FwcGxl dHZpZXdlcgorIGpkazovdXNyL2Jpbi9leHRjaGVjazovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9i aW4vZXh0Y2hlY2sKKyBqZGs6L3Vzci9iaW4vaWRsajovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9i aW4vaWRsagorIGpkazovdXNyL2Jpbi9qYXI6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2ph cgorIGpkazovdXNyL2Jpbi9qYXJzaWduZXI6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2ph cnNpZ25lcgorIGpkazovdXNyL2Jpbi9qYXZhOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9q YXZhCisgamRrOi91c3IvYmluL2phdmEtcm1pLmNnaTovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9i aW4vamF2YS1ybWkuY2dpCisgamRrOi91c3IvYmluL2phdmFjOi91c3IvbGliL2p2bS9vcGVuamRr LTExL2Jpbi9qYXZhYworIGpkazovdXNyL2Jpbi9qYXZhZG9jOi91c3IvbGliL2p2bS9vcGVuamRr LTExL2Jpbi9qYXZhZG9jCisgamRrOi91c3IvYmluL2phdmFoOi91c3IvbGliL2p2bS9vcGVuamRr LTExL2Jpbi9qYXZhaAorIGpkazovdXNyL2Jpbi9qYXZhcDovdXNyL2xpYi9qdm0vb3Blbmpkay0x MS9iaW4vamF2YXAKKyBqZGs6L3Vzci9iaW4vamNtZDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9i aW4vamNtZAorIGpkazovdXNyL2Jpbi9qY29uc29sZTovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9i aW4vamNvbnNvbGUKKyBqZGs6L3Vzci9iaW4vamRiOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jp bi9qZGIKKyBqZGs6L3Vzci9iaW4vamRlcHM6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2pk ZXBzCisgamRrOi91c3IvYmluL2poYXQ6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2poYXQK KyBqZGs6L3Vzci9iaW4vamluZm86L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2ppbmZvCisg amRrOi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vampzCisgamRrOi91 c3IvYmluL2ptYXA6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2ptYXAKKyBqZGs6L3Vzci9i aW4vanBzOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qcHMKKyBqZGs6L3Vzci9iaW4vanJ1 bnNjcmlwdDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vanJ1bnNjcmlwdAorIGpkazovdXNy L2Jpbi9qc2FkZWJ1Z2Q6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2pzYWRlYnVnZAorIGpk azovdXNyL2Jpbi9qc3RhY2s6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL2pzdGFjaworIGpk azovdXNyL2Jpbi9qc3RhdDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4vanN0YXQKKyBqZGs6 L3Vzci9iaW4vanN0YXRkOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9qc3RhdGQKKyBqZGs6 L3Vzci9iaW4va2V5dG9vbDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9iaW4va2V5dG9vbAorIGpk azovdXNyL2Jpbi9uYXRpdmUyYXNjaWk6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL25hdGl2 ZTJhc2NpaQorIGpkazovdXNyL2Jpbi9vcmJkOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi9v cmJkCisgamRrOi91c3IvYmluL3BhY2syMDA6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3Bh Y2syMDAKKyBqZGs6L3Vzci9iaW4vcG9saWN5dG9vbDovdXNyL2xpYi9qdm0vb3Blbmpkay0xMS9i aW4vcG9saWN5dG9vbAorIGpkazovdXNyL2Jpbi9ybWljOi91c3IvbGliL2p2bS9vcGVuamRrLTEx L2Jpbi9ybWljCisgamRrOi91c3IvYmluL3JtaWQ6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmlu L3JtaWQKKyBqZGs6L3Vzci9iaW4vcm1pcmVnaXN0cnk6L3Vzci9saWIvanZtL29wZW5qZGstMTEv YmluL3JtaXJlZ2lzdHJ5CisgamRrOi91c3IvYmluL3NjaGVtYWdlbjovdXNyL2xpYi9qdm0vb3Bl bmpkay0xMS9iaW4vc2NoZW1hZ2VuCisgamRrOi91c3IvYmluL3NlcmlhbHZlcjovdXNyL2xpYi9q dm0vb3Blbmpkay0xMS9iaW4vc2VyaWFsdmVyCisgamRrOi91c3IvYmluL3NlcnZlcnRvb2w6L3Vz ci9saWIvanZtL29wZW5qZGstMTEvYmluL3NlcnZlcnRvb2wKKyBqZGs6L3Vzci9iaW4vdG5hbWVz ZXJ2Oi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi90bmFtZXNlcnYKKyBqZGs6L3Vzci9iaW4v dW5wYWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi91bnBhY2syMDAKKyBqZGs6L3Vz ci9iaW4vd3NnZW46L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3dzZ2VuCisgamRrOi91c3Iv YmluL3dzaW1wb3J0Oi91c3IvbGliL2p2bS9vcGVuamRrLTExL2Jpbi93c2ltcG9ydAorIGpkazov dXNyL2Jpbi94amM6L3Vzci9saWIvanZtL29wZW5qZGstMTEvYmluL3hqYworIgorCitwb3N0X2V4 dHJhY3QoKSB7CisJY2htb2QgK3ggY29uZmlndXJlCisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMi ID0gIm11c2wiIF07IHRoZW4KKwkJcm0gLXIgc3JjL2pkay5ob3RzcG90LmFnZW50CisJZmkKK30K KworcG9zdF9wYXRjaCgpIHsKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsg dGhlbgorCQlmb3IgZiBpbiAiJHtGSUxFU0RJUn0iL211c2xfcGF0Y2hlcy8qLnBhdGNoOyBkbwor CQkJZWNobyAiQXBwbHlpbmcgJGYiCisJCQlwYXRjaCAtTnAxIC1pICIkZiIKKwkJZG9uZQorCWZp Cit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlDRkxBR1M9JHtDRkxBR1MvLURfRk9SVElGWV9TT1VS Q0U9Mi99CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwljb25m aWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9XC91c3Jc L1thLXowLTldKi1saW51eC1bYS16XSovfQorCWlmIFsgIiRYQlBTX0NDQUNIRSIgXSAmJiBbIC16 ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJY29uZmlndXJlX2FyZ3MrPSIgLS1lbmFibGUtY2Nh Y2hlIgorCQlDQz0iL3Vzci9iaW4vY2MiCisJCUNYWD0iL3Vzci9iaW4vYysrIgorCWZpCisJLi9j b25maWd1cmUgJHtjb25maWd1cmVfYXJnc30gLS13aXRoLWV4dHJhLWNmbGFncz0iJENGTEFHUyIg LS13aXRoLWV4dHJhLWN4eGZsYWdzPSIkQ1hYRkxBR1MiIC0td2l0aC1leHRyYS1sZGZsYWdzPSIk TERGTEFHUyIKK30KKworcG9zdF9pbnN0YWxsKCkgeworCXZta2RpciAvdXNyL2xpYi9qdm0KKwlt diAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfamF2YV92ZXJ9LiR7X2phdmFfbWlu X3Zlcn0uJHtfamF2YV9zZWNfdmVyfS1pbnRlcm5hbCAke0RFU1RESVJ9L3Vzci9saWIvanZtL29w ZW5qZGstJHtfamF2YV92ZXJ9CisJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KKwl2aW5z dGFsbCAke0ZJTEVTRElSfS9ta2NhY2VydHMgNzU1IHVzci9saWIvanZtLyRfb3Blbmpka192ZXJz aW9uL2JpbgorCXZta2RpciB1c3IvbGliL2p2bS8kX29wZW5qZGtfdmVyc2lvbi9saWIvc2VjdXJp dHkKKwlzaCAke0ZJTEVTRElSfS9ta2NhY2VydHMgXAorCQktZCAiL3Vzci9zaGFyZS9jYS1jZXJ0 aWZpY2F0ZXMvIiBcCisJCS1zICIvdXNyL2Jpbi9vcGVuc3NsIiAgXAorCQktayAiJHtERVNURElS fS91c3IvbGliL2p2bS8kX29wZW5qZGtfdmVyc2lvbi9iaW4va2V5dG9vbCIgXAorCQktbyAiJHtE RVNURElSfS91c3IvbGliL2p2bS8kX29wZW5qZGtfdmVyc2lvbi9saWIvc2VjdXJpdHkvY2FjZXJ0 cyIKKwl2bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CisK K29wZW5qZGstMTEtZG9jX3BhY2thZ2UoKSB7CisJbm9zdHJpcD15ZXMKKwlub3ZlcmlmeXJkZXBz PXllcworCW5vc2hsaWJwcm92aWRlcz15ZXMKKwlzaG9ydF9kZXNjKz0iIC0tIGRvY3VtZW50YXRp b24iCisJcGtnX2luc3RhbGwoKSB7CisJCWNkICR7d3Jrc3JjfQorCQlpZiBbICIkYnVpbGRfb3B0 aW9uX2RvY3MiIF07IHRoZW4KKwkJCXZta2RpciB1c3Ivc2hhcmUvZG9jL29wZW5qZGstMTEKKwkJ CWNwIC1hIGJ1aWxkL2xpbnV4LSovaW1hZ2VzL2RvY3MvKiAke1BLR0RFU1RESVJ9L3Vzci9zaGFy ZS9kb2Mvb3Blbmpkay0xMQorCQlmaQorCQl2bW92ZSB1c3IvbGliL2p2bS9vcGVuamRrLTExL21h bi9tYW4xLworCX0KK30KKworb3Blbmpkay0xMS1zcmNfcGFja2FnZSgpIHsKKwlub3N0cmlwPXll cworCW5vdmVyaWZ5cmRlcHM9eWVzCisJbm9zaGxpYnByb3ZpZGVzPXllcworCXNob3J0X2Rlc2Mr PSIgLS0gc291cmNlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvanZtL29w ZW5qZGstMTEvbGliL3NyYy56aXAiCisJfQorfQo= --===============1146426604861075469==--