From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Mamoru TASAKA To: git-commits@fedoraproject.org Subject: [rpms/ruby] f44: Update to Ruby 4.0.6 Date: Wed, 15 Jul 2026 11:33:27 GMT Message-ID: <178411520769.1.18270807835895917702.rpms-ruby-60c304fbcb77@fedoraproject.org> List-ID: X-Git-Repo: rpms/ruby X-Git-Branch: f44 X-Git-Rev: 60c304fbcb77d93ededbd305f7528ea56b306514 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcnVieQpCcmFuY2gg OiBmNDQKQ29tbWl0IDogNjBjMzA0ZmJjYjc3ZDkzZWRlZGJkMzA1Zjc1MjhlYTU2YjMwNjUxNApB dXRob3IgOiBNYW1vcnUgVEFTQUtBIDxtdGFzYWthQGZlZG9yYXByb2plY3Qub3JnPgpEYXRlICAg OiAyMDI2LTA3LTE1VDIwOjI3OjU3KzA5OjAwClN0YXRzICA6ICsyMy8tMTc3NCBpbiA0IGZpbGUo cykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9ydWJ5L2MvNjBj MzA0ZmJjYjc3ZDkzZWRlZGJkMzA1Zjc1MjhlYTU2YjMwNjUxND9icmFuY2g9ZjQ0CgpMb2c6ClVw ZGF0ZSB0byBSdWJ5IDQuMC42CgotLS0KZGlmZiAtLWdpdCBhL3J1YnktMi43LjAtSW5pdGlhbGl6 ZS1BQlJULWhvb2sucGF0Y2ggYi9ydWJ5LTIuNy4wLUluaXRpYWxpemUtQUJSVC1ob29rLnBhdGNo CmluZGV4IDg2ZDk3ZmMuLmQzMjhlYmMgMTAwNjQ0Ci0tLSBhL3J1YnktMi43LjAtSW5pdGlhbGl6 ZS1BQlJULWhvb2sucGF0Y2gKKysrIGIvcnVieS0yLjcuMC1Jbml0aWFsaXplLUFCUlQtaG9vay5w YXRjaApAQCAtNTYsOCArNTYsOCBAQCBkaWZmIC0tZ2l0IGEvcnVieS5jIGIvcnVieS5jCiBpbmRl eCBiMDBmYzE1MDJkLi4zMmI4OGY3NDk2IDEwMDY0NAogLS0tIGEvcnVieS5jCiArKysgYi9ydWJ5 LmMKLUBAIC0xNzczLDEwICsxNzczLDE0IEBAIHByb2Nfb3B0aW9ucyhsb25nIGFyZ2MsIGNoYXIg Kiphcmd2LCBydWJ5X2NtZGxpbmVfb3B0aW9uc190ICpvcHQsIGludCBlbnZvcHQpCi0gCitAQCAt MTc5MywxMCArMTc5MywxNCBAQCBwcm9jX29wdGlvbnMobG9uZyBhcmdjLCBjaGFyICoqYXJndiwg cnVieV9jbWRsaW5lX29wdGlvbnNfdCAqb3B0LCBpbnQgZW52b3B0KQorIFZBTFVFIHJiX2RlZmlu ZV9nZW1fbW9kdWxlcyhWQUxVRSwgVkFMVUUpOwogIHZvaWQgSW5pdF9idWlsdGluX2ZlYXR1cmVz KHZvaWQpOwogIAogKy8qIGFicnQuYyAqLwoKZGlmZiAtLWdpdCBhL3J1YnktcHIxNjk0Ny1vcGVu c3NsLTRfMF8yLWZyb20tcnVieV80XzAucGF0Y2ggYi9ydWJ5LXByMTY5NDctb3BlbnNzbC00XzBf Mi1mcm9tLXJ1YnlfNF8wLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNGVm MWMxLi4wMDAwMDAwCi0tLSBhL3J1YnktcHIxNjk0Ny1vcGVuc3NsLTRfMF8yLWZyb20tcnVieV80 XzAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNzQ3ICswLDAgQEAKLUZyb20gMDU3NjQ1MjAz MGQ0NDQ1NTI1MGNlNjdlY2Q0Y2E1MTJiMjFjN2RiZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEthenVraSBZYW1hZ3VjaGkgPGtAcmhlLmpwPgotRGF0ZTogVGh1LCAxNCBNYXkgMjAy NiAwMDo0Njo1NCArMDkwMAotU3ViamVjdDogW1BBVENIIDEvMl0gTWVyZ2Ugb3BlbnNzbC00LjAu MQotCi1UaGUgY2hhbmdlcyBjYW4gYmUgZm91bmQgYXQ6Ci0KLSAgICBodHRwczovL2dpdGh1Yi5j b20vcnVieS9vcGVuc3NsL2NvbXBhcmUvdjQuMC4wLi4udjQuMC4xCi0tLS0KLSBleHQvb3BlbnNz bC9IaXN0b3J5Lm1kICAgICAgICAgICAgIHwgMjAgKysrKysrKwotIGV4dC9vcGVuc3NsL2xpYi9v cGVuc3NsL3ZlcnNpb24ucmIgfCAgMiArLQotIGV4dC9vcGVuc3NsL29wZW5zc2wuZ2Vtc3BlYyAg ICAgICAgfCAgMiArLQotIGV4dC9vcGVuc3NsL29zc2xfY2lwaGVyLmMgICAgICAgICAgfCAxMyAr Ky0tLQotIGV4dC9vcGVuc3NsL29zc2xfb2NzcC5jICAgICAgICAgICAgfCAgNCArLQotIGV4dC9v cGVuc3NsL29zc2xfcGtjczcuYyAgICAgICAgICAgfCAgMiArLQotIGV4dC9vcGVuc3NsL29zc2xf cGtleV9lYy5jICAgICAgICAgfCAgMiArLQotIGV4dC9vcGVuc3NsL29zc2xfc3NsLmMgICAgICAg ICAgICAgfCA4OCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KLSB0ZXN0L29wZW5zc2wv dGVzdF9jaXBoZXIucmIgICAgICAgIHwgNjcgKysrKysrKysrKysrKy0tLS0tLS0tLS0KLSB0ZXN0 L29wZW5zc2wvdGVzdF9kaWdlc3QucmIgICAgICAgIHwgMjggKysrKysrLS0tLQotIHRlc3Qvb3Bl bnNzbC90ZXN0X2ZpcHMucmIgICAgICAgICAgfCAgMiArLQotIHRlc3Qvb3BlbnNzbC90ZXN0X29j c3AucmIgICAgICAgICAgfCAyOSArKysrKysrKysrCi0gdGVzdC9vcGVuc3NsL3Rlc3RfcGtjczEy LnJiICAgICAgICB8IDM4ICsrKysrKysrKysrLS0KLSB0ZXN0L29wZW5zc2wvdGVzdF9wa2V5X2Vj LnJiICAgICAgIHwgIDkgKysrCi0gdGVzdC9vcGVuc3NsL3Rlc3Rfc3NsLnJiICAgICAgICAgICB8 IDY2ICsrKysrKysrKysrKysrKy0tLS0tLS0KLSAxNSBmaWxlcyBjaGFuZ2VkLCAyNjMgaW5zZXJ0 aW9ucygrKSwgMTA5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvSGlz dG9yeS5tZCBiL2V4dC9vcGVuc3NsL0hpc3RvcnkubWQKLWluZGV4IDQxOTIzN2ZmMTY3ZjlhLi5j NzhjN2U0NjMzNGRkYiAxMDA2NDQKLS0tLSBhL2V4dC9vcGVuc3NsL0hpc3RvcnkubWQKLSsrKyBi L2V4dC9vcGVuc3NsL0hpc3RvcnkubWQKLUBAIC0xLDMgKzEsMjMgQEAKLStWZXJzaW9uIDQuMC4x Ci0rPT09PT09PT09PT09PQotKwotK05vdGFibGUgY2hhbmdlcwotKy0tLS0tLS0tLS0tLS0tLQot KwotKyogQWRkIGBzeW5jX2Nsb3NlYCBrZXl3b3JkIGFyZ3VtZW50IHRvIGBPcGVuU1NMOjpTU0w6 OlNTTFNvY2tldC5uZXdgIGFzIGEKLSsgIHNob3J0LWhhbmQgZm9yIHNldHRpbmcgYHN5bmNfY2xv c2VgIGF0dHJpYnV0ZSBvbiB0aGUgY3JlYXRlZCBgU1NMU29ja2V0YAotKyAgaW5zdGFuY2UuCi0r ICBbW0dpdEh1YiAjOTU1XV0oaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkvb3BlbnNzbC9pc3N1ZXMv OTU1KQotKyAgW1tHaXRIdWIgIzk5Nl1dKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L29wZW5zc2wv cHVsbC85OTYpCi0rCi0rCi0rQnVnIGZpeGVzCi0rLS0tLS0tLS0tCi0rCi0rKiBGaXggdW5pbml0 aWFsaXplZCB2YXJpYWJsZXMgaW4gYE9wZW5TU0w6Ok9DU1A6OkJhc2ljUmVzcG9uc2Ujc3RhdHVz YC4KLSsgIFtbR2l0SHViICMxMDA0XV0oaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkvb3BlbnNzbC9w dWxsLzEwMDQpCi0rCi0rCi0gVmVyc2lvbiA0LjAuMAotID09PT09PT09PT09PT0KLSAKLWRpZmYg LS1naXQgYS9leHQvb3BlbnNzbC9saWIvb3BlbnNzbC92ZXJzaW9uLnJiIGIvZXh0L29wZW5zc2wv bGliL29wZW5zc2wvdmVyc2lvbi5yYgotaW5kZXggODg1NzA1NjJlMjU1YzMuLjQ1YzE1MGJlMTEw NWJhIDEwMDY0NAotLS0tIGEvZXh0L29wZW5zc2wvbGliL29wZW5zc2wvdmVyc2lvbi5yYgotKysr IGIvZXh0L29wZW5zc2wvbGliL29wZW5zc2wvdmVyc2lvbi5yYgotQEAgLTIsNSArMiw1IEBACi0g Ci0gbW9kdWxlIE9wZW5TU0wKLSAgICMgVGhlIHZlcnNpb24gc3RyaW5nIG9mIFJ1YnkvT3BlblNT TC4KLS0gIFZFUlNJT04gPSAiNC4wLjAiCi0rICBWRVJTSU9OID0gIjQuMC4xIgotIGVuZAotZGlm ZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29wZW5zc2wuZ2Vtc3BlYyBiL2V4dC9vcGVuc3NsL29wZW5z c2wuZ2Vtc3BlYwotaW5kZXggNzA3MmQ1OTlkODZkNjkuLmM1OTRjNmYxNzc2NTM4IDEwMDY0NAot LS0tIGEvZXh0L29wZW5zc2wvb3BlbnNzbC5nZW1zcGVjCi0rKysgYi9leHQvb3BlbnNzbC9vcGVu c3NsLmdlbXNwZWMKLUBAIC0xLDYgKzEsNiBAQAotIEdlbTo6U3BlY2lmaWNhdGlvbi5uZXcgZG8g fHNwZWN8Ci0gICBzcGVjLm5hbWUgICAgICAgICAgPSAib3BlbnNzbCIKLS0gIHNwZWMudmVyc2lv biAgICAgICA9ICI0LjAuMCIKLSsgIHNwZWMudmVyc2lvbiAgICAgICA9ICI0LjAuMSIKLSAgIHNw ZWMuYXV0aG9ycyAgICAgICA9IFsiTWFydGluIEJvc3NsZXQiLCAiU0hJQkFUQSBIaXJvc2hpIiwg IlphY2hhcnkgU2NvdHQiLCAiS2F6dWtpIFlhbWFndWNoaSJdCi0gICBzcGVjLmVtYWlsICAgICAg ICAgPSBbInJ1YnktY29yZUBydWJ5LWxhbmcub3JnIl0KLSAgIHNwZWMuc3VtbWFyeSAgICAgICA9 ICVxe1NTTC9UTFMgYW5kIGdlbmVyYWwtcHVycG9zZSBjcnlwdG9ncmFwaHkgZm9yIFJ1Ynl9Ci1k aWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvb3NzbF9jaXBoZXIuYyBiL2V4dC9vcGVuc3NsL29zc2xf Y2lwaGVyLmMKLWluZGV4IGRiNjVlOTk4ODhkM2JmLi5mM2NkMjQ3YzhmZGZiYyAxMDA2NDQKLS0t LSBhL2V4dC9vcGVuc3NsL29zc2xfY2lwaGVyLmMKLSsrKyBiL2V4dC9vcGVuc3NsL29zc2xfY2lw aGVyLmMKLUBAIC00MDEsOSArNDAxLDkgQEAgb3NzbF9jaXBoZXJfdXBkYXRlKGludCBhcmdjLCBW QUxVRSAqYXJndiwgVkFMVUUgc2VsZikKLSAgICAgfQotICAgICBvdXRfbGVuID0gaW5fbGVuICsg RVZQX01BWF9CTE9DS19MRU5HVEg7Ci0gCi0tICAgIGlmIChOSUxfUChzdHIpKSB7Ci0tICAgICAg ICBzdHIgPSByYl9zdHJfbmV3KDAsIG91dF9sZW4pOwotLSAgICB9IGVsc2UgewotKyAgICBpZiAo TklMX1Aoc3RyKSkKLSsgICAgICAgIHN0ciA9IHJiX3N0cl9idWZfbmV3KG91dF9sZW4pOwotKyAg ICBlbHNlIHsKLSAgICAgICAgIFN0cmluZ1ZhbHVlKHN0cik7Ci0gICAgICAgICBpZiAoKGxvbmcp cmJfc3RyX2NhcGFjaXR5KHN0cikgPj0gb3V0X2xlbikKLSAgICAgICAgICAgICByYl9zdHJfbW9k aWZ5KHN0cik7Ci1AQCAtNDExLDkgKzQxMSw5IEBAIG9zc2xfY2lwaGVyX3VwZGF0ZShpbnQgYXJn YywgVkFMVUUgKmFyZ3YsIFZBTFVFIHNlbGYpCi0gICAgICAgICAgICAgcmJfc3RyX21vZGlmeV9l eHBhbmQoc3RyLCBvdXRfbGVuIC0gUlNUUklOR19MRU4oc3RyKSk7Ci0gICAgIH0KLSAKLS0gICAg aWYgKCFvc3NsX2NpcGhlcl91cGRhdGVfbG9uZyhjdHgsICh1bnNpZ25lZCBjaGFyICopUlNUUklO R19QVFIoc3RyKSwgJm91dF9sZW4sIGluLCBpbl9sZW4pKQotLSAgICAgICAgb3NzbF9yYWlzZShl Q2lwaGVyRXJyb3IsIE5VTEwpOwotLSAgICBhc3NlcnQob3V0X2xlbiA8PSBSU1RSSU5HX0xFTihz dHIpKTsKLSsgICAgaWYgKCFvc3NsX2NpcGhlcl91cGRhdGVfbG9uZyhjdHgsICh1bnNpZ25lZCBj aGFyICopUlNUUklOR19QVFIoc3RyKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmb3V0X2xlbiwgaW4sIGluX2xlbikpCi0rICAgICAgICBvc3NsX3JhaXNlKGVDaXBoZXJFcnJv ciwgIkVWUF9DaXBoZXJVcGRhdGUiKTsKLSAgICAgcmJfc3RyX3NldF9sZW4oc3RyLCBvdXRfbGVu KTsKLSAKLSAgICAgcmV0dXJuIHN0cjsKLUBAIC00NTYsNyArNDU2LDYgQEAgb3NzbF9jaXBoZXJf ZmluYWwoVkFMVUUgc2VsZikKLSAgICAgICAgICAgICBvc3NsX3JhaXNlKGVDaXBoZXJFcnJvciwg ImNpcGhlciBmaW5hbCBmYWlsZWQiKTsKLSAgICAgICAgIH0KLSAgICAgfQotLSAgICBhc3NlcnQo b3V0X2xlbiA8PSBSU1RSSU5HX0xFTihzdHIpKTsKLSAgICAgcmJfc3RyX3NldF9sZW4oc3RyLCBv dXRfbGVuKTsKLSAKLSAgICAgcmV0dXJuIHN0cjsKLWRpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9v c3NsX29jc3AuYyBiL2V4dC9vcGVuc3NsL29zc2xfb2NzcC5jCi1pbmRleCA5M2Q4YmM4NTY3MWVh Yy4uZGRiNjdmY2YwN2E3Y2UgMTAwNjQ0Ci0tLS0gYS9leHQvb3BlbnNzbC9vc3NsX29jc3AuYwot KysrIGIvZXh0L29wZW5zc2wvb3NzbF9vY3NwLmMKLUBAIC05MDUsOCArOTA1LDggQEAgb3NzbF9v Y3NwYnJlc19nZXRfc3RhdHVzKFZBTFVFIHNlbGYpCi0gICAgIGludCBjb3VudCA9IE9DU1BfcmVz cF9jb3VudChicyk7Ci0gICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAg ICAgICAgT0NTUF9TSU5HTEVSRVNQICpzaW5nbGUgPSBPQ1NQX3Jlc3BfZ2V0MChicywgaSk7Ci0t ICAgICAgICBBU04xX1RJTUUgKnJldnRpbWUsICp0aGlzdXBkLCAqbmV4dHVwZDsKLS0gICAgICAg IGludCByZWFzb247Ci0rICAgICAgICBBU04xX1RJTUUgKnJldnRpbWUgPSBOVUxMLCAqdGhpc3Vw ZCA9IE5VTEwsICpuZXh0dXBkID0gTlVMTDsKLSsgICAgICAgIGludCByZWFzb24gPSAtMTsKLSAK LSAgICAgICAgIGludCBzdGF0dXMgPSBPQ1NQX3NpbmdsZV9nZXQwX3N0YXR1cyhzaW5nbGUsICZy ZWFzb24sICZyZXZ0aW1lLCAmdGhpc3VwZCwgJm5leHR1cGQpOwotICAgICAgICAgaWYgKHN0YXR1 cyA8IDApCi1kaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvb3NzbF9wa2NzNy5jIGIvZXh0L29wZW5z c2wvb3NzbF9wa2NzNy5jCi1pbmRleCA2ZTUxZmQ0MmI5MGZhYy4uYWUwZDM1YjcyMzU5MjMgMTAw NjQ0Ci0tLS0gYS9leHQvb3BlbnNzbC9vc3NsX3BrY3M3LmMKLSsrKyBiL2V4dC9vcGVuc3NsL29z c2xfcGtjczcuYwotQEAgLTEwMTAsNyArMTAxMCw3IEBAIHN0YXRpYyBWQUxVRQotIG9zc2xfcGtj czdzaV9nZXRfc2lnbmVkX3RpbWUoVkFMVUUgc2VsZikKLSB7Ci0gICAgIFBLQ1M3X1NJR05FUl9J TkZPICpwN3NpOwotLSAgICBBU04xX1RZUEUgKmFzbjFvYmo7Ci0rICAgIGNvbnN0IEFTTjFfVFlQ RSAqYXNuMW9iajsKLSAKLSAgICAgR2V0UEtDUzdzaShzZWxmLCBwN3NpKTsKLSAKLWRpZmYgLS1n aXQgYS9leHQvb3BlbnNzbC9vc3NsX3BrZXlfZWMuYyBiL2V4dC9vcGVuc3NsL29zc2xfcGtleV9l Yy5jCi1pbmRleCBiYjE5NTMzZWRmNDc0NC4uMzVmMDMxODE5ZGM2ZWIgMTAwNjQ0Ci0tLS0gYS9l eHQvb3BlbnNzbC9vc3NsX3BrZXlfZWMuYwotKysrIGIvZXh0L29wZW5zc2wvb3NzbF9wa2V5X2Vj LmMKLUBAIC03MDIsNyArNzAyLDcgQEAgc3RhdGljIFZBTFVFIG9zc2xfZWNfZ3JvdXBfaW5pdGlh bGl6ZShpbnQgYXJnYywgVkFMVUUgKmFyZ3YsIFZBTFVFIHNlbGYpCi0gCi0gICAgICAgICBicmVh azsKLSAgICAgICBkZWZhdWx0OgotLSAgICAgICAgb3NzbF9yYWlzZShyYl9lQXJnRXJyb3IsICJ3 cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIik7Ci0rICAgICAgICBvc3NsX3JhaXNlKHJiX2VBcmdF cnJvciwgIndyb25nIG51bWJlciBvZiBhcmd1bWVudHMgKGdpdmVuICVkLCBleHBlY3RlZCAxIG9y IDQpIiwgYXJnYyk7Ci0gICAgIH0KLSAKLSAgICAgQVNTVU1FKGdyb3VwKTsKLWRpZmYgLS1naXQg YS9leHQvb3BlbnNzbC9vc3NsX3NzbC5jIGIvZXh0L29wZW5zc2wvb3NzbF9zc2wuYwotaW5kZXgg NjMwZDQ2ZTQzZjI1NmUuLmM2ZGVjMzJhOWU1ZTgyIDEwMDY0NAotLS0tIGEvZXh0L29wZW5zc2wv b3NzbF9zc2wuYwotKysrIGIvZXh0L29wZW5zc2wvb3NzbF9zc2wuYwotQEAgLTQ3LDcgKzQ3LDcg QEAgc3RhdGljIElEIGlkX2lfY2VydF9zdG9yZSwgaWRfaV9jYV9maWxlLCBpZF9pX2NhX3BhdGgs IGlkX2lfdmVyaWZ5X21vZGUsCi0gICAgICAgICAgIGlkX2lfc2Vzc2lvbl9yZW1vdmVfY2IsIGlk X2lfbnBuX3NlbGVjdF9jYiwgaWRfaV9ucG5fcHJvdG9jb2xzLAotICAgICAgICAgICBpZF9pX2Fs cG5fc2VsZWN0X2NiLCBpZF9pX2FscG5fcHJvdG9jb2xzLCBpZF9pX3NlcnZlcm5hbWVfY2IsCi0g ICAgICAgICAgIGlkX2lfdmVyaWZ5X2hvc3RuYW1lLCBpZF9pX2tleWxvZ19jYiwgaWRfaV90bXBf ZGhfY2FsbGJhY2s7Ci0tc3RhdGljIElEIGlkX2lfaW8sIGlkX2lfY29udGV4dCwgaWRfaV9ob3N0 bmFtZTsKLStzdGF0aWMgSUQgaWRfaV9pbywgaWRfaV9jb250ZXh0LCBpZF9pX2hvc3RuYW1lLCBp ZF9pX3N5bmNfY2xvc2U7Ci0gCi0gc3RhdGljIGludCBvc3NsX3NzbF9leF9wdHJfaWR4OwotIHN0 YXRpYyBpbnQgb3NzbF9zc2xjdHhfZXhfcHRyX2lkeDsKLUBAIC0xNTkwLDMyICsxNTkwLDMxIEBA IG9zc2xfc3NsX3NfYWxsb2MoVkFMVUUga2xhc3MpCi0gfQotIAotIHN0YXRpYyBWQUxVRQotLXBl ZXJfaXBfYWRkcmVzcyhWQUxVRSBzZWxmKQotK3BlZXJfaXBfYWRkcmVzcyhWQUxVRSBpbykKLSB7 Ci0tICAgIFZBTFVFIHJlbW90ZV9hZGRyZXNzID0gcmJfZnVuY2FsbChyYl9hdHRyX2dldChzZWxm LCBpZF9pX2lvKSwgcmJfaW50ZXJuKCJyZW1vdGVfYWRkcmVzcyIpLCAwKTsKLSsgICAgVkFMVUUg cmVtb3RlX2FkZHJlc3MgPSByYl9mdW5jYWxsKGlvLCByYl9pbnRlcm4oInJlbW90ZV9hZGRyZXNz IiksIDApOwotIAotICAgICByZXR1cm4gcmJfZnVuY2FsbChyZW1vdGVfYWRkcmVzcywgcmJfaW50 ZXJuKCJpbnNwZWN0X3NvY2thZGRyIiksIDApOwotIH0KLSAKLSBzdGF0aWMgVkFMVUUKLS1mYWxs YmFja19wZWVyX2lwX2FkZHJlc3MoVkFMVUUgc2VsZiwgVkFMVUUgYXJncykKLStmYWxsYmFja19w ZWVyX2lwX2FkZHJlc3MoVkFMVUUgc2VsZiwgVkFMVUUgZXhjKQotIHsKLSAgICAgcmV0dXJuIHJi X3N0cl9uZXdfY3N0cigiKG51bGwpIik7Ci0gfQotIAotIHN0YXRpYyBWQUxVRQotLXBlZXJhZGRy X2lwX3N0cihWQUxVRSBzZWxmKQotK3BlZXJhZGRyX2lwX3N0cihWQUxVRSBpbykKLSB7Ci0tICAg IFZBTFVFIHJiX21FcnJubyA9IHJiX2NvbnN0X2dldChyYl9jT2JqZWN0LCByYl9pbnRlcm4oIkVy cm5vIikpOwotLSAgICBWQUxVRSByYl9lU3lzdGVtQ2FsbEVycm9yID0gcmJfY29uc3RfZ2V0KHJi X21FcnJubywgcmJfaW50ZXJuKCJTeXN0ZW1DYWxsRXJyb3IiKSk7Ci0tCi0tICAgIHJldHVybiBy Yl9yZXNjdWUyKHBlZXJfaXBfYWRkcmVzcywgc2VsZiwgZmFsbGJhY2tfcGVlcl9pcF9hZGRyZXNz LCAoVkFMVUUpMCwgcmJfZVN5c3RlbUNhbGxFcnJvciwgTlVMTCk7Ci0rICAgIHJldHVybiByYl9y ZXNjdWUyKHBlZXJfaXBfYWRkcmVzcywgaW8sIGZhbGxiYWNrX3BlZXJfaXBfYWRkcmVzcywgUW5p bCwKLSsgICAgICAgICAgICAgICAgICAgICAgcmJfZVN5c3RlbUNhbGxFcnJvciwgKFZBTFVFKTAp OwotIH0KLSAKLSAvKgotICAqIGNhbGwtc2VxOgotICAqICAgIFNTTFNvY2tldC5uZXcoaW8pID0+ IGFTU0xTb2NrZXQKLSAgKiAgICBTU0xTb2NrZXQubmV3KGlvLCBjdHgpID0+IGFTU0xTb2NrZXQK LSsgKiAgICBTU0xTb2NrZXQubmV3KGlvLCBjdHgsIHN5bmNfY2xvc2U6KSA9PiBhU1NMU29ja2V0 Ci0gICoKLSAgKiBDcmVhdGVzIGEgbmV3IFNTTCBzb2NrZXQgZnJvbSBfaW9fIHdoaWNoIG11c3Qg YmUgYSByZWFsIElPIG9iamVjdCAobm90IGFuCi0gICogSU8tbGlrZSBvYmplY3QgdGhhdCByZXNw b25kcyB0byByZWFkL3dyaXRlKS4KLUBAIC0xNjIzLDYgKzE2MjIsMTAgQEAgcGVlcmFkZHJfaXBf c3RyKFZBTFVFIHNlbGYpCi0gICogSWYgX2N0eF8gaXMgcHJvdmlkZWQgdGhlIFNTTCBTb2NrZXRz IGluaXRpYWwgcGFyYW1zIHdpbGwgYmUgdGFrZW4gZnJvbQotICAqIHRoZSBjb250ZXh0LgotICAq Ci0rICogVGhlIG9wdGlvbmFsIF9zeW5jX2Nsb3NlXyBrZXl3b3JkIHBhcmFtZXRlciBzZXRzIHRo ZSBfc3luY19jbG9zZV8gaW5zdGFuY2UKLSsgKiB2YXJpYWJsZS4gU2V0dGluZyB0aGlzIHRvICt0 cnVlKyB3aWxsIGNhdXNlIHRoZSB1bmRlcmx5aW5nIHNvY2tldCB0byBiZQotKyAqIGNsb3NlZCB3 aGVuIHRoZSBTU0wvVExTIGNvbm5lY3Rpb24gaXMgc2h1dCBkb3duLgotKyAqCi0gICogVGhlIE9w ZW5TU0w6OkJ1ZmZlcmluZyBtb2R1bGUgcHJvdmlkZXMgYWRkaXRpb25hbCBJTyBtZXRob2RzLgot ICAqCi0gICogVGhpcyBtZXRob2Qgd2lsbCBmcmVlemUgdGhlIFNTTENvbnRleHQgaWYgb25lIGlz IHByb3ZpZGVkOwotQEAgLTE2MzEsNiArMTYzNCwxMCBAQCBwZWVyYWRkcl9pcF9zdHIoVkFMVUUg c2VsZikKLSBzdGF0aWMgVkFMVUUKLSBvc3NsX3NzbF9pbml0aWFsaXplKGludCBhcmdjLCBWQUxV RSAqYXJndiwgVkFMVUUgc2VsZikKLSB7Ci0rICAgIHN0YXRpYyBJRCBrd19pZHNbMV07Ci0rICAg IFZBTFVFIGt3X2FyZ3NbMV07Ci0rICAgIFZBTFVFIG9wdHM7Ci0rCi0gICAgIFZBTFVFIGlvLCB2 X2N0eDsKLSAgICAgU1NMICpzc2w7Ci0gICAgIFNTTF9DVFggKmN0eDsKLUBAIC0xNjM5LDkgKzE2 NDYsMTggQEAgb3NzbF9zc2xfaW5pdGlhbGl6ZShpbnQgYXJnYywgVkFMVUUgKmFyZ3YsIFZBTFVF IHNlbGYpCi0gICAgIGlmIChzc2wpCi0gICAgICAgICBvc3NsX3JhaXNlKGVTU0xFcnJvciwgIlNT TCBhbHJlYWR5IGluaXRpYWxpemVkIik7Ci0gCi0tICAgIGlmIChyYl9zY2FuX2FyZ3MoYXJnYywg YXJndiwgIjExIiwgJmlvLCAmdl9jdHgpID09IDEpCi0rICAgIGlmIChyYl9zY2FuX2FyZ3MoYXJn YywgYXJndiwgIjExOiIsICZpbywgJnZfY3R4LCAmb3B0cykgPT0gMSkKLSAgICAgICAgIHZfY3R4 ID0gcmJfZnVuY2FsbChjU1NMQ29udGV4dCwgcmJfaW50ZXJuKCJuZXciKSwgMCk7Ci0gCi0rICAg IGlmICgha3dfaWRzWzBdKSB7Ci0rICAgICAgICBrd19pZHNbMF0gPSByYl9pbnRlcm5fY29uc3Qo InN5bmNfY2xvc2UiKTsKLSsgICAgfQotKwotKyAgICByYl9nZXRfa3dhcmdzKG9wdHMsIGt3X2lk cywgMCwgMSwga3dfYXJncyk7Ci0rICAgIGlmIChrd19hcmdzWzBdICE9IFF1bmRlZikgewotKyAg ICAgICAgcmJfaXZhcl9zZXQoc2VsZiwgaWRfaV9zeW5jX2Nsb3NlLCBrd19hcmdzWzBdKTsKLSsg ICAgfQotKwotICAgICBHZXRTU0xDVFgodl9jdHgsIGN0eCk7Ci0gICAgIHJiX2l2YXJfc2V0KHNl bGYsIGlkX2lfY29udGV4dCwgdl9jdHgpOwotICAgICBvc3NsX3NzbGN0eF9zZXR1cCh2X2N0eCk7 Ci1AQCAtMTY5NiwxMSArMTcxMiwxNSBAQCBvc3NsX3NzbF9zZXR1cChWQUxVRSBzZWxmKQotICAg ICByZXR1cm4gUXRydWU7Ci0gfQotIAotK3N0YXRpYyBpbnQKLStlcnJub19tYXBwZWQodm9pZCkK LSt7Ci0gI2lmZGVmIF9XSU4zMgotLSNkZWZpbmUgc3NsX2dldF9lcnJvcihzc2wsIHJldCkgKGVy cm5vID0gcmJfdzMyX21hcF9lcnJubyhXU0FHZXRMYXN0RXJyb3IoKSksIFNTTF9nZXRfZXJyb3Io KHNzbCksIChyZXQpKSkKLSsgICAgcmV0dXJuIHJiX3czMl9tYXBfZXJybm8oV1NBR2V0TGFzdEVy cm9yKCkpOwotICNlbHNlCi0tI2RlZmluZSBzc2xfZ2V0X2Vycm9yKHNzbCwgcmV0KSBTU0xfZ2V0 X2Vycm9yKChzc2wpLCAocmV0KSkKLSsgICAgcmV0dXJuIGVycm5vOwotICNlbmRpZgotK30KLSAK LSBzdGF0aWMgdm9pZAotIHdyaXRlX3dvdWxkX2Jsb2NrKGludCBub25ibG9jaykKLUBAIC0xNzQx LDEzICsxNzYxLDEzIEBAIHN0YXRpYyB2b2lkCi0gaW9fd2FpdF93cml0YWJsZShWQUxVRSBpbykK LSB7Ci0gI2lmZGVmIEhBVkVfUkJfSU9fTUFZQkVfV0FJVAotLSAgICBpZiAoIXJiX2lvX21heWJl X3dhaXRfd3JpdGFibGUoZXJybm8sIGlvLCBSVUJZX0lPX1RJTUVPVVRfREVGQVVMVCkpIHsKLSsg ICAgaWYgKCFyYl9pb193YWl0KGlvLCBJTlQyTlVNKFJVQllfSU9fV1JJVEFCTEUpLCBSVUJZX0lP X1RJTUVPVVRfREVGQVVMVCkpIHsKLSAgICAgICAgIHJiX3JhaXNlKElPX1RJTUVPVVRfRVJST1Is ICJUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyB0byBiZWNvbWUgd3JpdGFibGUhIik7Ci0gICAgIH0K LSAjZWxzZQotICAgICByYl9pb190ICpmcHRyOwotICAgICBHZXRPcGVuRmlsZShpbywgZnB0cik7 Ci0tICAgIHJiX2lvX3dhaXRfd3JpdGFibGUoZnB0ci0+ZmQpOwotKyAgICByYl90aHJlYWRfZmRf d3JpdGFibGUoZnB0ci0+ZmQpOwotICNlbmRpZgotIH0KLSAKLUBAIC0xNzU1LDEzICsxNzc1LDEz IEBAIHN0YXRpYyB2b2lkCi0gaW9fd2FpdF9yZWFkYWJsZShWQUxVRSBpbykKLSB7Ci0gI2lmZGVm IEhBVkVfUkJfSU9fTUFZQkVfV0FJVAotLSAgICBpZiAoIXJiX2lvX21heWJlX3dhaXRfcmVhZGFi bGUoZXJybm8sIGlvLCBSVUJZX0lPX1RJTUVPVVRfREVGQVVMVCkpIHsKLSsgICAgaWYgKCFyYl9p b193YWl0KGlvLCBJTlQyTlVNKFJVQllfSU9fUkVBREFCTEUpLCBSVUJZX0lPX1RJTUVPVVRfREVG QVVMVCkpIHsKLSAgICAgICAgIHJiX3JhaXNlKElPX1RJTUVPVVRfRVJST1IsICJUaW1lZCBvdXQg d2hpbGUgd2FpdGluZyB0byBiZWNvbWUgcmVhZGFibGUhIik7Ci0gICAgIH0KLSAjZWxzZQotICAg ICByYl9pb190ICpmcHRyOwotICAgICBHZXRPcGVuRmlsZShpbywgZnB0cik7Ci0tICAgIHJiX2lv X3dhaXRfcmVhZGFibGUoZnB0ci0+ZmQpOwotKyAgICByYl90aHJlYWRfd2FpdF9mZChmcHRyLT5m ZCk7Ci0gI2VuZGlmCi0gfQotIAotQEAgLTE3NjksNyArMTc4OSw2IEBAIHN0YXRpYyBWQUxVRQot IG9zc2xfc3RhcnRfc3NsKFZBTFVFIHNlbGYsIGludCAoKmZ1bmMpKFNTTCAqKSwgY29uc3QgY2hh ciAqZnVuY25hbWUsIFZBTFVFIG9wdHMpCi0gewotICAgICBTU0wgKnNzbDsKLS0gICAgaW50IHJl dCwgcmV0MjsKLSAgICAgVkFMVUUgY2Jfc3RhdGU7Ci0gICAgIGludCBub25ibG9jayA9IG9wdHMg IT0gUWZhbHNlOwotIAotQEAgLTE3NzksNyArMTc5OCw4IEBAIG9zc2xfc3RhcnRfc3NsKFZBTFVF IHNlbGYsIGludCAoKmZ1bmMpKFNTTCAqKSwgY29uc3QgY2hhciAqZnVuY25hbWUsIFZBTFVFIG9w dHMpCi0gCi0gICAgIFZBTFVFIGlvID0gcmJfYXR0cl9nZXQoc2VsZiwgaWRfaV9pbyk7Ci0gICAg IGZvciAoOzspIHsKLS0gICAgICAgIHJldCA9IGZ1bmMoc3NsKTsKLSsgICAgICAgIGludCByZXQg PSBmdW5jKHNzbCk7Ci0rICAgICAgICBpbnQgc2F2ZWRfZXJybm8gPSBlcnJub19tYXBwZWQoKTsK LSAKLSAgICAgICAgIGNiX3N0YXRlID0gcmJfYXR0cl9nZXQoc2VsZiwgSURfY2FsbGJhY2tfc3Rh dGUpOwotICAgICAgICAgaWYgKCFOSUxfUChjYl9zdGF0ZSkpIHsKLUBAIC0xNzkxLDcgKzE4MTEs OCBAQCBvc3NsX3N0YXJ0X3NzbChWQUxVRSBzZWxmLCBpbnQgKCpmdW5jKShTU0wgKiksIGNvbnN0 IGNoYXIgKmZ1bmNuYW1lLCBWQUxVRSBvcHRzKQotICAgICAgICAgaWYgKHJldCA+IDApCi0gICAg ICAgICAgICAgYnJlYWs7Ci0gCi0tICAgICAgICBzd2l0Y2ggKChyZXQyID0gc3NsX2dldF9lcnJv cihzc2wsIHJldCkpKSB7Ci0rICAgICAgICBpbnQgY29kZSA9IFNTTF9nZXRfZXJyb3Ioc3NsLCBy ZXQpOwotKyAgICAgICAgc3dpdGNoIChjb2RlKSB7Ci0gICAgICAgICAgIGNhc2UgU1NMX0VSUk9S X1dBTlRfV1JJVEU6Ci0gICAgICAgICAgICAgaWYgKG5vX2V4Y2VwdGlvbl9wKG9wdHMpKSB7IHJl dHVybiBzeW1fd2FpdF93cml0YWJsZTsgfQotICAgICAgICAgICAgIHdyaXRlX3dvdWxkX2Jsb2Nr KG5vbmJsb2NrKTsKLUBAIC0xODA1LDEwICsxODI2LDExIEBAIG9zc2xfc3RhcnRfc3NsKFZBTFVF IHNlbGYsIGludCAoKmZ1bmMpKFNTTCAqKSwgY29uc3QgY2hhciAqZnVuY25hbWUsIFZBTFVFIG9w dHMpCi0gICAgICAgICAgIGNhc2UgU1NMX0VSUk9SX1NZU0NBTEw6Ci0gI2lmZGVmIF9fQVBQTEVf XwotICAgICAgICAgICAgIC8qIFNlZSBvc3NsX3NzbF93cml0ZV9pbnRlcm5hbCgpICovCi0tICAg ICAgICAgICAgaWYgKGVycm5vID09IEVQUk9UT1RZUEUpCi0rICAgICAgICAgICAgaWYgKHNhdmVk X2Vycm5vID09IEVQUk9UT1RZUEUpCi0gICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICNlbmRp ZgotLSAgICAgICAgICAgIGlmIChlcnJubykgcmJfc3lzX2ZhaWwoZnVuY25hbWUpOwotKyAgICAg ICAgICAgIGlmIChzYXZlZF9lcnJubykKLSsgICAgICAgICAgICAgICAgcmJfZXhjX3JhaXNlKHJi X3N5c2Vycl9uZXcoc2F2ZWRfZXJybm8sIGZ1bmNuYW1lKSk7Ci0gICAgICAgICAgICAgLyogZmFs bHRocm91Z2ggKi8KLSAgICAgICAgICAgZGVmYXVsdDogewotICAgICAgICAgICAgICAgVkFMVUUg ZXJyb3JfYXBwZW5kID0gUW5pbDsKLUBAIC0xODI5LDEwICsxODUxLDEwIEBAIG9zc2xfc3RhcnRf c3NsKFZBTFVFIHNlbGYsIGludCAoKmZ1bmMpKFNTTCAqKSwgY29uc3QgY2hhciAqZnVuY25hbWUs IFZBTFVFIG9wdHMpCi0gICAgICAgICAgICAgICBvc3NsX3JhaXNlKGVTU0xFcnJvciwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgIiVzJXMgcmV0dXJuZWQ9JWQgZXJybm89JWQgcGVlcmFkZHI9 JSJQUklzVkFMVUUiIHN0YXRlPSVzJSJQUklzVkFMVUUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgIGZ1bmNuYW1lLAotLSAgICAgICAgICAgICAgICAgICAgICAgICByZXQyID09IFNTTF9FUlJP Ul9TWVNDQUxMID8gIiBTWVNDQUxMIiA6ICIiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICBy ZXQyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICBlcnJubywKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgcGVlcmFkZHJfaXBfc3RyKHNlbGYpLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICBjb2RlID09IFNTTF9FUlJPUl9TWVNDQUxMID8gIiBTWVNDQUxMIiA6ICIiLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICBjb2RlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICBzYXZlZF9l cnJubywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgcGVlcmFkZHJfaXBfc3RyKGlvKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgU1NMX3N0YXRlX3N0cmluZ19sb25nKHNzbCksCi0gICAg ICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2FwcGVuZCk7Ci0gICAgICAgICAgIH0KLUBAIC0x OTc0LDYgKzE5OTYsNyBAQCBvc3NsX3NzbF9yZWFkX2ludGVybmFsKGludCBhcmdjLCBWQUxVRSAq YXJndiwgVkFMVUUgc2VsZiwgaW50IG5vbmJsb2NrKQotICAgICBmb3IgKDs7KSB7Ci0gICAgICAg ICByYl9zdHJfbG9ja3RtcChzdHIpOwotICAgICAgICAgaW50IG5yZWFkID0gU1NMX3JlYWQoc3Ns LCBSU1RSSU5HX1BUUihzdHIpLCBpbGVuKTsKLSsgICAgICAgIGludCBzYXZlZF9lcnJubyA9IGVy cm5vX21hcHBlZCgpOwotICAgICAgICAgcmJfc3RyX3VubG9ja3RtcChzdHIpOwotIAotICAgICAg ICAgY2Jfc3RhdGUgPSByYl9hdHRyX2dldChzZWxmLCBJRF9jYWxsYmFja19zdGF0ZSk7Ci1AQCAt MTk4Myw3ICsyMDA2LDcgQEAgb3NzbF9zc2xfcmVhZF9pbnRlcm5hbChpbnQgYXJnYywgVkFMVUUg KmFyZ3YsIFZBTFVFIHNlbGYsIGludCBub25ibG9jaykKLSAgICAgICAgICAgICByYl9qdW1wX3Rh ZyhOVU0ySU5UKGNiX3N0YXRlKSk7Ci0gICAgICAgICB9Ci0gCi0tICAgICAgICBzd2l0Y2ggKHNz bF9nZXRfZXJyb3Ioc3NsLCBucmVhZCkpIHsKLSsgICAgICAgIHN3aXRjaCAoU1NMX2dldF9lcnJv cihzc2wsIG5yZWFkKSkgewotICAgICAgICAgICBjYXNlIFNTTF9FUlJPUl9OT05FOgotICAgICAg ICAgICAgIHJiX3N0cl9zZXRfbGVuKHN0ciwgbnJlYWQpOwotICAgICAgICAgICAgIHJldHVybiBz dHI7Ci1AQCAtMjAwNiw4ICsyMDI5LDggQEAgb3NzbF9zc2xfcmVhZF9pbnRlcm5hbChpbnQgYXJn YywgVkFMVUUgKmFyZ3YsIFZBTFVFIHNlbGYsIGludCBub25ibG9jaykKLSAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgICAgY2FzZSBTU0xfRVJST1JfU1lTQ0FMTDoKLSAgICAgICAgICAgICBp ZiAoIUVSUl9wZWVrX2Vycm9yKCkpIHsKLS0gICAgICAgICAgICAgICAgaWYgKGVycm5vKQotLSAg ICAgICAgICAgICAgICAgICAgcmJfc3lzX2ZhaWwoMCk7Ci0rICAgICAgICAgICAgICAgIGlmIChz YXZlZF9lcnJubykKLSsgICAgICAgICAgICAgICAgICAgIHJiX2V4Y19yYWlzZShyYl9zeXNlcnJf bmV3KHNhdmVkX2Vycm5vLCAiU1NMX3JlYWQiKSk7Ci0gICAgICAgICAgICAgICAgIGVsc2Ugewot ICAgICAgICAgICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAgICAgICAgICAqIFRoZSB1bmRl cmx5aW5nIEJJTyByZXR1cm5lZCAwLiBUaGlzIGlzIGFjdHVhbGx5IGEKLUBAIC0yMDkyLDYgKzIx MTUsNyBAQCBvc3NsX3NzbF93cml0ZV9pbnRlcm5hbF9zYWZlKFZBTFVFIF9hcmdzKQotIAotICAg ICBmb3IgKDs7KSB7Ci0gICAgICAgICBpbnQgbndyaXR0ZW4gPSBTU0xfd3JpdGUoc3NsLCBSU1RS SU5HX1BUUihzdHIpLCBudW0pOwotKyAgICAgICAgaW50IHNhdmVkX2Vycm5vID0gZXJybm9fbWFw cGVkKCk7Ci0gCi0gICAgICAgICBjYl9zdGF0ZSA9IHJiX2F0dHJfZ2V0KHNlbGYsIElEX2NhbGxi YWNrX3N0YXRlKTsKLSAgICAgICAgIGlmICghTklMX1AoY2Jfc3RhdGUpKSB7Ci1AQCAtMjEwMCw3 ICsyMTI0LDcgQEAgb3NzbF9zc2xfd3JpdGVfaW50ZXJuYWxfc2FmZShWQUxVRSBfYXJncykKLSAg ICAgICAgICAgICByYl9qdW1wX3RhZyhOVU0ySU5UKGNiX3N0YXRlKSk7Ci0gICAgICAgICB9Ci0g Ci0tICAgICAgICBzd2l0Y2ggKHNzbF9nZXRfZXJyb3Ioc3NsLCBud3JpdHRlbikpIHsKLSsgICAg ICAgIHN3aXRjaCAoU1NMX2dldF9lcnJvcihzc2wsIG53cml0dGVuKSkgewotICAgICAgICAgICBj YXNlIFNTTF9FUlJPUl9OT05FOgotICAgICAgICAgICAgIHJldHVybiBJTlQyTlVNKG53cml0dGVu KTsKLSAgICAgICAgICAgY2FzZSBTU0xfRVJST1JfV0FOVF9XUklURToKLUBAIC0yMTIxLDEwICsy MTQ1LDExIEBAIG9zc2xfc3NsX3dyaXRlX2ludGVybmFsX3NhZmUoVkFMVUUgX2FyZ3MpCi0gICAg ICAgICAgICAgICogbWFrZSB0aGUgZXJyb3IgaGFuZGxpbmcgaW4gbGluZSB3aXRoIHRoZSBzb2Nr ZXQgbGlicmFyeS4KLSAgICAgICAgICAgICAgKiBbQnVnICMxNDcxM10gaHR0cHM6Ly9idWdzLnJ1 YnktbGFuZy5vcmcvaXNzdWVzLzE0NzEzCi0gICAgICAgICAgICAgICovCi0tICAgICAgICAgICAg aWYgKGVycm5vID09IEVQUk9UT1RZUEUpCi0rICAgICAgICAgICAgaWYgKHNhdmVkX2Vycm5vID09 IEVQUk9UT1RZUEUpCi0gICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICNlbmRpZgotLSAgICAg ICAgICAgIGlmIChlcnJubykgcmJfc3lzX2ZhaWwoMCk7Ci0rICAgICAgICAgICAgaWYgKHNhdmVk X2Vycm5vKQotKyAgICAgICAgICAgICAgICByYl9leGNfcmFpc2UocmJfc3lzZXJyX25ldyhzYXZl ZF9lcnJubywgIlNTTF93cml0ZSIpKTsKLSAgICAgICAgICAgICAvKiBmYWxsdGhyb3VnaCAqLwot ICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgIG9zc2xfcmFpc2UoZVNTTEVycm9yLCAi U1NMX3dyaXRlIik7Ci1AQCAtMzMwMCw1ICszMzI1LDYgQEAgSW5pdF9vc3NsX3NzbCh2b2lkKQot ICAgICBEZWZJVmFySUQoaW8pOwotICAgICBEZWZJVmFySUQoY29udGV4dCk7Ci0gICAgIERlZklW YXJJRChob3N0bmFtZSk7Ci0rICAgIERlZklWYXJJRChzeW5jX2Nsb3NlKTsKLSAjZW5kaWYgLyog IWRlZmluZWQoT1BFTlNTTF9OT19TT0NLKSAqLwotIH0KLWRpZmYgLS1naXQgYS90ZXN0L29wZW5z c2wvdGVzdF9jaXBoZXIucmIgYi90ZXN0L29wZW5zc2wvdGVzdF9jaXBoZXIucmIKLWluZGV4IDkz NzY2Y2ZjODhjZTE3Li42YTQwNWRhMGE5NzYzZiAxMDA2NDQKLS0tLSBhL3Rlc3Qvb3BlbnNzbC90 ZXN0X2NpcGhlci5yYgotKysrIGIvdGVzdC9vcGVuc3NsL3Rlc3RfY2lwaGVyLnJiCi1AQCAtMzIs MjggKzMyLDI4IEBAIGRlZiB0ZXN0X3BrY3M1X2tleWl2Z2VuCi0gICAgIHNhbHQgPSAiXHgwMSIg KiA4Ci0gICAgIG51bSA9IDIwNDgKLSAgICAgcHQgPSAiZGF0YSB0byBiZSBlbmNyeXB0ZWQiCi0t ICAgIGNpcGhlciA9IE9wZW5TU0w6OkNpcGhlci5uZXcoIkRFUy1FREUzLUNCQyIpLmVuY3J5cHQK LS0gICAgY2lwaGVyLnBrY3M1X2tleWl2Z2VuKHBhc3MsIHNhbHQsIG51bSwgIk1ENSIpCi0rICAg IGNpcGhlciA9IE9wZW5TU0w6OkNpcGhlci5uZXcoIkFFUy0yNTYtQ0JDIikuZW5jcnlwdAotKyAg ICBjaXBoZXIucGtjczVfa2V5aXZnZW4ocGFzcywgc2FsdCwgbnVtLCAiU0hBMjU2IikKLSAgICAg czEgPSBjaXBoZXIudXBkYXRlKHB0KSA8PCBjaXBoZXIuZmluYWwKLSAKLS0gICAgZDEgPSBudW0u dGltZXMuaW5qZWN0KHBhc3MgKyBzYWx0KSB7fG91dCwgX3wgT3BlblNTTDo6RGlnZXN0LmRpZ2Vz dCgnTUQ1Jywgb3V0KSB9Ci0tICAgIGQyID0gbnVtLnRpbWVzLmluamVjdChkMSArIHBhc3MgKyBz YWx0KSB7fG91dCwgX3wgT3BlblNTTDo6RGlnZXN0LmRpZ2VzdCgnTUQ1Jywgb3V0KSB9Ci0tICAg IGtleSA9IChkMSArIGQyKVswLCAyNF0KLS0gICAgaXYgPSAoZDEgKyBkMilbMjQsIDhdCi0tICAg IGNpcGhlciA9IG5ld19lbmNyeXB0b3IoIkRFUy1FREUzLUNCQyIsIGtleToga2V5LCBpdjogaXYp Ci0rICAgIGQxID0gbnVtLnRpbWVzLmluamVjdChwYXNzICsgc2FsdCkge3xvdXQsIF98IE9wZW5T U0w6OkRpZ2VzdC5kaWdlc3QoJ1NIQTI1NicsIG91dCkgfQotKyAgICBkMiA9IG51bS50aW1lcy5p bmplY3QoZDEgKyBwYXNzICsgc2FsdCkge3xvdXQsIF98IE9wZW5TU0w6OkRpZ2VzdC5kaWdlc3Qo J1NIQTI1NicsIG91dCkgfQotKyAgICBrZXkgPSAoZDEgKyBkMilbMCwgMzJdCi0rICAgIGl2ID0g KGQxICsgZDIpWzMyLCAxNl0KLSsgICAgY2lwaGVyID0gbmV3X2VuY3J5cHRvcigiQUVTLTI1Ni1D QkMiLCBrZXk6IGtleSwgaXY6IGl2KQotICAgICBzMiA9IGNpcGhlci51cGRhdGUocHQpIDw8IGNp cGhlci5maW5hbAotIAotICAgICBhc3NlcnRfZXF1YWwgczEsIHMyCi0gCi0tICAgIGNpcGhlcjIg PSBPcGVuU1NMOjpDaXBoZXIubmV3KCJERVMtRURFMy1DQkMiKS5lbmNyeXB0Ci0tICAgIGFzc2Vy dF9yYWlzZShBcmd1bWVudEVycm9yKSB7IGNpcGhlcjIucGtjczVfa2V5aXZnZW4ocGFzcywgc2Fs dCwgLTEsICJNRDUiKSB9Ci0rICAgIGNpcGhlcjIgPSBPcGVuU1NMOjpDaXBoZXIubmV3KCJBRVMt MjU2LUNCQyIpLmVuY3J5cHQKLSsgICAgYXNzZXJ0X3JhaXNlKEFyZ3VtZW50RXJyb3IpIHsgY2lw aGVyMi5wa2NzNV9rZXlpdmdlbihwYXNzLCBzYWx0LCAtMSwgIlNIQTI1NiIpIH0KLSAgIGVuZAot IAotICAgZGVmIHRlc3RfaW5mbwotLSAgICBjaXBoZXIgPSBPcGVuU1NMOjpDaXBoZXIubmV3KCJE RVMtRURFMy1DQkMiKS5lbmNyeXB0Ci0tICAgIGFzc2VydF9lcXVhbCAiREVTLUVERTMtQ0JDIiwg Y2lwaGVyLm5hbWUKLS0gICAgYXNzZXJ0X2VxdWFsIDI0LCBjaXBoZXIua2V5X2xlbgotLSAgICBh c3NlcnRfZXF1YWwgOCwgY2lwaGVyLml2X2xlbgotKyAgICBjaXBoZXIgPSBPcGVuU1NMOjpDaXBo ZXIubmV3KCJBRVMtMjU2LUNCQyIpLmVuY3J5cHQKLSsgICAgYXNzZXJ0X2VxdWFsICJBRVMtMjU2 LUNCQyIsIGNpcGhlci5uYW1lCi0rICAgIGFzc2VydF9lcXVhbCAzMiwgY2lwaGVyLmtleV9sZW4K LSsgICAgYXNzZXJ0X2VxdWFsIDE2LCBjaXBoZXIuaXZfbGVuCi0gICBlbmQKLSAKLSAgIGRlZiB0 ZXN0X2R1cAotQEAgLTgwLDEzICs4MCwxMyBAQCBkZWYgdGVzdF9yZXNldAotICAgZW5kCi0gCi0g ICBkZWYgdGVzdF9rZXlfaXZfc2V0Ci0tICAgIGNpcGhlciA9IE9wZW5TU0w6OkNpcGhlci5uZXco IkRFUy1FREUzLUNCQyIpLmVuY3J5cHQKLS0gICAgYXNzZXJ0X3JhaXNlKEFyZ3VtZW50RXJyb3Ip IHsgY2lwaGVyLmtleSA9ICJceDAxIiAqIDIzIH0KLS0gICAgYXNzZXJ0X25vdGhpbmdfcmFpc2Vk IHsgY2lwaGVyLmtleSA9ICJceDAxIiAqIDI0IH0KLS0gICAgYXNzZXJ0X3JhaXNlKEFyZ3VtZW50 RXJyb3IpIHsgY2lwaGVyLmtleSA9ICJceDAxIiAqIDI1IH0KLS0gICAgYXNzZXJ0X3JhaXNlKEFy Z3VtZW50RXJyb3IpIHsgY2lwaGVyLml2ID0gIlx4MDEiICogNyB9Ci0tICAgIGFzc2VydF9ub3Ro aW5nX3JhaXNlZCB7IGNpcGhlci5pdiA9ICJceDAxIiAqIDggfQotLSAgICBhc3NlcnRfcmFpc2Uo QXJndW1lbnRFcnJvcikgeyBjaXBoZXIuaXYgPSAiXHgwMSIgKiA5IH0KLSsgICAgY2lwaGVyID0g T3BlblNTTDo6Q2lwaGVyLm5ldygiQUVTLTI1Ni1DQkMiKS5lbmNyeXB0Ci0rICAgIGFzc2VydF9y YWlzZShBcmd1bWVudEVycm9yKSB7IGNpcGhlci5rZXkgPSAiXHgwMSIgKiAzMSB9Ci0rICAgIGFz c2VydF9ub3RoaW5nX3JhaXNlZCB7IGNpcGhlci5rZXkgPSAiXHgwMSIgKiAzMiB9Ci0rICAgIGFz c2VydF9yYWlzZShBcmd1bWVudEVycm9yKSB7IGNpcGhlci5rZXkgPSAiXHgwMSIgKiAzMyB9Ci0r ICAgIGFzc2VydF9yYWlzZShBcmd1bWVudEVycm9yKSB7IGNpcGhlci5pdiA9ICJceDAxIiAqIDE1 IH0KLSsgICAgYXNzZXJ0X25vdGhpbmdfcmFpc2VkIHsgY2lwaGVyLml2ID0gIlx4MDEiICogMTYg fQotKyAgICBhc3NlcnRfcmFpc2UoQXJndW1lbnRFcnJvcikgeyBjaXBoZXIuaXYgPSAiXHgwMSIg KiAxNyB9Ci0gICBlbmQKLSAKLSAgIGRlZiB0ZXN0X3JhbmRvbV9rZXlfaXYKLUBAIC0xMDksOCAr MTA5LDggQEAgZGVmIHRlc3RfcmFuZG9tX2tleV9pdgotICAgZW5kCi0gCi0gICBkZWYgdGVzdF9p bml0aWFsaXplCi0tICAgIGNpcGhlciA9IE9wZW5TU0w6OkNpcGhlci5uZXcoIkRFUy1FREUzLUNC QyIpCi0tICAgIGFzc2VydF9yYWlzZShSdW50aW1lRXJyb3IpIHsgY2lwaGVyLl9fc2VuZF9fKDpp bml0aWFsaXplLCAiREVTLUVERTMtQ0JDIikgfQotKyAgICBjaXBoZXIgPSBPcGVuU1NMOjpDaXBo ZXIubmV3KCJBRVMtMjU2LUNCQyIpCi0rICAgIGFzc2VydF9yYWlzZShSdW50aW1lRXJyb3IpIHsg Y2lwaGVyLl9fc2VuZF9fKDppbml0aWFsaXplLCAiQUVTLTI1Ni1DQkMiKSB9Ci0gICAgIGFzc2Vy dF9yYWlzZShSdW50aW1lRXJyb3IpIHsgT3BlblNTTDo6Q2lwaGVyLmFsbG9jYXRlLmZpbmFsIH0K LSAgICAgYXNzZXJ0X3JhaXNlKE9wZW5TU0w6OkNpcGhlcjo6Q2lwaGVyRXJyb3IpIHsKLSAgICAg ICBPcGVuU1NMOjpDaXBoZXIubmV3KCJubyBzdWNoIGFsZ29yaXRobSIpCi1AQCAtMTM0LDEzICsx MzQsMTQgQEAgZGVmIHRlc3RfY3RyX2lmX2V4aXN0cwotICAgZGVmIHRlc3RfdXBkYXRlX3dpdGhf YnVmZmVyCi0gICAgIGNpcGhlciA9IE9wZW5TU0w6OkNpcGhlci5uZXcoImFlcy0xMjgtZWNiIiku ZW5jcnlwdAotICAgICBjaXBoZXIucmFuZG9tX2tleQotLSAgICBleHBlY3RlZCA9IGNpcGhlci51 cGRhdGUoImRhdGEiKSA8PCBjaXBoZXIuZmluYWwKLS0gICAgYXNzZXJ0X2VxdWFsIDE2LCBleHBl Y3RlZC5ieXRlc2l6ZQotKyAgICBleHBlY3RlZCA9IGNpcGhlci51cGRhdGUoImRhdGEiICogMTAp IDw8IGNpcGhlci5maW5hbAotKyAgICBhc3NlcnRfZXF1YWwgNDgsIGV4cGVjdGVkLmJ5dGVzaXpl Ci0gCi0gICAgICMgQnVmZmVyIGlzIHN1cHBsaWVkCi0gICAgIGNpcGhlci5yZXNldAotICAgICBi dWYgPSBTdHJpbmcubmV3Ci0tICAgIGFzc2VydF9zYW1lIGJ1ZiwgY2lwaGVyLnVwZGF0ZSgiZGF0 YSIsIGJ1ZikKLSsgICAgYXNzZXJ0X3NhbWUgYnVmLCBjaXBoZXIudXBkYXRlKCJkYXRhIiAqIDEw LCBidWYpCi0rICAgIGFzc2VydF9lcXVhbCAzMiwgYnVmLmJ5dGVzaXplCi0gICAgIGFzc2VydF9l cXVhbCBleHBlY3RlZCwgYnVmICsgY2lwaGVyLmZpbmFsCi0gCi0gICAgICMgQnVmZmVyIGlzIGZy b3plbgotQEAgLTE0OSw5ICsxNTAsOSBAQCBkZWYgdGVzdF91cGRhdGVfd2l0aF9idWZmZXIKLSAK LSAgICAgIyBCdWZmZXIgaXMgYSBzaGFyZWQgc3RyaW5nIFtydWJ5LWNvcmU6MTIwMTQxXSBbQnVn ICMyMDkzN10KLSAgICAgY2lwaGVyLnJlc2V0Ci0tICAgIGJ1ZiA9ICJ4IiAqIDEwMjQKLS0gICAg c2hhcmVkID0gYnVmWy0oImRhdGEiLmJ5dGVzaXplICsgMzIpLi4tMV0KLS0gICAgYXNzZXJ0X3Nh bWUgc2hhcmVkLCBjaXBoZXIudXBkYXRlKCJkYXRhIiwgc2hhcmVkKQotKyAgICBidWYgPSAieCIu YiAqIDEwMjQKLSsgICAgc2hhcmVkID0gYnVmWy0oImRhdGEiLmJ5dGVzaXplICogMTAgKyAzMiku Li0xXQotKyAgICBhc3NlcnRfc2FtZSBzaGFyZWQsIGNpcGhlci51cGRhdGUoImRhdGEiICogMTAs IHNoYXJlZCkKLSAgICAgYXNzZXJ0X2VxdWFsIGV4cGVjdGVkLCBzaGFyZWQgKyBjaXBoZXIuZmlu YWwKLSAgIGVuZAotIAotQEAgLTE2OCwxMiArMTY5LDEyIEBAIGRlZiB0ZXN0X0FFUwotICAgICAl dyhlY2IgY2JjIGNmYiBvZmIpLmVhY2h7fG1vZGV8Ci0gICAgICAgYzEgPSBPcGVuU1NMOjpDaXBo ZXIubmV3KCJhZXMtMjU2LSN7bW9kZX0iKQotICAgICAgIGMxLmVuY3J5cHQKLS0gICAgICBjMS5w a2NzNV9rZXlpdmdlbigicGFzc3dkIikKLSsgICAgICBjMS5wa2NzNV9rZXlpdmdlbigicGFzc3dk IiwgIjEyMzQ1Njc4IiwgMTAwMDAsICJTSEEyNTYiKQotICAgICAgIGN0ID0gYzEudXBkYXRlKHB0 KSArIGMxLmZpbmFsCi0gCi0gICAgICAgYzIgPSBPcGVuU1NMOjpDaXBoZXIubmV3KCJhZXMtMjU2 LSN7bW9kZX0iKQotICAgICAgIGMyLmRlY3J5cHQKLS0gICAgICBjMi5wa2NzNV9rZXlpdmdlbigi cGFzc3dkIikKLSsgICAgICBjMi5wa2NzNV9rZXlpdmdlbigicGFzc3dkIiwgIjEyMzQ1Njc4Iiwg MTAwMDAsICJTSEEyNTYiKQotICAgICAgIGFzc2VydF9lcXVhbChwdCwgYzIudXBkYXRlKGN0KSAr IGMyLmZpbmFsKQotICAgICB9Ci0gICBlbmQKLUBAIC0zMTIsNiArMzEzLDkgQEAgZGVmIHRlc3Rf YWVzX2djbV92YXJpYWJsZV9pdl9sZW4KLSAgIGVuZAotIAotICAgZGVmIHRlc3RfYWVzX29jYl90 YWdfbGVuCi0rICAgICMgQUVTLTEyOC1PQ0IgaXMgbm90IEZJUFMtYXBwcm92ZWQuCi0rICAgIG9t aXRfb25fZmlwcwotKwotICAgICAjIFJGQyA3MjUzIEFwcGVuZGl4IEE7IHRoZSBzZWNvbmQgc2Ft cGxlCi0gICAgIGtleSA9IFsiMDAwMTAyMDMwNDA1MDYwNzA4MDkwQTBCMEMwRDBFMEYiXS5wYWNr KCJIKiIpCi0gICAgIGl2ICA9IFsiQkJBQTk5ODg3NzY2NTU0NDMzMjIxMTAxIl0ucGFjaygiSCoi KQotQEAgLTM0Niw2ICszNTAsOSBAQCBkZWYgdGVzdF9hZXNfb2NiX3RhZ19sZW4KLSAgIGVuZCBp ZiBoYXNfY2lwaGVyPygiYWVzLTEyOC1vY2IiKQotIAotICAgZGVmIHRlc3RfYWVzX2djbV9zaXYK LSsgICAgIyBBRVMtMTI4LUdDTS1TSVYgaXMgbm90IEZJUFMtYXBwcm92ZWQuCi0rICAgIG9taXRf b25fZmlwcwotKwotICAgICAjIFJGQyA4NDUyIEFwcGVuZGl4IEMuMS4sIDh0aCBleGFtcGxlCi0g ICAgIGtleSA9IFsiMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXS5wYWNrKCJIKiIp Ci0gICAgIGl2ICA9IFsiMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0ucGFjaygiSCoiKQotZGlm ZiAtLWdpdCBhL3Rlc3Qvb3BlbnNzbC90ZXN0X2RpZ2VzdC5yYiBiL3Rlc3Qvb3BlbnNzbC90ZXN0 X2RpZ2VzdC5yYgotaW5kZXggMmVmODRjZmE0YzdkMmEuLjkxZWQyNDc0MTQyYzVlIDEwMDY0NAot LS0tIGEvdGVzdC9vcGVuc3NsL3Rlc3RfZGlnZXN0LnJiCi0rKysgYi90ZXN0L29wZW5zc2wvdGVz dF9kaWdlc3QucmIKLUBAIC02LDggKzYsOCBAQAotIGNsYXNzIE9wZW5TU0w6OlRlc3REaWdlc3Qg PCBPcGVuU1NMOjpUZXN0Q2FzZQotICAgZGVmIHNldHVwCi0gICAgIHN1cGVyCi0tICAgIEBkMSA9 IE9wZW5TU0w6OkRpZ2VzdC5uZXcoIk1ENSIpCi0tICAgIEBkMiA9IE9wZW5TU0w6OkRpZ2VzdDo6 TUQ1Lm5ldwotKyAgICBAZDEgPSBPcGVuU1NMOjpEaWdlc3QubmV3KCJTSEEyNTYiKQotKyAgICBA ZDIgPSBPcGVuU1NMOjpEaWdlc3Q6OlNIQTI1Ni5uZXcKLSAgIGVuZAotIAotICAgZGVmIHRlc3Rf aW5pdGlhbGl6ZQotQEAgLTE3LDE4ICsxNywyMCBAQCBkZWYgdGVzdF9pbml0aWFsaXplCi0gICBl bmQKLSAKLSAgIGRlZiB0ZXN0X2RpZ2VzdAotLSAgICBudWxsX2hleCA9ICJkNDFkOGNkOThmMDBi MjA0ZTk4MDA5OThlY2Y4NDI3ZSIKLSsgICAgIyBTSEEyNTYgbnVsbCB2YWx1ZSBjYWxjdWxhdGVk IGJ5IGBlY2hvIC1uICIiIHwgc2hhMjU2c3VtYAotKyAgICBudWxsX2hleCA9ICJlM2IwYzQ0Mjk4 ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1Igot ICAgICBudWxsX2JpbiA9IFtudWxsX2hleF0ucGFjaygiSCoiKQotICAgICBkYXRhID0gIkRBVEEi Ci0tICAgIGhleCA9ICJlNDRmOWUzNDhlNDFjYjI3MmVmYTg3Mzg3NzI4NTcxYiIKLSsgICAgIyBT SEEyNTYgREFUQSB2YWx1ZSBjYWxjdWxhdGVkIGJ5IGBlY2hvIC1uICJEQVRBIiB8IHNoYTI1NnN1 bWAKLSsgICAgaGV4ID0gImM5N2MyOWM3YTcxYjM5MmI0MzdlZTAzZmQxN2YwOWJiMTBiNzVlODc5 NDY2ZmMwZWI3NTdiMmM0YTc4YWM5MzgiCi0gICAgIGJpbiA9IFtoZXhdLnBhY2soIkgqIikKLSAg ICAgYXNzZXJ0X2VxdWFsKG51bGxfYmluLCBAZDEuZGlnZXN0KQotICAgICBhc3NlcnRfZXF1YWwo bnVsbF9oZXgsIEBkMS5oZXhkaWdlc3QpCi0gICAgIEBkMSA8PCBkYXRhCi0gICAgIGFzc2VydF9l cXVhbChiaW4sIEBkMS5kaWdlc3QpCi0gICAgIGFzc2VydF9lcXVhbChoZXgsIEBkMS5oZXhkaWdl c3QpCi0tICAgIGFzc2VydF9lcXVhbChiaW4sIE9wZW5TU0w6OkRpZ2VzdC5kaWdlc3QoJ01ENScs IGRhdGEpKQotLSAgICBhc3NlcnRfZXF1YWwoaGV4LCBPcGVuU1NMOjpEaWdlc3QuaGV4ZGlnZXN0 KCdNRDUnLCBkYXRhKSkKLSsgICAgYXNzZXJ0X2VxdWFsKGJpbiwgT3BlblNTTDo6RGlnZXN0LmRp Z2VzdCgnU0hBMjU2JywgZGF0YSkpCi0rICAgIGFzc2VydF9lcXVhbChoZXgsIE9wZW5TU0w6OkRp Z2VzdC5oZXhkaWdlc3QoJ1NIQTI1NicsIGRhdGEpKQotICAgZW5kCi0gCi0gICBkZWYgdGVzdF9l cWwKLUBAIC0zOCw5ICs0MCw5IEBAIGRlZiB0ZXN0X2VxbAotICAgZW5kCi0gCi0gICBkZWYgdGVz dF9pbmZvCi0tICAgIGFzc2VydF9lcXVhbCgiTUQ1IiwgQGQxLm5hbWUsICJuYW1lIikKLS0gICAg YXNzZXJ0X2VxdWFsKCJNRDUiLCBAZDIubmFtZSwgIm5hbWUiKQotLSAgICBhc3NlcnRfZXF1YWwo MTYsIEBkMS5zaXplLCAic2l6ZSIpCi0rICAgIGFzc2VydF9lcXVhbCgiU0hBMjU2IiwgQGQxLm5h bWUsICJuYW1lIikKLSsgICAgYXNzZXJ0X2VxdWFsKCJTSEEyNTYiLCBAZDIubmFtZSwgIm5hbWUi KQotKyAgICBhc3NlcnRfZXF1YWwoMzIsIEBkMS5zaXplLCAic2l6ZSIpCi0gICBlbmQKLSAKLSAg IGRlZiB0ZXN0X2R1cAotQEAgLTYwLDcgKzYyLDEwIEBAIGRlZiB0ZXN0X3Jlc2V0Ci0gICBlbmQK LSAKLSAgIGRlZiB0ZXN0X2RpZ2VzdF9jb25zdGFudHMKLS0gICAgJXd7TUQ1IFNIQTEgU0hBMjI0 IFNIQTI1NiBTSEEzODQgU0hBNTEyfS5lYWNoIGRvIHxuYW1lfAotKyAgICBub25fZmlwc19uYW1l cyA9ICV3e01ENX0KLSsgICAgbmFtZXMgPSAld3tTSEExIFNIQTIyNCBTSEEyNTYgU0hBMzg0IFNI QTUxMn0KLSsgICAgbmFtZXMgPSBub25fZmlwc19uYW1lcyArIG5hbWVzIHVubGVzcyBPcGVuU1NM LmZpcHNfbW9kZQotKyAgICBuYW1lcy5lYWNoIGRvIHxuYW1lfAotICAgICAgIGFzc2VydF9ub3Rf bmlsKE9wZW5TU0w6OkRpZ2VzdC5uZXcobmFtZSkpCi0gICAgICAga2xhc3MgPSBPcGVuU1NMOjpE aWdlc3QuY29uc3RfZ2V0KG5hbWUudHIoJy0nLCAnXycpKQotICAgICAgIGFzc2VydF9ub3Rfbmls KGtsYXNzLm5ldykKLUBAIC0xMjUsNiArMTMwLDkgQEAgZGVmIHRlc3Rfc2hhMwotICAgZW5kCi0g Ci0gICBkZWYgdGVzdF9mZXRjaGVkX2V2cF9tZAotKyAgICAjIEtFQ0NBSy0yNTYgaXMgbm90IEZJ UFMtYXBwcm92ZWQuCi0rICAgIG9taXRfb25fZmlwcwotKwotICAgICAjIFByZS1OSVNUIEtlY2Nh ayBpcyBhbiBleGFtcGxlIG9mIGEgZGlnZXN0IGFsZ29yaXRobSB0aGF0IGRvZXNuJ3QgaGF2ZSBh bgotICAgICAjIE5JRCBhbmQgcmVxdWlyZXMgZHluYW1pYyBhbGxvY2F0aW9uIG9mIEVWUF9NRAot ICAgICBoZXggPSAiYzVkMjQ2MDE4NmY3MjMzYzkyN2U3ZGIyZGNjNzAzYzBlNTAwYjY1M2NhODIy NzNiN2JmYWQ4MDQ1ZDg1YTQ3MCIKLWRpZmYgLS1naXQgYS90ZXN0L29wZW5zc2wvdGVzdF9maXBz LnJiIGIvdGVzdC9vcGVuc3NsL3Rlc3RfZmlwcy5yYgotaW5kZXggZWZjMjY1NWUyNWJmNTQuLjY4 M2UwMDExZThkN2ZjIDEwMDY0NAotLS0tIGEvdGVzdC9vcGVuc3NsL3Rlc3RfZmlwcy5yYgotKysr IGIvdGVzdC9vcGVuc3NsL3Rlc3RfZmlwcy5yYgotQEAgLTMwLDcgKzMwLDcgQEAgZGVmIHRlc3Rf Zmlwc19tb2RlX2dldF9pc19mYWxzZV9vbl9maXBzX21vZGVfZGlzYWJsZWQKLSAgIGRlZiB0ZXN0 X2ZpcHNfbW9kZV9pc19yZWVudHJhbnQKLSAgICAgcmV0dXJuIGlmIGF3c19sYz8gIyBBV1MtTEMn cyBGSVBTIG1vZGUgaXMgZGVjaWRlZCBhdCBjb21waWxlIHRpbWUuCi0gCi0tICAgIGFzc2VydF9z ZXBhcmF0ZWx5KFsiLXJvcGVuc3NsIl0sIDw8fiJlbmQ7IikKLSsgICAgYXNzZXJ0X3J1Ynlfc3Rh dHVzKFsiLXJvcGVuc3NsIl0sIDw8fiJlbmQ7IikKLSAgICAgICBPcGVuU1NMLmZpcHNfbW9kZSA9 IGZhbHNlCi0gICAgICAgT3BlblNTTC5maXBzX21vZGUgPSBmYWxzZQotICAgICBlbmQ7Ci1kaWZm IC0tZ2l0IGEvdGVzdC9vcGVuc3NsL3Rlc3Rfb2NzcC5yYiBiL3Rlc3Qvb3BlbnNzbC90ZXN0X29j c3AucmIKLWluZGV4IGI5YjY2YWQzN2FkMDg4Li5jNDNmZjVjYjU1MWY0MSAxMDA2NDQKLS0tLSBh L3Rlc3Qvb3BlbnNzbC90ZXN0X29jc3AucmIKLSsrKyBiL3Rlc3Qvb3BlbnNzbC90ZXN0X29jc3Au cmIKLUBAIC0yMTUsNiArMjE1LDM1IEBAIGRlZiB0ZXN0X2Jhc2ljX3Jlc3BvbnNlX2R1cAotICAg ICBhc3NlcnRfZXF1YWwgYnJlcy50b19kZXIsIGJyZXMuZHVwLnRvX2RlcgotICAgZW5kCi0gCi0r ICBkZWYgdGVzdF9iYXNpY19yZXNwb25zZV9zdGF0dXNfZ29vZAotKyAgICBicmVzID0gT3BlblNT TDo6T0NTUDo6QmFzaWNSZXNwb25zZS5uZXcKLSsgICAgY2lkID0gT3BlblNTTDo6T0NTUDo6Q2Vy dGlmaWNhdGVJZC5uZXcoQGNlcnQsIEBjYV9jZXJ0LCBPcGVuU1NMOjpEaWdlc3QubmV3KCdTSEEx JykpCi0rICAgIGJyZXMuYWRkX3N0YXR1cyhjaWQsIE9wZW5TU0w6Ok9DU1A6OlZfQ0VSVFNUQVRV U19HT09ELCAwLCBuaWwsIC0zMDAsIDUwMCwgbmlsKQotKyAgICBicmVzLnNpZ24oQG9jc3BfY2Vy dCwgQG9jc3Bfa2V5LCBbQGNhX2NlcnRdKQotKwotKyAgICBzdGF0dXNlcyA9IGJyZXMuc3RhdHVz Ci0rICAgIGFzc2VydF9lcXVhbCAxLCBzdGF0dXNlcy5zaXplCi0rICAgIHN0YXR1cyA9IHN0YXR1 c2VzWzBdCi0rICAgIGFzc2VydF9lcXVhbCBjaWQudG9fZGVyLCBzdGF0dXNbMF0udG9fZGVyCi0r ICAgIGFzc2VydF9lcXVhbCBPcGVuU1NMOjpPQ1NQOjpWX0NFUlRTVEFUVVNfR09PRCwgc3RhdHVz WzFdCi0rICAgIGFzc2VydF9uaWwgc3RhdHVzWzNdICMgcmV2dGltZSBzaG91bGQgYmUgbmlsIGZv ciBHT09EIHN0YXR1cwotKyAgZW5kCi0rCi0rICBkZWYgdGVzdF9iYXNpY19yZXNwb25zZV9zdGF0 dXNfcmV2b2tlZAotKyAgICBicmVzID0gT3BlblNTTDo6T0NTUDo6QmFzaWNSZXNwb25zZS5uZXcK LSsgICAgbm93ID0gVGltZS5hdChUaW1lLm5vdy50b19pKQotKyAgICBjaWQgPSBPcGVuU1NMOjpP Q1NQOjpDZXJ0aWZpY2F0ZUlkLm5ldyhAY2VydCwgQGNhX2NlcnQsIE9wZW5TU0w6OkRpZ2VzdC5u ZXcoJ1NIQTEnKSkKLSsgICAgYnJlcy5hZGRfc3RhdHVzKGNpZCwgT3BlblNTTDo6T0NTUDo6Vl9D RVJUU1RBVFVTX1JFVk9LRUQsCi0rICAgICAgICAgICAgICAgICAgICBPcGVuU1NMOjpPQ1NQOjpS RVZPS0VEX1NUQVRVU19VTlNQRUNJRklFRCwgbm93IC0gNDAwLCAtMzAwLCBuaWwsIG5pbCkKLSsg ICAgYnJlcy5zaWduKEBvY3NwX2NlcnQsIEBvY3NwX2tleSwgW0BjYV9jZXJ0XSkKLSsKLSsgICAg c3RhdHVzZXMgPSBicmVzLnN0YXR1cwotKyAgICBhc3NlcnRfZXF1YWwgMSwgc3RhdHVzZXMuc2l6 ZQotKyAgICBzdGF0dXMgPSBzdGF0dXNlc1swXQotKyAgICBhc3NlcnRfZXF1YWwgT3BlblNTTDo6 T0NTUDo6Vl9DRVJUU1RBVFVTX1JFVk9LRUQsIHN0YXR1c1sxXQotKyAgICBhc3NlcnRfZXF1YWwg bm93IC0gNDAwLCBzdGF0dXNbM10gIyByZXZ0aW1lIHNob3VsZCBiZSB0aGUgcmV2b2NhdGlvbiB0 aW1lCi0rICBlbmQKLSsKLSAgIGRlZiB0ZXN0X2Jhc2ljX3Jlc3BvbnNlX3Jlc3BvbnNlX29wZXJh dGlvbnMKLSAgICAgYnJlcyA9IE9wZW5TU0w6Ok9DU1A6OkJhc2ljUmVzcG9uc2UubmV3Ci0gICAg IG5vdyA9IFRpbWUuYXQoVGltZS5ub3cudG9faSkKLWRpZmYgLS1naXQgYS90ZXN0L29wZW5zc2wv dGVzdF9wa2NzMTIucmIgYi90ZXN0L29wZW5zc2wvdGVzdF9wa2NzMTIucmIKLWluZGV4IDFiNTMy ODc3NGU0ZjJhLi42MTdjMTU2Y2JkNzUyNSAxMDA2NDQKLS0tLSBhL3Rlc3Qvb3BlbnNzbC90ZXN0 X3BrY3MxMi5yYgotKysrIGIvdGVzdC9vcGVuc3NsL3Rlc3RfcGtjczEyLnJiCi1AQCAtMyw2ICsz LDI5IEBACi0gCi0gaWYgZGVmaW5lZD8oT3BlblNTTCkKLSAKLSsjIE9wZW5TU0w6OlBLQ1MxMi5j cmVhdGUgY2FsbGluZyB0aGUgUEtDUzEyX2NyZWF0ZSgpIGhhcyB0aGUgYXJndW1lbnQgbWFjX2l0 ZXIKLSsjIHdoaWNoIHVzZXMgYSBNQUMga2V5IHVzaW5nIFBLQ1MxMktERiB3aGljaCBpcyBub3Qg RklQUy1hcHByb3ZlZC4KLSsjIE9wZW5TU0w6OlBLQ1MxMi5uZXcgd2l0aCBiYXNlNjQtZW5jb2Rl ZCBleGFtcGxlIGNhbGxpbmcgUEtDUzEyX3BhcnNlKCkKLSsjIHZlcmlmaWVzIHRoZSBNQUMga2V5 IHVzaW5nIFBLQ1MxMktERiB3aGljaCBpcyBub3QgRklQUy1hcHByb3ZlZC4KLSsjCi0rIyBQQkUt U0hBMS0zREVTIHVzZXMgUEtDUzEyS0RGIHdoaWNoIGlzIG5vdCBGSVBTLWFwcHJvdmVkIGFjY29y ZGluZyB0byB0aGUgUkZDCi0rIyA3MjkyIFBLQ1MjMTIuCi0rIyBodHRwczovL2RhdGF0cmFja2Vy LmlldGYub3JnL2RvYy9odG1sL3JmYzcyOTIjYXBwZW5kaXgtQwotKyMgPiBUaGUgUEJFUzEgZW5j cnlwdGlvbiBzY2hlbWUgZGVmaW5lZCBpbiBQS0NTICM1IHByb3ZpZGVzIGEgbnVtYmVyIG9mCi0r IyA+IGFsZ29yaXRobSBpZGVudGlmaWVycyBmb3IgZGVyaXZpbmcga2V5cyBhbmQgSVZzOyBoZXJl LCB3ZSBzcGVjaWZ5IGEKLSsjID4gZmV3IG1vcmUsIGFsbCBvZiB3aGljaCB1c2UgdGhlIHByb2Nl ZHVyZSBkZXRhaWxlZCBpbiBBcHBlbmRpY2VzIEIuMgotKyMgPiBhbmQgQi4zIHRvIGNvbnN0cnVj dCBrZXlzIChhbmQgSVZzLCB3aGVyZSBuZWVkZWQpLiAgQXMgaXMgaW1wbGllZCBieQotKyMgPiB0 aGVpciBuYW1lcywgYWxsIG9mIHRoZSBvYmplY3QgaWRlbnRpZmllcnMgYmVsb3cgdXNlIHRoZSBo YXNoCi0rIyA+IGZ1bmN0aW9uIFNIQS0xLgotKyMgPiAuLi4KLSsjID4gcGJlV2l0aFNIQUFuZDMt S2V5VHJpcGxlREVTLUNCQyAgT0JKRUNUIElERU5USUZJRVIgOjo9IHtwa2NzLTEyUGJlSWRzIDN9 Ci0rIwotKyMgTm90ZSB0aGF0IHRoZSBwYmVXaXRoU0hBQW5kMy1LZXlUcmlwbGVERVMtQ0JDIChw a2NzMTItcGJlaWRzIDMpIGluIHRoZSBSRkMKLSsjIDcyOTIgUEtDUyMxMiBtZWFucyBQQkUtU0hB MS0zREVTIGluIE9wZW5TU0wuIFBLQ1MxMktERiBpcyB1c2VkIGluIFBLQ1MjMTIuCi0rIyBodHRw czovL29pZHJlZi5jb20vMS4yLjg0MC4xMTM1NDkuMS4xMi4xLjMKLSsjIGh0dHBzOi8vZ2l0aHVi LmNvbS9vcGVuc3NsL29wZW5zc2wvYmxvYi9lZDU3ZDFlMDZkY2EyODY4OTE5MGUwMGQ5ODkzZTBm ZDdlY2M2N2MxL2NyeXB0by9vYmplY3RzL29iamVjdHMudHh0I0wzODUKLStyZXR1cm4gaWYgT3Bl blNTTC5maXBzX21vZGUKLSsKLSBtb2R1bGUgT3BlblNTTAotICAgY2xhc3MgVGVzdFBLQ1MxMiA8 IE9wZW5TU0w6OlRlc3RDYXNlCi0gICAgIERFRkFVTFRfUEJFX1BLRVlTID0gIlBCRS1TSEExLTNE RVMiCi1AQCAtMjEwLDggKzIzMywxMyBAQCBkZWYgdGVzdF9jcmVhdGVfd2l0aF9rZXl0eXBlCi0g ICAgIGVuZAotIAotICAgICBkZWYgdGVzdF9uZXdfd2l0aF9ub19rZXlzCi0tICAgICAgIyBnZW5l cmF0ZWQgd2l0aDoKLS0gICAgICAjICAgb3BlbnNzbCBwa2NzMTIgLWNlcnRwYmUgUEJFLVNIQTEt M0RFUyAtaW4gPEBteWNlcnQ+IC1ub2tleXMgLWV4cG9ydAotKyAgICAgICMgR2VuZXJhdGVkIHdp dGggdGhlIGZvbGxvd2luZyBzdGVwczoKLSsgICAgICAjICAgUHJpbnQgdGhlIHZhbHVlIG9mIHRo ZSBAbXljZXJ0IHN1Y2ggYXMgYnkgYHB1dHMgQG15Y2VydC50b19zYCBhbmQKLSsgICAgICAjICAg c2F2ZSB0aGUgdmFsdWUgYXMgdGhlIGZpbGUgYG15Y2VydC5wZW1gLgotKyAgICAgICMgICBSdW4g dGhlIGZvbGxvd2luZyBjb21tYW5kczoKLSsgICAgICAjICAgb3BlbnNzbCBwa2NzMTIgLWNlcnRw YmUgUEJFLVNIQTEtM0RFUyAtaW4gPChjYXQgbXljZXJ0LnBlbSkgXAotKyAgICAgICMgICAgIC1u b2tleXMgLWV4cG9ydCAtcGFzc291dCBwYXNzOmFiYzEyMyAtb3V0IC90bXAvcDEyLm91dAotKyAg ICAgICMgICBiYXNlNjQgLXcgNjAgL3RtcC9wMTIub3V0Ci0gICAgICAgc3RyID0gPDx+RU9GLnVu cGFjazEoIm0iKQotIE1JSUdKQUlCQXpDQ0Jlb0dDU3FHU0liM0RRRUhBYUNDQmRzRWdnWFhNSUlG MHpDQ0JjOEdDU3FHU0liMwotIERRRUhCcUNDQmNBd2dnVzhBZ0VBTUlJRnRRWUpLb1pJaHZjTkFR Y0JNQndHQ2lxR1NJYjNEUUVNQVFNdwotQEAgLTI1OSw4ICsyODcsMTAgQEAgZGVmIHRlc3RfbmV3 X3dpdGhfbm9fa2V5cwotICAgICBlbmQKLSAKLSAgICAgZGVmIHRlc3RfbmV3X3dpdGhfbm9fY2Vy dHMKLS0gICAgICAjIGdlbmVyYXRlZCB3aXRoOgotLSAgICAgICMgICBvcGVuc3NsIHBrY3MxMiAt aW5rZXkgZml4dHVyZXMvb3BlbnNzbC9wa2V5L3JzYS0xLnBlbSAtbm9jZXJ0cyAtZXhwb3J0Ci0r ICAgICAgIyBHZW5lcmF0ZWQgd2l0aCB0aGUgZm9sb3dpbmcgc3RlcHM6Ci0rICAgICAgIyAgIG9w ZW5zc2wgcGtjczEyIC1pbmtleSB0ZXN0L29wZW5zc2wvZml4dHVyZXMvcGtleS9yc2EtMS5wZW0g XAotKyAgICAgICMgICAgIC1ub2NlcnRzIC1leHBvcnQgLXBhc3NvdXQgcGFzczphYmMxMjMgLW91 dCAvdG1wL3AxMi5vdXQKLSsgICAgICAjICAgYmFzZTY0IC13IDYwIC90bXAvcDEyLm91dAotICAg ICAgIHN0ciA9IDw8fkVPRi51bnBhY2sxKCJtIikKLSBNSUlKN3dJQkF6Q0NDYlVHQ1NxR1NJYjNE UUVIQWFDQ0NhWUVnZ21pTUlJSm5qQ0NDWm9HQ1NxR1NJYjMKLSBEUUVIQWFDQ0NZc0VnZ21ITUlJ Smd6Q0NDWDhHQ3lxR1NJYjNEUUVNQ2dFQ29JSUpiakNDQ1dvd0hBWUsKLWRpZmYgLS1naXQgYS90 ZXN0L29wZW5zc2wvdGVzdF9wa2V5X2VjLnJiIGIvdGVzdC9vcGVuc3NsL3Rlc3RfcGtleV9lYy5y YgotaW5kZXggODgwODViYzY4YzdlZjUuLmVjOTdhNzQ3YTMzYjhiIDEwMDY0NAotLS0tIGEvdGVz dC9vcGVuc3NsL3Rlc3RfcGtleV9lYy5yYgotKysrIGIvdGVzdC9vcGVuc3NsL3Rlc3RfcGtleV9l Yy5yYgotQEAgLTM0NSw2ICszNDUsMTUgQEAgZGVmIHRlc3RfZWNfZ3JvdXAKLSAgICAgYXNzZXJ0 X2VxdWFsIGdyb3VwMS5kZWdyZWUsIGdyb3VwNC5kZWdyZWUKLSAgIGVuZAotIAotKyAgZGVmIHRl c3RfZWNfZ3JvdXBfaW5pdGlhbGl6ZV9lcnJvcl9tZXNzYWdlCi0rICAgICMgVGVzdCB0aGF0IHBh c3NpbmcgMiBhcmd1bWVudHMgcmFpc2VzIHRoZSBoZWxwZnVsIGVycm9yCi0rICAgIGUgPSBhc3Nl cnRfcmFpc2UoQXJndW1lbnRFcnJvcikgZG8KLSsgICAgICBPcGVuU1NMOjpQS2V5OjpFQzo6R3Jv dXAubmV3KDpHRnAsIDEyMykKLSsgICAgZW5kCi0rCi0rICAgIGFzc2VydF9lcXVhbCgid3Jvbmcg bnVtYmVyIG9mIGFyZ3VtZW50cyAoZ2l2ZW4gMiwgZXhwZWN0ZWQgMSBvciA0KSIsIGUubWVzc2Fn ZSkKLSsgIGVuZAotKwotICAgZGVmIHRlc3RfZWNfcG9pbnQKLSAgICAgZ3JvdXAgPSBPcGVuU1NM OjpQS2V5OjpFQzo6R3JvdXAubmV3KCJwcmltZTI1NnYxIikKLSAgICAga2V5ID0gT3BlblNTTDo6 UEtleTo6RUMuZ2VuZXJhdGUoZ3JvdXApCi1kaWZmIC0tZ2l0IGEvdGVzdC9vcGVuc3NsL3Rlc3Rf c3NsLnJiIGIvdGVzdC9vcGVuc3NsL3Rlc3Rfc3NsLnJiCi1pbmRleCA1ZDIwY2NkMWY0YjJlNC4u Y2UxYjJjMWU5NjZmZDAgMTAwNjQ0Ci0tLS0gYS90ZXN0L29wZW5zc2wvdGVzdF9zc2wucmIKLSsr KyBiL3Rlc3Qvb3BlbnNzbC90ZXN0X3NzbC5yYgotQEAgLTM1NSw2ICszNTUsMjIgQEAgZGVmIHRl c3Rfc3luY19jbG9zZQotICAgICBlbmQKLSAgIGVuZAotIAotKyAgZGVmIHRlc3Rfc3luY19jbG9z ZV9pbml0aWFsaXplX29wdAotKyAgICBzdGFydF9zZXJ2ZXIgZG8gfHBvcnR8Ci0rICAgICAgYmVn aW4KLSsgICAgICAgIHNvY2sgPSBUQ1BTb2NrZXQubmV3KCIxMjcuMC4wLjEiLCBwb3J0KQotKyAg ICAgICAgc3NsID0gT3BlblNTTDo6U1NMOjpTU0xTb2NrZXQubmV3KHNvY2ssIHN5bmNfY2xvc2U6 IHRydWUpCi0rICAgICAgICBhc3NlcnRfZXF1YWwgdHJ1ZSwgc3NsLnN5bmNfY2xvc2UKLSsgICAg ICAgIHNzbC5jb25uZWN0Ci0rICAgICAgICBzc2wucHV0cyAiYWJjIjsgYXNzZXJ0X2VxdWFsICJh YmNcbiIsIHNzbC5nZXRzCi0rICAgICAgICBzc2wuY2xvc2UKLSsgICAgICAgIGFzc2VydF9wcmVk aWNhdGUgc29jaywgOmNsb3NlZD8KLSsgICAgICBlbnN1cmUKLSsgICAgICAgIHNvY2smLmNsb3Nl Ci0rICAgICAgZW5kCi0rICAgIGVuZAotKyAgZW5kCi0rCi0gICBkZWYgdGVzdF9jb3B5X3N0cmVh bQotICAgICBzdGFydF9zZXJ2ZXIgZG8gfHBvcnR8Ci0gICAgICAgc2VydmVyX2Nvbm5lY3QocG9y dCkgZG8gfHNzbHwKLUBAIC0xMDY0LDM2ICsxMDgwLDQ2IEBAIGRlZiB0ZXN0X3Rsc2V4dF9ob3N0 bmFtZQotICAgICBlbmQKLSAgIGVuZAotIAotLSAgZGVmIHRlc3Rfc2VydmVybmFtZV9jYl9yYWlz ZXNfYW5fZXhjZXB0aW9uX29uX3Vua25vd25fb2JqZWN0cwotLSAgICBob3N0bmFtZSA9ICdleGFt cGxlLm9yZycKLS0KLS0gICAgY3R4MiA9IE9wZW5TU0w6OlNTTDo6U1NMQ29udGV4dC5uZXcKLS0g ICAgY3R4Mi5jZXJ0ID0gQHN2cl9jZXJ0Ci0tICAgIGN0eDIua2V5ID0gQHN2cl9rZXkKLS0gICAg Y3R4Mi5zZXJ2ZXJuYW1lX2NiID0gbGFtYmRhIHsgfGFyZ3N8IE9iamVjdC5uZXcgfQotLQotKyAg ZGVmIHRlc3Rfc2VydmVybmFtZV9jYl9leGNlcHRpb24KLSAgICAgc29jazEsIHNvY2syID0gc29j a2V0cGFpcgotIAotKyAgICB0ID0gVGhyZWFkLm5ldyB7Ci0rICAgICAgczEgPSBPcGVuU1NMOjpT U0w6OlNTTFNvY2tldC5uZXcoc29jazEpCi0rICAgICAgczEuaG9zdG5hbWUgPSAibG9jYWxob3N0 IgotKyAgICAgIGFzc2VydF9yYWlzZV93aXRoX21lc3NhZ2UoT3BlblNTTDo6U1NMOjpTU0xFcnJv ciwgL3VucmVjb2duaXplZC5uYW1lL2kpIHsKLSsgICAgICAgIHMxLmNvbm5lY3QKLSsgICAgICB9 Ci0rICAgIH0KLSsKLSsgICAgY3R4MiA9IE9wZW5TU0w6OlNTTDo6U1NMQ29udGV4dC5uZXcKLSsg ICAgY3R4Mi5zZXJ2ZXJuYW1lX2NiID0gbGFtYmRhIHsgfGFyZ3N8IHJhaXNlIFJ1bnRpbWVFcnJv ciwgImZvbyIgfQotICAgICBzMiA9IE9wZW5TU0w6OlNTTDo6U1NMU29ja2V0Lm5ldyhzb2NrMiwg Y3R4MikKLSsgICAgYXNzZXJ0X3JhaXNlX3dpdGhfbWVzc2FnZShSdW50aW1lRXJyb3IsICJmb28i KSB7IHMyLmFjY2VwdCB9Ci0rICAgIGFzc2VydCB0LmpvaW4KLSsgIGVuc3VyZQotKyAgICBzb2Nr MS5jbG9zZQotKyAgICBzb2NrMi5jbG9zZQotKyAgICB0LmtpbGwuam9pbgotKyAgZW5kCi0gCi0t ICAgIGN0eDEgPSBPcGVuU1NMOjpTU0w6OlNTTENvbnRleHQubmV3Ci0rICBkZWYgdGVzdF9zZXJ2 ZXJuYW1lX2NiX3JhaXNlc19hbl9leGNlcHRpb25fb25fdW5rbm93bl9vYmplY3RzCi0rICAgIHNv Y2sxLCBzb2NrMiA9IHNvY2tldHBhaXIKLSAKLS0gICAgczEgPSBPcGVuU1NMOjpTU0w6OlNTTFNv Y2tldC5uZXcoc29jazEsIGN0eDEpCi0tICAgIHMxLmhvc3RuYW1lID0gaG9zdG5hbWUKLSAgICAg dCA9IFRocmVhZC5uZXcgewotLSAgICAgIGFzc2VydF9yYWlzZShPcGVuU1NMOjpTU0w6OlNTTEVy cm9yKSBkbwotLSAgICAgICAgczEuY29ubmVjdAotLSAgICAgIGVuZAotKyAgICAgIHMxID0gT3Bl blNTTDo6U1NMOjpTU0xTb2NrZXQubmV3KHNvY2sxKQotKyAgICAgIHMxLmhvc3RuYW1lID0gImxv Y2FsaG9zdCIKLSsgICAgICBhc3NlcnRfcmFpc2UoT3BlblNTTDo6U1NMOjpTU0xFcnJvcikgeyBz MS5jb25uZWN0IH0KLSAgICAgfQotIAotLSAgICBhc3NlcnRfcmFpc2UoQXJndW1lbnRFcnJvcikg ZG8KLS0gICAgICBzMi5hY2NlcHQKLS0gICAgZW5kCi0tCi0rICAgIGN0eDIgPSBPcGVuU1NMOjpT U0w6OlNTTENvbnRleHQubmV3Ci0rICAgIGN0eDIuc2VydmVybmFtZV9jYiA9IGxhbWJkYSB7IHxh cmdzfCBPYmplY3QubmV3IH0KLSsgICAgczIgPSBPcGVuU1NMOjpTU0w6OlNTTFNvY2tldC5uZXco c29jazIsIGN0eDIpCi0rICAgIGFzc2VydF9yYWlzZShBcmd1bWVudEVycm9yKSB7IHMyLmFjY2Vw dCB9Ci0gICAgIGFzc2VydCB0LmpvaW4KLSAgIGVuc3VyZQotLSAgICBzb2NrMS5jbG9zZSBpZiBz b2NrMQotLSAgICBzb2NrMi5jbG9zZSBpZiBzb2NrMgotKyAgICBzb2NrMS5jbG9zZQotKyAgICBz b2NrMi5jbG9zZQotKyAgICB0LmtpbGwuam9pbgotICAgZW5kCi0gCi0gICBkZWYgdGVzdF9hY2Nl cHRfZXJyb3JzX2luY2x1ZGVfcGVlcmFkZHIKLQotRnJvbSA3MmUzMzgxM2FkNWZhODY2YmYzNDMx Mjc3MDQ5ODE5MzNkMjYxOTFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2F6dWtp IFlhbWFndWNoaSA8a0ByaGUuanA+Ci1EYXRlOiBUaHUsIDE0IE1heSAyMDI2IDAwOjQ3OjE1ICsw OTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSBNZXJnZSBvcGVuc3NsLTQuMC4yCi0KLVRoZSBjaGFu Z2VzIGNhbiBiZSBmb3VuZCBhdDoKLQotICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L29wZW5z c2wvY29tcGFyZS92NC4wLjEuLi52NC4wLjIKLS0tLQotIGV4dC9vcGVuc3NsL0hpc3RvcnkubWQg ICAgICAgICAgICAgfCAyMiArKysrKysrKysKLSBleHQvb3BlbnNzbC9leHRjb25mLnJiICAgICAg ICAgICAgIHwgIDMgKysKLSBleHQvb3BlbnNzbC9saWIvb3BlbnNzbC92ZXJzaW9uLnJiIHwgIDIg Ky0KLSBleHQvb3BlbnNzbC9vcGVuc3NsLmdlbXNwZWMgICAgICAgIHwgIDIgKy0KLSBleHQvb3Bl bnNzbC9vcGVuc3NsX21pc3NpbmcuaCAgICAgIHwgMjMgKysrKysrKysrKwotIGV4dC9vcGVuc3Ns L29zc2wuYyAgICAgICAgICAgICAgICAgfCAyMiArKysrKysrLS0KLSBleHQvb3BlbnNzbC9vc3Ns X2FzbjEuYyAgICAgICAgICAgIHwgNDcgKysrKysrKysrKy0tLS0tLS0tLQotIGV4dC9vcGVuc3Ns L29zc2xfYmlvLmMgICAgICAgICAgICAgfCAgNiArKy0KLSBleHQvb3BlbnNzbC9vc3NsX29jc3Au YyAgICAgICAgICAgIHwgIDUgKy0KLSBleHQvb3BlbnNzbC9vc3NsX3BrZXkuaCAgICAgICAgICAg IHwgIDEgLQotIGV4dC9vcGVuc3NsL29zc2xfdHMuYyAgICAgICAgICAgICAgfCAgMiArLQotIGV4 dC9vcGVuc3NsL29zc2xfeDUwOS5oICAgICAgICAgICAgfCAxMiArKy0tLQotIGV4dC9vcGVuc3Ns L29zc2xfeDUwOWF0dHIuYyAgICAgICAgfCAgOSArKy0tCi0gZXh0L29wZW5zc2wvb3NzbF94NTA5 Y2VydC5jICAgICAgICB8IDEyICsrLS0tCi0gZXh0L29wZW5zc2wvb3NzbF94NTA5Y3JsLmMgICAg ICAgICB8IDEwICsrLS0KLSBleHQvb3BlbnNzbC9vc3NsX3g1MDlleHQuYyAgICAgICAgIHwgMTkg KysrKysrLS0KLSBleHQvb3BlbnNzbC9vc3NsX3g1MDluYW1lLmMgICAgICAgIHwgIDUgKy0KLSBl eHQvb3BlbnNzbC9vc3NsX3g1MDlyZXEuYyAgICAgICAgIHwgIDQgKy0KLSBleHQvb3BlbnNzbC9v c3NsX3g1MDlyZXZva2VkLmMgICAgIHwgIDcgKy0tCi0gZXh0L29wZW5zc2wvb3NzbF94NTA5c3Rv cmUuYyAgICAgICB8IDEwICsrLS0KLSB0ZXN0L29wZW5zc2wvdGVzdF9vc3NsLnJiICAgICAgICAg IHwgMTAgKysrKwotIHRlc3Qvb3BlbnNzbC90ZXN0X3BrZXlfcnNhLnJiICAgICAgfCA3NCArKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KLSB0ZXN0L29wZW5zc2wvdGVzdF9zc2wucmIgICAg ICAgICAgIHwgIDggKysrLQotIDIzIGZpbGVzIGNoYW5nZWQsIDIwMyBpbnNlcnRpb25zKCspLCAx MTIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9IaXN0b3J5Lm1kIGIv ZXh0L29wZW5zc2wvSGlzdG9yeS5tZAotaW5kZXggYzc4YzdlNDYzMzRkZGIuLmNlMDFiM2UwZjIx NTg5IDEwMDY0NAotLS0tIGEvZXh0L29wZW5zc2wvSGlzdG9yeS5tZAotKysrIGIvZXh0L29wZW5z c2wvSGlzdG9yeS5tZAotQEAgLTEsMyArMSw5IEBACi0rVmVyc2lvbiA0LjAuMgotKz09PT09PT09 PT09PT0KLSsKLStNZXJnZWQgY2hhbmdlcyBpbiAzLjIuNCBhbmQgMy4zLjMuCi0rCi0rCi0gVmVy c2lvbiA0LjAuMQotID09PT09PT09PT09PT0KLSAKLUBAIC0xMDMsNiArMTA5LDEyIEBAIE5vdGFi bGUgY2hhbmdlcwotICAgW1tHaXRIdWIgIzk4M11dKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L29w ZW5zc2wvcHVsbC85ODMpCi0gCi0gCi0rVmVyc2lvbiAzLjMuMwotKz09PT09PT09PT09PT0KLSsK LStNZXJnZWQgY2hhbmdlcyBpbiAzLjIuNC4KLSsKLSsKLSBWZXJzaW9uIDMuMy4yCi0gPT09PT09 PT09PT09PQotIAotQEAgLTE5MSw2ICsyMDMsMTYgQEAgQW5kIHZhcmlvdXMgbm9uLXVzZXItdmlz aWJsZSBjaGFuZ2VzIGFuZCBidWcgZml4ZXMuIFBsZWFzZSBzZWUgdGhlIGNvbW1pdAotIGhpc3Rv cnkgZm9yIG1vcmUgZGV0YWlscy4KLSAKLSAKLStWZXJzaW9uIDMuMi40Ci0rPT09PT09PT09PT09 PQotKwotK05vdGFibGUgY2hhbmdlcwotKy0tLS0tLS0tLS0tLS0tLQotKwotKyogQWRkIHN1cHBv cnQgZm9yIE9wZW5TU0wgNC4wLgotKyAgW1tHaXRIdWIgIzEwNTFdXShodHRwczovL2dpdGh1Yi5j b20vcnVieS9vcGVuc3NsL3B1bGwvMTA1MSkKLSsKLSsKLSBWZXJzaW9uIDMuMi4zCi0gPT09PT09 PT09PT09PQotIAotZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL2V4dGNvbmYucmIgYi9leHQvb3Bl bnNzbC9leHRjb25mLnJiCi1pbmRleCBhODk3Yzg2YjY1N2U5Yy4uMDZlZDRmNmFjMzM0ZGQgMTAw NjQ0Ci0tLS0gYS9leHQvb3BlbnNzbC9leHRjb25mLnJiCi0rKysgYi9leHQvb3BlbnNzbC9leHRj b25mLnJiCi1AQCAtMTY5LDYgKzE2OSw5IEBAIGRlZiBmaW5kX29wZW5zc2xfbGlicmFyeQotICMg YWRkZWQgaW4gMy41LjAKLSBoYXZlX2Z1bmMoIlNTTF9nZXQwX3BlZXJfc2lnbmF0dXJlX25hbWUo TlVMTCwgTlVMTCkiLCBzc2xfaCkKLSAKLSsjIGFkZGVkIGluIDQuMC4wCi0raGF2ZV9mdW5jKCJB U04xX0JJVF9TVFJJTkdfc2V0MShOVUxMLCBOVUxMLCAwLCAwKSIsICJvcGVuc3NsL2FzbjEuaCIp Ci0rCi0gTG9nZ2luZzo6bWVzc2FnZSAiPT09IENoZWNraW5nIGRvbmUuID09PVxuIgotIAotICMg QXBwZW5kIGZsYWdzIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzLgotZGlmZiAtLWdpdCBhL2V4 dC9vcGVuc3NsL2xpYi9vcGVuc3NsL3ZlcnNpb24ucmIgYi9leHQvb3BlbnNzbC9saWIvb3BlbnNz bC92ZXJzaW9uLnJiCi1pbmRleCA0NWMxNTBiZTExMDViYS4uMzk1YTcyMGEzMTMzNzIgMTAwNjQ0 Ci0tLS0gYS9leHQvb3BlbnNzbC9saWIvb3BlbnNzbC92ZXJzaW9uLnJiCi0rKysgYi9leHQvb3Bl bnNzbC9saWIvb3BlbnNzbC92ZXJzaW9uLnJiCi1AQCAtMiw1ICsyLDUgQEAKLSAKLSBtb2R1bGUg T3BlblNTTAotICAgIyBUaGUgdmVyc2lvbiBzdHJpbmcgb2YgUnVieS9PcGVuU1NMLgotLSAgVkVS U0lPTiA9ICI0LjAuMSIKLSsgIFZFUlNJT04gPSAiNC4wLjIiCi0gZW5kCi1kaWZmIC0tZ2l0IGEv ZXh0L29wZW5zc2wvb3BlbnNzbC5nZW1zcGVjIGIvZXh0L29wZW5zc2wvb3BlbnNzbC5nZW1zcGVj Ci1pbmRleCBjNTk0YzZmMTc3NjUzOC4uYWYxNzc1ZTNiMDdiNzEgMTAwNjQ0Ci0tLS0gYS9leHQv b3BlbnNzbC9vcGVuc3NsLmdlbXNwZWMKLSsrKyBiL2V4dC9vcGVuc3NsL29wZW5zc2wuZ2Vtc3Bl YwotQEAgLTEsNiArMSw2IEBACi0gR2VtOjpTcGVjaWZpY2F0aW9uLm5ldyBkbyB8c3BlY3wKLSAg IHNwZWMubmFtZSAgICAgICAgICA9ICJvcGVuc3NsIgotLSAgc3BlYy52ZXJzaW9uICAgICAgID0g IjQuMC4xIgotKyAgc3BlYy52ZXJzaW9uICAgICAgID0gIjQuMC4yIgotICAgc3BlYy5hdXRob3Jz ICAgICAgID0gWyJNYXJ0aW4gQm9zc2xldCIsICJTSElCQVRBIEhpcm9zaGkiLCAiWmFjaGFyeSBT Y290dCIsICJLYXp1a2kgWWFtYWd1Y2hpIl0KLSAgIHNwZWMuZW1haWwgICAgICAgICA9IFsicnVi eS1jb3JlQHJ1YnktbGFuZy5vcmciXQotICAgc3BlYy5zdW1tYXJ5ICAgICAgID0gJXF7U1NML1RM UyBhbmQgZ2VuZXJhbC1wdXJwb3NlIGNyeXB0b2dyYXBoeSBmb3IgUnVieX0KLWRpZmYgLS1naXQg YS9leHQvb3BlbnNzbC9vcGVuc3NsX21pc3NpbmcuaCBiL2V4dC9vcGVuc3NsL29wZW5zc2xfbWlz c2luZy5oCi1pbmRleCA2NTkyZjljY2VhZjcxNC4uZWQzYjViN2MwZjU2MTEgMTAwNjQ0Ci0tLS0g YS9leHQvb3BlbnNzbC9vcGVuc3NsX21pc3NpbmcuaAotKysrIGIvZXh0L29wZW5zc2wvb3BlbnNz bF9taXNzaW5nLmgKLUBAIC0yOSw0ICsyOSwyNyBAQAotICMgIGRlZmluZSBFVlBfUEtFWV9lcShh LCBiKSBFVlBfUEtFWV9jbXAoYSwgYikKLSAjZW5kaWYKLSAKLSsvKiBhZGRlZCBpbiA0LjAuMCAq LwotKyNpZm5kZWYgSEFWRV9BU04xX0JJVF9TVFJJTkdfU0VUMQotK3N0YXRpYyBpbmxpbmUgaW50 Ci0rQVNOMV9CSVRfU1RSSU5HX3NldDEoQVNOMV9CSVRfU1RSSU5HICpiaXRzdHIsIGNvbnN0IHVp bnQ4X3QgKmRhdGEsCi0rICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwgaW50IHVu dXNlZF9iaXRzKQotK3sKLSsgICAgaWYgKGxlbmd0aCA+IElOVF9NQVggfHwgIUFTTjFfU1RSSU5H X3NldChiaXRzdHIsIGRhdGEsIChpbnQpbGVuZ3RoKSkKLSsgICAgICAgIHJldHVybiAwOwotKyAg ICBiaXRzdHItPmZsYWdzICY9IH4oQVNOMV9TVFJJTkdfRkxBR19CSVRTX0xFRlQgfCAweDA3KTsK LSsgICAgYml0c3RyLT5mbGFncyB8PSBBU04xX1NUUklOR19GTEFHX0JJVFNfTEVGVCB8IHVudXNl ZF9iaXRzOwotKyAgICByZXR1cm4gMTsKLSt9Ci0rCi0rc3RhdGljIGlubGluZSBpbnQKLStBU04x X0JJVF9TVFJJTkdfZ2V0X2xlbmd0aChjb25zdCBBU04xX0JJVF9TVFJJTkcgKmJpdHN0ciwgc2l6 ZV90ICpsZW5ndGgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICp1bnVzZWRfYml0 cykKLSt7Ci0rICAgICpsZW5ndGggPSBiaXRzdHItPmxlbmd0aDsKLSsgICAgKnVudXNlZF9iaXRz ID0gYml0c3RyLT5mbGFncyAmIDB4MDc7Ci0rICAgIHJldHVybiAxOwotK30KLSsjZW5kaWYKLSsK LSAjZW5kaWYgLyogX09TU0xfT1BFTlNTTF9NSVNTSU5HX0hfICovCi1kaWZmIC0tZ2l0IGEvZXh0 L29wZW5zc2wvb3NzbC5jIGIvZXh0L29wZW5zc2wvb3NzbC5jCi1pbmRleCA5ODEyN2ZjYmEwMjMx NC4uNTcxNmU2ZjEwMDI4MjAgMTAwNjQ0Ci0tLS0gYS9leHQvb3BlbnNzbC9vc3NsLmMKLSsrKyBi L2V4dC9vcGVuc3NsL29zc2wuYwotQEAgLTM0LDcgKzM0LDExIEBAIG9zc2xfIyNuYW1lIyNfYXJ5 MnNrMChWQUxVRSBhcnkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg ICAgICAgICAgICAgICAgICAiIG9mIGNsYXNzICMjdHlwZSMjIik7ICAgICAgICAgICAgICAgICAg IFwKLSAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAotICAgICAgICAgeCA9IGR1cCh2YWwpOyAvKiBORUVEIFRPIERVUCAqLyAg ICAgICAgICAgICAgICAgICAgICAgICBcCi0tICAgICAgICBza18jI3R5cGUjI19wdXNoKHNrLCB4 KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgICAgIGlmICghc2tfIyN0 eXBlIyNfcHVzaChzaywgeCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgICAg ICAgIHR5cGUjI19mcmVlKHgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Ci0rICAgICAgICAgICAgc2tfIyN0eXBlIyNfcG9wX2ZyZWUoc2ssIHR5cGUjI19mcmVlKTsgICAg ICAgICAgICAgIFwKLSsgICAgICAgICAgICBvc3NsX3JhaXNlKGVPU1NMRXJyb3IsIE5VTEwpOyAg ICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIH0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgcmV0dXJu IChWQUxVRSlzazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCi1AQCAtNTIzLDEwICs1MjcsMTggQEAgb3NzbF9maXBzX21vZGVfc2V0KFZBTFVF IHNlbGYsIFZBTFVFIGVuYWJsZWQpCi0gc3RhdGljIFZBTFVFCi0gb3NzbF9jcnlwdG9fZml4ZWRf bGVuZ3RoX3NlY3VyZV9jb21wYXJlKFZBTFVFIGR1bW15LCBWQUxVRSBzdHIxLCBWQUxVRSBzdHIy KQotIHsKLS0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqcDEgPSAoY29uc3QgdW5zaWduZWQgY2hh ciAqKVN0cmluZ1ZhbHVlUHRyKHN0cjEpOwotLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwMiA9 IChjb25zdCB1bnNpZ25lZCBjaGFyICopU3RyaW5nVmFsdWVQdHIoc3RyMik7Ci0tICAgIGxvbmcg bGVuMSA9IFJTVFJJTkdfTEVOKHN0cjEpOwotLSAgICBsb25nIGxlbjIgPSBSU1RSSU5HX0xFTihz dHIyKTsKLSsgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcDE7Ci0rICAgIGNvbnN0IHVuc2lnbmVk IGNoYXIgKnAyOwotKyAgICBsb25nIGxlbjE7Ci0rICAgIGxvbmcgbGVuMjsKLSsKLSsgICAgU3Ry aW5nVmFsdWUoc3RyMSk7Ci0rICAgIFN0cmluZ1ZhbHVlKHN0cjIpOwotKwotKyAgICBwMSA9IChj b25zdCB1bnNpZ25lZCBjaGFyICopUlNUUklOR19QVFIoc3RyMSk7Ci0rICAgIHAyID0gKGNvbnN0 IHVuc2lnbmVkIGNoYXIgKilSU1RSSU5HX1BUUihzdHIyKTsKLSsgICAgbGVuMSA9IFJTVFJJTkdf TEVOKHN0cjEpOwotKyAgICBsZW4yID0gUlNUUklOR19MRU4oc3RyMik7Ci0gCi0gICAgIGlmIChs ZW4xICE9IGxlbjIpIHsKLSAgICAgICAgIG9zc2xfcmFpc2UocmJfZUFyZ0Vycm9yLCAiaW5wdXRz IG11c3QgYmUgb2YgZXF1YWwgbGVuZ3RoIik7Ci1kaWZmIC0tZ2l0IGEvZXh0L29wZW5zc2wvb3Nz bF9hc24xLmMgYi9leHQvb3BlbnNzbC9vc3NsX2FzbjEuYwotaW5kZXggNzFhODdmMDQ2MzZjOTgu LjY3YzAzYjdmOThhOTUyIDEwMDY0NAotLS0tIGEvZXh0L29wZW5zc2wvb3NzbF9hc24xLmMKLSsr KyBiL2V4dC9vcGVuc3NsL29zc2xfYXNuMS5jCi1AQCAtMTMwLDE1ICsxMzAsMTcgQEAgYXNuMWlu dGVnZXJfdG9fbnVtKGNvbnN0IEFTTjFfSU5URUdFUiAqYWkpCi0gICAgIGlmICghYWkpIHsKLSAg ICAgICAgIG9zc2xfcmFpc2UocmJfZVR5cGVFcnJvciwgIkFTTjFfSU5URUdFUiBpcyBOVUxMISIp OwotICAgICB9Ci0rCi0rICAgIG51bSA9IG9zc2xfYm5fbmV3KEJOX3ZhbHVlX29uZSgpKTsKLSsg ICAgYm4gPSBHZXRCTlB0cihudW0pOwotKwotICAgICBpZiAoQVNOMV9TVFJJTkdfdHlwZShhaSkg PT0gVl9BU04xX0VOVU1FUkFURUQpCi0tICAgICAgICBibiA9IEFTTjFfRU5VTUVSQVRFRF90b19C TihhaSwgTlVMTCk7Ci0rICAgICAgICBibiA9IEFTTjFfRU5VTUVSQVRFRF90b19CTihhaSwgYm4p OwotICAgICBlbHNlCi0tICAgICAgICBibiA9IEFTTjFfSU5URUdFUl90b19CTihhaSwgTlVMTCk7 Ci0rICAgICAgICBibiA9IEFTTjFfSU5URUdFUl90b19CTihhaSwgYm4pOwotIAotICAgICBpZiAo IWJuKQotICAgICAgICAgb3NzbF9yYWlzZShlT1NTTEVycm9yLCBOVUxMKTsKLS0gICAgbnVtID0g b3NzbF9ibl9uZXcoYm4pOwotLSAgICBCTl9mcmVlKGJuKTsKLSAKLSAgICAgcmV0dXJuIG51bTsK LSB9Ci1AQCAtMjI2LDcgKzIyOCw3IEBAIG9ial90b19hc24xaW50KFZBTFVFIG9iaikKLSB9Ci0g Ci0gc3RhdGljIEFTTjFfQklUX1NUUklORyoKLS1vYmpfdG9fYXNuMWJzdHIoVkFMVUUgb2JqLCBs b25nIHVudXNlZF9iaXRzKQotK29ial90b19hc24xYnN0cihWQUxVRSBvYmosIGludCB1bnVzZWRf Yml0cykKLSB7Ci0gICAgIEFTTjFfQklUX1NUUklORyAqYnN0cjsKLSAKLUBAIC0yMzQsMTEgKzIz NiwxMSBAQCBvYmpfdG9fYXNuMWJzdHIoVkFMVUUgb2JqLCBsb25nIHVudXNlZF9iaXRzKQotICAg ICAgICAgb3NzbF9yYWlzZShlQVNOMUVycm9yLCAidW51c2VkX2JpdHMgZm9yIGEgYml0c3RyaW5n IHZhbHVlIG11c3QgYmUgaW4gIlwKLSAgICAgICAgICAgICAgICAgICAgInRoZSByYW5nZSAwIHRv IDciKTsKLSAgICAgU3RyaW5nVmFsdWUob2JqKTsKLS0gICAgaWYoIShic3RyID0gQVNOMV9CSVRf U1RSSU5HX25ldygpKSkKLS0gICAgICAgIG9zc2xfcmFpc2UoZUFTTjFFcnJvciwgTlVMTCk7Ci0t ICAgIEFTTjFfQklUX1NUUklOR19zZXQoYnN0ciwgKHVuc2lnbmVkIGNoYXIgKilSU1RSSU5HX1BU UihvYmopLCBSU1RSSU5HX0xFTklOVChvYmopKTsKLS0gICAgYnN0ci0+ZmxhZ3MgJj0gfihBU04x X1NUUklOR19GTEFHX0JJVFNfTEVGVHwweDA3KTsgLyogY2xlYXIgKi8KLS0gICAgYnN0ci0+Zmxh Z3MgfD0gQVNOMV9TVFJJTkdfRkxBR19CSVRTX0xFRlQgfCB1bnVzZWRfYml0czsKLSsgICAgaWYg KCEoYnN0ciA9IEFTTjFfQklUX1NUUklOR19uZXcoKSkpCi0rICAgICAgICBvc3NsX3JhaXNlKGVB U04xRXJyb3IsICJBU04xX0JJVF9TVFJJTkdfbmV3Iik7Ci0rICAgIGlmICghQVNOMV9CSVRfU1RS SU5HX3NldDEoYnN0ciwgKHVpbnQ4X3QgKilSU1RSSU5HX1BUUihvYmopLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJTVFJJTkdfTEVOKG9iaiksIHVudXNlZF9iaXRzKSkKLSsgICAg ICAgIG9zc2xfcmFpc2UoZUFTTjFFcnJvciwgIkFTTjFfQklUX1NUUklOR19zZXQxIik7Ci0gCi0g ICAgIHJldHVybiBic3RyOwotIH0KLUBAIC0zNjIsMjIgKzM2NCwyNSBAQCBkZWNvZGVfaW50KHVu c2lnbmVkIGNoYXIqIGRlciwgbG9uZyBsZW5ndGgpCi0gfQotIAotIHN0YXRpYyBWQUxVRQotLWRl Y29kZV9ic3RyKHVuc2lnbmVkIGNoYXIqIGRlciwgbG9uZyBsZW5ndGgsIGxvbmcgKnVudXNlZF9i aXRzKQotK2RlY29kZV9ic3RyKHVuc2lnbmVkIGNoYXIqIGRlciwgbG9uZyBsZW5ndGgsIGludCAq dW51c2VkX2JpdHMpCi0gewotICAgICBBU04xX0JJVF9TVFJJTkcgKmJzdHI7Ci0gICAgIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKnA7Ci0tICAgIGxvbmcgbGVuOwotKyAgICBzaXplX3QgbGVuOwotICAg ICBWQUxVRSByZXQ7Ci0rICAgIGludCBzdGF0ZTsKLSAKLSAgICAgcCA9IGRlcjsKLS0gICAgaWYo IShic3RyID0gZDJpX0FTTjFfQklUX1NUUklORyhOVUxMLCAmcCwgbGVuZ3RoKSkpCi0tICAgICAg ICBvc3NsX3JhaXNlKGVBU04xRXJyb3IsIE5VTEwpOwotLSAgICBsZW4gPSBic3RyLT5sZW5ndGg7 Ci0tICAgICp1bnVzZWRfYml0cyA9IDA7Ci0tICAgIGlmKGJzdHItPmZsYWdzICYgQVNOMV9TVFJJ TkdfRkxBR19CSVRTX0xFRlQpCi0tICAgICAgICAqdW51c2VkX2JpdHMgPSBic3RyLT5mbGFncyAm IDB4MDc7Ci0tICAgIHJldCA9IHJiX3N0cl9uZXcoKGNvbnN0IGNoYXIgKilic3RyLT5kYXRhLCBs ZW4pOwotKyAgICBpZiAoIShic3RyID0gZDJpX0FTTjFfQklUX1NUUklORyhOVUxMLCAmcCwgbGVu Z3RoKSkpCi0rICAgICAgICBvc3NsX3JhaXNlKGVBU04xRXJyb3IsICJkMmlfQVNOMV9CSVRfU1RS SU5HIik7Ci0rICAgIGlmICghQVNOMV9CSVRfU1RSSU5HX2dldF9sZW5ndGgoYnN0ciwgJmxlbiwg dW51c2VkX2JpdHMpKSB7Ci0rICAgICAgICBBU04xX0JJVF9TVFJJTkdfZnJlZShic3RyKTsKLSsg ICAgICAgIG9zc2xfcmFpc2UoZUFTTjFFcnJvciwgIkFTTjFfQklUX1NUUklOR19nZXRfbGVuZ3Ro Iik7Ci0rICAgIH0KLSsgICAgcmV0ID0gb3NzbF9zdHJfbmV3KChjb25zdCBjaGFyICopQVNOMV9T VFJJTkdfZ2V0MF9kYXRhKGJzdHIpLCBsZW4sICZzdGF0ZSk7Ci0gICAgIEFTTjFfQklUX1NUUklO R19mcmVlKGJzdHIpOwotKyAgICBpZiAoc3RhdGUpCi0rICAgICAgICByYl9qdW1wX3RhZyhzdGF0 ZSk7Ci0gCi0gICAgIHJldHVybiByZXQ7Ci0gfQotQEAgLTc2MSw3ICs3NjYsNyBAQCBpbnRfb3Nz bF9hc24xX2RlY29kZTBfcHJpbSh1bnNpZ25lZCBjaGFyICoqcHAsIGxvbmcgbGVuZ3RoLCBsb25n IGhsZW4sIGludCB0YWcsCi0gewotICAgICBWQUxVRSB2YWx1ZSwgYXNuMWRhdGE7Ci0gICAgIHVu c2lnbmVkIGNoYXIgKnA7Ci0tICAgIGxvbmcgZmxhZyA9IDA7Ci0rICAgIGludCBmbGFnID0gMDsK LSAKLSAgICAgcCA9ICpwcDsKLSAKLUBAIC04MTgsNyArODIzLDcgQEAgaW50X29zc2xfYXNuMV9k ZWNvZGUwX3ByaW0odW5zaWduZWQgY2hhciAqKnBwLCBsb25nIGxlbmd0aCwgbG9uZyBobGVuLCBp bnQgdGFnLAotICAgICAgICAgYXNuMWRhdGEgPSByYl9vYmpfYWxsb2Moa2xhc3MpOwotICAgICAg ICAgb3NzbF9hc24xX2luaXRpYWxpemUoNCwgYXJncywgYXNuMWRhdGEpOwotICAgICAgICAgaWYo dGFnID09IFZfQVNOMV9CSVRfU1RSSU5HKXsKLS0gICAgICAgICAgICByYl9pdmFyX3NldChhc24x ZGF0YSwgc2l2VU5VU0VEX0JJVFMsIExPTkcyTlVNKGZsYWcpKTsKLSsgICAgICAgICAgICByYl9p dmFyX3NldChhc24xZGF0YSwgc2l2VU5VU0VEX0JJVFMsIElOVDJOVU0oZmxhZykpOwotICAgICAg ICAgfQotICAgICB9Ci0gICAgIGVsc2UgewotZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29zc2xf YmlvLmMgYi9leHQvb3BlbnNzbC9vc3NsX2Jpby5jCi1pbmRleCA0ZWRkZTUwOTFkMDkzMy4uY2Mw M2M1ZDVmNzIwZWIgMTAwNjQ0Ci0tLS0gYS9leHQvb3BlbnNzbC9vc3NsX2Jpby5jCi0rKysgYi9l eHQvb3BlbnNzbC9vc3NsX2Jpby5jCi1AQCAtMzIsNyArMzIsMTEgQEAgb3NzbF9tZW1iaW8yc3Ry KEJJTyAqYmlvKQotICAgICBpbnQgc3RhdGU7Ci0gICAgIEJVRl9NRU0gKmJ1ZjsKLSAKLS0gICAg QklPX2dldF9tZW1fcHRyKGJpbywgJmJ1Zik7Ci0rICAgIGlmIChCSU9fZ2V0X21lbV9wdHIoYmlv LCAmYnVmKSA8PSAwKSB7Ci0rICAgICAgICBCSU9fZnJlZShiaW8pOwotKyAgICAgICAgb3NzbF9y YWlzZShlT1NTTEVycm9yLCAiQklPX2dldF9tZW1fcHRyIik7Ci0rICAgIH0KLSsKLSAgICAgcmV0 ID0gb3NzbF9zdHJfbmV3KGJ1Zi0+ZGF0YSwgYnVmLT5sZW5ndGgsICZzdGF0ZSk7Ci0gICAgIEJJ T19mcmVlKGJpbyk7Ci0gICAgIGlmIChzdGF0ZSkKLWRpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9v c3NsX29jc3AuYyBiL2V4dC9vcGVuc3NsL29zc2xfb2NzcC5jCi1pbmRleCBkZGI2N2ZjZjA3YTdj ZS4uOWRkNGI0NjZkMjg0NDMgMTAwNjQ0Ci0tLS0gYS9leHQvb3BlbnNzbC9vc3NsX29jc3AuYwot KysrIGIvZXh0L29wZW5zc2wvb3NzbF9vY3NwLmMKLUBAIC05MjIsNyArOTIyLDcgQEAgb3NzbF9v Y3NwYnJlc19nZXRfc3RhdHVzKFZBTFVFIHNlbGYpCi0gICAgICAgICBWQUxVRSBleHQgPSByYl9h cnlfbmV3KCk7Ci0gICAgICAgICBpbnQgZXh0X2NvdW50ID0gT0NTUF9TSU5HTEVSRVNQX2dldF9l eHRfY291bnQoc2luZ2xlKTsKLSAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZXh0X2NvdW50 OyBqKyspIHsKLS0gICAgICAgICAgICBYNTA5X0VYVEVOU0lPTiAqeDUwOWV4dCA9IE9DU1BfU0lO R0xFUkVTUF9nZXRfZXh0KHNpbmdsZSwgaik7Ci0rICAgICAgICAgICAgY29uc3QgWDUwOV9FWFRF TlNJT04gKng1MDlleHQgPSBPQ1NQX1NJTkdMRVJFU1BfZ2V0X2V4dChzaW5nbGUsIGopOwotICAg ICAgICAgICAgIHJiX2FyeV9wdXNoKGV4dCwgb3NzbF94NTA5ZXh0X25ldyh4NTA5ZXh0KSk7Ci0g ICAgICAgICB9Ci0gICAgICAgICByYl9hcnlfcHVzaChhcnksIGV4dCk7Ci1AQCAtMTM0MSw3ICsx MzQxLDYgQEAgc3RhdGljIFZBTFVFCi0gb3NzbF9vY3Nwc3Jlc19nZXRfZXh0ZW5zaW9ucyhWQUxV RSBzZWxmKQotIHsKLSAgICAgT0NTUF9TSU5HTEVSRVNQICpzcmVzOwotLSAgICBYNTA5X0VYVEVO U0lPTiAqZXh0OwotICAgICBpbnQgY291bnQsIGk7Ci0gICAgIFZBTFVFIGFyeTsKLSAKLUBAIC0x MzUwLDcgKzEzNDksNyBAQCBvc3NsX29jc3BzcmVzX2dldF9leHRlbnNpb25zKFZBTFVFIHNlbGYp Ci0gICAgIGNvdW50ID0gT0NTUF9TSU5HTEVSRVNQX2dldF9leHRfY291bnQoc3Jlcyk7Ci0gICAg IGFyeSA9IHJiX2FyeV9uZXcyKGNvdW50KTsKLSAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBp KyspIHsKLS0gICAgICAgIGV4dCA9IE9DU1BfU0lOR0xFUkVTUF9nZXRfZXh0KHNyZXMsIGkpOwot KyAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4dCA9IE9DU1BfU0lOR0xFUkVTUF9nZXRf ZXh0KHNyZXMsIGkpOwotICAgICAgICAgcmJfYXJ5X3B1c2goYXJ5LCBvc3NsX3g1MDlleHRfbmV3 KGV4dCkpOyAvKiB3aWxsIGR1cCAqLwotICAgICB9Ci0gCi1kaWZmIC0tZ2l0IGEvZXh0L29wZW5z c2wvb3NzbF9wa2V5LmggYi9leHQvb3BlbnNzbC9vc3NsX3BrZXkuaAotaW5kZXggMDIzMzYxYjkw ZjIzMDYuLmVmYmEzM2I3NTI5MzczIDEwMDY0NAotLS0tIGEvZXh0L29wZW5zc2wvb3NzbF9wa2V5 LmgKLSsrKyBiL2V4dC9vcGVuc3NsL29zc2xfcGtleS5oCi1AQCAtNzEsNyArNzEsNiBAQCB2b2lk IEluaXRfb3NzbF9kaCh2b2lkKTsKLSAgKiBFQwotICAqLwotIGV4dGVybiBWQUxVRSBjRUM7Ci0t VkFMVUUgb3NzbF9lY19uZXcoRVZQX1BLRVkgKik7Ci0gdm9pZCBJbml0X29zc2xfZWModm9pZCk7 Ci0gCi0gI2RlZmluZSBPU1NMX1BLRVlfQk5fREVGX0dFVFRFUjAoX2tleXR5cGUsIF90eXBlLCBf bmFtZSwgX2dldCkgICAgICAgICAgXAotZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29zc2xfdHMu YyBiL2V4dC9vcGVuc3NsL29zc2xfdHMuYwotaW5kZXggYjMxYTg1NGE2M2U5YWMuLjM5M2UwOGFj ZmYwYzFlIDEwMDY0NAotLS0tIGEvZXh0L29wZW5zc2wvb3NzbF90cy5jCi0rKysgYi9leHQvb3Bl bnNzbC9vc3NsX3RzLmMKLUBAIC03MDYsNyArNzA2LDcgQEAgb3NzbF90c19yZXNwX2dldF90c2Ff Y2VydGlmaWNhdGUoVkFMVUUgc2VsZikKLSAgICAgVFNfUkVTUCAqcmVzcDsKLSAgICAgUEtDUzcg KnA3OwotICAgICBQS0NTN19TSUdORVJfSU5GTyAqdHNfaW5mbzsKLS0gICAgWDUwOSAqY2VydDsK LSsgICAgY29uc3QgWDUwOSAqY2VydDsKLSAKLSAgICAgR2V0VFNSZXNwb25zZShzZWxmLCByZXNw KTsKLSAgICAgaWYgKCEocDcgPSBUU19SRVNQX2dldF90b2tlbihyZXNwKSkpCi1kaWZmIC0tZ2l0 IGEvZXh0L29wZW5zc2wvb3NzbF94NTA5LmggYi9leHQvb3BlbnNzbC9vc3NsX3g1MDkuaAotaW5k ZXggZDI1MTY3ZWU3YjA4NjguLjcxOTMyZWYxYTlhNjQ3IDEwMDY0NAotLS0tIGEvZXh0L29wZW5z c2wvb3NzbF94NTA5LmgKLSsrKyBiL2V4dC9vcGVuc3NsL29zc2xfeDUwOS5oCi1AQCAtMjksNyAr MjksNyBAQCB2b2lkIEluaXRfb3NzbF94NTA5KHZvaWQpOwotICAqLwotIGV4dGVybiBWQUxVRSBj WDUwOUF0dHI7Ci0gCi0tVkFMVUUgb3NzbF94NTA5YXR0cl9uZXcoWDUwOV9BVFRSSUJVVEUgKik7 Ci0rVkFMVUUgb3NzbF94NTA5YXR0cl9uZXcoY29uc3QgWDUwOV9BVFRSSUJVVEUgKik7Ci0gWDUw OV9BVFRSSUJVVEUgKkdldFg1MDlBdHRyUHRyKFZBTFVFKTsKLSB2b2lkIEluaXRfb3NzbF94NTA5 YXR0cih2b2lkKTsKLSAKLUBAIC0zOCw3ICszOCw3IEBAIHZvaWQgSW5pdF9vc3NsX3g1MDlhdHRy KHZvaWQpOwotICAqLwotIGV4dGVybiBWQUxVRSBjWDUwOUNlcnQ7Ci0gCi0tVkFMVUUgb3NzbF94 NTA5X25ldyhYNTA5ICopOwotK1ZBTFVFIG9zc2xfeDUwOV9uZXcoY29uc3QgWDUwOSAqKTsKLSBY NTA5ICpHZXRYNTA5Q2VydFB0cihWQUxVRSk7Ci0gWDUwOSAqRHVwWDUwOUNlcnRQdHIoVkFMVUUp OwotIHZvaWQgSW5pdF9vc3NsX3g1MDljZXJ0KHZvaWQpOwotQEAgLTQ2LDcgKzQ2LDcgQEAgdm9p ZCBJbml0X29zc2xfeDUwOWNlcnQodm9pZCk7Ci0gLyoKLSAgKiBYNTA5Q1JMCi0gICovCi0tVkFM VUUgb3NzbF94NTA5Y3JsX25ldyhYNTA5X0NSTCAqKTsKLStWQUxVRSBvc3NsX3g1MDljcmxfbmV3 KGNvbnN0IFg1MDlfQ1JMICopOwotIFg1MDlfQ1JMICpHZXRYNTA5Q1JMUHRyKFZBTFVFKTsKLSB2 b2lkIEluaXRfb3NzbF94NTA5Y3JsKHZvaWQpOwotIAotQEAgLTU1LDE0ICs1NSwxNCBAQCB2b2lk IEluaXRfb3NzbF94NTA5Y3JsKHZvaWQpOwotICAqLwotIGV4dGVybiBWQUxVRSBjWDUwOUV4dDsK LSAKLS1WQUxVRSBvc3NsX3g1MDlleHRfbmV3KFg1MDlfRVhURU5TSU9OICopOwotK1ZBTFVFIG9z c2xfeDUwOWV4dF9uZXcoY29uc3QgWDUwOV9FWFRFTlNJT04gKik7Ci0gWDUwOV9FWFRFTlNJT04g KkdldFg1MDlFeHRQdHIoVkFMVUUpOwotIHZvaWQgSW5pdF9vc3NsX3g1MDlleHQodm9pZCk7Ci0g Ci0gLyoKLSAgKiBYNTA5TmFtZQotICAqLwotLVZBTFVFIG9zc2xfeDUwOW5hbWVfbmV3KFg1MDlf TkFNRSAqKTsKLStWQUxVRSBvc3NsX3g1MDluYW1lX25ldyhjb25zdCBYNTA5X05BTUUgKik7Ci0g WDUwOV9OQU1FICpHZXRYNTA5TmFtZVB0cihWQUxVRSk7Ci0gdm9pZCBJbml0X29zc2xfeDUwOW5h bWUodm9pZCk7Ci0gCi1AQCAtNzcsNyArNzcsNyBAQCB2b2lkIEluaXRfb3NzbF94NTA5cmVxKHZv aWQpOwotICAqLwotIGV4dGVybiBWQUxVRSBjWDUwOVJldjsKLSAKLS1WQUxVRSBvc3NsX3g1MDly ZXZva2VkX25ldyhYNTA5X1JFVk9LRUQgKik7Ci0rVkFMVUUgb3NzbF94NTA5cmV2b2tlZF9uZXco Y29uc3QgWDUwOV9SRVZPS0VEICopOwotIFg1MDlfUkVWT0tFRCAqRHVwWDUwOVJldm9rZWRQdHIo VkFMVUUpOwotIHZvaWQgSW5pdF9vc3NsX3g1MDlyZXZva2VkKHZvaWQpOwotIAotZGlmZiAtLWdp dCBhL2V4dC9vcGVuc3NsL29zc2xfeDUwOWF0dHIuYyBiL2V4dC9vcGVuc3NsL29zc2xfeDUwOWF0 dHIuYwotaW5kZXggNDc2OWU1NmUxZTg1MDEuLmIwNzczZTdhN2RjYTI4IDEwMDY0NAotLS0tIGEv ZXh0L29wZW5zc2wvb3NzbF94NTA5YXR0ci5jCi0rKysgYi9leHQvb3BlbnNzbC9vc3NsX3g1MDlh dHRyLmMKLUBAIC00OCwxMyArNDgsMTQgQEAgc3RhdGljIGNvbnN0IHJiX2RhdGFfdHlwZV90IG9z c2xfeDUwOWF0dHJfdHlwZSA9IHsKLSAgKiBQdWJsaWMKLSAgKi8KLSBWQUxVRQotLW9zc2xfeDUw OWF0dHJfbmV3KFg1MDlfQVRUUklCVVRFICphdHRyKQotK29zc2xfeDUwOWF0dHJfbmV3KGNvbnN0 IFg1MDlfQVRUUklCVVRFICphdHRyKQotIHsKLSAgICAgWDUwOV9BVFRSSUJVVEUgKm5ldzsKLSAg ICAgVkFMVUUgb2JqOwotIAotICAgICBvYmogPSBOZXdYNTA5QXR0cihjWDUwOUF0dHIpOwotLSAg ICBuZXcgPSBYNTA5X0FUVFJJQlVURV9kdXAoYXR0cik7Ci0rICAgIC8qIE9wZW5TU0wgMS4xLjEg dGFrZXMgYSBub24tY29uc3QgcG9pbnRlciAqLwotKyAgICBuZXcgPSBYNTA5X0FUVFJJQlVURV9k dXAoKFg1MDlfQVRUUklCVVRFICopYXR0cik7Ci0gICAgIGlmICghbmV3KQotICAgICAgICAgb3Nz bF9yYWlzZShlWDUwOUF0dHJFcnJvciwgIlg1MDlfQVRUUklCVVRFX2R1cCIpOwotICAgICBTZXRY NTA5QXR0cihvYmosIG5ldyk7Ci1AQCAtMTk2LDcgKzE5Nyw3IEBAIG9zc2xfeDUwOWF0dHJfc2V0 X3ZhbHVlKFZBTFVFIHNlbGYsIFZBTFVFIHZhbHVlKQotICAgICAgICAgb3NzbF9yYWlzZShlWDUw OUF0dHJFcnJvciwgImF0dHJpYnV0ZSB2YWx1ZSBtdXN0IGJlIEFTTjE6OlNldCIpOwotIAotICAg ICBpZiAoWDUwOV9BVFRSSUJVVEVfY291bnQoYXR0cikpIHsgLyogcG9wdWxhdGVkLCByZXNldCBm aXJzdCAqLwotLSAgICAgICAgQVNOMV9PQkpFQ1QgKm9iaiA9IFg1MDlfQVRUUklCVVRFX2dldDBf b2JqZWN0KGF0dHIpOwotKyAgICAgICAgY29uc3QgQVNOMV9PQkpFQ1QgKm9iaiA9IFg1MDlfQVRU UklCVVRFX2dldDBfb2JqZWN0KGF0dHIpOwotICAgICAgICAgWDUwOV9BVFRSSUJVVEUgKm5ld19h dHRyID0gWDUwOV9BVFRSSUJVVEVfY3JlYXRlX2J5X09CSihOVUxMLCBvYmosIDAsIE5VTEwsIC0x KTsKLSAgICAgICAgIGlmICghbmV3X2F0dHIpIHsKLSAgICAgICAgICAgICBza19BU04xX1RZUEVf cG9wX2ZyZWUoc2ssIEFTTjFfVFlQRV9mcmVlKTsKLUBAIC0yNDAsNyArMjQxLDcgQEAgb3NzbF94 NTA5YXR0cl9nZXRfdmFsdWUoVkFMVUUgc2VsZikKLSAKLSAgICAgY291bnQgPSBYNTA5X0FUVFJJ QlVURV9jb3VudChhdHRyKTsKLSAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCi0tICAg ICAgICBza19BU04xX1RZUEVfcHVzaChzaywgWDUwOV9BVFRSSUJVVEVfZ2V0MF90eXBlKGF0dHIs IGkpKTsKLSsgICAgICAgIHNrX0FTTjFfVFlQRV9wdXNoKHNrLCAoQVNOMV9UWVBFICopWDUwOV9B VFRSSUJVVEVfZ2V0MF90eXBlKGF0dHIsIGkpKTsKLSAKLSAgICAgaWYgKChsZW4gPSBpMmRfQVNO MV9TRVRfQU5ZKHNrLCBOVUxMKSkgPD0gMCkgewotICAgICAgICAgc2tfQVNOMV9UWVBFX2ZyZWUo c2spOwotZGlmZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29zc2xfeDUwOWNlcnQuYyBiL2V4dC9vcGVu c3NsL29zc2xfeDUwOWNlcnQuYwotaW5kZXggOTU2NzljN2QyNGVhNzIuLmRlMjQ2NzU5YWI3YWYz IDEwMDY0NAotLS0tIGEvZXh0L29wZW5zc2wvb3NzbF94NTA5Y2VydC5jCi0rKysgYi9leHQvb3Bl bnNzbC9vc3NsX3g1MDljZXJ0LmMKLUBAIC00OCwxMyArNDgsMTQgQEAgc3RhdGljIGNvbnN0IHJi X2RhdGFfdHlwZV90IG9zc2xfeDUwOV90eXBlID0gewotICAqIFB1YmxpYwotICAqLwotIFZBTFVF Ci0tb3NzbF94NTA5X25ldyhYNTA5ICp4NTA5KQotK29zc2xfeDUwOV9uZXcoY29uc3QgWDUwOSAq eDUwOSkKLSB7Ci0gICAgIFg1MDkgKm5ldzsKLSAgICAgVkFMVUUgb2JqOwotIAotICAgICBvYmog PSBOZXdYNTA5KGNYNTA5Q2VydCk7Ci0tICAgIG5ldyA9IFg1MDlfZHVwKHg1MDkpOwotKyAgICAv KiBPcGVuU1NMIDEuMS4xIHRha2VzIGEgbm9uLWNvbnN0IHBvaW50ZXIgKi8KLSsgICAgbmV3ID0g WDUwOV9kdXAoKFg1MDkgKil4NTA5KTsKLSAgICAgaWYgKCFuZXcpCi0gICAgICAgICBvc3NsX3Jh aXNlKGVYNTA5Q2VydEVycm9yLCAiWDUwOV9kdXAiKTsKLSAgICAgU2V0WDUwOShvYmosIG5ldyk7 Ci1AQCAtMzQ1LDcgKzM0Niw3IEBAIHN0YXRpYyBWQUxVRQotIG9zc2xfeDUwOV9nZXRfc3ViamVj dChWQUxVRSBzZWxmKQotIHsKLSAgICAgWDUwOSAqeDUwOTsKLS0gICAgWDUwOV9OQU1FICpuYW1l OwotKyAgICBjb25zdCBYNTA5X05BTUUgKm5hbWU7Ci0gCi0gICAgIEdldFg1MDkoc2VsZiwgeDUw OSk7Ci0gICAgIGlmICghKG5hbWUgPSBYNTA5X2dldF9zdWJqZWN0X25hbWUoeDUwOSkpKSB7IC8q IE5PIERVUCAtIGRvbid0IGZyZWUhICovCi1AQCAtMzgwLDcgKzM4MSw3IEBAIHN0YXRpYyBWQUxV RQotIG9zc2xfeDUwOV9nZXRfaXNzdWVyKFZBTFVFIHNlbGYpCi0gewotICAgICBYNTA5ICp4NTA5 OwotLSAgICBYNTA5X05BTUUgKm5hbWU7Ci0rICAgIGNvbnN0IFg1MDlfTkFNRSAqbmFtZTsKLSAK LSAgICAgR2V0WDUwOShzZWxmLCB4NTA5KTsKLSAgICAgaWYoIShuYW1lID0gWDUwOV9nZXRfaXNz dWVyX25hbWUoeDUwOSkpKSB7IC8qIE5PIERVUCAtIGRvbid0IGZyZWUhICovCi1AQCAtNjAzLDE0 ICs2MDQsMTMgQEAgb3NzbF94NTA5X2dldF9leHRlbnNpb25zKFZBTFVFIHNlbGYpCi0gewotICAg ICBYNTA5ICp4NTA5OwotICAgICBpbnQgY291bnQsIGk7Ci0tICAgIFg1MDlfRVhURU5TSU9OICpl eHQ7Ci0gICAgIFZBTFVFIGFyeTsKLSAKLSAgICAgR2V0WDUwOShzZWxmLCB4NTA5KTsKLSAgICAg Y291bnQgPSBYNTA5X2dldF9leHRfY291bnQoeDUwOSk7Ci0gICAgIGFyeSA9IHJiX2FyeV9uZXdf Y2FwYShjb3VudCk7Ci0gICAgIGZvciAoaT0wOyBpPGNvdW50OyBpKyspIHsKLS0gICAgICAgIGV4 dCA9IFg1MDlfZ2V0X2V4dCh4NTA5LCBpKTsgLyogTk8gRFVQIC0gZG9uJ3QgZnJlZSEgKi8KLSsg ICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleHQgPSBYNTA5X2dldF9leHQoeDUwOSwgaSk7 Ci0gICAgICAgICByYl9hcnlfcHVzaChhcnksIG9zc2xfeDUwOWV4dF9uZXcoZXh0KSk7Ci0gICAg IH0KLSAKLWRpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX3g1MDljcmwuYyBiL2V4dC9vcGVu c3NsL29zc2xfeDUwOWNybC5jCi1pbmRleCBhMjIxNDI5YzM0N2Q1ZS4uOWI1OWJkYTllMmE4YWQg MTAwNjQ0Ci0tLS0gYS9leHQvb3BlbnNzbC9vc3NsX3g1MDljcmwuYwotKysrIGIvZXh0L29wZW5z c2wvb3NzbF94NTA5Y3JsLmMKLUBAIC01OCwxMyArNTgsMTQgQEAgR2V0WDUwOUNSTFB0cihWQUxV RSBvYmopCi0gfQotIAotIFZBTFVFCi0tb3NzbF94NTA5Y3JsX25ldyhYNTA5X0NSTCAqY3JsKQot K29zc2xfeDUwOWNybF9uZXcoY29uc3QgWDUwOV9DUkwgKmNybCkKLSB7Ci0gICAgIFg1MDlfQ1JM ICp0bXA7Ci0gICAgIFZBTFVFIG9iajsKLSAKLSAgICAgb2JqID0gTmV3WDUwOUNSTChjWDUwOUNS TCk7Ci0tICAgIHRtcCA9IFg1MDlfQ1JMX2R1cChjcmwpOwotKyAgICAvKiBPcGVuU1NMIDEuMS4x IHRha2VzIGEgbm9uLWNvbnN0IHBvaW50ZXIgKi8KLSsgICAgdG1wID0gWDUwOV9DUkxfZHVwKChY NTA5X0NSTCAqKWNybCk7Ci0gICAgIGlmICghdG1wKQotICAgICAgICAgb3NzbF9yYWlzZShlWDUw OUNSTEVycm9yLCAiWDUwOV9DUkxfZHVwIik7Ci0gICAgIFNldFg1MDlDUkwob2JqLCB0bXApOwot QEAgLTI4OSw3ICsyOTAsNyBAQCBvc3NsX3g1MDljcmxfZ2V0X3Jldm9rZWQoVkFMVUUgc2VsZikK LSAgICAgbnVtID0gc2tfWDUwOV9SRVZPS0VEX251bShzayk7Ci0gICAgIGFyeSA9IHJiX2FyeV9u ZXdfY2FwYShudW0pOwotICAgICBmb3IoaT0wOyBpPG51bTsgaSsrKSB7Ci0tICAgICAgICBYNTA5 X1JFVk9LRUQgKnJldiA9IHNrX1g1MDlfUkVWT0tFRF92YWx1ZShzaywgaSk7Ci0rICAgICAgICBj b25zdCBYNTA5X1JFVk9LRUQgKnJldiA9IHNrX1g1MDlfUkVWT0tFRF92YWx1ZShzaywgaSk7Ci0g ICAgICAgICByYl9hcnlfcHVzaChhcnksIG9zc2xfeDUwOXJldm9rZWRfbmV3KHJldikpOwotICAg ICB9Ci0gCi1AQCAtNDQzLDE0ICs0NDQsMTMgQEAgb3NzbF94NTA5Y3JsX2dldF9leHRlbnNpb25z KFZBTFVFIHNlbGYpCi0gewotICAgICBYNTA5X0NSTCAqY3JsOwotICAgICBpbnQgY291bnQsIGk7 Ci0tICAgIFg1MDlfRVhURU5TSU9OICpleHQ7Ci0gICAgIFZBTFVFIGFyeTsKLSAKLSAgICAgR2V0 WDUwOUNSTChzZWxmLCBjcmwpOwotICAgICBjb3VudCA9IFg1MDlfQ1JMX2dldF9leHRfY291bnQo Y3JsKTsKLSAgICAgYXJ5ID0gcmJfYXJ5X25ld19jYXBhKGNvdW50KTsKLSAgICAgZm9yIChpPTA7 IGk8Y291bnQ7IGkrKykgewotLSAgICAgICAgZXh0ID0gWDUwOV9DUkxfZ2V0X2V4dChjcmwsIGkp OyAvKiBOTyBEVVAgLSBkb24ndCBmcmVlISAqLwotKyAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJ T04gKmV4dCA9IFg1MDlfQ1JMX2dldF9leHQoY3JsLCBpKTsKLSAgICAgICAgIHJiX2FyeV9wdXNo KGFyeSwgb3NzbF94NTA5ZXh0X25ldyhleHQpKTsKLSAgICAgfQotIAotZGlmZiAtLWdpdCBhL2V4 dC9vcGVuc3NsL29zc2xfeDUwOWV4dC5jIGIvZXh0L29wZW5zc2wvb3NzbF94NTA5ZXh0LmMKLWlu ZGV4IGVmNjZlY2MzZmU4MzkwLi4xZmU3MjdkM2YxZDJlYSAxMDA2NDQKLS0tLSBhL2V4dC9vcGVu c3NsL29zc2xfeDUwOWV4dC5jCi0rKysgYi9leHQvb3BlbnNzbC9vc3NsX3g1MDlleHQuYwotQEAg LTYyLDEzICs2MiwxNCBAQCBzdGF0aWMgY29uc3QgcmJfZGF0YV90eXBlX3Qgb3NzbF94NTA5ZXh0 X3R5cGUgPSB7Ci0gICogUHVibGljCi0gICovCi0gVkFMVUUKLS1vc3NsX3g1MDlleHRfbmV3KFg1 MDlfRVhURU5TSU9OICpleHQpCi0rb3NzbF94NTA5ZXh0X25ldyhjb25zdCBYNTA5X0VYVEVOU0lP TiAqZXh0KQotIHsKLSAgICAgWDUwOV9FWFRFTlNJT04gKm5ldzsKLSAgICAgVkFMVUUgb2JqOwot IAotICAgICBvYmogPSBOZXdYNTA5RXh0KGNYNTA5RXh0KTsKLS0gICAgbmV3ID0gWDUwOV9FWFRF TlNJT05fZHVwKGV4dCk7Ci0rICAgIC8qIE9wZW5TU0wgMS4xLjEgdGFrZXMgYSBub24tY29uc3Qg cG9pbnRlciAqLwotKyAgICBuZXcgPSBYNTA5X0VYVEVOU0lPTl9kdXAoKFg1MDlfRVhURU5TSU9O ICopZXh0KTsKLSAgICAgaWYgKCFuZXcpCi0gICAgICAgICBvc3NsX3JhaXNlKGVYNTA5RXh0RXJy b3IsICJYNTA5X0VYVEVOU0lPTl9kdXAiKTsKLSAgICAgU2V0WDUwOUV4dChvYmosIG5ldyk7Ci1A QCAtMzM4LDEyICszMzksMjAgQEAgb3NzbF94NTA5ZXh0X3NldF92YWx1ZShWQUxVRSBzZWxmLCBW QUxVRSBkYXRhKQotICAgICBHZXRYNTA5RXh0KHNlbGYsIGV4dCk7Ci0gICAgIGRhdGEgPSBvc3Ns X3RvX2Rlcl9pZl9wb3NzaWJsZShkYXRhKTsKLSAgICAgU3RyaW5nVmFsdWUoZGF0YSk7Ci0tICAg IGFzbjFzID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KTsKLSAKLSsgICAgYXNuMXMgPSBB U04xX09DVEVUX1NUUklOR19uZXcoKTsKLSsgICAgaWYgKCFhc24xcykKLSsgICAgICAgIG9zc2xf cmFpc2UoZVg1MDlFeHRFcnJvciwgIkFTTjFfT0NURVRfU1RSSU5HX25ldyIpOwotICAgICBpZiAo IUFTTjFfT0NURVRfU1RSSU5HX3NldChhc24xcywgKHVuc2lnbmVkIGNoYXIgKilSU1RSSU5HX1BU UihkYXRhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlNUUklOR19MRU5JTlQo ZGF0YSkpKSB7Ci0rICAgICAgICBBU04xX09DVEVUX1NUUklOR19mcmVlKGFzbjFzKTsKLSAgICAg ICAgIG9zc2xfcmFpc2UoZVg1MDlFeHRFcnJvciwgIkFTTjFfT0NURVRfU1RSSU5HX3NldCIpOwot ICAgICB9Ci0rICAgIGlmICghWDUwOV9FWFRFTlNJT05fc2V0X2RhdGEoZXh0LCBhc24xcykpIHsK LSsgICAgICAgIEFTTjFfT0NURVRfU1RSSU5HX2ZyZWUoYXNuMXMpOwotKyAgICAgICAgb3NzbF9y YWlzZShlWDUwOUV4dEVycm9yLCAiWDUwOV9FWFRFTlNJT05fc2V0X2RhdGEiKTsKLSsgICAgfQot KyAgICBBU04xX09DVEVUX1NUUklOR19mcmVlKGFzbjFzKTsKLSAKLSAgICAgcmV0dXJuIGRhdGE7 Ci0gfQotQEAgLTM4Niw3ICszOTUsNyBAQCBvc3NsX3g1MDlleHRfZ2V0X3ZhbHVlKFZBTFVFIG9i aikKLSAgICAgaWYgKCEob3V0ID0gQklPX25ldyhCSU9fc19tZW0oKSkpKQotICAgICAgICAgb3Nz bF9yYWlzZShlWDUwOUV4dEVycm9yLCBOVUxMKTsKLSAgICAgaWYgKCFYNTA5VjNfRVhUX3ByaW50 KG91dCwgZXh0LCAwLCAwKSkKLS0gICAgICAgIEFTTjFfU1RSSU5HX3ByaW50KG91dCwgKEFTTjFf U1RSSU5HICopWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KSk7Ci0rICAgICAgICBBU04xX1NU UklOR19wcmludChvdXQsIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCkpOwotICAgICByZXQg PSBvc3NsX21lbWJpbzJzdHIob3V0KTsKLSAKLSAgICAgcmV0dXJuIHJldDsKLUBAIC0zOTYsNyAr NDA1LDcgQEAgc3RhdGljIFZBTFVFCi0gb3NzbF94NTA5ZXh0X2dldF92YWx1ZV9kZXIoVkFMVUUg b2JqKQotIHsKLSAgICAgWDUwOV9FWFRFTlNJT04gKmV4dDsKLS0gICAgQVNOMV9PQ1RFVF9TVFJJ TkcgKnZhbHVlOwotKyAgICBjb25zdCBBU04xX09DVEVUX1NUUklORyAqdmFsdWU7Ci0gCi0gICAg IEdldFg1MDlFeHQob2JqLCBleHQpOwotICAgICBpZiAoKHZhbHVlID0gWDUwOV9FWFRFTlNJT05f Z2V0X2RhdGEoZXh0KSkgPT0gTlVMTCkKLWRpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX3g1 MDluYW1lLmMgYi9leHQvb3BlbnNzbC9vc3NsX3g1MDluYW1lLmMKLWluZGV4IDViM2MzZjcyNjFk YzI2Li4yYjY2YTRhMDk3YzI5ZSAxMDA2NDQKLS0tLSBhL2V4dC9vcGVuc3NsL29zc2xfeDUwOW5h bWUuYwotKysrIGIvZXh0L29wZW5zc2wvb3NzbF94NTA5bmFtZS5jCi1AQCAtNTMsMTMgKzUzLDE0 IEBAIHN0YXRpYyBjb25zdCByYl9kYXRhX3R5cGVfdCBvc3NsX3g1MDluYW1lX3R5cGUgPSB7Ci0g ICogUHVibGljCi0gICovCi0gVkFMVUUKLS1vc3NsX3g1MDluYW1lX25ldyhYNTA5X05BTUUgKm5h bWUpCi0rb3NzbF94NTA5bmFtZV9uZXcoY29uc3QgWDUwOV9OQU1FICpuYW1lKQotIHsKLSAgICAg WDUwOV9OQU1FICpuZXc7Ci0gICAgIFZBTFVFIG9iajsKLSAKLSAgICAgb2JqID0gTmV3WDUwOU5h bWUoY1g1MDlOYW1lKTsKLS0gICAgbmV3ID0gWDUwOV9OQU1FX2R1cChuYW1lKTsKLSsgICAgLyog T3BlblNTTCAxLjEuMSB0YWtlcyBhIG5vbi1jb25zdCBwb2ludGVyICovCi0rICAgIG5ldyA9IFg1 MDlfTkFNRV9kdXAoKFg1MDlfTkFNRSAqKW5hbWUpOwotICAgICBpZiAoIW5ldykKLSAgICAgICAg IG9zc2xfcmFpc2UoZVg1MDlOYW1lRXJyb3IsICJYNTA5X05BTUVfZHVwIik7Ci0gICAgIFNldFg1 MDlOYW1lKG9iaiwgbmV3KTsKLWRpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX3g1MDlyZXEu YyBiL2V4dC9vcGVuc3NsL29zc2xfeDUwOXJlcS5jCi1pbmRleCA0MzNjYzQ2MWE5OTMzYi4uYWQ1 ZGQwODAzMzIwMzUgMTAwNjQ0Ci0tLS0gYS9leHQvb3BlbnNzbC9vc3NsX3g1MDlyZXEuYwotKysr IGIvZXh0L29wZW5zc2wvb3NzbF94NTA5cmVxLmMKLUBAIC0yMzEsNyArMjMxLDcgQEAgc3RhdGlj IFZBTFVFCi0gb3NzbF94NTA5cmVxX2dldF9zdWJqZWN0KFZBTFVFIHNlbGYpCi0gewotICAgICBY NTA5X1JFUSAqcmVxOwotLSAgICBYNTA5X05BTUUgKm5hbWU7Ci0rICAgIGNvbnN0IFg1MDlfTkFN RSAqbmFtZTsKLSAKLSAgICAgR2V0WDUwOVJlcShzZWxmLCByZXEpOwotICAgICBpZiAoIShuYW1l ID0gWDUwOV9SRVFfZ2V0X3N1YmplY3RfbmFtZShyZXEpKSkgeyAvKiBOTyBEVVAgLSBkb24ndCBm cmVlICovCi1AQCAtMzUxLDcgKzM1MSw3IEBAIG9zc2xfeDUwOXJlcV9nZXRfYXR0cmlidXRlcyhW QUxVRSBzZWxmKQotIHsKLSAgICAgWDUwOV9SRVEgKnJlcTsKLSAgICAgaW50IGNvdW50LCBpOwot LSAgICBYNTA5X0FUVFJJQlVURSAqYXR0cjsKLSsgICAgY29uc3QgWDUwOV9BVFRSSUJVVEUgKmF0 dHI7Ci0gICAgIFZBTFVFIGFyeTsKLSAKLSAgICAgR2V0WDUwOVJlcShzZWxmLCByZXEpOwotZGlm ZiAtLWdpdCBhL2V4dC9vcGVuc3NsL29zc2xfeDUwOXJldm9rZWQuYyBiL2V4dC9vcGVuc3NsL29z c2xfeDUwOXJldm9rZWQuYwotaW5kZXggYjg4YzM5MGM3MjY0MWUuLjAxNTE5NjFlOWY2Yjg1IDEw MDY0NAotLS0tIGEvZXh0L29wZW5zc2wvb3NzbF94NTA5cmV2b2tlZC5jCi0rKysgYi9leHQvb3Bl bnNzbC9vc3NsX3g1MDlyZXZva2VkLmMKLUBAIC00OCwxMyArNDgsMTQgQEAgc3RhdGljIGNvbnN0 IHJiX2RhdGFfdHlwZV90IG9zc2xfeDUwOXJldl90eXBlID0gewotICAqIFBVQkxJQwotICAqLwot IFZBTFVFCi0tb3NzbF94NTA5cmV2b2tlZF9uZXcoWDUwOV9SRVZPS0VEICpyZXYpCi0rb3NzbF94 NTA5cmV2b2tlZF9uZXcoY29uc3QgWDUwOV9SRVZPS0VEICpyZXYpCi0gewotICAgICBYNTA5X1JF Vk9LRUQgKm5ldzsKLSAgICAgVkFMVUUgb2JqOwotIAotICAgICBvYmogPSBOZXdYNTA5UmV2KGNY NTA5UmV2KTsKLS0gICAgbmV3ID0gWDUwOV9SRVZPS0VEX2R1cChyZXYpOwotKyAgICAvKiBPcGVu U1NMIDEuMS4xIHRha2VzIGEgbm9uLWNvbnN0IHBvaW50ZXIgKi8KLSsgICAgbmV3ID0gWDUwOV9S RVZPS0VEX2R1cCgoWDUwOV9SRVZPS0VEICopcmV2KTsKLSAgICAgaWYgKCFuZXcpCi0gICAgICAg ICBvc3NsX3JhaXNlKGVYNTA5UmV2RXJyb3IsICJYNTA5X1JFVk9LRURfZHVwIik7Ci0gICAgIFNl dFg1MDlSZXYob2JqLCBuZXcpOwotQEAgLTE4NSw3ICsxODYsNyBAQCBvc3NsX3g1MDlyZXZva2Vk X2dldF9leHRlbnNpb25zKFZBTFVFIHNlbGYpCi0gewotICAgICBYNTA5X1JFVk9LRUQgKnJldjsK LSAgICAgaW50IGNvdW50LCBpOwotLSAgICBYNTA5X0VYVEVOU0lPTiAqZXh0OwotKyAgICBjb25z dCBYNTA5X0VYVEVOU0lPTiAqZXh0OwotICAgICBWQUxVRSBhcnk7Ci0gCi0gICAgIEdldFg1MDlS ZXYoc2VsZiwgcmV2KTsKLWRpZmYgLS1naXQgYS9leHQvb3BlbnNzbC9vc3NsX3g1MDlzdG9yZS5j IGIvZXh0L29wZW5zc2wvb3NzbF94NTA5c3RvcmUuYwotaW5kZXggYmUxNDU4Y2VjNWQ3MjEuLjQw OGUxOGM2YzQxOGZmIDEwMDY0NAotLS0tIGEvZXh0L29wZW5zc2wvb3NzbF94NTA5c3RvcmUuYwot KysrIGIvZXh0L29wZW5zc2wvb3NzbF94NTA5c3RvcmUuYwotQEAgLTUxMiwxMCArNTEyLDggQEAg c3RhdGljIHZvaWQKLSBvc3NsX3g1MDlzdGN0eF9mcmVlKHZvaWQgKnB0cikKLSB7Ci0gICAgIFg1 MDlfU1RPUkVfQ1RYICpjdHggPSBwdHI7Ci0tICAgIGlmIChYNTA5X1NUT1JFX0NUWF9nZXQwX3Vu dHJ1c3RlZChjdHgpKQotLSAgICAgICAgc2tfWDUwOV9wb3BfZnJlZShYNTA5X1NUT1JFX0NUWF9n ZXQwX3VudHJ1c3RlZChjdHgpLCBYNTA5X2ZyZWUpOwotLSAgICBpZiAoWDUwOV9TVE9SRV9DVFhf Z2V0MF9jZXJ0KGN0eCkpCi0tICAgICAgICBYNTA5X2ZyZWUoWDUwOV9TVE9SRV9DVFhfZ2V0MF9j ZXJ0KGN0eCkpOwotKyAgICBza19YNTA5X3BvcF9mcmVlKFg1MDlfU1RPUkVfQ1RYX2dldDBfdW50 cnVzdGVkKGN0eCksIFg1MDlfZnJlZSk7Ci0rICAgIFg1MDlfZnJlZSgoWDUwOSAqKVg1MDlfU1RP UkVfQ1RYX2dldDBfY2VydChjdHgpKTsKLSAgICAgWDUwOV9TVE9SRV9DVFhfZnJlZShjdHgpOwot IH0KLSAKLUBAIC03MzYsNyArNzM0LDcgQEAgc3RhdGljIFZBTFVFCi0gb3NzbF94NTA5c3RjdHhf Z2V0X2N1cnJfY2VydChWQUxVRSBzZWxmKQotIHsKLSAgICAgWDUwOV9TVE9SRV9DVFggKmN0eDsK LS0gICAgWDUwOSAqeDUwOTsKLSsgICAgY29uc3QgWDUwOSAqeDUwOTsKLSAKLSAgICAgR2V0WDUw OVN0Q3R4KHNlbGYsIGN0eCk7Ci0gICAgIHg1MDkgPSBYNTA5X1NUT1JFX0NUWF9nZXRfY3VycmVu dF9jZXJ0KGN0eCk7Ci1AQCAtNzU4LDcgKzc1Niw3IEBAIHN0YXRpYyBWQUxVRQotIG9zc2xfeDUw OXN0Y3R4X2dldF9jdXJyX2NybChWQUxVRSBzZWxmKQotIHsKLSAgICAgWDUwOV9TVE9SRV9DVFgg KmN0eDsKLS0gICAgWDUwOV9DUkwgKmNybDsKLSsgICAgY29uc3QgWDUwOV9DUkwgKmNybDsKLSAK LSAgICAgR2V0WDUwOVN0Q3R4KHNlbGYsIGN0eCk7Ci0gICAgIGNybCA9IFg1MDlfU1RPUkVfQ1RY X2dldDBfY3VycmVudF9jcmwoY3R4KTsKLWRpZmYgLS1naXQgYS90ZXN0L29wZW5zc2wvdGVzdF9v c3NsLnJiIGIvdGVzdC9vcGVuc3NsL3Rlc3Rfb3NzbC5yYgotaW5kZXggNTEyNjI5ODVmNTY1NWUu LjFiOWJkZTUzZWY3MmQzIDEwMDY0NAotLS0tIGEvdGVzdC9vcGVuc3NsL3Rlc3Rfb3NzbC5yYgot KysrIGIvdGVzdC9vcGVuc3NsL3Rlc3Rfb3NzbC5yYgotQEAgLTI0LDYgKzI0LDE2IEBAIGRlZiB0 ZXN0X2ZpeGVkX2xlbmd0aF9zZWN1cmVfY29tcGFyZQotICAgICBhc3NlcnRfcmFpc2UoQXJndW1l bnRFcnJvcikgeyBPcGVuU1NMLmZpeGVkX2xlbmd0aF9zZWN1cmVfY29tcGFyZSgiYWFhIiwgImJi YmIiKSB9Ci0gICBlbmQKLSAKLSsgIGRlZiB0ZXN0X2ZpeGVkX2xlbmd0aF9zZWN1cmVfY29tcGFy ZV91YWYKLSsgICAgc3RyMSA9ICJBIiAqIDEwMDAwMDAKLSsgICAgZXZpbF9vYmogPSBPYmplY3Qu bmV3Ci0rICAgIGV2aWxfb2JqLmRlZmluZV9zaW5nbGV0b25fbWV0aG9kKDp0b19zdHIpIGRvCi0r ICAgICAgc3RyMS5yZXBsYWNlKCJDIiAqIDEwMDAwMDApCi0rICAgICAgIkIiICogMTAwMDAwMAot KyAgICBlbmQKLSsgICAgYXNzZXJ0X2ZhbHNlKE9wZW5TU0wuZml4ZWRfbGVuZ3RoX3NlY3VyZV9j b21wYXJlKHN0cjEsIGV2aWxfb2JqKSkKLSsgIGVuZAotKwotICAgZGVmIHRlc3Rfc2VjdXJlX2Nv bXBhcmUKLSAgICAgYXNzZXJ0X2ZhbHNlKE9wZW5TU0wuc2VjdXJlX2NvbXBhcmUoImFhYSIsICJh IikpCi0gICAgIGFzc2VydF9mYWxzZShPcGVuU1NMLnNlY3VyZV9jb21wYXJlKCJhYWEiLCAiYWEi KSkKLWRpZmYgLS1naXQgYS90ZXN0L29wZW5zc2wvdGVzdF9wa2V5X3JzYS5yYiBiL3Rlc3Qvb3Bl bnNzbC90ZXN0X3BrZXlfcnNhLnJiCi1pbmRleCA4NmY1MWNmNDM4NWEwMS4uMTcxNmFlZjM4MDdh ZjkgMTAwNjQ0Ci0tLS0gYS90ZXN0L29wZW5zc2wvdGVzdF9wa2V5X3JzYS5yYgotKysrIGIvdGVz dC9vcGVuc3NsL3Rlc3RfcGtleV9yc2EucmIKLUBAIC00NjIsNTQgKzQ2Miw1NCBAQCBkZWYgdGVz dF9wcml2YXRlX2VuY29kaW5nCi0gCi0gICBkZWYgdGVzdF9wcml2YXRlX2VuY29kaW5nX2VuY3J5 cHRlZAotICAgICByc2EgPSBGaXh0dXJlcy5wa2V5KCJyc2EyMDQ4IikKLS0gICAgZW5jb2RlZCA9 IHJzYS5wcml2YXRlX3RvX2RlcigiYWVzLTEyOC1jYmMiLCAiYWJjZGVmIikKLSsgICAgZW5jb2Rl ZCA9IHJzYS5wcml2YXRlX3RvX2RlcigiYWVzLTEyOC1jYmMiLCAiYWJjZGVmZ2giKQotICAgICBh c24xID0gT3BlblNTTDo6QVNOMS5kZWNvZGUoZW5jb2RlZCkgIyBQS0NTICM4IEVuY3J5cHRlZFBy aXZhdGVLZXlJbmZvCi0gICAgIGFzc2VydF9raW5kX29mIE9wZW5TU0w6OkFTTjE6OlNlcXVlbmNl LCBhc24xCi0gICAgIGFzc2VydF9lcXVhbCAyLCBhc24xLnZhbHVlLnNpemUKLSAgICAgYXNzZXJ0 X25vdF9lcXVhbCByc2EucHJpdmF0ZV90b19kZXIsIGVuY29kZWQKLS0gICAgYXNzZXJ0X3NhbWVf cnNhIHJzYSwgT3BlblNTTDo6UEtleS5yZWFkKGVuY29kZWQsICJhYmNkZWYiKQotLSAgICBhc3Nl cnRfc2FtZV9yc2EgcnNhLCBPcGVuU1NMOjpQS2V5LnJlYWQoZW5jb2RlZCkgeyAiYWJjZGVmIiB9 Ci0rICAgIGFzc2VydF9zYW1lX3JzYSByc2EsIE9wZW5TU0w6OlBLZXkucmVhZChlbmNvZGVkLCAi YWJjZGVmZ2giKQotKyAgICBhc3NlcnRfc2FtZV9yc2EgcnNhLCBPcGVuU1NMOjpQS2V5LnJlYWQo ZW5jb2RlZCkgeyAiYWJjZGVmZ2giIH0KLSAgICAgYXNzZXJ0X3JhaXNlKE9wZW5TU0w6OlBLZXk6 OlBLZXlFcnJvcikgeyBPcGVuU1NMOjpQS2V5LnJlYWQoZW5jb2RlZCwgImFiY3h5eiIpIH0KLSAK LS0gICAgZW5jb2RlZCA9IHJzYS5wcml2YXRlX3RvX3BlbSgiYWVzLTEyOC1jYmMiLCAiYWJjZGVm IikKLSsgICAgZW5jb2RlZCA9IHJzYS5wcml2YXRlX3RvX3BlbSgiYWVzLTEyOC1jYmMiLCAiYWJj ZGVmZ2giKQotICAgICBhc3NlcnRfbWF0Y2ggKC9CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVkv KSwgZW5jb2RlZC5saW5lc1swXQotLSAgICBhc3NlcnRfc2FtZV9yc2EgcnNhLCBPcGVuU1NMOjpQ S2V5LnJlYWQoZW5jb2RlZCwgImFiY2RlZiIpCi0rICAgIGFzc2VydF9zYW1lX3JzYSByc2EsIE9w ZW5TU0w6OlBLZXkucmVhZChlbmNvZGVkLCAiYWJjZGVmZ2giKQotIAotICAgICAjIFVzZSBvcGVu c3NsIGluc3RlYWQgb2YgY2VydHRvb2wgZHVlIHRvIGh0dHBzOi8vZ2l0bGFiLmNvbS9nbnV0bHMv Z251dGxzLy0vaXNzdWVzLzE2MzIKLS0gICAgIyBvcGVuc3NsIHBrY3M4IC1pbiB0ZXN0L29wZW5z c2wvZml4dHVyZXMvcGtleS9yc2EyMDQ4LnBlbSAtdG9wazggLXYyIGFlcy0xMjgtY2JjIC1wYXNz b3V0IHBhc3M6YWJjZGVmCi0rICAgICMgb3BlbnNzbCBwa2NzOCAtaW4gdGVzdC9vcGVuc3NsL2Zp eHR1cmVzL3BrZXkvcnNhMjA0OC5wZW0gLXRvcGs4IC12MiBhZXMtMTI4LWNiYyAtcGFzc291dCBw YXNzOmFiY2RlZmdoCi0gICAgIHBlbSA9IDw8fkVPRgotLSAgICAtLS0tLUJFR0lOIEVOQ1JZUFRF RCBQUklWQVRFIEtFWS0tLS0tCi0tICAgIE1JSUZMVEJYQmdrcWhraUc5dzBCQlEwd1NqQXBCZ2tx aGtpRzl3MEJCUXd3SEFRSWF5NVY4Q0RRaTVvQ0FnZ0EKLS0gICAgTUF3R0NDcUdTSWIzRFFJSkJR QXdIUVlKWUlaSUFXVURCQUVDQkJCNmV5YWdjYnN2ZFFsTTFrUGNIN2tpQklJRQotLSAgICAwTmcx YXBJeW9QQVo0QmZDNGtNTmVTbWVBdjNYc3B4cVlpM3VXelhpTnlUY29FNjM5MHN3cndNNld2ZHBY dkxJCi0tICAgIC9uL1YwNmtyeFBaOVg0ZkJHMmtMVXpYdDVmMDlsRXZtUVUxSFcxd0pHVTVTcTNi TmVYQnJsSkY0RHpKRTRXV2QKLS0gICAgd2hWVnZOTW00NGdoZHpOL2pHU3czeis2ZDcxN04rd2Fh N3ZycEJEc0hqaHNQTnd4cHl6VXZjRlBGeXNUYXp4eAotLSAgICBrTi9kemlJQkY2U1JLaTZ3OFZh SkVNUThjekd1NVQzak9jMmUvMXAzL0FZaEhMUFM0TkhoTFI1T1VoMFRLcUxLCi0tICAgIHRBTkFx STlZcUNBamhxY1lDbU4zbU1RWFk1MlZmT3FHOWhsWDF4OVpReXFpSDdsMTAyRVdiUHFvdWs2YkNC TFEKLS0gICAgd0hlcFBnNHVLOTlXc2RoNjVxRXJ5Tm5YUTVabU82YUdiNlQzVEZFTkNhTkttaThO aCsvNWRyN0o3WWZoSXdwbwotLSAgICBGcUh2azBoclo4cjNFUWxyOC90ZDBZYjEvSUt6ZVEzNDYz OHVYZjlVeEs3QzZvK2lsc21KRFI0UEhKVWZaTDIzCi0tICAgIFliOXFXSjBHRXpkNUFNc0k3eDZL dVV4U3VIOW5Lbml2NVR6eXR5M1htYjRGd1hVeUFEV0UxOWNWdWFUK0hyRnoKLS0gICAgR3JhS25B M1VYYkVnV0FVNDgvbDRLMkhjQUh5SEREMkticDhrK28xelVrSDBmV1VkZkU2T1VHdHgxOUZ2NDRK aAotLSAgICBCN3hEbmdLOEs0OEM2bnJqMDYvRFNZZlhsYjJYN1dRaWFwZUc0anQ2VTU3dExIMlhB akhDa3Z1MElCWisvLytQCi0tICAgIHlJV2R1RUhRM3c4RkJSY0lzVE5KbzVDamtHazU4MFRWUUIv T0JMV2ZYNDhBeTNvRjl6Z25vbURJbFZqbDlEMG4KLS0gICAgbEt4dy9LTUNMa3ZCNzhyVWVHYnIx S3dqMzZGaEdwVEJ3M0ZnY1lHYTVvV0ZaVGxjT2dNVFhMcWxiYjlKbkRsQQotLSAgICBaczdUdTBX VHlPVFYvRG5lOW5FbTM5RHp1NndSb2ppSXBteWdURDRGSTdybU95M0NZTnZMM1hQdjdYUWowaG55 Ci0tICAgIEVlL2ZMeHVnWWxRbndQWlNxT1ZFUVkySHNHN0FtRUhSc3Z5NGJJV0lHdCt5ekFQWml4 dDlNVWRKaDkxdHRSdDcKLS0gICAgUUEvOEoxcEFzR3FFdVFwRjZVVUlOWm9wM0o3dHdmaE80eldZ Ti9OTlE1MmVXTlgyS0xmamZHUmhydmF0em1aMAotLSAgICBCdUNzQ0k5aHdFZUU2UFRsaGJYMVJz MTc3TXJEYzN2bHF6MlYzUG8wT3JGalhBeWc5RFIvT0M0aUs1d09HMlpECi0tICAgIDdTdFZTUDhi endRWHN6M2ZKMGFyZEtYZ25VMllEQVA2Vnlramd0K25GSTA5SFYvUzJmYU9jMmcvVUs0WTJraGwK LS0gICAgSjkzdS9HSE16L0tyM2JLV0dZMS82blBkSWRGaGVRanNpTmhkNWdJNHRXaWsyQjNRd1U5 bUVUVG9aMkxTdkRIVQotLSAgICBqWUN5czU3NnhKTGtkTU02bkpkcTcyejR0Q29FUzlJeHlIVnM0 dUxqSEtJby9adEtyKzh4RG84SUw0YXgzVTgrCi0tICAgIE5NaHMvbHdSZUhtUEdhaG0xZnU5ekxS Yk5DVkw3ZTB6ck9xYmp2S2NTRWZ0T2JwVi9MTGNQWVh0RW0rbFpjY2sKLS0gICAgL1BNdzQ5SFNF MzY0YW5LRVhDSDFjeVZXSndkWlJwRlVIdlJwTElycEhydTcvY3RoaGlFTWRMZ0sxL3g4c0xvYgot LSAgICBEaXlpZUx4SDFEUGVYVDRYK3o5NEVSNEl1UFZPY1Y1QVhjL29tZ2hpc3BFWDZETlVubjVq QzRlM1d5YWJqVWJ3Ci0tICAgIE11TzlsVkg5V2kyL3luRXhDcVZtUWtkYlRYdUx3am5pMWZKMjdR NXpiMGFDbWhPOGVxNlA4NjlOQ2poSnVpVWoKLS0gICAgTkk5WHRHTFA1MFlWV0Uwa0w4S0VKcW55 RnVka3k4S2h6azQvZHlpeFFGcWluNUdmVDR2ZXRyTHVuR0h5N2xSQgotLSAgICAzTHBuRnJwTU9y KzB4cjFSVzFrOXZsbWpSc0pTaW9qSmZSZVlPN2dIM0I1c3dpd3cyYXpvZ29MKzRqaEYxSnhoCi0t ICAgIE9ZTFdka0toUDJqU1ZHcXRJRHRueTBPNGxCbTIraExwV2ppSTBtSlE3d2RBCi0tICAgIC0t LS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi0rLS0tLS1CRUdJTiBFTkNSWVBURUQg UFJJVkFURSBLRVktLS0tLQotK01JSUZOVEJmQmdrcWhraUc5dzBCQlEwd1VqQXhCZ2txaGtpRzl3 MEJCUXd3SkFRUStTZzkySGd5OEVnVlBmN3QKLStIZW4xcXdJQ0NBQXdEQVlJS29aSWh2Y05BZ2tG QURBZEJnbGdoa2dCWlFNRUFRSUVFQjVVWDJ4ZERPOC9BS0E4Ci0rK1k1Q1p5VUVnZ1RRa0FyaDRt TVBwbkFlM3hPY0RLTXo4S0NuNWxyTGIvNkRsYTdScDlMSEtHa1VmeUkxMUVadAotK20rT0lyaXd5 OW9EUXF1S3lWdUxRVkdBeFhLayszcHl4TXFMQjBpM2hMWWFtVDN2em9QY3R5VndqdVJ1S29VM0UK LStDYkYwWWhDb3h2V012akhzb2x3WXp4MDBEYkxYb3VFNEJHS3ZQam5odzVod3Rkb1o5UHgwWm5D WEN4VlhpOHovCi0rbWx3N2EycHRLRWlIUVZqdVBQYnR0cStkQStlejdwYldvbldWb2Q1VE1hUHR5 RVp1NVhmUEQrMHBNYm9jZUhaZwotK0g4ZWhnVWhWM216RUppaXNGR2cxcTloais0QmFGbDVtNHR2 cXA0M2luQ0NkU2hFNzhDTm5PUHpKN1dDaktKcWkKLStqR3ZIamVNb1Z4M3JaWEhjWkRBemZJWnZE aWdwOXVBZnpqUkpqcFJHOHNnNXNEUVZDN3ZkVWhRRGU1VG9yS1QyCi0rVmIwdGRWWXhvRXBNSjNk aFU2RHM1SnhNUjZHVExqc2pUcU9rQWw2ZGIzSHh1bHdmRXByN1lqT3BmT0RSK3R0QQotK0JlSWNV Y01Mc0RIYXlJYVFhTUxJZnRIeE9rZlg3VXhvRlc5Q01HNVVNUWYvbTNlRWdWVXdnSy9FNXNVSlJV VG8KLSt5aFJ6SjROQVA0ZmdjNFlIOXRienZVcmhmZENYQ0JFT242SWxEUUw2NlNacjhNbStHZ3U0 SWo0VG5LV1hMclhMCi0rblNURERhNDJrUE92dGVkS3F4Qy91WEU3cnJmaCt1eXc2SjZPalNsNnU4 NlRJZWJuZEx1RG81RFRkV0toOHJzZwotK2Z2Wlo2MzMyZGZNcDhKQzkvNFluWUlKZEk3YWNJblNv eUhwNTJPQisyK2RnWUNyNU9yWkZqaktTN25FTFZmbzcKLStPeEd5NnVIM05IRjlxeVVFZjNNTjE3 VFJISTdqUDN6S2JYY0RUUFN5eExRa1dlL0NVNUIyNTFDVG1vVFNpZFNXCi0rRWhLblBsR1pZYnBW UUo0S0dFTDVVZVk4VzlQWFFvNERsN1RtWEJHdnVQcU5GOGtNQjNYclBJcGg3R21paG1YMAotK25s SnFMazllaVJGbVVFVFMwSWRBeUtKcm00UjlIZjZyallDYlhsYUFweWx5VlVkU1oyQnhnZW9UWTlC QTZLZ2YKLSszeGxnTXYwMU1vVWtYTXgyK09MSWM5TXpoQnV0UWlEeGgzbWZTMDEyQ2pLcVVGckpo UlNhOERPcFVmVmdtWHBxCi0rL0hQNGRyV2FtTFdZSlI4RnNtSlMxMVpZYzFFSy9jdEpUU3BxZmV3 dm9VR09TSG9taGg3elhuMUFjYjYrOS8zcAotK2Jjckpqb1I1SzhKZzZObEc0ZFNOa3BZL3g5Mkk3 YkZMWEZxRUxJSDV0dGVEcmxRZW41ZUFTamFpeVBQQW9PdzgKLStJR2ZPbUZTNFZVUGgxVlA2ZzhK dG41SHIycVhCM0RvUW9JNkV2VVpoSjZHSmZpNjdteDVWS3V4Nkc5TXpKa2l4Ci0rR1UxY0w0V3pX SzJEVTBsMzlVeFhqUys0VG1PWWJycUxWblZNanVzWDBmd2I4TGtEQy9mVm9oYmhMd2hITnd1Ngot K25TVFNFcFM5elNEcnYxSlhGdEF0UHY2WENTRnM2c3NQV0pNd0dTZFRobjdFZlYwR0VoRzJtQ3pU eVZod3h4UW8KLSs2VS9TdXFxNG9NWm9yYWNQVUNaeDBFNHUvYmI0S0JvRkEvZUJOUEpFTlRSMThJ aVYrRDd3QXhseGF1TzNOMXQ0Ci0raUp4d3JydlNnUVBtT0d1eHJoNUxWRDQxVVhZVVdMdG5kemFi bnBCeXBwRm4yTWJtdnJxSmdvbjBNU3M4NGNUQQotKzdzY25iUHUxVjNQcEt5L3Q2N2d0Vnc5VWU4 aExqcnNrV0IxSlBGWXI3dlJXdkp6WWpmYmZseXJvRitRRUozVEEKLSs2clRmVUM5K2VQY2k2VCtp OWpGNHhjbXpxWXpSdG5HdHA1blJVaXRKR3cwdXdCVER3emZJMldENmx0dnZ1N2xjCi0rcEh1enZZ NXpFYXB1dTFKaGpITFVkK09FOHJWVk05OTlEVVhvL0lETHNXeVJDcGhDaVlmVlhKTm9nZDlyQjBU YQotKzVBaFZncFJoeGthckJVUlp5TFRZajdOUnhDc2JIcTdYRXhKTnJJZFJHL0tsQlFmeUV5SXpa N0U9Ci0rLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLSAgICAgRU9GCi0tICAg IGFzc2VydF9zYW1lX3JzYSByc2EsIE9wZW5TU0w6OlBLZXkucmVhZChwZW0sICJhYmNkZWYiKQot KyAgICBhc3NlcnRfc2FtZV9yc2EgcnNhLCBPcGVuU1NMOjpQS2V5LnJlYWQocGVtLCAiYWJjZGVm Z2giKQotICAgZW5kCi0gCi0gICBkZWYgdGVzdF9wYXJhbXMKLWRpZmYgLS1naXQgYS90ZXN0L29w ZW5zc2wvdGVzdF9zc2wucmIgYi90ZXN0L29wZW5zc2wvdGVzdF9zc2wucmIKLWluZGV4IGNlMWIy YzFlOTY2ZmQwLi5lNGZkNTgxMDc5YzRkZCAxMDA2NDQKLS0tLSBhL3Rlc3Qvb3BlbnNzbC90ZXN0 X3NzbC5yYgotKysrIGIvdGVzdC9vcGVuc3NsL3Rlc3Rfc3NsLnJiCi1AQCAtMTkwOSw3ICsxOTA5 LDkgQEAgZGVmIHRlc3RfdG1wX2RoX2NhbGxiYWNrCi0gICAgICAgfQotICAgICB9Ci0gICAgIHN0 YXJ0X3NlcnZlcihjdHhfcHJvYzogY3R4X3Byb2MpIGRvIHxwb3J0fAotLSAgICAgIHNlcnZlcl9j b25uZWN0KHBvcnQpIHsgfHNzbHwKLSsgICAgICBjdHggPSBPcGVuU1NMOjpTU0w6OlNTTENvbnRl eHQubmV3Ci0rICAgICAgY3R4Lmdyb3VwcyA9ICJQLTI1NiIgIyBFeGNsdWRlIFJGQyA3OTE5IGdy b3VwcwotKyAgICAgIHNlcnZlcl9jb25uZWN0KHBvcnQsIGN0eCkgeyB8c3NsfAotICAgICAgICAg YXNzZXJ0IGNhbGxlZCwgImRoIGNhbGxiYWNrIHNob3VsZCBiZSBjYWxsZWQiCi0gICAgICAgICBh c3NlcnRfZXF1YWwgZGgudG9fZGVyLCBzc2wudG1wX2tleS50b19kZXIKLSAgICAgICB9Ci1AQCAt MjE3Miw3ICsyMTc0LDkgQEAgZGVmIHRlc3RfdG1wX2RoCi0gICAgICAgY3R4LnRtcF9kaCA9IGRo Ci0gICAgIH0KLSAgICAgc3RhcnRfc2VydmVyKGN0eF9wcm9jOiBjdHhfcHJvYykgZG8gfHBvcnR8 Ci0tICAgICAgc2VydmVyX2Nvbm5lY3QocG9ydCkgeyB8c3NsfAotKyAgICAgIGN0eCA9IE9wZW5T U0w6OlNTTDo6U1NMQ29udGV4dC5uZXcKLSsgICAgICBjdHguZ3JvdXBzID0gIlAtMjU2IiAjIEV4 Y2x1ZGUgUkZDIDc5MTkgZ3JvdXBzCi0rICAgICAgc2VydmVyX2Nvbm5lY3QocG9ydCwgY3R4KSB7 IHxzc2x8Ci0gICAgICAgICBhc3NlcnRfZXF1YWwgZGgudG9fZGVyLCBzc2wudG1wX2tleS50b19k ZXIKLSAgICAgICB9Ci0gICAgIGVuZAoKZGlmZiAtLWdpdCBhL3J1Ynkuc3BlYyBiL3J1Ynkuc3Bl YwppbmRleCBmNmY3NGYyLi41NGFhNmJkIDEwMDY0NAotLS0gYS9ydWJ5LnNwZWMKKysrIGIvcnVi eS5zcGVjCkBAIC0xLDYgKzEsNiBAQAogJWdsb2JhbCBtYWpvcl92ZXJzaW9uIDQKICVnbG9iYWwg bWlub3JfdmVyc2lvbiAwCi0lZ2xvYmFsIHRlZW55X3ZlcnNpb24gNQorJWdsb2JhbCB0ZWVueV92 ZXJzaW9uIDYKICVnbG9iYWwgbWFqb3JfbWlub3JfdmVyc2lvbiAle21ham9yX3ZlcnNpb259LiV7 bWlub3JfdmVyc2lvbn0KIAogJWdsb2JhbCBydWJ5X3ZlcnNpb24gJXttYWpvcl9taW5vcl92ZXJz aW9ufS4le3RlZW55X3ZlcnNpb259CkBAIC0zNiw3ICszNiw3IEBACiAjIyBCVU5ETEVEX0dFTVNf VkVSU0lPTlMKIAogIyBCdW5kbGVkIGxpYnJhcmllcyB2ZXJzaW9ucwotJWdsb2JhbCBydWJ5Z2Vt c192ZXJzaW9uIDQuMC4xMAorJWdsb2JhbCBydWJ5Z2Vtc192ZXJzaW9uIDQuMC4xNgogJWdsb2Jh bCBydWJ5Z2Vtc19tb2xpbmlsbG9fdmVyc2lvbiAwLjguMAogJWdsb2JhbCBydWJ5Z2Vtc19uZXRf aHR0cF92ZXJzaW9uIDAuNy4wCiAlZ2xvYmFsIHJ1YnlnZW1zX25ldF9wcm90b2NvbF92ZXJzaW9u IDAuMi4yCkBAIC00OCwxNCArNDgsMTMgQEAKICVnbG9iYWwgcnVieWdlbXNfdXJpX3ZlcnNpb24g MS4xLjEKIAogIyBEZWZhdWx0IGdlbXMuCi0lZ2xvYmFsIGJ1bmRsZXJfdmVyc2lvbiA0LjAuMTAK KyVnbG9iYWwgYnVuZGxlcl92ZXJzaW9uIDQuMC4xNgogJWdsb2JhbCBidW5kbGVyX2Nvbm5lY3Rp b25fcG9vbF92ZXJzaW9uIDIuNS40CiAlZ2xvYmFsIGJ1bmRsZXJfZmlsZXV0aWxzX3ZlcnNpb24g MS44LjAKICVnbG9iYWwgYnVuZGxlcl9uZXRfaHR0cF9wZXJzaXN0ZW50X3ZlcnNpb24gNC4wLjYK ICVnbG9iYWwgYnVuZGxlcl9wdWJfZ3J1Yl92ZXJzaW9uIDAuNS4wCiAlZ2xvYmFsIGJ1bmRsZXJf c2VjdXJlcmFuZG9tX3ZlcnNpb24gMC40LjEKICVnbG9iYWwgYnVuZGxlcl90aG9yX3ZlcnNpb24g MS40LjAKLSVnbG9iYWwgYnVuZGxlcl90c29ydF92ZXJzaW9uIDAuMi4wCiAlZ2xvYmFsIGJ1bmRs ZXJfdXJpX3ZlcnNpb24gMS4xLjEKIAogJWdsb2JhbCBkYXRlX3ZlcnNpb24gMy41LjEKQEAgLTY0 LDcgKzYzLDcgQEAKICVnbG9iYWwgZGlnZXN0X3ZlcnNpb24gMy4yLjEKICVnbG9iYWwgZW5nbGlz aF92ZXJzaW9uIDAuOC4xCiAlZ2xvYmFsIGVyYl92ZXJzaW9uIDYuMC4xLjEKLSVnbG9iYWwgZXJy b3JfaGlnaGxpZ2h0X3ZlcnNpb24gMC43LjEKKyVnbG9iYWwgZXJyb3JfaGlnaGxpZ2h0X3ZlcnNp b24gMC43LjIKICVnbG9iYWwgZXRjX3ZlcnNpb24gMS40LjYKICVnbG9iYWwgZmNudGxfdmVyc2lv biAxLjMuMAogJWdsb2JhbCBmaWxldXRpbHNfdmVyc2lvbiAxLjguMApAQCAtMTIxLDcgKzEyMCw3 IEBACiAlZ2xvYmFsIG1pbml0ZXN0X3ZlcnNpb24gNi4wLjAKICVnbG9iYWwgbXV0ZXhfbV92ZXJz aW9uIDAuMy4wCiAlZ2xvYmFsIG5ldF9mdHBfdmVyc2lvbiAwLjMuOQotJWdsb2JhbCBuZXRfaW1h cF92ZXJzaW9uIDAuNi4yCislZ2xvYmFsIG5ldF9pbWFwX3ZlcnNpb24gMC42LjQuMQogJWdsb2Jh bCBuZXRfcG9wX3ZlcnNpb24gMC4xLjIKICVnbG9iYWwgbmV0X3NtdHBfdmVyc2lvbiAwLjUuMQog JWdsb2JhbCBua2ZfdmVyc2lvbiAwLjIuMApAQCAtMTkwLDcgKzE4OSw3IEBACiBTdW1tYXJ5OiBB biBpbnRlcnByZXRlciBvZiBvYmplY3Qtb3JpZW50ZWQgc2NyaXB0aW5nIGxhbmd1YWdlCiBOYW1l OiBydWJ5CiBWZXJzaW9uOiAle3J1YnlfdmVyc2lvbn0lez9kZXZlbG9wbWVudF9yZWxlYXNlfQot UmVsZWFzZTogMzUlez9kaXN0fQorUmVsZWFzZTogMzYlez9kaXN0fQogIyBMaWNlbnNlcywgd2hp Y2ggYXJlIGxpa2VseSBub3QgaW5jbHVkZWQgaW4gYmluYXJ5IFJQTXM6CiAjIEFwYWNoZS0yLjA6 CiAjICAgYmVuY2htYXJrL2djL3JlZGJsYWNrLnJiCkBAIC0yOTksMTAgKzI5OCw2IEBAIFBhdGNo ODogcnVieS00LjAuMS1TdXBwb3J0LWN1c3RvbWl6YWJsZS1ydXN0Y19mbGFncy1mb3ItcnVzdGMt YnVpbGRzLnBhdGNoCiAjIEZpeCBlcnJvciB3aXRoIGBnZW0gaW5zdGFsbCAtLWRvY3VtZW50PXJk b2MscmlgCiAjIEZpeGVkIGluIHJkb2MgNy4xLjAgYnV0IG5vdCBpbiA3LjAuNAogUGF0Y2g5OiBy ZG9jLXByMTUzMS1maXgtbXV0aWxwbGUtZG9jdW1lbnQtaW5zdGFsbGF0aW9uLnBhdGNoCi0jIGh0 dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8yMjA2OQotIyBodHRwczovL2dpdGh1Yi5j b20vcnVieS9ydWJ5L3B1bGwvMTY5NDcKLSMgQmFja3BvcnQgcnVieS9vcGVuc3NsIDQuMC4yIGZy b20gcnVieSA0LjAgYnJhbmNoIHRvIHN1cHBvcnQgb3BlbnNzbCA0LjAKLVBhdGNoMTA6IHJ1Ynkt cHIxNjk0Ny1vcGVuc3NsLTRfMF8yLWZyb20tcnVieV80XzAucGF0Y2gKIAogUmVxdWlyZXM6ICV7 bmFtZX0tbGlicyV7P19pc2F9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CiAlez93aXRoX3J1Ynlw aWNrOlN1Z2dlc3RzOiBydWJ5cGlja30KQEAgLTU5Myw3ICs1ODgsNiBAQCBTdW1tYXJ5OiAgICBM aWJyYXJ5IGFuZCB1dGlsaXRpZXMgdG8gbWFuYWdlIGEgUnVieSBhcHBsaWNhdGlvbidzIGdlbSBk ZXBlbmRlbmNpZQogVmVyc2lvbjogICAgJXtidW5kbGVyX3ZlcnNpb259CiAjIEJTRC0yLUNsYXVz ZSBPUiBSdWJ5OgogIyAgIGxpYi9idW5kbGVyL3ZlbmRvci9maWxldXRpbHMKLSMgICBsaWIvYnVu ZGxlci92ZW5kb3IvdHNvcnQKICMgICBsaWIvYnVuZGxlci92ZW5kb3IvdXJpCiAjIE1JVDoKICMg ICBsaWIvYnVuZGxlci92ZW5kb3IvY29ubmVjdGlvbl9wb29sCkBAIC02MTEsNyArNjA1LDYgQEAg UHJvdmlkZXM6ICAgYnVuZGxlZChydWJ5Z2VtLW5ldC1odHRwLXBlcnNpc3RlbnQpID0gJXtidW5k bGVyX25ldF9odHRwX3BlcnNpc3RlbnQKIFByb3ZpZGVzOiAgIGJ1bmRsZWQocnVieWdlbS1wdWJf Z3J1YikgPSAle2J1bmRsZXJfcHViX2dydWJfdmVyc2lvbn0KIFByb3ZpZGVzOiAgIGJ1bmRsZWQo cnVieWdlbS1zZWN1cmVyYW5kb20pID0gJXtidW5kbGVyX3NlY3VyZXJhbmRvbV92ZXJzaW9ufQog UHJvdmlkZXM6ICAgYnVuZGxlZChydWJ5Z2VtLXRob3IpID0gJXtidW5kbGVyX3Rob3JfdmVyc2lv bn0KLVByb3ZpZGVzOiAgIGJ1bmRsZWQocnVieWdlbS10c29ydCkgPSAle2J1bmRsZXJfdHNvcnRf dmVyc2lvbn0KIFByb3ZpZGVzOiAgIGJ1bmRsZWQocnVieWdlbS11cmkpID0gJXtidW5kbGVyX3Vy aV92ZXJzaW9ufQogQnVpbGRBcmNoOiAgbm9hcmNoCiAKQEAgLTgxNSw3ICs4MDgsNiBAQCBwb3Bk CiAlcGF0Y2ggNiAtcDEKICVwYXRjaCA3IC1wMQogJXBhdGNoIDggLXAxCi0lcGF0Y2ggMTAgLXAx CiAKICMgUHJvdmlkZSBhbiBleGFtcGxlIG9mIHVzYWdlIG9mIHRoZSB0YXBzZXQ6CiBjcCAtYSAl e1NPVVJDRTN9IC4KQEAgLTExNTksMTUgKzExNTEsNiBAQCBtYWtlIC1DICV7X3ZwYXRoX2J1aWxk ZGlyfSAtcyBydW5ydWJ5IFRFU1RSVU5fU0NSSVBUPSItZSBcIiBcCiAgIGV4aXQgMSBpZiBCdW5k bGVyOjpUaG9yOjpWRVJTSU9OICE9ICcle2J1bmRsZXJfdGhvcl92ZXJzaW9ufSc7IFwKIFwiIgog Ci0jIFRTb3J0Ci1tYWtlIC1DICV7X3ZwYXRoX2J1aWxkZGlyfSAtcyBydW5ydWJ5IFRFU1RSVU5f U0NSSVBUPSItZSBcIiBcCi0gIG1vZHVsZSBCdW5kbGVyOyBlbmQ7IFwKLSAgcmVxdWlyZSAnYnVu ZGxlci92ZW5kb3IvdHNvcnQvbGliL3Rzb3J0JzsgXAotICBwdXRzICclJXtidW5kbGVyX3Rzb3J0 X3ZlcnNpb259OiAle2J1bmRsZXJfdHNvcnRfdmVyc2lvbn0nOyBcCi0gIHB1dHMgJVFbQnVuZGxl cjo6VFNvcnQ6OlZFUlNJT046ICN7QnVuZGxlcjo6VFNvcnQ6OlZFUlNJT059XTsgXAotICBleGl0 IDEgaWYgQnVuZGxlcjo6VFNvcnQ6OlZFUlNJT04gIT0gJyV7YnVuZGxlcl90c29ydF92ZXJzaW9u fSc7IFwKLVwiIgotCiAjIFVSSS4KIG1ha2UgLUMgJXtfdnBhdGhfYnVpbGRkaXJ9IC1zIHJ1bnJ1 YnkgVEVTVFJVTl9TQ1JJUFQ9Ii1lIFwiIFwKICAgbW9kdWxlIEJ1bmRsZXI7IGVuZDsgXApAQCAt MTk2NCwxNCArMTk0NywyNyBAQCBtYWtlIC1DICV7X3ZwYXRoX2J1aWxkZGlyfSBydW5ydWJ5IFRF U1RSVU5fU0NSSVBUPSIgXAogCiAKICVjaGFuZ2Vsb2cKKyogVHVlIEp1bCAxNCAyMDI2IE1hbW9y dSBUQVNBS0EgPG10YXNha2FAZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4wLjYtMzYKKy0gVXBkYXRl IHRvIFJ1YnkgNC4wLjYKKyAgUmVzb2x2ZXM6IHJoYnojMjQ5OTg4NAorLSBSZXNvbHZlczogQ1ZF LTIwMjYtNDIyNDUgKHJoYnojMjQ4NDMyNCkKKy0gUmVzb2x2ZXM6IENWRS0yMDI2LTQyMjQ2IChy aGJ6IzI0OTIwOTApCistIFJlc29sdmVzOiBDVkUtMjAyNi00MjI1NgorLSBSZXNvbHZlczogQ1ZF LTIwMjYtNDIyNTcKKy0gUmVzb2x2ZXM6IENWRS0yMDI2LTQyMjU4IChyaGJ6IzI0ODczMTkpCist IFJlc29sdmVzOiBDVkUtMjAyNi00NzI0MCAocmhieiMyNDk4OTE3KQorLSBSZXNvbHZlczogQ1ZF LTIwMjYtNDcyNDEKKy0gUmVzb2x2ZXM6IENWRS0yMDI2LTQ3MjQyCisKICogU3VuIEp1biAxNCAy MDI2IE1hbW9ydSBUQVNBS0EgPG10YXNha2FAZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4wLjUtMzUK IC0gQmFja3BvcnQgcnVieS9vcGVuc3NsIDQuMC4yIGZyb20gcnVieSA0LjAgYnJhbmNoIHRvIHN1 cHBvcnQgb3BlbnNzbCA0LjAKIAogKiBGcmkgSnVuIDEyIDIwMjYgWWFha292IFNlbGtvd2l0eiA8 eXNlbGtvd2lAcmVkaGF0LmNvbT4KIC0gUmVidWlsdCBmb3Igb3BlbnNzbCA0LjAKIAotKiBNb24g SnVuIDA4IDIwMjYgTWFtb3J1IFRBU0FLQSA8bXRhc2FrYUBmZWRvcmFwcm9qZWN0Lm9yZz4tIDQu MC41LTMzCisqIE1vbiBKdW4gMDggMjAyNiBNYW1vcnUgVEFTQUtBIDxtdGFzYWthQGZlZG9yYXBy b2plY3Qub3JnPiAtIDQuMC41LTMzCiAtIFVwZGF0ZSB0byBSdWJ5IDQuMC41CistIFJlc29sdmVz OiBDVkUtMjAyNi00MTMxNiAocmhieiMyNDYzMjE2KQogCiAqIFNhdCBKYW4gMTcgMjAyNiBGZWRv cmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPgogLSBSZWJ1 aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQ0X01hc3NfUmVi dWlsZAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGVlOGE2ZTguLjg0MTVk ZmMgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBAQAotU0hBNTEy IChydWJ5LTQuMC41LnRhci54eikgPSAzNzlkNzhhNmQxYWYwNDU1ZGY2MGRhNDY1NTFmNDM0Mzhh ZDNlZTgxZjgzNzg3NTU0ZmMzNGNiMWM4ZmViYjFiZDM2M2UzZGMxYTA1N2IzNGE2OWY5NjUyNmVm YzMwOGQzZGNjYzRiODdkMzY4ODk3YzJkMWNjZjE3OTA5NjQ2MworU0hBNTEyIChydWJ5LTQuMC42 LnRhci54eikgPSBjOWMzOTE2NzVhMDk4YjVhMjdkZDY4NzU3MWFiMGExNjRjNzg4Y2JiOGRkY2Jh YjZkMTdhM2U4YjNjNGJhMzg5MzQ2YjJlNmQ3ODA3ZDM4ZGIzZTc0ZDIyNWM3MGUzNzhhMjk2ZDYw ZDBmNDY1Y2IwZmNlYzk3MDIyNDJjODNjNgo=