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 ed9dc25d for ; Sat, 7 Sep 2019 18:18:17 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============0202565751879315434==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] [WIP] gcc: update to 9.2.0 and enable gcc-go on musl To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 07 Sep 2019 20:18:17 +0200 Message-ID: <20190907181817.qGuJV6PXpj98DHLa58peaci2APg8yTvF44Py_cKFTcU@z> GitHub notification mails are now in MIME to allow UTF8. --===============0202565751879315434== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLXBw Yy92b2lkLXBhY2thZ2VzIGdjYzkyCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC8xNDI4OQoKW1dJUF0gZ2NjOiB1cGRhdGUgdG8gOS4yLjAgYW5kIGVuYWJs ZSBnY2MtZ28gb24gbXVzbApQcmVsaW1pbmFyeSBwdWxsIHJlcXVlc3QuIEN1cnJlbnRseSBidWls ZGluZyBhbmQgdGVzdGluZy4gYGdjYy1nb2AgZm9yIGBtdXNsYCBpcyBub3cgZW5hYmxlZCwgYnV0 IG9ubHkgZm9yIG5vbi1jcm9zcyBzeXN0ZW1zOyBjcm9zcyB3b3VsZCBuZWVkIHRoaXMgZW5hYmxl ZCBpbiB0aGUgY3Jvc3N0b29sY2hhaW5zLiBXZSBjb3VsZCBtYXliZSB1c2UgdGhpcyBvcHBvcnR1 bml0eSB0byBhbHNvIGVuYWJsZSBPYmplY3RpdmUtQyBpbiB0aGUgY3Jvc3N0b29sY2hhaW5zLCBv ciB3ZSBjb3VsZCBsZWF2ZSB0aGVtIGFzIGlzIGZvciBub3cuCgpBIHBhdGNoIGZpbGUgZnJvbSBo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTQyODkucGF0 Y2ggaXMgYXR0YWNoZWQ= --===============0202565751879315434== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gcc92-14289.patch" RnJvbSBjYjBhNTNjZjYzZTU0N2YwZDM0YjAxZGMwNjliN2Y5N2QyZTMyNTAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQs IDcgU2VwIDIwMTkgMTk6MTM6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBnY2M6IHVwZGF0ZSB0 byA5LjIuMCBhbmQgZW5hYmxlIGdjYy1nbyBvbiBtdXNsCgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dz L2djYy9maWxlcy9nY2Nnby1tdXNsLnBhdGNoICAgICAgICB8IDIwMCArKysrKysrKysKIHNyY3Br Z3MvZ2NjL3BhdGNoZXMvYnVnOTA3NTYucGF0Y2ggICAgICAgIHwgIDIzIC0KIHNyY3BrZ3MvZ2Nj L3BhdGNoZXMvZGFybi5wYXRjaCAgICAgICAgICAgIHwgNTA0ICsrKysrKysrKysrKysrKysrKysr KysKIHNyY3BrZ3MvZ2NjL3BhdGNoZXMvbGliZmZpX2dudWxpbnV4LnBhdGNoIHwgIDExICsKIHNy Y3BrZ3MvZ2NjL3BhdGNoZXMvbm9uLW51bGxuZXNzLnBhdGNoICAgIHwgIDg4IC0tLS0KIHNyY3Br Z3MvZ2NjL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgIDM5ICstCiA2IGZpbGVzIGNo YW5nZWQsIDczMyBpbnNlcnRpb25zKCspLCAxMzIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9nY2MvZmlsZXMvZ2NjZ28tbXVzbC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZ2NjL3BhdGNoZXMvYnVnOTA3NTYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2djYy9wYXRjaGVzL2Rhcm4ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2djYy9wYXRjaGVzL2xpYmZmaV9nbnVsaW51eC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZ2NjL3BhdGNoZXMvbm9uLW51bGxuZXNzLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nY2MvZmlsZXMvZ2NjZ28tbXVzbC5wYXRjaCBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2djY2dv LW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYyMmM2 NjNkYmIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nY2MvZmlsZXMvZ2NjZ28tbXVzbC5w YXRjaApAQCAtMCwwICsxLDIwMCBAQAorVGhpcyBpcyBub3QgYW1vbmcgdGhlIG5vcm1hbCBwYXRj aGVzIGFzIHRoZXNlIGNoYW5nZXMgYXJlIG11c2wgc3BlY2lmaWMgYW5kCit0aGVyZSBpcyBubyB3 YXkgdG8gZWFzaWx5IGNvbmRpdGlvbmFsaXplIGl0IGluIHNvdXJjZSBmb3Igc29tZSBvZiB0aGUg Y2hhbmdlcy4KKworU291dXJjZTogQWTDqWxpZSBMaW51eAorVVJMOiBodHRwczovL2NvZGUuZm94 a2l0LnVzL2FkZWxpZS9wYWNrYWdlcy90cmVlL21hc3Rlci9zeXN0ZW0vZ2NjCisKKy0tLSBNYWtl ZmlsZS5pbgorKysrIE1ha2VmaWxlLmluCitAQCAtNDYzMjUsNyArNDYzMjUsNyBAQCBjb25maWd1 cmUtdGFyZ2V0LWxpYmdvOgorIAllc2FjOyBcCisgCW1vZHVsZV9zcmNkaXI9bGliZ287IFwKKyAJ cm0gLWYgbm8tc3VjaC1maWxlIHx8IDogOyBcCistCUNPTkZJR19TSVRFPW5vLXN1Y2gtZmlsZSAk KFNIRUxMKSBcCisrCUNPTkZJR19TSVRFPW5vLXN1Y2gtZmlsZSBMSUJTPSItbHVjb250ZXh0ICQk TElCUyIgJChTSEVMTCkgXAorIAkgICQkcy8kJG1vZHVsZV9zcmNkaXIvY29uZmlndXJlIFwKKyAJ ICAtLXNyY2Rpcj0kJHt0b3BkaXJ9LyQkbW9kdWxlX3NyY2RpciBcCisgCSAgJChUQVJHRVRfQ09O RklHQVJHUykgLS1idWlsZD0ke2J1aWxkX2FsaWFzfSAtLWhvc3Q9JHt0YXJnZXRfYWxpYXN9IFwK Ky0tLSBsaWJnby9ta3N5c2luZm8uc2gKKysrKyBsaWJnby9ta3N5c2luZm8uc2gKK0BAIC0zNzks MTEgKzM3OSw3IEBAIGZpCisgIyBTb21lIGJhc2ljIHR5cGVzLgorIGVjaG8gJ3R5cGUgU2l6ZV90 IF9zaXplX3QnID4+ICR7T1VUfQorIGVjaG8gInR5cGUgU3NpemVfdCBfc3NpemVfdCIgPj4gJHtP VVR9CistaWYgZ3JlcCAnXmNvbnN0IF9IQVZFX09GRjY0X1QgPSAnIGdlbi1zeXNpbmZvLmdvID4g L2Rldi9udWxsIDI+JjE7IHRoZW4KKy0gIGVjaG8gInR5cGUgT2Zmc2V0X3QgX29mZjY0X3QiID4+ ICR7T1VUfQorLWVsc2UKKy0gIGVjaG8gInR5cGUgT2Zmc2V0X3QgX29mZl90IiA+PiAke09VVH0K Ky1maQorK2VjaG8gInR5cGUgT2Zmc2V0X3QgX29mZl90IiA+PiAke09VVH0KKyBlY2hvICJ0eXBl IE1vZGVfdCBfbW9kZV90IiA+PiAke09VVH0KKyBlY2hvICJ0eXBlIFBpZF90IF9waWRfdCIgPj4g JHtPVVR9CisgZWNobyAidHlwZSBVaWRfdCBfdWlkX3QiID4+ICR7T1VUfQorLS0tIGxpYmdvL2dv L3J1bnRpbWUvbWVtX2djY2dvLmdvCisrKysgbGliZ28vZ28vcnVudGltZS9tZW1fZ2NjZ28uZ28K K0BAIC0xNiw3ICsxNiw3IEBAIGltcG9ydCAoCisgLy9nbzpsaW5rbmFtZSBzeXNGcmVlIHJ1bnRp bWUuc3lzRnJlZQorIAorIC8vZXh0ZXJuIG1tYXAKKy1mdW5jIHN5c01tYXAoYWRkciB1bnNhZmUu UG9pbnRlciwgbiB1aW50cHRyLCBwcm90LCBmbGFncywgZmQgaW50MzIsIG9mZiB1aW50cHRyKSB1 bnNhZmUuUG9pbnRlcgorK2Z1bmMgc3lzTW1hcChhZGRyIHVuc2FmZS5Qb2ludGVyLCBuIHVpbnRw dHIsIHByb3QsIGZsYWdzLCBmZCBpbnQzMiwgb2ZmIGludDY0KSB1bnNhZmUuUG9pbnRlcgorIAor IC8vZXh0ZXJuIG11bm1hcAorIGZ1bmMgbXVubWFwKGFkZHIgdW5zYWZlLlBvaW50ZXIsIGxlbmd0 aCB1aW50cHRyKSBpbnQzMgorQEAgLTM4LDcgKzM4LDcgQEAgZnVuYyBpbml0KCkgeworIAl9Cisg fQorIAorLWZ1bmMgbW1hcChhZGRyIHVuc2FmZS5Qb2ludGVyLCBuIHVpbnRwdHIsIHByb3QsIGZs YWdzLCBmZCBpbnQzMiwgb2ZmIHVpbnRwdHIpICh1bnNhZmUuUG9pbnRlciwgaW50KSB7CisrZnVu YyBtbWFwKGFkZHIgdW5zYWZlLlBvaW50ZXIsIG4gdWludHB0ciwgcHJvdCwgZmxhZ3MsIGZkIGlu dDMyLCBvZmYgaW50NjQpICh1bnNhZmUuUG9pbnRlciwgaW50KSB7CisgCXAgOj0gc3lzTW1hcChh ZGRyLCBuLCBwcm90LCBmbGFncywgZmQsIG9mZikKKyAJaWYgdWludHB0cihwKSA9PSBfTUFQX0ZB SUxFRCB7CisgCQlyZXR1cm4gbmlsLCBlcnJubygpCistLS0gbGliZ28vZ28vcnVudGltZS9zaWdu YWxfZ2NjZ28uZ28KKysrKyBsaWJnby9nby9ydW50aW1lL3NpZ25hbF9nY2Nnby5nbworQEAgLTEx MSw3ICsxMTEsNyBAQCBmdW5jIGdldHNpZyhpIHVpbnQzMikgdWludHB0ciB7CisgCWlmIHNpZ2Fj dGlvbihpLCBuaWwsICZzYSkgPCAwIHsKKyAJCS8vIE9uIEdOVS9MaW51eCBnbGliYyByZWplY3Rz IGF0dGVtcHRzIHRvIGNhbGwKKyAJCS8vIHNpZ2FjdGlvbiB3aXRoIHNpZ25hbCAzMiAoU0lHQ0FO Q0VMKSBvciAzMyAoU0lHU0VUWElEKS4KKy0JCWlmIEdPT1MgPT0gImxpbnV4IiAmJiAoaSA9PSAz MiB8fCBpID09IDMzKSB7CisrCQlpZiBHT09TID09ICJsaW51eCIgJiYgKGkgPT0gMzIgfHwgaSA9 PSAzMyB8fCBpID09IDM0KSB7CisgCQkJcmV0dXJuIF9TSUdfREZMCisgCQl9CisgCQl0aHJvdygi c2lnYWN0aW9uIHJlYWQgZmFpbHVyZSIpCistLS0gbGliZ28vZ28vc3lzY2FsbC9lcnJzdHIuZ28K KysrKyBsaWJnby9nby9zeXNjYWxsL2VycnN0ci5nbworQEAgLTUsNyArNSw2IEBACisgLy8gbGlj ZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorIAorIC8vICtidWls ZCAhaHVyZAorLS8vICtidWlsZCAhbGludXgKKyAKKyBwYWNrYWdlIHN5c2NhbGwKKyAKKy0tLSBs aWJnby9nby9zeXNjYWxsL2VycnN0cl9nbGliYy5nbworKysrIC9kZXYvbnVsbAorQEAgLTEsMzMg KzAsMCBAQAorLS8vIGVycnN0cl9nbGliYy5nbyAtLSBHTlUvTGludXggYW5kIEdOVS9IdXJkIHNw ZWNpZmljIGVycm9yIHN0cmluZ3MuCistCistLy8gQ29weXJpZ2h0IDIwMTAgVGhlIEdvIEF1dGhv cnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCistLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKKy0vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGlu IHRoZSBMSUNFTlNFIGZpbGUuCistCistLy8gV2UgdXNlIHRoaXMgcmF0aGVyIHRoYW4gZXJyc3Ry LmdvIGJlY2F1c2Ugb24gR05VL0xpbnV4IHN0ZXJyb3JfcgorLS8vIHJldHVybnMgYSBwb2ludGVy IHRvIHRoZSBlcnJvciBtZXNzYWdlLCBhbmQgbWF5IG5vdCB1c2UgYnVmIGF0IGFsbC4KKy0KKy0v LyArYnVpbGQgaHVyZCBsaW51eAorLQorLXBhY2thZ2Ugc3lzY2FsbAorLQorLWltcG9ydCAidW5z YWZlIgorLQorLS8vc3lzbmIJc3RyZXJyb3JfcihlcnJudW0gaW50LCBiIFtdYnl0ZSkgKGVycnN0 ciAqYnl0ZSkKKy0vL3N0cmVycm9yX3IoZXJybnVtIF9DX2ludCwgYiAqYnl0ZSwgbGVuIFNpemVf dCkgKmJ5dGUKKy0KKy1mdW5jIEVycnN0cihlcnJudW0gaW50KSBzdHJpbmcgeworLQlhIDo9IG1h a2UoW11ieXRlLCAxMjgpCistCXAgOj0gc3RyZXJyb3JfcihlcnJudW0sIGEpCistCWIgOj0gKCpb MTAwMF1ieXRlKSh1bnNhZmUuUG9pbnRlcihwKSkKKy0JaSA6PSAwCistCWZvciBiW2ldICE9IDAg eworLQkJaSsrCistCX0KKy0JLy8gTG93ZXJjYXNlIGZpcnN0IGxldHRlcjogQmFkIC0+IGJhZCwg YnV0IFNUUkVBTSAtPiBTVFJFQU0uCistCWlmIGkgPiAxICYmICdBJyA8PSBiWzBdICYmIGJbMF0g PD0gJ1onICYmICdhJyA8PSBiWzFdICYmIGJbMV0gPD0gJ3onIHsKKy0JCWMgOj0gYlswXSArICdh JyAtICdBJworLQkJcmV0dXJuIHN0cmluZyhjKSArIHN0cmluZyhiWzE6aV0pCistCX0KKy0JcmV0 dXJuIHN0cmluZyhiWzppXSkKKy19CistLS0gbGliZ28vZ28vc3lzY2FsbC9saWJjYWxsX2xpbnV4 LmdvCisrKysgbGliZ28vZ28vc3lzY2FsbC9saWJjYWxsX2xpbnV4LmdvCitAQCAtMjA2LDE5ICsy MDYsMTkgQEAgZnVuYyBHZXR0aWQoKSAodGlkIGludCkgeworIC8vc3lzCVNldHhhdHRyKHBhdGgg c3RyaW5nLCBhdHRyIHN0cmluZywgZGF0YSBbXWJ5dGUsIGZsYWdzIGludCkgKGVyciBlcnJvcikK KyAvL3NldHhhdHRyKHBhdGggKmJ5dGUsIG5hbWUgKmJ5dGUsIHZhbHVlICpieXRlLCBzaXplIFNp emVfdCwgZmxhZ3MgX0NfaW50KSBfQ19pbnQKKyAKKy0vL3N5cwlzcGxpY2UocmZkIGludCwgcm9m ZiAqX2xvZmZfdCwgd2ZkIGludCwgd29mZiAqX2xvZmZfdCwgbGVuIGludCwgZmxhZ3MgaW50KSAo biBpbnQ2NCwgZXJyIGVycm9yKQorLS8vc3BsaWNlKHJmZCBfQ19pbnQsIHJvZmYgKl9sb2ZmX3Qs IHdmZCBfQ19pbnQsIHdvZmYgKl9sb2ZmX3QsIGxlbiBTaXplX3QsIGZsYWdzIF9DX3VpbnQpIFNz aXplX3QKKysvL3N5cwlzcGxpY2UocmZkIGludCwgcm9mZiAqX29mZl90LCB3ZmQgaW50LCB3b2Zm ICpfb2ZmX3QsIGxlbiBpbnQsIGZsYWdzIGludCkgKG4gaW50NjQsIGVyciBlcnJvcikKKysvL3Nw bGljZShyZmQgX0NfaW50LCByb2ZmICpfb2ZmX3QsIHdmZCBfQ19pbnQsIHdvZmYgKl9vZmZfdCwg bGVuIFNpemVfdCwgZmxhZ3MgX0NfdWludCkgU3NpemVfdAorIGZ1bmMgU3BsaWNlKHJmZCBpbnQs IHJvZmYgKmludDY0LCB3ZmQgaW50LCB3b2ZmICppbnQ2NCwgbGVuIGludCwgZmxhZ3MgaW50KSAo biBpbnQ2NCwgZXJyIGVycm9yKSB7CistCXZhciBscm9mZiBfbG9mZl90CistCXZhciBwbHJvZmYg Kl9sb2ZmX3QKKysJdmFyIGxyb2ZmIF9vZmZfdAorKwl2YXIgcGxyb2ZmICpfb2ZmX3QKKyAJaWYg cm9mZiAhPSBuaWwgeworLQkJbHJvZmYgPSBfbG9mZl90KCpyb2ZmKQorKwkJbHJvZmYgPSBfb2Zm X3QoKnJvZmYpCisgCQlwbHJvZmYgPSAmbHJvZmYKKyAJfQorLQl2YXIgbHdvZmYgX2xvZmZfdAor LQl2YXIgcGx3b2ZmICpfbG9mZl90CisrCXZhciBsd29mZiBfb2ZmX3QKKysJdmFyIHBsd29mZiAq X29mZl90CisgCWlmIHdvZmYgIT0gbmlsIHsKKy0JCWx3b2ZmID0gX2xvZmZfdCgqd29mZikKKysJ CWx3b2ZmID0gX29mZl90KCp3b2ZmKQorIAkJcGx3b2ZmID0gJmx3b2ZmCisgCX0KKyAJbiwgZXJy ID0gc3BsaWNlKHJmZCwgcGxyb2ZmLCB3ZmQsIHBsd29mZiwgbGVuLCBmbGFncykKKy0tLSBsaWJn by9ta3NpZ3RhYi5zaAorKysrIGxpYmdvL21rc2lndGFiLnNoCitAQCAtODIsNyArODIsNyBAQCBj aGVja3NpZyBfU0lHUFdSICAgICAne19TaWdOb3RpZnksICJTSUdQV1I6IHBvd2VyIGZhaWx1cmUg cmVzdGFydCJ9JworIGNoZWNrc2lnIF9TSUdFTVQgICAgICd7X1NpZ1Rocm93LCAiU0lHRU1UOiBl bXVsYXRlIGluc3RydWN0aW9uIGV4ZWN1dGVkIn0nCisgY2hlY2tzaWcgX1NJR0lORk8gICAgJ3tf U2lnTm90aWZ5LCAiU0lHSU5GTzogc3RhdHVzIHJlcXVlc3QgZnJvbSBrZXlib2FyZCJ9JworIGNo ZWNrc2lnIF9TSUdUSFIgICAgICd7X1NpZ05vdGlmeSwgIlNJR1RIUjogcmVzZXJ2ZWQifScKKy1j aGVja3NpZyBfU0lHUE9MTCAgICAne19TaWdOb3RpZnksICJTSUdQT0xMOiBwb2xsYWJsZSBldmVu dCBvY2N1cnJlZCJ9JworKyNjaGVja3NpZyBfU0lHUE9MTCAgICAne19TaWdOb3RpZnksICJTSUdQ T0xMOiBwb2xsYWJsZSBldmVudCBvY2N1cnJlZCJ9JworIGNoZWNrc2lnIF9TSUdXQUlUSU5HICd7 X1NpZ05vdGlmeSwgIlNJR1dBSVRJTkc6IHJlc2VydmVkIHNpZ25hbCBubyBsb25nZXIgdXNlZCBi eSJ9JworIGNoZWNrc2lnIF9TSUdMV1AgICAgICd7X1NpZ05vdGlmeSwgIlNJR0xXUDogcmVzZXJ2 ZWQgc2lnbmFsIG5vIGxvbmdlciB1c2VkIGJ5In0nCisgY2hlY2tzaWcgX1NJR0ZSRUVaRSAgJ3tf U2lnTm90aWZ5LCAiU0lHRlJFRVpFOiBzcGVjaWFsIHNpZ25hbCB1c2VkIGJ5IENQUiJ9JworQEAg LTk1LDEwICs5NSwxMiBAQCBjaGVja3NpZyBfU0lHTE9TVCAnICAge19TaWdOb3RpZnksICJTSUdM T1NUOiByZXNvdXJjZSBsb3N0IChTdW4pOyBzZXJ2ZXIgZGllZCAoRworIAorICMgU3BlY2lhbCBo YW5kbGluZyBvZiBzaWduYWxzIDMyIGFuZCAzMyBvbiBHTlUvTGludXggc3lzdGVtcywKKyAjIGJl Y2F1c2UgdGhleSBhcmUgc3BlY2lhbCB0byBnbGliYy4KKysjIFNpZ25hbCAzNCBpcyBhZGRpdGlv bmFsbHkgc3BlY2lhbCB0byBMaW51eCBzeXN0ZW1zIHdpdGggbXVzbC4KKyBpZiB0ZXN0ICIke0dP T1N9IiA9ICJsaW51eCI7IHRoZW4KKy0gICAgU0lHTElTVD0kU0lHTElTVCJfMzJfXzMzXyIKKysg ICAgU0lHTElTVD0kU0lHTElTVCJfMzJfXzMzX18zNF8iCisgICAgIGVjaG8gJwkzMjoge19TaWdT ZXRTdGFjayArIF9TaWdVbmJsb2NrLCAic2lnbmFsIDMyIn0sIC8qIFNJR0NBTkNFTDsgc2VlIGlz c3VlIDY5OTcgKi8nCisgICAgIGVjaG8gJwkzMzoge19TaWdTZXRTdGFjayArIF9TaWdVbmJsb2Nr LCAic2lnbmFsIDMzIn0sIC8qIFNJR1NFVFhJRDsgc2VlIGlzc3VlcyAzODcxLCA5NDAwLCAxMjQ5 OCAqLycKKysgICAgZWNobyAnCTM0OiB7X1NpZ1NldFN0YWNrICsgX1NpZ1VuYmxvY2ssICJzaWdu YWwgMzQifSwgLyogc2VlIGlzc3VlIDMwMDYyICovJworIGZpCisgCisgaWYgdGVzdCAiJHtHT09T fSIgPSAiYWl4IjsgdGhlbgorLS0tIGxpYmdvL3J1bnRpbWUvZ28tc2lnbmFsLmMKKysrKyBsaWJn by9ydW50aW1lL2dvLXNpZ25hbC5jCitAQCAtMjIyLDcgKzIyMiwxMSBAQCBnZXRTaWdpbmZvKHNp Z2luZm9fdCAqaW5mbywgdm9pZCAqY29udGV4dCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSkKKyAj ZW5kaWYKKyAjaWZkZWYgX19QUENfXworICAgI2lmZGVmIF9fbGludXhfXworLQlyZXQuc2lncGMg PSAoKHVjb250ZXh0X3QqKShjb250ZXh0KSktPnVjX21jb250ZXh0LnJlZ3MtPm5pcDsKKysgICAg I2lmZGVmIF9fUFBDNjRfXworKwlyZXQuc2lncGMgPSAoKHVjb250ZXh0X3QqKShjb250ZXh0KSkt PnVjX21jb250ZXh0LmdwX3JlZ3NbMzJdOworKyAgICAjZWxzZQorKwlyZXQuc2lncGMgPSAoKHVj b250ZXh0X3QqKShjb250ZXh0KSktPnVjX21jb250ZXh0LmdyZWdzWzMyXTsKKysgICAgI2VuZGlm CisgICAjZW5kaWYKKyAgICNpZmRlZiBfQUlYCisgCXJldC5zaWdwYyA9ICgodWNvbnRleHRfdCop KGNvbnRleHQpKS0+dWNfbWNvbnRleHQuam1wX2NvbnRleHQuaWFyOworQEAgLTM0Myw3ICszNDMs NyBAQCBkdW1wcmVncyhzaWdpbmZvX3QgKmluZm8gX19hdHRyaWJ1dGVfXygodW51c2VkKSksIHZv aWQgKmNvbnRleHQgX19hdHRyaWJ1dGVfXygodQorICAgI2VuZGlmCisgI2VuZGlmCisgCistI2lm IGRlZmluZWQoX19QUENfXykgJiYgZGVmaW5lZChfX0xJVFRMRV9FTkRJQU5fXykKKysjaWYgZGVm aW5lZChfX1BQQ19fKSAmJiBkZWZpbmVkKF9fTElUVExFX0VORElBTl9fKSAmJiBkZWZpbmVkKF9f R0xJQkNfXykKKyAgICNpZmRlZiBfX2xpbnV4X18KKyAJICB7CisgCQltY29udGV4dF90ICptID0g JigodWNvbnRleHRfdCopKGNvbnRleHQpKS0+dWNfbWNvbnRleHQ7CistLS0gbGliZ28vc3lzaW5m by5jCisrKysgbGliZ28vc3lzaW5mby5jCitAQCAtNzMsOSArNzMsNiBAQAorICNpbmNsdWRlIDxz eXMvdGltZXMuaD4KKyAjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyAjaW5jbHVkZSA8c3lzL3VuLmg+ CistI2lmIGRlZmluZWQoSEFWRV9TWVNfVVNFUl9IKQorLSNpbmNsdWRlIDxzeXMvdXNlci5oPgor LSNlbmRpZgorICNpZiBkZWZpbmVkKEhBVkVfU1lTX1VUU05BTUVfSCkKKyAjaW5jbHVkZSA8c3lz L3V0c25hbWUuaD4KKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2NjL3BhdGNoZXMvYnVn OTA3NTYucGF0Y2ggYi9zcmNwa2dzL2djYy9wYXRjaGVzL2J1ZzkwNzU2LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjc4ZGFkOWNjZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9nY2MvcGF0Y2hlcy9idWc5MDc1Ni5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzICsw LDAgQEAKLUJ1ZyA5MDc1NiAtIFs3LzgvOSBSZWdyZXNzaW9uXSBnKysgSUNFIGluIGNvbnZlcnRf bW92ZSwgYXQgZXhwci5jOjIxOCBvbiBpNjg2IGFuZCBzMzkweCAKLWh0dHBzOi8vZ2NjLmdudS5v cmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTkwNzU2Ci0KLS0tLSBnY2MvZXhwbG93LmMJMjAx OS8wNy8wNCAwMjozOTo1OAkyNzMwMzUKLSsrKyBnY2MvZXhwbG93LmMJMjAxOS8wNy8wNCAwNDo0 OToyMgkyNzMwMzYKLUBAIC04OTIsMTYgKzg5Miw3IEBACi0gCi0gICB0cmVlIHR5cGUgPSBUUkVF X1RZUEUgKG5hbWUpOwotICAgaW50IHVuc2lnbmVkcCA9IFRZUEVfVU5TSUdORUQgKHR5cGUpOwot LSAgbWFjaGluZV9tb2RlIG1vZGUgPSBUWVBFX01PREUgKHR5cGUpOwotLQotLSAgLyogQnlwYXNz IFRZUEVfTU9ERSB3aGVuIGl0IG1hcHMgdmVjdG9yIG1vZGVzIHRvIEJMS21vZGUuICAqLwotLSAg aWYgKG1vZGUgPT0gQkxLbW9kZSkKLS0gICAgewotLSAgICAgIGdjY19hc3NlcnQgKFZFQ1RPUl9U WVBFX1AgKHR5cGUpKTsKLS0gICAgICBtb2RlID0gdHlwZS0+dHlwZV9jb21tb24ubW9kZTsKLS0g ICAgfQotLQotLSAgbWFjaGluZV9tb2RlIHBtb2RlID0gcHJvbW90ZV9tb2RlICh0eXBlLCBtb2Rl LCAmdW5zaWduZWRwKTsKLSsgIG1hY2hpbmVfbW9kZSBwbW9kZSA9IHByb21vdGVfbW9kZSAodHlw ZSwgVFlQRV9NT0RFICh0eXBlKSwgJnVuc2lnbmVkcCk7Ci0gICBpZiAocHVuc2lnbmVkcCkKLSAg ICAgKnB1bnNpZ25lZHAgPSB1bnNpZ25lZHA7Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9w YXRjaGVzL2Rhcm4ucGF0Y2ggYi9zcmNwa2dzL2djYy9wYXRjaGVzL2Rhcm4ucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk3ZjdkZTNmNDM4Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9nY2MvcGF0Y2hlcy9kYXJuLnBhdGNoCkBAIC0wLDAgKzEsNTA0IEBA CitVcHN0cmVhbTogeWVzCitSZWZlcmVuY2U6IGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEv c2hvd19idWcuY2dpP2lkPTkxNDgxCisKK2h0dHBzOi8vZ2NjLmdudS5vcmcvdmlld2N2cy9nY2M/ dmlldz1yZXZpc2lvbiZyZXZpc2lvbj0yNzUxNzAKK2h0dHBzOi8vZ2NjLmdudS5vcmcvdmlld2N2 cy9nY2M/dmlldz1yZXZpc2lvbiZyZXZpc2lvbj0yNzUxODEKKworRml4ZXMgYSBzZWN1cml0eSBp c3N1ZSB3aXRoIHRoZSBoYXJkd2FyZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvcgord2hlbiBjb21w aWxpbmcgZm9yIFBPV0VSOS4gU2luY2UgVm9pZCBjb21waWxlcyBmb3IgUE9XRVI4IGJ5CitkZWZh dWx0LCBpdCdzIG5vdCBhZmZlY3RlZCwgYnV0IHBlb3BsZSBidWlsZGluZyBjdXN0b20gYmluYXJp ZXMKK21pZ2h0IGJlLgorCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvYWx0aXZlYy5tZAorKysrIGdj Yy9jb25maWcvcnM2MDAwL2FsdGl2ZWMubWQKK0BAIC04MCw5ICs4MCw2IEBACisgICAgVU5TUEVD X1ZVUEtIUFgKKyAgICBVTlNQRUNfVlVQS0xQWAorICAgIFVOU1BFQ19DT05WRVJUXzRGMzJfOEkx NgorLSAgIFVOU1BFQ19EQVJOCistICAgVU5TUEVDX0RBUk5fMzIKKy0gICBVTlNQRUNfREFSTl9S QVcKKyAgICBVTlNQRUNfRFNUCisgICAgVU5TUEVDX0RTVFQKKyAgICBVTlNQRUNfRFNUU1QKK0BA IC0xNjEsOSArMTU4LDYgQEAKKyAgICBVTlNQRUNfQkNEQURECisgICAgVU5TUEVDX0JDRFNVQgor ICAgIFVOU1BFQ19CQ0RfT1ZFUkZMT1cKKy0gICBVTlNQRUNfQ01QUkIKKy0gICBVTlNQRUNfQ01Q UkIyCistICAgVU5TUEVDX0NNUEVRQgorICAgIFVOU1BFQ19WUkxNSQorICAgIFVOU1BFQ19WUkxO TQorIF0pCitAQCAtNDEwMSwyMjMgKzQwOTUsNiBAQAorICAgImJjZDxiY2RfYWRkX3N1Yj4uICUw LCUxLCUyLCUzIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3NpbXBsZSIpXSkKKyAKKy0oZGVm aW5lX2luc24gImRhcm5fMzIiCistICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXIiKQorLSAgICAgICAgKHVuc3BlYzpTSSBbKGNvbnN0X2ludCAwKV0gVU5T UEVDX0RBUk5fMzIpKV0KKy0gICJUQVJHRVRfUDlfTUlTQyIKKy0gICJkYXJuICUwLDAiCistICBb KHNldF9hdHRyICJ0eXBlIiAiaW50ZWdlciIpXSkKKy0KKy0oZGVmaW5lX2luc24gImRhcm5fcmF3 IgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikK Ky0gICAgICAgICh1bnNwZWM6REkgWyhjb25zdF9pbnQgMCldIFVOU1BFQ19EQVJOX1JBVykpXQor LSAgIlRBUkdFVF9QOV9NSVNDICYmIFRBUkdFVF82NEJJVCIKKy0gICJkYXJuICUwLDIiCistICBb KHNldF9hdHRyICJ0eXBlIiAiaW50ZWdlciIpXSkKKy0KKy0oZGVmaW5lX2luc24gImRhcm4iCist ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorLSAg ICAgICAgKHVuc3BlYzpESSBbKGNvbnN0X2ludCAwKV0gVU5TUEVDX0RBUk4pKV0KKy0gICJUQVJH RVRfUDlfTUlTQyAmJiBUQVJHRVRfNjRCSVQiCistICAiZGFybiAlMCwxIgorLSAgWyhzZXRfYXR0 ciAidHlwZSIgImludGVnZXIiKV0pCistCistOzsgVGVzdCBieXRlIHdpdGhpbiByYW5nZS4KKy07 OworLTs7IFRoZSBieXRlcyBvZiBvcGVyYW5kIDEgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDp4eDp2 diwgd2hlcmUgeHgKKy07OyByZXByZXNlbnRzIGEgYnl0ZSB3aG9zZSB2YWx1ZSBpcyBpZ25vcmVk IGluIHRoaXMgY29udGV4dCBhbmQKKy07OyB2diwgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJ5dGUs IGhvbGRzIHRoZSBieXRlIHZhbHVlIHRoYXQgaXMgdG8KKy07OyBiZSB0ZXN0ZWQgZm9yIG1lbWJl cnNoaXAgd2l0aGluIHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgb3BlcmFuZCAyLgorLTs7IFRoZSBi eXRlcyBvZiBvcGVyYW5kIDIgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDpoaTpsby4KKy07OworLTs7 IFJldHVybiBpbiB0YXJnZXQgcmVnaXN0ZXIgb3BlcmFuZCAwIGEgdmFsdWUgb2YgMSBpZiBsbyA8 PSB2diBhbmQKKy07OyB2diA8PSBoaS4gIE90aGVyd2lzZSwgc2V0IHJlZ2lzdGVyIG9wZXJhbmQg MCB0byAwLgorLTs7CistOzsgVGhvdWdoIHRoZSBpbnN0cnVjdGlvbnMgdG8gd2hpY2ggdGhpcyBl eHBhbnNpb24gbWFwcyBvcGVyYXRlIG9uCistOzsgNjQtYml0IHJlZ2lzdGVycywgdGhlIGN1cnJl bnQgaW1wbGVtZW50YXRpb24gb25seSBvcGVyYXRlcyBvbgorLTs7IFNJLW1vZGUgb3BlcmFuZHMg YXMgdGhlIGhpZ2gtb3JkZXIgYml0cyBwcm92aWRlIG5vIGluZm9ybWF0aW9uCistOzsgdGhhdCBp cyBub3QgYWxyZWFkeSBhdmFpbGFibGUgaW4gdGhlIGxvdy1vcmRlciBiaXRzLiAgVG8gYXZvaWQg dGhlCistOzsgY29zdHMgb2YgZGF0YSB3aWRlbmluZyBvcGVyYXRpb25zLCBmdXR1cmUgZW5oYW5j ZW1lbnRzIG1pZ2h0IGFsbG93CistOzsgREkgbW9kZSBmb3Igb3BlcmFuZCAwIGFuZC9vciBtaWdo dCBhbGxvdyBvcGVyYW5kIDEgdG8gYmUgUUkgbW9kZS4KKy0oZGVmaW5lX2V4cGFuZCAiY21wcmIi CistICBbKHNldCAobWF0Y2hfZHVwIDMpCistCSh1bnNwZWM6Q0MgWyhtYXRjaF9vcGVyYW5kOlNJ IDEgImdwY19yZWdfb3BlcmFuZCIgInIiKQorLQkJICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImdw Y19yZWdfb3BlcmFuZCIgInIiKV0KKy0JIFVOU1BFQ19DTVBSQikpCistICAgKHNldCAobWF0Y2hf b3BlcmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9ciIpCistCShpZl90aGVuX2Vsc2U6U0kg KGx0IChtYXRjaF9kdXAgMykKKy0JCQkgICAgIChjb25zdF9pbnQgMCkpCistCQkJIChjb25zdF9p bnQgLTEpCistCQkJIChpZl90aGVuX2Vsc2UgKGd0IChtYXRjaF9kdXAgMykKKy0JCQkJCSAgIChj b25zdF9pbnQgMCkpCistCQkJCSAgICAgICAoY29uc3RfaW50IDEpCistCQkJCSAgICAgICAoY29u c3RfaW50IDApKSkpXQorLSAgIlRBUkdFVF9QOV9NSVNDIgorLXsKKy0gIG9wZXJhbmRzWzNdID0g Z2VuX3JlZ19ydHggKENDbW9kZSk7CistfSkKKy0KKy07OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAx IGFyZSBvcmdhbml6ZWQgYXMgeHg6eHg6eHg6dnYsIHdoZXJlIHh4CistOzsgcmVwcmVzZW50cyBh IGJ5dGUgd2hvc2UgdmFsdWUgaXMgaWdub3JlZCBpbiB0aGlzIGNvbnRleHQgYW5kCistOzsgdnYs IHRoZSBsZWFzdCBzaWduaWZpY2FudCBieXRlLCBob2xkcyB0aGUgYnl0ZSB2YWx1ZSB0aGF0IGlz IHRvCistOzsgYmUgdGVzdGVkIGZvciBtZW1iZXJzaGlwIHdpdGhpbiB0aGUgcmFuZ2Ugc3BlY2lm aWVkIGJ5IG9wZXJhbmQgMi4KKy07OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAyIGFyZSBvcmdhbml6 ZWQgYXMgeHg6eHg6aGk6bG8uCistOzsKKy07OyBTZXQgYml0IDEgKHRoZSBHVCBiaXQsIDB4NCkg b2YgQ1IgcmVnaXN0ZXIgb3BlcmFuZCAwIHRvIDEgaWYKKy07OyBsbyA8PSB2diBhbmQgdnYgPD0g aGkuICBPdGhlcndpc2UsIHNldCB0aGUgR1QgYml0IHRvIDAuICBUaGUgb3RoZXIKKy07OyAzIGJp dHMgb2YgdGhlIHRhcmdldCBDUiByZWdpc3RlciBhcmUgYWxsIHNldCB0byAwLgorLShkZWZpbmVf aW5zbiAiKmNtcHJiX2ludGVybmFsIgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Q0MgMCAiY2Nf cmVnX29wZXJhbmQiICI9eSIpCistCSh1bnNwZWM6Q0MgWyhtYXRjaF9vcGVyYW5kOlNJIDEgImdw Y19yZWdfb3BlcmFuZCIgInIiKQorLQkJICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImdwY19yZWdf b3BlcmFuZCIgInIiKV0KKy0JIFVOU1BFQ19DTVBSQikpXQorLSAgIlRBUkdFVF9QOV9NSVNDIgor LSAgImNtcHJiICUwLDAsJTEsJTIiCistICBbKHNldF9hdHRyICJ0eXBlIiAibG9naWNhbCIpXSkK Ky0KKy07OyBTZXQgb3BlcmFuZCAwIHJlZ2lzdGVyIHRvIC0xIGlmIHRoZSBMVCBiaXQgKDB4OCkg b2YgY29uZGl0aW9uCistOzsgcmVnaXN0ZXIgb3BlcmFuZCAxIGlzIG9uLiAgT3RoZXJ3aXNlLCBz ZXQgb3BlcmFuZCAwIHJlZ2lzdGVyIHRvIDEKKy07OyBpZiB0aGUgR1QgYml0ICgweDQpIG9mIGNv bmRpdGlvbiByZWdpc3RlciBvcGVyYW5kIDEgaXMgb24uCistOzsgT3RoZXJ3aXNlLCBzZXQgb3Bl cmFuZCAwIHRvIDAuICBOb3RlIHRoYXQgdGhlIHJlc3VsdCBzdG9yZWQgaW50bworLTs7IHJlZ2lz dGVyIG9wZXJhbmQgMCBpcyBub24temVybyBpZmYgZWl0aGVyIHRoZSBMVCBvciBHVCBiaXRzIGFy ZSBvbgorLTs7IHdpdGhpbiBjb25kaXRpb24gcmVnaXN0ZXIgb3BlcmFuZCAxLgorLShkZWZpbmVf aW5zbiAic2V0Yl9zaWduZWQiCistICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiZ3BjX3Jl Z19vcGVyYW5kIiAiPXIiKQorLQkgKGlmX3RoZW5fZWxzZTpTSSAobHQgKG1hdGNoX29wZXJhbmQ6 Q0MgMSAiY2NfcmVnX29wZXJhbmQiICJ5IikKKy0JCQkgICAgICAoY29uc3RfaW50IDApKQorLQkJ CSAgKGNvbnN0X2ludCAtMSkKKy0JCQkgIChpZl90aGVuX2Vsc2UgKGd0IChtYXRjaF9kdXAgMSkK Ky0JCQkJCSAgICAoY29uc3RfaW50IDApKQorLQkJCQkJKGNvbnN0X2ludCAxKQorLQkJCQkJKGNv bnN0X2ludCAwKSkpKV0KKy0gICJUQVJHRVRfUDlfTUlTQyIKKy0gICJzZXRiICUwLCUxIgorLSAg WyhzZXRfYXR0ciAidHlwZSIgImxvZ2ljYWwiKV0pCistCistKGRlZmluZV9pbnNuICJzZXRiX3Vu c2lnbmVkIgorLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgImdwY19yZWdfb3BlcmFuZCIg Ij1yIikKKy0JIChpZl90aGVuX2Vsc2U6U0kgKGx0dSAobWF0Y2hfb3BlcmFuZDpDQ1VOUyAxICJj Y19yZWdfb3BlcmFuZCIgInkiKQorLQkJCSAgICAgIChjb25zdF9pbnQgMCkpCistCQkJICAoY29u c3RfaW50IC0xKQorLQkJCSAgKGlmX3RoZW5fZWxzZSAoZ3R1IChtYXRjaF9kdXAgMSkKKy0JCQkJ CSAgICAoY29uc3RfaW50IDApKQorLQkJCQkJKGNvbnN0X2ludCAxKQorLQkJCQkJKGNvbnN0X2lu dCAwKSkpKV0KKy0gICJUQVJHRVRfUDlfTUlTQyIKKy0gICJzZXRiICUwLCUxIgorLSAgWyhzZXRf YXR0ciAidHlwZSIgImxvZ2ljYWwiKV0pCistCistOzsgVGVzdCBieXRlIHdpdGhpbiB0d28gcmFu Z2VzLgorLTs7CistOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMSBhcmUgb3JnYW5pemVkIGFzIHh4 Onh4Onh4OnZ2LCB3aGVyZSB4eAorLTs7IHJlcHJlc2VudHMgYSBieXRlIHdob3NlIHZhbHVlIGlz IGlnbm9yZWQgaW4gdGhpcyBjb250ZXh0IGFuZAorLTs7IHZ2LCB0aGUgbGVhc3Qgc2lnbmlmaWNh bnQgYnl0ZSwgaG9sZHMgdGhlIGJ5dGUgdmFsdWUgdGhhdCBpcyB0bworLTs7IGJlIHRlc3RlZCBm b3IgbWVtYmVyc2hpcCB3aXRoaW4gdGhlIHJhbmdlIHNwZWNpZmllZCBieSBvcGVyYW5kIDIuCist OzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMiBhcmUgb3JnYW5pemVkIGFzIGhpXzE6bG9fMTpoaV8y OmxvXzIuCistOzsKKy07OyBSZXR1cm4gaW4gdGFyZ2V0IHJlZ2lzdGVyIG9wZXJhbmQgMCBhIHZh bHVlIG9mIDEgaWYgKGxvXzEgPD0gdnYgYW5kCistOzsgdnYgPD0gaGlfMSkgb3IgaWYgKGxvXzIg PD0gdnYgYW5kIHZ2IDw9IGhpXzIpLiAgT3RoZXJ3aXNlLCBzZXQgcmVnaXN0ZXIKKy07OyBvcGVy YW5kIDAgdG8gMC4KKy07OworLTs7IFRob3VnaCB0aGUgaW5zdHJ1Y3Rpb25zIHRvIHdoaWNoIHRo aXMgZXhwYW5zaW9uIG1hcHMgb3BlcmF0ZSBvbgorLTs7IDY0LWJpdCByZWdpc3RlcnMsIHRoZSBj dXJyZW50IGltcGxlbWVudGF0aW9uIG9ubHkgb3BlcmF0ZXMgb24KKy07OyBTSS1tb2RlIG9wZXJh bmRzIGFzIHRoZSBoaWdoLW9yZGVyIGJpdHMgcHJvdmlkZSBubyBpbmZvcm1hdGlvbgorLTs7IHRo YXQgaXMgbm90IGFscmVhZHkgYXZhaWxhYmxlIGluIHRoZSBsb3ctb3JkZXIgYml0cy4gIFRvIGF2 b2lkIHRoZQorLTs7IGNvc3RzIG9mIGRhdGEgd2lkZW5pbmcgb3BlcmF0aW9ucywgZnV0dXJlIGVu aGFuY2VtZW50cyBtaWdodCBhbGxvdworLTs7IERJIG1vZGUgZm9yIG9wZXJhbmQgMCBhbmQvb3Ig bWlnaHQgYWxsb3cgb3BlcmFuZCAxIHRvIGJlIFFJIG1vZGUuCistKGRlZmluZV9leHBhbmQgImNt cHJiMiIKKy0gIFsoc2V0IChtYXRjaF9kdXAgMykKKy0JKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJh bmQ6U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpCistCQkgICAgKG1hdGNoX29wZXJhbmQ6U0kg MiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQorLQkgVU5TUEVDX0NNUFJCMikpCistICAgKHNldCAo bWF0Y2hfb3BlcmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9ciIpCistCShpZl90aGVuX2Vs c2U6U0kgKGx0IChtYXRjaF9kdXAgMykKKy0JCQkgICAgIChjb25zdF9pbnQgMCkpCistCQkJIChj b25zdF9pbnQgLTEpCistCQkJIChpZl90aGVuX2Vsc2UgKGd0IChtYXRjaF9kdXAgMykKKy0JCQkJ CSAgIChjb25zdF9pbnQgMCkpCistCQkJCSAgICAgICAoY29uc3RfaW50IDEpCistCQkJCSAgICAg ICAoY29uc3RfaW50IDApKSkpXQorLSAgIlRBUkdFVF9QOV9NSVNDIgorLXsKKy0gIG9wZXJhbmRz WzNdID0gZ2VuX3JlZ19ydHggKENDbW9kZSk7CistfSkKKy0KKy07OyBUaGUgYnl0ZXMgb2Ygb3Bl cmFuZCAxIGFyZSBvcmdhbml6ZWQgYXMgeHg6eHg6eHg6dnYsIHdoZXJlIHh4CistOzsgcmVwcmVz ZW50cyBhIGJ5dGUgd2hvc2UgdmFsdWUgaXMgaWdub3JlZCBpbiB0aGlzIGNvbnRleHQgYW5kCist OzsgdnYsIHRoZSBsZWFzdCBzaWduaWZpY2FudCBieXRlLCBob2xkcyB0aGUgYnl0ZSB2YWx1ZSB0 aGF0IGlzIHRvCistOzsgYmUgdGVzdGVkIGZvciBtZW1iZXJzaGlwIHdpdGhpbiB0aGUgcmFuZ2Vz IHNwZWNpZmllZCBieSBvcGVyYW5kIDIuCistOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMiBhcmUg b3JnYW5pemVkIGFzIGhpXzE6bG9fMTpoaV8yOmxvXzIuCistOzsKKy07OyBTZXQgYml0IDEgKHRo ZSBHVCBiaXQsIDB4NCkgb2YgQ1IgcmVnaXN0ZXIgb3BlcmFuZCAwIHRvIDEgaWYKKy07OyAobG9f MSA8PSB2diBhbmQgdnYgPD0gaGlfMSkgb3IgaWYgKGxvXzIgPD0gdnYgYW5kIHZ2IDw9IGhpXzIp LgorLTs7IE90aGVyd2lzZSwgc2V0IHRoZSBHVCBiaXQgdG8gMC4gIFRoZSBvdGhlciAzIGJpdHMg b2YgdGhlIHRhcmdldAorLTs7IENSIHJlZ2lzdGVyIGFyZSBhbGwgc2V0IHRvIDAuCistKGRlZmlu ZV9pbnNuICIqY21wcmIyX2ludGVybmFsIgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Q0MgMCAi Y2NfcmVnX29wZXJhbmQiICI9eSIpCistCSh1bnNwZWM6Q0MgWyhtYXRjaF9vcGVyYW5kOlNJIDEg ImdwY19yZWdfb3BlcmFuZCIgInIiKQorLQkJICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImdwY19y ZWdfb3BlcmFuZCIgInIiKV0KKy0JIFVOU1BFQ19DTVBSQjIpKV0KKy0gICJUQVJHRVRfUDlfTUlT QyIKKy0gICJjbXByYiAlMCwxLCUxLCUyIgorLSAgWyhzZXRfYXR0ciAidHlwZSIgImxvZ2ljYWwi KV0pCistCistOzsgVGVzdCBieXRlIG1lbWJlcnNoaXAgd2l0aGluIHNldCBvZiA4IGJ5dGVzLgor LTs7CistOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMSBhcmUgb3JnYW5pemVkIGFzIHh4Onh4Onh4 OnZ2LCB3aGVyZSB4eAorLTs7IHJlcHJlc2VudHMgYSBieXRlIHdob3NlIHZhbHVlIGlzIGlnbm9y ZWQgaW4gdGhpcyBjb250ZXh0IGFuZAorLTs7IHZ2LCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYnl0 ZSwgaG9sZHMgdGhlIGJ5dGUgdmFsdWUgdGhhdCBpcyB0bworLTs7IGJlIHRlc3RlZCBmb3IgbWVt YmVyc2hpcCB3aXRoaW4gdGhlIHNldCBzcGVjaWZpZWQgYnkgb3BlcmFuZCAyLgorLTs7IFRoZSBi eXRlcyBvZiBvcGVyYW5kIDIgYXJlIG9yZ2FuaXplZCBhcyBlMDplMTplMjplMzplNDplNTplNjpl Ny4KKy07OworLTs7IFJldHVybiBpbiB0YXJnZXQgcmVnaXN0ZXIgb3BlcmFuZCAwIGEgdmFsdWUg b2YgMSBpZiB2diBlcXVhbHMgb25lCistOzsgb2YgdGhlIHZhbHVlcyBlMCwgZTEsIGUyLCBlMywg ZTQsIGU1LCBlNiwgb3IgZTcuICBPdGhlcndpc2UsIHNldAorLTs7IHJlZ2lzdGVyIG9wZXJhbmQg MCB0byAwLiAgTm90ZSB0aGF0IHRoZSA4IGJ5dGUgdmFsdWVzIGhlbGQgd2l0aGluCistOzsgb3Bl cmFuZCAyIG5lZWQgbm90IGJlIHVuaXF1ZS4KKy07OworLTs7IFRob3VnaCB0aGUgaW5zdHJ1Y3Rp b25zIHRvIHdoaWNoIHRoaXMgZXhwYW5zaW9uIG1hcHMgb3BlcmF0ZSBvbgorLTs7IDY0LWJpdCBy ZWdpc3RlcnMsIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHJlcXVpcmVzIHRoYXQgb3BlcmFu ZHMKKy07OyAwIGFuZCAxIGhhdmUgbW9kZSBTSSBhcyB0aGUgaGlnaC1vcmRlciBiaXRzIHByb3Zp ZGUgbm8gaW5mb3JtYXRpb24KKy07OyB0aGF0IGlzIG5vdCBhbHJlYWR5IGF2YWlsYWJsZSBpbiB0 aGUgbG93LW9yZGVyIGJpdHMuICBUbyBhdm9pZCB0aGUKKy07OyBjb3N0cyBvZiBkYXRhIHdpZGVu aW5nIG9wZXJhdGlvbnMsIGZ1dHVyZSBlbmhhbmNlbWVudHMgbWlnaHQgYWxsb3cKKy07OyBESSBt b2RlIGZvciBvcGVyYW5kIDAgYW5kL29yIG1pZ2h0IGFsbG93IG9wZXJhbmQgMSB0byBiZSBRSSBt b2RlLgorLShkZWZpbmVfZXhwYW5kICJjbXBlcWIiCistICBbKHNldCAobWF0Y2hfZHVwIDMpCist CSh1bnNwZWM6Q0MgWyhtYXRjaF9vcGVyYW5kOlNJIDEgImdwY19yZWdfb3BlcmFuZCIgInIiKQor LQkJICAgIChtYXRjaF9vcGVyYW5kOkRJIDIgImdwY19yZWdfb3BlcmFuZCIgInIiKV0KKy0JIFVO U1BFQ19DTVBFUUIpKQorLSAgIChzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiZ3BjX3JlZ19vcGVy YW5kIiAiPXIiKQorLQkoaWZfdGhlbl9lbHNlOlNJIChsdCAobWF0Y2hfZHVwIDMpCistCQkJICAg ICAoY29uc3RfaW50IDApKQorLQkJCSAoY29uc3RfaW50IC0xKQorLQkJCSAoaWZfdGhlbl9lbHNl IChndCAobWF0Y2hfZHVwIDMpCistCQkJCQkgICAoY29uc3RfaW50IDApKQorLQkJCQkgICAgICAg KGNvbnN0X2ludCAxKQorLQkJCQkgICAgICAgKGNvbnN0X2ludCAwKSkpKV0KKy0gICJUQVJHRVRf UDlfTUlTQyAmJiBUQVJHRVRfNjRCSVQiCisteworLSAgb3BlcmFuZHNbM10gPSBnZW5fcmVnX3J0 eCAoQ0Ntb2RlKTsKKy19KQorLQorLTs7IFRoZSBieXRlcyBvZiBvcGVyYW5kIDEgYXJlIG9yZ2Fu aXplZCBhcyB4eDp4eDp4eDp2diwgd2hlcmUgeHgKKy07OyByZXByZXNlbnRzIGEgYnl0ZSB3aG9z ZSB2YWx1ZSBpcyBpZ25vcmVkIGluIHRoaXMgY29udGV4dCBhbmQKKy07OyB2diwgdGhlIGxlYXN0 IHNpZ25pZmljYW50IGJ5dGUsIGhvbGRzIHRoZSBieXRlIHZhbHVlIHRoYXQgaXMgdG8KKy07OyBi ZSB0ZXN0ZWQgZm9yIG1lbWJlcnNoaXAgd2l0aGluIHRoZSBzZXQgc3BlY2lmaWVkIGJ5IG9wZXJh bmQgMi4KKy07OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAyIGFyZSBvcmdhbml6ZWQgYXMgZTA6ZTE6 ZTI6ZTM6ZTQ6ZTU6ZTY6ZTcuCistOzsKKy07OyBTZXQgYml0IDEgKHRoZSBHVCBiaXQsIDB4NCkg b2YgQ1IgcmVnaXN0ZXIgb3BlcmFuZCAwIHRvIDEgaWYgdnYKKy07OyBlcXVhbHMgb25lIG9mIHRo ZSB2YWx1ZXMgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIG9yIGU3LiAgT3RoZXJ3aXNlLAor LTs7IHNldCB0aGUgR1QgYml0IHRvIHplcm8uICBUaGUgb3RoZXIgMyBiaXRzIG9mIHRoZSB0YXJn ZXQgQ1IgcmVnaXN0ZXIKKy07OyBhcmUgYWxsIHNldCB0byAwLgorLShkZWZpbmVfaW5zbiAiKmNt cGVxYl9pbnRlcm5hbCIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkNDIDAgImNjX3JlZ19vcGVy YW5kIiAiPXkiKQorLQkgKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ3BjX3JlZ19v cGVyYW5kIiAiciIpCistCQkgICAgIChtYXRjaF9vcGVyYW5kOkRJIDIgImdwY19yZWdfb3BlcmFu ZCIgInIiKV0KKy0JICBVTlNQRUNfQ01QRVFCKSldCistICAiVEFSR0VUX1A5X01JU0MgJiYgVEFS R0VUXzY0QklUIgorLSAgImNtcGVxYiAlMCwlMSwlMiIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJs b2dpY2FsIildKQorLQorIChkZWZpbmVfZXhwYW5kICJiY2Q8YmNkX2FkZF9zdWI+Xzxjb2RlPiIK KyAgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpDQ0ZQIENSNl9SRUdOTykKKyAJCSAgIChjb21wYXJl OkNDRlAKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAubWQKKysrKyBnY2MvY29uZmlnL3Jz NjAwMC9yczYwMDAubWQKK0BAIC0xMzcsNiArMTM3LDkgQEAKKyAgICBVTlNQRUNfTFNRCisgICAg VU5TUEVDX0ZVU0lPTl9HUFIKKyAgICBVTlNQRUNfU1RBQ0tfQ0hFQ0sKKysgICBVTlNQRUNfQ01Q UkIKKysgICBVTlNQRUNfQ01QUkIyCisrICAgVU5TUEVDX0NNUEVRQgorICAgIFVOU1BFQ19BRERf Uk9VTkRfVE9fT0RECisgICAgVU5TUEVDX1NVQl9ST1VORF9UT19PREQKKyAgICBVTlNQRUNfTVVM X1JPVU5EX1RPX09ERAorQEAgLTE2NCw2ICsxNjcsOSBAQAorICAgIFVOU1BFQ1ZfRUhfUlIJCTsg ZWhfcmVnX3Jlc3RvcmUKKyAgICBVTlNQRUNWX0lTWU5DCQk7IGlzeW5jIGluc3RydWN0aW9uCisg ICAgVU5TUEVDVl9NRlRCCQkJOyBtb3ZlIGZyb20gdGltZSBiYXNlCisrICAgVU5TUEVDVl9EQVJO CQkJOyBkYXJuIDEgKGRlbGl2ZXIgYSByYW5kb20gbnVtYmVyKQorKyAgIFVOU1BFQ1ZfREFSTl8z MgkJOyBkYXJuIDIKKysgICBVTlNQRUNWX0RBUk5fUkFXCQk7IGRhcm4gMAorICAgIFVOU1BFQ1Zf TkxHUgkJCTsgbm9uLWxvY2FsIGdvdG8gcmVjZWl2ZXIKKyAgICBVTlNQRUNWX01GRlMJCQk7IE1v dmUgZnJvbSBGUFNDUgorICAgIFVOU1BFQ1ZfTUZGU0wJCTsgTW92ZSBmcm9tIEZQU0NSIGxpZ2h0 IGluc3RydWN0aW9uIHZlcnNpb24KK0BAIC0xMzg1Myw2ICsxMzg1OSwyMjQgQEAKKyAgIFsoc2V0 X2F0dHIgInR5cGUiICJ2ZWNtb3ZlIikKKyAgICAoc2V0X2F0dHIgInNpemUiICIxMjgiKV0pCisg CisrOzsgTWlzY2VsbGFuZW91cyBJU0EgMy4wIChwb3dlcjkpIGluc3RydWN0aW9ucworKworKyhk ZWZpbmVfaW5zbiAiZGFybl8zMiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9ciIpCisrICAgICAgICAodW5zcGVjX3ZvbGF0aWxlOlNJIFsoY29uc3Rf aW50IDApXSBVTlNQRUNWX0RBUk5fMzIpKV0KKysgICJUQVJHRVRfUDlfTUlTQyIKKysgICJkYXJu ICUwLDAiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiaW50ZWdlciIpXSkKKysKKysoZGVmaW5lX2lu c24gImRhcm5fcmF3IgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj1yIikKKysgICAgICAgICh1bnNwZWNfdm9sYXRpbGU6REkgWyhjb25zdF9pbnQgMCld IFVOU1BFQ1ZfREFSTl9SQVcpKV0KKysgICJUQVJHRVRfUDlfTUlTQyAmJiBUQVJHRVRfNjRCSVQi CisrICAiZGFybiAlMCwyIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgImludGVnZXIiKV0pCisrCisr KGRlZmluZV9pbnNuICJkYXJuIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj1yIikKKysgICAgICAgICh1bnNwZWNfdm9sYXRpbGU6REkgWyhjb25zdF9p bnQgMCldIFVOU1BFQ1ZfREFSTikpXQorKyAgIlRBUkdFVF9QOV9NSVNDICYmIFRBUkdFVF82NEJJ VCIKKysgICJkYXJuICUwLDEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiaW50ZWdlciIpXSkKKysK Kys7OyBUZXN0IGJ5dGUgd2l0aGluIHJhbmdlLgorKzs7CisrOzsgVGhlIGJ5dGVzIG9mIG9wZXJh bmQgMSBhcmUgb3JnYW5pemVkIGFzIHh4Onh4Onh4OnZ2LCB3aGVyZSB4eAorKzs7IHJlcHJlc2Vu dHMgYSBieXRlIHdob3NlIHZhbHVlIGlzIGlnbm9yZWQgaW4gdGhpcyBjb250ZXh0IGFuZAorKzs7 IHZ2LCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZSwgaG9sZHMgdGhlIGJ5dGUgdmFsdWUgdGhh dCBpcyB0bworKzs7IGJlIHRlc3RlZCBmb3IgbWVtYmVyc2hpcCB3aXRoaW4gdGhlIHJhbmdlIHNw ZWNpZmllZCBieSBvcGVyYW5kIDIuCisrOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMiBhcmUgb3Jn YW5pemVkIGFzIHh4Onh4OmhpOmxvLgorKzs7CisrOzsgUmV0dXJuIGluIHRhcmdldCByZWdpc3Rl ciBvcGVyYW5kIDAgYSB2YWx1ZSBvZiAxIGlmIGxvIDw9IHZ2IGFuZAorKzs7IHZ2IDw9IGhpLiAg T3RoZXJ3aXNlLCBzZXQgcmVnaXN0ZXIgb3BlcmFuZCAwIHRvIDAuCisrOzsKKys7OyBUaG91Z2gg dGhlIGluc3RydWN0aW9ucyB0byB3aGljaCB0aGlzIGV4cGFuc2lvbiBtYXBzIG9wZXJhdGUgb24K Kys7OyA2NC1iaXQgcmVnaXN0ZXJzLCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvbmx5IG9w ZXJhdGVzIG9uCisrOzsgU0ktbW9kZSBvcGVyYW5kcyBhcyB0aGUgaGlnaC1vcmRlciBiaXRzIHBy b3ZpZGUgbm8gaW5mb3JtYXRpb24KKys7OyB0aGF0IGlzIG5vdCBhbHJlYWR5IGF2YWlsYWJsZSBp biB0aGUgbG93LW9yZGVyIGJpdHMuICBUbyBhdm9pZCB0aGUKKys7OyBjb3N0cyBvZiBkYXRhIHdp ZGVuaW5nIG9wZXJhdGlvbnMsIGZ1dHVyZSBlbmhhbmNlbWVudHMgbWlnaHQgYWxsb3cKKys7OyBE SSBtb2RlIGZvciBvcGVyYW5kIDAgYW5kL29yIG1pZ2h0IGFsbG93IG9wZXJhbmQgMSB0byBiZSBR SSBtb2RlLgorKyhkZWZpbmVfZXhwYW5kICJjbXByYiIKKysgIFsoc2V0IChtYXRjaF9kdXAgMykK KysJKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIp CisrCQkgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQorKwkg VU5TUEVDX0NNUFJCKSkKKysgICAoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgImdwY19yZWdfb3Bl cmFuZCIgIj1yIikKKysJKGlmX3RoZW5fZWxzZTpTSSAobHQgKG1hdGNoX2R1cCAzKQorKwkJCSAg ICAgKGNvbnN0X2ludCAwKSkKKysJCQkgKGNvbnN0X2ludCAtMSkKKysJCQkgKGlmX3RoZW5fZWxz ZSAoZ3QgKG1hdGNoX2R1cCAzKQorKwkJCQkJICAgKGNvbnN0X2ludCAwKSkKKysJCQkJICAgICAg IChjb25zdF9pbnQgMSkKKysJCQkJICAgICAgIChjb25zdF9pbnQgMCkpKSldCisrICAiVEFSR0VU X1A5X01JU0MiCisreworKyAgb3BlcmFuZHNbM10gPSBnZW5fcmVnX3J0eCAoQ0Ntb2RlKTsKKyt9 KQorKworKzs7IFRoZSBieXRlcyBvZiBvcGVyYW5kIDEgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDp4 eDp2diwgd2hlcmUgeHgKKys7OyByZXByZXNlbnRzIGEgYnl0ZSB3aG9zZSB2YWx1ZSBpcyBpZ25v cmVkIGluIHRoaXMgY29udGV4dCBhbmQKKys7OyB2diwgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJ5 dGUsIGhvbGRzIHRoZSBieXRlIHZhbHVlIHRoYXQgaXMgdG8KKys7OyBiZSB0ZXN0ZWQgZm9yIG1l bWJlcnNoaXAgd2l0aGluIHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgb3BlcmFuZCAyLgorKzs7IFRo ZSBieXRlcyBvZiBvcGVyYW5kIDIgYXJlIG9yZ2FuaXplZCBhcyB4eDp4eDpoaTpsby4KKys7Owor Kzs7IFNldCBiaXQgMSAodGhlIEdUIGJpdCwgMHg0KSBvZiBDUiByZWdpc3RlciBvcGVyYW5kIDAg dG8gMSBpZgorKzs7IGxvIDw9IHZ2IGFuZCB2diA8PSBoaS4gIE90aGVyd2lzZSwgc2V0IHRoZSBH VCBiaXQgdG8gMC4gIFRoZSBvdGhlcgorKzs7IDMgYml0cyBvZiB0aGUgdGFyZ2V0IENSIHJlZ2lz dGVyIGFyZSBhbGwgc2V0IHRvIDAuCisrKGRlZmluZV9pbnNuICIqY21wcmJfaW50ZXJuYWwiCisr ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpDQyAwICJjY19yZWdfb3BlcmFuZCIgIj15IikKKysJKHVu c3BlYzpDQyBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpCisrCQkg ICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQorKwkgVU5TUEVD X0NNUFJCKSldCisrICAiVEFSR0VUX1A5X01JU0MiCisrICAiY21wcmIgJTAsMCwlMSwlMiIKKysg IFsoc2V0X2F0dHIgInR5cGUiICJsb2dpY2FsIildKQorKworKzs7IFNldCBvcGVyYW5kIDAgcmVn aXN0ZXIgdG8gLTEgaWYgdGhlIExUIGJpdCAoMHg4KSBvZiBjb25kaXRpb24KKys7OyByZWdpc3Rl ciBvcGVyYW5kIDEgaXMgb24uICBPdGhlcndpc2UsIHNldCBvcGVyYW5kIDAgcmVnaXN0ZXIgdG8g MQorKzs7IGlmIHRoZSBHVCBiaXQgKDB4NCkgb2YgY29uZGl0aW9uIHJlZ2lzdGVyIG9wZXJhbmQg MSBpcyBvbi4KKys7OyBPdGhlcndpc2UsIHNldCBvcGVyYW5kIDAgdG8gMC4gIE5vdGUgdGhhdCB0 aGUgcmVzdWx0IHN0b3JlZCBpbnRvCisrOzsgcmVnaXN0ZXIgb3BlcmFuZCAwIGlzIG5vbi16ZXJv IGlmZiBlaXRoZXIgdGhlIExUIG9yIEdUIGJpdHMgYXJlIG9uCisrOzsgd2l0aGluIGNvbmRpdGlv biByZWdpc3RlciBvcGVyYW5kIDEuCisrKGRlZmluZV9pbnNuICJzZXRiX3NpZ25lZCIKKysgICBb KHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9ciIpCisrCSAoaWZf dGhlbl9lbHNlOlNJIChsdCAobWF0Y2hfb3BlcmFuZDpDQyAxICJjY19yZWdfb3BlcmFuZCIgInki KQorKwkJCSAgICAgIChjb25zdF9pbnQgMCkpCisrCQkJICAoY29uc3RfaW50IC0xKQorKwkJCSAg KGlmX3RoZW5fZWxzZSAoZ3QgKG1hdGNoX2R1cCAxKQorKwkJCQkJICAgIChjb25zdF9pbnQgMCkp CisrCQkJCQkoY29uc3RfaW50IDEpCisrCQkJCQkoY29uc3RfaW50IDApKSkpXQorKyAgIlRBUkdF VF9QOV9NSVNDIgorKyAgInNldGIgJTAsJTEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAibG9naWNh bCIpXSkKKysKKysoZGVmaW5lX2luc24gInNldGJfdW5zaWduZWQiCisrICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6U0kgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPXIiKQorKwkgKGlmX3RoZW5fZWxzZTpT SSAobHR1IChtYXRjaF9vcGVyYW5kOkNDVU5TIDEgImNjX3JlZ19vcGVyYW5kIiAieSIpCisrCQkJ ICAgICAgKGNvbnN0X2ludCAwKSkKKysJCQkgIChjb25zdF9pbnQgLTEpCisrCQkJICAoaWZfdGhl bl9lbHNlIChndHUgKG1hdGNoX2R1cCAxKQorKwkJCQkJICAgIChjb25zdF9pbnQgMCkpCisrCQkJ CQkoY29uc3RfaW50IDEpCisrCQkJCQkoY29uc3RfaW50IDApKSkpXQorKyAgIlRBUkdFVF9QOV9N SVNDIgorKyAgInNldGIgJTAsJTEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAibG9naWNhbCIpXSkK KysKKys7OyBUZXN0IGJ5dGUgd2l0aGluIHR3byByYW5nZXMuCisrOzsKKys7OyBUaGUgYnl0ZXMg b2Ygb3BlcmFuZCAxIGFyZSBvcmdhbml6ZWQgYXMgeHg6eHg6eHg6dnYsIHdoZXJlIHh4CisrOzsg cmVwcmVzZW50cyBhIGJ5dGUgd2hvc2UgdmFsdWUgaXMgaWdub3JlZCBpbiB0aGlzIGNvbnRleHQg YW5kCisrOzsgdnYsIHRoZSBsZWFzdCBzaWduaWZpY2FudCBieXRlLCBob2xkcyB0aGUgYnl0ZSB2 YWx1ZSB0aGF0IGlzIHRvCisrOzsgYmUgdGVzdGVkIGZvciBtZW1iZXJzaGlwIHdpdGhpbiB0aGUg cmFuZ2Ugc3BlY2lmaWVkIGJ5IG9wZXJhbmQgMi4KKys7OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAy IGFyZSBvcmdhbml6ZWQgYXMgaGlfMTpsb18xOmhpXzI6bG9fMi4KKys7OworKzs7IFJldHVybiBp biB0YXJnZXQgcmVnaXN0ZXIgb3BlcmFuZCAwIGEgdmFsdWUgb2YgMSBpZiAobG9fMSA8PSB2diBh bmQKKys7OyB2diA8PSBoaV8xKSBvciBpZiAobG9fMiA8PSB2diBhbmQgdnYgPD0gaGlfMikuICBP dGhlcndpc2UsIHNldCByZWdpc3RlcgorKzs7IG9wZXJhbmQgMCB0byAwLgorKzs7CisrOzsgVGhv dWdoIHRoZSBpbnN0cnVjdGlvbnMgdG8gd2hpY2ggdGhpcyBleHBhbnNpb24gbWFwcyBvcGVyYXRl IG9uCisrOzsgNjQtYml0IHJlZ2lzdGVycywgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb25s eSBvcGVyYXRlcyBvbgorKzs7IFNJLW1vZGUgb3BlcmFuZHMgYXMgdGhlIGhpZ2gtb3JkZXIgYml0 cyBwcm92aWRlIG5vIGluZm9ybWF0aW9uCisrOzsgdGhhdCBpcyBub3QgYWxyZWFkeSBhdmFpbGFi bGUgaW4gdGhlIGxvdy1vcmRlciBiaXRzLiAgVG8gYXZvaWQgdGhlCisrOzsgY29zdHMgb2YgZGF0 YSB3aWRlbmluZyBvcGVyYXRpb25zLCBmdXR1cmUgZW5oYW5jZW1lbnRzIG1pZ2h0IGFsbG93Cisr OzsgREkgbW9kZSBmb3Igb3BlcmFuZCAwIGFuZC9vciBtaWdodCBhbGxvdyBvcGVyYW5kIDEgdG8g YmUgUUkgbW9kZS4KKysoZGVmaW5lX2V4cGFuZCAiY21wcmIyIgorKyAgWyhzZXQgKG1hdGNoX2R1 cCAzKQorKwkodW5zcGVjOkNDIFsobWF0Y2hfb3BlcmFuZDpTSSAxICJncGNfcmVnX29wZXJhbmQi ICJyIikKKysJCSAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJncGNfcmVnX29wZXJhbmQiICJyIild CisrCSBVTlNQRUNfQ01QUkIyKSkKKysgICAoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgImdwY19y ZWdfb3BlcmFuZCIgIj1yIikKKysJKGlmX3RoZW5fZWxzZTpTSSAobHQgKG1hdGNoX2R1cCAzKQor KwkJCSAgICAgKGNvbnN0X2ludCAwKSkKKysJCQkgKGNvbnN0X2ludCAtMSkKKysJCQkgKGlmX3Ro ZW5fZWxzZSAoZ3QgKG1hdGNoX2R1cCAzKQorKwkJCQkJICAgKGNvbnN0X2ludCAwKSkKKysJCQkJ ICAgICAgIChjb25zdF9pbnQgMSkKKysJCQkJICAgICAgIChjb25zdF9pbnQgMCkpKSldCisrICAi VEFSR0VUX1A5X01JU0MiCisreworKyAgb3BlcmFuZHNbM10gPSBnZW5fcmVnX3J0eCAoQ0Ntb2Rl KTsKKyt9KQorKworKzs7IFRoZSBieXRlcyBvZiBvcGVyYW5kIDEgYXJlIG9yZ2FuaXplZCBhcyB4 eDp4eDp4eDp2diwgd2hlcmUgeHgKKys7OyByZXByZXNlbnRzIGEgYnl0ZSB3aG9zZSB2YWx1ZSBp cyBpZ25vcmVkIGluIHRoaXMgY29udGV4dCBhbmQKKys7OyB2diwgdGhlIGxlYXN0IHNpZ25pZmlj YW50IGJ5dGUsIGhvbGRzIHRoZSBieXRlIHZhbHVlIHRoYXQgaXMgdG8KKys7OyBiZSB0ZXN0ZWQg Zm9yIG1lbWJlcnNoaXAgd2l0aGluIHRoZSByYW5nZXMgc3BlY2lmaWVkIGJ5IG9wZXJhbmQgMi4K Kys7OyBUaGUgYnl0ZXMgb2Ygb3BlcmFuZCAyIGFyZSBvcmdhbml6ZWQgYXMgaGlfMTpsb18xOmhp XzI6bG9fMi4KKys7OworKzs7IFNldCBiaXQgMSAodGhlIEdUIGJpdCwgMHg0KSBvZiBDUiByZWdp c3RlciBvcGVyYW5kIDAgdG8gMSBpZgorKzs7IChsb18xIDw9IHZ2IGFuZCB2diA8PSBoaV8xKSBv ciBpZiAobG9fMiA8PSB2diBhbmQgdnYgPD0gaGlfMikuCisrOzsgT3RoZXJ3aXNlLCBzZXQgdGhl IEdUIGJpdCB0byAwLiAgVGhlIG90aGVyIDMgYml0cyBvZiB0aGUgdGFyZ2V0CisrOzsgQ1IgcmVn aXN0ZXIgYXJlIGFsbCBzZXQgdG8gMC4KKysoZGVmaW5lX2luc24gIipjbXByYjJfaW50ZXJuYWwi CisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpDQyAwICJjY19yZWdfb3BlcmFuZCIgIj15IikKKysJ KHVuc3BlYzpDQyBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpCisr CQkgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQorKwkgVU5T UEVDX0NNUFJCMikpXQorKyAgIlRBUkdFVF9QOV9NSVNDIgorKyAgImNtcHJiICUwLDEsJTEsJTIi CisrICBbKHNldF9hdHRyICJ0eXBlIiAibG9naWNhbCIpXSkKKysKKys7OyBUZXN0IGJ5dGUgbWVt YmVyc2hpcCB3aXRoaW4gc2V0IG9mIDggYnl0ZXMuCisrOzsKKys7OyBUaGUgYnl0ZXMgb2Ygb3Bl cmFuZCAxIGFyZSBvcmdhbml6ZWQgYXMgeHg6eHg6eHg6dnYsIHdoZXJlIHh4CisrOzsgcmVwcmVz ZW50cyBhIGJ5dGUgd2hvc2UgdmFsdWUgaXMgaWdub3JlZCBpbiB0aGlzIGNvbnRleHQgYW5kCisr OzsgdnYsIHRoZSBsZWFzdCBzaWduaWZpY2FudCBieXRlLCBob2xkcyB0aGUgYnl0ZSB2YWx1ZSB0 aGF0IGlzIHRvCisrOzsgYmUgdGVzdGVkIGZvciBtZW1iZXJzaGlwIHdpdGhpbiB0aGUgc2V0IHNw ZWNpZmllZCBieSBvcGVyYW5kIDIuCisrOzsgVGhlIGJ5dGVzIG9mIG9wZXJhbmQgMiBhcmUgb3Jn YW5pemVkIGFzIGUwOmUxOmUyOmUzOmU0OmU1OmU2OmU3LgorKzs7CisrOzsgUmV0dXJuIGluIHRh cmdldCByZWdpc3RlciBvcGVyYW5kIDAgYSB2YWx1ZSBvZiAxIGlmIHZ2IGVxdWFscyBvbmUKKys7 OyBvZiB0aGUgdmFsdWVzIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBvciBlNy4gIE90aGVy d2lzZSwgc2V0CisrOzsgcmVnaXN0ZXIgb3BlcmFuZCAwIHRvIDAuICBOb3RlIHRoYXQgdGhlIDgg Ynl0ZSB2YWx1ZXMgaGVsZCB3aXRoaW4KKys7OyBvcGVyYW5kIDIgbmVlZCBub3QgYmUgdW5pcXVl LgorKzs7CisrOzsgVGhvdWdoIHRoZSBpbnN0cnVjdGlvbnMgdG8gd2hpY2ggdGhpcyBleHBhbnNp b24gbWFwcyBvcGVyYXRlIG9uCisrOzsgNjQtYml0IHJlZ2lzdGVycywgdGhlIGN1cnJlbnQgaW1w bGVtZW50YXRpb24gcmVxdWlyZXMgdGhhdCBvcGVyYW5kcworKzs7IDAgYW5kIDEgaGF2ZSBtb2Rl IFNJIGFzIHRoZSBoaWdoLW9yZGVyIGJpdHMgcHJvdmlkZSBubyBpbmZvcm1hdGlvbgorKzs7IHRo YXQgaXMgbm90IGFscmVhZHkgYXZhaWxhYmxlIGluIHRoZSBsb3ctb3JkZXIgYml0cy4gIFRvIGF2 b2lkIHRoZQorKzs7IGNvc3RzIG9mIGRhdGEgd2lkZW5pbmcgb3BlcmF0aW9ucywgZnV0dXJlIGVu aGFuY2VtZW50cyBtaWdodCBhbGxvdworKzs7IERJIG1vZGUgZm9yIG9wZXJhbmQgMCBhbmQvb3Ig bWlnaHQgYWxsb3cgb3BlcmFuZCAxIHRvIGJlIFFJIG1vZGUuCisrKGRlZmluZV9leHBhbmQgImNt cGVxYiIKKysgIFsoc2V0IChtYXRjaF9kdXAgMykKKysJKHVuc3BlYzpDQyBbKG1hdGNoX29wZXJh bmQ6U0kgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpCisrCQkgICAgKG1hdGNoX29wZXJhbmQ6REkg MiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQorKwkgVU5TUEVDX0NNUEVRQikpCisrICAgKHNldCAo bWF0Y2hfb3BlcmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9ciIpCisrCShpZl90aGVuX2Vs c2U6U0kgKGx0IChtYXRjaF9kdXAgMykKKysJCQkgICAgIChjb25zdF9pbnQgMCkpCisrCQkJIChj b25zdF9pbnQgLTEpCisrCQkJIChpZl90aGVuX2Vsc2UgKGd0IChtYXRjaF9kdXAgMykKKysJCQkJ CSAgIChjb25zdF9pbnQgMCkpCisrCQkJCSAgICAgICAoY29uc3RfaW50IDEpCisrCQkJCSAgICAg ICAoY29uc3RfaW50IDApKSkpXQorKyAgIlRBUkdFVF9QOV9NSVNDICYmIFRBUkdFVF82NEJJVCIK Kyt7CisrICBvcGVyYW5kc1szXSA9IGdlbl9yZWdfcnR4IChDQ21vZGUpOworK30pCisrCisrOzsg VGhlIGJ5dGVzIG9mIG9wZXJhbmQgMSBhcmUgb3JnYW5pemVkIGFzIHh4Onh4Onh4OnZ2LCB3aGVy ZSB4eAorKzs7IHJlcHJlc2VudHMgYSBieXRlIHdob3NlIHZhbHVlIGlzIGlnbm9yZWQgaW4gdGhp cyBjb250ZXh0IGFuZAorKzs7IHZ2LCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZSwgaG9sZHMg dGhlIGJ5dGUgdmFsdWUgdGhhdCBpcyB0bworKzs7IGJlIHRlc3RlZCBmb3IgbWVtYmVyc2hpcCB3 aXRoaW4gdGhlIHNldCBzcGVjaWZpZWQgYnkgb3BlcmFuZCAyLgorKzs7IFRoZSBieXRlcyBvZiBv cGVyYW5kIDIgYXJlIG9yZ2FuaXplZCBhcyBlMDplMTplMjplMzplNDplNTplNjplNy4KKys7Owor Kzs7IFNldCBiaXQgMSAodGhlIEdUIGJpdCwgMHg0KSBvZiBDUiByZWdpc3RlciBvcGVyYW5kIDAg dG8gMSBpZiB2dgorKzs7IGVxdWFscyBvbmUgb2YgdGhlIHZhbHVlcyBlMCwgZTEsIGUyLCBlMywg ZTQsIGU1LCBlNiwgb3IgZTcuICBPdGhlcndpc2UsCisrOzsgc2V0IHRoZSBHVCBiaXQgdG8gemVy by4gIFRoZSBvdGhlciAzIGJpdHMgb2YgdGhlIHRhcmdldCBDUiByZWdpc3RlcgorKzs7IGFyZSBh bGwgc2V0IHRvIDAuCisrKGRlZmluZV9pbnNuICIqY21wZXFiX2ludGVybmFsIgorKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6Q0MgMCAiY2NfcmVnX29wZXJhbmQiICI9eSIpCisrCSAodW5zcGVjOkND IFsobWF0Y2hfb3BlcmFuZDpTSSAxICJncGNfcmVnX29wZXJhbmQiICJyIikKKysJCSAgICAgKG1h dGNoX29wZXJhbmQ6REkgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiciIpXQorKwkgIFVOU1BFQ19DTVBF UUIpKV0KKysgICJUQVJHRVRfUDlfTUlTQyAmJiBUQVJHRVRfNjRCSVQiCisrICAiY21wZXFiICUw LCUxLCUyIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgImxvZ2ljYWwiKV0pCisgCisgKGRlZmluZV9p bnNuICIqbmFiczxtb2RlPjJfaHciCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpJRUVFMTI4IDAg ImFsdGl2ZWNfcmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2Nj L3BhdGNoZXMvbGliZmZpX2dudWxpbnV4LnBhdGNoIGIvc3JjcGtncy9nY2MvcGF0Y2hlcy9saWJm ZmlfZ251bGludXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjQxM2I0YWVmNWFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nY2MvcGF0Y2hlcy9saWJm ZmlfZ251bGludXgucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGxpYmZmaS9zcmMvY2xvc3Vy ZXMuYy5vcmlnCisrKysgbGliZmZpL3NyYy9jbG9zdXJlcy5jCitAQCAtMzQsNyArMzQsNyBAQAor ICNpbmNsdWRlIDxmZmlfY29tbW9uLmg+CisKKyAjaWYgIUZGSV9NTUFQX0VYRUNfV1JJVCAmJiAh RkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRQorLSMgaWYgX19nbnVfbGludXhfXyAmJiAhZGVmaW5l ZChfX0FORFJPSURfXykKKysjIGlmIF9fbGludXhfXyAmJiAhZGVmaW5lZChfX0FORFJPSURfXykK KyAvKiBUaGlzIG1hY3JvIGluZGljYXRlcyBpdCBtYXkgYmUgZm9yYmlkZGVuIHRvIG1hcCBhbm9u eW1vdXMgbWVtb3J5CisgICAgd2l0aCBib3RoIHdyaXRlIGFuZCBleGVjdXRlIHBlcm1pc3Npb24u ICBDb2RlIGNvbXBpbGVkIHdoZW4gdGhpcworICAgIG9wdGlvbiBpcyBkZWZpbmVkIHdpbGwgYXR0 ZW1wdCB0byBtYXAgc3VjaCBwYWdlcyBvbmNlLCBidXQgaWYgaXQKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ2NjL3BhdGNoZXMvbm9uLW51bGxuZXNzLnBhdGNoIGIvc3JjcGtncy9nY2MvcGF0Y2hlcy9u b24tbnVsbG5lc3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlMGU0NDI1 Y2U0Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2djYy9wYXRjaGVzL25vbi1udWxsbmVzcy5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLVNvdXJjZTogMjAxOS0wNi0yMSAg SmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KLVVwc3RyZWFtOiB5ZXMKLVJlYXNvbjogUFIgdHJl ZS1vcHRpbWl6YXRpb24vOTA5NDkKLSogdHJlZS1zc2EtY29weS5jIChmaW5pX2NvcHlfcHJvcCk6 IFVzZSByZXNldF9mbG93X3NlbnNpdGl2ZV9pbmZvLgotKiB0cmVlLXNzYW5hbWVzLmMgKHJlc2V0 X2Zsb3dfc2Vuc2l0aXZlX2luZm8pOiBSZXNldCBub24tbnVsbCBzdGF0ZS4KLQotLS0tIGdjYy90 cmVlLXNzYS1jb3B5LmMJMjAxOS0wMS0wMSAxMzozMTo1NS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBn Y2MvdHJlZS1zc2EtY29weS5jCTIwMTktMDYtMjYgMTg6NTA6MDEuMDMwMzk1NDcxICswMjAwCi1A QCAtNTQ1LDEzICs1NDUsMTIgQEAKLSAJICAgICAgZHVwbGljYXRlX3NzYV9uYW1lX3B0cl9pbmZv IChjb3B5X29mW2ldLnZhbHVlLAotIAkJCQkJICAgU1NBX05BTUVfUFRSX0lORk8gKHZhcikpOwot IAkgICAgICAvKiBQb2ludHMtdG8gaW5mb3JtYXRpb24gaXMgY2ZnIGluc2Vuc2l0aXZlLAotLQkJ IGJ1dCBhbGlnbm1lbnQgaW5mbyBtaWdodCBiZSBjZmcgc2Vuc2l0aXZlLCBpZiBpdAotLQkJIGUu Zy4gaXMgZGVyaXZlZCBmcm9tIFZSUCBkZXJpdmVkIG5vbi16ZXJvIGJpdHMuCi0tCQkgU28sIGRv IG5vdCBjb3B5IGFsaWdubWVudCBpbmZvIGlmIHRoZSB0d28gU1NBX05BTUVzCi0tCQkgYXJlbid0 IGRlZmluZWQgaW4gdGhlIHNhbWUgYmFzaWMgYmxvY2suICAqLwotKwkJIGJ1dCBbRV1WUlAgbWln aHQgcmVjb3JkIGNvbnRleHQgc2Vuc2l0aXZlIGFsaWdubWVudAotKwkJIGluZm8sIG5vbi1udWxs bmVzcywgZXRjLiAgU28gcmVzZXQgY29udGV4dCBzZW5zaXRpdmUKLSsJCSBpbmZvIGlmIHRoZSB0 d28gU1NBX05BTUVzIGFyZW4ndCBkZWZpbmVkIGluIHRoZSBzYW1lCi0rCQkgYmFzaWMgYmxvY2su ICAqLwotIAkgICAgICBpZiAodmFyX2JiICE9IGNvcHlfb2ZfYmIpCi0tCQltYXJrX3B0cl9pbmZv X2FsaWdubWVudF91bmtub3duCi0tCQkJCShTU0FfTkFNRV9QVFJfSU5GTyAoY29weV9vZltpXS52 YWx1ZSkpOwotKwkJcmVzZXRfZmxvd19zZW5zaXRpdmVfaW5mbyAoY29weV9vZltpXS52YWx1ZSk7 Ci0gCSAgICB9Ci0gCSAgZWxzZSBpZiAoIVBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKHZhcikp Ci0gCQkgICAmJiBTU0FfTkFNRV9SQU5HRV9JTkZPICh2YXIpCi0tLS0gZ2NjL3RyZWUtc3NhbmFt ZXMuYwkyMDE5LTAzLTE4IDE0OjU5OjExLjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy90cmVlLXNz YW5hbWVzLmMJMjAxOS0wNi0yNiAxODo1MDoxMS4yODIzOTQ5MDYgKzAyMDAKLUBAIC04MjAsNyAr ODIwLDEyIEBACi0gICAgIHsKLSAgICAgICAvKiBwb2ludHMtdG8gaW5mbyBpcyBub3QgZmxvdy1z ZW5zaXRpdmUuICAqLwotICAgICAgIGlmIChTU0FfTkFNRV9QVFJfSU5GTyAobmFtZSkpCi0tCW1h cmtfcHRyX2luZm9fYWxpZ25tZW50X3Vua25vd24gKFNTQV9OQU1FX1BUUl9JTkZPIChuYW1lKSk7 Ci0rCXsKLSsJICAvKiBbRV1WUlAgY2FuIGRlcml2ZSBjb250ZXh0IHNlbnNpdGl2ZSBhbGlnbm1l bnQgaW5mbyBhbmQKLSsJICAgICBub24tbnVsbG5lc3MgcHJvcGVydGllcy4gIFdlIG11c3QgcmVz ZXQgYm90aC4gICovCi0rCSAgbWFya19wdHJfaW5mb19hbGlnbm1lbnRfdW5rbm93biAoU1NBX05B TUVfUFRSX0lORk8gKG5hbWUpKTsKLSsJICBTU0FfTkFNRV9QVFJfSU5GTyAobmFtZSktPnB0Lm51 bGwgPSAxOwotKwl9Ci0gICAgIH0KLSAgIGVsc2UKLSAgICAgU1NBX05BTUVfUkFOR0VfSU5GTyAo bmFtZSkgPSBOVUxMOwotLS0tIC9kZXYvbnVsbAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmMtdG9y dHVyZS9wcjkwOTQ5LmMJMjAxOS0wNi0yNiAxODo1MzoxNi44NzAzODQ2NzkgKzAyMDAKLUBAIC0w LDAgKzEsNDIgQEAKLSt2b2lkIF9fYXR0cmlidXRlX18gKChub2lwYSwgbm9pbmxpbmUpKSBteV9w dXRzIChjb25zdCBjaGFyICpzdHIpIHsgfQotKwotK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vaXBh LCBub2lubGluZSkpIG15X2ZyZWUgKHZvaWQgKnApIHsgfQotKwotKwotK3N0cnVjdCBOb2RlCi0r ewotKyAgc3RydWN0IE5vZGUgKmNoaWxkOwotK307Ci0rCi0rc3RydWN0IE5vZGUgc3BhY2VbMl0g PSB7IH07Ci0rCi0rc3RydWN0IE5vZGUgKiBfX2F0dHJpYnV0ZV9fICgobm9pcGEsIG5vaW5saW5l KSkgbXlfbWFsbG9jIChpbnQgYnl0ZXMpCi0rewotKyAgcmV0dXJuICZzcGFjZVswXTsKLSt9Ci0r Ci0rdm9pZAotK3dhbGsgKHN0cnVjdCBOb2RlICptb2R1bGUsIGludCBjbGVhbnVwKQotK3sKLSsg IGlmIChtb2R1bGUgPT0gMCkKLSsgICAgewotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgaWYg KCFjbGVhbnVwKQotKyAgICB7Ci0rICAgICAgbXlfcHV0cyAoIk5vIGNsZWFudXAiKTsKLSsgICAg fQotKyAgd2FsayAobW9kdWxlLT5jaGlsZCwgY2xlYW51cCk7Ci0rICBpZiAoY2xlYW51cCkKLSsg ICAgewotKyAgICAgIG15X2ZyZWUgKG1vZHVsZSk7Ci0rICAgIH0KLSt9Ci0rCi0raW50Ci0rbWFp biAoKQotK3sKLSsgIHN0cnVjdCBOb2RlICpub2RlID0gbXlfbWFsbG9jIChzaXplb2YgKHN0cnVj dCBOb2RlKSk7Ci0rICBub2RlLT5jaGlsZCA9IDA7Ci0rICB3YWxrIChub2RlLCAxKTsKLSt9CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2djYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlCmlu ZGV4IGJhYjMzZDc5OGFlLi4wNjliNjZhMTFmMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9nY2MvdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTQgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2djYycKIF9tYWpvcnZlcj05Ci1fbWlub3J2ZXI9JHtfbWFqb3J2ZXJ9 LjEKK19taW5vcnZlcj0ke19tYWpvcnZlcn0uMgogX2dtcF92ZXJzaW9uPTYuMS4yCi1fbXBmcl92 ZXJzaW9uPTQuMC4xCitfbXBmcl92ZXJzaW9uPTQuMC4yCiBfbXBjX3ZlcnNpb249MS4xLjAKLV9p c2xfdmVyc2lvbj0wLjE5CitfaXNsX3ZlcnNpb249MC4yMQogCiBwa2duYW1lPWdjYwogdmVyc2lv bj0ke19taW5vcnZlcn0uMAotcmV2aXNpb249MworcmV2aXNpb249MQogc2hvcnRfZGVzYz0iR05V IENvbXBpbGVyIENvbGxlY3Rpb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHA6Ly9nY2MuZ251Lm9yZyIKQEAgLTIwLDE3ICsy MCwxOCBAQCBkaXN0ZmlsZXM9IgogIGh0dHBzOi8vd3d3Lm1wZnIub3JnL21wZnItJHtfbXBmcl92 ZXJzaW9ufS9tcGZyLSR7X21wZnJfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vbXBjL21w Yy0ke19tcGNfdmVyc2lvbn0udGFyLmd6CiAgaHR0cDovL2lzbC5nZm9yZ2UuaW5yaWEuZnIvaXNs LSR7X2lzbF92ZXJzaW9ufS50YXIuYnoyIgotY2hlY2tzdW09Ijc5YTY2ODM0ZTk2YTYwNTBkOGZl NzhkYjJjM2IzMmZiMjg1YjIzMGI4NTVkMGE2NjI4ODIzNWJjMDRiMzI3YTAKK2NoZWNrc3VtPSJl YTZlZjA4ZjEyMTIzOWRhNTY5NWY3NmM5YjMzNjM3YTExOGRjZjYzZTI0MTY0NDIyMjMxOTE3ZmE2 MWZiMjA2CiAgODdiNTY1ZTg5YTlhNjg0ZmU0ZWJlZWRkYjgzOTlkY2UyNTk5ZjljOTA0OTg1NGNh OGMwZGZiZGVhMGUyMTkxMgotIDY3ODc0YTYwODI2MzAzZWUyZmI2YWZmYzZkYzBkZGQzZTc0OWU5 YmZjYjRjODY1NWUzOTUzZDA0NThhNmUxNmUKKyAxZDNiZTcwODYwNGVhZTBlNDJkNTc4YmE5M2Iz OTBjMmExNDVmMTc3NDNhNzQ0ZDhmM2Y4YzJhZDU4NTVhMzhhCiAgNjk4NWM1MzgxNDNjMTIwOGRj YjFhYzQyY2VkYWQ2ZmY1MmUyNjdiNDdlNWY5NzAxODNhM2U3NTEyNWI0M2MyZQotIGQ1OTcyNmYz NGY3ODUyYTA4MWZiZDNkZWZkMWFiMjEzNmYxNzQxMTBmYzJlMGM4ZDEwYmIxMjIxNzNmYTllZDgi CisgZDE4Y2ExMWY4YWQxYTM5YWI2ZDAzZDNkY2IzMzY1YWI0MTY3MjBmY2I2NWI0MmQ2OWYzNGY1 MWJmMGEwZTg1OSIKIAogbm9waWU9eWVzCiBsaWIzMmRpc2FibGVkPXllcwogYm9vdHN0cmFwPXll cwogcmVwbGFjZXM9ImdjYy1nY2o8Ny4yLjAgZ2NjLWdjai1qZGstY29tcGF0PDcuMi4wIGxpYm1w eD49MCBsaWJtcHgtZGV2ZWw+PTAiCiBhbHRlcm5hdGl2ZXM9ImNjOmNjOi91c3IvYmluL2djYyIK K25vY3Jvc3M9eWVzCiAKIGlmIFsgIiRDSFJPT1RfUkVBRFkiIF07IHRoZW4KIAlob3N0bWFrZWRl cGVuZHM9InBlcmwgZmxleCIKQEAgLTY5LDEyICs3MCwxMSBAQCBpZiBbICIkQ0hST09UX1JFQURZ IiBdOyB0aGVuCiAJc3VicGFja2FnZXMrPSIgZ2NjLWZvcnRyYW4gbGliZ2ZvcnRyYW4tZGV2ZWwg bGliZ2ZvcnRyYW4iCiAJaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJCXN1YnBhY2th Z2VzKz0iIGdjYy1vYmpjIGdjYy1vYmpjKysgbGlib2JqYy1kZXZlbCBsaWJvYmpjIgotCQljYXNl ICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQkJKi1tdXNsKQkjIEdvIHdvbid0IGxpbmsgZm9y IG11c2wgbGliYwotCQkJOzsKLQkJKikJc3VicGFja2FnZXMrPSIgZ2NjLWdvIGdjYy1nby10b29s cyBsaWJnby1kZXZlbCBsaWJnbyIKLQkJCTs7Ci0JCWVzYWMKKwkJc3VicGFja2FnZXMrPSIgZ2Nj LWdvIGdjYy1nby10b29scyBsaWJnby1kZXZlbCBsaWJnbyIKKwkJIyB3ZSBuZWVkIHRoaXMgZm9y IGdjYy1nbyBvbiBtdXNsCisJCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0 aGVuCisJCQltYWtlZGVwZW5kcys9IiBsaWJ1Y29udGV4dC1kZXZlbCIKKwkJZmkKIAlmaQogZmkK IApAQCAtMTYyLDcgKzE2MiwxMCBAQCBwcmVfY29uZmlndXJlKCkgewogCSMgX0ZPUlRJRllfU09V UkNFIG5lZWRzIGFuIG9wdGltaXphdGlvbiBsZXZlbC4KIAlzZWQgLWkgIi9hY19jcHA9L3MvXCRD UFBGTEFHUy9cJENQUEZMQUdTIC1PMi8iIHtnY2MsbGliaWJlcnR5fS9jb25maWd1cmUKIAljYXNl ICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQkJKi1tdXNsKSBwYXRjaCAtcDEgLWkgJHtGSUxF U0RJUn0vbGliZ25hcmwtbXVzbC5wYXRjaCA7OworCQkqLW11c2wpCisJCQlwYXRjaCAtcDEgLWkg JHtGSUxFU0RJUn0vbGliZ25hcmwtbXVzbC5wYXRjaAorCQkJcGF0Y2ggLXAwIC1pICR7RklMRVNE SVJ9L2djY2dvLW11c2wucGF0Y2gKKwkJCTs7CiAJZXNhYwogfQogZG9fY29uZmlndXJlKCkgewpA QCAtMjI1LDEzICsyMjgsNyBAQCBkb19jb25maWd1cmUoKSB7CiAJCWV4cG9ydCBMRF9MSUJSQVJZ X1BBVEg9IiR7WEJQU19NQVNURVJESVJ9L3Vzci9saWIiCiAJCV9hcmdzKz0iIC0tYnVpbGQ9JHtf dHJpcGxldH0iCiAJZWxzZQotCQlfbGFuZ3M9ImMsYysrLG9iamMsb2JqLWMrKyxmb3J0cmFuLGx0 byIKLQkJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JCQkqLW11c2wpCSMgTGlua2lu ZyBsaWJnby5zbyBpcyBicm9rZW4gZm9yIG11c2wgbGliYwotCQkJCTs7Ci0JCQkqKQlfbGFuZ3Mr PSIsZ28iCi0JCQkJOzsKLQkJZXNhYworCQlfbGFuZ3M9ImMsYysrLG9iamMsb2JqLWMrKyxnbyxm b3J0cmFuLGx0byIKIAkJX2FyZ3MrPSIgLS1idWlsZD0ke190cmlwbGV0fSIKIAkJX2FyZ3MrPSIg LS1lbmFibGUtZmFzdC1jaGFyYWN0ZXIiCiAJZmkK --===============0202565751879315434==--