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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: - Rebuild for Fedora 14. Date: Sat, 27 Jun 2026 23:54:39 GMT Message-ID: <178260447924.1.14801182983511749382.rpms-gdb-ee681d3b2f9f@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: ee681d3b2f9fce360dc30e10ab6fdcccb440fb13 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogZWU2ODFkM2IyZjlmY2UzNjBkYzMwZTEwYWI2 ZmRjY2NiNDQwZmIxMwpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3JhcHJv amVjdC5vcmc+CkRhdGUgICA6IDIwMTAtMDctMTFUMTg6MDY6MzMrMDA6MDAKU3RhdHMgIDogKzI5 NTkxLy0yOTQyIGluIDgwIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVj dC5vcmcvcnBtcy9nZGIvYy9lZTY4MWQzYjJmOWZjZTM2MGRjMzBlMTBhYjZmZGNjY2I0NDBmYjEz P2JyYW5jaD1nZGItMTcuMi1yZWJhc2UtZjQ0CgpMb2c6Ci0gUmVidWlsZCBmb3IgRmVkb3JhIDE0 LgoKLS0tCmRpZmYgLS1naXQgYS8uY3ZzaWdub3JlIGIvLmN2c2lnbm9yZQppbmRleCAzYjM0ZTM3 Li40N2M3Y2Q2IDEwMDY0NAotLS0gYS8uY3ZzaWdub3JlCisrKyBiLy5jdnNpZ25vcmUKQEAgLTEs MiArMSwyIEBACi1nZGItNy4wLjUwLjIwMTAwMjAzLnRhci5iejIKK2dkYi03LjEudGFyLmJ6Mgog bGlic3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKCmRpZmYgLS1naXQgYS9nZGItNi4z LWdzdGFjay0yMDA1MDQxMS5wYXRjaCBiL2dkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCmlu ZGV4IDBhYTY0MjYuLjEwMGI4NzcgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtZ3N0YWNrLTIwMDUwNDEx LnBhdGNoCisrKyBiL2dkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCkBAIC00LDEwICs0LDkg QEAKIAl0byBpbnN0YWxsIGFuZCB1bmluc3RhbGwuCiAJKiBnc3RhY2suc2gsIGdzdGFjay4xOiBO ZXcgZmlsZXMuCiAKLUluZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9NYWtlZmlsZS5pbgot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvTWFrZWZpbGUuaW4J MjAwOS0wOS0xNyAxMjo0NzowNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjkxLjIwMDkw OTE3L2dkYi9NYWtlZmlsZS5pbgkyMDA5LTA5LTE3IDEyOjQ3OjM4LjAwMDAwMDAwMCArMDIwMAor ZGlmZiAtdXAgLXJ1TnAgZ2RiLTcuMC4xLWVtcHR5L2dkYi9NYWtlZmlsZS5pbiBnZGItNy4wLjEv Z2RiL01ha2VmaWxlLmluCistLS0gZ2RiLTcuMC4xLWVtcHR5L2dkYi9NYWtlZmlsZS5pbgkyMDEw LTA0LTA3IDIwOjM2OjA0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjAuMS9nZGIvTWFrZWZp bGUuaW4JMjAxMC0wNC0wNyAyMDozNjo0Mi4wMDAwMDAwMDAgKzAyMDAKIEBAIC05ODksNyArOTg5 LDcgQEAgaW5zdGFsbDogYWxsIGluc3RhbGwtb25seSAKICAKICAjIFRoZSAiaW5zdGFsbC1vbmx5 IiB0YXJnZXQgYWxzbyBpbnN0YWxscyB0aGUgc3lzY2FsbHMnIFhNTCBmaWxlcyBpbgpAQCAtNjMs MTAgKzYyLDkgQEAgSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL01ha2VmaWxlLmluCiAg CiAgIyBUaGUgQysrIG5hbWUgcGFyc2VyIGNhbiBiZSBidWlsdCBzdGFuZGFsb25lIGZvciB0ZXN0 aW5nLgogIHRlc3QtY3AtbmFtZS1wYXJzZXIubzogY3AtbmFtZS1wYXJzZXIuYwotSW5kZXg6IGdk Yi02LjguOTEuMjAwOTA5MTcvZ2RiL2dzdGFjay5zaAotPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi02LjguOTEuMjAw OTA5MTcvZ2RiL2dzdGFjay5zaAkyMDA5LTA5LTE3IDEyOjQ3OjE0LjAwMDAwMDAwMCArMDIwMAor ZGlmZiAtdXAgLXJ1TnAgZ2RiLTcuMC4xLWVtcHR5L2dkYi9nc3RhY2suc2ggZ2RiLTcuMC4xL2dk Yi9nc3RhY2suc2gKKy0tLSBnZGItNy4wLjEtZW1wdHkvZ2RiL2dzdGFjay5zaAkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjAuMS9nZGIvZ3N0YWNrLnNoCTIw MTAtMDQtMDcgMjA6MzY6NDcuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDQ4IEBACiArIyEv YmluL3NoCiArCkBAIC04NywxNyArODUsMTcgQEAgSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcv Z2RiL2dzdGFjay5zaAogK2JhY2t0cmFjZT0iYnQiCiAraWYgdGVzdCAtZCAvcHJvYy8kMS90YXNr IDsgdGhlbgogKyAgICAjIE5ld2VyIGtlcm5lbDsgaGFzIGEgdGFzay8gZGlyZWN0b3J5LgotKyAg ICBpZiB0ZXN0IGBscyAvcHJvYy8kMS90YXNrIHwgd2MgLWxgIC1ndCAxIDI+L2Rldi9udWxsIDsg dGhlbgorKyAgICBpZiB0ZXN0IGAvYmluL2xzIC9wcm9jLyQxL3Rhc2sgfCAvdXNyL2Jpbi93YyAt bGAgLWd0IDEgMj4vZGV2L251bGwgOyB0aGVuCiArCWJhY2t0cmFjZT0idGhyZWFkIGFwcGx5IGFs bCBidCIKICsgICAgZmkKICtlbGlmIHRlc3QgLWYgL3Byb2MvJDEvbWFwcyA7IHRoZW4KICsgICAg IyBPbGRlciBrZXJuZWw7IGdvIGJ5IGl0IGxvYWRpbmcgbGlicHRocmVhZC4KLSsgICAgaWYgZ3Jl cCAtZSBsaWJwdGhyZWFkIC9wcm9jLyQxL21hcHMgPiAvZGV2L251bGwgMj4mMSA7IHRoZW4KKysg ICAgaWYgL2Jpbi9ncmVwIC1lIGxpYnB0aHJlYWQgL3Byb2MvJDEvbWFwcyA+IC9kZXYvbnVsbCAy PiYxIDsgdGhlbgogKwliYWNrdHJhY2U9InRocmVhZCBhcHBseSBhbGwgYnQiCiArICAgIGZpCiAr ZmkKICsKLStHREI9JHtHREI6LWdkYn0KKytHREI9JHtHREI6LS91c3IvYmluL2dkYn0KICsKICtp ZiAkR0RCIC1ueCAtLXF1aWV0IC0tYmF0Y2ggLS1yZWFkbmV2ZXIgPiAvZGV2L251bGwgMj4mMTsg dGhlbgogKyAgICByZWFkbmV2ZXI9LS1yZWFkbmV2ZXIKQEAgLTExMiw3ICsxMTAsMTI3IEBAIElu ZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9nc3RhY2suc2gKICtzZXQgcGFnaW5hdGlvbiBu bwogKyRiYWNrdHJhY2UKICtFT0YKLStzZWQgLW4gXAotKyAgICAtZSAncy9eKGdkYikgLy8nIFwK KysvYmluL3NlZCAtbiBcCisrICAgIC1lICdzL15cKChnZGIpIFwpKi8vJyBcCiArICAgIC1lICcv XiMvcCcgXAogKyAgICAtZSAnL15UaHJlYWQvcCcKKy0tLSAvZGV2L251bGwJMjAxMC0wNC0wNyAw NjoyMDo1Mi4yODk5OTQ1MDggKzAyMDAKKysrKyBnZGItNy4wLjEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9nc3RhY2suZXhwCTIwMTAtMDQtMDcgMjE6NTM6NTcuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDcxIEBACisrIyBDb3B5cmlnaHQgKEMpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9y CisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3NldCB0ZXN0 ZmlsZSBnc3RhY2sKKytzZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfQorK3NldCBiaW5maWxlICR7 b2JqZGlyfS8ke3N1YmRpcn0vJGV4ZWN1dGFibGUKKytpZiB7W2J1aWxkX2V4ZWN1dGFibGUgJHt0 ZXN0ZmlsZX0gJHtleGVjdXRhYmxlfSAiIiB7ZGVidWd9XSA9PSAtMX0geworKyAgICByZXR1cm4g LTEKKyt9CisrCisrc2V0IHRlc3QgInNwYXduIGluZmVyaW9yIgorK3NldCBjb21tYW5kICIke2Jp bmZpbGV9IgorK3NldCByZXMgW3JlbW90ZV9zcGF3biBob3N0ICRjb21tYW5kXTsKKytpZiB7ICRy ZXMgPCAwIHx8ICRyZXMgPT0gIiIgfSB7CisrICAgIHBlcnJvciAiU3Bhd25pbmcgJGNvbW1hbmQg ZmFpbGVkLiIKKysgICAgZmFpbCAkdGVzdAorKyAgICByZXR1cm4KKyt9Cisrc2V0IHBpZCBbZXhw X3BpZCAtaSAkcmVzXQorK2dkYl9leHBlY3QgeworKyAgICAtcmUgImxvb3BpbmdcclxuIiB7Cisr CXBhc3MgJHRlc3QKKysgICAgfQorKyAgICBlb2YgeworKwlmYWlsICIkdGVzdCAoZW9mKSIKKysJ cmV0dXJuCisrICAgIH0KKysgICAgdGltZW91dCB7CisrCWZhaWwgIiR0ZXN0ICh0aW1lb3V0KSIK KysJcmV0dXJuCisrICAgIH0KKyt9CisrZ2RiX2V4aXQKKysKKysjIFRlc3RjYXNlIHVzZXMgdGhl IG1vc3Qgc2ltcGxlIG5vdGlmaWNhdGlvbiBub3QgdG8gZ2V0IGNhdWdodCBieSBhdHRhY2ggb24K KysjIGV4aXRpbmcgdGhlIGZ1bmN0aW9uLiAgU3RpbGwgd2UgY291bGQgcmV0cnkgdGhlIGdzdGFj ayBjb21tYW5kIGlmIHdlIGZhaWwuCisrCisrc2V0IHRlc3QgInNwYXduIGdzdGFjayIKKytzZXQg Y29tbWFuZCAic2ggLWMgR0RCPSRHREJcXCBzaFxcICR7c3JjZGlyfS8uLi9nc3RhY2suc2hcXCAk cGlkXFw7ZWNob1xcIEdTVEFDSy1FTkQiCisrc2V0IHJlcyBbcmVtb3RlX3NwYXduIGhvc3QgJGNv bW1hbmRdOworK2lmIHsgJHJlcyA8IDAgfHwgJHJlcyA9PSAiIiB9IHsKKysgICAgcGVycm9yICJT cGF3bmluZyAkY29tbWFuZCBmYWlsZWQuIgorKyAgICBmYWlsICR0ZXN0CisrfQorK3NldCBwaWQg W2V4cF9waWQgLWkgJHJlc10KKytnZGJfZXhwZWN0IHsKKysgICAgLXJlIHteIzAgKzB4WzAtOWEt Zl0rIGluIFwuP2Z1bmMgXChcKVxyXG4jMSArMHhbMC05YS1mXSsgaW4gXC4/bWFpbiBcKFwpXHJc bkdTVEFDSy1FTkRcclxuJH0geworKwlwYXNzICR0ZXN0CisrICAgIH0KKysgICAgZW9mIHsKKysJ ZmFpbCAiJHRlc3QgKGVvZikiCisrICAgIH0KKysgICAgdGltZW91dCB7CisrCWZhaWwgIiR0ZXN0 ICh0aW1lb3V0KSIKKysgICAgfQorK30KKytnZGJfZXhpdAorKworK3JlbW90ZV9leGVjIGhvc3Qg ImtpbGwgLTkgJHBpZCIKKy0tLSAvZGV2L251bGwJMjAxMC0wNC0wNyAwNjoyMDo1Mi4yODk5OTQ1 MDggKzAyMDAKKysrKyBnZGItNy4wLjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nc3RhY2suYwky MDEwLTA0LTA3IDIxOjQ2OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw0MyBAQAorKy8q IFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAg Q29weXJpZ2h0IDIwMDUsIDIwMDcsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9y CisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKwor KyNpbmNsdWRlIDxzdGRpby5oPgorKyNpbmNsdWRlIDx1bmlzdGQuaD4KKysjaW5jbHVkZSA8c3Ry aW5nLmg+CisrCisrdm9pZAorK2Z1bmMgKHZvaWQpCisreworKyAgY29uc3QgY2hhciBtc2dbXSA9 ICJsb29waW5nXG4iOworKworKyAgLyogVXNlIHRoZSBtb3N0IHNpbXBsZSBub3RpZmljYXRpb24g bm90IHRvIGdldCBjYXVnaHQgYnkgYXR0YWNoIG9uIGV4aXRpbmcKKysgICAgIHRoZSBmdW5jdGlv bi4gICovCisrICB3cml0ZSAoMSwgbXNnLCBzdHJsZW4gKG1zZykpOworKyAgCisrICBmb3IgKDs7 KTsKKyt9CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBhbGFybSAoNjApOworKyAgbmlj ZSAoMTAwKTsKKysKKysgIGZ1bmMgKCk7CisrCisrICByZXR1cm4gMDsKKyt9CgpkaWZmIC0tZ2l0 IGEvZ2RiLTYuMy1nc3RhY2std2l0aG91dC1wYXRoLTIwMDYwNDE0LnBhdGNoIGIvZ2RiLTYuMy1n c3RhY2std2l0aG91dC1wYXRoLTIwMDYwNDE0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA2NzdmOTM0Li4wMDAwMDAwCi0tLSBhL2dkYi02LjMtZ3N0YWNrLXdpdGhvdXQtcGF0 aC0yMDA2MDQxNC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLUluZGV4OiBn ZGItNi4zL2dkYi9nc3RhY2suc2gKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi4zLm9yaWcvZ2RiL2dz dGFjay5zaAkyMDA2LTAyLTE0IDE3OjIxOjA1LjAwMDAwMDAwMCAtMDIwMAotKysrIGdkYi02LjMv Z2RiL2dzdGFjay5zaAkyMDA2LTA0LTE0IDAzOjE3OjEyLjAwMDAwMDAwMCAtMDMwMAotQEAgLTE3 LDE3ICsxNywxNyBAQCBmaQotIGJhY2t0cmFjZT0iYnQiCi0gaWYgdGVzdCAtZCAvcHJvYy8kMS90 YXNrIDsgdGhlbgotICAgICAjIE5ld2VyIGtlcm5lbDsgaGFzIGEgdGFzay8gZGlyZWN0b3J5Lgot LSAgICBpZiB0ZXN0IGBscyAvcHJvYy8kMS90YXNrIHwgd2MgLWxgIC1ndCAxIDI+L2Rldi9udWxs IDsgdGhlbgotKyAgICBpZiB0ZXN0IGAvYmluL2xzIC9wcm9jLyQxL3Rhc2sgfCAvdXNyL2Jpbi93 YyAtbGAgLWd0IDEgMj4vZGV2L251bGwgOyB0aGVuCi0gCWJhY2t0cmFjZT0idGhyZWFkIGFwcGx5 IGFsbCBidCIKLSAgICAgZmkKLSBlbGlmIHRlc3QgLWYgL3Byb2MvJDEvbWFwcyA7IHRoZW4KLSAg ICAgIyBPbGRlciBrZXJuZWw7IGdvIGJ5IGl0IGxvYWRpbmcgbGlicHRocmVhZC4KLS0gICAgaWYg Z3JlcCAtZSBsaWJwdGhyZWFkIC9wcm9jLyQxL21hcHMgPiAvZGV2L251bGwgMj4mMSA7IHRoZW4K LSsgICAgaWYgL2Jpbi9ncmVwIC1lIGxpYnB0aHJlYWQgL3Byb2MvJDEvbWFwcyA+IC9kZXYvbnVs bCAyPiYxIDsgdGhlbgotIAliYWNrdHJhY2U9InRocmVhZCBhcHBseSBhbGwgYnQiCi0gICAgIGZp Ci0gZmkKLSAKLS1HREI9JHtHREI6LWdkYn0KLStHREI9JHtHREI6LS91c3IvYmluL2dkYn0KLSAK LSBpZiAkR0RCIC1ueCAtLXF1aWV0IC0tYmF0Y2ggLS1yZWFkbmV2ZXIgPiAvZGV2L251bGwgMj4m MTsgdGhlbgotICAgICByZWFkbmV2ZXI9LS1yZWFkbmV2ZXIKLUBAIC0zOSw3ICszOSw3IEBAIGZp Ci0gc2V0IHBhZ2luYXRpb24gbm8KLSAkYmFja3RyYWNlCi0gRU9GCi0tc2VkIC1uIFwKLSsvYmlu L3NlZCAtbiBcCi0gICAgIC1lICdzL14oZ2RiKSAvLycgXAotICAgICAtZSAnL14jL3AnIFwKLSAg ICAgLWUgJy9eVGhyZWFkL3AnCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5 MDcucGF0Y2ggYi9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaAppbmRleCBiZDg5ZGQ1 Li4xMzJmM2JmIDEwMDY0NAotLS0gYS9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaAor KysgYi9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaApAQCAtMTEsMTEgKzExLDExIEBA CiAKICAgICAgICAgKiBnZGIudGV4aW5mbyAoRmlsZSBPcHRpb25zKTogRG9jdW1lbnQgLS1yZWFk bmV2ZXIuCiAKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9kb2MvZ2RiLnRleGluZm8K K0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEw LTAxLTIxIDE1OjExOjA5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjEv Z2RiL2RvYy9nZGIudGV4aW5mbwkyMDEwLTAxLTIxIDE1OjEzOjAyLjAwMDAwMDAwMCArMDEwMAot QEAgLTk5Nyw2ICs5OTcsMTIgQEAgUmVhZCBlYWNoIHN5bWJvbCBmaWxlJ3MgZW50aXJlIHN5bWJv bCB0YQorLS0tIGdkYi03LjAuOTAuMjAxMDAzMDYub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIw MTAtMDMtMDYgMjM6MTk6MTMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMw Ni9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDMtMDYgMjM6MjA6MzUuMDAwMDAwMDAwICswMTAw CitAQCAtOTk1LDYgKzk5NSwxMiBAQCBSZWFkIGVhY2ggc3ltYm9sIGZpbGUncyBlbnRpcmUgc3lt Ym9sIHRhCiAgdGhlIGRlZmF1bHQsIHdoaWNoIGlzIHRvIHJlYWQgaXQgaW5jcmVtZW50YWxseSBh cyBpdCBpcyBuZWVkZWQuCiAgVGhpcyBtYWtlcyBzdGFydHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1 dHVyZSBvcGVyYXRpb25zIGZhc3Rlci4KICAKQEAgLTI4LDEwICsyOCwxMCBAQCBJbmRleDogZ2Ri LTcuMC41MC4yMDEwMDEyMS9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGVuZCB0YWJsZQogIAogIEBu b2RlIE1vZGUgT3B0aW9ucwotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL21haW4uYwor SW5kZXg6IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL21haW4uYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjAuNTAuMjAxMDAxMjEub3JpZy9nZGIvbWFpbi5jCTIwMTAtMDEtMjEgMTU6MTE6MTguMDAw MDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvbWFpbi5jCTIwMTAtMDEt MjEgMTU6MTM6MDIuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMC45MC4yMDEwMDMwNi5vcmln L2dkYi9tYWluLmMJMjAxMC0wMy0wNiAyMzoyMDoyMy4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny4wLjkwLjIwMTAwMzA2L2dkYi9tYWluLmMJMjAxMC0wMy0wNiAyMzoyMDozNS4wMDAwMDAwMDAg KzAxMDAKIEBAIC0zODIsNiArMzgyLDcgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAg ICAgICB7InhkYiIsIG5vX2FyZ3VtZW50LCAmeGRiX2NvbW1hbmRzLCAxfSwKICAgICAgICB7ImRi eCIsIG5vX2FyZ3VtZW50LCAmZGJ4X2NvbW1hbmRzLCAxfSwKQEAgLTQ4LDEwICs0OCwxMCBAQCBJ bmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvbWFpbi5jCiAgIiksIHN0cmVhbSk7CiAgICBm cHV0c191bmZpbHRlcmVkIChfKCJcCiAgICAtLXNlPUZJTEUgICAgICAgICAgVXNlIEZJTEUgYXMg c3ltYm9sIGZpbGUgYW5kIGV4ZWN1dGFibGUgZmlsZS5cblwKLUluZGV4OiBnZGItNy4wLjUwLjIw MTAwMTIxL2dkYi9zeW1maWxlLmMKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi9zeW1m aWxlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL3N5bWZp bGUuYwkyMDEwLTAxLTIxIDE1OjExOjA5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAu MjAxMDAxMjEvZ2RiL3N5bWZpbGUuYwkyMDEwLTAxLTIxIDE1OjEzOjAyLjAwMDAwMDAwMCArMDEw MAorLS0tIGdkYi03LjAuOTAuMjAxMDAzMDYub3JpZy9nZGIvc3ltZmlsZS5jCTIwMTAtMDMtMDYg MjM6MTk6MTMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvc3lt ZmlsZS5jCTIwMTAtMDMtMDYgMjM6MjA6MzUuMDAwMDAwMDAwICswMTAwCiBAQCAtNzksNiArNzks NyBAQCBzdGF0aWMgdm9pZCBjbGVhcl9zeW10YWJfdXNlcnNfY2xlYW51cCAoCiAgCiAgLyogR2xv YmFsIHZhcmlhYmxlcyBvd25lZCBieSB0aGlzIGZpbGUgKi8KQEAgLTYwLDE5ICs2MCwxOSBAQCBJ bmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvc3ltZmlsZS5jCiAgCiAgLyogRXh0ZXJuYWwg dmFyaWFibGVzIGFuZCBmdW5jdGlvbnMgcmVmZXJlbmNlZC4gKi8KICAKLUluZGV4OiBnZGItNy4w LjUwLjIwMTAwMTIxL2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2 L2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9y aWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTAxLTIxIDE1OjExOjA5LjAwMDAwMDAwMCArMDEwMAot KysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTAxLTIxIDE1OjEz OjE1LjAwMDAwMDAwMCArMDEwMAotQEAgLTUzLDYgKzUzLDcgQEAKKy0tLSBnZGItNy4wLjkwLjIw MTAwMzA2Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTAzLTA2IDIzOjE5OjEzLjAwMDAwMDAw MCArMDEwMAorKysrIGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTAz LTA2IDIzOjIwOjU0LjAwMDAwMDAwMCArMDEwMAorQEAgLTUyLDYgKzUyLDcgQEAKKyAjaW5jbHVk ZSAiZi1sYW5nLmgiCiAgI2luY2x1ZGUgInR5cGVwcmludC5oIgogICNpbmNsdWRlICJqdi1sYW5n LmgiCi0gI2luY2x1ZGUgInZlYy5oIgogKyNpbmNsdWRlICJ0b3AuaCIKICAKICAjaW5jbHVkZSA8 ZmNudGwuaD4KICAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgotQEAgLTEyMzcsNyArMTIzOCw4IEBA IGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKK0BAIC0xMjIyLDcgKzEy MjMsOCBAQCBkd2FyZjJfaGFzX2luZm8gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlCiAgCiAgICAg ICAgYmZkX21hcF9vdmVyX3NlY3Rpb25zIChvYmpmaWxlLT5vYmZkLCBkd2FyZjJfbG9jYXRlX3Nl Y3Rpb25zLCBOVUxMKTsKICAgICAgfQpAQCAtODIsMTAgKzgyLDEwIEBAIEluZGV4OiBnZGItNy4w LjUwLjIwMTAwMTIxL2dkYi9kd2FyZjJyZWFkLmMKICAJICAmJiBkd2FyZjJfcGVyX29iamZpbGUt PmFiYnJldi5hc2VjdGlvbiAhPSBOVUxMKTsKICB9CiAgCi1JbmRleDogZ2RiLTcuMC41MC4yMDEw MDEyMS9nZGIvdG9wLmgKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90b3AuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMjEub3JpZy9nZGIvdG9wLmgJMjAxMC0wMS0w MSAwODozMTo0Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi90 b3AuaAkyMDEwLTAxLTIxIDE1OjEzOjAyLjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjAuOTAu MjAxMDAzMDYub3JpZy9nZGIvdG9wLmgJMjAxMC0wMS0wMSAwODozMTo0Mi4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90b3AuaAkyMDEwLTAzLTA2IDIzOjIwOjM1 LjAwMDAwMDAwMCArMDEwMAogQEAgLTYzLDYgKzYzLDcgQEAgZXh0ZXJuIHZvaWQgc2V0X3Byb21w dCAoY2hhciAqKTsKICAKICAvKiBGcm9tIHJhbmRvbSBwbGFjZXMuICAqLwoKZGlmZiAtLWdpdCBh L2dkYi02LjMtdGVzdC1waWUtMjAwNTAxMDcucGF0Y2ggYi9nZGItNi4zLXRlc3QtcGllLTIwMDUw MTA3LnBhdGNoCmluZGV4IGU0MjI3ZWYuLmY5ZDViYjQgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtdGVz dC1waWUtMjAwNTAxMDcucGF0Y2gKKysrIGIvZ2RiLTYuMy10ZXN0LXBpZS0yMDA1MDEwNy5wYXRj aApAQCAtMSwyOSArMSwyOSBAQAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3Rz dWl0ZS9jb25maWd1cmUuYWMKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90ZXN0c3Vp dGUvY29uZmlndXJlLmFjCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmln L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlLmFjCTIwMDktMDctMzEgMTc6Mzg6MTYuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5h YwkyMDA5LTA5LTA5IDE5OjA2OjAxLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi03LjAuOTAuMjAx MDAzMDYub3JpZy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDEwLTAyLTE5IDIwOjE2OjM2 LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9j b25maWd1cmUuYWMJMjAxMC0wMy0wNiAyMzoxOTo1Ni4wMDAwMDAwMDAgKzAxMDAKIEBAIC0xNDQs NiArMTQ0LDYgQEAgQUNfT1VUUFVUKFtNYWtlZmlsZSBcCiAgICBnZGIuY3AvTWFrZWZpbGUgZ2Ri LmRpc2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2VmaWxlIFwKLSAgIGdkYi5mb3J0cmFuL01h a2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgXAotICAgZ2RiLmphdmEvTWFrZWZpbGUgZ2RiLm1p L01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIFwKKyAgIGdkYi5mb3J0cmFuL01ha2VmaWxl IGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEvTWFrZWZpbGUgXAorICAgZ2RiLm1pL01ha2Vm aWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBcCiAtICBnZGIub2Jq Yy9NYWtlZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgXAogKyAgZ2Ri Lm9iamMvTWFrZWZpbGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5w aWUvTWFrZWZpbGUgXAogICAgZ2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmls ZSBcCiAgICBnZGIudGhyZWFkcy9NYWtlZmlsZSBnZGIudHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9N YWtlZmlsZV0pCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2NvbmZp Z3VyZQorSW5kZXg6IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9j b25maWd1cmUJMjAwOS0wOC0yMiAxODo1Njo0My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44 LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCTIwMDktMDktMDkgMTk6MDY6Mjcu MDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTcuMC45MC4yMDEwMDMwNi5vcmlnL2dkYi90ZXN0c3Vp dGUvY29uZmlndXJlCTIwMTAtMDItMTkgMjA6MTY6MzYuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuMC45MC4yMDEwMDMwNi9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQkyMDEwLTAzLTA2IDIzOjIw OjEyLjAwMDAwMDAwMCArMDEwMAogQEAgLTM1MTUsNyArMzUxNSw3IEBAIGRvbmUKICAKICAKICAK LS1hY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtl ZmlsZSBnZGIuYXJjaC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxl IGdkYi5jcC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUg Z2RiLmZvcnRyYW4vTWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmls ZSBnZGIubWkvTWFrZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUg Z2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUg Z2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2Vm aWxlIGdkYi54bWwvTWFrZWZpbGUiCi0rYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVz IE1ha2VmaWxlIGdkYi5hZGEvTWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtl ZmlsZSBnZGIuYmFzZS9NYWtlZmlsZSBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmls ZSBnZGIuZHdhcmYyL01ha2VmaWxlIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFr ZWZpbGUgZ2RiLmphdmEvTWFrZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2Vm aWxlIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmls ZSBnZGIucGllL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZp bGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZp bGUiCistYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIGdkYi5hZGEv TWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9NYWtl ZmlsZSBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2Vm aWxlIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEvTWFr ZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtl ZmlsZSBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZp bGUgZ2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIudGhyZWFkcy9N YWtlZmlsZSBnZGIudHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtlZmlsZSIKKythY19jb25maWdf ZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJj aC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5jcC9NYWtl ZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUgZ2RiLmZvcnRyYW4v TWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIubWkvTWFr ZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2RiLm11bHRpL01ha2VmaWxlIGdkYi5vYmpjL01h a2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01ha2Vm aWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMv TWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUiCiAgCiAgY2F0ID5j b25mY2FjaGUgPDxcX0FDRU9GCiAgIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBj YWNoZXMgdGhlIHJlc3VsdHMgb2YgY29uZmlndXJlCi1AQCAtNDIzMSw2ICs0MjMxLDcgQEAgZG8K K0BAIC00MjMyLDYgKzQyMzIsNyBAQCBkbwogICAgICAiZ2RiLm9iamMvTWFrZWZpbGUiKSBDT05G SUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLm9iamMvTWFrZWZpbGUiIDs7CiAgICAgICJnZGIu b3B0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vcHQvTWFrZWZp bGUiIDs7CiAgICAgICJnZGIucGFzY2FsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklH X0ZJTEVTIGdkYi5wYXNjYWwvTWFrZWZpbGUiIDs7CkBAIC0zMSwxMCArMzEsMTAgQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUKICAgICAgImdkYi5w eXRob24vTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnB5dGhvbi9N YWtlZmlsZSIgOzsKICAgICAgImdkYi5yZXZlcnNlL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIGdkYi5yZXZlcnNlL01ha2VmaWxlIiA7OwogICAgICAiZ2RiLnRocmVhZHMv TWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnRocmVhZHMvTWFrZWZp bGUiIDs7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUv YXR0YWNoLmMKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9hdHRhY2guYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGllL2F0dGFjaC5jCTIwMDktMDktMDkgMTk6MDY6MDEuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMJMjAxMC0w My0wNiAyMzoxOTozMS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsMjAgQEAKICsvKiBUaGlz IHByb2dyYW0gaXMgaW50ZW5kZWQgdG8gYmUgc3RhcnRlZCBvdXRzaWRlIG9mIGdkYiwgYW5kIHRo ZW4KICsgICBhdHRhY2hlZCB0byBieSBnZGIuICBUaHVzLCBpdCBzaW1wbHkgc3BpbnMgaW4gYSBs b29wLiAgVGhlIGxvb3AKQEAgLTU2LDEwICs1NiwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5 MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMKICsgICAgfQogKyAgcmV0dXJuIDA7 CiArfQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0 dGFjaDIuYworSW5kZXg6IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGll L2F0dGFjaDIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGllL2F0dGFjaDIuYwkyMDA5LTA5LTA5IDE5OjA2OjAxLjAwMDAwMDAwMCArMDIwMAorKysr IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwkyMDEw LTAzLTA2IDIzOjE5OjMxLjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSwyNCBAQAogKy8qIFRo aXMgcHJvZ3JhbSBpcyBpbnRlbmRlZCB0byBiZSBzdGFydGVkIG91dHNpZGUgb2YgZ2RiLCBhbmQg dGhlbgogKyAgIGF0dGFjaGVkIHRvIGJ5IGdkYi4gIFRodXMsIGl0IHNpbXBseSBzcGlucyBpbiBh IGxvb3AuICBUaGUgbG9vcApAQCAtODUsMTAgKzg1LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIw MDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMKICsgICAgfQogKyAgcmV0dXJu ICgwKTsKICt9Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5w aWUvYnJlYWsuYworSW5kZXg6IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIu cGllL2JyZWFrLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUv Z2RiLnBpZS9icmVhay5jCTIwMDktMDktMDkgMTk6MDY6MDEuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYwkyMDEwLTAz LTA2IDIzOjE5OjMxLjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSwxNDYgQEAKICsvKiBUaGlz IHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMjM2LDEw ICsyMzYsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIu cGllL2JyZWFrLmMKICsgICAgfQogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi02LjguNTAu MjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrMS5jCitJbmRleDogZ2RiLTcuMC45 MC4yMDEwMDMwNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwkyMDA5LTA5LTA5 IDE5OjA2OjAxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rl c3RzdWl0ZS9nZGIucGllL2JyZWFrMS5jCTIwMTAtMDMtMDYgMjM6MTk6MzEuMDAwMDAwMDAwICsw MTAwCiBAQCAtMCwwICsxLDQ0IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwg dGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTI4NSwxMCArMjg1LDEwIEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwogK3ZvaWQgbWFya2Vy MyAoYSwgYikgY2hhciAqYSwgKmI7IHt9CS8qIHNldCBicmVha3BvaW50IDE4IGhlcmUgKi8KICt2 b2lkIG1hcmtlcjQgKGQpIGxvbmcgZDsge30JCS8qIHNldCBicmVha3BvaW50IDEzIGhlcmUgKi8K ICsjZW5kaWYKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9jb3JlbWFrZXIuYworSW5kZXg6IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGllL2NvcmVtYWtlci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVz dHN1aXRlL2dkYi5waWUvY29yZW1ha2VyLmMJMjAwOS0wOS0wOSAxOTowNjowMS4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3Jl bWFrZXIuYwkyMDEwLTAzLTA2IDIzOjE5OjMxLjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSwx NDIgQEAKICsvKiBDb3B5cmlnaHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OQog KyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtNDMyLDEwICs0MzIsMTAgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtl ci5jCiArICByZXR1cm4gMDsKICt9CiArCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv dGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAorSW5kZXg6IGdkYi03LjAuOTAuMjAxMDAzMDYv Z2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNi44LjUwLjIw MDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhwCTIwMDktMDktMDkgMTk6MDY6 MDEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvdGVzdHN1aXRl L2dkYi5waWUvYXR0YWNoLmV4cAkyMDEwLTAzLTA2IDIzOjE5OjMxLjAwMDAwMDAwMCArMDEwMAog QEAgLTAsMCArMSw0MzMgQEAKICsjICAgQ29weXJpZ2h0IDE5OTcsIDE5OTksIDIwMDIgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC04NzAsMTAgKzg3MCwxMCBAQCBJbmRleDog Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAogK2Rv X2NhbGxfYXR0YWNoX3Rlc3RzCiArCiArcmV0dXJuIDAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAKK0luZGV4OiBnZGItNy4wLjkwLjIw MTAwMzA2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNi44 LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAJMjAwOS0wOS0wOSAx OTowNjowMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9icmVhay5leHAJMjAxMC0wMy0wNiAyMzoxOTozMS4wMDAwMDAwMDAgKzAx MDAKIEBAIC0wLDAgKzEsOTc3IEBACiArIyAgIENvcHlyaWdodCAxOTg4LCAxOTkwLCAxOTkxLCAx OTkyLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAogKyMgICAyMDAwLCAyMDAy LCAyMDAzLCAyMDA0CkBAIC0xODUyLDEwICsxODUyLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIw MDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAKICsgICAgc2VuZF9nZGIgInNl dCBhcmdzIG1haW5cbiIKICsgICAgZ2RiX2V4cGVjdCAtcmUgIi4qJGdkYl9wcm9tcHQgJCIge30K ICt9Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29y ZWZpbGUuZXhwCitJbmRleDogZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvdGVzdHN1aXRlL2dkYi5w aWUvY29yZWZpbGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCTIwMDktMDktMDkgMTk6MDY6MDEuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZp bGUuZXhwCTIwMTAtMDMtMDYgMjM6MTk6MzEuMDAwMDAwMDAwICswMTAwCiBAQCAtMCwwICsxLDI0 MyBAQAogKyMgQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5 OTgsIDE5OTksIDIwMDAKICsjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjEw MCwxMCArMjEwMCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRl L2dkYi5waWUvY29yZWZpbGUuZXhwCiArZ2RiX3Rlc3QgInVwIiAiI1xbMC05XF0qICpcWzAtOXhh LWZIJ1xdKiBpbiAuKiBcXCguKlxcKS4qIiAidXAgaW4gY29yZWZpbGUuZXhwIChyZWluaXQpIgog KwogK2dkYl90ZXN0ICJjb3JlIiAiTm8gY29yZSBmaWxlIG5vdy4iCi1JbmRleDogZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvTWFrZWZpbGUuaW4KK0luZGV4OiBnZGIt Ny4wLjkwLjIwMTAwMzA2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxlLmlu CTIwMDktMDktMDkgMTk6MDY6MDEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMC45MC4yMDEw MDMwNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvTWFrZWZpbGUuaW4JMjAxMC0wMy0wNiAyMzoxOToz MS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsMTkgQEAKICtWUEFUSCA9IEBzcmNkaXJACiAr c3JjZGlyID0gQHNyY2RpckAKCmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MjAzNjYxLWVtaXQtcmVs b2NzLnBhdGNoIGIvZ2RiLTYuNS1iejIwMzY2MS1lbWl0LXJlbG9jcy5wYXRjaAppbmRleCBmNThj YzllLi42MWUwZDU2IDEwMDY0NAotLS0gYS9nZGItNi41LWJ6MjAzNjYxLWVtaXQtcmVsb2NzLnBh dGNoCisrKyBiL2dkYi02LjUtYnoyMDM2NjEtZW1pdC1yZWxvY3MucGF0Y2gKQEAgLTEsMTEgKzEs MTEgQEAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9zeW1maWxlLmMKK0luZGV4OiBn ZGItNy4wLjkwLjIwMTAwMzA2L2dkYi9zeW1maWxlLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44 LjUwLjIwMDkwODAyLm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDA5LTA4LTAzIDEyOjI5OjU4LjAwMDAw MDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3N5bWZpbGUuYwkyMDA5LTA4 LTAzIDEyOjQwOjU4LjAwMDAwMDAwMCArMDIwMAotQEAgLTQwMTIsNiArNDAxMiwxMiBAQCBzeW1m aWxlX2R1bW15X291dHB1dHMgKGJmZCAqYWJmZCwgYXNlY3RpCi0gYmZkX2J5dGUgKgotIHN5bWZp bGVfcmVsb2NhdGVfZGVidWdfc2VjdGlvbiAoYmZkICphYmZkLCBhc2VjdGlvbiAqc2VjdHAsIGJm ZF9ieXRlICpidWYpCistLS0gZ2RiLTcuMC45MC4yMDEwMDMwNi5vcmlnL2dkYi9zeW1maWxlLmMJ MjAxMC0wMy0wNiAyMzoyMDozNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4wLjkwLjIwMTAw MzA2L2dkYi9zeW1maWxlLmMJMjAxMC0wMy0wNiAyMzoyNjoyNS4wMDAwMDAwMDAgKzAxMDAKK0BA IC0zNjQyLDYgKzM2NDIsMTIgQEAgZGVmYXVsdF9zeW1maWxlX3JlbG9jYXRlIChzdHJ1Y3Qgb2Jq ZmlsZQogIHsKKyAgIGJmZCAqYWJmZCA9IG9iamZpbGUtPm9iZmQ7CisgCiArICAvKiBFeGVjdXRh YmxlIGZpbGVzIGhhdmUgYWxsIHRoZSByZWxvY2F0aW9ucyBhbHJlYWR5IHJlc29sdmVkLgogKyAg ICogSGFuZGxlIGZpbGVzIGxpbmtlZCB3aXRoIC0tZW1pdC1yZWxvY3MuCiArICAgKiBodHRwOi8v c291cmNlcy5yZWRoYXQuY29tL21sL2dkYi8yMDA2LTA4L21zZzAwMTM3Lmh0bWwgICovCgpkaWZm IC0tZ2l0IGEvZ2RiLTYuNS1iejIxNjcxMS1jbG9uZS1pcy1vdXRlcm1vc3QucGF0Y2ggYi9nZGIt Ni41LWJ6MjE2NzExLWNsb25lLWlzLW91dGVybW9zdC5wYXRjaAppbmRleCBhYjBjOTAyLi5iZDAz OTg1IDEwMDY0NAotLS0gYS9nZGItNi41LWJ6MjE2NzExLWNsb25lLWlzLW91dGVybW9zdC5wYXRj aAorKysgYi9nZGItNi41LWJ6MjE2NzExLWNsb25lLWlzLW91dGVybW9zdC5wYXRjaApAQCAtMTY0 LDcgKzE2NCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9hbWQ2NC10ZGVwLmMK ICAvKiBGbG9hdGluZy1wb2ludCByZWdpc3RlcnMuICAqLwogLS0tIGEvZ2RiL2lhNjQtdGRlcC5j CiArKysgYi9nZGIvaWE2NC10ZGVwLmMKLUBAIC0yMTIyLDYgKzIxMjIsMTM3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZnJhbWVfdW53aW5kIGlhNjRfZnJhbWVfdW53aW5kID0KK0BAIC0yMTIyLDYg KzIxMjIsMTM4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZnJhbWVfdW53aW5kIGlhNjRfZnJhbWVf dW53aW5kID0KICAgIGRlZmF1bHRfZnJhbWVfc25pZmZlcgogIH07CiAgCkBAIC0yMjgsMTIgKzIy OCwxMyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvYW1kNjQtdGRlcC5jCiArICBp ZiAobWluc3ltID09IE5VTEwpCiArICAgIHJldHVybiAwOwogKwotKyAgaW5zdHIgPSBzbG90Tl9j b250ZW50cyAoJmJ1ZltMSU5VWF9DTE9ORV9QUkVfU0xPVFMgKiAxNl0sIDIpOworKyAgaW5zdHIg PSBzbG90Tl9jb250ZW50cyAoJmxpbnV4X2Nsb25lMl9jb2RlW0xJTlVYX0NMT05FX1BSRV9TTE9U UyAqIDE2XSwgMik7CiArICBpbnN0ciAmPSB+KCgoMUwgPDwgMjApIC0gMSkgPDwgMTMpOwogKyAg LyogQWRkcmVzcyBpcyByZWxhdGl2ZSB0byB0aGUganVtcCBpbnN0cnVjdGlvbiBzbG90LCBub3Qg dGhlIG5leHQgb25lLiAgKi8KICsgIGluc3RyIHw9ICgoKFNZTUJPTF9WQUxVRV9BRERSRVNTICht aW5zeW0pIC0gKHBjICYgfjB4ZkwpKSA+PiA0KQogKwkgICAgJiAoKDFMIDw8IDIwKSAtIDEpKSA8 PCAxMzsKLSsgIHJlcGxhY2Vfc2xvdE5fY29udGVudHMgKCZidWZbTElOVVhfQ0xPTkVfUFJFX1NM T1RTICogMTZdLCBpbnN0ciwgMik7CisrICByZXBsYWNlX3Nsb3ROX2NvbnRlbnRzICgmbGludXhf Y2xvbmUyX2NvZGVbTElOVVhfQ0xPTkVfUFJFX1NMT1RTICogMTZdLCBpbnN0ciwKKysJCQkgIDIp OwogKwogKyAgaWYgKG1lbWNtcCAoJmJ1ZltMSU5VWF9DTE9ORV9QUkVfU0xPVFMgKiAxNl0sCiAr ICAgICAgICAgICAgICAmbGludXhfY2xvbmUyX2NvZGVbTElOVVhfQ0xPTkVfUFJFX1NMT1RTICog MTZdLAoKZGlmZiAtLWdpdCBhL2dkYi02LjUtYnoyMTgzNzktcHBjLXNvbGliLXRyYW1wb2xpbmUt Zml4LnBhdGNoIGIvZ2RiLTYuNS1iejIxODM3OS1wcGMtc29saWItdHJhbXBvbGluZS1maXgucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmYjI2YjAuLjAwMDAwMDAKLS0tIGEv Z2RiLTYuNS1iejIxODM3OS1wcGMtc29saWItdHJhbXBvbGluZS1maXgucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxOSArMCwwIEBACi1odHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemls bGEvc2hvd19idWcuY2dpP2lkPTIxODM3OQotCi0KLUluZGV4OiBnZGItNi44LjUwLjIwMDgxMTI4 L2dkYi9taW5zeW1zLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDgxMTI4Lm9yaWcv Z2RiL21pbnN5bXMuYwkyMDA4LTEwLTAxIDE4OjU2OjUyLjAwMDAwMDAwMCArMDIwMAotKysrIGdk Yi02LjguNTAuMjAwODExMjgvZ2RiL21pbnN5bXMuYwkyMDA4LTEyLTAyIDIzOjI0OjI3LjAwMDAw MDAwMCArMDEwMAotQEAgLTU0NCw2ICs1NDQsMTEgQEAgbG9va3VwX21pbmltYWxfc3ltYm9sX2J5 X3BjX3NlY3Rpb25fMSAoQwotIAkJCSBkb24ndCBmaWxsIHRoZSBiZmRfc2VjdGlvbiBtZW1iZXIs IHNvIGRvbid0Ci0gCQkJIHRocm93IGF3YXkgc3ltYm9scyBvbiB0aG9zZSBwbGF0Zm9ybXMuICAq LwotIAkJICAgICAgJiYgU1lNQk9MX09CSl9TRUNUSU9OICgmbXN5bWJvbFtoaV0pICE9IE5VTEwK LSsJCSAgICAgIC8qIERvbid0IGlnbm9yZSBzeW1ib2xzIGZvciBzb2xpYiB0cmFtcG9saW5lcy4K LSsJCQkgTGltaXQgaXRzIHNpZGVlZmZlY3RzIC0gb25seSBmb3Igbm9uLTAgc2l6ZWQgdHJhbXBv bGluZXMuCi0rCQkJIFJlZCBIYXQgQnVnIDIwMDUzMyB3aXRoIGl0cyByZWdyZXNzaW9uIEJ1ZyAy MTgzNzkuICAqLwotKwkJICAgICAgJiYgKE1TWU1CT0xfVFlQRSAoJm1zeW1ib2xbaGldKSAhPSBt c3Rfc29saWJfdHJhbXBvbGluZQotKwkJICAgICAgICAgIHx8IE1TWU1CT0xfU0laRSAoJm1zeW1i b2xbaGldKSkKLSAJCSAgICAgICYmICghbWF0Y2hpbmdfb2JqX3NlY3Rpb25zCi0gCQkJICAoU1lN Qk9MX09CSl9TRUNUSU9OICgmbXN5bWJvbFtoaV0pLCBzZWN0aW9uKSkpCi0gCQkgICAgewoKZGlm ZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2ggYi9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCmluZGV4IGYyZmQ0ZmUuLjc4MDk5 NDAgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gK KysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRjaApAQCAtNTgsMTAg KzU4LDggQEAgSHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDEvbXNn MDA1MTcuaHRtbAogCSogZXhlYy5jIChleGVjX2ZpbGVfYXR0YWNoKTogUHJpbnQgYSBtb3JlIHVz ZWZ1bCBlcnJvciBtZXNzYWdlIGlmIHRoZQogCXVzZXIgZGlkICJnZGIgY29yZSIuCiAKLUluZGV4 OiBnZGItNy4wLjUwLjIwMTAwMTI4L2dkYi9leGNlcHRpb25zLmgKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4wLjUwLjIwMTAwMTI4Lm9yaWcvZ2RiL2V4Y2VwdGlvbnMuaAkyMDEwLTAxLTE4IDA3OjI1 OjIyLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjgvZ2RiL2V4Y2VwdGlv bnMuaAkyMDEwLTAxLTI4IDIyOjQ5OjAwLjAwMDAwMDAwMCArMDEwMAorLS0tIC4vZ2RiL2V4Y2Vw dGlvbnMuaAkyMDEwLTA0LTExIDIyOjMxOjMwLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2V4 Y2VwdGlvbnMuaAkyMDEwLTA0LTExIDIyOjMxOjQ3LjAwMDAwMDAwMCArMDIwMAogQEAgLTc4LDYg Kzc4LDkgQEAgZW51bSBlcnJvcnMgewogICAgLyogRmVhdHVyZSBpcyBub3Qgc3VwcG9ydGVkIGlu IHRoaXMgY29weSBvZiBHREIuICAqLwogICAgVU5TVVBQT1JURURfRVJST1IsCkBAIC03Miw0MCAr NzAsNDkgQEAgSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMjgvZ2RiL2V4Y2VwdGlvbnMuaAogICAg LyogQWRkIG1vcmUgZXJyb3JzIGhlcmUuICAqLwogICAgTlJfRVJST1JTCiAgfTsKLUluZGV4OiBn ZGItNy4wLjUwLjIwMTAwMTI4L2dkYi9leGVjLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUw LjIwMTAwMTI4Lm9yaWcvZ2RiL2V4ZWMuYwkyMDEwLTAxLTI4IDIyOjQ4OjU5LjAwMDAwMDAwMCAr MDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjgvZ2RiL2V4ZWMuYwkyMDEwLTAxLTI4IDIyOjU4 OjQ1LjAwMDAwMDAwMCArMDEwMAorLS0tIC4vZ2RiL2V4ZWMuYwkyMDEwLTA0LTExIDIyOjMxOjMw LjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2V4ZWMuYwkyMDEwLTA0LTExIDIyOjQxOjI2LjAw MDAwMDAwMCArMDIwMAogQEAgLTM0LDYgKzM0LDcgQEAKKyAjaW5jbHVkZSAiYXJjaC11dGlscy5o IgogICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKICAjaW5jbHVkZSAicHJvZ3NwYWNlLmgiCi0gI2lu Y2x1ZGUgInNvbGliLmgiCiArI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKICAKICAjaW5jbHVkZSA8 ZmNudGwuaD4KICAjaW5jbHVkZSAicmVhZGxpbmUvcmVhZGxpbmUuaCIKLUBAIC0yNTgsNiArMjU5 LDE3IEBAIGV4ZWNfZmlsZV9hdHRhY2ggKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnIKLSAJICAvKiBN YWtlIHN1cmUgdG8gY2xvc2UgZXhlY19iZmQsIG9yIGVsc2UgInJ1biIgbWlnaHQgdHJ5IHRvIHVz ZQotIAkgICAgIGl0LiAgKi8KLSAJICBleGVjX2Nsb3NlICgpOworQEAgLTI1NiwxMiArMjU3LDI3 IEBAIGV4ZWNfZmlsZV9hdHRhY2ggKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnIKKyAKKyAgICAgICBp ZiAoIWJmZF9jaGVja19mb3JtYXRfbWF0Y2hlcyAoZXhlY19iZmQsIGJmZF9vYmplY3QsICZtYXRj aGluZykpCisgCXsKKysJICBpbnQgaXNfY29yZTsKICsKICsJICAvKiBJZiB0aGUgdXNlciBhY2Np ZGVudGFsbHkgZGlkICJnZGIgY29yZSIsIHByaW50IGEgdXNlZnVsCiArCSAgICAgZXJyb3IgbWVz c2FnZS4gIENoZWNrIGl0IG9ubHkgYWZ0ZXIgYmZkX29iamVjdCBoYXMgYmVlbiBjaGVja2VkIGFz CiArCSAgICAgYSB2YWxpZCBleGVjdXRhYmxlIG1heSBnZXQgcmVjb2duaXplZCBmb3IgZXhhbXBs ZSBhbHNvIGFzCiArCSAgICAgInRyYWQtY29yZSIuICAqLwotKwkgIGlmIChiZmRfY2hlY2tfZm9y bWF0IChleGVjX2JmZCwgYmZkX2NvcmUpKQotKwkgICAgdGhyb3dfZXJyb3IgKElTX0NPUkVfRVJS T1IsCi0rCQkJIF8oIlwiJXNcIiBpcyBhIGNvcmUgZmlsZS5cbiIKLSsJCQkgICAiUGxlYXNlIHNw ZWNpZnkgYW4gZXhlY3V0YWJsZSB0byBkZWJ1Zy4iKSwKLSsJCQkgc2NyYXRjaF9wYXRobmFtZSk7 CisrCSAgaXNfY29yZSA9IGJmZF9jaGVja19mb3JtYXQgKGV4ZWNfYmZkLCBiZmRfY29yZSk7CiAr Ci0gCSAgZXJyb3IgKF8oIlwiJXNcIjogbm90IGluIGV4ZWN1dGFibGUgZm9ybWF0OiAlcyIpLAot IAkJIHNjcmF0Y2hfcGF0aG5hbWUsIGJmZF9lcnJtc2cgKGJmZF9nZXRfZXJyb3IgKCkpKTsKKyAJ ICAvKiBNYWtlIHN1cmUgdG8gY2xvc2UgZXhlY19iZmQsIG9yIGVsc2UgInJ1biIgbWlnaHQgdHJ5 IHRvIHVzZQorIAkgICAgIGl0LiAgKi8KKyAJICBleGVjX2Nsb3NlICgpOworLQkgIGVycm9yIChf KCJcIiVzXCI6IG5vdCBpbiBleGVjdXRhYmxlIGZvcm1hdDogJXMiKSwKKy0JCSBzY3JhdGNoX3Bh dGhuYW1lLAorLQkJIGdkYl9iZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpLCBtYXRjaGluZykp OworKworKwkgIGlmIChpc19jb3JlICE9IDApCisrCSAgICB0aHJvd19lcnJvciAoSVNfQ09SRV9F UlJPUiwKKysJCSAgIF8oIlwiJXNcIiBpcyBhIGNvcmUgZmlsZS5cbiIKKysJCSAgICAgIlBsZWFz ZSBzcGVjaWZ5IGFuIGV4ZWN1dGFibGUgdG8gZGVidWcuIiksCisrCQkgICBzY3JhdGNoX3BhdGhu YW1lKTsKKysJICBlbHNlCisrCSAgICBlcnJvciAoXygiXCIlc1wiOiBub3QgaW4gZXhlY3V0YWJs ZSBmb3JtYXQ6ICVzIiksCisrCQkgICBzY3JhdGNoX3BhdGhuYW1lLAorKwkJICAgZ2RiX2JmZF9l cnJtc2cgKGJmZF9nZXRfZXJyb3IgKCksIG1hdGNoaW5nKSk7CiAgCX0KLUluZGV4OiBnZGItNy4w LjUwLjIwMTAwMTI4L2dkYi9tYWluLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAw MTI4Lm9yaWcvZ2RiL21haW4uYwkyMDEwLTAxLTI4IDIyOjQ4OjU5LjAwMDAwMDAwMCArMDEwMAot KysrIGdkYi03LjAuNTAuMjAxMDAxMjgvZ2RiL21haW4uYwkyMDEwLTAxLTI4IDIyOjQ5OjAwLjAw MDAwMDAwMCArMDEwMAorIAorICAgICAgIC8qIEZJWE1FIC0gVGhpcyBzaG91bGQgb25seSBiZSBy dW4gZm9yIFJTNjAwMCwgYnV0IHRoZSBpZmRlZiBpcyBhIHBvb3IKKy0tLSAuL2dkYi9tYWluLmMJ MjAxMC0wNC0xMSAyMjozMTozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyAuL2dkYi9tYWluLmMJMjAx MC0wNC0xMSAyMjozMTo0Ny4wMDAwMDAwMDAgKzAyMDAKIEBAIC0yNDEsNiArMjQxLDM2IEBAIGNh cHR1cmVkX2NvbW1hbmRfbG9vcCAodm9pZCAqZGF0YSkKICAgIHJldHVybiAxOwogIH0KCmRpZmYg LS1naXQgYS9nZGItNi43LXRlc3RzdWl0ZS1zdGFibGUtcmVzdWx0cy1wcmVsaW5rLnBhdGNoIGIv Z2RiLTYuNy10ZXN0c3VpdGUtc3RhYmxlLXJlc3VsdHMtcHJlbGluay5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzUxNTc3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Ri LTYuNy10ZXN0c3VpdGUtc3RhYmxlLXJlc3VsdHMtcHJlbGluay5wYXRjaApAQCAtMCwwICsxLDY4 IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMy9tc2cwMTAw Ni5odG1sCitTdWJqZWN0OiBbcGF0Y2ggb3IgRllJXSB0ZXN0c3VpdGU6IEZpeCBwcmVsaW5rLmV4 cCBvbiBzeXN0ZW0gdy91bnByZWxpbmtlZCAgc3lzdGVtIGxpYnMKKworSGksCisKK3RoaXMgaXMg YSBtb3JlIGNvbnNlcnZhdGl2ZSB2YXJpYW50IHN1cGVyc2VkZWQgYnk6CisJW3BhdGNoIDQvNl0g dGVzdHN1aXRlOiBVbmlmeSB0byBsaWIvcHJlbGluay1zdXBwb3J0LmV4cAorCWh0dHA6Ly9zb3Vy Y2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAxMDAyLmh0bWwKK3doZXJlIGdk Yi5iYXNlL3ByZWxpbmsuZXhwIGlzIHJld29ya2VkIG9uIGdlbmVyaWMgbGliL3ByZWxpbmstc3Vw cG9ydC5leHAuCisKK0kgcHJlZmVyIHRoZSBbcGF0Y2ggNC82XSBvdmVyIHRoaXMgcGF0Y2ggYnV0 IHRoaXMgbWFpbCBjYW4gc2VydmUgYWxzbyBhcyBhbgoraWxsdXN0cmF0aW9uIG9mIHRoZSBjdXJy ZW50IHByb2JsZW0uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3VyIHN5c3RlbSBm b3Igc29tZSByZWFzb24gY3VycmVudGx5IGRvZXMgbm90IGhhdmUgYWxsIHRoZSBsaWJyYXJpZXMK K3ByZWxpbmtlZCBnZGIuYmFzZS9wcmVsaW5rLmV4cCB3aWxsIGdldCBVTlJFU09MVkVEIHJhbmRv bWx5IGFsc28gYWZmZWN0aW5nCit0ZXN0c3VpdGUgcmVzdWx0cyBkaWZmLgorCitBcHBhcmVudGx5 IHRoZSB0ZXN0Y2FzZSBhbHJlYWR5IHRyaWVkIHRvIGF2b2lkIGFueSBzeXN0ZW0gbGlicmFyaWVz CitkZXBlbmRlbmNpZXMgYnkgIi1ub2RlZmF1bHRsaWJzIi4gIEJ1dCBjdXJyZW50bHkgaXQgZG9l cyBoYXMgbm90IHdvcmtlZCB0aGF0Cit3YXkuCisKKyItbG0iIGlzIGNvbnRhaW5lZCBhbHJlYWR5 IGV2ZW4gaW4gZGVqYWdudSdzIGRlZmF1bHRfdGFyZ2V0X2NvbXBpbGUgKG5vdCBqdXN0CitpbiBn ZGIvdGVzdHN1aXRlL2xpYi9hZGEuZXhwKS4gIEJ1dCBJIGRvIG5vdCBrbm93IHdoeSBpdCBpcyB0 aGVyZSBhbmQgd2hpY2gKK3N5c3RlbXMgd291bGQgZ2V0IGJyb2tlbiBieSBzb21lIGdsb2JhbCBn ZGIvdGVzdHN1aXRlLyAiLWxtIiByZW1vdmFsLgorCisKK1RoYW5rcywKK0phbgorCisKKzIwMTAt MDMtMjkgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCUZp eCB0ZXN0Y2FzZSBmYWxzZSBVTlJFU09MVkVEIGlmIHN5c3RlbSBsaWJyYXJpZXMgYXJlIG5vdCBw cmVsaW5rZWQuCisJKiBnZGIuYmFzZS9wcmVsaW5rLmV4cDogTmV3IHZhcmlhYmxlcyBjb21waWxl LCBib2FyZCwgZXJyIGFuZCBtYXRobGliLgorCVNldCBjbGVhciBib2FyZCBtYXRobGliIGZvciAk e2xpYmZpbGV9IGNvbXBpbGF0aW9uLgorCistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3By ZWxpbmsuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ByZWxpbmsuZXhwCitAQCAt NDIsNyArNDIsMjUgQEAgc2V0IHRlc3RmaWxlICJwcmVsaW5rIgorIAorIHNldCBsaWJzcmNmaWxl ICR7dGVzdGZpbGV9LWxpYi5jCisgc2V0IGxpYmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rl c3RmaWxlfS5zbworLWlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7bGli c3JjZmlsZX0iICIke2xpYmZpbGV9IiBleGVjdXRhYmxlIFtsaXN0IGRlYnVnICJhZGRpdGlvbmFs X2ZsYWdzPS1mcGljIC1zaGFyZWQgLW5vZGVmYXVsdGxpYnMiXV0gIT0gIiJ9IHsKKysKKysjIGRl ZmF1bHRfdGFyZ2V0X2NvbXBpbGUgd291bGQgb3RoZXJ3aXNlIGFkZCAiLWxtIiBtYWtpbmcgdGhl IHRlc3RjYXNlCisrIyBkZXBlbmRlbnQgb24gd2hldGhlciB0aGUgc3lzdGVtIGxpYnJhcmllcyBh cmUgYWxyZWFkeSBwcmVsaW5rZWQuCisrIyBwcmVsaW5rOiBDb3VsZCBub3Qgc2V0IC9saWI2NC9s aWJtLTIuMTEuMS5zbyBvd25lciBvciBtb2RlOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZAorK3Nl dCBjb21waWxlIHsKKysgICAgZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtsaWJz cmNmaWxlfSIgIiR7bGliZmlsZX0iIGV4ZWN1dGFibGUgW2xpc3QgZGVidWcgImFkZGl0aW9uYWxf ZmxhZ3M9LWZwaWMgLXNoYXJlZCAtbm9kZWZhdWx0bGlicyJdCisrfQorK3NldCBib2FyZCBbdGFy Z2V0X2luZm8gbmFtZV0KKytpZiBbYm9hcmRfaW5mbyAkYm9hcmQgZXhpc3RzIG1hdGhsaWJdIHsK KysgICAgc2V0IG1hdGhsaWIgW2JvYXJkX2luZm8gJGRlc3QgbWF0aGxpYl0KKysgICAgc2V0X2Jv YXJkX2luZm8gbWF0aGxpYiAiIgorKyAgICBzZXQgZXJyIFtldmFsICRjb21waWxlXQorKyAgICBz ZXRfYm9hcmRfaW5mbyBtYXRobGliICRtYXRobGliCisrfSBlbHNlIHsKKysgICAgc2V0X2JvYXJk X2luZm8gbWF0aGxpYiAiIgorKyAgICBzZXQgZXJyIFtldmFsICRjb21waWxlXQorKyAgICB1bnNl dF9ib2FyZF9pbmZvIG1hdGhsaWIKKyt9CisraWYgeyRlcnIgIT0gIiJ9IHsKKyAgICAgIyBJZiBj cmVhdGluZyB0aGUgc2hhcmVkIGxpYnJhcnkgZmFpbHMsIG1heWJlIHdlIGRvbid0IGhhdmUgdGhl IHJpZ2h0IHRvb2xzCisgICAgIHJldHVybiAtMQorIH0KKwoKZGlmZiAtLWdpdCBhL2dkYi02Ljgt YnoyNTQyMjktZ2NvcmUtcHJwc2luZm8ucGF0Y2ggYi9nZGItNi44LWJ6MjU0MjI5LWdjb3JlLXBy cHNpbmZvLnBhdGNoCmluZGV4IGUwZTY4YjguLjI0OWFhODEgMTAwNjQ0Ci0tLSBhL2dkYi02Ljgt YnoyNTQyMjktZ2NvcmUtcHJwc2luZm8ucGF0Y2gKKysrIGIvZ2RiLTYuOC1iejI1NDIyOS1nY29y ZS1wcnBzaW5mby5wYXRjaApAQCAtMSw4ICsxLDggQEAKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAw MjAzL2JmZC9lbGYtYmZkLmgKK0luZGV4OiBnZGItNy4xL2JmZC9lbGYtYmZkLmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMjAzLm9yaWcvYmZkL2VsZi1iZmQuaAkyMDEwLTAyLTAy IDEzOjM3OjM5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAyMDMvYmZkL2Vs Zi1iZmQuaAkyMDEwLTAyLTAzIDA3OjI4OjIwLjAwMDAwMDAwMCArMDEwMAotQEAgLTIxNDAsNyAr MjE0MCw3IEBAIGV4dGVybiBFbGZfSW50ZXJuYWxfUGhkciAqIF9iZmRfZWxmX2ZpbmQKKy0tLSBn ZGItNy4xLm9yaWcvYmZkL2VsZi1iZmQuaAkyMDEwLTAyLTA5IDEzOjE0OjQyLjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjEvYmZkL2VsZi1iZmQuaAkyMDEwLTA1LTE2IDIwOjIyOjM4LjAwMDAw MDAwMCArMDIwMAorQEAgLTIxNjAsNyArMjE2MCw3IEBAIGV4dGVybiBFbGZfSW50ZXJuYWxfUGhk ciAqIF9iZmRfZWxmX2ZpbmQKICBleHRlcm4gY2hhciAqZWxmY29yZV93cml0ZV9ub3RlCiAgICAo YmZkICosIGNoYXIgKiwgaW50ICosIGNvbnN0IGNoYXIgKiwgaW50LCBjb25zdCB2b2lkICosIGlu dCk7CiAgZXh0ZXJuIGNoYXIgKmVsZmNvcmVfd3JpdGVfcHJwc2luZm8KQEAgLTExLDExICsxMSwx MSBAQCBJbmRleDogZ2RiLTcuMC41MC4yMDEwMDIwMy9iZmQvZWxmLWJmZC5oCiAgZXh0ZXJuIGNo YXIgKmVsZmNvcmVfd3JpdGVfcHJzdGF0dXMKICAgIChiZmQgKiwgY2hhciAqLCBpbnQgKiwgbG9u ZywgaW50LCBjb25zdCB2b2lkICopOwogIGV4dGVybiBjaGFyICogZWxmY29yZV93cml0ZV9wc3Rh dHVzCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDIwMy9iZmQvZWxmLmMKK0luZGV4OiBnZGItNy4x L2JmZC9lbGYuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAyMDMub3JpZy9iZmQv ZWxmLmMJMjAxMC0wMi0wMiAxMzozNzozOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUw LjIwMTAwMjAzL2JmZC9lbGYuYwkyMDEwLTAyLTAzIDA3OjI4OjIwLjAwMDAwMDAwMCArMDEwMAot QEAgLTg0NTksNiArODQ1OSw3IEBAIGNoYXIgKgorLS0tIGdkYi03LjEub3JpZy9iZmQvZWxmLmMJ MjAxMC0wMi0xOCAwMTowOTowNi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2JmZC9lbGYu YwkyMDEwLTA1LTE2IDIwOjI1OjE1LjAwMDAwMDAwMCArMDIwMAorQEAgLTg1NDUsNiArODU0NSw3 IEBAIGNoYXIgKgogIGVsZmNvcmVfd3JpdGVfcHJwc2luZm8gKGJmZCAgKmFiZmQsCiAgCQkJY2hh ciAqYnVmLAogIAkJCWludCAgKmJ1ZnNpeiwKQEAgLTIzLDcgKzIzLDcgQEAgSW5kZXg6IGdkYi03 LjAuNTAuMjAxMDAyMDMvYmZkL2VsZi5jCiAgCQkJY29uc3QgY2hhciAqZm5hbWUsCiAgCQkJY29u c3QgY2hhciAqcHNhcmdzKQogIHsKLUBAIC04NDg1LDkgKzg0ODYsMTUgQEAgZWxmY29yZV93cml0 ZV9wcnBzaW5mbyAoYmZkICAqYWJmZCwKK0BAIC04NTcxLDI2ICs4NTcyLDQwIEBAIGVsZmNvcmVf d3JpdGVfcHJwc2luZm8gKGJmZCAgKmFiZmQsCiAgICAgICAgaW50IG5vdGVfdHlwZSA9IE5UX1BS UFNJTkZPOwogICNlbmRpZgogIApAQCAtNDIsNyArNDIsMTYgQEAgSW5kZXg6IGdkYi03LjAuNTAu MjAxMDAyMDMvYmZkL2VsZi5jCiAgICAgICAgcmV0dXJuIGVsZmNvcmVfd3JpdGVfbm90ZSAoYWJm ZCwgYnVmLCBidWZzaXosCiAgCQkJCSBub3RlX25hbWUsIG5vdGVfdHlwZSwgJmRhdGEsIHNpemVv ZiAoZGF0YSkpOwogICAgICB9Ci1AQCAtODUwMiw5ICs4NTA5LDE1IEBAIGVsZmNvcmVfd3JpdGVf cHJwc2luZm8gKGJmZCAgKmFiZmQsCisgICBlbHNlCisgI2VuZGlmCisgICAgIHsKKysvKiBnZGIt Ni44LWJ6MjU0MjI5LWdjb3JlLXBycHNpbmZvLnBhdGNoIG1pc2FwcGxpY2F0aW9uIGdsdWUuICAq LworICNpZiBkZWZpbmVkIChIQVZFX1BTSU5GT19UKQorICAgICAgIHBzaW5mb190IGRhdGE7Cisr LyogZ2RiLTYuOC1iejI1NDIyOS1nY29yZS1wcnBzaW5mby5wYXRjaCBtaXNhcHBsaWNhdGlvbiBn bHVlLiAgKi8KKyAgICAgICBpbnQgbm90ZV90eXBlID0gTlRfUFNJTkZPOworICNlbHNlCisgICAg ICAgcHJwc2luZm9fdCBkYXRhOwogICAgICAgIGludCBub3RlX3R5cGUgPSBOVF9QUlBTSU5GTzsK ICAjZW5kaWYKICAKQEAgLTYxLDEwICs3MCwxMCBAQCBJbmRleDogZ2RiLTcuMC41MC4yMDEwMDIw My9iZmQvZWxmLmMKICAgICAgICByZXR1cm4gZWxmY29yZV93cml0ZV9ub3RlIChhYmZkLCBidWYs IGJ1ZnNpeiwKICAJCQkJIG5vdGVfbmFtZSwgbm90ZV90eXBlLCAmZGF0YSwgc2l6ZW9mIChkYXRh KSk7CiAgICAgIH0KLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMjAzL2dkYi9hbWQ2NC1saW51eC1u YXQuYworSW5kZXg6IGdkYi03LjEvZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMC41MC4yMDEwMDIwMy5vcmlnL2dkYi9hbWQ2NC1saW51eC1uYXQuYwkyMDEwLTAy LTAzIDA3OjI4OjIwLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAyMDMvZ2Ri L2FtZDY0LWxpbnV4LW5hdC5jCTIwMTAtMDItMDMgMDc6Mjg6MjAuMDAwMDAwMDAwICswMTAwCist LS0gZ2RiLTcuMS5vcmlnL2dkYi9hbWQ2NC1saW51eC1uYXQuYwkyMDEwLTA1LTE2IDIwOjIyOjM4 LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCTIwMTAt MDUtMTYgMjA6MjI6MzguMDAwMDAwMDAwICswMjAwCiBAQCAtMTQwLDYgKzE0MCw3IEBAIHN0YXRp YyBpbnQgYW1kNjRfbGludXhfZ3JlZ3NldDMyX3JlZ19vZmYKICAKICBzdGF0aWMgY2hhciAqCkBA IC05OCwxMCArMTA3LDEwIEBAIEluZGV4OiBnZGItNy4wLjUwLjIwMTAwMjAzL2dkYi9hbWQ2NC1s aW51eC1uYXQuYwogIH0KICAKICBzdGF0aWMgdm9pZAotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAy MDMvZ2RiL2Zic2QtbmF0LmMKK0luZGV4OiBnZGItNy4xL2dkYi9mYnNkLW5hdC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMC41MC4yMDEwMDIwMy5vcmlnL2dkYi9mYnNkLW5hdC5jCTIwMTAtMDEt MDEgMDg6MzE6MzEuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDIwMy9nZGIv ZmJzZC1uYXQuYwkyMDEwLTAyLTAzIDA3OjI4OjIwLjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03 LjEub3JpZy9nZGIvZmJzZC1uYXQuYwkyMDEwLTAxLTAxIDA4OjMxOjMxLjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi03LjEvZ2RiL2Zic2QtbmF0LmMJMjAxMC0wNS0xNiAyMDoyMjozOC4wMDAwMDAw MDAgKzAyMDAKIEBAIC0yMTEsNiArMjExLDcgQEAgZmJzZF9tYWtlX2NvcmVmaWxlX25vdGVzIChi ZmQgKm9iZmQsIGludAogIAlwc2FyZ3MgPSByZWNvbmNhdCAocHNhcmdzLCBwc2FyZ3MsICIgIiwg Z2V0X2luZmVyaW9yX2FyZ3MgKCksIE5VTEwpOwogIApAQCAtMTEwLDEwICsxMTksMTAgQEAgSW5k ZXg6IGdkYi03LjAuNTAuMjAxMDAyMDMvZ2RiL2Zic2QtbmF0LmMKICAJCQkJCSAgZm5hbWUsIHBz YXJncyk7CiAgICAgIH0KICAKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMjAzL2dkYi9saW51eC1u YXQuYworSW5kZXg6IGdkYi03LjEvZ2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMC41MC4yMDEwMDIwMy5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDEwLTAyLTAzIDA3OjI4OjIw LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAyMDMvZ2RiL2xpbnV4LW5hdC5j CTIwMTAtMDItMDMgMDc6Mjg6MjAuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMS5vcmlnL2dk Yi9saW51eC1uYXQuYwkyMDEwLTA1LTE2IDIwOjIyOjM4LjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi03LjEvZ2RiL2xpbnV4LW5hdC5jCTIwMTAtMDUtMTYgMjA6MjI6MzguMDAwMDAwMDAwICswMjAw CiBAQCAtNTYsNiArNTYsNyBAQAogICNpbmNsdWRlICJ0ZXJtaW5hbC5oIgogICNpbmNsdWRlIDxz eXMvdmZzLmg+CkBAIC0xMzEsNyArMTQwLDcgQEAgSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAyMDMv Z2RiL2xpbnV4LW5hdC5jCiAgY2hhciAqKCpsaW51eF9lbGZjb3JlX3dyaXRlX3Byc3RhdHVzKQog ICAgKGJmZCAqLCBjaGFyICosIGludCAqLCBsb25nLCBpbnQsIGNvbnN0IHZvaWQgKikgPSBlbGZj b3JlX3dyaXRlX3Byc3RhdHVzOwogIHN0YXRpYyBjaGFyICoKLUBAIC00NDIyLDYgKzQ0MjMsMTU5 IEBAIGxpbnV4X3NwdV9tYWtlX2NvcmVmaWxlX25vdGVzIChiZmQgKm9iZmQKK0BAIC00NTA3LDYg KzQ1MDgsMTU5IEBAIGxpbnV4X3NwdV9tYWtlX2NvcmVmaWxlX25vdGVzIChiZmQgKm9iZmQKICAg IHJldHVybiBhcmdzLm5vdGVfZGF0YTsKICB9CiAgCkBAIC0yOTEsNyArMzAwLDcgQEAgSW5kZXg6 IGdkYi03LjAuNTAuMjAxMDAyMDMvZ2RiL2xpbnV4LW5hdC5jCiAgLyogRmlsbHMgdGhlICJ0b19t YWtlX2NvcmVmaWxlX25vdGUiIHRhcmdldCB2ZWN0b3IuICBCdWlsZHMgdGhlIG5vdGUKICAgICBz ZWN0aW9uIGZvciBhIGNvcmVmaWxlLCBhbmQgcmV0dXJucyBpdCBpbiBhIG1hbGxvYyBidWZmZXIu ICAqLwogIAotQEAgLTQ0NDIsOCArNDU5NiwxNCBAQCBsaW51eF9uYXRfbWFrZV9jb3JlZmlsZV9u b3RlcyAoYmZkICpvYmZkCitAQCAtNDUyNyw4ICs0NjgxLDE0IEBAIGxpbnV4X25hdF9tYWtlX2Nv cmVmaWxlX25vdGVzIChiZmQgKm9iZmQKICAKICAgIGlmIChnZXRfZXhlY19maWxlICgwKSkKICAg ICAgewpAQCAtMzA2LDcgKzMxNSw3IEBAIEluZGV4OiBnZGItNy4wLjUwLjIwMTAwMjAzL2dkYi9s aW51eC1uYXQuYwogICAgICAgIGlmIChnZXRfaW5mZXJpb3JfYXJncyAoKSkKICAJewogIAkgIGNo YXIgKnN0cmluZ19lbmQ7Ci1AQCAtNDQ1OSw5ICs0NjE5LDE1IEBAIGxpbnV4X25hdF9tYWtlX2Nv cmVmaWxlX25vdGVzIChiZmQgKm9iZmQKK0BAIC00NTQ0LDkgKzQ3MDQsMTUgQEAgbGludXhfbmF0 X21ha2VfY29yZWZpbGVfbm90ZXMgKGJmZCAqb2JmZAogIAkJICAgICAgIHBzYXJnc19lbmQgLSBz dHJpbmdfZW5kKTsKICAJICAgIH0KICAJfQpAQCAtMzI0LDEwICszMzMsMTAgQEAgSW5kZXg6IGdk Yi03LjAuNTAuMjAxMDAyMDMvZ2RiL2xpbnV4LW5hdC5jCiAgICAgIH0KICAKICAgIC8qIER1bXAg aW5mb3JtYXRpb24gZm9yIHRocmVhZHMuICAqLwotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAyMDMv Z2RiL2xpbnV4LW5hdC5oCitJbmRleDogZ2RiLTcuMS9nZGIvbGludXgtbmF0LmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMjAzLm9yaWcvZ2RiL2xpbnV4LW5hdC5oCTIwMTAtMDIt MDMgMDc6Mjg6MTkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDIwMy9nZGIv bGludXgtbmF0LmgJMjAxMC0wMi0wMyAwNzoyODoyMC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGIt Ny4xLm9yaWcvZ2RiL2xpbnV4LW5hdC5oCTIwMTAtMDUtMTYgMjA6MjI6MzcuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTcuMS9nZGIvbGludXgtbmF0LmgJMjAxMC0wNS0xNiAyMDoyMjozOC4wMDAw MDAwMDAgKzAyMDAKIEBAIC0xNzMsNyArMTczLDcgQEAgaW50IGxpbnV4X25hdF9jb3JlX29mX3Ro cmVhZF8xIChwdGlkX3QgcAogIC8qIFRoZXNlIGZ1bmN0aW9ucyBtYWtlIGVsZmNvcmUgbm90ZSBz ZWN0aW9ucy4KICAgICBUaGV5IG1heSBnZXQgb3ZlcnJpZGVuIGJ5IGNvZGUgYWRqdXN0aW5nIGRh dGEgZm9yIG11bHRpLXRhcmdldCBidWlsZHMuICAqLwpAQCAtMzM3LDExICszNDYsMTEgQEAgSW5k ZXg6IGdkYi03LjAuNTAuMjAxMDAyMDMvZ2RiL2xpbnV4LW5hdC5oCiAgZXh0ZXJuIGNoYXIgKigq bGludXhfZWxmY29yZV93cml0ZV9wcnN0YXR1cykKICAgIChiZmQgKiwgY2hhciAqLCBpbnQgKiwg bG9uZywgaW50LCBjb25zdCB2b2lkICopOwogIGV4dGVybiBjaGFyICooKmxpbnV4X2VsZmNvcmVf d3JpdGVfcHJmcHJlZykKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMjAzL2dkYi9wcm9jZnMuYwor SW5kZXg6IGdkYi03LjEvZ2RiL3Byb2Nmcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41MC4y MDEwMDIwMy5vcmlnL2dkYi9wcm9jZnMuYwkyMDEwLTAxLTI4IDA5OjE5OjI5LjAwMDAwMDAwMCAr MDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAyMDMvZ2RiL3Byb2Nmcy5jCTIwMTAtMDItMDMgMDc6 Mjg6MjAuMDAwMDAwMDAwICswMTAwCi1AQCAtNjE4Niw2ICs2MTg2LDcgQEAgcHJvY2ZzX21ha2Vf bm90ZV9zZWN0aW9uIChiZmQgKm9iZmQsIGludAorLS0tIGdkYi03LjEub3JpZy9nZGIvcHJvY2Zz LmMJMjAxMC0wMi0xNSAxODozNTo0OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9w cm9jZnMuYwkyMDEwLTA1LTE2IDIwOjIyOjM4LjAwMDAwMDAwMCArMDIwMAorQEAgLTYxODQsNiAr NjE4NCw3IEBAIHByb2Nmc19tYWtlX25vdGVfc2VjdGlvbiAoYmZkICpvYmZkLCBpbnQKICAgIG5v dGVfZGF0YSA9IChjaGFyICopIGVsZmNvcmVfd3JpdGVfcHJwc2luZm8gKG9iZmQsCiAgCQkJCQkg ICAgICAgbm90ZV9kYXRhLAogIAkJCQkJICAgICAgIG5vdGVfc2l6ZSwKCmRpZmYgLS1naXQgYS9n ZGItNi44LWlubGluaW5nLWFkZG9uLnBhdGNoIGIvZ2RiLTYuOC1pbmxpbmluZy1hZGRvbi5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I4NGVmOS4uMDAwMDAwMAotLS0gYS9n ZGItNi44LWlubGluaW5nLWFkZG9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTcxICswLDAg QEAKLWluZmNhbGwuYyA8dW53aW5kX29uX3NpZ25hbF9wPjoKLVJldmVydCB0aGUgY2hhbmdlIG9m OiBnZGItNi44LWlubGluaW5nLnBhdGNoCi1jYXVzaW5nOiBGQUlMOiBnZGIuYmFzZS91bndpbmRv bnNpZ25hbC5leHA6IHVud2luZG9uc2lnbmFsLCBzdGFjayB1bndvdW5kCi0KLXJlc3VtZSgpIC0+ IHRhcmdldF9yZXN1bWUoKSBtb3ZlIG9mIGNsZWFyX2lubGluZV9mcmFtZV9zdGF0ZSgpIGlzIGZv cjoKLWdkYi5taS9taS1uc21vcmlidW5kLmV4cAotCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDEy MS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5jCTIw MTAtMDEtMDEgMDg6MzI6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDEy MS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMJMjAxMC0wMS0yMSAxNToxNDo0Ny4w MDAwMDAwMDAgKzAxMDAKLUBAIC0xMywxMCArMTMsMTYgQEAKLSAgICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KLSAKLS1pbnQgeCwgeTsKLSsvKiBWT0xBVElMRSBmb3JjZXMgYWxsIHRo ZSBpbmxpbmluZyB0byBoYXBwZW4gYXMgb3RoZXJ3aXNlIHRoZSB3aG9sZSBwcm9ncmFtCi0rICAg Z2V0cyBvcHRpbWl6ZWQgYnkgQ1NFIHRvIGp1c3Qgc2ltcGxlIGFzc2lnbm1lbnRzIG9mIHRoZSBy ZXN1bHRzLiAgKi8KLSt2b2xhdGlsZSBpbnQgeCwgeTsKLSB2b2xhdGlsZSBpbnQgcmVzdWx0Owot IAotLXZvaWQgYmFyKHZvaWQpOwotK2lubGluZSB2b2lkIGJhcih2b2lkKQotK3sKLSsgIHggKz0g eTsgLyogc2V0IGJyZWFrcG9pbnQgMSBoZXJlICovCi0rfQotKwotIAotIGlubGluZSBpbnQgZnVu YzEodm9pZCkKLSB7Ci1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvaW5saW5lLWNtZHMuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMjEu b3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuYwkyMDEwLTAxLTAxIDA4OjMy OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL3Rlc3RzdWl0 ZS9nZGIub3B0L2lubGluZS1jbWRzLmMJMjAxMC0wMS0yMSAxNToxNDo0Ny4wMDAwMDAwMDAgKzAx MDAKLUBAIC0xMywxMyArMTMsMTkgQEAKLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KLSAKLS1pbnQgeCwgeTsKLSsvKiBWT0xBVElMRSBmb3JjZXMgYWxsIHRoZSBpbmxpbmluZyB0 byBoYXBwZW4gYXMgb3RoZXJ3aXNlIHRoZSB3aG9sZSBwcm9ncmFtCi0rICAgZ2V0cyBvcHRpbWl6 ZWQgYnkgQ1NFIHRvIGp1c3Qgc2ltcGxlIGFzc2lnbm1lbnRzIG9mIHRoZSByZXN1bHRzLiAgKi8K LSt2b2xhdGlsZSBpbnQgeCwgeTsKLSB2b2xhdGlsZSBpbnQgcmVzdWx0OwotIAotLXZvaWQgYmFy KHZvaWQpOwotIHZvaWQgbWFya2VyKHZvaWQpOwotIHZvaWQgbm9pbmxpbmUodm9pZCk7Ci0gCi0r aW5saW5lIHZvaWQgYmFyKHZvaWQpCi0rewotKyAgeCArPSB5OyAvKiBzZXQgYnJlYWtwb2ludCAx IGhlcmUgKi8KLSt9Ci0rCi0gaW5saW5lIGludCBmdW5jMSh2b2lkKQotIHsKLSAgIGJhciAoKTsK LUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUt Y21kcy5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL3Rl c3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDEwLTAxLTAxIDA4OjMyOjA0LjAwMDAw MDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0 L2lubGluZS1jbWRzLmV4cAkyMDEwLTAxLTIxIDE1OjE0OjQ3LjAwMDAwMDAwMCArMDEwMAotQEAg LTIzMCw3ICsyMzAsNyBAQCBzZXQgbGluZTMgW2dkYl9nZXRfbGluZV9udW1iZXIgInNldCBicmVh Ci0gZ2RiX2JyZWFrcG9pbnQgJGxpbmUzCi0gZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNv bnNlY3V0aXZlIGZ1bmMxIgotIAotLWdkYl90ZXN0ICJuZXh0IiAiLipmdW5jMSAuKmZpcnN0IGNh bGwuKiIgIm5leHQgdG8gZmlyc3QgZnVuYzEiCi0rZ2RiX3Rlc3QgIm5leHQiICJmdW5jMSAuKmZp cnN0IGNhbGwuKiIgIm5leHQgdG8gZmlyc3QgZnVuYzEiCi0gc2V0IG1zZyAibmV4dCB0byBzZWNv bmQgZnVuYzEiCi0gZ2RiX3Rlc3RfbXVsdGlwbGUgIm5leHQiICRtc2cgewotICAgICAtcmUgIi4q ZnVuYzEgLipzZWNvbmQgY2FsbC4qJGdkYl9wcm9tcHQgJCIgewotQEAgLTI1MywxNiArMjUzLDE2 IEBAIHNldCBsaW5lNCBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWEKLSBnZGJfYnJlYWtw b2ludCAkbGluZTQKLSBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzEgdGhlbiBmdW5j MyIKLSAKLS1nZGJfdGVzdCAibmV4dCIgIi4qZnVuYzEgXFxcKFxcXCk7IiAibmV4dCB0byBmdW5j MSBiZWZvcmUgZnVuYzMiCi0tZ2RiX3Rlc3QgIm5leHQiICIuKmZ1bmMzIFxcXChcXFwpOyIgIm5l eHQgdG8gZnVuYzMiCi0rZ2RiX3Rlc3QgIm5leHQiICJmdW5jMSBcXFwoXFxcKTsiICJuZXh0IHRv IGZ1bmMxIGJlZm9yZSBmdW5jMyIKLStnZGJfdGVzdCAibmV4dCIgImZ1bmMzIFxcXChcXFwpOyIg Im5leHQgdG8gZnVuYzMiCi0gCi0gIyBUZXN0IGZpbmlzaGluZyBvdXQgb2Ygb25lIHRoaW5nIGFu ZCBpbnRvIGFub3RoZXIuCi0gc2V0IGxpbmU1IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzZXQgYnJl YWtwb2ludCA1IGhlcmUiXQotIGdkYl9icmVha3BvaW50ICRsaW5lNQotIGdkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJmaW5pc2ggaW50byBmdW5jMSIKLSAKLS1nZGJfdGVzdCAibmV4dCIgIi4q bWFya2VyIFxcXChcXFwpOyIgIm5leHQgdG8gZmluaXNoIG1hcmtlciIKLS1nZGJfdGVzdCAic3Rl cCIgIi4qc2V0IGJyZWFrcG9pbnQgMiBoZXJlLioiICJzdGVwIGludG8gZmluaXNoIG1hcmtlciIK LStnZGJfdGVzdCAibmV4dCIgIm1hcmtlciBcXFwoXFxcKTsiICJuZXh0IHRvIGZpbmlzaCBtYXJr ZXIiCi0rZ2RiX3Rlc3QgInN0ZXAiICJzZXQgYnJlYWtwb2ludCAyIGhlcmUuKiIgInN0ZXAgaW50 byBmaW5pc2ggbWFya2VyIgotIGdkYl90ZXN0ICJmaW5pc2giICJmdW5jMSBcXFwoXFxcKTsiICJm aW5pc2ggZnJvbSBtYXJrZXIgdG8gZnVuYzEiCi0gCi0gZ2RiX3Rlc3QgInN0ZXAiICJiYXIgXFxc KFxcXCk7IiAic3RlcCBpbnRvIGZ1bmMxIGZvciBmaW5pc2giCi1AQCAtMjk3LDEyICsyOTcsMTIg QEAgZ2RiX3Rlc3QgInN0ZXAiICJub2lubGluZSBcXFwoXFxcKSBhdCAuKgotIGdkYl90ZXN0ICJi dCIgIiMwICBub2lubGluZS4qIzEgIC4qb3V0ZXJfaW5saW5lMS4qIzIgIC4qb3V0ZXJfaW5saW5l Mi4qIzMgIG1haW4uKiIgImJhY2t0cmFjZSBhdCBub2lubGluZSBmcm9tIG91dGVyX2lubGluZTEi Ci0gZ2RiX3Rlc3QgInN0ZXAiICJpbmxpbmVkX2ZuIFxcXChcXFwpIGF0IC4qIiAiZW50ZXIgaW5s aW5lZF9mbiBmcm9tIG5vaW5saW5lIgotIGdkYl90ZXN0ICJidCIgIiMwICBpbmxpbmVkX2ZuLioj MSAgbm9pbmxpbmUuKiMyICAuKm91dGVyX2lubGluZTEuKiMzICAuKm91dGVyX2lubGluZTIuKiM0 ICBtYWluLioiICJiYWNrdHJhY2UgYXQgaW5saW5lZF9mbiBmcm9tIG5vaW5saW5lIgotLWdkYl90 ZXN0ICJpbmZvIGZyYW1lIiAiLippbmxpbmVkIGludG8gZnJhbWUuKiIgImlubGluZWRfZm4gZnJv bSBub2lubGluZSBpbmxpbmVkIgotLWdkYl90ZXN0ICJ1cCIgIiMxICBub2lubGluZS4qIiAidXAg dG8gbm9pbmxpbmUiCi0tZ2RiX3Rlc3QgImluZm8gZnJhbWUiICIuKlxuIGNhbGxlZCBieSBmcmFt ZS4qIiAibm9pbmxpbmUgZnJvbSBvdXRlcl9pbmxpbmUxIG5vdCBpbmxpbmVkIgotLWdkYl90ZXN0 ICJ1cCIgIiMyICAuKm91dGVyX2lubGluZTEuKiIgInVwIHRvIG91dGVyX2lubGluZTEiCi0tZ2Ri X3Rlc3QgImluZm8gZnJhbWUiICIuKmlubGluZWQgaW50byBmcmFtZS4qIiAib3V0ZXJfaW5saW5l MSBpbmxpbmVkIgotLWdkYl90ZXN0ICJ1cCIgIiMzICAuKm91dGVyX2lubGluZTIuKiIgInVwIHRv IG91dGVyX2lubGluZTIiCi0tZ2RiX3Rlc3QgImluZm8gZnJhbWUiICIuKmlubGluZWQgaW50byBm cmFtZS4qIiAib3V0ZXJfaW5saW5lMiBpbmxpbmVkIgotLWdkYl90ZXN0ICJ1cCIgIiM0ICBtYWlu LioiICJ1cCBmcm9tIG91dGVyX2lubGluZTIiCi0tZ2RiX3Rlc3QgImluZm8gZnJhbWUiICIuKlxu IGNhbGxlciBvZiBmcmFtZS4qIiAibWFpbiBub3QgaW5saW5lZCIKLStnZGJfdGVzdCAiaW5mbyBm cmFtZSIgImlubGluZWQgaW50byBmcmFtZS4qIiAiaW5saW5lZF9mbiBmcm9tIG5vaW5saW5lIGlu bGluZWQiCi0rZ2RiX3Rlc3QgImZpbmkiICIiICJ1cCB0byBub2lubGluZSIKLStnZGJfdGVzdCAi aW5mbyBmcmFtZSIgIlxuIGNhbGxlZCBieSBmcmFtZS4qIiAibm9pbmxpbmUgZnJvbSBvdXRlcl9p bmxpbmUxIG5vdCBpbmxpbmVkIgotK2dkYl90ZXN0ICJmaW5pIiAiIiAidXAgdG8gb3V0ZXJfaW5s aW5lMSIKLStnZGJfdGVzdCAiaW5mbyBmcmFtZSIgImlubGluZWQgaW50byBmcmFtZS4qIiAib3V0 ZXJfaW5saW5lMSBpbmxpbmVkIgotK2dkYl90ZXN0ICJmaW5pIiAiIiAidXAgdG8gb3V0ZXJfaW5s aW5lMiIKLStnZGJfdGVzdCAiaW5mbyBmcmFtZSIgImlubGluZWQgaW50byBmcmFtZS4qIiAib3V0 ZXJfaW5saW5lMiBpbmxpbmVkIgotK2dkYl90ZXN0ICJmaW5pIiAiIiAidXAgZnJvbSBvdXRlcl9p bmxpbmUyIgotK2dkYl90ZXN0ICJpbmZvIGZyYW1lIiAiIGluIG1haW4gXFteXG5cXSpcbiBzb3Vy Y2UgbGFuZ3VhZ2UuKiIgIm1haW4gbm90IGlubGluZWQiCi1JbmRleDogZ2RiLTcuMC41MC4yMDEw MDEyMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5jCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMC41MC4yMDEwMDEyMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUt bG9jYWxzLmMJMjAxMC0wMS0wMSAwODozMjowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4w LjUwLjIwMTAwMTIxL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMJMjAxMC0w MS0yMSAxNToxNDo0Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xMywxMSArMTMsMTYgQEAKLSAgICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSAKLS1pbnQgeCwgeTsKLSsvKiBWT0xBVElM RSBmb3JjZXMgYWxsIHRoZSBpbmxpbmluZyB0byBoYXBwZW4gYXMgb3RoZXJ3aXNlIHRoZSB3aG9s ZSBwcm9ncmFtCi0rICAgZ2V0cyBvcHRpbWl6ZWQgYnkgQ1NFIHRvIGp1c3Qgc2ltcGxlIGFzc2ln bm1lbnRzIG9mIHRoZSByZXN1bHRzLiAgKi8KLSt2b2xhdGlsZSBpbnQgeCwgeTsKLSB2b2xhdGls ZSBpbnQgcmVzdWx0OwotIHZvbGF0aWxlIGludCAqYXJyYXlfcDsKLSAKLS12b2lkIGJhcih2b2lk KTsKLStpbmxpbmUgdm9pZCBiYXIodm9pZCkKLSt7Ci0rICB4ICs9IHk7IC8qIHNldCBicmVha3Bv aW50IDEgaGVyZSAqLwotK30KLSAKLSBpbmxpbmUgaW50IGZ1bmMxKGludCBhcmcxKQotIHsKLUlu ZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9j YWxzLmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMjEub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5leHAJMjAxMC0wMS0wMSAwODozMjowNC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi90ZXN0c3VpdGUvZ2RiLm9w dC9pbmxpbmUtbG9jYWxzLmV4cAkyMDEwLTAxLTIxIDE1OjE0OjQ3LjAwMDAwMDAwMCArMDEwMAot QEAgLTc3LDYgKzc3LDkgQEAgaWYgeyAhICRub19mcmFtZXMgfSB7Ci0gCi0gIyBNYWtlIHN1cmUg dGhhdCBsb2NhbHMgb24gdGhlIHN0YWNrIGFyZSBmb3VuZC4gIFRoaXMgaXMgYW4gYXJyYXkgdG8K LSAjIHByZXZlbnQgaXQgZnJvbSBsaXZpbmcgaW4gYSByZWdpc3Rlci4KLStpZiBbdGVzdF9jb21w aWxlcl9pbmZvICJnY2MtNC0zLSoiXSB7Ci0rICAgIHNldHVwX2tmYWlsICotKi0qICJnY2MvZGVi dWcub3B0aW1pemF0aW9uIgotK30KLSBnZGJfdGVzdCAicHJpbnQgYXJyYXlcWzBcXSIgIlxcXCQk ZGVjaW1hbCA9IDAiICJwcmludCBsb2NhbCAoMikiCi0gCi0gaWYgeyAhICRub19mcmFtZXMgfSB7 Ci1AQCAtMTE1LDQgKzExOCw3IEBAIGlmIHsgISAkbm9fZnJhbWVzIH0gewotICAgICBnZGJfdGVz dCAiaW5mbyBsb2NhbHMiICIuKmFyZzIgPSAxODQuKiIgImluZm8gbG9jYWxzIGFib3ZlIGJhciAo M2IpIgotIH0KLSAKLStpZiBbdGVzdF9jb21waWxlcl9pbmZvICJnY2MtNC0zLSoiXSB7Ci0rICAg IHNldHVwX2tmYWlsICotKi0qICJnY2MvZGVidWcub3B0aW1pemF0aW9uIgotK30KLSBnZGJfdGVz dCAicHJpbnQgYXJyYXlcWzBcXSIgIlxcXCQkZGVjaW1hbCA9IDE4NCIgInByaW50IGxvY2FsICgz KSIKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9mcmFtZS5jCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMC41MC4yMDEwMDEyMS5vcmlnL2dkYi9mcmFtZS5jCTIwMTAtMDEtMjEgMTU6MTM6 MjYuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvZnJhbWUuYwky MDEwLTAxLTIxIDE1OjE0OjQ3LjAwMDAwMDAwMCArMDEwMAotQEAgLTMxNiw3ICszMTYsNyBAQCBm cHJpbnRfZnJhbWUgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBzdHJ1Ci0gc3RhdGljIHN0cnVjdCBm cmFtZV9pbmZvICoKLSBza2lwX2lubGluZWRfZnJhbWVzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJh bWUpCi0gewotLSAgd2hpbGUgKGdldF9mcmFtZV90eXBlIChmcmFtZSkgPT0gSU5MSU5FX0ZSQU1F KQotKyAgd2hpbGUgKGZyYW1lICYmIGdldF9mcmFtZV90eXBlIChmcmFtZSkgPT0gSU5MSU5FX0ZS QU1FKQotICAgICBmcmFtZSA9IGdldF9wcmV2X2ZyYW1lIChmcmFtZSk7Ci0gCi0gICByZXR1cm4g ZnJhbWU7Ci1AQCAtMTc5Miw2ICsxNzkyLDcgQEAgZ2V0X2ZyYW1lX2FkZHJlc3NfaW5fYmxvY2sg KHN0cnVjdCBmcmFtZQotIHsKLSAgIC8qIEEgZHJhZnQgYWRkcmVzcy4gICovCi0gICBDT1JFX0FE RFIgcGMgPSBnZXRfZnJhbWVfcGMgKHRoaXNfZnJhbWUpOwotKyAgc3RydWN0IHRocmVhZF9pbmZv ICp0cCA9IGluZmVyaW9yX3RocmVhZCAoKTsKLSAKLSAgIHN0cnVjdCBmcmFtZV9pbmZvICpuZXh0 X2ZyYW1lID0gdGhpc19mcmFtZS0+bmV4dDsKLSAKLUBAIC0xODM0LDYgKzE4MzUsOSBAQCBnZXRf ZnJhbWVfYWRkcmVzc19pbl9ibG9jayAoc3RydWN0IGZyYW1lCi0gICAgICB3aGlsZSBpbiBhbiBp bmxpbmVkIGZ1bmN0aW9uLCB0aGVuIHRoZSBjb2RlIGFkZHJlc3Mgb2YgdGhlCi0gICAgICAiY2Fs bGluZyIgbm9ybWFsIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgYWRqdXN0ZWQgZWl0aGVyLiAgKi8K LSAKLSsgIGlmICh0cC0+Y3VycmVudF9wY19pc19ub3RjdXJyZW50KQotKyAgICByZXR1cm4gcGMg LSAxOwotKwotICAgd2hpbGUgKGdldF9mcmFtZV90eXBlIChuZXh0X2ZyYW1lKSA9PSBJTkxJTkVf RlJBTUUpCi0gICAgIG5leHRfZnJhbWUgPSBuZXh0X2ZyYW1lLT5uZXh0OwotIAotQEAgLTE4NjUs NyArMTg2OSw3IEBAIGZpbmRfZnJhbWVfc2FsIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUKLSAJ c3ltID0gaW5saW5lX3NraXBwZWRfc3ltYm9sIChpbmZlcmlvcl9wdGlkKTsKLSAKLSAgICAgICBp bml0X3NhbCAoc2FsKTsKLS0gICAgICBpZiAoU1lNQk9MX0xJTkUgKHN5bSkgIT0gMCkKLSsgICAg ICBpZiAoc3ltICE9IE5VTEwgJiYgU1lNQk9MX0xJTkUgKHN5bSkgIT0gMCkKLSAJewotIAkgIHNh bC0+c3ltdGFiID0gU1lNQk9MX1NZTVRBQiAoc3ltKTsKLSAJICBzYWwtPmxpbmUgPSBTWU1CT0xf TElORSAoc3ltKTsKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9icmVha3BvaW50LmMK LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL2JyZWFrcG9pbnQu YwkyMDEwLTAxLTIxIDE1OjE0OjQxLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAx MDAxMjEvZ2RiL2JyZWFrcG9pbnQuYwkyMDEwLTAxLTIxIDE1OjE0OjQ3LjAwMDAwMDAwMCArMDEw MAotQEAgLTYyLDYgKzYyLDcgQEAKLSAjaW5jbHVkZSAiaml0LmgiCi0gI2luY2x1ZGUgInhtbC1z eXNjYWxsLmgiCi0gI2luY2x1ZGUgInBhcnNlci1kZWZzLmgiCi0rI2luY2x1ZGUgImlubGluZS1m cmFtZS5oIgotIAotIC8qIHJlYWRsaW5lIGluY2x1ZGUgZmlsZXMgKi8KLSAjaW5jbHVkZSAicmVh ZGxpbmUvcmVhZGxpbmUuaCIKLUBAIC0zNTU4LDEwICszNTU5LDI0IEBAIGJwc3RhdF9jaGVja19i cmVha3BvaW50X2NvbmRpdGlvbnMgKGJwc3QKLSAgIGNvbnN0IHN0cnVjdCBicF9sb2NhdGlvbiAq YmwgPSBicy0+YnJlYWtwb2ludF9hdDsKLSAgIHN0cnVjdCBicmVha3BvaW50ICpiID0gYmwtPm93 bmVyOwotIAotLSAgaWYgKGZyYW1lX2lkX3AgKGItPmZyYW1lX2lkKQotLSAgICAgICYmICFmcmFt ZV9pZF9lcSAoYi0+ZnJhbWVfaWQsIGdldF9zdGFja19mcmFtZV9pZCAoZ2V0X2N1cnJlbnRfZnJh bWUgKCkpKSkKLS0gICAgYnMtPnN0b3AgPSAwOwotLSAgZWxzZSBpZiAoYnMtPnN0b3ApCi0rICBp ZiAoZnJhbWVfaWRfcCAoYi0+ZnJhbWVfaWQpKQotKyAgICB7Ci0rICAgICAgc3RydWN0IGZyYW1l X2luZm8gKmJfZnJhbWUsICpmcmFtZTsKLSsgICAgICBzdHJ1Y3QgZnJhbWVfaWQgYl9mcmFtZV9p ZCwgY3VycmVudF9mcmFtZV9pZDsKLSsKLSsgICAgICBiX2ZyYW1lID0gZnJhbWVfZmluZF9ieV9p ZCAoYi0+ZnJhbWVfaWQpOwotKwotKyAgICAgIC8qIGdldF9zdGFja19mcmFtZV9pZCBub3JtYWxp emVzIHRoZSBpZCB0byB0aGUgcmVhbCBub24taW5saW5lZCBmdW5jdGlvbgotKwkgYnkgc2tpcF9p bmxpbmVkX2ZyYW1lcy4gICovCi0rICAgICAgYl9mcmFtZV9pZCA9IGdldF9zdGFja19mcmFtZV9p ZCAoYl9mcmFtZSk7Ci0rICAgICAgY3VycmVudF9mcmFtZV9pZCA9IGdldF9zdGFja19mcmFtZV9p ZCAoZ2V0X2N1cnJlbnRfZnJhbWUgKCkpOwotKwotKyAgICAgIC8qIENvbXBsZXRlbHkgZGlmZmVy ZW50IChpbmxpbmluZyBub3R3aXRoc3RhbmRpbmcpIGZyYW1lcz8gICovCi0rICAgICAgaWYgKCFm cmFtZV9pZF9lcSAoYl9mcmFtZV9pZCwgY3VycmVudF9mcmFtZV9pZCkpCi0rCWJzLT5zdG9wID0g MDsKLSsgICAgfQotKwotKyAgaWYgKGJzLT5zdG9wKQotICAgICB7Ci0gICAgICAgaW50IHZhbHVl X2lzX3plcm8gPSAwOwotICAgICAgIAotQEAgLTM3MjksNiArMzc0NCwxMiBAQCBicHN0YXRfc3Rv cF9zdGF0dXMgKHN0cnVjdCBhZGRyZXNzX3NwYWNlCi0gCQkgIGJzLT5wcmludCA9IDA7Ci0gCQl9 Ci0gCSAgICAgIGJzLT5jb21tYW5kcyA9IGNvcHlfY29tbWFuZF9saW5lcyAoYnMtPmNvbW1hbmRz KTsKLSsKLSsJICAgICAgLyogRGlzcGxheSB0aGUgaW5uZXJtb3N0IGlubGluZWQgZnJhbWUgYXQg YSBicmVha3BvbnQgYXMgaXQgZ2l2ZXMgdG8KLSsJCSBtb3N0IG9mIHRoZSBhdmFpbGFibGUgaW5m b3JtYXRpb24uICAqLwotKwkgICAgICBpZiAoYi0+dHlwZSAhPSBicF91bnRpbCAmJiBiLT50eXBl ICE9IGJwX2ZpbmlzaCkKLSsJCXdoaWxlIChpbmxpbmVfc2tpcHBlZF9mcmFtZXMgKHB0aWQpKQot KwkJICBzdGVwX2ludG9faW5saW5lX2ZyYW1lIChwdGlkKTsKLSAJICAgIH0KLSAKLSAJICAvKiBQ cmludCBub3RoaW5nIGZvciB0aGlzIGVudHJ5IGlmIHdlIGRvbnQgc3RvcCBvciBkb250IHByaW50 LiAgKi8KLUBAIC02MDQzLDkgKzYwNjQsOSBAQCBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnQgKHN0 cnVjdCBnZGJhcmNoCi0gewotICAgc3RydWN0IGJyZWFrcG9pbnQgKmI7Ci0gCi0tICAvKiBJZiBG UkFNRV9JRCBpcyB2YWxpZCwgaXQgc2hvdWxkIGJlIGEgcmVhbCBmcmFtZSwgbm90IGFuIGlubGlu ZWQKLS0gICAgIG9uZS4gICovCi0tICBnZGJfYXNzZXJ0ICghZnJhbWVfaWRfaW5saW5lZF9wIChm cmFtZV9pZCkpOwotKyAgLyogV2UgY2FuIGJlIHJldHVybmluZyBldmVuIGludG8gYW4gaW5saW5l IGZyYW1lLiAgV2hpbGUgZmluaXNoX2NvbW1hbmQgd2lsbAotKyAgICAgc2hvcnRjdXQgdGhlIGNh c2Ugb2YgcmV0dXJuaW5nIF9mcm9tXyBhbiBpbmxpbmUgZnJhbWUgd2Ugc3RpbGwgbWF5IGJlCi0r ICAgICByZXR1cm5pbmcgZnJvbSBub24taW5saW5lZCBmcmFtZSBfdG9fIGFuIGlubGluZWQgZnJh bWUuICAqLwotIAotICAgYiA9IHNldF9yYXdfYnJlYWtwb2ludCAoZ2RiYXJjaCwgc2FsLCB0eXBl KTsKLSAgIGItPmVuYWJsZV9zdGF0ZSA9IGJwX2VuYWJsZWQ7Ci1JbmRleDogZ2RiLTcuMC41MC4y MDEwMDEyMS9nZGIvaW5saW5lLWZyYW1lLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIw MTAwMTIxLm9yaWcvZ2RiL2lubGluZS1mcmFtZS5jCTIwMTAtMDEtMDEgMDg6MzE6MzYuMDAwMDAw MDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvaW5saW5lLWZyYW1lLmMJMjAx MC0wMS0yMSAxNToxNDo0Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0yMTMsNiArMjEzLDEyIEBAIGlu bGluZV9mcmFtZV9zbmlmZmVyIChjb25zdCBzdHJ1Y3QgZnJhbWUKLSAgIGlmIChmcmFtZV9ibG9j ayA9PSBOVUxMKQotICAgICByZXR1cm4gMDsKLSAKLSsgIC8qIEZvciA+PTIgaW5saW5lZCBmdW5j dGlvbnMgU0tJUFBFRF9TWU1CT0wgbmVlZHMgdG8gYmUgZGlmZmVyZW50IGFmdGVyIGVhY2gKLSsg ICAgIHN0ZXBfaW50b19pbmxpbmVfZnJhbWUgY2FsbC4gIEJ1dCBza2lwX2lubGluZV9mcmFtZXMg aXMgY2FsbGVkIG9ubHkgb25jZQotKyAgICAgYW5kIHRodXMgU0tJUFBFRF9TWU1CT0wgbmVlZHMg dG8gYmUgY2FsY3VsYXRlZCBieSBJTkxJTkVfRlJBTUVfU05JRkZFUi4gICovCi0rICBpZiAoc3Rh dGUpCi0rICAgIHN0YXRlLT5za2lwcGVkX3N5bWJvbCA9IE5VTEw7Ci0rCi0gICAvKiBDYWxjdWxh dGUgREVQVEgsIHRoZSBudW1iZXIgb2YgaW5saW5lZCBmdW5jdGlvbnMgYXQgdGhpcwotICAgICAg bG9jYXRpb24uICAqLwotICAgZGVwdGggPSAwOwotQEAgLTIyMiw2ICsyMjgsMTAgQEAgaW5saW5l X2ZyYW1lX3NuaWZmZXIgKGNvbnN0IHN0cnVjdCBmcmFtZQotICAgICAgIGlmIChibG9ja19pbmxp bmVkX3AgKGN1cl9ibG9jaykpCi0gCWRlcHRoKys7Ci0gCi0rICAgICAgaWYgKHN0YXRlICYmIGRl cHRoID09IHN0YXRlLT5za2lwcGVkX2ZyYW1lcwotKwkgICYmIHN0YXRlLT5za2lwcGVkX3N5bWJv bCA9PSBOVUxMKQotKwlzdGF0ZS0+c2tpcHBlZF9zeW1ib2wgPSBCTE9DS19GVU5DVElPTiAoY3Vy X2Jsb2NrKTsKLSsKLSAgICAgICBjdXJfYmxvY2sgPSBCTE9DS19TVVBFUkJMT0NLIChjdXJfYmxv Y2spOwotICAgICB9Ci0gCi1AQCAtMzAwLDcgKzMxMCw2IEBAIHNraXBfaW5saW5lX2ZyYW1lcyAo cHRpZF90IHB0aWQpCi0gewotICAgQ09SRV9BRERSIHRoaXNfcGM7Ci0gICBzdHJ1Y3QgYmxvY2sg KmZyYW1lX2Jsb2NrLCAqY3VyX2Jsb2NrOwotLSAgc3RydWN0IHN5bWJvbCAqbGFzdF9zeW0gPSBO VUxMOwotICAgaW50IHNraXBfY291bnQgPSAwOwotICAgc3RydWN0IGlubGluZV9zdGF0ZSAqc3Rh dGU7Ci0gCi1AQCAtMzIxLDEwICszMzAsNyBAQCBza2lwX2lubGluZV9mcmFtZXMgKHB0aWRfdCBw dGlkKQotIAkJIG9mIEJMT0NLX1NUQVJULiAgKi8KLSAJICAgICAgaWYgKEJMT0NLX1NUQVJUIChj dXJfYmxvY2spID09IHRoaXNfcGMKLSAJCSAgfHwgYmxvY2tfc3RhcnRpbmdfcG9pbnRfYXQgKHRo aXNfcGMsIGN1cl9ibG9jaykpCi0tCQl7Ci0tCQkgIHNraXBfY291bnQrKzsKLS0JCSAgbGFzdF9z eW0gPSBCTE9DS19GVU5DVElPTiAoY3VyX2Jsb2NrKTsKLS0JCX0KLSsJCXNraXBfY291bnQrKzsK LSAJICAgICAgZWxzZQotIAkJYnJlYWs7Ci0gCSAgICB9Ci1AQCAtMzM2LDcgKzM0Miw2IEBAIHNr aXBfaW5saW5lX2ZyYW1lcyAocHRpZF90IHB0aWQpCi0gICBzdGF0ZSA9IGFsbG9jYXRlX2lubGlu ZV9mcmFtZV9zdGF0ZSAocHRpZCk7Ci0gICBzdGF0ZS0+c2tpcHBlZF9mcmFtZXMgPSBza2lwX2Nv dW50OwotICAgc3RhdGUtPnNhdmVkX3BjID0gdGhpc19wYzsKLS0gIHN0YXRlLT5za2lwcGVkX3N5 bWJvbCA9IGxhc3Rfc3ltOwotIAotICAgaWYgKHNraXBfY291bnQgIT0gMCkKLSAgICAgcmVpbml0 X2ZyYW1lX2NhY2hlICgpOwotQEAgLTM1NCw2ICszNTksMjMgQEAgc3RlcF9pbnRvX2lubGluZV9m cmFtZSAocHRpZF90IHB0aWQpCi0gICByZWluaXRfZnJhbWVfY2FjaGUgKCk7Ci0gfQotIAotKy8q IFN0ZXAgb3V0IG9mIGFuIGlubGluZWQgZnVuY3Rpb24gYnkgaGlkaW5nIGl0LiAgKi8KLSsKLSt2 b2lkCi0rc3RlcF9vdXRfb2ZfaW5saW5lX2ZyYW1lIChwdGlkX3QgcHRpZCkKLSt7Ci0rICBzdHJ1 Y3QgaW5saW5lX3N0YXRlICpzdGF0ZSA9IGZpbmRfaW5saW5lX2ZyYW1lX3N0YXRlIChwdGlkKTsK LSsKLSsgIGdkYl9hc3NlcnQgKHN0YXRlICE9IE5VTEwpOwotKwotKyAgLyogU2ltdWxhdGUgdGhl IGNhbGxlciBhZGp1c3RtZW50LiAgKi8KLSsgIGlmIChzdGF0ZS0+c2tpcHBlZF9mcmFtZXMgPT0g MCkKLSsgICAgc3RhdGUtPnNhdmVkX3BjLS07Ci0rCi0rICBzdGF0ZS0+c2tpcHBlZF9mcmFtZXMr KzsKLSsgIHJlaW5pdF9mcmFtZV9jYWNoZSAoKTsKLSt9Ci0rCi0gLyogUmV0dXJuIHRoZSBudW1i ZXIgb2YgaGlkZGVuIGZ1bmN0aW9ucyBpbmxpbmVkIGludG8gdGhlIGN1cnJlbnQKLSAgICBmcmFt ZS4gICovCi0gCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvdGVzdHN1aXRlL2dkYi5v cHQvaW5saW5lLW1hcmtlcnMuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMjEu b3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLW1hcmtlcnMuYwkyMDEwLTAxLTAxIDA4 OjMyOjA0LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2lubGluZS1tYXJrZXJzLmMJMjAxMC0wMS0yMSAxNToxNDo0Ny4wMDAwMDAw MDAgKzAxMDAKLUBAIC0xNSwxMSArMTUsNiBAQAotIAotIGV4dGVybiBpbnQgeCwgeTsKLSAKLS12 b2lkIGJhcih2b2lkKQotLXsKLS0gIHggKz0geTsgLyogc2V0IGJyZWFrcG9pbnQgMSBoZXJlICov Ci0tfQotLQotIHZvaWQgbWFya2VyKHZvaWQpCi0gewotICAgeCArPSB5OyAvKiBzZXQgYnJlYWtw b2ludCAyIGhlcmUgKi8KLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9nZGJ0aHJlYWQu aAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMjEub3JpZy9nZGIvZ2RidGhyZWFk LmgJMjAxMC0wMS0yMSAxNToxMTowOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIw MTAwMTIxL2dkYi9nZGJ0aHJlYWQuaAkyMDEwLTAxLTIxIDE1OjE0OjQ3LjAwMDAwMDAwMCArMDEw MAotQEAgLTE5NSw2ICsxOTUsMTIgQEAgc3RydWN0IHRocmVhZF9pbmZvCi0gICAvKiBGdW5jdGlv biB0aGF0IGlzIGNhbGxlZCB0byBmcmVlIFBSSVZBVEUuICBJZiB0aGlzIGlzIE5VTEwsIHRoZW4K LSAgICAgIHhmcmVlIHdpbGwgYmUgY2FsbGVkIG9uIFBSSVZBVEUuICAqLwotICAgdm9pZCAoKnBy aXZhdGVfZHRvcikgKHN0cnVjdCBwcml2YXRlX3RocmVhZF9pbmZvICopOwotKwotKyAgLyogTm9u emVybyBpZiB0aGUgY3VycmVudCBmcmFtZSBQQyBzaG91bGQgYmUgdW53b3VuZCBhcyB0aGUgY2Fs bGVyLiAgSXQgaXMKLSsgICAgIHVzZWQgdG8ga2VlcCB0aGUgYmFja3RyYWNlIHVwcGVyIGxldmVs cyBleGlzdGluZyBhZnRlciBmaW5pc2hfY29tbWFuZCBpbnRvCi0rICAgICBhbiBpbmxpbmVkIGZy YW1lIGlmIHRoZSBjdXJyZW50IGlubGluZWQgZnVuY3Rpb24vYmxvY2sgd2FzIGVuZGluZyBhdCB0 aGUKLSsgICAgIGN1cnJlbnQgUEMuICAqLwotKyAgaW50IGN1cnJlbnRfcGNfaXNfbm90Y3VycmVu dDsKLSB9OwotIAotIC8qIENyZWF0ZSBhbiBlbXB0eSB0aHJlYWQgbGlzdCwgb3IgZW1wdHkgdGhl IGV4aXN0aW5nIG9uZS4gICovCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvaW5mY21k LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL2luZmNtZC5j CTIwMTAtMDEtMjEgMTU6MTE6MDkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEw MDEyMS9nZGIvaW5mY21kLmMJMjAxMC0wMS0yMSAxNToxNDo0Ny4wMDAwMDAwMDAgKzAxMDAKLUBA IC0xNDM5LDExICsxNDM5LDExIEBAIGZpbmlzaF9jb21tYW5kX2NvbnRpbnVhdGlvbiAodm9pZCAq YXJnKQotICAgICAgIHN0cnVjdCB0eXBlICp2YWx1ZV90eXBlOwotIAotICAgICAgIHZhbHVlX3R5 cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChTWU1CT0xfVFlQRSAoYS0+ZnVuY3Rpb24pKTsKLS0gICAg ICBpZiAoIXZhbHVlX3R5cGUpCi0rICAgICAgaWYgKCFTWU1CT0xfSU5MSU5FRCAoYS0+ZnVuY3Rp b24pICYmICF2YWx1ZV90eXBlKQotIAlpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9f LAotIAkJCV8oImZpbmlzaF9jb21tYW5kOiBmdW5jdGlvbiBoYXMgbm8gdGFyZ2V0IHR5cGUiKSk7 Ci0gCi0tICAgICAgaWYgKFRZUEVfQ09ERSAodmFsdWVfdHlwZSkgIT0gVFlQRV9DT0RFX1ZPSUQp Ci0rICAgICAgaWYgKHZhbHVlX3R5cGUgJiYgVFlQRV9DT0RFICh2YWx1ZV90eXBlKSAhPSBUWVBF X0NPREVfVk9JRCkKLSAJcHJpbnRfcmV0dXJuX3ZhbHVlIChTWU1CT0xfVFlQRSAoYS0+ZnVuY3Rp b24pLCB2YWx1ZV90eXBlKTsKLSAgICAgfQotIAotQEAgLTE1NTEsNiArMTU1MSwxNiBAQCBmaW5p c2hfZm9yd2FyZCAoc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24sCi0gICB0cC0+aW5pdGlhdGluZ19m cmFtZSA9IGdldF9mcmFtZV9pZCAoZnJhbWUpOwotICAgbWFrZV9jbGVhbnVwIChkZWxldGVfbG9u Z2ptcF9icmVha3BvaW50X2NsZWFudXAsICZ0aHJlYWQpOwotIAotKyAgLyogV2Ugc2hvdWxkIF9h bHdheXNfIHNldCBDVVJSRU5UX1BDX0lTX05PVENVUlJFTlQgaGVyZSB0byBhbHdheXMgc2VlIHRo ZQotKyAgICAgY2FsbGluZyBsaW5lIHdpdGggdGhlIG1lc3NhZ2UgYFZhbHVlIHJldHVybmVkIGlz IC4uLicuICBDdXJyZW50bHkgaXQgaXMKLSsgICAgIHNlZW4gb25seSBpZiBhdCBsZWFzdCBvbmUg aW5zdHJ1Y3Rpb24gaXMgb24gdGhhdCBzb3VyY2UgbGluZSBhZnRlciB0aGUKLSsgICAgIGNhbGwg aW5zdHJ1Y3Rpb24uICBXZSB3b3VsZCBhbHNvIG5lZWQgdG8gaG9vayBzdGVwX29uY2UgYW5kIG9u bHkgY2xlYXIKLSsgICAgIENVUlJFTlRfUENfSVNfTk9UQ1VSUkVOVCBvbiB0aGUgZmlyc3Qgc3Rl cC4gIEJ1dCBpdCB3b3VsZCBiZSBhIGNoYW5nZSBvZgotKyAgICAgZ2VuZXJhbCBub24taW5saW5p bmcgYmVoYXZpb3IgYWdhaW5zdCB1cHN0cmVhbS4gICovCi0rCi0rICBpZiAoZ2V0X2ZyYW1lX3R5 cGUgKGZyYW1lKSA9PSBJTkxJTkVfRlJBTUUpCi0rICAgIHRwLT5jdXJyZW50X3BjX2lzX25vdGN1 cnJlbnQgPSAxOwotKwotICAgdHAtPnByb2NlZWRfdG9fZmluaXNoID0gMTsgICAgLyogV2Ugd2Fu dCBzdG9wX3JlZ2lzdGVycywgcGxlYXNlLi4uICAqLwotICAgY2FyZ3MgPSB4bWFsbG9jIChzaXpl b2YgKCpjYXJncykpOwotIAotQEAgLTE1NzEsNyArMTU4MSw5IEBAIGZpbmlzaF9mb3J3YXJkIChz dHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiwKLSBzdGF0aWMgdm9pZAotIGZpbmlzaF9jb21tYW5kIChj aGFyICphcmcsIGludCBmcm9tX3R0eSkKLSB7Ci0tICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWU7 Ci0rICAvKiBGSVhNRTogUmVuYW1lIGBjdXJyZW50X2ZyYW1lJyB0byBgZnJhbWUnIHVwb24gYSBt ZXJnZS4gICovCi0rICBzdHJ1Y3QgZnJhbWVfaW5mbyAqY3VycmVudF9mcmFtZSwgKnByZXZfZnJh bWU7Ci0rICBDT1JFX0FERFIgZnJhbWVfcGM7Ci0gICBzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbjsK LSAKLSAgIGludCBhc3luY19leGVjID0gMDsKLUBAIC0xNjAyLDQ1ICsxNjE0LDYzIEBAIGZpbmlz aF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKLSAgIGlmICghdGFyZ2V0X2hhc19l eGVjdXRpb24pCi0gICAgIGVycm9yIChfKCJUaGUgcHJvZ3JhbSBpcyBub3QgcnVubmluZy4iKSk7 Ci0gCi0tICBmcmFtZSA9IGdldF9wcmV2X2ZyYW1lIChnZXRfc2VsZWN0ZWRfZnJhbWUgKF8oIk5v IHNlbGVjdGVkIGZyYW1lLiIpKSk7Ci0tICBpZiAoZnJhbWUgPT0gMCkKLSsgIGN1cnJlbnRfZnJh bWUgPSBnZXRfc2VsZWN0ZWRfZnJhbWUgKF8oIk5vIHNlbGVjdGVkIGZyYW1lLiIpKTsKLSsgIGZy YW1lX3BjID0gZ2V0X2ZyYW1lX3BjIChjdXJyZW50X2ZyYW1lKTsKLSsgIHByZXZfZnJhbWUgPSBn ZXRfcHJldl9mcmFtZSAoY3VycmVudF9mcmFtZSk7Ci0rICBpZiAocHJldl9mcmFtZSA9PSAwKQot ICAgICBlcnJvciAoXygiXCJmaW5pc2hcIiBub3QgbWVhbmluZ2Z1bCBpbiB0aGUgb3V0ZXJtb3N0 IGZyYW1lLiIpKTsKLSAKLS0gIGNsZWFyX3Byb2NlZWRfc3RhdHVzICgpOwotLQotICAgLyogRmlu aXNoaW5nIGZyb20gYW4gaW5saW5lIGZyYW1lIGlzIGNvbXBsZXRlbHkgZGlmZmVyZW50LiAgV2Ug ZG9uJ3QKLSAgICAgIHRyeSB0byBzaG93IHRoZSAicmV0dXJuIHZhbHVlIiAtIG5vIHdheSB0byBs b2NhdGUgaXQuICBTbyB3ZSBkbwotICAgICAgbm90IG5lZWQgYSBjb21wbGV0aW9uLiAgKi8KLS0g IGlmIChnZXRfZnJhbWVfdHlwZSAoZ2V0X3NlbGVjdGVkX2ZyYW1lIChfKCJObyBzZWxlY3RlZCBm cmFtZS4iKSkpCi0tICAgICAgPT0gSU5MSU5FX0ZSQU1FKQotKyAgaWYgKGdldF9mcmFtZV90eXBl IChjdXJyZW50X2ZyYW1lKSA9PSBJTkxJTkVfRlJBTUUpCi0gICAgIHsKLS0gICAgICAvKiBDbGFp bSB3ZSBhcmUgc3RlcHBpbmcgaW4gdGhlIGNhbGxpbmcgZnJhbWUuICBBbiBlbXB0eSBzdGVwCi0t CSByYW5nZSBtZWFucyB0aGF0IHdlIHdpbGwgc3RvcCBvbmNlIHdlIGFyZW4ndCBpbiBhIGZ1bmN0 aW9uCi0tCSBjYWxsZWQgYnkgdGhhdCBmcmFtZS4gIFdlIGRvbid0IHVzZSB0aGUgbWFnaWMgIjEi IHZhbHVlIGZvcgotLQkgc3RlcF9yYW5nZV9lbmQsIGJlY2F1c2UgdGhlbiBpbmZydW4gd2lsbCB0 aGluayB0aGlzIGlzIG5leHRpLAotLQkgYW5kIG5vdCBzdGVwIG92ZXIgdGhlIHJlc3Qgb2YgdGhp cyBpbmxpbmVkIGZ1bmN0aW9uIGNhbGwuICAqLwotICAgICAgIHN0cnVjdCB0aHJlYWRfaW5mbyAq dHAgPSBpbmZlcmlvcl90aHJlYWQgKCk7Ci0gICAgICAgc3RydWN0IHN5bXRhYl9hbmRfbGluZSBl bXB0eV9zYWw7Ci0tICAgICAgaW5pdF9zYWwgKCZlbXB0eV9zYWwpOwotLSAgICAgIHNldF9zdGVw X2luZm8gKGZyYW1lLCBlbXB0eV9zYWwpOwotLSAgICAgIHRwLT5zdGVwX3JhbmdlX3N0YXJ0ID0g dHAtPnN0ZXBfcmFuZ2VfZW5kID0gZ2V0X2ZyYW1lX3BjIChmcmFtZSk7Ci0tICAgICAgdHAtPnN0 ZXBfb3Zlcl9jYWxscyA9IFNURVBfT1ZFUl9BTEw7Ci0rICAgICAgc3RydWN0IGJsb2NrICpmcmFt ZV9ibG9jazsKLSAKLSAgICAgICAvKiBQcmludCBpbmZvIG9uIHRoZSBzZWxlY3RlZCBmcmFtZSwg aW5jbHVkaW5nIGxldmVsIG51bWJlciBidXQgbm90Ci0gCSBzb3VyY2UuICAqLwotICAgICAgIGlm IChmcm9tX3R0eSkKLSAJewotIAkgIHByaW50Zl9maWx0ZXJlZCAoXygiUnVuIHRpbGwgZXhpdCBm cm9tICIpKTsKLS0JICBwcmludF9zdGFja19mcmFtZSAoZ2V0X3NlbGVjdGVkX2ZyYW1lIChOVUxM KSwgMSwgTE9DQVRJT04pOwotKwkgIHByaW50X3N0YWNrX2ZyYW1lIChjdXJyZW50X2ZyYW1lLCAx LCBMT0NBVElPTik7Ci0rCX0KLSsKLSsgICAgICAvKiBFdmVuIGp1c3QgYSBzaW5nbGUgc3RlcGkg d291bGQgZ2V0IHVzIG91dCBvZiB0aGUgY2FsbGVyIGZ1bmN0aW9uIFBDCi0rCSByYW5nZS4gICov Ci0rCi0rICAgICAgZnJhbWVfYmxvY2sgPSBnZXRfZnJhbWVfYmxvY2sgKGN1cnJlbnRfZnJhbWUs IE5VTEwpOwotKwotKyAgICAgIC8qIEZSQU1FX0JMT0NLIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5k IGFsc28gdGhlIGZyYW1lIHByaW50aW5nIGFib3ZlIG11c3QKLSsgICAgICAgICBiZSBkb25lIHN0 aWxsIHdpdGggdGhlIG9yaWdpbmFsIENVUlJFTlRfUENfSVNfTk9UQ1VSUkVOVCBzZXR0aW5nLiAg Ki8KLSsgICAgICBjbGVhcl9wcm9jZWVkX3N0YXR1cyAoKTsKLSsKLSsgICAgICBpZiAoZnJhbWVf YmxvY2sgJiYgQkxPQ0tfRU5EIChmcmFtZV9ibG9jaykgPT0gZnJhbWVfcGMpCi0rCXsKLSsJICBz dGVwX291dF9vZl9pbmxpbmVfZnJhbWUgKHRwLT5wdGlkKTsKLSsJICB0cC0+Y3VycmVudF9wY19p c19ub3RjdXJyZW50ID0gMTsKLSsJICBub3JtYWxfc3RvcCAoKTsKLSsJICByZXR1cm47Ci0gCX0K LSAKLSsgICAgICAvKiBDbGFpbSB3ZSBhcmUgc3RlcHBpbmcgaW4gdGhlIGNhbGxpbmcgZnJhbWUu ICBBbiBlbXB0eSBzdGVwCi0rCSByYW5nZSBtZWFucyB0aGF0IHdlIHdpbGwgc3RvcCBvbmNlIHdl IGFyZW4ndCBpbiBhIGZ1bmN0aW9uCi0rCSBjYWxsZWQgYnkgdGhhdCBmcmFtZS4gIFdlIGRvbid0 IHVzZSB0aGUgbWFnaWMgIjEiIHZhbHVlIGZvcgotKwkgc3RlcF9yYW5nZV9lbmQsIGJlY2F1c2Ug dGhlbiBpbmZydW4gd2lsbCB0aGluayB0aGlzIGlzIG5leHRpLAotKwkgYW5kIG5vdCBzdGVwIG92 ZXIgdGhlIHJlc3Qgb2YgdGhpcyBpbmxpbmVkIGZ1bmN0aW9uIGNhbGwuICAqLwotKyAgICAgIGlu aXRfc2FsICgmZW1wdHlfc2FsKTsKLSsgICAgICBzZXRfc3RlcF9pbmZvIChwcmV2X2ZyYW1lLCBl bXB0eV9zYWwpOwotKyAgICAgIHRwLT5zdGVwX3JhbmdlX3N0YXJ0ID0gdHAtPnN0ZXBfcmFuZ2Vf ZW5kID0gZ2V0X2ZyYW1lX3BjIChwcmV2X2ZyYW1lKTsKLSsgICAgICB0cC0+c3RlcF9vdmVyX2Nh bGxzID0gU1RFUF9PVkVSX0FMTDsKLSsKLSAgICAgICBwcm9jZWVkICgoQ09SRV9BRERSKSAtMSwg VEFSR0VUX1NJR05BTF9ERUZBVUxULCAxKTsKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLSAg IC8qIEZpbmQgdGhlIGZ1bmN0aW9uIHdlIHdpbGwgcmV0dXJuIGZyb20uICAqLwotIAotLSAgZnVu Y3Rpb24gPSBmaW5kX3BjX2Z1bmN0aW9uIChnZXRfZnJhbWVfcGMgKGdldF9zZWxlY3RlZF9mcmFt ZSAoTlVMTCkpKTsKLSsgIGZ1bmN0aW9uID0gZmluZF9wY19mdW5jdGlvbiAoZnJhbWVfcGMpOwot IAotICAgLyogUHJpbnQgaW5mbyBvbiB0aGUgc2VsZWN0ZWQgZnJhbWUsIGluY2x1ZGluZyBsZXZl bCBudW1iZXIgYnV0IG5vdAotICAgICAgc291cmNlLiAgKi8KLUBAIC0xNjU0LDEwICsxNjg0LDE0 IEBAIGZpbmlzaF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKLSAgICAgICBwcmlu dF9zdGFja19mcmFtZSAoZ2V0X3NlbGVjdGVkX2ZyYW1lIChOVUxMKSwgMSwgTE9DQVRJT04pOwot ICAgICB9Ci0gCi0rICAvKiBGcmFtZXMgcHJpbnRpbmcgYWJvdmUgbXVzdCBiZSBkb25lIHN0aWxs IHdpdGggdGhlIG9yaWdpbmFsCi0rICAgICBDVVJSRU5UX1BDX0lTX05PVENVUlJFTlQgc2V0dGlu Zy4gICovCi0rICBjbGVhcl9wcm9jZWVkX3N0YXR1cyAoKTsKLSsKLSAgIGlmIChleGVjdXRpb25f ZGlyZWN0aW9uID09IEVYRUNfUkVWRVJTRSkKLSAgICAgZmluaXNoX2JhY2t3YXJkIChmdW5jdGlv bik7Ci0gICBlbHNlCi0tICAgIGZpbmlzaF9mb3J3YXJkIChmdW5jdGlvbiwgZnJhbWUpOwotKyAg ICBmaW5pc2hfZm9yd2FyZCAoZnVuY3Rpb24sIHByZXZfZnJhbWUpOwotIH0KLSAMCi0gCi1JbmRl eDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvdGFyZ2V0LmMKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL3RhcmdldC5jCTIwMTAtMDEtMjEgMTU6MTM6MjYuMDAw MDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvdGFyZ2V0LmMJMjAxMC0w MS0yMSAxNToxNDo0Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0yMjE2LDYgKzIyMTYsNyBAQCB0YXJn ZXRfcmVzdW1lIChwdGlkX3QgcHRpZCwgaW50IHN0ZXAsIGVuCi0gewotICAgc3RydWN0IHRhcmdl dF9vcHMgKnQ7Ci0gCi0rICBjbGVhcl9pbmxpbmVfZnJhbWVfc3RhdGUgKHB0aWQpOwotICAgdGFy Z2V0X2RjYWNoZV9pbnZhbGlkYXRlICgpOwotIAotICAgZm9yICh0ID0gY3VycmVudF90YXJnZXQu YmVuZWF0aDsgdCAhPSBOVUxMOyB0ID0gdC0+YmVuZWF0aCkKLUluZGV4OiBnZGItNy4wLjUwLjIw MTAwMTIxL2dkYi9pbmxpbmUtZnJhbWUuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAx MDAxMjEub3JpZy9nZGIvaW5saW5lLWZyYW1lLmgJMjAxMC0wMS0wMSAwODozMTozNi4wMDAwMDAw MDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9pbmxpbmUtZnJhbWUuaAkyMDEw LTAxLTIxIDE1OjE0OjQ3LjAwMDAwMDAwMCArMDEwMAotQEAgLTQzLDYgKzQzLDEwIEBAIHZvaWQg Y2xlYXJfaW5saW5lX2ZyYW1lX3N0YXRlIChwdGlkX3QgcHQKLSAKLSB2b2lkIHN0ZXBfaW50b19p bmxpbmVfZnJhbWUgKHB0aWRfdCBwdGlkKTsKLSAKLSsvKiBTdGVwIG91dCBvZiBhbiBpbmxpbmVk IGZ1bmN0aW9uIGJ5IGhpZGluZyBpdC4gICovCi0rCi0rdm9pZCBzdGVwX291dF9vZl9pbmxpbmVf ZnJhbWUgKHB0aWRfdCBwdGlkKTsKLSsKLSAvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBoaWRkZW4g ZnVuY3Rpb25zIGlubGluZWQgaW50byB0aGUgY3VycmVudAotICAgIGZyYW1lLiAgKi8KLSAKLUlu ZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9kd2FyZjJyZWFkLmMKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTAxLTIxIDE1 OjE0OjQxLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL2R3YXJm MnJlYWQuYwkyMDEwLTAxLTIxIDE1OjE1OjA5LjAwMDAwMDAwMCArMDEwMAotQEAgLTQxMzcsNiAr NDEzNyw3IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKLSAgIHN0 cnVjdCBibG9jayAqYmxvY2s7Ci0gICB1bnNpZ25lZCBkaWVfY2hpbGRyZW4gPSAwOwotICAgaW50 IGlubGluZWRfZnVuYyA9IChkaWUtPnRhZyA9PSBEV19UQUdfaW5saW5lZF9zdWJyb3V0aW5lKTsK LSsgIHN0cnVjdCB0eXBlICp0eXBlOwotIAotICAgaWYgKGlubGluZWRfZnVuYykKLSAgICAgewot QEAgLTQxNzgsNyArNDE3OSwxMCBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzCi0gICBhZGRfdG9fY3VfZnVuY19saXN0IChuYW1lLCBsb3dwYywgaGlnaHBjLCBjdSk7 Ci0gCi0gICBuZXcgPSBwdXNoX2NvbnRleHQgKDAsIGxvd3BjKTsKLS0gIG5ldy0+bmFtZSA9IG5l d19zeW1ib2wgKGRpZSwgcmVhZF90eXBlX2RpZSAoZGllLCBjdSksIGN1KTsKLSsgIHR5cGUgPSBy ZWFkX3R5cGVfZGllIChkaWUsIGN1KTsKLSsgIGdkYl9hc3NlcnQgKHR5cGUgIT0gTlVMTCk7Ci0r ICBuZXctPm5hbWUgPSBuZXdfc3ltYm9sIChkaWUsIHR5cGUsIGN1KTsKLSsgIGdkYl9hc3NlcnQg KFRZUEVfQ09ERSAoU1lNQk9MX1RZUEUgKG5ldy0+bmFtZSkpID09IFRZUEVfQ09ERV9GVU5DKTsK LSAKLSAgIC8qIElmIHRoZXJlIGlzIGEgbG9jYXRpb24gZXhwcmVzc2lvbiBmb3IgRFdfQVRfZnJh bWVfYmFzZSwgcmVjb3JkCi0gICAgICBpdC4gICovCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1pbmxp bmluZy1ieS1uYW1lLnBhdGNoIGIvZ2RiLTYuOC1pbmxpbmluZy1ieS1uYW1lLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MDk2MjQ3Li4wMDAwMDAwCi0tLSBhL2dkYi02Ljgt aW5saW5pbmctYnktbmFtZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwNCArMCwwIEBACi1J bXBsZW1lbnQgYGIgPGZ1bmNuYW1lPicgZm9yIDxmdW5jbmFtZT4gd2l0aCBjb25jZXRlIGlubGlu ZWQgaW5zdGFuY2VzIGJ5Ci1hIG11bHRpcGxlLVBDIGJyZWFrcG9pbnQuCi0KLUluZGV4OiBnZGIt Ni44LjUwLjIwMDgxMTI4L2dkYi9hZGEtbGFuZy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41 MC4yMDA4MTEyOC5vcmlnL2dkYi9hZGEtbGFuZy5jCTIwMDgtMTEtMjUgMDA6MjE6MTUuMDAwMDAw MDAwICswMTAwCi0rKysgZ2RiLTYuOC41MC4yMDA4MTEyOC9nZGIvYWRhLWxhbmcuYwkyMDA4LTEy LTA2IDIxOjM5OjU2LjAwMDAwMDAwMCArMDEwMAotQEAgLTQ2MTQsNyArNDYxNCw3IEBAIHJlbW92 ZV9pcnJlbGV2YW50X3JlbmFtaW5ncyAoc3RydWN0IGFkYV8KLSAgIGlmIChjdXJyZW50X2Jsb2Nr ID09IE5VTEwpCi0gICAgIHJldHVybiBuc3ltczsKLSAKLS0gIGN1cnJlbnRfZnVuY3Rpb24gPSBi bG9ja19saW5rYWdlX2Z1bmN0aW9uIChjdXJyZW50X2Jsb2NrKTsKLSsgIGN1cnJlbnRfZnVuY3Rp b24gPSBibG9ja19mdW5jdGlvbiAoY3VycmVudF9ibG9jayk7Ci0gICBpZiAoY3VycmVudF9mdW5j dGlvbiA9PSBOVUxMKQotICAgICByZXR1cm4gbnN5bXM7Ci0gCi1AQCAtNjYyNSw3ICs2NjI1LDcg QEAgYWRhX2ZpbmRfcmVuYW1pbmdfc3ltYm9sIChjb25zdCBjaGFyICpuYQotIHN0YXRpYyBzdHJ1 Y3Qgc3ltYm9sICoKLSBmaW5kX29sZF9zdHlsZV9yZW5hbWluZ19zeW1ib2wgKGNvbnN0IGNoYXIg Km5hbWUsIHN0cnVjdCBibG9jayAqYmxvY2spCi0gewotLSAgY29uc3Qgc3RydWN0IHN5bWJvbCAq ZnVuY3Rpb25fc3ltID0gYmxvY2tfbGlua2FnZV9mdW5jdGlvbiAoYmxvY2spOwotKyAgY29uc3Qg c3RydWN0IHN5bWJvbCAqZnVuY3Rpb25fc3ltID0gYmxvY2tfZnVuY3Rpb24gKGJsb2NrKTsKLSAg IGNoYXIgKnJlbmFtZTsKLSAKLSAgIGlmIChmdW5jdGlvbl9zeW0gIT0gTlVMTCkKLUluZGV4OiBn ZGItNi44LjUwLjIwMDgxMTI4L2dkYi9ibG9jay5jCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41 MC4yMDA4MTEyOC5vcmlnL2dkYi9ibG9jay5jCTIwMDgtMTItMDYgMTQ6MDY6MTYuMDAwMDAwMDAw ICswMTAwCi0rKysgZ2RiLTYuOC41MC4yMDA4MTEyOC9nZGIvYmxvY2suYwkyMDA4LTEyLTA2IDIx OjQwOjI5LjAwMDAwMDAwMCArMDEwMAotQEAgLTc1LDYgKzc1LDE5IEBAIGJsb2NrX2xpbmthZ2Vf ZnVuY3Rpb24gKGNvbnN0IHN0cnVjdCBibG8KLSAgIHJldHVybiBCTE9DS19GVU5DVElPTiAoYmwp OwotIH0KLSAKLSsvKiBSZXR1cm4gdGhlIHN5bWJvbCBmb3IgdGhlIGZ1bmN0aW9uIHdoaWNoIGNv bnRhaW5zIGEgc3BlY2lmaWVkCi0rICAgbGV4aWNhbCBibG9jaywgZGVzY3JpYmVkIGJ5IGEgc3Ry dWN0IGJsb2NrIEJMLiAgSW5saW5lZCBmdW5jdGlvbnMKLSsgICBjYW4gYmUgcmV0dXJuZWQuICAq LwotKwotK3N0cnVjdCBzeW1ib2wgKgotK2Jsb2NrX2Z1bmN0aW9uIChjb25zdCBzdHJ1Y3QgYmxv Y2sgKmJsKQotK3sKLSsgIHdoaWxlIChCTE9DS19GVU5DVElPTiAoYmwpID09IE5VTEwgJiYgQkxP Q0tfU1VQRVJCTE9DSyAoYmwpICE9IE5VTEwpCi0rICAgIGJsID0gQkxPQ0tfU1VQRVJCTE9DSyAo YmwpOwotKwotKyAgcmV0dXJuIEJMT0NLX0ZVTkNUSU9OIChibCk7Ci0rfQotKwotIC8qIFJldHVy biBvbmUgaWYgQkwgcmVwcmVzZW50cyBhbiBpbmxpbmVkIGZ1bmN0aW9uLiAgKi8KLSAKLSBpbnQK LUluZGV4OiBnZGItNi44LjUwLjIwMDgxMTI4L2dkYi9ibG9jay5oCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTYuOC41MC4yMDA4MTEyOC5vcmlnL2dkYi9ibG9jay5oCTIwMDgtMTItMDYgMTQ6MDY6MTYu MDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTYuOC41MC4yMDA4MTEyOC9nZGIvYmxvY2suaAkyMDA4 LTEyLTA2IDIxOjM5OjU2LjAwMDAwMDAwMCArMDEwMAotQEAgLTEzMyw2ICsxMzMsNyBAQCBzdHJ1 Y3QgYmxvY2t2ZWN0b3IKLSBlbnVtIHsgR0xPQkFMX0JMT0NLID0gMCwgU1RBVElDX0JMT0NLID0g MSwgRklSU1RfTE9DQUxfQkxPQ0sgPSAyIH07Ci0gCi0gZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmJs b2NrX2xpbmthZ2VfZnVuY3Rpb24gKGNvbnN0IHN0cnVjdCBibG9jayAqKTsKLStleHRlcm4gc3Ry dWN0IHN5bWJvbCAqYmxvY2tfZnVuY3Rpb24gKGNvbnN0IHN0cnVjdCBibG9jayAqYmwpOwotIAot IGV4dGVybiBpbnQgYmxvY2tfaW5saW5lZF9wIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrKTsK LSAKLUluZGV4OiBnZGItNi44LjUwLjIwMDgxMTI4L2dkYi9ibG9ja2ZyYW1lLmMKLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNi44LjUwLjIwMDgxMTI4Lm9yaWcvZ2RiL2Jsb2NrZnJhbWUuYwkyMDA4LTEy LTA2IDE0OjA2OjE2LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwODExMjgvZ2Ri L2Jsb2NrZnJhbWUuYwkyMDA4LTEyLTA2IDIxOjM5OjU2LjAwMDAwMDAwMCArMDEwMAotQEAgLTE0 Myw3ICsxNDMsNyBAQCBmaW5kX3BjX3NlY3RfZnVuY3Rpb24gKENPUkVfQUREUiBwYywgc3RyCi0g ICBzdHJ1Y3QgYmxvY2sgKmIgPSBibG9ja19mb3JfcGNfc2VjdCAocGMsIHNlY3Rpb24pOwotICAg aWYgKGIgPT0gMCkKLSAgICAgcmV0dXJuIDA7Ci0tICByZXR1cm4gYmxvY2tfbGlua2FnZV9mdW5j dGlvbiAoYik7Ci0rICByZXR1cm4gYmxvY2tfZnVuY3Rpb24gKGIpOwotIH0KLSAKLSAvKiBSZXR1 cm4gdGhlIGZ1bmN0aW9uIGNvbnRhaW5pbmcgcGMgdmFsdWUgUEMuCi1JbmRleDogZ2RiLTYuOC41 MC4yMDA4MTEyOC9nZGIvYnJlYWtwb2ludC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4y MDA4MTEyOC5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAwOC0xMi0wNiAxNDowNjoxNy4wMDAwMDAw MDAgKzAxMDAKLSsrKyBnZGItNi44LjUwLjIwMDgxMTI4L2dkYi9icmVha3BvaW50LmMJMjAwOC0x Mi0wNiAyMTozOTo1Ni4wMDAwMDAwMDAgKzAxMDAKLUBAIC01NzEyLDcgKzU3MTIsNyBAQCByZXNv bHZlX3NhbF9wYyAoc3RydWN0IHN5bXRhYl9hbmRfbGluZSAqCi0gICAgICAgYnYgPSBibG9ja3Zl Y3Rvcl9mb3JfcGNfc2VjdCAoc2FsLT5wYywgMCwgJmIsIHNhbC0+c3ltdGFiKTsKLSAgICAgICBp ZiAoYnYgIT0gTlVMTCkKLSAJewotLQkgIHN5bSA9IGJsb2NrX2xpbmthZ2VfZnVuY3Rpb24gKGIp OwotKwkgIHN5bSA9IGJsb2NrX2Z1bmN0aW9uIChiKTsKLSAJICBpZiAoc3ltICE9IE5VTEwpCi0g CSAgICB7Ci0gCSAgICAgIGZpeHVwX3N5bWJvbF9zZWN0aW9uIChzeW0sIHNhbC0+c3ltdGFiLT5v YmpmaWxlKTsKLUluZGV4OiBnZGItNi44LjUwLjIwMDgxMTI4L2dkYi90ZXN0c3VpdGUvZ2RiLm9w dC9pbmxpbmUtY21kcy5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDgxMTI4Lm9y aWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDA4LTEyLTA2IDIxOjM3 OjI3LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwODExMjgvZ2RiL3Rlc3RzdWl0 ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDA4LTEyLTA2IDIxOjQxOjM3LjAwMDAwMDAwMCAr MDEwMAotQEAgLTQ1LDggKzQ1LDEwIEBAIGlmIHsgW3NraXBfaW5saW5lX2ZyYW1lX3Rlc3RzXSB9 IHsKLSAKLSAjIEZpcnN0LCBjaGVjayB0aGF0IHRoZSB0aGluZ3Mgd2UgZXhwZWN0ZWQgdG8gYmUg aW5saW5lZCByZWFsbHkgd2VyZSwKLSAjIGFuZCB0aG9zZSB0aGF0IHNob3VsZG4ndCBiZSB3ZXJl bid0LgotLXNldCBsaW5lMSBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWFrcG9pbnQgMSBo ZXJlIiAke3NyY2ZpbGUyfV0KLS1nZGJfYnJlYWtwb2ludCAkc3JjZmlsZTI6JGxpbmUxCi0rIyBX ZSB0ZXN0IGFsc28gaW5saW5pbmcgYnkgdGhlIGZ1bmN0aW9uIG5hbWUsIG90aGVyd2lzZSB3ZSB3 b3VsZCB1c2U6Ci0rIyAgIHNldCBsaW5lMSBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWFr cG9pbnQgMSBoZXJlIiAke3NyY2ZpbGUyfV0KLSsjICAgZ2RiX2JyZWFrcG9pbnQgJHNyY2ZpbGUy OiRsaW5lMQotK2dkYl9icmVha3BvaW50ICJiYXIiCi0gc2V0IGxpbmUyIFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJzZXQgYnJlYWtwb2ludCAyIGhlcmUiICR7c3JjZmlsZTJ9XQotIGdkYl9icmVha3Bv aW50ICRzcmNmaWxlMjokbGluZTIKLSAKCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLWFkYS5wYXRj aCBiL2dkYi1hcmNoZXItYWRhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjEyODExMmIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYXJjaGVyLWFkYS5wYXRjaApAQCAt MCwwICsxLDIzIEBACitGcm9tOiBLZWl0aCBTZWl0eiA8a2VpdGhzQHJlZGhhdC5jb20+CitNZXNz YWdlLUlEOiA8NEI3RjIwN0EuNzAyMDEwMkByZWRoYXQuY29tPgorCitbIHJlYWRfcGFydGlhbF9k aWUgcGFydCBkcm9wcGVkIGluIHRoZSBwb3J0IHRvIFJhd2hpZGUgXQorCistLS0gZ2RiLTcuMC4x LW9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTAyLTIwIDAxOjA2OjQ0LjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi03LjAuMS9nZGIvZHdhcmYycmVhZC5jCTIwMTAtMDItMjAgMDE6MDg6MjguMDAw MDAwMDAwICswMTAwCitAQCAtOTkyNCw5ICs5OTI4LDEzIEBAIGR3YXJmMl9jYW5vbmljYWxpemVf bmFtZSAoY2hhciAqbmFtZSwgc3QKKyBzdGF0aWMgY2hhciAqCisgZHdhcmYyX25hbWUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyB7CistICBzdHJ1Y3QgYXR0 cmlidXRlICphdHRyOworKyAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciA9IE5VTEw7CisrCisrICBp ZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2FkYSkKKysgICAgYXR0ciA9IGR3YXJmMl9hdHRy IChkaWUsIERXX0FUX01JUFNfbGlua2FnZV9uYW1lLCBjdSk7CisgCistICBhdHRyID0gZHdhcmYy X2F0dHIgKGRpZSwgRFdfQVRfbmFtZSwgY3UpOworKyAgaWYgKCFhdHRyKQorKyAgICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbmFtZSwgY3UpOworICAgaWYgKCFhdHRyIHx8ICFEV19T VFJJTkcgKGF0dHIpKQorICAgICByZXR1cm4gTlVMTDsKKyAKCmRpZmYgLS1naXQgYS9nZGItYXJj aGVyLW5leHQtb3Zlci10aHJvdy1jeHgtZXhlYy5wYXRjaCBiL2dkYi1hcmNoZXItbmV4dC1vdmVy LXRocm93LWN4eC1leGVjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjQxNDA5ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYXJjaGVyLW5leHQtb3Zlci10aHJvdy1j eHgtZXhlYy5wYXRjaApAQCAtMCwwICsxLDEwNCBAQAorQXJjaGVyLXVwc3RyZWFtZWQ6CitodHRw Oi8vc291cmNld2FyZS5vcmcvbWwvYXJjaGVyLzIwMTAtcTIvbXNnMDAwMzEuaHRtbAorCistLS0g Li9nZGIvYnJlYWtwb2ludC5jCTIwMTAtMDUtMjkgMDE6MTI6MzIuMDAwMDAwMDAwICswMjAwCisr KysgLi9nZGIvYnJlYWtwb2ludC5jCTIwMTAtMDUtMjkgMDE6MjI6MjEuMDAwMDAwMDAwICswMjAw CitAQCAtMTY3OSwxNCArMTY3OSwxMSBAQCBjcmVhdGVfZXhjZXB0aW9uX21hc3Rlcl9icmVha3Bv aW50ICh2b2lkCisgICAgICAgZGVidWdfaG9vayA9IGxvb2t1cF9taW5pbWFsX3N5bWJvbF90ZXh0 ICgiX1Vud2luZF9EZWJ1Z0hvb2siLCBvYmpmaWxlKTsKKyAgICAgICBpZiAoZGVidWdfaG9vayAh PSBOVUxMKQorIAl7CistCSAgQ09SRV9BRERSIHBjOworIAkgIHN0cnVjdCBicmVha3BvaW50ICpi OworIAorLQkgIHBjID0gZmluZF9mdW5jdGlvbl9zdGFydF9wYyAoZ2V0X29iamZpbGVfYXJjaCAo b2JqZmlsZSksCistCQkJCSAgICAgICBTWU1CT0xfVkFMVUVfQUREUkVTUyAoZGVidWdfaG9vayks CistCQkJCSAgICAgICBTWU1CT0xfT0JKX1NFQ1RJT04gKGRlYnVnX2hvb2spKTsKKyAJICBiID0g Y3JlYXRlX2ludGVybmFsX2JyZWFrcG9pbnQgKGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpLAor LQkJCQkJICBwYywgYnBfZXhjZXB0aW9uX21hc3Rlcik7CisrCQkJCQkgIFNZTUJPTF9WQUxVRV9B RERSRVNTIChkZWJ1Z19ob29rKSwKKysJCQkJCSAgYnBfZXhjZXB0aW9uX21hc3Rlcik7CisgCSAg Yi0+YWRkcl9zdHJpbmcgPSB4c3RyZHVwICgiX1Vud2luZF9EZWJ1Z0hvb2siKTsKKyAJICBiLT5l bmFibGVfc3RhdGUgPSBicF9kaXNhYmxlZDsKKyAJfQorLS0tIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIu Y3AvY3h4ZXhlYy5jYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4v Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3h4ZXhlYy5jYwkyMDEwLTA1LTI5IDAxOjE4OjU2LjAwMDAw MDAwMCArMDIwMAorQEAgLTAsMCArMSwyNSBAQAorKy8qIFRoaXMgdGVzdCBzY3JpcHQgaXMgcGFy dCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMTAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDx1bmlzdGQuaD4KKysKKytpbnQKKyttYWluKCkK Kyt7CisrICBleGVjbHAgKCJ0cnVlIiwgInRydWUiLCBOVUxMKTsKKysgIHJldHVybiAxOworK30K Ky0tLSAuL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2N4eGV4ZWMuZXhwCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jeHhleGVjLmV4 cAkyMDEwLTA1LTI5IDAxOjI5OjI1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1MSBAQAor KyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK2lmIHsgW3NraXBfY3BsdXNfdGVzdHNdIH0g eyBjb250aW51ZSB9CisrCisrc2V0IHRlc3RmaWxlIGN4eGV4ZWMKKytpZiB7IFtwcmVwYXJlX2Zv cl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3Rlc3RmaWxlfS5jYyB7Yysr IGRlYnVnfV0gfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytydW50b19tYWluCisrCisrIyBX ZSBjb3VsZCBzdG9wIGFmdGVyIGBjb250aW51ZScgYWdhaW4gYXQgYG1haW4nLgorK2RlbGV0ZV9i cmVha3BvaW50cworKworK3NldCB0ZXN0ICJwIF9VbndpbmRfRGVidWdIb29rIgorK2dkYl90ZXN0 X211bHRpcGxlICR0ZXN0ICR0ZXN0IHsKKysgICAgLXJlICIgPSAuKiAweFxbMC05YS1mXF0uKlxy XG4kZ2RiX3Byb21wdCAkIiB7CisrCXBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgIlxyXG5O byBzeW1ib2wgLipcclxuJGdkYl9wcm9tcHQgJCIgeworKwl4ZmFpbCAkdGVzdAorKwl1bnRlc3Rl ZCAke3Rlc3RmaWxlfS5leHAKKysJcmV0dXJuIC0xCisrICAgIH0KKyt9CisrCisrc2V0IHRlc3Qg Y29udGludWUKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7CisrICAgIC1yZSAiQ2Fu bm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweFxbMC05YS1mXF0rXHJcbiRnZGJfcHJvbXB0 ICQiIHsKKysJZmFpbCAkdGVzdAorKyAgICB9CisrICAgIC1yZSAiXHJcbiRnZGJfcHJvbXB0ICQi IHsKKysJcGFzcyAkdGVzdAorKyAgICB9CisrfQorKworKyMgYGluZm8gaW5mZXJpb3JzJyBjYW4g c2hvdyA8bnVsbD4gb24gb2xkZXIgR0RCcy4KKytnZGJfdGVzdCAiaW5mbyB0aHJlYWRzIiAiaW5m byB0aHJlYWRzIiAicHJvZ3JhbSBmaW5pc2hlZCIKCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLXBp ZS0wMzE1LWJyZWFrcG9pbnRfYWRkcmVzc19tYXRjaC5wYXRjaCBiL2dkYi1hcmNoZXItcGllLTAz MTUtYnJlYWtwb2ludF9hZGRyZXNzX21hdGNoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwNTk3Li4wMDAwMDAwCi0tLSBhL2dkYi1hcmNoZXItcGllLTAzMTUtYnJlYWtw b2ludF9hZGRyZXNzX21hdGNoLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAot WyBGb3J3YXJkLXBvcnRlZCBjb250ZXh0LiAgXQotCi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwv Z2RiLXBhdGNoZXMvMjAwOS0xMS9tc2cwMDE3MC5odG1sCi1TdWJqZWN0OiBbcGF0Y2ggMDMvMTVd IFBJRTogYnJlYWtwb2ludF9hZGRyZXNzX21hdGNoIGdkYmFyY2hfYWRkcl9iaXQgIHdvcmthcm91 bmQKLQotSGksCi0KLXRoZXJlIGFyZSBhbHJlYWR5IG11bHRpcGxlIGNhc2VzIG9mIENPUkVfQURE UiBiZWluZyBtYXNrZWQgYnkgdGhlIHdpZHRoIG9mCi1nZGJhcmNoX2FkZHJfYml0LiAgVGhpcyBz cGVjaWZpYyBuZXcgY2FzZSB3YXMgcmVxdWlyZWQgdGhlIFBJRSBzdXBwb3J0LgotCi1QbGVhc2Ug cmVhZCB0aGUgQyBjb21tZW50IGluIGF0dGFjaGVkIHBhdGNoLgotCi1DaGVja2VkIHRoYXQgQ09S RV9BRERSIG1hdGggb3BlcmF0aW9ucyBhcmUgcHJlc2VudCBvbiA2MDAwKyBsaW5lcyBvZiBjb2Rl IG9mCi1HREIgc291cmNlcyB3aGljaCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIGRvIHNvbWUgZ2Vu ZXJhbCBmaXggYnkgcmVwbGFjaW5nIGFsbAotCWEtPmFkZHIgPCBiLT5hZGRyCi1ieQotCWFkZHJf bGVzc190aGFuIChhLT5hZGRyLCBiLT5hZGRyKQotZXRjLgotCi1FdmVuIHdpdGggdGhpcyBwYXRj aCBJIHRoaW5rIHRoZXJlIGFyZSBzdGlsbCBtYW55IGJ1Z3MgbGVmdCBpbiB0aGUgb3BlcmF0aW9u Ci1vZiB4ODZfNjQgZ2RiIGRlYnVnZ2luZyBpMzg2IHRhcmdldHMuICBEbyB5b3UgZmluZCB0aGUg QysrIHdheSBhcyBhIHZpYWJsZQotb25lPwotCi0KLVRoYW5rcywKLUphbgotCi0gICAgCi1nZGIv Ci0gICAgCSogYnJlYWtwb2ludC5jIChicmVha3BvaW50X2FkZHJlc3NfbWF0Y2gpOiBOZXcgdmFy aWFibGVzIGFkZHJfYml0IGFuZAotICAgIAlhZGRyX21hc2ssIGluaXRpYWxpemUgaXQuICBNYXNr IGFkZHJlc3NlcyBieSBBRERSX01BU0suCi0gICAgCSogZGVmcy5oIChDT1JFX0FERFIpOiBFeHRl bmQgdGhlIGNvbW1lbnQuCi0KLS0tLSBhL2dkYi9icmVha3BvaW50LmMKLSsrKyBiL2dkYi9icmVh a3BvaW50LmMKLUBAIC00NTU5LDkgKzQ1NTksMTUgQEAgc3RhdGljIGludAotIGJyZWFrcG9pbnRf YWRkcmVzc19tYXRjaCAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZTEsIENPUkVfQUREUiBh ZGRyMSwKLSAJCQkgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UyLCBDT1JFX0FERFIgYWRk cjIpCi0gewotKyAgaW50IGFkZHJfYml0ID0gZ2RiYXJjaF9hZGRyX2JpdCAodGFyZ2V0X2dkYmFy Y2gpOwotKyAgQ09SRV9BRERSIGFkZHJfbWFzayA9IENPUkVfQUREUl9NQVg7Ci0rCi0rICBpZiAo YWRkcl9iaXQgPCAoc2l6ZW9mIChDT1JFX0FERFIpICogSE9TVF9DSEFSX0JJVCkpCi0rICAgIGFk ZHJfbWFzayA9ICgoQ09SRV9BRERSKSAxIDw8IGFkZHJfYml0KSAtIDE7Ci0rCi0gICByZXR1cm4g KChnZGJhcmNoX2hhc19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdldF9nZGJhcmNoKQotIAkgICB8 fCBhc3BhY2UxID09IGFzcGFjZTIpCi0tCSAgJiYgYWRkcjEgPT0gYWRkcjIpOwotKwkgICYmIChh ZGRyMSAmIGFkZHJfbWFzaykgPT0gKGFkZHIyICYgYWRkcl9tYXNrKSk7Ci0gfQotIAotIC8qIEFz c3VtaW5nIExPQzEgYW5kIExPQzIncyB0eXBlcycgaGF2ZSBtZWFuaW5nZnVsIHRhcmdldCBhZGRy ZXNzZXMKLS0tLSBhL2dkYi9kZWZzLmgKLSsrKyBiL2dkYi9kZWZzLmgKLUBAIC05OCw3ICs5OCwy MCBAQAotIC8qIEEgYnl0ZSBmcm9tIHRoZSBwcm9ncmFtIGJlaW5nIGRlYnVnZ2VkLiAgKi8KLSB0 eXBlZGVmIGJmZF9ieXRlIGdkYl9ieXRlOwotIAotLS8qIEFuIGFkZHJlc3MgaW4gdGhlIHByb2dy YW0gYmVpbmcgZGVidWdnZWQuICBIb3N0IGJ5dGUgb3JkZXIuICAqLwotKy8qIEFuIGFkZHJlc3Mg aW4gdGhlIHByb2dyYW0gYmVpbmcgZGVidWdnZWQuICBIb3N0IGJ5dGUgb3JkZXIuCi0rCi0rICAg SXRzIHdpZHRoIGlzIHRoZSBtYXhpbXVtIHdpZHRoIG9mIGFsbCB0aGUgc3VwcG9ydGVkIHRhcmdl dHMuICBUaGF0IG1lYW5zCi0rICAgMzItYml0IHRhcmdldCB3aWxsIHJ1biBvbiBzdWNoIEdEQiB1 c2luZyA2NC1iaXQgQ09SRV9BRERSIGNsdXR0ZXJpbmcgdGhlCi0rICAgYml0cyAzMi4uLjYzIHdp dGggcmFuZG9tIGRhdGEgZnJvbSBpbnRlcm5hbCBHREIgY2FsY3VsYXRpb25zLiAgR0RCIGN1cnJl bnRseQotKyAgIGluIGdlbmVyYWwgdHJ1bmNhdGVzIHRoZSBhZGRyZXNzIHdpZHRoIG9ubHkgd2hl biBpdCBpcyBiZWluZyBwcmVzZW50ZWQvdXNlZAotKyAgIGV4dGVybmFsbHkgKHN1Y2ggYXMgYnkg dGhlIHBhZGRyZXNzIGZ1bmN0aW9uKS4KLSsKLSsgICBGSVhNRTogVGhpcyBpcyBzdGlsbCBub3Qg cmlnaHQgYXMgYW55IEdEQiBpbnRlcm5hbCBjb21wYXJpc29ucyAoc3VjaCBhcyA+PSkKLSsgICBv ZiBDT1JFX0FERFIgZG8gbm90IHVzZSB0aGUgcHJvcGVybHkgdHJ1bmNhdGVkIHdpZHRoLiAgQXMg Y29udmVydGluZyBhbGwgdGhlCi0rICAgQ09SRV9BRERSIG9wZXJhdGlvbnMgdG8gd2lkdGgtYXdh cmUgZnVuY3Rpb25zIGlzIG5vdCBmZWFzaWJsZSB0aGUgd2F5IG91dAotKyAgIGNvdWxkIGJlIGEg d2lkdGgtYXdhcmUgQysrIGNsYXNzIENPUkVfQUREUiByZWZlcmVuY2luZyBnZGJhcmNoIGFzIGl0 cwotKyAgIGNvbnN0cnVjdG9yIHBhcmFtZXRlci4gICovCi0rCi0gdHlwZWRlZiBiZmRfdm1hIENP UkVfQUREUjsKLSAKLSAvKiBUaGUgbGFyZ2VzdCBDT1JFX0FERFIgdmFsdWUuICAqLwotCgpkaWZm IC0tZ2l0IGEvZ2RiLWFyY2hlci1waWUtYWRkb25zLnBhdGNoIGIvZ2RiLWFyY2hlci1waWUtYWRk b25zLnBhdGNoCmluZGV4IDY1NzVkNWQuLjA2MGIxOWUgMTAwNjQ0Ci0tLSBhL2dkYi1hcmNoZXIt cGllLWFkZG9ucy5wYXRjaAorKysgYi9nZGItYXJjaGVyLXBpZS1hZGRvbnMucGF0Y2gKQEAgLTEs OCArMSw4IEBACi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZHdhcmYycmVhZC5jCitJ bmRleDogZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMC41MC4yMDEwMDExNS5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxMC0wMS0xNSAy MTo0MTozMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTE1L2dkYi9kd2Fy ZjJyZWFkLmMJMjAxMC0wMS0xNSAyMTo0MjoxOS4wMDAwMDAwMDAgKzAxMDAKLUBAIC01ODIxLDcg KzU4MjEsMTIgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorLS0t IGdkYi03LjAuOTAuMjAxMDAzMDYub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTAtMDMtMDYgMjM6 Mjc6MzAuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvZHdhcmYy cmVhZC5jCTIwMTAtMDMtMDYgMjM6Mjg6NDMuMDAwMDAwMDAwICswMTAwCitAQCAtNTkxMCw3ICs1 OTEwLDEyIEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICB7CiAg ICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwogICAgc3RydWN0IHN5bWJvbCAqc3ltOwpAQCAtMTYs NyArMTYsNyBAQCBJbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZHdhcmYycmVhZC5jCiAg CiAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbG9jYXRpb24sIGN1KTsKICAgIGlm IChhdHRyKQotQEAgLTU4MzAsNiArNTgzNSw3IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwKK0BAIC01OTE5LDYgKzU5MjQsNyBAQCByZWFkX2NvbW1vbl9ibG9jayAo c3RydWN0IGRpZV9pbmZvICpkaWUsCiAgICAgICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0 cikpCiAgICAgICAgICB7CiAgICAgICAgICAgIGJhc2UgPSBkZWNvZGVfbG9jZGVzYyAoRFdfQkxP Q0sgKGF0dHIpLCBjdSk7CkBAIC0yNCw3ICsyNCw3IEBAIEluZGV4OiBnZGItNy4wLjUwLjIwMTAw MTE1L2dkYi9kd2FyZjJyZWFkLmMKICAgICAgICAgIH0KICAgICAgICBlbHNlIGlmIChhdHRyX2Zv cm1faXNfc2VjdGlvbl9vZmZzZXQgKGF0dHIpKQogICAgICAgICAgewotQEAgLTU4OTEsMTIgKzU4 OTcsMTUgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTU5 ODAsMTIgKzU5ODYsMTUgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGll LAogIAkgICAgICBlbHNlCiAgCQlkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWlu dCAoKTsKICAKQEAgLTQyLDcgKzQyLDcgQEAgSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2Ri L2R3YXJmMnJlYWQuYwogIAkgIGVsc2UKICAJICAgIFNFVF9GSUVMRF9QSFlTTkFNRSAoKmZpZWxk LCBTWU1CT0xfTElOS0FHRV9OQU1FIChzeW0pKTsKICAJICBGSUVMRF9UWVBFICgqZmllbGQpID0g U1lNQk9MX1RZUEUgKHN5bSk7Ci1AQCAtNTkxMCw3ICs1OTE5LDcgQEAgcmVhZF9jb21tb25fYmxv Y2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTU5OTksNyArNjAwOCw3IEBAIHJlYWRfY29t bW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAKICAgICAgICBzeW0gPSBuZXdfc3lt Ym9sIChkaWUsIHR5cGUsIGN1KTsKICAgICAgICAvKiBTWU1CT0xfVkFMVUVfQUREUkVTUyBuZXZl ciBnZXRzIHVzZWQgYXMgYWxsIGl0cyBmaWVsZHMgYXJlIHN0YXRpYy4gICovCkBAIC01MSw2MCAr NTEsMTEgQEAgSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL2R3YXJmMnJlYWQuYwogIAog ICAgICAgIHNldF9kaWVfdHlwZSAoZGllLCB0eXBlLCBjdSk7CiAgICAgIH0KLUluZGV4OiBnZGIt Ny4wLjUwLjIwMTAwMTE1L2dkYi9leGVjLmMKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dk Yi9nZGJ0eXBlcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41MC4yMDEwMDExNS5vcmlnL2dk Yi9leGVjLmMJMjAxMC0wMS0xNSAyMTozNToxNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4w LjUwLjIwMTAwMTE1L2dkYi9leGVjLmMJMjAxMC0wMS0xNSAyMTo0NzoxOS4wMDAwMDAwMDAgKzAx MDAKLUBAIC0zNSw2ICszNSw3IEBACi0gI2luY2x1ZGUgImFyY2gtdXRpbHMuaCIKLSAjaW5jbHVk ZSAiZ2RidGhyZWFkLmgiCi0gI2luY2x1ZGUgInByb2dzcGFjZS5oIgotKyNpbmNsdWRlICJzb2xp Yi5oIgotIAotICNpbmNsdWRlIDxmY250bC5oPgotICNpbmNsdWRlICJyZWFkbGluZS9yZWFkbGlu ZS5oIgotQEAgLTIyNSw2ICsyMjYsMTAgQEAgZXhlY19maWxlX2F0dGFjaCAoY2hhciAqZmlsZW5h bWUsIGludCBmcgotICAgICAgIGNoYXIgKnNjcmF0Y2hfcGF0aG5hbWU7Ci0gICAgICAgaW50IHNj cmF0Y2hfY2hhbjsKLSAgICAgICBzdHJ1Y3QgdGFyZ2V0X3NlY3Rpb24gKnNlY3Rpb25zID0gTlVM TCwgKnNlY3Rpb25zX2VuZCA9IE5VTEw7Ci0rICAgICAgc3RydWN0IHRhcmdldF9zZWN0aW9uICpw OwotKyAgICAgIGludCBhZGRyX2JpdDsKLSsgICAgICBDT1JFX0FERFIgbWFzayA9IENPUkVfQURE Ul9NQVg7Ci0rICAgICAgQ09SRV9BRERSIGRpc3BsYWNlbWVudDsKLSAKLSAgICAgICBzY3JhdGNo X2NoYW4gPSBvcGVucCAoZ2V0ZW52ICgiUEFUSCIpLCBPUEZfVFJZX0NXRF9GSVJTVCwgZmlsZW5h bWUsCi0gCQkgICB3cml0ZV9maWxlcyA/IE9fUkRXUiB8IE9fQklOQVJZIDogT19SRE9OTFkgfCBP X0JJTkFSWSwKLUBAIC0yOTMsMTIgKzI5OCwyMyBAQCBleGVjX2ZpbGVfYXR0YWNoIChjaGFyICpm aWxlbmFtZSwgaW50IGZyCi0gCQkgc2NyYXRjaF9wYXRobmFtZSwgYmZkX2Vycm1zZyAoYmZkX2dl dF9lcnJvciAoKSkpOwotIAl9Ci0gCi0rICAgICAgc2V0X2dkYmFyY2hfZnJvbV9maWxlIChleGVj X2JmZCk7Ci0rCi0rICAgICAgYWRkcl9iaXQgPSBnZGJhcmNoX2FkZHJfYml0ICh0YXJnZXRfZ2Ri YXJjaCk7Ci0rICAgICAgaWYgKGFkZHJfYml0IDwgKHNpemVvZiAoQ09SRV9BRERSKSAqIEhPU1Rf Q0hBUl9CSVQpKQotKwltYXNrID0gKChDT1JFX0FERFIpIDEgPDwgYWRkcl9iaXQpIC0gMTsKLSsK LSsgICAgICBkaXNwbGFjZW1lbnQgPSBzb2xpYl9leGVjX2Rpc3BsYWNlbWVudCAoKTsKLSsgICAg ICBmb3IgKHAgPSBzZWN0aW9uczsgcCA8IHNlY3Rpb25zX2VuZDsgcCsrKQotKwl7Ci0rCSAgcC0+ YWRkciA9IChwLT5hZGRyICsgZGlzcGxhY2VtZW50KSAmIG1hc2s7Ci0rCSAgcC0+ZW5kYWRkciA9 IChwLT5lbmRhZGRyICsgZGlzcGxhY2VtZW50KSAmIG1hc2s7Ci0rCX0KLSsKLSAgICAgICBleGVj X2JmZF9tdGltZSA9IGJmZF9nZXRfbXRpbWUgKGV4ZWNfYmZkKTsKLSAKLSAgICAgICB2YWxpZGF0 ZV9maWxlcyAoKTsKLSAKLS0gICAgICBzZXRfZ2RiYXJjaF9mcm9tX2ZpbGUgKGV4ZWNfYmZkKTsK LS0KLSAgICAgICAvKiBBZGQgdGhlIGV4ZWN1dGFibGUncyBzZWN0aW9ucyB0byB0aGUgY3VycmVu dCBhZGRyZXNzIHNwYWNlcycKLSAJIGxpc3Qgb2Ygc2VjdGlvbnMuICBUaGlzIHBvc3NpYmx5IHB1 c2hlcyB0aGUgZXhlY19vcHMKLSAJIHRhcmdldC4gICovCi1JbmRleDogZ2RiLTcuMC41MC4yMDEw MDExNS9nZGIvZ2RidHlwZXMuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMTUu b3JpZy9nZGIvZ2RidHlwZXMuaAkyMDEwLTAxLTE1IDIxOjM1OjE2LjAwMDAwMDAwMCArMDEwMAot KysrIGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL2dkYnR5cGVzLmgJMjAxMC0wMS0xNSAyMTo0NDoy NC4wMDAwMDAwMDAgKzAxMDAKLUBAIC00MDYsNiArNDA2LDcgQEAgZW51bSB0eXBlX2luc3RhbmNl X2ZsYWdfdmFsdWUKKy0tLSBnZGItNy4wLjkwLjIwMTAwMzA2Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJ MjAxMC0wMy0wNiAyMzoyNjozNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4wLjkwLjIwMTAw MzA2L2dkYi9nZGJ0eXBlcy5oCTIwMTAtMDMtMDYgMjM6Mjg6NDMuMDAwMDAwMDAwICswMTAwCitA QCAtNDEyLDYgKzQxMiw3IEBAIGVudW0gdHlwZV9pbnN0YW5jZV9mbGFnX3ZhbHVlCiAgZW51bSBm aWVsZF9sb2Nfa2luZAogICAgewogICAgICBGSUVMRF9MT0NfS0lORF9CSVRQT1MsCS8qIGJpdHBv cyAqLwpAQCAtMTEyLDcgKzYzLDcgQEAgSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL2dk YnR5cGVzLmgKICAgICAgRklFTERfTE9DX0tJTkRfUEhZU0FERFIsCS8qIHBoeXNhZGRyICovCiAg ICAgIEZJRUxEX0xPQ19LSU5EX1BIWVNOQU1FCS8qIHBoeXNuYW1lICovCiAgICB9OwotQEAgLTU4 Miw2ICs1ODMsNyBAQCBzdHJ1Y3QgbWFpbl90eXBlCitAQCAtNTkxLDYgKzU5Miw3IEBAIHN0cnVj dCBtYWluX3R5cGUKICAJICAgaXMgdGhlIGxvY2F0aW9uIChpbiB0aGUgdGFyZ2V0KSBvZiB0aGUg c3RhdGljIGZpZWxkLgogIAkgICBPdGhlcndpc2UsIHBoeXNuYW1lIGlzIHRoZSBtYW5nbGVkIGxh YmVsIG9mIHRoZSBzdGF0aWMgZmllbGQuICovCiAgCkBAIC0xMjAsNyArNzEsNyBAQCBJbmRleDog Z2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZ2RidHlwZXMuaAogIAlDT1JFX0FERFIgcGh5c2FkZHI7 CiAgCWNoYXIgKnBoeXNuYW1lOwogICAgICAgIH0KLUBAIC0xMTAwLDYgKzExMDIsNyBAQCBleHRl cm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CitAQCAtMTA5MSw2ICsxMDkzLDcg QEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQogICNkZWZpbmUgRklF TERfTE9DX0tJTkQodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2Nfa2luZCkKICAjZGVmaW5lIEZJRUxE X0JJVFBPUyh0aGlzZmxkKSAoKHRoaXNmbGQpLmxvYy5iaXRwb3MpCiAgI2RlZmluZSBGSUVMRF9T VEFUSUNfUEhZU05BTUUodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2MucGh5c25hbWUpCkBAIC0xMjgs NyArNzksNyBAQCBJbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZ2RidHlwZXMuaAogICNk ZWZpbmUgRklFTERfU1RBVElDX1BIWVNBRERSKHRoaXNmbGQpICgodGhpc2ZsZCkubG9jLnBoeXNh ZGRyKQogICNkZWZpbmUgU0VUX0ZJRUxEX0JJVFBPUyh0aGlzZmxkLCBiaXRwb3MpCQkJXAogICAg KEZJRUxEX0xPQ19LSU5EICh0aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5EX0JJVFBPUywJCVwKLUBA IC0xMTA3LDYgKzExMTAsNyBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChz dHJ1CitAQCAtMTA5OCw2ICsxMTAxLDcgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhf dHlwZSAoc3RydQogICNkZWZpbmUgU0VUX0ZJRUxEX1BIWVNOQU1FKHRoaXNmbGQsIG5hbWUpCQkJ XAogICAgKEZJRUxEX0xPQ19LSU5EICh0aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5EX1BIWVNOQU1F LAkJXAogICAgIEZJRUxEX1NUQVRJQ19QSFlTTkFNRSAodGhpc2ZsZCkgPSAobmFtZSkpCkBAIC0x MzYsNyArODcsNyBAQCBJbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZ2RidHlwZXMuaAog ICNkZWZpbmUgU0VUX0ZJRUxEX1BIWVNBRERSKHRoaXNmbGQsIGFkZHIpCQkJXAogICAgKEZJRUxE X0xPQ19LSU5EICh0aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5EX1BIWVNBRERSLAkJXAogICAgIEZJ RUxEX1NUQVRJQ19QSFlTQUREUiAodGhpc2ZsZCkgPSAoYWRkcikpCi1AQCAtMTExOSw2ICsxMTIz LDcgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQorQEAgLTExMTAs NiArMTExNCw3IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnUKICAj ZGVmaW5lIFRZUEVfRklFTERfTE9DX0tJTkQodGhpc3R5cGUsIG4pIEZJRUxEX0xPQ19LSU5EIChU WVBFX0ZJRUxEICh0aGlzdHlwZSwgbikpCiAgI2RlZmluZSBUWVBFX0ZJRUxEX0JJVFBPUyh0aGlz dHlwZSwgbikgRklFTERfQklUUE9TIChUWVBFX0ZJRUxEICh0aGlzdHlwZSwgbikpCiAgI2RlZmlu ZSBUWVBFX0ZJRUxEX1NUQVRJQ19QSFlTTkFNRSh0aGlzdHlwZSwgbikgRklFTERfU1RBVElDX1BI WVNOQU1FIChUWVBFX0ZJRUxEICh0aGlzdHlwZSwgbikpCkBAIC0xNDQsMTAgKzk1LDEwIEBAIElu ZGV4OiBnZGItNy4wLjUwLjIwMTAwMTE1L2dkYi9nZGJ0eXBlcy5oCiAgI2RlZmluZSBUWVBFX0ZJ RUxEX1NUQVRJQ19QSFlTQUREUih0aGlzdHlwZSwgbikgRklFTERfU1RBVElDX1BIWVNBRERSIChU WVBFX0ZJRUxEICh0aGlzdHlwZSwgbikpCiAgI2RlZmluZSBUWVBFX0ZJRUxEX0FSVElGSUNJQUwo dGhpc3R5cGUsIG4pIEZJRUxEX0FSVElGSUNJQUwoVFlQRV9GSUVMRCh0aGlzdHlwZSxuKSkKICAj ZGVmaW5lIFRZUEVfRklFTERfQklUU0laRSh0aGlzdHlwZSwgbikgRklFTERfQklUU0laRShUWVBF X0ZJRUxEKHRoaXN0eXBlLG4pKQotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL2p2LWxh bmcuYworSW5kZXg6IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL2p2LWxhbmcuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMTUub3JpZy9nZGIvanYtbGFuZy5jCTIwMTAtMDEtMTUg MjE6MzU6MTMuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvanYt bGFuZy5jCTIwMTAtMDEtMTUgMjE6NDE6NTguMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMC45 MC4yMDEwMDMwNi5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxMC0wMy0wNiAyMzoxOToxMy4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi9qdi1sYW5nLmMJMjAxMC0wMy0w NiAyMzoyODo0My4wMDAwMDAwMDAgKzAxMDAKIEBAIC00MTYsNyArNDE2LDggQEAgamF2YV9saW5r X2NsYXNzX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZAogIAogICAgZmllbGRzID0gTlVMTDsKQEAg LTE2OCwxNDIgKzExOSwxMCBAQCBJbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvanYtbGFu Zy5jCiAgICAgICAgZWxzZQogIAlUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaSkgPSA4ICogYm9m ZnNldDsKICAgICAgICBpZiAoYWNjZmxhZ3MgJiAweDgwMDApCS8qIEZJRUxEX1VOUkVTT0xWRURf RkxBRyAqLwotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL3NvbGliLXN2cjQuYwotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMTUub3JpZy9nZGIvc29saWItc3ZyNC5jCTIw MTAtMDEtMTUgMjE6MzU6MTYuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDEx NS9nZGIvc29saWItc3ZyNC5jCTIwMTAtMDEtMTUgMjE6NDQ6NTUuMDAwMDAwMDAwICswMTAwCi1A QCAtMTY4OSw3ICsxNjg5LDEwIEBAIHN2cjRfZXhlY19kaXNwbGFjZW1lbnQgKHZvaWQpCi0gICBp ZiAodGFyZ2V0X2F1eHZfc2VhcmNoICgmY3VycmVudF90YXJnZXQsIEFUX0VOVFJZLCAmZW50cnlf cG9pbnQpID09IDEpCi0gICAgIHJldHVybiBlbnRyeV9wb2ludCAtIGJmZF9nZXRfc3RhcnRfYWRk cmVzcyAoZXhlY19iZmQpOwotIAotLSAgcmV0dXJuIHN2cjRfc3RhdGljX2V4ZWNfZGlzcGxhY2Vt ZW50ICgpOwotKyAgaWYgKCFwdGlkX2VxdWFsIChpbmZlcmlvcl9wdGlkLCBudWxsX3B0aWQpKQot KyAgICByZXR1cm4gc3ZyNF9zdGF0aWNfZXhlY19kaXNwbGFjZW1lbnQgKCk7Ci0rCi0rICByZXR1 cm4gMDsKLSB9Ci0gCi0gLyogUmVsb2NhdGUgdGhlIG1haW4gZXhlY3V0YWJsZS4gIFRoaXMgZnVu Y3Rpb24gc2hvdWxkIGJlIGNhbGxlZCB1cG9uCi1AQCAtMTcwMCw3ICsxNzAzLDcgQEAgc3ZyNF9l eGVjX2Rpc3BsYWNlbWVudCAodm9pZCkKLSBzdGF0aWMgdm9pZAotIHN2cjRfcmVsb2NhdGVfbWFp bl9leGVjdXRhYmxlICh2b2lkKQotIHsKLS0gIENPUkVfQUREUiBkaXNwbGFjZW1lbnQgPSBzdnI0 X2V4ZWNfZGlzcGxhY2VtZW50ICgpOwotKyAgQ09SRV9BRERSIGRpc3BsYWNlbWVudCA9IHNvbGli X2V4ZWNfZGlzcGxhY2VtZW50ICgpOwotIAotICAgLyogRXZlbiBpZiBESVNQTEFDRU1FTlQgaXMg MCBzdGlsbCB0cnkgdG8gcmVsb2NhdGUgaXQgYXMgdGhpcyBpcyBhIG5ldwotICAgICAgZGlmZmVy ZW5jZSBvZiBpbi1tZW1vcnkgdnMuIGluLWZpbGUgYWRkcmVzc2VzIGFuZCB3ZSBjb3VsZCBhbHJl YWR5Ci1AQCAtMjA1NCw2ICsyMDU3LDcgQEAgX2luaXRpYWxpemVfc3ZyNF9zb2xpYiAodm9pZCkK LSAgIHN2cjRfc29fb3BzLmZyZWVfc28gPSBzdnI0X2ZyZWVfc287Ci0gICBzdnI0X3NvX29wcy5j bGVhcl9zb2xpYiA9IHN2cjRfY2xlYXJfc29saWI7Ci0gICBzdnI0X3NvX29wcy5zb2xpYl9jcmVh dGVfaW5mZXJpb3JfaG9vayA9IHN2cjRfc29saWJfY3JlYXRlX2luZmVyaW9yX2hvb2s7Ci0rICBz dnI0X3NvX29wcy5leGVjX2Rpc3BsYWNlbWVudCA9IHN2cjRfZXhlY19kaXNwbGFjZW1lbnQ7Ci0g ICBzdnI0X3NvX29wcy5zcGVjaWFsX3N5bWJvbF9oYW5kbGluZyA9IHN2cjRfc3BlY2lhbF9zeW1i b2xfaGFuZGxpbmc7Ci0gICBzdnI0X3NvX29wcy5jdXJyZW50X3NvcyA9IHN2cjRfY3VycmVudF9z b3M7Ci0gICBzdnI0X3NvX29wcy5vcGVuX3N5bWJvbF9maWxlX29iamVjdCA9IG9wZW5fc3ltYm9s X2ZpbGVfb2JqZWN0OwotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL3NvbGliLmMKLT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTE1Lm9yaWcvZ2RiL3NvbGliLmMJMjAxMC0w MS0xNSAyMTozNToxNi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTE1L2dk Yi9zb2xpYi5jCTIwMTAtMDEtMTUgMjE6NDE6NTguMDAwMDAwMDAwICswMTAwCi1AQCAtMTAzNyw2 ICsxMDM3LDE5IEBAIHNvbGliX2NyZWF0ZV9pbmZlcmlvcl9ob29rIChpbnQgZnJvbV90dHkKLSAg IG9wcy0+c29saWJfY3JlYXRlX2luZmVyaW9yX2hvb2sgKGZyb21fdHR5KTsKLSB9Ci0gCi0rLyog UXVlcnkgdGhlIGRpZmZlcmVuY2Ugb2YgaW4tbWVtb3J5IFZNQSBhZGRyZXNzZXMgdnMuIGV4ZWNf YmZkIFZNQXMuICAqLwotKwotK0NPUkVfQUREUgotK3NvbGliX2V4ZWNfZGlzcGxhY2VtZW50ICh2 b2lkKQotK3sKLSsgIHN0cnVjdCB0YXJnZXRfc29fb3BzICpvcHMgPSBzb2xpYl9vcHMgKHRhcmdl dF9nZGJhcmNoKTsKLSsKLSsgIGlmIChvcHMtPmV4ZWNfZGlzcGxhY2VtZW50ICE9IE5VTEwpCi0r ICAgIHJldHVybiAoKm9wcy0+ZXhlY19kaXNwbGFjZW1lbnQpICgpOwotKyAgZWxzZQotKyAgICBy ZXR1cm4gMDsKLSt9Ci0rCi0gLyogR0xPQkFMIEZVTkNUSU9OCi0gCi0gICAgaW5fc29saWJfZHlu c3ltX3Jlc29sdmVfY29kZSAtLSBjaGVjayB0byBzZWUgaWYgYW4gYWRkcmVzcyBpcyBpbgotSW5k ZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL3NvbGliLmgKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4wLjUwLjIwMTAwMTE1Lm9yaWcvZ2RiL3NvbGliLmgJMjAxMC0wMS0wOCAyMzo1MjowNC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTE1L2dkYi9zb2xpYi5oCTIwMTAtMDEt MTUgMjE6NDI6MzYuMDAwMDAwMDAwICswMTAwCi1AQCAtNDQsNiArNDQsOCBAQCBleHRlcm4gaW50 IHNvbGliX3JlYWRfc3ltYm9scyAoc3RydWN0IHNvCi0gCi0gZXh0ZXJuIHZvaWQgc29saWJfY3Jl YXRlX2luZmVyaW9yX2hvb2sgKGludCBmcm9tX3R0eSk7Ci0gCi0rZXh0ZXJuIENPUkVfQUREUiBz b2xpYl9leGVjX2Rpc3BsYWNlbWVudCAodm9pZCk7Ci0rCi0gLyogSWYgQUREUiBsaWVzIGluIGEg c2hhcmVkIGxpYnJhcnksIHJldHVybiBpdHMgbmFtZS4gICovCi0gCi0gZXh0ZXJuIGNoYXIgKnNv bGliX25hbWVfZnJvbV9hZGRyZXNzIChzdHJ1Y3QgcHJvZ3JhbV9zcGFjZSAqLCBDT1JFX0FERFIp OwotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL3NvbGlzdC5oCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMC41MC4yMDEwMDExNS5vcmlnL2dkYi9zb2xpc3QuaAkyMDEwLTAxLTA4IDIzOjUy OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL3NvbGlzdC5o CTIwMTAtMDEtMTUgMjE6NDE6NTguMDAwMDAwMDAwICswMTAwCi1AQCAtOTIsNiArOTIsOSBAQCBz dHJ1Y3QgdGFyZ2V0X3NvX29wcwotICAgICAvKiBUYXJnZXQgZGVwZW5kZW50IGNvZGUgdG8gcnVu IGFmdGVyIGNoaWxkIHByb2Nlc3MgZm9yay4gICovCi0gICAgIHZvaWQgKCpzb2xpYl9jcmVhdGVf aW5mZXJpb3JfaG9vaykgKGludCBmcm9tX3R0eSk7Ci0gCi0rICAgIC8qIFF1ZXJ5IHRoZSBkaWZm ZXJlbmNlIG9mIGluLW1lbW9yeSBWTUEgYWRkcmVzc2VzIHZzLiBleGVjX2JmZCBWTUFzLiAgKi8K LSsgICAgQ09SRV9BRERSICgqZXhlY19kaXNwbGFjZW1lbnQpICh2b2lkKTsKLSsKLSAgICAgLyog RG8gYWRkaXRpb25hbCBzeW1ib2wgaGFuZGxpbmcsIGxvb2t1cCwgZXRjLiBhZnRlciBzeW1ib2xz Ci0gICAgICAgIGZvciBhIHNoYXJlZCBvYmplY3QgaGF2ZSBiZWVuIGxvYWRlZC4gICovCi0gICAg IHZvaWQgKCpzcGVjaWFsX3N5bWJvbF9oYW5kbGluZykgKHZvaWQpOwotSW5kZXg6IGdkYi03LjAu NTAuMjAxMDAxMTUvZ2RiL3N5bWZpbGUuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAx MDAxMTUub3JpZy9nZGIvc3ltZmlsZS5jCTIwMTAtMDEtMTUgMjE6MzU6MTQuMDAwMDAwMDAwICsw MTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvc3ltZmlsZS5jCTIwMTAtMDEtMTUgMjE6 NDE6NTguMDAwMDAwMDAwICswMTAwCi1AQCAtODMyLDE1ICs4MzIsMzYgQEAgc3ltc19mcm9tX29i amZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaQotICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzIGR1 cmluZyBzeW1ib2wgcmVhZGluZy4gICovCi0gICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXBfZnJl ZV9vYmpmaWxlIChvYmpmaWxlKTsKLSAKLS0gIC8qIElmIEFERFJTIGFuZCBPRkZTRVRTIGFyZSBi b3RoIE5VTEwsIHB1dCB0b2dldGhlciBhIGR1bW15IGFkZHJlc3MKLS0gICAgIGxpc3QuICBXZSBu b3cgZXN0YWJsaXNoIHRoZSBjb252ZW50aW9uIHRoYXQgYW4gYWRkciBvZiB6ZXJvIG1lYW5zCi0t ICAgICBubyBsb2FkIGFkZHJlc3Mgd2FzIHNwZWNpZmllZC4gKi8KLSsgIC8qIElmIEFERFJTIGFu ZCBPRkZTRVRTIGFyZSBib3RoIE5VTEwsIHB1dCB0b2dldGhlciBhIGR1bW15IG9mZnNldCBsaXN0 LiAgKi8KLSsKLSAgIGlmICghIGFkZHJzICYmICEgb2Zmc2V0cykKLSAgICAgewotLSAgICAgIGxv Y2FsX2FkZHIKLS0JPSBhbGxvY19zZWN0aW9uX2FkZHJfaW5mbyAoYmZkX2NvdW50X3NlY3Rpb25z IChvYmpmaWxlLT5vYmZkKSk7Ci0tICAgICAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgbG9jYWxfYWRk cik7Ci0tICAgICAgYWRkcnMgPSBsb2NhbF9hZGRyOwotKyAgICAgIC8qIFJlbG9jYXRlYmxlIGZp bGVzIGhhdmUgYW4gZXhjZXB0aW9uIGluIGRlZmF1bHRfc3ltZmlsZV9vZmZzZXRzIHdoaWNoCi0r CSBhcHBsaWVzIG9ubHkgZm9yIEFERFJTLiAgQnV0IGNhbGxpbmcgc29saWJfZXhlY19kaXNwbGFj ZW1lbnQgaXMgbW9yZQotKwkgc3VpdGFibGUgZm9yIE9GRlNFVFMuICBGb3J0dW5hdGVseSB3ZSBu ZXZlciBuZWVkIHRoZSBib3RoCi0rCSBmdW5jdGlvbmFsaXRpZXMgc2ltdWx0YW5lb3VzbHkgYW5k IGluIG90aGVyIGNhc2VzIHplcm9lZCBBRERSUyBhbmQKLSsJIHplcm9lZCBPRkZTRVRTIGFyZSBl cXVpdmFsZW50LiAgKi8KLSsKLSsgICAgICBpZiAoKGJmZF9nZXRfZmlsZV9mbGFncyAob2JqZmls ZS0+b2JmZCkgJiAoRVhFQ19QIHwgRFlOQU1JQykpID09IDApCi0rCXsKLSsJICBsb2NhbF9hZGRy Ci0rCQkgPSBhbGxvY19zZWN0aW9uX2FkZHJfaW5mbyAoYmZkX2NvdW50X3NlY3Rpb25zIChvYmpm aWxlLT5vYmZkKSk7Ci0rCSAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgbG9jYWxfYWRkcik7Ci0rCSAg YWRkcnMgPSBsb2NhbF9hZGRyOwotKwl9Ci0rICAgICAgZWxzZQotKwl7Ci0rCSAgQ09SRV9BRERS IGRpc3BsYWNlbWVudCA9IDA7Ci0rCSAgaW50IGk7Ci0rCi0rCSAgaWYgKG1haW5saW5lKQotKwkg ICAgZGlzcGxhY2VtZW50ID0gc29saWJfZXhlY19kaXNwbGFjZW1lbnQgKCk7Ci0rCi0rCSAgbnVt X29mZnNldHMgPSBiZmRfY291bnRfc2VjdGlvbnMgKG9iamZpbGUtPm9iZmQpOwotKwkgIG9mZnNl dHMgPSBhbGxvY2EgKFNJWkVPRl9OX1NFQ1RJT05fT0ZGU0VUUyAobnVtX29mZnNldHMpKTsKLSsJ ICBmb3IgKGkgPSAwOyBpIDwgbnVtX29mZnNldHM7IGkrKykKLSsJICAgIG9mZnNldHMtPm9mZnNl dHNbaV0gPSBkaXNwbGFjZW1lbnQ7Ci0rCX0KLSAgICAgfQotIAotICAgLyogTm93IGVpdGhlciBh ZGRycyBvciBvZmZzZXRzIGlzIG5vbi16ZXJvLiAgKi8KLUluZGV4OiBnZGItNy4wLjUwLjIwMTAw MTE1L2dkYi92YWx1ZS5jCitJbmRleDogZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvdmFsdWUuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMTUub3JpZy9nZGIvdmFsdWUuYwkyMDEw LTAxLTE1IDIxOjM1OjEzLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMTUv Z2RiL3ZhbHVlLmMJMjAxMC0wMS0xNSAyMTo0MTo1OC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGIt Ny4wLjkwLjIwMTAwMzA2Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxMC0wMy0wNiAyMzoxOToxMy4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi92YWx1ZS5jCTIwMTAtMDMt MDYgMjM6Mjg6NDMuMDAwMDAwMDAwICswMTAwCiBAQCAtMTg5Nyw3ICsxODk3LDggQEAgdmFsdWVf c3RhdGljX2ZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaQogICAgaWYgKFRZUEVfRklFTERfTE9D X0tJTkQgKHR5cGUsIGZpZWxkbm8pID09IEZJRUxEX0xPQ19LSU5EX1BIWVNBRERSKQogICAgICB7 CgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci12bGEtcmVmLW9wdGltaXplZG91dC5wYXRjaCBiL2dk Yi1hcmNoZXItdmxhLXJlZi1vcHRpbWl6ZWRvdXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNmI4NmJkYQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1hcmNoZXItdmxh LXJlZi1vcHRpbWl6ZWRvdXQucGF0Y2gKQEAgLTAsMCArMSwxMDUgQEAKK2NvbW1pdCBhNjgzYmFj NzNhZjc0YTc1NzU5MTY3MmQ4OWQ3MjAxNjljMGI1ZWM5CitBdXRob3I6IEphbiBLcmF0b2Nodmls IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorRGF0ZTogICBUaHUgTWF5IDEzIDE4OjA4OjMw IDIwMTAgKzAyMDAKKworICAgIFN1cHBvcnQgRFdfQVRfdXBwZXJfYm91bmQgaXMgcmVmZXJlbmNp bmcgYW4gb3B0aW1pemVkLW91dCB2YXJpYWJsZS4KKyAgICBodHRwczovL2J1Z3ppbGxhLnJlZGhh dC5jb20vc2hvd19idWcuY2dpP2lkPTU5MTg3OQorCistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysr KyBiL2dkYi9kd2FyZjJsb2MuYworQEAgLTM4Myw2ICszODMsOSBAQCBkd2FyZl9sb2NsaXN0X2Jh dG9uX2V2YWwgKHN0cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbiAqZGxsYmF0b24sCisgICBzaXpl X3Qgc2l6ZTsKKyAgIHN0cnVjdCB2YWx1ZSAqdmFsOworIAorKyAgaWYgKCFkbGxiYXRvbikKKysg ICAgcmV0dXJuIDA7CisrCisgICBkYXRhID0gZmluZF9sb2NhdGlvbl9leHByZXNzaW9uIChkbGxi YXRvbiwgJnNpemUsCisgCQkJCSAgIGdldF9mcmFtZV9hZGRyZXNzX2luX2Jsb2NrIChmcmFtZSkp OworICAgaWYgKGRhdGEgPT0gTlVMTCkKKy0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKKysrKyBiL2dk Yi9kd2FyZjJyZWFkLmMKK0BAIC0xMTY5Myw2ICsxMTY5MywxMSBAQCBkd2FyZjJfYXR0cl90b19s b2NsaXN0X2JhdG9uIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKKyB7CisgICBzdHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0b24gKmJhdG9uOworIAorKyAgLyog RFdfQVRfbG9jYXRpb24gb2YgdGhlIHJlZmVyZW5jZWQgRElFIG1heSBiZSBtaXNzaW5nIGlmIHRo ZSByZWZlcmVuY2VkCisrICAgICB2YXJpYWJsZSBoYXMgYmVlbiBvcHRpbWl6ZWQgb3V0LiAgKi8K KysgIGlmICghYXR0cikKKysgICAgcmV0dXJuIE5VTEw7CisrCisgICBpZiAoIShhdHRyX2Zvcm1f aXNfc2VjdGlvbl9vZmZzZXQgKGF0dHIpCisgCS8qICIuZGVidWdfbG9jIiBtYXkgbm90IGV4aXN0 IGF0IGFsbCwgb3IgdGhlIG9mZnNldCBtYXkgYmUgb3V0c2lkZQorIAkgICB0aGUgc2VjdGlvbi4g IElmIHNvLCBmYWxsIHRocm91Z2ggdG8gdGhlIGNvbXBsYWludCBpbiB0aGUKKy0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCisrKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUworQEAgLTUxLDYgKzUxLDE3IEBAIHZh cmRhdGE6CisgCS40Ynl0ZQkJLkxsZW5fdmFyLS5MY3UxX2JlZ2luCS8qIERXX0FUX3VwcGVyX2Jv dW5kICovCisgCS5ieXRlCQkwCQkJLyogRW5kIG9mIGNoaWxkcmVuIG9mIGRpZSAqLworIAorKwkv KiBEV19BVF91cHBlcl9ib3VuZCBpcyByZWZlcmVuY2luZyBhbiBvcHRpbWl6ZWQtb3V0IHZhcmlh YmxlLiAgKi8KKysuTGFycmF5Yl90eXBlOgorKwkudWxlYjEyOAkyCQkJLyogQWJicmV2OiBEV19U QUdfYXJyYXlfdHlwZSAqLworKwkuNGJ5dGUJCS5MY2hhcl90eXBlLS5MY3UxX2JlZ2luCS8qIERX X0FUX3R5cGUgKi8KKysKKysJLnVsZWIxMjgJMwkJCS8qIEFiYnJldjogRFdfVEFHX3N1YnJhbmdl X3R5cGUgKi8KKysJLjRieXRlCQkuTHVpbnRfdHlwZS0uTGN1MV9iZWdpbgkvKiBEV19BVF90eXBl ICovCisrCS5ieXRlCQkwCQkJLyogRFdfQVRfbG93ZXJfYm91bmQgKi8KKysJLjRieXRlCQkuTGxl bmJfdmFyLS5MY3UxX2JlZ2luCS8qIERXX0FUX3VwcGVyX2JvdW5kICovCisrCS5ieXRlCQkwCQkJ LyogRW5kIG9mIGNoaWxkcmVuIG9mIGRpZSAqLworKworIC5MdWludF90eXBlOgorIAkudWxlYjEy OAk0CQkJLyogQWJicmV2OiBEV19UQUdfYmFzZV90eXBlICovCisgCS40Ynl0ZQkJLkx1aW50X3N0 cgkJLyogRFdfQVRfbmFtZSAqLworQEAgLTY5LDkgKzgwLDI0IEBAIHZhcmRhdGE6CisgCS40Ynl0 ZQkJLkx1aW50X3R5cGUtLkxjdTFfYmVnaW4JLyogRFdfQVRfdHlwZSAqLworIAkuNGJ5dGUJCS5M bGVuX2xvY2xpc3QtLkxsb2NsaXN0CS8qIERXX0FUX2xvY2F0aW9uICovCisgCisrCS8qIG9wdGlt aXplZC1vdXQgdmFyaWFibGUgZm9yIGJfc3RyaW5nLiAgKi8KKysuTGxlbmJfdmFyOgorKwkudWxl YjEyOAk3CQkJLyogQWJicmV2OiBEV19UQUdfdmFyaWFibGUgYXJ0aWZpY2lhbCBubyBEV19BVF9s b2NhdGlvbiAqLworKwkuYnl0ZQkJMQkJCS8qIERXX0FUX2FydGlmaWNpYWwgKi8KKysJLjRieXRl CQkuTHVpbnRfdHlwZS0uTGN1MV9iZWdpbgkvKiBEV19BVF90eXBlICovCisrCisgCS51bGViMTI4 CTYJCQkvKiBBYmJyZXY6IERXX1RBR192YXJpYWJsZSBEV19GT1JNX3N0cmluZyAqLworIAkuc3Ry aW5nCQkiYV9zdHJpbmciCQkvKiBEV19BVF9uYW1lICovCistCS40Ynl0ZQkJLkxhcnJheV90eXBl LS5MY3UxX2JlZ2luLyogRFdfQVRfdHlwZSAqLworKwkuNGJ5dGUJCS5MYXJyYXlfdHlwZS0uTGN1 MV9iZWdpbiAvKiBEV19BVF90eXBlICovCisrCS5ieXRlCQkyZiAtIDFmCQkJLyogRFdfQVRfbG9j YXRpb24gKi8KKysxOgkuYnl0ZQkJMwkJCS8qICAgRFdfT1BfYWRkciAqLworKwkuNGJ5dGUJCXZh cmRhdGEJCQkvKiAgIDxhZGRyPiAqLworKzI6CisrCisrCS8qIERXX0FUX3VwcGVyX2JvdW5kIGlz IHJlZmVyZW5jaW5nIGFuIG9wdGltaXplZC1vdXQgdmFyaWFibGUuICAqLworKwkudWxlYjEyOAk2 CQkJLyogQWJicmV2OiBEV19UQUdfdmFyaWFibGUgRFdfRk9STV9zdHJpbmcgKi8KKysJLnN0cmlu ZwkJImJfc3RyaW5nIgkJLyogRFdfQVRfbmFtZSAqLworKwkuNGJ5dGUJCS5MYXJyYXliX3R5cGUt LkxjdTFfYmVnaW4gLyogRFdfQVRfdHlwZSAqLworIAkuYnl0ZQkJMmYgLSAxZgkJCS8qIERXX0FU X2xvY2F0aW9uICovCisgMToJLmJ5dGUJCTMJCQkvKiAgIERXX09QX2FkZHIgKi8KKyAJLjRieXRl CQl2YXJkYXRhCQkJLyogICA8YWRkcj4gKi8KK0BAIC0xNjQsNiArMTkwLDE2IEBAIHZhcmRhdGE6 CisgCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisgCS5ieXRlCQkweDAJCQkvKiBUZXJt aW5hdG9yICovCisgCisrCS51bGViMTI4CTcJCQkvKiBBYmJyZXYgY29kZSAqLworKwkudWxlYjEy OAkweDM0CQkJLyogRFdfVEFHX3ZhcmlhYmxlICovCisrCS5ieXRlCQkweDAJCQkvKiBub19jaGls ZHJlbiAqLworKwkudWxlYjEyOAkweDM0CQkJLyogRFdfQVRfYXJ0aWZpY2lhbCAqLworKwkudWxl YjEyOAkweDBjCQkJLyogRFdfRk9STV9mbGFnICovCisrCS51bGViMTI4CTB4NDkJCQkvKiBEV19B VF90eXBlICovCisrCS51bGViMTI4CTB4MTMJCQkvKiBEV19GT1JNX3JlZjQgKi8KKysJLmJ5dGUJ CTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKysJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8K KysKKyAJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKyAKKyAvKiBTdHJpbmcgdGFibGUg Ki8KKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAK KysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAKK0BA IC00NiwzICs0Niw2IEBAIGlmICFbcnVudG8gIiptYWluIl0geworIAorIGdkYl90ZXN0ICJwIGFf c3RyaW5nIiB7ID0gInNlZW4ifQorIGdkYl90ZXN0ICJwdHlwZSBhX3N0cmluZyIge3R5cGUgPSBj aGFyIFxbNFxdfQorKworK2dkYl90ZXN0ICJwIGJfc3RyaW5nIiB7ID0gKDB4WzAtOWEtZl0rICk/ InNlZW5ub3RzZWVuIn0KKytnZGJfdGVzdCAicHR5cGUgYl9zdHJpbmciIHt0eXBlID0gY2hhciBc W1xdfQoKZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItdmxhLXRlc3Qtb29tLnBhdGNoIGIvZ2RiLWFy Y2hlci12bGEtdGVzdC1vb20ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZGFkNWNhNAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1hcmNoZXItdmxhLXRlc3Qtb29tLnBh dGNoCkBAIC0wLDAgKzEsMjEgQEAKK2NvbW1pdCBlYzVhNzc2OWQ1YzA1NTQyZDEyZmMyMWFmYTI1 ZjMyMzYwZGI3ZGU0CitBdXRob3I6IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPgorRGF0ZTogICBXZWQgTWF5IDEyIDIyOjAwOjQ2IDIwMTAgKzAyMDAKKworICAgIEZp eCBtYl9yZXNlcnZlOgorICAgIAlodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcu Y2dpP2lkPTU5MDYzNQorCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEt b3ZlcmZsb3cuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCitp bmRleCA3MjAzYTQ4Li4yNGE2MDhmIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS92bGEtb3ZlcmZsb3cuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVy Zmxvdy5leHAKK0BAIC02Niw3ICs2Niw4IEBAIHByb2MgbWVtb3J5X3ZfcGFnZXNfZ2V0IHt9IHsK KyAKKyBzZXQgcGFnZXNfZm91bmQgW21lbW9yeV92X3BhZ2VzX2dldF0KKyAKKy1zZXQgbWJfcmVz ZXJ2ZSAxMAorKyMgczM5MHggd2l0aCBnbGliYy1kZWJ1Z2luZm8uczM5MHggaW5zdGFsbGVkIHVz ZWQgYXBwcm94LiAxNk1CLgorK3NldCBtYl9yZXNlcnZlIDQwCisgdmVyYm9zZSAtbG9nICJwYWdl c19mb3VuZCA9ICRwYWdlc19mb3VuZCwgbWJfcmVzZXJ2ZSA9ICRtYl9yZXNlcnZlIgorIHNldCBr Yl9mb3VuZCBbZXhwciAkcGFnZXNfZm91bmQgKiAkcGFnZXNpemUgLyAxMDI0XQorIHNldCBrYl9w ZXJtaXQgW2V4cHIgJGtiX2ZvdW5kICsgMSAqIDEwMjQgKyAkbWJfcmVzZXJ2ZSAqIDEwMjRdCgpk aWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXggM2Vj NThjMy4uYzliNWM5YiAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGItYXJj aGVyLnBhdGNoCkBAIC0yLDE3ICsyLDE3IEBAIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lr aS9Qcm9qZWN0QXJjaGVyCiBodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvQXJjaGVyQnJh bmNoTWFuYWdlbWVudAogCiBHSVQgc25hcHNob3Q6Ci1jb21taXQgMjg1Y2Y2MThkOWI5MGI3Zjhm MjAxZjA5NGJjZmVhZDNjOWJhODkyNQorY29tbWl0IDM5OTk4YzQ5Njk4OGZhYWExNTA5Y2M2YWI3 NmI1YzQ3Nzc2NTliZjQKIAogYnJhbmNoIGBhcmNoZXInIC0gdGhlIG1lcmdlIG9mIGJyYW5jaGVz OgotYXJjaGVyLXRyb21leS1kZWxheWVkLXN5bWZpbGUKK2FyY2hlci10cm9tZXktZGVsYXllZC1z eW1maWxlMgogYXJjaGVyLXRyb21leS1weXRob24KLWFyY2hlci1wbXVsZG9vbi1uZXh0LW92ZXIt dGhyb3cKLWFyY2hlci1qYW5rcmF0b2NodmlsLWZvcnRyYW4tbW9kdWxlCi1hcmNoZXItamFua3Jh dG9jaHZpbC13YXRjaHBvaW50CithcmNoZXItcG11bGRvb24tbmV4dC1vdmVyLXRocm93MgorYXJj aGVyLWphbmtyYXRvY2h2aWwtZm9ydHJhbi1tb2R1bGUyCithcmNoZXItamFua3JhdG9jaHZpbC13 YXRjaHBvaW50MgogYXJjaGVyLWphbmtyYXRvY2h2aWwtdmxhCiBhcmNoZXIta2VpdGhzLWV4cHIt Y3VtdWxhdGl2ZQotYXJjaGVyLWphbmtyYXRvY2h2aWwtaWZ1bmMKKyMgcGx1cyBvbGRlciBhcmNo ZXItamFua3JhdG9jaHZpbC1pZnVuYwogCiAKIGRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4g Yi9nZGIvTWFrZWZpbGUuaW4KQEAgLTE5MCw3ICsxOTAsNyBAQCBpbmRleCA5OGY0MmI5Li5kYmY4 MjczIDEwMDY0NAogICMgRGVwZW5kZW5jeSB0cmFja2luZy4gIE1vc3Qgb2YgdGhpcyBpcyBjb25k aXRpb25hbCBvbiBHTlUgTWFrZSBiZWluZwogICMgZm91bmQgYnkgY29uZmlndXJlOyBpZiBHTlUg TWFrZSBpcyBub3QgZm91bmQsIHdlIGZhbGwgYmFjayB0byBhCiBkaWZmIC0tZ2l0IGEvZ2RiL2Fk YS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwotaW5kZXggNDBiNzBhYi4uYjI5MWQ0MCAxMDA2NDQK K2luZGV4IDdhMmQyY2EuLjRiZjRlMzEgMTAwNjQ0CiAtLS0gYS9nZGIvYWRhLWxhbmcuYwogKysr IGIvZ2RiL2FkYS1sYW5nLmMKIEBAIC00NzgxLDE0ICs0NzgxLDEwIEBAIGFkYV9sb29rdXBfc3lt Ym9sIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrMCwKQEAgLTIw OSw3ICsyMDksNyBAQCBpbmRleCA0MGI3MGFiLi5iMjkxZDQwIDEwMDY0NAogIH0KICAKICAKLUBA IC0xMDkzMSw2ICsxMDkyNyw0MCBAQCBhZGFfb3BlcmF0b3JfbGVuZ3RoIChzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLCBpbnQgcGMsIGludCAqb3BsZW5wLCBpbnQgKmFyZ3NwKQorQEAgLTEwOTM4LDYg KzEwOTM0LDQwIEBAIGFkYV9vcGVyYXRvcl9sZW5ndGggKHN0cnVjdCBleHByZXNzaW9uICpleHAs IGludCBwYywgaW50ICpvcGxlbnAsIGludCAqYXJnc3ApCiAgICAgIH0KICB9CiAgCkBAIC0yNTAs NyArMjUwLDcgQEAgaW5kZXggNDBiNzBhYi4uYjI5MWQ0MCAxMDA2NDQKICBzdGF0aWMgY2hhciAq CiAgYWRhX29wX25hbWUgKGVudW0gZXhwX29wY29kZSBvcGNvZGUpCiAgewotQEAgLTExMzE5LDYg KzExMzQ5LDcgQEAgcGFyc2UgKHZvaWQpCitAQCAtMTEzMjYsNiArMTEzNTYsNyBAQCBwYXJzZSAo dm9pZCkKICBzdGF0aWMgY29uc3Qgc3RydWN0IGV4cF9kZXNjcmlwdG9yIGFkYV9leHBfZGVzY3Jp cHRvciA9IHsKICAgIGFkYV9wcmludF9zdWJleHAsCiAgICBhZGFfb3BlcmF0b3JfbGVuZ3RoLApA QCAtMzE0LDcgKzMxNCw3IEBAIGluZGV4IDVjOWU1NTguLjU1YTE4NzMgMTAwNjQ0CiAgCiAgICAv KiBPdmVycmlkZSB0aGUgR05VL0xpbnV4IGluZmVyaW9yIHN0YXJ0dXAgaG9vay4gICovCiBkaWZm IC0tZ2l0IGEvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYyBiL2dkYi9hbWQ2NC1saW51eC10ZGVwLmMK LWluZGV4IDAxY2MxY2UuLjJhMGZhODQgMTAwNjQ0CitpbmRleCBjMjhlZWY3Li4wMmMxMWUxIDEw MDY0NAogLS0tIGEvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwogKysrIGIvZ2RiL2FtZDY0LWxpbnV4 LXRkZXAuYwogQEAgLTE0ODEsNiArMTQ4MSw5IEBAIGFtZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1 Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQpAQCAtMzQyLDEw ICszNDIsMTAgQEAgaW5kZXggYWY0MDlmNi4uNDA2YzA2NiAxMDA2NDQKICAKICAvKiBQcm92aWRl IGEgcHJvdG90eXBlIHRvIHNpbGVuY2UgLVdtaXNzaW5nLXByb3RvdHlwZXMuICAqLwogZGlmZiAt LWdpdCBhL2dkYi9heC1nZGIuYyBiL2dkYi9heC1nZGIuYwotaW5kZXggNTc3NmJiMC4uNjA5OWU5 OSAxMDA2NDQKK2luZGV4IDNlMTUxZGUuLmRkYmNiNmUgMTAwNjQ0CiAtLS0gYS9nZGIvYXgtZ2Ri LmMKICsrKyBiL2dkYi9heC1nZGIuYwotQEAgLTE4MTAsNyArMTgxMCw3IEBAIGdlbl9leHByIChz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCB1bmlvbiBleHBfZWxlbWVudCAqKnBjLAorQEAgLTE4MTIs NyArMTgxMiw3IEBAIGdlbl9leHByIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCB1bmlvbiBleHBf ZWxlbWVudCAqKnBjLAogIAogIAkvKiBDYWxsaW5nIGxvb2t1cF9ibG9ja19zeW1ib2wgaXMgbmVj ZXNzYXJ5IHRvIGdldCB0aGUgTE9DX1JFR0lTVEVSCiAgCSAgIHN5bWJvbCBpbnN0ZWFkIG9mIHRo ZSBMT0NfQVJHIG9uZSAoaWYgYm90aCBleGlzdCkuICAqLwpAQCAtNDMyLDcgKzQzMiw3IEBAIGlu ZGV4IDdlZWRiNmMuLmIxNDc4MjYgMTAwNjQ0CiArCiAgI2VuZGlmIC8qIEJMT0NLX0ggKi8KIGRp ZmYgLS1naXQgYS9nZGIvYnJlYWtwb2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQuYwotaW5kZXggMGQ1 NTg2Mi4uOTI1OGM2YSAxMDA2NDQKK2luZGV4IDhjOTc5NDkuLjBiNjY3NDAgMTAwNjQ0CiAtLS0g YS9nZGIvYnJlYWtwb2ludC5jCiArKysgYi9nZGIvYnJlYWtwb2ludC5jCiBAQCAtNjEsNiArNjEs NyBAQApAQCAtNzg4LDcgKzc4OCw3IEBAIGluZGV4IDBkNTU4NjIuLjkyNThjNmEgMTAwNjQ0CiAg ICAgICAgY2FzZSBicF90cmFjZXBvaW50OgogICAgICAgIGNhc2UgYnBfZmFzdF90cmFjZXBvaW50 OgogICAgICAgIGNhc2UgYnBfaml0X2V2ZW50OgotQEAgLTQ4MTgsNiArNDkwNiw4IEBAIGFsbG9j YXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQorQEAgLTQ4MTYsNiArNDkw NCw4IEBAIGFsbG9jYXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQogICAg ICBjYXNlIGJwX2ZpbmlzaDoKICAgICAgY2FzZSBicF9sb25nam1wOgogICAgICBjYXNlIGJwX2xv bmdqbXBfcmVzdW1lOgpAQCAtNzk3LDcgKzc5Nyw3IEBAIGluZGV4IDBkNTU4NjIuLjkyNThjNmEg MTAwNjQ0CiAgICAgIGNhc2UgYnBfc3RlcF9yZXN1bWU6CiAgICAgIGNhc2UgYnBfd2F0Y2hwb2lu dF9zY29wZToKICAgICAgY2FzZSBicF9jYWxsX2R1bW15OgotQEAgLTQ4MjYsNiArNDkxNiw3IEBA IGFsbG9jYXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQorQEAgLTQ4MjQs NiArNDkxNCw3IEBAIGFsbG9jYXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0 KQogICAgICBjYXNlIGJwX292ZXJsYXlfZXZlbnQ6CiAgICAgIGNhc2UgYnBfaml0X2V2ZW50Ogog ICAgICBjYXNlIGJwX2xvbmdqbXBfbWFzdGVyOgpAQCAtODU1LDcgKzg1NSw3IEBAIGluZGV4IDBk NTU4NjIuLjkyNThjNmEgMTAwNjQ0CiAgCWJyZWFrOwogICAgICAgIH0KICAKLUBAIC03NTA4LDYg Kzc2MDIsNyBAQCBzdHJ1Y3QgdW50aWxfYnJlYWtfY29tbWFuZF9jb250aW51YXRpb25fYXJncwor QEAgLTc1MDksNiArNzYwMyw3IEBAIHN0cnVjdCB1bnRpbF9icmVha19jb21tYW5kX2NvbnRpbnVh dGlvbl9hcmdzCiAgewogICAgc3RydWN0IGJyZWFrcG9pbnQgKmJyZWFrcG9pbnQ7CiAgICBzdHJ1 Y3QgYnJlYWtwb2ludCAqYnJlYWtwb2ludDI7CkBAIC04NjMsNyArODYzLDcgQEAgaW5kZXggMGQ1 NTg2Mi4uOTI1OGM2YSAxMDA2NDQKICB9OwogIAogIC8qIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk IGJ5IGZldGNoX2luZmVyaW9yX2V2ZW50IHZpYSB0aGUKLUBAIC03NTIyLDYgKzc2MTcsNyBAQCB1 bnRpbF9icmVha19jb21tYW5kX2NvbnRpbnVhdGlvbiAodm9pZCAqYXJnKQorQEAgLTc1MjMsNiAr NzYxOCw3IEBAIHVudGlsX2JyZWFrX2NvbW1hbmRfY29udGludWF0aW9uICh2b2lkICphcmcpCiAg ICBkZWxldGVfYnJlYWtwb2ludCAoYS0+YnJlYWtwb2ludCk7CiAgICBpZiAoYS0+YnJlYWtwb2lu dDIpCiAgICAgIGRlbGV0ZV9icmVha3BvaW50IChhLT5icmVha3BvaW50Mik7CkBAIC04NzEsNyAr ODcxLDcgQEAgaW5kZXggMGQ1NTg2Mi4uOTI1OGM2YSAxMDA2NDQKICB9CiAgCiAgdm9pZAotQEAg LTc1MzMsNiArNzYyOSw4IEBAIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZy b21fdHR5LCBpbnQgYW55d2hlcmUpCitAQCAtNzUzNCw2ICs3NjMwLDggQEAgdW50aWxfYnJlYWtf Y29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKICAgIHN0cnVj dCBicmVha3BvaW50ICpicmVha3BvaW50OwogICAgc3RydWN0IGJyZWFrcG9pbnQgKmJyZWFrcG9p bnQyID0gTlVMTDsKICAgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW47CkBAIC04ODAsNyArODgw LDcgQEAgaW5kZXggMGQ1NTg2Mi4uOTI1OGM2YSAxMDA2NDQKICAKICAgIGNsZWFyX3Byb2NlZWRf c3RhdHVzICgpOwogIAotQEAgLTc1NzEsNiArNzY2OSw5IEBAIHVudGlsX2JyZWFrX2NvbW1hbmQg KGNoYXIgKmFyZywgaW50IGZyb21fdHR5LCBpbnQgYW55d2hlcmUpCitAQCAtNzU3Miw2ICs3Njcw LDkgQEAgdW50aWxfYnJlYWtfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBh bnl3aGVyZSkKICAKICAgIG9sZF9jaGFpbiA9IG1ha2VfY2xlYW51cF9kZWxldGVfYnJlYWtwb2lu dCAoYnJlYWtwb2ludCk7CiAgCkBAIC04OTAsNyArODkwLDcgQEAgaW5kZXggMGQ1NTg2Mi4uOTI1 OGM2YSAxMDA2NDQKICAgIC8qIEtlZXAgd2l0aGluIHRoZSBjdXJyZW50IGZyYW1lLCBvciBpbiBm cmFtZXMgY2FsbGVkIGJ5IHRoZSBjdXJyZW50CiAgICAgICBvbmUuICAqLwogIAotQEAgLTc1ODMs NiArNzY4NCwxMCBAQCB1bnRpbF9icmVha19jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0 eSwgaW50IGFueXdoZXJlKQorQEAgLTc1ODQsNiArNzY4NSwxMCBAQCB1bnRpbF9icmVha19jb21t YW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSwgaW50IGFueXdoZXJlKQogIAkJCQkJICAgICAg ZnJhbWVfdW53aW5kX2NhbGxlcl9pZCAoZnJhbWUpLAogIAkJCQkJICAgICAgYnBfdW50aWwpOwog ICAgICAgIG1ha2VfY2xlYW51cF9kZWxldGVfYnJlYWtwb2ludCAoYnJlYWtwb2ludDIpOwpAQCAt OTAxLDcgKzkwMSw3IEBAIGluZGV4IDBkNTU4NjIuLjkyNThjNmEgMTAwNjQ0CiAgICAgIH0KICAK ICAgIHByb2NlZWQgKC0xLCBUQVJHRVRfU0lHTkFMX0RFRkFVTFQsIDApOwotQEAgLTc1OTksNiAr NzcwNCw3IEBAIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5LCBp bnQgYW55d2hlcmUpCitAQCAtNzYwMCw2ICs3NzA1LDcgQEAgdW50aWxfYnJlYWtfY29tbWFuZCAo Y2hhciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKICAKICAgICAgICBhcmdzLT5i cmVha3BvaW50ID0gYnJlYWtwb2ludDsKICAgICAgICBhcmdzLT5icmVha3BvaW50MiA9IGJyZWFr cG9pbnQyOwpAQCAtOTA5LDcgKzkwOSw3IEBAIGluZGV4IDBkNTU4NjIuLjkyNThjNmEgMTAwNjQ0 CiAgCiAgICAgICAgZGlzY2FyZF9jbGVhbnVwcyAob2xkX2NoYWluKTsKICAgICAgICBhZGRfY29u dGludWF0aW9uIChpbmZlcmlvcl90aHJlYWQgKCksCi1AQCAtODc4NCw2ICs4ODkwLDcgQEAgZGVs ZXRlX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQorQEAgLTg3OTYsNiArODkwMiw3 IEBAIGRlbGV0ZV9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICAJICAgICYmIGIt PnR5cGUgIT0gYnBfdGhyZWFkX2V2ZW50CiAgCSAgICAmJiBiLT50eXBlICE9IGJwX292ZXJsYXlf ZXZlbnQKICAJICAgICYmIGItPnR5cGUgIT0gYnBfbG9uZ2ptcF9tYXN0ZXIKQEAgLTkxNyw3ICs5 MTcsNyBAQCBpbmRleCAwZDU1ODYyLi45MjU4YzZhIDEwMDY0NAogIAkgICAgJiYgYi0+bnVtYmVy ID49IDApCiAgCSAgewogIAkgICAgYnJlYWtzX3RvX2RlbGV0ZSA9IDE7Ci1AQCAtODgwMyw2ICs4 OTEwLDcgQEAgZGVsZXRlX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQorQEAgLTg4 MTUsNiArODkyMiw3IEBAIGRlbGV0ZV9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkK ICAJCSYmIGItPnR5cGUgIT0gYnBfaml0X2V2ZW50CiAgCQkmJiBiLT50eXBlICE9IGJwX292ZXJs YXlfZXZlbnQKICAJCSYmIGItPnR5cGUgIT0gYnBfbG9uZ2ptcF9tYXN0ZXIKQEAgLTkyNSw3ICs5 MjUsNyBAQCBpbmRleCAwZDU1ODYyLi45MjU4YzZhIDEwMDY0NAogIAkJJiYgYi0+bnVtYmVyID49 IDApCiAgCSAgICAgIGRlbGV0ZV9icmVha3BvaW50IChiKTsKICAJICB9Ci1AQCAtOTExMyw2ICs5 MjIxLDcgQEAgYnJlYWtwb2ludF9yZV9zZXRfb25lICh2b2lkICpiaW50KQorQEAgLTkxMjUsNiAr OTIzMyw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKICAJIHJlc2V0IGxh dGVyIGJ5IGJyZWFrcG9pbnRfcmVfc2V0LiAgKi8KICAgICAgY2FzZSBicF9vdmVybGF5X2V2ZW50 OgogICAgICBjYXNlIGJwX2xvbmdqbXBfbWFzdGVyOgpAQCAtOTMzLDcgKzkzMyw3IEBAIGluZGV4 IDBkNTU4NjIuLjkyNThjNmEgMTAwNjQ0CiAgICAgICAgZGVsZXRlX2JyZWFrcG9pbnQgKGIpOwog ICAgICAgIGJyZWFrOwogIAotQEAgLTkxMzUsNiArOTI0NCw4IEBAIGJyZWFrcG9pbnRfcmVfc2V0 X29uZSAodm9pZCAqYmludCkKK0BAIC05MTQ3LDYgKzkyNTYsOCBAQCBicmVha3BvaW50X3JlX3Nl dF9vbmUgKHZvaWQgKmJpbnQpCiAgICAgIGNhc2UgYnBfc3RlcF9yZXN1bWU6CiAgICAgIGNhc2Ug YnBfbG9uZ2ptcDoKICAgICAgY2FzZSBicF9sb25nam1wX3Jlc3VtZToKQEAgLTk0Miw3ICs5NDIs NyBAQCBpbmRleCAwZDU1ODYyLi45MjU4YzZhIDEwMDY0NAogICAgICBjYXNlIGJwX2ppdF9ldmVu dDoKICAgICAgICBicmVhazsKICAgICAgfQotQEAgLTkxNzcsNiArOTI4OCw3IEBAIGJyZWFrcG9p bnRfcmVfc2V0ICh2b2lkKQorQEAgLTkxODksNiArOTMwMCw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0 ICh2b2lkKQogICAgY3JlYXRlX2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJfbG9uZ2ptcCIp OwogICAgY3JlYXRlX2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJzaWdsb25nam1wIik7CiAg ICBjcmVhdGVfbG9uZ2ptcF9tYXN0ZXJfYnJlYWtwb2ludCAoIl9zaWdsb25nam1wIik7CkBAIC05 NTAsNyArOTUwLDcgQEAgaW5kZXggMGQ1NTg2Mi4uOTI1OGM2YSAxMDA2NDQKICB9CiAgDAogIC8q IFJlc2V0IHRoZSB0aHJlYWQgbnVtYmVyIG9mIHRoaXMgYnJlYWtwb2ludDoKLUBAIC0xMDE3Miw2 ICsxMDI4NCwyMiBAQCBhbGxfdHJhY2Vwb2ludHMgKCkKK0BAIC0xMDE4Nyw2ICsxMDI5OSwyMiBA QCBhbGxfdHJhY2Vwb2ludHMgKCkKICAgIHJldHVybiB0cF92ZWM7CiAgfQogIApAQCAtOTczLDcg Kzk3Myw3IEBAIGluZGV4IDBkNTU4NjIuLjkyNThjNmEgMTAwNjQ0CiAgDAogIC8qIFRoaXMgaGVs cCBzdHJpbmcgaXMgdXNlZCBmb3IgdGhlIGJyZWFrLCBoYnJlYWssIHRicmVhayBhbmQgdGhicmVh ayBjb21tYW5kcy4KICAgICBJdCBpcyBkZWZpbmVkIGFzIGEgbWFjcm8gdG8gcHJldmVudCBkdXBs aWNhdGlvbi4KLUBAIC0xMDcxNiw0ICsxMDg0NCw1IEBAIGluZmVyaW9yIGluIGFsbC1zdG9wIG1v ZGUsIGdkYiBiZWhhdmVzIGFzIGlmIGFsd2F5cy1pbnNlcnRlZCBtb2RlIGlzIG9mZi4iKSwKK0BA IC0xMDczMSw0ICsxMDg1OSw1IEBAIGluZmVyaW9yIGluIGFsbC1zdG9wIG1vZGUsIGdkYiBiZWhh dmVzIGFzIGlmIGFsd2F5cy1pbnNlcnRlZCBtb2RlIGlzIG9mZi4iKSwKICAgIGF1dG9tYXRpY19o YXJkd2FyZV9icmVha3BvaW50cyA9IDE7CiAgCiAgICBvYnNlcnZlcl9hdHRhY2hfYWJvdXRfdG9f cHJvY2VlZCAoYnJlYWtwb2ludF9hYm91dF90b19wcm9jZWVkKTsKQEAgLTEwMjksMTAgKzEwMjks NDkgQEAgaW5kZXggNmIzNzNhMy4uNTlhYTQxMiAxMDA2NDQKICBleHRlcm4gc3RydWN0IGJyZWFr cG9pbnQgKmdldF90cmFjZXBvaW50IChpbnQgbnVtKTsKICAKIGRpZmYgLS1naXQgYS9nZGIvYy1l eHAueSBiL2dkYi9jLWV4cC55Ci1pbmRleCA4ZTAwOTc5Li5iODZmYzhlIDEwMDY0NAoraW5kZXgg ODQ1NzcxYy4uN2E3NGQ3ZSAxMDA2NDQKIC0tLSBhL2dkYi9jLWV4cC55CiArKysgYi9nZGIvYy1l eHAueQotQEAgLTQxOCw2ICs0MTgsMjQgQEAgZXhwICAgICA6ICAgICAgIGV4cCAnKCcgbm9uZW1w dHlfdHlwZWxpc3QgJyknIGNvbnN0X29yX3ZvbGF0aWxlCitAQCAtMTg2LDYgKzE4Niw3IEBAIHN0 YXRpYyBzdHJ1Y3Qgc3Rva2VuIG9wZXJhdG9yX3N0b2tlbiAoY29uc3QgY2hhciAqKTsKKyAldG9r ZW4gPHRzdmFsPiBTVFJJTkcKKyAldG9rZW4gPHRzdmFsPiBDSEFSCisgJXRva2VuIDxzc3ltPiBO QU1FIC8qIEJMT0NLTkFNRSBkZWZpbmVkIGJlbG93IHRvIGdpdmUgaXQgaGlnaGVyIHByZWNlZGVu Y2UuICovCisrJXRva2VuIDxzc3ltPiBVTktOT1dOX0NQUF9OQU1FCisgJXRva2VuIDx2b2lkdmFs PiBDT01QTEVURQorICV0b2tlbiA8dHN5bT4gVFlQRU5BTUUKKyAldHlwZSA8c3ZhbD4gbmFtZQor QEAgLTM5MSw2ICszOTIsMzAgQEAgZXhwCToJZXhwICcoJworIAkJCSAgd3JpdGVfZXhwX2VsdF9v cGNvZGUgKE9QX0ZVTkNBTEwpOyB9CisgCTsKKyAKKytleHAJOglVTktOT1dOX0NQUF9OQU1FICco JworKwkJCXsKKysKKysJCQkgLyogVGhpcyBjb3VsZCBwb3RlbnRpYWxseSBiZSBhIGFuIGFyZ3Vt ZW50IGRlZmluZWQKKysJCQkgICAgbG9va3VwIGZ1bmN0aW9uIChLb2VuaWcpLiAgKi8KKysJCQkg IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChPUF9BRExfRlVOQyk7CisrCQkJICB3cml0ZV9leHBfZWx0 X2Jsb2NrIChleHByZXNzaW9uX2NvbnRleHRfYmxvY2spOworKwkJCSAgd3JpdGVfZXhwX2VsdF9z eW0gKE5VTEwpOyAvKiBQbGFjZSBob2xkZXIgKi8KKysJCQkgIHdyaXRlX2V4cF9zdHJpbmcgKCQx LnN0b2tlbik7CisrCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAoT1BfQURMX0ZVTkMpOworKwor KwkJCS8qIFRoaXMgaXMgdG8gc2F2ZSB0aGUgdmFsdWUgb2YgYXJnbGlzdF9sZW4KKysJCQkgICBi ZWluZyBhY2N1bXVsYXRlZCBieSBhbiBvdXRlciBmdW5jdGlvbiBjYWxsLiAgKi8KKysKKysJCQkg IHN0YXJ0X2FyZ2xpc3QgKCk7CisrCQkJfQorKwkJYXJnbGlzdCAnKScJJXByZWMgQVJST1cKKysJ CQl7CisrCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAoT1BfRlVOQ0FMTCk7CisrCQkJICB3cml0 ZV9leHBfZWx0X2xvbmdjc3QgKChMT05HRVNUKSBlbmRfYXJnbGlzdCAoKSk7CisrCQkJICB3cml0 ZV9leHBfZWx0X29wY29kZSAoT1BfRlVOQ0FMTCk7CisrCQkJfQorKwk7CisrCisgbGN1cmx5CToJ J3snCisgCQkJeyBzdGFydF9hcmdsaXN0ICgpOyB9CisgCTsKK0BAIC00MTgsNiArNDQzLDI0IEBA IGV4cCAgICAgOiAgICAgICBleHAgJygnIG5vbmVtcHR5X3R5cGVsaXN0ICcpJyBjb25zdF9vcl92 b2xhdGlsZQogIAkJCX0KICAJOwogIApAQCAtMTA1Nyw3ICsxMDk2LDcgQEAgaW5kZXggOGUwMDk3 OS4uYjg2ZmM4ZSAxMDA2NDQKICByY3VybHkJOgknfScKICAJCQl7ICQkID0gZW5kX2FyZ2xpc3Qg KCkgLSAxOyB9CiAgCTsKLUBAIC03ODUsMTIgKzgwMywxMyBAQCBxdWFsaWZpZWRfbmFtZToJdHlw ZWJhc2UgQ09MT05DT0xPTiBuYW1lCitAQCAtNzg1LDEyICs4MjgsMTMgQEAgcXVhbGlmaWVkX25h bWU6CXR5cGViYXNlIENPTE9OQ09MT04gbmFtZQogIAk7CiAgCiAgdmFyaWFibGU6CXF1YWxpZmll ZF9uYW1lCkBAIC0xMDcyLDEwICsxMTExLDE5IEBAIGluZGV4IDhlMDA5NzkuLmI4NmZjOGUgMTAw NjQ0CiAgCQkJICBzeW0gPQogIAkJCSAgICBsb29rdXBfc3ltYm9sIChuYW1lLCAoY29uc3Qgc3Ry dWN0IGJsb2NrICopIE5VTEwsCiAgCQkJCQkgICBWQVJfRE9NQUlOLCAoaW50ICopIE5VTEwpOwot QEAgLTEyOTgsNiArMTMxNywxNCBAQCBuYW1lX25vdF90eXBlbmFtZSA6CU5BTUUKK0BAIC0xMjg2 LDYgKzEzMzAsNyBAQCBuYW1lCToJTkFNRSB7ICQkID0gJDEuc3Rva2VuOyB9CisgCXwJQkxPQ0tO QU1FIHsgJCQgPSAkMS5zdG9rZW47IH0KKyAJfAlUWVBFTkFNRSB7ICQkID0gJDEuc3Rva2VuOyB9 CisgCXwJTkFNRV9PUl9JTlQgIHsgJCQgPSAkMS5zdG9rZW47IH0KKysJfAlVTktOT1dOX0NQUF9O QU1FICB7ICQkID0gJDEuc3Rva2VuOyB9CQorIAl8CW9wZXJhdG9yIHsgJCQgPSAkMTsgfQorIAk7 CisgCitAQCAtMTI5OCw2ICsxMzQzLDE1IEBAIG5hbWVfbm90X3R5cGVuYW1lIDoJTkFNRQogICAg IGNvbnRleHQgd2hlcmUgb25seSBhIG5hbWUgY291bGQgb2NjdXIsIHRoaXMgbWlnaHQgYmUgdXNl ZnVsLgogICAgCXwJTkFNRV9PUl9JTlQKICAgKi8KKysgIAl8CVVOS05PV05fQ1BQX05BTUUgCiAr CXwJb3BlcmF0b3IKICsJCQl7CiArCQkJICAkJC5zdG9rZW4gPSAkMTsKQEAgLTEwODcsNyArMTEz NSw3IEBAIGluZGV4IDhlMDA5NzkuLmI4NmZjOGUgMTAwNjQ0CiAgCTsKICAKICAlJQotQEAgLTIw MzMsNiArMjA2MCwxMyBAQCBzdGF0aWMgaW50IGxhc3Rfd2FzX3N0cnVjdG9wOworQEAgLTIwMzMs NiArMjA4NywxMyBAQCBzdGF0aWMgaW50IGxhc3Rfd2FzX3N0cnVjdG9wOwogIHN0YXRpYyBpbnQK ICB5eWxleCAodm9pZCkKICB7CkBAIC0xMTAxLDcgKzExNDksNyBAQCBpbmRleCA4ZTAwOTc5Li5i ODZmYzhlIDEwMDY0NAogICAgaW50IGM7CiAgICBpbnQgbmFtZWxlbjsKICAgIHVuc2lnbmVkIGlu dCBpOwotQEAgLTIwNDEsOSArMjA3NSwxOSBAQCB5eWxleCAodm9pZCkKK0BAIC0yMDQxLDkgKzIx MDIsMTkgQEAgeXlsZXggKHZvaWQpCiAgICBjaGFyICpjb3B5OwogIAogICAgbGFzdF93YXNfc3Ry dWN0b3AgPSAwOwpAQCAtMTEyMyw3ICsxMTcxLDcgQEAgaW5kZXggOGUwMDk3OS4uYjg2ZmM4ZSAx MDA2NDQKICAgIC8qIENoZWNrIGlmIHRoaXMgaXMgYSBtYWNybyBpbnZvY2F0aW9uIHRoYXQgd2Ug bmVlZCB0byBleHBhbmQuICAqLwogICAgaWYgKCEgc2Nhbm5pbmdfbWFjcm9fZXhwYW5zaW9uICgp KQogICAgICB7Ci1AQCAtMjA3OSwxMCArMjEyMywxOSBAQCB5eWxleCAodm9pZCkKK0BAIC0yMDc5 LDEwICsyMTUwLDE5IEBAIHl5bGV4ICh2b2lkKQogIAkgICAgJiYgcGFyc2VfbGFuZ3VhZ2UtPmxh X2xhbmd1YWdlICE9IGxhbmd1YWdlX2NwbHVzKQogIAkgIGJyZWFrOwogIApAQCAtMTE0Myw3ICsx MTkxLDcgQEAgaW5kZXggOGUwMDk3OS4uYjg2ZmM4ZSAxMDA2NDQKICAJcmV0dXJuIHRva2VudGFi MltpXS50b2tlbjsKICAgICAgICB9CiAgCi1AQCAtMjExMSw2ICsyMTY0LDggQEAgeXlsZXggKHZv aWQpCitAQCAtMjExMSw2ICsyMTkxLDggQEAgeXlsZXggKHZvaWQpCiAgICAgICAgICByZXR1cm4g MDsKICAKICAgICAgY2FzZSAnICc6CkBAIC0xMTUyLDcgKzEyMDAsNyBAQCBpbmRleCA4ZTAwOTc5 Li5iODZmYzhlIDEwMDY0NAogICAgICBjYXNlICdcdCc6CiAgICAgIGNhc2UgJ1xuJzoKICAgICAg ICBsZXhwdHIrKzsKLUBAIC0yMjY4LDExICsyMzIzLDEzIEBAIHl5bGV4ICh2b2lkKQorQEAgLTIy NjgsMTEgKzIzNTAsMTMgQEAgeXlsZXggKHZvaWQpCiAgICAgIGVycm9yICgiSW52YWxpZCBjaGFy YWN0ZXIgJyVjJyBpbiBleHByZXNzaW9uLiIsIGMpOwogIAogICAgLyogSXQncyBhIG5hbWUuICBT ZWUgaG93IGxvbmcgaXQgaXMuICAqLwpAQCAtMTE2Niw3ICsxMjE0LDcgQEAgaW5kZXggOGUwMDk3 OS4uYjg2ZmM4ZSAxMDA2NDQKICAgICAgICAvKiBUZW1wbGF0ZSBwYXJhbWV0ZXIgbGlzdHMgYXJl IHBhcnQgb2YgdGhlIG5hbWUuCiAgCSBGSVhNRTogVGhpcyBtaXNoYW5kbGVzIGBwcmludCAkYTw0 JiYkYT4zJy4gICovCiAgCi1AQCAtMjM1NywxNCArMjQxNCwyOSBAQCB5eWxleCAodm9pZCkKK0BA IC0yMzU3LDE0ICsyNDQxLDMzIEBAIHl5bGV4ICh2b2lkKQogICAgICAgY3VycmVudGx5IGFzIG5h bWVzIG9mIHR5cGVzOyBOQU1FIGZvciBvdGhlciBzeW1ib2xzLgogICAgICAgVGhlIGNhbGxlciBp cyBub3QgY29uc3RyYWluZWQgdG8gY2FyZSBhYm91dCB0aGUgZGlzdGluY3Rpb24uICAqLwogICAg ewpAQCAtMTE3Nyw3ICsxMjI1LDExIEBAIGluZGV4IDhlMDA5NzkuLmI4NmZjOGUgMTAwNjQ0CiAg CiAtICAgIHN5bSA9IGxvb2t1cF9zeW1ib2wgKGNvcHksIGV4cHJlc3Npb25fY29udGV4dF9ibG9j aywKICsgICAgaWYgKG5hbWVfcHJlZml4ICE9IE5VTEwpCi0rICAgICAgdG1wID0gc2F2ZXN0cmlu ZyAobmFtZV9wcmVmaXgsIG5hbWVfcHJlZml4X2xlbituYW1lbGVuKTsKKysgICAgICB7CisrCXRt cCA9IGFsbG9jYSAobmFtZV9wcmVmaXhfbGVuICsgbmFtZWxlbiArIDEpOworKwltZW1jcHkgKHRt cCwgbmFtZV9wcmVmaXgsIG5hbWVfcHJlZml4X2xlbiArIG5hbWVsZW4pOworKwl0bXBbbmFtZV9w cmVmaXhfbGVuICsgbmFtZWxlbl0gPSAnXDAnOworKyAgICAgIH0KICsKICsgICAgc3ltID0gbG9v a3VwX3N5bWJvbCAodG1wLCBleHByZXNzaW9uX2NvbnRleHRfYmxvY2ssCiAgCQkJIFZBUl9ET01B SU4sCkBAIC0xMTk3LDExICsxMjQ5LDE2IEBAIGluZGV4IDhlMDA5NzkuLmI4NmZjOGUgMTAwNjQ0 CiAgICAgIC8qIENhbGwgbG9va3VwX3N5bXRhYiwgbm90IGxvb2t1cF9wYXJ0aWFsX3N5bXRhYiwg aW4gY2FzZSB0aGVyZSBhcmUKICAgICAgICAgbm8gcHN5bXRhYnMgKGNvZmYsIHhjb2ZmLCBvciBz b21lIGZ1dHVyZSBjaGFuZ2UgdG8gYmxvdyBhd2F5IHRoZQogICAgICAgICBwc3ltdGFicyBvbmNl IG9uY2Ugc3ltYm9scyBhcmUgcmVhZCkuICAqLwotQEAgLTI0MjMsNiArMjQ5NSw3IEBAIHl5bGV4 ICh2b2lkKQorQEAgLTI0MjMsNiArMjUyNiwxMiBAQCB5eWxleCAodm9pZCkKICAgICAgeXlsdmFs LnNzeW0uaXNfYV9maWVsZF9vZl90aGlzID0gaXNfYV9maWVsZF9vZl90aGlzOwogICAgICBpZiAo aW5fcGFyc2VfZmllbGQgJiYgKmxleHB0ciA9PSAnXDAnKQogICAgICAgIHNhd19uYW1lX2F0X2Vv ZiA9IDE7CiArICAgICAgICAKKysgICAgaWYgKHN5bSA9PSBOVUxMIAorKyAgICAgICAgJiYgcGFy c2VfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzCisrICAgICAgICAmJiAh bG9va3VwX21pbmltYWxfc3ltYm9sICh0bXAsIE5VTEwsIE5VTEwpKQorKyAgICAgIHJldHVybiBV TktOT1dOX0NQUF9OQU1FOworKwogICAgICByZXR1cm4gTkFNRTsKICAgIH0KICB9CkBAIC0xMjE4 LDcgKzEyNzUsNyBAQCBpbmRleCBkNjIwODgxLi4zNGNiMzRhIDEwMDY0NAogICAgZHVtcF9zdWJl eHBfYm9keV9zdGFuZGFyZCwKICAgIGV2YWx1YXRlX3N1YmV4cF9jCiBkaWZmIC0tZ2l0IGEvZ2Ri L2MtdHlwZXByaW50LmMgYi9nZGIvYy10eXBlcHJpbnQuYwotaW5kZXggMjc3NDZkOS4uZDRkYTE4 MCAxMDA2NDQKK2luZGV4IGVkOTgzODEuLjMwNjFhYjcgMTAwNjQ0CiAtLS0gYS9nZGIvYy10eXBl cHJpbnQuYwogKysrIGIvZ2RiL2MtdHlwZXByaW50LmMKIEBAIC0zMiw2ICszMiw3IEBACkBAIC0x MzAxLDEyICsxMzU4LDEzIEBAIGluZGV4IDI3NzQ2ZDkuLmQ0ZGExODAgMTAwNjQ0CiAgICAgICAg cHJpbnRlZF9hbnkgPSAxOwogICAgICB9CiAgCi1AQCAtNTU4LDcgKzU4NCwxMiBAQCBjX3R5cGVf cHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLAorQEAgLTU1OCw3ICs1ODQsMTMgQEAgY190eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4 IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJZnByaW50Zl9m aWx0ZXJlZCAoc3RyZWFtLCAiKSIpOwogIAogICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVh bSwgIlsiKTsKIC0gICAgICBpZiAoVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUp KSA+IDAKLSsgICAgICBpZiAoVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9JU19EV0FSRl9CTE9DSyAo dHlwZSkpCisrICAgICAgaWYgKFRZUEVfUkFOR0VfREFUQSAoVFlQRV9JTkRFWF9UWVBFICh0eXBl KSktPmhpZ2gua2luZAorKwkgICE9IFJBTkdFX0JPVU5EX0tJTkRfQ09OU1RBTlQpCiArCXsKICsJ ICAvKiBObyBfKCkgLSBwcmludGVkIHNvdXJjZXMgc2hvdWxkIG5vdCBiZSBsb2NhbGUgZGVwZW5k ZW50LiAgKi8KICsJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJ2YXJpYWJsZSIpOwpAQCAt MTMxNSw3ICsxMzczLDcgQEAgaW5kZXggMjc3NDZkOS4uZDRkYTE4MCAxMDA2NDQKICAJJiYgIVRZ UEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEICh0eXBlKSkKICAJZnByaW50Zl9maWx0 ZXJlZCAoc3RyZWFtLCAiJWQiLAogIAkJCSAgKFRZUEVfTEVOR1RIICh0eXBlKQotQEAgLTU5MSw3 ICs2MjIsNyBAQCBjX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlICp0eXBl LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorQEAgLTU5MSw3ICs2MjMsNyBAQCBjX3R5cGVfcHJp bnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLAogICAgICAgIGlmIChwYXNzZWRfYV9wdHIpCiAgCWZwcmludGZfZmlsdGVyZWQgKHN0cmVh bSwgIikiKTsKICAgICAgICBpZiAoIWRlbWFuZ2xlZF9hcmdzKQpAQCAtMTMyNSw3ICsxMzgzLDcg QEAgaW5kZXggMjc3NDZkOS4uZDRkYTE4MCAxMDA2NDQKICAJCQkJICAgcGFzc2VkX2FfcHRyLCAw KTsKICAgICAgICBicmVhazsKIGRpZmYgLS1naXQgYS9nZGIvY29mZnJlYWQuYyBiL2dkYi9jb2Zm cmVhZC5jCi1pbmRleCA4ZTVkY2E5Li43ZTdmYjhiIDEwMDY0NAoraW5kZXggYmE0MTNhZC4uNDQ2 NzZhOCAxMDA2NDQKIC0tLSBhL2dkYi9jb2ZmcmVhZC5jCiArKysgYi9nZGIvY29mZnJlYWQuYwog QEAgLTIxMjMsNiArMjEyMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc3ltX2ZucyBjb2ZmX3N5bV9mbnMg PQpAQCAtMTM2NSw3ICsxNDIzLDcgQEAgaW5kZXggZWJkZTg3Ni4uOTA3YjI3NSAxMDA2NDQKICAj dW5kZWYgUkVMT0NfU1JDRElSCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9j b25maWd1cmUKLWluZGV4IGQ0NDRiMDguLmQ0Y2VkODkgMTAwNzU1CitpbmRleCAxOTgzZDA0Li44 ZGNhMzdlIDEwMDc1NQogLS0tIGEvZ2RiL2NvbmZpZ3VyZQogKysrIGIvZ2RiL2NvbmZpZ3VyZQog QEAgLTY3Niw2ICs2NzYsOCBAQCBSRVBPUlRfQlVHU19UTwpAQCAtMTQ4MCw3ICsxNTM4LDcgQEAg aW5kZXggZDQ0NGIwOC4uZDRjZWQ4OSAxMDA3NTUKICAKICAgICMgRmxhZ3MgbmVlZGVkIHRvIGNv bXBpbGUgUHl0aG9uIGNvZGUgKHRha2VuIGZyb20gcHl0aG9uLWNvbmZpZyAtLWNmbGFncykuCiBk aWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZS5hYyBiL2dkYi9jb25maWd1cmUuYWMKLWluZGV4IDhk YTY4NjcuLjhlMzkyNTQgMTAwNjQ0CitpbmRleCA2Zjg3M2I1Li43Nzk4NWM4IDEwMDY0NAogLS0t IGEvZ2RiL2NvbmZpZ3VyZS5hYwogKysrIGIvZ2RiL2NvbmZpZ3VyZS5hYwogQEAgLTEwOCw2ICsx MDgsNTEgQEAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1yZWxvY2F0ZWQtc291cmNlcz1QQVRIXSwg W2F1dG9tYXRpY2FsbHkgcmVsb2NhdGUgdGhpcyBwYXQKQEAgLTE2NTYsNyArMTcxNCw3IEBAIGlu ZGV4IDgxZjZhNWQuLjA5N2RiNjUgMTAwNjQ0CiAgCQkJeyAkJCA9ICQxLmNvbXA7CiAgCQkJICBp ZiAoJDIpICQkID0gZmlsbF9jb21wIChERU1BTkdMRV9DT01QT05FTlRfTE9DQUxfTkFNRSwgJCQs ICQyKTsgfQogZGlmZiAtLWdpdCBhL2dkYi9jcC1uYW1lc3BhY2UuYyBiL2dkYi9jcC1uYW1lc3Bh Y2UuYwotaW5kZXggOGNhOWMyMC4uMjFlMDEzYSAxMDA2NDQKK2luZGV4IDVlODk0ZDQuLjYzMjVl YWQgMTAwNjQ0CiAtLS0gYS9nZGIvY3AtbmFtZXNwYWNlLmMKICsrKyBiL2dkYi9jcC1uYW1lc3Bh Y2UuYwogQEAgLTM0LDE0ICszNCwxNyBAQApAQCAtMTY4Myw4ICsxNzQxLDggQEAgaW5kZXggOGNh OWMyMC4uMjFlMDEzYSAxMDA2NDQKICAJCSBhbm9ueW1vdXMgbmFtZXNwYWNlLiAgU28gYWRkIHN5 bWJvbHMgaW4gaXQgdG8gdGhlCiAgCQkgbmFtZXNwYWNlIGdpdmVuIGJ5IHRoZSBwcmV2aW91cyBj b21wb25lbnQgaWYgdGhlcmUgaXMKICAJCSBvbmUsIG9yIHRvIHRoZSBnbG9iYWwgbmFtZXNwYWNl IGlmIHRoZXJlIGlzbid0LiAgKi8KLS0JICAgICAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAoZGVz dCwgc3JjKTsKLSsJICAgICAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAoZGVzdCwgc3JjLCAiIiwg IiIsIDApOworLQkgICAgICBjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChkZXN0LCBzcmMsIE5VTEwp OworKwkgICAgICBjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChkZXN0LCBzcmMsIE5VTEwsICIiLCAw KTsKICAJICAgIH0KICAJICAvKiBUaGUgIisgMiIgaXMgZm9yIHRoZSAiOjoiLiAgKi8KICAJICBw cmV2aW91c19jb21wb25lbnQgPSBuZXh0X2NvbXBvbmVudCArIDI7CkBAIC0xNjkyLDM5ICsxNzUw LDQxIEBAIGluZGV4IDhjYTljMjAuLjIxZTAxM2EgMTAwNjQ0CiAgICAgaGFzIGFscmVhZHkgYmVl biBhZGRlZCwgZG9uJ3QgYWRkIGl0IHR3aWNlLiAgKi8KICAKICB2b2lkCi0tY3BfYWRkX3VzaW5n X2RpcmVjdGl2ZSAoY29uc3QgY2hhciAqZGVzdCwgY29uc3QgY2hhciAqc3JjKQotK2NwX2FkZF91 c2luZ19kaXJlY3RpdmUgKGNvbnN0IGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYywgY29uc3Qg Y2hhciogYWxpYXMsCistY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAoY29uc3QgY2hhciAqZGVzdCwg Y29uc3QgY2hhciAqc3JjLCBjb25zdCBjaGFyICphbGlhcykKKytjcF9hZGRfdXNpbmdfZGlyZWN0 aXZlIChjb25zdCBjaGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMsIGNvbnN0IGNoYXIgKmFsaWFz LAogKwkJCWNvbnN0IGNoYXIgKmRlY2xhcmF0aW9uLCBjb25zdCBpbnQgbGluZV9udW1iZXIpCiAg ewogICAgc3RydWN0IHVzaW5nX2RpcmVjdCAqY3VycmVudDsKICAgIHN0cnVjdCB1c2luZ19kaXJl Y3QgKm5ldzsKLUBAIC0xNDYsNyArMTUwLDggQEAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAoY29u c3QgY2hhciAqZGVzdCwgY29uc3QgY2hhciAqc3JjKQorQEAgLTE0Niw3ICsxNTAsOCBAQCBjcF9h ZGRfdXNpbmdfZGlyZWN0aXZlIChjb25zdCBjaGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMsIGNv bnN0IGNoYXIgKmFsaWFzKQogIAlyZXR1cm47CiAgICAgIH0KICAKLS0gIHVzaW5nX2RpcmVjdGl2 ZXMgPSBjcF9hZGRfdXNpbmcgKGRlc3QsIHNyYywgdXNpbmdfZGlyZWN0aXZlcyk7CistICB1c2lu Z19kaXJlY3RpdmVzID0gY3BfYWRkX3VzaW5nIChkZXN0LCBzcmMsIGFsaWFzLCB1c2luZ19kaXJl Y3RpdmVzKTsKICsgIHVzaW5nX2RpcmVjdGl2ZXMgPSBjcF9hZGRfdXNpbmcgKGRlc3QsIHNyYywg YWxpYXMsIGRlY2xhcmF0aW9uLAogKwkJCQkgICBsaW5lX251bWJlciwgdXNpbmdfZGlyZWN0aXZl cyk7CiAgCiAgfQogIAotQEAgLTE5OSw3ICsyMDQsMTAgQEAgY3BfaXNfYW5vbnltb3VzIChjb25z dCBjaGFyICpuYW1lc3BhY2UpCitAQCAtMTk4LDkgKzIwMywxMSBAQCBjcF9pc19hbm9ueW1vdXMg KGNvbnN0IGNoYXIgKm5hbWVzcGFjZSkKKyAJICAhPSBOVUxMKTsKICB9CiAgCi0gLyogQ3JlYXRl IGEgbmV3IHN0cnVjdCB1c2luZyBkaXJlY3Qgd2hpY2ggaW1wb3J0cyB0aGUgbmFtZXNwYWNlIFNS QwotLSAgIGludG8gdGhlIHNjb3BlIERFU1QuCistLyogQ3JlYXRlIGEgbmV3IHN0cnVjdCB1c2lu ZyBkaXJlY3Qgd2hpY2ggaW1wb3J0cyB0aGUgbmFtZXNwYWNlIFNSQyBpbnRvIHRoZQorLSAgIHNj b3BlIERFU1QuICBBTElBUyBpcyB0aGUgbmFtZSBvZiB0aGUgaW1wb3J0ZWQgbmFtZXNwYWNlIGlu IHRoZSBjdXJyZW50CistICAgc2NvcGUuICBJZiBBTElBUyBpcyBOVUxMIHRoZW4gdGhlIG5hbWVz cGFjZSBpcyBrbm93biBieSBpdHMgb3JpZ2luYWwgbmFtZS4KKysvKiBDcmVhdGUgYSBuZXcgc3Ry dWN0IHVzaW5nIGRpcmVjdCB3aGljaCBpbXBvcnRzIHRoZSBuYW1lc3BhY2UgU1JDCiArICAgaW50 byB0aGUgc2NvcGUgREVTVC4gIEFMSUFTIGlzIHRoZSBuYW1lIG9mIHRoZSBpbXBvcnRlZCBuYW1l c3BhY2UKLSsgICBpbiB0aGUgY3VycmVudCBzY29wZS4gIElmIEFMSUFTIGlzIGFuIGVtcHR5IHN0 cmluZyAgdGhlbiB0aGUKKysgICBpbiB0aGUgY3VycmVudCBzY29wZS4gIElmIEFMSUFTIGlzIE5V TEwgdGhlbiB0aGUKICsgICBuYW1lc3BhY2UgaXMga25vd24gYnkgaXRzIG9yaWdpbmFsIG5hbWUu CiArCiAgICAgU2V0IGl0cyBuZXh0IG1lbWJlciBpbiB0aGUgbGlua2VkIGxpc3QgdG8gTkVYVDsg YWxsb2NhdGUgYWxsIG1lbW9yeQogICAgIHVzaW5nIHhtYWxsb2MuICBJdCBjb3BpZXMgdGhlIHN0 cmluZ3MsIHNvIE5BTUUgY2FuIGJlIGEgdGVtcG9yYXJ5CiAgICAgc3RyaW5nLiAgKi8KLUBAIC0y MDcsMTMgKzIxNSwxOSBAQCBjcF9pc19hbm9ueW1vdXMgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSkK LSBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICoKK0BAIC0yMDksMTkgKzIxNiwyMyBAQCBzdHJ1Y3QgdXNp bmdfZGlyZWN0ICoKICBjcF9hZGRfdXNpbmcgKGNvbnN0IGNoYXIgKmRlc3QsCiAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICpzcmMsCi0rICAgICAgICAgICAgICBjb25zdCBjaGFyICphbGlhcywK KyAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmFsaWFzLAogKyAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqZGVjbGFyYXRpb24sCiArICAgICAgICAgICAgICBjb25zdCBpbnQgbGluZV9udW1iZXIs CiAgCSAgICAgIHN0cnVjdCB1c2luZ19kaXJlY3QgKm5leHQpCkBAIC0xNzM2LDEzICsxNzk2LDE4 IEBAIGluZGV4IDhjYTljMjAuLjIxZTAxM2EgMTAwNjQ0CiAtICByZXR2YWwtPmltcG9ydF9kZXN0 ID0gc2F2ZXN0cmluZyAoZGVzdCwgc3RybGVuKGRlc3QpKTsKICsgIHJldHZhbC0+aW1wb3J0X3Ny YyA9IHNhdmVzdHJpbmcgKHNyYywgc3RybGVuIChzcmMpKTsKICsgIHJldHZhbC0+aW1wb3J0X2Rl c3QgPSBzYXZlc3RyaW5nIChkZXN0LCBzdHJsZW4gKGRlc3QpKTsKLSsgIHJldHZhbC0+YWxpYXMg PSBzYXZlc3RyaW5nIChhbGlhcywgc3RybGVuIChhbGlhcykpOworIAorICAgaWYgKGFsaWFzICE9 IE5VTEwpCisgICAgIHJldHZhbC0+YWxpYXMgPSBzYXZlc3RyaW5nIChhbGlhcywgc3RybGVuIChh bGlhcykpOworICAgZWxzZQorICAgICByZXR2YWwtPmFsaWFzID0gTlVMTDsKKyAKICsgIHJldHZh bC0+ZGVjbGFyYXRpb24gPSBzYXZlc3RyaW5nIChkZWNsYXJhdGlvbiwgc3RybGVuIChkZWNsYXJh dGlvbikpOwogKyAgcmV0dmFsLT5saW5lX251bWJlciA9IGxpbmVfbnVtYmVyOwogICAgcmV0dmFs LT5uZXh0ID0gbmV4dDsKICAgIHJldHZhbC0+c2VhcmNoZWQgPSAwOwogIAotQEAgLTIzMCwxOSAr MjQ0LDEwMCBAQCBjcF9hZGRfdXNpbmcgKGNvbnN0IGNoYXIgKmRlc3QsCitAQCAtMjM4LDE5ICsy NDksMTAwIEBAIGNwX2FkZF91c2luZyAoY29uc3QgY2hhciAqZGVzdCwKICAKICBzdHJ1Y3Qgc3lt Ym9sICoKICBjcF9sb29rdXBfc3ltYm9sX25vbmxvY2FsIChjb25zdCBjaGFyICpuYW1lLApAQCAt MTg0OCw3ICsxOTEzLDcgQEAgaW5kZXggOGNhOWMyMC4uMjFlMDEzYSAxMDA2NDQKICB9CiAgCiAg LyogTG9vayB1cCBOQU1FIGluIHRoZSBDKysgbmFtZXNwYWNlIE5BTUVTUEFDRS4gT3RoZXIgYXJn dW1lbnRzIGFyZSBhcyBpbgotQEAgLTI1MCwyNSArMzQ1LDI0IEBAIGNwX2xvb2t1cF9zeW1ib2xf bm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMjU4LDI1ICszNTAsMjQgQEAgY3BfbG9v a3VwX3N5bWJvbF9ub25sb2NhbCAoY29uc3QgY2hhciAqbmFtZSwKICAKICBzdGF0aWMgc3RydWN0 IHN5bWJvbCAqCiAgY3BfbG9va3VwX3N5bWJvbF9pbl9uYW1lc3BhY2UgKGNvbnN0IGNoYXIgKm5h bWVzcGFjZSwKQEAgLTE4ODMsNyArMTk0OCw3IEBAIGluZGV4IDhjYTljMjAuLjIxZTAxM2EgMTAw NjQ0CiAgICAgIH0KICB9CiAgCi1AQCAtMjgzLDkgKzM3NywxNyBAQCByZXNldF9kaXJlY3RpdmVf c2VhcmNoZWQgKHZvaWQgKmRhdGEpCitAQCAtMjkxLDkgKzM4MiwxNyBAQCByZXNldF9kaXJlY3Rp dmVfc2VhcmNoZWQgKHZvaWQgKmRhdGEpCiAgfQogIAogIC8qIFNlYXJjaCBmb3IgTkFNRSBieSBh cHBseWluZyBhbGwgaW1wb3J0IHN0YXRlbWVudHMgYmVsb25naW5nCkBAIC0xOTAzLDcgKzE5Njgs NyBAQCBpbmRleCA4Y2E5YzIwLi4yMWUwMTNhIDEwMDY0NAogICAgIEV4YW1wbGU6CiAgCiAgICAg ICBuYW1lc3BhY2UgQXsKLUBAIC0yOTksMjYgKzQwMSwzMyBAQCByZXNldF9kaXJlY3RpdmVfc2Vh cmNoZWQgKHZvaWQgKmRhdGEpCitAQCAtMzA3LDI2ICs0MDYsMzMgQEAgcmVzZXRfZGlyZWN0aXZl X3NlYXJjaGVkICh2b2lkICpkYXRhKQogICAgIGFuZCBZIHdpbGwgYmUgY29uc2lkZXJlZC4gSWYg U0VBUkNIX1BBUkVOVFMgaXMgZmFsc2Ugb25seSB0aGUgaW1wb3J0IG9mIFkKICAgICBpcyBjb25z aWRlcmVkLiAgKi8KICAKQEAgLTE5NDYsMjcgKzIwMTEsMjUgQEAgaW5kZXggOGNhOWMyMC4uMjFl MDEzYSAxMDA2NDQKICAgIC8qIEdvIHRocm91Z2ggdGhlIHVzaW5nIGRpcmVjdGl2ZXMuICBJZiBh bnkgb2YgdGhlbSBhZGQgbmV3CiAgICAgICBuYW1lcyB0byB0aGUgbmFtZXNwYWNlIHdlJ3JlIHNl YXJjaGluZyBpbiwgc2VlIGlmIHdlIGNhbiBmaW5kIGEKICAgICAgIG1hdGNoIGJ5IGFwcGx5aW5n IHRoZW0uICAqLwotQEAgLTMyNywxMjMgKzQzNiw3OCBAQCBjcF9sb29rdXBfc3ltYm9sX2ltcG9y dHMgKGNvbnN0IGNoYXIgKnNjb3BlLAorQEAgLTMzNSw3ICs0NDEsMTAgQEAgY3BfbG9va3VwX3N5 bWJvbF9pbXBvcnRzIChjb25zdCBjaGFyICpzY29wZSwKICAgICAgICAgY3VycmVudCAhPSBOVUxM OwogICAgICAgICBjdXJyZW50ID0gY3VycmVudC0+bmV4dCkKICAgICAgewogLSAgICAgIGxlbiA9 IHN0cmxlbiAoY3VycmVudC0+aW1wb3J0X2Rlc3QpOwotLSAgICAgIGRpcmVjdGl2ZV9tYXRjaCA9 IChzZWFyY2hfcGFyZW50cwotLSAgICAgICAgICAgICAgICAgICAgICAgICA/IChzdHJuY21wIChz Y29wZSwgY3VycmVudC0+aW1wb3J0X2Rlc3QsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cmxlbiAoY3VycmVudC0+aW1wb3J0X2Rlc3QpKSA9PSAwCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICYmIChsZW4gPT0gMAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfHwgc2NvcGVbbGVuXSA9PSAnOicgfHwgc2NvcGVbbGVuXSA9PSAnXDAnKSkKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgOiBzdHJjbXAgKHNjb3BlLCBjdXJyZW50LT5pbXBvcnRf ZGVzdCkgPT0gMCk7Ci0tCiArICAKLSAgICAgICAvKiBJZiB0aGUgaW1wb3J0IGRlc3RpbmF0aW9u IGlzIHRoZSBjdXJyZW50IHNjb3BlIG9yIG9uZSBvZiBpdHMgYW5jZXN0b3JzIHRoZW4KLSAgICAg ICAgICBpdCBpcyBhcHBsaWNhYmxlLiAgKi8KKysgICAgICAvKiBJZiB0aGUgaW1wb3J0IGRlc3Rp bmF0aW9uIGlzIHRoZSBjdXJyZW50IHNjb3BlIG9yIG9uZSBvZiBpdHMgYW5jZXN0b3JzIHRoZW4K KysgICAgICAgICBpdCBpcyBhcHBsaWNhYmxlLiAgKi8KKysgICAgICBpbnQgbGVuID0gc3RybGVu IChjdXJyZW50LT5pbXBvcnRfZGVzdCk7CisgICAgICAgZGlyZWN0aXZlX21hdGNoID0gKHNlYXJj aF9wYXJlbnRzCisgICAgICAgICAgICAgICAgICAgICAgICAgID8gKHN0cm5jbXAgKHNjb3BlLCBj dXJyZW50LT5pbXBvcnRfZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RybGVuIChjdXJyZW50LT5pbXBvcnRfZGVzdCkpID09IDAKK0BAIC0zNDMsMTMwICs0NTIs NzAgQEAgY3BfbG9va3VwX3N5bWJvbF9pbXBvcnRzIChjb25zdCBjaGFyICpzY29wZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHNjb3BlW2xlbl0gPT0gJzonIHx8IHNjb3Bl W2xlbl0gPT0gJ1wwJykpCisgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyY21wIChzY29w ZSwgY3VycmVudC0+aW1wb3J0X2Rlc3QpID09IDApOworIAorLSAgICAgIC8qIElmIHRoZSBpbXBv cnQgZGVzdGluYXRpb24gaXMgdGhlIGN1cnJlbnQgc2NvcGUgb3Igb25lIG9mIGl0cyBhbmNlc3Rv cnMgdGhlbgorLSAgICAgICAgIGl0IGlzIGFwcGxpY2FibGUuICAqLwogLSAgICAgIGlmIChkaXJl Y3RpdmVfbWF0Y2ggJiYgIWN1cnJlbnQtPnNlYXJjaGVkKQotKyAgICAgIGRpcmVjdGl2ZV9tYXRj aCA9IHNlYXJjaF9wYXJlbnRzID8KLSsgICAgICAgICAgICAgICAgICAgICAgICBzdHJuY21wIChz Y29wZSwgY3VycmVudC0+aW1wb3J0X2Rlc3QsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RybGVuKGN1cnJlbnQtPmltcG9ydF9kZXN0KSkgPT0gMCA6Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgc3RyY21wIChzY29wZSwgY3VycmVudC0+aW1wb3J0X2Rlc3QpID09IDA7Ci0r CiArICAgICAgaWYgKGRpcmVjdGl2ZV9tYXRjaCAmJgogKyAgICAgICAgICBjdXJyZW50LT5saW5l X251bWJlciA8IGN1cnJlbnRfbGluZSAmJgogKyAgICAgICAgICAhY3VycmVudC0+c2VhcmNoZWQp CkBAIC0xOTc2LDEzICsyMDM5LDY1IEBAIGluZGV4IDhjYTljMjAuLjIxZTAxM2EgMTAwNjQ0CiAt CWN1cnJlbnQtPnNlYXJjaGVkID0gMTsKIC0Jc2VhcmNoZWRfY2xlYW51cCA9IG1ha2VfY2xlYW51 cCAocmVzZXRfZGlyZWN0aXZlX3NlYXJjaGVkLCBjdXJyZW50KTsKIC0KLS0Jc3ltID0gY3BfbG9v a3VwX3N5bWJvbF9uYW1lc3BhY2UgKGN1cnJlbnQtPmltcG9ydF9zcmMsCi0tCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAotLQkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlua2FnZV9uYW1lLAotLQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYmxvY2ssCi0tCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4sCi0t CSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKLS0KKy0JaWYgKGN1cnJlbnQt PmFsaWFzICE9IE5VTEwgJiYgc3RyY21wIChuYW1lLCBjdXJyZW50LT5hbGlhcykgPT0gMCkKKy0J ICAvKiBJZiB0aGUgaW1wb3J0IGlzIGNyZWF0aW5nIGFuIGFsaWFzIGFuZCB0aGUgYWxpYXMgbWF0 Y2hlcyB0aGUKKy0JICAgICBzb3VnaHQgbmFtZS4gIFBhc3MgY3VycmVudC0+aW1wb3J0X3NyYyBh cyB0aGUgTkFNRSB0byBkaXJlY3QgdGhlCistCSAgICAgc2VhcmNoIHRvd2FyZHMgdGhlIGFsaWFz ZWQgbmFtZXNwYWNlLiAgKi8KKy0JICB7CisrCSAgY3VycmVudC0+c2VhcmNoZWQgPSAxOworKwkg IHNlYXJjaGVkX2NsZWFudXAgPSBtYWtlX2NsZWFudXAgKHJlc2V0X2RpcmVjdGl2ZV9zZWFyY2hl ZCwgY3VycmVudCk7CisrCisrCSAgLyogSWYgdGhlcmUgaXMgYW4gaW1wb3J0IG9mIGEgc2luZ2xl IGRlY2xhcmF0aW9uLCBjb21wYXJlIHRoZSBpbXBvcnRlZAorKwkgICAgIGRlY2xhcmF0aW9uIHdp dGggdGhlIHNvdWdodCBvdXQgbmFtZS4gSWYgdGhlcmUgaXMgYSBtYXRjaCBwYXNzCisrCSAgICAg Y3VycmVudC0+aW1wb3J0X3NyYyBhcyBOQU1FU1BBQ0UgdG8gZGlyZWN0IHRoZSBzZWFyY2ggdG93 YXJkcyB0aGUKKysJICAgICBpbXBvcnRlZCBuYW1lc3BhY2UuICAqLworKwkgIGlmIChzdHJjbXAg KCIiLCBjdXJyZW50LT5kZWNsYXJhdGlvbikgIT0gMCkKKysJICAgIHsKKysJICAgIGlmIChzdHJj bXAgKG5hbWUsIGN1cnJlbnQtPmRlY2xhcmF0aW9uKSA9PSAwKQorKwkgICAgICB7CisrCSAgICAg IHN5bSA9IGNwX2xvb2t1cF9zeW1ib2xfaW5fbmFtZXNwYWNlIChjdXJyZW50LT5pbXBvcnRfc3Jj LAorKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwKKysJ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLAorKwkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluKTsKKysJICAgICAg fQorKworKwkgICAgY3VycmVudC0+c2VhcmNoZWQgPSAwOworKwkgICAgaWYgKHN5bSkKKysJICAg ICAgcmV0dXJuIHN5bTsKKysKKysJICAgIGNvbnRpbnVlOworKwkgICAgfQorKwkgICAKKysJICBp ZiAoZGVjbGFyYXRpb25fb25seSkKKysJICAgIHsKKysJICAgIGN1cnJlbnQtPnNlYXJjaGVkID0g MDsKKysJICAgIGRpc2NhcmRfY2xlYW51cHMgKHNlYXJjaGVkX2NsZWFudXApOworKwkgICAgY29u dGludWU7CisrCSAgICB9CisrCisrCSAgaWYgKGN1cnJlbnQtPmFsaWFzICE9IE5VTEwgJiYgc3Ry Y21wIChuYW1lLCBjdXJyZW50LT5hbGlhcykgPT0gMCkKKysJICAgIC8qIElmIHRoZSBpbXBvcnQg aXMgY3JlYXRpbmcgYW4gYWxpYXMgYW5kIHRoZSBhbGlhcyBtYXRjaGVzIHRoZQorKwkgICAgICAg c291Z2h0IG5hbWUuIFBhc3MgY3VycmVudC0+aW5uZXIgYXMgdGhlIE5BTUUgdG8gZGlyZWN0IHRo ZQorKwkgICAgICAgc2VhcmNoIHRvd2FyZHMgdGhlIGFsaWFzZWQgbmFtZXNwYWNlICovCisrCSAg ICB7CisgCSAgICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX2luX25hbWVzcGFjZSAoc2NvcGUsCisg CSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC0+aW1wb3J0 X3NyYywKKy0JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rYWdl X25hbWUsCisgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2ss CisgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluKTsKKy0J ICB9CistCWVsc2UgaWYgKGN1cnJlbnQtPmFsaWFzID09IE5VTEwpCistCSAgeworKwkgICAgfSBl bHNlIGlmIChjdXJyZW50LT5hbGlhcyA9PSBOVUxMKXsKKyAJICAgIC8qIElmIHRoaXMgaW1wb3J0 IHN0YXRlbWVudCBjcmVhdGVzIG5vIGFsaWFzLCBwYXNzIGN1cnJlbnQtPmlubmVyIGFzCistICAg ICAgICAgICAgICAgTkFNRVNQQUNFIHRvIGRpcmVjdCB0aGUgc2VhcmNoIHRvd2FyZHMgdGhlIGlt cG9ydGVkIG5hbWVzcGFjZS4gICovCistCSAgICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX2ltcG9y dHMgKGN1cnJlbnQtPmltcG9ydF9zcmMsCistCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5hbWUsCistCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmth Z2VfbmFtZSwKKy0JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2ssCist CSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbiwKKy0JICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CistCSAgfQogLQljdXJyZW50LT5zZWFyY2hl ZCA9IDA7CiAtCWRpc2NhcmRfY2xlYW51cHMgKHNlYXJjaGVkX2NsZWFudXApOwogLQpAQCAtMjA0 Nyw1MSArMjE2MiwxMCBAQCBpbmRleCA4Y2E5YzIwLi4yMWUwMTNhIDEwMDY0NAogLQkJCWludCBz Y29wZV9sZW4pCiAtewogLSAgY2hhciAqbmFtZXNwYWNlOwotKwkgIGN1cnJlbnQtPnNlYXJjaGVk ID0gMTsKLSsJICBzZWFyY2hlZF9jbGVhbnVwID0gbWFrZV9jbGVhbnVwIChyZXNldF9kaXJlY3Rp dmVfc2VhcmNoZWQsIGN1cnJlbnQpOwotKwotKwkgIC8qIElmIHRoZXJlIGlzIGFuIGltcG9ydCBv ZiBhIHNpbmdsZSBkZWNsYXJhdGlvbiwgY29tcGFyZSB0aGUgaW1wb3J0ZWQKLSsJICAgICBkZWNs YXJhdGlvbiB3aXRoIHRoZSBzb3VnaHQgb3V0IG5hbWUuIElmIHRoZXJlIGlzIGEgbWF0Y2ggcGFz cwotKwkgICAgIGN1cnJlbnQtPmltcG9ydF9zcmMgYXMgTkFNRVNQQUNFIHRvIGRpcmVjdCB0aGUg c2VhcmNoIHRvd2FyZHMgdGhlCi0rCSAgICAgaW1wb3J0ZWQgbmFtZXNwYWNlLiAgKi8KLSsJICBp ZiAoc3RyY21wICgiIiwgY3VycmVudC0+ZGVjbGFyYXRpb24pICE9IDApCi0rCSAgICB7Ci0rCSAg ICBpZiAoc3RyY21wIChuYW1lLCBjdXJyZW50LT5kZWNsYXJhdGlvbikgPT0gMCkKLSsJICAgICAg ewotKwkgICAgICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX2luX25hbWVzcGFjZSAoY3VycmVudC0+ aW1wb3J0X3NyYywKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5hbWUsCi0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9j aywKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbik7 Ci0rCSAgICAgIH0KLSsKLSsJICAgIGN1cnJlbnQtPnNlYXJjaGVkID0gMDsKLSsJICAgIGlmIChz eW0pCi0rCSAgICAgIHJldHVybiBzeW07Ci0rCi0rCSAgICBjb250aW51ZTsKLSsJICAgIH0KLSsJ ICAgCi0rCSAgaWYgKGRlY2xhcmF0aW9uX29ubHkpCi0rCSAgICB7Ci0rCSAgICBjdXJyZW50LT5z ZWFyY2hlZCA9IDA7Ci0rCSAgICBkaXNjYXJkX2NsZWFudXBzIChzZWFyY2hlZF9jbGVhbnVwKTsK LSsJICAgIGNvbnRpbnVlOwotKwkgICAgfQotIAorLQogLSAgaWYgKHNjb3BlW3Njb3BlX2xlbl0g IT0gJ1wwJykKIC0gICAgewogLSAgICAgIC8qIFJlY3Vyc2l2ZWx5IHNlYXJjaCBmb3IgbmFtZXMg aW4gY2hpbGQgbmFtZXNwYWNlcyBmaXJzdC4gICovCi0rCSAgaWYgKHN0cmNtcCAobmFtZSwgY3Vy cmVudC0+YWxpYXMpID09IDApCi0rCSAgICAvKiBJZiB0aGUgaW1wb3J0IGlzIGNyZWF0aW5nIGFu IGFsaWFzIGFuZCB0aGUgYWxpYXMgbWF0Y2hlcyB0aGUKLSsJICAgICAgIHNvdWdodCBuYW1lLiBQ YXNzIGN1cnJlbnQtPmlubmVyIGFzIHRoZSBOQU1FIHRvIGRpcmVjdCB0aGUKLSsJICAgICAgIHNl YXJjaCB0b3dhcmRzIHRoZSBhbGlhc2VkIG5hbWVzcGFjZSAqLwotKwkgICAgewotKwkgICAgc3lt ID0gY3BfbG9va3VwX3N5bWJvbF9pbl9uYW1lc3BhY2UgKHNjb3BlLAotKwkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQtPmltcG9ydF9zcmMsCi0rCSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2ssCi0rCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluKTsKLSsJICAgIH0gZWxzZSBpZiAo c3RyY21wICgiIiwgY3VycmVudC0+YWxpYXMpID09IDApewotKwkgICAgLyogSWYgdGhpcyBpbXBv cnQgc3RhdGVtZW50IGNyZWF0ZXMgbm8gYWxpYXMsIHBhc3MgY3VycmVudC0+aW5uZXIgYXMKICsJ ICAgICAgIE5BTUVTUEFDRSB0byBkaXJlY3QgdGhlIHNlYXJjaCB0b3dhcmRzIHRoZSBpbXBvcnRl ZCBuYW1lc3BhY2UuICovCiArCSAgICAgIHN5bSA9IGNwX2xvb2t1cF9zeW1ib2xfaW1wb3J0cyAo Y3VycmVudC0+aW1wb3J0X3NyYywKICsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lLApAQCAtMjEzMyw3ICsyMjA3LDcgQEAgaW5kZXggOGNhOWMyMC4uMjFlMDEzYSAx MDA2NDQKICB9CiAgCiAgLyogTG9vayB1cCBOQU1FIGluIEJMT0NLJ3Mgc3RhdGljIGJsb2NrIGFu ZCBpbiBnbG9iYWwgYmxvY2tzLiAgSWYKLUBAIC00NTMsMTcgKzUxNywxNSBAQCBsb29rdXBfbmFt ZXNwYWNlX3Njb3BlIChjb25zdCBjaGFyICpuYW1lLAorQEAgLTQ3NiwxNyArNTI1LDE1IEBAIGxv b2t1cF9uYW1lc3BhY2Vfc2NvcGUgKGNvbnN0IGNoYXIgKm5hbWUsCiAgCiAgc3RhdGljIHN0cnVj dCBzeW1ib2wgKgogIGxvb2t1cF9zeW1ib2xfZmlsZSAoY29uc3QgY2hhciAqbmFtZSwKQEAgLTIx NTIsNyArMjIyNiw3IEBAIGluZGV4IDhjYTljMjAuLjIxZTAxM2EgMTAwNjQ0CiAgICBpZiAoYW5v bnltb3VzX25hbWVzcGFjZSkKICAgICAgewogICAgICAgIC8qIFN5bWJvbHMgZGVmaW5lZCBpbiBh bm9ueW1vdXMgbmFtZXNwYWNlcyBoYXZlIGV4dGVybmFsIGxpbmthZ2UKLUBAIC00NzMsMTIgKzUz NSwxMSBAQCBsb29rdXBfc3ltYm9sX2ZpbGUgKGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtNDk2LDEy ICs1NDMsMTEgQEAgbG9va3VwX3N5bWJvbF9maWxlIChjb25zdCBjaGFyICpuYW1lLAogICAgICAg IGNvbnN0IHN0cnVjdCBibG9jayAqZ2xvYmFsX2Jsb2NrID0gYmxvY2tfZ2xvYmFsX2Jsb2NrIChi bG9jayk7CiAgICAgICAgCiAgICAgICAgaWYgKGdsb2JhbF9ibG9jayAhPSBOVUxMKQpAQCAtMjE2 Nyw3ICsyMjQxLDcgQEAgaW5kZXggOGNhOWMyMC4uMjFlMDEzYSAxMDA2NDQKICAgICAgfQogIAog ICAgaWYgKHN5bSAhPSBOVUxMKQotQEAgLTQ5OSw2ICs1NjAsNyBAQCBsb29rdXBfc3ltYm9sX2Zp bGUgKGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtNTIyLDYgKzU2OCw3IEBAIGxvb2t1cF9zeW1ib2xf ZmlsZSAoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICBzeW0gPSBsb29rdXBfcG9zc2libGVfbmFt ZXNwYWNlX3N5bWJvbCAobmFtZSk7CiAgICAgICAgaWYgKHN5bSAhPSBOVUxMKQogIAlyZXR1cm4g c3ltOwpAQCAtMjE3NSw3ICsyMjQ5LDcgQEAgaW5kZXggOGNhOWMyMC4uMjFlMDEzYSAxMDA2NDQK ICAgICAgfQogIAogICAgcmV0dXJuIE5VTEw7Ci1AQCAtNTI3LDEwICs1ODksOSBAQCBjcF9sb29r dXBfbmVzdGVkX3R5cGUgKHN0cnVjdCB0eXBlICpwYXJlbnRfdHlwZSwKK0BAIC01NTAsMTAgKzU5 Nyw5IEBAIGNwX2xvb2t1cF9uZXN0ZWRfdHlwZSAoc3RydWN0IHR5cGUgKnBhcmVudF90eXBlLAog IAogIAljb25zdCBjaGFyICpwYXJlbnRfbmFtZSA9IFRZUEVfVEFHX05BTUUgKHBhcmVudF90eXBl KTsKICAJc3RydWN0IHN5bWJvbCAqc3ltID0gY3BfbG9va3VwX3N5bWJvbF9pbl9uYW1lc3BhY2Ug KHBhcmVudF9uYW1lLApAQCAtMjE4OSw3ICsyMjYzLDcgQEAgaW5kZXggOGNhOWMyMC4uMjFlMDEz YSAxMDA2NDQKICAJaWYgKHN5bSA9PSBOVUxMIHx8IFNZTUJPTF9DTEFTUyAoc3ltKSAhPSBMT0Nf VFlQRURFRikKICAJICByZXR1cm4gTlVMTDsKICAJZWxzZQotQEAgLTc3NCw3ICs4MzUsNyBAQCBj aGVja19vbmVfcG9zc2libGVfbmFtZXNwYWNlX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwgaW50 IGxlbiwKK0BAIC03OTcsNyArODQzLDcgQEAgY2hlY2tfb25lX3Bvc3NpYmxlX25hbWVzcGFjZV9z eW1ib2wgKGNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW4sCiAgCiAgICBtZW1jcHkgKG5hbWVfY29w eSwgbmFtZSwgbGVuKTsKICAgIG5hbWVfY29weVtsZW5dID0gJ1wwJzsKQEAgLTIxOTgsNyArMjI3 Miw3IEBAIGluZGV4IDhjYTljMjAuLjIxZTAxM2EgMTAwNjQ0CiAgCiAgICBpZiAoc3ltID09IE5V TEwpCiAgICAgIHsKLUBAIC04MTUsNyArODc2LDcgQEAgbG9va3VwX3Bvc3NpYmxlX25hbWVzcGFj ZV9zeW1ib2wgKGNvbnN0IGNoYXIgKm5hbWUpCitAQCAtODM4LDcgKzg4NCw3IEBAIGxvb2t1cF9w b3NzaWJsZV9uYW1lc3BhY2Vfc3ltYm9sIChjb25zdCBjaGFyICpuYW1lKQogICAgICAgIHN0cnVj dCBzeW1ib2wgKnN5bTsKICAKICAgICAgICBzeW0gPSBsb29rdXBfYmxvY2tfc3ltYm9sIChnZXRf cG9zc2libGVfbmFtZXNwYWNlX2Jsb2NrIChvYmpmaWxlKSwKQEAgLTIyMDgsOSArMjI4MiwxOCBA QCBpbmRleCA4Y2E5YzIwLi4yMWUwMTNhIDEwMDY0NAogICAgICAgIGlmIChzeW0gIT0gTlVMTCkK ICAJcmV0dXJuIHN5bTsKIGRpZmYgLS1naXQgYS9nZGIvY3Atc3VwcG9ydC5jIGIvZ2RiL2NwLXN1 cHBvcnQuYwotaW5kZXggYzMxZmNmZi4uZmMyOTRhZSAxMDA2NDQKK2luZGV4IGMzMWZjZmYuLjhj NWQ1NmYgMTAwNjQ0CiAtLS0gYS9nZGIvY3Atc3VwcG9ydC5jCiArKysgYi9nZGIvY3Atc3VwcG9y dC5jCitAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgdm9pZCBkZW1hbmdsZWRfbmFtZV9jb21wbGFp bnQgKGNvbnN0IGNoYXIgKm5hbWUpOworIAorIC8qIEZ1bmN0aW9ucy92YXJpYWJsZXMgcmVsYXRl ZCB0byBvdmVybG9hZCByZXNvbHV0aW9uLiAgKi8KKyAKKy1zdGF0aWMgaW50IHN5bV9yZXR1cm5f dmFsX3NpemU7Cisrc3RhdGljIGludCBzeW1fcmV0dXJuX3ZhbF9zaXplID0gLTE7Cisgc3RhdGlj IGludCBzeW1fcmV0dXJuX3ZhbF9pbmRleDsKKyBzdGF0aWMgc3RydWN0IHN5bWJvbCAqKnN5bV9y ZXR1cm5fdmFsOworIAogQEAgLTE5MCw3ICsxOTAsOCBAQCBtYW5nbGVkX25hbWVfdG9fY29tcCAo Y29uc3QgY2hhciAqbWFuZ2xlZF9uYW1lLCBpbnQgb3B0aW9ucywKICAgIHJldHVybiByZXQ7CiAg fQpAQCAtMjIyMSw3ICsyMzA0LDExMiBAQCBpbmRleCBjMzFmY2ZmLi5mYzI5NGFlIDEwMDY0NAog IAogIGNoYXIgKgogIGNwX2NsYXNzX25hbWVfZnJvbV9waHlzbmFtZSAoY29uc3QgY2hhciAqcGh5 c25hbWUpCi1AQCAtODQwLDkgKzg0MSw5IEBAIHJlYWRfaW5fcHN5bXRhYnMgKGNvbnN0IGNoYXIg KmZ1bmNfbmFtZSkKK0BAIC03MTEsNiArNzEyLDgyIEBAIG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xp c3QgKGNvbnN0IGNoYXIgKmZ1bmNfbmFtZSwKKyAKKyAgIHJldHVybiBzeW1fcmV0dXJuX3ZhbDsK KyB9CisrLyogQWRkcyB0aGUgZnVuY3Rpb24gRlVOQ19OQU1FIGZyb20gTkFNRVNQQUNFIHRvIHRo ZSBvdmVybG9hZCBzZXQuICAqLworKworK3N0YXRpYyB2b2lkCisrbWFrZV9zeW1ib2xfb3Zlcmxv YWRfbGlzdF9uYW1lc3BhY2UgKGNvbnN0IGNoYXIgKmZ1bmNfbmFtZSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZXNwYWNlKQorK3sKKysKKysg IGlmIChuYW1lc3BhY2VbMF0gPT0gJ1wwJykKKysgICAgeworKyAgICAgIG1ha2Vfc3ltYm9sX292 ZXJsb2FkX2xpc3RfcXVhbGlmaWVkIChmdW5jX25hbWUpOworKyAgICB9CisrICBlbHNlCisrICAg IHsKKysgICAgICBjaGFyICpjb25jYXRlbmF0ZWRfbmFtZQorKwk9IGFsbG9jYSAoc3RybGVuIChu YW1lc3BhY2UpICsgMiArIHN0cmxlbiAoZnVuY19uYW1lKSArIDEpOworKyAgICAgIHN0cmNweSAo Y29uY2F0ZW5hdGVkX25hbWUsIG5hbWVzcGFjZSk7CisrICAgICAgc3RyY2F0IChjb25jYXRlbmF0 ZWRfbmFtZSwgIjo6Iik7CisrICAgICAgc3RyY2F0IChjb25jYXRlbmF0ZWRfbmFtZSwgZnVuY19u YW1lKTsKKysgICAgICBtYWtlX3N5bWJvbF9vdmVybG9hZF9saXN0X3F1YWxpZmllZCAoY29uY2F0 ZW5hdGVkX25hbWUpOworKyAgICB9CisrfQorKworKy8qIFNlYXJjaCB0aGUgbmFtZXNwYWNlIG9m IHRoZSBnaXZlbiB0eXBlIGFuZCBuYW1lc3BhY2Ugb2YgYW5kIHB1YmxpYyBiYXNlCisrIHR5cGVz LiAgKi8KKytzdGF0aWMgdm9pZCBtYWtlX3N5bWJvbF9vdmVybG9hZF9saXN0X2FkbF9uYW1lc3Bh Y2UgKHN0cnVjdCB0eXBlICp0eXBlLAorKwkJCQkJCSAgICAgY29uc3QgY2hhciAqZnVuY19uYW1l KQorK3sKKysgIGNoYXIgKm5hbWVzcGFjZTsKKysgIGNoYXIgKnR5cGVfbmFtZTsKKysgIGludCBp LCBwcmVmaXhfbGVuOworKworKyAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1BU UiB8fCBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9SRUYKKysgICAgICB8fCBUWVBFX0NP REUgKHR5cGUpID09IFRZUEVfQ09ERV9BUlJBWSkKKysgICAgcmV0dXJuIG1ha2Vfc3ltYm9sX292 ZXJsb2FkX2xpc3RfYWRsX25hbWVzcGFjZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNfbmFt ZSk7CisrCisrICB0eXBlX25hbWUgPSBUWVBFX05BTUUgKHR5cGUpOworKworKyAgcHJlZml4X2xl biA9IGNwX2VudGlyZV9wcmVmaXhfbGVuICh0eXBlX25hbWUpOworKworKyAgaWYgKHByZWZpeF9s ZW4gIT0gMCkKKysgICAgeworKyAgICAgIG5hbWVzcGFjZSA9IGFsbG9jYSAocHJlZml4X2xlbiAr IDEpOworKyAgICAgIHN0cm5jcHkgKG5hbWVzcGFjZSwgdHlwZV9uYW1lLCBwcmVmaXhfbGVuKTsK KysgICAgICBuYW1lc3BhY2VbcHJlZml4X2xlbl0gPSAnXDAnOworKworKyAgICAgIG1ha2Vfc3lt Ym9sX292ZXJsb2FkX2xpc3RfbmFtZXNwYWNlIChmdW5jX25hbWUsIG5hbWVzcGFjZSk7CisrICAg IH0KKysKKysgIC8qIENoZWNrIHB1YmxpYyBiYXNlIHR5cGUgKi8KKysgIGlmIChUWVBFX0NPREUo dHlwZSkgPT0gVFlQRV9DT0RFX0NMQVNTKQorKyAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JB U0VDTEFTU0VTICh0eXBlKTsgaSsrKQorKyAgICAgIHsKKysJaWYgKEJBU0VUWVBFX1ZJQV9QVUJM SUMgKHR5cGUsIGkpKQorKwkgIG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3RfYWRsX25hbWVzcGFj ZSAoVFlQRV9CQVNFQ0xBU1MgKHR5cGUsIGkpLAorKwkJCQkJCSAgIGZ1bmNfbmFtZSk7CisrICAg ICAgfQorKworK30KKysKKysvKiBBZGRzIHRoZSB0aGUgb3ZlcmxvYWQgbGlzdCBvdmVybG9hZCBj YW5kaWRhdGVzIGZvciBGVU5DX05BTUUgZm91bmQgdGhyb3VnaAorKyAgIGFyZ3VtZW50IGRlcGVu ZGVudCBsb29rdXAuICAqLworKworK3N0cnVjdCBzeW1ib2wgKioKKyttYWtlX3N5bWJvbF9vdmVy bG9hZF9saXN0X2FkbCAoc3RydWN0IHR5cGUgKiphcmdfdHlwZXMsIGludCBuYXJncywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZnVuY19uYW1lKQorK3sKKysg IGludCBpOworKworKyAgZ2RiX2Fzc2VydCAoc3ltX3JldHVybl92YWxfc2l6ZSAhPSAtMSk7Cisr CisrICBmb3IgKGkgPSAxOyBpIDw9IG5hcmdzOyBpKyspCisrICAgIG1ha2Vfc3ltYm9sX292ZXJs b2FkX2xpc3RfYWRsX25hbWVzcGFjZSAoYXJnX3R5cGVzW2kgLSAxXSwgZnVuY19uYW1lKTsKKysK KysgIHJldHVybiBzeW1fcmV0dXJuX3ZhbDsKKyt9CisgCisgLyogVGhpcyBhcHBsaWVzIHRoZSB1 c2luZyBkaXJlY3RpdmVzIHRvIGFkZCBuYW1lc3BhY2VzIHRvIHNlYXJjaCBpbiwKKyAgICBhbmQg dGhlbiBzZWFyY2hlcyBmb3Igb3ZlcmxvYWRzIGluIGFsbCBvZiB0aG9zZSBuYW1lc3BhY2VzLiAg SXQKK0BAIC03MzksMjAgKzgxNiw3IEBAIG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3RfdXNpbmcg KGNvbnN0IGNoYXIgKmZ1bmNfbmFtZSwKKyAgICAgfQorIAorICAgLyogTm93LCBhZGQgbmFtZXMg Zm9yIHRoaXMgbmFtZXNwYWNlLiAgKi8KKy0gIAorLSAgaWYgKG5hbWVzcGFjZVswXSA9PSAnXDAn KQorLSAgICB7CistICAgICAgbWFrZV9zeW1ib2xfb3ZlcmxvYWRfbGlzdF9xdWFsaWZpZWQgKGZ1 bmNfbmFtZSk7CistICAgIH0KKy0gIGVsc2UKKy0gICAgeworLSAgICAgIGNoYXIgKmNvbmNhdGVu YXRlZF9uYW1lCistCT0gYWxsb2NhIChzdHJsZW4gKG5hbWVzcGFjZSkgKyAyICsgc3RybGVuIChm dW5jX25hbWUpICsgMSk7CistICAgICAgc3RyY3B5IChjb25jYXRlbmF0ZWRfbmFtZSwgbmFtZXNw YWNlKTsKKy0gICAgICBzdHJjYXQgKGNvbmNhdGVuYXRlZF9uYW1lLCAiOjoiKTsKKy0gICAgICBz dHJjYXQgKGNvbmNhdGVuYXRlZF9uYW1lLCBmdW5jX25hbWUpOworLSAgICAgIG1ha2Vfc3ltYm9s X292ZXJsb2FkX2xpc3RfcXVhbGlmaWVkIChjb25jYXRlbmF0ZWRfbmFtZSk7CistICAgIH0KKysg IG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3RfbmFtZXNwYWNlIChmdW5jX25hbWUsIG5hbWVzcGFj ZSk7CisgfQorIAorIC8qIFRoaXMgZG9lcyB0aGUgYnVsayBvZiB0aGUgd29yayBvZiBmaW5kaW5n IG92ZXJsb2FkZWQgc3ltYm9scy4KK0BAIC04NDAsOSArOTA0LDkgQEAgcmVhZF9pbl9wc3ltdGFi cyAoY29uc3QgY2hhciAqZnVuY19uYW1lKQogICAgICBpZiAocHMtPnJlYWRpbikKICAgICAgICBj b250aW51ZTsKICAKQEAgLTIyMzQsNDMgKzI0MjIsNDEgQEAgaW5kZXggYzMxZmNmZi4uZmMyOTRh ZSAxMDA2NDQKICAgICAgICBwc3ltdGFiX3RvX3N5bXRhYiAocHMpOwogICAgfQogZGlmZiAtLWdp dCBhL2dkYi9jcC1zdXBwb3J0LmggYi9nZGIvY3Atc3VwcG9ydC5oCi1pbmRleCAzM2IxYjQ0Li41 MGY4ZmU5IDEwMDY0NAoraW5kZXggYTZhOWFmMS4uNTdhYTVlNSAxMDA2NDQKIC0tLSBhL2dkYi9j cC1zdXBwb3J0LmgKICsrKyBiL2dkYi9jcC1zdXBwb3J0LmgKLUBAIC0zOCwxNCArMzgsMjkgQEAg c3RydWN0IGRlbWFuZ2xlX2NvbXBvbmVudDsKK0BAIC0zOCwyMCArMzgsMjQgQEAgc3RydWN0IGRl bWFuZ2xlX2NvbXBvbmVudDsKICAKICAvKiBUaGlzIHN0cnVjdCBpcyBkZXNpZ25lZCB0byBzdG9y ZSBkYXRhIGZyb20gdXNpbmcgZGlyZWN0aXZlcy4gIEl0CiAgICAgc2F5cyB0aGF0IG5hbWVzIGZy b20gbmFtZXNwYWNlIElNUE9SVF9TUkMgc2hvdWxkIGJlIHZpc2libGUgd2l0aGluCi0tICAgbmFt ZXNwYWNlIElNUE9SVF9ERVNULiBJTVBPUlRfREVTVCBzaG91bGQgYWx3YXlzIGJlIGEgc3RyaWN0 IGluaXRpYWwKLS0gICBzdWJzdHJpbmcgb2YgSU1QT1JUX1NSQy4gVGhlc2UgZm9ybSBhIGxpbmtl ZCBsaXN0OyBORVhUIGlzIHRoZSBuZXh0IGVsZW1lbnQKLS0gICBvZiB0aGUgbGlzdC4gICovCi0r ICAgbmFtZXNwYWNlIElNUE9SVF9ERVNULiAgSU1QT1JUX0RFU1Qgc2hvdWxkIGFsd2F5cyBiZSBh IHN0cmljdCBpbml0aWFsCi0rICAgc3Vic3RyaW5nIG9mIElNUE9SVF9TUkMuICBUaGVzZSBmb3Jt IGEgbGlua2VkIGxpc3Q7IE5FWFQgaXMgdGhlIG5leHQKKy0gICBuYW1lc3BhY2UgSU1QT1JUX0RF U1QuICBUaGVzZSBmb3JtIGEgbGlua2VkIGxpc3Q7IE5FWFQgaXMgdGhlIG5leHQgZWxlbWVudAor LSAgIG9mIHRoZSBsaXN0LiAgSWYgdGhlIGltcG9ydGVkIG5hbWVzcGFjZSBoYXMgYmVlbiBhbGlh c2VkLCBBTElBUyBpcyBzZXQgdG8gYQorLSAgIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGFsaWFz LiAgT3RoZXJ3aXNlLCBBTElBUyBpcyBOVUxMLgorLSAgIEVnOgorLSAgICAgICBuYW1lc3BhY2Ug QyA9IEE6OkI7CisrICAgbmFtZXNwYWNlIElNUE9SVF9ERVNULiAgVGhlc2UgZm9ybSBhIGxpbmtl ZCBsaXN0OyBORVhUIGlzIHRoZSBuZXh0CiArICAgZWxlbWVudCBvZiB0aGUgbGlzdC4gIEFMSUFT IGlzIHNldCB0byBhIG5vbiBlbXB0eSBzdHJpbmcgaWYgdGhlIGltcG9ydGVkCiArICAgbmFtZXNw YWNlIGhhcyBiZWVuIGFsaWFzZWQuRWc6CiArICAgICAgIG5hbWVzcGFjZSBDPUE6OkI7Ci0rICAg QUxJQVMgPSAiQyIKKyAgICBBTElBUyA9ICJDIgogKyAgIERFQ0xBUkFUSU9OIGlzIHRoZSBuYW1l IG9mIHRoZSBpbXBvcnRlZCBkZWNsYXJhdGlvbiwgaWYgdGhpcyBpbXBvcnQgCiArICAgc3RhdGVt ZW50IHJlcHJlc2VudHMgb25lLiBFZzoKICsgICAgICAgdXNpbmcgQTo6eDsKICsgICBXaGVyZSB4 IGlzIHZhcmlhYmxlIGluIG5hbWVzcGFjZSBBLiBkZWNsYXJhdGlvbiBpcyBzZXQgdG8geC4gIAot KyovCisgKi8KICAKICBzdHJ1Y3QgdXNpbmdfZGlyZWN0CiAgewogICAgY2hhciAqaW1wb3J0X3Ny YzsKICAgIGNoYXIgKmltcG9ydF9kZXN0OwotKwotKyAgY2hhciAqYWxpYXM7Ci0rCistCisgICBj aGFyICphbGlhczsKICsgIGNoYXIgKmRlY2xhcmF0aW9uOwotKwogKyAgaW50IGxpbmVfbnVtYmVy OwotKworIAogICAgc3RydWN0IHVzaW5nX2RpcmVjdCAqbmV4dDsKICAKLSAgIC8qIFVzZWQgZHVy aW5nIGltcG9ydCBzZWFyY2ggdG8gdGVtcG9yYXJpbHkgbWFyayB0aGlzIG5vZGUgYXMgc2VhcmNo ZWQuICAqLwotQEAgLTU3LDYgKzcyLDcgQEAgc3RydWN0IHVzaW5nX2RpcmVjdAorQEAgLTY0LDYg KzY4LDcgQEAgc3RydWN0IHVzaW5nX2RpcmVjdAogIAogIGV4dGVybiBjaGFyICpjcF9jYW5vbmlj YWxpemVfc3RyaW5nIChjb25zdCBjaGFyICpzdHJpbmcpOwogIApAQCAtMjI3OCwyNSArMjQ2NCwz NSBAQCBpbmRleCAzM2IxYjQ0Li41MGY4ZmU5IDEwMDY0NAogIGV4dGVybiBjaGFyICpjcF9jbGFz c19uYW1lX2Zyb21fcGh5c25hbWUgKGNvbnN0IGNoYXIgKnBoeXNuYW1lKTsKICAKICBleHRlcm4g Y2hhciAqbWV0aG9kX25hbWVfZnJvbV9waHlzbmFtZSAoY29uc3QgY2hhciAqcGh5c25hbWUpOwot QEAgLTgyLDEwICs5OCwxNiBAQCBleHRlcm4gaW50IGNwX3ZhbGlkYXRlX29wZXJhdG9yIChjb25z dCBjaGFyICppbnB1dCk7Ci0gZXh0ZXJuIGludCBjcF9pc19hbm9ueW1vdXMgKGNvbnN0IGNoYXIg Km5hbWVzcGFjZSk7CitAQCAtNzksNiArODQsMTAgQEAgZXh0ZXJuIGNoYXIgKmNwX3JlbW92ZV9w YXJhbXMgKGNvbnN0IGNoYXIgKmRlbWFuZ2xlZF9uYW1lKTsKKyBleHRlcm4gc3RydWN0IHN5bWJv bCAqKm1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3QgKGNvbnN0IGNoYXIgKiwKKyAJCQkJCQkgIGNv bnN0IGNoYXIgKik7CisgCisrZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKiptYWtlX3N5bWJvbF9vdmVy bG9hZF9saXN0X2FkbCAoc3RydWN0IHR5cGUgKiphcmdfdHlwZXMsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5hcmdzLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKmZ1bmNfbmFtZSk7CisrCisgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcF9sb29rdXBfcnR0aV90 eXBlIChjb25zdCBjaGFyICpuYW1lLAorIAkJCQkJIHN0cnVjdCBibG9jayAqYmxvY2spOworIAor QEAgLTkwLDExICs5OSwxNSBAQCBleHRlcm4gaW50IGNwX2lzX2Fub255bW91cyAoY29uc3QgY2hh ciAqbmFtZXNwYWNlKTsKICAKICBleHRlcm4gdm9pZCBjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChj b25zdCBjaGFyICpkZXN0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKnNyYyk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciAqc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKnNyYywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICphbGlhcyk7CiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqYWxpYXMsCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqZGVjbGFyYXRpb24sCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgaW50IGxpbmVfbnVtYmVyKTsKICAKICBleHRlcm4gc3RydWN0IHVzaW5nX2RpcmVjdCAq Y3BfYWRkX3VzaW5nIChjb25zdCBjaGFyICpkZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICphbGlhcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICphbGlhcywKICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpkZWNsYXJhdGlv biwKICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQg bGluZV9udW1iZXIsCiAgCQkJCQkgIHN0cnVjdCB1c2luZ19kaXJlY3QgKm5leHQpOwogIAogIGV4 dGVybiB2b2lkIGNwX2luaXRpYWxpemVfbmFtZXNwYWNlICh2b2lkKTsKLUBAIC0xMDIsMTYgKzEy NCwyMCBAQCBleHRlcm4gdm9pZCBjcF9zZXRfYmxvY2tfc2NvcGUgKGNvbnN0IHN0cnVjdCBzeW1i b2wgKnN5bWJvbCwKK0BAIC0xMTEsMTYgKzEyNCwyMCBAQCBleHRlcm4gdm9pZCBjcF9zZXRfYmxv Y2tfc2NvcGUgKGNvbnN0IHN0cnVjdCBzeW1ib2wgKnN5bWJvbCwKICBleHRlcm4gdm9pZCBjcF9z Y2FuX2Zvcl9hbm9ueW1vdXNfbmFtZXNwYWNlcyAoY29uc3Qgc3RydWN0IHN5bWJvbCAqc3ltYm9s KTsKICAKICBleHRlcm4gc3RydWN0IHN5bWJvbCAqY3BfbG9va3VwX3N5bWJvbF9ub25sb2NhbCAo Y29uc3QgY2hhciAqbmFtZSwKQEAgLTIzMjQsNyArMjUyMCw3IEBAIGluZGV4IDMzYjFiNDQuLjUw ZjhmZTkgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcF9sb29rdXBfbmVzdGVkX3R5cGUg KHN0cnVjdCB0eXBlICpwYXJlbnRfdHlwZSwKICAJCQkJCSAgIGNvbnN0IGNoYXIgKm5lc3RlZF9u YW1lLAogZGlmZiAtLWdpdCBhL2dkYi9kYnhyZWFkLmMgYi9nZGIvZGJ4cmVhZC5jCi1pbmRleCA2 ZWY2NzY3Li41ZjQ4MjVjIDEwMDY0NAoraW5kZXggYzlhNTc1NC4uZmMzM2RhMiAxMDA2NDQKIC0t LSBhL2dkYi9kYnhyZWFkLmMKICsrKyBiL2dkYi9kYnhyZWFkLmMKIEBAIC0zNTY1LDYgKzM1NjUs NyBAQCBzdGF0aWMgc3RydWN0IHN5bV9mbnMgYW91dF9zeW1fZm5zID0KQEAgLTIzMzYsNyArMjUz Miw3IEBAIGluZGV4IDZlZjY3NjcuLjVmNDgyNWMgMTAwNjQ0CiAgICBkZWZhdWx0X3N5bWZpbGVf b2Zmc2V0cywgLyogc3ltX29mZnNldHM6IHBhcnNlIHVzZXIncyBvZmZzZXRzIHRvCiAgCQkJICAg ICAgaW50ZXJuYWwgZm9ybSAqLwogZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9n ZGIvZG9jL2dkYi50ZXhpbmZvCi1pbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAoraW5kZXgg MGUzZTA5My4uNjYxYmExOCAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KICsrKyBi L2dkYi9kb2MvZ2RiLnRleGluZm8KIEBAIC0xMTU3LDYgKzExNTcsMTYgQEAgZm9yIHJlbW90ZSBk ZWJ1Z2dpbmcuCkBAIC0yMzU2LDcgKzI1NTIsNyBAQCBpbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEw MDY0NAogIEBjIHJlc29sdmUgdGhlIHNpdHVhdGlvbiBvZiB0aGVzZSBldmVudHVhbGx5CiAgQGl0 ZW0gLXR1aQogIEBjaW5kZXggQGNvZGV7LS10dWl9Ci1AQCAtMTkyMDYsNyArMTkyMTYsNyBAQCB1 c2luZyB0aGUgQGNvZGV7c2NyaXB0LWV4dGVuc2lvbn0gc2V0dGluZy4KK0BAIC0xOTIxNSw3ICsx OTIyNSw3IEBAIHVzaW5nIHRoZSBAY29kZXtzY3JpcHQtZXh0ZW5zaW9ufSBzZXR0aW5nLgogIEB0 YWJsZSBAY29kZQogIEBraW5kZXggc291cmNlCiAgQGNpbmRleCBleGVjdXRlIGNvbW1hbmRzIGZy b20gYSBmaWxlCkBAIC0yMzY1LDcgKzI1NjEsNyBAQCBpbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEw MDY0NAogIEV4ZWN1dGUgdGhlIGNvbW1hbmQgZmlsZSBAdmFye2ZpbGVuYW1lfS4KICBAZW5kIHRh YmxlCiAgCi1AQCAtMTk0ODQsOCArMTk0OTQsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBG b3IgZXhhbXBsZToKK0BAIC0xOTQ5Myw4ICsxOTUwMyw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5k fS4gIEZvciBleGFtcGxlOgogIAogIEBzbWFsbGV4YW1wbGUKICAoQHZhbHVle0dEQlB9KSBweXRo b24KQEAgLTIzNzQsNyArMjU3MCw3IEBAIGluZGV4IDIxNDVmMmIuLjg0Y2FkZDQgMTAwNjQ0CiAg PnByaW50IDIzCiAgPmVuZAogIDIzCi1AQCAtMTk0OTgsNiArMTk1MDYsMTQgQEAgaW4gYSBQeXRo b24gc2NyaXB0LiAgVGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2luZyBAY29kZXttYWludCBzZXQK K0BAIC0xOTUwNyw2ICsxOTUxNSwxNCBAQCBpbiBhIFB5dGhvbiBzY3JpcHQuICBUaGlzIGNhbiBi ZSBjb250cm9sbGVkIHVzaW5nIEBjb2Rle21haW50IHNldAogIHB5dGhvbiBwcmludC1zdGFja306 IGlmIEBjb2Rle29ufSwgdGhlIGRlZmF1bHQsIHRoZW4gUHl0aG9uIHN0YWNrCiAgcHJpbnRpbmcg aXMgZW5hYmxlZDsgaWYgQGNvZGV7b2ZmfSwgdGhlbiBQeXRob24gc3RhY2sgcHJpbnRpbmcgaXMK ICBkaXNhYmxlZC4KQEAgLTIzODksNyArMjU4NSw3IEBAIGluZGV4IDIxNDVmMmIuLjg0Y2FkZDQg MTAwNjQ0CiAgQGVuZCB0YWJsZQogIAogIEl0IGlzIGFsc28gcG9zc2libGUgdG8gZXhlY3V0ZSBh IFB5dGhvbiBzY3JpcHQgZnJvbSB0aGUgQHZhbHVle0dEQk59Ci1AQCAtMTk1MTksNiArMTk1MzUs MTQgQEAgYW5kIHRodXMgaXMgYWx3YXlzIGF2YWlsYWJsZS4KK0BAIC0xOTUyOCw2ICsxOTU0NCwx NCBAQCBhbmQgdGh1cyBpcyBhbHdheXMgYXZhaWxhYmxlLgogIEBjaW5kZXggcHl0aG9uIGFwaQog IEBjaW5kZXggcHJvZ3JhbW1pbmcgaW4gcHl0aG9uCiAgCkBAIC0yNDA0LDcgKzI2MDAsNyBAQCBp bmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAogIEBjaW5kZXggcHl0aG9uIHN0ZG91dAogIEBj aW5kZXggcHl0aG9uIHBhZ2luYXRpb24KICBBdCBzdGFydHVwLCBAdmFsdWV7R0RCTn0gb3ZlcnJp ZGVzIFB5dGhvbidzIEBjb2Rle3N5cy5zdGRvdXR9IGFuZAotQEAgLTE5NTMxLDEzICsxOTU1NSwx NyBAQCBzaXR1YXRpb24sIGEgUHl0aG9uIEBjb2Rle0tleWJvYXJkSW50ZXJydXB0fSBleGNlcHRp b24gaXMgdGhyb3duLgorQEAgLTE5NTQwLDEzICsxOTU2NCwxNyBAQCBzaXR1YXRpb24sIGEgUHl0 aG9uIEBjb2Rle0tleWJvYXJkSW50ZXJydXB0fSBleGNlcHRpb24gaXMgdGhyb3duLgogICogQmFz aWMgUHl0aG9uOjogICAgICAgICAgICAgICAgQmFzaWMgUHl0aG9uIEZ1bmN0aW9ucy4KICAqIEV4 Y2VwdGlvbiBIYW5kbGluZzo6CiAgKiBBdXRvLWxvYWRpbmc6OiAgICAgICAgICAgICAgICBBdXRv bWF0aWNhbGx5IGxvYWRpbmcgUHl0aG9uIGNvZGUuCkBAIC0yNDIzLDcgKzI2MTksNyBAQCBpbmRl eCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAogICogRnJhbWVzIEluIFB5dGhvbjo6ICAgICAgICAg ICAgQWNlc3NpbmcgaW5mZXJpb3Igc3RhY2sgZnJhbWVzIGZyb20gUHl0aG9uLgogICogTGF6eSBT dHJpbmdzIEluIFB5dGhvbjo6ICAgICAgUHl0aG9uIHJlcHJlc2VudGF0aW9uIG9mIGxhenkgc3Ry aW5ncy4KICBAZW5kIG1lbnUKLUBAIC0xOTU2NSw2ICsxOTU5MywxMiBAQCBjb21tYW5kIGFzIGhh dmluZyBvcmlnaW5hdGVkIGZyb20gdGhlIHVzZXIgaW52b2tpbmcgaXQgaW50ZXJhY3RpdmVseS4K K0BAIC0xOTU3NCw2ICsxOTYwMiwxMiBAQCBjb21tYW5kIGFzIGhhdmluZyBvcmlnaW5hdGVkIGZy b20gdGhlIHVzZXIgaW52b2tpbmcgaXQgaW50ZXJhY3RpdmVseS4KICBJdCBtdXN0IGJlIGEgYm9v bGVhbiB2YWx1ZS4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIEBjb2Rle0ZhbHNlfS4KICBA ZW5kIGRlZnVuCiAgCkBAIC0yNDM2LDcgKzI2MzIsNyBAQCBpbmRleCAyMTQ1ZjJiLi44NGNhZGQ0 IDEwMDY0NAogIEBmaW5kZXggZ2RiLnBhcmFtZXRlcgogIEBkZWZ1biBwYXJhbWV0ZXIgcGFyYW1l dGVyCiAgUmV0dXJuIHRoZSB2YWx1ZSBvZiBhIEB2YWx1ZXtHREJOfSBwYXJhbWV0ZXIuICBAdmFy e3BhcmFtZXRlcn0gaXMgYQotQEAgLTE5NTgxLDYgKzE5NjE1LDcgQEAgYSBQeXRob24gdmFsdWUg b2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUsIGFuZCByZXR1cm5lZC4KK0BAIC0xOTU5MCw2ICsxOTYy NCw3IEBAIGEgUHl0aG9uIHZhbHVlIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLCBhbmQgcmV0dXJu ZWQuCiAgQGRlZnVuIGhpc3RvcnkgbnVtYmVyCiAgUmV0dXJuIGEgdmFsdWUgZnJvbSBAdmFsdWV7 R0RCTn0ncyB2YWx1ZSBoaXN0b3J5IChAcHhyZWZ7VmFsdWUKICBIaXN0b3J5fSkuICBAdmFye251 bWJlcn0gaW5kaWNhdGVzIHdoaWNoIGhpc3RvcnkgZWxlbWVudCB0byByZXR1cm4uCkBAIC0yNDQ0 LDcgKzI2NDAsNyBAQCBpbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAogIElmIEB2YXJ7bnVt YmVyfSBpcyBuZWdhdGl2ZSwgdGhlbiBAdmFsdWV7R0RCTn0gd2lsbCB0YWtlIGl0cyBhYnNvbHV0 ZSB2YWx1ZQogIGFuZCBjb3VudCBiYWNrd2FyZCBmcm9tIHRoZSBsYXN0IGVsZW1lbnQgKGkuZS4s IHRoZSBtb3N0IHJlY2VudCBlbGVtZW50KSB0bwogIGZpbmQgdGhlIHZhbHVlIHRvIHJldHVybi4g IElmIEB2YXJ7bnVtYmVyfSBpcyB6ZXJvLCB0aGVuIEB2YWx1ZXtHREJOfSB3aWxsCi1AQCAtMTk2 MDUsNiArMTk2NDAsMjEgQEAgY29tcHV0ZSB2YWx1ZXMsIGZvciBleGFtcGxlLCBpdCBpcyB0aGUg b25seSB3YXkgdG8gZ2V0IHRoZSB2YWx1ZSBvZiBhCitAQCAtMTk2MTQsNiArMTk2NDksMjEgQEAg Y29tcHV0ZSB2YWx1ZXMsIGZvciBleGFtcGxlLCBpdCBpcyB0aGUgb25seSB3YXkgdG8gZ2V0IHRo ZSB2YWx1ZSBvZiBhCiAgY29udmVuaWVuY2UgdmFyaWFibGUgKEBweHJlZntDb252ZW5pZW5jZSBW YXJzfSkgYXMgYSBAY29kZXtnZGIuVmFsdWV9LgogIEBlbmQgZGVmdW4KICAKQEAgLTI0NjYsNyAr MjY2Miw3IEBAIGluZGV4IDIxNDVmMmIuLjg0Y2FkZDQgMTAwNjQ0CiAgQGZpbmRleCBnZGIud3Jp dGUKICBAZGVmdW4gd3JpdGUgc3RyaW5nCiAgUHJpbnQgYSBzdHJpbmcgdG8gQHZhbHVle0dEQk59 J3MgcGFnaW5hdGVkIHN0YW5kYXJkIG91dHB1dCBzdHJlYW0uCi1AQCAtMTk2MTksNiArMTk2Njks MTEgQEAgRmx1c2ggQHZhbHVle0dEQk59J3MgcGFnaW5hdGVkIHN0YW5kYXJkIG91dHB1dCBzdHJl YW0uICBGbHVzaGluZworQEAgLTE5NjI4LDYgKzE5Njc4LDExIEBAIEZsdXNoIEB2YWx1ZXtHREJO fSdzIHBhZ2luYXRlZCBzdGFuZGFyZCBvdXRwdXQgc3RyZWFtLiAgRmx1c2hpbmcKICBmdW5jdGlv bi4KICBAZW5kIGRlZnVuCiAgCkBAIC0yNDc4LDcgKzI2NzQsNyBAQCBpbmRleCAyMTQ1ZjJiLi44 NGNhZGQ0IDEwMDY0NAogIEBub2RlIEV4Y2VwdGlvbiBIYW5kbGluZwogIEBzdWJzdWJzZWN0aW9u IEV4Y2VwdGlvbiBIYW5kbGluZwogIEBjaW5kZXggcHl0aG9uIGV4Y2VwdGlvbnMKLUBAIC0xOTg1 Nyw2ICsxOTkxMiw5IEBAIG1vZHVsZToKK0BAIC0xOTg2Niw2ICsxOTkyMSw5IEBAIG1vZHVsZToK ICBUaGlzIGZ1bmN0aW9uIGxvb2tzIHVwIGEgdHlwZSBieSBuYW1lLiAgQHZhcntuYW1lfSBpcyB0 aGUgbmFtZSBvZiB0aGUKICB0eXBlIHRvIGxvb2sgdXAuICBJdCBtdXN0IGJlIGEgc3RyaW5nLgog IApAQCAtMjQ4OCw3ICsyNjg0LDcgQEAgaW5kZXggMjE0NWYyYi4uODRjYWRkNCAxMDA2NDQKICBP cmRpbmFyaWx5LCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFuIGluc3RhbmNlIG9mIEBjb2Rl e2dkYi5UeXBlfS4KICBJZiB0aGUgbmFtZWQgdHlwZSBjYW5ub3QgYmUgZm91bmQsIGl0IHdpbGwg dGhyb3cgYW4gZXhjZXB0aW9uLgogIEBlbmQgZGVmdW4KLUBAIC0xOTk3OSw3ICsyMDAzNyw3IEBA IElmIHRoZSB0eXBlIGRvZXMgbm90IGhhdmUgYSB0YXJnZXQsIHRoaXMgbWV0aG9kIHdpbGwgdGhy b3cgYW4KK0BAIC0xOTk4OCw3ICsyMDA0Niw3IEBAIElmIHRoZSB0eXBlIGRvZXMgbm90IGhhdmUg YSB0YXJnZXQsIHRoaXMgbWV0aG9kIHdpbGwgdGhyb3cgYW4KICBleGNlcHRpb24uCiAgQGVuZCBk ZWZtZXRob2QKICAKQEAgLTI0OTcsNyArMjY5Myw3IEBAIGluZGV4IDIxNDVmMmIuLjg0Y2FkZDQg MTAwNjQ0CiAgSWYgdGhpcyBAY29kZXtnZGIuVHlwZX0gaXMgYW4gaW5zdGFudGlhdGlvbiBvZiBh IHRlbXBsYXRlLCB0aGlzIHdpbGwKICByZXR1cm4gYSBuZXcgQGNvZGV7Z2RiLlR5cGV9IHdoaWNo IHJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlCiAgQHZhcntufXRoIHRlbXBsYXRlIGFyZ3VtZW50 LgotQEAgLTE5OTg3LDcgKzIwMDQ1LDggQEAgcmV0dXJuIGEgbmV3IEBjb2Rle2dkYi5UeXBlfSB3 aGljaCByZXByZXNlbnRzIHRoZSB0eXBlIG9mIHRoZQorQEAgLTE5OTk2LDcgKzIwMDU0LDggQEAg cmV0dXJuIGEgbmV3IEBjb2Rle2dkYi5UeXBlfSB3aGljaCByZXByZXNlbnRzIHRoZSB0eXBlIG9m IHRoZQogIElmIHRoaXMgQGNvZGV7Z2RiLlR5cGV9IGlzIG5vdCBhIHRlbXBsYXRlIHR5cGUsIHRo aXMgd2lsbCB0aHJvdyBhbgogIGV4Y2VwdGlvbi4gIE9yZGluYXJpbHksIG9ubHkgQ0B0eysrfSBj b2RlIHdpbGwgaGF2ZSB0ZW1wbGF0ZSB0eXBlcy4KICAKQEAgLTI1MDcsNyArMjcwMyw3IEBAIGlu ZGV4IDIxNDVmMmIuLjg0Y2FkZDQgMTAwNjQ0CiAgQGVuZCBkZWZtZXRob2QKICBAZW5kIHRhYmxl CiAgCi1AQCAtMjAzNDEsNiArMjA0MDAsMTIxIEBAIGltcG9ydCBnZGIubGlic3RkY3h4LnY2CitA QCAtMjAzNTAsNiArMjA0MDksMTIxIEBAIGltcG9ydCBnZGIubGlic3RkY3h4LnY2CiAgZ2RiLmxp YnN0ZGN4eC52Ni5yZWdpc3Rlcl9wcmludGVycyAoZ2RiLmN1cnJlbnRfb2JqZmlsZSAoKSkKICBA ZW5kIHNtYWxsZXhhbXBsZQogIApAQCAtMjYyOSw3ICsyODI1LDcgQEAgaW5kZXggMjE0NWYyYi4u ODRjYWRkNCAxMDA2NDQKICBAbm9kZSBDb21tYW5kcyBJbiBQeXRob24KICBAc3Vic3Vic2VjdGlv biBDb21tYW5kcyBJbiBQeXRob24KICAKLUBAIC0yMDU5Myw2ICsyMDc2NywxMzUgQEAgcmVnaXN0 cmF0aW9uIG9mIHRoZSBjb21tYW5kIHdpdGggQHZhbHVle0dEQk59LiAgRGVwZW5kaW5nIG9uIGhv dyB0aGUKK0BAIC0yMDYwMiw2ICsyMDc3NiwxMzUgQEAgcmVnaXN0cmF0aW9uIG9mIHRoZSBjb21t YW5kIHdpdGggQHZhbHVle0dEQk59LiAgRGVwZW5kaW5nIG9uIGhvdyB0aGUKICBQeXRob24gY29k ZSBpcyByZWFkIGludG8gQHZhbHVle0dEQk59LCB5b3UgbWF5IG5lZWQgdG8gaW1wb3J0IHRoZQog IEBjb2Rle2dkYn0gbW9kdWxlIGV4cGxpY2l0bHkuCiAgCkBAIC0yNzY1LDcgKzI5NjEsNyBAQCBp bmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAogIEBub2RlIEZ1bmN0aW9ucyBJbiBQeXRob24K ICBAc3Vic3Vic2VjdGlvbiBXcml0aW5nIG5ldyBjb252ZW5pZW5jZSBmdW5jdGlvbnMKICAKLUBA IC0yMDY5Nyw2ICsyMTAwMCw4MiBAQCB3aGljaCBpcyB1c2VkIHRvIGZvcm1hdCB0aGUgdmFsdWUu ICBAeHJlZntQcmV0dHkgUHJpbnRpbmd9LCBmb3IgbW9yZQorQEAgLTIwNzA2LDYgKzIxMDA5LDgy IEBAIHdoaWNoIGlzIHVzZWQgdG8gZm9ybWF0IHRoZSB2YWx1ZS4gIEB4cmVme1ByZXR0eSBQcmlu dGluZ30sIGZvciBtb3JlCiAgaW5mb3JtYXRpb24uCiAgQGVuZCBkZWZpdmFyCiAgCkBAIC0yODQ4 LDcgKzMwNDQsNyBAQCBpbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAogIEBub2RlIEZyYW1l cyBJbiBQeXRob24KICBAc3Vic3Vic2VjdGlvbiBBY2Vzc2luZyBpbmZlcmlvciBzdGFjayBmcmFt ZXMgZnJvbSBQeXRob24uCiAgCi1AQCAtMjA3NjEsNiArMjExNDAsMTQgQEAgZnVuY3Rpb24gdG8g YSBzdHJpbmcuCitAQCAtMjA3NzAsNiArMjExNDksMTQgQEAgZnVuY3Rpb24gdG8gYSBzdHJpbmcu CiAgUmV0dXJucyB0aGUgZnJhbWUncyByZXN1bWUgYWRkcmVzcy4KICBAZW5kIGRlZm1ldGhvZAog IApAQCAtMjg2Myw3ICszMDU5LDcgQEAgaW5kZXggMjE0NWYyYi4uODRjYWRkNCAxMDA2NDQKICBA ZGVmbWV0aG9kIEZyYW1lIG9sZGVyCiAgUmV0dXJuIHRoZSBmcmFtZSB0aGF0IGNhbGxlZCB0aGlz IGZyYW1lLgogIEBlbmQgZGVmbWV0aG9kCi1AQCAtMjA3NjksMTAgKzIxMTU2LDE4IEBAIFJldHVy biB0aGUgZnJhbWUgdGhhdCBjYWxsZWQgdGhpcyBmcmFtZS4KK0BAIC0yMDc3OCwxMCArMjExNjUs MTggQEAgUmV0dXJuIHRoZSBmcmFtZSB0aGF0IGNhbGxlZCB0aGlzIGZyYW1lLgogIFJldHVybiB0 aGUgZnJhbWUgY2FsbGVkIGJ5IHRoaXMgZnJhbWUuCiAgQGVuZCBkZWZtZXRob2QKICAKQEAgLTI4 ODMsNyArMzA3OSw3IEBAIGluZGV4IDIxNDVmMmIuLjg0Y2FkZDQgMTAwNjQ0CiAgCiAgQG5vZGUg TGF6eSBTdHJpbmdzIEluIFB5dGhvbgogZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiaW50LnRleGlu Zm8gYi9nZGIvZG9jL2dkYmludC50ZXhpbmZvCi1pbmRleCAzNDdjODYwLi41ZDcwMDJlIDEwMDY0 NAoraW5kZXggNzc0MTg1NS4uZGYzZmM4NyAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvZ2RiaW50LnRl eGluZm8KICsrKyBiL2dkYi9kb2MvZ2RiaW50LnRleGluZm8KIEBAIC0yMTA3LDYgKzIxMDcsMTgg QEAgdGltZSwgYW5kIHNvIHdlIGF0dGVtcHQgdG8gaGFuZGxlIHN5bWJvbHMgaW5jcmVtZW50YWxs eS4gIEZvciBpbnN0YW5jZSwKQEAgLTMwODksMTAgKzMyODUsMjMgQEAgaW5kZXggNDM3Y2EzOS4u ZjdmY2U5MiAxMDA2NDQKICAgIC8qIFRoZSBjdXJyZW50IGRlcHRoIG9mIGR3YXJmIGV4cHJlc3Np b24gcmVjdXJzaW9uLCB2aWEgRFdfT1BfY2FsbCosCiAgICAgICBEV19PUF9mYnJlZywgRFdfT1Bf cHVzaF9vYmplY3RfYWRkcmVzcywgZXRjLiwgYW5kIHRoZSBtYXhpbXVtCiBkaWZmIC0tZ2l0IGEv Z2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3YXJmMmxvYy5jCi1pbmRleCA2Njc5ZDc0Li41NGQyYmFl IDEwMDY0NAoraW5kZXggMWM0ZDA1Ny4uMjBkY2FjZCAxMDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJs b2MuYwogKysrIGIvZ2RiL2R3YXJmMmxvYy5jCi1AQCAtMTIxLDYgKzEyMSw5IEBAIHN0cnVjdCBk d2FyZl9leHByX2JhdG9uCitAQCAtNDYsNiArNDYsMTIgQEAgc3RhdGljIHZvaWQKKyBkd2FyZl9l eHByX2ZyYW1lX2Jhc2VfMSAoc3RydWN0IHN5bWJvbCAqZnJhbWVmdW5jLCBDT1JFX0FERFIgcGMs CisgCQkJIGdkYl9ieXRlICoqc3RhcnQsIHNpemVfdCAqbGVuZ3RoKTsKKyAKKytzdGF0aWMgc3Ry dWN0IHZhbHVlICpkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCB0eXBlICp0eXBlLAor KwkJCQkJICAgICAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKKysJCQkJCSAgICAgICBnZGJf Ynl0ZSAqZGF0YSwKKysJCQkJCSAgICAgICB1bnNpZ25lZCBzaG9ydCBzaXplLAorKwkJCQkJICAg ICBzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpOworKworIC8qIEEgaGVscGVyIGZ1 bmN0aW9uIGZvciBkZWFsaW5nIHdpdGggbG9jYXRpb24gbGlzdHMuICBHaXZlbiBhCisgICAgc3lt Ym9sIGJhdG9uIChCQVRPTikgYW5kIGEgcGMgdmFsdWUgKFBDKSwgZmluZCB0aGUgYXBwcm9wcmlh dGUKKyAgICBsb2NhdGlvbiBleHByZXNzaW9uLCBzZXQgKkxPQ0VYUFJfTEVOR1RILCBhbmQgcmV0 dXJuIGEgcG9pbnRlcgorQEAgLTEyMSw2ICsxMjcsOSBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRv bgogIHsKICAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZTsKICAgIHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlOwpAQCAtMzEwMiw3ICszMzExLDcgQEAgaW5kZXggNjY3OWQ3NC4uNTRkMmJhZSAxMDA2 NDQKICB9OwogIAogIC8qIEhlbHBlciBmdW5jdGlvbnMgZm9yIGR3YXJmMl9ldmFsdWF0ZV9sb2Nf ZGVzYy4gICovCi1AQCAtMTg5LDIyICsxOTIsMzMgQEAgZHdhcmZfZXhwcl9mcmFtZV9iYXNlXzEg KHN0cnVjdCBzeW1ib2wgKmZyYW1lZnVuYywgQ09SRV9BRERSIHBjLAorQEAgLTE4OSwyMiArMTk4 LDMzIEBAIGR3YXJmX2V4cHJfZnJhbWVfYmFzZV8xIChzdHJ1Y3Qgc3ltYm9sICpmcmFtZWZ1bmMs IENPUkVfQUREUiBwYywKICAgICAgICBzeW1iYXRvbiA9IFNZTUJPTF9MT0NBVElPTl9CQVRPTiAo ZnJhbWVmdW5jKTsKICAgICAgICAqc3RhcnQgPSBmaW5kX2xvY2F0aW9uX2V4cHJlc3Npb24gKHN5 bWJhdG9uLCBsZW5ndGgsIHBjKTsKICAgICAgfQpAQCAtMzE0NSw3ICszMzU0LDcgQEAgaW5kZXgg NjY3OWQ3NC4uNTRkMmJhZSAxMDA2NDQKICB9CiAgCiAgLyogSGVscGVyIGZ1bmN0aW9uIGZvciBk d2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MuICBDb21wdXRlcyB0aGUgQ0ZBIGZvcgotQEAgLTIyNyw2 ICsyNDEsMTI5IEBAIGR3YXJmX2V4cHJfdGxzX2FkZHJlc3MgKHZvaWQgKmJhdG9uLCBDT1JFX0FE RFIgb2Zmc2V0KQorQEAgLTIyNyw2ICsyNDcsMTU1IEBAIGR3YXJmX2V4cHJfdGxzX2FkZHJlc3Mg KHZvaWQgKmJhdG9uLCBDT1JFX0FERFIgb2Zmc2V0KQogICAgcmV0dXJuIHRhcmdldF90cmFuc2xh dGVfdGxzX2FkZHJlc3MgKGRlYmF0b24tPm9iamZpbGUsIG9mZnNldCk7CiAgfQogIApAQCAtMzI3 MiwxMCArMzQ4MSw0MiBAQCBpbmRleCA2Njc5ZDc0Li41NGQyYmFlIDEwMDY0NAogKyAgcmV0dXJu IHJldHZhbDsKICt9CiArCisrLyogRXZhbHVhdGUgRFdBUkYgbG9jYXRpb24gbGlzdCBhdCBETExC QVRPTiBleHBlY3RpbmcgaXQgcHJvZHVjZXMgZXhhY3RseSBvbmUKKysgICBDT1JFX0FERFIgcmVz dWx0IHN0b3JlZCB0byAqQUREUlAgb24gdGhlIERXQVJGIHN0YWNrIHN0YWNrLiAgSWYgdGhlIHJl c3VsdAorKyAgIGNvdWxkIG5vdCBiZSBmb3VuZCByZXR1cm4gemVybyBhbmQga2VlcCAqQUREUlAg dW5jaGFuZ2VkLiAgKi8KKysKKytpbnQKKytkd2FyZl9sb2NsaXN0X2JhdG9uX2V2YWwgKHN0cnVj dCBkd2FyZjJfbG9jbGlzdF9iYXRvbiAqZGxsYmF0b24sCisrCQkJICBzdHJ1Y3QgdHlwZSAqdHlw ZSwgQ09SRV9BRERSICphZGRycCkKKyt7CisrICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBn ZXRfc2VsZWN0ZWRfZnJhbWUgKE5VTEwpOworKyAgZ2RiX2J5dGUgKmRhdGE7CisrICBzaXplX3Qg c2l6ZTsKKysgIHN0cnVjdCB2YWx1ZSAqdmFsOworKworKyAgZGF0YSA9IGZpbmRfbG9jYXRpb25f ZXhwcmVzc2lvbiAoZGxsYmF0b24sICZzaXplLAorKwkJCQkgICBnZXRfZnJhbWVfYWRkcmVzc19p bl9ibG9jayAoZnJhbWUpKTsKKysgIGlmIChkYXRhID09IE5VTEwpCisrICAgIHJldHVybiAwOwor KworKyAgdmFsID0gZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjICh0eXBlLCBmcmFtZSwgZGF0YSwg c2l6ZSwgZGxsYmF0b24tPnBlcl9jdSk7CisrICBpZiAodmFsdWVfb3B0aW1pemVkX291dCAodmFs KSkKKysgICAgcmV0dXJuIDA7CisrCisrICAqYWRkcnAgPSB2YWx1ZV9hc19hZGRyZXNzICh2YWwp OworKyAgcmV0dXJuIDE7CisrfQorKwogIHN0cnVjdCBwaWVjZV9jbG9zdXJlCiAgewogICAgLyog VGhlIG51bWJlciBvZiBwaWVjZXMgdXNlZCB0byBkZXNjcmliZSB0aGlzIHZhcmlhYmxlLiAgKi8K LUBAIC00MDgsOSArNTQ1LDggQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3Qgc3lt Ym9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKK0BAIC00MDEsNDggKzU3MCwzMSBA QCBzdGF0aWMgc3RydWN0IGx2YWxfZnVuY3MgcGllY2VkX3ZhbHVlX2Z1bmNzID0geworICAgIFNJ WkUsIHRvIGZpbmQgdGhlIGN1cnJlbnQgbG9jYXRpb24gb2YgdmFyaWFibGUgVkFSIGluIHRoZSBj b250ZXh0CisgICAgb2YgRlJBTUUuICAqLworIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorLWR3YXJm Ml9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5m byAqZnJhbWUsCisrZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorIAkJCSAgZ2RiX2J5dGUgKmRhdGEsIHVuc2lnbmVk IHNob3J0IHNpemUsCiAgCQkJICBzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCiAg ewogICAgc3RydWN0IHZhbHVlICpyZXR2YWw7CkBAIC0zMjg2LDcgKzM1MjcsMTAgQEAgaW5kZXgg NjY3OWQ3NC4uNTRkMmJhZSAxMDA2NDQKICAKICAgIGlmIChzaXplID09IDApCiAgICAgIHsKLUBA IC00MjAsMjIgKzU1Niw4IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJv bCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCistICAgICAgcmV0dmFsID0gYWxsb2Nh dGVfdmFsdWUgKFNZTUJPTF9UWVBFICh2YXIpKTsKKysgICAgICByZXR2YWwgPSBhbGxvY2F0ZV92 YWx1ZSAodHlwZSk7CisgICAgICAgVkFMVUVfTFZBTCAocmV0dmFsKSA9IG5vdF9sdmFsOworICAg ICAgIHNldF92YWx1ZV9vcHRpbWl6ZWRfb3V0IChyZXR2YWwsIDEpOwogICAgICAgIHJldHVybiBy ZXR2YWw7CiAgICAgIH0KICAKQEAgLTMzMTAsMTkgKzM1NTQsODggQEAgaW5kZXggNjY3OWQ3NC4u NTRkMmJhZSAxMDA2NDQKICAgIGlmIChjdHgtPm51bV9waWVjZXMgPiAwKQogICAgICB7CiAgICAg ICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmM7Ci1AQCAtNDY1LDYgKzU4NywxMSBAQCBkd2FyZjJf ZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lLAorICAgICAgIHN0cnVjdCBmcmFtZV9pZCBmcmFtZV9pZCA9IGdldF9mcmFtZV9pZCAo ZnJhbWUpOworIAorICAgICAgIGMgPSBhbGxvY2F0ZV9waWVjZV9jbG9zdXJlIChjdHgtPm51bV9w aWVjZXMsIGN0eC0+cGllY2VzLCBjdHgtPmdkYmFyY2gpOworLSAgICAgIHJldHZhbCA9IGFsbG9j YXRlX2NvbXB1dGVkX3ZhbHVlIChTWU1CT0xfVFlQRSAodmFyKSwKKy0JCQkJCSZwaWVjZWRfdmFs dWVfZnVuY3MsCistCQkJCQljKTsKKysgICAgICByZXR2YWwgPSBhbGxvY2F0ZV9jb21wdXRlZF92 YWx1ZSAodHlwZSwgJnBpZWNlZF92YWx1ZV9mdW5jcywgYyk7CisgICAgICAgVkFMVUVfRlJBTUVf SUQgKHJldHZhbCkgPSBmcmFtZV9pZDsKKyAgICAgfQorICAgZWxzZQorQEAgLTQ1NCw3ICs2MDYs NyBAQCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0 IGZyYW1lX2luZm8gKmZyYW1lLAorIAkgICAgc3RydWN0IGdkYmFyY2ggKmFyY2ggPSBnZXRfZnJh bWVfYXJjaCAoZnJhbWUpOworIAkgICAgQ09SRV9BRERSIGR3YXJmX3JlZ251bSA9IGR3YXJmX2V4 cHJfZmV0Y2ggKGN0eCwgMCk7CisgCSAgICBpbnQgZ2RiX3JlZ251bSA9IGdkYmFyY2hfZHdhcmYy X3JlZ190b19yZWdudW0gKGFyY2gsIGR3YXJmX3JlZ251bSk7CistCSAgICByZXR2YWwgPSB2YWx1 ZV9mcm9tX3JlZ2lzdGVyIChTWU1CT0xfVFlQRSAodmFyKSwgZ2RiX3JlZ251bSwgZnJhbWUpOwor KwkgICAgcmV0dmFsID0gdmFsdWVfZnJvbV9yZWdpc3RlciAodHlwZSwgZ2RiX3JlZ251bSwgZnJh bWUpOworIAkgIH0KKyAJICBicmVhazsKKyAKK0BAIC00NjMsNyArNjE1LDEyIEBAIGR3YXJmMl9l dmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAq ZnJhbWUsCiAgCSAgICBDT1JFX0FERFIgYWRkcmVzcyA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwg MCk7CiAgCSAgICBpbnQgaW5fc3RhY2tfbWVtb3J5ID0gZHdhcmZfZXhwcl9mZXRjaF9pbl9zdGFj a19tZW1vcnkgKGN0eCwgMCk7CiAgCistCSAgICByZXR2YWwgPSBhbGxvY2F0ZV92YWx1ZSAoU1lN Qk9MX1RZUEUgKHZhcikpOwogKwkgICAgLyogb2JqZWN0X2FkZHJlc3Nfc2V0IGNhbGxlZCBoZXJl IGlzIHJlcXVpcmVkIGluIEFMTE9DQVRFX1ZBTFVFJ3MKICsJICAgICAgIENIRUNLX1RZUEVERUYg Zm9yIHRoZSBvYmplY3QncyBwb3NzaWJsZQogKwkgICAgICAgRFdfT1BfcHVzaF9vYmplY3RfYWRk cmVzcy4gICovCiArCSAgICBvYmplY3RfYWRkcmVzc19zZXQgKGFkZHJlc3MpOwogKwotIAkgICAg cmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKFNZTUJPTF9UWVBFICh2YXIpKTsKKysJICAgIHJldHZh bCA9IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKICAJICAgIFZBTFVFX0xWQUwgKHJldHZhbCkgPSBs dmFsX21lbW9yeTsKICAJICAgIHNldF92YWx1ZV9sYXp5IChyZXR2YWwsIDEpOwotQEAgLTg3Miw3 ICs5OTksNyBAQCBzdGF0aWMgaW50CisgCSAgICBpZiAoaW5fc3RhY2tfbWVtb3J5KQorQEAgLTQ3 OCwxMCArNjM1LDEwIEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAq dmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCisgCSAgICBiZmRfYnl0ZSAqY29udGVudHM7 CisgCSAgICBzaXplX3QgbiA9IGN0eC0+YWRkcl9zaXplOworIAorLQkgICAgcmV0dmFsID0gYWxs b2NhdGVfdmFsdWUgKFNZTUJPTF9UWVBFICh2YXIpKTsKKysJICAgIHJldHZhbCA9IGFsbG9jYXRl X3ZhbHVlICh0eXBlKTsKKyAJICAgIGNvbnRlbnRzID0gdmFsdWVfY29udGVudHNfcmF3IChyZXR2 YWwpOworLQkgICAgaWYgKG4gPiBUWVBFX0xFTkdUSCAoU1lNQk9MX1RZUEUgKHZhcikpKQorLQkg ICAgICBuID0gVFlQRV9MRU5HVEggKFNZTUJPTF9UWVBFICh2YXIpKTsKKysJICAgIGlmIChuID4g VFlQRV9MRU5HVEggKHR5cGUpKQorKwkgICAgICBuID0gVFlQRV9MRU5HVEggKHR5cGUpOworIAkg ICAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoY29udGVudHMsIG4sCisgCQkJCSAgICBnZGJhcmNo X2J5dGVfb3JkZXIgKGN0eC0+Z2RiYXJjaCksCisgCQkJCSAgICB2YWx1ZSk7CitAQCAtNDkzLDEw ICs2NTAsMTAgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3Qgc3ltYm9sICp2YXIs IHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKKyAJICAgIGJmZF9ieXRlICpjb250ZW50czsKKyAJ ICAgIHNpemVfdCBuID0gY3R4LT5sZW47CisgCistCSAgICByZXR2YWwgPSBhbGxvY2F0ZV92YWx1 ZSAoU1lNQk9MX1RZUEUgKHZhcikpOworKwkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKHR5 cGUpOworIAkgICAgY29udGVudHMgPSB2YWx1ZV9jb250ZW50c19yYXcgKHJldHZhbCk7CistCSAg ICBpZiAobiA+IFRZUEVfTEVOR1RIIChTWU1CT0xfVFlQRSAodmFyKSkpCistCSAgICAgIG4gPSBU WVBFX0xFTkdUSCAoU1lNQk9MX1RZUEUgKHZhcikpOworKwkgICAgaWYgKG4gPiBUWVBFX0xFTkdU SCAodHlwZSkpCisrCSAgICAgIG4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCSAgICBtZW1jcHkg KGNvbnRlbnRzLCBjdHgtPmRhdGEsIG4pOworIAkgIH0KKyAJICBicmVhazsKK0BAIC03MjAsOCAr ODc3LDggQEAgbG9jZXhwcl9yZWFkX3ZhcmlhYmxlIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKKyB7CisgICBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0 b24gKmRsYmF0b24gPSBTWU1CT0xfTE9DQVRJT05fQkFUT04gKHN5bWJvbCk7CisgICBzdHJ1Y3Qg dmFsdWUgKnZhbDsKKy0gIHZhbCA9IGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3ltYm9sLCBm cmFtZSwgZGxiYXRvbi0+ZGF0YSwgZGxiYXRvbi0+c2l6ZSwKKy0JCQkJICBkbGJhdG9uLT5wZXJf Y3UpOworKyAgdmFsID0gZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChTWU1CT0xfVFlQRSAoc3lt Ym9sKSwgZnJhbWUsIGRsYmF0b24tPmRhdGEsCisrCQkJCSAgZGxiYXRvbi0+c2l6ZSwgZGxiYXRv bi0+cGVyX2N1KTsKKyAKKyAgIHJldHVybiB2YWw7CisgfQorQEAgLTg0NCw3ICsxMDAxLDcgQEAg bG9jbGlzdF9yZWFkX3ZhcmlhYmxlIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBmcmFt ZV9pbmZvICpmcmFtZSkKKyAgICAgICBzZXRfdmFsdWVfb3B0aW1pemVkX291dCAodmFsLCAxKTsK KyAgICAgfQorICAgZWxzZQorLSAgICB2YWwgPSBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MgKHN5 bWJvbCwgZnJhbWUsIGRhdGEsIHNpemUsCisrICAgIHZhbCA9IGR3YXJmMl9ldmFsdWF0ZV9sb2Nf ZGVzYyAoU1lNQk9MX1RZUEUgKHN5bWJvbCksIGZyYW1lLCBkYXRhLCBzaXplLAorIAkJCQkgICAg ZGxiYXRvbi0+cGVyX2N1KTsKKyAKKyAgIHJldHVybiB2YWw7CitAQCAtODY4LDcgKzEwMjUsNyBA QCBzdGF0aWMgaW50CiAgbG9jbGlzdF9kZXNjcmliZV9sb2NhdGlvbiAoc3RydWN0IHN5bWJvbCAq c3ltYm9sLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQogIHsKICAgIC8qIEZJWE1FOiBDb3VsZCBw cmludCB0aGUgZW50aXJlIGxpc3Qgb2YgbG9jYXRpb25zLiAgKi8KQEAgLTMzMzEsNyArMzY0NCw3 IEBAIGluZGV4IDY2NzlkNzQuLjU0ZDJiYWUgMTAwNjQ0CiAgICByZXR1cm4gMTsKICB9CiAgCi1A QCAtODg4LDE2ICsxMDE1LDU2IEBAIGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVmIChzdHJ1Y3Qg c3ltYm9sICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTg4NCwxNiArMTA0 MSw1NiBAQCBsb2NsaXN0X3RyYWNlcG9pbnRfdmFyX3JlZiAoc3RydWN0IHN5bWJvbCAqc3ltYm9s LCBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAKICAgIGRhdGEgPSBmaW5kX2xvY2F0aW9uX2V4 cHJlc3Npb24gKGRsYmF0b24sICZzaXplLCBheC0+c2NvcGUpOwogICAgaWYgKGRhdGEgPT0gTlVM TCkKQEAgLTMzOTIsMTAgKzM3MDUsMTAgQEAgaW5kZXggNjY3OWQ3NC4uNTRkMmJhZSAxMDA2NDQK ICsgIG1pc3NpbmdfdHJhY2Vwb2ludF92YXJfcmVmCiArfTsKIGRpZmYgLS1naXQgYS9nZGIvZHdh cmYybG9jLmggYi9nZGIvZHdhcmYybG9jLmgKLWluZGV4IGZhMGJkMTEuLmZkZWEyYjQgMTAwNjQ0 CitpbmRleCBmYTBiZDExLi4zNTM1YzFmIDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMmxvYy5oCiAr KysgYi9nZGIvZHdhcmYybG9jLmgKLUBAIC03Miw1ICs3MiwxMSBAQCBzdHJ1Y3QgZHdhcmYyX2xv Y2xpc3RfYmF0b24KK0BAIC03Miw1ICs3MiwxNCBAQCBzdHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0 b24KICAKICBleHRlcm4gY29uc3Qgc3RydWN0IHN5bWJvbF9jb21wdXRlZF9vcHMgZHdhcmYyX2xv Y2V4cHJfZnVuY3M7CiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBzeW1ib2xfY29tcHV0ZWRfb3BzIGR3 YXJmMl9sb2NsaXN0X2Z1bmNzOwpAQCAtMzQwNSwxMyArMzcxOCwxNiBAQCBpbmRleCBmYTBiZDEx Li5mZGVhMmI0IDEwMDY0NAogKwogK2V4dGVybiBDT1JFX0FERFIgZHdhcmZfbG9jZXhwcl9iYXRv bl9ldmFsCiArICAoc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uICpkbGJhdG9uKTsKKysKKytl eHRlcm4gaW50IGR3YXJmX2xvY2xpc3RfYmF0b25fZXZhbCAoc3RydWN0IGR3YXJmMl9sb2NsaXN0 X2JhdG9uICpkbGxiYXRvbiwKKysJCQkJICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERS ICphZGRycCk7CiAgCiAgI2VuZGlmIC8qIGR3YXJmMmxvYy5oICovCiBkaWZmIC0tZ2l0IGEvZ2Ri L2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKLWluZGV4IDg2YmZlY2IuLmRkZjIxODkg MTAwNjQ0CitpbmRleCBhMDVjOTQ2Li45NDUyODQ0IDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMnJl YWQuYwogKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwotQEAgLTQ4LDYgKzQ4LDExIEBACitAQCAtNDgs NiArNDgsMTAgQEAKICAjaW5jbHVkZSAiZ2RiY21kLmgiCiAgI2luY2x1ZGUgImJsb2NrLmgiCiAg I2luY2x1ZGUgImFkZHJtYXAuaCIKQEAgLTM0MTksMTEgKzM3MzUsMTAgQEAgaW5kZXggODZiZmVj Yi4uZGRmMjE4OSAxMDA2NDQKICsjaW5jbHVkZSAiZi1sYW5nLmgiCiArI2luY2x1ZGUgInR5cGVw cmludC5oIgogKyNpbmNsdWRlICJqdi1sYW5nLmgiCi0rI2luY2x1ZGUgInZlYy5oIgogIAogICNp bmNsdWRlIDxmY250bC5oPgogICNpbmNsdWRlICJnZGJfc3RyaW5nLmgiCi1AQCAtOTYsNyArMTAx LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgcHVibmFtZXNfaGVhZGVyCitAQCAtOTYsNyArMTAwLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgcHVibmFtZXNfaGVhZGVyCiAgX1BVQk5BTUVTX0hFQURFUjsKICAjZGVm aW5lIF9BQ1RVQUxfUFVCTkFNRVNfSEVBREVSX1NJWkUgMTMKICAKQEAgLTM0MzIsNyArMzc0Nyw3 IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICAgQmVjYXVzZSBvZiBhbGlnbm1l bnQgY29uc3RyYWludHMsIHRoaXMgc3RydWN0dXJlIGhhcyBwYWRkaW5nIGFuZCBjYW5ub3QKICAg ICBiZSBtYXBwZWQgZGlyZWN0bHkgb250byB0aGUgYmVnaW5uaW5nIG9mIHRoZSAuZGVidWdfaW5m byBzZWN0aW9uLiAgKi8KICB0eXBlZGVmIHN0cnVjdCBhcmFuZ2VzX2hlYWRlcgotQEAgLTE1Myw3 ICsxNTgsMTAgQEAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8KK0BAIC0xNTMsNyArMTU3LDEw IEBAIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvCiAgICBhc2VjdGlvbiAqYXNlY3Rpb247CiAg ICBnZGJfYnl0ZSAqYnVmZmVyOwogICAgYmZkX3NpemVfdHlwZSBzaXplOwpAQCAtMzQ0NCw3ICsz NzU5LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICB9OwogIAogIHN0cnVjdCBk d2FyZjJfcGVyX29iamZpbGUKLUBAIC0zMzMsNiArMzQxLDE5IEBAIHN0cnVjdCBkd2FyZjJfY3UK K0BAIC0zMzMsNiArMzQwLDE5IEBAIHN0cnVjdCBkd2FyZjJfY3UKICAgICAgIERJRXMgZm9yIG5h bWVzcGFjZXMsIHdlIGRvbid0IG5lZWQgdG8gdHJ5IHRvIGluZmVyIHRoZW0KICAgICAgIGZyb20g bWFuZ2xlZCBuYW1lcy4gICovCiAgICB1bnNpZ25lZCBpbnQgaGFzX25hbWVzcGFjZV9pbmZvIDog MTsKQEAgLTM0NjQsNyArMzc3OSw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAg fTsKICAKICAvKiBQZXJzaXN0ZW50IGRhdGEgaGVsZCBmb3IgYSBjb21waWxhdGlvbiB1bml0LCBl dmVuIHdoZW4gbm90Ci1AQCAtNDg3LDggKzUwOCw3IEBAIHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv CitAQCAtNDg3LDggKzUwNyw3IEBAIHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvCiAgICAgIHVuc2ln bmVkIGludCBoYXNfYnl0ZV9zaXplIDogMTsKICAKICAgICAgLyogVGhlIG5hbWUgb2YgdGhpcyBE SUUuICBOb3JtYWxseSB0aGUgdmFsdWUgb2YgRFdfQVRfbmFtZSwgYnV0CkBAIC0zNDc0LDMxICsz Nzg5LDE3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICAgIGNoYXIgKm5hbWU7 CiAgCiAgICAgIC8qIFRoZSBzY29wZSB0byBwcmVwZW5kIHRvIG91ciBjaGlsZHJlbi4gIFRoaXMg aXMgZ2VuZXJhbGx5Ci1AQCAtNjc3LDYgKzY5NywxMSBAQCBzdHJ1Y3QgZmllbGRfaW5mbwotICAg ICBpbnQgbmZuZmllbGRzOwotICAgfTsKLSAKLSsvKiBBIHZlY3RvciB1c2VkIGR1cmluZyBsaW5r YWdlIG5hbWUgZ2VuZXJhdGlvbi4gICovCi0rdHlwZWRlZiBzdHJ1Y3QgZGllX2luZm8gKmRpZV9p bmZvX3A7Ci0rREVGX1ZFQ19QIChkaWVfaW5mb19wKTsKLStzdGF0aWMgVkVDKGRpZV9pbmZvX3Ap ICpkaWVfbGlzdDsKLSsKLSAvKiBPbmUgaXRlbSBvbiB0aGUgcXVldWUgb2YgY29tcGlsYXRpb24g dW5pdHMgdG8gcmVhZCBpbiBmdWxsIHN5bWJvbHMKLSAgICBmb3IuICAqLwotIHN0cnVjdCBkd2Fy ZjJfcXVldWVfaXRlbQotQEAgLTc4OCw3ICs4MTMsMTAgQEAgc3RhdGljIHZvaWQgc2Nhbl9wYXJ0 aWFsX3N5bWJvbHMgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICosCitAQCAtNzg4LDcgKzgwNyw4 IEBAIHN0YXRpYyB2b2lkIHNjYW5fcGFydGlhbF9zeW1ib2xzIChzdHJ1Y3QgcGFydGlhbF9kaWVf aW5mbyAqLAogIHN0YXRpYyB2b2lkIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKiwKICAJCQkJc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKIC1zdGF0aWMgaW50IHBk aV9uZWVkc19uYW1lc3BhY2UgKGVudW0gZHdhcmZfdGFnIHRhZyk7CiArc3RhdGljIGdkYl9ieXRl ICpyZWFkX2NvbXBfdW5pdF9oZWFkIChzdHJ1Y3QgY29tcF91bml0X2hlYWQgKiwgZ2RiX2J5dGUg KiwKICsJCQkJICAgICAgYmZkICopOwotKwotK3N0YXRpYyBpbnQgZGllX25lZWRzX25hbWVzcGFj ZSAoc3RydWN0IGRpZV9pbmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCiAgc3RhdGljIHZv aWQgYWRkX3BhcnRpYWxfbmFtZXNwYWNlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAog IAkJCQkgICBDT1JFX0FERFIgKmxvd3BjLCBDT1JFX0FERFIgKmhpZ2hwYywKLUBAIC04MTMsNiAr ODQxLDEwIEBAIHN0YXRpYyB2b2lkIGR3YXJmMl9wc3ltdGFiX3RvX3N5bXRhYiAoc3RydWN0IHBh cnRpYWxfc3ltdGFiICopOworQEAgLTgxMyw2ICs4MzMsMTAgQEAgc3RhdGljIHZvaWQgZHdhcmYy X3BzeW10YWJfdG9fc3ltdGFiIChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7CiAgCiAgc3RhdGlj IHZvaWQgcHN5bXRhYl90b19zeW10YWJfMSAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwogIApA QCAtMzUwOSwxOSArMzgxMCw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgc3Rh dGljIHZvaWQgZHdhcmYyX3JlYWRfYWJicmV2cyAoYmZkICphYmZkLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSk7CiAgCiAgc3RhdGljIHZvaWQgZHdhcmYyX2ZyZWVfYWJicmV2X3RhYmxlICh2b2lkICop OwotQEAgLTk0MCw2ICs5NzIsMTEgQEAgc3RhdGljIHN0cnVjdCB0eXBlICp0YWdfdHlwZV90b190 eXBlIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKLSAKLSBzdGF0aWMg c3RydWN0IHR5cGUgKnJlYWRfdHlwZV9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdh cmYyX2N1ICopOwotIAotK3N0YXRpYyBjaGFyICpwaHlzbmFtZV9wcmVmaXggKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwotKwotK3N0YXRpYyB2b2lkIHBoeXNuYW1l X3ByZWZpeF8xIChzdHJ1Y3QgdWlfZmlsZSAqLCBzdHJ1Y3QgZGllX2luZm8gKiwKLSsJCQkgICAg ICAgc3RydWN0IGR3YXJmMl9jdSAqKTsKLSsKLSBzdGF0aWMgY2hhciAqZGV0ZXJtaW5lX3ByZWZp eCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKik7Ci0gCi0gc3RhdGlj IGNoYXIgKnR5cGVuYW1lX2NvbmNhdCAoc3RydWN0IG9ic3RhY2sgKiwKLUBAIC05ODQsMTcgKzEw MjEsMjUgQEAgc3RhdGljIHZvaWQgZHdhcmYyX2F0dGFjaF9mbl9maWVsZHNfdG9fdHlwZSAoc3Ry dWN0IGZpZWxkX2luZm8gKiwKK0BAIC05ODQsMTcgKzEwMDgsMjUgQEAgc3RhdGljIHZvaWQgZHdh cmYyX2F0dGFjaF9mbl9maWVsZHNfdG9fdHlwZSAoc3RydWN0IGZpZWxkX2luZm8gKiwKICAKICBz dGF0aWMgdm9pZCBwcm9jZXNzX3N0cnVjdHVyZV9zY29wZSAoc3RydWN0IGRpZV9pbmZvICosIHN0 cnVjdCBkd2FyZjJfY3UgKik7CiAgCkBAIC0zNTUwLDE5ICszODM5LDI3IEBAIGluZGV4IDg2YmZl Y2IuLmRkZjIxODkgMTAwNjQ0CiAgc3RhdGljIGNvbnN0IGNoYXIgKm5hbWVzcGFjZV9uYW1lIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwKICAJCQkJICAgaW50ICppc19hbm9ueW1vdXMsIHN0cnVjdCBk d2FyZjJfY3UgKik7CiAgCi1AQCAtMTAyOCw3ICsxMDczLDEwIEBAIHN0YXRpYyBnZGJfYnl0ZSAq cmVhZF9mdWxsX2RpZSAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwKK0BA IC0xMDI4LDcgKzEwNjAsOCBAQCBzdGF0aWMgZ2RiX2J5dGUgKnJlYWRfZnVsbF9kaWUgKGNvbnN0 IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNzICpyZWFkZXIsCiAgCiAgc3RhdGljIHZvaWQgcHJvY2Vz c19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIAogLXN0YXRp YyBjaGFyICpkd2FyZjJfbGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3 YXJmMl9jdSAqKTsKLStzdGF0aWMgY2hhciAqZHdhcmYyX3BoeXNuYW1lIChzdHJ1Y3QgZGllX2lu Zm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKLSsKICtzdGF0aWMgY2hhciAqZm9ydHJhbl9tb2R1 bGVfbGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICsJCQkJCSAgc3RydWN0IGR3 YXJmMl9jdSAqY3UpOwogIAogIHN0YXRpYyBjaGFyICpkd2FyZjJfY2Fub25pY2FsaXplX25hbWUg KGNoYXIgKiwgc3RydWN0IGR3YXJmMl9jdSAqLAogIAkJCQkgICAgICAgc3RydWN0IG9ic3RhY2sg Kik7Ci1AQCAtMTE0NCw2ICsxMTkyLDkgQEAgc3RhdGljIHZvaWQgYWdlX2NhY2hlZF9jb21wX3Vu aXRzICh2b2lkKTsKK0BAIC0xMTE0LDYgKzExNDcsOSBAQCBzdGF0aWMgaW50IGF0dHJfZm9ybV9p c19zZWN0aW9uX29mZnNldCAoc3RydWN0IGF0dHJpYnV0ZSAqKTsKKyAKKyBzdGF0aWMgaW50IGF0 dHJfZm9ybV9pc19jb25zdGFudCAoc3RydWN0IGF0dHJpYnV0ZSAqKTsKKyAKKytzdGF0aWMgc3Ry dWN0IGR3YXJmMl9sb2NsaXN0X2JhdG9uICpkd2FyZjJfYXR0cl90b19sb2NsaXN0X2JhdG9uCisr ICAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGR3YXJmMl9jdSAqY3UpOworKworIHN0 YXRpYyB2b2lkIGR3YXJmMl9zeW1ib2xfbWFya19jb21wdXRlZCAoc3RydWN0IGF0dHJpYnV0ZSAq YXR0ciwKKyAJCQkJCSBzdHJ1Y3Qgc3ltYm9sICpzeW0sCisgCQkJCQkgc3RydWN0IGR3YXJmMl9j dSAqY3UpOworQEAgLTExNDQsNiArMTE4MCw5IEBAIHN0YXRpYyB2b2lkIGFnZV9jYWNoZWRfY29t cF91bml0cyAodm9pZCk7CiAgCiAgc3RhdGljIHZvaWQgZnJlZV9vbmVfY2FjaGVkX2NvbXBfdW5p dCAodm9pZCAqKTsKICAKQEAgLTM1NzIsNyArMzg2OSw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIx ODkgMTAwNjQ0CiAgc3RhdGljIHN0cnVjdCB0eXBlICpzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqLCBzdHJ1Y3QgdHlwZSAqLAogIAkJCQkgIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCi1A QCAtMTE2MywyMiArMTIxNCwzMSBAQCBzdGF0aWMgdm9pZCBkd2FyZjJfY2xlYXJfbWFya3MgKHN0 cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKik7CitAQCAtMTE2MywyMiArMTIwMiwzMSBAQCBzdGF0 aWMgdm9pZCBkd2FyZjJfY2xlYXJfbWFya3MgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKik7 CiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICpnZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7CiAgCkBAIC0zNjEzLDcgKzM5MTAsNyBAQCBpbmRl eCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogIH0KICAKICAvKiBXaGVuIGxvYWRpbmcgc2VjdGlv bnMsIHdlIGNhbiBlaXRoZXIgbG9vayBmb3IgIi48bmFtZT4iLCBvciBmb3IKLUBAIC0xMjcxLDEw ICsxMzMxLDEzIEBAIGR3YXJmMl9sb2NhdGVfc2VjdGlvbnMgKGJmZCAqYWJmZCwgYXNlY3Rpb24g KnNlY3RwLCB2b2lkICppZ25vcmVfcHRyKQorQEAgLTEyNzEsMTAgKzEzMTksMTMgQEAgZHdhcmYy X2xvY2F0ZV9zZWN0aW9ucyAoYmZkICphYmZkLCBhc2VjdGlvbiAqc2VjdHAsIHZvaWQgKmlnbm9y ZV9wdHIpCiAgfQogIAogIC8qIERlY29tcHJlc3MgYSBzZWN0aW9uIHRoYXQgd2FzIGNvbXByZXNz ZWQgdXNpbmcgemxpYi4gIFN0b3JlIHRoZQpAQCAtMzYyOSw3ICszOTI2LDcgQEAgaW5kZXggODZi ZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RiX2J5dGUg KipvdXRidWYsIGJmZF9zaXplX3R5cGUgKm91dHNpemUpCiAgewogICAgYmZkICphYmZkID0gb2Jq ZmlsZS0+b2JmZDsKLUBAIC0xMjkxLDYgKzEzNTQsNyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlv biAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKK0BAIC0xMjkxLDYg KzEzNDIsNyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUsIGFzZWN0aW9uICpzZWN0cCwKICAgIHpfc3RyZWFtIHN0cm07CiAgICBpbnQgcmM7CiAgICBp bnQgaGVhZGVyX3NpemUgPSAxMjsKQEAgLTM2MzcsNyArMzkzNCw3IEBAIGluZGV4IDg2YmZlY2Iu LmRkZjIxODkgMTAwNjQ0CiAgCiAgICBpZiAoYmZkX3NlZWsgKGFiZmQsIHNlY3RwLT5maWxlcG9z LCBTRUVLX1NFVCkgIT0gMAogICAgICAgIHx8IGJmZF9icmVhZCAoY29tcHJlc3NlZF9idWZmZXIs IGNvbXByZXNzZWRfc2l6ZSwgYWJmZCkgIT0gY29tcHJlc3NlZF9zaXplKQotQEAgLTEzMjAsOCAr MTM4NCwxMyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUsIGFzZWN0aW9uICpzZWN0cCwKK0BAIC0xMzIwLDggKzEzNzIsMTMgQEAgemxpYl9kZWNvbXBy ZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2VjdHAsCiAg ICBzdHJtLmF2YWlsX2luID0gY29tcHJlc3NlZF9zaXplIC0gaGVhZGVyX3NpemU7CiAgICBzdHJt Lm5leHRfaW4gPSAoQnl0ZWYqKSBjb21wcmVzc2VkX2J1ZmZlciArIGhlYWRlcl9zaXplOwogICAg c3RybS5hdmFpbF9vdXQgPSB1bmNvbXByZXNzZWRfc2l6ZTsKQEAgLTM2NTMsNyArMzk1MCw3IEBA IGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICByYyA9IGluZmxhdGVJbml0ICgmc3Ry bSk7CiAgICB3aGlsZSAoc3RybS5hdmFpbF9pbiA+IDApCiAgICAgIHsKLUBAIC0xMzQyLDI2ICsx NDExLDE3NiBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUsIGFzZWN0aW9uICpzZWN0cCwKK0BAIC0xMzQyLDI2ICsxMzk5LDE3NiBAQCB6bGliX2RlY29t cHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwK ICAgICAgZXJyb3IgKF8oIkR3YXJmIEVycm9yOiBjb25jbHVkaW5nIERXQVJGIHVuY29tcHJlc3Np b24gaW4gJyVzJzogJWQiKSwKICAgICAgICAgICAgIGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpLCBy Yyk7CiAgCkBAIC0zODM1LDcgKzQxMzIsNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0 NAogIAogICAgaWYgKGluZm8tPmFzZWN0aW9uID09IE5VTEwgfHwgaW5mby0+c2l6ZSA9PSAwKQog ICAgICByZXR1cm47Ci1AQCAtMTM3NCw3ICsxNTkzLDcgQEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICppbmZv KQorQEAgLTEzNzQsNyArMTU4MSw3IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKICAgICAgICAv KiBVcG9uIGRlY29tcHJlc3Npb24sIHVwZGF0ZSB0aGUgYnVmZmVyIGFuZCBpdHMgc2l6ZS4gICov CiAgICAgICAgaWYgKHN0cm5jbXAgKGhlYWRlciwgIlpMSUIiLCBzaXplb2YgKGhlYWRlcikpID09 IDApCiAgICAgICAgICB7CkBAIC0zODQ0LDcgKzQxNDEsNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYy MTg5IDEwMDY0NAogIAkJCQkgICAmaW5mby0+c2l6ZSk7CiAgICAgICAgICAgIHJldHVybjsKICAg ICAgICAgIH0KLUBAIC0xMzk3LDcgKzE2MTYsNyBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCitA QCAtMTM5Nyw3ICsxNjA0LDcgQEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICppbmZvKQogIAogICAgICAgIGlm IChyZXRidWYgIT0gTUFQX0ZBSUxFRCkKICAJewpAQCAtMzg1Myw3ICs0MTUwLDcgQEAgaW5kZXgg ODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAJICBpbmZvLT5idWZmZXIgPSByZXRidWYgKyAoc2Vj dHAtPmZpbGVwb3MgJiAocGFnZXNpemUgLSAxKSkgOwogIAkgIHJldHVybjsKICAJfQotQEAgLTE0 MDUsOCArMTYyNCwxNSBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCitAQCAtMTQwNSw4ICsxNjEy LDE1IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1 Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKICAjZW5kaWYKICAKICAgIC8qIElmIHdlIGdl dCBoZXJlLCB3ZSBhcmUgYSBub3JtYWwsIG5vdC1jb21wcmVzc2VkIHNlY3Rpb24uICAqLwpAQCAt Mzg3MSw4ICs0MTY4LDggQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAKICAgIC8q IFdoZW4gZGVidWdnaW5nIC5vIGZpbGVzLCB3ZSBtYXkgbmVlZCB0byBhcHBseSByZWxvY2F0aW9u czsgc2VlCiAgICAgICBodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAwMi0w NC9tc2cwMDEzNi5odG1sIC4KLUBAIC0xNDE1LDYgKzE2NDEsOCBAQCBkd2FyZjJfcmVhZF9zZWN0 aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8g KmluZm8pCi0gICByZXRidWYgPSBzeW1maWxlX3JlbG9jYXRlX2RlYnVnX3NlY3Rpb24gKGFiZmQs IHNlY3RwLCBidWYpOworQEAgLTE0MTUsNiArMTYyOSw4IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24g KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5m bykKKyAgIHJldGJ1ZiA9IHN5bWZpbGVfcmVsb2NhdGVfZGVidWdfc2VjdGlvbiAob2JqZmlsZSwg c2VjdHAsIGJ1Zik7CiAgICBpZiAocmV0YnVmICE9IE5VTEwpCiAgICAgIHsKICsgICAgICBpZiAo b2xkKQpAQCAtMzg4MCw3ICs0MTc3LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQK ICAgICAgICBpbmZvLT5idWZmZXIgPSByZXRidWY7CiAgICAgICAgcmV0dXJuOwogICAgICB9Ci1A QCAtMTQyMyw2ICsxNjUxLDE5IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKK0BAIC0xNDIzLDYg KzE2MzksMTkgQEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs IHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICppbmZvKQogICAgICAgIHx8IGJmZF9icmVhZCAo YnVmLCBpbmZvLT5zaXplLCBhYmZkKSAhPSBpbmZvLT5zaXplKQogICAgICBlcnJvciAoXygiRHdh cmYgRXJyb3I6IENhbid0IHJlYWQgRFdBUkYgZGF0YSBmcm9tICclcyciKSwKICAJICAgYmZkX2dl dF9maWxlbmFtZSAoYWJmZCkpOwpAQCAtMzkwMCw3ICs0MTk3LDYyIEBAIGluZGV4IDg2YmZlY2Iu LmRkZjIxODkgMTAwNjQ0CiAgfQogIAogIC8qIEZpbGwgaW4gU0VDVFAsIEJVRlAgYW5kIFNJWkVQ IHdpdGggc2VjdGlvbiBpbmZvLCBnaXZlbiBPQkpGSUxFIGFuZAotQEAgLTIzODksMTEgKzI2MzAs MTggQEAgcGFydGlhbF9kaWVfcGFyZW50X3Njb3BlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAq cGRpLAorQEAgLTIwNzAsNiArMjI5OSwyOSBAQCBidWlsZF90eXBlX3BzeW10YWJzIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSkKKyAJCQkgIHByb2Nlc3NfdHlwZV9jb21wX3VuaXQsIG9iamZpbGUp OworIH0KKyAKKysvKiBBIGNsZWFudXAgZnVuY3Rpb24gdGhhdCBjbGVhcnMgYW4gb2JqZmlsZSdz IHBzeW10YWJzLiAgVGhlcmUgYXJlCisrICAgdHdvIGNhc2VzIHRvIGNvbnNpZGVyLiAgSWYgd2Ug YXJlIHJlYWRpbmcgc3ltYm9scyBkaXJlY3RseSwgdGhlbiBvbgorKyAgIGEgZmFpbHVyZSB0aGUg b2JqZmlsZSB3aWxsIGJlIGRlc3Ryb3llZC4gIEluIHRoaXMgY2FzZSwgY2xlYXJpbmcKKysgICB0 aGUgcHN5bXRhYnMgaXMgZmluZSAtLSBhIGxpdHRsZSB3YXN0ZWQgdGltZSwgYnV0IG5vdGhpbmcg c2VyaW91cy4KKysgICBJZiB3ZSBhcmUgcmVhZGluZyBzeW1ib2xzIGxhemlseSwgdGhlbiBpdCBp cyB0b28gbGF0ZSB0byBkZXN0cm95CisrICAgdGhlIG9iamZpbGUuICBJbnN0ZWFkIHdlIGp1c3Qg bWFrZSBpdCBsb29rIGxpa2UgdGhlIG9iamZpbGUgaGFzIG5vCisrICAgcHN5bXRhYnMuICAqLwor KworK3N0YXRpYyB2b2lkCisrZG9fY2xlYXJfcHN5bXRhYnMgKHZvaWQgKmFyZykKKyt7CisrICBz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9IGFyZzsKKysKKysgIG9iamZpbGUtPnBzeW10YWJzX2Fk ZHJtYXAgPSBOVUxMOworKyAgb2JqZmlsZS0+cHN5bXRhYnMgPSBOVUxMOworKyAgYmNhY2hlX3hm cmVlIChvYmpmaWxlLT5wc3ltYm9sX2NhY2hlKTsKKysgIG9iamZpbGUtPnBzeW1ib2xfY2FjaGUg PSBiY2FjaGVfeG1hbGxvYyAoKTsKKysgIHhmcmVlIChvYmpmaWxlLT5nbG9iYWxfcHN5bWJvbHMu bGlzdCk7CisrICBtZW1zZXQgKCZvYmpmaWxlLT5nbG9iYWxfcHN5bWJvbHMsIDAsIHNpemVvZiAo b2JqZmlsZS0+Z2xvYmFsX3BzeW1ib2xzKSk7CisrICB4ZnJlZSAob2JqZmlsZS0+c3RhdGljX3Bz eW1ib2xzLmxpc3QpOworKyAgbWVtc2V0ICgmb2JqZmlsZS0+c3RhdGljX3BzeW1ib2xzLCAwLCBz aXplb2YgKG9iamZpbGUtPnN0YXRpY19wc3ltYm9scykpOworK30KKysKKyAvKiBCdWlsZCB0aGUg cGFydGlhbCBzeW1ib2wgdGFibGUgYnkgZG9pbmcgYSBxdWljayBwYXNzIHRocm91Z2ggdGhlCisg ICAgLmRlYnVnX2luZm8gYW5kIC5kZWJ1Z19hYmJyZXYgc2VjdGlvbnMuICAqLworIAorQEAgLTIw ODAsNyArMjMzMiw3IEBAIGR3YXJmMl9idWlsZF9wc3ltdGFic19oYXJkIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSkKKyAgICAgIG1tYXAoKSAgb24gYXJjaGl0ZWN0dXJlcyB0aGF0IHN1cHBvcnQg aXQuIChGSVhNRSkgKi8KKyAgIGJmZCAqYWJmZCA9IG9iamZpbGUtPm9iZmQ7CisgICBnZGJfYnl0 ZSAqaW5mb19wdHI7CistICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKysgIHN0cnVjdCBjbGVh bnVwICpiYWNrX3RvLCAqY2xlYXJfcHN5bXRhYnM7CisgCisgICBpbmZvX3B0ciA9IGR3YXJmMl9w ZXJfb2JqZmlsZS0+aW5mby5idWZmZXI7CisgCitAQCAtMjA5NCw2ICsyMzQ2LDcgQEAgZHdhcmYy X2J1aWxkX3BzeW10YWJzX2hhcmQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorIAorICAgb2Jq ZmlsZS0+cHN5bXRhYnNfYWRkcm1hcCA9CisgICAgIGFkZHJtYXBfY3JlYXRlX211dGFibGUgKCZv YmpmaWxlLT5vYmpmaWxlX29ic3RhY2spOworKyAgY2xlYXJfcHN5bXRhYnMgPSBtYWtlX2NsZWFu dXAgKGRvX2NsZWFyX3BzeW10YWJzLCBvYmpmaWxlKTsKKyAKKyAgIC8qIFNpbmNlIHRoZSBvYmpl Y3RzIHdlJ3JlIGV4dHJhY3RpbmcgZnJvbSAuZGVidWdfaW5mbyB2YXJ5IGluCisgICAgICBsZW5n dGgsIG9ubHkgdGhlIGluZGl2aWR1YWwgZnVuY3Rpb25zIHRvIGV4dHJhY3QgdGhlbSAobGlrZQor QEAgLTIxMjMsNiArMjM3Niw3IEBAIGR3YXJmMl9idWlsZF9wc3ltdGFic19oYXJkIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSkKKyAJCQkJCSAgICBkd2FyZjJfcGVyX29iamZpbGUtPmluZm8uc2l6 ZSk7CisgICAgIH0KKyAKKysgIGRpc2NhcmRfY2xlYW51cHMgKGNsZWFyX3BzeW10YWJzKTsKKyAg IG9iamZpbGUtPnBzeW10YWJzX2FkZHJtYXAgPSBhZGRybWFwX2NyZWF0ZV9maXhlZCAob2JqZmls ZS0+cHN5bXRhYnNfYWRkcm1hcCwKKyAJCQkJCQkgICAgJm9iamZpbGUtPm9iamZpbGVfb2JzdGFj ayk7CisgCitAQCAtMjM4OSwxMSArMjY0MywxOCBAQCBwYXJ0aWFsX2RpZV9wYXJlbnRfc2NvcGUg KHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksCiAgICAgICAgfHwgcGFyZW50LT50YWcgPT0g RFdfVEFHX3VuaW9uX3R5cGUKICAgICAgICB8fCBwYXJlbnQtPnRhZyA9PSBEV19UQUdfZW51bWVy YXRpb25fdHlwZSkKICAgICAgewpAQCAtMzkyMSw3ICs0MjczLDcgQEAgaW5kZXggODZiZmVjYi4u ZGRmMjE4OSAxMDA2NDQKICAgICAgfQogICAgZWxzZSBpZiAocGFyZW50LT50YWcgPT0gRFdfVEFH X2VudW1lcmF0b3IpCiAgICAgIC8qIEVudW1lcmF0b3JzIHNob3VsZCBub3QgZ2V0IHRoZSBuYW1l IG9mIHRoZSBlbnVtZXJhdGlvbiBhcyBhIHByZWZpeC4gICovCi1AQCAtMjQwNSw3ICsyNjUzLDcg QEAgcGFydGlhbF9kaWVfcGFyZW50X3Njb3BlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRp LAorQEAgLTI0MDUsNyArMjY2Niw3IEBAIHBhcnRpYWxfZGllX3BhcmVudF9zY29wZSAoc3RydWN0 IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKICAJIGlnbm9yaW5nIHRoZW0uICAqLwogICAgICAgIGNv bXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKICAJCSBfKCJ1bmhhbmRsZWQgY29udGFpbmlu ZyBESUUgdGFnICVkIGZvciBESUUgYXQgJWQiKSwKQEAgLTM5MzAsNyArNDI4Miw3IEBAIGluZGV4 IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICAgICAgcGFyZW50LT5zY29wZSA9IGdyYW5kcGFy ZW50X3Njb3BlOwogICAgICB9CiAgCi1AQCAtMjQyMCwxMiArMjY2OCwyMiBAQCBwYXJ0aWFsX2Rp ZV9mdWxsX25hbWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksCitAQCAtMjQyMCwxMiAr MjY4MSwyMiBAQCBwYXJ0aWFsX2RpZV9mdWxsX25hbWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv ICpwZGksCiAgCQkgICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgY2hhciAqcGFy ZW50X3Njb3BlOwpAQCAtMzk1Nyw3ICs0MzA5LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAx MDA2NDQKICB9CiAgCiAgc3RhdGljIHZvaWQKLUBAIC0yNDQxLDEyICsyNjk5LDkgQEAgYWRkX3Bh cnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKK0BAIC0yNDQxLDEyICsyNzEyLDkgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1 Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGJh c2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVY VCAob2JqZmlsZSkpOwogIApAQCAtMzk3Myw3ICs0MzI1LDcgQEAgaW5kZXggODZiZmVjYi4uZGRm MjE4OSAxMDA2NDQKICAKICAgIGlmIChhY3R1YWxfbmFtZSA9PSBOVUxMKQogICAgICBhY3R1YWxf bmFtZSA9IHBkaS0+bmFtZTsKLUBAIC0yNTQzLDYgKzI3OTgsMTMgQEAgYWRkX3BhcnRpYWxfc3lt Ym9sIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK K0BAIC0yNTQzLDYgKzI4MTEsMTMgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlh bF9kaWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJCQkgICAmb2JqZmlsZS0+ Z2xvYmFsX3BzeW1ib2xzLAogIAkJCSAgIDAsIChDT1JFX0FERFIpIDAsIGN1LT5sYW5ndWFnZSwg b2JqZmlsZSk7CiAgICAgICAgYnJlYWs7CkBAIC0zOTg3LDcgKzQzMzksNyBAQCBpbmRleCA4NmJm ZWNiLi5kZGYyMTg5IDEwMDY0NAogICAgICBjYXNlIERXX1RBR19jbGFzc190eXBlOgogICAgICBj YXNlIERXX1RBR19pbnRlcmZhY2VfdHlwZToKICAgICAgY2FzZSBEV19UQUdfc3RydWN0dXJlX3R5 cGU6Ci1AQCAtMjU4NiwzNCArMjg0OCwxNyBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBw YXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTI1ODYsNDkg KzI4NjEsMTAgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAq cGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBicmVhazsKICAgICAgfQogIApAQCAt NDAxNCw1MCArNDM2NiwzMCBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogLS8qIERl dGVybWluZSB3aGV0aGVyIGEgZGllIG9mIHR5cGUgVEFHIGxpdmluZyBpbiBhIEMrKyBjbGFzcyBv cgogLSAgIG5hbWVzcGFjZSBuZWVkcyB0byBoYXZlIHRoZSBuYW1lIG9mIHRoZSBzY29wZSBwcmVw ZW5kZWQgdG8gdGhlCiAtICAgbmFtZSBsaXN0ZWQgaW4gdGhlIGRpZS4gICovCi0rLyogRGV0ZXJt aW5lIHdoZXRoZXIgRElFIG5lZWRzIHRvIGhhdmUgdGhlIG5hbWUgb2YgdGhlIHNjb3BlIHByZXBl bmRlZAotKyAgIHRvIHRoZSBuYW1lIGxpc3RlZCBpbiB0aGUgZGllLiAgKi8KLSAKLSBzdGF0aWMg aW50CistCistc3RhdGljIGludAogLXBkaV9uZWVkc19uYW1lc3BhY2UgKGVudW0gZHdhcmZfdGFn IHRhZykKLStkaWVfbmVlZHNfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCi0geworLXsKIC0gIHN3aXRjaCAodGFnKQotKyAgc3dpdGNoIChkaWUt PnRhZykKLSAgICAgewotICAgICBjYXNlIERXX1RBR19uYW1lc3BhY2U6Ci0gICAgIGNhc2UgRFdf VEFHX3R5cGVkZWY6Ci1AQCAtMjYyMyw3ICsyODY4LDMwIEBAIHBkaV9uZWVkc19uYW1lc3BhY2Ug KGVudW0gZHdhcmZfdGFnIHRhZykKLSAgICAgY2FzZSBEV19UQUdfdW5pb25fdHlwZToKLSAgICAg Y2FzZSBEV19UQUdfZW51bWVyYXRpb25fdHlwZToKLSAgICAgY2FzZSBEV19UQUdfZW51bWVyYXRv cjoKLSsgICAgY2FzZSBEV19UQUdfc3VicHJvZ3JhbToKLSsgICAgY2FzZSBEV19UQUdfbWVtYmVy OgotICAgICAgIHJldHVybiAxOwotKwotKyAgICBjYXNlIERXX1RBR192YXJpYWJsZToKLSsgICAg ICB7Ci0rCXN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7Ci0rCWF0dHIgPSBkd2FyZjJfYXR0ciAoZGll LCBEV19BVF9zcGVjaWZpY2F0aW9uLCBjdSk7Ci0rCWlmIChhdHRyKQotKwkgIHJldHVybiAxOwot KwlhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZXh0ZXJuYWwsIGN1KTsKLSsJaWYgKGF0 dHIgPT0gTlVMTCAmJiBkaWUtPnBhcmVudC0+dGFnICE9IERXX1RBR19uYW1lc3BhY2UpCi0rCSAg cmV0dXJuIDA7Ci0rCS8qIEEgdmFyaWFibGUgaW4gYSBsZXhpY2FsIGJsb2NrIG9mIHNvbWUga2lu ZCBkb2VzIG5vdCBuZWVkIGEKLSsJICAgbmFtZXNwYWNlLCBldmVuIHRob3VnaCBpbiBDKysgc3Vj aCB2YXJpYWJsZXMgbWF5IGJlCi0rCSAgIGV4dGVybmFsIGFuZCBoYXZlIGEgbWFuZ2xlZCBuYW1l LiAgKi8KLSsJaWYgKGRpZS0+cGFyZW50LT50YWcgPT0gIERXX1RBR19sZXhpY2FsX2Jsb2NrCi0r CSAgICB8fCBkaWUtPnBhcmVudC0+dGFnID09ICBEV19UQUdfdHJ5X2Jsb2NrCi0rCSAgICB8fCBk aWUtPnBhcmVudC0+dGFnID09ICBEV19UQUdfY2F0Y2hfYmxvY2spCi0rCSAgcmV0dXJuIDA7Ci0r CXJldHVybiAxOwotKyAgICAgIH0KLSsgICAgICBicmVhazsKLSsKLSAgICAgZGVmYXVsdDoKLSAg ICAgICByZXR1cm4gMDsKLSAgICAgfQotQEAgLTI2NTYsMTIgKzI5MjQsMTIgQEAgc3RhdGljIHZv aWQKKy0gICAgeworLSAgICBjYXNlIERXX1RBR19uYW1lc3BhY2U6CistICAgIGNhc2UgRFdfVEFH X3R5cGVkZWY6CistICAgIGNhc2UgRFdfVEFHX2NsYXNzX3R5cGU6CistICAgIGNhc2UgRFdfVEFH X2ludGVyZmFjZV90eXBlOgorLSAgICBjYXNlIERXX1RBR19zdHJ1Y3R1cmVfdHlwZToKKy0gICAg Y2FzZSBEV19UQUdfdW5pb25fdHlwZToKKy0gICAgY2FzZSBEV19UQUdfZW51bWVyYXRpb25fdHlw ZToKKy0gICAgY2FzZSBEV19UQUdfZW51bWVyYXRvcjoKKy0gICAgICByZXR1cm4gMTsKKy0gICAg ZGVmYXVsdDoKKy0gICAgICByZXR1cm4gMDsKKy0gICAgfQorLX0KKy0KKyAvKiBSZWFkIGEgcGFy dGlhbCBkaWUgY29ycmVzcG9uZGluZyB0byBhIG5hbWVzcGFjZTsgYWxzbywgYWRkIGEgc3ltYm9s CisgICAgY29ycmVzcG9uZGluZyB0byB0aGF0IG5hbWVzcGFjZSB0byB0aGUgc3ltYm9sIHRhYmxl LiAgTkFNRVNQQUNFIGlzCisgICAgdGhlIG5hbWUgb2YgdGhlIGVuY2xvc2luZyBuYW1lc3BhY2Uu ICAqLworQEAgLTI2NTYsMTIgKzI4OTIsMTIgQEAgc3RhdGljIHZvaWQKICBhZGRfcGFydGlhbF9t b2R1bGUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIENPUkVfQUREUiAqbG93cGMsCiAg CQkgICAgQ09SRV9BRERSICpoaWdocGMsIGludCBuZWVkX3BjLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICB7CkBAIC00MDc0LDcgKzQ0MDYsMTUgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2 NDQKICB9CiAgCiAgLyogUmVhZCBhIHBhcnRpYWwgZGllIGNvcnJlc3BvbmRpbmcgdG8gYSBzdWJw cm9ncmFtIGFuZCBjcmVhdGUgYSBwYXJ0aWFsCi1AQCAtMjc1MiwyNyArMzAyMCw2IEBAIGd1ZXNz X3N0cnVjdHVyZV9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3RydWN0X3BkaSwKK0BA IC0yNzM5LDcgKzI5NzUsNiBAQCBndWVzc19zdHJ1Y3R1cmVfbmFtZSAoc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKnN0cnVjdF9wZGksCisgCSBjb3VsZCBmaXggdGhpcyBieSBvbmx5IHVzaW5nIHRo ZSBkZW1hbmdsZWQgbmFtZSB0byBnZXQgdGhlCisgCSBwcmVmaXggKGJ1dCBzZWUgY29tbWVudCBp biByZWFkX3N0cnVjdHVyZV90eXBlKS4gICovCisgCistICAgICAgc3RydWN0IHBhcnRpYWxfZGll X2luZm8gKmNoaWxkX3BkaSA9IHN0cnVjdF9wZGktPmRpZV9jaGlsZDsKKyAgICAgICBzdHJ1Y3Qg cGFydGlhbF9kaWVfaW5mbyAqcmVhbF9wZGk7CisgCisgICAgICAgLyogSWYgdGhpcyBESUUgKHRo aXMgRElFJ3Mgc3BlY2lmaWNhdGlvbiwgaWYgYW55KSBoYXMgYSBwYXJlbnQsIHRoZW4KK0BAIC0y NzUyLDI3ICsyOTg3LDYgQEAgZ3Vlc3Nfc3RydWN0dXJlX25hbWUgKHN0cnVjdCBwYXJ0aWFsX2Rp ZV9pbmZvICpzdHJ1Y3RfcGRpLAogIAogICAgICAgIGlmIChyZWFsX3BkaS0+ZGllX3BhcmVudCAh PSBOVUxMKQogIAlyZXR1cm47CkBAIC00MDkxLDcgKzQ0MzEsNyBAQCBpbmRleCA4NmJmZWNiLi5k ZGYyMTg5IDEwMDY0NAogLQkJICBzdHJ1Y3RfcGRpLT5uYW1lCiAtCQkgICAgPSBvYnNhdmVzdHJp bmcgKGFjdHVhbF9jbGFzc19uYW1lLAogLQkJCQkgICAgc3RybGVuIChhY3R1YWxfY2xhc3NfbmFt ZSksCi0tCQkJCSAgICAmY3UtPmNvbXBfdW5pdF9vYnN0YWNrKTsKKy0JCQkJICAgICZjdS0+b2Jq ZmlsZS0+b2JqZmlsZV9vYnN0YWNrKTsKIC0JCSAgeGZyZWUgKGFjdHVhbF9jbGFzc19uYW1lKTsK IC0JCX0KIC0JICAgICAgYnJlYWs7CkBAIC00MTAyLDcgKzQ0NDIsNyBAQCBpbmRleCA4NmJmZWNi Li5kZGYyMTg5IDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTMzMjUsNiArMzU3MiwxNCBAQCBw cm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor QEAgLTMzMjUsNiArMzUzOSwxNCBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICBjYXNlIERXX1RBR19pbXBvcnRlZF9kZWNsYXJh dGlvbjoKICAgICAgY2FzZSBEV19UQUdfaW1wb3J0ZWRfbW9kdWxlOgogICAgICAgIHByb2Nlc3Np bmdfaGFzX25hbWVzcGFjZV9pbmZvID0gMTsKQEAgLTQxMTcsMzEgKzQ0NTcsODEgQEAgaW5kZXgg ODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAgICAgICBpZiAoZGllLT5jaGlsZCAhPSBOVUxMICYm IChkaWUtPnRhZyA9PSBEV19UQUdfaW1wb3J0ZWRfZGVjbGFyYXRpb24KICAJCQkJIHx8IGN1LT5s YW5ndWFnZSAhPSBsYW5ndWFnZV9mb3J0cmFuKSkKICAJY29tcGxhaW50ICgmc3ltZmlsZV9jb21w bGFpbnRzLCBfKCJUYWcgJyVzJyBoYXMgdW5leHBlY3RlZCBjaGlsZHJlbiIpLAotQEAgLTMzNDAs NDEgKzM1OTUsNzEgQEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKLSAvKiBSZXR1cm4gdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIERJ RSwgYmFzZWQgb24gaXRzIERXX0FUX25hbWUuCi0gICAgSWYgc2NvcGUgcXVhbGlmaWVycyBhcmUg YXBwcm9wcmlhdGUgdGhleSB3aWxsIGJlIGFkZGVkLiAgVGhlIHJlc3VsdAotICAgIHdpbGwgYmUg YWxsb2NhdGVkIG9uIHRoZSBvYmpmaWxlX29ic3RhY2ssIG9yIE5VTEwgaWYgdGhlIERJRSBkb2Vz Ci0tICAgbm90IGhhdmUgYSBuYW1lLiAgKi8KLSsgICBub3QgaGF2ZSBhIG5hbWUuCi0rCi0rICAg VGhlIG91dHB1dCBzdHJpbmcgd2lsbCBiZSBjYW5vbmljYWxpemVkIChpZiBDKysvSmF2YSkuICov Ci0gCi0gc3RhdGljIGNvbnN0IGNoYXIgKgotIGR3YXJmMl9mdWxsX25hbWUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSB7Ci0tICBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyOwotLSAgY2hhciAqcHJlZml4LCAqbmFtZTsKLS0gIHN0cnVjdCB1aV9maWxlICpidWYg PSBOVUxMOwotKyAgY2hhciAqbmFtZTsKLSAKLSAgIG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBj dSk7Ci0tICBpZiAoIW5hbWUpCi0tICAgIHJldHVybiBOVUxMOworQEAgLTMzMzcsNDIgKzM1NTks MTgzIEBAIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCisgICAgIH0KKyB9CiAgCi0gICAvKiBUaGVzZSBhcmUgdGhlIG9ubHkgbGFuZ3VhZ2Vz IHdlIGtub3cgaG93IHRvIHF1YWxpZnkgbmFtZXMgaW4uICAqLwotLSAgaWYgKGN1LT5sYW5ndWFn ZSAhPSBsYW5ndWFnZV9jcGx1cwotLSAgICAgICYmIGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9q YXZhKQotLSAgICByZXR1cm4gbmFtZTsKKysvKiBBIGhlbHBlciBmdW5jdGlvbiBmb3IgZHdhcmYy X2NvbXB1dGVfbmFtZSB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIgRElFCisrICAgbmVlZHMgdG8g aGF2ZSB0aGUgbmFtZSBvZiB0aGUgc2NvcGUgcHJlcGVuZGVkIHRvIHRoZSBuYW1lIGxpc3RlZCBp biB0aGUKKysgICBkaWUuICAqLworKworK3N0YXRpYyBpbnQKKytkaWVfbmVlZHNfbmFtZXNwYWNl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisreworKyAgc3dp dGNoIChkaWUtPnRhZykKKysgICAgeworKyAgICBjYXNlIERXX1RBR19uYW1lc3BhY2U6CisrICAg IGNhc2UgRFdfVEFHX3R5cGVkZWY6CisrICAgIGNhc2UgRFdfVEFHX2NsYXNzX3R5cGU6CisrICAg IGNhc2UgRFdfVEFHX2ludGVyZmFjZV90eXBlOgorKyAgICBjYXNlIERXX1RBR19zdHJ1Y3R1cmVf dHlwZToKKysgICAgY2FzZSBEV19UQUdfdW5pb25fdHlwZToKKysgICAgY2FzZSBEV19UQUdfZW51 bWVyYXRpb25fdHlwZToKKysgICAgY2FzZSBEV19UQUdfZW51bWVyYXRvcjoKKysgICAgY2FzZSBE V19UQUdfc3VicHJvZ3JhbToKKysgICAgY2FzZSBEV19UQUdfbWVtYmVyOgorKyAgICAgIHJldHVy biAxOworKworKyAgICBjYXNlIERXX1RBR192YXJpYWJsZToKKysgICAgICB7CisrCXN0cnVjdCBh dHRyaWJ1dGUgKmF0dHI7CisrCisrCS8qIFdlIG9ubHkgbmVlZCB0byBwcmVmaXggImdsb2JhbGx5 IiB2aXNpYmxlIHZhcmlhYmxlcy4gIFRoZXNlIGluY2x1ZGUKKysJICAgYW55IHZhcmlhYmxlIG1h cmtlZCB3aXRoIERXX0FUX2V4dGVybmFsIG9yIGFueSB2YXJpYWJsZSB0aGF0CisrCSAgIGxpdmVz IGluIGEgbmFtZXNwYWNlLiAgW1ZhcmlhYmxlcyBpbiBhbm9ueW1vdXMgbmFtZXNwYWNlcworKwkg ICByZXF1aXJlIHByZWZpeGluZywgYnV0IHRoZXkgYXJlIG5vdCBEV19BVF9leHRlcm5hbC5dICAq LworKworKwlpZiAoZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfc3BlY2lmaWNhdGlvbiwgY3UpKQor KwkgIHsKKysJICAgIHN0cnVjdCBkd2FyZjJfY3UgKnNwZWNfY3UgPSBjdTsKKysJICAgIHJldHVy biBkaWVfbmVlZHNfbmFtZXNwYWNlIChkaWVfc3BlY2lmaWNhdGlvbiAoZGllLCAmc3BlY19jdSks CisrCQkJCQlzcGVjX2N1KTsKKysJICB9CisrCisrCS8qIEEgdmFyaWFibGUgaW4gYSBsZXhpY2Fs IGJsb2NrIG9mIHNvbWUga2luZCBkb2VzIG5vdCBuZWVkCisrCSAgIGEgbmFtZXNwYWNlLCBldmVu IHRob3VnaCBpbiBDKysgc3VjaCB2YXJpYWJsZXMgbWF5IGJlCisrCSAgIGV4dGVybmFsIGFuZCBo YXZlIGEgbWFuZ2xlZCBuYW1lLiAgKi8KKysJaWYgKGRpZS0+cGFyZW50LT50YWcgPT0gRFdfVEFH X2xleGljYWxfYmxvY2sKKysJICAgIHx8IGRpZS0+cGFyZW50LT50YWcgPT0gRFdfVEFHX3RyeV9i bG9jaworKwkgICAgfHwgZGllLT5wYXJlbnQtPnRhZyA9PSBEV19UQUdfY2F0Y2hfYmxvY2spCisr CSAgcmV0dXJuIDA7CisrCisrCWF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9leHRlcm5h bCwgY3UpOworKwlpZiAoYXR0ciB8fCBkaWUtPnBhcmVudC0+dGFnID09IERXX1RBR19uYW1lc3Bh Y2UpCisrCSAgcmV0dXJuIDE7CisrCisrCXJldHVybiAwOworKyAgICAgIH0KKysKKysgICAgZGVm YXVsdDoKKysgICAgICByZXR1cm4gMDsKKysgICAgfQorK30KKysKKysvKiBDb21wdXRlIHRoZSBm dWxseSBxdWFsaWZpZWQgbmFtZSBvZiBESUUgaW4gQ1UuICBJZiBQSFlTTkFNRSBpcyBub256ZXJv LAorKyAgIGNvbXB1dGUgdGhlIHBoeXNuYW1lIGZvciB0aGUgb2JqZWN0LCB3aGljaCBpbmNsdWRl IGEgbWV0aG9kJ3MKKysgICBmb3JtYWwgcGFyYW1ldGVycyAoQysrL0phdmEpIGFuZCByZXR1cm4g dHlwZSAoSmF2YSkuCisrCisrICAgVGhlIHJlc3VsdCBpcyBhbGxvY2F0ZWQgb24gdGhlIG9iamZp bGVfb2JzdGFjayBhbmQgY2Fub25pY2FsaXplZC4gICovCisrCisrc3RhdGljIGNvbnN0IGNoYXIg KgorK2R3YXJmMl9jb21wdXRlX25hbWUgKGNoYXIgKm5hbWUsIHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKKysJCSAgICAgaW50IHBoeXNuYW1lKQorK3sKKysgIGlm IChuYW1lID09IE5VTEwpCisrICAgIG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CisrCisr ICAvKiBUaGVzZSBhcmUgdGhlIG9ubHkgbGFuZ3VhZ2VzIHdlIGtub3cgaG93IHRvIHF1YWxpZnkg bmFtZXMgaW4uICAqLwogKyAgaWYgKG5hbWUgIT0gTlVMTAogKyAgICAgICYmIChjdS0+bGFuZ3Vh Z2UgPT0gbGFuZ3VhZ2VfY3BsdXMgfHwgY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2phdmEpKQog KyAgICB7CkBAIC00MTUwLDE3ICs0NTQwLDkgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2 NDQKICsJICBsb25nIGxlbmd0aDsKICsJICBjaGFyICpwcmVmaXg7CiArCSAgc3RydWN0IHVpX2Zp bGUgKmJ1ZjsKLSAKLS0gIC8qIElmIG5vIHByZWZpeCBpcyBuZWNlc3NhcnkgZm9yIHRoaXMgdHlw ZSBvZiBESUUsIHJldHVybiB0aGUKLS0gICAgIHVucXVhbGlmaWVkIG5hbWUuICBUaGUgb3RoZXIg dGhyZWUgdGFncyBsaXN0ZWQgY291bGQgYmUgaGFuZGxlZAotLSAgICAgaW4gcGRpX25lZWRzX25h bWVzcGFjZSwgYnV0IHRoYXQgcmVxdWlyZXMgYnJvYWRlciBjaGFuZ2VzLiAgKi8KLS0gIGlmICgh cGRpX25lZWRzX25hbWVzcGFjZSAoZGllLT50YWcpCi0tICAgICAgJiYgZGllLT50YWcgIT0gRFdf VEFHX3N1YnByb2dyYW0KLS0gICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfdmFyaWFibGUKLS0g ICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfbWVtYmVyKQotLSAgICByZXR1cm4gbmFtZTsKLSsJ ICBidWYgPSBtZW1fZmlsZW9wZW4gKCk7CisrCiArCSAgcHJlZml4ID0gZGV0ZXJtaW5lX3ByZWZp eCAoZGllLCBjdSk7CisrCSAgYnVmID0gbWVtX2ZpbGVvcGVuICgpOwogKwkgIGlmICgqcHJlZml4 ICE9ICdcMCcpCiArCSAgICB7CiArCSAgICAgIGNoYXIgKnByZWZpeGVkX25hbWUgPSB0eXBlbmFt ZV9jb25jYXQgKE5VTEwsIHByZWZpeCwgbmFtZSwgY3UpOwpAQCAtNDE2OCwxMiArNDU1MCwzNiBA QCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogKwkgICAgICB4ZnJlZSAocHJlZml4ZWRf bmFtZSk7CiArCSAgICB9CiArCSAgZWxzZQotKwkgICAgZnB1dHNfdW5maWx0ZXJlZCAobmFtZSwg YnVmKTsKLSAKLS0gIHByZWZpeCA9IGRldGVybWluZV9wcmVmaXggKGRpZSwgY3UpOwotLSAgaWYg KCpwcmVmaXggIT0gJ1wwJykKLS0gICAgbmFtZSA9IHR5cGVuYW1lX2NvbmNhdCAoJmN1LT5vYmpm aWxlLT5vYmpmaWxlX29ic3RhY2ssIHByZWZpeCwKLS0JCQkgICAgbmFtZSwgY3UpOworKwkgICAg ZnB1dHNfdW5maWx0ZXJlZCAobmFtZSA/IG5hbWUgOiAiIiwgYnVmKTsKKysKKysJICAvKiBGb3Ig SmF2YSBhbmQgQysrIG1ldGhvZHMsIGFwcGVuZCBmb3JtYWwgcGFyYW1ldGVyIHR5cGUKKysJICAg ICBpbmZvcm1hdGlvbiwgaWYgUEhZU05BTUUuICAqLworKworKwkgIGlmIChwaHlzbmFtZSAmJiBk aWUtPnRhZyA9PSBEV19UQUdfc3VicHJvZ3JhbQorKwkgICAgICAmJiAoY3UtPmxhbmd1YWdlID09 IGxhbmd1YWdlX2NwbHVzCisrCQkgIHx8IGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9qYXZhKSkK KysJICAgIHsKKysJICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSByZWFkX3R5cGVfZGllIChkaWUs IGN1KTsKKysKKysJICAgICAgY190eXBlX3ByaW50X2FyZ3MgKHR5cGUsIGJ1ZiwgMCwgY3UtPmxh bmd1YWdlKTsKKysKKysJICAgICAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9qYXZhKQor KwkJeworKwkJICAvKiBGb3IgamF2YSwgd2UgbXVzdCBhcHBlbmQgdGhlIHJldHVybiB0eXBlIHRv IG1ldGhvZAorKwkJICAgICBuYW1lcy4gKi8KKysJCSAgaWYgKGRpZS0+dGFnID09IERXX1RBR19z dWJwcm9ncmFtKQorKwkJICAgIGphdmFfcHJpbnRfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlw ZSksICIiLCBidWYsCisrCQkJCSAgICAgMCwgMCk7CisrCQl9CisrCSAgICAgIGVsc2UgaWYgKGN1 LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cykKKysJCXsKKysJCSAgaWYgKFRZUEVfTkZJRUxE UyAodHlwZSkgPiAwCisrCQkgICAgICAmJiBUWVBFX0ZJRUxEX0FSVElGSUNJQUwgKHR5cGUsIDAp CisrCQkgICAgICAmJiBUWVBFX0NPTlNUIChUWVBFX1RBUkdFVF9UWVBFIChUWVBFX0ZJRUxEX1RZ UEUgKHR5cGUsIDApKSkpCisrCQkgICAgZnB1dHNfdW5maWx0ZXJlZCAoIiBjb25zdCIsIGJ1Zik7 CisrCQl9CisrCSAgICB9CisrCiArCSAgbmFtZSA9IHVpX2ZpbGVfb2JzYXZlc3RyaW5nIChidWYs ICZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLAogKwkJCQkgICAgICAgJmxlbmd0aCk7CiAr CSAgdWlfZmlsZV9kZWxldGUgKGJ1Zik7CkBAIC00MTg4LDEwICs0NTk0LDY0IEBAIGluZGV4IDg2 YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiArCSAgICB9CiArCX0KICsgICAgfQorKworKyAgcmV0dXJu IG5hbWU7CisrfQorKworIC8qIFJldHVybiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgRElF LCBiYXNlZCBvbiBpdHMgRFdfQVRfbmFtZS4KKyAgICBJZiBzY29wZSBxdWFsaWZpZXJzIGFyZSBh cHByb3ByaWF0ZSB0aGV5IHdpbGwgYmUgYWRkZWQuICBUaGUgcmVzdWx0CisgICAgd2lsbCBiZSBh bGxvY2F0ZWQgb24gdGhlIG9iamZpbGVfb2JzdGFjaywgb3IgTlVMTCBpZiB0aGUgRElFIGRvZXMK Ky0gICBub3QgaGF2ZSBhIG5hbWUuICAqLworKyAgIG5vdCBoYXZlIGEgbmFtZS4gIE5BTUUgbWF5 IGVpdGhlciBiZSBmcm9tIGEgcHJldmlvdXMgY2FsbCB0bworKyAgIGR3YXJmMl9uYW1lIG9yIE5V TEwuCisrCisrICAgVGhlIG91dHB1dCBzdHJpbmcgd2lsbCBiZSBjYW5vbmljYWxpemVkIChpZiBD KysvSmF2YSkuICovCiAgCi0gICByZXR1cm4gbmFtZTsKLSB9Cisgc3RhdGljIGNvbnN0IGNoYXIg KgorLWR3YXJmMl9mdWxsX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKKytkd2FyZjJfZnVsbF9uYW1lIChjaGFyICpuYW1lLCBzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgeworLSAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0 cjsKKy0gIGNoYXIgKnByZWZpeCwgKm5hbWU7CistICBzdHJ1Y3QgdWlfZmlsZSAqYnVmID0gTlVM TDsKKysgIHJldHVybiBkd2FyZjJfY29tcHV0ZV9uYW1lIChuYW1lLCBkaWUsIGN1LCAwKTsKKyt9 CisgCistICBuYW1lID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOworLSAgaWYgKCFuYW1lKQorLSAg ICByZXR1cm4gTlVMTDsKKysvKiBDb25zdHJ1Y3QgYSBwaHlzbmFtZSBmb3IgdGhlIGdpdmVuIERJ RSBpbiBDVS4gIE5BTUUgbWF5IGVpdGhlciBiZQorKyAgIGZyb20gYSBwcmV2aW91cyBjYWxsIHRv IGR3YXJmMl9uYW1lIG9yIE5VTEwuICBUaGUgcmVzdWx0IHdpbGwgYmUKKysgICBhbGxvY2F0ZWQg b24gdGVoIG9iamZpbGVfb2Jqc3RhY2sgb3IgTlVMTCBpZiB0aGUgRElFIGRvZXMgbm90IGhhdmUg YQorKyAgIG5hbWUuCisgCistICAvKiBUaGVzZSBhcmUgdGhlIG9ubHkgbGFuZ3VhZ2VzIHdlIGtu b3cgaG93IHRvIHF1YWxpZnkgbmFtZXMgaW4uICAqLworLSAgaWYgKGN1LT5sYW5ndWFnZSAhPSBs YW5ndWFnZV9jcGx1cworLSAgICAgICYmIGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9qYXZhKQor LSAgICByZXR1cm4gbmFtZTsKKy0KKy0gIC8qIElmIG5vIHByZWZpeCBpcyBuZWNlc3NhcnkgZm9y IHRoaXMgdHlwZSBvZiBESUUsIHJldHVybiB0aGUKKy0gICAgIHVucXVhbGlmaWVkIG5hbWUuICBU aGUgb3RoZXIgdGhyZWUgdGFncyBsaXN0ZWQgY291bGQgYmUgaGFuZGxlZAorLSAgICAgaW4gcGRp X25lZWRzX25hbWVzcGFjZSwgYnV0IHRoYXQgcmVxdWlyZXMgYnJvYWRlciBjaGFuZ2VzLiAgKi8K Ky0gIGlmICghcGRpX25lZWRzX25hbWVzcGFjZSAoZGllLT50YWcpCistICAgICAgJiYgZGllLT50 YWcgIT0gRFdfVEFHX3N1YnByb2dyYW0KKy0gICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfdmFy aWFibGUKKy0gICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfbWVtYmVyKQorLSAgICByZXR1cm4g bmFtZTsKKy0KKy0gIHByZWZpeCA9IGRldGVybWluZV9wcmVmaXggKGRpZSwgY3UpOworLSAgaWYg KCpwcmVmaXggIT0gJ1wwJykKKy0gICAgbmFtZSA9IHR5cGVuYW1lX2NvbmNhdCAoJmN1LT5vYmpm aWxlLT5vYmpmaWxlX29ic3RhY2ssIHByZWZpeCwKKy0JCQkgICAgbmFtZSwgY3UpOworKyAgIFRo ZSBvdXRwdXQgc3RyaW5nIHdpbGwgYmUgY2Fub25pY2FsaXplZCAoaWYgQysrL0phdmEpLiAgKi8K ICAKKy0gIHJldHVybiBuYW1lOworK3N0YXRpYyBjb25zdCBjaGFyICoKKytkd2FyZjJfcGh5c25h bWUgKGNoYXIgKm5hbWUsIHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKKyt7CisrICByZXR1cm4gZHdhcmYyX2NvbXB1dGVfbmFtZSAobmFtZSwgZGllLCBjdSwgMSk7 CisrfQorKwogKy8qIFJlYWQgdGhlIGdpdmVuIERJRSdzIERXX0FUX2RlY2xfbGluZSBudW1iZXIu ICBSZXR1cm4gLTEgaWYgaW4gY2FzZSBvZiBhbgogKyAgIGVycm9yLiAgKi8KICsKQEAgLTQyMDUs MTUgKzQ2NjUsMTUgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICsgICAgcmV0dXJu IERXX1VOU05EIChsaW5lX2F0dHIpOwogKwogKyAgcmV0dXJuIC0xOwotK30KLSsKLSAvKiBSZWFk IHRoZSBpbXBvcnQgc3RhdGVtZW50IHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4gZGllIGFuZCByZWNv cmQgaXQuICAqLworIH0KICAKLSBzdGF0aWMgdm9pZAotQEAgLTMzODUsOSArMzY3MCwxNSBAQCBy ZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKKyAvKiBSZWFkIHRoZSBpbXBvcnQgc3RhdGVtZW50IHNwZWNpZmllZCBieSB0aGUg Z2l2ZW4gZGllIGFuZCByZWNvcmQgaXQuICAqLworQEAgLTMzODUsMTEgKzM3NDgsMTUgQEAgcmVh ZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICBzdHJ1Y3QgZHdhcmYyX2N1ICppbXBvcnRlZF9jdTsKICAgIGNvbnN0IGNoYXIg KmltcG9ydGVkX25hbWU7CiAgICBjb25zdCBjaGFyICppbXBvcnRlZF9uYW1lX3ByZWZpeDsKKy0g IGNoYXIgKmltcG9ydF9hbGlhczsKKy0KIC0gIGNvbnN0IGNoYXIgKmltcG9ydF9wcmVmaXg7CiAg ICBjaGFyICpjYW5vbmljYWxfbmFtZTsKIC0KQEAgLTQyMjgsMTggKzQ2ODgsMTQgQEAgaW5kZXgg ODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAgIGltcG9ydF9hdHRyID0gZHdhcmYyX2F0dHIgKGRp ZSwgRFdfQVRfaW1wb3J0LCBjdSk7CiAgICBpZiAoaW1wb3J0X2F0dHIgPT0gTlVMTCkKICAgICAg ewotQEAgLTM0MzYsMTcgKzM3MjcsMjcgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi0gICAgICAgcmV0dXJuOworQEAg LTM0MzksMTkgKzM4MDYsMjUgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIH0KICAKLS0gIC8qIEZJWE1FOiBk d2FyZjJfbmFtZSAoZGllKTsgZm9yIHRoZSBsb2NhbCBuYW1lIGFmdGVyIGltcG9ydC4gICovCi0t Ci0tICAvKiBGaWd1cmUgb3V0IHdoZXJlIHRoZSBzdGF0ZW1lbnQgaXMgYmVpbmcgaW1wb3J0ZWQg dG8uICAqLwotKyAgLyogRmlndXJlIG91dCB0aGUgbG9jYWwgbmFtZSBhZnRlciBpbXBvcnQuICAq LworICAgLyogRmlndXJlIG91dCB0aGUgbG9jYWwgbmFtZSBhZnRlciBpbXBvcnQuICAqLworLSAg aW1wb3J0X2FsaWFzID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwogKyAgaW1wb3J0X2FsaWFzID0g ZHdhcmYyX25hbWUoZGllLCBjdSk7Ci0rICBpZihpbXBvcnRfYWxpYXMgPT0gTlVMTCl7Ci0rICAg IGltcG9ydF9hbGlhcyA9ICIiOwotKyAgfQorIAorLSAgLyogRmlndXJlIG91dCB3aGVyZSB0aGUg c3RhdGVtZW50IGlzIGJlaW5nIGltcG9ydGVkIHRvLiAgKi8KICsgIAogKyAgLyogRGV0ZXJtaW5l IHRoZSBsaW5lIG51bWJlciBhdCB3aGljaCB0aGUgaW1wb3J0IHdhcyBtYWRlICovCiArICBsaW5l X251bWJlciA9IGR3YXJmMl9yZWFkX2RlY2xfbGluZShkaWUsIGN1KTsKQEAgLTQyNDksMzggKzQ3 MDUsMzggQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAKICAgIC8qIEZpZ3VyZSBv dXQgd2hhdCB0aGUgc2NvcGUgb2YgdGhlIGltcG9ydGVkIGRpZSBpcyBhbmQgcHJlcGVuZCBpdAog ICAgICAgdG8gdGhlIG5hbWUgb2YgdGhlIGltcG9ydGVkIGRpZS4gICovCi0tICBpbXBvcnRlZF9u YW1lX3ByZWZpeCA9IGRldGVybWluZV9wcmVmaXggKGltcG9ydGVkX2RpZSwgaW1wb3J0ZWRfY3Up OworICAgaW1wb3J0ZWRfbmFtZV9wcmVmaXggPSBkZXRlcm1pbmVfcHJlZml4IChpbXBvcnRlZF9k aWUsIGltcG9ydGVkX2N1KTsKIC0KIC0gIGlmIChzdHJsZW4gKGltcG9ydGVkX25hbWVfcHJlZml4 KSA+IDApCiAtICAgIHsKLSsgIGltcG9ydGVkX25hbWVfcHJlZml4ID0gZGV0ZXJtaW5lX3ByZWZp eCAoaW1wb3J0ZWRfZGllLCBjdSk7CistICAgICAgY2Fub25pY2FsX25hbWUgPSBhbGxvY2EgKHN0 cmxlbiAoaW1wb3J0ZWRfbmFtZV9wcmVmaXgpCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsgMiArIHN0cmxlbiAoaW1wb3J0ZWRfbmFtZSkgKyAxKTsKICsgIAogKyAgaWYoaW1wb3J0 ZWRfZGllLT50YWcgIT0gRFdfVEFHX25hbWVzcGFjZSl7CiArICAgIGltcG9ydGVkX2RlY2xhcmF0 aW9uID0gaW1wb3J0ZWRfbmFtZTsKICsgICAgY2Fub25pY2FsX25hbWUgPSAoY2hhciopaW1wb3J0 ZWRfbmFtZV9wcmVmaXg7CiArICB9ZWxzZXsKICsgICAgaWYoc3RybGVuIChpbXBvcnRlZF9uYW1l X3ByZWZpeCkgPiAwKXsKLSAgICAgICBjYW5vbmljYWxfbmFtZSA9IGFsbG9jYSAoc3RybGVuIChp bXBvcnRlZF9uYW1lX3ByZWZpeCkgKyAyICsgc3RybGVuIChpbXBvcnRlZF9uYW1lKSArIDEpOwor KyAgICAgIGNhbm9uaWNhbF9uYW1lID0gYWxsb2NhIChzdHJsZW4gKGltcG9ydGVkX25hbWVfcHJl Zml4KSArIDIgKyBzdHJsZW4gKGltcG9ydGVkX25hbWUpICsgMSk7CiAgICAgICAgc3RyY3B5IChj YW5vbmljYWxfbmFtZSwgaW1wb3J0ZWRfbmFtZV9wcmVmaXgpOwogICAgICAgIHN0cmNhdCAoY2Fu b25pY2FsX25hbWUsICI6OiIpOwotQEAgLTM0NTcsOCArMzc1OCwxNCBAQCByZWFkX2ltcG9ydF9z dGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAg ICAgICBzdHJjYXQgKGNhbm9uaWNhbF9uYW1lLCBpbXBvcnRlZF9uYW1lKTsKK0BAIC0zNDYxLDEw ICszODM0LDEzIEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGNhbm9uaWNhbF9uYW1lID0gYWxsb2NhIChz dHJsZW4gKGltcG9ydGVkX25hbWUpICsgMSk7CiAgICAgICAgc3RyY3B5IChjYW5vbmljYWxfbmFt ZSwgaW1wb3J0ZWRfbmFtZSk7CiAgICAgIH0KIC0KLS0gIHVzaW5nX2RpcmVjdGl2ZXMgPSBjcF9h ZGRfdXNpbmcgKGltcG9ydF9wcmVmaXgsY2Fub25pY2FsX25hbWUsIHVzaW5nX2RpcmVjdGl2ZXMp OwogKyAgfQogKyAgCi0rICB1c2luZ19kaXJlY3RpdmVzID0gY3BfYWRkX3VzaW5nIChpbXBvcnRf cHJlZml4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fub25pY2FsX25h bWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnRfYWxpYXMsCisg ICB1c2luZ19kaXJlY3RpdmVzID0gY3BfYWRkX3VzaW5nIChpbXBvcnRfcHJlZml4LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fub25pY2FsX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnRfYWxpYXMsCiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbXBvcnRlZF9kZWNsYXJhdGlvbiwKICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpbmVfbnVtYmVyLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdXNpbmdfZGlyZWN0aXZlcyk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1c2luZ19kaXJlY3RpdmVzKTsKICB9CiAgCi0gc3RhdGljIHZvaWQKLUBA IC0zNzI3LDYgKzQwMzQsMTQgQEAgaW5oZXJpdF9hYnN0cmFjdF9kaWVzIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzczNCw2ICs0MTEwLDE0IEBAIGlu aGVyaXRfYWJzdHJhY3RfZGllcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAKICAgIGF0dHIgPSBkd2FyZjJf YXR0ciAoZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKQEAgLTQyOTUsNyArNDc1MSw3 IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICBpZiAoIWF0dHIpCiAgICAgIHJl dHVybjsKICAKLUBAIC0zODI1LDYgKzQxNDAsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zODMyLDYgKzQyMTYsNyBA QCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAgIGNoYXIgKm5hbWU7CiAgICBDT1JFX0FERFIgYmFzZWFkZHI7CiAgICBzdHJ1Y3Qg YmxvY2sgKmJsb2NrOwpAQCAtNDMwMyw3ICs0NzU5LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4 OSAxMDA2NDQKICAgIGludCBpbmxpbmVkX2Z1bmMgPSAoZGllLT50YWcgPT0gRFdfVEFHX2lubGlu ZWRfc3Vicm91dGluZSk7CiAgCiAgICBpZiAoaW5saW5lZF9mdW5jKQotQEAgLTM4NDMsMTMgKzQx NTksMjMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCitAQCAtMzg1MCwxMyArNDIzNSwyMyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGJhc2VhZGRy ID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2Jq ZmlsZSkpOwogIApAQCAtNDMzMCw3ICs0Nzg2LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAx MDA2NDQKICAgIGxvd3BjICs9IGJhc2VhZGRyOwogICAgaGlnaHBjICs9IGJhc2VhZGRyOwogIAot QEAgLTM4NzYsMTQgKzQyMDIsMTkgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzg4MywxNCArNDI3OCwxOSBAQCByZWFk X2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAKICAgIGN1LT5saXN0X2luX3Njb3BlID0gJmxvY2FsX3N5bWJvbHM7CiAgCkBAIC00MzU3LDcg KzQ4MTMsNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogICAgICB9CiAgCiAgICBp bmhlcml0X2Fic3RyYWN0X2RpZXMgKGRpZSwgY3UpOwotQEAgLTM4OTksNiArNDIzMCwxMyBAQCBy ZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC0zOTA2LDYgKzQzMDYsMTMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkJZGV0ZXJtaW5lX3ByZWZpeCAoZGll LCBjdSksCiAgCQkJcHJvY2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8pOwogIApAQCAtNDM3MSwz MSArNDgyNywzMSBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogICAgLyogSWYgd2Ug aGF2ZSBhZGRyZXNzIHJhbmdlcywgcmVjb3JkIHRoZW0uICAqLwogICAgZHdhcmYyX3JlY29yZF9i bG9ja19yYW5nZXMgKGRpZSwgYmxvY2ssIGJhc2VhZGRyLCBjdSk7CiAgICAKLUBAIC00NTE3LDcg KzQ4NTUsNyBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1 Y3QgZGllX2luZm8gKmRpZSwKK0BAIC00NTI0LDcgKzQ5MzEsNyBAQCBkd2FyZjJfYWRkX2ZpZWxk IChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAJcmV0dXJu OwogIAogICAgICAgIC8qIEdldCBwaHlzaWNhbCBuYW1lLiAgKi8KIC0gICAgICBwaHlzbmFtZSA9 IGR3YXJmMl9saW5rYWdlX25hbWUgKGRpZSwgY3UpOwotKyAgICAgIHBoeXNuYW1lID0gZHdhcmYy X3BoeXNuYW1lIChkaWUsIGN1KTsKKysgICAgICBwaHlzbmFtZSA9IChjaGFyICopIGR3YXJmMl9w aHlzbmFtZSAoZmllbGRuYW1lLCBkaWUsIGN1KTsKICAKICAgICAgICAvKiBUaGUgbmFtZSBpcyBh bHJlYWR5IGFsbG9jYXRlZCBhbG9uZyB3aXRoIHRoaXMgb2JqZmlsZSwgc28gd2UgZG9uJ3QKICAJ IG5lZWQgdG8gZHVwbGljYXRlIGl0IGZvciB0aGUgdHlwZS4gICovCi1AQCAtNDY3OSw3ICs1MDE3 LDcgQEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVj dCBkaWVfaW5mbyAqZGllLAorQEAgLTQ2ODYsNyArNTA5Myw3IEBAIGR3YXJmMl9hZGRfbWVtYmVy X2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAgICAg cmV0dXJuOwogIAogICAgLyogR2V0IHRoZSBtYW5nbGVkIG5hbWUuICAqLwogLSAgcGh5c25hbWUg PSBkd2FyZjJfbGlua2FnZV9uYW1lIChkaWUsIGN1KTsKLSsgIHBoeXNuYW1lID0gZHdhcmYyX3Bo eXNuYW1lIChkaWUsIGN1KTsKKysgIHBoeXNuYW1lID0gKGNoYXIgKikgZHdhcmYyX3BoeXNuYW1l IChmaWVsZG5hbWUsIGRpZSwgY3UpOwogIAogICAgLyogTG9vayB1cCBtZW1iZXIgZnVuY3Rpb24g bmFtZSBpbiBmaWVsZGxpc3QuICAqLwogICAgZm9yIChpID0gMDsgaSA8IGZpcC0+bmZuZmllbGRz OyBpKyspCi1AQCAtNDk4NiwxNCArNTMyNCwxOCBAQCByZWFkX3N0cnVjdHVyZV90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNDk5MywxNCArNTQw MCwxOCBAQCByZWFkX3N0cnVjdHVyZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1 cwogIAkgIHx8IGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9qYXZhKQogIAl7CiAtCSAgY29uc3Qg Y2hhciAqbmV3X3ByZWZpeCA9IGRldGVybWluZV9jbGFzc19uYW1lIChkaWUsIGN1KTsKIC0JICBU WVBFX1RBR19OQU1FICh0eXBlKSA9IChjaGFyICopIG5ld19wcmVmaXg7Ci0rCSAgVFlQRV9UQUdf TkFNRSAodHlwZSkgPSAoY2hhciAqKSBkd2FyZjJfZnVsbF9uYW1lIChkaWUsIGN1KTsKKysJICBU WVBFX1RBR19OQU1FICh0eXBlKSA9IChjaGFyICopIGR3YXJmMl9mdWxsX25hbWUgKG5hbWUsIGRp ZSwgY3UpOwogKwkgIGlmIChkaWUtPnRhZyA9PSBEV19UQUdfc3RydWN0dXJlX3R5cGUKICsJICAg ICAgfHwgZGllLT50YWcgPT0gRFdfVEFHX2NsYXNzX3R5cGUpCiArCSAgICBUWVBFX05BTUUgKHR5 cGUpID0gVFlQRV9UQUdfTkFNRSAodHlwZSk7CkBAIC00NDExLDcgKzQ4NjcsMTYgQEAgaW5kZXgg ODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAJfQogICAgICB9CiAgCi1AQCAtNTIzNyw1MSArNTU3 OSw2IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTUyMTksNyArNTYzMCw3IEBAIHJlYWRfZW51bWVyYXRpb25f dHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgdHlw ZSA9IGFsbG9jX3R5cGUgKG9iamZpbGUpOworIAorICAgVFlQRV9DT0RFICh0eXBlKSA9IFRZUEVf Q09ERV9FTlVNOworLSAgbmFtZSA9IGR3YXJmMl9mdWxsX25hbWUgKGRpZSwgY3UpOworKyAgbmFt ZSA9IGR3YXJmMl9mdWxsX25hbWUgKE5VTEwsIGRpZSwgY3UpOworICAgaWYgKG5hbWUgIT0gTlVM TCkKKyAgICAgVFlQRV9UQUdfTkFNRSAodHlwZSkgPSAoY2hhciAqKSBuYW1lOworIAorQEAgLTUy NDQsNTEgKzU2NTUsNiBAQCByZWFkX2VudW1lcmF0aW9uX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwg dHlwZSwgY3UpOwogIH0KICAKQEAgLTQ0NjMsNyArNDkyOCw3IEBAIGluZGV4IDg2YmZlY2IuLmRk ZjIxODkgMTAwNjQ0CiAgLyogR2l2ZW4gYSBwb2ludGVyIHRvIGEgZGllIHdoaWNoIGJlZ2lucyBh biBlbnVtZXJhdGlvbiwgcHJvY2VzcyBhbGwKICAgICB0aGUgZGllcyB0aGF0IGRlZmluZSB0aGUg bWVtYmVycyBvZiB0aGUgZW51bWVyYXRpb24sIGFuZCBjcmVhdGUgdGhlCiAgICAgc3ltYm9sIGZv ciB0aGUgZW51bWVyYXRpb24gdHlwZS4KLUBAIC01MzU5LDYgKzU2NTYsMjkgQEAgcHJvY2Vzc19l bnVtZXJhdGlvbl9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTUzNjYsNiArNTczMiwyOSBAQCBwcm9jZXNzX2VudW1lcmF0aW9uX3Njb3BlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBuZXdfc3ltYm9s IChkaWUsIHRoaXNfdHlwZSwgY3UpOwogIH0KICAKQEAgLTQ0OTMsNyArNDk1OCw3IEBAIGluZGV4 IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgLyogRXh0cmFjdCBhbGwgaW5mb3JtYXRpb24gZnJv bSBhIERXX1RBR19hcnJheV90eXBlIERJRSBhbmQgcHV0IGl0IGluCiAgICAgdGhlIERJRSdzIHR5 cGUgZmllbGQuICBGb3Igbm93LCB0aGlzIG9ubHkgaGFuZGxlcyBvbmUgZGltZW5zaW9uYWwKICAg ICBhcnJheXMuICAqLwotQEAgLTUzNzIsNyArNTY5Miw3IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUzNzksNyArNTc2 OCw3IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQogICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSwgKnJhbmdlX3R5cGUsICpp bmRleF90eXBlOwogICAgc3RydWN0IHR5cGUgKipyYW5nZV90eXBlcyA9IE5VTEw7CiAgICBzdHJ1 Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtNDUwMiw3ICs0OTY3LDcgQEAgaW5kZXggODZiZmVjYi4u ZGRmMjE4OSAxMDA2NDQKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgY2hhciAqbmFt ZTsKICAKLUBAIC01NDE5LDE2ICs1NzM5LDExIEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU0MjYsMTYgKzU4MTUsMTEg QEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICB0eXBlID0gZWxlbWVudF90eXBlOwogIAogICAgaWYgKHJlYWRfYXJyYXlfb3Jk ZXIgKGRpZSwgY3UpID09IERXX09SRF9jb2xfbWFqb3IpCkBAIC00NTI0LDE2ICs0OTg5LDE2IEBA IGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgCiAgICAvKiBVbmRlcnN0YW5kIER3YXJm MiBzdXBwb3J0IGZvciB2ZWN0b3IgdHlwZXMgKGxpa2UgdGhleSBvY2N1ciBvbgogICAgICAgdGhl IFBvd2VyUEMgdy8gQWx0aVZlYykuICBHY2MganVzdCBhZGRzIGFub3RoZXIgYXR0cmlidXRlIHRv IHRoZQotQEAgLTU2MTcsNyArNTkzMiw3IEBAIHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTYyNCw3ICs2MDA4LDcgQEAgcmVh ZF9uYW1lc3BhY2UgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAgICAgICBpZiAoaXNfYW5vbnltb3VzKQogIAl7CiAgCSAgY29uc3QgY2hhciAqcHJldmlvdXNf cHJlZml4ID0gZGV0ZXJtaW5lX3ByZWZpeCAoZGllLCBjdSk7Ci0tCSAgY3BfYWRkX3VzaW5nX2Rp cmVjdGl2ZSAocHJldmlvdXNfcHJlZml4LCBUWVBFX05BTUUgKHR5cGUpKTsKLSsJICBjcF9hZGRf dXNpbmdfZGlyZWN0aXZlIChwcmV2aW91c19wcmVmaXgsIFRZUEVfTkFNRSAodHlwZSksICIiLCAi IiwgZHdhcmYyX3JlYWRfZGVjbF9saW5lKGRpZSwgY3UpKTsKKy0JICBjcF9hZGRfdXNpbmdfZGly ZWN0aXZlIChwcmV2aW91c19wcmVmaXgsIFRZUEVfTkFNRSAodHlwZSksIE5VTEwpOworKwkgIGNw X2FkZF91c2luZ19kaXJlY3RpdmUgKHByZXZpb3VzX3ByZWZpeCwgVFlQRV9OQU1FICh0eXBlKSwg TlVMTCwgIiIsIGR3YXJmMl9yZWFkX2RlY2xfbGluZShkaWUsIGN1KSk7CiAgCX0KICAgICAgfQog IAotQEAgLTU2MzMsMjAgKzU5NDgsMTU1IEBAIHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTY0MCwyMCArNjAyNCwxNTUgQEAg cmVhZF9uYW1lc3BhY2UgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICAgICAgfQogIH0KICAKQEAgLTQ1NDYsMTQgKzUwMTEsMTMgQEAgaW5kZXggODZiZmVjYi4u ZGRmMjE4OSAxMDA2NDQKICB7CiAtICBzdHJ1Y3QgZGllX2luZm8gKmNoaWxkX2RpZSA9IGRpZS0+ Y2hpbGQ7CiArICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLSAKLS0gIC8qIEZJWE1FOiBTdXBwb3J0IHRo ZSBzZXBhcmF0ZSBGb3J0cmFuIG1vZHVsZSBuYW1lc3BhY2VzLiAgKi8KKysKICsgIHR5cGUgPSBy ZWFkX21vZHVsZV90eXBlIChkaWUsIGN1KTsKICsKICsgIGlmICh0eXBlKQogKyAgICBuZXdfc3lt Ym9sIChkaWUsIHR5cGUsIGN1KTsKICt9Ci0gCisrCiArLyogUmVhZCBhIEZvcnRyYW4gbW9kdWxl IGFzIHR5cGUuCiArCiArICAgTW9kdWxlcyBwcmVzZW50IG9ubHkgYXMgZGVjbGFyYXRpb25zIC0g YmVpbmcgdXNlZCBvbmx5IGZvciBEV19BVF9pbXBvcnQgb2YKQEAgLTQ1OTAsOSArNTA1NCwxMCBA QCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogKyAgc2F2ZV9nbG9iYWxfc3ltYm9scyA9 IGdsb2JhbF9zeW1ib2xzOwogKyAgZ2xvYmFsX3N5bWJvbHMgPSBOVUxMOwogKyAgc2F2ZV9saXN0 X2luX3Njb3BlID0gY3UtPmxpc3RfaW5fc2NvcGU7Ci0rCisgCistICAvKiBGSVhNRTogU3VwcG9y dCB0aGUgc2VwYXJhdGUgRm9ydHJhbiBtb2R1bGUgbmFtZXNwYWNlcy4gICovCiArICAvKiBQcm9j ZXNzIHRoZSBjaGlsZCBESUVzLiAgKi8KLSsKKyAKICsgIGNoaWxkX2RpZSA9IGRpZS0+Y2hpbGQ7 CiAgICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQogICAgICB7CkBAIC00Njky LDcgKzUxNTcsNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogIH0KICAKICAvKiBS ZXR1cm4gdGhlIG5hbWUgb2YgdGhlIG5hbWVzcGFjZSByZXByZXNlbnRlZCBieSBESUUuICBTZXQK LUBAIC01ODExLDI5ICs2MjYxLDExMyBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU4MTgsMjkgKzYzMzcsMTE1 IEBAIHJlYWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2Fy Y2ggKG9iamZpbGUpOwogICAgc3RydWN0IHR5cGUgKnR5cGUsICpyYW5nZV90eXBlLCAqaW5kZXhf dHlwZSwgKmNoYXJfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC00Nzc3LDcg KzUyNDIsOCBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogKwkJfQogKwkgICAgfQog KwotKwkgIFRZUEVfSElHSF9CT1VORF9JU19EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSkgPSAxOwor KwkgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2gua2luZAorKwkgICAgPSBSQU5H RV9CT1VORF9LSU5EX0RXQVJGX0JMT0NLOwogKwkgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlw ZSktPmhpZ2gudS5kd2FyZl9ibG9jayA9IGxlbmd0aF9iYXRvbjsKICsJICBUWVBFX0RZTkFNSUMg KHJhbmdlX3R5cGUpID0gMTsKICsJfQpAQCAtNDgwMSw3ICs1MjY3LDggQEAgaW5kZXggODZiZmVj Yi4uZGRmMjE4OSAxMDA2NDQKIC0gICAgICAgIH0KICsgICAgICBpZiAoYXR0ciAmJiBhdHRyX2Zv cm1faXNfYmxvY2sgKGF0dHIpKQogKwl7Ci0rCSAgVFlQRV9ISUdIX0JPVU5EX0lTX0RXQVJGX0JM T0NLIChyYW5nZV90eXBlKSA9IDE7CisrCSAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+ aGlnaC5raW5kCisrCSAgICA9IFJBTkdFX0JPVU5EX0tJTkRfRFdBUkZfQkxPQ0s7CiArCSAgVFlQ RV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+aGlnaC51LmR3YXJmX2Jsb2NrID0KICsJCQkJCWR3 YXJmMl9hdHRyX3RvX2xvY2V4cHJfYmF0b24gKGF0dHIsIGN1KTsKICsJICBUWVBFX0RZTkFNSUMg KHJhbmdlX3R5cGUpID0gMTsKQEAgLTQ4MjAsNyArNTI4Nyw3IEBAIGluZGV4IDg2YmZlY2IuLmRk ZjIxODkgMTAwNjQ0CiAgICBjaGFyX3R5cGUgPSBsYW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChj dS0+bGFuZ3VhZ2VfZGVmbiwgZ2RiYXJjaCk7CiAgICB0eXBlID0gY3JlYXRlX3N0cmluZ190eXBl IChOVUxMLCBjaGFyX3R5cGUsIHJhbmdlX3R5cGUpOwogIAotQEAgLTU5MzMsNyArNjQ2Nyw2IEBA IHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCitAQCAtNTk0MCwxMSArNjU0NSwxMCBAQCBzdGF0aWMgc3Ry dWN0IHR5cGUgKgogIHJlYWRfdHlwZWRlZiAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogIHsKICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlID0gY3UtPm9iamZp bGU7CkBAIC00ODI4LDcgKzUyOTUsMTIgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQK ICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMOwogICAgc3RydWN0IHR5cGUgKnRoaXNfdHlwZTsK ICAKLUBAIC02MDQxLDggKzY1NzQsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKy0gIG5hbWUgPSBkd2FyZjJfZnVsbF9u YW1lIChkaWUsIGN1KTsKKysgIG5hbWUgPSBkd2FyZjJfZnVsbF9uYW1lIChOVUxMLCBkaWUsIGN1 KTsKKyAgIHRoaXNfdHlwZSA9IGluaXRfdHlwZSAoVFlQRV9DT0RFX1RZUEVERUYsIDAsCisgCQkJ IFRZUEVfRkxBR19UQVJHRVRfU1RVQiwgTlVMTCwgb2JqZmlsZSk7CisgICBUWVBFX05BTUUgKHRo aXNfdHlwZSkgPSAoY2hhciAqKSBuYW1lOworQEAgLTYwNDgsOCArNjY1Miw3IEBAIHJlYWRfc3Vi cmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQog ICAgc3RydWN0IHR5cGUgKmJhc2VfdHlwZTsKICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlOwog ICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTQ4MzgsNyArNTMxMCw3IEBAIGluZGV4IDg2 YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICBjaGFyICpuYW1lOwogICAgTE9OR0VTVCBuZWdhdGl2 ZV9tYXNrOwogICAgCi1AQCAtNjA1Niw0OSArNjU4OCwxMDEgQEAgcmVhZF9zdWJyYW5nZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNjA2Myw0 OSArNjY2NiwxNTcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkgICAgIDAsIE5VTEwsIGN1LT5vYmpmaWxlKTsKICAg ICAgfQogIApAQCAtNDg2MSwxMyArNTMzMywzMiBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEw MDY0NAogLSAgICBsb3cgPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDAp OwogKyAgaWYgKGF0dHIgJiYgYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICsgICAgewotKyAg ICAgIFRZUEVfTE9XX0JPVU5EX0lTX0RXQVJGX0JMT0NLIChyYW5nZV90eXBlKSA9IDE7CisrICAg ICAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+bG93LmtpbmQgPSBSQU5HRV9CT1VORF9L SU5EX0RXQVJGX0JMT0NLOwogKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmxv dy51LmR3YXJmX2Jsb2NrID0KICsJCQkJCWR3YXJmMl9hdHRyX3RvX2xvY2V4cHJfYmF0b24gKGF0 dHIsIGN1KTsKICsgICAgICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUpID0gMTsKICsgICAgICAv KiBGb3Igc2V0dGluZyBhIGRlZmF1bHQgaWYgRFdfQVRfVVBQRVJfQk9VTkQgd291bGQgYmUgbWlz c2luZy4gICovCiArICAgICAgbG93ID0gMDsKICsgICAgfQorKyAgZWxzZSBpZiAoYXR0ciAmJiBp c19yZWZfYXR0ciAoYXR0cikpCisrICAgIHsKKysgICAgICBzdHJ1Y3QgZGllX2luZm8gKnRhcmdl dF9kaWU7CisrICAgICAgc3RydWN0IGR3YXJmMl9jdSAqdGFyZ2V0X2N1ID0gY3U7CisrICAgICAg c3RydWN0IGF0dHJpYnV0ZSAqdGFyZ2V0X2xvY19hdHRyOworKworKyAgICAgIHRhcmdldF9kaWUg PSBmb2xsb3dfZGllX3JlZl9vcl9zaWcgKGRpZSwgYXR0ciwgJnRhcmdldF9jdSk7CisrICAgICAg Z2RiX2Fzc2VydCAodGFyZ2V0X2N1LT5vYmpmaWxlID09IGN1LT5vYmpmaWxlKTsKKysgICAgICB0 YXJnZXRfbG9jX2F0dHIgPSBkd2FyZjJfYXR0ciAodGFyZ2V0X2RpZSwgRFdfQVRfbG9jYXRpb24s IHRhcmdldF9jdSk7CisrCisrICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+bG93 LmtpbmQgPSBSQU5HRV9CT1VORF9LSU5EX0RXQVJGX0xPQ0xJU1Q7CisrICAgICAgVFlQRV9SQU5H RV9EQVRBIChyYW5nZV90eXBlKS0+bG93LnUuZHdhcmZfbG9jbGlzdC5sb2NsaXN0CisrICAgICAg ICA9IGR3YXJmMl9hdHRyX3RvX2xvY2xpc3RfYmF0b24gKHRhcmdldF9sb2NfYXR0ciwgdGFyZ2V0 X2N1KTsKKysgICAgICBUWVBFX1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5sb3cudS5kd2FyZl9s b2NsaXN0LnR5cGUKKysgICAgICAgID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7 CisrICAgICAgVFlQRV9EWU5BTUlDIChyYW5nZV90eXBlKSA9IDE7CisrICAgICAgLyogRm9yIHNl dHRpbmcgYSBkZWZhdWx0IGlmIERXX0FUX1VQUEVSX0JPVU5EIHdvdWxkIGJlIG1pc3NpbmcuICAq LworKyAgICAgIGxvdyA9IDA7CisrICAgIH0KICsgIGVsc2UKICsgICAgewogKyAgICAgIGlmIChh dHRyICYmIGF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikpCkBAIC00OTExLDkgKzU0MDIsOCBA QCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogLSAgICAgICAgICAgICB0aGUgbG93ZXIg Ym91bmQgd2UndmUgY29tcHV0ZWQgYWJvdmUuICAqLwogLSAgICAgICAgICBoaWdoID0gbG93IC0g MTsKIC0gICAgICAgIH0KLS0gICAgICBlbHNlCi0tICAgICAgICBoaWdoID0gZHdhcmYyX2dldF9h dHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAxKTsKLSsgIGlmICghYXR0ciB8fCAoIWF0dHJfZm9y bV9pc19ibG9jayAoYXR0cikgJiYgIWF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikpKQorKyAg aWYgKCFhdHRyIHx8ICghYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSAmJiAhYXR0cl9mb3JtX2lz X2NvbnN0YW50IChhdHRyKQorKwkJJiYgIWlzX3JlZl9hdHRyIChhdHRyKSkpCiArICAgIHsKICsg ICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfY291bnQsIGN1KTsKICsgICAgICAv KiBJdCBkb2VzIG5vdCBodXJ0IGJ1dCBpdCBpcyBuZWVkbGVzc2x5IGluZWZmZWN0aXZlIGluIGNo ZWNrX3R5cGVkZWYuICAqLwpAQCAtNDkyMywyMSArNTQxMywzMiBAQCBpbmRleCA4NmJmZWNiLi5k ZGYyMTg5IDEwMDY0NAogKwkgIFRZUEVfRFlOQU1JQyAocmFuZ2VfdHlwZSkgPSAxOwogKwl9CiAr ICAgICAgLyogUGFzcyBpdCBub3cgYXMgdGhlIHJlZ3VsYXIgRFdfQVRfdXBwZXJfYm91bmQuICAq LwotICAgICB9Ci0gCi0tICBuZWdhdGl2ZV9tYXNrID0gCi0tICAgIChMT05HRVNUKSAtMSA8PCAo VFlQRV9MRU5HVEggKGJhc2VfdHlwZSkgKiBUQVJHRVRfQ0hBUl9CSVQgLSAxKTsKLS0gIGlmICgh VFlQRV9VTlNJR05FRCAoYmFzZV90eXBlKSAmJiAobG93ICYgbmVnYXRpdmVfbWFzaykpCi0tICAg IGxvdyB8PSBuZWdhdGl2ZV9tYXNrOwotLSAgaWYgKCFUWVBFX1VOU0lHTkVEIChiYXNlX3R5cGUp ICYmIChoaWdoICYgbmVnYXRpdmVfbWFzaykpCi0tICAgIGhpZ2ggfD0gbmVnYXRpdmVfbWFzazsK KysgICAgfQorKwogKyAgaWYgKGF0dHIgJiYgYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICsg ICAgewotKyAgICAgIFRZUEVfSElHSF9CT1VORF9JU19EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSkg PSAxOworKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2gua2luZCA9IFJB TkdFX0JPVU5EX0tJTkRfRFdBUkZfQkxPQ0s7CiArICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5n ZV90eXBlKS0+aGlnaC51LmR3YXJmX2Jsb2NrID0KICsJCQkJCWR3YXJmMl9hdHRyX3RvX2xvY2V4 cHJfYmF0b24gKGF0dHIsIGN1KTsKICsgICAgICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUpID0g MTsKICsgICAgfQorKyAgZWxzZSBpZiAoYXR0ciAmJiBpc19yZWZfYXR0ciAoYXR0cikpCisrICAg IHsKKysgICAgICBzdHJ1Y3QgZGllX2luZm8gKnRhcmdldF9kaWU7CisrICAgICAgc3RydWN0IGR3 YXJmMl9jdSAqdGFyZ2V0X2N1ID0gY3U7CisrICAgICAgc3RydWN0IGF0dHJpYnV0ZSAqdGFyZ2V0 X2xvY19hdHRyOworKworKyAgICAgIHRhcmdldF9kaWUgPSBmb2xsb3dfZGllX3JlZl9vcl9zaWcg KGRpZSwgYXR0ciwgJnRhcmdldF9jdSk7CisrICAgICAgZ2RiX2Fzc2VydCAodGFyZ2V0X2N1LT5v YmpmaWxlID09IGN1LT5vYmpmaWxlKTsKKysgICAgICB0YXJnZXRfbG9jX2F0dHIgPSBkd2FyZjJf YXR0ciAodGFyZ2V0X2RpZSwgRFdfQVRfbG9jYXRpb24sIHRhcmdldF9jdSk7CisrCisrICAgICAg VFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+aGlnaC5raW5kID0gUkFOR0VfQk9VTkRfS0lO RF9EV0FSRl9MT0NMSVNUOworKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhp Z2gudS5kd2FyZl9sb2NsaXN0LmxvY2xpc3QKKysgICAgICAgID0gZHdhcmYyX2F0dHJfdG9fbG9j bGlzdF9iYXRvbiAodGFyZ2V0X2xvY19hdHRyLCB0YXJnZXRfY3UpOworKyAgICAgIFRZUEVfUkFO R0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2gudS5kd2FyZl9sb2NsaXN0LnR5cGUKKysgICAgICAg ID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7CisrICAgICAgVFlQRV9EWU5BTUlD IChyYW5nZV90eXBlKSA9IDE7CisrICAgIH0KICsgIGVsc2UKICsgICAgewogKyAgICAgIGlmIChh dHRyICYmIGF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikpCkBAIC00OTQ5LDIzICs1NDUwLDQ5 IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiArCSAgICBoaWdoIHw9IG5lZ2F0aXZl X21hc2s7CiArCSAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IGhpZ2g7CiArCX0KLSsg ICAgICBlbHNlCisgICAgICAgZWxzZQorLSAgICAgICAgaGlnaCA9IGR3YXJmMl9nZXRfYXR0cl9j b25zdGFudF92YWx1ZSAoYXR0ciwgMSk7CiArCXsKICsJICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJ TkVEIChyYW5nZV90eXBlKSA9IDE7CiArCSAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9 IGxvdyAtIDE7CiArCX0KLSsgICAgfQorICAgICB9CiAgCi0tICByYW5nZV90eXBlID0gY3JlYXRl X3JhbmdlX3R5cGUgKE5VTEwsIGJhc2VfdHlwZSwgbG93LCBoaWdoKTsKKy0gIG5lZ2F0aXZlX21h c2sgPSAKKy0gICAgKExPTkdFU1QpIC0xIDw8IChUWVBFX0xFTkdUSCAoYmFzZV90eXBlKSAqIFRB UkdFVF9DSEFSX0JJVCAtIDEpOworLSAgaWYgKCFUWVBFX1VOU0lHTkVEIChiYXNlX3R5cGUpICYm IChsb3cgJiBuZWdhdGl2ZV9tYXNrKSkKKy0gICAgbG93IHw9IG5lZ2F0aXZlX21hc2s7CistICBp ZiAoIVRZUEVfVU5TSUdORUQgKGJhc2VfdHlwZSkgJiYgKGhpZ2ggJiBuZWdhdGl2ZV9tYXNrKSkK Ky0gICAgaGlnaCB8PSBuZWdhdGl2ZV9tYXNrOwogKyAgLyogRFdfQVRfYml0X3N0cmlkZSBpcyBj dXJyZW50bHkgdW5zdXBwb3J0ZWQgYXMgd2UgY291bnQgaW4gYnl0ZXMuICAqLwogKyAgYXR0ciA9 IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc3RyaWRlLCBjdSk7CiArICBpZiAoYXR0ciAm JiBhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQogKyAgICB7Ci0rICAgICAgVFlQRV9CWVRFX1NU UklERV9JU19EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSkgPSAxOworKyAgICAgIFRZUEVfUkFOR0Vf REFUQSAocmFuZ2VfdHlwZSktPmJ5dGVfc3RyaWRlLmtpbmQKKysgICAgICAgID0gUkFOR0VfQk9V TkRfS0lORF9EV0FSRl9CTE9DSzsKICsgICAgICBUWVBFX1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUp LT5ieXRlX3N0cmlkZS51LmR3YXJmX2Jsb2NrID0KICsJCQkJCWR3YXJmMl9hdHRyX3RvX2xvY2V4 cHJfYmF0b24gKGF0dHIsIGN1KTsKICsgICAgICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUpID0g MTsKICsgICAgfQorKyAgZWxzZSBpZiAoYXR0ciAmJiBpc19yZWZfYXR0ciAoYXR0cikpCisrICAg IHsKKysgICAgICBzdHJ1Y3QgZGllX2luZm8gKnRhcmdldF9kaWU7CisrICAgICAgc3RydWN0IGR3 YXJmMl9jdSAqdGFyZ2V0X2N1ID0gY3U7CisrICAgICAgc3RydWN0IGF0dHJpYnV0ZSAqdGFyZ2V0 X2xvY19hdHRyOworIAorLSAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChOVUxMLCBi YXNlX3R5cGUsIGxvdywgaGlnaCk7CisrICAgICAgdGFyZ2V0X2RpZSA9IGZvbGxvd19kaWVfcmVm X29yX3NpZyAoZGllLCBhdHRyLCAmdGFyZ2V0X2N1KTsKKysgICAgICBnZGJfYXNzZXJ0ICh0YXJn ZXRfY3UtPm9iamZpbGUgPT0gY3UtPm9iamZpbGUpOworKyAgICAgIHRhcmdldF9sb2NfYXR0ciA9 IGR3YXJmMl9hdHRyICh0YXJnZXRfZGllLCBEV19BVF9sb2NhdGlvbiwgdGFyZ2V0X2N1KTsKKysK KysgICAgICBUWVBFX1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5ieXRlX3N0cmlkZS5raW5kCisr ICAgICAgICA9IFJBTkdFX0JPVU5EX0tJTkRfRFdBUkZfTE9DTElTVDsKKysgICAgICBUWVBFX1JB TkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5ieXRlX3N0cmlkZS51LmR3YXJmX2xvY2xpc3QubG9jbGlz dAorKyAgICAgICAgPSBkd2FyZjJfYXR0cl90b19sb2NsaXN0X2JhdG9uICh0YXJnZXRfbG9jX2F0 dHIsIHRhcmdldF9jdSk7CisrICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+Ynl0 ZV9zdHJpZGUudS5kd2FyZl9sb2NsaXN0LnR5cGUKKysgICAgICAgID0gZGllX3R5cGUgKHRhcmdl dF9kaWUsIHRhcmdldF9jdSk7CisrICAgICAgVFlQRV9EWU5BTUlDIChyYW5nZV90eXBlKSA9IDE7 CisrICAgIH0KICsgIGVsc2UgaWYgKGF0dHIgJiYgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChhdHRy KSkKICsgICAgewogKyAgICAgIFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpID0gZHdhcmYy X2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwKTsKQEAgLTQ5NzYsNyArNTUwMyw3IEBA IGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgCiAgICBuYW1lID0gZHdhcmYyX25hbWUg KGRpZSwgY3UpOwogICAgaWYgKG5hbWUpCi1AQCAtNjU1Nyw2ICs3MTQxLDcgQEAgbG9hZF9wYXJ0 aWFsX2RpZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKmJ1ZmZlciwgZ2RiX2J5dGUgKmluZm9fcHRy LAorQEAgLTY1NjQsNiArNzI3NSw3IEBAIGxvYWRfcGFydGlhbF9kaWVzIChiZmQgKmFiZmQsIGdk Yl9ieXRlICpidWZmZXIsIGdkYl9ieXRlICppbmZvX3B0ciwKICAJICAmJiBhYmJyZXYtPnRhZyAh PSBEV19UQUdfbGV4aWNhbF9ibG9jawogIAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR192YXJp YWJsZQogIAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR19uYW1lc3BhY2UKQEAgLTQ5ODQsMTgg KzU1MTEsMTcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAJICAmJiBhYmJyZXYt PnRhZyAhPSBEV19UQUdfbWVtYmVyKQogIAl7CiAgCSAgLyogT3RoZXJ3aXNlIHdlIHNraXAgdG8g dGhlIG5leHQgc2libGluZywgaWYgYW55LiAgKi8KLUBAIC02NzY1LDggKzczNTAsOCBAQCByZWFk X3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAtNjc3 Miw3ICs3NDg0LDggQEAgcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8g KnBhcnRfZGllLAogIAkgICAgfQogIAkgIGJyZWFrOwogIAljYXNlIERXX0FUX01JUFNfbGlua2Fn ZV9uYW1lOgogLQkgIHBhcnRfZGllLT5uYW1lID0gRFdfU1RSSU5HICgmYXR0cik7Ci0tCSAgYnJl YWs7CiArCSAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9hZGEpCiArCSAgICBwYXJ0X2Rp ZS0+bmFtZSA9IERXX1NUUklORyAoJmF0dHIpOworIAkgIGJyZWFrOwogIAljYXNlIERXX0FUX2xv d19wYzoKICAJICBoYXNfbG93X3BjX2F0dHIgPSAxOwotIAkgIHBhcnRfZGllLT5sb3dwYyA9IERX X0FERFIgKCZhdHRyKTsKLUBAIC02OTYzLDcgKzc1NDgsOCBAQCBmaXh1cF9wYXJ0aWFsX2RpZSAo c3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAorQEAgLTY5NzAsNyArNzY4Myw4IEBA IGZpeHVwX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCiAg ICAvKiBJZiB3ZSBmb3VuZCBhIHJlZmVyZW5jZSBhdHRyaWJ1dGUgYW5kIHRoZSBESUUgaGFzIG5v IG5hbWUsIHRyeQogICAgICAgdG8gZmluZCBhIG5hbWUgaW4gdGhlIHJlZmVycmVkIHRvIERJRS4g ICovCiAgCkBAIC01MDA1LDcgKzU1MzEsNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0 NAogICAgICB7CiAgICAgICAgc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnNwZWNfZGllOwogIAot QEAgLTgzMDUsMTAgKzg4OTEsMTIgQEAgdmFyX2RlY29kZV9sb2NhdGlvbiAoc3RydWN0IGF0dHJp YnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAorQEAgLTgzMTIsMTAgKzkwMjYsMTIgQEAg dmFyX2RlY29kZV9sb2NhdGlvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJv bCAqc3ltLAogICAgICAgKGkuZS4gd2hlbiB0aGUgdmFsdWUgb2YgYSByZWdpc3RlciBvciBtZW1v cnkgbG9jYXRpb24gaXMKICAgICAgIHJlZmVyZW5jZWQsIG9yIGEgdGhyZWFkLWxvY2FsIGJsb2Nr LCBldGMuKS4gIFRoZW4gYWdhaW4sIGl0IG1pZ2h0CiAgICAgICBub3QgYmUgd29ydGh3aGlsZS4g IEknbSBhc3N1bWluZyB0aGF0IGl0IGlzbid0IHVubGVzcyBwZXJmb3JtYW5jZQpAQCAtNTAyMCw3 ICs1NTQ2LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICB9CiAgCiAgLyogR2l2 ZW4gYSBwb2ludGVyIHRvIGEgRFdBUkYgaW5mb3JtYXRpb24gZW50cnksIGZpZ3VyZSBvdXQgaWYg d2UgbmVlZAotQEAgLTgzMzAsMjEgKzg5MTgsMjkgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04 MzM3LDIxICs5MDUzLDI3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFO T0ZGU0VUIChvYmpmaWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUp KTsKICAKQEAgLTUwNDEsMTMgKzU1NjcsMTAgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2 NDQKICsgICAgICAvKiBTb21lIG1ldGhvZHMgYXJlIGNhbGxlZCB3L28gY2hlY2tpbmcgU1lNQk9M X0NPTVBVVEVEX09QUyB2YWxpZGl0eS4gICovCiArICAgICAgU1lNQk9MX0NPTVBVVEVEX09QUyAo c3ltKSA9ICZkd2FyZjJfbWlzc2luZ19mdW5jczsKICAKLS0gICAgICAvKiBDYWNoZSB0aGlzIHN5 bWJvbCdzIG5hbWUgYW5kIHRoZSBuYW1lJ3MgZGVtYW5nbGVkIGZvcm0gKGlmIGFueSkuICAqLwor ICAgICAgIC8qIENhY2hlIHRoaXMgc3ltYm9sJ3MgbmFtZSBhbmQgdGhlIG5hbWUncyBkZW1hbmds ZWQgZm9ybSAoaWYgYW55KS4gICovCiAgICAgICAgU1lNQk9MX0xBTkdVQUdFIChzeW0pID0gY3Ut Pmxhbmd1YWdlOwogLSAgICAgIFNZTUJPTF9TRVRfTkFNRVMgKHN5bSwgbmFtZSwgc3RybGVuIChu YW1lKSwgMCwgb2JqZmlsZSk7Ci0rCi0rICAgICAgLyogQ2FjaGUgdGhpcyBzeW1ib2wncyBuYW1l IGFuZCB0aGUgbmFtZSdzIGRlbWFuZ2xlZCBmb3JtIChpZiBhbnkpLiAgKi8KLSsKLSsgICAgICBs aW5rYWdlbmFtZSA9IGR3YXJmMl9waHlzbmFtZSAoZGllLCBjdSk7CisrICAgICAgbGlua2FnZW5h bWUgPSBkd2FyZjJfcGh5c25hbWUgKG5hbWUsIGRpZSwgY3UpOwogKyAgICAgIFNZTUJPTF9TRVRf TkFNRVMgKHN5bSwgbGlua2FnZW5hbWUsIHN0cmxlbiAobGlua2FnZW5hbWUpLCAwLCBvYmpmaWxl KTsKICsgICAgICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2ZvcnRyYW4pCiArCXsKQEAg LTUwNTcsNyArNTU4MCw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgCiAgICAg ICAgLyogRGVmYXVsdCBhc3N1bXB0aW9ucy4KICAgICAgICAgICBVc2UgdGhlIHBhc3NlZCB0eXBl IG9yIGRlY29kZSBpdCBmcm9tIHRoZSBkaWUuICAqLwotQEAgLTg0NDQsNyArOTA0MCwyNCBAQCBu ZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTg0NTEsNyArOTE3MywyNCBAQCBuZXdfc3ltYm9sIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogIAkgICAgICB2YXJfZGVjb2RlX2xvY2F0aW9uIChhdHRyLCBzeW0sIGN1KTsKICAJICAgICAg YXR0cjIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9leHRlcm5hbCwgY3UpOwogIAkgICAgICBp ZiAoYXR0cjIgJiYgKERXX1VOU05EIChhdHRyMikgIT0gMCkpCkBAIC01MDgzLDcgKzU2MDYsMjcg QEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAJICAgICAgZWxzZQogIAkJYWRkX3N5 bWJvbF90b19saXN0IChzeW0sIGN1LT5saXN0X2luX3Njb3BlKTsKICAJICAgIH0KLUBAIC04NjA1 LDYgKzkyMTgsMTEgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04NTc2LDcgKzkzMTUsOCBAQCBu ZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorIAkgIH0KKyAJICBicmVhazsKKyAJY2FzZSBEV19UQUdfdHlwZWRl ZjoKKy0JICBTWU1CT0xfTElOS0FHRV9OQU1FIChzeW0pID0gKGNoYXIgKikgZHdhcmYyX2Z1bGxf bmFtZSAoZGllLCBjdSk7CisrCSAgU1lNQk9MX0xJTktBR0VfTkFNRSAoc3ltKQorKwkgICAgPSAo Y2hhciAqKSBkd2FyZjJfZnVsbF9uYW1lIChuYW1lLCBkaWUsIGN1KTsKKyAJICBTWU1CT0xfQ0xB U1MgKHN5bSkgPSBMT0NfVFlQRURFRjsKKyAJICBTWU1CT0xfRE9NQUlOIChzeW0pID0gVkFSX0RP TUFJTjsKKyAJICBhZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwgY3UtPmxpc3RfaW5fc2NvcGUpOwor QEAgLTg1ODgsNyArOTMyOCw4IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCSAgYWRkX3N5bWJvbF90 b19saXN0IChzeW0sIGN1LT5saXN0X2luX3Njb3BlKTsKKyAJICBicmVhazsKKyAJY2FzZSBEV19U QUdfZW51bWVyYXRvcjoKKy0JICBTWU1CT0xfTElOS0FHRV9OQU1FIChzeW0pID0gKGNoYXIgKikg ZHdhcmYyX2Z1bGxfbmFtZSAoZGllLCBjdSk7CisrCSAgU1lNQk9MX0xJTktBR0VfTkFNRSAoc3lt KQorKwkgICAgPSAoY2hhciAqKSBkd2FyZjJfZnVsbF9uYW1lIChuYW1lLCBkaWUsIGN1KTsKKyAJ ICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfY29uc3RfdmFsdWUsIGN1KTsKKyAJICBp ZiAoYXR0cikKKyAJICAgIHsKK0BAIC04NjEyLDYgKzkzNTMsMTEgQEAgbmV3X3N5bWJvbCAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICAJICBTWU1CT0xfQ0xBU1MgKHN5bSkgPSBMT0NfVFlQRURFRjsKICAJICBhZGRfc3ltYm9s X3RvX2xpc3QgKHN5bSwgJmdsb2JhbF9zeW1ib2xzKTsKICAJICBicmVhazsKQEAgLTUwOTUsNyAr NTYzOCw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgCWRlZmF1bHQ6CiAgCSAg LyogTm90IGEgdGFnIHdlIHJlY29nbml6ZS4gIEhvcGVmdWxseSB3ZSBhcmVuJ3QgcHJvY2Vzc2lu ZwogIAkgICAgIHRyYXNoIGRhdGEsIGJ1dCBzaW5jZSB3ZSBtdXN0IHNwZWNpZmljYWxseSBpZ25v cmUgdGhpbmdzCi1AQCAtODYxOCw4ICs5MjM2LDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04 NjI1LDggKzkzNzEsNyBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIC8qIEZvciB0aGUgYmVu ZWZpdCBvZiBvbGQgdmVyc2lvbnMgb2YgR0NDLCBjaGVjayBmb3IgYW5vbnltb3VzCiAgCSBuYW1l c3BhY2VzIGJhc2VkIG9uIHRoZSBkZW1hbmdsZWQgbmFtZS4gICovCiAgICAgICAgaWYgKCFwcm9j ZXNzaW5nX2hhc19uYW1lc3BhY2VfaW5mbwpAQCAtNTEwNSw3ICs1NjQ4LDcgQEAgaW5kZXggODZi ZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAJY3Bfc2Nhbl9mb3JfYW5vbnltb3VzX25hbWVzcGFjZXMg KHN5bSk7CiAgICAgIH0KICAgIHJldHVybiAoc3ltKTsKLUBAIC04OTMxLDEyICs5NTQ4LDE4IEBA IHJlYWRfdHlwZV9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC04OTM4LDEyICs5NjgzLDE4IEBAIHJlYWRfdHlwZV9kaWUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgY2FzZSBEV19UQUdfbmFtZXNwYWNl OgogICAgICAgIHRoaXNfdHlwZSA9IHJlYWRfbmFtZXNwYWNlX3R5cGUgKGRpZSwgY3UpOwogICAg ICAgIGJyZWFrOwpAQCAtNTEyNCw3ICs1NjY3LDE4IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkg MTAwNjQ0CiAgICByZXR1cm4gdGhpc190eXBlOwogIH0KICAKLUBAIC05MDE4LDEwICs5NjQxLDEw MyBAQCBkZXRlcm1pbmVfcHJlZml4IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCitAQCAtOTAxMSw2ICs5NzYyLDEwIEBAIGRldGVybWluZV9wcmVmaXggKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgICAgICBjYXNlIERXX1RB R19uYW1lc3BhY2U6CisgCXBhcmVudF90eXBlID0gcmVhZF90eXBlX2RpZSAocGFyZW50LCBjdSk7 CisgCS8qIFdlIGdpdmUgYSBuYW1lIHRvIGV2ZW4gYW5vbnltb3VzIG5hbWVzcGFjZXMuICAqLwor KworKwkvKiBHKysgNC4xIHByb2R1Y2VkIERXX1RBR19uYW1lc3BhY2Ugd2l0aCBEV19BVF9uYW1l ICI6OiIuICAqLworKwlpZiAoc3RyY21wIChUWVBFX1RBR19OQU1FIChwYXJlbnRfdHlwZSksICI6 OiIpID09IDApCisrCSAgcmV0dXJuICIiOworIAlyZXR1cm4gVFlQRV9UQUdfTkFNRSAocGFyZW50 X3R5cGUpOworICAgICAgIGNhc2UgRFdfVEFHX2NsYXNzX3R5cGU6CisgICAgICAgY2FzZSBEV19U QUdfaW50ZXJmYWNlX3R5cGU6CitAQCAtOTAyNSw3ICs5NzgwLDcgQEAgZGV0ZXJtaW5lX3ByZWZp eCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkgICAgIFNv IGl0IGRvZXMgbm90IG5lZWQgYSBwcmVmaXguICAqLwogIAkgIHJldHVybiAiIjsKICAgICAgICBk ZWZhdWx0OgpAQCAtNTEzMywyMzMgKzU2ODcsNjQgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAx MDA2NDQKICAgICAgICB9CiAgfQogIAotKy8qIERldGVybWluZXMgdGhlIHByZWZpeCBmb3IgYSBz eW1ib2wncyBwaHlzbmFtZS4gIFVubGlrZSBkZXRlcm1pbmVfcHJlZml4LAotKyAgIHRoaXMgbWV0 aG9kIGRvZXMgbm90IHNpbXBseSBsb29rIGF0IHRoZSBESUUncyBpbW1lZGlhdGUgcGFyZW50Lgot KyAgIEl0IHdpbGwgY29tcHV0ZSB0aGUgc3ltYm9sJ3MgcGh5c25hbWUgYnkgc2Nhbm5pbmcgdGhy b3VnaCBhbGwgcGFyZW50Ci0rICAgRElFcyB1bnRpbCBpdCBnZXRzIHRvIHRoZSBjb21waWxhdGlv biB1bml0J3MgRElFLiAgKi8KLSsKLStzdGF0aWMgY2hhciAqCi0rcGh5c25hbWVfcHJlZml4IChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi0rewotKyAgbG9uZyBs ZW5ndGg7Ci0rICBzdHJ1Y3QgdWlfZmlsZSAqYnVmOwotKyAgc3RydWN0IGRpZV9pbmZvICpkLCAq c3BlY19kaWU7Ci0rICBzdHJ1Y3QgZHdhcmYyX2N1ICpzcGVjX2N1OworQEAgLTkwNzgsMTcgKzk4 MzMsMzcgQEAgc2libGluZ19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllKQorICAgcmV0dXJuIGRp ZS0+c2libGluZzsKKyB9CisgCistLyogR2V0IGxpbmthZ2UgbmFtZSBvZiBhIGRpZSwgcmV0dXJu IE5VTEwgaWYgbm90IGZvdW5kLiAgKi8KKysvKiBSZXR1cm4gdGhlIGZ1bGx5IHF1YWxpZmllZCAu c3ltdGFiIG5hbWUgZm9yIHN5bWJvbHMgY29udGFpbmVkIGluIEZvcnRyYW4KKysgICBtb2R1bGVz LiAgUmV0dXJuIERXQVJGMl9OQU1FIG90aGVyd2lzZS4gICovCisgCisgc3RhdGljIGNoYXIgKgor LWR3YXJmMl9saW5rYWdlX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKKytmb3J0cmFuX21vZHVsZV9saW5rYWdlX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyB7CistICBzdHJ1Y3QgYXR0cmlidXRlICphdHRy OwogKyAgY2hhciAqbmFtZTsKICsKLSsgIC8qIENvbnN0cnVjdCBhIHN0YWNrIGNvbnRhaW5pbmcg YWxsIG9mIHRoZSBESUUncyBwYXJlbnRzLiAgQ2F1dGlvbgotKyAgICAgbXVzdCBiZSBvYnNlcnZl ZCBmb3IgZGVhbGluZyB3aXRoIERXX0FUX3NwZWNpZmljYXRpb24uICovCi0rICBzcGVjX2N1ID0g Y3U7Ci0rICBzcGVjX2RpZSA9IGRpZV9zcGVjaWZpY2F0aW9uIChkaWUsICZzcGVjX2N1KTsKLSsg IGlmIChzcGVjX2RpZSAhPSBOVUxMKQotKyAgICBkID0gc3BlY19kaWUtPnBhcmVudDsKLSsgIGVs c2UKLSsgICAgZCA9IGRpZS0+cGFyZW50OwotKyAgd2hpbGUgKGQgIT0gTlVMTCAmJiBkLT50YWcg IT0gRFdfVEFHX2NvbXBpbGVfdW5pdCkKLSsgICAgewotKyAgICAgIHN0cnVjdCBhdHRyaWJ1dGUg KmF0dHI7Ci0rCi0rICAgICAgc3BlY19kaWUgPSBkaWVfc3BlY2lmaWNhdGlvbiAoZCwgJnNwZWNf Y3UpOwotKyAgICAgIGlmIChzcGVjX2RpZSAhPSBOVUxMKQotKwlkID0gc3BlY19kaWU7CisrICBn ZGJfYXNzZXJ0IChjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbik7CiArCi0rICAgICAg VkVDX3F1aWNrX3B1c2ggKGRpZV9pbmZvX3AsIGRpZV9saXN0LCBkKTsKLSsgICAgICBkID0gZC0+ cGFyZW50OwotKyAgICB9CisrICBuYW1lID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwogKwotKyAg LyogTm93IHBvcCBhbGwgdGhlIGVsZW1lbnRzLCBwcmludGluZyB0aGVpciBuYW1lcyBhcyB3ZSBn by4gICovCi0rICBidWYgPSBtZW1fZmlsZW9wZW4gKCk7Ci0rICB3aGlsZSAoIVZFQ19lbXB0eSAo ZGllX2luZm9fcCwgZGllX2xpc3QpKQorKyAgaWYgKG5hbWUgJiYgZGllLT5wYXJlbnQgJiYgZGll LT5wYXJlbnQtPnRhZyA9PSBEV19UQUdfbW9kdWxlKQogKyAgICB7Ci0rICAgICAgZCA9IFZFQ19w b3AgKGRpZV9pbmZvX3AsIGRpZV9saXN0KTsKLSsgICAgICBwaHlzbmFtZV9wcmVmaXhfMSAoYnVm LCBkLCBjdSk7CisrICAgICAgY2hhciAqbW9kdWxlX25hbWUgPSBkd2FyZjJfbmFtZSAoZGllLT5w YXJlbnQsIGN1KTsKICsKLSsgICAgICBpZiAoIVZFQ19lbXB0eSAoZGllX2luZm9fcCwgZGllX2xp c3QpKQorKyAgICAgIGlmIChtb2R1bGVfbmFtZSkKICsJewotKwkgIGlmIChjdS0+bGFuZ3VhZ2Ug PT0gbGFuZ3VhZ2VfY3BsdXMpCi0rCSAgICBmcHV0c191bmZpbHRlcmVkICgiOjoiLCBidWYpOwot KwkgIGVsc2UKLSsJICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIuIiwgYnVmKTsKKysJICBjaGFyICpy ZXR2YWw7CisgCistICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfTUlQU19saW5rYWdl X25hbWUsIGN1KTsKKy0gIGlmIChhdHRyICYmIERXX1NUUklORyAoYXR0cikpCistICAgIHJldHVy biBEV19TVFJJTkcgKGF0dHIpOworLSAgcmV0dXJuIGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKKysJ ICAvKiBgX19tb2R1bGVuYW1lX01PRF92YXJpYWJsZW5hbWUwJy4gICovCisrCSAgcmV0dmFsID0g b2JzdGFja19hbGxvYyAoJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCisrCQkJCSAgMiAr IHN0cmxlbiAobW9kdWxlX25hbWUpICsgNSArIHN0cmxlbiAobmFtZSkKKysJCQkJICArIDEpOwor KwkgIHNwcmludGYgKHJldHZhbCwgIl9fJXNfTU9EXyVzIiwgbW9kdWxlX25hbWUsIG5hbWUpOwor KworKwkgIHJldHVybiByZXR2YWw7CiArCX0KICsgICAgfQogKwotKyAgbmFtZSA9IHVpX2ZpbGVf b2JzYXZlc3RyaW5nIChidWYsICZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCAmbGVuZ3Ro KTsKLSsgIHVpX2ZpbGVfZGVsZXRlIChidWYpOwogKyAgcmV0dXJuIG5hbWU7Ci0rfQorIH0KKyAK KyAvKiBHZXQgbmFtZSBvZiBhIGRpZSwgcmV0dXJuIE5VTEwgaWYgbm90IGZvdW5kLiAgKi8KK0BA IC0xMTQzNiw2NCArMTIyMTEsOTQgQEAgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChzdHJ1Y3QgYXR0 cmlidXRlICphdHRyKQorICAgICB9CisgfQorIAorKy8qIENvbnZlcnQgRFdfQkxPQ0sgaW50byBz dHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24uICBBVFRSIG11c3QgYmUgYSBEV19CTE9DSworKyAg IGF0dHJpYnV0ZSB0eXBlLiAgKi8KICsKLStzdGF0aWMgdm9pZAotK3BoeXNuYW1lX3ByZWZpeF8x IChzdHJ1Y3QgdWlfZmlsZSAqYnVmLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKLSsJCSAgIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorK3N0YXRpYyBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKgor K2R3YXJmMl9hdHRyX3RvX2xvY2V4cHJfYmF0b24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogK3sKLSsgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMOwotKyAg Z2RiX2Fzc2VydCAoYnVmICE9IE5VTEwpOworKyAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9u ICpiYXRvbjsKICsKLSsgIGlmIChkaWUgIT0gTlVMTCkKLSsgICAgewotKyAgICAgIHN3aXRjaCAo ZGllLT50YWcpCi0rCXsKLSsJY2FzZSBEV19UQUdfbmFtZXNwYWNlOgotKwkgIG5hbWUgPSBkd2Fy ZjJfbmFtZSAoZGllLCBjdSk7Ci0rCSAgaWYgKG5hbWUgPT0gTlVMTCkKLSsJICAgIG5hbWUgPSAi KGFub255bW91cyBuYW1lc3BhY2UpIjsKLSsJICAvKiBHKysgNC4xIHByb2R1Y2VkIERXX1RBR19u YW1lc3BhY2Ugd2l0aCBEV19BVF9uYW1lICI6OiIuICAqLwotKwkgIGVsc2UgaWYgKHN0cmNtcCAo bmFtZSwgIjo6IikgPT0gMCkKLSsJICAgIG5hbWUgPSBOVUxMOwotKwkgIGJyZWFrOwotKwotKwlj YXNlIERXX1RBR19jbGFzc190eXBlOgotKwljYXNlIERXX1RBR19zdHJ1Y3R1cmVfdHlwZToKLSsJ Y2FzZSBEV19UQUdfdW5pb25fdHlwZToKLSsJY2FzZSBEV19UQUdfZW51bWVyYXRpb25fdHlwZToK LSsJY2FzZSBEV19UQUdfaW50ZXJmYWNlX3R5cGU6Ci0rCWNhc2UgRFdfVEFHX3N1YnByb2dyYW06 Ci0rCSAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKLSsJICBicmVhazsKLSsKLSsJZGVm YXVsdDoKLSsJICBicmVhazsKLSsJfQotKyAgICB9Ci0rCi0rICBpZiAobmFtZSAhPSBOVUxMKQot KyAgICBmcHV0c191bmZpbHRlcmVkIChuYW1lLCBidWYpOwotK30KLSsKLSAvKiBSZXR1cm4gYSBu ZXdseS1hbGxvY2F0ZWQgc3RyaW5nIGZvcm1lZCBieSBjb25jYXRlbmF0aW5nIFBSRUZJWCBhbmQK LSAgICBTVUZGSVggd2l0aCBhcHByb3ByaWF0ZSBzZXBhcmF0b3IuICBJZiBQUkVGSVggb3IgU1VG RklYIGlzIE5VTEwgb3IgZW1wdHksIHRoZW4KLSAgICBzaW1wbHkgY29weSB0aGUgU1VGRklYIG9y IFBSRUZJWCwgcmVzcGVjdGl2ZWx5LiAgSWYgT0JTIGlzIG5vbi1udWxsLAotQEAgLTkwNzEsMTcg Kzk3ODcsMTExIEBAIHNpYmxpbmdfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSkKLSAgIHJldHVy biBkaWUtPnNpYmxpbmc7Ci0gfQotIAotLS8qIEdldCBsaW5rYWdlIG5hbWUgb2YgYSBkaWUsIHJl dHVybiBOVUxMIGlmIG5vdCBmb3VuZC4gICovCi0rLyogQ29uc3RydWN0IGEgcGh5c25hbWUgZm9y IHRoZSBnaXZlbiBESUUgaW4gQ1UuICovCi0gCi0gc3RhdGljIGNoYXIgKgotLWR3YXJmMl9saW5r YWdlX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLStk d2FyZjJfcGh5c25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKLSB7Ci0gICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwotKyAgY2hhciAqbmFtZTsKLSAKLS0g IGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9NSVBTX2xpbmthZ2VfbmFtZSwgY3UpOwot LSAgaWYgKGF0dHIgJiYgRFdfU1RSSU5HIChhdHRyKSkKLS0gICAgcmV0dXJuIERXX1NUUklORyAo YXR0cik7Ci0tICByZXR1cm4gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwotKyAgbmFtZSA9IGR3YXJm Ml9uYW1lIChkaWUsIGN1KTsKLSsKLSsgIC8qIFRoZXNlIGFyZSB0aGUgb25seSBsYW5ndWFnZXMg d2Uga25vdyBob3cgdG8gcXVhbGlmeSBuYW1lcyBpbi4gICovCi0rICBpZiAoY3UtPmxhbmd1YWdl ICE9IGxhbmd1YWdlX2NwbHVzCi0rICAgICAgJiYgY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2ph dmEpCi0rICAgIHJldHVybiBuYW1lOwotKwotKyAgaWYgKGRpZV9uZWVkc19uYW1lc3BhY2UgKGRp ZSwgY3UpKQotKyAgICB7Ci0rICAgICAgbG9uZyBsZW5ndGg7Ci0rICAgICAgY2hhciAqcHJlZml4 OwotKyAgICAgIHN0cnVjdCB1aV9maWxlICpidWY7Ci0rCi0rICAgICAgcHJlZml4ID0gcGh5c25h bWVfcHJlZml4IChkaWUsIGN1KTsKLSsgICAgICBidWYgPSBtZW1fZmlsZW9wZW4gKCk7Ci0rICAg ICAgaWYgKCpwcmVmaXggIT0gJ1wwJykKLSsJewotKwkgIGNoYXIgKnByZWZpeGVkX25hbWUgPSB0 eXBlbmFtZV9jb25jYXQgKE5VTEwsIHByZWZpeCwgbmFtZSwgY3UpOwotKwkgIGZwdXRzX3VuZmls dGVyZWQgKHByZWZpeGVkX25hbWUsIGJ1Zik7Ci0rCSAgeGZyZWUgKHByZWZpeGVkX25hbWUpOwot Kwl9Ci0rICAgICAgZWxzZQotKwlmcHV0c191bmZpbHRlcmVkIChuYW1lID8gbmFtZSA6ICIiLCBi dWYpOwotKwotKyAgICAgIC8qIEZvciBKYXZhIGFuZCBDKysgbWV0aG9kcywgYXBwZW5kIGZvcm1h bCBwYXJhbWV0ZXIgdHlwZQotKwkgaW5mb3JtYXRpb24uICovCi0rICAgICAgaWYgKChjdS0+bGFu Z3VhZ2UgPT0gbGFuZ3VhZ2VfY3BsdXMgfHwgY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2phdmEp Ci0rCSAgJiYgZGllLT50YWcgPT0gRFdfVEFHX3N1YnByb2dyYW0pCi0rCXsKLSsJICBzdHJ1Y3Qg dHlwZSAqdHlwZSA9IHJlYWRfdHlwZV9kaWUgKGRpZSwgY3UpOwotKwotKwkgIGNfdHlwZV9wcmlu dF9hcmdzICh0eXBlLCBidWYsIDAsIGN1LT5sYW5ndWFnZSk7Ci0rCi0rCSAgaWYgKGN1LT5sYW5n dWFnZSA9PSBsYW5ndWFnZV9qYXZhKQotKwkgICAgewotKwkgICAgICAvKiBGb3IgamF2YSwgd2Ug bXVzdCBhcHBlbmQgdGhlIHJldHVybiB0eXBlIHRvIG1ldGhvZCBuYW1lcy4gKi8KLSsJICAgICAg aWYgKGRpZS0+dGFnID09IERXX1RBR19zdWJwcm9ncmFtKQotKwkJamF2YV9wcmludF90eXBlIChU WVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgIiIsIGJ1ZiwgMCwgMCk7Ci0rCSAgICB9Ci0rCSAgZWxz ZSBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzKQotKwkgICAgewotKwkgICAgICAv KiBjX3R5cGVfcHJpbnRfYXJncyBhZGRzIGFyZ3VtZW50IHR5cGVzLCBidXQgaXQgZG9lcwotKwkJ IG5vdCBhZGQgYW55IG5lY2Vzc2FyeSAiY29uc3QiLiAqLwotKwkgICAgICBpZiAoVFlQRV9ORklF TERTICh0eXBlKSA+IDAgJiYgVFlQRV9GSUVMRF9BUlRJRklDSUFMICh0eXBlLCAwKQotKwkJICAm JiBUWVBFX0NPTlNUIChUWVBFX1RBUkdFVF9UWVBFIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIDAp KSkpCi0rCQlmcHV0c191bmZpbHRlcmVkICgiIGNvbnN0IiwgYnVmKTsKLSsJICAgIH0KLSsJfQot KwotKyAgICAgIG5hbWUgPSB1aV9maWxlX29ic2F2ZXN0cmluZyAoYnVmLCAmY3UtPm9iamZpbGUt Pm9iamZpbGVfb2JzdGFjaywKLSsJCQkJICAgJmxlbmd0aCk7Ci0rICAgICAgdWlfZmlsZV9kZWxl dGUgKGJ1Zik7Ci0rCi0rICAgICAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cykK LSsJewotKwkgIGNoYXIgKmNuYW1lCi0rCSAgICA9IGR3YXJmMl9jYW5vbmljYWxpemVfbmFtZSAo bmFtZSwgY3UsCi0rCQkJCQkmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjayk7Ci0rCSAgaWYg KGNuYW1lICE9IE5VTEwpCi0rCSAgICBuYW1lID0gY25hbWU7Ci0rCX0KLSsgICAgfQotKwotKyAg cmV0dXJuIG5hbWU7Ci0rfQotKwotKy8qIFJldHVybiB0aGUgZnVsbHkgcXVhbGlmaWVkIC5zeW10 YWIgbmFtZSBmb3Igc3ltYm9scyBjb250YWluZWQgaW4gRm9ydHJhbgotKyAgIG1vZHVsZXMuICBS ZXR1cm4gRFdBUkYyX05BTUUgb3RoZXJ3aXNlLiAgKi8KLSsKLStzdGF0aWMgY2hhciAqCi0rZm9y dHJhbl9tb2R1bGVfbGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCi0rewotKyAgY2hhciAqbmFtZTsKLSsKLSsgIGdkYl9hc3NlcnQgKGN1LT5s YW5ndWFnZSA9PSBsYW5ndWFnZV9mb3J0cmFuKTsKLSsKLSsgIG5hbWUgPSBkd2FyZjJfbmFtZSAo ZGllLCBjdSk7Ci0rCi0rICBpZiAobmFtZSAmJiBkaWUtPnBhcmVudCAmJiBkaWUtPnBhcmVudC0+ dGFnID09IERXX1RBR19tb2R1bGUpCi0rICAgIHsKLSsgICAgICBjaGFyICptb2R1bGVfbmFtZSA9 IGR3YXJmMl9uYW1lIChkaWUtPnBhcmVudCwgY3UpOwotKwotKyAgICAgIGlmIChtb2R1bGVfbmFt ZSkKLSsJewotKwkgIGNoYXIgKnJldHZhbDsKLSsKLSsJICAvKiBgX19tb2R1bGVuYW1lX01PRF92 YXJpYWJsZW5hbWUwJy4gICovCi0rCSAgcmV0dmFsID0gb2JzdGFja19hbGxvYyAoJmN1LT5vYmpm aWxlLT5vYmpmaWxlX29ic3RhY2ssCi0rCQkJCSAgMiArIHN0cmxlbiAobW9kdWxlX25hbWUpICsg NSArIHN0cmxlbiAobmFtZSkKLSsJCQkJICArIDEpOwotKwkgIHNwcmludGYgKHJldHZhbCwgIl9f JXNfTU9EXyVzIiwgbW9kdWxlX25hbWUsIG5hbWUpOwotKwotKwkgIHJldHVybiByZXR2YWw7Ci0r CX0KLSsgICAgfQotKwotKyAgcmV0dXJuIG5hbWU7Ci0gfQotIAotIC8qIEdldCBuYW1lIG9mIGEg ZGllLCByZXR1cm4gTlVMTCBpZiBub3QgZm91bmQuICAqLwotQEAgLTExNDI5LDYgKzEyMjM5LDM0 IEBAIGF0dHJfZm9ybV9pc19jb25zdGFudCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKLSAgICAg fQotIH0KLSAKLSsvKiBDb252ZXJ0IERXX0JMT0NLIGludG8gc3RydWN0IGR3YXJmMl9sb2NleHBy X2JhdG9uLiAgQVRUUiBtdXN0IGJlIGEgRFdfQkxPQ0sKLSsgICBhdHRyaWJ1dGUgdHlwZS4gICov Ci0rCi0rc3RhdGljIHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiAqCi0rZHdhcmYyX2F0dHJf dG9fbG9jZXhwcl9iYXRvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCi0rewotKyAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uICpiYXRvbjsKLSsKLSsg IGdkYl9hc3NlcnQgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpOworKyAgZ2RiX2Fzc2VydCAo YXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSk7CiArCiArICBiYXRvbiA9IG9ic3RhY2tfYWxsb2Mg KCZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBzaXplb2YgKCpiYXRvbikpOwogKyAgYmF0 b24tPnBlcl9jdSA9IGN1LT5wZXJfY3U7CkBAIC01Mzc3LDIwICs1NzYyLDc2IEBAIGluZGV4IDg2 YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiArICByZXR1cm4gYmF0b247CiArfQogKworK3N0YXRpYyBz dHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0b24gKgorK2R3YXJmMl9hdHRyX3RvX2xvY2xpc3RfYmF0 b24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorK3sKKysg IHN0cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbiAqYmF0b247CisrCisrICBpZiAoIShhdHRyX2Zv cm1faXNfc2VjdGlvbl9vZmZzZXQgKGF0dHIpCisrCS8qICIuZGVidWdfbG9jIiBtYXkgbm90IGV4 aXN0IGF0IGFsbCwgb3IgdGhlIG9mZnNldCBtYXkgYmUgb3V0c2lkZQorKwkgICB0aGUgc2VjdGlv bi4gIElmIHNvLCBmYWxsIHRocm91Z2ggdG8gdGhlIGNvbXBsYWludCBpbiB0aGUKKysJICAgb3Ro ZXIgYnJhbmNoLiAgKi8KKysJJiYgRFdfVU5TTkQgKGF0dHIpIDwgZHdhcmYyX3Blcl9vYmpmaWxl LT5sb2Muc2l6ZSkpCisrICAgIHJldHVybiBOVUxMOworKworKyAgYmF0b24gPSBvYnN0YWNrX2Fs bG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKKysJCQkgc2l6ZW9mIChzdHJ1Y3Qg ZHdhcmYyX2xvY2xpc3RfYmF0b24pKTsKKysgIGJhdG9uLT5wZXJfY3UgPSBjdS0+cGVyX2N1Owor KyAgZ2RiX2Fzc2VydCAoYmF0b24tPnBlcl9jdSk7CisrCisrICAvKiBXZSBkb24ndCBrbm93IGhv dyBsb25nIHRoZSBsb2NhdGlvbiBsaXN0IGlzLCBidXQgbWFrZSBzdXJlIHdlCisrICAgICBkb24n dCBydW4gb2ZmIHRoZSBlZGdlIG9mIHRoZSBzZWN0aW9uLiAgKi8KKysgIGJhdG9uLT5zaXplID0g ZHdhcmYyX3Blcl9vYmpmaWxlLT5sb2Muc2l6ZSAtIERXX1VOU05EIChhdHRyKTsKKysgIGJhdG9u LT5kYXRhID0gZHdhcmYyX3Blcl9vYmpmaWxlLT5sb2MuYnVmZmVyICsgRFdfVU5TTkQgKGF0dHIp OworKyAgYmF0b24tPmJhc2VfYWRkcmVzcyA9IGN1LT5iYXNlX2FkZHJlc3M7CisrICBpZiAoY3Ut PmJhc2Vfa25vd24gPT0gMCkKKysgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAor KwkgICAgICAgXygiTG9jYXRpb24gbGlzdCB1c2VkIHdpdGhvdXQgc3BlY2lmeWluZyB0aGUgQ1Ug YmFzZSBhZGRyZXNzLiIpKTsKKysKKysgIHJldHVybiBiYXRvbjsKKyt9CisrCiArLyogU1lNIG1h eSBnZXQgaXRzIFNZTUJPTF9DTEFTUyBvdmVycmlkZW4gb24gaW52YWxpZCBBVFRSIGNvbnRlbnQu ICAqLwogKwogIHN0YXRpYyB2b2lkCiAgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1 Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAgCQkJICAgICBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKLUBAIC0xMTQ1OCwzNSArMTIyOTYsMjUgQEAgZHdhcmYyX3N5bWJvbF9t YXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0s CisgeworLSAgaWYgKGF0dHJfZm9ybV9pc19zZWN0aW9uX29mZnNldCAoYXR0cikKKy0gICAgICAv KiAiLmRlYnVnX2xvYyIgbWF5IG5vdCBleGlzdCBhdCBhbGwsIG9yIHRoZSBvZmZzZXQgbWF5IGJl IG91dHNpZGUKKy0JIHRoZSBzZWN0aW9uLiAgSWYgc28sIGZhbGwgdGhyb3VnaCB0byB0aGUgY29t cGxhaW50IGluIHRoZQorLQkgb3RoZXIgYnJhbmNoLiAgKi8KKy0gICAgICAmJiBEV19VTlNORCAo YXR0cikgPCBkd2FyZjJfcGVyX29iamZpbGUtPmxvYy5zaXplKQorLSAgICB7CistICAgICAgc3Ry dWN0IGR3YXJmMl9sb2NsaXN0X2JhdG9uICpiYXRvbjsKKy0KKy0gICAgICBiYXRvbiA9IG9ic3Rh Y2tfYWxsb2MgKCZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLAorLQkJCSAgICAgc2l6ZW9m IChzdHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0b24pKTsKKy0gICAgICBiYXRvbi0+cGVyX2N1ID0g Y3UtPnBlcl9jdTsKKy0gICAgICBnZGJfYXNzZXJ0IChiYXRvbi0+cGVyX2N1KTsKKy0KKy0gICAg ICAvKiBXZSBkb24ndCBrbm93IGhvdyBsb25nIHRoZSBsb2NhdGlvbiBsaXN0IGlzLCBidXQgbWFr ZSBzdXJlIHdlCistCSBkb24ndCBydW4gb2ZmIHRoZSBlZGdlIG9mIHRoZSBzZWN0aW9uLiAgKi8K Ky0gICAgICBiYXRvbi0+c2l6ZSA9IGR3YXJmMl9wZXJfb2JqZmlsZS0+bG9jLnNpemUgLSBEV19V TlNORCAoYXR0cik7CistICAgICAgYmF0b24tPmRhdGEgPSBkd2FyZjJfcGVyX29iamZpbGUtPmxv Yy5idWZmZXIgKyBEV19VTlNORCAoYXR0cik7CistICAgICAgYmF0b24tPmJhc2VfYWRkcmVzcyA9 IGN1LT5iYXNlX2FkZHJlc3M7CistICAgICAgaWYgKGN1LT5iYXNlX2tub3duID09IDApCistCWNv bXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKKy0JCSAgIF8oIkxvY2F0aW9uIGxpc3QgdXNl ZCB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIENVIGJhc2UgYWRkcmVzcy4iKSk7CisrICBzdHJ1Y3Qg ZHdhcmYyX2xvY2xpc3RfYmF0b24gKmxvY2xpc3RfYmF0b247CisgCisrICBsb2NsaXN0X2JhdG9u ID0gZHdhcmYyX2F0dHJfdG9fbG9jbGlzdF9iYXRvbiAoYXR0ciwgY3UpOworKyAgaWYgKGxvY2xp c3RfYmF0b24pCisrICAgIHsKICAgICAgICBTWU1CT0xfQ09NUFVURURfT1BTIChzeW0pID0gJmR3 YXJmMl9sb2NsaXN0X2Z1bmNzOwotICAgICAgIFNZTUJPTF9MT0NBVElPTl9CQVRPTiAoc3ltKSA9 IGJhdG9uOwotICAgICB9CistICAgICAgU1lNQk9MX0xPQ0FUSU9OX0JBVE9OIChzeW0pID0gYmF0 b247CisrICAgICAgU1lNQk9MX0xPQ0FUSU9OX0JBVE9OIChzeW0pID0gbG9jbGlzdF9iYXRvbjsK KysgICAgfQogKyAgZWxzZSBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICsgICAgewog KyAgICAgIFNZTUJPTF9DT01QVVRFRF9PUFMgKHN5bSkgPSAmZHdhcmYyX2xvY2V4cHJfZnVuY3M7 CiArICAgICAgU1lNQk9MX0xPQ0FUSU9OX0JBVE9OIChzeW0pID0gZHdhcmYyX2F0dHJfdG9fbG9j ZXhwcl9iYXRvbiAoYXR0ciwgY3UpOwotKyAgICB9CisgICAgIH0KICAgIGVsc2UKICAgICAgewog LSAgICAgIHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiAqYmF0b247CkBAIC01NDMzLDcgKzU4 NzQsNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogICAgICB9CiAgfQogIAotQEAg LTExNzc0LDYgKzEyNjAyLDMxIEBAIG9mZnNldF9hbmRfdHlwZV9lcSAoY29uc3Qgdm9pZCAqaXRl bV9saHMsIGNvbnN0IHZvaWQgKml0ZW1fcmhzKQorQEAgLTExNzgxLDYgKzEyNTg2LDMxIEBAIG9m ZnNldF9hbmRfdHlwZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZvaWQgKml0ZW1f cmhzKQogICAgcmV0dXJuIG9mc19saHMtPm9mZnNldCA9PSBvZnNfcmhzLT5vZmZzZXQ7CiAgfQog IApAQCAtNTQ2NSw3ICs1OTA2LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAv KiBTZXQgdGhlIHR5cGUgYXNzb2NpYXRlZCB3aXRoIERJRSB0byBUWVBFLiAgU2F2ZSBpdCBpbiBD VSdzIGhhc2gKICAgICB0YWJsZSBpZiBuZWNlc3NhcnkuICBGb3IgY29udmVuaWVuY2UsIHJldHVy biBUWVBFLiAgKi8KICAKLUBAIC0xMTc4Miw2ICsxMjYzNSw4IEBAIHNldF9kaWVfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC0xMTc4OSw2ICsxMjYxOSw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBz dHJ1Y3QgZHdhcmYyX29mZnNldF9hbmRfdHlwZSAqKnNsb3QsIG9mczsKICAKQEAgLTU0NzQsNyAr NTkxNSw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICAvKiBGb3IgQWRhIHR5 cGVzLCBtYWtlIHN1cmUgdGhhdCB0aGUgZ25hdC1zcGVjaWZpYyBkYXRhIGlzIGFsd2F5cwogICAg ICAgaW5pdGlhbGl6ZWQgKGlmIG5vdCBhbHJlYWR5IHNldCkuICBUaGVyZSBhcmUgYSBmZXcgdHlw ZXMgd2hlcmUKICAgICAgIHdlIHNob3VsZCBub3QgYmUgZG9pbmcgc28sIGJlY2F1c2UgdGhlIHR5 cGUtc3BlY2lmaWMgYXJlYSBpcwotQEAgLTExOTM3LDIzICsxMjc5MiwxMyBAQCBzaG93X2R3YXJm Ml9jbWQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKK0BAIC0xMTk0NCwyMyArMTI3NzYsMTMg QEAgc2hvd19kd2FyZjJfY21kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCiAgICBjbWRfc2hv d19saXN0IChzaG93X2R3YXJmMl9jbWRsaXN0LCBmcm9tX3R0eSwgIiIpOwogIH0KICAKQEAgLTU1 MDIsNyArNTk0Myw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgfQogIAogIC8q IG11bm1hcCBkZWJ1ZyBzZWN0aW9ucyBmb3IgT0JKRklMRSwgaWYgbmVjZXNzYXJ5LiAgKi8KLUBA IC0xMTk2MiwxNSArMTI4MDcsMTUgQEAgc3RhdGljIHZvaWQKK0BAIC0xMTk2OSwxNSArMTI3OTEs MTUgQEAgc3RhdGljIHZvaWQKICBkd2FyZjJfcGVyX29iamZpbGVfZnJlZSAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUsIHZvaWQgKmQpCiAgewogICAgc3RydWN0IGR3YXJmMl9wZXJfb2JqZmlsZSAq ZGF0YSA9IGQ7CkBAIC01NTI3LDE2ICs1OTY4LDggQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAx MDA2NDQKICB9CiAgCiAgdm9pZCBfaW5pdGlhbGl6ZV9kd2FyZjJfcmVhZCAodm9pZCk7Ci1AQCAt MTE5NzgsNiArMTI4MjMsNyBAQCB2b2lkIF9pbml0aWFsaXplX2R3YXJmMl9yZWFkICh2b2lkKTsK LSB2b2lkCi0gX2luaXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpCi0gewotKyAgZGllX2xpc3Qg PSBWRUNfYWxsb2MgKGRpZV9pbmZvX3AsIDMyKTsKLSAgIGR3YXJmMl9vYmpmaWxlX2RhdGFfa2V5 Ci0gICAgID0gcmVnaXN0ZXJfb2JqZmlsZV9kYXRhX3dpdGhfY2xlYW51cCAoTlVMTCwgZHdhcmYy X3Blcl9vYmpmaWxlX2ZyZWUpOwotIAogZGlmZiAtLWdpdCBhL2dkYi9lbGZyZWFkLmMgYi9nZGIv ZWxmcmVhZC5jCi1pbmRleCA3OGU5MTYzLi5kYzhhNzUyIDEwMDY0NAoraW5kZXggOWEyYTFlMy4u NzJiMWQxMyAxMDA2NDQKIC0tLSBhL2dkYi9lbGZyZWFkLmMKICsrKyBiL2dkYi9lbGZyZWFkLmMK IEBAIC0xNzksNyArMTc5LDggQEAgcmVjb3JkX21pbmltYWxfc3ltYm9sIChjb25zdCBjaGFyICpu YW1lLCBpbnQgbmFtZV9sZW4sIGludCBjb3B5X25hbWUsCkBAIC01NjE1LDcgKzYwNDgsNyBAQCBp bmRleCA3OGU5MTYzLi5kYzhhNzUyIDEwMDY0NAogICAgZGVmYXVsdF9zeW1maWxlX29mZnNldHMs CS8qIHN5bV9vZmZzZXRzOiAgVHJhbnNsYXRlIGV4dC4gdG8gaW50LiByZWxvY2F0aW9uICovCiAg ICBlbGZfc3ltZmlsZV9zZWdtZW50cywJCS8qIHN5bV9zZWdtZW50czogR2V0IHNlZ21lbnQgaW5m b3JtYXRpb24gZnJvbQogZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCi1pbmRl eCBhMDU1NmNmLi5hYmU2YTA2IDEwMDY0NAoraW5kZXggZTJjZWVhNy4uMWJjYjRhNyAxMDA2NDQK IC0tLSBhL2dkYi9ldmFsLmMKICsrKyBiL2dkYi9ldmFsLmMKIEBAIC00Myw2ICs0Myw3IEBACkBA IC01NjMxLDEwICs2MDY0LDE4IEBAIGluZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgICBz dHJ1Y3QgdHlwZSAqKmFyZ190eXBlczsKICAgIGludCBzYXZlX3BvczE7CiArICBzdHJ1Y3QgY2xl YW51cCAqb2xkX2NoYWluOworICAgc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24gPSBOVUxMOworICAg Y2hhciAqZnVuY3Rpb25fbmFtZSA9IE5VTEw7CiAgCi0gICBwYyA9ICgqcG9zKSsrOwotICAgb3Ag PSBleHAtPmVsdHNbcGNdLm9wY29kZTsKLUBAIC0xMzMyLDcgKzEzMzQsNiBAQCBldmFsdWF0ZV9z dWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC03MzEsNiArNzMz LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUs CisgICAgICAgcmV0dXJuIHZhbHVlX2Zyb21fZGVjZmxvYXQgKGV4cC0+ZWx0c1twYyArIDFdLnR5 cGUsCisgCQkJCSAgZXhwLT5lbHRzW3BjICsgMl0uZGVjZmxvYXRjb25zdCk7CisgCisrICAgIGNh c2UgT1BfQURMX0ZVTkM6CisgICAgIGNhc2UgT1BfVkFSX1ZBTFVFOgorICAgICAgICgqcG9zKSAr PSAzOworICAgICAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQorQEAgLTEzMzQsNyArMTMzNyw2 IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAog ICAgICAgIGFyZ3ZlYyA9IChzdHJ1Y3QgdmFsdWUgKiopIGFsbG9jYSAoc2l6ZW9mIChzdHJ1Y3Qg dmFsdWUgKikgKiAobmFyZ3MgKyAzKSk7CiAgICAgICAgaWYgKG9wID09IFNUUlVDVE9QX01FTUJF UiB8fCBvcCA9PSBTVFJVQ1RPUF9NUFRSKQogIAl7CkBAIC01NjQyLDcgKzYwODMsNyBAQCBpbmRl eCBhMDU1NmNmLi5hYmU2YTA2IDEwMDY0NAogIAkgIC8qIEZpcnN0LCBldmFsdWF0ZSB0aGUgc3Ry dWN0dXJlIGludG8gYXJnMiAqLwogIAkgIHBjMiA9ICgqcG9zKSsrOwogIAotQEAgLTEzNTYsMjEg KzEzNTcsNDAgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0 X3R5cGUsCitAQCAtMTM1OCwyMSArMTM2MCw0MCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQg KHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAKICAJICBhcmcxID0gZXZhbHVhdGVfc3ViZXhw IChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOwogIApAQCAtNTY5NSw3ICs2MTM2LDcxIEBA IGluZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgCX0KICAgICAgICBlbHNlIGlmIChvcCA9 PSBTVFJVQ1RPUF9TVFJVQ1QgfHwgb3AgPT0gU1RSVUNUT1BfUFRSKQogIAl7Ci1AQCAtMTQ5Niw4 ICsxNTE2LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0 X3R5cGUsCitAQCAtMTQxMiw2ICsxNDMzLDE3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAo c3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorIAkgIC8qIE5vdywgc2F5IHdoaWNoIGFyZ3VtZW50 IHRvIHN0YXJ0IGV2YWx1YXRpbmcgZnJvbSAqLworIAkgIHRlbSA9IDI7CisgCX0KKysgICAgICBl bHNlIGlmIChvcCA9PSBPUF9BRExfRlVOQykKKysgICAgICAgIHsKKysgICAgICAgICAgLyogU2F2 ZSB0aGUgZnVuY3Rpb24gcG9zaXRpb24gYW5kIG1vdmUgcG9zIHNvIHRoYXQgdGhlIGFyZ3VtZW50 cworKyAgICAgICAgICAgICBjYW4gYmUgZXZhbHVhdGVkLiAqLworKyAgICAgICAgICBpbnQgZnVu Y19uYW1lX2xlbjsKKysgICAgICAgICAgc2F2ZV9wb3MxID0gKnBvczsKKysgICAgICAgICAgdGVt ID0gMTsKKysKKysgICAgICAgICAgZnVuY19uYW1lX2xlbiA9IGxvbmdlc3RfdG9faW50IChleHAt PmVsdHNbc2F2ZV9wb3MxICsgM10ubG9uZ2NvbnN0KTsKKysgICAgICAgICAgKCpwb3MpICs9IDYg KyBCWVRFU19UT19FWFBfRUxFTSAoZnVuY19uYW1lX2xlbiArIDEpOworKyAgICAgICAgfQorICAg ICAgIGVsc2UgaWYgKG9wID09IE9QX1NDT1BFCisgCSAgICAgICAmJiBvdmVybG9hZF9yZXNvbHV0 aW9uCisgCSAgICAgICAmJiAoZXhwLT5sYW5ndWFnZV9kZWZuLT5sYV9sYW5ndWFnZSA9PSBsYW5n dWFnZV9jcGx1cykpCitAQCAtMTQzMyw5ICsxNDY1LDkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5k YXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCisgCSAgaWYgKFRZUEVfQ09ERSAodHlwZSkg PT0gVFlQRV9DT0RFX05BTUVTUEFDRSkKKyAJICAgIHsKKyAJICAgICAgZnVuY3Rpb24gPSBjcF9s b29rdXBfc3ltYm9sX25hbWVzcGFjZSAoVFlQRV9UQUdfTkFNRSAodHlwZSksCistCQkJCQkJICAg ICBuYW1lLCBOVUxMLAorKwkJCQkJCSAgICAgbmFtZSwKKyAJCQkJCQkgICAgIGdldF9zZWxlY3Rl ZF9ibG9jayAoMCksCistCQkJCQkJICAgICBWQVJfRE9NQUlOLCAxKTsKKysJCQkJCQkgICAgIFZB Ul9ET01BSU4pOworIAkgICAgICBpZiAoZnVuY3Rpb24gPT0gTlVMTCkKKyAJCWVycm9yIChfKCJO byBzeW1ib2wgXCIlc1wiIGluIG5hbWVzcGFjZSBcIiVzXCIuIiksIAorIAkJICAgICAgIG5hbWUs IFRZUEVfVEFHX05BTUUgKHR5cGUpKTsKK0BAIC0xNDg0LDYgKzE1MTYsMzMgQEAgZXZhbHVhdGVf c3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCisgICAgICAgLyogc2ln bmFsIGVuZCBvZiBhcmdsaXN0ICovCisgICAgICAgYXJndmVjW3RlbV0gPSAwOworIAorKyAgICAg IGlmIChvcCA9PSBPUF9BRExfRlVOQykKKysgICAgICAgIHsKKysgICAgICAgICAgc3RydWN0IHN5 bWJvbCAqc3ltcDsKKysgICAgICAgICAgY2hhciAqZnVuY19uYW1lOworKyAgICAgICAgICBpbnQg IG5hbWVfbGVuOworKyAgICAgICAgICBpbnQgc3RyaW5nX3BjID0gc2F2ZV9wb3MxICsgMzsKKysK KysgICAgICAgICAgLyogRXh0cmFjdCB0aGUgZnVuY3Rpb24gbmFtZS4gICovCisrICAgICAgICAg IG5hbWVfbGVuID0gbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1tzdHJpbmdfcGNdLmxvbmdjb25z dCk7CisrICAgICAgICAgIGZ1bmNfbmFtZSA9IChjaGFyICopIGFsbG9jYSAobmFtZV9sZW4gKyAx KTsKKysgICAgICAgICAgc3RyY3B5IChmdW5jX25hbWUsICZleHAtPmVsdHNbc3RyaW5nX3BjICsg MV0uc3RyaW5nKTsKKysKKysgICAgICAgICAgLyogUHJlcGFyZSBsaXN0IG9mIGFyZ3VtZW50IHR5 cGVzIGZvciBvdmVybG9hZCByZXNvbHV0aW9uICovCisrICAgICAgICAgIGFyZ190eXBlcyA9IChz dHJ1Y3QgdHlwZSAqKikgYWxsb2NhIChuYXJncyAqIChzaXplb2YgKHN0cnVjdCB0eXBlICopKSk7 CisrICAgICAgICAgIGZvciAoaXggPSAxOyBpeCA8PSBuYXJnczsgaXgrKykKKysgICAgICAgICAg ICBhcmdfdHlwZXNbaXggLSAxXSA9IHZhbHVlX3R5cGUgKGFyZ3ZlY1tpeF0pOworKworKyAgICAg ICAgICBmaW5kX292ZXJsb2FkX21hdGNoIChhcmdfdHlwZXMsIG5hcmdzLCBmdW5jX25hbWUsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogbm90IG1ldGhvZCAqLyAsIDAgLyog c3RyaWN0IG1hdGNoICovICwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg TlVMTCAvKiBwYXNzIE5VTEwgc3ltYm9sIHNpbmNlIHN5bWJvbCBpcyB1bmtub3duICovICwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJnN5bXAsIE5VTEwpOworKworKyAg ICAgICAgICAvKiBOb3cgZml4IHRoZSBleHByZXNzaW9uIGJlaW5nIGV2YWx1YXRlZCAqLworKyAg ICAgICAgICBleHAtPmVsdHNbc2F2ZV9wb3MxICsgMl0uc3ltYm9sID0gc3ltcDsKKysgICAgICAg ICAgYXJndmVjWzBdID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgJnNhdmVf cG9zMSwgbm9zaWRlKTsKKysgICAgICAgIH0KKysKKyAgICAgICBpZiAob3AgPT0gU1RSVUNUT1Bf U1RSVUNUIHx8IG9wID09IFNUUlVDVE9QX1BUUgorIAkgIHx8IChvcCA9PSBPUF9TQ09QRSAmJiBm dW5jdGlvbl9uYW1lICE9IE5VTEwpKQorIAl7CitAQCAtMTU1Miw4ICsxNjExLDcgQEAgZXZhbHVh dGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCX0KICAgICAg ICBlbHNlIGlmIChvcCA9PSBTVFJVQ1RPUF9NRU1CRVIgfHwgb3AgPT0gU1RSVUNUT1BfTVBUUikK ICAJewpAQCAtNTcwMyw5ICs2MjA4LDkgQEAgaW5kZXggYTA1NTZjZi4uYWJlNmEwNiAxMDA2NDQK IC0JICBhcmd2ZWNbMF0gPSBhcmcxOwogKwkgIC8qIFBvaW50ZXIgdG8gbWVtYmVyLiAgYXJndmVj IGlzIGFscmVhZHkgc2V0IHVwLiAgKi8KICAJfQotICAgICAgIGVsc2UgaWYgKG9wID09IE9QX1ZB Ul9WQUxVRSkKKyAgICAgICBlbHNlIGlmIChvcCA9PSBPUF9WQVJfVkFMVUUgfHwgKG9wID09IE9Q X1NDT1BFICYmIGZ1bmN0aW9uICE9IE5VTEwpKQogIAl7Ci1AQCAtMTU4OCw2ICsxNjA3LDggQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAt MTY1Myw2ICsxNzExLDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAq ZXhwZWN0X3R5cGUsCiAgCiAgICAgICAgLyogRmlyc3QgZGV0ZXJtaW5lIHRoZSB0eXBlIGNvZGUg d2UgYXJlIGRlYWxpbmcgd2l0aC4gICovCiAgICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAo TlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKTsKQEAgLTU3MTQsNyArNjIxOSw3IEBAIGluZGV4 IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgICAgICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZh bHVlX3R5cGUgKGFyZzEpKTsKICAgICAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAKLUBA IC0xNjA4LDYgKzE2MjksNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBl ICpleHBlY3RfdHlwZSwKK0BAIC0xNjczLDYgKzE3MzMsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3Rh bmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJICAgICAgY29kZSA9IFRZUEVfQ09E RSAodHlwZSk7CiAgCSAgICB9CiAgCX0gCkBAIC01NzIyLDcgKzYyMjcsNyBAQCBpbmRleCBhMDU1 NmNmLi5hYmU2YTA2IDEwMDY0NAogIAogICAgICAgIHN3aXRjaCAoY29kZSkKICAJewotQEAgLTE3 NjksNiArMTc5MSwyNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpl eHBlY3RfdHlwZSwKK0BAIC0xODM0LDYgKzE4OTUsMjYgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5k YXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICAgeGZyZWUgKGV4cGVjdF90eXBl KTsKICAgICAgICByZXR1cm4gYXJnMTsKICAKQEAgLTU3MzIsNyArNjIzNyw2IEBAIGluZGV4IGEw NTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiArCXN0cnVjdCBzeW1ib2wgKnN5bTsKICsJc3RydWN0IHR5 cGUgKiphcmdfdHlwZXM7CiArCSgqcG9zKSArPSAzOwotKwlwcmludGYgKCJUWVBFX0lOU1RBTkNF X0xPT0tVUFxuIik7CiArCWFyZ190eXBlcyA9IChzdHJ1Y3QgdHlwZSAqKikgYWxsb2NhIChUWVBF X05GSUVMRFMgKGV4cGVjdF90eXBlKQogKwkJCQkJICAgICAqIHNpemVvZiAoc3RydWN0IHR5cGUg KikpOwogKwlmb3IgKGkgPSAwOyBpIDwgVFlQRV9ORklFTERTIChleHBlY3RfdHlwZSk7ICsraSkK QEAgLTU3NTAsNyArNjI1NCw3IEBAIGluZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgICAg IGNhc2UgQklOT1BfQ09OQ0FUOgogICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9j b2VyY2lvbiAoZXhwLCBwb3MsIG5vc2lkZSk7CiAgICAgICAgYXJnMiA9IGV2YWx1YXRlX3N1YmV4 cF93aXRoX2NvZXJjaW9uIChleHAsIHBvcywgbm9zaWRlKTsKLUBAIC0yMDQwLDEzICsyMDgzLDE5 IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAor QEAgLTIxMDUsMTMgKzIxODYsMTkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg dHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICAgewogIAlpbnQgc3Vic2NyaXB0X2FycmF5W01BWF9G T1JUUkFOX0RJTVNdOwogIAlpbnQgYXJyYXlfc2l6ZV9hcnJheVtNQVhfRk9SVFJBTl9ESU1TXTsK QEAgLTU3NzAsNyArNjI3NCw3IEBAIGluZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgCXRt cF90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwogIAluZGltZW5zaW9u cyA9IGNhbGNfZjc3X2FycmF5X2RpbXMgKHR5cGUpOwogIAotQEAgLTIwNzYsNiArMjEyNSw5IEBA IGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAg LTIxNDEsNiArMjIyOCw5IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUg KmV4cGVjdF90eXBlLAogIAkgICAgdXBwZXIgPSBmNzdfZ2V0X3VwcGVyYm91bmQgKHRtcF90eXBl KTsKICAJICAgIGxvd2VyID0gZjc3X2dldF9sb3dlcmJvdW5kICh0bXBfdHlwZSk7CiAgCkBAIC01 NzgwLDcgKzYyODQsNyBAQCBpbmRleCBhMDU1NmNmLi5hYmU2YTA2IDEwMDY0NAogIAkgICAgYXJy YXlfc2l6ZV9hcnJheVtuYXJncyAtIGkgLSAxXSA9IHVwcGVyIC0gbG93ZXIgKyAxOwogIAogIAkg ICAgLyogWmVyby1ub3JtYWxpemUgc3Vic2NyaXB0cyBzbyB0aGF0IG9mZnNldHRpbmcgd2lsbCB3 b3JrLiAqLwotQEAgLTIwOTQsMTMgKzIxNDYsMjUgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJk IChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMjE1OSwxMyArMjI0OSwyNSBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJICAgICAg dG1wX3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFICh0bXBfdHlwZSkpOwog IAkgIH0KICAKQEAgLTU4MTAsNyArNjMxNCw3IEBAIGluZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAw NjQ0CiAgCiAgCS8qIExldCB1cyBub3cgcGxheSBhIGRpcnR5IHRyaWNrOiB3ZSB3aWxsIHRha2Ug YXJnMSAKICAJICAgd2hpY2ggaXMgYSB2YWx1ZSBub2RlIHBvaW50aW5nIHRvIHRoZSB0b3Btb3N0 IGxldmVsCi1AQCAtMjExMCw3ICsyMTc0LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChz dHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMjE3NSw3ICsyMjc3LDcgQEAgZXZhbHVhdGVf c3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAgIHJldHVybnMg dGhlIGNvcnJlY3QgdHlwZSB2YWx1ZSAqLwogIAogIAlkZXByZWNhdGVkX3NldF92YWx1ZV90eXBl IChhcmcxLCB0bXBfdHlwZSk7CkBAIC01ODE5LDcgKzYzMjMsNyBAQCBpbmRleCBhMDU1NmNmLi5h YmU2YTA2IDEwMDY0NAogICAgICAgIH0KICAKICAgICAgY2FzZSBCSU5PUF9MT0dJQ0FMX0FORDoK LUBAIC0yMzQ0LDE0ICsyNDA4LDIyIEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0 IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTI0MDksMTQgKzI1MTEsMjIgQEAgZXZhbHVhdGVfc3Vi ZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICAgaWYgKGV4cGVj dF90eXBlICYmIFRZUEVfQ09ERSAoZXhwZWN0X3R5cGUpID09IFRZUEVfQ09ERV9QVFIpCiAgCWV4 cGVjdF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoY2hlY2tfdHlwZWRlZiAoZXhwZWN0X3R5cGUp KTsKICAgICAgICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChleHBlY3RfdHlwZSwgZXhwLCBwb3Ms IG5vc2lkZSk7CkBAIC01ODQ0LDcgKzYzNDgsNyBAQCBpbmRleCBhMDU1NmNmLi5hYmU2YTA2IDEw MDY0NAogICAgICAgIGVsc2UgaWYgKG5vc2lkZSA9PSBFVkFMX0FWT0lEX1NJREVfRUZGRUNUUykK ICAJewogIAkgIHR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcxKSk7Ci1AQCAt MjM2MCwxMiArMjQzMiwxOCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBl ICpleHBlY3RfdHlwZSwKK0BAIC0yNDI1LDEyICsyNTM1LDE4IEBAIGV2YWx1YXRlX3N1YmV4cF9z dGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogIAkgIC8qIEluIEMgeW91IGNhbiBk ZXJlZmVyZW5jZSBhbiBhcnJheSB0byBnZXQgdGhlIDFzdCBlbHQuICAqLwogIAkgICAgICB8fCBU WVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9BUlJBWQogIAkgICAgKQpAQCAtNTg2OCw3ICs2 MzcyLDcgQEAgaW5kZXggYTA1NTZjZi4uYWJlNmEwNiAxMDA2NDQKICAJICBlbHNlCiAgCSAgICBl cnJvciAoXygiQXR0ZW1wdCB0byB0YWtlIGNvbnRlbnRzIG9mIGEgbm9uLXBvaW50ZXIgdmFsdWUu IikpOwogIAl9Ci1AQCAtMjM3NSw5ICsyNDUzLDE0IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFy ZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTI0NDAsOSArMjU1NiwxNCBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJIGRvLiAg ImxvbmcgbG9uZyIgdmFyaWFibGVzIGFyZSByYXJlIGVub3VnaCB0aGF0CiAgCSBCVUlMVElOX1RZ UEVfTE9OR0VTVCB3b3VsZCBzZWVtIHRvIGJlIGEgbWlzdGFrZS4gICovCiAgICAgICAgaWYgKFRZ UEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0lOVCkKQEAgLTU4ODYsNyArNjM5MCw3IEBAIGlu ZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgCiAgICAgIGNhc2UgVU5PUF9BRERSOgogICAg ICAgIC8qIEMrKzogY2hlY2sgZm9yIGFuZCBoYW5kbGUgcG9pbnRlciB0byBtZW1iZXJzLiAgKi8K LUBAIC0yNzEyLDcgKzI3OTUsNyBAQCBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC0yNzc3LDcgKzI4OTgsNyBAQCBldmFsdWF0ZV9zdWJl eHBfd2l0aF9jb2VyY2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICB7CiAgICBlbnVtIGV4 cF9vcGNvZGUgb3A7CiAgICBpbnQgcGM7CkBAIC01ODk1LDcgKzYzOTksNyBAQCBpbmRleCBhMDU1 NmNmLi5hYmU2YTA2IDEwMDY0NAogICAgc3RydWN0IHN5bWJvbCAqdmFyOwogICAgc3RydWN0IHR5 cGUgKnR5cGU7CiAgCi1AQCAtMjcyMywxMiArMjgwNiwxNyBAQCBldmFsdWF0ZV9zdWJleHBfd2l0 aF9jb2VyY2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC0yNzg4LDEyICsyOTA5LDE3 IEBAIGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw LAogICAgICB7CiAgICAgIGNhc2UgT1BfVkFSX1ZBTFVFOgogICAgICAgIHZhciA9IGV4cC0+ZWx0 c1twYyArIDJdLnN5bWJvbDsKQEAgLTU5MTQsNyArNjQxOCw3IEBAIGluZGV4IGEwNTU2Y2YuLmFi ZTZhMDYgMTAwNjQ0CiAgCSAgcmV0dXJuIHZhbHVlX2Nhc3QgKGxvb2t1cF9wb2ludGVyX3R5cGUg KFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSwKICAJCQkgICAgIHZhbCk7CiAgCX0KLUBAIC0yNzgw LDkgKzI4NjgsMTMgQEAgZXZhbHVhdGVfc3ViZXhwX2Zvcl9zaXplb2YgKHN0cnVjdCBleHByZXNz aW9uICpleHAsIGludCAqcG9zKQorQEAgLTI4NDUsOSArMjk3MSwxMyBAQCBldmFsdWF0ZV9zdWJl eHBfZm9yX3NpemVvZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MpCiAgCiAgICAg IGNhc2UgT1BfVkFSX1ZBTFVFOgogICAgICAgICgqcG9zKSArPSA0OwpAQCAtNTkzMSw4ICs2NDM1 LDIxIEBAIGluZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgCiAgICAgIGRlZmF1bHQ6CiAg ICAgICAgdmFsID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBFVkFMX0FW T0lEX1NJREVfRUZGRUNUUyk7CitkaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhw cHJpbnQuYworaW5kZXggZTM3ODgzMS4uNDVkZWZmZSAxMDA2NDQKKy0tLSBhL2dkYi9leHBwcmlu dC5jCisrKysgYi9nZGIvZXhwcHJpbnQuYworQEAgLTgxNiw2ICs4MTYsOCBAQCBvcF9uYW1lX3N0 YW5kYXJkIChlbnVtIGV4cF9vcGNvZGUgb3Bjb2RlKQorICAgICAgIHJldHVybiAiT1BfVFlQRSI7 CisgICAgIGNhc2UgT1BfTEFCRUxFRDoKKyAgICAgICByZXR1cm4gIk9QX0xBQkVMRUQiOworKyAg ICBjYXNlIE9QX0FETF9GVU5DOgorKyAgICAgIHJldHVybiAiT1BfQURMX0ZVTkMiOworICAgICB9 CisgfQorIAogZGlmZiAtLWdpdCBhL2dkYi9leHByZXNzaW9uLmggYi9nZGIvZXhwcmVzc2lvbi5o Ci1pbmRleCBjYTIxNmNmLi4yMTk1ZmVmIDEwMDY0NAoraW5kZXggY2EyMTZjZi4uNmJlMGIxZSAx MDA2NDQKIC0tLSBhL2dkYi9leHByZXNzaW9uLmgKICsrKyBiL2dkYi9leHByZXNzaW9uLmgKIEBA IC05NSw2ICs5NSwxMSBAQCBlbnVtIGV4cF9vcGNvZGUKQEAgLTU5NDcsNyArNjQ2NCwxOCBAQCBp bmRleCBjYTIxNmNmLi4yMTk1ZmVmIDEwMDY0NAogICAgICAvKiBlbmQgb2YgQysrLiAgKi8KICAK ICAgICAgLyogRm9yIE1vZHVsYS0yIGludGVnZXIgZGl2aXNpb24gRElWICovCi1AQCAtNDUxLDQg KzQ1Niw1IEBAIGV4dGVybiBjaGFyICpvcF9zdHJpbmcgKGVudW0gZXhwX29wY29kZSk7CitAQCAt MzQ3LDYgKzM1MiwxMCBAQCBlbnVtIGV4cF9vcGNvZGUKKyAgICAgICAgVGhlbiBjb21lcyBhbm90 aGVyIE9QX0RFQ0ZMT0FULiAgKi8KKyAgICAgT1BfREVDRkxPQVQsCisgCisrICAgIC8qIE9QX0FE TF9GVU5DIHNwZWNpZmllcyB0aGF0IHRoZSBhcmd1bWVudCBpcyB0byBiZSBsb29rZWQgdXAgaW4g YW4KKysgICAgICAgQXJndW1lbnQgRGVwZW5kZW50IG1hbm5lciAoS29lbmlnIGxvb2t1cCkgKi8K KysgICAgT1BfQURMX0ZVTkMsCisrCisgICAgICAvKiBGaXJzdCBleHRlbnNpb24gb3BlcmF0b3Iu ICBJbmRpdmlkdWFsIGxhbmd1YWdlIG1vZHVsZXMgZGVmaW5lCisgCWV4dHJhIG9wZXJhdG9ycyBp biAqLmluYyBpbmNsdWRlIGZpbGVzIGJlbG93IGFsd2F5cyBzdGFydGluZyB3aXRoCisgCW51bWJl cmluZyBhdCBPUF9FWFRFTkRFRDA6CitAQCAtNDUxLDQgKzQ2MCw1IEBAIGV4dGVybiBjaGFyICpv cF9zdHJpbmcgKGVudW0gZXhwX29wY29kZSk7CiAgZXh0ZXJuIHZvaWQgZHVtcF9yYXdfZXhwcmVz c2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKiwgY2hhciAqKTsKICBl eHRlcm4gdm9pZCBkdW1wX3ByZWZpeF9leHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLCBz dHJ1Y3QgdWlfZmlsZSAqKTsKICAKQEAgLTY3NDksNyArNzI3Nyw3IEBAIGluZGV4IGNkMjRlYWYu LjExOWFmN2QgMTAwNjQ0CiAgICAgb25jZSBmb3IgZWFjaCBrbm93biB0aHJlYWQuICAqLwogIHR5 cGVkZWYgaW50ICgqdGhyZWFkX2NhbGxiYWNrX2Z1bmMpIChzdHJ1Y3QgdGhyZWFkX2luZm8gKiwg dm9pZCAqKTsKIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCi1p bmRleCA0Njg0NmM0Li5iZjZlODkxIDEwMDY0NAoraW5kZXggNDY4NDZjNC4uOTViY2NhNCAxMDA2 NDQKIC0tLSBhL2dkYi9nZGJ0eXBlcy5jCiArKysgYi9nZGIvZ2RidHlwZXMuYwogQEAgLTM5LDYg KzM5LDkgQEAKQEAgLTY4NzgsOCArNzQwNiw4IEBAIGluZGV4IDQ2ODQ2YzQuLmJmNmU4OTEgMTAw NjQ0CiArICAvKiBEV0FSRiBibG9ja3MgbWF5IGRlcGVuZCBvbiBydW50aW1lIGluZm9ybWF0aW9u IGxpa2UKICsgICAgIERXX09QX1BVU0hfT0JKRUNUX0FERFJFU1Mgbm90IGJlaW5nIGF2YWlsYWJs ZSBkdXJpbmcgdGhlCiArICAgICBDUkVBVEVfQVJSQVlfVFlQRSB0aW1lLiAgKi8KLSsgIGlmIChU WVBFX0xPV19CT1VORF9JU19EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSkKLSsgICAgICB8fCBUWVBF X0hJR0hfQk9VTkRfSVNfRFdBUkZfQkxPQ0sgKHJhbmdlX3R5cGUpCisrICBpZiAoVFlQRV9SQU5H RV9EQVRBIChyYW5nZV90eXBlKS0+bG93LmtpbmQgIT0gUkFOR0VfQk9VTkRfS0lORF9DT05TVEFO VAorKyAgICAgIHx8IFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2gua2luZCAhPSBS QU5HRV9CT1VORF9LSU5EX0NPTlNUQU5UCiArICAgICAgfHwgVFlQRV9MT1dfQk9VTkRfVU5ERUZJ TkVEIChyYW5nZV90eXBlKSAKICsgICAgICB8fCBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEIChy YW5nZV90eXBlKSAKICsgICAgICB8fCBnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAm bG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQpAQCAtNzIxMSw3ICs3NzM5LDcgQEAgaW5kZXgg NDY4NDZjNC4uYmY2ZTg5MSAxMDA2NDQKICAgIGlmIChUWVBFX05BTUUgKHR5cGUpKQogICAgICBU WVBFX05BTUUgKG5ld190eXBlKSA9IHhzdHJkdXAgKFRZUEVfTkFNRSAodHlwZSkpOwogICAgaWYg KFRZUEVfVEFHX05BTUUgKHR5cGUpKQotQEAgLTMwNTMsMTIgKzMyNDEsNDUgQEAgY29weV90eXBl X3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzA1MywxMiArMzI0MSw0 OCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIFRZ UEVfSU5TVEFOQ0VfRkxBR1MgKG5ld190eXBlKSA9IFRZUEVfSU5TVEFOQ0VfRkxBR1MgKHR5cGUp OwogICAgVFlQRV9MRU5HVEggKG5ld190eXBlKSA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICAKQEAg LTcyNTIsMTIgKzc3ODAsMTUgQEAgaW5kZXggNDY4NDZjNC4uYmY2ZTg5MSAxMDA2NDQKICAgICAg ewogICAgICAgIGludCBpLCBuZmllbGRzOwogIAorKyAgICAgIC8qIFRZUEVfQ09ERV9SQU5HRSB1 c2VzIFRZUEVfUkFOR0VfREFUQSBvZiB0aGUgdW5pb24gd2l0aCBUWVBFX0ZJRUxEUy4gICovCisr ICAgICAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfUkFOR0UpOwor KwogICAgICAgIG5maWVsZHMgPSBUWVBFX05GSUVMRFMgKHR5cGUpOwogKyAgICAgIFRZUEVfTkZJ RUxEUyAobmV3X3R5cGUpID0gbmZpZWxkczsKICAgICAgICBUWVBFX0ZJRUxEUyAobmV3X3R5cGUp ID0gWENBTExPQyAobmZpZWxkcywgc3RydWN0IGZpZWxkKTsKICAgICAgICBmb3IgKGkgPSAwOyBp IDwgbmZpZWxkczsgaSsrKQogIAl7Ci1AQCAtMzA2Nyw4ICszMjg4LDggQEAgY29weV90eXBlX3Jl Y3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzA2Nyw4ICszMjkxLDggQEAg Y29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgCSAgVFlQRV9G SUVMRF9CSVRTSVpFIChuZXdfdHlwZSwgaSkgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGkp OwogIAkgIGlmIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkpKQogIAkgICAgVFlQRV9GSUVMRF9U WVBFIChuZXdfdHlwZSwgaSkKQEAgLTcyNjgsNyArNzc5OSw3IEBAIGluZGV4IDQ2ODQ2YzQuLmJm NmU4OTEgMTAwNjQ0CiAgCSAgaWYgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSkpCiAgCSAgICBU WVBFX0ZJRUxEX05BTUUgKG5ld190eXBlLCBpKSA9IAogIAkgICAgICB4c3RyZHVwIChUWVBFX0ZJ RUxEX05BTUUgKHR5cGUsIGkpKTsKLUBAIC0zMDk1LDI0ICszMzE2LDc1IEBAIGNvcHlfdHlwZV9y ZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTMwOTUsMjQgKzMzMTksMTY2 IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogIAl9CiAg ICAgIH0KICAKQEAgLTcyNzcsNTUgKzc4MDgsMTQ3IEBAIGluZGV4IDQ2ODQ2YzQuLmJmNmU4OTEg MTAwNjQ0CiArICBUWVBFX0RZTkFNSUMgKG5ld190eXBlKSA9IDA7CiArCiAgICAvKiBGb3IgcmFu Z2UgdHlwZXMsIGNvcHkgdGhlIGJvdW5kcyBpbmZvcm1hdGlvbi4gKi8KLSAgIGlmIChUWVBFX0NP REUgKHR5cGUpID09IFRZUEVfQ09ERV9SQU5HRSkKKy0gIGlmIChUWVBFX0NPREUgKHR5cGUpID09 IFRZUEVfQ09ERV9SQU5HRSkKKysgIGlmIChUWVBFX0NPREUgKG5ld190eXBlKSA9PSBUWVBFX0NP REVfUkFOR0UpCiAgICAgIHsKICAgICAgICBUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKSA9IHht YWxsb2MgKHNpemVvZiAoc3RydWN0IHJhbmdlX2JvdW5kcykpOwogICAgICAgICpUWVBFX1JBTkdF X0RBVEEgKG5ld190eXBlKSA9ICpUWVBFX1JBTkdFX0RBVEEgKHR5cGUpOwogKwotKyAgICAgIGlm IChUWVBFX0xPV19CT1VORF9JU19EV0FSRl9CTE9DSyAodHlwZSkpCisrICAgICAgc3dpdGNoIChU WVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+bG93LmtpbmQpCiArCXsKKysJY2FzZSBSQU5HRV9C T1VORF9LSU5EX0NPTlNUQU5UOgorKwkgIGJyZWFrOworKwljYXNlIFJBTkdFX0JPVU5EX0tJTkRf RFdBUkZfQkxPQ0s6CiArCSAgLyogYHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbicgaXMgdG9v IGJvdW5kIHRvIGl0cyBvYmpmaWxlIHNvCi0rCSAgICAgaXQgaXMgZXhwZWN0ZWQgdG8gYmUgbWFk ZSBjb25zdGFudCBieSBDSEVDS19UWVBFREVGLiAgKi8KLSsJICBpZiAoVFlQRV9OT1RfQUxMT0NB VEVEICh0eXBlKQotKwkgICAgICB8fCBUWVBFX05PVF9BU1NPQ0lBVEVEICh0eXBlKSkKLSsJICAg IFRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUpLT5sb3cudS5kd2FyZl9ibG9jayA9IE5VTEw7Cisr CSAgICAgaXQgaXMgZXhwZWN0ZWQgdG8gYmUgbWFkZSBjb25zdGFudCBieSBDSEVDS19UWVBFREVG LgorKwkgICAgIFRZUEVfTk9UX0FMTE9DQVRFRCBhbmQgVFlQRV9OT1RfQVNTT0NJQVRFRCBhcmUg bm90IHZhbGlkIGZvciBUWVBFLgorKwkgICAgICovCisrCSAgaWYgKFRZUEVfTk9UX0FMTE9DQVRF RCAobmV3X3R5cGUpIHx8IFRZUEVfTk9UX0FTU09DSUFURUQgKG5ld190eXBlKQorKwkgICAgICB8 fCAhIGhhc19zdGFja19mcmFtZXMgKCkpCisrCSAgICB7CisrCSAgICAgIC8qIFdlIHNob3VsZCBz ZXQgMSBmb3IgRm9ydHJhbiBidXQgaG93IHRvIGZpbmQgdGhlIGxhbmd1YWdlPyAgKi8KKysJICAg ICAgVFlQRV9MT1dfQk9VTkQgKG5ld190eXBlKSA9IDA7CisrCSAgICAgIFRZUEVfTE9XX0JPVU5E X1VOREVGSU5FRCAobmV3X3R5cGUpID0gMTsKKysJICAgIH0KICsJICBlbHNlCiArCSAgICBUWVBF X0xPV19CT1VORCAobmV3X3R5cGUpID0gZHdhcmZfbG9jZXhwcl9iYXRvbl9ldmFsCiArCQkJCShU WVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+bG93LnUuZHdhcmZfYmxvY2spOwotKwkgIFRZUEVf TE9XX0JPVU5EX0lTX0RXQVJGX0JMT0NLIChuZXdfdHlwZSkgPSAwOworKwkgIFRZUEVfUkFOR0Vf REFUQSAobmV3X3R5cGUpLT5sb3cua2luZCA9IFJBTkdFX0JPVU5EX0tJTkRfQ09OU1RBTlQ7Cisr CSAgYnJlYWs7CisrCWNhc2UgUkFOR0VfQk9VTkRfS0lORF9EV0FSRl9MT0NMSVNUOgorKwkgIHsK KysJICAgIENPUkVfQUREUiBhZGRyOworKworKwkgICAgLyogYHN0cnVjdCBkd2FyZjJfbG9jbGlz dF9iYXRvbicgaXMgdG9vIGJvdW5kIHRvIGl0cyBvYmpmaWxlIHNvCisrCSAgICAgICBpdCBpcyBl eHBlY3RlZCB0byBiZSBtYWRlIGNvbnN0YW50IGJ5IENIRUNLX1RZUEVERUYuCisrCSAgICAgICBU WVBFX05PVF9BTExPQ0FURUQgYW5kIFRZUEVfTk9UX0FTU09DSUFURUQgYXJlIG5vdCB2YWxpZCBm b3IgVFlQRS4KKysJICAgICAgICovCisrCSAgICBpZiAoISBUWVBFX05PVF9BTExPQ0FURUQgKG5l d190eXBlKQorKwkgICAgICAgICYmICEgVFlQRV9OT1RfQVNTT0NJQVRFRCAobmV3X3R5cGUpICYm IGhhc19zdGFja19mcmFtZXMgKCkKKysJICAgICAgICAmJiBkd2FyZl9sb2NsaXN0X2JhdG9uX2V2 YWwKKysJCSAgKFRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUpLT5sb3cudS5kd2FyZl9sb2NsaXN0 LmxvY2xpc3QsCisrCQkgICBUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+bG93LnUuZHdhcmZf bG9jbGlzdC50eXBlLCAmYWRkcikpCisrCSAgICAgIFRZUEVfTE9XX0JPVU5EIChuZXdfdHlwZSkg PSBhZGRyOworKwkgICAgZWxzZQorKwkgICAgICB7CisrCQkvKiBXZSBzaG91bGQgc2V0IDEgZm9y IEZvcnRyYW4gYnV0IGhvdyB0byBmaW5kIHRoZSBsYW5ndWFnZT8gICovCisrCQlUWVBFX0xPV19C T1VORCAobmV3X3R5cGUpID0gMDsKKysJCVRZUEVfTE9XX0JPVU5EX1VOREVGSU5FRCAobmV3X3R5 cGUpID0gMTsKKysJICAgICAgfQorKwkgICAgVFlQRV9SQU5HRV9EQVRBIChuZXdfdHlwZSktPmxv dy5raW5kID0gUkFOR0VfQk9VTkRfS0lORF9DT05TVEFOVDsKKysJICB9CisrCSAgYnJlYWs7CiAr CX0KICsKLSsgICAgICBpZiAoVFlQRV9ISUdIX0JPVU5EX0lTX0RXQVJGX0JMT0NLICh0eXBlKSkK KysgICAgICBzd2l0Y2ggKFRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUpLT5oaWdoLmtpbmQpCiAr CXsKKysJY2FzZSBSQU5HRV9CT1VORF9LSU5EX0NPTlNUQU5UOgorKwkgIGJyZWFrOworKwljYXNl IFJBTkdFX0JPVU5EX0tJTkRfRFdBUkZfQkxPQ0s6CiArCSAgLyogYHN0cnVjdCBkd2FyZjJfbG9j ZXhwcl9iYXRvbicgaXMgdG9vIGJvdW5kIHRvIGl0cyBvYmpmaWxlIHNvCi0rCSAgICAgaXQgaXMg ZXhwZWN0ZWQgdG8gYmUgbWFkZSBjb25zdGFudCBieSBDSEVDS19UWVBFREVGLiAgKi8KLSsJICBp ZiAoVFlQRV9OT1RfQUxMT0NBVEVEICh0eXBlKQotKwkgICAgICB8fCBUWVBFX05PVF9BU1NPQ0lB VEVEICh0eXBlKSkKLSsJICAgIFRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUpLT5oaWdoLnUuZHdh cmZfYmxvY2sgPSBOVUxMOworKwkgICAgIGl0IGlzIGV4cGVjdGVkIHRvIGJlIG1hZGUgY29uc3Rh bnQgYnkgQ0hFQ0tfVFlQRURFRi4KKysJICAgICBUWVBFX05PVF9BTExPQ0FURUQgYW5kIFRZUEVf Tk9UX0FTU09DSUFURUQgYXJlIG5vdCB2YWxpZCBmb3IgVFlQRS4KKysJICAgICAqLworKwkgIGlm IChUWVBFX05PVF9BTExPQ0FURUQgKG5ld190eXBlKSB8fCBUWVBFX05PVF9BU1NPQ0lBVEVEIChu ZXdfdHlwZSkKKysJICAgICAgfHwgISBoYXNfc3RhY2tfZnJhbWVzICgpKQorKwkgICAgeworKwkg ICAgICBUWVBFX0hJR0hfQk9VTkQgKG5ld190eXBlKSA9IFRZUEVfTE9XX0JPVU5EIChuZXdfdHlw ZSkgLSAxOworKwkgICAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEIChuZXdfdHlwZSkgPSAx OworKwkgICAgfQogKwkgIGVsc2UKICsJICAgIFRZUEVfSElHSF9CT1VORCAobmV3X3R5cGUpID0g ZHdhcmZfbG9jZXhwcl9iYXRvbl9ldmFsCiArCQkJICAgICAgIChUWVBFX1JBTkdFX0RBVEEgKG5l d190eXBlKS0+aGlnaC51LmR3YXJmX2Jsb2NrKTsKLSsJICBUWVBFX0hJR0hfQk9VTkRfSVNfRFdB UkZfQkxPQ0sgKG5ld190eXBlKSA9IDA7CisrCSAgVFlQRV9SQU5HRV9EQVRBIChuZXdfdHlwZSkt PmhpZ2gua2luZCA9IFJBTkdFX0JPVU5EX0tJTkRfQ09OU1RBTlQ7CisrCSAgYnJlYWs7CisrCWNh c2UgUkFOR0VfQk9VTkRfS0lORF9EV0FSRl9MT0NMSVNUOgorKwkgIHsKKysJICAgIENPUkVfQURE UiBhZGRyOworKworKwkgICAgLyogYHN0cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbicgaXMgdG9v IGJvdW5kIHRvIGl0cyBvYmpmaWxlIHNvCisrCSAgICAgICBpdCBpcyBleHBlY3RlZCB0byBiZSBt YWRlIGNvbnN0YW50IGJ5IENIRUNLX1RZUEVERUYuCisrCSAgICAgICBUWVBFX05PVF9BTExPQ0FU RUQgYW5kIFRZUEVfTk9UX0FTU09DSUFURUQgYXJlIG5vdCB2YWxpZCBmb3IgVFlQRS4KKysJICAg ICAgICovCisrCSAgICBpZiAoISBUWVBFX05PVF9BTExPQ0FURUQgKG5ld190eXBlKQorKwkgICAg ICAgICYmICEgVFlQRV9OT1RfQVNTT0NJQVRFRCAobmV3X3R5cGUpICYmIGhhc19zdGFja19mcmFt ZXMgKCkKKysJICAgICAgICAmJiBkd2FyZl9sb2NsaXN0X2JhdG9uX2V2YWwKKysJCSAgICAgIChU WVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+aGlnaC51LmR3YXJmX2xvY2xpc3QubG9jbGlzdCwK KysJCSAgICAgICBUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+aGlnaC51LmR3YXJmX2xvY2xp c3QudHlwZSwKKysJCSAgICAgICAmYWRkcikpCisrCSAgICAgIFRZUEVfSElHSF9CT1VORCAobmV3 X3R5cGUpID0gYWRkcjsKKysJICAgIGVsc2UKKysJICAgICAgeworKwkJVFlQRV9ISUdIX0JPVU5E IChuZXdfdHlwZSkgPSBUWVBFX0xPV19CT1VORCAobmV3X3R5cGUpIC0gMTsKKysJCVRZUEVfSElH SF9CT1VORF9VTkRFRklORUQgKG5ld190eXBlKSA9IDE7CisrCSAgICAgIH0KKysJICAgIFRZUEVf UkFOR0VfREFUQSAobmV3X3R5cGUpLT5oaWdoLmtpbmQgPSBSQU5HRV9CT1VORF9LSU5EX0NPTlNU QU5UOworKwkgIH0KKysJICBicmVhazsKICsJfQogKwotKyAgICAgIGlmIChUWVBFX0JZVEVfU1RS SURFX0lTX0RXQVJGX0JMT0NLICh0eXBlKSkKKysgICAgICBzd2l0Y2ggKFRZUEVfUkFOR0VfREFU QSAobmV3X3R5cGUpLT5ieXRlX3N0cmlkZS5raW5kKQogKwl7CisrCWNhc2UgUkFOR0VfQk9VTkRf S0lORF9DT05TVEFOVDoKKysJICBicmVhazsKKysJY2FzZSBSQU5HRV9CT1VORF9LSU5EX0RXQVJG X0JMT0NLOgogKwkgIC8qIGBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24nIGlzIHRvbyBib3Vu ZCB0byBpdHMgb2JqZmlsZSBzbwotKwkgICAgIGl0IGlzIGV4cGVjdGVkIHRvIGJlIG1hZGUgY29u c3RhbnQgYnkgQ0hFQ0tfVFlQRURFRi4gICovCi0rCSAgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAo dHlwZSkKLSsJICAgICAgfHwgVFlQRV9OT1RfQVNTT0NJQVRFRCAodHlwZSkpCi0rCSAgICBUWVBF X1JBTkdFX0RBVEEgKG5ld190eXBlKS0+Ynl0ZV9zdHJpZGUudS5kd2FyZl9ibG9jayA9IE5VTEw7 CisrCSAgICAgaXQgaXMgZXhwZWN0ZWQgdG8gYmUgbWFkZSBjb25zdGFudCBieSBDSEVDS19UWVBF REVGLgorKwkgICAgIFRZUEVfTk9UX0FMTE9DQVRFRCBhbmQgVFlQRV9OT1RfQVNTT0NJQVRFRCBh cmUgbm90IHZhbGlkIGZvciBUWVBFLgorKwkgICAgICovCisrCSAgaWYgKFRZUEVfTk9UX0FMTE9D QVRFRCAobmV3X3R5cGUpIHx8IFRZUEVfTk9UX0FTU09DSUFURUQgKG5ld190eXBlKQorKwkgICAg ICB8fCAhIGhhc19zdGFja19mcmFtZXMgKCkpCisrCSAgICBUWVBFX0JZVEVfU1RSSURFIChuZXdf dHlwZSkgPSAwOwogKwkgIGVsc2UKICsJICAgIFRZUEVfQllURV9TVFJJREUgKG5ld190eXBlKSA9 IGR3YXJmX2xvY2V4cHJfYmF0b25fZXZhbAogKwkJCShUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBl KS0+Ynl0ZV9zdHJpZGUudS5kd2FyZl9ibG9jayk7Ci0rCSAgVFlQRV9CWVRFX1NUUklERV9JU19E V0FSRl9CTE9DSyAobmV3X3R5cGUpID0gMDsKKysJICBUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBl KS0+Ynl0ZV9zdHJpZGUua2luZAorKwkgICAgPSBSQU5HRV9CT1VORF9LSU5EX0NPTlNUQU5UOwor KwkgIGJyZWFrOworKwljYXNlIFJBTkdFX0JPVU5EX0tJTkRfRFdBUkZfTE9DTElTVDoKKysJICB7 CisrCSAgICBDT1JFX0FERFIgYWRkciA9IDA7CisrCisrCSAgICAvKiBgc3RydWN0IGR3YXJmMl9s b2NsaXN0X2JhdG9uJyBpcyB0b28gYm91bmQgdG8gaXRzIG9iamZpbGUgc28KKysJICAgICAgIGl0 IGlzIGV4cGVjdGVkIHRvIGJlIG1hZGUgY29uc3RhbnQgYnkgQ0hFQ0tfVFlQRURFRi4KKysJICAg ICAgIFRZUEVfTk9UX0FMTE9DQVRFRCBhbmQgVFlQRV9OT1RfQVNTT0NJQVRFRCBhcmUgbm90IHZh bGlkIGZvciBUWVBFLgorKwkgICAgICAgKi8KKysJICAgIGlmICghIFRZUEVfTk9UX0FMTE9DQVRF RCAobmV3X3R5cGUpCisrCQkmJiAhIFRZUEVfTk9UX0FTU09DSUFURUQgKG5ld190eXBlKSAmJiBo YXNfc3RhY2tfZnJhbWVzICgpKQorKwkgICAgICBkd2FyZl9sb2NsaXN0X2JhdG9uX2V2YWwKKysJ ICAgICAgIChUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+Ynl0ZV9zdHJpZGUudS5kd2FyZl9s b2NsaXN0LmxvY2xpc3QsCisrCQlUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+Ynl0ZV9zdHJp ZGUudS5kd2FyZl9sb2NsaXN0LnR5cGUsCisrCQkmYWRkcik7CisrCSAgICBUWVBFX0JZVEVfU1RS SURFIChuZXdfdHlwZSkgPSBhZGRyOworKwkgICAgVFlQRV9SQU5HRV9EQVRBIChuZXdfdHlwZSkt PmJ5dGVfc3RyaWRlLmtpbmQKKysJICAgICAgPSBSQU5HRV9CT1VORF9LSU5EX0NPTlNUQU5UOwor KwkgIH0KKysJICBicmVhazsKICsJfQogKwogKyAgICAgIC8qIENvbnZlcnQgVFlQRV9SQU5HRV9I SUdIX0JPVU5EX0lTX0NPVU5UIGludG8gYSByZWd1bGFyIGJvdW5kLiAgKi8KLSsgICAgICBpZiAo VFlQRV9SQU5HRV9ISUdIX0JPVU5EX0lTX0NPVU5UICh0eXBlKSkKKysgICAgICBpZiAoVFlQRV9S QU5HRV9ISUdIX0JPVU5EX0lTX0NPVU5UIChuZXdfdHlwZSkpCiArCXsKLSsJICBUWVBFX0hJR0hf Qk9VTkQgKG5ld190eXBlKSA9IFRZUEVfTE9XX0JPVU5EICh0eXBlKQotKwkJCQkgICAgICAgKyBU WVBFX0hJR0hfQk9VTkQgKHR5cGUpIC0gMTsKKysJICBUWVBFX0hJR0hfQk9VTkQgKG5ld190eXBl KSA9IFRZUEVfTE9XX0JPVU5EIChuZXdfdHlwZSkKKysJCQkJICAgICAgICsgVFlQRV9ISUdIX0JP VU5EIChuZXdfdHlwZSkgLSAxOwogKwkgIFRZUEVfUkFOR0VfSElHSF9CT1VORF9JU19DT1VOVCAo bmV3X3R5cGUpID0gMDsKICsJfQogICAgICB9CkBAIC03MzUwLDcgKzc5NzMsNyBAQCBpbmRleCA0 Njg0NmM0Li5iZjZlODkxIDEwMDY0NAogICAgLyogTWF5YmUgY29weSB0aGUgdHlwZV9zcGVjaWZp YyBiaXRzLgogIAogICAgICAgTk9URSBkcm93LzIwMDUtMTItMDk6IFdlIGRvIG5vdCBjb3B5IHRo ZSBDKystc3BlY2lmaWMgYml0cyBsaWtlCi1AQCAtMzEzMCw2ICszNDAyLDE3IEBAIGNvcHlfdHlw ZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTMxMzAsNiArMzQ5Niwx NyBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIHJl dHVybiBuZXdfdHlwZTsKICB9CiAgCkBAIC03MzY4LDcgKzc5OTEsNyBAQCBpbmRleCA0Njg0NmM0 Li5iZjZlODkxIDEwMDY0NAogIC8qIE1ha2UgYSBjb3B5IG9mIHRoZSBnaXZlbiBUWVBFLCBleGNl cHQgdGhhdCB0aGUgcG9pbnRlciAmIHJlZmVyZW5jZQogICAgIHR5cGVzIGFyZSBub3QgcHJlc2Vy dmVkLgogICAgIAotQEAgLTMxNTIsNiArMzQzNSwyMTEgQEAgY29weV90eXBlIChjb25zdCBzdHJ1 Y3QgdHlwZSAqdHlwZSkKK0BAIC0zMTUyLDYgKzM1MjksMjExIEBAIGNvcHlfdHlwZSAoY29uc3Qg c3RydWN0IHR5cGUgKnR5cGUpCiAgICByZXR1cm4gbmV3X3R5cGU7CiAgfQogIApAQCAtNzU4MCw3 ICs4MjAzLDcgQEAgaW5kZXggNDY4NDZjNC4uYmY2ZTg5MSAxMDA2NDQKICAKICAvKiBIZWxwZXIg ZnVuY3Rpb25zIHRvIGluaXRpYWxpemUgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHR5cGVzLiAgKi8K ICAKLUBAIC0zNDc1LDYgKzM5NjMsOCBAQCBnZGJ0eXBlc19wb3N0X2luaXQgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoKQorQEAgLTM0NzUsNiArNDA1Nyw4IEBAIGdkYnR5cGVzX3Bvc3RfaW5pdCAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCiAgICAgID0gbG9va3VwX3BvaW50ZXJfdHlwZSAoYnVp bHRpbl90eXBlLT5idWlsdGluX3ZvaWQpOwogICAgYnVpbHRpbl90eXBlLT5idWlsdGluX2Z1bmNf cHRyCiAgICAgID0gbG9va3VwX3BvaW50ZXJfdHlwZSAobG9va3VwX2Z1bmN0aW9uX3R5cGUgKGJ1 aWx0aW5fdHlwZS0+YnVpbHRpbl92b2lkKSk7CkBAIC03NTg5LDcgKzgyMTIsNyBAQCBpbmRleCA0 Njg0NmM0Li5iZjZlODkxIDEwMDY0NAogIAogICAgLyogVGhpcyB0eXBlIHJlcHJlc2VudHMgYSBH REIgaW50ZXJuYWwgZnVuY3Rpb24uICAqLwogICAgYnVpbHRpbl90eXBlLT5pbnRlcm5hbF9mbgot QEAgLTM1ODgsNiArNDA3OCwxMSBAQCBvYmpmaWxlX3R5cGUgKHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlKQorQEAgLTM1ODgsNiArNDE3MiwxMSBAQCBvYmpmaWxlX3R5cGUgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlKQogIAkJICI8dGV4dCB2YXJpYWJsZSwgbm8gZGVidWcgaW5mbz4iLCBvYmpmaWxl KTsKICAgIFRZUEVfVEFSR0VUX1RZUEUgKG9iamZpbGVfdHlwZS0+bm9kZWJ1Z190ZXh0X3N5bWJv bCkKICAgICAgPSBvYmpmaWxlX3R5cGUtPmJ1aWx0aW5faW50OwpAQCAtNzYwMSw3ICs4MjI0LDcg QEAgaW5kZXggNDY4NDZjNC4uYmY2ZTg5MSAxMDA2NDQKICAgIG9iamZpbGVfdHlwZS0+bm9kZWJ1 Z19kYXRhX3N5bWJvbAogICAgICA9IGluaXRfdHlwZSAoVFlQRV9DT0RFX0lOVCwKICAJCSBnZGJh cmNoX2ludF9iaXQgKGdkYmFyY2gpIC8gSE9TVF9DSEFSX0JJVCwgMCwKLUBAIC0zNjQyLDYgKzQx MzcsMTEgQEAgdm9pZAorQEAgLTM2NDIsNiArNDIzMSwxMSBAQCB2b2lkCiAgX2luaXRpYWxpemVf Z2RidHlwZXMgKHZvaWQpCiAgewogICAgZ2RidHlwZXNfZGF0YSA9IGdkYmFyY2hfZGF0YV9yZWdp c3Rlcl9wb3N0X2luaXQgKGdkYnR5cGVzX3Bvc3RfaW5pdCk7CkBAIC03NjE0LDcgKzgyMzcsNyBA QCBpbmRleCA0Njg0NmM0Li5iZjZlODkxIDEwMDY0NAogIAogICAgYWRkX3NldHNob3dfemludGVn ZXJfY21kICgib3ZlcmxvYWQiLCBub19jbGFzcywgJm92ZXJsb2FkX2RlYnVnLCBfKCJcCiBkaWZm IC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9nZGIvZ2RidHlwZXMuaAotaW5kZXggNjQzZmEwMy4u NjM4MWRjZiAxMDA2NDQKK2luZGV4IDY0M2ZhMDMuLmVmZTU1MTIgMTAwNjQ0CiAtLS0gYS9nZGIv Z2RidHlwZXMuaAogKysrIGIvZ2RiL2dkYnR5cGVzLmgKIEBAIC0xMzgsNiArMTM4LDggQEAgZW51 bSB0eXBlX2NvZGUKQEAgLTc3NzIsNyArODM5NSw3IEBAIGluZGV4IDY0M2ZhMDMuLjYzODFkY2Yg MTAwNjQ0CiAgICAgICAgfQogICAgICAgIGxvYzsKICAKLUBAIC01NDQsMTMgKzYxNSwyMiBAQCBz dHJ1Y3QgbWFpbl90eXBlCitAQCAtNTQ0LDEzICs2MTUsMzQgQEAgc3RydWN0IG1haW5fdHlwZQog IAogICAgICBzdHJ1Y3QgcmFuZ2VfYm91bmRzCiAgICAgIHsKQEAgLTc3ODAsMTEgKzg0MDMsMjMg QEAgaW5kZXggNjQzZmEwMy4uNjM4MWRjZiAxMDA2NDQKICsJewogKwkgIHVuaW9uCiArCSAgICB7 Ci0rCSAgICAgIHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiAqZHdhcmZfYmxvY2s7CiArCSAg ICAgIExPTkdFU1QgY29uc3RhbnQ7CisrCSAgICAgIHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRv biAqZHdhcmZfYmxvY2s7CisrCSAgICAgIHN0cnVjdAorKwkJeworKwkJICBzdHJ1Y3QgZHdhcmYy X2xvY2xpc3RfYmF0b24gKmxvY2xpc3Q7CisrCQkgIHN0cnVjdCB0eXBlICp0eXBlOworKwkJfQor KwkgICAgICBkd2FyZl9sb2NsaXN0OwogKwkgICAgfQogKwkgIHU7Ci0rCSAgdW5zaWduZWQgaXNf ZHdhcmZfYmxvY2sgOiAxOworKwkgIGVudW0gcmFuZ2VfYm91bmRfa2luZAorKwkgICAgeworKwkg ICAgICBSQU5HRV9CT1VORF9LSU5EX0NPTlNUQU5ULAorKwkgICAgICBSQU5HRV9CT1VORF9LSU5E X0RXQVJGX0JMT0NLLAorKwkgICAgICBSQU5HRV9CT1VORF9LSU5EX0RXQVJGX0xPQ0xJU1QKKysJ ICAgIH0KKysJICBraW5kOwogKwl9CiAgICAgICAgLyogTG93IGJvdW5kIG9mIHJhbmdlLiAqLwog LQpAQCAtNzgwMCw3ICs4NDM1LDcgQEAgaW5kZXggNjQzZmEwMy4uNjM4MWRjZiAxMDA2NDQKICAK ICAgICAgICAvKiBGbGFncyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHZhbHVlcyBvZiBsb3cgYW5k IGhpZ2ggYXJlCiAgICAgICAgICAgdmFsaWQuICBXaGVuIHRydWUsIHRoZSByZXNwZWN0aXZlIHJh bmdlIHZhbHVlIGlzCi1AQCAtNjAyLDYgKzY4Miw5IEBAIHN0cnVjdCBtYWluX3R5cGUKK0BAIC02 MDIsNiArNjk0LDkgQEAgc3RydWN0IG1haW5fdHlwZQogICAgICAgICBzdXBwb3J0aW5nIG11bHRp cGxlIEFCSXMuICBSaWdodCBub3cgdGhpcyBpcyBvbmx5IGZldGNoZWQgZnJvbQogICAgICAgICB0 aGUgRHdhcmYtMiBEV19BVF9jYWxsaW5nX2NvbnZlbnRpb24gYXR0cmlidXRlLiAgKi8KICAgICAg dW5zaWduZWQgY2FsbGluZ19jb252ZW50aW9uOwpAQCAtNzgxMCw3ICs4NDQ1LDcgQEAgaW5kZXgg NjQzZmEwMy4uNjM4MWRjZiAxMDA2NDQKICAgIH0gdHlwZV9zcGVjaWZpYzsKICB9OwogIAotQEAg LTgzOCwxMyArOTIxLDYgQEAgc3RydWN0IGNwbHVzX3N0cnVjdF90eXBlCitAQCAtODM4LDEzICs5 MzMsNiBAQCBzdHJ1Y3QgY3BsdXNfc3RydWN0X3R5cGUKICAgICAgaW50IGlzX2R5bmFtaWMgOiAy OwogICAgfTsKICAKQEAgLTc4MjQsNyArODQ1OSw3IEBAIGluZGV4IDY0M2ZhMDMuLjYzODFkY2Yg MTAwNjQ0CiAgLyogU3RydWN0IHVzZWQgZm9yIHJhbmtpbmcgYSBmdW5jdGlvbiBmb3Igb3Zlcmxv YWQgcmVzb2x1dGlvbiAqLwogIHN0cnVjdCBiYWRuZXNzX3ZlY3RvcgogICAgewotQEAgLTg5OSw5 ICs5NzUsOSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlw ZSAqKTsKK0BAIC04OTksOSArOTg3LDkgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhf dHlwZSAoc3RydWN0IHR5cGUgKik7CiAgI2RlZmluZSBUWVBFX1BPSU5URVJfVFlQRSh0aGlzdHlw ZSkgKHRoaXN0eXBlKS0+cG9pbnRlcl90eXBlCiAgI2RlZmluZSBUWVBFX1JFRkVSRU5DRV9UWVBF KHRoaXN0eXBlKSAodGhpc3R5cGUpLT5yZWZlcmVuY2VfdHlwZQogICNkZWZpbmUgVFlQRV9DSEFJ Tih0aGlzdHlwZSkgKHRoaXN0eXBlKS0+Y2hhaW4KQEAgLTc4MzcsNyArODQ3Miw3IEBAIGluZGV4 IDY0M2ZhMDMuLjYzODFkY2YgMTAwNjQ0CiAgICAgY2FsbHMgY2hlY2tfdHlwZWRlZiwgVFlQRV9M RU5HVEggKFZBTFVFX1RZUEUgKFgpKSBpcyBzYWZlLiAgKi8KICAjZGVmaW5lIFRZUEVfTEVOR1RI KHRoaXN0eXBlKSAodGhpc3R5cGUpLT5sZW5ndGgKICAvKiBOb3RlIHRoYXQgVFlQRV9DT0RFIGNh biBiZSBUWVBFX0NPREVfVFlQRURFRiwgc28gaWYgeW91IHdhbnQgdGhlIHJlYWwKLUBAIC05MTAs MTUgKzk4NiwyNiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3Qg dHlwZSAqKTsKK0BAIC05MTAsMTEgKzk5OCwxNiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0 X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAjZGVmaW5lIFRZUEVfTkZJRUxEUyh0aGlzdHlw ZSkgVFlQRV9NQUlOX1RZUEUodGhpc3R5cGUpLT5uZmllbGRzCiAgI2RlZmluZSBUWVBFX0ZJRUxE Uyh0aGlzdHlwZSkgVFlQRV9NQUlOX1RZUEUodGhpc3R5cGUpLT5mbGRzX2JuZHMuZmllbGRzCiAg I2RlZmluZSBUWVBFX1RFTVBMQVRFX0FSR1ModGhpc3R5cGUpIFRZUEVfQ1BMVVNfU1BFQ0lGSUMo dGhpc3R5cGUpLT50ZW1wbGF0ZV9hcmdzCkBAIC03ODU2LDI2ICs4NDkxLDcgQEAgaW5kZXggNjQz ZmEwMy4uNjM4MWRjZiAxMDA2NDQKICAjZGVmaW5lIFRZUEVfTE9XX0JPVU5EX1VOREVGSU5FRChy YW5nZV90eXBlKSBcCiAgICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5sb3dfdW5kZWZp bmVkCiAgI2RlZmluZSBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEKHJhbmdlX3R5cGUpIFwKLSAg ICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPmhpZ2hfdW5kZWZpbmVkCi0rI2RlZmluZSBU WVBFX0xPV19CT1VORF9JU19EV0FSRl9CTE9DSyhyYW5nZV90eXBlKSBcCi0rICAgVFlQRV9SQU5H RV9EQVRBKHJhbmdlX3R5cGUpLT5sb3cuaXNfZHdhcmZfYmxvY2sKLSsjZGVmaW5lIFRZUEVfSElH SF9CT1VORF9JU19EV0FSRl9CTE9DSyhyYW5nZV90eXBlKSBcCi0rICAgVFlQRV9SQU5HRV9EQVRB KHJhbmdlX3R5cGUpLT5oaWdoLmlzX2R3YXJmX2Jsb2NrCi0rI2RlZmluZSBUWVBFX0JZVEVfU1RS SURFX0lTX0RXQVJGX0JMT0NLKHJhbmdlX3R5cGUpIFwKLSsgICBUWVBFX1JBTkdFX0RBVEEocmFu Z2VfdHlwZSktPmJ5dGVfc3RyaWRlLmlzX2R3YXJmX2Jsb2NrCi0gCi0gLyogTW90by1zcGVjaWZp YyBzdHVmZiBmb3IgRk9SVFJBTiBhcnJheXMgKi8KLSAKLUBAIC05MjcsMTEgKzEwMTQsMjMgQEAg ZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKik7Ci0gI2Rl ZmluZSBUWVBFX0FSUkFZX0xPV0VSX0JPVU5EX0lTX1VOREVGSU5FRChhcnJheXR5cGUpIFwKLSAg ICBUWVBFX0xPV19CT1VORF9VTkRFRklORUQoVFlQRV9JTkRFWF9UWVBFKGFycmF5dHlwZSkpCi0g Ci0rI2RlZmluZSBUWVBFX0FSUkFZX1VQUEVSX0JPVU5EX0lTX0RXQVJGX0JMT0NLKGFycmF5dHlw ZSkgXAotKyAgIFRZUEVfSElHSF9CT1VORF9JU19EV0FSRl9CTE9DSyhUWVBFX0lOREVYX1RZUEUo YXJyYXl0eXBlKSkKLSsjZGVmaW5lIFRZUEVfQVJSQVlfTE9XRVJfQk9VTkRfSVNfRFdBUkZfQkxP Q0soYXJyYXl0eXBlKSBcCi0rICAgVFlQRV9MT1dfQk9VTkRfSVNfRFdBUkZfQkxPQ0soVFlQRV9J TkRFWF9UWVBFKGFycmF5dHlwZSkpCi0rCi0gI2RlZmluZSBUWVBFX0FSUkFZX1VQUEVSX0JPVU5E X1ZBTFVFKGFycmF5dHlwZSkgXAorQEAgLTkzMSw3ICsxMDI0LDE0IEBAIGV4dGVybiB2b2lkIGFs bG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICopOwogICAgIChUWVBFX0hJR0hfQk9V TkQoVFlQRV9JTkRFWF9UWVBFKChhcnJheXR5cGUpKSkpCiAgCiAgI2RlZmluZSBUWVBFX0FSUkFZ X0xPV0VSX0JPVU5EX1ZBTFVFKGFycmF5dHlwZSkgXApAQCAtNzg5MSw3ICs4NTA3LDcgQEAgaW5k ZXggNjQzZmEwMy4uNjM4MWRjZiAxMDA2NDQKICAKICAvKiBDKysgKi8KICAKLUBAIC05NTksNiAr MTA1OCw3IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBl ICopOworQEAgLTk1OSw2ICsxMDU5LDcgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhf dHlwZSAoc3RydWN0IHR5cGUgKik7CiAgI2RlZmluZSBUWVBFX0dOQVRfU1BFQ0lGSUModGhpc3R5 cGUpIFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBlKS0+dHlwZV9zcGVjaWZpYy5nbmF0X3N0dWZmCiAg I2RlZmluZSBUWVBFX0RFU0NSSVBUSVZFX1RZUEUodGhpc3R5cGUpIFRZUEVfR05BVF9TUEVDSUZJ Qyh0aGlzdHlwZSktPmRlc2NyaXB0aXZlX3R5cGUKICAjZGVmaW5lIFRZUEVfQ0FMTElOR19DT05W RU5USU9OKHRoaXN0eXBlKSBUWVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPnR5cGVfc3BlY2lmaWMu Y2FsbGluZ19jb252ZW50aW9uCkBAIC03ODk5LDcgKzg1MTUsNyBAQCBpbmRleCA2NDNmYTAzLi42 MzgxZGNmIDEwMDY0NAogICNkZWZpbmUgVFlQRV9CQVNFQ0xBU1ModGhpc3R5cGUsaW5kZXgpIFRZ UEVfRklFTERfVFlQRSh0aGlzdHlwZSwgaW5kZXgpCiAgI2RlZmluZSBUWVBFX05fQkFTRUNMQVNT RVModGhpc3R5cGUpIFRZUEVfQ1BMVVNfU1BFQ0lGSUModGhpc3R5cGUpLT5uX2Jhc2VjbGFzc2Vz CiAgI2RlZmluZSBUWVBFX0JBU0VDTEFTU19OQU1FKHRoaXN0eXBlLGluZGV4KSBUWVBFX0ZJRUxE X05BTUUodGhpc3R5cGUsIGluZGV4KQotQEAgLTk3Nyw3ICsxMDc3LDYgQEAgZXh0ZXJuIHZvaWQg YWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKik7CitAQCAtOTc3LDcgKzEwNzgs NiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsK ICAjZGVmaW5lIEZJRUxEX0JJVFBPUyh0aGlzZmxkKSAoKHRoaXNmbGQpLmxvYy5iaXRwb3MpCiAg I2RlZmluZSBGSUVMRF9TVEFUSUNfUEhZU05BTUUodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2MucGh5 c25hbWUpCiAgI2RlZmluZSBGSUVMRF9TVEFUSUNfUEhZU0FERFIodGhpc2ZsZCkgKCh0aGlzZmxk KS5sb2MucGh5c2FkZHIpCkBAIC03OTA3LDcgKzg1MjMsNyBAQCBpbmRleCA2NDNmYTAzLi42Mzgx ZGNmIDEwMDY0NAogICNkZWZpbmUgU0VUX0ZJRUxEX0JJVFBPUyh0aGlzZmxkLCBiaXRwb3MpCQkJ XAogICAgKEZJRUxEX0xPQ19LSU5EICh0aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5EX0JJVFBPUywJ CVwKICAgICBGSUVMRF9CSVRQT1MgKHRoaXNmbGQpID0gKGJpdHBvcykpCi1AQCAtOTg3LDkgKzEw ODYsNiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAq KTsKK0BAIC05ODcsOSArMTA4Nyw2IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5 cGUgKHN0cnVjdCB0eXBlICopOwogICNkZWZpbmUgU0VUX0ZJRUxEX1BIWVNBRERSKHRoaXNmbGQs IGFkZHIpCQkJXAogICAgKEZJRUxEX0xPQ19LSU5EICh0aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5E X1BIWVNBRERSLAkJXAogICAgIEZJRUxEX1NUQVRJQ19QSFlTQUREUiAodGhpc2ZsZCkgPSAoYWRk cikpCkBAIC03OTE3LDcgKzg1MzMsNyBAQCBpbmRleCA2NDNmYTAzLi42MzgxZGNmIDEwMDY0NAog ICNkZWZpbmUgRklFTERfQVJUSUZJQ0lBTCh0aGlzZmxkKSAoKHRoaXNmbGQpLmFydGlmaWNpYWwp CiAgI2RlZmluZSBGSUVMRF9CSVRTSVpFKHRoaXNmbGQpICgodGhpc2ZsZCkuYml0c2l6ZSkKICAK LUBAIC0xMDAwLDcgKzEwOTYsNiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBl IChzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xMDAwLDcgKzEwOTcsNiBAQCBleHRlcm4gdm9pZCBhbGxv Y2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAjZGVmaW5lIFRZUEVfRklFTERf QklUUE9TKHRoaXN0eXBlLCBuKSBGSUVMRF9CSVRQT1MgKFRZUEVfRklFTEQgKHRoaXN0eXBlLCBu KSkKICAjZGVmaW5lIFRZUEVfRklFTERfU1RBVElDX1BIWVNOQU1FKHRoaXN0eXBlLCBuKSBGSUVM RF9TVEFUSUNfUEhZU05BTUUgKFRZUEVfRklFTEQgKHRoaXN0eXBlLCBuKSkKICAjZGVmaW5lIFRZ UEVfRklFTERfU1RBVElDX1BIWVNBRERSKHRoaXN0eXBlLCBuKSBGSUVMRF9TVEFUSUNfUEhZU0FE RFIgKFRZUEVfRklFTEQgKHRoaXN0eXBlLCBuKSkKQEAgLTc5MjUsNyArODU0MSw3IEBAIGluZGV4 IDY0M2ZhMDMuLjYzODFkY2YgMTAwNjQ0CiAgI2RlZmluZSBUWVBFX0ZJRUxEX0FSVElGSUNJQUwo dGhpc3R5cGUsIG4pIEZJRUxEX0FSVElGSUNJQUwoVFlQRV9GSUVMRCh0aGlzdHlwZSxuKSkKICAj ZGVmaW5lIFRZUEVfRklFTERfQklUU0laRSh0aGlzdHlwZSwgbikgRklFTERfQklUU0laRShUWVBF X0ZJRUxEKHRoaXN0eXBlLG4pKQogICNkZWZpbmUgVFlQRV9GSUVMRF9QQUNLRUQodGhpc3R5cGUs IG4pIChGSUVMRF9CSVRTSVpFKFRZUEVfRklFTEQodGhpc3R5cGUsbikpIT0wKQotQEAgLTExMzks NiArMTIzNCwxMCBAQCBzdHJ1Y3QgYnVpbHRpbl90eXBlCitAQCAtMTEzOSw2ICsxMjM1LDEwIEBA IHN0cnVjdCBidWlsdGluX3R5cGUKICAgICAgICgqKSAoKSBjYW4gc2VydmVyIGFzIGEgZ2VuZXJp YyBmdW5jdGlvbiBwb2ludGVyLiAgKi8KICAgIHN0cnVjdCB0eXBlICpidWlsdGluX2Z1bmNfcHRy OwogIApAQCAtNzkzNiw3ICs4NTUyLDcgQEAgaW5kZXggNjQzZmEwMy4uNjM4MWRjZiAxMDA2NDQK ICAKICAgIC8qIFNwZWNpYWwtcHVycG9zZSB0eXBlcy4gICovCiAgCi1AQCAtMTE3OSw2ICsxMjc4 LDcgQEAgc3RydWN0IG9iamZpbGVfdHlwZQorQEAgLTExNzksNiArMTI3OSw3IEBAIHN0cnVjdCBv YmpmaWxlX3R5cGUKICAKICAgIC8qIFR5cGVzIHVzZWQgZm9yIHN5bWJvbHMgd2l0aCBubyBkZWJ1 ZyBpbmZvcm1hdGlvbi4gICovCiAgICBzdHJ1Y3QgdHlwZSAqbm9kZWJ1Z190ZXh0X3N5bWJvbDsK QEAgLTc5NDQsNyArODU2MCw3IEBAIGluZGV4IDY0M2ZhMDMuLjYzODFkY2YgMTAwNjQ0CiAgICBz dHJ1Y3QgdHlwZSAqbm9kZWJ1Z19kYXRhX3N5bWJvbDsKICAgIHN0cnVjdCB0eXBlICpub2RlYnVn X3Vua25vd25fc3ltYm9sOwogICAgc3RydWN0IHR5cGUgKm5vZGVidWdfdGxzX3N5bWJvbDsKLUBA IC0xMzMzLDYgKzE0MzMsMTggQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlw ZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKK0BAIC0xMzMzLDYgKzE0MzQsMTggQEAg ZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3Ry dWN0IHR5cGUgKiwKICAJCQkJICAgICAgIHN0cnVjdCB0eXBlICopOwogIGV4dGVybiBzdHJ1Y3Qg dHlwZSAqbG9va3VwX2FycmF5X3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsK ICAKQEAgLTc5NjMsNyArODU3OSw3IEBAIGluZGV4IDY0M2ZhMDMuLjYzODFkY2YgMTAwNjQ0CiAg ZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfc3RyaW5nX3R5cGUgKHN0cnVjdCB0eXBlICosIHN0 cnVjdCB0eXBlICosCiAgCQkJCQlzdHJ1Y3QgdHlwZSAqKTsKICBleHRlcm4gc3RydWN0IHR5cGUg Kmxvb2t1cF9zdHJpbmdfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwgaW50LCBpbnQpOwotQEAg LTEzNzUsNiArMTQ4Nyw4IEBAIGV4dGVybiBpbnQgaXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3Qg dHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xMzc1LDYgKzE0ODgsOCBAQCBleHRlcm4gaW50 IGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKik7CiAgCiAg ZXh0ZXJuIGludCBpc191bmlxdWVfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB2YWx1 ZSAqKTsKICAKQEAgLTc5NzIsNyArODU4OCw3IEBAIGluZGV4IDY0M2ZhMDMuLjYzODFkY2YgMTAw NjQ0CiAgLyogT3ZlcmxvYWQgcmVzb2x1dGlvbiAqLwogIAogICNkZWZpbmUgTEVOR1RIX01BVENI KGJ2KSAoKGJ2KS0+cmFua1swXSkKLUBAIC0xNDM3LDEwICsxNTUxLDExIEBAIGV4dGVybiB2b2lk IG1haW50ZW5hbmNlX3ByaW50X3R5cGUgKGNoYXIgKiwgaW50KTsKK0BAIC0xNDM3LDEwICsxNTUy LDExIEBAIGV4dGVybiB2b2lkIG1haW50ZW5hbmNlX3ByaW50X3R5cGUgKGNoYXIgKiwgaW50KTsK ICAKICBleHRlcm4gaHRhYl90IGNyZWF0ZV9jb3BpZWRfdHlwZXNfaGFzaCAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUpOwogIApAQCAtODI1OCwxMCArODg3NCwxMCBAQCBpbmRleCBlNjQyODk0Li42 YWM5NWNjIDEwMDY0NAogICAgICB9CiAgICBlbHNlIGlmIChjb2RlID09IFRZUEVfQ09ERV9JTlQp CiBkaWZmIC0tZ2l0IGEvZ2RiL2luZmNtZC5jIGIvZ2RiL2luZmNtZC5jCi1pbmRleCBmOTlhNGFl Li41NTk5OTA4IDEwMDY0NAoraW5kZXggMjljZjQyNy4uMGVjNTk4ZSAxMDA2NDQKIC0tLSBhL2dk Yi9pbmZjbWQuYwogKysrIGIvZ2RiL2luZmNtZC5jCi1AQCAtODA2LDcgKzgwNiw3IEBAIG5leHRp X2NvbW1hbmQgKGNoYXIgKmNvdW50X3N0cmluZywgaW50IGZyb21fdHR5KQorQEAgLTgwOCw3ICs4 MDgsNyBAQCBuZXh0aV9jb21tYW5kIChjaGFyICpjb3VudF9zdHJpbmcsIGludCBmcm9tX3R0eSkK ICAgIHN0ZXBfMSAoMSwgMSwgY291bnRfc3RyaW5nKTsKICB9CiAgCkBAIC04MjcwLDcgKzg4ODYs NyBAQCBpbmRleCBmOTlhNGFlLi41NTk5OTA4IDEwMDY0NAogIGRlbGV0ZV9sb25nam1wX2JyZWFr cG9pbnRfY2xlYW51cCAodm9pZCAqYXJnKQogIHsKICAgIGludCB0aHJlYWQgPSAqIChpbnQgKikg YXJnOwotQEAgLTg0NiwxMCArODQ2LDEzIEBAIHN0ZXBfMSAoaW50IHNraXBfc3Vicm91dGluZXMs IGludCBzaW5nbGVfaW5zdCwgY2hhciAqY291bnRfc3RyaW5nKQorQEAgLTg0OCwxMCArODQ4LDEz IEBAIHN0ZXBfMSAoaW50IHNraXBfc3Vicm91dGluZXMsIGludCBzaW5nbGVfaW5zdCwgY2hhciAq Y291bnRfc3RyaW5nKQogIAogICAgaWYgKCFzaW5nbGVfaW5zdCB8fCBza2lwX3N1YnJvdXRpbmVz KQkJLyogbGVhdmUgc2kgY29tbWFuZCBhbG9uZSAqLwogICAgICB7CkBAIC04Mjg0LDcgKzg5MDAs NyBAQCBpbmRleCBmOTlhNGFlLi41NTk5OTA4IDEwMDY0NAogIAogICAgICAgIG1ha2VfY2xlYW51 cCAoZGVsZXRlX2xvbmdqbXBfYnJlYWtwb2ludF9jbGVhbnVwLCAmdGhyZWFkKTsKICAgICAgfQot QEAgLTExOTgsNiArMTIwMSwxNSBAQCBzaWduYWxfY29tbWFuZCAoY2hhciAqc2lnbnVtX2V4cCwg aW50IGZyb21fdHR5KQorQEAgLTEyMDAsNiArMTIwMywxNSBAQCBzaWduYWxfY29tbWFuZCAoY2hh ciAqc2lnbnVtX2V4cCwgaW50IGZyb21fdHR5KQogICAgcHJvY2VlZCAoKENPUkVfQUREUikgLTEs IG91cnNpZywgMCk7CiAgfQogIApAQCAtODMwMCw3ICs4OTE2LDcgQEAgaW5kZXggZjk5YTRhZS4u NTU5OTkwOCAxMDA2NDQKICAvKiBQcm9jZWVkIHVudGlsIHdlIHJlYWNoIGEgZGlmZmVyZW50IHNv dXJjZSBsaW5lIHdpdGggcGMgZ3JlYXRlciB0aGFuCiAgICAgb3VyIGN1cnJlbnQgb25lIG9yIGV4 aXQgdGhlIGZ1bmN0aW9uLiAgV2Ugc2tpcCBjYWxscyBpbiBib3RoIGNhc2VzLgogIAotQEAgLTEy MTQsNiArMTIyNiw4IEBAIHVudGlsX25leHRfY29tbWFuZCAoaW50IGZyb21fdHR5KQorQEAgLTEy MTYsNiArMTIyOCw4IEBAIHVudGlsX25leHRfY29tbWFuZCAoaW50IGZyb21fdHR5KQogICAgc3Ry dWN0IHN5bWJvbCAqZnVuYzsKICAgIHN0cnVjdCBzeW10YWJfYW5kX2xpbmUgc2FsOwogICAgc3Ry dWN0IHRocmVhZF9pbmZvICp0cCA9IGluZmVyaW9yX3RocmVhZCAoKTsKQEAgLTgzMDksNyArODky NSw3IEBAIGluZGV4IGY5OWE0YWUuLjU1OTk5MDggMTAwNjQ0CiAgCiAgICBjbGVhcl9wcm9jZWVk X3N0YXR1cyAoKTsKICAgIHNldF9zdGVwX2ZyYW1lICgpOwotQEAgLTEyNDksNyArMTI2MywxOSBA QCB1bnRpbF9uZXh0X2NvbW1hbmQgKGludCBmcm9tX3R0eSkKK0BAIC0xMjUxLDcgKzEyNjUsMTkg QEAgdW50aWxfbmV4dF9jb21tYW5kIChpbnQgZnJvbV90dHkpCiAgCiAgICB0cC0+c3RlcF9tdWx0 aSA9IDA7CQkvKiBPbmx5IG9uZSBjYWxsIHRvIHByb2NlZWQgKi8KICAKQEAgLTgzMjksNyArODk0 NSw3IEBAIGluZGV4IGY5OWE0YWUuLjU1OTk5MDggMTAwNjQ0CiAgfQogIAogIHN0YXRpYyB2b2lk Ci1AQCAtMTQyNiw2ICsxNDUyLDcgQEAgZmluaXNoX2NvbW1hbmRfY29udGludWF0aW9uICh2b2lk ICphcmcpCitAQCAtMTQyOCw2ICsxNDU0LDcgQEAgZmluaXNoX2NvbW1hbmRfY29udGludWF0aW9u ICh2b2lkICphcmcpCiAgICBpZiAoYnMgIT0gTlVMTCAmJiB0cC0+cHJvY2VlZF90b19maW5pc2gp CiAgICAgIG9ic2VydmVyX25vdGlmeV9ub3JtYWxfc3RvcCAoYnMsIDEgLyogcHJpbnQgZnJhbWUg Ki8pOwogICAgZGVsZXRlX2JyZWFrcG9pbnQgKGEtPmJyZWFrcG9pbnQpOwpAQCAtODMzNyw3ICs4 OTUzLDcgQEAgaW5kZXggZjk5YTRhZS4uNTU5OTkwOCAxMDA2NDQKICB9CiAgCiAgc3RhdGljIHZv aWQKLUBAIC0xNTA5LDYgKzE1MzYsNyBAQCBmaW5pc2hfZm9yd2FyZCAoc3RydWN0IHN5bWJvbCAq ZnVuY3Rpb24sIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKK0BAIC0xNTExLDYgKzE1MzgsNyBA QCBmaW5pc2hfZm9yd2FyZCAoc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24sIHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSkKICAgIHN0cnVjdCBicmVha3BvaW50ICpicmVha3BvaW50OwogICAgc3RydWN0 IGNsZWFudXAgKm9sZF9jaGFpbjsKICAgIHN0cnVjdCBmaW5pc2hfY29tbWFuZF9jb250aW51YXRp b25fYXJncyAqY2FyZ3M7CkBAIC04MzQ1LDcgKzg5NjEsNyBAQCBpbmRleCBmOTlhNGFlLi41NTk5 OTA4IDEwMDY0NAogIAogICAgc2FsID0gZmluZF9wY19saW5lIChnZXRfZnJhbWVfcGMgKGZyYW1l KSwgMCk7CiAgICBzYWwucGMgPSBnZXRfZnJhbWVfcGMgKGZyYW1lKTsKLUBAIC0xNTE5LDYgKzE1 NDcsMTAgQEAgZmluaXNoX2ZvcndhcmQgKHN0cnVjdCBzeW1ib2wgKmZ1bmN0aW9uLCBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWUpCitAQCAtMTUyMSw2ICsxNTQ5LDEwIEBAIGZpbmlzaF9mb3J3YXJk IChzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQogIAog ICAgb2xkX2NoYWluID0gbWFrZV9jbGVhbnVwX2RlbGV0ZV9icmVha3BvaW50IChicmVha3BvaW50 KTsKICAKQEAgLTgzNzAsNyArODk4Niw3IEBAIGluZGV4IGU1NTdkNmMuLmQ0YWUxZGYgMTAwNjQ0 CiAgCiAgZXh0ZXJuIHZvaWQgbm90aWNlX25ld19pbmZlcmlvciAocHRpZF90LCBpbnQsIGludCk7 CiBkaWZmIC0tZ2l0IGEvZ2RiL2luZnJ1bi5jIGIvZ2RiL2luZnJ1bi5jCi1pbmRleCA4MzA3OTg2 Li5iNDExMGE4IDEwMDY0NAoraW5kZXggOWE1YzNhOC4uZWQyZjUzMCAxMDA2NDQKIC0tLSBhL2dk Yi9pbmZydW4uYwogKysrIGIvZ2RiL2luZnJ1bi5jCiBAQCAtNDUsNiArNDUsOCBAQApAQCAtODM4 Miw3ICs4OTk4LDcgQEAgaW5kZXggODMwNzk4Ni4uYjQxMTBhOCAxMDA2NDQKICAjaW5jbHVkZSAi Z2RiX2Fzc2VydC5oIgogICNpbmNsdWRlICJtaS9taS1jb21tb24uaCIKICAjaW5jbHVkZSAiZXZl bnQtdG9wLmgiCi1AQCAtMjAxMyw2ICsyMDE1LDggQEAgc3RhdGljIHZvaWQgaW5zZXJ0X3N0ZXBf cmVzdW1lX2JyZWFrcG9pbnRfYXRfc2FsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC0y MDI0LDYgKzIwMjYsOCBAQCBzdGF0aWMgdm9pZCBpbnNlcnRfc3RlcF9yZXN1bWVfYnJlYWtwb2lu dF9hdF9zYWwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCQkJCSAgc3RydWN0IHN5bXRh Yl9hbmRfbGluZSBzcl9zYWwsCiAgCQkJCQkJICBzdHJ1Y3QgZnJhbWVfaWQgc3JfaWQpOwogIHN0 YXRpYyB2b2lkIGluc2VydF9sb25nam1wX3Jlc3VtZV9icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJj aCAqLCBDT1JFX0FERFIpOwpAQCAtODM5MSw3ICs5MDA3LDcgQEAgaW5kZXggODMwNzk4Ni4uYjQx MTBhOCAxMDA2NDQKICAKICBzdGF0aWMgdm9pZCBzdG9wX3N0ZXBwaW5nIChzdHJ1Y3QgZXhlY3V0 aW9uX2NvbnRyb2xfc3RhdGUgKmVjcyk7CiAgc3RhdGljIHZvaWQgcHJlcGFyZV90b193YWl0IChz dHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcyk7Ci1AQCAtMjk1OCw2ICsyOTYyLDEw IEBAIGhhbmRsZV9pbmZlcmlvcl9ldmVudCAoc3RydWN0IGV4ZWN1dGlvbl9jb250cm9sX3N0YXRl ICplY3MpCitAQCAtMjk3MSw2ICsyOTc1LDEwIEBAIGhhbmRsZV9pbmZlcmlvcl9ldmVudCAoc3Ry dWN0IGV4ZWN1dGlvbl9jb250cm9sX3N0YXRlICplY3MpCiAgCiAgICAgICAgc3RvcF9wYyA9IHJl Z2NhY2hlX3JlYWRfcGMgKGdldF90aHJlYWRfcmVnY2FjaGUgKGVjcy0+cHRpZCkpOwogIApAQCAt ODQwMiw3ICs5MDE4LDcgQEAgaW5kZXggODMwNzk4Ni4uYjQxMTBhOCAxMDA2NDQKICAgICAgICBl Y3MtPmV2ZW50X3RocmVhZC0+c3RvcF9icHN0YXQKICAJPSBicHN0YXRfc3RvcF9zdGF0dXMgKGdl dF9yZWdjYWNoZV9hc3BhY2UgKGdldF9jdXJyZW50X3JlZ2NhY2hlICgpKSwKICAJCQkgICAgICBz dG9wX3BjLCBlY3MtPnB0aWQpOwotQEAgLTMwNDIsNiArMzA1MCwxMCBAQCBoYW5kbGVfaW5mZXJp b3JfZXZlbnQgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQorQEAgLTMwNTUs NiArMzA2MywxMCBAQCBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgKHN0cnVjdCBleGVjdXRpb25fY29u dHJvbF9zdGF0ZSAqZWNzKQogIAogICAgICAgIHN0b3BfcGMgPSByZWdjYWNoZV9yZWFkX3BjIChn ZXRfdGhyZWFkX3JlZ2NhY2hlIChlY3MtPnB0aWQpKTsKICAKQEAgLTg0MTMsNyArOTAyOSw3IEBA IGluZGV4IDgzMDc5ODYuLmI0MTEwYTggMTAwNjQ0CiAgICAgICAgLyogRG8gd2hhdGV2ZXIgaXMg bmVjZXNzYXJ5IHRvIHRoZSBwYXJlbnQgYnJhbmNoIG9mIHRoZSB2Zm9yay4gICovCiAgICAgICAg aGFuZGxlX3Zmb3JrX2NoaWxkX2V4ZWNfb3JfZXhpdCAoMSk7CiAgCi1AQCAtMzc4MCwyMyArMzc5 MiwzMyBAQCBwcm9jZXNzX2V2ZW50X3N0b3BfdGVzdDoKK0BAIC0zNzkzLDIzICszODA1LDMzIEBA IHByb2Nlc3NfZXZlbnRfc3RvcF90ZXN0OgogIAogIAllY3MtPmV2ZW50X3RocmVhZC0+c3RlcHBp bmdfb3Zlcl9icmVha3BvaW50ID0gMTsKICAKQEAgLTg0NTksNyArOTA3NSw3IEBAIGluZGV4IDgz MDc5ODYuLmI0MTEwYTggMTAwNjQ0CiAgCWtlZXBfZ29pbmcgKGVjcyk7CiAgCXJldHVybjsKICAK LUBAIC0zODA4LDYgKzM4MzAsNTMgQEAgaW5mcnVuOiBCUFNUQVRfV0hBVF9TRVRfTE9OR0pNUF9S RVNVTUUgKCFnZGJhcmNoX2dldF9sb25nam1wX3RhcmdldClcbiIpOworQEAgLTM4MjEsNiArMzg0 Myw1MyBAQCBpbmZydW46IEJQU1RBVF9XSEFUX1NFVF9MT05HSk1QX1JFU1VNRSAoIWdkYmFyY2hf Z2V0X2xvbmdqbXBfdGFyZ2V0KVxuIik7CiAgCWdkYl9hc3NlcnQgKGVjcy0+ZXZlbnRfdGhyZWFk LT5zdGVwX3Jlc3VtZV9icmVha3BvaW50ICE9IE5VTEwpOwogIAlkZWxldGVfc3RlcF9yZXN1bWVf YnJlYWtwb2ludCAoZWNzLT5ldmVudF90aHJlYWQpOwogIApAQCAtODUxMyw3ICs5MTI5LDcgQEAg aW5kZXggODMwNzk4Ni4uYjQxMTBhOCAxMDA2NDQKICAJZWNzLT5ldmVudF90aHJlYWQtPnN0b3Bf c3RlcCA9IDE7CiAgCXByaW50X3N0b3BfcmVhc29uIChFTkRfU1RFUFBJTkdfUkFOR0UsIDApOwog IAlzdG9wX3N0ZXBwaW5nIChlY3MpOwotQEAgLTQ4MjcsNiArNDg5Niw5NiBAQCBpbnNlcnRfbG9u Z2ptcF9yZXN1bWVfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQURE UiBwYykKK0BAIC00ODQwLDYgKzQ5MDksOTYgQEAgaW5zZXJ0X2xvbmdqbXBfcmVzdW1lX2JyZWFr cG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgcGMpCiAgICAgIHNldF9t b21lbnRhcnlfYnJlYWtwb2ludF9hdF9wYyAoZ2RiYXJjaCwgcGMsIGJwX2xvbmdqbXBfcmVzdW1l KTsKICB9CiAgCkBAIC04NjM1LDE0ICs5MjUxLDE0IEBAIGluZGV4IDRmNzhhMjguLmUwMDk2ZjUg MTAwNjQ0CiAgCQkJCQkJIGNvbnN0IGRvbWFpbl9lbnVtKTsKICAKIGRpZmYgLS1naXQgYS9nZGIv bGluZXNwZWMuYyBiL2dkYi9saW5lc3BlYy5jCi1pbmRleCA3NDkwMmI2Li40ZTU0YTNhIDEwMDY0 NAoraW5kZXggNzVhNzRlMi4uZWM0ZDU2OSAxMDA2NDQKIC0tLSBhL2dkYi9saW5lc3BlYy5jCiAr KysgYi9nZGIvbGluZXNwZWMuYwogQEAgLTQwLDYgKzQwLDcgQEAKICAjaW5jbHVkZSAiaW50ZXJw cy5oIgogICNpbmNsdWRlICJtaS9taS1jbWRzLmgiCiAgI2luY2x1ZGUgInRhcmdldC5oIgotKyNp bmNsdWRlIDxjdHlwZS5oPgorKyNpbmNsdWRlICJhcmNoLXV0aWxzLmgiCiAgCiAgLyogV2Ugc2hh cmUgdGhpcyBvbmUgd2l0aCBzeW10YWIuYywgYnV0IGl0IGlzIG5vdCBleHBvcnRlZCB3aWRlbHku ICovCiAgCkBAIC04NjU1LDcgKzkyNzEsNTcgQEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEzYSAxMDA2 NDQKICBzdGF0aWMgc3RydWN0IHN5bXRhYnNfYW5kX2xpbmVzIGRlY29kZV9pbmRpcmVjdCAoY2hh ciAqKmFyZ3B0cik7CiAgCiAgc3RhdGljIGNoYXIgKmxvY2F0ZV9maXJzdF9oYWxmIChjaGFyICoq YXJncHRyLCBpbnQgKmlzX3F1b3RlX2VuY2xvc2VkKTsKLUBAIC02ODgsOSArNjg3LDYgQEAgZGVj b2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRh YiAqZGVmYXVsdF9zeW10YWIsCitAQCAtMzEzLDEwICszMTIsNyBAQCBhZGRfbWF0Y2hpbmdfbWV0 aG9kcyAoaW50IG1ldGhvZF9jb3VudGVyLCBzdHJ1Y3QgdHlwZSAqdCwKKyAJCQkJICAgTlVMTCwg VkFSX0RPTUFJTiwKKyAJCQkJICAgbGFuZ3VhZ2UsCisgCQkJCSAgIChpbnQgKikgTlVMTCk7Cist ICAgICAgLyogU2VlIFBSMTA5NjYuICBSZW1vdmUgY2hlY2sgb24gc3ltYm9sIGRvbWFpbiBhbmQg Y2xhc3Mgd2hlbgorLQkgd2Ugc3RvcCB1c2luZyAoYmFkKSBsaW5rYWdlIG5hbWVzIG9uIGNvbnN0 cnVjdG9ycy4gICovCistICAgICAgaWYgKHN5bV9hcnJbaTFdICYmIChTWU1CT0xfRE9NQUlOIChz eW1fYXJyW2kxXSkgPT0gVkFSX0RPTUFJTgorLQkJCSAgJiYgU1lNQk9MX0NMQVNTIChzeW1fYXJy W2kxXSkgPT0gTE9DX0JMT0NLKSkKKysgICAgICBpZiAoc3ltX2FycltpMV0pCisgCWkxKys7Cisg ICAgICAgZWxzZQorIAl7CitAQCAtNjMxLDYgKzYyNywzNyBAQCBTZWUgc2V0L3Nob3cgbXVsdGlw bGUtc3ltYm9sLiIpKTsKKyAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9jaGFpbik7CisgICByZXR1 cm4gcmV0dXJuX3ZhbHVlczsKKyB9CisrCisrLyogQSBoZWxwZXIgZnVuY3Rpb24gZm9yIGRlY29k ZV9saW5lXzEgYW5kIGZyaWVuZHMgd2hpY2ggc2tpcHMgUAorKyAgIHBhc3QgYW55IG1ldGhvZCBv dmVybG9hZCBpbmZvcm1hdGlvbiBhdCB0aGUgYmVnaW5uaW5nIG9mIFAsIGUuZy4sCisrICAgIihj b25zdCBzdHJ1Y3QgZm9vICopIi4KKysKKysgICBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCBQ IGhhcyBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIHRvIGNvbnRhaW4KKysgICBvdmVybG9hZCBpbmZv cm1hdGlvbiwgYW5kIGl0IHdpbGwgYXNzZXJ0IGlmICpQICE9ICcoJy4gICovCisrc3RhdGljIGNo YXIgKgorK2ZpbmRfbWV0aG9kX292ZXJsb2FkX2VuZCAoY2hhciAqcCkKKyt7CisrICBpbnQgZGVw dGggPSAwOworKworKyAgZ2RiX2Fzc2VydCAoKnAgPT0gJygnKTsKKysKKysgIHdoaWxlICgqcCkK KysgICAgeworKyAgICAgIGlmICgqcCA9PSAnKCcpCisrCSsrZGVwdGg7CisrICAgICAgZWxzZSBp ZiAoKnAgPT0gJyknKQorKwl7CisrCSAgaWYgKC0tZGVwdGggPT0gMCkKKysJICAgIHsKKysJICAg ICAgKytwOworKwkgICAgICBicmVhazsKKysJICAgIH0KKysJfQorKyAgICAgICsrcDsKKysgICAg fQorKworKyAgcmV0dXJuIHA7CisrfQorIAwKKyAvKiBUaGUgcGFyc2VyIG9mIGxpbmVzcGVjIGl0 c2VsZi4gKi8KKyAKK0BAIC02OTEsMTggKzcxOCwxNyBAQCBkZWNvZGVfbGluZV8xIChjaGFyICoq YXJncHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5bXRhYiwK ICAgIHN0cnVjdCBzeW10YWIgKmZpbGVfc3ltdGFiID0gTlVMTDsKICAKICAgIGNoYXIgKmNvcHk7 CkBAIC04NjY1LDcgKzkzMzEsMTkgQEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEzYSAxMDA2NDQKICAg IC8qIFRoaXMgc2F5cyB3aGV0aGVyIG9yIG5vdCBzb21ldGhpbmcgaW4gKkFSR1BUUiBpcyBxdW90 ZWQgd2l0aAogICAgICAgY29tcGxldGVyX3F1b3RlcyAoaS5lLiB3aXRoIHNpbmdsZSBxdW90ZXMp LiAgKi8KICAgIGludCBpc19xdW90ZWQ7Ci1AQCAtNzExLDEyICs3MDcsOSBAQCBkZWNvZGVfbGlu ZV8xIChjaGFyICoqYXJncHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZh dWx0X3N5bXRhYiwKKy0gIC8qIElzIHBhcnQgb2YgKkFSR1BUUiBpcyBlbmNsb3NlZCBpbiBkb3Vi bGUgcXVvdGVzPyAgKi8KKysgIC8qIElzICpBUkdQVFIgaXMgZW5jbG9zZWQgaW4gZG91YmxlIHF1 b3Rlcz8gICovCisgICBpbnQgaXNfcXVvdGVfZW5jbG9zZWQ7CisgICBpbnQgaXNfb2JqY19tZXRo b2QgPSAwOworICAgY2hhciAqc2F2ZWRfYXJnID0gKmFyZ3B0cjsKKyAgIC8qIElmIElTX1FVT1RF RCwgdGhlIGVuZCBvZiB0aGUgcXVvdGVkIGJpdC4gICovCisgICBjaGFyICplbmRfcXVvdGUgPSBO VUxMOworKyAgLyogVGhlICJmaXJzdCBoYWxmIiBvZiB0aGUgbGluZXNwZWMuICAqLworKyAgY2hh ciAqZmlyc3RfaGFsZjsKKyAKKyAgIGlmIChub3RfZm91bmRfcHRyKQorICAgICAqbm90X2ZvdW5k X3B0ciA9IDA7CitAQCAtNzE2LDEyICs3NDIsOSBAQCBkZWNvZGVfbGluZV8xIChjaGFyICoqYXJn cHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5bXRhYiwKICAg IGlmICgqKmFyZ3B0ciA9PSAnKicpCiAgICAgIHJldHVybiBkZWNvZGVfaW5kaXJlY3QgKGFyZ3B0 cik7CiAgCkBAIC04Njc4LDEwICs5MzU2LDE2IEBAIGluZGV4IDc0OTAyYjYuLjRlNTRhM2EgMTAw NjQ0CiArICBpc19xdW90ZWQgPSAoKmFyZ3B0cgogKwkgICAgICAgJiYgc3RyY2hyIChnZXRfZ2Ri X2NvbXBsZXRlcl9xdW90ZV9jaGFyYWN0ZXJzICgpLAogKwkJCSAgKiphcmdwdHIpICE9IE5VTEwp OworICAgaWYgKGlzX3F1b3RlZCkKKyAgICAgZW5kX3F1b3RlID0gc2tpcF9xdW90ZWQgKCphcmdw dHIpOworIAorQEAgLTczNCwxNSArNzU3LDEyIEBAIGRlY29kZV9saW5lXzEgKGNoYXIgKiphcmdw dHIsIGludCBmdW5maXJzdGxpbmUsIHN0cnVjdCBzeW10YWIgKmRlZmF1bHRfc3ltdGFiLAorICAg ICAgd2lsbCBwb2ludCB0byAiIi4gSWYgdGhpcyBpcyBhIEMrKyBuYW1lLCBsaWtlICJBOjpCOjpm b28iLCBwIHdpbGwKKyAgICAgIHBvaW50IHRvICI6OkI6OmZvbyIuIEFyZ3B0ciBpcyBub3QgY2hh bmdlZCBieSB0aGlzIGNhbGwuICAqLworIAorLSAgcCA9IGxvY2F0ZV9maXJzdF9oYWxmIChhcmdw dHIsICZpc19xdW90ZV9lbmNsb3NlZCk7CisrICBmaXJzdF9oYWxmID0gcCA9IGxvY2F0ZV9maXJz dF9oYWxmIChhcmdwdHIsICZpc19xdW90ZV9lbmNsb3NlZCk7CiAgCi0gICAvKiBDaGVjayB0byBz ZWUgaWYgaXQncyBhIG11bHRpcGFydCBsaW5lc3BlYyAod2l0aCBjb2xvbnMgb3IKLSAgICAgIHBl cmlvZHMpLiAgKi8KLUBAIC03MzIsMTAgKzcyNSw3IEBAIGRlY29kZV9saW5lXzEgKGNoYXIgKiph cmdwdHIsIGludCBmdW5maXJzdGxpbmUsIHN0cnVjdCBzeW10YWIgKmRlZmF1bHRfc3ltdGFiLAog ICAgLyogQ2hlY2sgaWYgdGhpcyBpcyBhbiBPYmplY3RpdmUtQyBtZXRob2QgKGFueXRoaW5nIHRo YXQgc3RhcnRzIHdpdGgKICAgICAgIGEgJysnIG9yICctJyBhbmQgYSAnWycpLiAgKi8KICAgIGlm IChpc19vYmpjX21ldGhvZF9mb3JtYXQgKHApKQpAQCAtODY5Myw0MyArOTM3Nyw1MyBAQCBpbmRl eCA3NDkwMmI2Li40ZTU0YTNhIDEwMDY0NAogIAogICAgLyogQ2hlY2sgaWYgdGhlIHN5bWJvbCBj b3VsZCBiZSBhbiBPYmplY3RpdmUtQyBzZWxlY3Rvci4gICovCiAgCi1AQCAtNzQ5LDExICs3Mzks MTEgQEAgZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGluZSwgc3Ry dWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10YWIsCitAQCAtNzU0LDkgKzc3NCw2IEBAIGRlY29kZV9s aW5lXzEgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIHN0cnVjdCBzeW10YWIgKmRl ZmF1bHRfc3ltdGFiLAorICAgICAgIHJldHVybiB2YWx1ZXM7CisgICB9CiAgCistICBpZiAoaXNf cXVvdGVkKQorLSAgICAqYXJncHRyID0gKmFyZ3B0ciArIDE7CistCiAgICAvKiBEb2VzIGl0IGxv b2sgbGlrZSB0aGVyZSBhY3R1YWxseSB3ZXJlIHR3byBwYXJ0cz8gICovCiAgCi0tICBpZiAoKHBb MF0gPT0gJzonIHx8IHBbMF0gPT0gJy4nKSAmJiBwYXJlbl9wb2ludGVyID09IE5VTEwpCi0rICBp ZiAocFswXSA9PSAnOicgfHwgcFswXSA9PSAnLicpCi0gICAgIHsKLSAgICAgICBpZiAoaXNfcXVv dGVkKQotIAkqYXJncHRyID0gKmFyZ3B0ciArIDE7Ci0tICAgICAgCi0rCi0gICAgICAgLyogSXMg aXQgYSBDKysgb3IgSmF2YSBjb21wb3VuZCBkYXRhIHN0cnVjdHVyZT8KLSAJIFRoZSBjaGVjayBv biBwWzFdID09ICc6JyBpcyBjYXB0dXJpbmcgdGhlIGNhc2Ugb2YgIjo6IiwKLSAJIHNpbmNlIHBb MF09PSc6JyB3YXMgY2hlY2tlZCBhYm92ZS4gIAotQEAgLTc2Miw0OCArNzUyLDMxIEBAIGRlY29k ZV9saW5lXzEgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIHN0cnVjdCBzeW10YWIg KmRlZmF1bHRfc3ltdGFiLAotIAkgY2FuIHJldHVybiBub3cuICovCisgICBpZiAocFswXSA9PSAn OicgfHwgcFswXSA9PSAnLicpCitAQCAtNzcwLDY3ICs3ODcsNDggQEAgZGVjb2RlX2xpbmVfMSAo Y2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9z eW10YWIsCiAgCQogICAgICAgIGlmIChwWzBdID09ICcuJyB8fCBwWzFdID09ICc6JykKLS0JcmV0 dXJuIGRlY29kZV9jb21wb3VuZCAoYXJncHRyLCBmdW5maXJzdGxpbmUsIGNhbm9uaWNhbCwKLS0J CQkJc2F2ZWRfYXJnLCBwLCBub3RfZm91bmRfcHRyKTsKLSsJeworIAl7CistCSAgaWYgKHBhcmVu X3BvaW50ZXIgPT0gTlVMTCkKKy0JICAgIHJldHVybiBkZWNvZGVfY29tcG91bmQgKGFyZ3B0ciwg ZnVuZmlyc3RsaW5lLCBjYW5vbmljYWwsCiArCSAgc3RydWN0IHN5bXRhYnNfYW5kX2xpbmVzIHZh bHVlczsKICsKICsJICBpZiAoaXNfcXVvdGVfZW5jbG9zZWQpCiArCSAgICArK3NhdmVkX2FyZzsK ICsJICB2YWx1ZXMgPSBkZWNvZGVfY29tcG91bmQgKGFyZ3B0ciwgZnVuZmlyc3RsaW5lLCBjYW5v bmljYWwsCi0rCQkJCSAgICBzYXZlZF9hcmcsIHAsIG5vdF9mb3VuZF9wdHIpOworIAkJCQkgICAg c2F2ZWRfYXJnLCBwLCBub3RfZm91bmRfcHRyKTsKKy0JICAvKiBPdGhlcndpc2UsIGZhbGwgdGhy b3VnaCB0byBkZWNvZGVfdmFyaWFibGUgYmVsb3cuICAqLwogKwkgIGlmIChpc19xdW90ZWQgJiYg KiphcmdwdHIgPT0gJ1wnJykKICsJICAgICphcmdwdHIgPSAqYXJncHRyICsgMTsKICsJICByZXR1 cm4gdmFsdWVzOwotKwl9CisgCX0KKy0gICAgICBlbHNlCistCXsKKy0JICAvKiBObywgdGhlIGZp cnN0IHBhcnQgaXMgYSBmaWxlbmFtZTsgc2V0IGZpbGVfc3ltdGFiIHRvIGJlIHRoYXQgZmlsZSdz CistCSAgICAgc3ltdGFiLiAgQWxzbywgbW92ZSBhcmdwdHIgcGFzdCB0aGUgZmlsZW5hbWUuICAq LwogIAotICAgICAgIC8qIE5vLCB0aGUgZmlyc3QgcGFydCBpcyBhIGZpbGVuYW1lOyBzZXQgZmls ZV9zeW10YWIgdG8gYmUgdGhhdCBmaWxlJ3MKLSAJIHN5bXRhYi4gIEFsc28sIG1vdmUgYXJncHRy IHBhc3QgdGhlIGZpbGVuYW1lLiAgKi8KKy0JICBmaWxlX3N5bXRhYiA9IHN5bXRhYl9mcm9tX2Zp bGVuYW1lIChhcmdwdHIsIHAsIGlzX3F1b3RlX2VuY2xvc2VkLAorLQkJCQkJICAgICAgbm90X2Zv dW5kX3B0cik7CisrICAgICAgLyogTm8sIHRoZSBmaXJzdCBwYXJ0IGlzIGEgZmlsZW5hbWU7IHNl dCBmaWxlX3N5bXRhYiB0byBiZSB0aGF0IGZpbGUncworKwkgc3ltdGFiLiAgQWxzbywgbW92ZSBh cmdwdHIgcGFzdCB0aGUgZmlsZW5hbWUuICAqLwogIAotICAgICAgIGZpbGVfc3ltdGFiID0gc3lt dGFiX2Zyb21fZmlsZW5hbWUgKGFyZ3B0ciwgcCwgaXNfcXVvdGVfZW5jbG9zZWQsIAotIAkJICAg ICAgCQkJICBub3RfZm91bmRfcHRyKTsKKy0JICAvKiBDaGVjayBmb3Igc2luZ2xlIHF1b3RlcyBv biB0aGUgbm9uLWZpbGVuYW1lIHBhcnQuICAqLworLQkgIGlmICghaXNfcXVvdGVkKQorLQkgICAg eworLQkgICAgICBpc19xdW90ZWQgPSAoKiphcmdwdHIKKy0JCQkgICAmJiBzdHJjaHIgKGdldF9n ZGJfY29tcGxldGVyX3F1b3RlX2NoYXJhY3RlcnMgKCksCistCQkJCSAgICAgICoqYXJncHRyKSAh PSBOVUxMKTsKKy0JICAgICAgaWYgKGlzX3F1b3RlZCkKKy0JCWVuZF9xdW90ZSA9IHNraXBfcXVv dGVkICgqYXJncHRyKTsKKy0JICAgIH0KKy0JfQogLSAgICB9CiAtI2lmIDAKIC0gIC8qIE5vIG9u ZSByZWFsbHkgc2VlbXMgdG8ga25vdyB3aHkgdGhpcyB3YXMgYWRkZWQuIEl0IGNlcnRhaW5seQpA QCAtODc0Miw3ICs5NDM2LDkgQEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEzYSAxMDA2NDQKIC0gIGVs c2UKIC0gICAgewogLSAgICAgIC8qIENoZWNrIGlmIHdoYXQgd2UgaGF2ZSB0aWxsIG5vdyBpcyBh IHN5bWJvbCBuYW1lICovCi0tCisrICAgICAgZmlsZV9zeW10YWIgPSBzeW10YWJfZnJvbV9maWxl bmFtZSAoYXJncHRyLCBwLCBpc19xdW90ZV9lbmNsb3NlZCwKKysJCQkJCSAgbm90X2ZvdW5kX3B0 cik7CisgCiAtICAgICAgLyogV2UgbWF5IGJlIGxvb2tpbmcgYXQgYSB0ZW1wbGF0ZSBpbnN0YW50 aWF0aW9uIHN1Y2gKIC0gICAgICAgICBhcyAiZm9vPGludD4iLiAgQ2hlY2sgaGVyZSB3aGV0aGVy IHdlIGtub3cgYWJvdXQgaXQsCiAtICAgICAgICAgaW5zdGVhZCBvZiBmYWxsaW5nIHRocm91Z2gg dG8gdGhlIGNvZGUgYmVsb3cgd2hpY2gKQEAgLTg3NTYsMTQgKzk0NTIsMTYgQEAgaW5kZXggNzQ5 MDJiNi4uNGU1NGEzYSAxMDA2NDQKIC0gICAgICBjb3B5W3AgLSAqYXJncHRyXSA9ICdcMDAwJzsK IC0gICAgICBzeW0gPSBsb29rdXBfc3ltYm9sIChjb3B5LCAwLCBWQVJfRE9NQUlOLCAwKTsKIC0g ICAgICBpZiAoc3ltKQotKyAgICAgIGlmIChmaWxlX3N5bXRhYiAhPSBOVUxMKQorKyAgICAgIC8q IENoZWNrIGZvciBzaW5nbGUgcXVvdGVzIG9uIHRoZSBub24tZmlsZW5hbWUgcGFydC4gICovCisr ICAgICAgaWYgKCFpc19xdW90ZWQpCiAgCXsKIC0JICAqYXJncHRyID0gKCpwID09ICdcJycpID8g cCArIDEgOiBwOwogLQkgIHJldHVybiBzeW1ib2xfZm91bmQgKGZ1bmZpcnN0bGluZSwgY2Fub25p Y2FsLCBjb3B5LCBzeW0sIE5VTEwpOwotKwkgIC8qIERvdWJsZS1jaGVjayBpZiB0aGUgcmVtYWlu ZGVyIG9mIHRoZSBhcmd1bWVudCBpcyBxdW90ZWQuCi0rCSAgICAgVGhlIHJicmVhayBjb21tYW5k IHVzZXMgc3ludGF4IGxpa2UgdGhpcy4gICovCi0rCSAgaWYgKCoqYXJncHRyID09ICdcJycpCi0r CSAgICBpc19xdW90ZWQgPSAxOworKwkgIGlzX3F1b3RlZCA9ICgqKmFyZ3B0cgorKwkJICAgICAg ICYmIHN0cmNociAoZ2V0X2dkYl9jb21wbGV0ZXJfcXVvdGVfY2hhcmFjdGVycyAoKSwKKysJCQkJ ICAqKmFyZ3B0cikgIT0gTlVMTCk7CisrCSAgaWYgKGlzX3F1b3RlZCkKKysJICAgIGVuZF9xdW90 ZSA9IHNraXBfcXVvdGVkICgqYXJncHRyKTsKICAJfQogLSAgICAgIC8qIE90aGVyd2lzZSBmYWxs IG91dCBmcm9tIGhlcmUgYW5kIGdvIHRvIGZpbGUvbGluZSBzcGVjCiAtICAgICAgICAgcHJvY2Vz c2luZywgZXRjLiAqLwpAQCAtODc3Miw3ICs5NDcwLDIyIEBAIGluZGV4IDc0OTAyYjYuLjRlNTRh M2EgMTAwNjQ0CiAgCiAgICAvKiBmaWxlX3N5bXRhYiBpcyBzcGVjaWZpZWQgZmlsZSdzIHN5bXRh Yiwgb3IgMCBpZiBubyBmaWxlIHNwZWNpZmllZC4KICAgICAgIGFyZyBubyBsb25nZXIgY29udGFp bnMgdGhlIGZpbGUgbmFtZS4gICovCi1AQCAtODM4LDEwICs4MTEsNiBAQCBkZWNvZGVfbGluZV8x IChjaGFyICoqYXJncHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0 X3N5bXRhYiwKKyAKKysgIC8qIElmIHRoZSBmaWxlbmFtZSB3YXMgcXVvdGVkLCB3ZSBtdXN0IHJl LWNoZWNrIHRoZSBxdW90YXRpb24uICAqLworKworKyAgaWYgKGVuZF9xdW90ZSA9PSBmaXJzdF9o YWxmICYmICplbmRfcXVvdGUhPSAnXDAnKQorKyAgICB7CisrICAgICAgaXNfcXVvdGVkID0gKCoq YXJncHRyCisrCQkgICAmJiBzdHJjaHIgKGdldF9nZGJfY29tcGxldGVyX3F1b3RlX2NoYXJhY3Rl cnMgKCksCisrCQkJICAgICAgKiphcmdwdHIpICE9IE5VTEwpOworKyAgICAgIGlmIChpc19xdW90 ZWQpCisrCWVuZF9xdW90ZSA9IHNraXBfcXVvdGVkICgqYXJncHRyKTsKKysgICAgfQorKworICAg LyogQ2hlY2sgd2hldGhlciBhcmcgaXMgYWxsIGRpZ2l0cyAoYW5kIHNpZ24pLiAgKi8KKyAKKyAg IHEgPSAqYXJncHRyOworQEAgLTg2MSwxMCArODU5LDYgQEAgZGVjb2RlX2xpbmVfMSAoY2hhciAq KmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10YWIs CiAgICAgICAgLyogYWxsb3cgd29yZCBzZXBhcmF0b3JzIGluIG1ldGhvZCBuYW1lcyBmb3IgT2Jq LUMgKi8KICAgICAgICBwID0gc2tpcF9xdW90ZWRfY2hhcnMgKCphcmdwdHIsIE5VTEwsICIiKTsK ICAgICAgfQpAQCAtODc4MywyMCArOTQ5NiwxMyBAQCBpbmRleCA3NDkwMmI2Li40ZTU0YTNhIDEw MDY0NAogICAgZWxzZQogICAgICB7CiAgICAgICAgcCA9IHNraXBfcXVvdGVkICgqYXJncHRyKTsK LUBAIC04NTEsNiArODIwLDIxIEBAIGRlY29kZV9saW5lXzEgKGNoYXIgKiphcmdwdHIsIGludCBm dW5maXJzdGxpbmUsIHN0cnVjdCBzeW10YWIgKmRlZmF1bHRfc3ltdGFiLAorQEAgLTg3NCw2ICs4 NjgsMTQgQEAgZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGluZSwg c3RydWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10YWIsCiAgICBpZiAoKnAgPT0gJzwnKQogICAgICBw ID0gZmluZF90ZW1wbGF0ZV9uYW1lX2VuZCAocCk7CiAgCiArICAvKiBLZWVwIG1ldGhvZCBvdmVy bG9hZCBpbmZvcm1hdGlvbi4gICovCi0rICBxID0gc3RyY2hyIChwLCAnKCcpOwotKyAgaWYgKHEg IT0gTlVMTCkKLSsgICAgewotKyAgICAgIC8qIElnbm9yZSAnKCcgdXNlZCBhZnRlciAiIGlmIi4g ICovCi0rICAgICAgd2hpbGUgKHEgPiBwICYmIGlzc3BhY2UgKHFbLTFdKSkKLSsJcS0tOwotKyAg ICAgIGlmICghKHEgPj0gcCArIDMgJiYgc3RybmNtcCAoJnFbLTJdLCAiaWYiLCAyKSA9PSAwICYm IGlzc3BhY2UgKHFbLTNdKSkpCi0rCXAgPSBzdHJyY2hyIChxLCAnKScpICsgMTsKLSsgICAgfQor KyAgaWYgKCpwID09ICcoJykKKysgICAgcCA9IGZpbmRfbWV0aG9kX292ZXJsb2FkX2VuZCAocCk7 CiArCiArICAvKiBNYWtlIHN1cmUgd2Uga2VlcCBpbXBvcnRhbnQga2V3b3JkcyBsaWtlICJjb25z dCIgKi8KICsgIGlmIChzdHJuY21wIChwLCAiIGNvbnN0IiwgNikgPT0gMCkKQEAgLTg4MDUsNyAr OTUxMSwyMSBAQCBpbmRleCA3NDkwMmI2Li40ZTU0YTNhIDEwMDY0NAogICAgY29weSA9IChjaGFy ICopIGFsbG9jYSAocCAtICphcmdwdHIgKyAxKTsKICAgIG1lbWNweSAoY29weSwgKmFyZ3B0ciwg cCAtICphcmdwdHIpOwogICAgY29weVtwIC0gKmFyZ3B0cl0gPSAnXDAnOwotQEAgLTkyNiw0NCAr OTEwLDYgQEAgaW5pdGlhbGl6ZV9kZWZhdWx0cyAoc3RydWN0IHN5bXRhYiAqKmRlZmF1bHRfc3lt dGFiLCBpbnQgKmRlZmF1bHRfbGluZSkKK0BAIC05MjEsMTAgKzkyMyw5IEBAIGRlY29kZV9saW5l XzEgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIHN0cnVjdCBzeW10YWIgKmRlZmF1 bHRfc3ltdGFiLAorICAgIGZ1bmN0aW9uIGlzIHBhc3NlZCBBUkdQVFIgYXMgYW4gYXJndW1lbnQs IGl0IG1vZGlmaWVzIHdoYXQgQVJHUFRSCisgICAgcG9pbnRzIHRvOyB0eXBpY2FsbHksIGl0IGFk dmFuY2VzICpBUkdQVFIgcGFzdCB3aGF0ZXZlciBzdWJzdHJpbmcKKyAgICBpdCBoYXMganVzdCBs b29rZWQgYXQuICAoSWYgaXQgZG9lc24ndCBtb2RpZnkgKkFSR1BUUiwgdGhlbiB0aGUKKy0gICBm dW5jdGlvbiBnZXRzIHBhc3NlZCAqQVJHUFRSIGluc3RlYWQsIHdoaWNoIGlzIHRoZW4gY2FsbGVk IEFSRzogc2VlCistICAgc2V0X2ZsYWdzLCBmb3IgZXhhbXBsZS4pICBBbHNvLCBmdW5jdGlvbnMg dGhhdCByZXR1cm4gYSBzdHJ1Y3QKKy0gICBzeW10YWJzX2FuZF9saW5lcyBtYXkgbW9kaWZ5IENB Tk9OSUNBTCwgYXMgaW4gdGhlIGRlc2NyaXB0aW9uIG9mCistICAgZGVjb2RlX2xpbmVfMS4KKysg ICBmdW5jdGlvbiBnZXRzIHBhc3NlZCAqQVJHUFRSIGluc3RlYWQsIHdoaWNoIGlzIHRoZW4gY2Fs bGVkIEFSRy4pCisrICAgQWxzbywgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGEgc3RydWN0IHN5bXRh YnNfYW5kX2xpbmVzIG1heSBtb2RpZnkKKysgICBDQU5PTklDQUwsIGFzIGluIHRoZSBkZXNjcmlw dGlvbiBvZiBkZWNvZGVfbGluZV8xLgorIAorICAgIElmIGEgZnVuY3Rpb24gcmV0dXJucyBhIHN0 cnVjdCBzeW10YWJzX2FuZF9saW5lcywgdGhlbiB0aGF0IHN0cnVjdAorICAgIHdpbGwgaW1tZWRp YXRlbHkgbWFrZSBpdHMgd2F5IHVwIHRoZSBjYWxsIGNoYWluIHRvIGJlIHJldHVybmVkIGJ5CitA QCAtOTUxLDQ0ICs5NTIsNiBAQCBpbml0aWFsaXplX2RlZmF1bHRzIChzdHJ1Y3Qgc3ltdGFiICoq ZGVmYXVsdF9zeW10YWIsIGludCAqZGVmYXVsdF9saW5lKQogICAgICB9CiAgfQogIApAQCAtODg1 MCw3ICs5NTcwLDQzIEBAIGluZGV4IDc0OTAyYjYuLjRlNTRhM2EgMTAwNjQ0CiAgDAogIAogIC8q IERlY29kZSBhcmcgb2YgdGhlIGZvcm0gKlBDLiAgKi8KLUBAIC0xMjY0LDcgKzEyMTAsOCBAQCBk ZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioq Y2Fub25pY2FsLAorQEAgLTEwNTksNyArMTAyMiwxNCBAQCBsb2NhdGVfZmlyc3RfaGFsZiAoY2hh ciAqKmFyZ3B0ciwgaW50ICppc19xdW90ZV9lbmNsb3NlZCkKKyAgICAgICBwKys7CisgICAgIH0K KyAgIGVsc2UKKy0gICAgKmlzX3F1b3RlX2VuY2xvc2VkID0gMDsKKysgICAgeworKyAgICAgICpp c19xdW90ZV9lbmNsb3NlZCA9IDA7CisrICAgICAgaWYgKHN0cmNociAoZ2V0X2dkYl9jb21wbGV0 ZXJfcXVvdGVfY2hhcmFjdGVycyAoKSwgKnApKQorKwl7CisrCSAgKysoKmFyZ3B0cik7CisrCSAg KytwOworKwl9CisrICAgIH0KKyAgIGZvciAoOyAqcDsgcCsrKQorICAgICB7CisgICAgICAgaWYg KHBbMF0gPT0gJzwnKQorQEAgLTEwODgsOCArMTA1OCw5IEBAIGxvY2F0ZV9maXJzdF9oYWxmIChj aGFyICoqYXJncHRyLCBpbnQgKmlzX3F1b3RlX2VuY2xvc2VkKQorICAgICAgIGlmIChwWzBdID09 ICcuJyAmJiBzdHJjaHIgKHAsICc6JykgPT0gTlVMTCkKKyAJeworIAkgIC8qIEphdmEgcXVhbGlm aWVkIG1ldGhvZC4gIEZpbmQgdGhlICpsYXN0KiAnLicsIHNpbmNlIHRoZQorLQkgICAgIG90aGVy cyBhcmUgcGFja2FnZSBxdWFsaWZpZXJzLiAgKi8KKy0JICBmb3IgKHAxID0gcDsgKnAxOyBwMSsr KQorKwkgICAgIG90aGVycyBhcmUgcGFja2FnZSBxdWFsaWZpZXJzLiAgU3RvcCBhdCBhbnkgb3Bl biBwYXJlbnRoZXNpcworKwkgICAgIHdoaWNoIG1pZ2h0IHByb3ZpZGUgb3ZlcmxvYWQgaW5mb3Jt YXRpb24uICAqLworKwkgIGZvciAocDEgPSBwOyAqcDEgJiYgKnAxICE9ICcoJzsgcDErKykKKyAJ ICAgIHsKKyAJICAgICAgaWYgKCpwMSA9PSAnLicpCisgCQlwID0gcDE7CitAQCAtMTI0MSw2ICsx MjEyLDcgQEAgZGVjb2RlX2NvbXBvdW5kIChjaGFyICoqYXJncHRyLCBpbnQgZnVuZmlyc3RsaW5l LCBjaGFyICoqKmNhbm9uaWNhbCwKKyAgIHN0cnVjdCBzeW1ib2wgKnN5bV9jbGFzczsKKyAgIHN0 cnVjdCBzeW1ib2wgKipzeW1fYXJyOworICAgc3RydWN0IHR5cGUgKnQ7CisrICBjaGFyICpzYXZl ZF9qYXZhX2FyZ3B0ciA9IE5VTEw7CisgCisgICAvKiBGaXJzdCBjaGVjayBmb3IgImdsb2JhbCIg bmFtZXNwYWNlIHNwZWNpZmljYXRpb24sIG9mIHRoZSBmb3JtCisgICAgICAiOjpmb28iLiAgSWYg Zm91bmQsIHNraXAgb3ZlciB0aGUgY29sb25zIGFuZCBqdW1wIHRvIG5vcm1hbAorQEAgLTEyODks NyArMTI2MSw4IEBAIGRlY29kZV9jb21wb3VuZCAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0 bGluZSwgY2hhciAqKipjYW5vbmljYWwsCiAgICAgICAgLyogUEFTUzI6IHAyLT4iOjpmdW4iLCBw LT4iOmZ1biIgKi8KICAKICAgICAgICAvKiBNb3ZlIHBvaW50ZXIgYWhlYWQgdG8gbmV4dCBkb3Vi bGUtY29sb24uICAqLwpAQCAtODg2MCw3ICs5NjE2LDcgQEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEz YSAxMDA2NDQKICAJewogIAkgIGlmIChjdXJyZW50X2xhbmd1YWdlLT5sYV9sYW5ndWFnZSA9PSBs YW5ndWFnZV9jcGx1cykKICAJICAgIHAgKz0gY3BfdmFsaWRhdGVfb3BlcmF0b3IgKHApOwotQEAg LTEzNDIsOCArMTI4OSwxMCBAQCBkZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdwdHIsIGludCBm dW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAorQEAgLTEzNjcsOCArMTM0MCwxMCBAQCBk ZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioq Y2Fub25pY2FsLAogICAgICAgIGVsc2UKICAJewogIAkgIC8qIEF0IHRoaXMgcG9pbnQgYXJncHRy LT4iZnVuIi4gICovCkBAIC04ODcyLDcgKzk2MjgsNyBAQCBpbmRleCA3NDkwMmI2Li40ZTU0YTNh IDEwMDY0NAogIAkgICAgcCsrOwogIAkgIC8qIEF0IHRoaXMgcG9pbnQgcC0+IiIuICBTdHJpbmcg ZW5kZWQuICAqLwogIAkgIC8qIE5vcGUsIEMrKyBvcGVyYXRvcnMgY291bGQgaGF2ZSBzcGFjZXMg aW4gdGhlbQotQEAgLTEzNTUsNiArMTMwNCwxOSBAQCBkZWNvZGVfY29tcG91bmQgKGNoYXIgKiph cmdwdHIsIGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAorQEAgLTEzODAsNiAr MTM1NSw0MiBAQCBkZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxp bmUsIGNoYXIgKioqY2Fub25pY2FsLAogIAkgICAgICAvKiBUaGUgYWJvdmUgbG9vcCBoYXMgYWxy ZWFkeSBzd2FsbG93ZWQgIm9wZXJhdG9yIi4gICovCiAgCSAgICAgIHAgKz0gY3BfdmFsaWRhdGVf b3BlcmF0b3IgKHAgLSA4KSAtIDg7CiAgCSAgICB9CkBAIC04ODg0LDE1ICs5NjQwLDY4IEBAIGlu ZGV4IDc0OTAyYjYuLjRlNTRhM2EgMTAwNjQ0CiArCSAgLyogS2VlcCBtZXRob2Qgb3ZlcmxvYWQg aW5mb3JtYXRpb24uICAqLwogKwkgIGEgPSBzdHJjaHIgKHAsICcoJyk7CiArCSAgaWYgKGEgIT0g TlVMTCkKLSsJICAgIHAgPSBzdHJyY2hyIChhLCAnKScpICsgMTsKKysJICAgIHAgPSBmaW5kX21l dGhvZF9vdmVybG9hZF9lbmQgKGEpOwogKwogKwkgIC8qIE1ha2Ugc3VyZSB3ZSBrZWVwIGltcG9y dGFudCBrZXdvcmRzIGxpa2UgImNvbnN0IiAqLwogKwkgIGlmIChzdHJuY21wIChwLCAiIGNvbnN0 IiwgNikgPT0gMCkKICsJICAgIHAgKz0gNjsKKysKKysJICAvKiBKYXZhIG1heSBhcHBlbmQgdHlw ZW5hbWVzLCAgc28gYXNzdW1lIHRoYXQgaWYgdGhlcmUgaXMKKysJICAgICBhbnl0aGluZyBlbHNl IGxlZnQgaW4gKmFyZ3B0ciwgaXQgbXVzdCBiZSBhIHR5cGVuYW1lLiAgKi8KKysJICBpZiAoKnAg JiYgY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfamF2YSkKKysJICAg IHsKKysJICAgICAgc3RydWN0IHR5cGUgKnR5cGU7CisrCSAgICAgIHAyID0gcDsKKysJICAgICAg d2hpbGUgKCpwMikKKysJCSsrcDI7CisrCSAgICAgIGNvcHkgPSAoY2hhciAqKSBhbGxvY2EgKHAy IC0gcCArIDEpOworKwkgICAgICBtZW1jcHkgKGNvcHksIHAsIHAyIC0gcCk7CisrCSAgICAgIGNv cHlbcDIgLSBwXSA9ICdcMCc7CisrCSAgICAgIHR5cGUgPSBsb29rdXBfdHlwZW5hbWUgKGN1cnJl bnRfbGFuZ3VhZ2UsIGdldF9jdXJyZW50X2FyY2ggKCksCisrCQkJCSAgICAgIGNvcHksIE5VTEws IDEpOworKwkgICAgICBpZiAodHlwZSAhPSBOVUxMKQorKwkJeworKwkJICAvKiBTYXZlIHRoZSBs b2NhdGlvbiBvZiB0aGlzIGp1c3QgaW4gY2FzZSB0aGlzCisrCQkgICAgIG1ldGhvZC90eXBlIGNv bWJpbmF0aW9uIGlzbid0IGFjdHVhbGx5IGRlZmluZWQuCisrCQkgICAgIEl0IHdpbGwgYmUgY2hl Y2tlZCBsYXRlci4gICovCisrCQkgIHNhdmVkX2phdmFfYXJncHRyID0gcDsKKysJCSAgcCA9IHAy OworKwkJfQorKwkgICAgfQogIAl9CiAgCiAgICAgICAgLyogQWxsb2NhdGUgb3VyIG93biBjb3B5 IG9mIHRoZSBzdWJzdHJpbmcgYmV0d2VlbiBhcmdwdHIgYW5kCi1AQCAtMTUwOSw4ICsxNDcxLDM5 IEBAIGZpbmRfbWV0aG9kIChpbnQgZnVuZmlyc3RsaW5lLCBjaGFyICoqKmNhbm9uaWNhbCwgY2hh ciAqc2F2ZWRfYXJnLAorQEAgLTE0MDgsOSArMTQxOSwyNiBAQCBkZWNvZGVfY29tcG91bmQgKGNo YXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAorIAkgaGVy ZSwgd2UgcmV0dXJuLiBJZiBub3QsIGFuZCB3ZSBhcmUgYXQgdGhlIGFuZCBvZiB0aGUgc3RyaW5n LAorIAkgd2UnbGwgbG9va3VwIHRoZSB3aG9sZSBzdHJpbmcgaW4gdGhlIHN5bWJvbCB0YWJsZXMu ICAqLworIAorLSAgICAgIHJldHVybiBmaW5kX21ldGhvZCAoZnVuZmlyc3RsaW5lLCBjYW5vbmlj YWwsIHNhdmVkX2FyZywKKy0JCQkgIGNvcHksIHQsIHN5bV9jbGFzcywgbm90X2ZvdW5kX3B0cik7 CistCisrICAgICAgdmFsdWVzID0gZmluZF9tZXRob2QgKGZ1bmZpcnN0bGluZSwgY2Fub25pY2Fs LCBzYXZlZF9hcmcsCisrCQkJICAgIGNvcHksIHQsIHN5bV9jbGFzcywgbm90X2ZvdW5kX3B0cik7 CisrICAgICAgaWYgKHNhdmVkX2phdmFfYXJncHRyICE9IE5VTEwgJiYgdmFsdWVzLm5lbHRzID09 IDEpCisrCXsKKysJICAvKiBUaGUgdXNlciBzcGVjaWZpZWQgYSBzcGVjaWZpYyByZXR1cm4gdHlw ZSBmb3IgYSBqYXZhIG1ldGhvZC4KKysJICAgICBEb3VibGUtY2hlY2sgdGhhdCBpdCByZWFsbHkg aXMgdGhlIG9uZSB0aGUgdXNlciBzcGVjaWZpZWQuCisrCSAgICAgW1RoaXMgaXMgYSBuZWNlc3Nh cnkgZXZpbCBiZWNhdXNlIHN0cmNtcF9pd19vcmRlcmVkIHN0b3BzCisrCSAgICAgY29tcGFyaXNv bnMgdG9vIHByZW1hdHVyZWx5Ll0gICovCisrCSAgc3ltID0gZmluZF9wY19zZWN0X2Z1bmN0aW9u ICh2YWx1ZXMuc2Fsc1swXS5wYywKKysJCQkJICAgICAgIHZhbHVlcy5zYWxzWzBdLnNlY3Rpb24p OworKwkgIC8qIFdlIGp1c3QgZm91bmQgYSBTQUwsIHdlIGhhZCBiZXR0ZXIgYmUgYWJsZSB0byBn byBiYWNrd2FyZHMhICAqLworKwkgIGdkYl9hc3NlcnQgKHN5bSAhPSBOVUxMKTsKKysJICBpZiAo c3RyY21wX2l3IChTWU1CT0xfTElOS0FHRV9OQU1FIChzeW0pLCBzYXZlZF9hcmcpICE9IDApCisr CSAgICB7CisrCSAgICAgIHhmcmVlICh2YWx1ZXMuc2Fscyk7CisrCSAgICAgIGVycm9yIChfKCJ0 aGUgY2xhc3MgYCVzJyBkb2VzIG5vdCBoYXZlIGFueSBtZXRob2QgaW5zdGFuY2UgbmFtZWQgJXNc biIpLAorKwkJICAgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltX2NsYXNzKSwgY29weSk7CisrCSAg ICB9CisrCX0KKysgICAgICByZXR1cm4gdmFsdWVzOworICAgICB9IC8qIEVuZCBpZiBzeW1ib2wg Zm91bmQgKi8KKyAKKyAKK0BAIC0xNTM0LDggKzE1NjIsMzkgQEAgZmluZF9tZXRob2QgKGludCBm dW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLCBjaGFyICpzYXZlZF9hcmcsCiAgICAgIH0K ICAgIGlmIChpMSA+IDApCiAgICAgIHsKQEAgLTg5MjgsMTMgKzk3MzcsMjMgQEAgaW5kZXggNzQ5 MDJiNi4uNGU1NGEzYSAxMDA2NDQKICsJICAgIH0KICsKICsJICBlcnJvciAoXygidGhlIGNsYXNz IGAlcycgZG9lcyBub3QgaGF2ZSBhbnkgbWV0aG9kIGluc3RhbmNlIG5hbWVkICVzXG4iKSwKLSsJ CSAgIFNZTUJPTF9QUklOVF9OQU1FIChzeW1fY2xhc3MpLCBjb3B5KTsKKysJCSBTWU1CT0xfUFJJ TlRfTkFNRSAoc3ltX2NsYXNzKSwgY29weSk7CiArCX0KICsKICAgICAgICByZXR1cm4gZGVjb2Rl X2xpbmVfMiAoc3ltX2FyciwgaTEsIGZ1bmZpcnN0bGluZSwgY2Fub25pY2FsKTsKICAgICAgfQog ICAgZWxzZQotQEAgLTE4MTUsNyArMTgwOCw3IEBAIHN5bWJvbF9mb3VuZCAoaW50IGZ1bmZpcnN0 bGluZSwgY2hhciAqKipjYW5vbmljYWwsIGNoYXIgKmNvcHksCitAQCAtMTU3Nyw3ICsxNjM2LDgg QEAgc3ltdGFiX2Zyb21fZmlsZW5hbWUgKGNoYXIgKiphcmdwdHIsIGNoYXIgKnAsIGludCBpc19x dW90ZV9lbmNsb3NlZCwKKyAgIGNvcHkgPSAoY2hhciAqKSBhbGxvY2EgKHAgLSAqYXJncHRyICsg MSk7CisgICBtZW1jcHkgKGNvcHksICphcmdwdHIsIHAgLSAqYXJncHRyKTsKKyAgIC8qIEl0IG1h eSBoYXZlIHRoZSBlbmRpbmcgcXVvdGUgcmlnaHQgYWZ0ZXIgdGhlIGZpbGUgbmFtZS4gICovCist ICBpZiAoaXNfcXVvdGVfZW5jbG9zZWQgJiYgY29weVtwIC0gKmFyZ3B0ciAtIDFdID09ICciJykK KysgIGlmICgoaXNfcXVvdGVfZW5jbG9zZWQgJiYgY29weVtwIC0gKmFyZ3B0ciAtIDFdID09ICci JykKKysgICAgICB8fCBjb3B5W3AgLSAqYXJncHRyIC0gMV0gPT0gJ1wnJykKKyAgICAgY29weVtw IC0gKmFyZ3B0ciAtIDFdID0gMDsKKyAgIGVsc2UKKyAgICAgY29weVtwIC0gKmFyZ3B0cl0gPSAw OworQEAgLTE4NDAsNyArMTkwMCw3IEBAIHN5bWJvbF9mb3VuZCAoaW50IGZ1bmZpcnN0bGluZSwg Y2hhciAqKipjYW5vbmljYWwsIGNoYXIgKmNvcHksCiAgCXsKICAJICBzdHJ1Y3QgYmxvY2t2ZWN0 b3IgKmJ2ID0gQkxPQ0tWRUNUT1IgKFNZTUJPTF9TWU1UQUIgKHN5bSkpOwogIAkgIHN0cnVjdCBi bG9jayAqYiA9IEJMT0NLVkVDVE9SX0JMT0NLIChidiwgU1RBVElDX0JMT0NLKTsKQEAgLTg5NDQs MTAgKzk3NjMsMTAgQEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEzYSAxMDA2NDQKICAJfQogICAgICAg IHJldHVybiB2YWx1ZXM7CiBkaWZmIC0tZ2l0IGEvZ2RiL2xpbnV4LW5hdC5jIGIvZ2RiL2xpbnV4 LW5hdC5jCi1pbmRleCA3ZmM5NTg0Li5iMjg2ZGZkIDEwMDY0NAoraW5kZXggZTU1ZDk1OC4uZTQx ZWQ3NCAxMDA2NDQKIC0tLSBhL2dkYi9saW51eC1uYXQuYwogKysrIGIvZ2RiL2xpbnV4LW5hdC5j Ci1AQCAtMjYyNCw2ICsyNjI0LDM5IEBAIGxpbnV4X25hdF9zdG9wcGVkX2RhdGFfYWRkcmVzcyAo c3RydWN0IHRhcmdldF9vcHMgKm9wcywgQ09SRV9BRERSICphZGRyX3ApCitAQCAtMjYxOCw2ICsy NjE4LDM5IEBAIGxpbnV4X25hdF9zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhcmdldF9v cHMgKm9wcywgQ09SRV9BRERSICphZGRyX3ApCiAgICByZXR1cm4gbHAtPnN0b3BwZWRfZGF0YV9h ZGRyZXNzX3A7CiAgfQogIApAQCAtODk4Nyw3ICs5ODA2LDcgQEAgaW5kZXggN2ZjOTU4NC4uYjI4 NmRmZCAxMDA2NDQKICAvKiBXYWl0IHVudGlsIExQIGlzIHN0b3BwZWQuICAqLwogIAogIHN0YXRp YyBpbnQKLUBAIC01NTAwLDYgKzU1MzMsOCBAQCBsaW51eF9uYXRfYWRkX3RhcmdldCAoc3RydWN0 IHRhcmdldF9vcHMgKnQpCitAQCAtNTU4NCw2ICs1NjE3LDggQEAgbGludXhfbmF0X2FkZF90YXJn ZXQgKHN0cnVjdCB0YXJnZXRfb3BzICp0KQogICAgdC0+dG9fdGhyZWFkX2FkZHJlc3Nfc3BhY2Ug PSBsaW51eF9uYXRfdGhyZWFkX2FkZHJlc3Nfc3BhY2U7CiAgICB0LT50b19zdG9wcGVkX2J5X3dh dGNocG9pbnQgPSBsaW51eF9uYXRfc3RvcHBlZF9ieV93YXRjaHBvaW50OwogICAgdC0+dG9fc3Rv cHBlZF9kYXRhX2FkZHJlc3MgPSBsaW51eF9uYXRfc3RvcHBlZF9kYXRhX2FkZHJlc3M7CkBAIC05 MTA0LDEwICs5OTIzLDEwIEBAIGluZGV4IDY4MDQ2MDkuLjJjYjFiZjkgMTAwNjQ0CiAgCiAgLyog UHJvdmlkZSBhIHByb3RvdHlwZSB0byBzaWxlbmNlIC1XbWlzc2luZy1wcm90b3R5cGVzLiAgKi8K IGRpZmYgLS1naXQgYS9nZGIvbWFjaG9yZWFkLmMgYi9nZGIvbWFjaG9yZWFkLmMKLWluZGV4IDAy YjYxZDMuLjEzYWI1OTUgMTAwNjQ0CitpbmRleCBhODEwYmIyLi5iNDE2OTcwIDEwMDY0NAogLS0t IGEvZ2RiL21hY2hvcmVhZC5jCiArKysgYi9nZGIvbWFjaG9yZWFkLmMKLUBAIC03NTUsNiArNzU1 LDcgQEAgc3RhdGljIHN0cnVjdCBzeW1fZm5zIG1hY2hvX3N5bV9mbnMgPSB7CitAQCAtODQyLDYg Kzg0Miw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc3ltX2ZucyBtYWNob19zeW1fZm5zID0gewogICAgbWFj aG9fbmV3X2luaXQsICAgICAgICAgICAgICAgLyogc3ltX25ld19pbml0OiBpbml0IGFueXRoaW5n IGdibCB0byBlbnRpcmUgc3ltdGFiICovCiAgICBtYWNob19zeW1maWxlX2luaXQsICAgICAgICAg ICAvKiBzeW1faW5pdDogcmVhZCBpbml0aWFsIGluZm8sIHNldHVwIGZvciBzeW1fcmVhZCgpICov CiAgICBtYWNob19zeW1maWxlX3JlYWQsICAgICAgICAgICAvKiBzeW1fcmVhZDogcmVhZCBhIHN5 bWJvbCBmaWxlIGludG8gc3ltdGFiICovCkBAIC05MzY5LDcgKzEwMTg4LDcgQEAgaW5kZXggMjg3 ZjlkZS4uMWZlMGZiZSAxMDA2NDQKICAJCSAgICAgICBTWU1CT0xfTElOS0FHRV9OQU1FICh0c3lt Ym9sKSkgPT0gMCkKICAJICByZXR1cm4gU1lNQk9MX1ZBTFVFX0FERFJFU1MgKG1zeW1ib2wpOwog ZGlmZiAtLWdpdCBhL2dkYi9taXBzLWxpbnV4LXRkZXAuYyBiL2dkYi9taXBzLWxpbnV4LXRkZXAu YwotaW5kZXggNmJiNGViNi4uMmIwNzk0MiAxMDA2NDQKK2luZGV4IDU5MjRiMzAuLjI5NTcwMjQg MTAwNjQ0CiAtLS0gYS9nZGIvbWlwcy1saW51eC10ZGVwLmMKICsrKyBiL2dkYi9taXBzLWxpbnV4 LXRkZXAuYwogQEAgLTM4LDYgKzM4LDcgQEAKQEAgLTkzODAsNyArMTAxOTksNyBAQCBpbmRleCA2 YmI0ZWI2Li4yYjA3OTQyIDEwMDY0NAogIAogIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X3NvX29wcyBt aXBzX3N2cjRfc29fb3BzOwogIAotQEAgLTEyMjUsNiArMTIyNiw5IEBAIG1pcHNfbGludXhfaW5p dF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywKK0BAIC0xMjIyLDYgKzEyMjMsOSBAQCBt aXBzX2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sCiAgCXRkZXNjX251 bWJlcmVkX3JlZ2lzdGVyIChmZWF0dXJlLCB0ZGVzY19kYXRhLCBNSVBTX1JFU1RBUlRfUkVHTlVN LAogIAkJCQkgInJlc3RhcnQiKTsKICAgICAgfQpAQCAtOTM5MSw3ICsxMDIxMCw3IEBAIGluZGV4 IDZiYjRlYjYuLjJiMDc5NDIgMTAwNjQ0CiAgCiAgLyogUHJvdmlkZSBhIHByb3RvdHlwZSB0byBz aWxlbmNlIC1XbWlzc2luZy1wcm90b3R5cGVzLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvbWlwc3Jl YWQuYyBiL2dkYi9taXBzcmVhZC5jCi1pbmRleCA0ZWY4MTdlLi4xYzUzNTc0IDEwMDY0NAoraW5k ZXggMDkzMzEzZS4uOTE0NGQwMCAxMDA2NDQKIC0tLSBhL2dkYi9taXBzcmVhZC5jCiArKysgYi9n ZGIvbWlwc3JlYWQuYwogQEAgLTM5NCw2ICszOTQsNyBAQCBzdGF0aWMgc3RydWN0IHN5bV9mbnMg ZWNvZmZfc3ltX2ZucyA9CkBAIC05NDY0LDEwICsxMDI4MywxMCBAQCBpbmRleCBhMDUwZjE1Li4w NGQxZjFjIDEwMDY0NAogIAkgIGlmIChzeW0gIT0gTlVMTCkKICAJICAgIHsKIGRpZmYgLS1naXQg YS9nZGIvb2JqZmlsZXMuYyBiL2dkYi9vYmpmaWxlcy5jCi1pbmRleCAwYjA3ZTM3Li41ZGU1MzAw IDEwMDY0NAoraW5kZXggYzI3NjNjMi4uNWQ2MjAyMCAxMDA2NDQKIC0tLSBhL2dkYi9vYmpmaWxl cy5jCiArKysgYi9nZGIvb2JqZmlsZXMuYwotQEAgLTc4OSw2ICs3ODksMTAgQEAgb2JqZmlsZV9y ZWxvY2F0ZTEgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3Qgc2VjdGlvbl9vZmZzZXRz ICpuZXdfb2Zmc2V0cykKK0BAIC03OTIsNiArNzkyLDEwIEBAIG9iamZpbGVfcmVsb2NhdGUxIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IHNlY3Rpb25fb2Zmc2V0cyAqbmV3X29mZnNl dHMpCiAgICAgIH0KICAgIH0KICAKQEAgLTk0NzgsNyArMTAyOTcsNyBAQCBpbmRleCAwYjA3ZTM3 Li41ZGU1MzAwIDEwMDY0NAogICAgewogICAgICBzdHJ1Y3QgcGFydGlhbF9zeW1ib2wgKipwc3lt OwogIAotQEAgLTkxNCw3ICs5MTgsNyBAQCBvYmpmaWxlX3JlbG9jYXRlIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwgc3RydWN0IHNlY3Rpb25fb2Zmc2V0cyAqbmV3X29mZnNldHMpCitAQCAtOTE3 LDcgKzkyMSw3IEBAIG9iamZpbGVfcmVsb2NhdGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBz dHJ1Y3Qgc2VjdGlvbl9vZmZzZXRzICpuZXdfb2Zmc2V0cykKICBpbnQKICBvYmpmaWxlX2hhc19w YXJ0aWFsX3N5bWJvbHMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIHsKQEAgLTk0ODcsNyAr MTAzMDYsNyBAQCBpbmRleCAwYjA3ZTM3Li41ZGU1MzAwIDEwMDY0NAogIH0KICAKICAvKiBSZXR1 cm4gbm9uLXplcm8gaWYgT0JKRklMRSBoYXMgZnVsbCBzeW1ib2xzLiAgKi8KLUBAIC05NTQsNiAr OTU4LDIwIEBAIGhhdmVfcGFydGlhbF9zeW1ib2xzICh2b2lkKQorQEAgLTk1Nyw2ICs5NjEsMjAg QEAgaGF2ZV9wYXJ0aWFsX3N5bWJvbHMgKHZvaWQpCiAgICAgIGlmIChvYmpmaWxlX2hhc19wYXJ0 aWFsX3N5bWJvbHMgKG9mcCkpCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CkBAIC05NTU1LDcgKzEw Mzc0LDcgQEAgaW5kZXggYzY4OTYyMi4uZWIzYWUxMCAxMDA2NDQKICAgIEFMTF9QU1BBQ0VfT0JK RklMRVMgKHNzLCBvYmpmaWxlKQkJCVwKICAgICAgQUxMX09CSkZJTEVfUFNZTVRBQlMgKG9iamZp bGUsIHApCiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwotaW5kZXggZDVh MTk5Yi4uYzNlZjllMSAxMDA2NDQKK2luZGV4IGFhYmM0NjEuLmUyYWI4ZDkgMTAwNjQ0CiAtLS0g YS9nZGIvcGFyc2UuYwogKysrIGIvZ2RiL3BhcnNlLmMKIEBAIC02Miw2ICs2Miw3IEBAIGNvbnN0 IHN0cnVjdCBleHBfZGVzY3JpcHRvciBleHBfZGVzY3JpcHRvcl9zdGFuZGFyZCA9CkBAIC05NTY2 LDcgKzEwMzg1LDcgQEAgaW5kZXggZDVhMTk5Yi4uYzNlZjllMSAxMDA2NDQKICAgICAgb3BfbmFt ZV9zdGFuZGFyZCwKICAgICAgZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCwKICAgICAgZXZhbHVh dGVfc3ViZXhwX3N0YW5kYXJkCi1AQCAtNTExLDYgKzUxMiwxMSBAQCB3cml0ZV9leHBfbXN5bWJv bCAoc3RydWN0IG1pbmltYWxfc3ltYm9sICptc3ltYm9sKQorQEAgLTUyMyw2ICs1MjQsMTEgQEAg d3JpdGVfZXhwX21zeW1ib2wgKHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqbXN5bWJvbCkKICAgICAg ICB3cml0ZV9leHBfZWx0X3R5cGUgKG9iamZpbGVfdHlwZSAob2JqZmlsZSktPm5vZGVidWdfdGV4 dF9zeW1ib2wpOwogICAgICAgIGJyZWFrOwogIApAQCAtOTU3OCw3ICsxMDM5Nyw3IEBAIGluZGV4 IGQ1YTE5OWIuLmMzZWY5ZTEgMTAwNjQ0CiAgICAgIGNhc2UgbXN0X2RhdGE6CiAgICAgIGNhc2Ug bXN0X2ZpbGVfZGF0YToKICAgICAgY2FzZSBtc3RfYnNzOgotQEAgLTg0MSw2ICs4NDcsMTAgQEAg b3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwciwgaW50IGVu ZHBvcywKK0BAIC04NTMsNiArODU5LDEwIEBAIG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAoc3Ry dWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBlbmRwb3MsCiAgICAgICAgYXJncyA9IDE7CiAgICAg ICAgYnJlYWs7CiAgCkBAIC05NTg5LDcgKzEwNDA4LDIxIEBAIGluZGV4IGQ1YTE5OWIuLmMzZWY5 ZTEgMTAwNjQ0CiAgICAgIGNhc2UgT1BfT0JKQ19NU0dDQUxMOgkvKiBPYmplY3RpdmUgQyBtZXNz YWdlIChtZXRob2QpIGNhbGwgKi8KICAgICAgICBvcGxlbiA9IDQ7CiAgICAgICAgYXJncyA9IDEg KyBsb25nZXN0X3RvX2ludCAoZXhwci0+ZWx0c1tlbmRwb3MgLSAyXS5sb25nY29uc3QpOwotQEAg LTEzNjEsNiArMTM3MSwxNTEgQEAgcGFyc2VyX2ZwcmludGYgKEZJTEUgKngsIGNvbnN0IGNoYXIg KnksIC4uLikKK0BAIC04ODksNiArODk5LDEzIEBAIG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAo c3RydWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBlbmRwb3MsCisgICAgICAgYXJncyA9IDE7Cisg ICAgICAgYnJlYWs7CisgCisrICAgIGNhc2UgT1BfQURMX0ZVTkM6CisrICAgICAgb3BsZW4gPSBs b25nZXN0X3RvX2ludCAoZXhwci0+ZWx0c1tlbmRwb3MgLSAyXS5sb25nY29uc3QpOworKyAgICAg IG9wbGVuID0gNCArIEJZVEVTX1RPX0VYUF9FTEVNIChvcGxlbiArIDEpOworKyAgICAgIG9wbGVu Kys7CisrICAgICAgb3BsZW4rKzsKKysgICAgICBicmVhazsKKysKKyAgICAgY2FzZSBPUF9MQUJF TEVEOgorICAgICBjYXNlIFNUUlVDVE9QX1NUUlVDVDoKKyAgICAgY2FzZSBTVFJVQ1RPUF9QVFI6 CitAQCAtMTM3Myw2ICsxMzkwLDE1MSBAQCBwYXJzZXJfZnByaW50ZiAoRklMRSAqeCwgY29uc3Qg Y2hhciAqeSwgLi4uKQogICAgdmFfZW5kIChhcmdzKTsKICB9CiAgCkBAIC05NzQyLDEwICsxMDU3 NSwxMCBAQCBpbmRleCBkNWExOTliLi5jM2VmOWUxIDEwMDY0NAogIF9pbml0aWFsaXplX3BhcnNl ICh2b2lkKQogIHsKIGRpZmYgLS1naXQgYS9nZGIvcGFyc2VyLWRlZnMuaCBiL2dkYi9wYXJzZXIt ZGVmcy5oCi1pbmRleCA2ZmNmN2FlLi4zZjVlZmU4IDEwMDY0NAoraW5kZXggYzRlYjFhMC4uMmE0 M2ZlMyAxMDA2NDQKIC0tLSBhL2dkYi9wYXJzZXItZGVmcy5oCiArKysgYi9nZGIvcGFyc2VyLWRl ZnMuaAotQEAgLTE5MCw2ICsxOTAsMTMgQEAgZXh0ZXJuIHZvaWQgb3BlcmF0b3JfbGVuZ3RoIChz dHJ1Y3QgZXhwcmVzc2lvbiAqLCBpbnQsIGludCAqLCBpbnQgKik7CitAQCAtMTkyLDYgKzE5Miwx MyBAQCBleHRlcm4gdm9pZCBvcGVyYXRvcl9sZW5ndGggKHN0cnVjdCBleHByZXNzaW9uICosIGlu dCwgaW50ICosIGludCAqKTsKICAKICBleHRlcm4gdm9pZCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRh cmQgKHN0cnVjdCBleHByZXNzaW9uICosIGludCwgaW50ICosIGludCAqKTsKICAKQEAgLTk3NTks NyArMTA1OTIsNyBAQCBpbmRleCA2ZmNmN2FlLi4zZjVlZmU4IDEwMDY0NAogIGV4dGVybiBjaGFy ICpvcF9uYW1lX3N0YW5kYXJkIChlbnVtIGV4cF9vcGNvZGUpOwogIAogIGV4dGVybiBzdHJ1Y3Qg dHlwZSAqZm9sbG93X3R5cGVzIChzdHJ1Y3QgdHlwZSAqKTsKLUBAIC0yNjgsNiArMjc1LDIwIEBA IHN0cnVjdCBleHBfZGVzY3JpcHRvcgorQEAgLTI3MCw2ICsyNzcsMjAgQEAgc3RydWN0IGV4cF9k ZXNjcmlwdG9yCiAgICAgICAgIHRoZSBudW1iZXIgb2Ygc3ViZXhwcmVzc2lvbnMgaXQgdGFrZXMu ICAqLwogICAgICB2b2lkICgqb3BlcmF0b3JfbGVuZ3RoKSAoc3RydWN0IGV4cHJlc3Npb24qLCBp bnQsIGludCosIGludCAqKTsKICAKQEAgLTk3ODAsNyArMTA2MTMsNyBAQCBpbmRleCA2ZmNmN2Fl Li4zZjVlZmU4IDEwMDY0NAogICAgICAvKiBOYW1lIG9mIHRoaXMgb3BlcmF0b3IgZm9yIGR1bXBp bmcgcHVycG9zZXMuICAqLwogICAgICBjaGFyICooKm9wX25hbWUpIChlbnVtIGV4cF9vcGNvZGUp OwogIAotQEAgLTMwMCw0ICszMjEsOCBAQCBleHRlcm4gdm9pZCBwcmludF9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCBleHByZXNzaW9uICosIGludCAqLAorQEAgLTMwMiw0ICszMjMsOCBAQCBleHRl cm4gdm9pZCBwcmludF9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICosIGludCAq LAogIAogIGV4dGVybiB2b2lkIHBhcnNlcl9mcHJpbnRmIChGSUxFICosIGNvbnN0IGNoYXIgKiwg Li4uKSBBVFRSX0ZPUk1BVCAocHJpbnRmLCAyICwzKTsKICAKQEAgLTE1NDUxLDcgKzE2Mjg0LDcg QEAgaW5kZXggYTc5MjgxOS4uYmRhYzgwZSAxMDA2NDQKICAKICAMCiBkaWZmIC0tZ2l0IGEvZ2Ri L3B5dGhvbi9weXRob24taW50ZXJuYWwuaCBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgK LWluZGV4IDkxOTZmMDguLjUyMzBhOGMgMTAwNjQ0CitpbmRleCAxYmZhNzAwLi41MmY5YjM5IDEw MDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAogKysrIGIvZ2RiL3B5dGhv bi9weXRob24taW50ZXJuYWwuaAogQEAgLTYxLDM2ICs2MSw3OSBAQCB0eXBlZGVmIGludCBQeV9z c2l6ZV90OwpAQCAtMTYxNjYsMTAgKzE2OTk5LDEwIEBAIGluZGV4IDk0YTc3ZmIuLjdlYTY4ZDIg MTAwNjQ0CiAgfQogIAogZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi1zdnI0LmMgYi9nZGIvc29saWIt c3ZyNC5jCi1pbmRleCA1Njg5YmYzLi4yYjYwOWFmIDEwMDY0NAoraW5kZXggOGVkYzg4OS4uNWVh MTc3OSAxMDA2NDQKIC0tLSBhL2dkYi9zb2xpYi1zdnI0LmMKICsrKyBiL2dkYi9zb2xpYi1zdnI0 LmMKLUBAIC0xMjE4LDcgKzEyMTgsOCBAQCBzdnI0X2luX2R5bnN5bV9yZXNvbHZlX2NvZGUgKENP UkVfQUREUiBwYykKK0BAIC0xMjQxLDcgKzEyNDEsOCBAQCBzdnI0X2luX2R5bnN5bV9yZXNvbHZl X2NvZGUgKENPUkVfQUREUiBwYykKICAJICAgJiYgcGMgPCBpbmZvLT5pbnRlcnBfdGV4dF9zZWN0 X2hpZ2gpCiAgCSAgfHwgKHBjID49IGluZm8tPmludGVycF9wbHRfc2VjdF9sb3cKICAJICAgICAg JiYgcGMgPCBpbmZvLT5pbnRlcnBfcGx0X3NlY3RfaGlnaCkKQEAgLTE2MTc5LDcgKzE3MDEyLDcg QEAgaW5kZXggNTY4OWJmMy4uMmI2MDlhZiAxMDA2NDQKICB9CiAgCiAgLyogR2l2ZW4gYW4gZXhl Y3V0YWJsZSdzIEFCRkQgYW5kIHRhcmdldCwgY29tcHV0ZSB0aGUgZW50cnktcG9pbnQKLUBAIC0x OTcxLDcgKzE5NzIsNiBAQCBzdHJ1Y3QgdGFyZ2V0X3NvX29wcyBzdnI0X3NvX29wczsKK0BAIC0y MDM4LDcgKzIwMzksNiBAQCBzdHJ1Y3QgdGFyZ2V0X3NvX29wcyBzdnI0X3NvX29wczsKICBzdGF0 aWMgc3RydWN0IHN5bWJvbCAqCiAgZWxmX2xvb2t1cF9saWJfc3ltYm9sIChjb25zdCBzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSwKICAJCSAgICAgICBjb25zdCBjaGFyICpuYW1lLApAQCAtMTYxODcs NyArMTcwMjAsNyBAQCBpbmRleCA1Njg5YmYzLi4yYjYwOWFmIDEwMDY0NAogIAkJICAgICAgIGNv bnN0IGRvbWFpbl9lbnVtIGRvbWFpbikKICB7CiAgICBiZmQgKmFiZmQ7Ci1AQCAtMTk4OSw4ICsx OTg5LDcgQEAgZWxmX2xvb2t1cF9saWJfc3ltYm9sIChjb25zdCBzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSwKK0BAIC0yMDU2LDggKzIwNTYsNyBAQCBlbGZfbG9va3VwX2xpYl9zeW1ib2wgKGNvbnN0 IHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogICAgaWYgKGFiZmQgPT0gTlVMTCB8fCBzY2FuX2R5 bnRhZyAoRFRfU1lNQk9MSUMsIGFiZmQsIE5VTEwpICE9IDEpCiAgICAgIHJldHVybiBOVUxMOwog IApAQCAtMTYyMzcsNyArMTcwNzAsNyBAQCBpbmRleCA1NzNmNzM2Li41MWJmY2U5IDEwMDY0NAog IAogICNlbmRpZgogZGlmZiAtLWdpdCBhL2dkYi9zb21yZWFkLmMgYi9nZGIvc29tcmVhZC5jCi1p bmRleCBjN2JlYWJhLi5lMzExNjRjIDEwMDY0NAoraW5kZXggM2Q5M2M1ZS4uYTk0MzgwNiAxMDA2 NDQKIC0tLSBhL2dkYi9zb21yZWFkLmMKICsrKyBiL2dkYi9zb21yZWFkLmMKIEBAIC00MzIsNiAr NDMyLDcgQEAgc3RhdGljIHN0cnVjdCBzeW1fZm5zIHNvbV9zeW1fZm5zID0KQEAgLTE2MzUzLDEw ICsxNzE4NiwxMCBAQCBpbmRleCAyY2FmOWQyLi43YWRjMzk5IDEwMDY0NAogICAgZm9yIChpID0g MCwgZmkgPSB0cmFpbGluZzsgZmkgJiYgY291bnQtLTsgaSsrLCBmaSA9IGdldF9wcmV2X2ZyYW1l IChmaSkpCiAgICAgIHsKIGRpZmYgLS1naXQgYS9nZGIvc3ltZmlsZS5jIGIvZ2RiL3N5bWZpbGUu YwotaW5kZXggYmM1MjQwNi4uNWQ1ZDgzZiAxMDA2NDQKK2luZGV4IDg3MDU0MjAuLjE2Zjk2YTEg MTAwNjQ0CiAtLS0gYS9nZGIvc3ltZmlsZS5jCiArKysgYi9nZGIvc3ltZmlsZS5jCi1AQCAtOTY2 LDEzICs5NjYsMTYgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zmc2V0cyAoYmZk ICphYmZkLAorQEAgLTk2OCwxMyArOTY4LDE2IEBAIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJz X29yX29mZnNldHMgKGJmZCAqYWJmZCwKICAgIC8qIEdpdmUgdXNlciBhIGNoYW5jZSB0byBidXJw IGlmIHdlJ2QgYmUKICAgICAgIGludGVyYWN0aXZlbHkgd2lwaW5nIG91dCBhbnkgZXhpc3Rpbmcg c3ltYm9scy4gICovCiAgCkBAIC0xNjM3NSw3ICsxNzIwOCw3IEBAIGluZGV4IGJjNTI0MDYuLjVk NWQ4M2YgMTAwNjQ0CiAgICBkaXNjYXJkX2NsZWFudXBzIChteV9jbGVhbnVwcyk7CiAgCiAgICAv KiBXZSBlaXRoZXIgY3JlYXRlZCBhIG5ldyBtYXBwZWQgc3ltYm9sIHRhYmxlLCBtYXBwZWQgYW4g ZXhpc3RpbmcKLUBAIC05OTksNiArMTAwMiw4IEBAIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJz X29yX29mZnNldHMgKGJmZCAqYWJmZCwKK0BAIC0xMDAxLDYgKzEwMDQsOCBAQCBzeW1ib2xfZmls ZV9hZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRzIChiZmQgKmFiZmQsCiAgCiAgICBpZiAoKGZsYWdz ICYgT0JKRl9SRUFETk9XKSB8fCByZWFkbm93X3N5bWJvbF9maWxlcykKICAgICAgewpAQCAtMTYz ODQsNyArMTcyMTcsNyBAQCBpbmRleCBiYzUyNDA2Li41ZDVkODNmIDEwMDY0NAogICAgICAgIGlm IChmcm9tX3R0eSB8fCBpbmZvX3ZlcmJvc2UpCiAgCXsKICAJICBwcmludGZfdW5maWx0ZXJlZCAo XygiZXhwYW5kaW5nIHRvIGZ1bGwgc3ltYm9scy4uLiIpKTsKLUBAIC0yMzIxLDYgKzIzMjYsNyBA QCByZXJlYWRfc3ltYm9scyAodm9pZCkKK0BAIC0yMzIzLDYgKzIzMjgsNyBAQCByZXJlYWRfc3lt Ym9scyAodm9pZCkKICAJICBvYmpmaWxlLT5zeW10YWJzID0gTlVMTDsKICAJICBvYmpmaWxlLT5w c3ltdGFicyA9IE5VTEw7CiAgCSAgb2JqZmlsZS0+cHN5bXRhYnNfYWRkcm1hcCA9IE5VTEw7CkBA IC0xNjM5Miw3ICsxNzIyNSw3IEBAIGluZGV4IGJjNTI0MDYuLjVkNWQ4M2YgMTAwNjQ0CiAgCSAg b2JqZmlsZS0+ZnJlZV9wc3ltdGFicyA9IE5VTEw7CiAgCSAgb2JqZmlsZS0+Y3BfbmFtZXNwYWNl X3N5bXRhYiA9IE5VTEw7CiAgCSAgb2JqZmlsZS0+bXN5bWJvbHMgPSBOVUxMOwotQEAgLTIzMzEs NiArMjMzNyw4IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQorQEAgLTIzMzMsNiArMjMzOSw4IEBA IHJlcmVhZF9zeW1ib2xzICh2b2lkKQogIAkgIG1lbXNldCAoJm9iamZpbGUtPm1zeW1ib2xfZGVt YW5nbGVkX2hhc2gsIDAsCiAgCQkgIHNpemVvZiAob2JqZmlsZS0+bXN5bWJvbF9kZW1hbmdsZWRf aGFzaCkpOwogIApAQCAtMTY0MDIsMTAgKzE3MjM1LDEwIEBAIGluZGV4IGJjNTI0MDYuLjVkNWQ4 M2YgMTAwNjQ0CiAgCSAgb2JqZmlsZS0+bWFjcm9fY2FjaGUgPSBiY2FjaGVfeG1hbGxvYyAoKTsK ICAJICBvYmpmaWxlLT5maWxlbmFtZV9jYWNoZSA9IGJjYWNoZV94bWFsbG9jICgpOwogZGlmZiAt LWdpdCBhL2dkYi9zeW1maWxlLmggYi9nZGIvc3ltZmlsZS5oCi1pbmRleCBlZmEwNjllLi5iNTIw YjkzIDEwMDY0NAoraW5kZXggZmU5NTI1NS4uMDc1NjEwYiAxMDA2NDQKIC0tLSBhL2dkYi9zeW1m aWxlLmgKICsrKyBiL2dkYi9zeW1maWxlLmgKLUBAIC0xMzksNiArMTM5LDEyIEBAIHN0cnVjdCBz eW1fZm5zCitAQCAtMTQxLDYgKzE0MSwxMiBAQCBzdHJ1Y3Qgc3ltX2ZucwogIAogICAgdm9pZCAo KnN5bV9yZWFkKSAoc3RydWN0IG9iamZpbGUgKiwgaW50KTsKICAKQEAgLTE2NDE4LDcgKzE3MjUx LDcgQEAgaW5kZXggZWZhMDY5ZS4uYjUyMGI5MyAxMDA2NDQKICAgIC8qIENhbGxlZCB3aGVuIHdl IGFyZSBmaW5pc2hlZCB3aXRoIGFuIG9iamZpbGUuICBTaG91bGQgZG8gYWxsCiAgICAgICBjbGVh bnVwIHRoYXQgaXMgc3BlY2lmaWMgdG8gdGhlIG9iamVjdCBmaWxlIGZvcm1hdCBmb3IgdGhlCiAg ICAgICBwYXJ0aWN1bGFyIG9iamZpbGUuICAqLwotQEAgLTMxNSw4ICszMjEsNyBAQCBleHRlcm4g aW50IGF1dG9fc29saWJfbGltaXQ7CitAQCAtMzMwLDggKzMzNiw3IEBAIGV4dGVybiBpbnQgYXV0 b19zb2xpYl9saW1pdDsKICAKICBleHRlcm4gdm9pZCBzZXRfaW5pdGlhbF9sYW5ndWFnZSAodm9p ZCk7CiAgCkBAIC0xNjQyOCw3ICsxNzI2MSw3IEBAIGluZGV4IGVmYTA2OWUuLmI1MjBiOTMgMTAw NjQ0CiAgCiAgZXh0ZXJuIHZvaWQgZGlzY2FyZF9wc3ltdGFiIChzdHJ1Y3QgcGFydGlhbF9zeW10 YWIgKik7CiAgCi1AQCAtMzg3LDcgKzM5Miw3IEBAIHZvaWQgZnJlZV9zeW1maWxlX3NlZ21lbnRf ZGF0YSAoc3RydWN0IHN5bWZpbGVfc2VnbWVudF9kYXRhICpkYXRhKTsKK0BAIC00MDIsNyArNDA3 LDcgQEAgdm9pZCBmcmVlX3N5bWZpbGVfc2VnbWVudF9kYXRhIChzdHJ1Y3Qgc3ltZmlsZV9zZWdt ZW50X2RhdGEgKmRhdGEpOwogIC8qIEZyb20gZHdhcmYycmVhZC5jICovCiAgCiAgZXh0ZXJuIGlu dCBkd2FyZjJfaGFzX2luZm8gKHN0cnVjdCBvYmpmaWxlICopOwpAQCAtMTkxNzgsMTggKzIwMDEx LDE4IEBAIGluZGV4IDAwMDAwMDAuLjVkYTczNzgKICtnZGJfdGVzdCAicCB0ZW1wMiIgIiA9ICcy JyA8cmVwZWF0cyA3OCB0aW1lcz4iICJzZWNvbmQ6IHByaW50IHRlbXAyIgogK2dkYl90ZXN0ICJw IHRlbXAzIiAiID0gJzMnIDxyZXBlYXRzIDQ4IHRpbWVzPiIgInNlY29uZDogcHJpbnQgdGVtcDMi CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvTWFrZWZpbGUuaW4gYi9nZGIvdGVz dHN1aXRlL2dkYi5jcC9NYWtlZmlsZS5pbgotaW5kZXggYzk5MGE2NC4uYzk2NGRiOSAxMDA2NDQK K2luZGV4IGQ3ODI1OGUuLjE3NzQyNDQgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5j cC9NYWtlZmlsZS5pbgogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvTWFrZWZpbGUuaW4KIEBA IC00LDcgKzQsNyBAQCBzcmNkaXIgPSBAc3JjZGlyQAogIEVYRUNVVEFCTEVTID0gYW1iaWd1b3Vz IGFubm90YTIgYW5vbi11bmlvbiBjcGx1c2Z1bmNzIGN0dGlhZGQgXAogIAlkZXJpdmF0aW9uIGlu aGVyaXQgbG9jYWwgbWVtYmVyLXB0ciBtZXRob2QgbWlzYyBcCiAgICAgICAgICBvdmVybG9hZCBv dmxkYnJlYWsgcmVmLXR5cCByZWYtdHlwMiB0ZW1wbGF0ZXMgdXNlcmRlZiB2aXJ0ZnVuYyBuYW1l c3BhY2UgXAotLQlyZWYtdHlwZXMgcmVmLXBhcmFtcyBtZXRob2QyIHByOTU5NCBnZGIyNDk1IHZp cnRmdW5jMgotKwlyZWYtdHlwZXMgcmVmLXBhcmFtcyBtZXRob2QyIHByOTU5NCBnZGIyNDk1IGdk Yjk1OTMgdmlydGZ1bmMyCistCXJlZi10eXBlcyByZWYtcGFyYW1zIG1ldGhvZDIgcHI5NTk0IGdk YjI0OTUgdmlydGZ1bmMyIHByOTA2NyBcCisrCXJlZi10eXBlcyByZWYtcGFyYW1zIG1ldGhvZDIg cHI5NTk0IGdkYjI0OTUgZ2RiOTU5MyB2aXJ0ZnVuYzIgcHI5MDY3IFwKKyAJcHIxMDcyCiAgCiAg YWxsIGluZm8gaW5zdGFsbC1pbmZvIGR2aSBpbnN0YWxsIHVuaW5zdGFsbCBpbnN0YWxsY2hlY2sg Y2hlY2s6Ci0gCUBlY2hvICJOb3RoaW5nIHRvIGJlIGRvbmUgZm9yICRALi4uIgogZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NwLXJlbG9jYXRlLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL2NwLXJlbG9jYXRlLmV4cAogaW5kZXggZjgxYTIxMi4uMzBkMzYyYSAxMDA2NDQKIC0t LSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NwLXJlbG9jYXRlLmV4cApAQCAtMTkyMTMsMTEgKzIw MDQ2LDExNzggQEAgaW5kZXggZjgxYTIxMi4uMzBkMzYyYSAxMDA2NDQKIC1nZGJfdGVzdCAiYnJl YWsgKickZnVuYzJfbmFtZSciIFwKICtnZGJfdGVzdCAiYnJlYWsgKiRmdW5jMl9uYW1lIiBcCiAg ICAgICJCcmVha3BvaW50ICRkZWNpbWFsIGF0IDB4Mi4uLi46IGZpbGUgLioiCi1kaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3BsdXNmdW5jcy5jYyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmNwL2NwbHVzZnVuY3MuY2MKLWluZGV4IGY0Zjc4YTYuLjExZGJhMDYgMTAwNjQ0Ci0tLS0gYS9n ZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGx1c2Z1bmNzLmNjCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5jcC9jcGx1c2Z1bmNzLmNjCi1AQCAtMTk1LDYgKzE5NSwxMiBAQCBjaGFyICoJZG1fdHlwZV9j aGFyX3N0YXIgKGNoYXIgKiBwKQkJeyByZXR1cm4gcDsgfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL2NwZXhwcnMuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGV4cHJzLmNj CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uMmJjYTRjZAorLS0tIC9kZXYv bnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3BleHBycy5jYworQEAgLTAsMCArMSw0 MzEgQEAKKysvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2Vy LgorKworKyAgIENvcHlyaWdodCAyMDA4LCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKworKyAgIENvbnRyaWJ1dGVkIGJ5IFJlZCBIYXQsIG9yaWdpbmFsbHkgd3Jp dHRlbiBieSBLZWl0aCBTZWl0ei4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor KworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KKysKKysgICBQbGVhc2UgZW1haWwgYW55IGJ1Z3MsIGNvbW1lbnRzLCBhbmQvb3IgYWRk aXRpb25zIHRvIHRoaXMgZmlsZSB0bzoKKysgICBidWctZ2RiQGdudS5vcmcgICovCisrCisrI2lu Y2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxpb3N0cmVhbT4KKysKKysvLyBGb3J3YXJkIGRl Y2xzCisrY2xhc3MgYmFzZTsKKytjbGFzcyBkZXJpdmVkOworKworKy8vIEEgc2ltcGxlIHRlbXBs YXRlIHdpdGggc3BlY2lhbGl6YXRpb25zCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisrY2xhc3Mg dGNsYXNzCisreworK3B1YmxpYzoKKysgIHZvaWQgZG9fc29tZXRoaW5nICgpIHsgfSAvLyB0Y2xh c3M8VD46OmRvX3NvbWV0aGluZworK307CisrCisrdGVtcGxhdGUgPD4KKyt2b2lkIHRjbGFzczxj aGFyPjo6ZG9fc29tZXRoaW5nICgpIHsgfSAvLyB0Y2xhc3M8Y2hhcj46OmRvX3NvbWV0aGluZwor KworK3RlbXBsYXRlIDw+Cisrdm9pZCB0Y2xhc3M8aW50Pjo6ZG9fc29tZXRoaW5nICgpIHsgfSAv LyB0Y2xhc3M8aW50Pjo6ZG9fc29tZXRoaW5nCisrCisrdGVtcGxhdGU8PgorK3ZvaWQgdGNsYXNz PGxvbmc+Ojpkb19zb21ldGhpbmcgKCkgeyB9IC8vIHRjbGFzczxsb25nPjo6ZG9fc29tZXRoaW5n CisrCisrdGVtcGxhdGU8PgorK3ZvaWQgdGNsYXNzPHNob3J0Pjo6ZG9fc29tZXRoaW5nICgpIHsg fSAvLyB0Y2xhc3M8c2hvcnQ+Ojpkb19zb21ldGhpbmcKKysKKysvLyBBIHNpbXBsZSB0ZW1wbGF0 ZSB3aXRoIG11bHRpcGxlIHRlbXBsYXRlIHBhcmFtZXRlcnMKKyt0ZW1wbGF0ZSA8Y2xhc3MgQSwg Y2xhc3MgQiwgY2xhc3MgQywgY2xhc3MgRCwgY2xhc3MgRT4KKyt2b2lkIGZsdWJiZXIgKHZvaWQp IC8vIGZsdWJiZXIKKyt7CisrICBBIGE7CisrICBCIGI7CisrICBDIGM7CisrICBEIGQ7CisrICBF IGU7CisrCisrICArK2E7CisrICArK2I7CisrICArK2M7CisrICArK2Q7CisrICArK2U7CisrfQor KworKy8vIFNvbWUgY29udHJpdmVkIHBvbGljaWVzCisrdGVtcGxhdGUgPGNsYXNzIFQ+Cisrc3Ry dWN0IG9wZXJhdGlvbl8xCisreworKyAgc3RhdGljIHZvaWQgZnVuY3Rpb24gKHZvaWQpIHsgfSAv LyBvcGVyYXRpb25fMTxUPjo6ZnVuY3Rpb24KKyt9OworKworK3RlbXBsYXRlIDxjbGFzcyBUPgor K3N0cnVjdCBvcGVyYXRpb25fMgorK3sKKysgIHN0YXRpYyB2b2lkIGZ1bmN0aW9uICh2b2lkKSB7 IH0gLy8gb3BlcmF0aW9uXzI8VD46OmZ1bmN0aW9uCisrfTsKKysKKyt0ZW1wbGF0ZSA8Y2xhc3Mg VD4KKytzdHJ1Y3Qgb3BlcmF0aW9uXzMKKyt7CisrICBzdGF0aWMgdm9pZCBmdW5jdGlvbiAodm9p ZCkgeyB9IC8vIG9wZXJhdGlvbl8zPFQ+OjpmdW5jdGlvbgorK307CisrCisrdGVtcGxhdGUgPGNs YXNzIFQ+Cisrc3RydWN0IG9wZXJhdGlvbl80CisreworKyAgc3RhdGljIHZvaWQgZnVuY3Rpb24g KHZvaWQpIHsgfSAvLyBvcGVyYXRpb25fNDxUPjo6ZnVuY3Rpb24KKyt9OworKworKy8vIEEgcG9s aWN5LWJhc2VkIGNsYXNzIHcvIGFuZCB3L28gZGVmYXVsdCBwb2xpY3kKKyt0ZW1wbGF0ZSA8Y2xh c3MgVCwgY2xhc3MgUG9saWN5PgorK2NsYXNzIHBvbGljeSA6IHB1YmxpYyBQb2xpY3kKKyt7Cisr cHVibGljOgorKyAgcG9saWN5IChUIG9iaikgOiBvYmpfIChvYmopIHsgfSAvLyBwb2xpY3k8VCwg UG9saWN5Pjo6cG9saWN5CisrCisrcHJpdmF0ZToKKysgIFQgb2JqXzsKKyt9OworKworK3RlbXBs YXRlIDxjbGFzcyBULCBjbGFzcyBQb2xpY3kgPSBvcGVyYXRpb25fMTxUPiA+CisrY2xhc3MgcG9s aWN5ZCA6IHB1YmxpYyBQb2xpY3kKKyt7CisrcHVibGljOgorKyAgcG9saWN5ZCAoVCBvYmopIDog b2JqXyAob2JqKSB7IH0gLy8gcG9saWN5ZDxULCBQb2xpY3k+Ojpwb2xpY3lkCisrICB+cG9saWN5 ZCAodm9pZCkgeyB9IC8vIHBvbGljeWQ8VCwgUG9saWN5Pjo6fnBvbGljeWQKKysKKytwcml2YXRl OgorKyAgVCBvYmpfOworK307CisrCisrdHlwZWRlZiBwb2xpY3k8aW50LCBvcGVyYXRpb25fMTx2 b2lkKj4gPiBwb2xpY3kxOworK3R5cGVkZWYgcG9saWN5PGludCwgb3BlcmF0aW9uXzI8dm9pZCo+ ID4gcG9saWN5MjsKKyt0eXBlZGVmIHBvbGljeTxpbnQsIG9wZXJhdGlvbl8zPHZvaWQqPiA+IHBv bGljeTM7CisrdHlwZWRlZiBwb2xpY3k8aW50LCBvcGVyYXRpb25fNDx2b2lkKj4gPiBwb2xpY3k0 OworKworK3R5cGVkZWYgcG9saWN5ZDxpbnQ+IHBvbGljeWQxOworK3R5cGVkZWYgcG9saWN5ZDxs b25nPiBwb2xpY3lkMjsKKyt0eXBlZGVmIHBvbGljeWQ8Y2hhcj4gcG9saWN5ZDM7CisrdHlwZWRl ZiBwb2xpY3lkPGJhc2U+IHBvbGljeWQ0OworK3R5cGVkZWYgcG9saWN5ZDx0Y2xhc3M8aW50PiA+ IHBvbGljeWQ1OworKworK2NsYXNzIGZsdWZmIHsgfTsKKytzdGF0aWMgZmx1ZmYgKmdfZmx1ZmYg PSBuZXcgZmx1ZmYgKCk7CisrCisrY2xhc3MgYmFzZQorK3sKKytwcm90ZWN0ZWQ6CisrICBpbnQg Zm9vXzsKKysKKytwdWJsaWM6CisrICBiYXNlICh2b2lkKSA6IGZvb18gKDQyKSB7IH0gLy8gYmFz ZTo6YmFzZSh2b2lkKQorKyAgYmFzZSAoaW50IGZvbykgOiBmb29fIChmb28pIHsgfSAvLyBiYXNl OjpiYXNlKGludCkKKysgIH5iYXNlICh2b2lkKSB7IH0gLy8gYmFzZTo6fmJhc2UKKysKKysgIC8v IFNvbWUgb3ZlcmxvYWRlZCBtZXRob2RzCisrICBpbnQgb3ZlcmxvYWQgKHZvaWQpIGNvbnN0IHsg cmV0dXJuIDA7IH0gLy8gYmFzZTo6b3ZlcmxvYWQodm9pZCkgY29uc3QKKysgIGludCBvdmVybG9h ZCAoaW50IGkpIGNvbnN0IHsgcmV0dXJuIDE7IH0gLy8gYmFzZTo6b3ZlcmxvYWQoaW50KSBjb25z dAorKyAgaW50IG92ZXJsb2FkIChzaG9ydCBzKSBjb25zdCB7IHJldHVybiAyOyB9IC8vIGJhc2U6 Om92ZXJsb2FkKHNob3J0KSBjb25zdAorKyAgaW50IG92ZXJsb2FkIChsb25nIGwpIGNvbnN0IHsg cmV0dXJuIDM7IH0gLy8gYmFzZTo6b3ZlcmxvYWQobG9uZykgY29uc3QKKysgIGludCBvdmVybG9h ZCAoY2hhciogYSkgY29uc3QgeyByZXR1cm4gNDsgfSAvLyBiYXNlOjpvdmVybG9hZChjaGFyKikg Y29uc3QKKysgIGludCBvdmVybG9hZCAoYmFzZSYgYikgY29uc3QgeyByZXR1cm4gNTsgfSAvLyBi YXNlOjpvdmVybG9hZChiYXNlJikgY29uc3QKKysKKysgIC8vIE9wZXJhdG9ycworKyAgaW50IG9w ZXJhdG9yKyAoYmFzZSBjb25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3IrCisrICB7IHJl dHVybiBmb29fICsgby5mb29fOyB9CisrCisrICBiYXNlIG9wZXJhdG9yKysgKHZvaWQpIC8vIGJh c2U6Om9wZXJhdG9yKysKKysgIHsgKytmb29fOyByZXR1cm4gKnRoaXM7IH0KKysKKysgIGJhc2Ug b3BlcmF0b3IrPShiYXNlIGNvbnN0JiBvKSAvLyBiYXNlOjpvcGVyYXRvcis9CisrICB7IGZvb18g Kz0gby5mb29fOyByZXR1cm4gKnRoaXM7IH0KKysKKysgIGludCBvcGVyYXRvci0gKGJhc2UgY29u c3QmIG8pIGNvbnN0IC8vIGJhc2U6Om9wZXJhdG9yLQorKyAgeyByZXR1cm4gZm9vXyAtIG8uZm9v XzsgfQorKworKyAgYmFzZSBvcGVyYXRvci0tICh2b2lkKSAvLyBiYXNlOjpvcGVyYXRvci0tCisr ICB7IC0tZm9vXzsgcmV0dXJuICp0aGlzOyB9CisrCisrICBiYXNlIG9wZXJhdG9yLT0gKGJhc2Ug Y29uc3QmIG8pIC8vIGJhc2U6Om9wZXJhdG9yLT0KKysgIHsgZm9vXyAtPSBvLmZvb187IHJldHVy biAqdGhpczsgfQorKworKyAgaW50IG9wZXJhdG9yKiAoYmFzZSBjb25zdCYgbykgY29uc3QgLy8g YmFzZTo6b3BlcmF0b3IqCisrICB7IHJldHVybiBmb29fICogby5mb29fOyB9CisrCisrICBiYXNl IG9wZXJhdG9yKj0gKGJhc2UgY29uc3QmIG8pIC8vIGJhc2U6Om9wZXJhdG9yKj0KKysgIHsgZm9v XyAqPSBvLmZvb187IHJldHVybiAqdGhpczsgfQorKworKyAgaW50IG9wZXJhdG9yLyAoYmFzZSBj b25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3IvCisrICB7IHJldHVybiBmb29fIC8gby5m b29fOyB9CisrCisrICBiYXNlIG9wZXJhdG9yLz0gKGJhc2UgY29uc3QmIG8pIC8vIGJhc2U6Om9w ZXJhdG9yLz0KKysgIHsgZm9vXyAvPSBvLmZvb187IHJldHVybiAqdGhpczsgfQorKworKyAgaW50 IG9wZXJhdG9yJSAoYmFzZSBjb25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3IlCisrICB7 IHJldHVybiBmb29fICUgby5mb29fOyB9CisrICAKKysgIGJhc2Ugb3BlcmF0b3IlPSAoYmFzZSBj b25zdCYgbykgLy8gYmFzZTo6b3BlcmF0b3IlPQorKyAgeyBmb29fICU9IG8uZm9vXzsgcmV0dXJu ICp0aGlzOyB9CisrCisrICBib29sIG9wZXJhdG9yPCAoYmFzZSBjb25zdCYgbykgY29uc3QgLy8g YmFzZTo6b3BlcmF0b3I8CisrICB7IHJldHVybiBmb29fIDwgby5mb29fOyB9CisrCisrICBib29s IG9wZXJhdG9yPD0gKGJhc2UgY29uc3QmIG8pIGNvbnN0IC8vIGJhc2U6Om9wZXJhdG9yPD0KKysg IHsgcmV0dXJuIGZvb18gPD0gby5mb29fOyB9CisrCisrICBib29sIG9wZXJhdG9yPiAoYmFzZSBj b25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3I+CisrICB7IHJldHVybiBmb29fID4gby5m b29fOyB9CisrCisrICBib29sIG9wZXJhdG9yPj0gKGJhc2UgY29uc3QmIG8pIGNvbnN0IC8vIGJh c2U6Om9wZXJhdG9yPj0KKysgIHsgcmV0dXJuIGZvb18gPj0gby5mb29fOyB9CisrCisrICBib29s IG9wZXJhdG9yIT0gKGJhc2UgY29uc3QmIG8pIGNvbnN0IC8vIGJhc2U6Om9wZXJhdG9yIT0KKysg IHsgcmV0dXJuIGZvb18gIT0gby5mb29fOyB9CisrCisrICBib29sIG9wZXJhdG9yPT0gKGJhc2Ug Y29uc3QmIG8pIGNvbnN0IC8vIGJhc2U6Om9wZXJhdG9yPT0KKysgIHsgcmV0dXJuIGZvb18gPT0g by5mb29fOyB9CisrCisrICBib29sIG9wZXJhdG9yISAodm9pZCkgY29uc3QgLy8gYmFzZTo6b3Bl cmF0b3IhCisrICB7IHJldHVybiAhZm9vXzsgfQorKworKyAgYm9vbCBvcGVyYXRvciYmIChiYXNl IGNvbnN0JiBvKSBjb25zdCAvLyBiYXNlOjpvcGVyYXRvciYmCisrICB7IHJldHVybiBmb29fICYm IG8uZm9vXzsgfQorKworKyAgYm9vbCBvcGVyYXRvcnx8IChiYXNlIGNvbnN0JiBvKSBjb25zdCAv LyBiYXNlOjpvcGVyYXRvcnx8CisrICB7IHJldHVybiBmb29fIHx8IG8uZm9vXzsgfQorKworKyAg aW50IG9wZXJhdG9yPDwgKGludCB2YWx1ZSkgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3I8PAorKyAg eyByZXR1cm4gZm9vXyAgPDwgdmFsdWU7IH0KKysKKysgIGJhc2Ugb3BlcmF0b3I8PD0gKGludCB2 YWx1ZSkgLy8gYmFzZTo6b3BlcmF0b3I8PD0KKysgIHsgZm9vXyA8PD0gdmFsdWU7IHJldHVybiAq dGhpczsgfQorKworKyAgaW50IG9wZXJhdG9yPj4gKGludCB2YWx1ZSkgY29uc3QgLy8gYmFzZTo6 b3BlcmF0b3I+PgorKyAgeyByZXR1cm4gZm9vXyAgPj4gdmFsdWU7IH0KKysKKysgIGJhc2Ugb3Bl cmF0b3I+Pj0gKGludCB2YWx1ZSkgLy8gYmFzZTo6b3BlcmF0b3I+Pj0KKysgIHsgZm9vXyA+Pj0g dmFsdWU7IHJldHVybiAqdGhpczsgfQorKworKyAgaW50IG9wZXJhdG9yfiAodm9pZCkgY29uc3Qg Ly8gYmFzZTo6b3BlcmF0b3J+CisrICB7IHJldHVybiB+Zm9vXzsgfQorKworKyAgaW50IG9wZXJh dG9yJiAoYmFzZSBjb25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3ImCisrICB7IHJldHVy biBmb29fICYgby5mb29fOyB9CisrCisrICBiYXNlIG9wZXJhdG9yJj0gKGJhc2UgY29uc3QmIG8p IC8vIGJhc2U6Om9wZXJhdG9yJj0KKysgIHsgZm9vXyAmPSBvLmZvb187IHJldHVybiAqdGhpczsg fQorKworKyAgaW50IG9wZXJhdG9yfCAoYmFzZSBjb25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3Bl cmF0b3J8CisrICB7IHJldHVybiBmb29fIHwgby5mb29fOyB9CisrCisrICBiYXNlIG9wZXJhdG9y fD0gKGJhc2UgY29uc3QmIG8pIC8vIGJhc2U6Om9wZXJhdG9yfD0KKysgIHsgZm9vXyB8PSBvLmZv b187IHJldHVybiAqdGhpczsgfQorKyAgCisrICBpbnQgb3BlcmF0b3JeIChiYXNlIGNvbnN0JiBv KSBjb25zdCAvLyBiYXNlOjpvcGVyYXRvcl4KKysgIHsgcmV0dXJuIGZvb18gXiBvLmZvb187IH0K KysKKysgIGJhc2Ugb3BlcmF0b3JePSAoYmFzZSBjb25zdCYgbykgLy8gYmFzZTo6b3BlcmF0b3Je PQorKyAgeyBmb29fIF49IG8uZm9vXzsgcmV0dXJuICp0aGlzOyB9CisrCisrICBiYXNlIG9wZXJh dG9yPSAoYmFzZSBjb25zdCYgbykgLy8gYmFzZTo6b3BlcmF0b3I9CisrICB7IGZvb18gPSBvLmZv b187IHJldHVybiAqdGhpczsgfQorKworKyAgdm9pZCBvcGVyYXRvcigpICh2b2lkKSBjb25zdCAv LyBiYXNlOjpvcGVyYXRvcigpCisrICB7IHJldHVybjsgfQorKworKyAgaW50IG9wZXJhdG9yW10g KGludCBpZHgpIGNvbnN0IC8vIGJhc2U6Om9wZXJhdG9yW10KKysgIHsgcmV0dXJuIGlkeDsgfQor KworKyAgdm9pZCogb3BlcmF0b3IgbmV3IChzaXplX3Qgc2l6ZSkgdGhyb3cgKCkgLy8gYmFzZTo6 b3BlcmF0b3IgbmV3CisrICB7IHJldHVybiBtYWxsb2MgKHNpemUpOyB9CisrCisrICB2b2lkIG9w ZXJhdG9yIGRlbGV0ZSAodm9pZCogcHRyKSAvLyBiYXNlOjpvcGVyYXRvciBkZWxldGUKKysgIHsg ZnJlZSAocHRyKTsgfQorKworKyAgdm9pZCogb3BlcmF0b3IgbmV3W10gKHNpemVfdCBzaXplKSB0 aHJvdyAoKSAvLyBiYXNlOjpvcGVyYXRvciBuZXdbXQorKyAgeyByZXR1cm4gbWFsbG9jIChzaXpl KTsgfQorKworKyAgdm9pZCBvcGVyYXRvciBkZWxldGVbXSAodm9pZCogcHRyKSAvLyBiYXNlOjpv cGVyYXRvciBkZWxldGVbXQorKyAgeyBmcmVlIChwdHIpOyB9CisrCisrICBiYXNlIGNvbnN0KiBv cGVyYXRvci0+ICh2b2lkKSBjb25zdCAvLyBiYXNlOjpvcGVhcnRvci0+CisrICB7IHJldHVybiB0 aGlzOyB9CisrCisrICBpbnQgb3BlcmF0b3ItPiogKGJhc2UgY29uc3QmIGIpIGNvbnN0IC8vIGJh c2U6Om9wZXJhdG9yLT4qCisrICB7ICByZXR1cm4gZm9vXyAqIGIuZm9vXzsgfQorKworKyAgb3Bl cmF0b3IgY2hhciogKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxjaGFyKj4gKCJoZWxsbyIp OyB9IC8vIGJhc2U6Om9wZXJhdG9yIGNoYXIqCisrICBvcGVyYXRvciBpbnQgKCkgY29uc3QgeyBy ZXR1cm4gMjE7IH0gLy8gYmFzZTo6b3BlcmF0b3IgaW50CisrICBvcGVyYXRvciBmbHVmZiogKCkg Y29uc3QgeyByZXR1cm4gbmV3IGZsdWZmICgpOyB9IC8vIGJhc2U6Om9wZXJhdG9yIGZsdWZmKgor KyAgb3BlcmF0b3IgZmx1ZmYqKiAoKSBjb25zdCB7IHJldHVybiAmZ19mbHVmZjsgfSAvLyBiYXNl OjpvcGVyYXRvciBmbHVmZioqCisrfTsKKysKKytjbGFzcyBiYXNlMSA6IHB1YmxpYyB2aXJ0dWFs IGJhc2UKKyt7CisrcHVibGljOgorKyAgYmFzZTEgKHZvaWQpIDogZm9vXyAoMjEpIHsgfSAvLyBi YXNlMTo6YmFzZTEodm9pZCkKKysgIGJhc2UxIChpbnQgYSkgOiBmb29fKGEpIHsgfSAvLyBiYXNl MTo6YmFzZTEoaW50KQorKyAgdm9pZCBhX2Z1bmN0aW9uICh2b2lkKSBjb25zdCB7IH0gLy8gYmFz ZTE6OmFfZnVuY3Rpb24KKysKKytwcm90ZWN0ZWQ6CisrICBpbnQgZm9vXzsKKyt9OworKworK2Ns YXNzIGJhc2UyIDogcHVibGljIHZpcnR1YWwgYmFzZQorK3sKKytwdWJsaWM6CisrICBiYXNlMiAo KSA6IGZvb18gKDMpIHsgfSAvLyBiYXNlMjo6YmFzZTIKKysKKytwcm90ZWN0ZWQ6CisrICB2b2lk IGFfZnVuY3Rpb24gKHZvaWQpIGNvbnN0IHsgfSAvLyBiYXNlMjo6YV9mdW5jdGlvbgorKyAgaW50 IGZvb187CisrfTsKKysKKytjbGFzcyBkZXJpdmVkIDogcHVibGljIGJhc2UxLCBwdWJsaWMgYmFz ZTIKKyt7CisrICBwdWJsaWM6CisrICBkZXJpdmVkKHZvaWQpIDogZm9vXyAoNCkgeyB9IC8vIGRl cml2ZWQ6OmRlcml2ZWQKKysgIHZvaWQgYV9mdW5jdGlvbiAodm9pZCkgY29uc3QgLy8gZGVyaXZl ZDo6YV9mdW5jdGlvbgorKyAgeyAKKysgICAgdGhpcy0+YmFzZTE6OmFfZnVuY3Rpb24gKCk7Cisr ICAgIHRoaXMtPmJhc2UyOjphX2Z1bmN0aW9uICgpOworKyAgfQorKworKyAgcHJvdGVjdGVkOgor KyAgaW50IGZvb187CisrfTsKKysKKytpbnQKKyttYWluIChpbnQgYXJnYywgY2hhciogYXJndltd KSAvLyBtYWluCisreyAvLyBtYWluCisrICBkZXJpdmVkIGQ7CisrICB2b2lkIChkZXJpdmVkOjoq cGZ1bmMpICh2b2lkKSBjb25zdCA9ICZkZXJpdmVkOjphX2Z1bmN0aW9uOworKyAgKGQuKnBmdW5j KSAoKTsKKysKKysgIGJhc2UgYSAoMSksIGIgKDMpLCBjICg4KTsKKysgICh2b2lkKSBhLm92ZXJs b2FkICgpOworKyAgKHZvaWQpIGEub3ZlcmxvYWQgKHN0YXRpY19jYXN0PGludD4gKDApKTsKKysg ICh2b2lkKSBhLm92ZXJsb2FkIChzdGF0aWNfY2FzdDxzaG9ydD4gKDApKTsKKysgICh2b2lkKSBh Lm92ZXJsb2FkIChzdGF0aWNfY2FzdDxsb25nPiAoMCkpOworKyAgKHZvaWQpIGEub3ZlcmxvYWQg KHN0YXRpY19jYXN0PGNoYXIqPiAoMCkpOworKyAgKHZvaWQpIGEub3ZlcmxvYWQgKGEpOworKwor KyAgaW50IHI7CisrICByID0gYiArIGM7CisrICArK2E7CisrICBhICs9IGI7CisrICByID0gYiAt IGM7CisrICAtLWE7CisrICBhIC09IGI7CisrICByID0gYiAqIGM7CisrICBhICo9IGI7CisrICBy ID0gYiAvIGM7CisrICBhIC89IGI7CisrICByID0gYiAlIGM7CisrICBhICU9IGI7CisrICBib29s IHggPSAoYiA8IGMpOworKyAgeCA9IChiIDw9IGMpOworKyAgeCA9IChiID4gYyk7CisrICB4ID0g KGIgPj0gYyk7CisrICB4ID0gKGIgIT0gYyk7CisrICB4ID0gKGIgPT0gYyk7CisrICB4ID0gKCFi KTsKKysgIHggPSAoYiAmJiBjKTsKKysgIHggPSAoYiB8fCBjKTsKKysgIHIgPSBiIDw8IDI7Cisr ICBhIDw8PSAxOworKyAgciA9IGIgPj4gMjsKKysgIGEgPj49IDE7CisrICByID0gfmI7CisrICBy ID0gYiAmIGM7CisrICBhICY9IGM7CisrICByID0gYiB8IGM7CisrICBhIHw9IGM7CisrICByID0g YiBeIGM7CisrICBhIF49IGM7CisrICBhID0gYzsKKysgIGEgKCk7CisrICBpbnQgaSA9IGFbM107 CisrICBkZXJpdmVkKiBmID0gbmV3IGRlcml2ZWQgKCk7CisrICBkZXJpdmVkKiBnID0gbmV3IGRl cml2ZWRbM107CisrICBkZWxldGUgZjsKKysgIGRlbGV0ZVtdIGc7CisrICBhLT5vdmVybG9hZCAo KTsKKysgIHIgPSBhLT4qYjsKKysKKysgIHRjbGFzczxjaGFyPiBjaGFyX3RjbGFzczsKKysgIHRj bGFzczxpbnQ+IGludF90Y2xhc3M7CisrICB0Y2xhc3M8c2hvcnQ+IHNob3J0X3RjbGFzczsKKysg IHRjbGFzczxsb25nPiBsb25nX3RjbGFzczsKKysgIHRjbGFzczxiYXNlPiBiYXNlX3RjbGFzczsK KysgIGNoYXJfdGNsYXNzLmRvX3NvbWV0aGluZyAoKTsKKysgIGludF90Y2xhc3MuZG9fc29tZXRo aW5nICgpOworKyAgc2hvcnRfdGNsYXNzLmRvX3NvbWV0aGluZyAoKTsKKysgIGxvbmdfdGNsYXNz LmRvX3NvbWV0aGluZyAoKTsKKysgIGJhc2VfdGNsYXNzLmRvX3NvbWV0aGluZyAoKTsKKysKKysg IGZsdWJiZXI8aW50LCBpbnQsIGludCwgaW50LCBpbnQ+ICgpOworKyAgZmx1YmJlcjxpbnQsIGlu dCwgaW50LCBpbnQsIHNob3J0PiAoKTsKKysgIGZsdWJiZXI8aW50LCBpbnQsIGludCwgaW50LCBs b25nPiAoKTsKKysgIGZsdWJiZXI8aW50LCBpbnQsIGludCwgaW50LCBjaGFyPiAoKTsKKysgIGZs dWJiZXI8aW50LCBpbnQsIGludCwgc2hvcnQsIGludD4gKCk7CisrICBmbHViYmVyPGludCwgaW50 LCBpbnQsIHNob3J0LCBzaG9ydD4gKCk7CisrICBmbHViYmVyPGludCwgaW50LCBpbnQsIHNob3J0 LCBsb25nPiAoKTsKKysgIGZsdWJiZXI8aW50LCBpbnQsIGludCwgc2hvcnQsIGNoYXI+ICgpOwor KyAgZmx1YmJlcjxpbnQsIGludCwgaW50LCBsb25nLCBpbnQ+ICgpOworKyAgZmx1YmJlcjxpbnQs IGludCwgaW50LCBsb25nLCBzaG9ydD4gKCk7CisrICBmbHViYmVyPGludCwgaW50LCBpbnQsIGxv bmcsIGxvbmc+ICgpOworKyAgZmx1YmJlcjxpbnQsIGludCwgaW50LCBsb25nLCBjaGFyPiAoKTsK KysgIGZsdWJiZXI8aW50LCBpbnQsIGludCwgY2hhciwgaW50PiAoKTsKKysgIGZsdWJiZXI8aW50 LCBpbnQsIGludCwgY2hhciwgc2hvcnQ+ICgpOworKyAgZmx1YmJlcjxpbnQsIGludCwgaW50LCBj aGFyLCBsb25nPiAoKTsKKysgIGZsdWJiZXI8aW50LCBpbnQsIGludCwgY2hhciwgY2hhcj4gKCk7 CisrICBmbHViYmVyPGludCwgaW50LCBzaG9ydCwgaW50LCBpbnQ+ICgpOworKyAgZmx1YmJlcjxp bnQsIGludCwgc2hvcnQsIGludCwgc2hvcnQ+ICgpOworKyAgZmx1YmJlcjxpbnQsIGludCwgc2hv cnQsIGludCwgbG9uZz4gKCk7CisrICBmbHViYmVyPGludCwgaW50LCBzaG9ydCwgaW50LCBjaGFy PiAoKTsKKysgIGZsdWJiZXI8aW50LCBpbnQsIHNob3J0LCBzaG9ydCwgaW50PiAoKTsKKysgIGZs dWJiZXI8c2hvcnQsIGludCwgc2hvcnQsIGludCwgc2hvcnQ+ICgpOworKyAgZmx1YmJlcjxsb25n LCBzaG9ydCwgbG9uZywgc2hvcnQsIGxvbmc+ICgpOworKworKyAgcG9saWN5MSBwMSAoMSk7Cisr ICBwMS5mdW5jdGlvbiAoKTsKKysgIHBvbGljeTIgcDIgKDIpOworKyAgcDIuZnVuY3Rpb24gKCk7 CisrICBwb2xpY3kzIHAzICgzKTsKKysgIHAzLmZ1bmN0aW9uICgpOworKyAgcG9saWN5NCBwNCAo NCk7CisrICBwNC5mdW5jdGlvbiAoKTsKKysKKysgIHBvbGljeWQxIHBkMSAoNSk7CisrICBwZDEu ZnVuY3Rpb24gKCk7CisrICBwb2xpY3lkMiBwZDIgKDYpOworKyAgcGQyLmZ1bmN0aW9uICgpOwor KyAgcG9saWN5ZDMgcGQzICg3KTsKKysgIHBkMy5mdW5jdGlvbiAoKTsKKysgIHBvbGljeWQ0IHBk NCAoZCk7CisrICBwZDQuZnVuY3Rpb24gKCk7CisrICBwb2xpY3lkNSBwZDUgKGludF90Y2xhc3Mp OworKyAgcGQ1LmZ1bmN0aW9uICgpOworKworKyAgYmFzZTEgYjEgKDMpOworKworKyAgciA9IGE7 CisrICBjaGFyKiBzdHIgPSBhOworKyAgZmx1ZmYqIGZscCA9IGE7CisrICBmbHVmZioqIGZscHAg PSBhOworK30KKysKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGV4cHJzLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NwZXhwcnMuZXhwCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMC4uNjA3NDc2MworLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvY3BleHBycy5leHAKK0BAIC0wLDAgKzEsNzI0IEBACisrIyBjcGV4cHJzLmV4 cCAtIEMrKyBleHByZXNzaW9ucyB0ZXN0cworKyMKKysjIENvcHlyaWdodCAyMDA4LCAyMDA5LCAy MDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIENvbnRyaWJ1dGVkIGJ5 IFJlZCBIYXQsIG9yaWdpbmFsbHkgd3JpdHRlbiBieSBLZWl0aCBTZWl0ei4KKysjCisrIyBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysj IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdk YiB0ZXN0c3VpdGUuCisrCisrIyBBIGhlbHBlciBwcm9jIHdoaWNoIHNldHMgYSBicmVha3BvaW50 IGF0IEZVTkMgYW5kIGF0dGVtcHRzIHRvCisrIyBydW4gdG8gdGhlIGJyZWFrcG9pbnQuCisrcHJv YyB0ZXN0X2JyZWFrcG9pbnQge2Z1bmN9IHsKKysgICAgZ2xvYmFsIERFQworKworKyAgICAjIFJl c3RhcnQgZXZlcnkgdGltZQorKyAgICBpZiB7IVtydW50b19tYWluXX0geworKwlwZXJyb3IgImNv dWxkIG5vdCBydW4gdG8gbWFpbiB3aGVuIGF0dGVtcHRpbmcgdG8gYnJlYWsgYXQgJGZ1bmMiCisr ICAgIH0gZWxzZSB7CisrCWdkYl9icmVha3BvaW50ICIkZnVuYyIKKysJc2V0IGkgW2V4cHIge1tz dHJpbmcgbGFzdCA6ICRmdW5jXSArIDF9XQorKwlzZXQgZWZ1bmMgW3N0cmluZ190b19yZWdleHAg W3N0cmluZyByYW5nZSAkZnVuYyAkaSBlbmRdXQorKwlnZGJfdGVzdCAiY29udGludWUiIFwKKysJ ICAgICJDb250aW51aW5nLlxyXG5cclxuQnJlYWtwb2ludCAkREVDKywuKiRlZnVuYy4qIiBcCisr CSAgICAiY29udGludWUgdG8gJGZ1bmMiCisrICAgIH0KKyt9CisrCisrIyBBZGQgYSBmdW5jdGlv biB0byB0aGUgbGlzdCBvZiB0ZXN0ZWQgZnVuY3Rpb25zCisrIyBGVU5DIGlzIHRoZSBuYW1lIG9m IHRoZSBmdW5jdGlvbiAod2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gZ2RiIGNvbW1hbmRzKQorKyMg VFlQRSBpcyB0aGUgdHlwZSBvZiB0aGUgZnVuY3Rpb24sIGFzIGV4cGVjdGVkIGZyb20gdGhlICJw cmludCIgY29tbWFuZAorKyMgUFJJTlQgaXMgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLCBhcyBl eHBlY3RlZCByZXN1bHQgb2YgdGhlIHByaW50IGNvbW1hbmQKKysjICAqT1IqICItIiwgaW5kaWNh dGluZyB0aGF0IEZVTkMgc2hvdWxkIGJlIHVzZWQgKG5lZWRlZCBmb3IgdmlydHVhbC9pbmhlcml0 ZWQKKysjICAgZnVuY3MpCisrIyBMU1QgaXMgZWl0aGVyIHRoZSBleHBlY3RlZCByZXN1bHQgb2Yg dGhlIGxpc3QgY29tbWFuZCAodGhlIGNvbW1lbnQgZnJvbQorKyMgIHRoZSBzb3VyY2UgY29kZSkg Kk9SKiAiLSIsIGluIHdoaWNoIGNhc2UgRlVOQyB3aWxsIGJlIHVzZWQKKysjCisrIyBVc2FnZToK KysjIGFkZCBOQU1FIFRZUEUgUFJJTlQgTFNUCisrIyBhZGQgTkFNRSBUWVBFIFBSSU5UIC0KKytw cm9jIGFkZCB7ZnVuYyB0eXBlIHByaW50IGxzdH0geworKyAgICBnbG9iYWwgYWxsX2Z1bmN0aW9u cyBDT05WQVIgQUREUgorKworKyAgICBzZXQgYWxsX2Z1bmN0aW9ucygkZnVuYyx0eXBlKSAkdHlw ZQorKyAgICBpZiB7JHByaW50ID09ICItIn0geworKwlzZXQgcHJpbnQgJGZ1bmMKKysgICAgfQor KworKyAgICAjIEFuIGV4Y2VwdGlvbjogc2luY2UgZ2RiIGNhbm9uaWNhbGl6ZXMgQysrIG91dHB1 dCwKKysgICAgIyAiKHZvaWQpIiBtdXN0IGJlIG11dGF0ZWQgdG8gIigpIi4KKysgICAgcmVnc3Vi IHtcKHZvaWRcKX0gJHByaW50IHsoKX0gcHJpbnQKKysKKysgICAgc2V0IGFsbF9mdW5jdGlvbnMo JGZ1bmMscHJpbnQpIFwKKysJIiRDT05WQVIgPSB7W3N0cmluZ190b19yZWdleHAgJHR5cGVdfSAk QUREUiA8W3N0cmluZ190b19yZWdleHAgJHByaW50XS4qPiIKKysgICAgaWYgeyRsc3QgPT0gIi0i fSB7CisrCXNldCBsc3QgIiRmdW5jIgorKyAgICB9CisrICAgIHNldCBhbGxfZnVuY3Rpb25zKCRm dW5jLGxpc3QpICIuKi8vIFtzdHJpbmdfdG9fcmVnZXhwICRsc3RdIgorK30KKysKKytwcm9jIGdl dCB7ZnVuYyBjbWR9IHsKKysgICAgZ2xvYmFsIGFsbF9mdW5jdGlvbnMKKysgICAgcmV0dXJuICRh bGxfZnVuY3Rpb25zKCRmdW5jLCRjbWQpCisrfQorKworKyMgUmV0dXJucyBhIGxpc3Qgb2YgZnVu Y3Rpb24gbmFtZXMgZm9yIGEgZ2l2ZW4gY29tbWFuZAorK3Byb2MgZ2V0X2Z1bmN0aW9ucyB7Y21k fSB7CisrICAgIGdsb2JhbCBhbGxfZnVuY3Rpb25zCisrICAgIHNldCByZXN1bHQge30KKysgICAg Zm9yZWFjaCBpIFthcnJheSBuYW1lcyBhbGxfZnVuY3Rpb25zICosJGNtZF0geworKwlpZiB7JGFs bF9mdW5jdGlvbnMoJGkpICE9ICIifSB7CisrCSAgICBzZXQgaWR4IFtzdHJpbmcgbGFzdCAsICRp XQorKwkgICAgaWYgeyRpZHggIT0gLTF9IHsKKysJCWxhcHBlbmQgcmVzdWx0IFtzdHJpbmcgcmFu Z2UgJGkgMCBbZXhwciB7JGlkeCAtIDF9XV0KKysJICAgIH0KKysJfQorKyAgICB9CisrCisrICAg IHJldHVybiBbbHNvcnQgJHJlc3VsdF0KKyt9CisrCisrIyBTb21lIGNvbnZlbmllbmNlIHZhcmlh YmxlcyBmb3IgdGhpcyB0ZXN0Cisrc2V0IERFQyB7WzAtOV19OyAjIGEgZGVjaW1hbCBudW1iZXIK KytzZXQgSEVYIHtbMC05YS1mQS1GXX07ICMgYSBoZXhpZGVjaW1hbCBudW1iZXIKKytzZXQgQ09O VkFSICJcXFwkJERFQysiOyAjIGNvbnZlbmllbmNlIHZhcmlhYmxlIHJlZ2V4cAorK3NldCBBRERS ICIweCRIRVgrIjsgIyBhZGRyZXNzCisrCisrIyBBbiBhcnJheSBvZiBmdW5jdGlvbnMvbWV0aG9k cyB0aGF0IHdlIGFyZSB0ZXN0aW5nLi4uCisrIyBFYWNoIGVsZW1lbnQgY29uc2lzdHMgaXMgaW5k ZXhlZCBieSBOQU1FLENPTU1BTkQsIHdoZXJlCisrIyBOQU1FIGlzIHRoZSBmdW5jdGlvbiBuYW1l IGFuZCBDT01NQU5EIGlzIHRoZSBnZGIgY29tbWFuZCB0aGF0CisrIyB3ZSBhcmUgdGVzdGluZy4g VGhlIHZhbHVlIG9mIHRoZSBhcnJheSBmb3IgYW55IGluZGV4IHBhaXIgaXMKKysjIHRoZSBleHBl Y3RlZCByZXN1bHQgb2YgcnVubmluZyBDT01NQU5EIHdpdGggdGhlIE5BTUUgYXMgYXJndW1lbnQu CisrCisrIyBUaGUgYXJyYXkgaG9sZGluZyBhbGwgZnVuY3Rpb25zL21ldGhvZHMgdG8gdGVzdC4g VmFsaWQgc3ViaW5kZXhlcworKyMgYXJlIChub25lIG5lZWQgY2hhcmFjdGVyIGVzY2FwaW5nIC0t ICJhZGQiIHdpbGwgdGFrZSBjYXJlIG9mIHRoYXQpOgorKworKyMgYWRkIG5hbWUgdHlwZSBwcmlu dF9uYW1lIGxpc3QKKysjIE5BTUUsdHlwZTogdmFsdWUgaXMgdHlwZSBvZiBmdW5jdGlvbiAKKysj IE5BTUUscHJpbnQ6IHZhbHVlIGlzIHByaW50IG5hbWUgb2YgZnVuY3Rpb24gKGNhcmVmdWwgdy9p bmhlcml0ZWQvdmlydHVhbCEpCisrIyBOQU1FLGxpc3Q6IHZhbHVlIGlzIGNvbW1lbnQgaW4gc291 cmNlIGNvZGUgb24gZmlyc3QgbGluZSBvZiBmdW5jdGlvbgorKyMgICAod2l0aG91dCB0aGUgbGVh ZGluZyAiLy8iKQorK2FycmF5IHNldCBhbGxfZnVuY3Rpb25zIHt9CisrCisrIyAiTm9ybWFsIiBm dW5jdGlvbnMvbWV0aG9kcworK2FkZCB7bWFpbn0gXAorKyAgICB7aW50IChpbnQsIGNoYXIgKiop fSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtkZXJpdmVkOjphX2Z1bmN0aW9ufSBcCisrICAg IHt2b2lkIChjb25zdCBkZXJpdmVkICogY29uc3QpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRk IHtiYXNlMTo6YV9mdW5jdGlvbn0gXAorKyAgICB7dm9pZCAoY29uc3QgYmFzZTEgKiBjb25zdCl9 IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2UyOjphX2Z1bmN0aW9ufSBcCisrICAgIHt2 b2lkIChjb25zdCBiYXNlMiAqIGNvbnN0KX0gXAorKyAgICAtIFwKKysgICAgLQorKworKyMgQ29u c3RydWN0b3JzCisrCisrIyBPbiB0YXJnZXRzIHVzaW5nIHRoZSBBUk0gRUFCSSwgdGhlIGNvbnN0 cnVjdG9yIGlzIGV4cGVjdGVkIHRvIHJldHVybgorKyMgInRoaXMiLgorK3Byb2MgY3RvciB7IHR5 cGUgYXJnbGlzdCB9IHsKKysgICAgaWYgeyBbaXN0YXJnZXQgYXJtKi0qZWFiaSpdIH0geworKwlz ZXQgcmV0ICIkdHlwZSAqIgorKyAgICB9IGVsc2UgeworKwlzZXQgcmV0ICJ2b2lkICIKKysgICAg fQorKyAgICBpZiB7ICRhcmdsaXN0ICE9ICIiIH0geworKwlzZXQgYXJnbGlzdCAiLCAkYXJnbGlz dCIKKysgICAgfQorKyAgICByZXR1cm4gIiR7cmV0fSgkdHlwZSAqIGNvbnN0JGFyZ2xpc3QpIgor K30KKysKKythZGQge2Rlcml2ZWQ6OmRlcml2ZWR9IFwKKysgICAgW2N0b3IgZGVyaXZlZCAiIl0g XAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTE6OmJhc2UxKHZvaWQpfSBcCisrICAgIFtj dG9yIGJhc2UxICJjb25zdCB2b2lkICoqIGNvbnN0Il0gXAorKyAgICAtIFwKKysgICAgLQorK2Fk ZCB7YmFzZTE6OmJhc2UxKGludCl9IFwKKysgICAgW2N0b3IgYmFzZTEgImludCJdIFwKKysgICAg LSBcCisrICAgIC0KKythZGQge2Jhc2UyOjpiYXNlMn0gXAorKyAgICBbY3RvciBiYXNlMiAiY29u c3Qgdm9pZCAqKiBjb25zdCJdIFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6OmJhc2Uo dm9pZCl9IFwKKysgICAgW2N0b3IgYmFzZSAiIl0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7 YmFzZTo6YmFzZShpbnQpfSBcCisrICAgIFtjdG9yIGJhc2UgImludCJdIFwKKysgICAgLSBcCisr ICAgIC0KKysKKysjIERlc3RydWN0b3JzCisrCisrIyBPbiB0YXJnZXRzIHVzaW5nIHRoZSBBUk0g RUFCSSwgc29tZSBkZXN0cnVjdG9ycyBhcmUgZXhwZWN0ZWQKKysjIHRvIHJldHVybiAidGhpcyIu ICBPdGhlcnMgYXJlIHZvaWQuICBGb3IgaW50ZXJuYWwgcmVhc29ucywKKysjIEdDQyByZXR1cm5z IHZvaWQgKiBpbnN0ZWFkIG9mICR0eXBlICo7IFJlYWxWaWV3IGFwcGVhcnMgdG8gZG8KKysjIHRo ZSBzYW1lLgorK3Byb2MgZHRvciB7IHR5cGUgfSB7CisrICAgIGlmIHsgW2lzdGFyZ2V0IGFybSot KmVhYmkqXSB9IHsKKysJc2V0IHJldCAidm9pZCAqIgorKyAgICB9IGVsc2UgeworKwlzZXQgcmV0 ICJ2b2lkICIKKysgICAgfQorKyAgICByZXR1cm4gIiR7cmV0fSgkdHlwZSAqIGNvbnN0KSIKKyt9 CisrCisrYWRkIHtiYXNlOjp+YmFzZX0gXAorKyAgICBbZHRvciBiYXNlXSBcCisrICAgIC0gXAor KyAgICAtCisrCisrIyBPdmVybG9hZGVkIG1ldGhvZHMgKGFsbCBhcmUgY29uc3QgLS0gd2UgdHJ5 IHRvIHVzZSB0aGUgdm9pZAorKyMgbWV0aG9kIHdpdGggYW5kIHdpdGhvdXQgc3BlY2lmeWluZyAi Y29uc3QiKQorK2FkZCB7YmFzZTo6b3ZlcmxvYWQodm9pZCl9IFwKKysgICAge2ludCAoY29uc3Qg YmFzZSAqIGNvbnN0KX0gXAorKyAgICAtIFwKKysgICAge2Jhc2U6Om92ZXJsb2FkKHZvaWQpIGNv bnN0fQorK2FkZCB7YmFzZTo6b3ZlcmxvYWQodm9pZCkgY29uc3R9IFwKKysgICAge2ludCAoY29u c3QgYmFzZSAqIGNvbnN0KX0gXAorKyAgICAtIFwKKysgICAge2Jhc2U6Om92ZXJsb2FkKHZvaWQp IGNvbnN0fQorK2FkZCB7YmFzZTo6b3ZlcmxvYWQoaW50KSBjb25zdH0gXAorKyAgICB7aW50IChj b25zdCBiYXNlICogY29uc3QsIGludCl9IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6 Om92ZXJsb2FkKHNob3J0KSBjb25zdH0gXAorKyAgICB7aW50IChjb25zdCBiYXNlICogY29uc3Qs IHNob3J0KX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3ZlcmxvYWQobG9uZykg Y29uc3R9IFwKKysgICAge2ludCAoY29uc3QgYmFzZSAqIGNvbnN0LCBsb25nKX0gXAorKyAgICAt IFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3ZlcmxvYWQoY2hhciopIGNvbnN0fSBcCisrICAgIHtp bnQgKGNvbnN0IGJhc2UgKiBjb25zdCwgY2hhciAqKX0gXAorKyAgICAtIFwKKysgICAgLQorK2Fk ZCB7YmFzZTo6b3ZlcmxvYWQoYmFzZSYpIGNvbnN0fSBcCisrICAgIHtpbnQgKGNvbnN0IGJhc2Ug KiBjb25zdCwgYmFzZSAmKX0gXAorKyAgICAtIFwKKysgICAgLQorKworKyMgT3BlcmF0b3JzCisr YWRkIHtiYXNlOjpvcGVyYXRvcit9IFwKKysgICAge2ludCAoY29uc3QgYmFzZSAqIGNvbnN0LCBj b25zdCBiYXNlICYpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvcisr fSBcCisrICAgIHtiYXNlIChiYXNlICogY29uc3QpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRk IHtiYXNlOjpvcGVyYXRvcis9fSBcCisrICAgIHtiYXNlIChiYXNlICogY29uc3QsIGNvbnN0IGJh c2UgJil9IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yLX0gXAorKyAg ICB7aW50IChjb25zdCBiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAgLSBcCisr ICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yLS19IFwKKysgICAge2Jhc2UgKGJhc2UgKiBjb25z dCl9IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yLT19IFwKKysgICAg e2Jhc2UgKGJhc2UgKiBjb25zdCwgY29uc3QgYmFzZSAmKX0gXAorKyAgICAtIFwKKysgICAgLQor K2FkZCB7YmFzZTo6b3BlcmF0b3IqfSBcCisrICAgIHtpbnQgKGNvbnN0IGJhc2UgKiBjb25zdCwg Y29uc3QgYmFzZSAmKX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3Iq PX0gXAorKyAgICB7YmFzZSAoYmFzZSAqIGNvbnN0LCBjb25zdCBiYXNlICYpfSBcCisrICAgIC0g XAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvci99IFwKKysgICAge2ludCAoY29uc3QgYmFz ZSAqIGNvbnN0LCBjb25zdCBiYXNlICYpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNl OjpvcGVyYXRvci89fSBcCisrICAgIHtiYXNlIChiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9 IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yJX0gXAorKyAgICB7aW50 IChjb25zdCBiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAgLSBcCisrICAgIC0K KythZGQge2Jhc2U6Om9wZXJhdG9yJT19IFwKKysgICAge2Jhc2UgKGJhc2UgKiBjb25zdCwgY29u c3QgYmFzZSAmKX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3I8fSBc CisrICAgIHtib29sIChjb25zdCBiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAg LSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yPD19IFwKKysgICAge2Jvb2wgKGNvbnN0 IGJhc2UgKiBjb25zdCwgY29uc3QgYmFzZSAmKX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7 YmFzZTo6b3BlcmF0b3I+fSBcCisrICAgIHtib29sIChjb25zdCBiYXNlICogY29uc3QsIGNvbnN0 IGJhc2UgJil9IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yPj19IFwK KysgICAge2Jvb2wgKGNvbnN0IGJhc2UgKiBjb25zdCwgY29uc3QgYmFzZSAmKX0gXAorKyAgICAt IFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3IhPX0gXAorKyAgICB7Ym9vbCAoY29uc3Qg YmFzZSAqIGNvbnN0LCBjb25zdCBiYXNlICYpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHti YXNlOjpvcGVyYXRvcj09fSBcCisrICAgIHtib29sIChjb25zdCBiYXNlICogY29uc3QsIGNvbnN0 IGJhc2UgJil9IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yIX0gXAor KyAgICB7Ym9vbCAoY29uc3QgYmFzZSAqIGNvbnN0KX0gXAorKyAgICAtIFwKKysgICAgLQorK2Fk ZCB7YmFzZTo6b3BlcmF0b3ImJn0gXAorKyAgICB7Ym9vbCAoY29uc3QgYmFzZSAqIGNvbnN0LCBj b25zdCBiYXNlICYpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvcnx8 fSBcCisrICAgIHtib29sIChjb25zdCBiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysg ICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yPDx9IFwKKysgICAge2ludCAoY29u c3QgYmFzZSAqIGNvbnN0LCBpbnQpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpv cGVyYXRvcjw8PX0gXAorKyAgICB7YmFzZSAoYmFzZSAqIGNvbnN0LCBpbnQpfSBcCisrICAgIC0g XAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvcj4+fSBcCisrICAgIHtpbnQgKGNvbnN0IGJh c2UgKiBjb25zdCwgaW50KX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0 b3I+Pj19IFwKKysgICAge2Jhc2UgKGJhc2UgKiBjb25zdCwgaW50KX0gXAorKyAgICAtIFwKKysg ICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3J+fSBcCisrICAgIHtpbnQgKGNvbnN0IGJhc2UgKiBj b25zdCl9IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yJn0gXAorKyAg ICB7aW50IChjb25zdCBiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAgLSBcCisr ICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yJj19IFwKKysgICAge2Jhc2UgKGJhc2UgKiBjb25z dCwgY29uc3QgYmFzZSAmKX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0 b3J8fSBcCisrICAgIHtpbnQgKGNvbnN0IGJhc2UgKiBjb25zdCwgY29uc3QgYmFzZSAmKX0gXAor KyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3J8PX0gXAorKyAgICB7YmFzZSAo YmFzZSAqIGNvbnN0LCBjb25zdCBiYXNlICYpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHti YXNlOjpvcGVyYXRvcl59IFwKKysgICAge2ludCAoY29uc3QgYmFzZSAqIGNvbnN0LCBjb25zdCBi YXNlICYpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvcl49fSBcCisr ICAgIHtiYXNlIChiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAgLSBcCisrICAg IC0KKythZGQge2Jhc2U6Om9wZXJhdG9yPX0gXAorKyAgICB7YmFzZSAoYmFzZSAqIGNvbnN0LCBj b25zdCBiYXNlICYpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvcigp fSBcCisrICAgIHt2b2lkIChjb25zdCBiYXNlICogY29uc3QpfSBcCisrICAgIC0gXAorKyAgICAt CisrYWRkIHtiYXNlOjpvcGVyYXRvcltdfSBcCisrICAgIHtpbnQgKGNvbnN0IGJhc2UgKiBjb25z dCwgaW50KX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3IgbmV3fSBc CisrICAgIHt2b2lkICooc2l6ZV90KX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6 b3BlcmF0b3IgZGVsZXRlfSBcCisrICAgIHt2b2lkICh2b2lkICopfSBcCisrICAgIC0gXAorKyAg ICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvciBuZXdbXX0gXAorKyAgICB7dm9pZCAqKHNpemVfdCl9 IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yIGRlbGV0ZVtdfSBcCisr ICAgIHt2b2lkICh2b2lkICopfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVy YXRvciBjaGFyKn0gXAorKyAgICB7Y2hhciAqKGNvbnN0IGJhc2UgKiBjb25zdCl9IFwKKysgICAg LSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yIGZsdWZmKn0gXAorKyAgICB7Zmx1ZmYg Kihjb25zdCBiYXNlICogY29uc3QpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpv cGVyYXRvciBmbHVmZioqfSBcCisrICAgIHtmbHVmZiAqKihjb25zdCBiYXNlICogY29uc3QpfSBc CisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvciBpbnR9IFwKKysgICAge2lu dCAoY29uc3QgYmFzZSAqIGNvbnN0KX0gXAorKyAgICAtIFwKKysgICAgLQorKworKyMgVGVtcGxh dGVzCisrYWRkIHt0Y2xhc3M8Y2hhcj46OmRvX3NvbWV0aGluZ30gXAorKyAgICB7dm9pZCAodGNs YXNzPGNoYXI+ICogY29uc3QpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHt0Y2xhc3M8aW50 Pjo6ZG9fc29tZXRoaW5nfSBcCisrICAgIHt2b2lkICh0Y2xhc3M8aW50PiAqIGNvbnN0KX0gXAor KyAgICAtIFwKKysgICAgLQorK2FkZCB7dGNsYXNzPGxvbmc+Ojpkb19zb21ldGhpbmd9IFwKKysg ICAge3ZvaWQgKHRjbGFzczxsb25nPiAqIGNvbnN0KX0gXAorKyAgICAtIFwKKysgICAgLQorK2Fk ZCB7dGNsYXNzPHNob3J0Pjo6ZG9fc29tZXRoaW5nfSBcCisrICAgIHt2b2lkICh0Y2xhc3M8c2hv cnQ+ICogY29uc3QpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHt0Y2xhc3M8YmFzZT46OmRv X3NvbWV0aGluZ30gXAorKyAgICB7dm9pZCAodGNsYXNzPGJhc2U+ICogY29uc3QpfSBcCisrICAg IC0gXAorKyAgICAtCisrYWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIGludCwgaW50Pn0gXAor KyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJi ZXI8aW50LCBpbnQsIGludCwgaW50LCBzaG9ydD59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisr ICAgIC0gXAorKyAgICBmbHViYmVyCisrYWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIGludCwg bG9uZz59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAgICBmbHViYmVyCisr YWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIGludCwgY2hhcj59IFwKKysgICAge3ZvaWQgKHZv aWQpfSBcCisrICAgIC0gXAorKyAgICBmbHViYmVyCisrYWRkIHtmbHViYmVyPGludCwgaW50LCBp bnQsIHNob3J0LCBpbnQ+fSBcCisrICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICAtIFwKKysgICAg Zmx1YmJlcgorK2FkZCB7Zmx1YmJlcjxpbnQsIGludCwgaW50LCBzaG9ydCwgc2hvcnQ+fSBcCisr ICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICAtIFwKKysgICAgZmx1YmJlcgorK2FkZCB7Zmx1YmJl cjxpbnQsIGludCwgaW50LCBzaG9ydCwgbG9uZz59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisr ICAgIC0gXAorKyAgICBmbHViYmVyCisrYWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIHNob3J0 LCBjaGFyPn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIK KythZGQge2ZsdWJiZXI8aW50LCBpbnQsIGludCwgbG9uZywgaW50Pn0gXAorKyAgICB7dm9pZCAo dm9pZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJiZXI8aW50LCBpbnQs IGludCwgbG9uZywgc2hvcnQ+fSBcCisrICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICAtIFwKKysg ICAgZmx1YmJlcgorK2FkZCB7Zmx1YmJlcjxpbnQsIGludCwgaW50LCBsb25nLCBsb25nPn0gXAor KyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJi ZXI8aW50LCBpbnQsIGludCwgbG9uZywgY2hhcj59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisr ICAgIC0gXAorKyAgICBmbHViYmVyCisrYWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIGNoYXIs IGludD59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAgICBmbHViYmVyCisr YWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIGNoYXIsIHNob3J0Pn0gXAorKyAgICB7dm9pZCAo dm9pZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJiZXI8aW50LCBpbnQs IGludCwgY2hhciwgbG9uZz59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAg ICBmbHViYmVyCisrYWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIGNoYXIsIGNoYXI+fSBcCisr ICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICAtIFwKKysgICAgZmx1YmJlcgorK2FkZCB7Zmx1YmJl cjxpbnQsIGludCwgc2hvcnQsIGludCwgaW50Pn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysg ICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJiZXI8aW50LCBpbnQsIHNob3J0LCBpbnQs IHNob3J0Pn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIK KythZGQge2ZsdWJiZXI8aW50LCBpbnQsIHNob3J0LCBpbnQsIGxvbmc+fSBcCisrICAgIHt2b2lk ICh2b2lkKX0gXAorKyAgICAtIFwKKysgICAgZmx1YmJlcgorK2FkZCB7Zmx1YmJlcjxpbnQsIGlu dCwgc2hvcnQsIGludCwgY2hhcj59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAor KyAgICBmbHViYmVyCisrYWRkIHtmbHViYmVyPGludCwgaW50LCBzaG9ydCwgc2hvcnQsIGludD59 IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAgICBmbHViYmVyCisrYWRkIHtm bHViYmVyPHNob3J0LCBpbnQsIHNob3J0LCBpbnQsIHNob3J0Pn0gXAorKyAgICB7dm9pZCAodm9p ZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJiZXI8bG9uZywgc2hvcnQs IGxvbmcsIHNob3J0LCBsb25nPn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAgLSBcCisr ICAgIGZsdWJiZXIKKythZGQge3RjbGFzczxiYXNlPjo6ZG9fc29tZXRoaW5nfSBcCisrICAgIHt2 b2lkICh0Y2xhc3M8YmFzZT4gKiBjb25zdCl9IFwKKysgICAgLSBcCisrICAgIHt0Y2xhc3M8VD46 OmRvX3NvbWV0aGluZ30KKythZGQge3BvbGljeTE6OnBvbGljeX0gXAorKyAgICBbY3RvciAicG9s aWN5PGludCwgb3BlcmF0aW9uXzE8dm9pZCo+ID4iICJpbnQiXSBcCisrICAgIHtwb2xpY3k8aW50 LCBvcGVyYXRpb25fMTx2b2lkKj4gPjo6cG9saWN5fSBcCisrICAgIHtwb2xpY3k8VCwgUG9saWN5 Pjo6cG9saWN5fQorK2FkZCB7cG9saWN5Mjo6cG9saWN5fSBcCisrICAgIFtjdG9yICJwb2xpY3k8 aW50LCBvcGVyYXRpb25fMjx2b2lkKj4gPiIgaW50XSBcCisrICAgIHtwb2xpY3k8aW50LCBvcGVy YXRpb25fMjx2b2lkKj4gPjo6cG9saWN5fSBcCisrICAgIHtwb2xpY3k8VCwgUG9saWN5Pjo6cG9s aWN5fQorK2FkZCB7cG9saWN5Mzo6cG9saWN5fSBcCisrICAgIFtjdG9yICJwb2xpY3k8aW50LCBv cGVyYXRpb25fMzx2b2lkKj4gPiIgImludCJdIFwKKysgICAge3BvbGljeTxpbnQsIG9wZXJhdGlv bl8zPHZvaWQqPiA+Ojpwb2xpY3l9IFwKKysgICAge3BvbGljeTxULCBQb2xpY3k+Ojpwb2xpY3l9 CisrYWRkIHtwb2xpY3k0Ojpwb2xpY3l9IFwKKysgICAgW2N0b3IgInBvbGljeTxpbnQsIG9wZXJh dGlvbl80PHZvaWQqPiA+IiAiaW50Il0gXAorKyAgICB7cG9saWN5PGludCwgb3BlcmF0aW9uXzQ8 dm9pZCo+ID46OnBvbGljeX0gXAorKyAgICB7cG9saWN5PFQsIFBvbGljeT46OnBvbGljeX0KKyth ZGQge3BvbGljeTE6OmZ1bmN0aW9ufSBcCisrICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICB7b3Bl cmF0aW9uXzE8dm9pZCo+OjpmdW5jdGlvbn0gXAorKyAgICB7b3BlcmF0aW9uXzE8VD46OmZ1bmN0 aW9ufQorK2FkZCB7cG9saWN5Mjo6ZnVuY3Rpb259IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisr ICAgIHtvcGVyYXRpb25fMjx2b2lkKj46OmZ1bmN0aW9ufSBcCisrICAgIHtvcGVyYXRpb25fMjxU Pjo6ZnVuY3Rpb259CisrYWRkIHtwb2xpY3kzOjpmdW5jdGlvbn0gXAorKyAgICB7dm9pZCAodm9p ZCl9IFwKKysgICAge29wZXJhdGlvbl8zPHZvaWQqPjo6ZnVuY3Rpb259IFwKKysgICAge29wZXJh dGlvbl8zPFQ+OjpmdW5jdGlvbn0KKythZGQge3BvbGljeTQ6OmZ1bmN0aW9ufSBcCisrICAgIHt2 b2lkICh2b2lkKX0gXAorKyAgICB7b3BlcmF0aW9uXzQ8dm9pZCo+OjpmdW5jdGlvbn0gXAorKyAg ICB7b3BlcmF0aW9uXzQ8VD46OmZ1bmN0aW9ufQorK2FkZCB7cG9saWN5ZDxpbnQsIG9wZXJhdGlv bl8xPGludD4gPjo6cG9saWN5ZH0gXAorKyAgICBbY3RvciAicG9saWN5ZDxpbnQsIG9wZXJhdGlv bl8xPGludD4gPiIgImludCJdIFwKKysgICAgLSBcCisrICAgIHtwb2xpY3lkPFQsIFBvbGljeT46 OnBvbGljeWR9CisrYWRkIHtwb2xpY3lkMTo6cG9saWN5ZH0gXAorKyAgICBbY3RvciAicG9saWN5 ZDxpbnQsIG9wZXJhdGlvbl8xPGludD4gPiIgImludCJdIFwKKysgICAge3BvbGljeWQ8aW50LCBv cGVyYXRpb25fMTxpbnQ+ID46OnBvbGljeWR9IFwKKysgICAge3BvbGljeWQ8VCwgUG9saWN5Pjo6 cG9saWN5ZH0KKythZGQge3BvbGljeWQ8aW50LCBvcGVyYXRpb25fMTxpbnQ+ID46On5wb2xpY3lk fSBcCisrICAgIFtkdG9yICJwb2xpY3lkPGludCwgb3BlcmF0aW9uXzE8aW50PiA+Il0gXAorKyAg ICAtIFwKKysgICAge3BvbGljeWQ8VCwgUG9saWN5Pjo6fnBvbGljeWR9CisrYWRkIHtwb2xpY3lk MTo6fnBvbGljeWR9IFwKKysgICAgW2R0b3IgInBvbGljeWQ8aW50LCBvcGVyYXRpb25fMTxpbnQ+ ID4iXSBcCisrICAgIHtwb2xpY3lkPGludCwgb3BlcmF0aW9uXzE8aW50PiA+Ojp+cG9saWN5ZH0g XAorKyAgICB7cG9saWN5ZDxULCBQb2xpY3k+Ojp+cG9saWN5ZH0KKythZGQge3BvbGljeWQ8bG9u Zywgb3BlcmF0aW9uXzE8bG9uZz4gPjo6cG9saWN5ZH0gXAorKyAgICBbY3RvciAicG9saWN5ZDxs b25nLCBvcGVyYXRpb25fMTxsb25nPiA+IiAibG9uZyJdIFwKKysgICAgLSBcCisrICAgIHtwb2xp Y3lkPFQsIFBvbGljeT46OnBvbGljeWR9CisrYWRkIHtwb2xpY3lkMjo6cG9saWN5ZH0gXAorKyAg ICBbY3RvciAicG9saWN5ZDxsb25nLCBvcGVyYXRpb25fMTxsb25nPiA+IiAibG9uZyJdIFwKKysg ICAge3BvbGljeWQ8bG9uZywgb3BlcmF0aW9uXzE8bG9uZz4gPjo6cG9saWN5ZH0gXAorKyAgICB7 cG9saWN5ZDxULCBQb2xpY3k+Ojpwb2xpY3lkfQorK2FkZCB7cG9saWN5ZDxsb25nLCBvcGVyYXRp b25fMTxsb25nPiA+Ojp+cG9saWN5ZH0gXAorKyAgICBbZHRvciAicG9saWN5ZDxsb25nLCBvcGVy YXRpb25fMTxsb25nPiA+Il0gXAorKyAgICAtIFwKKysgICAge3BvbGljeWQ8VCwgUG9saWN5Pjo6 fnBvbGljeWR9CisrYWRkIHtwb2xpY3lkMjo6fnBvbGljeWR9IFwKKysgICAgW2R0b3IgInBvbGlj eWQ8bG9uZywgb3BlcmF0aW9uXzE8bG9uZz4gPiJdIFwKKysgICAge3BvbGljeWQ8bG9uZywgb3Bl cmF0aW9uXzE8bG9uZz4gPjo6fnBvbGljeWR9IFwKKysgICAge3BvbGljeWQ8VCwgUG9saWN5Pjo6 fnBvbGljeWR9CisrYWRkIHtwb2xpY3lkPGNoYXIsIG9wZXJhdGlvbl8xPGNoYXI+ID46OnBvbGlj eWR9IFwKKysgICAgW2N0b3IgInBvbGljeWQ8Y2hhciwgb3BlcmF0aW9uXzE8Y2hhcj4gPiIgImNo YXIiXSBcCisrICAgIC0gXAorKyAgICB7cG9saWN5ZDxULCBQb2xpY3k+Ojpwb2xpY3lkfQorK2Fk ZCB7cG9saWN5ZDM6OnBvbGljeWR9IFwKKysgICAgW2N0b3IgInBvbGljeWQ8Y2hhciwgb3BlcmF0 aW9uXzE8Y2hhcj4gPiIgImNoYXIiXSBcCisrICAgIHtwb2xpY3lkPGNoYXIsIG9wZXJhdGlvbl8x PGNoYXI+ID46OnBvbGljeWR9IFwKKysgICAge3BvbGljeWQ8VCwgUG9saWN5Pjo6cG9saWN5ZH0K KythZGQge3BvbGljeWQ8Y2hhciwgb3BlcmF0aW9uXzE8Y2hhcj4gPjo6fnBvbGljeWR9IFwKKysg ICAgW2R0b3IgInBvbGljeWQ8Y2hhciwgb3BlcmF0aW9uXzE8Y2hhcj4gPiJdIFwKKysgICAgLSBc CisrICAgIHtwb2xpY3lkPFQsIFBvbGljeT46On5wb2xpY3lkfQorK2FkZCB7cG9saWN5ZDM6On5w b2xpY3lkfSBcCisrICAgIFtkdG9yICJwb2xpY3lkPGNoYXIsIG9wZXJhdGlvbl8xPGNoYXI+ID4i XSBcCisrICAgIHtwb2xpY3lkPGNoYXIsIG9wZXJhdGlvbl8xPGNoYXI+ID46On5wb2xpY3lkfSBc CisrICAgIHtwb2xpY3lkPFQsIFBvbGljeT46On5wb2xpY3lkfQorK2FkZCB7cG9saWN5ZDxiYXNl LCBvcGVyYXRpb25fMTxiYXNlPiA+Ojpwb2xpY3lkfSBcCisrICAgIFtjdG9yICJwb2xpY3lkPGJh c2UsIG9wZXJhdGlvbl8xPGJhc2U+ID4iICJiYXNlIl0gXAorKyAgICAtIFwKKysgICAge3BvbGlj eWQ8VCwgUG9saWN5Pjo6cG9saWN5ZH0KKythZGQge3BvbGljeWQ0Ojpwb2xpY3lkfSBcCisrICAg IFtjdG9yICJwb2xpY3lkPGJhc2UsIG9wZXJhdGlvbl8xPGJhc2U+ID4iICJiYXNlIl0gXAorKyAg ICB7cG9saWN5ZDxiYXNlLCBvcGVyYXRpb25fMTxiYXNlPiA+Ojpwb2xpY3lkfSBcCisrICAgIHtw b2xpY3lkPFQsIFBvbGljeT46OnBvbGljeWR9CisrYWRkIHtwb2xpY3lkPGJhc2UsIG9wZXJhdGlv bl8xPGJhc2U+ID46On5wb2xpY3lkfSBcCisrICAgIFtkdG9yICJwb2xpY3lkPGJhc2UsIG9wZXJh dGlvbl8xPGJhc2U+ID4iXSBcCisrICAgIC0gXAorKyAgICB7cG9saWN5ZDxULCBQb2xpY3k+Ojp+ cG9saWN5ZH0KKythZGQge3BvbGljeWQ0Ojp+cG9saWN5ZH0gXAorKyAgICBbZHRvciAicG9saWN5 ZDxiYXNlLCBvcGVyYXRpb25fMTxiYXNlPiA+Il0gXAorKyAgICB7cG9saWN5ZDxiYXNlLCBvcGVy YXRpb25fMTxiYXNlPiA+Ojp+cG9saWN5ZH0gXAorKyAgICB7cG9saWN5ZDxULCBQb2xpY3k+Ojp+ cG9saWN5ZH0KKythZGQge3BvbGljeWQ8dGNsYXNzPGludD4sIG9wZXJhdGlvbl8xPHRjbGFzczxp bnQ+ID4gPjo6cG9saWN5ZH0gXAorKyAgICBbY3RvciAicG9saWN5ZDx0Y2xhc3M8aW50Piwgb3Bl cmF0aW9uXzE8dGNsYXNzPGludD4gPiA+IiAidGNsYXNzPGludD4iXSBcCisrICAgIC0gXAorKyAg ICB7cG9saWN5ZDxULCBQb2xpY3k+Ojpwb2xpY3lkfQorK2FkZCB7cG9saWN5ZDU6OnBvbGljeWR9 IFwKKysgICAgW2N0b3IgInBvbGljeWQ8dGNsYXNzPGludD4sIG9wZXJhdGlvbl8xPHRjbGFzczxp bnQ+ID4gPiIgInRjbGFzczxpbnQ+Il0gXAorKyAgICB7cG9saWN5ZDx0Y2xhc3M8aW50Piwgb3Bl cmF0aW9uXzE8dGNsYXNzPGludD4gPiA+Ojpwb2xpY3lkfSBcCisrICAgIHtwb2xpY3lkPFQsIFBv bGljeT46OnBvbGljeWR9CisrYWRkIHtwb2xpY3lkPHRjbGFzczxpbnQ+LCBvcGVyYXRpb25fMTx0 Y2xhc3M8aW50PiA+ID46On5wb2xpY3lkfSBcCisrICAgIFtkdG9yICJwb2xpY3lkPHRjbGFzczxp bnQ+LCBvcGVyYXRpb25fMTx0Y2xhc3M8aW50PiA+ID4iXSBcCisrICAgIC0gXAorKyAgICB7cG9s aWN5ZDxULCBQb2xpY3k+Ojp+cG9saWN5ZH0KKythZGQge3BvbGljeWQ1Ojp+cG9saWN5ZH0gXAor KyAgICBbZHRvciAicG9saWN5ZDx0Y2xhc3M8aW50Piwgb3BlcmF0aW9uXzE8dGNsYXNzPGludD4g PiA+Il0gXAorKyAgICB7cG9saWN5ZDx0Y2xhc3M8aW50Piwgb3BlcmF0aW9uXzE8dGNsYXNzPGlu dD4gPiA+Ojp+cG9saWN5ZH0gXAorKyAgICB7cG9saWN5ZDxULCBQb2xpY3k+Ojp+cG9saWN5ZH0K KythZGQge3BvbGljeWQ8aW50LCBvcGVyYXRpb25fMTxpbnQ+ID46OmZ1bmN0aW9ufSBcCisrICAg IHt2b2lkICh2b2lkKX0gXAorKyAgICB7b3BlcmF0aW9uXzE8aW50Pjo6ZnVuY3Rpb259XAorKyAg ICB7b3BlcmF0aW9uXzE8VD46OmZ1bmN0aW9ufQorK2FkZCB7cG9saWN5ZDE6OmZ1bmN0aW9ufSBc CisrICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICB7b3BlcmF0aW9uXzE8aW50Pjo6ZnVuY3Rpb259 IFwKKysgICAge29wZXJhdGlvbl8xPFQ+OjpmdW5jdGlvbn0KKythZGQge3BvbGljeWQyOjpmdW5j dGlvbn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAge29wZXJhdGlvbl8xPGxvbmc+Ojpm dW5jdGlvbn0gXAorKyAgICB7b3BlcmF0aW9uXzE8VD46OmZ1bmN0aW9ufQorK2FkZCB7cG9saWN5 ZDxjaGFyLCBvcGVyYXRpb25fMTxjaGFyPiA+OjpmdW5jdGlvbn0gXAorKyAgICB7dm9pZCAodm9p ZCl9IFwKKysgICAge29wZXJhdGlvbl8xPGNoYXI+OjpmdW5jdGlvbn0gXAorKyAgICB7b3BlcmF0 aW9uXzE8VD46OmZ1bmN0aW9ufQorK2FkZCB7cG9saWN5ZDM6OmZ1bmN0aW9ufSBcCisrICAgIHt2 b2lkICh2b2lkKX0gXAorKyAgICB7b3BlcmF0aW9uXzE8Y2hhcj46OmZ1bmN0aW9ufSBcCisrICAg IHtvcGVyYXRpb25fMTxUPjo6ZnVuY3Rpb259CisrYWRkIHtwb2xpY3lkPGJhc2UsIG9wZXJhdGlv bl8xPGJhc2U+ID46OmZ1bmN0aW9ufSBcCisrICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICB7b3Bl cmF0aW9uXzE8YmFzZT46OmZ1bmN0aW9ufSBcCisrICAgIHtvcGVyYXRpb25fMTxUPjo6ZnVuY3Rp b259CisrYWRkIHtwb2xpY3lkNDo6ZnVuY3Rpb259IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisr ICAgIHtvcGVyYXRpb25fMTxiYXNlPjo6ZnVuY3Rpb259IFwKKysgICAge29wZXJhdGlvbl8xPFQ+ OjpmdW5jdGlvbn0KKythZGQge3BvbGljeWQ8dGNsYXNzPGludD4sIG9wZXJhdGlvbl8xPHRjbGFz czxpbnQ+ID4gPjo6ZnVuY3Rpb259IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIHtvcGVy YXRpb25fMTx0Y2xhc3M8aW50PiA+OjpmdW5jdGlvbn0gXAorKyAgICB7b3BlcmF0aW9uXzE8VD46 OmZ1bmN0aW9ufQorK2FkZCB7cG9saWN5ZDU6OmZ1bmN0aW9ufSBcCisrICAgIHt2b2lkICh2b2lk KX0gXAorKyAgICB7b3BlcmF0aW9uXzE8dGNsYXNzPGludD4gPjo6ZnVuY3Rpb259IFwKKysgICAg e29wZXJhdGlvbl8xPFQ+OjpmdW5jdGlvbn0KKysKKysjIFN0YXJ0IHRoZSB0ZXN0CisraWYgeyR0 cmFjZWxldmVsfSB7CisrICAgIHN0cmFjZSAkdHJhY2VsZXZlbAorK30KKysKKytpZiB7W3NraXBf Y3BsdXNfdGVzdHNdfSB7IGNvbnRpbnVlIH0KKysKKysjCisrIyB0ZXN0IHJ1bm5pbmcgcHJvZ3Jh bXMKKysjCisrc2V0IHBybXNfaWQgMAorK3NldCBidWdfaWQgMAorKworK3NldCB0ZXN0ZmlsZSAi Y3BleHBycyIKKytzZXQgc3JjZmlsZSAiJHt0ZXN0ZmlsZX0uY2MiCisrc2V0IGJpbmZpbGUgW2Zp bGUgam9pbiAkb2JqZGlyICRzdWJkaXIgJHRlc3RmaWxlXQorKworK2lmICB7W2dkYl9jb21waWxl IFtmaWxlIGpvaW4gJHNyY2RpciAkc3ViZGlyICRzcmNmaWxlXSAkYmluZmlsZSBcCisrCSAgZXhl Y3V0YWJsZSB7ZGVidWcgYysrfV0gIT0gIiIgfSB7CisrICAgIHVudGVzdGVkICIkdGVzdGZpbGUu ZXhwIgorKyAgICByZXR1cm4gLTEKKyt9CisrCisraWYge1tnZXRfY29tcGlsZXJfaW5mbyAkYmlu ZmlsZSAiYysrIl19IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2dkYl9leGl0CisrZ2RiX3N0 YXJ0CisrZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgW2ZpbGUgam9pbiAkc3JjZGlyICRzdWJkaXJdCisr Z2RiX2xvYWQgJGJpbmZpbGUKKysKKytpZiB7IVtydW50b19tYWluXX0geworKyAgICBwZXJyb3Ig ImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IgorKyAgICBjb250aW51ZQorK30KKysKKysjIFNl dCB0aGUgbGlzdHNpemUgdG8gb25lLiBUaGlzIHdpbGwgaGVscCB3aXRoIHRlc3RpbmcgImxpc3Qi LgorK2dkYl90ZXN0ICJzZXQgbGlzdHNpemUgMSIKKysKKysjICJwcmludCBNRVRIT0QiCisrZm9y ZWFjaCBuYW1lIFtnZXRfZnVuY3Rpb25zIHByaW50XSB7CisrICAgIGdkYl90ZXN0ICJwcmludCAk bmFtZSIgW2dldCAkbmFtZSBwcmludF0gInByaW50ICRuYW1lIgorK30KKysKKysjICJsaXN0IE1F VEhPRCIKKytmb3JlYWNoIG5hbWUgW2dldF9mdW5jdGlvbnMgbGlzdF0geworKyAgICBnZGJfdGVz dCAibGlzdCAkbmFtZSIgW2dldCAkbmFtZSBsaXN0XSAibGlzdCAkbmFtZSIKKyt9CisrCisrIyBS dW5uaW5nIHRvIGJyZWFrcG9pbnQgLS0gdXNlIGFueSBmdW5jdGlvbiB3ZSBjYW4gImxpc3QiCisr Zm9yZWFjaCBuYW1lIFtnZXRfZnVuY3Rpb25zIGxpc3RdIHsKKysgICAgIyBTa2lwICJtYWluIiwg c2luY2UgdGVzdF9icmVha3BvaW50IHVzZXMgaXQKKysgICAgaWYge1tzdHJpbmcgY29tcGFyZSAk bmFtZSAibWFpbiJdICE9IDB9IHsKKysJdGVzdF9icmVha3BvaW50ICRuYW1lCisrICAgIH0KKyt9 CisrCisrZ2RiX2V4aXQKKytyZXR1cm4gMAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmNwL2NwbHVzZnVuY3MuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGx1c2Z1bmNzLmNjCitp bmRleCBmNGY3OGE2Li4xMWRiYTA2IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Av Y3BsdXNmdW5jcy5jYworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3BsdXNmdW5jcy5jYwor QEAgLTE5NSw2ICsxOTUsMTIgQEAgY2hhciAqCWRtX3R5cGVfY2hhcl9zdGFyIChjaGFyICogcCkJ CXsgcmV0dXJuIHA7IH0KICBpbnQJZG1fdHlwZV9mb29fcmVmIChmb28gJiBmb28pCQl7IHJldHVy biBmb28uaWZvbzsgfQogIGludCAqCWRtX3R5cGVfaW50X3N0YXIgKGludCAqIHApCQl7IHJldHVy biBwOyB9CiAgbG9uZyAqCWRtX3R5cGVfbG9uZ19zdGFyIChsb25nICogcCkJCXsgcmV0dXJuIHA7 IH0KQEAgLTIwMDk0LDQ2ICsyMjA5NCw0MDIgQEAgaW5kZXggNjgzMmYzYi4uYmFmMDhkNyAxMDA2 NDQKICtnZGJfdGVzdCAicHJpbnQgZGlhbW9uZC4qZGlhbW9uZF9wZnVuY19wdHIgKDIwKSIgXAog KyAgICAiSW52YWxpZCBkYXRhIHR5cGUgZm9yIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZC4iCiArCi0r IyBXaXRoIHBhcmVudGhlc2VzLCBpdCBpcyB2YWxpZC4KKysjIFdpdGggcGFyZW50aGVzZXMsIGl0 IGlzIHZhbGlkLgorKworK2dkYl90ZXN0ICJwcmludCAoZGlhbW9uZC4qZGlhbW9uZF9wZnVuY19w dHIpICgyMCkiIFwKKysgICAgIiR2aG4gPSAzOSIKKysKKysjIE1ha2Ugc3VyZSB0aGF0IHdlIGRv IG5vdCBpbnRlcnByZXQgdGhpcyBhcyBlaXRoZXIgYSBtZW1iZXIgcG9pbnRlcgorKyMgY2FsbCBv ciBhIG1lbWJlciBmdW5jdGlvbiBjYWxsLgorKworK2dkYl90ZXN0ICJwcmludCBkaWFtb25kLmZ1 bmNfcHRyICgyMCkiIFwKKysgICAgIiR2aG4gPSAzOSIKKysKKyAjID09PT09PT09PT09PT09PT09 PT09PT09PT09CisgIyBwb2ludGVyIHRvIG1lbWJlciBmdW5jdGlvbgorICMgPT09PT09PT09PT09 PT09PT09PT09PT09PT0KK0BAIC00MjAsNyArNDQ3LDcgQEAgZ2RiX3Rlc3RfbXVsdGlwbGUgInB0 eXBlIHBtZiIgJG5hbWUgeworIAorIHNldCBuYW1lICJwcmludCBwbWYiCisgZ2RiX3Rlc3RfbXVs dGlwbGUgInByaW50IHBtZiIgJG5hbWUgeworLSAgICAtcmUgIiR2aG4gPSAkaGV4IDxBOjpiYXJc XChpbnRcXCk+XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgLXJlICIkdmhuID0gXFwoaW50IFxc KEE6OlxcKlxcKVxcKEEgXFwqLCBpbnRcXClcXCkgJGhleCA8QTo6YmFyXFwoaW50XFwpPlxyXG4k Z2RiX3Byb21wdCAkIiB7CisgCXBhc3MgJG5hbWUKKyAgICAgfQorICAgICAtcmUgIiR2aG4gPSAu Km5vdCBzdXBwb3J0ZWQgd2l0aCBIUCBhQ0MuKlxyXG4kZ2RiX3Byb21wdCAkIiB7CitAQCAtNjA4 LDYgKzYzNSw5IEBAIGdkYl90ZXN0X211bHRpcGxlICJwcmludCAoYS4qcG1mKSgzKSIgJG5hbWUg eworICAgICB9CisgfQorIAorK2dkYl90ZXN0ICJwdHlwZSBhLipwbWYiICJ0eXBlID0gaW50IFxc KEEgXFwqLCBpbnRcXCkiCisrZ2RiX3Rlc3QgInB0eXBlIChhLipwbWYpKDMpIiAidHlwZSA9IGlu dCIKKysKKyAjIFByaW50IG91dCBhIHBvaW50ZXIgdG8gZGF0YSBtZW1iZXIgd2hpY2ggcmVxdWly ZXMgbG9va2luZyBpbnRvCisgIyBhIGJhc2UgY2xhc3MuCisgZ2RiX3Rlc3QgInByaW50IGRpYW1v bmRfcG1pIiAiJHZobiA9ICZCYXNlOjp4IgorQEAgLTY1OCw1ICs2ODgsNSBAQCBnZGJfdGVzdCAi cHJpbnQgbnVsbF9wbWkgPSAmQTo6aiIgIiR2aG4gPSAmQTo6aiIKKyBnZGJfdGVzdCAicHJpbnQg bnVsbF9wbWkgPSAwIiAiJHZobiA9IE5VTEwiCisgCisgZ2RiX3Rlc3QgInByaW50IG51bGxfcG1m IiAiJHZobiA9IE5VTEwiCistZ2RiX3Rlc3QgInByaW50IG51bGxfcG1mID0gJkE6OmZvbyIgIiR2 aG4gPSAkaGV4IDxBOjpmb28gP1xcKGludFxcKT4iCisrZ2RiX3Rlc3QgInByaW50IG51bGxfcG1m ID0gJkE6OmZvbyIgIiR2aG4gPSBcXChpbnQgXFwoQTo6XFwqXFwpXFwoQSBcXCosIGludFxcKVxc KSAkaGV4IDxBOjpmb28gP1xcKGludFxcKT4iCisgZ2RiX3Rlc3QgInByaW50IG51bGxfcG1mID0g MCIgIiR2aG4gPSBOVUxMIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVz cGFjZS1rb2VuaWcuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2Uta29lbmlnLmNj CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uM2MzMGNiMgorLS0tIC9kZXYv bnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLWtvZW5pZy5jYworQEAg LTAsMCArMSwyMzIgQEAKKytuYW1lc3BhY2UgQQorK3sKKysgIGNsYXNzIEMKKysgIHsKKysgIHB1 YmxpYzoKKysgICAgc3RhdGljIGNvbnN0IGludCB4ID0gMTE7CisrICB9OworKworKyAgaW50Cisr ICBmaXJzdCAoQyBjKQorKyAgeworKyAgICByZXR1cm4gMTE7CisrICB9CisrCisrICBpbnQKKysg IGZpcnN0IChpbnQgYSwgQyBjKQorKyAgeworKyAgICByZXR1cm4gMjI7CisrICB9CisrCisrICBp bnQKKysgIHNlY29uZCAoaW50IGEsIGludCBiLCBDIGNjLCBpbnQgYywgaW50IGQpCisrICB7Cisr ICAgIHJldHVybiAzMzsKKysgIH0KKysKKyt9CisrCisrc3RydWN0IEIKKyt7CisrICBBOjpDIGM7 CisrfTsKKysKKysvLy0tLS0tLS0tLS0tLQorKworK25hbWVzcGFjZSBFCisreworKyAgY2xhc3Mg T3t9OworKyAgaW50IGZvbyAoTyBvKXtyZXR1cm4gMTsgfQorKyAgaW50IGZvbyAoTyBvLCBPIG8y KXtyZXR1cm4gMjsgfQorKyAgaW50IGZvbyAoTyBvLCBPIG8yLCBpbnQgaSl7cmV0dXJuIDM7IH0K Kyt9CisrCisrbmFtZXNwYWNlIEYKKyt7CisrICBjbGFzcyBPe307CisrICBpbnQgZm9vICggICAg ICAgTyBmbywgOjpFOjpPIGVvKXsgcmV0dXJuIDQ7fQorKyAgaW50IGZvbyAoaW50IGksIE8gZm8s IDo6RTo6TyBlbyl7IHJldHVybiA1O30KKyt9CisrCisrbmFtZXNwYWNlIEcKKyt7CisrICBjbGFz cyBPe307CisrICBpbnQgZm9vIChPIGdvLCA6OkY6Ok8gZm8sIDo6RTo6TyBlbyl7IHJldHVybiA2 OyB9CisrfQorKworKy8vLS0tLS0tLS0tLS0tCisrCisrbmFtZXNwYWNlIEgKKyt7CisrICBjbGFz cyBPe307CisrICBpbnQgZm9vIChPKXsgcmV0dXJuIDc7fQorK30KKysKKytuYW1lc3BhY2UgSQor K3sKKysgIGNsYXNzIE86IHB1YmxpYyBIOjpPIHt9OworKyAgY2xhc3MgWDogSDo6T3t9OworK30K KysKKysvLy0tLS0tLS0tLS0tLQorKworK25hbWVzcGFjZSBKCisreworKyAgdW5pb24gVXt9Owor KyAgc3RydWN0IFN7fTsKKysgIGVudW0gRXt9OworKworKyAgY2xhc3MgQXsKKysgIHB1YmxpYzoK KysgICAgY2xhc3MgQnt9OworKyAgfTsKKysKKysgIGNsYXNzIEN7fTsKKysKKysgIGludCBmb28g KFUpeyByZXR1cm4gODt9CisrICBpbnQgZm9vIChTKXsgcmV0dXJuIDk7fQorKyAgaW50IGZvbyAo RSl7IHJldHVybiAxMDt9CisrICBpbnQgZm9vIChBOjpCKXsgcmV0dXJuIDExO30KKysgIGludCBm b28gKEEqKXsgcmV0dXJuIDEyO30KKysgIGludCBmb28gKEEqKil7IHJldHVybiAxMzt9CisrICBp bnQgZm9vIChDW10peyByZXR1cm4gMTQ7fQorKworK30KKysvLy0tLS0tLS0tLS0tLQorKworK25h bWVzcGFjZSBLeworKyAgY2xhc3MgT3t9OworKworKyAgaW50IGZvbyhPLCBpbnQpeworKyAgICBy ZXR1cm4gMTU7CisrICB9CisrCisrICBpbnQgYmFyKE8sIGludCl7CisrICAgIHJldHVybiAxNTsK KysgIH0KKyt9CisrCisraW50IGZvbyhLOjpPLCBmbG9hdCl7CisrICByZXR1cm4gMTY7CisrfQor KworK2ludCBiYXIoSzo6TywgaW50KXsKKysgIHJldHVybiAxNjsKKyt9CisrLy8tLS0tLS0tLS0t LS0KKysKKytuYW1lc3BhY2UgTCB7CisrICBuYW1lc3BhY2UgQXsKKysgICAgbmFtZXNwYWNlIEJ7 CisrICAgIGNsYXNzIE8ge307CisrCisrICAgIGludCBmb28gKE8peworKyAgICAgIHJldHVybiAx NzsKKysgICAgfQorKworKyAgICB9CisrICB9CisrfQorKworKy8vLS0tLS0tLS0tLS0tCisrCisr bmFtZXNwYWNlIE0geworKyAgY2xhc3MgT3sKKysgIHB1YmxpYzoKKysgICAgaW50IG9wZXJhdG9y PT0gKGludCl7CisrICAgICAgcmV0dXJuIDE4OworKyAgICB9CisrCisrICAgIGludCBvcGVyYXRv cj09IChmbG9hdCl7CisrICAgICAgcmV0dXJuIDE5OworKyAgICB9CisrCisrICAgIGludCBvcGVy YXRvcisgKGZsb2F0KXsKKysgICAgICByZXR1cm4gMjI7CisrICAgIH0KKysKKysgIH07CisrCisr ICBpbnQgb3BlcmF0b3IhPSAoTywgaW50KXsKKysgICAgcmV0dXJuIDIwOworKyAgfQorKworKyAg aW50IG9wZXJhdG9yIT0gKE8sIGRvdWJsZSl7CisrICAgIHJldHVybiAyMTsKKysgIH0KKysKKysg IGludCBvcGVyYXRvcisgKE8sIGludCl7CisrICAgIHJldHVybiAyMzsKKysgIH0KKysKKysgIGlu dCBvcGVyYXRvcisrIChPKXsKKysgICAgcmV0dXJuIDI0OworKyAgfQorKworK30KKysvLy0tLS0t LS0tLS0tLQorK2ludAorK21haW4gKCkKKyt7CisrICBBOjpDIGM7CisrICBCIGI7CisrCisrICBB OjpmaXJzdCAoYyk7CisrICBmaXJzdCAoMCwgYyk7CisrICBzZWNvbmQgKDAsIDAsIGMsIDAsIDAp OworKyAgQTo6Zmlyc3QgKGIuYyk7CisrCisrICBFOjpPIGVvOworKyAgRjo6TyBmbzsKKysgIEc6 Ok8gZ287CisrCisrICBmb28gKGVvKTsKKysgIGZvbyAoZW8sIGVvKTsKKysgIGZvbyAoZW8sIGVv LCAxKTsKKysgIGZvbyAoZm8sIGVvKTsKKysgIGZvbyAoMSAgLGZvLCBlbyk7CisrICBmb28gKGdv LCBmbywgZW8pOworKworKyAgSTo6TyBpbzsKKysgIEk6OlggaXg7CisrCisrICBmb28gKGlvKTsK KysvL2ZvbyAoaXgpOworKworKyAgSjo6VSBqdTsKKysgIEo6OlMganM7CisrICBKOjpFIGplOwor KyAgSjo6QTo6QiBqYWI7CisrICBKOjpBICpqYXA7CisrICBKOjpBICoqamFwcDsKKysgIEo6OkMg amNhWzNdOworKworKyAgZm9vIChqdSk7CisrICBmb28gKGpzKTsKKysgIGZvbyAoamUpOworKyAg Zm9vIChqYWIpOworKyAgZm9vIChqYXApOworKyAgZm9vIChqYXBwKTsKKysgIGZvbyAoamNhKTsK KysKKysgIEs6Ok8ga287CisrICBmb28gKGtvLCAxKTsKKysgIGZvbyAoa28sIDEuMGYpOworKyAg Ly9iYXIoa28sMSk7CisrCisrICBMOjpBOjpCOjpPIGxhYm87CisrICBmb28gKGxhYm8pOworKwor KyAgTTo6TyBvOworKyAgbyA9PSA1OworKyAgbyA9PSA1LjBmOworKyAgbyAhPSA1OworKyAgbyAh PSA1LjBmOworKyAgbyArIDU7CisrICBvICsgNS4wZjsKKysKKysgIHJldHVybiBmaXJzdCAoMCwg YykgKyBmb28gKGVvKSArCisrICAgICAgICAgZm9vIChlbywgZW8pICsgZm9vIChlbywgZW8sIDEp ICArCisrICAgICAgICAgZm9vIChmbywgZW8pICsgZm9vICgxICAsZm8sIGVvKSArCisrICAgICAg ICAgZm9vIChnbywgZm8sIGVvKTsKKyt9CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Y3AvbmFtZXNwYWNlLWtvZW5pZy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2Ut a29lbmlnLmV4cAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmM3M2UyMzkK Ky0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1rb2Vu aWcuZXhwCitAQCAtMCwwICsxLDExMiBAQAorKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysj IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKwor K2lmICR0cmFjZWxldmVsIHRoZW4geworKyAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKKyt9CisrCisr c2V0IHBybXNfaWQgMAorK3NldCBidWdfaWQgMAorKworK3NldCB0ZXN0ZmlsZSBuYW1lc3BhY2Ut a29lbmlnCisrc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uY2MKKytzZXQgYmluZmlsZSAke29iamRp cn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CisraWYgIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0v JHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlIHtkZWJ1ZyBjKyt9 XSAhPSAiIiB9IHsKKysgICAgdW50ZXN0ZWQgIkNvdWxkbid0IGNvbXBpbGUgdGVzdCBwcm9ncmFt IgorKyAgICByZXR1cm4gLTEKKyt9CisrCisrIyBHZXQgdGhpbmdzIHN0YXJ0ZWQuCisrCisrZ2Ri X2V4aXQKKytnZGJfc3RhcnQKKytnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIK KytnZGJfbG9hZCAke2JpbmZpbGV9CisrCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKysKKytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBwZXJyb3Ig ImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IG1haW4iCisrICAgIGNvbnRpbnVlCisrfQorKwor KyMgVGVzdCB0aGF0IGtvZW5pZyBsb29rdXAgZmluZHMgY29ycmVjdCBmdW5jdGlvbgorK2dkYl90 ZXN0ICJwIGZpcnN0KGMpIiAiPSAxMSIKKysKKysjIENoYW5nZSB0aGUgbnVtYmVyIG9mIHBhcmFt ZXRlcnMgYW5kIHBvc2l0aW9uIG9mCisrIyB0aGUgcXVhbGlmeWluZyBwYXJhbWV0ZXIKKytnZGJf dGVzdCAicCBzZWNvbmQoMCwwLGMsMCwwKSIgIj0gMzMiCisrCisrIyBUZXN0IHRoYXQga29lbmln IGxvb2t1cCBmaW5kcyBjb3JyZWN0IGZ1bmN0aW9uCisrIyBldmVuIGlmIGl0IGlzIG92ZXJsb2Fk ZWQKKytnZGJfdGVzdCAicCBmaXJzdCgwLGMpIiAiPSAyMiIKKysKKysjIFRlc3QgdGhhdCBrb2Vu aWcgbG9va3VwIGZpbmRzIGNvcnJlY3QgZnVuY3Rpb24KKysjIHdoZW4gdGhlIGFyZ3VtZW50IGlz IGFuIGV4cHJlc3Npb24KKytnZGJfdGVzdCAicCBmaXJzdChiLmMpIiAiPSAxMSIKKysKKysjIHRl c3QgdGhhdCByZXNvbHV0aW9ucyBjYW4gYmUgbWFkZSBhY3Jvc3MgbmFtZXNwYWNlcworK2dkYl90 ZXN0ICJwIGZvbyhlbykiICAgICAgICAgIj0gMSIKKytnZGJfdGVzdCAicCBmb28oZW8sIGVvKSIg ICAgICI9IDIiCisrZ2RiX3Rlc3QgInAgZm9vKGVvLCBlbywgMSkiICAiPSAzIgorK2dkYl90ZXN0 ICJwIGZvbyhmbywgZW8pIiAgICAgIj0gNCIKKytnZGJfdGVzdCAicCBmb28oMSAsZm8sIGVvKSIg ICI9IDUiCisrZ2RiX3Rlc3QgInAgZm9vKGdvLCBmbywgZW8pIiAiPSA2IgorKworKyN0ZXN0IHRo YXQgZ2RiIGZhaWxzIGdyYWNlZnVsbHkKKytnZGJfdGVzdCAicCBmYWtlKGVvKSIgIk5vIHN5bWJv bCBcImZha2VcIiBpbiBjdXJyZW50IGNvbnRleHQuIgorKworKyN0ZXN0IHRoYXQgbmFtZXNwYWNl cyBvZiBiYXNlIGNsYXNzZXMgYXJlIHNlYXJjaGVkCisrZ2RiX3Rlc3QgInAgZm9vKGlvKSIgIj0g NyIKKytnZGJfdGVzdCAicCBmb28oaXgpIiAiQ2Fubm90IHJlc29sdmUgZnVuY3Rpb24gZm9vIHRv IGFueSBvdmVybG9hZGVkIGluc3RhbmNlIgorKworKyN0ZXN0IGZvciBvdGhlciB0eXBlcworK2dk Yl90ZXN0ICJwIGZvbyhqdSkiICI9IDgiCisrZ2RiX3Rlc3QgInAgZm9vKGpzKSIgIj0gOSIKKytn ZGJfdGVzdCAicCBmb28oamUpIiAiPSAxMCIKKysKKysjdGVzdCBmb3IgY2xhc3MgbWVtYmVycwor K3NldHVwX3hmYWlsICIqLSotKiIKKytnZGJfdGVzdCAicCBmb28oamFiKSIgIj0gMTEiCisrCisr Z2RiX3Rlc3QgInAgZm9vKGphcCkiICI9IDEyIgorK2dkYl90ZXN0ICJwIGZvbyhqYXBwKSIgIj0g MTMiCisrZ2RiX3Rlc3QgInAgZm9vKGpjYSkiICI9IDE0IgorKworKyN0ZXN0IG92ZXJsb2FkIHJl c29sdXRpb24KKytnZGJfdGVzdCAicCBmb28oa28sMSkiICI9IDE1IgorK2dkYl90ZXN0ICJwIGZv byhrbywxLjBmKSIgIj0gMTYiCisrc2V0dXBfeGZhaWwgIiotKi0qIgorK2dkYl90ZXN0ICJwIGJh cihrbywxKSIgIj0gLTEiCiArCi0rZ2RiX3Rlc3QgInByaW50IChkaWFtb25kLipkaWFtb25kX3Bm dW5jX3B0cikgKDIwKSIgXAotKyAgICAiJHZobiA9IDM5IgorKyN0ZXN0IGxvb2t1cCBvZiBvYmpl Y3RzIGJlbG9uZ2luZyB0byBuZXN0ZWQgbmFtZXNwYWNlcworK2dkYl90ZXN0ICJwIGZvbyhsYWJv KSIgIj0gMTciCiArCi0rIyBNYWtlIHN1cmUgdGhhdCB3ZSBkbyBub3QgaW50ZXJwcmV0IHRoaXMg YXMgZWl0aGVyIGEgbWVtYmVyIHBvaW50ZXIKLSsjIGNhbGwgb3IgYSBtZW1iZXIgZnVuY3Rpb24g Y2FsbC4KKysjIHRlc3QgbG9va3VwIG9mIG5hbWVzcGFjZSB1c2VyLWRlZmluZWQgb3BlcmF0b3Jz CisrIyBhbmQgb3ZlcmxvYWQgcmVzb2x1dGlvbjoKICsKLStnZGJfdGVzdCAicHJpbnQgZGlhbW9u ZC5mdW5jX3B0ciAoMjApIiBcCi0rICAgICIkdmhuID0gMzkiCisrIyB3aXRoaW4gY2xhc3MKKytn ZGJfdGVzdCAicCBvID09IDUiICI9IDE4IgorK2dkYl90ZXN0ICJwIG8gPT0gNS4wZiIgIj0gMTki CiArCi0gIyA9PT09PT09PT09PT09PT09PT09PT09PT09PQotICMgcG9pbnRlciB0byBtZW1iZXIg ZnVuY3Rpb24KLSAjID09PT09PT09PT09PT09PT09PT09PT09PT09Ci1AQCAtNDIwLDcgKzQ0Nyw3 IEBAIGdkYl90ZXN0X211bHRpcGxlICJwdHlwZSBwbWYiICRuYW1lIHsKLSAKLSBzZXQgbmFtZSAi cHJpbnQgcG1mIgotIGdkYl90ZXN0X211bHRpcGxlICJwcmludCBwbWYiICRuYW1lIHsKLS0gICAg LXJlICIkdmhuID0gJGhleCA8QTo6YmFyXFwoaW50XFwpPlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0r ICAgIC1yZSAiJHZobiA9IFxcKGludCBcXChBOjpcXCpcXClcXChBIFxcKiwgaW50XFwpXFwpICRo ZXggPEE6OmJhclxcKGludFxcKT5cclxuJGdkYl9wcm9tcHQgJCIgewotIAlwYXNzICRuYW1lCi0g ICAgIH0KLSAgICAgLXJlICIkdmhuID0gLipub3Qgc3VwcG9ydGVkIHdpdGggSFAgYUNDLipcclxu JGdkYl9wcm9tcHQgJCIgewotQEAgLTYwOCw2ICs2MzUsOSBAQCBnZGJfdGVzdF9tdWx0aXBsZSAi cHJpbnQgKGEuKnBtZikoMykiICRuYW1lIHsKLSAgICAgfQotIH0KLSAKLStnZGJfdGVzdCAicHR5 cGUgYS4qcG1mIiAidHlwZSA9IGludCBcXChBIFxcKiwgaW50XFwpIgotK2dkYl90ZXN0ICJwdHlw ZSAoYS4qcG1mKSgzKSIgInR5cGUgPSBpbnQiCisrIyB3aXRoaW4gbmFtZXNwYWNlCisrZ2RiX3Rl c3QgInAgbyAhPSA1IiAiPSAyMCIKKytnZGJfdGVzdCAicCBvICE9IDUuMGYiICI9IDIxIgogKwot ICMgUHJpbnQgb3V0IGEgcG9pbnRlciB0byBkYXRhIG1lbWJlciB3aGljaCByZXF1aXJlcyBsb29r aW5nIGludG8KLSAjIGEgYmFzZSBjbGFzcy4KLSBnZGJfdGVzdCAicHJpbnQgZGlhbW9uZF9wbWki ICIkdmhuID0gJkJhc2U6OngiCi1AQCAtNjU4LDUgKzY4OCw1IEBAIGdkYl90ZXN0ICJwcmludCBu dWxsX3BtaSA9ICZBOjpqIiAiJHZobiA9ICZBOjpqIgotIGdkYl90ZXN0ICJwcmludCBudWxsX3Bt aSA9IDAiICIkdmhuID0gTlVMTCIKLSAKLSBnZGJfdGVzdCAicHJpbnQgbnVsbF9wbWYiICIkdmhu ID0gTlVMTCIKLS1nZGJfdGVzdCAicHJpbnQgbnVsbF9wbWYgPSAmQTo6Zm9vIiAiJHZobiA9ICRo ZXggPEE6OmZvbyA/XFwoaW50XFwpPiIKLStnZGJfdGVzdCAicHJpbnQgbnVsbF9wbWYgPSAmQTo6 Zm9vIiAiJHZobiA9IFxcKGludCBcXChBOjpcXCpcXClcXChBIFxcKiwgaW50XFwpXFwpICRoZXgg PEE6OmZvbyA/XFwoaW50XFwpPiIKLSBnZGJfdGVzdCAicHJpbnQgbnVsbF9wbWYgPSAwIiAiJHZo biA9IE5VTEwiCisrIyBhY3Jvc3MgbmFtZXNwYWNlIGFuZCBjbGFzcworK2dkYl90ZXN0ICJwIG8g KyA1LjBmIiAiPSAyMiIKKytnZGJfdGVzdCAicCBvICsgNSIgIj0gMjMiCisrCisrZ2RiX3Rlc3Qg InAgbysrIiAiPSAyNCIKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3Bh Y2UtbXVsdGlwbGUtaW1wb3J0cy5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1t dWx0aXBsZS1pbXBvcnRzLmNjCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4u NmIxODBkNgpAQCAtMjA5MDcsNyArMjMyNjMsNyBAQCBpbmRleCA0MzYyZmQ4Li5mN2NmZDU3IDEw MDY0NAogIAogICMgU29tZSBhbm9ueW1vdXMgbmFtZXNwYWNlIHRlc3RzLgogZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25zdXNpbmcuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Av bnN1c2luZy5leHAKLWluZGV4IGJkMTE1YzQuLjVmODBmN2QgMTAwNjQ0CitpbmRleCA3MmE2MTZl Li5mZDk5Zjg3IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbnN1c2luZy5leHAK ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25zdXNpbmcuZXhwCiBAQCAtMzAsNyArMzAsNyBA QCBpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7 YmluZmlsZX0iIGV4ZWN1dGFibGUgXApAQCAtMjA5MjAsNyArMjMyNzYsNyBAQCBpbmRleCBiZDEx NWM0Li41ZjgwZjdkIDEwMDY0NAogIAogIAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmNwL292ZXJsb2FkLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL292ZXJsb2FkLmV4cAotaW5k ZXggMWJmYTBmMy4uOWZkMzFhOCAxMDA2NDQKK2luZGV4IGFlOGZkMjYuLjgyOTEwMjIgMTAwNjQ0 CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9vdmVybG9hZC5leHAKICsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL292ZXJsb2FkLmV4cAogQEAgLTc0LDEyICs3NCwxMiBAQCBzZXQgcmVfbWV0 aG9kcwkiJHtyZV9tZXRob2RzfSR7d3N9aW50IG92ZXJsb2FkMWFyZ1xcKCh2b2lkfClcXCk7IgpA QCAtMjI3NDksNiArMjUxMDUsMjQyIEBAIGluZGV4IDAwMDAwMDAuLjM5NjMyZDUKICsKICsjIEZh aWxlZCBnZGJfbG9hZCB3b3VsZCBhYm9ydCB0aGUgdGVzdGNhc2UgZXhlY3V0aW9uIGVhcmxpZXIu CiArcGFzcyAiZmlsZSBsb2FkZWQiCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJv dW5kLWxvY2xpc3QuUworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjkzNTM2 OTgKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91 bmQtbG9jbGlzdC5TCitAQCAtMCwwICsxLDE3NiBAQAorKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFy dCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMTAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworKworKy8qIERlYnVnIGluZm9ybWF0aW9uICovCisrCisrLyogV2Ugd2ls bCBgYnJlYWsgKm1haW4nIGF0IHRoZSB2ZXJ5IGZpcnN0IGluc3RydWN0aW9uLiAgKi8KKysjZGVm aW5lIG1haW5fbGVuZ3RoIDEKKysKKysJLnNlY3Rpb24JLmRhdGEKKyt2YXJkYXRhOgorKwkvKiBT ZWUgRFdfT1BfbGl0MyArIDEgKDAtYmFzZWQpLiAgKi8KKysJLnN0cmluZwkJInNlZW5ub3RzZWVu IgorKworKwkuc2VjdGlvbgkuZGVidWdfaW5mbworKy5MY3UxX2JlZ2luOgorKwkuNGJ5dGUJCS5M Y3UxX2VuZCAtIC5MY3UxX3N0YXJ0CS8qIExlbmd0aCBvZiBDb21waWxhdGlvbiBVbml0ICovCisr LkxjdTFfc3RhcnQ6CisrCS4yYnl0ZQkJMgkJCS8qIERXQVJGIHZlcnNpb24gbnVtYmVyICovCisr CS40Ynl0ZQkJLkxkZWJ1Z19hYmJyZXYwCQkvKiBPZmZzZXQgSW50byBBYmJyZXYuIFNlY3Rpb24g Ki8KKysJLmJ5dGUJCTQJCQkvKiBQb2ludGVyIFNpemUgKGluIGJ5dGVzKSAqLworKworKwkvKiBD VSBkaWUgKi8KKysJLnVsZWIxMjgJMQkJCS8qIEFiYnJldjogRFdfVEFHX2NvbXBpbGVfdW5pdCAq LworKwkuNGJ5dGUJCS5McHJvZHVjZXIJCS8qIERXX0FUX3Byb2R1Y2VyICovCisrCS8qIFVzZSBD KysgdG8gZXhwbG9pdCBhIGJ1ZyBpbiBwYXJzaW5nIERXX0FUX25hbWUgIiIuICAqLworKwkuYnl0 ZQkJNAkJCS8qIERXX0FUX2xhbmd1YWdlIChDKyspIC0gICovCisrCS40Ynl0ZQkJbWFpbgkJCS8q IERXX0FUX2xvd19wYyAqLworKwkuYnl0ZQkJbWFpbl9sZW5ndGgJCS8qIERXX0FUX2hpZ2hfcGMg Ki8KKysKKysuTGFycmF5X3R5cGU6CisrCS51bGViMTI4CTIJCQkvKiBBYmJyZXY6IERXX1RBR19h cnJheV90eXBlICovCisrCS40Ynl0ZQkJLkxjaGFyX3R5cGUtLkxjdTFfYmVnaW4JLyogRFdfQVRf dHlwZSAqLworKworKwkudWxlYjEyOAkzCQkJLyogQWJicmV2OiBEV19UQUdfc3VicmFuZ2VfdHlw ZSAqLworKwkuNGJ5dGUJCS5MdWludF90eXBlLS5MY3UxX2JlZ2luCS8qIERXX0FUX3R5cGUgKi8K KysJLmJ5dGUJCTAJCQkvKiBEV19BVF9sb3dlcl9ib3VuZCAqLworKwkuNGJ5dGUJCS5MbGVuX3Zh ci0uTGN1MV9iZWdpbgkvKiBEV19BVF91cHBlcl9ib3VuZCAqLworKwkuYnl0ZQkJMAkJCS8qIEVu ZCBvZiBjaGlsZHJlbiBvZiBkaWUgKi8KKysKKysuTHVpbnRfdHlwZToKKysJLnVsZWIxMjgJNAkJ CS8qIEFiYnJldjogRFdfVEFHX2Jhc2VfdHlwZSAqLworKwkuNGJ5dGUJCS5MdWludF9zdHIJCS8q IERXX0FUX25hbWUgKi8KKysJLmJ5dGUJCTQJCQkvKiBEV19BVF9ieXRlX3NpemUgKi8KKysJLmJ5 dGUJCTcJCQkvKiBEV19BVF9lbmNvZGluZyAqLworKworKy5MY2hhcl90eXBlOgorKwkudWxlYjEy OAk0CQkJLyogQWJicmV2OiBEV19UQUdfYmFzZV90eXBlICovCisrCS40Ynl0ZQkJLkxjaGFyX3N0 cgkJLyogRFdfQVRfbmFtZSAqLworKwkuYnl0ZQkJMQkJCS8qIERXX0FUX2J5dGVfc2l6ZSAqLwor KwkuYnl0ZQkJNgkJCS8qIERXX0FUX2VuY29kaW5nICovCisrCisrLkxsZW5fdmFyOgorKwkudWxl YjEyOAk1CQkJLyogQWJicmV2OiBEV19UQUdfdmFyaWFibGUgYXJ0aWZpY2lhbCAqLworKwkuYnl0 ZQkJMQkJCS8qIERXX0FUX2FydGlmaWNpYWwgKi8KKysJLjRieXRlCQkuTHVpbnRfdHlwZS0uTGN1 MV9iZWdpbgkvKiBEV19BVF90eXBlICovCisrCS40Ynl0ZQkJLkxsZW5fbG9jbGlzdC0uTGxvY2xp c3QJLyogRFdfQVRfbG9jYXRpb24gKi8KKysKKysJLnVsZWIxMjgJNgkJCS8qIEFiYnJldjogRFdf VEFHX3ZhcmlhYmxlIERXX0ZPUk1fc3RyaW5nICovCisrCS5zdHJpbmcJCSJhX3N0cmluZyIJCS8q IERXX0FUX25hbWUgKi8KKysJLjRieXRlCQkuTGFycmF5X3R5cGUtLkxjdTFfYmVnaW4vKiBEV19B VF90eXBlICovCisrCS5ieXRlCQkyZiAtIDFmCQkJLyogRFdfQVRfbG9jYXRpb24gKi8KKysxOgku Ynl0ZQkJMwkJCS8qICAgRFdfT1BfYWRkciAqLworKwkuNGJ5dGUJCXZhcmRhdGEJCQkvKiAgIDxh ZGRyPiAqLworKzI6CisrCisrCS5ieXRlCQkwCQkJLyogRW5kIG9mIGNoaWxkcmVuIG9mIENVICov CisrLkxjdTFfZW5kOgorKworKwkuc2VjdGlvbgkuZGVidWdfbG9jCisrLkxsb2NsaXN0OgorKy5M bGVuX2xvY2xpc3Q6CisrCS40Ynl0ZQkwCQkJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MK KysJLjRieXRlCW1haW5fbGVuZ3RoCQkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MKKysJLnZh bHVlCTJmLTFmCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrMToJLmJ5dGUJMHgzMwkjIERX X09QX2xpdDMKKysJLmJ5dGUJMHg5ZgkjIERXX09QX3N0YWNrX3ZhbHVlCisrMjoKKysJLnF1YWQJ MHgwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGJlZ2luICgqLkxMU1QyKQorKwkucXVhZAkw eDAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxMU1QyKQorKworKwkuc2VjdGlv biAuZGVidWdfYWJicmV2CisrLkxkZWJ1Z19hYmJyZXYwOgorKwkudWxlYjEyOAkxCQkJLyogQWJi cmV2IGNvZGUgKi8KKysJLnVsZWIxMjgJMHgxMQkJCS8qIERXX1RBR19jb21waWxlX3VuaXQgKi8K KysJLmJ5dGUJCTB4MQkJCS8qIGhhc19jaGlsZHJlbiAqLworKwkudWxlYjEyOAkweDI1CQkJLyog RFdfQVRfcHJvZHVjZXIgKi8KKysJLnVsZWIxMjgJMHhlCQkJLyogRFdfRk9STV9zdHJwICovCisr CS51bGViMTI4CTB4MTMJCQkvKiBEV19BVF9sYW5ndWFnZSAqLworKwkudWxlYjEyOAkweGIJCQkv KiBEV19GT1JNX2RhdGExICovCisrCS51bGViMTI4CTB4MTEJCQkvKiBEV19BVF9sb3dfcGMgKi8K KysJLnVsZWIxMjgJMHgxCQkJLyogRFdfRk9STV9hZGRyICovCisrCS51bGViMTI4CTB4MTIJCQkv KiBEV19BVF9oaWdoX3BjICovCisrCS51bGViMTI4CTB4YgkJCS8qIERXX0ZPUk1fZGF0YTEgKi8K KysJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKysJLmJ5dGUJCTB4MAkJCS8qIFRlcm1p bmF0b3IgKi8KKysKKysJLnVsZWIxMjgJMgkJCS8qIEFiYnJldiBjb2RlICovCisrCS51bGViMTI4 CTB4MQkJCS8qIFRBRzogRFdfVEFHX2FycmF5X3R5cGUgKi8KKysJLmJ5dGUJCTB4MQkJCS8qIERX X2NoaWxkcmVuX3llcyAqLworKwkudWxlYjEyOAkweDQ5CQkJLyogRFdfQVRfdHlwZSAqLworKwku dWxlYjEyOAkweDEzCQkJLyogRFdfRk9STV9yZWY0ICovCisrCS5ieXRlCQkweDAJCQkvKiBUZXJt aW5hdG9yICovCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisrCisrCS51bGViMTI4 CTMJCQkvKiBBYmJyZXYgY29kZSAqLworKwkudWxlYjEyOAkweDIxCQkJLyogRFdfVEFHX3N1YnJh bmdlX3R5cGUgKi8KKysJLmJ5dGUJCTB4MAkJCS8qIG5vIGNoaWxkcmVuICovCisrCS51bGViMTI4 CTB4NDkJCQkvKiBEV19BVF90eXBlICovCisrCS51bGViMTI4CTB4MTMJCQkvKiBEV19GT1JNX3Jl ZjQgKi8KKysJLnVsZWIxMjgJMHgyMgkJCS8qIERXX0FUX2xvd2VyX2JvdW5kICovCisrCS51bGVi MTI4CTB4YgkJCS8qIERXX0ZPUk1fZGF0YTEgKi8KKysJLnVsZWIxMjgJMHgyZgkJCS8qIERXX0FU X3VwcGVyX2JvdW5kICovCisrCS51bGViMTI4CTB4MTMJCQkvKiBEV19GT1JNX3JlZjQgKi8KKysJ LmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKysJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0 b3IgKi8KKysKKysJLnVsZWIxMjgJNAkJCS8qIEFiYnJldiBjb2RlICovCisrCS51bGViMTI4CTB4 MjQJCQkvKiBEV19UQUdfYmFzZV90eXBlICovCisrCS5ieXRlCQkweDAJCQkvKiBub19jaGlsZHJl biAqLworKwkudWxlYjEyOAkweDMJCQkvKiBEV19BVF9uYW1lICovCisrCS51bGViMTI4CTB4ZQkJ CS8qIERXX0ZPUk1fc3RycCAqLworKwkudWxlYjEyOAkweGIJCQkvKiBEV19BVF9ieXRlX3NpemUg Ki8KKysJLnVsZWIxMjgJMHhiCQkJLyogRFdfRk9STV9kYXRhMSAqLworKwkudWxlYjEyOAkweDNl CQkJLyogRFdfQVRfZW5jb2RpbmcgKi8KKysJLnVsZWIxMjgJMHhiCQkJLyogRFdfRk9STV9kYXRh MSAqLworKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKwkuYnl0ZQkJMHgwCQkJLyog VGVybWluYXRvciAqLworKworKwkudWxlYjEyOAk1CQkJLyogQWJicmV2IGNvZGUgKi8KKysJLnVs ZWIxMjgJMHgzNAkJCS8qIERXX1RBR192YXJpYWJsZSAqLworKwkuYnl0ZQkJMHgwCQkJLyogbm9f Y2hpbGRyZW4gKi8KKysJLnVsZWIxMjgJMHgzNAkJCS8qIERXX0FUX2FydGlmaWNpYWwgKi8KKysJ LnVsZWIxMjgJMHgwYwkJCS8qIERXX0ZPUk1fZmxhZyAqLworKwkudWxlYjEyOAkweDQ5CQkJLyog RFdfQVRfdHlwZSAqLworKwkudWxlYjEyOAkweDEzCQkJLyogRFdfRk9STV9yZWY0ICovCisrCS51 bGViMTI4CTB4MDIJCQkvKiBEV19BVF9sb2NhdGlvbiAqLworKwkudWxlYjEyOAkweDA2CQkJLyog RFdfRk9STV9kYXRhNCAqLworKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKwkuYnl0 ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKworKwkudWxlYjEyOAk2CQkJLyogQWJicmV2IGNv ZGUgKi8KKysJLnVsZWIxMjgJMHgzNAkJCS8qIERXX1RBR192YXJpYWJsZSAqLworKwkuYnl0ZQkJ MHgwCQkJLyogbm9fY2hpbGRyZW4gKi8KKysJLnVsZWIxMjgJMHgzCQkJLyogRFdfQVRfbmFtZSAq LworKwkudWxlYjEyOAkweDgJCQkvKiBEV19GT1JNX3N0cmluZyAqLworKwkudWxlYjEyOAkweDQ5 CQkJLyogRFdfQVRfdHlwZSAqLworKwkudWxlYjEyOAkweDEzCQkJLyogRFdfRk9STV9yZWY0ICov CisrCS51bGViMTI4CTB4MgkJCS8qIERXX0FUX2xvY2F0aW9uICovCisrCS51bGViMTI4CTB4YQkJ CS8qIERXX0ZPUk1fYmxvY2sxICovCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisr CS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisrCisrCS5ieXRlCQkweDAJCQkvKiBUZXJt aW5hdG9yICovCisrCisrLyogU3RyaW5nIHRhYmxlICovCisrCS5zZWN0aW9uIC5kZWJ1Z19zdHIK KysuTHByb2R1Y2VyOgorKwkuc3RyaW5nCQkiR05VIEMgMy4zLjMiCisrLkxjaGFyX3N0cjoKKysJ LnN0cmluZwkJImNoYXIiCisrLkx1aW50X3N0cjoKKysJLnN0cmluZwkJInVuc2lnbmVkIGludCIK K2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3Qu ZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAorbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjI4ZGIwMDUKKy0tLSAvZGV2L251bGwK KysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAKK0BA IC0wLDAgKzEsNDggQEAKKysjIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor KyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFRlc3QgcHJp bnRpbmcgdmFyaWFibGUgd2l0aCBkeW5hbWljIGJvdW5kcyB3aGljaCByZWZlcmVuY2UgYSBkaWZm ZXJlbnQKKysjIChhcnRpZmljaWFsIGluIHRoZSBHQ0MgY2FzZSkgdmFyaWFibGUgY29udGFpbmlu ZyBsb2NsaXN0IGFzIGl0cyBsb2NhdGlvbi4KKysjIFRoaXMgdGVzdGNhc2UgdXNlcyB2YWx1ZSAo bm90IGFkZHJlc3MpIG9mIHRoZSByZWZlcmVuY2VkIHZhcmlhYmxlOgorKyMgaHR0cDovL2djYy5n bnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD00Mzc2MgorKworKyMgVGhpcyB0ZXN0IGNh biBvbmx5IGJlIHJ1biBvbiB0YXJnZXRzIHdoaWNoIHN1cHBvcnQgRFdBUkYtMiBhbmQgdXNlIGdh cy4KKysjIEZvciBub3cgcGljayBhIHNhbXBsaW5nIG9mIGxpa2VseSB0YXJnZXRzLgorK2lmIHsh W2lzdGFyZ2V0ICotKi1saW51eCpdCisrICAgICYmICFbaXN0YXJnZXQgKi0qLWdudSpdCisrICAg ICYmICFbaXN0YXJnZXQgKi0qLWVsZipdCisrICAgICYmICFbaXN0YXJnZXQgKi0qLW9wZW5ic2Qq XQorKyAgICAmJiAhW2lzdGFyZ2V0IGFybS0qLWVhYmkqXQorKyAgICAmJiAhW2lzdGFyZ2V0IHBv d2VycGMtKi1lYWJpKl19IHsKKysgICAgcmV0dXJuIDAKKyt9CisrCisrc2V0IHRlc3RmaWxlIGR3 Mi1ib3VuZC1sb2NsaXN0CisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5l eHAgJHt0ZXN0ZmlsZX0gW2xpc3QgJHt0ZXN0ZmlsZX0uUyBtYWluLmNdIHt9XSB9IHsKKysgICAg cmV0dXJuIC0xCisrfQorKworKyMgVmVyaWZ5IGl0IGJlaGF2ZXMgYXQgbGVhc3QgYXMgYW4gdW5i b3VuZCBhcnJheSB3aXRob3V0IGluZmVyaW9yLgorKworK2dkYl90ZXN0ICJwIGFfc3RyaW5nIiB7 ID0gMHhbMC05YS1mXSsgInNlZW5ub3RzZWVuIn0KKytnZGJfdGVzdCAicHR5cGUgYV9zdHJpbmci IHt0eXBlID0gY2hhciBcW1xdfQorKworKyMgTm90IHJ1bnRvX21haW4gYXMgZHcyLWJvdW5kLWxv Y2xpc3QuUyBoYW5kbGVzIG9ubHkgdGhlIGZpcnN0IGJ5dGUgb2YgbWFpbi4KKytpZiAhW3J1bnRv ICIqbWFpbiJdIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2dkYl90ZXN0ICJwIGFfc3RyaW5n IiB7ID0gInNlZW4ifQorK2dkYl90ZXN0ICJwdHlwZSBhX3N0cmluZyIge3R5cGUgPSBjaGFyIFxb NFxdfQogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZW1wdHktbmFt ZXNwYWNlLlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWVtcHR5LW5hbWVzcGFjZS5T CiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4uN2IwM2ZmMQpAQCAtMjM4NzUs NiArMjY0NjcsNDMgQEAgaW5kZXggOWU3ODdmMC4uNWNhMTVkNSAxMDA2NDQKICAJICAgIC1yZSAi Lip0aW1lX2F0X3N0YXJ0dXAgPSBnZXRfcnVuX3RpbWUuKiRnZGJfcHJvbXB0ICQiIHsKICAJCXNl dCBkZXNjcmlwdGlvbiAibmV4dCBvdmVyIGdldF9ydW5fdGltZSBhbmQgZXZlcnl0aGluZyBpdCBj YWxscyIKICAJCXNldCBjb21tYW5kICJuZXh0IgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLmphdmEvam1haW4uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuamF2YS9qbWFpbi5leHAKK2lu ZGV4IGFiOTUyNDcuLjk4MTQ5MjEgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5qYXZh L2ptYWluLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuamF2YS9qbWFpbi5leHAKK0BAIC02 NSw3ICs2NSw3IEBAIGdkYl90ZXN0ICJicmVhayBqbWFpbi5tYWluIiAiJHticG1haW59IgorIAor ICMgQ2hlY2sgdGhhdCBhIGZ1bGx5IHF1YWxpZmllZCAibWFpbiIgd29ya3MuCisgZ2RiX2xvYWQg IiR7YmluZmlsZX0iCistc2V0IGNtZCAiYnJlYWsgXCcke3Rlc3RmaWxlfS5tYWluKGphdmEubGFu Zy5TdHJpbmdcW1xdKVwnIgorK3NldCBjbWQgImJyZWFrICR7dGVzdGZpbGV9Lm1haW4oamF2YS5s YW5nLlN0cmluZ1xbXF0pIgorIHNldCBtc2cgJGNtZAorIGdkYl90ZXN0X211bHRpcGxlICRjbWQg JG1zZyB7CisgICAgIC1yZSAiJHticG1haW59XHJcbiRnZGJfcHJvbXB0ICQiIHsKK0BAIC03OSw3 ICs3OSw3IEBAIGdkYl90ZXN0X211bHRpcGxlICRjbWQgJG1zZyB7CisgCWdkYl90ZXN0ICJuIiAi IiAiIgorIAorIAkjIENoZWNrIGFnYWluIHdpdGggYSBtZXRob2Qgc2lnbmF0dXJlIGF0IHRoZSBl bmQuCistCXNldCBjbWQgImJyZWFrIFwnJHt0ZXN0ZmlsZX0ubWFpbihqYXZhLmxhbmcuU3RyaW5n XFtcXSl2b2lkXCciCisrCXNldCBjbWQgImJyZWFrICR7dGVzdGZpbGV9Lm1haW4oamF2YS5sYW5n LlN0cmluZ1xbXF0pdm9pZCIKKyAJc2V0IG1zZyAkY21kCisgCWdkYl90ZXN0X211bHRpcGxlICRj bWQgJG1zZyB7CisgCSAgICAtcmUgIiR7YnBtYWlufVxyXG4kZ2RiX3Byb21wdCAkIiB7CitkaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuamF2YS9qbWlzYy5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5qYXZhL2ptaXNjLmV4cAoraW5kZXggNmY3MTg4ZC4uZTNhYjY1NyAxMDA2NDQKKy0tLSBh L2dkYi90ZXN0c3VpdGUvZ2RiLmphdmEvam1pc2MuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5qYXZhL2ptaXNjLmV4cAorQEAgLTcxLDggKzcxLDggQEAgaWYgIVtzZXRfbGFuZ19qYXZhXSB0 aGVuIHsKKyAgICAgIyBzaWduYXR1cmUuCisgICAgIHJ1bnRvX21haW4KKyAgICAgc2V0IGZ1bmN0 aW9uICIke3Rlc3RmaWxlfS5tYWluKGphdmEubGFuZy5TdHJpbmdcW1xdKSIKKy0gICAgZ2RiX2Jy ZWFrcG9pbnQgIlwnJGZ1bmN0aW9uXCciIHsgYWxsb3ctcGVuZGluZyB9CistICAgIGdkYl9icmVh a3BvaW50ICJcJyR7ZnVuY3Rpb259dm9pZFwnIiB7IGFsbG93LXBlbmRpbmcgfQorKyAgICBnZGJf YnJlYWtwb2ludCAiJGZ1bmN0aW9uIiB7IGFsbG93LXBlbmRpbmcgfQorKyAgICBnZGJfYnJlYWtw b2ludCAiJHtmdW5jdGlvbn12b2lkIiB7IGFsbG93LXBlbmRpbmcgfQorICAgICBnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAkZnVuY3Rpb24KKyAKKyAgICAgc2VuZF9nZGIgInB0eXBlIGptaXNj XG4iICAgCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuamF2YS9qbnBlLmV4cCBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmphdmEvam5wZS5leHAKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRl eCAwMDAwMDAwLi5lNzEzOTFlCkBAIC0yNDAwMiw2ICsyNjYzMSwyMSBAQCBpbmRleCAwMDAwMDAw Li4zNTI0ODMwCiArICAgICAgfQogKyAgfQogK30KK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5qYXZhL2pwcmludC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5qYXZhL2pwcmludC5leHAK K2luZGV4IDI5ZGJmNGIuLjQ0N2NhNzMgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5q YXZhL2pwcmludC5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmphdmEvanByaW50LmV4cAor QEAgLTcwLDggKzcwLDggQEAgaWYgIVtzZXRfbGFuZ19qYXZhXSB0aGVuIHsKKyAgICAgIyBzaWdu YXR1cmUuCisgICAgIHJ1bnRvX21haW4KKyAgICAgc2V0IGZ1bmN0aW9uICIke3Rlc3RmaWxlfS5t YWluKGphdmEubGFuZy5TdHJpbmdcW1xdKSIKKy0gICAgZ2RiX2JyZWFrcG9pbnQgIlwnJGZ1bmN0 aW9uXCciIHsgYWxsb3ctcGVuZGluZyB9CistICAgIGdkYl9icmVha3BvaW50ICJcJyR7ZnVuY3Rp b259dm9pZFwnIiB7IGFsbG93LXBlbmRpbmcgfQorKyAgICBnZGJfYnJlYWtwb2ludCAiJGZ1bmN0 aW9uIiB7IGFsbG93LXBlbmRpbmcgfQorKyAgICBnZGJfYnJlYWtwb2ludCAiJHtmdW5jdGlvbn12 b2lkIiB7IGFsbG93LXBlbmRpbmcgfQorICAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAk ZnVuY3Rpb24KKyAKKyAgICAgZ2RiX3Rlc3QgInAganZjbGFzcy5hZGRwcmludCg0LDUsNikiICJz dW0gaXMgMTVcclxuLioiICJ1bmFtYmlndW91cyBzdGF0aWMgY2FsbCIKIGRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMgYi9nZGIvdGVz dHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMKIG5ldyBmaWxlIG1vZGUg MTAwNjQ0CiBpbmRleCAwMDAwMDAwLi43MjlmNDU3CkBAIC0yNDc5MiwxMCArMjc0MzYsMTAgQEAg aW5kZXggNzEzYWQ1Zi4uNWQxN2IyNiAxMDA2NDQKICAgICAgZ2xvYmFsIHRlc3RmaWxlIHNyY2Rp ciBzdWJkaXIgc3JjZmlsZSBiaW5maWxlCiAgICAgIGlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rp cn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBcCiBkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS12YWx1ZS5leHAKLWluZGV4IGFhNGU1MTkuLmY4NzI3N2QgMTAwNjQ0CitpbmRleCBk OTgwYTNkLi42YTc1NTk1IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LXZhbHVlLmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cAot QEAgLTMwNSw2ICszMDUsMTUgQEAgcHJvYyB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRoIHt9IHsKK0BA IC0zMDcsNiArMzA3LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7fSB7CiAgICAg ICJwcmludCB2YWx1ZSdzIHR5cGUiCiAgfQogIApAQCAtMjQ4MTEsNyArMjc0NTUsNyBAQCBpbmRl eCBhYTRlNTE5Li5mODcyNzdkIDEwMDY0NAogICMgUmVncmVzc2lvbiB0ZXN0IGZvciBpbnZhbGlk IHN1YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAogICMgdGhlIHR5cGUgb2Yg dGhlIHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dpbmcgYQogICMgc3Vi c2NyaXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgotQEAgLTM5MCwxNiArMzk5LDIzIEBAIHByb2Mg dGVzdF9wYXJzZV9hbmRfZXZhbCB7fSB7CitAQCAtMzkyLDE2ICs0MDEsMjMgQEAgcHJvYyB0ZXN0 X3BhcnNlX2FuZF9ldmFsIHt9IHsKICBnZGJfZXhpdAogIGdkYl9zdGFydAogIGdkYl9yZWluaXRp YWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgpAQCAtMjQ4NDIsNyArMjc0ODYsNyBAQCBpbmRleCBh YTRlNTE5Li5mODcyNzdkIDEwMDY0NAogIHRlc3RfdmFsdWVfY3JlYXRpb24KICB0ZXN0X3ZhbHVl X251bWVyaWNfb3BzCiAgdGVzdF92YWx1ZV9ib29sZWFuCi1AQCAtNDE3LDYgKzQzMyw3IEBAIGlm ICFbcnVudG9fbWFpbl0gdGhlbiB7CitAQCAtNDE5LDYgKzQzNSw3IEBAIGlmICFbcnVudG9fbWFp bl0gdGhlbiB7CiAgdGVzdF92YWx1ZV9pbl9pbmZlcmlvcgogIHRlc3RfbGF6eV9zdHJpbmdzCiAg dGVzdF92YWx1ZV9hZnRlcl9kZWF0aApAQCAtMjU0MTUsNyArMjgwNTksNyBAQCBpbmRleCA2ZmJl ZTg0Li4xMTg5Y2ZkIDEwMDY0NAogIAogICAgICAjIENoZWNrIHRoZSBhY3R1YWwga2V5LiAgSXQg d291bGQgYmUgbmljZSB0byByZXF1aXJlIHRoYXQgaXQgbWF0Y2gKIGRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2xpYi9nZGIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAotaW5kZXgg OWIwNmEyZi4uNDE5ZDVhOSAxMDA2NDQKK2luZGV4IDYyNzk0MWQuLjFmOWIyMjggMTAwNjQ0CiAt LS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9n ZGIuZXhwCiBAQCAtMjcsNiArMjcsNyBAQCBpZiB7JHRvb2wgPT0gIiJ9IHsKQEAgLTI1NjYyLDM2 ICsyODMwNiwxOSBAQCBpbmRleCA2MTU1Njk5Li5iYjk0ZjRiIDEwMDY0NAogIAogIGV4dGVybiBs b25nIHVpX2ZpbGVfcmVhZCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIGNoYXIgKmJ1ZiwgbG9uZyBs ZW5ndGhfYnVmKTsKICAKLWRpZmYgLS1naXQgYS9nZGIvdXRpbHMuYyBiL2dkYi91dGlscy5jCi1p bmRleCA4MmE2NmExLi5jMzA1NTA2IDEwMDY0NAotLS0tIGEvZ2RiL3V0aWxzLmMKLSsrKyBiL2dk Yi91dGlscy5jCi1AQCAtMjY1Niw3ICsyNjU2LDEwIEBAIGZwcmludGZfc3ltYm9sX2ZpbHRlcmVk IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBjaGFyICpuYW1lLAotICAgIEFzIGFuIGV4dHJhIGhh Y2ssIHN0cmluZzE9PSJGT08oQVJHUykiIG1hdGNoZXMgc3RyaW5nMj09IkZPTyIuCi0gICAgVGhp cyAiZmVhdHVyZSIgaXMgdXNlZnVsIHdoZW4gc2VhcmNoaW5nIGZvciBtYXRjaGluZyBDKysgZnVu Y3Rpb24gbmFtZXMKLSAgICAoc3VjaCBhcyBpZiB0aGUgdXNlciB0eXBlcyAnYnJlYWsgRk9PJywg d2hlcmUgRk9PIGlzIGEgbWFuZ2xlZCBDKysKLS0gICBmdW5jdGlvbikuICovCi0rICAgZnVuY3Rp b24pLgotKwotKyAgIEFzIGFuIGV4dHJhLXNwZWNpYWwgaGFjaywgd2UgZG8gdGhlIHNhbWUgd2l0 aCAnICcsIHNvIHRoYXQKLSsgICAiRk9PKEFSR1MpIGNvbnN0IiBjYW4gbWF0Y2ggIkZPTyIsIHRv by4gICovCi0gCi0gaW50Ci0gc3RyY21wX2l3IChjb25zdCBjaGFyICpzdHJpbmcxLCBjb25zdCBj aGFyICpzdHJpbmcyKQotQEAgLTI2ODEsNyArMjY4NCw3IEBAIHN0cmNtcF9pdyAoY29uc3QgY2hh ciAqc3RyaW5nMSwgY29uc3QgY2hhciAqc3RyaW5nMikKLSAJICBzdHJpbmcyKys7Ci0gCX0KLSAg ICAgfQotLSAgcmV0dXJuICgqc3RyaW5nMSAhPSAnXDAnICYmICpzdHJpbmcxICE9ICcoJykgfHwg KCpzdHJpbmcyICE9ICdcMCcpOwotKyAgcmV0dXJuICgqc3RyaW5nMSAhPSAnICcgJiYgKnN0cmlu ZzEgIT0gJ1wwJyAmJiAqc3RyaW5nMSAhPSAnKCcpIHx8ICgqc3RyaW5nMiAhPSAnXDAnICYmICpz dHJpbmcyICE9ICcoJyk7Ci0gfQotIAotIC8qIFRoaXMgaXMgbGlrZSBzdHJjbXAgZXhjZXB0IHRo YXQgaXQgaWdub3JlcyB3aGl0ZXNwYWNlIGFuZCB0cmVhdHMKIGRpZmYgLS1naXQgYS9nZGIvdmFs YXJpdGguYyBiL2dkYi92YWxhcml0aC5jCi1pbmRleCBlZDc2YjA5Li44YmYzNjM0IDEwMDY0NAor aW5kZXggOWY5MWY0ZS4uNzUzOTI3ZiAxMDA2NDQKIC0tLSBhL2dkYi92YWxhcml0aC5jCiArKysg Yi9nZGIvdmFsYXJpdGguYwotQEAgLTEzOSw3ICsxMzksNiBAQCBhbiBpbnRlZ2VyIG5vciBhIHBv aW50ZXIgb2YgdGhlIHNhbWUgdHlwZS4iKSk7CitAQCAtMzEsNiArMzEsNyBAQAorICNpbmNsdWRl ICJkZnAuaCIKKyAjaW5jbHVkZSA8bWF0aC5oPgorICNpbmNsdWRlICJpbmZjYWxsLmgiCisrI2lu Y2x1ZGUgImV4Y2VwdGlvbnMuaCIKKyAKKyAvKiBEZWZpbmUgd2hldGhlciBvciBub3QgdGhlIEMg b3BlcmF0b3IgJy8nIHRydW5jYXRlcyB0b3dhcmRzIHplcm8gZm9yCisgICAgZGlmZmVyZW50bHkg c2lnbmVkIG9wZXJhbmRzICh0cnVuY2F0aW9uIGRpcmVjdGlvbiBpcyB1bmRlZmluZWQgaW4gQyku ICovCitAQCAtMTQ2LDcgKzE0Nyw2IEBAIGFuIGludGVnZXIgbm9yIGEgcG9pbnRlciBvZiB0aGUg c2FtZSB0eXBlLiIpKTsKICBzdHJ1Y3QgdmFsdWUgKgogIHZhbHVlX3N1YnNjcmlwdCAoc3RydWN0 IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRleCkKICB7CkBAIC0yNTY5OSw3ICsyODMyNiw3IEBA IGluZGV4IGVkNzZiMDkuLjhiZjM2MzQgMTAwNjQ0CiAgICBpbnQgY19zdHlsZSA9IGN1cnJlbnRf bGFuZ3VhZ2UtPmNfc3R5bGVfYXJyYXlzOwogICAgc3RydWN0IHR5cGUgKnRhcnJheTsKICAKLUBA IC0xNTQsMTIgKzE1MywyNiBAQCB2YWx1ZV9zdWJzY3JpcHQgKHN0cnVjdCB2YWx1ZSAqYXJyYXks IExPTkdFU1QgaW5kZXgpCitAQCAtMTYxLDEyICsxNjEsMjYgQEAgdmFsdWVfc3Vic2NyaXB0IChz dHJ1Y3QgdmFsdWUgKmFycmF5LCBMT05HRVNUIGluZGV4KQogICAgICAgIGdldF9kaXNjcmV0ZV9i b3VuZHMgKHJhbmdlX3R5cGUsICZsb3dlcmJvdW5kLCAmdXBwZXJib3VuZCk7CiAgCiAgICAgICAg aWYgKFZBTFVFX0xWQUwgKGFycmF5KSAhPSBsdmFsX21lbW9yeSkKQEAgLTI1NzI4LDcgKzI4MzU1 LDcgQEAgaW5kZXggZWQ3NmIwOS4uOGJmMzYzNCAxMDA2NDQKICAJICAvKiBFbWl0IHdhcm5pbmcg dW5sZXNzIHdlIGhhdmUgYW4gYXJyYXkgb2YgdW5rbm93biBzaXplLgogIAkgICAgIEFuIGFycmF5 IG9mIHVua25vd24gc2l6ZSBoYXMgbG93ZXJib3VuZCAwIGFuZCB1cHBlcmJvdW5kIC0xLiAgKi8K ICAJICBpZiAodXBwZXJib3VuZCA+IC0xKQotQEAgLTE3OCwzMyArMTkxLDM3IEBAIHZhbHVlX3N1 YnNjcmlwdCAoc3RydWN0IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRleCkKK0BAIC0xODUsMzMg KzE5OSwzNyBAQCB2YWx1ZV9zdWJzY3JpcHQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPTkdFU1Qg aW5kZXgpCiAgICAgIGVycm9yIChfKCJub3QgYW4gYXJyYXkgb3Igc3RyaW5nIikpOwogIH0KICAK QEAgLTI1Nzc3LDggKzI4NDA0LDk3IEBAIGluZGV4IGVkNzZiMDkuLjhiZjM2MzQgMTAwNjQ0CiAg ICByZXR1cm4gdjsKICB9CiAgCitAQCAtMzE4LDYgKzMzNiw2OCBAQCB1bm9wX3VzZXJfZGVmaW5l ZF9wIChlbnVtIGV4cF9vcGNvZGUgb3AsIHN0cnVjdCB2YWx1ZSAqYXJnMSkKKyAgICAgfQorIH0K KyAKKysvKiBUcnkgdG8gZmluZCBPUEVSQVRPUiBhcyB0aHJvdWdoIGFyZ3VtZW50IGRlcGVuZGVu dCBsb29rdXAuICAqLworKworK3N0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorK3ZhbHVlX3VzZXJfZGVm aW5lZF9hZGxfb3AgKHN0cnVjdCB2YWx1ZSAqKmFyZ3MsIGludCBuYXJncywgY2hhciAqb3BlcmF0 b3IpCisreworKworKyAgc3RydWN0IHN5bWJvbCAqc3ltcDsKKysgIHN0cnVjdCB0eXBlICoqYXJn X3R5cGVzOworKyAgaW50IGk7CisrCisrICAvKiBUaGlzIGZ1bmN0aW9uLCBpZiBmb3VuZCwgd2ls bCBub3QgYmUgYSBtZW1iZXIgZnVuY3Rpb24KKysgICAgIGFuZCBkb2VzIG5vdCBleHBlY3QgYSBw b2ludGVyIGFzIGl0cyBmaXJzdCBhcmd1bWVudAorKyAgICAgcmF0aGVyIHRoZSBleHBsaWNpdCBz dHJ1Y3R1cmUuICAqLworKyAgYXJnc1swXSA9IHZhbHVlX2luZCAoYXJnc1swXSk7CisrCisrICBh cmdfdHlwZXMgPSAoc3RydWN0IHR5cGUgKiopYWxsb2NhIChuYXJncyAqIChzaXplb2YgKHN0cnVj dCB0eXBlICopKSk7CisrICAvKiBQcmVwYXJlIGxpc3Qgb2YgYXJndW1lbnQgdHlwZXMgZm9yIG92 ZXJsb2FkIHJlc29sdXRpb24gKi8KKysgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQorKyAg ICBhcmdfdHlwZXMgW2ldID0gdmFsdWVfdHlwZSAoYXJncyBbaV0pOworKworKyAgZmluZF9vdmVy bG9hZF9tYXRjaCAoYXJnX3R5cGVzLCBuYXJncywgb3BlcmF0b3IsIDAgLyogbm90IG1ldGhvZCAq LywKKysgICAgICAgICAgICAgICAgICAgICAgIDAgLyogc3RyaWN0IG1hdGNoICovLCBOVUxMLAor KyAgICAgICAgICAgICAgICAgICAgICAgTlVMTCAvKiBwYXNzIE5VTEwgc3ltYm9sIHNpbmNlIHN5 bWJvbCBpcyB1bmtub3duICovLAorKyAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJnN5bXAs IE5VTEwpOworKworKyAgaWYgKHN5bXApCisrICAgIHJldHVybiB2YWx1ZV9vZl92YXJpYWJsZSAo c3ltcCwgMCk7CisrCisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrLyogTG9va3VwIHVzZXIgZGVm aW5lZCBvcGVyYXRvciBOQU1FLiBGaXJzdCB0cnkgdG8gZmluZCBpdCBhcyBhIG1lbWJlcgorKyAg IG9mIHRoZSBzdHJ1Y3QgQVJHUFswXS4gSWYgbm90IGZvdW5kIHRyeSB0byBmaW5kIHRoZSBvcGVy YXRvciB0aHJvdWdoCisrICAgYXJndW1lbnQgZGVwZW5kZW50IGxvb2t1cC4gICovCisrCisrc3Rh dGljIHN0cnVjdCB2YWx1ZSAqCisrdmFsdWVfdXNlcl9kZWZpbmVkX29wIChzdHJ1Y3QgdmFsdWUg KiphcmdwLCBzdHJ1Y3QgdmFsdWUgKiphcmdzLCBjaGFyICpuYW1lLAorKyAgICAgICAgICAgICAg ICAgICAgICAgaW50ICpzdGF0aWNfbWVtZnVuY3AsIGludCBuYXJncykKKyt7CisrICBzdHJ1Y3Qg dmFsdWUgKnJlc3VsdCA9IE5VTEw7CisrICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBl eGNlcHQ7CisrCisrICBUUllfQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfRVJST1IpCisrICAg IHsKKysgICAgICByZXN1bHQgPSB2YWx1ZV9zdHJ1Y3RfZWx0IChhcmdwLCBhcmdzLCBuYW1lLCBz dGF0aWNfbWVtZnVuY3AsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cnVj dHVyZSIpOworKyAgICB9CisrCisrICBpZiAoZXhjZXB0LnJlYXNvbiA8IDApCisrICAgIHsKKysK KysgICAgICBpZiAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfY3Bs dXMpCisrICAgICAgICAvKiBUcnkgQURMLiAgKi8KKysgICAgICAgIHJlc3VsdCA9IHZhbHVlX3Vz ZXJfZGVmaW5lZF9hZGxfb3AgKGFyZ3MsIG5hcmdzLCBuYW1lKTsKKysKKysgICAgICBpZiAoIXJl c3VsdCkKKysgICAgICAgIGVycm9yICgiJXMiLCBleGNlcHQubWVzc2FnZSk7CisrICAgIH0KKysK KysgIHJldHVybiByZXN1bHQ7CisrfQorKworIC8qIFdlIGtub3cgZWl0aGVyIGFyZzEgb3IgYXJn MiBpcyBhIHN0cnVjdHVyZSwgc28gdHJ5IHRvIGZpbmQgdGhlIHJpZ2h0CisgICAgdXNlciBkZWZp bmVkIGZ1bmN0aW9uLiAgQ3JlYXRlIGFuIGFyZ3VtZW50IHZlY3RvciB0aGF0IGNhbGxzIAorICAg IGFyZzEub3BlcmF0b3IgQCAoYXJnMSxhcmcyKSBhbmQgcmV0dXJuIHRoYXQgdmFsdWUgKHdoZXJl ICdAJyBpcyBhbnkKK0BAIC00NTgsNyArNTM4LDggQEAgdmFsdWVfeF9iaW5vcCAoc3RydWN0IHZh bHVlICphcmcxLCBzdHJ1Y3QgdmFsdWUgKmFyZzIsIGVudW0gZXhwX29wY29kZSBvcCwKKyAgICAg ICBlcnJvciAoXygiSW52YWxpZCBiaW5hcnkgb3BlcmF0aW9uIHNwZWNpZmllZC4iKSk7CisgICAg IH0KKyAKKy0gIGFyZ3ZlY1swXSA9IHZhbHVlX3N0cnVjdF9lbHQgKCZhcmcxLCBhcmd2ZWMgKyAx LCB0c3RyLCAmc3RhdGljX21lbWZ1bmNwLCAic3RydWN0dXJlIik7CisrICBhcmd2ZWNbMF0gPSB2 YWx1ZV91c2VyX2RlZmluZWRfb3AgKCZhcmcxLCBhcmd2ZWMgKyAxLCB0c3RyLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RhdGljX21lbWZ1bmNwLCAyKTsKKyAKKyAg IGlmIChhcmd2ZWNbMF0pCisgICAgIHsKK0BAIC01NTUsNyArNjM2LDggQEAgdmFsdWVfeF91bm9w IChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGVudW0gZXhwX29wY29kZSBvcCwgZW51bSBub3NpZGUgbm9z aWRlKQorICAgICAgIGVycm9yIChfKCJJbnZhbGlkIHVuYXJ5IG9wZXJhdGlvbiBzcGVjaWZpZWQu IikpOworICAgICB9CisgCistICBhcmd2ZWNbMF0gPSB2YWx1ZV9zdHJ1Y3RfZWx0ICgmYXJnMSwg YXJndmVjICsgMSwgdHN0ciwgJnN0YXRpY19tZW1mdW5jcCwgInN0cnVjdHVyZSIpOworKyAgYXJn dmVjWzBdID0gdmFsdWVfdXNlcl9kZWZpbmVkX29wICgmYXJnMSwgYXJndmVjICsgMSwgdHN0ciwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0YXRpY19tZW1mdW5jcCwg MSk7CisgCisgICBpZiAoYXJndmVjWzBdKQorICAgICB7CiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9w cy5jIGIvZ2RiL3ZhbG9wcy5jCi1pbmRleCBjZWUxMGZiLi5iMDhjYjIxIDEwMDY0NAoraW5kZXgg Yjk0YzQxMS4uOTg3NWY5NiAxMDA2NDQKIC0tLSBhL2dkYi92YWxvcHMuYwogKysrIGIvZ2RiL3Zh bG9wcy5jCiBAQCAtMzgsNiArMzgsNyBAQApAQCAtMjU5MzQsNyArMjg2NTAsMTYgQEAgaW5kZXgg Y2VlMTBmYi4uYjA4Y2IyMSAxMDA2NDQKICB9CiAgCiAgLyogR2l2ZW4gYSB2YWx1ZSB3aGljaCBp cyBhIGZ1bmN0aW9uLCByZXR1cm4gYSB2YWx1ZSB3aGljaCBpcyBhIHBvaW50ZXIKLUBAIC0yMzUy LDEyICsyNDMxLDI1IEBAIGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB0eXBlICoqYXJnX3R5 cGVzLCBpbnQgbmFyZ3MsCitAQCAtMjMzNiw3ICsyNDE1LDcgQEAgZmluZF9vdmVybG9hZF9tYXRj aCAoc3RydWN0IHR5cGUgKiphcmdfdHlwZXMsIGludCBuYXJncywKKyAgIGludCBib2Zmc2V0Owor ICAgaW50IGl4OworICAgaW50IHN0YXRpY19vZmZzZXQ7CistICBzdHJ1Y3QgY2xlYW51cCAqb2xk X2NsZWFudXBzID0gTlVMTDsKKysgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2xlYW51cHMgPSBtYWtl X2NsZWFudXAgKG51bGxfY2xlYW51cCwgTlVMTCk7CisgCisgICBjb25zdCBjaGFyICpvYmpfdHlw ZV9uYW1lID0gTlVMTDsKKyAgIGNoYXIgKmZ1bmNfbmFtZSA9IE5VTEw7CitAQCAtMjM0NiwxMiAr MjQyNSwyNSBAQCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdHlwZSAqKmFyZ190eXBlcywg aW50IG5hcmdzLAogICAgaWYgKG1ldGhvZCkKICAgICAgewogICAgICAgIGdkYl9hc3NlcnQgKG9i aik7CkBAIC0yNTk2NSw0NSArMjg2OTAsMTA4IEBAIGluZGV4IGNlZTEwZmIuLmIwOGNiMjEgMTAw NjQ0CiAgCiAgICAgICAgZm5zX3B0ciA9IHZhbHVlX2ZpbmRfb2xvYWRfbWV0aG9kX2xpc3QgKCZ0 ZW1wLCBuYW1lLCAKICAJCQkJCSAgICAgIDAsICZudW1fZm5zLCAKLUBAIC0yMzc3LDE2ICsyNDY5 LDI5IEBAIGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzLCBpbnQg bmFyZ3MsCitAQCAtMjM3MSwyMyArMjQ2Myw0NSBAQCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1 Y3QgdHlwZSAqKmFyZ190eXBlcywgaW50IG5hcmdzLAogICAgICB9CiAgICBlbHNlCiAgICAgIHsK IC0gICAgICBjb25zdCBjaGFyICpxdWFsaWZpZWRfbmFtZSA9IFNZTUJPTF9DUExVU19ERU1BTkdM RURfTkFNRSAoZnN5bSk7Ci0rICAgICAgY29uc3QgY2hhciAqcXVhbGlmaWVkX25hbWUgPSBTWU1C T0xfTkFUVVJBTF9OQU1FIChmc3ltKTsKKysgICAgICBjb25zdCBjaGFyICpxdWFsaWZpZWRfbmFt ZSA9IE5VTEw7CiAgCiAtICAgICAgLyogSWYgd2UgaGF2ZSBhIEMrKyBuYW1lLCB0cnkgdG8gZXh0 cmFjdCBqdXN0IHRoZSBmdW5jdGlvbgogLQkgcGFydC4gICovCiAtICAgICAgaWYgKHF1YWxpZmll ZF9uYW1lKQogLQlmdW5jX25hbWUgPSBjcF9mdW5jX25hbWUgKHF1YWxpZmllZF9uYW1lKTsKLSsg ICAgICAvKiBJZiB3ZSBoYXZlIGEgZnVuY3Rpb24gd2l0aCBhIEMrKyBuYW1lLCB0cnkgdG8gZXh0 cmFjdCBqdXN0Ci0rCSB0aGUgZnVuY3Rpb24gcGFydC4gIERvIG5vdCB0cnkgdGhpcyBmb3Igbm9u LWZ1bmN0aW9ucyAoZS5nLgotKwkgZnVuY3Rpb24gcG9pbnRlcnMpLiAgKi8KLSsgICAgICBpZiAo cXVhbGlmaWVkX25hbWUKLSsJICAmJiBUWVBFX0NPREUgKGNoZWNrX3R5cGVkZWYgKFNZTUJPTF9U WVBFIChmc3ltKSkpID09IFRZUEVfQ09ERV9GVU5DKQotKwl7Ci0rCSAgZnVuY19uYW1lID0gY3Bf ZnVuY19uYW1lIChxdWFsaWZpZWRfbmFtZSk7Ci0rCi0rCSAgLyogSWYgY3BfZnVuY19uYW1lIGRp ZCBub3QgcmVtb3ZlIGFueXRoaW5nLCB0aGUgbmFtZSBvZiB0aGUKLSsJICAgICBzeW1ib2wgZGlk IG5vdCBpbmNsdWRlIHNjb3BlIG9yIGFyZ3VtZW50IHR5cGVzIC0gaXQgd2FzCi0rCSAgICAgcHJv YmFibHkgYSBDLXN0eWxlIGZ1bmN0aW9uLiAgKi8KLSsJICBpZiAoZnVuY19uYW1lICYmIHN0cmNt cCAoZnVuY19uYW1lLCBxdWFsaWZpZWRfbmFtZSkgPT0gMCkKLSsJICAgIHsKLSsJICAgICAgeGZy ZWUgKGZ1bmNfbmFtZSk7Ci0rCSAgICAgIGZ1bmNfbmFtZSA9IE5VTEw7Ci0rCSAgICB9Ci0rCX0K LSAKKy0KIC0gICAgICAvKiBJZiB0aGVyZSB3YXMgbm8gQysrIG5hbWUsIHRoaXMgbXVzdCBiZSBh IEMtc3R5bGUgZnVuY3Rpb24uCiAtCSBKdXN0IHJldHVybiB0aGUgc2FtZSBzeW1ib2wuICBEbyB0 aGUgc2FtZSBpZiBjcF9mdW5jX25hbWUKIC0JIGZhaWxzIGZvciBzb21lIHJlYXNvbi4gICovCisr ICAgICAgaWYgKGZzeW0pCisrICAgICAgICB7CisrICAgICAgICAgIHF1YWxpZmllZF9uYW1lID0g U1lNQk9MX05BVFVSQUxfTkFNRSAoZnN5bSk7CisrCisrICAgICAgICAgIC8qIElmIHdlIGhhdmUg YSBmdW5jdGlvbiB3aXRoIGEgQysrIG5hbWUsIHRyeSB0byBleHRyYWN0IGp1c3QKKysJICAgICB0 aGUgZnVuY3Rpb24gcGFydC4gIERvIG5vdCB0cnkgdGhpcyBmb3Igbm9uLWZ1bmN0aW9ucyAoZS5n LgorKwkgICAgIGZ1bmN0aW9uIHBvaW50ZXJzKS4gICovCisrICAgICAgICAgIGlmIChxdWFsaWZp ZWRfbmFtZQorKyAgICAgICAgICAgICAgJiYgVFlQRV9DT0RFIChjaGVja190eXBlZGVmIChTWU1C T0xfVFlQRSAoZnN5bSkpKSA9PSBUWVBFX0NPREVfRlVOQykKKysgICAgICAgICAgICB7CisrICAg ICAgICAgICAgICBmdW5jX25hbWUgPSBjcF9mdW5jX25hbWUgKHF1YWxpZmllZF9uYW1lKTsKKysK KysgICAgICAgICAgICAgIC8qIElmIGNwX2Z1bmNfbmFtZSBkaWQgbm90IHJlbW92ZSBhbnl0aGlu ZywgdGhlIG5hbWUgb2YgdGhlCisrCSAgICAgICAgIHN5bWJvbCBkaWQgbm90IGluY2x1ZGUgc2Nv cGUgb3IgYXJndW1lbnQgdHlwZXMgLSBpdCB3YXMKKysJICAgICAgICAgcHJvYmFibHkgYSBDLXN0 eWxlIGZ1bmN0aW9uLiAgKi8KKysgICAgICAgICAgICAgIGlmIChmdW5jX25hbWUgJiYgc3RyY21w IChmdW5jX25hbWUsIHF1YWxpZmllZF9uYW1lKSA9PSAwKQorKyAgICAgICAgICAgICAgICB7Cisr ICAgICAgICAgICAgICAgICAgeGZyZWUgKGZ1bmNfbmFtZSk7CisrICAgICAgICAgICAgICAgICAg ZnVuY19uYW1lID0gTlVMTDsKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIH0KKysg ICAgICAgIH0KKysgICAgICBlbHNlCisrICAgICAgICB7CisrICAgICAgICAgIGZ1bmNfbmFtZSA9 IChjaGFyICopIG5hbWU7CisrICAgICAgICAgIHF1YWxpZmllZF9uYW1lID0gbmFtZTsKKysgICAg ICAgIH0KKysgICAgICAKICsgICAgICAvKiBJZiB0aGVyZSB3YXMgbm8gQysrIG5hbWUsIHRoaXMg bXVzdCBiZSBhIEMtc3R5bGUgZnVuY3Rpb24gb3IKICsJIG5vdCBhIGZ1bmN0aW9uIGF0IGFsbC4g IEp1c3QgcmV0dXJuIHRoZSBzYW1lIHN5bWJvbC4gIERvIHRoZQogKwkgc2FtZSBpZiBjcF9mdW5j X25hbWUgZmFpbHMgZm9yIHNvbWUgcmVhc29uLiAgKi8KICAgICAgICBpZiAoZnVuY19uYW1lID09 IE5VTEwpCiAgICAgICAgICB7CiAgCSAgKnN5bXAgPSBmc3ltOwotQEAgLTMxMjMsOSArMzIyOCw5 IEBAIHZhbHVlX21heWJlX25hbWVzcGFjZV9lbHQgKGNvbnN0IHN0cnVjdCB0eXBlICpjdXJ0eXBl LAorICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgIH0KKyAKKy0gICAgICBvbGRfY2xlYW51 cHMgPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBmdW5jX25hbWUpOworICAgICAgIG1ha2VfY2xlYW51 cCAoeGZyZWUsIG9sb2FkX3N5bXMpOworICAgICAgIG1ha2VfY2xlYW51cCAoeGZyZWUsIG9sb2Fk X2NoYW1wX2J2KTsKKyAKK0BAIC0yMzk4LDggKzI1MTIsMTEgQEAgZmluZF9vdmVybG9hZF9tYXRj aCAoc3RydWN0IHR5cGUgKiphcmdfdHlwZXMsIGludCBuYXJncywKKyAJCQkJCQkmb2xvYWRfY2hh bXBfYnYpOworICAgICB9CisgCistICAvKiBDaGVjayBob3cgYmFkIHRoZSBiZXN0IG1hdGNoIGlz LiAgKi8KKysgIC8qIERpZCB3ZSBmaW5kIGEgbWF0Y2ggPyAgKi8KKysgIGlmIChvbG9hZF9jaGFt cCA9PSAtMSkKKysgICAgZXJyb3IgKCJObyBzeW1ib2wgXCIlc1wiIGluIGN1cnJlbnQgY29udGV4 dC4iLCBuYW1lKTsKKyAKKysgIC8qIENoZWNrIGhvdyBiYWQgdGhlIGJlc3QgbWF0Y2ggaXMuICAq LworICAgbWF0Y2hfcXVhbGl0eSA9CisgICAgIGNsYXNzaWZ5X29sb2FkX21hdGNoIChvbG9hZF9j aGFtcF9idiwgbmFyZ3MsCisgCQkJICBvbG9hZF9tZXRob2Rfc3RhdGljIChtZXRob2QsIGZuc19w dHIsCitAQCAtMjQ1Niw4ICsyNTczLDggQEAgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHR5 cGUgKiphcmdfdHlwZXMsIGludCBuYXJncywKKyAJfQorICAgICAgICpvYmpwID0gdGVtcDsKKyAg ICAgfQorLSAgaWYgKG9sZF9jbGVhbnVwcyAhPSBOVUxMKQorLSAgICBkb19jbGVhbnVwcyAob2xk X2NsZWFudXBzKTsKKysKKysgIGRvX2NsZWFudXBzIChvbGRfY2xlYW51cHMpOworIAorICAgc3dp dGNoIChtYXRjaF9xdWFsaXR5KQorICAgICB7CitAQCAtMjU2NSw2ICsyNjgyLDEyIEBAIGZpbmRf b2xvYWRfY2hhbXBfbmFtZXNwYWNlX2xvb3AgKHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzLCBpbnQg bmFyZ3MsCisgICBuZXdfbmFtZXNwYWNlW25hbWVzcGFjZV9sZW5dID0gJ1wwJzsKKyAgIG5ld19v bG9hZF9zeW1zID0gbWFrZV9zeW1ib2xfb3ZlcmxvYWRfbGlzdCAoZnVuY19uYW1lLAorIAkJCQkJ ICAgICAgbmV3X25hbWVzcGFjZSk7CisrCisrICAvKiBJZiB3ZSBoYXZlIHJlYWNoZWQgdGhlIGRl ZXBlc3N0IGxldmVsIHBlcmZvcm0gYXJndW1lbnQKKysgICAgIGRldGVybWluZWQgbG9va3VwLiAg Ki8KKysgIGlmICghc2VhcmNoZWRfZGVlcGVyKQorKyAgICBtYWtlX3N5bWJvbF9vdmVybG9hZF9s aXN0X2FkbCAoYXJnX3R5cGVzLCBuYXJncywgZnVuY19uYW1lKTsKKysKKyAgIHdoaWxlIChuZXdf b2xvYWRfc3ltc1tudW1fZm5zXSkKKyAgICAgKytudW1fZm5zOworIAorQEAgLTI1OTcsNyArMjcy MCw2IEBAIGZpbmRfb2xvYWRfY2hhbXBfbmFtZXNwYWNlX2xvb3AgKHN0cnVjdCB0eXBlICoqYXJn X3R5cGVzLCBpbnQgbmFyZ3MsCisgICAgIH0KKyAgIGVsc2UKKyAgICAgeworLSAgICAgIGdkYl9h c3NlcnQgKG5ld19vbG9hZF9jaGFtcCAhPSAtMSk7CisgICAgICAgKm9sb2FkX3N5bXMgPSBuZXdf b2xvYWRfc3ltczsKKyAgICAgICAqb2xvYWRfY2hhbXAgPSBuZXdfb2xvYWRfY2hhbXA7CisgICAg ICAgKm9sb2FkX2NoYW1wX2J2ID0gbmV3X29sb2FkX2NoYW1wX2J2OworQEAgLTMxMTcsOSArMzIz OSw5IEBAIHZhbHVlX21heWJlX25hbWVzcGFjZV9lbHQgKGNvbnN0IHN0cnVjdCB0eXBlICpjdXJ0 eXBlLAogICAgc3RydWN0IHN5bWJvbCAqc3ltOwogICAgc3RydWN0IHZhbHVlICpyZXN1bHQ7CiAg CkBAIC0yNjAxNiw3ICsyODgwNCw3IEBAIGluZGV4IGNlZTEwZmIuLmIwOGNiMjEgMTAwNjQ0CiAg CiAgICBpZiAoc3ltID09IE5VTEwpCiAgICAgIHJldHVybiBOVUxMOwotQEAgLTMyNjcsNyArMzM3 Miw3IEBAIHZhbHVlX29mX2xvY2FsIChjb25zdCBjaGFyICpuYW1lLCBpbnQgY29tcGxhaW4pCitA QCAtMzI2MSw3ICszMzgzLDcgQEAgdmFsdWVfb2ZfbG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsIGlu dCBjb21wbGFpbikKICAKICAgIC8qIENhbGxpbmcgbG9va3VwX2Jsb2NrX3N5bWJvbCBpcyBuZWNl c3NhcnkgdG8gZ2V0IHRoZSBMT0NfUkVHSVNURVIKICAgICAgIHN5bWJvbCBpbnN0ZWFkIG9mIHRo ZSBMT0NfQVJHIG9uZSAoaWYgYm90aCBleGlzdCkuICAqLwpAQCAtMjYwMjUsNyArMjg4MTMsNyBA QCBpbmRleCBjZWUxMGZiLi5iMDhjYjIxIDEwMDY0NAogICAgaWYgKHN5bSA9PSBOVUxMKQogICAg ICB7CiAgICAgICAgaWYgKGNvbXBsYWluKQotQEAgLTMzMjEsOCArMzQyNiw2IEBAIHZhbHVlX3Ns aWNlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgpCitAQCAt MzMxNSw4ICszNDM3LDYgQEAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBs b3dib3VuZCwgaW50IGxlbmd0aCkKICAgICAgICB8fCBsb3dib3VuZCArIGxlbmd0aCAtIDEgPiB1 cHBlcmJvdW5kKQogICAgICBlcnJvciAoXygic2xpY2Ugb3V0IG9mIHJhbmdlIikpOwogIApAQCAt MjYzMTgsNyArMjkxMDYsNyBAQCBpbmRleCBhNDYyZWU0Li45NjhjZGY0IDEwMDY0NAogKyAgb2Jz ZXJ2ZXJfYXR0YWNoX21hcmtfdXNlZCAodmFsdWVfdHlwZXNfbWFya191c2VkKTsKICB9CiBkaWZm IC0tZ2l0IGEvZ2RiL3ZhbHVlLmggYi9nZGIvdmFsdWUuaAotaW5kZXggNDJiNDQ5Ny4uNmY5OTIz YyAxMDA2NDQKK2luZGV4IDFmMjA4NmUuLmRkNTAzYWQgMTAwNjQ0CiAtLS0gYS9nZGIvdmFsdWUu aAogKysrIGIvZ2RiL3ZhbHVlLmgKIEBAIC0zNDIsMTEgKzM0MiwxNiBAQCBleHRlcm4gTE9OR0VT VCB1bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0yNjMzOCw3ICsy OTEyNiw3IEBAIGluZGV4IDQyYjQ0OTcuLjZmOTkyM2MgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCB2 YWx1ZSAqdmFsdWVfYXQgKHN0cnVjdCB0eXBlICp0eXBlLCBDT1JFX0FERFIgYWRkcik7CiAgZXh0 ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfYXRfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVf QUREUiBhZGRyKTsKICAKLUBAIC02ODksNyArNjk0LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAq dmFsdWVfYWxsb2NhdGVfc3BhY2VfaW5faW5mZXJpb3IgKGludCk7CitAQCAtNjk0LDcgKzY5OSw3 IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2FsbG9jYXRlX3NwYWNlX2luX2luZmVyaW9y IChpbnQpOwogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX29mX2xvY2FsIChjb25zdCBjaGFy ICpuYW1lLCBpbnQgY29tcGxhaW4pOwogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N1 YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICphcnJheSwKQEAgLTI2MzQ4LDcgKzI5MTM2 LDcgQEAgaW5kZXggNDJiNDQ5Ny4uNmY5OTIzYyAxMDA2NDQKICAvKiBVc2VyIGZ1bmN0aW9uIGhh bmRsZXIuICAqLwogIAogZGlmZiAtLWdpdCBhL2dkYi92YXJvYmouYyBiL2dkYi92YXJvYmouYwot aW5kZXggNmVjODdiMy4uYjI3NGFkZSAxMDA2NDQKK2luZGV4IGI0YjI0NjEuLjNhN2E4ODQgMTAw NjQ0CiAtLS0gYS9nZGIvdmFyb2JqLmMKICsrKyBiL2dkYi92YXJvYmouYwogQEAgLTI2LDYgKzI2 LDggQEAKQEAgLTI2MzYwLDE3ICsyOTE0OCw4IEBAIGluZGV4IDZlYzg3YjMuLmIyNzRhZGUgMTAw NjQ0CiAgCiAgI2luY2x1ZGUgImdkYl9hc3NlcnQuaCIKICAjaW5jbHVkZSAiZ2RiX3N0cmluZy5o IgotQEAgLTM0OTUsNyArMzQ5Nyw3IEBAIGFsbF9yb290X3Zhcm9ianMgKHZvaWQgKCpmdW5jKSAo c3RydWN0IHZhcm9iaiAqdmFyLCB2b2lkICpkYXRhKSwgdm9pZCAqZGF0YSkKLSAgICAgICAoKmZ1 bmMpICh2YXJfcm9vdC0+cm9vdHZhciwgZGF0YSk7Ci0gICAgIH0KLSB9Ci0tDAotKwotIGV4dGVy biB2b2lkIF9pbml0aWFsaXplX3Zhcm9iaiAodm9pZCk7Ci0gdm9pZAotIF9pbml0aWFsaXplX3Zh cm9iaiAodm9pZCkKIGRpZmYgLS1naXQgYS9nZGIveGNvZmZyZWFkLmMgYi9nZGIveGNvZmZyZWFk LmMKLWluZGV4IDI1Y2MyZDkuLjY3ODQ2NTQgMTAwNjQ0CitpbmRleCBhY2Q3YjUwLi4wOTI5YTMz IDEwMDY0NAogLS0tIGEvZ2RiL3hjb2ZmcmVhZC5jCiArKysgYi9nZGIveGNvZmZyZWFkLmMKIEBA IC0zMDMwLDYgKzMwMzAsNyBAQCBzdGF0aWMgc3RydWN0IHN5bV9mbnMgeGNvZmZfc3ltX2ZucyA9 CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTM5NTkwLWdudS1pZnVuYy1maXgtY29uZC5wYXRjaCBiL2dk Yi1iejUzOTU5MC1nbnUtaWZ1bmMtZml4LWNvbmQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uOThiZjVjMAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejUzOTU5MC1n bnUtaWZ1bmMtZml4LWNvbmQucGF0Y2gKQEAgLTAsMCArMSwxNCBAQAorLS0tIC4vZ2RiL2JyZWFr cG9pbnQuYwkyMDEwLTA0LTI2IDAyOjM1OjUzLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2Jy ZWFrcG9pbnQuYwkyMDEwLTA0LTI2IDAyOjMzOjI2LjAwMDAwMDAwMCArMDIwMAorQEAgLTg0OTks NiArODQ5OSwxMSBAQCB1cGRhdGVfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHN0cnVjdCBicmVhCisg CXsKKyAJICBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBlOworIAorKwkgIC8qIFRlbXBvcmFyeSB3b3Jr YXJvdW5kIGJlZm9yZSB0aGUgbm9uLWludHJ1c2l2ZSBpZnVuYyBwYXRjaCBnZXRzIGluLgorKwkg ICAgIGV4cCBwYXJzaW5nIGNhbiBub3cgY2FsbCBpbmZlcmlvciBmdW5jdGlvbiBpbnZhbGlkYXRp bmcKKysJICAgICBFWElTVElOR19MT0NBVElPTlMuICAqLworKwkgIGV4aXN0aW5nX2xvY2F0aW9u cyA9IE5VTEw7CisrCisgCSAgcyA9IGItPmNvbmRfc3RyaW5nOworIAkgIFRSWV9DQVRDSCAoZSwg UkVUVVJOX01BU0tfRVJST1IpCisgCSAgICB7CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTYyNzYzLXBy ZXR0eS1wcmludC0yZC12ZWN0b3JzLWxpYnN0ZGN4eC5wYXRjaCBiL2dkYi1iejU2Mjc2My1wcmV0 dHktcHJpbnQtMmQtdmVjdG9ycy1saWJzdGRjeHgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uODcyOWE2MgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejU2Mjc2My1w cmV0dHktcHJpbnQtMmQtdmVjdG9ycy1saWJzdGRjeHgucGF0Y2gKQEAgLTAsMCArMSw0MyBAQAor MjAxMC0wNi0wMSAgQ2hyaXMgTW9sbGVyICA8Y21vbGxlckByZWRoYXQuY29tPgorCisJKiBweXRo b24vbGlic3RkY3h4L3Y2L3ByaW50ZXJzLnB5IChTdGRWZWN0b3JQcmludGVyKTogQWRkCisJZGV0 ZWN0aW9uIGZvciBtYXRyaWNlcyBhcyBuZXN0ZWQgdmVjdG9ycy4KKworSW5kZXg6IGxpYnN0ZGMr Ky12My9weXRob24vbGlic3RkY3h4L3Y2L3ByaW50ZXJzLnB5Cis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gLi9s aWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgvbGlic3RkY3h4L3Y2L3ByaW50ZXJzLnB5CShyZXZp c2lvbiAxNTk5MzcpCisrKysgLi9saWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgvbGlic3RkY3h4 L3Y2L3ByaW50ZXJzLnB5CSh3b3JraW5nIGNvcHkpCitAQCAtMTksNiArMTksOSBAQAorIGltcG9y dCBpdGVydG9vbHMKKyBpbXBvcnQgcmUKKyAKKyt2ZWN0b3Jfc2lnID0gJ3N0ZDo6dmVjdG9yJwor K3ZlY3Rvcl9yZWdleCA9IHJlLmNvbXBpbGUoJ14nICsgdmVjdG9yX3NpZyArICc8Lio+JCcpCisr CisgY2xhc3MgU3RkUG9pbnRlclByaW50ZXI6CisgICAgICJQcmludCBhIHNtYXJ0IHBvaW50ZXIg b2Ygc29tZSBraW5kIgorIAorQEAgLTE4Niw3ICsxODksMTMgQEAKKyAgICAgICAgICAgICAgICAg JSAoc2VsZi50eXBlbmFtZSwgaW50IChmaW5pc2ggLSBzdGFydCksIGludCAoZW5kIC0gc3RhcnQp KSkKKyAKKyAgICAgZGVmIGRpc3BsYXlfaGludChzZWxmKToKKy0gICAgICAgIHJldHVybiAnYXJy YXknCisrICAgICAgICBpdHlwZTAgID0gc2VsZi52YWwudHlwZS50ZW1wbGF0ZV9hcmd1bWVudCgw KQorKyAgICAgICAgaXRhZyA9IGl0eXBlMC50YWcKKysgICAgICAgIGlmIGl0YWcgYW5kIHJlLm1h dGNoKHZlY3Rvcl9yZWdleCwgaXRhZyk6CisrICAgICAgICAgICAgcmMgPSAnbWF0cml4JworKyAg ICAgICAgZWxzZToKKysgICAgICAgICAgICByYyA9ICdhcnJheScKKysgICAgICAgIHJldHVybiBy YyAKKyAKKyBjbGFzcyBTdGRWZWN0b3JJdGVyYXRvclByaW50ZXI6CisgICAgICJQcmludCBzdGQ6 OnZlY3Rvcjo6aXRlcmF0b3IiCitAQCAtNjkyLDcgKzcwMSw3IEBACisgICAgIHByZXR0eV9wcmlu dGVyc19kaWN0W3JlLmNvbXBpbGUoJ15zdGQ6OnNldDwuKj4kJyldID0gbGFtYmRhIHZhbDogU3Rk U2V0UHJpbnRlcigic3RkOjpzZXQiLCB2YWwpCisgICAgIHByZXR0eV9wcmludGVyc19kaWN0W3Jl LmNvbXBpbGUoJ15zdGQ6OnN0YWNrPC4qPiQnKV0gPSBsYW1iZGEgdmFsOiBTdGRTdGFja09yUXVl dWVQcmludGVyKCJzdGQ6OnN0YWNrIiwgdmFsKQorICAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFty ZS5jb21waWxlKCdec3RkOjp1bmlxdWVfcHRyPC4qPiQnKV0gPSBVbmlxdWVQb2ludGVyUHJpbnRl cgorLSAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxlKCdec3RkOjp2ZWN0b3I8Lio+ JCcpXSA9IGxhbWJkYSB2YWw6IFN0ZFZlY3RvclByaW50ZXIoInN0ZDo6dmVjdG9yIiwgdmFsKQor KyAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFt2ZWN0b3JfcmVnZXhdID0gbGFtYmRhIHZhbDogU3Rk VmVjdG9yUHJpbnRlcih2ZWN0b3Jfc2lnLCB2YWwpCisgICAgICMgdmVjdG9yPGJvb2w+CisgCisg ICAgICMgUHJpbnRlciByZWdpc3RyYXRpb25zIGZvciBjbGFzc2VzIGNvbXBpbGVkIHdpdGggLURf R0xJQkNYWF9ERUJVRy4KCmRpZmYgLS1naXQgYS9nZGItYno1NjI3NjMtcHJldHR5LXByaW50LTJk LXZlY3RvcnMtcHJlcmVxLnBhdGNoIGIvZ2RiLWJ6NTYyNzYzLXByZXR0eS1wcmludC0yZC12ZWN0 b3JzLXByZXJlcS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2Mx ZTE3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NTYyNzYzLXByZXR0eS1wcmludC0yZC12ZWN0 b3JzLXByZXJlcS5wYXRjaApAQCAtMCwwICsxLDQyNyBAQAorY29tbWl0IGU1ZWE4ZDAyNjAxNWMy YTBjNzc3NDc4OGI0MjU5MTQ4NTdkZTFmZmIKK0F1dGhvcjogcG11bGRvb24gPHBtdWxkb29uPgor RGF0ZTogICBXZWQgQXByIDE0IDEyOjAyOjQyIDIwMTAgKzAwMDAKKworICAgIDIwMTAtMDQtMTQg IFBoaWwgTXVsZG9vbiAgPHBtdWxkb29uQHJlZGhhdC5jb20+CisgICAgCisgICAgCVBSIHB5dGhv bi8xMTM4MQorICAgIAorICAgIAkqIHB5dGhvbi9weS1wcmV0dHlwcmludC5jIChwcmV0dHlfcHJp bnRfb25lX3ZhbHVlKTogVGVzdCBmb3IKKyAgICAJUHlfTm9uZS4KKyAgICAJKHByaW50X3N0cmlu Z19yZXByKTogVGVzdCBmb3IgUHlfTm9uZS4gIFNldCBmbGFncyBhY2NvcmRpbmdseS4KKyAgICAJ UmV0dXJuIHZhbHVlIGRlcGVuZGluZyBvbiByZXR1cm4gdHlwZS4KKyAgICAJKHByaW50X2NoaWxk cmVuKTogVGFrZSBhIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBkYXRhIHdhcyBwcmludGVkCisg ICAgCWJlZm9yZSB0aGlzIGZ1bmN0aW9uIHdhcyBjYWxsZWQuICBBbHRlciBvdXRwdXQgYWNjb3Jk aW5nbHkuCisgICAgCShhcHBseV92YWxfcHJldHR5X3ByaW50ZXIpOiBDYXB0dXJlIHJldHVybiB2 YWx1ZSBmcm9tCisgICAgCXByaW50X3N0cmluZ19yZXByIGFuZCBwYXNzIHRvIHByaW50X2NoaWxk cmVuLgorICAgIAorICAgIDIwMTAtMDQtMTQgIFBoaWwgTXVsZG9vbiAgPHBtdWxkb29uQHJlZGhh dC5jb20+CisgICAgCisgICAgCSogZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weSAoTm9TdHJp bmdDb250YWluZXJQcmludGVyKTogTmV3IHByaW50ZXIuCisgICAgCSogZ2RiLnB5dGhvbi9weS1w cmV0dHlwcmludC5jOiBBZGQganVzdGNoaWxkcmVuIHN0cnVjdCwgdHlwZWRlZnMuCisgICAgCSog Z2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHA6IE5ldyB0ZXN0IGZvciB0b19zdHJpbmcgcmV0 dXJuaW5nIE5vbmUuCisgICAgCSogZ2RiLnB5dGhvbi9weS1taS5leHA6IE5ldyB0ZXN0IGZvciB0 b19zdHJpbmcgcmV0dXJuaW5nIE5vbmUuCisgICAgCisgICAgMjAxMC0wNC0xNCAgUGhpbCBNdWxk b29uICA8cG11bGRvb25AcmVkaGF0LmNvbT4KKyAgICAKKyAgICAJKiBnZGIudGV4aW5mbyAoUHJl dHR5IFByaW50aW5nKTogRG9jdW1lbnQgYmVoYXZpb3VyIHdoZW4gdG9fc3RyaW5nCisgICAgCXJl dHVybnMgTm9uZS4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZwor IyMgLTEsMyArMSwxNiBAQAorKzIwMTAtMDQtMTQgIFBoaWwgTXVsZG9vbiAgPHBtdWxkb29uQHJl ZGhhdC5jb20+CisrCisrCVBSIHB5dGhvbi8xMTM4MQorKworKwkqIHB5dGhvbi9weS1wcmV0dHlw cmludC5jIChwcmV0dHlfcHJpbnRfb25lX3ZhbHVlKTogVGVzdCBmb3IKKysJUHlfTm9uZS4KKysJ KHByaW50X3N0cmluZ19yZXByKTogVGVzdCBmb3IgUHlfTm9uZS4gIFNldCBmbGFncyBhY2NvcmRp bmdseS4KKysJUmV0dXJuIHZhbHVlIGRlcGVuZGluZyBvbiByZXR1cm4gdHlwZS4KKysJKHByaW50 X2NoaWxkcmVuKTogVGFrZSBhIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBkYXRhIHdhcyBwcmlu dGVkCisrCWJlZm9yZSB0aGlzIGZ1bmN0aW9uIHdhcyBjYWxsZWQuICBBbHRlciBvdXRwdXQgYWNj b3JkaW5nbHkuCisrCShhcHBseV92YWxfcHJldHR5X3ByaW50ZXIpOiBDYXB0dXJlIHJldHVybiB2 YWx1ZSBmcm9tCisrCXByaW50X3N0cmluZ19yZXByIGFuZCBwYXNzIHRvIHByaW50X2NoaWxkcmVu LgorKworIDIwMTAtMDQtMTMgIE1hcmsgS2V0dGVuaXMgIDxrZXR0ZW5pc0BnbnUub3JnPgorIAor IAlQUiBjb3JlZmlsZXMvMTE0ODEKKyMjIyBhL2dkYi9kb2MvQ2hhbmdlTG9nCisjIyMgYi9nZGIv ZG9jL0NoYW5nZUxvZworIyMgLTEsMyArMSw4IEBACisrMjAxMC0wNC0xNCAgUGhpbCBNdWxkb29u ICA8cG11bGRvb25AcmVkaGF0LmNvbT4KKysKKysJKiBnZGIudGV4aW5mbyAoUHJldHR5IFByaW50 aW5nKTogRG9jdW1lbnQgYmVoYXZpb3VyIHdoZW4gdG9fc3RyaW5nCisrCXJldHVybnMgTm9uZS4K KysKKyAyMDEwLTA0LTA5ICBTdGFuIFNoZWJzICA8c3RhbkBjb2Rlc291cmNlcnkuY29tPgorIAor IAkqIGdkYi50ZXhpbmZvIChnZGIvbWkgVHJhY2Vwb2ludCBDb21tYW5kcykgPC10cmFjZS1zdGF0 dXM+OgorSW5kZXg6IGdkYi03LjEvZ2RiL2RvYy9nZGIudGV4aW5mbworPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjEub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDYtMzAgMDM6MjI6MDcuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDYtMzAg MDM6MjI6MjAuMDAwMDAwMDAwICswMjAwCitAQCAtMjAzNDQsNiArMjAzNDQsOSBAQCB0aGUgcmVz dWx0aW5nIHZhbHVlLiAgQWdhaW4sIHRoaXMgbWF5IHJlCisgcHJldHR5LXByaW50ZXIuICBQeXRo b24gc2NhbGFycyAoaW50ZWdlcnMsIGZsb2F0cywgYW5kIGJvb2xlYW5zKSBhbmQKKyBzdHJpbmdz IGFyZSBjb252ZXJ0aWJsZSB0byBAY29kZXtnZGIuVmFsdWV9OyBvdGhlciB0eXBlcyBhcmUgbm90 LgorIAorK0ZpbmFsbHksIGlmIHRoaXMgbWV0aG9kIHJldHVybnMgQGNvZGV7Tm9uZX0gdGhlbiBu byBmdXJ0aGVyIG9wZXJhdGlvbnMKKythcmUgcGVmb3JtZWQgaW4gdGhpcyBtZXRob2QgYW5kIG5v dGhpbmcgaXMgcHJpbnRlZC4KKysKKyBJZiB0aGUgcmVzdWx0IGlzIG5vdCBvbmUgb2YgdGhlc2Ug dHlwZXMsIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQuCisgQGVuZCBkZWZvcAorIAorSW5kZXg6IGdk Yi03LjEvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu MS5vcmlnL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDEwLTA2LTMwIDAzOjIyOjAyLjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIw MTAtMDYtMzAgMDM6MjM6MzguMDAwMDAwMDAwICswMjAwCitAQCAtMTI1LDkgKzEyNSwxMiBAQCBm aW5kX3ByZXR0eV9wcmludGVyIChQeU9iamVjdCAqdmFsdWUpCisgCisgLyogUHJldHR5LXByaW50 IGEgc2luZ2xlIHZhbHVlLCB2aWEgdGhlIHByaW50ZXIgb2JqZWN0IFBSSU5URVIuCisgICAgSWYg dGhlIGZ1bmN0aW9uIHJldHVybnMgYSBzdHJpbmcsIGEgUHlPYmplY3QgY29udGFpbmluZyB0aGUg c3RyaW5nCistICAgaXMgcmV0dXJuZWQuICBPdGhlcndpc2UsIGlmIHRoZSBmdW5jdGlvbiByZXR1 cm5zIGEgdmFsdWUsCistICAgKk9VVF9WQUxVRSBpcyBzZXQgdG8gdGhlIHZhbHVlLCBhbmQgTlVM TCBpcyByZXR1cm5lZC4gIE9uIGVycm9yLAorLSAgICpPVVRfVkFMVUUgaXMgc2V0IHRvIE5VTEws IGFuZCBOVUxMIGlzIHJldHVybmVkLiAgKi8KKysgICBpcyByZXR1cm5lZC4gIElmIHRoZSBmdW5j dGlvbiByZXR1cm5zIFB5X05PTkUgdGhhdCBtZWFucyB0aGUgcHJldHR5CisrICAgcHJpbnRlciBy ZXR1cm5lZCB0aGUgUHl0aG9uIE5vbmUgYXMgYSB2YWx1ZS4gIE90aGVyd2lzZSwgaWYgdGhlCisr ICAgZnVuY3Rpb24gcmV0dXJucyBhIHZhbHVlLCAgKk9VVF9WQUxVRSBpcyBzZXQgdG8gdGhlIHZh bHVlLCBhbmQgTlVMTAorKyAgIGlzIHJldHVybmVkLiAgT24gZXJyb3IsICpPVVRfVkFMVUUgaXMg c2V0IHRvIE5VTEwsIGFuZCBOVUxMIGlzCisrICAgcmV0dXJuZWQuICAqLworKworIHN0YXRpYyBQ eU9iamVjdCAqCisgcHJldHR5X3ByaW50X29uZV92YWx1ZSAoUHlPYmplY3QgKnByaW50ZXIsIHN0 cnVjdCB2YWx1ZSAqKm91dF92YWx1ZSkKKyB7CitAQCAtMTQwLDcgKzE0Myw4IEBAIHByZXR0eV9w cmludF9vbmVfdmFsdWUgKFB5T2JqZWN0ICpwcmludGUKKyAgICAgICByZXN1bHQgPSBQeU9iamVj dF9DYWxsTWV0aG9kT2JqQXJncyAocHJpbnRlciwgZ2RicHlfdG9fc3RyaW5nX2NzdCwgTlVMTCk7 CisgICAgICAgaWYgKHJlc3VsdCkKKyAJeworLQkgIGlmICghIGdkYnB5X2lzX3N0cmluZyAocmVz dWx0KSAmJiAhIGdkYnB5X2lzX2xhenlfc3RyaW5nIChyZXN1bHQpKQorKwkgIGlmICghIGdkYnB5 X2lzX3N0cmluZyAocmVzdWx0KSAmJiAhIGdkYnB5X2lzX2xhenlfc3RyaW5nIChyZXN1bHQpICAK KysJICAgICAgJiYgcmVzdWx0ICE9IFB5X05vbmUpCisgCSAgICB7CisgCSAgICAgICpvdXRfdmFs dWUgPSBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChyZXN1bHQpOworICAJICAgICAgaWYgKFB5 RXJyX09jY3VycmVkICgpKQorQEAgLTE4NCw4ICsxODgsMTEgQEAgZ2RicHlfZ2V0X2Rpc3BsYXlf aGludCAoUHlPYmplY3QgKnByaW50ZQorIH0KKyAKKyAvKiBIZWxwZXIgZm9yIGFwcGx5X3ZhbF9w cmV0dHlfcHJpbnRlciB3aGljaCBjYWxscyB0b19zdHJpbmcgYW5kCistICAgZm9ybWF0cyB0aGUg cmVzdWx0LiAgKi8KKy1zdGF0aWMgdm9pZAorKyAgIGZvcm1hdHMgdGhlIHJlc3VsdC4gIElmIHRo ZSB2YWx1ZSByZXR1cm5kIGlzIFB5X05vbmUsIG5vdGhpbmcgaXMKKysgICBwcmludGVkIGFuZCB0 aGUgZnVuY3Rpb24gcmV0dXJucyBhIDE7IGluIGFsbCBvdGhlciBjYXNlcyBkYXRhIGlzCisrICAg cHJpbnRlZCBhcyBnaXZlbiBieSB0aGUgcHJldHR5IHByaW50ZXIgYW5kIHRoZSBmdW5jdGlvbiBy ZXR1cm5zIDAuCisrKi8KKytzdGF0aWMgaW50CisgcHJpbnRfc3RyaW5nX3JlcHIgKFB5T2JqZWN0 ICpwcmludGVyLCBjb25zdCBjaGFyICpoaW50LAorIAkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgaW50IHJlY3Vyc2UsCisgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucywKK0BAIC0xOTQsNTIgKzIwMSw1OCBAQCBwcmludF9zdHJpbmdfcmVwciAoUHlPYmpl Y3QgKnByaW50ZXIsIGNvCisgeworICAgc3RydWN0IHZhbHVlICpyZXBsYWNlbWVudCA9IE5VTEw7 CisgICBQeU9iamVjdCAqcHlfc3RyID0gTlVMTDsKKysgIGludCBpc19weV9ub25lID0gMDsKKyAK KyAgIHB5X3N0ciA9IHByZXR0eV9wcmludF9vbmVfdmFsdWUgKHByaW50ZXIsICZyZXBsYWNlbWVu dCk7CisgICBpZiAocHlfc3RyKQorICAgICB7CistICAgICAgZ2RiX2J5dGUgKm91dHB1dCA9IE5V TEw7CistICAgICAgbG9uZyBsZW5ndGg7CistICAgICAgc3RydWN0IHR5cGUgKnR5cGU7CistICAg ICAgY2hhciAqZW5jb2RpbmcgPSBOVUxMOworLSAgICAgIFB5T2JqZWN0ICpzdHJpbmcgPSBOVUxM OworLSAgICAgIGludCBpc19sYXp5OworLSAgICAgIAorLSAgICAgIGlzX2xhenkgPSBnZGJweV9p c19sYXp5X3N0cmluZyAocHlfc3RyKTsKKy0gICAgICBpZiAoaXNfbGF6eSkKKy0Jb3V0cHV0ID0g Z2RicHlfZXh0cmFjdF9sYXp5X3N0cmluZyAocHlfc3RyLCAmdHlwZSwgJmxlbmd0aCwgJmVuY29k aW5nKTsKKysgICAgICBpZiAocHlfc3RyID09IFB5X05vbmUpCisrCWlzX3B5X25vbmUgPSAxOwor ICAgICAgIGVsc2UKKyAJeworLQkgIHN0cmluZyA9IHB5dGhvbl9zdHJpbmdfdG9fdGFyZ2V0X3B5 dGhvbl9zdHJpbmcgKHB5X3N0cik7CistCSAgaWYgKHN0cmluZykKKysJICBnZGJfYnl0ZSAqb3V0 cHV0ID0gTlVMTDsKKysJICBsb25nIGxlbmd0aDsKKysJICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKysJ ICBjaGFyICplbmNvZGluZyA9IE5VTEw7CisrCSAgUHlPYmplY3QgKnN0cmluZyA9IE5VTEw7Cisr CSAgaW50IGlzX2xhenk7CisrCisrCSAgaXNfbGF6eSA9IGdkYnB5X2lzX2xhenlfc3RyaW5nIChw eV9zdHIpOworKwkgIGlmIChpc19sYXp5KQorKwkgICAgb3V0cHV0ID0gZ2RicHlfZXh0cmFjdF9s YXp5X3N0cmluZyAocHlfc3RyLCAmdHlwZSwgJmxlbmd0aCwgJmVuY29kaW5nKTsKKysJICBlbHNl CisgCSAgICB7CistCSAgICAgIG91dHB1dCA9IFB5U3RyaW5nX0FzU3RyaW5nIChzdHJpbmcpOwor LQkgICAgICBsZW5ndGggPSBQeVN0cmluZ19TaXplIChzdHJpbmcpOworLQkgICAgICB0eXBlID0g YnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9jaGFyOworKwkgICAgICBzdHJpbmcgPSBw eXRob25fc3RyaW5nX3RvX3RhcmdldF9weXRob25fc3RyaW5nIChweV9zdHIpOworKwkgICAgICBp ZiAoc3RyaW5nKQorKwkJeworKwkJICBvdXRwdXQgPSBQeVN0cmluZ19Bc1N0cmluZyAoc3RyaW5n KTsKKysJCSAgbGVuZ3RoID0gUHlTdHJpbmdfU2l6ZSAoc3RyaW5nKTsKKysJCSAgdHlwZSA9IGJ1 aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fY2hhcjsKKysJCX0KKysJICAgICAgZWxzZQor KwkJZ2RicHlfcHJpbnRfc3RhY2sgKCk7CisrCSAgICAgIAorKwkgICAgfQorKwkKKysJICBpZiAo b3V0cHV0KQorKwkgICAgeworKwkgICAgICBpZiAoaXNfbGF6eSB8fCAoaGludCAmJiAhc3RyY21w IChoaW50LCAic3RyaW5nIikpKQorKwkJTEFfUFJJTlRfU1RSSU5HIChzdHJlYW0sIHR5cGUsIG91 dHB1dCwgbGVuZ3RoLCBlbmNvZGluZywKKysJCQkJIDAsIG9wdGlvbnMpOworKwkgICAgICBlbHNl CisrCQlmcHV0c19maWx0ZXJlZCAob3V0cHV0LCBzdHJlYW0pOworIAkgICAgfQorIAkgIGVsc2UK KyAJICAgIGdkYnB5X3ByaW50X3N0YWNrICgpOworIAkgIAorLQl9CistICAgICAgCistICAgICAg aWYgKG91dHB1dCkKKy0JeworLQkgIGlmIChpc19sYXp5IHx8IChoaW50ICYmICFzdHJjbXAgKGhp bnQsICJzdHJpbmciKSkpCistCSAgICBMQV9QUklOVF9TVFJJTkcgKHN0cmVhbSwgdHlwZSwgb3V0 cHV0LCBsZW5ndGgsIGVuY29kaW5nLAorLQkJCSAgICAgMCwgb3B0aW9ucyk7CisrCSAgaWYgKHN0 cmluZykKKysJICAgIFB5X0RFQ1JFRiAoc3RyaW5nKTsKKyAJICBlbHNlCistCSAgICBmcHV0c19m aWx0ZXJlZCAob3V0cHV0LCBzdHJlYW0pOworLQl9CistICAgICAgZWxzZQorLQlnZGJweV9wcmlu dF9zdGFjayAoKTsKKy0gICAgICAKKy0gICAgICBpZiAoc3RyaW5nKQorLQlQeV9ERUNSRUYgKHN0 cmluZyk7CistICAgICAgZWxzZQorLQl4ZnJlZSAob3V0cHV0KTsKKysJICAgIHhmcmVlIChvdXRw dXQpOworICAgICAgIAorLSAgICAgIHhmcmVlIChlbmNvZGluZyk7CistICAgICAgUHlfREVDUkVG IChweV9zdHIpOworKwkgIHhmcmVlIChlbmNvZGluZyk7CisrCSAgUHlfREVDUkVGIChweV9zdHIp OworKwl9CisgICAgIH0KKyAgIGVsc2UgaWYgKHJlcGxhY2VtZW50KQorICAgICB7CitAQCAtMjUw LDYgKzI2Myw4IEBAIHByaW50X3N0cmluZ19yZXByIChQeU9iamVjdCAqcHJpbnRlciwgY28KKyAg ICAgfQorICAgZWxzZQorICAgICBnZGJweV9wcmludF9zdGFjayAoKTsKKysKKysgIHJldHVybiBp c19weV9ub25lOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTMyOCwxMiArMzQzLDE0IEBAIHB1 c2hfZHVtbXlfcHl0aG9uX2ZyYW1lICgpCisgfQorIAorIC8qIEhlbHBlciBmb3IgYXBwbHlfdmFs X3ByZXR0eV9wcmludGVyIHRoYXQgZm9ybWF0cyBjaGlsZHJlbiBvZiB0aGUKKy0gICBwcmludGVy LCBpZiBhbnkgZXhpc3QuICAqLworKyAgIHByaW50ZXIsIGlmIGFueSBleGlzdC4gIElmIGlzX3B5 X25vbmUgaXMgdHJ1ZSwgdGhlbiBub3RoaW5nIGhhcworKyAgIGJlZW4gcHJpbnRlZCBieSB0b19z dHJpbmcsIGFuZCBmb3JtYXQgb3V0cHV0IGFjY29yZGluZ2x5LiAqLworIHN0YXRpYyB2b2lkCisg cHJpbnRfY2hpbGRyZW4gKFB5T2JqZWN0ICpwcmludGVyLCBjb25zdCBjaGFyICpoaW50LAorIAkJ c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCQljb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKKy0JCWNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZu ICpsYW5ndWFnZSkKKysJCWNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSwKKysJ CWludCBpc19weV9ub25lKQorIHsKKyAgIGludCBpc19tYXAsIGlzX2FycmF5LCBkb25lX2ZsYWcs IHByZXR0eTsKKyAgIHVuc2lnbmVkIGludCBpOworQEAgLTQxMyw3ICs0MzAsMTMgQEAgcHJpbnRf Y2hpbGRyZW4gKFB5T2JqZWN0ICpwcmludGVyLCBjb25zdAorIAkgMi4gQXJyYXlzLiAgQWx3YXlz IHByaW50IGEgIiwiLgorIAkgMy4gT3RoZXIuICBBbHdheXMgcHJpbnQgYSAiLCIuICAqLworICAg ICAgIGlmIChpID09IDApCistCWZwdXRzX2ZpbHRlcmVkICgiID0geyIsIHN0cmVhbSk7CisrCXsK KysgICAgICAgICBpZiAoaXNfcHlfbm9uZSkKKysgICAgICAgICAgIGZwdXRzX2ZpbHRlcmVkICgi eyIsIHN0cmVhbSk7CisrICAgICAgICAgZWxzZQorKyAgICAgICAgICAgZnB1dHNfZmlsdGVyZWQg KCIgPSB7Iiwgc3RyZWFtKTsKKysgICAgICAgfQorKworICAgICAgIGVsc2UgaWYgKCEgaXNfbWFw IHx8IGkgJSAyID09IDApCisgCWZwdXRzX2ZpbHRlcmVkIChwcmV0dHkgPyAiLCIgOiAiLCAiLCBz dHJlYW0pOworIAorQEAgLTUzNyw3ICs1NjAsNyBAQCBhcHBseV92YWxfcHJldHR5X3ByaW50ZXIg KHN0cnVjdCB0eXBlICp0CisgICBjaGFyICpoaW50ID0gTlVMTDsKKyAgIHN0cnVjdCBjbGVhbnVw ICpjbGVhbnVwczsKKyAgIGludCByZXN1bHQgPSAwOworLQorKyAgaW50IGlzX3B5X25vbmUgPSAw OworICAgY2xlYW51cHMgPSBlbnN1cmVfcHl0aG9uX2VudiAoZ2RiYXJjaCwgbGFuZ3VhZ2UpOwor IAorICAgLyogSW5zdGFudGlhdGUgdGhlIHByaW50ZXIuICAqLworQEAgLTU2Miw5ICs1ODUsMTEg QEAgYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyIChzdHJ1Y3QgdHlwZSAqdAorICAgbWFrZV9jbGVh bnVwIChmcmVlX2N1cnJlbnRfY29udGVudHMsICZoaW50KTsKKyAKKyAgIC8qIFByaW50IHRoZSBz ZWN0aW9uICovCistICBwcmludF9zdHJpbmdfcmVwciAocHJpbnRlciwgaGludCwgc3RyZWFtLCBy ZWN1cnNlLCBvcHRpb25zLCBsYW5ndWFnZSwKKy0JCSAgICAgZ2RiYXJjaCk7CistICBwcmludF9j aGlsZHJlbiAocHJpbnRlciwgaGludCwgc3RyZWFtLCByZWN1cnNlLCBvcHRpb25zLCBsYW5ndWFn ZSk7CisrICBpc19weV9ub25lID0gcHJpbnRfc3RyaW5nX3JlcHIgKHByaW50ZXIsIGhpbnQsIHN0 cmVhbSwgcmVjdXJzZSwKKysJCQkJICBvcHRpb25zLCBsYW5ndWFnZSwgZ2RiYXJjaCk7CisrICBw cmludF9jaGlsZHJlbiAocHJpbnRlciwgaGludCwgc3RyZWFtLCByZWN1cnNlLCBvcHRpb25zLCBs YW5ndWFnZSwKKysJCSAgaXNfcHlfbm9uZSk7CisrCisgICByZXN1bHQgPSAxOworIAorIAorSW5k ZXg6IGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LW1pLmV4cAorPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjEub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktbWkuZXhwCTIw MTAtMDEtMTQgMDk6MDM6MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktbWkuZXhwCTIwMTAtMDYtMzAgMDM6MjI6MjAuMDAwMDAwMDAwICsw MjAwCitAQCAtNjEsNiArNjEsMTYgQEAgbWlfbGlzdF92YXJvYmpfY2hpbGRyZW4gY29udGFpbmVy IHsKKyAKKyBtaV9kZWxldGVfdmFyb2JqIGNvbnRhaW5lciAiZGVsZXRlIHZhcm9iaiIKKyAKKytt aV9jcmVhdGVfZHluYW1pY192YXJvYmogbnNjb250IG5zdHlwZSBcCisrICAiY3JlYXRlIG5zY29u dCB2YXJvYmosIG5vIHByZXR0eS1wcmludGluZyIKKysKKyttaV9saXN0X3Zhcm9ial9jaGlsZHJl biBuc2NvbnQgeworKyAgeyBuc2NvbnQubGVuIGxlbiAwIGludCB9CisrICB7IG5zY29udC5lbGVt ZW50cyBlbGVtZW50cyAxICJpbnQgLiIgfQorK30gImV4YW1pbmUgbnNjb250IGNoaWxkcmVuPTAs IG5vIHByZXR0eS1wcmludGluZyIKKysKKyttaV9kZWxldGVfdmFyb2JqIG5zY29udCAiZGVsZXRl IHZhcm9iaiIKKysKKyBtaV9nZGJfdGVzdCAiLWVuYWJsZS1wcmV0dHktcHJpbnRpbmciICIiCisg CisgbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHN0cmluZyBzdHJpbmdfMSBcCitAQCAtMjM5LDQg KzI0OSwyOSBAQCBtaV9jb250aW51ZV90b19saW5lIFwKKyAKKyBtaV92YXJvYmpfdXBkYXRlX3dp dGhfdHlwZV9jaGFuZ2UgY29udGFpbmVyIGludCAwICJ1cGRhdGUgYWZ0ZXIgdHlwZSBjaGFuZ2Ui CisgCisrCisrbWlfY29udGludWVfdG9fbGluZSBcCisrICAgIFtnZGJfZ2V0X2xpbmVfbnVtYmVy IHticmVhayB0byBpbnNwZWN0IHN0cnVjdCBhbmQgdW5pb259ICR7dGVzdGZpbGV9LmNdIFwKKysg ICAgInN0ZXAgdG8gb3V0ZXIgYnJlYWtwb2ludCIKKysKKyttaV9jcmVhdGVfZHluYW1pY192YXJv YmogbnNjb250IG5zdHlwZSBcCisrICAiY3JlYXRlIG5zdHlwZSB2YXJvYmoiCisrCisrbWlfbGlz dF92YXJvYmpfY2hpbGRyZW4gbnNjb250IHsKKysgICAgeyB7bnNjb250LlxbMFxdfSB7XFswXF19 IDAgaW50IH0KKysgICAgeyB7bnNjb250LlxbMVxdfSB7XFsxXF19IDAgaW50IH0KKyt9ICJsaXN0 IGNoaWxkcmVuIGFmdGVyIHNldHRpbmcgdXBkYXRlIHJhbmdlIgorKworK21pX2dkYl90ZXN0ICIt dmFyLXNldC12aXN1YWxpemVyIG5zY29udCBOb25lIiBcCisrICAiXFxeZG9uZSIgXAorKyAgImNs ZWFyIHZpc3VhbGl6ZXIiCisrCisrbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIG5zY29udCIgXAor KyAgIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXFxcXSIgXAorKyAgInZhcm9iaiB1cGRhdGUgYWZ0 ZXIgY2xlYXJpbmciCisrCisrbWlfZ2RiX3Rlc3QgIi12YXItc2V0LXZpc3VhbGl6ZXIgbnNjb250 IGdkYi5kZWZhdWx0X3Zpc3VhbGl6ZXIiIFwKKysgICJcXF5kb25lIiBcCisrICAiY2hvb3NlIGRl ZmF1bHQgdmlzdWFsaXplciIKKysKKyByZW1vdGVfZmlsZSBob3N0IGRlbGV0ZSAke3JlbW90ZV9w eXRob25fZmlsZX0KK0luZGV4OiBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1w cmV0dHlwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMS5vcmlnL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5jCTIwMTAtMDEtMTQgMDk6MDM6MzcuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJp bnQuYwkyMDEwLTA2LTMwIDAzOjIyOjIwLjAwMDAwMDAwMCArMDIwMAorQEAgLTExOSw2ICsxMTks MTUgQEAgdHlwZWRlZiBzdHJ1Y3Qgc3RyaW5nX3JlcHIKKyAKKyAvKiBUaGlzIGxldHMgdXMgYXZv aWQgbWFsbG9jLiAgKi8KKyBpbnQgYXJyYXlbMTAwXTsKKytpbnQgbmFycmF5WzEwXTsKKysKKytz dHJ1Y3QganVzdGNoaWxkcmVuCisreworKyAgaW50IGxlbjsKKysgIGludCAqZWxlbWVudHM7Cisr fTsKKysKKyt0eXBlZGVmIHN0cnVjdCBqdXN0Y2hpbGRyZW4gbm9zdHJpbmdfdHlwZTsKKyAKKyBz dHJ1Y3QgY29udGFpbmVyCisgeworQEAgLTE5Niw3ICsyMDUsOSBAQCBtYWluICgpCisgICBjb25z dCBzdHJ1Y3Qgc3RyaW5nX3JlcHIgY3N0cmluZyA9IHsgeyAiY29uc3Qgc3RyaW5nIiB9IH07Cisg ICAvKiBDbGVhcmluZyBieSBiZWluZyBgc3RhdGljJyBjb3VsZCBpbnZva2UgYW4gb3RoZXIgR0RC IEMrKyBidWcuICAqLworICAgc3RydWN0IG51bGxzdHIgbnVsbHN0cjsKKy0KKysgIG5vc3RyaW5n X3R5cGUgbnN0eXBlOworKyAgbnN0eXBlLmVsZW1lbnRzID0gbmFycmF5OworKyAgbnN0eXBlLmxl biA9IDA7CisgCisgICBpbml0X3NzKCZzcywgMSwgMik7CisgICBpbml0X3NzKHNzYSswLCAzLCA0 KTsKK0BAIC0yNDksNSArMjYwLDkgQEAgbWFpbiAoKQorICAgZG9fbm90aGluZyAoKTsKKyAjZW5k aWYKKyAKKysgIG5zdHlwZS5lbGVtZW50c1swXSA9IDc7CisrICBuc3R5cGUuZWxlbWVudHNbMV0g PSA0MjsKKysgIG5zdHlwZS5sZW4gPSAyOworKyAgCisgICByZXR1cm4gMDsgICAgICAvKiBicmVh ayB0byBpbnNwZWN0IHN0cnVjdCBhbmQgdW5pb24gKi8KKyB9CitJbmRleDogZ2RiLTcuMS9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAJ MjAxMC0wNi0zMCAwMzoyMjowMi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAJMjAxMC0wNi0zMCAwMzoyNDoxNC4w MDAwMDAwMDAgKzAyMDAKK0BAIC0xMTUsNiArMTE1LDcgQEAgcHJvYyBydW5fbGFuZ190ZXN0cyB7 bGFuZ30geworIAorICAgICBnZGJfdGVzdCAicHJpbnQgbnVsbHN0ciIgIlJ1bnRpbWVFcnJvcjog RXJyb3IgcmVhZGluZyBzdHJpbmcgZnJvbSBpbmZlcmlvci4qIgorIAorKyAgICBnZGJfdGVzdCAi cHJpbnQgbnN0eXBlIiAiID0geyRubCAqLjAuID0gNywkbmwgKi4xLiA9IDQyJG5sfSIKKyAgICAg Z2RiX3Rlc3QgImNvbnRpbnVlIiAiUHJvZ3JhbSBleGl0ZWQgbm9ybWFsbHlcLiIKKyAKKyAgICAg cmVtb3RlX2ZpbGUgaG9zdCBkZWxldGUgJHtyZW1vdGVfcHl0aG9uX2ZpbGV9CitJbmRleDogZ2Ri LTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQucHkKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy4xLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXBy aW50LnB5CTIwMTAtMDEtMTQgMDk6MDM6MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQucHkJMjAxMC0wNi0zMCAwMzoy MjoyMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC01Myw2ICs1MywzMyBAQCBjbGFzcyBDb250YWluZXJQ cmludGVyOgorICAgICBkZWYgY2hpbGRyZW4oc2VsZik6CisgICAgICAgICByZXR1cm4gc2VsZi5f aXRlcmF0b3Ioc2VsZi52YWxbJ2VsZW1lbnRzJ10sIHNlbGYudmFsWydsZW4nXSkKKyAKKysjIFRl c3QgYSBwcmludGVyIHdoZXJlIHRvX3N0cmluZyBpcyBOb25lCisrY2xhc3MgTm9TdHJpbmdDb250 YWluZXJQcmludGVyOgorKyAgICBjbGFzcyBfaXRlcmF0b3I6CisrICAgICAgICBkZWYgX19pbml0 X18gKHNlbGYsIHBvaW50ZXIsIGxlbik6CisrICAgICAgICAgICAgc2VsZi5zdGFydCA9IHBvaW50 ZXIKKysgICAgICAgICAgICBzZWxmLnBvaW50ZXIgPSBwb2ludGVyCisrICAgICAgICAgICAgc2Vs Zi5lbmQgPSBwb2ludGVyICsgbGVuCisrCisrICAgICAgICBkZWYgX19pdGVyX18oc2VsZik6Cisr ICAgICAgICAgICAgcmV0dXJuIHNlbGYKKysKKysgICAgICAgIGRlZiBuZXh0KHNlbGYpOgorKyAg ICAgICAgICAgIGlmIHNlbGYucG9pbnRlciA9PSBzZWxmLmVuZDoKKysgICAgICAgICAgICAgICAg cmFpc2UgU3RvcEl0ZXJhdGlvbgorKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYucG9pbnRlcgor KyAgICAgICAgICAgIHNlbGYucG9pbnRlciA9IHNlbGYucG9pbnRlciArIDEKKysgICAgICAgICAg ICByZXR1cm4gKCdbJWRdJyAlIGludCAocmVzdWx0IC0gc2VsZi5zdGFydCksIHJlc3VsdC5kZXJl ZmVyZW5jZSgpKQorKworKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsKToKKysgICAgICAgIHNl bGYudmFsID0gdmFsCisrCisrICAgIGRlZiB0b19zdHJpbmcoc2VsZik6CisrICAgICAgICByZXR1 cm4gTm9uZQorKworKyAgICBkZWYgY2hpbGRyZW4oc2VsZik6CisrICAgICAgICByZXR1cm4gc2Vs Zi5faXRlcmF0b3Ioc2VsZi52YWxbJ2VsZW1lbnRzJ10sIHNlbGYudmFsWydsZW4nXSkKKysKKyBj bGFzcyBwcF9zOgorICAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsKToKKyAgICAgICAgIHNlbGYu dmFsID0gdmFsCitAQCAtMTkwLDggKzIxNywxMCBAQCBkZWYgcmVnaXN0ZXJfcHJldHR5X3ByaW50 ZXJzICgpOgorICAgICAjIGJvdGggdGhlIEMgYW5kIEMrKyBjYXNlcy4KKyAgICAgcHJldHR5X3By aW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15zdHJ1Y3Qgc3RyaW5nX3JlcHIkJyldID0gc3RyaW5n X3ByaW50CisgICAgIHByZXR0eV9wcmludGVyc19kaWN0W3JlLmNvbXBpbGUgKCdec3RydWN0IGNv bnRhaW5lciQnKV0gPSBDb250YWluZXJQcmludGVyCisrICAgIHByZXR0eV9wcmludGVyc19kaWN0 W3JlLmNvbXBpbGUgKCdec3RydWN0IGp1c3RjaGlsZHJlbiQnKV0gPSBOb1N0cmluZ0NvbnRhaW5l clByaW50ZXIKKyAgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15zdHJpbmdf cmVwciQnKV0gPSBzdHJpbmdfcHJpbnQKKyAgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29t cGlsZSAoJ15jb250YWluZXIkJyldID0gQ29udGFpbmVyUHJpbnRlcgorKyAgICBwcmV0dHlfcHJp bnRlcnNfZGljdFtyZS5jb21waWxlICgnXmp1c3RjaGlsZHJlbiQnKV0gPSBOb1N0cmluZ0NvbnRh aW5lclByaW50ZXIKKyAgICAgCisgICAgIHByZXR0eV9wcmludGVyc19kaWN0W3JlLmNvbXBpbGUg KCdec3RydWN0IG5zJCcpXSAgPSBwcF9ucworICAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5j b21waWxlICgnXm5zJCcpXSAgPSBwcF9ucwoKZGlmZiAtLWdpdCBhL2dkYi1iejU2Mjc2My1wcmV0 dHktcHJpbnQtMmQtdmVjdG9ycy5wYXRjaCBiL2dkYi1iejU2Mjc2My1wcmV0dHktcHJpbnQtMmQt dmVjdG9ycy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWE4OTcz Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NTYyNzYzLXByZXR0eS1wcmludC0yZC12ZWN0b3Jz LnBhdGNoCkBAIC0wLDAgKzEsNDA0IEBACisyMDEwLTA1LTMxICBDaHJpcyBNb2xsZXIgIDxjbW9s bGVyQHJlZGhhdC5jb20+CisKKwkqIHB5dGhvbi9weS1wcmV0dHlwcmludC5jIChwcmludF9jaGls ZHJlbik6IEFkZCBmb3JtYXR0aW5nIGZvcgorCW1hdHJpY2VzLiAoYXBwbHlfdmFsX3ByZXR0eV9w cmludGVyKTogRGV0ZWN0IGFuZCBkZWFsIHdpdGggbWF0cml4CisJaGludHMuIAorCisKKzIwMTAt MDUtMzEgIENocmlzIE1vbGxlciAgPGNtb2xsZXJAcmVkaGF0LmNvbT4KKworCSogZ2RiLnB5dGhv bi9NYWtlZmlsZS5pbiAoRVhFQ1VUQUJMRVMpOiAgQWRkZWQgcHIxMDY1OS4KKwkqIGdkYi5weXRo b24vcHIxMDY1OS5jYzogIE5ldyBmaWxlLgorCSogZ2RiLnB5dGhvbi9wcjEwNjU5LmV4cC4gIE5l dyBmaWxlLgorCSogZ2RiLnB5dGhvbi9wcjEwNjU5LnB5OiBOZXcgZmlsZS4KKworSW5kZXg6IGdk Yi03LjEvZ2RiL3ZhbHByaW50LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xLm9yaWcvZ2RiL3Zh bHByaW50LmgJMjAxMC0wNi0zMCAxNDowMjoxNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4x L2dkYi92YWxwcmludC5oCTIwMTAtMDYtMzAgMTQ6MzU6MjQuMDAwMDAwMDAwICswMjAwCitAQCAt OTAsNiArOTAsOSBAQCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucworIAorICAgLyogSWYgbm9u emVybywgcHJpbnQgdGhlIHZhbHVlIGluICJzdW1tYXJ5IiBmb3JtLiAgKi8KKyAgIGludCBzdW1t YXJ5OworKworKyAgLyogQWZmZWN0cyBwcmV0dHkgcHJpbnRpbmcgb2YgbWF0cmljZXMuICAqLwor KyAgaW50IHByZXR0eXByaW50X21hdHJpeDsKKyB9OworIAorIC8qIFRoZSBnbG9iYWwgcHJpbnQg b3B0aW9ucyBzZXQgYnkgdGhlIHVzZXIuICBJbiBnZW5lcmFsIHRoaXMgc2hvdWxkCitJbmRleDog Z2RiLTcuMS9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny4xLm9yaWcvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIwMTAtMDYtMzAgMTQ6MDE6NDAu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJ MjAxMC0wNi0zMCAxNDozNDo0OS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zODUsNyArMzg1LDggQEAg cHJpbnRfY2hpbGRyZW4gKFB5T2JqZWN0ICpwcmludGVyLCBjb25zdAorIAorICAgLyogVXNlIHRo ZSBwcmV0dHlwcmludF9hcnJheXMgb3B0aW9uIGlmIHdlIGFyZSBwcmludGluZyBhbiBhcnJheSwK KyAgICAgIGFuZCB0aGUgcHJldHR5IG9wdGlvbiBvdGhlcndpc2UuICAqLworLSAgcHJldHR5ID0g aXNfYXJyYXkgPyBvcHRpb25zLT5wcmV0dHlwcmludF9hcnJheXMgOiBvcHRpb25zLT5wcmV0dHk7 CisrICBwcmV0dHkgPSAoaXNfYXJyYXkgfHwgb3B0aW9ucy0+cHJldHR5cHJpbnRfbWF0cml4KSA/ CisrICAgIG9wdGlvbnMtPnByZXR0eXByaW50X2FycmF5cyA6IG9wdGlvbnMtPnByZXR0eTsKKyAK KyAgIC8qIE1hbnVmYWN0dXJlIGEgZHVtbXkgUHl0aG9uIGZyYW1lIHRvIHdvcmsgYXJvdW5kIFB5 dGhvbiAyLjQgYnVnLAorICAgICAgd2hlcmUgaXQgaW5zaXN0cyBvbiBoYXZpbmcgYSBub24tTlVM TCB0c3RhdGUtPmZyYW1lIHdoZW4KK0BAIC0zOTcsNiArMzk4LDkgQEAgcHJpbnRfY2hpbGRyZW4g KFB5T2JqZWN0ICpwcmludGVyLCBjb25zdAorICAgICAgIGdvdG8gZG9uZTsKKyAgICAgfQorICAg bWFrZV9jbGVhbnVwX3B5X2RlY3JlZiAoZnJhbWUpOworKyAgCisrICBpZiAob3B0aW9ucy0+cHJl dHR5cHJpbnRfbWF0cml4ICYmIHJlY3Vyc2UgPT0gMCkKKysgICAgZnB1dHNfZmlsdGVyZWQgKCJc biIsIHN0cmVhbSk7CisgCisgICBkb25lX2ZsYWcgPSAwOworICAgZm9yIChpID0gMDsgaSA8IG9w dGlvbnMtPnByaW50X21heDsgKytpKQorQEAgLTQzMSwxMiArNDM1LDIzIEBAIHByaW50X2NoaWxk cmVuIChQeU9iamVjdCAqcHJpbnRlciwgY29uc3QKKyAJIDMuIE90aGVyLiAgQWx3YXlzIHByaW50 IGEgIiwiLiAgKi8KKyAgICAgICBpZiAoaSA9PSAwKQorIAl7CistICAgICAgICAgaWYgKGlzX3B5 X25vbmUpCistICAgICAgICAgICBmcHV0c19maWx0ZXJlZCAoInsiLCBzdHJlYW0pOworLSAgICAg ICAgIGVsc2UKKy0gICAgICAgICAgIGZwdXRzX2ZpbHRlcmVkICgiID0geyIsIHN0cmVhbSk7Cisr CSAgaWYgKG9wdGlvbnMtPnByZXR0eXByaW50X21hdHJpeCAmJiByZWN1cnNlID09IDApCisrCSAg ICBwcmludF9zcGFjZXNfZmlsdGVyZWQgKDIgKyAyICogcmVjdXJzZSwgc3RyZWFtKTsKKysJICBp ZiAoaXNfcHlfbm9uZSkKKysJICAgIHsKKysJICAgICAgaWYgKG9wdGlvbnMtPnByZXR0eXByaW50 X21hdHJpeCAmJiBzdHJjbXAgKGhpbnQsICJhcnJheSIpKQorKwkJeworKwkJICBmcHV0c19maWx0 ZXJlZCAoIntcbiIsIHN0cmVhbSk7CisrCQkgIHByaW50X3NwYWNlc19maWx0ZXJlZCAoNCArIDIg KiByZWN1cnNlLCBzdHJlYW0pOworKwkJfQorKwkgICAgICBlbHNlCisrCQlmcHV0c19maWx0ZXJl ZCAoInsiLCBzdHJlYW0pOworKwkgICAgfQorKwkgIGVsc2UKKysJICAgIGZwdXRzX2ZpbHRlcmVk ICgiID0geyIsIHN0cmVhbSk7CisgICAgICAgIH0KKy0KKysgICAgICBlbHNlIGlmIChvcHRpb25z LT5wcmV0dHlwcmludF9tYXRyaXgpCisrCXByaW50X3NwYWNlc19maWx0ZXJlZCAoNCArIDIgKiBy ZWN1cnNlLCBzdHJlYW0pOworICAgICAgIGVsc2UgaWYgKCEgaXNfbWFwIHx8IGkgJSAyID09IDAp CisgCWZwdXRzX2ZpbHRlcmVkIChwcmV0dHkgPyAiLCIgOiAiLCAiLCBzdHJlYW0pOworIAorQEAg LTQ2NSw2ICs0ODAsMTAgQEAgcHJpbnRfY2hpbGRyZW4gKFB5T2JqZWN0ICpwcmludGVyLCBjb25z dAorIAorICAgICAgIGlmIChpc19tYXAgJiYgaSAlIDIgPT0gMCkKKyAJZnB1dHNfZmlsdGVyZWQg KCJbIiwgc3RyZWFtKTsKKysgICAgICBlbHNlIGlmIChvcHRpb25zLT5wcmV0dHlwcmludF9tYXRy aXgpCisrCXsKKysJICAvKiBGb3JjZSBhIGRvLW5vdGhpbmcuICAqLworKwl9CisgICAgICAgZWxz ZSBpZiAoaXNfYXJyYXkpCisgCXsKKyAJICAvKiBXZSBwcmludCB0aGUgaW5kZXgsIG5vdCB3aGF0 ZXZlciB0aGUgY2hpbGQgbWV0aG9kCitAQCAtNTM5LDcgKzU1OCwxMiBAQCBwcmludF9jaGlsZHJl biAoUHlPYmplY3QgKnByaW50ZXIsIGNvbnN0CisgCSAgZnB1dHNfZmlsdGVyZWQgKCJcbiIsIHN0 cmVhbSk7CisgCSAgcHJpbnRfc3BhY2VzX2ZpbHRlcmVkICgyICogcmVjdXJzZSwgc3RyZWFtKTsK KyAJfQorLSAgICAgIGZwdXRzX2ZpbHRlcmVkICgifSIsIHN0cmVhbSk7CisrICAgICAgaWYgKG9w dGlvbnMtPnByZXR0eXByaW50X21hdHJpeCkKKysgICAgICB7CisrCXByaW50X3NwYWNlc19maWx0 ZXJlZCAoNCAqIHJlY3Vyc2UsIHN0cmVhbSk7CisrCWZwdXRzX2ZpbHRlcmVkICgifVxuIiwgc3Ry ZWFtKTsKKysgICAgICB9CisrICAgICAgZWxzZSBmcHV0c19maWx0ZXJlZCAoIn0iLCBzdHJlYW0p OworICAgICB9CisgCisgIGRvbmU6CitAQCAtNTYxLDYgKzU4NSw3IEBAIGFwcGx5X3ZhbF9wcmV0 dHlfcHJpbnRlciAoc3RydWN0IHR5cGUgKnQKKyAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwczsK KyAgIGludCByZXN1bHQgPSAwOworICAgaW50IGlzX3B5X25vbmUgPSAwOworKyAgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnNfY29weTsKKyAgIGNsZWFudXBzID0gZW5zdXJlX3B5 dGhvbl9lbnYgKGdkYmFyY2gsIGxhbmd1YWdlKTsKKyAKKyAgIC8qIEluc3RhbnRpYXRlIHRoZSBw cmludGVyLiAgKi8KK0BAIC01ODIsMTIgKzYwNywyMyBAQCBhcHBseV92YWxfcHJldHR5X3ByaW50 ZXIgKHN0cnVjdCB0eXBlICp0CisgCisgICAvKiBJZiB3ZSBhcmUgcHJpbnRpbmcgYSBtYXAsIHdl IHdhbnQgc29tZSBzcGVjaWFsIGZvcm1hdHRpbmcuICAqLworICAgaGludCA9IGdkYnB5X2dldF9k aXNwbGF5X2hpbnQgKHByaW50ZXIpOworKyAgCisrICBpZiAocmVjdXJzZSA9PSAwKQorKyAgICB7 CisrICAgICAgb3B0aW9uc19jb3B5ID0gYWxsb2NhIChzaXplb2YgKHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zKSk7CisrICAgICAgbWVtY3B5IChvcHRpb25zX2NvcHksIG9wdGlvbnMsIHNpemVv ZiAoc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMpKTsKKysgICAgICBvcHRpb25zX2NvcHktPnBy ZXR0eXByaW50X21hdHJpeCA9IGhpbnQgJiYgIXN0cmNtcCAoaGludCwgIm1hdHJpeCIpOworKyAg ICB9CisrICBlbHNlIG9wdGlvbnNfY29weSA9IChzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq KW9wdGlvbnM7CisrCisgICBtYWtlX2NsZWFudXAgKGZyZWVfY3VycmVudF9jb250ZW50cywgJmhp bnQpOworIAorICAgLyogUHJpbnQgdGhlIHNlY3Rpb24gKi8KKy0gIGlzX3B5X25vbmUgPSBwcmlu dF9zdHJpbmdfcmVwciAocHJpbnRlciwgaGludCwgc3RyZWFtLCByZWN1cnNlLAorLQkJCQkgIG9w dGlvbnMsIGxhbmd1YWdlLCBnZGJhcmNoKTsKKy0gIHByaW50X2NoaWxkcmVuIChwcmludGVyLCBo aW50LCBzdHJlYW0sIHJlY3Vyc2UsIG9wdGlvbnMsIGxhbmd1YWdlLAorKyAgaXNfcHlfbm9uZSA9 IG9wdGlvbnNfY29weS0+cHJldHR5cHJpbnRfbWF0cml4ID8KKysgICAgMSA6IHByaW50X3N0cmlu Z19yZXByIChwcmludGVyLCBoaW50LCBzdHJlYW0sCisrCQkJICAgcmVjdXJzZSwgb3B0aW9uc19j b3B5LAorKwkJCSAgIGxhbmd1YWdlLCBnZGJhcmNoKTsKKysgIHByaW50X2NoaWxkcmVuIChwcmlu dGVyLCBoaW50LCBzdHJlYW0sIHJlY3Vyc2UsIG9wdGlvbnNfY29weSwgbGFuZ3VhZ2UsCisgCQkg IGlzX3B5X25vbmUpOworIAorICAgcmVzdWx0ID0gMTsKK0luZGV4OiBnZGItNy4xL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9wcjEwNjU5LmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHIxMDY1OS5jYwkyMDEwLTA2LTMwIDE0OjM0OjQ5LjAwMDAwMDAwMCAr MDIwMAorQEAgLTAsMCArMSw0MyBAQAorKyNpbmNsdWRlIDxsaXN0PgorKyNpbmNsdWRlIDx2ZWN0 b3I+ICAvLyAvdXNyL2luY2x1ZGUvYysrLzQuNC4xL2JpdHMvdmVjdG9yLnRjYworKyNpbmNsdWRl IDxpb3N0cmVhbT4KKysKKyt1c2luZyBuYW1lc3BhY2Ugc3RkOworKworK2ludCB1c2Vfd2luZG93 cyA9IDk5OTk7CisrCisraW50CisrbWFpbigpeworKyAgdmVjdG9yPGludD4gdGVzdDEoMiwwKTsK KysgIHRlc3QxWzBdPTg7CisrICB0ZXN0MVsxXT05OworKyAgCisrICB2ZWN0b3I8IHZlY3Rvcjxp bnQ+ID4gdGVzdDIoMywgdmVjdG9yPGludD4oMiwwKSk7CisrICB0ZXN0MlswXVswXT0wOworKyAg dGVzdDJbMF1bMV09MTsKKysgIHRlc3QyWzFdWzBdPTI7CisrICB0ZXN0MlsxXVsxXT0zOworKyAg dGVzdDJbMl1bMF09NDsKKysgIHRlc3QyWzJdWzFdPTU7CisrCisrI2RlZmluZSBOUl9ST1dTICAg IDIKKysjZGVmaW5lIE5SX0NPTFMgICAgMworKyNkZWZpbmUgTlJfUExBTkVTICA0CisrICB2ZWN0 b3I8aW50PiByb3dzKE5SX1JPV1MsIDApOworKyAgdmVjdG9yPCB2ZWN0b3I8aW50PiA+IGNvbHVt bnMoTlJfQ09MUywgcm93cyk7CisrICB2ZWN0b3I8IHZlY3RvciA8IHZlY3RvcjxpbnQ+ID4gPiB0 ZXN0MyhOUl9QTEFORVMsIGNvbHVtbnMpOworKworKyAgY291dCA8PCAicm93cy5zaXplKCkgPSAi IDw8IHJvd3Muc2l6ZSgpCisrICAgICAgIDw8ICIsIGNvbHVtbnMuc2l6ZSgpID0gIiA8PCBjb2x1 bW5zLnNpemUoKQorKyAgICAgICA8PCAiLCB0ZXN0My5zaXplKCkgPSAiIDw8IHRlc3QzLnNpemUo KSA8PCAiXG4iOworKworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dzLnNpemUoKTsgaSsrKSB7 CisrICAgIGZvciAoaW50IGogPSAwOyBqIDwgY29sdW1ucy5zaXplKCk7IGorKykgeworKyAgICAg IGZvciAoaW50IGsgPSAwOyBrIDwgdGVzdDMuc2l6ZSgpOyBrKyspIHsKKysJdGVzdDNba11bal1b aV0gPSBrICogMTAwICsgaiAqIDEwICsgaTsKKysgICAgICB9CisrICAgIH0KKysgIH0KKysgIAor KyAgcmV0dXJuIDA7ICAvLyBicmVhaworK30KK0luZGV4OiBnZGItNy4xL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9wcjEwNjU5LmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3ByMTA2NTkuZXhwCTIwMTAtMDYtMzAgMTQ6MzQ6NDkuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDgyIEBACisrI0NvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytzZXQgbmwg ICAgICAgICAgICAgIlxbXHJcblxdKyIKKysKKytzZXQgdGVzdGZpbGUgcHIxMDY1OQorK3NldCBz cmNmaWxlICR7dGVzdGZpbGV9LmNjCisraWYgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHRlc3RmaWxl LmV4cCAkdGVzdGZpbGUgJHNyY2ZpbGUge2RlYnVnIGMrK31dIHsKKysgICAgcmV0dXJuIC0xCisr fQorKworKyNpZiB7IFtza2lwX3B5dGhvbl90ZXN0c10gfSB7IGNvbnRpbnVlIH0KKysKKytnZGJf dGVzdCAicHl0aG9uIGV4ZWNmaWxlKFwiJHNyY2Rpci8kc3ViZGlyL3ByMTA2NTkucHlcIikiICIi CisrZ2RiX3Rlc3QgInB5dGhvbiBnZGIucHJldHR5X3ByaW50ZXJzID0gXFtsb29rdXBfZnVuY3Rp b25cXSIgIiIKKysKKytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBmYWlsICJDYW4ndCBy dW4gdG8gbWFpbiIKKysgICAgcmV0dXJuCisrfQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJicmVhayJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImJyZWFr IgorKworK2dkYl90ZXN0ICJwIHRlc3QxIiAidmVjdG9yIG9mIGxlbmd0aCAyLCBjYXBhY2l0eSAy ID0uKiIKKysKKytnZGJfdGVzdCAicCB0ZXN0MiIgIj0gJG5sICB7JG5sICAgIHsuKiIKKysKKysj IENvbXBsZXRlIHJlc3VsdCBpczoKKysjCisrIyAoZ2RiKSBwIHRlc3QyCisrIyAkMiA9CisrIyAg IHsKKysjICAgICB7MCAgICAgIDEgICAgfQorKyMgICAgIHsyICAgICAgMyAgICB9CisrIyAgICAg ezQgICAgICA1ICAgIH0KKysjICB9CisrCisrCisrZ2RiX3Rlc3QgInAgdGVzdDMiICI9ICRubCAg eyRubCAgICB7JG5sICAgICAgey4qIgorKworKyMgQ29tcGxldGUgcmVzdWx0IGlzOgorKyMKKysj IChnZGIpIHAgdGVzdDMKKysjICQzID0KKysjICAgeworKyMgICAgIHsKKysjICAgICAgIHswICAg ICAgICAxICAgICAgICB9CisrIyAgICAgICB7MTAgICAgICAgIDExICAgICAgICB9CisrIyAgICAg ICB7MjAgICAgICAgIDIxICAgICAgICB9CisrIyAgICAgfQorKyMgICAgIHsKKysjICAgICAgIHsx MDAgICAgICAgIDEwMSAgICAgICAgfQorKyMgICAgICAgezExMCAgICAgICAgMTExICAgICAgICB9 CisrIyAgICAgICB7MTIwICAgICAgICAxMjEgICAgICAgIH0KKysjICAgICB9CisrIyAgICAgewor KyMgICAgICAgezIwMCAgICAgICAgMjAxICAgICAgICB9CisrIyAgICAgICB7MjEwICAgICAgICAy MTEgICAgICAgIH0KKysjICAgICAgIHsyMjAgICAgICAgIDIyMSAgICAgICAgfQorKyMgICAgIH0K KysjICAgICB7CisrIyAgICAgICB7MzAwICAgICAgICAzMDEgICAgICAgIH0KKysjICAgICAgIHsz MTAgICAgICAgIDMxMSAgICAgICAgfQorKyMgICAgICAgezMyMCAgICAgICAgMzIxICAgICAgICB9 CisrIyAgICAgfQorKyMgIH0KKysjIAorKworKworSW5kZXg6IGdkYi03LjEvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3ByMTA2NTkucHkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9wcjEwNjU5LnB5CTIwMTAtMDYtMzAgMTQ6MzQ6NDkuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDEwOSBAQAorKyMgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysj CisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KysKKytpbXBvcnQgZ2RiCisraW1wb3J0IGl0ZXJ0b29scworK2ltcG9ydCByZQorKworK3ZlY3Rv cl9zaWcgPSAnc3RkOjp2ZWN0b3InCisrdmVjdG9yX3JlZ2V4ID0gcmUuY29tcGlsZSgnXicgKyB2 ZWN0b3Jfc2lnICsgJzwuKj4kJykKKysKKytjbGFzcyBGYWtlVmVjdG9yUHJpbnRlcjoKKysgICAg IlByaW50IGEgc3RkOjp2ZWN0b3IiCisrCisrICAgIGNsYXNzIF9pdGVyYXRvcjoKKysgICAgICAg IGRlZiBfX2luaXRfXyAoc2VsZiwgc3RhcnQsIGZpbmlzaCk6CisrICAgICAgICAgICAgc2VsZi5p dGVtID0gc3RhcnQKKysgICAgICAgICAgICBzZWxmLmZpbmlzaCA9IGZpbmlzaAorKyAgICAgICAg ICAgIHNlbGYuY291bnQgPSAwCisrCisrICAgICAgICBkZWYgX19pdGVyX18oc2VsZik6CisrICAg ICAgICAgICAgcmV0dXJuIHNlbGYKKysKKysgICAgICAgIGRlZiBuZXh0KHNlbGYpOgorKyAgICAg ICAgICAgIGlmIHNlbGYuaXRlbSA9PSBzZWxmLmZpbmlzaDoKKysgICAgICAgICAgICAgICAgcmFp c2UgU3RvcEl0ZXJhdGlvbgorKyAgICAgICAgICAgIGNvdW50ID0gc2VsZi5jb3VudAorKyAgICAg ICAgICAgIHNlbGYuY291bnQgPSBzZWxmLmNvdW50ICsgMQorKyAgICAgICAgICAgIGVsdCA9IHNl bGYuaXRlbS5kZXJlZmVyZW5jZSgpCisrICAgICAgICAgICAgc2VsZi5pdGVtID0gc2VsZi5pdGVt ICsgMQorKyAgICAgICAgICAgIHJldHVybiAoJ1slZF0nICUgY291bnQsIGVsdCkKKysKKysgICAg ZGVmIF9faW5pdF9fKHNlbGYsIHR5cGVuYW1lLCB2YWwpOgorKyAgICAgICAgc2VsZi50eXBlbmFt ZSA9IHR5cGVuYW1lCisrICAgICAgICBzZWxmLnZhbCA9IHZhbAorKworKyAgICBkZWYgY2hpbGRy ZW4oc2VsZik6CisrICAgICAgICByZXR1cm4gc2VsZi5faXRlcmF0b3Ioc2VsZi52YWxbJ19NX2lt cGwnXVsnX01fc3RhcnQnXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZh bFsnX01faW1wbCddWydfTV9maW5pc2gnXSkKKysKKysgICAgZGVmIHRvX3N0cmluZyhzZWxmKToK KysgICAgICAgIHN0YXJ0ID0gc2VsZi52YWxbJ19NX2ltcGwnXVsnX01fc3RhcnQnXQorKyAgICAg ICAgZmluaXNoID0gc2VsZi52YWxbJ19NX2ltcGwnXVsnX01fZmluaXNoJ10KKysgICAgICAgIGVu ZCA9IHNlbGYudmFsWydfTV9pbXBsJ11bJ19NX2VuZF9vZl9zdG9yYWdlJ10KKysgICAgICAgIHJl dHVybiAoJ3N0ZDo6dmVjdG9yIG9mIGxlbmd0aCAlZCwgY2FwYWNpdHkgJWQnCisrICAgICAgICAg ICAgICAgICUgKGludCAoZmluaXNoIC0gc3RhcnQpLCBpbnQgKGVuZCAtIHN0YXJ0KSkpCisrCisr ICAgIGRlZiBkaXNwbGF5X2hpbnQoc2VsZik6CisrICAgICAgICBpdHlwZTAgID0gc2VsZi52YWwu dHlwZS50ZW1wbGF0ZV9hcmd1bWVudCgwKQorKyAgICAgICAgaXRhZyA9IGl0eXBlMC50YWcKKysg ICAgICAgIGlmIGl0YWcgYW5kIHJlLm1hdGNoKHZlY3Rvcl9yZWdleCwgaXRhZyk6CisrICAgICAg ICAgICAgcmMgPSAnbWF0cml4JworKyAgICAgICAgZWxzZToKKysgICAgICAgICAgICByYyA9ICdh cnJheScKKysgICAgICAgIHJldHVybiByYworKworK2RlZiByZWdpc3Rlcl9saWJzdGRjeHhfcHJp bnRlcnMgKG9iaik6CisrICAgICJSZWdpc3RlciBsaWJzdGRjKysgcHJldHR5LXByaW50ZXJzIHdp dGggb2JqZmlsZSBPYmouIgorKworKyAgICBpZiBvYmogPT0gTm9uZToKKysgICAgICAgIG9iaiA9 IGdkYgorKworKyAgICBvYmoucHJldHR5X3ByaW50ZXJzLmFwcGVuZCAobG9va3VwX2Z1bmN0aW9u KQorKworK2RlZiBsb29rdXBfZnVuY3Rpb24gKHZhbCk6CisrICAgICJMb29rLXVwIGFuZCByZXR1 cm4gYSBwcmV0dHktcHJpbnRlciB0aGF0IGNhbiBwcmludCB2YWwuIgorKworKyAgICAjIEdldCB0 aGUgdHlwZS4KKysgICAgdHlwZSA9IHZhbC50eXBlOworKworKyAgICAjIElmIGl0IHBvaW50cyB0 byBhIHJlZmVyZW5jZSwgZ2V0IHRoZSByZWZlcmVuY2UuCisrICAgIGlmIHR5cGUuY29kZSA9PSBn ZGIuVFlQRV9DT0RFX1JFRjoKKysgICAgICAgIHR5cGUgPSB0eXBlLnRhcmdldCAoKQorKworKyAg ICAjIEdldCB0aGUgdW5xdWFsaWZpZWQgdHlwZSwgc3RyaXBwZWQgb2YgdHlwZWRlZnMuCisrICAg IHR5cGUgPSB0eXBlLnVucXVhbGlmaWVkICgpLnN0cmlwX3R5cGVkZWZzICgpCisrCisrICAgICMg R2V0IHRoZSB0eXBlIG5hbWUuICAgIAorKyAgICB0eXBlbmFtZSA9IHR5cGUudGFnCisrICAgIGlm IHR5cGVuYW1lID09IE5vbmU6CisrICAgICAgICByZXR1cm4gTm9uZQorKworKyAgICAjIEl0ZXJh dGUgb3ZlciBsb2NhbCBkaWN0aW9uYXJ5IG9mIHR5cGVzIHRvIGRldGVybWluZQorKyAgICAjIGlm IGEgcHJpbnRlciBpcyByZWdpc3RlcmVkIGZvciB0aGF0IHR5cGUuICBSZXR1cm4gYW4KKysgICAg IyBpbnN0YW50aWF0aW9uIG9mIHRoZSBwcmludGVyIGlmIGZvdW5kLgorKyAgICBmb3IgZnVuY3Rp b24gaW4gZmFrZV9wcmV0dHlfcHJpbnRlcnNfZGljdDoKKysgICAgICAgIGlmIGZ1bmN0aW9uLnNl YXJjaCAodHlwZW5hbWUpOgorKyAgICAgICAgICAgIHJldHVybiBmYWtlX3ByZXR0eV9wcmludGVy c19kaWN0W2Z1bmN0aW9uXSAodmFsKQorKyAgICAgICAgCisrICAgICMgQ2Fubm90IGZpbmQgYSBw cmV0dHkgcHJpbnRlci4gIFJldHVybiBOb25lLgorKyAgICByZXR1cm4gTm9uZQorKworK2RlZiBi dWlsZF9saWJmYWtlY3h4X2RpY3Rpb25hcnkgKCk6CisrICAgIGZha2VfcHJldHR5X3ByaW50ZXJz X2RpY3RbdmVjdG9yX3JlZ2V4XSA9IGxhbWJkYSB2YWw6IEZha2VWZWN0b3JQcmludGVyKHZlY3Rv cl9zaWcsIHZhbCkKKysKKytmYWtlX3ByZXR0eV9wcmludGVyc19kaWN0ID0ge30KKysKKytidWls ZF9saWJmYWtlY3h4X2RpY3Rpb25hcnkgKCkKK0luZGV4OiBnZGItNy4xL2dkYi92YWxwcmludC5j Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuMS5vcmlnL2dkYi92YWxwcmludC5jCTIwMTAtMDYtMzAg MTM6NTE6MjYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvdmFscHJpbnQuYwkyMDEw LTA2LTMwIDE0OjM1OjQxLjAwMDAwMDAwMCArMDIwMAorQEAgLTgzLDcgKzgzLDggQEAgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgdXNlcl9wcmludF9vcAorICAgMSwJCQkJLyogc3RhdGljX2Zp ZWxkX3ByaW50ICovCisgICAxLAkJCQkvKiBwYXNjYWxfc3RhdGljX2ZpZWxkX3ByaW50ICovCisg ICAwLAkJCQkvKiByYXcgKi8KKy0gIDAJCQkJLyogc3VtbWFyeSAqLworKyAgMCwJCQkJLyogc3Vt bWFyeSAqLworKyAgMAkJCQkvKiBwcmV0dHlwcmludF9tYXRyaXggKi8KKyB9OworIAorIC8qIElu aXRpYWxpemUgKk9QVFMgdG8gYmUgYSBjb3B5IG9mIHRoZSB1c2VyIHByaW50IG9wdGlvbnMuICAq LwoKZGlmZiAtLWdpdCBhL2dkYi1iejU2Mjk3NS1zdGQtdGVybWluYXRlLWRvdWJsZS1mcmVlLnBh dGNoIGIvZ2RiLWJ6NTYyOTc1LXN0ZC10ZXJtaW5hdGUtZG91YmxlLWZyZWUucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU0YzU1MAotLS0gL2Rldi9udWxsCisrKyBi L2dkYi1iejU2Mjk3NS1zdGQtdGVybWluYXRlLWRvdWJsZS1mcmVlLnBhdGNoCkBAIC0wLDAgKzEs MTU5IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMi9tc2cw MDYyNS5odG1sCitTdWJqZWN0OiBSRkM6IGZpeCBidWcgd2l0aCBzdGQ6OnRlcm1pbmF0ZSBoYW5k bGVyCisKK0kgd291bGQgYXBwcmVjaWF0ZSBjb21tZW50cyBvbiB0aGlzIHBhdGNoLgorCitUaGlz IGNvbWVzIGZyb20gYW4gYXV0b21hdGljYWxseS1yZXBvcnRlZCBidWcgaW4gdGhlIFJlZCBIYXQg YnVnemlsbGE6CisKKyAgICBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dp P2lkPTU2Mjk3NQorCitjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgaW5zdGFsbHMgYSBtb21lbnRhcnkg YnJlYWtwb2ludCBvbiBzdGQ6OnRlcm1pbmF0ZSwKK2FuZCB0aGVuIGRlbGV0ZXMgaXQgbGF0ZXIu ICBIb3dldmVyLCB0aGlzIGNhbiBjYXVzZSBhIGRvdWJsZSBkZWxldGlvbiBvZgordGhlIGJyZWFr cG9pbnQuICBJbiB0aGUgYnVnLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIGRsb3Blbiwgd2hpY2gg Y2F1c2VzCitnZGIgdG8gZW50ZXIgc29saWJfYWRkLCB3aGljaCBjYWxscyBicmVha3BvaW50X3Jl X3NldCwgZGVsZXRpbmcgdGhlCittb21lbnRhcnkgYnJlYWtwb2ludC4KKworVGhpcyBmaXggd29y a3MgYnkgY3JlYXRpbmcgdGhlIG1vbWVudGFyeSBicmVha3BvaW50IHdpdGggYW4gaW50ZXJuYWwK K2JyZWFrcG9pbnQgbnVtYmVyLCBhbmQgdGhlbiB0cnlpbmcgdG8gZGVsZXRlIHRoZSBicmVha3Bv aW50IGJ5IG51bWJlci4KKworVGhpcyBidWcgZG9lcyBub3QgYWx3YXlzIG1hbmlmZXN0IGluIGEg Y3Jhc2guICBJbiBmYWN0LCBJIGNvdWxkbid0IG1ha2UKK2l0IGNyYXNoIGhlcmUsIGJ1dCBJIGNv dWxkIG9ic2VydmUgdGhlIHByb2JsZW0gdW5kZXIgdmFsZ3JpbmQuCisKK0J1aWx0IGFuZCByZWd0 ZXN0ZWQgb24geDg2LTY0IChjb21waWxlIGZhcm0pLiAgSSBhbHNvIG1hbnVhbGx5IHZlcmlmaWVk CitpdCB1c2luZyB2YWxncmluZC4KKworSSB0aGluayB0aGlzIHBhdGNoIGlzIG1pbGRseSB1Z2x5 LCBkdWUgdG8gdGhlIGludHJvZHVjdGlvbiBvZgorc2V0X21vbWVudGFyeV9icmVha3BvaW50X2F0 X3BjX3dpdGhfbnVtYmVyLiAgSG93ZXZlciwgaW4gdGhlIGFic2VuY2Ugb2YKK2NvbW1lbnRzLCBJ IHBsYW4gdG8gY2hlY2sgaXQgaW4gYWZ0ZXIgYSByZWFzb25hYmxlIHdhaXRpbmcgcGVyaW9kLgor CitUb20KKworMjAxMC0wMi0yNSAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgorCisJ KiBpbmZjYWxsLmMgKGRvX2RlbGV0ZV9icmVha3BvaW50X2J5X251bWJlcik6IE5ldyBmdW5jdGlv bi4KKwkoY2FsbF9mdW5jdGlvbl9ieV9oYW5kKTogUmVmZXIgdG8gbW9tZW50YXJ5IGJyZWFrcG9p bnQgYnkgbnVtYmVyLgorCSogYnJlYWtwb2ludC5oIChzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRf YXRfcGNfd2l0aF9udW1iZXIpOgorCURlY2xhcmUuCisJKiBicmVha3BvaW50LmMgKHNldF9tb21l bnRhcnlfYnJlYWtwb2ludF9hdF9wY193aXRoX251bWJlcik6IE5ldworCWZ1bmN0aW9uLgorCitJ bmRleDogZ2RiLTcuMC45MC4yMDEwMDMxMi9nZGIvYnJlYWtwb2ludC5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuMC45MC4yMDEwMDMxMi5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxMC0wMy0xMiAx NDo1NDoyNi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4wLjkwLjIwMTAwMzEyL2dkYi9icmVh a3BvaW50LmMJMjAxMC0wMy0xMiAxNDo1NDo1My4wMDAwMDAwMDAgKzAxMDAKK0BAIC02MTE1LDYg KzYxMTUsMjAgQEAgc2V0X21vbWVudGFyeV9icmVha3BvaW50X2F0X3BjIChzdHJ1Y3QgZworIAor ICAgcmV0dXJuIHNldF9tb21lbnRhcnlfYnJlYWtwb2ludCAoZ2RiYXJjaCwgc2FsLCBudWxsX2Zy YW1lX2lkLCB0eXBlKTsKKyB9CisrCisrLyogTGlrZSBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRf YXRfcGMsIGJ1dCBlbnN1cmUgdGhhdCB0aGUgbmV3CisrICAgYnJlYWtwb2ludCBoYXMgYSBudW1i ZXIuICAqLworKworK3N0cnVjdCBicmVha3BvaW50ICoKKytzZXRfbW9tZW50YXJ5X2JyZWFrcG9p bnRfYXRfcGNfd2l0aF9udW1iZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorKwkJCQkJICAg IENPUkVfQUREUiBwYywKKysJCQkJCSAgICBlbnVtIGJwdHlwZSB0eXBlKQorK3sKKysgIHN0cnVj dCBicmVha3BvaW50ICpyZXN1bHQgPSBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRfYXRfcGMgKGdk YmFyY2gsIHBjLAorKwkJCQkJCQkgICAgICB0eXBlKTsKKysgIHJlc3VsdC0+bnVtYmVyID0gaW50 ZXJuYWxfYnJlYWtwb2ludF9udW1iZXItLTsKKysgIHJldHVybiByZXN1bHQ7CisrfQorIAwKKyAK KyAvKiBUZWxsIHRoZSB1c2VyIHdlIGhhdmUganVzdCBzZXQgYSBicmVha3BvaW50IEIuICAqLwor SW5kZXg6IGdkYi03LjAuOTAuMjAxMDAzMTIvZ2RiL2JyZWFrcG9pbnQuaAorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjAuOTAuMjAxMDAzMTIub3JpZy9nZGIvYnJlYWtwb2ludC5oCTIwMTAtMDMtMTIg MTQ6NTQ6MjYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMxMi9nZGIvYnJl YWtwb2ludC5oCTIwMTAtMDMtMTIgMTQ6NTQ6NTMuMDAwMDAwMDAwICswMTAwCitAQCAtNzc0LDYg Kzc3NCw5IEBAIGV4dGVybiBzdHJ1Y3QgYnJlYWtwb2ludCAqc2V0X21vbWVudGFyeV8KKyBleHRl cm4gc3RydWN0IGJyZWFrcG9pbnQgKnNldF9tb21lbnRhcnlfYnJlYWtwb2ludF9hdF9wYworICAg KHN0cnVjdCBnZGJhcmNoICosIENPUkVfQUREUiBwYywgZW51bSBicHR5cGUgdHlwZSk7CisgCisr ZXh0ZXJuIHN0cnVjdCBicmVha3BvaW50ICpzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRfYXRfcGNf d2l0aF9udW1iZXIKKysgIChzdHJ1Y3QgZ2RiYXJjaCAqLCBDT1JFX0FERFIgcGMsIGVudW0gYnB0 eXBlIHR5cGUpOworKworIGV4dGVybiBzdHJ1Y3QgYnJlYWtwb2ludCAqY2xvbmVfbW9tZW50YXJ5 X2JyZWFrcG9pbnQgKHN0cnVjdCBicmVha3BvaW50ICpicGt0KTsKKyAKKyBleHRlcm4gdm9pZCBz ZXRfaWdub3JlX2NvdW50IChpbnQsIGludCwgaW50KTsKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAw MzEyL2dkYi9pbmZjYWxsLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4wLjkwLjIwMTAwMzEyLm9y aWcvZ2RiL2luZmNhbGwuYwkyMDEwLTAzLTEyIDE0OjU0OjI2LjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjAuOTAuMjAxMDAzMTIvZ2RiL2luZmNhbGwuYwkyMDEwLTAzLTEyIDE0OjU1OjE5LjAw MDAwMDAwMCArMDEwMAorQEAgLTQxMCw2ICs0MTAsMTggQEAgcnVuX2luZmVyaW9yX2NhbGwgKHN0 cnVjdCB0aHJlYWRfaW5mbyAqYworICAgcmV0dXJuIGU7CisgfQorIAorKy8qIEEgY2xlYW51cCBm dW5jdGlvbiB0aGF0IGRlbGV0ZXMgYSBicmVha3BvaW50LCBpZiBpdCBzdGlsbCBleGlzdHMsCisr ICAgZ2l2ZW4gdGhlIGJyZWFrcG9pbnQncyBudW1iZXIuICAqLworKworK3N0YXRpYyB2b2lkCisr ZG9fZGVsZXRlX2JyZWFrcG9pbnRfYnlfbnVtYmVyICh2b2lkICphcmcpCisreworKyAgaW50ICpu dW0gPSBhcmc7CisrICBzdHJ1Y3QgYnJlYWtwb2ludCAqYnAgPSBnZXRfYnJlYWtwb2ludCAoKm51 bSk7CisrICBpZiAoYnApCisrICAgIGRlbGV0ZV9icmVha3BvaW50IChicCk7CisrfQorKworIC8q IEFsbCB0aGlzIHN0dWZmIHdpdGggYSBkdW1teSBmcmFtZSBtYXkgc2VlbSB1bm5lY2Vzc2FyaWx5 IGNvbXBsaWNhdGVkCisgICAgKHdoeSBub3QganVzdCBzYXZlIHJlZ2lzdGVycyBpbiBHREI/KS4g IFRoZSBwdXJwb3NlIG9mIHB1c2hpbmcgYSBkdW1teQorICAgIGZyYW1lIHdoaWNoIGxvb2tzIGp1 c3QgbGlrZSBhIHJlYWwgZnJhbWUgaXMgc28gdGhhdCBpZiB5b3UgY2FsbCBhCitAQCAtNDQ3LDcg KzQ1OSw4IEBAIGNhbGxfZnVuY3Rpb25fYnlfaGFuZCAoc3RydWN0IHZhbHVlICpmdW4KKyAgIHN0 cnVjdCBjbGVhbnVwICphcmdzX2NsZWFudXA7CisgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWU7 CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKKy0gIHN0cnVjdCBicmVha3BvaW50ICp0ZXJt aW5hdGVfYnAgPSBOVUxMOworKyAgaW50IHRlcm1pbmF0ZV9icF9udW0gPSAwOworKyAgQ09SRV9B RERSIHRlcm1pbmF0ZV9icF9hZGRyID0gMDsKKyAgIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqdG07 CisgICBzdHJ1Y3QgY2xlYW51cCAqdGVybWluYXRlX2JwX2NsZWFudXAgPSBOVUxMOworICAgcHRp ZF90IGNhbGxfdGhyZWFkX3B0aWQ7CitAQCAtNzY1LDggKzc3OCwxMyBAQCBjYWxsX2Z1bmN0aW9u X2J5X2hhbmQgKHN0cnVjdCB2YWx1ZSAqZnVuCisgICAgICAgIHN0cnVjdCBtaW5pbWFsX3N5bWJv bCAqdG0gPSBsb29rdXBfbWluaW1hbF9zeW1ib2wgICgic3RkOjp0ZXJtaW5hdGUoKSIsCisgCQkJ CQkJCSAgIE5VTEwsIE5VTEwpOworICAgICAgICBpZiAodG0gIT0gTlVMTCkKKy0JICAgdGVybWlu YXRlX2JwID0gc2V0X21vbWVudGFyeV9icmVha3BvaW50X2F0X3BjCisrCSB7CisrCSAgIHN0cnVj dCBicmVha3BvaW50ICpicDsKKysJICAgYnAgPSBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRfYXRf cGNfd2l0aF9udW1iZXIKKyAJICAgICAoZ2RiYXJjaCwgU1lNQk9MX1ZBTFVFX0FERFJFU1MgKHRt KSwgIGJwX2JyZWFrcG9pbnQpOworKwkgICB0ZXJtaW5hdGVfYnBfbnVtID0gYnAtPm51bWJlcjsK KysJICAgdGVybWluYXRlX2JwX2FkZHIgPSBicC0+bG9jLT5hZGRyZXNzOworKwkgfQorICAgICAg fQorIAorICAgLyogRXZlcnl0aGluZydzIHJlYWR5LCBwdXNoIGFsbCB0aGUgaW5mbyBuZWVkZWQg dG8gcmVzdG9yZSB0aGUKK0BAIC03ODAsOCArNzk4LDkgQEAgY2FsbF9mdW5jdGlvbl9ieV9oYW5k IChzdHJ1Y3QgdmFsdWUgKmZ1bgorICAgZGlzY2FyZF9jbGVhbnVwcyAoaW5mX3N0YXR1c19jbGVh bnVwKTsKKyAKKyAgIC8qIFJlZ2lzdGVyIGEgY2xlYW4tdXAgZm9yIHVud2luZF9vbl90ZXJtaW5h dGluZ19leGNlcHRpb25fYnJlYWtwb2ludC4gICovCistICBpZiAodGVybWluYXRlX2JwKQorLSAg ICB0ZXJtaW5hdGVfYnBfY2xlYW51cCA9IG1ha2VfY2xlYW51cF9kZWxldGVfYnJlYWtwb2ludCAo dGVybWluYXRlX2JwKTsKKysgIGlmICh0ZXJtaW5hdGVfYnBfbnVtICE9IDApCisrICAgIHRlcm1p bmF0ZV9icF9jbGVhbnVwID0gbWFrZV9jbGVhbnVwIChkb19kZWxldGVfYnJlYWtwb2ludF9ieV9u dW1iZXIsCisrCQkJCQkgJnRlcm1pbmF0ZV9icF9udW0pOworIAorICAgLyogLSBTTklQIC0gU05J UCAtIFNOSVAgLSBTTklQIC0gU05JUCAtIFNOSVAgLSBTTklQIC0gU05JUCAtIFNOSVAgLQorICAg ICAgSWYgeW91J3JlIGxvb2tpbmcgdG8gaW1wbGVtZW50IGFzeW5jaHJvbm91cyBkdW1teS1mcmFt ZXMsIHRoZW4KK0BAIC05NDcsOSArOTY2LDkgQEAgV2hlbiB0aGUgZnVuY3Rpb24gaXMgZG9uZSBl eGVjdXRpbmcsIEdEQgorIAkJIGluIGFuIGluZmVyaW9yIGZ1bmN0aW9uIGNhbGwuIFJld2luZCwg YW5kIHdhcm4gdGhlCisgCQkgdXNlci4gICovCisgCistCSAgICAgIGlmICh0ZXJtaW5hdGVfYnAg IT0gTlVMTAorKwkgICAgICBpZiAodGVybWluYXRlX2JwX251bSAhPSAwCisgCQkgICYmIChpbmZl cmlvcl90aHJlYWQgKCktPnN0b3BfYnBzdGF0LT5icmVha3BvaW50X2F0LT5hZGRyZXNzCistCQkg ICAgICA9PSB0ZXJtaW5hdGVfYnAtPmxvYy0+YWRkcmVzcykpCisrCQkgICAgICA9PSB0ZXJtaW5h dGVfYnBfYWRkcikpCisgCQl7CisgCQkgIC8qIFdlIG11c3QgZ2V0IGJhY2sgdG8gdGhlIGZyYW1l IHdlIHdlcmUgYmVmb3JlIHRoZQorIAkJICAgICBkdW1teSBjYWxsLiAgKi8KK0BAIC05OTgsNyAr MTAxNyw3IEBAIFdoZW4gdGhlIGZ1bmN0aW9uIGlzIGRvbmUgZXhlY3V0aW5nLCBHREIKKyAKKyAg IC8qIElmIHdlIGdldCBoZXJlIGFuZCB0aGUgc3RkOjp0ZXJtaW5hdGUoKSBicmVha3BvaW50IGhh cyBiZWVuIHNldCwKKyAgICAgIGl0IGhhcyB0byBiZSBjbGVhbmVkIG1hbnVhbGx5LiAgKi8KKy0g IGlmICh0ZXJtaW5hdGVfYnApCisrICBpZiAodGVybWluYXRlX2JwX251bSAhPSAwKQorICAgICBk b19jbGVhbnVwcyAodGVybWluYXRlX2JwX2NsZWFudXApOworIAorICAgLyogSWYgd2UgZ2V0IGhl cmUgdGhlIGNhbGxlZCBGVU5DVElPTiByYW4gdG8gY29tcGxldGlvbiwKCmRpZmYgLS1naXQgYS9n ZGItYno1NzA2MzUtcHJldHR5cHJpbnQtZG9jMS5wYXRjaCBiL2dkYi1iejU3MDYzNS1wcmV0dHlw cmludC1kb2MxLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmOTEw ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1NzA2MzUtcHJldHR5cHJpbnQtZG9jMS5wYXRj aApAQCAtMCwwICsxLDQwIEBACitSRkE6IHVwZGF0ZSBgcHJpbnQnIGRvY3MKK2h0dHA6Ly9zb3Vy Y2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAwMjM2Lmh0bWwKK2h0dHA6Ly9z b3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTAtMDMvbXNnMDAwNDguaHRtbAorCisjIyMgc3Jj L2dkYi9kb2MvQ2hhbmdlTG9nCTIwMTAvMDMvMDEgMTc6MTk6MjIJMS4xMDE3CisjIyMgc3JjL2dk Yi9kb2MvQ2hhbmdlTG9nCTIwMTAvMDMvMDUgMjA6MDE6MjEJMS4xMDE4CisjIyAtMSwzICsxLDgg QEAKKysyMDEwLTAzLTA1ICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CisrCisrCSog Z2RiLnRleGluZm8gKERhdGEpOiBMaW5rIHRvIHByZXR0eS1wcmludGluZy4KKysJKE91dHB1dCBG b3JtYXRzKTogTGlrZXdpc2UuICBDb3JyZWN0IHRleHQuCisrCisgMjAxMC0wMy0wMSAgRGFuaWVs IEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KKyAKKyAJKiBnZGIudGV4aW5mbyAo VHlwZXMpOiBEZXNjcmliZSA8c3RydWN0PiBhbmQgPGZsYWdzPi4KKy0tLSBzcmMvZ2RiL2RvYy9n ZGIudGV4aW5mbwkyMDEwLzAzLzAxIDE3OjE5OjIyCTEuNjc2CisrKysgc3JjL2dkYi9kb2MvZ2Ri LnRleGluZm8JMjAxMC8wMy8wNSAyMDowMToyMQkxLjY3NworQEAgLTY2NjEsNyArNjY2MSw4IEBA CisgY29tbWFuZCAoYWJicmV2aWF0ZWQgQGNvZGV7cH0pLCBvciBpdHMgc3lub255bSBAY29kZXtp bnNwZWN0fS4gIEl0CisgZXZhbHVhdGVzIGFuZCBwcmludHMgdGhlIHZhbHVlIG9mIGFuIGV4cHJl c3Npb24gb2YgdGhlIGxhbmd1YWdlIHlvdXIKKyBwcm9ncmFtIGlzIHdyaXR0ZW4gaW4gKEBweHJl ZntMYW5ndWFnZXMsICxVc2luZyBAdmFsdWV7R0RCTn0gd2l0aAorLURpZmZlcmVudCBMYW5ndWFn ZXN9KS4KKytEaWZmZXJlbnQgTGFuZ3VhZ2VzfSkuICBJdCBtYXkgYWxzbyBwcmludCB0aGUgZXhw cmVzc2lvbiB1c2luZyBhCisrUHl0aG9uLWJhc2VkIHByZXR0eS1wcmludGVyIChAcHhyZWZ7UHJl dHR5IFByaW50aW5nfSkuCisgCisgQHRhYmxlIEBjb2RlCisgQGl0ZW0gcHJpbnQgQHZhcntleHBy fQorQEAgLTcxNTksOCArNzE2MCwxMCBAQAorIEBpdGVtIHIKKyBAY2luZGV4IHJhdyBwcmludGlu ZworIFByaW50IHVzaW5nIHRoZSBAc2FtcHtyYXd9IGZvcm1hdHRpbmcuICBCeSBkZWZhdWx0LCBA dmFsdWV7R0RCTn0gd2lsbAorLXVzZSBhIHR5cGUtc3BlY2lmaWMgcHJldHR5LXByaW50ZXIuICBU aGUgQHNhbXB7cn0gZm9ybWF0IGJ5cGFzc2VzIGFueQorLXByZXR0eS1wcmludGVyIHdoaWNoIG1p Z2h0IGV4aXN0IGZvciB0aGUgdmFsdWUncyB0eXBlLgorK3VzZSBhIFB5dGhvbi1iYXNlZCBwcmV0 dHktcHJpbnRlciwgaWYgb25lIGlzIGF2YWlsYWJsZSAoQHB4cmVme1ByZXR0eQorK1ByaW50aW5n fSkuICBUaGlzIHR5cGljYWxseSByZXN1bHRzIGluIGEgaGlnaGVyLWxldmVsIGRpc3BsYXkgb2Yg dGhlCisrdmFsdWUncyBjb250ZW50cy4gIFRoZSBAc2FtcHtyfSBmb3JtYXQgYnlwYXNzZXMgYW55 IFB5dGhvbgorK3ByZXR0eS1wcmludGVyIHdoaWNoIG1pZ2h0IGV4aXN0LgorIEBlbmQgdGFibGUK KyAKKyBGb3IgZXhhbXBsZSwgdG8gcHJpbnQgdGhlIHByb2dyYW0gY291bnRlciBpbiBoZXggKEBw eHJlZntSZWdpc3RlcnN9KSwgdHlwZQoKZGlmZiAtLWdpdCBhL2dkYi1iejU3MDYzNS1wcmV0dHlw cmludC1kb2MyLnBhdGNoIGIvZ2RiLWJ6NTcwNjM1LXByZXR0eXByaW50LWRvYzIucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE3NmZlMQotLS0gL2Rldi9udWxsCisr KyBiL2dkYi1iejU3MDYzNS1wcmV0dHlwcmludC1kb2MyLnBhdGNoCkBAIC0wLDAgKzEsMTgyIEBA CitSZTogW3BhdGNoXSBkb2MtcHl0aG9uOiBQcmV0dHkgUHJpbnRpbmcgc3BsaXQgdXNlciAvIGRl dmVsb3BlcgoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDQvbXNn MDA3NTcuaHRtbAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMC0wNC9tc2cw MDIyMS5odG1sCisKK1sgQmFja3BvcnRlZCBmb3IgRmVkb3JhLiAgXQorCisjIyMgc3JjL2dkYi9k b2MvQ2hhbmdlTG9nCTIwMTAvMDQvMjIgMDQ6MDk6MjUJMS4xMDUzCisjIyMgc3JjL2dkYi9kb2Mv Q2hhbmdlTG9nCTIwMTAvMDQvMjIgMTY6MzI6NDMJMS4xMDU0CisjIyAtMSwzICsxLDE0IEBACisr MjAxMC0wNC0yMiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgor KworKwkqIGdkYi50ZXhpbmZvIChEYXRhKTogTmV3IEBtZW51IHJlZmVyZW5jZSB0byBQcmV0dHkg UHJpbnRpbmcuCisrCShQeXRob24gQVBJKTogQ2hhbmdlIHRoZSByZWZlcmVuY2UgdG8gUHJldHR5 IFByaW50aW5nIEFQSS4KKysJKFByZXR0eSBQcmludGluZyk6IE1vdmUgdGhlIHVzZXIgcGFydCB1 bmRlciB0aGUgRGF0YSBub2RlLiAgUmVmb3JtYXQKKysJdGhlIHNhbXBsZSBvdXRwdXQgdG8gNzIg Y29sdW1ucy4gIENyZWF0ZSBhIG5ldyByZWZlcmVuY2UgdG8gUHJldHR5CisrCVByaW50aW5nIEFQ SS4gIFJlbmFtZSB0aGUgQVBJIHBhcnQgLi4uCisrCShQcmV0dHkgUHJpbnRpbmcgQVBJKTogVG8g YSBuZXcgbm9kZSBuYW1lLgorKwkoU2VsZWN0aW5nIFByZXR0eS1QcmludGVycywgUHJvZ3NwYWNl cyBJbiBQeXRob24sIE9iamZpbGVzIEluIFB5dGhvbikKKysJKEdEQi9NSSBWYXJpYWJsZSBPYmpl Y3RzKTogQ2hhbmdlIHJlZmVyZW5jZXMgdG8gUHJldHR5IFByaW50aW5nIEFQSS4KKysKKyAyMDEw LTA0LTIxICBTdGFuIFNoZWJzICA8c3RhbkBjb2Rlc291cmNlcnkuY29tPgorIAorIAkqIGdkYi50 ZXhpbmZvIChUcmFjZXBvaW50IEFjdGlvbnMpOiBNZW50aW9uIHN5bm9ueW15IG9mIGFjdGlvbnMK Ky0tLSBnZGItNy4xL2dkYi9kb2MvZ2RiLnRleGluZm8ub3JpZwkyMDEwLTA0LTIyIDE5OjA4OjMw LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEwLTA0 LTIyIDE5OjEwOjQxLjAwMDAwMDAwMCArMDIwMAorQEAgLTY3MjcsNiArNjcyNyw3IEBAIFRhYmxl fS4KKyAqIE1lbW9yeTo6ICAgICAgICAgICAgICAgICAgICAgIEV4YW1pbmluZyBtZW1vcnkKKyAq IEF1dG8gRGlzcGxheTo6ICAgICAgICAgICAgICAgIEF1dG9tYXRpYyBkaXNwbGF5CisgKiBQcmlu dCBTZXR0aW5nczo6ICAgICAgICAgICAgICBQcmludCBzZXR0aW5ncworKyogUHJldHR5IFByaW50 aW5nOjogICAgICAgICAgICAgUHl0aG9uIHByZXR0eSBwcmludGluZworICogVmFsdWUgSGlzdG9y eTo6ICAgICAgICAgICAgICAgVmFsdWUgaGlzdG9yeQorICogQ29udmVuaWVuY2UgVmFyczo6ICAg ICAgICAgICAgQ29udmVuaWVuY2UgdmFyaWFibGVzCisgKiBSZWdpc3RlcnM6OiAgICAgICAgICAg ICAgICAgICBSZWdpc3RlcnMKK0BAIC03ODk3LDYgKzc4OTgsNDIgQEAgRG8gbm90IHByZXR0eSBw cmludCBDQHR7Kyt9IHZpcnR1YWwgZnVuYworIFNob3cgd2hldGhlciBDQHR7Kyt9IHZpcnR1YWwg ZnVuY3Rpb24gdGFibGVzIGFyZSBwcmV0dHkgcHJpbnRlZCwgb3Igbm90LgorIEBlbmQgdGFibGUK KyAKKytAbm9kZSBQcmV0dHkgUHJpbnRpbmcKKytAc2VjdGlvbiBQcmV0dHkgUHJpbnRpbmcKKysK KytAdmFsdWV7R0RCTn0gcHJvdmlkZXMgYSBtZWNoYW5pc20gdG8gYWxsb3cgcHJldHR5LXByaW50 aW5nIG9mIHZhbHVlcyB1c2luZworK1B5dGhvbiBjb2RlLiAgSXQgZ3JlYXRseSBzaW1wbGlmaWVz IHRoZSBkaXNwbGF5IG9mIGNvbXBsZXggb2JqZWN0cy4gIFRoaXMKKyttZWNoYW5pc20gd29ya3Mg Zm9yIGJvdGggTUkgYW5kIHRoZSBDTEkuCisrCisrRm9yIGV4YW1wbGUsIGhlcmUgaXMgaG93IGEg Q0B0eysrfSBAY29kZXtzdGQ6OnN0cmluZ30gbG9va3Mgd2l0aG91dCBhCisrcHJldHR5LXByaW50 ZXI6CisrCisrQHNtYWxsZXhhbXBsZQorKyhAdmFsdWV7R0RCUH0pIHByaW50IHMKKyskMSA9IEB7 CisrICBzdGF0aWMgbnBvcyA9IDQyOTQ5NjcyOTUsIAorKyAgX01fZGF0YXBsdXMgPSBAeworKyAg ICA8c3RkOjphbGxvY2F0b3I8Y2hhcj4+ID0gQHsKKysgICAgICA8X19nbnVfY3h4OjpuZXdfYWxs b2NhdG9yPGNoYXI+PiA9IEB7CisrICAgICAgICA8Tm8gZGF0YSBmaWVsZHM+QH0sIDxObyBkYXRh IGZpZWxkcz4KKysgICAgICBAfSwKKysgICAgbWVtYmVycyBvZiBzdGQ6OmJhc2ljX3N0cmluZzxj aGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LAorKyAgICAgIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ ID46Ol9BbGxvY19oaWRlcjoKKysgICAgX01fcCA9IDB4ODA0YTAxNCAiYWJjZCIKKysgIEB9Cisr QH0KKytAZW5kIHNtYWxsZXhhbXBsZQorKworK1dpdGggYSBwcmV0dHktcHJpbnRlciBmb3IgQGNv ZGV7c3RkOjpzdHJpbmd9IG9ubHkgdGhlIGNvbnRlbnRzIGFyZSBwcmludGVkOgorKworK0BzbWFs bGV4YW1wbGUKKysoQHZhbHVle0dEQlB9KSBwcmludCBzCisrJDIgPSAiYWJjZCIKKytAZW5kIHNt YWxsZXhhbXBsZQorKworK0ZvciBpbXBsZW1lbnRpbmcgcHJldHR5IHByaW50ZXJzIGZvciBuZXcg dHlwZXMgeW91IHNob3VsZCByZWFkIHRoZSBQeXRob24gQVBJCisrZGV0YWlscyAoQHB4cmVme1By ZXR0eSBQcmludGluZyBBUEl9KS4KKysKKyBAbm9kZSBWYWx1ZSBIaXN0b3J5CisgQHNlY3Rpb24g VmFsdWUgSGlzdG9yeQorIAorQEAgLTE5NjA4LDggKzE5NjQ1LDggQEAgc2l0dWF0aW9uLCBhIFB5 dGhvbiBAY29kZXtLZXlib2FyZEludGVycgorICogRXhjZXB0aW9uIEhhbmRsaW5nOjoKKyAqIEF1 dG8tbG9hZGluZzo6ICAgICAgICAgICAgICAgIEF1dG9tYXRpY2FsbHkgbG9hZGluZyBQeXRob24g Y29kZS4KKyAqIFZhbHVlcyBGcm9tIEluZmVyaW9yOjoJUHl0aG9uIHJlcHJlc2VudGF0aW9uIG9m IHZhbHVlcy4KKy0qIFR5cGVzIEluIFB5dGhvbjo6CQlQeXRob24gcmVwcmVzZW50YXRpb24gb2Yg dHlwZXMuCistKiBQcmV0dHkgUHJpbnRpbmc6OgkJUHJldHR5LXByaW50aW5nIHZhbHVlcy4KKysq IFR5cGVzIEluIFB5dGhvbjo6ICAgICAgICAgICAgIFB5dGhvbiByZXByZXNlbnRhdGlvbiBvZiB0 eXBlcy4KKysqIFByZXR0eSBQcmludGluZyBBUEk6OiAgICAgICAgIFByZXR0eS1wcmludGluZyB2 YWx1ZXMuCisgKiBTZWxlY3RpbmcgUHJldHR5LVByaW50ZXJzOjogICBIb3cgR0RCIGNob29zZXMg YSBwcmV0dHktcHJpbnRlci4KKyAqIEluZmVyaW9ycyBJbiBQeXRob246OgkJUHl0aG9uIHJlcHJl c2VudGF0aW9uIG9mIGluZmVyaW9ycyAocHJvY2Vzc2VzKQorICogVGhyZWFkcyBJbiBQeXRob246 OiAgICAgICAgICAgQWNjZXNzaW5nIGluZmVyaW9yIHRocmVhZHMgZnJvbSBQeXRob24uCitAQCAt MjAyNDEsMzcgKzIwMjc4LDEwIEBAIEEgZnVuY3Rpb24gaW50ZXJuYWwgdG8gQHZhbHVle0dEQk59 LiAgVGgKKyBjb252ZW5pZW5jZSBmdW5jdGlvbnMuCisgQGVuZCB0YWJsZQorIAorLUBub2RlIFBy ZXR0eSBQcmludGluZworLUBzdWJzdWJzZWN0aW9uIFByZXR0eSBQcmludGluZworLQorLUB2YWx1 ZXtHREJOfSBwcm92aWRlcyBhIG1lY2hhbmlzbSB0byBhbGxvdyBwcmV0dHktcHJpbnRpbmcgb2Yg dmFsdWVzCistdXNpbmcgUHl0aG9uIGNvZGUuICBUaGUgcHJldHR5LXByaW50ZXIgQVBJIGFsbG93 cyBhcHBsaWNhdGlvbi1zcGVjaWZpYworLWNvZGUgdG8gZ3JlYXRseSBzaW1wbGlmeSB0aGUgZGlz cGxheSBvZiBjb21wbGV4IG9iamVjdHMuICBUaGlzCistbWVjaGFuaXNtIHdvcmtzIGZvciBib3Ro IE1JIGFuZCB0aGUgQ0xJLgorLQorLUZvciBleGFtcGxlLCBoZXJlIGlzIGhvdyBhIENAdHsrK30g QGNvZGV7c3RkOjpzdHJpbmd9IGxvb2tzIHdpdGhvdXQgYQorLXByZXR0eS1wcmludGVyOgorK0Bu b2RlIFByZXR0eSBQcmludGluZyBBUEkKKytAc3Vic3Vic2VjdGlvbiBQcmV0dHkgUHJpbnRpbmcg QVBJCisgCistQHNtYWxsZXhhbXBsZQorLShAdmFsdWV7R0RCUH0pIHByaW50IHMKKy0kMSA9IEB7 CistICBzdGF0aWMgbnBvcyA9IDQyOTQ5NjcyOTUsIAorLSAgX01fZGF0YXBsdXMgPSBAeworLSAg ICA8c3RkOjphbGxvY2F0b3I8Y2hhcj4+ID0gQHsKKy0gICAgICA8X19nbnVfY3h4OjpuZXdfYWxs b2NhdG9yPGNoYXI+PiA9IEB7PE5vIGRhdGEgZmllbGRzPkB9LCA8Tm8gZGF0YSBmaWVsZHM+QH0s IAorLSAgICBtZW1iZXJzIG9mIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFp dHM8Y2hhcj4sIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9BbGxvY19oaWRlcjogCistICAgIF9N X3AgPSAweDgwNGEwMTQgImFiY2QiCistICBAfQorLUB9CistQGVuZCBzbWFsbGV4YW1wbGUKKy0K Ky1BZnRlciBhIHByZXR0eS1wcmludGVyIGZvciBAY29kZXtzdGQ6OnN0cmluZ30gaGFzIGJlZW4g aW5zdGFsbGVkLCBvbmx5CistdGhlIGNvbnRlbnRzIGFyZSBwcmludGVkOgorLQorLUBzbWFsbGV4 YW1wbGUKKy0oQHZhbHVle0dEQlB9KSBwcmludCBzCistJDIgPSAiYWJjZCIKKy1AZW5kIHNtYWxs ZXhhbXBsZQorK0FuIGV4YW1wbGUgb3V0cHV0IGlzIHByb3ZpZGVkIChAcHhyZWZ7UHJldHR5IFBy aW50aW5nfSkuCisgCisgQSBwcmV0dHktcHJpbnRlciBpcyBqdXN0IGFuIG9iamVjdCB0aGF0IGhv bGRzIGEgdmFsdWUgYW5kIGltcGxlbWVudHMgYQorIHNwZWNpZmljIGludGVyZmFjZSwgZGVmaW5l ZCBoZXJlLgorQEAgLTIwMzU5LDcgKzIwMzY5LDcgQEAgYXR0cmlidXRlLgorIAorIEEgZnVuY3Rp b24gb24gb25lIG9mIHRoZXNlIGxpc3RzIGlzIHBhc3NlZCBhIHNpbmdsZSBAY29kZXtnZGIuVmFs dWV9CisgYXJndW1lbnQgYW5kIHNob3VsZCByZXR1cm4gYSBwcmV0dHktcHJpbnRlciBvYmplY3Qg Y29uZm9ybWluZyB0byB0aGUKKy1pbnRlcmZhY2UgZGVmaW5pdGlvbiBhYm92ZSAoQHB4cmVme1By ZXR0eSBQcmludGluZ30pLiAgSWYgYSBmdW5jdGlvbgorK2ludGVyZmFjZSBkZWZpbml0aW9uIGFi b3ZlIChAcHhyZWZ7UHJldHR5IFByaW50aW5nIEFQSX0pLiAgSWYgYSBmdW5jdGlvbgorIGNhbm5v dCBjcmVhdGUgYSBwcmV0dHktcHJpbnRlciBmb3IgdGhlIHZhbHVlLCBpdCBzaG91bGQgcmV0dXJu CisgQGNvZGV7Tm9uZX0uCisgCitAQCAtMjA0MzYsNyArMjA0NDYsNyBAQCBwcmludGVycyB3aXRo IGEgc3BlY2lmaWMgb2JqZmlsZSwgQHZhbHVlCisgcHJpbnRlcnMgZm9yIHRoZSBzcGVjaWZpYyB2 ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5IHVzZWQgYnkgZWFjaAorIGluZmVyaW9yLgorIAorLVRvIGNv bnRpbnVlIHRoZSBAY29kZXtzdGQ6OnN0cmluZ30gZXhhbXBsZSAoQHB4cmVme1ByZXR0eSBQcmlu dGluZ30pLAorK1RvIGNvbnRpbnVlIHRoZSBAY29kZXtzdGQ6OnN0cmluZ30gZXhhbXBsZSAoQHB4 cmVme1ByZXR0eSBQcmludGluZyBBUEl9KSwKKyB0aGlzIGNvZGUgbWlnaHQgYXBwZWFyIGluIEBj b2Rle2dkYi5saWJzdGRjeHgudjZ9OgorIAorIEBzbWFsbGV4YW1wbGUKK0BAIC0yMTA0OCw3ICsy MTA1OCw3IEBAIFRoZSBAY29kZXtwcmV0dHlfcHJpbnRlcnN9IGF0dHJpYnV0ZSBpcyAKKyB1c2Vk IHRvIGxvb2sgdXAgcHJldHR5LXByaW50ZXJzLiAgQSBAY29kZXtWYWx1ZX0gaXMgcGFzc2VkIHRv IGVhY2gKKyBmdW5jdGlvbiBpbiBvcmRlcjsgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgQGNvZGV7 Tm9uZX0sIHRoZW4gdGhlCisgc2VhcmNoIGNvbnRpbnVlcy4gIE90aGVyd2lzZSwgdGhlIHJldHVy biB2YWx1ZSBzaG91bGQgYmUgYW4gb2JqZWN0Cistd2hpY2ggaXMgdXNlZCB0byBmb3JtYXQgdGhl IHZhbHVlLiAgQHhyZWZ7UHJldHR5IFByaW50aW5nfSwgZm9yIG1vcmUKKyt3aGljaCBpcyB1c2Vk IHRvIGZvcm1hdCB0aGUgdmFsdWUuICBAeHJlZntQcmV0dHkgUHJpbnRpbmcgQVBJfSwgZm9yIG1v cmUKKyBpbmZvcm1hdGlvbi4KKyBAZW5kIGRlZml2YXIKKyAKK0BAIC0yNDg3NSw3ICsyNDg4NSw3 IEBAIHRoZW4gdGhpcyBhdHRyaWJ1dGUgd2lsbCBub3QgYmUgcHJlc2VudC4KKyBAaXRlbSBkaXNw bGF5aGludAorIEEgZHluYW1pYyB2YXJvYmogY2FuIHN1cHBseSBhIGRpc3BsYXkgaGludCB0byB0 aGUgZnJvbnQgZW5kLiAgVGhlCisgdmFsdWUgY29tZXMgZGlyZWN0bHkgZnJvbSB0aGUgUHl0aG9u IHByZXR0eS1wcmludGVyIG9iamVjdCdzCistQGNvZGV7ZGlzcGxheV9oaW50fSBtZXRob2QuICBA eHJlZntQcmV0dHkgUHJpbnRpbmd9LgorK0Bjb2Rle2Rpc3BsYXlfaGludH0gbWV0aG9kLiAgQHhy ZWZ7UHJldHR5IFByaW50aW5nIEFQSX0uCisgQGVuZCB0YWJsZQorIAorIFR5cGljYWwgb3V0cHV0 IHdpbGwgbG9vayBsaWtlIHRoaXM6CitAQCAtMjUwNDcsNyArMjUwNTcsNyBAQCBUaGUgcmVzdWx0 IG1heSBoYXZlIGl0cyBvd24gYXR0cmlidXRlczoKKyBAaXRlbSBkaXNwbGF5aGludAorIEEgZHlu YW1pYyB2YXJvYmogY2FuIHN1cHBseSBhIGRpc3BsYXkgaGludCB0byB0aGUgZnJvbnQgZW5kLiAg VGhlCisgdmFsdWUgY29tZXMgZGlyZWN0bHkgZnJvbSB0aGUgUHl0aG9uIHByZXR0eS1wcmludGVy IG9iamVjdCdzCistQGNvZGV7ZGlzcGxheV9oaW50fSBtZXRob2QuICBAeHJlZntQcmV0dHkgUHJp bnRpbmd9LgorK0Bjb2Rle2Rpc3BsYXlfaGludH0gbWV0aG9kLiAgQHhyZWZ7UHJldHR5IFByaW50 aW5nIEFQSX0uCisgCisgQGl0ZW0gaGFzX21vcmUKKyBUaGlzIGlzIGFuIGludGVnZXIgYXR0cmli dXRlIHdoaWNoIGlzIG5vbnplcm8gaWYgdGhlcmUgYXJlIGNoaWxkcmVuCitAQCAtMjU0MTEsNyAr MjU0MjEsNyBAQCBzaW5nbGUgYXJndW1lbnQuICBAdmFsdWV7R0RCTn0gd2lsbCBjYWxsCisgdGhl IHZhcm9iaiBAdmFye25hbWV9IGFzIGFuIGFyZ3VtZW50ICh0aGlzIGlzIGRvbmUgc28gdGhhdCB0 aGUgc2FtZQorIFB5dGhvbiBwcmV0dHktcHJpbnRpbmcgY29kZSBjYW4gYmUgdXNlZCBmb3IgYm90 aCB0aGUgQ0xJIGFuZCBNSSkuCisgV2hlbiBjYWxsZWQsIHRoaXMgb2JqZWN0IG11c3QgcmV0dXJu IGFuIG9iamVjdCB3aGljaCBjb25mb3JtcyB0byB0aGUKKy1wcmV0dHktcHJpbnRpbmcgaW50ZXJm YWNlIChAcHhyZWZ7UHJldHR5IFByaW50aW5nfSkuCisrcHJldHR5LXByaW50aW5nIGludGVyZmFj ZSAoQHB4cmVme1ByZXR0eSBQcmludGluZyBBUEl9KS4KKyAKKyBUaGUgcHJlLWRlZmluZWQgZnVu Y3Rpb24gQGNvZGV7Z2RiLmRlZmF1bHRfdmlzdWFsaXplcn0gbWF5IGJlIHVzZWQgdG8KKyBzZWxl Y3QgYSB2aXN1YWxpemVyIGJ5IGZvbGxvd2luZyB0aGUgYnVpbHQtaW4gcHJvY2VzcwoKZGlmZiAt LWdpdCBhL2dkYi1iejU3NDQ4My1kaXNwbGF5LXNlcGRlYnVnLnBhdGNoIGIvZ2RiLWJ6NTc0NDgz LWRpc3BsYXktc2VwZGVidWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNjRkZGZhNwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejU3NDQ4My1kaXNwbGF5LXNlcGRl YnVnLnBhdGNoCkBAIC0wLDAgKzEsNzMgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIt cGF0Y2hlcy8yMDEwLTA0L21zZzAwMDU1Lmh0bWwKK1N1YmplY3Q6IFtwYXRjaF0gRml4IGRhbmds aW5nIGRpc3BsYXlzIGluIHNlcGFyYXRlIGRlYnVnCisKK1sgQmFja3BvcnRlZC4gIF0KKworSGks CisKK2dkYi5iYXNlL3NvbGliLWRpc3BsYXkuZXhwIHVzaW5nIF9zZXBhcmF0ZV8gZGVidWcgaW5m bzoKKzM6IGNfZ2xvYmFsID0gZ2RidHlwZXMuYzoxMzY5OiBpbnRlcm5hbC1lcnJvcjogY2hlY2tf dHlwZWRlZjogQXNzZXJ0aW9uIGB0eXBlJyBmYWlsZWQuCitBIHByb2JsZW0gaW50ZXJuYWwgdG8g R0RCIGhhcyBiZWVuIGRldGVjdGVkLAorCitUaGlzIHByb2JsZW0gd2FzIGZpeGVkIGJlZm9yZSBi eToKKwlbcGF0Y2ggMS84XSBUeXBlcyBHQyBbdW5sb2FkaW5nIG9ic2VydmVyXQorCWh0dHA6Ly9z b3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA5LTA1L21zZzAwNTQ0Lmh0bWwKKwlSZTog W3BhdGNoIDMvOF0gVHlwZXMgR0MgW2Rpc3BsYXlfdXNlc19zb2xpYl9wIHRvIGV4cF9pdGVyYXRl XQorCWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA5LTA3L21zZzAwMDU0 Lmh0bWwKKworYnV0IGFzIHRoYXQgcGF0Y2hzZXQgaXMgc3RpbGwgbm90IGluIHByb3ZpZGluZyB0 aGlzIHRlbXBvcmFyeSBmaXh1cCBpbnN0ZWFkLgorCitPbmUgbWF5IG9ubHkgYWRkcmVzcyB0aGF0 IGdkYi5iYXNlL3NvbGliLWRpc3BsYXkuZXhwIHdhcyB0ZXN0aW5nIHN5bWJvbAoraW4tb2JqZmls ZSB3aGlsZSBub3cgaXQgdGVzdHMgb25seSBzeW1ib2wgaW4tc2VwZGVidWctb2JqZmlsZSBhbmQg bm8gbG9uZ2VyCit0aGUgaW4tb2JqZmlsZSBjYXNlLiAgSSBmaW5kIHRoZSBpbi1zZXBkZWJ1Zy1v YmpmaWxlIGFzIGEgc3VwZXJzZXQgb2YKK2luLW9iamZpbGUgdGVzdCBidXQgSSBjYW4gcmV3b3Jr IGl0IGlmIGFueW9uZXMgYWRkcmVzc2VzIHRoaXMgdGVzdCBjaGFuZ2UuCisKK05vIHJlZ3Jlc3Np b25zIG9uIHt4ODZfNjQseDg2XzY0LW0zMixpNjg2fS1mZWRvcmExMi1saW51eC1nbnUuCisKKwor VGhhbmtzLAorSmFuCisKKworZ2RiLworMjAxMC0wNC0wMyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBwcmludGNtZC5jIChkaXNwbGF5X3VzZXNfc29s aWJfcCk6IENoZWNrIGFsc28KKwlTRVBBUkFURV9ERUJVR19PQkpGSUxFLgorCitnZGIvdGVzdHN1 aXRlLworMjAxMC0wNC0wMyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQu Y29tPgorCisJKiBnZGIuYmFzZS9zb2xpYi1kaXNwbGF5LmV4cCAoc3BsaXQgc29saWIpOiBOZXcu CisKKy0tLSBhL2dkYi9wcmludGNtZC5jCisrKysgYi9nZGIvcHJpbnRjbWQuYworQEAgLTE4NDUs NyArMTg0NSwxMCBAQCBjbGVhcl9kYW5nbGluZ19kaXNwbGF5X2V4cHJlc3Npb25zIChzdHJ1Cisg CisgICBmb3IgKGQgPSBkaXNwbGF5X2NoYWluOyBkICE9IE5VTEw7IGQgPSBkLT5uZXh0KQorICAg ICBpZiAoYmxvY2tfb2JqZmlsZSAoZC0+YmxvY2spID09IG9iamZpbGUKKy0JfHwgKGQtPmV4cCAm JiBleHBfdXNlc19vYmpmaWxlIChkLT5leHAsIG9iamZpbGUpKSkKKysJfHwgKGQtPmV4cCAmJiBl eHBfdXNlc19vYmpmaWxlIChkLT5leHAsIG9iamZpbGUpKQorKwl8fCAob2JqZmlsZS0+c2VwYXJh dGVfZGVidWdfb2JqZmlsZQorKwkgICAgJiYgKGJsb2NrX29iamZpbGUgKGQtPmJsb2NrKSA9PSBv YmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlCisrCQl8fCAoZC0+ZXhwICYmIGV4cF91c2Vz X29iamZpbGUgKGQtPmV4cCwgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZSkpKSkpCisg ICAgICAgeworIAl4ZnJlZSAoZC0+ZXhwKTsKKyAJZC0+ZXhwID0gTlVMTDsKKy0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2Uvc29saWItZGlzcGxheS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2Uvc29saWItZGlzcGxheS5leHAKK0BAIC01Myw2ICs1MywxMyBAQCBpZiB7IFtnZGJf Y29tcGlsZV9zaGxpYiAke3NyY2ZpbGVfbGlifSAke2JpbmZpbGVfbGlifSAkbGliX2ZsYWdzXSAh PSAiIgorICAgcmV0dXJuIC0xCisgfQorIAorK3NldCB0ZXN0ICJzcGxpdCBzb2xpYiIKKytpZiB7 W2dkYl9nbnVfc3RyaXBfZGVidWcgJGJpbmZpbGVfbGliXSAhPSAwfSB7CisrICAgIGZhaWwgJHRl c3QKKyt9IGVsc2UgeworKyAgICBwYXNzICR0ZXN0CisrfQorKworIGdkYl9leGl0CisgZ2RiX3N0 YXJ0CisgZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisKCmRpZmYgLS1naXQg YS9nZGItYno1NzUyOTItZGVsYXllZC1waHlzbmFtZS5wYXRjaCBiL2dkYi1iejU3NTI5Mi1kZWxh eWVkLXBoeXNuYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3 MGQ1MmQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1NzUyOTItZGVsYXllZC1waHlzbmFtZS5w YXRjaApAQCAtMCwwICsxLDYyNCBAQAorTWFkZSBtb3JlIHNhZmUgKGJ1dCBsZXNzIGVmZmVjdGl2 ZSkgYnkgdXNpbmcgYSBsaW5rZWQgbGlzdC4KKworQmFzZWQgb246CisJUmU6IFtSRkFdIERlbGF5 ZWQgcGh5c25hbWUgY29tcHV0YXRpb24KKwlodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBh dGNoZXMvMjAxMC0wNS9tc2cwMDI0OC5odG1sCisKK05laXRoZXIgaXRzIG9ic3RhY2stbGVhay5w YXRjaCBub3IKKwlbcGF0Y2hdIEZpeCBkdXBsaWNhdGUgdHlwZXMgZm9yIHNpbmdsZSBESUUKKwlo dHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wNS9tc2cwMDI3MS5odG1s CitpcyBuZWVkZWQgYXMgdGhlIGxpbmtlZCBsaXN0IGlzIHVzZWQgaW5zdGVhZC4KKworLS0tIC4v Z2RiL2R3YXJmMnJlYWQuYwkyMDEwLTA1LTEzIDE4OjI2OjIyLjAwMDAwMDAwMCArMDIwMAorKysr IC4vZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTA1LTEzIDE4OjQ1OjA0LjAwMDAwMDAwMCArMDIwMAor QEAgLTI1MSw2ICsyNTEsMjggQEAgc3RydWN0IGNvbXBfdW5pdF9oZWFkCisgICB1bnNpZ25lZCBp bnQgZmlyc3RfZGllX29mZnNldDsKKyB9OworIAorKy8qIFR5cGUgdXNlZCBmb3IgZGVsYXlpbmcg Y29tcHV0YXRpb24gb2YgbWV0aG9kIHBoeXNuYW1lcy4KKysgICBTZWUgY29tbWVudHMgZm9yIGNv bXB1dGVfZGVsYXllZF9waHlzbmFtZXMuICAqLworK3N0cnVjdCBkZWxheWVkX21ldGhvZF9pbmZv CisreworKyAgc3RydWN0IGRlbGF5ZWRfbWV0aG9kX2luZm8gKm5leHQ7CisrCisrICAvKiBUaGUg dHlwZSB0byB3aGljaCB0aGUgbWV0aG9kIGlzIGF0dGFjaGVkLCBpLmUuLCBpdHMgcGFyZW50IGNs YXNzLiAgKi8KKysgIHN0cnVjdCB0eXBlICp0eXBlOworKworKyAgLyogVGhlIGluZGV4IG9mIHRo ZSBtZXRob2QgaW4gdGhlIHR5cGUncyBmdW5jdGlvbiBmaWVsZGxpc3RzLiAgKi8KKysgIGludCBm bmZpZWxkX2luZGV4OworKworKyAgLyogVGhlIGluZGV4IG9mIHRoZSBtZXRob2QgaW4gdGhlIGZp ZWxkbGlzdC4gICovCisrICBpbnQgaW5kZXg7CisrCisrICAvKiBUaGUgbmFtZSBvZiB0aGUgRElF LiAgKi8KKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrCisrICAvKiAgVGhlIERJRSBhc3NvY2lhdGVk IHdpdGggdGhpcyBtZXRob2QuICAqLworKyAgc3RydWN0IGRpZV9pbmZvICpkaWU7CisrfTsKKysK KyAvKiBJbnRlcm5hbCBzdGF0ZSB3aGVuIGRlY29kaW5nIGEgcGFydGljdWxhciBjb21waWxhdGlv biB1bml0LiAgKi8KKyBzdHJ1Y3QgZHdhcmYyX2N1CisgeworQEAgLTMyOSw2ICszNTEsMTAgQEAg c3RydWN0IGR3YXJmMl9jdQorICAgLyogSGVhZGVyIGRhdGEgZnJvbSB0aGUgbGluZSB0YWJsZSwg ZHVyaW5nIGZ1bGwgc3ltYm9sIHByb2Nlc3NpbmcuICAqLworICAgc3RydWN0IGxpbmVfaGVhZGVy ICpsaW5lX2hlYWRlcjsKKyAKKysgIC8qIEEgbGlzdCBvZiBtZXRob2RzIHdoaWNoIG5lZWQgdG8g aGF2ZSBwaHlzbmFtZXMgY29tcHV0ZWQKKysgICAgIGFmdGVyIGFsbCB0eXBlIGluZm9ybWF0aW9u IGhhcyBiZWVuIHJlYWQuICAqLworKyAgc3RydWN0IGRlbGF5ZWRfbWV0aG9kX2luZm8gKm1ldGhv ZF9saXN0OworKworICAgLyogTWFyayB1c2VkIHdoZW4gcmVsZWFzaW5nIGNhY2hlZCBkaWVzLiAg Ki8KKyAgIHVuc2lnbmVkIGludCBtYXJrIDogMTsKKyAKK0BAIC0xMjA4LDYgKzEyMzQsOSBAQCBz dGF0aWMgdm9pZCBkZXN0cm95X3NlY3Rpb24gKHN0cnVjdCBkd2FyCisgc3RhdGljIHN0cnVjdCBk d2FyZjJfbG9jZXhwcl9iYXRvbiAqZHdhcmYyX2F0dHJfdG9fbG9jZXhwcl9iYXRvbgorICAgKHN0 cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKKyAKKytzdGF0aWMg Y29uc3QgY2hhciAqZHdhcmYyX3BoeXNuYW1lIChjaGFyICpuYW1lLCBzdHJ1Y3QgZGllX2luZm8g KmRpZSwKKysJCQkJICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKKysKKyAvKiBUcnkgdG8gbG9j YXRlIHRoZSBzZWN0aW9ucyB3ZSBuZWVkIGZvciBEV0FSRiAyIGRlYnVnZ2luZworICAgIGluZm9y bWF0aW9uIGFuZCByZXR1cm4gdHJ1ZSBpZiB3ZSBoYXZlIGVub3VnaCB0byBkbyBzb21ldGhpbmcu ICAqLworIAorQEAgLTM0MzUsNiArMzQ2NCw1OCBAQCBsb2FkX2Z1bGxfY29tcF91bml0IChzdHJ1 Y3QgZHdhcmYyX3Blcl9jCisgICBkaXNjYXJkX2NsZWFudXBzIChmcmVlX2N1X2NsZWFudXApOwor IH0KKyAKKysvKiBBZGQgYSBESUUgdG8gdGhlIGRlbGF5ZWQgcGh5c25hbWUgbGlzdC4gICovCisr c3RhdGljIHZvaWQKKythZGRfdG9fbWV0aG9kX2xpc3QgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQg Zm5maWVsZF9pbmRleCwgaW50IGluZGV4LAorKwkJICAgIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVj dCBkaWVfaW5mbyAqZGllLAorKwkJICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorK3sKKysgIHN0 cnVjdCBkZWxheWVkX21ldGhvZF9pbmZvICptaTsKKysKKysgIG1pID0geG1hbGxvYyAoc2l6ZW9m ICgqbWkpKTsKKysgIG1pLT5uZXh0ID0gY3UtPm1ldGhvZF9saXN0OworKyAgY3UtPm1ldGhvZF9s aXN0ID0gbWk7CisrICBtaS0+dHlwZSA9IHR5cGU7CisrICBtaS0+Zm5maWVsZF9pbmRleCA9IGZu ZmllbGRfaW5kZXg7CisrICBtaS0+aW5kZXggPSBpbmRleDsKKysgIG1pLT5uYW1lID0gbmFtZTsK KysgIG1pLT5kaWUgPSBkaWU7CisrfQorKworKy8qIENvbXB1dGUgdGhlIHBoeXNuYW1lcyBvZiBh bnkgbWV0aG9kcyBvbiB0aGUgQ1UncyBtZXRob2QgbGlzdC4KKysKKysgICBUaGUgY29tcHV0YXRp b24gb2YgbWV0aG9kIHBoeXNuYW1lcyBpcyBkZWxheWVkIGluIG9yZGVyIHRvIGF2b2lkIHRoZQor KyAgIChiYWQpIGNvbmRpdGlvbiB0aGF0IG9uZSBvZiB0aGUgbWV0aG9kJ3MgZm9ybWFsIHBhcmFt ZXRlcnMgaXMgb2YgYW4gYXMgeWV0CisrICAgaW5jb21wbGV0ZSB0eXBlLiAgKi8KKytzdGF0aWMg dm9pZAorK2NvbXB1dGVfZGVsYXllZF9waHlzbmFtZXMgKHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor K3sKKysgIHN0cnVjdCBkZWxheWVkX21ldGhvZF9pbmZvICptaTsKKysgIAorKyAgZm9yIChtaSA9 IGN1LT5tZXRob2RfbGlzdDsgbWk7IG1pID0gbWktPm5leHQpCisrICAgIHsKKysgICAgICBjaGFy ICpwaHlzbmFtZTsKKysgICAgICBzdHJ1Y3QgZm5fZmllbGRsaXN0ICpmbl9mbHAKKysJPSAmVFlQ RV9GTl9GSUVMRExJU1QgKG1pLT50eXBlLCBtaS0+Zm5maWVsZF9pbmRleCk7CisrICAgICAgcGh5 c25hbWUgPSAoY2hhciAqKSBkd2FyZjJfcGh5c25hbWUgKChjaGFyICopIG1pLT5uYW1lLCBtaS0+ ZGllLCBjdSk7CisrICAgICAgZm5fZmxwLT5mbl9maWVsZHNbbWktPmluZGV4XS5waHlzbmFtZSA9 IHBoeXNuYW1lID8gcGh5c25hbWUgOiAiIjsKKysgICAgfQorK30KKysKKytzdGF0aWMgdm9pZAor K21ldGhvZF9saXN0X2NsZWFudXAgKHZvaWQgKmFyZykKKyt7CisrICBzdHJ1Y3QgZGVsYXllZF9t ZXRob2RfaW5mbyAqKm1ldGhvZF9saXN0X3BvaW50ZXIgPSBhcmc7CisrCisrICB3aGlsZSAoKm1l dGhvZF9saXN0X3BvaW50ZXIpCisrICAgIHsKKysgICAgICBzdHJ1Y3QgZGVsYXllZF9tZXRob2Rf aW5mbyAqbWkgPSAqbWV0aG9kX2xpc3RfcG9pbnRlcjsKKysKKysgICAgICAqbWV0aG9kX2xpc3Rf cG9pbnRlciA9IG1pLT5uZXh0OworKyAgICAgIHhmcmVlIChtaSk7CisrICAgIH0KKyt9CisrCisg LyogR2VuZXJhdGUgZnVsbCBzeW1ib2wgaW5mb3JtYXRpb24gZm9yIFBTVCBhbmQgQ1UsIHdob3Nl IERJRXMgaGF2ZQorICAgIGFscmVhZHkgYmVlbiBsb2FkZWQgaW50byBtZW1vcnkuICAqLworIAor QEAgLTM0NDcsNyArMzUyOCw3IEBAIHByb2Nlc3NfZnVsbF9jb21wX3VuaXQgKHN0cnVjdCBkd2Fy ZjJfcGUKKyAgIGJmZCAqYWJmZCA9IG9iamZpbGUtPm9iZmQ7CisgICBDT1JFX0FERFIgbG93cGMs IGhpZ2hwYzsKKyAgIHN0cnVjdCBzeW10YWIgKnN5bXRhYjsKKy0gIHN0cnVjdCBjbGVhbnVwICpi YWNrX3RvOworKyAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG8sICpkZWxheWVkX2xpc3RfY2xlYW51 cDsKKyAgIENPUkVfQUREUiBiYXNlYWRkcjsKKyAKKyAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9i amZpbGUtPnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOworQEAgLTM0 NTcsMTEgKzM1MzgsMjIgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9w ZQorIAorICAgY3UtPmxpc3RfaW5fc2NvcGUgPSAmZmlsZV9zeW1ib2xzOworIAorKyAgLyogSWYg bWV0aG9kcyB3ZXJlIGZvdW5kIGluIHRoZSBwYXJ0aWFsIHN5bWJvbCB0YWJsZSwgd2UgYWxsb2Nh dGUgb25lCisrICAgICBiaWcgYnVmZmVyIHRvIGhvbGQgdGhlIGVudGlyZSBkZWxheWVkIGxpc3Qg Zm9yIHRoZSBDVS4gICovCisrICBkZWxheWVkX2xpc3RfY2xlYW51cCA9IG1ha2VfY2xlYW51cCAo bWV0aG9kX2xpc3RfY2xlYW51cCwKKysJCQkJICAgICAgICZjdS0+bWV0aG9kX2xpc3QpOworKwor ICAgZHdhcmYyX2ZpbmRfYmFzZV9hZGRyZXNzIChjdS0+ZGllcywgY3UpOworIAorICAgLyogRG8g bGluZSBudW1iZXIgZGVjb2RpbmcgaW4gcmVhZF9maWxlX3Njb3BlICgpICovCisgICBwcm9jZXNz X2RpZSAoY3UtPmRpZXMsIGN1KTsKKyAKKysgIC8qIE5vdyB0aGF0IHdlIGhhdmUgcHJvY2Vzc2Vk IGFsbCB0aGUgRElFcyBpbiB0aGUgQ1UsIGFsbCB0aGUgdHlwZXMgCisrICAgICBzaG91bGQgYmUg Y29tcGxldGUsIGFuZCBpdCBzaG91bGQgbm93IGJlIHNhZmUgdG8gY29tcHV0ZSBhbGwgb2YgdGhl CisrICAgICBwaHlzbmFtZXMuICAqLworKyAgY29tcHV0ZV9kZWxheWVkX3BoeXNuYW1lcyAoY3Up OworKyAgZG9fY2xlYW51cHMgKGRlbGF5ZWRfbGlzdF9jbGVhbnVwKTsKKysKKyAgIC8qIFNvbWUg Y29tcGlsZXJzIGRvbid0IGRlZmluZSBhIERXX0FUX2hpZ2hfcGMgYXR0cmlidXRlIGZvciB0aGUK KyAgICAgIGNvbXBpbGF0aW9uIHVuaXQuICBJZiB0aGUgRFdfQVRfaGlnaF9wYyBpcyBtaXNzaW5n LCBzeW50aGVzaXplCisgICAgICBpdCwgYnkgc2Nhbm5pbmcgdGhlIERJRSdzIGJlbG93IHRoZSBj b21waWxhdGlvbiB1bml0LiAgKi8KK0BAIC01MDkzLDcgKzUxODUsNiBAQCBkd2FyZjJfYWRkX21l bWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gCisgICBpbnQgaTsKKyAgIHN0cnVjdCBmbl9maWVs ZCAqZm5wOworICAgY2hhciAqZmllbGRuYW1lOworLSAgY2hhciAqcGh5c25hbWU7CisgICBzdHJ1 Y3QgbmV4dGZuZmllbGQgKm5ld19mbmZpZWxkOworICAgc3RydWN0IHR5cGUgKnRoaXNfdHlwZTsK KyAKK0BAIC01MTA1LDkgKzUxOTYsNiBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZp ZWxkX2luZm8gCisgICBpZiAoZmllbGRuYW1lID09IE5VTEwpCisgICAgIHJldHVybjsKKyAKKy0g IC8qIEdldCB0aGUgbWFuZ2xlZCBuYW1lLiAgKi8KKy0gIHBoeXNuYW1lID0gKGNoYXIgKikgZHdh cmYyX3BoeXNuYW1lIChmaWVsZG5hbWUsIGRpZSwgY3UpOworLQorICAgLyogTG9vayB1cCBtZW1i ZXIgZnVuY3Rpb24gbmFtZSBpbiBmaWVsZGxpc3QuICAqLworICAgZm9yIChpID0gMDsgaSA8IGZp cC0+bmZuZmllbGRzOyBpKyspCisgICAgIHsKK0BAIC01MTMzLDcgKzUyMjEsNyBAQCBkd2FyZjJf YWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gCisgICAgICAgZmxwLT5uYW1lID0gZmll bGRuYW1lOworICAgICAgIGZscC0+bGVuZ3RoID0gMDsKKyAgICAgICBmbHAtPmhlYWQgPSBOVUxM OworLSAgICAgIGZpcC0+bmZuZmllbGRzKys7CisrICAgICAgaSA9IGZpcC0+bmZuZmllbGRzKys7 CisgICAgIH0KKyAKKyAgIC8qIENyZWF0ZSBhIG5ldyBtZW1iZXIgZnVuY3Rpb24gZmllbGQgYW5k IGNoYWluIGl0IHRvIHRoZSBmaWVsZCBsaXN0CitAQCAtNTE0Nyw5ICs1MjM1LDE5IEBAIGR3YXJm Ml9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAKKyAKKyAgIC8qIEZpbGwgaW4gdGhl IG1lbWJlciBmdW5jdGlvbiBmaWVsZCBpbmZvLiAgKi8KKyAgIGZucCA9ICZuZXdfZm5maWVsZC0+ Zm5maWVsZDsKKy0gIC8qIFRoZSBuYW1lIGlzIGFscmVhZHkgYWxsb2NhdGVkIGFsb25nIHdpdGgg dGhpcyBvYmpmaWxlLCBzbyB3ZSBkb24ndAorLSAgICAgbmVlZCB0byBkdXBsaWNhdGUgaXQgZm9y IHRoZSB0eXBlLiAgKi8KKy0gIGZucC0+cGh5c25hbWUgPSBwaHlzbmFtZSA/IHBoeXNuYW1lIDog IiI7CisrCisrICAvKiBEZWxheSBwcm9jZXNzaW5nIG9mIHRoZSBwaHlzbmFtZSB1bnRpbCBsYXRl ci4gICovCisrICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzIHx8IGN1LT5sYW5n dWFnZSA9PSBsYW5ndWFnZV9qYXZhKQorKyAgICB7CisrICAgICAgYWRkX3RvX21ldGhvZF9saXN0 ICh0eXBlLCBpLCBmbHAtPmxlbmd0aCAtIDEsIGZpZWxkbmFtZSwKKysJCQkgIGRpZSwgY3UpOwor KyAgICB9CisrICBlbHNlCisrICAgIHsKKysgICAgICBjaGFyICpwaHlzbmFtZSA9IChjaGFyICop IGR3YXJmMl9waHlzbmFtZSAoZmllbGRuYW1lLCBkaWUsIGN1KTsKKysgICAgICBmbnAtPnBoeXNu YW1lID0gcGh5c25hbWUgPyBwaHlzbmFtZSA6ICIiOworKyAgICB9CisrCisgICBmbnAtPnR5cGUg PSBhbGxvY190eXBlIChvYmpmaWxlKTsKKyAgIHRoaXNfdHlwZSA9IHJlYWRfdHlwZV9kaWUgKGRp ZSwgY3UpOworICAgaWYgKHRoaXNfdHlwZSAmJiBUWVBFX0NPREUgKHRoaXNfdHlwZSkgPT0gVFlQ RV9DT0RFX0ZVTkMpCitAQCAtNTE3NSw3ICs1MjczLDcgQEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4g KHN0cnVjdCBmaWVsZF9pbmZvIAorICAgICB9CisgICBlbHNlCisgICAgIGNvbXBsYWludCAoJnN5 bWZpbGVfY29tcGxhaW50cywgXygibWVtYmVyIGZ1bmN0aW9uIHR5cGUgbWlzc2luZyBmb3IgJyVz JyIpLAorLQkgICAgICAgcGh5c25hbWUpOworKwkgICAgICAgZHdhcmYyX2Z1bGxfbmFtZSAoZmll bGRuYW1lLCBkaWUsIGN1KSk7CisgCisgICAvKiBHZXQgZmNvbnRleHQgZnJvbSBEV19BVF9jb250 YWluaW5nX3R5cGUgaWYgcHJlc2VudC4gICovCisgICBpZiAoZHdhcmYyX2F0dHIgKGRpZSwgRFdf QVRfY29udGFpbmluZ190eXBlLCBjdSkgIT0gTlVMTCkKK0BAIC03NTAwLDcgKzc1OTgsOSBAQCBs b2FkX3BhcnRpYWxfZGllcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqCisgCQkgICAgICB8fCBsYXN0 X2RpZS0+dGFnID09IERXX1RBR19pbnRlcmZhY2VfdHlwZQorIAkJICAgICAgfHwgbGFzdF9kaWUt PnRhZyA9PSBEV19UQUdfc3RydWN0dXJlX3R5cGUKKyAJCSAgICAgIHx8IGxhc3RfZGllLT50YWcg PT0gRFdfVEFHX3VuaW9uX3R5cGUpKQorLQkgICAgICB8fCAoY3UtPmxhbmd1YWdlID09IGxhbmd1 YWdlX2FkYQorKwkgICAgICB8fCAoKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9hZGEKKysJCSAg IHx8IGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cworKwkJICAgfHwgY3UtPmxhbmd1YWdl ID09IGxhbmd1YWdlX2phdmEpCisgCQkgICYmIChsYXN0X2RpZS0+dGFnID09IERXX1RBR19zdWJw cm9ncmFtCisgCQkgICAgICB8fCBsYXN0X2RpZS0+dGFnID09IERXX1RBR19sZXhpY2FsX2Jsb2Nr KSkpKQorIAl7CistLS0gLi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvcHIxMTQ2NS5TCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvcHIxMTQ2NS5TCTIwMTAtMDUtMTMgMTg6Mzk6MDAuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDM1NSBAQAorKy8qIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysK KysvKiBDb21waWxlZCBmcm9tOgorKworKyAgICBuYW1lc3BhY2UgTgorKyAgICB7CisrICAgICAg Y2xhc3MgQworKyAgICAgIHsKKysgICAgICBwdWJsaWM6CisrICAgICAgICB0eXBlZGVmIHZvaWQg KCp0KSAoQyk7CisrICAgICAgICBDICh0KSB7fQorKyAgICAgIH07CisrICAgICAgdHlwZWRlZiBD Ojp0IHU7CisrICAgICAgdSBmOworKyAgICAgIEMgYyAoZik7CisrICAgIH07CisrCisrICAgIGlu dAorKyAgICBtYWluICgpCisrICAgIHsKKysgICAgICByZXR1cm4gMDsKKysgICAgfQorKyovCisr CisrCS50ZXh0CisrX1pOMU4xY0U6CQorKwkuc2VjdGlvbgkuZGVidWdfaW5mbworK2Q6CisrCS5s b25nCS5MZGVidWdfaW5mb19lbmQgLSAxZiAvKiBMZW5ndGggb2YgQ1UgaW5mbyAqLworKzE6Cisr CS4yYnl0ZQkweDIJCS8qIERXQVJGIHZlcnNpb24gbnVtYmVyICovCisrCS5sb25nCS5MZGVidWdf YWJicmV2MAkvKiBBYmJyZXYgb2Zmc2V0ICovCisrCS5ieXRlCTB4NAkJLyogUG9pbnRlciBzaXpl ICovCisrZGllYjoJLnVsZWIxMjggMHgxCQkvKiBEV19UQUdfY29tcGlsZV91bml0ICovCisrCS5s b25nCS5MQVNGNAkJLyogRFdfQVRfcHJvZHVjZXIgKi8KKysJLmJ5dGUJMHg0CQkvKiBEV19BVF9s YW5ndWFnZSAqLworKwkubG9uZwkuTEFTRjUJCS8qIERXX0FUX25hbWUgKi8KKysJLmxvbmcJLkxB U0Y2CQkvKiBEV19BVF9jb21wX2RpciAqLworKwkubG9uZwkweDAJCS8qIERXX0FUX2xvd19wYyAq LworKwkubG9uZwkweDAJCS8qIERXX0FUX2hpZ2hfcGMgKi8KKysJLmxvbmcJMHgwCQkvKiBEV19B VF9lbnRyeV9wYyAqLworK2RpZTI5OgkudWxlYjEyOCAweDIJCS8qIERXX1RBR19uYW1lc3BhY2Ug Ki8KKysJLnN0cmluZwkiTiIJCS8qIERXX0FUX25hbWUgKi8KKytkaWUzMjoJLnVsZWIxMjggMHgz CQkvKiBEV19UQUdfY2xhc3NfdHlwZSAqLworKwkuc3RyaW5nCSJDIgkJLyogRFdfQVRfbmFtZSAq LworKwkuYnl0ZQkweDEJCS8qIERXX0FUX2RlY2xhcmF0aW9uICovCisrZGllMzY6CS51bGViMTI4 IDB4NAkJLyogRFdfVEFHX3R5cGVkZWYgKi8KKysJLnN0cmluZwkidSIJCS8qIERXX0FUX25hbWUg Ki8KKysJLmxvbmcJZGllN2UtZAkJLyogRFdfQVRfdHlwZSAqLworK2RpZTNmOgkudWxlYjEyOCAw eDUJCS8qIERXX1RBR192YXJpYWJsZSAqLworKwkuc3RyaW5nCSJmIgkJLyogRFdfQVRfbmFtZSAq LworKwkubG9uZwkuTEFTRjAJCS8qIERXX0FUX01JUFNfbGlua2FnZV9uYW1lICovCisrCS5sb25n CWRpZTM2LWQJCS8qIERXX0FUX3R5cGUgKi8KKysJLmJ5dGUJMHgxCQkvKiBEV19BVF9leHRlcm5h bCAqLworKwkuYnl0ZQkweDEJCS8qIERXX0FUX2RlY2xhcmF0aW9uICovCisrZGllNGU6CS51bGVi MTI4IDB4NQkJLyogRFdfVEFHX3ZhcmlhYmxlICovCisrCS5zdHJpbmcJImMiCQkvKiBEV19BVF9u YW1lICovCisrCS5sb25nCS5MQVNGMQkJLyogRFdfQVRfTUlQU19saW5rYWdlX25hbWUgKi8KKysJ LmxvbmcJZGllNWUtZAkJLyogRFdfQVRfdHlwZSAqLworKwkuYnl0ZQkweDEJCS8qIERXX0FUX2V4 dGVybmFsICovCisrCS5ieXRlCTB4MQkJLyogRFdfQVRfZGVjbGFyYXRpb24gKi8KKysJLmJ5dGUJ MHgwCisrZGllNWU6CS51bGViMTI4IDB4NgkJLyogRFdfVEFHX2NsYXNzX3R5cGUgKi8KKysJLmxv bmcJZGllMzItZAkJLyogRFdfQVRfc3BlY2lmaWNhdGlvbiAqLworKwkuYnl0ZQkweDEJCS8qIERX X0FUX2J5dGVfc2l6ZSAqLworK2RpZTZhOgkudWxlYjEyOCAweDcJCS8qIERXX1RBR19zdWJwcm9n cmFtICovCisrCS5ieXRlCTB4MQkJLyogRFdfQVRfZXh0ZXJuYWwgKi8KKysJLnN0cmluZwkiQyIJ CS8qIERXX0FUX25hbWUgKi8KKysJLmJ5dGUJMHgxCQkvKiBEV19BVF9kZWNsYXJhdGlvbiAqLwor K2RpZTcxOgkudWxlYjEyOCAweDgJCS8qIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyICovCisrCS5s b25nCWRpZThmLWQJCS8qIERXX0FUX3R5cGUgKi8KKysJLmJ5dGUJMHgxCQkvKiBEV19BVF9hcnRp ZmljaWFsICovCisrZGllNzc6CS51bGViMTI4IDB4OQkJLyogRFdfVEFHX2Zvcm1hbF9wYXJhbWV0 ZXIgKi8KKysJLmxvbmcJZGllN2UtZAkJLyogRFdfQVRfdHlwZSAqLworKwkuYnl0ZQkweDAKKysJ LmJ5dGUJMHgwCisrZGllN2U6CS51bGViMTI4IDB4YQkJLyogRFdfVEFHX3BvaW50ZXJfdHlwZSAq LworKwkuYnl0ZQkweDQJCS8qIERXX0FUX2J5dGVfc2l6ZSAqLworKwkubG9uZwlkaWU4NC1kCQkv KiBEV19BVF90eXBlICovCisrZGllODQ6CS51bGViMTI4IDB4YgkJLyogRFdfVEFHX3N1YnJvdXRp bmVfdHlwZSAqLworK2RpZTg5OgkudWxlYjEyOCAweDkJCS8qIERXX1RBR19mb3JtYWxfcGFyYW1l dGVyICovCisrCS5sb25nCWRpZTVlLWQJCS8qIERXX0FUX3R5cGUgKi8KKysJLmJ5dGUJMHgwCisr ZGllOGY6CS51bGViMTI4IDB4YQkJLyogRFdfVEFHX3BvaW50ZXJfdHlwZSAqLworKwkuYnl0ZQkw eDQJCS8qIERXX0FUX2J5dGVfc2l6ZSAqLworKwkubG9uZwlkaWU1ZS1kCQkvKiBEV19BVF90eXBl ICovCisrZGllOTU6CS51bGViMTI4IDB4YwkJLyogRFdfVEFHX3N1YnByb2dyYW0gKi8KKysJLmxv bmcJZGllNmEtZAkJLyogRFdfQVRfc3BlY2lmaWNhdGlvbiAqLworKwkuYnl0ZQkweDIJCS8qIERX X0FUX2lubGluZSAqLworK2RpZTlmOgkudWxlYjEyOCAweGQJCS8qIERXX1RBR19mb3JtYWxfcGFy YW1ldGVyICovCisrCS5sb25nCS5MQVNGNwkJLyogRFdfQVRfbmFtZSAqLworKwkubG9uZwlkaWVh Zi1kCQkvKiBEV19BVF90eXBlICovCisrCS5ieXRlCTB4MQkJLyogRFdfQVRfYXJ0aWZpY2lhbCAq LworK2RpZWE5OgkudWxlYjEyOCAweDkJCS8qIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyICovCisr CS5sb25nCWRpZTdlLWQJCS8qIERXX0FUX3R5cGUgKi8KKysJLmJ5dGUJMHgwCisrZGllYWY6CS51 bGViMTI4IDB4ZQkJLyogRFdfVEFHX2NvbnN0X3R5cGUgKi8KKysJLmxvbmcJZGllOGYtZAkJLyog RFdfQVRfdHlwZSAqLworK2RpZWI0OgkudWxlYjEyOCAweGYJCS8qIERXX1RBR19zdWJwcm9ncmFt ICovCisrCS5sb25nCWRpZTk1LWQJCS8qIERXX0FUX2Fic3RyYWN0X29yaWdpbiAqLworKwkubG9u ZwlfWk4xTjFjRQkvKiBEV19BVF9sb3dfcGMgKi8KKysJLmxvbmcJX1pOMU4xY0UJLyogRFdfQVRf aGlnaF9wYyAqLworK2RpZWM5OgkudWxlYjEyOCAweDEwCQkvKiBEV19UQUdfc3VicHJvZ3JhbSAq LworKwkubG9uZwlkaWU5Zi1kCQkvKiBEV19BVF9hYnN0cmFjdF9vcmlnaW4gKi8KKysJLmJ5dGUJ MmYtMWYJCS8qIERXX0FUX2xvY2F0aW9uICovCisrMToKKysJLmJ5dGUJMHg1MAkJLyogRFdfT1Bf cmVnMCAqLworKzI6CisrZGllZDE6CS51bGViMTI4IDB4MTAJCS8qIERXX1RBR19mb3JtYWxfcGFy YW1ldGVyICovCisrCS5sb25nCWRpZWE5LWQJCS8qIERXX0FUX2Fic3RyYWN0X29yaWdpbiAqLwor KwkuYnl0ZQkyZi0xZgkJLyogRFdfQVRfbG9jYXRpb24gKi8KKysxOgorKwkuYnl0ZQkweDUxCQkv KiBEV19PUF9yZWcxICovCisrMjoKKysJLmJ5dGUJMHgwCisrZGllZGE6CS51bGViMTI4IDB4MTEJ CS8qIERXX1RBR19zdWJwcm9ncmFtICovCisrCS5ieXRlCTB4MQkJLyogRFdfQVRfZXh0ZXJuYWwg Ki8KKysJLmxvbmcJLkxBU0Y4CQkvKiBEV19BVF9uYW1lICovCisrCS5sb25nCWRpZWYyLWQJCS8q IERXX0FUX3R5cGUgKi8KKysJLmxvbmcJX1pOMU4xY0UJLyogRFdfQVRfbG93X3BjICovCisrCS5s b25nCV9aTjFOMWNFCS8qIERXX0FUX2hpZ2hfcGMgKi8KKytkaWVmMjoJLnVsZWIxMjggMHgxMgkJ LyogRFdfVEFHX2Jhc2VfdHlwZSAqLworKwkuYnl0ZQkweDQJCS8qIERXX0FUX2J5dGVfc2l6ZSAq LworKwkuYnl0ZQkweDUJCS8qIERXX0FUX2VuY29kaW5nICovCisrCS5zdHJpbmcJImludCIJCS8q IERXX0FUX25hbWUgKi8KKytkaWUxNDk6CS51bGViMTI4IDB4MTYJCS8qIERXX1RBR192YXJpYWJs ZSAqLworKwkubG9uZwlkaWU0ZS1kCQkvKiBEV19BVF9zcGVjaWZpY2F0aW9uICovCisrCS5ieXRl CTB4NQkJLyogRFdfQVRfbG9jYXRpb24gKi8KKysJLmJ5dGUJMHgzCisrCS5sb25nCV9aTjFOMWNF CisrCS5ieXRlCTB4MAorKy5MZGVidWdfaW5mb19lbmQ6CisrCS5zZWN0aW9uCS5kZWJ1Z19hYmJy ZXYKKysuTGRlYnVnX2FiYnJldjA6CisrCS51bGViMTI4IDB4MQkJLyogYWJicmV2IGNvZGUqLwor KwkudWxlYjEyOCAweDExCQkvKiBEV19UQUdfY29tcGlsZV91bml0ICovCisrCS5ieXRlCTB4MQkJ LyogRFdfY2hpbGRyZW5feWVzICovCisrCS51bGViMTI4IDB4MjUJCS8qIERXX0FUX3Byb2R1Y2Vy Ki8KKysJLnVsZWIxMjggMHhlCQkvKiBEV19GT1JNX3N0cnAgKi8KKysJLnVsZWIxMjggMHgxMwkJ LyogRFdfQVRfbGFuZ3VhZ2UgKi8KKysJLnVsZWIxMjggMHhiCQkvKiBEV19GT1JNX2RhdGExICov CisrCS51bGViMTI4IDB4MwkJLyogRFdfQVRfbmFtZSAqLworKwkudWxlYjEyOCAweGUJCS8qIERX X0ZPUk1fc3RycCAqLworKwkudWxlYjEyOCAweDFiCQkvKiBEV19BVF9jb21wX2RpciAqLworKwku dWxlYjEyOCAweGUJCS8qIERXX0ZPUk1fc3RycCAqLworKwkudWxlYjEyOCAweDExCQkvKiBEV19B VF9sb3dfcGMgKi8KKysJLnVsZWIxMjggMHgxCQkvKiBEV19GT1JNX2FkZHIgKi8KKysJLnVsZWIx MjggMHgxMgkJLyogRFdfQVRfaGlnaF9wYyAqLworKwkudWxlYjEyOCAweDEJCS8qIERXX0ZPUk1f YWRkciAqLworKwkudWxlYjEyOCAweDUyCQkvKiBEV19BVF9lbnRyeV9wYyAqLworKwkudWxlYjEy OCAweDEJCS8qIERXX0ZPUk1fYWRkciAqLworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51 bGViMTI4IDB4MgkJLyogYWJicmV2IGNvZGUgKi8KKysJLnVsZWIxMjggMHgzOQkJLyogRFdfVEFH X25hbWVzcGFjZSAqLworKwkuYnl0ZQkweDEJCS8qIERXX2NoaWxkcmVuX3llcyAqLworKwkudWxl YjEyOCAweDMJCS8qIERXX0FUX25hbWUgKi8KKysJLnVsZWIxMjggMHg4CQkvKiBEV19GT1JNX3N0 cmluZyAqLworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4MwkJLyogYWJi cmV2IGNvZGUgKi8KKysJLnVsZWIxMjggMHgyCQkvKiBEV19UQUdfY2xhc3NfdHlwZSAqLworKwku Ynl0ZQkweDAJCS8qIERXX2hhc19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweDMJCS8qIERX X0FUX25hbWUgKi8KKysJLnVsZWIxMjggMHg4CQkvKiBEV19GT1JNX3N0cmluZyAqLworKwkudWxl YjEyOCAweDNjCQkvKiBEV19BVF9kZWNsYXJhdGlvbiAqLworKwkudWxlYjEyOCAweGMJCS8qIERX X0ZPUk1fZmxhZyAqLworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4NAkJ LyogYWJicmV2IGNvZGUgKi8KKysJLnVsZWIxMjggMHgxNgkJLyogRFdfVEFHX3R5cGVkZWYgKi8K KysJLmJ5dGUJMHgwCQkvKiBEV19oYXNfY2hpbGRyZW5fbm8gKi8KKysJLnVsZWIxMjggMHgzCQkv KiBEV19BVF9uYW1lICovCisrCS51bGViMTI4IDB4OAkJLyogRFdfRk9STV9zdHJpbmcgKi8KKysJ LnVsZWIxMjggMHg0OQkJLyogRFdfQVRfdHlwZSAqLworKwkudWxlYjEyOCAweDEzCQkvKiBEV19G T1JNX3JlZjQgKi8KKysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwkudWxlYjEyOCAweDUJCS8q IGFiYnJldiBjb2RlICovCisrCS51bGViMTI4IDB4MzQJCS8qIERXX1RBR192YXJpYWJsZSAqLwor KwkuYnl0ZQkweDAJCS8qIERXX2hhc19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweDMJCS8q IERXX0FUX25hbWUgKi8KKysJLnVsZWIxMjggMHg4CQkvKiBEV19GT1JNX3N0cmluZyAqLworKwku dWxlYjEyOCAweDIwMDcJCS8qIERXX0FUX01JUFNfbGlua2FnZV9uYW1lICovCisrCS51bGViMTI4 IDB4ZQkJLyogRFdfRk9STV9zdHJwICovCisrCS51bGViMTI4IDB4NDkJCS8qIERXX0FUX1RZUEUg Ki8KKysJLnVsZWIxMjggMHgxMwkJLyogRFdfRk9STV9yZWY0ICovCisrCS51bGViMTI4IDB4M2YJ CS8qIERXX0FUX2V4dGVybmFsICovCisrCS51bGViMTI4IDB4YwkJLyogRFdfRk9STV9mbGFnICov CisrCS51bGViMTI4IDB4M2MJCS8qIERXX0FUX2RlY2xhcmF0aW9uICovCisrCS51bGViMTI4IDB4 YwkJLyogRFdfRk9STV9mbGFnICovCisrCS5ieXRlCTB4MAorKwkuYnl0ZQkweDAKKysJLnVsZWIx MjggMHg2CQkvKiBhYmJyZXYgY29kZSAqLworKwkudWxlYjEyOCAweDIJCS8qIERXX1RBR19jbGFz c190eXBlICovCisrCS5ieXRlCTB4MQkJLyogRFdfaGFzX2NoaWxkcmVuX3llcyAqLworKwkudWxl YjEyOCAweDQ3CQkvKiBEV19BVF9zcGVjaWZpY2F0aW9uICovCisrCS51bGViMTI4IDB4MTMJCS8q IERXX0ZPUk1fcmVmNCAqLworKwkudWxlYjEyOCAweGIJCS8qIERXX0FUX2J5dGVfc2l6ZSAqLwor KwkudWxlYjEyOCAweGIJCS8qIERXX0ZPUk1fZGF0YTEgKi8KKysJLmJ5dGUJMHgwCisrCS5ieXRl CTB4MAorKwkudWxlYjEyOCAweDcJCS8qIGFiYnJldiBjb2RlICovCisrCS51bGViMTI4IDB4MmUJ CS8qIERXX1RBR19zdWJwcm9ncmEgKi8KKysJLmJ5dGUJMHgxCQkvKiBEV19oYXNfY2hpbGRyZW5f eWVzICovCisrCS51bGViMTI4IDB4M2YJCS8qIERXX0FUX2V4dGVybmFsICovCisrCS51bGViMTI4 IDB4YwkJLyogRFdfRk9STV9mbGFnICovCisrCS51bGViMTI4IDB4MwkJLyogRFdfQVRfbmFtZSAq LworKwkudWxlYjEyOCAweDgJCS8qIERXX0ZPUk1fc3RyaW5nICovCisrCS51bGViMTI4IDB4M2MJ CS8qIERXX0FUX2RlY2xhcmF0aW9uICovCisrCS51bGViMTI4IDB4YwkJLyogRFdfRk9STV9mbGFn ICovCisrCS5ieXRlCTB4MAorKwkuYnl0ZQkweDAKKysJLnVsZWIxMjggMHg4CQkvKiBhYmJyZXYg Y29kZSAqLworKwkudWxlYjEyOCAweDUJCS8qIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyICovCisr CS5ieXRlCTB4MAkJLyogRFdfaGFzX2NoaWxkcmVuX25vICovCisrCS51bGViMTI4IDB4NDkJCS8q IERXX0FUX3R5cGUgKi8KKysJLnVsZWIxMjggMHgxMwkJLyogRFdfRk9STV9yZWY0ICovCisrCS51 bGViMTI4IDB4MzQJCS8qIERXX0FUX2FydGlmaWNpYWwgKi8KKysJLnVsZWIxMjggMHhjCQkvKiBE V19GT1JNX2ZsYWcgKi8KKysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwkudWxlYjEyOCAweDkJ CS8qIGFiYnJldiBjb2RlICovCisrCS51bGViMTI4IDB4NQkJLyogRFdfVEFHX2Zvcm1hbF9wYXJh bWV0ZXIgKi8KKysJLmJ5dGUJMHgwCQkvKiBEV19oYXNfY2hpbGRyZW5fbm8gKi8KKysJLnVsZWIx MjggMHg0OQkJLyogRFdfQVRfdHlwZSAqLworKwkudWxlYjEyOCAweDEzCQkvKiBEV19GT1JNX3Jl ZjQgKi8KKysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwkudWxlYjEyOCAweGEJCS8qIGFiYnJl diBjb2RlICovCisrCS51bGViMTI4IDB4ZgkJLyogRFdfVEFHX3BvaW50ZXJfdHlwZSAqLworKwku Ynl0ZQkweDAJCS8qIERXX2hhc19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweGIJCS8qIERX X0FUX2J5dGVfc2l6ZSAqLworKwkudWxlYjEyOCAweGIJCS8qIERXX0ZPUk1fZGF0YTEgKi8KKysJ LnVsZWIxMjggMHg0OQkJLyogRFdfQVRfdHlwZSAqLworKwkudWxlYjEyOCAweDEzCQkvKiBEV19G T1JNX3JlZjQgKi8KKysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwkudWxlYjEyOCAweGIJCS8q IGFiYnJldiBjb2RlICovCisrCS51bGViMTI4IDB4MTUJCS8qIERXX1RBR19zdWJyb3V0aW5lX3R5 cGUgKi8KKysJLmJ5dGUJMHgxCQkvKiBEV19oYXNfY2hpbGRyZW5feWVzICovCisrCS5ieXRlCTB4 MAorKwkuYnl0ZQkweDAKKysJLnVsZWIxMjggMHhjCQkvKiBhYmJyZXYgY29kZSAqLworKwkudWxl YjEyOCAweDJlCQkvKiBEV19UQUdfc3VicHJvZ3JhbSAqLworKwkuYnl0ZQkweDEJCS8qIERXX2hh c19jaGlsZHJlbl95ZXMgKi8KKysJLnVsZWIxMjggMHg0NwkJLyogRFdfQVRfc3BlY2lmaWNhdGlv biAqLworKwkudWxlYjEyOCAweDEzCQkvKiBEV19GT1JNX3JlZjQgKi8KKysJLnVsZWIxMjggMHgy MAkJLyogRFdfQVRfaW5saW5lICovCisrCS51bGViMTI4IDB4YgkJLyogRFdfRk9STV9kYXRhMSAq LworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4ZAkJLyogYWJicmV2IGNv ZGUgKi8KKysJLnVsZWIxMjggMHg1CQkvKiBEV19UQUdfZm9ybWFsX3BhcmFtZXRlciAqLworKwku Ynl0ZQkweDAJCS8qIERXX2hhc19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweDMJCS8qIERX X0FUX25hbWUgKi8KKysJLnVsZWIxMjggMHhlCQkvKiBEV19GT1JNX3N0cnAgKi8KKysJLnVsZWIx MjggMHg0OQkJLyogRFdfQVRfdHlwZSAqLworKwkudWxlYjEyOCAweDEzCQkvKiBEV19GT1JNX3Jl ZjQgKi8KKysJLnVsZWIxMjggMHgzNAkJLyogRFdfQVRfYXJ0aWZpY2lhbCAqLworKwkudWxlYjEy OCAweGMJCS8qIERXX0ZPUk1fZmxhZyAqLworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51 bGViMTI4IDB4ZQkJLyogYWJicmV2IGNvZGUgKi8KKysJLnVsZWIxMjggMHgyNgkJLyogRFdfVEFH X2NvbnN0X3R5cGUgKi8KKysJLmJ5dGUJMHgwCQkvKiBEV19oYXNfY2hpbGRyZW5fbm8gKi8KKysJ LnVsZWIxMjggMHg0OQkJLyogRFdfQVRfdHlwZSAqLworKwkudWxlYjEyOCAweDEzCQkvKiBEV19G T1JNX3JlZjQgKi8KKysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwkudWxlYjEyOCAweGYJCS8q IGFiYnJldiBjb2RlICovCisrCS51bGViMTI4IDB4MmUJCS8qIERXX1RBR19zdWJwcm9ncmFtICov CisrCS5ieXRlCTB4MQkJLyogRFdfaGFzX2NoaWxkcmVuX3llcyAqLworKwkudWxlYjEyOCAweDMx CQkvKiBEV19BVF9hYnN0cmFjdF9vcmlnaW4gKi8KKysJLnVsZWIxMjggMHgxMwkJLyogRFdfRk9S TV9yZWY0ICovCisrCS51bGViMTI4IDB4MTEJCS8qIERXX0FUX2xvd19wYyAqLworKwkudWxlYjEy OCAweDEJCS8qIERXX0ZPUk1fYWRkciAqLworKwkudWxlYjEyOCAweDEyCQkvKiBEV19BVF9oaWdo X3BjICovCisrCS51bGViMTI4IDB4MQkJLyogRFdfRk9STV9hZGRyICovCisrCS5ieXRlCTB4MAor KwkuYnl0ZQkweDAKKysJLnVsZWIxMjggMHgxMAkJLyogYWJicmV2IGNvZGUgKi8KKysJLnVsZWIx MjggMHg1CQkvKiBEV19UQUdfZm9ybWFsX3BhcmFtZXRlciAqLworKwkuYnl0ZQkweDAJCS8qIERX X2hhc19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweDMxCQkvKiBEV19BVF9hYnN0cmFjdF9v cmlnaW4gKi8KKysJLnVsZWIxMjggMHgxMwkJLyogRFdfRk9STV9yZWY0ICovCisrCS51bGViMTI4 IDB4MgkJLyogRFdfQVRfbG9jYXRpb24gKi8KKysJLnVsZWIxMjggMHhhCQkvKiBEV19GT1JNX2Js b2NrMSAqLworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4MTEJCS8qIGFi YnJldiBjb2RlICovCisrCS51bGViMTI4IDB4MmUJCS8qIERXX1RBR19zdWJwcm9ncmFtICovCisr CS5ieXRlCTB4MAkJLyogRFdfaGFzX2NoaWxkcmVuX25vICovCisrCS51bGViMTI4IDB4M2YJCS8q IERXX0FUX2V4dGVybmFsICovCisrCS51bGViMTI4IDB4YwkJLyogRFdfRk9STV9mbGFnICovCisr CS51bGViMTI4IDB4MwkJLyogRFdfQVRfbmFtZSAqLworKwkudWxlYjEyOCAweGUJCS8qIERXX0ZP Uk1fc3RycCAqLworKwkudWxlYjEyOCAweDQ5CQkvKiBEV19BVF90eXBlICovCisrCS51bGViMTI4 IDB4MTMJCS8qIERXX0ZPUk1fcmVmNCAqLworKwkudWxlYjEyOCAweDExCQkvKiBEV19BVF9sb3df cGMgKi8KKysJLnVsZWIxMjggMHgxCQkvKiBEV19GT1JNX2FkZHIgKi8KKysJLnVsZWIxMjggMHgx MgkJLyogRFdfQVRfaGlnaF9wYyAqLworKwkudWxlYjEyOCAweDEJCS8qIERXX0ZPUk1fYWRkciAq LworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4MTIJCS8qIGFiYnJldiBj b2RlICovCisrCS51bGViMTI4IDB4MjQJCS8qIERXX1RBR19iYXNlX3R5cGUgKi8KKysJLmJ5dGUJ MHgwCQkvKiBEV19oYXNfY2hpbGRyZW5fbm8gKi8KKysJLnVsZWIxMjggMHhiCQkvKiBEV19BVF9i eXRlX3NpemUgKi8KKysJLnVsZWIxMjggMHhiCQkvKiBEV19GT1JNX2RhdGExICovCisrCS51bGVi MTI4IDB4M2UJCS8qIERXX0FUX2VuY29kaW5nICovCisrCS51bGViMTI4IDB4YgkJLyogRFdfRk9S TV9kYXRhMSAqLworKwkudWxlYjEyOCAweDMJCS8qIERXX0FUX25hbWUgKi8KKysJLnVsZWIxMjgg MHg4CQkvKiBEV19GT1JNX3N0cmluZyAqLworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51 bGViMTI4IDB4MTYJCS8qIGFiYnJldiBjb2RlICovCisrCS51bGViMTI4IDB4MzQJCS8qIERXX1RB R192YXJpYWJsZSAqLworKwkuYnl0ZQkweDAJCS8qIERXX2hhc19jaGlsZHJlbl9ubyAqLworKwku dWxlYjEyOCAweDQ3CQkvKiBEV19BVF9zcGVjaWZpY2F0aW9uICovCisrCS51bGViMTI4IDB4MTMJ CS8qIERXX0ZPUk1fcmVmNCAqLworKwkudWxlYjEyOCAweDIJCS8qIERXX0FUX2xvY2F0aW9uICov CisrCS51bGViMTI4IDB4YQkJLyogRFdfRk9STV9ibG9jazEgKi8KKysJLmJ5dGUJMHgwCisrCS5i eXRlCTB4MAorKwkuYnl0ZQkweDAKKysJLnNlY3Rpb24JLmRlYnVnX3N0cgorKy5MQVNGMDoKKysJ LnN0cmluZwkiX1pOMU4xZkUiCisrLkxBU0Y3OgorKwkuc3RyaW5nCSJ0aGlzIgorKy5MQVNGNjoK KysJLnN0cmluZwkiIgorKy5MQVNGODoKKysJLnN0cmluZwkibWFpbiIKKysuTEFTRjE6CisrCS5z dHJpbmcJIl9aTjFOMWNFIgorKy5MQVNGNToKKysJLnN0cmluZwkicHIxMTQ2NS5jYyIKKysuTEFT RjQ6CisrCS5zdHJpbmcJIkdOVSBDKysgNC40LjIiCisrCS5pZGVudAkiR0NDOiAoR05VKSA0LjQu MiIKKy0tLSAuL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9wcjExNDY1LmV4cAkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L3ByMTE0NjUuZXhwCTIwMTAtMDUtMTMgMTg6Mzk6MDAuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDM5IEBACisrIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBUaGlzIHRlc3QgY2Fu IG9ubHkgYmUgcnVuIG9uIHRhcmdldHMgd2hpY2ggc3VwcG9ydCBEV0FSRi0yIGFuZCB1c2UgZ2Fz LgorKyMgRm9yIG5vdyBwaWNrIGEgc2FtcGxpbmcgb2YgbGlrZWx5IHRhcmdldHMuCisraWYgeyFb aXN0YXJnZXQgKi0qLWxpbnV4Kl0KKysgICAgJiYgIVtpc3RhcmdldCAqLSotZ251Kl0KKysgICAg JiYgIVtpc3RhcmdldCAqLSotZWxmKl0KKysgICAgJiYgIVtpc3RhcmdldCAqLSotb3BlbmJzZCpd CisrICAgICYmICFbaXN0YXJnZXQgYXJtLSotZWFiaSpdCisrICAgICYmICFbaXN0YXJnZXQgcG93 ZXJwYy0qLWVhYmkqXX0geworKyAgICByZXR1cm4gMCAgCisrfQorKworK3NldCB0ZXN0ZmlsZSAi cHIxMTQ2NSIKKytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5TCisrc2V0IGV4ZWN1dGFibGUgJHt0 ZXN0ZmlsZX0ueAorK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRhYmxl fQorKworK2lmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9 IiAiJHtiaW5maWxlfSIgb2JqZWN0IHt9XSAhPSAiIiB9IHsKKysgICAgcmV0dXJuIC0xCisrfQor KworK2NsZWFuX3Jlc3RhcnQgJGV4ZWN1dGFibGUKKysKKysjIFRlc3QgZGVsYXllZCBwaHlzbmFt ZSBjb21wdXRhdGlvbnMKKytnZGJfdGVzdCAicCBOOjpjLkMiIHsgPSB7dm9pZCBcKE46OkMgXCos IHZvaWQgXChcKlwpXChOOjpDXClcKX0uKn0KCmRpZmYgLS1naXQgYS9nZGItYno1NzUyOTItdm9p ZC13b3JrYXJvdW5kLnBhdGNoIGIvZ2RiLWJ6NTc1MjkyLXZvaWQtd29ya2Fyb3VuZC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDVhOTM0Ci0tLSAvZGV2L251bGwK KysrIGIvZ2RiLWJ6NTc1MjkyLXZvaWQtd29ya2Fyb3VuZC5wYXRjaApAQCAtMCwwICsxLDE4NyBA QAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDMvbXNnMDEwMzku aHRtbAorU3ViamVjdDogW3BhdGNoXSBGaXggY3Jhc2ggb24gTlVMTCBmdW5jdGlvbidzIFRZUEVf RklFTERfVFlQRQorCitIaSwKKworc2VlbiBvbmUgcG9zc2liaWxpdHkgb2YgYSBjcmFzaC4KKwor IzAgIGNfcHJpbnRfdHlwZSAodHlwZT0weDAsIC4uLikKKyMxICBpbiBjX3R5cGVfcHJpbnRfYXJn cyAodHlwZT0weGZjZWI4OTAsCisKKyhUaGUgcmVhbCByZWFzb24gb2YgYSByZXBvcnRlZCBHREIg Y3Jhc2ggd2FzIGRpZmZlcmVudCwgdGhvdWdoLikKKworCitUaGFua3MsCitKYW4KKworCitnZGIv CisyMDEwLTAzLTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ CisKKwlGaXggY3Jhc2ggb24gcmVhZGluZyB3cm9uZyBmdW5jdGlvbiBkZWNsYXJhdGlvbiBEV0FS Ri4KKwkqIGR3YXJmMnJlYWQuYyAocmVhZF9zdWJyb3V0aW5lX3R5cGUpOiBOZXcgdmFyaWFibGUg dm9pZF90eXBlLgorCVByZS1maWxsIGFsbCBUWVBFX0ZJRUxEX1RZUEVzLiAgTW92ZSBucGFyYW1z IGFuZCBpcGFyYW1zIGluaXRpYWxpemF0aW9uCisJbW9yZSBjbG9zZSB0byB0aGVpciB1c2UuCisK K2dkYi90ZXN0c3VpdGUvCisyMDEwLTAzLTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+CisKKwkqIGdkYi5kd2FyZjIvZHcyLWJhZC1wYXJhbWV0ZXItdHlwZS5l eHAsCisJZ2RiLmR3YXJmMi9kdzItYmFkLXBhcmFtZXRlci10eXBlLlM6IE5ldy4KKworLS0tIGEv Z2RiL2R3YXJmMnJlYWQuYworKysrIGIvZ2RiL2R3YXJmMnJlYWQuYworQEAgLTU5MzgsMTMgKzU5 MzgsMTQgQEAgcmVhZF9zdWJyb3V0aW5lX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKKyAgIAorICAgaWYgKGRpZS0+Y2hpbGQgIT0gTlVMTCkKKyAgICAg eworKyAgICAgIHN0cnVjdCB0eXBlICp2b2lkX3R5cGUgPSBvYmpmaWxlX3R5cGUgKGN1LT5vYmpm aWxlKS0+YnVpbHRpbl92b2lkOworICAgICAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGRfZGllOwor LSAgICAgIGludCBucGFyYW1zID0gMDsKKy0gICAgICBpbnQgaXBhcmFtcyA9IDA7CisrICAgICAg aW50IG5wYXJhbXMsIGlwYXJhbXM7CisgCisgICAgICAgLyogQ291bnQgdGhlIG51bWJlciBvZiBw YXJhbWV0ZXJzLgorICAgICAgICAgIEZJWE1FOiBHREIgY3VycmVudGx5IGlnbm9yZXMgdmFyYXJn IGZ1bmN0aW9ucywgYnV0IGtub3dzIGFib3V0CisgICAgICAgICAgdmFyYXJnIG1lbWJlciBmdW5j dGlvbnMuICAqLworKyAgICAgIG5wYXJhbXMgPSAwOworICAgICAgIGNoaWxkX2RpZSA9IGRpZS0+ Y2hpbGQ7CisgICAgICAgd2hpbGUgKGNoaWxkX2RpZSAmJiBjaGlsZF9kaWUtPnRhZykKKyAJewor QEAgLTU5NjAsNiArNTk2MSwxMiBAQCByZWFkX3N1YnJvdXRpbmVfdHlwZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgICAgIFRZUEVfRklFTERTIChmdHlw ZSkgPSAoc3RydWN0IGZpZWxkICopCisgCVRZUEVfWkFMTE9DIChmdHlwZSwgbnBhcmFtcyAqIHNp emVvZiAoc3RydWN0IGZpZWxkKSk7CisgCisrICAgICAgLyogVFlQRV9GSUVMRF9UWVBFIG11c3Qg bmV2ZXIgYmUgTlVMTC4gIFByZS1maWxsIHRoZSBhcnJheSB0byBlbnN1cmUgaXQKKysJIGV2ZW4g aWYgd2UgZXJyb3Igb3V0IGR1cmluZyB0aGUgcGFyYW1ldGVycyByZWFkaW5nIGJlbG93LiAgKi8K KysgICAgICBmb3IgKGlwYXJhbXMgPSAwOyBpcGFyYW1zIDwgbnBhcmFtczsgaXBhcmFtcysrKQor KwlUWVBFX0ZJRUxEX1RZUEUgKGZ0eXBlLCBpcGFyYW1zKSA9IHZvaWRfdHlwZTsKKysKKysgICAg ICBpcGFyYW1zID0gMDsKKyAgICAgICBjaGlsZF9kaWUgPSBkaWUtPmNoaWxkOworICAgICAgIHdo aWxlIChjaGlsZF9kaWUgJiYgY2hpbGRfZGllLT50YWcpCisgCXsKKy0tLSAvZGV2L251bGwKKysr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYmFkLXBhcmFtZXRlci10eXBlLlMKK0BA IC0wLDAgKzEsNzMgQEAKKysvKiBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisr CisrCS5zZWN0aW9uCS5kZWJ1Z19pbmZvCisrZGVidWdfc3RhcnQ6CisrCS5sb25nCWRlYnVnX2Vu ZCAtIDFmCS8qIExlbmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8gKi8KKysxOgorKwkuMmJ5 dGUJMHgzCS8qIERXQVJGIHZlcnNpb24gbnVtYmVyICovCisrCS5sb25nCS5MZGVidWdfYWJicmV2 MAkvKiBPZmZzZXQgSW50byBBYmJyZXYuIFNlY3Rpb24gKi8KKysJLmJ5dGUJMHg0CS8qIFBvaW50 ZXIgU2l6ZSAoaW4gYnl0ZXMpICovCisrCS51bGViMTI4IDB4MQkvKiAoRElFICgweGIpIERXX1RB R19jb21waWxlX3VuaXQpICovCisrCS5hc2NpaSAiR05VIEMgNC40LjNcMCIJLyogRFdfQVRfcHJv ZHVjZXIgKi8KKysJLmJ5dGUJMHgxCS8qIERXX0FUX2xhbmd1YWdlICovCisrCS5hc2NpaSAiMS5j XDAiCS8qIERXX0FUX25hbWUgKi8KKysJLnVsZWIxMjggMHg0CS8qIChESUUgKDB4M2MpIERXX1RB R19zdWJwcm9ncmFtKSAqLworKwkuYXNjaWkgImZcMCIJLyogRFdfQVRfbmFtZSAqLworKy8qIFZh bHVlIDAgd291bGQgcmVxdWlyZSBoYXNfc2VjdGlvbl9hdF96ZXJvICE9IDAgKHdoaWNoIGlzIHRy dWUsIHRob3VnaCkuICAqLworKwkubG9uZwkxCS8qIERXX0FUX2xvd19wYyAqLworKwkubG9uZwky CS8qIERXX0FUX2hpZ2hfcGMgKi8KKysJLmJ5dGUJMHgxCS8qIERXX0FUX3Byb3RvdHlwZWQgKi8K KysJLnVsZWIxMjggMHg1CS8qIChESUUgKDB4NDIpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKSAq LworKy8qIEludmFsaWQgdmFsdWUuICAqLworKwkubG9uZwkweDAJLyogRFdfQVRfdHlwZSAqLwor KwkuYnl0ZQkweDAJLyogZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDNjICovCisrCS5ieXRlCTB4 MAkvKiBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YiAqLworK2RlYnVnX2VuZDoKKysKKysJLnNl Y3Rpb24JLmRlYnVnX2FiYnJldgorKy5MZGVidWdfYWJicmV2MDoKKysJLnVsZWIxMjggMHgxCS8q IChhYmJyZXYgY29kZSkgKi8KKysJLnVsZWIxMjggMHgxMQkvKiAoVEFHOiBEV19UQUdfY29tcGls ZV91bml0KSAqLworKwkuYnl0ZQkweDEJLyogRFdfY2hpbGRyZW5feWVzICovCisrCS51bGViMTI4 IDB4MjUJLyogKERXX0FUX3Byb2R1Y2VyKSAqLworKwkudWxlYjEyOCAweDgJLyogKERXX0ZPUk1f c3RyaW5nKSAqLworKwkudWxlYjEyOCAweDEzCS8qIChEV19BVF9sYW5ndWFnZSkgKi8KKysJLnVs ZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAqLworKwkudWxlYjEyOCAweDMJLyogKERXX0FU X25hbWUpICovCisrCS51bGViMTI4IDB4OAkvKiAoRFdfRk9STV9zdHJpbmcpICovCisrCS5ieXRl CTB4MAorKwkuYnl0ZQkweDAKKysJLnVsZWIxMjggMHg0CS8qIChhYmJyZXYgY29kZSkgKi8KKysJ LnVsZWIxMjggMHgyZQkvKiAoVEFHOiBEV19UQUdfc3VicHJvZ3JhbSkgKi8KKysJLmJ5dGUJMHgx CS8qIERXX2NoaWxkcmVuX3llcyAqLworKwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUpICov CisrCS51bGViMTI4IDB4OAkvKiAoRFdfRk9STV9zdHJpbmcpICovCisrCS51bGViMTI4IDB4MTEJ LyogKERXX0FUX2xvd19wYykgKi8KKysJLnVsZWIxMjggMHgxCS8qIChEV19GT1JNX2FkZHIpICov CisrCS51bGViMTI4IDB4MTIJLyogKERXX0FUX2hpZ2hfcGMpICovCisrCS51bGViMTI4IDB4MQkv KiAoRFdfRk9STV9hZGRyKSAqLworKwkudWxlYjEyOCAweDI3CS8qIChEV19BVF9wcm90b3R5cGVk KSAqLworKwkudWxlYjEyOCAweGMJLyogKERXX0ZPUk1fZmxhZykgKi8KKysJLmJ5dGUJMHgwCisr CS5ieXRlCTB4MAorKwkudWxlYjEyOCAweDUJLyogKGFiYnJldiBjb2RlKSAqLworKwkudWxlYjEy OCAweDUJLyogKFRBRzogRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpICovCisrCS5ieXRlCTB4MAkv KiBEV19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweDQ5CS8qIChEV19BVF90eXBlKSAqLwor KwkudWxlYjEyOCAweDEzCS8qIChEV19GT1JNX3JlZjQpICovCisrCS5ieXRlCTB4MAorKwkuYnl0 ZQkweDAKKysJLmJ5dGUJMHgwCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLWJhZC1wYXJhbWV0ZXItdHlwZS5leHAKK0BAIC0wLDAgKzEsNDQgQEAKKysj IENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisr IyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4g b24gdGFyZ2V0cyB3aGljaCBzdXBwb3J0IERXQVJGLTIgYW5kIHVzZSBnYXMuCisrIyBGb3Igbm93 IHBpY2sgYSBzYW1wbGluZyBvZiBsaWtlbHkgdGFyZ2V0cy4KKytpZiB7IVtpc3RhcmdldCAqLSot bGludXgqXQorKyAgICAmJiAhW2lzdGFyZ2V0ICotKi1nbnUqXQorKyAgICAmJiAhW2lzdGFyZ2V0 ICotKi1lbGYqXQorKyAgICAmJiAhW2lzdGFyZ2V0ICotKi1vcGVuYnNkKl0KKysgICAgJiYgIVtp c3RhcmdldCBhcm0tKi1lYWJpKl0KKysgICAgJiYgIVtpc3RhcmdldCBwb3dlcnBjLSotZWFiaSpd fSB7CisrICAgIHJldHVybiAwICAKKyt9CisrCisrc2V0IHRlc3RmaWxlICJkdzItYmFkLXBhcmFt ZXRlci10eXBlIgorK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LlMKKytzZXQgZXhlY3V0YWJsZSAk e3Rlc3RmaWxlfS54Cisrc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke2V4ZWN1dGFi bGV9CisrCisrIyBGaXJzdCB0cnkgcmVmZXJlbmNpbmcgRFdfQVRfZnJhbWVfYmFzZSB3aGljaCBp cyBub3QgZGVmaW5lZC4KKytpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0v JHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIG9iamVjdCB7fV0gIT0gIiIgfSB7CisrICAgIHJldHVy biAtMQorK30KKysKKytjbGVhbl9yZXN0YXJ0ICRleGVjdXRhYmxlCisrCisrIyBUaGUgZmlyc3Qg YWNjZXNzIChhcyB3ZSBkbyBub3QgdXNlIC1yZWFkbm93KSBwcmludHMgc29tZToKKysjIER3YXJm IEVycm9yOiBDYW5ub3QgZmluZCBESUUgYXQgMHgwIHJlZmVyZW5jZWQgZnJvbSBESUUgYXQgMHgy OSBbaW4gbW9kdWxlIC4uLl0KKytnZGJfdGVzdCAicHR5cGUgZiIKKysKKytnZGJfdGVzdCAicHR5 cGUgZiIKKytnZGJfdGVzdCAicCA1IiAiID0gNSIgImlzIGFsaXZlIgorCgpkaWZmIC0tZ2l0IGEv Z2RiLWJ6NTc4MjUwLWF2eC0wMW9mMTAucGF0Y2ggYi9nZGItYno1NzgyNTAtYXZ4LTAxb2YxMC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGZkYzBkCi0tLSAvZGV2 L251bGwKKysrIGIvZ2RiLWJ6NTc4MjUwLWF2eC0wMW9mMTAucGF0Y2gKQEAgLTAsMCArMSwxNzMz IEBACitbIEJhY2twb3J0ZWQuICBdCisKK2NvbW1pdCBkNDU0Yjc1MjlhNWU2MTM0YWNlODU0MWIz NDFkMDc5NTM0ZjIwNjJhCitBdXRob3I6IEguSi4gTHUgPGhqbC50b29sc0BnbWFpbC5jb20+CitE YXRlOiAgIE1vbiBNYXIgMSAxNTozMzoyOSAyMDEwICswMDAwCisKKyAgICBFbmFibGUgWE1MIHRh cmdldCBkZXNjcmlwdGlvbnMgZm9yIHg4Ni4KKyAgICAKKyAgICBnZGIvCisgICAgCisgICAgMjAx MC0wMy0wMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorICAgIAorICAgIAkqIGFt ZDY0LWxpbnV4LW5hdC5jIChBTUQ2NF9MSU5VWF9VU0VSNjRfQ1MpOiBOZXcuCisgICAgCShhbWQ2 NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogTGlrZXdpc2UuCisgICAgCShfaW5pdGlhbGl6ZV9h bWQ2NF9saW51eF9uYXQpOiBTZXQgdG9fcmVhZF9kZXNjcmlwdGlvbiB0bworICAgIAlhbWQ2NF9s aW51eF9yZWFkX2Rlc2NyaXB0aW9uLgorICAgIAorICAgIAkqIGFtZDY0LWxpbnV4LXRkZXAuYzog SW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9hbWQ2NC1saW51eC5jIi4KKyAgICAJKGFtZDY0X2xpbnV4 X3JlZ2lzdGVyX25hbWUpOiBSZW1vdmVkLgorICAgIAkoYW1kNjRfbGludXhfcmVnaXN0ZXJfdHlw ZSk6IExpa2V3aXNlLgorICAgIAkoYW1kNjRfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTog TmV3LgorICAgIAkoYW1kNjRfbGludXhfaW5pdF9hYmkpOiBTZXQgdGFyZ2V0IGRlc2NyaXB0aW9u IHRvCisgICAgCXRkZXNjX2FtZDY0X2xpbnV4IGlmIG5lZWRlZC4gIFN1cHBvcnQgb3JpZ19yYXgg aW4gdGFyZ2V0CisgICAgCWRlc2NyaXB0aW9uLiAgRG9uJ3QgY2FsbCBzZXRfZ2RiYXJjaF9yZWdp c3Rlcl9uYW1lIG5vcgorICAgIAlzZXRfZ2RiYXJjaF9yZWdpc3Rlcl90eXBlLiAgQ2FsbAorICAg IAlzZXRfZ2RiYXJjaF9jb3JlX3JlYWRfZGVzY3JpcHRpb24uCisgICAgCShfaW5pdGlhbGl6ZV9h bWQ2NF9saW51eF90ZGVwKTogQ2FsbAorICAgIAlpbml0aWFsaXplX3RkZXNjX2FtZDY0X2xpbnV4 LgorICAgIAorICAgIAkqIGFtZDY0LWxpbnV4LXRkZXAuaCAodGRlc2NfYW1kNjRfbGludXgpOiBO ZXcuCisgICAgCisgICAgCSogYW1kNjQtdGRlcC5jOiAgSW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9h bWQ2NC5jIi4KKyAgICAJKGFtZDY0X3JlZ2lzdGVyX25hbWVzKTogUmVtb3ZlZC4KKyAgICAJKGFt ZDY0X3JlZ2lzdGVyX25hbWUpOiBMaWtld2lzZS4KKyAgICAJKGFtZDY0X3JlZ2lzdGVyX3R5cGUp OiBMaWtld2lzZS4KKyAgICAJKGFtZDY0X2luaXRfYWJpKTogIFNldCBudW1fY29yZV9yZWdzIGFu ZCByZWdpc3Rlcl9uYW1lcy4gIFNldAorICAgIAl0YXJnZXQgZGVzY3JpcHRpb24gdG8gdGRlc2Nf YW1kNjQgaWYgbmVlZGVkLiAgRG9uJ3QgY2FsbAorICAgIAlzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9u YW1lIG5vciBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl90eXBlLgorICAgIAkoX2luaXRpYWxpemVfYW1k NjRfdGRlcCk6IE5ldy4KKyAgICAKKyAgICAJKiBpMzg2LWxpbnV4LW5hdC5jIChpMzg2X2xpbnV4 X3JlYWRfZGVzY3JpcHRpb24pOiBOZXcuCisgICAgCShfaW5pdGlhbGl6ZV9pMzg2X2xpbnV4X25h dCk6IFNldCB0b19yZWFkX2Rlc2NyaXB0aW9uIHRvCisgICAgCWkzODZfbGludXhfcmVhZF9kZXNj cmlwdGlvbi4KKyAgICAKKyAgICAJKiBpMzg2LWxpbnV4LXRkZXAuYzogSW5jbHVkZSAiZmVhdHVy ZXMvaTM4Ni9pMzg2LWxpbnV4LmMiLgorICAgIAkoaTM4Nl9saW51eF9yZWdpc3Rlcl9uYW1lKTog UmVtb3ZlZC4KKyAgICAJKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogTmV3Lgor ICAgIAkoaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogTGlrZXdpc2UuCisgICAgCShpMzg2 X2xpbnV4X2luaXRfYWJpKTogRG9uJ3QgY2FsbCBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9uYW1lLgor ICAgIAlTZXQgdGFyZ2V0IGRlc2NyaXB0aW9uIHRvIHRkZXNjX2kzODZfbGludXggaWYgbmVlZGVk LiAgU3VwcG9ydAorICAgIAlvcmlnX2VheC4gIFNldCByZWdpc3Rlcl9yZWdncm91cF9wLiAgQ2Fs bAorICAgIAlzZXRfZ2RiYXJjaF9jb3JlX3JlYWRfZGVzY3JpcHRpb24uCisgICAgCShfaW5pdGlh bGl6ZV9pMzg2X2xpbnV4X3RkZXApOiBDYWxsIGluaXRpYWxpemVfdGRlc2NfaTM4Nl9saW51eC4K KyAgICAKKyAgICAJKiBpMzg2LWxpbnV4LXRkZXAuaCAodGRlc2NfaTM4Nl9saW51eCk6IE5ldy4K KyAgICAKKyAgICAJKiBpMzg2LW50by10ZGVwLmMgKGkzODZudG9fcmVnc2V0X2lkKTogUmVwbGFj ZSBJMzg2X05VTV9GUkVHUworICAgIAl3aXRoIEkzODdfTlVNX1JFR1MuCisgICAgCisgICAgCSog aTM4Ni10ZGVwLmM6IEluY2x1ZGUgImZlYXR1cmVzL2kzODYvaTM4Ni5jIi4KKyAgICAJKGkzODZf cmVnaXN0ZXJfbmFtZXMpOiBNYWtlIGl0IGNvbnN0LgorICAgIAkoaTM4Nl9tbXhfbmFtZXMpOiBM aWtld2lzZS4KKyAgICAJKGkzODZfbnVtX3JlZ2lzdGVyX25hbWVzKTogUmVtb3ZlZC4KKyAgICAJ KGkzODZfcmVnaXN0ZXJfbmFtZSk6IExpa2V3aXNlLgorICAgIAkoaTM4Nl9lZmxhZ3NfdHlwZSk6 IExpa2V3aXNlLgorICAgIAkoaTM4Nl9teGNzcl90eXBlKTogTGlrZXdpc2UuCisgICAgCShpMzg2 X3NzZV90eXBlKTogTGlrZXdpc2UuCisgICAgCShpMzg2X3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lz ZS4KKyAgICAJKGkzODdfZXh0X3R5cGUpOiBDYWxsIHRkZXNjX2ZpbmRfdHlwZSBpbnN0ZWFkIG9m IGFyY2hfZmxvYXRfdHlwZS4KKyAgICAJKGkzODZfcHNldWRvX3JlZ2lzdGVyX25hbWUpOiBOZXcu CisgICAgCShpMzg2X3BzZXVkb19yZWdpc3Rlcl90eXBlKTogTGlrZXdpc2UuCisgICAgCShpMzg2 X21teF90eXBlKTogTWFrZSBpdCBzdGF0aWMuCisgICAgCShpMzg2X2dkYmFyY2hfaW5pdCk6IENo ZWNrIGFyY2guICBSZXBsYWNlIEkzODZfTlVNX0ZSRUdTIHdpdGgKKyAgICAJSTM4N19OVU1fUkVH Uy4gIFNldCBudW1fY29yZV9yZWdzIGFuZCByZWdpc3Rlcl9uYW1lcy4gIERvbid0CisgICAgCWNh bGwgc2V0X2dkYmFyY2hfcmVnaXN0ZXJfbmFtZSBub3Igc2V0X2dkYmFyY2hfcmVnaXN0ZXJfdHlw ZS4KKyAgICAJU2V0IHJlZ2lzdGVyX3JlZ2dyb3VwX3AuICBTZXQgdGFyZ2V0IGRlc2NyaXB0aW9u IHRvIHRkZXNjX2kzODYKKyAgICAJaWYgbmVlZGVkLiAgQ2FsbCBzZXRfdGRlc2NfcHNldWRvX3Jl Z2lzdGVyX3R5cGUsCisgICAgCXNldF90ZGVzY19wc2V1ZG9fcmVnaXN0ZXJfbmFtZSBhbmQgdGRl c2NfdXNlX3JlZ2lzdGVycy4KKyAgICAJKF9pbml0aWFsaXplX2kzODZfdGRlcCk6IENhbGwgaW5p dGlhbGl6ZV90ZGVzY19pMzg2LgorICAgIAlpbml0aWFsaXplX3RkZXNjX3g4Nl82NC4KKyAgICAK KyAgICAJKiBpMzg2LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogUmVtb3ZlIGkzODZfZWZsYWdzX3R5 cGUsCisgICAgCWkzODZfbXhjc3JfdHlwZSBhbmQgaTM4Nl9zc2VfdHlwZS4gIEFkZCBudW1fY29y ZV9yZWdzLAorICAgIAlyZWdpc3Rlcl9uYW1lcywgdGRlc2MgYW5kIHJlZ2lzdGVyX3JlZ2dyb3Vw X3AuCisgICAgCShJMzg2X05VTV9GUkVHUyk6IFJlbW92ZWQuCisgICAgCShpMzg2X2VmbGFnc190 eXBlKTogTGlrZXdpc2UuCisgICAgCShpMzg2X214Y3NyX3R5cGUpOiBMaWtld2lzZS4KKyAgICAJ KGkzODZfbW14X3R5cGUpOiBMaWtld2lzZS4KKyAgICAJKGkzODZfc3NlX3R5cGUpOiBMaWtld2lz ZS4KKyAgICAJKGkzODZfcmVnaXN0ZXJfbmFtZSk6IExpa2V3aXNlLgorICAgIAkoaTM4Nl9yZWdu dW0pOiBBZGQgSTM4Nl9NWENTUl9SRUdOVU0uCisgICAgCShJMzg2X1NTRV9OVU1fUkVHUyk6IERl ZmluZWQgd2l0aCBJMzg2X01YQ1NSX1JFR05VTS4KKyAgICAKKyAgICAJKiBpMzg3LXRkZXAuaCAo STM4N19OVU1fUkVHUyk6IE5ldy4KKyAgICAKKyAgICAJKiByZWdmb3JtYXRzL2kzODYvaTM4Ni1s aW51eC5kYXQ6IEdlbmVyYXRlZC4KKyAgICAJKiByZWdmb3JtYXRzL2kzODYvaTM4Ni5kYXQ6IExp a2V3aXNlLgorICAgIAkqIHJlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1saW51eC5kYXQ6IExpa2V3aXNl LgorICAgIAkqIHJlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC5kYXQ6IExpa2V3aXNlLgorICAgIAorICAg IAkqIHJlZ2Zvcm1hdHMvcmVnLWkzODYtbGludXguZGF0OiBSZW1vdmVkLgorICAgIAkqIHJlZ2Zv cm1hdHMvcmVnLWkzODYuZGF0OiBMaWtld2lzZS4KKyAgICAJKiByZWdmb3JtYXRzL3JlZy14ODYt NjQtbGludXguZGF0OiBMaWtld2lzZS4KKyAgICAJKiByZWdmb3JtYXRzL3JlZy14ODYtNjQuZGF0 OiBMaWtld2lzZS4KKyAgICAKKyAgICBnZGIvZ2Ric2VydmVyLworICAgIAorICAgIDIwMTAtMDMt MDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKyAgICAKKyAgICAJKiBNYWtlZmls ZS5pbiAoY2xlYW4pOiBSZXBsYWNlIHJlZy1pMzg2LmMsIHJlZy14ODYtNjQuYywKKyAgICAJcmVn LWkzODYtbGludXguYyBhbmQgcmVnLXg4Ni02NC1saW51eC5jIHdpdGggaTM4Ni5jLCBhbWQ2NC5j LAorICAgIAlpMzg2LWxpbnV4LmMgYW5kIGFtZDY0LWxpbnV4LmMuCisgICAgCShyZWctaTM4Ni5v KTogUmVtb3ZlZC4KKyAgICAJKHJlZy1pMzg2LmMpOiBMaWtld2lzZS4KKyAgICAJKHJlZy1pMzg2 LWxpbnV4Lm8pOiBMaWtld2lzZS4KKyAgICAJKHJlZy1pMzg2LWxpbnV4LmMpOiBMaWtld2lzZS4K KyAgICAJKHJlZy14ODYtNjQubyk6IExpa2V3aXNlLgorICAgIAkocmVnLXg4Ni02NC5jKTogTGlr ZXdpc2UuCisgICAgCShyZWcteDg2LTY0LWxpbnV4Lm8pOiBMaWtld2lzZS4KKyAgICAJKHJlZy14 ODYtNjQtbGludXguYyk6IExpa2V3aXNlLgorICAgIAkoaTM4Ni5vKTogTmV3LgorICAgIAkoaTM4 Ni5jKTogTGlrZXdpc2UuCisgICAgCShpMzg2LWxpbnV4Lm8pOiBMaWtld2lzZS4KKyAgICAJKGkz ODYtbGludXguYyk6IExpa2V3aXNlLgorICAgIAkoYW1kNjQubyk6IExpa2V3aXNlLgorICAgIAko YW1kNjQuYyk6IExpa2V3aXNlLgorICAgIAkoYW1kNjQtbGludXgubyk6IExpa2V3aXNlLgorICAg IAkoYW1kNjQtbGludXguYyk6IExpa2V3aXNlLgorICAgIAorICAgIAkqIGNvbmZpZ3VyZS5zcnYg KHNydl9pMzg2X3JlZ29iaik6IE5ldy4KKyAgICAJKHNydl9pMzg2X2xpbnV4X3JlZ29iaik6IExp a2V3aXNlLgorICAgIAkoc3J2X2FtZDY0X3JlZ29iaik6IExpa2V3aXNlLgorICAgIAkoc3J2X2Ft ZDY0X2xpbnV4X3JlZ29iaik6IExpa2V3aXNlLgorICAgIAkoc3J2X2kzODZfMzJiaXRfeG1sZmls ZXMpOiBMaWtld2lzZS4KKyAgICAJKHNydl9pMzg2XzY0Yml0X3htbGZpbGVzKTogTGlrZXdpc2Uu CisgICAgCShzcnZfaTM4Nl94bWxmaWxlcyk6IExpa2V3aXNlLgorICAgIAkoc3J2X2FtZDY0X3ht bGZpbGVzKTogTGlrZXdpc2UuCisgICAgCShzcnZfaTM4Nl9saW51eF94bWxmaWxlcyk6IExpa2V3 aXNlLgorICAgIAkoc3J2X2FtZDY0X2xpbnV4X3htbGZpbGVzKTogTGlrZXdpc2UuCisgICAgCShp WzM0NTY3XTg2LSotY3lnd2luKik6IFNldCBzcnZfcmVnb2JqIHRvICRzcnZfaTM4Nl9yZWdvYmou ICBTZXQKKyAgICAJc3J2X3htbGZpbGVzIHRvICRzcnZfaTM4Nl94bWxmaWxlcy4KKyAgICAJKGlb MzQ1NjddODYtKi1taW5ndzMyY2UqKTogTGlrZXdpc2UuCisgICAgCShpWzM0NTY3XTg2LSotbWlu Z3cqKTogTGlrZXdpc2UuCisgICAgCShpWzM0NTY3XTg2LSotbnRvKik6IExpa2V3aXNlLgorICAg IAkoaVszNDU2N104Ni0qLWxpbnV4Kik6IFNldCBzcnZfcmVnb2JqIHRvICRzcnZfaTM4Nl9saW51 eF9yZWdvYmoKKyAgICAJYW5kICRzcnZfYW1kNjRfbGludXhfcmVnb2JqLiAgU2V0IHNydl94bWxm aWxlcyB0bworICAgIAkkc3J2X2kzODZfbGludXhfeG1sZmlsZXMgYW5kICRzcnZfYW1kNjRfbGlu dXhfeG1sZmlsZXMuCisgICAgCSh4ODZfNjQtKi1saW51eCopOiBMaWtld2lzZS4KKyAgICAKKyAg ICAJKiBsaW51eC14ODYtbG93LmMgKGluaXRfcmVnaXN0ZXJzX3g4Nl82NF9saW51eCk6IFJlbW92 ZWQuCisgICAgCShpbml0X3JlZ2lzdGVyc19hbWQ2NF9saW51eCk6IE5ldy4KKyAgICAJKHg4Nl9h cmNoX3NldHVwKTogUmVwbGFjZSBpbml0X3JlZ2lzdGVyc194ODZfNjRfbGludXggd2l0aAorICAg IAlpbml0X3JlZ2lzdGVyc19hbWQ2NF9saW51eC4KKyAgICAKKyAgICBnZGIvdGVzdHN1aXRlLwor ICAgIAorICAgIDIwMTAtMDMtMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKyAg ICAKKyAgICAJKiBnZGIueG1sL3RkZXNjLXJlZ3MuZXhwIChhcmNoaXRlY3R1cmUpOiBOZXcuICBT ZXQgaXQgZm9yIHg4Ni4KKyAgICAJKGxvYWRfZGVzY3JpcHRpb24pOiBTZXQgYXJjaGl0ZWN0dXJl IGlmIGRlZmluZWQuCisKKy0tLSAuL2dkYi9hbWQ2NC1saW51eC1uYXQuYwkyMDEwLTA0LTAzIDIw OjI0OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCTIwMTAt MDQtMDMgMjA6NTk6NTIuMDAwMDAwMDAwICswMjAwCitAQCAtODE3LDYgKzgxNywzOSBAQCBhbWQ2 NF9saW51eF9zaWdpbmZvX2ZpeHVwIChzdHJ1Y3Qgc2lnaW5mCisgICAgIHJldHVybiAwOworIH0K KyAKKysvKiBHZXQgTGludXgveDg2IHRhcmdldCBkZXNjcmlwdGlvbiBmcm9tIHJ1bm5pbmcgdGFy Z2V0LgorKworKyAgIFZhbHVlIG9mIENTIHNlZ21lbnQgcmVnaXN0ZXI6CisrICAgICAxLiA2NGJp dCBwcm9jZXNzOiAweDMzLgorKyAgICAgMi4gMzJiaXQgcHJvY2VzczogMHgyMy4KKysgKi8KKysK KysjZGVmaW5lIEFNRDY0X0xJTlVYX1VTRVI2NF9DUwkweDMzCisrCisrc3RhdGljIGNvbnN0IHN0 cnVjdCB0YXJnZXRfZGVzYyAqCisrYW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbiAoc3RydWN0 IHRhcmdldF9vcHMgKm9wcykKKyt7CisrICB1bnNpZ25lZCBsb25nIGNzOworKyAgaW50IHRpZDsK KysKKysgIC8qIEdOVS9MaW51eCBMV1AgSUQncyBhcmUgcHJvY2VzcyBJRCdzLiAgKi8KKysgIHRp ZCA9IFRJREdFVCAoaW5mZXJpb3JfcHRpZCk7CisrICBpZiAodGlkID09IDApCisrICAgIHRpZCA9 IFBJREdFVCAoaW5mZXJpb3JfcHRpZCk7IC8qIE5vdCBhIHRocmVhZGVkIHByb2dyYW0uICAqLwor KworKyAgLyogR2V0IENTIHJlZ2lzdGVyLiAgKi8KKysgIGVycm5vID0gMDsKKysgIGNzID0gcHRy YWNlIChQVFJBQ0VfUEVFS1VTRVIsIHRpZCwKKysJICAgICAgIG9mZnNldG9mIChzdHJ1Y3QgdXNl cl9yZWdzX3N0cnVjdCwgY3MpLCAwKTsKKysgIGlmIChlcnJubyAhPSAwKQorKyAgICBwZXJyb3Jf d2l0aF9uYW1lIChfKCJDb3VsZG4ndCBnZXQgQ1MgcmVnaXN0ZXIiKSk7CisrCisrICBpZiAoY3Mg PT0gQU1ENjRfTElOVVhfVVNFUjY0X0NTKQorKyAgICByZXR1cm4gdGRlc2NfYW1kNjRfbGludXg7 CisrICBlbHNlCisrICAgIHJldHVybiB0ZGVzY19pMzg2X2xpbnV4OworK30KKysKKyAvKiBQcm92 aWRlIGEgcHJvdG90eXBlIHRvIHNpbGVuY2UgLVdtaXNzaW5nLXByb3RvdHlwZXMuICAqLworIHZv aWQgX2luaXRpYWxpemVfYW1kNjRfbGludXhfbmF0ICh2b2lkKTsKKyAKK0BAIC04NjEsNiArODk0 LDggQEAgX2luaXRpYWxpemVfYW1kNjRfbGludXhfbmF0ICh2b2lkKQorICAgbGludXhfZWxmY29y ZV93cml0ZV9wcnN0YXR1cyA9IGFtZDY0X2xpbnV4X2VsZmNvcmVfd3JpdGVfcHJzdGF0dXM7Cisg ICBsaW51eF9lbGZjb3JlX3dyaXRlX3ByZnByZWcgPSBhbWQ2NF9saW51eF9lbGZjb3JlX3dyaXRl X3ByZnByZWc7CisgCisrICB0LT50b19yZWFkX2Rlc2NyaXB0aW9uID0gYW1kNjRfbGludXhfcmVh ZF9kZXNjcmlwdGlvbjsKKysKKyAgIC8qIFJlZ2lzdGVyIHRoZSB0YXJnZXQuICAqLworICAgbGlu dXhfbmF0X2FkZF90YXJnZXQgKHQpOworICAgbGludXhfbmF0X3NldF9uZXdfdGhyZWFkICh0LCBh bWQ2NF9saW51eF9uZXdfdGhyZWFkKTsKKy0tLSAuL2dkYi9hbWQ2NC1saW51eC10ZGVwLmMJMjAx MC0wNC0wMyAyMDoyNDo1MS4wMDAwMDAwMDAgKzAyMDAKKysrKyAuL2dkYi9hbWQ2NC1saW51eC10 ZGVwLmMJMjAxMC0wNC0wMyAyMDo1OTo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zNyw2ICszNyw4 IEBACisgI2luY2x1ZGUgInNvbGliLXN2cjQuaCIKKyAjaW5jbHVkZSAieG1sLXN5c2NhbGwuaCIK KyAKKysjaW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9hbWQ2NC1saW51eC5jIgorKworIC8qIFRoZSBz eXNjYWxsJ3MgWE1MIGZpbGVuYW1lIGZvciBpMzg2LiAgKi8KKyAjZGVmaW5lIFhNTF9TWVNDQUxM X0ZJTEVOQU1FX0FNRDY0ICJzeXNjYWxscy9hbWQ2NC1saW51eC54bWwiCisgCitAQCAtMjM0LDI2 ICsyMzYsNiBAQCBzdGF0aWMgaW50IGFtZDY0X2xpbnV4X3NjX3JlZ19vZmZzZXRbXSA9CisgICAt MQkJCQkvKiAlZ3MgKi8KKyB9OworIAorLS8qIFJlcGxhY2VtZW50IHJlZ2lzdGVyIGZ1bmN0aW9u cyB3aGljaCBrbm93IGFib3V0ICVvcmlnX3JheC4gICovCistCistc3RhdGljIGNvbnN0IGNoYXIg KgorLWFtZDY0X2xpbnV4X3JlZ2lzdGVyX25hbWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBp bnQgcmVnKQorLXsKKy0gIGlmIChyZWcgPT0gQU1ENjRfTElOVVhfT1JJR19SQVhfUkVHTlVNKQor LSAgICByZXR1cm4gIm9yaWdfcmF4IjsKKy0KKy0gIHJldHVybiBhbWQ2NF9yZWdpc3Rlcl9uYW1l IChnZGJhcmNoLCByZWcpOworLX0KKy0KKy1zdGF0aWMgc3RydWN0IHR5cGUgKgorLWFtZDY0X2xp bnV4X3JlZ2lzdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnKQorLXsK Ky0gIGlmIChyZWcgPT0gQU1ENjRfTElOVVhfT1JJR19SQVhfUkVHTlVNKQorLSAgICByZXR1cm4g YnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9pbnQ2NDsKKy0KKy0gIHJldHVybiBhbWQ2 NF9yZWdpc3Rlcl90eXBlIChnZGJhcmNoLCByZWcpOworLX0KKy0KKyBzdGF0aWMgaW50CisgYW1k NjRfbGludXhfcmVnaXN0ZXJfcmVnZ3JvdXBfcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGlu dCByZWdudW0sCisgCQkJCSBzdHJ1Y3QgcmVnZ3JvdXAgKmdyb3VwKQorQEAgLTEzMzQsMTAgKzEz MTYsMzIgQEAgYW1kNjRfbGludXhfcmVjb3JkX3NpZ25hbCAoc3RydWN0IGdkYmFyYworICAgcmV0 dXJuIDA7CisgfQorIAorKy8qIEdldCBMaW51eC94ODYgdGFyZ2V0IGRlc2NyaXB0aW9uIGZyb20g Y29yZSBkdW1wLiAgKi8KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICoKKyth bWQ2NF9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LAorKwkJCQkgIHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQsCisrCQkJCSAgYmZkICphYmZkKQor K3sKKysgIGFzZWN0aW9uICpzZWN0aW9uID0gYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKGFiZmQs ICIucmVnMiIpOworKworKyAgaWYgKHNlY3Rpb24gPT0gTlVMTCkKKysgICAgcmV0dXJuIE5VTEw7 CisrCisrICAvKiBMaW51eC94ODYtNjQuICAqLworKyAgcmV0dXJuIHRkZXNjX2FtZDY0X2xpbnV4 OworK30KKysKKyBzdGF0aWMgdm9pZAorIGFtZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2Ri YXJjaF9pbmZvIGluZm8sIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQorIHsKKyAgIHN0cnVjdCBn ZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKyAgY29uc3Qgc3Ry dWN0IHRhcmdldF9kZXNjICp0ZGVzYyA9IGluZm8udGFyZ2V0X2Rlc2M7CisrICBzdHJ1Y3QgdGRl c2NfYXJjaF9kYXRhICp0ZGVzY19kYXRhID0gKHZvaWQgKikgaW5mby50ZGVwX2luZm87CisrICBj b25zdCBzdHJ1Y3QgdGRlc2NfZmVhdHVyZSAqZmVhdHVyZTsKKysgIGludCB2YWxpZF9wOworKwor KyAgZ2RiX2Fzc2VydCAodGRlc2NfZGF0YSk7CisgCisgICB0ZGVwLT5ncmVnc2V0X3JlZ19vZmZz ZXQgPSBhbWQ2NF9saW51eF9ncmVnc2V0X3JlZ19vZmZzZXQ7CisgICB0ZGVwLT5ncmVnc2V0X251 bV9yZWdzID0gQVJSQVlfU0laRSAoYW1kNjRfbGludXhfZ3JlZ3NldF9yZWdfb2Zmc2V0KTsKK0BA IC0xMzQ1LDYgKzEzNDksMjMgQEAgYW1kNjRfbGludXhfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNo X2luZgorIAorICAgYW1kNjRfaW5pdF9hYmkgKGluZm8sIGdkYmFyY2gpOworIAorKyAgLyogUmVz ZXJ2ZSBhIG51bWJlciBmb3Igb3JpZ19yYXguICAqLworKyAgc2V0X2dkYmFyY2hfbnVtX3JlZ3Mg KGdkYmFyY2gsIEFNRDY0X0xJTlVYX05VTV9SRUdTKTsKKysKKysgIGlmICghIHRkZXNjX2hhc19y ZWdpc3RlcnMgKHRkZXNjKSkKKysgICAgdGRlc2MgPSB0ZGVzY19hbWQ2NF9saW51eDsKKysgIHRk ZXAtPnRkZXNjID0gdGRlc2M7CisrCisrICBmZWF0dXJlID0gdGRlc2NfZmluZF9mZWF0dXJlICh0 ZGVzYywgIm9yZy5nbnUuZ2RiLmkzODYubGludXgiKTsKKysgIGlmIChmZWF0dXJlID09IE5VTEwp CisrICAgIHJldHVybjsKKysKKysgIHZhbGlkX3AgPSB0ZGVzY19udW1iZXJlZF9yZWdpc3RlciAo ZmVhdHVyZSwgdGRlc2NfZGF0YSwKKysJCQkJICAgICBBTUQ2NF9MSU5VWF9PUklHX1JBWF9SRUdO VU0sCisrCQkJCSAgICAgIm9yaWdfcmF4Iik7CisrICBpZiAoIXZhbGlkX3ApCisrICAgIHJldHVy bjsKKysKKyAgIHRkZXAtPnNpZ3RyYW1wX3AgPSBhbWQ2NF9saW51eF9zaWd0cmFtcF9wOworICAg dGRlcC0+c2lnY29udGV4dF9hZGRyID0gYW1kNjRfbGludXhfc2lnY29udGV4dF9hZGRyOworICAg dGRlcC0+c2NfcmVnX29mZnNldCA9IGFtZDY0X2xpbnV4X3NjX3JlZ19vZmZzZXQ7CitAQCAtMTM1 OCwxMCArMTM3OSw4IEBAIGFtZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmYK KyAKKyAgIC8qIEFkZCB0aGUgJW9yaWdfcmF4IHJlZ2lzdGVyIHVzZWQgZm9yIHN5c2NhbGwgcmVz dGFydGluZy4gICovCisgICBzZXRfZ2RiYXJjaF93cml0ZV9wYyAoZ2RiYXJjaCwgYW1kNjRfbGlu dXhfd3JpdGVfcGMpOworLSAgc2V0X2dkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gsIEFNRDY0X0xJ TlVYX05VTV9SRUdTKTsKKy0gIHNldF9nZGJhcmNoX3JlZ2lzdGVyX25hbWUgKGdkYmFyY2gsIGFt ZDY0X2xpbnV4X3JlZ2lzdGVyX25hbWUpOworLSAgc2V0X2dkYmFyY2hfcmVnaXN0ZXJfdHlwZSAo Z2RiYXJjaCwgYW1kNjRfbGludXhfcmVnaXN0ZXJfdHlwZSk7CistICBzZXRfZ2RiYXJjaF9yZWdp c3Rlcl9yZWdncm91cF9wIChnZGJhcmNoLCBhbWQ2NF9saW51eF9yZWdpc3Rlcl9yZWdncm91cF9w KTsKKysKKysgIHRkZXAtPnJlZ2lzdGVyX3JlZ2dyb3VwX3AgPSBhbWQ2NF9saW51eF9yZWdpc3Rl cl9yZWdncm91cF9wOworIAorICAgLyogRnVuY3Rpb25zIGZvciAnY2F0Y2ggc3lzY2FsbCcuICAq LworICAgc2V0X3htbF9zeXNjYWxsX2ZpbGVfbmFtZSAoWE1MX1NZU0NBTExfRklMRU5BTUVfQU1E NjQpOworQEAgLTEzNzUsNiArMTM5NCw5IEBAIGFtZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3Qg Z2RiYXJjaF9pbmYKKyAgIC8qIEdOVS9MaW51eCB1c2VzIFNWUjQtc3R5bGUgc2hhcmVkIGxpYnJh cmllcy4gICovCisgICBzZXRfZ2RiYXJjaF9za2lwX3RyYW1wb2xpbmVfY29kZSAoZ2RiYXJjaCwg ZmluZF9zb2xpYl90cmFtcG9saW5lX3RhcmdldCk7CisgCisrICBzZXRfZ2RiYXJjaF9jb3JlX3Jl YWRfZGVzY3JpcHRpb24gKGdkYmFyY2gsCisrCQkJCSAgICAgYW1kNjRfbGludXhfY29yZV9yZWFk X2Rlc2NyaXB0aW9uKTsKKysKKyAgIC8qIERpc3BsYWNlZCBzdGVwcGluZy4gICovCisgICBzZXRf Z2RiYXJjaF9kaXNwbGFjZWRfc3RlcF9jb3B5X2luc24gKGdkYmFyY2gsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtZDY0X2Rpc3BsYWNlZF9zdGVwX2NvcHlfaW5z bik7CitAQCAtMTU3MSw0ICsxNTkzLDcgQEAgX2luaXRpYWxpemVfYW1kNjRfbGludXhfdGRlcCAo dm9pZCkKKyB7CisgICBnZGJhcmNoX3JlZ2lzdGVyX29zYWJpIChiZmRfYXJjaF9pMzg2LCBiZmRf bWFjaF94ODZfNjQsCisgCQkJICBHREJfT1NBQklfTElOVVgsIGFtZDY0X2xpbnV4X2luaXRfYWJp KTsKKysKKysgIC8qIEluaXRpYWxpemUgdGhlIExpbnV4IHRhcmdldCBkZXNjcmlwdGlvbiAgKi8K KysgIGluaXRpYWxpemVfdGRlc2NfYW1kNjRfbGludXggKCk7CisgfQorLS0tIC4vZ2RiL2FtZDY0 LWxpbnV4LXRkZXAuaAkyMDEwLTAxLTAxIDA4OjMxOjI5LjAwMDAwMDAwMCArMDEwMAorKysrIC4v Z2RiL2FtZDY0LWxpbnV4LXRkZXAuaAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIw MAorQEAgLTMxLDYgKzMxLDkgQEAKKyAvKiBUb3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJzIGZvciBH TlUvTGludXguICAqLworICNkZWZpbmUgQU1ENjRfTElOVVhfTlVNX1JFR1MgKEFNRDY0X0xJTlVY X09SSUdfUkFYX1JFR05VTSArIDEpCisgCisrLyogTGludXggdGFyZ2V0IGRlc2NyaXB0aW9uLiAg Ki8KKytleHRlcm4gc3RydWN0IHRhcmdldF9kZXNjICp0ZGVzY19hbWQ2NF9saW51eDsKKysKKyAv KiBFbnVtIHRoYXQgZGVmaW5lcyB0aGUgc3lzY2FsbCBpZGVudGlmaWVycyBmb3IgYW1kNjQgbGlu dXguCisgICAgVXNlZCBmb3IgcHJvY2VzcyByZWNvcmQvcmVwbGF5LCB0aGVzZSB3aWxsIGJlIHRy YW5zbGF0ZWQgaW50bworICAgIGEgZ2RiLWNhbm9uaWNhbCBzZXQgb2Ygc3lzY2FsbCBpZHMgaW4g bGludXgtcmVjb3JkLmMuICAqLworLS0tIC4vZ2RiL2FtZDY0LXRkZXAuYwkyMDEwLTA0LTAzIDIw OjI0OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2FtZDY0LXRkZXAuYwkyMDEwLTA0LTAz IDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTQyLDYgKzQyLDggQEAKKyAjaW5jbHVkZSAi YW1kNjQtdGRlcC5oIgorICNpbmNsdWRlICJpMzg3LXRkZXAuaCIKKyAKKysjaW5jbHVkZSAiZmVh dHVyZXMvaTM4Ni9hbWQ2NC5jIgorKworIC8qIE5vdGUgdGhhdCB0aGUgQU1ENjQgYXJjaGl0ZWN0 dXJlIHdhcyBwcmV2aW91c2x5IGtub3duIGFzIHg4Ni02NC4KKyAgICBUaGUgbGF0dGVyIGlzIChm b3JldmVyKSBlbmdyYXZlZCBpbnRvIHRoZSBjYW5vbmljYWwgc3lzdGVtIG5hbWUgYXMKKyAgICBy ZXR1cm5lZCBieSBjb25maWcuZ3Vlc3MsIGFuZCB1c2VkIGFzIHRoZSBuYW1lIGZvciB0aGUgQU1E NjQgcG9ydAorQEAgLTgzLDQ3ICs4NSw2IEBAIHN0YXRpYyBpbnQgYW1kNjRfZHVtbXlfY2FsbF9p bnRlZ2VyX3JlZ3MKKyAgIDkJCQkJLyogJXI5ICovCisgfTsKKyAKKy0vKiBSZXR1cm4gdGhlIG5h bWUgb2YgcmVnaXN0ZXIgUkVHTlVNLiAgKi8KKy0KKy1jb25zdCBjaGFyICoKKy1hbWQ2NF9yZWdp c3Rlcl9uYW1lIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSkKKy17CistICBp ZiAocmVnbnVtID49IDAgJiYgcmVnbnVtIDwgQU1ENjRfTlVNX1JFR1MpCistICAgIHJldHVybiBh bWQ2NF9yZWdpc3Rlcl9uYW1lc1tyZWdudW1dOworLQorLSAgcmV0dXJuIE5VTEw7CistfQorLQor LS8qIFJldHVybiB0aGUgR0RCIHR5cGUgb2JqZWN0IGZvciB0aGUgInN0YW5kYXJkIiBkYXRhIHR5 cGUgb2YgZGF0YSBpbgorLSAgIHJlZ2lzdGVyIFJFR05VTS4gKi8KKy0KKy1zdHJ1Y3QgdHlwZSAq CistYW1kNjRfcmVnaXN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdu dW0pCisteworLSAgaWYgKHJlZ251bSA+PSBBTUQ2NF9SQVhfUkVHTlVNICYmIHJlZ251bSA8PSBB TUQ2NF9SRElfUkVHTlVNKQorLSAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVp bHRpbl9pbnQ2NDsKKy0gIGlmIChyZWdudW0gPT0gQU1ENjRfUkJQX1JFR05VTSB8fCByZWdudW0g PT0gQU1ENjRfUlNQX1JFR05VTSkKKy0gICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCkt PmJ1aWx0aW5fZGF0YV9wdHI7CistICBpZiAocmVnbnVtID49IEFNRDY0X1I4X1JFR05VTSAmJiBy ZWdudW0gPD0gQU1ENjRfUjE1X1JFR05VTSkKKy0gICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2Ri YXJjaCktPmJ1aWx0aW5faW50NjQ7CistICBpZiAocmVnbnVtID09IEFNRDY0X1JJUF9SRUdOVU0p CistICAgIHJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2Z1bmNfcHRyOwor LSAgaWYgKHJlZ251bSA9PSBBTUQ2NF9FRkxBR1NfUkVHTlVNKQorLSAgICByZXR1cm4gaTM4Nl9l ZmxhZ3NfdHlwZSAoZ2RiYXJjaCk7CistICBpZiAocmVnbnVtID49IEFNRDY0X0NTX1JFR05VTSAm JiByZWdudW0gPD0gQU1ENjRfR1NfUkVHTlVNKQorLSAgICByZXR1cm4gYnVpbHRpbl90eXBlIChn ZGJhcmNoKS0+YnVpbHRpbl9pbnQzMjsKKy0gIGlmIChyZWdudW0gPj0gQU1ENjRfU1QwX1JFR05V TSAmJiByZWdudW0gPD0gQU1ENjRfU1QwX1JFR05VTSArIDcpCistICAgIHJldHVybiBpMzg3X2V4 dF90eXBlIChnZGJhcmNoKTsKKy0gIGlmIChyZWdudW0gPj0gQU1ENjRfRkNUUkxfUkVHTlVNICYm IHJlZ251bSA8PSBBTUQ2NF9GQ1RSTF9SRUdOVU0gKyA3KQorLSAgICByZXR1cm4gYnVpbHRpbl90 eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9pbnQzMjsKKy0gIGlmIChyZWdudW0gPj0gQU1ENjRfWE1N MF9SRUdOVU0gJiYgcmVnbnVtIDw9IEFNRDY0X1hNTTBfUkVHTlVNICsgMTUpCistICAgIHJldHVy biBpMzg2X3NzZV90eXBlIChnZGJhcmNoKTsKKy0gIGlmIChyZWdudW0gPT0gQU1ENjRfTVhDU1Jf UkVHTlVNKQorLSAgICByZXR1cm4gaTM4Nl9teGNzcl90eXBlIChnZGJhcmNoKTsKKy0KKy0gIGlu dGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sIF8oImludmFsaWQgcmVnbnVtIikpOwor LX0KKy0KKyAvKiBEV0FSRiBSZWdpc3RlciBOdW1iZXIgTWFwcGluZyBhcyBkZWZpbmVkIGluIHRo ZSBTeXN0ZW0gViBwc0FCSSwKKyAgICBzZWN0aW9uIDMuNi4gICovCisgCitAQCAtMjE1OCwxMSAr MjExOSwxOSBAQCB2b2lkCisgYW1kNjRfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5m bywgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCisgeworICAgc3RydWN0IGdkYmFyY2hfdGRlcCAq dGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisrICBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rl c2MgKnRkZXNjID0gaW5mby50YXJnZXRfZGVzYzsKKyAKKyAgIC8qIEFNRDY0IGdlbmVyYWxseSB1 c2VzIGBmeHNhdmUnIGluc3RlYWQgb2YgYGZzYXZlJyBmb3Igc2F2aW5nIGl0cworICAgICAgZmxv YXRpbmctcG9pbnQgcmVnaXN0ZXJzLiAgKi8KKyAgIHRkZXAtPnNpemVvZl9mcHJlZ3NldCA9IEkz ODdfU0laRU9GX0ZYU0FWRTsKKyAKKysgIGlmICghIHRkZXNjX2hhc19yZWdpc3RlcnMgKHRkZXNj KSkKKysgICAgdGRlc2MgPSB0ZGVzY19hbWQ2NDsKKysgIHRkZXAtPnRkZXNjID0gdGRlc2M7Cisr CisrICB0ZGVwLT5udW1fY29yZV9yZWdzID0gQU1ENjRfTlVNX0dSRUdTICsgSTM4N19OVU1fUkVH UzsKKysgIHRkZXAtPnJlZ2lzdGVyX25hbWVzID0gYW1kNjRfcmVnaXN0ZXJfbmFtZXM7CisrCisg ICAvKiBBTUQ2NCBoYXMgYW4gRlBVIGFuZCAxNiBTU0UgcmVnaXN0ZXJzLiAgKi8KKyAgIHRkZXAt PnN0MF9yZWdudW0gPSBBTUQ2NF9TVDBfUkVHTlVNOworICAgdGRlcC0+bnVtX3htbV9yZWdzID0g MTY7CitAQCAtMjE3OCw4ICsyMTQ3LDYgQEAgYW1kNjRfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNo X2luZm8gaW5mbworICAgc2V0X2dkYmFyY2hfbG9uZ19kb3VibGVfYml0IChnZGJhcmNoLCAxMjgp OworIAorICAgc2V0X2dkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gsIEFNRDY0X05VTV9SRUdTKTsK Ky0gIHNldF9nZGJhcmNoX3JlZ2lzdGVyX25hbWUgKGdkYmFyY2gsIGFtZDY0X3JlZ2lzdGVyX25h bWUpOworLSAgc2V0X2dkYmFyY2hfcmVnaXN0ZXJfdHlwZSAoZ2RiYXJjaCwgYW1kNjRfcmVnaXN0 ZXJfdHlwZSk7CisgCisgICAvKiBSZWdpc3RlciBudW1iZXJzIG9mIHZhcmlvdXMgaW1wb3J0YW50 IHJlZ2lzdGVycy4gICovCisgICBzZXRfZ2RiYXJjaF9zcF9yZWdudW0gKGdkYmFyY2gsIEFNRDY0 X1JTUF9SRUdOVU0pOyAvKiAlcnNwICovCitAQCAtMjI0MSw2ICsyMjA4LDE1IEBAIGFtZDY0X2lu aXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8KKyAKKyAgIHNldF9nZGJhcmNoX2dldF9s b25nam1wX3RhcmdldCAoZ2RiYXJjaCwgYW1kNjRfZ2V0X2xvbmdqbXBfdGFyZ2V0KTsKKyB9Cisr CisrLyogUHJvdmlkZSBhIHByb3RvdHlwZSB0byBzaWxlbmNlIC1XbWlzc2luZy1wcm90b3R5cGVz LiAgKi8KKyt2b2lkIF9pbml0aWFsaXplX2FtZDY0X3RkZXAgKHZvaWQpOworKworK3ZvaWQKKytf aW5pdGlhbGl6ZV9hbWQ2NF90ZGVwICh2b2lkKQorK3sKKysgIGluaXRpYWxpemVfdGRlc2NfYW1k NjQgKCk7CisrfQorIAwKKyAKKyAvKiBUaGUgNjQtYml0IEZYU0FWRSBmb3JtYXQgZGlmZmVycyBm cm9tIHRoZSAzMi1iaXQgZm9ybWF0IGluIHRoZQorLS0tIC4vZ2RiL2dkYnNlcnZlci9NYWtlZmls ZS5pbgkyMDEwLTAxLTA0IDE2OjAzOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2dkYnNl cnZlci9NYWtlZmlsZS5pbgkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorQEAg LTIwMyw5ICsyMDMsOSBAQCBjbGVhbjoKKyAJcm0gLWYgKi5vICR7QUREX0ZJTEVTfSAqfgorIAly bSAtZiB2ZXJzaW9uLmMKKyAJcm0gLWYgZ2Ric2VydmVyJChFWEVFWFQpIGdkYnJlcGxheSQoRVhF RVhUKSBjb3JlIG1ha2UubG9nCistCXJtIC1mIHJlZy1hcm0uYyByZWctaTM4Ni5jIHJlZy1pYTY0 LmMgcmVnLW0zMnIuYyByZWctbTY4ay5jCistCXJtIC1mIHJlZy1zaC5jIHJlZy1zcGFyYy5jIHJl Zy1zcHUuYyByZWcteDg2LTY0LmMgcmVnLWkzODYtbGludXguYworLQlybSAtZiByZWctY3Jpcy5j IHJlZy1jcmlzdjMyLmMgcmVnLXg4Ni02NC1saW51eC5jIHJlZy14dGVuc2EuYworKwlybSAtZiBy ZWctYXJtLmMgaTM4Ni5jIHJlZy1pYTY0LmMgcmVnLW0zMnIuYyByZWctbTY4ay5jCisrCXJtIC1m IHJlZy1zaC5jIHJlZy1zcGFyYy5jIHJlZy1zcHUuYyBhbWQ2NC5jIGkzODYtbGludXguYworKwly bSAtZiByZWctY3Jpcy5jIHJlZy1jcmlzdjMyLmMgYW1kNjQtbGludXguYyByZWcteHRlbnNhLmMK KyAJcm0gLWYgYXJtLXdpdGgtaXdtbXh0LmMKKyAJcm0gLWYgYXJtLXdpdGgtdmZwdjIuYyBhcm0t d2l0aC12ZnB2My5jIGFybS13aXRoLW5lb24uYworIAlybSAtZiBtaXBzLWxpbnV4LmMgbWlwczY0 LWxpbnV4LmMKK0BAIC0zNDUsMTIgKzM0NSwxMiBAQCByZWctY3Jpcy5jIDogJChzcmNkaXIpLy4u L3JlZ2Zvcm1hdHMvcmVnCisgcmVnLWNyaXN2MzIubyA6IHJlZy1jcmlzdjMyLmMgJChyZWdkZWZf aCkKKyByZWctY3Jpc3YzMi5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvcmVnLWNyaXN2MzIu ZGF0ICQocmVnZGF0X3NoKQorIAkkKFNIRUxMKSAkKHJlZ2RhdF9zaCkgJChzcmNkaXIpLy4uL3Jl Z2Zvcm1hdHMvcmVnLWNyaXN2MzIuZGF0IHJlZy1jcmlzdjMyLmMKKy1yZWctaTM4Ni5vIDogcmVn LWkzODYuYyAkKHJlZ2RlZl9oKQorLXJlZy1pMzg2LmMgOiAkKHNyY2RpcikvLi4vcmVnZm9ybWF0 cy9yZWctaTM4Ni5kYXQgJChyZWdkYXRfc2gpCistCSQoU0hFTEwpICQocmVnZGF0X3NoKSAkKHNy Y2RpcikvLi4vcmVnZm9ybWF0cy9yZWctaTM4Ni5kYXQgcmVnLWkzODYuYworLXJlZy1pMzg2LWxp bnV4Lm8gOiByZWctaTM4Ni1saW51eC5jICQocmVnZGVmX2gpCistcmVnLWkzODYtbGludXguYyA6 ICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL3JlZy1pMzg2LWxpbnV4LmRhdCAkKHJlZ2RhdF9zaCkK Ky0JJChTSEVMTCkgJChyZWdkYXRfc2gpICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL3JlZy1pMzg2 LWxpbnV4LmRhdCByZWctaTM4Ni1saW51eC5jCisraTM4Ni5vIDogaTM4Ni5jICQocmVnZGVmX2gp CisraTM4Ni5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LmRhdCAkKHJlZ2Rh dF9zaCkKKysJJChTSEVMTCkgJChyZWdkYXRfc2gpICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL2kz ODYvaTM4Ni5kYXQgaTM4Ni5jCisraTM4Ni1saW51eC5vIDogaTM4Ni1saW51eC5jICQocmVnZGVm X2gpCisraTM4Ni1saW51eC5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LWxp bnV4LmRhdCAkKHJlZ2RhdF9zaCkKKysJJChTSEVMTCkgJChyZWdkYXRfc2gpICQoc3JjZGlyKS8u Li9yZWdmb3JtYXRzL2kzODYvaTM4Ni1saW51eC5kYXQgaTM4Ni1saW51eC5jCisgcmVnLWlhNjQu byA6IHJlZy1pYTY0LmMgJChyZWdkZWZfaCkKKyByZWctaWE2NC5jIDogJChzcmNkaXIpLy4uL3Jl Z2Zvcm1hdHMvcmVnLWlhNjQuZGF0ICQocmVnZGF0X3NoKQorIAkkKFNIRUxMKSAkKHJlZ2RhdF9z aCkgJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvcmVnLWlhNjQuZGF0IHJlZy1pYTY0LmMKK0BAIC00 MzIsMTIgKzQzMiwxMiBAQCByZWctc3BhcmM2NC5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMv CisgcmVnLXNwdS5vIDogcmVnLXNwdS5jICQocmVnZGVmX2gpCisgcmVnLXNwdS5jIDogJChzcmNk aXIpLy4uL3JlZ2Zvcm1hdHMvcmVnLXNwdS5kYXQgJChyZWdkYXRfc2gpCisgCSQoU0hFTEwpICQo cmVnZGF0X3NoKSAkKHNyY2RpcikvLi4vcmVnZm9ybWF0cy9yZWctc3B1LmRhdCByZWctc3B1LmMK Ky1yZWcteDg2LTY0Lm8gOiByZWcteDg2LTY0LmMgJChyZWdkZWZfaCkKKy1yZWcteDg2LTY0LmMg OiAkKHNyY2RpcikvLi4vcmVnZm9ybWF0cy9yZWcteDg2LTY0LmRhdCAkKHJlZ2RhdF9zaCkKKy0J JChTSEVMTCkgJChyZWdkYXRfc2gpICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL3JlZy14ODYtNjQu ZGF0IHJlZy14ODYtNjQuYworLXJlZy14ODYtNjQtbGludXgubyA6IHJlZy14ODYtNjQtbGludXgu YyAkKHJlZ2RlZl9oKQorLXJlZy14ODYtNjQtbGludXguYyA6ICQoc3JjZGlyKS8uLi9yZWdmb3Jt YXRzL3JlZy14ODYtNjQtbGludXguZGF0ICQocmVnZGF0X3NoKQorLQkkKFNIRUxMKSAkKHJlZ2Rh dF9zaCkgJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1saW51eC5kYXQgcmVnLXg4 Ni02NC1saW51eC5jCisrYW1kNjQubyA6IGFtZDY0LmMgJChyZWdkZWZfaCkKKythbWQ2NC5jIDog JChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC5kYXQgJChyZWdkYXRfc2gpCisrCSQo U0hFTEwpICQocmVnZGF0X3NoKSAkKHNyY2RpcikvLi4vcmVnZm9ybWF0cy9pMzg2L2FtZDY0LmRh dCBhbWQ2NC5jCisrYW1kNjQtbGludXgubyA6IGFtZDY0LWxpbnV4LmMgJChyZWdkZWZfaCkKKyth bWQ2NC1saW51eC5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1saW51eC5k YXQgJChyZWdkYXRfc2gpCisrCSQoU0hFTEwpICQocmVnZGF0X3NoKSAkKHNyY2RpcikvLi4vcmVn Zm9ybWF0cy9pMzg2L2FtZDY0LWxpbnV4LmRhdCBhbWQ2NC1saW51eC5jCisgcmVnLXh0ZW5zYS5v IDogcmVnLXh0ZW5zYS5jICQocmVnZGVmX2gpCisgcmVnLXh0ZW5zYS5jIDogJChzcmNkaXIpLy4u L3JlZ2Zvcm1hdHMvcmVnLXh0ZW5zYS5kYXQgJChyZWdkYXRfc2gpCisgCSQoU0hFTEwpICQocmVn ZGF0X3NoKSAkKHNyY2RpcikvLi4vcmVnZm9ybWF0cy9yZWcteHRlbnNhLmRhdCByZWcteHRlbnNh LmMKKy0tLSAuL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLnNydgkyMDEwLTAxLTA0IDE2OjAzOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuc3J2CTIwMTAt MDQtMDMgMjA6NTk6NTIuMDAwMDAwMDAwICswMjAwCitAQCAtMjIsNiArMjIsMTggQEAKKyAjIERl ZmF1bHQgaG9zdGlvX2xhc3RfZXJyb3IgaW1wbGVtZW50YXRpb24KKyBzcnZfaG9zdGlvX2Vycl9v YmpzPSJob3N0aW8tZXJybm8ubyIKKyAKKytzcnZfaTM4Nl9yZWdvYmo9aTM4Ni5vCisrc3J2X2kz ODZfbGludXhfcmVnb2JqPWkzODYtbGludXgubworK3Nydl9hbWQ2NF9yZWdvYmo9YW1kNjQubwor K3Nydl9hbWQ2NF9saW51eF9yZWdvYmo9YW1kNjQtbGludXgubworKworK3Nydl9pMzg2XzMyYml0 X3htbGZpbGVzPSJpMzg2LzMyYml0LWNvcmUueG1sIGkzODYvMzJiaXQtc3NlLnhtbCIKKytzcnZf aTM4Nl82NGJpdF94bWxmaWxlcz0iaTM4Ni82NGJpdC1jb3JlLnhtbCBpMzg2LzY0Yml0LXNzZS54 bWwiCisrc3J2X2kzODZfeG1sZmlsZXM9ImkzODYvaTM4Ni54bWwgJHNydl9pMzg2XzMyYml0X3ht bGZpbGVzIgorK3Nydl9hbWQ2NF94bWxmaWxlcz0iaTM4Ni9hbWQ2NC54bWwgJHNydl9pMzg2XzY0 Yml0X3htbGZpbGVzIgorK3Nydl9pMzg2X2xpbnV4X3htbGZpbGVzPSJpMzg2L2kzODYtbGludXgu eG1sIGkzODYvMzJiaXQtbGludXgueG1sICRzcnZfaTM4Nl8zMmJpdF94bWxmaWxlcyIKKytzcnZf YW1kNjRfbGludXhfeG1sZmlsZXM9ImkzODYvYW1kNjQtbGludXgueG1sIGkzODYvNjRiaXQtbGlu dXgueG1sICRzcnZfaTM4Nl82NGJpdF94bWxmaWxlcyIKKysKKyAjIElucHV0IGlzIHRha2VuIGZy b20gdGhlICIke3RhcmdldH0iIHZhcmlhYmxlLgorIAorIGNhc2UgIiR7dGFyZ2V0fSIgaW4KK0BA IC02MCwxMiArNzIsMTUgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorIAkJCXNydl9saW51eF91c3Jy ZWdzPXllcworIAkJCXNydl9saW51eF90aHJlYWRfZGI9eWVzCisgCQkJOzsKKy0gIGlbMzQ1Njdd ODYtKi1jeWd3aW4qKQlzcnZfcmVnb2JqPXJlZy1pMzg2Lm8KKysgIGlbMzQ1NjddODYtKi1jeWd3 aW4qKQlzcnZfcmVnb2JqPSIkc3J2X2kzODZfcmVnb2JqIgorIAkJCXNydl90Z3RvYmo9ImkzODYt bG93Lm8gd2luMzItbG93Lm8gd2luMzItaTM4Ni1sb3cubyIKKysJCQlzcnZfeG1sZmlsZXM9IiRz cnZfaTM4Nl94bWxmaWxlcyIKKyAJCQk7OworLSAgaVszNDU2N104Ni0qLWxpbnV4KikJc3J2X3Jl Z29iaj1yZWctaTM4Ni1saW51eC5vCisrICBpWzM0NTY3XTg2LSotbGludXgqKQlzcnZfcmVnb2Jq PSIkc3J2X2kzODZfbGludXhfcmVnb2JqIgorKwkJCXNydl94bWxmaWxlcz0iJHNydl9pMzg2X2xp bnV4X3htbGZpbGVzIgorIAkJCWlmIHRlc3QgIiRnZGJfY3ZfaTM4Nl9pc194ODZfNjQiID0geWVz IDsgdGhlbgorLQkJCSAgICBzcnZfcmVnb2JqPSJyZWcteDg2LTY0LWxpbnV4Lm8gJHNydl9yZWdv YmoiCisrCQkJICAgIHNydl9yZWdvYmo9IiRzcnZfcmVnb2JqICRzcnZfYW1kNjRfbGludXhfcmVn b2JqIgorKwkJCSAgICBzcnZfeG1sZmlsZXM9IiR7c3J2X3htbGZpbGVzfSAkc3J2X2FtZDY0X2xp bnV4X3htbGZpbGVzIgorIAkJCWZpCisgCQkJc3J2X3RndG9iaj0ibGludXgtbG93Lm8gbGludXgt eDg2LWxvdy5vIGkzODYtbG93Lm8gaTM4Ny1mcC5vIgorIAkJCXNydl9saW51eF91c3JyZWdzPXll cworQEAgLTczLDIwICs4OCwyMyBAQCBjYXNlICIke3RhcmdldH0iIGluCisgCQkJc3J2X2xpbnV4 X3RocmVhZF9kYj15ZXMKKyAJCQk7OworICAgaVszNDU2N104Ni0qLW1pbmd3MzJjZSopCistCQkJ c3J2X3JlZ29iaj1yZWctaTM4Ni5vCisrCQkJc3J2X3JlZ29iaj0iJHNydl9pMzg2X3JlZ29iaiIK KyAJCQlzcnZfdGd0b2JqPSJpMzg2LWxvdy5vIHdpbjMyLWxvdy5vIHdpbjMyLWkzODYtbG93Lm8i CisgCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSB3aW5jZWNvbXBhdC5vIgorKwkJCXNydl94 bWxmaWxlcz0iJHNydl9pMzg2X3htbGZpbGVzIgorIAkJCSMgaG9zdGlvX2xhc3RfZXJyb3IgaW1w bGVtZW50YXRpb24gaXMgaW4gd2luMzItbG93LmMKKyAJCQlzcnZfaG9zdGlvX2Vycl9vYmpzPSIi CisgCQkJc3J2X21pbmd3PXllcworIAkJCXNydl9taW5nd2NlPXllcworIAkJCTs7CistICBpWzM0 NTY3XTg2LSotbWluZ3cqKQlzcnZfcmVnb2JqPXJlZy1pMzg2Lm8KKysgIGlbMzQ1NjddODYtKi1t aW5ndyopCXNydl9yZWdvYmo9IiRzcnZfaTM4Nl9yZWdvYmoiCisgCQkJc3J2X3RndG9iaj0iaTM4 Ni1sb3cubyB3aW4zMi1sb3cubyB3aW4zMi1pMzg2LWxvdy5vIgorKwkJCXNydl94bWxmaWxlcz0i JHNydl9pMzg2X3htbGZpbGVzIgorIAkJCXNydl9taW5ndz15ZXMKKyAJCQk7OworLSAgaVszNDU2 N104Ni0qLW50byopCXNydl9yZWdvYmo9cmVnLWkzODYubworKyAgaVszNDU2N104Ni0qLW50byop CXNydl9yZWdvYmo9IiRzcnZfaTM4Nl9yZWdvYmoiCisgCQkJc3J2X3RndG9iaj0ibnRvLWxvdy5v IG50by14ODYtbG93Lm8iCisrCQkJc3J2X3htbGZpbGVzPSIkc3J2X2kzODZfeG1sZmlsZXMiCisg CQkJc3J2X3FueD0ieWVzIgorIAkJCTs7CisgICBpYTY0LSotbGludXgqKQlzcnZfcmVnb2JqPXJl Zy1pYTY0Lm8KK0BAIC0yMDYsOCArMjI0LDkgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorICAgc3B1 Ki0qLSopCQlzcnZfcmVnb2JqPXJlZy1zcHUubworIAkJCXNydl90Z3RvYmo9InNwdS1sb3cubyIK KyAJCQk7OworLSAgeDg2XzY0LSotbGludXgqKQlzcnZfcmVnb2JqPSJyZWcteDg2LTY0LWxpbnV4 Lm8gcmVnLWkzODYtbGludXgubyIKKysgIHg4Nl82NC0qLWxpbnV4KikJc3J2X3JlZ29iaj0iJHNy dl9hbWQ2NF9saW51eF9yZWdvYmogJHNydl9pMzg2X2xpbnV4X3JlZ29iaiIKKyAJCQlzcnZfdGd0 b2JqPSJsaW51eC1sb3cubyBsaW51eC14ODYtbG93Lm8gaTM4Ni1sb3cubyBpMzg3LWZwLm8iCisr CQkJc3J2X3htbGZpbGVzPSIkc3J2X2kzODZfbGludXhfeG1sZmlsZXMgJHNydl9hbWQ2NF9saW51 eF94bWxmaWxlcyIKKyAJCQlzcnZfbGludXhfdXNycmVncz15ZXMgIyBUaGlzIGlzIGZvciBpMzg2 IHByb2dzLgorIAkJCXNydl9saW51eF9yZWdzZXRzPXllcworIAkJCXNydl9saW51eF90aHJlYWRf ZGI9eWVzCistLS0gLi9nZGIvZ2Ric2VydmVyL2xpbnV4LXg4Ni1sb3cuYwkyMDEwLTAxLTIwIDIz OjU1OjM4LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2dkYnNlcnZlci9saW51eC14ODYtbG93 LmMJMjAxMC0wNC0wMyAyMDo1OTo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yNywxMCArMjcsMTAg QEAKKyAKKyAjaW5jbHVkZSAiZ2RiX3Byb2Nfc2VydmljZS5oIgorIAorLS8qIERlZmluZWQgaW4g YXV0by1nZW5lcmF0ZWQgZmlsZSByZWctaTM4Ni1saW51eC5jLiAgKi8KKysvKiBEZWZpbmVkIGlu IGF1dG8tZ2VuZXJhdGVkIGZpbGUgaTM4Ni1saW51eC5jLiAgKi8KKyB2b2lkIGluaXRfcmVnaXN0 ZXJzX2kzODZfbGludXggKHZvaWQpOworLS8qIERlZmluZWQgaW4gYXV0by1nZW5lcmF0ZWQgZmls ZSByZWcteDg2LTY0LWxpbnV4LmMuICAqLworLXZvaWQgaW5pdF9yZWdpc3RlcnNfeDg2XzY0X2xp bnV4ICh2b2lkKTsKKysvKiBEZWZpbmVkIGluIGF1dG8tZ2VuZXJhdGVkIGZpbGUgYW1kNjQtbGlu dXguYy4gICovCisrdm9pZCBpbml0X3JlZ2lzdGVyc19hbWQ2NF9saW51eCAodm9pZCk7CisgCisg I2luY2x1ZGUgPHN5cy9yZWcuaD4KKyAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorQEAgLTc5Miw3 ICs3OTIsNyBAQCB4ODZfYXJjaF9zZXR1cCAodm9pZCkKKyAgICAgfQorICAgZWxzZSBpZiAodXNl XzY0Yml0KQorICAgICB7CistICAgICAgaW5pdF9yZWdpc3RlcnNfeDg2XzY0X2xpbnV4ICgpOwor KyAgICAgIGluaXRfcmVnaXN0ZXJzX2FtZDY0X2xpbnV4ICgpOworIAorICAgICAgIC8qIEFtZDY0 IGRvZXNuJ3QgaGF2ZSBIQVZFX0xJTlVYX1VTUlJFR1MuICAqLworICAgICAgIHRoZV9sb3dfdGFy Z2V0Lm51bV9yZWdzID0gLTE7CistLS0gLi9nZGIvaTM4Ni1saW51eC1uYXQuYwkyMDEwLTA0LTAz IDIwOjI0OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2kzODYtbGludXgtbmF0LmMJMjAx MC0wNC0wMyAyMDo1OTo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC04NjgsNiArODY4LDE0IEBAIGkz ODZfbGludXhfY2hpbGRfcG9zdF9zdGFydHVwX2luZmVyaW9yICgKKyAgIHN1cGVyX3Bvc3Rfc3Rh cnR1cF9pbmZlcmlvciAocHRpZCk7CisgfQorIAorKy8qIEdldCBMaW51eC94ODYgdGFyZ2V0IGRl c2NyaXB0aW9uIGZyb20gcnVubmluZyB0YXJnZXQuICAqLworKworK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgdGFyZ2V0X2Rlc2MgKgorK2kzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbiAoc3RydWN0IHRh cmdldF9vcHMgKm9wcykKKyt7CisrICByZXR1cm4gdGRlc2NfaTM4Nl9saW51eDsKKyt9CisrCisg dm9pZAorIF9pbml0aWFsaXplX2kzODZfbGludXhfbmF0ICh2b2lkKQorIHsKK0BAIC04OTcsNiAr OTA1LDggQEAgX2luaXRpYWxpemVfaTM4Nl9saW51eF9uYXQgKHZvaWQpCisgICB0LT50b19mZXRj aF9yZWdpc3RlcnMgPSBpMzg2X2xpbnV4X2ZldGNoX2luZmVyaW9yX3JlZ2lzdGVyczsKKyAgIHQt PnRvX3N0b3JlX3JlZ2lzdGVycyA9IGkzODZfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJz OworIAorKyAgdC0+dG9fcmVhZF9kZXNjcmlwdGlvbiA9IGkzODZfbGludXhfcmVhZF9kZXNjcmlw dGlvbjsKKysKKyAgIC8qIFJlZ2lzdGVyIHRoZSB0YXJnZXQuICAqLworICAgbGludXhfbmF0X2Fk ZF90YXJnZXQgKHQpOworICAgbGludXhfbmF0X3NldF9uZXdfdGhyZWFkICh0LCBpMzg2X2xpbnV4 X25ld190aHJlYWQpOworLS0tIC4vZ2RiL2kzODYtbGludXgtdGRlcC5jCTIwMTAtMDQtMDMgMjA6 MjQ6NTEuMDAwMDAwMDAwICswMjAwCisrKysgLi9nZGIvaTM4Ni1saW51eC10ZGVwLmMJMjAxMC0w NC0wMyAyMDo1OTo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC00Niw2ICs0Niw4IEBACisgI2luY2x1 ZGUgImxpbnV4LXJlY29yZC5oIgorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKysjaW5jbHVkZSAi ZmVhdHVyZXMvaTM4Ni9pMzg2LWxpbnV4LmMiCisrCisgLyogU3VwcG9ydGVkIHJlZ2lzdGVyIG5v dGUgc2VjdGlvbnMuICAqLworIHN0YXRpYyBzdHJ1Y3QgY29yZV9yZWdzZXRfc2VjdGlvbiBpMzg2 X2xpbnV4X3JlZ3NldF9zZWN0aW9uc1tdID0KKyB7CitAQCAtNTUsMTggKzU3LDYgQEAgc3RhdGlj IHN0cnVjdCBjb3JlX3JlZ3NldF9zZWN0aW9uIGkzODZfbAorICAgeyBOVUxMLCAwIH0KKyB9Owor IAorLS8qIFJldHVybiB0aGUgbmFtZSBvZiByZWdpc3RlciBSRUcuICAqLworLQorLXN0YXRpYyBj b25zdCBjaGFyICoKKy1pMzg2X2xpbnV4X3JlZ2lzdGVyX25hbWUgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLCBpbnQgcmVnKQorLXsKKy0gIC8qIERlYWwgd2l0aCB0aGUgZXh0cmEgIm9yaWdfZWF4 IiBwc2V1ZG8gcmVnaXN0ZXIuICAqLworLSAgaWYgKHJlZyA9PSBJMzg2X0xJTlVYX09SSUdfRUFY X1JFR05VTSkKKy0gICAgcmV0dXJuICJvcmlnX2VheCI7CistCistICByZXR1cm4gaTM4Nl9yZWdp c3Rlcl9uYW1lIChnZGJhcmNoLCByZWcpOworLX0KKy0KKyAvKiBSZXR1cm4gbm9uLXplcm8sIHdo ZW4gdGhlIHJlZ2lzdGVyIGlzIGluIHRoZSBjb3JyZXNwb25kaW5nIHJlZ2lzdGVyCisgICAgZ3Jv dXAuICBQdXQgdGhlIExJTlVYX09SSUdfRUFYIHJlZ2lzdGVyIGluIHRoZSBzeXN0ZW0gZ3JvdXAu ICAqLworIHN0YXRpYyBpbnQKK0BAIC01NzAsMjEgKzU2MCw1NyBAQCBzdGF0aWMgaW50IGkzODZf bGludXhfc2NfcmVnX29mZnNldFtdID0KKyAgIDAgKiA0CQkJCS8qICVncyAqLworIH07CisgCisr LyogR2V0IExpbnV4L3g4NiB0YXJnZXQgZGVzY3JpcHRpb24gZnJvbSBjb3JlIGR1bXAuICAqLwor KworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKgorK2kzODZfbGludXhfY29yZV9y ZWFkX2Rlc2NyaXB0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKKysJCQkJICBzdHJ1Y3Qg dGFyZ2V0X29wcyAqdGFyZ2V0LAorKwkJCQkgIGJmZCAqYWJmZCkKKyt7CisrICBhc2VjdGlvbiAq c2VjdGlvbiA9IGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lIChhYmZkLCAiLnJlZzIiKTsKKysKKysg IGlmIChzZWN0aW9uID09IE5VTEwpCisrICAgIHJldHVybiBOVUxMOworKworKyAgLyogTGludXgv aTM4Ni4gICovCisrICByZXR1cm4gdGRlc2NfaTM4Nl9saW51eDsKKyt9CisrCisgc3RhdGljIHZv aWQKKyBpMzg2X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoKQorIHsKKyAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBn ZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKyAgY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICp0ZGVz YyA9IGluZm8udGFyZ2V0X2Rlc2M7CisrICBzdHJ1Y3QgdGRlc2NfYXJjaF9kYXRhICp0ZGVzY19k YXRhID0gKHZvaWQgKikgaW5mby50ZGVwX2luZm87CisrICBjb25zdCBzdHJ1Y3QgdGRlc2NfZmVh dHVyZSAqZmVhdHVyZTsKKysgIGludCB2YWxpZF9wOworKworKyAgZ2RiX2Fzc2VydCAodGRlc2Nf ZGF0YSk7CisgCisgICAvKiBHTlUvTGludXggdXNlcyBFTEYuICAqLworICAgaTM4Nl9lbGZfaW5p dF9hYmkgKGluZm8sIGdkYmFyY2gpOworIAorLSAgLyogU2luY2Ugd2UgaGF2ZSB0aGUgZXh0cmEg Im9yaWdfZWF4IiByZWdpc3RlciBvbiBHTlUvTGludXgsIHdlIGhhdmUKKy0gICAgIHRvIGFkanVz dCBhIGZldyB0aGluZ3MuICAqLworKyAgLyogUmVzZXJ2ZSBhIG51bWJlciBmb3Igb3JpZ19lYXgu ICAqLworKyAgc2V0X2dkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gsIEkzODZfTElOVVhfTlVNX1JF R1MpOworKworKyAgaWYgKCEgdGRlc2NfaGFzX3JlZ2lzdGVycyAodGRlc2MpKQorKyAgICB0ZGVz YyA9IHRkZXNjX2kzODZfbGludXg7CisrICB0ZGVwLT50ZGVzYyA9IHRkZXNjOworKworKyAgZmVh dHVyZSA9IHRkZXNjX2ZpbmRfZmVhdHVyZSAodGRlc2MsICJvcmcuZ251LmdkYi5pMzg2LmxpbnV4 Iik7CisrICBpZiAoZmVhdHVyZSA9PSBOVUxMKQorKyAgICByZXR1cm47CisrCisrICB2YWxpZF9w ID0gdGRlc2NfbnVtYmVyZWRfcmVnaXN0ZXIgKGZlYXR1cmUsIHRkZXNjX2RhdGEsCisrCQkJCSAg ICAgSTM4Nl9MSU5VWF9PUklHX0VBWF9SRUdOVU0sCisrCQkJCSAgICAgIm9yaWdfZWF4Iik7Cisr ICBpZiAoIXZhbGlkX3ApCisrICAgIHJldHVybjsKKyAKKysgIC8qIEFkZCB0aGUgJW9yaWdfZWF4 IHJlZ2lzdGVyIHVzZWQgZm9yIHN5c2NhbGwgcmVzdGFydGluZy4gICovCisgICBzZXRfZ2RiYXJj aF93cml0ZV9wYyAoZ2RiYXJjaCwgaTM4Nl9saW51eF93cml0ZV9wYyk7CistICBzZXRfZ2RiYXJj aF9udW1fcmVncyAoZ2RiYXJjaCwgSTM4Nl9MSU5VWF9OVU1fUkVHUyk7CistICBzZXRfZ2RiYXJj aF9yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCBpMzg2X2xpbnV4X3JlZ2lzdGVyX25hbWUpOworLSAg c2V0X2dkYmFyY2hfcmVnaXN0ZXJfcmVnZ3JvdXBfcCAoZ2RiYXJjaCwgaTM4Nl9saW51eF9yZWdp c3Rlcl9yZWdncm91cF9wKTsKKysKKysgIHRkZXAtPnJlZ2lzdGVyX3JlZ2dyb3VwX3AgPSBpMzg2 X2xpbnV4X3JlZ2lzdGVyX3JlZ2dyb3VwX3A7CisgCisgICB0ZGVwLT5ncmVnc2V0X3JlZ19vZmZz ZXQgPSBpMzg2X2xpbnV4X2dyZWdzZXRfcmVnX29mZnNldDsKKyAgIHRkZXAtPmdyZWdzZXRfbnVt X3JlZ3MgPSBBUlJBWV9TSVpFIChpMzg2X2xpbnV4X2dyZWdzZXRfcmVnX29mZnNldCk7CitAQCAt NzgzLDYgKzgwOSw5IEBAIGkzODZfbGludXhfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8K KyAgIC8qIEluc3RhbGwgc3VwcG9ydGVkIHJlZ2lzdGVyIG5vdGUgc2VjdGlvbnMuICAqLworICAg c2V0X2dkYmFyY2hfY29yZV9yZWdzZXRfc2VjdGlvbnMgKGdkYmFyY2gsIGkzODZfbGludXhfcmVn c2V0X3NlY3Rpb25zKTsKKyAKKysgIHNldF9nZGJhcmNoX2NvcmVfcmVhZF9kZXNjcmlwdGlvbiAo Z2RiYXJjaCwKKysJCQkJICAgICBpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik7Cisr CisgICAvKiBEaXNwbGFjZWQgc3RlcHBpbmcuICAqLworICAgc2V0X2dkYmFyY2hfZGlzcGxhY2Vk X3N0ZXBfY29weV9pbnNuIChnZGJhcmNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaW1wbGVfZGlzcGxhY2VkX3N0ZXBfY29weV9pbnNuKTsKK0BAIC04MTEsNCAr ODQwLDcgQEAgX2luaXRpYWxpemVfaTM4Nl9saW51eF90ZGVwICh2b2lkKQorIHsKKyAgIGdkYmFy Y2hfcmVnaXN0ZXJfb3NhYmkgKGJmZF9hcmNoX2kzODYsIDAsIEdEQl9PU0FCSV9MSU5VWCwKKyAJ CQkgIGkzODZfbGludXhfaW5pdF9hYmkpOworKworKyAgLyogSW5pdGlhbGl6ZSB0aGUgTGludXgg dGFyZ2V0IGRlc2NyaXB0aW9uICAqLworKyAgaW5pdGlhbGl6ZV90ZGVzY19pMzg2X2xpbnV4ICgp OworIH0KKy0tLSAuL2dkYi9pMzg2LWxpbnV4LXRkZXAuaAkyMDEwLTAxLTAxIDA4OjMxOjM0LjAw MDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2kzODYtbGludXgtdGRlcC5oCTIwMTAtMDQtMDMgMjA6 NTk6NTIuMDAwMDAwMDAwICswMjAwCitAQCAtMzUsNCArMzUsNyBAQAorIC8qIFRvdGFsIG51bWJl ciBvZiByZWdpc3RlcnMgZm9yIEdOVS9MaW51eC4gICovCisgI2RlZmluZSBJMzg2X0xJTlVYX05V TV9SRUdTIChJMzg2X0xJTlVYX09SSUdfRUFYX1JFR05VTSArIDEpCisgCisrLyogTGludXggdGFy Z2V0IGRlc2NyaXB0aW9uLiAgKi8KKytleHRlcm4gc3RydWN0IHRhcmdldF9kZXNjICp0ZGVzY19p Mzg2X2xpbnV4OworKworICNlbmRpZiAvKiBpMzg2LWxpbnV4LXRkZXAuaCAqLworLS0tIC4vZ2Ri L2kzODYtbnRvLXRkZXAuYwkyMDEwLTAxLTAxIDA4OjMxOjM0LjAwMDAwMDAwMCArMDEwMAorKysr IC4vZ2RiL2kzODYtbnRvLXRkZXAuYwkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIw MAorQEAgLTEyMiw3ICsxMjIsNyBAQCBpMzg2bnRvX3JlZ3NldF9pZCAoaW50IHJlZ25vKQorICAg ICByZXR1cm4gTlRPX1JFR19FTkQ7CisgICBlbHNlIGlmIChyZWdubyA8IEkzODZfTlVNX0dSRUdT KQorICAgICByZXR1cm4gTlRPX1JFR19HRU5FUkFMOworLSAgZWxzZSBpZiAocmVnbm8gPCBJMzg2 X05VTV9HUkVHUyArIEkzODZfTlVNX0ZSRUdTKQorKyAgZWxzZSBpZiAocmVnbm8gPCBJMzg2X05V TV9HUkVHUyArIEkzODdfTlVNX1JFR1MpCisgICAgIHJldHVybiBOVE9fUkVHX0ZMT0FUOworICAg ZWxzZSBpZiAocmVnbm8gPCBJMzg2X1NTRV9OVU1fUkVHUykKKyAgICAgcmV0dXJuIE5UT19SRUdf RkxPQVQ7IC8qIFdlIHN0b3JlIHhtbSByZWdpc3RlcnMgaW4gZnhzYXZlX2FyZWEuICAqLworLS0t IC4vZ2RiL2kzODYtdGRlcC5jCTIwMTAtMDQtMDMgMjA6MjQ6NTEuMDAwMDAwMDAwICswMjAwCisr KysgLi9nZGIvaTM4Ni10ZGVwLmMJMjAxMC0wNC0wMyAyMDo1OTo1Mi4wMDAwMDAwMDAgKzAyMDAK K0BAIC01NCw5ICs1NCwxMSBAQAorICNpbmNsdWRlICJyZWNvcmQuaCIKKyAjaW5jbHVkZSA8c3Rk aW50Lmg+CisgCisrI2luY2x1ZGUgImZlYXR1cmVzL2kzODYvaTM4Ni5jIgorKworIC8qIFJlZ2lz dGVyIG5hbWVzLiAgKi8KKyAKKy1zdGF0aWMgY2hhciAqaTM4Nl9yZWdpc3Rlcl9uYW1lc1tdID0K KytzdGF0aWMgY29uc3QgY2hhciAqaTM4Nl9yZWdpc3Rlcl9uYW1lc1tdID0KKyB7CisgICAiZWF4 IiwgICAiZWN4IiwgICAgImVkeCIsICAgImVieCIsCisgICAiZXNwIiwgICAiZWJwIiwgICAgImVz aSIsICAgImVkaSIsCitAQCAtNzEsMTEgKzczLDkgQEAgc3RhdGljIGNoYXIgKmkzODZfcmVnaXN0 ZXJfbmFtZXNbXSA9CisgICAibXhjc3IiCisgfTsKKyAKKy1zdGF0aWMgY29uc3QgaW50IGkzODZf bnVtX3JlZ2lzdGVyX25hbWVzID0gQVJSQVlfU0laRSAoaTM4Nl9yZWdpc3Rlcl9uYW1lcyk7Cist CisgLyogUmVnaXN0ZXIgbmFtZXMgZm9yIE1NWCBwc2V1ZG8tcmVnaXN0ZXJzLiAgKi8KKyAKKy1z dGF0aWMgY2hhciAqaTM4Nl9tbXhfbmFtZXNbXSA9Cisrc3RhdGljIGNvbnN0IGNoYXIgKmkzODZf bW14X25hbWVzW10gPQorIHsKKyAgICJtbTAiLCAibW0xIiwgIm1tMiIsICJtbTMiLAorICAgIm1t NCIsICJtbTUiLCAibW02IiwgIm1tNyIKK0BAIC0xNDcsMTYgKzE0NywxMSBAQCBpMzg2X2ZwY19y ZWdudW1fcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyCisgCisgLyogUmV0dXJuIHRoZSBuYW1lIG9m IHJlZ2lzdGVyIFJFR05VTS4gICovCisgCistY29uc3QgY2hhciAqCistaTM4Nl9yZWdpc3Rlcl9u YW1lIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSkKKytzdGF0aWMgY29uc3Qg Y2hhciAqCisraTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIGludCByZWdudW0pCisgeworLSAgaWYgKGkzODZfbW14X3JlZ251bV9wIChnZGJhcmNoLCBy ZWdudW0pKQorLSAgICByZXR1cm4gaTM4Nl9tbXhfbmFtZXNbcmVnbnVtIC0gSTM4N19NTTBfUkVH TlVNIChnZGJhcmNoX3RkZXAgKGdkYmFyY2gpKV07CistCistICBpZiAocmVnbnVtID49IDAgJiYg cmVnbnVtIDwgaTM4Nl9udW1fcmVnaXN0ZXJfbmFtZXMpCistICAgIHJldHVybiBpMzg2X3JlZ2lz dGVyX25hbWVzW3JlZ251bV07CistCistICByZXR1cm4gTlVMTDsKKysgIGdkYl9hc3NlcnQgKGkz ODZfbW14X3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKTsKKysgIHJldHVybiBpMzg2X21teF9u YW1lc1tyZWdudW0gLSBJMzg3X01NMF9SRUdOVU0gKGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCkpXTsK KyB9CisgCisgLyogQ29udmVydCBhIGRieCByZWdpc3RlciBudW1iZXIgUkVHIHRvIHRoZSBhcHBy b3ByaWF0ZSByZWdpc3RlcgorQEAgLTIxMTIsODcgKzIxMDcsMjIgQEAgaTM4Nl9yZXR1cm5fdmFs dWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcgorIH0KKyAMCisgCistLyogQ29uc3RydWN0IHR5cGVz IGZvciBJU0Etc3BlY2lmaWMgcmVnaXN0ZXJzLiAgKi8KKy1zdHJ1Y3QgdHlwZSAqCistaTM4Nl9l ZmxhZ3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCisteworLSAgc3RydWN0IGdkYmFy Y2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CistCistICBpZiAoIXRkZXAt PmkzODZfZWZsYWdzX3R5cGUpCistICAgIHsKKy0gICAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKy0K Ky0gICAgICB0eXBlID0gYXJjaF9mbGFnc190eXBlIChnZGJhcmNoLCAiYnVpbHRpbl90eXBlX2kz ODZfZWZsYWdzIiwgNCk7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMCwg IkNGIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMSwgTlVMTCk7Cist ICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMiwgIlBGIik7CistICAgICAgYXBw ZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgNCwgIkFGIik7CistICAgICAgYXBwZW5kX2ZsYWdz X3R5cGVfZmxhZyAodHlwZSwgNiwgIlpGIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxh ZyAodHlwZSwgNywgIlNGIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwg OCwgIlRGIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgOSwgIklGIik7 CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMTAsICJERiIpOworLSAgICAg IGFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDExLCAiT0YiKTsKKy0gICAgICBhcHBlbmRf ZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxNCwgIk5UIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5 cGVfZmxhZyAodHlwZSwgMTYsICJSRiIpOworLSAgICAgIGFwcGVuZF9mbGFnc190eXBlX2ZsYWcg KHR5cGUsIDE3LCAiVk0iKTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAx OCwgIkFDIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMTksICJWSUYi KTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAyMCwgIlZJUCIpOworLSAg ICAgIGFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDIxLCAiSUQiKTsKKy0KKy0gICAgICB0 ZGVwLT5pMzg2X2VmbGFnc190eXBlID0gdHlwZTsKKy0gICAgfQorLQorLSAgcmV0dXJuIHRkZXAt PmkzODZfZWZsYWdzX3R5cGU7CistfQorLQorLXN0cnVjdCB0eXBlICoKKy1pMzg2X214Y3NyX3R5 cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQorLXsKKy0gIHN0cnVjdCBnZGJhcmNoX3RkZXAg KnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworLQorLSAgaWYgKCF0ZGVwLT5pMzg2X214 Y3NyX3R5cGUpCistICAgIHsKKy0gICAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKy0KKy0gICAgICB0 eXBlID0gYXJjaF9mbGFnc190eXBlIChnZGJhcmNoLCAiYnVpbHRpbl90eXBlX2kzODZfbXhjc3Ii LCA0KTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAwLCAiSUUiKTsKKy0g ICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxLCAiREUiKTsKKy0gICAgICBhcHBl bmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAyLCAiWkUiKTsKKy0gICAgICBhcHBlbmRfZmxhZ3Nf dHlwZV9mbGFnICh0eXBlLCAzLCAiT0UiKTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFn ICh0eXBlLCA0LCAiVUUiKTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCA1 LCAiUEUiKTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCA2LCAiREFaIik7 CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgNywgIklNIik7CistICAgICAg YXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgOCwgIkRNIik7CistICAgICAgYXBwZW5kX2Zs YWdzX3R5cGVfZmxhZyAodHlwZSwgOSwgIlpNIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVf ZmxhZyAodHlwZSwgMTAsICJPTSIpOworLSAgICAgIGFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5 cGUsIDExLCAiVU0iKTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxMiwg IlBNIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMTUsICJGWiIpOwor LQorLSAgICAgIHRkZXAtPmkzODZfbXhjc3JfdHlwZSA9IHR5cGU7CistICAgIH0KKy0KKy0gIHJl dHVybiB0ZGVwLT5pMzg2X214Y3NyX3R5cGU7CistfQorLQorIHN0cnVjdCB0eXBlICoKKyBpMzg3 X2V4dF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKKyB7CisgICBzdHJ1Y3QgZ2RiYXJj aF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKyAKKyAgIGlmICghdGRlcC0+ aTM4N19leHRfdHlwZSkKKy0gICAgdGRlcC0+aTM4N19leHRfdHlwZQorLSAgICAgID0gYXJjaF9m bG9hdF90eXBlIChnZGJhcmNoLCAtMSwgImJ1aWx0aW5fdHlwZV9pMzg3X2V4dCIsCistCQkJIGZs b2F0Zm9ybWF0c19pMzg3X2V4dCk7CisrICAgIHsKKysgICAgICB0ZGVwLT5pMzg3X2V4dF90eXBl ID0gdGRlc2NfZmluZF90eXBlIChnZGJhcmNoLCAiaTM4N19leHQiKTsKKysgICAgICBnZGJfYXNz ZXJ0ICh0ZGVwLT5pMzg3X2V4dF90eXBlICE9IE5VTEwpOworKyAgICB9CisgCisgICByZXR1cm4g dGRlcC0+aTM4N19leHRfdHlwZTsKKyB9CisgCisgLyogQ29uc3RydWN0IHZlY3RvciB0eXBlIGZv ciBNTVggcmVnaXN0ZXJzLiAgKi8KKy1zdHJ1Y3QgdHlwZSAqCisrc3RhdGljIHN0cnVjdCB0eXBl ICoKKyBpMzg2X21teF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKKyB7CisgICBzdHJ1 Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKK0BAIC0yMjMz LDg0ICsyMTYzLDE0IEBAIGkzODZfbW14X3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQor ICAgcmV0dXJuIHRkZXAtPmkzODZfbW14X3R5cGU7CisgfQorIAorLXN0cnVjdCB0eXBlICoKKy1p Mzg2X3NzZV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKKy17CistICBzdHJ1Y3QgZ2Ri YXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKy0KKy0gIGlmICghdGRl cC0+aTM4Nl9zc2VfdHlwZSkKKy0gICAgeworLSAgICAgIGNvbnN0IHN0cnVjdCBidWlsdGluX3R5 cGUgKmJ0ID0gYnVpbHRpbl90eXBlIChnZGJhcmNoKTsKKy0KKy0gICAgICAvKiBUaGUgdHlwZSB3 ZSdyZSBidWlsZGluZyBpcyB0aGlzOiAqLworLSNpZiAwCistICAgICAgdW5pb24gX19nZGJfYnVp bHRpbl90eXBlX3ZlYzEyOGkKKy0gICAgICB7CistICAgICAgICBpbnQxMjhfdCB1aW50MTI4Owor LSAgICAgICAgaW50NjRfdCB2Ml9pbnQ2NFsyXTsKKy0gICAgICAgIGludDMyX3QgdjRfaW50MzJb NF07CistICAgICAgICBpbnQxNl90IHY4X2ludDE2WzhdOworLSAgICAgICAgaW50OF90IHYxNl9p bnQ4WzE2XTsKKy0gICAgICAgIGRvdWJsZSB2Ml9kb3VibGVbMl07CistICAgICAgICBmbG9hdCB2 NF9mbG9hdFs0XTsKKy0gICAgICB9OworLSNlbmRpZgorLQorLSAgICAgIHN0cnVjdCB0eXBlICp0 OworLQorLSAgICAgIHQgPSBhcmNoX2NvbXBvc2l0ZV90eXBlIChnZGJhcmNoLAorLQkJCSAgICAg ICAiX19nZGJfYnVpbHRpbl90eXBlX3ZlYzEyOGkiLCBUWVBFX0NPREVfVU5JT04pOworLSAgICAg IGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZCAodCwgInY0X2Zsb2F0IiwKKy0JCQkJICAgaW5p dF92ZWN0b3JfdHlwZSAoYnQtPmJ1aWx0aW5fZmxvYXQsIDQpKTsKKy0gICAgICBhcHBlbmRfY29t cG9zaXRlX3R5cGVfZmllbGQgKHQsICJ2Ml9kb3VibGUiLAorLQkJCQkgICBpbml0X3ZlY3Rvcl90 eXBlIChidC0+YnVpbHRpbl9kb3VibGUsIDIpKTsKKy0gICAgICBhcHBlbmRfY29tcG9zaXRlX3R5 cGVfZmllbGQgKHQsICJ2MTZfaW50OCIsCistCQkJCSAgIGluaXRfdmVjdG9yX3R5cGUgKGJ0LT5i dWlsdGluX2ludDgsIDE2KSk7CistICAgICAgYXBwZW5kX2NvbXBvc2l0ZV90eXBlX2ZpZWxkICh0 LCAidjhfaW50MTYiLAorLQkJCQkgICBpbml0X3ZlY3Rvcl90eXBlIChidC0+YnVpbHRpbl9pbnQx NiwgOCkpOworLSAgICAgIGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZCAodCwgInY0X2ludDMy IiwKKy0JCQkJICAgaW5pdF92ZWN0b3JfdHlwZSAoYnQtPmJ1aWx0aW5faW50MzIsIDQpKTsKKy0g ICAgICBhcHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGQgKHQsICJ2Ml9pbnQ2NCIsCistCQkJCSAg IGluaXRfdmVjdG9yX3R5cGUgKGJ0LT5idWlsdGluX2ludDY0LCAyKSk7CistICAgICAgYXBwZW5k X2NvbXBvc2l0ZV90eXBlX2ZpZWxkICh0LCAidWludDEyOCIsIGJ0LT5idWlsdGluX2ludDEyOCk7 CistCistICAgICAgVFlQRV9WRUNUT1IgKHQpID0gMTsKKy0gICAgICBUWVBFX05BTUUgKHQpID0g ImJ1aWx0aW5fdHlwZV92ZWMxMjhpIjsKKy0gICAgICB0ZGVwLT5pMzg2X3NzZV90eXBlID0gdDsK Ky0gICAgfQorLQorLSAgcmV0dXJuIHRkZXAtPmkzODZfc3NlX3R5cGU7CistfQorLQorIC8qIFJl dHVybiB0aGUgR0RCIHR5cGUgb2JqZWN0IGZvciB0aGUgInN0YW5kYXJkIiBkYXRhIHR5cGUgb2Yg ZGF0YSBpbgorLSAgIHJlZ2lzdGVyIFJFR05VTS4gIFBlcmhhcHMgJWVzaSBhbmQgJWVkaSBzaG91 bGQgZ28gaGVyZSwgYnV0CistICAgcG90ZW50aWFsbHkgdGhleSBjb3VsZCBiZSB1c2VkIGZvciB0 aGluZ3Mgb3RoZXIgdGhhbiBhZGRyZXNzLiAgKi8KKysgICByZWdpc3RlciBSRUdOVU0uICovCisg Cisgc3RhdGljIHN0cnVjdCB0eXBlICoKKy1pMzg2X3JlZ2lzdGVyX3R5cGUgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQorK2kzODZfcHNldWRvX3JlZ2lzdGVyX3R5cGUgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQorIHsKKy0gIGlmIChyZWdudW0gPT0g STM4Nl9FSVBfUkVHTlVNKQorLSAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVp bHRpbl9mdW5jX3B0cjsKKy0KKy0gIGlmIChyZWdudW0gPT0gSTM4Nl9FRkxBR1NfUkVHTlVNKQor LSAgICByZXR1cm4gaTM4Nl9lZmxhZ3NfdHlwZSAoZ2RiYXJjaCk7CistCistICBpZiAocmVnbnVt ID09IEkzODZfRUJQX1JFR05VTSB8fCByZWdudW0gPT0gSTM4Nl9FU1BfUkVHTlVNKQorLSAgICBy ZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9kYXRhX3B0cjsKKy0KKy0gIGlm IChpMzg2X2ZwX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQorLSAgICByZXR1cm4gaTM4N19l eHRfdHlwZSAoZ2RiYXJjaCk7CistCistICBpZiAoaTM4Nl9tbXhfcmVnbnVtX3AgKGdkYmFyY2gs IHJlZ251bSkpCistICAgIHJldHVybiBpMzg2X21teF90eXBlIChnZGJhcmNoKTsKKy0KKy0gIGlm IChpMzg2X3NzZV9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKy0gICAgcmV0dXJuIGkzODZf c3NlX3R5cGUgKGdkYmFyY2gpOworLQorLSAgaWYgKHJlZ251bSA9PSBJMzg3X01YQ1NSX1JFR05V TSAoZ2RiYXJjaF90ZGVwIChnZGJhcmNoKSkpCistICAgIHJldHVybiBpMzg2X214Y3NyX3R5cGUg KGdkYmFyY2gpOworLQorLSAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5f aW50OworKyAgZ2RiX2Fzc2VydCAoaTM4Nl9tbXhfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkp OworKyAgcmV0dXJuIGkzODZfbW14X3R5cGUgKGdkYmFyY2gpOworIH0KKyAKKyAvKiBNYXAgYSBj b29rZWQgcmVnaXN0ZXIgb250byBhIHJhdyByZWdpc3RlciBvciBtZW1vcnkuICBGb3IgdGhlIGkz ODYsCitAQCAtMjc2MSw3ICsyNjIxLDcgQEAgaTM4Nl9nbzMyX2luaXRfYWJpIChzdHJ1Y3QgZ2Ri YXJjaF9pbmZvIAorIAorICAgLyogREpHUFAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgU1NFIHJlZ2lz dGVycy4gICovCisgICB0ZGVwLT5udW1feG1tX3JlZ3MgPSAwOworLSAgc2V0X2dkYmFyY2hfbnVt X3JlZ3MgKGdkYmFyY2gsIEkzODZfTlVNX0dSRUdTICsgSTM4Nl9OVU1fRlJFR1MpOworKyAgc2V0 X2dkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gsIEkzODZfTlVNX0dSRUdTICsgSTM4N19OVU1fUkVH Uyk7CisgCisgICAvKiBOYXRpdmUgY29tcGlsZXIgaXMgR0NDLCB3aGljaCB1c2VzIHRoZSBTVlI0 IHJlZ2lzdGVyIG51bWJlcmluZworICAgICAgZXZlbiBpbiBDT0ZGIGFuZCBTVEFCUy4gIFNlZSB0 aGUgY29tbWVudCBpbiBpMzg2X2dkYmFyY2hfaW5pdCwKK0BAIC01NjIzLDEyICs1NDgzLDUwIEBA IGkzODZfZmFzdF90cmFjZXBvaW50X3ZhbGlkX2F0IChzdHJ1Y3QgZ2QKKyAgIHJldHVybiAxOwor IH0KKyAKKytzdGF0aWMgaW50CisraTM4Nl92YWxpZGF0ZV90ZGVzY19wIChzdHJ1Y3QgZ2RiYXJj aF90ZGVwICp0ZGVwLAorKwkJICAgICAgIHN0cnVjdCB0ZGVzY19hcmNoX2RhdGEgKnRkZXNjX2Rh dGEpCisreworKyAgY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICp0ZGVzYyA9IHRkZXAtPnRkZXNj OworKyAgY29uc3Qgc3RydWN0IHRkZXNjX2ZlYXR1cmUgKmZlYXR1cmVfY29yZSwgKmZlYXR1cmVf dmVjdG9yOworKyAgaW50IGksIG51bV9yZWdzLCB2YWxpZF9wOworKworKyAgaWYgKCEgdGRlc2Nf aGFzX3JlZ2lzdGVycyAodGRlc2MpKQorKyAgICByZXR1cm4gMDsKKysKKysgIC8qIEdldCBjb3Jl IHJlZ2lzdGVycy4gICovCisrICBmZWF0dXJlX2NvcmUgPSB0ZGVzY19maW5kX2ZlYXR1cmUgKHRk ZXNjLCAib3JnLmdudS5nZGIuaTM4Ni5jb3JlIik7CisrCisrICAvKiBHZXQgU1NFIHJlZ2lzdGVy cy4gICovCisrICBmZWF0dXJlX3ZlY3RvciA9IHRkZXNjX2ZpbmRfZmVhdHVyZSAodGRlc2MsICJv cmcuZ251LmdkYi5pMzg2LnNzZSIpOworKworKyAgaWYgKGZlYXR1cmVfY29yZSA9PSBOVUxMIHx8 IGZlYXR1cmVfdmVjdG9yID09IE5VTEwpCisrICAgIHJldHVybiAwOworKworKyAgdmFsaWRfcCA9 IDE7CisrCisrICBudW1fcmVncyA9IHRkZXAtPm51bV9jb3JlX3JlZ3M7CisrICBmb3IgKGkgPSAw OyBpIDwgbnVtX3JlZ3M7IGkrKykKKysgICAgdmFsaWRfcCAmPSB0ZGVzY19udW1iZXJlZF9yZWdp c3RlciAoZmVhdHVyZV9jb3JlLCB0ZGVzY19kYXRhLCBpLAorKwkJCQkJdGRlcC0+cmVnaXN0ZXJf bmFtZXNbaV0pOworKworKyAgLyogTmVlZCB0byBpbmNsdWRlICVteGNzciwgc28gYWRkIG9uZS4g ICovCisrICBudW1fcmVncyArPSB0ZGVwLT5udW1feG1tX3JlZ3MgKyAxOworKyAgZm9yICg7IGkg PCBudW1fcmVnczsgaSsrKQorKyAgICB2YWxpZF9wICY9IHRkZXNjX251bWJlcmVkX3JlZ2lzdGVy IChmZWF0dXJlX3ZlY3RvciwgdGRlc2NfZGF0YSwgaSwKKysJCQkJCXRkZXAtPnJlZ2lzdGVyX25h bWVzW2ldKTsKKysKKysgIHJldHVybiB2YWxpZF9wOworK30KKysKKyAMCisgc3RhdGljIHN0cnVj dCBnZGJhcmNoICoKKyBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbmZv LCBzdHJ1Y3QgZ2RiYXJjaF9saXN0ICphcmNoZXMpCisgeworICAgc3RydWN0IGdkYmFyY2hfdGRl cCAqdGRlcDsKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOworKyAgc3RydWN0IHRkZXNjX2Fy Y2hfZGF0YSAqdGRlc2NfZGF0YTsKKysgIGNvbnN0IHN0cnVjdCB0YXJnZXRfZGVzYyAqdGRlc2M7 CisgCisgICAvKiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgY2FuZGlkYXRlLCB1c2UgaXQuICAqLwor ICAgYXJjaGVzID0gZ2RiYXJjaF9saXN0X2xvb2t1cF9ieV9pbmZvIChhcmNoZXMsICZpbmZvKTsK K0BAIC01Njk5LDEyICs1NTk3LDYgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNo X2luZm8gaQorICAgICAgYWxpZ25tZW50LiAgKi8KKyAgIHNldF9nZGJhcmNoX2xvbmdfZG91Ymxl X2JpdCAoZ2RiYXJjaCwgOTYpOworIAorLSAgLyogVGhlIGRlZmF1bHQgQUJJIGluY2x1ZGVzIGdl bmVyYWwtcHVycG9zZSByZWdpc3RlcnMsIAorLSAgICAgZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJz LCBhbmQgdGhlIFNTRSByZWdpc3RlcnMuICAqLworLSAgc2V0X2dkYmFyY2hfbnVtX3JlZ3MgKGdk YmFyY2gsIEkzODZfU1NFX05VTV9SRUdTKTsKKy0gIHNldF9nZGJhcmNoX3JlZ2lzdGVyX25hbWUg KGdkYmFyY2gsIGkzODZfcmVnaXN0ZXJfbmFtZSk7CistICBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl90 eXBlIChnZGJhcmNoLCBpMzg2X3JlZ2lzdGVyX3R5cGUpOworLQorICAgLyogUmVnaXN0ZXIgbnVt YmVycyBvZiB2YXJpb3VzIGltcG9ydGFudCByZWdpc3RlcnMuICAqLworICAgc2V0X2dkYmFyY2hf c3BfcmVnbnVtIChnZGJhcmNoLCBJMzg2X0VTUF9SRUdOVU0pOyAvKiAlZXNwICovCisgICBzZXRf Z2RiYXJjaF9wY19yZWdudW0gKGdkYmFyY2gsIEkzODZfRUlQX1JFR05VTSk7IC8qICVlaXAgKi8K K0BAIC01Nzc1LDExICs1NjY3LDYgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNo X2luZm8gaQorIAorICAgc2V0X2dkYmFyY2hfZnJhbWVfYXJnc19za2lwIChnZGJhcmNoLCA4KTsK KyAKKy0gIC8qIFdpcmUgaW4gdGhlIE1NWCByZWdpc3RlcnMuICAqLworLSAgc2V0X2dkYmFyY2hf bnVtX3BzZXVkb19yZWdzIChnZGJhcmNoLCBpMzg2X251bV9tbXhfcmVncyk7CistICBzZXRfZ2Ri YXJjaF9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCAoZ2RiYXJjaCwgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJf cmVhZCk7CistICBzZXRfZ2RiYXJjaF9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUgKGdkYmFyY2gsIGkz ODZfcHNldWRvX3JlZ2lzdGVyX3dyaXRlKTsKKy0KKyAgIHNldF9nZGJhcmNoX3ByaW50X2luc24g KGdkYmFyY2gsIGkzODZfcHJpbnRfaW5zbik7CisgCisgICBzZXRfZ2RiYXJjaF9kdW1teV9pZCAo Z2RiYXJjaCwgaTM4Nl9kdW1teV9pZCk7CitAQCAtNTc4OCw3ICs1Njc1LDcgQEAgaTM4Nl9nZGJh cmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaQorIAorICAgLyogQWRkIHRoZSBpMzg2IHJl Z2lzdGVyIGdyb3Vwcy4gICovCisgICBpMzg2X2FkZF9yZWdncm91cHMgKGdkYmFyY2gpOworLSAg c2V0X2dkYmFyY2hfcmVnaXN0ZXJfcmVnZ3JvdXBfcCAoZ2RiYXJjaCwgaTM4Nl9yZWdpc3Rlcl9y ZWdncm91cF9wKTsKKysgIHRkZXAtPnJlZ2lzdGVyX3JlZ2dyb3VwX3AgPSBpMzg2X3JlZ2lzdGVy X3JlZ2dyb3VwX3A7CisgCisgICAvKiBIZWxwZXIgZm9yIGZ1bmN0aW9uIGFyZ3VtZW50IGluZm9y bWF0aW9uLiAgKi8KKyAgIHNldF9nZGJhcmNoX2ZldGNoX3BvaW50ZXJfYXJndW1lbnQgKGdkYmFy Y2gsIGkzODZfZmV0Y2hfcG9pbnRlcl9hcmd1bWVudCk7CitAQCAtNTgwNiw5ICs1NjkzLDQ5IEBA IGkzODZfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGkKKyAKKyAgIGZyYW1lX2Jh c2Vfc2V0X2RlZmF1bHQgKGdkYmFyY2gsICZpMzg2X2ZyYW1lX2Jhc2UpOworIAorKyAgLyogV2ly ZSBpbiB0aGUgTU1YIHJlZ2lzdGVycy4gICovCisrICBzZXRfZ2RiYXJjaF9udW1fcHNldWRvX3Jl Z3MgKGdkYmFyY2gsIGkzODZfbnVtX21teF9yZWdzKTsKKysgIHNldF9nZGJhcmNoX3BzZXVkb19y ZWdpc3Rlcl9yZWFkIChnZGJhcmNoLCBpMzg2X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTsKKysgIHNl dF9nZGJhcmNoX3BzZXVkb19yZWdpc3Rlcl93cml0ZSAoZ2RiYXJjaCwgaTM4Nl9wc2V1ZG9fcmVn aXN0ZXJfd3JpdGUpOworKworKyAgc2V0X3RkZXNjX3BzZXVkb19yZWdpc3Rlcl90eXBlIChnZGJh cmNoLCBpMzg2X3BzZXVkb19yZWdpc3Rlcl90eXBlKTsKKysgIHNldF90ZGVzY19wc2V1ZG9fcmVn aXN0ZXJfbmFtZSAoZ2RiYXJjaCwgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk7CisrCisrICAv KiBUaGUgZGVmYXVsdCBBQkkgaW5jbHVkZXMgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lzdGVycywgCisr ICAgICBmbG9hdGluZy1wb2ludCByZWdpc3RlcnMsIGFuZCB0aGUgU1NFIHJlZ2lzdGVycy4gICov CisrICBzZXRfZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCwgSTM4Nl9TU0VfTlVNX1JFR1MpOwor KworKyAgLyogR2V0IHRoZSB4ODYgdGFyZ2V0IGRlc2NyaXB0aW9uIGZyb20gSU5GTy4gICovCisr ICB0ZGVzYyA9IGluZm8udGFyZ2V0X2Rlc2M7CisrICBpZiAoISB0ZGVzY19oYXNfcmVnaXN0ZXJz ICh0ZGVzYykpCisrICAgIHRkZXNjID0gdGRlc2NfaTM4NjsKKysgIHRkZXAtPnRkZXNjID0gdGRl c2M7CisrCisrICB0ZGVwLT5udW1fY29yZV9yZWdzID0gSTM4Nl9OVU1fR1JFR1MgKyBJMzg3X05V TV9SRUdTOworKyAgdGRlcC0+cmVnaXN0ZXJfbmFtZXMgPSBpMzg2X3JlZ2lzdGVyX25hbWVzOwor KworKyAgdGRlc2NfZGF0YSA9IHRkZXNjX2RhdGFfYWxsb2MgKCk7CisrCisgICAvKiBIb29rIGlu IEFCSS1zcGVjaWZpYyBvdmVycmlkZXMsIGlmIHRoZXkgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQuICAq LworKyAgaW5mby50ZGVwX2luZm8gPSAodm9pZCAqKSB0ZGVzY19kYXRhOworICAgZ2RiYXJjaF9p bml0X29zYWJpIChpbmZvLCBnZGJhcmNoKTsKKyAKKysgIC8qIFRhcmdldCBkZXNjcmlwdGlvbiBt YXkgYmUgY2hhbmdlZC4gICovCisrICB0ZGVzYyA9IHRkZXAtPnRkZXNjOworKworKyAgaWYgKCFp Mzg2X3ZhbGlkYXRlX3RkZXNjX3AgKHRkZXAsIHRkZXNjX2RhdGEpKQorKyAgICB7CisrICAgICAg dGRlc2NfZGF0YV9jbGVhbnVwICh0ZGVzY19kYXRhKTsKKysgICAgICB4ZnJlZSAodGRlcCk7Cisr ICAgICAgZ2RiYXJjaF9mcmVlIChnZGJhcmNoKTsKKysgICAgICByZXR1cm4gTlVMTDsKKysgICAg fQorKworKyAgdGRlc2NfdXNlX3JlZ2lzdGVycyAoZ2RiYXJjaCwgdGRlc2MsIHRkZXNjX2RhdGEp OworKworKyAgLyogT3ZlcnJpZGUgZ2RiYXJjaF9yZWdpc3Rlcl9yZWdncm91cF9wIHNldCBpbiB0 ZGVzY191c2VfcmVnaXN0ZXJzLiAgKi8KKysgIHNldF9nZGJhcmNoX3JlZ2lzdGVyX3JlZ2dyb3Vw X3AgKGdkYmFyY2gsIHRkZXAtPnJlZ2lzdGVyX3JlZ2dyb3VwX3ApOworKworICAgLyogSG9vayBp biB0aGUgbGVnYWN5IHByb2xvZ3VlLWJhc2VkIHVud2luZGVycyBsYXN0IChmYWxsYmFjaykuICAq LworICAgZnJhbWVfdW53aW5kX2FwcGVuZF91bndpbmRlciAoZ2RiYXJjaCwgJmkzODZfc2lndHJh bXBfZnJhbWVfdW53aW5kKTsKKyAgIGZyYW1lX3Vud2luZF9hcHBlbmRfdW53aW5kZXIgKGdkYmFy Y2gsICZpMzg2X2ZyYW1lX3Vud2luZCk7CitAQCAtNTg4NSw0ICs1ODEyLDcgQEAgaXMgXCJkZWZh dWx0XCIuIiksCisgCisgICAvKiBJbml0aWFsaXplIHRoZSBpMzg2LXNwZWNpZmljIHJlZ2lzdGVy IGdyb3Vwcy4gICovCisgICBpMzg2X2luaXRfcmVnZ3JvdXBzICgpOworKworKyAgLyogSW5pdGlh bGl6ZSB0aGUgc3RhbmRhcmQgdGFyZ2V0IGRlc2NyaXB0aW9ucy4gICovCisrICBpbml0aWFsaXpl X3RkZXNjX2kzODYgKCk7CisgfQorLS0tIC4vZ2RiL2kzODYtdGRlcC5oCTIwMTAtMDQtMDMgMjA6 MjQ6NTEuMDAwMDAwMDAwICswMjAwCisrKysgLi9nZGIvaTM4Ni10ZGVwLmgJMjAxMC0wNC0wMyAy MDo1OTo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xMTgsOSArMTE4LDIxIEBAIHN0cnVjdCBnZGJh cmNoX3RkZXAKKyAgICAgIG9mIE1NWCBzdXBwb3J0LiAgKi8KKyAgIGludCBtbTBfcmVnbnVtOwor IAorKyAgLyogTnVtYmVyIG9mIGNvcmUgcmVnaXN0ZXJzLiAgKi8KKysgIGludCBudW1fY29yZV9y ZWdzOworKworICAgLyogTnVtYmVyIG9mIFNTRSByZWdpc3RlcnMuICAqLworICAgaW50IG51bV94 bW1fcmVnczsKKyAKKysgIC8qIFJlZ2lzdGVyIG5hbWVzLiAgKi8KKysgIGNvbnN0IGNoYXIgKipy ZWdpc3Rlcl9uYW1lczsKKysKKysgIC8qIFRhcmdldCBkZXNjcmlwdGlvbi4gICovCisrICBjb25z dCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKnRkZXNjOworKworKyAgLyogUmVnaXN0ZXIgZ3JvdXAgZnVu Y3Rpb24uICAqLworKyAgY29uc3Qgdm9pZCAqcmVnaXN0ZXJfcmVnZ3JvdXBfcDsKKysKKyAgIC8q IE9mZnNldCBvZiBzYXZlZCBQQyBpbiBqbXBfYnVmLiAgKi8KKyAgIGludCBqYl9wY19vZmZzZXQ7 CisgCitAQCAtMTQ3LDEwICsxNTksNyBAQCBzdHJ1Y3QgZ2RiYXJjaF90ZGVwCisgICBpbnQgc2Nf c3Bfb2Zmc2V0OworIAorICAgLyogSVNBLXNwZWNpZmljIGRhdGEgdHlwZXMuICAqLworLSAgc3Ry dWN0IHR5cGUgKmkzODZfZWZsYWdzX3R5cGU7CistICBzdHJ1Y3QgdHlwZSAqaTM4Nl9teGNzcl90 eXBlOworICAgc3RydWN0IHR5cGUgKmkzODZfbW14X3R5cGU7CistICBzdHJ1Y3QgdHlwZSAqaTM4 Nl9zc2VfdHlwZTsKKyAgIHN0cnVjdCB0eXBlICppMzg3X2V4dF90eXBlOworIAorICAgLyogUHJv Y2VzcyByZWNvcmQvcmVwbGF5IHRhcmdldC4gICovCitAQCAtMTk5LDcgKzIwOCw4IEBAIGVudW0g aTM4Nl9yZWdudW0KKyAgIEkzODZfRVNfUkVHTlVNLAkJLyogJWVzICovCisgICBJMzg2X0ZTX1JF R05VTSwJCS8qICVmcyAqLworICAgSTM4Nl9HU19SRUdOVU0sCQkvKiAlZ3MgKi8KKy0gIEkzODZf U1QwX1JFR05VTQkJLyogJXN0KDApICovCisrICBJMzg2X1NUMF9SRUdOVU0sCQkvKiAlc3QoMCkg Ki8KKysgIEkzODZfTVhDU1JfUkVHTlVNID0gNDAJLyogJW14Y3NyICovIAorIH07CisgCisgLyog UmVnaXN0ZXIgbnVtYmVycyBvZiBSRUNPUkRfUkVHTUFQLiAgKi8KK0BAIC0yMzMsMjAgKzI0Mywx NCBAQCBlbnVtIHJlY29yZF9pMzg2X3JlZ251bQorIH07CisgCisgI2RlZmluZSBJMzg2X05VTV9H UkVHUwkxNgorLSNkZWZpbmUgSTM4Nl9OVU1fRlJFR1MJMTYKKyAjZGVmaW5lIEkzODZfTlVNX1hS RUdTICA5CisgCistI2RlZmluZSBJMzg2X1NTRV9OVU1fUkVHUwkoSTM4Nl9OVU1fR1JFR1MgKyBJ Mzg2X05VTV9GUkVHUyBcCistCQkJCSArIEkzODZfTlVNX1hSRUdTKQorKyNkZWZpbmUgSTM4Nl9T U0VfTlVNX1JFR1MJKEkzODZfTVhDU1JfUkVHTlVNICsgMSkKKyAKKyAvKiBTaXplIG9mIHRoZSBs YXJnZXN0IHJlZ2lzdGVyLiAgKi8KKyAjZGVmaW5lIEkzODZfTUFYX1JFR0lTVEVSX1NJWkUJMTYK KyAKKyAvKiBUeXBlcyBmb3IgaTM4Ni1zcGVjaWZpYyByZWdpc3RlcnMuICAqLworLWV4dGVybiBz dHJ1Y3QgdHlwZSAqaTM4Nl9lZmxhZ3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpOwor LWV4dGVybiBzdHJ1Y3QgdHlwZSAqaTM4Nl9teGNzcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCk7CistZXh0ZXJuIHN0cnVjdCB0eXBlICppMzg2X21teF90eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCk7CistZXh0ZXJuIHN0cnVjdCB0eXBlICppMzg2X3NzZV90eXBlIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCk7CisgZXh0ZXJuIHN0cnVjdCB0eXBlICppMzg3X2V4dF90eXBlIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCk7CisgCisgLyogU2VnbWVudCBzZWxlY3RvcnMuICAqLwor QEAgLTI2Niw5ICsyNzAsNiBAQCBleHRlcm4gQ09SRV9BRERSIGkzODZfc2tpcF9tYWluX3Byb2xv Z3VlCisgLyogUmV0dXJuIHdoZXRoZXIgdGhlIFRISVNfRlJBTUUgY29ycmVzcG9uZHMgdG8gYSBz aWd0cmFtcCByb3V0aW5lLiAgKi8KKyBleHRlcm4gaW50IGkzODZfc2lndHJhbXBfcCAoc3RydWN0 IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUpOworIAorLS8qIFJldHVybiB0aGUgbmFtZSBvZiByZWdp c3RlciBSRUdOVU0uICAqLworLWV4dGVybiBjaGFyIGNvbnN0ICppMzg2X3JlZ2lzdGVyX25hbWUg KHN0cnVjdCBnZGJhcmNoICogZ2RiYXJjaCwgaW50IHJlZ251bSk7CistCisgLyogUmV0dXJuIG5v bi16ZXJvIGlmIFJFR05VTSBpcyBhIG1lbWJlciBvZiB0aGUgc3BlY2lmaWVkIGdyb3VwLiAgKi8K KyBleHRlcm4gaW50IGkzODZfcmVnaXN0ZXJfcmVnZ3JvdXBfcCAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsIGludCByZWdudW0sCisgCQkJCSAgICAgc3RydWN0IHJlZ2dyb3VwICpncm91cCk7Cist LS0gLi9nZGIvaTM4Ny10ZGVwLmgJMjAxMC0wMS0wMSAwODozMTozNi4wMDAwMDAwMDAgKzAxMDAK KysrKyAuL2dkYi9pMzg3LXRkZXAuaAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIw MAorQEAgLTI3LDYgKzI3LDkgQEAgc3RydWN0IHJlZ2NhY2hlOworIHN0cnVjdCB0eXBlOworIHN0 cnVjdCB1aV9maWxlOworIAorKy8qIE51bWJlciBvZiBpMzg3IGZsb2F0aW5nIHBvaW50IHJlZ2lz dGVycy4gICovCisrI2RlZmluZSBJMzg3X05VTV9SRUdTCTE2CisrCisgI2RlZmluZSBJMzg3X1NU MF9SRUdOVU0odGRlcCkgKCh0ZGVwKS0+c3QwX3JlZ251bSkKKyAjZGVmaW5lIEkzODdfTlVNX1hN TV9SRUdTKHRkZXApICgodGRlcCktPm51bV94bW1fcmVncykKKyAjZGVmaW5lIEkzODdfTU0wX1JF R05VTSh0ZGVwKSAoKHRkZXApLT5tbTBfcmVnbnVtKQorLS0tIC4vZ2RiL3JlZ2Zvcm1hdHMvaTM4 Ni9hbWQ2NC1saW51eC5kYXQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysr KyAuL2dkYi9yZWdmb3JtYXRzL2kzODYvYW1kNjQtbGludXguZGF0CTIwMTAtMDQtMDMgMjA6NTk6 NTIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDYyIEBACisrIyBETyBOT1QgRURJVDogZ2Vu ZXJhdGVkIGZyb20gaTM4Ni9hbWQ2NC1saW51eC54bWwKKytuYW1lOmFtZDY0X2xpbnV4CisreG1s dGFyZ2V0OmFtZDY0LWxpbnV4LnhtbAorK2V4cGVkaXRlOnJicCxyc3AscmlwCisrNjQ6cmF4Cisr NjQ6cmJ4CisrNjQ6cmN4CisrNjQ6cmR4CisrNjQ6cnNpCisrNjQ6cmRpCisrNjQ6cmJwCisrNjQ6 cnNwCisrNjQ6cjgKKys2NDpyOQorKzY0OnIxMAorKzY0OnIxMQorKzY0OnIxMgorKzY0OnIxMwor KzY0OnIxNAorKzY0OnIxNQorKzY0OnJpcAorKzMyOmVmbGFncworKzMyOmNzCisrMzI6c3MKKysz MjpkcworKzMyOmVzCisrMzI6ZnMKKyszMjpncworKzgwOnN0MAorKzgwOnN0MQorKzgwOnN0Mgor KzgwOnN0MworKzgwOnN0NAorKzgwOnN0NQorKzgwOnN0NgorKzgwOnN0NworKzMyOmZjdHJsCisr MzI6ZnN0YXQKKyszMjpmdGFnCisrMzI6ZmlzZWcKKyszMjpmaW9mZgorKzMyOmZvc2VnCisrMzI6 Zm9vZmYKKyszMjpmb3AKKysxMjg6eG1tMAorKzEyODp4bW0xCisrMTI4OnhtbTIKKysxMjg6eG1t MworKzEyODp4bW00CisrMTI4OnhtbTUKKysxMjg6eG1tNgorKzEyODp4bW03CisrMTI4OnhtbTgK KysxMjg6eG1tOQorKzEyODp4bW0xMAorKzEyODp4bW0xMQorKzEyODp4bW0xMgorKzEyODp4bW0x MworKzEyODp4bW0xNAorKzEyODp4bW0xNQorKzMyOm14Y3NyCisrNjQ6b3JpZ19yYXgKKy0tLSAu L2dkYi9yZWdmb3JtYXRzL2kzODYvYW1kNjQuZGF0CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgLi9nZGIvcmVnZm9ybWF0cy9pMzg2L2FtZDY0LmRhdAkyMDEwLTA0LTAz IDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw2MSBAQAorKyMgRE8gTk9UIEVE SVQ6IGdlbmVyYXRlZCBmcm9tIGkzODYvYW1kNjQueG1sCisrbmFtZTphbWQ2NAorK3htbHRhcmdl dDphbWQ2NC54bWwKKytleHBlZGl0ZTpyYnAscnNwLHJpcAorKzY0OnJheAorKzY0OnJieAorKzY0 OnJjeAorKzY0OnJkeAorKzY0OnJzaQorKzY0OnJkaQorKzY0OnJicAorKzY0OnJzcAorKzY0OnI4 CisrNjQ6cjkKKys2NDpyMTAKKys2NDpyMTEKKys2NDpyMTIKKys2NDpyMTMKKys2NDpyMTQKKys2 NDpyMTUKKys2NDpyaXAKKyszMjplZmxhZ3MKKyszMjpjcworKzMyOnNzCisrMzI6ZHMKKyszMjpl cworKzMyOmZzCisrMzI6Z3MKKys4MDpzdDAKKys4MDpzdDEKKys4MDpzdDIKKys4MDpzdDMKKys4 MDpzdDQKKys4MDpzdDUKKys4MDpzdDYKKys4MDpzdDcKKyszMjpmY3RybAorKzMyOmZzdGF0Cisr MzI6ZnRhZworKzMyOmZpc2VnCisrMzI6ZmlvZmYKKyszMjpmb3NlZworKzMyOmZvb2ZmCisrMzI6 Zm9wCisrMTI4OnhtbTAKKysxMjg6eG1tMQorKzEyODp4bW0yCisrMTI4OnhtbTMKKysxMjg6eG1t NAorKzEyODp4bW01CisrMTI4OnhtbTYKKysxMjg6eG1tNworKzEyODp4bW04CisrMTI4OnhtbTkK KysxMjg6eG1tMTAKKysxMjg6eG1tMTEKKysxMjg6eG1tMTIKKysxMjg6eG1tMTMKKysxMjg6eG1t MTQKKysxMjg6eG1tMTUKKyszMjpteGNzcgorLS0tIC4vZ2RiL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2 LWxpbnV4LmRhdAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2Ri L3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LWxpbnV4LmRhdAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAw MDAwMCArMDIwMAorQEAgLTAsMCArMSw0NiBAQAorKyMgRE8gTk9UIEVESVQ6IGdlbmVyYXRlZCBm cm9tIGkzODYvaTM4Ni1saW51eC54bWwKKytuYW1lOmkzODZfbGludXgKKyt4bWx0YXJnZXQ6aTM4 Ni1saW51eC54bWwKKytleHBlZGl0ZTplYnAsZXNwLGVpcAorKzMyOmVheAorKzMyOmVjeAorKzMy OmVkeAorKzMyOmVieAorKzMyOmVzcAorKzMyOmVicAorKzMyOmVzaQorKzMyOmVkaQorKzMyOmVp cAorKzMyOmVmbGFncworKzMyOmNzCisrMzI6c3MKKyszMjpkcworKzMyOmVzCisrMzI6ZnMKKysz MjpncworKzgwOnN0MAorKzgwOnN0MQorKzgwOnN0MgorKzgwOnN0MworKzgwOnN0NAorKzgwOnN0 NQorKzgwOnN0NgorKzgwOnN0NworKzMyOmZjdHJsCisrMzI6ZnN0YXQKKyszMjpmdGFnCisrMzI6 ZmlzZWcKKyszMjpmaW9mZgorKzMyOmZvc2VnCisrMzI6Zm9vZmYKKyszMjpmb3AKKysxMjg6eG1t MAorKzEyODp4bW0xCisrMTI4OnhtbTIKKysxMjg6eG1tMworKzEyODp4bW00CisrMTI4OnhtbTUK KysxMjg6eG1tNgorKzEyODp4bW03CisrMzI6bXhjc3IKKyszMjpvcmlnX2VheAorLS0tIC4vZ2Ri L3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LmRhdAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIC4vZ2RiL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LmRhdAkyMDEwLTA0LTAzIDIwOjU5 OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw0NSBAQAorKyMgRE8gTk9UIEVESVQ6IGdl bmVyYXRlZCBmcm9tIGkzODYvaTM4Ni54bWwKKytuYW1lOmkzODYKKyt4bWx0YXJnZXQ6aTM4Ni54 bWwKKytleHBlZGl0ZTplYnAsZXNwLGVpcAorKzMyOmVheAorKzMyOmVjeAorKzMyOmVkeAorKzMy OmVieAorKzMyOmVzcAorKzMyOmVicAorKzMyOmVzaQorKzMyOmVkaQorKzMyOmVpcAorKzMyOmVm bGFncworKzMyOmNzCisrMzI6c3MKKyszMjpkcworKzMyOmVzCisrMzI6ZnMKKyszMjpncworKzgw OnN0MAorKzgwOnN0MQorKzgwOnN0MgorKzgwOnN0MworKzgwOnN0NAorKzgwOnN0NQorKzgwOnN0 NgorKzgwOnN0NworKzMyOmZjdHJsCisrMzI6ZnN0YXQKKyszMjpmdGFnCisrMzI6ZmlzZWcKKysz MjpmaW9mZgorKzMyOmZvc2VnCisrMzI6Zm9vZmYKKyszMjpmb3AKKysxMjg6eG1tMAorKzEyODp4 bW0xCisrMTI4OnhtbTIKKysxMjg6eG1tMworKzEyODp4bW00CisrMTI4OnhtbTUKKysxMjg6eG1t NgorKzEyODp4bW03CisrMzI6bXhjc3IKKy0tLSAuL2dkYi9yZWdmb3JtYXRzL3JlZy1pMzg2LWxp bnV4LmRhdAkyMDA5LTA3LTIwIDIwOjUxOjQyLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL3Jl Z2Zvcm1hdHMvcmVnLWkzODYtbGludXguZGF0CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCitAQCAtMSw0NiArMCwwIEBACistbmFtZTppMzg2X2xpbnV4CisteG1sYXJjaDppMzg2 Cistb3NhYmk6R05VL0xpbnV4CistZXhwZWRpdGU6ZWJwLGVzcCxlaXAKKy0zMjplYXgKKy0zMjpl Y3gKKy0zMjplZHgKKy0zMjplYngKKy0zMjplc3AKKy0zMjplYnAKKy0zMjplc2kKKy0zMjplZGkK Ky0zMjplaXAKKy0zMjplZmxhZ3MKKy0zMjpjcworLTMyOnNzCistMzI6ZHMKKy0zMjplcworLTMy OmZzCistMzI6Z3MKKy04MDpzdDAKKy04MDpzdDEKKy04MDpzdDIKKy04MDpzdDMKKy04MDpzdDQK Ky04MDpzdDUKKy04MDpzdDYKKy04MDpzdDcKKy0zMjpmY3RybAorLTMyOmZzdGF0CistMzI6ZnRh ZworLTMyOmZpc2VnCistMzI6ZmlvZmYKKy0zMjpmb3NlZworLTMyOmZvb2ZmCistMzI6Zm9wCist MTI4OnhtbTAKKy0xMjg6eG1tMQorLTEyODp4bW0yCistMTI4OnhtbTMKKy0xMjg6eG1tNAorLTEy ODp4bW01CistMTI4OnhtbTYKKy0xMjg6eG1tNworLTMyOm14Y3NyCistMzI6b3JpZ19lYXgKKy0t LSAuL2dkYi9yZWdmb3JtYXRzL3JlZy1pMzg2LmRhdAkyMDA4LTAyLTI4IDA2OjU0OjEwLjAwMDAw MDAwMCArMDEwMAorKysrIC4vZ2RiL3JlZ2Zvcm1hdHMvcmVnLWkzODYuZGF0CTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSw0NCArMCwwIEBACistbmFtZTppMzg2Cist eG1sYXJjaDppMzg2CistZXhwZWRpdGU6ZWJwLGVzcCxlaXAKKy0zMjplYXgKKy0zMjplY3gKKy0z MjplZHgKKy0zMjplYngKKy0zMjplc3AKKy0zMjplYnAKKy0zMjplc2kKKy0zMjplZGkKKy0zMjpl aXAKKy0zMjplZmxhZ3MKKy0zMjpjcworLTMyOnNzCistMzI6ZHMKKy0zMjplcworLTMyOmZzCist MzI6Z3MKKy04MDpzdDAKKy04MDpzdDEKKy04MDpzdDIKKy04MDpzdDMKKy04MDpzdDQKKy04MDpz dDUKKy04MDpzdDYKKy04MDpzdDcKKy0zMjpmY3RybAorLTMyOmZzdGF0CistMzI6ZnRhZworLTMy OmZpc2VnCistMzI6ZmlvZmYKKy0zMjpmb3NlZworLTMyOmZvb2ZmCistMzI6Zm9wCistMTI4Onht bTAKKy0xMjg6eG1tMQorLTEyODp4bW0yCistMTI4OnhtbTMKKy0xMjg6eG1tNAorLTEyODp4bW01 CistMTI4OnhtbTYKKy0xMjg6eG1tNworLTMyOm14Y3NyCistLS0gLi9nZGIvcmVnZm9ybWF0cy9y ZWcteDg2LTY0LWxpbnV4LmRhdAkyMDA5LTA3LTIwIDIwOjUxOjQyLjAwMDAwMDAwMCArMDIwMAor KysrIC4vZ2RiL3JlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1saW51eC5kYXQJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDYyICswLDAgQEAKKy1uYW1lOng4Nl82NF9saW51 eAorLXhtbGFyY2g6aTM4Njp4ODYtNjQKKy1vc2FiaTpHTlUvTGludXgKKy1leHBlZGl0ZTpyYnAs cnNwLHJpcAorLTY0OnJheAorLTY0OnJieAorLTY0OnJjeAorLTY0OnJkeAorLTY0OnJzaQorLTY0 OnJkaQorLTY0OnJicAorLTY0OnJzcAorLTY0OnI4CistNjQ6cjkKKy02NDpyMTAKKy02NDpyMTEK Ky02NDpyMTIKKy02NDpyMTMKKy02NDpyMTQKKy02NDpyMTUKKy02NDpyaXAKKy0zMjplZmxhZ3MK Ky0zMjpjcworLTMyOnNzCistMzI6ZHMKKy0zMjplcworLTMyOmZzCistMzI6Z3MKKy04MDpzdDAK Ky04MDpzdDEKKy04MDpzdDIKKy04MDpzdDMKKy04MDpzdDQKKy04MDpzdDUKKy04MDpzdDYKKy04 MDpzdDcKKy0zMjpmY3RybAorLTMyOmZzdGF0CistMzI6ZnRhZworLTMyOmZpc2VnCistMzI6Zmlv ZmYKKy0zMjpmb3NlZworLTMyOmZvb2ZmCistMzI6Zm9wCistMTI4OnhtbTAKKy0xMjg6eG1tMQor LTEyODp4bW0yCistMTI4OnhtbTMKKy0xMjg6eG1tNAorLTEyODp4bW01CistMTI4OnhtbTYKKy0x Mjg6eG1tNworLTEyODp4bW04CistMTI4OnhtbTkKKy0xMjg6eG1tMTAKKy0xMjg6eG1tMTEKKy0x Mjg6eG1tMTIKKy0xMjg6eG1tMTMKKy0xMjg6eG1tMTQKKy0xMjg6eG1tMTUKKy0zMjpteGNzcgor LTY0Om9yaWdfcmF4CistLS0gLi9nZGIvcmVnZm9ybWF0cy9yZWcteDg2LTY0LmRhdAkyMDA0LTAx LTEwIDEzOjUyOjQxLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL3JlZ2Zvcm1hdHMvcmVnLXg4 Ni02NC5kYXQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDU5ICsw LDAgQEAKKy1uYW1lOng4Nl82NAorLWV4cGVkaXRlOnJicCxyc3AscmlwCistNjQ6cmF4CistNjQ6 cmJ4CistNjQ6cmN4CistNjQ6cmR4CistNjQ6cnNpCistNjQ6cmRpCistNjQ6cmJwCistNjQ6cnNw CistNjQ6cjgKKy02NDpyOQorLTY0OnIxMAorLTY0OnIxMQorLTY0OnIxMgorLTY0OnIxMworLTY0 OnIxNAorLTY0OnIxNQorLTY0OnJpcAorLTMyOmVmbGFncworLTMyOmNzCistMzI6c3MKKy0zMjpk cworLTMyOmVzCistMzI6ZnMKKy0zMjpncworLTgwOnN0MAorLTgwOnN0MQorLTgwOnN0MgorLTgw OnN0MworLTgwOnN0NAorLTgwOnN0NQorLTgwOnN0NgorLTgwOnN0NworLTMyOmZjdHJsCistMzI6 ZnN0YXQKKy0zMjpmdGFnCistMzI6ZmlzZWcKKy0zMjpmaW9mZgorLTMyOmZvc2VnCistMzI6Zm9v ZmYKKy0zMjpmb3AKKy0xMjg6eG1tMAorLTEyODp4bW0xCistMTI4OnhtbTIKKy0xMjg6eG1tMwor LTEyODp4bW00CistMTI4OnhtbTUKKy0xMjg6eG1tNgorLTEyODp4bW03CistMTI4OnhtbTgKKy0x Mjg6eG1tOQorLTEyODp4bW0xMAorLTEyODp4bW0xMQorLTEyODp4bW0xMgorLTEyODp4bW0xMwor LTEyODp4bW0xNAorLTEyODp4bW0xNQorLTMyOm14Y3NyCistLS0gLi9nZGIvdGVzdHN1aXRlL2dk Yi54bWwvdGRlc2MtcmVncy5leHAJMjAxMC0wMi0xNiAyMjoyNjo0OC4wMDAwMDAwMDAgKzAxMDAK KysrKyAuL2dkYi90ZXN0c3VpdGUvZ2RiLnhtbC90ZGVzYy1yZWdzLmV4cAkyMDEwLTA0LTAzIDIw OjU5OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTI1LDYgKzI1LDcgQEAgZ2RiX3N0YXJ0CisgCisg c2V0IGNvcmUtcmVncyAiIgorIHNldCByZWdkaXIgIiIKKytzZXQgYXJjaGl0ZWN0dXJlICIiCisg c3dpdGNoIC1nbG9iIC0tIFtpc3RhcmdldF0geworICAgICAiKmFybS0qLSoiIHsKKyAgICAgICAg IHNldCBjb3JlLXJlZ3Mge2FybS1jb3JlLnhtbH0KK0BAIC01NSw2ICs1NiwxNiBAQCBzd2l0Y2gg LWdsb2IgLS0gW2lzdGFyZ2V0XSB7CisgCXVuc3VwcG9ydGVkICJyZWdpc3RlciB0ZXN0cyIKKyAJ cmV0dXJuIDAKKyAgICAgfQorKyAgICAiaT84Ni0qLSoiIHsKKysJc2V0IGFyY2hpdGVjdHVyZSAi aTM4NiIKKysJc2V0IHJlZ2RpciAiaTM4Ni8iCisrICAgICAgICBzZXQgY29yZS1yZWdzIHszMmJp dC1jb3JlLnhtbCAzMmJpdC1zc2UueG1sfQorKyAgICB9CisrICAgICJ4ODZfNjQtKi0qIiB7Cisr CXNldCBhcmNoaXRlY3R1cmUgImkzODY6eDg2LTY0IgorKwlzZXQgcmVnZGlyICJpMzg2LyIKKysg ICAgICAgIHNldCBjb3JlLXJlZ3MgezY0Yml0LWNvcmUueG1sIDY0Yml0LXNzZS54bWx9CisrICAg IH0KKyB9CisgCisgIyBJZiBubyBjb3JlIHJlZ2lzdGVycyB3ZXJlIHNwZWNpZmllZCwgYXNzdW1l IHRoaXMgdGFyZ2V0IGRvZXMgbm90CitAQCAtODksMTIgKzEwMCwxNiBAQCBwcm9jIGxvYWRfZGVz Y3JpcHRpb24geyBmaWxlIGVycm1zZyB9IHsKKyAgICAgZ2xvYmFsIHN1YmRpcgorICAgICBnbG9i YWwgZ2RiX3Byb21wdAorICAgICBnbG9iYWwgY29yZS1yZWdzCisrICAgIGdsb2JhbCBhcmNoaXRl Y3R1cmUKKyAKKyAgICAgZmlsZSBkZWxldGUgIiRzdWJkaXIvcmVncy54bWwiCisgICAgIHNldCBp ZmQgW29wZW4gIiRzcmNkaXIvJHN1YmRpci8kZmlsZSIgcl0KKyAgICAgc2V0IG9mZCBbb3BlbiAi JHN1YmRpci9yZWdzLnhtbCIgd10KKyAgICAgd2hpbGUge1tnZXRzICRpZmQgbGluZV0gPj0gMH0g eworIAlpZiB7W3JlZ2V4cCB7PHhpOmluY2x1ZGUgaHJlZj0iY29yZS1yZWdzLnhtbCIvPn0gJGxp bmVdfSB7CisrCSAgICBpZiB7ISBbc3RyaW5nIGVxdWFsICR7YXJjaGl0ZWN0dXJlfSAiIl19IHsK KysJCXB1dHMgJG9mZCAiICA8YXJjaGl0ZWN0dXJlPiR7YXJjaGl0ZWN0dXJlfTwvYXJjaGl0ZWN0 dXJlPiIKKysJICAgIH0KKyAJICAgIGZvcmVhY2ggc3JjICR7Y29yZS1yZWdzfSB7CisgCQlwdXRz ICRvZmQgIiAgPHhpOmluY2x1ZGUgaHJlZj1cIiRzcmNcIi8+IgorIAkgICAgfQoKZGlmZiAtLWdp dCBhL2dkYi1iejU3ODI1MC1hdngtMDJvZjEwLnBhdGNoIGIvZ2RiLWJ6NTc4MjUwLWF2eC0wMm9m MTAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJhZjA1NQotLS0g L2Rldi9udWxsCisrKyBiL2dkYi1iejU3ODI1MC1hdngtMDJvZjEwLnBhdGNoCkBAIC0wLDAgKzEs NzUxIEBACitbIEJhY2twb3J0ZWQuICBdCisKK2NvbW1pdCBjYjkyOGM2N2M5MGNmYjViYmIwNjM2 ZDkxODU1Yjk1ZTUxYWQyNzVkCitBdXRob3I6IERhbmllbCBKYWNvYm93aXR6IDxkYW5AZGViaWFu Lm9yZz4KK0RhdGU6ICAgTW9uIE1hciAxIDE3OjE5OjIxIDIwMTAgKzAwMDAKKworICAgIAkqIGdk YnR5cGVzLmMgKGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZF9yYXcpOiBOZXcuCisgICAgCShh cHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGRfYWxpZ25lZCk6IFVzZSB0aGUgbmV3IGZ1bmN0aW9u LgorICAgIAkqIGdkYnR5cGVzLmggKGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZF9yYXcpOiBE ZWNsYXJlLgorICAgIAkqIHRhcmdldC1kZXNjcmlwdGlvbnMuYyAoc3RydWN0IHRkZXNjX3R5cGVf ZmllbGQpOiBBZGQgc3RhcnQgYW5kIGVuZC4KKyAgICAJKHN0cnVjdCB0ZGVzY190eXBlX2ZsYWcp OiBOZXcgdHlwZS4KKyAgICAJKHN0cnVjdCB0ZGVzY190eXBlKTogQWRkIFRERVNDX1RZUEVfU1RS VUNUIGFuZCBUREVTQ19UWVBFX0ZMQUdTIHRvCisgICAgCWtpbmQuICBBZGQgc2l6ZSB0byB1LnUu ICBBZGQgdS5mIGZvciBmbGFncy4KKyAgICAJKHRkZXNjX2dkYl90eXBlKTogSGFuZGxlIFRERVND X1RZUEVfU1RSVUNUIGFuZCBUREVTQ19UWVBFX0ZMQUdTLgorICAgIAkodGRlc2NfZnJlZV90eXBl KTogTGlrZXdpc2UuCisgICAgCSh0ZGVzY19jcmVhdGVfc3RydWN0LCB0ZGVzY19zZXRfc3RydWN0 X3NpemUsIHRkZXNjX2NyZWF0ZV9mbGFncyk6IE5ldy4KKyAgICAJKHRkZXNjX2FkZF9maWVsZCk6 IEhhbmRsZSBUREVTQ19UWVBFX1NUUlVDVC4KKyAgICAJKHRkZXNjX2FkZF9iaXRmaWVsZCwgdGRl c2NfYWRkX2ZsYWcpOiBOZXcuCisgICAgCSogdGFyZ2V0LWRlc2NyaXB0aW9ucy5oICh0ZGVzY19j cmVhdGVfc3RydWN0LCB0ZGVzY19zZXRfc3RydWN0X3NpemUpCisgICAgCSh0ZGVzY19jcmVhdGVf ZmxhZ3MsIHRkZXNjX2FkZF9iaXRmaWVsZCwgdGRlc2NfYWRkX2ZsYWcpOiBEZWNsYXJlLgorICAg IAkqIHhtbC10ZGVzYy5jIChzdHJ1Y3QgdGRlc2NfcGFyc2luZ19kYXRhKTogUmVuYW1lIGN1cnJl bnRfdW5pb24gdG8KKyAgICAJY3VycmVudF90eXBlLiAgQWRkIGN1cnJlbnRfdHlwZV9zaXplIGFu ZCBjdXJyZW50X3R5cGVfaXNfZmxhZ3MuCisgICAgCSh0ZGVzY19zdGFydF91bmlvbik6IENsZWFy IHRoZSBuZXcgZmllbGRzLgorICAgIAkodGRlc2Nfc3RhcnRfc3RydWN0LCB0ZGVzY19zdGFydF9m bGFncyk6IE5ldy4KKyAgICAJKHRkZXNjX3N0YXJ0X2ZpZWxkKTogSGFuZGxlIHN0cnVjdCBmaWVs ZHMsIGluY2x1ZGluZyBiaXRmaWVsZHMuCisgICAgCShmaWVsZF9hdHRyaWJ1dGVzKTogTWFrZSB0 eXBlIG9wdGlvbmFsLiAgQWRkIHN0YXJ0IGFuZCBlbmQuCisgICAgCSh1bmlvbl9jaGlsZHJlbik6 IFJlbmFtZSB0byBzdHJ1Y3RfdW5pb25fY2hpbGRyZW4uCisgICAgCSh1bmlvbl9hdHRyaWJ1dGVz KTogUmVuYW1lIHRvIHN0cnVjdF91bmlvbl9hdHRyaWJ1dGVzLiAgQWRkIG9wdGlvbmFsCisgICAg CXNpemUuCisgICAgCShmbGFnc19hdHRyaWJ1dGVzKTogTmV3LgorICAgIAkoZmVhdHVyZV9jaGls ZHJlbik6IEFkZCBzdHJ1Y3QgYW5kIGZsYWdzLgorICAgIAkqIGZlYXR1cmVzL2dkYi10YXJnZXQu ZHRkOiBBZGQgZmxhZ3MgYW5kIHN0cnVjdCB0byBmZWF0dXJlcy4KKyAgICAJTWFrZSBmaWVsZCB0 eXBlIG9wdGlvbmFsLiAgQWRkIGZpZWxkIHN0YXJ0IGFuZCBlbmQuCisgICAgCisgICAgCWRvYy8K KyAgICAJKiBnZGIudGV4aW5mbyAoVHlwZXMpOiBEZXNjcmliZSA8c3RydWN0PiBhbmQgPGZsYWdz Pi4KKyAgICAKKyAgICAJdGVzdHN1aXRlLworICAgIAkqIGdkYi54bWwvZXh0cmEtcmVncy54bWw6 IEFkZCBzdHJ1Y3QxLCBzdHJ1Y3QyLCBhbmQgZmxhZ3MKKyAgICAJdHlwZXMuICBBZGQgc3RydWN0 cmVnLCBiaXRmaWVsZHMsIGFuZCBmbGFncyByZWdpc3RlcnMuCisgICAgCSogZ2RiLnhtbC90ZGVz Yy1yZWdzLmV4cDogVGVzdCBzdHJ1Y3RyZWcgYW5kIGJpdGZpZWxkcworICAgIAlyZWdpc3RlcnMu CisKKy0tLSBnZGItNy4xLXAwL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMC0wNC0wMyAyMDoyNDo1 MS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMC0w NC0wMyAyMTowNDoxMy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zMzExNSw2ICszMzExNSw0NyBAQCBl YWNoIG9mIHdoaWNoIGhhcyBhIEB2YXJ7bmFtZX0gYW5kIGEgQHZhCisgPC91bmlvbj4KKyBAZW5k IHNtYWxsZXhhbXBsZQorIAorK0BjaW5kZXggPHN0cnVjdD4KKytJZiBhIHJlZ2lzdGVyJ3MgdmFs dWUgaXMgY29tcG9zZWQgZnJvbSBzZXZlcmFsIHNlcGFyYXRlIHZhbHVlcywgZGVmaW5lCisraXQg d2l0aCBhIHN0cnVjdHVyZSB0eXBlLiAgVGhlcmUgYXJlIHR3byBmb3JtcyBvZiB0aGUgQHNhbXB7 PHN0cnVjdD59CisrZWxlbWVudDsgYSBAc2FtcHs8c3RydWN0Pn0gZWxlbWVudCBtdXN0IGVpdGhl ciBjb250YWluIG9ubHkgYml0ZmllbGRzCisrb3IgY29udGFpbiBubyBiaXRmaWVsZHMuICBJZiB0 aGUgc3RydWN0dXJlIGNvbnRhaW5zIG9ubHkgYml0ZmllbGRzLAorK2l0cyB0b3RhbCBzaXplIGlu IGJ5dGVzIG11c3QgYmUgc3BlY2lmaWVkLCBlYWNoIGJpdGZpZWxkIG11c3QgaGF2ZSBhbgorK2V4 cGxpY2l0IHN0YXJ0IGFuZCBlbmQsIGFuZCBiaXRmaWVsZHMgYXJlIGF1dG9tYXRpY2FsbHkgYXNz aWduZWQgYW4KKytpbnRlZ2VyIHR5cGUuICBUaGUgZmllbGQncyBAdmFye3N0YXJ0fSBzaG91bGQg YmUgbGVzcyB0aGFuIG9yCisrZXF1YWwgdG8gaXRzIEB2YXJ7ZW5kfSwgYW5kIHplcm8gcmVwcmVz ZW50cyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0LgorKworK0BzbWFsbGV4YW1wbGUKKys8c3Ry dWN0IGlkPSJAdmFye2lkfSIgc2l6ZT0iQHZhcntzaXplfSI+CisrICA8ZmllbGQgbmFtZT0iQHZh cntuYW1lfSIgc3RhcnQ9IkB2YXJ7c3RhcnR9IiBlbmQ9IkB2YXJ7ZW5kfSIvPgorKyAgQGRvdHN7 fQorKzwvc3RydWN0PgorK0BlbmQgc21hbGxleGFtcGxlCisrCisrSWYgdGhlIHN0cnVjdHVyZSBj b250YWlucyBubyBiaXRmaWVsZHMsIHRoZW4gZWFjaCBmaWVsZCBoYXMgYW4KKytleHBsaWNpdCB0 eXBlLCBhbmQgbm8gaW1wbGljaXQgcGFkZGluZyBpcyBhZGRlZC4KKysKKytAc21hbGxleGFtcGxl CisrPHN0cnVjdCBpZD0iQHZhcntpZH0iPgorKyAgPGZpZWxkIG5hbWU9IkB2YXJ7bmFtZX0iIHR5 cGU9IkB2YXJ7dHlwZX0iLz4KKysgIEBkb3Rze30KKys8L3N0cnVjdD4KKytAZW5kIHNtYWxsZXhh bXBsZQorKworK0BjaW5kZXggPGZsYWdzPgorK0lmIGEgcmVnaXN0ZXIncyB2YWx1ZSBpcyBhIHNl cmllcyBvZiBzaW5nbGUtYml0IGZsYWdzLCBkZWZpbmUgaXQgd2l0aAorK2EgZmxhZ3MgdHlwZS4g IFRoZSBAc2FtcHs8ZmxhZ3M+fSBlbGVtZW50IGhhcyBhbiBleHBsaWNpdCBAdmFye3NpemV9Cisr YW5kIGNvbnRhaW5zIG9uZSBvciBtb3JlIEBzYW1wezxmaWVsZD59IGVsZW1lbnRzLiAgRWFjaCBm aWVsZCBoYXMgYQorK0B2YXJ7bmFtZX0sIGEgQHZhcntzdGFydH0sIGFuZCBhbiBAdmFye2VuZH0u ICBPbmx5IHNpbmdsZS1iaXQgZmxhZ3MKKythcmUgc3VwcG9ydGVkLgorKworK0BzbWFsbGV4YW1w bGUKKys8ZmxhZ3MgaWQ9IkB2YXJ7aWR9IiBzaXplPSJAdmFye3NpemV9Ij4KKysgIDxmaWVsZCBu YW1lPSJAdmFye25hbWV9IiBzdGFydD0iQHZhcntzdGFydH0iIGVuZD0iQHZhcntlbmR9Ii8+Cisr ICBAZG90c3t9CisrPC9mbGFncz4KKytAZW5kIHNtYWxsZXhhbXBsZQorKworIEBzdWJzZWN0aW9u IFJlZ2lzdGVycworIEBjaW5kZXggPHJlZz4KKyAKKy0tLSBnZGItNy4xLXAwL2dkYi9mZWF0dXJl cy9nZGItdGFyZ2V0LmR0ZAkyMDEwLTAxLTAxIDA4OjMxOjQ4LjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjEvZ2RiL2ZlYXR1cmVzL2dkYi10YXJnZXQuZHRkCTIwMTAtMDQtMDMgMjE6MDQ6MTMu MDAwMDAwMDAwICswMjAwCitAQCAtMTksNyArMTksOCBAQAorIAorIDwhRUxFTUVOVCBjb21wYXRp YmxlCSgjUENEQVRBKT4KKyAKKy08IUVMRU1FTlQgZmVhdHVyZQkoKHZlY3RvciB8IHVuaW9uKSos IHJlZyopPgorKzwhRUxFTUVOVCBmZWF0dXJlCisrCSgodmVjdG9yIHwgZmxhZ3MgfCBzdHJ1Y3Qg fCB1bmlvbiApKiwgcmVnKik+CisgPCFBVFRMSVNUIGZlYXR1cmUKKyAJbmFtZQkJSUQJI1JFUVVJ UkVEPgorIAorQEAgLTM5LDYgKzQwLDE2IEBACisgCXR5cGUJCUNEQVRBCSNSRVFVSVJFRAorIAlj b3VudAkJQ0RBVEEJI1JFUVVJUkVEPgorIAorKzwhRUxFTUVOVCBmbGFncwkJKGZpZWxkKyk+Cisr PCFBVFRMSVNUIGZsYWdzCisrCWlkCQlDREFUQQkjUkVRVUlSRUQKKysJc2l6ZQkJQ0RBVEEJI1JF UVVJUkVEPgorKworKzwhRUxFTUVOVCBzdHJ1Y3QJKGZpZWxkKyk+CisrPCFBVFRMSVNUIHN0cnVj dAorKwlpZAkJQ0RBVEEJI1JFUVVJUkVECisrCXNpemUJCUNEQVRBCSNJTVBMSUVEPgorKworIDwh RUxFTUVOVCB1bmlvbgkJKGZpZWxkKyk+CisgPCFBVFRMSVNUIHVuaW9uCisgCWlkCQlDREFUQQkj UkVRVUlSRUQ+CitAQCAtNDYsNyArNTcsOSBAQAorIDwhRUxFTUVOVCBmaWVsZAkJRU1QVFk+Cisg PCFBVFRMSVNUIGZpZWxkCisgCW5hbWUJCUNEQVRBCSNSRVFVSVJFRAorLQl0eXBlCQlDREFUQQkj UkVRVUlSRUQ+CisrCXR5cGUJCUNEQVRBCSNJTVBMSUVECisrCXN0YXJ0CQlDREFUQQkjSU1QTElF RAorKwllbmQJCUNEQVRBCSNJTVBMSUVEPgorIAorIDwhRU5USVRZICUgeGluY2x1ZGUgU1lTVEVN ICJ4aW5jbHVkZS5kdGQiPgorICV4aW5jbHVkZTsKKy0tLSBnZGItNy4xLXAwL2dkYi9nZGJ0eXBl cy5jCTIwMTAtMDQtMDMgMjA6MjQ6NTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIv Z2RidHlwZXMuYwkyMDEwLTA0LTAzIDIxOjA0OjEzLjAwMDAwMDAwMCArMDIwMAorQEAgLTM3OTgs MTAgKzM3OTgsMTEgQEAgYXJjaF9jb21wb3NpdGVfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYgor IH0KKyAKKyAvKiBBZGQgbmV3IGZpZWxkIHdpdGggbmFtZSBOQU1FIGFuZCB0eXBlIEZJRUxEIHRv IGNvbXBvc2l0ZSB0eXBlIFQuCistICAgQUxJR05NRU5UIChpZiBub24temVybykgc3BlY2lmaWVz IHRoZSBtaW5pbXVtIGZpZWxkIGFsaWdubWVudC4gICovCistdm9pZAorLWFwcGVuZF9jb21wb3Np dGVfdHlwZV9maWVsZF9hbGlnbmVkIChzdHJ1Y3QgdHlwZSAqdCwgY2hhciAqbmFtZSwKKy0JCQkJ ICAgICBzdHJ1Y3QgdHlwZSAqZmllbGQsIGludCBhbGlnbm1lbnQpCisrICAgRG8gbm90IHNldCB0 aGUgZmllbGQncyBwb3NpdGlvbiBvciBhZGp1c3QgdGhlIHR5cGUncyBsZW5ndGg7CisrICAgdGhl IGNhbGxlciBzaG91bGQgZG8gc28uICBSZXR1cm4gdGhlIG5ldyBmaWVsZC4gICovCisrc3RydWN0 IGZpZWxkICoKKythcHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGRfcmF3IChzdHJ1Y3QgdHlwZSAq dCwgY2hhciAqbmFtZSwKKysJCQkJIHN0cnVjdCB0eXBlICpmaWVsZCkKKyB7CisgICBzdHJ1Y3Qg ZmllbGQgKmY7CisgICBUWVBFX05GSUVMRFMgKHQpID0gVFlQRV9ORklFTERTICh0KSArIDE7CitA QCAtMzgxMSw2ICszODEyLDE2IEBAIGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZF9hbGlnbmVk IChzdHIKKyAgIG1lbXNldCAoZiwgMCwgc2l6ZW9mIGZbMF0pOworICAgRklFTERfVFlQRSAoZlsw XSkgPSBmaWVsZDsKKyAgIEZJRUxEX05BTUUgKGZbMF0pID0gbmFtZTsKKysgIHJldHVybiBmOwor K30KKysKKysvKiBBZGQgbmV3IGZpZWxkIHdpdGggbmFtZSBOQU1FIGFuZCB0eXBlIEZJRUxEIHRv IGNvbXBvc2l0ZSB0eXBlIFQuCisrICAgQUxJR05NRU5UIChpZiBub24temVybykgc3BlY2lmaWVz IHRoZSBtaW5pbXVtIGZpZWxkIGFsaWdubWVudC4gICovCisrdm9pZAorK2FwcGVuZF9jb21wb3Np dGVfdHlwZV9maWVsZF9hbGlnbmVkIChzdHJ1Y3QgdHlwZSAqdCwgY2hhciAqbmFtZSwKKysJCQkJ ICAgICBzdHJ1Y3QgdHlwZSAqZmllbGQsIGludCBhbGlnbm1lbnQpCisreworKyAgc3RydWN0IGZp ZWxkICpmID0gYXBwZW5kX2NvbXBvc2l0ZV90eXBlX2ZpZWxkX3JhdyAodCwgbmFtZSwgZmllbGQp OworICAgaWYgKFRZUEVfQ09ERSAodCkgPT0gVFlQRV9DT0RFX1VOSU9OKQorICAgICB7CisgICAg ICAgaWYgKFRZUEVfTEVOR1RIICh0KSA8IFRZUEVfTEVOR1RIIChmaWVsZCkpCistLS0gZ2RiLTcu MS1wMC9nZGIvZ2RidHlwZXMuaAkyMDEwLTA0LTAzIDIwOjI0OjUxLjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi03LjEvZ2RiL2dkYnR5cGVzLmgJMjAxMC0wNC0wMyAyMTowNDoxMy4wMDAwMDAwMDAg KzAyMDAKK0BAIC0xMzk1LDYgKzEzOTUsOCBAQCBleHRlcm4gdm9pZCBhcHBlbmRfY29tcG9zaXRl X3R5cGVfZmllbGRfCisgCQkJCQkJIGNoYXIgKm5hbWUsCisgCQkJCQkJIHN0cnVjdCB0eXBlICpm aWVsZCwKKyAJCQkJCQkgaW50IGFsaWdubWVudCk7Cisrc3RydWN0IGZpZWxkICphcHBlbmRfY29t cG9zaXRlX3R5cGVfZmllbGRfcmF3IChzdHJ1Y3QgdHlwZSAqdCwgY2hhciAqbmFtZSwKKysJCQkJ CSAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGQpOworIAorIC8qIEhlbHBlciBmdW5jdGlvbnMgdG8g Y29uc3RydWN0IGEgYml0IGZsYWdzIHR5cGUuICBBbiBpbml0aWFsbHkgZW1wdHkKKyAgICB0eXBl IGlzIGNyZWF0ZWQgdXNpbmcgYXJjaF9mbGFnX3R5cGUoKS4gIEZsYWdzIGFyZSB0aGVuIGFkZGVk IHVzaW5nCistLS0gZ2RiLTcuMS1wMC9nZGIvdGFyZ2V0LWRlc2NyaXB0aW9ucy5jCTIwMTAtMDIt MTAgMTk6NDU6MDIuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvdGFyZ2V0LWRlc2Ny aXB0aW9ucy5jCTIwMTAtMDQtMDMgMjE6MDQ6MTMuMDAwMDAwMDAwICswMjAwCitAQCAtOTAsOSAr OTAsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgdGRlc2NfdHlwZV9maWVsZAorIHsKKyAgIGNoYXIgKm5h bWU7CisgICBzdHJ1Y3QgdGRlc2NfdHlwZSAqdHlwZTsKKysgIGludCBzdGFydCwgZW5kOworIH0g dGRlc2NfdHlwZV9maWVsZDsKKyBERUZfVkVDX08odGRlc2NfdHlwZV9maWVsZCk7CisgCisrdHlw ZWRlZiBzdHJ1Y3QgdGRlc2NfdHlwZV9mbGFnCisreworKyAgY2hhciAqbmFtZTsKKysgIGludCBz dGFydDsKKyt9IHRkZXNjX3R5cGVfZmxhZzsKKytERUZfVkVDX08odGRlc2NfdHlwZV9mbGFnKTsK KysKKyB0eXBlZGVmIHN0cnVjdCB0ZGVzY190eXBlCisgeworICAgLyogVGhlIG5hbWUgb2YgdGhp cyB0eXBlLiAgKi8KK0BAIC0xMjMsNyArMTMxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgdGRlc2NfdHlw ZQorIAorICAgICAvKiBUeXBlcyBkZWZpbmVkIGJ5IGEgdGFyZ2V0IGZlYXR1cmUuICAqLworICAg ICBUREVTQ19UWVBFX1ZFQ1RPUiwKKy0gICAgVERFU0NfVFlQRV9VTklPTgorKyAgICBUREVTQ19U WVBFX1NUUlVDVCwKKysgICAgVERFU0NfVFlQRV9VTklPTiwKKysgICAgVERFU0NfVFlQRV9GTEFH UworICAgfSBraW5kOworIAorICAgLyogS2luZC1zcGVjaWZpYyBkYXRhLiAgKi8KK0BAIC0xMzYs MTEgKzE0NiwxOSBAQCB0eXBlZGVmIHN0cnVjdCB0ZGVzY190eXBlCisgICAgICAgaW50IGNvdW50 OworICAgICB9IHY7CisgCistICAgIC8qIFVuaW9uIHR5cGUuICAqLworKyAgICAvKiBTdHJ1Y3Qg b3IgdW5pb24gdHlwZS4gICovCisgICAgIHN0cnVjdAorICAgICB7CisgICAgICAgVkVDKHRkZXNj X3R5cGVfZmllbGQpICpmaWVsZHM7CisrICAgICAgTE9OR0VTVCBzaXplOworICAgICB9IHU7Cisr CisrICAgIC8qIEZsYWdzIHR5cGUuICAqLworKyAgICBzdHJ1Y3QKKysgICAgeworKyAgICAgIFZF Qyh0ZGVzY190eXBlX2ZsYWcpICpmbGFnczsKKysgICAgICBMT05HRVNUIHNpemU7CisrICAgIH0g ZjsKKyAgIH0gdTsKKyB9ICp0ZGVzY190eXBlX3A7CisgREVGX1ZFQ19QKHRkZXNjX3R5cGVfcCk7 CitAQCAtNjUyLDYgKzY3MCw2NiBAQCB0ZGVzY19nZGJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCisgCXJldHVybiB0eXBlOworICAgICAgIH0KKyAKKysgICAgY2FzZSBUREVTQ19UWVBF X1NUUlVDVDoKKysgICAgICB7CisrCXN0cnVjdCB0eXBlICp0eXBlLCAqZmllbGRfdHlwZTsKKysJ c3RydWN0IHRkZXNjX3R5cGVfZmllbGQgKmY7CisrCWludCBpeDsKKysKKysJdHlwZSA9IGFyY2hf Y29tcG9zaXRlX3R5cGUgKGdkYmFyY2gsIE5VTEwsIFRZUEVfQ09ERV9TVFJVQ1QpOworKwlUWVBF X05BTUUgKHR5cGUpID0geHN0cmR1cCAodGRlc2NfdHlwZS0+bmFtZSk7CisrCVRZUEVfVEFHX05B TUUgKHR5cGUpID0gVFlQRV9OQU1FICh0eXBlKTsKKysKKysJZm9yIChpeCA9IDA7CisrCSAgICAg VkVDX2l0ZXJhdGUgKHRkZXNjX3R5cGVfZmllbGQsIHRkZXNjX3R5cGUtPnUudS5maWVsZHMsIGl4 LCBmKTsKKysJICAgICBpeCsrKQorKwkgIHsKKysJICAgIGlmIChmLT50eXBlID09IE5VTEwpCisr CSAgICAgIHsKKysJCS8qIEJpdGZpZWxkLiAgKi8KKysJCXN0cnVjdCBmaWVsZCAqZmxkOworKwkJ c3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7CisrCQlpbnQgYml0c2l6ZSwgdG90YWxfc2l6ZTsKKysK KysJCS8qIFRoaXMgaW52YXJpYW50IHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hpbGUgY3JlYXRpbmcK KysJCSAgIHR5cGVzLiAgKi8KKysJCWdkYl9hc3NlcnQgKHRkZXNjX3R5cGUtPnUudS5zaXplICE9 IDApOworKwkJaWYgKHRkZXNjX3R5cGUtPnUudS5zaXplID4gNCkKKysJCSAgZmllbGRfdHlwZSA9 IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fdWludDY0OworKwkJZWxzZQorKwkJICBm aWVsZF90eXBlID0gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl91aW50MzI7CisrCisr CQlmbGQgPSBhcHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGRfcmF3ICh0eXBlLCB4c3RyZHVwIChm LT5uYW1lKSwKKysJCQkJCQkgICAgICAgZmllbGRfdHlwZSk7CisrCisrCQkvKiBGb3IgbGl0dGxl LWVuZGlhbiwgQklUUE9TIGNvdW50cyBmcm9tIHRoZSBMU0Igb2YKKysJCSAgIHRoZSBzdHJ1Y3R1 cmUgYW5kIG1hcmtzIHRoZSBMU0Igb2YgdGhlIGZpZWxkLiAgRm9yCisrCQkgICBiaWctZW5kaWFu LCBCSVRQT1MgY291bnRzIGZyb20gdGhlIE1TQiBvZiB0aGUKKysJCSAgIHN0cnVjdHVyZSBhbmQg bWFya3MgdGhlIE1TQiBvZiB0aGUgZmllbGQuICBFaXRoZXIKKysJCSAgIHdheSwgaXQgaXMgdGhl IG51bWJlciBvZiBiaXRzIHRvIHRoZSAibGVmdCIgb2YgdGhlCisrCQkgICBmaWVsZC4gIFRvIGNh bGN1bGF0ZSB0aGlzIGluIGJpZy1lbmRpYW4sIHdlIG5lZWQKKysJCSAgIHRoZSB0b3RhbCBzaXpl IG9mIHRoZSBzdHJ1Y3R1cmUuICAqLworKwkJYml0c2l6ZSA9IGYtPmVuZCAtIGYtPnN0YXJ0ICsg MTsKKysJCXRvdGFsX3NpemUgPSB0ZGVzY190eXBlLT51LnUuc2l6ZSAqIFRBUkdFVF9DSEFSX0JJ VDsKKysJCWlmIChnZGJhcmNoX2JpdHNfYmlnX2VuZGlhbiAoZ2RiYXJjaCkpCisrCQkgIEZJRUxE X0JJVFBPUyAoZmxkWzBdKSA9IHRvdGFsX3NpemUgLSBmLT5zdGFydCAtIGJpdHNpemU7CisrCQll bHNlCisrCQkgIEZJRUxEX0JJVFBPUyAoZmxkWzBdKSA9IGYtPnN0YXJ0OworKwkJRklFTERfQklU U0laRSAoZmxkWzBdKSA9IGJpdHNpemU7CisrCSAgICAgIH0KKysJICAgIGVsc2UKKysJICAgICAg eworKwkJZmllbGRfdHlwZSA9IHRkZXNjX2dkYl90eXBlIChnZGJhcmNoLCBmLT50eXBlKTsKKysJ CWFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZCAodHlwZSwgeHN0cmR1cCAoZi0+bmFtZSksCisr CQkJCQkgICAgIGZpZWxkX3R5cGUpOworKwkgICAgICB9CisrCSAgfQorKworKwlpZiAodGRlc2Nf dHlwZS0+dS51LnNpemUgIT0gMCkKKysJICBUWVBFX0xFTkdUSCAodHlwZSkgPSB0ZGVzY190eXBl LT51LnUuc2l6ZTsKKysJcmV0dXJuIHR5cGU7CisrICAgICAgfQorKworICAgICBjYXNlIFRERVND X1RZUEVfVU5JT046CisgICAgICAgeworIAlzdHJ1Y3QgdHlwZSAqdHlwZSwgKmZpZWxkX3R5cGU7 CitAQCAtNjY4LDEyICs3NDYsMzAgQEAgdGRlc2NfZ2RiX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLAorIAkgICAgZmllbGRfdHlwZSA9IHRkZXNjX2dkYl90eXBlIChnZGJhcmNoLCBmLT50 eXBlKTsKKyAJICAgIGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZCAodHlwZSwgeHN0cmR1cCAo Zi0+bmFtZSksIGZpZWxkX3R5cGUpOworIAorLQkgICAgLyogSWYgYW55IG9mIHRoZSBjaGlsZHJl biBvZiB0aGlzIHVuaW9uIGFyZSB2ZWN0b3JzLCBmbGFnIHRoZQorKwkgICAgLyogSWYgYW55IG9m IHRoZSBjaGlsZHJlbiBvZiBhIHVuaW9uIGFyZSB2ZWN0b3JzLCBmbGFnIHRoZQorIAkgICAgICAg dW5pb24gYXMgYSB2ZWN0b3IgYWxzby4gIFRoaXMgYWxsb3dzIGUuZy4gYSB1bmlvbiBvZiB0d28K KyAJICAgICAgIHZlY3RvciB0eXBlcyB0byBzaG93IHVwIGF1dG9tYXRpY2FsbHkgaW4gImluZm8g dmVjdG9yIi4gICovCisgCSAgICBpZiAoVFlQRV9WRUNUT1IgKGZpZWxkX3R5cGUpKQorIAkgICAg ICBUWVBFX1ZFQ1RPUiAodHlwZSkgPSAxOworIAkgIH0KKysJcmV0dXJuIHR5cGU7CisrICAgICAg fQorKworKyAgICBjYXNlIFRERVNDX1RZUEVfRkxBR1M6CisrICAgICAgeworKwlzdHJ1Y3QgdHlw ZSAqdHlwZSwgKmZpZWxkX3R5cGU7CisrCXN0cnVjdCB0ZGVzY190eXBlX2ZsYWcgKmY7CisrCWlu dCBpeDsKKysKKysJdHlwZSA9IGFyY2hfZmxhZ3NfdHlwZSAoZ2RiYXJjaCwgeHN0cmR1cCAodGRl c2NfdHlwZS0+bmFtZSksCisrCQkJCXRkZXNjX3R5cGUtPnUuZi5zaXplKTsKKysJZm9yIChpeCA9 IDA7CisrCSAgICAgVkVDX2l0ZXJhdGUgKHRkZXNjX3R5cGVfZmxhZywgdGRlc2NfdHlwZS0+dS5m LmZsYWdzLCBpeCwgZik7CisrCSAgICAgaXgrKykKKysJICAvKiBOb3RlIHRoYXQgY29udHJhcnkg dG8gdGhlIGZ1bmN0aW9uIG5hbWUsIHRoaXMgY2FsbCB3aWxsCisrCSAgICAganVzdCBzZXQgdGhl IHByb3BlcnRpZXMgb2YgYW4gYWxyZWFkeS1hbGxvY2F0ZWQKKysJICAgICBmaWVsZC4gICovCisr CSAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgZi0+c3RhcnQsIGYtPm5hbWUpOworIAor IAlyZXR1cm4gdHlwZTsKKyAgICAgICB9CitAQCAtMTE2MSw2ICsxMjU3LDcgQEAgdGRlc2NfZnJl ZV90eXBlIChzdHJ1Y3QgdGRlc2NfdHlwZSAqdHlwZQorIAorICAgc3dpdGNoICh0eXBlLT5raW5k KQorICAgICB7CisrICAgIGNhc2UgVERFU0NfVFlQRV9TVFJVQ1Q6CisgICAgIGNhc2UgVERFU0Nf VFlQRV9VTklPTjoKKyAgICAgICB7CisgCXN0cnVjdCB0ZGVzY190eXBlX2ZpZWxkICpmOworQEAg LTExNzUsNiArMTI3MiwyMCBAQCB0ZGVzY19mcmVlX3R5cGUgKHN0cnVjdCB0ZGVzY190eXBlICp0 eXBlCisgICAgICAgfQorICAgICAgIGJyZWFrOworIAorKyAgICBjYXNlIFRERVNDX1RZUEVfRkxB R1M6CisrICAgICAgeworKwlzdHJ1Y3QgdGRlc2NfdHlwZV9mbGFnICpmOworKwlpbnQgaXg7Cisr CisrCWZvciAoaXggPSAwOworKwkgICAgIFZFQ19pdGVyYXRlICh0ZGVzY190eXBlX2ZsYWcsIHR5 cGUtPnUuZi5mbGFncywgaXgsIGYpOworKwkgICAgIGl4KyspCisrCSAgeGZyZWUgKGYtPm5hbWUp OworKworKwlWRUNfZnJlZSAodGRlc2NfdHlwZV9mbGFnLCB0eXBlLT51LmYuZmxhZ3MpOworKyAg ICAgIH0KKysgICAgICBicmVhazsKKysKKyAgICAgZGVmYXVsdDoKKyAgICAgICBicmVhazsKKyAg ICAgfQorQEAgLTExOTksNiArMTMxMCwyOSBAQCB0ZGVzY19jcmVhdGVfdmVjdG9yIChzdHJ1Y3Qg dGRlc2NfZmVhdHVyCisgfQorIAorIHN0cnVjdCB0ZGVzY190eXBlICoKKyt0ZGVzY19jcmVhdGVf c3RydWN0IChzdHJ1Y3QgdGRlc2NfZmVhdHVyZSAqZmVhdHVyZSwgY29uc3QgY2hhciAqbmFtZSkK Kyt7CisrICBzdHJ1Y3QgdGRlc2NfdHlwZSAqdHlwZSA9IFhaQUxMT0MgKHN0cnVjdCB0ZGVzY190 eXBlKTsKKysKKysgIHR5cGUtPm5hbWUgPSB4c3RyZHVwIChuYW1lKTsKKysgIHR5cGUtPmtpbmQg PSBUREVTQ19UWVBFX1NUUlVDVDsKKysKKysgIFZFQ19zYWZlX3B1c2ggKHRkZXNjX3R5cGVfcCwg ZmVhdHVyZS0+dHlwZXMsIHR5cGUpOworKyAgcmV0dXJuIHR5cGU7CisrfQorKworKy8qIFNldCB0 aGUgdG90YWwgbGVuZ3RoIG9mIFRZUEUuICBTdHJ1Y3RzIHdoaWNoIGNvbnRhaW4gYml0ZmllbGRz IG1heQorKyAgIG9taXQgdGhlIHJlc2VydmVkIGJpdHMsIHNvIHRoZSBlbmQgb2YgdGhlIGxhc3Qg ZmllbGQgbWF5IG5vdAorKyAgIHN1ZmZpY2UuICAqLworKworK3ZvaWQKKyt0ZGVzY19zZXRfc3Ry dWN0X3NpemUgKHN0cnVjdCB0ZGVzY190eXBlICp0eXBlLCBMT05HRVNUIHNpemUpCisreworKyAg Z2RiX2Fzc2VydCAodHlwZS0+a2luZCA9PSBUREVTQ19UWVBFX1NUUlVDVCk7CisrICB0eXBlLT51 LnUuc2l6ZSA9IHNpemU7CisrfQorKworK3N0cnVjdCB0ZGVzY190eXBlICoKKyB0ZGVzY19jcmVh dGVfdW5pb24gKHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlLCBjb25zdCBjaGFyICpuYW1l KQorIHsKKyAgIHN0cnVjdCB0ZGVzY190eXBlICp0eXBlID0gWFpBTExPQyAoc3RydWN0IHRkZXNj X3R5cGUpOworQEAgLTEyMTAsMTMgKzEzNDQsMzIgQEAgdGRlc2NfY3JlYXRlX3VuaW9uIChzdHJ1 Y3QgdGRlc2NfZmVhdHVyZQorICAgcmV0dXJuIHR5cGU7CisgfQorIAorK3N0cnVjdCB0ZGVzY190 eXBlICoKKyt0ZGVzY19jcmVhdGVfZmxhZ3MgKHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJl LCBjb25zdCBjaGFyICpuYW1lLAorKwkJICAgIExPTkdFU1Qgc2l6ZSkKKyt7CisrICBzdHJ1Y3Qg dGRlc2NfdHlwZSAqdHlwZSA9IFhaQUxMT0MgKHN0cnVjdCB0ZGVzY190eXBlKTsKKysKKysgIHR5 cGUtPm5hbWUgPSB4c3RyZHVwIChuYW1lKTsKKysgIHR5cGUtPmtpbmQgPSBUREVTQ19UWVBFX0ZM QUdTOworKyAgdHlwZS0+dS5mLnNpemUgPSBzaXplOworKworKyAgVkVDX3NhZmVfcHVzaCAodGRl c2NfdHlwZV9wLCBmZWF0dXJlLT50eXBlcywgdHlwZSk7CisrICByZXR1cm4gdHlwZTsKKyt9Cisr CisrLyogQWRkIGEgbmV3IGZpZWxkLiAgUmV0dXJuIGEgdGVtcG9yYXJ5IHBvaW50ZXIgdG8gdGhl IGZpZWxkLCB3aGljaAorKyAgIGlzIG9ubHkgdmFsaWQgdW50aWwgdGhlIG5leHQgY2FsbCB0byB0 ZGVzY19hZGRfZmllbGQgKHRoZSB2ZWN0b3IKKysgICBtaWdodCBiZSByZWFsbG9jYXRlZCkuICAq LworKworIHZvaWQKKyB0ZGVzY19hZGRfZmllbGQgKHN0cnVjdCB0ZGVzY190eXBlICp0eXBlLCBj b25zdCBjaGFyICpmaWVsZF9uYW1lLAorIAkJIHN0cnVjdCB0ZGVzY190eXBlICpmaWVsZF90eXBl KQorIHsKKyAgIHN0cnVjdCB0ZGVzY190eXBlX2ZpZWxkIGYgPSB7IDAgfTsKKyAKKy0gIGdkYl9h c3NlcnQgKHR5cGUtPmtpbmQgPT0gVERFU0NfVFlQRV9VTklPTik7CisrICBnZGJfYXNzZXJ0ICh0 eXBlLT5raW5kID09IFRERVNDX1RZUEVfVU5JT04KKysJICAgICAgfHwgdHlwZS0+a2luZCA9PSBU REVTQ19UWVBFX1NUUlVDVCk7CisgCisgICBmLm5hbWUgPSB4c3RyZHVwIChmaWVsZF9uYW1lKTsK KyAgIGYudHlwZSA9IGZpZWxkX3R5cGU7CitAQCAtMTIyNCw2ICsxMzc3LDM3IEBAIHRkZXNjX2Fk ZF9maWVsZCAoc3RydWN0IHRkZXNjX3R5cGUgKnR5cGUKKyAgIFZFQ19zYWZlX3B1c2ggKHRkZXNj X3R5cGVfZmllbGQsIHR5cGUtPnUudS5maWVsZHMsICZmKTsKKyB9CisgCisrLyogQWRkIGEgbmV3 IGJpdGZpZWxkLiAgKi8KKysKKyt2b2lkCisrdGRlc2NfYWRkX2JpdGZpZWxkIChzdHJ1Y3QgdGRl c2NfdHlwZSAqdHlwZSwgY29uc3QgY2hhciAqZmllbGRfbmFtZSwKKysJCSAgICBpbnQgc3RhcnQs IGludCBlbmQpCisreworKyAgc3RydWN0IHRkZXNjX3R5cGVfZmllbGQgZiA9IHsgMCB9OworKwor KyAgZ2RiX2Fzc2VydCAodHlwZS0+a2luZCA9PSBUREVTQ19UWVBFX1NUUlVDVCk7CisrCisrICBm Lm5hbWUgPSB4c3RyZHVwIChmaWVsZF9uYW1lKTsKKysgIGYuc3RhcnQgPSBzdGFydDsKKysgIGYu ZW5kID0gZW5kOworKworKyAgVkVDX3NhZmVfcHVzaCAodGRlc2NfdHlwZV9maWVsZCwgdHlwZS0+ dS51LmZpZWxkcywgJmYpOworK30KKysKKyt2b2lkCisrdGRlc2NfYWRkX2ZsYWcgKHN0cnVjdCB0 ZGVzY190eXBlICp0eXBlLCBpbnQgc3RhcnQsCisrCQljb25zdCBjaGFyICpmbGFnX25hbWUpCisr eworKyAgc3RydWN0IHRkZXNjX3R5cGVfZmxhZyBmID0geyAwIH07CisrCisrICBnZGJfYXNzZXJ0 ICh0eXBlLT5raW5kID09IFRERVNDX1RZUEVfRkxBR1MpOworKworKyAgZi5uYW1lID0geHN0cmR1 cCAoZmxhZ19uYW1lKTsKKysgIGYuc3RhcnQgPSBzdGFydDsKKysKKysgIFZFQ19zYWZlX3B1c2gg KHRkZXNjX3R5cGVfZmxhZywgdHlwZS0+dS5mLmZsYWdzLCAmZik7CisrfQorKworIHN0YXRpYyB2 b2lkCisgdGRlc2NfZnJlZV9mZWF0dXJlIChzdHJ1Y3QgdGRlc2NfZmVhdHVyZSAqZmVhdHVyZSkK KyB7CistLS0gZ2RiLTcuMS1wMC9nZGIvdGFyZ2V0LWRlc2NyaXB0aW9ucy5oCTIwMTAtMDItMTAg MTk6NDU6MDMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvdGFyZ2V0LWRlc2NyaXB0 aW9ucy5oCTIwMTAtMDQtMDMgMjE6MDQ6MTMuMDAwMDAwMDAwICswMjAwCitAQCAtMjA1LDEwICsy MDUsMjAgQEAgc3RydWN0IHRkZXNjX3R5cGUgKnRkZXNjX2NyZWF0ZV92ZWN0b3IgKAorIAkJCQkJ Y29uc3QgY2hhciAqbmFtZSwKKyAJCQkJCXN0cnVjdCB0ZGVzY190eXBlICpmaWVsZF90eXBlLAor IAkJCQkJaW50IGNvdW50KTsKKytzdHJ1Y3QgdGRlc2NfdHlwZSAqdGRlc2NfY3JlYXRlX3N0cnVj dCAoc3RydWN0IHRkZXNjX2ZlYXR1cmUgKmZlYXR1cmUsCisrCQkJCQljb25zdCBjaGFyICpuYW1l KTsKKyt2b2lkIHRkZXNjX3NldF9zdHJ1Y3Rfc2l6ZSAoc3RydWN0IHRkZXNjX3R5cGUgKnR5cGUs IExPTkdFU1Qgc2l6ZSk7Cisgc3RydWN0IHRkZXNjX3R5cGUgKnRkZXNjX2NyZWF0ZV91bmlvbiAo c3RydWN0IHRkZXNjX2ZlYXR1cmUgKmZlYXR1cmUsCisgCQkJCSAgICAgICBjb25zdCBjaGFyICpu YW1lKTsKKytzdHJ1Y3QgdGRlc2NfdHlwZSAqdGRlc2NfY3JlYXRlX2ZsYWdzIChzdHJ1Y3QgdGRl c2NfZmVhdHVyZSAqZmVhdHVyZSwKKysJCQkJICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCisrCQkJ CSAgICAgICBMT05HRVNUIHNpemUpOworIHZvaWQgdGRlc2NfYWRkX2ZpZWxkIChzdHJ1Y3QgdGRl c2NfdHlwZSAqdHlwZSwgY29uc3QgY2hhciAqZmllbGRfbmFtZSwKKyAJCSAgICAgIHN0cnVjdCB0 ZGVzY190eXBlICpmaWVsZF90eXBlKTsKKyt2b2lkIHRkZXNjX2FkZF9iaXRmaWVsZCAoc3RydWN0 IHRkZXNjX3R5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKmZpZWxkX25hbWUsCisrCQkJIGludCBzdGFy dCwgaW50IGVuZCk7Cisrdm9pZCB0ZGVzY19hZGRfZmxhZyAoc3RydWN0IHRkZXNjX3R5cGUgKnR5 cGUsIGludCBzdGFydCwKKysJCSAgICAgY29uc3QgY2hhciAqZmxhZ19uYW1lKTsKKyB2b2lkIHRk ZXNjX2NyZWF0ZV9yZWcgKHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlLCBjb25zdCBjaGFy ICpuYW1lLAorIAkJICAgICAgIGludCByZWdudW0sIGludCBzYXZlX3Jlc3RvcmUsIGNvbnN0IGNo YXIgKmdyb3VwLAorIAkJICAgICAgIGludCBiaXRzaXplLCBjb25zdCBjaGFyICp0eXBlKTsKKy0t LSBnZGItNy4xLXAwL2dkYi90ZXN0c3VpdGUvZ2RiLnhtbC9leHRyYS1yZWdzLnhtbAkyMDA3LTAy LTA4IDIyOjAwOjM2LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9n ZGIueG1sL2V4dHJhLXJlZ3MueG1sCTIwMTAtMDQtMDMgMjE6MDQ6MTMuMDAwMDAwMDAwICswMjAw CitAQCAtOCw5ICs4LDI3IEBACisgICAgICAgPGZpZWxkIG5hbWU9InYyIiB0eXBlPSJ2MmludDE2 Ii8+CisgICAgIDwvdW5pb24+CisgCisrICAgIDxzdHJ1Y3QgaWQ9InN0cnVjdDEiPgorKyAgICAg IDxmaWVsZCBuYW1lPSJ2NCIgdHlwZT0idjRpbnQ4Ii8+CisrICAgICAgPGZpZWxkIG5hbWU9InYy IiB0eXBlPSJ2MmludDE2Ii8+CisrICAgIDwvc3RydWN0PgorKworKyAgICA8c3RydWN0IGlkPSJz dHJ1Y3QyIiBzaXplPSI4Ij4KKysgICAgICA8ZmllbGQgbmFtZT0iZjEiIHN0YXJ0PSIwIiBlbmQ9 IjM0Ii8+CisrICAgICAgPGZpZWxkIG5hbWU9ImYyIiBzdGFydD0iNjMiIGVuZD0iNjMiLz4KKysg ICAgPC9zdHJ1Y3Q+CisrCisrICAgIDxmbGFncyBpZD0iZmxhZ3MiIHNpemU9IjQiPgorKyAgICAg IDxmaWVsZCBuYW1lPSJYIiBzdGFydD0iMCIgZW5kPSIwIi8+CisrICAgICAgPGZpZWxkIG5hbWU9 IlkiIHN0YXJ0PSIyIiBlbmQ9IjIiLz4KKysgICAgPC9mbGFncz4KKysKKyAgICAgPHJlZyBuYW1l PSJleHRyYXJlZyIgYml0c2l6ZT0iMzIiLz4KKyAgICAgPHJlZyBuYW1lPSJ1aW50cmVnIiBiaXRz aXplPSIzMiIgdHlwZT0idWludDMyIi8+CisgICAgIDxyZWcgbmFtZT0idmVjcmVnIiBiaXRzaXpl PSIzMiIgdHlwZT0idjRpbnQ4Ii8+CisgICAgIDxyZWcgbmFtZT0idW5pb25yZWciIGJpdHNpemU9 IjMyIiB0eXBlPSJ2ZWNpbnQiLz4KKysgICAgPHJlZyBuYW1lPSJzdHJ1Y3RyZWciIGJpdHNpemU9 IjY0IiB0eXBlPSJzdHJ1Y3QxIi8+CisrICAgIDxyZWcgbmFtZT0iYml0ZmllbGRzIiBiaXRzaXpl PSI2NCIgdHlwZT0ic3RydWN0MiIvPgorKyAgICA8cmVnIG5hbWU9ImZsYWdzIiBiaXRzaXplPSIz MiIgdHlwZT0iZmxhZ3MiLz4KKyAgIDwvZmVhdHVyZT4KKyA8L3RhcmdldD4KKy0tLSBnZGItNy4x LXAwL2dkYi90ZXN0c3VpdGUvZ2RiLnhtbC90ZGVzYy1yZWdzLmV4cAkyMDEwLTA0LTAzIDIwOjU5 OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIueG1sL3Rk ZXNjLXJlZ3MuZXhwCTIwMTAtMDQtMDMgMjE6MDQ6MTMuMDAwMDAwMDAwICswMjAwCitAQCAtMTQx LDYgKzE0MSwxMSBAQCBnZGJfdGVzdCAicHR5cGUgXCR2ZWNyZWciICJ0eXBlID0gaW50OF90Cisg Z2RiX3Rlc3QgInB0eXBlIFwkdW5pb25yZWciIFwKKyAgICAgInR5cGUgPSB1bmlvbiB7XHJcbiAq djRpbnQ4IHY0O1xyXG4gKnYyaW50MTYgdjI7XHJcbn0iCisgZ2RiX3Rlc3QgInB0eXBlIFwkdW5p b25yZWcudjQiICJ0eXBlID0gaW50OF90IFxcXFs0XFxcXSIKKytnZGJfdGVzdCAicHR5cGUgXCRz dHJ1Y3RyZWciIFwKKysgICAgInR5cGUgPSBzdHJ1Y3Qgc3RydWN0MSB7XHJcbiAqdjRpbnQ4IHY0 O1xyXG4gKnYyaW50MTYgdjI7XHJcbn0iCisrZ2RiX3Rlc3QgInB0eXBlIFwkc3RydWN0cmVnLnY0 IiAidHlwZSA9IGludDhfdCBcXFxbNFxcXF0iCisrZ2RiX3Rlc3QgInB0eXBlIFwkYml0ZmllbGRz IiBcCisrICAgICJ0eXBlID0gc3RydWN0IHN0cnVjdDIge1xyXG4gKnVpbnQ2NF90IGYxIDogMzU7 XHJcbiAqdWludDY0X3QgZjIgOiAxO1xyXG59IgorIAorIGxvYWRfZGVzY3JpcHRpb24gImNvcmUt b25seS54bWwiICIiCisgIyBUaGUgZXh0cmEgcmVnaXN0ZXIgZnJvbSB0aGUgcHJldmlvdXMgZGVz Y3JpcHRpb24gc2hvdWxkIGJlIGdvbmUuCistLS0gZ2RiLTcuMS1wMC9nZGIveG1sLXRkZXNjLmMJ MjAxMC0wMS0wMSAwODozMTo0Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi94bWwt dGRlc2MuYwkyMDEwLTA0LTAzIDIxOjA0OjEzLjAwMDAwMDAwMCArMDIwMAorQEAgLTg1LDggKzg1 LDE1IEBAIHN0cnVjdCB0ZGVzY19wYXJzaW5nX2RhdGEKKyAgICAgIGl0IGRvZXMgbm90IGhhdmUg aXRzIG93bi4gIFRoaXMgc3RhcnRzIGF0IHplcm8uICAqLworICAgaW50IG5leHRfcmVnbnVtOwor IAorLSAgLyogVGhlIHVuaW9uIHdlIGFyZSBjdXJyZW50bHkgcGFyc2luZywgb3IgbGFzdCBwYXJz ZWQuICAqLworLSAgc3RydWN0IHRkZXNjX3R5cGUgKmN1cnJlbnRfdW5pb247CisrICAvKiBUaGUg c3RydWN0IG9yIHVuaW9uIHdlIGFyZSBjdXJyZW50bHkgcGFyc2luZywgb3IgbGFzdCBwYXJzZWQu ICAqLworKyAgc3RydWN0IHRkZXNjX3R5cGUgKmN1cnJlbnRfdHlwZTsKKysKKysgIC8qIFRoZSBi eXRlIHNpemUgb2YgdGhlIGN1cnJlbnQgc3RydWN0IHR5cGUsIGlmIHNwZWNpZmllZC4gIFplcm8K KysgICAgIGlmIG5vdCBzcGVjaWZpZWQuICAqLworKyAgaW50IGN1cnJlbnRfdHlwZV9zaXplOwor KworKyAgLyogV2hldGhlciB0aGUgY3VycmVudCB0eXBlIGlzIGEgZmxhZ3MgdHlwZS4gICovCisr ICBpbnQgY3VycmVudF90eXBlX2lzX2ZsYWdzOworIH07CisgCisgLyogSGFuZGxlIHRoZSBlbmQg b2YgYW4gPGFyY2hpdGVjdHVyZT4gZWxlbWVudCBhbmQgaXRzIHZhbHVlLiAgKi8KK0BAIC0yMjks MTEgKzIzNiw1NyBAQCB0ZGVzY19zdGFydF91bmlvbiAoc3RydWN0IGdkYl94bWxfcGFyc2VyCisg ICBzdHJ1Y3QgdGRlc2NfcGFyc2luZ19kYXRhICpkYXRhID0gdXNlcl9kYXRhOworICAgY2hhciAq aWQgPSBWRUNfaW5kZXggKGdkYl94bWxfdmFsdWVfcywgYXR0cmlidXRlcywgMCktPnZhbHVlOwor IAorLSAgZGF0YS0+Y3VycmVudF91bmlvbiA9IHRkZXNjX2NyZWF0ZV91bmlvbiAoZGF0YS0+Y3Vy cmVudF9mZWF0dXJlLCBpZCk7CisrICBkYXRhLT5jdXJyZW50X3R5cGUgPSB0ZGVzY19jcmVhdGVf dW5pb24gKGRhdGEtPmN1cnJlbnRfZmVhdHVyZSwgaWQpOworKyAgZGF0YS0+Y3VycmVudF90eXBl X3NpemUgPSAwOworKyAgZGF0YS0+Y3VycmVudF90eXBlX2lzX2ZsYWdzID0gMDsKKyt9CisrCisr LyogSGFuZGxlIHRoZSBzdGFydCBvZiBhIDxzdHJ1Y3Q+IGVsZW1lbnQuICBJbml0aWFsaXplIHRo ZSB0eXBlIGFuZAorKyAgIHJlY29yZCBpdCB3aXRoIHRoZSBjdXJyZW50IGZlYXR1cmUuICAqLwor KworK3N0YXRpYyB2b2lkCisrdGRlc2Nfc3RhcnRfc3RydWN0IChzdHJ1Y3QgZ2RiX3htbF9wYXJz ZXIgKnBhcnNlciwKKysJCSAgIGNvbnN0IHN0cnVjdCBnZGJfeG1sX2VsZW1lbnQgKmVsZW1lbnQs CisrCQkgICB2b2lkICp1c2VyX2RhdGEsIFZFQyhnZGJfeG1sX3ZhbHVlX3MpICphdHRyaWJ1dGVz KQorK3sKKysgIHN0cnVjdCB0ZGVzY19wYXJzaW5nX2RhdGEgKmRhdGEgPSB1c2VyX2RhdGE7Cisr ICBjaGFyICppZCA9IFZFQ19pbmRleCAoZ2RiX3htbF92YWx1ZV9zLCBhdHRyaWJ1dGVzLCAwKS0+ dmFsdWU7CisrICBzdHJ1Y3QgdGRlc2NfdHlwZSAqdHlwZTsKKysKKysgIHR5cGUgPSB0ZGVzY19j cmVhdGVfc3RydWN0IChkYXRhLT5jdXJyZW50X2ZlYXR1cmUsIGlkKTsKKysgIGRhdGEtPmN1cnJl bnRfdHlwZSA9IHR5cGU7CisrICBkYXRhLT5jdXJyZW50X3R5cGVfc2l6ZSA9IDA7CisrICBkYXRh LT5jdXJyZW50X3R5cGVfaXNfZmxhZ3MgPSAwOworKworKyAgaWYgKFZFQ19sZW5ndGggKGdkYl94 bWxfdmFsdWVfcywgYXR0cmlidXRlcykgPiAxKQorKyAgICB7CisrICAgICAgaW50IHNpemUgPSAo aW50KSAqIChVTE9OR0VTVCAqKQorKwlWRUNfaW5kZXggKGdkYl94bWxfdmFsdWVfcywgYXR0cmli dXRlcywgMSktPnZhbHVlOworKyAgICAgIHRkZXNjX3NldF9zdHJ1Y3Rfc2l6ZSAodHlwZSwgc2l6 ZSk7CisrICAgICAgZGF0YS0+Y3VycmVudF90eXBlX3NpemUgPSBzaXplOworKyAgICB9CisrfQor KworK3N0YXRpYyB2b2lkCisrdGRlc2Nfc3RhcnRfZmxhZ3MgKHN0cnVjdCBnZGJfeG1sX3BhcnNl ciAqcGFyc2VyLAorKwkJICAgY29uc3Qgc3RydWN0IGdkYl94bWxfZWxlbWVudCAqZWxlbWVudCwK KysJCSAgIHZvaWQgKnVzZXJfZGF0YSwgVkVDKGdkYl94bWxfdmFsdWVfcykgKmF0dHJpYnV0ZXMp CisreworKyAgc3RydWN0IHRkZXNjX3BhcnNpbmdfZGF0YSAqZGF0YSA9IHVzZXJfZGF0YTsKKysg IGNoYXIgKmlkID0gVkVDX2luZGV4IChnZGJfeG1sX3ZhbHVlX3MsIGF0dHJpYnV0ZXMsIDApLT52 YWx1ZTsKKysgIGludCBsZW5ndGggPSAoaW50KSAqIChVTE9OR0VTVCAqKQorKyAgICBWRUNfaW5k ZXggKGdkYl94bWxfdmFsdWVfcywgYXR0cmlidXRlcywgMSktPnZhbHVlOworKyAgc3RydWN0IHRk ZXNjX3R5cGUgKnR5cGU7CisrCisrICB0eXBlID0gdGRlc2NfY3JlYXRlX2ZsYWdzIChkYXRhLT5j dXJyZW50X2ZlYXR1cmUsIGlkLCBsZW5ndGgpOworKworKyAgZGF0YS0+Y3VycmVudF90eXBlID0g dHlwZTsKKysgIGRhdGEtPmN1cnJlbnRfdHlwZV9zaXplID0gMDsKKysgIGRhdGEtPmN1cnJlbnRf dHlwZV9pc19mbGFncyA9IDE7CisgfQorIAorIC8qIEhhbmRsZSB0aGUgc3RhcnQgb2YgYSA8Zmll bGQ+IGVsZW1lbnQuICBBdHRhY2ggdGhlIGZpZWxkIHRvIHRoZQorLSAgIGN1cnJlbnQgdW5pb24u ICAqLworKyAgIGN1cnJlbnQgc3RydWN0IG9yIHVuaW9uLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAor IHRkZXNjX3N0YXJ0X2ZpZWxkIChzdHJ1Y3QgZ2RiX3htbF9wYXJzZXIgKnBhcnNlciwKK0BAIC0y NDEsMjAgKzI5NCw4NCBAQCB0ZGVzY19zdGFydF9maWVsZCAoc3RydWN0IGdkYl94bWxfcGFyc2Vy CisgCQkgICB2b2lkICp1c2VyX2RhdGEsIFZFQyhnZGJfeG1sX3ZhbHVlX3MpICphdHRyaWJ1dGVz KQorIHsKKyAgIHN0cnVjdCB0ZGVzY19wYXJzaW5nX2RhdGEgKmRhdGEgPSB1c2VyX2RhdGE7Cisr ICBpbnQgaXggPSAwLCBsZW5ndGg7CisgICBzdHJ1Y3QgZ2RiX3htbF92YWx1ZSAqYXR0cnMgPSBW RUNfYWRkcmVzcyAoZ2RiX3htbF92YWx1ZV9zLCBhdHRyaWJ1dGVzKTsKKyAgIHN0cnVjdCB0ZGVz Y190eXBlICpmaWVsZF90eXBlOworICAgY2hhciAqZmllbGRfbmFtZSwgKmZpZWxkX3R5cGVfaWQ7 CisrICBpbnQgc3RhcnQsIGVuZDsKKyAKKy0gIGZpZWxkX25hbWUgPSBhdHRyc1swXS52YWx1ZTsK Ky0gIGZpZWxkX3R5cGVfaWQgPSBhdHRyc1sxXS52YWx1ZTsKKysgIGxlbmd0aCA9IFZFQ19sZW5n dGggKGdkYl94bWxfdmFsdWVfcywgYXR0cmlidXRlcyk7CisgCistICBmaWVsZF90eXBlID0gdGRl c2NfbmFtZWRfdHlwZSAoZGF0YS0+Y3VycmVudF9mZWF0dXJlLCBmaWVsZF90eXBlX2lkKTsKKy0g IGlmIChmaWVsZF90eXBlID09IE5VTEwpCistICAgIGdkYl94bWxfZXJyb3IgKHBhcnNlciwgXygi VW5pb24gZmllbGQgXCIlc1wiIHJlZmVyZW5jZXMgdW5kZWZpbmVkICIKKy0JCQkgICAgICJ0eXBl IFwiJXNcIiIpLAorLQkJICAgZmllbGRfbmFtZSwgZmllbGRfdHlwZV9pZCk7CisrICBmaWVsZF9u YW1lID0gYXR0cnNbaXgrK10udmFsdWU7CisrCisrICBpZiAoaXggPCBsZW5ndGggJiYgc3RyY21w IChhdHRyc1tpeF0ubmFtZSwgInR5cGUiKSA9PSAwKQorKyAgICBmaWVsZF90eXBlX2lkID0gYXR0 cnNbaXgrK10udmFsdWU7CisrICBlbHNlCisrICAgIGZpZWxkX3R5cGVfaWQgPSBOVUxMOworKwor KyAgaWYgKGl4IDwgbGVuZ3RoICYmIHN0cmNtcCAoYXR0cnNbaXhdLm5hbWUsICJzdGFydCIpID09 IDApCisrICAgIHN0YXJ0ID0gKiAoVUxPTkdFU1QgKikgYXR0cnNbaXgrK10udmFsdWU7CisrICBl bHNlCisrICAgIHN0YXJ0ID0gLTE7CisrCisrICBpZiAoaXggPCBsZW5ndGggJiYgc3RyY21wIChh dHRyc1tpeF0ubmFtZSwgImVuZCIpID09IDApCisrICAgIGVuZCA9ICogKFVMT05HRVNUICopIGF0 dHJzW2l4KytdLnZhbHVlOworKyAgZWxzZQorKyAgICBlbmQgPSAtMTsKKysKKysgIGlmIChmaWVs ZF90eXBlX2lkICE9IE5VTEwpCisrICAgIHsKKysgICAgICBpZiAoZGF0YS0+Y3VycmVudF90eXBl X2lzX2ZsYWdzKQorKwlnZGJfeG1sX2Vycm9yIChwYXJzZXIsIF8oIkNhbm5vdCBhZGQgdHlwZWQg ZmllbGQgXCIlc1wiIHRvIGZsYWdzIiksIAorKwkJICAgICAgIGZpZWxkX25hbWUpOworKyAgICAg IGlmIChkYXRhLT5jdXJyZW50X3R5cGVfc2l6ZSAhPSAwKQorKwlnZGJfeG1sX2Vycm9yIChwYXJz ZXIsCisrCQkgICAgICAgXygiRXhwbGljaXRseSBzaXplZCB0eXBlIGNhbiBub3QgY29udGFpbiBu b24tYml0ZmllbGQgXCIlc1wiIiksIAorKwkJICAgICAgIGZpZWxkX25hbWUpOworKworKyAgICAg IGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChkYXRhLT5jdXJyZW50X2ZlYXR1cmUsIGZp ZWxkX3R5cGVfaWQpOworKyAgICAgIGlmIChmaWVsZF90eXBlID09IE5VTEwpCisrCWdkYl94bWxf ZXJyb3IgKHBhcnNlciwgXygiRmllbGQgXCIlc1wiIHJlZmVyZW5jZXMgdW5kZWZpbmVkICIKKysJ CQkJICJ0eXBlIFwiJXNcIiIpLAorKwkJICAgICAgIGZpZWxkX25hbWUsIGZpZWxkX3R5cGVfaWQp OworKworKyAgICAgIHRkZXNjX2FkZF9maWVsZCAoZGF0YS0+Y3VycmVudF90eXBlLCBmaWVsZF9u YW1lLCBmaWVsZF90eXBlKTsKKysgICAgfQorKyAgZWxzZSBpZiAoc3RhcnQgIT0gLTEgJiYgZW5k ICE9IC0xKQorKyAgICB7CisrICAgICAgc3RydWN0IHRkZXNjX3R5cGUgKnQgPSBkYXRhLT5jdXJy ZW50X3R5cGU7CisrCisrICAgICAgaWYgKGRhdGEtPmN1cnJlbnRfdHlwZV9pc19mbGFncykKKysJ dGRlc2NfYWRkX2ZsYWcgKHQsIHN0YXJ0LCBmaWVsZF9uYW1lKTsKKysgICAgICBlbHNlCisrCXsK KysJICBpZiAoZGF0YS0+Y3VycmVudF90eXBlX3NpemUgPT0gMCkKKysJICAgIGdkYl94bWxfZXJy b3IgKHBhcnNlciwKKysJCQkgICBfKCJJbXBsaWNpdGx5IHNpemVkIHR5cGUgY2FuIG5vdCBjb250 YWluIGJpdGZpZWxkIFwiJXNcIiIpLCAKKysJCQkgICBmaWVsZF9uYW1lKTsKKysKKysJICBpZiAo ZW5kID49IDY0KQorKwkgICAgZ2RiX3htbF9lcnJvciAocGFyc2VyLAorKwkJCSAgIF8oIkJpdGZp ZWxkIFwiJXNcIiBnb2VzIHBhc3QgNjQgYml0cyAodW5zdXBwb3J0ZWQpIiksCisrCQkJICAgZmll bGRfbmFtZSk7CisrCisrCSAgLyogQXNzdW1lIHRoYXQgdGhlIGJpdCBudW1iZXJpbmcgaW4gWE1M IGlzICJsc2ItemVybyIuICBNb3N0CisrCSAgICAgYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIFBv d2VyUEMgdXNlIHRoaXMgb3JkZXJpbmcuICBJbgorKwkgICAgIHRoZSBmdXR1cmUsIHdlIGNhbiBh ZGQgYW4gWE1MIHRhZyB0byBpbmRpY2F0ZSAibXNiLXplcm8iCisrCSAgICAgbnVtYmVyaW5nLiAg Ki8KKysJICBpZiAoc3RhcnQgPiBlbmQpCisrCSAgICBnZGJfeG1sX2Vycm9yIChwYXJzZXIsIF8o IkJpdGZpZWxkIFwiJXNcIiBoYXMgc3RhcnQgYWZ0ZXIgZW5kIiksCisrCQkJICAgZmllbGRfbmFt ZSk7CisgCistICB0ZGVzY19hZGRfZmllbGQgKGRhdGEtPmN1cnJlbnRfdW5pb24sIGZpZWxkX25h bWUsIGZpZWxkX3R5cGUpOworKwkgIGlmIChlbmQgPj0gZGF0YS0+Y3VycmVudF90eXBlX3NpemUg KiBUQVJHRVRfQ0hBUl9CSVQpCisrCSAgICBnZGJfeG1sX2Vycm9yIChwYXJzZXIsIF8oIkJpdGZp ZWxkIFwiJXNcIiBkb2VzIG5vdCBmaXQgaW4gc3RydWN0IikpOworKworKwkgIHRkZXNjX2FkZF9i aXRmaWVsZCAodCwgZmllbGRfbmFtZSwgc3RhcnQsIGVuZCk7CisrCX0KKysgICAgfQorKyAgZWxz ZQorKyAgICBnZGJfeG1sX2Vycm9yIChwYXJzZXIsIF8oIkZpZWxkIFwiJXNcIiBoYXMgbmVpdGhl ciB0eXBlIG5vciBiaXQgcG9zaXRpb24iKSwKKysJCSAgIGZpZWxkX25hbWUpOworIH0KKyAKKyAv KiBIYW5kbGUgdGhlIHN0YXJ0IG9mIGEgPHZlY3Rvcj4gZWxlbWVudC4gIEluaXRpYWxpemUgdGhl IHR5cGUgYW5kCitAQCAtMjg3LDExICs0MDQsMTMgQEAgdGRlc2Nfc3RhcnRfdmVjdG9yIChzdHJ1 Y3QgZ2RiX3htbF9wYXJzZQorIAorIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9hdHRyaWJ1 dGUgZmllbGRfYXR0cmlidXRlc1tdID0geworICAgeyAibmFtZSIsIEdEQl9YTUxfQUZfTk9ORSwg TlVMTCwgTlVMTCB9LAorLSAgeyAidHlwZSIsIEdEQl9YTUxfQUZfTk9ORSwgTlVMTCwgTlVMTCB9 LAorKyAgeyAidHlwZSIsIEdEQl9YTUxfQUZfT1BUSU9OQUwsIE5VTEwsIE5VTEwgfSwKKysgIHsg InN0YXJ0IiwgR0RCX1hNTF9BRl9PUFRJT05BTCwgZ2RiX3htbF9wYXJzZV9hdHRyX3Vsb25nZXN0 LCBOVUxMIH0sCisrICB7ICJlbmQiLCBHREJfWE1MX0FGX09QVElPTkFMLCBnZGJfeG1sX3BhcnNl X2F0dHJfdWxvbmdlc3QsIE5VTEwgfSwKKyAgIHsgTlVMTCwgR0RCX1hNTF9BRl9OT05FLCBOVUxM LCBOVUxMIH0KKyB9OworIAorLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9lbGVtZW50IHVu aW9uX2NoaWxkcmVuW10gPSB7Cisrc3RhdGljIGNvbnN0IHN0cnVjdCBnZGJfeG1sX2VsZW1lbnQg c3RydWN0X3VuaW9uX2NoaWxkcmVuW10gPSB7CisgICB7ICJmaWVsZCIsIGZpZWxkX2F0dHJpYnV0 ZXMsIE5VTEwsIEdEQl9YTUxfRUZfUkVQRUFUQUJMRSwKKyAgICAgdGRlc2Nfc3RhcnRfZmllbGQs IE5VTEwgfSwKKyAgIHsgTlVMTCwgTlVMTCwgTlVMTCwgR0RCX1hNTF9FRl9OT05FLCBOVUxMLCBO VUxMIH0KK0BAIC0zMDgsOCArNDI3LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9h dHRyaWJ1dGUgcmUKKyAgIHsgTlVMTCwgR0RCX1hNTF9BRl9OT05FLCBOVUxMLCBOVUxMIH0KKyB9 OworIAorLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9hdHRyaWJ1dGUgdW5pb25fYXR0cmli dXRlc1tdID0geworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9hdHRyaWJ1dGUgc3RydWN0 X3VuaW9uX2F0dHJpYnV0ZXNbXSA9IHsKKyAgIHsgImlkIiwgR0RCX1hNTF9BRl9OT05FLCBOVUxM LCBOVUxMIH0sCisrICB7ICJzaXplIiwgR0RCX1hNTF9BRl9PUFRJT05BTCwgZ2RiX3htbF9wYXJz ZV9hdHRyX3Vsb25nZXN0LCBOVUxMfSwKKysgIHsgTlVMTCwgR0RCX1hNTF9BRl9OT05FLCBOVUxM LCBOVUxMIH0KKyt9OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9hdHRyaWJ1dGUg ZmxhZ3NfYXR0cmlidXRlc1tdID0geworKyAgeyAiaWQiLCBHREJfWE1MX0FGX05PTkUsIE5VTEws IE5VTEwgfSwKKysgIHsgInNpemUiLCBHREJfWE1MX0FGX05PTkUsIGdkYl94bWxfcGFyc2VfYXR0 cl91bG9uZ2VzdCwgTlVMTH0sCisgICB7IE5VTEwsIEdEQl9YTUxfQUZfTk9ORSwgTlVMTCwgTlVM TCB9CisgfTsKKyAKK0BAIC0zMjksOSArNDU1LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2Ri X3htbF9lbGVtZW50IGZlYXQKKyAgIHsgInJlZyIsIHJlZ19hdHRyaWJ1dGVzLCBOVUxMLAorICAg ICBHREJfWE1MX0VGX09QVElPTkFMIHwgR0RCX1hNTF9FRl9SRVBFQVRBQkxFLAorICAgICB0ZGVz Y19zdGFydF9yZWcsIE5VTEwgfSwKKy0gIHsgInVuaW9uIiwgdW5pb25fYXR0cmlidXRlcywgdW5p b25fY2hpbGRyZW4sCisrICB7ICJzdHJ1Y3QiLCBzdHJ1Y3RfdW5pb25fYXR0cmlidXRlcywgc3Ry dWN0X3VuaW9uX2NoaWxkcmVuLAorKyAgICBHREJfWE1MX0VGX09QVElPTkFMIHwgR0RCX1hNTF9F Rl9SRVBFQVRBQkxFLAorKyAgICB0ZGVzY19zdGFydF9zdHJ1Y3QsIE5VTEwgfSwKKysgIHsgInVu aW9uIiwgc3RydWN0X3VuaW9uX2F0dHJpYnV0ZXMsIHN0cnVjdF91bmlvbl9jaGlsZHJlbiwKKyAg ICAgR0RCX1hNTF9FRl9PUFRJT05BTCB8IEdEQl9YTUxfRUZfUkVQRUFUQUJMRSwKKyAgICAgdGRl c2Nfc3RhcnRfdW5pb24sIE5VTEwgfSwKKysgIHsgImZsYWdzIiwgZmxhZ3NfYXR0cmlidXRlcywg c3RydWN0X3VuaW9uX2NoaWxkcmVuLAorKyAgICBHREJfWE1MX0VGX09QVElPTkFMIHwgR0RCX1hN TF9FRl9SRVBFQVRBQkxFLAorKyAgICB0ZGVzY19zdGFydF9mbGFncywgTlVMTCB9LCAgICAKKyAg IHsgInZlY3RvciIsIHZlY3Rvcl9hdHRyaWJ1dGVzLCBOVUxMLAorICAgICBHREJfWE1MX0VGX09Q VElPTkFMIHwgR0RCX1hNTF9FRl9SRVBFQVRBQkxFLAorICAgICB0ZGVzY19zdGFydF92ZWN0b3Is IE5VTEwgfSwKCmRpZmYgLS1naXQgYS9nZGItYno1NzgyNTAtYXZ4LTAzb2YxMC5wYXRjaCBiL2dk Yi1iejU3ODI1MC1hdngtMDNvZjEwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjdjZmI1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1NzgyNTAtYXZ4LTAzb2Yx MC5wYXRjaApAQCAtMCwwICsxLDQ1NyBAQAorWyBCYWNrcG9ydGVkLiAgXQorCitjb21taXQgMDI1 N2Q2MzlkNDJmODk2YTM1OTk5M2FlOGFkYjU3OTJlMjgwZjY1ZgorQXV0aG9yOiBILkouIEx1IDxo amwudG9vbHNAZ21haWwuY29tPgorRGF0ZTogICBNb24gTWFyIDEgMTc6MjY6MDIgMjAxMCArMDAw MAorCisgICAgUmVtb3ZlIFRERVNDX1RZUEVfSTM4Nl9FRkxBR1MgYW5kIFRERVNDX1RZUEVfSTM4 Nl9NWENTUi4KKyAgICAKKyAgICAyMDEwLTAzLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRl bC5jb20+CisgICAgCisgICAgCSogdGFyZ2V0LWRlc2NyaXB0aW9ucy5jICh0ZGVzY190eXBlKTog UmVtb3ZlCisgICAgCVRERVNDX1RZUEVfSTM4Nl9FRkxBR1MgYW5kIFRERVNDX1RZUEVfSTM4Nl9N WENTUi4KKyAgICAJKHRkZXNjX3ByZWRlZmluZWRfdHlwZXMpOiBMaWtld2lzZS4KKyAgICAJKHRk ZXNjX2dkYl90eXBlKTogTGlrZXdpc2UuICBQYXNzIE5VTEwgdG8gYXBwZW5kX2ZsYWdzX3R5cGVf ZmxhZworICAgIAlpZiBmbGFnIG5hbWUgaXMgZW1wdHkuCisgICAgCShtYWludF9wcmludF9jX3Rk ZXNjX2NtZCk6IEhhbmRsZSBUREVTQ19UWVBFX0ZMQUdTLgorICAgIAorICAgIAkqIGZlYXR1cmVz L2kzODYvMzJiaXQtY29yZS54bWw6IERlZmluZSBpMzg2X2VmbGFncy4KKyAgICAJKiBmZWF0dXJl cy9pMzg2LzY0Yml0LWNvcmUueG1sOiBMaWtld2lzZS4KKyAgICAKKyAgICAJKiBmZWF0dXJlcy9p Mzg2LzMyYml0LXNzZS54bWw6IERlZmluZSBpMzg2X214Y3NyLgorICAgIAkqIGZlYXR1cmVzL2kz ODYvNjRiaXQtc3NlLnhtbDogTGlrZXdpc2UuCisgICAgCisgICAgCSogZmVhdHVyZXMvaTM4Ni9h bWQ2NC1saW51eC5jOiBSZWdlbmVyYXRlZC4KKyAgICAJKiBmZWF0dXJlcy9pMzg2L2FtZDY0LmM6 IExpa2V3aXNlLgorICAgIAkqIGZlYXR1cmVzL2kzODYvaTM4Ni1saW51eC5jOiBMaWtld2lzZS4K KyAgICAJKiBmZWF0dXJlcy9pMzg2L2kzODYuYzogTGlrZXdpc2UuCisKKy0tLSBnZGItNy4xLXAx L2dkYi9mZWF0dXJlcy9pMzg2LzMyYml0LWNvcmUueG1sCTIwMTAtMDItMDggMDY6MDg6NDYuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvZmVhdHVyZXMvaTM4Ni8zMmJpdC1jb3JlLnht bAkyMDEwLTA0LTAzIDIxOjA2OjEyLjAwMDAwMDAwMCArMDIwMAorQEAgLTcsNiArNywyNiBAQAor IAorIDwhRE9DVFlQRSBmZWF0dXJlIFNZU1RFTSAiZ2RiLXRhcmdldC5kdGQiPgorIDxmZWF0dXJl IG5hbWU9Im9yZy5nbnUuZ2RiLmkzODYuY29yZSI+CisrICA8ZmxhZ3MgaWQ9ImkzODZfZWZsYWdz IiBzaXplPSI0Ij4KKysgICAgPGZpZWxkIG5hbWU9IkNGIiBzdGFydD0iMCIgZW5kPSIwIi8+Cisr ICAgIDxmaWVsZCBuYW1lPSIiIHN0YXJ0PSIxIiBlbmQ9IjEiLz4KKysgICAgPGZpZWxkIG5hbWU9 IlBGIiBzdGFydD0iMiIgZW5kPSIyIi8+CisrICAgIDxmaWVsZCBuYW1lPSJBRiIgc3RhcnQ9IjQi IGVuZD0iNCIvPgorKyAgICA8ZmllbGQgbmFtZT0iWkYiIHN0YXJ0PSI2IiBlbmQ9IjYiLz4KKysg ICAgPGZpZWxkIG5hbWU9IlNGIiBzdGFydD0iNyIgZW5kPSI3Ii8+CisrICAgIDxmaWVsZCBuYW1l PSJURiIgc3RhcnQ9IjgiIGVuZD0iOCIvPgorKyAgICA8ZmllbGQgbmFtZT0iSUYiIHN0YXJ0PSI5 IiBlbmQ9IjkiLz4KKysgICAgPGZpZWxkIG5hbWU9IkRGIiBzdGFydD0iMTAiIGVuZD0iMTAiLz4K KysgICAgPGZpZWxkIG5hbWU9Ik9GIiBzdGFydD0iMTEiIGVuZD0iMTEiLz4KKysgICAgPGZpZWxk IG5hbWU9Ik5UIiBzdGFydD0iMTQiIGVuZD0iMTQiLz4KKysgICAgPGZpZWxkIG5hbWU9IlJGIiBz dGFydD0iMTYiIGVuZD0iMTYiLz4KKysgICAgPGZpZWxkIG5hbWU9IlZNIiBzdGFydD0iMTciIGVu ZD0iMTciLz4KKysgICAgPGZpZWxkIG5hbWU9IkFDIiBzdGFydD0iMTgiIGVuZD0iMTgiLz4KKysg ICAgPGZpZWxkIG5hbWU9IlZJRiIgc3RhcnQ9IjE5IiBlbmQ9IjE5Ii8+CisrICAgIDxmaWVsZCBu YW1lPSJWSVAiIHN0YXJ0PSIyMCIgZW5kPSIyMCIvPgorKyAgICA8ZmllbGQgbmFtZT0iSUQiIHN0 YXJ0PSIyMSIgZW5kPSIyMSIvPgorKyAgPC9mbGFncz4KKysKKyAgIDxyZWcgbmFtZT0iZWF4IiBi aXRzaXplPSIzMiIgdHlwZT0iaW50MzIiLz4KKyAgIDxyZWcgbmFtZT0iZWN4IiBiaXRzaXplPSIz MiIgdHlwZT0iaW50MzIiLz4KKyAgIDxyZWcgbmFtZT0iZWR4IiBiaXRzaXplPSIzMiIgdHlwZT0i aW50MzIiLz4KKy0tLSBnZGItNy4xLXAxL2dkYi9mZWF0dXJlcy9pMzg2LzMyYml0LXNzZS54bWwJ MjAxMC0wMi0wOCAwNjowODo0Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9mZWF0 dXJlcy9pMzg2LzMyYml0LXNzZS54bWwJMjAxMC0wNC0wMyAyMTowNjoxMi4wMDAwMDAwMDAgKzAy MDAKK0BAIC0yMiw2ICsyMiwyMiBAQAorICAgICA8ZmllbGQgbmFtZT0idjJfaW50NjQiIHR5cGU9 InYyaTY0Ii8+CisgICAgIDxmaWVsZCBuYW1lPSJ1aW50MTI4IiB0eXBlPSJ1aW50MTI4Ii8+Cisg ICA8L3VuaW9uPgorKyAgPGZsYWdzIGlkPSJpMzg2X214Y3NyIiBzaXplPSI0Ij4KKysgICAgPGZp ZWxkIG5hbWU9IklFIiBzdGFydD0iMCIgZW5kPSIwIi8+CisrICAgIDxmaWVsZCBuYW1lPSJERSIg c3RhcnQ9IjEiIGVuZD0iMSIvPgorKyAgICA8ZmllbGQgbmFtZT0iWkUiIHN0YXJ0PSIyIiBlbmQ9 IjIiLz4KKysgICAgPGZpZWxkIG5hbWU9Ik9FIiBzdGFydD0iMyIgZW5kPSIzIi8+CisrICAgIDxm aWVsZCBuYW1lPSJVRSIgc3RhcnQ9IjQiIGVuZD0iNCIvPgorKyAgICA8ZmllbGQgbmFtZT0iUEUi IHN0YXJ0PSI1IiBlbmQ9IjUiLz4KKysgICAgPGZpZWxkIG5hbWU9IkRBWiIgc3RhcnQ9IjYiIGVu ZD0iNiIvPgorKyAgICA8ZmllbGQgbmFtZT0iSU0iIHN0YXJ0PSI3IiBlbmQ9IjciLz4KKysgICAg PGZpZWxkIG5hbWU9IkRNIiBzdGFydD0iOCIgZW5kPSI4Ii8+CisrICAgIDxmaWVsZCBuYW1lPSJa TSIgc3RhcnQ9IjkiIGVuZD0iOSIvPgorKyAgICA8ZmllbGQgbmFtZT0iT00iIHN0YXJ0PSIxMCIg ZW5kPSIxMCIvPgorKyAgICA8ZmllbGQgbmFtZT0iVU0iIHN0YXJ0PSIxMSIgZW5kPSIxMSIvPgor KyAgICA8ZmllbGQgbmFtZT0iUE0iIHN0YXJ0PSIxMiIgZW5kPSIxMiIvPgorKyAgICA8ZmllbGQg bmFtZT0iRloiIHN0YXJ0PSIxNSIgZW5kPSIxNSIvPgorKyAgPC9mbGFncz4KKyAKKyAgIDxyZWcg bmFtZT0ieG1tMCIgYml0c2l6ZT0iMTI4IiB0eXBlPSJ2ZWMxMjgiIHJlZ251bT0iMzIiLz4KKyAg IDxyZWcgbmFtZT0ieG1tMSIgYml0c2l6ZT0iMTI4IiB0eXBlPSJ2ZWMxMjgiLz4KKy0tLSBnZGIt Ny4xLXAxL2dkYi9mZWF0dXJlcy9pMzg2LzY0Yml0LWNvcmUueG1sCTIwMTAtMDItMDggMDY6MDg6 NDYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvZmVhdHVyZXMvaTM4Ni82NGJpdC1j b3JlLnhtbAkyMDEwLTA0LTAzIDIxOjA2OjEyLjAwMDAwMDAwMCArMDIwMAorQEAgLTcsNiArNywy NiBAQAorIAorIDwhRE9DVFlQRSBmZWF0dXJlIFNZU1RFTSAiZ2RiLXRhcmdldC5kdGQiPgorIDxm ZWF0dXJlIG5hbWU9Im9yZy5nbnUuZ2RiLmkzODYuY29yZSI+CisrICA8ZmxhZ3MgaWQ9ImkzODZf ZWZsYWdzIiBzaXplPSI0Ij4KKysgICAgPGZpZWxkIG5hbWU9IkNGIiBzdGFydD0iMCIgZW5kPSIw Ii8+CisrICAgIDxmaWVsZCBuYW1lPSIiIHN0YXJ0PSIxIiBlbmQ9IjEiLz4KKysgICAgPGZpZWxk IG5hbWU9IlBGIiBzdGFydD0iMiIgZW5kPSIyIi8+CisrICAgIDxmaWVsZCBuYW1lPSJBRiIgc3Rh cnQ9IjQiIGVuZD0iNCIvPgorKyAgICA8ZmllbGQgbmFtZT0iWkYiIHN0YXJ0PSI2IiBlbmQ9IjYi Lz4KKysgICAgPGZpZWxkIG5hbWU9IlNGIiBzdGFydD0iNyIgZW5kPSI3Ii8+CisrICAgIDxmaWVs ZCBuYW1lPSJURiIgc3RhcnQ9IjgiIGVuZD0iOCIvPgorKyAgICA8ZmllbGQgbmFtZT0iSUYiIHN0 YXJ0PSI5IiBlbmQ9IjkiLz4KKysgICAgPGZpZWxkIG5hbWU9IkRGIiBzdGFydD0iMTAiIGVuZD0i MTAiLz4KKysgICAgPGZpZWxkIG5hbWU9Ik9GIiBzdGFydD0iMTEiIGVuZD0iMTEiLz4KKysgICAg PGZpZWxkIG5hbWU9Ik5UIiBzdGFydD0iMTQiIGVuZD0iMTQiLz4KKysgICAgPGZpZWxkIG5hbWU9 IlJGIiBzdGFydD0iMTYiIGVuZD0iMTYiLz4KKysgICAgPGZpZWxkIG5hbWU9IlZNIiBzdGFydD0i MTciIGVuZD0iMTciLz4KKysgICAgPGZpZWxkIG5hbWU9IkFDIiBzdGFydD0iMTgiIGVuZD0iMTgi Lz4KKysgICAgPGZpZWxkIG5hbWU9IlZJRiIgc3RhcnQ9IjE5IiBlbmQ9IjE5Ii8+CisrICAgIDxm aWVsZCBuYW1lPSJWSVAiIHN0YXJ0PSIyMCIgZW5kPSIyMCIvPgorKyAgICA8ZmllbGQgbmFtZT0i SUQiIHN0YXJ0PSIyMSIgZW5kPSIyMSIvPgorKyAgPC9mbGFncz4KKysKKyAgIDxyZWcgbmFtZT0i cmF4IiBiaXRzaXplPSI2NCIgdHlwZT0iaW50NjQiLz4KKyAgIDxyZWcgbmFtZT0icmJ4IiBiaXRz aXplPSI2NCIgdHlwZT0iaW50NjQiLz4KKyAgIDxyZWcgbmFtZT0icmN4IiBiaXRzaXplPSI2NCIg dHlwZT0iaW50NjQiLz4KKy0tLSBnZGItNy4xLXAxL2dkYi9mZWF0dXJlcy9pMzg2LzY0Yml0LXNz ZS54bWwJMjAxMC0wMi0wOCAwNjowODo0Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dk Yi9mZWF0dXJlcy9pMzg2LzY0Yml0LXNzZS54bWwJMjAxMC0wNC0wMyAyMTowNjoxMi4wMDAwMDAw MDAgKzAyMDAKK0BAIC0yMiw2ICsyMiwyMiBAQAorICAgICA8ZmllbGQgbmFtZT0idjJfaW50NjQi IHR5cGU9InYyaTY0Ii8+CisgICAgIDxmaWVsZCBuYW1lPSJ1aW50MTI4IiB0eXBlPSJ1aW50MTI4 Ii8+CisgICA8L3VuaW9uPgorKyAgPGZsYWdzIGlkPSJpMzg2X214Y3NyIiBzaXplPSI0Ij4KKysg ICAgPGZpZWxkIG5hbWU9IklFIiBzdGFydD0iMCIgZW5kPSIwIi8+CisrICAgIDxmaWVsZCBuYW1l PSJERSIgc3RhcnQ9IjEiIGVuZD0iMSIvPgorKyAgICA8ZmllbGQgbmFtZT0iWkUiIHN0YXJ0PSIy IiBlbmQ9IjIiLz4KKysgICAgPGZpZWxkIG5hbWU9Ik9FIiBzdGFydD0iMyIgZW5kPSIzIi8+Cisr ICAgIDxmaWVsZCBuYW1lPSJVRSIgc3RhcnQ9IjQiIGVuZD0iNCIvPgorKyAgICA8ZmllbGQgbmFt ZT0iUEUiIHN0YXJ0PSI1IiBlbmQ9IjUiLz4KKysgICAgPGZpZWxkIG5hbWU9IkRBWiIgc3RhcnQ9 IjYiIGVuZD0iNiIvPgorKyAgICA8ZmllbGQgbmFtZT0iSU0iIHN0YXJ0PSI3IiBlbmQ9IjciLz4K KysgICAgPGZpZWxkIG5hbWU9IkRNIiBzdGFydD0iOCIgZW5kPSI4Ii8+CisrICAgIDxmaWVsZCBu YW1lPSJaTSIgc3RhcnQ9IjkiIGVuZD0iOSIvPgorKyAgICA8ZmllbGQgbmFtZT0iT00iIHN0YXJ0 PSIxMCIgZW5kPSIxMCIvPgorKyAgICA8ZmllbGQgbmFtZT0iVU0iIHN0YXJ0PSIxMSIgZW5kPSIx MSIvPgorKyAgICA8ZmllbGQgbmFtZT0iUE0iIHN0YXJ0PSIxMiIgZW5kPSIxMiIvPgorKyAgICA8 ZmllbGQgbmFtZT0iRloiIHN0YXJ0PSIxNSIgZW5kPSIxNSIvPgorKyAgPC9mbGFncz4KKyAKKyAg IDxyZWcgbmFtZT0ieG1tMCIgYml0c2l6ZT0iMTI4IiB0eXBlPSJ2ZWMxMjgiIHJlZ251bT0iNDAi Lz4KKyAgIDxyZWcgbmFtZT0ieG1tMSIgYml0c2l6ZT0iMTI4IiB0eXBlPSJ2ZWMxMjgiLz4KKy0t LSBnZGItNy4xLXAxL2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWxpbnV4LmMJMjAxMC0wMi0wOCAw NjowODo0Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9mZWF0dXJlcy9pMzg2L2Ft ZDY0LWxpbnV4LmMJMjAxMC0wNC0wMyAyMTowNjoxMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xNyw2 ICsxNywyNSBAQCBpbml0aWFsaXplX3RkZXNjX2FtZDY0X2xpbnV4ICh2b2lkKQorICAgc2V0X3Rk ZXNjX29zYWJpIChyZXN1bHQsIG9zYWJpX2Zyb21fdGRlc2Nfc3RyaW5nICgiR05VL0xpbnV4Iikp OworIAorICAgZmVhdHVyZSA9IHRkZXNjX2NyZWF0ZV9mZWF0dXJlIChyZXN1bHQsICJvcmcuZ251 LmdkYi5pMzg2LmNvcmUiKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19jcmVhdGVfZmxhZ3MgKGZl YXR1cmUsICJpMzg2X2VmbGFncyIsIDQpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUs IDAsICJDRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEsICIiKTsKKysgIHRk ZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyLCAiUEYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChm aWVsZF90eXBlLCA0LCAiQUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA2LCAi WkYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA3LCAiU0YiKTsKKysgIHRkZXNj X2FkZF9mbGFnIChmaWVsZF90eXBlLCA4LCAiVEYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCA5LCAiSUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMCwgIkRG Iik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTEsICJPRiIpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE0LCAiTlQiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCAxNiwgIlJGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTcsICJW TSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE4LCAiQUMiKTsKKysgIHRkZXNj X2FkZF9mbGFnIChmaWVsZF90eXBlLCAxOSwgIlZJRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDIwLCAiVklQIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMjEs ICJJRCIpOworKworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInJheCIsIDAsIDEsIE5V TEwsIDY0LCAiaW50NjQiKTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyYngiLCAx LCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi cmN4IiwgMiwgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOworQEAgLTkzLDYgKzExMiwyMiBAQCBpbml0 aWFsaXplX3RkZXNjX2FtZDY0X2xpbnV4ICh2b2lkKQorICAgZmllbGRfdHlwZSA9IHRkZXNjX25h bWVkX3R5cGUgKGZlYXR1cmUsICJ1aW50MTI4Iik7CisgICB0ZGVzY19hZGRfZmllbGQgKHR5cGUs ICJ1aW50MTI4IiwgZmllbGRfdHlwZSk7CisgCisrICBmaWVsZF90eXBlID0gdGRlc2NfY3JlYXRl X2ZsYWdzIChmZWF0dXJlLCAiaTM4Nl9teGNzciIsIDQpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDAsICJJRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEsICJE RSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJaRSIpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDMsICJPRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxk X3R5cGUsIDQsICJVRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDUsICJQRSIp OworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJEQVoiKTsKKysgIHRkZXNjX2Fk ZF9mbGFnIChmaWVsZF90eXBlLCA3LCAiSU0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90 eXBlLCA4LCAiRE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA5LCAiWk0iKTsK KysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMCwgIk9NIik7CisrICB0ZGVzY19hZGRf ZmxhZyAoZmllbGRfdHlwZSwgMTEsICJVTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5 cGUsIDEyLCAiUE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNSwgIkZaIik7 CisrCisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMCIsIDQwLCAxLCBOVUxMLCAx MjgsICJ2ZWMxMjgiKTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xIiwgNDEs IDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwg InhtbTIiLCA0MiwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CistLS0gZ2RiLTcuMS1wMS9nZGIv ZmVhdHVyZXMvaTM4Ni9hbWQ2NC5jCTIwMTAtMDItMDggMDY6MDg6NDYuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuMS9nZGIvZmVhdHVyZXMvaTM4Ni9hbWQ2NC5jCTIwMTAtMDQtMDMgMjE6MDY6 MTIuMDAwMDAwMDAwICswMjAwCitAQCAtMTUsNiArMTUsMjUgQEAgaW5pdGlhbGl6ZV90ZGVzY19h bWQ2NCAodm9pZCkKKyAgIHNldF90ZGVzY19hcmNoaXRlY3R1cmUgKHJlc3VsdCwgYmZkX3NjYW5f YXJjaCAoImkzODY6eDg2LTY0IikpOworIAorICAgZmVhdHVyZSA9IHRkZXNjX2NyZWF0ZV9mZWF0 dXJlIChyZXN1bHQsICJvcmcuZ251LmdkYi5pMzg2LmNvcmUiKTsKKysgIGZpZWxkX3R5cGUgPSB0 ZGVzY19jcmVhdGVfZmxhZ3MgKGZlYXR1cmUsICJpMzg2X2VmbGFncyIsIDQpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDAsICJDRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxk X3R5cGUsIDEsICIiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyLCAiUEYiKTsK KysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA0LCAiQUYiKTsKKysgIHRkZXNjX2FkZF9m bGFnIChmaWVsZF90eXBlLCA2LCAiWkYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBl LCA3LCAiU0YiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA4LCAiVEYiKTsKKysg IHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA5LCAiSUYiKTsKKysgIHRkZXNjX2FkZF9mbGFn IChmaWVsZF90eXBlLCAxMCwgIkRGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwg MTEsICJPRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE0LCAiTlQiKTsKKysg IHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNiwgIlJGIik7CisrICB0ZGVzY19hZGRfZmxh ZyAoZmllbGRfdHlwZSwgMTcsICJWTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUs IDE4LCAiQUMiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxOSwgIlZJRiIpOwor KyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIwLCAiVklQIik7CisrICB0ZGVzY19hZGRf ZmxhZyAoZmllbGRfdHlwZSwgMjEsICJJRCIpOworKworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVh dHVyZSwgInJheCIsIDAsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsKKyAgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJyYngiLCAxLCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisgICB0ZGVzY19j cmVhdGVfcmVnIChmZWF0dXJlLCAicmN4IiwgMiwgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOworQEAg LTkxLDYgKzExMCwyMiBAQCBpbml0aWFsaXplX3RkZXNjX2FtZDY0ICh2b2lkKQorICAgZmllbGRf dHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ1aW50MTI4Iik7CisgICB0ZGVzY19h ZGRfZmllbGQgKHR5cGUsICJ1aW50MTI4IiwgZmllbGRfdHlwZSk7CisgCisrICBmaWVsZF90eXBl ID0gdGRlc2NfY3JlYXRlX2ZsYWdzIChmZWF0dXJlLCAiaTM4Nl9teGNzciIsIDQpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDAsICJJRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDEsICJERSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJa RSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDMsICJPRSIpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDQsICJVRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxk X3R5cGUsIDUsICJQRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJEQVoi KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA3LCAiSU0iKTsKKysgIHRkZXNjX2Fk ZF9mbGFnIChmaWVsZF90eXBlLCA4LCAiRE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90 eXBlLCA5LCAiWk0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMCwgIk9NIik7 CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTEsICJVTSIpOworKyAgdGRlc2NfYWRk X2ZsYWcgKGZpZWxkX3R5cGUsIDEyLCAiUE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90 eXBlLCAxNSwgIkZaIik7CisrCisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMCIs IDQwLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1 cmUsICJ4bW0xIiwgNDEsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworICAgdGRlc2NfY3JlYXRl X3JlZyAoZmVhdHVyZSwgInhtbTIiLCA0MiwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CistLS0g Z2RiLTcuMS1wMS9nZGIvZmVhdHVyZXMvaTM4Ni9pMzg2LWxpbnV4LmMJMjAxMC0wMi0wOCAwNjow ODo0Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9mZWF0dXJlcy9pMzg2L2kzODYt bGludXguYwkyMDEwLTA0LTAzIDIxOjA2OjEyLjAwMDAwMDAwMCArMDIwMAorQEAgLTE3LDYgKzE3 LDI1IEBAIGluaXRpYWxpemVfdGRlc2NfaTM4Nl9saW51eCAodm9pZCkKKyAgIHNldF90ZGVzY19v c2FiaSAocmVzdWx0LCBvc2FiaV9mcm9tX3RkZXNjX3N0cmluZyAoIkdOVS9MaW51eCIpKTsKKyAK KyAgIGZlYXR1cmUgPSB0ZGVzY19jcmVhdGVfZmVhdHVyZSAocmVzdWx0LCAib3JnLmdudS5nZGIu aTM4Ni5jb3JlIik7CisrICBmaWVsZF90eXBlID0gdGRlc2NfY3JlYXRlX2ZsYWdzIChmZWF0dXJl LCAiaTM4Nl9lZmxhZ3MiLCA0KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAwLCAi Q0YiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxLCAiIik7CisrICB0ZGVzY19h ZGRfZmxhZyAoZmllbGRfdHlwZSwgMiwgIlBGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRf dHlwZSwgNCwgIkFGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgNiwgIlpGIik7 CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgNywgIlNGIik7CisrICB0ZGVzY19hZGRf ZmxhZyAoZmllbGRfdHlwZSwgOCwgIlRGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlw ZSwgOSwgIklGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTAsICJERiIpOwor KyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDExLCAiT0YiKTsKKysgIHRkZXNjX2FkZF9m bGFnIChmaWVsZF90eXBlLCAxNCwgIk5UIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlw ZSwgMTYsICJSRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE3LCAiVk0iKTsK KysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxOCwgIkFDIik7CisrICB0ZGVzY19hZGRf ZmxhZyAoZmllbGRfdHlwZSwgMTksICJWSUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90 eXBlLCAyMCwgIlZJUCIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIxLCAiSUQi KTsKKysKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJlYXgiLCAwLCAxLCBOVUxMLCAz MiwgImludDMyIik7CisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZWN4IiwgMSwgMSwg TlVMTCwgMzIsICJpbnQzMiIpOworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVkeCIs IDIsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKK0BAIC04OCw2ICsxMDcsMjIgQEAgaW5pdGlhbGl6 ZV90ZGVzY19pMzg2X2xpbnV4ICh2b2lkKQorICAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5 cGUgKGZlYXR1cmUsICJ1aW50MTI4Iik7CisgICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ1aW50 MTI4IiwgZmllbGRfdHlwZSk7CisgCisrICBmaWVsZF90eXBlID0gdGRlc2NfY3JlYXRlX2ZsYWdz IChmZWF0dXJlLCAiaTM4Nl9teGNzciIsIDQpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5 cGUsIDAsICJJRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEsICJERSIpOwor KyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJaRSIpOworKyAgdGRlc2NfYWRkX2Zs YWcgKGZpZWxkX3R5cGUsIDMsICJPRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUs IDQsICJVRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDUsICJQRSIpOworKyAg dGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJEQVoiKTsKKysgIHRkZXNjX2FkZF9mbGFn IChmaWVsZF90eXBlLCA3LCAiSU0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA4 LCAiRE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA5LCAiWk0iKTsKKysgIHRk ZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMCwgIk9NIik7CisrICB0ZGVzY19hZGRfZmxhZyAo ZmllbGRfdHlwZSwgMTEsICJVTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEy LCAiUE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNSwgIkZaIik7CisrCisg ICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMCIsIDMyLCAxLCBOVUxMLCAxMjgsICJ2 ZWMxMjgiKTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xIiwgMzMsIDEsIE5V TEwsIDEyOCwgInZlYzEyOCIpOworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTIi LCAzNCwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CistLS0gZ2RiLTcuMS1wMS9nZGIvZmVhdHVy ZXMvaTM4Ni9pMzg2LmMJMjAxMC0wMi0wOCAwNjowODo0Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBn ZGItNy4xL2dkYi9mZWF0dXJlcy9pMzg2L2kzODYuYwkyMDEwLTA0LTAzIDIxOjA2OjEyLjAwMDAw MDAwMCArMDIwMAorQEAgLTE1LDYgKzE1LDI1IEBAIGluaXRpYWxpemVfdGRlc2NfaTM4NiAodm9p ZCkKKyAgIHNldF90ZGVzY19hcmNoaXRlY3R1cmUgKHJlc3VsdCwgYmZkX3NjYW5fYXJjaCAoImkz ODYiKSk7CisgCisgICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9y Zy5nbnUuZ2RiLmkzODYuY29yZSIpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX2NyZWF0ZV9mbGFn cyAoZmVhdHVyZSwgImkzODZfZWZsYWdzIiwgNCk7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRf dHlwZSwgMCwgIkNGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMSwgIiIpOwor KyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJQRiIpOworKyAgdGRlc2NfYWRkX2Zs YWcgKGZpZWxkX3R5cGUsIDQsICJBRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUs IDYsICJaRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDcsICJTRiIpOworKyAg dGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDgsICJURiIpOworKyAgdGRlc2NfYWRkX2ZsYWcg KGZpZWxkX3R5cGUsIDksICJJRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEw LCAiREYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMSwgIk9GIik7CisrICB0 ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTQsICJOVCIpOworKyAgdGRlc2NfYWRkX2ZsYWcg KGZpZWxkX3R5cGUsIDE2LCAiUkYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAx NywgIlZNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTgsICJBQyIpOworKyAg dGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE5LCAiVklGIik7CisrICB0ZGVzY19hZGRfZmxh ZyAoZmllbGRfdHlwZSwgMjAsICJWSVAiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBl LCAyMSwgIklEIik7CisrCisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZWF4IiwgMCwg MSwgTlVMTCwgMzIsICJpbnQzMiIpOworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVj eCIsIDEsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1 cmUsICJlZHgiLCAyLCAxLCBOVUxMLCAzMiwgImludDMyIik7CitAQCAtODMsNiArMTAyLDIyIEBA IGluaXRpYWxpemVfdGRlc2NfaTM4NiAodm9pZCkKKyAgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1l ZF90eXBlIChmZWF0dXJlLCAidWludDEyOCIpOworICAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAi dWludDEyOCIsIGZpZWxkX3R5cGUpOworIAorKyAgZmllbGRfdHlwZSA9IHRkZXNjX2NyZWF0ZV9m bGFncyAoZmVhdHVyZSwgImkzODZfbXhjc3IiLCA0KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCAwLCAiSUUiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxLCAiREUi KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyLCAiWkUiKTsKKysgIHRkZXNjX2Fk ZF9mbGFnIChmaWVsZF90eXBlLCAzLCAiT0UiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90 eXBlLCA0LCAiVUUiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA1LCAiUEUiKTsK KysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA2LCAiREFaIik7CisrICB0ZGVzY19hZGRf ZmxhZyAoZmllbGRfdHlwZSwgNywgIklNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlw ZSwgOCwgIkRNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgOSwgIlpNIik7Cisr ICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTAsICJPTSIpOworKyAgdGRlc2NfYWRkX2Zs YWcgKGZpZWxkX3R5cGUsIDExLCAiVU0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBl LCAxMiwgIlBNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTUsICJGWiIpOwor KworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTAiLCAzMiwgMSwgTlVMTCwgMTI4 LCAidmVjMTI4Iik7CisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMSIsIDMzLCAx LCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4 bW0yIiwgMzQsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworLS0tIGdkYi03LjEtcDEvZ2RiL3Rh cmdldC1kZXNjcmlwdGlvbnMuYwkyMDEwLTA0LTAzIDIxOjA0OjEzLjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi03LjEvZ2RiL3RhcmdldC1kZXNjcmlwdGlvbnMuYwkyMDEwLTA0LTAzIDIxOjA2OjEy LjAwMDAwMDAwMCArMDIwMAorQEAgLTEyNiw4ICsxMjYsNiBAQCB0eXBlZGVmIHN0cnVjdCB0ZGVz Y190eXBlCisgICAgIFRERVNDX1RZUEVfSUVFRV9ET1VCTEUsCisgICAgIFRERVNDX1RZUEVfQVJN X0ZQQV9FWFQsCisgICAgIFRERVNDX1RZUEVfSTM4N19FWFQsCistICAgIFRERVNDX1RZUEVfSTM4 Nl9FRkxBR1MsCistICAgIFRERVNDX1RZUEVfSTM4Nl9NWENTUiwKKyAKKyAgICAgLyogVHlwZXMg ZGVmaW5lZCBieSBhIHRhcmdldCBmZWF0dXJlLiAgKi8KKyAgICAgVERFU0NfVFlQRV9WRUNUT1Is CitAQCAtNDgzLDkgKzQ4MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdGRlc2NfdHlwZSB0ZGVzY19wcmVk ZWZpbmUKKyAgIHsgImllZWVfc2luZ2xlIiwgVERFU0NfVFlQRV9JRUVFX1NJTkdMRSB9LAorICAg eyAiaWVlZV9kb3VibGUiLCBUREVTQ19UWVBFX0lFRUVfRE9VQkxFIH0sCisgICB7ICJhcm1fZnBh X2V4dCIsIFRERVNDX1RZUEVfQVJNX0ZQQV9FWFQgfSwKKy0gIHsgImkzODdfZXh0IiwgVERFU0Nf VFlQRV9JMzg3X0VYVCB9LAorLSAgeyAiaTM4Nl9lZmxhZ3MiLCBUREVTQ19UWVBFX0kzODZfRUZM QUdTIH0sCistICB7ICJpMzg2X214Y3NyIiwgVERFU0NfVFlQRV9JMzg2X01YQ1NSIH0KKysgIHsg ImkzODdfZXh0IiwgVERFU0NfVFlQRV9JMzg3X0VYVCB9CisgfTsKKyAKKyAvKiBSZXR1cm4gdGhl IHR5cGUgYXNzb2NpYXRlZCB3aXRoIElEIGluIHRoZSBjb250ZXh0IG9mIEZFQVRVUkUsIG9yCitA QCAtNjA3LDU3ICs2MDMsNiBAQCB0ZGVzY19nZGJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsCisgICAgICAgcmV0dXJuIGFyY2hfZmxvYXRfdHlwZSAoZ2RiYXJjaCwgLTEsICJidWlsdGlu X3R5cGVfaTM4N19leHQiLAorIAkJCSAgICAgIGZsb2F0Zm9ybWF0c19pMzg3X2V4dCk7CisgCist ICAgIGNhc2UgVERFU0NfVFlQRV9JMzg2X0VGTEFHUzoKKy0gICAgICB7CistCXN0cnVjdCB0eXBl ICp0eXBlOworLQorLQl0eXBlID0gYXJjaF9mbGFnc190eXBlIChnZGJhcmNoLCAiYnVpbHRpbl90 eXBlX2kzODZfZWZsYWdzIiwgNCk7CistCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDAs ICJDRiIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxLCBOVUxMKTsKKy0JYXBw ZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMiwgIlBGIik7CistCWFwcGVuZF9mbGFnc190eXBl X2ZsYWcgKHR5cGUsIDQsICJBRiIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCA2 LCAiWkYiKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgNywgIlNGIik7CistCWFw cGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDgsICJURiIpOworLQlhcHBlbmRfZmxhZ3NfdHlw ZV9mbGFnICh0eXBlLCA5LCAiSUYiKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwg MTAsICJERiIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxMSwgIk9GIik7Cist CWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDE0LCAiTlQiKTsKKy0JYXBwZW5kX2ZsYWdz X3R5cGVfZmxhZyAodHlwZSwgMTYsICJSRiIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0 eXBlLCAxNywgIlZNIik7CistCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDE4LCAiQUMi KTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMTksICJWSUYiKTsKKy0JYXBwZW5k X2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMjAsICJWSVAiKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVf ZmxhZyAodHlwZSwgMjEsICJJRCIpOworLQorLQlyZXR1cm4gdHlwZTsKKy0gICAgICB9CistICAg IGJyZWFrOworLQorLSAgICBjYXNlIFRERVNDX1RZUEVfSTM4Nl9NWENTUjoKKy0gICAgICB7Cist CXN0cnVjdCB0eXBlICp0eXBlOworLQorLQl0eXBlID0gYXJjaF9mbGFnc190eXBlIChnZGJhcmNo LCAiYnVpbHRpbl90eXBlX2kzODZfbXhjc3IiLCA0KTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxh ZyAodHlwZSwgMCwgIklFIik7CistCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDEsICJE RSIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAyLCAiWkUiKTsKKy0JYXBwZW5k X2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMywgIk9FIik7CistCWFwcGVuZF9mbGFnc190eXBlX2Zs YWcgKHR5cGUsIDQsICJVRSIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCA1LCAi UEUiKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgNiwgIkRBWiIpOworLQlhcHBl bmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCA3LCAiSU0iKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVf ZmxhZyAodHlwZSwgOCwgIkRNIik7CistCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDks ICJaTSIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxMCwgIk9NIik7CistCWFw cGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDExLCAiVU0iKTsKKy0JYXBwZW5kX2ZsYWdzX3R5 cGVfZmxhZyAodHlwZSwgMTIsICJQTSIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBl LCAxNSwgIkZaIik7CistCistCXJldHVybiB0eXBlOworLSAgICAgIH0KKy0gICAgYnJlYWs7Cist CisgICAgIC8qIFR5cGVzIGRlZmluZWQgYnkgYSB0YXJnZXQgZmVhdHVyZS4gICovCisgICAgIGNh c2UgVERFU0NfVFlQRV9WRUNUT1I6CisgICAgICAgeworQEAgLTc2OSw3ICs3MTQsOCBAQCB0ZGVz Y19nZGJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgCSAgLyogTm90ZSB0aGF0IGNv bnRyYXJ5IHRvIHRoZSBmdW5jdGlvbiBuYW1lLCB0aGlzIGNhbGwgd2lsbAorIAkgICAgIGp1c3Qg c2V0IHRoZSBwcm9wZXJ0aWVzIG9mIGFuIGFscmVhZHktYWxsb2NhdGVkCisgCSAgICAgZmllbGQu ICAqLworLQkgIGFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIGYtPnN0YXJ0LCBmLT5uYW1l KTsKKysJICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCBmLT5zdGFydCwKKysJCQkJICAq Zi0+bmFtZSA/IGYtPm5hbWUgOiBOVUxMKTsKKyAKKyAJcmV0dXJuIHR5cGU7CisgICAgICAgfQor QEAgLTE2MDIsNiArMTU0OCw3IEBAIG1haW50X3ByaW50X2NfdGRlc2NfY21kIChjaGFyICphcmdz LCBpbnQKKyAgIHN0cnVjdCB0ZGVzY19yZWcgKnJlZzsKKyAgIHN0cnVjdCB0ZGVzY190eXBlICp0 eXBlOworICAgc3RydWN0IHRkZXNjX3R5cGVfZmllbGQgKmY7CisrICBzdHJ1Y3QgdGRlc2NfdHlw ZV9mbGFnICpmbGFnOworICAgaW50IGl4LCBpeDIsIGl4MzsKKyAKKyAgIC8qIFVzZSB0aGUgZ2xv YmFsIHRhcmdldC1zdXBwbGllZCBkZXNjcmlwdGlvbiwgbm90IHRoZSBjdXJyZW50CitAQCAtMTcx NSw2ICsxNjYyLDE4IEBAIG1haW50X3ByaW50X2NfdGRlc2NfY21kIChjaGFyICphcmdzLCBpbnQK KyAJCSAgICAgZi0+bmFtZSk7CisgCQl9CisgCSAgICAgIGJyZWFrOworKwkgICAgY2FzZSBUREVT Q19UWVBFX0ZMQUdTOgorKwkgICAgICBwcmludGZfdW5maWx0ZXJlZAorKwkJKCIgIGZpZWxkX3R5 cGUgPSB0ZGVzY19jcmVhdGVfZmxhZ3MgKGZlYXR1cmUsIFwiJXNcIiwgJWQpO1xuIiwKKysJCSB0 eXBlLT5uYW1lLCAoaW50KSB0eXBlLT51LmYuc2l6ZSk7CisrCSAgICAgIGZvciAoaXgzID0gMDsK KysJCSAgIFZFQ19pdGVyYXRlICh0ZGVzY190eXBlX2ZsYWcsIHR5cGUtPnUuZi5mbGFncywgaXgz LAorKwkJCQlmbGFnKTsKKysJCSAgIGl4MysrKQorKwkJcHJpbnRmX3VuZmlsdGVyZWQKKysJCSAg KCIgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAlZCwgXCIlc1wiKTtcbiIsCisrCQkgICBm bGFnLT5zdGFydCwgZmxhZy0+bmFtZSk7CisrCSAgICAgIGJyZWFrOworIAkgICAgZGVmYXVsdDoK KyAJICAgICAgZXJyb3IgKF8oIkMgb3V0cHV0IGlzIG5vdCBzdXBwb3J0ZWQgdHlwZSBcIiVzXCIu IiksIHR5cGUtPm5hbWUpOworIAkgICAgfQoKZGlmZiAtLWdpdCBhL2dkYi1iejU3ODI1MC1hdngt MDRvZjEwLnBhdGNoIGIvZ2RiLWJ6NTc4MjUwLWF2eC0wNG9mMTAucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM2MTlkYwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1i ejU3ODI1MC1hdngtMDRvZjEwLnBhdGNoCkBAIC0wLDAgKzEsMTM2NiBAQAorWyBCYWNrcG9ydGVk LiAgXQorCitjb21taXQgOWQ2MjU4MTJmMjQ2MDhmOTlmZDk5ZTg1OTFlZjNjODBkNzI5ZjliNQor QXV0aG9yOiBILkouIEx1IDxoamwudG9vbHNAZ21haWwuY29tPgorRGF0ZTogICBUdWUgTWFyIDIg MTM6MTQ6MjggMjAxMCArMDAwMAorCisgICAgU3VwcG9ydCB4ODYgcHNldWRvIGJ5dGUsIHdvcmQg YW5kIGR3b3JkIHJlZ2lzdGVycy4KKyAgICAKKyAgICBnZGIvCisgICAgCisgICAgMjAxMC0wMy0w MiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorICAgIAorICAgIAkqIGFtZDY0LXRk ZXAuYyAoYW1kNjRfYnl0ZV9uYW1lcyk6IE5ldy4KKyAgICAJKGFtZDY0X3dvcmRfbmFtZXMpOiBM aWtld2lzZS4KKyAgICAJKGFtZDY0X2R3b3JkX25hbWVzKTogTGlrZXdpc2UuCisgICAgCShhbWQ2 NF9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk6IExpa2V3aXNlLgorICAgIAkoYW1kNjRfcHNldWRvX3Jl Z2lzdGVyX3JlYWQpOiBMaWtld2lzZS4KKyAgICAJKGFtZDY0X3BzZXVkb19yZWdpc3Rlcl93cml0 ZSk6IExpa2V3aXNlLgorICAgIAkoYW1kNjRfaW5pdF9hYmkpOiBTZXQgbnVtX2J5dGVfcmVncywg bnVtX3dvcmRfcmVncywgbnVtX2R3b3JkX3JlZ3MKKyAgICAJYW5kIG51bV9tbXhfcmVncy4gIENh bGwgc2V0X2dkYmFyY2hfcHNldWRvX3JlZ2lzdGVyX3JlYWQsCisgICAgCXNldF9nZGJhcmNoX3Bz ZXVkb19yZWdpc3Rlcl93cml0ZSBhbmQKKyAgICAJc2V0X3RkZXNjX3BzZXVkb19yZWdpc3Rlcl9u YW1lLiAgRG9uJ3QgY2FsbAorICAgIAlzZXRfZ2RiYXJjaF9udW1fcHNldWRvX3JlZ3MuICBEb24n dCBzZXQgbW0wX3JlZ251bS4KKyAgICAKKyAgICAJKiBpMzg2LXRkZXAuYyAoaTM4Nl9udW1fbW14 X3JlZ3MpOiBSZW1vdmVkLgorICAgIAkoaTM4Nl9udW1fcHNldWRvX3JlZ3MpOiBMaWtld2lzZS4K KyAgICAJKGkzODZfYnl0ZV9uYW1lcyk6IE5ldy4KKyAgICAJKGkzODZfd29yZF9uYW1lcyk6IExp a2V3aXNlLgorICAgIAkoaTM4Nl9ieXRlX3JlZ251bV9wKTogTGlrZXdpc2UuCisgICAgCShpMzg2 X3dvcmRfcmVnbnVtX3ApOiBMaWtld2lzZS4KKyAgICAJKGkzODZfbW14X3JlZ251bV9wKTogVXBk YXRlZC4KKyAgICAJKGkzODZfcHNldWRvX3JlZ2lzdGVyX25hbWUpOiBNYWtlIGl0IGdsb2JhbC4g IEhhbmRsZSBieXRlIGFuZAorICAgIAl3b3JkIHBzZXVkby1yZWdpc3RlcnMuCisgICAgCShpMzg2 X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTogTGlrZXdpc2UuCisgICAgCShpMzg2X3BzZXVkb19yZWdp c3Rlcl93cml0ZSk6IExpa2V3aXNlLgorICAgIAkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfdHlwZSk6 IEhhbmRsZSBieXRlLCB3b3JkIGFuZCBkd29yZAorICAgIAlwc2V1ZG8tcmVnaXN0ZXJzCisgICAg CShpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3ApOiBEb24ndCBpbmNsdWRlIHBzZXVkbworICAgIAly ZWdpc3RlcnMsIGV4Y2VwdCBmb3IgTVhYLCBpbiBhbnkgcmVnaXN0ZXIgZ3JvdXBzLiAgRG9uJ3QK KyAgICAJaW5jbHVkZSBwc2V1ZG8gYnl0ZSwgd29yZCwgZHdvcmQgcmVnaXN0ZXJzIGluIGdlbmVy YWxfcmVnZ3JvdXAuCisgICAgCShpMzg2X2dkYmFyY2hfaW5pdCk6IFNldCBudW1fYnl0ZV9yZWdz LCBudW1fd29yZF9yZWdzLAorICAgIAludW1fZHdvcmRfcmVncywgYWxfcmVnbnVtLCBheF9yZWdu dW0gYW5kIGVheF9yZWdudW0uICBQdXQgTU1YCisgICAgCXBzZXVkby1yZWdpc3RlcnMgYWZ0ZXIg d29yZCBwc2V1ZG8tcmVnaXN0ZXJzLiAgQ2FsbAorICAgIAlzZXRfZ2RiYXJjaF9udW1fcHNldWRv X3JlZ3MgYWZ0ZXIgY2FsbGluZyBnZGJhcmNoX2luaXRfb3NhYmkuCisgICAgCisgICAgCSogaTM4 Ni10ZGVwLmggKGdkYmFyY2hfdGRlcCk6IEFkZCBudW1fbW14X3JlZ3MsIG51bV9ieXRlX3JlZ3Ms CisgICAgCWFsX3JlZ251bSwgbnVtX3dvcmRfcmVncywgYXhfcmVnbnVtLCBudW1fZHdvcmRfcmVn cyBhbmQKKyAgICAJZWF4X3JlZ251bS4KKyAgICAJKGkzODZfYnl0ZV9yZWdudW1fcCk6IE5ldy4K KyAgICAJKGkzODZfd29yZF9yZWdudW1fcCk6IExpa2V3aXNlLgorICAgIAkoaTM4Nl9kd29yZF9y ZWdudW1fcCk6IExpa2V3aXNlLgorICAgIAkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk6IExp a2V3aXNlLgorICAgIAkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCk6IExpa2V3aXNlLgorICAg IAkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUpOiBMaWtld2lzZS4KKyAgICAKKyAgICBnZGIv dGVzdHN1aXRlLworICAgIAorICAgIDIwMTAtMDMtMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKyAgICAKKyAgICAJKiBnZGIuYXJjaC9hbWQ2NC1ieXRlLmV4cDogTmV3LgorICAg IAkqIGdkYi5hcmNoL2FtZDY0LWR3b3JkLmV4cDogTGlrZXdpc2UuCisgICAgCSogZ2RiLmFyY2gv YW1kNjQtcHNldWRvLmM6IExpa2V3aXNlLgorICAgIAkqIGdkYi5hcmNoL2FtZDY0LXdvcmQuZXhw OiBMaWtld2lzZS4KKyAgICAJKiBnZGIuYXJjaC9pMzg2LWJ5dGUuZXhwOiBMaWtld2lzZS4KKyAg ICAJKiBnZGIuYXJjaC9pMzg2LXBzZXVkby5jOiBMaWtld2lzZS4KKyAgICAJKiBnZGIuYXJjaC9p Mzg2LXdvcmQuZXhwOiBMaWtld2lzZS4KKworLS0tIGdkYi03LjEtcDIvZ2RiL2FtZDY0LXRkZXAu YwkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2Ft ZDY0LXRkZXAuYwkyMDEwLTA0LTAzIDIxOjA2OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTIxMCw2 ICsyMTAsMTA3IEBAIGFtZDY0X2FyY2hfcmVnX3RvX3JlZ251bSAoaW50IHJlZykKKyAgIHJldHVy biBhbWQ2NF9hcmNoX3JlZ21hcFtyZWddOworIH0KKyAKKysvKiBSZWdpc3RlciBuYW1lcyBmb3Ig Ynl0ZSBwc2V1ZG8tcmVnaXN0ZXJzLiAgKi8KKysKKytzdGF0aWMgY29uc3QgY2hhciAqYW1kNjRf Ynl0ZV9uYW1lc1tdID0KKyt7CisrICAiYWwiLCAiYmwiLCAiY2wiLCAiZGwiLCAic2lsIiwgImRp bCIsICJicGwiLCAic3BsIiwKKysgICJyOGwiLCAicjlsIiwgInIxMGwiLCAicjExbCIsICJyMTJs IiwgInIxM2wiLCAicjE0bCIsICJyMTVsIgorK307CisrCisrLyogUmVnaXN0ZXIgbmFtZXMgZm9y IHdvcmQgcHNldWRvLXJlZ2lzdGVycy4gICovCisrCisrc3RhdGljIGNvbnN0IGNoYXIgKmFtZDY0 X3dvcmRfbmFtZXNbXSA9CisreworKyAgImF4IiwgImJ4IiwgImN4IiwgImR4IiwgInNpIiwgImRp IiwgImJwIiwgInNwIiwgCisrICAicjh3IiwgInI5dyIsICJyMTB3IiwgInIxMXciLCAicjEydyIs ICJyMTN3IiwgInIxNHciLCAicjE1dyIKKyt9OworKworKy8qIFJlZ2lzdGVyIG5hbWVzIGZvciBk d29yZCBwc2V1ZG8tcmVnaXN0ZXJzLiAgKi8KKysKKytzdGF0aWMgY29uc3QgY2hhciAqYW1kNjRf ZHdvcmRfbmFtZXNbXSA9CisreworKyAgImVheCIsICJlYngiLCAiZWN4IiwgImVkeCIsICJlc2ki LCAiZWRpIiwgImVicCIsICJlc3AiLCAKKysgICJyOGQiLCAicjlkIiwgInIxMGQiLCAicjExZCIs ICJyMTJkIiwgInIxM2QiLCAicjE0ZCIsICJyMTVkIgorK307CisrCisrLyogUmV0dXJuIHRoZSBu YW1lIG9mIHJlZ2lzdGVyIFJFR05VTS4gICovCisrCisrc3RhdGljIGNvbnN0IGNoYXIgKgorK2Ft ZDY0X3BzZXVkb19yZWdpc3Rlcl9uYW1lIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJl Z251bSkKKyt7CisrICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChn ZGJhcmNoKTsKKysgIGlmIChpMzg2X2J5dGVfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisr ICAgIHJldHVybiBhbWQ2NF9ieXRlX25hbWVzW3JlZ251bSAtIHRkZXAtPmFsX3JlZ251bV07Cisr ICBlbHNlIGlmIChpMzg2X3dvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrICAgIHJl dHVybiBhbWQ2NF93b3JkX25hbWVzW3JlZ251bSAtIHRkZXAtPmF4X3JlZ251bV07CisrICBlbHNl IGlmIChpMzg2X2R3b3JkX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQorKyAgICByZXR1cm4g YW1kNjRfZHdvcmRfbmFtZXNbcmVnbnVtIC0gdGRlcC0+ZWF4X3JlZ251bV07CisrICBlbHNlCisr ICAgIHJldHVybiBpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCByZWdudW0pOwor K30KKysKKytzdGF0aWMgdm9pZAorK2FtZDY0X3BzZXVkb19yZWdpc3Rlcl9yZWFkIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCwKKysJCQkgICAgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKysJ CQkgICAgaW50IHJlZ251bSwgZ2RiX2J5dGUgKmJ1ZikKKyt7CisrICBnZGJfYnl0ZSByYXdfYnVm W01BWF9SRUdJU1RFUl9TSVpFXTsKKysgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJh cmNoX3RkZXAgKGdkYmFyY2gpOworKworKyAgaWYgKGkzODZfYnl0ZV9yZWdudW1fcCAoZ2RiYXJj aCwgcmVnbnVtKSkKKysgICAgeworKyAgICAgIGludCBncG51bSA9IHJlZ251bSAtIHRkZXAtPmFs X3JlZ251bTsKKysKKysgICAgICAvKiBFeHRyYWN0IChhbHdheXMgbGl0dGxlIGVuZGlhbikuICAq LworKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgZ3BudW0sIHJhd19idWYpOwor KyAgICAgIG1lbWNweSAoYnVmLCByYXdfYnVmLCAxKTsKKysgICAgfQorKyAgZWxzZSBpZiAoaTM4 Nl9kd29yZF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKysgICAgeworKyAgICAgIGludCBn cG51bSA9IHJlZ251bSAtIHRkZXAtPmVheF9yZWdudW07CisrICAgICAgLyogRXh0cmFjdCAoYWx3 YXlzIGxpdHRsZSBlbmRpYW4pLiAgKi8KKysgICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2Fj aGUsIGdwbnVtLCByYXdfYnVmKTsKKysgICAgICBtZW1jcHkgKGJ1ZiwgcmF3X2J1ZiwgNCk7Cisr ICAgIH0KKysgIGVsc2UKKysgICAgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCAoZ2RiYXJjaCwg cmVnY2FjaGUsIHJlZ251bSwgYnVmKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKythbWQ2NF9wc2V1 ZG9fcmVnaXN0ZXJfd3JpdGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorKwkJCSAgICAgc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKysJCQkgICAgIGludCByZWdudW0sIGNvbnN0IGdkYl9i eXRlICpidWYpCisreworKyAgZ2RiX2J5dGUgcmF3X2J1ZltNQVhfUkVHSVNURVJfU0laRV07Cisr ICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKysK KysgIGlmIChpMzg2X2J5dGVfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrICAgIHsKKysg ICAgICBpbnQgZ3BudW0gPSByZWdudW0gLSB0ZGVwLT5hbF9yZWdudW07CisrCisrICAgICAgLyog UmVhZCAuLi4gICovCisrICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCBncG51bSwg cmF3X2J1Zik7CisrICAgICAgLyogLi4uIE1vZGlmeSAuLi4gKGFsd2F5cyBsaXR0bGUgZW5kaWFu KS4gICovCisrICAgICAgbWVtY3B5IChyYXdfYnVmLCBidWYsIDEpOworKyAgICAgIC8qIC4uLiBX cml0ZS4gICovCisrICAgICAgcmVnY2FjaGVfcmF3X3dyaXRlIChyZWdjYWNoZSwgZ3BudW0sIHJh d19idWYpOworKyAgICB9CisrICBlbHNlIGlmIChpMzg2X2R3b3JkX3JlZ251bV9wIChnZGJhcmNo LCByZWdudW0pKQorKyAgICB7CisrICAgICAgaW50IGdwbnVtID0gcmVnbnVtIC0gdGRlcC0+ZWF4 X3JlZ251bTsKKysKKysgICAgICAvKiBSZWFkIC4uLiAgKi8KKysgICAgICByZWdjYWNoZV9yYXdf cmVhZCAocmVnY2FjaGUsIGdwbnVtLCByYXdfYnVmKTsKKysgICAgICAvKiAuLi4gTW9kaWZ5IC4u LiAoYWx3YXlzIGxpdHRsZSBlbmRpYW4pLiAgKi8KKysgICAgICBtZW1jcHkgKHJhd19idWYsIGJ1 ZiwgNCk7CisrICAgICAgLyogLi4uIFdyaXRlLiAgKi8KKysgICAgICByZWdjYWNoZV9yYXdfd3Jp dGUgKHJlZ2NhY2hlLCBncG51bSwgcmF3X2J1Zik7CisrICAgIH0KKysgIGVsc2UKKysgICAgaTM4 Nl9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUgKGdkYmFyY2gsIHJlZ2NhY2hlLCByZWdudW0sIGJ1Zik7 CisrfQorKworIAwKKyAKKyAvKiBSZXR1cm4gdGhlIHVuaW9uIGNsYXNzIG9mIENMQVNTMSBhbmQg Q0xBU1MyLiAgU2VlIHRoZSBwc0FCSSBmb3IKK0BAIC0yMTMyLDYgKzIyMzMsMTkgQEAgYW1kNjRf aW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbworICAgdGRlcC0+bnVtX2NvcmVfcmVn cyA9IEFNRDY0X05VTV9HUkVHUyArIEkzODdfTlVNX1JFR1M7CisgICB0ZGVwLT5yZWdpc3Rlcl9u YW1lcyA9IGFtZDY0X3JlZ2lzdGVyX25hbWVzOworIAorKyAgdGRlcC0+bnVtX2J5dGVfcmVncyA9 IDE2OworKyAgdGRlcC0+bnVtX3dvcmRfcmVncyA9IDE2OworKyAgdGRlcC0+bnVtX2R3b3JkX3Jl Z3MgPSAxNjsKKysgIC8qIEF2b2lkIHdpcmluZyBpbiB0aGUgTU1YIHJlZ2lzdGVycyBmb3Igbm93 LiAgKi8KKysgIHRkZXAtPm51bV9tbXhfcmVncyA9IDA7CisrCisrICBzZXRfZ2RiYXJjaF9wc2V1 ZG9fcmVnaXN0ZXJfcmVhZCAoZ2RiYXJjaCwKKysJCQkJICAgIGFtZDY0X3BzZXVkb19yZWdpc3Rl cl9yZWFkKTsKKysgIHNldF9nZGJhcmNoX3BzZXVkb19yZWdpc3Rlcl93cml0ZSAoZ2RiYXJjaCwK KysJCQkJICAgICBhbWQ2NF9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUpOworKworKyAgc2V0X3RkZXNj X3BzZXVkb19yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCBhbWQ2NF9wc2V1ZG9fcmVnaXN0ZXJfbmFt ZSk7CisrCisgICAvKiBBTUQ2NCBoYXMgYW4gRlBVIGFuZCAxNiBTU0UgcmVnaXN0ZXJzLiAgKi8K KyAgIHRkZXAtPnN0MF9yZWdudW0gPSBBTUQ2NF9TVDBfUkVHTlVNOworICAgdGRlcC0+bnVtX3ht bV9yZWdzID0gMTY7CitAQCAtMjE4MywxMCArMjI5Nyw2IEBAIGFtZDY0X2luaXRfYWJpIChzdHJ1 Y3QgZ2RiYXJjaF9pbmZvIGluZm8KKyAKKyAgIHNldF9nZGJhcmNoX3NraXBfcHJvbG9ndWUgKGdk YmFyY2gsIGFtZDY0X3NraXBfcHJvbG9ndWUpOworIAorLSAgLyogQXZvaWQgd2lyaW5nIGluIHRo ZSBNTVggcmVnaXN0ZXJzIGZvciBub3cuICAqLworLSAgc2V0X2dkYmFyY2hfbnVtX3BzZXVkb19y ZWdzIChnZGJhcmNoLCAwKTsKKy0gIHRkZXAtPm1tMF9yZWdudW0gPSAtMTsKKy0KKyAgIHRkZXAt PnJlY29yZF9yZWdtYXAgPSBhbWQ2NF9yZWNvcmRfcmVnbWFwOworIAorICAgc2V0X2dkYmFyY2hf ZHVtbXlfaWQgKGdkYmFyY2gsIGFtZDY0X2R1bW15X2lkKTsKKy0tLSBnZGItNy4xLXAyL2dkYi9p Mzg2LXRkZXAuYwkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03 LjEvZ2RiL2kzODYtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MDY6NTIuMDAwMDAwMDAwICswMjAwCitA QCAtODEsMTcgKzgxLDcyIEBAIHN0YXRpYyBjb25zdCBjaGFyICppMzg2X21teF9uYW1lc1tdID0K KyAgICJtbTQiLCAibW01IiwgIm1tNiIsICJtbTciCisgfTsKKyAKKy1zdGF0aWMgY29uc3QgaW50 IGkzODZfbnVtX21teF9yZWdzID0gQVJSQVlfU0laRSAoaTM4Nl9tbXhfbmFtZXMpOworKy8qIFJl Z2lzdGVyIG5hbWVzIGZvciBieXRlIHBzZXVkby1yZWdpc3RlcnMuICAqLworKworK3N0YXRpYyBj b25zdCBjaGFyICppMzg2X2J5dGVfbmFtZXNbXSA9CisreworKyAgImFsIiwgImNsIiwgImRsIiwg ImJsIiwgCisrICAiYWgiLCAiY2giLCAiZGgiLCAiYmgiCisrfTsKKysKKysvKiBSZWdpc3RlciBu YW1lcyBmb3Igd29yZCBwc2V1ZG8tcmVnaXN0ZXJzLiAgKi8KKysKKytzdGF0aWMgY29uc3QgY2hh ciAqaTM4Nl93b3JkX25hbWVzW10gPQorK3sKKysgICJheCIsICJjeCIsICJkeCIsICJieCIsCisr ICAic3AiLCAiYnAiLCAic2kiLCAiZGkiCisrfTsKKysKKysvKiBNTVggcmVnaXN0ZXI/ICAqLwor IAorIHN0YXRpYyBpbnQKKyBpMzg2X21teF9yZWdudW1fcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIGludCByZWdudW0pCisgeworLSAgaW50IG1tMF9yZWdudW0gPSBnZGJhcmNoX3RkZXAgKGdk YmFyY2gpLT5tbTBfcmVnbnVtOworKyAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFy Y2hfdGRlcCAoZ2RiYXJjaCk7CisrICBpbnQgbW0wX3JlZ251bSA9IHRkZXAtPm1tMF9yZWdudW07 CisgCisgICBpZiAobW0wX3JlZ251bSA8IDApCisgICAgIHJldHVybiAwOworIAorLSAgcmV0dXJu IChyZWdudW0gPj0gbW0wX3JlZ251bSAmJiByZWdudW0gPCBtbTBfcmVnbnVtICsgaTM4Nl9udW1f bW14X3JlZ3MpOworKyAgcmVnbnVtIC09IG1tMF9yZWdudW07CisrICByZXR1cm4gcmVnbnVtID49 IDAgJiYgcmVnbnVtIDwgdGRlcC0+bnVtX21teF9yZWdzOworK30KKysKKysvKiBCeXRlIHJlZ2lz dGVyPyAgKi8KKysKKytpbnQKKytpMzg2X2J5dGVfcmVnbnVtX3AgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLCBpbnQgcmVnbnVtKQorK3sKKysgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBn ZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKworKyAgcmVnbnVtIC09IHRkZXAtPmFsX3JlZ251bTsK KysgIHJldHVybiByZWdudW0gPj0gMCAmJiByZWdudW0gPCB0ZGVwLT5udW1fYnl0ZV9yZWdzOwor K30KKysKKysvKiBXb3JkIHJlZ2lzdGVyPyAgKi8KKysKKytpbnQKKytpMzg2X3dvcmRfcmVnbnVt X3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQorK3sKKysgIHN0cnVjdCBn ZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKworKyAgcmVnbnVt IC09IHRkZXAtPmF4X3JlZ251bTsKKysgIHJldHVybiByZWdudW0gPj0gMCAmJiByZWdudW0gPCB0 ZGVwLT5udW1fd29yZF9yZWdzOworK30KKysKKysvKiBEd29yZCByZWdpc3Rlcj8gICovCisrCisr aW50CisraTM4Nl9kd29yZF9yZWdudW1fcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCBy ZWdudW0pCisreworKyAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAo Z2RiYXJjaCk7CisrICBpbnQgZWF4X3JlZ251bSA9IHRkZXAtPmVheF9yZWdudW07CisrCisrICBp ZiAoZWF4X3JlZ251bSA8IDApCisrICAgIHJldHVybiAwOworKworKyAgcmVnbnVtIC09IGVheF9y ZWdudW07CisrICByZXR1cm4gcmVnbnVtID49IDAgJiYgcmVnbnVtIDwgdGRlcC0+bnVtX2R3b3Jk X3JlZ3M7CisgfQorIAorIC8qIFNTRSByZWdpc3Rlcj8gICovCitAQCAtMTQ3LDExICsyMDIsMTgg QEAgaTM4Nl9mcGNfcmVnbnVtX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcgorIAorIC8qIFJldHVy biB0aGUgbmFtZSBvZiByZWdpc3RlciBSRUdOVU0uICAqLworIAorLXN0YXRpYyBjb25zdCBjaGFy ICoKKytjb25zdCBjaGFyICoKKyBpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSkKKyB7CistICBnZGJfYXNzZXJ0IChpMzg2X21teF9y ZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSk7CistICByZXR1cm4gaTM4Nl9tbXhfbmFtZXNbcmVn bnVtIC0gSTM4N19NTTBfUkVHTlVNIChnZGJhcmNoX3RkZXAgKGdkYmFyY2gpKV07CisrICBzdHJ1 Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKysgIGlmIChp Mzg2X21teF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKysgICAgcmV0dXJuIGkzODZfbW14 X25hbWVzW3JlZ251bSAtIEkzODdfTU0wX1JFR05VTSAodGRlcCldOworKyAgZWxzZSBpZiAoaTM4 Nl9ieXRlX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQorKyAgICByZXR1cm4gaTM4Nl9ieXRl X25hbWVzW3JlZ251bSAtIHRkZXAtPmFsX3JlZ251bV07CisrICBlbHNlIGlmIChpMzg2X3dvcmRf cmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrICAgIHJldHVybiBpMzg2X3dvcmRfbmFtZXNb cmVnbnVtIC0gdGRlcC0+YXhfcmVnbnVtXTsKKysKKysgIGludGVybmFsX2Vycm9yIChfX0ZJTEVf XywgX19MSU5FX18sIF8oImludmFsaWQgcmVnbnVtIikpOworIH0KKyAKKyAvKiBDb252ZXJ0IGEg ZGJ4IHJlZ2lzdGVyIG51bWJlciBSRUcgdG8gdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyCitAQCAt MjE2OSw4ICsyMjMxLDIwIEBAIGkzODZfbW14X3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo KQorIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCisgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfdHlwZSAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0pCisgeworLSAgZ2RiX2Fzc2VydCAoaTM4 Nl9tbXhfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpOworLSAgcmV0dXJuIGkzODZfbW14X3R5 cGUgKGdkYmFyY2gpOworKyAgaWYgKGkzODZfbW14X3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0p KQorKyAgICByZXR1cm4gaTM4Nl9tbXhfdHlwZSAoZ2RiYXJjaCk7CisrICBlbHNlCisrICAgIHsK KysgICAgICBjb25zdCBzdHJ1Y3QgYnVpbHRpbl90eXBlICpidCA9IGJ1aWx0aW5fdHlwZSAoZ2Ri YXJjaCk7CisrICAgICAgaWYgKGkzODZfYnl0ZV9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkK KysJcmV0dXJuIGJ0LT5idWlsdGluX2ludDg7CisrICAgICAgZWxzZSBpZiAoaTM4Nl93b3JkX3Jl Z251bV9wIChnZGJhcmNoLCByZWdudW0pKQorKwlyZXR1cm4gYnQtPmJ1aWx0aW5faW50MTY7Cisr ICAgICAgZWxzZSBpZiAoaTM4Nl9kd29yZF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKysJ cmV0dXJuIGJ0LT5idWlsdGluX2ludDMyOworKyAgICB9CisrCisrICBpbnRlcm5hbF9lcnJvciAo X19GSUxFX18sIF9fTElORV9fLCBfKCJpbnZhbGlkIHJlZ251bSIpKTsKKyB9CisgCisgLyogTWFw IGEgY29va2VkIHJlZ2lzdGVyIG9udG8gYSByYXcgcmVnaXN0ZXIgb3IgbWVtb3J5LiAgRm9yIHRo ZSBpMzg2LAorQEAgLTIxOTIsNDEgKzIyNjYsMTA0IEBAIGkzODZfbW14X3JlZ251bV90b19mcF9y ZWdudW0gKHN0cnVjdCByZWcKKyAgIHJldHVybiAoSTM4N19TVDBfUkVHTlVNICh0ZGVwKSArIGZw cmVnKTsKKyB9CisgCistc3RhdGljIHZvaWQKKyt2b2lkCisgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJf cmVhZCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUs CisgCQkJICAgaW50IHJlZ251bSwgZ2RiX2J5dGUgKmJ1ZikKKyB7CisrICBnZGJfYnl0ZSByYXdf YnVmW01BWF9SRUdJU1RFUl9TSVpFXTsKKysKKyAgIGlmIChpMzg2X21teF9yZWdudW1fcCAoZ2Ri YXJjaCwgcmVnbnVtKSkKKyAgICAgeworLSAgICAgIGdkYl9ieXRlIG1teF9idWZbTUFYX1JFR0lT VEVSX1NJWkVdOworICAgICAgIGludCBmcG51bSA9IGkzODZfbW14X3JlZ251bV90b19mcF9yZWdu dW0gKHJlZ2NhY2hlLCByZWdudW0pOworIAorICAgICAgIC8qIEV4dHJhY3QgKGFsd2F5cyBsaXR0 bGUgZW5kaWFuKS4gICovCistICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCBmcG51 bSwgbW14X2J1Zik7CistICAgICAgbWVtY3B5IChidWYsIG1teF9idWYsIHJlZ2lzdGVyX3NpemUg KGdkYmFyY2gsIHJlZ251bSkpOworKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwg ZnBudW0sIHJhd19idWYpOworKyAgICAgIG1lbWNweSAoYnVmLCByYXdfYnVmLCByZWdpc3Rlcl9z aXplIChnZGJhcmNoLCByZWdudW0pKTsKKyAgICAgfQorICAgZWxzZQorLSAgICByZWdjYWNoZV9y YXdfcmVhZCAocmVnY2FjaGUsIHJlZ251bSwgYnVmKTsKKysgICAgeworKyAgICAgIHN0cnVjdCBn ZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKworKyAgICAgIGlm IChpMzg2X3dvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrCXsKKysJICBpbnQgZ3Bu dW0gPSByZWdudW0gLSB0ZGVwLT5heF9yZWdudW07CisrCisrCSAgLyogRXh0cmFjdCAoYWx3YXlz IGxpdHRsZSBlbmRpYW4pLiAgKi8KKysJICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIGdw bnVtLCByYXdfYnVmKTsKKysJICBtZW1jcHkgKGJ1ZiwgcmF3X2J1ZiwgMik7CisrCX0KKysgICAg ICBlbHNlIGlmIChpMzg2X2J5dGVfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrCXsKKysJ ICAvKiBDaGVjayBieXRlIHBzZXVkbyByZWdpc3RlcnMgbGFzdCBzaW5jZSB0aGlzIGZ1bmN0aW9u IHdpbGwKKysJICAgICBiZSBjYWxsZWQgZnJvbSBhbWQ2NF9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCwg d2hpY2ggaGFuZGxlcworKwkgICAgIGJ5dGUgcHNldWRvIHJlZ2lzdGVycyBkaWZmZXJlbnRseS4g ICovCisrCSAgaW50IGdwbnVtID0gcmVnbnVtIC0gdGRlcC0+YWxfcmVnbnVtOworKworKwkgIC8q IEV4dHJhY3QgKGFsd2F5cyBsaXR0bGUgZW5kaWFuKS4gIFdlIHJlYWQgYm90aCBsb3dlciBhbmQK KysJICAgICB1cHBlciByZWdpc3RlcnMuICAqLworKwkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdj YWNoZSwgZ3BudW0gJSA0LCByYXdfYnVmKTsKKysJICBpZiAoZ3BudW0gPj0gNCkKKysJICAgIG1l bWNweSAoYnVmLCByYXdfYnVmICsgMSwgMSk7CisrCSAgZWxzZQorKwkgICAgbWVtY3B5IChidWYs IHJhd19idWYsIDEpOworKwl9CisrICAgICAgZWxzZQorKwlpbnRlcm5hbF9lcnJvciAoX19GSUxF X18sIF9fTElORV9fLCBfKCJpbnZhbGlkIHJlZ251bSIpKTsKKysgICAgfQorIH0KKyAKKy1zdGF0 aWMgdm9pZAorK3ZvaWQKKyBpMzg2X3BzZXVkb19yZWdpc3Rlcl93cml0ZSAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCisgCQkJICAgIGludCByZWdu dW0sIGNvbnN0IGdkYl9ieXRlICpidWYpCisgeworKyAgZ2RiX2J5dGUgcmF3X2J1ZltNQVhfUkVH SVNURVJfU0laRV07CisrCisgICBpZiAoaTM4Nl9tbXhfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251 bSkpCisgICAgIHsKKy0gICAgICBnZGJfYnl0ZSBtbXhfYnVmW01BWF9SRUdJU1RFUl9TSVpFXTsK KyAgICAgICBpbnQgZnBudW0gPSBpMzg2X21teF9yZWdudW1fdG9fZnBfcmVnbnVtIChyZWdjYWNo ZSwgcmVnbnVtKTsKKyAKKyAgICAgICAvKiBSZWFkIC4uLiAgKi8KKy0gICAgICByZWdjYWNoZV9y YXdfcmVhZCAocmVnY2FjaGUsIGZwbnVtLCBtbXhfYnVmKTsKKysgICAgICByZWdjYWNoZV9yYXdf cmVhZCAocmVnY2FjaGUsIGZwbnVtLCByYXdfYnVmKTsKKyAgICAgICAvKiAuLi4gTW9kaWZ5IC4u LiAoYWx3YXlzIGxpdHRsZSBlbmRpYW4pLiAgKi8KKy0gICAgICBtZW1jcHkgKG1teF9idWYsIGJ1 ZiwgcmVnaXN0ZXJfc2l6ZSAoZ2RiYXJjaCwgcmVnbnVtKSk7CisrICAgICAgbWVtY3B5IChyYXdf YnVmLCBidWYsIHJlZ2lzdGVyX3NpemUgKGdkYmFyY2gsIHJlZ251bSkpOworICAgICAgIC8qIC4u LiBXcml0ZS4gICovCistICAgICAgcmVnY2FjaGVfcmF3X3dyaXRlIChyZWdjYWNoZSwgZnBudW0s IG1teF9idWYpOworKyAgICAgIHJlZ2NhY2hlX3Jhd193cml0ZSAocmVnY2FjaGUsIGZwbnVtLCBy YXdfYnVmKTsKKyAgICAgfQorICAgZWxzZQorLSAgICByZWdjYWNoZV9yYXdfd3JpdGUgKHJlZ2Nh Y2hlLCByZWdudW0sIGJ1Zik7CisrICAgIHsKKysgICAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0 ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKysKKysgICAgICBpZiAoaTM4Nl93b3JkX3Jl Z251bV9wIChnZGJhcmNoLCByZWdudW0pKQorKwl7CisrCSAgaW50IGdwbnVtID0gcmVnbnVtIC0g dGRlcC0+YXhfcmVnbnVtOworKworKwkgIC8qIFJlYWQgLi4uICAqLworKwkgIHJlZ2NhY2hlX3Jh d19yZWFkIChyZWdjYWNoZSwgZ3BudW0sIHJhd19idWYpOworKwkgIC8qIC4uLiBNb2RpZnkgLi4u IChhbHdheXMgbGl0dGxlIGVuZGlhbikuICAqLworKwkgIG1lbWNweSAocmF3X2J1ZiwgYnVmLCAy KTsKKysJICAvKiAuLi4gV3JpdGUuICAqLworKwkgIHJlZ2NhY2hlX3Jhd193cml0ZSAocmVnY2Fj aGUsIGdwbnVtLCByYXdfYnVmKTsKKysJfQorKyAgICAgIGVsc2UgaWYgKGkzODZfYnl0ZV9yZWdu dW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKysJeworKwkgIC8qIENoZWNrIGJ5dGUgcHNldWRvIHJl Z2lzdGVycyBsYXN0IHNpbmNlIHRoaXMgZnVuY3Rpb24gd2lsbAorKwkgICAgIGJlIGNhbGxlZCBm cm9tIGFtZDY0X3BzZXVkb19yZWdpc3Rlcl9yZWFkLCB3aGljaCBoYW5kbGVzCisrCSAgICAgYnl0 ZSBwc2V1ZG8gcmVnaXN0ZXJzIGRpZmZlcmVudGx5LiAgKi8KKysJICBpbnQgZ3BudW0gPSByZWdu dW0gLSB0ZGVwLT5hbF9yZWdudW07CisrCisrCSAgLyogUmVhZCAuLi4gIFdlIHJlYWQgYm90aCBs b3dlciBhbmQgdXBwZXIgcmVnaXN0ZXJzLiAgKi8KKysJICByZWdjYWNoZV9yYXdfcmVhZCAocmVn Y2FjaGUsIGdwbnVtICUgNCwgcmF3X2J1Zik7CisrCSAgLyogLi4uIE1vZGlmeSAuLi4gKGFsd2F5 cyBsaXR0bGUgZW5kaWFuKS4gICovCisrCSAgaWYgKGdwbnVtID49IDQpCisrCSAgICBtZW1jcHkg KHJhd19idWYgKyAxLCBidWYsIDEpOworKwkgIGVsc2UKKysJICAgIG1lbWNweSAocmF3X2J1Ziwg YnVmLCAxKTsKKysJICAvKiAuLi4gV3JpdGUuICAqLworKwkgIHJlZ2NhY2hlX3Jhd193cml0ZSAo cmVnY2FjaGUsIGdwbnVtICUgNCwgcmF3X2J1Zik7CisrCX0KKysgICAgICBlbHNlCisrCWludGVy bmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sIF8oImludmFsaWQgcmVnbnVtIikpOworKyAg ICB9CisgfQorIAwKKyAKK0BAIC0yNjYzLDIyICsyODAwLDQ2IEBAIGludAorIGkzODZfcmVnaXN0 ZXJfcmVnZ3JvdXBfcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0sCisgCQkJ ICBzdHJ1Y3QgcmVnZ3JvdXAgKmdyb3VwKQorIHsKKy0gIGludCBzc2VfcmVnbnVtX3AgPSAoaTM4 Nl9zc2VfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkKKy0JCSAgICAgIHx8IGkzODZfbXhjc3Jf cmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpOworLSAgaW50IGZwX3JlZ251bV9wID0gKGkzODZf ZnBfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkKKy0JCSAgICAgfHwgaTM4Nl9mcGNfcmVnbnVt X3AgKGdkYmFyY2gsIHJlZ251bSkpOworLSAgaW50IG1teF9yZWdudW1fcCA9IChpMzg2X21teF9y ZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSk7CisrICBpbnQgc3NlX3JlZ251bV9wLCBmcF9yZWdu dW1fcCwgbW14X3JlZ251bV9wLCBieXRlX3JlZ251bV9wLAorKyAgICAgIHdvcmRfcmVnbnVtX3As IGR3b3JkX3JlZ251bV9wOworKworKyAgLyogRG9uJ3QgaW5jbHVkZSBwc2V1ZG8gcmVnaXN0ZXJz LCBleGNlcHQgZm9yIE1NWCwgaW4gYW55IHJlZ2lzdGVyCisrICAgICBncm91cHMuICAqLworKyAg Ynl0ZV9yZWdudW1fcCA9IGkzODZfYnl0ZV9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKTsKKysg IGlmIChieXRlX3JlZ251bV9wKQorKyAgICByZXR1cm4gMDsKKyAKKysgIHdvcmRfcmVnbnVtX3Ag PSBpMzg2X3dvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSk7CisrICBpZiAod29yZF9yZWdu dW1fcCkKKysgICAgcmV0dXJuIDA7CisrCisrICBkd29yZF9yZWdudW1fcCA9IGkzODZfZHdvcmRf cmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSk7CisrICBpZiAoZHdvcmRfcmVnbnVtX3ApCisrICAg IHJldHVybiAwOworKworKyAgbW14X3JlZ251bV9wID0gaTM4Nl9tbXhfcmVnbnVtX3AgKGdkYmFy Y2gsIHJlZ251bSk7CisgICBpZiAoZ3JvdXAgPT0gaTM4Nl9tbXhfcmVnZ3JvdXApCisgICAgIHJl dHVybiBtbXhfcmVnbnVtX3A7CisrCisrICBzc2VfcmVnbnVtX3AgPSAoaTM4Nl9zc2VfcmVnbnVt X3AgKGdkYmFyY2gsIHJlZ251bSkKKysJCSAgfHwgaTM4Nl9teGNzcl9yZWdudW1fcCAoZ2RiYXJj aCwgcmVnbnVtKSk7CisgICBpZiAoZ3JvdXAgPT0gaTM4Nl9zc2VfcmVnZ3JvdXApCisgICAgIHJl dHVybiBzc2VfcmVnbnVtX3A7CisgICBpZiAoZ3JvdXAgPT0gdmVjdG9yX3JlZ2dyb3VwKQorLSAg ICByZXR1cm4gKG1teF9yZWdudW1fcCB8fCBzc2VfcmVnbnVtX3ApOworKyAgICByZXR1cm4gbW14 X3JlZ251bV9wIHx8IHNzZV9yZWdudW1fcDsKKysKKysgIGZwX3JlZ251bV9wID0gKGkzODZfZnBf cmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkKKysJCSB8fCBpMzg2X2ZwY19yZWdudW1fcCAoZ2Ri YXJjaCwgcmVnbnVtKSk7CisgICBpZiAoZ3JvdXAgPT0gZmxvYXRfcmVnZ3JvdXApCisgICAgIHJl dHVybiBmcF9yZWdudW1fcDsKKysKKyAgIGlmIChncm91cCA9PSBnZW5lcmFsX3JlZ2dyb3VwKQor LSAgICByZXR1cm4gKCFmcF9yZWdudW1fcCAmJiAhbW14X3JlZ251bV9wICYmICFzc2VfcmVnbnVt X3ApOworKyAgICByZXR1cm4gKCFmcF9yZWdudW1fcAorKwkgICAgJiYgIW1teF9yZWdudW1fcAor KwkgICAgJiYgIXNzZV9yZWdudW1fcAorKwkgICAgJiYgIWJ5dGVfcmVnbnVtX3AKKysJICAgICYm ICF3b3JkX3JlZ251bV9wCisrCSAgICAmJiAhZHdvcmRfcmVnbnVtX3ApOworIAorICAgcmV0dXJu IGRlZmF1bHRfcmVnaXN0ZXJfcmVnZ3JvdXBfcCAoZ2RiYXJjaCwgcmVnbnVtLCBncm91cCk7Cisg fQorQEAgLTU1MjcsNiArNTY4OCw3IEBAIGkzODZfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJj aF9pbmZvIGkKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOworICAgc3RydWN0IHRkZXNjX2Fy Y2hfZGF0YSAqdGRlc2NfZGF0YTsKKyAgIGNvbnN0IHN0cnVjdCB0YXJnZXRfZGVzYyAqdGRlc2M7 CisrICBpbnQgbW0wX3JlZ251bTsKKyAKKyAgIC8qIElmIHRoZXJlIGlzIGFscmVhZHkgYSBjYW5k aWRhdGUsIHVzZSBpdC4gICovCisgICBhcmNoZXMgPSBnZGJhcmNoX2xpc3RfbG9va3VwX2J5X2lu Zm8gKGFyY2hlcywgJmluZm8pOworQEAgLTU1NjMsMTEgKzU3MjUsNiBAQCBpMzg2X2dkYmFyY2hf aW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpCisgCisgICB0ZGVwLT5zdDBfcmVnbnVtID0gSTM4 Nl9TVDBfUkVHTlVNOworIAorLSAgLyogVGhlIE1NWCByZWdpc3RlcnMgYXJlIGltcGxlbWVudGVk IGFzIHBzZXVkby1yZWdpc3RlcnMuICBQdXQgb2ZmCistICAgICBjYWxjdWxhdGluZyB0aGUgcmVn aXN0ZXIgbnVtYmVyIGZvciAlbW0wIHVudGlsIHdlIGtub3cgdGhlIG51bWJlcgorLSAgICAgb2Yg cmF3IHJlZ2lzdGVycy4gICovCistICB0ZGVwLT5tbTBfcmVnbnVtID0gMDsKKy0KKyAgIC8qIEkz ODZfTlVNX1hSRUdTIGluY2x1ZGVzICVteGNzciwgc28gc3Vic3RyYWN0IG9uZS4gICovCisgICB0 ZGVwLT5udW1feG1tX3JlZ3MgPSBJMzg2X05VTV9YUkVHUyAtIDE7CisgCitAQCAtNTY5Myw4ICs1 ODUwLDcgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaQorIAorICAg ZnJhbWVfYmFzZV9zZXRfZGVmYXVsdCAoZ2RiYXJjaCwgJmkzODZfZnJhbWVfYmFzZSk7CisgCist ICAvKiBXaXJlIGluIHRoZSBNTVggcmVnaXN0ZXJzLiAgKi8KKy0gIHNldF9nZGJhcmNoX251bV9w c2V1ZG9fcmVncyAoZ2RiYXJjaCwgaTM4Nl9udW1fbW14X3JlZ3MpOworKyAgLyogUHNldWRvIHJl Z2lzdGVycyBtYXkgYmUgY2hhbmdlZCBieSBhbWQ2NF9pbml0X2FiaS4gICovCisgICBzZXRfZ2Ri YXJjaF9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCAoZ2RiYXJjaCwgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJf cmVhZCk7CisgICBzZXRfZ2RiYXJjaF9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUgKGdkYmFyY2gsIGkz ODZfcHNldWRvX3JlZ2lzdGVyX3dyaXRlKTsKKyAKK0BAIC01NzE0LDEyICs1ODcwLDI0IEBAIGkz ODZfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGkKKyAgIHRkZXAtPm51bV9jb3Jl X3JlZ3MgPSBJMzg2X05VTV9HUkVHUyArIEkzODdfTlVNX1JFR1M7CisgICB0ZGVwLT5yZWdpc3Rl cl9uYW1lcyA9IGkzODZfcmVnaXN0ZXJfbmFtZXM7CisgCisrICB0ZGVwLT5udW1fYnl0ZV9yZWdz ID0gODsKKysgIHRkZXAtPm51bV93b3JkX3JlZ3MgPSA4OworKyAgdGRlcC0+bnVtX2R3b3JkX3Jl Z3MgPSAwOworKyAgdGRlcC0+bnVtX21teF9yZWdzID0gODsKKysKKyAgIHRkZXNjX2RhdGEgPSB0 ZGVzY19kYXRhX2FsbG9jICgpOworIAorICAgLyogSG9vayBpbiBBQkktc3BlY2lmaWMgb3ZlcnJp ZGVzLCBpZiB0aGV5IGhhdmUgYmVlbiByZWdpc3RlcmVkLiAgKi8KKyAgIGluZm8udGRlcF9pbmZv ID0gKHZvaWQgKikgdGRlc2NfZGF0YTsKKyAgIGdkYmFyY2hfaW5pdF9vc2FiaSAoaW5mbywgZ2Ri YXJjaCk7CisgCisrICAvKiBXaXJlIGluIHBzZXVkbyByZWdpc3RlcnMuICBOdW1iZXIgb2YgcHNl dWRvIHJlZ2lzdGVycyBtYXkgYmUKKysgICAgIGNoYW5nZWQuICAqLworKyAgc2V0X2dkYmFyY2hf bnVtX3BzZXVkb19yZWdzIChnZGJhcmNoLCAodGRlcC0+bnVtX2J5dGVfcmVncworKwkJCQkJICsg dGRlcC0+bnVtX3dvcmRfcmVncworKwkJCQkJICsgdGRlcC0+bnVtX2R3b3JkX3JlZ3MKKysJCQkJ CSArIHRkZXAtPm51bV9tbXhfcmVncykpOworKworICAgLyogVGFyZ2V0IGRlc2NyaXB0aW9uIG1h eSBiZSBjaGFuZ2VkLiAgKi8KKyAgIHRkZXNjID0gdGRlcC0+dGRlc2M7CisgCitAQCAtNTczNiw2 ICs1OTA0LDI4IEBAIGkzODZfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGkKKyAg IC8qIE92ZXJyaWRlIGdkYmFyY2hfcmVnaXN0ZXJfcmVnZ3JvdXBfcCBzZXQgaW4gdGRlc2NfdXNl X3JlZ2lzdGVycy4gICovCisgICBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9yZWdncm91cF9wIChnZGJh cmNoLCB0ZGVwLT5yZWdpc3Rlcl9yZWdncm91cF9wKTsKKyAKKysgIC8qIE1ha2UgJWFsIHRoZSBm aXJzdCBwc2V1ZG8tcmVnaXN0ZXIuICAqLworKyAgdGRlcC0+YWxfcmVnbnVtID0gZ2RiYXJjaF9u dW1fcmVncyAoZ2RiYXJjaCk7CisrICB0ZGVwLT5heF9yZWdudW0gPSB0ZGVwLT5hbF9yZWdudW0g KyB0ZGVwLT5udW1fYnl0ZV9yZWdzOworKworKyAgbW0wX3JlZ251bSA9IHRkZXAtPmF4X3JlZ251 bSArIHRkZXAtPm51bV93b3JkX3JlZ3M7CisrICBpZiAodGRlcC0+bnVtX2R3b3JkX3JlZ3MpCisr ICAgIHsKKysgICAgICAvKiBTdXBwb3J0IGR3b3JkIHBzZXVkby1yZWdpc3Rlc3IgaWYgaXQgaGFz bid0IGJlZW4gZGlzYWJsZWQsICAqLworKyAgICAgIHRkZXAtPmVheF9yZWdudW0gPSBtbTBfcmVn bnVtOworKyAgICAgIG1tMF9yZWdudW0gPSB0ZGVwLT5lYXhfcmVnbnVtICsgdGRlcC0+bnVtX2R3 b3JkX3JlZ3M7CisrICAgIH0KKysgIGVsc2UKKysgICAgdGRlcC0+ZWF4X3JlZ251bSA9IC0xOwor KworKyAgaWYgKHRkZXAtPm51bV9tbXhfcmVncyAhPSAwKQorKyAgICB7CisrICAgICAgLyogU3Vw cG9ydCBNTVggcHNldWRvLXJlZ2lzdGVzciBpZiBNTVggaGFzbid0IGJlZW4gZGlzYWJsZWQsICAq LworKyAgICAgIHRkZXAtPm1tMF9yZWdudW0gPSBtbTBfcmVnbnVtOworKyAgICB9CisrICBlbHNl CisrICAgIHRkZXAtPm1tMF9yZWdudW0gPSAtMTsKKysKKyAgIC8qIEhvb2sgaW4gdGhlIGxlZ2Fj eSBwcm9sb2d1ZS1iYXNlZCB1bndpbmRlcnMgbGFzdCAoZmFsbGJhY2spLiAgKi8KKyAgIGZyYW1l X3Vud2luZF9hcHBlbmRfdW53aW5kZXIgKGdkYmFyY2gsICZpMzg2X3NpZ3RyYW1wX2ZyYW1lX3Vu d2luZCk7CisgICBmcmFtZV91bndpbmRfYXBwZW5kX3Vud2luZGVyIChnZGJhcmNoLCAmaTM4Nl9m cmFtZV91bndpbmQpOworQEAgLTU3NDcsMTEgKzU5MzcsNiBAQCBpMzg2X2dkYmFyY2hfaW5pdCAo c3RydWN0IGdkYmFyY2hfaW5mbyBpCisgICAgIHNldF9nZGJhcmNoX3JlZ3NldF9mcm9tX2NvcmVf c2VjdGlvbiAoZ2RiYXJjaCwKKyAJCQkJCSAgaTM4Nl9yZWdzZXRfZnJvbV9jb3JlX3NlY3Rpb24p OworIAorLSAgLyogVW5sZXNzIHN1cHBvcnQgZm9yIE1NWCBoYXMgYmVlbiBkaXNhYmxlZCwgbWFr ZSAlbW0wIHRoZSBmaXJzdAorLSAgICAgcHNldWRvLXJlZ2lzdGVyLiAgKi8KKy0gIGlmICh0ZGVw LT5tbTBfcmVnbnVtID09IDApCistICAgIHRkZXAtPm1tMF9yZWdudW0gPSBnZGJhcmNoX251bV9y ZWdzIChnZGJhcmNoKTsKKy0KKyAgIHNldF9nZGJhcmNoX3NraXBfcGVybWFuZW50X2JyZWFrcG9p bnQgKGdkYmFyY2gsCisgCQkJCQkgaTM4Nl9za2lwX3Blcm1hbmVudF9icmVha3BvaW50KTsKKyAK Ky0tLSBnZGItNy4xLXAyL2dkYi9pMzg2LXRkZXAuaAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAw MDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2kzODYtdGRlcC5oCTIwMTAtMDQtMDMgMjE6MDY6 NTIuMDAwMDAwMDAwICswMjAwCitAQCAtMTE0LDEwICsxMTQsMzIgQEAgc3RydWN0IGdkYmFyY2hf dGRlcAorICAgICAgYWJzZW5jZSBvZiBhbiBGUFUuICAqLworICAgaW50IHN0MF9yZWdudW07Cisg CisrICAvKiBOdW1iZXIgb2YgTU1YIHJlZ2lzdGVycy4gICovCisrICBpbnQgbnVtX21teF9yZWdz OworKworICAgLyogUmVnaXN0ZXIgbnVtYmVyIGZvciAlbW0wLiAgU2V0IHRoaXMgdG8gLTEgdG8g aW5kaWNhdGUgdGhlIGFic2VuY2UKKyAgICAgIG9mIE1NWCBzdXBwb3J0LiAgKi8KKyAgIGludCBt bTBfcmVnbnVtOworIAorKyAgLyogTnVtYmVyIG9mIGJ5dGUgcmVnaXN0ZXJzLiAgKi8KKysgIGlu dCBudW1fYnl0ZV9yZWdzOworKworKyAgLyogUmVnaXN0ZXIgcHNldWRvIG51bWJlciBmb3IgJWFs LiAgKi8KKysgIGludCBhbF9yZWdudW07CisrCisrICAvKiBOdW1iZXIgb2YgcHNldWRvIHdvcmQg cmVnaXN0ZXJzLiAgKi8KKysgIGludCBudW1fd29yZF9yZWdzOworKworKyAgLyogUmVnaXN0ZXIg bnVtYmVyIGZvciAlYXguICAqLworKyAgaW50IGF4X3JlZ251bTsKKysKKysgIC8qIE51bWJlciBv ZiBwc2V1ZG8gZHdvcmQgcmVnaXN0ZXJzLiAgKi8KKysgIGludCBudW1fZHdvcmRfcmVnczsKKysK KysgIC8qIFJlZ2lzdGVyIG51bWJlciBmb3IgJWVheC4gIFNldCB0aGlzIHRvIC0xIHRvIGluZGlj YXRlIHRoZSBhYnNlbmNlCisrICAgICBvZiBwc2V1ZG8gZHdvcmQgcmVnaXN0ZXIgc3VwcG9ydC4g ICovCisrICBpbnQgZWF4X3JlZ251bTsKKysKKyAgIC8qIE51bWJlciBvZiBjb3JlIHJlZ2lzdGVy cy4gICovCisgICBpbnQgbnVtX2NvcmVfcmVnczsKKyAKK0BAIC0yNTMsNiArMjc1LDIxIEBAIGVu dW0gcmVjb3JkX2kzODZfcmVnbnVtCisgLyogVHlwZXMgZm9yIGkzODYtc3BlY2lmaWMgcmVnaXN0 ZXJzLiAgKi8KKyBleHRlcm4gc3RydWN0IHR5cGUgKmkzODdfZXh0X3R5cGUgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoKTsKKyAKKysvKiBDaGVja3Mgb2YgZGlmZmVyZW50IHBzZXVkby1yZWdpc3Rl cnMuICAqLworK2V4dGVybiBpbnQgaTM4Nl9ieXRlX3JlZ251bV9wIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCwgaW50IHJlZ251bSk7CisrZXh0ZXJuIGludCBpMzg2X3dvcmRfcmVnbnVtX3AgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKTsKKytleHRlcm4gaW50IGkzODZfZHdv cmRfcmVnbnVtX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKTsKKysKKytl eHRlcm4gY29uc3QgY2hhciAqaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsCisrCQkJCQkgICAgICBpbnQgcmVnbnVtKTsKKysKKytleHRlcm4gdm9pZCBp Mzg2X3BzZXVkb19yZWdpc3Rlcl9yZWFkIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKKysJCQkJ ICAgICAgIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCisrCQkJCSAgICAgICBpbnQgcmVnbnVt LCBnZGJfYnl0ZSAqYnVmKTsKKytleHRlcm4gdm9pZCBpMzg2X3BzZXVkb19yZWdpc3Rlcl93cml0 ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisrCQkJCQlzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLAorKwkJCQkJaW50IHJlZ251bSwgY29uc3QgZ2RiX2J5dGUgKmJ1Zik7CisrCisgLyogU2Vn bWVudCBzZWxlY3RvcnMuICAqLworICNkZWZpbmUgSTM4Nl9TRUxfUlBMCTB4MDAwMyAgLyogUmVx dWVzdGVyJ3MgUHJpdmlsZWdlIExldmVsIG1hc2suICAqLworICNkZWZpbmUgSTM4Nl9TRUxfVVBM CTB4MDAwMwkvKiBVc2VyIFByaXZpbGlnZSBMZXZlbC4gKi8KKy0tLSBnZGItNy4xLXAyL2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtYnl0ZS5leHAJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtYnl0 ZS5leHAJMjAxMC0wNC0wMyAyMTowNjo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTIx IEBACisrIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysK KysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysj CisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBQbGVhc2UgZW1haWwgYW55IGJ1 Z3MsIGNvbW1lbnRzLCBhbmQvb3IgYWRkaXRpb25zIHRvIHRoaXMgZmlsZSB0bzoKKysjIGJ1Zy1n ZGJAZ251Lm9yZworKworKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdkYiB0ZXN0c3VpdGUu CisrCisraWYgJHRyYWNlbGV2ZWwgeworKyAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKKyt9CisrCisr c2V0IHBybXNfaWQgMAorK3NldCBidWdfaWQgMAorKworK2lmIHsgIVtpc3RhcmdldCB4ODZfNjQt Ki0qIF0gfSB7CisrICAgIHZlcmJvc2UgIlNraXBwaW5nIGFtZDY0IGJ5dGUgcmVnaXN0ZXIgdGVz dHMuIgorKyAgICByZXR1cm4KKyt9CisrCisrc2V0IHRlc3RmaWxlICJhbWQ2NC1ieXRlIgorK3Nl dCBzcmNmaWxlIGFtZDY0LXBzZXVkby5jCisrc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGly fS8ke3Rlc3RmaWxlfQorKworK2lmIFtnZXRfY29tcGlsZXJfaW5mbyAke2JpbmZpbGV9XSB7Cisr ICAgIHJldHVybiAtMQorK30KKysKKytpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3Vi ZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSBbbGlzdCBkZWJ1Z11dICE9 ICIiIH0geworKyAgICB1bnRlc3RlZCAke3Rlc3RmaWxlfQorKyAgICByZXR1cm4KKyt9CisrCisr Z2RiX2V4aXQKKytnZGJfc3RhcnQKKytnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJk aXIKKytnZGJfbG9hZCAke2JpbmZpbGV9CisrCisraWYgIVtydW50b19tYWluXSB0aGVuIHsKKysg ICAgZ2RiX3N1cHByZXNzX3Rlc3RzCisrfQorKworK3NldCBucl9yZWdzIDE0Cisrc2V0IGJ5dGVf cmVncygxKSBhbAorK3NldCBieXRlX3JlZ3MoMikgYmwKKytzZXQgYnl0ZV9yZWdzKDMpIGNsCisr c2V0IGJ5dGVfcmVncyg0KSBkbAorK3NldCBieXRlX3JlZ3MoNSkgc2lsCisrc2V0IGJ5dGVfcmVn cyg2KSBkaWwKKytzZXQgYnl0ZV9yZWdzKDcpIHI4bAorK3NldCBieXRlX3JlZ3MoOCkgcjlsCisr c2V0IGJ5dGVfcmVncyg5KSByMTBsCisrc2V0IGJ5dGVfcmVncygxMCkgcjExbAorK3NldCBieXRl X3JlZ3MoMTEpIHIxMmwKKytzZXQgYnl0ZV9yZWdzKDEyKSByMTNsCisrc2V0IGJ5dGVfcmVncygx MykgcjE0bAorK3NldCBieXRlX3JlZ3MoMTQpIHIxNWwKKysKKytnZGJfdGVzdCAiYnJlYWsgW2dk Yl9nZXRfbGluZV9udW1iZXIgImZpcnN0IGJyZWFrcG9pbnQgaGVyZSJdIiBcCisrICAgICAgICAg IkJyZWFrcG9pbnQgLiogYXQgLioke3NyY2ZpbGV9LioiIFwKKysgICAgICAgICAic2V0IGZpcnN0 IGJyZWFrcG9pbnQgaW4gbWFpbiIKKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29udGlu dWUgdG8gZmlyc3QgYnJlYWtwb2ludCBpbiBtYWluIgorKworK2ZvciB7IHNldCByIDEgfSB7ICRy IDw9IDYgIH0geyBpbmNyIHIgfSB7CisrICAgIGdkYl90ZXN0ICJwcmludC94IFwkJGJ5dGVfcmVn cygkcikiIFwKKysgICAgICAgICIuLiA9IDB4W2Zvcm1hdCAleCAkcl0xIiBcCisrICAgICAgICAi Y2hlY2sgY29udGVudHMgb2YgJSRieXRlX3JlZ3MoJHIpIgorK30KKysKKytnZGJfdGVzdCAiYnJl YWsgW2dkYl9nZXRfbGluZV9udW1iZXIgInNlY29uZCBicmVha3BvaW50IGhlcmUiXSIgXAorKyAg ICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBcCisrICAgICAgICAgInNl dCBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJjb250aW51ZSB0byBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorKworK2ZvciB7IHNldCBy IDcgfSB7ICRyIDw9ICRucl9yZWdzICB9IHsgaW5jciByIH0geworKyAgICBnZGJfdGVzdCAicHJp bnQveCBcJCRieXRlX3JlZ3MoJHIpIiBcCisrICAgICAgICAiLi4gPSAweFtmb3JtYXQgJXggJHJd MSIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRyKSIKKyt9Cisr CisrZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNiAgfSB7IGluY3IgciB9IHsKKysgIGdkYl90ZXN0 ICJzZXQgdmFyIFwkJGJ5dGVfcmVncygkcikgPSAkciIgIiIgInNldCAlJGJ5dGVfcmVncygkciki CisrfQorKworK2dkYl90ZXN0ICJicmVhayBbZ2RiX2dldF9saW5lX251bWJlciAidGhpcmQgYnJl YWtwb2ludCBoZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAuKiR7c3JjZmls ZX0uKiIgXAorKyAgICAgICAgICJzZXQgdGhpcmQgYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byB0aGlyZCBicmVha3BvaW50IGluIG1h aW4iCisrCisrZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNiAgfSB7IGluY3IgciB9IHsKKysgICAg Z2RiX3Rlc3QgInByaW50IFwkJGJ5dGVfcmVncygkcikiIFwKKysgICAgICAgICIuLiA9ICRyIiBc CisrICAgICAgICAiY2hlY2sgY29udGVudHMgb2YgJSRieXRlX3JlZ3MoJHIpIgorK30KKysKKytm b3IgeyBzZXQgciA3IH0geyAkciA8PSAkbnJfcmVncyAgfSB7IGluY3IgciB9IHsKKysgIGdkYl90 ZXN0ICJzZXQgdmFyIFwkJGJ5dGVfcmVncygkcikgPSAkciIgIiIgInNldCAlJGJ5dGVfcmVncygk cikiCisrfQorKworK2dkYl90ZXN0ICJicmVhayBbZ2RiX2dldF9saW5lX251bWJlciAiZm9ydGgg YnJlYWtwb2ludCBoZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAuKiR7c3Jj ZmlsZX0uKiIgXAorKyAgICAgICAgICJzZXQgZm9ydGggYnJlYWtwb2ludCBpbiBtYWluIgorK2dk Yl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byBmb3J0aCBicmVha3BvaW50IGlu IG1haW4iCisrCisrZm9yIHsgc2V0IHIgNyB9IHsgJHIgPD0gJG5yX3JlZ3MgIH0geyBpbmNyIHIg fSB7CisrICAgIGdkYl90ZXN0ICJwcmludCBcJCRieXRlX3JlZ3MoJHIpIiBcCisrICAgICAgICAi Li4gPSAkciIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRyKSIK Kyt9CistLS0gZ2RiLTcuMS1wMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWR3b3JkLmV4 cAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC1kd29yZC5leHAJMjAxMC0wNC0wMyAyMTowNjo1Mi4wMDAw MDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTIzIEBACisrIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisr IworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisrCisrIyBQbGVhc2UgZW1haWwgYW55IGJ1Z3MsIGNvbW1lbnRzLCBhbmQvb3IgYWRkaXRpb25z IHRvIHRoaXMgZmlsZSB0bzoKKysjIGJ1Zy1nZGJAZ251Lm9yZworKworKyMgVGhpcyBmaWxlIGlz IHBhcnQgb2YgdGhlIGdkYiB0ZXN0c3VpdGUuCisrCisraWYgJHRyYWNlbGV2ZWwgeworKyAgICBz dHJhY2UgJHRyYWNlbGV2ZWwKKyt9CisrCisrc2V0IHBybXNfaWQgMAorK3NldCBidWdfaWQgMAor KworK2lmIHsgIVtpc3RhcmdldCB4ODZfNjQtKi0qIF0gfSB7CisrICAgIHZlcmJvc2UgIlNraXBw aW5nIGFtZDY0IGR3b3JkIHJlZ2lzdGVyIHRlc3RzLiIKKysgICAgcmV0dXJuCisrfQorKworK3Nl dCB0ZXN0ZmlsZSAiYW1kNjQtZHdvcmQiCisrc2V0IHNyY2ZpbGUgYW1kNjQtcHNldWRvLmMKKytz ZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CisrCisraWYgW2dldF9j b21waWxlcl9pbmZvICR7YmluZmlsZX1dIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmIHsg W2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9 IiBleGVjdXRhYmxlIFtsaXN0IGRlYnVnXV0gIT0gIiIgfSB7CisrICAgIHVudGVzdGVkICR7dGVz dGZpbGV9CisrICAgIHJldHVybgorK30KKysKKytnZGJfZXhpdAorK2dkYl9zdGFydAorK2dkYl9y ZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorK2dkYl9sb2FkICR7YmluZmlsZX0KKysK KytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBnZGJfc3VwcHJlc3NfdGVzdHMKKyt9Cisr Cisrc2V0IG5yX3JlZ3MgMTQKKytzZXQgZHdvcmRfcmVncygxKSBlYXgKKytzZXQgZHdvcmRfcmVn cygyKSBlYngKKytzZXQgZHdvcmRfcmVncygzKSBlY3gKKytzZXQgZHdvcmRfcmVncyg0KSBlZHgK KytzZXQgZHdvcmRfcmVncyg1KSBlc2kKKytzZXQgZHdvcmRfcmVncyg2KSBlZGkKKytzZXQgZHdv cmRfcmVncyg3KSByOGQKKytzZXQgZHdvcmRfcmVncyg4KSByOWQKKytzZXQgZHdvcmRfcmVncyg5 KSByMTBkCisrc2V0IGR3b3JkX3JlZ3MoMTApIHIxMWQKKytzZXQgZHdvcmRfcmVncygxMSkgcjEy ZAorK3NldCBkd29yZF9yZWdzKDEyKSByMTNkCisrc2V0IGR3b3JkX3JlZ3MoMTMpIHIxNGQKKytz ZXQgZHdvcmRfcmVncygxNCkgcjE1ZAorKworK2dkYl90ZXN0ICJicmVhayBbZ2RiX2dldF9saW5l X251bWJlciAiZmlyc3QgYnJlYWtwb2ludCBoZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2lu dCAuKiBhdCAuKiR7c3JjZmlsZX0uKiIgXAorKyAgICAgICAgICJzZXQgZmlyc3QgYnJlYWtwb2lu dCBpbiBtYWluIgorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byBmaXJz dCBicmVha3BvaW50IGluIG1haW4iCisrCisrZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNiAgfSB7 IGluY3IgciB9IHsKKysgICAgc2V0IGhleCBbZm9ybWF0ICV4ICRyXQorKyAgICBnZGJfdGVzdCAi cHJpbnQveCBcJCRkd29yZF9yZWdzKCRyKSIgXAorKwkiLi4gPSAweCR7aGV4fTQke2hleH0zJHto ZXh9MiR7aGV4fTEiIFwKKysgICAgICAgICJjaGVjayBjb250ZW50cyBvZiAlJGR3b3JkX3JlZ3Mo JHIpIgorK30KKysKKytnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRfbGluZV9udW1iZXIgInNlY29u ZCBicmVha3BvaW50IGhlcmUiXSIgXAorKyAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtz cmNmaWxlfS4qIiBcCisrICAgICAgICAgInNldCBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgor K2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byBzZWNvbmQgYnJlYWtwb2lu dCBpbiBtYWluIgorKworK2ZvciB7IHNldCByIDcgfSB7ICRyIDw9ICRucl9yZWdzICB9IHsgaW5j ciByIH0geworKyAgICBzZXQgaGV4IFtmb3JtYXQgJXggJHJdCisrICAgIGdkYl90ZXN0ICJwcmlu dC94IFwkJGR3b3JkX3JlZ3MoJHIpIiBcCisrCSIuLiA9IDB4JHtoZXh9NCR7aGV4fTMke2hleH0y JHtoZXh9MSIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkZHdvcmRfcmVncygkciki CisrfQorKworK2ZvciB7IHNldCByIDEgfSB7ICRyIDw9IDYgIH0geyBpbmNyIHIgfSB7CisrICBn ZGJfdGVzdCAic2V0IHZhciBcJCRkd29yZF9yZWdzKCRyKSA9ICRyIiAiIiAic2V0ICUkZHdvcmRf cmVncygkcikiCisrfQorKworK2dkYl90ZXN0ICJicmVhayBbZ2RiX2dldF9saW5lX251bWJlciAi dGhpcmQgYnJlYWtwb2ludCBoZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAu KiR7c3JjZmlsZX0uKiIgXAorKyAgICAgICAgICJzZXQgdGhpcmQgYnJlYWtwb2ludCBpbiBtYWlu IgorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byB0aGlyZCBicmVha3Bv aW50IGluIG1haW4iCisrCisrZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNiAgfSB7IGluY3IgciB9 IHsKKysgICAgZ2RiX3Rlc3QgInByaW50IFwkJGR3b3JkX3JlZ3MoJHIpIiBcCisrICAgICAgICAi Li4gPSAkciIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkZHdvcmRfcmVncygkciki CisrfQorKworK2ZvciB7IHNldCByIDcgfSB7ICRyIDw9ICRucl9yZWdzICB9IHsgaW5jciByIH0g eworKyAgZ2RiX3Rlc3QgInNldCB2YXIgXCQkZHdvcmRfcmVncygkcikgPSAkciIgIiIgInNldCAl JGR3b3JkX3JlZ3MoJHIpIgorK30KKysKKytnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRfbGluZV9u dW1iZXIgImZvcnRoIGJyZWFrcG9pbnQgaGVyZSJdIiBcCisrICAgICAgICAgIkJyZWFrcG9pbnQg LiogYXQgLioke3NyY2ZpbGV9LioiIFwKKysgICAgICAgICAic2V0IGZvcnRoIGJyZWFrcG9pbnQg aW4gbWFpbiIKKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29udGludWUgdG8gZm9ydGgg YnJlYWtwb2ludCBpbiBtYWluIgorKworK2ZvciB7IHNldCByIDcgfSB7ICRyIDw9ICRucl9yZWdz ICB9IHsgaW5jciByIH0geworKyAgICBnZGJfdGVzdCAicHJpbnQgXCQkZHdvcmRfcmVncygkciki IFwKKysgICAgICAgICIuLiA9ICRyIiBcCisrICAgICAgICAiY2hlY2sgY29udGVudHMgb2YgJSRk d29yZF9yZWdzKCRyKSIKKyt9CistLS0gZ2RiLTcuMS1wMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNo L2FtZDY0LXBzZXVkby5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysg Z2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LXBzZXVkby5jCTIwMTAtMDQtMDMg MjE6MDY6NTIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDkxIEBACisrLyogVGVzdCBwcm9n cmFtIGZvciBieXRlIHJlZ2lzdGVycy4KKysKKysgICBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisr CisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRl IDxzdGRpby5oPgorKworK2ludCBkYXRhW10gPSB7CisrICAweDE0MTMxMjExLAorKyAgMHgyNDIz MjIyMSwKKysgIDB4MzQzMzMyMzEsCisrICAweDQ0NDM0MjQxLAorKyAgMHg1NDUzNTI1MSwKKysg IDB4NjQ2MzYyNjEsCisrICAweDc0NzM3MjcxLAorKyAgMHg4NDgzODI4MSwKKysgIDB4OTQ5Mzky OTEsCisrICAweGE0YTNhMmExLAorKyAgMHhiNGIzYjJiMSwKKysgIDB4YzRjM2MyYzEsCisrICAw eGQ0ZDNkMmQxLAorKyAgMHhlNGUzZTJlMSwKKyt9OworKworK2ludAorK21haW4gKGludCBhcmdj LCBjaGFyICoqYXJndikKKyt7CisrICBhc20gKCJtb3YgMCglMCksICUlZWF4XG5cdCIKKysgICAg ICAgIm1vdiA0KCUwKSwgJSVlYnhcblx0IgorKyAgICAgICAibW92IDgoJTApLCAlJWVjeFxuXHQi CisrICAgICAgICJtb3YgMTIoJTApLCAlJWVkeFxuXHQiCisrICAgICAgICJtb3YgMTYoJTApLCAl JWVzaVxuXHQiCisrICAgICAgICJtb3YgMjAoJTApLCAlJWVkaVxuXHQiCisrICAgICAgIDogLyog bm8gb3V0cHV0IG9wZXJhbmRzICovCisrICAgICAgIDogInIiIChkYXRhKSAKKysgICAgICAgOiAi ZWF4IiwgImVieCIsICJlY3giLCAiZWR4IiwgImVzaSIsICJlZGkiKTsKKysgIGFzbSAoIm5vcCIp OyAvKiBmaXJzdCBicmVha3BvaW50IGhlcmUgKi8KKysKKysgIGFzbSAoIm1vdiAyNCglMCksICUl cjhkXG5cdCIKKysgICAgICAgIm1vdiAyOCglMCksICUlcjlkXG5cdCIKKysgICAgICAgIm1vdiAz MiglMCksICUlcjEwZFxuXHQiCisrICAgICAgICJtb3YgMzYoJTApLCAlJXIxMVxuXHQiCisrICAg ICAgICJtb3YgNDAoJTApLCAlJXIxMmRcblx0IgorKyAgICAgICAibW92IDQ0KCUwKSwgJSVyMTNk XG5cdCIKKysgICAgICAgIm1vdiA0OCglMCksICUlcjE0ZFxuXHQiCisrICAgICAgICJtb3YgNTIo JTApLCAlJXIxNWRcblx0IgorKyAgICAgICA6IC8qIG5vIG91dHB1dCBvcGVyYW5kcyAqLworKyAg ICAgICA6ICJyIiAoZGF0YSkgCisrICAgICAgIDogInI4IiwgInI5IiwgInIxMCIsICJyMTEiLCAi cjEyIiwgInIxMyIsICJyMTQiLCAicjE1Iik7CisrICBhc20gKCJub3AiKTsgLyogc2Vjb25kIGJy ZWFrcG9pbnQgaGVyZSAqLworKworKyAgYXNtICgibW92ICUlZWF4LCAwKCUwKVxuXHQiCisrICAg ICAgICJtb3YgJSVlYngsIDQoJTApXG5cdCIKKysgICAgICAgIm1vdiAlJWVjeCwgOCglMClcblx0 IgorKyAgICAgICAibW92ICUlZWR4LCAxMiglMClcblx0IgorKyAgICAgICAibW92ICUlZXNpLCAx NiglMClcblx0IgorKyAgICAgICAibW92ICUlZWRpLCAyMCglMClcblx0IgorKyAgICAgICA6IC8q IG5vIG91dHB1dCBvcGVyYW5kcyAqLworKyAgICAgICA6ICJyIiAoZGF0YSkgCisrICAgICAgIDog ImVheCIsICJlYngiLCAiZWN4IiwgImVkeCIsICJlc2kiLCAiZWRpIik7CisrICBhc20gKCJub3Ai KTsgLyogdGhpcmQgYnJlYWtwb2ludCBoZXJlICovCisrCisrICBhc20gKCJtb3YgJSVyOGQsIDI0 KCUwKVxuXHQiCisrICAgICAgICJtb3YgJSVyOWQsIDI4KCUwKVxuXHQiCisrICAgICAgICJtb3Yg JSVyMTBkLCAzMiglMClcblx0IgorKyAgICAgICAibW92ICUlcjExZCwgMzYoJTApXG5cdCIKKysg ICAgICAgIm1vdiAlJXIxMmQsIDQwKCUwKVxuXHQiCisrICAgICAgICJtb3YgJSVyMTNkLCA0NCgl MClcblx0IgorKyAgICAgICAibW92ICUlcjE0ZCwgNDgoJTApXG5cdCIKKysgICAgICAgIm1vdiAl JXIxNWQsIDUyKCUwKVxuXHQiCisrICAgICAgIDogLyogbm8gb3V0cHV0IG9wZXJhbmRzICovCisr ICAgICAgIDogInIiIChkYXRhKSAKKysgICAgICAgOiAicjgiLCAicjkiLCAicjEwIiwgInIxMSIs ICJyMTIiLCAicjEzIiwgInIxNCIsICJyMTUiKTsKKysgIHB1dHMgKCJCeWUhIik7IC8qIGZvcnRo IGJyZWFrcG9pbnQgaGVyZSAqLworKworKyAgcmV0dXJuIDA7CisrfQorLS0tIGdkYi03LjEtcDIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC13b3JkLmV4cAkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2 NC13b3JkLmV4cAkyMDEwLTA0LTAzIDIxOjA2OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCAr MSwxMjMgQEAKKysjIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFBsZWFzZSBlbWFpbCBh bnkgYnVncywgY29tbWVudHMsIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhpcyBmaWxlIHRvOgorKyMg YnVnLWdkYkBnbnUub3JnCisrCisrIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgZ2RiIHRlc3Rz dWl0ZS4KKysKKytpZiAkdHJhY2VsZXZlbCB7CisrICAgIHN0cmFjZSAkdHJhY2VsZXZlbAorK30K KysKKytzZXQgcHJtc19pZCAwCisrc2V0IGJ1Z19pZCAwCisrCisraWYgeyAhW2lzdGFyZ2V0IHg4 Nl82NC0qLSogXSB9IHsKKysgICAgdmVyYm9zZSAiU2tpcHBpbmcgYW1kNjQgd29yZCByZWdpc3Rl ciB0ZXN0cy4iCisrICAgIHJldHVybgorK30KKysKKytzZXQgdGVzdGZpbGUgImFtZDY0LXdvcmQi Cisrc2V0IHNyY2ZpbGUgYW1kNjQtcHNldWRvLmMKKytzZXQgYmluZmlsZSAke29iamRpcn0vJHtz dWJkaXJ9LyR7dGVzdGZpbGV9CisrCisraWYgW2dldF9jb21waWxlcl9pbmZvICR7YmluZmlsZX1d IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0v JHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlIFtsaXN0IGRlYnVn XV0gIT0gIiIgfSB7CisrICAgIHVudGVzdGVkICR7dGVzdGZpbGV9CisrICAgIHJldHVybgorK30K KysKKytnZGJfZXhpdAorK2dkYl9zdGFydAorK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIv JHN1YmRpcgorK2dkYl9sb2FkICR7YmluZmlsZX0KKysKKytpZiAhW3J1bnRvX21haW5dIHRoZW4g eworKyAgICBnZGJfc3VwcHJlc3NfdGVzdHMKKyt9CisrCisrc2V0IG5yX3JlZ3MgMTQKKytzZXQg d29yZF9yZWdzKDEpIGF4Cisrc2V0IHdvcmRfcmVncygyKSBieAorK3NldCB3b3JkX3JlZ3MoMykg Y3gKKytzZXQgd29yZF9yZWdzKDQpIGR4Cisrc2V0IHdvcmRfcmVncyg1KSBzaQorK3NldCB3b3Jk X3JlZ3MoNikgZGkKKytzZXQgd29yZF9yZWdzKDcpIHI4dworK3NldCB3b3JkX3JlZ3MoOCkgcjl3 Cisrc2V0IHdvcmRfcmVncyg5KSByMTB3Cisrc2V0IHdvcmRfcmVncygxMCkgcjExdworK3NldCB3 b3JkX3JlZ3MoMTEpIHIxMncKKytzZXQgd29yZF9yZWdzKDEyKSByMTN3Cisrc2V0IHdvcmRfcmVn cygxMykgcjE0dworK3NldCB3b3JkX3JlZ3MoMTQpIHIxNXcKKysKKytnZGJfdGVzdCAiYnJlYWsg W2dkYl9nZXRfbGluZV9udW1iZXIgImZpcnN0IGJyZWFrcG9pbnQgaGVyZSJdIiBcCisrICAgICAg ICAgIkJyZWFrcG9pbnQgLiogYXQgLioke3NyY2ZpbGV9LioiIFwKKysgICAgICAgICAic2V0IGZp cnN0IGJyZWFrcG9pbnQgaW4gbWFpbiIKKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29u dGludWUgdG8gZmlyc3QgYnJlYWtwb2ludCBpbiBtYWluIgorKworK2ZvciB7IHNldCByIDEgfSB7 ICRyIDw9IDYgIH0geyBpbmNyIHIgfSB7CisrICAgIHNldCBoZXggW2Zvcm1hdCAleCAkcl0KKysg ICAgZ2RiX3Rlc3QgInByaW50L3ggXCQkd29yZF9yZWdzKCRyKSIgXAorKyAgICAgICAgIi4uID0g MHgke2hleH0yJHtoZXh9MSIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkd29yZF9y ZWdzKCRyKSIKKyt9CisrCisrZ2RiX3Rlc3QgImJyZWFrIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJz ZWNvbmQgYnJlYWtwb2ludCBoZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAu KiR7c3JjZmlsZX0uKiIgXAorKyAgICAgICAgICJzZXQgc2Vjb25kIGJyZWFrcG9pbnQgaW4gbWFp biIKKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29udGludWUgdG8gc2Vjb25kIGJyZWFr cG9pbnQgaW4gbWFpbiIKKysKKytmb3IgeyBzZXQgciA3IH0geyAkciA8PSAkbnJfcmVncyAgfSB7 IGluY3IgciB9IHsKKysgICAgc2V0IGhleCBbZm9ybWF0ICV4ICRyXQorKyAgICBnZGJfdGVzdCAi cHJpbnQveCBcJCR3b3JkX3JlZ3MoJHIpIiBcCisrICAgICAgICAiLi4gPSAweCR7aGV4fTIke2hl eH0xIiBcCisrICAgICAgICAiY2hlY2sgY29udGVudHMgb2YgJSR3b3JkX3JlZ3MoJHIpIgorK30K KysKKytmb3IgeyBzZXQgciAxIH0geyAkciA8PSA2ICB9IHsgaW5jciByIH0geworKyAgZ2RiX3Rl c3QgInNldCB2YXIgXCQkd29yZF9yZWdzKCRyKSA9ICRyIiAiIiAic2V0ICUkd29yZF9yZWdzKCRy KSIKKyt9CisrCisrZ2RiX3Rlc3QgImJyZWFrIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ0aGlyZCBi cmVha3BvaW50IGhlcmUiXSIgXAorKyAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtzcmNm aWxlfS4qIiBcCisrICAgICAgICAgInNldCB0aGlyZCBicmVha3BvaW50IGluIG1haW4iCisrZ2Ri X2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnRpbnVlIHRvIHRoaXJkIGJyZWFrcG9pbnQgaW4g bWFpbiIKKysKKytmb3IgeyBzZXQgciAxIH0geyAkciA8PSA2ICB9IHsgaW5jciByIH0geworKyAg ICBnZGJfdGVzdCAicHJpbnQgXCQkd29yZF9yZWdzKCRyKSIgXAorKyAgICAgICAgIi4uID0gJHIi IFwKKysgICAgICAgICJjaGVjayBjb250ZW50cyBvZiAlJHdvcmRfcmVncygkcikiCisrfQorKwor K2ZvciB7IHNldCByIDcgfSB7ICRyIDw9ICRucl9yZWdzICB9IHsgaW5jciByIH0geworKyAgZ2Ri X3Rlc3QgInNldCB2YXIgXCQkd29yZF9yZWdzKCRyKSA9ICRyIiAiIiAic2V0ICUkd29yZF9yZWdz KCRyKSIKKyt9CisrCisrZ2RiX3Rlc3QgImJyZWFrIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmb3J0 aCBicmVha3BvaW50IGhlcmUiXSIgXAorKyAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtz cmNmaWxlfS4qIiBcCisrICAgICAgICAgInNldCBmb3J0aCBicmVha3BvaW50IGluIG1haW4iCisr Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnRpbnVlIHRvIGZvcnRoIGJyZWFrcG9pbnQg aW4gbWFpbiIKKysKKytmb3IgeyBzZXQgciA3IH0geyAkciA8PSAkbnJfcmVncyAgfSB7IGluY3Ig ciB9IHsKKysgICAgZ2RiX3Rlc3QgInByaW50IFwkJHdvcmRfcmVncygkcikiIFwKKysgICAgICAg ICIuLiA9ICRyIiBcCisrICAgICAgICAiY2hlY2sgY29udGVudHMgb2YgJSR3b3JkX3JlZ3MoJHIp IgorK30KKy0tLSBnZGItNy4xLXAyL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4Ni1ieXRlLmV4 cAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC9pMzg2LWJ5dGUuZXhwCTIwMTAtMDQtMDMgMjE6MDY6NTIuMDAwMDAw MDAwICswMjAwCitAQCAtMCwwICsxLDk4IEBACisrIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor KyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIwor KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisr CisrIyBQbGVhc2UgZW1haWwgYW55IGJ1Z3MsIGNvbW1lbnRzLCBhbmQvb3IgYWRkaXRpb25zIHRv IHRoaXMgZmlsZSB0bzoKKysjIGJ1Zy1nZGJAZ251Lm9yZworKworKyMgVGhpcyBmaWxlIGlzIHBh cnQgb2YgdGhlIGdkYiB0ZXN0c3VpdGUuCisrCisraWYgJHRyYWNlbGV2ZWwgeworKyAgICBzdHJh Y2UgJHRyYWNlbGV2ZWwKKyt9CisrCisrc2V0IHBybXNfaWQgMAorK3NldCBidWdfaWQgMAorKwor K2lmIHsgIVtpc3RhcmdldCBpPzg2LSotKl0gfSB7CisrICAgIHZlcmJvc2UgIlNraXBwaW5nIGkz ODYgYnl0ZSByZWdpc3RlciB0ZXN0cy4iCisrICAgIHJldHVybgorK30KKysKKytzZXQgdGVzdGZp bGUgImkzODYtYnl0ZSIKKytzZXQgc3JjZmlsZSBpMzg2LXBzZXVkby5jCisrc2V0IGJpbmZpbGUg JHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQorKworK2lmIFtnZXRfY29tcGlsZXJfaW5m byAke2JpbmZpbGV9XSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytpZiB7IFtnZGJfY29tcGls ZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJs ZSBbbGlzdCBkZWJ1Z11dICE9ICIiIH0geworKyAgICB1bnRlc3RlZCAke3Rlc3RmaWxlfQorKyAg ICByZXR1cm4KKyt9CisrCisrZ2RiX2V4aXQKKytnZGJfc3RhcnQKKytnZGJfcmVpbml0aWFsaXpl X2RpciAkc3JjZGlyLyRzdWJkaXIKKytnZGJfbG9hZCAke2JpbmZpbGV9CisrCisraWYgIVtydW50 b19tYWluXSB0aGVuIHsKKysgICAgZ2RiX3N1cHByZXNzX3Rlc3RzCisrfQorKworK3NldCBieXRl X3JlZ3MoMSkgYWwKKytzZXQgYnl0ZV9yZWdzKDIpIGJsCisrc2V0IGJ5dGVfcmVncygzKSBjbAor K3NldCBieXRlX3JlZ3MoNCkgZGwKKytzZXQgYnl0ZV9yZWdzKDUpIGFoCisrc2V0IGJ5dGVfcmVn cyg2KSBiaAorK3NldCBieXRlX3JlZ3MoNykgY2gKKytzZXQgYnl0ZV9yZWdzKDgpIGRoCisrCisr Z2RiX3Rlc3QgImJyZWFrIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmaXJzdCBicmVha3BvaW50IGhl cmUiXSIgXAorKyAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBcCisr ICAgICAgICAgInNldCBmaXJzdCBicmVha3BvaW50IGluIG1haW4iCisrZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgImNvbnRpbnVlIHRvIGZpcnN0IGJyZWFrcG9pbnQgaW4gbWFpbiIKKysKKytm b3IgeyBzZXQgciAxIH0geyAkciA8PSA0ICB9IHsgaW5jciByIH0geworKyAgICBnZGJfdGVzdCAi cHJpbnQveCBcJCRieXRlX3JlZ3MoJHIpIiBcCisrICAgICAgICAiLi4gPSAweFtmb3JtYXQgJXgg JHJdMSIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRyKSIKKysg ICAgc2V0IGggW2V4cHIgJHIgKyA0XQorKyAgICBnZGJfdGVzdCAicHJpbnQveCBcJCRieXRlX3Jl Z3MoJGgpIiBcCisrICAgICAgICAiLi4gPSAweFtmb3JtYXQgJXggJHJdMiIgXAorKyAgICAgICAg ImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRoKSIKKyt9CisrCisrZm9yIHsgc2V0IHIg MSB9IHsgJHIgPD0gNCAgfSB7IGluY3IgciB9IHsKKysgIGdkYl90ZXN0ICJzZXQgdmFyIFwkJGJ5 dGVfcmVncygkcikgPSAkciIgIiIgInNldCAlJGJ5dGVfcmVncygkcikiCisrICBzZXQgaCBbZXhw ciAkciArIDRdCisrICBnZGJfdGVzdCAic2V0IHZhciBcJCRieXRlX3JlZ3MoJGgpID0gJGgiICIi ICJzZXQgJSRieXRlX3JlZ3MoJGgpIgorK30KKysKKytnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRf bGluZV9udW1iZXIgInNlY29uZCBicmVha3BvaW50IGhlcmUiXSIgXAorKyAgICAgICAgICJCcmVh a3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBcCisrICAgICAgICAgInNldCBzZWNvbmQgYnJl YWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0 byBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorKworK2ZvciB7IHNldCByIDEgfSB7ICRyIDw9 IDQgIH0geyBpbmNyIHIgfSB7CisrICAgIGdkYl90ZXN0ICJwcmludCBcJCRieXRlX3JlZ3MoJHIp IiBcCisrICAgICAgICAiLi4gPSAkciIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUk Ynl0ZV9yZWdzKCRyKSIKKysgICAgc2V0IGggW2V4cHIgJHIgKyA0XQorKyAgICBnZGJfdGVzdCAi cHJpbnQgXCQkYnl0ZV9yZWdzKCRoKSIgXAorKyAgICAgICAgIi4uID0gJGgiIFwKKysgICAgICAg ICJjaGVjayBjb250ZW50cyBvZiAlJGJ5dGVfcmVncygkaCkiCisrfQorLS0tIGdkYi03LjEtcDIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LXBzZXVkby5jCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kzODYt cHNldWRvLmMJMjAxMC0wNC0wMyAyMTowNjo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEs NTEgQEAKKysvKiBUZXN0IHByb2dyYW0gZm9yIGJ5dGUgcmVnaXN0ZXJzLgorKworKyAgIENvcHly aWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisr ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKwor KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCisrCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrCisraW50IGRhdGFbXSA9IHsKKysgIDB4 MTQxMzEyMTEsCisrICAweDI0MjMyMjIxLAorKyAgMHgzNDMzMzIzMSwKKysgIDB4NDQ0MzQyNDEs CisrfTsKKysKKytpbnQKKyttYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisreworKyAgYXNt ICgibW92IDAoJTApLCAlJWVheFxuXHQiCisrICAgICAgICJtb3YgNCglMCksICUlZWJ4XG5cdCIK KysgICAgICAgIm1vdiA4KCUwKSwgJSVlY3hcblx0IgorKyAgICAgICAibW92IDEyKCUwKSwgJSVl ZHhcblx0IgorKyAgICAgICA6IC8qIG5vIG91dHB1dCBvcGVyYW5kcyAqLworKyAgICAgICA6ICJy IiAoZGF0YSkgCisrICAgICAgIDogImVheCIsICJlYngiLCAiZWN4IiwgImVkeCIpOworKyAgYXNt ICgibm9wIik7IC8qIGZpcnN0IGJyZWFrcG9pbnQgaGVyZSAqLworKworKyAgYXNtICgibW92ICUl ZWF4LCAwKCUwKVxuXHQiCisrICAgICAgICJtb3YgJSVlYngsIDQoJTApXG5cdCIKKysgICAgICAg Im1vdiAlJWVjeCwgOCglMClcblx0IgorKyAgICAgICAibW92ICUlZWR4LCAxMiglMClcblx0Igor KyAgICAgICA6IC8qIG5vIG91dHB1dCBvcGVyYW5kcyAqLworKyAgICAgICA6ICJyIiAoZGF0YSkg CisrICAgICAgIDogImVheCIsICJlYngiLCAiZWN4IiwgImVkeCIpOworKyAgcHV0cyAoIkJ5ZSEi KTsgLyogc2Vjb25kIGJyZWFrcG9pbnQgaGVyZSAqLworKworKyAgcmV0dXJuIDA7CisrfQorLS0t IGdkYi03LjEtcDIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LXdvcmQuZXhwCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dk Yi5hcmNoL2kzODYtd29yZC5leHAJMjAxMC0wNC0wMyAyMTowNjo1Mi4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsODQgQEAKKysjIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFBsZWFz ZSBlbWFpbCBhbnkgYnVncywgY29tbWVudHMsIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhpcyBmaWxl IHRvOgorKyMgYnVnLWdkYkBnbnUub3JnCisrCisrIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg Z2RiIHRlc3RzdWl0ZS4KKysKKytpZiAkdHJhY2VsZXZlbCB7CisrICAgIHN0cmFjZSAkdHJhY2Vs ZXZlbAorK30KKysKKytzZXQgcHJtc19pZCAwCisrc2V0IGJ1Z19pZCAwCisrCisraWYgeyAhW2lz dGFyZ2V0IGk/ODYtKi0qXSB9IHsKKysgICAgdmVyYm9zZSAiU2tpcHBpbmcgaTM4NiB3b3JkIHJl Z2lzdGVyIHRlc3RzLiIKKysgICAgcmV0dXJuCisrfQorKworK3NldCB0ZXN0ZmlsZSAiaTM4Ni13 b3JkIgorK3NldCBzcmNmaWxlIGkzODYtcHNldWRvLmMKKytzZXQgYmluZmlsZSAke29iamRpcn0v JHtzdWJkaXJ9LyR7dGVzdGZpbGV9CisrCisraWYgW2dldF9jb21waWxlcl9pbmZvICR7YmluZmls ZX1dIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmIHsgW2dkYl9jb21waWxlICIke3NyY2Rp cn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlIFtsaXN0IGRl YnVnXV0gIT0gIiIgfSB7CisrICAgIHVudGVzdGVkICR7dGVzdGZpbGV9CisrICAgIHJldHVybgor K30KKysKKytnZGJfZXhpdAorK2dkYl9zdGFydAorK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNk aXIvJHN1YmRpcgorK2dkYl9sb2FkICR7YmluZmlsZX0KKysKKytpZiAhW3J1bnRvX21haW5dIHRo ZW4geworKyAgICBnZGJfc3VwcHJlc3NfdGVzdHMKKyt9CisrCisrc2V0IHdvcmRfcmVncygxKSBh eAorK3NldCB3b3JkX3JlZ3MoMikgYngKKytzZXQgd29yZF9yZWdzKDMpIGN4Cisrc2V0IHdvcmRf cmVncyg0KSBkeAorKworK2dkYl90ZXN0ICJicmVhayBbZ2RiX2dldF9saW5lX251bWJlciAiZmly c3QgYnJlYWtwb2ludCBoZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAuKiR7 c3JjZmlsZX0uKiIgXAorKyAgICAgICAgICJzZXQgZmlyc3QgYnJlYWtwb2ludCBpbiBtYWluIgor K2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byBmaXJzdCBicmVha3BvaW50 IGluIG1haW4iCisrCisrZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNCAgfSB7IGluY3IgciB9IHsK KysgICAgZ2RiX3Rlc3QgInByaW50L3ggXCQkd29yZF9yZWdzKCRyKSIgXAorKyAgICAgICAgIi4u ID0gMHhbZm9ybWF0ICV4ICRyXTJbZm9ybWF0ICV4ICRyXTEiIFwKKysgICAgICAgICJjaGVjayBj b250ZW50cyBvZiAlJHdvcmRfcmVncygkcikiCisrfQorKworK2ZvciB7IHNldCByIDEgfSB7ICRy IDw9IDQgIH0geyBpbmNyIHIgfSB7CisrICBnZGJfdGVzdCAic2V0IHZhciBcJCR3b3JkX3JlZ3Mo JHIpID0gJHIiICIiICJzZXQgJSR3b3JkX3JlZ3MoJHIpIgorK30KKysKKytnZGJfdGVzdCAiYnJl YWsgW2dkYl9nZXRfbGluZV9udW1iZXIgInNlY29uZCBicmVha3BvaW50IGhlcmUiXSIgXAorKyAg ICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBcCisrICAgICAgICAgInNl dCBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJjb250aW51ZSB0byBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorKworK2ZvciB7IHNldCBy IDEgfSB7ICRyIDw9IDQgIH0geyBpbmNyIHIgfSB7CisrICAgIGdkYl90ZXN0ICJwcmludCBcJCR3 b3JkX3JlZ3MoJHIpIiBcCisrICAgICAgICAiLi4gPSAkciIgXAorKyAgICAgICAgImNoZWNrIGNv bnRlbnRzIG9mICUkd29yZF9yZWdzKCRyKSIKKyt9CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTc4MjUw LWF2eC0wNW9mMTAucGF0Y2ggYi9nZGItYno1NzgyNTAtYXZ4LTA1b2YxMC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWYwOTA4Ci0tLSAvZGV2L251bGwKKysrIGIv Z2RiLWJ6NTc4MjUwLWF2eC0wNW9mMTAucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorWyBCYWNrcG9y dGVkLiAgXQorCitjb21taXQgNjQ0OGFhY2U2Mzc4NDNlOGU3YzAyMWQ3ZjhjNWQ1ZDVmZGQ3MTk3 NAorQXV0aG9yOiBILkouIEx1IDxoamwudG9vbHNAZ21haWwuY29tPgorRGF0ZTogICBXZWQgTWFy IDMgMjA6MTk6NDggMjAxMCArMDAwMAorCisgICAgTWVudGlvbiBpbXByb3ZlbWVudCBmb3IgWDg2 IGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuCisgICAgCisgICAgMjAxMC0wMy0wMyAgSC5KLiBM dSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorICAgIAkgICAgRWxpIFphcmV0c2tpaSAgPGVsaXpA Z251Lm9yZz4KKyAgICAKKyAgICAJKiBORVdTOiBBZGQgWDg2IGdlbmVyYWwgcHVycG9zZSByZWdp c3RlcnMgc2VjdGlvbi4KKworLS0tIGdkYi03LjEtcDMvZ2RiL05FV1MJMjAxMC0wMy0xOCAyMjow MTo1NS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9ORVdTCTIwMTAtMDQtMDMgMjE6 MDc6NDYuMDAwMDAwMDAwICswMjAwCitAQCAtNDM4LDYgKzQzOCwxNCBAQCBHREIgd2lsbCBub3cg Y29ycmVjdGx5IGhhbmRsZSBhbGwgb2Y6CisgICAgIG5vdyBzdXBwb3J0IGhhcmR3YXJlIHdhdGNo cG9pbnRzLCBhbmQgd2lsbCB1c2UgdGhlbSBhdXRvbWF0aWNhbGx5CisgICAgIGFzIGFwcHJvcHJp YXRlLgorIAorKyogWDg2IGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMKKysKKysgIEdEQiBub3cg c3VwcG9ydHMgcmVhZGluZy93cml0aW5nIGJ5dGUsIHdvcmQgYW5kIGRvdWJsZS13b3JkIHg4Ngor KyAgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycyBkaXJlY3RseS4gIFRoaXMgbWVhbnMgeW91IGNh biB1c2UsIHNheSwKKysgICRhaCBvciAkYXggdG8gcmVmZXIsIHJlc3BlY3RpdmVseSwgdG8gdGhl IGJ5dGUgcmVnaXN0ZXIgQUggYW5kCisrICAxNi1iaXQgd29yZCByZWdpc3RlciBBWCB0aGF0IGFy ZSBhY3R1YWxseSBwb3J0aW9ucyBvZiB0aGUgMzItYml0CisrICByZWdpc3RlciBFQVggb3IgNjQt Yml0IHJlZ2lzdGVyIFJBWC4KKysKKyAqIFB5dGhvbiBzY3JpcHRpbmcKKyAKKyAgIEdEQiBub3cg aGFzIHN1cHBvcnQgZm9yIHNjcmlwdGluZyB1c2luZyBQeXRob24uICBXaGV0aGVyIHRoaXMgaXMK CmRpZmYgLS1naXQgYS9nZGItYno1NzgyNTAtYXZ4LTA2b2YxMC5wYXRjaCBiL2dkYi1iejU3ODI1 MC1hdngtMDZvZjEwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3 ZTU1ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1NzgyNTAtYXZ4LTA2b2YxMC5wYXRjaApA QCAtMCwwICsxLDM1IEBACitbIEJhY2twb3J0ZWQuICBdCisKK2NvbW1pdCA0OWY4ZDFjMjRjNjM5 ZDg5MWY1OGEzYjlmZWRhNDI1ODMzYjcwMmZiCitBdXRob3I6IEguSi4gTHUgPGhqbC50b29sc0Bn bWFpbC5jb20+CitEYXRlOiAgIEZyaSBNYXIgMTIgMTU6MTI6MzQgMjAxMCArMDAwMAorCisgICAg UmVzdG9yZSBzcCBmb3IgeDg2LgorICAgIAorICAgIDIwMTAtMDMtMTIgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKyAgICAKKyAgICAJKiBhbWQ2NC10ZGVwLmMgKGFtZDY0X3dvcmRf bmFtZXMpOiBSZXBsYWNlICJzcCIgd2l0aCAiIi4KKyAgICAJKiBpMzg2LXRkZXAuYyAoaTM4Nl93 b3JkX25hbWVzKTogTGlrZXdpc2UuCisKKy0tLSBnZGItNy4xLXA0L2dkYi9hbWQ2NC10ZGVwLmMJ MjAxMC0wNC0wMyAyMTowNjo1Mi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xL2dkYi9hbWQ2 NC10ZGVwLmMJMjAxMC0wNC0wMyAyMTowODoyMS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMjIsNyAr MjIyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmFtZDY0X2J5dGVfbmFtZXNbXSA9CisgCisgc3Rh dGljIGNvbnN0IGNoYXIgKmFtZDY0X3dvcmRfbmFtZXNbXSA9CisgeworLSAgImF4IiwgImJ4Iiwg ImN4IiwgImR4IiwgInNpIiwgImRpIiwgImJwIiwgInNwIiwgCisrICAiYXgiLCAiYngiLCAiY3gi LCAiZHgiLCAic2kiLCAiZGkiLCAiYnAiLCAiIiwgCisgICAicjh3IiwgInI5dyIsICJyMTB3Iiwg InIxMXciLCAicjEydyIsICJyMTN3IiwgInIxNHciLCAicjE1dyIKKyB9OworIAorLS0tIGdkYi03 LjEtcDQvZ2RiL2kzODYtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MDY6NTIuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuMS9nZGIvaTM4Ni10ZGVwLmMJMjAxMC0wNC0wMyAyMTowODoyMS4wMDAwMDAw MDAgKzAyMDAKK0BAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICppMzg2X2J5dGVf bmFtZXNbXSA9Cisgc3RhdGljIGNvbnN0IGNoYXIgKmkzODZfd29yZF9uYW1lc1tdID0KKyB7Cisg ICAiYXgiLCAiY3giLCAiZHgiLCAiYngiLAorLSAgInNwIiwgImJwIiwgInNpIiwgImRpIgorKyAg IiIsICJicCIsICJzaSIsICJkaSIKKyB9OworIAorIC8qIE1NWCByZWdpc3Rlcj8gICovCgpkaWZm IC0tZ2l0IGEvZ2RiLWJ6NTc4MjUwLWF2eC0wN29mMTAucGF0Y2ggYi9nZGItYno1NzgyNTAtYXZ4 LTA3b2YxMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzAyOWUw Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NTc4MjUwLWF2eC0wN29mMTAucGF0Y2gKQEAgLTAs MCArMSwxODMgQEAKK1sgQmFja3BvcnRlZC4gIF0KKworY29tbWl0IGQ1ZWE3MDQyMjEwZjVhZDMx OWFkMTk5MTBiY2UxM2ZkNTcxN2M2ZDYKK0F1dGhvcjogSC5KLiBMdSA8aGpsLnRvb2xzQGdtYWls LmNvbT4KK0RhdGU6ICAgVHVlIE1hciAzMCAxNTo0NTowOCAyMDEwICswMDAwCisKKyAgICBBZGQg eG1sUmVnaXN0ZXJzPSB0byBxU3VwcG9ydGVkIHBhY2tldC4KKyAgICAKKyAgICBnZGIvCisgICAg CisgICAgMjAxMC0wMy0zMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorICAgIAor ICAgIAkqIE5FV1M6IE1lbnRpb24geG1sUmVnaXN0ZXJzPSBpbiBxU3VwcG9ydGVkIHBhY2tldC4K KyAgICAKKyAgICAJKiBpMzg2LXRkZXAuYzogSW5jbHVkZSAicmVtb3RlLmgiLgorICAgIAkoX2lu aXRpYWxpemVfaTM4Nl90ZGVwKTogQ2FsbCByZWdpc3Rlcl9yZW1vdGVfc3VwcG9ydF94bWwuCisg ICAgCisgICAgCSogcmVtb3RlLmMgKHJlbW90ZV9zdXBwb3J0X3htbCk6IE5ldy4KKyAgICAJKHJl Z2lzdGVyX3JlbW90ZV9zdXBwb3J0X3htbCk6IExpa2V3aXNlLgorICAgIAkocmVtb3RlX3F1ZXJ5 X3N1cHBvcnRlZF9hcHBlbmQpOiBMaWtld2lzZS4KKyAgICAJKHJlbW90ZV9xdWVyeV9zdXBwb3J0 ZWQpOiBTdXBwb3J0IHJlbW90ZV9zdXBwb3J0X3htbC4KKyAgICAKKyAgICAJKiByZW1vdGUuaCAo cmVnaXN0ZXJfcmVtb3RlX3N1cHBvcnRfeG1sKTogTmV3LgorICAgIAorICAgIGdkYi9kb2MvCisg ICAgCisgICAgMjAxMC0wMy0zMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorICAg IAorICAgIAkqIGdkYi50ZXhpbmZvIChHZW5lcmFsIFF1ZXJ5IFBhY2tldHMpOiBBZGQgeG1sUmVn aXN0ZXJzLgorCistLS0gZ2RiLTcuMS1wNS9nZGIvTkVXUwkyMDEwLTA0LTAzIDIxOjA3OjQ2LjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL05FV1MJMjAxMC0wNC0wMyAyMToxMDowNi4w MDAwMDAwMDAgKzAyMDAKK0BAIC0xLDYgKzEsMTEgQEAKKyAJCVdoYXQgaGFzIGNoYW5nZWQgaW4g R0RCPworIAkgICAgIChPcmdhbml6ZWQgcmVsZWFzZSBieSByZWxlYXNlKQorIAorKyoqKiBDaGFu Z2VzIHNpbmNlIEdEQiA3LjEKKysKKysqIEdEQiBub3cgc2VuZHMgeG1sUmVnaXN0ZXJzPSBpbiBx U3VwcG9ydGVkIHBhY2tldCB0byBpbmRpY2F0ZSB0aGF0CisrICBpdCB1bmRlcnN0YW5kcyByZWdp c3RlciBkZXNjcmlwdGlvbi4KKysKKyAqKiogQ2hhbmdlcyBpbiBHREIgNy4xCisgCisgKiBDKysg SW1wcm92ZW1lbnRzCistLS0gZ2RiLTcuMS1wNS9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDQt MDMgMjE6MDQ6MTMuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvZG9jL2dkYi50ZXhp bmZvCTIwMTAtMDQtMDMgMjE6MDk6MjkuMDAwMDAwMDAwICswMjAwCitAQCAtMzAyOTIsNiArMzAy OTIsMTIgQEAgZXh0ZW5zaW9ucyB0byB0aGUgcmVtb3RlIHByb3RvY29sLiAgQHZhbAorIGV4dGVu c2lvbnMgdW5sZXNzIHRoZSBzdHViIGFsc28gcmVwb3J0cyB0aGF0IGl0IHN1cHBvcnRzIHRoZW0g YnkKKyBpbmNsdWRpbmcgQHNhbXB7bXVsdGlwcm9jZXNzK30gaW4gaXRzIEBzYW1we3FTdXBwb3J0 ZWR9IHJlcGx5LgorIEB4cmVme211bHRpcHJvY2VzcyBleHRlbnNpb25zfSwgZm9yIGRldGFpbHMu CisrCisrQGl0ZW0geG1sUmVnaXN0ZXJzCisrVGhpcyBmZWF0dXJlIGluZGljYXRlcyB0aGF0IEB2 YWx1ZXtHREJOfSBzdXBwb3J0cyB0aGUgWE1MIHRhcmdldAorK2Rlc2NyaXB0aW9uLiAgSWYgdGhl IHN0dWIgc2VlcyBAc2FtcHt4bWxSZWdpc3RlcnM9fSB3aXRoIHRhcmdldAorK3NwZWNpZmljIHN0 cmluZ3Mgc2VwYXJhdGVkIGJ5IGEgY29tbWEsIGl0IHdpbGwgcmVwb3J0IHJlZ2lzdGVyCisrZGVz Y3JpcHRpb24uCisgQGVuZCB0YWJsZQorIAorIFN0dWJzIHNob3VsZCBpZ25vcmUgYW55IHVua25v d24gdmFsdWVzIGZvcgorLS0tIGdkYi03LjEtcDUvZ2RiL2kzODYtdGRlcC5jCTIwMTAtMDQtMDMg MjE6MDg6MjEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvaTM4Ni10ZGVwLmMJMjAx MC0wNC0wMyAyMTowOToyOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC00NCw2ICs0NCw3IEBACisgI2lu Y2x1ZGUgInZhbHVlLmgiCisgI2luY2x1ZGUgImRpcy1hc20uaCIKKyAjaW5jbHVkZSAiZGlzYXNt LmgiCisrI2luY2x1ZGUgInJlbW90ZS5oIgorIAorICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCisg I2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKK0BAIC02MDAwLDQgKzYwMDEsNyBAQCBpcyBcImRlZmF1 bHRcIi4iKSwKKyAKKyAgIC8qIEluaXRpYWxpemUgdGhlIHN0YW5kYXJkIHRhcmdldCBkZXNjcmlw dGlvbnMuICAqLworICAgaW5pdGlhbGl6ZV90ZGVzY19pMzg2ICgpOworKworKyAgLyogVGVsbCBy ZW1vdGUgc3R1YiB0aGF0IHdlIHN1cHBvcnQgWE1MIHRhcmdldCBkZXNjcmlwdGlvbi4gICovCisr ICByZWdpc3Rlcl9yZW1vdGVfc3VwcG9ydF94bWwgKCJpMzg2Iik7CisgfQorLS0tIGdkYi03LjEt cDUvZ2RiL3JlbW90ZS5jCTIwMTAtMDQtMDMgMjA6MjQ6NTEuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTcuMS9nZGIvcmVtb3RlLmMJMjAxMC0wNC0wMyAyMTowOToyOS4wMDAwMDAwMDAgKzAyMDAK K0BAIC0zNDY3LDYgKzM0NjcsNTMgQEAgc3RhdGljIHN0cnVjdCBwcm90b2NvbF9mZWF0dXJlIHJl bW90ZV9wcgorICAgICBQQUNLRVRfYnMgfSwKKyB9OworIAorK3N0YXRpYyBjaGFyICpyZW1vdGVf c3VwcG9ydF94bWw7CisrCisrLyogUmVnaXN0ZXIgc3RyaW5nIGFwcGVuZGVkIHRvICJ4bWxSZWdp c3RlcnM9IiBpbiBxU3VwcG9ydGVkIHF1ZXJ5LiAgKi8KKysKKyt2b2lkCisrcmVnaXN0ZXJfcmVt b3RlX3N1cHBvcnRfeG1sIChjb25zdCBjaGFyICp4bWwgQVRUUklCVVRFX1VOVVNFRCkKKyt7Cisr I2lmIGRlZmluZWQoSEFWRV9MSUJFWFBBVCkKKysgIGlmIChyZW1vdGVfc3VwcG9ydF94bWwgPT0g TlVMTCkKKysgICAgcmVtb3RlX3N1cHBvcnRfeG1sID0gY29uY2F0ICgieG1sUmVnaXN0ZXJzPSIs IHhtbCwgTlVMTCk7CisrICBlbHNlCisrICAgIHsKKysgICAgICBjaGFyICpjb3B5ID0geHN0cmR1 cCAocmVtb3RlX3N1cHBvcnRfeG1sICsgMTMpOworKyAgICAgIGNoYXIgKnAgPSBzdHJ0b2sgKGNv cHksICIsIik7CisrCisrICAgICAgZG8KKysJeworKwkgIGlmIChzdHJjbXAgKHAsIHhtbCkgPT0g MCkKKysJICAgIHsKKysJICAgICAgLyogYWxyZWFkeSB0aGVyZSAqLworKwkgICAgICB4ZnJlZSAo Y29weSk7CisrCSAgICAgIHJldHVybjsKKysJICAgIH0KKysJfQorKyAgICAgIHdoaWxlICgocCA9 IHN0cnRvayAoTlVMTCwgIiwiKSkgIT0gTlVMTCk7CisrICAgICAgeGZyZWUgKGNvcHkpOworKwor KyAgICAgIHAgPSBjb25jYXQgKHJlbW90ZV9zdXBwb3J0X3htbCwgIiwiLCB4bWwsIE5VTEwpOwor KyAgICAgIHhmcmVlIChyZW1vdGVfc3VwcG9ydF94bWwpOworKyAgICAgIHJlbW90ZV9zdXBwb3J0 X3htbCA9IHA7CisrICAgIH0KKysjZW5kaWYKKyt9CisrCisrc3RhdGljIGNoYXIgKgorK3JlbW90 ZV9xdWVyeV9zdXBwb3J0ZWRfYXBwZW5kIChjaGFyICptc2csIGNvbnN0IGNoYXIgKmFwcGVuZCkK Kyt7CisrICBpZiAobXNnKQorKyAgICB7CisrICAgICAgY2hhciAqcCA9IGNvbmNhdCAobXNnLCAi OyIsIGFwcGVuZCwgTlVMTCk7CisrICAgICAgeGZyZWUgKG1zZyk7CisrICAgICAgcmV0dXJuIHA7 CisrICAgIH0KKysgIGVsc2UKKysgICAgcmV0dXJuIHhzdHJkdXAgKGFwcGVuZCk7CisrfQorKwor IHN0YXRpYyB2b2lkCisgcmVtb3RlX3F1ZXJ5X3N1cHBvcnRlZCAodm9pZCkKKyB7CitAQCAtMzQ4 NSwyNCArMzUzMiwyNyBAQCByZW1vdGVfcXVlcnlfc3VwcG9ydGVkICh2b2lkKQorICAgcnMtPmJ1 ZlswXSA9IDA7CisgICBpZiAocmVtb3RlX3Byb3RvY29sX3BhY2tldHNbUEFDS0VUX3FTdXBwb3J0 ZWRdLnN1cHBvcnQgIT0gUEFDS0VUX0RJU0FCTEUpCisgICAgIHsKKysgICAgICBjaGFyICpxID0g TlVMTDsKKyAgICAgICBjb25zdCBjaGFyICpxc3VwcG9ydGVkID0gZ2RiYXJjaF9xc3VwcG9ydGVk ICh0YXJnZXRfZ2RiYXJjaCk7CisrCisrICAgICAgaWYgKHJzLT5leHRlbmRlZCkKKysJcSA9IHJl bW90ZV9xdWVyeV9zdXBwb3J0ZWRfYXBwZW5kIChxLCAibXVsdGlwcm9jZXNzKyIpOworKyAgICAg IAorICAgICAgIGlmIChxc3VwcG9ydGVkKQorKwlxID0gcmVtb3RlX3F1ZXJ5X3N1cHBvcnRlZF9h cHBlbmQgKHEsIHFzdXBwb3J0ZWQpOworKworKyAgICAgIGlmIChyZW1vdGVfc3VwcG9ydF94bWwp CisrCXEgPSByZW1vdGVfcXVlcnlfc3VwcG9ydGVkX2FwcGVuZCAocSwgcmVtb3RlX3N1cHBvcnRf eG1sKTsKKysKKysgICAgICBpZiAocSkKKyAJeworLQkgIGNoYXIgKnE7CistCSAgaWYgKHJzLT5l eHRlbmRlZCkKKy0JICAgIHEgPSBjb25jYXQgKCJxU3VwcG9ydGVkOm11bHRpcHJvY2Vzcys7Iiwg cXN1cHBvcnRlZCwgTlVMTCk7CistCSAgZWxzZQorLQkgICAgcSA9IGNvbmNhdCAoInFTdXBwb3J0 ZWQ6IiwgcXN1cHBvcnRlZCwgTlVMTCk7CistCSAgcHV0cGt0IChxKTsKKysJICBjaGFyICpwID0g Y29uY2F0ICgicVN1cHBvcnRlZDoiLCBxLCBOVUxMKTsKKyAJICB4ZnJlZSAocSk7CisrCSAgcHV0 cGt0IChwKTsKKysJICB4ZnJlZSAocCk7CisgCX0KKyAgICAgICBlbHNlCistCXsKKy0JICBpZiAo cnMtPmV4dGVuZGVkKQorLQkgICAgcHV0cGt0ICgicVN1cHBvcnRlZDptdWx0aXByb2Nlc3MrIik7 CistCSAgZWxzZQorLQkgICAgcHV0cGt0ICgicVN1cHBvcnRlZCIpOworLQl9CisrCXB1dHBrdCAo InFTdXBwb3J0ZWQiKTsKKyAKKyAgICAgICBnZXRwa3QgKCZycy0+YnVmLCAmcnMtPmJ1Zl9zaXpl LCAwKTsKKyAKKy0tLSBnZGItNy4xLXA1L2dkYi9yZW1vdGUuaAkyMDEwLTAxLTAxIDA4OjMxOjQx LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEvZ2RiL3JlbW90ZS5oCTIwMTAtMDQtMDMgMjE6 MDk6MjkuMDAwMDAwMDAwICswMjAwCitAQCAtNjYsNiArNjYsNyBAQCBleHRlcm4gdm9pZCAoKmRl cHJlY2F0ZWRfdGFyZ2V0X3dhaXRfbG9vCisgCisgdm9pZCByZWdpc3Rlcl9yZW1vdGVfZ19wYWNr ZXRfZ3Vlc3MgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgYnl0ZXMsCisgCQkJCSAgICAg Y29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICp0ZGVzYyk7Cisrdm9pZCByZWdpc3Rlcl9yZW1vdGVf c3VwcG9ydF94bWwgKGNvbnN0IGNoYXIgKik7CisgCisgdm9pZCByZW1vdGVfZmlsZV9wdXQgKGNv bnN0IGNoYXIgKmxvY2FsX2ZpbGUsIGNvbnN0IGNoYXIgKnJlbW90ZV9maWxlLAorIAkJICAgICAg aW50IGZyb21fdHR5KTsKCmRpZmYgLS1naXQgYS9nZGItYno1NzgyNTAtYXZ4LTA4b2YxMC5wYXRj aCBiL2dkYi1iejU3ODI1MC1hdngtMDhvZjEwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjRmMWU0YWIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1NzgyNTAtYXZ4 LTA4b2YxMC5wYXRjaApAQCAtMCwwICsxLDMyIEBACitbIEJhY2twb3J0ZWQuICBdCisKK2NvbW1p dCA2ODQzNDEzOTJmM2NhNjcwM2RjMjhkYWM1NDhkMzA1MTgxMWJmZjQ3CitBdXRob3I6IEguSi4g THUgPGhqbC50b29sc0BnbWFpbC5jb20+CitEYXRlOiAgIFR1ZSBNYXIgMzAgMTg6Mzc6MDMgMjAx MCArMDAwMAorCisgICAgQWRkIG9yZy5nbnUuZ2RiLmkzODYuYXZ4LgorICAgIAorICAgIDIwMTAt MDMtMzAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKyAgICAKKyAgICAJKiBnZGIu dGV4aW5mbyAoaTM4NiBGZWF0dXJlcyk6IEFkZCBvcmcuZ251LmdkYi5pMzg2LmF2eC4KKworLS0t IGdkYi03LjEtcDYvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEwLTA0LTAzIDIxOjA5OjI5LjAwMDAw MDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEwLTA0LTAzIDIx OjEwOjU3LjAwMDAwMDAwMCArMDIwMAorQEAgLTMzMzgwLDYgKzMzMzgwLDE3IEBAIGRlc2NyaWJl IHJlZ2lzdGVyczoKKyBAc2FtcHtteGNzcn0KKyBAZW5kIGl0ZW1pemUKKyAKKytUaGUgQHNhbXB7 b3JnLmdudS5nZGIuaTM4Ni5hdnh9IGZlYXR1cmUgaXMgb3B0aW9uYWwuICBJdCBzaG91bGQKKytk ZXNjcmliZSB0aGUgdXBwZXIgMTI4IGJpdHMgb2YgQHNje3ltbX0gcmVnaXN0ZXJzOgorKworK0Bp dGVtaXplIEBtaW51cworK0BpdGVtCisrQHNhbXB7eW1tMGh9IHRocm91Z2ggQHNhbXB7eW1tN2h9 IGZvciBpMzg2CisrQGl0ZW0KKytAc2FtcHt5bW0waH0gdGhyb3VnaCBAc2FtcHt5bW0xNWh9IGZv ciBhbWQ2NAorK0BpdGVtIAorK0BlbmQgaXRlbWl6ZQorKworIFRoZSBAc2FtcHtvcmcuZ251Lmdk Yi5pMzg2LmxpbnV4fSBmZWF0dXJlIGlzIG9wdGlvbmFsLiAgSXQgc2hvdWxkCisgZGVzY3JpYmUg YSBzaW5nbGUgcmVnaXN0ZXIsIEBzYW1we29yaWdfZWF4fS4KKyAKCmRpZmYgLS1naXQgYS9nZGIt Yno1NzgyNTAtYXZ4LTA5b2YxMC5wYXRjaCBiL2dkYi1iejU3ODI1MC1hdngtMDlvZjEwLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3YTQxYjEKLS0tIC9kZXYvbnVs bAorKysgYi9nZGItYno1NzgyNTAtYXZ4LTA5b2YxMC5wYXRjaApAQCAtMCwwICsxLDE4MyBAQAor WyBCYWNrcG9ydGVkLiAgXQorCitjb21taXQgNTM2MmU1ZTFkYzRjZmFjMjRmYmQ1ODc3M2FhYTdh ODJjNjE1YjY2MgorQXV0aG9yOiBILkouIEx1IDxoamwudG9vbHNAZ21haWwuY29tPgorRGF0ZTog ICBUaHUgQXByIDEgMjA6MDI6MDcgMjAxMCArMDAwMAorCisgICAgU3VwcG9ydCAiYWgiLCAiYmgi LCAiY2giLCAiZGgiIG9uIGFtZDY0LgorICAgIAorICAgIGdkYi8KKyAgICAKKyAgICAyMDEwLTA0 LTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisgICAgCisgICAgCSogYW1kNjQt dGRlcC5jIChhbWQ2NF9ieXRlX25hbWVzKTogQWRkICJhaCIsICJiaCIsICJjaCIsICJkaCIuCisg ICAgCShBTUQ2NF9OVU1fTE9XRVJfQllURV9SRUdTKTogTmV3LgorICAgIAkoYW1kNjRfcHNldWRv X3JlZ2lzdGVyX3JlYWQpOiBIYW5kbGUgImFoIiwgImJoIiwgImNoIiwgImRoIi4KKyAgICAJKGFt ZDY0X3BzZXVkb19yZWdpc3Rlcl93cml0ZSk6IExpa2V3aXNlLgorICAgIAkoYW1kNjRfaW5pdF9h YmkpOiBTZXQgbnVtX2J5dGVfcmVncyB0byAyMC4KKyAgICAKKyAgICBnZGIvdGVzdHN1aXRlLwor ICAgIAorICAgIDIwMTAtMDQtMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKyAg ICAKKyAgICAJKiBnZGIuYXJjaC9hbWQ2NC1ieXRlLmV4cDogQ2hlY2sgImFoIiwgImJoIiwgImNo IiwgImRoIi4KKworLS0tIGdkYi03LjEtcDcvZ2RiL2FtZDY0LXRkZXAuYwkyMDEwLTA0LTAzIDIx OjA4OjIxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2FtZDY0LXRkZXAuYwkyMDEw LTA0LTAzIDIxOjExOjQxLjAwMDAwMDAwMCArMDIwMAorQEAgLTIxNSw5ICsyMTUsMTMgQEAgYW1k NjRfYXJjaF9yZWdfdG9fcmVnbnVtIChpbnQgcmVnKQorIHN0YXRpYyBjb25zdCBjaGFyICphbWQ2 NF9ieXRlX25hbWVzW10gPQorIHsKKyAgICJhbCIsICJibCIsICJjbCIsICJkbCIsICJzaWwiLCAi ZGlsIiwgImJwbCIsICJzcGwiLAorLSAgInI4bCIsICJyOWwiLCAicjEwbCIsICJyMTFsIiwgInIx MmwiLCAicjEzbCIsICJyMTRsIiwgInIxNWwiCisrICAicjhsIiwgInI5bCIsICJyMTBsIiwgInIx MWwiLCAicjEybCIsICJyMTNsIiwgInIxNGwiLCAicjE1bCIsCisrICAiYWgiLCAiYmgiLCAiY2gi LCAiZGgiCisgfTsKKyAKKysvKiBOdW1iZXIgb2YgbG93ZXIgYnl0ZSByZWdpc3RlcnMuICAqLwor KyNkZWZpbmUgQU1ENjRfTlVNX0xPV0VSX0JZVEVfUkVHUyAxNgorKworIC8qIFJlZ2lzdGVyIG5h bWVzIGZvciB3b3JkIHBzZXVkby1yZWdpc3RlcnMuICAqLworIAorIHN0YXRpYyBjb25zdCBjaGFy ICphbWQ2NF93b3JkX25hbWVzW10gPQorQEAgLTI2Myw4ICsyNjcsMTggQEAgYW1kNjRfcHNldWRv X3JlZ2lzdGVyX3JlYWQgKHN0cnVjdCBnZGJhcgorICAgICAgIGludCBncG51bSA9IHJlZ251bSAt IHRkZXAtPmFsX3JlZ251bTsKKyAKKyAgICAgICAvKiBFeHRyYWN0IChhbHdheXMgbGl0dGxlIGVu ZGlhbikuICAqLworLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgZ3BudW0sIHJh d19idWYpOworLSAgICAgIG1lbWNweSAoYnVmLCByYXdfYnVmLCAxKTsKKysgICAgICBpZiAoZ3Bu dW0gPj0gQU1ENjRfTlVNX0xPV0VSX0JZVEVfUkVHUykKKysJeworKwkgIC8qIFNwZWNpYWwgaGFu ZGxpbmcgZm9yIEFILCBCSCwgQ0gsIERILiAgKi8KKysJICByZWdjYWNoZV9yYXdfcmVhZCAocmVn Y2FjaGUsCisrCQkJICAgICBncG51bSAtIEFNRDY0X05VTV9MT1dFUl9CWVRFX1JFR1MsIHJhd19i dWYpOworKwkgIG1lbWNweSAoYnVmLCByYXdfYnVmICsgMSwgMSk7CisrCX0KKysgICAgICBlbHNl CisrCXsKKysJICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIGdwbnVtLCByYXdfYnVmKTsK KysJICBtZW1jcHkgKGJ1ZiwgcmF3X2J1ZiwgMSk7CisrCX0KKyAgICAgfQorICAgZWxzZSBpZiAo aTM4Nl9kd29yZF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKyAgICAgeworQEAgLTI4OSwx MiArMzAzLDI2IEBAIGFtZDY0X3BzZXVkb19yZWdpc3Rlcl93cml0ZSAoc3RydWN0IGdkYmEKKyAg ICAgeworICAgICAgIGludCBncG51bSA9IHJlZ251bSAtIHRkZXAtPmFsX3JlZ251bTsKKyAKKy0g ICAgICAvKiBSZWFkIC4uLiAgKi8KKy0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUs IGdwbnVtLCByYXdfYnVmKTsKKy0gICAgICAvKiAuLi4gTW9kaWZ5IC4uLiAoYWx3YXlzIGxpdHRs ZSBlbmRpYW4pLiAgKi8KKy0gICAgICBtZW1jcHkgKHJhd19idWYsIGJ1ZiwgMSk7CistICAgICAg LyogLi4uIFdyaXRlLiAgKi8KKy0gICAgICByZWdjYWNoZV9yYXdfd3JpdGUgKHJlZ2NhY2hlLCBn cG51bSwgcmF3X2J1Zik7CisrICAgICAgaWYgKGdwbnVtID49IEFNRDY0X05VTV9MT1dFUl9CWVRF X1JFR1MpCisrCXsKKysJICAvKiBSZWFkIC4uLiBBSCwgQkgsIENILCBESC4gICovCisrCSAgcmVn Y2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLAorKwkJCSAgICAgZ3BudW0gLSBBTUQ2NF9OVU1fTE9X RVJfQllURV9SRUdTLCByYXdfYnVmKTsKKysJICAvKiAuLi4gTW9kaWZ5IC4uLiAoYWx3YXlzIGxp dHRsZSBlbmRpYW4pLiAgKi8KKysJICBtZW1jcHkgKHJhd19idWYgKyAxLCBidWYsIDEpOworKwkg IC8qIC4uLiBXcml0ZS4gICovCisrCSAgcmVnY2FjaGVfcmF3X3dyaXRlIChyZWdjYWNoZSwKKysJ CQkgICAgICBncG51bSAtIEFNRDY0X05VTV9MT1dFUl9CWVRFX1JFR1MsIHJhd19idWYpOworKwl9 CisrICAgICAgZWxzZQorKwl7CisrCSAgLyogUmVhZCAuLi4gICovCisrCSAgcmVnY2FjaGVfcmF3 X3JlYWQgKHJlZ2NhY2hlLCBncG51bSwgcmF3X2J1Zik7CisrCSAgLyogLi4uIE1vZGlmeSAuLi4g KGFsd2F5cyBsaXR0bGUgZW5kaWFuKS4gICovCisrCSAgbWVtY3B5IChyYXdfYnVmLCBidWYsIDEp OworKwkgIC8qIC4uLiBXcml0ZS4gICovCisrCSAgcmVnY2FjaGVfcmF3X3dyaXRlIChyZWdjYWNo ZSwgZ3BudW0sIHJhd19idWYpOworKwl9CisgICAgIH0KKyAgIGVsc2UgaWYgKGkzODZfZHdvcmRf cmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisgICAgIHsKK0BAIC0yMjMzLDcgKzIyNjEsNyBA QCBhbWQ2NF9pbml0X2FiaSAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbmZvCisgICB0ZGVwLT5udW1f Y29yZV9yZWdzID0gQU1ENjRfTlVNX0dSRUdTICsgSTM4N19OVU1fUkVHUzsKKyAgIHRkZXAtPnJl Z2lzdGVyX25hbWVzID0gYW1kNjRfcmVnaXN0ZXJfbmFtZXM7CisgCistICB0ZGVwLT5udW1fYnl0 ZV9yZWdzID0gMTY7CisrICB0ZGVwLT5udW1fYnl0ZV9yZWdzID0gMjA7CisgICB0ZGVwLT5udW1f d29yZF9yZWdzID0gMTY7CisgICB0ZGVwLT5udW1fZHdvcmRfcmVncyA9IDE2OworICAgLyogQXZv aWQgd2lyaW5nIGluIHRoZSBNTVggcmVnaXN0ZXJzIGZvciBub3cuICAqLworLS0tIGdkYi03LjEt cDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC1ieXRlLmV4cAkyMDEwLTA0LTAzIDIxOjA2 OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9h bWQ2NC1ieXRlLmV4cAkyMDEwLTA0LTAzIDIxOjExOjQxLjAwMDAwMDAwMCArMDIwMAorQEAgLTUy LDcgKzUyLDYgQEAgaWYgIVtydW50b19tYWluXSB0aGVuIHsKKyAgICAgZ2RiX3N1cHByZXNzX3Rl c3RzCisgfQorIAorLXNldCBucl9yZWdzIDE0Cisgc2V0IGJ5dGVfcmVncygxKSBhbAorIHNldCBi eXRlX3JlZ3MoMikgYmwKKyBzZXQgYnl0ZV9yZWdzKDMpIGNsCitAQCAtNjcsNiArNjYsMTAgQEAg c2V0IGJ5dGVfcmVncygxMSkgcjEybAorIHNldCBieXRlX3JlZ3MoMTIpIHIxM2wKKyBzZXQgYnl0 ZV9yZWdzKDEzKSByMTRsCisgc2V0IGJ5dGVfcmVncygxNCkgcjE1bAorK3NldCBieXRlX3JlZ3Mo MTUpIGFoCisrc2V0IGJ5dGVfcmVncygxNikgYmgKKytzZXQgYnl0ZV9yZWdzKDE3KSBjaAorK3Nl dCBieXRlX3JlZ3MoMTgpIGRoCisgCisgZ2RiX3Rlc3QgImJyZWFrIFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJmaXJzdCBicmVha3BvaW50IGhlcmUiXSIgXAorICAgICAgICAgICJCcmVha3BvaW50IC4q IGF0IC4qJHtzcmNmaWxlfS4qIiBcCitAQCAtNzksMTIgKzgyLDE5IEBAIGZvciB7IHNldCByIDEg fSB7ICRyIDw9IDYgIH0geyBpbmNyIHIgfSAKKyAgICAgICAgICJjaGVjayBjb250ZW50cyBvZiAl JGJ5dGVfcmVncygkcikiCisgfQorIAorK2ZvciB7IHNldCByIDEgfSB7ICRyIDw9IDQgIH0geyBp bmNyIHIgfSB7CisrICAgIHNldCBoIFtleHByICRyICsgMTRdCisrICAgIGdkYl90ZXN0ICJwcmlu dC94IFwkJGJ5dGVfcmVncygkaCkiIFwKKysgICAgICAgICIuLiA9IDB4W2Zvcm1hdCAleCAkcl0y IiBcCisrICAgICAgICAiY2hlY2sgY29udGVudHMgb2YgJSRieXRlX3JlZ3MoJGgpIgorK30KKysK KyBnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRfbGluZV9udW1iZXIgInNlY29uZCBicmVha3BvaW50 IGhlcmUiXSIgXAorICAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBc CisgICAgICAgICAgInNldCBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorIGdkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgor IAorLWZvciB7IHNldCByIDcgfSB7ICRyIDw9ICRucl9yZWdzICB9IHsgaW5jciByIH0geworK2Zv ciB7IHNldCByIDcgfSB7ICRyIDw9IDE0ICB9IHsgaW5jciByIH0geworICAgICBnZGJfdGVzdCAi cHJpbnQveCBcJCRieXRlX3JlZ3MoJHIpIiBcCisgICAgICAgICAiLi4gPSAweFtmb3JtYXQgJXgg JHJdMSIgXAorICAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRyKSIKK0BA IC05NCw2ICsxMDQsMTEgQEAgZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNiAgfSB7IGluY3IgciB9 IAorICAgZ2RiX3Rlc3QgInNldCB2YXIgXCQkYnl0ZV9yZWdzKCRyKSA9ICRyIiAiIiAic2V0ICUk Ynl0ZV9yZWdzKCRyKSIKKyB9CisgCisrZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNCAgfSB7IGlu Y3IgciB9IHsKKysgIHNldCBoIFtleHByICRyICsgMTRdCisrICBnZGJfdGVzdCAic2V0IHZhciBc JCRieXRlX3JlZ3MoJGgpID0gJGgiICIiICJzZXQgJSRieXRlX3JlZ3MoJGgpIgorK30KKysKKyBn ZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRfbGluZV9udW1iZXIgInRoaXJkIGJyZWFrcG9pbnQgaGVy ZSJdIiBcCisgICAgICAgICAgIkJyZWFrcG9pbnQgLiogYXQgLioke3NyY2ZpbGV9LioiIFwKKyAg ICAgICAgICAic2V0IHRoaXJkIGJyZWFrcG9pbnQgaW4gbWFpbiIKK0BAIC0xMDUsNyArMTIwLDE0 IEBAIGZvciB7IHNldCByIDEgfSB7ICRyIDw9IDYgIH0geyBpbmNyIHIgfSAKKyAgICAgICAgICJj aGVjayBjb250ZW50cyBvZiAlJGJ5dGVfcmVncygkcikiCisgfQorIAorLWZvciB7IHNldCByIDcg fSB7ICRyIDw9ICRucl9yZWdzICB9IHsgaW5jciByIH0geworK2ZvciB7IHNldCByIDEgfSB7ICRy IDw9IDQgIH0geyBpbmNyIHIgfSB7CisrICAgIHNldCBoIFtleHByICRyICsgMTRdCisrICAgIGdk Yl90ZXN0ICJwcmludCBcJCRieXRlX3JlZ3MoJGgpIiBcCisrICAgICAgICAiLi4gPSAkaCIgXAor KyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRoKSIKKyt9CisrCisrZm9y IHsgc2V0IHIgNyB9IHsgJHIgPD0gMTQgIH0geyBpbmNyIHIgfSB7CisgICBnZGJfdGVzdCAic2V0 IHZhciBcJCRieXRlX3JlZ3MoJHIpID0gJHIiICIiICJzZXQgJSRieXRlX3JlZ3MoJHIpIgorIH0K KyAKK0BAIC0xMTQsNyArMTM2LDcgQEAgZ2RiX3Rlc3QgImJyZWFrIFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJmbworICAgICAgICAgICJzZXQgZm9ydGggYnJlYWtwb2ludCBpbiBtYWluIgorIGdkYl9j b250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byBmb3J0aCBicmVha3BvaW50IGluIG1h aW4iCisgCistZm9yIHsgc2V0IHIgNyB9IHsgJHIgPD0gJG5yX3JlZ3MgIH0geyBpbmNyIHIgfSB7 CisrZm9yIHsgc2V0IHIgNyB9IHsgJHIgPD0gMTQgIH0geyBpbmNyIHIgfSB7CisgICAgIGdkYl90 ZXN0ICJwcmludCBcJCRieXRlX3JlZ3MoJHIpIiBcCisgICAgICAgICAiLi4gPSAkciIgXAorICAg ICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRyKSIKCmRpZmYgLS1naXQgYS9n ZGItYno1NzgyNTAtYXZ4LTEwb2YxMC1wcGMucGF0Y2ggYi9nZGItYno1NzgyNTAtYXZ4LTEwb2Yx MC1wcGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzVjZTI3NQot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejU3ODI1MC1hdngtMTBvZjEwLXBwYy5wYXRjaApAQCAt MCwwICsxLDE2IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0w NC9tc2cwMDA1Ni5odG1sCisKK2xpbnV4LXBwYy1sb3cuYzo1OTk6IGVycm9yOiBpbmNvbXBhdGli bGUgdHlwZXMgd2hlbiBpbml0aWFsaXppbmcgdHlwZSDigJhlbnVtIHJlZ3NldF90eXBl4oCZIHVz aW5nIHR5cGUg4oCYdm9pZCAoKikoc3RydWN0IHJlZ2NhY2hlICosIHZvaWQgKinigJkKK2xpbnV4 LXBwYy1sb3cuYzo1OTk6IHdhcm5pbmc6IGluaXRpYWxpemF0aW9uIGZyb20gaW5jb21wYXRpYmxl IHBvaW50ZXIgdHlwZQorCistLS0gYS9nZGIvZ2Ric2VydmVyL2xpbnV4LXBwYy1sb3cuYworKysr IGIvZ2RiL2dkYnNlcnZlci9saW51eC1wcGMtbG93LmMKK0BAIC01OTQsNyArNTk0LDcgQEAgc3Ry dWN0IHJlZ3NldF9pbmZvIHRhcmdldF9yZWdzZXRzW10gPSB7CisgICAgICBQUENfUFRSQUNFX0dF VFJFR1MuICAqLworICAgeyBQVFJBQ0VfR0VUVlNYUkVHUywgUFRSQUNFX1NFVFZTWFJFR1MsIDAs IFNJWkVPRl9WU1hSRUdTLCBFWFRFTkRFRF9SRUdTLAorICAgcHBjX2ZpbGxfdnN4cmVnc2V0LCBw cGNfc3RvcmVfdnN4cmVnc2V0IH0sCistICB7IFBUUkFDRV9HRVRWUlJFR1MsIFBUUkFDRV9TRVRW UlJFR1MsIFNJWkVPRl9WUlJFR1MsIEVYVEVOREVEX1JFR1MsCisrICB7IFBUUkFDRV9HRVRWUlJF R1MsIFBUUkFDRV9TRVRWUlJFR1MsIDAsIFNJWkVPRl9WUlJFR1MsIEVYVEVOREVEX1JFR1MsCisg ICAgIHBwY19maWxsX3ZycmVnc2V0LCBwcGNfc3RvcmVfdnJyZWdzZXQgfSwKKyAgIHsgUFRSQUNF X0dFVEVWUlJFR1MsIFBUUkFDRV9TRVRFVlJSRUdTLCAwLCAzMiAqIDQgKyA4ICsgNCwgRVhURU5E RURfUkVHUywKKyAgICAgcHBjX2ZpbGxfZXZycmVnc2V0LCBwcGNfc3RvcmVfZXZycmVnc2V0IH0s CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTc4MjUwLWF2eC0xMG9mMTAucGF0Y2ggYi9nZGItYno1Nzgy NTAtYXZ4LTEwb2YxMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40 MTE5NmMzCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NTc4MjUwLWF2eC0xMG9mMTAucGF0Y2gK QEAgLTAsMCArMSw4MjcxIEBACitbIEJhY2twb3J0ZWQuICBdCisKK2dpdDovL2dpdC5rZXJuZWwu b3JnL3B1Yi9zY20vZGV2ZWwvZ2RiL2hqbC9hdnguZ2l0CitoamwvYXZ4aAorYWViYWUzNmMyYThi NzNhZTUxMzE5ZmZmNTRmYzM5ZjIyMGYwODI0YQorCistLS0gLi9iZmQvQ2hhbmdlTG9nLnhzdGF0 ZQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vYmZkL0NoYW5nZUxv Zy54c3RhdGUJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEs MTQgQEAKKysyMDEwLTAxLTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogZWxmLmMgKGVsZmNvcmVfZ3Jva19ub3RlKTogUmVwbGFjZSBOVF8zODZfWFNUQVRFIHdpdGgK KysJTlRfWDg2X1hTVEFURS4KKysJKGVsZmNvcmVfd3JpdGVfeHN0YXRlcmVnKTogTGlrZXdpc2Uu CisrCisrMjAxMC0wMS0yNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkq IGVsZi1iZmQuaCAoZWxmY29yZV93cml0ZV94c3RhdGVyZWcpOiBOZXcuCisrCisrCSogZWxmLmMg KGVsZmNvcmVfZ3Jva194c3RhdGVyZWcpOiBOZXcuCisrCShlbGZjb3JlX3dyaXRlX3hzdGF0ZXJl Zyk6IExpa2V3aXNlLgorKwkoZWxmY29yZV9ncm9rX25vdGUpOiBIYW5kbGUgTlRfMzg2X1hTVEFU RS4KKysJKGVsZmNvcmVfd3JpdGVfcmVnaXN0ZXJfbm90ZSk6IEhhbmRsZSAucmVnLXhzdGF0ZSBz ZWN0aW9uLgorLS0tIC4vZ2RiL0NoYW5nZUxvZy5hdngJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyAuL2dkYi9DaGFuZ2VMb2cuYXZ4CTIwMTAtMDQtMDMgMjE6MTI6MzIu MDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDMwNiBAQAorKzIwMTAtMDMtMDQgIEguSi4gTHUg IDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBjb21tb24vaTM4Ni14c3RhdGUuaCAoSTM4 Nl9YU1RBVEVfU1NFX01BU0tfU1RSSU5HKTogUmVtb3ZlZC4KKysJKEkzODZfWFNUQVRFX0FWWF9N QVNLX1NUUklORyk6IExpa2V3aXNlLgorKwkoSTM4Nl9YU1RBVEVfTUFYX01BU0tfU1RSSU5HKTog TGlrZXdpc2UuCisrCShJMzg2X1hTVEFURV9TU0VfU0laRV9TVFJJTkcpOiBMaWtld2lzZS4KKysJ KEkzODZfWFNUQVRFX0FWWF9TSVpFX1NUUklORyk6IExpa2V3aXNlLgorKwkoSTM4Nl9YU1RBVEVf TUFYX1NJWkVfU1RSSU5HKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2Ri YXJjaF9pbml0KTogUmVwbGFjZQorKwlJMzg2X1hTVEFURV9NQVhfU0laRV9TVFJJTkcvSTM4Nl9Y U1RBVEVfTUFYX01BU0tfU1RSSU5HIHdpdGgKKysJSTM4Nl9YU1RBVEVfTUFYX1NJWkUvSTM4Nl9Y U1RBVEVfTUFYX01BU0suCisrCisrMjAxMC0wMy0wNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfc3VwcGx5X3hzdGF0ZXJlZ3NldCk6 IERvbid0IGNoZWNrCisrCXNpemVvZl94c3RhdGVyZWdzZXQuCisrCShhbWQ2NF9jb2xsZWN0X3hz dGF0ZXJlZ3NldCk6IExpa2V3aXNlLgorKwkoYW1kNjRfcmVnc2V0X2Zyb21fY29yZV9zZWN0aW9u KTogTGlrZXdpc2UuCisrCShhbWQ2NF9pbml0X2FiaSk6IERvbid0IHNldCBzaXplb2ZfeHN0YXRl cmVnc2V0LgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3N1cHBseV94c3RhdGVyZWdzZXQpOiBE b24ndCBjaGVjaworKwlzaXplb2ZfeHN0YXRlcmVnc2V0LgorKwkoaTM4Nl9jb2xsZWN0X3hzdGF0 ZXJlZ3NldCk6IExpa2V3aXNlLgorKwkoaTM4Nl9yZWdzZXRfZnJvbV9jb3JlX3NlY3Rpb24pOiBM aWtld2lzZS4KKysJKGkzODZfZ2RiYXJjaF9pbml0KTogRG9uJ3Qgc2V0IHNpemVvZl94c3RhdGVy ZWdzZXQuCisrCisrCSogaTM4Ni10ZGVwLmggKGdkYmFyY2hfdGRlcCk6IFJlbW92ZSBzaXplb2Zf eHN0YXRlcmVnc2V0LgorKworKzIwMTAtMDMtMDQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfcmVhZF9kZXNjcmlw dGlvbik6IENhbGwKKysJaTM4Nl9saW51eF91cGRhdGVfeHN0YXRlcmVnc2V0LgorKwkqIGkzODYt bGludXgtbmF0LmMgKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IExpa2V3aXNlLgorKwor KwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2xpbnV4X3VwZGF0ZV94c3RhdGVyZWdzZXQpOiBO ZXcuCisrCSogaTM4Ni1saW51eC10ZGVwLmggKGkzODZfbGludXhfdXBkYXRlX3hzdGF0ZXJlZ3Nl dCk6IExpa2V3aXNlLgorKworKzIwMTAtMDMtMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoeHN0YXRlX3NpemUpOiBOZXcuCisrCSh4 c3RhdGVfc2l6ZV9uX29mX2ludDY0KTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51eF9mZXRjaF9p bmZlcmlvcl9yZWdpc3RlcnMpOiBVcGRhdGVkLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJp b3JfcmVnaXN0ZXJzKTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9u KTogVXNlIEkzODZfWFNUQVRFX1NTRV9TSVpFCisrCWluc3RlYWQgb2YgSTM4Nl9YU1RBVEVfTUFY X1NJWkUuICBTZXQgeHN0YXRlX3NpemUgYW5kCisrCXhzdGF0ZV9zaXplX25fb2ZfaW50NjQuCisr CisrCSogaTM4Ni1saW51eC1uYXQuYyAoeHN0YXRlX3NpemUpOiBOZXcuCisrCSh4c3RhdGVfc2l6 ZV9uX29mX2ludDY0KTogTGlrZXdpc2UuCisrCShmZXRjaF94c3RhdGVyZWdzKTogVXBkYXRlZC4K KysJKHN0b3JlX3hzdGF0ZXJlZ3MpOiBMaWtld2lzZS4KKysJKGkzODZfbGludXhfcmVhZF9kZXNj cmlwdGlvbik6IFVzZSBJMzg2X1hTVEFURV9TU0VfU0laRQorKwlpbnN0ZWFkIG9mIEkzODZfWFNU QVRFX01BWF9TSVpFLiAgU2V0IHhzdGF0ZV9zaXplIGFuZAorKwl4c3RhdGVfc2l6ZV9uX29mX2lu dDY0LgorKworKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5oIChJMzg2X1hTVEFURV9TSVpFKTogTmV3 LgorKworKzIwMTAtMDMtMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBjb25maWcvZGpncHAvZm5jaGFuZ2UubHN0OiBBZGQgeDg2IEFWWCBYTUwgZmlsZXMuCisrCisr MjAxMC0wMy0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0 LWxpbnV4LW5hdC5jIChYU1RBVEVfTUFYX1NJWkVfTl9PRl9JTlQ2NCk6IE5ldy4KKysJKGFtZDY0 X2xpbnV4X2ZldGNoX2luZmVyaW9yX3JlZ2lzdGVycyk6IFVwZGF0ZWQuCisrCShhbWQ2NF9saW51 eF9zdG9yZV9pbmZlcmlvcl9yZWdpc3RlcnMpOiBMaWtld2lzZS4KKysJKGFtZDY0X2xpbnV4X3Jl YWRfZGVzY3JpcHRpb24pOiBMaWtld2lzZS4KKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKGFtZDY0 X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IExpa2V3aXNlLgorKworKwkqIGkzODYtbGlu dXgtbmF0LmMgIChYU1RBVEVfTUFYX1NJWkVfTl9PRl9JTlQ2NCk6IE5ldy4KKysJKGZldGNoX3hz dGF0ZXJlZ3MpOiBVcGRhdGVkLgorKwkoc3RvcmVfeHN0YXRlcmVncyk6IExpa2V3aXNlLgorKwko aTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni1saW51 eC10ZGVwLmMgKGkzODZfbGludXhfY29yZV9yZWFkX3hjcjApOiBVcGRhdGVkLgorKwkoaTM4Nl9s aW51eF9jb3JlX3JlYWRfeGNyMCk6IExpa2V3aXNlLgorKwkoaTM4Nl9saW51eF9jb3JlX3JlYWRf ZGVzY3JpcHRpb24pOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9yZWdpc3Rl cl9yZWdncm91cF9wKTogVXBkYXRlZC4KKysJKGkzODZfdmFsaWRhdGVfdGRlc2NfcCk6IExpa2V3 aXNlLgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBMaWtld2lzZS4KKysKKysJKiBpMzg3LXRkZXAu YyAoaTM4N19zdXBwbHlfZnhzYXZlKTogVXBkYXRlZC4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6 IExpa2V3aXNlLgorKworKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5oOiBDaGFuZ2UgWFNUQVRFIHRv IEkzODZfWFNUQVRFIGluIG1hY3Jvcy4KKysKKysyMDEwLTAzLTAyICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogTWFrZWZpbGUuaW4gKGkzODYteHN0YXRlLm8pOiBSZW1v dmVkLgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlv cl9yZWdpc3RlcnMpOiBVc2UKKysJWFNUQVRFX01BWF9TSVpFX05fT0ZfSU5UNjQgYW5kIFhTVEFU RV9NQVhfU0laRS4KKysJKGFtZDY0X2xpbnV4X3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyk6IExp a2V3aXNlLgorKwkoYW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IEFkZCBzdGF0aWMgeGNy MCBhbmQgZ2V0IGl0CisrCWZyb20gSTM4Nl9MSU5VWF9YU0FWRV9YQ1IwX09GRlNFVC4gIFVzZSBY U1RBVEVfTUFYX1NJWkVfTl9PRl9JTlQ2NAorKwlhbmQgWFNUQVRFX01BWF9TSVpFLgorKwkoX2lu aXRpYWxpemVfYW1kNjRfbGludXhfbmF0KTogRG9uJ3QgY2FsbCBpMzg2X3hzdGF0ZV9pbml0Lgor KworKwkqIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIGNoZWNrIGZvciBjcHVpZC5oLgorKwkqIGNvbmZp Zy5pbjogUmVnZW5lcmF0ZWQuCisrCSogY29uZmlndXJlOiBMaWtld2lzZS4KKysKKysJKiBpMzg2 LWxpbnV4LW5hdC5jIChmZXRjaF94c3RhdGVyZWdzKTogVXNlCisrCVhTVEFURV9NQVhfU0laRV9O X09GX0lOVDY0IGFuZCBYU1RBVEVfTUFYX1NJWkUuCisrCShzdG9yZV94c3RhdGVyZWdzKTogTGlr ZXdpc2UuCisrCShpMzg2X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24pOiBBZGQgc3RhdGljIHhjcjAg YW5kIGdldCBpdAorKwlmcm9tIEkzODZfTElOVVhfWFNBVkVfWENSMF9PRkZTRVQuICBVc2UgWFNU QVRFX01BWF9TSVpFX05fT0ZfSU5UNjQKKysJYW5kIFhTVEFURV9NQVhfU0laRS4KKysJKF9pbml0 aWFsaXplX2kzODZfbGludXhfbmF0KTogRG9uJ3QgY2FsbCBpMzg2X3hzdGF0ZV9pbml0LgorKwor KwkqIGNvbW1vbi9pMzg2LWNwdWlkLmg6IFJlbW92ZWQuCisrCSogY29tbW9uL2kzODYteHN0YXRl LmM6IExpa2V3aXNlLgorKworKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5oICh4c3RhdGVfc3RhdHVz KTogUmVtb3ZlZC4KKysJKGkzODZfeHN0YXRlX3R5cGUpOiBMaWtld2lzZS4KKysJKGkzODZfeHN0 YXRlKTogTGlrZXdpc2UuCisrCShpMzg2X3hzdGF0ZV9pbml0KTogTGlrZXdpc2UuCisrCShYU1RB VEVfTUFYX1NJWkVfTl9PRl9JTlQ2NCk6IE5ldy4KKysKKysJKiBjb25maWcvaTM4Ni9saW51eC5t aCAoTkFUREVQRklMRVMpOiBSZW1vdmUgaTM4Ni14c3RhdGUuby4KKysJKiBjb25maWcvaTM4Ni9s aW51eDY0Lm1oIChOQVRERVBGSUxFUyk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDEgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKGFt ZDY0X2xpbnV4X2dfcGFja2V0X3NpemUpOiBNYWtlIGl0IGNvbnN0LgorKwkqIGFtZDY0LXRkZXAu YyAoYW1kNjRfZ19wYWNrZXRfc2l6ZSk6IExpa2V3aXNlLgorKwkqIGkzODYtbGludXgtdGRlcC5j IChpMzg2X2xpbnV4X2dfcGFja2V0X3NpemUpOiBMaWtld2lzZS4KKysJKiBpMzg2LXRkZXAuYyAo aTM4Nl9nX3BhY2tldF9zaXplKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMg KGkzODZfbGludXhfaW5pdF9hYmkpOiBSZW1vdmUKKysJaTM4Nl9saW51eF9nX3BhY2tldF9zaXpl LgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMpOiBV cGRhdGVkLgorKwkqIGkzODYtdGRlcC5oIChpMzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMp OiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jIChhbWQ2NF9saW51eF9nX3BhY2tldF9zaXpl KTogQWRkIGtleS4KKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9nX3BhY2tldF9z aXplKTogTGlrZXdpc2UuCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ19wYWNrZXRfc2l6ZSk6IExp a2V3aXNlLgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfZ19wYWNrZXRfc2l6ZSk6IE5ldy4K KysJKGFtZDY0X2luaXRfYWJpKTogQ2FsbCBpMzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMu CisrCisrCSogaTM4Ni10ZGVwLmMgKEkzODZfUFJPUEVSVFlfU1NFKTogUmVtb3ZlZC4KKysJKEkz ODZfUFJPUEVSVFlfQVZYKTogTGlrZXdpc2UuCisrCShpMzg2X3RkZXNjX3NzZSk6IExpa2V3aXNl LgorKwkoaTM4Nl90ZGVzY19hdngpOiBMaWtld2lzZS4KKysJKGkzODZfaW5pdF90ZGVzYyk6IExp a2V3aXNlLgorKwkoaTM4Nl9yZWdpc3Rlcl9nX3BhY2tldF9ndWVzc2VzKTogVXBkYXRlZC4KKysJ KGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0KTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni10 ZGVwLmggKEkzODZfUFJPUEVSVFlfU1NFKTogTmV3LgorKwkoSTM4Nl9QUk9QRVJUWV9BVlgpOiBM aWtld2lzZS4KKysJKEFNRDY0X1BST1BFUlRZX1NTRSk6IExpa2V3aXNlLgorKwkoQU1ENjRfUFJP UEVSVFlfQVZYKTogTGlrZXdpc2UuCisrCShpMzg2X2dfcGFja2V0X3NpemUpOiBBZGQga2V5Lgor KwkoaTM4Nl9yZWdpc3Rlcl9nX3BhY2tldF9ndWVzc2VzKTogVXBkYXRlZC4KKysKKysyMDEwLTAx LTMxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogcmVnZm9ybWF0cy9y ZWctaTM4Ni1hdngtbGludXguZGF0OiBBZGQgYSBjb21tZW50IGZvciBvc2FiaS4KKysJKiByZWdm b3JtYXRzL3JlZy14ODYtNjQtYXZ4LWxpbnV4LmRhdDogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0z MSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIHJlZ2Zvcm1hdHMvcmVn LWkzODYtYXZ4LWxpbnV4LmRhdDogQWRkIGEgY29tbWVudCBmb3IgeG1sYXJjaC4KKysJKiByZWdm b3JtYXRzL3JlZy1pMzg2LWF2eC5kYXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4 Ni02NC1hdngtbGludXguZGF0OiBMaWtld2lzZS4KKysJKiByZWdmb3JtYXRzL3JlZy14ODYtNjQt YXZ4LmRhdDogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0zMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAuYyAoYW1kNjRfbGludXhfZ19wYWNr ZXRfc2l6ZSk6IE5ldy4KKysJKGFtZDY0X2xpbnV4X2luaXRfYWJpKTogUGFzcyBhbWQ2NF9saW51 eF9nX3BhY2tldF9zaXplIHRvCisrCWkzODZfcmVnaXN0ZXJfZ19wYWNrZXRfZ3Vlc3Nlcy4KKysK KysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9nX3BhY2tldF9zaXplKTogTmV3Lgor KwkoaTM4Nl9saW51eF9pbml0X2FiaSk6IFBhc3MgaTM4Nl9saW51eF9nX3BhY2tldF9zaXplIHRv CisrCWkzODZfcmVnaXN0ZXJfZ19wYWNrZXRfZ3Vlc3Nlcy4KKysKKysJKiBpMzg2LXRkZXAuYyAo aTM4Nl9yZWdpc3Rlcl9nX3BhY2tldF9ndWVzc2VzKTogVXBkYXRlZCB0bworKwl0YWtlIGFuIGFy cmF5IG9mIHRoZSBnL0cgcGFja2V0IHNpemVzLgorKwkoaTM4Nl9nX3BhY2tldF9zaXplKTogTmV3 LgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBQYXNzIGkzODZfZ19wYWNrZXRfc2l6ZSB0bworKwlp Mzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMuCisrCisrCSogaTM4Ni10ZGVwLmggKGkzODZf Z19wYWNrZXRfc2l6ZV9pbmRleCk6IE5ldy4KKysJKGkzODZfcmVnaXN0ZXJfZ19wYWNrZXRfZ3Vl c3Nlcyk6IFVwZGF0ZWQuCisrCisrMjAxMC0wMS0zMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIGFtZDY0LXRkZXAuaCAoQU1ENjRfR19QQUNLRVRfU0laRV9BVlgpOiBD b3JyZWN0IGNvbW1lbnRzLgorKwkqIGkzODYtdGRlcC5oIChJMzg2X0dfUEFDS0VUX1NJWkVfQVZY KTogTGlrZXdpc2UuCisrCQorKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKysKKysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfZnhzYXZlKTogUmVtb3ZlIHZl Y3RvciB1bml0IGNoZWNrLgorKworKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2lu aXQpOiBSZW1vdmUgdGhlCisrCWR1cGxpY2F0ZS4KKysKKysyMDEwLTAxLTIxICBILkouIEx1ICA8 aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF92 ZWN0b3JfdW5pdF9pbml0KTogQ2FsbCAKKysJaTM4Nl94c3RhdGVfaW5pdCBhbmQgaW5pdGlhbGl6 ZSB2ZWN0b3JfdW5pdCBwcm9wZXJseS4KKysKKysyMDEwLTAxLTIxICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF92ZWN0b3Jf dW5pdF9pbml0KTogSW5pdGlhbGl6ZQorKwl2ZWN0b3JfdW5pdCBvbmx5IGlmIHRhcmdldF9kZXNj IGlzbid0IE5VTEwuCisrCisrMjAxMC0wMS0yMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwu Y29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3NzZV90eXBlKTogUmVuYW1lZCB0byAuLi4K KysJKGkzODZfdmVjdG9yX3R5cGUpOiBUaGlzLiAgVXBkYXRlZC4KKysJKGkzODZfcmVnaXN0ZXJf dHlwZSk6IFVwZGF0ZWQuCisrCisrCSogaTM4Ni10ZGVwLmggKGkzODZfc3NlX3R5cGUpOiBSZW5h bWVkIHRvIC4uLgorKwkoaTM4Nl92ZWN0b3JfdHlwZSk6IFRoaXMuCisrCisrCSogYW1kNjQtdGRl cC5jIChhbWQ2NF9yZWdpc3Rlcl90eXBlKTogVXBkYXRlZC4KKysKKysyMDEwLTAxLTIxICBILkou IEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9y ZWdpc3Rlcl9uYW1lKTogUmVwbGFjZSBzc2VfdW5pdCB3aXRoCisrCXZlY3Rvcl91bml0LgorKwko YW1kNjRfaW5pdF9hYmkpOiBMaWtld2lzZS4KKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9yZWdpc3Rl cl9uYW1lKTogTGlrZXdpc2UuCisrCShpMzg2X3NzZV90eXBlKTogTGlrZXdpc2UuCisrCShpMzg2 X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMpOiBMaWtld2lzZS4KKysJKGkzODZfZ2RiYXJjaF9z c2VfdW5pdF9pbml0KTogUmVuYW1lZCB0byAuLi4KKysJKGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5p dF9pbml0KTogVGhpcy4KKysJKGkzODZfZ2RiYXJjaF9pbml0KTogVXBkYXRlZC4KKysKKysJKiBp Mzg2LXRkZXAuaCAoeDg2X3NzZV91bml0KTogUmVuYW1lZCB0byAuLi4KKysJKHg4Nl92ZWN0b3Jf dW5pdCk6IFRoaXMuCisrCShpMzg2X2dkYmFyY2hfc3NlX3VuaXRfaW5pdCk6IFJlbmFtZWQgdG8g Li4uCisrCShpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdCk6IFRoaXMuCisrCisrCSogaTM4 Ny10ZGVwLmMgKGkzODdfc3VwcGx5X2Z4c2F2ZSk6IFJlcGxhY2Ugc3NlX3VuaXQgd2l0aAorKwl2 ZWN0b3JfdW5pdC4KKysKKysyMDA5LTEwLTE0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jIChhbWQ2NF9saW51eF9pbml0X2FiaSk6IENh bGwKKysJcmVnaXN0ZXJfcmVtb3RlX2dfcGFja2V0X2d1ZXNzLgorKworKwkqIGFtZDY0LXRkZXAu YyAoYW1kNjRfcmVnaXN0ZXJfbmFtZXMpOiBSZW5hbWVkIHRvIC4uLgorKwkoYW1kNjRfc3NlX3Jl Z2lzdGVyX25hbWVzKTogVGhpcy4gIFJlbW92ZSBBVlggcmVnaXN0ZXJzLgorKwkoYW1kNjRfYXZ4 X3JlZ2lzdGVyX25hbWVzKTogTmV3LgorKwkoQU1ENjRfTlVNX1JFR1MpOiBVcGRhdGVkLgorKwko YW1kNjRfcmVnaXN0ZXJfbmFtZSk6IEhhbmRsZSBzc2VfdW5pdC4KKysJKGFtZDY0X3JlZ2lzdGVy X3R5cGUpOiBSZW1vdmUgQVZYIHJlZ2lzdGVycy4KKysJKGFtZDY0X2luaXRfYWJpKTogQ2FsbCBp Mzg2X2dkYmFyY2hfc3NlX3VuaXRfaW5pdCB0bworKwlpbml0aWFsaXplIHNzZV91bml0LgorKwor KwkqIGFtZDY0LXRkZXAuaCAoQU1ENjRfR19QQUNLRVRfU0laRV9TU0UpOiBOZXcuCisrCShBTUQ2 NF9HX1BBQ0tFVF9TSVpFX0FWWCk6IExpa2V3aXNlLgorKworKwkqIGRlZnMuaCAoTUFYX1JFR0lT VEVSX1NJWkUpOiBJbmNyZWFzZSB0byAzMi4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4 Nl9saW51eF9pbml0X2FiaSk6IENhbGwKKysJaTM4Nl9yZWdpc3Rlcl9nX3BhY2tldF9ndWVzc2Vz LgorKworKwkqIGkzODYtdGRlcC5jOiBJbmNsdWRlICJyZW1vdGUuaCIgYW5kICJ0YXJnZXQtZGVz Y3JpcHRpb25zLmgiLgorKwkoSTM4Nl9QUk9QRVJUWV9TU0UpOiBOZXcuCisrCShJMzg2X1BST1BF UlRZX0FWWCk6IExpa2V3aXNlLgorKwkoaTM4Nl90ZGVzY19zc2UpOiBMaWtld2lzZS4KKysJKGkz ODZfdGRlc2NfYXZ4KTogTGlrZXdpc2UuCisrCShpMzg2X2F2eF9yZWdpc3Rlcl9uYW1lcyk6IExp a2V3aXNlLgorKwkoaTM4Nl92ZWMxMjhfdHlwZSk6IExpa2V3aXNlLgorKwkoaTM4Nl92ZWMyNTZf dHlwZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9pbml0X3RkZXNjKTogTGlrZXdpc2UuCisrCShpMzg2 X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMpOiBMaWtld2lzZS4KKysJKGkzODZfZ2RiYXJjaF9z c2VfdW5pdF9pbml0KTogTGlrZXdpc2UuCisrCShpMzg2X3JlZ2lzdGVyX25hbWVzKTogUmVuYW1l ZCB0byAuLi4KKysJKGkzODZfc3NlX3JlZ2lzdGVyX25hbWVzKTogVGhpcy4KKysJKGkzODZfbnVt X3JlZ2lzdGVyX25hbWVzKTogVXBkYXRlZC4KKysJKGkzODZfcmVnaXN0ZXJfbmFtZSk6IEhhbmRs ZSBzc2VfdW5pdC4KKysJKGkzODZfc3NlX3R5cGUpOiBMaWtld2lzZS4KKysJKGkzODZfZ2RiYXJj aF9pbml0KTogQ2FsbCBpMzg2X2dkYmFyY2hfc3NlX3VuaXRfaW5pdCB0bworKwlpbml0aWFsaXpl IHNzZV91bml0LiAgQ2FsbCBpMzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMuCisrCShfaW5p dGlhbGl6ZV9pMzg2X3RkZXApOiBDYWxsIGkzODZfdGRlc2NfaW5pdC4KKysKKysJKiBpMzg2LXRk ZXAuaCAoeDg2X3NzZV91bml0KTogTmV3LgorKwkoSTM4Nl9HX1BBQ0tFVF9TSVpFX1NTRSk6IExp a2V3aXNlLgorKwkoSTM4Nl9HX1BBQ0tFVF9TSVpFX0FWWCk6IExpa2V3aXNlLgorKwkoaTM4Nl9y ZWdpc3Rlcl9nX3BhY2tldF9ndWVzc2VzKTogTGlrZXdpc2UuCisrCShpMzg2X2dkYmFyY2hfc3Nl X3VuaXRfaW5pdCk6IExpa2V3aXNlLgorKwkoZ2RiYXJjaF90ZGVwKTogQWRkIHNzZV91bml0Lgor KwkoSTM4Nl9NQVhfUkVHSVNURVJfU0laRSk6IEluY3JlYXNlIHRvIDMyLgorKworKwkqIGkzODct dGRlcC5jIChpMzg3X3N1cHBseV9meHNhdmUpOiBBc3NlcnQgc3NlX3VuaXQgb24gU1NFCisrCXJl Z2lzdGVycy4KKysKKysJKiByZWdmb3JtYXRzL3JlZy1pMzg2LWF2eC1saW51eC5kYXQ6IE5ldy4K KysJKiByZWdmb3JtYXRzL3JlZy1pMzg2LWF2eC5kYXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1h dHMvcmVnLXg4Ni02NC1hdngtbGludXguZGF0OiBMaWtld2lzZS4KKysJKiByZWdmb3JtYXRzL3Jl Zy14ODYtNjQtYXZ4LmRhdDogTGlrZXdpc2UuCisrCisrCSogcmVnZm9ybWF0cy9yZWcteDg2LTY0 LmRhdDogQWRkIHhtbGFyY2guCistLS0gLi9nZGIvQ2hhbmdlTG9nLnBzZXVkbwkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL0NoYW5nZUxvZy5wc2V1ZG8JMjAx MC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTg5IEBACisrMjAx MC0wMi0yNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRl cC5jIChpMzg2X21teF9yZWdudW1fcCk6IE9wdGltaXplZC4KKysJKGkzODZfYnl0ZV9yZWdudW1f cCk6IExpa2V3aXNlLgorKwkoaTM4Nl93b3JkX3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShpMzg2 X2R3b3JkX3JlZ251bV9wKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0xOSAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3JlZ2lzdGVyX3Jl Z2dyb3VwX3ApOiBNaW5pbWl6ZSBmdW5jdGlvbgorKwljYWxscy4KKysKKysyMDEwLTAyLTE4ICBI LkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZf cmVnaXN0ZXJfcmVnZ3JvdXBfcCk6IERvbid0IGluY2x1ZGUgcHNldWRvCisrCXJlZ2lzdGVycywg ZXhjZXB0IGZvciBNWFgsIGluIGFueSByZWdpc3RlciBncm91cHMuCisrCisrMjAxMC0wMi0xOCAg SC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2 X2dkYmFyY2hfaW5pdCk6IFNldCBtbTBfcmVnbnVtIG9ubHkgb25jZS4KKysKKysyMDEwLTAyLTE4 ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5jIChh bWQ2NF9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk6IERvbid0IGNoZWNrIE1NWAorKwlwc2V1ZG8gcmVn aXN0ZXJzLiAgQ2FsbCBpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lLgorKwkoYW1kNjRfaW5pdF9h YmkpOiBSZXN0b3JlIG51bV94bW1fcmVncy4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9tbXhf bmFtZXMpOiBNYWtlIGl0IHN0YXRpYy4KKysJKGkzODZfbW14X3JlZ251bV9wKTogTGlrZXdpc2Uu CisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lKTogTWFrZSBpdCBnbG9iYWwuCisrCisrCSog aTM4Ni10ZGVwLmggKGkzODZfbW14X3JlZ251bV9wKTogUmVtb3ZlZC4KKysJKGkzODZfbW14X25h bWVzKTogTGlrZXdpc2UuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lKTogTmV3LgorKwor KzIwMTAtMDItMTggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2 LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX2luaXQpOiBDYWxsIHNldF9nZGJhcmNoX251bV9wc2V1ZG9f cmVncworKwliZWZvcmUgdGRlc2NfdXNlX3JlZ2lzdGVycy4KKysKKysyMDEwLTAyLTE4ICBILkou IEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfcHNl dWRvX3JlZ2lzdGVyX3JlYWQpOiBDaGVjayBpbnZhbGlkCisrCXJlZ2lzdGVyIG51bWJlci4KKysJ KGkzODZfcHNldWRvX3JlZ2lzdGVyX3dyaXRlKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0xOCAg SC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1k NjRfcHNldWRvX3JlZ2lzdGVyX3JlYWQpOiBOZXcuCisrCShhbWQ2NF9wc2V1ZG9fcmVnaXN0ZXJf d3JpdGUpOiBMaWtld2lzZS4KKysJKGFtZDY0X2luaXRfYWJpKTogQ2FsbCBzZXRfZ2RiYXJjaF9w c2V1ZG9fcmVnaXN0ZXJfcmVhZCBhbmQKKysJc2V0X2dkYmFyY2hfcHNldWRvX3JlZ2lzdGVyX3dy aXRlLgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTogTWFr ZSBpdCBnbG9iYWwuCisrCURvbid0IGhhbmRsZSA2NGJpdCBub3IgRFdPUkQuCisrCShpMzg2X3Bz ZXVkb19yZWdpc3Rlcl93cml0ZSk6IExpa2V3aXNlLgorKworKwkqIGkzODYtdGRlcC5oIChpMzg2 X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTogTmV3LgorKwkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfd3Jp dGUpOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTE4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRl bC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9ieXRlX25hbWVzKTogTWFrZSBpdCBz dGF0aWMuCisrCShhbWQ2NF93b3JkX25hbWVzKTogTGlrZXdpc2UuCisrCShhbWQ2NF9kd29yZF9u YW1lcyk6IExpa2V3aXNlLgorKwkoYW1kNjRfcHNldWRvX3JlZ2lzdGVyX25hbWUpOiBOZXcuCisr CShhbWQ2NF9pbml0X2FiaSk6IFNldCBudW1fYnl0ZV9yZWdzLCBudW1fd29yZF9yZWdzLCBudW1f ZHdvcmRfcmVncworKwlhbmQgbnVtX21teF9yZWdzLiAgQ2FsbCBzZXRfdGRlc2NfcHNldWRvX3Jl Z2lzdGVyX25hbWUuCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfbW14X25hbWVzKTogTWFrZSBp dCBnbG9iYWwuCisrCShpMzg2X21teF9yZWdudW1fcCk6IExpa2V3aXNlLgorKwkoaTM4Nl9ieXRl X3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShpMzg2X3dvcmRfcmVnbnVtX3ApOiBMaWtld2lzZS4K KysJKGkzODZfZHdvcmRfcmVnbnVtX3ApOiBMaWtld2lzZS4KKysJKGkzODZfcHNldWRvX3JlZ2lz dGVyX25hbWUpOiBSZW1vdmUgWEJGRDY0LgorKwkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCk6 IFJlbW92ZSBCRkQ2NC4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVyX3dyaXRlKTogTGlrZXdpc2Uu CisrCShpMzg2X2dkYmFyY2hfaW5pdCk6IE1vdmUgc2V0X2dkYmFyY2hfcHNldWRvX3JlZ2lzdGVy X3JlYWQgYW5kCisrCXNldF9nZGJhcmNoX3BzZXVkb19yZWdpc3Rlcl93cml0ZSBiZWZvcmUgZ2Ri YXJjaF9pbml0X29zYWJpLgorKworKwkqIGkzODYtdGRlcC5oIChpMzg2X2J5dGVfcmVnbnVtX3Ap OiBOZXcuCisrCShpMzg2X3dvcmRfcmVnbnVtX3ApOiBMaWtld2lzZS4KKysJKGkzODZfZHdvcmRf cmVnbnVtX3ApOiBMaWtld2lzZS4KKysJKGkzODZfbW14X3JlZ251bV9wKTogTGlrZXdpc2UuCisr CShpMzg2X21teF9uYW1lcyk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMTggIEguSi4gTHUgIDxo b25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKEFNRDY0X05VTV9SRUdT KTogUmVzdG9yZWQuCisrCisrCSogYW1kNjQtdGRlcC5oIChBTUQ2NF9OVU1fR1JFR1MpOiBSZW1v dmVkLgorKworKzIwMTAtMDItMTAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBhbWQ2NC10ZGVwLmMgKEFNRDY0X05VTV9SRUdTKTogUmVtb3ZlZC4KKysKKysJKiBhbWQ2 NC10ZGVwLmggKEFNRDY0X05VTV9HUkVHUyk6IE5ldy4KKysKKysJKiBpMzg2LW50by10ZGVwLmMg KGkzODZudG9fcmVnc2V0X2lkKTogUmVwbGFjZSBJMzg2X05VTV9GUkVHUworKwl3aXRoIEkzODdf TlVNX1JFR1MuCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ28zMl9pbml0X2FiaSk6IExpa2V3aXNl LgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LXRkZXAuaCAo aTM4Nl9yZWdudW0pOiBBZGQgSTM4Nl9NWENTUl9SRUdOVU0uCisrCShJMzg2X05VTV9GUkVHUyk6 IFJlbW92ZWQuCisrCShJMzg2X1NTRV9OVU1fUkVHUyk6IERlZmluZWQgd2l0aCBJMzg2X01YQ1NS X1JFR05VTS4KKysKKysJKiBpMzg3LXRkZXAuaCAoSTM4N19OVU1fUkVHUyk6IE5ldy4KKysKKysy MDEwLTAyLTEwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQt dGRlcC5jIChhbWQ2NF9pbml0X2FiaSk6IERvbid0IHNldCBudW1feG1tX3JlZ3MuCisrCisrMjAx MC0wMi0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxp bnV4LXRkZXAuYyAoYW1kNjRfbGludXhfcmVnaXN0ZXJfcmVnZ3JvdXBfcCk6IENhbGwKKysJaTM4 Nl9yZWdpc3Rlcl9yZWdncm91cF9wIGluc3RlYWQgb2YgZGVmYXVsdF9yZWdpc3Rlcl9yZWdncm91 cF9wLgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfbnVtX3BzZXVkb19yZWdzKTogUmVtb3Zl ZC4KKysJKGFtZDY0X2luaXRfYWJpKTogRG9uJ3QgY2FsbCBzZXRfZ2RiYXJjaF9udW1fcHNldWRv X3JlZ3MuIERvbid0CisrCXNldCBtbTBfcmVnbnVtLgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2 X251bV9tbXhfcmVncyk6IFJlbW92ZWQuCisrCShpMzg2X251bV9wc2V1ZG9fcmVncyk6IExpa2V3 aXNlLgorKwkoaTM4Nl9tbXhfcmVnbnVtX3ApOiBVcGRhdGVkLgorKwkoaTM4Nl9yZWdpc3Rlcl9y ZWdncm91cF9wKTogRG9uJ3QgaW5jbHVkZSBwc2V1ZG8gYnl0ZSwgd29yZCwKKysJZHdvcmQgcmVn aXN0ZXJzIGluIGdlbmVyYWxfcmVnZ3JvdXAuCisrCShpMzg2X2dkYmFyY2hfaW5pdCk6IFVwZGF0 ZWQuCisrCisrCSogaTM4Ni10ZGVwLmggKGdkYmFyY2hfdGRlcCk6IEFkZCBudW1fbW14X3JlZ3Mu CisrCisrMjAxMC0wMi0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkq IGFtZDY0LXRkZXAuYyAoYW1kNjRfd29yZF9uYW1lcyk6IEFkZCBhIG1pc3NpbmcgJywnLgorKwko YW1kNjRfZHdvcmRfbmFtZXMpOiBOZXcuCisrCShhbWQ2NF9udW1fcHNldWRvX3JlZ3MpOiBVcGRh dGVkLgorKworKwkqIGFtZDY0LXRkZXAuaCAoYW1kNjRfZHdvcmRfbmFtZXMpOiBOZXcuCisrCisr CSogaTM4Ni10ZGVwLmMgKGkzODZfZHdvcmRfcmVnbnVtX3ApOiBOZXcuCisrCShpMzg2X3BzZXVk b19yZWdpc3Rlcl9uYW1lKTogVXNlIGkzODZfZHdvcmRfcmVnbnVtX3AuCisrCShpMzg2X3BzZXVk b19yZWdpc3Rlcl90eXBlKTogTGlrZXdpc2UuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl9yZWFk KTogTGlrZXdpc2UuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl93cml0ZSk6IExpa2V3aXNlLgor KwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBTZXQgbnVtX2R3b3JkX3JlZ3MgYW5kIGVheF9yZWdudW0u CisrCisrMjAxMC0wMi0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkq IGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6IE9wdGltaXplZC4KKysKKysyMDEwLTAy LTA4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5j IChhbWQ2NF9ieXRlX25hbWVzKTogTmV3LgorKwkoYW1kNjRfd29yZF9uYW1lcyk6IExpa2V3aXNl LgorKwkoYW1kNjRfbnVtX3BzZXVkb19yZWdzKTogTGlrZXdpc2UuCisrCShhbWQ2NF9pbml0X2Fi aSk6IENhbGwgc2V0X2dkYmFyY2hfbnVtX3BzZXVkb19yZWdzIHdpdGgKKysJYW1kNjRfbnVtX3Bz ZXVkb19yZWdzLAorKworKwkqIGFtZDY0LXRkZXAuaCAoYW1kNjRfYnl0ZV9uYW1lcyk6IE5ldy4K KysJKGFtZDY0X3dvcmRfbmFtZXMpOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4 Nl9udW1fYnl0ZV9yZWdzKTogUmVtb3ZlZC4KKysJKGkzODZfbnVtX3dvcmRfcmVncyk6IExpa2V3 aXNlLgorKwkoaTM4Nl9ieXRlX3JlZ251bV9wKTogVXBkYXRlZC4KKysJKGkzODZfd29yZF9yZWdu dW1fcCk6IExpa2V3aXNlLgorKwkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk6IFN1cHBvcnQg NjRiaXQuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTogTGlrZXdpc2UuCisrCShpMzg2 X3BzZXVkb19yZWdpc3Rlcl93cml0ZSk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDggIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9ieXRl X25hbWVzKTogTmV3LgorKwkoaTM4Nl93b3JkX25hbWVzKTogTGlrZXdpc2UuCisrCShpMzg2X251 bV9ieXRlX3JlZ3MpOiBMaWtld2lzZS4KKysJKGkzODZfbnVtX3dvcmRfcmVncyk6IExpa2V3aXNl LgorKwkoaTM4Nl9udW1fcHNldWRvX3JlZ3MpOiBMaWtld2lzZS4KKysJKGkzODZfYnl0ZV9yZWdu dW1fcCk6IExpa2V3aXNlLgorKwkoaTM4Nl93b3JkX3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShp Mzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lKTogSGFuZGxlIGJ5dGUgYW5kIHdvcmQgcHNldWRvLXJl Z2lzdGVycy4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKysJKGkz ODZfcHNldWRvX3JlZ2lzdGVyX3JlYWQpOiBMaWtld2lzZS4KKysJKGkzODZfcHNldWRvX3JlZ2lz dGVyX3dyaXRlKTogTGlrZXdpc2UuCisrCShpMzg2X2dkYmFyY2hfaW5pdCk6IENhbGwgc2V0X2dk YmFyY2hfbnVtX3BzZXVkb19yZWdzIHdpdGgKKysJaTM4Nl9udW1fcHNldWRvX3JlZ3MuICBTZXQg bnVtX2J5dGVfcmVncywgbnVtX3dvcmRfcmVncywKKysJYWxfcmVnbnVtLCBheF9yZWdudW0uICBQ dXQgTU1YIHBzZXVkby1yZWdpc3RlcnMgYWZ0ZXIgd29yZAorKwlwc2V1ZG8tcmVnaXN0ZXJzLgor KworKwkqIGkzODYtdGRlcC5oIChnZGJhcmNoX3RkZXApOiBBZGQgbnVtX2J5dGVfcmVncywgYWxf cmVnbnVtLAorKwludW1fd29yZF9yZWdzLCBheF9yZWdudW0sIG51bV9kd29yZF9yZWdzIGFuZCBl YXhfcmVnbnVtLgorLS0tIC4vZ2RiL0NoYW5nZUxvZy54Y3IJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9DaGFuZ2VMb2cueGNyCTIwMTAtMDQtMDMgMjE6MTI6 MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDEzMDQgQEAKKysyMDEwLTA0LTAyICBILkou IEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmMgKGFt ZDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24pOiBDYWxsCisrCWkzODZfbGludXhfdXBkYXRlX3hz dGF0ZXJlZ3NldC4KKysKKysyMDEwLTA0LTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfcHJvY2Vzc19yZWNvcmQpOiBSZXBsYWNlIGkz ODZfc3NlX3JlZ251bV9wCisrCXdpdGggaTM4Nl94bW1fcmVnbnVtX3AuCisrCisrMjAxMC0wMy0y OCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5h dC5jIChhbWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogQ2FsbAorKwlhbWQ2NF9saW51eF91 cGRhdGVfeHN0YXRlcmVnc2V0IGluc3RlYWQgb2YKKysJaTM4Nl9saW51eF91cGRhdGVfeHN0YXRl cmVnc2V0LgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAuYyAoYW1kNjRfbGludXhfcmVnc2V0X3Nl Y3Rpb25zKTogTWFrZSBpdAorKwlzdGF0aWMuCisrCShhbWQ2NF9saW51eF91cGRhdGVfeHN0YXRl cmVnc2V0KTogTmV3LgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAuaCAoYW1kNjRfbGludXhfcmVn c2V0X3NlY3Rpb25zKTogUmVtb3ZlZC4KKysJKGFtZDY0X2xpbnV4X3VwZGF0ZV94c3RhdGVyZWdz ZXQpOiBOZXcuCisrCisrCSogaTM4Ni1saW51eC1uYXQuYyAoaTM4Nl9saW51eF9yZWFkX2Rlc2Ny aXB0aW9uKTogUmVtb3ZlCisrCWkzODZfbGludXhfcmVnc2V0X3NlY3Rpb25zIGZyb20gaTM4Nl9s aW51eF91cGRhdGVfeHN0YXRlcmVnc2V0LgorKworKwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2 X2xpbnV4X3JlZ3NldF9zZWN0aW9ucyk6IE1ha2UgaXQKKysJc3RhdGljLgorKwkoaTM4Nl9saW51 eF91cGRhdGVfeHN0YXRlcmVnc2V0KTogUmVtb3ZlIHJlZ3NldF9zZWN0aW9ucy4gIFVzZQorKwlp Mzg2X2xpbnV4X3JlZ3NldF9zZWN0aW9ucy4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuaCAoaTM4 Nl9saW51eF9yZWdzZXRfc2VjdGlvbnMpOiBSZW1vdmVkLgorKwkoaTM4Nl9saW51eF91cGRhdGVf eHN0YXRlcmVnc2V0KTogUmVtb3ZlIHJlZ3NldF9zZWN0aW9ucy4KKysJaTM4Nl9saW51eF9yZWdz ZXRfc2VjdGlvbnMuCisrCisrMjAxMC0wMy0yOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwu Y29tPgorKworKwkqIGkzODYtbGludXgtbmF0LmMgKGZldGNoX3hzdGF0ZXJlZ3MpOiBEb24ndCBj YXN0ICZpb3YgdG8gaW50LgorKwkoc3RvcmVfeHN0YXRlcmVncyk6IExpa2V3aXNlLgorKwkoaTM4 Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogRG9uJ3QgY2FzdCAmaW92IHRvIGxvbmcuCisrCisr MjAxMC0wMy0yOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYt bGludXgtdGRlcC5oIChJMzg2X0xJTlVYX1hTQVZFX1hDUjBfT0ZGU0VUKTogVXBkYXRlCisrCWNv bW1lbnRzLgorKworKzIwMTAtMDMtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoeHN0YXRlX3NpemUpOiBSZW1vdmVkLgorKwkoYW1k NjRfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzKTogUmVwbGFjZSB4c3RhdGVfc2l6ZQor Kwl3aXRoIEkzODZfWFNUQVRFX01BWF9TSVpFLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJp b3JfcmVnaXN0ZXJzKTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9u KTogVXBkYXRlZC4KKysKKysJKiBpMzg2LWxpbnV4LW5hdC5jICh4c3RhdGVfc2l6ZSk6IFJlbW92 ZWQuCisrCShmZXRjaF94c3RhdGVyZWdzKTogUmVwbGFjZSB4c3RhdGVfc2l6ZSB3aXRoCisrCUkz ODZfWFNUQVRFX01BWF9TSVpFLgorKwkoZmV0Y2hfeHN0YXRlcmVncyk6IExpa2V3aXNlLgorKwko aTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogVXBkYXRlZC4KKysKKysJKiBjb21tb24vaTM4 Ni14c3RhdGUuaCAoSTM4Nl9YU1RBVEVfTUFYX1NJWkUpOiBOZXcuCisrCisrMjAxMC0wMy0yOCAg SC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5j IChhbWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogUmVwbGFjZQorKwl1bnNpZ25lZCBsb25n IGxvbmcgd2l0aCB1aW50NjRfdC4KKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKGFtZDY0X2xpbnV4 X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6CisrCUxpa2V3aXNlLgorKwkqIGkzODYtbGludXgtbmF0 LmMgKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IExpa2V3aXNlLgorKwkqIGkzODYtbGlu dXgtdGRlcC5oIChpMzg2X2xpbnV4X2NvcmVfcmVhZF94Y3IwKTogTGlrZXdpc2UuCisrCisrCSog aTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfY29yZV9yZWFkX3hjcjApOiBSZXBsYWNlCisr CXVuc2lnbmVkIGxvbmcgbG9uZyB3aXRoIHVpbnQ2NF90LiAgRG9uJ3QgYXNzZXJ0IHNlY3Rpb24g c2l6ZS4KKysJKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogUmVwbGFjZSB1bnNp Z25lZCBsb25nIGxvbmcKKysJd2l0aCB1aW50NjRfdC4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4 Nl95bW1fdHlwZSk6IEZpeCB0eXBvcyBpbiBjb21tZW50cy4KKysJKGkzODZfcHNldWRvX3JlZ2lz dGVyX3JlYWQpOiBDaGFuZ2UgMTZieXRlIHRvIDEyOGJpdHMgaW4KKysJY29tbWVudHMuCisrCShp Mzg2X3ZhbGlkYXRlX3RkZXNjX3ApOiBVcGRhdGUgY29tbWVudHMuCisrCShpMzg2X2dkYmFyY2hf aW5pdCk6IExpa2V3aXNlLgorKworKwkqIGkzODYtdGRlcC5oIChnZGJhcmNoX3RkZXApOiBSZXBs YWNlIHVuc2lnbmVkIGxvbmcgbG9uZyB3aXRoCisrCXVpbnQ2NF90LiAgUmVwbGFjZSBnZGIgd2l0 aCBHREIgaW4gY29tbWVudHMuCisrCisrMjAxMC0wMy0yNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6IFJlcGxh Y2UgIng4Nj14bWwiIHdpdGgKKysJInhtbFJlZ2lzdGVycysiLgorKworKzIwMTAtMDMtMTIgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAo eHN0YXRlX3NpemVfbl9vZl9pbnQ2NCk6IFJlbW92ZWQuCisrCShhbWQ2NF9saW51eF9mZXRjaF9p bmZlcmlvcl9yZWdpc3RlcnMpOiBVcGRhdGVkLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJp b3JfcmVnaXN0ZXJzKTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9u KTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni1saW51eC1uYXQuYyAoeHN0YXRlX3NpemVfbl9vZl9p bnQ2NCk6IFJlbW92ZWQuCisrCShmZXRjaF94c3RhdGVyZWdzKTogVXBkYXRlZC4KKysJKHN0b3Jl X3hzdGF0ZXJlZ3MpOiBMaWtld2lzZS4KKysJKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6 IExpa2V3aXNlLgorKworKzIwMTAtMDMtMTIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYzogSW5jbHVkZSAiaTM4Ni14c3RhdGUuaCIuCisr CShQVFJBQ0VfR0VUUkVHU0VUKTogTmV3LgorKwkoUFRSQUNFX1NFVFJFR1NFVCk6IExpa2V3aXNl LgorKwkqIGkzODYtbGludXgtbmF0LmM6IExpa2V3aXNlLgorKworKwkqIGFtZDY0LWxpbnV4LXRk ZXAuYzogSW5jbHVkZSAiaTM4Ni14c3RhdGUuaCIuCisrCisrCSogY29uZmlnL2kzODYvbGludXg2 NC5taCAoTkFUX0ZJTEUpOiBTZXQgdG8gY29uZmlnL25tLWxpbnV4LmguCisrCisrCSogY29uZmln L2kzODYvbm0tbGludXguaDogRG9uJ3QgaW5jbHVkZQorKwkiY29uZmlnL2kzODYvbm0tbGludXgt eHN0YXRlLmgiLgorKworKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4LXhzdGF0ZS5oOiBSZW1vdmVk LgorKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4NjQuaDogTGlrZXdpc2UuCisrCisrMjAxMC0wMy0x MiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODctdGRlcC5jIChp Mzg3X3N1cHBseV94c2F2ZSk6IFJlcGxhY2UgSTM4Nl9YU1RBVEVfTUFYX01BU0sKKysJd2l0aCBJ Mzg2X1hTVEFURV9BVlhfTUFTSy4KKysKKysJKiBjb21tb24vaTM4Ni14c3RhdGUuaCAoSTM4Nl9Y U1RBVEVfTUFYX01BU0spOiBSZW1vdmVkLgorKwkoSTM4Nl9YU1RBVEVfTUFYX1NJWkUpOiBMaWtl d2lzZS4KKysKKysyMDEwLTAzLTEyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Cisr CisrCSogaTM4Ni10ZGVwLmMgKGkzODZfcmVnaXN0ZXJfcmVnZ3JvdXBfcCk6IFJlcGxhY2UKKysJ Yml0X0kzODZfWFNUQVRFX1hYWCB3aXRoIEkzODZfWFNUQVRFX1hYWC4KKysJKiBpMzg3LXRkZXAu YyAoaTM4N19zdXBwbHlfeHNhdmUpOiBMaWtld2lzZS4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6 IExpa2V3aXNlLgorKworKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5oIChiaXRfSTM4Nl9YU1RBVEVf WFhYKTogUmVuYW1lZCB0byAuLi4KKysJKEkzODZfWFNUQVRFX1hYWCk6IFRoaXMuCisrCShJMzg2 X1hTVEFURV9YWFhfTUFTSyk6IFJlcGxhY2UgYml0X0kzODZfWFNUQVRFX1hYWCB3aXRoCisrCUkz ODZfWFNUQVRFX1hYWC4KKysJKEkzODZfWFNUQVRFX1NJWkUpOiBMaWtld2lzZS4KKysKKysyMDEw LTAzLTA3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtdGRl cC5jIChhbWQ2NF9kd2FyZl9yZWdfdG9fcmVnbnVtKTogUmV0dXJuICV5bW1OCisrCXJlZ2lzdGVy IG51bWJlciBmb3IgJXhtbU4gaWYgQVZYIGlzIGF2YWlsYWJsZS4KKysKKysJKiBpMzg2LXRkZXAu YyAoaTM4Nl94bW1fcmVnbnVtX3ApOiBNYWtlIGl0IGdsb2JhbC4KKysJKGkzODZfZGJ4X3JlZ190 b19yZWdudW0pOiBSZXR1cm4gJXltbU4gcmVnaXN0ZXIgbnVtYmVyIGZvcgorKwkleG1tTiBpZiBB VlggaXMgYXZhaWxhYmxlLgorKworKwkqIGkzODYtdGRlcC5oIChpMzg2X3htbV9yZWdudW1fcCk6 IE5ldy4KKysKKysyMDEwLTAzLTA2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Cisr CisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9pbml0X2FiaSk6IFJlcGxhY2UgQU1ENjRfQVZYX05V TV9SRUdTCisrCXdpdGggQU1ENjRfTlVNX1JFR1MuCisrCisrCSogYW1kNjQtdGRlcC5oIChBTUQ2 NF9BVlhfTlVNX1JFR1MpOiBSZW5hbWVkIHRvIC4uLgorKwkoQU1ENjRfTlVNX1JFR1MpOiBUaGlz LgorKworKwkqIGkzODYtbGludXgtbmF0LmMgKEdFVEZQWFJFR1NfU1VQUExJRVMpOiBSZXBsYWNl CisrCUkzODZfQVZYX05VTV9SRUdTIHdpdGggSTM4Nl9TU0VfTlVNX1JFR1MuCisrCShHRVRYU1RB VEVSRUdTX1NVUFBMSUVTKTogTmV3LgorKwkoaTM4Nl9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdp c3RlcnMpOiBVc2UgR0VUWFNUQVRFUkVHU19TVVBQTElFUy4KKysJKGkzODZfbGludXhfc3RvcmVf aW5mZXJpb3JfcmVnaXN0ZXJzKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMy0wNiAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2xp bnV4X2dyZWdzZXRfcmVnX29mZnNldCk6IENvdW50IDgKKysJdXBwZXIgWU1NIHJlZ2lzdGVycy4K KysKKysyMDEwLTAzLTA2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSog aTM4Ni10ZGVwLmMgKGkzODZfcmVnaXN0ZXJfcmVnZ3JvdXBfcCk6IEZvciBhbGxfZ3JvdXAsIGRv bid0CisrCWluY2x1ZGUgdXBwZXIgWU1NIHJlZ2lzdGVycyBub3IgWE1NIHJlZ2lzdGVycyB3aGVu IEFWWCBpcworKwlzdXBwb3J0ZWQuCisrCisrMjAxMC0wMy0wNSAgSC5KLiBMdSAgPGhvbmdqaXUu bHVAaW50ZWwuY29tPgorKworKwkqIGkzODctdGRlcC5jIChpMzg3X2NvbGxlY3RfeHNhdmUpOiBS ZXBsYWNlIHJlZ2NhY2hlX3Jhd19yZWFkCisrCXdpdGggcmVnY2FjaGVfcmF3X2NvbGxlY3QuCisr CisrMjAxMC0wMy0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkz ODYtdGRlcC5jIChpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3ApOiBEb24ndCByZXR1cm4gMAorKwlm b3IgdXBwcGVyIFlNTSBub3IgWE1NIHJlZ2lzdGVycy4KKysKKysJKiBpMzg3LXRkZXAuYyAoeHNh dmVfc3NlX29mZnNldCk6IFJlbW92ZWQuCisrCShYU0FWRV9TU0VfQUREUik6IExpa2V3aXNlLgor KwkoaTM4N19zdXBwbHlfeHNhdmUpOiBSZXBsYWNlIFhTQVZFX1NTRV9BRERSIHdpdGggRlhTQVZF X0FERFIuCisrCShpMzg3X2NvbGxlY3RfeHNhdmUpOiBMaWtld2lzZS4gIFJlcGxhY2UgdGhlIHNl Y29uZAorKwlyZWdjYWNoZV9yYXdfY29sbGVjdCB3aXRoIG1lbWNweS4KKysKKysyMDEwLTAzLTA1 ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny10ZGVwLmMgKHhz YXZlX29mZnNldCk6IFJlbW92ZWQuCisrCShYU0FWRV9BRERSKTogTGlrZXdpc2UuCisrCSh4c2F2 ZV9zc2Vfb2Zmc2V0KTogTmV3LgorKwkoWFNBVkVfU1NFX0FERFIpOiBMaWtld2lzZS4KKysJKHhz YXZlX2F2eGhfb2Zmc2V0KTogTGlrZXdpc2UuCisrCShYU0FWRV9BVlhIX0FERFIpOiBMaWtld2lz ZS4KKysJKGkzODdfc3VwcGx5X3hzYXZlKTogVXBkYXRlZC4KKysJKGkzODdfY29sbGVjdF94c2F2 ZSk6IExpa2V3aXNlLgorKworKzIwMTAtMDMtMDUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKysKKysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfeHNhdmUpOiBGaXggdHlwb3Mu CisrCShpMzg3X2NvbGxlY3RfeHNhdmUpOiBQcm9wZXJseSBoYW5kbGUgZ2NvcmUuCisrCisrMjAx MC0wMy0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxp bnV4LW5hdC5jIChhbWQ2NF9saW51eF9ncmVnc2V0NjRfcmVnX29mZnNldCk6IENvdW50CisrCTE2 IHVwcGVyIFlNTSByZWdpc3RlcnMuCisrCShhbWQ2NF9saW51eF9ncmVnc2V0MzJfcmVnX29mZnNl dCk6IENvdW50IDggdXBwZXIgWU1NIHJlZ2lzdGVycy4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVw LmggKEFNRDY0X0xJTlVYX09SSUdfUkFYX1JFR05VTSk6IFJlcGxhY2UKKysJQU1ENjRfTVhDU1Jf UkVHTlVNIHdpdGggQU1ENjRfWU1NMTVIX1JFR05VTS4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKGFt ZDY0X3NzZV9yZWdpc3Rlcl9uYW1lcyk6IFJlbmFtZWQgdG8gLi4uCisrCShhbWQ2NF9yZWdpc3Rl cl9uYW1lcyk6IFRoaXMuCisrCShhbWQ2NF9hdnhfcmVnaXN0ZXJfbmFtZXMpOiBSZW1vdmVkLgor KwkoYW1kNjRfeG1tX25hbWVzKTogTGlrZXdpc2UuCisrCShBTUQ2NF9OVU1fUkVHUyk6IExpa2V3 aXNlLgorKwkoYW1kNjRfeW1tX25hbWVzKTogTmV3LgorKwkoYW1kNjRfeW1taF9uYW1lcyk6IExp a2V3aXNlLgorKwkoYW1kNjRfcmVnaXN0ZXJfbmFtZSk6IExpa2V3aXNlLgorKwkoYW1kNjRfcHNl dWRvX3JlZ2lzdGVyX25hbWUpOiBSZW1vdmUgaTM4Nl94bW1fcmVnbnVtX3AuICBBZGQKKysJaTM4 Nl95bW1fcmVnbnVtX3AuCisrCShhbWQ2NF9pbml0X2FiaSk6IFNldCB5bW1oX3JlZ2lzdGVyX25h bWVzLCBudW1feW1tX3JlZ3MKKysJYW5kIHltbTBoX3JlZ251bS4gIENhbGwgc2V0X2dkYmFyY2hf cmVnaXN0ZXJfbmFtZS4gIFJlcGxhY2UKKysJbnVtX3ZlY3Rvcl9yZWdzIHdpdGggbnVtX3htbV9y ZWdzLiAgUmVwbGFjZSBBTUQ2NF9OVU1fUkVHUworKwl3aXRoIEFNRDY0X0FWWF9OVU1fUkVHUy4K KysKKysJKiBhbWQ2NC10ZGVwLmggKGFtZDY0X3JlZ251bSk6IEFkZCBBTUQ2NF9ZTU0wSF9SRUdO VU0gYW5kCisrCUFNRDY0X1lNTTE1SF9SRUdOVU0uCisrCShBTUQ2NF9BVlhfTlVNX1JFR1MpOiBO ZXcuCisrCShhbWQ2NF9yZWdpc3Rlcl9uYW1lKTogUmVtb3ZlZC4KKysJKGFtZDY0X3JlZ2lzdGVy X3R5cGUpOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LWRhcndpbi10ZGVwLmMgKGkzODZfZGFyd2lu X2luaXRfYWJpKTogUmVwbGFjZQorKwludW1fdmVjdG9yX3JlZ3Mgd2l0aCBudW1feG1tX3JlZ3Mu CisrCisrCSogaTM4Ni1saW51eC1uYXQuYyAocmVnbWFwKTogQ291bnQgOCB1cHBlciBZTU0gcmVn aXN0ZXJzLgorKwkoR0VURlBYUkVHU19TVVBQTElFUyk6IFJlcGxhY2UgSTM4Nl9TU0VfTlVNX1JF R1Mgd2l0aAorKwlJMzg2X0FWWF9OVU1fUkVHUy4KKysJKiBpMzg2LWxpbnV4LXRkZXAuaCAoSTM4 Nl9MSU5VWF9PUklHX0VBWF9SRUdOVU0pOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LW50by10ZGVw LmMgKGkzODZudG9fcmVnaXN0ZXJfYXJlYSk6IFJlcGxhY2UKKysJSTM4N19WRUNUT1IwX1JFR05V TSB3aXRoIEkzODdfWE1NMF9SRUdOVU0uCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfc3NlX3Jl Z2lzdGVyX25hbWVzKTogUmVuYW1lZCB0byAuLi4KKysJKGkzODZfcmVnaXN0ZXJfbmFtZXMpOiBU aGlzLgorKwkoaTM4Nl9hdnhfcmVnaXN0ZXJfbmFtZXMpOiBSZW1vdmVkLgorKwkoaTM4Nl94bW1f bmFtZXMpOiBMaWtld2lzZS4KKysJKGkzODZfdmVjdG9yX3JlZ251bV9wKTogTGlrZXdpc2UuCisr CShpMzg2X3htbV90eXBlKTogTGlrZXdpc2UuCisrCSgpOiBMaWtld2lzZS4KKysJKCk6IExpa2V3 aXNlLgorKwkoaTM4Nl95bW1fbmFtZXMpOiBOZXcuCisrCShpMzg2X3ltbWhfbmFtZXMpOiBMaWtl d2lzZS4KKysJKGkzODZfeW1taF9yZWdudW1fcCk6IExpa2V3aXNlLgorKwkoaTM4Nl95bW1fcmVn bnVtX3ApOiBMaWtld2lzZS4KKysJKGkzODZfcmVnaXN0ZXJfbmFtZSk6IExpa2V3aXNlLgorKwko aTM4Nl95bW1fdHlwZSk6IExpa2V3aXNlLgorKwkoKTogTGlrZXdpc2UuCisrCShpMzg2X214Y3Ny X3JlZ251bV9wKTogUmVwbGFjZSBJMzg3X1ZFQ1RPUjBfUkVHTlVNIHdpdGgKKysJSTM4N19YTU0w X1JFR05VTS4KKysJKGkzODZfZGJ4X3JlZ190b19yZWdudW0pOiBMaWtld2lzZS4KKysJKGkzODZf cHNldWRvX3JlZ2lzdGVyX25hbWUpOiBSZW1vdmUgaTM4Nl94bW1fcmVnbnVtX3AuICBBZGQKKysJ aTM4Nl95bW1fcmVnbnVtX3AuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl90eXBlKTogTGlrZXdp c2UuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTogTGlrZXdpc2UuCisrCShpMzg2X3Bz ZXVkb19yZWdpc3Rlcl93cml0ZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9nbzMyX2luaXRfYWJpKTog UmVwbGFjZSBudW1fdmVjdG9yX3JlZ3Mgd2l0aCBudW1feG1tX3JlZ3MuCisrCShpMzg2X3JlZ2lz dGVyX3JlZ2dyb3VwX3ApOiBSZXBsYWNlIGkzODZfdmVjdG9yX3JlZ251bV9wLiBBZGQKKysJaTM4 Nl95bW1fcmVnbnVtX3AuCisrCShpMzg2X3ZhbGlkYXRlX3RkZXNjX3ApOiBHZXQgU1NFIHJlZ2lz dGVycy4gIFRyeSBBVlggcmVnaXN0ZXJzLgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBSZXBsYWNl IG51bV92ZWN0b3JfcmVncyB3aXRoIG51bV94bW1fcmVncy4KKysJQ2FsbCBzZXRfZ2RiYXJjaF9y ZWdpc3Rlcl9uYW1lLiAgUmVwbGFjZSBJMzg2X1NTRV9OVU1fUkVHUworKwl3aXRoIEkzODZfQVZY X05VTV9SRUdTLiAgU2V0IHltbWhfcmVnaXN0ZXJfbmFtZXMsIHltbTBoX3JlZ251bSwKKysJbnVt X3ltbV9yZWdzIGFuZCB5bW0wX3JlZ251bS4gIENhbGwgc2V0X2dkYmFyY2hfcXN1cHBvcnRlZAor Kwl3aXRoICJ4ODY9eG1sIi4KKysKKysJKiBpMzg2LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogQWRk IG51bV95bW1fcmVncywgeW1tMF9yZWdudW0sCisrCXltbTBoX3JlZ251bSwgeW1taF9yZWdpc3Rl cl9uYW1lcyBhbmQgaTM4Nl95bW1fdHlwZS4gIFJlbW92ZQorKwl4bW0wX3JlZ251bSwgbnVtX3Zl Y3Rvcl9yZWdzIGFuZCBpMzg2X3htbV90eXBlLgorKwkoaTM4Nl9yZWdudW0pOiBBZGQgSTM4Nl9Z TU0wSF9SRUdOVU0gYW5kIEkzODZfWU1NN0hfUkVHTlVNLgorKwkoSTM4Nl9BVlhfTlVNX1JFR1Mp OiBOZXcuCisrCShpMzg2X3ltbV9yZWdudW1fcCk6IExpa2V3aXNlLgorKwkoaTM4Nl95bW1oX3Jl Z251bV9wKTogTGlrZXdpc2UuCisrCShJMzg2X01BWF9SRUdJU1RFUl9TSVpFKTogQ2hhbmdlZCB0 byAxNi4KKysJKGkzODZfeG1tX3JlZ251bV9wKTogUmVtb3ZlZC4KKysKKysJKiBpMzg3LXRkZXAu YyAoaTM4N19zdXBwbHlfZnNhdmUpOiBSZXBsYWNlIEkzODdfVkVDVE9SMF9SRUdOVU0KKysJd2l0 aCBJMzg3X1hNTTBfUkVHTlVNLgorKwkoaTM4N19jb2xsZWN0X2ZzYXZlKTogTGlrZXdpc2UuCisr CShpMzg3X3N1cHBseV9meHNhdmUpOiBSZXBsYWNlIEkzODdfVkVDVE9SMF9SRUdOVU0vbnVtX3Zl Y3Rvcl9yZWdzCisrCXdpdGggSTM4N19YTU0wX1JFR05VTS9udW1fdmVjdG9yX3JlZ3MuCisrCShp Mzg3X2NvbGxlY3RfZnhzYXZlKTogTGlrZXdpc2UuCisrCSh4c2F2ZV9zc2Vfb2Zmc2V0KTogUmVt b3ZlZC4KKysJKFhTQVZFX1NTRV9BRERSKTogTGlrZXdpc2UuCisrCSh4c2F2ZV9hdnhoX29mZnNl dCk6IExpa2V3aXNlLgorKwkoWFNBVkVfQVZYSF9BRERSKTogTGlrZXdpc2UuCisrCSh4c2F2ZV9v ZmZzZXQpOiBOZXcuCisrCShYU0FWRV9BRERSKTogTGlrZXdpc2UuCisrCShpMzg3X3N1cHBseV94 c2F2ZSk6IFJld3JpdGUuCisrCShpMzg3X2NvbGxlY3RfeHNhdmUpOiBMaWtld2lzZS4KKysKKysJ KiBpMzg3LXRkZXAuaCAoSTM4N19OVU1fVkVDVE9SX1JFR1MpOiBSZW5hbWVkIHRvIC4uLgorKwko STM4N19OVU1fWE1NX1JFR1MpOiBUaGlzLgorKwkoSTM4N19OVU1fWU1NX1JFR1MpOiBOZXcuCisr CShJMzg3X1lNTTBIX1JFR05VTSk6IExpa2V3aXNlLgorKwkoSTM4N19WRUNUT1IwX1JFR05VTSk6 IFJlbmFtZWQgdG8gLi4uCisrCShJMzg3X1hNTTBfUkVHTlVNKTogVGhpcy4KKysJKEkzODdfTVhD U1JfUkVHTlVNKTogVXBkYXRlZC4KKysJKEkzODdfWU1NRU5ESF9SRUdOVU0pOiBOZXcuCisrCisr MjAxMC0wMy0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGZlYXR1 cmVzL2kzODYvMzJiaXQtYXZ4LnhtbDogT25seSBkZWZpbmUgdXBwZXIgWU1NIHJlZ2lzdGVycy4K KysJKiBmZWF0dXJlcy9pMzg2LzY0Yml0LWF2eC54bWw6IExpa2V3aXNlLgorKworKwkqIGZlYXR1 cmVzL2kzODYvYW1kNjQtYXZ4LWxpbnV4LnhtbDogSW5jbHVkZSA2NGJpdC1zc2UueG1sLgorKwkq IGZlYXR1cmVzL2kzODYvYW1kNjQtYXZ4LnhtbDogTGlrZXdpc2UuCisrCisrCSogZmVhdHVyZXMv aTM4Ni9pMzg2LWF2eC1saW51eC54bWw6IEluY2x1ZGUgMzJiaXQtc3NlLnhtbC4KKysJKiBmZWF0 dXJlcy9pMzg2L2kzODYtYXZ4LnhtbDogTGlrZXdpc2UuCisrCisrCSogZmVhdHVyZXMvaTM4Ni9h bWQ2NC1hdngtbGludXguYzogUmVnZW5lcmF0ZWQuCisrCSogZmVhdHVyZXMvaTM4Ni9hbWQ2NC1h dnguYzogTGlrZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC1saW51eC5jOiBMaWtl d2lzZS4KKysJKiBmZWF0dXJlcy9pMzg2L2kzODYtYXZ4LmM6IExpa2V3aXNlLgorKwkqIHJlZ2Zv cm1hdHMvaTM4Ni9hbWQ2NC1hdngtbGludXguZGF0OiBMaWtld2lzZS4KKysJKiByZWdmb3JtYXRz L2kzODYvYW1kNjQtYXZ4LmRhdDogTGlrZXdpc2UuCisrCSogcmVnZm9ybWF0cy9pMzg2L2kzODYt YXZ4LWxpbnV4LmRhdDogTGlrZXdpc2UuCisrCSogcmVnZm9ybWF0cy9pMzg2L2kzODYtYXZ4LmRh dDogTGlrZXdpc2UuCisrCisrMjAxMC0wMy0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwu Y29tPgorKworKwkqIGkzODYtbGludXgtdGRlcC5oIChYU0FWRV9YQ1IwX09GRlNFVCk6IFJlbmFt ZWQgdG8gLi4uCisrCShJMzg2X0xJTlVYX1hTQVZFX1hDUjBfT0ZGU0VUKTogVGhpcy4KKysJKiBh bWQ2NC1saW51eC10ZGVwLmMgKGFtZDY0X2xpbnV4X2luaXRfYWJpKTogVXBkYXRlZC4KKysJKiBp Mzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9jb3JlX3JlYWRfeGNyMCk6IExpa2V3aXNlLgor KwkoaTM4Nl9saW51eF9pbml0X2FiaSk6IExpa2V3aXNlLgorKworKzIwMTAtMDMtMDIgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKGFt ZDY0X2xpbnV4X2luaXRfYWJpKTogU2V0IHhzYXZlX3hjcjBfb2Zmc2V0LgorKwkqIGkzODYtbGlu dXgtdGRlcC5jIChpMzg2X2xpbnV4X2luaXRfYWJpKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni10 ZGVwLmMgKGkzODZfZ2RiYXJjaF9pbml0KTogU2V0IHhzYXZlX3hjcjBfb2Zmc2V0IHRvIC0xLgor KworKwkqIGkzODctdGRlcC5jIChpMzg3X2NvbGxlY3RfeHNhdmUpOiBVcGRhdGVkLgorKworKwkq IGkzODctdGRlcC5oIChYU0FWRV9YQ1IwX09GRlNFVCk6IE1vdmVkIHRvIC4uLgorKwkqIGkzODYt bGludXgtdGRlcC5oIChYU0FWRV9YQ1IwX09GRlNFVCk6IEhlcmUuCisrCisrMjAxMC0wMy0wMSAg SC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGZlYXR1cmVzL2kzODYvMzJi aXQtYXZ4LnhtbDogRGVmaW5lIGkzODZfbXhjc3IuCisrCSogZmVhdHVyZXMvaTM4Ni82NGJpdC1h dngueG1sOiBMaWtld2lzZS4KKysKKysJKiBmZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC1saW51eC5j OiBSZWdlbmVyYXRlZC4KKysJKiBmZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC5jOiBMaWtld2lzZS4K KysJKiBmZWF0dXJlcy9pMzg2L2kzODYtYXZ4LWxpbnV4LmM6IExpa2V3aXNlLgorKwkqIGZlYXR1 cmVzL2kzODYvaTM4Ni1hdnguYzogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0yNSAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3htbV9yZWdu dW1fcCk6IE9wdGltaXplZC4KKysJKGkzODZfdmVjdG9yX3JlZ251bV9wKTogTGlrZXdpc2UuCisr CisrMjAxMC0wMi0yNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFt ZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51eF9zdG9yZV9pbmZlcmlvcl9yZWdpc3RlcnMpOiBQ YXNzCisrCTAgdG8gYW1kNjRfY29sbGVjdF94c2F2ZS4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKGFt ZDY0X2NvbGxlY3RfeHN0YXRlcmVnc2V0KTogUGFzcyAxIHRvCisrCWFtZDY0X2NvbGxlY3RfeHNh dmUuCisrCShhbWQ2NF9jb2xsZWN0X3hzYXZlKTogQWRkIGFuIGludGVnZXIgYXJndW1lbnQgYW5k IHBhc3MgaXQgdG8KKysJaTM4N19jb2xsZWN0X3hzYXZlLgorKworKwkqIGFtZDY0LXRkZXAuaCAo YW1kNjRfY29sbGVjdF94c2F2ZSk6IEFkZCBhbiBpbnRlZ2VyIGFyZ3VtZW50LgorKwkqIGkzODct dGRlcC5oIChpMzg3X2NvbGxlY3RfeHNhdmUpOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LWxpbnV4 LW5hdC5jIChzdG9yZV94c3RhdGVyZWdzKTogUGFzcyAxIHRvCisrCWkzODdfY29sbGVjdF94c2F2 ZS4KKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9jb2xsZWN0X3hzdGF0ZXJlZ3NldCk6IExpa2V3aXNl LgorKworKwkqIGkzODctdGRlcC5jIChpMzg3X2NvbGxlY3RfeHNhdmUpOiBBZGQgYW4gaW50ZWdl ciBhcmd1bWVudAorKwl0byBpbmRpY2F0ZSBnY29yZS4gIFVwZGF0ZSB0aGUgZmlyc3QgOCBieXRl cyBvZiB0aGUKKysJc3dfdXNhYmxlX2J5dGVzWzQ2NC4uNDY3XSBhbmQgYHhzdGF0ZV9idicgd2l0 aCBYQ1IwIGZvciBnY29yZS4KKysKKysyMDEwLTAyLTI0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+CisrCisrCSogaTM4Ny10ZGVwLmMgKGkzODdfY29sbGVjdF94c2F2ZSk6IEZpeCBt b3JlIHR5cG9zLgorKworKzIwMTAtMDItMjQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBpMzg3LXRkZXAuYyAoaTM4N19jb2xsZWN0X3hzYXZlKTogRml4IGEgdHlwby4K KysKKysyMDEwLTAyLTI0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSog YW1kNjQtbGludXgtbmF0LmMgKGFtZDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24pOiBGaXggYSB0 eXBvLgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3ApOiBSZXR1 cm4gMCBmb3IgcHNldWRvCisrCVhNTSByZWdpc3RlcnMgaWYgZ3JvdXAgaXNuJ3QgU1NFLgorKwor KzIwMTAtMDItMjQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2 NC1saW51eC1uYXQuYzogSW5jbHVkZSAicmVnc2V0LmgiLgorKwkoYW1kNjRfbGludXhfcmVhZF9k ZXNjcmlwdGlvbik6IFNldCAucmVnLXhzdGF0ZSBzZWN0aW9uIHNpemUgaWYKKysJaXQgaXMgc3Vw cG9ydGVkLgorKwkoX2luaXRpYWxpemVfYW1kNjRfbGludXhfbmF0KTogQ2FsbCBpMzg2X3hzdGF0 ZV9pbml0LgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAuYzogSW5jbHVkZSAicmVnc2V0LmgiIGJl Zm9yZQorKwkiYW1kNjQtbGludXgtdGRlcC5oIi4KKysJKGFtZDY0X2xpbnV4X3JlZ3NldF9zZWN0 aW9ucyk6IE1ha2UgaXQgZ2xvYmFsLgorKwkoX2luaXRpYWxpemVfYW1kNjRfbGludXhfdGRlcCk6 IERvbid0IGNhbGwgaTM4Nl94c3RhdGVfaW5pdC4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmgg KGFtZDY0X2xpbnV4X3JlZ3NldF9zZWN0aW9ucyk6IE5ldy4KKysKKysJKiBjb25maWcvaTM4Ni9u bS1saW51eC14c3RhdGUuaCAoRklMTF9YU1RBVEVSRUdTRVQpOiBSZW1vdmVkLgorKworKwkqIGkz ODYtbGludXgtbmF0LmM6IEluY2x1ZGUgInJlZ3NldC5oIi4KKysJKGkzODZfbGludXhfcmVhZF9k ZXNjcmlwdGlvbik6IFNldCAucmVnLXhzdGF0ZSBzZWN0aW9uIHNpemUgaWYKKysJaXQgaXMgc3Vw cG9ydGVkLgorKwkoX2luaXRpYWxpemVfaTM4Nl9saW51eF9uYXQpOiBDYWxsIGkzODZfeHN0YXRl X2luaXQuCisrCisrCSogaTM4Ni1saW51eC10ZGVwLmM6IEluY2x1ZGUgInJlZ3NldC5oIiBiZWZv cmUgImluZmVyaW9yLmgiLgorKwkoaTM4Nl9saW51eF9yZWdzZXRfc2VjdGlvbnMpOiBNYWtlIGl0 IGdsb2JhbC4KKysJKF9pbml0aWFsaXplX2kzODZfbGludXhfdGRlcCk6IERvbid0IGNhbGwgaTM4 Nl94c3RhdGVfaW5pdC4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuaCAoaTM4Nl9saW51eF9yZWdz ZXRfc2VjdGlvbnMpOiBOZXcuCisrCisrMjAxMC0wMi0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3ZhbGlkYXRlX3RkZXNjX3ApOiBV c2UgbnVtX3ZlY3Rvcl9yZWdzIGluc3RlYWQKKysJb2YgbnVtX3htbV9yZWdzIHRvIGNoZWNrIHZl Y3RvciByZWdpc3RlcnMuCisrCisrMjAxMC0wMi0yMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIGZlYXR1cmVzL2kzODYvTWFrZWZpbGU6IE5ldy4KKysKKysyMDEwLTAy LTE5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny10ZGVwLmMg KGkzODdfc3VwcGx5X3hzYXZlKTogUmVtb3ZlIG9uZSByZWdjYWNoZV9yYXdfc3VwcGx5CisrCWZv ciB4ODcuCisrCisrMjAxMC0wMi0xOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIGFtZDY0LWxpbnV4LW5hdC5jIChoYXZlX3B0cmFjZV9nZXRyZWdzZXQpOiBNYWtlIGl0 IHN0YXRpYworKwlhbmQgaW5pdGlhbGl6ZWQgdG8gLTEuCisrCShhbWQ2NF9saW51eF9mZXRjaF9p bmZlcmlvcl9yZWdpc3RlcnMpOiBFcnJvciBpZiBQVFJBQ0VfR0VUUkVHU0VUCisrCWZhaWxzLgor KwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzKTogTGlrZXdpc2UuCisrCShh bWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogU2V0IGhhdmVfcHRyYWNlX2dldHJlZ3NldC4K KysJQ2hlY2sgdGhlIG5hdGl2ZSBYQ1IwIG9ubHkgaWYgUFRSQUNFX0dFVFJFR1NFVCBpcyBhdmFp bGFibGUuCisrCShfaW5pdGlhbGl6ZV9hbWQ2NF9saW51eF9uYXQpOiBEb24ndCBzZXQgaGF2ZV9w dHJhY2VfZ2V0cmVnc2V0LgorKworKwkqIGkzODYtbGludXgtbmF0LmMgKGhhdmVfcHRyYWNlX2dl dHJlZ3NldCk6IE1ha2UgaXQgc3RhdGljCisrCWFuZCBpbml0aWFsaXplZCB0byAtMS4KKysJKGZl dGNoX3hzdGF0ZXJlZ3MpOiBFcnJvciBpZiBQVFJBQ0VfR0VUUkVHU0VUIGZhaWxzLgorKwkoc3Rv cmVfeHN0YXRlcmVncyk6IExpa2V3aXNlLgorKwkoaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9u KTogU2V0IGhhdmVfcHRyYWNlX2dldHJlZ3NldC4KKysJQ2hlY2sgdGhlIG5hdGl2ZSBYQ1IwIG9u bHkgaWYgUFRSQUNFX0dFVFJFR1NFVCBpcyBhdmFpbGFibGUuCisrCShfaW5pdGlhbGl6ZV9pMzg2 X2xpbnV4X25hdCk6IERvbid0IHNldCBoYXZlX3B0cmFjZV9nZXRyZWdzZXQuCisrCisrMjAxMC0w Mi0xOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGNvbW1vbi9pMzg2 LXhzdGF0ZS5oIChYU1RBVEVfU1NFX01BU0spOiBBZGQgYml0X1hTVEFURV9YODcuCisrCShYU1RB VEVfTUFYX01BU0spOiBEZWZpbmVkIHdpdGggWFNUQVRFX0FWWF9NQVNLIG9ubHkuCisrCShYU1RB VEVfU1NFX01BU0tfU1RSSU5HKTogVXBkYXRlZC4KKysJKFhTVEFURV9BVlhfTUFTS19TVFJJTkcp OiBMaWtld2lzZS4KKysKKysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfeHNhdmUpOiBBbHNv IGNoZWNrIHg4NyByZWdpc3RlcnMuCisrCShpMzg3X2NvbGxlY3RfeHNhdmUpOiBMaWtld2lzZS4K KysKKysyMDEwLTAyLTE5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSog aTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF9pbml0KTogVXNlIG51bV92ZWN0b3JfcmVncyBpbnN0 ZWFkCisrCW9mIG51bV94bW1fcmVncyB0byBjaGVjayB2ZWN0b3IgcmVnaXN0ZXJzLgorKworKzIw MTAtMDItMTggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC10 ZGVwLmMgKGFtZDY0X2luaXRfYWJpKTogU2V0IG51bV94bW1fcmVncyBiYXNlZCBvbgorKwl2ZWN0 b3IgZmVhdHVyZS4KKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX2luaXQpOiBMaWtld2lz ZS4KKysKKysJKiBpMzg2LWRhcndpbi10ZGVwLmMgKGkzODZfZGFyd2luX2luaXRfYWJpKTogUmVw bGFjZSBudW1feG1tX3JlZ3MKKysJd2l0aCBudW1fdmVjdG9yX3JlZ3MuCisrCisrMjAxMC0wMi0x OCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LXRkZXAuYyAo YW1kNjRfaW5pdF9hYmkpOiBTZXQgbnVtX3ZlY3Rvcl9yZWdzIHRvIDE2LgorKworKwkqIGkzODYt dGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6IEFkZCBudW1feG1tX3JlZ3MgdG8KKysJc2V0X2dk YmFyY2hfbnVtX3BzZXVkb19yZWdzLgorKworKzIwMTAtMDItMTggIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfcmVh ZF9kZXNjcmlwdGlvbik6IENoZWNrIHRoZQorKwluYXRpdmUgWENSMC4KKysKKysJKiBhbWQ2NC1s aW51eC10ZGVwLmM6IEluY2x1ZGUgImZlYXR1cmVzL2kzODYvYW1kNjQtYXZ4LWxpbnV4LmMiLgor KwkoYW1kNjRfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogQ2hlY2sgWENSMCBmcm9tIGNv cmUgZHVtcC4KKysJKF9pbml0aWFsaXplX2FtZDY0X2xpbnV4X3RkZXApOiBDYWxsCisrCWluaXRp YWxpemVfdGRlc2NfYW1kNjRfYXZ4X2xpbnV4LgorKworKwkqIGFtZDY0LXRkZXAuYzogSW5jbHVk ZSAiZmVhdHVyZXMvaTM4Ni9hbWQ2NC1hdnguYyIuCisrCShBTUQ2NF9OVU1fUkVHUyk6IFVzZSBh bWQ2NF9zc2VfcmVnaXN0ZXJfbmFtZXMuCisrCShhbWQ2NF94bW1fbmFtZXMpOiBNYWtlIGl0IHN0 YXRpYy4KKysJKGFtZDY0X3BzZXVkb19yZWdpc3Rlcl9uYW1lKTogSGFuZGxlIFhNTSBwc2V1ZCBy ZWdpc3RlcnMuCisrCShhbWQ2NF9pbml0X2FiaSk6IFNldCByZWdpc3Rlcl9uYW1lcyBiYXNlZCBv biB0YXJnZXQgZGVzY3JpcHRpb24uCisrCShfaW5pdGlhbGl6ZV9hbWQ2NF90ZGVwKTogQ2FsbCBp bml0aWFsaXplX3RkZXNjX2FtZDY0X2F2eC4KKysKKysJKiBpMzg2LWxpbnV4LW5hdC5jIChpMzg2 X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24pOiBDaGVjayB0aGUKKysJbmF0aXZlIFhDUjAuCisrCisr CSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfY29yZV9yZWFkX3hjcjApOiBOZXcuCisr CShpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IFVzZSBpdC4gIFJlbW92ZSBCRkQ2 NC4KKysJKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IFJlbW92ZWQuCisrCShfaW5pdGlh bGl6ZV9pMzg2X2xpbnV4X3RkZXApOiBDYWxsCisrCWluaXRpYWxpemVfdGRlc2NfaTM4Nl9hdnhf bGludXguCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfeG1tX3JlZ251bV9wKTogTWFrZSBpdCBn bG9iYWwuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lKTogUmVtb3ZlIEJGRDY0LgorKwko aTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCk6IExpa2V3aXNlLgorKwkoaTM4Nl9wc2V1ZG9fcmVn aXN0ZXJfd3JpdGUpOiBMaWtld2lzZS4KKysJKGkzODZfZ2RiYXJjaF9pbml0KTogU2V0IHJlZ2lz dGVyX25hbWVzIGJhc2VkIG9uIHRhcmdldAorKwlkZXNjcmlwdGlvbi4KKysKKysyMDEwLTAyLTEz ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVw LmMgKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogUHJvcGVybHkKKysJY2hlY2sg ZXh0ZW5kZWQgc3RhdGUgc2l6ZS4KKysJKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IFBy b3Blcmx5IGNoZWNrIHRoZSBuYXRpdmUgWENSMC4KKysKKysyMDEwLTAyLTEzICBILkouIEx1ICA8 aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogY29tbW9uL2kzODYteHN0YXRlLmggKFhTVEFU RV9TU0VfTUFTSyk6IERlZmluZWQgd2l0aAorKwliaXRfWFNUQVRFX1NTRS4KKysJKFhTVEFURV9B VlhfTUFTSyk6IERlZmluZWQgd2l0aCBYU1RBVEVfU1NFX01BU0sgYW5kIGJpdF9YU1RBVEVfQVZY LgorKwkoWFNUQVRFX01BWF9NQVNLKTogRGVmaW5lZCB3aXRoIFhTVEFURV9BVlhfTUFTSyBhbmQg Yml0X1hTVEFURV9YODcuCisrCShYU1RBVEVfU1NFX01BU0tfU1RSSU5HKTogVXBkYXRlZC4KKysJ KFhTVEFURV9BVlhfTUFTS19TVFJJTkcpOiBMaWtld2lzZS4KKysKKysJKiAzODYtbGludXgtdGRl cC5jIChpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IFVzZQorKwlYU1RBVEVfWFhY X01BU0suCisrCShpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IExpa2V3aXNlLgor KworKwkqIGkzODYtdGRlcC5jIChpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3ApOiBDaGVjayB4Y3Iw IGluc3RlYWQKKysJb2YgdmVjdG9yX3VuaXQuCisrCShpMzg2X2dkYmFyY2hfaW5pdCk6IFNldCB4 Y3IwIGluc3RlYWQgb2YgdmVjdG9yX3VuaXQuCisrCisrCSogaTM4Ni10ZGVwLmggKHg4Nl92ZWN0 b3JfdW5pdCk6IFJlbW92ZWQuCisrCShnZGJhcmNoX3RkZXApOiBSZW1vdmUgdmVjdG9yX3VuaXQu ICBBZGQgeGNyMC4KKysKKysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfZnhzYXZlKTogQ2hl Y2sgeGNyMCBpbnN0ZWFkIG9mCisrCXZlY3Rvcl91bml0LgorKwkoaTM4N19zdXBwbHlfeHNhdmUp OiBMaWtld2lzZS4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKworKzIwMTAt MDItMTEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAu YyAoaTM4Nl9nZGJhcmNoX2luaXQpOiBEb24ndCBzZXQgeGNyMCBvbiB4ODYgaG9zdC4KKysJKF9p bml0aWFsaXplX2kzODZfdGRlcCk6IERvbid0IGNhbGwgaTM4Nl94c3RhdGVfaW5pdCBvbiB4ODYg aG9zdC4KKysKKysJKiBpMzg2LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogUmVtb3ZlIHhjcjAuCisr CisrCSogaTM4Ny10ZGVwLmMgKGkzODdfc3VwcGx5X3hzYXZlKTogUmVwbGFjZSB0ZGVwLT54Y3Iw IHdpdGgKKysJaTM4Nl94c3RhdGUueGNyMC4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3 aXNlLgorKworKzIwMTAtMDItMTEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24p OiBEb24ndAorKwlzZXQgeGNyMCBoZXJlLgorKworKzIwMTAtMDItMTEgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKF9pbml0aWFsaXpl X2FtZDY0X2xpbnV4X3RkZXApOiBSZS1pbmRlbnQuCisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMg KGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IERvbid0IHNldAorKwl4Y3IwIGhlcmUuCisr CShfaW5pdGlhbGl6ZV9pMzg2X2xpbnV4X3RkZXApOiBSZS1pbmRlbnQuCisrCisrCSogaTM4Ni10 ZGVwLmMgKGkzODZfZ2RiYXJjaF9pbml0KTogU2V0IHhjcjAgb24geDg2IGhvc3QuCisrCShfaW5p dGlhbGl6ZV9pMzg2X3RkZXApOiBDYWxsIGkzODZfeHN0YXRlX2luaXQgb24geDg2IGhvc3QuCisr CisrCSogaTM4Ni10ZGVwLmggKGdkYmFyY2hfdGRlcCk6IE1lbnRpb24geGNyMCBpcyB1c2VkIG9u bHkgZm9yCisrCW5hdGl2ZSBkZWJ1Zy4KKysKKysyMDEwLTAyLTExICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmMgKGFtZDY0X2xpbnV4X2Zl dGNoX2luZmVyaW9yX3JlZ2lzdGVycyk6IENhc3QKKysJTlRfWDg2X1hTVEFURSB0byB1bnNpZ25l ZCBpbnQuCisrCShhbWQ2NF9saW51eF9zdG9yZV9pbmZlcmlvcl9yZWdpc3RlcnMpOiBMaWtld2lz ZS4KKysJKiBpMzg2LWxpbnV4LW5hdC5jIChmZXRjaF94c3RhdGVyZWdzKTogTGlrZXdpc2UuCisr CShzdG9yZV94c3RhdGVyZWdzKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0xMCAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jOiBJbmNsdWRl ICJlbGYvY29tbW9uLmgiIGFuZCA8c3lzL3Vpby5oPi4KKysJKGFtZDY0X2xpbnV4X2ZldGNoX2lu ZmVyaW9yX3JlZ2lzdGVycyk6IFVzZSBpb3ZlYy4KKysJKGFtZDY0X2xpbnV4X3N0b3JlX2luZmVy aW9yX3JlZ2lzdGVycyk6IExpa2V3aXNlLgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAuYyAoX2lu aXRpYWxpemVfYW1kNjRfbGludXhfdGRlcCk6IERvbid0CisrCWNoZWNrIGkzODZfeHN0YXRlLnNp emUuCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKF9pbml0aWFsaXplX2kzODZfbGludXhfdGRlcCk6 IExpa2V3aXNlLgorKworKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4LXhzdGF0ZS5oOiBEb24ndCBp bmNsdWRlICJlbGYvY29tbW9uLmgiLgorKwkoUFRSQUNFX1JFR1NFVF9OVF9TSElGVCk6IFJlbW92 ZWQuCisrCShQVFJBQ0VfUkVHU0VUX01BWF9TSVpFKTogTGlrZXdpc2UuCisrCShQVFJBQ0VfUkVH U0VUX1hTVEFURV9BRERSKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni1saW51eC1uYXQuYzogSW5j bHVkZSAiZWxmL2NvbW1vbi5oIiBhbmQgPHN5cy91aW8uaD4uCisrCShmZXRjaF94c3RhdGVyZWdz KTogVXNlIGlvdmVjLgorKwkoc3RvcmVfeHN0YXRlcmVncyk6IExpa2V3aXNlLgorKworKzIwMTAt MDItMDkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAu YyAoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCk6IFByb3Blcmx5IGNvbnZlcnQKKysJWE1NIHBz ZXVkbyByZWdpc3RlciB0byB2ZWN0b3IgcmVnaXN0ZXIuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rl cl93cml0ZSk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDkgIEguSi4gTHUgIDxob25naml1Lmx1 QGludGVsLmNvbT4KKysKKysJKiBmZWF0dXJlcy9pMzg2LzMyYml0LWF2eC54bWw6IEZpeCB0eXBv cy4KKysJKiBmZWF0dXJlcy9pMzg2LzY0Yml0LWF2eC54bWw6IExpa2V3aXNlLgorKworKwkqIGZl YXR1cmVzL2kzODYvYW1kNjQtYXZ4LWxpbnV4LmM6IFJlZ2VuZXJhdGVkLgorKwkqIGZlYXR1cmVz L2kzODYvYW1kNjQtYXZ4LmM6IExpa2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYvaTM4Ni1hdngt bGludXguYzogTGlrZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC5jOiBMaWtld2lz ZS4KKysKKysyMDEwLTAyLTA5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF9pbml0KTogQ291bnQgWE1NIHBzZXVkbyByZWdp c3RlcnMuCisrCisrMjAxMC0wMi0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIGkzODctdGRlcC5oIChJMzg3X1hNTTBfUkVHTlVNKTogUmVuYW1lZCB0byAuLi4KKysJ KEkzODdfVkVDVE9SMF9SRUdOVU0pOiBUaGlzLgorKwkoSTM4N19NWENTUl9SRUdOVU0pOiBVcGRh dGVkLgorKworKwkqIGkzODYtbnRvLXRkZXAuYyAoaTM4Nm50b19yZWdpc3Rlcl9hcmVhKTogUmVw bGFjZQorKwlJMzg3X1hNTTBfUkVHTlVNIHdpdGggSTM4N19WRUNUT1IwX1JFR05VTS4KKysKKysJ KiBpMzg2LXRkZXAuYyAoaTM4Nl9zc2VfcmVnbnVtX3ApOiBSZW5hbWVkIHRvIC4uLgorKwkoaTM4 Nl92ZWN0b3JfcmVnbnVtX3ApOiBUaGlzLiAgUmVwbGFjZSBJMzg3X1hNTTBfUkVHTlVNCisrCXdp dGggSTM4N19WRUNUT1IwX1JFR05VTS4KKysJKGkzODZfZnBjX3JlZ251bV9wKTogUmVwbGFjZSBJ Mzg3X1hNTTBfUkVHTlVNIHdpdGgKKysJSTM4N19WRUNUT1IwX1JFR05VTS4KKysJKGkzODZfcmVn aXN0ZXJfcmVnZ3JvdXBfcCk6IFVwZGF0ZWQuICBIYW5kbGUgWE1NIHBzZXVkbworKwlyZWdpc3Rl cnMuCisrCisrCSogaTM4Ny10ZGVwLmMgKGkzODZfZnBjX3JlZ251bV9wKTogUmVwbGFjZSBJMzg3 X1hNTTBfUkVHTlVNCisrCXdpdGggSTM4N19WRUNUT1IwX1JFR05VTS4KKysJKGkzODdfc3VwcGx5 X2Z4c2F2ZSk6IExpa2V3aXNlLgorKwkoaTM4N19jb2xsZWN0X2Z4c2F2ZSk6IExpa2V3aXNlLgor KwkoWFNBVkVfU1NFX0FERFIpOiBMaWtld2lzZS4KKysJKFhTQVZFX0FWWEhfQUREUik6IExpa2V3 aXNlLgorKwkoaTM4N19zdXBwbHlfeHNhdmUpOiBMaWtld2lzZS4KKysJKGkzODdfY29sbGVjdF94 c2F2ZSk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDkgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk6 IEhhbmRsZSBYTU0gcHNldWRvCisrCXJlZ2lzdGVycy4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVy X3R5cGUpOiBMaWtld2lzZS4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVyX3JlYWQpOiBMaWtld2lz ZS4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVyX3dyaXRlKTogTGlrZXdpc2UuCisrCShpMzg2X2dk YmFyY2hfaW5pdCk6IExpa2V3aXNlLgorKwkoaTM4Nl94bW1fdHlwZSk6IE5ldy4KKysKKysJKiAz ODYtdGRlcC5oIChnZGJhcmNoX3RkZXApOiBBZGQgbnVtX3htbV9yZWdzLCB4bW0wX3JlZ251bQor KwlhbmQgaTM4Nl94bW1fdHlwZS4KKysKKysyMDEwLTAyLTA5ICBILkouIEx1ICA8aG9uZ2ppdS5s dUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF94bW1fbmFtZXMpOiBOZXcu CisrCShhbWQ2NF9udW1fcHNldWRvX3JlZ3MpOiBVcGRhdGVkLgorKworKwkqIGFtZDY0LXRkZXAu aCAoYW1kNjRfeG1tX25hbWVzKTogTmV3LgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3htbV9u YW1lcyk6IE5ldy4KKysJKGkzODZfeG1tX3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShpMzg2X251 bV9wc2V1ZG9fcmVncyk6IFVwZGF0ZWQuCisrCisrMjAxMC0wMi0wOSAgSC5KLiBMdSAgPGhvbmdq aXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5oIChnZGJhcmNoX3RkZXApOiBSZW5h bWUgbnVtX3htbV9yZWdzIHRvCisrCW51bV92ZWN0b3JfcmVncy4KKysKKysJKiBpMzg3LXRkZXAu aCAoSTM4N19OVU1fWE1NX1JFR1MpOiBSZW1vdmVkLgorKwkoSTM4N19OVU1fVkVDVE9SX1JFR1Mp OiBOZXcuCisrCShJMzg3X01YQ1NSX1JFR05VTSk6IFVwZGF0ZWQuCisrCisrCSogYW1kNjQtdGRl cC5jIChhbWQ2NF9pbml0X2FiaSk6IFVwZGF0ZWQuCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfc3Nl X3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShpMzg2X214Y3NyX3JlZ251bV9wKTogTGlrZXdpc2Uu CisrCShpMzg2X2dvMzJfaW5pdF9hYmkpOiBMaWtld2lzZS4KKysJKGkzODZfZ2RiYXJjaF9pbml0 KTogTGlrZXdpc2UuCisrCSogaTM4Ny10ZGVwLmMgKGkzODdfc3VwcGx5X2Z4c2F2ZSk6IExpa2V3 aXNlLgorKwkoaTM4N19jb2xsZWN0X2Z4c2F2ZSk6IExpa2V3aXNlLgorKwkoaTM4N19zdXBwbHlf eHNhdmUpOiBMaWtld2lzZS4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKwor KzIwMTAtMDItMDkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2 NC1saW51eC1uYXQuYzogUmVwbGFjZSBQVFJBQ0VfR0VUWFNUQVRFUkVHUyB3aXRoCisrCVBUUkFD RV9HRVRSRUdTRVQgaW4gY29tbWVudHMuCisrCShoYXZlX3B0cmFjZV9nZXR4c3RhdGVyZWdzKTog UmVuYW1lZCB0byAuLi4KKysJKGhhdmVfcHRyYWNlX2dldHJlZ3NldCk6IFRoaXMuCisrCShhbWQ2 NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMpOiBVcGRhdGVkIHRvIHVzZQorKwlQVFJB Q0VfR0VUUkVHU0VULgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzKTog VXBkYXRlZCB0byB1c2UKKysJUFRSQUNFX0dFVFJFR1NFVCBhbmQgUFRSQUNFX1NFVFJFR1NFVC4K KysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKF9pbml0aWFsaXplX2FtZDY0X2xpbnV4X3RkZXAp OiBBc3NlcnQKKysJdGhlIFhTQVZFIGV4dGVuZGVkIHN0YXRlIHNpemUuCisrCisrCSogaTM4Ni1s aW51eC1uYXQuYzogUmVwbGFjZSBQVFJBQ0VfR0VUWFNUQVRFUkVHUyB3aXRoCisrCVBUUkFDRV9H RVRSRUdTRVQgaW4gY29tbWVudHMuCisrCShoYXZlX3B0cmFjZV9nZXR4c3RhdGVyZWdzKTogUmVu YW1lZCB0byAuLi4KKysJKGhhdmVfcHRyYWNlX2dldHJlZ3NldCk6IFRoaXMuCisrCShmZXRjaF94 c3RhdGVyZWdzKTogVXBkYXRlZCB0byB1c2UgUFRSQUNFX0dFVFJFR1NFVC4KKysJKHN0b3JlX3hz dGF0ZXJlZ3MpOiBVcGRhdGVkIHRvIHVzZSBQVFJBQ0VfR0VUUkVHU0VUIGFuZAorKwlQVFJBQ0Vf U0VUUkVHU0VULgorKworKwkqIGkzODYtbGludXgtdGRlcC5jIChfaW5pdGlhbGl6ZV9pMzg2X2xp bnV4X3RkZXApOiBBc3NlcnQKKysJdGhlIFhTQVZFIGV4dGVuZGVkIHN0YXRlIHNpemUuCisrCisr CSogY29uZmlnL2kzODYvbm0tbGludXgteHN0YXRlLmg6IEluY2x1ZGUgImVsZi9jb21tb24uaCIu CisrCShQVFJBQ0VfR0VUWFNUQVRFUkVHUyk6IFJlbW92ZWQuCisrCShQVFJBQ0VfU0VUWFNUQVRF UkVHUyk6IExpa2V3aXNlLgorKwkoUFRSQUNFX0dFVFJFR1NFVCk6IE5ldy4KKysJKFBUUkFDRV9T RVRSRUdTRVQpOiBMaWtld2lzZS4KKysJKFBUUkFDRV9SRUdTRVRfTlRfU0hJRlQpOiBMaWtld2lz ZS4KKysJKFBUUkFDRV9SRUdTRVRfTUFYX1NJWkUpOiBMaWtld2lzZS4KKysJKFBUUkFDRV9SRUdT RVRfWFNUQVRFX0FERFIpOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTA4ICBILkouIEx1ICA8aG9u Z2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmM6IFJlcGxhY2UgeDg2 LTY0L3g4Nl82NCB3aXRoIGFtZDY0LgorKwkqIGkzODYtdGRlcC5jOiBMaWtld2lzZS4KKysKKysJ KiBmZWF0dXJlcy9NYWtlZmlsZTogUmVwbGFjZSB4ODYtNjQgd2l0aCBhbWQ2NC4KKysJKiBmZWF0 dXJlcy9pMzg2Lyo6IFJlbmFtZSB4ODYtNjQqIHRvIGFtZDY0Ki4KKysKKysJKiByZWdmb3JtYXRz L2kzODYvKjogUmVuYW1lIHg4Ni02NCogdG8gYW1kNjQqLgorKworKzIwMTAtMDItMDcgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBjb21tb24vaTM4Ni14c3RhdGUuYzog RG9uJ3QgaW5jbHVkZSAiY29uZmlnLmgiIGlmIFhTVEFURV9NQUlOCisrCWlzIGRlZmluZWQuCisr CShtYWluKTogRml4IHR5cG8uCisrCisrMjAxMC0wMi0wNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5jIChtYWluKTogTmV3LiAgRGVm aW5lZCBvbmx5IGlmIFhTVEFURV9NQUlOCisrCWlzIGRlZmluZWQuCisrCisrMjAxMC0wMi0wNSAg SC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2 X2dkYmFyY2hfaW5pdCk6IFNldCB2ZWN0b3JfdW5pdC4KKysKKysyMDEwLTAyLTA1ICBILkouIEx1 ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogY29uZmlnL2kzODYvbm0tbGludXgteHN0 YXRlLmg6IERvbid0IGluY2x1ZGUgPHN5cy9wdHJhY2UuaD4uCisrCisrCSogaTM4Ni1saW51eC10 ZGVwLmMgKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IERvbid0IHVzZQorKwlwdHJhY2Uu CisrCisrMjAxMC0wMi0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkq IGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMp OiBQYXNzCisrCWkzODZfeHN0YXRlLnNpemUgdG8gWFNUQVRFIHB0cmFjZS4KKysJKGFtZDY0X2xp bnV4X3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyk6IExpa2V3aXNlLgorKwkqIGkzODYtbGludXgt bmF0LmMgKGZldGNoX3hzdGF0ZXJlZ3MpOiBMaWtld2lzZS4KKysJKHN0b3JlX3hzdGF0ZXJlZ3Mp OiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmMgKFBUUkFDRV9HRVRYU1RBVEVSRUdTKTogRG9u J3QgZGVmaW5lLgorKwkoUFRSQUNFX1NFVFhTVEFURVJFR1MpOiBMaWtld2lzZS4KKysJKiBpMzg2 LWxpbnV4LW5hdC5jIChQVFJBQ0VfR0VUWFNUQVRFUkVHUyk6CisrCShQVFJBQ0VfU0VUWFNUQVRF UkVHUyk6IExpa2V3aXNlLgorKworKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4Lmg6IEluY2x1ZGUg ImNvbmZpZy9pMzg2L25tLWxpbnV4LXhzdGF0ZS5oIi4KKysJKiBjb25maWcvaTM4Ni9ubS1saW51 eDY0Lmg6IExpa2V3aXNlLgorKworKwkqIDM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfcmVh ZF9kZXNjcmlwdGlvbik6IERlZmluZSBvbmx5IGlmCisrCUZJTExfWFNUQVRFUkVHU0VUIGlzIGRl ZmluZWQuICBVc2UgcHRyYWNlIHRvIGdldCB4Y3IwIGZyb20KKysJa2VybmVsLgorKworKzIwMTAt MDItMDUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51 eC10ZGVwLmMgKF9pbml0aWFsaXplX2FtZDY0X2xpbnV4X3RkZXApOiBVcGRhdGUKKysJY29tbWVu dHMuCisrCisrCSogaTM4Ni1saW51eC10ZGVwLmM6IEluY2x1ZGUgZmVhdHVyZXMvaTM4Ni9pMzg2 LWF2eC1saW51eC5jCisrCWFuZCBmZWF0dXJlcy9pMzg2L3g4Ni02NC1hdngtbGludXguYy4KKysJ KGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogSGFuZGxlIEFWWC4KKysJKF9pbml0 aWFsaXplX2kzODZfbGludXhfdGRlcCk6IENhbGwgaW5pdGlhbGl6ZV90ZGVzY19pMzg2X2F2eF9s aW51eAorKwlhbmQgaW5pdGlhbGl6ZV90ZGVzY194ODZfNjRfYXZ4X2xpbnV4LgorKworKwkqIGkz ODYtdGRlcC5jOiBJbmNsdWRlIGZlYXR1cmVzL2kzODYvaTM4Ni1hdnguYyBhbmQKKysJZmVhdHVy ZXMvaTM4Ni94ODYtNjQtYXZ4LmMuCisrCShfaW5pdGlhbGl6ZV9pMzg2X3RkZXApOiBDYWxsIGlu aXRpYWxpemVfdGRlc2NfaTM4Nl9hdnggYW5kCisrCWluaXRpYWxpemVfdGRlc2NfeDg2XzY0X2F2 eC4KKysKKysyMDEwLTAyLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF9pbml0KTogVHJ5IG9yZy5nbnUuZ2RiLmkzODYu YXZ4LgorKworKzIwMTAtMDItMDUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBmZWF0dXJlcy9pMzg2LzMyYml0LWF2eC54bWw6IE5ldy4KKysJKiBmZWF0dXJlcy9pMzg2 LzY0Yml0LWF2eC54bWw6IExpa2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYvaTM4Ni1hdngtbGlu dXguYzogTGlrZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC1saW51eC54bWw6IExp a2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYvaTM4Ni1hdnguYzogTGlrZXdpc2UuCisrCSogZmVh dHVyZXMvaTM4Ni9pMzg2LWF2eC54bWw6IExpa2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYveDg2 LTY0LWF2eC1saW51eC5jOiBMaWtld2lzZS4KKysJKiBmZWF0dXJlcy9pMzg2L3g4Ni02NC1hdngt bGludXgueG1sOiBMaWtld2lzZS4KKysJKiBmZWF0dXJlcy9pMzg2L3g4Ni02NC1hdnguYzogTGlr ZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni94ODYtNjQtYXZ4LnhtbDogTGlrZXdpc2UuCisrCisr CSogZmVhdHVyZXMvTWFrZWZpbGUgKFdISUNIKTogQWRkIGkzODYvaTM4Ni1hdngsCisrCWkzODYv aTM4Ni1hdngtbGludXgsIGkzODYveDg2LTY0LWF2eCBhbmQgaTM4Ni94ODYtNjQtYXZ4LWxpbnV4 LgorKwkoaTM4Ni9pMzg2LWF2eC1leHBlZGl0ZSk6IE5ldy4KKysJKGkzODYvaTM4Ni1hdngtbGlu dXgtZXhwZWRpdGUpOiBMaWtld2lzZS4KKysJKGkzODYveDg2LTY0LWF2eC1leHBlZGl0ZSk6TGlr ZXdpc2UuCisrCShpMzg2L3g4Ni02NC1hdngtbGludXgtZXhwZWRpdGUpOiBMaWtld2lzZS4KKysJ KCQob3V0ZGlyKS9pMzg2L2kzODYtYXZ4LmRhdCk6IE5ldyBkZXBlbmRlbmN5LgorKwkoJChvdXRk aXIpL2kzODYvaTM4Ni1hdngtbGludXguZGF0KTogTGlrZXdpc2UuCisrCSgkKG91dGRpcikvaTM4 Ni94ODYtYXZ4LTY0LmRhdCk6IExpa2V3aXNlLgorKwkoJChvdXRkaXIpL2kzODYveDg2LTY0LWF2 eC1saW51eC5kYXQpOiBMaWtld2lzZS4KKysKKysJKiByZWdmb3JtYXRzL3JlZy1pMzg2LWF2eC1s aW51eC5kYXQ6IE1vdmVkIHRvIC4uCisrCSogcmVnZm9ybWF0cy9pMzg2L2kzODYtYXZ4LWxpbnV4 LmRhdDogSGVyZS4KKysKKysJKiByZWdmb3JtYXRzL3JlZy1pMzg2LWF2eC5kYXQ6IE1vdmVkIHRv IC4uCisrCSogcmVnZm9ybWF0cy9pMzg2L2kzODYtYXZ4LmRhdDogSGVyZS4KKysKKysJKiByZWdm b3JtYXRzL3JlZy14ODYtNjQtYXZ4LWxpbnV4LmRhdDogTW92ZWQgdG8gLi4uCisrCSogcmVnZm9y bWF0cy9pMzg2L3g4Ni02NC1hdngtbGludXguZGF0OiBIZXJlLgorKworKwkqIHJlZ2Zvcm1hdHMv cmVnLXg4Ni02NC1hdnguZGF0OiBNb3ZlZCB0byAuLi4KKysJKiByZWdmb3JtYXRzL2kzODYveDg2 LTY0LWF2eC5kYXQ6IEhlcmUuCisrCisrMjAxMC0wMi0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfc3NlX3JlZ2lzdGVyX25hbWVz KTogTWFrZSBpdCBnbG9iYWwuCisrCShhbWQ2NF9hdnhfcmVnaXN0ZXJfbmFtZXMpOiBMaWtld2lz ZS4KKysJKGFtZDY0X2luaXRfYWJpKTogRG9uJ3QgY2FsbCBpMzg2X2dkYmFyY2hfdmVjdG9yX3Vu aXRfaW5pdC4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2lu aXQpOiBSZW1vdmVkLgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBEb24ndCBjYWxsIGkzODZfZ2Ri YXJjaF92ZWN0b3JfdW5pdF9pbml0LgorKwkqIGkzODYtdGRlcC5oIChpMzg2X2dkYmFyY2hfdmVj dG9yX3VuaXRfaW5pdCk6IFJlbW92ZWQuCisrCisrMjAxMC0wMi0wNCAgSC5KLiBMdSAgPGhvbmdq aXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2xpbnV4X2Nv cmVfcmVhZF9kZXNjcmlwdGlvbik6IENoZWNrCisrCWNvcmUgc2l6ZSBmb3IgQVZYIHN1cHBvcnQu CisrCisrMjAxMC0wMi0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkq IGkzODctdGRlcC5jIChpMzg3X3N1cHBseV9meHNhdmUpOiBPcHRpbWl6ZSB4c3RhdGVfYnYgPT0g MC4KKysKKysyMDEwLTAyLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogaTM4Ny10ZGVwLmMgKGkzODdfc3VwcGx5X2Z4c2F2ZSk6IERvbid0IHVzZQorKwlyZWdjYWNo ZV9yYXdfc3VwcGx5X3BhcnQuCisrCShpMzg3X3N1cHBseV94c2F2ZSk6IExpa2V3aXNlLgorKwko aTM4N19jb2xsZWN0X2Z4c2F2ZSk6IERvbid0IHVzZSByZWdjYWNoZV9yYXdfY29sbGVjdF9wYXJ0 LgorKwkoaTM4N19jb2xsZWN0X3hzYXZlKTogTGlrZXdpc2UuCisrCisrCSogcmVnY2FjaGUuYyAo cmVnY2FjaGVfcmF3X3N1cHBseV9wYXJ0KTogUmVtb3ZlZC4KKysJKHJlZ2NhY2hlX3Jhd19jb2xs ZWN0X3BhcnQpOiBMaWtld2lzZS4KKysJKiByZWdjYWNoZS5oIChyZWdjYWNoZV9yYXdfc3VwcGx5 X3BhcnQpOiBMaWtld2lzZS4KKysJKHJlZ2NhY2hlX3Jhd19jb2xsZWN0X3BhcnQpOiBMaWtld2lz ZS4KKysKKysyMDEwLTAyLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTog VXBkYXRlCisrCXdhcm5pbmcgbWVzc2FnZSBmb3IgeGNyMC4KKysKKysJKiBpMzg3LXRkZXAuYyAo aTM4N19jb2xsZWN0X3hzYXZlKTogTW92ZSBjb21tZW50cyBvbiB4c3RhdGVfYnYuCisrCisrMjAx MC0wMi0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRl cC5jIChpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdCk6IENoZWNrCisrCUZJTExfWFNUQVRF UkVHU0VUIGluc3RlYWQgb2YgYml0X1hTVEFURV9BVlguCisrCisrCSogY29uZmlnL2kzODYvbm0t bGludXguaCAoRklMTF9YU1RBVEVSRUdTRVQpOiBVcGRhdGUgY29tbWVudHMuCisrCSogY29uZmln L2kzODYvbm0tbGludXg2NC5oIChGSUxMX1hTVEFURVJFR1NFVCk6IExpa2V3aXNlLgorKworKzIw MTAtMDItMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRk ZXAuYzogSW5jbHVkZSAiaTM4Ni14c3RhdGUuaCIuCisrCSogaTM4Ny10ZGVwLmM6IExpa2V3aXNl LgorKworKzIwMTAtMDItMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQpOiBDaGVjayBpZgor KwliaXRfWFNUQVRFX0FWWCBpcyBkZWZpbmVkIGJlZm9yZSB1c2luZyBpdC4KKysKKysyMDEwLTAy LTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogTWFrZWZpbGUuaW4g KHhzdGF0ZS1uYXQubyk6IFJlbmFtZWQgdG8gLi4uCisrCShpMzg2LXhzdGF0ZS5vKTogVGhpcy4K KysKKysJKiBpMzg2LWxpbnV4LXRkZXAuYzogSW5jbHVkZSAiaTM4Ni14c3RhdGUuaCIgaW5zdGVh ZCBvZgorKwkieHN0YXRlLW5hdC5oIi4KKysJKiBjb25maWcvaTM4Ni9ubS1saW51eC5oOiBMaWtl d2lzZS4KKysJKiBjb25maWcvaTM4Ni9ubS1saW51eDY0Lmg6IExpa2V3aXNlLgorKworKwkqIGNv bW1vbi94c3RhdGUtbmF0LmM6IE1vdmVkIHRvIC4uLgorKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5j OiBUaGlzLgorKworKwkqIGNvbW1vbi94c3RhdGUtbmF0Lmg6IE1vdmVkIHRvIC4uLgorKwkqIGNv bW1vbi9pMzg2LXhzdGF0ZS5oOiBUaGlzLgorKworKwkqIGNvbmZpZy9pMzg2L2xpbnV4Lm1oIChO QVRERVBGSUxFUyk6IFJlcGxhY2UgeHN0YXRlLW5hdC5vIHdpdGgKKysJaTM4Ni14c3RhdGUuby4K KysJKiBjb25maWcvaTM4Ni9saW51eDY0Lm1oIChOQVRERVBGSUxFUyk6IExpa2V3aXNlLgorKwor KzIwMTAtMDItMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2 NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfZ3JlZ3NldDY0X3JlZ19vZmZzZXQpOiBSZW1vdmUK KysJeHN0YXRlX2J2IG9mZnNldC4KKysJKGFtZDY0X2xpbnV4X2dyZWdzZXQzMl9yZWdfb2Zmc2V0 KTogTGlrZXdpc2UuCisrCisrCSogYW1kNjQtbGludXgtdGRlcC5oIChBTUQ2NF9MSU5VWF9PUklH X1JBWF9SRUdOVU0pOiBVcGRhdGVkLgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfc3NlX3Jl Z2lzdGVyX25hbWVzKTogUmVtb3ZlIHhzdGF0ZV9idi4KKysJKGFtZDY0X2F2eF9yZWdpc3Rlcl9u YW1lcyk6IExpa2V3aXNlLgorKwkoYW1kNjRfcmVnaXN0ZXJfbmFtZSk6IFJlbW92ZSBBTUQ2NF9Y U1RBVEVfQlZfUkVHTlVNLgorKwkoYW1kNjRfcmVnaXN0ZXJfdHlwZSk6IExpa2V3aXNlLgorKwor KwkqIGFtZDY0LXRkZXAuaCAoQU1ENjRfWFNUQVRFX0JWX1JFR05VTSk6IFJlbW92ZWQuCisrCisr CSogaTM4Ni1saW51eC1uYXQuYyAocmVnbWFwKTogUmVtb3ZlIHhzdGF0ZV9idi4KKysKKysJKiBp Mzg2LXRkZXAuYyAoaTM4Nl9zc2VfcmVnaXN0ZXJfbmFtZXMpOiBSZW1vdmUgeHN0YXRlX2J2Lgor KwkoaTM4Nl9hdnhfcmVnaXN0ZXJfbmFtZXMpOiBMaWtld2lzZS4KKysJKGkzODZfeHN0YXRlX3Jl Z251bV9wKTogUmVtb3ZlZC4KKysJKGkzODZfcmVnaXN0ZXJfbmFtZSk6IFJlbW92ZSBJMzg3X1hT VEFURV9CVl9SRUdOVU0uCisrCisrCSogaTM4Ni10ZGVwLmggKEkzODZfU1NFX05VTV9SRUdTKTog UmVtb3ZlIHhzdGF0ZV9idi4KKysKKysJKiBpMzg3LXRkZXAuYyAoWFNBVkVfWFNUQVRFX0JWX0FE RFIpOiBVcGRhdGUgY29tbWVudHMuCisrCisrCSogaTM4Ny10ZGVwLmggKEkzODdfWFNUQVRFX0JW X1JFR05VTSk6IFJlbW92ZWQuCisrCisrMjAxMC0wMi0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfaW5pdF9hYmkpOiBVcGRhdGUg Y2FsbCB0bworKwlpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdC4KKysKKysJKiBnZGJhcmNo LmMgKGdkYmFyY2hfcXN1cHBvcnRlZF9wcm9jZXNzX2Fjayk6IFJldHVybiB2b2lkLgorKwkqIGdk YmFyY2guaCAoZ2RiYXJjaF9xc3VwcG9ydGVkX3Byb2Nlc3NfYWNrX2Z0eXBlKTogTGlrZXdpc2Uu CisrCShnZGJhcmNoX3FzdXBwb3J0ZWRfcHJvY2Vzc19hY2spOiBMaWtld2lzZS4KKysKKysJKiBp Mzg2LXRkZXAuYyAocmVtb3RlX3hjcjApOiBOZXcuCisrCShpMzg2X2dkYmFyY2hfdmVjdG9yX3Vu aXRfaW5pdCk6IFVzZSByZW1vdGVfeGNyMCBmb3IgcmVtb3RlCisrCWNsaWVudC4KKysJKGkzODZf cXN1cHBvcnRlZF9wcm9jZXNzX2Fjayk6IFNldCByZW1vdGVfeGNyMC4KKysJKGkzODZfZ2RiYXJj aF9pbml0KTogVXBkYXRlIGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0IGNhbGwuCisrCisr CSogaTM4Ni10ZGVwLmggKGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0KTogVXBkYXRlZC4K KysKKysJKiByZW1vdGUuYyAocmVtb3RlX3F1ZXJ5X3N1cHBvcnRlZCk6IENhbGwKKysJZ2RiYXJj aF9xc3VwcG9ydGVkX3Byb2Nlc3NfYWNrIHdpdGggTlVMTCB0byBwcmVwYXJlIHFTdXBwb3J0ZWQK KysJQUNLIHByb2Nlc3NpbmcuCisrCisrMjAxMC0wMi0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIHJlZ2Zvcm1hdHMvcmVnLWkzODYtYXZ4LWxpbnV4LmRhdDogQWRk IHhtbGFyY2ggYW5kIG9zYWJpLgorKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1hdngtbGludXgu ZGF0OiBMaWtld2lzZS4KKysKKysJKiByZWdmb3JtYXRzL3JlZy1pMzg2LWF2eC5kYXQ6IEFkZCB4 bWxhcmNoLgorKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1hdnguZGF0OiBMaWtld2lzZS4KKysK KysyMDEwLTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4 Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogVXNlCisr CVhTVEFURV9TU0VfU0laRSBpbnN0ZWFkIG9mIDU3Ni4KKysKKysyMDEwLTAyLTAyICBILkouIEx1 ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jIChhbWQ2 NF9saW51eF9nX3BhY2tldF9zaXplKTogUmVtb3ZlZC4KKysJKGFtZDY0X2xpbnV4X2luaXRfYWJp KTogUmVtb3ZlIGkzODZfcmVnaXN0ZXJfZ19wYWNrZXRfZ3Vlc3Nlcy4KKysKKysJKiBhbWQ2NC10 ZGVwLmMgKGFtZDY0X2dfcGFja2V0X3NpemUpOiBSZW1vdmVkLgorKwkoYW1kNjRfaW5pdF9hYmkp OiBVcGRhdGUgaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQgY2FsbC4KKysJUmVtb3ZlIGkz ODZfcmVnaXN0ZXJfZ19wYWNrZXRfZ3Vlc3Nlcy4KKysKKysJKiBhbWQ2NC10ZGVwLmggKEFNRDY0 X0dfUEFDS0VUX1NJWkVfU1NFKTogUmVtb3ZlZC4KKysJKEFNRDY0X0dfUEFDS0VUX1NJWkVfQVZY KTogTGlrZXdpc2UuCisrCisrCSogZ2RiYXJjaC5jIChnZGJhcmNoX3FzdXBwb3J0ZWRfcHJvY2Vz c19hY2spOiBBZGQgdmFsdWUuCisrCSogZ2RiYXJjaC5oIChnZGJhcmNoX3FzdXBwb3J0ZWRfcHJv Y2Vzc19hY2tfZnR5cGUpOiBMaWtld2lzZS4KKysJKGdkYmFyY2hfcXN1cHBvcnRlZF9wcm9jZXNz X2Fjayk6IExpa2V3aXNlLgorKworKwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2xpbnV4X2df cGFja2V0X3NpemUpOiBSZW1vdmVkLgorKwkoaTM4Nl9saW51eF9pbml0X2FiaSk6IFJlbW92ZSBp Mzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMuCisrCisrCSogaTM4Ni10ZGVwLmM6IERvbid0 IGluY2x1ZGUgInJlbW90ZS5oIiBub3IKKysJInRhcmdldC1kZXNjcmlwdGlvbnMuaCIuCisrCShp Mzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMpOiBSZW1vdmVkLgorKwkoaTM4Nl9nX3BhY2tl dF9zaXplKTogTGlrZXdpc2UuCisrCSgzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0KTogUmV3 cml0ZS4KKysJKGkzODZfcXN1cHBvcnRlZF9wcm9jZXNzX2Fjayk6IE5ldy4KKysJKGkzODZfZ2Ri YXJjaF9pbml0KTogVXBkYXRlIGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0IGNhbGwuCisr CVJlbW92ZSBpMzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMuIENhbGwKKysJc2V0X2dkYmFy Y2hfcXN1cHBvcnRlZF9wcm9jZXNzX2Fjay4KKysKKysJKiBpMzg2LXRkZXAuaCAoeDg2X3ZlY3Rv cl91bml0KTogUmVtb3ZlIHVua25vd24uCisrCShJMzg2X0dfUEFDS0VUX1NJWkVfU1NFKTogUmVt b3ZlZC4KKysJKEkzODZfR19QQUNLRVRfU0laRV9BVlgpOiBMaWtld2lzZS4KKysJKEkzODZfUFJP UEVSVFlfU1NFKTogTGlrZXdpc2UuCisrCShJMzg2X1BST1BFUlRZX0FWWCk6IExpa2V3aXNlLgor KwkoQU1ENjRfUFJPUEVSVFlfU1NFKTogTGlrZXdpc2UuCisrCShBTUQ2NF9QUk9QRVJUWV9BVlgp OiBMaWtld2lzZS4KKysJKGkzODZfZ19wYWNrZXRfc2l6ZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9y ZWdpc3Rlcl9nX3BhY2tldF9ndWVzc2VzKTogTGlrZXdpc2UuCisrCShpMzg2X2dkYmFyY2hfdmVj dG9yX3VuaXRfaW5pdCk6IFVwZGF0ZWQuCisrCisrCSogcmVtb3RlLmMgKHJlbW90ZV9xdWVyeV9z dXBwb3J0ZWQpOiBQYXNzIHZhbHVlIHRvCisrCWdkYmFyY2hfcXN1cHBvcnRlZF9wcm9jZXNzX2Fj ay4KKysKKysyMDEwLTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogaTM4Ny10ZGVwLmMgKGkzODdfY29sbGVjdF94c2F2ZSk6IE9wdGltaXplZC4KKysKKysyMDEw LTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogcmVnZm9ybWF0 cy9yZWctaTM4Ni1hdngtbGludXguZGF0OiBSZW1vdmUgeGNyMC4KKysJKiByZWdmb3JtYXRzL3Jl Zy1pMzg2LWF2eC5kYXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1hdngt bGludXguZGF0OiBMaWtld2lzZS4KKysJKiByZWdmb3JtYXRzL3JlZy14ODYtNjQtYXZ4LmRhdDog TGlrZXdpc2UuCisrCisrMjAxMC0wMi0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29t PgorKworKwkqIGNvbW1vbi94c3RhdGUtbmF0LmggKFhTVEFURV9TU0VfTUFTSyk6IE5ldy4KKysJ KFhTVEFURV9BVlhfTUFTSyk6IExpa2V3aXNlLgorKwkoWFNUQVRFX01BWF9NQVNLKTogTGlrZXdp c2UuCisrCShYU1RBVEVfU1NFX01BU0tfU1RSSU5HKTogTGlrZXdpc2UuCisrCShYU1RBVEVfQVZY X01BU0tfU1RSSU5HKTogTGlrZXdpc2UuCisrCShYU1RBVEVfTUFYX01BU0tfU1RSSU5HKTogTGlr ZXdpc2UuCisrCShYU1RBVEVfU1NFX1NJWkUpOiBMaWtld2lzZS4KKysJKFhTVEFURV9BVlhfU0la RSk6IExpa2V3aXNlLgorKwkoWFNUQVRFX01BWF9TSVpFKTogTGlrZXdpc2UuCisrCShYU1RBVEVf U1NFX1NJWkVfU1RSSU5HKTogTGlrZXdpc2UuCisrCShYU1RBVEVfQVZYX1NJWkVfU1RSSU5HKTog TGlrZXdpc2UuCisrCShYU1RBVEVfTUFYX1NJWkVfU1RSSU5HKTogTGlrZXdpc2UuCisrCisrCSog aTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF9pbml0KTogVXNlIFhTVEFURV9NQVhfU0laRV9TVFJJ TkcKKysJYW5kIFhTVEFURV9NQVhfTUFTS19TVFJJTkcgb24gc2V0X2dkYmFyY2hfcXN1cHBvcnRl ZC4KKysKKysyMDEwLTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogZ2RiYXJjaC5jIChnZGJhcmNoKTogQWRkIHFzdXBwb3J0ZWRfcHJvY2Vzc19hY2suCisrCShz dGFydHVwX2dkYmFyY2gpOiBMaWtld2lzZS4KKysJKGdkYmFyY2hfYWxsb2MpOiBMaWtld2lzZS4K KysJKHZlcmlmeV9nZGJhcmNoKTogTGlrZXdpc2UuCisrCShnZGJhcmNoX2R1bXApOiBMaWtld2lz ZS4KKysJKGdkYmFyY2hfcXN1cHBvcnRlZF9wcm9jZXNzX2Fjayk6IE5ldy4KKysJKHNldF9nZGJh cmNoX3FzdXBwb3J0ZWRfcHJvY2Vzc19hY2spOiBMaWtld2lzZS4KKysKKysJKiBnZGJhcmNoLmgg KGdkYmFyY2hfcXN1cHBvcnRlZF9wcm9jZXNzX2Fja19mdHlwZSk6IE5ldy4KKysJKGdkYmFyY2hf cXN1cHBvcnRlZF9wcm9jZXNzX2Fjayk6IExpa2V3aXNlLgorKwkoc2V0X2dkYmFyY2hfcXN1cHBv cnRlZF9wcm9jZXNzX2Fjayk6IExpa2V3aXNlLgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dk YmFyY2hfaW5pdCk6IFVwZGF0ZSBjYWxsIHRvCisrCXNldF9nZGJhcmNoX3FzdXBwb3J0ZWQuCisr CisrCSogcmVtb3RlLmMgKHJlbW90ZV9zdGF0ZSk6IFJlcGxhY2UgcXN1cHBvcnRlZCB3aXRoIGdk YmFyY2guCisrCShpbml0X3JlbW90ZV9zdGF0ZSk6IFNldCBnZGJhcmNoIGluc3RlYWQgb2YgIHFz dXBwb3J0ZWQuCisrCShyZW1vdGVfcXVlcnlfc3VwcG9ydGVkKTogUmVwbGFjZSBxc3VwcG9ydGVk IHdpdGgKKysJZ2RiYXJjaF9xc3VwcG9ydGVkLiAgQ2FsbCBnZGJhcmNoX3FzdXBwb3J0ZWRfcHJv Y2Vzc19hY2sgb24KKysJdW5wcm9jZXNzZWQgQUNLcy4KKysKKysyMDEwLTAyLTAyICBILkouIEx1 ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny10ZGVwLmMgKGkzODdfc3VwcGx5 X3hzYXZlKTogQXBwbHkgWENSMCBtYXNrIHRvIGNsZWFyX2J2LgorKwkoaTM4N19jb2xsZWN0X3hz YXZlKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51eF9ncmVnc2V0NjRf cmVnX29mZnNldCk6IFJlbW92ZQorKwl4Y3IwIG9mZnNldC4KKysJKGFtZDY0X2xpbnV4X2dyZWdz ZXQzMl9yZWdfb2Zmc2V0KTogTGlrZXdpc2UuCisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9z c2VfcmVnaXN0ZXJfbmFtZXMpOiBSZW1vdmUgeGNyMC4KKysJKGFtZDY0X2F2eF9yZWdpc3Rlcl9u YW1lcyk6IExpa2V3aXNlLgorKwkoYW1kNjRfcmVnaXN0ZXJfbmFtZSk6IFJlbW92ZSBBTUQ2NF9Y Q1IwX1JFR05VTS4KKysJKGFtZDY0X3JlZ2lzdGVyX3R5cGUpOiBSZW1vdmUgQU1ENjRfWENSMF9S RUdOVU0uICBVcGRhdGUKKysJQU1ENjRfWFNUQVRFX0JWX1JFR05VTS4KKysKKysJKiBhbWQ2NC10 ZGVwLmggKEFNRDY0X1hDUjBfUkVHTlVNKTogUmVtb3ZlZC4KKysKKysJKiBpMzg2LWxpbnV4LW5h dC5jIChyZWdtYXApOiBSZW1vdmUgeGNyMC4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9zc2Vf cmVnaXN0ZXJfbmFtZXMpOiBSZW1vdmUgeGNyMC4KKysJKGkzODZfYXZ4X3JlZ2lzdGVyX25hbWVz KTogTGlrZXdpc2UuCisrCShpMzg2X3hzdGF0ZV9yZWdudW1fcCk6IFJlbW92ZWQuCisrCShpMzg2 X3JlZ2lzdGVyX25hbWUpOiBSZW1vdmUgSTM4N19YQ1IwX1JFR05VTS4KKysJKGkzODZfeGNyMF90 eXBlKTogUmVtb3ZlZC4KKysJKGkzODZfcmVnaXN0ZXJfdHlwZSk6IFJlbW92ZSBJMzg3X1hDUjBf UkVHTlVNIGFuZAorKwlJMzg3X1hTVEFURV9CVl9SRUdOVU0uCisrCShpMzg2X3JlZ2lzdGVyX3Jl Z2dyb3VwX3ApOiBSZW1vdmUgaTM4Nl94c3RhdGVfcmVnbnVtX3AuCisrCisrCSogaTM4Ni10ZGVw LmggKGdkYmFyY2hfdGRlcCk6IFJlbW92ZSBpMzg2X3hjcjBfdHlwZS4KKysJKEkzODZfU1NFX05V TV9SRUdTKTogUmVtb3ZlIHhjcjAuCisrCShpMzg2X3hjcjBfdHlwZSk6IFJlbW92ZWQuCisrCisr CSogaTM4Ny10ZGVwLmMgKFhTQVZFX1hDUjBfQUREUik6IFJlbW92ZWQuCisrCShpMzg3X3N1cHBs eV94c2F2ZSk6IENsZWFyIHBhcnQgaW4gdmVjdG9yIHJlZ2lzdGVycyBpZiBpdHMgYml0IGluCisr CXhzdGF0X2J2IGlzIHplcm8uICBEb24ndCB1cGRhdGUgSTM4N19YQ1IwX1JFR05VTSBub3IKKysJ STM4N19YU1RBVEVfQlZfUkVHTlVNLgorKwkoaTM4N19jb2xsZWN0X3hzYXZlKTogQ2xlYXIgcGFy dCBpbiB2ZWN0b3IgcmVnaXN0ZXJzIGlmIGl0cyBiaXQKKysJaW4geHN0YXRfYnYgaXMgemVyby4g IFVwZGF0ZSB4c3RhdF9idiBkaXJlY3RseS4KKysKKysJKiBpMzg3LXRkZXAuaCAoSTM4N19YQ1Iw X1JFR05VTSk6IFJlbW92ZWQuCisrCisrMjAxMC0wMi0wMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGdkYmFyY2guYyAoZ2RiYXJjaCk6IEFkZCBxc3VwcG9ydGVkLgor Kwkoc3RhcnR1cF9nZGJhcmNoKTogTGlrZXdpc2UuCisrCShnZGJhcmNoX2FsbG9jKTogTGlrZXdp c2UuCisrCSh2ZXJpZnlfZ2RiYXJjaCk6IExpa2V3aXNlLgorKwkoZ2RiYXJjaF9kdW1wKTogTGlr ZXdpc2UuCisrCShnZGJhcmNoX3FzdXBwb3J0ZWQpOiBOZXcuCisrCShzZXRfZ2RiYXJjaF9xc3Vw cG9ydGVkKTogTGlrZXdpc2UuCisrCisrCSogZ2RiYXJjaC5oIChnZGJhcmNoX3FzdXBwb3J0ZWQp OiBOZXcuCisrCShzZXRfZ2RiYXJjaF9xc3VwcG9ydGVkKTogTGlrZXdpc2UuCisrCisrCSogaTM4 Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF9pbml0KTogQ2FsbCBzZXRfZ2RiYXJjaF9xc3VwcG9ydGVk LgorKworKwkqIHJlbW90ZS5jIChyZW1vdGVfc3RhdGUpOiBBZGQgcXN1cHBvcnRlZC4KKysJKGlu aXRfcmVtb3RlX3N0YXRlKTogU2V0IHFzdXBwb3J0ZWQgZnJvbSBnZGJhcmNoX3FzdXBwb3J0ZWQu CisrCShyZW1vdGVfcXVlcnlfc3VwcG9ydGVkKTogU3VwcG9ydCBxc3VwcG9ydGVkLgorKworKzIw MTAtMDItMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LXRk ZXAuYyAoaTM4N19jb2xsZWN0X3hzYXZlKTogT3B0aW1pemUgdXBkYXRpbmcgc2luZ2xlCisrCXZl Y3RvciByZWdpc3Rlci4KKysKKysyMDEwLTAyLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRl bC5jb20+CisrCisrCSogaTM4Ny10ZGVwLmMgKGkzODdfY29sbGVjdF94c2F2ZSk6IEdldCB0aGUg b3JpZ2luYWwgYHhzdGF0X2J2Jy4KKysKKysyMDEwLTAyLTAxICBILkouIEx1ICA8aG9uZ2ppdS5s dUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5p dF9pbml0KTogVXNlCisrCXJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3Vuc2lnbmVkLgorKworKwkqIGkz ODctdGRlcC5jIChpMzg3X2NvbGxlY3RfeHNhdmUpOiBVcGRhdGUgdGhlIGJpdHMgaW4KKysJYHhz dGF0ZV9idicgaWYgYW55IFNTRS9BVlggcmVnaXN0ZXJzIGFyZSBjaGFuZ2VkLiAgRG9uJ3QgY2hh bmdlCisrCWB4Y3IwJy4KKysKKysyMDEwLTAyLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRl bC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9zc2VfcmVnaXN0ZXJfbmFtZXMpOiBV c2UgTlVMTCBvbiB4c3RhdGVfYnYuCisrCShhbWQ2NF9hdnhfcmVnaXN0ZXJfbmFtZXMpOiBMaWtl d2lzZS4KKysJKGFtZDY0X3JlZ2lzdGVyX25hbWUpOiBSZXR1cm4gTlVMTCBmb3IgQU1ENjRfWFNU QVRFX0JWX1JFR05VTS4KKysKKysJKiBhbWQ2NC10ZGVwLiAoQU1ENjRfR19QQUNLRVRfU0laRV9B VlgpOiBEb24ndCBpbmNsdWRlIHhzdGF0ZV9idi4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9z c2VfcmVnaXN0ZXJfbmFtZXMpOiBVc2UgTlVMTCBvbiB4c3RhdGVfYnYuCisrCShpMzg2X2F2eF9y ZWdpc3Rlcl9uYW1lcyk6IExpa2V3aXNlLgorKwkoaTM4Nl9yZWdpc3Rlcl9uYW1lKTogUmV0dXJu IE5VTEwgZm9yIEkzODZfWFNUQVRFX0JWX1JFR05VTS4KKysKKysJKiBpMzg2LXRkZXAuIChJMzg2 X0dfUEFDS0VUX1NJWkVfQVZYKTogRG9uJ3QgaW5jbHVkZSB4c3RhdGVfYnYuCisrCisrCSogaTM4 Ny10ZGVwLmMgKFhTQVZFX1hTVEFURV9CVl9BRERSKTogVXBkYXRlIGNvbW1lbnRzLgorKworKwkq IHJlZ2Zvcm1hdHMvcmVnLWkzODYtYXZ4LWxpbnV4LmRhdDogUmVtb3ZlIHhzdGF0ZV9idi4KKysJ KiByZWdmb3JtYXRzL3JlZy1pMzg2LWF2eC5kYXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMv cmVnLXg4Ni02NC1hdngtbGludXguZGF0OiBMaWtld2lzZS4KKysJKiByZWdmb3JtYXRzL3JlZy14 ODYtNjQtYXZ4LmRhdDogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0wMSAgSC5KLiBMdSAgPGhvbmdq aXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfdmVjdG9y X3VuaXRfaW5pdCk6IENvcnJlY3QgdGhlCisrCVhDUjAgcmVnaXN0ZXIgbnVtYmVyIGZvciA2NGJp dC4KKysKKysyMDEwLTAyLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0KTogR2V0IHhjcjAg ZnJvbQorKwl0aGUgcmVtb3RlIHRhcmdldC4KKysKKysyMDEwLTAxLTMxICBILkouIEx1ICA8aG9u Z2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5oIChBTUQ2NF9HX1BBQ0tFVF9T SVpFX0FWWCk6IEFkZCBzaXplcyBmb3IgeGNyMAorKwlhbmQgeHN0YXRlX2J2LgorKwkqIGkzODYt dGRlcC5oIChJMzg2X0dfUEFDS0VUX1NJWkVfQVZYKTogTGlrZXdpc2UuCisrCisrCSogcmVnZm9y bWF0cy9yZWctaTM4Ni1hdngtbGludXguZGF0OiBBZGQgeGNyMCBhbmQgeHN0YXRlX2J2LgorKwkq IHJlZ2Zvcm1hdHMvcmVnLWkzODYtYXZ4LmRhdDogTGlrZXdpc2UuCisrCSogcmVnZm9ybWF0cy9y ZWcteDg2LTY0LWF2eC1saW51eC5kYXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4 Ni02NC1hdnguZGF0OiBMaWtld2lzZS4KKysKKysyMDEwLTAxLTMwICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfY29y ZV9yZWFkX2Rlc2NyaXB0aW9uKTogUmVhZCA4CisrCWJ5dGVzIGZvciB4Y3IwLgorKworKzIwMTAt MDEtMzAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LXRkZXAu aCAoWFNBVkVfWENSMF9PRkZTRVQpOiBVcGRhdGUgY29tbWVudHMuCisrCisrMjAxMC0wMS0zMCAg SC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1k NjRfcmVnaXN0ZXJfbmFtZSk6IFJldHVybiBOVUxMIGZvciB4Y3IwCisrCWFuZCB4c3RhdGVfYnYg aWYgWFNBVkUgZXh0ZW5kZWQgc3RhdGUgaXNuJ3Qgc3VwcG9ydGVkLgorKwkqIGkzODYtdGRlcC5j IChpMzg2X3JlZ2lzdGVyX25hbWUpOiBMaWtld2lzZS4KKysJKGkzODZfeHN0YXRlX3JlZ251bV9w KTogUmV0dXJuIDAgb2YgWFNBVkUgZXh0ZW5kZWQgc3RhdGUgaXNuJ3QKKysJc3VwcG9ydGVkLgor KworKzIwMTAtMDEtMzAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBp Mzg2LXRkZXAuYyAoaTM4Nl94c3RhdGVfcmVnbnVtX3ApOiBOZXcuCisrCShpMzg2X3JlZ2lzdGVy X3JlZ2dyb3VwX3ApOiBVc2UgaXQuCisrCisrMjAxMC0wMS0zMCAgSC5KLiBMdSAgPGhvbmdqaXUu bHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtbGludXgtdGRlcC5jOiBJbmNsdWRlIGkzODctdGRl cC5oIGFuZCB4c3RhdGUtbmF0LmguCisrCShpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlv bik6IFJlYWQgeGNyMCBmcm9tIGNvcmUgZmlsZS4KKysKKysJKiBpMzg3LXRkZXAuYyAoWFNBVkVf WENSMF9BRERSKTogTmV3LgorKwkoWFNBVkVfWFNUQVRFX0JWX0FERFIpOiBMaWtld2lzZS4KKysK KysJKiBpMzg3LXRkZXAuaCAoWFNBVkVfWENSMF9PRkZTRVQpOiBOZXcuCisrCShYU0FWRV9YQ1Iw X0FERFIpOiBSZW1vdmVkLgorKwkoWFNBVkVfWFNUQVRFX0JWX0FERFIpOiBMaWtld2lzZS4KKysK KysyMDEwLTAxLTMwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1k NjQtbGludXgtbmF0LmMgKGFtZDY0X2xpbnV4X2dyZWdzZXQ2NF9yZWdfb2Zmc2V0KTogQWRkCisr CWVudHJpZXMgb2YgLTEgZm9yIHhjcjAgYW5kIHhzdGF0ZV9idi4KKysJKGFtZDY0X2xpbnV4X2dy ZWdzZXQzMl9yZWdfb2Zmc2V0KTogTGlrZXdpc2UuCisrCSogaTM4Ni1saW51eC1uYXQuYyAocmVn bWFwKTogTGlrZXdpc2UuCisrCisrCSogYW1kNjQtbGludXgtdGRlcC5oIChBTUQ2NF9MSU5VWF9P UklHX1JBWF9SRUdOVU0pOiBSZXBsYWNlCisrCUFNRDY0X01YQ1NSX1JFR05VTSB3aXRoIEFNRDY0 X1hTVEFURV9CVl9SRUdOVU0uCisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9zc2VfcmVnaXN0 ZXJfbmFtZXMpOiBBZGQgeGNyMCBhbmQgeHN0YXRlX2J2LgorKwkoYW1kNjRfYXZ4X3JlZ2lzdGVy X25hbWVzKTogTGlrZXdpc2UuCisrCShhbWQ2NF9yZWdpc3Rlcl90eXBlKTogSGFuZGxlIEFNRDY0 X1hDUjBfUkVHTlVNIGFuZAorKwlBTUQ2NF9YU1RBVEVfQlZfUkVHTlVNLgorKworKwkqIGFtZDY0 LXRkZXAuaCAoYW1kNjRfcmVnbnVtKTogQWRkIEFNRDY0X1hDUjBfUkVHTlVNIGFuZAorKwlBTUQ2 NF9YU1RBVEVfQlZfUkVHTlVNLgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3NzZV9yZWdpc3Rl cl9uYW1lcyk6IEFkZCB4Y3IwIGFuZCB4c3RhdGVfYnYuCisrCShpMzg2X2F2eF9yZWdpc3Rlcl9u YW1lcyk6IExpa2V3aXNlLgorKwkoaTM4Nl94Y3IwX3R5cGUpOiBOZXcuCisrCShpMzg2X3JlZ2lz dGVyX3R5cGUpOiBIYW5kbGUgQU1ENjRfWENSMF9SRUdOVU0gYW5kCisrCUFNRDY0X1hTVEFURV9C Vl9SRUdOVU0uCisrCShpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdCk6IFNldCB0aGUgeGNy MCBmaWVsZC4KKysKKysJKiBpMzg2LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogQWRkIHhjcjAgYW5k IGkzODZfeGNyMF90eXBlLgorKwkoSTM4Nl9TU0VfTlVNX1JFR1MpOiBJbmNyZWFzZSBieSAyLgor KwkoaTM4Nl94Y3IwX3R5cGUpOiBOZXcuCisrCisrCSogaTM4Ny10ZGVwLmMgKGkzODdfc3VwcGx5 X3hzYXZlKTogSGFuZGxlIEkzODdfWENSMF9SRUdOVU0KKysJYW5kIEkzODdfWFNUQVRFX0JWX1JF R05VTS4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKworKwkqIGkzODctdGRl cC5oIChJMzg3X1hDUjBfUkVHTlVNKTogTmV3LgorKwkoSTM4N19YU1RBVEVfQlZfUkVHTlVNKTog TGlrZXdpc2UuCisrCShYU0FWRV9YQ1IwX0FERFIpOiBMaWtld2lzZS4KKysJKFhTQVZFX1hTVEFU RV9CVl9BRERSKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0yOSAgSC5KLiBMdSAgPGhvbmdqaXUu bHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51eF9mZXRj aF9pbmZlcmlvcl9yZWdpc3RlcnMpOiBGYWxsCisrCWJhY2sgYWZ0ZXIgUFRSQUNFX0dFVFhTVEFU RVJFR1MgaWYgaGF2ZV9wdHJhY2VfZ2V0eHN0YXRlcmVncyA9PSAxLgorKwkoYW1kNjRfbGludXhf c3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzKTogTGlrZXdpc2UuCisrCShfaW5pdGlhbGl6ZV9hbWQ2 NF9saW51eF9uYXQpOiBJbml0aWFsaXplIGhhdmVfcHRyYWNlX2dldHhzdGF0ZXJlZ3MKKysJdG8g MiBmb3IgQVZYLgorKworKwkqIGkzODYtbGludXgtbmF0LmMgKGZldGNoX3hzdGF0ZXJlZ3MpOiBG YWxsIGJhY2sgYWZ0ZXIKKysJUFRSQUNFX0dFVFhTVEFURVJFR1MgaWYgaGF2ZV9wdHJhY2VfZ2V0 eHN0YXRlcmVncyA9PSAxLgorKwkoc3RvcmVfeHN0YXRlcmVncyk6IExpa2V3aXNlLgorKwkoX2lu aXRpYWxpemVfaTM4Nl9saW51eF9uYXQpOiBJbml0aWFsaXplIGhhdmVfcHRyYWNlX2dldHhzdGF0 ZXJlZ3MKKysJdG8gMiBmb3IgQVZYLgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hf dmVjdG9yX3VuaXRfaW5pdCk6IFVwZGF0ZWQuCisrCisrCSogY29tbW9uL3hzdGF0ZS1uYXQuaCAo eHN0YXRlKTogUmVtb3ZlZC4KKysJKHhzdGF0ZV9zdGF0dXMpOiBOZXcuCisrCShiaXRfWFNUQVRF X1g4Nyk6IExpa2V3aXNlLgorKwkoYml0X1hTVEFURV9TU0UpOiBMaWtld2lzZS4KKysJKGJpdF9Y U1RBVEVfQVZYKTogTGlrZXdpc2UuCisrCShpMzg2X3hzdGF0ZV90eXBlKTogUmVtb3ZlIHN0YXRl LiAgQWRkIHN0YXR1cyBhbmQgeGNyMC4KKysKKysJKiBjb21tb24veHN0YXRlLW5hdC5jIChpMzg2 X3hzdGF0ZV9pbml0KTogVXBkYXRlZC4KKy0tLSAuL2dkYi9DaGFuZ2VMb2cueG1sCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvQ2hhbmdlTG9nLnhtbAkyMDEw LTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw0NjQgQEAKKysyMDEw LTAzLTMwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogcmVtb3RlLmMg KHJlZ2lzdGVyX3JlbW90ZV9zdXBwb3J0X3htbCk6IFVzZSBzdHJ0b2suCisrCisrMjAxMC0wMy0z MCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIE5FV1M6IE1lbnRpb24g eG1sUmVnaXN0ZXJzPSBpbiBxU3VwcG9ydGVkIHBhY2tldC4KKysKKysyMDEwLTAzLTMwICBILkou IEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2Ri YXJjaF9pbml0KTogTW92ZQorKwlyZWdpc3Rlcl9yZW1vdGVfc3VwcG9ydF94bWwgY2FsbCB0byAu Li4KKysJKF9pbml0aWFsaXplX2kzODZfdGRlcCk6IEhlcmUuCisrCisrMjAxMC0wMy0yOSAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dk YmFyY2hfaW5pdCk6IFBhc3MgImkzODYiIGluc3RlYWQgb2YgIng4NiIKKysJdG8gcmVnaXN0ZXJf cmVtb3RlX3N1cHBvcnRfeG1sLgorKworKzIwMTAtMDMtMjkgIEguSi4gTHUgIDxob25naml1Lmx1 QGludGVsLmNvbT4KKysKKysJKiByZW1vdGUuYyAocmVnaXN0ZXJfcmVtb3RlX3N1cHBvcnRfeG1s KTogRG8gbm90aGluZyBpZgorKwlIQVZFX0xJQkVYUEFUIGlzIHVuZGVmaW5lZC4KKysKKysyMDEw LTAzLTI4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogcmVtb3RlLmMg KHJlZ2lzdGVyX3JlbW90ZV9zdXBwb3J0X3htbCk6IEFkZCAieG1sUmVnaXN0ZXJzPSIKKysJcHJl Zml4LiAgRnJlZSB0aGUgdW51c2VkIG9sZCBtZW1vcnkuCisrCShyZW1vdGVfcXVlcnlfc3VwcG9y dGVkX2FwcGVuZCk6IE5ldy4KKysJKHJlbW90ZV9xdWVyeV9zdXBwb3J0ZWQpOiBDYWxsIHJlbW90 ZV9xdWVyeV9zdXBwb3J0ZWRfYXBwZW5kLgorKworKzIwMTAtMDMtMjggIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYzogSW5jbHVkZSAicmVtb3RlLmgi LgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBDYWxsIHJlZ2lzdGVyX3JlbW90ZV9zdXBwb3J0X3ht bC4KKysKKysJKiByZW1vdGUuYyAocmVtb3RlX3N1cHBvcnRfeG1sKTogTmV3LgorKwkocmVnaXN0 ZXJfcmVtb3RlX3N1cHBvcnRfeG1sKTogTGlrZXdpc2UuCisrCShyZW1vdGVfcXVlcnlfc3VwcG9y dGVkKTogU3VwcG9ydCByZW1vdGVfc3VwcG9ydF94bWwuCisrCisrCSogcmVtb3RlLmggKHJlZ2lz dGVyX3JlbW90ZV9zdXBwb3J0X3htbCk6IE5ldy4KKysKKysyMDEwLTAyLTI4ICBILkouIEx1ICA8 aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jIChhbWQ2NF9s aW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24pOiBEb24ndAorKwljaGVjayAucmVnIHNlY3Rpb24g c2l6ZS4KKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9jb3JlX3JlYWRfZGVzY3Jp cHRpb24pOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTI4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmMgKEFNRDY0X0xJTlVYX1VTRVI2NF9D Uyk6IE5ldy4KKysJKGFtZDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24pOiBVc2UgaXQuCisrCisr MjAxMC0wMi0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0 LWxpbnV4LXRkZXAuYyAoYW1kNjRfbGludXhfaW5pdF9hYmkpOiBDaGVjayBvcmlnX3JheAorKwly aWdodCBhZnRlciBhbWQ2NF9pbml0X2FiaS4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4 Nl9saW51eF9pbml0X2FiaSk6IENoZWNrIG9yaWdfZWF4CisrCXJpZ2h0IGFmdGVyIGkzODZfZWxm X2luaXRfYWJpLgorKworKzIwMTAtMDItMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlv bik6IFJlYWQgQ1MKKysJcmVnaXN0ZXIgdG8gY2hlY2sgcHJvY2VzcyBhZGRyZXNzIHNwYWNlLgor KworKzIwMTAtMDItMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBp Mzg2LXRkZXAuYyAoaTM4Nl92YWxpZGF0ZV90ZGVzY19wKTogTmV3LgorKwkoaTM4Nl9nZGJhcmNo X2luaXQpOiBVc2UgaXQuCisrCisrMjAxMC0wMi0xOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51eF9yZWFkX2Rlc2Ny aXB0aW9uKTogUmV0dXJuCisrCXRkZXNjX2kzODZfbGludXggZm9yIDMyYml0LgorKworKzIwMTAt MDItMTggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC10ZGVw LmMgKGFtZDY0X2luaXRfYWJpKTogU2V0IG51bV9jb3JlX3JlZ3MgYW5kCisrCXJlZ2lzdGVyX25h bWVzIGFmdGVyIHRkZXNjLgorKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6IERv bid0IGNoZWNrIGJmZF9hcmNoX2kzODYuICBTZXQgCisrCW51bV9jb3JlX3JlZ3MgYW5kIHJlZ2lz dGVyX25hbWVzIGFmdGVyIHRkZXNjLgorKworKzIwMTAtMDItMTggIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKGFtZDY0X2xpbnV4X2lu aXRfYWJpKTogUmVtb3ZlIGEgc3RyYXllZAorKwljb21tZW50LgorKworKzIwMTAtMDItMTggIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYzog RG9uJ3QgaW5jbHVkZSAiaTM4Ny10ZGVwLmgiLgorKwkqIGFtZDY0LWxpbnV4LXRkZXAuYzogTGlr ZXdpc2UuCisrCSogaTM4Ni1saW51eC10ZGVwLmM6IExpa2V3aXNlLgorKworKwkqIGkzODYtdGRl cC5oIChpMzg2X3JlZ251bSk6IEFkZCBJMzg2X01YQ1NSX1JFR05VTS4KKysJKEkzODZfU1NFX05V TV9SRUdTKTogRGVmaW5lZCB3aXRoIEkzODZfTVhDU1JfUkVHTlVNLgorKworKzIwMTAtMDItMTcg IEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuaCAodGRl c2NfaTM4Nik6IFJlbW92ZWQuCisrCisrMjAxMC0wMi0xNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jOiBJbmNsdWRlICJpMzg3LXRkZXAu aCIuCisrCShhbWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogSnVzdCByZXR1cm4gdGRlc2Nf YW1kNjRfbGludXguCisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jOiBEb24ndCBpbmNsdWRlICJp Mzg2LWxpbnV4LXRkZXAuaCIuCisrCUluY2x1ZGUgImkzODctdGRlcC5oIi4KKysJKGFtZDY0X2xp bnV4X3JlZ2lzdGVyX25hbWUpOiBSZW1vdmVkLgorKwkoYW1kNjRfbGludXhfcmVnaXN0ZXJfdHlw ZSk6IExpa2V3aXNlLgorKwkoYW1kNjRfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogSnVz dCByZXR1cm4KKysJdGRlc2NfYW1kNjRfbGludXguCisrCShhbWQ2NF9saW51eF9pbml0X2FiaSk6 IFNldCB0YXJnZXQgZGVzY3JpcHRpb24gdG8KKysJdGRlc2NfYW1kNjRfbGludXggaWYgbmVlZGVk LiAgU3VwcG9ydCBvcmlnX3JheC4gIFNldAorKwlyZWdpc3Rlcl9yZWdncm91cF9wLgorKworKwkq IGFtZDY0LXRkZXAuYyAoYW1kNjRfcmVnaXN0ZXJfbmFtZXMpOiBNYWtlIGl0IHN0YXRpYy4KKysJ KGFtZDY0X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IFJlbW92ZWQuCisrCShhbWQ2NF9pbml0X2Fi aSk6IFNldCBudW1fY29yZV9yZWdzIGFuZCByZWdpc3Rlcl9uYW1lcy4gIFNldAorKwl0YXJnZXQg ZGVzY3JpcHRpb24gdG8gdGRlc2NfYW1kNjQgaWYgbmVlZGVkLiAgQ2FsbAorKwlzZXRfZ2RiYXJj aF9udW1fcmVncy4gCisrCisrCSogYW1kNjQtdGRlcC5oIChhbWQ2NF9yZWdpc3Rlcl9uYW1lcyk6 IFJlbW92ZWQuCisrCSh0ZGVzY19hbWQ2NCk6IExpa2V3aXNlLgorKworKwkqIGkzODYtbGludXgt dGRlcC5jOiBJbmNsdWRlICJpMzg3LXRkZXAuaCIuCisrCShpMzg2X2xpbnV4X3JlZ2lzdGVyX25h bWUpOiBSZW1vdmVkLgorKwkoaTM4Nl9saW51eF9yZWdpc3Rlcl90eXBlKTogTGlrZXdpc2UuCisr CShhbWQ2NF9saW51eF9pbml0X2FiaSk6IFNldCB0YXJnZXQgZGVzY3JpcHRpb24gdG8KKysJdGRl c2NfaTM4Nl9saW51eCBpZiBuZWVkZWQuICBTdXBwb3J0IG9yaWdfZWF4LiAgU2V0CisrCXJlZ2lz dGVyX3JlZ2dyb3VwX3AuCisrCisrCSogaTM4Ni1udG8tdGRlcC5jIChpMzg2bnRvX3JlZ3NldF9p ZCk6IFJlcGxhY2UgSTM4Nl9OVU1fRlJFR1MKKysJd2l0aCBJMzg3X05VTV9SRUdTLgorKworKwkq IGkzODYtdGRlcC5jOiBEb24ndCBpbmNsdWRlICJhbWQ2NC10ZGVwLmgiLgorKwkoaTM4Nl9nbzMy X2luaXRfYWJpKTogUmVwbGFjZSBJMzg2X05VTV9GUkVHUyB3aXRoIEkzODdfTlVNX1JFR1MuCisr CShpMzg2X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IFJlbW92ZWQuCisrCShpMzg2X2dkYmFyY2hf aW5pdCk6IFNldCB0YXJnZXQgZGVzY3JpcHRpb24gdG8gdGRlc2NfaTM4NiBpZgorKwluZWVkZWQu ICBTZXQgZ3JlZ3NldF9udW1fcmVncyB0byBJMzg2X05VTV9HUkVHUy4gIFNldAorKwludW1fY29y ZV9yZWdzIGFuZCByZWdpc3Rlcl9uYW1lcy4gIFNldCByZWdpc3Rlcl9yZWdncm91cF9wLgorKwor KzIwMTAtMDItMTcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2 LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX2luaXQpOiBNb3ZlIHRkZXNjX3VzZV9yZWdpc3RlcnMKKysJ bW9yZSB0b3dhcmQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24uICBDYWxsIHRkZXNjX3VzZV9yZWdp c3RlcnMKKysJYWZ0ZXIgZ2RiYXJjaF9pbml0X29zYWJpLiAgVXBkYXRlCisrCXNldF9nZGJhcmNo X3JlZ2lzdGVyX3JlZ2dyb3VwX3AuCisrCisrCSogaTM4Ni10ZGVwLmggKGdkYmFyY2hfdGRlcCk6 IEFkZCBudW1fY29yZV9yZWdzLAorKwlyZWdpc3Rlcl9uYW1lcywgdGRlc2MgYW5kIHJlZ2lzdGVy X3JlZ2dyb3VwX3AuCisrCShJMzg2X05VTV9GUkVHUyk6IFJlbW92ZWQuCisrCShJMzg2X1NTRV9O VU1fUkVHUyk6IFJlcGxhY2UgSTM4Nl9OVU1fRlJFR1Mgd2l0aCBJMzg3X05VTV9SRUdTLgorKwor KwkqIGkzODctdGRlcC5oIChJMzg3X05VTV9SRUdTKTogTmV3LgorKworKzIwMTAtMDItMTcgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9n ZGJhcmNoX2luaXQpOiBNb3ZlIHRkZXNjX3VzZV9yZWdpc3RlcnMKKysJZnVydGhlciB0b3dhcmQg dGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24uCisrCisrMjAxMC0wMi0xNyAgSC5KLiBMdSAgPGhvbmdq aXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6 IE1vdmUgdGRlc2NfdXNlX3JlZ2lzdGVycworKwl0b3dhcmQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rp b24uCisrCisrMjAxMC0wMi0xNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGFtZDY0LXRkZXAuYzogSW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9hbWQ2NC5jIi4KKysJKGFt ZDY0X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IE5ldy4KKysJKF9pbml0aWFsaXplX2FtZDY0X3Rk ZXApOiBMaWtld2lzZS4KKysJKGFtZDY0X2luaXRfYWJpKTogQ2FsbCBzZXRfZ2RiYXJjaF9jb3Jl X3JlYWRfZGVzY3JpcHRpb24uCisrCisrCSogYW1kNjQtdGRlcC5oICh0ZGVzY19hbWQ2NCk6IE5l dy4KKysKKysJKiBpMzg2LXRkZXAuYzogSW5jbHVkZSBpMzg2LXRkZXAuaCIgaW5zdGVhZCBvZiAi YW1kNjQtdGRlcC5oIi4KKysJSW5jbHVkZSAiYW1kNjQtdGRlcC5oIiBpbnN0ZWFkIG9mICJmZWF0 dXJlcy9pMzg2L2FtZDY0LmMiIHdoZW4KKysJQkZENjQgaXMgZGVmaW5lZC4KKysJKGkzODZfY29y ZV9yZWFkX2Rlc2NyaXB0aW9uKTogTmV3LgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBDYWxsIHNl dF9nZGJhcmNoX2NvcmVfcmVhZF9kZXNjcmlwdGlvbi4KKysJKF9pbml0aWFsaXplX2kzODZfdGRl cCk6IERvbid0IENhbGwgaW5pdGlhbGl6ZV90ZGVzY19hbWQ2NC4KKysKKysJKiBpMzg2LXRkZXAu aCAodGRlc2NfaTM4Nik6IE5ldy4KKysKKysyMDEwLTAyLTE3ICBILkouIEx1ICA8aG9uZ2ppdS5s dUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmMgKGFtZDY0X2xpbnV4X3JlYWRf ZGVzY3JpcHRpb24pOiBOZXcuCisrCShfaW5pdGlhbGl6ZV9hbWQ2NF9saW51eF9uYXQpOiBVc2Ug aXQuCisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jOiBJbmNsdWRlICJpMzg2LWxpbnV4LXRkZXAu aCIgYW5kCisrCWZlYXR1cmVzL2kzODYvYW1kNjQtbGludXguYy4KKysJKGFtZDY0X2xpbnV4X3Jl Z2lzdGVyX25hbWUpOiBOZXcuCisrCShhbWQ2NF9saW51eF9yZWdpc3Rlcl90eXBlKTogTGlrZXdp c2UuCisrCShhbWQ2NF9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24pOiBMaWtld2lzZS4KKysJ KGFtZDY0X2xpbnV4X2luaXRfYWJpKTogU3VwcG9ydCByZW1vdGUgc3R1YiB3aXRob3V0IFhNTCB0 YXJnZXQKKysJZGVzY3JpcHRpb24uICBVc2UgYW1kNjRfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0 aW9uIGluc3RlYWQgb2YKKysJaTM4Nl9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24uCisrCShf aW5pdGlhbGl6ZV9hbWQ2NF9saW51eF90ZGVwKTogQ2FsbCBpbml0aWFsaXplX3RkZXNjX2FtZDY0 X2xpbnV4LgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAuaDogRG9uJ3QgaW5jbHVkZSAiaTM4Ni1s aW51eC10ZGVwLmgiLgorKwkodGRlc2NfYW1kNjRfbGludXgpOiBOZXcuCisrCisrCSogaTM4Ni1s aW51eC1uYXQuYyAoaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogTmV3LgorKworKwkqIGkz ODYtbGludXgtdGRlcC5jOiBJbmNsdWRlICJpMzg2LXRkZXAuaC8iaTM4Ni1saW51eC10ZGVwLmgi CisrCWluc3RlYWQgb2YgImFtZDY0LXRkZXAuaCIvImFtZDY0LWxpbnV4LXRkZXAuaCIuCisrCShp Mzg2X2xpbnV4X3JlZ2lzdGVyX25hbWUpOiBEb24ndCBjaGVjayBCRkQ2NC4KKysJKGkzODZfbGlu dXhfcmVnaXN0ZXJfdHlwZSk6IExpa2V3aXNlLgorKwkoX2luaXRpYWxpemVfaTM4Nl9saW51eF90 ZGVwKTogTGlrZXdpc2UuCisrCShpMzg2X2xpbnV4X2luaXRfb3JpZ19lYXgpOiBSZW1vdmVkLgor KwkoaTM4Nl9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24pOiBNYWtlIGl0IHN0YXRpYy4gIERv bid0CisrCWNoZWNrIEJGRDY0LgorKwkoaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogUmVt b3ZlZC4KKysJKGkzODZfbGludXhfaW5pdF9hYmkpOiBTdXBwb3J0IHJlbW90ZSBzdHViIHdpdGhv dXQgWE1MIHRhcmdldAorKwlkZXNjcmlwdGlvbi4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuaCAo aTM4Nl9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24pOiBSZW1vdmVkLgorKwkoaTM4Nl9saW51 eF9yZWFkX2Rlc2NyaXB0aW9uKTogTGlrZXdpc2UuCisrCShpMzg2X2xpbnV4X2luaXRfb3JpZ19l YXgpOiBMaWtld2lzZS4KKysJKHRkZXNjX2kzODZfbGludXgpOiBOZXcuCisrCisrMjAxMC0wMi0x MCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChp Mzg2X2dkYmFyY2hfaW5pdCk6IE9wdGltaXplIGZvciBCRkQ2NC4KKysKKysyMDEwLTAyLTA5ICBI LkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMg KGkzODZfbGludXhfcmVnaXN0ZXJfbmFtZSk6IE9wdGltaXplZCBmb3IKKysJQkZENjQuCisrCShp Mzg2X2xpbnV4X3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKysJKGkzODZfbGludXhfaW5pdF9v cmlnX2VheCk6IExpa2V3aXNlLgorKwkoaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogTGlr ZXdpc2UuCisrCisrMjAxMC0wMi0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIHRhcmdldC1kZXNjcmlwdGlvbnMuYyAodGRlc2NfZ2RiX3R5cGUpOiBDb3JyZWN0IGkz ODZfZWZsYWdzCisrCXR5cGUuCisrCisrMjAxMC0wMi0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6IFNldCBu dW1iZXJzIG9mIGRpZmZlcmVudAorKwlyZWdpc3RlcnMgc2VwYXJhdGVseSBmb3IgMzJiaXQgYW5k IDY0Yml0LgorKworKzIwMTAtMDItMDggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiBpMzg2LXRkZXAuYyAoaTM4N19leHRfdHlwZSk6IENhbGwgdGRlc2NfZmluZF90eXBl IGluc3RlYWQgb2YKKysJYXJjaF9mbG9hdF90eXBlLgorKworKwkqIHRhcmdldC1kZXNjcmlwdGlv bnMuYyAodGRlc2NfZmluZF90eXBlKTogTmV3LgorKwkodGRlc2NfZ2RiX3R5cGUpOiBVc2UgaXQu CisrCisrCSogdGFyZ2V0LWRlc2NyaXB0aW9ucy5oICh0ZGVzY19maW5kX3R5cGUpOiBOZXcuCisr CisrMjAxMC0wMi0wNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkz ODYtbGludXgtdGRlcC5jOiBSZXBsYWNlIHg4Ni02NC94ODZfNjQgd2l0aCBhbWQ2NC4KKysJKiBp Mzg2LXRkZXAuYzogTGlrZXdpc2UuCisrCisrCSogZmVhdHVyZXMvTWFrZWZpbGU6IFJlcGxhY2Ug eDg2LTY0IHdpdGggYW1kNjQuCisrCSogZmVhdHVyZXMvaTM4Ni8qOiBSZW5hbWUgeDg2LTY0KiB0 byBhbWQ2NCouCisrCisrCSogcmVnZm9ybWF0cy9pMzg2Lyo6IFJlbmFtZSB4ODYtNjQqIHRvIGFt ZDY0Ki4KKysKKysyMDEwLTAyLTA3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Cisr CisrCSogZmVhdHVyZXMvTWFrZWZpbGUgKEkzODYtWE1MVE9DKTogUmVtb3ZlZC4gCisrCShJMzg2 LUNGSUxFUyk6IExpa2V3aXNlLgorKwkoaTM4Ni1jZmlsZXMpOiBMaWtld2lzZS4KKysKKysyMDEw LTAyLTA2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51 eC10ZGVwLmMgKGkzODZfbGludXhfaW5pdF9vcmlnX2VheCk6IFJldHVybiBvbmx5CisrCWlmIFhN TCB0YXJnZXQgZGVzY3JpcHRpb24gaXMgYXZhaWxhYmxlLgorKworKzIwMTAtMDItMDYgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4 Nl9saW51eF9pbml0X29yaWdfZWF4KTogQ2hlY2sKKysJb3JnLmdudS5nZGIuaTM4Ni5saW51eCBp bnN0ZWFkIG9mIG9yZy5nbnUuZ2RiLmkzODYuY29yZS4KKysKKysyMDEwLTAyLTA2ICBILkouIEx1 ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jIChhbWQ2 NF9saW51eF9pbml0X2FiaSk6IFJldmVydCB0aGUgbGFzdAorKwljaGFuZ2UuICBDYWxsIGkzODZf bGludXhfaW5pdF9vcmlnX2VheC4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51 eF9yZWdpc3Rlcl9uYW1lKTogTWFrZSBpdCBzdGF0aWMuCisrCShpMzg2X2xpbnV4X3JlZ2lzdGVy X3R5cGUpOiBMaWtld2lzZS4KKysJKGkzODZfbGludXhfaW5pdF9vcmlnX2VheCk6IE5ldy4KKysJ KGkzODZfbGludXhfaW5pdF9hYmkpOiBSZXZlcnQgdGhlIGxhc3QgY2hhbmdlLiAgQ2FsbAorKwlp Mzg2X2xpbnV4X2luaXRfb3JpZ19lYXguCisrCisrCSogaTM4Ni1saW51eC10ZGVwLmggKGkzODZf bGludXhfcmVnaXN0ZXJfbmFtZSk6IFJlbW92ZWQuCisrCShpMzg2X2xpbnV4X3JlZ2lzdGVyX3R5 cGUpOiBMaWtld2lzZS4KKysJKGkzODZfbGludXhfaW5pdF9vcmlnX2VheCk6IE5ldy4KKysKKysy MDEwLTAyLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQt bGludXgtdGRlcC5jIChhbWQ2NF9saW51eF9pbml0X2FiaSk6IFJlc3RvcmUKKysJc2V0X2dkYmFy Y2hfbnVtX3JlZ3MuICBDYWxsIHNldF9nZGJhcmNoX3JlZ2lzdGVyX25hbWUsCisrCXNldF9nZGJh cmNoX3JlZ2lzdGVyX3R5cGUgYW5kIHNldF9nZGJhcmNoX3JlbW90ZV9yZWdpc3Rlcl9udW1iZXIu CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5oOiBJbmNsdWRlICJpMzg2LWxpbnV4LXRkZXAuaCIu CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmM6IEluY2x1ZGUgImkzODYtdGRlcC5oIiBhbmQKKysJ ImkzODYtbGludXgtdGRlcC5oIiB3aXRoICJhbWQ2NC10ZGVwLmgiIGFuZCAiYW1kNjQtbGludXgt dGRlcC5oIi4KKysJKGkzODZfbGludXhfcmVnaXN0ZXJfbmFtZSk6IFJlc3RvcmVkIGFuZCByZXdv dGUuICBNYWtlIGl0IGdsb2JhbC4KKysJKGkzODZfbGludXhfcmVnaXN0ZXJfdHlwZSk6IE5ldy4K KysJKGkzODZfbGludXhfaW5pdF9hYmkpOiBSZXN0b3JlIHNldF9nZGJhcmNoX251bV9yZWdzIGFu ZAorKwlzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9uYW1lLiAgQ2FsbCBzZXRfZ2RiYXJjaF9yZWdpc3Rl cl90eXBlIGFuZAorKwlzZXRfZ2RiYXJjaF9yZW1vdGVfcmVnaXN0ZXJfbnVtYmVyLgorKworKwkq IGkzODYtbGludXgtdGRlcC5oIChpMzg2X2xpbnV4X3JlZ2lzdGVyX25hbWUpOiBOZXcuCisrCShp Mzg2X2xpbnV4X3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTA1ICBILkou IEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkz ODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogRml4IGEKKysJdHlwbyBpbiBjb21tZW50 cy4KKysKKysyMDEwLTAyLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF9pbml0KTogT3B0aW1pemUgdGFyZ2V0IGRlc2Ny aXB0aW9uCisrCWNoZWNrLgorKworKzIwMTAtMDItMDQgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmM6IEluY2x1ZGUgImkzODYtbGludXgt dGRlcC5oIgorKwkoYW1kNjRfbGludXhfaW5pdF9hYmkpOiBDYWxsIHNldF9nZGJhcmNoX2NvcmVf cmVhZF9kZXNjcmlwdGlvbi4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9j b3JlX3JlYWRfZGVzY3JpcHRpb24pOiBGaXggYQorKwl0eXBvLgorKworKzIwMTAtMDItMDQgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAo X2luaXRpYWxpemVfYW1kNjRfbGludXhfbmF0KTogU2V0CisrCXRvX3JlYWRfZGVzY3JpcHRpb24g dG8gaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uLgorKwkqIGkzODYtbGludXgtbmF0LmMgKF9p bml0aWFsaXplX2kzODZfbGludXhfbmF0KTogTGlrZXdpc2UuCisrCisrCSogYW1kNjQtbGludXgt dGRlcC5jIChhbWQ2NF9saW51eF9yZWdpc3Rlcl9uYW1lKTogUmVtb3ZlZC4KKysJKGFtZDY0X2xp bnV4X3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKysJKGFtZDY0X2xpbnV4X2luaXRfYWJpKTog RG9uJ3QgY2FsbCBzZXRfZ2RiYXJjaF9udW1fcmVncywKKysJc2V0X2dkYmFyY2hfcmVnaXN0ZXJf bmFtZSBub3Igc2V0X2dkYmFyY2hfcmVnaXN0ZXJfdHlwZS4KKysKKysJKiBhbWQ2NC10ZGVwLmMg KGFtZDY0X3JlZ2lzdGVyX25hbWVzKTogTWFrZSBpdCBnbG9iYWwuCisrCShhbWQ2NF9yZWdpc3Rl cl9uYW1lKTogUmVtb3ZlZC4KKysJKGFtZDY0X3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKysJ KGFtZDY0X2luaXRfYWJpKTogRG9uJ3QgY2FsbCBzZXRfZ2RiYXJjaF9udW1fcmVncywKKysJc2V0 X2dkYmFyY2hfcmVnaXN0ZXJfbmFtZSBub3Igc2V0X2dkYmFyY2hfcmVnaXN0ZXJfdHlwZS4KKysK KysJKiBhbWQ2NC10ZGVwLmggKGFtZDY0X3JlZ2lzdGVyX25hbWVzKTogTmV3LgorKworKwkqIGkz ODYtbGludXgtdGRlcC5jOiBJbmNsdWRlIGZlYXR1cmVzL2kzODYvaTM4Ni1saW51eC5jIGFuZAor KwlmZWF0dXJlcy9pMzg2L3g4Ni02NC1saW51eC5jLgorKwkoaTM4Nl9saW51eF9yZWdpc3Rlcl9u YW1lKTogUmVtb3ZlZC4KKysJKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogTmV3 LgorKwkoaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogTGlrZXdpc2UuCisrCShpMzg2X2xp bnV4X2luaXRfYWJpKTogRG9uJ3QgY2FsbCBzZXRfZ2RiYXJjaF9udW1fcmVncyBub3IKKysJc2V0 X2dkYmFyY2hfcmVnaXN0ZXJfbmFtZS4gIENhbGwKKysJc2V0X2dkYmFyY2hfY29yZV9yZWFkX2Rl c2NyaXB0aW9uLgorKwkoX2luaXRpYWxpemVfaTM4Nl9saW51eF90ZGVwKTogQ2FsbCBpbml0aWFs aXplX3RkZXNjX2kzODZfbGludXgKKysJYW5kIGluaXRpYWxpemVfdGRlc2NfeDg2XzY0X2xpbnV4 LgorKworKwkqIGkzODYtbGludXgtdGRlcC5oIChpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlw dGlvbik6IE5ldy4KKysJKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IExpa2V3aXNlLgor KworKwkqIGkzODYtdGRlcC5jOiBJbmNsdWRlICJhbWQ2NC10ZGVwLmgiIGluc3RlYWQgb2YgImkz ODYtdGRlcC5oIi4KKysJSW5jbHVkZSBmZWF0dXJlcy9pMzg2L2kzODYuYyBhbmQgZmVhdHVyZXMv aTM4Ni94ODYtNjQuYy4KKysJKGkzODZfbnVtX3JlZ2lzdGVyX25hbWVzKTogUmVtb3ZlZC4KKysJ KGkzODZfcmVnaXN0ZXJfbmFtZXMpOiBNYWtlIGl0IGNvbnN0LgorKwkoaTM4Nl9tbXhfbmFtZXMp OiBMaWtld2lzZS4KKysJKGkzODZfbnVtX3JlZ2lzdGVyX25hbWVzKTogUmVtb3ZlZC4KKysJKGkz ODZfcmVnaXN0ZXJfbmFtZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9lZmxhZ3NfdHlwZSk6IExpa2V3 aXNlLgorKwkoaTM4Nl9teGNzcl90eXBlKTogTGlrZXdpc2UuCisrCShpMzg2X3NzZV90eXBlKTog TGlrZXdpc2UuCisrCShpMzg2X3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKysJKGkzODZfcHNl dWRvX3JlZ2lzdGVyX25hbWUpOiBOZXcuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl90eXBlKTog TGlrZXdpc2UuCisrCShpMzg2X21teF90eXBlKTogTWFrZSBpdCBzdGF0aWMuCisrCShpMzg2X2dk YmFyY2hfaW5pdCk6IERvbid0IGNhbGwgc2V0X2dkYmFyY2hfcmVnaXN0ZXJfbmFtZQorKwlub3Ig c2V0X2dkYmFyY2hfcmVnaXN0ZXJfdHlwZS4gIENhbGwKKysJc2V0X3RkZXNjX3BzZXVkb19yZWdp c3Rlcl90eXBlLCBzZXRfdGRlc2NfcHNldWRvX3JlZ2lzdGVyX25hbWUKKysJYW5kIHRkZXNjX3Vz ZV9yZWdpc3RlcnMuCisrCShfaW5pdGlhbGl6ZV9pMzg2X3RkZXApOiBDYWxsIGluaXRpYWxpemVf dGRlc2NfaTM4NiBhbmQKKysJaW5pdGlhbGl6ZV90ZGVzY194ODZfNjQuCisrCisrCSogaTM4Ni10 ZGVwLmggKGdkYmFyY2hfdGRlcCk6IFJlbW92ZSBpMzg2X2VmbGFnc190eXBlLAorKwlpMzg2X214 Y3NyX3R5cGUgYW5kIGkzODZfc3NlX3R5cGUuCisrCShpMzg2X2VmbGFnc190eXBlKTogUmVtb3Zl ZC4KKysJKGkzODZfbXhjc3JfdHlwZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9tbXhfdHlwZSk6IExp a2V3aXNlLgorKwkoaTM4Nl9zc2VfdHlwZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9yZWdpc3Rlcl9u YW1lKTogTGlrZXdpc2UuCisrCisrCSogZmVhdHVyZXMvTWFrZWZpbGUgKEkzODYtWE1MVE9DKTog TmV3LgorKwkoSTM4Ni1DRklMRVMpOiBMaWtld2lzZS4KKysJKGkzODYtY2ZpbGVzKTogTGlrZXdp c2UuCisrCisrCSogZmVhdHVyZXMvaTM4Ni8zMmJpdC1zc2UueG1sOiBVcGRhdGUgdmVjMTI4IHR5 cGUuCisrCSogZmVhdHVyZXMvaTM4Ni82NGJpdC1zc2UueG1sOiBMaWtld2lzZS4KKysKKysJKiBm ZWF0dXJlcy9pMzg2L2kzODYtbGludXguYzogUmVnZW5lcmF0ZWQuCisrCSogZmVhdHVyZXMvaTM4 Ni9pMzg2LmM6IExpa2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYveDg2LTY0LWxpbnV4LmM6IExp a2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYveDg2LTY0LmM6IExpa2V3aXNlLgorKworKzIwMTAt MDItMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiB0YXJnZXQtZGVz Y3JpcHRpb25zLmMgKHRkZXNjX3R5cGUpOiBBZGQgVERFU0NfVFlQRV9JMzg3X0VYVCwKKysJVERF U0NfVFlQRV9JMzg2X0VGTEFHUyBhbmQgVERFU0NfVFlQRV9JMzg2X01YQ1NSLgorKwkodGRlc2Nf cHJlZGVmaW5lZF90eXBlcyk6IEFkZCBpMzg3X2V4dCwgaTM4Nl9lZmxhZ3MgYW5kCisrCWkzODZf bXhjc3IuCisrCSh0ZGVzY19nZGJfdHlwZSk6IEhhbmRsZSBUREVTQ19UWVBFX0kzODdfRVhULAor KwlUREVTQ19UWVBFX0kzODZfRUZMQUdTIGFuZCBUREVTQ19UWVBFX0kzODZfTVhDU1IuCisrCSgK KysJKiBmZWF0dXJlcy9pMzg2LzMyYml0LWNvcmUueG1sOiBSZXBsYWNlIGkzODZfZXh0IHdpdGgg aTM4N19leHQuCisrCSogZmVhdHVyZXMvaTM4Ni82NGJpdC1jb3JlLnhtbDogTGlrZXdpc2UuCisr CisrCSogZmVhdHVyZXMvaTM4Ni9pMzg2LWxpbnV4LmM6IE5ldy4KKysJKiBmZWF0dXJlcy9pMzg2 L2kzODYuYzogTGlrZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni94ODYtNjQtbGludXguYzogTGlr ZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni94ODYtNjQuYzogTGlrZXdpc2UuCisrCisrMjAxMC0w Mi0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGZlYXR1cmVzL2kz ODYvMzJiaXQtY29yZS54bWw6IE5ldy4KKysJKiBmZWF0dXJlcy9pMzg2LzMyYml0LWxpbnV4Lnht bDogTGlrZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni8zMmJpdC1zc2UueG1sOiBMaWtld2lzZS4K KysJKiBmZWF0dXJlcy9pMzg2LzY0Yml0LWNvcmUueG1sOiBMaWtld2lzZS4KKysJKiBmZWF0dXJl cy9pMzg2LzY0Yml0LWxpbnV4LnhtbDogTGlrZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni82NGJp dC1zc2UueG1sOiBMaWtld2lzZS4KKysJKiBmZWF0dXJlcy9pMzg2L2kzODYtbGludXgueG1sOiBM aWtld2lzZS4KKysJKiBmZWF0dXJlcy9pMzg2L2kzODYueG1sOiBMaWtld2lzZS4KKysJKiBmZWF0 dXJlcy9pMzg2L3g4Ni02NC1saW51eC54bWw6IExpa2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYv eDg2LTY0LnhtbDogTGlrZXdpc2UuCisrCisrCSogZmVhdHVyZXMvTWFrZWZpbGUgKFdISUNIKTog QWRkIGkzODYvaTM4NiwgaTM4Ni9pMzg2LWxpbnV4LAorKwlpMzg2L3g4Ni02NCBhbmQgaTM4Ni94 ODYtNjQtbGludXguCisrCShpMzg2L2kzODYtZXhwZWRpdGUpOiBOZXcuCisrCShpMzg2L2kzODYt bGludXgtZXhwZWRpdGUpOiBMaWtld2lzZS4KKysJKGkzODYveDg2LTY0LWV4cGVkaXRlKTpMaWtl d2lzZS4KKysJKGkzODYveDg2LTY0LWxpbnV4LWV4cGVkaXRlKTogTGlrZXdpc2UuCisrCSgkKG91 dGRpcikvaTM4Ni9pMzg2LmRhdCk6IE5ldyBkZXBlbmRlbmN5LgorKwkoJChvdXRkaXIpL2kzODYv aTM4Ni1saW51eC5kYXQpOiBMaWtld2lzZS4KKysJKCQob3V0ZGlyKS9pMzg2L3g4Ni02NC5kYXQp OiBMaWtld2lzZS4KKysJKCQob3V0ZGlyKS9pMzg2L3g4Ni02NC1saW51eC5kYXQpOiBMaWtld2lz ZS4KKysKKysJKiByZWdmb3JtYXRzL2kzODYvaTM4Ni1saW51eC5kYXQ6IFJlZ2VuZXJhdGVkLgor KwkqIHJlZ2Zvcm1hdHMvaTM4Ni9pMzg2LmRhdDogTGlrZXdpc2UuCisrCSogcmVnZm9ybWF0cy9p Mzg2L3g4Ni02NC1saW51eC5kYXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMvaTM4Ni94ODYt NjQuZGF0OiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+CisrCisrCSogcmVnZm9ybWF0cy9yZWctaTM4Ni1saW51eC5kYXQ6IE1vdmVkIHRv IC4uLgorKwkqIHJlZ2Zvcm1hdHMvaTM4Ni9pMzg2LWxpbnV4LmRhdDogSGVyZS4KKysKKysJKiBy ZWdmb3JtYXRzL3JlZy1pMzg2LmRhdDogTW92ZWQgdG8gLi4uCisrCSogcmVnZm9ybWF0cy9pMzg2 L2kzODYuZGF0OiBIZXJlLgorKworKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1saW51eC5kYXQ6 IE1vdmVkIHRvIC4uLgorKwkqIHJlZ2Zvcm1hdHMvaTM4Ni94ODYtNjQtbGludXguZGF0OiBIZXJl LgorKworKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC5kYXQ6IE1vdmVkIHRvIC4uLgorKwkqIHJl Z2Zvcm1hdHMvaTM4Ni94ODYtNjQuZGF0OiBIZXJlLgorLS0tIC4vZ2RiL0NoYW5nZUxvZy54c3Rh dGUJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9DaGFuZ2VM b2cueHN0YXRlCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsx LDM4NCBAQAorKzIwMTAtMDItMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQpOiBVcGRhdGVk LgorKworKzIwMTAtMDEtMzEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBhbWQ2NC10ZGVwLmMgKGFtZDY0X2luaXRfYWJpKTogVXBkYXRlZC4KKysJKiBpMzg2LXRkZXAu YyAoaTM4Nl9nZGJhcmNoX2luaXQpOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4 Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQpOiBDaGFuZ2UgZnVuY3Rpb24KKysJYXJndW1lbnRz LgorKwkqIGkzODYtdGRlcC5oIChpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdCk6IExpa2Vp c2UuCisrCisrMjAxMC0wMS0yOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGNvbW1vbi94c3RhdGUtbmF0LmMgKGkzODZfeHN0YXRlX2luaXQpOiBVc2UgZW5hYmxlZCBz aXplLgorKworKzIwMTAtMDEtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfZnhzYXZlKTogQ2hlY2sgdmVjdG9yX3VuaXQu CisrCShpMzg3X2NvbGxlY3RfZnhzYXZlKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0yOCAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIHJlZ2NhY2hlLmMgKHJlZ2NhY2hl X3Jhd19zdXBwbHlfcGFydCk6IEdyb3VwIGl0IHdpdGggLi4uCisrCShyZWdjYWNoZV9yYXdfY29s bGVjdF9wYXJ0KTogVGhpcy4KKysKKysyMDEwLTAxLTI4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfY29yZV9yZWFk X2Rlc2NyaXB0aW9uKTogU2V0CisrCXZlY3Rvcl91bml0IHRvIHNzZSBpZiB0aGVyZSBpcyBubyAu cmVnLXhzdGF0ZSBzZWN0aW9uLgorKworKzIwMTAtMDEtMjcgIEguSi4gTHUgIDxob25naml1Lmx1 QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoX2luaXRpYWxpemVfYW1kNjRf bGludXhfbmF0KTogQXNzZXJ0CisrCWkzODZfeHN0YXRlLnN0YXRlICE9IFhTVEFURV9VTktOT1dO IGluc3RlYWQgb2YgY2FsbGluZyBpMzg2X3hzdGF0ZV9pbml0LgorKwkqIGkzODYtbGludXgtbmF0 LmMgKF9pbml0aWFsaXplX2kzODZfbGludXhfbmF0KTogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0y NyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LXRk ZXAuYyAoX2luaXRpYWxpemVfYW1kNjRfbGludXhfdGRlcCk6IENhbGwKKysJaTM4Nl94c3RhdGVf aW5pdCBhbmQgdXBkYXRlIHRoZSBYU0FWRSBleHRlbmRlZCBzdGF0ZSBzaXplIG9uCisrCUxpbnV4 L3g4NiBob3N0LgorKwkqIGkzODYtbGludXgtdGRlcC5jIChfaW5pdGlhbGl6ZV9pMzg2X2xpbnV4 X3RkZXApOiBMaWtld2lzZS4KKysKKysyMDEwLTAxLTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jOiBJbmNsdWRlICJpMzg2LWxpbnV4 LXRkZXAuaCIgYW5kICJyZWdzZXQuaCIuCisrCShhbWQ2NF9saW51eF9yZWdzZXRfc2VjdGlvbnMp OiBOZXcuCisrCShhbWQ2NF9saW51eF9pbml0X2FiaSk6IENhbGwgc2V0X2dkYmFyY2hfY29yZV9y ZWdzZXRfc2VjdGlvbnMKKysJd2l0aCBhbWQ2NF9saW51eF9yZWdzZXRfc2VjdGlvbnMuICBDYWxs CisrCXNldF9nZGJhcmNoX2NvcmVfcmVhZF9kZXNjcmlwdGlvbiB3aXRoCisrCWkzODZfbGludXhf Y29yZV9yZWFkX2Rlc2NyaXB0aW9uLgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfc3VwcGx5 X3hzdGF0ZXJlZ3NldCk6IE5ldy4KKysJKGFtZDY0X2NvbGxlY3RfeHN0YXRlcmVnc2V0KTogTGlr ZXdpc2UuCisrCShhbWQ2NF9yZWdzZXRfZnJvbV9jb3JlX3NlY3Rpb24pOiBDaGVjayAucmVnLXhz dGF0ZSBzZWN0aW9uLgorKworKwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2xpbnV4X3JlZ3Nl dF9zZWN0aW9ucyk6IEFkZAorKwkucmVnLXhzdGF0ZSBzZWN0aW9uLgorKwkoaTM4Nl9saW51eF9j b3JlX3JlYWRfZGVzY3JpcHRpb24pOiBOZXcuCisrCShpMzg2X2xpbnV4X2luaXRfYWJpKTogQ2Fs bCBzZXRfZ2RiYXJjaF9jb3JlX3JlYWRfZGVzY3JpcHRpb24KKysJd2l0aCBpMzg2X2xpbnV4X2Nv cmVfcmVhZF9kZXNjcmlwdGlvbi4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuaCAoaTM4Nl9saW51 eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24pOiBOZXcuCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZf c3VwcGx5X3hzdGF0ZXJlZ3NldCk6IE5ldy4KKysJKGkzODZfY29sbGVjdF94c3RhdGVyZWdzZXQp OiBMaWtld2lzZS4KKysJKGkzODZfcmVnc2V0X2Zyb21fY29yZV9zZWN0aW9uKTogQ2hlY2sgLnJl Zy14c3RhdGUgc2VjdGlvbi4KKysJKGkzODZfZ2RiYXJjaF9pbml0KTogSW5pdGlhbGl6ZSB4c3Rh dGVyZWdzZXQgdG8gTlVMTC4KKysKKysJKiBpMzg2LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogQWRk IHhzdGF0ZXJlZ3NldC4KKysKKysyMDEwLTAxLTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRl bC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9pbml0X2FiaSk6IFNldCBzaXplb2Zf eHN0YXRlcmVnc2V0IHRvIDAuCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF92ZWN0 b3JfdW5pdF9pbml0KTogU2V0CisrCXNpemVvZl94c3RhdGVyZWdzZXQgaWYgWFNBVkUgZXh0ZW5k ZWQgc3RhdGUgaXMgc3VwcG9ydGVkLgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBTZXQgc2l6ZW9m X3hzdGF0ZXJlZ3NldCB0byAwLgorKworKwkqIGkzODYtdGRlcC5oIChnZGJhcmNoX3RkZXApOiBB ZGQgc2l6ZW9mX3hzdGF0ZXJlZ3NldC4KKysKKysJKiBjb21tb24veHN0YXRlLW5hdC5jIChpMzg2 X3hzdGF0ZV9pbml0KTogU2V0IGkzODZfeHN0YXRlLnNpemUuCisrCisrCSogY29tbW9uL3hzdGF0 ZS1uYXQuaCAoaTM4Nl94c3RhdGVfdHlwZSk6IEFkZCBzaXplLgorKworKzIwMTAtMDEtMjcgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKGFtZDY0 X3JlZ2lzdGVyX25hbWVzKTogUmVuYW1lZCB0byAuLi4KKysJKGFtZDY0X3NzZV9yZWdpc3Rlcl9u YW1lcyk6IFRoaXMuICBSZW1vdmUgQVZYIHJlZ2lzdGVycy4KKysJKGFtZDY0X2F2eF9yZWdpc3Rl cl9uYW1lcyk6IE5ldy4KKysJKEFNRDY0X05VTV9SRUdTKTogVXBkYXRlZC4KKysJKGFtZDY0X3Jl Z2lzdGVyX25hbWUpOiBIYW5kbGUgdmVjdG9yX3VuaXQuCisrCShhbWQ2NF9yZWdpc3Rlcl90eXBl KTogUmVwbGFjZSBpMzg2X3NzZV90eXBlIHdpdGgKKysJaTM4Nl92ZWN0b3JfdHlwZS4KKysKKysJ KiBkZWZzLmggKE1BWF9SRUdJU1RFUl9TSVpFKTogSW5jcmVhc2UgdG8gMzIuCisrCisrCSogaTM4 Ni10ZGVwLmM6IChpMzg2X3JlZ2lzdGVyX25hbWVzKTogUmVuYW1lZCB0byAuLi4KKysJKGkzODZf c3NlX3JlZ2lzdGVyX25hbWVzKTogVGhpcy4KKysJKGkzODZfYXZ4X3JlZ2lzdGVyX25hbWVzKTog TmV3LgorKwkoaTM4Nl92ZWMxMjhfdHlwZSk6IExpa2V3aXNlLgorKwkoaTM4Nl92ZWMyNTZfdHlw ZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9udW1fcmVnaXN0ZXJfbmFtZXMpOiBVcGRhdGVkLgorKwko aTM4Nl9nZGJhcmNoX3NzZV91bml0X2luaXQpOiBMaWtld2lzZS4KKysJKGkzODZfcmVnaXN0ZXJf bmFtZSk6IEhhbmRsZSB2ZWN0b3JfdW5pdC4KKysJKGkzODZfc3NlX3R5cGUpOiBSZW5hbWVkIHRv IC4uLgorKwkoaTM4Nl92ZWN0b3JfdHlwZSk6IFRoaXMuICBIYW5kbGUgdmVjdG9yX3VuaXQuCisr CShhbWQ2NF9yZWdpc3Rlcl90eXBlKTogUmVwbGFjZSBpMzg2X3NzZV90eXBlIHdpdGgKKysJaTM4 Nl92ZWN0b3JfdHlwZS4KKysKKysJKiBpMzg2LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogUmVwbGFj ZSBpMzg2X3NzZV90eXBlIHdpdGgKKysJaTM4Nl92ZWN0b3JfdHlwZS4KKysJKEkzODZfTUFYX1JF R0lTVEVSX1NJWkUpOiBJbmNyZWFzZSB0byAzMi4KKysJKGkzODZfc3NlX3R5cGUpOiBSZW5hbWVk IHRvIC4uLgorKwkoaTM4Nl92ZWN0b3JfdHlwZSk6IFRoaXMuCisrCisrMjAxMC0wMS0yNSAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIE1ha2VmaWxlLmluICh4c2F2ZS1u YXQubyk6IFJlbmFtZWQgdG8gLi4uCisrCSh4c3RhdGUtbmF0Lm8pOiBUaGlzLgorKworKwkqIGNv bW1vbi94c2F2ZS1uYXQuYzogTW92ZWQgdG8gLi4uCisrCSogY29tbW9uL3hzdGF0ZS1uYXQuYzog VGhpcy4KKysKKysJKiBjb21tb24veHNhdmUtbmF0Lmg6IE1vdmVkIHRvIC4uLgorKwkqIGNvbW1v bi94c3RhdGUtbmF0Lmg6IFRoaXMuCisrCisrCSogY29uZmlnL2kzODYvbGludXgubWggKE5BVERF UEZJTEVTKTogUmVwbGFjZSB4c2F2ZS1uYXQubyB3aXRoCisrCXhzdGF0ZS1uYXQuby4KKysJKiBj b25maWcvaTM4Ni9saW51eDY0Lm1oIChOQVRERVBGSUxFUyk6IExpa2V3aXNlLgorKworKwkqIGNv bmZpZy9pMzg2L25tLWxpbnV4Lmg6IEluY2x1ZGUgInhzdGF0ZS1uYXQuaCIgaW5zdGVhZCBvZgor KwkieHNhdmUtbmF0LmgiLgorKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4NjQuaDogTGlrZXdpc2Uu CisrCisrMjAxMC0wMS0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkq IGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMp OgorKwlJc3N1ZSBhbiBlcnJvciBpZiBQVFJBQ0VfR0VUWFNUQVRFUkVHUyBmYWlsZWQgYW5kIFhT QVZFCisrCWV4dGVuZGVkIHN0YXRlIGlzIGhpZ2hlciB0aGFuIFNTRS4KKysJKGFtZDY0X2xpbnV4 X3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyk6IExpa2V3aXNlLgorKwkqIGkzODYtbGludXgtbmF0 LmMgKGZldGNoX3hzdGF0ZXJlZ3MpOiBMaWtld2lzZS4KKysJKHN0b3JlX3hzdGF0ZXJlZ3MpOiBM aWtld2lzZS4KKysKKysyMDEwLTAxLTIyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+ CisrCisrCSogY29tbW9uL3hzYXZlLW5hdC5jOiBJbmNsdWRlICJpMzg2LWNwdWlkLmgiIGluc3Rl YWQgb2YKKysJImNvbmZpZy9pMzg2L2kzODYtY3B1aWQuaCIuCisrCisrCSogY29uZmlnL2kzODYv aTM4Ni1jcHVpZC5oOiBNb3ZlZCB0byAuLi4KKysJKiBjb21tb24vaTM4Ni1jcHVpZC5oOiBIZXJl LgorKworKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBNYWtlZmlsZS5pbiAoeHNhdmUtbmF0Lm8pOiBOZXcuCisrCisrCSogeHNhdmUtbmF0LmM6IE1v dmVkIHRvIC4uLgorKwkqIGNvbW1vbi94c2F2ZS1uYXQuYzogSGVyZS4KKysKKysJKiB4c2F2ZS1u YXQuaDogTW92ZWQgdG8gLi4uCisrCSogY29tbW9uL3hzYXZlLW5hdC5oOiBIZXJlLgorKworKzIw MTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LWxp bnV4LW5hdC5jIChoYXZlX3B0cmFjZV9nZXR4c3RhdGVyZWdzKTogTmV3LgorKwkoUFRSQUNFX0dF VFhTVEFURVJFR1MpOiBMaWtld2lzZS4KKysJKFBUUkFDRV9TRVRYU1RBVEVSRUdTKTogTGlrZXdp c2UuCisrCShmZXRjaF94c3RhdGVyZWdzKTogTGlrZXdpc2UuCisrCShzdG9yZV94c3RhdGVyZWdz KTogTGlrZXdpc2UuCisrCShpMzg2X2xpbnV4X2ZldGNoX2luZmVyaW9yX3JlZ2lzdGVycyk6IFN1 cHBvcnQgWFNBVkUgZXh0ZW5kZWQKKysJc3RhdGUuCisrCShpMzg2X2xpbnV4X3N0b3JlX2luZmVy aW9yX3JlZ2lzdGVycyk6IExpa2V3aXNlLgorKwkoX2luaXRpYWxpemVfaTM4Nl9saW51eF9uYXQp OiBDYWxsIGkzODZfeHN0YXRlX2luaXQgYW5kIHNldAorKwloYXZlX3B0cmFjZV9nZXR4c3RhdGVy ZWdzLgorKworKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBpMzg3LXRkZXAuYyAoeHNhdmVfYXZ4aF9vZmZzZXQpOiBOZXcuCisrCShYU0FWRV9BVlhI X0FERFIpOiBMaWtld2lzZS4KKysJKGkzODdfc3VwcGx5X3hzYXZlKTogVXNlIFhTQVZFX1NTRV9B RERSIGFuZCBYU0FWRV9BVlhIX0FERFIgZm9yCisrCUFWWCB2ZWN0b3IgdW5pdC4KKysJKGkzODdf Y29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LXRkZXAuYyAoeHNhdmVfc3NlX29mZnNldCk6 IE5ldy4KKysJKFhTQVZFX1NTRV9BRERSKTogTGlrZXdpc2UuCisrCShpMzg3X3N1cHBseV94c2F2 ZSk6IFVzZSBYU0FWRV9TU0VfQUREUi4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNl LgorKworKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfeHNhdmUpOiBDaGVjayB2ZWN0b3IgdW5pdC4KKysJ KGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjIgIEguSi4gTHUg IDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBncmVnc2V0LmggKEdEQl9YU1RBVEVfU1NF X1JFR1NFVF9UKTogUmVtb3ZlZC4KKysJKEdEQl9YU1RBVEVfQVZYX1JFR1NFVF9UKTogTGlrZXdp c2UuCisrCShnZGJfeHN0YXRlX3NzZV9yZWdzZXRfdCk6IExpa2V3aXNlLgorKwkoZ2RiX3hzdGF0 ZV9hdnhfcmVnc2V0X3QpOiBMaWtld2lzZS4KKysJKHN1cHBseV94c3RhdGVfc3NlX3JlZ3NldCk6 IExpa2V3aXNlLgorKwkoc3VwcGx5X3hzdGF0ZV9hdnhfcmVnc2V0KTogTGlrZXdpc2UuCisrCShm aWxsX3hzdGF0ZV9zc2VfcmVnc2V0KTogTGlrZXdpc2UuCisrCShmaWxsX3hzdGF0ZV9hdnhfcmVn c2V0KTogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIHJlZ2NhY2hlLmMgKHJlZ2NhY2hlX3Jhd19zdXBwbHlfcGFydCk6IE5l dy4KKysJKHJlZ2NhY2hlX3Jhd19jb2xsZWN0X3BhcnQpOiBMaWtld2lzZS4KKysJKiByZWdjYWNo ZS5oIChyZWdjYWNoZV9yYXdfc3VwcGx5X3BhcnQpOiBMaWtld2lzZS4KKysJKHJlZ2NhY2hlX3Jh d19jb2xsZWN0X3BhcnQpOiBMaWtld2lzZS4KKysKKysyMDEwLTAxLTIyICBILkouIEx1ICA8aG9u Z2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmMgKGFtZDY0X2luaXRf YWJpKTogQ2FsbAorKwlpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdC4KKysKKysJKiBpMzg2 LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQpOiBOZXcuCisrCShpMzg2X2dk YmFyY2hfaW5pdCk6IENhbGwgaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQuCisrCisrCSog aTM4Ni10ZGVwLmggKHg4Nl92ZWN0b3JfdW5pdCk6IE5ldy4KKysJKGdkYmFyY2hfdGRlcCk6IEFk ZCB2ZWN0b3JfdW5pdC4KKysKKysyMDEwLTAxLTIyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRl bC5jb20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmMgKF9pbml0aWFsaXplX2FtZDY0X2xpbnV4 X25hdCk6IEFsd2F5cyBjYWxsCisrCWkzODZfeHN0YXRlX2luaXQgKCkuCisrCisrMjAxMC0wMS0y MiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5h dC5jIChoYXZlX3B0cmFjZV9nZXR4c3RhdGVyZWdzKTogTmV3LgorKwkoUFRSQUNFX0dFVFhTVEFU RVJFR1MpOiBMaWtld2lzZS4KKysJKFBUUkFDRV9TRVRYU1RBVEVSRUdTKTogTGlrZXdpc2UuCisr CShhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMpOiBTdXBwb3J0IFhTQVZFIGV4 dGVuZGVkCisrCXN0YXRlLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJz KTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnNfd2l0 aF94c2F2ZSk6IFJlbW92ZWQuCisrCShhbWQ2NF9saW51eF9zdG9yZV9pbmZlcmlvcl9yZWdpc3Rl cnNfd2l0aF94c2F2ZSk6IExpa2V3aXNlLgorKwkoX2luaXRpYWxpemVfYW1kNjRfbGludXhfbmF0 KTogVXBkYXRlZC4KKysKKysJKiBjb25maWd1cmUuYWM6IFJlbW92ZSBjaGVjayBmb3IgUFRSQUNF X0dFVFhTVEFURVJFR1MuCisrCSogY29uZmlnLmluOiBSZWdlbmVyYXRlZC4KKysJKiBjb25maWd1 cmU6IExpa2V3aXNlLgorKworKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4LmggKFVTRV9YU0FWRSk6 IENoYW5nZWQgdG8gLi4uCisrCShGSUxMX1hTVEFURVJFR1NFVCk6IFRoaXMuCisrCSogb25maWcv aTM4Ni9ubS1saW51eDY0Lmg6IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxo b25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiB4c2F2ZS1uYXQuYyAoaTM4Nl94c3RhdGVfaW5p dCk6IFByb3Blcmx5IHNldCBzdGF0ZS4KKysKKysyMDEwLTAxLTIxICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmM6IERvbid0IGluY2x1ZGUg InhzYXZlLW5hdC5oIi4KKysJKGFtZDY0X2xpbnV4X2ZldGNoX2luZmVyaW9yX3JlZ2lzdGVyc193 aXRoX3hzdGF0ZSk6IFJlbmFtZWQgdG8gLi4uCisrCShhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlv cl9yZWdpc3RlcnNfd2l0aF94c2F2ZSk6IFRoaXMuCisrCShhbWQ2NF9saW51eF9zdG9yZV9pbmZl cmlvcl9yZWdpc3RlcnNfd2l0aF94c3RhdGUpOiBSZW5hbWVkIHRvIC4uLgorKwkoYW1kNjRfbGlu dXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzX3dpdGhfeHNhdmUpOiBUaGlzLgorKworKwkqIGNv bmZpZy9pMzg2L25tLWxpbnV4Lmg6IEluY2x1ZGUgInhzYXZlLW5hdC5oIi4KKysJKiBjb25maWcv aTM4Ni9ubS1saW51eDY0Lmg6IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxo b25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBjb25maWcvaTM4Ni9saW51eDY0Lm1oIChOQVRf RklMRSk6IFNldCB0byBubS1saW51eDY0LmguCisrCisrCSogY29uZmlnL2kzODYvbm0tbGludXgu aCAoVVNFX1hTQVZFKTogTmV3LgorKworKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4NjQuaDogTmV3 LgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiB4c2F2ZS1uYXQuYzogSW5jbHVkZSAiY29uZmlnL2kzODYvaTM4Ni1jcHVpZC5oIiBpZiA8Y3B1 aWQuaD4KKysJaXNuJ3QgYXZhaWxhYmxlLgorKworKwkqIGNvbmZpZy9pMzg2L2kzODYtY3B1aWQu aDogTmV3LiBUYWtlbiBmcm9tIGdjYyA0LjQuCisrCisrMjAxMC0wMS0yMSAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jOiBJbmNsdWRlICJ4 c2F2ZS1uYXQuaCIKKysJKF9pbml0aWFsaXplX2FtZDY0X2xpbnV4X25hdCk6IENoZWNrIEhBVkVf UFRSQUNFX0dFVFhTVEFURVJFR1MKKysJaW5zdGVhZCBvZiBIQVZFX1NZU19YU1RBVEVfSC4KKysK KysJKiBjb25maWd1cmUuYWM6IEFkZCBjaGVjayBmb3IgY3B1aWQuaC4gIFJlbW92ZSBjaGVjayBm b3IKKysJc3lzL3hzdGF0ZS5oLCBfX2dldF94c3RhdGUgYW5kIF9fZ2V0X3hzdGF0ZV9zaXplLgor KwkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZWQuCisrCSogY29uZmlndXJlOiBMaWtld2lzZS4KKysK KysJKiBpMzg2LW5hdC5jIChpMzg2X3hzdGF0ZSk6IFJlbW92ZWQuCisrCShpMzg2X3hzdGF0ZV9p bml0KTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni1uYXQuaCAoaTM4Nl94c3RhdGVfdHlwZSk6IFJl bW92ZWQuCisrCShpMzg2X3hzdGF0ZSk6IExpa2V3aXNlLgorKwkoaTM4Nl94c3RhdGVfaW5pdCk6 IExpa2V3aXNlLgorKworKwkqIHhzYXZlLW5hdC5jOiBOZXcuCisrCSogeHNhdmUtbmF0Lmg6IExp a2V3aXNlLgorKworKwkqIGNvbmZpZy9pMzg2L2xpbnV4Lm1oIChOQVRERVBGSUxFUyk6IEFkZCB4 c2F2ZS1uYXQuby4KKysJKiBjb25maWcvaTM4Ni9saW51eDY0Lm1oIChOQVRERVBGSUxFUyk6IExp a2V3aXNlLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVn aXN0ZXJzX3dpdGhfeHN0YXRlKToKKysJQ2FsbCBhbWQ2NF9zdXBwbHlfeHNhdmUgaW5zdGVhZCBv ZiBhbWQ2NF9zdXBwbHlfZnhzYXZlLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVn aXN0ZXJzX3dpdGhfeHN0YXRlKTogQ2FsbAorKwlhbWQ2NF9jb2xsZWN0X2Z4c2F2ZSBpbnN0ZWFk IG9mIGFtZDY0X2NvbGxlY3RfeHNhdmUuCisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9zdXBw bHlfeHNhdmUpOiBOZXcuCisrCShhbWQ2NF9jb2xsZWN0X3hzYXZlKTogTGlrZXdpc2UuCisrCSog YW1kNjQtdGRlcC5oIChhbWQ2NF9zdXBwbHlfeHNhdmUpOiBMaWtld2lzZS4KKysJKGFtZDY0X2Nv bGxlY3RfeHNhdmUpOiBMaWtld2lzZS4KKysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfeHNh dmUpOiBMaWtld2lzZS4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKwkqIGkz ODctdGRlcC5oIChpMzg3X3N1cHBseV94c2F2ZSk6IExpa2V3aXNlLgorKwkoaTM4N19jb2xsZWN0 X3hzYXZlKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni1uYXQuaDogVXBkYXRlIGNvbW1lbnRzLgor KworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBh bWQ2NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzKTog UmV2ZXJ0CisrCXRoZSBsYXN0IGNoYW5nZSwKKysJKGFtZDY0X2xpbnV4X3N0b3JlX2luZmVyaW9y X3JlZ2lzdGVycyk6IExpa2V3aXNlLgorKwkoYW1kNjRfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVn aXN0ZXJzX3dpdGhfeHN0YXRlKTogTmV3LgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3Jf cmVnaXN0ZXJzX3dpdGhfeHN0YXRlKTogTGlrZXdpc2UuCisrCShfaW5pdGlhbGl6ZV9hbWQ2NF9s aW51eF9uYXQpOiBVc2UKKysJYW1kNjRfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzX3dp dGhfeHN0YXRlIGFuZAorKwlhbWQ2NF9saW51eF9zdG9yZV9pbmZlcmlvcl9yZWdpc3RlcnNfd2l0 aF94c3RhdGUgaWYgcG9zc2libGUuCisrCisrCSogaTM4Ni1uYXQuaCAoaTM4Nl94c3RhdGVfdHlw ZSk6IFJlbmFtZSBzaXplIHRvIG5fb2ZfaW50NjQuCisrCSogaTM4Ni1uYXQuYyAoaTM4Nl94c3Rh dGUpOiBVcGRhdGVkLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfZmV0Y2hfaW5mZXJp b3JfcmVnaXN0ZXJzKToKKysJVXNlIFBUUkFDRV9HRVRYU1RBVEVSRUdTL1BUUkFDRV9TRVRYU1RB VEVSRUdTIGlmIHBvc3NzaWJsZS4KKysJKGFtZDY0X2xpbnV4X3N0b3JlX2luZmVyaW9yX3JlZ2lz dGVycyk6IExpa2V3aXNlLgorKwkoX2luaXRpYWxpemVfYW1kNjRfbGludXhfbmF0KTogQ2FsbCBp Mzg2X3hzdGF0ZV9pbml0LgorKworKwkqIGkzODYtbmF0LmMgKGkzODZfeHN0YXRlKTogTmV3Lgor KwkoaTM4Nl94c3RhdGVfaW5pdCk6IExpa2V3aXNlLgorKworKwkqIGkzODYtbmF0LmggKGkzODZf eHN0YXRlX3R5cGUpOiBOZXcuCisrCShpMzg2X3hzdGF0ZSk6IExpa2V3aXNlLgorKwkoaTM4Nl94 c3RhdGVfaW5pdCk6IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYzogUmV2ZXJ0IHRoZSBjaGFu Z2UgY2hhbmdlLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBjb25maWd1cmUuYWM6IEFkZCBjaGVjayBmb3IgX19nZXRfeHN0YXRlX3NpemUu CisrCSogY29uZmlnLmluOiBSZWdlbmVyYXRlZC4KKysJKiBjb25maWd1cmU6IExpa2V3aXNlLgor KworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBh bWQ2NC1saW51eC1uYXQuYzogSW5jbHVkZSA8c3lzL3hzdGF0ZS5oPiBpZiBIQVZFX1NZU19YU1RB VEVfSAorKwlpcyBkZWZpbmVkLgorKwkoaGF2ZV9wdHJhY2VfZ2V0eHN0YXRlcmVncyk6IE5ldy4K KysJKF9pbml0aWFsaXplX2FtZDY0X2xpbnV4X25hdCk6IENsZWFyIGhhdmVfcHRyYWNlX2dldHhz dGF0ZXJlZ3MKKysJaWYgbmVlZGVkLgorKworKwkqIGdyZWdzZXQuaCAoR0RCX1hTVEFURV9TU0Vf UkVHU0VUX1QpOiBOZXcuCisrCShHREJfWFNUQVRFX0FWWF9SRUdTRVRfVCk6IExpa2V3aXNlLgor KwkoZ2RiX3hzdGF0ZV9zc2VfcmVnc2V0X3QpOiBMaWtld2lzZS4KKysJKGdkYl94c3RhdGVfYXZ4 X3JlZ3NldF90KTogTGlrZXdpc2UuCisrCShzdXBwbHlfeHN0YXRlX3NzZV9yZWdzZXQpOiBMaWtl d2lzZS4KKysJKHN1cHBseV94c3RhdGVfYXZ4X3JlZ3NldCk6IExpa2V3aXNlLgorKwkoZmlsbF94 c3RhdGVfc3NlX3JlZ3NldCk6IExpa2V3aXNlLgorKwkoZmlsbF94c3RhdGVfYXZ4X3JlZ3NldCk6 IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBjb25maWd1cmUuYWM6IEFkZCBjaGVjayBmb3Igc3lzL3hzdGF0ZS5oLCBfX2dl dF94c3RhdGUgYW5kCisrCVBUUkFDRV9HRVRYU1RBVEVSRUdTLgorKwkqIGNvbmZpZy5pbjogUmVn ZW5lcmF0ZWQuCisrCSogY29uZmlndXJlOiBMaWtld2lzZS4KKy0tLSAuL2dkYi9hbWQ2NC1saW51 eC1uYXQuYwkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2Ft ZDY0LWxpbnV4LW5hdC5jCTIwMTAtMDQtMDMgMjE6MTU6MDguMDAwMDAwMDAwICswMjAwCitAQCAt MjMsMTEgKzIzLDE0IEBACisgI2luY2x1ZGUgImluZmVyaW9yLmgiCisgI2luY2x1ZGUgImdkYmNv cmUuaCIKKyAjaW5jbHVkZSAicmVnY2FjaGUuaCIKKysjaW5jbHVkZSAicmVnc2V0LmgiCisgI2lu Y2x1ZGUgImxpbnV4LW5hdC5oIgorICNpbmNsdWRlICJhbWQ2NC1saW51eC10ZGVwLmgiCisgCisg I2luY2x1ZGUgImdkYl9hc3NlcnQuaCIKKyAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgorKyNpbmNs dWRlICJlbGYvY29tbW9uLmgiCisrI2luY2x1ZGUgPHN5cy91aW8uaD4KKyAjaW5jbHVkZSA8c3lz L3B0cmFjZS5oPgorICNpbmNsdWRlIDxzeXMvZGVidWdyZWcuaD4KKyAjaW5jbHVkZSA8c3lzL3N5 c2NhbGwuaD4KK0BAIC01NCw2ICs1NywxOCBAQAorICNpbmNsdWRlICJpMzg3LXRkZXAuaCIKKyAj aW5jbHVkZSAiZWxmLWJmZC5oIgorICNpbmNsdWRlICJnZGJfcHJvY2ZzMzIuaCIKKysjaW5jbHVk ZSAiaTM4Ni14c3RhdGUuaCIKKysKKysjaWZuZGVmIFBUUkFDRV9HRVRSRUdTRVQKKysjZGVmaW5l IFBUUkFDRV9HRVRSRUdTRVQJMHg0MjA0CisrI2VuZGlmCisrCisrI2lmbmRlZiBQVFJBQ0VfU0VU UkVHU0VUCisrI2RlZmluZSBQVFJBQ0VfU0VUUkVHU0VUCTB4NDIwNQorKyNlbmRpZgorKworKy8q IERvZXMgdGhlIGN1cnJlbnQgaG9zdCBzdXBwb3J0IFBUUkFDRV9HRVRSRUdTRVQ/ICAqLworK3N0 YXRpYyBpbnQgaGF2ZV9wdHJhY2VfZ2V0cmVnc2V0ID0gLTE7CisgCisgLyogTWFwcGluZyBiZXR3 ZWVuIHRoZSBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0ZXJzIGluIEdOVS9MaW51eCB4ODYtNjQKKyAg ICBgc3RydWN0IHVzZXInIGZvcm1hdCBhbmQgR0RCJ3MgcmVnaXN0ZXIgY2FjaGUgbGF5b3V0LiAg Ki8KK0BAIC03Niw2ICs5MSw4IEBAIHN0YXRpYyBpbnQgYW1kNjRfbGludXhfZ3JlZ3NldDY0X3Jl Z19vZmYKKyAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgIC0xLCAtMSwgLTEs IC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwg LTEsCisrICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisrICAtMSwgLTEsIC0xLCAt MSwgLTEsIC0xLCAtMSwgLTEsCisgICBPUklHX1JBWCAqIDgKKyB9OworIAwKK0BAIC0xMzEsNiAr MTQ4LDcgQEAgc3RhdGljIGludCBhbWQ2NF9saW51eF9ncmVnc2V0MzJfcmVnX29mZgorICAgLTEs IC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwg LTEsIC0xLAorICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKysgIC0xLCAt MSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgIE9SSUdfUkFYICogOAkJCS8qICJvcmlnX2Vh eCIgKi8KKyB9OworIAwKK0BAIC0zMTIsMTAgKzMzMCwyNiBAQCBhbWQ2NF9saW51eF9mZXRjaF9p bmZlcmlvcl9yZWdpc3RlcnMgKHN0CisgICAgIHsKKyAgICAgICBlbGZfZnByZWdzZXRfdCBmcHJl Z3M7CisgCistICAgICAgaWYgKHB0cmFjZSAoUFRSQUNFX0dFVEZQUkVHUywgdGlkLCAwLCAobG9u ZykgJmZwcmVncykgPCAwKQorLQlwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCBnZXQgZmxv YXRpbmcgcG9pbnQgc3RhdHVzIikpOworKyAgICAgIGlmIChoYXZlX3B0cmFjZV9nZXRyZWdzZXQp CisrCXsKKysJICBjaGFyIHhzdGF0ZXJlZ3NbSTM4Nl9YU1RBVEVfTUFYX1NJWkVdOworKwkgIHN0 cnVjdCBpb3ZlYyBpb3Y7CisrCisrCSAgaW92Lmlvdl9iYXNlID0geHN0YXRlcmVnczsKKysJICBp b3YuaW92X2xlbiA9IHNpemVvZiAoeHN0YXRlcmVncyk7CisrCSAgaWYgKHB0cmFjZSAoUFRSQUNF X0dFVFJFR1NFVCwgdGlkLAorKwkJICAgICAgKHVuc2lnbmVkIGludCkgTlRfWDg2X1hTVEFURSwg KGxvbmcpICZpb3YpIDwgMCkKKysJICAgIHBlcnJvcl93aXRoX25hbWUgKF8oIkNvdWxkbid0IGdl dCBleHRlbmRlZCBzdGF0ZSBzdGF0dXMiKSk7CisgCistICAgICAgYW1kNjRfc3VwcGx5X2Z4c2F2 ZSAocmVnY2FjaGUsIC0xLCAmZnByZWdzKTsKKysJICBhbWQ2NF9zdXBwbHlfeHNhdmUgKHJlZ2Nh Y2hlLCAtMSwgeHN0YXRlcmVncyk7CisrCX0KKysgICAgICBlbHNlCisrCXsKKysJICBpZiAocHRy YWNlIChQVFJBQ0VfR0VURlBSRUdTLCB0aWQsIDAsIChsb25nKSAmZnByZWdzKSA8IDApCisrCSAg ICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCBnZXQgZmxvYXRpbmcgcG9pbnQgc3RhdHVz IikpOworKworKwkgIGFtZDY0X3N1cHBseV9meHNhdmUgKHJlZ2NhY2hlLCAtMSwgJmZwcmVncyk7 CisrCX0KKyAgICAgfQorIH0KKyAKK0BAIC0zNTUsMTUgKzM4OSwzMyBAQCBhbWQ2NF9saW51eF9z dG9yZV9pbmZlcmlvcl9yZWdpc3RlcnMgKHN0CisgICAgIHsKKyAgICAgICBlbGZfZnByZWdzZXRf dCBmcHJlZ3M7CisgCistICAgICAgaWYgKHB0cmFjZSAoUFRSQUNFX0dFVEZQUkVHUywgdGlkLCAw LCAobG9uZykgJmZwcmVncykgPCAwKQorLQlwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCBn ZXQgZmxvYXRpbmcgcG9pbnQgc3RhdHVzIikpOworKyAgICAgIGlmIChoYXZlX3B0cmFjZV9nZXRy ZWdzZXQpCisrCXsKKysJICBjaGFyIHhzdGF0ZXJlZ3NbSTM4Nl9YU1RBVEVfTUFYX1NJWkVdOwor KwkgIHN0cnVjdCBpb3ZlYyBpb3Y7CisgCistICAgICAgYW1kNjRfY29sbGVjdF9meHNhdmUgKHJl Z2NhY2hlLCByZWdudW0sICZmcHJlZ3MpOworKwkgIGlvdi5pb3ZfYmFzZSA9IHhzdGF0ZXJlZ3M7 CisrCSAgaW92Lmlvdl9sZW4gPSBzaXplb2YgKHhzdGF0ZXJlZ3MpOworKwkgIGlmIChwdHJhY2Ug KFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwKKysJCSAgICAgICh1bnNpZ25lZCBpbnQpIE5UX1g4Nl9Y U1RBVEUsIChsb25nKSAmaW92KSA8IDApCisrCSAgICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3Vs ZG4ndCBnZXQgZXh0ZW5kZWQgc3RhdGUgc3RhdHVzIikpOworKworKwkgIGFtZDY0X2NvbGxlY3Rf eHNhdmUgKHJlZ2NhY2hlLCByZWdudW0sIHhzdGF0ZXJlZ3MsIDApOworKworKwkgIGlmIChwdHJh Y2UgKFBUUkFDRV9TRVRSRUdTRVQsIHRpZCwKKysJCSAgICAgICh1bnNpZ25lZCBpbnQpIE5UX1g4 Nl9YU1RBVEUsIChsb25nKSAmaW92KSA8IDApCisrCSAgICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJD b3VsZG4ndCB3cml0ZSBleHRlbmRlZCBzdGF0ZSBzdGF0dXMiKSk7CisrCX0KKysgICAgICBlbHNl CisrCXsKKysJICBpZiAocHRyYWNlIChQVFJBQ0VfR0VURlBSRUdTLCB0aWQsIDAsIChsb25nKSAm ZnByZWdzKSA8IDApCisrCSAgICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCBnZXQgZmxv YXRpbmcgcG9pbnQgc3RhdHVzIikpOworIAorLSAgICAgIGlmIChwdHJhY2UgKFBUUkFDRV9TRVRG UFJFR1MsIHRpZCwgMCwgKGxvbmcpICZmcHJlZ3MpIDwgMCkKKy0JcGVycm9yX3dpdGhfbmFtZSAo XygiQ291bGRuJ3Qgd3JpdGUgZmxvYXRpbmcgcG9pbnQgc3RhdHVzIikpOworKwkgIGFtZDY0X2Nv bGxlY3RfZnhzYXZlIChyZWdjYWNoZSwgcmVnbnVtLCAmZnByZWdzKTsKKyAKKy0gICAgICByZXR1 cm47CisrCSAgaWYgKHB0cmFjZSAoUFRSQUNFX1NFVEZQUkVHUywgdGlkLCAwLCAobG9uZykgJmZw cmVncykgPCAwKQorKwkgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRuJ3Qgd3JpdGUgZmxv YXRpbmcgcG9pbnQgc3RhdHVzIikpOworKwl9CisgICAgIH0KKyB9CisgDAorQEAgLTgzMSw2ICs4 ODMsOCBAQCBhbWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uIChzdHJ1Y3QgdGFyCisgeworICAg dW5zaWduZWQgbG9uZyBjczsKKyAgIGludCB0aWQ7CisrICBpbnQgaXNfNjRiaXQ7CisrICBzdGF0 aWMgdWludDY0X3QgeGNyMDsKKyAKKyAgIC8qIEdOVS9MaW51eCBMV1AgSUQncyBhcmUgcHJvY2Vz cyBJRCdzLiAgKi8KKyAgIHRpZCA9IFRJREdFVCAoaW5mZXJpb3JfcHRpZCk7CitAQCAtODQ0LDEw ICs4OTgsNTUgQEAgYW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbiAoc3RydWN0IHRhcgorICAg aWYgKGVycm5vICE9IDApCisgICAgIHBlcnJvcl93aXRoX25hbWUgKF8oIkNvdWxkbid0IGdldCBD UyByZWdpc3RlciIpKTsKKyAKKy0gIGlmIChjcyA9PSBBTUQ2NF9MSU5VWF9VU0VSNjRfQ1MpCist ICAgIHJldHVybiB0ZGVzY19hbWQ2NF9saW51eDsKKysgIGlzXzY0Yml0ID0gY3MgPT0gQU1ENjRf TElOVVhfVVNFUjY0X0NTOworKworKyAgaWYgKGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9PSAtMSkK KysgICAgeworKyAgICAgIHVpbnQ2NF90IHhzdGF0ZXJlZ3NbKEkzODZfWFNUQVRFX1NTRV9TSVpF IC8gc2l6ZW9mICh1aW50NjRfdCkpXTsKKysgICAgICBzdHJ1Y3QgaW92ZWMgaW92OworKyAgICAg IHVuc2lnbmVkIGludCB4c3RhdGVfc2l6ZTsKKysKKysgICAgICBpb3YuaW92X2Jhc2UgPSB4c3Rh dGVyZWdzOworKyAgICAgIGlvdi5pb3ZfbGVuID0gc2l6ZW9mICh4c3RhdGVyZWdzKTsKKysKKysg ICAgICAvKiBDaGVjayBpZiBQVFJBQ0VfR0VUUkVHU0VUIHdvcmtzLiAgKi8KKysgICAgICBpZiAo cHRyYWNlIChQVFJBQ0VfR0VUUkVHU0VULCB0aWQsCisrCQkgICh1bnNpZ25lZCBpbnQpIE5UX1g4 Nl9YU1RBVEUsIChsb25nKSAmaW92KSA8IDApCisrCXsKKysJICBoYXZlX3B0cmFjZV9nZXRyZWdz ZXQgPSAwOworKwkgIHhzdGF0ZV9zaXplID0gMDsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkg IGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9IDE7CisrCisrCSAgLyogR2V0IFhDUjAgZnJvbSBYU0FW RSBleHRlbmRlZCBzdGF0ZS4gICovCisrCSAgeGNyMCA9IHhzdGF0ZXJlZ3NbKEkzODZfTElOVVhf WFNBVkVfWENSMF9PRkZTRVQKKysJCQkgICAgIC8gc2l6ZW9mICh1aW50NjRfdCkpXTsKKysKKysJ ICB4c3RhdGVfc2l6ZSA9IEkzODZfWFNUQVRFX1NJWkUgKHhjcjApOworKwl9CisrCisrICAgICAg aTM4Nl9saW51eF91cGRhdGVfeHN0YXRlcmVnc2V0ICh4c3RhdGVfc2l6ZSk7CisrICAgICAgYW1k NjRfbGludXhfdXBkYXRlX3hzdGF0ZXJlZ3NldCAoeHN0YXRlX3NpemUpOworKyAgICB9CisrCisr ICAvKiBDaGVjayB0aGUgbmF0aXZlIFhDUjAgb25seSBpZiBQVFJBQ0VfR0VUUkVHU0VUIGlzIGF2 YWlsYWJsZS4gICovCisrICBpZiAoaGF2ZV9wdHJhY2VfZ2V0cmVnc2V0CisrICAgICAgJiYgKHhj cjAgJiBJMzg2X1hTVEFURV9BVlhfTUFTSykgPT0gSTM4Nl9YU1RBVEVfQVZYX01BU0spCisrICAg IHsKKysgICAgICBpZiAoaXNfNjRiaXQpCisrCXJldHVybiB0ZGVzY19hbWQ2NF9hdnhfbGludXg7 CisrICAgICAgZWxzZQorKwlyZXR1cm4gdGRlc2NfaTM4Nl9hdnhfbGludXg7CisrICAgIH0KKyAg IGVsc2UKKy0gICAgcmV0dXJuIHRkZXNjX2kzODZfbGludXg7CisrICAgIHsKKysgICAgICBpZiAo aXNfNjRiaXQpCisrCXJldHVybiB0ZGVzY19hbWQ2NF9saW51eDsKKysgICAgICBlbHNlCisrCXJl dHVybiB0ZGVzY19pMzg2X2xpbnV4OworKyAgICB9CisgfQorIAorIC8qIFByb3ZpZGUgYSBwcm90 b3R5cGUgdG8gc2lsZW5jZSAtV21pc3NpbmctcHJvdG90eXBlcy4gICovCistLS0gLi9nZGIvYW1k NjQtbGludXgtdGRlcC5jCTIwMTAtMDQtMDMgMjA6NTk6NTIuMDAwMDAwMDAwICswMjAwCisrKysg Li9nZGIvYW1kNjQtbGludXgtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICsw MjAwCitAQCAtMjgsOCArMjgsMTEgQEAKKyAjaW5jbHVkZSAic3ltdGFiLmgiCisgI2luY2x1ZGUg ImdkYnR5cGVzLmgiCisgI2luY2x1ZGUgInJlZ2dyb3Vwcy5oIgorKyNpbmNsdWRlICJyZWdzZXQu aCIKKyAjaW5jbHVkZSAiYW1kNjQtbGludXgtdGRlcC5oIgorKyNpbmNsdWRlICJpMzg2LWxpbnV4 LXRkZXAuaCIKKyAjaW5jbHVkZSAibGludXgtdGRlcC5oIgorKyNpbmNsdWRlICJpMzg2LXhzdGF0 ZS5oIgorIAorICNpbmNsdWRlICJnZGJfc3RyaW5nLmgiCisgCitAQCAtMzgsNiArNDEsNyBAQAor ICNpbmNsdWRlICJ4bWwtc3lzY2FsbC5oIgorIAorICNpbmNsdWRlICJmZWF0dXJlcy9pMzg2L2Ft ZDY0LWxpbnV4LmMiCisrI2luY2x1ZGUgImZlYXR1cmVzL2kzODYvYW1kNjQtYXZ4LWxpbnV4LmMi CisgCisgLyogVGhlIHN5c2NhbGwncyBYTUwgZmlsZW5hbWUgZm9yIGkzODYuICAqLworICNkZWZp bmUgWE1MX1NZU0NBTExfRklMRU5BTUVfQU1ENjQgInN5c2NhbGxzL2FtZDY0LWxpbnV4LnhtbCIK K0BAIC00NSw2ICs0OSwxNSBAQAorICNpbmNsdWRlICJyZWNvcmQuaCIKKyAjaW5jbHVkZSAibGlu dXgtcmVjb3JkLmgiCisgCisrLyogU3VwcG9ydGVkIHJlZ2lzdGVyIG5vdGUgc2VjdGlvbnMuICAq LworK3N0YXRpYyBzdHJ1Y3QgY29yZV9yZWdzZXRfc2VjdGlvbiBhbWQ2NF9saW51eF9yZWdzZXRf c2VjdGlvbnNbXSA9CisreworKyAgeyAiLnJlZyIsIDE0NCwgImdlbmVyYWwtcHVycG9zZSIgfSwK KysgIHsgIi5yZWcyIiwgNTEyLCAiZmxvYXRpbmctcG9pbnQiIH0sCisrICB7ICIucmVnLXhzdGF0 ZSIsIDAsICJYU0FWRSBleHRlbmRlZCBzdGF0ZSIgfSwKKysgIHsgTlVMTCwgMCB9CisrfTsKKysK KyAvKiBNYXBwaW5nIGJldHdlZW4gdGhlIGdlbmVyYWwtcHVycG9zZSByZWdpc3RlcnMgaW4gYHN0 cnVjdCB1c2VyJworICAgIGZvcm1hdCBhbmQgR0RCJ3MgcmVnaXN0ZXIgY2FjaGUgbGF5b3V0LiAg Ki8KKyAKK0BAIC0xMzE2LDYgKzEzMjksMjIgQEAgYW1kNjRfbGludXhfcmVjb3JkX3NpZ25hbCAo c3RydWN0IGdkYmFyYworICAgcmV0dXJuIDA7CisgfQorIAorKy8qIFVwZGF0ZSBYU0FWRSBleHRl bmRlZCBzdGF0ZSByZWdpc3RlciBub3RlIHNlY3Rpb24uICAqLworKworK3ZvaWQKKythbWQ2NF9s aW51eF91cGRhdGVfeHN0YXRlcmVnc2V0ICh1bnNpZ25lZCBpbnQgeHN0YXRlX3NpemUpCisrewor KyAgc3RydWN0IGNvcmVfcmVnc2V0X3NlY3Rpb24gKnhzdGF0ZSA9ICZhbWQ2NF9saW51eF9yZWdz ZXRfc2VjdGlvbnNbMl07CisrCisrICAvKiBVcGRhdGUgdGhlIFhTQVZFIGV4dGVuZGVkIHN0YXRl IHJlZ2lzdGVyIG5vdGUgc2VjdGlvbiBmb3IgImdjb3JlIi4KKysgICAgIERpc2FibGUgaXQgaWYg aXRzIHNpemUgaXMgMC4gICovCisrICBnZGJfYXNzZXJ0IChzdHJjbXAgKHhzdGF0ZS0+c2VjdF9u YW1lLCAiLnJlZy14c3RhdGUiKSA9PSAwKTsKKysgIGlmICh4c3RhdGVfc2l6ZSkKKysgICAgeHN0 YXRlLT5zaXplID0geHN0YXRlX3NpemU7CisrICBlbHNlCisrICAgIHhzdGF0ZS0+c2VjdF9uYW1l ID0gTlVMTDsKKyt9CisrCisgLyogR2V0IExpbnV4L3g4NiB0YXJnZXQgZGVzY3JpcHRpb24gZnJv bSBjb3JlIGR1bXAuICAqLworIAorIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKgor QEAgLTEzMjQsMTIgKzEzNTMsMTcgQEAgYW1kNjRfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9u IChzdHJ1YworIAkJCQkgIGJmZCAqYWJmZCkKKyB7CisgICBhc2VjdGlvbiAqc2VjdGlvbiA9IGJm ZF9nZXRfc2VjdGlvbl9ieV9uYW1lIChhYmZkLCAiLnJlZzIiKTsKKysgIHVpbnQ2NF90IHhjcjA7 CisgCisgICBpZiAoc2VjdGlvbiA9PSBOVUxMKQorICAgICByZXR1cm4gTlVMTDsKKyAKKyAgIC8q IExpbnV4L3g4Ni02NC4gICovCistICByZXR1cm4gdGRlc2NfYW1kNjRfbGludXg7CisrICB4Y3Iw ID0gaTM4Nl9saW51eF9jb3JlX3JlYWRfeGNyMCAoZ2RiYXJjaCwgdGFyZ2V0LCBhYmZkKTsKKysg IGlmICgoeGNyMCAmIEkzODZfWFNUQVRFX0FWWF9NQVNLKSA9PSBJMzg2X1hTVEFURV9BVlhfTUFT SykKKysgICAgcmV0dXJuIHRkZXNjX2FtZDY0X2F2eF9saW51eDsKKysgIGVsc2UKKysgICAgcmV0 dXJuIHRkZXNjX2FtZDY0X2xpbnV4OworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTEzNzMsNiAr MTQwNyw4IEBAIGFtZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmYKKyAKKyAg IHRkZXAtPm91dGVybW9zdF9mcmFtZV9wID0gYW1kNjRfbGludXhfb3V0ZXJtb3N0X2ZyYW1lOwor IAorKyAgdGRlcC0+eHNhdmVfeGNyMF9vZmZzZXQgPSBJMzg2X0xJTlVYX1hTQVZFX1hDUjBfT0ZG U0VUOworKworICAgLyogR05VL0xpbnV4IHVzZXMgU1ZSNC1zdHlsZSBzaGFyZWQgbGlicmFyaWVz LiAgKi8KKyAgIHNldF9zb2xpYl9zdnI0X2ZldGNoX2xpbmtfbWFwX29mZnNldHMKKyAgICAgKGdk YmFyY2gsIHN2cjRfbHA2NF9mZXRjaF9saW5rX21hcF9vZmZzZXRzKTsKK0BAIC0xMzk0LDYgKzE0 MzAsOSBAQCBhbWQ2NF9saW51eF9pbml0X2FiaSAoc3RydWN0IGdkYmFyY2hfaW5mCisgICAvKiBH TlUvTGludXggdXNlcyBTVlI0LXN0eWxlIHNoYXJlZCBsaWJyYXJpZXMuICAqLworICAgc2V0X2dk YmFyY2hfc2tpcF90cmFtcG9saW5lX2NvZGUgKGdkYmFyY2gsIGZpbmRfc29saWJfdHJhbXBvbGlu ZV90YXJnZXQpOworIAorKyAgLyogSW5zdGFsbCBzdXBwb3J0ZWQgcmVnaXN0ZXIgbm90ZSBzZWN0 aW9ucy4gICovCisrICBzZXRfZ2RiYXJjaF9jb3JlX3JlZ3NldF9zZWN0aW9ucyAoZ2RiYXJjaCwg YW1kNjRfbGludXhfcmVnc2V0X3NlY3Rpb25zKTsKKysKKyAgIHNldF9nZGJhcmNoX2NvcmVfcmVh ZF9kZXNjcmlwdGlvbiAoZ2RiYXJjaCwKKyAJCQkJICAgICBhbWQ2NF9saW51eF9jb3JlX3JlYWRf ZGVzY3JpcHRpb24pOworIAorQEAgLTE1OTYsNCArMTYzNSw1IEBAIF9pbml0aWFsaXplX2FtZDY0 X2xpbnV4X3RkZXAgKHZvaWQpCisgCisgICAvKiBJbml0aWFsaXplIHRoZSBMaW51eCB0YXJnZXQg ZGVzY3JpcHRpb24gICovCisgICBpbml0aWFsaXplX3RkZXNjX2FtZDY0X2xpbnV4ICgpOworKyAg aW5pdGlhbGl6ZV90ZGVzY19hbWQ2NF9hdnhfbGludXggKCk7CisgfQorLS0tIC4vZ2RiL2FtZDY0 LWxpbnV4LXRkZXAuaAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIC4v Z2RiL2FtZDY0LWxpbnV4LXRkZXAuaAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIw MAorQEAgLTI2LDEzICsyNiwxNyBAQAorIC8qIFJlZ2lzdGVyIG51bWJlciBmb3IgdGhlICJvcmln X3JheCIgcmVnaXN0ZXIuICBJZiB0aGlzIHJlZ2lzdGVyCisgICAgY29udGFpbnMgYSB2YWx1ZSA+ PSAwIGl0IGlzIGludGVycHJldGVkIGFzIHRoZSBzeXN0ZW0gY2FsbCBudW1iZXIKKyAgICB0aGF0 IHRoZSBrZXJuZWwgaXMgc3VwcG9zZWQgdG8gcmVzdGFydC4gICovCistI2RlZmluZSBBTUQ2NF9M SU5VWF9PUklHX1JBWF9SRUdOVU0gKEFNRDY0X01YQ1NSX1JFR05VTSArIDEpCisrI2RlZmluZSBB TUQ2NF9MSU5VWF9PUklHX1JBWF9SRUdOVU0gKEFNRDY0X1lNTTE1SF9SRUdOVU0gKyAxKQorIAor IC8qIFRvdGFsIG51bWJlciBvZiByZWdpc3RlcnMgZm9yIEdOVS9MaW51eC4gICovCisgI2RlZmlu ZSBBTUQ2NF9MSU5VWF9OVU1fUkVHUyAoQU1ENjRfTElOVVhfT1JJR19SQVhfUkVHTlVNICsgMSkK KyAKKyAvKiBMaW51eCB0YXJnZXQgZGVzY3JpcHRpb24uICAqLworIGV4dGVybiBzdHJ1Y3QgdGFy Z2V0X2Rlc2MgKnRkZXNjX2FtZDY0X2xpbnV4OworK2V4dGVybiBzdHJ1Y3QgdGFyZ2V0X2Rlc2Mg KnRkZXNjX2FtZDY0X2F2eF9saW51eDsKKysKKysvKiBVcGRhdGUgWFNBVkUgZXh0ZW5kZWQgc3Rh dGUgcmVnaXN0ZXIgbm90ZSBzZWN0aW9uLiAgKi8KKytleHRlcm4gdm9pZCBhbWQ2NF9saW51eF91 cGRhdGVfeHN0YXRlcmVnc2V0ICh1bnNpZ25lZCBpbnQgeHN0YXRlX3NpemUpOworIAorIC8qIEVu dW0gdGhhdCBkZWZpbmVzIHRoZSBzeXNjYWxsIGlkZW50aWZpZXJzIGZvciBhbWQ2NCBsaW51eC4K KyAgICBVc2VkIGZvciBwcm9jZXNzIHJlY29yZC9yZXBsYXksIHRoZXNlIHdpbGwgYmUgdHJhbnNs YXRlZCBpbnRvCistLS0gLi9nZGIvYW1kNjQtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MTE6NDEuMDAw MDAwMDAwICswMjAwCisrKysgLi9nZGIvYW1kNjQtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MTI6MzIu MDAwMDAwMDAwICswMjAwCitAQCAtNDMsNiArNDMsNyBAQAorICNpbmNsdWRlICJpMzg3LXRkZXAu aCIKKyAKKyAjaW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9hbWQ2NC5jIgorKyNpbmNsdWRlICJmZWF0 dXJlcy9pMzg2L2FtZDY0LWF2eC5jIgorIAorIC8qIE5vdGUgdGhhdCB0aGUgQU1ENjQgYXJjaGl0 ZWN0dXJlIHdhcyBwcmV2aW91c2x5IGtub3duIGFzIHg4Ni02NC4KKyAgICBUaGUgbGF0dGVyIGlz IChmb3JldmVyKSBlbmdyYXZlZCBpbnRvIHRoZSBjYW5vbmljYWwgc3lzdGVtIG5hbWUgYXMKK0BA IC03MSw4ICs3MiwyMSBAQCBzdGF0aWMgY29uc3QgY2hhciAqYW1kNjRfcmVnaXN0ZXJfbmFtZXNb CisgICAibXhjc3IiLAorIH07CisgCistLyogVG90YWwgbnVtYmVyIG9mIHJlZ2lzdGVycy4gICov CistI2RlZmluZSBBTUQ2NF9OVU1fUkVHUwlBUlJBWV9TSVpFIChhbWQ2NF9yZWdpc3Rlcl9uYW1l cykKKytzdGF0aWMgY29uc3QgY2hhciAqYW1kNjRfeW1tX25hbWVzW10gPSAKKyt7CisrICAieW1t MCIsICJ5bW0xIiwgInltbTIiLCAieW1tMyIsCisrICAieW1tNCIsICJ5bW01IiwgInltbTYiLCAi eW1tNyIsCisrICAieW1tOCIsICJ5bW05IiwgInltbTEwIiwgInltbTExIiwKKysgICJ5bW0xMiIs ICJ5bW0xMyIsICJ5bW0xNCIsICJ5bW0xNSIKKyt9OworKworK3N0YXRpYyBjb25zdCBjaGFyICph bWQ2NF95bW1oX25hbWVzW10gPSAKKyt7CisrICAieW1tMGgiLCAieW1tMWgiLCAieW1tMmgiLCAi eW1tM2giLAorKyAgInltbTRoIiwgInltbTVoIiwgInltbTZoIiwgInltbTdoIiwKKysgICJ5bW04 aCIsICJ5bW05aCIsICJ5bW0xMGgiLCAieW1tMTFoIiwKKysgICJ5bW0xMmgiLCAieW1tMTNoIiwg InltbTE0aCIsICJ5bW0xNWgiCisrfTsKKyAKKyAvKiBUaGUgcmVnaXN0ZXJzIHVzZWQgdG8gcGFz cyBpbnRlZ2VyIGFyZ3VtZW50cyBkdXJpbmcgYSBmdW5jdGlvbiBjYWxsLiAgKi8KKyBzdGF0aWMg aW50IGFtZDY0X2R1bW15X2NhbGxfaW50ZWdlcl9yZWdzW10gPQorQEAgLTE2Myw2ICsxNzcsOCBA QCBzdGF0aWMgY29uc3QgaW50IGFtZDY0X2R3YXJmX3JlZ21hcF9sZW4gCisgc3RhdGljIGludAor IGFtZDY0X2R3YXJmX3JlZ190b19yZWdudW0gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQg cmVnKQorIHsKKysgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdk YmFyY2gpOworKyAgaW50IHltbTBfcmVnbnVtID0gdGRlcC0+eW1tMF9yZWdudW07CisgICBpbnQg cmVnbnVtID0gLTE7CisgCisgICBpZiAocmVnID49IDAgJiYgcmVnIDwgYW1kNjRfZHdhcmZfcmVn bWFwX2xlbikKK0BAIC0xNzAsNiArMTg2LDkgQEAgYW1kNjRfZHdhcmZfcmVnX3RvX3JlZ251bSAo c3RydWN0IGdkYmFyYworIAorICAgaWYgKHJlZ251bSA9PSAtMSkKKyAgICAgd2FybmluZyAoXygi VW5tYXBwZWQgRFdBUkYgUmVnaXN0ZXIgIyVkIGVuY291bnRlcmVkLiIpLCByZWcpOworKyAgZWxz ZSBpZiAoeW1tMF9yZWdudW0gPj0gMAorKwkgICAmJiBpMzg2X3htbV9yZWdudW1fcCAoZ2RiYXJj aCwgcmVnbnVtKSkKKysgICAgcmVnbnVtICs9IHltbTBfcmVnbnVtIC0gSTM4N19YTU0wX1JFR05V TSAodGRlcCk7CisgCisgICByZXR1cm4gcmVnbnVtOworIH0KK0BAIC0yMzgsNiArMjU3LDE5IEBA IHN0YXRpYyBjb25zdCBjaGFyICphbWQ2NF9kd29yZF9uYW1lc1tdID0KKyAgICJyOGQiLCAicjlk IiwgInIxMGQiLCAicjExZCIsICJyMTJkIiwgInIxM2QiLCAicjE0ZCIsICJyMTVkIgorIH07Cisg CisrLyogUmV0dXJuIHRoZSBuYW1lIG9mIHJlZ2lzdGVyIFJFR05VTSwgb3IgdGhlIGVtcHR5IHN0 cmluZyBpZiBpdCBpcworKyAgIGFuIGFub255bW91cyByZWdpc3Rlci4gKi8KKysKKytzdGF0aWMg Y29uc3QgY2hhciAqCisrYW1kNjRfcmVnaXN0ZXJfbmFtZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIGludCByZWdudW0pCisreworKyAgLyogSGlkZSB0aGUgdXBwZXIgWU1NIHJlZ2lzdGVycy4g ICovCisrICBpZiAoaTM4Nl95bW1oX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQorKyAgICBy ZXR1cm4gIiI7CisrCisrICByZXR1cm4gdGRlc2NfcmVnaXN0ZXJfbmFtZSAoZ2RiYXJjaCwgcmVn bnVtKTsKKyt9CisrCisgLyogUmV0dXJuIHRoZSBuYW1lIG9mIHJlZ2lzdGVyIFJFR05VTS4gICov CisgCisgc3RhdGljIGNvbnN0IGNoYXIgKgorQEAgLTI0Niw2ICsyNzgsOCBAQCBhbWQ2NF9wc2V1 ZG9fcmVnaXN0ZXJfbmFtZSAoc3RydWN0IGdkYmFyCisgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0 ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKyAgIGlmIChpMzg2X2J5dGVfcmVnbnVtX3Ag KGdkYmFyY2gsIHJlZ251bSkpCisgICAgIHJldHVybiBhbWQ2NF9ieXRlX25hbWVzW3JlZ251bSAt IHRkZXAtPmFsX3JlZ251bV07CisrICBlbHNlIGlmIChpMzg2X3ltbV9yZWdudW1fcCAoZ2RiYXJj aCwgcmVnbnVtKSkKKysgICAgcmV0dXJuIGFtZDY0X3ltbV9uYW1lc1tyZWdudW0gLSB0ZGVwLT55 bW0wX3JlZ251bV07CisgICBlbHNlIGlmIChpMzg2X3dvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJl Z251bSkpCisgICAgIHJldHVybiBhbWQ2NF93b3JkX25hbWVzW3JlZ251bSAtIHRkZXAtPmF4X3Jl Z251bV07CisgICBlbHNlIGlmIChpMzg2X2R3b3JkX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0p KQorQEAgLTIxODEsNiArMjIxNSwyOCBAQCBhbWQ2NF9jb2xsZWN0X2ZwcmVnc2V0IChjb25zdCBz dHJ1Y3QgcmVnCisgICBhbWQ2NF9jb2xsZWN0X2Z4c2F2ZSAocmVnY2FjaGUsIHJlZ251bSwgZnBy ZWdzKTsKKyB9CisgCisrLyogU2ltaWxhciB0byBhbWQ2NF9zdXBwbHlfZnByZWdzZXQsIGJ1dCB1 c2UgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuICAqLworKworK3N0YXRpYyB2b2lkCisrYW1kNjRfc3Vw cGx5X3hzdGF0ZXJlZ3NldCAoY29uc3Qgc3RydWN0IHJlZ3NldCAqcmVnc2V0LAorKwkJCSAgIHN0 cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCisrCQkJICAgY29uc3Qgdm9pZCAq eHN0YXRlcmVncywgc2l6ZV90IGxlbikKKyt7CisrICBjb25zdCBzdHJ1Y3QgZ2RiYXJjaF90ZGVw ICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChyZWdzZXQtPmFyY2gpOworKyAgYW1kNjRfc3VwcGx5X3hz YXZlIChyZWdjYWNoZSwgcmVnbnVtLCB4c3RhdGVyZWdzKTsKKyt9CisrCisrLyogU2ltaWxhciB0 byBhbWQ2NF9jb2xsZWN0X2ZwcmVnc2V0LCBidXQgdXNlIFhTQVZFIGV4dGVuZGVkIHN0YXRlLiAg Ki8KKysKKytzdGF0aWMgdm9pZAorK2FtZDY0X2NvbGxlY3RfeHN0YXRlcmVnc2V0IChjb25zdCBz dHJ1Y3QgcmVnc2V0ICpyZWdzZXQsCisrCQkJICAgIGNvbnN0IHN0cnVjdCByZWdjYWNoZSAqcmVn Y2FjaGUsCisrCQkJICAgIGludCByZWdudW0sIHZvaWQgKnhzdGF0ZXJlZ3MsIHNpemVfdCBsZW4p CisreworKyAgY29uc3Qgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAo cmVnc2V0LT5hcmNoKTsKKysgIGFtZDY0X2NvbGxlY3RfeHNhdmUgKHJlZ2NhY2hlLCByZWdudW0s IHhzdGF0ZXJlZ3MsIDEpOworK30KKysKKyAvKiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHJlZ2lz dGVyIHNldCBmb3IgdGhlIGNvcmUgc2VjdGlvbiBpZGVudGlmaWVkCisgICAgYnkgU0VDVF9OQU1F IGFuZCBTRUNUX1NJWkUuICAqLworIAorQEAgLTIxOTksNiArMjI1NSwxNiBAQCBhbWQ2NF9yZWdz ZXRfZnJvbV9jb3JlX3NlY3Rpb24gKHN0cnVjdCBnCisgICAgICAgcmV0dXJuIHRkZXAtPmZwcmVn c2V0OworICAgICB9CisgCisrICBpZiAoc3RyY21wIChzZWN0X25hbWUsICIucmVnLXhzdGF0ZSIp ID09IDApCisrICAgIHsKKysgICAgICBpZiAodGRlcC0+eHN0YXRlcmVnc2V0ID09IE5VTEwpCisr CXRkZXAtPnhzdGF0ZXJlZ3NldCA9IHJlZ3NldF9hbGxvYyAoZ2RiYXJjaCwKKysJCQkJCSAgIGFt ZDY0X3N1cHBseV94c3RhdGVyZWdzZXQsCisrCQkJCQkgICBhbWQ2NF9jb2xsZWN0X3hzdGF0ZXJl Z3NldCk7CisrCisrICAgICAgcmV0dXJuIHRkZXAtPnhzdGF0ZXJlZ3NldDsKKysgICAgfQorKwor ICAgcmV0dXJuIGkzODZfcmVnc2V0X2Zyb21fY29yZV9zZWN0aW9uIChnZGJhcmNoLCBzZWN0X25h bWUsIHNlY3Rfc2l6ZSk7CisgfQorIAwKK0BAIC0yMjYxLDYgKzIzMjcsMTMgQEAgYW1kNjRfaW5p dF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbworICAgdGRlcC0+bnVtX2NvcmVfcmVncyA9 IEFNRDY0X05VTV9HUkVHUyArIEkzODdfTlVNX1JFR1M7CisgICB0ZGVwLT5yZWdpc3Rlcl9uYW1l cyA9IGFtZDY0X3JlZ2lzdGVyX25hbWVzOworIAorKyAgaWYgKHRkZXNjX2ZpbmRfZmVhdHVyZSAo dGRlc2MsICJvcmcuZ251LmdkYi5pMzg2LmF2eCIpICE9IE5VTEwpCisrICAgIHsKKysgICAgICB0 ZGVwLT55bW1oX3JlZ2lzdGVyX25hbWVzID0gYW1kNjRfeW1taF9uYW1lczsKKysgICAgICB0ZGVw LT5udW1feW1tX3JlZ3MgPSAxNjsKKysgICAgICB0ZGVwLT55bW0waF9yZWdudW0gPSBBTUQ2NF9Z TU0wSF9SRUdOVU07CisrICAgIH0KKysKKyAgIHRkZXAtPm51bV9ieXRlX3JlZ3MgPSAyMDsKKyAg IHRkZXAtPm51bV93b3JkX3JlZ3MgPSAxNjsKKyAgIHRkZXAtPm51bV9kd29yZF9yZWdzID0gMTY7 CitAQCAtMjI3NCw2ICsyMzQ3LDggQEAgYW1kNjRfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2lu Zm8gaW5mbworIAorICAgc2V0X3RkZXNjX3BzZXVkb19yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCBh bWQ2NF9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk7CisgCisrICBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9u YW1lIChnZGJhcmNoLCBhbWQ2NF9yZWdpc3Rlcl9uYW1lKTsKKysKKyAgIC8qIEFNRDY0IGhhcyBh biBGUFUgYW5kIDE2IFNTRSByZWdpc3RlcnMuICAqLworICAgdGRlcC0+c3QwX3JlZ251bSA9IEFN RDY0X1NUMF9SRUdOVU07CisgICB0ZGVwLT5udW1feG1tX3JlZ3MgPSAxNjsKK0BAIC0yMzU0LDYg KzI0MjksNyBAQCB2b2lkCisgX2luaXRpYWxpemVfYW1kNjRfdGRlcCAodm9pZCkKKyB7CisgICBp bml0aWFsaXplX3RkZXNjX2FtZDY0ICgpOworKyAgaW5pdGlhbGl6ZV90ZGVzY19hbWQ2NF9hdngg KCk7CisgfQorIAwKKyAKK0BAIC0yMzg5LDYgKzI0NjUsMzAgQEAgYW1kNjRfc3VwcGx5X2Z4c2F2 ZSAoc3RydWN0IHJlZ2NhY2hlICpyZQorICAgICB9CisgfQorIAorKy8qIFNpbWlsYXIgdG8gYW1k NjRfc3VwcGx5X2Z4c2F2ZSwgYnV0IHVzZSBYU0FWRSBleHRlbmRlZCBzdGF0ZS4gICovCisrCisr dm9pZAorK2FtZDY0X3N1cHBseV94c2F2ZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50 IHJlZ251bSwKKysJCSAgICBjb25zdCB2b2lkICp4c2F2ZSkKKyt7CisrICBzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCA9IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CisrICBzdHJ1Y3QgZ2Ri YXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKysKKysgIGkzODdfc3Vw cGx5X3hzYXZlIChyZWdjYWNoZSwgcmVnbnVtLCB4c2F2ZSk7CisrCisrICBpZiAoeHNhdmUgJiYg Z2RiYXJjaF9wdHJfYml0IChnZGJhcmNoKSA9PSA2NCkKKysgICAgeworKyAgICAgIGNvbnN0IGdk Yl9ieXRlICpyZWdzID0geHNhdmU7CisrCisrICAgICAgaWYgKHJlZ251bSA9PSAtMSB8fCByZWdu dW0gPT0gSTM4N19GSVNFR19SRUdOVU0gKHRkZXApKQorKwlyZWdjYWNoZV9yYXdfc3VwcGx5IChy ZWdjYWNoZSwgSTM4N19GSVNFR19SRUdOVU0gKHRkZXApLAorKwkJCSAgICAgcmVncyArIDEyKTsK KysgICAgICBpZiAocmVnbnVtID09IC0xIHx8IHJlZ251bSA9PSBJMzg3X0ZPU0VHX1JFR05VTSAo dGRlcCkpCisrCXJlZ2NhY2hlX3Jhd19zdXBwbHkgKHJlZ2NhY2hlLCBJMzg3X0ZPU0VHX1JFR05V TSAodGRlcCksCisrCQkJICAgICByZWdzICsgMjApOworKyAgICB9CisrfQorKworIC8qIEZpbGwg cmVnaXN0ZXIgUkVHTlVNIChpZiBpdCBpcyBhIGZsb2F0aW5nLXBvaW50IG9yIFNTRSByZWdpc3Rl cikgaW4KKyAgICAqRlhTQVZFIHdpdGggdGhlIHZhbHVlIGZyb20gUkVHQ0FDSEUuICBJZiBSRUdO VU0gaXMgLTEsIGRvIHRoaXMgZm9yCisgICAgYWxsIHJlZ2lzdGVycy4gIFRoaXMgZnVuY3Rpb24g ZG9lc24ndCB0b3VjaCBhbnkgb2YgdGhlIHJlc2VydmVkCitAQCAtMjQxMiwzICsyNTEyLDI2IEBA IGFtZDY0X2NvbGxlY3RfZnhzYXZlIChjb25zdCBzdHJ1Y3QgcmVnY2EKKyAJcmVnY2FjaGVfcmF3 X2NvbGxlY3QgKHJlZ2NhY2hlLCBJMzg3X0ZPU0VHX1JFR05VTSAodGRlcCksIHJlZ3MgKyAyMCk7 CisgICAgIH0KKyB9CisrCisrLyogU2ltaWxhciB0byBhbWQ2NF9jb2xsZWN0X2Z4c2F2ZSwgYnV0 IGJ1dCB1c2UgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuICAqLworKworK3ZvaWQKKythbWQ2NF9jb2xs ZWN0X3hzYXZlIChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLAor KwkJICAgICB2b2lkICp4c2F2ZSwgaW50IGdjb3JlKQorK3sKKysgIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKKysgIHN0cnVjdCBnZGJhcmNo X3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKyAgZ2RiX2J5dGUgKnJlZ3Mg PSB4c2F2ZTsKKysKKysgIGkzODdfY29sbGVjdF94c2F2ZSAocmVnY2FjaGUsIHJlZ251bSwgeHNh dmUsIGdjb3JlKTsKKysKKysgIGlmIChnZGJhcmNoX3B0cl9iaXQgKGdkYmFyY2gpID09IDY0KQor KyAgICB7CisrICAgICAgaWYgKHJlZ251bSA9PSAtMSB8fCByZWdudW0gPT0gSTM4N19GSVNFR19S RUdOVU0gKHRkZXApKQorKwlyZWdjYWNoZV9yYXdfY29sbGVjdCAocmVnY2FjaGUsIEkzODdfRklT RUdfUkVHTlVNICh0ZGVwKSwKKysJCQkgICAgICByZWdzICsgMTIpOworKyAgICAgIGlmIChyZWdu dW0gPT0gLTEgfHwgcmVnbnVtID09IEkzODdfRk9TRUdfUkVHTlVNICh0ZGVwKSkKKysJcmVnY2Fj aGVfcmF3X2NvbGxlY3QgKHJlZ2NhY2hlLCBJMzg3X0ZPU0VHX1JFR05VTSAodGRlcCksCisrCQkJ ICAgICAgcmVncyArIDIwKTsKKysgICAgfQorK30KKy0tLSAuL2dkYi9hbWQ2NC10ZGVwLmgJMjAx MC0wMS0yOSAwNjoxOToyMi4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9hbWQ2NC10ZGVwLmgJ MjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC02MSwxMiArNjEsMTYgQEAg ZW51bSBhbWQ2NF9yZWdudW0KKyAgIEFNRDY0X0ZTVEFUX1JFR05VTSA9IEFNRDY0X1NUMF9SRUdO VU0gKyA5LAorICAgQU1ENjRfWE1NMF9SRUdOVU0gPSA0MCwJLyogJXhtbTAgKi8KKyAgIEFNRDY0 X1hNTTFfUkVHTlVNLAkJLyogJXhtbTEgKi8KKy0gIEFNRDY0X01YQ1NSX1JFR05VTSA9IEFNRDY0 X1hNTTBfUkVHTlVNICsgMTYKKysgIEFNRDY0X01YQ1NSX1JFR05VTSA9IEFNRDY0X1hNTTBfUkVH TlVNICsgMTYsCisrICBBTUQ2NF9ZTU0wSF9SRUdOVU0sCQkvKiAleW1tMGggKi8KKysgIEFNRDY0 X1lNTTE1SF9SRUdOVU0gPSBBTUQ2NF9ZTU0wSF9SRUdOVU0gKyAxNQorIH07CisgCisgLyogTnVt YmVyIG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuICAqLworICNkZWZpbmUgQU1ENjRfTlVN X0dSRUdTCQkyNAorIAorKyNkZWZpbmUgQU1ENjRfTlVNX1JFR1MJCShBTUQ2NF9ZTU0xNUhfUkVH TlVNICsgMSkKKysKKyBleHRlcm4gc3RydWN0IGRpc3BsYWNlZF9zdGVwX2Nsb3N1cmUgKmFtZDY0 X2Rpc3BsYWNlZF9zdGVwX2NvcHlfaW5zbgorICAgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBD T1JFX0FERFIgZnJvbSwgQ09SRV9BRERSIHRvLAorICAgIHN0cnVjdCByZWdjYWNoZSAqcmVncyk7 CitAQCAtNzcsMTIgKzgxLDYgQEAgZXh0ZXJuIHZvaWQgYW1kNjRfZGlzcGxhY2VkX3N0ZXBfZml4 dXAgKAorIAorIGV4dGVybiB2b2lkIGFtZDY0X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZv IGluZm8sIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKTsKKyAKKy0vKiBGdW5jdGlvbnMgZnJvbSBh bWQ2NC10ZGVwLmMgd2hpY2ggbWF5IGJlIG5lZWRlZCBvbiBhcmNoaXRlY3R1cmVzCistICAgd2l0 aCBleHRyYSByZWdpc3RlcnMuICAqLworLQorLWV4dGVybiBjb25zdCBjaGFyICphbWQ2NF9yZWdp c3Rlcl9uYW1lIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSk7CistZXh0ZXJu IHN0cnVjdCB0eXBlICphbWQ2NF9yZWdpc3Rlcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwgaW50IHJlZ251bSk7CistCisgLyogRmlsbCByZWdpc3RlciBSRUdOVU0gaW4gUkVHQ0FDSEUg d2l0aCB0aGUgYXBwcm9wcmlhdGUKKyAgICBmbG9hdGluZy1wb2ludCBvciBTU0UgcmVnaXN0ZXIg dmFsdWUgZnJvbSAqRlhTQVZFLiAgSWYgUkVHTlVNIGlzCisgICAgLTEsIGRvIHRoaXMgZm9yIGFs bCByZWdpc3RlcnMuICBUaGlzIGZ1bmN0aW9uIG1hc2tzIG9mZiBhbnkgb2YgdGhlCitAQCAtOTEs NiArODksMTAgQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICphbWQ2NF9yZWdpc3Rlcl90eXBlIAorIGV4 dGVybiB2b2lkIGFtZDY0X3N1cHBseV9meHNhdmUgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUs IGludCByZWdudW0sCisgCQkJCSBjb25zdCB2b2lkICpmeHNhdmUpOworIAorKy8qIFNpbWlsYXIg dG8gYW1kNjRfc3VwcGx5X2Z4c2F2ZSwgYnV0IHVzZSBYU0FWRSBleHRlbmRlZCBzdGF0ZS4gICov CisrZXh0ZXJuIHZvaWQgYW1kNjRfc3VwcGx5X3hzYXZlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLCBpbnQgcmVnbnVtLAorKwkJCQljb25zdCB2b2lkICp4c2F2ZSk7CisrCisgLyogRmlsbCBy ZWdpc3RlciBSRUdOVU0gKGlmIGl0IGlzIGEgZmxvYXRpbmctcG9pbnQgb3IgU1NFIHJlZ2lzdGVy KSBpbgorICAgICpGWFNBVkUgd2l0aCB0aGUgdmFsdWUgZnJvbSBSRUdDQUNIRS4gIElmIFJFR05V TSBpcyAtMSwgZG8gdGhpcyBmb3IKKyAgICBhbGwgcmVnaXN0ZXJzLiAgVGhpcyBmdW5jdGlvbiBk b2Vzbid0IHRvdWNoIGFueSBvZiB0aGUgcmVzZXJ2ZWQKK0BAIC05OSw2ICsxMDEsMTAgQEAgZXh0 ZXJuIHZvaWQgYW1kNjRfc3VwcGx5X2Z4c2F2ZSAoc3RydWN0IAorIGV4dGVybiB2b2lkIGFtZDY0 X2NvbGxlY3RfZnhzYXZlIChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVn bnVtLAorIAkJCQkgIHZvaWQgKmZ4c2F2ZSk7CisgCisrLyogU2ltaWxhciB0byBhbWQ2NF9jb2xs ZWN0X2Z4c2F2ZSwgYnV0IGJ1dCB1c2UgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuICAqLworK2V4dGVy biB2b2lkIGFtZDY0X2NvbGxlY3RfeHNhdmUgKGNvbnN0IHN0cnVjdCByZWdjYWNoZSAqcmVnY2Fj aGUsCisrCQkJCSBpbnQgcmVnbnVtLCB2b2lkICp4c2F2ZSwgaW50IGdjb3JlKTsKKysKKyB2b2lk IGFtZDY0X2NsYXNzaWZ5IChzdHJ1Y3QgdHlwZSAqdHlwZSwgZW51bSBhbWQ2NF9yZWdfY2xhc3Mg Y2xhc3NbMl0pOworIAorIAwKKy0tLSAuL2dkYi9jb21tb24vaTM4Ni14c3RhdGUuaAkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2NvbW1vbi9pMzg2LXhzdGF0 ZS5oCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDQxIEBA CisrLyogQ29tbW9uIGNvZGUgZm9yIGkzODYgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuCisrCisrICAg Q29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAg IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBJMzg2X1hTVEFURV9ICisrI2RlZmluZSBJMzg2 X1hTVEFURV9IIDEKKysKKysvKiBUaGUgZXh0ZW5kZWQgc3RhdGUgZmVhdHVyZSBiaXRzLiAgKi8K KysjZGVmaW5lIEkzODZfWFNUQVRFX1g4NwkJKDFVTEwgPDwgMCkKKysjZGVmaW5lIEkzODZfWFNU QVRFX1NTRQkJKDFVTEwgPDwgMSkKKysjZGVmaW5lIEkzODZfWFNUQVRFX0FWWAkJKDFVTEwgPDwg MikKKysKKysvKiBTdXBwb3J0ZWQgbWFzayBhbmQgc2l6ZSBvZiB0aGUgZXh0ZW5kZWQgc3RhdGUu ICAqLworKyNkZWZpbmUgSTM4Nl9YU1RBVEVfU1NFX01BU0sJKEkzODZfWFNUQVRFX1g4NyB8IEkz ODZfWFNUQVRFX1NTRSkKKysjZGVmaW5lIEkzODZfWFNUQVRFX0FWWF9NQVNLCShJMzg2X1hTVEFU RV9TU0VfTUFTSyB8IEkzODZfWFNUQVRFX0FWWCkKKysKKysjZGVmaW5lIEkzODZfWFNUQVRFX1NT RV9TSVpFCTU3NgorKyNkZWZpbmUgSTM4Nl9YU1RBVEVfQVZYX1NJWkUJODMyCisrI2RlZmluZSBJ Mzg2X1hTVEFURV9NQVhfU0laRQk4MzIKKysKKysvKiBHZXQgSTM4NiBYU0FWRSBleHRlbmRlZCBz dGF0ZSBzaXplLiAgKi8KKysjZGVmaW5lIEkzODZfWFNUQVRFX1NJWkUoWENSMCkJXAorKyAgKCgo WENSMCkgJiBJMzg2X1hTVEFURV9BVlgpICE9IDAgXAorKyAgID8gSTM4Nl9YU1RBVEVfQVZYX1NJ WkUgOiBJMzg2X1hTVEFURV9TU0VfU0laRSkKKysKKysjZW5kaWYgLyogSTM4Nl9YU1RBVEVfSCAq LworLS0tIC4vZ2RiL2NvbmZpZy9kamdwcC9mbmNoYW5nZS5sc3QJMjAxMC0wMi0wMSAyMDoyNzo1 NS4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9jb25maWcvZGpncHAvZm5jaGFuZ2UubHN0CTIw MTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMjI4LDYgKzIyOCwxNCBAQAor IEBWQC9nZGIvZmVhdHVyZXMvcnM2MDAwL3Bvd2VycGMtdnN4NjRsLnhtbCBAVkAvZ2RiL2ZlYXR1 cmVzL3JzNjAwMC9wcGMtdjY0bC54bWwKKyBAVkAvZ2RiL2ZlYXR1cmVzL3JzNjAwMC9wb3dlcnBj LWNlbGwzMmwueG1sIEBWQC9nZGIvZmVhdHVyZXMvcnM2MDAwL3BwYy1jMzJsLnhtbAorIEBWQC9n ZGIvZmVhdHVyZXMvcnM2MDAwL3Bvd2VycGMtY2VsbDY0bC54bWwgQFZAL2dkYi9mZWF0dXJlcy9y czYwMDAvcHBjLWM2NGwueG1sCisrQFZAL2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC1saW51 eC5jIEBWQC9nZGIvZmVhdHVyZXMvaTM4Ni9hNjQtYWwuYworK0BWQC9nZGIvZmVhdHVyZXMvaTM4 Ni9hbWQ2NC1hdnguYyBAVkAvZ2RiL2ZlYXR1cmVzL2kzODYvYTY0LWEuYworK0BWQC9nZGIvZmVh dHVyZXMvaTM4Ni9hbWQ2NC1hdngtbGludXgueG1sIEBWQC9nZGIvZmVhdHVyZXMvaTM4Ni9hNjQt YWwueG1sCisrQFZAL2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC54bWwgQFZAL2dkYi9mZWF0 dXJlcy9pMzg2L2E2NC1hLnhtbAorK0BWQC9nZGIvZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC1saW51 eC5jIEBWQC9mZWF0dXJlcy9pMzg2L2kzMi1hbC5jCisrQFZAL2dkYi9mZWF0dXJlcy9pMzg2L2kz ODYtYXZ4LmMgQFZAL2dkYi9mZWF0dXJlcy9pMzg2L2kzMi1hLmMKKytAVkAvZ2RiL2ZlYXR1cmVz L2kzODYvaTM4Ni1hdngtbGludXgueG1sIEBWQC9nZGIvZmVhdHVyZXMvaTM4Ni9pMzItYWwueG1s CisrQFZAL2dkYi9mZWF0dXJlcy9pMzg2L2kzODYtYXZ4LnhtbCBAVkAvZ2RiL2ZlYXR1cmVzL2kz ODYvaTMyLWEueG1sCisgQFZAL2dkYi9mLWV4cC50YWIuYyBAVkAvZ2RiL2YtZXhwX3RhYi5jCisg QFZAL2dkYi9nZGJzZXJ2ZXIvbGludXgtY3Jpcy1sb3cuYyBAVkAvZ2RiL2dkYnNlcnZlci9seC1j cmlzLmMKKyBAVkAvZ2RiL2dkYnNlcnZlci9saW51eC1jcmlzdjMyLWxvdy5jIEBWQC9nZGIvZ2Ri c2VydmVyL2x4LWNyaXMzMi5jCistLS0gLi9nZGIvZG9jL0NoYW5nZUxvZy54Y3IJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9kb2MvQ2hhbmdlTG9nLnhjcgky MDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzMSBAQAorKzIw MTAtMDMtMjcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIudGV4 aW5mbyAoR2VuZXJhbCBRdWVyeSBQYWNrZXRzKTogUmVwbGFjZSAieDg2PXhtbCIgd2l0aAorKwki eG1sUmVnaXN0ZXJzKyIuCisrCisrMjAxMC0wMy0xMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIGdkYi50ZXhpbmZvIChHZW5lcmFsIFF1ZXJ5IFBhY2tldHMpOiBVcGRh dGVkLgorKwkoaTM4NiBGZWF0dXJlcyk6IExpa2V3aXNlLgorKworKzIwMTAtMDMtMDYgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIudGV4aW5mbyAoaTM4NiBGZWF0 dXJlcyk6IE1ha2Ugb3JnLmdudS5nZGIuaTM4Ni5hdnggb3B0aW9uYWwuCisrCisrMjAxMC0wMy0w NSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGdkYi50ZXhpbmZvIChH ZW5lcmFsIFF1ZXJ5IFBhY2tldHMpOiBSZW1vdmUgeDg2OnhzdGF0ZSBleHRlbnNpb24uCisrCURv Y3VtZW50IHg4Nj14bWwgZXh0ZW5zaW9uIGluIGdkYiByZW1vdGUgcHJvdG9jb2wuCisrCisrMjAx MC0wMi0xMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGdkYi50ZXhp bmZvIChpMzg2IEZlYXR1cmVzKTogQWRkIG9yZy5nbnUuZ2RiLmkzODYuYXZ4LgorKworKzIwMTAt MDItMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIudGV4aW5m bzogUmVtb3ZlIHg4Njp4c3RhdGUgZnJvbSBzdHViIHJlcGx5LgorKworKzIwMTAtMDItMDIgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIudGV4aW5mbzogRG9jdW1l bnQgeDg2OnhzdGF0ZSBleHRlbnNpb24gaW4gZ2RiIHJlbW90ZQorKwlwcm90b2NvbC4KKy0tLSAu L2dkYi9kb2MvQ2hhbmdlTG9nLnhtbAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIC4vZ2RiL2RvYy9DaGFuZ2VMb2cueG1sCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAw MDAwICswMjAwCitAQCAtMCwwICsxLDI4IEBACisrMjAxMC0wMy0zMCAgSC5KLiBMdSAgPGhvbmdq aXUubHVAaW50ZWwuY29tPgorKworKwkqIGdkYi50ZXhpbmZvIChHZW5lcmFsIFF1ZXJ5IFBhY2tl dHMpOiBVcGRhdGVkLgorKworKzIwMTAtMDMtMjkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKysKKysJKiBnZGIudGV4aW5mbyAoR2VuZXJhbCBRdWVyeSBQYWNrZXRzKTogVXBkYXRl ZC4KKysKKysyMDEwLTAzLTI5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogZ2RiLnRleGluZm8gKEdlbmVyYWwgUXVlcnkgUGFja2V0cyk6IFJlbW92ZSBleHRyYSBzdXBw b3J0cy4KKysKKysyMDEwLTAzLTI4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Cisr CisrCSogZ2RiLnRleGluZm8gKEdlbmVyYWwgUXVlcnkgUGFja2V0cyk6IEFkZCB4bWxSZWdpc3Rl cnMuCisrCisrMjAxMC0wMi0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGdkYi50ZXhpbmZvIChQcmVkZWZpbmVkIFRhcmdldCBUeXBlcyk6IEFkZCBpMzg3X2V4dCwK KysJaTM4Nl9lZmxhZ3MgYW5kIGkzODZfbXhjc3IuCisrCisrMjAxMC0wMi0wOCAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGdkYi50ZXhpbmZvOiBVcGRhdGUgaTM4NiB0 YXJnZXQgZmVhdHVyZXMuCisrCisrMjAxMC0wMi0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIGdkYi50ZXhpbmZvOiBEb2N1bWVudCBpMzg2IHRhcmdldCBmZWF0dXJl cy4KKy0tLSAuL2dkYi9mZWF0dXJlcy9NYWtlZmlsZQkyMDEwLTAyLTA4IDA2OjA4OjQ2LjAwMDAw MDAwMCArMDEwMAorKysrIC4vZ2RiL2ZlYXR1cmVzL01ha2VmaWxlCTIwMTAtMDQtMDMgMjE6MTI6 MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMzMsNiArMzMsOCBAQAorIFdISUNIID0gYXJtLXdpdGgt aXdtbXh0IGFybS13aXRoLXZmcHYyIGFybS13aXRoLXZmcHYzIGFybS13aXRoLW5lb24gXAorIAlp Mzg2L2kzODYgaTM4Ni9pMzg2LWxpbnV4IFwKKyAJaTM4Ni9hbWQ2NCBpMzg2L2FtZDY0LWxpbnV4 IFwKKysJaTM4Ni9pMzg2LWF2eCBpMzg2L2kzODYtYXZ4LWxpbnV4IFwKKysJaTM4Ni9hbWQ2NC1h dnggaTM4Ni9hbWQ2NC1hdngtbGludXggXAorIAltaXBzLWxpbnV4IG1pcHM2NC1saW51eCBcCisg CXJzNjAwMC9wb3dlcnBjLTMybCByczYwMDAvcG93ZXJwYy1hbHRpdmVjMzJsIHJzNjAwMC9wb3dl cnBjLWU1MDBsIFwKKyAJcnM2MDAwL3Bvd2VycGMtNjRsIHJzNjAwMC9wb3dlcnBjLWFsdGl2ZWM2 NGwgcnM2MDAwL3Bvd2VycGMtdnN4MzJsIFwKK0BAIC00NSw2ICs0NywxMCBAQCBpMzg2L2kzODYt ZXhwZWRpdGUgPSBlYnAsZXNwLGVpcAorIGkzODYvaTM4Ni1saW51eC1leHBlZGl0ZSA9IGVicCxl c3AsZWlwCisgaTM4Ni9hbWQ2NC1leHBlZGl0ZSA9IHJicCxyc3AscmlwCisgaTM4Ni9hbWQ2NC1s aW51eC1leHBlZGl0ZSA9IHJicCxyc3AscmlwCisraTM4Ni9pMzg2LWF2eC1leHBlZGl0ZSA9IGVi cCxlc3AsZWlwCisraTM4Ni9pMzg2LWF2eC1saW51eC1leHBlZGl0ZSA9IGVicCxlc3AsZWlwCisr aTM4Ni9hbWQ2NC1hdngtZXhwZWRpdGUgPSByYnAscnNwLHJpcAorK2kzODYvYW1kNjQtYXZ4LWxp bnV4LWV4cGVkaXRlID0gcmJwLHJzcCxyaXAKKyBtaXBzLWV4cGVkaXRlID0gcjI5LHBjCisgbWlw czY0LWV4cGVkaXRlID0gcjI5LHBjCisgcG93ZXJwYy1leHBlZGl0ZSA9IHIxLHBjCitAQCAtOTAs MyArOTYsOSBAQCAkKG91dGRpcikvaTM4Ni9pMzg2LWxpbnV4LmRhdDogaTM4Ni8zMmJpCisgJChv dXRkaXIpL2kzODYvYW1kNjQuZGF0OiBpMzg2LzY0Yml0LWNvcmUueG1sIGkzODYvNjRiaXQtc3Nl LnhtbAorICQob3V0ZGlyKS9pMzg2L2FtZDY0LWxpbnV4LmRhdDogaTM4Ni82NGJpdC1jb3JlLnht bCBpMzg2LzY0Yml0LXNzZS54bWwgXAorIAkJCSAgICAgICAgaTM4Ni82NGJpdC1saW51eC54bWwK KyskKG91dGRpcikvaTM4Ni9pMzg2LWF2eC5kYXQ6IGkzODYvMzJiaXQtY29yZS54bWwgaTM4Ni8z MmJpdC1hdngueG1sCisrJChvdXRkaXIpL2kzODYvaTM4Ni1hdngtbGludXguZGF0OiBpMzg2LzMy Yml0LWNvcmUueG1sIGkzODYvMzJiaXQtYXZ4LnhtbCBcCisrCQkJICAgICAgIGkzODYvMzJiaXQt bGludXgueG1sCisrJChvdXRkaXIpL2kzODYvYW1kNjQtYXZ4LmRhdDogaTM4Ni82NGJpdC1jb3Jl LnhtbCBpMzg2LzY0Yml0LWF2eC54bWwKKyskKG91dGRpcikvaTM4Ni9hbWQ2NC1hdngtbGludXgu ZGF0OiBpMzg2LzY0Yml0LWNvcmUueG1sIGkzODYvNjRiaXQtYXZ4LnhtbCBcCisrCQkJCSAgICBp Mzg2LzY0Yml0LWxpbnV4LnhtbAorLS0tIC4vZ2RiL2ZlYXR1cmVzL2kzODYvMzJiaXQtYXZ4Lnht bAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2ZlYXR1cmVz L2kzODYvMzJiaXQtYXZ4LnhtbAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAor QEAgLTAsMCArMSwxOCBAQAorKzw/eG1sIHZlcnNpb249IjEuMCI/PgorKzwhLS0gQ29weXJpZ2h0 IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgICAgQ29weWlu ZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh dGlvbiwKKysgICAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkg cHJvdmlkZWQgdGhlIGNvcHlyaWdodAorKyAgICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUg cHJlc2VydmVkLiAgLS0+CisrCisrPCFET0NUWVBFIGZlYXR1cmUgU1lTVEVNICJnZGItdGFyZ2V0 LmR0ZCI+CisrPGZlYXR1cmUgbmFtZT0ib3JnLmdudS5nZGIuaTM4Ni5hdngiPgorKyAgPHJlZyBu YW1lPSJ5bW0waCIgYml0c2l6ZT0iMTI4IiB0eXBlPSJ1aW50MTI4Ii8+CisrICA8cmVnIG5hbWU9 InltbTFoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1t MmgiIGJpdHNpemU9IjEyOCIgdHlwZT0idWludDEyOCIvPgorKyAgPHJlZyBuYW1lPSJ5bW0zaCIg Yml0c2l6ZT0iMTI4IiB0eXBlPSJ1aW50MTI4Ii8+CisrICA8cmVnIG5hbWU9InltbTRoIiBiaXRz aXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1tNWgiIGJpdHNpemU9 IjEyOCIgdHlwZT0idWludDEyOCIvPgorKyAgPHJlZyBuYW1lPSJ5bW02aCIgYml0c2l6ZT0iMTI4 IiB0eXBlPSJ1aW50MTI4Ii8+CisrICA8cmVnIG5hbWU9InltbTdoIiBiaXRzaXplPSIxMjgiIHR5 cGU9InVpbnQxMjgiLz4KKys8L2ZlYXR1cmU+CistLS0gLi9nZGIvZmVhdHVyZXMvaTM4Ni82NGJp dC1hdngueG1sCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIv ZmVhdHVyZXMvaTM4Ni82NGJpdC1hdngueG1sCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDI2IEBACisrPD94bWwgdmVyc2lvbj0iMS4wIj8+CisrPCEtLSBD b3B5cmlnaHQgKEMpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAg ICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBmaWxlLCB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9uLAorKyAgICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQg cm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CisrICAgICBub3RpY2UgYW5kIHRoaXMgbm90 aWNlIGFyZSBwcmVzZXJ2ZWQuICAtLT4KKysKKys8IURPQ1RZUEUgZmVhdHVyZSBTWVNURU0gImdk Yi10YXJnZXQuZHRkIj4KKys8ZmVhdHVyZSBuYW1lPSJvcmcuZ251LmdkYi5pMzg2LmF2eCI+Cisr ICA8cmVnIG5hbWU9InltbTBoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysgIDxy ZWcgbmFtZT0ieW1tMWgiIGJpdHNpemU9IjEyOCIgdHlwZT0idWludDEyOCIvPgorKyAgPHJlZyBu YW1lPSJ5bW0yaCIgYml0c2l6ZT0iMTI4IiB0eXBlPSJ1aW50MTI4Ii8+CisrICA8cmVnIG5hbWU9 InltbTNoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1t NGgiIGJpdHNpemU9IjEyOCIgdHlwZT0idWludDEyOCIvPgorKyAgPHJlZyBuYW1lPSJ5bW01aCIg Yml0c2l6ZT0iMTI4IiB0eXBlPSJ1aW50MTI4Ii8+CisrICA8cmVnIG5hbWU9InltbTZoIiBiaXRz aXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1tN2giIGJpdHNpemU9 IjEyOCIgdHlwZT0idWludDEyOCIvPgorKyAgPHJlZyBuYW1lPSJ5bW04aCIgYml0c2l6ZT0iMTI4 IiB0eXBlPSJ1aW50MTI4Ii8+CisrICA8cmVnIG5hbWU9InltbTloIiBiaXRzaXplPSIxMjgiIHR5 cGU9InVpbnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1tMTBoIiBiaXRzaXplPSIxMjgiIHR5cGU9 InVpbnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1tMTFoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVp bnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1tMTJoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQx MjgiLz4KKysgIDxyZWcgbmFtZT0ieW1tMTNoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgi Lz4KKysgIDxyZWcgbmFtZT0ieW1tMTRoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4K KysgIDxyZWcgbmFtZT0ieW1tMTVoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKys8 L2ZlYXR1cmU+CistLS0gLi9nZGIvZmVhdHVyZXMvaTM4Ni9NYWtlZmlsZQkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2ZlYXR1cmVzL2kzODYvTWFrZWZpbGUJ MjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNSBAQAorK2lu Y2x1ZGUgTWFrZWZpbGUKKysKKytYTUxUT0MgPSAkKGFkZHN1ZmZpeCAueG1sLCAkKGZpbHRlciBp Mzg2LyUsICQoV0hJQ0gpKSkKKytDRklMRVMgPSAkKHBhdHN1YnN0ICUueG1sLCUuYywkKFhNTFRP QykpCisrY2ZpbGVzOiAkKENGSUxFUykKKy0tLSAuL2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWF2 eC1saW51eC5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIv ZmVhdHVyZXMvaTM4Ni9hbWQ2NC1hdngtbGludXguYwkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAw MDAwMCArMDIwMAorQEAgLTAsMCArMSwxNzEgQEAKKysvKiBUSElTIEZJTEUgSVMgR0VORVJBVEVE LiAgT3JpZ2luYWw6IGFtZDY0LWF2eC1saW51eC54bWwgKi8KKysKKysjaW5jbHVkZSAiZGVmcy5o IgorKyNpbmNsdWRlICJvc2FiaS5oIgorKyNpbmNsdWRlICJ0YXJnZXQtZGVzY3JpcHRpb25zLmgi CisrCisrc3RydWN0IHRhcmdldF9kZXNjICp0ZGVzY19hbWQ2NF9hdnhfbGludXg7Cisrc3RhdGlj IHZvaWQKKytpbml0aWFsaXplX3RkZXNjX2FtZDY0X2F2eF9saW51eCAodm9pZCkKKyt7CisrICBz dHJ1Y3QgdGFyZ2V0X2Rlc2MgKnJlc3VsdCA9IGFsbG9jYXRlX3RhcmdldF9kZXNjcmlwdGlvbiAo KTsKKysgIHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlOworKyAgc3RydWN0IHRkZXNjX3R5 cGUgKmZpZWxkX3R5cGUsICp0eXBlOworKworKyAgc2V0X3RkZXNjX2FyY2hpdGVjdHVyZSAocmVz dWx0LCBiZmRfc2Nhbl9hcmNoICgiaTM4Njp4ODYtNjQiKSk7CisrCisrICBzZXRfdGRlc2Nfb3Nh YmkgKHJlc3VsdCwgb3NhYmlfZnJvbV90ZGVzY19zdHJpbmcgKCJHTlUvTGludXgiKSk7CisrCisr ICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkz ODYuY29yZSIpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX2NyZWF0ZV9mbGFncyAoZmVhdHVyZSwg ImkzODZfZWZsYWdzIiwgNCk7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMCwgIkNG Iik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMSwgIiIpOworKyAgdGRlc2NfYWRk X2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJQRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5 cGUsIDQsICJBRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJaRiIpOwor KyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDcsICJTRiIpOworKyAgdGRlc2NfYWRkX2Zs YWcgKGZpZWxkX3R5cGUsIDgsICJURiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUs IDksICJJRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEwLCAiREYiKTsKKysg IHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMSwgIk9GIik7CisrICB0ZGVzY19hZGRfZmxh ZyAoZmllbGRfdHlwZSwgMTQsICJOVCIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUs IDE2LCAiUkYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNywgIlZNIik7Cisr ICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTgsICJBQyIpOworKyAgdGRlc2NfYWRkX2Zs YWcgKGZpZWxkX3R5cGUsIDE5LCAiVklGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlw ZSwgMjAsICJWSVAiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyMSwgIklEIik7 CisrCisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicmF4IiwgMCwgMSwgTlVMTCwgNjQs ICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInJieCIsIDEsIDEsIE5V TEwsIDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyY3giLCAy LCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi cmR4IiwgMywgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVh dHVyZSwgInJzaSIsIDQsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJyZGkiLCA1LCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVzY19j cmVhdGVfcmVnIChmZWF0dXJlLCAicmJwIiwgNiwgMSwgTlVMTCwgNjQsICJkYXRhX3B0ciIpOwor KyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInJzcCIsIDcsIDEsIE5VTEwsIDY0LCAiZGF0 YV9wdHIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyOCIsIDgsIDEsIE5VTEws IDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyOSIsIDksIDEs IE5VTEwsIDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyMTAi LCAxMCwgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVy ZSwgInIxMSIsIDExLCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVn IChmZWF0dXJlLCAicjEyIiwgMTIsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2Ny ZWF0ZV9yZWcgKGZlYXR1cmUsICJyMTMiLCAxMywgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOworKyAg dGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInIxNCIsIDE0LCAxLCBOVUxMLCA2NCwgImludDY0 Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicjE1IiwgMTUsIDEsIE5VTEwsIDY0 LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyaXAiLCAxNiwgMSwg TlVMTCwgNjQsICJjb2RlX3B0ciIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVm bGFncyIsIDE3LCAxLCBOVUxMLCAzMiwgImkzODZfZWZsYWdzIik7CisrICB0ZGVzY19jcmVhdGVf cmVnIChmZWF0dXJlLCAiY3MiLCAxOCwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2Nf Y3JlYXRlX3JlZyAoZmVhdHVyZSwgInNzIiwgMTksIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJkcyIsIDIwLCAxLCBOVUxMLCAzMiwgImludDMy Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZXMiLCAyMSwgMSwgTlVMTCwgMzIs ICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImZzIiwgMjIsIDEsIE5V TEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJncyIsIDIz LCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi c3QwIiwgMjQsIDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsICJzdDEiLCAyNSwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2Nf Y3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0MiIsIDI2LCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7 CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3QzIiwgMjcsIDEsIE5VTEwsIDgwLCAi aTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDQiLCAyOCwgMSwg TlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0 NSIsIDI5LCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChm ZWF0dXJlLCAic3Q2IiwgMzAsIDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2Ny ZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDciLCAzMSwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOwor KyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImZjdHJsIiwgMzIsIDEsICJmbG9hdCIsIDMy LCAiaW50Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZnN0YXQiLCAzMywgMSwg ImZsb2F0IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmdGFn IiwgMzQsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0 dXJlLCAiZmlzZWciLCAzNSwgMSwgImZsb2F0IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0 ZV9yZWcgKGZlYXR1cmUsICJmaW9mZiIsIDM2LCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAg dGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImZvc2VnIiwgMzcsIDEsICJmbG9hdCIsIDMyLCAi aW50Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZm9vZmYiLCAzOCwgMSwgImZs b2F0IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmb3AiLCAz OSwgMSwgImZsb2F0IiwgMzIsICJpbnQiKTsKKysKKysgIGZlYXR1cmUgPSB0ZGVzY19jcmVhdGVf ZmVhdHVyZSAocmVzdWx0LCAib3JnLmdudS5nZGIuaTM4Ni5zc2UiKTsKKysgIGZpZWxkX3R5cGUg PSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAiaWVlZV9zaW5nbGUiKTsKKysgIHRkZXNjX2Ny ZWF0ZV92ZWN0b3IgKGZlYXR1cmUsICJ2NGYiLCBmaWVsZF90eXBlLCA0KTsKKysKKysgIGZpZWxk X3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAiaWVlZV9kb3VibGUiKTsKKysgIHRk ZXNjX2NyZWF0ZV92ZWN0b3IgKGZlYXR1cmUsICJ2MmQiLCBmaWVsZF90eXBlLCAyKTsKKysKKysg IGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAiaW50OCIpOworKyAgdGRl c2NfY3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgInYxNmk4IiwgZmllbGRfdHlwZSwgMTYpOworKwor KyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJpbnQxNiIpOworKyAg dGRlc2NfY3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgInY4aTE2IiwgZmllbGRfdHlwZSwgOCk7Cisr CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgImludDMyIik7Cisr ICB0ZGVzY19jcmVhdGVfdmVjdG9yIChmZWF0dXJlLCAidjRpMzIiLCBmaWVsZF90eXBlLCA0KTsK KysKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAiaW50NjQiKTsK KysgIHRkZXNjX2NyZWF0ZV92ZWN0b3IgKGZlYXR1cmUsICJ2Mmk2NCIsIGZpZWxkX3R5cGUsIDIp OworKworKyAgdHlwZSA9IHRkZXNjX2NyZWF0ZV91bmlvbiAoZmVhdHVyZSwgInZlYzEyOCIpOwor KyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ2NGYiKTsKKysgIHRk ZXNjX2FkZF9maWVsZCAodHlwZSwgInY0X2Zsb2F0IiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90 eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgInYyZCIpOworKyAgdGRlc2NfYWRkX2Zp ZWxkICh0eXBlLCAidjJfZG91YmxlIiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRl c2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgInYxNmk4Iik7CisrICB0ZGVzY19hZGRfZmllbGQgKHR5 cGUsICJ2MTZfaW50OCIsIGZpZWxkX3R5cGUpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVk X3R5cGUgKGZlYXR1cmUsICJ2OGkxNiIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidjhf aW50MTYiLCBmaWVsZF90eXBlKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChm ZWF0dXJlLCAidjRpMzIiKTsKKysgIHRkZXNjX2FkZF9maWVsZCAodHlwZSwgInY0X2ludDMyIiwg ZmllbGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwg InYyaTY0Iik7CisrICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ2Ml9pbnQ2NCIsIGZpZWxkX3R5 cGUpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ1aW50MTI4 Iik7CisrICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ1aW50MTI4IiwgZmllbGRfdHlwZSk7Cisr CisrICBmaWVsZF90eXBlID0gdGRlc2NfY3JlYXRlX2ZsYWdzIChmZWF0dXJlLCAiaTM4Nl9teGNz ciIsIDQpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDAsICJJRSIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEsICJERSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDIsICJaRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDMsICJP RSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDQsICJVRSIpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDUsICJQRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxk X3R5cGUsIDYsICJEQVoiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA3LCAiSU0i KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA4LCAiRE0iKTsKKysgIHRkZXNjX2Fk ZF9mbGFnIChmaWVsZF90eXBlLCA5LCAiWk0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90 eXBlLCAxMCwgIk9NIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTEsICJVTSIp OworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEyLCAiUE0iKTsKKysgIHRkZXNjX2Fk ZF9mbGFnIChmaWVsZF90eXBlLCAxNSwgIkZaIik7CisrCisrICB0ZGVzY19jcmVhdGVfcmVnIChm ZWF0dXJlLCAieG1tMCIsIDQwLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2Ny ZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xIiwgNDEsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOwor KyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTIiLCA0MiwgMSwgTlVMTCwgMTI4LCAi dmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMyIsIDQzLCAxLCBO VUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW00 IiwgNDQsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVh dHVyZSwgInhtbTUiLCA0NSwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVh dGVfcmVnIChmZWF0dXJlLCAieG1tNiIsIDQ2LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW03IiwgNDcsIDEsIE5VTEwsIDEyOCwgInZl YzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTgiLCA0OCwgMSwgTlVM TCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tOSIs IDQ5LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1 cmUsICJ4bW0xMCIsIDUwLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0 ZV9yZWcgKGZlYXR1cmUsICJ4bW0xMSIsIDUxLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xMiIsIDUyLCAxLCBOVUxMLCAxMjgsICJ2 ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xMyIsIDUzLCAxLCBO VUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0x NCIsIDU0LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZl YXR1cmUsICJ4bW0xNSIsIDU1LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2Ny ZWF0ZV9yZWcgKGZlYXR1cmUsICJteGNzciIsIDU2LCAxLCAidmVjdG9yIiwgMzIsICJpMzg2X214 Y3NyIik7CisrCisrICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9y Zy5nbnUuZ2RiLmkzODYubGludXgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJv cmlnX3JheCIsIDU3LCAxLCBOVUxMLCA2NCwgImludCIpOworKworKyAgZmVhdHVyZSA9IHRkZXNj X2NyZWF0ZV9mZWF0dXJlIChyZXN1bHQsICJvcmcuZ251LmdkYi5pMzg2LmF2eCIpOworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTBoIiwgNTgsIDEsIE5VTEwsIDEyOCwgInVpbnQx MjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW0xaCIsIDU5LCAxLCBOVUxM LCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tMmgi LCA2MCwgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVh dHVyZSwgInltbTNoIiwgNjEsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2Ny ZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW00aCIsIDYyLCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7 CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tNWgiLCA2MywgMSwgTlVMTCwgMTI4 LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTZoIiwgNjQs IDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJ5bW03aCIsIDY1LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVf cmVnIChmZWF0dXJlLCAieW1tOGgiLCA2NiwgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKyAg dGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTloIiwgNjcsIDEsIE5VTEwsIDEyOCwgInVp bnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW0xMGgiLCA2OCwgMSwg TlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInlt bTExaCIsIDY5LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVn IChmZWF0dXJlLCAieW1tMTJoIiwgNzAsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRk ZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW0xM2giLCA3MSwgMSwgTlVMTCwgMTI4LCAidWlu dDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTE0aCIsIDcyLCAxLCBO VUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1t MTVoIiwgNzMsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysKKysgIHRkZXNjX2FtZDY0X2F2 eF9saW51eCA9IHJlc3VsdDsKKyt9CistLS0gLi9nZGIvZmVhdHVyZXMvaTM4Ni9hbWQ2NC1hdngt bGludXgueG1sCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIv ZmVhdHVyZXMvaTM4Ni9hbWQ2NC1hdngtbGludXgueG1sCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAw MDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE4IEBACisrPD94bWwgdmVyc2lvbj0iMS4wIj8+Cisr PCEtLSBDb3B5cmlnaHQgKEMpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr CisrICAgICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBmaWxlLCB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9uLAorKyAgICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdp dGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CisrICAgICBub3RpY2UgYW5kIHRo aXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAtLT4KKysKKys8IS0tIEFNRDY0IHdpdGggQVZYIC0g SW5jbHVkZXMgTGludXgtb25seSBzcGVjaWFsICJyZWdpc3RlciIuICAtLT4KKysKKys8IURPQ1RZ UEUgdGFyZ2V0IFNZU1RFTSAiZ2RiLXRhcmdldC5kdGQiPgorKzx0YXJnZXQ+CisrICA8YXJjaGl0 ZWN0dXJlPmkzODY6eDg2LTY0PC9hcmNoaXRlY3R1cmU+CisrICA8b3NhYmk+R05VL0xpbnV4PC9v c2FiaT4KKysgIDx4aTppbmNsdWRlIGhyZWY9IjY0Yml0LWNvcmUueG1sIi8+CisrICA8eGk6aW5j bHVkZSBocmVmPSI2NGJpdC1zc2UueG1sIi8+CisrICA8eGk6aW5jbHVkZSBocmVmPSI2NGJpdC1s aW51eC54bWwiLz4KKysgIDx4aTppbmNsdWRlIGhyZWY9IjY0Yml0LWF2eC54bWwiLz4KKys8L3Rh cmdldD4KKy0tLSAuL2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC5jCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZmVhdHVyZXMvaTM4Ni9hbWQ2NC1hdngu YwkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNjYgQEAK KysvKiBUSElTIEZJTEUgSVMgR0VORVJBVEVELiAgT3JpZ2luYWw6IGFtZDY0LWF2eC54bWwgKi8K KysKKysjaW5jbHVkZSAiZGVmcy5oIgorKyNpbmNsdWRlICJvc2FiaS5oIgorKyNpbmNsdWRlICJ0 YXJnZXQtZGVzY3JpcHRpb25zLmgiCisrCisrc3RydWN0IHRhcmdldF9kZXNjICp0ZGVzY19hbWQ2 NF9hdng7Cisrc3RhdGljIHZvaWQKKytpbml0aWFsaXplX3RkZXNjX2FtZDY0X2F2eCAodm9pZCkK Kyt7CisrICBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKnJlc3VsdCA9IGFsbG9jYXRlX3RhcmdldF9kZXNj cmlwdGlvbiAoKTsKKysgIHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlOworKyAgc3RydWN0 IHRkZXNjX3R5cGUgKmZpZWxkX3R5cGUsICp0eXBlOworKworKyAgc2V0X3RkZXNjX2FyY2hpdGVj dHVyZSAocmVzdWx0LCBiZmRfc2Nhbl9hcmNoICgiaTM4Njp4ODYtNjQiKSk7CisrCisrICBmZWF0 dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkzODYuY29y ZSIpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX2NyZWF0ZV9mbGFncyAoZmVhdHVyZSwgImkzODZf ZWZsYWdzIiwgNCk7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMCwgIkNGIik7Cisr ICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMSwgIiIpOworKyAgdGRlc2NfYWRkX2ZsYWcg KGZpZWxkX3R5cGUsIDIsICJQRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDQs ICJBRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJaRiIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDcsICJTRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDgsICJURiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDksICJJ RiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEwLCAiREYiKTsKKysgIHRkZXNj X2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMSwgIk9GIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmll bGRfdHlwZSwgMTQsICJOVCIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE2LCAi UkYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNywgIlZNIik7CisrICB0ZGVz Y19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTgsICJBQyIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDE5LCAiVklGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMjAs ICJWSVAiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyMSwgIklEIik7CisrCisr ICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicmF4IiwgMCwgMSwgTlVMTCwgNjQsICJpbnQ2 NCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInJieCIsIDEsIDEsIE5VTEwsIDY0 LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyY3giLCAyLCAxLCBO VUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicmR4Iiwg MywgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwg InJzaSIsIDQsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZl YXR1cmUsICJyZGkiLCA1LCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVf cmVnIChmZWF0dXJlLCAicmJwIiwgNiwgMSwgTlVMTCwgNjQsICJkYXRhX3B0ciIpOworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInJzcCIsIDcsIDEsIE5VTEwsIDY0LCAiZGF0YV9wdHIi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyOCIsIDgsIDEsIE5VTEwsIDY0LCAi aW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyOSIsIDksIDEsIE5VTEws IDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyMTAiLCAxMCwg MSwgTlVMTCwgNjQsICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInIx MSIsIDExLCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0 dXJlLCAicjEyIiwgMTIsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJyMTMiLCAxMywgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOworKyAgdGRlc2Nf Y3JlYXRlX3JlZyAoZmVhdHVyZSwgInIxNCIsIDE0LCAxLCBOVUxMLCA2NCwgImludDY0Iik7Cisr ICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicjE1IiwgMTUsIDEsIE5VTEwsIDY0LCAiaW50 NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyaXAiLCAxNiwgMSwgTlVMTCwg NjQsICJjb2RlX3B0ciIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVmbGFncyIs IDE3LCAxLCBOVUxMLCAzMiwgImkzODZfZWZsYWdzIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChm ZWF0dXJlLCAiY3MiLCAxOCwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRl X3JlZyAoZmVhdHVyZSwgInNzIiwgMTksIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNj X2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJkcyIsIDIwLCAxLCBOVUxMLCAzMiwgImludDMyIik7Cisr ICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZXMiLCAyMSwgMSwgTlVMTCwgMzIsICJpbnQz MiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImZzIiwgMjIsIDEsIE5VTEwsIDMy LCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJncyIsIDIzLCAxLCBO VUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3QwIiwg MjQsIDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1 cmUsICJzdDEiLCAyNSwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRl X3JlZyAoZmVhdHVyZSwgInN0MiIsIDI2LCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0 ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3QzIiwgMjcsIDEsIE5VTEwsIDgwLCAiaTM4N19l eHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDQiLCAyOCwgMSwgTlVMTCwg ODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0NSIsIDI5 LCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJl LCAic3Q2IiwgMzAsIDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJzdDciLCAzMSwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImZjdHJsIiwgMzIsIDEsICJmbG9hdCIsIDMyLCAiaW50 Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZnN0YXQiLCAzMywgMSwgImZsb2F0 IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmdGFnIiwgMzQs IDEsICJmbG9hdCIsIDMyLCAiaW50Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi ZmlzZWciLCAzNSwgMSwgImZsb2F0IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsICJmaW9mZiIsIDM2LCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2Nf Y3JlYXRlX3JlZyAoZmVhdHVyZSwgImZvc2VnIiwgMzcsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7 CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZm9vZmYiLCAzOCwgMSwgImZsb2F0Iiwg MzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmb3AiLCAzOSwgMSwg ImZsb2F0IiwgMzIsICJpbnQiKTsKKysKKysgIGZlYXR1cmUgPSB0ZGVzY19jcmVhdGVfZmVhdHVy ZSAocmVzdWx0LCAib3JnLmdudS5nZGIuaTM4Ni5zc2UiKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVz Y19uYW1lZF90eXBlIChmZWF0dXJlLCAiaWVlZV9zaW5nbGUiKTsKKysgIHRkZXNjX2NyZWF0ZV92 ZWN0b3IgKGZlYXR1cmUsICJ2NGYiLCBmaWVsZF90eXBlLCA0KTsKKysKKysgIGZpZWxkX3R5cGUg PSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAiaWVlZV9kb3VibGUiKTsKKysgIHRkZXNjX2Ny ZWF0ZV92ZWN0b3IgKGZlYXR1cmUsICJ2MmQiLCBmaWVsZF90eXBlLCAyKTsKKysKKysgIGZpZWxk X3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAiaW50OCIpOworKyAgdGRlc2NfY3Jl YXRlX3ZlY3RvciAoZmVhdHVyZSwgInYxNmk4IiwgZmllbGRfdHlwZSwgMTYpOworKworKyAgZmll bGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJpbnQxNiIpOworKyAgdGRlc2Nf Y3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgInY4aTE2IiwgZmllbGRfdHlwZSwgOCk7CisrCisrICBm aWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgImludDMyIik7CisrICB0ZGVz Y19jcmVhdGVfdmVjdG9yIChmZWF0dXJlLCAidjRpMzIiLCBmaWVsZF90eXBlLCA0KTsKKysKKysg IGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAiaW50NjQiKTsKKysgIHRk ZXNjX2NyZWF0ZV92ZWN0b3IgKGZlYXR1cmUsICJ2Mmk2NCIsIGZpZWxkX3R5cGUsIDIpOworKwor KyAgdHlwZSA9IHRkZXNjX2NyZWF0ZV91bmlvbiAoZmVhdHVyZSwgInZlYzEyOCIpOworKyAgZmll bGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ2NGYiKTsKKysgIHRkZXNjX2Fk ZF9maWVsZCAodHlwZSwgInY0X2Zsb2F0IiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0g dGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgInYyZCIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0 eXBlLCAidjJfZG91YmxlIiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFt ZWRfdHlwZSAoZmVhdHVyZSwgInYxNmk4Iik7CisrICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ2 MTZfaW50OCIsIGZpZWxkX3R5cGUpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUg KGZlYXR1cmUsICJ2OGkxNiIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidjhfaW50MTYi LCBmaWVsZF90eXBlKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJl LCAidjRpMzIiKTsKKysgIHRkZXNjX2FkZF9maWVsZCAodHlwZSwgInY0X2ludDMyIiwgZmllbGRf dHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgInYyaTY0 Iik7CisrICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ2Ml9pbnQ2NCIsIGZpZWxkX3R5cGUpOwor KyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ1aW50MTI4Iik7Cisr ICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ1aW50MTI4IiwgZmllbGRfdHlwZSk7CisrCisrICBm aWVsZF90eXBlID0gdGRlc2NfY3JlYXRlX2ZsYWdzIChmZWF0dXJlLCAiaTM4Nl9teGNzciIsIDQp OworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDAsICJJRSIpOworKyAgdGRlc2NfYWRk X2ZsYWcgKGZpZWxkX3R5cGUsIDEsICJERSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5 cGUsIDIsICJaRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDMsICJPRSIpOwor KyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDQsICJVRSIpOworKyAgdGRlc2NfYWRkX2Zs YWcgKGZpZWxkX3R5cGUsIDUsICJQRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUs IDYsICJEQVoiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA3LCAiSU0iKTsKKysg IHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA4LCAiRE0iKTsKKysgIHRkZXNjX2FkZF9mbGFn IChmaWVsZF90eXBlLCA5LCAiWk0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAx MCwgIk9NIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTEsICJVTSIpOworKyAg dGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEyLCAiUE0iKTsKKysgIHRkZXNjX2FkZF9mbGFn IChmaWVsZF90eXBlLCAxNSwgIkZaIik7CisrCisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJl LCAieG1tMCIsIDQwLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJ4bW0xIiwgNDEsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTIiLCA0MiwgMSwgTlVMTCwgMTI4LCAidmVjMTI4 Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMyIsIDQzLCAxLCBOVUxMLCAx MjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW00IiwgNDQs IDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwg InhtbTUiLCA0NSwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVn IChmZWF0dXJlLCAieG1tNiIsIDQ2LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNj X2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW03IiwgNDcsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIp OworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTgiLCA0OCwgMSwgTlVMTCwgMTI4 LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tOSIsIDQ5LCAx LCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4 bW0xMCIsIDUwLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsICJ4bW0xMSIsIDUxLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNj X2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xMiIsIDUyLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xMyIsIDUzLCAxLCBOVUxMLCAx MjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xNCIsIDU0 LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJ4bW0xNSIsIDU1LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJteGNzciIsIDU2LCAxLCAidmVjdG9yIiwgMzIsICJpMzg2X214Y3NyIik7 CisrCisrICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUu Z2RiLmkzODYuYXZ4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tMGgiLCA1 NywgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVy ZSwgInltbTFoIiwgNTgsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0 ZV9yZWcgKGZlYXR1cmUsICJ5bW0yaCIsIDU5LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7Cisr ICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tM2giLCA2MCwgMSwgTlVMTCwgMTI4LCAi dWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTRoIiwgNjEsIDEs IE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5 bW01aCIsIDYyLCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVn IChmZWF0dXJlLCAieW1tNmgiLCA2MywgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTdoIiwgNjQsIDEsIE5VTEwsIDEyOCwgInVpbnQx MjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW04aCIsIDY1LCAxLCBOVUxM LCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tOWgi LCA2NiwgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVh dHVyZSwgInltbTEwaCIsIDY3LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19j cmVhdGVfcmVnIChmZWF0dXJlLCAieW1tMTFoIiwgNjgsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW0xMmgiLCA2OSwgMSwgTlVMTCwg MTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTEzaCIs IDcwLCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0 dXJlLCAieW1tMTRoIiwgNzEsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2Ny ZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW0xNWgiLCA3MiwgMSwgTlVMTCwgMTI4LCAidWludDEyOCIp OworKworKyAgdGRlc2NfYW1kNjRfYXZ4ID0gcmVzdWx0OworK30KKy0tLSAuL2dkYi9mZWF0dXJl cy9pMzg2L2FtZDY0LWF2eC54bWwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyAuL2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC54bWwJMjAxMC0wNC0wMyAyMToxMjoz Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTYgQEAKKys8P3htbCB2ZXJzaW9uPSIxLjAi Pz4KKys8IS0tIENvcHlyaWdodCAoQykgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysKKysgICAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisrICAgICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRp dW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKKysgICAgIG5vdGljZSBh bmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gIC0tPgorKworKzwhLS0gQU1ENjQgd2l0aCBB VlggLS0+CisrCisrPCFET0NUWVBFIHRhcmdldCBTWVNURU0gImdkYi10YXJnZXQuZHRkIj4KKys8 dGFyZ2V0PgorKyAgPGFyY2hpdGVjdHVyZT5pMzg2Ong4Ni02NDwvYXJjaGl0ZWN0dXJlPgorKyAg PHhpOmluY2x1ZGUgaHJlZj0iNjRiaXQtY29yZS54bWwiLz4KKysgIDx4aTppbmNsdWRlIGhyZWY9 IjY0Yml0LXNzZS54bWwiLz4KKysgIDx4aTppbmNsdWRlIGhyZWY9IjY0Yml0LWF2eC54bWwiLz4K Kys8L3RhcmdldD4KKy0tLSAuL2dkYi9mZWF0dXJlcy9pMzg2L2kzODYtYXZ4LWxpbnV4LmMJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9mZWF0dXJlcy9pMzg2 L2kzODYtYXZ4LWxpbnV4LmMJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BA IC0wLDAgKzEsMTQ3IEBACisrLyogVEhJUyBGSUxFIElTIEdFTkVSQVRFRC4gIE9yaWdpbmFsOiBp Mzg2LWF2eC1saW51eC54bWwgKi8KKysKKysjaW5jbHVkZSAiZGVmcy5oIgorKyNpbmNsdWRlICJv c2FiaS5oIgorKyNpbmNsdWRlICJ0YXJnZXQtZGVzY3JpcHRpb25zLmgiCisrCisrc3RydWN0IHRh cmdldF9kZXNjICp0ZGVzY19pMzg2X2F2eF9saW51eDsKKytzdGF0aWMgdm9pZAorK2luaXRpYWxp emVfdGRlc2NfaTM4Nl9hdnhfbGludXggKHZvaWQpCisreworKyAgc3RydWN0IHRhcmdldF9kZXNj ICpyZXN1bHQgPSBhbGxvY2F0ZV90YXJnZXRfZGVzY3JpcHRpb24gKCk7CisrICBzdHJ1Y3QgdGRl c2NfZmVhdHVyZSAqZmVhdHVyZTsKKysgIHN0cnVjdCB0ZGVzY190eXBlICpmaWVsZF90eXBlLCAq dHlwZTsKKysKKysgIHNldF90ZGVzY19hcmNoaXRlY3R1cmUgKHJlc3VsdCwgYmZkX3NjYW5fYXJj aCAoImkzODYiKSk7CisrCisrICBzZXRfdGRlc2Nfb3NhYmkgKHJlc3VsdCwgb3NhYmlfZnJvbV90 ZGVzY19zdHJpbmcgKCJHTlUvTGludXgiKSk7CisrCisrICBmZWF0dXJlID0gdGRlc2NfY3JlYXRl X2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkzODYuY29yZSIpOworKyAgZmllbGRfdHlw ZSA9IHRkZXNjX2NyZWF0ZV9mbGFncyAoZmVhdHVyZSwgImkzODZfZWZsYWdzIiwgNCk7CisrICB0 ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMCwgIkNGIik7CisrICB0ZGVzY19hZGRfZmxhZyAo ZmllbGRfdHlwZSwgMSwgIiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJQ RiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDQsICJBRiIpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJaRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxk X3R5cGUsIDcsICJTRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDgsICJURiIp OworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDksICJJRiIpOworKyAgdGRlc2NfYWRk X2ZsYWcgKGZpZWxkX3R5cGUsIDEwLCAiREYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90 eXBlLCAxMSwgIk9GIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTQsICJOVCIp OworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE2LCAiUkYiKTsKKysgIHRkZXNjX2Fk ZF9mbGFnIChmaWVsZF90eXBlLCAxNywgIlZNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRf dHlwZSwgMTgsICJBQyIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE5LCAiVklG Iik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMjAsICJWSVAiKTsKKysgIHRkZXNj X2FkZF9mbGFnIChmaWVsZF90eXBlLCAyMSwgIklEIik7CisrCisrICB0ZGVzY19jcmVhdGVfcmVn IChmZWF0dXJlLCAiZWF4IiwgMCwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3Jl YXRlX3JlZyAoZmVhdHVyZSwgImVjeCIsIDEsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRk ZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJlZHgiLCAyLCAxLCBOVUxMLCAzMiwgImludDMyIik7 CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZWJ4IiwgMywgMSwgTlVMTCwgMzIsICJp bnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVzcCIsIDQsIDEsIE5VTEws IDMyLCAiZGF0YV9wdHIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJlYnAiLCA1 LCAxLCBOVUxMLCAzMiwgImRhdGFfcHRyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJl LCAiZXNpIiwgNiwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAo ZmVhdHVyZSwgImVkaSIsIDcsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0 ZV9yZWcgKGZlYXR1cmUsICJlaXAiLCA4LCAxLCBOVUxMLCAzMiwgImNvZGVfcHRyIik7CisrICB0 ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZWZsYWdzIiwgOSwgMSwgTlVMTCwgMzIsICJpMzg2 X2VmbGFncyIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImNzIiwgMTAsIDEsIE5V TEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzcyIsIDEx LCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi ZHMiLCAxMiwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVh dHVyZSwgImVzIiwgMTMsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJmcyIsIDE0LCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19j cmVhdGVfcmVnIChmZWF0dXJlLCAiZ3MiLCAxNSwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAg dGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0MCIsIDE2LCAxLCBOVUxMLCA4MCwgImkzODdf ZXh0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3QxIiwgMTcsIDEsIE5VTEws IDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDIiLCAx OCwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVy ZSwgInN0MyIsIDE5LCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19jcmVhdGVf cmVnIChmZWF0dXJlLCAic3Q0IiwgMjAsIDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRk ZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDUiLCAyMSwgMSwgTlVMTCwgODAsICJpMzg3X2V4 dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0NiIsIDIyLCAxLCBOVUxMLCA4 MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3Q3IiwgMjMs IDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJmY3RybCIsIDI0LCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2NfY3JlYXRlX3Jl ZyAoZmVhdHVyZSwgImZzdGF0IiwgMjUsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7CisrICB0ZGVz Y19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZnRhZyIsIDI2LCAxLCAiZmxvYXQiLCAzMiwgImludCIp OworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImZpc2VnIiwgMjcsIDEsICJmbG9hdCIs IDMyLCAiaW50Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZmlvZmYiLCAyOCwg MSwgImZsb2F0IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJm b3NlZyIsIDI5LCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAo ZmVhdHVyZSwgImZvb2ZmIiwgMzAsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7CisrICB0ZGVzY19j cmVhdGVfcmVnIChmZWF0dXJlLCAiZm9wIiwgMzEsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7Cisr CisrICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2Ri LmkzODYuc3NlIik7CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwg ImllZWVfc2luZ2xlIik7CisrICB0ZGVzY19jcmVhdGVfdmVjdG9yIChmZWF0dXJlLCAidjRmIiwg ZmllbGRfdHlwZSwgNCk7CisrCisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVh dHVyZSwgImllZWVfZG91YmxlIik7CisrICB0ZGVzY19jcmVhdGVfdmVjdG9yIChmZWF0dXJlLCAi djJkIiwgZmllbGRfdHlwZSwgMik7CisrCisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlw ZSAoZmVhdHVyZSwgImludDgiKTsKKysgIHRkZXNjX2NyZWF0ZV92ZWN0b3IgKGZlYXR1cmUsICJ2 MTZpOCIsIGZpZWxkX3R5cGUsIDE2KTsKKysKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90 eXBlIChmZWF0dXJlLCAiaW50MTYiKTsKKysgIHRkZXNjX2NyZWF0ZV92ZWN0b3IgKGZlYXR1cmUs ICJ2OGkxNiIsIGZpZWxkX3R5cGUsIDgpOworKworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVk X3R5cGUgKGZlYXR1cmUsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3ZlY3RvciAoZmVhdHVy ZSwgInY0aTMyIiwgZmllbGRfdHlwZSwgNCk7CisrCisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFt ZWRfdHlwZSAoZmVhdHVyZSwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVfdmVjdG9yIChmZWF0 dXJlLCAidjJpNjQiLCBmaWVsZF90eXBlLCAyKTsKKysKKysgIHR5cGUgPSB0ZGVzY19jcmVhdGVf dW5pb24gKGZlYXR1cmUsICJ2ZWMxMjgiKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90 eXBlIChmZWF0dXJlLCAidjRmIik7CisrICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ2NF9mbG9h dCIsIGZpZWxkX3R5cGUpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1 cmUsICJ2MmQiKTsKKysgIHRkZXNjX2FkZF9maWVsZCAodHlwZSwgInYyX2RvdWJsZSIsIGZpZWxk X3R5cGUpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ2MTZp OCIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidjE2X2ludDgiLCBmaWVsZF90eXBlKTsK KysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAidjhpMTYiKTsKKysg IHRkZXNjX2FkZF9maWVsZCAodHlwZSwgInY4X2ludDE2IiwgZmllbGRfdHlwZSk7CisrICBmaWVs ZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgInY0aTMyIik7CisrICB0ZGVzY19h ZGRfZmllbGQgKHR5cGUsICJ2NF9pbnQzMiIsIGZpZWxkX3R5cGUpOworKyAgZmllbGRfdHlwZSA9 IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ2Mmk2NCIpOworKyAgdGRlc2NfYWRkX2ZpZWxk ICh0eXBlLCAidjJfaW50NjQiLCBmaWVsZF90eXBlKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19u YW1lZF90eXBlIChmZWF0dXJlLCAidWludDEyOCIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBl LCAidWludDEyOCIsIGZpZWxkX3R5cGUpOworKworKyAgZmllbGRfdHlwZSA9IHRkZXNjX2NyZWF0 ZV9mbGFncyAoZmVhdHVyZSwgImkzODZfbXhjc3IiLCA0KTsKKysgIHRkZXNjX2FkZF9mbGFnIChm aWVsZF90eXBlLCAwLCAiSUUiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxLCAi REUiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyLCAiWkUiKTsKKysgIHRkZXNj X2FkZF9mbGFnIChmaWVsZF90eXBlLCAzLCAiT0UiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCA0LCAiVUUiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA1LCAiUEUi KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA2LCAiREFaIik7CisrICB0ZGVzY19h ZGRfZmxhZyAoZmllbGRfdHlwZSwgNywgIklNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRf dHlwZSwgOCwgIkRNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgOSwgIlpNIik7 CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTAsICJPTSIpOworKyAgdGRlc2NfYWRk X2ZsYWcgKGZpZWxkX3R5cGUsIDExLCAiVU0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90 eXBlLCAxMiwgIlBNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTUsICJGWiIp OworKworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTAiLCAzMiwgMSwgTlVMTCwg MTI4LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMSIsIDMz LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJ4bW0yIiwgMzQsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3Jl ZyAoZmVhdHVyZSwgInhtbTMiLCAzNSwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVz Y19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tNCIsIDM2LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW01IiwgMzcsIDEsIE5VTEwsIDEy OCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTYiLCAzOCwg MSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi eG1tNyIsIDM5LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsICJteGNzciIsIDQwLCAxLCAidmVjdG9yIiwgMzIsICJpMzg2X214Y3NyIik7Cisr CisrICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2Ri LmkzODYubGludXgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJvcmlnX2VheCIs IDQxLCAxLCBOVUxMLCAzMiwgImludCIpOworKworKyAgZmVhdHVyZSA9IHRkZXNjX2NyZWF0ZV9m ZWF0dXJlIChyZXN1bHQsICJvcmcuZ251LmdkYi5pMzg2LmF2eCIpOworKyAgdGRlc2NfY3JlYXRl X3JlZyAoZmVhdHVyZSwgInltbTBoIiwgNDIsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW0xaCIsIDQzLCAxLCBOVUxMLCAxMjgsICJ1 aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tMmgiLCA0NCwgMSwg TlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInlt bTNoIiwgNDUsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsICJ5bW00aCIsIDQ2LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVz Y19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tNWgiLCA0NywgMSwgTlVMTCwgMTI4LCAidWludDEy OCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTZoIiwgNDgsIDEsIE5VTEws IDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW03aCIs IDQ5LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrCisrICB0ZGVzY19pMzg2X2F2eF9saW51 eCA9IHJlc3VsdDsKKyt9CistLS0gLi9nZGIvZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC1saW51eC54 bWwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9mZWF0dXJl cy9pMzg2L2kzODYtYXZ4LWxpbnV4LnhtbAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCAr MDIwMAorQEAgLTAsMCArMSwxOCBAQAorKzw/eG1sIHZlcnNpb249IjEuMCI/PgorKzwhLS0gQ29w eXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgICAg Q29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbiwKKysgICAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJv eWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAorKyAgICAgbm90aWNlIGFuZCB0aGlzIG5vdGlj ZSBhcmUgcHJlc2VydmVkLiAgLS0+CisrCisrPCEtLSBJMzg2IHdpdGggQVZYLSBJbmNsdWRlcyBM aW51eC1vbmx5IHNwZWNpYWwgInJlZ2lzdGVyIi4gIC0tPgorKworKzwhRE9DVFlQRSB0YXJnZXQg U1lTVEVNICJnZGItdGFyZ2V0LmR0ZCI+CisrPHRhcmdldD4KKysgIDxhcmNoaXRlY3R1cmU+aTM4 NjwvYXJjaGl0ZWN0dXJlPgorKyAgPG9zYWJpPkdOVS9MaW51eDwvb3NhYmk+CisrICA8eGk6aW5j bHVkZSBocmVmPSIzMmJpdC1jb3JlLnhtbCIvPgorKyAgPHhpOmluY2x1ZGUgaHJlZj0iMzJiaXQt c3NlLnhtbCIvPgorKyAgPHhpOmluY2x1ZGUgaHJlZj0iMzJiaXQtbGludXgueG1sIi8+CisrICA8 eGk6aW5jbHVkZSBocmVmPSIzMmJpdC1hdngueG1sIi8+CisrPC90YXJnZXQ+CistLS0gLi9nZGIv ZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgLi9nZGIvZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC5jCTIwMTAtMDQtMDMgMjE6MTI6 MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE0MiBAQAorKy8qIFRISVMgRklMRSBJUyBH RU5FUkFURUQuICBPcmlnaW5hbDogaTM4Ni1hdngueG1sICovCisrCisrI2luY2x1ZGUgImRlZnMu aCIKKysjaW5jbHVkZSAib3NhYmkuaCIKKysjaW5jbHVkZSAidGFyZ2V0LWRlc2NyaXB0aW9ucy5o IgorKworK3N0cnVjdCB0YXJnZXRfZGVzYyAqdGRlc2NfaTM4Nl9hdng7Cisrc3RhdGljIHZvaWQK Kytpbml0aWFsaXplX3RkZXNjX2kzODZfYXZ4ICh2b2lkKQorK3sKKysgIHN0cnVjdCB0YXJnZXRf ZGVzYyAqcmVzdWx0ID0gYWxsb2NhdGVfdGFyZ2V0X2Rlc2NyaXB0aW9uICgpOworKyAgc3RydWN0 IHRkZXNjX2ZlYXR1cmUgKmZlYXR1cmU7CisrICBzdHJ1Y3QgdGRlc2NfdHlwZSAqZmllbGRfdHlw ZSwgKnR5cGU7CisrCisrICBzZXRfdGRlc2NfYXJjaGl0ZWN0dXJlIChyZXN1bHQsIGJmZF9zY2Fu X2FyY2ggKCJpMzg2IikpOworKworKyAgZmVhdHVyZSA9IHRkZXNjX2NyZWF0ZV9mZWF0dXJlIChy ZXN1bHQsICJvcmcuZ251LmdkYi5pMzg2LmNvcmUiKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19j cmVhdGVfZmxhZ3MgKGZlYXR1cmUsICJpMzg2X2VmbGFncyIsIDQpOworKyAgdGRlc2NfYWRkX2Zs YWcgKGZpZWxkX3R5cGUsIDAsICJDRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUs IDEsICIiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyLCAiUEYiKTsKKysgIHRk ZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA0LCAiQUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChm aWVsZF90eXBlLCA2LCAiWkYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA3LCAi U0YiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA4LCAiVEYiKTsKKysgIHRkZXNj X2FkZF9mbGFnIChmaWVsZF90eXBlLCA5LCAiSUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCAxMCwgIkRGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTEsICJP RiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE0LCAiTlQiKTsKKysgIHRkZXNj X2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNiwgIlJGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmll bGRfdHlwZSwgMTcsICJWTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE4LCAi QUMiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxOSwgIlZJRiIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIwLCAiVklQIik7CisrICB0ZGVzY19hZGRfZmxhZyAo ZmllbGRfdHlwZSwgMjEsICJJRCIpOworKworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwg ImVheCIsIDAsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZl YXR1cmUsICJlY3giLCAxLCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVf cmVnIChmZWF0dXJlLCAiZWR4IiwgMiwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2Nf Y3JlYXRlX3JlZyAoZmVhdHVyZSwgImVieCIsIDMsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJlc3AiLCA0LCAxLCBOVUxMLCAzMiwgImRhdGFf cHRyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZWJwIiwgNSwgMSwgTlVMTCwg MzIsICJkYXRhX3B0ciIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVzaSIsIDYs IDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJl ZGkiLCA3LCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0 dXJlLCAiZWlwIiwgOCwgMSwgTlVMTCwgMzIsICJjb2RlX3B0ciIpOworKyAgdGRlc2NfY3JlYXRl X3JlZyAoZmVhdHVyZSwgImVmbGFncyIsIDksIDEsIE5VTEwsIDMyLCAiaTM4Nl9lZmxhZ3MiKTsK KysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJjcyIsIDEwLCAxLCBOVUxMLCAzMiwgImlu dDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3MiLCAxMSwgMSwgTlVMTCwg MzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImRzIiwgMTIsIDEs IE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJlcyIs IDEzLCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJl LCAiZnMiLCAxNCwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAo ZmVhdHVyZSwgImdzIiwgMTUsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0 ZV9yZWcgKGZlYXR1cmUsICJzdDAiLCAxNiwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAg dGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0MSIsIDE3LCAxLCBOVUxMLCA4MCwgImkzODdf ZXh0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3QyIiwgMTgsIDEsIE5VTEws IDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDMiLCAx OSwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVy ZSwgInN0NCIsIDIwLCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19jcmVhdGVf cmVnIChmZWF0dXJlLCAic3Q1IiwgMjEsIDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRk ZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDYiLCAyMiwgMSwgTlVMTCwgODAsICJpMzg3X2V4 dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0NyIsIDIzLCAxLCBOVUxMLCA4 MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZmN0cmwiLCAy NCwgMSwgImZsb2F0IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJmc3RhdCIsIDI1LCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2NfY3JlYXRlX3Jl ZyAoZmVhdHVyZSwgImZ0YWciLCAyNiwgMSwgImZsb2F0IiwgMzIsICJpbnQiKTsKKysgIHRkZXNj X2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmaXNlZyIsIDI3LCAxLCAiZmxvYXQiLCAzMiwgImludCIp OworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImZpb2ZmIiwgMjgsIDEsICJmbG9hdCIs IDMyLCAiaW50Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZm9zZWciLCAyOSwg MSwgImZsb2F0IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJm b29mZiIsIDMwLCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAo ZmVhdHVyZSwgImZvcCIsIDMxLCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKworKyAgZmVhdHVy ZSA9IHRkZXNjX2NyZWF0ZV9mZWF0dXJlIChyZXN1bHQsICJvcmcuZ251LmdkYi5pMzg2LnNzZSIp OworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJpZWVlX3Npbmds ZSIpOworKyAgdGRlc2NfY3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgInY0ZiIsIGZpZWxkX3R5cGUs IDQpOworKworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJpZWVl X2RvdWJsZSIpOworKyAgdGRlc2NfY3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgInYyZCIsIGZpZWxk X3R5cGUsIDIpOworKworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUs ICJpbnQ4Iik7CisrICB0ZGVzY19jcmVhdGVfdmVjdG9yIChmZWF0dXJlLCAidjE2aTgiLCBmaWVs ZF90eXBlLCAxNik7CisrCisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVy ZSwgImludDE2Iik7CisrICB0ZGVzY19jcmVhdGVfdmVjdG9yIChmZWF0dXJlLCAidjhpMTYiLCBm aWVsZF90eXBlLCA4KTsKKysKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0 dXJlLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV92ZWN0b3IgKGZlYXR1cmUsICJ2NGkzMiIs IGZpZWxkX3R5cGUsIDQpOworKworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZl YXR1cmUsICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgInYyaTY0 IiwgZmllbGRfdHlwZSwgMik7CisrCisrICB0eXBlID0gdGRlc2NfY3JlYXRlX3VuaW9uIChmZWF0 dXJlLCAidmVjMTI4Iik7CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVy ZSwgInY0ZiIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidjRfZmxvYXQiLCBmaWVsZF90 eXBlKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAidjJkIik7 CisrICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ2Ml9kb3VibGUiLCBmaWVsZF90eXBlKTsKKysg IGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAidjE2aTgiKTsKKysgIHRk ZXNjX2FkZF9maWVsZCAodHlwZSwgInYxNl9pbnQ4IiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90 eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgInY4aTE2Iik7CisrICB0ZGVzY19hZGRf ZmllbGQgKHR5cGUsICJ2OF9pbnQxNiIsIGZpZWxkX3R5cGUpOworKyAgZmllbGRfdHlwZSA9IHRk ZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ2NGkzMiIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0 eXBlLCAidjRfaW50MzIiLCBmaWVsZF90eXBlKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1l ZF90eXBlIChmZWF0dXJlLCAidjJpNjQiKTsKKysgIHRkZXNjX2FkZF9maWVsZCAodHlwZSwgInYy X2ludDY0IiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAo ZmVhdHVyZSwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2FkZF9maWVsZCAodHlwZSwgInVpbnQxMjgi LCBmaWVsZF90eXBlKTsKKysKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19jcmVhdGVfZmxhZ3MgKGZl YXR1cmUsICJpMzg2X214Y3NyIiwgNCk7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwg MCwgIklFIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMSwgIkRFIik7CisrICB0 ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMiwgIlpFIik7CisrICB0ZGVzY19hZGRfZmxhZyAo ZmllbGRfdHlwZSwgMywgIk9FIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgNCwg IlVFIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgNSwgIlBFIik7CisrICB0ZGVz Y19hZGRfZmxhZyAoZmllbGRfdHlwZSwgNiwgIkRBWiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDcsICJJTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDgsICJE TSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDksICJaTSIpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEwLCAiT00iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCAxMSwgIlVNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTIsICJQ TSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE1LCAiRloiKTsKKysKKysgIHRk ZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0wIiwgMzIsIDEsIE5VTEwsIDEyOCwgInZlYzEy OCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTEiLCAzMywgMSwgTlVMTCwg MTI4LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMiIsIDM0 LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJ4bW0zIiwgMzUsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3Jl ZyAoZmVhdHVyZSwgInhtbTQiLCAzNiwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVz Y19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tNSIsIDM3LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW02IiwgMzgsIDEsIE5VTEwsIDEy OCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTciLCAzOSwg MSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi bXhjc3IiLCA0MCwgMSwgInZlY3RvciIsIDMyLCAiaTM4Nl9teGNzciIpOworKworKyAgZmVhdHVy ZSA9IHRkZXNjX2NyZWF0ZV9mZWF0dXJlIChyZXN1bHQsICJvcmcuZ251LmdkYi5pMzg2LmF2eCIp OworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTBoIiwgNDEsIDEsIE5VTEwsIDEy OCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW0xaCIsIDQy LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJl LCAieW1tMmgiLCA0MywgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRl X3JlZyAoZmVhdHVyZSwgInltbTNoIiwgNDQsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW00aCIsIDQ1LCAxLCBOVUxMLCAxMjgsICJ1 aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tNWgiLCA0NiwgMSwg TlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInlt bTZoIiwgNDcsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsICJ5bW03aCIsIDQ4LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrCisrICB0 ZGVzY19pMzg2X2F2eCA9IHJlc3VsdDsKKyt9CistLS0gLi9nZGIvZmVhdHVyZXMvaTM4Ni9pMzg2 LWF2eC54bWwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9m ZWF0dXJlcy9pMzg2L2kzODYtYXZ4LnhtbAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCAr MDIwMAorQEAgLTAsMCArMSwxNiBAQAorKzw/eG1sIHZlcnNpb249IjEuMCI/PgorKzwhLS0gQ29w eXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgICAg Q29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbiwKKysgICAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJv eWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAorKyAgICAgbm90aWNlIGFuZCB0aGlzIG5vdGlj ZSBhcmUgcHJlc2VydmVkLiAgLS0+CisrCisrPCEtLSBJMzg2IHdpdGggQVZYIC0tPgorKworKzwh RE9DVFlQRSB0YXJnZXQgU1lTVEVNICJnZGItdGFyZ2V0LmR0ZCI+CisrPHRhcmdldD4KKysgIDxh cmNoaXRlY3R1cmU+aTM4NjwvYXJjaGl0ZWN0dXJlPgorKyAgPHhpOmluY2x1ZGUgaHJlZj0iMzJi aXQtY29yZS54bWwiLz4KKysgIDx4aTppbmNsdWRlIGhyZWY9IjMyYml0LXNzZS54bWwiLz4KKysg IDx4aTppbmNsdWRlIGhyZWY9IjMyYml0LWF2eC54bWwiLz4KKys8L3RhcmdldD4KKy0tLSAuL2dk Yi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nLmF2eAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIC4vZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cuYXZ4CTIwMTAtMDQtMDMgMjE6MTI6 MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDg0IEBACisrMjAxMC0wMy0wMyAgSC5KLiBM dSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYyAoeDg2X2xp bnV4X3Byb2Nlc3NfcXN1cHBvcnRlZCk6IFVzZQorKwlJMzg2X1hTVEFURV9TU0VfU0laRSBpbnN0 ZWFkIG9mIEkzODZfWFNUQVRFX01BWF9TSVpFLiAgVXNlCisrCUkzODZfWFNUQVRFX1NJWkUuCisr CisrMjAxMC0wMy0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkz ODctZnAuYyAoaTM4N19jYWNoZV90b194c2F2ZSk6IFVwZGF0ZWQuCisrCShpMzg3X3hzYXZlX3Rv X2NhY2hlKTogTGlrZXdpc2UuCisrCSh4ODZfeGNyMCk6IExpa2V3aXNlLgorKwkqIGxpbnV4LXg4 Ni1sb3cuYyAoeDg2X2xpbnV4X3Byb2Nlc3NfcXN1cHBvcnRlZCk6IExpa2V3aXNlLgorKworKzIw MTAtMDMtMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBNYWtlZmls ZS5pbiAoaTM4Ni14c3RhdGUubyk6IFJlbW92ZWQuCisrCisrCSogY29uZmlndXJlLnNydiAoc3J2 X3RndG9iaik6IFJlbW92ZSBpMzg2LXhzdGF0ZS5vIGZvcgorKwlpWzM0NTY3XTg2LSotbGludXgq IGFuZCB4ODZfNjQtKi1saW51eCouCisrCisrCSogaTM4Ny1mcC5jICh4ODZfeGNyMCk6IEluaXRp YWxpemVkIHRvIFhTVEFURV9TU0VfTUFTSy4KKysJKHg4Nl94Y3IwX2luaXQpOiBSZW1vdmVkLgor KworKwkqIGkzODctZnAuaCAoeDg2X3hjcjBfaW5pdCk6IFJlbW92ZWQuCisrCisrCSogbGludXgt eDg2LWxvdy5jICh4ODZfbGludXhfcHJvY2Vzc19xc3VwcG9ydGVkKTogVXNlCisrCVhTVEFURV9N QVhfU0laRV9OX09GX0lOVDY0IGFuZCBYU1RBVEVfTUFYX1NJWkUuICBHZXQgeGNyMAorKwlmcm9t IFhTQVZFIGV4dGVuZGVkIHN0YXRlLgorKworKzIwMTAtMDItMDIgIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBNYWtlZmlsZS5pbiAoY2xlYW4pOiBSZXBsYWNlIHJlZy1p Mzg2LWxpbnV4LWF2eC5jIHdpdGgKKysJcmVnLWkzODYtYXZ4LWxpbnV4LmMuCisrCShyZWcteDg2 LTY0LWF2eC5jKTogRml4ZWQuCisrCShyZWcteDg2LTY0LWF2eC1saW51eC5jKTogTGlrZXdpc2Uu CisrCisrMjAxMC0wMS0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkq IGNvbmZpZ3VyZS5zcnYgKHNydl90Z3RvYmopOiBBZGQgeHNhdmUtbmF0Lm8gZm9yCisrCWlbMzQ1 NjddODYtKi1saW51eCogYW5kIHg4Nl82NC0qLWxpbnV4Ki4KKysKKysyMDEwLTAxLTIxICBILkou IEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny1mcC5jICh4ODZfc3NlX3Vu aXQpOiBSZW5hbWVkIHRvIC4uLgorKwkoeDg2X3ZlY3Rvcl91bml0KTogVGhpcy4KKysJKHg4Nl9n ZXRfc3NlX3VuaXQpOiBSZW5hbWVkIHRvIC4uLgorKwkoeDg2X2dldF92ZWN0b3JfdW5pdCk6IFRo aXMuCisrCShpMzg3X2NhY2hlX3RvX2Z4c2F2ZSk6IFVwZGF0ZWQuCisrCSogbGludXgteDg2LWxv dy5jICh4ODZfYXJjaF9zZXR1cCk6IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUg IDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZwLmggKHg4Nl9zc2VfdW5pdCk6 IFJlbmFtZWQgdG8gLi4uCisrCSh4ODZfdmVjdG9yX3VuaXQpOiBUaGlzLgorKworKzIwMDktMTAt MTQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBNYWtlZmlsZS5pbiAo Y2xlYW4pOiBBbHNvIHJlbW92ZSByZWctaTM4Ni1hdnguYywKKysJcmVnLWkzODYtYXZ4LWxpbnV4 LmMsIHJlZy14ODYtNjQtYXZ4LmMgYW5kIHJlZy14ODYtNjQtYXZ4LWxpbnV4LmMuCisrCShyZWct aTM4Ni1hdngubyk6IE5ldyB0YXJnZXQuCisrCShyZWctaTM4Ni1hdnguYyk6IExpa2V3aXNlLgor KwkocmVnLWkzODYtYXZ4LWxpbnV4Lm8pOiBMaWtld2lzZS4KKysJKHJlZy1pMzg2LWF2eC1saW51 eC5jKTogTGlrZXdpc2UuCisrCShyZWcteDg2LTY0LWF2eC5vKTogTGlrZXdpc2UuCisrCShyZWct eDg2LTY0LWF2eC5jKTogTGlrZXdpc2UuCisrCShyZWcteDg2LTY0LWF2eC1saW51eC5vKTogTGlr ZXdpc2UuCisrCShyZWcteDg2LTY0LWF2eC1saW51eC5jKTogTGlrZXdpc2UuCisrCisrCSogZ2Ri c2VydmVyL2NvbmZpZ3VyZS5zcnYgKHNydl9yZWdvYmopOiBBZGQgcmVnLWkzODYtYXZ4LWxpbnV4 Lm8KKysJZm9yIGlbMzQ1NjddODYtKi1saW51eCouICBBZGQgcmVnLXg4Ni02NC1hdngtbGludXgu byBhbmQKKysJcmVnLWkzODYtYXZ4LWxpbnV4Lm8gZm9yIHg4Nl82NC0qLWxpbnV4Ki4KKysKKysJ KiBpMzg3LWZwLmMgKHg4Nl9zc2VfdW5pdCk6IE5ldy4KKysJKHg4Nl9nZXRfc3NlX3VuaXQpOiBM aWtld2lzZS4KKysJKGkzODdfY2FjaGVfdG9fZnhzYXZlKTogSGFuZGxlIHg4Nl9zc2VfdW5pdC4g U3VwcG9ydCBmYWtlCisrCUFWWCByZWdpc3RlcnMuCisrCShpMzg3X2Z4c2F2ZV90b19jYWNoZSk6 IExpa2V3aXNlLgorKworKwkqIGkzODctZnAuaCAoeDg2X3NzZV91bml0KTogTmV3LgorKwkoeDg2 X2dldF9zc2VfdW5pdCk6IExpa2V3aXNlLgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYyAoaW5pdF9y ZWdpc3RlcnNfaTM4Nl9hdnhfbGludXgpOiBOZXcuCisrCShpbml0X3JlZ2lzdGVyc194ODZfNjRf YXZ4X2xpbnV4KTogTGlrZXdpc2UuCisrCSh4ODZfYXJjaF9zZXR1cCk6IENhbGwgeDg2X2dldF9z c2VfdW5pdCAoKSB0byBoYW5kbGUgeDg2X3NzZV91bml0LgorLS0tIC4vZ2RiL2dkYnNlcnZlci9D aGFuZ2VMb2cueGNyCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9n ZGIvZ2Ric2VydmVyL0NoYW5nZUxvZy54Y3IJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsMzczIEBACisrMjAxMC0wMy0zMCAgSC5KLiBMdSAgPGhvbmdqaXUu bHVAaW50ZWwuY29tPgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYzogRG9uJ3QgaW5jbHVkZSA8dW5p c3RkLmg+LgorKworKzIwMTAtMDMtMjkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF91cGRhdGVfeG1sdGFyZ2V0KTogQ2Fs bCBwdHJhY2UKKysJb25seSBvbmNlLgorKworKzIwMTAtMDMtMjkgIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHVzZV94bWwpOiBOZXcuCisr CSh4ODZfbGludXhfdXBkYXRlX3htbHRhcmdldCk6IExpa2V3aXNlLgorKwkoeDg2X2xpbnV4X3By b2Nlc3NfcXN1cHBvcnRlZCk6IFVzZSB4ODZfbGludXhfdXBkYXRlX3htbHRhcmdldC4KKysJKHg4 Nl9hcmNoX3NldHVwKTogRG9uJ3QgY2FsbCBpbml0X3JlZ2lzdGVyc19hbWQ2NF9saW51eCwKKysJ aW5pdF9yZWdpc3RlcnNfaTM4Nl9saW51eC4gIERvbid0IHNldCBnZGJzZXJ2ZXJfeG1sdGFyZ2V0 LiAgVXNlCisrCXg4Nl9saW51eF91cGRhdGVfeG1sdGFyZ2V0LgorKworKwkqIHNlcnZlci5jICho YW5kbGVfcXVlcnkpOiBDYWxsIHRhcmdldF9wcm9jZXNzX3FzdXBwb3J0ZWQgd2l0aAorKwlOVUxM IHF1ZXJ5IGZpcnN0LgorKworKzIwMTAtMDMtMjkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0 ZWQpOiBSZXBsYWNlCisrCXVpbnQ2NF90IHdpdGggdW5zaWduZWQgbG9uZyBsb25nLgorKworKzIw MTAtMDMtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51eC14 ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBDaGVjaworKwkieG1sUmVn aXN0ZXJzPSIgaW5zdGVhZCBvZiAieG1sUmVnaXN0ZXJzKyIuCisrCisrMjAxMC0wMy0yOCAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYyAodGFy Z2V0X3JlZ3NldHMpOiBBbHdheXMgdXNlIEVYVEVOREVEX1JFR1MKKysJd2l0aCBOVF9YODZfWFNU QVRFLgorKworKzIwMTAtMDMtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBsaW51eC14ODYtbG93LmMgKHhtbHRhcmdldF9hbWQ2NF9saW51eF9ub194bWwpOiBOZXcu CisrCSh4bWx0YXJnZXRfaTM4Nl9saW51eF9ub194bWwpOiBMaWtld2lzZS4KKysJKHg4Nl9saW51 eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBSZW1vdmUgdXNlX3htbC4gIFVwZGF0ZQorKwlnZGJzZXJ2 ZXJfeG1sdGFyZ2V0LgorKwkoeDg2X2FyY2hfc2V0dXApOiBTZXQgZ2Ric2VydmVyX3htbHRhcmdl dCB0bworKwl4bWx0YXJnZXRfYW1kNjRfbGludXhfbm9feG1sL3htbHRhcmdldF9pMzg2X2xpbnV4 X25vX3htbC4KKysKKysJKiBzZXJ2ZXIuYyAodXNlX3htbCk6IFJlbW92ZWQuCisrCShnZXRfZmVh dHVyZXNfeG1sKTogVXBkYXRlZC4KKysJKGhhbmRsZV9xdWVyeSk6IERvbid0IGNhbGwgdGFyZ2V0 X3Byb2Nlc3NfcXN1cHBvcnRlZCB3aXRoIE5VTEwuCisrCisrCSogc2VydmVyLmggKHVzZV94bWwp OiBSZW1vdmVkLgorKworKzIwMTAtMDMtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBsaW51eC14ODYtbG93LmM6IEluY2x1ZGUgPHVuaXN0ZC5oPi4KKysJKHg4Nl9s aW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBVc2UgZ2V0cGlkLgorKworKzIwMTAtMDMtMjggIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4 Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBSZXBsYWNlCisrCXVuc2lnbmVkIGxvbmcgbG9u ZyB3aXRoIHVpbnQ2NF90LgorKworKzIwMTAtMDMtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBw b3J0ZWQpOiBTZXQgdXNlX3htbAorKwl0byAxIGlmIFhNTCBpcyBzdXBwb3J0ZWQuCisrCisrMjAx MC0wMy0yNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIHNlcnZlci5j IChoYW5kbGVfcXVlcnkpOiBEb24ndCBjaGVjayAieDg2OnhzdGF0ZT0iLgorKworKzIwMTAtMDMt MjcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93 LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBDaGVjaworKwl4bWxSZWdpc3RlcnMr IGluc3RlYWQgb2YgeDg2PXhtbC4KKysKKysJKiBzZXJ2ZXIuYyAoVVNFX1hNTCk6IERlZmF1bHQg dG8gMC4KKysJKHVzZV94bWwpOiBJbml0aWFsaXplIHRvIFVTRV9YTUwuCisrCisrMjAxMC0wMy0x MiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODctZnAuYyAoaTM4 N19jYWNoZV90b194c2F2ZSk6IFJlcGxhY2UgYml0X0kzODZfWFNUQVRFX1hYWAorKwl3aXRoIEkz ODZfWFNUQVRFX1hYWC4KKysJKGkzODdfeHNhdmVfdG9fY2FjaGUpOiBMaWtld2lzZS4KKysKKysy MDEwLTAzLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny1m cC5jIChpMzg3X2NhY2hlX3RvX3hzYXZlKTogQ2hlY2sgYml0X0kzODZfWFNUQVRFX1g4Ny4KKysJ KGkzODdfeHNhdmVfdG9fY2FjaGUpOiBMaWtld2lzZS4KKysKKysyMDEwLTAzLTA1ICBILkouIEx1 ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny1mcC5jIChpMzg3X2NhY2hlX3Rv X3hzYXZlKTogT3B0aW1pemVkLgorKworKzIwMTAtMDMtMDUgIEguSi4gTHUgIDxob25naml1Lmx1 QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZwLmMgKGkzODdfY2FjaGVfdG9feHNhdmUpOiBIYW5k bGUgdXBwZXIgWU1NIHJlZ2lzdGVycy4KKysJKGkzODdfeHNhdmVfdG9fY2FjaGUpOiBMaWtld2lz ZS4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQp OiBDaGVjayB4ODY9eG1sLgorKworKzIwMTAtMDItMTkgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBpMzg3LWZwLmMgKGkzODdfY2FjaGVfdG9feHNhdmUpOiBBbHNvIGNo ZWNrIHg4NyByZWdpc3RlcnMuCisrCShpMzg3X3hzYXZlX3RvX2NhY2hlKTogTGlrZXdpc2UuCisr CisrCSogbGludXgteDg2LWxvdy5jOiBJbmNsdWRlIDxzeXMvdWlvLmg+LgorKwkoeDg2X2xpbnV4 X3Byb2Nlc3NfcXN1cHBvcnRlZCk6IFN1cHBvcnQgQVZYIG9ubHkgaWYKKysJUFRSQUNFX0dFVFJF R1NFVCB3b3Jrcy4KKysKKysyMDEwLTAyLTEzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogaTM4Ny1mcC5jIChpMzg3X2NhY2hlX3RvX3hzYXZlKTogQ2hlY2sgeDg2X3hj cjAgaW5zdGVhZCBvZgorKwl4ODZfdmVjdG9yX3VuaXQuCisrCShpMzg3X3hzYXZlX3RvX2NhY2hl KTogTGlrZXdpc2UuCisrCSh4ODZfdmVjdG9yX3VuaXQpOiBSZW1vdmVkLgorKwkoeDg2X3ZlY3Rv cl91bml0X2luaXQpOiBMaWtld2lzZS4KKysJKHg4Nl94Y3IwKTogTmV3LgorKwkoeDg2X3hjcjBf aW5pdCk6IExpa2V3aXNlLgorKworKwkqIGkzODctZnAuaCAoeDg2X3ZlY3Rvcl91bml0KTogUmVt b3ZlZC4KKysJKHg4Nl92ZWN0b3JfdW5pdF9pbml0KTogTGlrZXdpc2UuCisrCSh4ODZfeGNyMCk6 IE5ldy4KKysJKHg4Nl94Y3IwX2luaXQpOiBMaWtld2lzZS4KKysKKysJKiBsaW51eC14ODYtbG93 LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBDaGVjayB4ODZfeGNyMAorKwlpbnN0 ZWFkIG9mIHg4Nl92ZWN0b3JfdW5pdC4KKysKKysyMDEwLTAyLTExICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogbGludXgtYXJtLWxvdy5jICh0YXJnZXRfcmVnc2V0cyk6 IEluaXRpYWxpemUgbnRfdHlwZSB0byAwLgorKwkqIGxpbnV4LWNyaXN2MzItbG93LmMgKHRhcmdl dF9yZWdzZXRzKTogTGlrZXdpc2UuCisrCSogbGludXgtbTY4ay1sb3cuYyAodGFyZ2V0X3JlZ3Nl dHMpOiBMaWtld2lzZS4KKysJKiBsaW51eC1taXBzLWxvdy5jICh0YXJnZXRfcmVnc2V0cyk6IExp a2V3aXNlLgorKwkqIGxpbnV4LXBwYy1sb3cuYyAodGFyZ2V0X3JlZ3NldHMpOiBMaWtld2lzZS4K KysJKiBsaW51eC1zMzkwLWxvdy5jICh0YXJnZXRfcmVnc2V0cyk6IExpa2V3aXNlLgorKwkqIGxp bnV4LXNoLWxvdy5jICh0YXJnZXRfcmVnc2V0cyk6IExpa2V3aXNlLgorKwkqIGxpbnV4LXNwYXJj LWxvdy5jICh0YXJnZXRfcmVnc2V0cyk6IExpa2V3aXNlLgorKwkqIGxpbnV4LXh0ZW5zYS1sb3cu YyAodGFyZ2V0X3JlZ3NldHMpOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTExICBILkouIEx1ICA8 aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogbGludXgtbG93LmMgKHJlZ3NldHNfZmV0Y2hf aW5mZXJpb3JfcmVnaXN0ZXJzKTogU2ltcGxpZnkKKysJbnRfdHlwZS4KKysJKHJlZ3NldHNfc3Rv cmVfaW5mZXJpb3JfcmVnaXN0ZXJzKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0xMCAgSC5KLiBM dSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGxpbnV4LWxvdy5jOiBJbmNsdWRlIDxz eXMvdWlvLmg+LgorKwkocmVnc2V0c19mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMpOiBTdXBwb3J0 IG50X3R5cGUuCisrCShyZWdzZXRzX3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyk6IExpa2V3aXNl LgorKworKwkqIGxpbnV4LWxvdy5oIChyZWdzZXRfaW5mbyk6IEFkZCBudF90eXBlLgorKworKwkq IGxpbnV4LXg4Ni1sb3cuYzogSW5jbHVkZSAiZWxmL2NvbW1vbi5oIi4gIERvbid0IGluY2x1ZGUK KysJIi4uL2NvbmZpZy9pMzg2L25tLWxpbnV4LXhzdGF0ZS5oIi4KKysJKFBUUkFDRV9HRVRSRUdT RVQpOiBOZXcuCisrCShQVFJBQ0VfU0VUUkVHU0VUKTogTGlrZXdpc2UuCisrCSh0YXJnZXRfcmVn c2V0cyk6IEluaXRpYWxpemUgbnRfdHlwZS4KKysKKysyMDEwLTAyLTA5ICBILkouIEx1ICA8aG9u Z2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogbGludXgteDg2LWxvdy5jOiBSZXBsYWNlIFBUUkFD RV9HRVRYU1RBVEVSRUdTIHdpdGgKKysJUFRSQUNFX0dFVFJFR1NFVCBpbiBjb21tZW50cy4KKysK KysyMDEwLTAyLTA5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogbGlu dXgteDg2LWxvdy5jOiBJbmNsdWRlICIuLi9jb25maWcvaTM4Ni9ubS1saW51eC14c3RhdGUuaCIu CisrCShQVFJBQ0VfU0VUWFNUQVRFUkVHUyk6IFJlbW92ZWQuCisrCShQVFJBQ0VfU0VUWFNUQVRF UkVHUyk6IExpa2V3aXNlLgorKwkodGFyZ2V0X3JlZ3NldHMpOiBVc2UgUFRSQUNFX0dFVFJFR1NF VC9QVFJBQ0VfU0VUUkVHU0VUIGluc3RlYWQKKysJb2YgUFRSQUNFX0dFVFhTVEFURVJFR1MvUFRS QUNFX1NFVFhTVEFURVJFR1MuCisrCSh4ODZfbGludXhfcHJvY2Vzc19xc3VwcG9ydGVkKTogQ2hl Y2sgUFRSQUNFX0dFVFJFR1NFVCBpbnN0ZWFkCisrCW9mIFBUUkFDRV9HRVRYU1RBVEVSRUdTLgor KworKzIwMTAtMDItMDYgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBp Mzg3LWZwLmMgKHg4Nl92ZWN0b3JfdW5pdF9pbml0KTogUHJvcGVybHkgY2hlY2sgeGNyMC4KKysK KysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBTZXQg dXNlX3htbAorKwl0byAwIGFuZCByZXR1cm4gZm9yIE5VTEwgcXVlcnkuICBTZXQgdXNlX3htbCB0 byAxIGlmIHRoZXJlIGlzCisrCSJ4ODY6eHN0YXRlPSIgaW4gcVN1cHBvcnRlZCBwYWNrZXQuCisr CisrCSogc2VydmVyLmMgKGdldF9mZWF0dXJlc194bWwpOiBPcHRpbWl6ZWQuCisrCShoYW5kbGVf cXVlcnkpOiBDYWxsIHRhcmdldF9wcm9jZXNzX3FzdXBwb3J0ZWQgd2l0aCBOVUxMCisrCXF1ZXJ5 IGZpcnN0LgorKworKzIwMTAtMDItMDUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiBpMzg3LWZwLmMgKGkzODdfY2FjaGVfdG9feHNhdmUpOiBSZW1vdmUgdW5zaWduZWQg ZnJvbSByYXcuCisrCShpMzg3X3hzYXZlX3RvX2NhY2hlKTogUmVtb3ZlIHVuc2lnbmVkIGZyb20g cmF3IGFuZCB4bW0uICBGaXgKKysJYSB0eXBvLgorKworKzIwMTAtMDItMDUgIEguSi4gTHUgIDxo b25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9w cm9jZXNzX3FzdXBwb3J0ZWQpOiBTZXQgdXNlX3htbAorKwl0byAwIGlmIHRoZXJlIGlzIG5vICJ4 ODY6eHN0YXRlPSIgaW4gcVN1cHBvcnRlZCBwYWNrZXQuCisrCisrCSogc2VydmVyLmMgKHVzZV94 bWwpOiBOZXcuCisrCShnZXRfZmVhdHVyZXNfeG1sKTogRG9uJ3QgdXNlIFhNTCBmaWxlIGlmIHVz ZV94bWwgaXMgMC4KKysJKGhhbmRsZV9xdWVyeSk6IEFsd2F5cyBjYWxsIHRhcmdldF9wcm9jZXNz X3FzdXBwb3J0ZWQuCisrCisrCSogc2VydmVyLmggKHVzZV94bWwpOiBOZXcuCisrCisrMjAxMC0w Mi0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIE1ha2VmaWxlLmlu IChjbGVhbik6IFVwZGF0ZWQuCisrCShpMzg2LWF2eC5vKTogTmV3LgorKwkoaTM4Ni1hdnguYyk6 IExpa2V3aXNlLgorKwkoaTM4Ni1hdngtbGludXgubyk6IExpa2V3aXNlLgorKwkoaTM4Ni1hdngt bGludXguYyk6IExpa2V3aXNlLgorKwkoeDg2LTY0LWF2eC5vKTogTGlrZXdpc2UuCisrCSh4ODYt NjQtYXZ4LmMpOiBMaWtld2lzZS4KKysJKHg4Ni02NC1hdngtbGludXgubyk6IExpa2V3aXNlLgor KwkoeDg2LTY0LWF2eC1saW51eC5jKTogTGlrZXdpc2UuCisrCisrCSogY29uZmlndXJlLnNydiAo c3J2X2kzODZfcmVnb2JqKTogQWRkIGkzODYtYXZ4Lm8uCisrCShzcnZfaTM4Nl9saW51eF9yZWdv YmopOiBBZGQgaTM4Ni1hdngtbGludXguby4KKysJKHNydl94ODZfNjRfcmVnb2JqKTogQWRkIHg4 Ni02NC1hdnguby4KKysJKHNydl94ODZfNjRfbGludXhfcmVnb2JqKTogQWRkIHg4Ni02NC1hdngt bGludXguby4KKysKKysyMDEwLTAyLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+ CisrCisrCSogY29uZmlndXJlLnNydiAoc3J2X2kzODZfMzJiaXRfeG1sZmlsZXMpOiBBZGQKKysJ aTM4Ni8zMmJpdC1hdngueG1sLgorKwkoc3J2X2kzODZfNjRiaXRfeG1sZmlsZXMpOiBBZGQgaTM4 Ni82NGJpdC1hdngueG1sLgorKwkoc3J2X2kzODZfeG1sZmlsZXMpOiBBZGQgaTM4Ni9pMzg2LWF2 eC54bWwuCisrCShzcnZfeDg2XzY0X3htbGZpbGVzKTogQWRkIGkzODYveDg2LTY0LWF2eC54bWwu CisrCShzcnZfaTM4Nl9saW51eF94bWxmaWxlcyk6IEFkZCBpMzg2L2kzODYtYXZ4LWxpbnV4Lnht bC4KKysJKHNydl94ODZfNjRfbGludXhfeG1sZmlsZXMpOiBBZGQgaTM4Ni94ODYtNjQtYXZ4LWxp bnV4LnhtbC4KKysKKysyMDEwLTAyLTA0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+ CisrCisrCSogbGludXgtbG93LmMgKGxpbnV4X3Byb2Nlc3NfcXN1cHBvcnRlZCk6IE1ha2UgaXQg dm9pZC4KKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQp OiBMaWtld2lzZS4KKysKKysJKiBsaW51eC1sb3cuaCAobGludXhfdGFyZ2V0X29wcyk6IE1ha2Ug cHJvY2Vzc19xc3VwcG9ydGVkIHZvaWQuCisrCisrCSogc2VydmVyLmMgKGhhbmRsZV9xdWVyeSk6 IE1ha2UgdGFyZ2V0X3Byb2Nlc3NfcXN1cHBvcnRlZCB2b2lkLgorKworKwkqIHRhcmdldC5oICh0 YXJnZXRfb3BzKTogTWFrZSBwcm9jZXNzX3FzdXBwb3J0ZWQgdm9pZC4KKysJKHRhcmdldF9wcm9j ZXNzX3FzdXBwb3J0ZWQpOiBNYWtlIGl0IHZvaWQuCisrCisrMjAxMC0wMi0wMyAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODctZnAuYyAoaTM4N19jYWNoZV90b194 c2F2ZSk6IFJlcGxhY2UgeG1tWzMyXSB3aXRoIHJhd1szMl0uCisrCShpMzg3X3hzYXZlX3RvX2Nh Y2hlKTogT3B0aW1pemUgeHN0YXRlX2J2ID09IDAuCisrCisrMjAxMC0wMi0wMyAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODctZnAuYyAoaTM4N19jYWNoZV90b194 c2F2ZSk6IFJlbW92ZSBjb2xsZWN0X3JlZ2lzdGVyX3BhcnQuCisrCShpMzg3X3hzYXZlX3RvX2Nh Y2hlKTogUmVtb3ZlIHN1cHBseV9yZWdpc3Rlcl9wYXJ0LgorKworKwkqIHJlZ2NhY2hlLmMgKHN1 cHBseV9yZWdpc3Rlcl9wYXJ0KTogUmVtb3ZlZC4KKysJKGNvbGxlY3RfcmVnaXN0ZXJfcGFydCk6 IExpa2V3aXNlLgorKwkqIHJlZ2NhY2hlLmggKHN1cHBseV9yZWdpc3Rlcl9wYXJ0KTogTGlrZXdp c2UuCisrCShjb2xsZWN0X3JlZ2lzdGVyX3BhcnQpOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTAy ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogTWFrZWZpbGUuaW4gKHhz dGF0ZS1uYXQubyk6IFJlbmFtZWQgdG8gLi4uCisrCShpMzg2LXhzdGF0ZS5vKTogVGhpcy4KKysK KysJKiBjb25maWd1cmUuc3J2IChzcnZfdGd0b2JqKTogQWRkIGkzODYteHN0YXRlLm8gaW5zdGVh ZCBvZgorKwl4c3RhdGUtbmF0Lm8gZm9yIGlbMzQ1NjddODYtKi1saW51eCogYW5kIHg4Nl82NC0q LWxpbnV4Ki4KKysKKysJKiBpMzg3LWZwLmM6IEluY2x1ZGUgImkzODYteHN0YXRlLmgiIGluc3Rl YWQgb2YgInhzdGF0ZS1uYXQuaCIuCisrCSogbGludXgteDg2LWxvdy5jOiBMaWtld2lzZS4KKysK KysyMDEwLTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4 Ny1mcC5jIChpMzg3X2NhY2hlX3RvX3hzYXZlKTogQWRkIGFub3RoZXIgbWlzc2luZyBicmVhay4K KysKKysyMDEwLTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSog aTM4Ny1mcC5jIChpMzg3X2NhY2hlX3RvX3hzYXZlKTogQWRkIHRoZSBtaXNzaW5nIGJyZWFrLgor KworKzIwMTAtMDItMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBy ZWdjYWNoZS5jIChzdXBwbHlfcmVnaXN0ZXJfcGFydCk6IENsZWFyIHJlZ2NhY2hlIGlmIGJ1ZiBp cworKwlOVUxMLgorKworKzIwMTAtMDItMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQp OiBBbHdheXMKKysJaW5pdGlhbGl6ZSBzaXplIGFuZCB4Y3IwLgorKworKzIwMTAtMDItMDIgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZwLmMgKHg4Nl92ZWN0 b3JfdW5pdF9pbml0KTogU3VwcG9ydCBvbmx5IHdoYXQgYm90aCBnZGIKKysJYW5kIGhvc3Qgc3Vw cG9ydC4KKysKKysyMDEwLTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Cisr CisrCSogaTM4Ny1mcC5jIChpMzg3X2NhY2hlX3RvX3hzYXZlKTogQ2xlYXIgcGFydCBpbiB2ZWN0 b3IgcmVnaXN0ZXJzCisrCWlmIGl0cyBiaXQgaW4geHN0YXRfYnYgaXMgemVyby4gIFVwZGF0ZSB4 c3RhdF9idiBpZiBuZWVkZWQuCisrCShpMzg3X3hzYXZlX3RvX2NhY2hlKTogQ2xlYXIgcGFydCBp biB2ZWN0b3IgcmVnaXN0ZXJzIGlmIGl0cyBiaXQKKysJaW4geHN0YXRfYnYgaXMgemVyby4KKysK KysJKiByZWdjYWNoZS5jIChzdXBwbHlfcmVnaXN0ZXIpOiBDbGVhciByZWdjYWNoZSBpZiBidWYg aXMgTlVMTC4KKysKKysyMDEwLTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+ CisrCisrCSogaTM4Ny1mcC5jIChpMzg3X2NhY2hlX3RvX3hzYXZlKTogUmVtb3ZlIHhjcjAuCisr CShpMzg3X3hzYXZlX3RvX2NhY2hlKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0wMiAgSC5KLiBM dSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODctZnAuYyAoeDg2X3ZlY3Rvcl91 bml0X2luaXQpOiBVcGRhdGVkLgorKwkqIGkzODctZnAuaCAoeDg2X3ZlY3Rvcl91bml0X2luaXQp OiBMaWtld2lzZS4KKysKKysJKiBsaW51eC1sb3cuYyAobGludXhfdXBkYXRlX3g4Nl94c3RhdGVf c2l6ZSk6IFJlbmFtZWQgdG8gLi4uCisrCShsaW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBUaGlz LiAgVXBkYXRlZC4KKysJKGxpbnV4X3RhcmdldF9vcHMpOiBVcGRhdGVkLgorKworKwkqIGxpbnV4 LWxvdy5oIChsaW51eF90YXJnZXRfb3BzKTogUmVwbGFjZSB1cGRhdGVfeDg2X3hzdGF0ZV9zaXpl CisrCXdpdGggcHJvY2Vzc19xc3VwcG9ydGVkLgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYyAoeDg2 X2xpbnV4X3VwZGF0ZV94ODZfeHN0YXRlX3NpemUpOiBSZW5hbWVkCisrCXRvIC4uLgorKwkoeDg2 X2xpbnV4X3Byb2Nlc3NfcXN1cHBvcnRlZCk6IFRoaXMuICBBc3NlbWJsZSBxU3VwcG9ydGVkIEFD Sy4KKysKKysJKiBzZXJ2ZXIuYyAoaGFuZGxlX3F1ZXJ5KTogQ2FsbCB0YXJnZXRfcHJvY2Vzc19x c3VwcG9ydGVkCisrCWZvciB1bmhhbmRsZWQgcXVlcnkuCisrCisrCSogdGFyZ2V0LmggKHRhcmdl dF9vcHMpOiBSZXBsYWNlIHVwZGF0ZV94ODZfeHN0YXRlX3NpemUgd2l0aAorKwlwcm9jZXNzX3Fz dXBwb3J0ZWQuCisrCSh0YXJnZXRfdXBkYXRlX3g4Nl94c3RhdGVfc2l6ZSk6IFJlbW92ZWQuCisr CSh0YXJnZXRfcHJvY2Vzc19xc3VwcG9ydGVkKTogTmV3LgorKworKzIwMTAtMDItMDEgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZwLmMgKGkzODdfY2FjaGVf dG9feHNhdmUpOiBSZW1vdmUgeHN0YXRlX2J2LgorKwkoaTM4N194c2F2ZV90b19jYWNoZSk6IExp a2V3aXNlLgorKworKzIwMTAtMDItMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiBpMzg3LWZwLmMgKHg4Nl92ZWN0b3JfdW5pdF9pbml0KTogQWRkIGFuZCBjaGVjayBz aXplIGFyZ3VtZW50LgorKworKwkqIGkzODctZnAuaCAoeDg2X3ZlY3Rvcl91bml0KTogUmVtb3Zl IHVua25vd24uCisrCSh4ODZfdmVjdG9yX3VuaXRfaW5pdCk6IEFkZCBzaXplIGFyZ3VtZW50Lgor KworKwkqIGxpbnV4LWxvdy5jIChsaW51eF91cGRhdGVfeDg2X3hzdGF0ZV9zaXplKTogTmV3Lgor KwkobGludXhfdGFyZ2V0X29wcyk6IEFkZCBsaW51eF91cGRhdGVfeDg2X3hzdGF0ZV9zaXplLgor KworKwkqIGxpbnV4LWxvdy5oIChsaW51eF90YXJnZXRfb3BzKTogQWRkIHVwZGF0ZV94ODZfeHN0 YXRlX3NpemUuCisrCisrCSogbGludXgteDg2LWxvdy5jICh4ODZfdXBkYXRlX3hzdGF0ZXJlZ3Nl dF9zaXplKTogUmVuYW1lZCB0bworKwkuLi4KKysJKHg4Nl9saW51eF91cGRhdGVfeDg2X3hzdGF0 ZV9zaXplKTogVGhpcy4gIFVwZGF0ZWQuCisrCSh4ODZfYXJjaF9zZXR1cCk6IERvbid0IGNhbGwg eDg2X3VwZGF0ZV94c3RhdGVyZWdzZXRfc2l6ZS4KKysJKHRoZV9sb3dfdGFyZ2V0KTogQWRkIHg4 Nl9saW51eF91cGRhdGVfeDg2X3hzdGF0ZV9zaXplLgorKworKwkqIHNlcnZlci5jIChoYW5kbGVf cXVlcnkpOiBIYW5kbGUgIng4Njp4c3RhdGU6U0laRSIuCisrCisrCSogdGFyZ2V0LmggKHRhcmdl dF9vcHMpOiBBZGQgdXBkYXRlX3g4Nl94c3RhdGVfc2l6ZS4KKysJKHRhcmdldF91cGRhdGVfeDg2 X3hzdGF0ZV9zaXplKTogTmV3LgorKworKzIwMTAtMDEtMzEgIEguSi4gTHUgIDxob25naml1Lmx1 QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZwLmMgKGkzODdfY2FjaGVfdG9feHNhdmUpOiBIYW5k bGUgeGNyMCBhbmQgeHN0YXRlX2J2CisrCW9ubHkgZm9yIEFWWCBhbmQgYWJvdmUuCisrCShpMzg3 X3hzYXZlX3RvX2NhY2hlKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0zMSAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODctZnAuYyAoaTM4N194c2F2ZSk6IEFkZCB4 Y3IwIGFuZCB4c3RhdGVfYnYuCisrCShpMzg3X2NhY2hlX3RvX3hzYXZlKTogSGFuZGxlIHhjcjAg YW5kIHhzdGF0ZV9idi4KKysJKGkzODdfeHNhdmVfdG9fY2FjaGUpOiBMaWtld2lzZS4KKysKKysy MDEwLTAxLTI5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny1m cC5jICh4ODZfdmVjdG9yX3VuaXRfaW5pdCk6IFVwZGF0ZWQuCisrCSogbGludXgteDg2LWxvdy5j ICh4ODZfdXBkYXRlX3hzdGF0ZXJlZ3NldF9zaXplKTogTGlrZXdpc2UuCistLS0gLi9nZGIvZ2Ri c2VydmVyL0NoYW5nZUxvZy54bWwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyAuL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nLnhtbAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAw MDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw2OCBAQAorKzIwMTAtMDItMDggIEguSi4gTHUgIDxo b25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKGluaXRfcmVnaXN0 ZXJzX2kzODZfbGludXgpOiBVcGRhdGUgY29tbWVudHMuCisrCShpbml0X3JlZ2lzdGVyc19hbWQ2 NF9saW51eCk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDcgIEguSi4gTHUgIDxob25naml1Lmx1 QGludGVsLmNvbT4KKysKKysJKiBNYWtlZmlsZS5pbjogUmVwbGFjZSB4ODYtNjQgd2l0aCBhbWQ2 NC4KKysKKysJKiBjb25maWd1cmUuc3J2OiBSZXBsYWNlIHg4Ni02NC94ODZfNjQgd2l0aCBhbWQ2 NC4KKysKKysJKiBsaW51eC14ODYtbG93LmM6IFJlcGxhY2UgeDg2XzY0IHdpdGggYW1kNjQuCisr CisrMjAxMC0wMi0wNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGNv bmZpZ3VyZS5zcnYgKHNydl9pMzg2X3JlZ29iaik6IE5ldy4KKysJKHNydl9pMzg2X2xpbnV4X3Jl Z29iaik6IExpa2V3aXNlLgorKwkoc3J2X3g4Nl82NF9yZWdvYmopOiBMaWtld2lzZS4KKysJKHNy dl94ODZfNjRfbGludXhfcmVnb2JqKTogTGlrZXdpc2UuCisrCShpWzM0NTY3XTg2LSotY3lnd2lu Kik6IFNldCBzcnZfcmVnb2JqIHRvICRzcnZfaTM4Nl9yZWdvYmouCisrCShpWzM0NTY3XTg2LSot bWluZ3czMmNlKik6IExpa2V3aXNlLgorKwkoaVszNDU2N104Ni0qLW1pbmd3Kik6IExpa2V3aXNl LgorKwkoaVszNDU2N104Ni0qLW50byopOiBMaWtld2lzZS4KKysJKGlbMzQ1NjddODYtKi1saW51 eCopOiBTZXQgc3J2X3JlZ29iaiB0byAkc3J2X2kzODZfbGludXhfcmVnb2JqCisrCWFuZCAkc3J2 X3g4Nl82NF9saW51eF9yZWdvYmouCisrCSh4ODZfNjQtKi1saW51eCopOiBMaWtld2lzZS4KKysK KysyMDEwLTAyLTA0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogY29u ZmlndXJlLnNydiAoc3J2X2kzODZfMzJiaXRfeG1sZmlsZXMpOiBOZXcuCisrCShzcnZfaTM4Nl82 NGJpdF94bWxmaWxlcyk6IExpa2V3aXNlLgorKwkoc3J2X2kzODZfeG1sZmlsZXMpOiBMaWtld2lz ZS4KKysJKHNydl94ODZfNjRfeG1sZmlsZXMpOiBMaWtld2lzZS4KKysJKHNydl9pMzg2X2xpbnV4 X3htbGZpbGVzKTogTGlrZXdpc2UuCisrCShzcnZfeDg2XzY0X2xpbnV4X3htbGZpbGVzKTogTGlr ZXdpc2UuCisrCShpWzM0NTY3XTg2LSotY3lnd2luKik6IFNldCBzcnZfeG1sZmlsZXMgdG8gJHNy dl9pMzg2X3htbGZpbGVzLgorKwkoaVszNDU2N104Ni0qLW1pbmd3MzJjZSopOiBMaWtld2lzZS4K KysJKGlbMzQ1NjddODYtKi1taW5ndyopOiBMaWtld2lzZS4KKysJKGlbMzQ1NjddODYtKi1udG8q KTogTGlrZXdpc2UuCisrCShpWzM0NTY3XTg2LSotbGludXgqKTogU2V0IHNydl94bWxmaWxlcyB0 bworKwkkc3J2X2kzODZfbGludXhfeG1sZmlsZXMgYW5kICRzcnZfeDg2XzY0X2xpbnV4X3htbGZp bGVzLgorKwkoeDg2XzY0LSotbGludXgqKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0wMyAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIE1ha2VmaWxlLmluIChjbGVhbik6 IFJlcGxhY2UgcmVnLWkzODYuYywgcmVnLXg4Ni02NC5jLAorKwlyZWctaTM4Ni1saW51eC5jIGFu ZCByZWcteDg2LTY0LWxpbnV4LmMgd2l0aCBpMzg2LmMsIHg4Ni02NC5jLAorKwlpMzg2LWxpbnV4 LmMgYW5kIHg4Ni02NC1saW51eC5jLgorKwkocmVnLWkzODYubyk6IFJlbW92ZWQuCisrCShyZWct aTM4Ni5jKTogTGlrZXdpc2UuCisrCShyZWctaTM4Ni1saW51eC5vKTogTGlrZXdpc2UuCisrCShy ZWctaTM4Ni1saW51eC5jKTogTGlrZXdpc2UuCisrCShyZWcteDg2LTY0Lm8pOiBMaWtld2lzZS4K KysJKHJlZy14ODYtNjQuYyk6IExpa2V3aXNlLgorKwkocmVnLXg4Ni02NC1saW51eC5vKTogTGlr ZXdpc2UuCisrCShyZWcteDg2LTY0LWxpbnV4LmMpOiBMaWtld2lzZS4KKysJKGkzODYubyk6IE5l dy4KKysJKGkzODYuYyk6IExpa2V3aXNlLgorKwkoaTM4Ni1saW51eC5vKTogTGlrZXdpc2UuCisr CShpMzg2LWxpbnV4LmMpOiBMaWtld2lzZS4KKysJKHg4Ni02NC5vKTogTGlrZXdpc2UuCisrCSh4 ODYtNjQuYyk6IExpa2V3aXNlLgorKwkoeDg2LTY0LWxpbnV4Lm8pOiBMaWtld2lzZS4KKysJKHg4 Ni02NC1saW51eC5jKTogTGlrZXdpc2UuCisrCisrCSogY29uZmlndXJlLnNydjogUmVwbGFjZSBy ZWctaTM4Ni5vLCByZWcteDg2LTY0Lm8sCisrCXJlZy1pMzg2LWxpbnV4Lm8gYW5kIHJlZy14ODYt NjQtbGludXgubyB3aXRoIGkzODYubywgeDg2LTY0Lm8sCisrCWkzODYtbGludXgubyBhbmQgeDg2 LTY0LWxpbnV4Lm8uCistLS0gLi9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZy54c3RhdGUJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdl TG9nLnhzdGF0ZQkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCAr MSw4OSBAQAorKzIwMTAtMDEtMzEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBpMzg3LWZwLmMgKGkzODdfeHNhdmUpOiBDb3JyZWN0IGxheW91dC4KKysKKysyMDEwLTAx LTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogbGludXgteDg2LWxv dy5jICh4ODZfdXBkYXRlX3hzdGF0ZXJlZ3NldF9zaXplKTogVXNlCisrCWkzODZfeHN0YXRlLnNp emUuCisrCisrMjAxMC0wMS0yNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGxpbnV4LXg4Ni1sb3cuYyAoeDg2X3VwZGF0ZV94c3RhdGVyZWdzZXRfc2l6ZSk6IENhbGwK KysJeDg2X3ZlY3Rvcl91bml0X2luaXQgaGVyZS4gVHVybiBvZmYgb3RoZXIgRlAgUFRSQUNFIHJl cXVlc3RzCisrCW9ubHkgb24gQVZYIGhvc3QuCisrCSh4ODZfYXJjaF9zZXR1cCk6IERvbid0IGNh bGwgeDg2X3ZlY3Rvcl91bml0X2luaXQgaGVyZS4KKysKKysyMDEwLTAxLTI2ICBILkouIEx1ICA8 aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogbGludXgteDg2LWxvdy5jICh4ODZfdXBkYXRl X3hzdGF0ZXJlZ3NldF9zaXplKTogVXBkYXRlCisrCXNpemUgZm9yIFBUUkFDRV9HRVRYU1RBVEVS RUdTIG9ubHkgaWYgaXQgaXMgc3VwcG9ydGVkLgorKworKzIwMTAtMDEtMjYgIEguSi4gTHUgIDxo b25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl91cGRhdGVf eHN0YXRlcmVnc2V0X3NpemUpOiBVc2Ugb25seQorKwlQVFJBQ0VfR0VUWFNUQVRFUkVHUyBpZiBp dCBpcyBzdXBwb3J0ZWQuCisrCisrMjAxMC0wMS0yNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYyAoeDg2X3VwZGF0ZV94c3RhdGVyZWdzZXRf c2l6ZSk6IEZvciBBVlgsCisrCW9ubHkgdXNlIFBUUkFDRV9HRVRYU1RBVEVSRUdTLgorKworKzIw MTAtMDEtMjYgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZw LmMgKGkzODdfY2FjaGVfdG9feHNhdmUpOiBGaW5kIHltbTAgZm9yIEFWWC4KKysJKGkzODdfeHNh dmVfdG9fY2FjaGUpOiBMaWtld2lzZS4KKysKKysyMDEwLTAxLTI1ICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogTWFrZWZpbGUuaW4gKHhzYXZlLW5hdC5vKTogUmVuYW1l ZCB0byAuLi4KKysJKHhzdGF0ZS1uYXQubyk6IFRoaXMuCisrCisrCSogY29uZmlndXJlLnNydiAo c3J2X3RndG9iaik6IEFkZCB4c3RhdGUtbmF0Lm8gaW5zdGVhZCBvZgorKwl4c2F2ZS1uYXQubyBm b3IgaVszNDU2N104Ni0qLWxpbnV4KiBhbmQgeDg2XzY0LSotbGludXgqLgorKworKwkqIGkzODct ZnAuYzogSW5jbHVkZSAieHN0YXRlLW5hdC5oIiBpbnN0ZWFkIG9mICJ4c2F2ZS1uYXQuaCIuCisr CSogbGludXgteDg2LWxvdy5jOiBMaWtld2lzZS4KKysKKysyMDEwLTAxLTIyICBILkouIEx1ICA8 aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogcmVnY2FjaGUuYyAoc3VwcGx5X3JlZ2lzdGVy X3BhcnQpOiBDaGFuZ2Ugc2l6ZSB0byB1bnNpZ25lZCBpbnQuCisrCShjb2xsZWN0X3JlZ2lzdGVy X3BhcnQpOiBMaWtld2lzZS4KKysJKiByZWdjYWNoZS5oIChzdXBwbHlfcmVnaXN0ZXJfcGFydCk6 IExpa2V3aXNlLgorKwkoY29sbGVjdF9yZWdpc3Rlcl9wYXJ0KTogTGlrZXdpc2UuCisrCisrMjAx MC0wMS0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGxpbnV4LXg4 Ni1sb3cuYzogSW5jbHVkZSAieHNhdmUtbmF0LmgiCisrCShQVFJBQ0VfR0VUWFNUQVRFUkVHUyk6 IE5ldy4KKysJKFBUUkFDRV9TRVRYU1RBVEVSRUdTKTogTGlrZXdpc2UuCisrCSh4ODZfZmlsbF94 c3RhdGVyZWdzZXQpOiBMaWtld2lzZS4KKysJKHg4Nl9zdG9yZV94c3RhdGVyZWdzZXQpOiBMaWtl d2lzZS4KKysJKHg4Nl91cGRhdGVfeHN0YXRlcmVnc2V0X3NpemUpOiBMaWtld2lzZS4KKysJKHRh cmdldF9yZWdzZXRzKTogQWRkIFBUUkFDRV9HRVRYU1RBVEVSRUdTIGVudHJ5LgorKwkoeDg2X2Fy Y2hfc2V0dXApOiBDYWxsIHg4Nl91cGRhdGVfeHN0YXRlcmVnc2V0X3NpemUuCisrCisrMjAxMC0w MS0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGNvbmZpZ3VyZS5z cnYgKHNydl90Z3RvYmopOiBBZGQgeHNhdmUtbmF0Lm8gZm9yCisrCWlbMzQ1NjddODYtKi1saW51 eCogYW5kIHg4Nl82NC0qLWxpbnV4Ki4KKysKKysJKiBpMzg3LWZwLmMgKGkzODdfeHNhdmUpOiBO ZXcuCisrCShpMzg3X2NhY2hlX3RvX3hzYXZlKTogTGlrZXdpc2UuCisrCShpMzg3X3hzYXZlX3Rv X2NhY2hlKTogTGlrZXdpc2UuCisrCSh4ODZfdmVjdG9yX3VuaXQpOiBMaWtld2lzZS4KKysJKHg4 Nl92ZWN0b3JfdW5pdF9pbml0KTogTGlrZXdpc2UuCisrCSogMzg3LWZwLmggKGkzODdfY2FjaGVf dG9feHNhdmUpOiBMaWtld2lzZS4KKysJKGkzODdfeHNhdmVfdG9fY2FjaGUpOiBMaWtld2lzZS4K KysJKHg4Nl92ZWN0b3JfdW5pdCk6IExpa2V3aXNlLgorKwkoeDg2X3ZlY3Rvcl91bml0X2luaXQp OiBMaWtld2lzZS4KKysJKiByZWdjYWNoZS5jIChzdXBwbHlfcmVnaXN0ZXJfcGFydCk6IExpa2V3 aXNlLgorKwkoY29sbGVjdF9yZWdpc3Rlcl9wYXJ0KTogTGlrZXdpc2UuCisrCSogcmVnY2FjaGUu aCAoc3VwcGx5X3JlZ2lzdGVyX3BhcnQpOiBMaWtld2lzZS4KKysJKGNvbGxlY3RfcmVnaXN0ZXJf cGFydCk6IExpa2V3aXNlLgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYyAoeDg2X2FyY2hfc2V0dXAp OiBDYWxsIHg4Nl92ZWN0b3JfdW5pdF9pbml0LgorKworKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxo b25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBNYWtlZmlsZS5pbiAoeHNhdmUtbmF0Lm8pOiBO ZXcuCistLS0gLi9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCTIwMTAtMDQtMDMgMjA6NTk6NTIu MDAwMDAwMDAwICswMjAwCisrKysgLi9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCTIwMTAtMDQt MDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMjE3LDYgKzIxNyw4IEBAIGNsZWFuOgor IAlybSAtZiBwb3dlcnBjLWlzYTIwNS12c3g2NGwuYworIAlybSAtZiBzMzkwLWxpbnV4MzIuYyBz MzkwLWxpbnV4NjQuYyBzMzkweC1saW51eDY0LmMKKyAJcm0gLWYgeG1sLWJ1aWx0aW4uYyBzdGFt cC14bWwKKysJcm0gLWYgaTM4Ni1hdnguYyBpMzg2LWF2eC1saW51eC5jCisrCXJtIC1mIGFtZDY0 LWF2eC5jIGFtZDY0LWF2eC1saW51eC5jCisgCisgbWFpbnRhaW5lci1jbGVhbiByZWFsY2xlYW4g ZGlzdGNsZWFuOiBjbGVhbgorIAlybSAtZiBubS5oIHRtLmggeG0uaCBjb25maWcuc3RhdHVzIGNv bmZpZy5oIHN0YW1wLWggY29uZmlnLmxvZworQEAgLTM1MSw2ICszNTMsMTIgQEAgaTM4Ni5jIDog JChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9pMworIGkzODYtbGludXgubyA6IGkzODYtbGlu dXguYyAkKHJlZ2RlZl9oKQorIGkzODYtbGludXguYyA6ICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRz L2kzODYvaTM4Ni1saW51eC5kYXQgJChyZWdkYXRfc2gpCisgCSQoU0hFTEwpICQocmVnZGF0X3No KSAkKHNyY2RpcikvLi4vcmVnZm9ybWF0cy9pMzg2L2kzODYtbGludXguZGF0IGkzODYtbGludXgu YworK2kzODYtYXZ4Lm8gOiBpMzg2LWF2eC5jICQocmVnZGVmX2gpCisraTM4Ni1hdnguYyA6ICQo c3JjZGlyKS8uLi9yZWdmb3JtYXRzL2kzODYvaTM4Ni1hdnguZGF0ICQocmVnZGF0X3NoKQorKwkk KFNIRUxMKSAkKHJlZ2RhdF9zaCkgJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LWF2 eC5kYXQgaTM4Ni1hdnguYworK2kzODYtYXZ4LWxpbnV4Lm8gOiBpMzg2LWF2eC1saW51eC5jICQo cmVnZGVmX2gpCisraTM4Ni1hdngtbGludXguYyA6ICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL2kz ODYvaTM4Ni1hdngtbGludXguZGF0ICQocmVnZGF0X3NoKQorKwkkKFNIRUxMKSAkKHJlZ2RhdF9z aCkgJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LWF2eC1saW51eC5kYXQgaTM4Ni1h dngtbGludXguYworIHJlZy1pYTY0Lm8gOiByZWctaWE2NC5jICQocmVnZGVmX2gpCisgcmVnLWlh NjQuYyA6ICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL3JlZy1pYTY0LmRhdCAkKHJlZ2RhdF9zaCkK KyAJJChTSEVMTCkgJChyZWdkYXRfc2gpICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL3JlZy1pYTY0 LmRhdCByZWctaWE2NC5jCitAQCAtNDM4LDYgKzQ0NiwxMiBAQCBhbWQ2NC5jIDogJChzcmNkaXIp Ly4uL3JlZ2Zvcm1hdHMvaTM4Ni9hCisgYW1kNjQtbGludXgubyA6IGFtZDY0LWxpbnV4LmMgJChy ZWdkZWZfaCkKKyBhbWQ2NC1saW51eC5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9h bWQ2NC1saW51eC5kYXQgJChyZWdkYXRfc2gpCisgCSQoU0hFTEwpICQocmVnZGF0X3NoKSAkKHNy Y2RpcikvLi4vcmVnZm9ybWF0cy9pMzg2L2FtZDY0LWxpbnV4LmRhdCBhbWQ2NC1saW51eC5jCisr YW1kNjQtYXZ4Lm8gOiBhbWQ2NC1hdnguYyAkKHJlZ2RlZl9oKQorK2FtZDY0LWF2eC5jIDogJChz cmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1hdnguZGF0ICQocmVnZGF0X3NoKQorKwkk KFNIRUxMKSAkKHJlZ2RhdF9zaCkgJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1h dnguZGF0IGFtZDY0LWF2eC5jCisrYW1kNjQtYXZ4LWxpbnV4Lm8gOiBhbWQ2NC1hdngtbGludXgu YyAkKHJlZ2RlZl9oKQorK2FtZDY0LWF2eC1saW51eC5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1h dHMvaTM4Ni9hbWQ2NC1hdngtbGludXguZGF0ICQocmVnZGF0X3NoKQorKwkkKFNIRUxMKSAkKHJl Z2RhdF9zaCkgJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1hdngtbGludXguZGF0 IGFtZDY0LWF2eC1saW51eC5jCisgcmVnLXh0ZW5zYS5vIDogcmVnLXh0ZW5zYS5jICQocmVnZGVm X2gpCisgcmVnLXh0ZW5zYS5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvcmVnLXh0ZW5zYS5k YXQgJChyZWdkYXRfc2gpCisgCSQoU0hFTEwpICQocmVnZGF0X3NoKSAkKHNyY2RpcikvLi4vcmVn Zm9ybWF0cy9yZWcteHRlbnNhLmRhdCByZWcteHRlbnNhLmMKKy0tLSAuL2dkYi9nZGJzZXJ2ZXIv Y29uZmlndXJlLnNydgkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIC4v Z2RiL2dkYnNlcnZlci9jb25maWd1cmUuc3J2CTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAw ICswMjAwCitAQCAtMjIsMTcgKzIyLDE3IEBACisgIyBEZWZhdWx0IGhvc3Rpb19sYXN0X2Vycm9y IGltcGxlbWVudGF0aW9uCisgc3J2X2hvc3Rpb19lcnJfb2Jqcz0iaG9zdGlvLWVycm5vLm8iCisg Cistc3J2X2kzODZfcmVnb2JqPWkzODYubworLXNydl9pMzg2X2xpbnV4X3JlZ29iaj1pMzg2LWxp bnV4Lm8KKy1zcnZfYW1kNjRfcmVnb2JqPWFtZDY0Lm8KKy1zcnZfYW1kNjRfbGludXhfcmVnb2Jq PWFtZDY0LWxpbnV4Lm8KKytzcnZfaTM4Nl9yZWdvYmo9ImkzODYubyBpMzg2LWF2eC5vIgorK3Ny dl9pMzg2X2xpbnV4X3JlZ29iaj0iaTM4Ni1saW51eC5vIGkzODYtYXZ4LWxpbnV4Lm8iCisrc3J2 X2FtZDY0X3JlZ29iaj0iYW1kNjQubyB4ODYtNjQtYXZ4Lm8iCisrc3J2X2FtZDY0X2xpbnV4X3Jl Z29iaj0iYW1kNjQtbGludXgubyBhbWQ2NC1hdngtbGludXgubyIKKyAKKy1zcnZfaTM4Nl8zMmJp dF94bWxmaWxlcz0iaTM4Ni8zMmJpdC1jb3JlLnhtbCBpMzg2LzMyYml0LXNzZS54bWwiCistc3J2 X2kzODZfNjRiaXRfeG1sZmlsZXM9ImkzODYvNjRiaXQtY29yZS54bWwgaTM4Ni82NGJpdC1zc2Uu eG1sIgorLXNydl9pMzg2X3htbGZpbGVzPSJpMzg2L2kzODYueG1sICRzcnZfaTM4Nl8zMmJpdF94 bWxmaWxlcyIKKy1zcnZfYW1kNjRfeG1sZmlsZXM9ImkzODYvYW1kNjQueG1sICRzcnZfaTM4Nl82 NGJpdF94bWxmaWxlcyIKKy1zcnZfaTM4Nl9saW51eF94bWxmaWxlcz0iaTM4Ni9pMzg2LWxpbnV4 LnhtbCBpMzg2LzMyYml0LWxpbnV4LnhtbCAkc3J2X2kzODZfMzJiaXRfeG1sZmlsZXMiCistc3J2 X2FtZDY0X2xpbnV4X3htbGZpbGVzPSJpMzg2L2FtZDY0LWxpbnV4LnhtbCBpMzg2LzY0Yml0LWxp bnV4LnhtbCAkc3J2X2kzODZfNjRiaXRfeG1sZmlsZXMiCisrc3J2X2kzODZfMzJiaXRfeG1sZmls ZXM9ImkzODYvMzJiaXQtY29yZS54bWwgaTM4Ni8zMmJpdC1zc2UueG1sIGkzODYvMzJiaXQtYXZ4 LnhtbCIKKytzcnZfaTM4Nl82NGJpdF94bWxmaWxlcz0iaTM4Ni82NGJpdC1jb3JlLnhtbCBpMzg2 LzY0Yml0LXNzZS54bWwgaTM4Ni82NGJpdC1hdngueG1sIgorK3Nydl9pMzg2X3htbGZpbGVzPSJp Mzg2L2kzODYueG1sIGkzODYvaTM4Ni1hdngueG1sICRzcnZfaTM4Nl8zMmJpdF94bWxmaWxlcyIK KytzcnZfYW1kNjRfeG1sZmlsZXM9ImkzODYvYW1kNjQueG1sIGkzODYvYW1kNjQtYXZ4LnhtbCAk c3J2X2kzODZfNjRiaXRfeG1sZmlsZXMiCisrc3J2X2kzODZfbGludXhfeG1sZmlsZXM9ImkzODYv aTM4Ni1saW51eC54bWwgaTM4Ni9pMzg2LWF2eC1saW51eC54bWwgaTM4Ni8zMmJpdC1saW51eC54 bWwgJHNydl9pMzg2XzMyYml0X3htbGZpbGVzIgorK3Nydl9hbWQ2NF9saW51eF94bWxmaWxlcz0i aTM4Ni9hbWQ2NC1saW51eC54bWwgaTM4Ni9hbWQ2NC1hdngtbGludXgueG1sIGkzODYvNjRiaXQt bGludXgueG1sICRzcnZfaTM4Nl82NGJpdF94bWxmaWxlcyIKKyAKKyAjIElucHV0IGlzIHRha2Vu IGZyb20gdGhlICIke3RhcmdldH0iIHZhcmlhYmxlLgorIAorLS0tIC4vZ2RiL2dkYnNlcnZlci9p Mzg3LWZwLmMJMjAxMC0wMS0yMCAyMzo1NTozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9n ZGJzZXJ2ZXIvaTM4Ny1mcC5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitA QCAtMTksNiArMTksNyBAQAorIAorICNpbmNsdWRlICJzZXJ2ZXIuaCIKKyAjaW5jbHVkZSAiaTM4 Ny1mcC5oIgorKyNpbmNsdWRlICJpMzg2LXhzdGF0ZS5oIgorIAorIGludCBudW1feG1tX3JlZ2lz dGVycyA9IDg7CisgCitAQCAtNzIsNiArNzMsNDYgQEAgc3RydWN0IGkzODdfZnhzYXZlIHsKKyAg IHVuc2lnbmVkIGNoYXIgeG1tX3NwYWNlWzI1Nl07CisgfTsKKyAKKytzdHJ1Y3QgaTM4N194c2F2 ZSB7CisrICAvKiBBbGwgdGhlc2UgYXJlIG9ubHkgc2l4dGVlbiBiaXRzLCBwbHVzIHBhZGRpbmcs IGV4Y2VwdCBmb3IgZm9wICh3aGljaAorKyAgICAgaXMgb25seSBlbGV2ZW4gYml0cyksIGFuZCBm b29mZiAvIGZpb2ZmICh3aGljaCBhcmUgMzIgYml0cyBlYWNoKS4gICovCisrICB1bnNpZ25lZCBz aG9ydCBmY3RybDsKKysgIHVuc2lnbmVkIHNob3J0IGZzdGF0OworKyAgdW5zaWduZWQgc2hvcnQg ZnRhZzsKKysgIHVuc2lnbmVkIHNob3J0IGZvcDsKKysgIHVuc2lnbmVkIGludCBmaW9mZjsKKysg IHVuc2lnbmVkIHNob3J0IGZpc2VnOworKyAgdW5zaWduZWQgc2hvcnQgcGFkMTsKKysgIHVuc2ln bmVkIGludCBmb29mZjsKKysgIHVuc2lnbmVkIHNob3J0IGZvc2VnOworKyAgdW5zaWduZWQgc2hv cnQgcGFkMTI7CisrCisrICB1bnNpZ25lZCBpbnQgbXhjc3I7CisrICB1bnNpZ25lZCBpbnQgbXhj c3JfbWFzazsKKysKKysgIC8qIFNwYWNlIGZvciBlaWdodCA4MC1iaXQgRlAgdmFsdWVzIGluIDEy OC1iaXQgc3BhY2VzLiAgKi8KKysgIHVuc2lnbmVkIGNoYXIgc3Rfc3BhY2VbMTI4XTsKKysKKysg IC8qIFNwYWNlIGZvciBlaWdodCAxMjgtYml0IFhNTSB2YWx1ZXMsIG9yIDE2IG9uIHg4Ni02NC4g ICovCisrICB1bnNpZ25lZCBjaGFyIHhtbV9zcGFjZVsyNTZdOworKworKyAgdW5zaWduZWQgY2hh ciByZXNlcnZlZDFbNDhdOworKworKyAgLyogVGhlIGV4dGVuZGVkIGNvbnRyb2wgcmVnaXN0ZXIg MCAodGhlIFhGRUFUVVJFX0VOQUJMRURfTUFTSworKyAgICAgcmVnaXN0ZXIpLiAgKi8KKysgIHVu c2lnbmVkIGxvbmcgbG9uZyB4Y3IwOworKworKyAgdW5zaWduZWQgY2hhciByZXNlcnZlZDJbNDBd OworKworKyAgLyogVGhlIFhTVEFURV9CViBiaXQgdmVjdG9yLiAgKi8KKysgIHVuc2lnbmVkIGxv bmcgbG9uZyB4c3RhdGVfYnY7CisrCisrICB1bnNpZ25lZCBjaGFyIHJlc2VydmVkM1s1Nl07Cisr CisrICAvKiBTcGFjZSBmb3IgZWlnaHQgdXBwZXIgMTI4LWJpdCBZTU0gdmFsdWVzLCBvciAxNiBv biB4ODYtNjQuICAqLworKyAgdW5zaWduZWQgY2hhciB5bW1oX3NwYWNlWzI1Nl07CisrfTsKKysK KyB2b2lkCisgaTM4N19jYWNoZV90b19mc2F2ZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwg dm9pZCAqYnVmKQorIHsKK0BAIC0xOTksNiArMjQwLDEyOCBAQCBpMzg3X2NhY2hlX3RvX2Z4c2F2 ZSAoc3RydWN0IHJlZ2NhY2hlICpyCisgICBmcC0+Zm9zZWcgPSB2YWw7CisgfQorIAorK3ZvaWQK KytpMzg3X2NhY2hlX3RvX3hzYXZlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCB2b2lkICpi dWYpCisreworKyAgc3RydWN0IGkzODdfeHNhdmUgKmZwID0gKHN0cnVjdCBpMzg3X3hzYXZlICop IGJ1ZjsKKysgIGludCBpOworKyAgdW5zaWduZWQgbG9uZyB2YWwsIHZhbDI7CisrICB1bnNpZ25l ZCBpbnQgY2xlYXJfYnY7CisrICB1bnNpZ25lZCBsb25nIGxvbmcgeHN0YXRlX2J2ID0gMDsKKysg IGNoYXIgcmF3WzE2XTsKKysgIGNoYXIgKnA7CisrCisrICAvKiBUaGUgc3VwcG9ydGVkIGJpdHMg aW4gYHhzdGF0X2J2JyBhcmUgMSBieXRlLiAgQ2xlYXIgcGFydCBpbgorKyAgICAgdmVjdG9yIHJl Z2lzdGVycyBpZiBpdHMgYml0IGluIHhzdGF0X2J2IGlzIHplcm8uICAqLworKyAgY2xlYXJfYnYg PSAofmZwLT54c3RhdGVfYnYpICYgeDg2X3hjcjA7CisrCisrICAvKiBDbGVhciBwYXJ0IGluIHg4 NyBhbmQgdmVjdG9yIHJlZ2lzdGVycyBpZiBpdHMgYml0IGluIHhzdGF0X2J2IGlzCisrICAgICB6 ZXJvLiAgKi8KKysgIGlmIChjbGVhcl9idikKKysgICAgeworKyAgICAgIGlmICgoY2xlYXJfYnYg JiBJMzg2X1hTVEFURV9YODcpKQorKwlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQorKwkgIG1lbXNl dCAoKChjaGFyICopICZmcC0+c3Rfc3BhY2VbMF0pICsgaSAqIDE2LCAwLCAxMCk7CisrCisrICAg ICAgaWYgKChjbGVhcl9idiAmIEkzODZfWFNUQVRFX1NTRSkpCisrCWZvciAoaSA9IDA7IGkgPCBu dW1feG1tX3JlZ2lzdGVyczsgaSsrKSAKKysJICBtZW1zZXQgKCgoY2hhciAqKSAmZnAtPnhtbV9z cGFjZVswXSkgKyBpICogMTYsIDAsIDE2KTsKKysKKysgICAgICBpZiAoKGNsZWFyX2J2ICYgSTM4 Nl9YU1RBVEVfQVZYKSkKKysJZm9yIChpID0gMDsgaSA8IG51bV94bW1fcmVnaXN0ZXJzOyBpKysp IAorKwkgIG1lbXNldCAoKChjaGFyICopICZmcC0+eW1taF9zcGFjZVswXSkgKyBpICogMTYsIDAs IDE2KTsKKysgICAgfQorKworKyAgLyogQ2hlY2sgaWYgYW55IHg4NyByZWdpc3RlcnMgYXJlIGNo YW5nZWQuICAqLworKyAgaWYgKCh4ODZfeGNyMCAmIEkzODZfWFNUQVRFX1g4NykpCisrICAgIHsK KysgICAgICBpbnQgc3QwX3JlZ251bSA9IGZpbmRfcmVnbm8gKCJzdDAiKTsKKysKKysgICAgICBm b3IgKGkgPSAwOyBpIDwgODsgaSsrKQorKwl7CisrCSAgY29sbGVjdF9yZWdpc3RlciAocmVnY2Fj aGUsIGkgKyBzdDBfcmVnbnVtLCByYXcpOworKwkgIHAgPSAoKGNoYXIgKikgJmZwLT5zdF9zcGFj ZVswXSkgKyBpICogMTY7CisrCSAgaWYgKG1lbWNtcCAocmF3LCBwLCAxMCkpCisrCSAgICB7Cisr CSAgICAgIHhzdGF0ZV9idiB8PSBJMzg2X1hTVEFURV9YODc7CisrCSAgICAgIG1lbWNweSAocCwg cmF3LCAxMCk7CisrCSAgICB9CisrCX0KKysgICAgfQorKworKyAgLyogQ2hlY2sgaWYgYW55IFNT RSByZWdpc3RlcnMgYXJlIGNoYW5nZWQuICAqLworKyAgaWYgKCh4ODZfeGNyMCAmIEkzODZfWFNU QVRFX1NTRSkpCisrICAgIHsKKysgICAgICBpbnQgeG1tMF9yZWdudW0gPSBmaW5kX3JlZ25vICgi eG1tMCIpOworKworKyAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1feG1tX3JlZ2lzdGVyczsgaSsr KSAKKysJeworKwkgIGNvbGxlY3RfcmVnaXN0ZXIgKHJlZ2NhY2hlLCBpICsgeG1tMF9yZWdudW0s IHJhdyk7CisrCSAgcCA9ICgoY2hhciAqKSAmZnAtPnhtbV9zcGFjZVswXSkgKyBpICogMTY7Cisr CSAgaWYgKG1lbWNtcCAocmF3LCBwLCAxNikpCisrCSAgICB7CisrCSAgICAgIHhzdGF0ZV9idiB8 PSBJMzg2X1hTVEFURV9TU0U7CisrCSAgICAgIG1lbWNweSAocCwgcmF3LCAxNik7CisrCSAgICB9 CisrCX0KKysgICAgfQorKworKyAgLyogQ2hlY2sgaWYgYW55IEFWWCByZWdpc3RlcnMgYXJlIGNo YW5nZWQuICAqLworKyAgaWYgKCh4ODZfeGNyMCAmIEkzODZfWFNUQVRFX0FWWCkpCisrICAgIHsK KysgICAgICBpbnQgeW1tMGhfcmVnbnVtID0gZmluZF9yZWdubyAoInltbTBoIik7CisrCisrICAg ICAgZm9yIChpID0gMDsgaSA8IG51bV94bW1fcmVnaXN0ZXJzOyBpKyspIAorKwl7CisrCSAgY29s bGVjdF9yZWdpc3RlciAocmVnY2FjaGUsIGkgKyB5bW0waF9yZWdudW0sIHJhdyk7CisrCSAgcCA9 ICgoY2hhciAqKSAmZnAtPnltbWhfc3BhY2VbMF0pICsgaSAqIDE2OworKwkgIGlmIChtZW1jbXAg KHJhdywgcCwgMTYpKQorKwkgICAgeworKwkgICAgICB4c3RhdGVfYnYgfD0gSTM4Nl9YU1RBVEVf QVZYOworKwkgICAgICBtZW1jcHkgKHAsIHJhdywgMTYpOworKwkgICAgfQorKwl9CisrICAgIH0K KysKKysgIC8qIFVwZGF0ZSB0aGUgY29ycmVzcG9uZGluZyBiaXRzIGluIHhzdGF0ZV9idiBpZiBh bnkgU1NFL0FWWAorKyAgICAgcmVnaXN0ZXJzIGFyZSBjaGFuZ2VkLiAgKi8KKysgIGZwLT54c3Rh dGVfYnYgfD0geHN0YXRlX2J2OworKworKyAgY29sbGVjdF9yZWdpc3Rlcl9ieV9uYW1lIChyZWdj YWNoZSwgImZpb2ZmIiwgJmZwLT5maW9mZik7CisrICBjb2xsZWN0X3JlZ2lzdGVyX2J5X25hbWUg KHJlZ2NhY2hlLCAiZm9vZmYiLCAmZnAtPmZvb2ZmKTsKKysgIGNvbGxlY3RfcmVnaXN0ZXJfYnlf bmFtZSAocmVnY2FjaGUsICJteGNzciIsICZmcC0+bXhjc3IpOworKworKyAgLyogVGhpcyBvbmUn cyAxMSBiaXRzLi4uICovCisrICBjb2xsZWN0X3JlZ2lzdGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAi Zm9wIiwgJnZhbDIpOworKyAgZnAtPmZvcCA9ICh2YWwyICYgMHg3RkYpIHwgKGZwLT5mb3AgJiAw eEY4MDApOworKworKyAgLyogU29tZSByZWdpc3RlcnMgYXJlIDE2LWJpdC4gICovCisrICBjb2xs ZWN0X3JlZ2lzdGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAiZmN0cmwiLCAmdmFsKTsKKysgIGZwLT5m Y3RybCA9IHZhbDsKKysKKysgIGNvbGxlY3RfcmVnaXN0ZXJfYnlfbmFtZSAocmVnY2FjaGUsICJm c3RhdCIsICZ2YWwpOworKyAgZnAtPmZzdGF0ID0gdmFsOworKworKyAgLyogQ29udmVydCB0byB0 aGUgc2ltcGxpZmVkIHRhZyBmb3JtIHN0b3JlZCBpbiBmeHNhdmUgZGF0YS4gICovCisrICBjb2xs ZWN0X3JlZ2lzdGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAiZnRhZyIsICZ2YWwpOworKyAgdmFsICY9 IDB4RkZGRjsKKysgIHZhbDIgPSAwOworKyAgZm9yIChpID0gNzsgaSA+PSAwOyBpLS0pCisrICAg IHsKKysgICAgICBpbnQgdGFnID0gKHZhbCA+PiAoaSAqIDIpKSAmIDM7CisrCisrICAgICAgaWYg KHRhZyAhPSAzKQorKwl2YWwyIHw9ICgxIDw8IGkpOworKyAgICB9CisrICBmcC0+ZnRhZyA9IHZh bDI7CisrCisrICBjb2xsZWN0X3JlZ2lzdGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAiZmlzZWciLCAm dmFsKTsKKysgIGZwLT5maXNlZyA9IHZhbDsKKysKKysgIGNvbGxlY3RfcmVnaXN0ZXJfYnlfbmFt ZSAocmVnY2FjaGUsICJmb3NlZyIsICZ2YWwpOworKyAgZnAtPmZvc2VnID0gdmFsOworK30KKysK KyBzdGF0aWMgaW50CisgaTM4N19mdGFnIChzdHJ1Y3QgaTM4N19meHNhdmUgKmZwLCBpbnQgcmVn bm8pCisgeworQEAgLTI5NiwzICs0NTksMTA3IEBAIGkzODdfZnhzYXZlX3RvX2NhY2hlIChzdHJ1 Y3QgcmVnY2FjaGUgKnIKKyAgIHZhbCA9IChmcC0+Zm9wKSAmIDB4N0ZGOworICAgc3VwcGx5X3Jl Z2lzdGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAiZm9wIiwgJnZhbCk7CisgfQorKworK3ZvaWQKKytp Mzg3X3hzYXZlX3RvX2NhY2hlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBjb25zdCB2b2lk ICpidWYpCisreworKyAgc3RydWN0IGkzODdfeHNhdmUgKmZwID0gKHN0cnVjdCBpMzg3X3hzYXZl ICopIGJ1ZjsKKysgIHN0cnVjdCBpMzg3X2Z4c2F2ZSAqZnhwID0gKHN0cnVjdCBpMzg3X2Z4c2F2 ZSAqKSBidWY7CisrICBpbnQgaSwgdG9wOworKyAgdW5zaWduZWQgbG9uZyB2YWw7CisrICB1bnNp Z25lZCBpbnQgY2xlYXJfYnY7CisrICBjaGFyICpwOworKworKyAgLyogVGhlIHN1cHBvcnRlZCBi aXRzIGluIGB4c3RhdF9idicgYXJlIDEgYnl0ZS4gIENsZWFyIHBhcnQgaW4KKysgICAgIHZlY3Rv ciByZWdpc3RlcnMgaWYgaXRzIGJpdCBpbiB4c3RhdF9idiBpcyB6ZXJvLiAgKi8KKysgIGNsZWFy X2J2ID0gKH5mcC0+eHN0YXRlX2J2KSAmIHg4Nl94Y3IwOworKworKyAgLyogQ2hlY2sgaWYgYW55 IHg4NyByZWdpc3RlcnMgYXJlIGNoYW5nZWQuICAqLworKyAgaWYgKCh4ODZfeGNyMCAmIEkzODZf WFNUQVRFX1g4NykpCisrICAgIHsKKysgICAgICBpbnQgc3QwX3JlZ251bSA9IGZpbmRfcmVnbm8g KCJzdDAiKTsKKysKKysgICAgICBpZiAoKGNsZWFyX2J2ICYgSTM4Nl9YU1RBVEVfWDg3KSkKKysJ cCA9IE5VTEw7CisrICAgICAgZWxzZQorKwlwID0gKGNoYXIgKikgYnVmOworKworKyAgICAgIGZv ciAoaSA9IDA7IGkgPCA4OyBpKyspCisrCXsKKysJICBpZiAocCkKKysJICAgIHAgPSAoKGNoYXIg KikgJmZwLT5zdF9zcGFjZVswXSkgKyBpICogMTY7CisrCSAgc3VwcGx5X3JlZ2lzdGVyIChyZWdj YWNoZSwgaSArIHN0MF9yZWdudW0sIHApOworKwl9CisrICAgIH0KKysKKysgIGlmICgoeDg2X3hj cjAgJiBJMzg2X1hTVEFURV9TU0UpKQorKyAgICB7CisrICAgICAgaW50IHhtbTBfcmVnbnVtID0g ZmluZF9yZWdubyAoInhtbTAiKTsKKysKKysgICAgICBpZiAoKGNsZWFyX2J2ICYgSTM4Nl9YU1RB VEVfU1NFKSkKKysJcCA9IE5VTEw7CisrICAgICAgZWxzZQorKwlwID0gKGNoYXIgKikgYnVmOwor KworKyAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1feG1tX3JlZ2lzdGVyczsgaSsrKQorKwl7Cisr CSAgaWYgKHApCisrCSAgICBwID0gKChjaGFyICopICZmcC0+eG1tX3NwYWNlWzBdKSArIGkgKiAx NjsKKysJICBzdXBwbHlfcmVnaXN0ZXIgKHJlZ2NhY2hlLCBpICsgeG1tMF9yZWdudW0sIHApOwor Kwl9CisrICAgIH0KKysKKysgIGlmICgoeDg2X3hjcjAgJiBJMzg2X1hTVEFURV9BVlgpKQorKyAg ICB7CisrICAgICAgaW50IHltbTBoX3JlZ251bSA9IGZpbmRfcmVnbm8gKCJ5bW0waCIpOworKwor KyAgICAgIGlmICgoY2xlYXJfYnYgJiBJMzg2X1hTVEFURV9BVlgpKQorKwlwID0gTlVMTDsKKysg ICAgICBlbHNlCisrCXAgPSAoY2hhciAqKSBidWY7CisrCisrICAgICAgZm9yIChpID0gMDsgaSA8 IG51bV94bW1fcmVnaXN0ZXJzOyBpKyspCisrCXsKKysJICBpZiAocCkKKysJICAgIHAgPSAoKGNo YXIgKikgJmZwLT55bW1oX3NwYWNlWzBdKSArIGkgKiAxNjsKKysJICBzdXBwbHlfcmVnaXN0ZXIg KHJlZ2NhY2hlLCBpICsgeW1tMGhfcmVnbnVtLCBwKTsKKysJfQorKyAgICB9CisrCisrICBzdXBw bHlfcmVnaXN0ZXJfYnlfbmFtZSAocmVnY2FjaGUsICJmaW9mZiIsICZmcC0+ZmlvZmYpOworKyAg c3VwcGx5X3JlZ2lzdGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAiZm9vZmYiLCAmZnAtPmZvb2ZmKTsK KysgIHN1cHBseV9yZWdpc3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgIm14Y3NyIiwgJmZwLT5teGNz cik7CisrCisrICAvKiBTb21lIHJlZ2lzdGVycyBhcmUgMTYtYml0LiAgKi8KKysgIHZhbCA9IGZw LT5mY3RybCAmIDB4RkZGRjsKKysgIHN1cHBseV9yZWdpc3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwg ImZjdHJsIiwgJnZhbCk7CisrCisrICB2YWwgPSBmcC0+ZnN0YXQgJiAweEZGRkY7CisrICBzdXBw bHlfcmVnaXN0ZXJfYnlfbmFtZSAocmVnY2FjaGUsICJmc3RhdCIsICZ2YWwpOworKworKyAgLyog R2VuZXJhdGUgdGhlIGZvcm0gb2YgZnRhZyBkYXRhIHRoYXQgR0RCIGV4cGVjdHMuICAqLworKyAg dG9wID0gKGZwLT5mc3RhdCA+PiAxMSkgJiAweDc7CisrICB2YWwgPSAwOworKyAgZm9yIChpID0g NzsgaSA+PSAwOyBpLS0pCisrICAgIHsKKysgICAgICBpbnQgdGFnOworKyAgICAgIGlmIChmcC0+ ZnRhZyAmICgxIDw8IGkpKQorKwl0YWcgPSBpMzg3X2Z0YWcgKGZ4cCwgKGkgKyA4IC0gdG9wKSAl IDgpOworKyAgICAgIGVsc2UKKysJdGFnID0gMzsKKysgICAgICB2YWwgfD0gdGFnIDw8ICgyICog aSk7CisrICAgIH0KKysgIHN1cHBseV9yZWdpc3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgImZ0YWci LCAmdmFsKTsKKysKKysgIHZhbCA9IGZwLT5maXNlZyAmIDB4RkZGRjsKKysgIHN1cHBseV9yZWdp c3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgImZpc2VnIiwgJnZhbCk7CisrCisrICB2YWwgPSBmcC0+ Zm9zZWcgJiAweEZGRkY7CisrICBzdXBwbHlfcmVnaXN0ZXJfYnlfbmFtZSAocmVnY2FjaGUsICJm b3NlZyIsICZ2YWwpOworKworKyAgdmFsID0gKGZwLT5mb3ApICYgMHg3RkY7CisrICBzdXBwbHlf cmVnaXN0ZXJfYnlfbmFtZSAocmVnY2FjaGUsICJmb3AiLCAmdmFsKTsKKyt9CisrCisrLyogRGVm YXVsdCB0byBTU0UuICAqLworK3Vuc2lnbmVkIGxvbmcgbG9uZyB4ODZfeGNyMCA9IEkzODZfWFNU QVRFX1NTRV9NQVNLOworLS0tIC4vZ2RiL2dkYnNlcnZlci9pMzg3LWZwLmgJMjAxMC0wMS0yMCAy Mzo1NTozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvaTM4Ny1mcC5oCTIw MTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMjYsNiArMjYsMTEgQEAgdm9p ZCBpMzg3X2ZzYXZlX3RvX2NhY2hlIChzdHJ1Y3QgcmVnY2FjaAorIHZvaWQgaTM4N19jYWNoZV90 b19meHNhdmUgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHZvaWQgKmJ1Zik7Cisgdm9pZCBp Mzg3X2Z4c2F2ZV90b19jYWNoZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgY29uc3Qgdm9p ZCAqYnVmKTsKKyAKKyt2b2lkIGkzODdfY2FjaGVfdG9feHNhdmUgKHN0cnVjdCByZWdjYWNoZSAq cmVnY2FjaGUsIHZvaWQgKmJ1Zik7Cisrdm9pZCBpMzg3X3hzYXZlX3RvX2NhY2hlIChzdHJ1Y3Qg cmVnY2FjaGUgKnJlZ2NhY2hlLCBjb25zdCB2b2lkICpidWYpOworKworK2V4dGVybiB1bnNpZ25l ZCBsb25nIGxvbmcgeDg2X3hjcjA7CisrCisgZXh0ZXJuIGludCBudW1feG1tX3JlZ2lzdGVyczsK KyAKKyAjZW5kaWYgLyogSTM4N19GUF9IICovCistLS0gLi9nZGIvZ2Ric2VydmVyL2xpbnV4LWFy bS1sb3cuYwkyMDEwLTAyLTAxIDE3OjEzOjE2LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2dk YnNlcnZlci9saW51eC1hcm0tbG93LmMJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAy MDAKK0BAIC0zNTQsMTYgKzM1NCwxNiBAQCBhcm1fYXJjaF9zZXR1cCAodm9pZCkKKyB9CisgCisg c3RydWN0IHJlZ3NldF9pbmZvIHRhcmdldF9yZWdzZXRzW10gPSB7CistICB7IFBUUkFDRV9HRVRS RUdTLCBQVFJBQ0VfU0VUUkVHUywgMTggKiA0LAorKyAgeyBQVFJBQ0VfR0VUUkVHUywgUFRSQUNF X1NFVFJFR1MsIDAsIDE4ICogNCwKKyAgICAgR0VORVJBTF9SRUdTLAorICAgICBhcm1fZmlsbF9n cmVnc2V0LCBhcm1fc3RvcmVfZ3JlZ3NldCB9LAorLSAgeyBQVFJBQ0VfR0VUV01NWFJFR1MsIFBU UkFDRV9TRVRXTU1YUkVHUywgMTYgKiA4ICsgNiAqIDQsCisrICB7IFBUUkFDRV9HRVRXTU1YUkVH UywgUFRSQUNFX1NFVFdNTVhSRUdTLCAwLCAxNiAqIDggKyA2ICogNCwKKyAgICAgRVhURU5ERURf UkVHUywKKyAgICAgYXJtX2ZpbGxfd21teHJlZ3NldCwgYXJtX3N0b3JlX3dtbXhyZWdzZXQgfSwK Ky0gIHsgUFRSQUNFX0dFVFZGUFJFR1MsIFBUUkFDRV9TRVRWRlBSRUdTLCAzMiAqIDggKyA0LAor KyAgeyBQVFJBQ0VfR0VUVkZQUkVHUywgUFRSQUNFX1NFVFZGUFJFR1MsIDAsIDMyICogOCArIDQs CisgICAgIEVYVEVOREVEX1JFR1MsCisgICAgIGFybV9maWxsX3ZmcHJlZ3NldCwgYXJtX3N0b3Jl X3ZmcHJlZ3NldCB9LAorLSAgeyAwLCAwLCAtMSwgLTEsIE5VTEwsIE5VTEwgfQorKyAgeyAwLCAw LCAwLCAtMSwgLTEsIE5VTEwsIE5VTEwgfQorIH07CisgCisgc3RydWN0IGxpbnV4X3RhcmdldF9v cHMgdGhlX2xvd190YXJnZXQgPSB7CistLS0gLi9nZGIvZ2Ric2VydmVyL2xpbnV4LWNyaXN2MzIt bG93LmMJMjAxMC0wMS0yMCAyMzo1NTozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJz ZXJ2ZXIvbGludXgtY3Jpc3YzMi1sb3cuYwkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCAr MDIwMAorQEAgLTM2NSw5ICszNjUsOSBAQCBjcmlzX3N0b3JlX2dyZWdzZXQgKGNvbnN0IHZvaWQg KmJ1ZikKKyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dyZWdzZXRfdFtjcmlzX251bV9yZWdz XTsKKyAKKyBzdHJ1Y3QgcmVnc2V0X2luZm8gdGFyZ2V0X3JlZ3NldHNbXSA9IHsKKy0gIHsgUFRS QUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRSRUdTLCBzaXplb2YgKGVsZl9ncmVnc2V0X3QpLAorKyAg eyBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX1NFVFJFR1MsIDAsIHNpemVvZiAoZWxmX2dyZWdzZXRf dCksCisgICAgIEdFTkVSQUxfUkVHUywgY3Jpc19maWxsX2dyZWdzZXQsIGNyaXNfc3RvcmVfZ3Jl Z3NldCB9LAorLSAgeyAwLCAwLCAtMSwgLTEsIE5VTEwsIE5VTEwgfQorKyAgeyAwLCAwLCAwLCAt MSwgLTEsIE5VTEwsIE5VTEwgfQorIH07CisgCisgc3RydWN0IGxpbnV4X3RhcmdldF9vcHMgdGhl X2xvd190YXJnZXQgPSB7CistLS0gLi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTAtMDMt MDYgMDE6MTI6NTcuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxv dy5jCTIwMTAtMDQtMDMgMjE6MTk6MTQuMDAwMDAwMDAwICswMjAwCitAQCAtMzksNiArMzksNyBA QAorICNpbmNsdWRlIDxkaXJlbnQuaD4KKyAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyAjaW5jbHVk ZSA8c3lzL3Zmcy5oPgorKyNpbmNsdWRlIDxzeXMvdWlvLmg+CisgI2lmbmRlZiBFTEZNQUcwCisg LyogRG9uJ3QgaW5jbHVkZSA8bGludXgvZWxmLmg+IGhlcmUuICBJZiBpdCBnb3QgaW5jbHVkZWQg YnkgZ2RiX3Byb2Nfc2VydmljZS5oCisgICAgdGhlbiBFTEZNQUcwIHdpbGwgaGF2ZSBiZWVuIGRl ZmluZWQuICBJZiBpdCBkaWRuJ3QgZ2V0IGluY2x1ZGVkIGJ5CitAQCAtMjI4MSwxNCArMjI4Miwx NSBAQCByZWdzZXRzX2ZldGNoX2luZmVyaW9yX3JlZ2lzdGVycyAoc3RydWN0CisgICBzdHJ1Y3Qg cmVnc2V0X2luZm8gKnJlZ3NldDsKKyAgIGludCBzYXdfZ2VuZXJhbF9yZWdzID0gMDsKKyAgIGlu dCBwaWQ7CisrICBzdHJ1Y3QgaW92ZWMgaW92OworIAorICAgcmVnc2V0ID0gdGFyZ2V0X3JlZ3Nl dHM7CisgCisgICBwaWQgPSBsd3BpZF9vZiAoZ2V0X3RocmVhZF9sd3AgKGN1cnJlbnRfaW5mZXJp b3IpKTsKKyAgIHdoaWxlIChyZWdzZXQtPnNpemUgPj0gMCkKKyAgICAgeworLSAgICAgIHZvaWQg KmJ1ZjsKKy0gICAgICBpbnQgcmVzOworKyAgICAgIHZvaWQgKmJ1ZiwgKmRhdGE7CisrICAgICAg aW50IG50X3R5cGUsIHJlczsKKyAKKyAgICAgICBpZiAocmVnc2V0LT5zaXplID09IDAgfHwgZGlz YWJsZWRfcmVnc2V0c1tyZWdzZXQgLSB0YXJnZXRfcmVnc2V0c10pCisgCXsKK0BAIC0yMjk3LDEw ICsyMjk5LDIxIEBAIHJlZ3NldHNfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzIChzdHJ1Y3QKKyAJ fQorIAorICAgICAgIGJ1ZiA9IHhtYWxsb2MgKHJlZ3NldC0+c2l6ZSk7CisrCisrICAgICAgbnRf dHlwZSA9IHJlZ3NldC0+bnRfdHlwZTsKKysgICAgICBpZiAobnRfdHlwZSkKKysJeworKwkgIGlv di5pb3ZfYmFzZSA9IGJ1ZjsKKysJICBpb3YuaW92X2xlbiA9IHJlZ3NldC0+c2l6ZTsKKysJICBk YXRhID0gKHZvaWQgKikgJmlvdjsKKysJfQorKyAgICAgIGVsc2UKKysJZGF0YSA9IGJ1ZjsKKysK KyAjaWZuZGVmIF9fc3BhcmNfXworLSAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRfcmVx dWVzdCwgcGlkLCAwLCBidWYpOworKyAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRfcmVx dWVzdCwgcGlkLCBudF90eXBlLCBkYXRhKTsKKyAjZWxzZQorLSAgICAgIHJlcyA9IHB0cmFjZSAo cmVnc2V0LT5nZXRfcmVxdWVzdCwgcGlkLCBidWYsIDApOworKyAgICAgIHJlcyA9IHB0cmFjZSAo cmVnc2V0LT5nZXRfcmVxdWVzdCwgcGlkLCBkYXRhLCBudF90eXBlKTsKKyAjZW5kaWYKKyAgICAg ICBpZiAocmVzIDwgMCkKKyAJeworQEAgLTIzMzgsMTQgKzIzNTEsMTUgQEAgcmVnc2V0c19zdG9y ZV9pbmZlcmlvcl9yZWdpc3RlcnMgKHN0cnVjdAorICAgc3RydWN0IHJlZ3NldF9pbmZvICpyZWdz ZXQ7CisgICBpbnQgc2F3X2dlbmVyYWxfcmVncyA9IDA7CisgICBpbnQgcGlkOworKyAgc3RydWN0 IGlvdmVjIGlvdjsKKyAKKyAgIHJlZ3NldCA9IHRhcmdldF9yZWdzZXRzOworIAorICAgcGlkID0g bHdwaWRfb2YgKGdldF90aHJlYWRfbHdwIChjdXJyZW50X2luZmVyaW9yKSk7CisgICB3aGlsZSAo cmVnc2V0LT5zaXplID49IDApCisgICAgIHsKKy0gICAgICB2b2lkICpidWY7CistICAgICAgaW50 IHJlczsKKysgICAgICB2b2lkICpidWYsICpkYXRhOworKyAgICAgIGludCBudF90eXBlLCByZXM7 CisgCisgICAgICAgaWYgKHJlZ3NldC0+c2l6ZSA9PSAwIHx8IGRpc2FibGVkX3JlZ3NldHNbcmVn c2V0IC0gdGFyZ2V0X3JlZ3NldHNdKQorIAl7CitAQCAtMjM1OCwxMCArMjM3MiwyMSBAQCByZWdz ZXRzX3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyAoc3RydWN0CisgICAgICAgLyogRmlyc3QgZmls bCB0aGUgYnVmZmVyIHdpdGggdGhlIGN1cnJlbnQgcmVnaXN0ZXIgc2V0IGNvbnRlbnRzLAorIAkg aW4gY2FzZSB0aGVyZSBhcmUgYW55IGl0ZW1zIGluIHRoZSBrZXJuZWwncyByZWdzZXQgdGhhdCBh cmUKKyAJIG5vdCBpbiBnZGJzZXJ2ZXIncyByZWdjYWNoZS4gICovCisrCisrICAgICAgbnRfdHlw ZSA9IHJlZ3NldC0+bnRfdHlwZTsKKysgICAgICBpZiAobnRfdHlwZSkKKysJeworKwkgIGlvdi5p b3ZfYmFzZSA9IGJ1ZjsKKysJICBpb3YuaW92X2xlbiA9IHJlZ3NldC0+c2l6ZTsKKysJICBkYXRh ID0gKHZvaWQgKikgJmlvdjsKKysJfQorKyAgICAgIGVsc2UKKysJZGF0YSA9IGJ1ZjsKKysKKyAj aWZuZGVmIF9fc3BhcmNfXworLSAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRfcmVxdWVz dCwgcGlkLCAwLCBidWYpOworKyAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRfcmVxdWVz dCwgcGlkLCBudF90eXBlLCBkYXRhKTsKKyAjZWxzZQorLSAgICAgIHJlcyA9IHB0cmFjZSAocmVn c2V0LT5nZXRfcmVxdWVzdCwgcGlkLCBidWYsIDApOworKyAgICAgIHJlcyA9IHB0cmFjZSAocmVn c2V0LT5nZXRfcmVxdWVzdCwgcGlkLCAmaW92LCBkYXRhKTsKKyAjZW5kaWYKKyAKKyAgICAgICBp ZiAocmVzID09IDApCitAQCAtMjM3MSw5ICsyMzk2LDkgQEAgcmVnc2V0c19zdG9yZV9pbmZlcmlv cl9yZWdpc3RlcnMgKHN0cnVjdAorIAorIAkgIC8qIE9ubHkgbm93IGRvIHdlIHdyaXRlIHRoZSBy ZWdpc3RlciBzZXQuICAqLworICNpZm5kZWYgX19zcGFyY19fCistCSAgcmVzID0gcHRyYWNlIChy ZWdzZXQtPnNldF9yZXF1ZXN0LCBwaWQsIDAsIGJ1Zik7CisrCSAgcmVzID0gcHRyYWNlIChyZWdz ZXQtPnNldF9yZXF1ZXN0LCBwaWQsIG50X3R5cGUsIGRhdGEpOworICNlbHNlCistCSAgcmVzID0g cHRyYWNlIChyZWdzZXQtPnNldF9yZXF1ZXN0LCBwaWQsIGJ1ZiwgMCk7CisrCSAgcmVzID0gcHRy YWNlIChyZWdzZXQtPnNldF9yZXF1ZXN0LCBwaWQsIGRhdGEsIG50X3R5cGUpOworICNlbmRpZgor IAl9CisgCitAQCAtMzQzNCw2ICszNDU5LDEzIEBAIGxpbnV4X2NvcmVfb2ZfdGhyZWFkIChwdGlk X3QgcHRpZCkKKyAgIHJldHVybiBjb3JlOworIH0KKyAKKytzdGF0aWMgdm9pZAorK2xpbnV4X3By b2Nlc3NfcXN1cHBvcnRlZCAoY29uc3QgY2hhciAqcXVlcnkpCisreworKyAgaWYgKHRoZV9sb3df dGFyZ2V0LnByb2Nlc3NfcXN1cHBvcnRlZCAhPSBOVUxMKQorKyAgICB0aGVfbG93X3RhcmdldC5w cm9jZXNzX3FzdXBwb3J0ZWQgKHF1ZXJ5KTsKKyt9CisrCisgc3RhdGljIHN0cnVjdCB0YXJnZXRf b3BzIGxpbnV4X3RhcmdldF9vcHMgPSB7CisgICBsaW51eF9jcmVhdGVfaW5mZXJpb3IsCisgICBs aW51eF9hdHRhY2gsCitAQCAtMzQ3Nyw3ICszNTA5LDggQEAgc3RhdGljIHN0cnVjdCB0YXJnZXRf b3BzIGxpbnV4X3RhcmdldF9vcAorICNlbHNlCisgICBOVUxMLAorICNlbmRpZgorLSAgbGludXhf Y29yZV9vZl90aHJlYWQKKysgIGxpbnV4X2NvcmVfb2ZfdGhyZWFkLAorKyAgbGludXhfcHJvY2Vz c19xc3VwcG9ydGVkCisgfTsKKyAKKyBzdGF0aWMgdm9pZAorLS0tIC4vZ2RiL2dkYnNlcnZlci9s aW51eC1sb3cuaAkyMDEwLTAxLTIwIDIzOjU1OjM4LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2Ri L2dkYnNlcnZlci9saW51eC1sb3cuaAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIw MAorQEAgLTM1LDYgKzM1LDkgQEAgZW51bSByZWdzZXRfdHlwZSB7Cisgc3RydWN0IHJlZ3NldF9p bmZvCisgeworICAgaW50IGdldF9yZXF1ZXN0LCBzZXRfcmVxdWVzdDsKKysgIC8qIElmIE5UX1RZ UEUgaXNuJ3QgMCwgaXQgd2lsbCBiZSBwYXNzZWQgdG8gcHRyYWNlIGFzIHRoZSAzcmQKKysgICAg IGFyZ3VtZW50IGFuZCB0aGUgNHRoIGFyZ3VtZW50IHNob3VsZCBiZSAiY29uc3Qgc3RydWN0IGlv dmVjICoiLiAgKi8KKysgIGludCBudF90eXBlOworICAgaW50IHNpemU7CisgICBlbnVtIHJlZ3Nl dF90eXBlIHR5cGU7CisgICByZWdzZXRfZmlsbF9mdW5jIGZpbGxfZnVuY3Rpb247CitAQCAtMTEx LDYgKzExNCw5IEBAIHN0cnVjdCBsaW51eF90YXJnZXRfb3BzCisgCisgICAvKiBIb29rIHRvIGNh bGwgcHJpb3IgdG8gcmVzdW1pbmcgYSB0aHJlYWQuICAqLworICAgdm9pZCAoKnByZXBhcmVfdG9f cmVzdW1lKSAoc3RydWN0IGx3cF9pbmZvICopOworKworKyAgLyogSG9vayB0byBzdXBwb3J0IHRh cmdldCBzcGVjaWZpYyBxU3VwcG9ydGVkLiAgKi8KKysgIHZvaWQgKCpwcm9jZXNzX3FzdXBwb3J0 ZWQpIChjb25zdCBjaGFyICopOworIH07CisgCisgZXh0ZXJuIHN0cnVjdCBsaW51eF90YXJnZXRf b3BzIHRoZV9sb3dfdGFyZ2V0OworLS0tIC4vZ2RiL2dkYnNlcnZlci9saW51eC1tNjhrLWxvdy5j CTIwMTAtMDEtMjAgMjM6NTU6MzguMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZ2Ric2VydmVy L2xpbnV4LW02OGstbG93LmMJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BA IC0xMTIsMTQgKzExMiwxNCBAQCBtNjhrX3N0b3JlX2ZwcmVnc2V0IChzdHJ1Y3QgcmVnY2FjaGUg KnJlCisgCisgc3RydWN0IHJlZ3NldF9pbmZvIHRhcmdldF9yZWdzZXRzW10gPSB7CisgI2lmZGVm IEhBVkVfUFRSQUNFX0dFVFJFR1MKKy0gIHsgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRSRUdT LCBzaXplb2YgKGVsZl9ncmVnc2V0X3QpLAorKyAgeyBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX1NF VFJFR1MsIDAsIHNpemVvZiAoZWxmX2dyZWdzZXRfdCksCisgICAgIEdFTkVSQUxfUkVHUywKKyAg ICAgbTY4a19maWxsX2dyZWdzZXQsIG02OGtfc3RvcmVfZ3JlZ3NldCB9LAorLSAgeyBQVFJBQ0Vf R0VURlBSRUdTLCBQVFJBQ0VfU0VURlBSRUdTLCBzaXplb2YgKGVsZl9mcHJlZ3NldF90KSwKKysg IHsgUFRSQUNFX0dFVEZQUkVHUywgUFRSQUNFX1NFVEZQUkVHUywgMCwgc2l6ZW9mIChlbGZfZnBy ZWdzZXRfdCksCisgICAgIEZQX1JFR1MsCisgICAgIG02OGtfZmlsbF9mcHJlZ3NldCwgbTY4a19z dG9yZV9mcHJlZ3NldCB9LAorICNlbmRpZiAvKiBIQVZFX1BUUkFDRV9HRVRSRUdTICovCistICB7 IDAsIDAsIC0xLCAtMSwgTlVMTCwgTlVMTCB9CisrICB7IDAsIDAsIDAsIC0xLCAtMSwgTlVMTCwg TlVMTCB9CisgfTsKKyAKKyBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBtNjhrX2JyZWFrcG9p bnRbXSA9IHsgMHg0RSwgMHg0RiB9OworLS0tIC4vZ2RiL2dkYnNlcnZlci9saW51eC1taXBzLWxv dy5jCTIwMTAtMDEtMjAgMjM6NTU6MzguMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZ2Ric2Vy dmVyL2xpbnV4LW1pcHMtbG93LmMJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAK K0BAIC0zNDMsMTIgKzM0MywxMiBAQCBtaXBzX3N0b3JlX2ZwcmVnc2V0IChzdHJ1Y3QgcmVnY2Fj aGUgKnJlCisgCisgc3RydWN0IHJlZ3NldF9pbmZvIHRhcmdldF9yZWdzZXRzW10gPSB7CisgI2lm ZGVmIEhBVkVfUFRSQUNFX0dFVFJFR1MKKy0gIHsgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRS RUdTLCAzOCAqIDgsIEdFTkVSQUxfUkVHUywKKysgIHsgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9T RVRSRUdTLCAwLCAzOCAqIDgsIEdFTkVSQUxfUkVHUywKKyAgICAgbWlwc19maWxsX2dyZWdzZXQs IG1pcHNfc3RvcmVfZ3JlZ3NldCB9LAorLSAgeyBQVFJBQ0VfR0VURlBSRUdTLCBQVFJBQ0VfU0VU RlBSRUdTLCAzMyAqIDgsIEZQX1JFR1MsCisrICB7IFBUUkFDRV9HRVRGUFJFR1MsIFBUUkFDRV9T RVRGUFJFR1MsIDAsIDMzICogOCwgRlBfUkVHUywKKyAgICAgbWlwc19maWxsX2ZwcmVnc2V0LCBt aXBzX3N0b3JlX2ZwcmVnc2V0IH0sCisgI2VuZGlmIC8qIEhBVkVfUFRSQUNFX0dFVFJFR1MgKi8K Ky0gIHsgMCwgMCwgLTEsIC0xLCBOVUxMLCBOVUxMIH0KKysgIHsgMCwgMCwgMCwgLTEsIC0xLCBO VUxMLCBOVUxMIH0KKyB9OworIAorIHN0cnVjdCBsaW51eF90YXJnZXRfb3BzIHRoZV9sb3dfdGFy Z2V0ID0geworLS0tIC4vZ2RiL2dkYnNlcnZlci9saW51eC1wcGMtbG93LmMJMjAxMC0wMS0yMSAy MzoxMDoxOC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvbGludXgtcHBjLWxv dy5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtNTkzLDE0ICs1OTMs MTQgQEAgc3RydWN0IHJlZ3NldF9pbmZvIHRhcmdldF9yZWdzZXRzW10gPSB7CisgICAgICBmZXRj aCB0aGVtIGV2ZXJ5IHRpbWUsIGJ1dCBzdGlsbCBmYWxsIGJhY2sgdG8gUFRSQUNFX1BFRUtVU0VS IGZvciB0aGUKKyAgICAgIGdlbmVyYWwgcmVnaXN0ZXJzLiAgU29tZSBrZXJuZWxzIHN1cHBvcnQg dGhlc2UsIGJ1dCBub3QgdGhlIG5ld2VyCisgICAgICBQUENfUFRSQUNFX0dFVFJFR1MuICAqLwor LSAgeyBQVFJBQ0VfR0VUVlNYUkVHUywgUFRSQUNFX1NFVFZTWFJFR1MsIFNJWkVPRl9WU1hSRUdT LCBFWFRFTkRFRF9SRUdTLAorKyAgeyBQVFJBQ0VfR0VUVlNYUkVHUywgUFRSQUNFX1NFVFZTWFJF R1MsIDAsIFNJWkVPRl9WU1hSRUdTLCBFWFRFTkRFRF9SRUdTLAorICAgcHBjX2ZpbGxfdnN4cmVn c2V0LCBwcGNfc3RvcmVfdnN4cmVnc2V0IH0sCisgICB7IFBUUkFDRV9HRVRWUlJFR1MsIFBUUkFD RV9TRVRWUlJFR1MsIFNJWkVPRl9WUlJFR1MsIEVYVEVOREVEX1JFR1MsCisgICAgIHBwY19maWxs X3ZycmVnc2V0LCBwcGNfc3RvcmVfdnJyZWdzZXQgfSwKKy0gIHsgUFRSQUNFX0dFVEVWUlJFR1Ms IFBUUkFDRV9TRVRFVlJSRUdTLCAzMiAqIDQgKyA4ICsgNCwgRVhURU5ERURfUkVHUywKKysgIHsg UFRSQUNFX0dFVEVWUlJFR1MsIFBUUkFDRV9TRVRFVlJSRUdTLCAwLCAzMiAqIDQgKyA4ICsgNCwg RVhURU5ERURfUkVHUywKKyAgICAgcHBjX2ZpbGxfZXZycmVnc2V0LCBwcGNfc3RvcmVfZXZycmVn c2V0IH0sCistICB7IDAsIDAsIDAsIEdFTkVSQUxfUkVHUywgcHBjX2ZpbGxfZ3JlZ3NldCwgTlVM TCB9LAorLSAgeyAwLCAwLCAtMSwgLTEsIE5VTEwsIE5VTEwgfQorKyAgeyAwLCAwLCAwLCAwLCBH RU5FUkFMX1JFR1MsIHBwY19maWxsX2dyZWdzZXQsIE5VTEwgfSwKKysgIHsgMCwgMCwgMCwgLTEs IC0xLCBOVUxMLCBOVUxMIH0KKyB9OworIAorIHN0cnVjdCBsaW51eF90YXJnZXRfb3BzIHRoZV9s b3dfdGFyZ2V0ID0geworLS0tIC4vZ2RiL2dkYnNlcnZlci9saW51eC1zMzkwLWxvdy5jCTIwMTAt MDEtMjEgMjA6MjY6NDkuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZ2Ric2VydmVyL2xpbnV4 LXMzOTAtbG93LmMJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xODEs OCArMTgxLDggQEAgc3RhdGljIHZvaWQgczM5MF9maWxsX2dyZWdzZXQgKHN0cnVjdCByZQorIH0K KyAKKyBzdHJ1Y3QgcmVnc2V0X2luZm8gdGFyZ2V0X3JlZ3NldHNbXSA9IHsKKy0gIHsgMCwgMCwg MCwgR0VORVJBTF9SRUdTLCBzMzkwX2ZpbGxfZ3JlZ3NldCwgTlVMTCB9LAorLSAgeyAwLCAwLCAt MSwgLTEsIE5VTEwsIE5VTEwgfQorKyAgeyAwLCAwLCAwLCAwLCBHRU5FUkFMX1JFR1MsIHMzOTBf ZmlsbF9ncmVnc2V0LCBOVUxMIH0sCisrICB7IDAsIDAsIDAsIC0xLCAtMSwgTlVMTCwgTlVMTCB9 CisgfTsKKyAKKyAKKy0tLSAuL2dkYi9nZGJzZXJ2ZXIvbGludXgtc2gtbG93LmMJMjAxMC0wMS0y MCAyMzo1NTozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvbGludXgtc2gt bG93LmMJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xMDQsOCArMTA0 LDggQEAgc3RhdGljIHZvaWQgc2hfZmlsbF9ncmVnc2V0IChzdHJ1Y3QgcmVnYworIH0KKyAKKyBz dHJ1Y3QgcmVnc2V0X2luZm8gdGFyZ2V0X3JlZ3NldHNbXSA9IHsKKy0gIHsgMCwgMCwgMCwgR0VO RVJBTF9SRUdTLCBzaF9maWxsX2dyZWdzZXQsIE5VTEwgfSwKKy0gIHsgMCwgMCwgLTEsIC0xLCBO VUxMLCBOVUxMIH0KKysgIHsgMCwgMCwgMCwgMCwgR0VORVJBTF9SRUdTLCBzaF9maWxsX2dyZWdz ZXQsIE5VTEwgfSwKKysgIHsgMCwgMCwgMCwgLTEsIC0xLCBOVUxMLCBOVUxMIH0KKyB9OworIAor IHN0cnVjdCBsaW51eF90YXJnZXRfb3BzIHRoZV9sb3dfdGFyZ2V0ID0geworLS0tIC4vZ2RiL2dk YnNlcnZlci9saW51eC1zcGFyYy1sb3cuYwkyMDEwLTAxLTIwIDIzOjU1OjM4LjAwMDAwMDAwMCAr MDEwMAorKysrIC4vZ2RiL2dkYnNlcnZlci9saW51eC1zcGFyYy1sb3cuYwkyMDEwLTA0LTAzIDIx OjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTI2MCwxMyArMjYwLDEzIEBAIHNwYXJjX3JlaW5z ZXJ0X2FkZHIgKHZvaWQpCisgCisgCisgc3RydWN0IHJlZ3NldF9pbmZvIHRhcmdldF9yZWdzZXRz W10gPSB7CistICB7IFBUUkFDRV9HRVRSRUdTLCBQVFJBQ0VfU0VUUkVHUywgc2l6ZW9mIChlbGZf Z3JlZ3NldF90KSwKKysgIHsgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRSRUdTLCAwLCBzaXpl b2YgKGVsZl9ncmVnc2V0X3QpLAorICAgICBHRU5FUkFMX1JFR1MsCisgICAgIHNwYXJjX2ZpbGxf Z3JlZ3NldCwgc3BhcmNfc3RvcmVfZ3JlZ3NldCB9LAorLSAgeyBQVFJBQ0VfR0VURlBSRUdTLCBQ VFJBQ0VfU0VURlBSRUdTLCBzaXplb2YgKGZwcmVnc2V0X3QpLAorKyAgeyBQVFJBQ0VfR0VURlBS RUdTLCBQVFJBQ0VfU0VURlBSRUdTLCAwLCBzaXplb2YgKGZwcmVnc2V0X3QpLAorICAgICBGUF9S RUdTLAorICAgICBzcGFyY19maWxsX2ZwcmVnc2V0LCBzcGFyY19zdG9yZV9mcHJlZ3NldCB9LAor LSAgeyAwLCAwLCAtMSwgLTEsIE5VTEwsIE5VTEwgfQorKyAgeyAwLCAwLCAwLCAtMSwgLTEsIE5V TEwsIE5VTEwgfQorIH07CisgCisgc3RydWN0IGxpbnV4X3RhcmdldF9vcHMgdGhlX2xvd190YXJn ZXQgPSB7CistLS0gLi9nZGIvZ2Ric2VydmVyL2xpbnV4LXg4Ni1sb3cuYwkyMDEwLTA0LTAzIDIw OjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2dkYnNlcnZlci9saW51eC14ODYtbG93 LmMJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yNCw2ICsyNCw4IEBA CisgI2luY2x1ZGUgImxpbnV4LWxvdy5oIgorICNpbmNsdWRlICJpMzg3LWZwLmgiCisgI2luY2x1 ZGUgImkzODYtbG93LmgiCisrI2luY2x1ZGUgImkzODYteHN0YXRlLmgiCisrI2luY2x1ZGUgImVs Zi9jb21tb24uaCIKKyAKKyAjaW5jbHVkZSAiZ2RiX3Byb2Nfc2VydmljZS5oIgorIAorQEAgLTMx LDEwICszMywzNSBAQAorIHZvaWQgaW5pdF9yZWdpc3RlcnNfaTM4Nl9saW51eCAodm9pZCk7Cisg LyogRGVmaW5lZCBpbiBhdXRvLWdlbmVyYXRlZCBmaWxlIGFtZDY0LWxpbnV4LmMuICAqLworIHZv aWQgaW5pdF9yZWdpc3RlcnNfYW1kNjRfbGludXggKHZvaWQpOworKy8qIERlZmluZWQgaW4gYXV0 by1nZW5lcmF0ZWQgZmlsZSBpMzg2LWF2eC1saW51eC5jLiAgKi8KKyt2b2lkIGluaXRfcmVnaXN0 ZXJzX2kzODZfYXZ4X2xpbnV4ICh2b2lkKTsKKysvKiBEZWZpbmVkIGluIGF1dG8tZ2VuZXJhdGVk IGZpbGUgYW1kNjQtYXZ4LWxpbnV4LmMuICAqLworK3ZvaWQgaW5pdF9yZWdpc3RlcnNfYW1kNjRf YXZ4X2xpbnV4ICh2b2lkKTsKKysKKysvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBnZGIg d2l0aG91dCBYTUwgc3VwcG9ydC4gICovCisrCisrc3RhdGljIGNvbnN0IGNoYXIgKnhtbHRhcmdl dF9pMzg2X2xpbnV4X25vX3htbCA9ICJAPHRhcmdldD5cCisrPGFyY2hpdGVjdHVyZT5pMzg2PC9h cmNoaXRlY3R1cmU+XAorKzxvc2FiaT5HTlUvTGludXg8L29zYWJpPlwKKys8L3RhcmdldD4iOwor K3N0YXRpYyBjb25zdCBjaGFyICp4bWx0YXJnZXRfYW1kNjRfbGludXhfbm9feG1sID0gIkA8dGFy Z2V0PlwKKys8YXJjaGl0ZWN0dXJlPmkzODY6eDg2LTY0PC9hcmNoaXRlY3R1cmU+XAorKzxvc2Fi aT5HTlUvTGludXg8L29zYWJpPlwKKys8L3RhcmdldD4iOworIAorICNpbmNsdWRlIDxzeXMvcmVn Lmg+CisgI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KKyAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgor KyNpbmNsdWRlIDxzeXMvdWlvLmg+CisrCisrI2lmbmRlZiBQVFJBQ0VfR0VUUkVHU0VUCisrI2Rl ZmluZSBQVFJBQ0VfR0VUUkVHU0VUCTB4NDIwNAorKyNlbmRpZgorKworKyNpZm5kZWYgUFRSQUNF X1NFVFJFR1NFVAorKyNkZWZpbmUgUFRSQUNFX1NFVFJFR1NFVAkweDQyMDUKKysjZW5kaWYKKysK KyAKKyAjaWZuZGVmIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEKKyAjZGVmaW5lIFBUUkFDRV9HRVRf VEhSRUFEX0FSRUEgMjUKK0BAIC0yNTIsNiArMjc5LDE4IEBAIHg4Nl9zdG9yZV9mcHhyZWdzZXQg KHN0cnVjdCByZWdjYWNoZSAqcmUKKyAKKyAjZW5kaWYKKyAKKytzdGF0aWMgdm9pZAorK3g4Nl9m aWxsX3hzdGF0ZXJlZ3NldCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgdm9pZCAqYnVmKQor K3sKKysgIGkzODdfY2FjaGVfdG9feHNhdmUgKHJlZ2NhY2hlLCBidWYpOworK30KKysKKytzdGF0 aWMgdm9pZAorK3g4Nl9zdG9yZV94c3RhdGVyZWdzZXQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2Fj aGUsIGNvbnN0IHZvaWQgKmJ1ZikKKyt7CisrICBpMzg3X3hzYXZlX3RvX2NhY2hlIChyZWdjYWNo ZSwgYnVmKTsKKyt9CisrCisgLyogPz8/IFRoZSBub24tYmlhcmNoIGkzODYgY2FzZSBzdG9yZXMg YWxsIHRoZSBpMzg3IHJlZ3MgdHdpY2UuCisgICAgT25jZSBpbiBpMzg3Xy4qZnNhdmUuKiBhbmQg b25jZSBpbiBpMzg3Xy4qZnhzYXZlLiouCisgICAgVGhpcyBpcywgcHJlc3VtYWJseSwgdG8gaGFu ZGxlIHRoZSBjYXNlIHdoZXJlIFBUUkFDRV9bR1NdRVRGUFhSRUdTCitAQCAtMjY0LDIxICszMDMs MjMgQEAgeDg2X3N0b3JlX2ZweHJlZ3NldCAoc3RydWN0IHJlZ2NhY2hlICpyZQorIHN0cnVjdCBy ZWdzZXRfaW5mbyB0YXJnZXRfcmVnc2V0c1tdID0KKyB7CisgI2lmZGVmIEhBVkVfUFRSQUNFX0dF VFJFR1MKKy0gIHsgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRSRUdTLCBzaXplb2YgKGVsZl9n cmVnc2V0X3QpLAorKyAgeyBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX1NFVFJFR1MsIDAsIHNpemVv ZiAoZWxmX2dyZWdzZXRfdCksCisgICAgIEdFTkVSQUxfUkVHUywKKyAgICAgeDg2X2ZpbGxfZ3Jl Z3NldCwgeDg2X3N0b3JlX2dyZWdzZXQgfSwKKysgIHsgUFRSQUNFX0dFVFJFR1NFVCwgUFRSQUNF X1NFVFJFR1NFVCwgTlRfWDg2X1hTVEFURSwgMCwKKysgICAgRVhURU5ERURfUkVHUywgeDg2X2Zp bGxfeHN0YXRlcmVnc2V0LCB4ODZfc3RvcmVfeHN0YXRlcmVnc2V0IH0sCisgIyBpZm5kZWYgX194 ODZfNjRfXworICMgIGlmZGVmIEhBVkVfUFRSQUNFX0dFVEZQWFJFR1MKKy0gIHsgUFRSQUNFX0dF VEZQWFJFR1MsIFBUUkFDRV9TRVRGUFhSRUdTLCBzaXplb2YgKGVsZl9mcHhyZWdzZXRfdCksCisr ICB7IFBUUkFDRV9HRVRGUFhSRUdTLCBQVFJBQ0VfU0VURlBYUkVHUywgMCwgc2l6ZW9mIChlbGZf ZnB4cmVnc2V0X3QpLAorICAgICBFWFRFTkRFRF9SRUdTLAorICAgICB4ODZfZmlsbF9mcHhyZWdz ZXQsIHg4Nl9zdG9yZV9mcHhyZWdzZXQgfSwKKyAjICBlbmRpZgorICMgZW5kaWYKKy0gIHsgUFRS QUNFX0dFVEZQUkVHUywgUFRSQUNFX1NFVEZQUkVHUywgc2l6ZW9mIChlbGZfZnByZWdzZXRfdCks CisrICB7IFBUUkFDRV9HRVRGUFJFR1MsIFBUUkFDRV9TRVRGUFJFR1MsIDAsIHNpemVvZiAoZWxm X2ZwcmVnc2V0X3QpLAorICAgICBGUF9SRUdTLAorICAgICB4ODZfZmlsbF9mcHJlZ3NldCwgeDg2 X3N0b3JlX2ZwcmVnc2V0IH0sCisgI2VuZGlmIC8qIEhBVkVfUFRSQUNFX0dFVFJFR1MgKi8KKy0g IHsgMCwgMCwgLTEsIC0xLCBOVUxMLCBOVUxMIH0KKysgIHsgMCwgMCwgMCwgLTEsIC0xLCBOVUxM LCBOVUxMIH0KKyB9OworIAorIHN0YXRpYyBDT1JFX0FERFIKK0BAIC03NzIsNiArODEzLDEyMSBA QCB4ODZfc2lnaW5mb19maXh1cCAoc3RydWN0IHNpZ2luZm8gKm5hdGl2CisgICByZXR1cm4gMDsK KyB9CisgDAorK3N0YXRpYyBpbnQgdXNlX3htbDsKKysKKysvKiBVcGRhdGUgZ2Ric2VydmVyX3ht bHRhcmdldC4gICovCisrCisrc3RhdGljIHZvaWQKKyt4ODZfbGludXhfdXBkYXRlX3htbHRhcmdl dCAodm9pZCkKKyt7CisrICBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIHhjcjA7CisrICBzdGF0 aWMgaW50IGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9IC0xOworKworKyAgaWYgKCFjdXJyZW50X2lu ZmVyaW9yKQorKyAgICByZXR1cm47CisrCisrI2lmZGVmIF9feDg2XzY0X18KKysgIGlmIChudW1f eG1tX3JlZ2lzdGVycyA9PSA4KQorKyAgICBpbml0X3JlZ2lzdGVyc19pMzg2X2xpbnV4ICgpOwor KyAgZWxzZQorKyAgICBpbml0X3JlZ2lzdGVyc19hbWQ2NF9saW51eCAoKTsKKysjZWxzZQorKyAg aW5pdF9yZWdpc3RlcnNfaTM4Nl9saW51eCAoKTsKKysjZW5kaWYKKysKKysgIGlmICghdXNlX3ht bCkKKysgICAgeworKyAgICAgIC8qIERvbid0IHVzZSBYTUwuICAqLworKyNpZmRlZiBfX3g4Nl82 NF9fCisrICAgICAgaWYgKG51bV94bW1fcmVnaXN0ZXJzID09IDgpCisrCWdkYnNlcnZlcl94bWx0 YXJnZXQgPSB4bWx0YXJnZXRfaTM4Nl9saW51eF9ub194bWw7CisrICAgICAgZWxzZQorKwlnZGJz ZXJ2ZXJfeG1sdGFyZ2V0ID0geG1sdGFyZ2V0X2FtZDY0X2xpbnV4X25vX3htbDsKKysjZWxzZQor KyAgICAgIGdkYnNlcnZlcl94bWx0YXJnZXQgPSB4bWx0YXJnZXRfaTM4Nl9saW51eF9ub194bWw7 CisrI2VuZGlmCisrCisrICAgICAgeDg2X3hjcjAgPSBJMzg2X1hTVEFURV9TU0VfTUFTSzsKKysK KysgICAgICByZXR1cm47CisrICAgIH0KKysKKysgIC8qIFVwZGF0ZSBnZGJzZXJ2ZXJfeG1sdGFy Z2V0IHdpdGggWE1MIHN1cHBvcnQuICAqLworKyNpZmRlZiBfX3g4Nl82NF9fCisrICBpZiAobnVt X3htbV9yZWdpc3RlcnMgPT0gOCkKKysgICAgZ2Ric2VydmVyX3htbHRhcmdldCA9ICJpMzg2LWxp bnV4LnhtbCI7CisrICBlbHNlCisrICAgIGdkYnNlcnZlcl94bWx0YXJnZXQgPSAiYW1kNjQtbGlu dXgueG1sIjsKKysjZWxzZQorKyAgZ2Ric2VydmVyX3htbHRhcmdldCA9ICJpMzg2LWxpbnV4Lnht bCI7CisrI2VuZGlmCisrCisrICAvKiBDaGVjayBpZiBYU0FWRSBleHRlbmRlZCBzdGF0ZSBpcyBz dXBwb3J0ZWQuICAqLworKyAgaWYgKGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9PSAtMSkKKysgICAg eworKyAgICAgIGludCBwaWQgPSBwaWRfb2YgKGdldF90aHJlYWRfbHdwIChjdXJyZW50X2luZmVy aW9yKSk7CisrICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHhzdGF0ZXJlZ3NbSTM4Nl9YU1RBVEVf U1NFX1NJWkUgLyBzaXplb2YgKGxvbmcgbG9uZyldOworKyAgICAgIHN0cnVjdCBpb3ZlYyBpb3Y7 CisrICAgICAgc3RydWN0IHJlZ3NldF9pbmZvICpyZWdzZXQ7CisrCisrICAgICAgaW92Lmlvdl9i YXNlID0geHN0YXRlcmVnczsKKysgICAgICBpb3YuaW92X2xlbiA9IHNpemVvZiAoeHN0YXRlcmVn cyk7CisrCisrICAgICAgLyogQ2hlY2sgaWYgUFRSQUNFX0dFVFJFR1NFVCB3b3Jrcy4gICovCisr ICAgICAgaWYgKHB0cmFjZSAoUFRSQUNFX0dFVFJFR1NFVCwgcGlkLCAodW5zaWduZWQgaW50KSBO VF9YODZfWFNUQVRFLAorKwkJICAmaW92KSA8IDApCisrCXsKKysJICBoYXZlX3B0cmFjZV9nZXRy ZWdzZXQgPSAwOworKwkgIHJldHVybjsKKysJfQorKyAgICAgIGVsc2UKKysJaGF2ZV9wdHJhY2Vf Z2V0cmVnc2V0ID0gMTsKKysKKysgICAgICAvKiBHZXQgWENSMCBmcm9tIFhTQVZFIGV4dGVuZGVk IHN0YXRlIGF0IGJ5dGUgNDY0LiAgKi8KKysgICAgICB4Y3IwID0geHN0YXRlcmVnc1s0NjQgLyBz aXplb2YgKGxvbmcgbG9uZyldOworKworKyAgICAgIC8qIFVzZSBQVFJBQ0VfR0VUUkVHU0VUIGlm IGl0IGlzIGF2YWlsYWJsZS4gICovCisrICAgICAgZm9yIChyZWdzZXQgPSB0YXJnZXRfcmVnc2V0 czsKKysJICAgcmVnc2V0LT5maWxsX2Z1bmN0aW9uICE9IE5VTEw7IHJlZ3NldCsrKQorKwlpZiAo cmVnc2V0LT5nZXRfcmVxdWVzdCA9PSBQVFJBQ0VfR0VUUkVHU0VUKQorKwkgIHJlZ3NldC0+c2l6 ZSA9IEkzODZfWFNUQVRFX1NJWkUgKHhjcjApOworKwllbHNlIGlmIChyZWdzZXQtPnR5cGUgIT0g R0VORVJBTF9SRUdTKQorKwkgIHJlZ3NldC0+c2l6ZSA9IDA7CisrICAgIH0KKysKKysgIGlmICho YXZlX3B0cmFjZV9nZXRyZWdzZXQpCisrICAgIHsKKysgICAgICAvKiBBVlggaXMgdGhlIGhpZ2hl c3QgZmVhdHVyZSB3ZSBzdXBwb3J0LiAgKi8KKysgICAgICBpZiAoKHhjcjAgJiBJMzg2X1hTVEFU RV9BVlhfTUFTSykgPT0gSTM4Nl9YU1RBVEVfQVZYX01BU0spCisrCXsKKysJICB4ODZfeGNyMCA9 IHhjcjA7CisrCisrI2lmZGVmIF9feDg2XzY0X18KKysJICAvKiBJMzg2IGhhcyA4IHhtbSByZWdz LiAgKi8KKysJICBpZiAobnVtX3htbV9yZWdpc3RlcnMgPT0gOCkKKysJICAgIGluaXRfcmVnaXN0 ZXJzX2kzODZfYXZ4X2xpbnV4ICgpOworKwkgIGVsc2UKKysJICAgIGluaXRfcmVnaXN0ZXJzX2Ft ZDY0X2F2eF9saW51eCAoKTsKKysjZWxzZQorKwkgIGluaXRfcmVnaXN0ZXJzX2kzODZfYXZ4X2xp bnV4ICgpOworKyNlbmRpZgorKwl9CisrICAgIH0KKyt9CisrCisrLyogUHJvY2VzcyBxU3VwcG9y dGVkIHF1ZXJ5LCAieG1sUmVnaXN0ZXJzPSIuICBVcGRhdGUgdGhlIGJ1ZmZlciBzaXplIGZvcgor KyAgIFBUUkFDRV9HRVRSRUdTRVQuICAqLworKworK3N0YXRpYyB2b2lkCisreDg2X2xpbnV4X3By b2Nlc3NfcXN1cHBvcnRlZCAoY29uc3QgY2hhciAqcXVlcnkpCisreworKyAgLyogUmV0dXJuIGlm IGdkYiBkb2Vzbid0IHN1cHBvcnQgWE1MLiAgSWYgZ2RiIHNlbmRzICJ4bWxSZWdpc3RlcnM9Igor KyAgICAgaW4gcVN1cHBvcnRlZCBxdWVyeSwgaXQgc3VwcG9ydHMgeDg2IFhNTCB0YXJnZXQgZGVz Y3JpcHRpb25zLiAgKi8KKysgIHVzZV94bWwgPSBxdWVyeSAhPSBOVUxMICYmIHN0cm5jbXAgKHF1 ZXJ5LCAieG1sUmVnaXN0ZXJzPSIsIDEzKSA9PSAwOworKworKyAgeDg2X2xpbnV4X3VwZGF0ZV94 bWx0YXJnZXQgKCk7CisrfQorKworIC8qIEluaXRpYWxpemUgZ2Ric2VydmVyIGZvciB0aGUgYXJj aGl0ZWN0dXJlIG9mIHRoZSBpbmZlcmlvci4gICovCisgCisgc3RhdGljIHZvaWQKK0BAIC03OTIs OCArOTQ4LDYgQEAgeDg2X2FyY2hfc2V0dXAgKHZvaWQpCisgICAgIH0KKyAgIGVsc2UgaWYgKHVz ZV82NGJpdCkKKyAgICAgeworLSAgICAgIGluaXRfcmVnaXN0ZXJzX2FtZDY0X2xpbnV4ICgpOwor LQorICAgICAgIC8qIEFtZDY0IGRvZXNuJ3QgaGF2ZSBIQVZFX0xJTlVYX1VTUlJFR1MuICAqLwor ICAgICAgIHRoZV9sb3dfdGFyZ2V0Lm51bV9yZWdzID0gLTE7CisgICAgICAgdGhlX2xvd190YXJn ZXQucmVnbWFwID0gTlVMTDsKK0BAIC04MDMsMTQgKzk1NywxMyBAQCB4ODZfYXJjaF9zZXR1cCAo dm9pZCkKKyAgICAgICAvKiBBbWQ2NCBoYXMgMTYgeG1tIHJlZ3MuICAqLworICAgICAgIG51bV94 bW1fcmVnaXN0ZXJzID0gMTY7CisgCisrICAgICAgeDg2X2xpbnV4X3VwZGF0ZV94bWx0YXJnZXQg KCk7CisgICAgICAgcmV0dXJuOworICAgICB9CisgI2VuZGlmCisgCisgICAvKiBPayB3ZSBoYXZl IGEgMzItYml0IGluZmVyaW9yLiAgKi8KKyAKKy0gIGluaXRfcmVnaXN0ZXJzX2kzODZfbGludXgg KCk7CistCisgICB0aGVfbG93X3RhcmdldC5udW1fcmVncyA9IEkzODZfTlVNX1JFR1M7CisgICB0 aGVfbG93X3RhcmdldC5yZWdtYXAgPSBpMzg2X3JlZ21hcDsKKyAgIHRoZV9sb3dfdGFyZ2V0LmNh bm5vdF9mZXRjaF9yZWdpc3RlciA9IGkzODZfY2Fubm90X2ZldGNoX3JlZ2lzdGVyOworQEAgLTgx OCw2ICs5NzEsOCBAQCB4ODZfYXJjaF9zZXR1cCAodm9pZCkKKyAKKyAgIC8qIEkzODYgaGFzIDgg eG1tIHJlZ3MuICAqLworICAgbnVtX3htbV9yZWdpc3RlcnMgPSA4OworKworKyAgeDg2X2xpbnV4 X3VwZGF0ZV94bWx0YXJnZXQgKCk7CisgfQorIAorIC8qIFRoaXMgaXMgaW5pdGlhbGl6ZWQgYXNz dW1pbmcgYW4gYW1kNjQgdGFyZ2V0LgorQEAgLTg1MCw1ICsxMDA1LDYgQEAgc3RydWN0IGxpbnV4 X3RhcmdldF9vcHMgdGhlX2xvd190YXJnZXQgPQorICAgeDg2X3NpZ2luZm9fZml4dXAsCisgICB4 ODZfbGludXhfbmV3X3Byb2Nlc3MsCisgICB4ODZfbGludXhfbmV3X3RocmVhZCwKKy0gIHg4Nl9s aW51eF9wcmVwYXJlX3RvX3Jlc3VtZQorKyAgeDg2X2xpbnV4X3ByZXBhcmVfdG9fcmVzdW1lLAor KyAgeDg2X2xpbnV4X3Byb2Nlc3NfcXN1cHBvcnRlZCAKKyB9OworLS0tIC4vZ2RiL2dkYnNlcnZl ci9saW51eC14dGVuc2EtbG93LmMJMjAxMC0wMS0yMCAyMzo1NTozOC4wMDAwMDAwMDAgKzAxMDAK KysrKyAuL2dkYi9nZGJzZXJ2ZXIvbGludXgteHRlbnNhLWxvdy5jCTIwMTAtMDQtMDMgMjE6MTI6 MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMTMxLDEzICsxMzEsMTMgQEAgeHRlbnNhX3N0b3JlX3h0 cmVnc2V0IChzdHJ1Y3QgcmVnY2FjaGUgKgorIH0KKyAKKyBzdHJ1Y3QgcmVnc2V0X2luZm8gdGFy Z2V0X3JlZ3NldHNbXSA9IHsKKy0gIHsgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRSRUdTLCBz aXplb2YgKGVsZl9ncmVnc2V0X3QpLAorKyAgeyBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX1NFVFJF R1MsIDAsIHNpemVvZiAoZWxmX2dyZWdzZXRfdCksCisgICAgIEdFTkVSQUxfUkVHUywKKyAgICAg eHRlbnNhX2ZpbGxfZ3JlZ3NldCwgeHRlbnNhX3N0b3JlX2dyZWdzZXQgfSwKKy0gIHsgUFRSQUNF X0dFVFhUUkVHUywgUFRSQUNFX1NFVFhUUkVHUywgWFRFTlNBX0VMRl9YVFJFR19TSVpFLAorKyAg eyBQVFJBQ0VfR0VUWFRSRUdTLCBQVFJBQ0VfU0VUWFRSRUdTLCAwLCBYVEVOU0FfRUxGX1hUUkVH X1NJWkUsCisgICAgIEVYVEVOREVEX1JFR1MsCisgICAgIHh0ZW5zYV9maWxsX3h0cmVnc2V0LCB4 dGVuc2Ffc3RvcmVfeHRyZWdzZXQgfSwKKy0gIHsgMCwgMCwgLTEsIC0xLCBOVUxMLCBOVUxMIH0K KysgIHsgMCwgMCwgMCwgLTEsIC0xLCBOVUxMLCBOVUxMIH0KKyB9OworIAorICNpZiBYQ0hBTF9I QVZFX0JFCistLS0gLi9nZGIvZ2Ric2VydmVyL3NlcnZlci5jCTIwMTAtMDEtMjAgMjM6NTU6Mzgu MDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZ2Ric2VydmVyL3NlcnZlci5jCTIwMTAtMDQtMDMg MjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMTIzNiw2ICsxMjM2LDkgQEAgaGFuZGxlX3F1 ZXJ5IChjaGFyICpvd25fYnVmLCBpbnQgcGFja2V0XworICAgICB7CisgICAgICAgY2hhciAqcCA9 ICZvd25fYnVmWzEwXTsKKyAKKysgICAgICAvKiBTdGFydCBwcm9jZXNzaW5nIHFTdXBwb3J0ZWQg cGFja2V0LiAgKi8KKysgICAgICB0YXJnZXRfcHJvY2Vzc19xc3VwcG9ydGVkIChOVUxMKTsKKysK KyAgICAgICAvKiBQcm9jZXNzIGVhY2ggZmVhdHVyZSBiZWluZyBwcm92aWRlZCBieSBHREIuICBU aGUgZmlyc3QKKyAJIGZlYXR1cmUgd2lsbCBmb2xsb3cgYSAnOicsIGFuZCBsYXR0ZXIgZmVhdHVy ZXMgd2lsbCBmb2xsb3cKKyAJICc7Jy4gICovCitAQCAtMTI1MSw2ICsxMjU0LDggQEAgaGFuZGxl X3F1ZXJ5IChjaGFyICpvd25fYnVmLCBpbnQgcGFja2V0XworIAkJaWYgKHRhcmdldF9zdXBwb3J0 c19tdWx0aV9wcm9jZXNzICgpKQorIAkJICBtdWx0aV9wcm9jZXNzID0gMTsKKyAJICAgICAgfQor KwkgICAgZWxzZQorKwkgICAgICB0YXJnZXRfcHJvY2Vzc19xc3VwcG9ydGVkIChwKTsKKyAJICB9 CisgCisgICAgICAgc3ByaW50ZiAob3duX2J1ZiwgIlBhY2tldFNpemU9JXg7UVBhc3NTaWduYWxz KyIsIFBCVUZTSVogLSAxKTsKKy0tLSAuL2dkYi9nZGJzZXJ2ZXIvdGFyZ2V0LmgJMjAxMC0wMS0y MCAyMzo1NTozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvdGFyZ2V0LmgJ MjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yODYsNiArMjg2LDkgQEAg c3RydWN0IHRhcmdldF9vcHMKKyAKKyAgIC8qIFJldHVybnMgdGhlIGNvcmUgZ2l2ZW4gYSB0aHJl YWQsIG9yIC0xIGlmIG5vdCBrbm93bi4gICovCisgICBpbnQgKCpjb3JlX29mX3RocmVhZCkgKHB0 aWRfdCk7CisrCisrICAvKiBUYXJnZXQgc3BlY2lmaWMgcVN1cHBvcnRlZCBzdXBwb3J0LiAgKi8K KysgIHZvaWQgKCpwcm9jZXNzX3FzdXBwb3J0ZWQpIChjb25zdCBjaGFyICopOworIH07CisgCisg ZXh0ZXJuIHN0cnVjdCB0YXJnZXRfb3BzICp0aGVfdGFyZ2V0OworQEAgLTMyNiw2ICszMjksMTAg QEAgdm9pZCBzZXRfdGFyZ2V0X29wcyAoc3RydWN0IHRhcmdldF9vcHMgKgorICAgKHRoZV90YXJn ZXQtPnN1cHBvcnRzX211bHRpX3Byb2Nlc3MgPyBcCisgICAgKCp0aGVfdGFyZ2V0LT5zdXBwb3J0 c19tdWx0aV9wcm9jZXNzKSAoKSA6IDApCisgCisrI2RlZmluZSB0YXJnZXRfcHJvY2Vzc19xc3Vw cG9ydGVkKHF1ZXJ5KSBcCisrICBpZiAodGhlX3RhcmdldC0+cHJvY2Vzc19xc3VwcG9ydGVkKSBc CisrICAgIHRoZV90YXJnZXQtPnByb2Nlc3NfcXN1cHBvcnRlZCAocXVlcnkpCisrCisgLyogU3Rh cnQgbm9uLXN0b3AgbW9kZSwgcmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGZhaWx1cmUuICAg Ki8KKyAKKyBpbnQgc3RhcnRfbm9uX3N0b3AgKGludCBub25zdG9wKTsKKy0tLSAuL2dkYi9pMzg2 LWxpbnV4LW5hdC5jCTIwMTAtMDQtMDMgMjA6NTk6NTIuMDAwMDAwMDAwICswMjAwCisrKysgLi9n ZGIvaTM4Ni1saW51eC1uYXQuYwkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAor QEAgLTIzLDExICsyMywxNCBAQAorICNpbmNsdWRlICJpbmZlcmlvci5oIgorICNpbmNsdWRlICJn ZGJjb3JlLmgiCisgI2luY2x1ZGUgInJlZ2NhY2hlLmgiCisrI2luY2x1ZGUgInJlZ3NldC5oIgor ICNpbmNsdWRlICJ0YXJnZXQuaCIKKyAjaW5jbHVkZSAibGludXgtbmF0LmgiCisgCisgI2luY2x1 ZGUgImdkYl9hc3NlcnQuaCIKKyAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgorKyNpbmNsdWRlICJl bGYvY29tbW9uLmgiCisrI2luY2x1ZGUgPHN5cy91aW8uaD4KKyAjaW5jbHVkZSA8c3lzL3B0cmFj ZS5oPgorICNpbmNsdWRlIDxzeXMvdXNlci5oPgorICNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CitA QCAtNjksNiArNzIsMTkgQEAKKyAKKyAvKiBEZWZpbmVzIHBzX2Vycl9lLCBzdHJ1Y3QgcHNfcHJv Y2hhbmRsZS4gICovCisgI2luY2x1ZGUgImdkYl9wcm9jX3NlcnZpY2UuaCIKKysKKysjaW5jbHVk ZSAiaTM4Ni14c3RhdGUuaCIKKysKKysjaWZuZGVmIFBUUkFDRV9HRVRSRUdTRVQKKysjZGVmaW5l IFBUUkFDRV9HRVRSRUdTRVQJMHg0MjA0CisrI2VuZGlmCisrCisrI2lmbmRlZiBQVFJBQ0VfU0VU UkVHU0VUCisrI2RlZmluZSBQVFJBQ0VfU0VUUkVHU0VUCTB4NDIwNQorKyNlbmRpZgorKworKy8q IERvZXMgdGhlIGN1cnJlbnQgaG9zdCBzdXBwb3J0IFBUUkFDRV9HRVRSRUdTRVQ/ICAqLworK3N0 YXRpYyBpbnQgaGF2ZV9wdHJhY2VfZ2V0cmVnc2V0ID0gLTE7CisgDAorIAorIC8qIFRoZSByZWdp c3RlciBzZXRzIHVzZWQgaW4gR05VL0xpbnV4IEVMRiBjb3JlLWR1bXBzIGFyZSBpZGVudGljYWwg dG8KK0BAIC05OCw2ICsxMTQsOCBAQCBzdGF0aWMgaW50IHJlZ21hcFtdID0gCisgICAtMSwgLTEs IC0xLCAtMSwJCS8qIHhtbTAsIHhtbTEsIHhtbTIsIHhtbTMgKi8KKyAgIC0xLCAtMSwgLTEsIC0x LAkJLyogeG1tNCwgeG1tNSwgeG1tNiwgeG1tNiAqLworICAgLTEsCQkJCS8qIG14Y3NyICovCisr ICAtMSwgLTEsIC0xLCAtMSwJCS8qIHltbTBoLCB5bW0xaCwgeW1tMmgsIHltbTNoICovCisrICAt MSwgLTEsIC0xLCAtMSwJCS8qIHltbTRoLCB5bW01aCwgeW1tNmgsIHltbTZoICovCisgICBPUklH X0VBWAorIH07CisgCitAQCAtMTEwLDYgKzEyOCw5IEBAIHN0YXRpYyBpbnQgcmVnbWFwW10gPSAK KyAjZGVmaW5lIEdFVEZQWFJFR1NfU1VQUExJRVMocmVnbm8pIFwKKyAgIChJMzg2X1NUMF9SRUdO VU0gPD0gKHJlZ25vKSAmJiAocmVnbm8pIDwgSTM4Nl9TU0VfTlVNX1JFR1MpCisgCisrI2RlZmlu ZSBHRVRYU1RBVEVSRUdTX1NVUFBMSUVTKHJlZ25vKSBcCisrICAoSTM4Nl9TVDBfUkVHTlVNIDw9 IChyZWdubykgJiYgKHJlZ25vKSA8IEkzODZfQVZYX05VTV9SRUdTKQorKworIC8qIERvZXMgdGhl IGN1cnJlbnQgaG9zdCBzdXBwb3J0IHRoZSBHRVRSRUdTIHJlcXVlc3Q/ICAqLworIGludCBoYXZl X3B0cmFjZV9nZXRyZWdzID0KKyAjaWZkZWYgSEFWRV9QVFJBQ0VfR0VUUkVHUworQEAgLTM1NSw2 ICszNzYsNTcgQEAgc3RhdGljIHZvaWQgc3RvcmVfZnByZWdzIChjb25zdCBzdHJ1Y3QgcgorIAor IC8qIFRyYW5zZmVyaW5nIGZsb2F0aW5nLXBvaW50IGFuZCBTU0UgcmVnaXN0ZXJzIHRvIGFuZCBm cm9tIEdEQi4gICovCisgCisrLyogRmV0Y2ggYWxsIHJlZ2lzdGVycyBjb3ZlcmVkIGJ5IHRoZSBQ VFJBQ0VfR0VUUkVHU0VUIHJlcXVlc3QgZnJvbQorKyAgIHByb2Nlc3MvdGhyZWFkIFRJRCBhbmQg c3RvcmUgdGhlaXIgdmFsdWVzIGluIEdEQidzIHJlZ2lzdGVyIGFycmF5LgorKyAgIFJldHVybiBu b24temVybyBpZiBzdWNjZXNzZnVsLCB6ZXJvIG90aGVyd2lzZS4gICovCisrCisrc3RhdGljIGlu dAorK2ZldGNoX3hzdGF0ZXJlZ3MgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCB0aWQp CisreworKyAgY2hhciB4c3RhdGVyZWdzW0kzODZfWFNUQVRFX01BWF9TSVpFXTsKKysgIHN0cnVj dCBpb3ZlYyBpb3Y7CisrCisrICBpZiAoIWhhdmVfcHRyYWNlX2dldHJlZ3NldCkKKysgICAgcmV0 dXJuIDA7CisrCisrICBpb3YuaW92X2Jhc2UgPSB4c3RhdGVyZWdzOworKyAgaW92Lmlvdl9sZW4g PSBzaXplb2YoeHN0YXRlcmVncyk7CisrICBpZiAocHRyYWNlIChQVFJBQ0VfR0VUUkVHU0VULCB0 aWQsICh1bnNpZ25lZCBpbnQpIE5UX1g4Nl9YU1RBVEUsCisrCSAgICAgICZpb3YpIDwgMCkKKysg ICAgcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRuJ3QgcmVhZCBleHRlbmRlZCBzdGF0ZSBzdGF0 dXMiKSk7CisrCisrICBpMzg3X3N1cHBseV94c2F2ZSAocmVnY2FjaGUsIC0xLCB4c3RhdGVyZWdz KTsKKysgIHJldHVybiAxOworK30KKysKKysvKiBTdG9yZSBhbGwgdmFsaWQgcmVnaXN0ZXJzIGlu IEdEQidzIHJlZ2lzdGVyIGFycmF5IGNvdmVyZWQgYnkgdGhlCisrICAgUFRSQUNFX1NFVFJFR1NF VCByZXF1ZXN0IGludG8gdGhlIHByb2Nlc3MvdGhyZWFkIHNwZWNpZmllZCBieSBUSUQuCisrICAg UmV0dXJuIG5vbi16ZXJvIGlmIHN1Y2Nlc3NmdWwsIHplcm8gb3RoZXJ3aXNlLiAgKi8KKysKKytz dGF0aWMgaW50Cisrc3RvcmVfeHN0YXRlcmVncyAoY29uc3Qgc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSwgaW50IHRpZCwgaW50IHJlZ25vKQorK3sKKysgIGNoYXIgeHN0YXRlcmVnc1tJMzg2X1hT VEFURV9NQVhfU0laRV07CisrICBzdHJ1Y3QgaW92ZWMgaW92OworKworKyAgaWYgKCFoYXZlX3B0 cmFjZV9nZXRyZWdzZXQpCisrICAgIHJldHVybiAwOworKyAgCisrICBpb3YuaW92X2Jhc2UgPSB4 c3RhdGVyZWdzOworKyAgaW92Lmlvdl9sZW4gPSBzaXplb2YoeHN0YXRlcmVncyk7CisrICBpZiAo cHRyYWNlIChQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh1bnNpZ25lZCBpbnQpIE5UX1g4Nl9YU1RB VEUsCisrCSAgICAgICZpb3YpIDwgMCkKKysgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRu J3QgcmVhZCBleHRlbmRlZCBzdGF0ZSBzdGF0dXMiKSk7CisrCisrICBpMzg3X2NvbGxlY3RfeHNh dmUgKHJlZ2NhY2hlLCByZWdubywgeHN0YXRlcmVncywgMCk7CisrCisrICBpZiAocHRyYWNlIChQ VFJBQ0VfU0VUUkVHU0VULCB0aWQsICh1bnNpZ25lZCBpbnQpIE5UX1g4Nl9YU1RBVEUsCisrCSAg ICAgIChpbnQpICZpb3YpIDwgMCkKKysgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRuJ3Qg d3JpdGUgZXh0ZW5kZWQgc3RhdGUgc3RhdHVzIikpOworKworKyAgcmV0dXJuIDE7CisrfQorKwor ICNpZmRlZiBIQVZFX1BUUkFDRV9HRVRGUFhSRUdTCisgCisgLyogRmlsbCBHREIncyByZWdpc3Rl ciBhcnJheSB3aXRoIHRoZSBmbG9hdGluZy1wb2ludCBhbmQgU1NFIHJlZ2lzdGVyCitAQCAtNDg5 LDYgKzU2MSw4IEBAIGkzODZfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzIChzdHIKKyAJ ICByZXR1cm47CisgCX0KKyAKKysgICAgICBpZiAoZmV0Y2hfeHN0YXRlcmVncyAocmVnY2FjaGUs IHRpZCkpCisrCXJldHVybjsKKyAgICAgICBpZiAoZmV0Y2hfZnB4cmVncyAocmVnY2FjaGUsIHRp ZCkpCisgCXJldHVybjsKKyAgICAgICBmZXRjaF9mcHJlZ3MgKHJlZ2NhY2hlLCB0aWQpOworQEAg LTUwMSw2ICs1NzUsMTIgQEAgaTM4Nl9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMgKHN0 cgorICAgICAgIHJldHVybjsKKyAgICAgfQorIAorKyAgaWYgKEdFVFhTVEFURVJFR1NfU1VQUExJ RVMgKHJlZ25vKSkKKysgICAgeworKyAgICAgIGlmIChmZXRjaF94c3RhdGVyZWdzIChyZWdjYWNo ZSwgdGlkKSkKKysJcmV0dXJuOworKyAgICB9CisrCisgICBpZiAoR0VURlBYUkVHU19TVVBQTElF UyAocmVnbm8pKQorICAgICB7CisgICAgICAgaWYgKGZldGNoX2ZweHJlZ3MgKHJlZ2NhY2hlLCB0 aWQpKQorQEAgLTU1Myw2ICs2MzMsOCBAQCBpMzg2X2xpbnV4X3N0b3JlX2luZmVyaW9yX3JlZ2lz dGVycyAoc3RyCisgICBpZiAocmVnbm8gPT0gLTEpCisgICAgIHsKKyAgICAgICBzdG9yZV9yZWdz IChyZWdjYWNoZSwgdGlkLCByZWdubyk7CisrICAgICAgaWYgKHN0b3JlX3hzdGF0ZXJlZ3MgKHJl Z2NhY2hlLCB0aWQsIHJlZ25vKSkKKysJcmV0dXJuOworICAgICAgIGlmIChzdG9yZV9mcHhyZWdz IChyZWdjYWNoZSwgdGlkLCByZWdubykpCisgCXJldHVybjsKKyAgICAgICBzdG9yZV9mcHJlZ3Mg KHJlZ2NhY2hlLCB0aWQsIHJlZ25vKTsKK0BAIC01NjUsNiArNjQ3LDEyIEBAIGkzODZfbGludXhf c3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzIChzdHIKKyAgICAgICByZXR1cm47CisgICAgIH0KKyAK KysgIGlmIChHRVRYU1RBVEVSRUdTX1NVUFBMSUVTIChyZWdubykpCisrICAgIHsKKysgICAgICBp ZiAoc3RvcmVfeHN0YXRlcmVncyAocmVnY2FjaGUsIHRpZCwgcmVnbm8pKQorKwlyZXR1cm47Cisr ICAgIH0KKysKKyAgIGlmIChHRVRGUFhSRUdTX1NVUFBMSUVTIChyZWdubykpCisgICAgIHsKKyAg ICAgICBpZiAoc3RvcmVfZnB4cmVncyAocmVnY2FjaGUsIHRpZCwgcmVnbm8pKQorQEAgLTg3Myw3 ICs5NjEsNTAgQEAgaTM4Nl9saW51eF9jaGlsZF9wb3N0X3N0YXJ0dXBfaW5mZXJpb3IgKAorIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKgorIGkzODZfbGludXhfcmVhZF9kZXNjcmlw dGlvbiAoc3RydWN0IHRhcmdldF9vcHMgKm9wcykKKyB7CistICByZXR1cm4gdGRlc2NfaTM4Nl9s aW51eDsKKysgIHN0YXRpYyB1aW50NjRfdCB4Y3IwOworKworKyAgaWYgKGhhdmVfcHRyYWNlX2dl dHJlZ3NldCA9PSAtMSkKKysgICAgeworKyAgICAgIGludCB0aWQ7CisrICAgICAgdWludDY0X3Qg eHN0YXRlcmVnc1soSTM4Nl9YU1RBVEVfU1NFX1NJWkUgLyBzaXplb2YgKHVpbnQ2NF90KSldOwor KyAgICAgIHN0cnVjdCBpb3ZlYyBpb3Y7CisrICAgICAgdW5zaWduZWQgaW50IHhzdGF0ZV9zaXpl OworKworKyAgICAgIC8qIEdOVS9MaW51eCBMV1AgSUQncyBhcmUgcHJvY2VzcyBJRCdzLiAgKi8K KysgICAgICB0aWQgPSBUSURHRVQgKGluZmVyaW9yX3B0aWQpOworKyAgICAgIGlmICh0aWQgPT0g MCkKKysJdGlkID0gUElER0VUIChpbmZlcmlvcl9wdGlkKTsgLyogTm90IGEgdGhyZWFkZWQgcHJv Z3JhbS4gICovCisrCisrICAgICAgaW92Lmlvdl9iYXNlID0geHN0YXRlcmVnczsKKysgICAgICBp b3YuaW92X2xlbiA9IHNpemVvZiAoeHN0YXRlcmVncyk7CisrCisrICAgICAgLyogQ2hlY2sgaWYg UFRSQUNFX0dFVFJFR1NFVCB3b3Jrcy4gICovCisrICAgICAgaWYgKHB0cmFjZSAoUFRSQUNFX0dF VFJFR1NFVCwgdGlkLCAodW5zaWduZWQgaW50KSBOVF9YODZfWFNUQVRFLAorKwkJICAmaW92KSA8 IDApCisrCXsKKysJICBoYXZlX3B0cmFjZV9nZXRyZWdzZXQgPSAwOworKwkgIHhzdGF0ZV9zaXpl ID0gMDsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9 IDE7CisrCisrCSAgLyogR2V0IFhDUjAgZnJvbSBYU0FWRSBleHRlbmRlZCBzdGF0ZS4gICovCisr CSAgeGNyMCA9IHhzdGF0ZXJlZ3NbKEkzODZfTElOVVhfWFNBVkVfWENSMF9PRkZTRVQKKysJCQkg ICAgIC8gc2l6ZW9mIChsb25nIGxvbmcpKV07CisrCisrCSAgeHN0YXRlX3NpemUgPSBJMzg2X1hT VEFURV9TSVpFICh4Y3IwKTsKKysJfQorKworKyAgICAgIGkzODZfbGludXhfdXBkYXRlX3hzdGF0 ZXJlZ3NldCAoeHN0YXRlX3NpemUpOworKyAgICB9CisrCisrICAvKiBDaGVjayB0aGUgbmF0aXZl IFhDUjAgb25seSBpZiBQVFJBQ0VfR0VUUkVHU0VUIGlzIGF2YWlsYWJsZS4gICovCisrICBpZiAo aGF2ZV9wdHJhY2VfZ2V0cmVnc2V0CisrICAgICAgJiYgKHhjcjAgJiBJMzg2X1hTVEFURV9BVlhf TUFTSykgPT0gSTM4Nl9YU1RBVEVfQVZYX01BU0spCisrICAgIHJldHVybiB0ZGVzY19pMzg2X2F2 eF9saW51eDsKKysgIGVsc2UKKysgICAgcmV0dXJuIHRkZXNjX2kzODZfbGludXg7CisgfQorIAor IHZvaWQKKy0tLSAuL2dkYi9pMzg2LWxpbnV4LXRkZXAuYwkyMDEwLTA0LTAzIDIwOjU5OjUyLjAw MDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2kzODYtbGludXgtdGRlcC5jCTIwMTAtMDQtMDMgMjE6 MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMjMsNiArMjMsNyBAQAorICNpbmNsdWRlICJmcmFt ZS5oIgorICNpbmNsdWRlICJ2YWx1ZS5oIgorICNpbmNsdWRlICJyZWdjYWNoZS5oIgorKyNpbmNs dWRlICJyZWdzZXQuaCIKKyAjaW5jbHVkZSAiaW5mZXJpb3IuaCIKKyAjaW5jbHVkZSAib3NhYmku aCIKKyAjaW5jbHVkZSAicmVnZ3JvdXBzLmgiCitAQCAtMzYsOSArMzcsMTEgQEAKKyAjaW5jbHVk ZSAic29saWItc3ZyNC5oIgorICNpbmNsdWRlICJzeW10YWIuaCIKKyAjaW5jbHVkZSAiYXJjaC11 dGlscy5oIgorLSNpbmNsdWRlICJyZWdzZXQuaCIKKyAjaW5jbHVkZSAieG1sLXN5c2NhbGwuaCIK KyAKKysjaW5jbHVkZSAiaTM4Ny10ZGVwLmgiCisrI2luY2x1ZGUgImkzODYteHN0YXRlLmgiCisr CisgLyogVGhlIHN5c2NhbGwncyBYTUwgZmlsZW5hbWUgZm9yIGkzODYuICAqLworICNkZWZpbmUg WE1MX1NZU0NBTExfRklMRU5BTUVfSTM4NiAic3lzY2FsbHMvaTM4Ni1saW51eC54bWwiCisgCitA QCAtNDcsNiArNTAsNyBAQAorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKyAjaW5jbHVkZSAiZmVh dHVyZXMvaTM4Ni9pMzg2LWxpbnV4LmMiCisrI2luY2x1ZGUgImZlYXR1cmVzL2kzODYvaTM4Ni1h dngtbGludXguYyIKKyAKKyAvKiBTdXBwb3J0ZWQgcmVnaXN0ZXIgbm90ZSBzZWN0aW9ucy4gICov Cisgc3RhdGljIHN0cnVjdCBjb3JlX3JlZ3NldF9zZWN0aW9uIGkzODZfbGludXhfcmVnc2V0X3Nl Y3Rpb25zW10gPQorQEAgLTU0LDYgKzU4LDcgQEAgc3RhdGljIHN0cnVjdCBjb3JlX3JlZ3NldF9z ZWN0aW9uIGkzODZfbAorICAgeyAiLnJlZyIsIDE0NCwgImdlbmVyYWwtcHVycG9zZSIgfSwKKyAg IHsgIi5yZWcyIiwgMTA4LCAiZmxvYXRpbmctcG9pbnQiIH0sCisgICB7ICIucmVnLXhmcCIsIDUx MiwgImV4dGVuZGVkIGZsb2F0aW5nLXBvaW50IiB9LAorKyAgeyAiLnJlZy14c3RhdGUiLCAwLCAi WFNBVkUgZXh0ZW5kZWQgc3RhdGUiIH0sCisgICB7IE5VTEwsIDAgfQorIH07CisgCitAQCAtNTMz LDYgKzUzOCw3IEBAIHN0YXRpYyBpbnQgaTM4Nl9saW51eF9ncmVnc2V0X3JlZ19vZmZzZXQKKyAg IC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgIC0xLCAtMSwgLTEsIC0xLCAtMSwg LTEsIC0xLCAtMSwKKyAgIC0xLAorKyAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAor ICAgMTEgKiA0CQkJLyogIm9yaWdfZWF4IiAqLworIH07CisgCitAQCAtNTYwLDYgKzU2Niw1OSBA QCBzdGF0aWMgaW50IGkzODZfbGludXhfc2NfcmVnX29mZnNldFtdID0KKyAgIDAgKiA0CQkJCS8q ICVncyAqLworIH07CisgCisrLyogVXBkYXRlIFhTQVZFIGV4dGVuZGVkIHN0YXRlIHJlZ2lzdGVy IG5vdGUgc2VjdGlvbi4gICovCisrCisrdm9pZAorK2kzODZfbGludXhfdXBkYXRlX3hzdGF0ZXJl Z3NldCAodW5zaWduZWQgaW50IHhzdGF0ZV9zaXplKQorK3sKKysgIHN0cnVjdCBjb3JlX3JlZ3Nl dF9zZWN0aW9uICp4c3RhdGUgPSAmaTM4Nl9saW51eF9yZWdzZXRfc2VjdGlvbnNbM107CisrCisr ICAvKiBVcGRhdGUgdGhlIFhTQVZFIGV4dGVuZGVkIHN0YXRlIHJlZ2lzdGVyIG5vdGUgc2VjdGlv biBmb3IgImdjb3JlIi4KKysgICAgIERpc2FibGUgaXQgaWYgaXRzIHNpemUgaXMgMC4gICovCisr ICBnZGJfYXNzZXJ0IChzdHJjbXAgKHhzdGF0ZS0+c2VjdF9uYW1lLCAiLnJlZy14c3RhdGUiKSA9 PSAwKTsKKysgIGlmICh4c3RhdGVfc2l6ZSkKKysgICAgeHN0YXRlLT5zaXplID0geHN0YXRlX3Np emU7CisrICBlbHNlCisrICAgIHhzdGF0ZS0+c2VjdF9uYW1lID0gTlVMTDsKKyt9CisrCisrLyog R2V0IFhTQVZFIGV4dGVuZGVkIHN0YXRlIHhjcjAgZnJvbSBjb3JlIGR1bXAuICAqLworKworK3Vp bnQ2NF90CisraTM4Nl9saW51eF9jb3JlX3JlYWRfeGNyMCAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsCisrCQkJICAgc3RydWN0IHRhcmdldF9vcHMgKnRhcmdldCwgYmZkICphYmZkKQorK3sKKysg IGFzZWN0aW9uICp4c3RhdGUgPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAoYWJmZCwgIi5yZWct eHN0YXRlIik7CisrICB1aW50NjRfdCB4Y3IwOworKworKyAgaWYgKHhzdGF0ZSkKKysgICAgewor KyAgICAgIHNpemVfdCBzaXplID0gYmZkX3NlY3Rpb25fc2l6ZSAoYWJmZCwgeHN0YXRlKTsKKysK KysgICAgICAvKiBDaGVjayBleHRlbmRlZCBzdGF0ZSBzaXplLiAgKi8KKysgICAgICBpZiAoc2l6 ZSA8IEkzODZfWFNUQVRFX0FWWF9TSVpFKQorKwl4Y3IwID0gSTM4Nl9YU1RBVEVfU1NFX01BU0s7 CisrICAgICAgZWxzZQorKwl7CisrCSAgY2hhciBjb250ZW50c1s4XTsKKysKKysJICBpZiAoISBi ZmRfZ2V0X3NlY3Rpb25fY29udGVudHMgKGFiZmQsIHhzdGF0ZSwgY29udGVudHMsCisrCQkJCQkg IEkzODZfTElOVVhfWFNBVkVfWENSMF9PRkZTRVQsCisrCQkJCQkgIDgpKQorKwkgICAgeworKwkg ICAgICB3YXJuaW5nIChfKCJDb3VsZG4ndCByZWFkIGB4Y3IwJyBieXRlcyBmcm9tIGAucmVnLXhz dGF0ZScgc2VjdGlvbiBpbiBjb3JlIGZpbGUuIikpOworKwkgICAgICByZXR1cm4gMDsKKysJICAg IH0KKysKKysJICB4Y3IwID0gYmZkX2dldF82NCAoYWJmZCwgY29udGVudHMpOworKwl9CisrICAg IH0KKysgIGVsc2UKKysgICAgeGNyMCA9IEkzODZfWFNUQVRFX1NTRV9NQVNLOworKworKyAgcmV0 dXJuIHhjcjA7CisrfQorKworIC8qIEdldCBMaW51eC94ODYgdGFyZ2V0IGRlc2NyaXB0aW9uIGZy b20gY29yZSBkdW1wLiAgKi8KKyAKKyBzdGF0aWMgY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICoK K0BAIC01NjgsMTIgKzYyNywxNyBAQCBpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbiAo c3RydWN0CisgCQkJCSAgYmZkICphYmZkKQorIHsKKyAgIGFzZWN0aW9uICpzZWN0aW9uID0gYmZk X2dldF9zZWN0aW9uX2J5X25hbWUgKGFiZmQsICIucmVnMiIpOworKyAgdWludDY0X3QgeGNyMDsK KyAKKyAgIGlmIChzZWN0aW9uID09IE5VTEwpCisgICAgIHJldHVybiBOVUxMOworIAorICAgLyog TGludXgvaTM4Ni4gICovCistICByZXR1cm4gdGRlc2NfaTM4Nl9saW51eDsKKysgIHhjcjAgPSBp Mzg2X2xpbnV4X2NvcmVfcmVhZF94Y3IwIChnZGJhcmNoLCB0YXJnZXQsIGFiZmQpOworKyAgaWYg KCh4Y3IwICYgSTM4Nl9YU1RBVEVfQVZYX01BU0spID09IEkzODZfWFNUQVRFX0FWWF9NQVNLKQor KyAgICByZXR1cm4gdGRlc2NfaTM4Nl9hdnhfbGludXg7CisrICBlbHNlCisrICAgIHJldHVybiB0 ZGVzY19pMzg2X2xpbnV4OworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTYyMyw2ICs2ODcsOCBA QCBpMzg2X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvCisgICB0ZGVwLT5zY19y ZWdfb2Zmc2V0ID0gaTM4Nl9saW51eF9zY19yZWdfb2Zmc2V0OworICAgdGRlcC0+c2NfbnVtX3Jl Z3MgPSBBUlJBWV9TSVpFIChpMzg2X2xpbnV4X3NjX3JlZ19vZmZzZXQpOworIAorKyAgdGRlcC0+ eHNhdmVfeGNyMF9vZmZzZXQgPSBJMzg2X0xJTlVYX1hTQVZFX1hDUjBfT0ZGU0VUOworKworICAg c2V0X2dkYmFyY2hfcHJvY2Vzc19yZWNvcmQgKGdkYmFyY2gsIGkzODZfcHJvY2Vzc19yZWNvcmQp OworICAgc2V0X2dkYmFyY2hfcHJvY2Vzc19yZWNvcmRfc2lnbmFsIChnZGJhcmNoLCBpMzg2X2xp bnV4X3JlY29yZF9zaWduYWwpOworIAorQEAgLTg0Myw0ICs5MDksNSBAQCBfaW5pdGlhbGl6ZV9p Mzg2X2xpbnV4X3RkZXAgKHZvaWQpCisgCisgICAvKiBJbml0aWFsaXplIHRoZSBMaW51eCB0YXJn ZXQgZGVzY3JpcHRpb24gICovCisgICBpbml0aWFsaXplX3RkZXNjX2kzODZfbGludXggKCk7Cisr ICBpbml0aWFsaXplX3RkZXNjX2kzODZfYXZ4X2xpbnV4ICgpOworIH0KKy0tLSAuL2dkYi9pMzg2 LWxpbnV4LXRkZXAuaAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIC4v Z2RiL2kzODYtbGludXgtdGRlcC5oCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAw CitAQCAtMzAsMTIgKzMwLDQxIEBACisgLyogUmVnaXN0ZXIgbnVtYmVyIGZvciB0aGUgIm9yaWdf ZWF4IiBwc2V1ZG8tcmVnaXN0ZXIuICBJZiB0aGlzCisgICAgcHNldWRvLXJlZ2lzdGVyIGNvbnRh aW5zIGEgdmFsdWUgPj0gMCBpdCBpcyBpbnRlcnByZXRlZCBhcyB0aGUKKyAgICBzeXN0ZW0gY2Fs bCBudW1iZXIgdGhhdCB0aGUga2VybmVsIGlzIHN1cHBvc2VkIHRvIHJlc3RhcnQuICAqLworLSNk ZWZpbmUgSTM4Nl9MSU5VWF9PUklHX0VBWF9SRUdOVU0gSTM4Nl9TU0VfTlVNX1JFR1MKKysjZGVm aW5lIEkzODZfTElOVVhfT1JJR19FQVhfUkVHTlVNIEkzODZfQVZYX05VTV9SRUdTCisgCisgLyog VG90YWwgbnVtYmVyIG9mIHJlZ2lzdGVycyBmb3IgR05VL0xpbnV4LiAgKi8KKyAjZGVmaW5lIEkz ODZfTElOVVhfTlVNX1JFR1MgKEkzODZfTElOVVhfT1JJR19FQVhfUkVHTlVNICsgMSkKKyAKKysv KiBHZXQgWFNBVkUgZXh0ZW5kZWQgc3RhdGUgeGNyMCBmcm9tIGNvcmUgZHVtcC4gICovCisrZXh0 ZXJuIHVpbnQ2NF90IGkzODZfbGludXhfY29yZV9yZWFkX3hjcjAKKysgIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwgc3RydWN0IHRhcmdldF9vcHMgKnRhcmdldCwgYmZkICphYmZkKTsKKysKKyAv KiBMaW51eCB0YXJnZXQgZGVzY3JpcHRpb24uICAqLworIGV4dGVybiBzdHJ1Y3QgdGFyZ2V0X2Rl c2MgKnRkZXNjX2kzODZfbGludXg7CisrZXh0ZXJuIHN0cnVjdCB0YXJnZXRfZGVzYyAqdGRlc2Nf aTM4Nl9hdnhfbGludXg7CisrCisrLyogVXBkYXRlIFhTQVZFIGV4dGVuZGVkIHN0YXRlIHJlZ2lz dGVyIG5vdGUgc2VjdGlvbi4gICovCisrZXh0ZXJuIHZvaWQgaTM4Nl9saW51eF91cGRhdGVfeHN0 YXRlcmVnc2V0ICh1bnNpZ25lZCBpbnQgeHN0YXRlX3NpemUpOworKworKy8qIEZvcm1hdCBvZiBY U0FWRSBleHRlbmRlZCBzdGF0ZSBpczoKKysgCXN0cnVjdAorKwl7CisrCSAgZnhzYXZlX2J5dGVz WzAuLjQ2M10KKysJICBzd191c2FibGVfYnl0ZXNbNDY0Li41MTFdCisrCSAgeHN0YXRlX2hkcl9i eXRlc1s1MTIuLjU3NV0KKysJICBhdnhfYnl0ZXNbNTc2Li44MzFdCisrCSAgZnV0dXJlX3N0YXRl IGV0YworKwl9OworKworKyAgU2FtZSBtZW1vcnkgbGF5b3V0IHdpbGwgYmUgdXNlZCBmb3IgdGhl IGNvcmVkdW1wIE5UX1g4Nl9YU1RBVEUKKysgIHJlcHJlc2VudGluZyB0aGUgWFNBVkUgZXh0ZW5k ZWQgc3RhdGUgcmVnaXN0ZXJzLgorKworKyAgVGhlIGZpcnN0IDggYnl0ZXMgb2YgdGhlIHN3X3Vz YWJsZV9ieXRlc1s0NjQuLjQ2N10gaXMgdGhlIE9TIGVuYWJsZWQKKysgIGV4dGVuZGVkIHN0YXRl IG1hc2ssIHdoaWNoIGlzIHRoZSBzYW1lIGFzIHRoZSBleHRlbmRlZCBjb250cm9sIHJlZ2lzdGVy CisrICAwICh0aGUgWEZFQVRVUkVfRU5BQkxFRF9NQVNLIHJlZ2lzdGVyKSwgWENSMC4gIFdlIGNh biB1c2UgdGhpcyBtYXNrCisrICB0b2dldGhlciB3aXRoIHRoZSBtYXNrIHNhdmVkIGluIHRoZSB4 c3RhdGVfaGRyX2J5dGVzIHRvIGRldGVybWluZSB3aGF0CisrICBzdGF0ZXMgdGhlIHByb2Nlc3Nv ci9PUyBzdXBwb3J0cyBhbmQgd2hhdCBzdGF0ZSwgdXNlZCBvciBpbml0aWFsaXplZCwKKysgIHRo ZSBwcm9jZXNzL3RocmVhZCBpcyBpbi4gICovIAorKyNkZWZpbmUgSTM4Nl9MSU5VWF9YU0FWRV9Y Q1IwX09GRlNFVCA0NjQKKyAKKyAjZW5kaWYgLyogaTM4Ni1saW51eC10ZGVwLmggKi8KKy0tLSAu L2dkYi9pMzg2LXRkZXAuYwkyMDEwLTA0LTAzIDIxOjA5OjI5LjAwMDAwMDAwMCArMDIwMAorKysr IC4vZ2RiL2kzODYtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitA QCAtNTEsMTEgKzUxLDEzIEBACisgCisgI2luY2x1ZGUgImkzODYtdGRlcC5oIgorICNpbmNsdWRl ICJpMzg3LXRkZXAuaCIKKysjaW5jbHVkZSAiaTM4Ni14c3RhdGUuaCIKKyAKKyAjaW5jbHVkZSAi cmVjb3JkLmgiCisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorICNpbmNsdWRlICJmZWF0dXJlcy9p Mzg2L2kzODYuYyIKKysjaW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC5jIgorIAorIC8q IFJlZ2lzdGVyIG5hbWVzLiAgKi8KKyAKK0BAIC03NCw2ICs3NiwxOCBAQCBzdGF0aWMgY29uc3Qg Y2hhciAqaTM4Nl9yZWdpc3Rlcl9uYW1lc1tdCisgICAibXhjc3IiCisgfTsKKyAKKytzdGF0aWMg Y29uc3QgY2hhciAqaTM4Nl95bW1fbmFtZXNbXSA9CisreworKyAgInltbTAiLCAgInltbTEiLCAg ICJ5bW0yIiwgICJ5bW0zIiwKKysgICJ5bW00IiwgICJ5bW01IiwgICAieW1tNiIsICAieW1tNyIs CisrfTsKKysKKytzdGF0aWMgY29uc3QgY2hhciAqaTM4Nl95bW1oX25hbWVzW10gPQorK3sKKysg ICJ5bW0waCIsICAieW1tMWgiLCAgICJ5bW0yaCIsICAieW1tM2giLAorKyAgInltbTRoIiwgICJ5 bW01aCIsICAgInltbTZoIiwgICJ5bW03aCIsCisrfTsKKysKKyAvKiBSZWdpc3RlciBuYW1lcyBm b3IgTU1YIHBzZXVkby1yZWdpc3RlcnMuICAqLworIAorIHN0YXRpYyBjb25zdCBjaGFyICppMzg2 X21teF9uYW1lc1tdID0KK0BAIC0xNTAsMTggKzE2NCw0NyBAQCBpMzg2X2R3b3JkX3JlZ251bV9w IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCisgICByZXR1cm4gcmVnbnVtID49IDAgJiYgcmVnbnVtIDwg dGRlcC0+bnVtX2R3b3JkX3JlZ3M7CisgfQorIAorK2ludAorK2kzODZfeW1taF9yZWdudW1fcCAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0pCisreworKyAgc3RydWN0IGdkYmFy Y2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisrICBpbnQgeW1tMGhfcmVn bnVtID0gdGRlcC0+eW1tMGhfcmVnbnVtOworKworKyAgaWYgKHltbTBoX3JlZ251bSA8IDApCisr ICAgIHJldHVybiAwOworKworKyAgcmVnbnVtIC09IHltbTBoX3JlZ251bTsKKysgIHJldHVybiBy ZWdudW0gPj0gMCAmJiByZWdudW0gPCB0ZGVwLT5udW1feW1tX3JlZ3M7CisrfQorKworKy8qIEFW WCByZWdpc3Rlcj8gICovCisrCisraW50CisraTM4Nl95bW1fcmVnbnVtX3AgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQorK3sKKysgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRk ZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKyAgaW50IHltbTBfcmVnbnVtID0gdGRlcC0+ eW1tMF9yZWdudW07CisrCisrICBpZiAoeW1tMF9yZWdudW0gPCAwKQorKyAgICByZXR1cm4gMDsK KysKKysgIHJlZ251bSAtPSB5bW0wX3JlZ251bTsKKysgIHJldHVybiByZWdudW0gPj0gMCAmJiBy ZWdudW0gPCB0ZGVwLT5udW1feW1tX3JlZ3M7CisrfQorKworIC8qIFNTRSByZWdpc3Rlcj8gICov CisgCistc3RhdGljIGludAorLWkzODZfc3NlX3JlZ251bV9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwgaW50IHJlZ251bSkKKytpbnQKKytpMzg2X3htbV9yZWdudW1fcCAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsIGludCByZWdudW0pCisgeworICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRl cCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisrICBpbnQgbnVtX3htbV9yZWdzID0gSTM4N19O VU1fWE1NX1JFR1MgKHRkZXApOworIAorLSAgaWYgKEkzODdfTlVNX1hNTV9SRUdTICh0ZGVwKSA9 PSAwKQorKyAgaWYgKG51bV94bW1fcmVncyA9PSAwKQorICAgICByZXR1cm4gMDsKKyAKKy0gIHJl dHVybiAoSTM4N19YTU0wX1JFR05VTSAodGRlcCkgPD0gcmVnbnVtCistCSAgJiYgcmVnbnVtIDwg STM4N19NWENTUl9SRUdOVU0gKHRkZXApKTsKKysgIHJlZ251bSAtPSBJMzg3X1hNTTBfUkVHTlVN ICh0ZGVwKTsKKysgIHJldHVybiByZWdudW0gPj0gMCAmJiByZWdudW0gPCBudW1feG1tX3JlZ3M7 CisgfQorIAorIHN0YXRpYyBpbnQKK0BAIC0yMDEsNiArMjQ0LDE5IEBAIGkzODZfZnBjX3JlZ251 bV9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXIKKyAJICAmJiByZWdudW0gPCBJMzg3X1hNTTBfUkVH TlVNICh0ZGVwKSk7CisgfQorIAorKy8qIFJldHVybiB0aGUgbmFtZSBvZiByZWdpc3RlciBSRUdO VU0sIG9yIHRoZSBlbXB0eSBzdHJpbmcgaWYgaXQgaXMKKysgICBhbiBhbm9ueW1vdXMgcmVnaXN0 ZXIuICAqLworKworK3N0YXRpYyBjb25zdCBjaGFyICoKKytpMzg2X3JlZ2lzdGVyX25hbWUgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQorK3sKKysgIC8qIEhpZGUgdGhlIHVw cGVyIFlNTSByZWdpc3RlcnMuICAqLworKyAgaWYgKGkzODZfeW1taF9yZWdudW1fcCAoZ2RiYXJj aCwgcmVnbnVtKSkKKysgICAgcmV0dXJuICIiOworKworKyAgcmV0dXJuIHRkZXNjX3JlZ2lzdGVy X25hbWUgKGdkYmFyY2gsIHJlZ251bSk7CisrfQorKworIC8qIFJldHVybiB0aGUgbmFtZSBvZiBy ZWdpc3RlciBSRUdOVU0uICAqLworIAorIGNvbnN0IGNoYXIgKgorQEAgLTIwOSw2ICsyNjUsOCBA QCBpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lIChzdHJ1Y3QgZ2RiYXJjCisgICBzdHJ1Y3QgZ2Ri YXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKyAgIGlmIChpMzg2X21t eF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKyAgICAgcmV0dXJuIGkzODZfbW14X25hbWVz W3JlZ251bSAtIEkzODdfTU0wX1JFR05VTSAodGRlcCldOworKyAgZWxzZSBpZiAoaTM4Nl95bW1f cmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrICAgIHJldHVybiBpMzg2X3ltbV9uYW1lc1ty ZWdudW0gLSB0ZGVwLT55bW0wX3JlZ251bV07CisgICBlbHNlIGlmIChpMzg2X2J5dGVfcmVnbnVt X3AgKGdkYmFyY2gsIHJlZ251bSkpCisgICAgIHJldHVybiBpMzg2X2J5dGVfbmFtZXNbcmVnbnVt IC0gdGRlcC0+YWxfcmVnbnVtXTsKKyAgIGVsc2UgaWYgKGkzODZfd29yZF9yZWdudW1fcCAoZ2Ri YXJjaCwgcmVnbnVtKSkKK0BAIC0yNDYsNyArMzA0LDEzIEBAIGkzODZfZGJ4X3JlZ190b19yZWdu dW0gKHN0cnVjdCBnZGJhcmNoICoKKyAgIGVsc2UgaWYgKHJlZyA+PSAyMSAmJiByZWcgPD0gMjgp CisgICAgIHsKKyAgICAgICAvKiBTU0UgcmVnaXN0ZXJzLiAgKi8KKy0gICAgICByZXR1cm4gcmVn IC0gMjEgKyBJMzg3X1hNTTBfUkVHTlVNICh0ZGVwKTsKKysgICAgICBpbnQgeW1tMF9yZWdudW0g PSB0ZGVwLT55bW0wX3JlZ251bTsKKysKKysgICAgICBpZiAoeW1tMF9yZWdudW0gPj0gMAorKwkg ICYmIGkzODZfeG1tX3JlZ251bV9wIChnZGJhcmNoLCByZWcpKQorKwlyZXR1cm4gcmVnIC0gMjEg KyB5bW0wX3JlZ251bTsKKysgICAgICBlbHNlCisrCXJldHVybiByZWcgLSAyMSArIEkzODdfWE1N MF9SRUdOVU0gKHRkZXApOworICAgICB9CisgICBlbHNlIGlmIChyZWcgPj0gMjkgJiYgcmVnIDw9 IDM2KQorICAgICB7CitAQCAtMjE4NCw2ICsyMjQ4LDU5IEBAIGkzODdfZXh0X3R5cGUgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoKQorICAgcmV0dXJuIHRkZXAtPmkzODdfZXh0X3R5cGU7CisgfQor IAorKy8qIENvbnN0cnVjdCB2ZWN0b3IgdHlwZSBmb3IgcHNldWRvIFlNTSByZWdpc3RlcnMuICBX ZSBjYW4ndCB1c2UKKysgICB0ZGVzY19maW5kX3R5cGUgc2luY2UgWU1NIGlzbid0IGRlc2NyaWJl ZCBpbiB0YXJnZXQgZGVzY3JpcHRpb24uICAqLworKworK3N0YXRpYyBzdHJ1Y3QgdHlwZSAqCisr aTM4Nl95bW1fdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCisreworKyAgc3RydWN0IGdk YmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisrCisrICBpZiAoIXRk ZXAtPmkzODZfeW1tX3R5cGUpCisrICAgIHsKKysgICAgICBjb25zdCBzdHJ1Y3QgYnVpbHRpbl90 eXBlICpidCA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCk7CisrCisrICAgICAgLyogVGhlIHR5cGUg d2UncmUgYnVpbGRpbmcgaXMgdGhpczogKi8KKysjaWYgMAorKyAgICAgIHVuaW9uIF9fZ2RiX2J1 aWx0aW5fdHlwZV92ZWMyNTZpCisrICAgICAgeworKyAgICAgICAgaW50MTI4X3QgdWludDEyOFsy XTsKKysgICAgICAgIGludDY0X3QgdjJfaW50NjRbNF07CisrICAgICAgICBpbnQzMl90IHY0X2lu dDMyWzhdOworKyAgICAgICAgaW50MTZfdCB2OF9pbnQxNlsxNl07CisrICAgICAgICBpbnQ4X3Qg djE2X2ludDhbMzJdOworKyAgICAgICAgZG91YmxlIHYyX2RvdWJsZVs0XTsKKysgICAgICAgIGZs b2F0IHY0X2Zsb2F0WzhdOworKyAgICAgIH07CisrI2VuZGlmCisrCisrICAgICAgc3RydWN0IHR5 cGUgKnQ7CisrCisrICAgICAgdCA9IGFyY2hfY29tcG9zaXRlX3R5cGUgKGdkYmFyY2gsCisrCQkJ ICAgICAgICJfX2dkYl9idWlsdGluX3R5cGVfdmVjMjU2aSIsIFRZUEVfQ09ERV9VTklPTik7Cisr ICAgICAgYXBwZW5kX2NvbXBvc2l0ZV90eXBlX2ZpZWxkICh0LCAidjhfZmxvYXQiLAorKwkJCQkg ICBpbml0X3ZlY3Rvcl90eXBlIChidC0+YnVpbHRpbl9mbG9hdCwgOCkpOworKyAgICAgIGFwcGVu ZF9jb21wb3NpdGVfdHlwZV9maWVsZCAodCwgInY0X2RvdWJsZSIsCisrCQkJCSAgIGluaXRfdmVj dG9yX3R5cGUgKGJ0LT5idWlsdGluX2RvdWJsZSwgNCkpOworKyAgICAgIGFwcGVuZF9jb21wb3Np dGVfdHlwZV9maWVsZCAodCwgInYzMl9pbnQ4IiwKKysJCQkJICAgaW5pdF92ZWN0b3JfdHlwZSAo YnQtPmJ1aWx0aW5faW50OCwgMzIpKTsKKysgICAgICBhcHBlbmRfY29tcG9zaXRlX3R5cGVfZmll bGQgKHQsICJ2MTZfaW50MTYiLAorKwkJCQkgICBpbml0X3ZlY3Rvcl90eXBlIChidC0+YnVpbHRp bl9pbnQxNiwgMTYpKTsKKysgICAgICBhcHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGQgKHQsICJ2 OF9pbnQzMiIsCisrCQkJCSAgIGluaXRfdmVjdG9yX3R5cGUgKGJ0LT5idWlsdGluX2ludDMyLCA4 KSk7CisrICAgICAgYXBwZW5kX2NvbXBvc2l0ZV90eXBlX2ZpZWxkICh0LCAidjRfaW50NjQiLAor KwkJCQkgICBpbml0X3ZlY3Rvcl90eXBlIChidC0+YnVpbHRpbl9pbnQ2NCwgNCkpOworKyAgICAg IGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZCAodCwgInYyX2ludDEyOCIsCisrCQkJCSAgIGlu aXRfdmVjdG9yX3R5cGUgKGJ0LT5idWlsdGluX2ludDEyOCwgMikpOworKworKyAgICAgIFRZUEVf VkVDVE9SICh0KSA9IDE7CisrICAgICAgVFlQRV9OQU1FICh0KSA9ICJidWlsdGluX3R5cGVfdmVj MTI4aSI7CisrICAgICAgdGRlcC0+aTM4Nl95bW1fdHlwZSA9IHQ7CisrICAgIH0KKysKKysgIHJl dHVybiB0ZGVwLT5pMzg2X3ltbV90eXBlOworK30KKysKKyAvKiBDb25zdHJ1Y3QgdmVjdG9yIHR5 cGUgZm9yIE1NWCByZWdpc3RlcnMuICAqLworIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCisgaTM4Nl9t bXhfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCitAQCAtMjIzNCw2ICsyMzUxLDggQEAg aTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyYworIHsKKyAgIGlmIChpMzg2 X21teF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKyAgICAgcmV0dXJuIGkzODZfbW14X3R5 cGUgKGdkYmFyY2gpOworKyAgZWxzZSBpZiAoaTM4Nl95bW1fcmVnbnVtX3AgKGdkYmFyY2gsIHJl Z251bSkpCisrICAgIHJldHVybiBpMzg2X3ltbV90eXBlIChnZGJhcmNoKTsKKyAgIGVsc2UKKyAg ICAgeworICAgICAgIGNvbnN0IHN0cnVjdCBidWlsdGluX3R5cGUgKmJ0ID0gYnVpbHRpbl90eXBl IChnZGJhcmNoKTsKK0BAIC0yMjg1LDcgKzI0MDQsMjIgQEAgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJf cmVhZCAoc3RydWN0IGdkYmFyYworICAgICB7CisgICAgICAgc3RydWN0IGdkYmFyY2hfdGRlcCAq dGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisgCistICAgICAgaWYgKGkzODZfd29yZF9y ZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKysgICAgICBpZiAoaTM4Nl95bW1fcmVnbnVtX3Ag KGdkYmFyY2gsIHJlZ251bSkpCisrCXsKKysJICByZWdudW0gLT0gdGRlcC0+eW1tMF9yZWdudW07 CisrCisrCSAgLyogRXh0cmFjdCAoYWx3YXlzIGxpdHRsZSBlbmRpYW4pLiAgUmVhZCBsb3dlciAx MjhiaXRzLiAqLworKwkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwKKysJCQkgICAgIEkz ODdfWE1NMF9SRUdOVU0gKHRkZXApICsgcmVnbnVtLAorKwkJCSAgICAgcmF3X2J1Zik7CisrCSAg bWVtY3B5IChidWYsIHJhd19idWYsIDE2KTsKKysJICAvKiBSZWFkIHVwcGVyIDEyOGJpdHMuICAq LworKwkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwKKysJCQkgICAgIHRkZXAtPnltbTBo X3JlZ251bSArIHJlZ251bSwKKysJCQkgICAgIHJhd19idWYpOworKwkgIG1lbWNweSAoYnVmICsg MTYsIHJhd19idWYsIDE2KTsKKysJfQorKyAgICAgIGVsc2UgaWYgKGkzODZfd29yZF9yZWdudW1f cCAoZ2RiYXJjaCwgcmVnbnVtKSkKKyAJeworIAkgIGludCBncG51bSA9IHJlZ251bSAtIHRkZXAt PmF4X3JlZ251bTsKKyAKK0BAIC0yMzM0LDcgKzI0NjgsMjAgQEAgaTM4Nl9wc2V1ZG9fcmVnaXN0 ZXJfd3JpdGUgKHN0cnVjdCBnZGJhcgorICAgICB7CisgICAgICAgc3RydWN0IGdkYmFyY2hfdGRl cCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisgCistICAgICAgaWYgKGkzODZfd29y ZF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKysgICAgICBpZiAoaTM4Nl95bW1fcmVnbnVt X3AgKGdkYmFyY2gsIHJlZ251bSkpCisrCXsKKysJICByZWdudW0gLT0gdGRlcC0+eW1tMF9yZWdu dW07CisrCisrCSAgLyogLi4uIFdyaXRlIGxvd2VyIDEyOGJpdHMuICAqLworKwkgIHJlZ2NhY2hl X3Jhd193cml0ZSAocmVnY2FjaGUsCisrCQkJICAgICBJMzg3X1hNTTBfUkVHTlVNICh0ZGVwKSAr IHJlZ251bSwKKysJCQkgICAgIGJ1Zik7CisrCSAgLyogLi4uIFdyaXRlIHVwcGVyIDEyOGJpdHMu ICAqLworKwkgIHJlZ2NhY2hlX3Jhd193cml0ZSAocmVnY2FjaGUsCisrCQkJICAgICB0ZGVwLT55 bW0waF9yZWdudW0gKyByZWdudW0sCisrCQkJICAgICBidWYgKyAxNik7CisrCX0KKysgICAgICBl bHNlIGlmIChpMzg2X3dvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisgCXsKKyAJICBp bnQgZ3BudW0gPSByZWdudW0gLSB0ZGVwLT5heF9yZWdudW07CisgCitAQCAtMjU4MSw2ICsyNzI4 LDI4IEBAIGkzODZfY29sbGVjdF9mcHJlZ3NldCAoY29uc3Qgc3RydWN0IHJlZ3MKKyAgIGkzODdf Y29sbGVjdF9mc2F2ZSAocmVnY2FjaGUsIHJlZ251bSwgZnByZWdzKTsKKyB9CisgCisrLyogU2lt aWxhciB0byBpMzg2X3N1cHBseV9mcHJlZ3NldCwgYnV0IHVzZSBYU0FWRSBleHRlbmRlZCBzdGF0 ZS4gICovCisrCisrc3RhdGljIHZvaWQKKytpMzg2X3N1cHBseV94c3RhdGVyZWdzZXQgKGNvbnN0 IHN0cnVjdCByZWdzZXQgKnJlZ3NldCwKKysJCQkgIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUs IGludCByZWdudW0sCisrCQkJICBjb25zdCB2b2lkICp4c3RhdGVyZWdzLCBzaXplX3QgbGVuKQor K3sKKysgIGNvbnN0IHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKHJl Z3NldC0+YXJjaCk7CisrICBpMzg3X3N1cHBseV94c2F2ZSAocmVnY2FjaGUsIHJlZ251bSwgeHN0 YXRlcmVncyk7CisrfQorKworKy8qIFNpbWlsYXIgdG8gaTM4Nl9jb2xsZWN0X2ZwcmVnc2V0ICwg YnV0IHVzZSBYU0FWRSBleHRlbmRlZCBzdGF0ZS4gICovCisrCisrc3RhdGljIHZvaWQKKytpMzg2 X2NvbGxlY3RfeHN0YXRlcmVnc2V0IChjb25zdCBzdHJ1Y3QgcmVnc2V0ICpyZWdzZXQsCisrCQkJ ICAgY29uc3Qgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKysJCQkgICBpbnQgcmVnbnVtLCB2 b2lkICp4c3RhdGVyZWdzLCBzaXplX3QgbGVuKQorK3sKKysgIGNvbnN0IHN0cnVjdCBnZGJhcmNo X3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKHJlZ3NldC0+YXJjaCk7CisrICBpMzg3X2NvbGxl Y3RfeHNhdmUgKHJlZ2NhY2hlLCByZWdudW0sIHhzdGF0ZXJlZ3MsIDEpOworK30KKysKKyAvKiBS ZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyIHNldCBmb3IgdGhlIGNvcmUgc2VjdGlvbiBp ZGVudGlmaWVkCisgICAgYnkgU0VDVF9OQU1FIGFuZCBTRUNUX1NJWkUuICAqLworIAorQEAgLTI2 MDgsNiArMjc3NywxNiBAQCBpMzg2X3JlZ3NldF9mcm9tX2NvcmVfc2VjdGlvbiAoc3RydWN0IGdk CisgICAgICAgcmV0dXJuIHRkZXAtPmZwcmVnc2V0OworICAgICB9CisgCisrICBpZiAoc3RyY21w IChzZWN0X25hbWUsICIucmVnLXhzdGF0ZSIpID09IDApCisrICAgIHsKKysgICAgICBpZiAodGRl cC0+eHN0YXRlcmVnc2V0ID09IE5VTEwpCisrCXRkZXAtPnhzdGF0ZXJlZ3NldCA9IHJlZ3NldF9h bGxvYyAoZ2RiYXJjaCwKKysJCQkJCSAgIGkzODZfc3VwcGx5X3hzdGF0ZXJlZ3NldCwKKysJCQkJ CSAgIGkzODZfY29sbGVjdF94c3RhdGVyZWdzZXQpOworKworKyAgICAgIHJldHVybiB0ZGVwLT54 c3RhdGVyZWdzZXQ7CisrICAgIH0KKysKKyAgIHJldHVybiBOVUxMOworIH0KKyAMCitAQCAtMjgw MSw0NiArMjk4MCw2MCBAQCBpbnQKKyBpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3AgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtLAorIAkJCSAgc3RydWN0IHJlZ2dyb3VwICpncm91 cCkKKyB7CistICBpbnQgc3NlX3JlZ251bV9wLCBmcF9yZWdudW1fcCwgbW14X3JlZ251bV9wLCBi eXRlX3JlZ251bV9wLAorLSAgICAgIHdvcmRfcmVnbnVtX3AsIGR3b3JkX3JlZ251bV9wOworKyAg Y29uc3Qgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7 CisrICBpbnQgZnBfcmVnbnVtX3AsIG1teF9yZWdudW1fcCwgeG1tX3JlZ251bV9wLCBteGNzcl9y ZWdudW1fcCwKKysgICAgICB5bW1fcmVnbnVtX3AsIHltbWhfcmVnbnVtX3A7CisgCisgICAvKiBE b24ndCBpbmNsdWRlIHBzZXVkbyByZWdpc3RlcnMsIGV4Y2VwdCBmb3IgTU1YLCBpbiBhbnkgcmVn aXN0ZXIKKyAgICAgIGdyb3Vwcy4gICovCistICBieXRlX3JlZ251bV9wID0gaTM4Nl9ieXRlX3Jl Z251bV9wIChnZGJhcmNoLCByZWdudW0pOworLSAgaWYgKGJ5dGVfcmVnbnVtX3ApCisrICBpZiAo aTM4Nl9ieXRlX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQorICAgICByZXR1cm4gMDsKKyAK Ky0gIHdvcmRfcmVnbnVtX3AgPSBpMzg2X3dvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSk7 CistICBpZiAod29yZF9yZWdudW1fcCkKKysgIGlmIChpMzg2X3dvcmRfcmVnbnVtX3AgKGdkYmFy Y2gsIHJlZ251bSkpCisgICAgIHJldHVybiAwOworIAorLSAgZHdvcmRfcmVnbnVtX3AgPSBpMzg2 X2R3b3JkX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pOworLSAgaWYgKGR3b3JkX3JlZ251bV9w KQorKyAgaWYgKGkzODZfZHdvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisgICAgIHJl dHVybiAwOworIAorICAgbW14X3JlZ251bV9wID0gaTM4Nl9tbXhfcmVnbnVtX3AgKGdkYmFyY2gs IHJlZ251bSk7CisgICBpZiAoZ3JvdXAgPT0gaTM4Nl9tbXhfcmVnZ3JvdXApCisgICAgIHJldHVy biBtbXhfcmVnbnVtX3A7CisgCistICBzc2VfcmVnbnVtX3AgPSAoaTM4Nl9zc2VfcmVnbnVtX3Ag KGdkYmFyY2gsIHJlZ251bSkKKy0JCSAgfHwgaTM4Nl9teGNzcl9yZWdudW1fcCAoZ2RiYXJjaCwg cmVnbnVtKSk7CisrICB4bW1fcmVnbnVtX3AgPSBpMzg2X3htbV9yZWdudW1fcCAoZ2RiYXJjaCwg cmVnbnVtKTsKKysgIG14Y3NyX3JlZ251bV9wID0gaTM4Nl9teGNzcl9yZWdudW1fcCAoZ2RiYXJj aCwgcmVnbnVtKTsKKyAgIGlmIChncm91cCA9PSBpMzg2X3NzZV9yZWdncm91cCkKKy0gICAgcmV0 dXJuIHNzZV9yZWdudW1fcDsKKysgICAgcmV0dXJuIHhtbV9yZWdudW1fcCB8fCBteGNzcl9yZWdu dW1fcDsKKysKKysgIHltbV9yZWdudW1fcCA9IGkzODZfeW1tX3JlZ251bV9wIChnZGJhcmNoLCBy ZWdudW0pOworICAgaWYgKGdyb3VwID09IHZlY3Rvcl9yZWdncm91cCkKKy0gICAgcmV0dXJuIG1t eF9yZWdudW1fcCB8fCBzc2VfcmVnbnVtX3A7CisrICAgIHJldHVybiAobW14X3JlZ251bV9wCisr CSAgICB8fCB5bW1fcmVnbnVtX3AKKysJICAgIHx8IG14Y3NyX3JlZ251bV9wCisrCSAgICB8fCAo eG1tX3JlZ251bV9wCisrCQkmJiAoKHRkZXAtPnhjcjAgJiBJMzg2X1hTVEFURV9BVlhfTUFTSykK KysJCSAgICA9PSBJMzg2X1hTVEFURV9TU0VfTUFTSykpKTsKKyAKKyAgIGZwX3JlZ251bV9wID0g KGkzODZfZnBfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkKKyAJCSB8fCBpMzg2X2ZwY19yZWdu dW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSk7CisgICBpZiAoZ3JvdXAgPT0gZmxvYXRfcmVnZ3JvdXAp CisgICAgIHJldHVybiBmcF9yZWdudW1fcDsKKyAKKysgIC8qIEZvciAiaW5mbyByZWcgYWxsIiwg ZG9uJ3QgaW5jbHVkZSB1cHBlciBZTU0gcmVnaXN0ZXJzIG5vciBYTU0KKysgICAgIHJlZ2lzdGVy cyB3aGVuIEFWWCBpcyBzdXBwb3J0ZWQuICAqLworKyAgeW1taF9yZWdudW1fcCA9IGkzODZfeW1t aF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKTsKKysgIGlmIChncm91cCA9PSBhbGxfcmVnZ3Jv dXAKKysgICAgICAmJiAoKHhtbV9yZWdudW1fcAorKwkgICAmJiAodGRlcC0+eGNyMCAmIEkzODZf WFNUQVRFX0FWWCkpCisrCSAgfHwgeW1taF9yZWdudW1fcCkpCisrICAgIHJldHVybiAwOworKwor ICAgaWYgKGdyb3VwID09IGdlbmVyYWxfcmVnZ3JvdXApCisgICAgIHJldHVybiAoIWZwX3JlZ251 bV9wCisgCSAgICAmJiAhbW14X3JlZ251bV9wCistCSAgICAmJiAhc3NlX3JlZ251bV9wCistCSAg ICAmJiAhYnl0ZV9yZWdudW1fcAorLQkgICAgJiYgIXdvcmRfcmVnbnVtX3AKKy0JICAgICYmICFk d29yZF9yZWdudW1fcCk7CisrCSAgICAmJiAhbXhjc3JfcmVnbnVtX3AKKysJICAgICYmICF4bW1f cmVnbnVtX3AKKysJICAgICYmICF5bW1fcmVnbnVtX3AKKysJICAgICYmICF5bW1oX3JlZ251bV9w KTsKKyAKKyAgIHJldHVybiBkZWZhdWx0X3JlZ2lzdGVyX3JlZ2dyb3VwX3AgKGdkYmFyY2gsIHJl Z251bSwgZ3JvdXApOworIH0KK0BAIC01NjUwLDcgKzU4NDMsOCBAQCBpMzg2X3ZhbGlkYXRlX3Rk ZXNjX3AgKHN0cnVjdCBnZGJhcmNoX3RkCisgCQkgICAgICAgc3RydWN0IHRkZXNjX2FyY2hfZGF0 YSAqdGRlc2NfZGF0YSkKKyB7CisgICBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKnRkZXNjID0g dGRlcC0+dGRlc2M7CistICBjb25zdCBzdHJ1Y3QgdGRlc2NfZmVhdHVyZSAqZmVhdHVyZV9jb3Jl LCAqZmVhdHVyZV92ZWN0b3I7CisrICBjb25zdCBzdHJ1Y3QgdGRlc2NfZmVhdHVyZSAqZmVhdHVy ZV9jb3JlOworKyAgY29uc3Qgc3RydWN0IHRkZXNjX2ZlYXR1cmUgKmZlYXR1cmVfc3NlLCAqZmVh dHVyZV9hdng7CisgICBpbnQgaSwgbnVtX3JlZ3MsIHZhbGlkX3A7CisgCisgICBpZiAoISB0ZGVz Y19oYXNfcmVnaXN0ZXJzICh0ZGVzYykpCitAQCAtNTY2MCwxMyArNTg1NCwzNyBAQCBpMzg2X3Zh bGlkYXRlX3RkZXNjX3AgKHN0cnVjdCBnZGJhcmNoX3RkCisgICBmZWF0dXJlX2NvcmUgPSB0ZGVz Y19maW5kX2ZlYXR1cmUgKHRkZXNjLCAib3JnLmdudS5nZGIuaTM4Ni5jb3JlIik7CisgCisgICAv KiBHZXQgU1NFIHJlZ2lzdGVycy4gICovCistICBmZWF0dXJlX3ZlY3RvciA9IHRkZXNjX2ZpbmRf ZmVhdHVyZSAodGRlc2MsICJvcmcuZ251LmdkYi5pMzg2LnNzZSIpOworKyAgZmVhdHVyZV9zc2Ug PSB0ZGVzY19maW5kX2ZlYXR1cmUgKHRkZXNjLCAib3JnLmdudS5nZGIuaTM4Ni5zc2UiKTsKKyAK Ky0gIGlmIChmZWF0dXJlX2NvcmUgPT0gTlVMTCB8fCBmZWF0dXJlX3ZlY3RvciA9PSBOVUxMKQor KyAgaWYgKGZlYXR1cmVfY29yZSA9PSBOVUxMIHx8IGZlYXR1cmVfc3NlID09IE5VTEwpCisgICAg IHJldHVybiAwOworIAorKyAgLyogVHJ5IEFWWCByZWdpc3RlcnMuICAqLworKyAgZmVhdHVyZV9h dnggPSB0ZGVzY19maW5kX2ZlYXR1cmUgKHRkZXNjLCAib3JnLmdudS5nZGIuaTM4Ni5hdngiKTsK KysKKyAgIHZhbGlkX3AgPSAxOworIAorKyAgLyogVGhlIFhDUjAgYml0cy4gICovCisrICBpZiAo ZmVhdHVyZV9hdngpCisrICAgIHsKKysgICAgICB0ZGVwLT54Y3IwID0gSTM4Nl9YU1RBVEVfQVZY X01BU0s7CisrCisrICAgICAgLyogSXQgbWF5IGhhdmUgYmVlbiBzZXQgYnkgT1NBQkkgaW5pdGlh bGl6YXRpb24gZnVuY3Rpb24uICAqLworKyAgICAgIGlmICh0ZGVwLT5udW1feW1tX3JlZ3MgPT0g MCkKKysJeworKwkgIHRkZXAtPnltbWhfcmVnaXN0ZXJfbmFtZXMgPSBpMzg2X3ltbWhfbmFtZXM7 CisrCSAgdGRlcC0+bnVtX3ltbV9yZWdzID0gODsKKysJICB0ZGVwLT55bW0waF9yZWdudW0gPSBJ Mzg2X1lNTTBIX1JFR05VTTsKKysJfQorKworKyAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZGVwLT5u dW1feW1tX3JlZ3M7IGkrKykKKysJdmFsaWRfcCAmPSB0ZGVzY19udW1iZXJlZF9yZWdpc3RlciAo ZmVhdHVyZV9hdngsIHRkZXNjX2RhdGEsCisrCQkJCQkgICAgdGRlcC0+eW1tMGhfcmVnbnVtICsg aSwKKysJCQkJCSAgICB0ZGVwLT55bW1oX3JlZ2lzdGVyX25hbWVzW2ldKTsKKysgICAgfQorKyAg ZWxzZQorKyAgICB0ZGVwLT54Y3IwID0gSTM4Nl9YU1RBVEVfU1NFX01BU0s7CisrCisgICBudW1f cmVncyA9IHRkZXAtPm51bV9jb3JlX3JlZ3M7CisgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3JlZ3M7 IGkrKykKKyAgICAgdmFsaWRfcCAmPSB0ZGVzY19udW1iZXJlZF9yZWdpc3RlciAoZmVhdHVyZV9j b3JlLCB0ZGVzY19kYXRhLCBpLAorQEAgLTU2NzUsNyArNTg5Myw3IEBAIGkzODZfdmFsaWRhdGVf dGRlc2NfcCAoc3RydWN0IGdkYmFyY2hfdGQKKyAgIC8qIE5lZWQgdG8gaW5jbHVkZSAlbXhjc3Is IHNvIGFkZCBvbmUuICAqLworICAgbnVtX3JlZ3MgKz0gdGRlcC0+bnVtX3htbV9yZWdzICsgMTsK KyAgIGZvciAoOyBpIDwgbnVtX3JlZ3M7IGkrKykKKy0gICAgdmFsaWRfcCAmPSB0ZGVzY19udW1i ZXJlZF9yZWdpc3RlciAoZmVhdHVyZV92ZWN0b3IsIHRkZXNjX2RhdGEsIGksCisrICAgIHZhbGlk X3AgJj0gdGRlc2NfbnVtYmVyZWRfcmVnaXN0ZXIgKGZlYXR1cmVfc3NlLCB0ZGVzY19kYXRhLCBp LAorIAkJCQkJdGRlcC0+cmVnaXN0ZXJfbmFtZXNbaV0pOworIAorICAgcmV0dXJuIHZhbGlkX3A7 CitAQCAtNTY5MCw2ICs1OTA4LDcgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNo X2luZm8gaQorICAgc3RydWN0IHRkZXNjX2FyY2hfZGF0YSAqdGRlc2NfZGF0YTsKKyAgIGNvbnN0 IHN0cnVjdCB0YXJnZXRfZGVzYyAqdGRlc2M7CisgICBpbnQgbW0wX3JlZ251bTsKKysgIGludCB5 bW0wX3JlZ251bTsKKyAKKyAgIC8qIElmIHRoZXJlIGlzIGFscmVhZHkgYSBjYW5kaWRhdGUsIHVz ZSBpdC4gICovCisgICBhcmNoZXMgPSBnZGJhcmNoX2xpc3RfbG9va3VwX2J5X2luZm8gKGFyY2hl cywgJmluZm8pOworQEAgLTU3MTAsNiArNTkyOSw4IEBAIGkzODZfZ2RiYXJjaF9pbml0IChzdHJ1 Y3QgZ2RiYXJjaF9pbmZvIGkKKyAgIHRkZXAtPmZwcmVnc2V0ID0gTlVMTDsKKyAgIHRkZXAtPnNp emVvZl9mcHJlZ3NldCA9IEkzODdfU0laRU9GX0ZTQVZFOworIAorKyAgdGRlcC0+eHN0YXRlcmVn c2V0ID0gTlVMTDsKKysKKyAgIC8qIFRoZSBkZWZhdWx0IHNldHRpbmdzIGluY2x1ZGUgdGhlIEZQ VSByZWdpc3RlcnMsIHRoZSBNTVggcmVnaXN0ZXJzCisgICAgICBhbmQgdGhlIFNTRSByZWdpc3Rl cnMuICBUaGlzIGNhbiBiZSBvdmVycmlkZGVuIGZvciBhIHNwZWNpZmljIEFCSQorICAgICAgYnkg YWRqdXN0aW5nIHRoZSBtZW1iZXJzIGBzdDBfcmVnbnVtJywgYG1tMF9yZWdudW0nIGFuZAorQEAg LTU3NDIsNiArNTk2Myw4IEBAIGkzODZfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZv IGkKKyAgIC8qIFVud2luZGluZyBzdG9wcyBvbiBpMzg2IGF1dG9tYXRpY2FsbHkuICAqLworICAg dGRlcC0+b3V0ZXJtb3N0X2ZyYW1lX3AgPSBOVUxMOworIAorKyAgdGRlcC0+eHNhdmVfeGNyMF9v ZmZzZXQgPSAtMTsKKysKKyAgIHRkZXAtPnJlY29yZF9yZWdtYXAgPSBpMzg2X3JlY29yZF9yZWdt YXA7CisgCisgICAvKiBUaGUgZm9ybWF0IHVzZWQgZm9yIGBsb25nIGRvdWJsZScgb24gYWxtb3N0 IGFsbCBpMzg2IHRhcmdldHMgaXMKK0BAIC01ODU4LDkgKzYwODEsMTQgQEAgaTM4Nl9nZGJhcmNo X2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaQorICAgc2V0X3RkZXNjX3BzZXVkb19yZWdpc3Rl cl90eXBlIChnZGJhcmNoLCBpMzg2X3BzZXVkb19yZWdpc3Rlcl90eXBlKTsKKyAgIHNldF90ZGVz Y19wc2V1ZG9fcmVnaXN0ZXJfbmFtZSAoZ2RiYXJjaCwgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFt ZSk7CisgCistICAvKiBUaGUgZGVmYXVsdCBBQkkgaW5jbHVkZXMgZ2VuZXJhbC1wdXJwb3NlIHJl Z2lzdGVycywgCistICAgICBmbG9hdGluZy1wb2ludCByZWdpc3RlcnMsIGFuZCB0aGUgU1NFIHJl Z2lzdGVycy4gICovCistICBzZXRfZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCwgSTM4Nl9TU0Vf TlVNX1JFR1MpOworKyAgLyogT3ZlcnJpZGUgdGhlIG5vcm1hbCB0YXJnZXQgZGVzY3JpcHRpb24g bWV0aG9kIHRvIG1ha2UgdGhlIEFWWAorKyAgICAgdXBwZXIgaGFsdmVzIGFub255bW91cy4gICov CisrICBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCBpMzg2X3JlZ2lzdGVyX25h bWUpOworKworKyAgLyogRXZlbiB0aG91Z2ggdGhlIGRlZmF1bHQgQUJJIG9ubHkgaW5jbHVkZXMg Z2VuZXJhbC1wdXJwb3NlIHJlZ2lzdGVycywKKysgICAgIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVy cyBhbmQgdGhlIFNTRSByZWdpc3RlcnMsIHdlIGhhdmUgdG8gbGVhdmUgYQorKyAgICAgZ2FwIGZv ciB0aGUgdXBwZXIgQVZYIHJlZ2lzdGVycy4gICovCisrICBzZXRfZ2RiYXJjaF9udW1fcmVncyAo Z2RiYXJjaCwgSTM4Nl9BVlhfTlVNX1JFR1MpOworIAorICAgLyogR2V0IHRoZSB4ODYgdGFyZ2V0 IGRlc2NyaXB0aW9uIGZyb20gSU5GTy4gICovCisgICB0ZGVzYyA9IGluZm8udGFyZ2V0X2Rlc2M7 CitAQCAtNTg3MSwxMCArNjA5OSwxNSBAQCBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFy Y2hfaW5mbyBpCisgICB0ZGVwLT5udW1fY29yZV9yZWdzID0gSTM4Nl9OVU1fR1JFR1MgKyBJMzg3 X05VTV9SRUdTOworICAgdGRlcC0+cmVnaXN0ZXJfbmFtZXMgPSBpMzg2X3JlZ2lzdGVyX25hbWVz OworIAorKyAgLyogTm8gdXBwZXIgWU1NIHJlZ2lzdGVycy4gICovCisrICB0ZGVwLT55bW1oX3Jl Z2lzdGVyX25hbWVzID0gTlVMTDsKKysgIHRkZXAtPnltbTBoX3JlZ251bSA9IC0xOworKworICAg dGRlcC0+bnVtX2J5dGVfcmVncyA9IDg7CisgICB0ZGVwLT5udW1fd29yZF9yZWdzID0gODsKKyAg IHRkZXAtPm51bV9kd29yZF9yZWdzID0gMDsKKyAgIHRkZXAtPm51bV9tbXhfcmVncyA9IDg7Cisr ICB0ZGVwLT5udW1feW1tX3JlZ3MgPSAwOworIAorICAgdGRlc2NfZGF0YSA9IHRkZXNjX2RhdGFf YWxsb2MgKCk7CisgCitAQCAtNTg4MiwyNCArNjExNSwyNSBAQCBpMzg2X2dkYmFyY2hfaW5pdCAo c3RydWN0IGdkYmFyY2hfaW5mbyBpCisgICBpbmZvLnRkZXBfaW5mbyA9ICh2b2lkICopIHRkZXNj X2RhdGE7CisgICBnZGJhcmNoX2luaXRfb3NhYmkgKGluZm8sIGdkYmFyY2gpOworIAorKyAgaWYg KCFpMzg2X3ZhbGlkYXRlX3RkZXNjX3AgKHRkZXAsIHRkZXNjX2RhdGEpKQorKyAgICB7CisrICAg ICAgdGRlc2NfZGF0YV9jbGVhbnVwICh0ZGVzY19kYXRhKTsKKysgICAgICB4ZnJlZSAodGRlcCk7 CisrICAgICAgZ2RiYXJjaF9mcmVlIChnZGJhcmNoKTsKKysgICAgICByZXR1cm4gTlVMTDsKKysg ICAgfQorKworICAgLyogV2lyZSBpbiBwc2V1ZG8gcmVnaXN0ZXJzLiAgTnVtYmVyIG9mIHBzZXVk byByZWdpc3RlcnMgbWF5IGJlCisgICAgICBjaGFuZ2VkLiAgKi8KKyAgIHNldF9nZGJhcmNoX251 bV9wc2V1ZG9fcmVncyAoZ2RiYXJjaCwgKHRkZXAtPm51bV9ieXRlX3JlZ3MKKyAJCQkJCSArIHRk ZXAtPm51bV93b3JkX3JlZ3MKKyAJCQkJCSArIHRkZXAtPm51bV9kd29yZF9yZWdzCistCQkJCQkg KyB0ZGVwLT5udW1fbW14X3JlZ3MpKTsKKysJCQkJCSArIHRkZXAtPm51bV9tbXhfcmVncworKwkJ CQkJICsgdGRlcC0+bnVtX3ltbV9yZWdzKSk7CisgCisgICAvKiBUYXJnZXQgZGVzY3JpcHRpb24g bWF5IGJlIGNoYW5nZWQuICAqLworICAgdGRlc2MgPSB0ZGVwLT50ZGVzYzsKKyAKKy0gIGlmICgh aTM4Nl92YWxpZGF0ZV90ZGVzY19wICh0ZGVwLCB0ZGVzY19kYXRhKSkKKy0gICAgeworLSAgICAg IHRkZXNjX2RhdGFfY2xlYW51cCAodGRlc2NfZGF0YSk7CistICAgICAgeGZyZWUgKHRkZXApOwor LSAgICAgIGdkYmFyY2hfZnJlZSAoZ2RiYXJjaCk7CistICAgICAgcmV0dXJuIE5VTEw7CistICAg IH0KKy0KKyAgIHRkZXNjX3VzZV9yZWdpc3RlcnMgKGdkYmFyY2gsIHRkZXNjLCB0ZGVzY19kYXRh KTsKKyAKKyAgIC8qIE92ZXJyaWRlIGdkYmFyY2hfcmVnaXN0ZXJfcmVnZ3JvdXBfcCBzZXQgaW4g dGRlc2NfdXNlX3JlZ2lzdGVycy4gICovCitAQCAtNTkwOSwxNiArNjE0MywyNiBAQCBpMzg2X2dk YmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpCisgICB0ZGVwLT5hbF9yZWdudW0gPSBn ZGJhcmNoX251bV9yZWdzIChnZGJhcmNoKTsKKyAgIHRkZXAtPmF4X3JlZ251bSA9IHRkZXAtPmFs X3JlZ251bSArIHRkZXAtPm51bV9ieXRlX3JlZ3M7CisgCistICBtbTBfcmVnbnVtID0gdGRlcC0+ YXhfcmVnbnVtICsgdGRlcC0+bnVtX3dvcmRfcmVnczsKKysgIHltbTBfcmVnbnVtID0gdGRlcC0+ YXhfcmVnbnVtICsgdGRlcC0+bnVtX3dvcmRfcmVnczsKKyAgIGlmICh0ZGVwLT5udW1fZHdvcmRf cmVncykKKyAgICAgeworICAgICAgIC8qIFN1cHBvcnQgZHdvcmQgcHNldWRvLXJlZ2lzdGVzciBp ZiBpdCBoYXNuJ3QgYmVlbiBkaXNhYmxlZCwgICovCistICAgICAgdGRlcC0+ZWF4X3JlZ251bSA9 IG1tMF9yZWdudW07CistICAgICAgbW0wX3JlZ251bSA9IHRkZXAtPmVheF9yZWdudW0gKyB0ZGVw LT5udW1fZHdvcmRfcmVnczsKKysgICAgICB0ZGVwLT5lYXhfcmVnbnVtID0geW1tMF9yZWdudW07 CisrICAgICAgeW1tMF9yZWdudW0gKz0gdGRlcC0+bnVtX2R3b3JkX3JlZ3M7CisgICAgIH0KKyAg IGVsc2UKKyAgICAgdGRlcC0+ZWF4X3JlZ251bSA9IC0xOworIAorKyAgbW0wX3JlZ251bSA9IHlt bTBfcmVnbnVtOworKyAgaWYgKHRkZXAtPm51bV95bW1fcmVncykKKysgICAgeworKyAgICAgIC8q IFN1cHBvcnQgWU1NIHBzZXVkby1yZWdpc3Rlc3IgaWYgaXQgaXMgYXZhaWxhYmxlLCAgKi8KKysg ICAgICB0ZGVwLT55bW0wX3JlZ251bSA9IHltbTBfcmVnbnVtOworKyAgICAgIG1tMF9yZWdudW0g Kz0gdGRlcC0+bnVtX3ltbV9yZWdzOworKyAgICB9CisrICBlbHNlCisrICAgIHRkZXAtPnltbTBf cmVnbnVtID0gLTE7CisrCisgICBpZiAodGRlcC0+bnVtX21teF9yZWdzICE9IDApCisgICAgIHsK KyAgICAgICAvKiBTdXBwb3J0IE1NWCBwc2V1ZG8tcmVnaXN0ZXNyIGlmIE1NWCBoYXNuJ3QgYmVl biBkaXNhYmxlZCwgICovCitAQCAtNjAwMSw2ICs2MjQ1LDcgQEAgaXMgXCJkZWZhdWx0XCIuIiks CisgCisgICAvKiBJbml0aWFsaXplIHRoZSBzdGFuZGFyZCB0YXJnZXQgZGVzY3JpcHRpb25zLiAg Ki8KKyAgIGluaXRpYWxpemVfdGRlc2NfaTM4NiAoKTsKKysgIGluaXRpYWxpemVfdGRlc2NfaTM4 Nl9hdnggKCk7CisgCisgICAvKiBUZWxsIHJlbW90ZSBzdHViIHRoYXQgd2Ugc3VwcG9ydCBYTUwg dGFyZ2V0IGRlc2NyaXB0aW9uLiAgKi8KKyAgIHJlZ2lzdGVyX3JlbW90ZV9zdXBwb3J0X3htbCAo ImkzODYiKTsKKy0tLSAuL2dkYi9pMzg2LXRkZXAuaAkyMDEwLTA0LTAzIDIxOjA2OjUyLjAwMDAw MDAwMCArMDIwMAorKysrIC4vZ2RiL2kzODYtdGRlcC5oCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAw MDAwMDAwICswMjAwCitAQCAtMTA5LDYgKzEwOSw5IEBAIHN0cnVjdCBnZGJhcmNoX3RkZXAKKyAg IHN0cnVjdCByZWdzZXQgKmZwcmVnc2V0OworICAgc2l6ZV90IHNpemVvZl9mcHJlZ3NldDsKKyAK KysgIC8qIFhTQVZFIGV4dGVuZGVkIHN0YXRlLiAgKi8KKysgIHN0cnVjdCByZWdzZXQgKnhzdGF0 ZXJlZ3NldDsKKysKKyAgIC8qIFJlZ2lzdGVyIG51bWJlciBmb3IgJXN0KDApLiAgVGhlIHJlZ2lz dGVyIG51bWJlcnMgZm9yIHRoZSBvdGhlcgorICAgICAgcmVnaXN0ZXJzIGZvbGxvdyBmcm9tIHRo aXMgb25lLiAgU2V0IHRoaXMgdG8gLTEgdG8gaW5kaWNhdGUgdGhlCisgICAgICBhYnNlbmNlIG9m IGFuIEZQVS4gICovCitAQCAtMTIxLDYgKzEyNCwxMyBAQCBzdHJ1Y3QgZ2RiYXJjaF90ZGVwCisg ICAgICBvZiBNTVggc3VwcG9ydC4gICovCisgICBpbnQgbW0wX3JlZ251bTsKKyAKKysgIC8qIE51 bWJlciBvZiBwc2V1ZG8gWU1NIHJlZ2lzdGVycy4gICovCisrICBpbnQgbnVtX3ltbV9yZWdzOwor KworKyAgLyogUmVnaXN0ZXIgbnVtYmVyIGZvciAleW1tMC4gIFNldCB0aGlzIHRvIC0xIHRvIGlu ZGljYXRlIHRoZSBhYnNlbmNlCisrICAgICBvZiBwc2V1ZG8gWU1NIHJlZ2lzdGVyIHN1cHBvcnQu ICAqLworKyAgaW50IHltbTBfcmVnbnVtOworKworICAgLyogTnVtYmVyIG9mIGJ5dGUgcmVnaXN0 ZXJzLiAgKi8KKyAgIGludCBudW1fYnl0ZV9yZWdzOworIAorQEAgLTE0Niw5ICsxNTYsMjQgQEAg c3RydWN0IGdkYmFyY2hfdGRlcAorICAgLyogTnVtYmVyIG9mIFNTRSByZWdpc3RlcnMuICAqLwor ICAgaW50IG51bV94bW1fcmVnczsKKyAKKysgIC8qIEJpdHMgb2YgdGhlIGV4dGVuZGVkIGNvbnRy b2wgcmVnaXN0ZXIgMCAodGhlIFhGRUFUVVJFX0VOQUJMRURfTUFTSworKyAgICAgcmVnaXN0ZXIp LCBleGNsdWRpbmcgdGhlIHg4NyBiaXQsIHdoaWNoIGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBHREIu CisrICAgKi8KKysgIHVpbnQ2NF90IHhjcjA7CisrCisrICAvKiBPZmZzZXQgb2YgWENSMCBpbiBY U0FWRSBleHRlbmRlZCBzdGF0ZS4gICovCisrICBpbnQgeHNhdmVfeGNyMF9vZmZzZXQ7CisrCisg ICAvKiBSZWdpc3RlciBuYW1lcy4gICovCisgICBjb25zdCBjaGFyICoqcmVnaXN0ZXJfbmFtZXM7 CisgCisrICAvKiBSZWdpc3RlciBudW1iZXIgZm9yICV5bW0waC4gIFNldCB0aGlzIHRvIC0xIHRv IGluZGljYXRlIHRoZSBhYnNlbmNlCisrICAgICBvZiB1cHBlciBZTU0gcmVnaXN0ZXIgc3VwcG9y dC4gICovCisrICBpbnQgeW1tMGhfcmVnbnVtOworKworKyAgLyogVXBwZXIgWU1NIHJlZ2lzdGVy IG5hbWVzLiAgT25seSB1c2VkIGZvciB0ZGVzY19udW1iZXJlZF9yZWdpc3Rlci4gICovCisrICBj b25zdCBjaGFyICoqeW1taF9yZWdpc3Rlcl9uYW1lczsKKysKKyAgIC8qIFRhcmdldCBkZXNjcmlw dGlvbi4gICovCisgICBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKnRkZXNjOworIAorQEAgLTE4 Miw2ICsyMDcsNyBAQCBzdHJ1Y3QgZ2RiYXJjaF90ZGVwCisgCisgICAvKiBJU0Etc3BlY2lmaWMg ZGF0YSB0eXBlcy4gICovCisgICBzdHJ1Y3QgdHlwZSAqaTM4Nl9tbXhfdHlwZTsKKysgIHN0cnVj dCB0eXBlICppMzg2X3ltbV90eXBlOworICAgc3RydWN0IHR5cGUgKmkzODdfZXh0X3R5cGU7Cisg CisgICAvKiBQcm9jZXNzIHJlY29yZC9yZXBsYXkgdGFyZ2V0LiAgKi8KK0BAIC0yMzEsNyArMjU3 LDkgQEAgZW51bSBpMzg2X3JlZ251bQorICAgSTM4Nl9GU19SRUdOVU0sCQkvKiAlZnMgKi8KKyAg IEkzODZfR1NfUkVHTlVNLAkJLyogJWdzICovCisgICBJMzg2X1NUMF9SRUdOVU0sCQkvKiAlc3Qo MCkgKi8KKy0gIEkzODZfTVhDU1JfUkVHTlVNID0gNDAJLyogJW14Y3NyICovIAorKyAgSTM4Nl9N WENTUl9SRUdOVU0gPSA0MCwJLyogJW14Y3NyICovIAorKyAgSTM4Nl9ZTU0wSF9SRUdOVU0sCQkv KiAleW1tMGggKi8KKysgIEkzODZfWU1NN0hfUkVHTlVNID0gSTM4Nl9ZTU0wSF9SRUdOVU0gKyA3 CisgfTsKKyAKKyAvKiBSZWdpc3RlciBudW1iZXJzIG9mIFJFQ09SRF9SRUdNQVAuICAqLworQEAg LTI2OCw2ICsyOTYsNyBAQCBlbnVtIHJlY29yZF9pMzg2X3JlZ251bQorICNkZWZpbmUgSTM4Nl9O VU1fWFJFR1MgIDkKKyAKKyAjZGVmaW5lIEkzODZfU1NFX05VTV9SRUdTCShJMzg2X01YQ1NSX1JF R05VTSArIDEpCisrI2RlZmluZSBJMzg2X0FWWF9OVU1fUkVHUwkoSTM4Nl9ZTU03SF9SRUdOVU0g KyAxKQorIAorIC8qIFNpemUgb2YgdGhlIGxhcmdlc3QgcmVnaXN0ZXIuICAqLworICNkZWZpbmUg STM4Nl9NQVhfUkVHSVNURVJfU0laRQkxNgorQEAgLTI3OSw2ICszMDgsOSBAQCBleHRlcm4gc3Ry dWN0IHR5cGUgKmkzODdfZXh0X3R5cGUgKHN0cnVjCisgZXh0ZXJuIGludCBpMzg2X2J5dGVfcmVn bnVtX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKTsKKyBleHRlcm4gaW50 IGkzODZfd29yZF9yZWdudW1fcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0p OworIGV4dGVybiBpbnQgaTM4Nl9kd29yZF9yZWdudW1fcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIGludCByZWdudW0pOworK2V4dGVybiBpbnQgaTM4Nl94bW1fcmVnbnVtX3AgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKTsKKytleHRlcm4gaW50IGkzODZfeW1tX3JlZ251 bV9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSk7CisrZXh0ZXJuIGludCBp Mzg2X3ltbWhfcmVnbnVtX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKTsK KyAKKyBleHRlcm4gY29uc3QgY2hhciAqaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsCisgCQkJCQkgICAgICBpbnQgcmVnbnVtKTsKKy0tLSAuL2dkYi9p Mzg3LXRkZXAuYwkyMDEwLTAxLTAxIDA4OjMxOjM2LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2Ri L2kzODctdGRlcC5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMzQs NiArMzQsNyBAQAorIAorICNpbmNsdWRlICJpMzg2LXRkZXAuaCIKKyAjaW5jbHVkZSAiaTM4Ny10 ZGVwLmgiCisrI2luY2x1ZGUgImkzODYteHN0YXRlLmgiCisgCisgLyogUHJpbnQgdGhlIGZsb2F0 aW5nIHBvaW50IG51bWJlciBzcGVjaWZpZWQgYnkgUkFXLiAgKi8KKyAKK0BAIC02NzcsNiArNjc4 LDUxOCBAQCBpMzg3X2NvbGxlY3RfZnhzYXZlIChjb25zdCBzdHJ1Y3QgcmVnY2FjCisgCQkJICBG WFNBVkVfTVhDU1JfQUREUiAocmVncykpOworIH0KKyAKKysvKiBgeHN0YXRlX2J2JyBpcyBhdCBi eXRlIG9mZnNldCA1MTIuICAqLworKyNkZWZpbmUgWFNBVkVfWFNUQVRFX0JWX0FERFIoeHNhdmUp ICh4c2F2ZSArIDUxMikKKysKKysvKiBBdCB4c2F2ZV9hdnhoX29mZnNldFtSRUdOVU1dIHlvdSds bCBmaW5kIHRoZSBvZmZzZXQgdG8gdGhlIGxvY2F0aW9uIGluCisrICAgdGhlIHVwcGVyIDEyOGJp dCBvZiBBVlggcmVnaXN0ZXIgZGF0YSBzdHJ1Y3R1cmUgdXNlZCBieSB0aGUgInhzYXZlIgorKyAg IGluc3RydWN0aW9uIHdoZXJlIEdEQiByZWdpc3RlciBSRUdOVU0gaXMgc3RvcmVkLiAgKi8KKysK KytzdGF0aWMgaW50IHhzYXZlX2F2eGhfb2Zmc2V0W10gPQorK3sKKysgIDU3NiArIDAgKiAxNiwJ CS8qIFVwcGVyIDEyOGJpdCBvZiAleW1tMCB0aHJvdWdoIC4uLiAgKi8KKysgIDU3NiArIDEgKiAx NiwKKysgIDU3NiArIDIgKiAxNiwKKysgIDU3NiArIDMgKiAxNiwKKysgIDU3NiArIDQgKiAxNiwK KysgIDU3NiArIDUgKiAxNiwKKysgIDU3NiArIDYgKiAxNiwKKysgIDU3NiArIDcgKiAxNiwKKysg IDU3NiArIDggKiAxNiwKKysgIDU3NiArIDkgKiAxNiwKKysgIDU3NiArIDEwICogMTYsCisrICA1 NzYgKyAxMSAqIDE2LAorKyAgNTc2ICsgMTIgKiAxNiwKKysgIDU3NiArIDEzICogMTYsCisrICA1 NzYgKyAxNCAqIDE2LAorKyAgNTc2ICsgMTUgKiAxNgkJLyogVXBwZXIgMTI4Yml0IG9mIC4uLiAl eW1tMTUgKDEyOCBiaXRzIGVhY2gpLiAgKi8KKyt9OworKworKyNkZWZpbmUgWFNBVkVfQVZYSF9B RERSKHRkZXAsIHhzYXZlLCByZWdudW0pIFwKKysgICh4c2F2ZSArIHhzYXZlX2F2eGhfb2Zmc2V0 W3JlZ251bSAtIEkzODdfWU1NMEhfUkVHTlVNICh0ZGVwKV0pCisrCisrLyogU2ltaWxhciB0byBp Mzg3X3N1cHBseV9meHNhdmUsIGJ1dCB1c2UgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuICAqLworKwor K3ZvaWQKKytpMzg3X3N1cHBseV94c2F2ZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50 IHJlZ251bSwKKysJCSAgIGNvbnN0IHZvaWQgKnhzYXZlKQorK3sKKysgIHN0cnVjdCBnZGJhcmNo X3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSkp OworKyAgY29uc3QgZ2RiX2J5dGUgKnJlZ3MgPSB4c2F2ZTsKKysgIGludCBpOworKyAgdW5zaWdu ZWQgaW50IGNsZWFyX2J2OworKyAgY29uc3QgZ2RiX2J5dGUgKnA7CisrICBlbnVtCisrICAgIHsK KysgICAgICBub25lID0gMHgwLAorKyAgICAgIHg4NyA9IDB4MSwKKysgICAgICBzc2UgPSAweDIs CisrICAgICAgYXZ4aCA9IDB4NCwKKysgICAgICBhbGwgPSB4ODcgfCBzc2UgfCBhdnhoCisrICAg IH0gcmVnY2xhc3M7CisrCisrICBnZGJfYXNzZXJ0ICh0ZGVwLT5zdDBfcmVnbnVtID49IEkzODZf U1QwX1JFR05VTSk7CisrICBnZGJfYXNzZXJ0ICh0ZGVwLT5udW1feG1tX3JlZ3MgPiAwKTsKKysK KysgIGlmIChyZWdudW0gPT0gLTEpCisrICAgIHJlZ2NsYXNzID0gYWxsOworKyAgZWxzZSBpZiAo cmVnbnVtID49IEkzODdfWU1NMEhfUkVHTlVNICh0ZGVwKQorKwkgICAmJiByZWdudW0gPCBJMzg3 X1lNTUVOREhfUkVHTlVNICh0ZGVwKSkKKysgICAgcmVnY2xhc3MgPSBhdnhoOworKyAgZWxzZSBp ZiAocmVnbnVtID49IEkzODdfWE1NMF9SRUdOVU0odGRlcCkKKysJICAgJiYgcmVnbnVtIDwgSTM4 N19NWENTUl9SRUdOVU0gKHRkZXApKQorKyAgICByZWdjbGFzcyA9IHNzZTsKKysgIGVsc2UgaWYg KHJlZ251bSA+PSBJMzg3X1NUMF9SRUdOVU0gKHRkZXApCisrCSAgICYmIHJlZ251bSA8IEkzODdf RkNUUkxfUkVHTlVNICh0ZGVwKSkKKysgICAgcmVnY2xhc3MgPSB4ODc7CisrICBlbHNlCisrICAg IHJlZ2NsYXNzID0gbm9uZTsKKysKKysgIGlmIChyZWdzICE9IE5VTEwgJiYgcmVnY2xhc3MgIT0g bm9uZSkKKysgICAgeworKyAgICAgIC8qIEdldCBgeHN0YXRfYnYnLiAgKi8KKysgICAgICBjb25z dCBnZGJfYnl0ZSAqeHN0YXRlX2J2X3AgPSBYU0FWRV9YU1RBVEVfQlZfQUREUiAocmVncyk7Cisr CisrICAgICAgLyogVGhlIHN1cHBvcnRlZCBiaXRzIGluIGB4c3RhdF9idicgYXJlIDEgYnl0ZS4g IENsZWFyIHBhcnQgaW4KKysJIHZlY3RvciByZWdpc3RlcnMgaWYgaXRzIGJpdCBpbiB4c3RhdF9i diBpcyB6ZXJvLiAgKi8KKysgICAgICBjbGVhcl9idiA9ICh+KCp4c3RhdGVfYnZfcCkpICYgdGRl cC0+eGNyMDsKKysgICAgfQorKyAgZWxzZQorKyAgICBjbGVhcl9idiA9IEkzODZfWFNUQVRFX0FW WF9NQVNLOworKworKyAgc3dpdGNoIChyZWdjbGFzcykKKysgICAgeworKyAgICBjYXNlIG5vbmU6 CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgYXZ4aDoKKysgICAgICBpZiAoKGNsZWFyX2J2 ICYgSTM4Nl9YU1RBVEVfQVZYKSkKKysJcCA9IE5VTEw7CisrICAgICAgZWxzZQorKwlwID0gWFNB VkVfQVZYSF9BRERSICh0ZGVwLCByZWdzLCByZWdudW0pOworKyAgICAgIHJlZ2NhY2hlX3Jhd19z dXBwbHkgKHJlZ2NhY2hlLCByZWdudW0sIHApOworKyAgICAgIHJldHVybjsKKysKKysgICAgY2Fz ZSBzc2U6CisrICAgICAgaWYgKChjbGVhcl9idiAmIEkzODZfWFNUQVRFX1NTRSkpCisrCXAgPSBO VUxMOworKyAgICAgIGVsc2UKKysJcCA9IEZYU0FWRV9BRERSICh0ZGVwLCByZWdzLCByZWdudW0p OworKyAgICAgIHJlZ2NhY2hlX3Jhd19zdXBwbHkgKHJlZ2NhY2hlLCByZWdudW0sIHApOworKyAg ICAgIHJldHVybjsKKysKKysgICAgY2FzZSB4ODc6CisrICAgICAgaWYgKChjbGVhcl9idiAmIEkz ODZfWFNUQVRFX1g4NykpCisrCXAgPSBOVUxMOworKyAgICAgIGVsc2UKKysJcCA9IEZYU0FWRV9B RERSICh0ZGVwLCByZWdzLCByZWdudW0pOworKyAgICAgIHJlZ2NhY2hlX3Jhd19zdXBwbHkgKHJl Z2NhY2hlLCByZWdudW0sIHApOworKyAgICAgIHJldHVybjsKKysKKysgICAgY2FzZSBhbGw6Cisr ICAgICAgLyogSGFubGUgdGhlIHVwcGVyIFlNTSByZWdpc3RlcnMuICAqLworKyAgICAgIGlmICgo dGRlcC0+eGNyMCAmIEkzODZfWFNUQVRFX0FWWCkpCisrCXsKKysJICBpZiAoKGNsZWFyX2J2ICYg STM4Nl9YU1RBVEVfQVZYKSkKKysJICAgIHAgPSBOVUxMOworKwkgIGVsc2UKKysJICAgIHAgPSBy ZWdzOworKworKwkgIGZvciAoaSA9IEkzODdfWU1NMEhfUkVHTlVNICh0ZGVwKTsKKysJICAgICAg IGkgPCBJMzg3X1lNTUVOREhfUkVHTlVNICh0ZGVwKTsgaSsrKQorKwkgICAgeworKwkgICAgICBp ZiAocCAhPSBOVUxMKQorKwkJcCA9IFhTQVZFX0FWWEhfQUREUiAodGRlcCwgcmVncywgaSk7Cisr CSAgICAgIHJlZ2NhY2hlX3Jhd19zdXBwbHkgKHJlZ2NhY2hlLCBpLCBwKTsKKysJICAgIH0KKysJ fQorKworKyAgICAgIC8qIEhhbmRsZSB0aGUgWE1NIHJlZ2lzdGVycy4gICovCisrICAgICAgaWYg KCh0ZGVwLT54Y3IwICYgSTM4Nl9YU1RBVEVfU1NFKSkKKysJeworKwkgIGlmICgoY2xlYXJfYnYg JiBJMzg2X1hTVEFURV9TU0UpKQorKwkgICAgcCA9IE5VTEw7CisrCSAgZWxzZQorKwkgICAgcCA9 IHJlZ3M7CisrCisrCSAgZm9yIChpID0gSTM4N19YTU0wX1JFR05VTSAodGRlcCk7CisrCSAgICAg ICBpIDwgSTM4N19NWENTUl9SRUdOVU0gKHRkZXApOyBpKyspCisrCSAgICB7CisrCSAgICAgIGlm IChwICE9IE5VTEwpCisrCQlwID0gRlhTQVZFX0FERFIgKHRkZXAsIHJlZ3MsIGkpOworKwkgICAg ICByZWdjYWNoZV9yYXdfc3VwcGx5IChyZWdjYWNoZSwgaSwgcCk7CisrCSAgICB9CisrCX0KKysK KysgICAgICAvKiBIYW5kbGUgdGhlIHg4NyByZWdpc3RlcnMuICAqLworKyAgICAgIGlmICgodGRl cC0+eGNyMCAmIEkzODZfWFNUQVRFX1g4NykpCisrCXsKKysJICBpZiAoKGNsZWFyX2J2ICYgSTM4 Nl9YU1RBVEVfWDg3KSkKKysJICAgIHAgPSBOVUxMOworKwkgIGVsc2UKKysJICAgIHAgPSByZWdz OworKworKwkgIGZvciAoaSA9IEkzODdfU1QwX1JFR05VTSAodGRlcCk7CisrCSAgICAgICBpIDwg STM4N19GQ1RSTF9SRUdOVU0gKHRkZXApOyBpKyspCisrCSAgICB7CisrCSAgICAgIGlmIChwICE9 IE5VTEwpCisrCQlwID0gRlhTQVZFX0FERFIgKHRkZXAsIHJlZ3MsIGkpOworKwkgICAgICByZWdj YWNoZV9yYXdfc3VwcGx5IChyZWdjYWNoZSwgaSwgcCk7CisrCSAgICB9CisrCX0KKysgICAgICBi cmVhazsKKysgICAgfQorKworKyAgLyogT25seSBoYW5kbGUgeDg3IGNvbnRyb2wgcmVnaXN0ZXJz LiAgKi8KKysgIGZvciAoaSA9IEkzODdfRkNUUkxfUkVHTlVNICh0ZGVwKTsgaSA8IEkzODdfWE1N MF9SRUdOVU0gKHRkZXApOyBpKyspCisrICAgIGlmIChyZWdudW0gPT0gLTEgfHwgcmVnbnVtID09 IGkpCisrICAgICAgeworKwlpZiAocmVncyA9PSBOVUxMKQorKwkgIHsKKysJICAgIHJlZ2NhY2hl X3Jhd19zdXBwbHkgKHJlZ2NhY2hlLCBpLCBOVUxMKTsKKysJICAgIGNvbnRpbnVlOworKwkgIH0K KysKKysJLyogTW9zdCBvZiB0aGUgRlBVIGNvbnRyb2wgcmVnaXN0ZXJzIG9jY3VweSBvbmx5IDE2 IGJpdHMgaW4KKysJICAgdGhlIHhzYXZlIGV4dGVuZGVkIHN0YXRlLiAgR2l2ZSB0aG9zZSBhIHNw ZWNpYWwgdHJlYXRtZW50LiAgKi8KKysJaWYgKGkgIT0gSTM4N19GSU9GRl9SRUdOVU0gKHRkZXAp CisrCSAgICAmJiBpICE9IEkzODdfRk9PRkZfUkVHTlVNICh0ZGVwKSkKKysJICB7CisrCSAgICBn ZGJfYnl0ZSB2YWxbNF07CisrCisrCSAgICBtZW1jcHkgKHZhbCwgRlhTQVZFX0FERFIgKHRkZXAs IHJlZ3MsIGkpLCAyKTsKKysJICAgIHZhbFsyXSA9IHZhbFszXSA9IDA7CisrCSAgICBpZiAoaSA9 PSBJMzg3X0ZPUF9SRUdOVU0gKHRkZXApKQorKwkgICAgICB2YWxbMV0gJj0gKCgxIDw8IDMpIC0g MSk7CisrCSAgICBlbHNlIGlmIChpPT0gSTM4N19GVEFHX1JFR05VTSAodGRlcCkpCisrCSAgICAg IHsKKysJCS8qIFRoZSBmeHNhdmUgYXJlYSBjb250YWlucyBhIHNpbXBsaWZpZWQgdmVyc2lvbiBv ZgorKwkJICAgdGhlIHRhZyB3b3JkLiAgV2UgaGF2ZSB0byBsb29rIGF0IHRoZSBhY3R1YWwgODAt Yml0CisrCQkgICBGUCBkYXRhIHRvIHJlY3JlYXRlIHRoZSB0cmFkaXRpb25hbCBpMzg3IHRhZyB3 b3JkLiAgKi8KKysKKysJCXVuc2lnbmVkIGxvbmcgZnRhZyA9IDA7CisrCQlpbnQgZnByZWc7Cisr CQlpbnQgdG9wOworKworKwkJdG9wID0gKChGWFNBVkVfQUREUiAodGRlcCwgcmVncywKKysJCQkJ ICAgICBJMzg3X0ZTVEFUX1JFR05VTSAodGRlcCkpKVsxXSA+PiAzKTsKKysJCXRvcCAmPSAweDc7 CisrCisrCQlmb3IgKGZwcmVnID0gNzsgZnByZWcgPj0gMDsgZnByZWctLSkKKysJCSAgeworKwkJ ICAgIGludCB0YWc7CisrCisrCQkgICAgaWYgKHZhbFswXSAmICgxIDw8IGZwcmVnKSkKKysJCSAg ICAgIHsKKysJCQlpbnQgcmVnbnVtID0gKGZwcmVnICsgOCAtIHRvcCkgJSA4IAorKwkJCQkgICAg ICAgKyBJMzg3X1NUMF9SRUdOVU0gKHRkZXApOworKwkJCXRhZyA9IGkzODdfdGFnIChGWFNBVkVf QUREUiAodGRlcCwgcmVncywgcmVnbnVtKSk7CisrCQkgICAgICB9CisrCQkgICAgZWxzZQorKwkJ ICAgICAgdGFnID0gMzsJCS8qIEVtcHR5ICovCisrCisrCQkgICAgZnRhZyB8PSB0YWcgPDwgKDIg KiBmcHJlZyk7CisrCQkgIH0KKysJCXZhbFswXSA9IGZ0YWcgJiAweGZmOworKwkJdmFsWzFdID0g KGZ0YWcgPj4gOCkgJiAweGZmOworKwkgICAgICB9CisrCSAgICByZWdjYWNoZV9yYXdfc3VwcGx5 IChyZWdjYWNoZSwgaSwgdmFsKTsKKysJICB9CisrCWVsc2UgCisrCSAgcmVnY2FjaGVfcmF3X3N1 cHBseSAocmVnY2FjaGUsIGksIEZYU0FWRV9BRERSICh0ZGVwLCByZWdzLCBpKSk7CisrICAgICAg fQorKworKyAgaWYgKHJlZ251bSA9PSBJMzg3X01YQ1NSX1JFR05VTSAodGRlcCkgfHwgcmVnbnVt ID09IC0xKQorKyAgICB7CisrICAgICAgcCA9IHJlZ3MgPT0gTlVMTCA/IE5VTEwgOiBGWFNBVkVf TVhDU1JfQUREUiAocmVncyk7CisrICAgICAgcmVnY2FjaGVfcmF3X3N1cHBseSAocmVnY2FjaGUs IEkzODdfTVhDU1JfUkVHTlVNICh0ZGVwKSwgcCk7CisrICAgIH0KKyt9CisrCisrLyogU2ltaWxh ciB0byBpMzg3X2NvbGxlY3RfZnhzYXZlLCBidXQgdXNlIFhTQVZFIGV4dGVuZGVkIHN0YXRlLiAg Ki8KKysKKyt2b2lkCisraTM4N19jb2xsZWN0X3hzYXZlIChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUg KnJlZ2NhY2hlLCBpbnQgcmVnbnVtLAorKwkJICAgIHZvaWQgKnhzYXZlLCBpbnQgZ2NvcmUpCisr eworKyAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2V0X3JlZ2Nh Y2hlX2FyY2ggKHJlZ2NhY2hlKSk7CisrICBnZGJfYnl0ZSAqcmVncyA9IHhzYXZlOworKyAgaW50 IGk7CisrICBlbnVtCisrICAgIHsKKysgICAgICBub25lID0gMHgwLAorKyAgICAgIGNoZWNrID0g MHgxLAorKyAgICAgIHg4NyA9IDB4MiB8IGNoZWNrLAorKyAgICAgIHNzZSA9IDB4NCB8IGNoZWNr LAorKyAgICAgIGF2eGggPSAweDggfCBjaGVjaywKKysgICAgICBhbGwgPSB4ODcgfCBzc2UgfCBh dnhoCisrICAgIH0gcmVnY2xhc3M7CisrCisrICBnZGJfYXNzZXJ0ICh0ZGVwLT5zdDBfcmVnbnVt ID49IEkzODZfU1QwX1JFR05VTSk7CisrICBnZGJfYXNzZXJ0ICh0ZGVwLT5udW1feG1tX3JlZ3Mg PiAwKTsKKysKKysgIGlmIChyZWdudW0gPT0gLTEpCisrICAgIHJlZ2NsYXNzID0gYWxsOworKyAg ZWxzZSBpZiAocmVnbnVtID49IEkzODdfWU1NMEhfUkVHTlVNICh0ZGVwKQorKwkgICAmJiByZWdu dW0gPCBJMzg3X1lNTUVOREhfUkVHTlVNICh0ZGVwKSkKKysgICAgcmVnY2xhc3MgPSBhdnhoOwor KyAgZWxzZSBpZiAocmVnbnVtID49IEkzODdfWE1NMF9SRUdOVU0odGRlcCkKKysJICAgJiYgcmVn bnVtIDwgSTM4N19NWENTUl9SRUdOVU0gKHRkZXApKQorKyAgICByZWdjbGFzcyA9IHNzZTsKKysg IGVsc2UgaWYgKHJlZ251bSA+PSBJMzg3X1NUMF9SRUdOVU0gKHRkZXApCisrCSAgICYmIHJlZ251 bSA8IEkzODdfRkNUUkxfUkVHTlVNICh0ZGVwKSkKKysgICAgcmVnY2xhc3MgPSB4ODc7CisrICBl bHNlCisrICAgIHJlZ2NsYXNzID0gbm9uZTsKKysKKysgIGlmIChnY29yZSkKKysgICAgeworKyAg ICAgIC8qIFVwZGF0ZSBYQ1IwIGFuZCBgeHN0YXRlX2J2JyB3aXRoIFhDUjAgZm9yIGdjb3JlLiAg Ki8KKysgICAgICBpZiAodGRlcC0+eHNhdmVfeGNyMF9vZmZzZXQgIT0gLTEpCisrCW1lbWNweSAo cmVncyArIHRkZXAtPnhzYXZlX3hjcjBfb2Zmc2V0LCAmdGRlcC0+eGNyMCwgOCk7CisrICAgICAg bWVtY3B5IChYU0FWRV9YU1RBVEVfQlZfQUREUiAocmVncyksICZ0ZGVwLT54Y3IwLCA4KTsKKysK KysgICAgICBzd2l0Y2ggKHJlZ2NsYXNzKQorKwl7CisrCWRlZmF1bHQ6CisrCSAgYWJvcnQgKCk7 CisrCisrCWNhc2UgYWxsOgorKwkgIC8qIEhhbmRsZSB0aGUgdXBwZXIgWU1NIHJlZ2lzdGVycy4g ICovCisrCSAgaWYgKCh0ZGVwLT54Y3IwICYgSTM4Nl9YU1RBVEVfQVZYKSkKKysJICAgIGZvciAo aSA9IEkzODdfWU1NMEhfUkVHTlVNICh0ZGVwKTsKKysJCSBpIDwgSTM4N19ZTU1FTkRIX1JFR05V TSAodGRlcCk7IGkrKykKKysJICAgICAgcmVnY2FjaGVfcmF3X2NvbGxlY3QgKHJlZ2NhY2hlLCBp LAorKwkJCQkgICAgWFNBVkVfQVZYSF9BRERSICh0ZGVwLCByZWdzLCBpKSk7CisrCisrCSAgLyog SGFuZGxlIHRoZSBYTU0gcmVnaXN0ZXJzLiAgKi8KKysJICBpZiAoKHRkZXAtPnhjcjAgJiBJMzg2 X1hTVEFURV9TU0UpKQorKwkgICAgZm9yIChpID0gSTM4N19YTU0wX1JFR05VTSAodGRlcCk7Cisr CQkgaSA8IEkzODdfTVhDU1JfUkVHTlVNICh0ZGVwKTsgaSsrKQorKwkgICAgICByZWdjYWNoZV9y YXdfY29sbGVjdCAocmVnY2FjaGUsIGksCisrCQkJCSAgICBGWFNBVkVfQUREUiAodGRlcCwgcmVn cywgaSkpOworKworKwkgIC8qIEhhbmRsZSB0aGUgeDg3IHJlZ2lzdGVycy4gICovCisrCSAgaWYg KCh0ZGVwLT54Y3IwICYgSTM4Nl9YU1RBVEVfWDg3KSkKKysJICAgIGZvciAoaSA9IEkzODdfU1Qw X1JFR05VTSAodGRlcCk7CisrCQkgaSA8IEkzODdfRkNUUkxfUkVHTlVNICh0ZGVwKTsgaSsrKQor KwkgICAgICByZWdjYWNoZV9yYXdfY29sbGVjdCAocmVnY2FjaGUsIGksCisrCQkJCSAgICBGWFNB VkVfQUREUiAodGRlcCwgcmVncywgaSkpOworKwkgIGJyZWFrOworKworKwljYXNlIHg4NzoKKysJ ICByZWdjYWNoZV9yYXdfY29sbGVjdCAocmVnY2FjaGUsIHJlZ251bSwKKysJCQkJRlhTQVZFX0FE RFIgKHRkZXAsIHJlZ3MsIHJlZ251bSkpOworKwkgIHJldHVybjsKKysKKysJY2FzZSBzc2U6Cisr CSAgcmVnY2FjaGVfcmF3X2NvbGxlY3QgKHJlZ2NhY2hlLCByZWdudW0sCisrCQkJCUZYU0FWRV9B RERSICh0ZGVwLCByZWdzLCByZWdudW0pKTsKKysJICByZXR1cm47CisrCisrCWNhc2UgYXZ4aDoK KysJICByZWdjYWNoZV9yYXdfY29sbGVjdCAocmVnY2FjaGUsIHJlZ251bSwKKysJCQkJWFNBVkVf QVZYSF9BRERSICh0ZGVwLCByZWdzLCByZWdudW0pKTsKKysJICByZXR1cm47CisrCX0KKysgICAg fQorKyAgZWxzZQorKyAgICB7CisrICAgICAgaWYgKChyZWdjbGFzcyAmIGNoZWNrKSkKKysJewor KwkgIGdkYl9ieXRlIHJhd1tJMzg2X01BWF9SRUdJU1RFUl9TSVpFXTsKKysJICBnZGJfYnl0ZSAq eHN0YXRlX2J2X3AgPSBYU0FWRV9YU1RBVEVfQlZfQUREUiAocmVncyk7CisrCSAgdW5zaWduZWQg aW50IHhzdGF0ZV9idiA9IDA7CisrCSAgLyogVGhlIHN1cHBvcnRlZCBiaXRzIGluIGB4c3RhdF9i dicgYXJlIDEgYnl0ZS4gKi8KKysJICB1bnNpZ25lZCBpbnQgY2xlYXJfYnYgPSAofigqeHN0YXRl X2J2X3ApKSAmIHRkZXAtPnhjcjA7CisrCSAgZ2RiX2J5dGUgKnA7CisrCisrCSAgLyogQ2xlYXIg cmVnaXN0ZXIgc2V0IGlmIGl0cyBiaXQgaW4geHN0YXRfYnYgaXMgemVyby4gICovCisrCSAgaWYg KGNsZWFyX2J2KQorKwkgICAgeworKwkgICAgICBpZiAoKGNsZWFyX2J2ICYgSTM4Nl9YU1RBVEVf QVZYKSkKKysJCWZvciAoaSA9IEkzODdfWU1NMEhfUkVHTlVNICh0ZGVwKTsKKysJCSAgICAgaSA8 IEkzODdfWU1NRU5ESF9SRUdOVU0gKHRkZXApOyBpKyspCisrCQkgIG1lbXNldCAoWFNBVkVfQVZY SF9BRERSICh0ZGVwLCByZWdzLCBpKSwgMCwgMTYpOworKworKwkgICAgICBpZiAoKGNsZWFyX2J2 ICYgSTM4Nl9YU1RBVEVfU1NFKSkKKysJCWZvciAoaSA9IEkzODdfWE1NMF9SRUdOVU0gKHRkZXAp OworKwkJICAgICBpIDwgSTM4N19NWENTUl9SRUdOVU0gKHRkZXApOyBpKyspCisrCQkgIG1lbXNl dCAoRlhTQVZFX0FERFIgKHRkZXAsIHJlZ3MsIGkpLCAwLCAxNik7CisrCisrCSAgICAgIGlmICgo Y2xlYXJfYnYgJiBJMzg2X1hTVEFURV9YODcpKQorKwkJZm9yIChpID0gSTM4N19TVDBfUkVHTlVN ICh0ZGVwKTsKKysJCSAgICAgaSA8IEkzODdfRkNUUkxfUkVHTlVNICh0ZGVwKTsgaSsrKQorKwkJ ICBtZW1zZXQgKEZYU0FWRV9BRERSICh0ZGVwLCByZWdzLCBpKSwgMCwgMTApOworKwkgICAgfQor KworKwkgIGlmIChyZWdjbGFzcyA9PSBhbGwpCisrCSAgICB7CisrCSAgICAgIC8qIENoZWNrIGlm IGFueSB1cHBlciBZTU0gcmVnaXN0ZXJzIGFyZSBjaGFuZ2VkLiAgKi8KKysJICAgICAgaWYgKCh0 ZGVwLT54Y3IwICYgSTM4Nl9YU1RBVEVfQVZYKSkKKysJCWZvciAoaSA9IEkzODdfWU1NMEhfUkVH TlVNICh0ZGVwKTsKKysJCSAgICAgaSA8IEkzODdfWU1NRU5ESF9SRUdOVU0gKHRkZXApOyBpKysp CisrCQkgIHsKKysJCSAgICByZWdjYWNoZV9yYXdfY29sbGVjdCAocmVnY2FjaGUsIGksIHJhdyk7 CisrCQkgICAgcCA9IFhTQVZFX0FWWEhfQUREUiAodGRlcCwgcmVncywgaSk7CisrCQkgICAgaWYg KG1lbWNtcCAocmF3LCBwLCAxNikpCisrCQkgICAgICB7CisrCQkJeHN0YXRlX2J2IHw9IEkzODZf WFNUQVRFX0FWWDsKKysJCQltZW1jcHkgKHAsIHJhdywgMTYpOworKwkJICAgICAgfQorKwkJICB9 CisrCisrCSAgICAgIC8qIENoZWNrIGlmIGFueSBTU0UgcmVnaXN0ZXJzIGFyZSBjaGFuZ2VkLiAg Ki8KKysJICAgICAgaWYgKCh0ZGVwLT54Y3IwICYgSTM4Nl9YU1RBVEVfU1NFKSkKKysJCWZvciAo aSA9IEkzODdfWE1NMF9SRUdOVU0gKHRkZXApOworKwkJICAgICBpIDwgSTM4N19NWENTUl9SRUdO VU0gKHRkZXApOyBpKyspCisrCQkgIHsKKysJCSAgICByZWdjYWNoZV9yYXdfY29sbGVjdCAocmVn Y2FjaGUsIGksIHJhdyk7CisrCQkgICAgcCA9IEZYU0FWRV9BRERSICh0ZGVwLCByZWdzLCBpKTsK KysJCSAgICBpZiAobWVtY21wIChyYXcsIHAsIDE2KSkKKysJCSAgICAgIHsKKysJCQl4c3RhdGVf YnYgfD0gSTM4Nl9YU1RBVEVfU1NFOworKwkJCW1lbWNweSAocCwgcmF3LCAxNik7CisrCQkgICAg ICB9CisrCQkgIH0KKysKKysJICAgICAgLyogQ2hlY2sgaWYgYW55IFg4NyByZWdpc3RlcnMgYXJl IGNoYW5nZWQuICAqLworKwkgICAgICBpZiAoKHRkZXAtPnhjcjAgJiBJMzg2X1hTVEFURV9YODcp KQorKwkJZm9yIChpID0gSTM4N19TVDBfUkVHTlVNICh0ZGVwKTsKKysJCSAgICAgaSA8IEkzODdf RkNUUkxfUkVHTlVNICh0ZGVwKTsgaSsrKQorKwkJICB7CisrCQkgICAgcmVnY2FjaGVfcmF3X2Nv bGxlY3QgKHJlZ2NhY2hlLCBpLCByYXcpOworKwkJICAgIHAgPSBGWFNBVkVfQUREUiAodGRlcCwg cmVncywgaSk7CisrCQkgICAgaWYgKG1lbWNtcCAocmF3LCBwLCAxMCkpCisrCQkgICAgICB7Cisr CQkJeHN0YXRlX2J2IHw9IEkzODZfWFNUQVRFX1g4NzsKKysJCQltZW1jcHkgKHAsIHJhdywgMTAp OworKwkJICAgICAgfQorKwkJICB9CisrCSAgICB9CisrCSAgZWxzZQorKwkgICAgeworKwkgICAg ICAvKiBDaGVjayBpZiBSRUdOVU0gaXMgY2hhbmdlZC4gICovCisrCSAgICAgIHJlZ2NhY2hlX3Jh d19jb2xsZWN0IChyZWdjYWNoZSwgcmVnbnVtLCByYXcpOworKworKwkgICAgICBzd2l0Y2ggKHJl Z2NsYXNzKQorKwkJeworKwkJZGVmYXVsdDoKKysJCSAgYWJvcnQgKCk7CisrCisrCQljYXNlIGF2 eGg6CisrCQkgIC8qIFRoaXMgaXMgYW4gdXBwZXIgWU1NIHJlZ2lzdGVyLiAgKi8KKysJCSAgcCA9 IFhTQVZFX0FWWEhfQUREUiAodGRlcCwgcmVncywgcmVnbnVtKTsKKysJCSAgaWYgKG1lbWNtcCAo cmF3LCBwLCAxNikpCisrCQkgICAgeworKwkJICAgICAgeHN0YXRlX2J2IHw9IEkzODZfWFNUQVRF X0FWWDsKKysJCSAgICAgIG1lbWNweSAocCwgcmF3LCAxNik7CisrCQkgICAgfQorKwkJICBicmVh azsKKysKKysJCWNhc2Ugc3NlOgorKwkJICAvKiBUaGlzIGlzIGFuIFNTRSByZWdpc3Rlci4gICov CisrCQkgIHAgPSBGWFNBVkVfQUREUiAodGRlcCwgcmVncywgcmVnbnVtKTsKKysJCSAgaWYgKG1l bWNtcCAocmF3LCBwLCAxNikpCisrCQkgICAgeworKwkJICAgICAgeHN0YXRlX2J2IHw9IEkzODZf WFNUQVRFX1NTRTsKKysJCSAgICAgIG1lbWNweSAocCwgcmF3LCAxNik7CisrCQkgICAgfQorKwkJ ICBicmVhazsKKysKKysJCWNhc2UgeDg3OgorKwkJICAvKiBUaGlzIGlzIGFuIHg4NyByZWdpc3Rl ci4gICovCisrCQkgIHAgPSBGWFNBVkVfQUREUiAodGRlcCwgcmVncywgcmVnbnVtKTsKKysJCSAg aWYgKG1lbWNtcCAocmF3LCBwLCAxMCkpCisrCQkgICAgeworKwkJICAgICAgeHN0YXRlX2J2IHw9 IEkzODZfWFNUQVRFX1g4NzsKKysJCSAgICAgIG1lbWNweSAocCwgcmF3LCAxMCk7CisrCQkgICAg fQorKwkJICBicmVhazsKKysJCX0KKysJICAgIH0KKysKKysJICAvKiBVcGRhdGUgdGhlIGNvcnJl c3BvbmRpbmcgYml0cyBpbiBgeHN0YXRlX2J2JyBpZiBhbnkgU1NFL0FWWAorKwkgICAgIHJlZ2lz dGVycyBhcmUgY2hhbmdlZC4gICovCisrCSAgaWYgKHhzdGF0ZV9idikKKysJICAgIHsKKysJICAg ICAgLyogVGhlIHN1cHBvcnRlZCBiaXRzIGluIGB4c3RhdF9idicgYXJlIDEgYnl0ZS4gICovCisr CSAgICAgICp4c3RhdGVfYnZfcCB8PSAoZ2RiX2J5dGUpIHhzdGF0ZV9idjsKKysKKysJICAgICAg c3dpdGNoIChyZWdjbGFzcykKKysJCXsKKysJCWRlZmF1bHQ6CisrCQkgIGFib3J0ICgpOworKwor KwkJY2FzZSBhbGw6CisrCQkgIGJyZWFrOworKworKwkJY2FzZSB4ODc6CisrCQljYXNlIHNzZToK KysJCWNhc2UgYXZ4aDoKKysJCSAgLyogUmVnaXN0ZXIgUkVHTlVNIGhhcyBiZWVuIHVwZGF0ZWQu ICBSZXR1cm4uICAqLworKwkJICByZXR1cm47CisrCQl9CisrCSAgICB9CisrCSAgZWxzZQorKwkg ICAgeworKwkgICAgICAvKiBSZXR1cm4gaWYgUkVHTlVNIGlzbid0IGNoYW5nZWQuICAqLworKwkg ICAgICBpZiAocmVnY2xhc3MgIT0gYWxsKQorKwkJcmV0dXJuOworKwkgICAgfQorKwl9CisrICAg IH0KKysKKysgIC8qIE9ubHkgaGFuZGxlIHg4NyBjb250cm9sIHJlZ2lzdGVycy4gICovCisrICBm b3IgKGkgPSBJMzg3X0ZDVFJMX1JFR05VTSAodGRlcCk7IGkgPCBJMzg3X1hNTTBfUkVHTlVNICh0 ZGVwKTsgaSsrKQorKyAgICBpZiAocmVnbnVtID09IC0xIHx8IHJlZ251bSA9PSBpKQorKyAgICAg IHsKKysJLyogTW9zdCBvZiB0aGUgRlBVIGNvbnRyb2wgcmVnaXN0ZXJzIG9jY3VweSBvbmx5IDE2 IGJpdHMgaW4KKysJICAgdGhlIHhzYXZlIGV4dGVuZGVkIHN0YXRlLiAgR2l2ZSB0aG9zZSBhIHNw ZWNpYWwgdHJlYXRtZW50LiAgKi8KKysJaWYgKGkgIT0gSTM4N19GSU9GRl9SRUdOVU0gKHRkZXAp CisrCSAgICAmJiBpICE9IEkzODdfRk9PRkZfUkVHTlVNICh0ZGVwKSkKKysJICB7CisrCSAgICBn ZGJfYnl0ZSBidWZbNF07CisrCisrCSAgICByZWdjYWNoZV9yYXdfY29sbGVjdCAocmVnY2FjaGUs IGksIGJ1Zik7CisrCisrCSAgICBpZiAoaSA9PSBJMzg3X0ZPUF9SRUdOVU0gKHRkZXApKQorKwkg ICAgICB7CisrCQkvKiBUaGUgb3Bjb2RlIG9jY3VwaWVzIG9ubHkgMTEgYml0cy4gIE1ha2Ugc3Vy ZSB3ZQorKyAgICAgICAgICAgICAgICAgICBkb24ndCB0b3VjaCB0aGUgb3RoZXIgYml0cy4gICov CisrCQlidWZbMV0gJj0gKCgxIDw8IDMpIC0gMSk7CisrCQlidWZbMV0gfD0gKChGWFNBVkVfQURE UiAodGRlcCwgcmVncywgaSkpWzFdICYgfigoMSA8PCAzKSAtIDEpKTsKKysJICAgICAgfQorKwkg ICAgZWxzZSBpZiAoaSA9PSBJMzg3X0ZUQUdfUkVHTlVNICh0ZGVwKSkKKysJICAgICAgeworKwkJ LyogQ29udmVydGluZyBiYWNrIGlzIG11Y2ggZWFzaWVyLiAgKi8KKysKKysJCXVuc2lnbmVkIHNo b3J0IGZ0YWc7CisrCQlpbnQgZnByZWc7CisrCisrCQlmdGFnID0gKGJ1ZlsxXSA8PCA4KSB8IGJ1 ZlswXTsKKysJCWJ1ZlswXSA9IDA7CisrCQlidWZbMV0gPSAwOworKworKwkJZm9yIChmcHJlZyA9 IDc7IGZwcmVnID49IDA7IGZwcmVnLS0pCisrCQkgIHsKKysJCSAgICBpbnQgdGFnID0gKGZ0YWcg Pj4gKGZwcmVnICogMikpICYgMzsKKysKKysJCSAgICBpZiAodGFnICE9IDMpCisrCQkgICAgICBi dWZbMF0gfD0gKDEgPDwgZnByZWcpOworKwkJICB9CisrCSAgICAgIH0KKysJICAgIG1lbWNweSAo RlhTQVZFX0FERFIgKHRkZXAsIHJlZ3MsIGkpLCBidWYsIDIpOworKwkgIH0KKysJZWxzZQorKwkg IHJlZ2NhY2hlX3Jhd19jb2xsZWN0IChyZWdjYWNoZSwgaSwgRlhTQVZFX0FERFIgKHRkZXAsIHJl Z3MsIGkpKTsKKysgICAgICB9CisrCisrICBpZiAocmVnbnVtID09IEkzODdfTVhDU1JfUkVHTlVN ICh0ZGVwKSB8fCByZWdudW0gPT0gLTEpCisrICAgIHJlZ2NhY2hlX3Jhd19jb2xsZWN0IChyZWdj YWNoZSwgSTM4N19NWENTUl9SRUdOVU0gKHRkZXApLAorKwkJCSAgRlhTQVZFX01YQ1NSX0FERFIg KHJlZ3MpKTsKKyt9CisrCisgLyogUmVjcmVhdGUgdGhlIEZUVyAodGFnIHdvcmQpIHZhbGlkIGJp dHMgZnJvbSB0aGUgODAtYml0IEZQIGRhdGEgaW4KKyAgICAqUkFXLiAgKi8KKyAKKy0tLSAuL2dk Yi9pMzg3LXRkZXAuaAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIC4v Z2RiL2kzODctdGRlcC5oCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAt MzMsNiArMzMsOCBAQCBzdHJ1Y3QgdWlfZmlsZTsKKyAjZGVmaW5lIEkzODdfU1QwX1JFR05VTSh0 ZGVwKSAoKHRkZXApLT5zdDBfcmVnbnVtKQorICNkZWZpbmUgSTM4N19OVU1fWE1NX1JFR1ModGRl cCkgKCh0ZGVwKS0+bnVtX3htbV9yZWdzKQorICNkZWZpbmUgSTM4N19NTTBfUkVHTlVNKHRkZXAp ICgodGRlcCktPm1tMF9yZWdudW0pCisrI2RlZmluZSBJMzg3X05VTV9ZTU1fUkVHUyh0ZGVwKSAo KHRkZXApLT5udW1feW1tX3JlZ3MpCisrI2RlZmluZSBJMzg3X1lNTTBIX1JFR05VTSh0ZGVwKSAo KHRkZXApLT55bW0waF9yZWdudW0pCisgCisgI2RlZmluZSBJMzg3X0ZDVFJMX1JFR05VTSh0ZGVw KSAoSTM4N19TVDBfUkVHTlVNICh0ZGVwKSArIDgpCisgI2RlZmluZSBJMzg3X0ZTVEFUX1JFR05V TSh0ZGVwKSAoSTM4N19GQ1RSTF9SRUdOVU0gKHRkZXApICsgMSkKK0BAIC00NSw2ICs0Nyw4IEBA IHN0cnVjdCB1aV9maWxlOworICNkZWZpbmUgSTM4N19YTU0wX1JFR05VTSh0ZGVwKSAoSTM4N19T VDBfUkVHTlVNICh0ZGVwKSArIDE2KQorICNkZWZpbmUgSTM4N19NWENTUl9SRUdOVU0odGRlcCkg XAorICAgKEkzODdfWE1NMF9SRUdOVU0gKHRkZXApICsgSTM4N19OVU1fWE1NX1JFR1MgKHRkZXAp KQorKyNkZWZpbmUgSTM4N19ZTU1FTkRIX1JFR05VTSh0ZGVwKSBcCisrICAoSTM4N19ZTU0wSF9S RUdOVU0gKHRkZXApICsgSTM4N19OVU1fWU1NX1JFR1MgKHRkZXApKQorIAorIC8qIFByaW50IG91 dCB0aGUgaTM4NyBmbG9hdGluZyBwb2ludCBzdGF0ZS4gICovCisgCitAQCAtOTksNiArMTAzLDEx IEBAIGV4dGVybiB2b2lkIGkzODdfY29sbGVjdF9mc2F2ZSAoY29uc3Qgc3QKKyBleHRlcm4gdm9p ZCBpMzg3X3N1cHBseV9meHNhdmUgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdu dW0sCisgCQkJCWNvbnN0IHZvaWQgKmZ4c2F2ZSk7CisgCisrLyogU2ltaWxhciB0byBpMzg3X3N1 cHBseV9meHNhdmUsIGJ1dCB1c2UgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuICAqLworKworK2V4dGVy biB2b2lkIGkzODdfc3VwcGx5X3hzYXZlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQg cmVnbnVtLAorKwkJCSAgICAgICBjb25zdCB2b2lkICp4c2F2ZSk7CisrCisgLyogRmlsbCByZWdp c3RlciBSRUdOVU0gKGlmIGl0IGlzIGEgZmxvYXRpbmctcG9pbnQgb3IgU1NFIHJlZ2lzdGVyKSBp bgorICAgICpGWFNBVkUgd2l0aCB0aGUgdmFsdWUgZnJvbSBSRUdDQUNIRS4gIElmIFJFR05VTSBp cyAtMSwgZG8gdGhpcyBmb3IKKyAgICBhbGwgcmVnaXN0ZXJzLiAgVGhpcyBmdW5jdGlvbiBkb2Vz bid0IHRvdWNoIGFueSBvZiB0aGUgcmVzZXJ2ZWQKK0BAIC0xMDcsNiArMTE2LDExIEBAIGV4dGVy biB2b2lkIGkzODdfc3VwcGx5X2Z4c2F2ZSAoc3RydWN0IHIKKyBleHRlcm4gdm9pZCBpMzg3X2Nv bGxlY3RfZnhzYXZlIChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVt LAorIAkJCQkgdm9pZCAqZnhzYXZlKTsKKyAKKysvKiBTaW1pbGFyIHRvIGkzODdfY29sbGVjdF9m eHNhdmUsIGJ1dCB1c2UgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuICAqLworKworK2V4dGVybiB2b2lk IGkzODdfY29sbGVjdF94c2F2ZSAoY29uc3Qgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKysJ CQkJaW50IHJlZ251bSwgdm9pZCAqeHNhdmUsIGludCBnY29yZSk7CisrCisgLyogUHJlcGFyZSB0 aGUgRlBVIHN0YWNrIGluIFJFR0NBQ0hFIGZvciBhIGZ1bmN0aW9uIHJldHVybi4gICovCisgCisg ZXh0ZXJuIHZvaWQgaTM4N19yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAor LS0tIC4vZ2RiL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1hdngtbGludXguZGF0CTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvcmVnZm9ybWF0cy9pMzg2L2FtZDY0 LWF2eC1saW51eC5kYXQJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0w LDAgKzEsNzggQEAKKysjIERPIE5PVCBFRElUOiBnZW5lcmF0ZWQgZnJvbSBpMzg2L2FtZDY0LWF2 eC1saW51eC54bWwKKytuYW1lOmFtZDY0X2F2eF9saW51eAorK3htbHRhcmdldDphbWQ2NC1hdngt bGludXgueG1sCisrZXhwZWRpdGU6cmJwLHJzcCxyaXAKKys2NDpyYXgKKys2NDpyYngKKys2NDpy Y3gKKys2NDpyZHgKKys2NDpyc2kKKys2NDpyZGkKKys2NDpyYnAKKys2NDpyc3AKKys2NDpyOAor KzY0OnI5CisrNjQ6cjEwCisrNjQ6cjExCisrNjQ6cjEyCisrNjQ6cjEzCisrNjQ6cjE0CisrNjQ6 cjE1CisrNjQ6cmlwCisrMzI6ZWZsYWdzCisrMzI6Y3MKKyszMjpzcworKzMyOmRzCisrMzI6ZXMK KyszMjpmcworKzMyOmdzCisrODA6c3QwCisrODA6c3QxCisrODA6c3QyCisrODA6c3QzCisrODA6 c3Q0CisrODA6c3Q1CisrODA6c3Q2CisrODA6c3Q3CisrMzI6ZmN0cmwKKyszMjpmc3RhdAorKzMy OmZ0YWcKKyszMjpmaXNlZworKzMyOmZpb2ZmCisrMzI6Zm9zZWcKKyszMjpmb29mZgorKzMyOmZv cAorKzEyODp4bW0wCisrMTI4OnhtbTEKKysxMjg6eG1tMgorKzEyODp4bW0zCisrMTI4OnhtbTQK KysxMjg6eG1tNQorKzEyODp4bW02CisrMTI4OnhtbTcKKysxMjg6eG1tOAorKzEyODp4bW05Cisr MTI4OnhtbTEwCisrMTI4OnhtbTExCisrMTI4OnhtbTEyCisrMTI4OnhtbTEzCisrMTI4OnhtbTE0 CisrMTI4OnhtbTE1CisrMzI6bXhjc3IKKys2NDpvcmlnX3JheAorKzEyODp5bW0waAorKzEyODp5 bW0xaAorKzEyODp5bW0yaAorKzEyODp5bW0zaAorKzEyODp5bW00aAorKzEyODp5bW01aAorKzEy ODp5bW02aAorKzEyODp5bW03aAorKzEyODp5bW04aAorKzEyODp5bW05aAorKzEyODp5bW0xMGgK KysxMjg6eW1tMTFoCisrMTI4OnltbTEyaAorKzEyODp5bW0xM2gKKysxMjg6eW1tMTRoCisrMTI4 OnltbTE1aAorLS0tIC4vZ2RiL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1hdnguZGF0CTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvcmVnZm9ybWF0cy9pMzg2L2Ft ZDY0LWF2eC5kYXQJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAg KzEsNzcgQEAKKysjIERPIE5PVCBFRElUOiBnZW5lcmF0ZWQgZnJvbSBpMzg2L2FtZDY0LWF2eC54 bWwKKytuYW1lOmFtZDY0X2F2eAorK3htbHRhcmdldDphbWQ2NC1hdngueG1sCisrZXhwZWRpdGU6 cmJwLHJzcCxyaXAKKys2NDpyYXgKKys2NDpyYngKKys2NDpyY3gKKys2NDpyZHgKKys2NDpyc2kK Kys2NDpyZGkKKys2NDpyYnAKKys2NDpyc3AKKys2NDpyOAorKzY0OnI5CisrNjQ6cjEwCisrNjQ6 cjExCisrNjQ6cjEyCisrNjQ6cjEzCisrNjQ6cjE0CisrNjQ6cjE1CisrNjQ6cmlwCisrMzI6ZWZs YWdzCisrMzI6Y3MKKyszMjpzcworKzMyOmRzCisrMzI6ZXMKKyszMjpmcworKzMyOmdzCisrODA6 c3QwCisrODA6c3QxCisrODA6c3QyCisrODA6c3QzCisrODA6c3Q0CisrODA6c3Q1CisrODA6c3Q2 CisrODA6c3Q3CisrMzI6ZmN0cmwKKyszMjpmc3RhdAorKzMyOmZ0YWcKKyszMjpmaXNlZworKzMy OmZpb2ZmCisrMzI6Zm9zZWcKKyszMjpmb29mZgorKzMyOmZvcAorKzEyODp4bW0wCisrMTI4Onht bTEKKysxMjg6eG1tMgorKzEyODp4bW0zCisrMTI4OnhtbTQKKysxMjg6eG1tNQorKzEyODp4bW02 CisrMTI4OnhtbTcKKysxMjg6eG1tOAorKzEyODp4bW05CisrMTI4OnhtbTEwCisrMTI4OnhtbTEx CisrMTI4OnhtbTEyCisrMTI4OnhtbTEzCisrMTI4OnhtbTE0CisrMTI4OnhtbTE1CisrMzI6bXhj c3IKKysxMjg6eW1tMGgKKysxMjg6eW1tMWgKKysxMjg6eW1tMmgKKysxMjg6eW1tM2gKKysxMjg6 eW1tNGgKKysxMjg6eW1tNWgKKysxMjg6eW1tNmgKKysxMjg6eW1tN2gKKysxMjg6eW1tOGgKKysx Mjg6eW1tOWgKKysxMjg6eW1tMTBoCisrMTI4OnltbTExaAorKzEyODp5bW0xMmgKKysxMjg6eW1t MTNoCisrMTI4OnltbTE0aAorKzEyODp5bW0xNWgKKy0tLSAuL2dkYi9yZWdmb3JtYXRzL2kzODYv aTM4Ni1hdngtbGludXguZGF0CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr KysgLi9nZGIvcmVnZm9ybWF0cy9pMzg2L2kzODYtYXZ4LWxpbnV4LmRhdAkyMDEwLTA0LTAzIDIx OjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1NCBAQAorKyMgRE8gTk9UIEVESVQ6 IGdlbmVyYXRlZCBmcm9tIGkzODYvaTM4Ni1hdngtbGludXgueG1sCisrbmFtZTppMzg2X2F2eF9s aW51eAorK3htbHRhcmdldDppMzg2LWF2eC1saW51eC54bWwKKytleHBlZGl0ZTplYnAsZXNwLGVp cAorKzMyOmVheAorKzMyOmVjeAorKzMyOmVkeAorKzMyOmVieAorKzMyOmVzcAorKzMyOmVicAor KzMyOmVzaQorKzMyOmVkaQorKzMyOmVpcAorKzMyOmVmbGFncworKzMyOmNzCisrMzI6c3MKKysz MjpkcworKzMyOmVzCisrMzI6ZnMKKyszMjpncworKzgwOnN0MAorKzgwOnN0MQorKzgwOnN0Mgor KzgwOnN0MworKzgwOnN0NAorKzgwOnN0NQorKzgwOnN0NgorKzgwOnN0NworKzMyOmZjdHJsCisr MzI6ZnN0YXQKKyszMjpmdGFnCisrMzI6ZmlzZWcKKyszMjpmaW9mZgorKzMyOmZvc2VnCisrMzI6 Zm9vZmYKKyszMjpmb3AKKysxMjg6eG1tMAorKzEyODp4bW0xCisrMTI4OnhtbTIKKysxMjg6eG1t MworKzEyODp4bW00CisrMTI4OnhtbTUKKysxMjg6eG1tNgorKzEyODp4bW03CisrMzI6bXhjc3IK KyszMjpvcmlnX2VheAorKzEyODp5bW0waAorKzEyODp5bW0xaAorKzEyODp5bW0yaAorKzEyODp5 bW0zaAorKzEyODp5bW00aAorKzEyODp5bW01aAorKzEyODp5bW02aAorKzEyODp5bW03aAorLS0t IC4vZ2RiL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LWF2eC5kYXQJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9yZWdmb3JtYXRzL2kzODYvaTM4Ni1hdnguZGF0CTIw MTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDUzIEBACisrIyBE TyBOT1QgRURJVDogZ2VuZXJhdGVkIGZyb20gaTM4Ni9pMzg2LWF2eC54bWwKKytuYW1lOmkzODZf YXZ4CisreG1sdGFyZ2V0OmkzODYtYXZ4LnhtbAorK2V4cGVkaXRlOmVicCxlc3AsZWlwCisrMzI6 ZWF4CisrMzI6ZWN4CisrMzI6ZWR4CisrMzI6ZWJ4CisrMzI6ZXNwCisrMzI6ZWJwCisrMzI6ZXNp CisrMzI6ZWRpCisrMzI6ZWlwCisrMzI6ZWZsYWdzCisrMzI6Y3MKKyszMjpzcworKzMyOmRzCisr MzI6ZXMKKyszMjpmcworKzMyOmdzCisrODA6c3QwCisrODA6c3QxCisrODA6c3QyCisrODA6c3Qz CisrODA6c3Q0CisrODA6c3Q1CisrODA6c3Q2CisrODA6c3Q3CisrMzI6ZmN0cmwKKyszMjpmc3Rh dAorKzMyOmZ0YWcKKyszMjpmaXNlZworKzMyOmZpb2ZmCisrMzI6Zm9zZWcKKyszMjpmb29mZgor KzMyOmZvcAorKzEyODp4bW0wCisrMTI4OnhtbTEKKysxMjg6eG1tMgorKzEyODp4bW0zCisrMTI4 OnhtbTQKKysxMjg6eG1tNQorKzEyODp4bW02CisrMTI4OnhtbTcKKyszMjpteGNzcgorKzEyODp5 bW0waAorKzEyODp5bW0xaAorKzEyODp5bW0yaAorKzEyODp5bW0zaAorKzEyODp5bW00aAorKzEy ODp5bW01aAorKzEyODp5bW02aAorKzEyODp5bW03aAorLS0tIC4vZ2RiL3Rlc3RzdWl0ZS9DaGFu Z2VMb2cucHNldWRvCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZy5wc2V1ZG8JMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAw MDAgKzAyMDAKK0BAIC0wLDAgKzEsMjYgQEAKKysyMDEwLTAyLTE4ICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogZ2RiLmFyY2gvYW1kNjQtZHdvcmQuZXhwOiBOZXcuCisr CisrCSogZ2RiLmFyY2gvYW1kNjQtd29yZC5leHA6IFNpbXBsaWZpZWQuCisrCisrMjAxMC0wMi0x OCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGdkYi5hcmNoL2FtZDY0 LXdvcmQuZXhwOiBOZXcuCisrCSogZ2RiLmFyY2gvaTM4Ni13b3JkLmV4cDogTGlrZXdpc2UuCisr CisrCSogZ2RiLmFyY2gvaTM4Ni1ieXRlLmV4cCAobnJfcmVncyk6IFJlbW92ZWQuCisrCisrMjAx MC0wMi0xOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGdkYi5hcmNo L2FtZDY0LXBzZXVkby5jOiBOZXcuCisrCSogZ2RiLmFyY2gvaTM4Ni1ieXRlLmV4cDogTGlrZXdp c2UuCisrCisrCSogZ2RiLmFyY2gvYW1kNjQtYnl0ZS5leHA6IFVwZGF0ZWQuCisrCisrCSogZ2Ri LmFyY2gvaTM4Ni1wc2V1ZG8uYzogTWFrZSBpdCAzMmJpdCBvbmx5LgorKworKzIwMTAtMDItMTgg IEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIuYXJjaC9hbWQ2NC1i eXRlLmV4cDogTmV3LgorKwkqIGdkYi5hcmNoL2kzODYtcHNldWRvLmM6IExpa2V3aXNlLgorLS0t IC4vZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cueGNyCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgLi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZy54Y3IJMjAxMC0wNC0wMyAy MToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNiBAQAorKzIwMTAtMDMtMjggIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIuYXJjaC9pMzg2LWF2eC5j OiBOZXcuCisrCSogZ2RiLmFyY2gvaTM4Ni1hdnguZXhwOiBMaWtld2lzZS4KKysKKysJKiBnZGIu YXJjaC9pMzg2LWNwdWlkLmg6IFVwZGF0ZWQgZnJvbSBnY2MgNC40LgorLS0tIC4vZ2RiL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2cueG1sCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr KysgLi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZy54bWwJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAw MDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNCBAQAorKzIwMTAtMDItMjIgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIueG1sL3RkZXNjLXJlZ3MuZXhwIChhcmNoaXRl Y3R1cmUpOiBOZXcuICBTZXQgaXQgZm9yIHg4Ni4KKysJKGxvYWRfZGVzY3JpcHRpb24pOiBTZXQg YXJjaGl0ZWN0dXJlIGlmIGRlZmluZWQuCistLS0gLi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kz ODYtYXZ4LmMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4Ni1hdnguYwkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAw MCArMDIwMAorQEAgLTAsMCArMSwxMjggQEAKKysvKiBUZXN0IHByb2dyYW0gZm9yIEFWWCByZWdp c3RlcnMuCisrCisrICAgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorKworKyAgIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaW5j bHVkZSAiaTM4Ni1jcHVpZC5oIgorKworK3R5cGVkZWYgc3RydWN0IHsKKysgIGZsb2F0IGZbOF07 CisrfSB2OHNmX3Q7CisrCisrCisrdjhzZl90IGRhdGFbXSA9CisrICB7CisrICAgIHsgeyAgMC4w LCAgMC4xMjUsICAwLjI1LCAgMC4zNzUsICAwLjUwLCAgMC42MjUsICAwLjc1LCAgMC44NzUgfSB9 LAorKyAgICB7IHsgIDEuMCwgIDEuMTI1LCAgMS4yNSwgIDEuMzc1LCAgMS41MCwgIDEuNjI1LCAg MS43NSwgIDEuODc1IH0gfSwKKysgICAgeyB7ICAyLjAsICAyLjEyNSwgIDIuMjUsICAyLjM3NSwg IDIuNTAsICAyLjYyNSwgIDIuNzUsICAyLjg3NSB9IH0sCisrICAgIHsgeyAgMy4wLCAgMy4xMjUs ICAzLjI1LCAgMy4zNzUsICAzLjUwLCAgMy42MjUsICAzLjc1LCAgMy44NzUgfSB9LAorKyAgICB7 IHsgIDQuMCwgIDQuMTI1LCAgNC4yNSwgIDQuMzc1LCAgNC41MCwgIDQuNjI1LCAgNC43NSwgIDQu ODc1IH0gfSwKKysgICAgeyB7ICA1LjAsICA1LjEyNSwgIDUuMjUsICA1LjM3NSwgIDUuNTAsICA1 LjYyNSwgIDUuNzUsICA1Ljg3NSB9IH0sCisrICAgIHsgeyAgNi4wLCAgNi4xMjUsICA2LjI1LCAg Ni4zNzUsICA2LjUwLCAgNi42MjUsICA2Ljc1LCAgNi44NzUgfSB9LAorKyAgICB7IHsgIDcuMCwg IDcuMTI1LCAgNy4yNSwgIDcuMzc1LCAgNy41MCwgIDcuNjI1LCAgNy43NSwgIDcuODc1IH0gfSwK KysjaWZkZWYgX194ODZfNjRfXworKyAgICB7IHsgIDguMCwgIDguMTI1LCAgOC4yNSwgIDguMzc1 LCAgOC41MCwgIDguNjI1LCAgOC43NSwgIDguODc1IH0gfSwKKysgICAgeyB7ICA5LjAsICA5LjEy NSwgIDkuMjUsICA5LjM3NSwgIDkuNTAsICA5LjYyNSwgIDkuNzUsICA5Ljg3NSB9IH0sCisrICAg IHsgeyAxMC4wLCAxMC4xMjUsIDEwLjI1LCAxMC4zNzUsIDEwLjUwLCAxMC42MjUsIDEwLjc1LCAx MC44NzUgfSB9LAorKyAgICB7IHsgMTEuMCwgMTEuMTI1LCAxMS4yNSwgMTEuMzc1LCAxMS41MCwg MTEuNjI1LCAxMS43NSwgMTEuODc1IH0gfSwKKysgICAgeyB7IDEyLjAsIDEyLjEyNSwgMTIuMjUs IDEyLjM3NSwgMTIuNTAsIDEyLjYyNSwgMTIuNzUsIDEyLjg3NSB9IH0sCisrICAgIHsgeyAxMy4w LCAxMy4xMjUsIDEzLjI1LCAxMy4zNzUsIDEzLjUwLCAxMy42MjUsIDEzLjc1LCAxMy44NzUgfSB9 LAorKyAgICB7IHsgMTQuMCwgMTQuMTI1LCAxNC4yNSwgMTQuMzc1LCAxNC41MCwgMTQuNjI1LCAx NC43NSwgMTQuODc1IH0gfSwKKysgICAgeyB7IDE1LjAsIDE1LjEyNSwgMTUuMjUsIDE1LjM3NSwg MTUuNTAsIDE1LjYyNSwgMTUuNzUsIDE1Ljg3NSB9IH0sCisrI2VuZGlmCisrICB9OworKworKwor K2ludAorK2hhdmVfYXZ4ICh2b2lkKQorK3sKKysgIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4 LCBlZHg7CisrCisrICBpZiAoIV9fZ2V0X2NwdWlkICgxLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4 KSkKKysgICAgcmV0dXJuIDA7CisrCisrICBpZiAoKGVjeCAmIChiaXRfQVZYIHwgYml0X09TWFNB VkUpKSA9PSAoYml0X0FWWCB8IGJpdF9PU1hTQVZFKSkKKysgICAgcmV0dXJuIDE7CisrICBlbHNl CisrICAgIHJldHVybiAwOworK30KKysKKytpbnQKKyttYWluIChpbnQgYXJnYywgY2hhciAqKmFy Z3YpCisreworKyAgaWYgKGhhdmVfYXZ4ICgpKQorKyAgICB7CisrICAgICAgYXNtICgidm1vdmFw cyAwKCUwKSwgJSV5bW0wXG5cdCIKKysgICAgICAgICAgICJ2bW92YXBzIDMyKCUwKSwgJSV5bW0x XG5cdCIKKysgICAgICAgICAgICJ2bW92YXBzIDY0KCUwKSwgJSV5bW0yXG5cdCIKKysgICAgICAg ICAgICJ2bW92YXBzIDk2KCUwKSwgJSV5bW0zXG5cdCIKKysgICAgICAgICAgICJ2bW92YXBzIDEy OCglMCksICUleW1tNFxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAxNjAoJTApLCAlJXltbTVc blx0IgorKyAgICAgICAgICAgInZtb3ZhcHMgMTkyKCUwKSwgJSV5bW02XG5cdCIKKysgICAgICAg ICAgICJ2bW92YXBzIDIyNCglMCksICUleW1tN1xuXHQiCisrICAgICAgICAgICA6IC8qIG5vIG91 dHB1dCBvcGVyYW5kcyAqLworKyAgICAgICAgICAgOiAiciIgKGRhdGEpIAorKyAgICAgICAgICAg OiAieG1tMCIsICJ4bW0xIiwgInhtbTIiLCAieG1tMyIsICJ4bW00IiwgInhtbTUiLCAieG1tNiIs ICJ4bW03Iik7CisrI2lmZGVmIF9feDg2XzY0X18KKysgICAgICBhc20gKCJ2bW92YXBzIDI1Nigl MCksICUleW1tOFxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAyODgoJTApLCAlJXltbTlcblx0 IgorKyAgICAgICAgICAgInZtb3ZhcHMgMzIwKCUwKSwgJSV5bW0xMFxuXHQiCisrICAgICAgICAg ICAidm1vdmFwcyAzNTIoJTApLCAlJXltbTExXG5cdCIKKysgICAgICAgICAgICJ2bW92YXBzIDM4 NCglMCksICUleW1tMTJcblx0IgorKyAgICAgICAgICAgInZtb3ZhcHMgNDE2KCUwKSwgJSV5bW0x M1xuXHQiCisrICAgICAgICAgICAidm1vdmFwcyA0NDgoJTApLCAlJXltbTE0XG5cdCIKKysgICAg ICAgICAgICJ2bW92YXBzIDQ4MCglMCksICUleW1tMTVcblx0IgorKyAgICAgICAgICAgOiAvKiBu byBvdXRwdXQgb3BlcmFuZHMgKi8KKysgICAgICAgICAgIDogInIiIChkYXRhKSAKKysgICAgICAg ICAgIDogInhtbTgiLCAieG1tOSIsICJ4bW0xMCIsICJ4bW0xMSIsICJ4bW0xMiIsICJ4bW0xMyIs ICJ4bW0xNCIsICJ4bW0xNSIpOworKyNlbmRpZgorKworKyAgICAgIGFzbSAoIm5vcCIpOyAvKiBm aXJzdCBicmVha3BvaW50IGhlcmUgKi8KKysKKysgICAgICBhc20gKAorKyAgICAgICAgICAgInZt b3ZhcHMgJSV5bW0wLCAwKCUwKVxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAlJXltbTEsIDMy KCUwKVxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAlJXltbTIsIDY0KCUwKVxuXHQiCisrICAg ICAgICAgICAidm1vdmFwcyAlJXltbTMsIDk2KCUwKVxuXHQiCisrICAgICAgICAgICAidm1vdmFw cyAlJXltbTQsIDEyOCglMClcblx0IgorKyAgICAgICAgICAgInZtb3ZhcHMgJSV5bW01LCAxNjAo JTApXG5cdCIKKysgICAgICAgICAgICJ2bW92YXBzICUleW1tNiwgMTkyKCUwKVxuXHQiCisrICAg ICAgICAgICAidm1vdmFwcyAlJXltbTcsIDIyNCglMClcblx0IgorKyAgICAgICAgICAgOiAvKiBu byBvdXRwdXQgb3BlcmFuZHMgKi8KKysgICAgICAgICAgIDogInIiIChkYXRhKSAKKysgICAgICAg ICAgIDogInhtbTAiLCAieG1tMSIsICJ4bW0yIiwgInhtbTMiLCAieG1tNCIsICJ4bW01IiwgInht bTYiLCAieG1tNyIpOworKyNpZmRlZiBfX3g4Nl82NF9fCisrICAgICAgYXNtICgKKysgICAgICAg ICAgICJ2bW92YXBzICUleW1tOCwgMjU2KCUwKVxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAl JXltbTksIDI4OCglMClcblx0IgorKyAgICAgICAgICAgInZtb3ZhcHMgJSV5bW0xMCwgMzIwKCUw KVxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAlJXltbTExLCAzNTIoJTApXG5cdCIKKysgICAg ICAgICAgICJ2bW92YXBzICUleW1tMTIsIDM4NCglMClcblx0IgorKyAgICAgICAgICAgInZtb3Zh cHMgJSV5bW0xMywgNDE2KCUwKVxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAlJXltbTE0LCA0 NDgoJTApXG5cdCIKKysgICAgICAgICAgICJ2bW92YXBzICUleW1tMTUsIDQ4MCglMClcblx0Igor KyAgICAgICAgICAgOiAvKiBubyBvdXRwdXQgb3BlcmFuZHMgKi8KKysgICAgICAgICAgIDogInIi IChkYXRhKSAKKysgICAgICAgICAgIDogInhtbTgiLCAieG1tOSIsICJ4bW0xMCIsICJ4bW0xMSIs ICJ4bW0xMiIsICJ4bW0xMyIsICJ4bW0xNCIsICJ4bW0xNSIpOworKyNlbmRpZgorKworKyAgICAg IHB1dHMgKCJCeWUhIik7IC8qIHNlY29uZCBicmVha3BvaW50IGhlcmUgKi8KKysgICAgfQorKwor KyAgcmV0dXJuIDA7CisrfQorLS0tIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LWF2eC5l eHAJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi90ZXN0c3Vp dGUvZ2RiLmFyY2gvaTM4Ni1hdnguZXhwCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDExMCBAQAorKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu c2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworKyMg UGxlYXNlIGVtYWlsIGFueSBidWdzLCBjb21tZW50cywgYW5kL29yIGFkZGl0aW9ucyB0byB0aGlz IGZpbGUgdG86CisrIyBidWctZ2RiQGdudS5vcmcKKysKKysjIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IHRoZSBnZGIgdGVzdHN1aXRlLgorKworK2lmICR0cmFjZWxldmVsIHsKKysgICAgc3RyYWNlICR0 cmFjZWxldmVsCisrfQorKworK3NldCBwcm1zX2lkIDAKKytzZXQgYnVnX2lkIDAKKysKKytpZiB7 ICFbaXN0YXJnZXQgaT84Ni0qLSpdICYmICFbaXN0YXJnZXQgeDg2XzY0LSotKiBdIH0geworKyAg ICB2ZXJib3NlICJTa2lwcGluZyB4ODYgQVZYIHRlc3RzLiIKKysgICAgcmV0dXJuCisrfQorKwor K3NldCB0ZXN0ZmlsZSAiaTM4Ni1hdngiCisrc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYworK3Nl dCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KKysKKytpZiBbZ2V0X2Nv bXBpbGVyX2luZm8gJHtiaW5maWxlfV0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrc2V0IGFk ZGl0aW9uYWxfZmxhZ3MgIiIKKytpZiBbdGVzdF9jb21waWxlcl9pbmZvIGdjYypdIHsKKysgICAg c2V0IGFkZGl0aW9uYWxfZmxhZ3MgImFkZGl0aW9uYWxfZmxhZ3M9LW1hdngiCisrfQorKworK2lm IHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZp bGV9IiBleGVjdXRhYmxlIFtsaXN0IGRlYnVnICRhZGRpdGlvbmFsX2ZsYWdzXV0gIT0gIiIgfSB7 CisrICAgIHVuc3VwcG9ydGVkICJjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IEFWWCIKKysgICAg cmV0dXJuCisrfQorKworK2dkYl9leGl0CisrZ2RiX3N0YXJ0CisrZ2RiX3JlaW5pdGlhbGl6ZV9k aXIgJHNyY2Rpci8kc3ViZGlyCisrZ2RiX2xvYWQgJHtiaW5maWxlfQorKworK2lmICFbcnVudG9f bWFpbl0gdGhlbiB7CisrICAgIGdkYl9zdXBwcmVzc190ZXN0cworK30KKysKKytzZW5kX2dkYiAi cHJpbnQgaGF2ZV9hdnggKClcciIKKytnZGJfZXhwZWN0IHsKKysgICAgLXJlICIuLiA9IDFcclxu JGdkYl9wcm9tcHQgIiB7CisrICAgICAgICBwYXNzICJjaGVjayB3aGV0aGVyIHByb2Nlc3NvciBz dXBwb3J0cyBBVlgiCisrICAgIH0KKysgICAgLXJlICIuLiA9IDBcclxuJGdkYl9wcm9tcHQgIiB7 CisrICAgICAgICB2ZXJib3NlICJwcm9jZXNzb3IgZG9lcyBub3Qgc3VwcG9ydCBBVlg7IHNraXBw aW5nIEFWWCB0ZXN0cyIKKysgICAgICAgIHJldHVybgorKyAgICB9CisrICAgIC1yZSAiLiokZ2Ri X3Byb21wdCAkIiB7CisrICAgICAgICBmYWlsICJjaGVjayB3aGV0aGVyIHByb2Nlc3NvciBzdXBw b3J0cyBBVlgiCisrICAgIH0KKysgICAgdGltZW91dCB7CisrICAgICAgICBmYWlsICJjaGVjayB3 aGV0aGVyIHByb2Nlc3NvciBzdXBwb3J0cyBBVlggKHRpbWVvdXQpIgorKyAgICB9CisrfQorKwor K2dkYl90ZXN0ICJicmVhayBbZ2RiX2dldF9saW5lX251bWJlciAiZmlyc3QgYnJlYWtwb2ludCBo ZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAuKmkzODYtYXZ4LmMuKiIgXAor KyAgICAgICAgICJzZXQgZmlyc3QgYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJjb250aW51ZSB0byBmaXJzdCBicmVha3BvaW50IGluIG1haW4iCisrCisr aWYgW2lzdGFyZ2V0IGk/ODYtKi0qXSB7CisrICAgIHNldCBucl9yZWdzIDgKKyt9IGVsc2Ugewor KyAgICBzZXQgbnJfcmVncyAxNgorK30KKysKKytmb3IgeyBzZXQgciAwIH0geyAkciA8ICRucl9y ZWdzIH0geyBpbmNyIHIgfSB7CisrICAgIGdkYl90ZXN0ICJwcmludCBcJHltbSRyLnY4X2Zsb2F0 IiBcCisrICAgICAgICAiLi4gPSBcXHskciwgJHIuMTI1LCAkci4yNSwgJHIuMzc1LCAkci41LCAk ci42MjUsICRyLjc1LCAkci44NzVcXH0uKiIgXAorKyAgICAgICAgImNoZWNrIGZsb2F0IGNvbnRl bnRzIG9mICV5bW0kciIKKysgICAgZ2RiX3Rlc3QgInByaW50IFwkeW1tJHIudjMyX2ludDgiIFwK KysgICAgICAgICIuLiA9IFxceygtP1xbMC05XF0rLCApezMxfS0/XFswLTlcXStcXH0uKiIgXAor KyAgICAgICAgImNoZWNrIGludDggY29udGVudHMgb2YgJXltbSRyIgorK30KKysKKytmb3IgeyBz ZXQgciAwIH0geyAkciA8ICRucl9yZWdzIH0geyBpbmNyIHIgfSB7CisrICAgIGdkYl90ZXN0ICJz ZXQgdmFyIFwkeW1tJHIudjhfZmxvYXRcWzBcXSA9ICRyICsgMTAiICIiICJzZXQgJXltbSRyIgor K30KKysKKytnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRfbGluZV9udW1iZXIgInNlY29uZCBicmVh a3BvaW50IGhlcmUiXSIgXAorKyAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qaTM4Ni1hdngu Yy4qIiBcCisrICAgICAgICAgInNldCBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byBzZWNvbmQgYnJlYWtwb2ludCBpbiBt YWluIgorKworK2ZvciB7IHNldCByIDAgfSB7ICRyIDwgJG5yX3JlZ3MgfSB7IGluY3IgciB9IHsK KysgICAgZ2RiX3Rlc3QgInByaW50IGRhdGFcWyRyXF0iIFwKKysgICAgICAgICIuLiA9IFxce2Yg PSBcXHtbZXhwciAkciArIDEwXSwgJHIuMTI1LCAkci4yNSwgJHIuMzc1LCAkci41LCAkci42MjUs ICRyLjc1LCAkci44NzVcXH1cXH0uKiIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mIGRh dGFcWyRyXF0iCisrfQorLS0tIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LWNwdWlkLmgJ MjAxMC0wMS0wMSAwODozMjowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi90ZXN0c3VpdGUv Z2RiLmFyY2gvaTM4Ni1jcHVpZC5oCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAw CitAQCAtMSwzMCArMSwxODYgQEAKKy0vKiBIZWxwZXIgZmlsZSBmb3IgaTM4NiBwbGF0Zm9ybS4g IFJ1bnRpbWUgY2hlY2sgZm9yIE1NWC9TU0UvU1NFMiBzdXBwb3J0LgorKy8qIEhlbHBlciBmaWxl IGZvciBpMzg2IHBsYXRmb3JtLiAgUnVudGltZSBjaGVjayBmb3IgTU1YL1NTRS9TU0UyL0FWWAor KyAqIHN1cHBvcnQuIENvcGllZCBmcm9tIGdjYyA0LjQuCisrICoKKysgKiBDb3B5cmlnaHQgKEMp IDIwMDcsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICoKKysg KiBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeSBpdAorKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorKyAqIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKKysgKiBsYXRl ciB2ZXJzaW9uLgorKyAqIAorKyAqIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKysgKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgKiBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICogCisrICogVW5kZXIg U2VjdGlvbiA3IG9mIEdQTCB2ZXJzaW9uIDMsIHlvdSBhcmUgZ3JhbnRlZCBhZGRpdGlvbmFsCisr ICogcGVybWlzc2lvbnMgZGVzY3JpYmVkIGluIHRoZSBHQ0MgUnVudGltZSBMaWJyYXJ5IEV4Y2Vw dGlvbiwgdmVyc2lvbgorKyAqIDMuMSwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24uCisrICogCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYW5kCisrICogYSBjb3B5IG9mIHRoZSBH Q0MgUnVudGltZSBMaWJyYXJ5IEV4Y2VwdGlvbiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsKKysg KiBzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5 LiAgSWYgbm90LCBzZWUKKysgKiA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrICov CisrCisrLyogJWVjeCAqLworKyNkZWZpbmUgYml0X1NTRTMJKDEgPDwgMCkKKysjZGVmaW5lIGJp dF9QQ0xNVUwJKDEgPDwgMSkKKysjZGVmaW5lIGJpdF9TU1NFMwkoMSA8PCA5KQorKyNkZWZpbmUg Yml0X0ZNQQkJKDEgPDwgMTIpCisrI2RlZmluZSBiaXRfQ01QWENIRzE2QgkoMSA8PCAxMykKKysj ZGVmaW5lIGJpdF9TU0U0XzEJKDEgPDwgMTkpCisrI2RlZmluZSBiaXRfU1NFNF8yCSgxIDw8IDIw KQorKyNkZWZpbmUgYml0X01PVkJFCSgxIDw8IDIyKQorKyNkZWZpbmUgYml0X1BPUENOVAkoMSA8 PCAyMykKKysjZGVmaW5lIGJpdF9BRVMJCSgxIDw8IDI1KQorKyNkZWZpbmUgYml0X1hTQVZFCSgx IDw8IDI2KQorKyNkZWZpbmUgYml0X09TWFNBVkUJKDEgPDwgMjcpCisrI2RlZmluZSBiaXRfQVZY CQkoMSA8PCAyOCkKKysKKysvKiAlZWR4ICovCisrI2RlZmluZSBiaXRfQ01QWENIRzhCCSgxIDw8 IDgpCisrI2RlZmluZSBiaXRfQ01PVgkoMSA8PCAxNSkKKysjZGVmaW5lIGJpdF9NTVgJCSgxIDw8 IDIzKQorKyNkZWZpbmUgYml0X0ZYU0FWRQkoMSA8PCAyNCkKKysjZGVmaW5lIGJpdF9TU0UJCSgx IDw8IDI1KQorKyNkZWZpbmUgYml0X1NTRTIJKDEgPDwgMjYpCisrCisrLyogRXh0ZW5kZWQgRmVh dHVyZXMgKi8KKysvKiAlZWN4ICovCisrI2RlZmluZSBiaXRfTEFIRl9MTQkoMSA8PCAwKQorKyNk ZWZpbmUgYml0X0FCTQkJKDEgPDwgNSkKKysjZGVmaW5lIGJpdF9TU0U0YQkoMSA8PCA2KQorKyNk ZWZpbmUgYml0X1hPUCAgICAgICAgICgxIDw8IDExKQorKyNkZWZpbmUgYml0X0xXUCAJKDEgPDwg MTUpCisrI2RlZmluZSBiaXRfRk1BNCAgICAgICAgKDEgPDwgMTYpCisrCisrLyogJWVkeCAqLwor KyNkZWZpbmUgYml0X0xNCQkoMSA8PCAyOSkKKysjZGVmaW5lIGJpdF8zRE5PV1AJKDEgPDwgMzAp CisrI2RlZmluZSBiaXRfM0ROT1cJKDEgPDwgMzEpCisrCisrCisrI2lmIGRlZmluZWQoX19pMzg2 X18pICYmIGRlZmluZWQoX19QSUNfXykKKysvKiAlZWJ4IG1heSBiZSB0aGUgUElDIHJlZ2lzdGVy LiAgKi8KKysjaWYgX19HTlVDX18gPj0gMworKyNkZWZpbmUgX19jcHVpZChsZXZlbCwgYSwgYiwg YywgZCkJCQlcCisrICBfX2FzbV9fICgieGNoZ3tsfVx0eyUlfWVieCwgJTFcblx0IgkJCVwKKysJ ICAgImNwdWlkXG5cdCIJCQkJCVwKKysJICAgInhjaGd7bH1cdHslJX1lYngsICUxXG5cdCIJCQlc CisrCSAgIDogIj1hIiAoYSksICI9ciIgKGIpLCAiPWMiIChjKSwgIj1kIiAoZCkJXAorKwkgICA6 ICIwIiAobGV2ZWwpKQorKworKyNkZWZpbmUgX19jcHVpZF9jb3VudChsZXZlbCwgY291bnQsIGEs IGIsIGMsIGQpCQlcCisrICBfX2FzbV9fICgieGNoZ3tsfVx0eyUlfWVieCwgJTFcblx0IgkJCVwK KysJICAgImNwdWlkXG5cdCIJCQkJCVwKKysJICAgInhjaGd7bH1cdHslJX1lYngsICUxXG5cdCIJ CQlcCisrCSAgIDogIj1hIiAoYSksICI9ciIgKGIpLCAiPWMiIChjKSwgIj1kIiAoZCkJXAorKwkg ICA6ICIwIiAobGV2ZWwpLCAiMiIgKGNvdW50KSkKKysjZWxzZQorKy8qIEhvc3QgR0NDcyBvbGRl ciB0aGFuIDMuMCB3ZXJlbid0IHN1cHBvcnRpbmcgSW50ZWwgYXNtIHN5bnRheAorKyAgIG5vciBh bHRlcm5hdGl2ZXMgaW4gaTM4NiBjb2RlLiAgKi8KKysjZGVmaW5lIF9fY3B1aWQobGV2ZWwsIGEs IGIsIGMsIGQpCQkJXAorKyAgX19hc21fXyAoInhjaGdsXHQlJWVieCwgJTFcblx0IgkJCVwKKysJ ICAgImNwdWlkXG5cdCIJCQkJCVwKKysJICAgInhjaGdsXHQlJWVieCwgJTFcblx0IgkJCVwKKysJ ICAgOiAiPWEiIChhKSwgIj1yIiAoYiksICI9YyIgKGMpLCAiPWQiIChkKQlcCisrCSAgIDogIjAi IChsZXZlbCkpCisrCisrI2RlZmluZSBfX2NwdWlkX2NvdW50KGxldmVsLCBjb3VudCwgYSwgYiwg YywgZCkJCVwKKysgIF9fYXNtX18gKCJ4Y2hnbFx0JSVlYngsICUxXG5cdCIJCQlcCisrCSAgICJj cHVpZFxuXHQiCQkJCQlcCisrCSAgICJ4Y2hnbFx0JSVlYngsICUxXG5cdCIJCQlcCisrCSAgIDog Ij1hIiAoYSksICI9ciIgKGIpLCAiPWMiIChjKSwgIj1kIiAoZCkJXAorKwkgICA6ICIwIiAobGV2 ZWwpLCAiMiIgKGNvdW50KSkKKysjZW5kaWYKKysjZWxzZQorKyNkZWZpbmUgX19jcHVpZChsZXZl bCwgYSwgYiwgYywgZCkJCQlcCisrICBfX2FzbV9fICgiY3B1aWRcblx0IgkJCQkJXAorKwkgICA6 ICI9YSIgKGEpLCAiPWIiIChiKSwgIj1jIiAoYyksICI9ZCIgKGQpCVwKKysJICAgOiAiMCIgKGxl dmVsKSkKKysKKysjZGVmaW5lIF9fY3B1aWRfY291bnQobGV2ZWwsIGNvdW50LCBhLCBiLCBjLCBk KQkJXAorKyAgX19hc21fXyAoImNwdWlkXG5cdCIJCQkJCVwKKysJICAgOiAiPWEiIChhKSwgIj1i IiAoYiksICI9YyIgKGMpLCAiPWQiIChkKQlcCisrCSAgIDogIjAiIChsZXZlbCksICIyIiAoY291 bnQpKQorKyNlbmRpZgorKworKy8qIFJldHVybiBoaWdoZXN0IHN1cHBvcnRlZCBpbnB1dCB2YWx1 ZSBmb3IgY3B1aWQgaW5zdHJ1Y3Rpb24uICBleHQgY2FuCisrICAgYmUgZWl0aGVyIDB4MCBvciAw eDgwMDAwMDAgdG8gcmV0dXJuIGhpZ2hlc3Qgc3VwcG9ydGVkIHZhbHVlIGZvcgorKyAgIGJhc2lj IG9yIGV4dGVuZGVkIGNwdWlkIGluZm9ybWF0aW9uLiAgRnVuY3Rpb24gcmV0dXJucyAwIGlmIGNw dWlkCisrICAgaXMgbm90IHN1cHBvcnRlZCBvciB3aGF0ZXZlciBjcHVpZCByZXR1cm5zIGluIGVh eCByZWdpc3Rlci4gIElmIHNpZworKyAgIHBvaW50ZXIgaXMgbm9uLW51bGwsIHRoZW4gZmlyc3Qg Zm91ciBieXRlcyBvZiB0aGUgc2lnbmF0dXJlCisrICAgKGFzIGZvdW5kIGluIGVieCByZWdpc3Rl cikgYXJlIHJldHVybmVkIGluIGxvY2F0aW9uIHBvaW50ZWQgYnkgc2lnLiAgKi8KKysKKytzdGF0 aWMgX19pbmxpbmUgdW5zaWduZWQgaW50CisrX19nZXRfY3B1aWRfbWF4ICh1bnNpZ25lZCBpbnQg X19leHQsIHVuc2lnbmVkIGludCAqX19zaWcpCisreworKyAgdW5zaWduZWQgaW50IF9fZWF4LCBf X2VieCwgX19lY3gsIF9fZWR4OworKworKyNpZm5kZWYgX194ODZfNjRfXworKyNpZiBfX0dOVUNf XyA+PSAzCisrICAvKiBTZWUgaWYgd2UgY2FuIHVzZSBjcHVpZC4gIE9uIEFNRDY0IHdlIGFsd2F5 cyBjYW4uICAqLworKyAgX19hc21fXyAoInB1c2hme2x8ZH1cblx0IgorKwkgICAicHVzaGZ7bHxk fVxuXHQiCisrCSAgICJwb3B7bH1cdCUwXG5cdCIKKysJICAgIm1vdntsfVx0eyUwLCAlMXwlMSwg JTB9XG5cdCIKKysJICAgInhvcntsfVx0eyUyLCAlMHwlMCwgJTJ9XG5cdCIKKysJICAgInB1c2h7 bH1cdCUwXG5cdCIKKysJICAgInBvcGZ7bHxkfVxuXHQiCisrCSAgICJwdXNoZntsfGR9XG5cdCIK KysJICAgInBvcHtsfVx0JTBcblx0IgorKwkgICAicG9wZntsfGR9XG5cdCIKKysJICAgOiAiPSZy IiAoX19lYXgpLCAiPSZyIiAoX19lYngpCisrCSAgIDogImkiICgweDAwMjAwMDAwKSk7CisrI2Vs c2UKKysvKiBIb3N0IEdDQ3Mgb2xkZXIgdGhhbiAzLjAgd2VyZW4ndCBzdXBwb3J0aW5nIEludGVs IGFzbSBzeW50YXgKKysgICBub3IgYWx0ZXJuYXRpdmVzIGluIGkzODYgY29kZS4gICovCisrICBf X2FzbV9fICgicHVzaGZsXG5cdCIKKysJICAgInB1c2hmbFxuXHQiCisrCSAgICJwb3BsXHQlMFxu XHQiCisrCSAgICJtb3ZsXHQlMCwgJTFcblx0IgorKwkgICAieG9ybFx0JTIsICUwXG5cdCIKKysJ ICAgInB1c2hsXHQlMFxuXHQiCisrCSAgICJwb3BmbFxuXHQiCisrCSAgICJwdXNoZmxcblx0Igor KwkgICAicG9wbFx0JTBcblx0IgorKwkgICAicG9wZmxcblx0IgorKwkgICA6ICI9JnIiIChfX2Vh eCksICI9JnIiIChfX2VieCkKKysJICAgOiAiaSIgKDB4MDAyMDAwMDApKTsKKysjZW5kaWYKKyAK Ky0gICBDb3B5cmlnaHQgMjAwNCwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysgIGlmICghKChfX2VheCBeIF9fZWJ4KSAmIDB4MDAyMDAwMDAp KQorKyAgICByZXR1cm4gMDsKKysjZW5kaWYKKyAKKy0gICBUaGlzIGZpbGUgaXMgcGFydCBvZiBH REIuCisrICAvKiBIb3N0IHN1cHBvcnRzIGNwdWlkLiAgUmV0dXJuIGhpZ2hlc3Qgc3VwcG9ydGVk IGNwdWlkIGlucHV0IHZhbHVlLiAgKi8KKysgIF9fY3B1aWQgKF9fZXh0LCBfX2VheCwgX19lYngs IF9fZWN4LCBfX2VkeCk7CisgCistICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy0gICBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorLSAg IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCistICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysgIGlm IChfX3NpZykKKysgICAgKl9fc2lnID0gX19lYng7CisgCistICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCistICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK Ky0gICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCistICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKysgIHJldHVybiBfX2VheDsKKyt9CisgCistICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy0gICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCisrLyogUmV0dXJuIGNwdWlkIGRhdGEgZm9yIHJlcXVlc3RlZCBjcHVpZCBsZXZlbCwg YXMgZm91bmQgaW4gcmV0dXJuZWQKKysgICBlYXgsIGVieCwgZWN4IGFuZCBlZHggcmVnaXN0ZXJz LiAgVGhlIGZ1bmN0aW9uIGNoZWNrcyBpZiBjcHVpZCBpcworKyAgIHN1cHBvcnRlZCBhbmQgcmV0 dXJucyAxIGZvciB2YWxpZCBjcHVpZCBpbmZvcm1hdGlvbiBvciAwIGZvcgorKyAgIHVuc3VwcG9y dGVkIGNwdWlkIGxldmVsLiAgQWxsIHBvaW50ZXJzIGFyZSByZXF1aXJlZCB0byBiZSBub24tbnVs bC4gICovCisrCisrc3RhdGljIF9faW5saW5lIGludAorK19fZ2V0X2NwdWlkICh1bnNpZ25lZCBp bnQgX19sZXZlbCwKKysJICAgICB1bnNpZ25lZCBpbnQgKl9fZWF4LCB1bnNpZ25lZCBpbnQgKl9f ZWJ4LAorKwkgICAgIHVuc2lnbmVkIGludCAqX19lY3gsIHVuc2lnbmVkIGludCAqX19lZHgpCisr eworKyAgdW5zaWduZWQgaW50IF9fZXh0ID0gX19sZXZlbCAmIDB4ODAwMDAwMDA7CisgCistLyog VXNlZCBieSAyMDAyMDUyMy0yLmMgYW5kIGkzODYtc3NlLTYuYywgYW5kIHBvc3NpYmx5IG90aGVy cy4gICovCistLyogUGxhZ2FyaXplZCBmcm9tIDIwMDIwNTIzLTIuYy4gICovCistLyogUGxhZ2Fy aXplZCBmcm9tIGdjYy4gICovCisrICBpZiAoX19nZXRfY3B1aWRfbWF4IChfX2V4dCwgMCkgPCBf X2xldmVsKQorKyAgICByZXR1cm4gMDsKKyAKKy0jZGVmaW5lIGJpdF9DTU9WICgxIDw8IDE1KQor LSNkZWZpbmUgYml0X01NWCAoMSA8PCAyMykKKy0jZGVmaW5lIGJpdF9TU0UgKDEgPDwgMjUpCist I2RlZmluZSBiaXRfU1NFMiAoMSA8PCAyNikKKysgIF9fY3B1aWQgKF9fbGV2ZWwsICpfX2VheCwg Kl9fZWJ4LCAqX19lY3gsICpfX2VkeCk7CisrICByZXR1cm4gMTsKKyt9CisgCisgI2lmbmRlZiBO T0lOTElORQorICNkZWZpbmUgTk9JTkxJTkUgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkKK0BA IC0zNSw0MSArMTkxLDEwIEBAIHVuc2lnbmVkIGludCBpMzg2X2NwdWlkICh2b2lkKSBOT0lOTElO RTsKKyB1bnNpZ25lZCBpbnQgTk9JTkxJTkUKKyBpMzg2X2NwdWlkICh2b2lkKQorIHsKKy0gIGlu dCBmbDEsIGZsMjsKKy0KKy0jaWZuZGVmIF9feDg2XzY0X18KKy0gIC8qIFNlZSBpZiB3ZSBjYW4g dXNlIGNwdWlkLiAgT24gQU1ENjQgd2UgYWx3YXlzIGNhbi4gICovCistICBfX2FzbV9fICgicHVz aGZsOyBwdXNoZmw7IHBvcGwgJTA7IG1vdmwgJTAsJTE7IHhvcmwgJTIsJTA7IgorLQkgICAicHVz aGwgJTA7IHBvcGZsOyBwdXNoZmw7IHBvcGwgJTA7IHBvcGZsIgorLQkgICA6ICI9JnIiIChmbDEp LCAiPSZyIiAoZmwyKQorLQkgICA6ICJpIiAoMHgwMDIwMDAwMCkpOworLSAgaWYgKCgoZmwxIF4g ZmwyKSAmIDB4MDAyMDAwMDApID09IDApCistICAgIHJldHVybiAoMCk7CistI2VuZGlmCisrICB1 bnNpZ25lZCBpbnQgZWF4LCBlYngsIGVjeCwgZWR4OworIAorLSAgLyogSG9zdCBzdXBwb3J0cyBj cHVpZC4gIFNlZSBpZiBjcHVpZCBnaXZlcyBjYXBhYmlsaXRpZXMsIHRyeQorLSAgICAgQ1BVSUQo MCkuICBQcmVzZXJ2ZSAlZWJ4IGFuZCAlZWN4OyBjcHVpZCBpbnNuIGNsb2JiZXJzIHRoZXNlLCB3 ZQorLSAgICAgZG9uJ3QgbmVlZCB0aGVpciBDUFVJRCB2YWx1ZXMgaGVyZSwgYW5kICVlYnggbWF5 IGJlIHRoZSBQSUMKKy0gICAgIHJlZ2lzdGVyLiAgKi8KKy0jaWZkZWYgX194ODZfNjRfXworLSAg X19hc21fXyAoInB1c2hxICUlcmN4OyBwdXNocSAlJXJieDsgY3B1aWQ7IHBvcHEgJSVyYng7IHBv cHEgJSVyY3giCistCSAgIDogIj1hIiAoZmwxKSA6ICIwIiAoMCkgOiAicmR4IiwgImNjIik7Cist I2Vsc2UKKy0gIF9fYXNtX18gKCJwdXNobCAlJWVjeDsgcHVzaGwgJSVlYng7IGNwdWlkOyBwb3Bs ICUlZWJ4OyBwb3BsICUlZWN4IgorLQkgICA6ICI9YSIgKGZsMSkgOiAiMCIgKDApIDogImVkeCIs ICJjYyIpOworLSNlbmRpZgorLSAgaWYgKGZsMSA9PSAwKQorLSAgICByZXR1cm4gKDApOworLQor LSAgLyogSW52b2tlIENQVUlEKDEpLCByZXR1cm4gJWVkeDsgY2FsbGVyIGNhbiBleGFtaW5lIGJp dHMgdG8KKy0gICAgIGRldGVybWluZSB3aGF0J3Mgc3VwcG9ydGVkLiAgKi8KKy0jaWZkZWYgX194 ODZfNjRfXworLSAgX19hc21fXyAoInB1c2hxICUlcmN4OyBwdXNocSAlJXJieDsgY3B1aWQ7IHBv cHEgJSVyYng7IHBvcHEgJSVyY3giCistCSAgIDogIj1kIiAoZmwyKSwgIj1hIiAoZmwxKSA6ICIx IiAoMSkgOiAiY2MiKTsKKy0jZWxzZQorLSAgX19hc21fXyAoInB1c2hsICUlZWN4OyBwdXNobCAl JWVieDsgY3B1aWQ7IHBvcGwgJSVlYng7IHBvcGwgJSVlY3giCistCSAgIDogIj1kIiAoZmwyKSwg Ij1hIiAoZmwxKSA6ICIxIiAoMSkgOiAiY2MiKTsKKy0jZW5kaWYKKysgIGlmICghX19nZXRfY3B1 aWQgKDEsICZlYXgsICZlYngsICZlY3gsICZlZHgpKQorKyAgICByZXR1cm4gMDsKKyAKKy0gIHJl dHVybiBmbDI7CisrICByZXR1cm4gZWR4OworIH0KKy0tLSAuL2luY2x1ZGUvZWxmL0NoYW5nZUxv Zy54c3RhdGUJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2luY2x1 ZGUvZWxmL0NoYW5nZUxvZy54c3RhdGUJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAy MDAKK0BAIC0wLDAgKzEsOCBAQAorKzIwMTAtMDEtMjcgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBjb21tb24uaCAoTlRfMzg2X1hTVEFURSk6IFJlbmFtZWQgdG8gLi4u CisrCShOVF9YODZfWFNUQVRFKTogVGhpcy4KKysKKysyMDEwLTAxLTI3ICBILkouIEx1ICA8aG9u Z2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogY29tbW9uLmggKE5UXzM4Nl9YU1RBVEUpOiBOZXcu CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTg5NDY3LXBpZWNlcy12bGEtY29tcGF0LnBhdGNoIGIvZ2Ri LWJ6NTg5NDY3LXBpZWNlcy12bGEtY29tcGF0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmNhNTc2MmQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1ODk0NjctcGll Y2VzLXZsYS1jb21wYXQucGF0Y2gKQEAgLTAsMCArMSw1OSBAQAorMDZlMzU3ZjUzNGFiY2Y4OTEy ZTRmZDU5N2RhYWU4ZjEzODdkNjMxYworCitGaXggY29tcGF0aWJpbGl0eSB3aXRoOiBGWUk6IGZp eCBCSU5PUF9TVUJTQ1JJUFQgd2l0aCBwaWVjZWQgYXJyYXlzCisgCWh0dHA6Ly9zb3VyY2V3YXJl Lm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTA1L21zZzAwMjgxLmh0bWwKKworMjAxMC0wNS0zMCAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiB2YWxhcml0 aC5jIChiaW5vcF91c2VyX2RlZmluZWRfcCk6IFJldHVybiAwIG9uIEFSRzEgb3IgQVJHMiBiZWlu ZworCVRZUEVfRFlOQU1JQy4KKwkqIHZhbHVlLmMgKGNvZXJjZV9yZWYpOiBVc2Ugb2JqZWN0X2Fk ZHJlc3NfZ2V0X2RhdGEgcmVzb2x1dGlvbiBmb3IKKwlUWVBFX0RZTkFNSUMgQVJHLgorCitbIEJh Y2twb3J0ZWQuICBdCisKK0luZGV4OiBnZGItNy4xL2dkYi92YWxhcml0aC5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuMS5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTAtMDUtMzAgMTg6NTQ6MjguMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvdmFsYXJpdGguYwkyMDEwLTA1LTMwIDE4OjU0 OjQzLjAwMDAwMDAwMCArMDIwMAorQEAgLTMwOSw2ICszMDksMTAgQEAgaW50CisgYmlub3BfdXNl cl9kZWZpbmVkX3AgKGVudW0gZXhwX29wY29kZSBvcCwKKyAJCSAgICAgIHN0cnVjdCB2YWx1ZSAq YXJnMSwgc3RydWN0IHZhbHVlICphcmcyKQorIHsKKysgIC8qIEZJWE1FOiBXZSBzaG91bGQgc3Vw cG9ydCB1c2VyIGRlZmluZWQgb3BzIGZvciBkeW5hbWljIHR5cGVzLiAgKi8KKysgIGlmIChUWVBF X0RZTkFNSUMgKHZhbHVlX3R5cGUgKGFyZzEpKSB8fCBUWVBFX0RZTkFNSUMgKHZhbHVlX3R5cGUg KGFyZzIpKSkKKysgICAgcmV0dXJuIDA7CisrCisgICByZXR1cm4gYmlub3BfdHlwZXNfdXNlcl9k ZWZpbmVkX3AgKG9wLCB2YWx1ZV90eXBlIChhcmcxKSwgdmFsdWVfdHlwZSAoYXJnMikpOworIH0K KyAKK0luZGV4OiBnZGItNy4xL2dkYi92YWx1ZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMS5v cmlnL2dkYi92YWx1ZS5jCTIwMTAtMDUtMzAgMTg6NTQ6MzYuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTcuMS9nZGIvdmFsdWUuYwkyMDEwLTA1LTMwIDE4OjU1OjUyLjAwMDAwMDAwMCArMDIwMAor QEAgLTI0MDAsNyArMjQwMCwyNCBAQCB2YWx1ZV9mcm9tX2RlY2Zsb2F0IChzdHJ1Y3QgdHlwZSAq dHlwZSwgCisgc3RydWN0IHZhbHVlICoKKyBjb2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKmFyZykK KyB7CistICBzdHJ1Y3QgdHlwZSAqdmFsdWVfdHlwZV9hcmdfdG1wID0gY2hlY2tfdHlwZWRlZiAo dmFsdWVfdHlwZSAoYXJnKSk7CisrICBzdHJ1Y3QgdHlwZSAqdmFsdWVfdHlwZV9hcmdfdG1wOwor KworKyAgaWYgKFRZUEVfRFlOQU1JQyAodmFsdWVfdHlwZSAoYXJnKSkpCisrICAgIHsKKysgICAg ICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKG51bGxfY2xlYW51cCwg TlVMTCk7CisrICAgICAgQ09SRV9BRERSIGFkZHJlc3M7CisrCisrICAgICAgdmFsdWVfdHlwZV9h cmdfdG1wID0gdmFsdWVfdHlwZSAoYXJnKTsKKysgICAgICBhZGRyZXNzID0gdmFsdWVfcmF3X2Fk ZHJlc3MgKGFyZyk7CisrICAgICAgaWYgKCEgb2JqZWN0X2FkZHJlc3NfZ2V0X2RhdGEgKHZhbHVl X3R5cGVfYXJnX3RtcCwgJmFkZHJlc3MpKQorKwllcnJvciAoXygiQXR0ZW1wdCB0byBjb2VyY2Ug bm9uLXZhbGlkIHZhbHVlLiIpKTsKKysgICAgICBDSEVDS19UWVBFREVGICh2YWx1ZV90eXBlX2Fy Z190bXApOworKyAgICAgIGFyZyA9IHZhbHVlX2F0X2xhenkgKHZhbHVlX3R5cGVfYXJnX3RtcCwg YWRkcmVzcyk7CisrICAgICAgZG9fY2xlYW51cHMgKGNsZWFudXBzKTsKKysgICAgfQorKyAgZWxz ZQorKyAgICB2YWx1ZV90eXBlX2FyZ190bXAgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChh cmcpKTsKKysKKyAgIGlmIChUWVBFX0NPREUgKHZhbHVlX3R5cGVfYXJnX3RtcCkgPT0gVFlQRV9D T0RFX1JFRikKKyAgICAgYXJnID0gdmFsdWVfYXRfbGF6eSAoVFlQRV9UQVJHRVRfVFlQRSAodmFs dWVfdHlwZV9hcmdfdG1wKSwKKyAJCQkgdW5wYWNrX3BvaW50ZXIgKHZhbHVlX3R5cGUgKGFyZyks CQkKCmRpZmYgLS1naXQgYS9nZGItYno1ODk0NjctcGllY2VzMDFvZjQucGF0Y2ggYi9nZGItYno1 ODk0NjctcGllY2VzMDFvZjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZjA3N2QxOQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejU4OTQ2Ny1waWVjZXMwMW9mNC5w YXRjaApAQCAtMCwwICsxLDgwIEBACitjb21taXQgOTZjMjNiZmQyODYzYmNjYTczODg2NTNhN2Jj NGM5ZjhhNjRhMDNiZQorQXV0aG9yOiBVbHJpY2ggV2VpZ2FuZCA8dXdlaWdhbmRAZGUuaWJtLmNv bT4KK0RhdGU6ICAgRnJpIEZlYiAyNiAxMjo0ODoxNyAyMDEwICswMDAwCisKKyAgICAJKiBkd2Fy ZjJsb2MuYyAoc3RydWN0IHBpZWNlX2Nsb3N1cmUpOiBSZW1vdmUgQVJDSCBtZW1iZXIsCisgICAg CWFkZCBBRERSX1NJWkUgbWVtYmVyLgorICAgIAkoYWxsb2NhdGVfcGllY2VfY2xvc3VyZSk6IFVw ZGF0ZS4KKyAgICAJKGNvcHlfcGllY2VkX3ZhbHVlX2Nsb3N1cmUpOiBMaWtld2lzZS4KKyAgICAJ KGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyk6IExpa2V3aXNlLgorICAgIAkocmVhZF9waWVjZWRf dmFsdWUpOiBVc2UgRFdBUkYgYWRkcmVzcyBzaXplIGluc3RlYWQgb2YKKyAgICAJR0RCJ3MgZ2Ri YXJjaF9hZGRyX2JpdCBhcyBzaXplIG9mIHZhbHVlcyBvbiB0aGUgRFdBUkYgc3RhY2suCisKK2Rp ZmYgLS1naXQgYS9nZGIvZHdhcmYybG9jLmMgYi9nZGIvZHdhcmYybG9jLmMKK2luZGV4IDFjNGQw NTcuLjIwZWRlM2UgMTAwNjQ0CistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2Fy ZjJsb2MuYworQEAgLTIzMiw4ICsyMzIsOCBAQCBzdHJ1Y3QgcGllY2VfY2xvc3VyZQorICAgLyog VGhlIG51bWJlciBvZiBwaWVjZXMgdXNlZCB0byBkZXNjcmliZSB0aGlzIHZhcmlhYmxlLiAgKi8K KyAgIGludCBuX3BpZWNlczsKKyAKKy0gIC8qIFRoZSBhcmNoaXRlY3R1cmUsIHVzZWQgb25seSBm b3IgRFdBUkZfVkFMVUVfU1RBQ0suICAqLworLSAgc3RydWN0IGdkYmFyY2ggKmFyY2g7CisrICAv KiBUaGUgdGFyZ2V0IGFkZHJlc3Mgc2l6ZSwgdXNlZCBvbmx5IGZvciBEV0FSRl9WQUxVRV9TVEFD Sy4gICovCisrICBpbnQgYWRkcl9zaXplOworIAorICAgLyogVGhlIHBpZWNlcyB0aGVtc2VsdmVz LiAgKi8KKyAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwaWVjZXM7CitAQCAtMjQ0LDEyICsy NDQsMTIgQEAgc3RydWN0IHBpZWNlX2Nsb3N1cmUKKyAKKyBzdGF0aWMgc3RydWN0IHBpZWNlX2Ns b3N1cmUgKgorIGFsbG9jYXRlX3BpZWNlX2Nsb3N1cmUgKGludCBuX3BpZWNlcywgc3RydWN0IGR3 YXJmX2V4cHJfcGllY2UgKnBpZWNlcywKKy0JCQlzdHJ1Y3QgZ2RiYXJjaCAqYXJjaCkKKysJCQlp bnQgYWRkcl9zaXplKQorIHsKKyAgIHN0cnVjdCBwaWVjZV9jbG9zdXJlICpjID0gWFpBTExPQyAo c3RydWN0IHBpZWNlX2Nsb3N1cmUpOworIAorICAgYy0+bl9waWVjZXMgPSBuX3BpZWNlczsKKy0g IGMtPmFyY2ggPSBhcmNoOworKyAgYy0+YWRkcl9zaXplID0gYWRkcl9zaXplOworICAgYy0+cGll Y2VzID0gWENBTExPQyAobl9waWVjZXMsIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlKTsKKyAKKyAg IG1lbWNweSAoYy0+cGllY2VzLCBwaWVjZXMsIG5fcGllY2VzICogc2l6ZW9mIChzdHJ1Y3QgZHdh cmZfZXhwcl9waWVjZSkpOworQEAgLTI5OCwxMyArMjk4LDEyIEBAIHJlYWRfcGllY2VkX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnYpCisgCisgCWNhc2UgRFdBUkZfVkFMVUVfU1RBQ0s6CisgCSAgewor LQkgICAgc2l6ZV90IG47CistCSAgICBpbnQgYWRkcl9zaXplID0gZ2RiYXJjaF9hZGRyX2JpdCAo Yy0+YXJjaCkgLyA4OworLQkgICAgbiA9IHAtPnNpemU7CistCSAgICBpZiAobiA+IGFkZHJfc2l6 ZSkKKy0JICAgICAgbiA9IGFkZHJfc2l6ZTsKKysJICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo ID0gZ2V0X3R5cGVfYXJjaCAodmFsdWVfdHlwZSAodikpOworKwkgICAgc2l6ZV90IG4gPSBwLT5z aXplOworKwkgICAgaWYgKG4gPiBjLT5hZGRyX3NpemUpCisrCSAgICAgIG4gPSBjLT5hZGRyX3Np emU7CisgCSAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChjb250ZW50cyArIG9mZnNldCwgbiwK Ky0JCQkJICAgIGdkYmFyY2hfYnl0ZV9vcmRlciAoYy0+YXJjaCksCisrCQkJCSAgICBnZGJhcmNo X2J5dGVfb3JkZXIgKGdkYmFyY2gpLAorIAkJCQkgICAgcC0+di5leHByLnZhbHVlKTsKKyAJICB9 CisgCSAgYnJlYWs7CitAQCAtMzc3LDcgKzM3Niw3IEBAIGNvcHlfcGllY2VkX3ZhbHVlX2Nsb3N1 cmUgKHN0cnVjdCB2YWx1ZSAqdikKKyB7CisgICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYyA9IChz dHJ1Y3QgcGllY2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2KTsKKyAgIAor LSAgcmV0dXJuIGFsbG9jYXRlX3BpZWNlX2Nsb3N1cmUgKGMtPm5fcGllY2VzLCBjLT5waWVjZXMs IGMtPmFyY2gpOworKyAgcmV0dXJuIGFsbG9jYXRlX3BpZWNlX2Nsb3N1cmUgKGMtPm5fcGllY2Vz LCBjLT5waWVjZXMsIGMtPmFkZHJfc2l6ZSk7CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtNDM5 LDcgKzQzOCw4IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFy LCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCisgICAgICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUg KmM7CisgICAgICAgc3RydWN0IGZyYW1lX2lkIGZyYW1lX2lkID0gZ2V0X2ZyYW1lX2lkIChmcmFt ZSk7CisgCistICAgICAgYyA9IGFsbG9jYXRlX3BpZWNlX2Nsb3N1cmUgKGN0eC0+bnVtX3BpZWNl cywgY3R4LT5waWVjZXMsIGN0eC0+Z2RiYXJjaCk7CisrICAgICAgYyA9IGFsbG9jYXRlX3BpZWNl X2Nsb3N1cmUgKGN0eC0+bnVtX3BpZWNlcywgY3R4LT5waWVjZXMsCisrCQkJCSAgY3R4LT5hZGRy X3NpemUpOworICAgICAgIHJldHZhbCA9IGFsbG9jYXRlX2NvbXB1dGVkX3ZhbHVlICh0eXBlLCAm cGllY2VkX3ZhbHVlX2Z1bmNzLCBjKTsKKyAgICAgICBWQUxVRV9GUkFNRV9JRCAocmV0dmFsKSA9 IGZyYW1lX2lkOworICAgICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTg5NDY3LXBpZWNlczAyb2Y0 LnBhdGNoIGIvZ2RiLWJ6NTg5NDY3LXBpZWNlczAyb2Y0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmY5OTg2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1ODk0 NjctcGllY2VzMDJvZjQucGF0Y2gKQEAgLTAsMCArMSw2OCBAQAorY29tbWl0IDYwZDE1ZmY2ZDc4 OTIxZDA4MGFlZTY4MWU2MDM3MmFiZTY2Mjc1NzAKK0F1dGhvcjogbWdyZXR0b24gPG1ncmV0dG9u PgorRGF0ZTogICBUdWUgTWF5IDQgMDk6NTQ6MTcgMjAxMCArMDAwMAorCisgICAgCSogZ2RiL2R3 YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1ZSwgd3JpdGVfcGllY2VkX3ZhbHVlLAorICAgIAlk d2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MpOiBIYW5kbGUgbm90IGJlaW5nIGFibGUgdG8gYWNjZXNz IERXQVJGCisgICAgCXJlZ2lzdGVycyBncmFjZWZ1bGx5LgorCitJbmRleDogZ2RiLTcuMS9nZGIv ZHdhcmYybG9jLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xLm9yaWcvZ2RiL2R3YXJmMmxvYy5j CTIwMTAtMDUtMjUgMjE6MzU6MTAuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvZHdh cmYybG9jLmMJMjAxMC0wNS0yNSAyMTozNzozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC00NTgsOCAr NDU4LDE2IEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgCSAgICAgIC8q IEJpZy1lbmRpYW4sIGFuZCB3ZSB3YW50IGxlc3MgdGhhbiBmdWxsIHNpemUuICAqLworIAkgICAg ICByZWdfb2Zmc2V0ID0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkgLSBwLT5zaXpl OworIAorLQkgICAgZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwg cmVnX29mZnNldCwgcC0+c2l6ZSwKKy0JCQkJICAgICAgY29udGVudHMgKyBvZmZzZXQpOworKwkg ICAgaWYgKGdkYl9yZWdudW0gIT0gLTEpCisrCSAgICAgIHsKKysJCWdldF9mcmFtZV9yZWdpc3Rl cl9ieXRlcyAoZnJhbWUsIGdkYl9yZWdudW0sIHJlZ19vZmZzZXQsIAorKwkJCQkJICBwLT5zaXpl LCBjb250ZW50cyArIG9mZnNldCk7CisrCSAgICAgIH0KKysJICAgIGVsc2UKKysJICAgICAgewor KwkJZXJyb3IgKF8oIlVuYWJsZSB0byBhY2Nlc3MgRFdBUkYgcmVnaXN0ZXIgbnVtYmVyICVzIiks CisrCQkgICAgICAgcGFkZHJlc3MgKGFyY2gsIHAtPnYuZXhwci52YWx1ZSkpOworKwkgICAgICB9 CisgCSAgfQorIAkgIGJyZWFrOworIAorQEAgLTUzMSw4ICs1MzksMTYgQEAgd3JpdGVfcGllY2Vk X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAorIAkgICAgICAvKiBCaWctZW5kaWFuLCBhbmQg d2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBzaXplLiAgKi8KKyAJICAgICAgcmVnX29mZnNldCA9IHJl Z2lzdGVyX3NpemUgKGFyY2gsIGdkYl9yZWdudW0pIC0gcC0+c2l6ZTsKKyAKKy0JICAgIHB1dF9m cmFtZV9yZWdpc3Rlcl9ieXRlcyAoZnJhbWUsIGdkYl9yZWdudW0sIHJlZ19vZmZzZXQsIHAtPnNp emUsCistCQkJCSAgICAgIGNvbnRlbnRzICsgb2Zmc2V0KTsKKysJICAgIGlmIChnZGJfcmVnbnVt ICE9IC0xKQorKwkgICAgICB7CisrCQlwdXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKGZyYW1lLCBn ZGJfcmVnbnVtLCByZWdfb2Zmc2V0LCAKKysJCQkJCSAgcC0+c2l6ZSwgY29udGVudHMgKyBvZmZz ZXQpOworKwkgICAgICB9CisrCSAgICBlbHNlCisrCSAgICAgIHsKKysJCWVycm9yIChfKCJVbmFi bGUgdG8gd3JpdGUgdG8gRFdBUkYgcmVnaXN0ZXIgbnVtYmVyICVzIiksCisrCQkgICAgICAgcGFk ZHJlc3MgKGFyY2gsIHAtPnYuZXhwci52YWx1ZSkpOworKwkgICAgICB9CisgCSAgfQorIAkgIGJy ZWFrOworIAljYXNlIERXQVJGX1ZBTFVFX01FTU9SWToKK0BAIC02MTEsNyArNjI3LDE2IEBAIGR3 YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHR5cGUgKnQKKyAJICAgIHN0cnVjdCBnZGJh cmNoICphcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKKyAJICAgIENPUkVfQUREUiBkd2Fy Zl9yZWdudW0gPSBkd2FyZl9leHByX2ZldGNoIChjdHgsIDApOworIAkgICAgaW50IGdkYl9yZWdu dW0gPSBnZGJhcmNoX2R3YXJmMl9yZWdfdG9fcmVnbnVtIChhcmNoLCBkd2FyZl9yZWdudW0pOwor LQkgICAgcmV0dmFsID0gdmFsdWVfZnJvbV9yZWdpc3RlciAodHlwZSwgZ2RiX3JlZ251bSwgZnJh bWUpOworKwkgICAgaWYgKGdkYl9yZWdudW0gIT0gLTEpCisrCSAgICAgIHsKKysJCXJldHZhbCA9 IHZhbHVlX2Zyb21fcmVnaXN0ZXIgKHR5cGUsCisrCQkJCQkgICAgICBnZGJfcmVnbnVtLCBmcmFt ZSk7CisrCSAgICAgIH0KKysJICAgIGVsc2UKKysJICAgICAgeworKwkJZXJyb3IgKF8oIlVuYWJs ZSB0byBhY2Nlc3MgRFdBUkYgcmVnaXN0ZXIgbnVtYmVyICVzIiksCisrCQkgICAgICAgcGFkZHJl c3MgKGFyY2gsIGR3YXJmX3JlZ251bSkpOworKwkgICAgICB9CisgCSAgfQorIAkgIGJyZWFrOwor IAoKZGlmZiAtLWdpdCBhL2dkYi1iejU4OTQ2Ny1waWVjZXMwM29mNC5wYXRjaCBiL2dkYi1iejU4 OTQ2Ny1waWVjZXMwM29mNC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li44ZmM3M2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NTg5NDY3LXBpZWNlczAzb2Y0LnBh dGNoCkBAIC0wLDAgKzEsOTkgQEAKK2NvbW1pdCBkYWNkNjZhNTNiNTU5YmU5YzI2ZDJjNTIzZjE2 OGYxZWYwMjYxZjRkCitBdXRob3I6IE1pY2hhZWwgU255ZGVyIDxtc255ZGVyQHNwZWNpZml4LmNv bT4KK0RhdGU6ICAgRnJpIE1heSAxNCAxNzo1MzoxMSAyMDEwICswMDAwCisKKyAgICAyMDEwLTA1 LTE0ICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAdm13YXJlLmNvbT4KKyAgICAKKyAgICAJKiBk YnhyZWFkLmM6IFdoaXRlIHNwYWNlLgorICAgIAkqIGRjYWNoZS5jOiBXaGl0ZSBzcGFjZS4KKyAg ICAJKiBkaXNhc20uYzogV2hpdGUgc3BhY2UuCisgICAgCSogZG91Ymxlc3QuYzogV2hpdGUgc3Bh Y2UuCisgICAgCSogZHNyZWMuYzogV2hpdGUgc3BhY2UuCisgICAgCSogZHVtbXktZnJhbWUuYzog V2hpdGUgc3BhY2UuCisgICAgCSogZHdhcmYyZXhwci5jOiBXaGl0ZSBzcGFjZS4KKyAgICAJKiBk d2FyZjItZnJhbWUuYzogV2hpdGUgc3BhY2UuCisgICAgCSogZHdhcmYybG9jLmM6IFdoaXRlIHNw YWNlLgorICAgIAkqIGR3YXJmMnJlYWQuYzogV2hpdGUgc3BhY2UuCisKKy0tLSBnZGItNy4xL2dk Yi9kd2FyZjJsb2MuYy5vcmlnCTIwMTAtMDUtMjUgMjM6MDY6NDYuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTcuMS9nZGIvZHdhcmYybG9jLmMJMjAxMC0wNS0yNSAyMzowNjo0Ni4wMDAwMDAwMDAg KzAyMDAKK0BAIC0yMzYsNiArMjM2LDcgQEAgc3RhdGljIENPUkVfQUREUgorIGR3YXJmX2V4cHJf ZnJhbWVfY2ZhICh2b2lkICpiYXRvbikKKyB7CisgICBzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbiAq ZGViYXRvbiA9IChzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbiAqKSBiYXRvbjsKKysKKyAgIHJldHVy biBkd2FyZjJfZnJhbWVfY2ZhIChkZWJhdG9uLT5mcmFtZSk7CisgfQorIAorQEAgLTQ0NCw2ICs0 NDUsNyBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorICAgZm9yIChpID0g MDsgaSA8IGMtPm5fcGllY2VzOyBpKyspCisgICAgIHsKKyAgICAgICBzdHJ1Y3QgZHdhcmZfZXhw cl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CisrCisgICAgICAgc3dpdGNoIChwLT5sb2NhdGlv bikKKyAJeworIAljYXNlIERXQVJGX1ZBTFVFX1JFR0lTVEVSOgorQEAgLTQ4Miw2ICs0ODQsNyBA QCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgIHsKKyAJICAgIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodmFsdWVfdHlwZSAodikpOworIAkg ICAgc2l6ZV90IG4gPSBwLT5zaXplOworKworIAkgICAgaWYgKG4gPiBjLT5hZGRyX3NpemUpCisg CSAgICAgIG4gPSBjLT5hZGRyX3NpemU7CisgCSAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChj b250ZW50cyArIG9mZnNldCwgbiwKK0BAIC00OTMsNiArNDk2LDcgQEAgcmVhZF9waWVjZWRfdmFs dWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAJY2FzZSBEV0FSRl9WQUxVRV9MSVRFUkFMOgorIAkgIHsK KyAJICAgIHNpemVfdCBuID0gcC0+c2l6ZTsKKysKKyAJICAgIGlmIChuID4gcC0+di5saXRlcmFs Lmxlbmd0aCkKKyAJICAgICAgbiA9IHAtPnYubGl0ZXJhbC5sZW5ndGg7CisgCSAgICBtZW1jcHkg KGNvbnRlbnRzICsgb2Zmc2V0LCBwLT52LmxpdGVyYWwuZGF0YSwgbik7CitAQCAtNTI1LDYgKzUy OSw3IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3QKKyAgIGZvciAo aSA9IDA7IGkgPCBjLT5uX3BpZWNlczsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0IGR3YXJm X2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOworKworICAgICAgIHN3aXRjaCAocC0+bG9j YXRpb24pCisgCXsKKyAJY2FzZSBEV0FSRl9WQUxVRV9SRUdJU1RFUjoKK0BAIC03MTIsNiArNzE3 LDcgQEAgc3RhdGljIENPUkVfQUREUgorIG5lZWRzX2ZyYW1lX3JlYWRfcmVnICh2b2lkICpiYXRv biwgaW50IHJlZ251bSkKKyB7CisgICBzdHJ1Y3QgbmVlZHNfZnJhbWVfYmF0b24gKm5mX2JhdG9u ID0gYmF0b247CisrCisgICBuZl9iYXRvbi0+bmVlZHNfZnJhbWUgPSAxOworICAgcmV0dXJuIDE7 CisgfQorQEAgLTc0Miw2ICs3NDgsNyBAQCBzdGF0aWMgQ09SRV9BRERSCisgbmVlZHNfZnJhbWVf ZnJhbWVfY2ZhICh2b2lkICpiYXRvbikKKyB7CisgICBzdHJ1Y3QgbmVlZHNfZnJhbWVfYmF0b24g Km5mX2JhdG9uID0gYmF0b247CisrCisgICBuZl9iYXRvbi0+bmVlZHNfZnJhbWUgPSAxOworICAg cmV0dXJuIDE7CisgfQorQEAgLTc1MSw2ICs3NTgsNyBAQCBzdGF0aWMgQ09SRV9BRERSCisgbmVl ZHNfZnJhbWVfdGxzX2FkZHJlc3MgKHZvaWQgKmJhdG9uLCBDT1JFX0FERFIgb2Zmc2V0KQorIHsK KyAgIHN0cnVjdCBuZWVkc19mcmFtZV9iYXRvbiAqbmZfYmF0b24gPSBiYXRvbjsKKysKKyAgIG5m X2JhdG9uLT5uZWVkc19mcmFtZSA9IDE7CisgICByZXR1cm4gMTsKKyB9CitAQCAtOTA3LDYgKzkx NSw3IEBAIGxvY2V4cHJfcmVhZF92YXJpYWJsZSAoc3RydWN0IHN5bWJvbCAqc3kKKyB7CisgICBz dHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmRsYmF0b24gPSBTWU1CT0xfTE9DQVRJT05fQkFU T04gKHN5bWJvbCk7CisgICBzdHJ1Y3QgdmFsdWUgKnZhbDsKKysKKyAgIHZhbCA9IGR3YXJmMl9l dmFsdWF0ZV9sb2NfZGVzYyAoU1lNQk9MX1RZUEUgKHN5bWJvbCksIGZyYW1lLCBkbGJhdG9uLT5k YXRhLAorIAkJCQkgIGRsYmF0b24tPnNpemUsIGRsYmF0b24tPnBlcl9jdSk7CisgCitAQCAtOTE4 LDYgKzkyNyw3IEBAIHN0YXRpYyBpbnQKKyBsb2NleHByX3JlYWRfbmVlZHNfZnJhbWUgKHN0cnVj dCBzeW1ib2wgKnN5bWJvbCkKKyB7CisgICBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmRs YmF0b24gPSBTWU1CT0xfTE9DQVRJT05fQkFUT04gKHN5bWJvbCk7CisrCisgICByZXR1cm4gZHdh cmYyX2xvY19kZXNjX25lZWRzX2ZyYW1lIChkbGJhdG9uLT5kYXRhLCBkbGJhdG9uLT5zaXplLAor IAkJCQkgICAgICBkbGJhdG9uLT5wZXJfY3UpOworIH0KCmRpZmYgLS1naXQgYS9nZGItYno1ODk0 NjctcGllY2VzMW9mNC5wYXRjaCBiL2dkYi1iejU4OTQ2Ny1waWVjZXMxb2Y0LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMTYzYzYKLS0tIC9kZXYvbnVsbAorKysg Yi9nZGItYno1ODk0NjctcGllY2VzMW9mNC5wYXRjaApAQCAtMCwwICsxLDIwNzUgQEAKK2h0dHA6 Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTAtMDUvbXNnMDAxODYuaHRtbAorCisjIyMg c3JjL2dkYi9DaGFuZ2VMb2cJMjAxMC8wNS8yMSAyMDozNDo0NQkxLjExODI4CisjIyMgc3JjL2dk Yi9DaGFuZ2VMb2cJMjAxMC8wNS8yMSAyMDozOTo1MAkxLjExODI5CisjIyAtMSwzICsxLDkgQEAK KysyMDEwLTA1LTIxICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CisrCisrCSogZHdh cmYybG9jLmMgKHJlYWRfcGllY2VkX3ZhbHVlKTogV29yayBwcm9wZXJseSB3aGVuICd2JyBoYXMg YW4KKysJb2Zmc2V0LgorKwkod3JpdGVfcGllY2VkX3ZhbHVlKTogTGlrZXdpc2UuCisrCisjIyMg c3JjL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDUvMjAgMTk6MTg6NTcJMS4yMjcyCisj IyMgc3JjL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDUvMjEgMjA6Mzk6NTAJMS4yMjcz CisjIyAtMSwzICsxLDkgQEAKKysyMDEwLTA1LTIxICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhh dC5jb20+CisrCisrCSogZ2RiLmR3YXJmMi5waWVjZXMuZXhwOiBOZXcgZmlsZS4KKysJKiBnZGIu ZHdhcmYyLnBpZWNlcy5TOiBOZXcgZmlsZS4KKysJKiBnZGIuZHdhcmYyLnBpZWNlcy5jOiBOZXcg ZmlsZS4KKysKKy0tLSBzcmMvZ2RiL2R3YXJmMmxvYy5jCTIwMTAvMDUvMTQgMTc6NTM6MTYJMS43 OAorKysrIHNyYy9nZGIvZHdhcmYybG9jLmMJMjAxMC8wNS8yMSAyMDozOTo1MAkxLjc5CitAQCAt MjY0LDE0ICsyNjQsNDYgQEAKKyB7CisgICBpbnQgaTsKKyAgIGxvbmcgb2Zmc2V0ID0gMDsKKysg IFVMT05HRVNUIGJ5dGVzX3RvX3NraXA7CisgICBnZGJfYnl0ZSAqY29udGVudHM7CisgICBzdHJ1 Y3QgcGllY2VfY2xvc3VyZSAqYyA9IChzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21w dXRlZF9jbG9zdXJlICh2KTsKKyAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSA9IGZyYW1lX2Zp bmRfYnlfaWQgKFZBTFVFX0ZSQU1FX0lEICh2KSk7CisrICBzaXplX3QgdHlwZV9sZW47CisrCisr ICBpZiAodmFsdWVfdHlwZSAodikgIT0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHYpKQorKyAgICBp bnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLAorKwkJICAgIF8oIlNob3VsZCBub3Qg YmUgYWJsZSB0byBjcmVhdGUgYSBsYXp5IHZhbHVlIHdpdGggIgorKwkJICAgICAgImFuIGVuY2xv c2luZyB0eXBlIikpOworIAorICAgY29udGVudHMgPSB2YWx1ZV9jb250ZW50c19yYXcgKHYpOwor LSAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzOyBpKyspCisrICBieXRlc190b19za2lwID0g dmFsdWVfb2Zmc2V0ICh2KTsKKysgIHR5cGVfbGVuID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUg KHYpKTsKKysgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBvZmZzZXQgPCB0eXBlX2xl bjsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+ cGllY2VzW2ldOworKyAgICAgIHNpemVfdCB0aGlzX3NpemU7CisrICAgICAgbG9uZyBkZXN0X29m ZnNldCwgc291cmNlX29mZnNldDsKKysKKysgICAgICBpZiAoYnl0ZXNfdG9fc2tpcCA+IDAgJiYg Ynl0ZXNfdG9fc2tpcCA+PSBwLT5zaXplKQorKwl7CisrCSAgYnl0ZXNfdG9fc2tpcCAtPSBwLT5z aXplOworKwkgIGNvbnRpbnVlOworKwl9CisrICAgICAgdGhpc19zaXplID0gcC0+c2l6ZTsKKysg ICAgICBpZiAodGhpc19zaXplID4gdHlwZV9sZW4gLSBvZmZzZXQpCisrCXRoaXNfc2l6ZSA9IHR5 cGVfbGVuIC0gb2Zmc2V0OworKyAgICAgIGlmIChieXRlc190b19za2lwID4gMCkKKysJeworKwkg IGRlc3Rfb2Zmc2V0ID0gMDsKKysJICBzb3VyY2Vfb2Zmc2V0ID0gYnl0ZXNfdG9fc2tpcDsKKysJ ICB0aGlzX3NpemUgLT0gYnl0ZXNfdG9fc2tpcDsKKysJICBieXRlc190b19za2lwID0gMDsKKysJ fQorKyAgICAgIGVsc2UKKysJeworKwkgIGRlc3Rfb2Zmc2V0ID0gb2Zmc2V0OworKwkgIHNvdXJj ZV9vZmZzZXQgPSAwOworKwl9CisgCisgICAgICAgc3dpdGNoIChwLT5sb2NhdGlvbikKKyAJewor QEAgLTI4MCwxNyArMzEyLDE3IEBACisgCSAgICBzdHJ1Y3QgZ2RiYXJjaCAqYXJjaCA9IGdldF9m cmFtZV9hcmNoIChmcmFtZSk7CisgCSAgICBpbnQgZ2RiX3JlZ251bSA9IGdkYmFyY2hfZHdhcmYy X3JlZ190b19yZWdudW0gKGFyY2gsCisgCQkJCQkJCSAgIHAtPnYuZXhwci52YWx1ZSk7CistCSAg ICBpbnQgcmVnX29mZnNldCA9IDA7CisrCSAgICBpbnQgcmVnX29mZnNldCA9IHNvdXJjZV9vZmZz ZXQ7CisgCisgCSAgICBpZiAoZ2RiYXJjaF9ieXRlX29yZGVyIChhcmNoKSA9PSBCRkRfRU5ESUFO X0JJRworLQkJJiYgcC0+c2l6ZSA8IHJlZ2lzdGVyX3NpemUgKGFyY2gsIGdkYl9yZWdudW0pKQor KwkJJiYgdGhpc19zaXplIDwgcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkpCisgCSAg ICAgIC8qIEJpZy1lbmRpYW4sIGFuZCB3ZSB3YW50IGxlc3MgdGhhbiBmdWxsIHNpemUuICAqLwor LQkgICAgICByZWdfb2Zmc2V0ID0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkgLSBw LT5zaXplOworKwkgICAgICByZWdfb2Zmc2V0ID0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3Jl Z251bSkgLSB0aGlzX3NpemU7CisgCisgCSAgICBpZiAoZ2RiX3JlZ251bSAhPSAtMSkKKyAJICAg ICAgeworIAkJZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwgcmVn X29mZnNldCwgCistCQkJCQkgIHAtPnNpemUsIGNvbnRlbnRzICsgb2Zmc2V0KTsKKysJCQkJCSAg dGhpc19zaXplLCBjb250ZW50cyArIGRlc3Rfb2Zmc2V0KTsKKyAJICAgICAgfQorIAkgICAgZWxz ZQorIAkgICAgICB7CitAQCAtMzAyLDM4ICszMzQsNjAgQEAKKyAKKyAJY2FzZSBEV0FSRl9WQUxV RV9NRU1PUlk6CisgCSAgaWYgKHAtPnYuZXhwci5pbl9zdGFja19tZW1vcnkpCistCSAgICByZWFk X3N0YWNrIChwLT52LmV4cHIudmFsdWUsIGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKKysJ ICAgIHJlYWRfc3RhY2sgKHAtPnYuZXhwci52YWx1ZSArIHNvdXJjZV9vZmZzZXQsCisrCQkJY29u dGVudHMgKyBkZXN0X29mZnNldCwgdGhpc19zaXplKTsKKyAJICBlbHNlCistCSAgICByZWFkX21l bW9yeSAocC0+di5leHByLnZhbHVlLCBjb250ZW50cyArIG9mZnNldCwgcC0+c2l6ZSk7CisrCSAg ICByZWFkX21lbW9yeSAocC0+di5leHByLnZhbHVlICsgc291cmNlX29mZnNldCwKKysJCQkgY29u dGVudHMgKyBkZXN0X29mZnNldCwgdGhpc19zaXplKTsKKyAJICBicmVhazsKKyAKKyAJY2FzZSBE V0FSRl9WQUxVRV9TVEFDSzoKKyAJICB7CisgCSAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9 IGdldF90eXBlX2FyY2ggKHZhbHVlX3R5cGUgKHYpKTsKKy0JICAgIHNpemVfdCBuID0gcC0+c2l6 ZTsKKysJICAgIHNpemVfdCBuID0gdGhpc19zaXplOworKworKwkgICAgaWYgKG4gPiBjLT5hZGRy X3NpemUgLSBzb3VyY2Vfb2Zmc2V0KQorKwkgICAgICBuID0gKGMtPmFkZHJfc2l6ZSA+PSBzb3Vy Y2Vfb2Zmc2V0CisrCQkgICA/IGMtPmFkZHJfc2l6ZSAtIHNvdXJjZV9vZmZzZXQKKysJCSAgIDog MCk7CisrCSAgICBpZiAobiA9PSAwKQorKwkgICAgICB7CisrCQkvKiBOb3RoaW5nLiAgKi8KKysJ ICAgICAgfQorKwkgICAgZWxzZSBpZiAoc291cmNlX29mZnNldCA9PSAwKQorKwkgICAgICBzdG9y ZV91bnNpZ25lZF9pbnRlZ2VyIChjb250ZW50cyArIGRlc3Rfb2Zmc2V0LCBuLAorKwkJCQkgICAg ICBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpLAorKwkJCQkgICAgICBwLT52LmV4cHIudmFs dWUpOworKwkgICAgZWxzZQorKwkgICAgICB7CisrCQlnZGJfYnl0ZSBieXRlc1tzaXplb2YgKFVM T05HRVNUKV07CisgCistCSAgICBpZiAobiA+IGMtPmFkZHJfc2l6ZSkKKy0JICAgICAgbiA9IGMt PmFkZHJfc2l6ZTsKKy0JICAgIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgKGNvbnRlbnRzICsgb2Zm c2V0LCBuLAorLQkJCQkgICAgZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKSwKKy0JCQkJICAg IHAtPnYuZXhwci52YWx1ZSk7CisrCQlzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChieXRlcywgbiAr IHNvdXJjZV9vZmZzZXQsCisrCQkJCQlnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpLAorKwkJ CQkJcC0+di5leHByLnZhbHVlKTsKKysJCW1lbWNweSAoY29udGVudHMgKyBkZXN0X29mZnNldCwg Ynl0ZXMgKyBzb3VyY2Vfb2Zmc2V0LCBuKTsKKysJICAgICAgfQorIAkgIH0KKyAJICBicmVhazsK KyAKKyAJY2FzZSBEV0FSRl9WQUxVRV9MSVRFUkFMOgorIAkgIHsKKy0JICAgIHNpemVfdCBuID0g cC0+c2l6ZTsKKysJICAgIHNpemVfdCBuID0gdGhpc19zaXplOworIAorLQkgICAgaWYgKG4gPiBw LT52LmxpdGVyYWwubGVuZ3RoKQorLQkgICAgICBuID0gcC0+di5saXRlcmFsLmxlbmd0aDsKKy0J ICAgIG1lbWNweSAoY29udGVudHMgKyBvZmZzZXQsIHAtPnYubGl0ZXJhbC5kYXRhLCBuKTsKKysJ ICAgIGlmIChuID4gcC0+di5saXRlcmFsLmxlbmd0aCAtIHNvdXJjZV9vZmZzZXQpCisrCSAgICAg IG4gPSAocC0+di5saXRlcmFsLmxlbmd0aCA+PSBzb3VyY2Vfb2Zmc2V0CisrCQkgICA/IHAtPnYu bGl0ZXJhbC5sZW5ndGggLSBzb3VyY2Vfb2Zmc2V0CisrCQkgICA6IDApOworKwkgICAgaWYgKG4g IT0gMCkKKysJICAgICAgbWVtY3B5IChjb250ZW50cyArIGRlc3Rfb2Zmc2V0LAorKwkJICAgICAg cC0+di5saXRlcmFsLmRhdGEgKyBzb3VyY2Vfb2Zmc2V0LCBuKTsKKyAJICB9CisgCSAgYnJlYWs7 CisgCisgCWRlZmF1bHQ6CisgCSAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywg XygiaW52YWxpZCBsb2NhdGlvbiB0eXBlIikpOworIAl9CistICAgICAgb2Zmc2V0ICs9IHAtPnNp emU7CisrICAgICAgb2Zmc2V0ICs9IHRoaXNfc2l6ZTsKKyAgICAgfQorIH0KKyAKK0BAIC0zNDIs OSArMzk2LDExIEBACisgeworICAgaW50IGk7CisgICBsb25nIG9mZnNldCA9IDA7CistICBnZGJf Ynl0ZSAqY29udGVudHM7CisrICBVTE9OR0VTVCBieXRlc190b19za2lwOworKyAgY29uc3QgZ2Ri X2J5dGUgKmNvbnRlbnRzOworICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMgPSAoc3RydWN0IHBp ZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodG8pOworICAgc3RydWN0IGZy YW1lX2luZm8gKmZyYW1lID0gZnJhbWVfZmluZF9ieV9pZCAoVkFMVUVfRlJBTUVfSUQgKHRvKSk7 CisrICBzaXplX3QgdHlwZV9sZW47CisgCisgICBpZiAoZnJhbWUgPT0gTlVMTCkKKyAgICAgewor QEAgLTM1MiwxMCArNDA4LDM1IEBACisgICAgICAgcmV0dXJuOworICAgICB9CisgCistICBjb250 ZW50cyA9IHZhbHVlX2NvbnRlbnRzX3JhdyAoZnJvbSk7CistICBmb3IgKGkgPSAwOyBpIDwgYy0+ bl9waWVjZXM7IGkrKykKKysgIGNvbnRlbnRzID0gdmFsdWVfY29udGVudHMgKGZyb20pOworKyAg Ynl0ZXNfdG9fc2tpcCA9IHZhbHVlX29mZnNldCAodG8pOworKyAgdHlwZV9sZW4gPSBUWVBFX0xF TkdUSCAodmFsdWVfdHlwZSAodG8pKTsKKysgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAm JiBvZmZzZXQgPCB0eXBlX2xlbjsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0IGR3YXJmX2V4 cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOworKyAgICAgIHNpemVfdCB0aGlzX3NpemU7Cisr ICAgICAgbG9uZyBkZXN0X29mZnNldCwgc291cmNlX29mZnNldDsKKysKKysgICAgICBpZiAoYnl0 ZXNfdG9fc2tpcCA+IDAgJiYgYnl0ZXNfdG9fc2tpcCA+PSBwLT5zaXplKQorKwl7CisrCSAgYnl0 ZXNfdG9fc2tpcCAtPSBwLT5zaXplOworKwkgIGNvbnRpbnVlOworKwl9CisrICAgICAgdGhpc19z aXplID0gcC0+c2l6ZTsKKysgICAgICBpZiAodGhpc19zaXplID4gdHlwZV9sZW4gLSBvZmZzZXQp CisrCXRoaXNfc2l6ZSA9IHR5cGVfbGVuIC0gb2Zmc2V0OworKyAgICAgIGlmIChieXRlc190b19z a2lwID4gMCkKKysJeworKwkgIGRlc3Rfb2Zmc2V0ID0gYnl0ZXNfdG9fc2tpcDsKKysJICBzb3Vy Y2Vfb2Zmc2V0ID0gMDsKKysJICB0aGlzX3NpemUgLT0gYnl0ZXNfdG9fc2tpcDsKKysJICBieXRl c190b19za2lwID0gMDsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIGRlc3Rfb2Zmc2V0ID0g MDsKKysJICBzb3VyY2Vfb2Zmc2V0ID0gb2Zmc2V0OworKwl9CisgCisgICAgICAgc3dpdGNoIChw LT5sb2NhdGlvbikKKyAJeworQEAgLTM2MywxNyArNDQ0LDE3IEBACisgCSAgeworIAkgICAgc3Ry dWN0IGdkYmFyY2ggKmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOworIAkgICAgaW50IGdk Yl9yZWdudW0gPSBnZGJhcmNoX2R3YXJmMl9yZWdfdG9fcmVnbnVtIChhcmNoLCBwLT52LmV4cHIu dmFsdWUpOworLQkgICAgaW50IHJlZ19vZmZzZXQgPSAwOworKwkgICAgaW50IHJlZ19vZmZzZXQg PSBkZXN0X29mZnNldDsKKyAKKyAJICAgIGlmIChnZGJhcmNoX2J5dGVfb3JkZXIgKGFyY2gpID09 IEJGRF9FTkRJQU5fQklHCistCQkmJiBwLT5zaXplIDwgcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2Ri X3JlZ251bSkpCisrCQkmJiB0aGlzX3NpemUgPD0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3Jl Z251bSkpCisgCSAgICAgIC8qIEJpZy1lbmRpYW4sIGFuZCB3ZSB3YW50IGxlc3MgdGhhbiBmdWxs IHNpemUuICAqLworLQkgICAgICByZWdfb2Zmc2V0ID0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2Ri X3JlZ251bSkgLSBwLT5zaXplOworKwkgICAgICByZWdfb2Zmc2V0ID0gcmVnaXN0ZXJfc2l6ZSAo YXJjaCwgZ2RiX3JlZ251bSkgLSB0aGlzX3NpemU7CisgCisgCSAgICBpZiAoZ2RiX3JlZ251bSAh PSAtMSkKKyAJICAgICAgeworIAkJcHV0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2Ri X3JlZ251bSwgcmVnX29mZnNldCwgCistCQkJCQkgIHAtPnNpemUsIGNvbnRlbnRzICsgb2Zmc2V0 KTsKKysJCQkJCSAgdGhpc19zaXplLCBjb250ZW50cyArIHNvdXJjZV9vZmZzZXQpOworIAkgICAg ICB9CisgCSAgICBlbHNlCisgCSAgICAgIHsKK0BAIC0zODMsMTMgKzQ2NCwxNCBAQAorIAkgIH0K KyAJICBicmVhazsKKyAJY2FzZSBEV0FSRl9WQUxVRV9NRU1PUlk6CistCSAgd3JpdGVfbWVtb3J5 IChwLT52LmV4cHIudmFsdWUsIGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKKysJICB3cml0 ZV9tZW1vcnkgKHAtPnYuZXhwci52YWx1ZSArIGRlc3Rfb2Zmc2V0LAorKwkJCWNvbnRlbnRzICsg c291cmNlX29mZnNldCwgdGhpc19zaXplKTsKKyAJICBicmVhazsKKyAJZGVmYXVsdDoKKyAJICBz ZXRfdmFsdWVfb3B0aW1pemVkX291dCAodG8sIDEpOworIAkgIHJldHVybjsKKyAJfQorLSAgICAg IG9mZnNldCArPSBwLT5zaXplOworKyAgICAgIG9mZnNldCArPSB0aGlzX3NpemU7CisgICAgIH0K KyB9CisgCistLS0gc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9waWVjZXMuUworKysrIHNy Yy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvcGllY2VzLlMJMjAxMC0wNS0yNSAyMDoxNzo1MS45 ODg3MTgwMDAgKzAwMDAKK0BAIC0wLDAgKzEsMTY1NSBAQAorKy8qCisrICAgQ29weXJpZ2h0IDIw MTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysg ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisrICovCisrCisrLyogVGhpcyB3YXMgY29tcGlsZWQgd2l0aCBh IHZlcnNpb24gb2YgZ2NjIG1vZGlmaWVkIHRvIGVtaXQgYmV0dGVyCisrICAgZGVidWdpbmZvIGZv ciBTUkEnZCBzdHJ1Y3R1cmVzLiAgU2VlOgorKwlodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEv c2hvd19idWcuY2dpP2lkPTQzOTgzCisrCQorKyAgICBUaGUgb3JpZ2luYWwgcHJvZ3JhbSBpcyAi cGllY2VzLmMiLCBpbiB0aGlzIGRpcmVjdG9yeS4KKysqLworKworKwkuZmlsZQkicGllY2VzLmMi CisrCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIsQHByb2diaXRzCisrLkxkZWJ1Z19hYmJyZXYw OgorKwkuc2VjdGlvbgkuZGVidWdfaW5mbywiIixAcHJvZ2JpdHMKKysuTGRlYnVnX2luZm8wOgor Kwkuc2VjdGlvbgkuZGVidWdfbGluZSwiIixAcHJvZ2JpdHMKKysuTGRlYnVnX2xpbmUwOgorKwku dGV4dAorKy5MdGV4dDA6CisrCS5wMmFsaWduIDQsLDE1CisrLmdsb2JsIGJhcgorKwkudHlwZQli YXIsIEBmdW5jdGlvbgorK2JhcjoKKysuTEZCMDoKKysJLmZpbGUgMSAicGllY2VzLmMiCisrCSMg cGllY2VzLmM6MjgKKysJLmxvYyAxIDI4IDAKKysuTFZMMDoKKysJIyBiYXNpYyBibG9jayAyCisr CXB1c2hsCSVlYnAKKysuTENGSTA6CisrCW1vdmwJJWVzcCwgJWVicAorKy5MQ0ZJMToKKysJIyBw aWVjZXMuYzoyOQorKwkubG9jIDEgMjkgMAorKwltb3ZsCTgoJWVicCksICVlYXgKKysJIyBwaWVj ZXMuYzozMAorKwkubG9jIDEgMzAgMAorKwlwb3BsCSVlYnAKKysuTENGSTI6CisrCXJldAorKy5M RkUwOgorKwkuc2l6ZQliYXIsIC4tYmFyCisrCS5wMmFsaWduIDQsLDE1CisrLmdsb2JsIGYxCisr CS50eXBlCWYxLCBAZnVuY3Rpb24KKytmMToKKysuTEZCMToKKysJIyBwaWVjZXMuYzozNAorKwku bG9jIDEgMzQgMAorKy5MVkwxOgorKwkjIGJhc2ljIGJsb2NrIDIKKysJcHVzaGwJJWVicAorKy5M Q0ZJMzoKKysJbW92bAklZXNwLCAlZWJwCisrLkxDRkk0OgorKy5MVkwyOgorKwlzdWJsCSQxMiwg JWVzcAorKy5MQ0ZJNToKKysJbW92bAklZXNpLCAtNCglZWJwKQorKy5MQ0ZJNjoKKysJIyBwaWVj ZXMuYzozNworKwkubG9jIDEgMzcgMAorKwltb3ZsCTgoJWVicCksICVlc2kKKysJIyBwaWVjZXMu YzozNAorKwkubG9jIDEgMzQgMAorKwltb3ZsCSVlYngsIC04KCVlYnApCisrLkxDRkk3OgorKwkj IHBpZWNlcy5jOjM2CisrCS5sb2MgMSAzNiAwCisrCW1vdmwJJDQsICVlYngKKysuTFZMMzoKKysJ IyBwaWVjZXMuYzozOAorKwkubG9jIDEgMzggMAorKwltb3ZsCSVlYngsICglZXNwKQorKwkjIHBp ZWNlcy5jOjM3CisrCS5sb2MgMSAzNyAwCisrCWFkZGwJJDcsICVlc2kKKysuTFZMNDoKKysJIyBw aWVjZXMuYzozOAorKwkubG9jIDEgMzggMAorKwljYWxsCWJhcgorKwkjIHBpZWNlcy5jOjM5Cisr CS5sb2MgMSAzOSAwCisrCW1vdmwJJWVzaSwgKCVlc3ApCisrCWNhbGwJYmFyCisrCSMgcGllY2Vz LmM6NDAKKysJLmxvYyAxIDQwIDAKKysJbGVhbAkoJWVieCwlZXNpKSwgJWVheAorKwkjIHBpZWNl cy5jOjQxCisrCS5sb2MgMSA0MSAwCisrCW1vdmwJLTgoJWVicCksICVlYngKKysuTFZMNToKKysJ bW92bAktNCglZWJwKSwgJWVzaQorKy5MVkw2OgorKwltb3ZsCSVlYnAsICVlc3AKKysuTENGSTg6 CisrCXBvcGwJJWVicAorKy5MQ0ZJOToKKysJcmV0CisrLkxGRTE6CisrCS5zaXplCWYxLCAuLWYx CisrCS5wMmFsaWduIDQsLDE1CisrLmdsb2JsIGYyCisrCS50eXBlCWYyLCBAZnVuY3Rpb24KKytm MjoKKysuTEZCMjoKKysJIyBwaWVjZXMuYzo0NQorKwkubG9jIDEgNDUgMAorKy5MVkw3OgorKwkj IGJhc2ljIGJsb2NrIDIKKysJcHVzaGwJJWVicAorKy5MQ0ZJMTA6CisrCW1vdmwJJWVzcCwgJWVi cAorKy5MQ0ZJMTE6CisrLkxWTDg6CisrCXN1YmwJJDEyLCAlZXNwCisrLkxDRkkxMjoKKysJbW92 bAklZXNpLCAtNCglZWJwKQorKy5MQ0ZJMTM6CisrCSMgcGllY2VzLmM6NDgKKysJLmxvYyAxIDQ4 IDAKKysJbW92bAk4KCVlYnApLCAlZXNpCisrCSMgcGllY2VzLmM6NDUKKysJLmxvYyAxIDQ1IDAK KysJbW92bAklZWJ4LCAtOCglZWJwKQorKy5MQ0ZJMTQ6CisrCSMgcGllY2VzLmM6NDcKKysJLmxv YyAxIDQ3IDAKKysJbW92bAkkNCwgJWVieAorKy5MVkw5OgorKwkjIHBpZWNlcy5jOjQ5CisrCS5s b2MgMSA0OSAwCisrCW1vdmwJJWVieCwgKCVlc3ApCisrCSMgcGllY2VzLmM6NDgKKysJLmxvYyAx IDQ4IDAKKysJYWRkbAkkNywgJWVzaQorKy5MVkwxMDoKKysJIyBwaWVjZXMuYzo0OQorKwkubG9j IDEgNDkgMAorKwljYWxsCWJhcgorKwkjIHBpZWNlcy5jOjUwCisrCS5sb2MgMSA1MCAwCisrCW1v dmwJJWVzaSwgKCVlc3ApCisrCWNhbGwJYmFyCisrCSMgcGllY2VzLmM6NTEKKysJLmxvYyAxIDUx IDAKKysJbGVhbAkoJWVieCwlZXNpKSwgJWVheAorKwkjIHBpZWNlcy5jOjUyCisrCS5sb2MgMSA1 MiAwCisrCW1vdmwJLTgoJWVicCksICVlYngKKysuTFZMMTE6CisrCW1vdmwJLTQoJWVicCksICVl c2kKKysuTFZMMTI6CisrCW1vdmwJJWVicCwgJWVzcAorKy5MQ0ZJMTU6CisrCXBvcGwJJWVicAor Ky5MQ0ZJMTY6CisrCXJldAorKy5MRkUyOgorKwkuc2l6ZQlmMiwgLi1mMgorKwkucDJhbGlnbiA0 LCwxNQorKy5nbG9ibCBmMworKwkudHlwZQlmMywgQGZ1bmN0aW9uCisrZjM6CisrLkxGQjM6Cisr CSMgcGllY2VzLmM6NTYKKysJLmxvYyAxIDU2IDAKKysuTFZMMTM6CisrCSMgYmFzaWMgYmxvY2sg MgorKwlwdXNobAklZWJwCisrLkxDRkkxNzoKKysJIyBwaWVjZXMuYzo1OAorKwkubG9jIDEgNTgg MAorKwltb3ZsCSQ0LCAlZWR4CisrCSMgcGllY2VzLmM6NTYKKysJLmxvYyAxIDU2IDAKKysJbW92 bAklZXNwLCAlZWJwCisrLkxDRkkxODoKKysuTFZMMTQ6CisrCXN1YmwJJDEyLCAlZXNwCisrLkxD RkkxOToKKysJIyBwaWVjZXMuYzo1OAorKwkubG9jIDEgNTggMAorKy5MVkwxNToKKysJIyBwaWVj ZXMuYzo1NgorKwkubG9jIDEgNTYgMAorKwltb3ZsCSVlc2ksIC00KCVlYnApCisrLkxDRkkyMDoK KysJIyBwaWVjZXMuYzo2MAorKwkubG9jIDEgNjAgMAorKwltb3Zzd2wJJWR4LCAlZXNpCisrCSMg cGllY2VzLmM6NTYKKysJLmxvYyAxIDU2IDAKKysJbW92bAklZWJ4LCAtOCglZWJwKQorKy5MQ0ZJ MjE6CisrCSMgcGllY2VzLmM6NjAKKysJLmxvYyAxIDYwIDAKKysJbW92bAklZXNpLCAoJWVzcCkK KysJY2FsbAliYXIKKysuTFZMMTY6CisrCSMgcGllY2VzLmM6NTcKKysJLmxvYyAxIDU3IDAKKysJ bW92bAk4KCVlYnApLCAlZWR4CisrCXNhbGwJJDQsICVlZHgKKysJIyBwaWVjZXMuYzo1OQorKwku bG9jIDEgNTkgMAorKwlhZGRsCSQxMTIsICVlZHgKKysJc2FydwkkNCwgJWR4CisrCSMgcGllY2Vz LmM6NjEKKysJLmxvYyAxIDYxIDAKKysJbW92c3dsCSVkeCwgJWVieAorKwltb3ZsCSVlYngsICgl ZXNwKQorKwljYWxsCWJhcgorKwkjIHBpZWNlcy5jOjYyCisrCS5sb2MgMSA2MiAwCisrCWxlYWwJ KCVlc2ksJWVieCksICVlYXgKKysJIyBwaWVjZXMuYzo2MworKwkubG9jIDEgNjMgMAorKwltb3Zs CS04KCVlYnApLCAlZWJ4CisrCW1vdmwJLTQoJWVicCksICVlc2kKKysuTFZMMTc6CisrCW1vdmwJ JWVicCwgJWVzcAorKy5MQ0ZJMjI6CisrCXBvcGwJJWVicAorKy5MQ0ZJMjM6CisrCXJldAorKy5M RkUzOgorKwkuc2l6ZQlmMywgLi1mMworKwkucDJhbGlnbiA0LCwxNQorKy5nbG9ibCBmNAorKwku dHlwZQlmNCwgQGZ1bmN0aW9uCisrZjQ6CisrLkxGQjQ6CisrCSMgcGllY2VzLmM6NjcKKysJLmxv YyAxIDY3IDAKKysuTFZMMTg6CisrCSMgYmFzaWMgYmxvY2sgMgorKwlwdXNobAklZWJwCisrLkxD RkkyNDoKKysJbW92bAklZXNwLCAlZWJwCisrLkxDRkkyNToKKysJc3VibAkkMTIsICVlc3AKKysu TENGSTI2OgorKwltb3ZsCSVlc2ksIC00KCVlYnApCisrLkxDRkkyNzoKKysJbW92bAk4KCVlYnAp LCAlZXNpCisrLkxWTDE5OgorKwltb3ZsCSVlYngsIC04KCVlYnApCisrLkxDRkkyODoKKysJIyBw aWVjZXMuYzo2OQorKwkubG9jIDEgNjkgMAorKwltb3ZsCSVlc2ksICVlYngKKysJIyBwaWVjZXMu Yzo3MAorKwkubG9jIDEgNzAgMAorKwlhZGRsCSQxLCAlZXNpCisrCSMgcGllY2VzLmM6NjkKKysJ LmxvYyAxIDY5IDAKKysuTFZMMjA6CisrCSMgcGllY2VzLmM6NzEKKysJLmxvYyAxIDcxIDAKKysJ bW92bAklZWJ4LCAoJWVzcCkKKysJY2FsbAliYXIKKysJIyBwaWVjZXMuYzo3MgorKwkubG9jIDEg NzIgMAorKwltb3ZsCSVlc2ksICglZXNwKQorKwljYWxsCWJhcgorKwkjIHBpZWNlcy5jOjczCisr CS5sb2MgMSA3MyAwCisrCWxlYWwJKCVlYngsJWVzaSksICVlYXgKKysJIyBwaWVjZXMuYzo3NAor KwkubG9jIDEgNzQgMAorKwltb3ZsCS04KCVlYnApLCAlZWJ4CisrLkxWTDIxOgorKwltb3ZsCS00 KCVlYnApLCAlZXNpCisrLkxWTDIyOgorKwltb3ZsCSVlYnAsICVlc3AKKysuTENGSTI5OgorKwlw b3BsCSVlYnAKKysuTENGSTMwOgorKwlyZXQKKysuTEZFNDoKKysJLnNpemUJZjQsIC4tZjQKKysJ LnAyYWxpZ24gNCwsMTUKKysuZ2xvYmwgZjUKKysJLnR5cGUJZjUsIEBmdW5jdGlvbgorK2Y1Ogor Ky5MRkI1OgorKwkjIHBpZWNlcy5jOjc4CisrCS5sb2MgMSA3OCAwCisrLkxWTDIzOgorKwkjIGJh c2ljIGJsb2NrIDIKKysJcHVzaGwJJWVicAorKy5MQ0ZJMzE6CisrCW1vdmwJJWVzcCwgJWVicAor Ky5MQ0ZJMzI6CisrCXN1YmwJJDEyLCAlZXNwCisrLkxDRkkzMzoKKysJbW92bAklZXNpLCAtNCgl ZWJwKQorKy5MQ0ZJMzQ6CisrCW1vdmwJOCglZWJwKSwgJWVzaQorKy5MVkwyNDoKKysJbW92bAkl ZWJ4LCAtOCglZWJwKQorKy5MQ0ZJMzU6CisrCSMgcGllY2VzLmM6ODAKKysJLmxvYyAxIDgwIDAK KysJbW92bAklZXNpLCAlZWJ4CisrCSMgcGllY2VzLmM6ODEKKysJLmxvYyAxIDgxIDAKKysJYWRk bAkkMSwgJWVzaQorKwkjIHBpZWNlcy5jOjgwCisrCS5sb2MgMSA4MCAwCisrLkxWTDI1OgorKwkj IHBpZWNlcy5jOjgyCisrCS5sb2MgMSA4MiAwCisrCW1vdmwJJWVieCwgKCVlc3ApCisrCWNhbGwJ YmFyCisrCSMgcGllY2VzLmM6ODMKKysJLmxvYyAxIDgzIDAKKysJbW92bAklZXNpLCAoJWVzcCkK KysJY2FsbAliYXIKKysJIyBwaWVjZXMuYzo4NAorKwkubG9jIDEgODQgMAorKwlsZWFsCSglZWJ4 LCVlc2kpLCAlZWF4CisrCSMgcGllY2VzLmM6ODUKKysJLmxvYyAxIDg1IDAKKysJbW92bAktOCgl ZWJwKSwgJWVieAorKy5MVkwyNjoKKysJbW92bAktNCglZWJwKSwgJWVzaQorKy5MVkwyNzoKKysJ bW92bAklZWJwLCAlZXNwCisrLkxDRkkzNjoKKysJcG9wbAklZWJwCisrLkxDRkkzNzoKKysJcmV0 CisrLkxGRTU6CisrCS5zaXplCWY1LCAuLWY1CisrCS5wMmFsaWduIDQsLDE1CisrLmdsb2JsIG1h aW4KKysJLnR5cGUJbWFpbiwgQGZ1bmN0aW9uCisrbWFpbjoKKysuTEZCNjoKKysJIyBwaWVjZXMu Yzo4OQorKwkubG9jIDEgODkgMAorKwkjIGJhc2ljIGJsb2NrIDIKKysJcHVzaGwJJWVicAorKy5M Q0ZJMzg6CisrCW1vdmwJJWVzcCwgJWVicAorKy5MQ0ZJMzk6CisrCXB1c2hsCSVlYngKKysuTENG STQwOgorKwkjIHBpZWNlcy5jOjkxCisrCS5sb2MgMSA5MSAwCisrCW1vdmwJJDcsICVlYngKKysJ IyBwaWVjZXMuYzo4OQorKwkubG9jIDEgODkgMAorKwlzdWJsCSQ0LCAlZXNwCisrLkxDRkk0MToK KysJIyBwaWVjZXMuYzo5MQorKwkubG9jIDEgOTEgMAorKy5MVkwyODoKKysJIyBwaWVjZXMuYzo5 MgorKwkubG9jIDEgOTIgMAorKwltb3ZsCSVlYngsICglZXNwKQorKwljYWxsCWYxCisrCSMgcGll Y2VzLmM6OTMKKysJLmxvYyAxIDkzIDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKysJY2FsbAlmMgor KwkjIHBpZWNlcy5jOjk0CisrCS5sb2MgMSA5NCAwCisrCW1vdmwJJWVieCwgKCVlc3ApCisrCWNh bGwJZjMKKysJIyBwaWVjZXMuYzo5NQorKwkubG9jIDEgOTUgMAorKwltb3ZsCSVlYngsICglZXNw KQorKwljYWxsCWY0CisrCSMgcGllY2VzLmM6OTYKKysJLmxvYyAxIDk2IDAKKysJbW92bAklZWJ4 LCAoJWVzcCkKKysJY2FsbAlmNQorKwkjIHBpZWNlcy5jOjk4CisrCS5sb2MgMSA5OCAwCisrCWFk ZGwJJDQsICVlc3AKKysJeG9ybAklZWF4LCAlZWF4CisrCXBvcGwJJWVieAorKy5MQ0ZJNDI6Cisr LkxWTDI5OgorKwlwb3BsCSVlYnAKKysuTENGSTQzOgorKwlyZXQKKysuTEZFNjoKKysJLnNpemUJ bWFpbiwgLi1tYWluCisrI0FQUAorKwkuc2VjdGlvbgkuZGVidWdfZnJhbWUsIiIsQHByb2diaXRz CisrLkxmcmFtZTA6CisrCS5sb25nCS5MRUNJRTAtLkxTQ0lFMAkjIExlbmd0aCBvZiBDb21tb24g SW5mb3JtYXRpb24gRW50cnkKKysuTFNDSUUwOgorKwkubG9uZwkweGZmZmZmZmZmCSMgQ0lFIElk ZW50aWZpZXIgVGFnCisrCS5ieXRlCTB4MQkjIENJRSBWZXJzaW9uCisrCS5hc2NpaSAiXDAiCSMg Q0lFIEF1Z21lbnRhdGlvbgorKwkudWxlYjEyOCAweDEJIyBDSUUgQ29kZSBBbGlnbm1lbnQgRmFj dG9yCisrCS5zbGViMTI4IC00CSMgQ0lFIERhdGEgQWxpZ25tZW50IEZhY3RvcgorKwkuYnl0ZQkw eDgJIyBDSUUgUkEgQ29sdW1uCisrCS5ieXRlCTB4YwkjIERXX0NGQV9kZWZfY2ZhCisrCS51bGVi MTI4IDB4NAorKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHg4OAkjIERXX0NGQV9vZmZzZXQsIGNv bHVtbiAweDgKKysJLnVsZWIxMjggMHgxCisrCS5hbGlnbiA0CisrLkxFQ0lFMDoKKysuTFNGREUw OgorKwkubG9uZwkuTEVGREUwLS5MQVNGREUwCSMgRkRFIExlbmd0aAorKy5MQVNGREUwOgorKwku bG9uZwkuTGZyYW1lMAkjIEZERSBDSUUgb2Zmc2V0CisrCS5sb25nCS5MRkIwCSMgRkRFIGluaXRp YWwgbG9jYXRpb24KKysJLmxvbmcJLkxGRTAtLkxGQjAJIyBGREUgYWRkcmVzcyByYW5nZQorKwku Ynl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMC0uTEZCMAorKwku Ynl0ZQkweGUJIyBEV19DRkFfZGVmX2NmYV9vZmZzZXQKKysJLnVsZWIxMjggMHg4CisrCS5ieXRl CTB4ODUJIyBEV19DRkFfb2Zmc2V0LCBjb2x1bW4gMHg1CisrCS51bGViMTI4IDB4MgorKwkuYnl0 ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMS0uTENGSTAKKysJLmJ5 dGUJMHhkCSMgRFdfQ0ZBX2RlZl9jZmFfcmVnaXN0ZXIKKysJLnVsZWIxMjggMHg1CisrCS5ieXRl CTB4NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkkyLS5MQ0ZJMQorKwkuYnl0 ZQkweGM1CSMgRFdfQ0ZBX3Jlc3RvcmUsIGNvbHVtbiAweDUKKysJLmJ5dGUJMHhjCSMgRFdfQ0ZB X2RlZl9jZmEKKysJLnVsZWIxMjggMHg0CisrCS51bGViMTI4IDB4NAorKwkuYWxpZ24gNAorKy5M RUZERTA6CisrLkxTRkRFMjoKKysJLmxvbmcJLkxFRkRFMi0uTEFTRkRFMgkjIEZERSBMZW5ndGgK KysuTEFTRkRFMjoKKysJLmxvbmcJLkxmcmFtZTAJIyBGREUgQ0lFIG9mZnNldAorKwkubG9uZwku TEZCMQkjIEZERSBpbml0aWFsIGxvY2F0aW9uCisrCS5sb25nCS5MRkUxLS5MRkIxCSMgRkRFIGFk ZHJlc3MgcmFuZ2UKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwku TENGSTMtLkxGQjEKKysJLmJ5dGUJMHhlCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0CisrCS51bGVi MTI4IDB4OAorKwkuYnl0ZQkweDg1CSMgRFdfQ0ZBX29mZnNldCwgY29sdW1uIDB4NQorKwkudWxl YjEyOCAweDIKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENG STQtLkxDRkkzCisrCS5ieXRlCTB4ZAkjIERXX0NGQV9kZWZfY2ZhX3JlZ2lzdGVyCisrCS51bGVi MTI4IDB4NQorKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJ Ni0uTENGSTQKKysJLmJ5dGUJMHg4NgkjIERXX0NGQV9vZmZzZXQsIGNvbHVtbiAweDYKKysJLnVs ZWIxMjggMHgzCisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxD Rkk3LS5MQ0ZJNgorKwkuYnl0ZQkweDgzCSMgRFdfQ0ZBX29mZnNldCwgY29sdW1uIDB4MworKwku dWxlYjEyOCAweDQKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwku TENGSTgtLkxDRkk3CisrCS5ieXRlCTB4ZAkjIERXX0NGQV9kZWZfY2ZhX3JlZ2lzdGVyCisrCS51 bGViMTI4IDB4NAorKwkuYnl0ZQkweGM2CSMgRFdfQ0ZBX3Jlc3RvcmUsIGNvbHVtbiAweDYKKysJ LmJ5dGUJMHhjMwkjIERXX0NGQV9yZXN0b3JlLCBjb2x1bW4gMHgzCisrCS5ieXRlCTB4NAkjIERX X0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkk5LS5MQ0ZJOAorKwkuYnl0ZQkweGM1CSMg RFdfQ0ZBX3Jlc3RvcmUsIGNvbHVtbiAweDUKKysJLmJ5dGUJMHhlCSMgRFdfQ0ZBX2RlZl9jZmFf b2Zmc2V0CisrCS51bGViMTI4IDB4NAorKwkuYWxpZ24gNAorKy5MRUZERTI6CisrLkxTRkRFNDoK KysJLmxvbmcJLkxFRkRFNC0uTEFTRkRFNAkjIEZERSBMZW5ndGgKKysuTEFTRkRFNDoKKysJLmxv bmcJLkxmcmFtZTAJIyBGREUgQ0lFIG9mZnNldAorKwkubG9uZwkuTEZCMgkjIEZERSBpbml0aWFs IGxvY2F0aW9uCisrCS5sb25nCS5MRkUyLS5MRkIyCSMgRkRFIGFkZHJlc3MgcmFuZ2UKKysJLmJ5 dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTEwLS5MRkIyCisrCS5i eXRlCTB4ZQkjIERXX0NGQV9kZWZfY2ZhX29mZnNldAorKwkudWxlYjEyOCAweDgKKysJLmJ5dGUJ MHg4NQkjIERXX0NGQV9vZmZzZXQsIGNvbHVtbiAweDUKKysJLnVsZWIxMjggMHgyCisrCS5ieXRl CTB4NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkkxMS0uTENGSTEwCisrCS5i eXRlCTB4ZAkjIERXX0NGQV9kZWZfY2ZhX3JlZ2lzdGVyCisrCS51bGViMTI4IDB4NQorKwkuYnl0 ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMTMtLkxDRkkxMQorKwku Ynl0ZQkweDg2CSMgRFdfQ0ZBX29mZnNldCwgY29sdW1uIDB4NgorKwkudWxlYjEyOCAweDMKKysJ LmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTE0LS5MQ0ZJMTMK KysJLmJ5dGUJMHg4MwkjIERXX0NGQV9vZmZzZXQsIGNvbHVtbiAweDMKKysJLnVsZWIxMjggMHg0 CisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkkxNS0uTENG STE0CisrCS5ieXRlCTB4ZAkjIERXX0NGQV9kZWZfY2ZhX3JlZ2lzdGVyCisrCS51bGViMTI4IDB4 NAorKwkuYnl0ZQkweGM2CSMgRFdfQ0ZBX3Jlc3RvcmUsIGNvbHVtbiAweDYKKysJLmJ5dGUJMHhj MwkjIERXX0NGQV9yZXN0b3JlLCBjb2x1bW4gMHgzCisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZh bmNlX2xvYzQKKysJLmxvbmcJLkxDRkkxNi0uTENGSTE1CisrCS5ieXRlCTB4YzUJIyBEV19DRkFf cmVzdG9yZSwgY29sdW1uIDB4NQorKwkuYnl0ZQkweGUJIyBEV19DRkFfZGVmX2NmYV9vZmZzZXQK KysJLnVsZWIxMjggMHg0CisrCS5hbGlnbiA0CisrLkxFRkRFNDoKKysuTFNGREU2OgorKwkubG9u ZwkuTEVGREU2LS5MQVNGREU2CSMgRkRFIExlbmd0aAorKy5MQVNGREU2OgorKwkubG9uZwkuTGZy YW1lMAkjIEZERSBDSUUgb2Zmc2V0CisrCS5sb25nCS5MRkIzCSMgRkRFIGluaXRpYWwgbG9jYXRp b24KKysJLmxvbmcJLkxGRTMtLkxGQjMJIyBGREUgYWRkcmVzcyByYW5nZQorKwkuYnl0ZQkweDQJ IyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMTctLkxGQjMKKysJLmJ5dGUJMHhl CSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0CisrCS51bGViMTI4IDB4OAorKwkuYnl0ZQkweDg1CSMg RFdfQ0ZBX29mZnNldCwgY29sdW1uIDB4NQorKwkudWxlYjEyOCAweDIKKysJLmJ5dGUJMHg0CSMg RFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTE4LS5MQ0ZJMTcKKysJLmJ5dGUJMHhk CSMgRFdfQ0ZBX2RlZl9jZmFfcmVnaXN0ZXIKKysJLnVsZWIxMjggMHg1CisrCS5ieXRlCTB4NAkj IERXX0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkkyMC0uTENGSTE4CisrCS5ieXRlCTB4 ODYJIyBEV19DRkFfb2Zmc2V0LCBjb2x1bW4gMHg2CisrCS51bGViMTI4IDB4MworKwkuYnl0ZQkw eDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMjEtLkxDRkkyMAorKwkuYnl0 ZQkweDgzCSMgRFdfQ0ZBX29mZnNldCwgY29sdW1uIDB4MworKwkudWxlYjEyOCAweDQKKysJLmJ5 dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTIyLS5MQ0ZJMjEKKysJ LmJ5dGUJMHhkCSMgRFdfQ0ZBX2RlZl9jZmFfcmVnaXN0ZXIKKysJLnVsZWIxMjggMHg0CisrCS5i eXRlCTB4YzYJIyBEV19DRkFfcmVzdG9yZSwgY29sdW1uIDB4NgorKwkuYnl0ZQkweGMzCSMgRFdf Q0ZBX3Jlc3RvcmUsIGNvbHVtbiAweDMKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9j NAorKwkubG9uZwkuTENGSTIzLS5MQ0ZJMjIKKysJLmJ5dGUJMHhjNQkjIERXX0NGQV9yZXN0b3Jl LCBjb2x1bW4gMHg1CisrCS5ieXRlCTB4ZQkjIERXX0NGQV9kZWZfY2ZhX29mZnNldAorKwkudWxl YjEyOCAweDQKKysJLmFsaWduIDQKKysuTEVGREU2OgorKy5MU0ZERTg6CisrCS5sb25nCS5MRUZE RTgtLkxBU0ZERTgJIyBGREUgTGVuZ3RoCisrLkxBU0ZERTg6CisrCS5sb25nCS5MZnJhbWUwCSMg RkRFIENJRSBvZmZzZXQKKysJLmxvbmcJLkxGQjQJIyBGREUgaW5pdGlhbCBsb2NhdGlvbgorKwku bG9uZwkuTEZFNC0uTEZCNAkjIEZERSBhZGRyZXNzIHJhbmdlCisrCS5ieXRlCTB4NAkjIERXX0NG QV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkkyNC0uTEZCNAorKwkuYnl0ZQkweGUJIyBEV19D RkFfZGVmX2NmYV9vZmZzZXQKKysJLnVsZWIxMjggMHg4CisrCS5ieXRlCTB4ODUJIyBEV19DRkFf b2Zmc2V0LCBjb2x1bW4gMHg1CisrCS51bGViMTI4IDB4MgorKwkuYnl0ZQkweDQJIyBEV19DRkFf YWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMjUtLkxDRkkyNAorKwkuYnl0ZQkweGQJIyBEV19D RkFfZGVmX2NmYV9yZWdpc3RlcgorKwkudWxlYjEyOCAweDUKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZB X2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTI3LS5MQ0ZJMjUKKysJLmJ5dGUJMHg4NgkjIERX X0NGQV9vZmZzZXQsIGNvbHVtbiAweDYKKysJLnVsZWIxMjggMHgzCisrCS5ieXRlCTB4NAkjIERX X0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkkyOC0uTENGSTI3CisrCS5ieXRlCTB4ODMJ IyBEV19DRkFfb2Zmc2V0LCBjb2x1bW4gMHgzCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDQJ IyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMjktLkxDRkkyOAorKwkuYnl0ZQkw eGQJIyBEV19DRkFfZGVmX2NmYV9yZWdpc3RlcgorKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHhj NgkjIERXX0NGQV9yZXN0b3JlLCBjb2x1bW4gMHg2CisrCS5ieXRlCTB4YzMJIyBEV19DRkFfcmVz dG9yZSwgY29sdW1uIDB4MworKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5s b25nCS5MQ0ZJMzAtLkxDRkkyOQorKwkuYnl0ZQkweGM1CSMgRFdfQ0ZBX3Jlc3RvcmUsIGNvbHVt biAweDUKKysJLmJ5dGUJMHhlCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0CisrCS51bGViMTI4IDB4 NAorKwkuYWxpZ24gNAorKy5MRUZERTg6CisrLkxTRkRFMTA6CisrCS5sb25nCS5MRUZERTEwLS5M QVNGREUxMAkjIEZERSBMZW5ndGgKKysuTEFTRkRFMTA6CisrCS5sb25nCS5MZnJhbWUwCSMgRkRF IENJRSBvZmZzZXQKKysJLmxvbmcJLkxGQjUJIyBGREUgaW5pdGlhbCBsb2NhdGlvbgorKwkubG9u ZwkuTEZFNS0uTEZCNQkjIEZERSBhZGRyZXNzIHJhbmdlCisrCS5ieXRlCTB4NAkjIERXX0NGQV9h ZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkkzMS0uTEZCNQorKwkuYnl0ZQkweGUJIyBEV19DRkFf ZGVmX2NmYV9vZmZzZXQKKysJLnVsZWIxMjggMHg4CisrCS5ieXRlCTB4ODUJIyBEV19DRkFfb2Zm c2V0LCBjb2x1bW4gMHg1CisrCS51bGViMTI4IDB4MgorKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2 YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMzItLkxDRkkzMQorKwkuYnl0ZQkweGQJIyBEV19DRkFf ZGVmX2NmYV9yZWdpc3RlcgorKwkudWxlYjEyOCAweDUKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2Fk dmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTM0LS5MQ0ZJMzIKKysJLmJ5dGUJMHg4NgkjIERXX0NG QV9vZmZzZXQsIGNvbHVtbiAweDYKKysJLnVsZWIxMjggMHgzCisrCS5ieXRlCTB4NAkjIERXX0NG QV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkkzNS0uTENGSTM0CisrCS5ieXRlCTB4ODMJIyBE V19DRkFfb2Zmc2V0LCBjb2x1bW4gMHgzCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDQJIyBE V19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMzYtLkxDRkkzNQorKwkuYnl0ZQkweGQJ IyBEV19DRkFfZGVmX2NmYV9yZWdpc3RlcgorKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHhjNgkj IERXX0NGQV9yZXN0b3JlLCBjb2x1bW4gMHg2CisrCS5ieXRlCTB4YzMJIyBEV19DRkFfcmVzdG9y ZSwgY29sdW1uIDB4MworKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25n CS5MQ0ZJMzctLkxDRkkzNgorKwkuYnl0ZQkweGM1CSMgRFdfQ0ZBX3Jlc3RvcmUsIGNvbHVtbiAw eDUKKysJLmJ5dGUJMHhlCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0CisrCS51bGViMTI4IDB4NAor KwkuYWxpZ24gNAorKy5MRUZERTEwOgorKy5MU0ZERTEyOgorKwkubG9uZwkuTEVGREUxMi0uTEFT RkRFMTIJIyBGREUgTGVuZ3RoCisrLkxBU0ZERTEyOgorKwkubG9uZwkuTGZyYW1lMAkjIEZERSBD SUUgb2Zmc2V0CisrCS5sb25nCS5MRkI2CSMgRkRFIGluaXRpYWwgbG9jYXRpb24KKysJLmxvbmcJ LkxGRTYtLkxGQjYJIyBGREUgYWRkcmVzcyByYW5nZQorKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2 YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMzgtLkxGQjYKKysJLmJ5dGUJMHhlCSMgRFdfQ0ZBX2Rl Zl9jZmFfb2Zmc2V0CisrCS51bGViMTI4IDB4OAorKwkuYnl0ZQkweDg1CSMgRFdfQ0ZBX29mZnNl dCwgY29sdW1uIDB4NQorKwkudWxlYjEyOCAweDIKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFu Y2VfbG9jNAorKwkubG9uZwkuTENGSTM5LS5MQ0ZJMzgKKysJLmJ5dGUJMHhkCSMgRFdfQ0ZBX2Rl Zl9jZmFfcmVnaXN0ZXIKKysJLnVsZWIxMjggMHg1CisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZh bmNlX2xvYzQKKysJLmxvbmcJLkxDRkk0MC0uTENGSTM5CisrCS5ieXRlCTB4ODMJIyBEV19DRkFf b2Zmc2V0LCBjb2x1bW4gMHgzCisrCS51bGViMTI4IDB4MworKwkuYnl0ZQkweDQJIyBEV19DRkFf YWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJNDItLkxDRkk0MAorKwkuYnl0ZQkweGMzCSMgRFdf Q0ZBX3Jlc3RvcmUsIGNvbHVtbiAweDMKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9j NAorKwkubG9uZwkuTENGSTQzLS5MQ0ZJNDIKKysJLmJ5dGUJMHhjNQkjIERXX0NGQV9yZXN0b3Jl LCBjb2x1bW4gMHg1CisrCS5ieXRlCTB4YwkjIERXX0NGQV9kZWZfY2ZhCisrCS51bGViMTI4IDB4 NAorKwkudWxlYjEyOCAweDQKKysJLmFsaWduIDQKKysuTEVGREUxMjoKKysjTk9fQVBQCisrCS50 ZXh0CisrLkxldGV4dDA6CisrCS5zZWN0aW9uCS5kZWJ1Z19sb2MsIiIsQHByb2diaXRzCisrLkxk ZWJ1Z19sb2MwOgorKy5MTFNUMDoKKysJLmxvbmcJLkxGQjAtLkx0ZXh0MAkjIExvY2F0aW9uIGxp c3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMCkKKysJLmxvbmcJLkxDRkkwLS5MdGV4dDAJIyBMb2Nh dGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QwKQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24g ZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwkuc2xlYjEyOCA0 CisrCS5sb25nCS5MQ0ZJMC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgq LkxMU1QwKQorKwkubG9uZwkuTENGSTEtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJl c3MgKCouTExTVDApCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJ LmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkkxLS5M dGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDApCisrCS5sb25nCS5M Q0ZJMi0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMCkKKysJLnZh bHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDc1CSMgRFdfT1Bf YnJlZzUKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTItLkx0ZXh0MAkjIExvY2F0aW9uIGxp c3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMCkKKysJLmxvbmcJLkxGRTAtLkx0ZXh0MAkjIExvY2F0 aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDApCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBl eHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDQK KysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUMCkKKysJ LmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBlbmQgKCouTExTVDApCisrLkxMU1Qx OgorKwkubG9uZwkuTEZCMS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgq LkxMU1QxKQorKwkubG9uZwkuTENGSTMtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJl c3MgKCouTExTVDEpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJ LmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDQKKysJLmxvbmcJLkxDRkkzLS5M dGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDEpCisrCS5sb25nCS5M Q0ZJNC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMSkKKysJLnZh bHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDc0CSMgRFdfT1Bf YnJlZzQKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTQtLkx0ZXh0MAkjIExvY2F0aW9uIGxp c3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMSkKKysJLmxvbmcJLkxDRkk4LS5MdGV4dDAJIyBMb2Nh dGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QxKQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24g ZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzUJIyBEV19PUF9icmVnNQorKwkuc2xlYjEyOCA4 CisrCS5sb25nCS5MQ0ZJOC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgq LkxMU1QxKQorKwkubG9uZwkuTENGSTktLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJl c3MgKCouTExTVDEpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJ LmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkk5LS5M dGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDEpCisrCS5sb25nCS5M RkUxLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QxKQorKwkudmFs dWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9i cmVnNAorKwkuc2xlYjEyOCA0CisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3Ig YmVnaW4gKCouTExTVDEpCisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5k ICgqLkxMU1QxKQorKy5MTFNUMjoKKysJLmxvbmcJLkxWTDEtLkx0ZXh0MAkjIExvY2F0aW9uIGxp c3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMikKKysJLmxvbmcJLkxWTDItLkx0ZXh0MAkjIExvY2F0 aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDIpCisrCS52YWx1ZQkweDYJIyBMb2NhdGlvbiBl eHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHgzNAkjIERXX09QX2xpdDQKKysJLmJ5dGUJMHg5Zgkj IERXX09QX3N0YWNrX3ZhbHVlCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEy OCAweDQKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkubG9u ZwkuTFZMMi0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QyKQor KwkubG9uZwkuTFZMMy0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNU MikKKysJLnZhbHVlCTB4YwkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDM0 CSMgRFdfT1BfbGl0NAorKwkuYnl0ZQkweDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKKysJLmJ5dGUJ MHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDkxCSMgRFdfT1Bf ZmJyZWcKKysJLnNsZWIxMjggMAorKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorKwkuYnl0ZQkw eDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg2CisrCS5ieXRlCTB4OWYJIyBE V19PUF9zdGFja192YWx1ZQorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjgg MHg0CisrCS5sb25nCS5MVkwzLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3Mg KCouTExTVDIpCisrCS5sb25nCS5MVkw0LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRy ZXNzICgqLkxMU1QyKQorKwkudmFsdWUJMHhiCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisr CS5ieXRlCTB4NTMJIyBEV19PUF9yZWczCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwku dWxlYjEyOCAweDQKKysJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisrCS5zbGViMTI4IDAKKysJ LmJ5dGUJMHg2CSMgRFdfT1BfZGVyZWYKKysJLmJ5dGUJMHgyMwkjIERXX09QX3BsdXNfdWNvbnN0 CisrCS51bGViMTI4IDB4NgorKwkuYnl0ZQkweDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKKysJLmJ5 dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkubG9uZwkuTFZMNC0uTHRl eHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QyKQorKwkubG9uZwkuTFZM NS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMikKKysJLnZhbHVl CTB4NgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDUzCSMgRFdfT1BfcmVn MworKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTB4 NTYJIyBEV19PUF9yZWc2CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAw eDQKKysJLmxvbmcJLkxWTDUtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAo Ki5MTFNUMikKKysJLmxvbmcJLkxWTDYtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJl c3MgKCouTExTVDIpCisrCS52YWx1ZQkweDUJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJ LmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDU2CSMg RFdfT1BfcmVnNgorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0Cisr CS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgYmVnaW4gKCouTExTVDIpCisrCS5s b25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxMU1QyKQorKy5MTFNUMzoK KysJLmxvbmcJLkxGQjItLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5M TFNUMykKKysJLmxvbmcJLkxDRkkxMC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVz cyAoKi5MTFNUMykKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwku Ynl0ZQkweDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIxMjggNAorKwkubG9uZwkuTENGSTEwLS5M dGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDMpCisrCS5sb25nCS5M Q0ZJMTEtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDMpCisrCS52 YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09Q X2JyZWc0CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkkxMS0uTHRleHQwCSMgTG9jYXRpb24g bGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QzKQorKwkubG9uZwkuTENGSTE1LS5MdGV4dDAJIyBM b2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QzKQorKwkudmFsdWUJMHgyCSMgTG9jYXRp b24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzUJIyBEV19PUF9icmVnNQorKwkuc2xlYjEy OCA4CisrCS5sb25nCS5MQ0ZJMTUtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVz cyAoKi5MTFNUMykKKysJLmxvbmcJLkxDRkkxNi0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQg YWRkcmVzcyAoKi5MTFNUMykKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6 ZQorKwkuYnl0ZQkweDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENG STE2LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDMpCisrCS5s b25nCS5MRkUyLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QzKQor KwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBE V19PUF9icmVnNAorKwkuc2xlYjEyOCA0CisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1p bmF0b3IgYmVnaW4gKCouTExTVDMpCisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0 b3IgZW5kICgqLkxMU1QzKQorKy5MTFNUNDoKKysJLmxvbmcJLkxWTDctLkx0ZXh0MAkjIExvY2F0 aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNCkKKysJLmxvbmcJLkxWTDgtLkx0ZXh0MAkj IExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDQpCisrCS52YWx1ZQkweDYJIyBMb2Nh dGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHgzNAkjIERXX09QX2xpdDQKKysJLmJ5dGUJ MHg5ZgkjIERXX09QX3N0YWNrX3ZhbHVlCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwku dWxlYjEyOCAweDQKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAor KwkubG9uZwkuTFZMOC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxM U1Q0KQorKwkubG9uZwkuTFZMOS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAo Ki5MTFNUNCkKKysJLnZhbHVlCTB4YwkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0 ZQkweDM0CSMgRFdfT1BfbGl0NAorKwkuYnl0ZQkweDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKKysJ LmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDkxCSMg RFdfT1BfZmJyZWcKKysJLnNsZWIxMjggMAorKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorKwku Ynl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg2CisrCS5ieXRlCTB4 OWYJIyBEV19PUF9zdGFja192YWx1ZQorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVs ZWIxMjggMHg0CisrCS5sb25nCS5MVkw5LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFk ZHJlc3MgKCouTExTVDQpCisrCS5sb25nCS5MVkwxMC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBl bmQgYWRkcmVzcyAoKi5MTFNUNCkKKysJLnZhbHVlCTB4YgkjIExvY2F0aW9uIGV4cHJlc3Npb24g c2l6ZQorKwkuYnl0ZQkweDUzCSMgRFdfT1BfcmVnMworKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGll Y2UKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwkuc2xlYjEy OCAwCisrCS5ieXRlCTB4NgkjIERXX09QX2RlcmVmCisrCS5ieXRlCTB4MjMJIyBEV19PUF9wbHVz X3Vjb25zdAorKwkudWxlYjEyOCAweDYKKysJLmJ5dGUJMHg5ZgkjIERXX09QX3N0YWNrX3ZhbHVl CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJLmxvbmcJLkxW TDEwLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDQpCisrCS5s b25nCS5MVkwxMS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUNCkK KysJLnZhbHVlCTB4NgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDUzCSMg RFdfT1BfcmVnMworKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0Cisr CS5ieXRlCTB4NTYJIyBEV19PUF9yZWc2CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwku dWxlYjEyOCAweDQKKysJLmxvbmcJLkxWTDExLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2lu IGFkZHJlc3MgKCouTExTVDQpCisrCS5sb25nCS5MVkwxMi0uTHRleHQwCSMgTG9jYXRpb24gbGlz dCBlbmQgYWRkcmVzcyAoKi5MTFNUNCkKKysJLnZhbHVlCTB4NQkjIExvY2F0aW9uIGV4cHJlc3Np b24gc2l6ZQorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5i eXRlCTB4NTYJIyBEV19PUF9yZWc2CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxl YjEyOCAweDQKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5M TFNUNCkKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBlbmQgKCouTExTVDQp CisrLkxMU1Q1OgorKwkubG9uZwkuTEZCMy0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBh ZGRyZXNzICgqLkxMU1Q1KQorKwkubG9uZwkuTENGSTE3LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0 IGVuZCBhZGRyZXNzICgqLkxMU1Q1KQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lv biBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwkuc2xlYjEyOCA0CisrCS5sb25n CS5MQ0ZJMTctLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNSkK KysJLmxvbmcJLkxDRkkxOC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5M TFNUNSkKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkw eDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTE4LS5MdGV4dDAJ IyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDUpCisrCS5sb25nCS5MQ0ZJMjIt Lkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDUpCisrCS52YWx1ZQkw eDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NQkjIERXX09QX2JyZWc1 CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkkyMi0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBi ZWdpbiBhZGRyZXNzICgqLkxMU1Q1KQorKwkubG9uZwkuTENGSTIzLS5MdGV4dDAJIyBMb2NhdGlv biBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q1KQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhw cmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwkuc2xlYjEyOCA4Cisr CS5sb25nCS5MQ0ZJMjMtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5M TFNUNSkKKysJLmxvbmcJLkxGRTMtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3Mg KCouTExTVDUpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5 dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDQKKysJLmxvbmcJMAkjIExvY2F0aW9u IGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUNSkKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxp c3QgdGVybWluYXRvciBlbmQgKCouTExTVDUpCisrLkxMU1Q2OgorKwkubG9uZwkuTFZMMTMtLkx0 ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNikKKysJLmxvbmcJLkxW TDE0LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q2KQorKwkudmFs dWUJMHhhCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4OWQJIyBEV19PUF9i aXRfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS51bGViMTI4IDAKKysJLmJ5dGUJMHgzNAkjIERX X09QX2xpdDQKKysJLmJ5dGUJMHg5ZgkjIERXX09QX3N0YWNrX3ZhbHVlCisrCS5ieXRlCTB4OWQJ IyBEV19PUF9iaXRfcGllY2UKKysJLnVsZWIxMjggMHhjCisrCS51bGViMTI4IDAKKysJLmJ5dGUJ MHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4MgorKwkubG9uZwkuTFZMMTQtLkx0ZXh0 MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNikKKysJLmxvbmcJLkxWTDE1 LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q2KQorKwkudmFsdWUJ MHgxNQkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDlkCSMgRFdfT1BfYml0 X3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkudWxlYjEyOCAwCisrCS5ieXRlCTB4MzQJIyBEV19P UF9saXQ0CisrCS5ieXRlCTB4OWYJIyBEV19PUF9zdGFja192YWx1ZQorKwkuYnl0ZQkweDlkCSMg RFdfT1BfYml0X3BpZWNlCisrCS51bGViMTI4IDB4YworKwkudWxlYjEyOCAwCisrCS5ieXRlCTB4 OTEJIyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAwCisrCS5ieXRlCTB4OTQJIyBEV19PUF9kZXJl Zl9zaXplCisrCS5ieXRlCTB4MgorKwkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKysJ LnVsZWIxMjggMHg2CisrCS5ieXRlCTB4OWYJIyBEV19PUF9zdGFja192YWx1ZQorKwkuYnl0ZQkw eDlkCSMgRFdfT1BfYml0X3BpZWNlCisrCS51bGViMTI4IDB4YworKwkudWxlYjEyOCAwCisrCS5i eXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS51bGViMTI4IDAK KysJLmxvbmcJLkxWTDE1LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCou TExTVDYpCisrCS5sb25nCS5MVkwxNi0xLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRy ZXNzICgqLkxMU1Q2KQorKwkudmFsdWUJMHgxNAkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQor KwkuYnl0ZQkweDlkCSMgRFdfT1BfYml0X3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkudWxlYjEy OCAwCisrCS5ieXRlCTB4NTIJIyBEV19PUF9yZWcyCisrCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRf cGllY2UKKysJLnVsZWIxMjggMHhjCisrCS51bGViMTI4IDAKKysJLmJ5dGUJMHg5MQkjIERXX09Q X2ZicmVnCisrCS5zbGViMTI4IDAKKysJLmJ5dGUJMHg5NAkjIERXX09QX2RlcmVmX3NpemUKKysJ LmJ5dGUJMHgyCisrCS5ieXRlCTB4MjMJIyBEV19PUF9wbHVzX3Vjb25zdAorKwkudWxlYjEyOCAw eDcKKysJLmJ5dGUJMHg5ZgkjIERXX09QX3N0YWNrX3ZhbHVlCisrCS5ieXRlCTB4OWQJIyBEV19P UF9iaXRfcGllY2UKKysJLnVsZWIxMjggMHhjCisrCS51bGViMTI4IDAKKysJLmJ5dGUJMHg5ZAkj IERXX09QX2JpdF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJLnVsZWIxMjggMAorKwkubG9uZwku TFZMMTYtMS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q2KQor KwkubG9uZwkuTFZMMTctLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExT VDYpCisrCS52YWx1ZQkweDE0CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4 OWQJIyBEV19PUF9iaXRfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS51bGViMTI4IDAKKysJLmJ5 dGUJMHg1NgkjIERXX09QX3JlZzYKKysJLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9waWVjZQorKwku dWxlYjEyOCAweGMKKysJLnVsZWIxMjggMAorKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKysJ LnNsZWIxMjggMAorKwkuYnl0ZQkweDk0CSMgRFdfT1BfZGVyZWZfc2l6ZQorKwkuYnl0ZQkweDIK KysJLmJ5dGUJMHgyMwkjIERXX09QX3BsdXNfdWNvbnN0CisrCS51bGViMTI4IDB4NworKwkuYnl0 ZQkweDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKKysJLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9waWVj ZQorKwkudWxlYjEyOCAweGMKKysJLnVsZWIxMjggMAorKwkuYnl0ZQkweDlkCSMgRFdfT1BfYml0 X3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkudWxlYjEyOCAwCisrCS5sb25nCS5MVkwxNy0uTHRl eHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q2KQorKwkubG9uZwkuTEZF My0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUNikKKysJLnZhbHVl CTB4ZgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGll Y2UKKysJLnVsZWIxMjggMHgyCisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwkuc2xlYjEy OCAwCisrCS5ieXRlCTB4OTQJIyBEV19PUF9kZXJlZl9zaXplCisrCS5ieXRlCTB4MgorKwkuYnl0 ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg3CisrCS5ieXRlCTB4OWYJ IyBEV19PUF9zdGFja192YWx1ZQorKwkuYnl0ZQkweDlkCSMgRFdfT1BfYml0X3BpZWNlCisrCS51 bGViMTI4IDB4YworKwkudWxlYjEyOCAwCisrCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UK KysJLnVsZWIxMjggMHg0CisrCS51bGViMTI4IDAKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3Qg dGVybWluYXRvciBiZWdpbiAoKi5MTFNUNikKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVy bWluYXRvciBlbmQgKCouTExTVDYpCisrLkxMU1Q3OgorKwkubG9uZwkuTEZCNC0uTHRleHQwCSMg TG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q3KQorKwkubG9uZwkuTENGSTI0LS5M dGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q3KQorKwkudmFsdWUJMHgy CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAor Kwkuc2xlYjEyOCA0CisrCS5sb25nCS5MQ0ZJMjQtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVn aW4gYWRkcmVzcyAoKi5MTFNUNykKKysJLmxvbmcJLkxDRkkyNS0uTHRleHQwCSMgTG9jYXRpb24g bGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUNykKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJl c3Npb24gc2l6ZQorKwkuYnl0ZQkweDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIxMjggOAorKwku bG9uZwkuTENGSTI1LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExT VDcpCisrCS5sb25nCS5MQ0ZJMjktLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3Mg KCouTExTVDcpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5 dGUJMHg3NQkjIERXX09QX2JyZWc1CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkkyOS0uTHRl eHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q3KQorKwkubG9uZwkuTENG STMwLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q3KQorKwkudmFs dWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9i cmVnNAorKwkuc2xlYjEyOCA4CisrCS5sb25nCS5MQ0ZJMzAtLkx0ZXh0MAkjIExvY2F0aW9uIGxp c3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNykKKysJLmxvbmcJLkxGRTQtLkx0ZXh0MAkjIExvY2F0 aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDcpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBl eHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDQK KysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUNykKKysJ LmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBlbmQgKCouTExTVDcpCisrLkxMU1Q4 OgorKwkubG9uZwkuTFZMMTktLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAo Ki5MTFNUOCkKKysJLmxvbmcJLkxWTDIwLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRy ZXNzICgqLkxMU1Q4KQorKwkudmFsdWUJMHg4CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisr CS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAwCisrCS5ieXRlCTB4OTMJIyBE V19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisr CS5zbGViMTI4IDAKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAor KwkubG9uZwkuTFZMMjAtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5M TFNUOCkKKysJLmxvbmcJLkxWTDIxLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNz ICgqLkxMU1Q4KQorKwkudmFsdWUJMHg2CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5i eXRlCTB4NTMJIyBEV19PUF9yZWczCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxl YjEyOCAweDQKKysJLmJ5dGUJMHg1NgkjIERXX09QX3JlZzYKKysJLmJ5dGUJMHg5MwkjIERXX09Q X3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkubG9uZwkuTFZMMjEtLkx0ZXh0MAkjIExvY2F0aW9u IGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUOCkKKysJLmxvbmcJLkxWTDIyLS5MdGV4dDAJIyBM b2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q4KQorKwkudmFsdWUJMHg1CSMgTG9jYXRp b24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEy OCAweDQKKysJLmJ5dGUJMHg1NgkjIERXX09QX3JlZzYKKysJLmJ5dGUJMHg5MwkjIERXX09QX3Bp ZWNlCisrCS51bGViMTI4IDB4NAorKwkubG9uZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9y IGJlZ2luICgqLkxMU1Q4KQorKwkubG9uZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGVu ZCAoKi5MTFNUOCkKKysuTExTVDk6CisrCS5sb25nCS5MRkI1LS5MdGV4dDAJIyBMb2NhdGlvbiBs aXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDkpCisrCS5sb25nCS5MQ0ZJMzEtLkx0ZXh0MAkjIExv Y2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDkpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlv biBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4 IDQKKysJLmxvbmcJLkxDRkkzMS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNz ICgqLkxMU1Q5KQorKwkubG9uZwkuTENGSTMyLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBh ZGRyZXNzICgqLkxMU1Q5KQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXpl CisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwkuc2xlYjEyOCA4CisrCS5sb25nCS5MQ0ZJ MzItLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUOSkKKysJLmxv bmcJLkxDRkkzNi0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUOSkK KysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDc1CSMg RFdfT1BfYnJlZzUKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTM2LS5MdGV4dDAJIyBMb2Nh dGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDkpCisrCS5sb25nCS5MQ0ZJMzctLkx0ZXh0 MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDkpCisrCS52YWx1ZQkweDIJIyBM b2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5z bGViMTI4IDgKKysJLmxvbmcJLkxDRkkzNy0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBh ZGRyZXNzICgqLkxMU1Q5KQorKwkubG9uZwkuTEZFNS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBl bmQgYWRkcmVzcyAoKi5MTFNUOSkKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24g c2l6ZQorKwkuYnl0ZQkweDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIxMjggNAorKwkubG9uZwkw CSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGJlZ2luICgqLkxMU1Q5KQorKwkubG9uZwkwCSMg TG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGVuZCAoKi5MTFNUOSkKKysuTExTVDEwOgorKwkubG9u ZwkuTFZMMjQtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMTAp CisrCS5sb25nCS5MVkwyNS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5M TFNUMTApCisrCS52YWx1ZQkweDgJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJ MHg5MQkjIERXX09QX2ZicmVnCisrCS5zbGViMTI4IDAKKysJLmJ5dGUJMHg5MwkjIERXX09QX3Bp ZWNlCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKysJLnNsZWIx MjggMAorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5sb25n CS5MVkwyNS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxMCkK KysJLmxvbmcJLkxWTDI2LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxM U1QxMCkKKysJLnZhbHVlCTB4NgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkw eDUzCSMgRFdfT1BfcmVnMworKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjgg MHg0CisrCS5ieXRlCTB4NTYJIyBEV19PUF9yZWc2CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVj ZQorKwkudWxlYjEyOCAweDQKKysJLmxvbmcJLkxWTDI2LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0 IGJlZ2luIGFkZHJlc3MgKCouTExTVDEwKQorKwkubG9uZwkuTFZMMjctLkx0ZXh0MAkjIExvY2F0 aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDEwKQorKwkudmFsdWUJMHg1CSMgTG9jYXRpb24g ZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAw eDQKKysJLmJ5dGUJMHg1NgkjIERXX09QX3JlZzYKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNl CisrCS51bGViMTI4IDB4NAorKwkubG9uZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGJl Z2luICgqLkxMU1QxMCkKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBlbmQg KCouTExTVDEwKQorKy5MTFNUMTE6CisrCS5sb25nCS5MRkI2LS5MdGV4dDAJIyBMb2NhdGlvbiBs aXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDExKQorKwkubG9uZwkuTENGSTM4LS5MdGV4dDAJIyBM b2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QxMSkKKysJLnZhbHVlCTB4MgkjIExvY2F0 aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIx MjggNAorKwkubG9uZwkuTENGSTM4LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJl c3MgKCouTExTVDExKQorKwkubG9uZwkuTENGSTM5LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVu ZCBhZGRyZXNzICgqLkxMU1QxMSkKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24g c2l6ZQorKwkuYnl0ZQkweDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIxMjggOAorKwkubG9uZwku TENGSTM5LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDExKQor KwkubG9uZwkuTENGSTQzLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxM U1QxMSkKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkw eDc1CSMgRFdfT1BfYnJlZzUKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTQzLS5MdGV4dDAJ IyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDExKQorKwkubG9uZwkuTEZFNi0u THRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTEpCisrCS52YWx1ZQkw eDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0 CisrCS5zbGViMTI4IDQKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdp biAoKi5MTFNUMTEpCisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5kICgq LkxMU1QxMSkKKysuTExTVDEyOgorKwkubG9uZwkuTFZMMjgtLkx0ZXh0MAkjIExvY2F0aW9uIGxp c3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMTIpCisrCS5sb25nCS5MVkwyOS0uTHRleHQwCSMgTG9j YXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTIpCisrCS52YWx1ZQkweDEJIyBMb2NhdGlv biBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg1MwkjIERXX09QX3JlZzMKKysJLmxvbmcJMAkj IExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUMTIpCisrCS5sb25nCTAJIyBM b2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxMU1QxMikKKysJLnNlY3Rpb24JLmRlYnVn X2luZm8KKysJLmxvbmcJMHgxZTMJIyBMZW5ndGggb2YgQ29tcGlsYXRpb24gVW5pdCBJbmZvCisr CS52YWx1ZQkweDIJIyBEV0FSRiB2ZXJzaW9uIG51bWJlcgorKwkubG9uZwkuTGRlYnVnX2FiYnJl djAJIyBPZmZzZXQgSW50byBBYmJyZXYuIFNlY3Rpb24KKysJLmJ5dGUJMHg0CSMgUG9pbnRlciBT aXplIChpbiBieXRlcykKKysJLnVsZWIxMjggMHgxCSMgKERJRSAoMHhiKSBEV19UQUdfY29tcGls ZV91bml0KQorKwkubG9uZwkuTEFTRjEJIyBEV19BVF9wcm9kdWNlcjogIkdOVSBDIDQuNi4wIDIw MTAwNTA2IChleHBlcmltZW50YWwpIFt0cnVuayByZXZpc2lvbiAxNTkxMTddIgorKwkuYnl0ZQkw eDEJIyBEV19BVF9sYW5ndWFnZQorKwkubG9uZwkuTEFTRjIJIyBEV19BVF9uYW1lOiAicGllY2Vz LmMiCisrCS5sb25nCS5MQVNGMwkjIERXX0FUX2NvbXBfZGlyOiAiL2hvbWUvdHJvbWV5L2dudS9h cmNoZXIvYXJjaGVyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMiIKKysJLmxvbmcJLkx0ZXh0MAkj IERXX0FUX2xvd19wYworKwkubG9uZwkuTGV0ZXh0MAkjIERXX0FUX2hpZ2hfcGMKKysJLmxvbmcJ LkxkZWJ1Z19saW5lMAkjIERXX0FUX3N0bXRfbGlzdAorKwkudWxlYjEyOCAweDIJIyAoRElFICgw eDI1KSBEV19UQUdfc3RydWN0dXJlX3R5cGUpCisrCS5hc2NpaSAiQVwwIgkjIERXX0FUX25hbWUK KysJLmJ5dGUJMHg4CSMgRFdfQVRfYnl0ZV9zaXplCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xf ZmlsZSAocGllY2VzLmMpCisrCS5ieXRlCTB4MTcJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJ MHg0OAkjIERXX0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHgzCSMgKERJRSAoMHgyZikgRFdfVEFH X21lbWJlcikKKysJLmFzY2lpICJpXDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19B VF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwkuYnl0ZQkweDE3CSMgRFdfQVRfZGVjbF9saW5lCisr CS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisrCS5ieXRlCTB4MgkjIERXX0FUX2RhdGFfbWVtYmVy X2xvY2F0aW9uCisrCS5ieXRlCTB4MjMJIyBEV19PUF9wbHVzX3Vjb25zdAorKwkudWxlYjEyOCAw CisrCS51bGViMTI4IDB4MwkjIChESUUgKDB4M2IpIERXX1RBR19tZW1iZXIpCisrCS5hc2NpaSAi alwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMu YykKKysJLmJ5dGUJMHgxNwkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDQ4CSMgRFdfQVRf dHlwZQorKwkuYnl0ZQkweDIJIyBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbgorKwkuYnl0ZQkw eDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTAJIyBlbmQg b2YgY2hpbGRyZW4gb2YgRElFIDB4MjUKKysJLnVsZWIxMjggMHg0CSMgKERJRSAoMHg0OCkgRFdf VEFHX2Jhc2VfdHlwZSkKKysJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCisrCS5ieXRlCTB4 NQkjIERXX0FUX2VuY29kaW5nCisrCS5hc2NpaSAiaW50XDAiCSMgRFdfQVRfbmFtZQorKwkudWxl YjEyOCAweDIJIyAoRElFICgweDRmKSBEV19UQUdfc3RydWN0dXJlX3R5cGUpCisrCS5hc2NpaSAi QlwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCisrCS5ieXRl CTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRlCTB4MTgJIyBEV19BVF9k ZWNsX2xpbmUKKysJLmxvbmcJMHg3OAkjIERXX0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHg1CSMg KERJRSAoMHg1OSkgRFdfVEFHX21lbWJlcikKKysJLmFzY2lpICJpXDAiCSMgRFdfQVRfbmFtZQor KwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwkuYnl0ZQkweDE4CSMg RFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisrCS5ieXRlCTB4NAkj IERXX0FUX2J5dGVfc2l6ZQorKwkuYnl0ZQkweGMJIyBEV19BVF9iaXRfc2l6ZQorKwkuYnl0ZQkw eDEwCSMgRFdfQVRfYml0X29mZnNldAorKwkuYnl0ZQkweDIJIyBEV19BVF9kYXRhX21lbWJlcl9s b2NhdGlvbgorKwkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMAor KwkudWxlYjEyOCAweDUJIyAoRElFICgweDY4KSBEV19UQUdfbWVtYmVyKQorKwkuYXNjaWkgImpc MCIJIyBEV19BVF9uYW1lCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMp CisrCS5ieXRlCTB4MTgJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJMHg0OAkjIERXX0FUX3R5 cGUKKysJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCisrCS5ieXRlCTB4YwkjIERXX0FUX2Jp dF9zaXplCisrCS5ieXRlCTB4NAkjIERXX0FUX2JpdF9vZmZzZXQKKysJLmJ5dGUJMHgyCSMgRFdf QVRfZGF0YV9tZW1iZXJfbG9jYXRpb24KKysJLmJ5dGUJMHgyMwkjIERXX09QX3BsdXNfdWNvbnN0 CisrCS51bGViMTI4IDAKKysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHg0Zgor KwkudWxlYjEyOCAweDYJIyAoRElFICgweDc4KSBEV19UQUdfc3VicHJvZ3JhbSkKKysJLmJ5dGUJ MHgxCSMgRFdfQVRfZXh0ZXJuYWwKKysJLmFzY2lpICJiYXJcMCIJIyBEV19BVF9uYW1lCisrCS5i eXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRlCTB4MWIJIyBEV19B VF9kZWNsX2xpbmUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfcHJvdG90eXBlZAorKwkubG9uZwkuTEZC MAkjIERXX0FUX2xvd19wYworKwkubG9uZwkuTEZFMAkjIERXX0FUX2hpZ2hfcGMKKysJLmxvbmcJ LkxMU1QwCSMgRFdfQVRfZnJhbWVfYmFzZQorKwkubG9uZwkweDllCSMgRFdfQVRfc2libGluZwor KwkudWxlYjEyOCAweDcJIyAoRElFICgweDkxKSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKysJ LmFzY2lpICJ4XDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUg KHBpZWNlcy5jKQorKwkuYnl0ZQkweDFiCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4NDgJ IyBEV19BVF90eXBlCisrCS5ieXRlCTB4MgkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTB4OTEJ IyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAwCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4g b2YgRElFIDB4NzgKKysJLnVsZWIxMjggMHg4CSMgKERJRSAoMHg5ZSkgRFdfVEFHX3N1YnByb2dy YW0pCisrCS5ieXRlCTB4MQkjIERXX0FUX2V4dGVybmFsCisrCS5hc2NpaSAiZjFcMCIJIyBEV19B VF9uYW1lCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRl CTB4MjEJIyBEV19BVF9kZWNsX2xpbmUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfcHJvdG90eXBlZAor KwkubG9uZwkweDQ4CSMgRFdfQVRfdHlwZQorKwkubG9uZwkuTEZCMQkjIERXX0FUX2xvd19wYwor KwkubG9uZwkuTEZFMQkjIERXX0FUX2hpZ2hfcGMKKysJLmxvbmcJLkxMU1QxCSMgRFdfQVRfZnJh bWVfYmFzZQorKwkubG9uZwkweGQ0CSMgRFdfQVRfc2libGluZworKwkudWxlYjEyOCAweDcJIyAo RElFICgweGJhKSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKysJLmFzY2lpICJrXDAiCSMgRFdf QVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwkuYnl0 ZQkweDIxCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisrCS5i eXRlCTB4MgkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwku c2xlYjEyOCAwCisrCS51bGViMTI4IDB4OQkjIChESUUgKDB4YzYpIERXX1RBR192YXJpYWJsZSkK KysJLmFzY2lpICJhXDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2Zp bGUgKHBpZWNlcy5jKQorKwkuYnl0ZQkweDIzCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4 MjUJIyBEV19BVF90eXBlCisrCS5sb25nCS5MTFNUMgkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRl CTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4OWUKKysJLnVsZWIxMjggMHg4CSMgKERJRSAo MHhkNCkgRFdfVEFHX3N1YnByb2dyYW0pCisrCS5ieXRlCTB4MQkjIERXX0FUX2V4dGVybmFsCisr CS5hc2NpaSAiZjJcMCIJIyBEV19BVF9uYW1lCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmls ZSAocGllY2VzLmMpCisrCS5ieXRlCTB4MmMJIyBEV19BVF9kZWNsX2xpbmUKKysJLmJ5dGUJMHgx CSMgRFdfQVRfcHJvdG90eXBlZAorKwkubG9uZwkweDQ4CSMgRFdfQVRfdHlwZQorKwkubG9uZwku TEZCMgkjIERXX0FUX2xvd19wYworKwkubG9uZwkuTEZFMgkjIERXX0FUX2hpZ2hfcGMKKysJLmxv bmcJLkxMU1QzCSMgRFdfQVRfZnJhbWVfYmFzZQorKwkubG9uZwkweDEwYQkjIERXX0FUX3NpYmxp bmcKKysJLnVsZWIxMjggMHg3CSMgKERJRSAoMHhmMCkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIp CisrCS5hc2NpaSAia1wwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9m aWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHgyYwkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkw eDQ4CSMgRFdfQVRfdHlwZQorKwkuYnl0ZQkweDIJIyBEV19BVF9sb2NhdGlvbgorKwkuYnl0ZQkw eDkxCSMgRFdfT1BfZmJyZWcKKysJLnNsZWIxMjggMAorKwkudWxlYjEyOCAweDkJIyAoRElFICgw eGZjKSBEV19UQUdfdmFyaWFibGUpCisrCS5hc2NpaSAiYVwwIgkjIERXX0FUX25hbWUKKysJLmJ5 dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHgyZQkjIERXX0FU X2RlY2xfbGluZQorKwkubG9uZwkweDEwYQkjIERXX0FUX3R5cGUKKysJLmxvbmcJLkxMU1Q0CSMg RFdfQVRfbG9jYXRpb24KKysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHhkNAor KwkudWxlYjEyOCAweGEJIyAoRElFICgweDEwYSkgRFdfVEFHX2FycmF5X3R5cGUpCisrCS5sb25n CTB4NDgJIyBEV19BVF90eXBlCisrCS5sb25nCTB4MTFhCSMgRFdfQVRfc2libGluZworKwkudWxl YjEyOCAweGIJIyAoRElFICgweDExMykgRFdfVEFHX3N1YnJhbmdlX3R5cGUpCisrCS5sb25nCTB4 MTFhCSMgRFdfQVRfdHlwZQorKwkuYnl0ZQkweDEJIyBEV19BVF91cHBlcl9ib3VuZAorKwkuYnl0 ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDEwYQorKwkudWxlYjEyOCAweGMJIyAoRElF ICgweDExYSkgRFdfVEFHX2Jhc2VfdHlwZSkKKysJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXpl CisrCS5ieXRlCTB4NwkjIERXX0FUX2VuY29kaW5nCisrCS51bGViMTI4IDB4OAkjIChESUUgKDB4 MTFkKSBEV19UQUdfc3VicHJvZ3JhbSkKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZXh0ZXJuYWwKKysJ LmFzY2lpICJmM1wwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxl IChwaWVjZXMuYykKKysJLmJ5dGUJMHgzNwkjIERXX0FUX2RlY2xfbGluZQorKwkuYnl0ZQkweDEJ IyBEV19BVF9wcm90b3R5cGVkCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisrCS5sb25nCS5M RkIzCSMgRFdfQVRfbG93X3BjCisrCS5sb25nCS5MRkUzCSMgRFdfQVRfaGlnaF9wYworKwkubG9u ZwkuTExTVDUJIyBEV19BVF9mcmFtZV9iYXNlCisrCS5sb25nCTB4MTUzCSMgRFdfQVRfc2libGlu ZworKwkudWxlYjEyOCAweDcJIyAoRElFICgweDEzOSkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIp CisrCS5hc2NpaSAia1wwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9m aWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHgzNwkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkw eDQ4CSMgRFdfQVRfdHlwZQorKwkuYnl0ZQkweDIJIyBEV19BVF9sb2NhdGlvbgorKwkuYnl0ZQkw eDkxCSMgRFdfT1BfZmJyZWcKKysJLnNsZWIxMjggMAorKwkudWxlYjEyOCAweDkJIyAoRElFICgw eDE0NSkgRFdfVEFHX3ZhcmlhYmxlKQorKwkuYXNjaWkgImFcMCIJIyBEV19BVF9uYW1lCisrCS5i eXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRlCTB4MzkJIyBEV19B VF9kZWNsX2xpbmUKKysJLmxvbmcJMHg0ZgkjIERXX0FUX3R5cGUKKysJLmxvbmcJLkxMU1Q2CSMg RFdfQVRfbG9jYXRpb24KKysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxMWQK KysJLnVsZWIxMjggMHg4CSMgKERJRSAoMHgxNTMpIERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0 ZQkweDEJIyBEV19BVF9leHRlcm5hbAorKwkuYXNjaWkgImY0XDAiCSMgRFdfQVRfbmFtZQorKwku Ynl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwkuYnl0ZQkweDQyCSMgRFdf QVRfZGVjbF9saW5lCisrCS5ieXRlCTB4MQkjIERXX0FUX3Byb3RvdHlwZWQKKysJLmxvbmcJMHg0 OAkjIERXX0FUX3R5cGUKKysJLmxvbmcJLkxGQjQJIyBEV19BVF9sb3dfcGMKKysJLmxvbmcJLkxG RTQJIyBEV19BVF9oaWdoX3BjCisrCS5sb25nCS5MTFNUNwkjIERXX0FUX2ZyYW1lX2Jhc2UKKysJ LmxvbmcJMHgxODkJIyBEV19BVF9zaWJsaW5nCisrCS51bGViMTI4IDB4NwkjIChESUUgKDB4MTZm KSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKysJLmFzY2lpICJrXDAiCSMgRFdfQVRfbmFtZQor KwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwkuYnl0ZQkweDQyCSMg RFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisrCS5ieXRlCTB4Mgkj IERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAw CisrCS51bGViMTI4IDB4OQkjIChESUUgKDB4MTdiKSBEV19UQUdfdmFyaWFibGUpCisrCS5hc2Np aSAiYVwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVj ZXMuYykKKysJLmJ5dGUJMHg0NAkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDEwYQkjIERX X0FUX3R5cGUKKysJLmxvbmcJLkxMU1Q4CSMgRFdfQVRfbG9jYXRpb24KKysJLmJ5dGUJMAkjIGVu ZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxNTMKKysJLnVsZWIxMjggMHg4CSMgKERJRSAoMHgxODkp IERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkweDEJIyBEV19BVF9leHRlcm5hbAorKwkuYXNj aWkgImY1XDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBp ZWNlcy5jKQorKwkuYnl0ZQkweDRkCSMgRFdfQVRfZGVjbF9saW5lCisrCS5ieXRlCTB4MQkjIERX X0FUX3Byb3RvdHlwZWQKKysJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKysJLmxvbmcJLkxGQjUJ IyBEV19BVF9sb3dfcGMKKysJLmxvbmcJLkxGRTUJIyBEV19BVF9oaWdoX3BjCisrCS5sb25nCS5M TFNUOQkjIERXX0FUX2ZyYW1lX2Jhc2UKKysJLmxvbmcJMHgxYmYJIyBEV19BVF9zaWJsaW5nCisr CS51bGViMTI4IDB4NwkjIChESUUgKDB4MWE1KSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKysJ LmFzY2lpICJrXDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUg KHBpZWNlcy5jKQorKwkuYnl0ZQkweDRkCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4NDgJ IyBEV19BVF90eXBlCisrCS5ieXRlCTB4MgkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTB4OTEJ IyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAwCisrCS51bGViMTI4IDB4OQkjIChESUUgKDB4MWIx KSBEV19UQUdfdmFyaWFibGUpCisrCS5hc2NpaSAiYVwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJ MHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHg0ZgkjIERXX0FUX2Rl Y2xfbGluZQorKwkubG9uZwkweDI1CSMgRFdfQVRfdHlwZQorKwkubG9uZwkuTExTVDEwCSMgRFdf QVRfbG9jYXRpb24KKysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxODkKKysJ LnVsZWIxMjggMHhkCSMgKERJRSAoMHgxYmYpIERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkw eDEJIyBEV19BVF9leHRlcm5hbAorKwkubG9uZwkuTEFTRjAJIyBEV19BVF9uYW1lOiAibWFpbiIK KysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHg1OAkj IERXX0FUX2RlY2xfbGluZQorKwkuYnl0ZQkweDEJIyBEV19BVF9wcm90b3R5cGVkCisrCS5sb25n CTB4NDgJIyBEV19BVF90eXBlCisrCS5sb25nCS5MRkI2CSMgRFdfQVRfbG93X3BjCisrCS5sb25n CS5MRkU2CSMgRFdfQVRfaGlnaF9wYworKwkubG9uZwkuTExTVDExCSMgRFdfQVRfZnJhbWVfYmFz ZQorKwkudWxlYjEyOCAweDkJIyAoRElFICgweDFkOCkgRFdfVEFHX3ZhcmlhYmxlKQorKwkuYXNj aWkgImtcMCIJIyBEV19BVF9uYW1lCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGll Y2VzLmMpCisrCS5ieXRlCTB4NWEJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJMHg0OAkjIERX X0FUX3R5cGUKKysJLmxvbmcJLkxMU1QxMgkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTAJIyBl bmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4MWJmCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4g b2YgRElFIDB4YgorKwkuc2VjdGlvbgkuZGVidWdfYWJicmV2CisrCS51bGViMTI4IDB4MQkjIChh YmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgxMQkjIChUQUc6IERXX1RBR19jb21waWxlX3VuaXQp CisrCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworKwkudWxlYjEyOCAweDI1CSMgKERXX0FU X3Byb2R1Y2VyKQorKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQorKwkudWxlYjEyOCAw eDEzCSMgKERXX0FUX2xhbmd1YWdlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkK KysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkjIChEV19GT1JN X3N0cnApCisrCS51bGViMTI4IDB4MWIJIyAoRFdfQVRfY29tcF9kaXIpCisrCS51bGViMTI4IDB4 ZQkjIChEV19GT1JNX3N0cnApCisrCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQorKwku dWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hp Z2hfcGMpCisrCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCisrCS51bGViMTI4IDB4MTAJ IyAoRFdfQVRfc3RtdF9saXN0KQorKwkudWxlYjEyOCAweDYJIyAoRFdfRk9STV9kYXRhNCkKKysJ LmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4MgkjIChhYmJyZXYgY29kZSkKKysJLnVs ZWIxMjggMHgxMwkjIChUQUc6IERXX1RBR19zdHJ1Y3R1cmVfdHlwZSkKKysJLmJ5dGUJMHgxCSMg RFdfY2hpbGRyZW5feWVzCisrCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEy OCAweDgJIyAoRFdfRk9STV9zdHJpbmcpCisrCS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3Np emUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNhCSMg KERXX0FUX2RlY2xfZmlsZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51 bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9S TV9kYXRhMSkKKysJLnVsZWIxMjggMHgxCSMgKERXX0FUX3NpYmxpbmcpCisrCS51bGViMTI4IDB4 MTMJIyAoRFdfRk9STV9yZWY0KQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHgz CSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEyOCAweGQJIyAoVEFHOiBEV19UQUdfbWVtYmVyKQor KwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUp CisrCS51bGViMTI4IDB4OAkjIChEV19GT1JNX3N0cmluZykKKysJLnVsZWIxMjggMHgzYQkjIChE V19BVF9kZWNsX2ZpbGUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxl YjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGluZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1f ZGF0YTEpCisrCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkj IChEV19GT1JNX3JlZjQpCisrCS51bGViMTI4IDB4MzgJIyAoRFdfQVRfZGF0YV9tZW1iZXJfbG9j YXRpb24pCisrCS51bGViMTI4IDB4YQkjIChEV19GT1JNX2Jsb2NrMSkKKysJLmJ5dGUJMAorKwku Ynl0ZQkwCisrCS51bGViMTI4IDB4NAkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgyNAkj IChUQUc6IERXX1RBR19iYXNlX3R5cGUpCisrCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworKwku dWxlYjEyOCAweGIJIyAoRFdfQVRfYnl0ZV9zaXplKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9S TV9kYXRhMSkKKysJLnVsZWIxMjggMHgzZQkjIChEV19BVF9lbmNvZGluZykKKysJLnVsZWIxMjgg MHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQorKwku dWxlYjEyOCAweDgJIyAoRFdfRk9STV9zdHJpbmcpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwku dWxlYjEyOCAweDUJIyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4ZAkjIChUQUc6IERXX1RB R19tZW1iZXIpCisrCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworKwkudWxlYjEyOCAweDMJIyAo RFdfQVRfbmFtZSkKKysJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQorKwkudWxlYjEy OCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0 YTEpCisrCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQorKwkudWxlYjEyOCAweGIJ IyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQorKwkudWxl YjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKysJLnVsZWIxMjggMHhiCSMgKERXX0FUX2J5dGVf c2l6ZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4ZAkj IChEV19BVF9iaXRfc2l6ZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51 bGViMTI4IDB4YwkjIChEV19BVF9iaXRfb2Zmc2V0KQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9S TV9kYXRhMSkKKysJLnVsZWIxMjggMHgzOAkjIChEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbikK KysJLnVsZWIxMjggMHhhCSMgKERXX0ZPUk1fYmxvY2sxKQorKwkuYnl0ZQkwCisrCS5ieXRlCTAK KysJLnVsZWIxMjggMHg2CSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEyOCAweDJlCSMgKFRBRzog RFdfVEFHX3N1YnByb2dyYW0pCisrCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworKwkudWxl YjEyOCAweDNmCSMgKERXX0FUX2V4dGVybmFsKQorKwkudWxlYjEyOCAweGMJIyAoRFdfRk9STV9m bGFnKQorKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKKysJLnVsZWIxMjggMHg4CSMgKERX X0ZPUk1fc3RyaW5nKQorKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKKysJLnVs ZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVj bF9saW5lKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgy NwkjIChEV19BVF9wcm90b3R5cGVkKQorKwkudWxlYjEyOCAweGMJIyAoRFdfRk9STV9mbGFnKQor KwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKKysJLnVsZWIxMjggMHgxCSMgKERXX0ZP Uk1fYWRkcikKKysJLnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQorKwkudWxlYjEyOCAw eDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2Up CisrCS51bGViMTI4IDB4NgkjIChEV19GT1JNX2RhdGE0KQorKwkudWxlYjEyOCAweDEJIyAoRFdf QVRfc2libGluZykKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS5ieXRlCTAK KysJLmJ5dGUJMAorKwkudWxlYjEyOCAweDcJIyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4 NQkjIChUQUc6IERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorKwkuYnl0ZQkwCSMgRFdfY2hpbGRy ZW5fbm8KKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4OAkjIChE V19GT1JNX3N0cmluZykKKysJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNsX2ZpbGUpCisrCS51 bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2Rl Y2xfbGluZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4 NDkJIyAoRFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS51 bGViMTI4IDB4MgkjIChEV19BVF9sb2NhdGlvbikKKysJLnVsZWIxMjggMHhhCSMgKERXX0ZPUk1f YmxvY2sxKQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHg4CSMgKGFiYnJldiBj b2RlKQorKwkudWxlYjEyOCAweDJlCSMgKFRBRzogRFdfVEFHX3N1YnByb2dyYW0pCisrCS5ieXRl CTB4MQkjIERXX2NoaWxkcmVuX3llcworKwkudWxlYjEyOCAweDNmCSMgKERXX0FUX2V4dGVybmFs KQorKwkudWxlYjEyOCAweGMJIyAoRFdfRk9STV9mbGFnKQorKwkudWxlYjEyOCAweDMJIyAoRFdf QVRfbmFtZSkKKysJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQorKwkudWxlYjEyOCAw eDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEp CisrCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQorKwkudWxlYjEyOCAweGIJIyAo RFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgyNwkjIChEV19BVF9wcm90b3R5cGVkKQorKwku dWxlYjEyOCAweGMJIyAoRFdfRk9STV9mbGFnKQorKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5 cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkudWxlYjEyOCAweDExCSMg KERXX0FUX2xvd19wYykKKysJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKysJLnVsZWIx MjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRy KQorKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCisrCS51bGViMTI4IDB4Ngkj IChEV19GT1JNX2RhdGE0KQorKwkudWxlYjEyOCAweDEJIyAoRFdfQVRfc2libGluZykKKysJLnVs ZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxl YjEyOCAweDkJIyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4MzQJIyAoVEFHOiBEV19UQUdf dmFyaWFibGUpCisrCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworKwkudWxlYjEyOCAweDMJIyAo RFdfQVRfbmFtZSkKKysJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQorKwkudWxlYjEy OCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0 YTEpCisrCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQorKwkudWxlYjEyOCAweGIJ IyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQorKwkudWxl YjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKKysJLnVsZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0 aW9uKQorKwkudWxlYjEyOCAweDYJIyAoRFdfRk9STV9kYXRhNCkKKysJLmJ5dGUJMAorKwkuYnl0 ZQkwCisrCS51bGViMTI4IDB4YQkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgxCSMgKFRB RzogRFdfVEFHX2FycmF5X3R5cGUpCisrCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworKwku dWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9y ZWY0KQorKwkudWxlYjEyOCAweDEJIyAoRFdfQVRfc2libGluZykKKysJLnVsZWIxMjggMHgxMwkj IChEV19GT1JNX3JlZjQpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEyOCAweGIJIyAo YWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4MjEJIyAoVEFHOiBEV19UQUdfc3VicmFuZ2VfdHlw ZSkKKysJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4NDkJIyAoRFdfQVRf dHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS51bGViMTI4IDB4MmYJ IyAoRFdfQVRfdXBwZXJfYm91bmQpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQor KwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHhjCSMgKGFiYnJldiBjb2RlKQorKwku dWxlYjEyOCAweDI0CSMgKFRBRzogRFdfVEFHX2Jhc2VfdHlwZSkKKysJLmJ5dGUJMAkjIERXX2No aWxkcmVuX25vCisrCS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCisrCS51bGViMTI4 IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNlCSMgKERXX0FUX2VuY29kaW5n KQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLmJ5dGUJMAorKwkuYnl0ZQkw CisrCS51bGViMTI4IDB4ZAkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgyZQkjIChUQUc6 IERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKKysJLnVs ZWIxMjggMHgzZgkjIChEV19BVF9leHRlcm5hbCkKKysJLnVsZWIxMjggMHhjCSMgKERXX0ZPUk1f ZmxhZykKKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkjIChE V19GT1JNX3N0cnApCisrCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorKwkudWxl YjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNs X2xpbmUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDI3 CSMgKERXX0FUX3Byb3RvdHlwZWQpCisrCS51bGViMTI4IDB4YwkjIChEV19GT1JNX2ZsYWcpCisr CS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JN X3JlZjQpCisrCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQorKwkudWxlYjEyOCAweDEJ IyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCisrCS51 bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCisrCS51bGViMTI4IDB4NDAJIyAoRFdfQVRfZnJh bWVfYmFzZSkKKysJLnVsZWIxMjggMHg2CSMgKERXX0ZPUk1fZGF0YTQpCisrCS5ieXRlCTAKKysJ LmJ5dGUJMAorKwkuYnl0ZQkwCisrCS5zZWN0aW9uCS5kZWJ1Z19wdWJuYW1lcywiIixAcHJvZ2Jp dHMKKysJLmxvbmcJMHg0MgkjIExlbmd0aCBvZiBQdWJsaWMgTmFtZXMgSW5mbworKwkudmFsdWUJ MHgyCSMgRFdBUkYgVmVyc2lvbgorKwkubG9uZwkuTGRlYnVnX2luZm8wCSMgT2Zmc2V0IG9mIENv bXBpbGF0aW9uIFVuaXQgSW5mbworKwkubG9uZwkweDFlNwkjIENvbXBpbGF0aW9uIFVuaXQgTGVu Z3RoCisrCS5sb25nCTB4NzgJIyBESUUgb2Zmc2V0CisrCS5hc2NpaSAiYmFyXDAiCSMgZXh0ZXJu YWwgbmFtZQorKwkubG9uZwkweDllCSMgRElFIG9mZnNldAorKwkuYXNjaWkgImYxXDAiCSMgZXh0 ZXJuYWwgbmFtZQorKwkubG9uZwkweGQ0CSMgRElFIG9mZnNldAorKwkuYXNjaWkgImYyXDAiCSMg ZXh0ZXJuYWwgbmFtZQorKwkubG9uZwkweDExZAkjIERJRSBvZmZzZXQKKysJLmFzY2lpICJmM1ww IgkjIGV4dGVybmFsIG5hbWUKKysJLmxvbmcJMHgxNTMJIyBESUUgb2Zmc2V0CisrCS5hc2NpaSAi ZjRcMCIJIyBleHRlcm5hbCBuYW1lCisrCS5sb25nCTB4MTg5CSMgRElFIG9mZnNldAorKwkuYXNj aWkgImY1XDAiCSMgZXh0ZXJuYWwgbmFtZQorKwkubG9uZwkweDFiZgkjIERJRSBvZmZzZXQKKysJ LmFzY2lpICJtYWluXDAiCSMgZXh0ZXJuYWwgbmFtZQorKwkubG9uZwkwCisrCS5zZWN0aW9uCS5k ZWJ1Z19wdWJ0eXBlcywiIixAcHJvZ2JpdHMKKysJLmxvbmcJMHgxYQkjIExlbmd0aCBvZiBQdWJs aWMgVHlwZSBOYW1lcyBJbmZvCisrCS52YWx1ZQkweDIJIyBEV0FSRiBWZXJzaW9uCisrCS5sb25n CS5MZGVidWdfaW5mbzAJIyBPZmZzZXQgb2YgQ29tcGlsYXRpb24gVW5pdCBJbmZvCisrCS5sb25n CTB4MWU3CSMgQ29tcGlsYXRpb24gVW5pdCBMZW5ndGgKKysJLmxvbmcJMHgyNQkjIERJRSBvZmZz ZXQKKysJLmFzY2lpICJBXDAiCSMgZXh0ZXJuYWwgbmFtZQorKwkubG9uZwkweDRmCSMgRElFIG9m ZnNldAorKwkuYXNjaWkgIkJcMCIJIyBleHRlcm5hbCBuYW1lCisrCS5sb25nCTAKKysJLnNlY3Rp b24JLmRlYnVnX2FyYW5nZXMsIiIsQHByb2diaXRzCisrCS5sb25nCTB4MWMJIyBMZW5ndGggb2Yg QWRkcmVzcyBSYW5nZXMgSW5mbworKwkudmFsdWUJMHgyCSMgRFdBUkYgVmVyc2lvbgorKwkubG9u ZwkuTGRlYnVnX2luZm8wCSMgT2Zmc2V0IG9mIENvbXBpbGF0aW9uIFVuaXQgSW5mbworKwkuYnl0 ZQkweDQJIyBTaXplIG9mIEFkZHJlc3MKKysJLmJ5dGUJMAkjIFNpemUgb2YgU2VnbWVudCBEZXNj cmlwdG9yCisrCS52YWx1ZQkwCSMgUGFkIHRvIDggYnl0ZSBib3VuZGFyeQorKwkudmFsdWUJMAor KwkubG9uZwkuTHRleHQwCSMgQWRkcmVzcworKwkubG9uZwkuTGV0ZXh0MC0uTHRleHQwCSMgTGVu Z3RoCisrCS5sb25nCTAKKysJLmxvbmcJMAorKwkuc2VjdGlvbgkuZGVidWdfc3RyLCJNUyIsQHBy b2diaXRzLDEKKysuTEFTRjI6CisrCS5zdHJpbmcJInBpZWNlcy5jIgorKy5MQVNGMzoKKysJLnN0 cmluZwkiL2hvbWUvdHJvbWV5L2dudS9hcmNoZXIvYXJjaGVyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMiIKKysuTEFTRjE6CisrCS5zdHJpbmcJIkdOVSBDIDQuNi4wIDIwMTAwNTA2IChleHBlcmlt ZW50YWwpIFt0cnVuayByZXZpc2lvbiAxNTkxMTddIgorKy5MQVNGMDoKKysJLnN0cmluZwkibWFp biIKKysJLmlkZW50CSJHQ0M6IChHTlUpIDQuNi4wIDIwMTAwNTA2IChleHBlcmltZW50YWwpIFt0 cnVuayByZXZpc2lvbiAxNTkxMTddIgorKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHBy b2diaXRzCistLS0gc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9waWVjZXMuYworKysrIHNy Yy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvcGllY2VzLmMJMjAxMC0wNS0yNSAyMDoxODowMC42 Mjc2MjIwMDAgKzAwMDAKK0BAIC0wLDAgKzEsOTggQEAKKysvKiBDb3B5cmlnaHQgKEMpIDIwMTAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQg b2YgR0RCLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysK KysvKiBUaGUgb3JpZ2luYWwgcHJvZ3JhbSBjb3JyZXNwb25kaW5nIHRvIHBpZWNlcy5TLgorKyAg IFRoaXMgY2FtZSBmcm9tIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/ aWQ9NTg5NDY3CisrICAgTm90ZSB0aGF0IGl0IGlzIG5vdCBldmVyIGNvbXBpbGVkLCBwaWVjZXMu UyBpcyB1c2VkIGluc3RlYWQuCisrICAgSG93ZXZlciwgaXQgaXMgdXNlZCB0byBleHRyYWN0IGJy ZWFrcG9pbnQgbGluZSBudW1iZXJzLiAgKi8KKysKKytzdHJ1Y3QgQSB7IGludCBpOyBpbnQgajsg fTsKKytzdHJ1Y3QgQiB7IGludCA6IDQ7IGludCBpIDogMTI7IGludCBqIDogMTI7IGludCA6IDQ7 IH07CisrCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSB2b2lkCisrYmFyIChpbnQgeCkKKyt7 CisrICBhc20gdm9sYXRpbGUgKCIiIDogOiAiciIgKHgpIDogIm1lbW9yeSIpOworK30KKysKKytf X2F0dHJpYnV0ZV9fKChub2lubGluZSkpIGludAorK2YxIChpbnQgaykKKyt7CisrICBzdHJ1Y3Qg QSBhID0geyA0LCBrICsgNiB9OworKyAgYXNtICgiIiA6ICIrciIgKGEuaSkpOworKyAgYS5qKys7 CisrICBiYXIgKGEuaSk7CQkvKiB7IGRnLWZpbmFsIHsgZ2RiLXRlc3QgMjAgImEuaSIgIjQiIH0g fSAqLworKyAgYmFyIChhLmopOwkJLyogeyBkZy1maW5hbCB7IGdkYi10ZXN0IDIwICJhLmoiICIx NCIgfSB9ICovCisrICByZXR1cm4gYS5pICsgYS5qOwkvKiBmMSBicmVha3BvaW50ICovCisrfQor KworK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgaW50CisrZjIgKGludCBrKQorK3sKKysgIGlu dCBhWzJdID0geyA0LCBrICsgNiB9OworKyAgYXNtICgiIiA6ICIrciIgKGFbMF0pKTsKKysgIGFb MV0rKzsKKysgIGJhciAoYVswXSk7CQkvKiB7IGRnLWZpbmFsIHsgZ2RiLXRlc3QgMzEgImFcWzBc XSIgIjQiIH0gfSAqLworKyAgYmFyIChhWzFdKTsJCS8qIHsgZGctZmluYWwgeyBnZGItdGVzdCAz MSAiYVxbMVxdIiAiMTQiIH0gfSAqLworKyAgcmV0dXJuIGFbMF0gKyBhWzFdOwkvKiBmMiBicmVh a3BvaW50ICovCisrfQorKworK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgaW50CisrZjMgKGlu dCBrKQorK3sKKysgIHN0cnVjdCBCIGEgPSB7IDQsIGsgKyA2IH07CisrICBhc20gKCIiIDogIity IiAoYS5pKSk7CisrICBhLmorKzsKKysgIGJhciAoYS5pKTsJCS8qIHsgZGctZmluYWwgeyBnZGIt dGVzdCA0MiAiYS5pIiAiNCIgfSB9ICovCisrICBiYXIgKGEuaik7CQkvKiB7IGRnLWZpbmFsIHsg Z2RiLXRlc3QgNDIgImEuaiIgIjE0IiB9IH0gKi8KKysgIHJldHVybiBhLmkgKyBhLmo7CS8qIGYz IGJyZWFrcG9pbnQgKi8KKyt9CisrCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSBpbnQKKytm NCAoaW50IGspCisreworKyAgaW50IGFbMl0gPSB7IGssIGsgfTsKKysgIGFzbSAoIiIgOiAiK3Ii IChhWzBdKSk7CisrICBhWzFdKys7CisrICBiYXIgKGFbMF0pOworKyAgYmFyIChhWzFdKTsKKysg IHJldHVybiBhWzBdICsgYVsxXTsJCS8qIGY0IGJyZWFrcG9pbnQgKi8KKyt9CisrCisrX19hdHRy aWJ1dGVfXygobm9pbmxpbmUpKSBpbnQKKytmNSAoaW50IGspCisreworKyAgc3RydWN0IEEgYSA9 IHsgaywgayB9OworKyAgYXNtICgiIiA6ICIrciIgKGEuaSkpOworKyAgYS5qKys7CisrICBiYXIg KGEuaSk7CisrICBiYXIgKGEuaik7CisrICByZXR1cm4gYS5pICsgYS5qOwkJLyogZjUgYnJlYWtw b2ludCAqLworK30KKysKKytpbnQKKyttYWluICh2b2lkKQorK3sKKysgIGludCBrOworKyAgYXNt ICgiIiA6ICI9ciIgKGspIDogIjAiICg3KSk7CisrICBmMSAoayk7CisrICBmMiAoayk7CisrICBm MyAoayk7CisrICBmNCAoayk7CisrICBmNSAoayk7CisrICByZXR1cm4gMDsKKyt9CistLS0gc3Jj L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9waWVjZXMuZXhwCisrKysgc3JjL2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9waWVjZXMuZXhwCTIwMTAtMDUtMjUgMjA6MTg6MDMuOTYxMTExMDAwICsw MDAwCitAQCAtMCwwICsxLDU3IEBACisrIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBU ZXN0IHNvbWUgRFdBUkYgcGllY2Ugb3BlcmF0b3JzLgorKworKyMgVGhpcyB0ZXN0IGNhbiBvbmx5 IGJlIHJ1biBvbiB0YXJnZXRzIHdoaWNoIHN1cHBvcnQgRFdBUkYtMiBhbmQgdXNlIGdhcy4KKysj IEZvciBub3cgcGljayBhIHNhbXBsaW5nIG9mIGxpa2VseSB0YXJnZXRzLgorK2lmIHshW2lzdGFy Z2V0ICotKi1saW51eCpdCisrICAgICYmICFbaXN0YXJnZXQgKi0qLWdudSpdCisrICAgICYmICFb aXN0YXJnZXQgKi0qLWVsZipdCisrICAgICYmICFbaXN0YXJnZXQgKi0qLW9wZW5ic2QqXQorKyAg ICAmJiAhW2lzdGFyZ2V0IGFybS0qLWVhYmkqXQorKyAgICAmJiAhW2lzdGFyZ2V0IHBvd2VycGMt Ki1lYWJpKl19IHsKKysgICAgcmV0dXJuIDAgIAorK30KKysjIFRoaXMgdGVzdCBjYW4gb25seSBi ZSBydW4gb24geDg2IHRhcmdldHMuCisraWYgeyFbaXN0YXJnZXQgaT84Ni0qXX0geworKyAgICBy ZXR1cm4gMCAgCisrfQorKworK3NldCB0ZXN0ZmlsZSAicGllY2VzIgorK3NldCBzcmNmaWxlICR7 dGVzdGZpbGV9LlMKKytzZXQgY3NyY2ZpbGUgJHt0ZXN0ZmlsZX0uYworK3NldCBiaW5maWxlICR7 b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0ueAorKworK2lmIHtbcHJlcGFyZV9mb3JfdGVz dGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0ueCAkc3JjZmlsZV19IHsKKysgICAgcmV0 dXJuIC0xCisrfQorKworK2lmICFbcnVudG9fbWFpbl0geworKyAgICByZXR1cm4gLTEKKyt9Cisr CisrIyBGdW5jdGlvbiBmMSB0ZXN0cyBhIHBhcnRpY3VsYXIgZ2RiIGJ1ZyBpbnZvbHZpbmcgRFdf T1BfcGllY2UuCisrcHJvYyBwaWVjZXNfdGVzdF9mMSB7fSB7CisrICAgIGdsb2JhbCBjc3JjZmls ZQorKyAgICBzZXQgbGluZSBbZ2RiX2dldF9saW5lX251bWJlciAiZjEgYnJlYWtwb2ludCIgJGNz cmNmaWxlXQorKyAgICBnZGJfdGVzdCAiYnJlYWsgcGllY2VzLmM6JGxpbmUiICJCcmVha3BvaW50 IDIuKiIgXAorKwkic2V0IGYxIGJyZWFrcG9pbnQgZm9yIHBpZWNlcyIKKysgICAgZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgImNvbnRpbnVlIHRvIGYxIGJyZWFrcG9pbnQgZm9yIHBpZWNlcyIK KysgICAgZ2RiX3Rlc3QgInByaW50IGEiICIgPSB7aSA9IDQsIGogPSAxNH0iICJwcmludCBhIGlu IHBpZWNlczpmMSIKKysgICAgZ2RiX3Rlc3QgInByaW50IGEuaiIgIiA9IDE0IiAicHJpbnQgYS5q IGluIHBpZWNlczpmMSIKKyt9CisrCisrcGllY2VzX3Rlc3RfZjEKCmRpZmYgLS1naXQgYS9nZGIt Yno1ODk0NjctcGllY2VzMm9mNC5wYXRjaCBiL2dkYi1iejU4OTQ2Ny1waWVjZXMyb2Y0LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMjcwMzkKLS0tIC9kZXYvbnVs bAorKysgYi9nZGItYno1ODk0NjctcGllY2VzMm9mNC5wYXRjaApAQCAtMCwwICsxLDUzIEBACito dHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEwLTA1L21zZzAwMTg4Lmh0bWwKK2h0 dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTAtMDUvbXNnMDAxODkuaHRtbAorCisj IyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMC8wNS8yMSAyMDo0NToxOAkxLjExODMwCisjIyMgc3Jj L2dkYi9DaGFuZ2VMb2cJMjAxMC8wNS8yMSAyMDo1Njo0OAkxLjExODMxCisjIyAtMSwzICsxLDgg QEAKKysyMDEwLTA1LTIxICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CisrCisrCSog ZXZhbC5jIChldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQpIDxCSU5PUF9TVUJTQ1JJUFQ+OiBDYWxs CisrCWV2YWx1YXRlX3N1YmV4cCwgbm90IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uLgor KworIyMjIHNyYy9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDEwLzA1LzIxIDIwOjM5OjUwCTEu MjI3MworIyMjIHNyYy9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDEwLzA1LzIxIDIwOjU2OjQ5 CTEuMjI3NAorIyMgLTEsNSArMSwxMCBAQAorIDIwMTAtMDUtMjEgIFRvbSBUcm9tZXkgIDx0cm9t ZXlAcmVkaGF0LmNvbT4KKyAKKysJKiBnZGIuZHdhcmYyL3BpZWNlcy5leHAgKHBpZWNlc190ZXN0 X2YyKTogTmV3IHByb2MuCisrCUNhbGwgaXQuCisrCistLS0gc3JjL2dkYi9ldmFsLmMJMjAxMC8w NS8xNCAxODozNToxMQkxLjEzNAorKysrIHNyYy9nZGIvZXZhbC5jCTIwMTAvMDUvMjEgMjA6NTY6 NDkJMS4xMzUKK0BAIC0yMDU5LDggKzIwNTksOCBAQAorICAgICAgIGVycm9yIChfKCInOicgb3Bl cmF0b3IgdXNlZCBpbiBpbnZhbGlkIGNvbnRleHQiKSk7CisgCisgICAgIGNhc2UgQklOT1BfU1VC U0NSSVBUOgorLSAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoZXhw LCBwb3MsIG5vc2lkZSk7CistICAgICAgYXJnMiA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJj aW9uIChleHAsIHBvcywgbm9zaWRlKTsKKysgICAgICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChO VUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOworKyAgICAgIGFyZzIgPSBldmFsdWF0ZV9zdWJl eHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSk7CisgICAgICAgaWYgKG5vc2lkZSA9PSBF VkFMX1NLSVApCisgCWdvdG8gbm9zaWRlcmV0OworICAgICAgIGlmIChiaW5vcF91c2VyX2RlZmlu ZWRfcCAob3AsIGFyZzEsIGFyZzIpKQorLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv cGllY2VzLmV4cAkyMDEwLzA1LzIxIDIwOjM5OjUwCTEuMQorKysrIHNyYy9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvcGllY2VzLmV4cAkyMDEwLzA1LzIxIDIxOjAwOjI3CTEuMgorQEAgLTU0LDQg KzU0LDE4IEBACisgICAgIGdkYl90ZXN0ICJwcmludCBhLmoiICIgPSAxNCIgInByaW50IGEuaiBp biBwaWVjZXM6ZjEiCisgfQorIAorKyMgRnVuY3Rpb24gZjIgdGVzdHMgZm9yIGEgYnVnIHdoZW4g aW5kZXhpbmcgaW50byBhbiBhcnJheSBjcmVhdGVkCisrIyB1c2luZyBEV19PUF9waWVjZS4KKytw cm9jIHBpZWNlc190ZXN0X2YyIHt9IHsKKysgICAgZ2xvYmFsIGNzcmNmaWxlCisrICAgIHNldCBs aW5lIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmMiBicmVha3BvaW50IiAkY3NyY2ZpbGVdCisrICAg IGdkYl90ZXN0ICJicmVhayBwaWVjZXMuYzokbGluZSIgIkJyZWFrcG9pbnQgMy4qIiBcCisrICAg ICAgICJzZXQgZjIgYnJlYWtwb2ludCBmb3IgcGllY2VzIgorKyAgICBnZGJfY29udGludWVfdG9f YnJlYWtwb2ludCAiY29udGludWUgdG8gZjIgYnJlYWtwb2ludCBmb3IgcGllY2VzIgorKyAgICBn ZGJfdGVzdCAicHJpbnQgYSIgIiA9IC40LCAxNC4iICJwcmludCBhIGluIHBpZWNlczpmMiIKKysg ICAgZ2RiX3Rlc3QgInByaW50IGFcWzBcXSIgIiA9IDQiICJwcmludCBhXFswXF0gaW4gcGllY2Vz OmYyIgorKyAgICBnZGJfdGVzdCAicHJpbnQgYVxbMVxdIiAiID0gMTQiICJwcmludCBhXFsxXF0g aW4gcGllY2VzOmYyIgorK30KKysKKyBwaWVjZXNfdGVzdF9mMQorK3BpZWNlc190ZXN0X2YyCgpk aWZmIC0tZ2l0IGEvZ2RiLWJ6NTg5NDY3LXBpZWNlczNvZjQucGF0Y2ggYi9nZGItYno1ODk0Njct cGllY2VzM29mNC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDc3 ZmNmCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NTg5NDY3LXBpZWNlczNvZjQucGF0Y2gKQEAg LTAsMCArMSwxMTk4IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEwLTA1 L21zZzAwMTkwLmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTAvMDUvMjEgMjA6NTY6 NDgJMS4xMTgzMQorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTAvMDUvMjEgMjE6MDE6NDYJMS4x MTgzMgorIyMgLTEsNSArMSwxNiBAQAorIDIwMTAtMDUtMjEgIFRvbSBUcm9tZXkgIDx0cm9tZXlA cmVkaGF0LmNvbT4KKyAKKysJKiBkd2FyZjJsb2MuYyAocmVhZF9waWVjZWRfdmFsdWUpOiBFeGl0 IGxvb3Agd2hlbiByZXN1bHQgaXMgZnVsbC4KKysJPERXQVJGX1ZBTFVFX09QVElNSVpFRF9PVVQ+ OiBOZXcgY2FzZS4KKysJKiBkd2FyZjJleHByLmggKGVudW0gZHdhcmZfdmFsdWVfbG9jYXRpb24p CisrCTxEV0FSRl9WQUxVRV9PUFRJTUlaRURfT1VUPjogTmV3IGNvbnN0YW50LgorKwkqIGR3YXJm MmV4cHIuYyAoZHdhcmZfZXhwcl9zdGFja19lbXB0eV9wKTogTmV3IGZ1bmN0aW9uLgorKwkoYWRk X3BpZWNlKTogSGFuZGxlIGVtcHR5IHBpZWNlLgorKwkoZXhlY3V0ZV9zdGFja19vcCkgPERXX09Q X3BpZWNlPjogSGFuZGxlCisrCURXQVJGX1ZBTFVFX09QVElNSVpFRF9PVVQuCisrCisjIyMgc3Jj L2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDUvMjEgMjA6NTY6NDkJMS4yMjc0CisjIyMg c3JjL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDUvMjEgMjE6MDE6NDYJMS4yMjc1Cisj IyAtMSw1ICsxLDEzIEBACisgMjAxMC0wNS0yMSAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQu Y29tPgorIAorKwkqIGdkYi5kd2FyZjIvcGllY2VzLmV4cCAocGllY2VzX3Rlc3RfZjYpOiBOZXcg cHJvYy4KKysJQ2FsbCBpdC4KKysJKiBnZGIuZHdhcmYyL3BpZWNlcy5jIChzdHJ1Y3QgQyk6IE5l dy4KKysJKGY2KTogTmV3IGZ1bmN0aW9uLgorKwkqIGdkYi5kd2FyZjIvcGllY2VzLlM6IFJlcGxh Y2UuCisrCistLS0gc3JjL2dkYi9kd2FyZjJleHByLmMJMjAxMC8wNS8xNCAxNzo1MzoxNgkxLjQy CisrKysgc3JjL2dkYi9kd2FyZjJleHByLmMJMjAxMC8wNS8yMSAyMTowMTo0NgkxLjQzCitAQCAt MTQzLDYgKzE0MywxNCBAQAorIAorIH0KKyAKKysvKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwcmVz c2lvbiBzdGFjayBpcyBlbXB0eS4gICovCisrCisrc3RhdGljIGludAorK2R3YXJmX2V4cHJfc3Rh Y2tfZW1wdHlfcCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4KQorK3sKKysgIHJldHVy biBjdHgtPnN0YWNrX2xlbiA9PSAwOworK30KKysKKyAvKiBBZGQgYSBuZXcgcGllY2UgdG8gQ1RY J3MgcGllY2UgbGlzdC4gICovCisgc3RhdGljIHZvaWQKKyBhZGRfcGllY2UgKHN0cnVjdCBkd2Fy Zl9leHByX2NvbnRleHQgKmN0eCwgVUxPTkdFU1Qgc2l6ZSkKK0BAIC0xNjcsNiArMTc1LDE1IEBA CisgICAgICAgcC0+di5saXRlcmFsLmRhdGEgPSBjdHgtPmRhdGE7CisgICAgICAgcC0+di5saXRl cmFsLmxlbmd0aCA9IGN0eC0+bGVuOworICAgICB9CisrICBlbHNlIGlmIChkd2FyZl9leHByX3N0 YWNrX2VtcHR5X3AgKGN0eCkpCisrICAgIHsKKysgICAgICBwLT5sb2NhdGlvbiA9IERXQVJGX1ZB TFVFX09QVElNSVpFRF9PVVQ7CisrICAgICAgLyogQWxzbyByZXNldCB0aGUgY29udGV4dCdzIGxv Y2F0aW9uLCBmb3Igb3VyIGNhbGxlcnMuICBUaGlzIGlzCisrCSBhIHNvbWV3aGF0IHN0cmFuZ2Ug YXBwcm9hY2gsIGJ1dCB0aGlzIGxldHMgdXMgYXZvaWQgc2V0dGluZworKwkgdGhlIGxvY2F0aW9u IHRvIERXQVJGX1ZBTFVFX01FTU9SWSBpbiBhbGwgdGhlIGluZGl2aWR1YWwKKysJIGNhc2VzIGlu IHRoZSBldmFsdWF0b3IuICAqLworKyAgICAgIGN0eC0+bG9jYXRpb24gPSBEV0FSRl9WQUxVRV9P UFRJTUlaRURfT1VUOworKyAgICB9CisgICBlbHNlCisgICAgIHsKKyAgICAgICBwLT52LmV4cHIu dmFsdWUgPSBkd2FyZl9leHByX2ZldGNoIChjdHgsIDApOworQEAgLTg1OSw3ICs4NzYsOCBAQAor IAorICAgICAgICAgICAgIC8qIFBvcCBvZmYgdGhlIGFkZHJlc3MvcmVnbnVtLCBhbmQgcmVzZXQg dGhlIGxvY2F0aW9uCisgCSAgICAgICB0eXBlLiAgKi8KKy0JICAgIGlmIChjdHgtPmxvY2F0aW9u ICE9IERXQVJGX1ZBTFVFX0xJVEVSQUwpCisrCSAgICBpZiAoY3R4LT5sb2NhdGlvbiAhPSBEV0FS Rl9WQUxVRV9MSVRFUkFMCisrCQkmJiBjdHgtPmxvY2F0aW9uICE9IERXQVJGX1ZBTFVFX09QVElN SVpFRF9PVVQpCisgCSAgICAgIGR3YXJmX2V4cHJfcG9wIChjdHgpOworICAgICAgICAgICAgIGN0 eC0+bG9jYXRpb24gPSBEV0FSRl9WQUxVRV9NRU1PUlk7CisgICAgICAgICAgIH0KKy0tLSBzcmMv Z2RiL2R3YXJmMmV4cHIuaAkyMDEwLzAxLzAxIDA3OjMxOjMwCTEuMjAKKysrKyBzcmMvZ2RiL2R3 YXJmMmV4cHIuaAkyMDEwLzA1LzIxIDIxOjAxOjQ2CTEuMjEKK0BAIC0zOCw3ICszOCwxMCBAQAor ICAgRFdBUkZfVkFMVUVfU1RBQ0ssCisgCisgICAvKiBUaGUgcGllY2UgaXMgYSBsaXRlcmFsLiAg Ki8KKy0gIERXQVJGX1ZBTFVFX0xJVEVSQUwKKysgIERXQVJGX1ZBTFVFX0xJVEVSQUwsCisrCisr ICAvKiBUaGUgcGllY2Ugd2FzIG9wdGltaXplZCBvdXQuICAqLworKyAgRFdBUkZfVkFMVUVfT1BU SU1JWkVEX09VVAorIH07CisgCisgLyogVGhlIGR3YXJmIGV4cHJlc3Npb24gc3RhY2suICAqLwor LS0tIHNyYy9nZGIvZHdhcmYybG9jLmMJMjAxMC8wNS8yMSAyMDozOTo1MAkxLjc5CisrKysgc3Jj L2dkYi9kd2FyZjJsb2MuYwkyMDEwLzA1LzIxIDIxOjAxOjQ2CTEuODAKK0BAIC0zODQsNiArMzg0 LDE2IEBACisgCSAgfQorIAkgIGJyZWFrOworIAorKwljYXNlIERXQVJGX1ZBTFVFX09QVElNSVpF RF9PVVQ6CisrCSAgLyogV2UganVzdCBsZWF2ZSB0aGUgYml0cyBlbXB0eSBmb3Igbm93LiAgVGhp cyBpcyBub3QgaWRlYWwKKysJICAgICBidXQgZ2RiIGN1cnJlbnRseSBkb2VzIG5vdCBoYXZlIGEg bmljZSB3YXkgdG8gcmVwcmVzZW50CisrCSAgICAgb3B0aW1pemVkLW91dCBwaWVjZXMuICAqLwor KwkgIHdhcm5pbmcgKF8oImJ5dGVzICVsZC0lbGQgaW4gY29tcHV0ZWQgb2JqZWN0IHdlcmUgb3B0 aW1pemVkIG91dDsgIgorKwkJICAgICAicmVwbGFjaW5nIHdpdGggemVyb2VzIiksCisrCQkgICBv ZmZzZXQsCisrCQkgICBvZmZzZXQgKyAobG9uZykgdGhpc19zaXplKTsKKysJICBicmVhazsKKysK KyAJZGVmYXVsdDoKKyAJICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLCBfKCJp bnZhbGlkIGxvY2F0aW9uIHR5cGUiKSk7CisgCX0KK0BAIC02MDksNiArNjE5LDkgQEAKKyAJICB9 CisgCSAgYnJlYWs7CisgCisrCSAgLyogRFdBUkZfVkFMVUVfT1BUSU1JWkVEX09VVCBjYW4ndCBv Y2N1ciBpbiB0aGlzIGNvbnRleHQgLS0KKysJICAgICBpdCBjYW4gb25seSBiZSBlbmNvdW50ZXJl ZCB3aGVuIG1ha2luZyBhIHBpZWNlLiAgKi8KKysJY2FzZSBEV0FSRl9WQUxVRV9PUFRJTUlaRURf T1VUOgorIAlkZWZhdWx0OgorIAkgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18s IF8oImludmFsaWQgbG9jYXRpb24gdHlwZSIpKTsKKyAJfQorLS0tIHNyYy9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvcGllY2VzLlMJMjAxMC8wNS8yMSAyMDozOTo1MAkxLjEKKysrKyBzcmMvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3BpZWNlcy5TCTIwMTAvMDUvMjEgMjE6MDE6NDYJMS4yCitA QCAtMzcsMTkgKzM3LDE5IEBACisgYmFyOgorIC5MRkIwOgorIAkuZmlsZSAxICJwaWVjZXMuYyIK Ky0JIyBwaWVjZXMuYzoyOAorLQkubG9jIDEgMjggMAorKwkjIHBpZWNlcy5jOjI5CisrCS5sb2Mg MSAyOSAwCisgLkxWTDA6CisgCSMgYmFzaWMgYmxvY2sgMgorIAlwdXNobAklZWJwCisgLkxDRkkw OgorIAltb3ZsCSVlc3AsICVlYnAKKyAuTENGSTE6CistCSMgcGllY2VzLmM6MjkKKy0JLmxvYyAx IDI5IDAKKy0JbW92bAk4KCVlYnApLCAlZWF4CisgCSMgcGllY2VzLmM6MzAKKyAJLmxvYyAxIDMw IDAKKysJbW92bAk4KCVlYnApLCAlZWF4CisrCSMgcGllY2VzLmM6MzEKKysJLmxvYyAxIDMxIDAK KyAJcG9wbAklZWJwCisgLkxDRkkyOgorIAlyZXQKK0BAIC02MCw4ICs2MCw4IEBACisgCS50eXBl CWYxLCBAZnVuY3Rpb24KKyBmMToKKyAuTEZCMToKKy0JIyBwaWVjZXMuYzozNAorLQkubG9jIDEg MzQgMAorKwkjIHBpZWNlcy5jOjM1CisrCS5sb2MgMSAzNSAwCisgLkxWTDE6CisgCSMgYmFzaWMg YmxvY2sgMgorIAlwdXNobAklZWJwCitAQCAtNzMsMzYgKzczLDM2IEBACisgLkxDRkk1OgorIAlt b3ZsCSVlc2ksIC00KCVlYnApCisgLkxDRkk2OgorLQkjIHBpZWNlcy5jOjM3CistCS5sb2MgMSAz NyAwCisrCSMgcGllY2VzLmM6MzgKKysJLmxvYyAxIDM4IDAKKyAJbW92bAk4KCVlYnApLCAlZXNp CistCSMgcGllY2VzLmM6MzQKKy0JLmxvYyAxIDM0IDAKKysJIyBwaWVjZXMuYzozNQorKwkubG9j IDEgMzUgMAorIAltb3ZsCSVlYngsIC04KCVlYnApCisgLkxDRkk3OgorLQkjIHBpZWNlcy5jOjM2 CistCS5sb2MgMSAzNiAwCisrCSMgcGllY2VzLmM6MzcKKysJLmxvYyAxIDM3IDAKKyAJbW92bAkk NCwgJWVieAorIC5MVkwzOgorKwkjIHBpZWNlcy5jOjM5CisrCS5sb2MgMSAzOSAwCisrCW1vdmwJ JWVieCwgKCVlc3ApCisgCSMgcGllY2VzLmM6MzgKKyAJLmxvYyAxIDM4IDAKKy0JbW92bAklZWJ4 LCAoJWVzcCkKKy0JIyBwaWVjZXMuYzozNworLQkubG9jIDEgMzcgMAorIAlhZGRsCSQ3LCAlZXNp CisgLkxWTDQ6CistCSMgcGllY2VzLmM6MzgKKy0JLmxvYyAxIDM4IDAKKy0JY2FsbAliYXIKKyAJ IyBwaWVjZXMuYzozOQorIAkubG9jIDEgMzkgMAorLQltb3ZsCSVlc2ksICglZXNwKQorIAljYWxs CWJhcgorIAkjIHBpZWNlcy5jOjQwCisgCS5sb2MgMSA0MCAwCistCWxlYWwJKCVlYngsJWVzaSks ICVlYXgKKysJbW92bAklZXNpLCAoJWVzcCkKKysJY2FsbAliYXIKKyAJIyBwaWVjZXMuYzo0MQor IAkubG9jIDEgNDEgMAorKwlsZWFsCSglZWJ4LCVlc2kpLCAlZWF4CisrCSMgcGllY2VzLmM6NDIK KysJLmxvYyAxIDQyIDAKKyAJbW92bAktOCglZWJwKSwgJWVieAorIC5MVkw1OgorIAltb3ZsCS00 KCVlYnApLCAlZXNpCitAQCAtMTE5LDggKzExOSw4IEBACisgCS50eXBlCWYyLCBAZnVuY3Rpb24K KyBmMjoKKyAuTEZCMjoKKy0JIyBwaWVjZXMuYzo0NQorLQkubG9jIDEgNDUgMAorKwkjIHBpZWNl cy5jOjQ2CisrCS5sb2MgMSA0NiAwCisgLkxWTDc6CisgCSMgYmFzaWMgYmxvY2sgMgorIAlwdXNo bAklZWJwCitAQCAtMTMyLDM2ICsxMzIsMzYgQEAKKyAuTENGSTEyOgorIAltb3ZsCSVlc2ksIC00 KCVlYnApCisgLkxDRkkxMzoKKy0JIyBwaWVjZXMuYzo0OAorLQkubG9jIDEgNDggMAorKwkjIHBp ZWNlcy5jOjQ5CisrCS5sb2MgMSA0OSAwCisgCW1vdmwJOCglZWJwKSwgJWVzaQorLQkjIHBpZWNl cy5jOjQ1CistCS5sb2MgMSA0NSAwCisrCSMgcGllY2VzLmM6NDYKKysJLmxvYyAxIDQ2IDAKKyAJ bW92bAklZWJ4LCAtOCglZWJwKQorIC5MQ0ZJMTQ6CistCSMgcGllY2VzLmM6NDcKKy0JLmxvYyAx IDQ3IDAKKysJIyBwaWVjZXMuYzo0OAorKwkubG9jIDEgNDggMAorIAltb3ZsCSQ0LCAlZWJ4Cisg LkxWTDk6CisrCSMgcGllY2VzLmM6NTAKKysJLmxvYyAxIDUwIDAKKysJbW92bAklZWJ4LCAoJWVz cCkKKyAJIyBwaWVjZXMuYzo0OQorIAkubG9jIDEgNDkgMAorLQltb3ZsCSVlYngsICglZXNwKQor LQkjIHBpZWNlcy5jOjQ4CistCS5sb2MgMSA0OCAwCisgCWFkZGwJJDcsICVlc2kKKyAuTFZMMTA6 CistCSMgcGllY2VzLmM6NDkKKy0JLmxvYyAxIDQ5IDAKKy0JY2FsbAliYXIKKyAJIyBwaWVjZXMu Yzo1MAorIAkubG9jIDEgNTAgMAorLQltb3ZsCSVlc2ksICglZXNwKQorIAljYWxsCWJhcgorIAkj IHBpZWNlcy5jOjUxCisgCS5sb2MgMSA1MSAwCistCWxlYWwJKCVlYngsJWVzaSksICVlYXgKKysJ bW92bAklZXNpLCAoJWVzcCkKKysJY2FsbAliYXIKKyAJIyBwaWVjZXMuYzo1MgorIAkubG9jIDEg NTIgMAorKwlsZWFsCSglZWJ4LCVlc2kpLCAlZWF4CisrCSMgcGllY2VzLmM6NTMKKysJLmxvYyAx IDUzIDAKKyAJbW92bAktOCglZWJwKSwgJWVieAorIC5MVkwxMToKKyAJbW92bAktNCglZWJwKSwg JWVzaQorQEAgLTE3OCw1OSArMTc4LDU5IEBACisgCS50eXBlCWYzLCBAZnVuY3Rpb24KKyBmMzoK KyAuTEZCMzoKKy0JIyBwaWVjZXMuYzo1NgorLQkubG9jIDEgNTYgMAorKwkjIHBpZWNlcy5jOjU3 CisrCS5sb2MgMSA1NyAwCisgLkxWTDEzOgorIAkjIGJhc2ljIGJsb2NrIDIKKyAJcHVzaGwJJWVi cAorIC5MQ0ZJMTc6CistCSMgcGllY2VzLmM6NTgKKy0JLmxvYyAxIDU4IDAKKysJIyBwaWVjZXMu Yzo1OQorKwkubG9jIDEgNTkgMAorIAltb3ZsCSQ0LCAlZWR4CistCSMgcGllY2VzLmM6NTYKKy0J LmxvYyAxIDU2IDAKKysJIyBwaWVjZXMuYzo1NworKwkubG9jIDEgNTcgMAorIAltb3ZsCSVlc3As ICVlYnAKKyAuTENGSTE4OgorIC5MVkwxNDoKKyAJc3VibAkkMTIsICVlc3AKKyAuTENGSTE5Ogor LQkjIHBpZWNlcy5jOjU4CistCS5sb2MgMSA1OCAwCisrCSMgcGllY2VzLmM6NTkKKysJLmxvYyAx IDU5IDAKKyAuTFZMMTU6CistCSMgcGllY2VzLmM6NTYKKy0JLmxvYyAxIDU2IDAKKysJIyBwaWVj ZXMuYzo1NworKwkubG9jIDEgNTcgMAorIAltb3ZsCSVlc2ksIC00KCVlYnApCisgLkxDRkkyMDoK Ky0JIyBwaWVjZXMuYzo2MAorLQkubG9jIDEgNjAgMAorKwkjIHBpZWNlcy5jOjYxCisrCS5sb2Mg MSA2MSAwCisgCW1vdnN3bAklZHgsICVlc2kKKy0JIyBwaWVjZXMuYzo1NgorLQkubG9jIDEgNTYg MAorKwkjIHBpZWNlcy5jOjU3CisrCS5sb2MgMSA1NyAwCisgCW1vdmwJJWVieCwgLTgoJWVicCkK KyAuTENGSTIxOgorLQkjIHBpZWNlcy5jOjYwCistCS5sb2MgMSA2MCAwCisrCSMgcGllY2VzLmM6 NjEKKysJLmxvYyAxIDYxIDAKKyAJbW92bAklZXNpLCAoJWVzcCkKKyAJY2FsbAliYXIKKyAuTFZM MTY6CistCSMgcGllY2VzLmM6NTcKKy0JLmxvYyAxIDU3IDAKKysJIyBwaWVjZXMuYzo1OAorKwku bG9jIDEgNTggMAorIAltb3ZsCTgoJWVicCksICVlZHgKKyAJc2FsbAkkNCwgJWVkeAorLQkjIHBp ZWNlcy5jOjU5CistCS5sb2MgMSA1OSAwCisrCSMgcGllY2VzLmM6NjAKKysJLmxvYyAxIDYwIDAK KyAJYWRkbAkkMTEyLCAlZWR4CisgCXNhcncJJDQsICVkeAorLQkjIHBpZWNlcy5jOjYxCistCS5s b2MgMSA2MSAwCisrCSMgcGllY2VzLmM6NjIKKysJLmxvYyAxIDYyIDAKKyAJbW92c3dsCSVkeCwg JWVieAorIAltb3ZsCSVlYngsICglZXNwKQorIAljYWxsCWJhcgorLQkjIHBpZWNlcy5jOjYyCist CS5sb2MgMSA2MiAwCistCWxlYWwJKCVlc2ksJWVieCksICVlYXgKKyAJIyBwaWVjZXMuYzo2Mwor IAkubG9jIDEgNjMgMAorKwlsZWFsCSglZXNpLCVlYngpLCAlZWF4CisrCSMgcGllY2VzLmM6NjQK KysJLmxvYyAxIDY0IDAKKyAJbW92bAktOCglZWJwKSwgJWVieAorIAltb3ZsCS00KCVlYnApLCAl ZXNpCisgLkxWTDE3OgorQEAgLTI0Niw4ICsyNDYsOCBAQAorIAkudHlwZQlmNCwgQGZ1bmN0aW9u CisgZjQ6CisgLkxGQjQ6CistCSMgcGllY2VzLmM6NjcKKy0JLmxvYyAxIDY3IDAKKysJIyBwaWVj ZXMuYzo2OAorKwkubG9jIDEgNjggMAorIC5MVkwxODoKKyAJIyBiYXNpYyBibG9jayAyCisgCXB1 c2hsCSVlYnAKK0BAIC0yNjIsMjggKzI2MiwyOCBAQAorIC5MVkwxOToKKyAJbW92bAklZWJ4LCAt OCglZWJwKQorIC5MQ0ZJMjg6CistCSMgcGllY2VzLmM6NjkKKy0JLmxvYyAxIDY5IDAKKy0JbW92 bAklZXNpLCAlZWJ4CisgCSMgcGllY2VzLmM6NzAKKyAJLmxvYyAxIDcwIDAKKy0JYWRkbAkkMSwg JWVzaQorLQkjIHBpZWNlcy5jOjY5CistCS5sb2MgMSA2OSAwCistLkxWTDIwOgorKwltb3ZsCSVl c2ksICVlYngKKyAJIyBwaWVjZXMuYzo3MQorIAkubG9jIDEgNzEgMAorLQltb3ZsCSVlYngsICgl ZXNwKQorLQljYWxsCWJhcgorKwlhZGRsCSQxLCAlZXNpCisrCSMgcGllY2VzLmM6NzAKKysJLmxv YyAxIDcwIDAKKysuTFZMMjA6CisgCSMgcGllY2VzLmM6NzIKKyAJLmxvYyAxIDcyIDAKKy0JbW92 bAklZXNpLCAoJWVzcCkKKysJbW92bAklZWJ4LCAoJWVzcCkKKyAJY2FsbAliYXIKKyAJIyBwaWVj ZXMuYzo3MworIAkubG9jIDEgNzMgMAorLQlsZWFsCSglZWJ4LCVlc2kpLCAlZWF4CisrCW1vdmwJ JWVzaSwgKCVlc3ApCisrCWNhbGwJYmFyCisgCSMgcGllY2VzLmM6NzQKKyAJLmxvYyAxIDc0IDAK KysJbGVhbAkoJWVieCwlZXNpKSwgJWVheAorKwkjIHBpZWNlcy5jOjc1CisrCS5sb2MgMSA3NSAw CisgCW1vdmwJLTgoJWVicCksICVlYngKKyAuTFZMMjE6CisgCW1vdmwJLTQoJWVicCksICVlc2kK K0BAIC0zMDAsOCArMzAwLDggQEAKKyAJLnR5cGUJZjUsIEBmdW5jdGlvbgorIGY1OgorIC5MRkI1 OgorLQkjIHBpZWNlcy5jOjc4CistCS5sb2MgMSA3OCAwCisrCSMgcGllY2VzLmM6NzkKKysJLmxv YyAxIDc5IDAKKyAuTFZMMjM6CisgCSMgYmFzaWMgYmxvY2sgMgorIAlwdXNobAklZWJwCitAQCAt MzE2LDI4ICszMTYsMjggQEAKKyAuTFZMMjQ6CisgCW1vdmwJJWVieCwgLTgoJWVicCkKKyAuTENG STM1OgorLQkjIHBpZWNlcy5jOjgwCistCS5sb2MgMSA4MCAwCistCW1vdmwJJWVzaSwgJWVieAor IAkjIHBpZWNlcy5jOjgxCisgCS5sb2MgMSA4MSAwCistCWFkZGwJJDEsICVlc2kKKy0JIyBwaWVj ZXMuYzo4MAorLQkubG9jIDEgODAgMAorLS5MVkwyNToKKysJbW92bAklZXNpLCAlZWJ4CisgCSMg cGllY2VzLmM6ODIKKyAJLmxvYyAxIDgyIDAKKy0JbW92bAklZWJ4LCAoJWVzcCkKKy0JY2FsbAli YXIKKysJYWRkbAkkMSwgJWVzaQorKwkjIHBpZWNlcy5jOjgxCisrCS5sb2MgMSA4MSAwCisrLkxW TDI1OgorIAkjIHBpZWNlcy5jOjgzCisgCS5sb2MgMSA4MyAwCistCW1vdmwJJWVzaSwgKCVlc3Ap CisrCW1vdmwJJWVieCwgKCVlc3ApCisgCWNhbGwJYmFyCisgCSMgcGllY2VzLmM6ODQKKyAJLmxv YyAxIDg0IDAKKy0JbGVhbAkoJWVieCwlZXNpKSwgJWVheAorKwltb3ZsCSVlc2ksICglZXNwKQor KwljYWxsCWJhcgorIAkjIHBpZWNlcy5jOjg1CisgCS5sb2MgMSA4NSAwCisrCWxlYWwJKCVlYngs JWVzaSksICVlYXgKKysJIyBwaWVjZXMuYzo4NgorKwkubG9jIDEgODYgMAorIAltb3ZsCS04KCVl YnApLCAlZWJ4CisgLkxWTDI2OgorIAltb3ZsCS00KCVlYnApLCAlZXNpCitAQCAtMzUwLDYwICsz NTAsMTE4IEBACisgLkxGRTU6CisgCS5zaXplCWY1LCAuLWY1CisgCS5wMmFsaWduIDQsLDE1Cist Lmdsb2JsIG1haW4KKy0JLnR5cGUJbWFpbiwgQGZ1bmN0aW9uCistbWFpbjoKKysuZ2xvYmwgZjYK KysJLnR5cGUJZjYsIEBmdW5jdGlvbgorK2Y2OgorIC5MRkI2OgorLQkjIHBpZWNlcy5jOjg5Cist CS5sb2MgMSA4OSAwCisrCSMgcGllY2VzLmM6OTAKKysJLmxvYyAxIDkwIDAKKysuTFZMMjg6Cisg CSMgYmFzaWMgYmxvY2sgMgorIAlwdXNobAklZWJwCisgLkxDRkkzODoKKyAJbW92bAklZXNwLCAl ZWJwCisgLkxDRkkzOToKKy0JcHVzaGwJJWVieAorKwlzdWJsCSQxMiwgJWVzcAorIC5MQ0ZJNDA6 CistCSMgcGllY2VzLmM6OTEKKy0JLmxvYyAxIDkxIDAKKy0JbW92bAkkNywgJWVieAorLQkjIHBp ZWNlcy5jOjg5CistCS5sb2MgMSA4OSAwCistCXN1YmwJJDQsICVlc3AKKysJbW92bAklZXNpLCAt NCglZWJwKQorIC5MQ0ZJNDE6CistCSMgcGllY2VzLmM6OTEKKy0JLmxvYyAxIDkxIDAKKy0uTFZM Mjg6CistCSMgcGllY2VzLmM6OTIKKy0JLmxvYyAxIDkyIDAKKy0JbW92bAklZWJ4LCAoJWVzcCkK Ky0JY2FsbAlmMQorKwltb3ZsCTgoJWVicCksICVlc2kKKysuTFZMMjk6CisrCW1vdmwJJWVieCwg LTgoJWVicCkKKysuTENGSTQyOgorIAkjIHBpZWNlcy5jOjkzCisgCS5sb2MgMSA5MyAwCistCW1v dmwJJWVieCwgKCVlc3ApCistCWNhbGwJZjIKKysJbW92bAklZXNpLCAlZWJ4CisgCSMgcGllY2Vz LmM6OTQKKyAJLmxvYyAxIDk0IDAKKy0JbW92bAklZWJ4LCAoJWVzcCkKKy0JY2FsbAlmMworKwlh ZGRsCSQxLCAlZXNpCisrCSMgcGllY2VzLmM6OTMKKysJLmxvYyAxIDkzIDAKKysuTFZMMzA6Cisg CSMgcGllY2VzLmM6OTUKKyAJLmxvYyAxIDk1IDAKKyAJbW92bAklZWJ4LCAoJWVzcCkKKy0JY2Fs bAlmNAorKwljYWxsCWJhcgorIAkjIHBpZWNlcy5jOjk2CisgCS5sb2MgMSA5NiAwCistCW1vdmwJ JWVieCwgKCVlc3ApCistCWNhbGwJZjUKKysJbW92bAklZXNpLCAoJWVzcCkKKysJY2FsbAliYXIK KysJIyBwaWVjZXMuYzo5NworKwkubG9jIDEgOTcgMAorKwlsZWFsCSglZWJ4LCVlc2kpLCAlZWF4 CisgCSMgcGllY2VzLmM6OTgKKyAJLmxvYyAxIDk4IDAKKysJbW92bAktOCglZWJwKSwgJWVieAor Ky5MVkwzMToKKysJbW92bAktNCglZWJwKSwgJWVzaQorKy5MVkwzMjoKKysJbW92bAklZWJwLCAl ZXNwCisrLkxDRkk0MzoKKysJcG9wbAklZWJwCisrLkxDRkk0NDoKKysJcmV0CisrLkxGRTY6Cisr CS5zaXplCWY2LCAuLWY2CisrCS5wMmFsaWduIDQsLDE1CisrLmdsb2JsIG1haW4KKysJLnR5cGUJ bWFpbiwgQGZ1bmN0aW9uCisrbWFpbjoKKysuTEZCNzoKKysJIyBwaWVjZXMuYzoxMDIKKysJLmxv YyAxIDEwMiAwCisrCSMgYmFzaWMgYmxvY2sgMgorKwlwdXNobAklZWJwCisrLkxDRkk0NToKKysJ bW92bAklZXNwLCAlZWJwCisrLkxDRkk0NjoKKysJcHVzaGwJJWVieAorKy5MQ0ZJNDc6CisrCSMg cGllY2VzLmM6MTA0CisrCS5sb2MgMSAxMDQgMAorKwltb3ZsCSQ3LCAlZWJ4CisrCSMgcGllY2Vz LmM6MTAyCisrCS5sb2MgMSAxMDIgMAorKwlzdWJsCSQ0LCAlZXNwCisrLkxDRkk0ODoKKysJIyBw aWVjZXMuYzoxMDQKKysJLmxvYyAxIDEwNCAwCisrLkxWTDMzOgorKwkjIHBpZWNlcy5jOjEwNQor KwkubG9jIDEgMTA1IDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKysJY2FsbAlmMQorKwkjIHBpZWNl cy5jOjEwNgorKwkubG9jIDEgMTA2IDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKysJY2FsbAlmMgor KwkjIHBpZWNlcy5jOjEwNworKwkubG9jIDEgMTA3IDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKysJ Y2FsbAlmMworKwkjIHBpZWNlcy5jOjEwOAorKwkubG9jIDEgMTA4IDAKKysJbW92bAklZWJ4LCAo JWVzcCkKKysJY2FsbAlmNAorKwkjIHBpZWNlcy5jOjEwOQorKwkubG9jIDEgMTA5IDAKKysJbW92 bAklZWJ4LCAoJWVzcCkKKysJY2FsbAlmNQorKwkjIHBpZWNlcy5jOjExMAorKwkubG9jIDEgMTEw IDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKysJY2FsbAlmNgorKwkjIHBpZWNlcy5jOjExMgorKwku bG9jIDEgMTEyIDAKKyAJYWRkbAkkNCwgJWVzcAorIAl4b3JsCSVlYXgsICVlYXgKKyAJcG9wbAkl ZWJ4CistLkxDRkk0MjoKKy0uTFZMMjk6CisrLkxDRkk0OToKKysuTFZMMzQ6CisgCXBvcGwJJWVi cAorLS5MQ0ZJNDM6CisrLkxDRkk1MDoKKyAJcmV0CistLkxGRTY6CisrLkxGRTc6CisgCS5zaXpl CW1haW4sIC4tbWFpbgorICNBUFAKKyAJLnNlY3Rpb24JLmRlYnVnX2ZyYW1lLCIiLEBwcm9nYml0 cworQEAgLTY0OSwyMCArNzA3LDU3IEBACisgCS5ieXRlCTB4ZAkjIERXX0NGQV9kZWZfY2ZhX3Jl Z2lzdGVyCisgCS51bGViMTI4IDB4NQorIAkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0 CistCS5sb25nCS5MQ0ZJNDAtLkxDRkkzOQorKwkubG9uZwkuTENGSTQxLS5MQ0ZJMzkKKysJLmJ5 dGUJMHg4NgkjIERXX0NGQV9vZmZzZXQsIGNvbHVtbiAweDYKKysJLnVsZWIxMjggMHgzCisrCS5i eXRlCTB4NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkk0Mi0uTENGSTQxCisr CS5ieXRlCTB4ODMJIyBEV19DRkFfb2Zmc2V0LCBjb2x1bW4gMHgzCisrCS51bGViMTI4IDB4NAor KwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJNDMtLkxDRkk0 MgorKwkuYnl0ZQkweGQJIyBEV19DRkFfZGVmX2NmYV9yZWdpc3RlcgorKwkudWxlYjEyOCAweDQK KysJLmJ5dGUJMHhjNgkjIERXX0NGQV9yZXN0b3JlLCBjb2x1bW4gMHg2CisrCS5ieXRlCTB4YzMJ IyBEV19DRkFfcmVzdG9yZSwgY29sdW1uIDB4MworKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5j ZV9sb2M0CisrCS5sb25nCS5MQ0ZJNDQtLkxDRkk0MworKwkuYnl0ZQkweGM1CSMgRFdfQ0ZBX3Jl c3RvcmUsIGNvbHVtbiAweDUKKysJLmJ5dGUJMHhlCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0Cisr CS51bGViMTI4IDB4NAorKwkuYWxpZ24gNAorKy5MRUZERTEyOgorKy5MU0ZERTE0OgorKwkubG9u ZwkuTEVGREUxNC0uTEFTRkRFMTQJIyBGREUgTGVuZ3RoCisrLkxBU0ZERTE0OgorKwkubG9uZwku TGZyYW1lMAkjIEZERSBDSUUgb2Zmc2V0CisrCS5sb25nCS5MRkI3CSMgRkRFIGluaXRpYWwgbG9j YXRpb24KKysJLmxvbmcJLkxGRTctLkxGQjcJIyBGREUgYWRkcmVzcyByYW5nZQorKwkuYnl0ZQkw eDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJNDUtLkxGQjcKKysJLmJ5dGUJ MHhlCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0CisrCS51bGViMTI4IDB4OAorKwkuYnl0ZQkweDg1 CSMgRFdfQ0ZBX29mZnNldCwgY29sdW1uIDB4NQorKwkudWxlYjEyOCAweDIKKysJLmJ5dGUJMHg0 CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTQ2LS5MQ0ZJNDUKKysJLmJ5dGUJ MHhkCSMgRFdfQ0ZBX2RlZl9jZmFfcmVnaXN0ZXIKKysJLnVsZWIxMjggMHg1CisrCS5ieXRlCTB4 NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkk0Ny0uTENGSTQ2CisgCS5ieXRl CTB4ODMJIyBEV19DRkFfb2Zmc2V0LCBjb2x1bW4gMHgzCisgCS51bGViMTI4IDB4MworIAkuYnl0 ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CistCS5sb25nCS5MQ0ZJNDItLkxDRkk0MAorKwku bG9uZwkuTENGSTQ5LS5MQ0ZJNDcKKyAJLmJ5dGUJMHhjMwkjIERXX0NGQV9yZXN0b3JlLCBjb2x1 bW4gMHgzCisgCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKy0JLmxvbmcJLkxDRkk0 My0uTENGSTQyCisrCS5sb25nCS5MQ0ZJNTAtLkxDRkk0OQorIAkuYnl0ZQkweGM1CSMgRFdfQ0ZB X3Jlc3RvcmUsIGNvbHVtbiAweDUKKyAJLmJ5dGUJMHhjCSMgRFdfQ0ZBX2RlZl9jZmEKKyAJLnVs ZWIxMjggMHg0CisgCS51bGViMTI4IDB4NAorIAkuYWxpZ24gNAorLS5MRUZERTEyOgorKy5MRUZE RTE0OgorICNOT19BUFAKKyAJLnRleHQKKyAuTGV0ZXh0MDoKK0BAIC0xMTMwLDYgKzEyMjUsMTEg QEAKKyAJLmJ5dGUJMHg3NQkjIERXX09QX2JyZWc1CisgCS5zbGViMTI4IDgKKyAJLmxvbmcJLkxD Rkk0My0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxMSkKKysJ LmxvbmcJLkxDRkk0NC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNU MTEpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3 NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkk0NC0uTHRleHQwCSMg TG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxMSkKKyAJLmxvbmcJLkxGRTYtLkx0 ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDExKQorIAkudmFsdWUJMHgy CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisgCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAor QEAgLTExMzcsMTQgKzEyMzcsNzQgQEAKKyAJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWlu YXRvciBiZWdpbiAoKi5MTFNUMTEpCisgCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0 b3IgZW5kICgqLkxMU1QxMSkKKyAuTExTVDEyOgorLQkubG9uZwkuTFZMMjgtLkx0ZXh0MAkjIExv Y2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMTIpCistCS5sb25nCS5MVkwyOS0uTHRl eHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTIpCistCS52YWx1ZQkweDEJ IyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmxvbmcJLkxWTDI5LS5MdGV4dDAJIyBMb2Nh dGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDEyKQorKwkubG9uZwkuTFZMMzAtLkx0ZXh0 MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDEyKQorKwkudmFsdWUJMHhhCSMg TG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwku c2xlYjEyOCAwCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJ LmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisrCS5zbGViMTI4IDAKKysJLmJ5dGUJMHg5MwkjIERX X09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJ LnVsZWIxMjggMHg0CisrCS5sb25nCS5MVkwzMC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdp biBhZGRyZXNzICgqLkxMU1QxMikKKysJLmxvbmcJLkxWTDMxLS5MdGV4dDAJIyBMb2NhdGlvbiBs aXN0IGVuZCBhZGRyZXNzICgqLkxMU1QxMikKKysJLnZhbHVlCTB4OAkjIExvY2F0aW9uIGV4cHJl c3Npb24gc2l6ZQorIAkuYnl0ZQkweDUzCSMgRFdfT1BfcmVnMworKwkuYnl0ZQkweDkzCSMgRFdf T1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTB4NTYJIyBEV19PUF9yZWc2CisrCS5i eXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHg5MwkjIERX X09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkubG9uZwkuTFZMMzEtLkx0ZXh0MAkjIExvY2F0 aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMTIpCisrCS5sb25nCS5MVkwzMi0uTHRleHQw CSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTIpCisrCS52YWx1ZQkweDcJIyBM b2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51 bGViMTI4IDB4NAorKwkuYnl0ZQkweDU2CSMgRFdfT1BfcmVnNgorKwkuYnl0ZQkweDkzCSMgRFdf T1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwku dWxlYjEyOCAweDQKKyAJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAo Ki5MTFNUMTIpCisgCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxM U1QxMikKKysuTExTVDEzOgorKwkubG9uZwkuTEZCNy0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBi ZWdpbiBhZGRyZXNzICgqLkxMU1QxMykKKysJLmxvbmcJLkxDRkk0NS0uTHRleHQwCSMgTG9jYXRp b24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTMpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBl eHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDQK KysJLmxvbmcJLkxDRkk0NS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgq LkxMU1QxMykKKysJLmxvbmcJLkxDRkk0Ni0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRk cmVzcyAoKi5MTFNUMTMpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUK KysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkk0 Ni0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxMykKKysJLmxv bmcJLkxDRkk1MC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTMp CisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NQkj IERXX09QX2JyZWc1CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkk1MC0uTHRleHQwCSMgTG9j YXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxMykKKysJLmxvbmcJLkxGRTctLkx0ZXh0 MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDEzKQorKwkudmFsdWUJMHgyCSMg TG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwku c2xlYjEyOCA0CisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgYmVnaW4gKCou TExTVDEzKQorKwkubG9uZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGVuZCAoKi5MTFNU MTMpCisrLkxMU1QxNDoKKysJLmxvbmcJLkxWTDMzLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJl Z2luIGFkZHJlc3MgKCouTExTVDE0KQorKwkubG9uZwkuTFZMMzQtLkx0ZXh0MAkjIExvY2F0aW9u IGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDE0KQorKwkudmFsdWUJMHgxCSMgTG9jYXRpb24gZXhw cmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NTMJIyBEV19PUF9yZWczCisrCS5sb25nCTAJIyBMb2Nh dGlvbiBsaXN0IHRlcm1pbmF0b3IgYmVnaW4gKCouTExTVDE0KQorKwkubG9uZwkwCSMgTG9jYXRp b24gbGlzdCB0ZXJtaW5hdG9yIGVuZCAoKi5MTFNUMTQpCisgCS5zZWN0aW9uCS5kZWJ1Z19pbmZv CistCS5sb25nCTB4MWUzCSMgTGVuZ3RoIG9mIENvbXBpbGF0aW9uIFVuaXQgSW5mbworKwkubG9u ZwkweDI1MgkjIExlbmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8KKyAJLnZhbHVlCTB4Mgkj IERXQVJGIHZlcnNpb24gbnVtYmVyCisgCS5sb25nCS5MZGVidWdfYWJicmV2MAkjIE9mZnNldCBJ bnRvIEFiYnJldi4gU2VjdGlvbgorIAkuYnl0ZQkweDQJIyBQb2ludGVyIFNpemUgKGluIGJ5dGVz KQorQEAgLTEyMTIsMTgyICsxMzcyLDI0NSBAQAorIAkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1c191 Y29uc3QKKyAJLnVsZWIxMjggMAorIAkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAw eDRmCistCS51bGViMTI4IDB4NgkjIChESUUgKDB4NzgpIERXX1RBR19zdWJwcm9ncmFtKQorKwku dWxlYjEyOCAweDIJIyAoRElFICgweDc4KSBEV19UQUdfc3RydWN0dXJlX3R5cGUpCisrCS5hc2Np aSAiQ1wwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHhjCSMgRFdfQVRfYnl0ZV9zaXplCisrCS5i eXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRlCTB4MTkJIyBEV19B VF9kZWNsX2xpbmUKKysJLmxvbmcJMHhhNwkjIERXX0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHgz CSMgKERJRSAoMHg4MikgRFdfVEFHX21lbWJlcikKKysJLmFzY2lpICJpXDAiCSMgRFdfQVRfbmFt ZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwkuYnl0ZQkweDE5 CSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisrCS5ieXRlCTB4 MgkjIERXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uCisrCS5ieXRlCTB4MjMJIyBEV19PUF9wbHVz X3Vjb25zdAorKwkudWxlYjEyOCAwCisrCS51bGViMTI4IDB4MwkjIChESUUgKDB4OGUpIERXX1RB R19tZW1iZXIpCisrCS5hc2NpaSAialwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdf QVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHgxOQkjIERXX0FUX2RlY2xfbGluZQor KwkubG9uZwkweDQ4CSMgRFdfQVRfdHlwZQorKwkuYnl0ZQkweDIJIyBEV19BVF9kYXRhX21lbWJl cl9sb2NhdGlvbgorKwkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjgg MHg0CisrCS51bGViMTI4IDB4MwkjIChESUUgKDB4OWEpIERXX1RBR19tZW1iZXIpCisrCS5hc2Np aSAicVwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVj ZXMuYykKKysJLmJ5dGUJMHgxOQkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDQ4CSMgRFdf QVRfdHlwZQorKwkuYnl0ZQkweDIJIyBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbgorKwkuYnl0 ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg4CisrCS5ieXRlCTAJIyBl bmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4NzgKKysJLnVsZWIxMjggMHg2CSMgKERJRSAoMHhhNykg RFdfVEFHX3N1YnByb2dyYW0pCisgCS5ieXRlCTB4MQkjIERXX0FUX2V4dGVybmFsCisgCS5hc2Np aSAiYmFyXDAiCSMgRFdfQVRfbmFtZQorIAkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBp ZWNlcy5jKQorLQkuYnl0ZQkweDFiCSMgRFdfQVRfZGVjbF9saW5lCisrCS5ieXRlCTB4MWMJIyBE V19BVF9kZWNsX2xpbmUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfcHJvdG90eXBlZAorIAkubG9uZwku TEZCMAkjIERXX0FUX2xvd19wYworIAkubG9uZwkuTEZFMAkjIERXX0FUX2hpZ2hfcGMKKyAJLmxv bmcJLkxMU1QwCSMgRFdfQVRfZnJhbWVfYmFzZQorLQkubG9uZwkweDllCSMgRFdfQVRfc2libGlu ZworLQkudWxlYjEyOCAweDcJIyAoRElFICgweDkxKSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikK KysJLmxvbmcJMHhjZAkjIERXX0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHg3CSMgKERJRSAoMHhj MCkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisgCS5hc2NpaSAieFwwIgkjIERXX0FUX25hbWUK KyAJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKy0JLmJ5dGUJMHgxYgkj IERXX0FUX2RlY2xfbGluZQorKwkuYnl0ZQkweDFjCSMgRFdfQVRfZGVjbF9saW5lCisgCS5sb25n CTB4NDgJIyBEV19BVF90eXBlCisgCS5ieXRlCTB4MgkjIERXX0FUX2xvY2F0aW9uCisgCS5ieXRl CTB4OTEJIyBEV19PUF9mYnJlZworIAkuc2xlYjEyOCAwCistCS5ieXRlCTAJIyBlbmQgb2YgY2hp bGRyZW4gb2YgRElFIDB4NzgKKy0JLnVsZWIxMjggMHg4CSMgKERJRSAoMHg5ZSkgRFdfVEFHX3N1 YnByb2dyYW0pCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YTcKKysJLnVs ZWIxMjggMHg4CSMgKERJRSAoMHhjZCkgRFdfVEFHX3N1YnByb2dyYW0pCisgCS5ieXRlCTB4MQkj IERXX0FUX2V4dGVybmFsCisgCS5hc2NpaSAiZjFcMCIJIyBEV19BVF9uYW1lCisgCS5ieXRlCTB4 MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCistCS5ieXRlCTB4MjEJIyBEV19BVF9kZWNs X2xpbmUKKysJLmJ5dGUJMHgyMgkjIERXX0FUX2RlY2xfbGluZQorIAkuYnl0ZQkweDEJIyBEV19B VF9wcm90b3R5cGVkCisgCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisgCS5sb25nCS5MRkIxCSMg RFdfQVRfbG93X3BjCisgCS5sb25nCS5MRkUxCSMgRFdfQVRfaGlnaF9wYworIAkubG9uZwkuTExT VDEJIyBEV19BVF9mcmFtZV9iYXNlCistCS5sb25nCTB4ZDQJIyBEV19BVF9zaWJsaW5nCistCS51 bGViMTI4IDB4NwkjIChESUUgKDB4YmEpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorKwkubG9u ZwkweDEwMwkjIERXX0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHg3CSMgKERJRSAoMHhlOSkgRFdf VEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisgCS5hc2NpaSAia1wwIgkjIERXX0FUX25hbWUKKyAJLmJ5 dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKy0JLmJ5dGUJMHgyMQkjIERXX0FU X2RlY2xfbGluZQorKwkuYnl0ZQkweDIyCSMgRFdfQVRfZGVjbF9saW5lCisgCS5sb25nCTB4NDgJ IyBEV19BVF90eXBlCisgCS5ieXRlCTB4MgkjIERXX0FUX2xvY2F0aW9uCisgCS5ieXRlCTB4OTEJ IyBEV19PUF9mYnJlZworIAkuc2xlYjEyOCAwCistCS51bGViMTI4IDB4OQkjIChESUUgKDB4YzYp IERXX1RBR192YXJpYWJsZSkKKysJLnVsZWIxMjggMHg5CSMgKERJRSAoMHhmNSkgRFdfVEFHX3Zh cmlhYmxlKQorIAkuYXNjaWkgImFcMCIJIyBEV19BVF9uYW1lCisgCS5ieXRlCTB4MQkjIERXX0FU X2RlY2xfZmlsZSAocGllY2VzLmMpCistCS5ieXRlCTB4MjMJIyBEV19BVF9kZWNsX2xpbmUKKysJ LmJ5dGUJMHgyNAkjIERXX0FUX2RlY2xfbGluZQorIAkubG9uZwkweDI1CSMgRFdfQVRfdHlwZQor IAkubG9uZwkuTExTVDIJIyBEV19BVF9sb2NhdGlvbgorLQkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxk cmVuIG9mIERJRSAweDllCistCS51bGViMTI4IDB4OAkjIChESUUgKDB4ZDQpIERXX1RBR19zdWJw cm9ncmFtKQorKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweGNkCisrCS51bGVi MTI4IDB4OAkjIChESUUgKDB4MTAzKSBEV19UQUdfc3VicHJvZ3JhbSkKKyAJLmJ5dGUJMHgxCSMg RFdfQVRfZXh0ZXJuYWwKKyAJLmFzY2lpICJmMlwwIgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJMHgx CSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKy0JLmJ5dGUJMHgyYwkjIERXX0FUX2RlY2xf bGluZQorKwkuYnl0ZQkweDJkCSMgRFdfQVRfZGVjbF9saW5lCisgCS5ieXRlCTB4MQkjIERXX0FU X3Byb3RvdHlwZWQKKyAJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKyAJLmxvbmcJLkxGQjIJIyBE V19BVF9sb3dfcGMKKyAJLmxvbmcJLkxGRTIJIyBEV19BVF9oaWdoX3BjCisgCS5sb25nCS5MTFNU MwkjIERXX0FUX2ZyYW1lX2Jhc2UKKy0JLmxvbmcJMHgxMGEJIyBEV19BVF9zaWJsaW5nCistCS51 bGViMTI4IDB4NwkjIChESUUgKDB4ZjApIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorKwkubG9u ZwkweDEzOQkjIERXX0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHg3CSMgKERJRSAoMHgxMWYpIERX X1RBR19mb3JtYWxfcGFyYW1ldGVyKQorIAkuYXNjaWkgImtcMCIJIyBEV19BVF9uYW1lCisgCS5i eXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCistCS5ieXRlCTB4MmMJIyBEV19B VF9kZWNsX2xpbmUKKysJLmJ5dGUJMHgyZAkjIERXX0FUX2RlY2xfbGluZQorIAkubG9uZwkweDQ4 CSMgRFdfQVRfdHlwZQorIAkuYnl0ZQkweDIJIyBEV19BVF9sb2NhdGlvbgorIAkuYnl0ZQkweDkx CSMgRFdfT1BfZmJyZWcKKyAJLnNsZWIxMjggMAorLQkudWxlYjEyOCAweDkJIyAoRElFICgweGZj KSBEV19UQUdfdmFyaWFibGUpCisrCS51bGViMTI4IDB4OQkjIChESUUgKDB4MTJiKSBEV19UQUdf dmFyaWFibGUpCisgCS5hc2NpaSAiYVwwIgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJMHgxCSMgRFdf QVRfZGVjbF9maWxlIChwaWVjZXMuYykKKy0JLmJ5dGUJMHgyZQkjIERXX0FUX2RlY2xfbGluZQor LQkubG9uZwkweDEwYQkjIERXX0FUX3R5cGUKKysJLmJ5dGUJMHgyZgkjIERXX0FUX2RlY2xfbGlu ZQorKwkubG9uZwkweDEzOQkjIERXX0FUX3R5cGUKKyAJLmxvbmcJLkxMU1Q0CSMgRFdfQVRfbG9j YXRpb24KKy0JLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHhkNAorLQkudWxlYjEy OCAweGEJIyAoRElFICgweDEwYSkgRFdfVEFHX2FycmF5X3R5cGUpCisrCS5ieXRlCTAJIyBlbmQg b2YgY2hpbGRyZW4gb2YgRElFIDB4MTAzCisrCS51bGViMTI4IDB4YQkjIChESUUgKDB4MTM5KSBE V19UQUdfYXJyYXlfdHlwZSkKKyAJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKy0JLmxvbmcJMHgx MWEJIyBEV19BVF9zaWJsaW5nCistCS51bGViMTI4IDB4YgkjIChESUUgKDB4MTEzKSBEV19UQUdf c3VicmFuZ2VfdHlwZSkKKy0JLmxvbmcJMHgxMWEJIyBEV19BVF90eXBlCisrCS5sb25nCTB4MTQ5 CSMgRFdfQVRfc2libGluZworKwkudWxlYjEyOCAweGIJIyAoRElFICgweDE0MikgRFdfVEFHX3N1 YnJhbmdlX3R5cGUpCisrCS5sb25nCTB4MTQ5CSMgRFdfQVRfdHlwZQorIAkuYnl0ZQkweDEJIyBE V19BVF91cHBlcl9ib3VuZAorLQkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDEw YQorLQkudWxlYjEyOCAweGMJIyAoRElFICgweDExYSkgRFdfVEFHX2Jhc2VfdHlwZSkKKysJLmJ5 dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxMzkKKysJLnVsZWIxMjggMHhjCSMgKERJ RSAoMHgxNDkpIERXX1RBR19iYXNlX3R5cGUpCisgCS5ieXRlCTB4NAkjIERXX0FUX2J5dGVfc2l6 ZQorIAkuYnl0ZQkweDcJIyBEV19BVF9lbmNvZGluZworLQkudWxlYjEyOCAweDgJIyAoRElFICgw eDExZCkgRFdfVEFHX3N1YnByb2dyYW0pCisrCS51bGViMTI4IDB4OAkjIChESUUgKDB4MTRjKSBE V19UQUdfc3VicHJvZ3JhbSkKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZXh0ZXJuYWwKKyAJLmFzY2lp ICJmM1wwIgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVj ZXMuYykKKy0JLmJ5dGUJMHgzNwkjIERXX0FUX2RlY2xfbGluZQorKwkuYnl0ZQkweDM4CSMgRFdf QVRfZGVjbF9saW5lCisgCS5ieXRlCTB4MQkjIERXX0FUX3Byb3RvdHlwZWQKKyAJLmxvbmcJMHg0 OAkjIERXX0FUX3R5cGUKKyAJLmxvbmcJLkxGQjMJIyBEV19BVF9sb3dfcGMKKyAJLmxvbmcJLkxG RTMJIyBEV19BVF9oaWdoX3BjCisgCS5sb25nCS5MTFNUNQkjIERXX0FUX2ZyYW1lX2Jhc2UKKy0J LmxvbmcJMHgxNTMJIyBEV19BVF9zaWJsaW5nCistCS51bGViMTI4IDB4NwkjIChESUUgKDB4MTM5 KSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKysJLmxvbmcJMHgxODIJIyBEV19BVF9zaWJsaW5n CisrCS51bGViMTI4IDB4NwkjIChESUUgKDB4MTY4KSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikK KyAJLmFzY2lpICJrXDAiCSMgRFdfQVRfbmFtZQorIAkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2Zp bGUgKHBpZWNlcy5jKQorLQkuYnl0ZQkweDM3CSMgRFdfQVRfZGVjbF9saW5lCisrCS5ieXRlCTB4 MzgJIyBEV19BVF9kZWNsX2xpbmUKKyAJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKyAJLmJ5dGUJ MHgyCSMgRFdfQVRfbG9jYXRpb24KKyAJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisgCS5zbGVi MTI4IDAKKy0JLnVsZWIxMjggMHg5CSMgKERJRSAoMHgxNDUpIERXX1RBR192YXJpYWJsZSkKKysJ LnVsZWIxMjggMHg5CSMgKERJRSAoMHgxNzQpIERXX1RBR192YXJpYWJsZSkKKyAJLmFzY2lpICJh XDAiCSMgRFdfQVRfbmFtZQorIAkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5j KQorLQkuYnl0ZQkweDM5CSMgRFdfQVRfZGVjbF9saW5lCisrCS5ieXRlCTB4M2EJIyBEV19BVF9k ZWNsX2xpbmUKKyAJLmxvbmcJMHg0ZgkjIERXX0FUX3R5cGUKKyAJLmxvbmcJLkxMU1Q2CSMgRFdf QVRfbG9jYXRpb24KKy0JLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxMWQKKy0J LnVsZWIxMjggMHg4CSMgKERJRSAoMHgxNTMpIERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkw CSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDE0YworKwkudWxlYjEyOCAweDgJIyAoRElFICgw eDE4MikgRFdfVEFHX3N1YnByb2dyYW0pCisgCS5ieXRlCTB4MQkjIERXX0FUX2V4dGVybmFsCisg CS5hc2NpaSAiZjRcMCIJIyBEV19BVF9uYW1lCisgCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmls ZSAocGllY2VzLmMpCistCS5ieXRlCTB4NDIJIyBEV19BVF9kZWNsX2xpbmUKKysJLmJ5dGUJMHg0 MwkjIERXX0FUX2RlY2xfbGluZQorIAkuYnl0ZQkweDEJIyBEV19BVF9wcm90b3R5cGVkCisgCS5s b25nCTB4NDgJIyBEV19BVF90eXBlCisgCS5sb25nCS5MRkI0CSMgRFdfQVRfbG93X3BjCisgCS5s b25nCS5MRkU0CSMgRFdfQVRfaGlnaF9wYworIAkubG9uZwkuTExTVDcJIyBEV19BVF9mcmFtZV9i YXNlCistCS5sb25nCTB4MTg5CSMgRFdfQVRfc2libGluZworLQkudWxlYjEyOCAweDcJIyAoRElF ICgweDE2ZikgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisrCS5sb25nCTB4MWI4CSMgRFdfQVRf c2libGluZworKwkudWxlYjEyOCAweDcJIyAoRElFICgweDE5ZSkgRFdfVEFHX2Zvcm1hbF9wYXJh bWV0ZXIpCisgCS5hc2NpaSAia1wwIgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRf ZGVjbF9maWxlIChwaWVjZXMuYykKKy0JLmJ5dGUJMHg0MgkjIERXX0FUX2RlY2xfbGluZQorKwku Ynl0ZQkweDQzCSMgRFdfQVRfZGVjbF9saW5lCisgCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisg CS5ieXRlCTB4MgkjIERXX0FUX2xvY2F0aW9uCisgCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZwor IAkuc2xlYjEyOCAwCistCS51bGViMTI4IDB4OQkjIChESUUgKDB4MTdiKSBEV19UQUdfdmFyaWFi bGUpCisrCS51bGViMTI4IDB4OQkjIChESUUgKDB4MWFhKSBEV19UQUdfdmFyaWFibGUpCisgCS5h c2NpaSAiYVwwIgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChw aWVjZXMuYykKKy0JLmJ5dGUJMHg0NAkjIERXX0FUX2RlY2xfbGluZQorLQkubG9uZwkweDEwYQkj IERXX0FUX3R5cGUKKysJLmJ5dGUJMHg0NQkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDEz OQkjIERXX0FUX3R5cGUKKyAJLmxvbmcJLkxMU1Q4CSMgRFdfQVRfbG9jYXRpb24KKy0JLmJ5dGUJ MAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxNTMKKy0JLnVsZWIxMjggMHg4CSMgKERJRSAo MHgxODkpIERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9m IERJRSAweDE4MgorKwkudWxlYjEyOCAweDgJIyAoRElFICgweDFiOCkgRFdfVEFHX3N1YnByb2dy YW0pCisgCS5ieXRlCTB4MQkjIERXX0FUX2V4dGVybmFsCisgCS5hc2NpaSAiZjVcMCIJIyBEV19B VF9uYW1lCisgCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCistCS5ieXRl CTB4NGQJIyBEV19BVF9kZWNsX2xpbmUKKysJLmJ5dGUJMHg0ZQkjIERXX0FUX2RlY2xfbGluZQor IAkuYnl0ZQkweDEJIyBEV19BVF9wcm90b3R5cGVkCisgCS5sb25nCTB4NDgJIyBEV19BVF90eXBl CisgCS5sb25nCS5MRkI1CSMgRFdfQVRfbG93X3BjCisgCS5sb25nCS5MRkU1CSMgRFdfQVRfaGln aF9wYworIAkubG9uZwkuTExTVDkJIyBEV19BVF9mcmFtZV9iYXNlCistCS5sb25nCTB4MWJmCSMg RFdfQVRfc2libGluZworLQkudWxlYjEyOCAweDcJIyAoRElFICgweDFhNSkgRFdfVEFHX2Zvcm1h bF9wYXJhbWV0ZXIpCisrCS5sb25nCTB4MWVlCSMgRFdfQVRfc2libGluZworKwkudWxlYjEyOCAw eDcJIyAoRElFICgweDFkNCkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisgCS5hc2NpaSAia1ww IgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykK Ky0JLmJ5dGUJMHg0ZAkjIERXX0FUX2RlY2xfbGluZQorKwkuYnl0ZQkweDRlCSMgRFdfQVRfZGVj bF9saW5lCisgCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisgCS5ieXRlCTB4MgkjIERXX0FUX2xv Y2F0aW9uCisgCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworIAkuc2xlYjEyOCAwCistCS51bGVi MTI4IDB4OQkjIChESUUgKDB4MWIxKSBEV19UQUdfdmFyaWFibGUpCisrCS51bGViMTI4IDB4OQkj IChESUUgKDB4MWUwKSBEV19UQUdfdmFyaWFibGUpCisgCS5hc2NpaSAiYVwwIgkjIERXX0FUX25h bWUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKy0JLmJ5dGUJMHg0 ZgkjIERXX0FUX2RlY2xfbGluZQorKwkuYnl0ZQkweDUwCSMgRFdfQVRfZGVjbF9saW5lCisgCS5s b25nCTB4MjUJIyBEV19BVF90eXBlCisgCS5sb25nCS5MTFNUMTAJIyBEV19BVF9sb2NhdGlvbgor LQkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDE4OQorLQkudWxlYjEyOCAweGQJ IyAoRElFICgweDFiZikgRFdfVEFHX3N1YnByb2dyYW0pCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hp bGRyZW4gb2YgRElFIDB4MWI4CisrCS51bGViMTI4IDB4OAkjIChESUUgKDB4MWVlKSBEV19UQUdf c3VicHJvZ3JhbSkKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZXh0ZXJuYWwKKy0JLmxvbmcJLkxBU0Yw CSMgRFdfQVRfbmFtZTogIm1haW4iCisrCS5hc2NpaSAiZjZcMCIJIyBEV19BVF9uYW1lCisgCS5i eXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCistCS5ieXRlCTB4NTgJIyBEV19B VF9kZWNsX2xpbmUKKysJLmJ5dGUJMHg1OQkjIERXX0FUX2RlY2xfbGluZQorIAkuYnl0ZQkweDEJ IyBEV19BVF9wcm90b3R5cGVkCisgCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisgCS5sb25nCS5M RkI2CSMgRFdfQVRfbG93X3BjCisgCS5sb25nCS5MRkU2CSMgRFdfQVRfaGlnaF9wYworIAkubG9u ZwkuTExTVDExCSMgRFdfQVRfZnJhbWVfYmFzZQorLQkudWxlYjEyOCAweDkJIyAoRElFICgweDFk OCkgRFdfVEFHX3ZhcmlhYmxlKQorKwkubG9uZwkweDIyZQkjIERXX0FUX3NpYmxpbmcKKysJLnVs ZWIxMjggMHg3CSMgKERJRSAoMHgyMGEpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorIAkuYXNj aWkgImtcMCIJIyBEV19BVF9uYW1lCisgCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGll Y2VzLmMpCistCS5ieXRlCTB4NWEJIyBEV19BVF9kZWNsX2xpbmUKKysJLmJ5dGUJMHg1OQkjIERX X0FUX2RlY2xfbGluZQorIAkubG9uZwkweDQ4CSMgRFdfQVRfdHlwZQorKwkuYnl0ZQkweDIJIyBE V19BVF9sb2NhdGlvbgorKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKysJLnNsZWIxMjggMAor KwkudWxlYjEyOCAweGQJIyAoRElFICgweDIxNikgRFdfVEFHX3ZhcmlhYmxlKQorKwkuYXNjaWkg InpcMCIJIyBEV19BVF9uYW1lCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2Vz LmMpCisrCS5ieXRlCTB4NWIJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJMHg0OAkjIERXX0FU X3R5cGUKKysJLmJ5dGUJMHgxNwkjIERXX0FUX2NvbnN0X3ZhbHVlCisrCS51bGViMTI4IDB4OQkj IChESUUgKDB4MjIwKSBEV19UQUdfdmFyaWFibGUpCisrCS5hc2NpaSAiYVwwIgkjIERXX0FUX25h bWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHg1 YwkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDc4CSMgRFdfQVRfdHlwZQorIAkubG9uZwku TExTVDEyCSMgRFdfQVRfbG9jYXRpb24KKy0JLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBE SUUgMHgxYmYKKysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxZWUKKysJLnVs ZWIxMjggMHhlCSMgKERJRSAoMHgyMmUpIERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkweDEJ IyBEV19BVF9leHRlcm5hbAorKwkubG9uZwkuTEFTRjAJIyBEV19BVF9uYW1lOiAibWFpbiIKKysJ LmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHg2NQkjIERX X0FUX2RlY2xfbGluZQorKwkuYnl0ZQkweDEJIyBEV19BVF9wcm90b3R5cGVkCisrCS5sb25nCTB4 NDgJIyBEV19BVF90eXBlCisrCS5sb25nCS5MRkI3CSMgRFdfQVRfbG93X3BjCisrCS5sb25nCS5M RkU3CSMgRFdfQVRfaGlnaF9wYworKwkubG9uZwkuTExTVDEzCSMgRFdfQVRfZnJhbWVfYmFzZQor KwkudWxlYjEyOCAweDkJIyAoRElFICgweDI0NykgRFdfVEFHX3ZhcmlhYmxlKQorKwkuYXNjaWkg ImtcMCIJIyBEV19BVF9uYW1lCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2Vz LmMpCisrCS5ieXRlCTB4NjcJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJMHg0OAkjIERXX0FU X3R5cGUKKysJLmxvbmcJLkxMU1QxNAkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTAJIyBlbmQg b2YgY2hpbGRyZW4gb2YgRElFIDB4MjJlCisgCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2Yg RElFIDB4YgorIAkuc2VjdGlvbgkuZGVidWdfYWJicmV2CisgCS51bGViMTI4IDB4MQkjIChhYmJy ZXYgY29kZSkKK0BAIC0xNTc3LDYgKzE4MDAsMjEgQEAKKyAJLmJ5dGUJMAorIAkuYnl0ZQkwCisg CS51bGViMTI4IDB4ZAkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgzNAkjIChUQUc6IERX X1RBR192YXJpYWJsZSkKKysJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4 MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEyOCAweDgJIyAoRFdfRk9STV9zdHJpbmcpCisrCS51 bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9S TV9kYXRhMSkKKysJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisrCS51bGViMTI4 IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisr CS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkudWxlYjEyOCAweDFjCSMgKERXX0FU X2NvbnN0X3ZhbHVlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLmJ5dGUJ MAorKwkuYnl0ZQkwCisrCS51bGViMTI4IDB4ZQkjIChhYmJyZXYgY29kZSkKKyAJLnVsZWIxMjgg MHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQorIAkuYnl0ZQkweDEJIyBEV19jaGlsZHJl bl95ZXMKKyAJLnVsZWIxMjggMHgzZgkjIChEV19BVF9leHRlcm5hbCkKK0BAIC0xNjAxLDM0ICsx ODM5LDM4IEBACisgCS5ieXRlCTAKKyAJLmJ5dGUJMAorIAkuc2VjdGlvbgkuZGVidWdfcHVibmFt ZXMsIiIsQHByb2diaXRzCistCS5sb25nCTB4NDIJIyBMZW5ndGggb2YgUHVibGljIE5hbWVzIElu Zm8KKysJLmxvbmcJMHg0OQkjIExlbmd0aCBvZiBQdWJsaWMgTmFtZXMgSW5mbworIAkudmFsdWUJ MHgyCSMgRFdBUkYgVmVyc2lvbgorIAkubG9uZwkuTGRlYnVnX2luZm8wCSMgT2Zmc2V0IG9mIENv bXBpbGF0aW9uIFVuaXQgSW5mbworLQkubG9uZwkweDFlNwkjIENvbXBpbGF0aW9uIFVuaXQgTGVu Z3RoCistCS5sb25nCTB4NzgJIyBESUUgb2Zmc2V0CisrCS5sb25nCTB4MjU2CSMgQ29tcGlsYXRp b24gVW5pdCBMZW5ndGgKKysJLmxvbmcJMHhhNwkjIERJRSBvZmZzZXQKKyAJLmFzY2lpICJiYXJc MCIJIyBleHRlcm5hbCBuYW1lCistCS5sb25nCTB4OWUJIyBESUUgb2Zmc2V0CisrCS5sb25nCTB4 Y2QJIyBESUUgb2Zmc2V0CisgCS5hc2NpaSAiZjFcMCIJIyBleHRlcm5hbCBuYW1lCistCS5sb25n CTB4ZDQJIyBESUUgb2Zmc2V0CisrCS5sb25nCTB4MTAzCSMgRElFIG9mZnNldAorIAkuYXNjaWkg ImYyXDAiCSMgZXh0ZXJuYWwgbmFtZQorLQkubG9uZwkweDExZAkjIERJRSBvZmZzZXQKKysJLmxv bmcJMHgxNGMJIyBESUUgb2Zmc2V0CisgCS5hc2NpaSAiZjNcMCIJIyBleHRlcm5hbCBuYW1lCist CS5sb25nCTB4MTUzCSMgRElFIG9mZnNldAorKwkubG9uZwkweDE4MgkjIERJRSBvZmZzZXQKKyAJ LmFzY2lpICJmNFwwIgkjIGV4dGVybmFsIG5hbWUKKy0JLmxvbmcJMHgxODkJIyBESUUgb2Zmc2V0 CisrCS5sb25nCTB4MWI4CSMgRElFIG9mZnNldAorIAkuYXNjaWkgImY1XDAiCSMgZXh0ZXJuYWwg bmFtZQorLQkubG9uZwkweDFiZgkjIERJRSBvZmZzZXQKKysJLmxvbmcJMHgxZWUJIyBESUUgb2Zm c2V0CisrCS5hc2NpaSAiZjZcMCIJIyBleHRlcm5hbCBuYW1lCisrCS5sb25nCTB4MjJlCSMgRElF IG9mZnNldAorIAkuYXNjaWkgIm1haW5cMCIJIyBleHRlcm5hbCBuYW1lCisgCS5sb25nCTAKKyAJ LnNlY3Rpb24JLmRlYnVnX3B1YnR5cGVzLCIiLEBwcm9nYml0cworLQkubG9uZwkweDFhCSMgTGVu Z3RoIG9mIFB1YmxpYyBUeXBlIE5hbWVzIEluZm8KKysJLmxvbmcJMHgyMAkjIExlbmd0aCBvZiBQ dWJsaWMgVHlwZSBOYW1lcyBJbmZvCisgCS52YWx1ZQkweDIJIyBEV0FSRiBWZXJzaW9uCisgCS5s b25nCS5MZGVidWdfaW5mbzAJIyBPZmZzZXQgb2YgQ29tcGlsYXRpb24gVW5pdCBJbmZvCistCS5s b25nCTB4MWU3CSMgQ29tcGlsYXRpb24gVW5pdCBMZW5ndGgKKysJLmxvbmcJMHgyNTYJIyBDb21w aWxhdGlvbiBVbml0IExlbmd0aAorIAkubG9uZwkweDI1CSMgRElFIG9mZnNldAorIAkuYXNjaWkg IkFcMCIJIyBleHRlcm5hbCBuYW1lCisgCS5sb25nCTB4NGYJIyBESUUgb2Zmc2V0CisgCS5hc2Np aSAiQlwwIgkjIGV4dGVybmFsIG5hbWUKKysJLmxvbmcJMHg3OAkjIERJRSBvZmZzZXQKKysJLmFz Y2lpICJDXDAiCSMgZXh0ZXJuYWwgbmFtZQorIAkubG9uZwkwCisgCS5zZWN0aW9uCS5kZWJ1Z19h cmFuZ2VzLCIiLEBwcm9nYml0cworIAkubG9uZwkweDFjCSMgTGVuZ3RoIG9mIEFkZHJlc3MgUmFu Z2VzIEluZm8KKy0tLSBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3BpZWNlcy5jCTIwMTAv MDUvMjEgMjA6Mzk6NTAJMS4xCisrKysgc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9waWVj ZXMuYwkyMDEwLzA1LzIxIDIxOjAxOjQ2CTEuMgorQEAgLTIyLDYgKzIyLDcgQEAKKyAKKyBzdHJ1 Y3QgQSB7IGludCBpOyBpbnQgajsgfTsKKyBzdHJ1Y3QgQiB7IGludCA6IDQ7IGludCBpIDogMTI7 IGludCBqIDogMTI7IGludCA6IDQ7IH07Cisrc3RydWN0IEMgeyBpbnQgaTsgaW50IGo7IGludCBx OyB9OworIAorIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgdm9pZAorIGJhciAoaW50IHgpCitA QCAtODQsNiArODUsMTggQEAKKyAgIHJldHVybiBhLmkgKyBhLmo7CQkvKiBmNSBicmVha3BvaW50 ICovCisgfQorIAorK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgaW50CisrZjYgKGludCBrKQor K3sKKysgIGludCB6ID0gMjM7CisrICBzdHJ1Y3QgQyBhID0geyBrLCBrLCB6fTsKKysgIGFzbSAo IiIgOiAiK3IiIChhLmkpKTsKKysgIGEuaisrOworKyAgYmFyIChhLmkpOworKyAgYmFyIChhLmop OworKyAgcmV0dXJuIGEuaSArIGEuajsJCS8qIGY2IGJyZWFrcG9pbnQgKi8KKyt9CisrCisgaW50 CisgbWFpbiAodm9pZCkKKyB7CitAQCAtOTQsNSArMTA3LDYgQEAKKyAgIGYzIChrKTsKKyAgIGY0 IChrKTsKKyAgIGY1IChrKTsKKysgIGY2IChrKTsKKyAgIHJldHVybiAwOworIH0KKy0tLSBzcmMv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3BpZWNlcy5leHAJMjAxMC8wNS8yMSAyMTowMDoyNwkx LjIKKysrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3BpZWNlcy5leHAJMjAxMC8wNS8y MSAyMTowMTo0NgkxLjMKK0BAIC02Nyw1ICs2NywyOCBAQAorICAgICBnZGJfdGVzdCAicHJpbnQg YVxbMVxdIiAiID0gMTQiICJwcmludCBhXFsxXF0gaW4gcGllY2VzOmYyIgorIH0KKyAKKysjIEZ1 bmN0aW9uIGY2IHRlc3RzIGZvciBhbiBlbXB0eSBEV19PUF9waWVjZS4KKytwcm9jIHBpZWNlc190 ZXN0X2Y2IHt9IHsKKysgICAgZ2xvYmFsIGNzcmNmaWxlCisrICAgIHNldCBsaW5lIFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJmNiBicmVha3BvaW50IiAkY3NyY2ZpbGVdCisrICAgIGdkYl90ZXN0ICJi cmVhayBwaWVjZXMuYzokbGluZSIgIkJyZWFrcG9pbnQgNC4qIiBcCisrICAgICAgICJzZXQgZjYg YnJlYWtwb2ludCBmb3IgcGllY2VzIgorKyAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi Y29udGludWUgdG8gZjYgYnJlYWtwb2ludCBmb3IgcGllY2VzIgorKyAgICBnZGJfdGVzdCAicHJp bnQgYSIgXAorKwkid2FybmluZzogYnl0ZXMgLiogaW4gY29tcHV0ZWQgb2JqZWN0IHdlcmUuKiA9 IHtpID0gNywgaiA9IDgsIHEgPSAwfSIgXAorKwkicHJpbnQgYSB3aXRoIG9wdGltaXplZCBvdXQg cGllY2UiCisrICAgICMgTm90ZTogbm8gd2FybmluZyBmb3IgdGhpcyBjYXNlLgorKyAgICBnZGJf dGVzdF9tdWx0aXBsZSAicHJpbnQgYS5pIiBcCisrCSJwcmludCBhLmkgd2l0aCBvcHRpbWl6ZWQg b3V0IHBpZWNlIiB7CisrCSAgICAtcmUgIndhcm5pbmc6IHNvbWUgYml0cyBpbiBjb21wdXRlZCBv YmplY3QiIHsKKysJCWZhaWwgInByaW50IGEuaSB3aXRoIG9wdGltaXplZCBvdXQgcGllY2UiCisr CSAgICB9CisrCSAgICAtcmUgIiA9IDciIHsKKysJCXBhc3MgInByaW50IGEuaSB3aXRoIG9wdGlt aXplZCBvdXQgcGllY2UiCisrCSAgICB9CisrCX0KKyt9CisrCisgcGllY2VzX3Rlc3RfZjEKKyBw aWVjZXNfdGVzdF9mMgorK3BpZWNlc190ZXN0X2Y2CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTg5NDY3 LXBpZWNlczRvZjQucGF0Y2ggYi9nZGItYno1ODk0NjctcGllY2VzNG9mNC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmZmYjQxCi0tLSAvZGV2L251bGwKKysrIGIv Z2RiLWJ6NTg5NDY3LXBpZWNlczRvZjQucGF0Y2gKQEAgLTAsMCArMSw4MjAgQEAKK2h0dHA6Ly9z b3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTAtMDUvbXNnMDAxOTEuaHRtbAorCisjIyMgc3Jj L2dkYi9DaGFuZ2VMb2cJMjAxMC8wNS8yMSAyMTowMTo0NgkxLjExODMyCisjIyMgc3JjL2dkYi9D aGFuZ2VMb2cJMjAxMC8wNS8yMSAyMToxMzoxMAkxLjExODMzCisjIyAtMSw1ICsxLDIwIEBACisg MjAxMC0wNS0yMSAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgorIAorKwkqIGR3YXJm MmxvYy5jIChleHRyYWN0X2JpdHNfcHJpbWl0aXZlKTogTmV3IGZ1bmN0aW9uLgorKwkoZXh0cmFj dF9iaXRzKTogTGlrZXdpc2UuCisrCShpbnNlcnRfYml0cyk6IExpa2V3aXNlLgorKwkoY29weV9i aXR3aXNlKTogTGlrZXdpc2UuCisrCShyZWFkX3BpZWNlZF92YWx1ZSk6IERvIGFsbCBvcGVyYXRp b25zIGluIGJpdHMuCisrCSh3cml0ZV9waWVjZWRfdmFsdWUpOiBMaWtld2lzZS4KKysJKiBkd2Fy ZjJleHByLmggKHN0cnVjdCBkd2FyZl9leHByX3BpZWNlKSA8b2Zmc2V0PjogTmV3IGZpZWxkLgor KwkqIGR3YXJmMmV4cHIuYyAoYWRkX3BpZWNlKTogTmV3IGFyZ3VtZW50cyBiaXRfcGllY2UsIG9m ZnNldC4KKysJQWx3YXlzIHVzZSB4cmVhbGxvYyB0byByZXNpemUgcGllY2UgYXJyYXkuCisrCShl eGVjdXRlX3N0YWNrX29wKSA8RFdfT1BfcmVnMD46IEhhbmRsZSBEV19PUF9iaXRfcGllY2UuCisr CTxEV19PUF9waWVjZT46IFVwZGF0ZS4KKysJPERXX09QX2JpdF9waWVjZT46IE5ldyBjYXNlLgor KworIyMjIHNyYy9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDEwLzA1LzIxIDIxOjAxOjQ2CTEu MjI3NQorIyMjIHNyYy9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDEwLzA1LzIxIDIxOjEzOjEz CTEuMjI3NgorIyMgLTEsNSArMSwxMiBAQAorIDIwMTAtMDUtMjEgIFRvbSBUcm9tZXkgIDx0cm9t ZXlAcmVkaGF0LmNvbT4KKyAKKysJKiBnZGIuZHdhcmYyL3BpZWNlcy5leHAgKHBpZWNlc190ZXN0 X2YzKTogTmV3IHByb2MuCisrCUNhbGwgaXQuCisrCSogZ2RiLmR3YXJmMi9waWVjZXMuUzogVXBk YXRlLgorKwkqIGdkYi5kd2FyZjIvcGllY2VzLmMgKHN0cnVjdCBCKTogUmVtb3ZlIGluaXRpYWwg ZmllbGQuCisrCistLS0gc3JjL2dkYi9kd2FyZjJleHByLmMJMjAxMC8wNS8yMSAyMTowMTo0Ngkx LjQzCisrKysgc3JjL2dkYi9kd2FyZjJleHByLmMJMjAxMC8wNS8yMSAyMToxMzoxMAkxLjQ0CitA QCAtMTUzLDIzICsxNTMsMjEgQEAKKyAKKyAvKiBBZGQgYSBuZXcgcGllY2UgdG8gQ1RYJ3MgcGll Y2UgbGlzdC4gICovCisgc3RhdGljIHZvaWQKKy1hZGRfcGllY2UgKHN0cnVjdCBkd2FyZl9leHBy X2NvbnRleHQgKmN0eCwgVUxPTkdFU1Qgc2l6ZSkKKythZGRfcGllY2UgKHN0cnVjdCBkd2FyZl9l eHByX2NvbnRleHQgKmN0eCwgVUxPTkdFU1Qgc2l6ZSwgVUxPTkdFU1Qgb2Zmc2V0KQorIHsKKyAg IHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwOworIAorICAgY3R4LT5udW1fcGllY2VzKys7Cisg CistICBpZiAoY3R4LT5waWVjZXMpCistICAgIGN0eC0+cGllY2VzID0geHJlYWxsb2MgKGN0eC0+ cGllY2VzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3R4LT5udW1fcGllY2VzCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHNpemVvZiAoc3RydWN0IGR3YXJmX2V4cHJf cGllY2UpKSk7CistICBlbHNlCistICAgIGN0eC0+cGllY2VzID0geG1hbGxvYyAoY3R4LT5udW1f cGllY2VzCistICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaXplb2YgKHN0cnVjdCBkd2Fy Zl9leHByX3BpZWNlKSk7CisrICBjdHgtPnBpZWNlcyA9IHhyZWFsbG9jIChjdHgtPnBpZWNlcywK KysJCQkgIChjdHgtPm51bV9waWVjZXMKKysJCQkgICAqIHNpemVvZiAoc3RydWN0IGR3YXJmX2V4 cHJfcGllY2UpKSk7CisgCisgICBwID0gJmN0eC0+cGllY2VzW2N0eC0+bnVtX3BpZWNlcyAtIDFd OworICAgcC0+bG9jYXRpb24gPSBjdHgtPmxvY2F0aW9uOworICAgcC0+c2l6ZSA9IHNpemU7Cisr ICBwLT5vZmZzZXQgPSBvZmZzZXQ7CisrCisgICBpZiAocC0+bG9jYXRpb24gPT0gRFdBUkZfVkFM VUVfTElURVJBTCkKKyAgICAgeworICAgICAgIHAtPnYubGl0ZXJhbC5kYXRhID0gY3R4LT5kYXRh OworQEAgLTQ5OSw5ICs0OTcsMTEgQEAKKyAJY2FzZSBEV19PUF9yZWczMToKKyAJICBpZiAob3Bf cHRyICE9IG9wX2VuZCAKKyAJICAgICAgJiYgKm9wX3B0ciAhPSBEV19PUF9waWVjZQorKwkgICAg ICAmJiAqb3BfcHRyICE9IERXX09QX2JpdF9waWVjZQorIAkgICAgICAmJiAqb3BfcHRyICE9IERX X09QX0dOVV91bmluaXQpCisgCSAgICBlcnJvciAoXygiRFdBUkYtMiBleHByZXNzaW9uIGVycm9y OiBEV19PUF9yZWcgb3BlcmF0aW9ucyBtdXN0IGJlICIKKy0JCSAgICJ1c2VkIGVpdGhlciBhbG9u ZSBvciBpbiBjb25qdWN0aW9uIHdpdGggRFdfT1BfcGllY2UuIikpOworKwkJICAgICAidXNlZCBl aXRoZXIgYWxvbmUgb3IgaW4gY29uanVjdGlvbiB3aXRoIERXX09QX3BpZWNlICIKKysJCSAgICAg Im9yIERXX09QX2JpdF9waWVjZS4iKSk7CisgCisgCSAgcmVzdWx0ID0gb3AgLSBEV19PUF9yZWcw OworIAkgIGN0eC0+bG9jYXRpb24gPSBEV0FSRl9WQUxVRV9SRUdJU1RFUjsKK0BAIC04NzIsNyAr ODcyLDcgQEAKKyAKKyAgICAgICAgICAgICAvKiBSZWNvcmQgdGhlIHBpZWNlLiAgKi8KKyAgICAg ICAgICAgICBvcF9wdHIgPSByZWFkX3VsZWIxMjggKG9wX3B0ciwgb3BfZW5kLCAmc2l6ZSk7Cist CSAgICBhZGRfcGllY2UgKGN0eCwgc2l6ZSk7CisrCSAgICBhZGRfcGllY2UgKGN0eCwgOCAqIHNp emUsIDApOworIAorICAgICAgICAgICAgIC8qIFBvcCBvZmYgdGhlIGFkZHJlc3MvcmVnbnVtLCBh bmQgcmVzZXQgdGhlIGxvY2F0aW9uCisgCSAgICAgICB0eXBlLiAgKi8KK0BAIC04ODMsNiArODgz LDI0IEBACisgICAgICAgICAgIH0KKyAgICAgICAgICAgZ290byBub19wdXNoOworIAorKwljYXNl IERXX09QX2JpdF9waWVjZToKKysJICB7CisrCSAgICBVTE9OR0VTVCBzaXplLCBvZmZzZXQ7Cisr CisrICAgICAgICAgICAgLyogUmVjb3JkIHRoZSBwaWVjZS4gICovCisrCSAgICBvcF9wdHIgPSBy ZWFkX3VsZWIxMjggKG9wX3B0ciwgb3BfZW5kLCAmc2l6ZSk7CisrCSAgICBvcF9wdHIgPSByZWFk X3VsZWIxMjggKG9wX3B0ciwgb3BfZW5kLCAmb2Zmc2V0KTsKKysJICAgIGFkZF9waWVjZSAoY3R4 LCBzaXplLCBvZmZzZXQpOworKworKyAgICAgICAgICAgIC8qIFBvcCBvZmYgdGhlIGFkZHJlc3Mv cmVnbnVtLCBhbmQgcmVzZXQgdGhlIGxvY2F0aW9uCisrCSAgICAgICB0eXBlLiAgKi8KKysJICAg IGlmIChjdHgtPmxvY2F0aW9uICE9IERXQVJGX1ZBTFVFX0xJVEVSQUwKKysJCSYmIGN0eC0+bG9j YXRpb24gIT0gRFdBUkZfVkFMVUVfT1BUSU1JWkVEX09VVCkKKysJICAgICAgZHdhcmZfZXhwcl9w b3AgKGN0eCk7CisrICAgICAgICAgICAgY3R4LT5sb2NhdGlvbiA9IERXQVJGX1ZBTFVFX01FTU9S WTsKKysJICB9CisrCSAgZ290byBub19wdXNoOworKworIAljYXNlIERXX09QX0dOVV91bmluaXQ6 CisgCSAgaWYgKG9wX3B0ciAhPSBvcF9lbmQpCisgCSAgICBlcnJvciAoXygiRFdBUkYtMiBleHBy ZXNzaW9uIGVycm9yOiBEV19PUF9HTlVfdW5pbml0IG11c3QgYWx3YXlzICIKKy0tLSBzcmMvZ2Ri L2R3YXJmMmV4cHIuaAkyMDEwLzA1LzIxIDIxOjAxOjQ2CTEuMjEKKysrKyBzcmMvZ2RiL2R3YXJm MmV4cHIuaAkyMDEwLzA1LzIxIDIxOjEzOjExCTEuMjIKK0BAIC0xNTUsNyArMTU1LDcgQEAKKyB9 OworIAorIAorLS8qIEEgcGllY2Ugb2YgYW4gb2JqZWN0LCBhcyByZWNvcmRlZCBieSBEV19PUF9w aWVjZS4gICovCisrLyogQSBwaWVjZSBvZiBhbiBvYmplY3QsIGFzIHJlY29yZGVkIGJ5IERXX09Q X3BpZWNlIG9yIERXX09QX2JpdF9waWVjZS4gICovCisgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UK KyB7CisgICBlbnVtIGR3YXJmX3ZhbHVlX2xvY2F0aW9uIGxvY2F0aW9uOworQEAgLTE4MSw4ICsx ODEsMTAgQEAKKyAgICAgfSBsaXRlcmFsOworICAgfSB2OworIAorLSAgLyogVGhlIGxlbmd0aCBv ZiB0aGUgcGllY2UsIGluIGJ5dGVzLiAgKi8KKysgIC8qIFRoZSBsZW5ndGggb2YgdGhlIHBpZWNl LCBpbiBiaXRzLiAgKi8KKyAgIFVMT05HRVNUIHNpemU7CisrICAvKiBUaGUgcGllY2Ugb2Zmc2V0 LCBpbiBiaXRzLiAgKi8KKysgIFVMT05HRVNUIG9mZnNldDsKKyB9OworIAorIHN0cnVjdCBkd2Fy Zl9leHByX2NvbnRleHQgKm5ld19kd2FyZl9leHByX2NvbnRleHQgKHZvaWQpOworLS0tIHNyYy9n ZGIvZHdhcmYybG9jLmMJMjAxMC8wNS8yMSAyMTowMTo0NgkxLjgwCisrKysgc3JjL2dkYi9kd2Fy ZjJsb2MuYwkyMDEwLzA1LzIxIDIxOjEzOjExCTEuODEKK0BAIC0yNTksNTIgKzI1OSwyNDUgQEAK KyAgIHJldHVybiBjOworIH0KKyAKKysvKiBUaGUgbG93ZXN0LWxldmVsIGZ1bmN0aW9uIHRvIGV4 dHJhY3QgYml0cyBmcm9tIGEgYnl0ZSBidWZmZXIuCisrICAgU09VUkNFIGlzIHRoZSBidWZmZXIu ICBJdCBpcyB1cGRhdGVkIGlmIHdlIHJlYWQgdG8gdGhlIGVuZCBvZiBhCisrICAgYnl0ZS4KKysg ICBTT1VSQ0VfT0ZGU0VUX0JJVFMgaXMgdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgYml0IHRvIHJl YWQuICBJdCBpcworKyAgIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgbnVtYmVyIG9mIGJpdHMgYWN0 dWFsbHkgcmVhZC4KKysgICBOQklUUyBpcyB0aGUgbnVtYmVyIG9mIGJpdHMgd2Ugd2FudCB0byBy ZWFkLiAgSXQgaXMgdXBkYXRlZCB0bworKyAgIHJlZmxlY3QgdGhlIG51bWJlciBvZiBiaXRzIGFj dHVhbGx5IHJlYWQuICBUaGlzIGZ1bmN0aW9uIG1heSByZWFkCisrICAgZmV3ZXIgYml0cy4KKysg ICBCSVRTX0JJR19FTkRJQU4gaXMgdGFrZW4gZGlyZWN0bHkgZnJvbSBnZGJhcmNoLgorKyAgIFRo aXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgZXh0cmFjdGVkIGJpdHMuICAqLworKworK3N0YXRpYyB1 bnNpZ25lZCBpbnQKKytleHRyYWN0X2JpdHNfcHJpbWl0aXZlIChjb25zdCBnZGJfYnl0ZSAqKnNv dXJjZSwKKysJCQl1bnNpZ25lZCBpbnQgKnNvdXJjZV9vZmZzZXRfYml0cywKKysJCQlpbnQgKm5i aXRzLCBpbnQgYml0c19iaWdfZW5kaWFuKQorK3sKKysgIHVuc2lnbmVkIGludCBhdmFpbCwgbWFz aywgZGF0dW07CisrCisrICBnZGJfYXNzZXJ0ICgqc291cmNlX29mZnNldF9iaXRzIDwgOCk7Cisr CisrICBhdmFpbCA9IDggLSAqc291cmNlX29mZnNldF9iaXRzOworKyAgaWYgKGF2YWlsID4gKm5i aXRzKQorKyAgICBhdmFpbCA9ICpuYml0czsKKysKKysgIG1hc2sgPSAoMSA8PCBhdmFpbCkgLSAx OworKyAgZGF0dW0gPSAqKnNvdXJjZTsKKysgIGlmIChiaXRzX2JpZ19lbmRpYW4pCisrICAgIGRh dHVtID4+PSA4IC0gKCpzb3VyY2Vfb2Zmc2V0X2JpdHMgKyAqbmJpdHMpOworKyAgZWxzZQorKyAg ICBkYXR1bSA+Pj0gKnNvdXJjZV9vZmZzZXRfYml0czsKKysgIGRhdHVtICY9IG1hc2s7CisrCisr ICAqbmJpdHMgLT0gYXZhaWw7CisrICAqc291cmNlX29mZnNldF9iaXRzICs9IGF2YWlsOworKyAg aWYgKCpzb3VyY2Vfb2Zmc2V0X2JpdHMgPj0gOCkKKysgICAgeworKyAgICAgICpzb3VyY2Vfb2Zm c2V0X2JpdHMgLT0gODsKKysgICAgICArKypzb3VyY2U7CisrICAgIH0KKysKKysgIHJldHVybiBk YXR1bTsKKyt9CisrCisrLyogRXh0cmFjdCBzb21lIGJpdHMgZnJvbSBhIHNvdXJjZSBidWZmZXIg YW5kIG1vdmUgZm9yd2FyZCBpbiB0aGUKKysgICBidWZmZXIuCisrICAgCisrICAgU09VUkNFIGlz IHRoZSBzb3VyY2UgYnVmZmVyLiAgSXQgaXMgdXBkYXRlZCBhcyBieXRlcyBhcmUgcmVhZC4KKysg ICBTT1VSQ0VfT0ZGU0VUX0JJVFMgaXMgdGhlIG9mZnNldCBpbnRvIFNPVVJDRS4gIEl0IGlzIHVw ZGF0ZWQgYXMKKysgICBiaXRzIGFyZSByZWFkLgorKyAgIE5CSVRTIGlzIHRoZSBudW1iZXIgb2Yg Yml0cyB0byByZWFkLgorKyAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9t IGdkYmFyY2guCisrICAgCisrICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBiaXRzIHRoYXQg d2VyZSByZWFkLiAgKi8KKysKKytzdGF0aWMgdW5zaWduZWQgaW50CisrZXh0cmFjdF9iaXRzIChj b25zdCBnZGJfYnl0ZSAqKnNvdXJjZSwgdW5zaWduZWQgaW50ICpzb3VyY2Vfb2Zmc2V0X2JpdHMs CisrCSAgICAgIGludCBuYml0cywgaW50IGJpdHNfYmlnX2VuZGlhbikKKyt7CisrICB1bnNpZ25l ZCBpbnQgZGF0dW07CisrCisrICBnZGJfYXNzZXJ0IChuYml0cyA+IDAgJiYgbmJpdHMgPD0gOCk7 CisrCisrICBkYXR1bSA9IGV4dHJhY3RfYml0c19wcmltaXRpdmUgKHNvdXJjZSwgc291cmNlX29m ZnNldF9iaXRzLCAmbmJpdHMsCisrCQkJCSAgYml0c19iaWdfZW5kaWFuKTsKKysgIGlmIChuYml0 cyA+IDApCisrICAgIHsKKysgICAgICB1bnNpZ25lZCBpbnQgbW9yZTsKKysKKysgICAgICBtb3Jl ID0gZXh0cmFjdF9iaXRzX3ByaW1pdGl2ZSAoc291cmNlLCBzb3VyY2Vfb2Zmc2V0X2JpdHMsICZu Yml0cywKKysJCQkJICAgICBiaXRzX2JpZ19lbmRpYW4pOworKyAgICAgIGlmIChiaXRzX2JpZ19l bmRpYW4pCisrCWRhdHVtIDw8PSBuYml0czsKKysgICAgICBlbHNlCisrCW1vcmUgPDw9IG5iaXRz OworKyAgICAgIGRhdHVtIHw9IG1vcmU7CisrICAgIH0KKysKKysgIHJldHVybiBkYXR1bTsKKyt9 CisrCisrLyogV3JpdGUgc29tZSBiaXRzIGludG8gYSBidWZmZXIgYW5kIG1vdmUgZm9yd2FyZCBp biB0aGUgYnVmZmVyLgorKyAgIAorKyAgIERBVFVNIGlzIHRoZSBiaXRzIHRvIHdyaXRlLiAgVGhl IGxvdy1vcmRlciBiaXRzIG9mIERBVFVNIGFyZSB1c2VkLgorKyAgIERFU1QgaXMgdGhlIGRlc3Rp bmF0aW9uIGJ1ZmZlci4gIEl0IGlzIHVwZGF0ZWQgYXMgYnl0ZXMgYXJlCisrICAgd3JpdHRlbi4K KysgICBERVNUX09GRlNFVF9CSVRTIGlzIHRoZSBiaXQgb2Zmc2V0IGluIERFU1QgYXQgd2hpY2gg d3JpdGluZyBpcworKyAgIGRvbmUuCisrICAgTkJJVFMgaXMgdGhlIG51bWJlciBvZiB2YWxpZCBi aXRzIGluIERBVFVNLgorKyAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9t IGdkYmFyY2guICAqLworKworK3N0YXRpYyB2b2lkCisraW5zZXJ0X2JpdHMgKHVuc2lnbmVkIGlu dCBkYXR1bSwKKysJICAgICBnZGJfYnl0ZSAqZGVzdCwgdW5zaWduZWQgaW50IGRlc3Rfb2Zmc2V0 X2JpdHMsCisrCSAgICAgaW50IG5iaXRzLCBpbnQgYml0c19iaWdfZW5kaWFuKQorK3sKKysgIHVu c2lnbmVkIGludCBtYXNrOworKworKyAgZ2RiX2Fzc2VydCAoZGVzdF9vZmZzZXRfYml0cyA+PSAw ICYmIGRlc3Rfb2Zmc2V0X2JpdHMgKyBuYml0cyA8PSA4KTsKKysKKysgIG1hc2sgPSAoMSA8PCBu Yml0cykgLSAxOworKyAgaWYgKGJpdHNfYmlnX2VuZGlhbikKKysgICAgeworKyAgICAgIGRhdHVt IDw8PSA4IC0gKGRlc3Rfb2Zmc2V0X2JpdHMgKyBuYml0cyk7CisrICAgICAgbWFzayA8PD0gOCAt IChkZXN0X29mZnNldF9iaXRzICsgbmJpdHMpOworKyAgICB9CisrICBlbHNlCisrICAgIHsKKysg ICAgICBkYXR1bSA8PD0gZGVzdF9vZmZzZXRfYml0czsKKysgICAgICBtYXNrIDw8PSBkZXN0X29m ZnNldF9iaXRzOworKyAgICB9CisrCisrICBnZGJfYXNzZXJ0ICgoZGF0dW0gJiB+bWFzaykgPT0g MCk7CisrCisrICAqZGVzdCA9ICgqZGVzdCAmIH5tYXNrKSB8IGRhdHVtOworK30KKysKKysvKiBD b3B5IGJpdHMgZnJvbSBhIHNvdXJjZSB0byBhIGRlc3RpbmF0aW9uLgorKyAgIAorKyAgIERFU1Qg aXMgd2hlcmUgdGhlIGJpdHMgc2hvdWxkIGJlIHdyaXR0ZW4uCisrICAgREVTVF9PRkZTRVRfQklU UyBpcyB0aGUgYml0IG9mZnNldCBpbnRvIERFU1QuCisrICAgU09VUkNFIGlzIHRoZSBzb3VyY2Ug b2YgYml0cy4KKysgICBTT1VSQ0VfT0ZGU0VUX0JJVFMgaXMgdGhlIGJpdCBvZmZzZXQgaW50byBT T1VSQ0UuCisrICAgQklUX0NPVU5UIGlzIHRoZSBudW1iZXIgb2YgYml0cyB0byBjb3B5LgorKyAg IEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9tIGdkYmFyY2guICAqLworKwor K3N0YXRpYyB2b2lkCisrY29weV9iaXR3aXNlIChnZGJfYnl0ZSAqZGVzdCwgdW5zaWduZWQgaW50 IGRlc3Rfb2Zmc2V0X2JpdHMsCisrCSAgICAgIGNvbnN0IGdkYl9ieXRlICpzb3VyY2UsIHVuc2ln bmVkIGludCBzb3VyY2Vfb2Zmc2V0X2JpdHMsCisrCSAgICAgIHVuc2lnbmVkIGludCBiaXRfY291 bnQsCisrCSAgICAgIGludCBiaXRzX2JpZ19lbmRpYW4pCisreworKyAgdW5zaWduZWQgaW50IGRl c3RfYXZhaWw7CisrICBpbnQgZGF0dW07CisrCisrICAvKiBSZWR1Y2UgZXZlcnl0aGluZyB0byBi eXRlLXNpemUgcGllY2VzLiAgKi8KKysgIGRlc3QgKz0gZGVzdF9vZmZzZXRfYml0cyAvIDg7Cisr ICBkZXN0X29mZnNldF9iaXRzICU9IDg7CisrICBzb3VyY2UgKz0gc291cmNlX29mZnNldF9iaXRz IC8gODsKKysgIHNvdXJjZV9vZmZzZXRfYml0cyAlPSA4OworKworKyAgZGVzdF9hdmFpbCA9IDgg LSBkZXN0X29mZnNldF9iaXRzICUgODsKKysKKysgIC8qIFNlZSBpZiB3ZSBjYW4gZmlsbCB0aGUg Zmlyc3QgZGVzdGluYXRpb24gYnl0ZS4gICovCisrICBpZiAoZGVzdF9hdmFpbCA8IGJpdF9jb3Vu dCkKKysgICAgeworKyAgICAgIGRhdHVtID0gZXh0cmFjdF9iaXRzICgmc291cmNlLCAmc291cmNl X29mZnNldF9iaXRzLCBkZXN0X2F2YWlsLAorKwkJCSAgICBiaXRzX2JpZ19lbmRpYW4pOworKyAg ICAgIGluc2VydF9iaXRzIChkYXR1bSwgZGVzdCwgZGVzdF9vZmZzZXRfYml0cywgZGVzdF9hdmFp bCwgYml0c19iaWdfZW5kaWFuKTsKKysgICAgICArK2Rlc3Q7CisrICAgICAgZGVzdF9vZmZzZXRf Yml0cyA9IDA7CisrICAgICAgYml0X2NvdW50IC09IGRlc3RfYXZhaWw7CisrICAgIH0KKysKKysg IC8qIE5vdywgZWl0aGVyIERFU1RfT0ZGU0VUX0JJVFMgaXMgYnl0ZS1hbGlnbmVkLCBvciB3ZSBo YXZlIGZld2VyCisrICAgICB0aGFuIDggYml0cyByZW1haW5pbmcuICAqLworKyAgZ2RiX2Fzc2Vy dCAoZGVzdF9vZmZzZXRfYml0cyAlIDggPT0gMCB8fCBiaXRfY291bnQgPCA4KTsKKysgIGZvciAo OyBiaXRfY291bnQgPj0gODsgYml0X2NvdW50IC09IDgpCisrICAgIHsKKysgICAgICBkYXR1bSA9 IGV4dHJhY3RfYml0cyAoJnNvdXJjZSwgJnNvdXJjZV9vZmZzZXRfYml0cywgOCwgYml0c19iaWdf ZW5kaWFuKTsKKysgICAgICAqZGVzdCsrID0gKGdkYl9ieXRlKSBkYXR1bTsKKysgICAgfQorKwor KyAgLyogRmluYWxseSwgd2UgbWF5IGhhdmUgYSBmZXcgbGVmdG92ZXIgYml0cy4gICovCisrICBn ZGJfYXNzZXJ0IChiaXRfY291bnQgPD0gOCAtIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4KTsKKysgIGlm IChiaXRfY291bnQgPiAwKQorKyAgICB7CisrICAgICAgZGF0dW0gPSBleHRyYWN0X2JpdHMgKCZz b3VyY2UsICZzb3VyY2Vfb2Zmc2V0X2JpdHMsIGJpdF9jb3VudCwKKysJCQkgICAgYml0c19iaWdf ZW5kaWFuKTsKKysgICAgICBpbnNlcnRfYml0cyAoZGF0dW0sIGRlc3QsIGRlc3Rfb2Zmc2V0X2Jp dHMsIGJpdF9jb3VudCwgYml0c19iaWdfZW5kaWFuKTsKKysgICAgfQorK30KKysKKyBzdGF0aWMg dm9pZAorIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgeworICAgaW50IGk7 CisgICBsb25nIG9mZnNldCA9IDA7CistICBVTE9OR0VTVCBieXRlc190b19za2lwOworKyAgVUxP TkdFU1QgYml0c190b19za2lwOworICAgZ2RiX2J5dGUgKmNvbnRlbnRzOworICAgc3RydWN0IHBp ZWNlX2Nsb3N1cmUgKmMgPSAoc3RydWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRf Y2xvc3VyZSAodik7CisgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBmcmFtZV9maW5kX2J5 X2lkIChWQUxVRV9GUkFNRV9JRCAodikpOworICAgc2l6ZV90IHR5cGVfbGVuOworKyAgc2l6ZV90 IGJ1ZmZlcl9zaXplID0gMDsKKysgIGNoYXIgKmJ1ZmZlciA9IE5VTEw7CisrICBzdHJ1Y3QgY2xl YW51cCAqY2xlYW51cDsKKysgIGludCBiaXRzX2JpZ19lbmRpYW4KKysgICAgPSBnZGJhcmNoX2Jp dHNfYmlnX2VuZGlhbiAoZ2V0X3R5cGVfYXJjaCAodmFsdWVfdHlwZSAodikpKTsKKyAKKyAgIGlm ICh2YWx1ZV90eXBlICh2KSAhPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAodikpCisgICAgIGludGVy bmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCisgCQkgICAgXygiU2hvdWxkIG5vdCBiZSBh YmxlIHRvIGNyZWF0ZSBhIGxhenkgdmFsdWUgd2l0aCAiCisgCQkgICAgICAiYW4gZW5jbG9zaW5n IHR5cGUiKSk7CisgCisrICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwIChmcmVlX2N1cnJlbnRfY29u dGVudHMsICZidWZmZXIpOworKworICAgY29udGVudHMgPSB2YWx1ZV9jb250ZW50c19yYXcgKHYp OworLSAgYnl0ZXNfdG9fc2tpcCA9IHZhbHVlX29mZnNldCAodik7CistICB0eXBlX2xlbiA9IFRZ UEVfTEVOR1RIICh2YWx1ZV90eXBlICh2KSk7CisrICBiaXRzX3RvX3NraXAgPSA4ICogdmFsdWVf b2Zmc2V0ICh2KTsKKysgIHR5cGVfbGVuID0gOCAqIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2 KSk7CisrCisgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9s ZW47IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMt PnBpZWNlc1tpXTsKKy0gICAgICBzaXplX3QgdGhpc19zaXplOworLSAgICAgIGxvbmcgZGVzdF9v ZmZzZXQsIHNvdXJjZV9vZmZzZXQ7CistCistICAgICAgaWYgKGJ5dGVzX3RvX3NraXAgPiAwICYm IGJ5dGVzX3RvX3NraXAgPj0gcC0+c2l6ZSkKKysgICAgICBzaXplX3QgdGhpc19zaXplLCB0aGlz X3NpemVfYml0czsKKysgICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXRf Yml0cywgc291cmNlX29mZnNldDsKKysgICAgICBnZGJfYnl0ZSAqaW50ZXJtZWRpYXRlX2J1ZmZl cjsKKysKKysgICAgICAvKiBDb21wdXRlIHNpemUsIHNvdXJjZSwgYW5kIGRlc3RpbmF0aW9uIG9m ZnNldHMgZm9yIGNvcHlpbmcsIGluCisrCSBiaXRzLiAgKi8KKysgICAgICB0aGlzX3NpemVfYml0 cyA9IHAtPnNpemU7CisrICAgICAgaWYgKGJpdHNfdG9fc2tpcCA+IDAgJiYgYml0c190b19za2lw ID49IHRoaXNfc2l6ZV9iaXRzKQorIAl7CistCSAgYnl0ZXNfdG9fc2tpcCAtPSBwLT5zaXplOwor KwkgIGJpdHNfdG9fc2tpcCAtPSB0aGlzX3NpemVfYml0czsKKyAJICBjb250aW51ZTsKKyAJfQor LSAgICAgIHRoaXNfc2l6ZSA9IHAtPnNpemU7CistICAgICAgaWYgKHRoaXNfc2l6ZSA+IHR5cGVf bGVuIC0gb2Zmc2V0KQorLQl0aGlzX3NpemUgPSB0eXBlX2xlbiAtIG9mZnNldDsKKy0gICAgICBp ZiAoYnl0ZXNfdG9fc2tpcCA+IDApCistCXsKKy0JICBkZXN0X29mZnNldCA9IDA7CistCSAgc291 cmNlX29mZnNldCA9IGJ5dGVzX3RvX3NraXA7CistCSAgdGhpc19zaXplIC09IGJ5dGVzX3RvX3Nr aXA7CistCSAgYnl0ZXNfdG9fc2tpcCA9IDA7CisrICAgICAgaWYgKHRoaXNfc2l6ZV9iaXRzID4g dHlwZV9sZW4gLSBvZmZzZXQpCisrCXRoaXNfc2l6ZV9iaXRzID0gdHlwZV9sZW4gLSBvZmZzZXQ7 CisrICAgICAgaWYgKGJpdHNfdG9fc2tpcCA+IDApCisrCXsKKysJICBkZXN0X29mZnNldF9iaXRz ID0gMDsKKysJICBzb3VyY2Vfb2Zmc2V0X2JpdHMgPSBiaXRzX3RvX3NraXA7CisrCSAgdGhpc19z aXplX2JpdHMgLT0gYml0c190b19za2lwOworKwkgIGJpdHNfdG9fc2tpcCA9IDA7CisgCX0KKyAg ICAgICBlbHNlCisgCXsKKy0JICBkZXN0X29mZnNldCA9IG9mZnNldDsKKy0JICBzb3VyY2Vfb2Zm c2V0ID0gMDsKKysJICBkZXN0X29mZnNldF9iaXRzID0gb2Zmc2V0OworKwkgIHNvdXJjZV9vZmZz ZXRfYml0cyA9IDA7CisrCX0KKysKKysgICAgICB0aGlzX3NpemUgPSAodGhpc19zaXplX2JpdHMg KyBzb3VyY2Vfb2Zmc2V0X2JpdHMgJSA4ICsgNykgLyA4OworKyAgICAgIHNvdXJjZV9vZmZzZXQg PSBzb3VyY2Vfb2Zmc2V0X2JpdHMgLyA4OworKyAgICAgIGlmIChidWZmZXJfc2l6ZSA8IHRoaXNf c2l6ZSkKKysJeworKwkgIGJ1ZmZlcl9zaXplID0gdGhpc19zaXplOworKwkgIGJ1ZmZlciA9IHhy ZWFsbG9jIChidWZmZXIsIGJ1ZmZlcl9zaXplKTsKKyAJfQorKyAgICAgIGludGVybWVkaWF0ZV9i dWZmZXIgPSBidWZmZXI7CisgCisrICAgICAgLyogQ29weSBmcm9tIHRoZSBzb3VyY2UgdG8gREVT VF9CVUZGRVIuICAqLworICAgICAgIHN3aXRjaCAocC0+bG9jYXRpb24pCisgCXsKKyAJY2FzZSBE V0FSRl9WQUxVRV9SRUdJU1RFUjoKK0BAIC0zMTYsMTMgKzUwOSwxOCBAQAorIAorIAkgICAgaWYg KGdkYmFyY2hfYnl0ZV9vcmRlciAoYXJjaCkgPT0gQkZEX0VORElBTl9CSUcKKyAJCSYmIHRoaXNf c2l6ZSA8IHJlZ2lzdGVyX3NpemUgKGFyY2gsIGdkYl9yZWdudW0pKQorLQkgICAgICAvKiBCaWct ZW5kaWFuLCBhbmQgd2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBzaXplLiAgKi8KKy0JICAgICAgcmVn X29mZnNldCA9IHJlZ2lzdGVyX3NpemUgKGFyY2gsIGdkYl9yZWdudW0pIC0gdGhpc19zaXplOwor KwkgICAgICB7CisrCQkvKiBCaWctZW5kaWFuLCBhbmQgd2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBz aXplLiAgKi8KKysJCXJlZ19vZmZzZXQgPSByZWdpc3Rlcl9zaXplIChhcmNoLCBnZGJfcmVnbnVt KSAtIHRoaXNfc2l6ZTsKKysJCS8qIFdlIHdhbnQgdGhlIGxvd2VyLW9yZGVyIFRISVNfU0laRV9C SVRTIG9mIHRoZSBieXRlcworKwkJICAgd2UgZXh0cmFjdCBmcm9tIHRoZSByZWdpc3Rlci4gICov CisrCQlzb3VyY2Vfb2Zmc2V0X2JpdHMgKz0gOCAqIHRoaXNfc2l6ZSAtIHRoaXNfc2l6ZV9iaXRz OworKwkgICAgICB9CisgCisgCSAgICBpZiAoZ2RiX3JlZ251bSAhPSAtMSkKKyAJICAgICAgewor IAkJZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwgcmVnX29mZnNl dCwgCistCQkJCQkgIHRoaXNfc2l6ZSwgY29udGVudHMgKyBkZXN0X29mZnNldCk7CisrCQkJCQkg IHRoaXNfc2l6ZSwgYnVmZmVyKTsKKyAJICAgICAgfQorIAkgICAgZWxzZQorIAkgICAgICB7CitA QCAtMzM0LDExICs1MzIsOSBAQAorIAorIAljYXNlIERXQVJGX1ZBTFVFX01FTU9SWToKKyAJICBp ZiAocC0+di5leHByLmluX3N0YWNrX21lbW9yeSkKKy0JICAgIHJlYWRfc3RhY2sgKHAtPnYuZXhw ci52YWx1ZSArIHNvdXJjZV9vZmZzZXQsCistCQkJY29udGVudHMgKyBkZXN0X29mZnNldCwgdGhp c19zaXplKTsKKysJICAgIHJlYWRfc3RhY2sgKHAtPnYuZXhwci52YWx1ZSArIHNvdXJjZV9vZmZz ZXQsIGJ1ZmZlciwgdGhpc19zaXplKTsKKyAJICBlbHNlCistCSAgICByZWFkX21lbW9yeSAocC0+ di5leHByLnZhbHVlICsgc291cmNlX29mZnNldCwKKy0JCQkgY29udGVudHMgKyBkZXN0X29mZnNl dCwgdGhpc19zaXplKTsKKysJICAgIHJlYWRfbWVtb3J5IChwLT52LmV4cHIudmFsdWUgKyBzb3Vy Y2Vfb2Zmc2V0LCBidWZmZXIsIHRoaXNfc2l6ZSk7CisgCSAgYnJlYWs7CisgCisgCWNhc2UgRFdB UkZfVkFMVUVfU1RBQ0s6CitAQCAtMzU1LDcgKzU1MSw3IEBACisgCQkvKiBOb3RoaW5nLiAgKi8K KyAJICAgICAgfQorIAkgICAgZWxzZSBpZiAoc291cmNlX29mZnNldCA9PSAwKQorLQkgICAgICBz dG9yZV91bnNpZ25lZF9pbnRlZ2VyIChjb250ZW50cyArIGRlc3Rfb2Zmc2V0LCBuLAorKwkgICAg ICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChidWZmZXIsIG4sCisgCQkJCSAgICAgIGdkYmFyY2hf Ynl0ZV9vcmRlciAoZ2RiYXJjaCksCisgCQkJCSAgICAgIHAtPnYuZXhwci52YWx1ZSk7CisgCSAg ICBlbHNlCitAQCAtMzY1LDcgKzU2MSw3IEBACisgCQlzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChi eXRlcywgbiArIHNvdXJjZV9vZmZzZXQsCisgCQkJCQlnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFy Y2gpLAorIAkJCQkJcC0+di5leHByLnZhbHVlKTsKKy0JCW1lbWNweSAoY29udGVudHMgKyBkZXN0 X29mZnNldCwgYnl0ZXMgKyBzb3VyY2Vfb2Zmc2V0LCBuKTsKKysJCW1lbWNweSAoYnVmZmVyLCBi eXRlcyArIHNvdXJjZV9vZmZzZXQsIG4pOworIAkgICAgICB9CisgCSAgfQorIAkgIGJyZWFrOwor QEAgLTM3OSw4ICs1NzUsNyBAQAorIAkJICAgPyBwLT52LmxpdGVyYWwubGVuZ3RoIC0gc291cmNl X29mZnNldAorIAkJICAgOiAwKTsKKyAJICAgIGlmIChuICE9IDApCistCSAgICAgIG1lbWNweSAo Y29udGVudHMgKyBkZXN0X29mZnNldCwKKy0JCSAgICAgIHAtPnYubGl0ZXJhbC5kYXRhICsgc291 cmNlX29mZnNldCwgbik7CisrCSAgICAgIGludGVybWVkaWF0ZV9idWZmZXIgPSBwLT52LmxpdGVy YWwuZGF0YSArIHNvdXJjZV9vZmZzZXQ7CisgCSAgfQorIAkgIGJyZWFrOworIAorQEAgLTM4OCwx NyArNTgzLDI1IEBACisgCSAgLyogV2UganVzdCBsZWF2ZSB0aGUgYml0cyBlbXB0eSBmb3Igbm93 LiAgVGhpcyBpcyBub3QgaWRlYWwKKyAJICAgICBidXQgZ2RiIGN1cnJlbnRseSBkb2VzIG5vdCBo YXZlIGEgbmljZSB3YXkgdG8gcmVwcmVzZW50CisgCSAgICAgb3B0aW1pemVkLW91dCBwaWVjZXMu ICAqLworLQkgIHdhcm5pbmcgKF8oImJ5dGVzICVsZC0lbGQgaW4gY29tcHV0ZWQgb2JqZWN0IHdl cmUgb3B0aW1pemVkIG91dDsgIgorKwkgIHdhcm5pbmcgKF8oImJpdHMgJWxkLSVsZCBpbiBjb21w dXRlZCBvYmplY3Qgd2VyZSBvcHRpbWl6ZWQgb3V0OyAiCisgCQkgICAgICJyZXBsYWNpbmcgd2l0 aCB6ZXJvZXMiKSwKKyAJCSAgIG9mZnNldCwKKy0JCSAgIG9mZnNldCArIChsb25nKSB0aGlzX3Np emUpOworKwkJICAgb2Zmc2V0ICsgKGxvbmcpIHRoaXNfc2l6ZV9iaXRzKTsKKyAJICBicmVhazsK KyAKKyAJZGVmYXVsdDoKKyAJICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLCBf KCJpbnZhbGlkIGxvY2F0aW9uIHR5cGUiKSk7CisgCX0KKy0gICAgICBvZmZzZXQgKz0gdGhpc19z aXplOworKworKyAgICAgIGlmIChwLT5sb2NhdGlvbiAhPSBEV0FSRl9WQUxVRV9PUFRJTUlaRURf T1VUKQorKwljb3B5X2JpdHdpc2UgKGNvbnRlbnRzLCBkZXN0X29mZnNldF9iaXRzLAorKwkJICAg ICAgaW50ZXJtZWRpYXRlX2J1ZmZlciwgc291cmNlX29mZnNldF9iaXRzICUgOCwKKysJCSAgICAg IHRoaXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworKworKyAgICAgIG9mZnNldCArPSB0 aGlzX3NpemVfYml0czsKKyAgICAgfQorKworKyAgZG9fY2xlYW51cHMgKGNsZWFudXApOworIH0K KyAKKyBzdGF0aWMgdm9pZAorQEAgLTQwNiwxMSArNjA5LDE2IEBACisgeworICAgaW50IGk7Cisg ICBsb25nIG9mZnNldCA9IDA7CistICBVTE9OR0VTVCBieXRlc190b19za2lwOworKyAgVUxPTkdF U1QgYml0c190b19za2lwOworICAgY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzOworICAgc3RydWN0 IHBpZWNlX2Nsb3N1cmUgKmMgPSAoc3RydWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0 ZWRfY2xvc3VyZSAodG8pOworICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lID0gZnJhbWVfZmlu ZF9ieV9pZCAoVkFMVUVfRlJBTUVfSUQgKHRvKSk7CisgICBzaXplX3QgdHlwZV9sZW47CisrICBz aXplX3QgYnVmZmVyX3NpemUgPSAwOworKyAgY2hhciAqYnVmZmVyID0gTlVMTDsKKysgIHN0cnVj dCBjbGVhbnVwICpjbGVhbnVwOworKyAgaW50IGJpdHNfYmlnX2VuZGlhbgorKyAgICA9IGdkYmFy Y2hfYml0c19iaWdfZW5kaWFuIChnZXRfdHlwZV9hcmNoICh2YWx1ZV90eXBlICh0bykpKTsKKyAK KyAgIGlmIChmcmFtZSA9PSBOVUxMKQorICAgICB7CitAQCAtNDE4LDM0ICs2MjYsNTcgQEAKKyAg ICAgICByZXR1cm47CisgICAgIH0KKyAKKysgIGNsZWFudXAgPSBtYWtlX2NsZWFudXAgKGZyZWVf Y3VycmVudF9jb250ZW50cywgJmJ1ZmZlcik7CisrCisgICBjb250ZW50cyA9IHZhbHVlX2NvbnRl bnRzIChmcm9tKTsKKy0gIGJ5dGVzX3RvX3NraXAgPSB2YWx1ZV9vZmZzZXQgKHRvKTsKKy0gIHR5 cGVfbGVuID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHRvKSk7CisrICBiaXRzX3RvX3NraXAg PSA4ICogdmFsdWVfb2Zmc2V0ICh0byk7CisrICB0eXBlX2xlbiA9IDggKiBUWVBFX0xFTkdUSCAo dmFsdWVfdHlwZSAodG8pKTsKKyAgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBvZmZz ZXQgPCB0eXBlX2xlbjsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGll Y2UgKnAgPSAmYy0+cGllY2VzW2ldOworLSAgICAgIHNpemVfdCB0aGlzX3NpemU7CistICAgICAg bG9uZyBkZXN0X29mZnNldCwgc291cmNlX29mZnNldDsKKysgICAgICBzaXplX3QgdGhpc19zaXpl X2JpdHMsIHRoaXNfc2l6ZTsKKysgICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJjZV9v ZmZzZXRfYml0cywgZGVzdF9vZmZzZXQsIHNvdXJjZV9vZmZzZXQ7CisrICAgICAgaW50IG5lZWRf Yml0d2lzZTsKKysgICAgICBjb25zdCBnZGJfYnl0ZSAqc291cmNlX2J1ZmZlcjsKKyAKKy0gICAg ICBpZiAoYnl0ZXNfdG9fc2tpcCA+IDAgJiYgYnl0ZXNfdG9fc2tpcCA+PSBwLT5zaXplKQorKyAg ICAgIHRoaXNfc2l6ZV9iaXRzID0gcC0+c2l6ZTsKKysgICAgICBpZiAoYml0c190b19za2lwID4g MCAmJiBiaXRzX3RvX3NraXAgPj0gdGhpc19zaXplX2JpdHMpCisgCXsKKy0JICBieXRlc190b19z a2lwIC09IHAtPnNpemU7CisrCSAgYml0c190b19za2lwIC09IHRoaXNfc2l6ZV9iaXRzOworIAkg IGNvbnRpbnVlOworIAl9CistICAgICAgdGhpc19zaXplID0gcC0+c2l6ZTsKKy0gICAgICBpZiAo dGhpc19zaXplID4gdHlwZV9sZW4gLSBvZmZzZXQpCistCXRoaXNfc2l6ZSA9IHR5cGVfbGVuIC0g b2Zmc2V0OworLSAgICAgIGlmIChieXRlc190b19za2lwID4gMCkKKy0JeworLQkgIGRlc3Rfb2Zm c2V0ID0gYnl0ZXNfdG9fc2tpcDsKKy0JICBzb3VyY2Vfb2Zmc2V0ID0gMDsKKy0JICB0aGlzX3Np emUgLT0gYnl0ZXNfdG9fc2tpcDsKKy0JICBieXRlc190b19za2lwID0gMDsKKysgICAgICBpZiAo dGhpc19zaXplX2JpdHMgPiB0eXBlX2xlbiAtIG9mZnNldCkKKysJdGhpc19zaXplX2JpdHMgPSB0 eXBlX2xlbiAtIG9mZnNldDsKKysgICAgICBpZiAoYml0c190b19za2lwID4gMCkKKysJeworKwkg IGRlc3Rfb2Zmc2V0X2JpdHMgPSBiaXRzX3RvX3NraXA7CisrCSAgc291cmNlX29mZnNldF9iaXRz ID0gMDsKKysJICB0aGlzX3NpemVfYml0cyAtPSBiaXRzX3RvX3NraXA7CisrCSAgYml0c190b19z a2lwID0gMDsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIGRlc3Rfb2Zmc2V0X2JpdHMgPSAw OworKwkgIHNvdXJjZV9vZmZzZXRfYml0cyA9IG9mZnNldDsKKysJfQorKworKyAgICAgIHRoaXNf c2l6ZSA9ICh0aGlzX3NpemVfYml0cyArIHNvdXJjZV9vZmZzZXRfYml0cyAlIDggKyA3KSAvIDg7 CisrICAgICAgc291cmNlX29mZnNldCA9IHNvdXJjZV9vZmZzZXRfYml0cyAvIDg7CisrICAgICAg ZGVzdF9vZmZzZXQgPSBkZXN0X29mZnNldF9iaXRzIC8gODsKKysgICAgICBpZiAoZGVzdF9vZmZz ZXRfYml0cyAlIDggPT0gMCAmJiBzb3VyY2Vfb2Zmc2V0X2JpdHMgJSA4ID09IDApCisrCXsKKysJ ICBzb3VyY2VfYnVmZmVyID0gY29udGVudHMgKyBzb3VyY2Vfb2Zmc2V0OworKwkgIG5lZWRfYml0 d2lzZSA9IDA7CisgCX0KKyAgICAgICBlbHNlCisgCXsKKy0JICBkZXN0X29mZnNldCA9IDA7Cist CSAgc291cmNlX29mZnNldCA9IG9mZnNldDsKKysJICBpZiAoYnVmZmVyX3NpemUgPCB0aGlzX3Np emUpCisrCSAgICB7CisrCSAgICAgIGJ1ZmZlcl9zaXplID0gdGhpc19zaXplOworKwkgICAgICBi dWZmZXIgPSB4cmVhbGxvYyAoYnVmZmVyLCBidWZmZXJfc2l6ZSk7CisrCSAgICB9CisrCSAgc291 cmNlX2J1ZmZlciA9IGJ1ZmZlcjsKKysJICBuZWVkX2JpdHdpc2UgPSAxOworIAl9CisgCisgICAg ICAgc3dpdGNoIChwLT5sb2NhdGlvbikKK0BAIC00NjMsOCArNjk0LDE4IEBACisgCisgCSAgICBp ZiAoZ2RiX3JlZ251bSAhPSAtMSkKKyAJICAgICAgeworKwkJaWYgKG5lZWRfYml0d2lzZSkKKysJ CSAgeworKwkJICAgIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoZnJhbWUsIGdkYl9yZWdudW0s IHJlZ19vZmZzZXQsCisrCQkJCQkgICAgICB0aGlzX3NpemUsIGJ1ZmZlcik7CisrCQkgICAgY29w eV9iaXR3aXNlIChidWZmZXIsIGRlc3Rfb2Zmc2V0X2JpdHMsCisrCQkJCSAgY29udGVudHMsIHNv dXJjZV9vZmZzZXRfYml0cywKKysJCQkJICB0aGlzX3NpemVfYml0cywKKysJCQkJICBiaXRzX2Jp Z19lbmRpYW4pOworKwkJICB9CisrCisgCQlwdXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKGZyYW1l LCBnZGJfcmVnbnVtLCByZWdfb2Zmc2V0LCAKKy0JCQkJCSAgdGhpc19zaXplLCBjb250ZW50cyAr IHNvdXJjZV9vZmZzZXQpOworKwkJCQkJICB0aGlzX3NpemUsIHNvdXJjZV9idWZmZXIpOworIAkg ICAgICB9CisgCSAgICBlbHNlCisgCSAgICAgIHsKK0BAIC00NzQsMTUgKzcxNSwzMSBAQAorIAkg IH0KKyAJICBicmVhazsKKyAJY2FzZSBEV0FSRl9WQUxVRV9NRU1PUlk6CisrCSAgaWYgKG5lZWRf Yml0d2lzZSkKKysJICAgIHsKKysJICAgICAgLyogT25seSB0aGUgZmlyc3QgYW5kIGxhc3QgYnl0 ZXMgY2FuIHBvc3NpYmx5IGhhdmUgYW55CisrCQkgYml0cyByZXVzZWQuICAqLworKwkgICAgICBy ZWFkX21lbW9yeSAocC0+di5leHByLnZhbHVlICsgZGVzdF9vZmZzZXQsIGJ1ZmZlciwgMSk7Cisr CSAgICAgIHJlYWRfbWVtb3J5IChwLT52LmV4cHIudmFsdWUgKyBkZXN0X29mZnNldCArIHRoaXNf c2l6ZSAtIDEsCisrCQkJICAgYnVmZmVyICsgdGhpc19zaXplIC0gMSwgMSk7CisrCSAgICAgIGNv cHlfYml0d2lzZSAoYnVmZmVyLCBkZXN0X29mZnNldF9iaXRzLAorKwkJCSAgICBjb250ZW50cywg c291cmNlX29mZnNldF9iaXRzLAorKwkJCSAgICB0aGlzX3NpemVfYml0cywKKysJCQkgICAgYml0 c19iaWdfZW5kaWFuKTsKKysJICAgIH0KKysKKyAJICB3cml0ZV9tZW1vcnkgKHAtPnYuZXhwci52 YWx1ZSArIGRlc3Rfb2Zmc2V0LAorLQkJCWNvbnRlbnRzICsgc291cmNlX29mZnNldCwgdGhpc19z aXplKTsKKysJCQlzb3VyY2VfYnVmZmVyLCB0aGlzX3NpemUpOworIAkgIGJyZWFrOworIAlkZWZh dWx0OgorIAkgIHNldF92YWx1ZV9vcHRpbWl6ZWRfb3V0ICh0bywgMSk7CistCSAgcmV0dXJuOwor KwkgIGdvdG8gZG9uZTsKKyAJfQorLSAgICAgIG9mZnNldCArPSB0aGlzX3NpemU7CisrICAgICAg b2Zmc2V0ICs9IHRoaXNfc2l6ZV9iaXRzOworICAgICB9CisrCisrIGRvbmU6CisrICBkb19jbGVh bnVwcyAoY2xlYW51cCk7CisgfQorIAorIHN0YXRpYyB2b2lkICoKKy0tLSBzcmMvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL3BpZWNlcy5TCTIwMTAvMDUvMjEgMjE6MDE6NDYJMS4yCisrKysgc3Jj L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9waWVjZXMuUwkyMDEwLzA1LzIxIDIxOjEzOjEzCTEu MworQEAgLTk4OSwyMyArOTg5LDE4IEBACisgLkxMU1Q2OgorIAkubG9uZwkuTFZMMTMtLkx0ZXh0 MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNikKKyAJLmxvbmcJLkxWTDE0 LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q2KQorLQkudmFsdWUJ MHhhCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCistCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRf cGllY2UKKy0JLnVsZWIxMjggMHg0CistCS51bGViMTI4IDAKKysJLnZhbHVlCTB4OAkjIExvY2F0 aW9uIGV4cHJlc3Npb24gc2l6ZQorIAkuYnl0ZQkweDM0CSMgRFdfT1BfbGl0NAorIAkuYnl0ZQkw eDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKKyAJLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9waWVjZQor IAkudWxlYjEyOCAweGMKKyAJLnVsZWIxMjggMAorLQkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UK Ky0JLnVsZWIxMjggMHgyCistCS5sb25nCS5MVkwxNC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBi ZWdpbiBhZGRyZXNzICgqLkxMU1Q2KQorLQkubG9uZwkuTFZMMTUtLkx0ZXh0MAkjIExvY2F0aW9u IGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDYpCistCS52YWx1ZQkweDE1CSMgTG9jYXRpb24gZXhw cmVzc2lvbiBzaXplCisgCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKy0JLnVsZWIxMjgg MHg0CisrCS51bGViMTI4IDB4MTQKKyAJLnVsZWIxMjggMAorKwkubG9uZwkuTFZMMTQtLkx0ZXh0 MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNikKKysJLmxvbmcJLkxWTDE1 LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q2KQorKwkudmFsdWUJ MHgxMQkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorIAkuYnl0ZQkweDM0CSMgRFdfT1BfbGl0 NAorIAkuYnl0ZQkweDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKKyAJLmJ5dGUJMHg5ZAkjIERXX09Q X2JpdF9waWVjZQorQEAgLTEwMjEsMTUgKzEwMTYsMTEgQEAKKyAJLmJ5dGUJMHg5ZAkjIERXX09Q X2JpdF9waWVjZQorIAkudWxlYjEyOCAweGMKKyAJLnVsZWIxMjggMAorLQkuYnl0ZQkweDlkCSMg RFdfT1BfYml0X3BpZWNlCistCS51bGViMTI4IDB4NAorLQkudWxlYjEyOCAwCisrCS5ieXRlCTB4 OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDEKKyAJLmxvbmcJLkxWTDE1LS5MdGV4dDAJ IyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDYpCisgCS5sb25nCS5MVkwxNi0x LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q2KQorLQkudmFsdWUJ MHgxNAkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorLQkuYnl0ZQkweDlkCSMgRFdfT1BfYml0 X3BpZWNlCistCS51bGViMTI4IDB4NAorLQkudWxlYjEyOCAwCisrCS52YWx1ZQkweDEwCSMgTG9j YXRpb24gZXhwcmVzc2lvbiBzaXplCisgCS5ieXRlCTB4NTIJIyBEV19PUF9yZWcyCisgCS5ieXRl CTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKyAJLnVsZWIxMjggMHhjCitAQCAtMTA0NCwxNSArMTAz NSwxMSBAQAorIAkuYnl0ZQkweDlkCSMgRFdfT1BfYml0X3BpZWNlCisgCS51bGViMTI4IDB4Ywor IAkudWxlYjEyOCAwCistCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKy0JLnVsZWIxMjgg MHg0CistCS51bGViMTI4IDAKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4 IDB4MQorIAkubG9uZwkuTFZMMTYtMS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRy ZXNzICgqLkxMU1Q2KQorIAkubG9uZwkuTFZMMTctLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5k IGFkZHJlc3MgKCouTExTVDYpCistCS52YWx1ZQkweDE0CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBz aXplCistCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKy0JLnVsZWIxMjggMHg0CistCS51 bGViMTI4IDAKKysJLnZhbHVlCTB4MTAJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKyAJLmJ5 dGUJMHg1NgkjIERXX09QX3JlZzYKKyAJLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9waWVjZQorIAku dWxlYjEyOCAweGMKK0BAIC0xMDY3LDE0ICsxMDU0LDE0IEBACisgCS5ieXRlCTB4OWQJIyBEV19P UF9iaXRfcGllY2UKKyAJLnVsZWIxMjggMHhjCisgCS51bGViMTI4IDAKKy0JLmJ5dGUJMHg5ZAkj IERXX09QX2JpdF9waWVjZQorLQkudWxlYjEyOCAweDQKKy0JLnVsZWIxMjggMAorKwkuYnl0ZQkw eDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHgxCisgCS5sb25nCS5MVkwxNy0uTHRleHQw CSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q2KQorIAkubG9uZwkuTEZFMy0u THRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUNikKKyAJLnZhbHVlCTB4 ZgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorLQkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UK Ky0JLnVsZWIxMjggMHgyCisrCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKysJLnVsZWIx MjggMHhjCisrCS51bGViMTI4IDAKKyAJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisgCS5zbGVi MTI4IDAKKyAJLmJ5dGUJMHg5NAkjIERXX09QX2RlcmVmX3NpemUKK0BAIC0xMDg1LDkgKzEwNzIs OCBAQAorIAkuYnl0ZQkweDlkCSMgRFdfT1BfYml0X3BpZWNlCisgCS51bGViMTI4IDB4YworIAku dWxlYjEyOCAwCistCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKy0JLnVsZWIxMjggMHg0 CistCS51bGViMTI4IDAKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4 MQorIAkubG9uZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGJlZ2luICgqLkxMU1Q2KQor IAkubG9uZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGVuZCAoKi5MTFNUNikKKyAuTExT VDc6CitAQCAtMTM1Niw3ICsxMzQyLDcgQEAKKyAJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKyAJ LmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCisgCS5ieXRlCTB4YwkjIERXX0FUX2JpdF9zaXpl CistCS5ieXRlCTB4MTAJIyBEV19BVF9iaXRfb2Zmc2V0CisrCS5ieXRlCTB4MTQJIyBEV19BVF9i aXRfb2Zmc2V0CisgCS5ieXRlCTB4MgkjIERXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uCisgCS5i eXRlCTB4MjMJIyBEV19PUF9wbHVzX3Vjb25zdAorIAkudWxlYjEyOCAwCitAQCAtMTM2Nyw3ICsx MzUzLDcgQEAKKyAJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKyAJLmJ5dGUJMHg0CSMgRFdfQVRf Ynl0ZV9zaXplCisgCS5ieXRlCTB4YwkjIERXX0FUX2JpdF9zaXplCistCS5ieXRlCTB4NAkjIERX X0FUX2JpdF9vZmZzZXQKKysJLmJ5dGUJMHg4CSMgRFdfQVRfYml0X29mZnNldAorIAkuYnl0ZQkw eDIJIyBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbgorIAkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1 c191Y29uc3QKKyAJLnVsZWIxMjggMAorLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv cGllY2VzLmMJMjAxMC8wNS8yMSAyMTowMTo0NgkxLjIKKysrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL3BpZWNlcy5jCTIwMTAvMDUvMjEgMjE6MTM6MTMJMS4zCitAQCAtMjEsNyArMjEs NyBAQAorICAgIEhvd2V2ZXIsIGl0IGlzIHVzZWQgdG8gZXh0cmFjdCBicmVha3BvaW50IGxpbmUg bnVtYmVycy4gICovCisgCisgc3RydWN0IEEgeyBpbnQgaTsgaW50IGo7IH07Cistc3RydWN0IEIg eyBpbnQgOiA0OyBpbnQgaSA6IDEyOyBpbnQgaiA6IDEyOyBpbnQgOiA0OyB9OworK3N0cnVjdCBC IHsgaW50IGkgOiAxMjsgaW50IGogOiAxMjsgaW50IDogNDsgfTsKKyBzdHJ1Y3QgQyB7IGludCBp OyBpbnQgajsgaW50IHE7IH07CisgCisgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSB2b2lkCitA QCAtODksNyArODksNyBAQAorIGY2IChpbnQgaykKKyB7CisgICBpbnQgeiA9IDIzOworLSAgc3Ry dWN0IEMgYSA9IHsgaywgaywgen07CisrICBzdHJ1Y3QgQyBhID0geyBrLCBrLCB6IH07CisgICBh c20gKCIiIDogIityIiAoYS5pKSk7CisgICBhLmorKzsKKyAgIGJhciAoYS5pKTsKKy0tLSBzcmMv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3BpZWNlcy5leHAJMjAxMC8wNS8yMSAyMTowMTo0Ngkx LjMKKysrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3BpZWNlcy5leHAJMjAxMC8wNS8y MSAyMToxMzoxMwkxLjQKK0BAIC02NywxNSArNjcsMzAgQEAKKyAgICAgZ2RiX3Rlc3QgInByaW50 IGFcWzFcXSIgIiA9IDE0IiAicHJpbnQgYVxbMVxdIGluIHBpZWNlczpmMiIKKyB9CisgCisrIyBG dW5jdGlvbiBmMyB0ZXN0cyBEV19PUF9iaXRfcGllY2UuCisrcHJvYyBwaWVjZXNfdGVzdF9mMyB7 fSB7CisrICAgIGdsb2JhbCBjc3JjZmlsZQorKyAgICBzZXQgbGluZSBbZ2RiX2dldF9saW5lX251 bWJlciAiZjMgYnJlYWtwb2ludCIgJGNzcmNmaWxlXQorKyAgICBnZGJfdGVzdCAiYnJlYWsgcGll Y2VzLmM6JGxpbmUiICJCcmVha3BvaW50IDQuKiIgXAorKyAgICAgICAic2V0IGYzIGJyZWFrcG9p bnQgZm9yIHBpZWNlcyIKKysgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnRpbnVl IHRvIGYzIGJyZWFrcG9pbnQgZm9yIHBpZWNlcyIKKysgICAgZ2RiX3Rlc3QgInByaW50IGEuaSIg IiA9IDQiICJwcmludCBhLmkgaW4gcGllY2VzOmYzIgorKyAgICBnZGJfdGVzdCAicHJpbnQgYS5q IiAiID0gMTQiICJwcmludCBhLmogaW4gcGllY2VzOmYzIgorKyAgICAjIFJpZ2h0IG5vdyBnZGIg c2F5cyAidmFsdWUgb3B0aW1pemVkIG91dCIgaGVyZSwgYnV0IHRoYXQgaXMgd3JvbmcuCisrICAg IHNldHVwX2tmYWlsICJubyBidWcgeWV0IiAqLSotKgorKyAgICBnZGJfdGVzdCAicHJpbnQgYS5p ID0gNyIgIiA9IDciICJzZXQgYS5pIGluIHBpZWNlczpmMyIKKysgICAgZ2RiX3Rlc3QgInByaW50 IGEuaSIgIiA9IDciICJwcmludCBuZXcgYS5pIGluIHBpZWNlczpmMyIKKyt9CisrCisgIyBGdW5j dGlvbiBmNiB0ZXN0cyBmb3IgYW4gZW1wdHkgRFdfT1BfcGllY2UuCisgcHJvYyBwaWVjZXNfdGVz dF9mNiB7fSB7CisgICAgIGdsb2JhbCBjc3JjZmlsZQorICAgICBzZXQgbGluZSBbZ2RiX2dldF9s aW5lX251bWJlciAiZjYgYnJlYWtwb2ludCIgJGNzcmNmaWxlXQorLSAgICBnZGJfdGVzdCAiYnJl YWsgcGllY2VzLmM6JGxpbmUiICJCcmVha3BvaW50IDQuKiIgXAorKyAgICBnZGJfdGVzdCAiYnJl YWsgcGllY2VzLmM6JGxpbmUiICJCcmVha3BvaW50IDUuKiIgXAorICAgICAgICAic2V0IGY2IGJy ZWFrcG9pbnQgZm9yIHBpZWNlcyIKKyAgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNv bnRpbnVlIHRvIGY2IGJyZWFrcG9pbnQgZm9yIHBpZWNlcyIKKyAgICAgZ2RiX3Rlc3QgInByaW50 IGEiIFwKKy0JIndhcm5pbmc6IGJ5dGVzIC4qIGluIGNvbXB1dGVkIG9iamVjdCB3ZXJlLiogPSB7 aSA9IDcsIGogPSA4LCBxID0gMH0iIFwKKysJIndhcm5pbmc6IGJpdHMgLiogaW4gY29tcHV0ZWQg b2JqZWN0IHdlcmUuKiA9IHtpID0gNywgaiA9IDgsIHEgPSAwfSIgXAorIAkicHJpbnQgYSB3aXRo IG9wdGltaXplZCBvdXQgcGllY2UiCisgICAgICMgTm90ZTogbm8gd2FybmluZyBmb3IgdGhpcyBj YXNlLgorICAgICBnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgYS5pIiBcCitAQCAtOTEsNCArMTA2 LDUgQEAKKyAKKyBwaWVjZXNfdGVzdF9mMQorIHBpZWNlc190ZXN0X2YyCisrcGllY2VzX3Rlc3Rf ZjMKKyBwaWVjZXNfdGVzdF9mNgoKZGlmZiAtLWdpdCBhL2dkYi1iejU5NDU2MC1jb3JlLXZzLXBy b2Nlc3MucGF0Y2ggYi9nZGItYno1OTQ1NjAtY29yZS12cy1wcm9jZXNzLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmN2I5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9n ZGItYno1OTQ1NjAtY29yZS12cy1wcm9jZXNzLnBhdGNoCkBAIC0wLDAgKzEsMTY0IEBACistLS0g Li9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDUtMjQgMTk6Mzc6MDEuMDAwMDAwMDAwICswMjAw CisrKysgLi9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDUtMjQgMTk6Mzg6NTYuMDAwMDAwMDAw ICswMjAwCitAQCAtMTQ3NjgsMzMgKzE0NzY4LDIxIEBAIGFuZCBAY29kZXtzaG93IGFyY2hpdGVj dHVyZX0uCisgQGNpbmRleCBhY3RpdmUgdGFyZ2V0cworIEBjaW5kZXggbXVsdGlwbGUgdGFyZ2V0 cworIAorLVRoZXJlIGFyZSB0aHJlZSBjbGFzc2VzIG9mIHRhcmdldHM6IHByb2Nlc3NlcywgY29y ZSBmaWxlcywgYW5kCistZXhlY3V0YWJsZSBmaWxlcy4gIEB2YWx1ZXtHREJOfSBjYW4gd29yayBj b25jdXJyZW50bHkgb24gdXAgdG8gdGhyZWUKKy1hY3RpdmUgdGFyZ2V0cywgb25lIGluIGVhY2gg Y2xhc3MuICBUaGlzIGFsbG93cyB5b3UgdG8gKGZvciBleGFtcGxlKQorLXN0YXJ0IGEgcHJvY2Vz cyBhbmQgaW5zcGVjdCBpdHMgYWN0aXZpdHkgd2l0aG91dCBhYmFuZG9uaW5nIHlvdXIgd29yayBv bgorLWEgY29yZSBmaWxlLgorLQorLUZvciBleGFtcGxlLCBpZiB5b3UgZXhlY3V0ZSBAc2FtcHtn ZGIgYS5vdXR9LCB0aGVuIHRoZSBleGVjdXRhYmxlIGZpbGUKKy1AY29kZXthLm91dH0gaXMgdGhl IG9ubHkgYWN0aXZlIHRhcmdldC4gIElmIHlvdSBkZXNpZ25hdGUgYSBjb3JlIGZpbGUgYXMKKy13 ZWxsLS0tcHJlc3VtYWJseSBmcm9tIGEgcHJpb3IgcnVuIHRoYXQgY3Jhc2hlZCBhbmQgY29yZWR1 bXBlZC0tLXRoZW4KKy1AdmFsdWV7R0RCTn0gaGFzIHR3byBhY3RpdmUgdGFyZ2V0cyBhbmQgdXNl cyB0aGVtIGluIHRhbmRlbSwgbG9va2luZworLWZpcnN0IGluIHRoZSBjb3JlZmlsZSB0YXJnZXQs IHRoZW4gaW4gdGhlIGV4ZWN1dGFibGUgZmlsZSwgdG8gc2F0aXNmeQorLXJlcXVlc3RzIGZvciBt ZW1vcnkgYWRkcmVzc2VzLiAgKFR5cGljYWxseSwgdGhlc2UgdHdvIGNsYXNzZXMgb2YgdGFyZ2V0 CistYXJlIGNvbXBsZW1lbnRhcnksIHNpbmNlIGNvcmUgZmlsZXMgY29udGFpbiBvbmx5IGEgcHJv Z3JhbSdzCistcmVhZC13cml0ZSBtZW1vcnktLS12YXJpYWJsZXMgYW5kIHNvIG9uLS0tcGx1cyBt YWNoaW5lIHN0YXR1cywgd2hpbGUKKy1leGVjdXRhYmxlIGZpbGVzIGNvbnRhaW4gb25seSB0aGUg cHJvZ3JhbSB0ZXh0IGFuZCBpbml0aWFsaXplZCBkYXRhLikKKy0KKy1XaGVuIHlvdSB0eXBlIEBj b2Rle3J1bn0sIHlvdXIgZXhlY3V0YWJsZSBmaWxlIGJlY29tZXMgYW4gYWN0aXZlIHByb2Nlc3MK Ky10YXJnZXQgYXMgd2VsbC4gIFdoZW4gYSBwcm9jZXNzIHRhcmdldCBpcyBhY3RpdmUsIGFsbCBA dmFsdWV7R0RCTn0KKy1jb21tYW5kcyByZXF1ZXN0aW5nIG1lbW9yeSBhZGRyZXNzZXMgcmVmZXIg dG8gdGhhdCB0YXJnZXQ7IGFkZHJlc3NlcyBpbgorLWFuIGFjdGl2ZSBjb3JlIGZpbGUgb3IgZXhl Y3V0YWJsZSBmaWxlIHRhcmdldCBhcmUgb2JzY3VyZWQgd2hpbGUgdGhlCistcHJvY2VzcyB0YXJn ZXQgaXMgYWN0aXZlLgorLQorLVVzZSB0aGUgQGNvZGV7Y29yZS1maWxlfSBhbmQgQGNvZGV7ZXhl Yy1maWxlfSBjb21tYW5kcyB0byBzZWxlY3QgYSBuZXcKKy1jb3JlIGZpbGUgb3IgZXhlY3V0YWJs ZSB0YXJnZXQgKEBweHJlZntGaWxlcywgLENvbW1hbmRzIHRvIFNwZWNpZnkKKy1GaWxlc30pLiAg VG8gc3BlY2lmeSBhcyBhIHRhcmdldCBhIHByb2Nlc3MgdGhhdCBpcyBhbHJlYWR5IHJ1bm5pbmcs IHVzZQorLXRoZSBAY29kZXthdHRhY2h9IGNvbW1hbmQgKEBweHJlZntBdHRhY2gsICxEZWJ1Z2dp bmcgYW4gQWxyZWFkeS1ydW5uaW5nCistUHJvY2Vzc30pLgorK1RoZXJlIGFyZSBtdWx0aXBsZSBj bGFzc2VzIG9mIHRhcmdldHMgc3VjaCBhczogcHJvY2Vzc2VzLCBleGVjdXRhYmxlIGZpbGVzIG9y CisrcmVjb3JkaW5nIHNlc3Npb25zLiAgQ29yZSBmaWxlcyBiZWxvbmcgdG8gdGhlIHByb2Nlc3Mg Y2xhc3MsIHRoZXJlIGNhbiBiZQorK2FjdGl2ZSBvbmx5IG9uZSBvZiBhIGNvcmUgb3IgYSBydW5u aW5nIHByb2Nlc3MuICBPdGhlcndpc2UgQHZhbHVle0dEQk59IGNhbgorK3dvcmsgY29uY3VycmVu dGx5IG9uIG11bHRpcGxlIGFjdGl2ZSB0YXJnZXRzLCBvbmUgaW4gZWFjaCBjbGFzcy4gIFRoaXMg YWxsb3dzCisreW91IHRvIChmb3IgZXhhbXBsZSkgc3RhcnQgYSBwcm9jZXNzIGFuZCBpbnNwZWN0 IGl0cyBhY3Rpdml0eSB3aGlsZSBzdGlsbAorK2hhdmluZyBhY2Nlc3MgdG8gdGhlIGV4ZWN1dGFi bGUgZmlsZSBhZnRlciB0aGUgcHJvY2VzcyBmaW5pc2hlcy4gIE9yIGlmIHlvdQorK3N0YXJ0IHBy b2Nlc3MgcmVjb3JkaW5nIChAcHhyZWZ7UmV2ZXJzZSBFeGVjdXRpb259KSBhbmQgQGNvZGV7cmV2 ZXJzZS1zdGVwfQorK3RoZXJlIHlvdSBhcmUgcHJlc2VudGVkIGEgdmlydHVhbCBsYXllciBvZiB0 aGUgcmVjb3JkaW5nIHRhcmdldCB3aGlsZSB0aGUKKytwcm9jZXNzIHRhcmdldCByZW1haW5zIHN0 b3BwZWQgYXQgdGhlIGNocm9ub2xvZ2ljYWxseSBsYXN0IHBvaW50IG9mIHRoZSBwcm9jZXNzCisr ZXhlY3V0aW9uLgorKworK1VzZSB0aGUgQGNvZGV7Y29yZS1maWxlfSBhbmQgQGNvZGV7ZXhlYy1m aWxlfSBjb21tYW5kcyB0byBzZWxlY3QgYSBuZXcgY29yZQorK2ZpbGUgb3IgZXhlY3V0YWJsZSB0 YXJnZXQgKEBweHJlZntGaWxlcywgLENvbW1hbmRzIHRvIFNwZWNpZnkgRmlsZXN9KS4gIFRvCisr c3BlY2lmeSBhcyBhIHRhcmdldCBhIHByb2Nlc3MgdGhhdCBpcyBhbHJlYWR5IHJ1bm5pbmcsIHVz ZSB0aGUgQGNvZGV7YXR0YWNofQorK2NvbW1hbmQgKEBweHJlZntBdHRhY2gsICxEZWJ1Z2dpbmcg YW4gQWxyZWFkeS1ydW5uaW5nIFByb2Nlc3N9KS4KKyAKKyBAbm9kZSBUYXJnZXQgQ29tbWFuZHMK KyBAc2VjdGlvbiBDb21tYW5kcyBmb3IgTWFuYWdpbmcgVGFyZ2V0cworLS0tIC4vZ2RiL2luZmNt ZC5jCTIwMTAtMDUtMjQgMTk6Mzc6MDEuMDAwMDAwMDAwICswMjAwCisrKysgLi9nZGIvaW5mY21k LmMJMjAxMC0wNS0yNCAxOTo0MToyMS4wMDAwMDAwMDAgKzAyMDAKK0BAIC00ODMsNiArNDgzLDEz IEBAIHJ1bl9jb21tYW5kXzEgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSwKKyAKKyAgIGRvbnRf cmVwZWF0ICgpOworIAorKyAgaWYgKGNvcmVfYmZkKQorKyAgICB7CisrICAgICAgY29yZV9maWxl X2NvbW1hbmQgKE5VTEwsIGZyb21fdHR5KTsKKysgICAgICBpZiAoY29yZV9iZmQpCisrCXdhcm5p bmcgKF8oIkNvcmUgZmlsZSBub3QgdW5sb2FkZWQuIikpOworKyAgICB9CisrCisgICBraWxsX2lm X2FscmVhZHlfcnVubmluZyAoZnJvbV90dHkpOworIAorICAgaW5pdF93YWl0X2Zvcl9pbmZlcmlv ciAoKTsKK0BAIC0yMzczLDYgKzIzODAsMTMgQEAgYXR0YWNoX2NvbW1hbmQgKGNoYXIgKmFyZ3Ms IGludCBmcm9tX3R0eQorIAllcnJvciAoXygiTm90IGtpbGxlZC4iKSk7CisgICAgIH0KKyAKKysg IGlmIChjb3JlX2JmZCkKKysgICAgeworKyAgICAgIGNvcmVfZmlsZV9jb21tYW5kIChOVUxMLCBm cm9tX3R0eSk7CisrICAgICAgaWYgKGNvcmVfYmZkKQorKwl3YXJuaW5nIChfKCJDb3JlIGZpbGUg bm90IHVubG9hZGVkLiIpKTsKKysgICAgfQorKworICAgLyogQ2xlYW4gdXAgYW55IGxlZnRvdmVy cyBmcm9tIG90aGVyIHJ1bnMuICBTb21lIG90aGVyIHRoaW5ncyBmcm9tCisgICAgICB0aGlzIGZ1 bmN0aW9uIHNob3VsZCBwcm9iYWJseSBiZSBtb3ZlZCBpbnRvIHRhcmdldF9wcmVfaW5mZXJpb3Iu ICAqLworICAgdGFyZ2V0X3ByZV9pbmZlcmlvciAoZnJvbV90dHkpOworLS0tIC4vZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxMC0wMS0wOSAwMToxNDoxMS4wMDAwMDAwMDAg KzAxMDAKKysrKyAuL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTAtMDUt MjQgMTk6Mzg6NTYuMDAwMDAwMDAwICswMjAwCitAQCAtMTgyLDMgKzE4Miw2MiBAQCBnZGJfbG9h ZCAke2JpbmZpbGV9CisgZ2RiX3Rlc3QgInVwIiAiI1xbMC05XF0qICpcWzAtOXhhLWZIJ1xdKiBp biAuKiBcXCguKlxcKS4qIiAidXAgaW4gY29yZWZpbGUuZXhwIChyZWluaXQpIgorIAorIGdkYl90 ZXN0ICJjb3JlIiAiTm8gY29yZSBmaWxlIG5vdy4iCisrCisrCisrIyBUZXN0IGEgcnVuIChzdGFy dCkgY29tbWFuZCB3aWxsIGNsZWFyIGFueSBsb2FkZWQgY29yZSBmaWxlLgorKworK2dkYl90ZXN0 ICJjb3JlLWZpbGUgJGNvcmVmaWxlIiAiQ29yZSB3YXMgZ2VuZXJhdGVkIGJ5IC4qIiAicnVuOiBs b2FkIGNvcmUgYWdhaW4iCisrZ2RiX3Rlc3QgImluZm8gZmlsZXMiICJcclxuTG9jYWwgY29yZSBk dW1wIGZpbGU6XHJcbi4qIiAicnVuOiBzYW5pdHkgY2hlY2sgd2Ugc2VlIHRoZSBjb3JlIGZpbGUi CisrCisrc2V0IHRlc3QgInJ1bjogd2l0aCBjb3JlIgorK2lmIFtydW50b19tYWluXSB7CisrICAg IHBhc3MgJHRlc3QKKyt9IGVsc2UgeworKyAgICBmYWlsICR0ZXN0CisrfQorKworK3NldCB0ZXN0 ICJydW46IGNvcmUgZmlsZSBpcyBjbGVhcmVkIgorK2dkYl90ZXN0X211bHRpcGxlICJpbmZvIGZp bGVzIiAkdGVzdCB7CisrICAgICJcclxuTG9jYWwgY29yZSBkdW1wIGZpbGU6XHJcbi4qXHJcbiRn ZGJfcHJvbXB0ICQiIHsKKysJZmFpbCAkdGVzdAorKyAgICB9CisrICAgICJcclxuJGdkYl9wcm9t cHQgJCIgeworKwlwYXNzICR0ZXN0CisrICAgIH0KKyt9CisrCisrZ2RiX2V4aXQKKysKKysKKysj IFRlc3QgYW4gYXR0YWNoIGNvbW1hbmQgd2lsbCBjbGVhciBhbnkgbG9hZGVkIGNvcmUgZmlsZS4K KysKKytpZiAhW2lzX3JlbW90ZSB0YXJnZXRdIHsKKysgICAgc2V0IHRlc3QgImF0dGFjaDogc3Bh d24gc2xlZXAiCisrICAgIHNldCByZXMgW3JlbW90ZV9zcGF3biBob3N0ICIkYmluZmlsZSBzbGVl cCJdOworKyAgICBpZiB7ICRyZXMgPCAwIHx8ICRyZXMgPT0gIiIgfSB7CisrCXBlcnJvciAiJHRl c3QgZmFpbGVkLiIKKysJZmFpbCAkdGVzdAorKwlyZXR1cm4KKysgICAgfQorKyAgICBzZXQgcGlk IFtleHBfcGlkIC1pICRyZXNdCisrICAgICMgV2UgZG8gbm90IGNhcmUgb2YgdGhlIHN0YXJ0dXAg cGhhc2Ugd2hlcmUgaXQgd2lsbCBiZSBjYXVnaHQuCisrCisrICAgIGdkYl9zdGFydAorKworKyAg ICBnZGJfdGVzdCAiY29yZS1maWxlICRjb3JlZmlsZSIgIkNvcmUgd2FzIGdlbmVyYXRlZCBieSAu KiIgImF0dGFjaDogbG9hZCBjb3JlIGFnYWluIgorKyAgICBnZGJfdGVzdCAiaW5mbyBmaWxlcyIg IlxyXG5Mb2NhbCBjb3JlIGR1bXAgZmlsZTpcclxuLioiICJhdHRhY2g6IHNhbml0eSBjaGVjayB3 ZSBzZWUgdGhlIGNvcmUgZmlsZSIKKysKKysgICAgZ2RiX3Rlc3QgImF0dGFjaCAkcGlkIiAiQXR0 YWNoaW5nIHRvIHByb2Nlc3MgJHBpZFxyXG4uKiIgImF0dGFjaDogd2l0aCBjb3JlIgorKworKyAg ICBzZXQgdGVzdCAiYXR0YWNoOiBjb3JlIGZpbGUgaXMgY2xlYXJlZCIKKysgICAgZ2RiX3Rlc3Rf bXVsdGlwbGUgImluZm8gZmlsZXMiICR0ZXN0IHsKKysJIlxyXG5Mb2NhbCBjb3JlIGR1bXAgZmls ZTpcclxuLipcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgZmFpbCAkdGVzdAorKwl9CisrCSJc clxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKwl9CisrICAgIH0KKysKKysg ICAgZ2RiX2V4aXQKKyt9CistLS0gLi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVtYWtlci5j CTIwMTAtMDEtMDEgMDg6MzI6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2NvcmVtYWtlci5jCTIwMTAtMDUtMjQgMTk6Mzg6NTYuMDAwMDAwMDAwICswMjAw CitAQCAtMTMzLDggKzEzMywxNCBAQCBmdW5jMSAoKQorICAgZnVuYzIgKCk7CisgfQorIAorLWlu dCBtYWluICgpCisraW50CisrbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorIHsKKysgIGlm IChhcmdjID09IDIgJiYgc3RyY21wIChhcmd2WzFdLCAic2xlZXAiKSA9PSAwKQorKyAgICB7Cisr ICAgICAgc2xlZXAgKDYwKTsKKysgICAgICByZXR1cm4gMDsKKysgICAgfQorICAgbW1hcGRhdGEg KCk7CisgICBmdW5jMSAoKTsKKyAgIHJldHVybiAwOwoKZGlmZiAtLWdpdCBhL2dkYi1iejU5NTQ3 NS10dWktbGF5b3V0LnBhdGNoIGIvZ2RiLWJ6NTk1NDc1LXR1aS1sYXlvdXQucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE3NDJmOAotLS0gL2Rldi9udWxsCisrKyBi L2dkYi1iejU5NTQ3NS10dWktbGF5b3V0LnBhdGNoCkBAIC0wLDAgKzEsNzkgQEAKK2h0dHBzOi8v YnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NTg2NTY2CitodHRwOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMy9tc2cwMDc0Ni5odG1sCitodHRwOi8vc291 cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wNS9tc2cwMDU1MS5odG1sCitodHRwOi8v c291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEwLTAzL21zZzAwMTk0Lmh0bWwKKworIyMjIHNy Yy9nZGIvQ2hhbmdlTG9nCTIwMTAvMDMvMTkgMjI6MDA6MTYJMS4xMTUwOAorIyMjIHNyYy9nZGIv Q2hhbmdlTG9nCTIwMTAvMDMvMjAgMDU6MTc6MTAJMS4xMTUwOQorIyMgLTEsMyArMSw5IEBACisr MjAxMC0wMy0yMCAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KKysK KysJKiB0dWkvdHVpLWRpc2FzbS5jICh0dWlfZ2V0X2JlZ2luX2FzbV9hZGRyZXNzKTogRGVmYXVs dCB0bworKwlnZXRfY3VycmVudF9hcmNoLgorKwkqIHR1aS90dWktbGF5b3V0LmMgKGV4dHJhY3Rf ZGlzcGxheV9zdGFydF9hZGRyKTogTGlrZXdpc2UuCisrCisgMjAxMC0wMy0xOSAgU3RhbiBTaGVi cyAgPHN0YW5AY29kZXNvdXJjZXJ5LmNvbT4KKyAKKyAJKiBheC1nZGIuYyAoZ2VuX2ZldGNoKTog SGFuZGxlIGJvb2wuCistLS0gc3JjL2dkYi90dWkvdHVpLWRpc2FzbS5jCTIwMTAvMDEvMDEgMDc6 MzI6MDcJMS4zMworKysrIHNyYy9nZGIvdHVpL3R1aS1kaXNhc20uYwkyMDEwLzAzLzIwIDA1OjE3 OjEwCTEuMzQKK0BAIC0yMSw2ICsyMSw3IEBACisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworIAorICNp bmNsdWRlICJkZWZzLmgiCisrI2luY2x1ZGUgImFyY2gtdXRpbHMuaCIKKyAjaW5jbHVkZSAic3lt dGFiLmgiCisgI2luY2x1ZGUgImJyZWFrcG9pbnQuaCIKKyAjaW5jbHVkZSAiZnJhbWUuaCIKK0BA IC0zMzAsNyArMzMxLDcgQEAKKyB7CisgICBzdHJ1Y3QgdHVpX2dlbl93aW5faW5mbyAqbG9jYXRv cjsKKyAgIHN0cnVjdCB0dWlfbG9jYXRvcl9lbGVtZW50ICplbGVtZW50OworLSAgc3RydWN0IGdk YmFyY2ggKmdkYmFyY2ggPSBOVUxMOworKyAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRf Y3VycmVudF9hcmNoICgpOworICAgQ09SRV9BRERSIGFkZHI7CisgCisgICBsb2NhdG9yID0gdHVp X2xvY2F0b3Jfd2luX2luZm9fcHRyICgpOworLS0tIHNyYy9nZGIvdHVpL3R1aS1sYXlvdXQuYwky MDEwLzAxLzAxIDA3OjMyOjA3CTEuMzYKKysrKyBzcmMvZ2RiL3R1aS90dWktbGF5b3V0LmMJMjAx MC8wMy8yMCAwNToxNzoxMAkxLjM3CitAQCAtMjEsNiArMjEsNyBAQAorICAgIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KKyAKKyAjaW5jbHVkZSAiZGVmcy5oIgorKyNpbmNsdWRlICJhcmNoLXV0aWxzLmgiCisg I2luY2x1ZGUgImNvbW1hbmQuaCIKKyAjaW5jbHVkZSAic3ltdGFiLmgiCisgI2luY2x1ZGUgImZy YW1lLmgiCitAQCAtNTIyLDcgKzUyMyw3IEBACisgZXh0cmFjdF9kaXNwbGF5X3N0YXJ0X2FkZHIg KHN0cnVjdCBnZGJhcmNoICoqZ2RiYXJjaF9wLCBDT1JFX0FERFIgKmFkZHJfcCkKKyB7CisgICBl bnVtIHR1aV9sYXlvdXRfdHlwZSBjdXJfbGF5b3V0ID0gdHVpX2N1cnJlbnRfbGF5b3V0ICgpOwor LSAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBOVUxMOworKyAgc3RydWN0IGdkYmFyY2ggKmdk YmFyY2ggPSBnZXRfY3VycmVudF9hcmNoICgpOworICAgQ09SRV9BRERSIGFkZHI7CisgICBDT1JF X0FERFIgcGM7CisgICBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lIGN1cnNhbCA9IGdldF9jdXJyZW50 X3NvdXJjZV9zeW10YWJfYW5kX2xpbmUgKCk7CistLS0gL2Rldi9udWxsCTIwMTAtMDUtMjQgMDQ6 NDM6MzIuNjMyNzk0MDIxICswMjAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L3R1aS1sYXlvdXQuZXhwCTIwMTAtMDUtMjQgMjA6MTM6MzAuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDIxIEBACisrIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysj IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc2V0IHRlc3RmaWxl IHR1aS1sYXlvdXQKKytpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAk e3Rlc3RmaWxlfSBzdGFydC5jXSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2dkYl90ZXN0 ICJsYXlvdXQgYXNtIgoKZGlmZiAtLWdpdCBhL2dkYi1iejYwMDc0Ni1rb2VuaWctY3Jhc2gucGF0 Y2ggYi9nZGItYno2MDA3NDYta29lbmlnLWNyYXNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjdiNmUyMDkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno2MDA3NDYt a29lbmlnLWNyYXNoLnBhdGNoCkBAIC0wLDAgKzEsNjYgQEAKK1twYXRjaF0gRml4IEFETCBhbm9u eW1vdXMgdHlwZSBjcmFzaAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIw MTAtMDYvbXNnMDAwMDQuaHRtbAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAx MC0wNi9tc2cwMDAxMi5odG1sCisKK1sgQmFja3BvcnRlZCB0aGUgdGVzdGNhc2UuICBdCisKKyMj IyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEwLzA2LzAyIDA2OjI0OjAwCTEuMTE4NjIKKyMjIyBzcmMv Z2RiL0NoYW5nZUxvZwkyMDEwLzA2LzAyIDE1OjMxOjI5CTEuMTE4NjMKKyMjIC0xLDMgKzEsOCBA QAorKzIwMTAtMDYtMDIgIFNhbWkgV2FnaWFhbGxhICA8c3dhZ2lhYWxAcmVkaGF0LmNvbT4KKysK KysJKiBjcC1zdXBwb3J0LmMgKG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3RfYWRsX25hbWVzcGFj ZSk6IEhhbmRsZQorKwlhbm9ueW1vdXMgdHlwZSBjYXNlLgorKworIDIwMTAtMDYtMDIgIFBpZXJy ZSBNdWxsZXIgIDxtdWxsZXJAaWNzLnUtc3RyYXNiZy5mcj4KKyAKKyAJKiBkd2FyZjJyZWFkLmMg KHJlYWRfc3VicmFuZ2VfdHlwZSk6IEhhbmRsZSBtaXNzaW5nIGJhc2UgdHlwZQorIyMjIHNyYy9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDEwLzA2LzAxIDIxOjI5OjIxCTEuMjI5OAorIyMjIHNy Yy9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDEwLzA2LzAyIDE1OjMxOjMwCTEuMjI5OQorIyMg LTEsMyArMSw4IEBACisrMjAxMC0wNi0wMiAgU2FtaSBXYWdpYWFsbGEgIDxzd2FnaWFhbEByZWRo YXQuY29tPgorKworKwkqIGdkYi5jcC9uYW1lc3BhY2Uta29lbmlnLmV4cDogQWRkZWQgbmV3IHRl c3QgY2FzZS4KKysJKiBnZGIuY3AvbmFtZXNwYWNlLWtvZW5pZy5jYzogRGl0dG8uCisrCisgMjAx MC0wNi0wMSAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHZtd2FyZS5jb20+CisgCisgCSogZ2Ri LmJhc2UvYXJpdGhtZXQuZXhwOiBVc2UgZ2RiX3Rlc3Rfbm9fb3V0cHV0LgorLS0tIHNyYy9nZGIv Y3Atc3VwcG9ydC5jCTIwMTAvMDUvMTMgMjM6NTM6MzIJMS40MAorKysrIHNyYy9nZGIvY3Atc3Vw cG9ydC5jCTIwMTAvMDYvMDIgMTU6MzE6MzAJMS40MQorQEAgLTc1Miw2ICs3NTIsOSBAQAorIAor ICAgdHlwZV9uYW1lID0gVFlQRV9OQU1FICh0eXBlKTsKKyAKKysgIGlmICh0eXBlX25hbWUgPT0g TlVMTCkKKysgICAgcmV0dXJuOworKworICAgcHJlZml4X2xlbiA9IGNwX2VudGlyZV9wcmVmaXhf bGVuICh0eXBlX25hbWUpOworIAorICAgaWYgKHByZWZpeF9sZW4gIT0gMCkKKy0tLSBnZGItNy4x L2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1rb2VuaWcuY2Mub3JpZwkyMDEwLTA2LTA5 IDA4OjIwOjE0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Y3AvbmFtZXNwYWNlLWtvZW5pZy5jYwkyMDEwLTA2LTA5IDExOjA5OjI5LjAwMDAwMDAwMCArMDIw MAorQEAgLTE2NSw2ICsxNjUsMTMgQEAgbmFtZXNwYWNlIE0geworIAorIH0KKyAvLy0tLS0tLS0t LS0tLQorK3N0YXRpYyB1bmlvbiB7CisrICAgIGludCAgYTsKKysgICAgY2hhciBiOworK31wX3Vu aW9uOworKworKy8vLS0tLS0tLS0tLS0tCisrCisgaW50CisgbWFpbiAoKQorIHsKKy0tLSBnZGIt Ny4xL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1rb2VuaWcuZXhwLm9yaWcJMjAxMC0w Ni0wOSAwODoyMDoxNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL25hbWVzcGFjZS1rb2VuaWcuZXhwCTIwMTAtMDYtMDkgMTE6MDk6NDguMDAwMDAwMDAw ICswMjAwCitAQCAtMTEwLDMgKzExMSw3IEBAIGdkYl90ZXN0ICJwIG8gKyA1LjBmIiAiPSAyMiIK KyBnZGJfdGVzdCAicCBvICsgNSIgIj0gMjMiCisgCisgZ2RiX3Rlc3QgInAgbysrIiAiPSAyNCIK KysKKysjdGVzdCB0aGF0IGxvb2t1cCBpcyBub3QgdGh3YXJ0ZWQgYnkgYW5vbnltb3VzIHR5cGVz CisrZ2RiX3Rlc3QgInAgZm9vIChwX3VuaW9uKSIgXAorKyAgIkNhbm5vdCByZXNvbHZlIGZ1bmN0 aW9uIGZvbyB0byBhbnkgb3ZlcmxvYWRlZCBpbnN0YW5jZSIKCmRpZmYgLS1naXQgYS9nZGItYno2 MDE4ODctZHdhcmY0LTFvZjIucGF0Y2ggYi9nZGItYno2MDE4ODctZHdhcmY0LTFvZjIucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI3MDhkZgotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1iejYwMTg4Ny1kd2FyZjQtMW9mMi5wYXRjaApAQCAtMCwwICsxLDMyOSBAQAor Y29tbWl0IGJlMWY1N2M5MGJkZjg2NDc3YjliYzY5Y2M5ODIxNzFkNmFkNWRmNTYKK0F1dGhvcjog VG9tIFRyb21leSA8dHJvbWV5QHJlZGhhdC5jb20+CitEYXRlOiAgIFR1ZSBBcHIgMjAgMTc6MzM6 MTMgMjAxMCArMDAwMAorCisgICAgCSogZHdhcmYyLWZyYW1lLmMgKGRlY29kZV9mcmFtZV9lbnRy eV8xKTogSGFuZGxlIENJRSB2ZXJzaW9uIDQuCisgICAgCShzdHJ1Y3QgZHdhcmYyX2NpZSkgPHNl Z21lbnRfc2l6ZT46IE5ldyBmaWVsZC4KKyAgICAJKiBkd2FyZjJyZWFkLmMgKHBhcnRpYWxfcmVh ZF9jb21wX3VuaXRfaGVhZCk6IEFjY2VwdCBEV0FSRiA0LgorICAgIAkoc2tpcF9vbmVfZGllKTog SGFuZGxlIERXX0ZPUk1fZmxhZ19wcmVzZW50LCBEV19GT1JNX3NlY19vZmZzZXQsCisgICAgCURX X0ZPUk1fZXhwcmxvYy4KKyAgICAJKHJlYWRfYXR0cmlidXRlX3ZhbHVlKTogSGFuZGxlIERXX0ZP Uk1fZmxhZ19wcmVzZW50LAorICAgIAlEV19GT1JNX3NlY19vZmZzZXQsIERXX0ZPUk1fZXhwcmxv Yy4KKyAgICAJKGR1bXBfZGllX3NoYWxsb3cpOiBMaWtld2lzZS4KKyAgICAJKGF0dHJfZm9ybV9p c19zZWN0aW9uX29mZnNldCk6IEhhbmRsZSBEV19GT1JNX3NlY19vZmZzZXQuCisgICAgCShkd2Fy ZjJfY29uc3RfdmFsdWUpOiBIYW5kbGUgRFdfRk9STV9leHBybG9jLgorICAgIAkoYXR0cl9mb3Jt X2lzX2Jsb2NrKTogTGlrZXdpc2UuCisgICAgCShzdHJ1Y3QgbGluZV9oZWFkZXIpIDxtYXhpbXVt X29wc19wZXJfaW5zdHJ1Y3Rpb24+OiBOZXcgZmllbGQuCisgICAgCShkd2FyZl9kZWNvZGVfbGlu ZV9oZWFkZXIpOiBTZXQgbmV3IGZpZWxkLgorICAgIAkoZHdhcmZfZGVjb2RlX2xpbmVzKTogSGFu ZGxlIG5ldyBmaWVsZC4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxv ZworIyMgLTEsMyArMSwyMCBAQAorKzIwMTAtMDQtMjAgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVk aGF0LmNvbT4KKysKKysJKiBkd2FyZjItZnJhbWUuYyAoZGVjb2RlX2ZyYW1lX2VudHJ5XzEpOiBI YW5kbGUgQ0lFIHZlcnNpb24gNC4KKysJKHN0cnVjdCBkd2FyZjJfY2llKSA8c2VnbWVudF9zaXpl PjogTmV3IGZpZWxkLgorKwkqIGR3YXJmMnJlYWQuYyAocGFydGlhbF9yZWFkX2NvbXBfdW5pdF9o ZWFkKTogQWNjZXB0IERXQVJGIDQuCisrCShza2lwX29uZV9kaWUpOiBIYW5kbGUgRFdfRk9STV9m bGFnX3ByZXNlbnQsIERXX0ZPUk1fc2VjX29mZnNldCwKKysJRFdfRk9STV9leHBybG9jLgorKwko cmVhZF9hdHRyaWJ1dGVfdmFsdWUpOiBIYW5kbGUgRFdfRk9STV9mbGFnX3ByZXNlbnQsCisrCURX X0ZPUk1fc2VjX29mZnNldCwgRFdfRk9STV9leHBybG9jLgorKwkoZHVtcF9kaWVfc2hhbGxvdyk6 IExpa2V3aXNlLgorKwkoYXR0cl9mb3JtX2lzX3NlY3Rpb25fb2Zmc2V0KTogSGFuZGxlIERXX0ZP Uk1fc2VjX29mZnNldC4KKysJKGR3YXJmMl9jb25zdF92YWx1ZSk6IEhhbmRsZSBEV19GT1JNX2V4 cHJsb2MuCisrCShhdHRyX2Zvcm1faXNfYmxvY2spOiBMaWtld2lzZS4KKysJKHN0cnVjdCBsaW5l X2hlYWRlcikgPG1heGltdW1fb3BzX3Blcl9pbnN0cnVjdGlvbj46IE5ldyBmaWVsZC4KKysJKGR3 YXJmX2RlY29kZV9saW5lX2hlYWRlcik6IFNldCBuZXcgZmllbGQuCisrCShkd2FyZl9kZWNvZGVf bGluZXMpOiBIYW5kbGUgbmV3IGZpZWxkLgorKworIDIwMTAtMDQtMjAgIEphbiBLcmF0b2Nodmls ICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKyAKKyAJKiBmLWV4cC55OiBBZGQgbmV3IHBy b2R1Y3Rpb24gdG8gcmVjb2duaXplIHRoZSBgbG9naWNhbCo4JyB0eXBlLgorLS0tIGEvZ2RiL2R3 YXJmMi1mcmFtZS5jCisrKysgYi9nZGIvZHdhcmYyLWZyYW1lLmMKK0BAIC04NSw2ICs4NSw5IEBA IHN0cnVjdCBkd2FyZjJfY2llCisgCisgICAvKiBUaGUgdmVyc2lvbiByZWNvcmRlZCBpbiB0aGUg Q0lFLiAgKi8KKyAgIHVuc2lnbmVkIGNoYXIgdmVyc2lvbjsKKysKKysgIC8qIFRoZSBzZWdtZW50 IHNpemUuICAqLworKyAgdW5zaWduZWQgY2hhciBzZWdtZW50X3NpemU7CisgfTsKKyAKKyBzdHJ1 Y3QgZHdhcmYyX2NpZV90YWJsZQorQEAgLTE3MTQsNyArMTcxNyw3IEBAIGRlY29kZV9mcmFtZV9l bnRyeV8xIChzdHJ1Y3QgY29tcF91bml0ICp1bml0LCBnZGJfYnl0ZSAqc3RhcnQsIGludCBlaF9m cmFtZV9wLAorIAorICAgICAgIC8qIENoZWNrIHZlcnNpb24gbnVtYmVyLiAgKi8KKyAgICAgICBj aWVfdmVyc2lvbiA9IHJlYWRfMV9ieXRlICh1bml0LT5hYmZkLCBidWYpOworLSAgICAgIGlmIChj aWVfdmVyc2lvbiAhPSAxICYmIGNpZV92ZXJzaW9uICE9IDMpCisrICAgICAgaWYgKGNpZV92ZXJz aW9uICE9IDEgJiYgY2llX3ZlcnNpb24gIT0gMyAmJiBjaWVfdmVyc2lvbiAhPSA0KQorIAlyZXR1 cm4gTlVMTDsKKyAgICAgICBjaWUtPnZlcnNpb24gPSBjaWVfdmVyc2lvbjsKKyAgICAgICBidWYg Kz0gMTsKK0BAIC0xNzM4LDYgKzE3NDEsMjAgQEAgZGVjb2RlX2ZyYW1lX2VudHJ5XzEgKHN0cnVj dCBjb21wX3VuaXQgKnVuaXQsIGdkYl9ieXRlICpzdGFydCwgaW50IGVoX2ZyYW1lX3AsCisgCSAg YXVnbWVudGF0aW9uICs9IDI7CisgCX0KKyAKKysgICAgICBpZiAoY2llLT52ZXJzaW9uID49IDQp CisrCXsKKysJICAvKiBGSVhNRTogY2hlY2sgdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGFzIGZyb20g dGhlIENVIGhlYWRlci4gICovCisrCSAgY2llLT5hZGRyX3NpemUgPSByZWFkXzFfYnl0ZSAodW5p dC0+YWJmZCwgYnVmKTsKKysJICArK2J1ZjsKKysJICBjaWUtPnNlZ21lbnRfc2l6ZSA9IHJlYWRf MV9ieXRlICh1bml0LT5hYmZkLCBidWYpOworKwkgICsrYnVmOworKwl9CisrICAgICAgZWxzZQor Kwl7CisrCSAgY2llLT5hZGRyX3NpemUgPSBnZGJhcmNoX3B0cl9iaXQgKGdkYmFyY2gpIC8gVEFS R0VUX0NIQVJfQklUOworKwkgIGNpZS0+c2VnbWVudF9zaXplID0gMDsKKysJfQorKworICAgICAg IGNpZS0+Y29kZV9hbGlnbm1lbnRfZmFjdG9yID0KKyAJcmVhZF91bnNpZ25lZF9sZWIxMjggKHVu aXQtPmFiZmQsIGJ1ZiwgJmJ5dGVzX3JlYWQpOworICAgICAgIGJ1ZiArPSBieXRlc19yZWFkOwor LS0tIGEvZ2RiL2R3YXJmMnJlYWQuYworKysrIGIvZ2RiL2R3YXJmMnJlYWQuYworQEAgLTM5Niw2 ICszOTYsNyBAQCBzdHJ1Y3QgbGluZV9oZWFkZXIKKyAgIHVuc2lnbmVkIHNob3J0IHZlcnNpb247 CisgICB1bnNpZ25lZCBpbnQgaGVhZGVyX2xlbmd0aDsKKyAgIHVuc2lnbmVkIGNoYXIgbWluaW11 bV9pbnN0cnVjdGlvbl9sZW5ndGg7CisrICB1bnNpZ25lZCBjaGFyIG1heGltdW1fb3BzX3Blcl9p bnN0cnVjdGlvbjsKKyAgIHVuc2lnbmVkIGNoYXIgZGVmYXVsdF9pc19zdG10OworICAgaW50IGxp bmVfYmFzZTsKKyAgIHVuc2lnbmVkIGNoYXIgbGluZV9yYW5nZTsKK0BAIC0xNDg4LDEwICsxNDg5 LDEwIEBAIHBhcnRpYWxfcmVhZF9jb21wX3VuaXRfaGVhZCAoc3RydWN0IGNvbXBfdW5pdF9oZWFk ICpoZWFkZXIsIGdkYl9ieXRlICppbmZvX3B0ciwKKyAKKyAgIGluZm9fcHRyID0gcmVhZF9jb21w X3VuaXRfaGVhZCAoaGVhZGVyLCBpbmZvX3B0ciwgYWJmZCk7CisgCistICBpZiAoaGVhZGVyLT52 ZXJzaW9uICE9IDIgJiYgaGVhZGVyLT52ZXJzaW9uICE9IDMpCisrICBpZiAoaGVhZGVyLT52ZXJz aW9uICE9IDIgJiYgaGVhZGVyLT52ZXJzaW9uICE9IDMgJiYgaGVhZGVyLT52ZXJzaW9uICE9IDQp CisgICAgIGVycm9yIChfKCJEd2FyZiBFcnJvcjogd3JvbmcgdmVyc2lvbiBpbiBjb21waWxhdGlv biB1bml0IGhlYWRlciAiCistCSAgICIoaXMgJWQsIHNob3VsZCBiZSAlZCkgW2luIG1vZHVsZSAl c10iKSwgaGVhZGVyLT52ZXJzaW9uLAorLQkgICAyLCBiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkKSk7 CisrCSAgICIoaXMgJWQsIHNob3VsZCBiZSAyLCAzLCBvciA0KSBbaW4gbW9kdWxlICVzXSIpLCBo ZWFkZXItPnZlcnNpb24sCisrCSAgIGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpKTsKKyAKKyAgIGlm IChoZWFkZXItPmFiYnJldl9vZmZzZXQgPj0gZHdhcmYyX3Blcl9vYmpmaWxlLT5hYmJyZXYuc2l6 ZSkKKyAgICAgZXJyb3IgKF8oIkR3YXJmIEVycm9yOiBiYWQgb2Zmc2V0ICgweCVseCkgaW4gY29t cGlsYXRpb24gdW5pdCBoZWFkZXIgIgorQEAgLTI3NzYsNiArMjc3Nyw4IEBAIHNraXBfb25lX2Rp ZSAoZ2RiX2J5dGUgKmJ1ZmZlciwgZ2RiX2J5dGUgKmluZm9fcHRyLAorIAljYXNlIERXX0ZPUk1f ZmxhZzoKKyAJICBpbmZvX3B0ciArPSAxOworIAkgIGJyZWFrOworKwljYXNlIERXX0ZPUk1fZmxh Z19wcmVzZW50OgorKwkgIGJyZWFrOworIAljYXNlIERXX0ZPUk1fZGF0YTI6CisgCWNhc2UgRFdf Rk9STV9yZWYyOgorIAkgIGluZm9fcHRyICs9IDI7CitAQCAtMjc5Myw5ICsyNzk2LDExIEBAIHNr aXBfb25lX2RpZSAoZ2RiX2J5dGUgKmJ1ZmZlciwgZ2RiX2J5dGUgKmluZm9fcHRyLAorIAkgIHJl YWRfc3RyaW5nIChhYmZkLCBpbmZvX3B0ciwgJmJ5dGVzX3JlYWQpOworIAkgIGluZm9fcHRyICs9 IGJ5dGVzX3JlYWQ7CisgCSAgYnJlYWs7CisrCWNhc2UgRFdfRk9STV9zZWNfb2Zmc2V0OgorIAlj YXNlIERXX0ZPUk1fc3RycDoKKyAJICBpbmZvX3B0ciArPSBjdS0+aGVhZGVyLm9mZnNldF9zaXpl OworIAkgIGJyZWFrOworKwljYXNlIERXX0ZPUk1fZXhwcmxvYzoKKyAJY2FzZSBEV19GT1JNX2Js b2NrOgorIAkgIGluZm9fcHRyICs9IHJlYWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBpbmZvX3B0 ciwgJmJ5dGVzX3JlYWQpOworIAkgIGluZm9fcHRyICs9IGJ5dGVzX3JlYWQ7CitAQCAtNzEyOSw2 ICs3MTM0LDEwIEBAIHJlYWRfYXR0cmlidXRlX3ZhbHVlIChzdHJ1Y3QgYXR0cmlidXRlICphdHRy LCB1bnNpZ25lZCBmb3JtLAorICAgICAgIERXX1VOU05EIChhdHRyKSA9IHJlYWRfOF9ieXRlcyAo YWJmZCwgaW5mb19wdHIpOworICAgICAgIGluZm9fcHRyICs9IDg7CisgICAgICAgYnJlYWs7Cisr ICAgIGNhc2UgRFdfRk9STV9zZWNfb2Zmc2V0OgorKyAgICAgIERXX1VOU05EIChhdHRyKSA9IHJl YWRfb2Zmc2V0IChhYmZkLCBpbmZvX3B0ciwgJmN1LT5oZWFkZXIsICZieXRlc19yZWFkKTsKKysg ICAgICBpbmZvX3B0ciArPSBieXRlc19yZWFkOworKyAgICAgIGJyZWFrOworICAgICBjYXNlIERX X0ZPUk1fc3RyaW5nOgorICAgICAgIERXX1NUUklORyAoYXR0cikgPSByZWFkX3N0cmluZyAoYWJm ZCwgaW5mb19wdHIsICZieXRlc19yZWFkKTsKKyAgICAgICBEV19TVFJJTkdfSVNfQ0FOT05JQ0FM IChhdHRyKSA9IDA7CitAQCAtNzE0MCw2ICs3MTQ5LDcgQEAgcmVhZF9hdHRyaWJ1dGVfdmFsdWUg KHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHVuc2lnbmVkIGZvcm0sCisgICAgICAgRFdfU1RSSU5H X0lTX0NBTk9OSUNBTCAoYXR0cikgPSAwOworICAgICAgIGluZm9fcHRyICs9IGJ5dGVzX3JlYWQ7 CisgICAgICAgYnJlYWs7CisrICAgIGNhc2UgRFdfRk9STV9leHBybG9jOgorICAgICBjYXNlIERX X0ZPUk1fYmxvY2s6CisgICAgICAgYmxrID0gZHdhcmZfYWxsb2NfYmxvY2sgKGN1KTsKKyAgICAg ICBibGstPnNpemUgPSByZWFkX3Vuc2lnbmVkX2xlYjEyOCAoYWJmZCwgaW5mb19wdHIsICZieXRl c19yZWFkKTsKK0BAIC03MTY0LDYgKzcxNzQsOSBAQCByZWFkX2F0dHJpYnV0ZV92YWx1ZSAoc3Ry dWN0IGF0dHJpYnV0ZSAqYXR0ciwgdW5zaWduZWQgZm9ybSwKKyAgICAgICBEV19VTlNORCAoYXR0 cikgPSByZWFkXzFfYnl0ZSAoYWJmZCwgaW5mb19wdHIpOworICAgICAgIGluZm9fcHRyICs9IDE7 CisgICAgICAgYnJlYWs7CisrICAgIGNhc2UgRFdfRk9STV9mbGFnX3ByZXNlbnQ6CisrICAgICAg RFdfVU5TTkQgKGF0dHIpID0gMTsKKysgICAgICBicmVhazsKKyAgICAgY2FzZSBEV19GT1JNX3Nk YXRhOgorICAgICAgIERXX1NORCAoYXR0cikgPSByZWFkX3NpZ25lZF9sZWIxMjggKGFiZmQsIGlu Zm9fcHRyLCAmYnl0ZXNfcmVhZCk7CisgICAgICAgaW5mb19wdHIgKz0gYnl0ZXNfcmVhZDsKK0BA IC03NjgwLDcgKzc2OTMsNyBAQCBkd2FyZjJfYXR0cl9ub19mb2xsb3cgKHN0cnVjdCBkaWVfaW5m byAqZGllLCB1bnNpZ25lZCBpbnQgbmFtZSwKKyAKKyAvKiBSZXR1cm4gbm9uLXplcm8gaWZmIHRo ZSBhdHRyaWJ1dGUgTkFNRSBpcyBkZWZpbmVkIGZvciB0aGUgZ2l2ZW4gRElFLAorICAgIGFuZCBo b2xkcyBhIG5vbi16ZXJvIHZhbHVlLiAgVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSB1c2Vk IGZvcgorLSAgIERXX0ZPUk1fZmxhZyBhdHRyaWJ1dGVzLiAgKi8KKysgICBEV19GT1JNX2ZsYWcg b3IgRFdfRk9STV9mbGFnX3ByZXNlbnQgYXR0cmlidXRlcy4gICovCisgCisgc3RhdGljIGludAor IGR3YXJmMl9mbGFnX3RydWVfcCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHVuc2lnbmVkIG5hbWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTc4NjIsNiArNzg3NSwyMSBAQCBkd2FyZl9kZWNv ZGVfbGluZV9oZWFkZXIgKHVuc2lnbmVkIGludCBvZmZzZXQsIGJmZCAqYWJmZCwKKyAgIGxpbmVf cHRyICs9IG9mZnNldF9zaXplOworICAgbGgtPm1pbmltdW1faW5zdHJ1Y3Rpb25fbGVuZ3RoID0g cmVhZF8xX2J5dGUgKGFiZmQsIGxpbmVfcHRyKTsKKyAgIGxpbmVfcHRyICs9IDE7CisrICBpZiAo bGgtPnZlcnNpb24gPj0gNCkKKysgICAgeworKyAgICAgIGxoLT5tYXhpbXVtX29wc19wZXJfaW5z dHJ1Y3Rpb24gPSByZWFkXzFfYnl0ZSAoYWJmZCwgbGluZV9wdHIpOworKyAgICAgIGxpbmVfcHRy ICs9IDE7CisrICAgIH0KKysgIGVsc2UKKysgICAgbGgtPm1heGltdW1fb3BzX3Blcl9pbnN0cnVj dGlvbiA9IDE7CisrCisrICBpZiAobGgtPm1heGltdW1fb3BzX3Blcl9pbnN0cnVjdGlvbiA9PSAw KQorKyAgICB7CisrICAgICAgbGgtPm1heGltdW1fb3BzX3Blcl9pbnN0cnVjdGlvbiA9IDE7Cisr ICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJIF8oImludmFsaWQgbWF4 aW11bV9vcHNfcGVyX2luc3RydWN0aW9uIGluIGAuZGVidWdfbGluZScgc2VjdGlvbiIpKTsKKysg ICAgfQorKworICAgbGgtPmRlZmF1bHRfaXNfc3RtdCA9IHJlYWRfMV9ieXRlIChhYmZkLCBsaW5l X3B0cik7CisgICBsaW5lX3B0ciArPSAxOworICAgbGgtPmxpbmVfYmFzZSA9IHJlYWRfMV9zaWdu ZWRfYnl0ZSAoYWJmZCwgbGluZV9wdHIpOworQEAgLTgwMTAsNiArODAzOCw3IEBAIGR3YXJmX2Rl Y29kZV9saW5lcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgY2hhciAqY29tcF9kaXIsIGJmZCAq YWJmZCwKKyAgICAgICBpbnQgYmFzaWNfYmxvY2sgPSAwOworICAgICAgIGludCBlbmRfc2VxdWVu Y2UgPSAwOworICAgICAgIENPUkVfQUREUiBhZGRyOworKyAgICAgIHVuc2lnbmVkIGNoYXIgb3Bf aW5kZXggPSAwOworIAorICAgICAgIGlmICghZGVjb2RlX2Zvcl9wc3RfcCAmJiBsaC0+bnVtX2Zp bGVfbmFtZXMgPj0gZmlsZSkKKyAJeworQEAgLTgwNDEsMTIgKzgwNzAsMTcgQEAgZHdhcmZfZGVj b2RlX2xpbmVzIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCBjaGFyICpjb21wX2RpciwgYmZkICph YmZkLAorIAkgICAgewkJCisgCSAgICAgIC8qIFNwZWNpYWwgb3BlcmFuZC4gICovCisgCSAgICAg IGFkal9vcGNvZGUgPSBvcF9jb2RlIC0gbGgtPm9wY29kZV9iYXNlOworLQkgICAgICBhZGRyZXNz ICs9IChhZGpfb3Bjb2RlIC8gbGgtPmxpbmVfcmFuZ2UpCistCQkqIGxoLT5taW5pbXVtX2luc3Ry dWN0aW9uX2xlbmd0aDsKKysJICAgICAgYWRkcmVzcyArPSAoKChvcF9pbmRleCArIChhZGpfb3Bj b2RlIC8gbGgtPmxpbmVfcmFuZ2UpKQorKwkJCSAgIC8gbGgtPm1heGltdW1fb3BzX3Blcl9pbnN0 cnVjdGlvbikKKysJCQkgICogbGgtPm1pbmltdW1faW5zdHJ1Y3Rpb25fbGVuZ3RoKTsKKysJICAg ICAgb3BfaW5kZXggPSAoKG9wX2luZGV4ICsgKGFkal9vcGNvZGUgLyBsaC0+bGluZV9yYW5nZSkp CisrCQkJICAlIGxoLT5tYXhpbXVtX29wc19wZXJfaW5zdHJ1Y3Rpb24pOworIAkgICAgICBsaW5l ICs9IGxoLT5saW5lX2Jhc2UgKyAoYWRqX29wY29kZSAlIGxoLT5saW5lX3JhbmdlKTsKKyAJICAg ICAgaWYgKGxoLT5udW1fZmlsZV9uYW1lcyA8IGZpbGUgfHwgZmlsZSA9PSAwKQorIAkJZHdhcmYy X2RlYnVnX2xpbmVfbWlzc2luZ19maWxlX2NvbXBsYWludCAoKTsKKy0JICAgICAgZWxzZQorKwkg ICAgICAvKiBGb3Igbm93IHdlIGlnbm9yZSBsaW5lcyBub3Qgc3RhcnRpbmcgb24gYW4KKysJCSBp bnN0cnVjdGlvbiBib3VuZGFyeS4gICovCisrCSAgICAgIGVsc2UgaWYgKG9wX2luZGV4ID09IDAp CisgCQl7CisgCQkgIGxoLT5maWxlX25hbWVzW2ZpbGUgLSAxXS5pbmNsdWRlZF9wID0gMTsKKyAJ CSAgaWYgKCFkZWNvZGVfZm9yX3BzdF9wICYmIGlzX3N0bXQpCitAQCAtODA4MSw2ICs4MTE1LDcg QEAgZHdhcmZfZGVjb2RlX2xpbmVzIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCBjaGFyICpjb21w X2RpciwgYmZkICphYmZkLAorIAkJICBicmVhazsKKyAJCWNhc2UgRFdfTE5FX3NldF9hZGRyZXNz OgorIAkJICBhZGRyZXNzID0gcmVhZF9hZGRyZXNzIChhYmZkLCBsaW5lX3B0ciwgY3UsICZieXRl c19yZWFkKTsKKysJCSAgb3BfaW5kZXggPSAwOworIAkJICBsaW5lX3B0ciArPSBieXRlc19yZWFk OworIAkJICBhZGRyZXNzICs9IGJhc2VhZGRyOworIAkJICBicmVhazsKK0BAIC04MTQ2LDkgKzgx ODEsMTcgQEAgZHdhcmZfZGVjb2RlX2xpbmVzIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCBjaGFy ICpjb21wX2RpciwgYmZkICphYmZkLAorIAkgICAgICBiYXNpY19ibG9jayA9IDA7CisgCSAgICAg IGJyZWFrOworIAkgICAgY2FzZSBEV19MTlNfYWR2YW5jZV9wYzoKKy0JICAgICAgYWRkcmVzcyAr PSBsaC0+bWluaW11bV9pbnN0cnVjdGlvbl9sZW5ndGgKKy0JCSogcmVhZF91bnNpZ25lZF9sZWIx MjggKGFiZmQsIGxpbmVfcHRyLCAmYnl0ZXNfcmVhZCk7CistCSAgICAgIGxpbmVfcHRyICs9IGJ5 dGVzX3JlYWQ7CisrCSAgICAgIHsKKysJCUNPUkVfQUREUiBhZGp1c3QKKysJCSAgPSByZWFkX3Vu c2lnbmVkX2xlYjEyOCAoYWJmZCwgbGluZV9wdHIsICZieXRlc19yZWFkKTsKKysKKysJCWFkZHJl c3MgKz0gKCgob3BfaW5kZXggKyBhZGp1c3QpCisrCQkJICAgICAvIGxoLT5tYXhpbXVtX29wc19w ZXJfaW5zdHJ1Y3Rpb24pCisrCQkJICAgICogbGgtPm1pbmltdW1faW5zdHJ1Y3Rpb25fbGVuZ3Ro KTsKKysJCW9wX2luZGV4ID0gKChvcF9pbmRleCArIGFkanVzdCkKKysJCQkgICAgJSBsaC0+bWF4 aW11bV9vcHNfcGVyX2luc3RydWN0aW9uKTsKKysJCWxpbmVfcHRyICs9IGJ5dGVzX3JlYWQ7Cisr CSAgICAgIH0KKyAJICAgICAgYnJlYWs7CisgCSAgICBjYXNlIERXX0xOU19hZHZhbmNlX2xpbmU6 CisgCSAgICAgIGxpbmUgKz0gcmVhZF9zaWduZWRfbGViMTI4IChhYmZkLCBsaW5lX3B0ciwgJmJ5 dGVzX3JlYWQpOworQEAgLTgxOTUsMTEgKzgyMzgsMTkgQEAgZHdhcmZfZGVjb2RlX2xpbmVzIChz dHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCBjaGFyICpjb21wX2RpciwgYmZkICphYmZkLAorIAkgICAg ICAgaW5zdHJ1Y3Rpb24gbGVuZ3RoIHNpbmNlIHNwZWNpYWwgb3Bjb2RlIDI1NSB3b3VsZCBoYXZl CisgCSAgICAgICBzY2FsZWQgdGhlIHRoZSBpbmNyZW1lbnQuICAqLworIAkgICAgY2FzZSBEV19M TlNfY29uc3RfYWRkX3BjOgorLQkgICAgICBhZGRyZXNzICs9IChsaC0+bWluaW11bV9pbnN0cnVj dGlvbl9sZW5ndGgKKy0JCQkgICogKCgyNTUgLSBsaC0+b3Bjb2RlX2Jhc2UpIC8gbGgtPmxpbmVf cmFuZ2UpKTsKKysJICAgICAgeworKwkJQ09SRV9BRERSIGFkanVzdCA9ICgyNTUgLSBsaC0+b3Bj b2RlX2Jhc2UpIC8gbGgtPmxpbmVfcmFuZ2U7CisrCisrCQlhZGRyZXNzICs9ICgoKG9wX2luZGV4 ICsgYWRqdXN0KQorKwkJCSAgICAgLyBsaC0+bWF4aW11bV9vcHNfcGVyX2luc3RydWN0aW9uKQor KwkJCSAgICAqIGxoLT5taW5pbXVtX2luc3RydWN0aW9uX2xlbmd0aCk7CisrCQlvcF9pbmRleCA9 ICgob3BfaW5kZXggKyBhZGp1c3QpCisrCQkJICAgICUgbGgtPm1heGltdW1fb3BzX3Blcl9pbnN0 cnVjdGlvbik7CisrCSAgICAgIH0KKyAJICAgICAgYnJlYWs7CisgCSAgICBjYXNlIERXX0xOU19m aXhlZF9hZHZhbmNlX3BjOgorIAkgICAgICBhZGRyZXNzICs9IHJlYWRfMl9ieXRlcyAoYWJmZCwg bGluZV9wdHIpOworKwkgICAgICBvcF9pbmRleCA9IDA7CisgCSAgICAgIGxpbmVfcHRyICs9IDI7 CisgCSAgICAgIGJyZWFrOworIAkgICAgZGVmYXVsdDoKK0BAIC04NzYxLDYgKzg4MTIsNyBAQCBk d2FyZjJfY29uc3RfdmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wg KnN5bSwKKyAgICAgY2FzZSBEV19GT1JNX2Jsb2NrMjoKKyAgICAgY2FzZSBEV19GT1JNX2Jsb2Nr NDoKKyAgICAgY2FzZSBEV19GT1JNX2Jsb2NrOgorKyAgICBjYXNlIERXX0ZPUk1fZXhwcmxvYzoK KyAgICAgICBibGsgPSBEV19CTE9DSyAoYXR0cik7CisgICAgICAgaWYgKFRZUEVfTEVOR1RIIChT WU1CT0xfVFlQRSAoc3ltKSkgIT0gYmxrLT5zaXplKQorIAlkd2FyZjJfY29uc3RfdmFsdWVfbGVu Z3RoX21pc21hdGNoX2NvbXBsYWludCAoU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksCitAQCAtMTAz MDgsNiArMTAzNjAsMTAgQEAgZHVtcF9kaWVfc2hhbGxvdyAoc3RydWN0IHVpX2ZpbGUgKmYsIGlu dCBpbmRlbnQsIHN0cnVjdCBkaWVfaW5mbyAqZGllKQorIAljYXNlIERXX0ZPUk1fYmxvY2sxOgor IAkgIGZwcmludGZfdW5maWx0ZXJlZCAoZiwgImJsb2NrOiBzaXplICVkIiwgRFdfQkxPQ0sgKCZk aWUtPmF0dHJzW2ldKS0+c2l6ZSk7CisgCSAgYnJlYWs7CisrCWNhc2UgRFdfRk9STV9leHBybG9j OgorKwkgIGZwcmludGZfdW5maWx0ZXJlZCAoZiwgImV4cHJlc3Npb246IHNpemUgJXUiLAorKwkJ CSAgICAgIERXX0JMT0NLICgmZGllLT5hdHRyc1tpXSktPnNpemUpOworKwkgIGJyZWFrOworIAlj YXNlIERXX0ZPUk1fcmVmMToKKyAJY2FzZSBEV19GT1JNX3JlZjI6CisgCWNhc2UgRFdfRk9STV9y ZWY0OgorQEAgLTEwMzIzLDYgKzEwMzc5LDEwIEBAIGR1bXBfZGllX3NoYWxsb3cgKHN0cnVjdCB1 aV9maWxlICpmLCBpbnQgaW5kZW50LCBzdHJ1Y3QgZGllX2luZm8gKmRpZSkKKyAJICBmcHJpbnRm X3VuZmlsdGVyZWQgKGYsICJjb25zdGFudDogJXMiLAorIAkJCSAgICAgIHB1bG9uZ2VzdCAoRFdf VU5TTkQgKCZkaWUtPmF0dHJzW2ldKSkpOworIAkgIGJyZWFrOworKwljYXNlIERXX0ZPUk1fc2Vj X29mZnNldDoKKysJICBmcHJpbnRmX3VuZmlsdGVyZWQgKGYsICJzZWN0aW9uIG9mZnNldDogJXMi LAorKwkJCSAgICAgIHB1bG9uZ2VzdCAoRFdfVU5TTkQgKCZkaWUtPmF0dHJzW2ldKSkpOworKwkg IGJyZWFrOworIAljYXNlIERXX0ZPUk1fc2lnODoKKyAJICBpZiAoRFdfU0lHTkFUVVJFRF9UWVBF ICgmZGllLT5hdHRyc1tpXSkgIT0gTlVMTCkKKyAJICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZiwg InNpZ25hdHVyZWQgdHlwZSwgb2Zmc2V0OiAweCV4IiwKK0BAIC0xMDM0Myw2ICsxMDQwMyw5IEBA IGR1bXBfZGllX3NoYWxsb3cgKHN0cnVjdCB1aV9maWxlICpmLCBpbnQgaW5kZW50LCBzdHJ1Y3Qg ZGllX2luZm8gKmRpZSkKKyAJICBlbHNlCisgCSAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGYsICJm bGFnOiBGQUxTRSIpOworIAkgIGJyZWFrOworKwljYXNlIERXX0ZPUk1fZmxhZ19wcmVzZW50Ogor KwkgIGZwcmludGZfdW5maWx0ZXJlZCAoZiwgImZsYWc6IFRSVUUiKTsKKysJICBicmVhazsKKyAJ Y2FzZSBEV19GT1JNX2luZGlyZWN0OgorIAkgIC8qIHRoZSByZWFkZXIgd2lsbCBoYXZlIHJlZHVj ZWQgdGhlIGluZGlyZWN0IGZvcm0gdG8KKyAJICAgICB0aGUgImJhc2UgZm9ybSIgc28gdGhpcyBm b3JtIHNob3VsZCBub3Qgb2NjdXIgKi8KK0BAIC0xMTUyMCw3ICsxMTU4Myw4IEBAIGF0dHJfZm9y bV9pc19ibG9jayAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKKyAgICAgICBhdHRyLT5mb3JtID09 IERXX0ZPUk1fYmxvY2sxCisgICAgICAgfHwgYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2Jsb2NrMgor ICAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9ibG9jazQKKy0gICAgICB8fCBhdHRyLT5m b3JtID09IERXX0ZPUk1fYmxvY2spOworKyAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9i bG9jaworKyAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9leHBybG9jKTsKKyB9CisgCisg LyogUmV0dXJuIG5vbi16ZXJvIGlmIEFUVFIncyB2YWx1ZSBpcyBhIHNlY3Rpb24gb2Zmc2V0IC0t LSBjbGFzc2VzCitAQCAtMTE1MzUsNyArMTE1OTksOCBAQCBzdGF0aWMgaW50CisgYXR0cl9mb3Jt X2lzX3NlY3Rpb25fb2Zmc2V0IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQorIHsKKyAgIHJldHVy biAoYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2RhdGE0CistICAgICAgICAgIHx8IGF0dHItPmZvcm0g PT0gRFdfRk9STV9kYXRhOCk7CisrICAgICAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9k YXRhOAorKwkgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9zZWNfb2Zmc2V0KTsKKyB9CisgCisg CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NjAxODg3LWR3YXJmNC0yb2YyLnBhdGNoIGIvZ2RiLWJ6NjAx ODg3LWR3YXJmNC0yb2YyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu Ljk3Zjg4YjAKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno2MDE4ODctZHdhcmY0LTJvZjIucGF0 Y2gKQEAgLTAsMCArMSw1NiBAQAorY29tbWl0IDY2OTkwN2JkNmQ1NGFlOGU4NWIxMjc4ZjBmMTZm ODY0MWNlNjgwMmQKK0F1dGhvcjogVG9tIFRyb21leSA8dHJvbWV5QHJlZGhhdC5jb20+CitEYXRl OiAgIFR1ZSBBcHIgMjAgMjE6MTk6MDcgMjAxMCArMDAwMAorCisgICAgCSogZHdhcmYycmVhZC5j IChkd2FyZjJfY29tcHV0ZV9uYW1lKTogSGFuZGxlIERXX0FUX2xpbmthZ2VfbmFtZS4KKyAgICAJ KHJlYWRfcGFydGlhbF9kaWUpOiBMaWtld2lzZS4KKyAgICAJKGR3YXJmX2F0dHJfbmFtZSk6IExp a2V3aXNlLgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAt MSwzICsxLDkgQEAKKysyMDEwLTA0LTIwICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+ CisrCisrCSogZHdhcmYycmVhZC5jIChkd2FyZjJfY29tcHV0ZV9uYW1lKTogSGFuZGxlIERXX0FU X2xpbmthZ2VfbmFtZS4KKysJKHJlYWRfcGFydGlhbF9kaWUpOiBMaWtld2lzZS4KKysJKGR3YXJm X2F0dHJfbmFtZSk6IExpa2V3aXNlLgorKworIDIwMTAtMDQtMjAgIENocmlzIE1vbGxlciAgPGNt b2xsZXJAcmVkaGF0LmNvbT4KKyAJCisgCVBSIDEwODY3CistLS0gZ2RiLTcuMS9nZGIvZHdhcmYy cmVhZC5jLm9yaWcJMjAxMC0wNi0wOSAxNDozODowMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGIt Ny4xL2dkYi9kd2FyZjJyZWFkLmMJMjAxMC0wNi0wOSAxNDo0OTo1My4wMDAwMDAwMDAgKzAyMDAK K0BAIC03Njc1LDcgKzc2NzUsMTEgQEAgcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxf ZGllX2luZgorIAkgICAgICBicmVhazsKKyAJICAgIH0KKyAJICBicmVhazsKKysJY2FzZSBEV19B VF9saW5rYWdlX25hbWU6CisgCWNhc2UgRFdfQVRfTUlQU19saW5rYWdlX25hbWU6CisrCSAgLyog Tm90ZSB0aGF0IGJvdGggZm9ybXMgb2YgbGlua2FnZSBuYW1lIG1pZ2h0IGFwcGVhci4gIFdlCisr CSAgICAgYXNzdW1lIHRoZXkgd2lsbCBiZSB0aGUgc2FtZSwgYW5kIHdlIG9ubHkgc3RvcmUgdGhl IGxhc3QKKysJICAgICBvbmUgd2Ugc2VlLiAgKi8KKyAJICBpZiAoY3UtPmxhbmd1YWdlID09IGxh bmd1YWdlX2FkYSkKKyAJICAgIHBhcnRfZGllLT5uYW1lID0gRFdfU1RSSU5HICgmYXR0cik7Cisg CSAgYnJlYWs7CitAQCAtMTAxNjcsNyArMTAxNzEsMTEgQEAgZHdhcmYyX25hbWUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1YworICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciA9IE5VTEw7Cisg CisgICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2FkYSkKKy0gICAgYXR0ciA9IGR3YXJm Ml9hdHRyIChkaWUsIERXX0FUX01JUFNfbGlua2FnZV9uYW1lLCBjdSk7CisrICAgIHsKKysgICAg ICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbGlua2FnZV9uYW1lLCBjdSk7CisrICAg ICAgaWYgKGF0dHIgPT0gTlVMTCkKKysJYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX01J UFNfbGlua2FnZV9uYW1lLCBjdSk7CisrICAgIH0KKyAKKyAgIGlmICghYXR0cikKKyAgICAgYXR0 ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX25hbWUsIGN1KTsKK0BAIC0xMDU1NSw2ICsxMDU2 Myw4IEBAIGR3YXJmX2F0dHJfbmFtZSAodW5zaWduZWQgYXR0cikKKyAgICAgLyogRFdBUkYgNCB2 YWx1ZXMuICAqLworICAgICBjYXNlIERXX0FUX3NpZ25hdHVyZToKKyAgICAgICByZXR1cm4gIkRX X0FUX3NpZ25hdHVyZSI7CisrICAgIGNhc2UgRFdfQVRfbGlua2FnZV9uYW1lOgorKyAgICAgIHJl dHVybiAiRFdfQVRfbGlua2FnZV9uYW1lIjsKKyAgICAgLyogU0dJL01JUFMgZXh0ZW5zaW9ucy4g ICovCisgI2lmZGVmIE1JUFMgLyogY29sbGlkZXMgd2l0aCBEV19BVF9IUF9ibG9ja19pbmRleCAq LworICAgICBjYXNlIERXX0FUX01JUFNfZmRlOgoKZGlmZiAtLWdpdCBhL2dkYi1iejYwMTg4Ny1k d2FyZjQtcmgtdGVzdC5wYXRjaCBiL2dkYi1iejYwMTg4Ny1kd2FyZjQtcmgtdGVzdC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Nzc0YmRhCi0tLSAvZGV2L251bGwK KysrIGIvZ2RiLWJ6NjAxODg3LWR3YXJmNC1yaC10ZXN0LnBhdGNoCkBAIC0wLDAgKzEsMjQwIEBA CistLS0gL2Rldi9udWxsCTIwMTAtMDYtMDggMjA6MzU6NDYuODAwMjc4NDUyICswMjAwCisrKysg Z2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5TCTIwMTAt MDYtMDkgMTU6MjI6NTcuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE2NyBAQAorKy8qIFRo aXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29w eXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKwkuZmlsZQkicmgtZHdhcmY0LXg4 Nl82NC5jIgorKwkuc2VjdGlvbgkuZGVidWdfYWJicmV2LCIiLEBwcm9nYml0cworKy5MZGVidWdf YWJicmV2MDoKKysJLnNlY3Rpb24JLmRlYnVnX2luZm8sIiIsQHByb2diaXRzCisrLkxkZWJ1Z19p bmZvMDoKKysJLnNlY3Rpb24JLmRlYnVnX2xpbmUsIiIsQHByb2diaXRzCisrLkxkZWJ1Z19saW5l MDoKKysJLnRleHQKKysuTHRleHQwOgorKy5nbG9ibCBtYWluCisrCS50eXBlCW1haW4sIEBmdW5j dGlvbgorK21haW46CisrLkxGQjA6CisrCS5maWxlIDEgImdkYi5kd2FyZjIvcmgtZHdhcmY0LXg4 Nl82NC5jIgorKwkjIGdkYi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5jOjIwCisrCS5sb2MgMSAy MCAwCisrCS5jZmlfc3RhcnRwcm9jCisrCSMgYmFzaWMgYmxvY2sgMgorKwlwdXNocQklcmJwCisr CS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKKysJbW92cQklcnNwLCAlcmJwCisrCS5jZmlfb2Zmc2V0 IDYsIC0xNgorKwkuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIgNgorKwkjIGdkYi5kd2FyZjIvcmgtZHdh cmY0LXg4Nl82NC5jOjIxCisrCS5sb2MgMSAyMSAwCisrCW1vdmwJJDAsICVlYXgKKysJIyBnZGIu ZHdhcmYyL3JoLWR3YXJmNC14ODZfNjQuYzoyMgorKwkubG9jIDEgMjIgMAorKwlsZWF2ZQorKwku Y2ZpX2RlZl9jZmEgNywgOAorKwlyZXQKKysJLmNmaV9lbmRwcm9jCisrLkxGRTA6CisrCS5zaXpl CW1haW4sIC4tbWFpbgorKy5MZXRleHQwOgorKwkuc2VjdGlvbgkuZGVidWdfaW5mbworKwkubG9u ZwkweDRlCSMgTGVuZ3RoIG9mIENvbXBpbGF0aW9uIFVuaXQgSW5mbworKwkudmFsdWUJMHg0CSMg RFdBUkYgdmVyc2lvbiBudW1iZXIKKysJLmxvbmcJLkxkZWJ1Z19hYmJyZXYwCSMgT2Zmc2V0IElu dG8gQWJicmV2LiBTZWN0aW9uCisrCS5ieXRlCTB4OAkjIFBvaW50ZXIgU2l6ZSAoaW4gYnl0ZXMp CisrCS51bGViMTI4IDB4MQkjIChESUUgKDB4YikgRFdfVEFHX2NvbXBpbGVfdW5pdCkKKysJLmxv bmcJLkxBU0YwCSMgRFdfQVRfcHJvZHVjZXI6ICJHTlUgQyA0LjQuNCAyMDEwMDUwMyAoUmVkIEhh dCA0LjQuNC0yKSIKKysJLmJ5dGUJMHgxCSMgRFdfQVRfbGFuZ3VhZ2UKKysJLmxvbmcJLkxBU0Yx CSMgRFdfQVRfbmFtZTogImdkYi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5jIgorKwkubG9uZwku TEFTRjIJIyBEV19BVF9jb21wX2RpcgorKwkucXVhZAkuTHRleHQwCSMgRFdfQVRfbG93X3BjCisr CS5xdWFkCS5MZXRleHQwCSMgRFdfQVRfaGlnaF9wYworKwkubG9uZwkuTGRlYnVnX2xpbmUwCSMg RFdfQVRfc3RtdF9saXN0CisrCS51bGViMTI4IDB4MgkjIChESUUgKDB4MmQpIERXX1RBR19zdWJw cm9ncmFtKQorKwkJCSMgRFdfQVRfZXh0ZXJuYWwKKysJLmxvbmcJLkxBU0YzCSMgRFdfQVRfbmFt ZTogIm1haW4iCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAoZ2RiLmR3YXJmMi9yaC1k d2FyZjQteDg2XzY0LmMpCisrCS5ieXRlCTB4MTMJIyBEV19BVF9kZWNsX2xpbmUKKysJCQkjIERX X0FUX3Byb3RvdHlwZWQKKysJLmxvbmcJMHg0YQkjIERXX0FUX3R5cGUKKysJLnF1YWQJLkxGQjAJ IyBEV19BVF9sb3dfcGMKKysJLnF1YWQJLkxGRTAJIyBEV19BVF9oaWdoX3BjCisrCS51bGViMTI4 IDB4MQkjIERXX0FUX2ZyYW1lX2Jhc2UKKysJLmJ5dGUJMHg5YwkjIERXX09QX2NhbGxfZnJhbWVf Y2ZhCisrCS51bGViMTI4IDB4MwkjIChESUUgKDB4NGEpIERXX1RBR19iYXNlX3R5cGUpCisrCS5i eXRlCTB4NAkjIERXX0FUX2J5dGVfc2l6ZQorKwkuYnl0ZQkweDUJIyBEV19BVF9lbmNvZGluZwor KwkuYXNjaWkgImludFwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgwCSMgZW5kIG9mIGNoaWxk cmVuIG9mIERJRSAweGIKKysJLnNlY3Rpb24JLmRlYnVnX2FiYnJldgorKwkudWxlYjEyOCAweDEJ IyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4MTEJIyAoVEFHOiBEV19UQUdfY29tcGlsZV91 bml0KQorKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKKysJLnVsZWIxMjggMHgyNQkjIChE V19BVF9wcm9kdWNlcikKKysJLnVsZWIxMjggMHhlCSMgKERXX0ZPUk1fc3RycCkKKysJLnVsZWIx MjggMHgxMwkjIChEV19BVF9sYW5ndWFnZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0 YTEpCisrCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEyOCAweGUJIyAoRFdf Rk9STV9zdHJwKQorKwkudWxlYjEyOCAweDFiCSMgKERXX0FUX2NvbXBfZGlyKQorKwkudWxlYjEy OCAweGUJIyAoRFdfRk9STV9zdHJwKQorKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykK KysJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKysJLnVsZWIxMjggMHgxMgkjIChEV19B VF9oaWdoX3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAw eDEwCSMgKERXX0FUX3N0bXRfbGlzdCkKKysJLnVsZWIxMjggMHgxNwkjIChEV19GT1JNX3NlY19v ZmZzZXQpCisrCS5ieXRlCTB4MAorKwkuYnl0ZQkweDAKKysJLnVsZWIxMjggMHgyCSMgKGFiYnJl diBjb2RlKQorKwkudWxlYjEyOCAweDJlCSMgKFRBRzogRFdfVEFHX3N1YnByb2dyYW0pCisrCS5i eXRlCTB4MAkjIERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4M2YJIyAoRFdfQVRfZXh0ZXJu YWwpCisrCS51bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCisrCS51bGViMTI4 IDB4MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQorKwku dWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZP Uk1fZGF0YTEpCisrCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQorKwkudWxlYjEy OCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgyNwkjIChEV19BVF9wcm90b3R5 cGVkKQorKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50KQorKwkudWxlYjEy OCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQor KwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKKysJLnVsZWIxMjggMHgxCSMgKERXX0ZP Uk1fYWRkcikKKysJLnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQorKwkudWxlYjEyOCAw eDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2Up CisrCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQorKwkuYnl0ZQkweDAKKysJLmJ5 dGUJMHgwCisrCS51bGViMTI4IDB4MwkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgyNAkj IChUQUc6IERXX1RBR19iYXNlX3R5cGUpCisrCS5ieXRlCTB4MAkjIERXX2NoaWxkcmVuX25vCisr CS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCisrCS51bGViMTI4IDB4YgkjIChEV19G T1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNlCSMgKERXX0FUX2VuY29kaW5nKQorKwkudWxlYjEy OCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisr CS51bGViMTI4IDB4OAkjIChEV19GT1JNX3N0cmluZykKKysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4 MAorKwkuYnl0ZQkweDAKKysJLnNlY3Rpb24JLmRlYnVnX3B1Ym5hbWVzLCIiLEBwcm9nYml0cwor KwkubG9uZwkweDE3CSMgTGVuZ3RoIG9mIFB1YmxpYyBOYW1lcyBJbmZvCisrCS52YWx1ZQkweDIJ IyBEV0FSRiBWZXJzaW9uCisrCS5sb25nCS5MZGVidWdfaW5mbzAJIyBPZmZzZXQgb2YgQ29tcGls YXRpb24gVW5pdCBJbmZvCisrCS5sb25nCTB4NTIJIyBDb21waWxhdGlvbiBVbml0IExlbmd0aAor KwkubG9uZwkweDJkCSMgRElFIG9mZnNldAorKwkuYXNjaWkgIm1haW5cMCIJIyBleHRlcm5hbCBu YW1lCisrCS5sb25nCTB4MAorKwkuc2VjdGlvbgkuZGVidWdfYXJhbmdlcywiIixAcHJvZ2JpdHMK KysJLmxvbmcJMHgyYwkjIExlbmd0aCBvZiBBZGRyZXNzIFJhbmdlcyBJbmZvCisrCS52YWx1ZQkw eDIJIyBEV0FSRiBWZXJzaW9uCisrCS5sb25nCS5MZGVidWdfaW5mbzAJIyBPZmZzZXQgb2YgQ29t cGlsYXRpb24gVW5pdCBJbmZvCisrCS5ieXRlCTB4OAkjIFNpemUgb2YgQWRkcmVzcworKwkuYnl0 ZQkweDAJIyBTaXplIG9mIFNlZ21lbnQgRGVzY3JpcHRvcgorKwkudmFsdWUJMHgwCSMgUGFkIHRv IDE2IGJ5dGUgYm91bmRhcnkKKysJLnZhbHVlCTB4MAorKwkucXVhZAkuTHRleHQwCSMgQWRkcmVz cworKwkucXVhZAkuTGV0ZXh0MC0uTHRleHQwCSMgTGVuZ3RoCisrCS5xdWFkCTB4MAorKwkucXVh ZAkweDAKKysJLnNlY3Rpb24JLmRlYnVnX3N0ciwiTVMiLEBwcm9nYml0cywxCisrLkxBU0YyOgor Kwkuc3RyaW5nCSIuIgorKy5MQVNGMDoKKysJLnN0cmluZwkiR05VIEMgNC40LjQgMjAxMDA1MDMg KFJlZCBIYXQgNC40LjQtMikiCisrLkxBU0YxOgorKwkuc3RyaW5nCSJnZGIuZHdhcmYyL3JoLWR3 YXJmNC14ODZfNjQuYyIKKysuTEFTRjM6CisrCS5zdHJpbmcJIm1haW4iCisrCS5pZGVudAkiR0ND OiAoR05VKSA0LjQuNCAyMDEwMDUwMyAoUmVkIEhhdCA0LjQuNC0yKSIKKysJLnNlY3Rpb24JLm5v dGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cworLS0tIC9kZXYvbnVsbAkyMDEwLTA2LTA4IDIwOjM1 OjQ2LjgwMDI3ODQ1MiArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L3JoLWR3YXJmNC14ODZfNjQuYwkyMDEwLTA2LTA5IDE1OjIxOjM1LjAwMDAwMDAwMCArMDIwMAor QEAgLTAsMCArMSwyMiBAQAorKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBH TlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwor KworK2ludAorK21haW4gKHZvaWQpCisreworKyAgcmV0dXJuIDA7CisrfQorLS0tIC9kZXYvbnVs bAkyMDEwLTA2LTA4IDIwOjM1OjQ2LjgwMDI3ODQ1MiArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL3JoLWR3YXJmNC14ODZfNjQuZXhwCTIwMTAtMDYtMDkgMTU6MjY6 MjEuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDQyIEBACisrIyBDb3B5cmlnaHQgMjAxMCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisrCisrIyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIG9uIHRhcmdldHMgd2hpY2gg c3VwcG9ydCBEV0FSRi0yIGFuZCB1c2UgZ2FzLgorKyMgRm9yIG5vdyBwaWNrIGEgc2FtcGxpbmcg b2YgbGlrZWx5IHRhcmdldHMuCisraWYgeyFbaXN0YXJnZXQgKi0qLWxpbnV4Kl0KKysgICAgJiYg IVtpc3RhcmdldCAqLSotZ251Kl0KKysgICAgJiYgIVtpc3RhcmdldCAqLSotZWxmKl0KKysgICAg JiYgIVtpc3RhcmdldCAqLSotb3BlbmJzZCpdCisrICAgICYmICFbaXN0YXJnZXQgYXJtLSotZWFi aSpdCisrICAgICYmICFbaXN0YXJnZXQgcG93ZXJwYy0qLWVhYmkqXX0geworKyAgICByZXR1cm4g MCAgCisrfQorKworK2lmIHshW2lzdGFyZ2V0IHg4Nl82NC0qXX0geworKyAgICByZXR1cm4gMCAg CisrfQorKworK3NldCB0ZXN0ZmlsZSAicmgtZHdhcmY0LXg4Nl82NCIKKytzZXQgc3JjZmlsZSAk e3Rlc3RmaWxlfS5TCisrc2V0IGV4ZWN1dGFibGUgJHt0ZXN0ZmlsZX0ueAorK3NldCBiaW5maWxl ICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRhYmxlfQorKworK2lmICB7IFtnZGJfY29tcGls ZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgb2JqZWN0IHt9 XSAhPSAiIiB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2NsZWFuX3Jlc3RhcnQgJGV4ZWN1 dGFibGUKKysKKytnZGJfdGVzdCAicHR5cGUgbWFpbiIge3R5cGUgPSBpbnQgXCh2b2lkXCl9Cgpk aWZmIC0tZ2l0IGEvZ2RiLWJ6NjAyMzE0LXB0eXBlLWNsYXNzLXR5cGVkZWYtMW9mMy5wYXRjaCBi L2dkYi1iejYwMjMxNC1wdHlwZS1jbGFzcy10eXBlZGVmLTFvZjMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQzMWJmMgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1i ejYwMjMxNC1wdHlwZS1jbGFzcy10eXBlZGVmLTFvZjMucGF0Y2gKQEAgLTAsMCArMSwyNzQgQEAK K2NvbW1pdCBmNDlmOTFlOWMzZWFiYTg0N2Y3NWY1YzQ2ZTc3ZTI2MWE3NmQ5YTliCitBdXRob3I6 IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorRGF0ZTogICBNb24g SnVuIDI4IDIwOjM1OjUxIDIwMTAgKzAwMDAKKworICAgIGdkYi8KKyAgICAJKiBjcC1uYW1lc3Bh Y2UuYyAoY3BfbG9va3VwX25lc3RlZF90eXBlKTogTmV3IHZhcmlhYmxlCisgICAgCWNvbmNhdGVu YXRlZF9uYW1lLiAgVHVybiB0aGUgY3VycmVudCByZXR1cm4gY29uZGl0aW9uIGludG8gYSByZXZl cnNlCisgICAgCW9uZS4gIENhbGwgYWxzbyBsb29rdXBfc3RhdGljX3N5bWJvbF9hdXggb24gdGhl IGNvbnN0cnVjdGVkIHF1YWxpZmllZAorICAgIAluYW1lLgorICAgIAkqIHN5bXRhYi5jIChsb29r dXBfc3ltYm9sX2F1eCk6IE1vdmUgdmFyaWFibGUgb2JqZmlsZSBhbmQgc2VhcmNoaW5nIGluCisg ICAgCW90aGVyIGZpbGVzIGludG8gYSBjYWxsZWQgLi4uCisgICAgCShsb29rdXBfc3RhdGljX3N5 bWJvbF9hdXgpOiAuLi4gbmV3IGZ1bmN0aW9uIGhlcmUuCisgICAgCSogc3ltdGFiLmggKGxvb2t1 cF9zdGF0aWNfc3ltYm9sX2F1eCk6IE5ldyBwcm90b3R5cGUuCisgICAgCSogdmFsb3BzLmMgKHZh bHVlX21heWJlX25hbWVzcGFjZV9lbHQpOiBDYWxsIGFsc28KKyAgICAJbG9va3VwX3N0YXRpY19z eW1ib2xfYXV4IGlmIHdlIGZhaWxlZCBvdGhlcndpc2UuCisgICAgCisgICAgZ2RiL3Rlc3RzdWl0 ZS8KKyAgICAJKiBnZGIuY3AvbmFtZXNwYWNlLmV4cCAod2hhdGlzIEM6OmNPdGhlckZpbGVUeXBl KQorICAgIAkod2hhdGlzIDo6Qzo6Y090aGVyRmlsZVR5cGUsIHdoYXRpcyBDOjpjT3RoZXJGaWxl VmFyKQorICAgIAkod2hhdGlzIDo6Qzo6Y090aGVyRmlsZVZhciwgcHJpbnQgQzo6Y090aGVyRmls ZVZhcikKKyAgICAJKHByaW50IDo6Qzo6Y090aGVyRmlsZVZhcikKKyAgICAJKHdoYXRpcyBDOjpP dGhlckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNzVHlwZSkKKyAgICAJKHdoYXRpcyA6OkM6Ok90 aGVyRmlsZUNsYXNzOjpjT3RoZXJGaWxlQ2xhc3NUeXBlKQorICAgIAkocHJpbnQgQzo6T3RoZXJG aWxlQ2xhc3M6OmNPdGhlckZpbGVDbGFzc1ZhcikKKyAgICAJKHByaW50IDo6Y090aGVyRmlsZUNs YXNzVmFyKQorICAgIAkocHJpbnQgOjpDOjpPdGhlckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNz VmFyKTogTmV3IHRlc3RzLgorICAgIAkocHR5cGUgT3RoZXJGaWxlQ2xhc3MsIHB0eXBlIDo6Qzo6 T3RoZXJGaWxlQ2xhc3MpOiBQZXJtaXQgYXJiaXRyYXJ5CisgICAgCXRyYWlsaW5nIGNvbnRlbnQu CisgICAgCSogZ2RiLmNwL25hbWVzcGFjZTEuY2MgKEM6Ok90aGVyRmlsZUNsYXNzOjpjT3RoZXJG aWxlQ2xhc3NUeXBlKQorICAgIAkoQzo6T3RoZXJGaWxlQ2xhc3M6OmNPdGhlckZpbGVDbGFzc1Zh cikKKyAgICAJKEM6Ok90aGVyRmlsZUNsYXNzOjpjT3RoZXJGaWxlQ2xhc3NWYXJfdXNlLCBDOjpj T3RoZXJGaWxlVHlwZSkKKyAgICAJKEM6OmNPdGhlckZpbGVWYXIsIEM6OmNPdGhlckZpbGVWYXJf dXNlKTogTmV3LgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisj IyAtMSw1ICsxLDE4IEBACisgMjAxMC0wNi0yOCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9j aHZpbEByZWRoYXQuY29tPgorIAorKwkqIGNwLW5hbWVzcGFjZS5jIChjcF9sb29rdXBfbmVzdGVk X3R5cGUpOiBOZXcgdmFyaWFibGUKKysJY29uY2F0ZW5hdGVkX25hbWUuICBUdXJuIHRoZSBjdXJy ZW50IHJldHVybiBjb25kaXRpb24gaW50byBhIHJldmVyc2UKKysJb25lLiAgQ2FsbCBhbHNvIGxv b2t1cF9zdGF0aWNfc3ltYm9sX2F1eCBvbiB0aGUgY29uc3RydWN0ZWQgcXVhbGlmaWVkCisrCW5h bWUuCisrCSogc3ltdGFiLmMgKGxvb2t1cF9zeW1ib2xfYXV4KTogTW92ZSB2YXJpYWJsZSBvYmpm aWxlIGFuZCBzZWFyY2hpbmcgaW4KKysJb3RoZXIgZmlsZXMgaW50byBhIGNhbGxlZCAuLi4KKysJ KGxvb2t1cF9zdGF0aWNfc3ltYm9sX2F1eCk6IC4uLiBuZXcgZnVuY3Rpb24gaGVyZS4KKysJKiBz eW10YWIuaCAobG9va3VwX3N0YXRpY19zeW1ib2xfYXV4KTogTmV3IHByb3RvdHlwZS4KKysJKiB2 YWxvcHMuYyAodmFsdWVfbWF5YmVfbmFtZXNwYWNlX2VsdCk6IENhbGwgYWxzbworKwlsb29rdXBf c3RhdGljX3N5bWJvbF9hdXggaWYgd2UgZmFpbGVkIG90aGVyd2lzZS4KKysKKysyMDEwLTA2LTI4 ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCisgCUZpeCBQ UiBjKysvMTE3MDMgYW5kIFBSIGdkYi8xNDQ4LgorIAkqIGMtZXhwLnkgKHl5bGV4KSA8bGFzdF93 YXNfY29sb25jb2xvbiAmJiBmaXJzdF93YXNfY29sb25jb2xvbj46IEFkZAorIAlGSVJTVF9JVEVS IGNoZWNrLgorSW5kZXg6IGdkYi03LjEvZ2RiL2NwLW5hbWVzcGFjZS5jCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuMS5vcmlnL2dkYi9jcC1uYW1lc3BhY2UuYwkyMDEwLTA2LTI5IDE3OjU0OjE3LjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2NwLW5hbWVzcGFjZS5jCTIwMTAtMDYtMjkg MTc6NTk6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtNTg1LDEwICs1ODUsMjQgQEAgY3BfbG9va3Vw X25lc3RlZF90eXBlIChzdHJ1Y3QgdHlwZSAqcGFyZQorIAkJCQkJCQkgbmVzdGVkX25hbWUsCisg CQkJCQkJCSBibG9jaywKKyAJCQkJCQkJIFZBUl9ET01BSU4pOworLQlpZiAoc3ltID09IE5VTEwg fHwgU1lNQk9MX0NMQVNTIChzeW0pICE9IExPQ19UWVBFREVGKQorLQkgIHJldHVybiBOVUxMOwor LQllbHNlCisrCWNoYXIgKmNvbmNhdGVuYXRlZF9uYW1lOworKworKwlpZiAoc3ltICE9IE5VTEwg JiYgU1lNQk9MX0NMQVNTIChzeW0pID09IExPQ19UWVBFREVGKQorKwkgIHJldHVybiBTWU1CT0xf VFlQRSAoc3ltKTsKKysKKysJLyogTm93IHNlYXJjaCBhbGwgc3RhdGljIGZpbGUtbGV2ZWwgc3lt Ym9scy4gIE5vdCBzdHJpY3RseSBjb3JyZWN0LAorKwkgICBidXQgbW9yZSB1c2VmdWwgdGhhbiBh biBlcnJvci4gIFdlIGRvIG5vdCB0cnkgdG8gZ3Vlc3MgYW55IGltcG9ydGVkCisrCSAgIG5hbWVz cGFjZSBhcyBldmVuIHRoZSBmdWxseSBzcGVjaWZpZWQgbmFtZXNwYWNlIHNlYWNoIGlzIGlzIGFs cmVhZHkKKysJICAgbm90IEMrKyBjb21wbGlhbnQgYW5kIG1vcmUgYXNzdW1wdGlvbnMgY291bGQg bWFrZSBpdCB0b28gbWFnaWMuICAqLworKworKwljb25jYXRlbmF0ZWRfbmFtZSA9IGFsbG9jYSAo c3RybGVuIChwYXJlbnRfbmFtZSkgKyAyCisrCQkJCSAgICArIHN0cmxlbiAobmVzdGVkX25hbWUp ICsgMSk7CisrCXNwcmludGYgKGNvbmNhdGVuYXRlZF9uYW1lLCAiJXM6OiVzIiwgcGFyZW50X25h bWUsIG5lc3RlZF9uYW1lKTsKKysJc3ltID0gbG9va3VwX3N0YXRpY19zeW1ib2xfYXV4IChjb25j YXRlbmF0ZWRfbmFtZSwgVkFSX0RPTUFJTik7CisrCWlmIChzeW0gIT0gTlVMTCAmJiBTWU1CT0xf Q0xBU1MgKHN5bSkgPT0gTE9DX1RZUEVERUYpCisgCSAgcmV0dXJuIFNZTUJPTF9UWVBFIChzeW0p OworKworKwlyZXR1cm4gTlVMTDsKKyAgICAgICB9CisgICAgIGRlZmF1bHQ6CisgICAgICAgaW50 ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKK0luZGV4OiBnZGItNy4xL2dkYi9zeW10 YWIuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEub3JpZy9nZGIvc3ltdGFiLmgJMjAxMC0wNi0y OSAxNzo1NDoxNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xL2dkYi9zeW10YWIuaAkyMDEw LTA2LTI5IDE4OjAwOjM3LjAwMDAwMDAwMCArMDIwMAorQEAgLTEwMzYsNiArMTAzNiwxMiBAQCBl eHRlcm4gc3RydWN0IHBhcnRpYWxfc3ltYm9sICpsb29rdXBfcGFyCisgCQkJCQkJICAgICBjb25z dCBjaGFyICosIGludCwKKyAJCQkJCQkgICAgIGRvbWFpbl9lbnVtKTsKKyAKKysvKiBMb29rdXAg YSBzeW1ib2wgb25seSBpbiB0aGUgZmlsZSBzdGF0aWMgc2NvcGUgb2YgYWxsIHRoZSBvYmpmaWxl cy4gICovCisrCisrc3RydWN0IHN5bWJvbCAqbG9va3VwX3N0YXRpY19zeW1ib2xfYXV4IChjb25z dCBjaGFyICpuYW1lLAorKwkJCQkJIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbik7CisrCisrCisg LyogbG9va3VwIGEgc3ltYm9sIGJ5IG5hbWUsIHdpdGhpbiBhIHNwZWNpZmllZCBibG9jayAqLwor IAorIGV4dGVybiBzdHJ1Y3Qgc3ltYm9sICpsb29rdXBfYmxvY2tfc3ltYm9sIChjb25zdCBzdHJ1 Y3QgYmxvY2sgKiwgY29uc3QgY2hhciAqLAorSW5kZXg6IGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuY3AvbmFtZXNwYWNlLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UuZXhwCTIwMTAtMDYtMjkgMTc6NTQ6MTEuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UuZXhwCTIw MTAtMDYtMjkgMTg6MTc6MTcuMDAwMDAwMDAwICswMjAwCitAQCAtMjE3LDYgKzIxNyw3MCBAQCBn ZGJfZXhwZWN0IHsKKyBnZGJfdGVzdCAiYnJlYWsgQkJCOjpDbGFzczo6eHl6cSIgXAorICAgICAi QnJlYWtwb2ludC4qYXQgJGhleDogZmlsZS4qbmFtZXNwYWNlLmNjLCBsaW5lIDY4XFwuIgorIAor KyMgVGVzdHMgYWNjZXNzaW5nIHN0YXRpYyBlbGVtZW50cyBpbiBuYW1lc3BhY2Ugb2Ygb3RoZXIg ZmlsZS4KKysKKytnZGJfdGVzdCAid2hhdGlzIEM6OmNPdGhlckZpbGVUeXBlIiAidHlwZSA9IHNo b3J0IgorK2dkYl90ZXN0ICJ3aGF0aXMgOjpDOjpjT3RoZXJGaWxlVHlwZSIgInR5cGUgPSBzaG9y dCIKKytnZGJfdGVzdCAid2hhdGlzIEM6OmNPdGhlckZpbGVWYXIiICJ0eXBlID0gY29uc3QgQzo6 Y090aGVyRmlsZVR5cGUiCisrZ2RiX3Rlc3QgIndoYXRpcyA6OkM6OmNPdGhlckZpbGVWYXIiICJ0 eXBlID0gY29uc3QgQzo6Y090aGVyRmlsZVR5cGUiCisrZ2RiX3Rlc3QgInByaW50IEM6OmNPdGhl ckZpbGVWYXIiICJcXCRcWzAtOVxdLiogPSAzMTkiCisrZ2RiX3Rlc3QgInByaW50IDo6Qzo6Y090 aGVyRmlsZVZhciIgIlxcJFxbMC05XF0uKiA9IDMxOSIKKysKKytpZiB7W3Rlc3RfY29tcGlsZXJf aW5mbyB7Z2NjLVswLTNdLSp9XQorKyAgICB8fCBbdGVzdF9jb21waWxlcl9pbmZvIHtnY2MtNC1b MC00XS0qfV19IHsKKysgICAgIyBUaGUgdHlwZSBpbiBjbGFzcyBpcyBtaXNzaW5nIGluIG9sZGVy IEdDQ3MuCisrICAgIHNldHVwX3hmYWlsICotKi0qIAorK30KKytnZGJfdGVzdCAid2hhdGlzIEM6 Ok90aGVyRmlsZUNsYXNzOjpjT3RoZXJGaWxlQ2xhc3NUeXBlIiAidHlwZSA9IHNob3J0IgorK2lm IHtbdGVzdF9jb21waWxlcl9pbmZvIHtnY2MtWzAtM10tKn1dCisrICAgIHx8IFt0ZXN0X2NvbXBp bGVyX2luZm8ge2djYy00LVswLTRdLSp9XX0geworKyAgICAjIFRoZSB0eXBlIGluIGNsYXNzIGlz IG1pc3NpbmcgaW4gb2xkZXIgR0NDcy4KKysgICAgc2V0dXBfeGZhaWwgKi0qLSogCisrfQorK2dk Yl90ZXN0ICJ3aGF0aXMgOjpDOjpPdGhlckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNzVHlwZSIg InR5cGUgPSBzaG9ydCIKKysKKytzZXQgdGVzdCAicHJpbnQgQzo6T3RoZXJGaWxlQ2xhc3M6OmNP dGhlckZpbGVDbGFzc1ZhciIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7CisrICAg IC1yZSAiXFwkXFswLTlcXS4qID0gMzE4XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJcGFzcyAkdGVz dAorKyAgICB9CisrICAgIC1yZSAic3RhdGljIGZpZWxkIGNPdGhlckZpbGVDbGFzc1ZhciBoYXMg YmVlbiBvcHRpbWl6ZWQgb3V0XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJc2V0dXBfa2ZhaWwgImMr Ky8xMTcwMiIgIiotKi0qIgorKwlmYWlsICR0ZXN0CisrICAgIH0KKyt9CisrCisrIyBGU0YgR0ND IDw9NC40IGNyZWF0ZXMgdW5xdWFsaWZpZWQgRElFICJjT3RoZXJGaWxlQ2xhc3NWYXIiIGlnbm9y aW5nIHRoZQorKyMgbmFtZXNwYWNlIHRoZSBzYW1lIHdheSBvbGRlciBHREIgZGlkLgorK3NldCB0 ZXN0ICJwcmludCA6OmNPdGhlckZpbGVDbGFzc1ZhciIKKytzZXQgdGVzdDIgInByaW50IDo6Qzo6 T3RoZXJGaWxlQ2xhc3M6OmNPdGhlckZpbGVDbGFzc1ZhciIKKytnZGJfdGVzdF9tdWx0aXBsZSAk dGVzdCAkdGVzdCB7CisrICAgIC1yZSAiTm8gc3ltYm9sIFwiY090aGVyRmlsZUNsYXNzVmFyXCIg aW4gY3VycmVudCBjb250ZXh0XFwuXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJcGFzcyAkdGVzdAor KworKwlnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdDIgJHRlc3QyIHsKKysJICAgIC1yZSAiXFwkXFsw LTlcXS4qID0gMzE4XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJCXBhc3MgJHRlc3QyCisrCSAgICB9 CisrCSAgICAtcmUgInN0YXRpYyBmaWVsZCBjT3RoZXJGaWxlQ2xhc3NWYXIgaGFzIGJlZW4gb3B0 aW1pemVkIG91dFxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCQlzZXR1cF9rZmFpbCAiYysrLzExNzAy IiAiKi0qLSoiCisrCQlmYWlsICR0ZXN0MgorKwkgICAgfQorKwl9CisrCisrICAgIH0KKysgICAg LXJlICJcXCRcWzAtOVxdLiogPSAzMThcclxuJGdkYl9wcm9tcHQgJCIgeworKwlpZiB7W3Rlc3Rf Y29tcGlsZXJfaW5mbyB7Z2NjLVswLTNdLSp9XQorKwkgICAgfHwgW3Rlc3RfY29tcGlsZXJfaW5m byB7Z2NjLTQtWzAtNF0tKn1dfSB7CisrCSAgICAjIERvIG5vdCBwZXJtaXQgdG8gWEZBSUwgb24g cmVjZW50IEdDQ3MuCisrCSAgICBzZXR1cF94ZmFpbCAqLSotKiAKKysJfQorKwlmYWlsICR0ZXN0 CisrCisrCXVucmVzb2x2ZWQgJHRlc3QyCisrICAgIH0KKyt9CisrCisgIyBUZXN0IHRvIHNlZSBp ZiB0aGUgYXBwcm9wcmlhdGUgbmFtZXNwYWNlcyBhcmUgaW4gc2NvcGUgd2hlbiB0cnlpbmcKKyAj IHRvIHByaW50IG91dCBzdHVmZiBmcm9tIHdpdGhpbiBhIGZ1bmN0aW9uIGRlZmluZWQgd2l0aGlu IGEKKyAjIG5hbWVzcGFjZS4KK0BAIC0yNjAsNyArMzI0LDcgQEAgZ2RiX3Rlc3QgInB0eXBlIEM6 Ok5lc3RlZENsYXNzIiAiTm8gc3ltYgorICMgVGVzdHMgaW52b2x2aW5nIG11bHRpcGxlIGZpbGVz CisgCisgZ2RiX3Rlc3QgInByaW50IGNPdGhlckZpbGUiICJcXCRcWzAtOVxdLiogPSAzMTYiCist Z2RiX3Rlc3QgInB0eXBlIE90aGVyRmlsZUNsYXNzIiAidHlwZSA9IChjbGFzcyBDOjpPdGhlckZp bGVDbGFzcyBce1xyXG4gIHB1YmxpYzp8c3RydWN0IEM6Ok90aGVyRmlsZUNsYXNzIFx7KVxyXG4g ICAgaW50IHo7XHJcblx9IgorK2dkYl90ZXN0ICJwdHlwZSBPdGhlckZpbGVDbGFzcyIgInR5cGUg PSAoY2xhc3MgQzo6T3RoZXJGaWxlQ2xhc3MgXHtcclxuICBwdWJsaWM6fHN0cnVjdCBDOjpPdGhl ckZpbGVDbGFzcyBceylcclxuICAgIGludCB6O1xyXG4uKlx9IgorIGNwX3Rlc3RfcHR5cGVfY2xh c3MgXAorIAkicHR5cGUgOjpDOjpPdGhlckZpbGVDbGFzcyIgIiIgImNsYXNzIiAiQzo6T3RoZXJG aWxlQ2xhc3MiIFwKKyAJeworSW5kZXg6IGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFt ZXNwYWNlMS5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEub3JpZy9nZGIvdGVzdHN1aXRlL2dk Yi5jcC9uYW1lc3BhY2UxLmNjCTIwMTAtMDEtMDEgMDg6MzI6MDEuMDAwMDAwMDAwICswMTAwCisr KysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UxLmNjCTIwMTAtMDYtMjkg MTc6NTY6NDIuMDAwMDAwMDAwICswMjAwCitAQCAtMjEsNyArMjEsMTUgQEAgbmFtZXNwYWNlIEMK KyAgIGNsYXNzIE90aGVyRmlsZUNsYXNzIHsKKyAgIHB1YmxpYzoKKyAgICAgaW50IHo7CisrCisr ICAgIHR5cGVkZWYgc2hvcnQgY090aGVyRmlsZUNsYXNzVHlwZTsKKysgICAgc3RhdGljIGNvbnN0 IGNPdGhlckZpbGVDbGFzc1R5cGUgY090aGVyRmlsZUNsYXNzVmFyID0gMzE4OworKyAgICBjT3Ro ZXJGaWxlQ2xhc3NUeXBlIGNPdGhlckZpbGVDbGFzc1Zhcl91c2UgKCk7CisgICB9OworKyAgT3Ro ZXJGaWxlQ2xhc3M6OmNPdGhlckZpbGVDbGFzc1R5cGUgT3RoZXJGaWxlQ2xhc3M6OmNPdGhlckZp bGVDbGFzc1Zhcl91c2UgKCkKKysgIHsKKysgICAgcmV0dXJuIGNPdGhlckZpbGVDbGFzc1ZhcjsK KysgIH0KKyAKKyAgIG5hbWVzcGFjZSB7CisgICAgIGludCBjWE90aGVyRmlsZSA9IDI5OworQEAg LTM1LDYgKzQzLDEzIEBAIG5hbWVzcGFjZSBDCisgICAgIHN0YXRpYyBPdGhlckZpbGVDbGFzcyAq YyA9IG5ldyBPdGhlckZpbGVDbGFzcygpOworICAgICBjLT56ID0gY090aGVyRmlsZSArIGNYT3Ro ZXJGaWxlOworICAgfQorKworKyAgdHlwZWRlZiBzaG9ydCBjT3RoZXJGaWxlVHlwZTsKKysgIHN0 YXRpYyBjb25zdCBjT3RoZXJGaWxlVHlwZSBjT3RoZXJGaWxlVmFyID0gMzE5OworKyAgY090aGVy RmlsZVR5cGUgY090aGVyRmlsZVZhcl91c2UgKCkKKysgIHsKKysgICAgcmV0dXJuIGNPdGhlckZp bGVWYXI7CisrICB9CisgfQorIAorIG5hbWVzcGFjZSB7CitJbmRleDogZ2RiLTcuMS9nZGIvdmFs b3BzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xLm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMTAtMDYt MjkgMTc6NTQ6MTYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvdmFsb3BzLmMJMjAx MC0wNi0yOSAxODoxNTowMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zMjUzLDkgKzMyNTMsMTcgQEAg dmFsdWVfbWF5YmVfbmFtZXNwYWNlX2VsdCAoY29uc3Qgc3RydWN0IAorICAgc3RydWN0IHN5bWJv bCAqc3ltOworICAgc3RydWN0IHZhbHVlICpyZXN1bHQ7CisgCistICBzeW0gPSBjcF9sb29rdXBf c3ltYm9sX25hbWVzcGFjZShuYW1lc3BhY2VfbmFtZSwgbmFtZSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdldF9zZWxlY3RlZF9ibG9jayAoMCksIAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVkFSX0RPTUFJTik7CisrICBzeW0gPSBjcF9sb29rdXBf c3ltYm9sX25hbWVzcGFjZSAobmFtZXNwYWNlX25hbWUsIG5hbWUsCisrCQkJCSAgICBnZXRfc2Vs ZWN0ZWRfYmxvY2sgKDApLCBWQVJfRE9NQUlOKTsKKysKKysgIGlmIChzeW0gPT0gTlVMTCkKKysg ICAgeworKyAgICAgIGNoYXIgKmNvbmNhdGVuYXRlZF9uYW1lID0gYWxsb2NhIChzdHJsZW4gKG5h bWVzcGFjZV9uYW1lKSArIDIKKysJCQkJCSsgc3RybGVuIChuYW1lKSArIDEpOworKworKyAgICAg IHNwcmludGYgKGNvbmNhdGVuYXRlZF9uYW1lLCAiJXM6OiVzIiwgbmFtZXNwYWNlX25hbWUsIG5h bWUpOworKyAgICAgIHN5bSA9IGxvb2t1cF9zdGF0aWNfc3ltYm9sX2F1eCAoY29uY2F0ZW5hdGVk X25hbWUsIFZBUl9ET01BSU4pOworKyAgICB9CisgCisgICBpZiAoc3ltID09IE5VTEwpCisgICAg IHJldHVybiBOVUxMOworLS0tIGEvZ2RiL3N5bXRhYi5jCisrKysgYi9nZGIvc3ltdGFiLmMKK0BA IC0xMTIyLDEwICsxMTIxLDIxIEBAIGxvb2t1cF9zeW1ib2xfYXV4IChjb25zdCBjaGFyICpuYW1l LCBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAorICAgICByZXR1cm4gc3ltOworIAorICAgLyog Tm93IHNlYXJjaCBhbGwgc3RhdGljIGZpbGUtbGV2ZWwgc3ltYm9scy4gIE5vdCBzdHJpY3RseSBj b3JyZWN0LAorLSAgICAgYnV0IG1vcmUgdXNlZnVsIHRoYW4gYW4gZXJyb3IuICBEbyB0aGUgc3lt dGFicyBmaXJzdCwgdGhlbiBjaGVjaworLSAgICAgdGhlIHBzeW10YWJzLiAgSWYgYSBwc3ltdGFi IGluZGljYXRlcyB0aGUgZXhpc3RlbmNlIG9mIHRoZQorLSAgICAgZGVzaXJlZCBuYW1lIGFzIGEg ZmlsZS1sZXZlbCBzdGF0aWMsIHRoZW4gZG8gcHN5bXRhYi10by1zeW10YWIKKy0gICAgIGNvbnZl cnNpb24gb24gdGhlIGZseSBhbmQgcmV0dXJuIHRoZSBmb3VuZCBzeW1ib2wuICovCisrICAgICBi dXQgbW9yZSB1c2VmdWwgdGhhbiBhbiBlcnJvci4gICovCisrCisrICByZXR1cm4gbG9va3VwX3N0 YXRpY19zeW1ib2xfYXV4IChuYW1lLCBkb21haW4pOworK30KKysKKysvKiBTZWFyY2ggYWxsIHN0 YXRpYyBmaWxlLWxldmVsIHN5bWJvbHMgZm9yIE5BTUUgZnJvbSBET01BSU4uICBEbyB0aGUgc3lt dGFicworKyAgIGZpcnN0LCB0aGVuIGNoZWNrIHRoZSBwc3ltdGFicy4gIElmIGEgcHN5bXRhYiBp bmRpY2F0ZXMgdGhlIGV4aXN0ZW5jZSBvZiB0aGUKKysgICBkZXNpcmVkIG5hbWUgYXMgYSBmaWxl LWxldmVsIHN0YXRpYywgdGhlbiBkbyBwc3ltdGFiLXRvLXN5bXRhYiBjb252ZXJzaW9uIG9uCisr ICAgdGhlIGZseSBhbmQgcmV0dXJuIHRoZSBmb3VuZCBzeW1ib2wuICovCisrCisrc3RydWN0IHN5 bWJvbCAqCisrbG9va3VwX3N0YXRpY19zeW1ib2xfYXV4IChjb25zdCBjaGFyICpuYW1lLCBjb25z dCBkb21haW5fZW51bSBkb21haW4pCisreworKyAgc3RydWN0IG9iamZpbGUgKm9iamZpbGU7Cisr ICBzdHJ1Y3Qgc3ltYm9sICpzeW07CisgCisgICBzeW0gPSBsb29rdXBfc3ltYm9sX2F1eF9zeW10 YWJzIChTVEFUSUNfQkxPQ0ssIG5hbWUsIGRvbWFpbik7CisgICBpZiAoc3ltICE9IE5VTEwpCgpk aWZmIC0tZ2l0IGEvZ2RiLWJ6NjAyMzE0LXB0eXBlLWNsYXNzLXR5cGVkZWYtMm9mMy5wYXRjaCBi L2dkYi1iejYwMjMxNC1wdHlwZS1jbGFzcy10eXBlZGVmLTJvZjMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YwMWViMwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1i ejYwMjMxNC1wdHlwZS1jbGFzcy10eXBlZGVmLTJvZjMucGF0Y2gKQEAgLTAsMCArMSwzMDggQEAK K2NvbW1pdCA3NThhMWY3MTQ5Y2I3NDY5YzdlNmJiMzBjYjU3MjcxNWVlOTBhNmU4CitBdXRob3I6 IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorRGF0ZTogICBNb24g SnVuIDI4IDIwOjM5OjI3IDIwMTAgKzAwMDAKKworICAgIGdkYi8KKyAgICAJKiBjLXR5cGVwcmlu dC5jIChjX3R5cGVfcHJpbnRfYmFzZSk6IEZvciBubyBmaWVsZHMgY2hlY2sgaW5jbHVkZSBhbHNv CisgICAgCVRZUEVfVFlQRURFRl9GSUVMRF9DT1VOVC4gIFByaW50IG5ldyB0eXBlZGVmcyBzZWN0 aW9uLgorICAgIAkqIGR3YXJmMnJlYWQuYyAoc3RydWN0IHR5cGVkZWZfZmllbGRfbGlzdCkKKyAg ICAJKHN0cnVjdCBmaWVsZF9pbmZvKSA8dHlwZWRlZl9maWVsZF9saXN0LCB0eXBlZGVmX2ZpZWxk X2xpc3RfY291bnQ+OiBOZXcuCisgICAgCShkd2FyZjJfYWRkX3R5cGVkZWYpOiBOZXcuCisgICAg CShyZWFkX3N0cnVjdHVyZV90eXBlKTogQ2FsbCBkd2FyZjJfYWRkX3R5cGVkZWYgZm9yIERXX1RB R190eXBlZGVmLgorICAgIAlDb3B5IGFsc28gRkkuVFlQRURFRl9GSUVMRF9MSVNULgorICAgIAkq IGdkYnR5cGVzLmggKHN0cnVjdCB0eXBlZGVmX2ZpZWxkKQorICAgIAkoc3RydWN0IGNwbHVzX3N0 cnVjdF90eXBlKSA8dHlwZWRlZl9maWVsZCwgdHlwZWRlZl9maWVsZF9jb3VudD4KKyAgICAJKFRZ UEVfVFlQRURFRl9GSUVMRF9BUlJBWSwgVFlQRV9UWVBFREVGX0ZJRUxELCBUWVBFX1RZUEVERUZf RklFTERfTkFNRSkKKyAgICAJKFRZUEVfVFlQRURFRl9GSUVMRF9UWVBFLCBUWVBFX1RZUEVERUZf RklFTERfQ09VTlQpOiBOZXcuCisgICAgCisgICAgZ2RiL3Rlc3RzdWl0ZS8KKyAgICAJKiBnZGIu Y3AvbmFtZXNwYWNlLmV4cCAocHR5cGUgT3RoZXJGaWxlQ2xhc3MgdHlwZWRlZnMpCisgICAgCShw dHlwZSA6OkM6Ok90aGVyRmlsZUNsYXNzIHR5cGVkZWZzKTogTmV3LgorICAgIAkqIGdkYi5jcC9u YW1lc3BhY2UxLmNjIChDOjpPdGhlckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNzVHlwZTIpCisg ICAgCShDOjpPdGhlckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNzVmFyMik6IE5ldy4KKyAgICAJ KEM6Ok90aGVyRmlsZUNsYXNzOjpjT3RoZXJGaWxlQ2xhc3NWYXJfdXNlKTogVXNlIGFsc28KKyAg ICAJY090aGVyRmlsZUNsYXNzVmFyMi4KKyAgICAJKEM6OmNPdGhlckZpbGVUeXBlMiwgQzo6Y090 aGVyRmlsZVZhcjIpOiBOZXcuCisgICAgCShDOjpjT3RoZXJGaWxlVmFyX3VzZSk6IHVzZSBhbHNv IGNPdGhlckZpbGVWYXIyLgorICAgIAkqIGdkYi5jcC91c2VyZGVmLmV4cCAocHR5cGUgJipjKTog UGVybWl0IGFyYml0cmFyeSB0cmFpbGluZyB0ZXh0LgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisj IyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSw1ICsxLDE5IEBACisgMjAxMC0wNi0yOCAgSmFuIEty YXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorIAorKwkqIGMtdHlwZXByaW50 LmMgKGNfdHlwZV9wcmludF9iYXNlKTogRm9yIG5vIGZpZWxkcyBjaGVjayBpbmNsdWRlIGFsc28K KysJVFlQRV9UWVBFREVGX0ZJRUxEX0NPVU5ULiAgUHJpbnQgbmV3IHR5cGVkZWZzIHNlY3Rpb24u CisrCSogZHdhcmYycmVhZC5jIChzdHJ1Y3QgdHlwZWRlZl9maWVsZF9saXN0KQorKwkoc3RydWN0 IGZpZWxkX2luZm8pIDx0eXBlZGVmX2ZpZWxkX2xpc3QsIHR5cGVkZWZfZmllbGRfbGlzdF9jb3Vu dD46IE5ldy4KKysJKGR3YXJmMl9hZGRfdHlwZWRlZik6IE5ldy4KKysJKHJlYWRfc3RydWN0dXJl X3R5cGUpOiBDYWxsIGR3YXJmMl9hZGRfdHlwZWRlZiBmb3IgRFdfVEFHX3R5cGVkZWYuCisrCUNv cHkgYWxzbyBGSS5UWVBFREVGX0ZJRUxEX0xJU1QuCisrCSogZ2RidHlwZXMuaCAoc3RydWN0IHR5 cGVkZWZfZmllbGQpCisrCShzdHJ1Y3QgY3BsdXNfc3RydWN0X3R5cGUpIDx0eXBlZGVmX2ZpZWxk LCB0eXBlZGVmX2ZpZWxkX2NvdW50PgorKwkoVFlQRV9UWVBFREVGX0ZJRUxEX0FSUkFZLCBUWVBF X1RZUEVERUZfRklFTEQsIFRZUEVfVFlQRURFRl9GSUVMRF9OQU1FKQorKwkoVFlQRV9UWVBFREVG X0ZJRUxEX1RZUEUsIFRZUEVfVFlQRURFRl9GSUVMRF9DT1VOVCk6IE5ldy4KKysKKysyMDEwLTA2 LTI4ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCisgCSog Y3AtbmFtZXNwYWNlLmMgKGNwX2xvb2t1cF9uZXN0ZWRfdHlwZSk6IE5ldyB2YXJpYWJsZQorIAlj b25jYXRlbmF0ZWRfbmFtZS4gIFR1cm4gdGhlIGN1cnJlbnQgcmV0dXJuIGNvbmRpdGlvbiBpbnRv IGEgcmV2ZXJzZQorIAlvbmUuICBDYWxsIGFsc28gbG9va3VwX3N0YXRpY19zeW1ib2xfYXV4IG9u IHRoZSBjb25zdHJ1Y3RlZCBxdWFsaWZpZWQKK0luZGV4OiBnZGItNy4xL2dkYi9jLXR5cGVwcmlu dC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMS5vcmlnL2dkYi9jLXR5cGVwcmludC5jCTIwMTAt MDYtMjkgMTc6NTQ6MDkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvYy10eXBlcHJp bnQuYwkyMDEwLTA2LTI5IDE4OjE3OjQ4LjAwMDAwMDAwMCArMDIwMAorQEAgLTc3NCw3ICs3NzQs OCBAQCBjX3R5cGVfcHJpbnRfYmFzZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0CisgCSAgY3BfdHlw ZV9wcmludF9kZXJpdmF0aW9uX2luZm8gKHN0cmVhbSwgdHlwZSk7CisgCisgCSAgZnByaW50Zl9m aWx0ZXJlZCAoc3RyZWFtLCAie1xuIik7CistCSAgaWYgKChUWVBFX05GSUVMRFMgKHR5cGUpID09 IDApICYmIChUWVBFX05GTl9GSUVMRFMgKHR5cGUpID09IDApKQorKwkgIGlmIChUWVBFX05GSUVM RFMgKHR5cGUpID09IDAgJiYgVFlQRV9ORk5fRklFTERTICh0eXBlKSA9PSAwCisrCSAgICAgICYm IFRZUEVfVFlQRURFRl9GSUVMRF9DT1VOVCAodHlwZSkgPT0gMCkKKyAJICAgIHsKKyAJICAgICAg aWYgKFRZUEVfU1RVQiAodHlwZSkpCisgCQlmcHJpbnRmaV9maWx0ZXJlZCAobGV2ZWwgKyA0LCBz dHJlYW0sIF8oIjxpbmNvbXBsZXRlIHR5cGU+XG4iKSk7CitAQCAtMTA2MCw2ICsxMDYxLDI5IEBA IGNfdHlwZV9wcmludF9iYXNlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3QKKyAJCX0KKyAJICAgIH0K KyAKKysJICAvKiBQcmludCB0eXBlZGVmcyBkZWZpbmVkIGluIHRoaXMgY2xhc3MuICAqLworKwor KwkgIGlmIChUWVBFX1RZUEVERUZfRklFTERfQ09VTlQgKHR5cGUpICE9IDApCisrCSAgICB7Cisr CSAgICAgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUpICE9IDAgfHwgVFlQRV9ORk5fRklFTERTICh0 eXBlKSAhPSAwKQorKwkJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiXG4iKTsKKysKKysJICAg ICAgZm9yIChpID0gMDsgaSA8IFRZUEVfVFlQRURFRl9GSUVMRF9DT1VOVCAodHlwZSk7IGkrKykK KysJCXsKKysJCSAgc3RydWN0IHR5cGUgKnRhcmdldCA9IFRZUEVfVFlQRURFRl9GSUVMRF9UWVBF ICh0eXBlLCBpKTsKKysKKysJCSAgLyogRGVyZWZlcmVuY2UgdGhlIHR5cGVkZWYgZGVjbGFyYXRp b24gaXRzZWxmLiAgKi8KKysJCSAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0YXJnZXQpID09IFRZ UEVfQ09ERV9UWVBFREVGKTsKKysJCSAgdGFyZ2V0ID0gVFlQRV9UQVJHRVRfVFlQRSAodGFyZ2V0 KTsKKysKKysJCSAgcHJpbnRfc3BhY2VzX2ZpbHRlcmVkIChsZXZlbCArIDQsIHN0cmVhbSk7Cisr CQkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgInR5cGVkZWYgIik7CisrCQkgIGNfcHJpbnRf dHlwZSAodGFyZ2V0LCAoY2hhciAqKSBUWVBFX1RZUEVERUZfRklFTERfTkFNRSAodHlwZSwgaSks CisrCQkJCXN0cmVhbSwgc2hvdyAtIDEsIGxldmVsICsgNCk7CisrCQkgIGZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgIjtcbiIpOworKwkJfQorKwkgICAgfQorKworIAkgIGZwcmludGZpX2ZpbHRl cmVkIChsZXZlbCwgc3RyZWFtLCAifSIpOworIAorIAkgIGlmIChUWVBFX0xPQ0FMVFlQRV9QVFIg KHR5cGUpICYmIHNob3cgPj0gMCkKK0luZGV4OiBnZGItNy4xL2dkYi9kd2FyZjJyZWFkLmMKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNy4xLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTA2LTI5IDE3 OjU0OjI4LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2R3YXJmMnJlYWQuYwkyMDEw LTA2LTI5IDE4OjE3OjQ4LjAwMDAwMDAwMCArMDIwMAorQEAgLTcyMiw2ICs3MjIsMTYgQEAgc3Ry dWN0IGZpZWxkX2luZm8KKyAKKyAgICAgLyogTnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGZuZmll bGRsaXN0cyBhcnJheS4gICovCisgICAgIGludCBuZm5maWVsZHM7CisrCisrICAgIC8qIHR5cGVk ZWZzIGRlZmluZWQgaW5zaWRlIHRoaXMgY2xhc3MuICBUWVBFREVGX0ZJRUxEX0xJU1QgY29udGFp bnMgaGVhZCBvZgorKyAgICAgICBhIE5VTEwgdGVybWluYXRlZCBsaXN0IG9mIFRZUEVERUZfRklF TERfTElTVF9DT1VOVCBlbGVtZW50cy4gICovCisrICAgIHN0cnVjdCB0eXBlZGVmX2ZpZWxkX2xp c3QKKysgICAgICB7CisrCXN0cnVjdCB0eXBlZGVmX2ZpZWxkIGZpZWxkOworKwlzdHJ1Y3QgdHlw ZWRlZl9maWVsZF9saXN0ICpuZXh0OworKyAgICAgIH0KKysgICAgKnR5cGVkZWZfZmllbGRfbGlz dDsKKysgICAgdW5zaWduZWQgdHlwZWRlZl9maWVsZF9saXN0X2NvdW50OworICAgfTsKKyAKKyAv KiBPbmUgaXRlbSBvbiB0aGUgcXVldWUgb2YgY29tcGlsYXRpb24gdW5pdHMgdG8gcmVhZCBpbiBm dWxsIHN5bWJvbHMKK0BAIC01MDc1LDYgKzUwODUsMzkgQEAgZHdhcmYyX2FkZF9maWVsZCAoc3Ry dWN0IGZpZWxkX2luZm8gKmZpcAorICAgICB9CisgfQorIAorKy8qIEFkZCBhIHR5cGVkZWYgZGVm aW5lZCBpbiB0aGUgc2NvcGUgb2YgdGhlIEZJUCdzIGNsYXNzLiAgKi8KKysKKytzdGF0aWMgdm9p ZAorK2R3YXJmMl9hZGRfdHlwZWRlZiAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRp ZV9pbmZvICpkaWUsCisrCQkgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisreyAKKysgIHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlID0gY3UtPm9iamZpbGU7CisrICBzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpOworKyAgc3RydWN0IHR5cGVkZWZfZmll bGRfbGlzdCAqbmV3X2ZpZWxkOworKyAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKKysgIHN0cnVj dCB0eXBlZGVmX2ZpZWxkICpmcDsKKysgIGNoYXIgKmZpZWxkbmFtZSA9ICIiOworKworKyAgLyog QWxsb2NhdGUgYSBuZXcgZmllbGQgbGlzdCBlbnRyeSBhbmQgbGluayBpdCBpbi4gICovCisrICBu ZXdfZmllbGQgPSB4emFsbG9jIChzaXplb2YgKCpuZXdfZmllbGQpKTsKKysgIG1ha2VfY2xlYW51 cCAoeGZyZWUsIG5ld19maWVsZCk7CisrCisrICBnZGJfYXNzZXJ0IChkaWUtPnRhZyA9PSBEV19U QUdfdHlwZWRlZik7CisrCisrICBmcCA9ICZuZXdfZmllbGQtPmZpZWxkOworKworKyAgLyogR2V0 IG5hbWUgb2YgZmllbGQuICAqLworKyAgZnAtPm5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7 CisrICBpZiAoZnAtPm5hbWUgPT0gTlVMTCkKKysgICAgcmV0dXJuOworKworKyAgZnAtPnR5cGUg PSByZWFkX3R5cGVfZGllIChkaWUsIGN1KTsKKysKKysgIG5ld19maWVsZC0+bmV4dCA9IGZpcC0+ dHlwZWRlZl9maWVsZF9saXN0OworKyAgZmlwLT50eXBlZGVmX2ZpZWxkX2xpc3QgPSBuZXdfZmll bGQ7CisrICBmaXAtPnR5cGVkZWZfZmllbGRfbGlzdF9jb3VudCsrOworK30KKysKKyAvKiBDcmVh dGUgdGhlIHZlY3RvciBvZiBmaWVsZHMsIGFuZCBhdHRhY2ggaXQgdG8gdGhlIHR5cGUuICAqLwor IAorIHN0YXRpYyB2b2lkCitAQCAtNTYwMCw2ICs1NjQzLDggQEAgcmVhZF9zdHJ1Y3R1cmVfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaQorIAkgICAgICAvKiBDKysgYmFzZSBjbGFzcyBmaWVsZC4g ICovCisgCSAgICAgIGR3YXJmMl9hZGRfZmllbGQgKCZmaSwgY2hpbGRfZGllLCBjdSk7CisgCSAg ICB9CisrCSAgZWxzZSBpZiAoY2hpbGRfZGllLT50YWcgPT0gRFdfVEFHX3R5cGVkZWYpCisrCSAg ICBkd2FyZjJfYWRkX3R5cGVkZWYgKCZmaSwgY2hpbGRfZGllLCBjdSk7CisgCSAgY2hpbGRfZGll ID0gc2libGluZ19kaWUgKGNoaWxkX2RpZSk7CisgCX0KKyAKK0BAIC01NjczLDYgKzU3MTgsMjgg QEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaQorIAkJfQorIAkgICAg fQorIAl9CisrCisrICAgICAgLyogQ29weSBmaS50eXBlZGVmX2ZpZWxkX2xpc3QgbGlua2VkIGxp c3QgZWxlbWVudHMgY29udGVudCBpbnRvIHRoZQorKwkgYWxsb2NhdGVkIGFycmF5IFRZUEVfVFlQ RURFRl9GSUVMRF9BUlJBWSAodHlwZSkuICAqLworKyAgICAgIGlmIChmaS50eXBlZGVmX2ZpZWxk X2xpc3QpCisrCXsKKysJICBpbnQgaSA9IGZpLnR5cGVkZWZfZmllbGRfbGlzdF9jb3VudDsKKysK KysJICBUWVBFX1RZUEVERUZfRklFTERfQVJSQVkgKHR5cGUpCisrCSAgICA9IFRZUEVfQUxMT0Mg KHR5cGUsIHNpemVvZiAoVFlQRV9UWVBFREVGX0ZJRUxEICh0eXBlLCAwKSkgKiBpKTsKKysJICBU WVBFX1RZUEVERUZfRklFTERfQ09VTlQgKHR5cGUpID0gaTsKKysKKysJICAvKiBSZXZlcnNlIHRo ZSBsaXN0IG9yZGVyIHRvIGtlZXAgdGhlIGRlYnVnIGluZm8gZWxlbWVudHMgb3JkZXIuICAqLwor KwkgIHdoaWxlICgtLWkgPj0gMCkKKysJICAgIHsKKysJICAgICAgc3RydWN0IHR5cGVkZWZfZmll bGQgKmRlc3QsICpzcmM7CisrCSAgICAgIAorKwkgICAgICBkZXN0ID0gJlRZUEVfVFlQRURFRl9G SUVMRCAodHlwZSwgaSk7CisrCSAgICAgIHNyYyA9ICZmaS50eXBlZGVmX2ZpZWxkX2xpc3QtPmZp ZWxkOworKwkgICAgICBmaS50eXBlZGVmX2ZpZWxkX2xpc3QgPSBmaS50eXBlZGVmX2ZpZWxkX2xp c3QtPm5leHQ7CisrCSAgICAgICpkZXN0ID0gKnNyYzsKKysJICAgIH0KKysJfQorICAgICB9Cisg CisgICBxdWlya19nY2NfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIgKHR5cGUsIGN1LT5vYmpmaWxl KTsKK0luZGV4OiBnZGItNy4xL2dkYi9nZGJ0eXBlcy5oCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu MS5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTAtMDYtMjkgMTc6NTQ6MTcuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuMS9nZGIvZ2RidHlwZXMuaAkyMDEwLTA2LTI5IDE4OjE4OjI5LjAwMDAwMDAw MCArMDIwMAorQEAgLTk0OCw2ICs5NDgsMTkgQEAgc3RydWN0IGNwbHVzX3N0cnVjdF90eXBlCisg ICAgICAgIG1lbWJlciBmdW5jdGlvbnMgb3IgdmlydHVhbCBiYXNlIGNsYXNzZXMuICBNaW51cyBv bmUgaWYgbm90CisgICAgICAgIGR5bmFtaWMuICBaZXJvIGlmIG5vdCB5ZXQgY29tcHV0ZWQuICAq LworICAgICBpbnQgaXNfZHluYW1pYyA6IDI7CisrCisrICAgIC8qIHR5cGVkZWZzIGRlZmluZWQg aW5zaWRlIHRoaXMgY2xhc3MuICBUWVBFREVGX0ZJRUxEIHBvaW50cyB0byBhbiBhcnJheSBvZgor KyAgICAgICBUWVBFREVGX0ZJRUxEX0NPVU5UIGVsZW1lbnRzLiAgKi8KKysgICAgc3RydWN0IHR5 cGVkZWZfZmllbGQKKysgICAgICB7CisrCS8qIFVucXVhbGlmaWVkIG5hbWUgdG8gYmUgcHJlZml4 ZWQgYnkgb3duaW5nIGNsYXNzIHF1YWxpZmllZCBuYW1lLiAgKi8KKysJY29uc3QgY2hhciAqbmFt ZTsKKysKKysJLyogVHlwZSB0aGlzIHR5cGVkZWYgbmFtZWQgTkFNRSByZXByZXNlbnRzLiAgKi8K KysJc3RydWN0IHR5cGUgKnR5cGU7CisrICAgICAgfQorKyAgICAqdHlwZWRlZl9maWVsZDsKKysg ICAgdW5zaWduZWQgdHlwZWRlZl9maWVsZF9jb3VudDsKKyAgIH07CisgCisgLyogU3RydWN0IHVz ZWQgZm9yIHJhbmtpbmcgYSBmdW5jdGlvbiBmb3Igb3ZlcmxvYWQgcmVzb2x1dGlvbiAqLworQEAg LTExODIsNiArMTE5NSwxNyBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChz dHJ1CisgI2RlZmluZSBUWVBFX0xPQ0FMVFlQRV9GSUxFKHRoaXN0eXBlKSAoVFlQRV9DUExVU19T UEVDSUZJQyh0aGlzdHlwZSktPmxvY2FsdHlwZV9wdHItPmZpbGUpCisgI2RlZmluZSBUWVBFX0xP Q0FMVFlQRV9MSU5FKHRoaXN0eXBlKSAoVFlQRV9DUExVU19TUEVDSUZJQyh0aGlzdHlwZSktPmxv Y2FsdHlwZV9wdHItPmxpbmUpCisgCisrI2RlZmluZSBUWVBFX1RZUEVERUZfRklFTERfQVJSQVko dGhpc3R5cGUpIFwKKysgIFRZUEVfQ1BMVVNfU1BFQ0lGSUMgKHRoaXN0eXBlKS0+dHlwZWRlZl9m aWVsZAorKyNkZWZpbmUgVFlQRV9UWVBFREVGX0ZJRUxEKHRoaXN0eXBlLCBuKSBcCisrICBUWVBF X0NQTFVTX1NQRUNJRklDICh0aGlzdHlwZSktPnR5cGVkZWZfZmllbGRbbl0KKysjZGVmaW5lIFRZ UEVfVFlQRURFRl9GSUVMRF9OQU1FKHRoaXN0eXBlLCBuKSBcCisrICBUWVBFX1RZUEVERUZfRklF TEQgKHRoaXN0eXBlLCBuKS5uYW1lCisrI2RlZmluZSBUWVBFX1RZUEVERUZfRklFTERfVFlQRSh0 aGlzdHlwZSwgbikgXAorKyAgVFlQRV9UWVBFREVGX0ZJRUxEICh0aGlzdHlwZSwgbikudHlwZQor KyNkZWZpbmUgVFlQRV9UWVBFREVGX0ZJRUxEX0NPVU5UKHRoaXN0eXBlKSBcCisrICBUWVBFX0NQ TFVTX1NQRUNJRklDICh0aGlzdHlwZSktPnR5cGVkZWZfZmllbGRfY291bnQKKysKKyAjZGVmaW5l IFRZUEVfSVNfT1BBUVVFKHRoaXN0eXBlKSAoKChUWVBFX0NPREUgKHRoaXN0eXBlKSA9PSBUWVBF X0NPREVfU1RSVUNUKSB8fCAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKFRZUEVfQ09ERSAodGhpc3R5cGUpID09IFRZUEVfQ09ERV9VTklPTikpICAgICAgICAm JiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChUWVBFX05GSUVMRFMgKHRo aXN0eXBlKSA9PSAwKSAgICAgICAgICAgICAgICAgICAgICYmIFwKK0luZGV4OiBnZGItNy4xL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4x Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLmV4cAkyMDEwLTA2LTI5IDE4OjE3 OjE3LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFt ZXNwYWNlLmV4cAkyMDEwLTA2LTI5IDE4OjE4OjU4LjAwMDAwMDAwMCArMDIwMAorQEAgLTMzMiw2 ICszMzIsMjEgQEAgY3BfdGVzdF9wdHlwZV9jbGFzcyBcCisgCX0KKyBnZGJfdGVzdCAicHR5cGUg Qzo6T3RoZXJGaWxlQ2xhc3MiICJObyBzeW1ib2wgXCJPdGhlckZpbGVDbGFzc1wiIGluIG5hbWVz cGFjZSBcIkM6OkNcIi4iCisgCisrIyBUZXN0IGNsYXNzIHR5cGVkZWZzIHByaW50aW5nLgorK3Nl dCBleHBlY3QgInR5cGUgPSBjbGFzcyBDOjpPdGhlckZpbGVDbGFzcyBce1xyXG4uKlxyXG4gKnR5 cGVkZWYgc2hvcnQgY090aGVyRmlsZUNsYXNzVHlwZTtcclxuICp0eXBlZGVmIGxvbmcgY090aGVy RmlsZUNsYXNzVHlwZTI7XHJcblx9IgorK2lmIHtbdGVzdF9jb21waWxlcl9pbmZvIHtnY2MtWzAt M10tKn1dCisrICAgIHx8IFt0ZXN0X2NvbXBpbGVyX2luZm8ge2djYy00LVswLTRdLSp9XX0gewor KyAgICAjIFRoZSB0eXBlIGluIGNsYXNzIGlzIG1pc3NpbmcgaW4gb2xkZXIgR0NDcy4KKysgICAg c2V0dXBfeGZhaWwgKi0qLSogCisrfQorK2dkYl90ZXN0ICJwdHlwZSBPdGhlckZpbGVDbGFzcyIg JGV4cGVjdCAicHR5cGUgT3RoZXJGaWxlQ2xhc3MgdHlwZWRlZnMiCisraWYge1t0ZXN0X2NvbXBp bGVyX2luZm8ge2djYy1bMC0zXS0qfV0KKysgICAgfHwgW3Rlc3RfY29tcGlsZXJfaW5mbyB7Z2Nj LTQtWzAtNF0tKn1dfSB7CisrICAgICMgVGhlIHR5cGUgaW4gY2xhc3MgaXMgbWlzc2luZyBpbiBv bGRlciBHQ0NzLgorKyAgICBzZXR1cF94ZmFpbCAqLSotKiAKKyt9CisrZ2RiX3Rlc3QgInB0eXBl IDo6Qzo6T3RoZXJGaWxlQ2xhc3MiICRleHBlY3QgInB0eXBlIDo6Qzo6T3RoZXJGaWxlQ2xhc3Mg dHlwZWRlZnMiCisrCisgIyBTb21lIGFub255bW91cyBuYW1lc3BhY2UgdGVzdHMuCisgCisgZ2Ri X3Rlc3QgInByaW50IGNYIiAiXFwkXFswLTlcXS4qID0gNiIKK0luZGV4OiBnZGItNy4xL2dkYi90 ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZTEuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xLm9y aWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlMS5jYwkyMDEwLTA2LTI5IDE3OjU2OjQy LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNw YWNlMS5jYwkyMDEwLTA2LTI5IDE4OjE3OjQ4LjAwMDAwMDAwMCArMDIwMAorQEAgLTIzLDEyICsy MywxNCBAQCBuYW1lc3BhY2UgQworICAgICBpbnQgejsKKyAKKyAgICAgdHlwZWRlZiBzaG9ydCBj T3RoZXJGaWxlQ2xhc3NUeXBlOworKyAgICB0eXBlZGVmIGxvbmcgY090aGVyRmlsZUNsYXNzVHlw ZTI7CisgICAgIHN0YXRpYyBjb25zdCBjT3RoZXJGaWxlQ2xhc3NUeXBlIGNPdGhlckZpbGVDbGFz c1ZhciA9IDMxODsKKysgICAgc3RhdGljIGNvbnN0IGNPdGhlckZpbGVDbGFzc1R5cGUyIGNPdGhl ckZpbGVDbGFzc1ZhcjIgPSAzMjA7CisgICAgIGNPdGhlckZpbGVDbGFzc1R5cGUgY090aGVyRmls ZUNsYXNzVmFyX3VzZSAoKTsKKyAgIH07CisgICBPdGhlckZpbGVDbGFzczo6Y090aGVyRmlsZUNs YXNzVHlwZSBPdGhlckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNzVmFyX3VzZSAoKQorICAgewor LSAgICByZXR1cm4gY090aGVyRmlsZUNsYXNzVmFyOworKyAgICByZXR1cm4gY090aGVyRmlsZUNs YXNzVmFyICsgY090aGVyRmlsZUNsYXNzVmFyMjsKKyAgIH0KKyAKKyAgIG5hbWVzcGFjZSB7CitA QCAtNDUsMTAgKzQ3LDEyIEBAIG5hbWVzcGFjZSBDCisgICB9CisgCisgICB0eXBlZGVmIHNob3J0 IGNPdGhlckZpbGVUeXBlOworKyAgdHlwZWRlZiBsb25nIGNPdGhlckZpbGVUeXBlMjsKKyAgIHN0 YXRpYyBjb25zdCBjT3RoZXJGaWxlVHlwZSBjT3RoZXJGaWxlVmFyID0gMzE5OworKyAgc3RhdGlj IGNvbnN0IGNPdGhlckZpbGVUeXBlMiBjT3RoZXJGaWxlVmFyMiA9IDMyMTsKKyAgIGNPdGhlckZp bGVUeXBlIGNPdGhlckZpbGVWYXJfdXNlICgpCisgICB7CistICAgIHJldHVybiBjT3RoZXJGaWxl VmFyOworKyAgICByZXR1cm4gY090aGVyRmlsZVZhciArIGNPdGhlckZpbGVWYXIyOworICAgfQor IH0KKyAKK0luZGV4OiBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3VzZXJkZWYuZXhwCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3VzZXJkZWYu ZXhwCTIwMTAtMDYtMjkgMTc6NTQ6MTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIv dGVzdHN1aXRlL2dkYi5jcC91c2VyZGVmLmV4cAkyMDEwLTA2LTI5IDE4OjE3OjQ4LjAwMDAwMDAw MCArMDIwMAorQEAgLTE1NCw3ICsxNTQsNyBAQCBnZGJfdGVzdCAiYnJlYWsgQTI6OidvcGVyYXRv ciArJyIgIi4qQnJlCisgZ2RiX3Rlc3QgInByaW50IGMiICJcXFwkXFswLTlcXSogPSB7bSA9IHt6 ID0gLip9fSIKKyBnZGJfdGVzdCAicHJpbnQgKmMiICJcXFwkXFswLTlcXSogPSBcXChNZW1iZXIg JlxcKSBAJGhleDoge3ogPSAuKn0iCisgZ2RiX3Rlc3QgInByaW50ICYqYyIgIlxcXCRcWzAtOVxd KiA9IFxcKE1lbWJlciBcXCpcXCkgJGhleCIKKy1nZGJfdGVzdCAicHR5cGUgJipjIiAidHlwZSA9 IChzdHJ1Y3R8Y2xhc3MpIE1lbWJlciB7KFxbXHJcbiBcXStwdWJsaWM6KT9cW1xyXG4gXF0raW50 IHo7XFtcclxuXF0rfSAmXFwqIgorK2dkYl90ZXN0ICJwdHlwZSAmKmMiICJ0eXBlID0gKHN0cnVj dHxjbGFzcykgTWVtYmVyIHsoXFtcclxuIFxdK3B1YmxpYzopP1xbXHJcbiBcXStpbnQgejtcW1xy XG5cXS4qfSAmXFwqIgorIAorIGdkYl90ZXN0ICJwcmludCBvcGVyYXRvcj09IChtZW0xLCBtZW0y KSIgIiA9IGZhbHNlIgorIGdkYl90ZXN0ICJwcmludCBvcGVyYXRvcj09IChtZW0xLCBtZW0xKSIg IiA9IHRydWUiCgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NjAyMzE0LXB0eXBlLWNsYXNzLXR5cGVkZWYt M29mMy5wYXRjaCBiL2dkYi1iejYwMjMxNC1wdHlwZS1jbGFzcy10eXBlZGVmLTNvZjMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBhZDUwZAotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1iejYwMjMxNC1wdHlwZS1jbGFzcy10eXBlZGVmLTNvZjMucGF0Y2gKQEAgLTAs MCArMSwzOCBAQAorY29tbWl0IDQ3N2MxMzU5YjIxN2NkYzA1MmE3YzlmODNjYWU5Yzg5NDM5Njg5 NGMKK0F1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CitE YXRlOiAgIE1vbiBKdW4gMjggMjI6MDM6MzEgMjAxMCArMDAwMAorCisgICAgZ2RiLworICAgIAkq IGR3YXJmMnJlYWQuYyAocmVhZF9zdHJ1Y3R1cmVfdHlwZSkgPGZpLnR5cGVkZWZfZmllbGRfbGlz dD46IENhbGwKKyAgICAJQUxMT0NBVEVfQ1BMVVNfU1RSVUNUX1RZUEUuCisKKyMjIyBhL2dkYi9D aGFuZ2VMb2cKKyMjIyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDMgKzEsOCBAQAorKzIwMTAtMDYt MjggIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysKKysJKiBk d2FyZjJyZWFkLmMgKHJlYWRfc3RydWN0dXJlX3R5cGUpIDxmaS50eXBlZGVmX2ZpZWxkX2xpc3Q+ OiBDYWxsCisrCUFMTE9DQVRFX0NQTFVTX1NUUlVDVF9UWVBFLgorKworIDIwMTAtMDYtMjggIFBo aWwgTXVsZG9vbiAgPHBtdWxkb29uQHJlZGhhdC5jb20+CisgICAgICAgICAgICAgVG9tIFRyb21l eSAgPHRyb21leUByZWRoYXQuY29tPgorICAgICAgICAgICAgIFRoaWFnbyBKdW5nIEJhdWVybWFu biAgPGJhdWVybWFuQGJyLmlibS5jb20+CisjIyAtMjcsOCArMzIsNiBAQAorIAkqIHB5dGhvbi9w eS1pbmZlcmlvci5jOiBOZXcgRmlsZS4KKyAJKiBweXRob24vcHktaW5mdGhyZWFkLmM6IE5ldyBG aWxlLgorIAorLQorLQorIDIwMTAtMDYtMjggIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4KKyAKKyAJKiBjLXR5cGVwcmludC5jIChjX3R5cGVfcHJpbnRfYmFzZSk6 IEZvciBubyBmaWVsZHMgY2hlY2sgaW5jbHVkZSBhbHNvCistLS0gYS9nZGIvZHdhcmYycmVhZC5j CisrKysgYi9nZGIvZHdhcmYycmVhZC5jCitAQCAtNTMyNyw2ICs1MzI3LDcgQEAgcmVhZF9zdHJ1 Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor IAl7CisgCSAgaW50IGkgPSBmaS50eXBlZGVmX2ZpZWxkX2xpc3RfY291bnQ7CisgCisrCSAgQUxM T0NBVEVfQ1BMVVNfU1RSVUNUX1RZUEUgKHR5cGUpOworIAkgIFRZUEVfVFlQRURFRl9GSUVMRF9B UlJBWSAodHlwZSkKKyAJICAgID0gVFlQRV9BTExPQyAodHlwZSwgc2l6ZW9mIChUWVBFX1RZUEVE RUZfRklFTEQgKHR5cGUsIDApKSAqIGkpOworIAkgIFRZUEVfVFlQRURFRl9GSUVMRF9DT1VOVCAo dHlwZSkgPSBpOwoKZGlmZiAtLWdpdCBhL2dkYi1iejYwNjE4NS1vYnN0YWNrLTFvZjUucGF0Y2gg Yi9nZGItYno2MDYxODUtb2JzdGFjay0xb2Y1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmUyODc5YmIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno2MDYxODUtb2Jz dGFjay0xb2Y1LnBhdGNoCkBAIC0wLDAgKzEsMjE0IEBACitjb21taXQgNzhjMTQ0ZThjM2FlN2Ji MzZkNjMyZjZiZmFhYWFkOWM5NzE5OWNlNgorQXV0aG9yOiBjbW9sbGVyIDxjbW9sbGVyPgorRGF0 ZTogICBUdWUgQXByIDIwIDIwOjIyOjA5IDIwMTAgKzAwMDAKKworICAgIFBSIDEwODY3CisgICAg KiBjcC12YWxwcmludC5jIChnbG9iYWwpOiBBZGRpbmcgbmV3IHN0YXRpYyBhcnJheSByZWN1cnNp b24KKyAgICBkZXRlY3Rpb24gb2JzdGFjay4KKyAgICAoY3BfcHJpbnRfdmFsdWVfZmllbGRzLCBj cF9wcmludF9zdGF0aWNfZmllbGQpOiBBZGRlZCBuZXcgc3RhdGljCisgICAgYXJyYXkgcmVjdXJz aW9uIGRldGVjdGlvbiBjb2RlLgorICAgICogZ2RiLmNwL01ha2VmaWxlLmluICAoRVhFQ1VUQUJM RVMpOiBBZGRlZCBwcjEwNjg3CisgICAgKiBnZGIuY3AvcHIxMDY4Ny5jYzogTmV3IGZpbGUuCisg ICAgKiBnZGIuY3AvcHIxMDY4Ny5leHA6IE5ldyBmaWxlCisKKyMjIyBhL2dkYi9DaGFuZ2VMb2cK KyMjIyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDMgKzEsMTIgQEAKKysyMDEwLTA0LTIwICBDaHJp cyBNb2xsZXIgIDxjbW9sbGVyQHJlZGhhdC5jb20+CisrCQorKwlQUiAxMDg2NworKworKwkqIGNw LXZhbHByaW50LmMgKGdsb2JhbCk6IEFkZGluZyBuZXcgc3RhdGljIGFycmF5IHJlY3Vyc2lvbgor KwlkZXRlY3Rpb24gb2JzdGFjay4KKysJKGNwX3ByaW50X3ZhbHVlX2ZpZWxkcywgY3BfcHJpbnRf c3RhdGljX2ZpZWxkKTogQWRkZWQgbmV3IHN0YXRpYworKwlhcnJheSByZWN1cnNpb24gZGV0ZWN0 aW9uIGNvZGUuCisrCisgMjAxMC0wNC0yMCAgTWFyayBLZXR0ZW5pcyAgPGtldHRlbmlzQGdudS5v cmc+CisgCisgCSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfcmVnc2V0X3NlY3Rpb25z KTogU2l6ZSBvZiB0aGUKK0luZGV4OiBnZGItNy4xL2dkYi9jcC12YWxwcmludC5jCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gZ2RiLTcuMS5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTAtMDItMDggMTk6MDQ6 MTYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvY3AtdmFscHJpbnQuYwkyMDEwLTA2 LTI4IDIwOjIxOjUzLjAwMDAwMDAwMCArMDIwMAorQEAgLTcxLDYgKzcxLDcgQEAgc2hvd19zdGF0 aWNfZmllbGRfcHJpbnQgKHN0cnVjdCB1aV9maWxlIAorIAorIHN0YXRpYyBzdHJ1Y3Qgb2JzdGFj ayBkb250X3ByaW50X3ZiX29ic3RhY2s7Cisgc3RhdGljIHN0cnVjdCBvYnN0YWNrIGRvbnRfcHJp bnRfc3RhdG1lbV9vYnN0YWNrOworK3N0YXRpYyBzdHJ1Y3Qgb2JzdGFjayBkb250X3ByaW50X3N0 YXRfYXJyYXlfb2JzdGFjazsKKyAKKyBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9jcF92YWxwcmlu dCAodm9pZCk7CisgCitAQCAtMTU1LDEyICsxNTYsMTcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRz IChzdHJ1Y3QgdHlwZSAqdHlwZQorIHsKKyAgIGludCBpLCBsZW4sIG5fYmFzZWNsYXNzZXM7Cisg ICBpbnQgZmllbGRzX3NlZW4gPSAwOworKyAgc3RhdGljIGludCBsYXN0X3NldF9yZWN1cnNlID0g LTE7CisgCisgICBDSEVDS19UWVBFREVGICh0eXBlKTsKKyAgIAorLSAgaWYgKHJlY3Vyc2UgPT0g MAorLSAgICAgICYmIG9ic3RhY2tfb2JqZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRtZW1fb2Jz dGFjaykgPiAwKQorLSAgICBvYnN0YWNrX2ZyZWUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFj aywgTlVMTCk7CisrICBpZiAocmVjdXJzZSA9PSAwKQorKyAgICB7CisrICAgICAgaWYgKG9ic3Rh Y2tfb2JqZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjaykgPiAwKQorKwlvYnN0 YWNrX2ZyZWUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjaywgTlVMTCk7CisrICAgICAgaWYg KG9ic3RhY2tfb2JqZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjaykgPiAw KQorKwlvYnN0YWNrX2ZyZWUgKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjaywgTlVMTCk7 CisrICAgIH0KKyAKKyAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgInsiKTsKKyAgIGxlbiA9 IFRZUEVfTkZJRUxEUyAodHlwZSk7CitAQCAtMTgxLDEyICsxODcsMjAgQEAgY3BfcHJpbnRfdmFs dWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQorICAgZWxzZQorICAgICB7CisgICAgICAgdm9p ZCAqc3RhdG1lbV9vYnN0YWNrX3RvcCA9IE5VTEw7CisrICAgICAgdm9pZCAqc3RhdF9hcnJheV9v YnN0YWNrX3RvcCA9IE5VTEw7CisgICAgICAgCisgICAgICAgaWYgKGRvbnRfcHJpbnRfc3RhdG1l bSA9PSAwKQorIAl7CisgCSAgLyogU2V0IHRoZSBjdXJyZW50IHByaW50ZWQtc3RhdGljcyBzdGFj ayB0b3AuICAqLworIAkgIHN0YXRtZW1fb2JzdGFja190b3AKKyAJICAgID0gb2JzdGFja19uZXh0 X2ZyZWUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjayk7CisrCisrCSAgaWYgKGxhc3Rfc2V0 X3JlY3Vyc2UgIT0gcmVjdXJzZSkKKysJICAgIHsKKysJICAgICAgc3RhdF9hcnJheV9vYnN0YWNr X3RvcAorKwkJPSBvYnN0YWNrX25leHRfZnJlZSAoJmRvbnRfcHJpbnRfc3RhdF9hcnJheV9vYnN0 YWNrKTsKKysJICAgICAgbGFzdF9zZXRfcmVjdXJzZSA9IHJlY3Vyc2U7CisrCSAgICB9CisgCX0K KyAKKyAgICAgICBmb3IgKGkgPSBuX2Jhc2VjbGFzc2VzOyBpIDwgbGVuOyBpKyspCitAQCAtMzA3 LDkgKzMyMSwxNiBAQCBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlCisg CisgICAgICAgaWYgKGRvbnRfcHJpbnRfc3RhdG1lbSA9PSAwKQorIAl7CistCSAgLyogSW4gZWZm ZWN0LCBhIHBvcCBvZiB0aGUgcHJpbnRlZC1zdGF0aWNzIHN0YWNrLiAgKi8KKyAJICBpZiAob2Jz dGFja19vYmplY3Rfc2l6ZSAoJmRvbnRfcHJpbnRfc3RhdG1lbV9vYnN0YWNrKSA+IDApIAorIAkg ICAgb2JzdGFja19mcmVlICgmZG9udF9wcmludF9zdGF0bWVtX29ic3RhY2ssIHN0YXRtZW1fb2Jz dGFja190b3ApOworKworKwkgIGlmIChsYXN0X3NldF9yZWN1cnNlICE9IHJlY3Vyc2UpCisrCSAg ICB7CisrCSAgICAgIGlmIChvYnN0YWNrX29iamVjdF9zaXplICgmZG9udF9wcmludF9zdGF0X2Fy cmF5X29ic3RhY2spID4gMCkgCisrCQlvYnN0YWNrX2ZyZWUgKCZkb250X3ByaW50X3N0YXRfYXJy YXlfb2JzdGFjaywKKysJCQkgICAgICBzdGF0X2FycmF5X29ic3RhY2tfdG9wKTsKKysJICAgICAg bGFzdF9zZXRfcmVjdXJzZSA9IC0xOworKwkgICAgfQorIAl9CisgCisgICAgICAgaWYgKG9wdGlv bnMtPnByZXR0eSkKK0BAIC01MDgsNiArNTI5LDcgQEAgY3BfcHJpbnRfc3RhdGljX2ZpZWxkIChz dHJ1Y3QgdHlwZSAqdHlwZQorIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zKQorIHsKKyAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7Cisr ICAKKyAgIGlmIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9TVFJVQ1QpCisgICAgIHsK KyAgICAgICBDT1JFX0FERFIgKmZpcnN0X2RvbnRfcHJpbnQ7CitAQCAtNTQyLDYgKzU2NCwzMiBA QCBjcF9wcmludF9zdGF0aWNfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlCisgICAgICAgcmV0dXJu OworICAgICB9CisgCisrICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkp CisrICAgIHsKKysgICAgICBzdHJ1Y3QgdHlwZSAqKmZpcnN0X2RvbnRfcHJpbnQ7CisrICAgICAg aW50IGk7CisrICAgICAgc3RydWN0IHR5cGUgKnRhcmdldF90eXBlID0gVFlQRV9UQVJHRVRfVFlQ RSAodHlwZSk7CisrCisrICAgICAgZmlyc3RfZG9udF9wcmludAorKwk9IChzdHJ1Y3QgdHlwZSAq Kikgb2JzdGFja19iYXNlICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2spOworKyAgICAg IGkgPSBvYnN0YWNrX29iamVjdF9zaXplICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2sp CisrCS8gc2l6ZW9mIChDT1JFX0FERFIpOworKworKyAgICAgIHdoaWxlICgtLWkgPj0gMCkKKysJ eworKwkgIGlmICh0YXJnZXRfdHlwZSA9PSBmaXJzdF9kb250X3ByaW50W2ldKQorKwkgICAgewor KwkgICAgICBmcHV0c19maWx0ZXJlZCAoIjxzYW1lIGFzIHN0YXRpYyBtZW1iZXIgb2YgYW4gYWxy ZWFkeSIKKysJCQkgICAgICAiIHNlZW4gdHlwZT4iLAorKwkJCSAgICAgIHN0cmVhbSk7CisrCSAg ICAgIHJldHVybjsKKysJICAgIH0KKysJfQorKworKyAgICAgIG9ic3RhY2tfZ3JvdyAoJmRvbnRf cHJpbnRfc3RhdF9hcnJheV9vYnN0YWNrLCAoY2hhciAqKSAmdGFyZ2V0X3R5cGUsCisrCQkgICAg c2l6ZW9mIChzdHJ1Y3QgdHlwZSAqKSk7CisrICAgIH0KKysKKyAgIG9wdHMgPSAqb3B0aW9uczsK KyAgIG9wdHMuZGVyZWZfcmVmID0gMDsKKyAgIHZhbF9wcmludCAodHlwZSwgdmFsdWVfY29udGVu dHNfYWxsICh2YWwpLCAKK0BAIC02NzIsNiArNzIwLDcgQEAgU2hvdyBwcmludGluZyBvZiBvYmpl Y3QncyBkZXJpdmVkIHR5cGUgYgorIAkJCSAgIHNob3dfb2JqZWN0cHJpbnQsCisgCQkJICAgJnNl dHByaW50bGlzdCwgJnNob3dwcmludGxpc3QpOworIAorKyAgb2JzdGFja19iZWdpbiAoJmRvbnRf cHJpbnRfc3RhdF9hcnJheV9vYnN0YWNrLCAzMiAqIHNpemVvZiAoQ09SRV9BRERSKSk7CisgICBv YnN0YWNrX2JlZ2luICgmZG9udF9wcmludF9zdGF0bWVtX29ic3RhY2ssIDMyICogc2l6ZW9mIChD T1JFX0FERFIpKTsKKyAgIG9ic3RhY2tfYmVnaW4gKCZkb250X3ByaW50X3ZiX29ic3RhY2ssIDMy ICogc2l6ZW9mIChzdHJ1Y3QgdHlwZSAqKSk7CisgfQorSW5kZXg6IGdkYi03LjEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvcHIxMDY4Ny5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuY3AvcHIxMDY4Ny5jYwkyMDEwLTA2LTI4IDIwOjIxOjUzLjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSwyNCBAQAorK2NsYXNzIHZlYzIgCisreworKyAgcHVibGljOgorKyAgICB2ZWMyKCkg eyBfdlswXSA9IF92WzFdID0gMDsgfQorKyAgICB2ZWMyKGludCB4LCBpbnQgeSkgeyBfdlswXSA9 IHg7IF92WzFdID0geTsgfQorKyAgICBzdGF0aWMgdmVjMiBheGlzWzJdOworKyAgICBzdGF0aWMg dmVjMiBheGlzNls2XTsKKysgIHByaXZhdGU6CisrICAgIGludCBfdlsyXTsKKyt9OworKworK3Zl YzIgdmVjMjo6YXhpc1syXSA9IHsgdmVjMigxLDApLCB2ZWMyKDAsMSkgfTsKKyt2ZWMyIHZlYzI6 OmF4aXM2WzZdID0geyAKKysgIHZlYzIoMSwwKSwgdmVjMigwLDEpLAorKyAgdmVjMigyLDApLCB2 ZWMyKDAsMiksCisrICB2ZWMyKDMsMCksIHZlYzIoMCwzKSAKKyt9OworKworK2ludCBtYWluKGlu dCBhcmdjLCBjaGFyKmFyZ3ZbXSkKKyt7CisrICB2ZWMyIGE7CisrCisrICByZXR1cm4gMDsgIC8v IG1hcmtlcgorK30KK0luZGV4OiBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ByMTA2ODcu ZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9wcjEwNjg3LmV4cAky MDEwLTA2LTI4IDIwOjIxOjUzLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzMSBAQAorKyND b3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc2V0IHRlc3RmaWxlIHByMTA2ODcKKytzZXQgc3Jj ZmlsZSAke3Rlc3RmaWxlfS5jYworK2lmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR0ZXN0ZmlsZS5l eHAgJHRlc3RmaWxlICRzcmNmaWxlIHtkZWJ1ZyBjKyt9XSB7CisrICAgIHJldHVybiAtMQorK30K KysKKytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBmYWlsICJDYW4ndCBydW4gdG8gbWFp biIKKysgICAgcmV0dXJuCisrfQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJtYXJrZXIiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJtYXJrZXIiCisrCisr Z2RiX3Rlc3QgInAgYSIgIntzdGF0aWMgYXhpcyA9IHt7c3RhdGljIGF4aXMgPSA8c2FtZSBhcyBz dGF0aWMgbWVtYmVyIG9mIGFuIGFscmVhZHkuKiIKKysKCmRpZmYgLS1naXQgYS9nZGItYno2MDYx ODUtb2JzdGFjay0yb2Y1LnBhdGNoIGIvZ2RiLWJ6NjA2MTg1LW9ic3RhY2stMm9mNS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGIxY2I0Ci0tLSAvZGV2L251bGwK KysrIGIvZ2RiLWJ6NjA2MTg1LW9ic3RhY2stMm9mNS5wYXRjaApAQCAtMCwwICsxLDE2MyBAQAor Y29tbWl0IGQ1NGY1NjcxZTE5MGE1YzBjYThmZDFmZjA3MDM3MmJmMjBlYjQyYTgKK0F1dGhvcjog Y21vbGxlciA8Y21vbGxlcj4KK0RhdGU6ICAgV2VkIEFwciAyMSAxNzozMzo1MSAyMDEwICswMDAw CisKKyAgICBQUiA5MTY3CisgICAgKiBjcC12YWxwcmludC5jIChjcF9wcmludF92YWx1ZV9maWVs ZHMpOiBSZXBsYWNlZCBvYnN0YWNrX2Jhc2UoKQorICAgIG1ldGhvZCBvZiBwb3BwaW5nIHJlY3Vy c2lvbi1kZXRlY3Rpb24gc3RhY2sgd2l0aCBhIG1ldGhvZCBiYXNlZCBvbgorICAgIG9ic3RhY2tf b2JqZWN0X3NpemUoKS4KKyAgICAqIGdkYi5jcC9NYWtlZmlsZS5pbiAoRVhFQ1VUQUJMRVMpOiBB ZGRlZCBwcjkxNjcuCisgICAgKiBnZGIuY3AvcHI5MTY3LmNjOiBOZXcgZmlsZS4KKyAgICAqIGdk Yi5jcC9wcjkxNjcuZXhwOiBOZXcgZmlsZS4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIv Z2RiL0NoYW5nZUxvZworIyMgLTEsMyArMSwxMCBAQAorKzIwMTAtMDQtMjEgIENocmlzIE1vbGxl ciAgPGNtb2xsZXJAcmVkaGF0LmNvbT4KKysKKysJUFIgOTE2NworKwkqIGNwLXZhbHByaW50LmMg KGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyk6IFJlcGxhY2VkIG9ic3RhY2tfYmFzZSgpCisrICAgICAg ICBtZXRob2Qgb2YgcG9wcGluZyByZWN1cnNpb24tZGV0ZWN0aW9uIHN0YWNrIHdpdGggYSBtZXRo b2QgYmFzZWQgb24KKysgICAgICAgIG9ic3RhY2tfb2JqZWN0X3NpemUoKS4KKysKKyAyMDEwLTA0 LTIxICBQaWVycmUgTXVsbGVyICA8bXVsbGVyQGljcy51LXN0cmFzYmcuZnI+CisgCisgCVBSIHBh c2NhbC8xMTQ5Mi4KKyMjIC0zMTg0LDcgKzMxOTEsNyBAQAorIAlhZGRyX2JpdC4gIEFkanVzdCBM T0FEX0FERFIgc2lnbiBmb3IgY3Jvc3MtYXJjaCBpbmZlcmlvcnMuCisgCisgMjAxMC0wMi0xNyAg VHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KKy0JICAgIFBldHIgSGx1esOt biA8cGV0ci5obHV6aW5AZ21haWwuY29tPgorKwkgICAgUGV0ciBIbHV677+9biA8cGV0ci5obHV6 aW5AZ21haWwuY29tPgorIAorIAkqIGF2ci10ZGVwLmMgKGF2cl9zY2FuX3Byb2xvZ3VlKTogQ29u dmVydCBhbiBpZiBzdGF0ZW1lbnQgdG8gYQorIAlnZGJfYXNzZXJ0LiAgRml4IGluZm8tPnNpemUg Zm9yIFNJRyBwcm9sb2d1ZS4KK0luZGV4OiBnZGItNy4xL2dkYi9jcC12YWxwcmludC5jCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuMS5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTAtMDYtMjggMjA6 MjE6NTMuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvY3AtdmFscHJpbnQuYwkyMDEw LTA2LTI4IDIwOjIyOjE2LjAwMDAwMDAwMCArMDIwMAorQEAgLTE4NiwxNCArMTg2LDEzIEBAIGNw X3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUKKyAgICAgZnByaW50Zl9maWx0 ZXJlZCAoc3RyZWFtLCAiPE5vIGRhdGEgZmllbGRzPiIpOworICAgZWxzZQorICAgICB7CistICAg ICAgdm9pZCAqc3RhdG1lbV9vYnN0YWNrX3RvcCA9IE5VTEw7CisrICAgICAgaW50IG9ic3RhY2tf aW5pdGlhbF9zaXplID0gMDsKKyAgICAgICB2b2lkICpzdGF0X2FycmF5X29ic3RhY2tfdG9wID0g TlVMTDsKKyAgICAgICAKKyAgICAgICBpZiAoZG9udF9wcmludF9zdGF0bWVtID09IDApCisgCXsK Ky0JICAvKiBTZXQgdGhlIGN1cnJlbnQgcHJpbnRlZC1zdGF0aWNzIHN0YWNrIHRvcC4gICovCist CSAgc3RhdG1lbV9vYnN0YWNrX3RvcAorLQkgICAgPSBvYnN0YWNrX25leHRfZnJlZSAoJmRvbnRf cHJpbnRfc3RhdG1lbV9vYnN0YWNrKTsKKysJICBvYnN0YWNrX2luaXRpYWxfc2l6ZSA9CisrCSAg ICBvYnN0YWNrX29iamVjdF9zaXplICgmZG9udF9wcmludF9zdGF0bWVtX29ic3RhY2spOworIAor IAkgIGlmIChsYXN0X3NldF9yZWN1cnNlICE9IHJlY3Vyc2UpCisgCSAgICB7CitAQCAtMzIxLDgg KzMyMCwxOSBAQCBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlCisgCisg ICAgICAgaWYgKGRvbnRfcHJpbnRfc3RhdG1lbSA9PSAwKQorIAl7CistCSAgaWYgKG9ic3RhY2tf b2JqZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjaykgPiAwKSAKKy0JICAgIG9i c3RhY2tfZnJlZSAoJmRvbnRfcHJpbnRfc3RhdG1lbV9vYnN0YWNrLCBzdGF0bWVtX29ic3RhY2tf dG9wKTsKKysJICBpbnQgb2JzdGFja19maW5hbF9zaXplID0KKysgICAgICAgICAgIG9ic3RhY2tf b2JqZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjayk7CisrCisrCSAgaWYgKG9i c3RhY2tfZmluYWxfc2l6ZSA+IG9ic3RhY2tfaW5pdGlhbF9zaXplKSB7CisrCSAgICAvKiBJbiBl ZmZlY3QsIGEgcG9wIG9mIHRoZSBwcmludGVkLXN0YXRpY3Mgc3RhY2suICAqLworKworKwkgICAg dm9pZCAqZnJlZV90b19wdHIgPQorKwkgICAgICBvYnN0YWNrX25leHRfZnJlZSAoJmRvbnRfcHJp bnRfc3RhdG1lbV9vYnN0YWNrKSAtCisrCSAgICAgIChvYnN0YWNrX2ZpbmFsX3NpemUgLSBvYnN0 YWNrX2luaXRpYWxfc2l6ZSk7CisrCisrCSAgICBvYnN0YWNrX2ZyZWUgKCZkb250X3ByaW50X3N0 YXRtZW1fb2JzdGFjaywKKysJCQkgIGZyZWVfdG9fcHRyKTsKKysJICB9CisgCisgCSAgaWYgKGxh c3Rfc2V0X3JlY3Vyc2UgIT0gcmVjdXJzZSkKKyAJICAgIHsKK0BAIC01NTUsNyArNTY1LDYgQEAg Y3BfcHJpbnRfc3RhdGljX2ZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZQorICAgICAgIGFkZHIgPSB2 YWx1ZV9hZGRyZXNzICh2YWwpOworICAgICAgIG9ic3RhY2tfZ3JvdyAoJmRvbnRfcHJpbnRfc3Rh dG1lbV9vYnN0YWNrLCAoY2hhciAqKSAmYWRkciwKKyAJCSAgICBzaXplb2YgKENPUkVfQUREUikp OworLQorICAgICAgIENIRUNLX1RZUEVERUYgKHR5cGUpOworICAgICAgIGNwX3ByaW50X3ZhbHVl X2ZpZWxkcyAodHlwZSwgdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHZhbCksCisgCQkJICAgICB2YWx1 ZV9jb250ZW50c19hbGwgKHZhbCksCitJbmRleDogZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5j cC9wcjkxNjcuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ByOTE2 Ny5jYwkyMDEwLTA2LTI4IDIwOjIyOjE2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzNiBA QAorKyNpbmNsdWRlIDxpb3N0cmVhbT4KKysKKyt0ZW1wbGF0ZTx0eXBlbmFtZSBEQVRBPgorK3N0 cnVjdCBBVEIKKyt7CisrICAgIGludCBkYXRhOworKyAgICBBVEIoKSA6IGRhdGEoMCkge30KKyt9 OworKworKworK3RlbXBsYXRlPHR5cGVuYW1lIERBVEEsCisrCSB0eXBlbmFtZSBEZXJpdmVkVHlw ZSA+CisrY2xhc3MgQSA6IHB1YmxpYyBBVEI8REFUQT4KKyt7CisrcHVibGljOgorKyAgICBzdGF0 aWMgRGVyaXZlZFR5cGUgY29uc3QgREVGQVVMVF9JTlNUQU5DRTsKKyt9OworKworK3RlbXBsYXRl PHR5cGVuYW1lIERBVEEsIHR5cGVuYW1lIERlcml2ZWRUeXBlPgorK2NvbnN0IERlcml2ZWRUeXBl IEE8REFUQSwgRGVyaXZlZFR5cGU+OjpERUZBVUxUX0lOU1RBTkNFOworKworK2NsYXNzIEIgOiBw dWJsaWMgQTxpbnQsIEI+CisreworKyAgICAKKyt9OworKworK2ludCBtYWluKCkKKyt7CisrICAg IEIgYjsKKysgICAgLy8gSWYgdGhpcyBpZi1ibG9jayBpcyByZW1vdmVkIHRoZW4gR0RCIHNoYWxs CisrICAgIC8vIG5vdCBpbmZpbml0ZWx5IHJlY3Vyc2Ugd2hlbiB0cnlpbmcgdG8gcHJpbnQgYi4K KysKKysgICAgcmV0dXJuIDA7CQkvLyBtYXJrZXIKKyt9CisrCisrCitJbmRleDogZ2RiLTcuMS9n ZGIvdGVzdHN1aXRlL2dkYi5jcC9wcjkxNjcuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMS9nZGIvdGVz dHN1aXRlL2dkYi5jcC9wcjkxNjcuZXhwCTIwMTAtMDYtMjggMjA6MjI6MTYuMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDMxIEBACisrI0NvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytzZXQg dGVzdGZpbGUgcHI5MTY3Cisrc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uY2MKKytpZiBbcHJlcGFy ZV9mb3JfdGVzdGluZyAkdGVzdGZpbGUuZXhwICR0ZXN0ZmlsZSAkc3JjZmlsZSB7ZGVidWcgYysr fV0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisraWYgIVtydW50b19tYWluXSB0aGVuIHsKKysg ICAgZmFpbCAiQ2FuJ3QgcnVuIHRvIG1haW4iCisrICAgIHJldHVybgorK30KKysKKytnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAibWFya2VyIl0KKytnZGJfY29udGludWVfdG9f YnJlYWtwb2ludCAibWFya2VyIgorKworK2dkYl90ZXN0ICJwIGIiICJ7PEE8aW50LCBCPj4gPSB7 PEFUQjxpbnQ+PiA9IHtkYXRhID0gMH0sIHN0YXRpYyBERUZBVUxUX0lOU1RBTkNFID0gPG9wdGlt aXplZCBvdXQ+fSwgPE5vIGRhdGEgZmllbGRzPn0iCisrCgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NjA2 MTg1LW9ic3RhY2stM29mNS5wYXRjaCBiL2dkYi1iejYwNjE4NS1vYnN0YWNrLTNvZjUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA5MmMwMAotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1iejYwNjE4NS1vYnN0YWNrLTNvZjUucGF0Y2gKQEAgLTAsMCArMSw4NSBAQAor Y29tbWl0IDQwN2NiMTkyZGNhYzI2MDJhZWJhYTdlMjYyNDE5YWRiNTgwZWNjYTYKK0F1dGhvcjog Y21vbGxlciA8Y21vbGxlcj4KK0RhdGU6ICAgVGh1IEFwciAyMiAyMDoxMjowNiAyMDEwICswMDAw CisKKyAgICAqIGNwLXZhbHByaW50LmMgKGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyk6IFJlcGxhY2Vk IG9ic3RhY2tfYmFzZSgpCisgICAgbWV0aG9kIG9mIHBvcHBpbmcgcmVjdXJzaW9uLWRldGVjdGlv biBzdGFjayB3aXRoIGEgbWV0aG9kIGJhc2VkIG9uCisgICAgb2JzdGFja19vYmplY3Rfc2l6ZSgp LiAgKFNpbWlsYXIgdG8gdGhlIFBSOTE2NyBwYXRjaCBiZWxvdywgYnV0IGZvcgorICAgIHRoZSBz dGF0aWMgYXJyYXkgb2JzdGFjayByYXRoZXIgdGhhbiB0aGUgc3RhdGljIG1lbWJlciBvYnN0YWNr LikKKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMgLTEsMyAr MSwxMCBAQAorKzIwMTAtMDQtMjIgIENocmlzIE1vbGxlciAgPGNtb2xsZXJAcmVkaGF0LmNvbT4K KysKKysJKiBjcC12YWxwcmludC5jIChjcF9wcmludF92YWx1ZV9maWVsZHMpOiBSZXBsYWNlZCBv YnN0YWNrX2Jhc2UoKQorKyAgICAgICAgbWV0aG9kIG9mIHBvcHBpbmcgcmVjdXJzaW9uLWRldGVj dGlvbiBzdGFjayB3aXRoIGEgbWV0aG9kIGJhc2VkIG9uCisrICAgICAgICBvYnN0YWNrX29iamVj dF9zaXplKCkuICAoU2ltaWxhciB0byB0aGUgUFI5MTY3IHBhdGNoIGJlbG93LCBidXQgZm9yCisr CXRoZSBzdGF0aWMgYXJyYXkgb2JzdGFjayByYXRoZXIgdGhhbiB0aGUgc3RhdGljIG1lbWJlciBv YnN0YWNrLikKKysKKyAyMDEwLTA0LTIyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+ CisgCisgCSogYW1kNjQtbGludXgtbmF0LmMgKGFtZDY0X2xpbnV4X2dyZWdzZXQ2NF9yZWdfb2Zm c2V0KTogUmVtb3ZlZC4KKy0tLSBhL2dkYi9jcC12YWxwcmludC5jCisrKysgYi9nZGIvY3AtdmFs cHJpbnQuYworQEAgLTE4NiwxOCArMTg2LDE4IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3Ry dWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB0eXBlICpyZWFsX3R5cGUsCisgICAgIGZwcmludGZfZmls dGVyZWQgKHN0cmVhbSwgIjxObyBkYXRhIGZpZWxkcz4iKTsKKyAgIGVsc2UKKyAgICAgeworLSAg ICAgIGludCBvYnN0YWNrX2luaXRpYWxfc2l6ZSA9IDA7CistICAgICAgdm9pZCAqc3RhdF9hcnJh eV9vYnN0YWNrX3RvcCA9IE5VTEw7CisrICAgICAgaW50IHN0YXRtZW1fb2JzdGFja19pbml0aWFs X3NpemUgPSAwOworKyAgICAgIGludCBzdGF0X2FycmF5X29ic3RhY2tfaW5pdGlhbF9zaXplID0g MDsKKyAgICAgICAKKyAgICAgICBpZiAoZG9udF9wcmludF9zdGF0bWVtID09IDApCisgCXsKKy0J ICBvYnN0YWNrX2luaXRpYWxfc2l6ZSA9CisrCSAgc3RhdG1lbV9vYnN0YWNrX2luaXRpYWxfc2l6 ZSA9CisgCSAgICBvYnN0YWNrX29iamVjdF9zaXplICgmZG9udF9wcmludF9zdGF0bWVtX29ic3Rh Y2spOworIAorIAkgIGlmIChsYXN0X3NldF9yZWN1cnNlICE9IHJlY3Vyc2UpCisgCSAgICB7Cist CSAgICAgIHN0YXRfYXJyYXlfb2JzdGFja190b3AKKy0JCT0gb2JzdGFja19uZXh0X2ZyZWUgKCZk b250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjayk7CisrCSAgICAgIHN0YXRfYXJyYXlfb2JzdGFj a19pbml0aWFsX3NpemUgPQorKwkJb2JzdGFja19vYmplY3Rfc2l6ZSAoJmRvbnRfcHJpbnRfc3Rh dF9hcnJheV9vYnN0YWNrKTsKKyAJICAgICAgbGFzdF9zZXRfcmVjdXJzZSA9IHJlY3Vyc2U7Cisg CSAgICB9CisgCX0KK0BAIC0zMjMsMTIgKzMyMywxMiBAQCBjcF9wcmludF92YWx1ZV9maWVsZHMg KHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlLAorIAkgIGludCBvYnN0 YWNrX2ZpbmFsX3NpemUgPQorICAgICAgICAgICAgb2JzdGFja19vYmplY3Rfc2l6ZSAoJmRvbnRf cHJpbnRfc3RhdG1lbV9vYnN0YWNrKTsKKyAKKy0JICBpZiAob2JzdGFja19maW5hbF9zaXplID4g b2JzdGFja19pbml0aWFsX3NpemUpIHsKKysJICBpZiAob2JzdGFja19maW5hbF9zaXplID4gc3Rh dG1lbV9vYnN0YWNrX2luaXRpYWxfc2l6ZSkgeworIAkgICAgLyogSW4gZWZmZWN0LCBhIHBvcCBv ZiB0aGUgcHJpbnRlZC1zdGF0aWNzIHN0YWNrLiAgKi8KKyAKKyAJICAgIHZvaWQgKmZyZWVfdG9f cHRyID0KKyAJICAgICAgb2JzdGFja19uZXh0X2ZyZWUgKCZkb250X3ByaW50X3N0YXRtZW1fb2Jz dGFjaykgLQorLQkgICAgICAob2JzdGFja19maW5hbF9zaXplIC0gb2JzdGFja19pbml0aWFsX3Np emUpOworKwkgICAgICAob2JzdGFja19maW5hbF9zaXplIC0gc3RhdG1lbV9vYnN0YWNrX2luaXRp YWxfc2l6ZSk7CisgCisgCSAgICBvYnN0YWNrX2ZyZWUgKCZkb250X3ByaW50X3N0YXRtZW1fb2Jz dGFjaywKKyAJCQkgIGZyZWVfdG9fcHRyKTsKK0BAIC0zMzYsOSArMzM2LDE4IEBAIGNwX3ByaW50 X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB0eXBlICpyZWFsX3R5cGUs CisgCisgCSAgaWYgKGxhc3Rfc2V0X3JlY3Vyc2UgIT0gcmVjdXJzZSkKKyAJICAgIHsKKy0JICAg ICAgaWYgKG9ic3RhY2tfb2JqZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFj aykgPiAwKSAKKy0JCW9ic3RhY2tfZnJlZSAoJmRvbnRfcHJpbnRfc3RhdF9hcnJheV9vYnN0YWNr LAorLQkJCSAgICAgIHN0YXRfYXJyYXlfb2JzdGFja190b3ApOworKwkgICAgICBpbnQgb2JzdGFj a19maW5hbF9zaXplID0KKysJCW9ic3RhY2tfb2JqZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRf YXJyYXlfb2JzdGFjayk7CisrCSAgICAgIAorKwkgICAgICBpZiAob2JzdGFja19maW5hbF9zaXpl ID4gc3RhdF9hcnJheV9vYnN0YWNrX2luaXRpYWxfc2l6ZSkKKysJCXsKKysJCSAgdm9pZCAqZnJl ZV90b19wdHIgPQorKwkJICAgIG9ic3RhY2tfbmV4dF9mcmVlICgmZG9udF9wcmludF9zdGF0X2Fy cmF5X29ic3RhY2spIC0KKysJCSAgICAob2JzdGFja19maW5hbF9zaXplIC0gc3RhdF9hcnJheV9v YnN0YWNrX2luaXRpYWxfc2l6ZSk7CisrCisrCQkgIG9ic3RhY2tfZnJlZSAoJmRvbnRfcHJpbnRf c3RhdF9hcnJheV9vYnN0YWNrLAorKwkJCQlmcmVlX3RvX3B0cik7CisrCQl9CisgCSAgICAgIGxh c3Rfc2V0X3JlY3Vyc2UgPSAtMTsKKyAJICAgIH0KKyAJfQoKZGlmZiAtLWdpdCBhL2dkYi1iejYw NjE4NS1vYnN0YWNrLTRvZjUucGF0Y2ggYi9nZGItYno2MDYxODUtb2JzdGFjay00b2Y1LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNTNhMmIKLS0tIC9kZXYvbnVs bAorKysgYi9nZGItYno2MDYxODUtb2JzdGFjay00b2Y1LnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAK K2NvbW1pdCA3NDQ3MzU1NTBkNGE0ZmQ2ZDRiZTQwNzc2MDY5ZDc5OWRjYTVlZTM5CitBdXRob3I6 IFVscmljaCBXZWlnYW5kIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgorRGF0ZTogICBNb24gSnVuIDE0 IDE2OjA5OjU1IDIwMTAgKzAwMDAKKworICAgIAkqIGNwLXZhbHByaW50LmMgKGNwX3ByaW50X3N0 YXRpY19maWVsZCk6IE1lbWJlcnMgb2YKKyAgICAJZG9udF9wcmludF9zdGF0X2FycmF5X29ic3Rh Y2sgYXJlIG9mIHR5cGUgInN0cnVjdCB0eXBlICoiLgorICAgIAkoX2luaXRpYWxpemVfY3BfdmFs cHJpbnQpOiBMaWtld2lzZS4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5n ZUxvZworIyMgLTEsNSArMSwxMSBAQAorIDIwMTAtMDYtMTQgIFVscmljaCBXZWlnYW5kICA8dXdl aWdhbmRAZGUuaWJtLmNvbT4KKyAKKysJKiBjcC12YWxwcmludC5jIChjcF9wcmludF9zdGF0aWNf ZmllbGQpOiBNZW1iZXJzIG9mCisrCWRvbnRfcHJpbnRfc3RhdF9hcnJheV9vYnN0YWNrIGFyZSBv ZiB0eXBlICJzdHJ1Y3QgdHlwZSAqIi4KKysJKF9pbml0aWFsaXplX2NwX3ZhbHByaW50KTogTGlr ZXdpc2UuCisrCisrMjAxMC0wNi0xNCAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0u Y29tPgorKworIAkqIGZyYW1lLmMgKGZyYW1lX3JlZ2lzdGVyX3Vud2luZCk6IERvIG5vdCBhY2Nl c3MgY29udGVudHMKKyAJb2YgIm9wdGltaXplZCBvdXQiIHVud291bmQgcmVnaXN0ZXIgdmFsdWUu CisgCistLS0gYS9nZGIvY3AtdmFscHJpbnQuYworKysrIGIvZ2RiL2NwLXZhbHByaW50LmMKK0BA IC02MTUsNyArNjE1LDcgQEAgY3BfcHJpbnRfc3RhdGljX2ZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlw ZSwKKyAgICAgICBmaXJzdF9kb250X3ByaW50CisgCT0gKHN0cnVjdCB0eXBlICoqKSBvYnN0YWNr X2Jhc2UgKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjayk7CisgICAgICAgaSA9IG9ic3Rh Y2tfb2JqZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjaykKKy0JLyBzaXpl b2YgKENPUkVfQUREUik7CisrCS8gc2l6ZW9mIChzdHJ1Y3QgdHlwZSAqKTsKKyAKKyAgICAgICB3 aGlsZSAoLS1pID49IDApCisgCXsKK0BAIC03NjQsNyArNzY0LDcgQEAgU2hvdyBwcmludGluZyBv ZiBvYmplY3QncyBkZXJpdmVkIHR5cGUgYmFzZWQgb24gdnRhYmxlIGluZm8uIiksIE5VTEwsCisg CQkJICAgc2hvd19vYmplY3RwcmludCwKKyAJCQkgICAmc2V0cHJpbnRsaXN0LCAmc2hvd3ByaW50 bGlzdCk7CisgCistICBvYnN0YWNrX2JlZ2luICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3Rh Y2ssIDMyICogc2l6ZW9mIChDT1JFX0FERFIpKTsKKysgIG9ic3RhY2tfYmVnaW4gKCZkb250X3By aW50X3N0YXRfYXJyYXlfb2JzdGFjaywgMzIgKiBzaXplb2YgKHN0cnVjdCB0eXBlICopKTsKKyAg IG9ic3RhY2tfYmVnaW4gKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjaywgMzIgKiBzaXplb2Yg KENPUkVfQUREUikpOworICAgb2JzdGFja19iZWdpbiAoJmRvbnRfcHJpbnRfdmJfb2JzdGFjaywg MzIgKiBzaXplb2YgKHN0cnVjdCB0eXBlICopKTsKKyB9CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NjA2 MTg1LW9ic3RhY2stNW9mNS5wYXRjaCBiL2dkYi1iejYwNjE4NS1vYnN0YWNrLTVvZjUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE3MWU1NgotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1iejYwNjE4NS1vYnN0YWNrLTVvZjUucGF0Y2gKQEAgLTAsMCArMSwyMDIgQEAK K2NvbW1pdCA0N2M4Yzc2NGE5YmU2ZDAyM2VjYTQ1MDMzNmU2ZDlkZTE2OTcwZmMwCitBdXRob3I6 IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorRGF0ZTogICBNb24g SnVuIDI4IDE2OjU5OjQzIDIwMTAgKzAwMDAKKworICAgIGdkYi8KKyAgICAJKiBjcC12YWxwcmlu dC5jIChjcF9wcmludF92YWx1ZV9maWVsZHMpIDxyZWN1cnNlID09IDA+OiBDYWxsCisgICAgCW9i c3RhY2tfYmVnaW4gYWZ0ZXIgZWFjaCBvYnN0YWNrX2ZyZWUuCisgICAgCisgICAgZ2RiL3Rlc3Rz dWl0ZS8KKyAgICAJKiBnZGIuY3Avc3RhdGljLXByaW50LXF1aXQuZXhwLCBnZGIuY3Avc3RhdGlj LXByaW50LXF1aXQuY2M6IE5ldy4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0No YW5nZUxvZworIyMgLTEsMyArMSw4IEBACisrMjAxMC0wNi0yOCAgSmFuIEtyYXRvY2h2aWwgIDxq YW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorKworKwkqIGNwLXZhbHByaW50LmMgKGNwX3ByaW50 X3ZhbHVlX2ZpZWxkcykgPHJlY3Vyc2UgPT0gMD46IENhbGwKKysJb2JzdGFja19iZWdpbiBhZnRl ciBlYWNoIG9ic3RhY2tfZnJlZS4KKysKKyAyMDEwLTA2LTI3ICBEb3VnIEV2YW5zICA8ZGplQGdv b2dsZS5jb20+CisgCisgCSogdmFsdWUuYyAodmFsdWVfc3RhdGljX2ZpZWxkKTogVXNlIGBzd2l0 Y2gnIGluc3RlYWQgb2YgYGlmJy4KKyMjIC0xMiwyNyArMTcsMjcgQEAKKyAKKyAyMDEwLTA2LTI1 ICBQYXVsIEhpbGZpbmdlciAgPGhpbGZpbmdlckBhZGFjb3JlLmNvbT4KKyAKKy0gICAgICAgICog ZGVmcy5oIChtYWtlX2NvbW1hbmRfc3RhdHNfY2xlYW51cCk6IERlY2xhcmUuCistICAgICAgICAo c2V0X2Rpc3BsYXlfdGltZSk6IERlY2xhcmUuCistICAgICAgICAoc2V0X2Rpc3BsYXlfc3BhY2Up OiBEZWNsYXJlLgorLSAgICAgICAgKiBldmVudC10b3AuYyAoY29tbWFuZF9oYW5kbGVyKTogVXNl IG1ha2VfY29tbWFuZF9zdGF0c19jbGVhbnVwLgorLSAgICAgICAgKiBtYWluLmMgKGRpc3BsYXlf dGltZSwgZGlzcGxheV9zcGFjZSk6IE1vdmUgZGVmaW5pdGlvbnMgdG8gdXRpbHMuYy4KKy0gICAg ICAgIChjYXB0dXJlZF9tYWluKTogVXNlIG1ha2VfY29tbWFuZF9zdGF0c19jbGVhbnVwIHRvIGdl dCBzdGFydC11cAorLSAgICAgICAgc3RhdGlzdGljcy4KKy0gICAgICAgIFVzZSBzZXRfZGlzcGxh eV90aW1lIGFuZCBzZXRfZGlzcGxheV9zcGFjZSBmb3IgcHJvY2Vzc2luZyBPUFRfU1RBVElTVElD UworLSAgICAgICAgY2FzZS4KKy0gICAgICAgICogbWFpbnQuYyAobWFpbnRlbmFuY2VfdGltZV9k aXNwbGF5KTogVXNlIHNldF9kaXNwbGF5X3RpbWUuCistICAgICAgICAobWFpbnRlbmFuY2Vfc3Bh Y2VfZGlzcGxheSk6IFVzZSBzZXRfZGlzcGxheV9zcGFjZS4KKy0gICAgICAgICogdG9wLmMgKGV4 ZWN1dGVfY29tbWFuZCk6IFJlbW92ZSBvYnNvbGV0ZSAnbWFpbnQgdGltZScgY29kZS4KKy0gICAg ICAgIChjb21tYW5kX2xvb3ApOiBVc2UgbWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXAuCistICAg ICAgICAqIHV0aWxzLmMgKHN0cnVjdCBjbWRfc3RhdHMpOiBTdHJ1Y3R1cmUgZm9yIHN0b3Jpbmcg aW5pdGlhbCB0aW1lCistICAgICAgICBhbmQgc3BhY2UgdXNhZ2UuCistICAgICAgICAoZGlzcGxh eV90aW1lLCBkaXNwbGF5X3NwYWNlKTogTW92ZSBkZWZpbml0aW9ucyBoZXJlIGZyb20gdXRpbHMu Yy4KKy0gICAgICAgIChzZXRfZGlzcGxheV90aW1lKTogTmV3IGZ1bmN0aW9uLgorLSAgICAgICAg KHNldF9kaXNwbGF5X3NwYWNlKTogTmV3IGZ1bmN0aW9uLgorLSAgICAgICAgKG1ha2VfY29tbWFu ZF9zdGF0c19jbGVhbnVwKTogTmV3IGZ1bmN0aW9uLgorLSAgICAgICAgKHJlcG9ydF9jb21tYW5k X3N0YXRzKTogTmV3IGF1eGlsaWFyeSBmdW5jdGlvbiBmb3IKKy0gICAgICAgIG1ha2VfY29tbWFu ZF9zdGF0c19jbGVhbnVwLgorKwkqIGRlZnMuaCAobWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXAp OiBEZWNsYXJlLgorKwkoc2V0X2Rpc3BsYXlfdGltZSk6IERlY2xhcmUuCisrCShzZXRfZGlzcGxh eV9zcGFjZSk6IERlY2xhcmUuCisrCSogZXZlbnQtdG9wLmMgKGNvbW1hbmRfaGFuZGxlcik6IFVz ZSBtYWtlX2NvbW1hbmRfc3RhdHNfY2xlYW51cC4KKysJKiBtYWluLmMgKGRpc3BsYXlfdGltZSwg ZGlzcGxheV9zcGFjZSk6IE1vdmUgZGVmaW5pdGlvbnMgdG8gdXRpbHMuYy4KKysJKGNhcHR1cmVk X21haW4pOiBVc2UgbWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXAgdG8gZ2V0IHN0YXJ0LXVwCisr CXN0YXRpc3RpY3MuCisrCVVzZSBzZXRfZGlzcGxheV90aW1lIGFuZCBzZXRfZGlzcGxheV9zcGFj ZSBmb3IgcHJvY2Vzc2luZyBPUFRfU1RBVElTVElDUworKwljYXNlLgorKwkqIG1haW50LmMgKG1h aW50ZW5hbmNlX3RpbWVfZGlzcGxheSk6IFVzZSBzZXRfZGlzcGxheV90aW1lLgorKwkobWFpbnRl bmFuY2Vfc3BhY2VfZGlzcGxheSk6IFVzZSBzZXRfZGlzcGxheV9zcGFjZS4KKysJKiB0b3AuYyAo ZXhlY3V0ZV9jb21tYW5kKTogUmVtb3ZlIG9ic29sZXRlICdtYWludCB0aW1lJyBjb2RlLgorKwko Y29tbWFuZF9sb29wKTogVXNlIG1ha2VfY29tbWFuZF9zdGF0c19jbGVhbnVwLgorKwkqIHV0aWxz LmMgKHN0cnVjdCBjbWRfc3RhdHMpOiBTdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgaW5pdGlhbCB0aW1l CisrCWFuZCBzcGFjZSB1c2FnZS4KKysJKGRpc3BsYXlfdGltZSwgZGlzcGxheV9zcGFjZSk6IE1v dmUgZGVmaW5pdGlvbnMgaGVyZSBmcm9tIHV0aWxzLmMuCisrCShzZXRfZGlzcGxheV90aW1lKTog TmV3IGZ1bmN0aW9uLgorKwkoc2V0X2Rpc3BsYXlfc3BhY2UpOiBOZXcgZnVuY3Rpb24uCisrCSht YWtlX2NvbW1hbmRfc3RhdHNfY2xlYW51cCk6IE5ldyBmdW5jdGlvbi4KKysJKHJlcG9ydF9jb21t YW5kX3N0YXRzKTogTmV3IGF1eGlsaWFyeSBmdW5jdGlvbiBmb3IKKysJbWFrZV9jb21tYW5kX3N0 YXRzX2NsZWFudXAuCisgCisgMjAxMC0wNi0yNSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBk ZS5pYm0uY29tPgorIAorIyMgLTYxMDMsNyArNjEwOCw3IEBACisgCisgCVBSIGdkYi85MDY3Cisg CSogY3AtdmFscHJpbnQuYyAoY3BfcHJpbnRfdmFsdWVfZmllbGRzKSBGaXggdXNlIG9mIG9ic3Rh Y2tzLgorLQljcF9wcmludF9zdGF0aWNfZmllbGQpICBGaXggdXNlIG9mIG9ic3RhY2tzLgorKwko Y3BfcHJpbnRfc3RhdGljX2ZpZWxkKSAgRml4IHVzZSBvZiBvYnN0YWNrcy4KKyAKKyAyMDEwLTAy LTA4ICBQZWRybyBBbHZlcyAgPHBlZHJvQGNvZGVzb3VyY2VyeS5jb20+CisgCistLS0gYS9nZGIv Y3AtdmFscHJpbnQuYworKysrIGIvZ2RiL2NwLXZhbHByaW50LmMKK0BAIC0xNjQsMTAgKzE2NCwx OSBAQCBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlw ZSAqcmVhbF90eXBlLAorICAgCisgICBpZiAocmVjdXJzZSA9PSAwKQorICAgICB7CisrICAgICAg LyogQW55IG9iamVjdCBjYW4gYmUgbGVmdCBvbiBvYnN0YWNrcyBvbmx5IGR1cmluZyBhbiB1bmV4 cGVjdGVkIGVycm9yLiAgKi8KKysKKyAgICAgICBpZiAob2JzdGFja19vYmplY3Rfc2l6ZSAoJmRv bnRfcHJpbnRfc3RhdG1lbV9vYnN0YWNrKSA+IDApCistCW9ic3RhY2tfZnJlZSAoJmRvbnRfcHJp bnRfc3RhdG1lbV9vYnN0YWNrLCBOVUxMKTsKKysJeworKwkgIG9ic3RhY2tfZnJlZSAoJmRvbnRf cHJpbnRfc3RhdG1lbV9vYnN0YWNrLCBOVUxMKTsKKysJICBvYnN0YWNrX2JlZ2luICgmZG9udF9w cmludF9zdGF0bWVtX29ic3RhY2ssIDMyICogc2l6ZW9mIChDT1JFX0FERFIpKTsKKysJfQorICAg ICAgIGlmIChvYnN0YWNrX29iamVjdF9zaXplICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3Rh Y2spID4gMCkKKy0Jb2JzdGFja19mcmVlICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2ss IE5VTEwpOworKwl7CisrCSAgb2JzdGFja19mcmVlICgmZG9udF9wcmludF9zdGF0X2FycmF5X29i c3RhY2ssIE5VTEwpOworKwkgIG9ic3RhY2tfYmVnaW4gKCZkb250X3ByaW50X3N0YXRfYXJyYXlf b2JzdGFjaywKKysJCQkgMzIgKiBzaXplb2YgKHN0cnVjdCB0eXBlICopKTsKKysJfQorICAgICB9 CisgCisgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJ7Iik7CisjIyMgYS9nZGIvdGVzdHN1 aXRlL0NoYW5nZUxvZworIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIC0xLDMgKzEs NyBAQAorKzIwMTAtMDYtMjggIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KKysKKysJKiBnZGIuY3Avc3RhdGljLXByaW50LXF1aXQuZXhwLCBnZGIuY3Avc3RhdGlj LXByaW50LXF1aXQuY2M6IE5ldy4KKysKKyAyMDEwLTA2LTI4ICBEb3VnIEV2YW5zICA8ZGplQGdv b2dsZS5jb20+CisgCisgCSogZ2RiLmJhc2UvYnJlYWstaW50ZXJwLmV4cCAocmVhY2gpOiBSZWxh eCBleHBlY3RlZCBvdXRwdXQgYSBiaXQuCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5jcC9zdGF0aWMtcHJpbnQtcXVpdC5jYworQEAgLTAsMCArMSwzMiBAQAorKy8qIFRo aXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29w eXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworK2NsYXNzIEQKKysgIHsKKysgIHB1 YmxpYzoKKysgICAgaW50IGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb29vbmc7CisrICB9OworKworK2NsYXNzIEMKKysgIHsKKysgIHB1YmxpYzoKKysgICAgaW50 IGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmc7CisrICAg IHN0YXRpYyBEIGZpZWxkOworKyAgfTsKKysKKytEIEM6OmZpZWxkOworK0MgYzsKKy0tLSAvZGV2 L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3N0YXRpYy1wcmludC1xdWl0LmV4cAor QEAgLTAsMCArMSw1MCBAQAorKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9y CisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK2lmIHsgW3Nr aXBfY3BsdXNfdGVzdHNdIH0geyBjb250aW51ZSB9CisrCisrc2V0IHRlc3RmaWxlIHN0YXRpYy1w cmludC1xdWl0Cisrc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uY2MKKytzZXQgZXhlY3V0YWJsZSAk dGVzdGZpbGUubworK3NldCBvYmpmaWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRhYmxl fQorKworK2lmIHsgW2dkYl9jb21waWxlICRzcmNkaXIvJHN1YmRpci8kc3JjZmlsZSAkb2JqZmls ZSBvYmplY3Qge2RlYnVnIGMrK31dICE9ICIifSB7CisrICAgIHVudGVzdGVkICR7dGVzdGZpbGV9 LmV4cAorKyAgICByZXR1cm4gLTEKKyt9CisrCisrY2xlYW5fcmVzdGFydCAkZXhlY3V0YWJsZQor KworK2dkYl90ZXN0ICJzZXQgd2lkdGggODAiCisrZ2RiX3Rlc3QgInNldCBoZWlnaHQgMiIKKysK KytzZXQgdGVzdCAicHJpbnQgYyIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7Cisr ICAgIC1yZSAiID0gXHtsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v b29vb25nID0gMCwgc3RhdGljIGZpZWxkID0gXHtcclxuLS0tVHlwZSA8cmV0dXJuPiB0byBjb250 aW51ZSwgb3IgcSA8cmV0dXJuPiB0byBxdWl0LS0tJCIgeworKwlwYXNzICR0ZXN0CisrICAgIH0K KysgICAgLXJlICIgdG8gcXVpdC0tLSQiIHsKKysJZmFpbCAkdGVzdAorKwlyZXR1cm4gLTEKKysg ICAgfQorK30KKysKKytnZGJfdGVzdCAicSIgIi4qIgorKworKyMgTm93IHRoZSBvYnN0YWNrIGlz IHVuaW5pdGlhbGl6ZWQuICBFeGNlcmNpc2UgaXQuCisrCisrZ2RiX3Rlc3QgInNldCBwYWdpbmF0 aW9uIG9mZiIKKytnZGJfdGVzdCAicHJpbnQgYyIgIi4qIiAiZmlyc3QgcHJpbnQiCisrZ2RiX3Rl c3QgInByaW50IGMiICIuKiIgInNlY29uZCBwcmludCIKCmRpZmYgLS1naXQgYS9nZGItYno2MDY2 NjAtcHJpbnQtb2JqZWN0LW5vbnZpcnR1YWwucGF0Y2ggYi9nZGItYno2MDY2NjAtcHJpbnQtb2Jq ZWN0LW5vbnZpcnR1YWwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u OWI1MjAzOAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejYwNjY2MC1wcmludC1vYmplY3Qtbm9u dmlydHVhbC5wYXRjaApAQCAtMCwwICsxLDEwNiBAQAorY29tbWl0IGJiNjA0ZjllNzBkZTUxNWIx M2UyYTkzNWQ4YWQ5ZDJmYjAyOTA4NDkKK0F1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+CitEYXRlOiAgIE1vbiBKdW4gMjggMjA6MTI6NTIgMjAxMCArMDAw MAorCisgICAgZ2RiLworICAgIAlGaXggbW9kaWZpY2F0aW9uIG9mIGNwbHVzX3N0cnVjdF9kZWZh dWx0LgorICAgIAkqIGR3YXJmMnJlYWQuYyAoZHdhcmYyX2FkZF9tZW1iZXJfZm4pIDxubyBEV19B VF92dGFibGVfZWxlbV9sb2NhdGlvbj46CisgICAgCUNhbGwgQUxMT0NBVEVfQ1BMVVNfU1RSVUNU X1RZUEUuCis8cmVtb3ZlZD4KKyAgICAJKiBnZGJ0eXBlcy5jIChjcGx1c19zdHJ1Y3RfZGVmYXVs dCk6IE5ldyBlbXB0eSBpbml0aWFsaXplciwgY29tbWVudCBpdC4KKzwvcmVtb3ZlZD4KKyAgICAK KyAgICBnZGIvdGVzdHN1aXRlLworICAgIAkqIGdkYi5jcC92aXJ0YmFzZS5jYyAoY2xhc3MgUlRU SV9iYXNlLCBjbGFzcyBSVFRJX2RhdGEpCisgICAgCShtYWluKSA8cnR0aV9kYXRhPjogTmV3Lgor ICAgIAkqIGdkYi5jcC92aXJ0YmFzZS5leHAgKHByaW50IHJ0dGlfZGF0YSk6IE5ldy4KKworIyMj IGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMgLTEsMyArMSwxMCBAQAor KzIwMTAtMDYtMjggIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4K KysKKysJRml4IG1vZGlmaWNhdGlvbiBvZiBjcGx1c19zdHJ1Y3RfZGVmYXVsdC4KKysJKiBkd2Fy ZjJyZWFkLmMgKGR3YXJmMl9hZGRfbWVtYmVyX2ZuKSA8bm8gRFdfQVRfdnRhYmxlX2VsZW1fbG9j YXRpb24+OgorKwlDYWxsIEFMTE9DQVRFX0NQTFVTX1NUUlVDVF9UWVBFLgorKwkqIGdkYnR5cGVz LmMgKGNwbHVzX3N0cnVjdF9kZWZhdWx0KTogTmV3IGVtcHR5IGluaXRpYWxpemVyLCBjb21tZW50 IGl0LgorKworIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIyBiL2dkYi90ZXN0c3Vp dGUvQ2hhbmdlTG9nCisjIyAtMSw0ICsxLDEwIEBACisrMjAxMC0wNi0yOCAgSmFuIEtyYXRvY2h2 aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorKworKwkqIGdkYi5jcC92aXJ0YmFzZS5j YyAoY2xhc3MgUlRUSV9iYXNlLCBjbGFzcyBSVFRJX2RhdGEpCisrCShtYWluKSA8cnR0aV9kYXRh PjogTmV3LgorKwkqIGdkYi5jcC92aXJ0YmFzZS5leHAgKHByaW50IHJ0dGlfZGF0YSk6IE5ldy4K KysKKyMjIy0tLSBhL2dkYi9nZGJ0eXBlcy5jCisjIyMrKysgYi9nZGIvZ2RidHlwZXMuYworIyMj QEAgLTE3MzMsNyArMTczMyw4IEBAIGNoZWNrX3N0dWJfbWV0aG9kX2dyb3VwIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgaW50IG1ldGhvZF9pZCkKKyMjIyAgICAgfQorIyMjIH0KKyMjIyAKKyMjIy1jb25z dCBzdHJ1Y3QgY3BsdXNfc3RydWN0X3R5cGUgY3BsdXNfc3RydWN0X2RlZmF1bHQ7CisjIyMrLyog RW5zdXJlIGl0IGlzIGluIC5yb2RhdGEgKGlmIGF2YWlsYWJsZSkgYnkgd29ya2Fyb3VuZGluZyBH Q0MgUFIgNDQ2OTAuICAqLworIyMjK2NvbnN0IHN0cnVjdCBjcGx1c19zdHJ1Y3RfdHlwZSBjcGx1 c19zdHJ1Y3RfZGVmYXVsdCA9IHsgfTsKKyMjIyAKKyMjIyB2b2lkCisjIyMgYWxsb2NhdGVfY3Bs dXNfc3RydWN0X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlKQorSW5kZXg6IGdkYi03LjEvZ2RiL2R3 YXJmMnJlYWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEub3JpZy9nZGIvZHdhcmYycmVhZC5j CTIwMTAtMDYtMjkgMTg6MjY6NDcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvZHdh cmYycmVhZC5jCTIwMTAtMDYtMjkgMTg6Mzk6NDMuMDAwMDAwMDAwICswMjAwCitAQCAtNTQwNCw2 ICs1NDA0LDcgQEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZvIAorIAkg IGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKKyAJCSAgICAgXygiTWVtYmVyIGZ1bmN0 aW9uIFwiJXNcIiAob2Zmc2V0ICVkKSBpcyB2aXJ0dWFsIGJ1dCB0aGUgdnRhYmxlIG9mZnNldCBp cyBub3Qgc3BlY2lmaWVkIiksCisgCQkgICAgIGZpZWxkbmFtZSwgZGllLT5vZmZzZXQpOworKwkg IEFMTE9DQVRFX0NQTFVTX1NUUlVDVF9UWVBFICh0eXBlKTsKKyAJICBUWVBFX0NQTFVTX0RZTkFN SUMgKHR5cGUpID0gMTsKKyAJfQorICAgICB9CitJbmRleDogZ2RiLTcuMS9nZGIvdGVzdHN1aXRl L2dkYi5jcC92aXJ0YmFzZS5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi5jcC92aXJ0YmFzZS5jYwkyMDEwLTAyLTAzIDAwOjQwOjI4LjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmlydGJhc2UuY2MJMjAxMC0w Ni0yOSAxODozOTo0My4wMDAwMDAwMDAgKzAyMDAKK0BAIC03NCw4ICs3NCwxOSBAQCBwdWJsaWM6 CisgICB2aXJ0dWFsIHZvaWQgYigpIHt9CisgfTsKKyAKKytjbGFzcyBSVFRJX2Jhc2UKKyt7Cisr cHVibGljOgorKyAgdmlydHVhbCB+UlRUSV9iYXNlKCkge30KKyt9OworIAorLQorK2NsYXNzIFJU VElfZGF0YQorK3sKKytwdWJsaWM6CisrICBSVFRJX2Jhc2UgYmFzZTsKKysgIGludCBkYXRhOwor KyAgUlRUSV9kYXRhKCkgOiBkYXRhKDEpIHt9CisrfTsKKyAKKyBpbnQgbWFpbigpIHsKKyAgIHBo OjpEZXJpdmVkIHRzdDsKK0BAIC04NCw2ICs5NSw3IEBAIGludCBtYWluKCkgeworIAorICAgRSAq ZSA9IG5ldyBFOworICAgUkhCICpiID0gbmV3IFJIQygpOworKyAgUlRUSV9kYXRhIHJ0dGlfZGF0 YTsKKyAKKyAgIHJldHVybiAwOwkJCS8vIGJyZWFrcG9pbnQgMworIH0KK0luZGV4OiBnZGItNy4x L2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZpcnRiYXNlLmV4cAorPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjEub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5jcC92aXJ0YmFzZS5leHAJMjAxMC0wMi0wNCAyMjow NDozMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3Zp cnRiYXNlLmV4cAkyMDEwLTA2LTI5IDE4OjM5OjU2LjAwMDAwMDAwMCArMDIwMAorQEAgLTYwLDMg KzYwLDggQEAgZ2RiX3Rlc3QgInByaW50ICooRCAqKSBlIiAiID0gezxDPiA9IHt2IAorICMgaHR0 cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD01NjA3NDEKKyBnZGJfdGVz dCAic2V0IHByaW50IG9iamVjdCBvbiIgIiIKKyBnZGJfdGVzdCAicHJpbnQveCBiLT5tQSIgIiA9 IDB4YWFhYWFhYWEiCisrCisrIyBBIHJlZ3Jlc3Npb24gdGVzdCByZXBvcnRlZCB0byBSZWQgSGF0 IGJ1Z3ppbGxhLCBzZWU6CisrIyBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcu Y2dpP2lkPTYwNjY2MAorKyMgYHNldCBwcmludCBvYmplY3Qgb24nIGlzIGV4cGVjdGVkLgorK2dk Yl90ZXN0ICJwcmludCBydHRpX2RhdGEiICIgPSAuKiwgZGF0YSA9IDFcfSIKCmRpZmYgLS1naXQg YS9nZGItaW5mY2FsbC1zcC11bmRlcmZsb3cucGF0Y2ggYi9nZGItaW5mY2FsbC1zcC11bmRlcmZs b3cucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDYwMmE0ZgotLS0g L2Rldi9udWxsCisrKyBiL2dkYi1pbmZjYWxsLXNwLXVuZGVyZmxvdy5wYXRjaApAQCAtMCwwICsx LDgxIEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMi9tc2cw MDUxNS5odG1sCitTdWJqZWN0OiBbcGF0Y2hdIGluZmNhbGw6IFJlbW92ZSBnZGJfYXNzZXJ0ICgk c3Agb3ZlcmZsb3cpCisKK0hpLAorCitzZXQgJHNwPTAKK2NhbGwgc29tZXRoaW5nKCkKKy0+Cisu Li8uLi9nZGIvaW5mY2FsbC5jOjUyMTogaW50ZXJuYWwtZXJyb3I6IGNhbGxfZnVuY3Rpb25fYnlf aGFuZDogQXNzZXJ0aW9uCitgKGdkYmFyY2hfaW5uZXJfdGhhbiAoZ2RiYXJjaCwgMSwgMikgJiYg c3AgPD0gb2xkX3NwKSB8fCAoZ2RiYXJjaF9pbm5lcl90aGFuCisoZ2RiYXJjaCwgMiwgMSkgJiYg c3AgPj0gb2xkX3NwKScgZmFpbGVkLgorCithcyAkc3AgLSBmcmFtZSA9PSAweGZmZmZzbXRoIHdo aWNoIGlzIG5vdCBsb3dlciB0aGFuICRzcC4KKworSXQgbXVzdCBub3QgYmUgZ2RiX2Fzc2VydCgp LiAgSXQgY2FuIGJlIGFuIGVycm9yKCkgYnV0IEkgbGVmdCBpdCBqdXN0IHRvIGRvOgorCShnZGIp IHNldCAkc3A9MAorCShnZGIpIGNhbGwgZG91YmxlaXQgKDEpCisJQ2Fubm90IGFjY2VzcyBtZW1v cnkgYXQgYWRkcmVzcyAweGZmZmZmZmZmZmZmZmZmNzgKKwkoZ2RiKSBzZXQgJHNwPS0xCisJKGdk YikgY2FsbCBkb3VibGVpdCAoMSkKKwlDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4 ZmZmZmZmZmZmZmZmZmY2OAorCitVbmF3YXJlIGhvdyBpbmNvbnZlbmllbnQgaXMgYW4gaW50ZW50 aW9uYWwgY3Jhc2ggb2YgdGhlIHRlc3RjYXNlIG9uIHNvbWUKK2VtYmVkZGVkL25vbi1NTVUgc3lz dGVtcy4KK05vIHJlZ3Jlc3Npb25zIG9uIHt4ODZfNjQseDg2XzY0LW0zMixpNjg2fS1mZWRvcmEx Mi1saW51eC1nbnUuCisKKworVGhhbmtzLAorSmFuCisKKworZ2RiLworMjAxMC0wMi0xOSAgSmFu IEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBpbmZjYWxsLmMg KGNhbGxfZnVuY3Rpb25fYnlfaGFuZCk6IFJlbW92ZSBnZGJfYXNzZXJ0IG9uIHNwIGFuZCBvbGRf c3AuCisJTmV3IGNvbW1lbnQuCisKK2dkYi90ZXN0c3VpdGUvCisyMDEwLTAyLTE5ICBKYW4gS3Jh dG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIGdkYi5iYXNlL2NhbGxm dW5jcy5leHA6IE5ldyB0ZXN0cyBmb3IgJHNwdmFsIDAgYW5kIC0xLiAgUmVtb3ZlIHJldHVybi4K KworLS0tIGEvZ2RiL2luZmNhbGwuYworKysrIGIvZ2RiL2luZmNhbGwuYworQEAgLTUxOCwxMCAr NTE4LDkgQEAgY2FsbF9mdW5jdGlvbl9ieV9oYW5kIChzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLCBp bnQgbmFyZ3MsIHN0cnVjdCB2YWx1ZSAqKmFyZ3MpCisgCSAgICAgIC8qIFN0YWNrIGdyb3dzIHVw LiAgKi8KKyAJICAgICAgc3AgPSBnZGJhcmNoX2ZyYW1lX2FsaWduIChnZGJhcmNoLCBvbGRfc3Ag KyAxKTsKKyAJICB9CistCWdkYl9hc3NlcnQgKChnZGJhcmNoX2lubmVyX3RoYW4gKGdkYmFyY2gs IDEsIDIpCistCQkgICAgJiYgc3AgPD0gb2xkX3NwKQorLQkJICAgIHx8IChnZGJhcmNoX2lubmVy X3RoYW4gKGdkYmFyY2gsIDIsIDEpCistCQkgICAgICAgJiYgc3AgPj0gb2xkX3NwKSk7CisrCS8q IFNQIG1heSBoYXZlIG92ZXJmbG93biBhZGRyZXNzIHplcm8gaGVyZSBmcm9tIE9MRF9TUC4gIE1l bW9yeSBhY2Nlc3MKKysJICAgZnVuY3Rpb25zIHdpbGwgcHJvYmFibHkgZmFpbCBpbiBzdWNoIGNh c2UgYnV0IHRoYXQgaXMgYSB0YXJnZXQncworKwkgICBwcm9ibGVtLiAgKi8KKyAgICAgICB9Cisg ICAgIGVsc2UKKyAgICAgICAvKiBGSVhNRTogY2FnbmV5LzIwMDItMDktMTg6IEhleSwgeW91IGxv b3NlIQorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jYWxsZnVuY3MuZXhwCisrKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NhbGxmdW5jcy5leHAKK0BAIC00NjksNSArNDY5LDE4IEBA IGlmIHskb2xkX3JlZ19jb250ZW50ID09ICRuZXdfcmVnX2NvbnRlbnR9IHRoZW4geworICAgICBm YWlsICJuZXN0ZWQgY2FsbCBkdW1taWVzIHByZXNlcnZlIHJlZ2lzdGVyIGNvbnRlbnRzIgorIH0K KyAKKy1yZXR1cm4gMAorKyMgR0RCIHNob3VsZCBub3QgY3Jhc2ggYnkgaW50ZXJuYWwgZXJyb3Ig b24gJHNwIG92ZXJmbG93IGR1cmluZyB0aGUgaW5mZXJpb3IKKysjIGNhbGwuICBJdCBpcyBPSyBp dCB3aWxsIHN0b3Agb24gc29tZTogQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweCRo ZXguCisgCisrZm9yZWFjaCBzcHZhbCB7MCAtMX0geworKyAgICBzZXQgb2xkX2xkcHJlZml4ICRw Zl9wcmVmaXgKKysgICAgbGFwcGVuZCBwZl9wcmVmaXggInNwPSRzcHZhbDoiCisrCisrICAgIGdk Yl90ZXN0IHtzZXQgJG9sZF9zcCA9ICRzcH0KKysgICAgZ2RiX3Rlc3QgInNldCBcJHNwID0gJHNw dmFsIgorKworKyAgICBnZGJfdGVzdCAiY2FsbCBkb3VibGVpdCAoMSkiCisrCisrICAgIGdkYl90 ZXN0IHtzZXQgJHNwID0gJG9sZF9zcH0KKysgICAgc2V0IHBmX3ByZWZpeCAkb2xkX2xkcHJlZml4 CisrfQorCgpkaWZmIC0tZ2l0IGEvZ2RiLW1vcmlidW5kLXV0cmFjZS13b3JrYXJvdW5kLnBhdGNo IGIvZ2RiLW1vcmlidW5kLXV0cmFjZS13b3JrYXJvdW5kLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjZiNTBhOGUKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItbW9yaWJ1 bmQtdXRyYWNlLXdvcmthcm91bmQucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAoraHR0cHM6Ly9idWd6 aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD01OTA2MjMKK2h0dHA6Ly9zb3VyY2VzLnJl ZGhhdC5jb20vYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTExNTkzCisKK0J1ZyBpbiBGU0YgR0RC IGV4cGxvaXRlZCBieSB0aGUgcHRyYWNlLW9uLXV0cmFjZSBpbnRlcmFjdGlvbi4KKworLS0tIGEv Z2RiL2JyZWFrcG9pbnQuYworKysrIGIvZ2RiL2JyZWFrcG9pbnQuYworQEAgLTkwODQsNiArOTA4 NCw4IEBAIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCisg CQkgdHJhcHMgd2UgY2FuIG5vIGxvbmdlciBleHBsYWluLiAgKi8KKyAKKyAJICAgICAgb2xkX2xv Yy0+ZXZlbnRzX3RpbGxfcmV0aXJlbWVudCA9IDMgKiAodGhyZWFkX2NvdW50ICgpICsgMSk7Cisr CSAgICAgIC8qIFJlZCBIYXQgQnVnIDU5MDYyMy4gICovCisrCSAgICAgIG9sZF9sb2MtPmV2ZW50 c190aWxsX3JldGlyZW1lbnQgKj0gMTA7CisgCSAgICAgIG9sZF9sb2MtPm93bmVyID0gTlVMTDsK KyAKKyAJICAgICAgVkVDX3NhZmVfcHVzaCAoYnBfbG9jYXRpb25fcCwgbW9yaWJ1bmRfbG9jYXRp b25zLCBvbGRfbG9jKTsKCmRpZmYgLS1naXQgYS9nZGItcGllLTFvZjYtcmVwcmVsaW5rZWQtYmlu LnBhdGNoIGIvZ2RiLXBpZS0xb2Y2LXJlcHJlbGlua2VkLWJpbi5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzdiYzc3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXBp ZS0xb2Y2LXJlcHJlbGlua2VkLWJpbi5wYXRjaApAQCAtMCwwICsxLDQ0MyBAQAoraHR0cDovL3Nv dXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDMvbXNnMDEwMDguaHRtbAorU3ViamVj dDogW3BhdGNoIDEvNl06IFBJRTogQXR0YWNoIGJpbmFyeSBldmVuIGFmdGVyIHJlLXByZWxpbmtl ZCB1bmRlcm5lYXRoCisKK0hpLAorCit0aGVyZSBpcyBhIHJlZ3Jlc3Npb24gKGFnYWluc3QgcHJl dmlvdXMgdW5yZWxlYXNlZCBjb21taXRzKSBieToKKwlSZTogUkZDOiBWZXJpZnkgQVRfRU5UUlkg YmVmb3JlIHVzaW5nIGl0CisJaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIw MTAtMDMvbXNnMDAzOTUuaHRtbAorCitmb3IgbG9hZGluZyBQSUUgZXhlY3V0YWJsZXMgd2hpY2gg aGF2ZSBjaGFuZ2VkIG9uIHRoZSBkaXNrIHNpbmNlIHN0YXJ0ZWQuCitUaGVyZSBhcmUgaW4gZmFj dCAzIGRpZmZlcmVudCBhZGRyZXNzZXMgb25lIGhhcyB0byBwcm9wZXJseSBkZWFsIHdpdGguCisK K1RoaXMgcGF0Y2ggdXNlcyBleHBsaWNpdCAiZmlsZSIgc28gaXQgaXMgbm90IGRlcGVuZGVudCBv biBwZW5kaW5nOgorCVtwYXRjaF0gQXR0YWNoIHRvIHJ1bm5pbmcgYnV0IGRlbGV0ZWQgZXhlY3V0 YWJsZQorCWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAw OTUwLmh0bWwKKworVGhlIHR3byBjb3B5LXBhc3RlZCBibG9ja3MgZm9yIGVsZjMyIGFuZCBlbGY2 NCBhcmUgIm5vdCBuaWNlIiBidXQgdGhpcyBpcyB0aGUKK2N1cnJlbnQgc3R5bGUgaW4gR0RCLgor CitObyByZWdyZXNzaW9ucyBvbiB7eDg2XzY0LHg4Nl82NC1tMzIsaTY4Nn0tZmVkb3JhMTItbGlu dXgtZ251IGZvciB0aGUgd2hvbGUKK3BhdGNoIHNlcmllcyB0b2dldGhlci4KKworCitUaGFua3Ms CitKYW4KKworCitnZGIvCisyMDEwLTAzLTI5ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+CisKKwlGaXggYXR0YWNoaW5nIHRvIFBJRXMgcHJlbGlua2VkIG9uIHRo ZSBkaXNrIHNpbmNlIHRoZWlyIHN0YXJ0LgorCSogc29saWItc3ZyNC5jIChzdnI0X2V4ZWNfZGlz cGxhY2VtZW50KTogTmV3IHZhcmlhYmxlIGFyY2hfc2l6ZS4KKwlWZXJpZnkgaXQgYWdhaW5zdCBi ZmRfZ2V0X2FyY2hfc2l6ZS4gIFRyeSB0byBtYXRjaCBhcmJpdHJhcnkKKwlkaXNwbGFjZW1lbnQg Zm9yIHRoZSBwaGRycyBjb21wYXJpc29uLgorCitnZGIvdGVzdHN1aXRlLworMjAxMC0wMy0yOSAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBnZGIuYmFz ZS9icmVhay1pbnRlcnAuZXhwOiBSdW4gJGJpbnBpZSB3aXRoIG5ldyB2YWx1ZSAiQVRUQUNIIiwg bmV3CisJY29kZSBmb3IgaXQuICBOZXcgdmFyaWFibGUgcmVsaW5rX2FyZ3MuCisJKHByZWxpbmtZ RVMpOiBDYWxsIHByZWxpbmtOTy4KKwkodGVzdF9hdHRhY2gpOiBBY2NlcHQgbmV3IHBhcmFtZXRl ciByZWxpbmtfYXJncy4gIFJlLXByZWxpbmsgdGhlIGJpbmFyeQorCWluIHN1Y2ggY2FzZS4gIE1v dmUgdGhlIGNvcmUgY29kZSB0byAuLi4KKwkodGVzdF9hdHRhY2hfZ2RiKTogLi4uIGEgbmV3IGZ1 bmN0aW9uLiAgU2VuZCBHREIgY29tbWFuZCAiZmlsZSIuCisJRXh0ZW5kIGV4cGVjdGVkICJBdHRh Y2hpbmcgdG8gIiBzdHJpbmcuCisKKy0tLSBhL2dkYi9zb2xpYi1zdnI0LmMKKysrKyBiL2dkYi9z b2xpYi1zdnI0LmMKK0BAIC0xNzUwLDEzICsxNzUwLDE4MyBAQCBzdnI0X2V4ZWNfZGlzcGxhY2Vt ZW50IChDT1JFX0FERFIgKmRpc3BsYWNlbWVudHApCisgCSByZWFsbHkgZG8gbm90IG1hdGNoLiAg Ki8KKyAgICAgICBpbnQgcGhkcnNfc2l6ZSwgcGhkcnMyX3NpemUsIG9rID0gMTsKKyAgICAgICBn ZGJfYnl0ZSAqYnVmLCAqYnVmMjsKKysgICAgICBpbnQgYXJjaF9zaXplOworIAorLSAgICAgIGJ1 ZiA9IHJlYWRfcHJvZ3JhbV9oZWFkZXIgKC0xLCAmcGhkcnNfc2l6ZSwgTlVMTCk7CisrICAgICAg YnVmID0gcmVhZF9wcm9ncmFtX2hlYWRlciAoLTEsICZwaGRyc19zaXplLCAmYXJjaF9zaXplKTsK KyAgICAgICBidWYyID0gcmVhZF9wcm9ncmFtX2hlYWRlcnNfZnJvbV9iZmQgKGV4ZWNfYmZkLCAm cGhkcnMyX3NpemUpOworLSAgICAgIGlmIChidWYgIT0gTlVMTCAmJiBidWYyICE9IE5VTEwKKy0J ICAmJiAocGhkcnNfc2l6ZSAhPSBwaGRyczJfc2l6ZQorLQkgICAgICB8fCBtZW1jbXAgKGJ1Ziwg YnVmMiwgcGhkcnNfc2l6ZSkgIT0gMCkpCistCW9rID0gMDsKKysgICAgICBpZiAoYnVmICE9IE5V TEwgJiYgYnVmMiAhPSBOVUxMKQorKwl7CisrCSAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIg PSBnZGJhcmNoX2J5dGVfb3JkZXIgKHRhcmdldF9nZGJhcmNoKTsKKysKKysJICAvKiBXZSBhcmUg ZGVhbGluZyB3aXRoIHRocmVlIGRpZmZlcmVudCBhZGRyZXNzZXMuICBFWEVDX0JGRAorKwkgICAg IHJlcHJlc2VudHMgY3VycmVudCBhZGRyZXNzIGluIG9uLWRpc2sgZmlsZS4gIHRhcmdldCBtZW1v cnkgY29udGVudAorKwkgICAgIG1heSBiZSBkaWZmZXJlbnQgZnJvbSBFWEVDX0JGRCBhcyB0aGUg ZmlsZSBtYXkgaGF2ZSBiZWVuIHByZWxpbmtlZAorKwkgICAgIHRvIGEgZGlmZmVyZW50IGFkZHJl c3Mgc2luY2UgdGhlIGV4ZWN1dGFibGUgaGFzIGJlZW4gbG9hZGVkLgorKwkgICAgIE1vcmVvdmVy IHRoZSBhZGRyZXNzIG9mIHBsYWNlbWVudCBpbiB0YXJnZXQgbWVtb3J5IGNhbiBiZQorKwkgICAg IGRpZmZlcmVudCBmcm9tIHdoYXQgc2F5IHRoZSB0YXJnZXQgbWVtb3J5IHByb2dyYW0gaGVhZGVy cyAtIHRoaXMKKysJICAgICBpcyB0aGUgZ29hbCBvZiBQSUUuCisrCisrCSAgICAgRGV0ZWN0ZWQg RElTUExBQ0VNRU5UIGNvdmVycyBib3RoIHRoZSBvZmZzZXRzIG9mIFBJRSBwbGFjZW1lbnQgYW5k CisrCSAgICAgcG9zc2libGUgbmV3IHByZWxpbmsgc2luY2Ugc3RhcnQgb2YgdGhlIHByb2dyYW0u ICBIZXJlIHJlbG9jYXRlCisrCSAgICAgQlVGIGFuZCBCVUYyIGp1c3QgYnkgdGhlIEVYRUNfQkZE IHZzLiB0YXJnZXQgbWVtb3J5IGNvbnRlbnQgb2Zmc2V0CisrCSAgICAgZm9yIHRoZSB2ZXJpZmlj YXRpb24gcHVycG9zZS4gICovCisrCisrCSAgaWYgKHBoZHJzX3NpemUgIT0gcGhkcnMyX3NpemUK KysJICAgICAgfHwgYmZkX2dldF9hcmNoX3NpemUgKGV4ZWNfYmZkKSAhPSBhcmNoX3NpemUpCisr CSAgICBvayA9IDA7CisrCSAgZWxzZSBpZiAoYXJjaF9zaXplID09IDMyICYmIHBoZHJzX3NpemUg Pj0gc2l6ZW9mIChFbGYzMl9FeHRlcm5hbF9QaGRyKQorKwkgICAgICAgICAgICYmIHBoZHJzX3Np emUgJSBzaXplb2YgKEVsZjMyX0V4dGVybmFsX1BoZHIpID09IDApCisrCSAgICB7CisrCSAgICAg IEVsZl9JbnRlcm5hbF9FaGRyICplaGRyMiA9IGVsZl90ZGF0YSAoZXhlY19iZmQpLT5lbGZfaGVh ZGVyOworKwkgICAgICBFbGZfSW50ZXJuYWxfUGhkciAqcGhkcjIgPSBlbGZfdGRhdGEgKGV4ZWNf YmZkKS0+cGhkcjsKKysJICAgICAgQ09SRV9BRERSIGRpc3BsYWNlbWVudCA9IDA7CisrCSAgICAg IGludCBpOworKworKwkgICAgICAvKiBESVNQTEFDRU1FTlQgY291bGQgYmUgZm91bmQgZWFzaWVy IGJ5IHRoZSBkaWZmZXJlbmNlIG9mCisrCSAgICAgICAgIGVoZHIyLT5lX2VudHJ5IGJ1dCBhbHJl YWR5IHJlYWQgQlVGIGRvZXMgbm90IGNvbnRhaW4gZWhkci4gICovCisrCisrCSAgICAgIGZvciAo aSA9IDA7IGkgPCBlaGRyMi0+ZV9waG51bTsgaSsrKQorKwkJaWYgKHBoZHIyW2ldLnBfdHlwZSA9 PSBQVF9MT0FEKQorKwkJICB7CisrCQkgICAgRWxmMzJfRXh0ZXJuYWxfUGhkciAqcGhkcnA7Cisr CQkgICAgZ2RiX2J5dGUgKmJ1Zl92YWRkcl9wLCAqYnVmX3BhZGRyX3A7CisrCQkgICAgQ09SRV9B RERSIHZhZGRyLCBwYWRkcjsKKysJCSAgICBDT1JFX0FERFIgZGlzcGxhY2VtZW50X3ZhZGRyID0g MDsKKysJCSAgICBDT1JFX0FERFIgZGlzcGxhY2VtZW50X3BhZGRyID0gMDsKKysKKysJCSAgICBw aGRycCA9ICYoKEVsZjMyX0V4dGVybmFsX1BoZHIgKikgYnVmKVtpXTsKKysJCSAgICBidWZfdmFk ZHJfcCA9IChnZGJfYnl0ZSAqKSAmcGhkcnAtPnBfdmFkZHI7CisrCQkgICAgYnVmX3BhZGRyX3Ag PSAoZ2RiX2J5dGUgKikgJnBoZHJwLT5wX3BhZGRyOworKworKwkJICAgIHZhZGRyID0gZXh0cmFj dF91bnNpZ25lZF9pbnRlZ2VyIChidWZfdmFkZHJfcCwgNCwKKysJCQkJCQkgICAgICBieXRlX29y ZGVyKTsKKysJCSAgICBkaXNwbGFjZW1lbnRfdmFkZHIgPSB2YWRkciAtIHBoZHIyW2ldLnBfdmFk ZHI7CisrCisrCQkgICAgcGFkZHIgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKGJ1Zl9wYWRk cl9wLCA0LAorKwkJCQkJCSAgICAgIGJ5dGVfb3JkZXIpOworKwkJICAgIGRpc3BsYWNlbWVudF9w YWRkciA9IHBhZGRyIC0gcGhkcjJbaV0ucF9wYWRkcjsKKysKKysJCSAgICBpZiAoZGlzcGxhY2Vt ZW50X3ZhZGRyID09IGRpc3BsYWNlbWVudF9wYWRkcikKKysJCSAgICAgIGRpc3BsYWNlbWVudCA9 IGRpc3BsYWNlbWVudF92YWRkcjsKKysKKysJCSAgICBicmVhazsKKysJCSAgfQorKworKwkgICAg ICAvKiBOb3cgY29tcGFyZSBCVUYgYW5kIEJVRjIgd2l0aCBvcHRpb25hbCBESVNQTEFDRU1FTlQu ICAqLworKworKwkgICAgICBmb3IgKGkgPSAwOyBpIDwgcGhkcnNfc2l6ZSAvIHNpemVvZiAoRWxm MzJfRXh0ZXJuYWxfUGhkcik7IGkrKykKKysJCXsKKysJCSAgRWxmMzJfRXh0ZXJuYWxfUGhkciAq cGhkcnA7CisrCQkgIEVsZjMyX0V4dGVybmFsX1BoZHIgKnBoZHIycDsKKysJCSAgZ2RiX2J5dGUg KmJ1Zl92YWRkcl9wLCAqYnVmX3BhZGRyX3A7CisrCQkgIENPUkVfQUREUiB2YWRkciwgcGFkZHI7 CisrCisrCQkgIHBoZHJwID0gJigoRWxmMzJfRXh0ZXJuYWxfUGhkciAqKSBidWYpW2ldOworKwkJ ICBidWZfdmFkZHJfcCA9IChnZGJfYnl0ZSAqKSAmcGhkcnAtPnBfdmFkZHI7CisrCQkgIGJ1Zl9w YWRkcl9wID0gKGdkYl9ieXRlICopICZwaGRycC0+cF9wYWRkcjsKKysJCSAgcGhkcjJwID0gJigo RWxmMzJfRXh0ZXJuYWxfUGhkciAqKSBidWYyKVtpXTsKKysKKysJCSAgLyogUFRfR05VX1NUQUNL IGFkZHJlc3NlcyBhcmUgbGVmdCBhcyB6ZXJvIG5vdCBiZWluZworKwkJICAgICByZWxvY2F0ZWQg YnkgcHJlbGluaywgdGhlaXIgZGlzcGxhY2luZyB3b3VsZCBjcmVhdGUgZmFsc2UKKysJCSAgICAg dmVyaWZpY2F0aW9uIGZhaWx1cmUuICBGZWVsIGZyZWUgdG8gdGVzdCB0aGUgdW5yZWxvY2F0ZWQK KysJCSAgICAgY29tcGFyaXNvbiBmb3IgYW55IHNlZ21lbnQgdHlwZS4gICovCisrCisrCQkgIGlm IChtZW1jbXAgKHBoZHJwLCBwaGRyMnAsIHNpemVvZiAoKnBoZHJwKSkgPT0gMCkKKysJCSAgICBj b250aW51ZTsKKysKKysJCSAgdmFkZHIgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKGJ1Zl92 YWRkcl9wLCA0LCBieXRlX29yZGVyKTsKKysJCSAgdmFkZHIgLT0gZGlzcGxhY2VtZW50OworKwkJ ICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChidWZfdmFkZHJfcCwgNCwgYnl0ZV9vcmRlciwgdmFk ZHIpOworKworKwkJICBwYWRkciA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoYnVmX3BhZGRy X3AsIDQsIGJ5dGVfb3JkZXIpOworKwkJICBwYWRkciAtPSBkaXNwbGFjZW1lbnQ7CisrCQkgIHN0 b3JlX3Vuc2lnbmVkX2ludGVnZXIgKGJ1Zl9wYWRkcl9wLCA0LCBieXRlX29yZGVyLCBwYWRkcik7 CisrCisrCQkgIGlmIChtZW1jbXAgKHBoZHJwLCBwaGRyMnAsIHNpemVvZiAoKnBoZHJwKSkgPT0g MCkKKysJCSAgICBjb250aW51ZTsKKysKKysJCSAgb2sgPSAwOworKwkJICBicmVhazsKKysJCX0K KysJICAgIH0KKysJICBlbHNlIGlmIChhcmNoX3NpemUgPT0gNjQgJiYgcGhkcnNfc2l6ZSA+PSBz aXplb2YgKEVsZjY0X0V4dGVybmFsX1BoZHIpCisrCSAgICAgICAgICAgJiYgcGhkcnNfc2l6ZSAl IHNpemVvZiAoRWxmNjRfRXh0ZXJuYWxfUGhkcikgPT0gMCkKKysJICAgIHsKKysJICAgICAgRWxm X0ludGVybmFsX0VoZHIgKmVoZHIyID0gZWxmX3RkYXRhIChleGVjX2JmZCktPmVsZl9oZWFkZXI7 CisrCSAgICAgIEVsZl9JbnRlcm5hbF9QaGRyICpwaGRyMiA9IGVsZl90ZGF0YSAoZXhlY19iZmQp LT5waGRyOworKwkgICAgICBDT1JFX0FERFIgZGlzcGxhY2VtZW50ID0gMDsKKysJICAgICAgaW50 IGk7CisrCisrCSAgICAgIC8qIERJU1BMQUNFTUVOVCBjb3VsZCBiZSBmb3VuZCBlYXNpZXIgYnkg dGhlIGRpZmZlcmVuY2Ugb2YKKysJICAgICAgICAgZWhkcjItPmVfZW50cnkgYnV0IGFscmVhZHkg cmVhZCBCVUYgZG9lcyBub3QgY29udGFpbiBlaGRyLiAgKi8KKysKKysJICAgICAgZm9yIChpID0g MDsgaSA8IGVoZHIyLT5lX3BobnVtOyBpKyspCisrCQlpZiAocGhkcjJbaV0ucF90eXBlID09IFBU X0xPQUQpCisrCQkgIHsKKysJCSAgICBFbGY2NF9FeHRlcm5hbF9QaGRyICpwaGRycDsKKysJCSAg ICBnZGJfYnl0ZSAqYnVmX3ZhZGRyX3AsICpidWZfcGFkZHJfcDsKKysJCSAgICBDT1JFX0FERFIg dmFkZHIsIHBhZGRyOworKwkJICAgIENPUkVfQUREUiBkaXNwbGFjZW1lbnRfdmFkZHIgPSAwOwor KwkJICAgIENPUkVfQUREUiBkaXNwbGFjZW1lbnRfcGFkZHIgPSAwOworKworKwkJICAgIHBoZHJw ID0gJigoRWxmNjRfRXh0ZXJuYWxfUGhkciAqKSBidWYpW2ldOworKwkJICAgIGJ1Zl92YWRkcl9w ID0gKGdkYl9ieXRlICopICZwaGRycC0+cF92YWRkcjsKKysJCSAgICBidWZfcGFkZHJfcCA9IChn ZGJfYnl0ZSAqKSAmcGhkcnAtPnBfcGFkZHI7CisrCisrCQkgICAgdmFkZHIgPSBleHRyYWN0X3Vu c2lnbmVkX2ludGVnZXIgKGJ1Zl92YWRkcl9wLCA4LAorKwkJCQkJCSAgICAgIGJ5dGVfb3JkZXIp OworKwkJICAgIGRpc3BsYWNlbWVudF92YWRkciA9IHZhZGRyIC0gcGhkcjJbaV0ucF92YWRkcjsK KysKKysJCSAgICBwYWRkciA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoYnVmX3BhZGRyX3As IDgsCisrCQkJCQkJICAgICAgYnl0ZV9vcmRlcik7CisrCQkgICAgZGlzcGxhY2VtZW50X3BhZGRy ID0gcGFkZHIgLSBwaGRyMltpXS5wX3BhZGRyOworKworKwkJICAgIGlmIChkaXNwbGFjZW1lbnRf dmFkZHIgPT0gZGlzcGxhY2VtZW50X3BhZGRyKQorKwkJICAgICAgZGlzcGxhY2VtZW50ID0gZGlz cGxhY2VtZW50X3ZhZGRyOworKworKwkJICAgIGJyZWFrOworKwkJICB9CisrCisrCSAgICAgIC8q IE5vdyBjb21wYXJlIEJVRiBhbmQgQlVGMiB3aXRoIG9wdGlvbmFsIERJU1BMQUNFTUVOVC4gICov CisrCisrCSAgICAgIGZvciAoaSA9IDA7IGkgPCBwaGRyc19zaXplIC8gc2l6ZW9mIChFbGY2NF9F eHRlcm5hbF9QaGRyKTsgaSsrKQorKwkJeworKwkJICBFbGY2NF9FeHRlcm5hbF9QaGRyICpwaGRy cDsKKysJCSAgRWxmNjRfRXh0ZXJuYWxfUGhkciAqcGhkcjJwOworKwkJICBnZGJfYnl0ZSAqYnVm X3ZhZGRyX3AsICpidWZfcGFkZHJfcDsKKysJCSAgQ09SRV9BRERSIHZhZGRyLCBwYWRkcjsKKysK KysJCSAgcGhkcnAgPSAmKChFbGY2NF9FeHRlcm5hbF9QaGRyICopIGJ1ZilbaV07CisrCQkgIGJ1 Zl92YWRkcl9wID0gKGdkYl9ieXRlICopICZwaGRycC0+cF92YWRkcjsKKysJCSAgYnVmX3BhZGRy X3AgPSAoZ2RiX2J5dGUgKikgJnBoZHJwLT5wX3BhZGRyOworKwkJICBwaGRyMnAgPSAmKChFbGY2 NF9FeHRlcm5hbF9QaGRyICopIGJ1ZjIpW2ldOworKworKwkJICAvKiBQVF9HTlVfU1RBQ0sgYWRk cmVzc2VzIGFyZSBsZWZ0IGFzIHplcm8gbm90IGJlaW5nCisrCQkgICAgIHJlbG9jYXRlZCBieSBw cmVsaW5rLCB0aGVpciBkaXNwbGFjaW5nIHdvdWxkIGNyZWF0ZSBmYWxzZQorKwkJICAgICB2ZXJp ZmljYXRpb24gZmFpbHVyZS4gIEZlZWwgZnJlZSB0byB0ZXN0IHRoZSB1bnJlbG9jYXRlZAorKwkJ ICAgICBjb21wYXJpc29uIGZvciBhbnkgc2VnbWVudCB0eXBlLiAgKi8KKysKKysJCSAgaWYgKG1l bWNtcCAocGhkcnAsIHBoZHIycCwgc2l6ZW9mICgqcGhkcnApKSA9PSAwKQorKwkJICAgIGNvbnRp bnVlOworKworKwkJICB2YWRkciA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoYnVmX3ZhZGRy X3AsIDgsIGJ5dGVfb3JkZXIpOworKwkJICB2YWRkciAtPSBkaXNwbGFjZW1lbnQ7CisrCQkgIHN0 b3JlX3Vuc2lnbmVkX2ludGVnZXIgKGJ1Zl92YWRkcl9wLCA4LCBieXRlX29yZGVyLCB2YWRkcik7 CisrCisrCQkgIHBhZGRyID0gZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyIChidWZfcGFkZHJfcCwg OCwgYnl0ZV9vcmRlcik7CisrCQkgIHBhZGRyIC09IGRpc3BsYWNlbWVudDsKKysJCSAgc3RvcmVf dW5zaWduZWRfaW50ZWdlciAoYnVmX3BhZGRyX3AsIDgsIGJ5dGVfb3JkZXIsIHBhZGRyKTsKKysK KysJCSAgaWYgKG1lbWNtcCAocGhkcnAsIHBoZHIycCwgc2l6ZW9mICgqcGhkcnApKSA9PSAwKQor KwkJICAgIGNvbnRpbnVlOworKworKwkJICBvayA9IDA7CisrCQkgIGJyZWFrOworKwkJfQorKwkg ICAgfQorKwkgIGVsc2UKKysJICAgIG9rID0gMDsKKysJfQorIAorICAgICAgIHhmcmVlIChidWYp OworICAgICAgIHhmcmVlIChidWYyKTsKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJl YWstaW50ZXJwLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVhay1pbnRlcnAu ZXhwCitAQCAtMTU0LDYgKzE1NCwxMiBAQCBwcm9jIHByZWxpbmtZRVMge2FyZyB7bmFtZSAiIn19 IHsKKyAgICAgaWYgeyRuYW1lID09ICIifSB7CisgCXNldCBuYW1lIFtmaWxlIHRhaWwgJGFyZ10K KyAgICAgfQorKworKyAgICAjIFRyeSB0byB1bnByZWxpbmsgaXQgZmlyc3Qgc28gdGhhdCBpZiBp dCBoYXMgYmVlbiBhbHJlYWR5IHByZWxpbmtlZCBiZWZvcmUKKysgICAgIyB3ZSBnZXQgZGlmZmVy ZW50IGFkZHJlc3Mgbm93IGFuZCB0aGUgcmVzdWx0IGlzIG5vdCBhZmZlY3RlZCBieSB0aGUKKysg ICAgIyBwcmV2aW91cyAkYXJnIHN0YXRlLi4KKysgICAgcHJlbGlua05PICRhcmcgIiRuYW1lIHBy ZS11bnByZWxpbmsiCisrCisgICAgIHNldCB0ZXN0ICJwcmVsaW5rICRuYW1lIgorICAgICBzZXQg Y29tbWFuZCAiZXhlYyAvdXNyL3NiaW4vcHJlbGluayAtcU5SIC0tbm8tZXhlYy1zaGllbGQgJGFy ZyIKKyAgICAgdmVyYm9zZSAtbG9nICJjb21tYW5kIGlzICRjb21tYW5kIgorQEAgLTMxOSwzOCAr MzI1LDEyIEBAIHByb2MgdGVzdF9jb3JlIHtmaWxlIGRpc3BsYWNlbWVudH0geworICAgICBzZXQg cGZfcHJlZml4ICRvbGRfbGRwcmVmaXgKKyB9CisgCistcHJvYyB0ZXN0X2F0dGFjaCB7ZmlsZSBk aXNwbGFjZW1lbnR9IHsKKy0gICAgZ2xvYmFsIGJvYXJkX2luZm8gZ2RiX3Byb21wdCBleHBlY3Rf b3V0CistCistICAgIGdkYl9leGl0CistCistICAgIHNldCB0ZXN0ICJzbGVlcCBmdW5jdGlvbiBz dGFydGVkIgorLQorLSAgICBzZXQgY29tbWFuZCAiJHtmaWxlfSBzbGVlcCIKKy0gICAgc2V0IHJl cyBbcmVtb3RlX3NwYXduIGhvc3QgJGNvbW1hbmRdOworLSAgICBpZiB7ICRyZXMgPCAwIHx8ICRy ZXMgPT0gIiIgfSB7CistCXBlcnJvciAiU3Bhd25pbmcgJGNvbW1hbmQgZmFpbGVkLiIKKy0JZmFp bCAkdGVzdAorLQlyZXR1cm4KKy0gICAgfQorLSAgICBzZXQgcGlkIFtleHBfcGlkIC1pICRyZXNd CistICAgIGdkYl9leHBlY3QgeworLQktcmUgInNsZWVwaW5nXHJcbiIgeworLQkgICAgcGFzcyAk dGVzdAorLQl9CistCWVvZiB7CistCSAgICBmYWlsICIkdGVzdCAoZW9mKSIKKy0JICAgIHJldHVy bgorLQl9CistCXRpbWVvdXQgeworLQkgICAgZmFpbCAiJHRlc3QgKHRpbWVvdXQpIgorLQkgICAg cmV0dXJuCistCX0KKy0gICAgfQorK3Byb2MgdGVzdF9hdHRhY2hfZ2RiIHtmaWxlIHBpZCBkaXNw bGFjZW1lbnQgcHJlZml4fSB7CisrICAgIGdsb2JhbCBnZGJfcHJvbXB0IGV4cGVjdF9vdXQKKyAK KyAgICAgZ2xvYmFsIHBmX3ByZWZpeAorICAgICBzZXQgb2xkX2xkcHJlZml4ICRwZl9wcmVmaXgK Ky0gICAgbGFwcGVuZCBwZl9wcmVmaXggImF0dGFjaDoiCisrICAgIGxhcHBlbmQgcGZfcHJlZml4 ICIkcHJlZml4OiIKKyAKKyAgICAgZ2RiX2V4aXQKKyAgICAgZ2RiX3N0YXJ0CitAQCAtMzU4LDkg KzMzOCwxMyBAQCBwcm9jIHRlc3RfYXR0YWNoIHtmaWxlIGRpc3BsYWNlbWVudH0geworICAgICAj IFByaW50IHRoZSAiUElFIChQb3NpdGlvbiBJbmRlcGVuZGVudCBFeGVjdXRhYmxlKSBkaXNwbGFj ZW1lbnQiIG1lc3NhZ2UuCisgICAgIGdkYl90ZXN0ICJzZXQgdmVyYm9zZSBvbiIKKyAKKysgICAg aWYgeyRmaWxlICE9ICIifSB7CisrCWdkYl90ZXN0ICJmaWxlICRmaWxlIiAiUmVhZGluZyBzeW1i b2xzIGZyb20gLipkb25lXFwuIiAiZmlsZSIKKysgICAgfQorKworICAgICBzZXQgdGVzdCAiYXR0 YWNoIgorICAgICBnZGJfdGVzdF9tdWx0aXBsZSAiYXR0YWNoICRwaWQiICR0ZXN0IHsKKy0JLXJl ICJBdHRhY2hpbmcgdG8gcHJvY2VzcyAkcGlkXHJcbiIgeworKwktcmUgIkF0dGFjaGluZyB0byAo cHJvZ3JhbTogLiosICk/cHJvY2VzcyAkcGlkXHJcbiIgeworIAkgICAgIyBNaXNzaW5nICIkZ2Ri X3Byb21wdCAkIiBpcyBpbnRlbnRpb25hbC4KKyAJICAgIHBhc3MgJHRlc3QKKyAJfQorQEAgLTM5 NiwxMSArMzgwLDU2IEBAIHByb2MgdGVzdF9hdHRhY2gge2ZpbGUgZGlzcGxhY2VtZW50fSB7Cisg ICAgIGdkYl90ZXN0ICJidCIgIiNcWzAtOVxdKyArXFteXHJcblxdKlxcbWxpYmZ1bmNcXE1cW15c clxuXF0qXHJcbiNcWzAtOVxdKyArXFteXHJcblxdKlxcbW1haW5cXE0uKiIgImF0dGFjaCBtYWlu IGJ0IgorICAgICBnZGJfZXhpdAorIAorLSAgICByZW1vdGVfZXhlYyBob3N0ICJraWxsIC05ICRw aWQiCistCisgICAgIHNldCBwZl9wcmVmaXggJG9sZF9sZHByZWZpeAorIH0KKyAKKytwcm9jIHRl c3RfYXR0YWNoIHtmaWxlIGRpc3BsYWNlbWVudCB7cmVsaW5rX2FyZ3MgIiJ9fSB7CisrICAgIGds b2JhbCBib2FyZF9pbmZvCisrCisrICAgIGdkYl9leGl0CisrCisrICAgIHNldCB0ZXN0ICJzbGVl cCBmdW5jdGlvbiBzdGFydGVkIgorKworKyAgICBzZXQgY29tbWFuZCAiJHtmaWxlfSBzbGVlcCIK KysgICAgc2V0IHJlcyBbcmVtb3RlX3NwYXduIGhvc3QgJGNvbW1hbmRdOworKyAgICBpZiB7ICRy ZXMgPCAwIHx8ICRyZXMgPT0gIiIgfSB7CisrCXBlcnJvciAiU3Bhd25pbmcgJGNvbW1hbmQgZmFp bGVkLiIKKysJZmFpbCAkdGVzdAorKwlyZXR1cm4KKysgICAgfQorKyAgICBzZXQgcGlkIFtleHBf cGlkIC1pICRyZXNdCisrICAgIGdkYl9leHBlY3QgeworKwktcmUgInNsZWVwaW5nXHJcbiIgewor KwkgICAgcGFzcyAkdGVzdAorKwl9CisrCWVvZiB7CisrCSAgICBmYWlsICIkdGVzdCAoZW9mKSIK KysJICAgIHJldHVybgorKwl9CisrCXRpbWVvdXQgeworKwkgICAgZmFpbCAiJHRlc3QgKHRpbWVv dXQpIgorKwkgICAgcmV0dXJuCisrCX0KKysgICAgfQorKworKyAgICBpZiB7JHJlbGlua19hcmdz ID09ICIifSB7CisrCXRlc3RfYXR0YWNoX2dkYiAiIiAkcGlkICRkaXNwbGFjZW1lbnQgImF0dGFj aCIKKysgICAgfSBlbHNlIHsKKysJIyBUaGVzZSBjb3VsZCBiZSByYXRoZXIgcGFzc2VkIGFzIGFy Z3VtZW50cy4KKysJZ2xvYmFsIGV4ZWMgaW50ZXJwX3NhdmVkIGludGVycAorKworKwlmb3JlYWNo IHJlbGluayB7WUVTIE5PfSB7CisrCSAgICBpZiB7W3ByZWxpbmskcmVsaW5rICRyZWxpbmtfYXJn cyBbZmlsZSB0YWlsICRleGVjXV0KKysJICAgICAgICAmJiBbY29weSAkaW50ZXJwX3NhdmVkICRp bnRlcnBdfSB7CisrCQkjIC9wcm9jL1BJRC9leGUgY2Fubm90IGJlIGxvYWRlZCBhcyBpdCBpcyAi RVhFQ05BTUUgKGRlbGV0ZWQpIi4KKysJCXRlc3RfYXR0YWNoX2dkYiAkZXhlYyAkcGlkICRkaXNw bGFjZW1lbnQgImF0dGFjaC1yZWxpbmskcmVsaW5rIgorKwkgICAgfQorKwl9CisrICAgIH0KKysK KysgICAgcmVtb3RlX2V4ZWMgaG9zdCAia2lsbCAtOSAkcGlkIgorK30KKysKKyBwcm9jIHRlc3Rf bGQge2ZpbGUgaWZtYWluIHRyeW5vc3ltIGRpc3BsYWNlbWVudH0geworICAgICBnbG9iYWwgc3Jj ZGlyIHN1YmRpciBnZGJfcHJvbXB0IGV4cGVjdF9vdXQKKyAKK0BAIC02MDksNyArNjM4LDEwIEBA IGZvcmVhY2ggbGRwcmVsaW5rIHtOTyBZRVN9IHsKKyAJc2V0IG9sZF9iaW5wcmVmaXggJHBmX3By ZWZpeAorIAlmb3JlYWNoIGJpbnByZWxpbmsge05PIFlFU30geworIAkgICAgZm9yZWFjaCBiaW5z ZXBkZWJ1ZyB7Tk8gSU4gU0VQfSB7CistCQlmb3JlYWNoIGJpbnBpZSB7Tk8gWUVTfSB7CisrCQkj ICJBVFRBQ0giIGlzIGxpa2UgIllFUyIgYnV0IGl0IGlzIG1vZGlmaWVkIGR1cmluZyBydW4uCisr CQkjIEl0IGNhbm5vdCBiZSB1c2VkIGZvciBwcm9ibGVtIHJlcHJvZHVjaWJpbGl0eSBhZnRlciB0 aGUKKysJCSMgdGVzdGNhc2UgZW5kcy4KKysJCWZvcmVhY2ggYmlucGllIHtOTyBZRVMgQVRUQUNI fSB7CisgCQkgICAgIyBUaGlzIGNvbWJpbmF0aW9uIGlzIG5vdCBwb3NzaWJsZSwgbm9uLVBJRSAo Zml4ZWQgYWRkcmVzcykKKyAJCSAgICAjIGJpbmFyeSBjYW5ub3QgYmUgcHJlbGlua2VkIHRvIGFu eSAob3RoZXIpIGFkZHJlc3MuCisgCQkgICAgaWYgeyRiaW5wcmVsaW5rID09ICJZRVMiICYmICRi aW5waWUgPT0gIk5PIn0geworQEAgLTYyOCw3ICs2NjAsNyBAQCBmb3JlYWNoIGxkcHJlbGluayB7 Tk8gWUVTfSB7CisgCQkgICAgaWYgeyRiaW5zZXBkZWJ1ZyAhPSAiTk8ifSB7CisgCQkJbGFwcGVu ZCBvcHRzIHtkZWJ1Z30KKyAJCSAgICB9CistCQkgICAgaWYgeyRiaW5waWUgPT0gIllFUyJ9IHsK KysJCSAgICBpZiB7JGJpbnBpZSAhPSAiTk8ifSB7CisgCQkJbGFwcGVuZCBvcHRzIHthZGRpdGlv bmFsX2ZsYWdzPS1mUElFIC1waWV9CisgCQkgICAgfQorIAkJICAgIGlmIHtbYnVpbGRfZXhlY3V0 YWJsZSAke3Rlc3R9LmV4cCBbZmlsZSB0YWlsICRleGVjXSAkc3JjZmlsZSAkb3B0c10gPT0gLTF9 IHsKK0BAIC02ODAsMTYgKzcxMiw0NSBAQCBmb3JlYWNoIGxkcHJlbGluayB7Tk8gWUVTfSB7Cisg CQkJbGFwcGVuZCBkZXN0cyAkZGVzdAorIAkJICAgIH0KKyAKKy0JCSAgICBpZiB7W3ByZWxpbmsk YmlucHJlbGluayAiLS1keW5hbWljLWxpbmtlcj0kaW50ZXJwIC0tbGQtbGlicmFyeS1wYXRoPSRk aXIgJGV4ZWMgJGludGVycCBbY29uY2F0ICRkZXN0c10iIFtmaWxlIHRhaWwgJGV4ZWNdXQorKwkJ ICAgIGlmIHskYmlucGllID09ICJOTyJ9IHsKKysJCQlzZXQgZGlzcGxhY2VtZW50ICJOT05FIgor KwkJICAgIH0gZWxzZWlmIHskYmlucHJlbGluayA9PSAiTk8ifSB7CisrCQkJc2V0IGRpc3BsYWNl bWVudCAiTk9OWkVSTyIKKysJCSAgICB9IGVsc2UgeworKwkJCXNldCBkaXNwbGFjZW1lbnQgIlpF Uk8iCisrCQkgICAgfQorKworKwkJICAgIHNldCByZWxpbmtfYXJncyAiLS1keW5hbWljLWxpbmtl cj0kaW50ZXJwIC0tbGQtbGlicmFyeS1wYXRoPSRkaXIgJGV4ZWMgJGludGVycCBbY29uY2F0ICRk ZXN0c10iCisrCQkgICAgaWYge1twcmVsaW5rJGJpbnByZWxpbmsgJHJlbGlua19hcmdzIFtmaWxl IHRhaWwgJGV4ZWNdXQorIAkJICAgICAgICAmJiBbY29weSAkaW50ZXJwX3NhdmVkICRpbnRlcnBd fSB7CistCQkJaWYgeyRiaW5waWUgPT0gIk5PIn0geworLQkJCSAgICBzZXQgZGlzcGxhY2VtZW50 ICJOT05FIgorLQkJCX0gZWxzZWlmIHskYmlucHJlbGluayA9PSAiTk8ifSB7CistCQkJICAgIHNl dCBkaXNwbGFjZW1lbnQgIk5PTlpFUk8iCisrCQkJaWYgeyRiaW5waWUgIT0gIkFUVEFDSCJ9IHsK KysJCQkgICAgdGVzdF9sZCAkZXhlYyAxIFtleHByIHskYmluc2VwZGVidWcgPT0gIk5PIn1dICRk aXNwbGFjZW1lbnQKKyAJCQl9IGVsc2UgeworLQkJCSAgICBzZXQgZGlzcGxhY2VtZW50ICJaRVJP IgorKwkJCSAgICAjIElmIHRoZSBmaWxlIGhhcyBiZWVuIHJhbmRvbWx5IHByZWxpbmtlZCBpdCBt dXN0CisrCQkJICAgICMgYmUgIk5PTlpFUk8iLiAgV2UgY291bGQgc2VlICJaRVJPIiBvbmx5IGlm IGl0IHdhcworKwkJCSAgICAjIHVucHJlbGlua2VkIG5hIGl0IGlzIG5vdyBydW5uaW5nIGF0IHRo ZSBzYW1lCisrCQkJICAgICMgYWRkcmVzcyAtIHdoaWNoIGlzIDAgYnV0IGV4ZWN1dGFibGUgY2Fu IG5ldmVyIHJ1bgorKwkJCSAgICAjIGF0IGFkZHJlc3MgMC4KKysKKysJCQkgICAgc2V0IGRpc3Bs YWNlbWVudCAiTk9OWkVSTyIKKysJCQkgICAgdGVzdF9hdHRhY2ggJGV4ZWMgJGRpc3BsYWNlbWVu dCAkcmVsaW5rX2FyZ3MKKysKKysJCQkgICAgIyBBVFRBQ0ggZXhlY3V0YWJsZXMgKyBsaWJyYXJp ZXMgZ2V0IG1vZGlmaWVkIHNpbmNlCisrCQkJICAgICMgdGhleSBoYXZlIGJlZW4gcnVuLiAgVGhl eSBjYW5ub3QgYmUgdXNlZCBmb3IKKysJCQkgICAgIyBwcm9ibGVtIHJlcHJvZHVjaWJpbGl0eSBh ZnRlciB0aGUgdGVzdGNhc2UgZW5kcy4KKysJCQkgICAgc2V0IGV4ZWNfZGVidWcgW3N5c3RlbV9k ZWJ1Z19nZXQgJGV4ZWNdCisrCQkJICAgIGlmIHskZXhlY19kZWJ1ZyAhPSAiIn0geworKwkJCQkj IGBmaWxlIGRlbGV0ZSBbZ2xvYiAiJHtleGVjX2RlYnVnfSoiXScgZG9lcyBub3Qgd29yay4KKysJ CQkJZm9yZWFjaCBmIFtnbG9iICIke2V4ZWNfZGVidWd9KiJdIHsKKysJCQkJICAgIGZpbGUgZGVs ZXRlICRmCisrCQkJCX0KKysJCQkgICAgfQorKwkJCSAgICBmaWxlIGRlbGV0ZSAtZm9yY2UgJGRp cgorKwkJCSAgICAjIGBmaWxlIGRlbGV0ZSBbZ2xvYiAiJHtleGVjfSoiXScgZG9lcyBub3Qgd29y ay4KKysJCQkgICAgZm9yZWFjaCBmIFtnbG9iICIke2V4ZWN9KiJdIHsKKysJCQkJZmlsZSBkZWxl dGUgJGYKKysJCQkgICAgfQorIAkJCX0KKy0JCQl0ZXN0X2xkICRleGVjIDEgW2V4cHIgeyRiaW5z ZXBkZWJ1ZyA9PSAiTk8ifV0gJGRpc3BsYWNlbWVudAorIAkJICAgIH0KKyAJCX0KKyAJICAgIH0K KwoKZGlmZiAtLWdpdCBhL2dkYi1waWUtMm9mNi1yZXByZWxpbmtlZC1sZC5wYXRjaCBiL2dkYi1w aWUtMm9mNi1yZXByZWxpbmtlZC1sZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi40ZjA1NGE4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXBpZS0yb2Y2LXJlcHJlbGlu a2VkLWxkLnBhdGNoCkBAIC0wLDAgKzEsODcgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAxMDAwLmh0bWwKK1N1YmplY3Q6IFtwYXRjaCAyLzZdIFBJ RTogQXR0YWNoIGJpbmFyeSBldmVuIGFmdGVyIGxkLnNvIHJlLXByZWxpbmtlZCAgdW5kZXJuZWF0 aAorCitIaSwKKword2hlbiBJIGhhdmUgc2VlbiB0aGUgUElFLWJpbmFyeS1jaGFuZ2VkLXNpY2Ut c3RhcnQgdGVzdGVkIGFsc28KK2xkLnNvLWNoYW5nZWQtc2luY2Utc3RhcnQgYW5kIGl0IGRpZCBu b3Qgd29yay4KKworVGhlcmUgaXMgcXVlc3Rpb25hYmxlIHdoZW4gdG8gcHJpbnQgYW5kIHdoZW4g dG8gbm90IHRvIHByaW50IG5vbi1mYXRhbCBtZW1vcnkKK3JlYWQgZXJyb3JzLiAgU2ltaWxhciBj aGFuZ2UgSSByZXF1ZXN0ZWQgaW4KKwlSZTogW1JGQy9pYTY0XSBtZW1vcnkgZXJyb3Igd2hlbiBy ZWFkaW5nIHdyb25nIGNvcmUgZmlsZQorCWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0 Y2hlcy8yMDEwLTAyL21zZzAwMDAxLmh0bWwKK3NvIHRoYXQgR0RCIHByaW50cyBhdCBsZWFzdCBh cyBhIHdhcm5pbmcKKwlDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIC4uLgord2hlbiBz b21lIHVuZXhwZWN0ZWQgZXJyb3IgaGFwcGVucy4KKworQ29udHJhcnkgdG8gaXQgdGhlcmUgaXMg bm90IHN1Y2ggd2FybmluZyBwcmVzZW50IGluIHRoZSBjb2RlIGJlbG93IGFzIGluIHRoZQorY2Fz ZSBvZiBub24tdmFsZ3JpbmQgUElFIHdpdGggcmUtcHJlbGlua2VkIGxkLnNvIHRoZSBtZW1vcnkg cmVhZCBlcnJvciBoYXBwZW5zCit0aGVyZS4gIFNvbWUgR0RCIGNvZGUgcmV3b3JrIGNvdWxkIHBy b2JhYmx5IGF2b2lkIGl0LgorCitKdXN0IGZvciBleGFtcGxlIGFsbCB0aGUgbWVtb3J5IHJlYWQg ZXJyb3JzIGluIHJlYWRfcHJvZ3JhbV9oZWFkZXIgb3IgZXZlbgorLSBwcmltYXJpbHkgLSBzY2Fu X2R5bnRhZyBhcmUgY3VycmVudGx5IElNTy1pbmNvcnJlY3RseSBzaWxlbnQgYW5kIG90aGVycy4K K1RoZXJlZm9yZSBwb3N0ZWQgdGhlIHBhdGNoIHRoaXMgd2F5LCBtYWtpbmcgYWxsIHRoZXNlIHdh cm5pbmdzIHByaW50ZWQgYW5kCitwb3NzaWJseSBmaXhpbmcgY29kZSBhdHRlbXB0aW5nIGluY29y cmVjdCByZWFkcyBhbG9uZyB0aGUgd2F5IGNvdWxkIGJlIGRvbmUgYnkKK2EgZGlmZmVyZW50IHBh dGNoLgorCitObyByZWdyZXNzaW9ucyBvbiB7eDg2XzY0LHg4Nl82NC1tMzIsaTY4Nn0tZmVkb3Jh MTItbGludXgtZ251IGZvciB0aGUgd2hvbGUKK3BhdGNoIHNlcmllcyB0b2dldGhlci4KKworCitU aGFua3MsCitKYW4KKworCitnZGIvCisyMDEwLTAzLTI5ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIGF1eHYuYyAobGRfc29feGZlcl9hdXh2KTogRG8g bm90IGVycm9yIG9uIGZhaWxlZCByZWFkIG9mIGRhdGFfYWRkcmVzcy4KKworZ2RiL3Rlc3RzdWl0 ZS8KKzIwMTAtMDMtMjkgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KKworCSogZ2RiLmJhc2UvYnJlYWstaW50ZXJwLmV4cCAodGVzdF9hdHRhY2gpOiBLZWVwICRp bnRlcnAgY2hhbmdlZC4gIE1vdmUKKwlpdHMgcmVzdG9yZSBhZnRlciB0aGUgPCRyZWxpbmtfYXJn cyAhPSAiIj4gbG9vcC4gIG5ldyBjb21tZW50LgorCistLS0gYS9nZGIvYXV4di5jCisrKysgYi9n ZGIvYXV4di5jCitAQCAtOTYsNyArOTYsMTYgQEAgbGRfc29feGZlcl9hdXh2IChnZGJfYnl0ZSAq cmVhZGJ1ZiwKKyAKKyAgIHBvaW50ZXJfYWRkcmVzcyA9IFNZTUJPTF9WQUxVRV9BRERSRVNTICht c3ltKTsKKyAKKy0gIGRhdGFfYWRkcmVzcyA9IHJlYWRfbWVtb3J5X3R5cGVkX2FkZHJlc3MgKHBv aW50ZXJfYWRkcmVzcywgcHRyX3R5cGUpOworKyAgLyogV2hpbGUgaXQgaXMgYW4gZXJyb3IgSSBh bSBub3QgYXdhcmUgaG93IHRvIHNvbHZlIGF0dGFjaGluZyB0byBQSUUgdW5kZXIKKysgICAgIHZh bGdyaW5kIC0tZGItYXR0YWNoPXllcyBkaWZmZXJlbnQgd2F5IHdoZW4gbGQuc28gb24tZGlzayBm aWxlIGhhcyBwcmVsaW5rCisrICAgICBjaGFuZ2UgaW4gdGhlIG1lYW50aW1lLiAgQ3VycmVudGx5 IEdEQiB3aWxsIGRyb3AgYmFjayB0byBwcm9jZnNfeGZlcl9hdXh2CisrICAgICAoc28gdGhhdCBh dCBsZWFzdCBub24tdmFsZ3JpbmQgUElFIGF0dGFjaG1lbnRzIHdpdGggcHJlbGluayBjaGFuZ2Ug b2YKKysgICAgIGxkLnNvIHdvcmspLiAgVG8gbWFrZSBpdCB3b3JraW5nIGV2ZW4gd2l0aCB2YWxn cmluZCBpcyBQUiAxMTQ0MCByZXF1aXJpbmcKKysgICAgIGEgdmFsZ3JpbmQgZXh0ZW5zaW9uLiAg Ki8KKysgIGlmICh0YXJnZXRfcmVhZF9tZW1vcnkgKHBvaW50ZXJfYWRkcmVzcywgcHRyX2J1Ziwg cHRyX3NpemUpICE9IDApCisrICAgIHJldHVybiAtMTsKKysKKysgIGRhdGFfYWRkcmVzcyA9IGV4 dHJhY3RfdHlwZWRfYWRkcmVzcyAocHRyX2J1ZiwgcHRyX3R5cGUpOworIAorICAgLyogUG9zc2li bHkgc3RpbGwgbm90IGluaXRpYWxpemVkIHN1Y2ggYXMgZHVyaW5nIGFuIGluZmVyaW9yIHN0YXJ0 dXAuICAqLworICAgaWYgKGRhdGFfYWRkcmVzcyA9PSAwKQorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9icmVhay1pbnRlcnAuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Jy ZWFrLWludGVycC5leHAKK0BAIC00MTksMTIgKzQxOSwxNiBAQCBwcm9jIHRlc3RfYXR0YWNoIHtm aWxlIGRpc3BsYWNlbWVudCB7cmVsaW5rX2FyZ3MgIiJ9fSB7CisgCWdsb2JhbCBleGVjIGludGVy cF9zYXZlZCBpbnRlcnAKKyAKKyAJZm9yZWFjaCByZWxpbmsge1lFUyBOT30geworLQkgICAgaWYg e1twcmVsaW5rJHJlbGluayAkcmVsaW5rX2FyZ3MgW2ZpbGUgdGFpbCAkZXhlY11dCistCSAgICAg ICAgJiYgW2NvcHkgJGludGVycF9zYXZlZCAkaW50ZXJwXX0geworKwkgICAgIyBJdCB3b3VsZCBi ZSBtb3JlIGNvcnJlY3QgdG8gYWxzbyBbY29weSAkaW50ZXJwX3NhdmVkICRpbnRlcnBdCisrCSAg ICAjIGhlcmUgdG8gcmVhbGx5IHRlc3QganVzdCBkaWZmZXJlbnQgcHJlbGluayBvZiAkZXhlYy4K KysJICAgICMgQnV0IHdlIHdvdWxkIG5lZWQgYSBzZXBhcmF0ZSB0ZXN0IGZvciBkaWZmZXJlbnQg cHJlbGluayBvZiBsZC5zbworKwkgICAgIyB3aGVyZSBhIGJ1ZyBvY2N1cmVkLiAgSXQgaXMgbm93 IGFsbCBtZXJnZWQgaW50byB0aGlzIHNpbmdsZSB0ZXN0LgorKwkgICAgaWYgW3ByZWxpbmskcmVs aW5rICRyZWxpbmtfYXJncyBbZmlsZSB0YWlsICRleGVjXV0geworIAkJIyAvcHJvYy9QSUQvZXhl IGNhbm5vdCBiZSBsb2FkZWQgYXMgaXQgaXMgIkVYRUNOQU1FIChkZWxldGVkKSIuCisgCQl0ZXN0 X2F0dGFjaF9nZGIgJGV4ZWMgJHBpZCAkZGlzcGxhY2VtZW50ICJhdHRhY2gtcmVsaW5rJHJlbGlu ayIKKyAJICAgIH0KKyAJfQorKwljb3B5ICRpbnRlcnBfc2F2ZWQgJGludGVycAorICAgICB9Cisg CisgICAgIHJlbW90ZV9leGVjIGhvc3QgImtpbGwgLTkgJHBpZCIKKwoKZGlmZiAtLWdpdCBhL2dk Yi1waWUtM29mNi1yZWxvY2F0ZS1vbmNlLnBhdGNoIGIvZ2RiLXBpZS0zb2Y2LXJlbG9jYXRlLW9u Y2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk3YTVkYgotLS0g L2Rldi9udWxsCisrKyBiL2dkYi1waWUtM29mNi1yZWxvY2F0ZS1vbmNlLnBhdGNoCkBAIC0wLDAg KzEsNDEyIEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMy9t c2cwMTAwMS5odG1sCitTdWJqZWN0OiBbcGF0Y2ggMy82XSBQSUU6IEZpeCBvY2Nhc2lvbmFsIGVy cm9yIGF0dGFjaGluZyBpNjg2IGJpbmFyeQorCitbIFRlc3RjYXNlIGRpZmYgYmFja3BvcnRlZC4g IF0KKworSGksCisKK3RoaXMgaXMgdGhlIHJlYWwgYnVncmVwb3J0IHdoaWNoIHN0YXJ0ZWQgdGhp cyBwYXRjaCBzZXJpZXMuCisJZ2RiICJDYW5ub3QgYWNjZXNzIG1lbW9yeSIgb24gYSBydW5uaW5n IHByb2Nlc3MKKwlodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTU3 Njc0MgorCitPZmZzZXRzIG9uIGk2ODYgY2F1c2UgdGhhdCB3aGlsZSBhdHRhY2hpbmcgdG8gYW4g dW5wcmVsaW5rZWQgcnVubmluZyBQSUUKK3NjYW5fZHludGFnIHdpbGwgaW5jb3JyZWN0bHkgZ2V0 IGEgc3VjY2Vzc2Z1bCByZWFkIGluIHNjYW5fZHludGFnIGZyb20gRFRfREVCVUcKK2l0IGV4cGVj dHMgaXMgZnJvbSB0aGUgbWFuaSBleGVjdXRhYmxlIGJ1dCBpbiBmYWN0IGl0IGlzIGZyb20gc29t ZSBsZC5zbyBvcgorbGliYy5zbyAobG9jYXRlZCBsb3cgZm9yIC0tZXhlYy1zaGllbGQpLiAgQW5v dGhlciBpc3N1ZSBpcyB0aGF0IHNjYW5fZHludGFnCitjb3VsZCB2ZXJpZnkgbW9yZSB0aGF0IHRo ZSB0YXJnZXQgbWVtb3J5IG1hdGNoZXMgdGhlIC5keW5hbWljIHNlY3Rpb24gaXQgaXMKK3JlYWRp bmcgZnJvbSBleGVjX2JmZC4gIEl0IGNvdWxkIGFsc28gY29tcGxhaW4gd2hlbiB0aGUgcmVhZCBm YWlsZWQgKGFzIGFsd2F5cworZmFpbGVkIHNvIGZvciBmb3IgUElFIGF0dGFjaGVzIGZpcnN0LCBz dWNjZWVkZWQgbGF0ZXIgc28gbm9ib2R5IGhhcyBub3RpY2VkCithbnl0aGluZykuCisKK1RoZSBz dWNjZXNzZnVsIHJlYWQgcmVhZHMgYSBib2d1cyBEVF9ERUJVRyB2YWx1ZSBhbmQgR0RCIGVycm9y cyBvbiBpdCBsYXRlci4KK1RoaXMgaXMgYWdhaW4gYSBub24tZmF0YWwgZXJyb3IgYWZ0ZXIgdGhl IHBhdGNoIGJ5IEpvZWwgQnJvYmVja2VyIGFib3ZlIGJ1dCBpdAord2FzIG5vdCBzbyBiZWZvcmUg YW5kIGl0IGlzIGluY29ycmVjdCBhbnl3YXkuCisKK1RoZSBzdnI0X3JlbG9jYXRlX21haW5fZXhl Y3V0YWJsZSBjYWxsIGluIHN2cjRfc3BlY2lhbF9zeW1ib2xfaGFuZGxpbmcgd2FzCit0aGVyZSBi ZWZvcmUgZGVsYXllZCB0aGF0IHdheSBmb3Igc3ZyNF9zdGF0aWNfZXhlY19kaXNwbGFjZW1lbnQu CitCdXQgc3ZyNF9zdGF0aWNfZXhlY19kaXNwbGFjZW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCBpbiB0 aGUgbWVhbnRpbWUgYnk6CisJUmU6IFJGQzogVmVyaWZ5IEFUX0VOVFJZIGJlZm9yZSB1c2luZyBp dAorCWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAwMDMw Lmh0bWwKKworU28gaXQgY2FuIGJlIHNpbXBsaWZpZWQgKyBjb3JyZWN0ZWQgbm93LiAgTW9yZW92 ZXIgR0RCIHdpbGwgbm93IGZpbmFsbHkgcHJpbnQKK2V4YWN0bHkgIlVzaW5nIFBJRSAoUG9zaXRp b24gSW5kZXBlbmRlbnQgRXhlY3V0YWJsZSkgZGlzcGxhY2VtZW50IiBleGFjdGx5CitvbmNlLgor CitUaGUgcmVwcm9kdWNlciBkZXBlbmRzIG9uIHZhcmlvdXMgb2Zmc2V0cyB3aGljaCBtYXkgYmUg ZGlzdHJvIGRlcGVuZGVudCBidXQgaXQKK3dhcyBtYWRlIHNvIHRoYXQgaXQgaXMgaG9wZWZ1bGx5 IHJlcHJvZHVjaWJsZSBldmVyeXdoZXJlLiAgUmVwcm9kdWNlZCArIGZpeGVkCitvbiBGZWRvcmEg MTIgeDg2XzY0IGFuZCBpNjg2LgorCitObyByZWdyZXNzaW9ucyBvbiB7eDg2XzY0LHg4Nl82NC1t MzIsaTY4Nn0tZmVkb3JhMTItbGludXgtZ251IGZvciB0aGUgd2hvbGUKK3BhdGNoIHNlcmllcyB0 b2dldGhlci4KKworCitUaGFua3MsCitKYW4KKworCitnZGIvCisyMDEwLTAzLTI5ICBKYW4gS3Jh dG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIGF1eHYuYyAobWVtb3J5 X3hmZXJfYXV4dik6IFVwZGF0ZSBhdHRhY2ggY29tbWVudC4KKwkqIHNvbGliLXN2cjQuYyAoc3Zy NF9zcGVjaWFsX3N5bWJvbF9oYW5kbGluZyk6IFJlbW92ZSB0aGUgY2FsbCB0bworCXN2cjRfcmVs b2NhdGVfbWFpbl9leGVjdXRhYmxlLgorCShzdnI0X3NvbGliX2NyZWF0ZV9pbmZlcmlvcl9ob29r KTogTWFrZSB0aGUgY2FsbCB0bworCXN2cjRfcmVsb2NhdGVfbWFpbl9leGVjdXRhYmxlIHVuY29u ZGl0aW9uYWwuCisKK2dkYi90ZXN0c3VpdGUvCisyMDEwLTAzLTI5ICBKYW4gS3JhdG9jaHZpbCAg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIGdkYi5iYXNlL2F0dGFjaC1waWUtbWlz cmVhZC5leHAsIGdkYi5iYXNlL2F0dGFjaC1waWUtbWlzcmVhZC5jOiBOZXcuCisKKy0tLSBhL2dk Yi9hdXh2LmMKKysrKyBiL2dkYi9hdXh2LmMKK0BAIC0xOTgsNyArMTk4LDggQEAgbWVtb3J5X3hm ZXJfYXV4diAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywKKyAKKyAgICAvKiBsZF9zb194ZmVyX2F1 eHYgaXMgdGhlIG9ubHkgZnVuY3Rpb24gc2FmZSBmb3IgdmlydHVhbCBleGVjdXRhYmxlcyBiZWlu ZworICAgICAgIGV4ZWN1dGVkIGJ5IHZhbGdyaW5kJ3MgbWVtY2hlY2suICBBcyB1c2luZyBsZF9z b194ZmVyX2F1eHYgaXMgcHJvYmxlbWF0aWMKKy0gICAgICBkdXJpbmcgaW5mZXJpb3Igc3RhcnR1 cCBHREIgZG9lcyBjYWxsIGl0IG9ubHkgZm9yIGF0dGFjaGVkIHByb2Nlc3Nlcy4gICovCisrICAg ICAgZHVyaW5nIGluZmVyaW9yIHN0YXJ0dXAgYXMgbGQuc28gc3ltYm9sIHRhYmxlcyBhcmUgbm90 IHlldCByZWxvY2F0ZWQgR0RCCisrICAgICAgY2FsbHMgbGRfc29feGZlcl9hdXh2IG9ubHkgZm9y IGF0dGFjaGVkIHByb2Nlc3Nlcy4gICovCisgCisgICBpZiAoY3VycmVudF9pbmZlcmlvciAoKS0+ YXR0YWNoX2ZsYWcgIT0gMCkKKyAgICAgeworLS0tIGEvZ2RiL3NvbGliLXN2cjQuYworKysrIGIv Z2RiL3NvbGliLXN2cjQuYworQEAgLTE2MjgsNyArMTYyOCw2IEBAIGVuYWJsZV9icmVhayAoc3Ry dWN0IHN2cjRfaW5mbyAqaW5mbywgaW50IGZyb21fdHR5KQorIHN0YXRpYyB2b2lkCisgc3ZyNF9z cGVjaWFsX3N5bWJvbF9oYW5kbGluZyAodm9pZCkKKyB7CistICBzdnI0X3JlbG9jYXRlX21haW5f ZXhlY3V0YWJsZSAoKTsKKyB9CisgCisgLyogUmVhZCB0aGUgRUxGIHByb2dyYW0gaGVhZGVycyBm cm9tIEFCRkQuICBSZXR1cm4gdGhlIGNvbnRlbnRzIGFuZAorQEAgLTIwNjUsOCArMjA2NCw3IEBA IHN2cjRfc29saWJfY3JlYXRlX2luZmVyaW9yX2hvb2sgKGludCBmcm9tX3R0eSkKKyAgIGluZm8g PSBnZXRfc3ZyNF9pbmZvICgpOworIAorICAgLyogUmVsb2NhdGUgdGhlIG1haW4gZXhlY3V0YWJs ZSBpZiBuZWNlc3NhcnkuICAqLworLSAgaWYgKGN1cnJlbnRfaW5mZXJpb3IgKCktPmF0dGFjaF9m bGFnID09IDApCistICAgIHN2cjRfcmVsb2NhdGVfbWFpbl9leGVjdXRhYmxlICgpOworKyAgc3Zy NF9yZWxvY2F0ZV9tYWluX2V4ZWN1dGFibGUgKCk7CisgCisgICBpZiAoIXN2cjRfaGF2ZV9saW5r X21hcF9vZmZzZXRzICgpKQorICAgICByZXR1cm47CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC1waWUtbWlzcmVhZC5jCitAQCAtMCwwICsxLDQ3IEBA CisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysK KysgICBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysg ICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPHN0 ZGlvLmg+CisrI2luY2x1ZGUgPHVuaXN0ZC5oPgorKworK2NvbnN0IGNoYXIgc3R1YltdID0gewor KyNpZmRlZiBHRU4KKysjIGluY2x1ZGUgR0VOCisrI2VuZGlmCisrfTsKKysKKytpbnQKKyttYWlu IChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisreworKyAgLyogR2VuZXJhdG9yIG9mIEdFTiB3cml0 dGVuIGluIFB5dGhvbiB0YWtlcyBhYm91dCAxNXMgZm9yIHg4Nl82NCdzIDRNQi4gICovCisrICBp ZiAoYXJnYyA9PSAyKQorKyAgICB7CisrICAgICAgbG9uZyBjb3VudCA9IHN0cnRvbCAoYXJndlsx XSwgTlVMTCwgMCk7CisrCisrICAgICAgd2hpbGUgKGNvdW50LS0gPiAwKQorKwlwdXRzICgiMHg1 NSwiKTsKKysKKysgICAgICByZXR1cm4gMDsKKysgICAgfQorKyAgaWYgKGFyZ2MgIT0gMSkKKysg ICAgcmV0dXJuIDE7CisrCisrICBwdXRzICgic2xlZXBpbmciKTsKKysgIGZmbHVzaCAoc3Rkb3V0 KTsKKysKKysgIHJldHVybiBzbGVlcCAoNjApOworK30KKy0tLSAvZGV2L251bGwKKysrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLXBpZS1taXNyZWFkLmV4cAorQEAgLTAsMCArMSwy MDkgQEAKKysjIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr IyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor KyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFRoaXMgdGVzdCBvbmx5IHdv cmtzIG9uIEdOVS9MaW51eC4KKytpZiB7ICFbaXNuYXRpdmVdIHx8IFtpc19yZW1vdGUgaG9zdF0g fHwgIVtpc3RhcmdldCAqLWxpbnV4Kl0gfHwgW3NraXBfc2hsaWJfdGVzdHNdfSB7CisrICAgIGNv bnRpbnVlCisrfQorKworK3NldCB0ZXN0ICJhdHRhY2gtcGllLW1pc3JlYWQiCisrc2V0IHNyY2Zp bGUgJHt0ZXN0fS5jCisrc2V0IGdlbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3R9LWdl bi5oCisrc2V0IGV4ZWN1dGFibGUgJHt0ZXN0fQorK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1 YmRpcn0vJHtleGVjdXRhYmxlfQorKworK2lmIHtbYnVpbGRfZXhlY3V0YWJsZSAke3Rlc3R9LmV4 cCAkZXhlY3V0YWJsZSAkc3JjZmlsZSBbbGlzdCAiYWRkaXRpb25hbF9mbGFncz0tZlBJRSAtcGll Il1dID09IC0xfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKysjIFByb2dyYW0gSGVhZGVyczoK KysjICAgVHlwZSAgICAgICAgICAgT2Zmc2V0ICAgVmlydEFkZHIgICAgICAgICAgIFBoeXNBZGRy ICAgICAgICAgICBGaWxlU2l6ICBNZW1TaXogICBGbGcgQWxpZ24KKysjICAgTE9BRCAgICAgICAg ICAgMHgwMDAwMDAgMHgwMDAwMDAwMDAwNDAwMDAwIDB4MDAwMDAwMDAwMDQwMDAwMCAweDEzNGY1 ZWMgMHgxMzRmNWVjIFIgRSAweDIwMDAwMAorKyMgICBMT0FEICAgICAgICAgICAweDEzNGY1ZjAg MHgwMDAwMDAwMDAxOTRmNWYwIDB4MDAwMDAwMDAwMTk0ZjVmMCAweDFkYmM2MCAweDIxNDA4OCBS VyAgMHgyMDAwMDAKKysjICAgRFlOQU1JQyAgICAgICAgMHgxMzRmNjE4IDB4MDAwMDAwMDAwMTk0 ZjYxOCAweDAwMDAwMDAwMDE5NGY2MTggMHgwMDAyMDAgMHgwMDAyMDAgUlcgIDB4OAorKyMKKytw cm9jIHJlYWRfcGhkciB7YmluZmlsZSB0ZXN0fSB7CisrICAgIHNldCByZWFkZWxmX3Byb2dyYW0g W3RyYW5zZm9ybSByZWFkZWxmXQorKyAgICBzZXQgY29tbWFuZCAiZXhlYyAkcmVhZGVsZl9wcm9n cmFtIC1XbCAkYmluZmlsZSIKKysgICAgdmVyYm9zZSAtbG9nICJjb21tYW5kIGlzICRjb21tYW5k IgorKyAgICBzZXQgcmVzdWx0IFtjYXRjaCAkY29tbWFuZCBvdXRwdXRdCisrICAgIHZlcmJvc2Ug LWxvZyAicmVzdWx0IGlzICRyZXN1bHQiCisrICAgIHZlcmJvc2UgLWxvZyAib3V0cHV0IGlzICRv dXRwdXQiCisrICAgIGlmIHskcmVzdWx0ICE9IDB9IHsKKysJZmFpbCAkdGVzdAorKwlyZXR1cm4K KysgICAgfQorKyAgICBpZiAhW3JlZ2V4cCB7XG5Qcm9ncmFtIEhlYWRlcnM6XG4gKlR5cGUgW15c bl0qIEFsaWduXG4oLio/KVxuXG59ICRvdXRwdXQgdHJhc2ggcGhkcl0geworKwlmYWlsICIkdGVz dCAobm8gUHJvZ3JhbSBIZWFkZXJzKSIKKysJcmV0dXJuCisrICAgIH0KKysgICAgaWYgIVtyZWdl eHAgLWxpbmUge14gKkRZTkFNSUMgKzB4WzAtOWEtZl0rICsoMHhbMC05YS1mXSspIH0gJHBoZHIg dHJhc2ggZHluYW1pY192YWRkcl0geworKwlmYWlsICIkdGVzdCAobm8gRFlOQU1JQyBmb3VuZCki CisrCXJldHVybgorKyAgICB9CisrICAgIHZlcmJvc2UgLWxvZyAiZHluYW1pY192YWRkciBpcyAk ZHluYW1pY192YWRkciIKKysgICAgc2V0IGFsaWduX21heCAtMQorKyAgICBmb3JlYWNoIHt0cmFz aCBhbGlnbn0gW3JlZ2V4cCAtbGluZSAtYWxsIC1pbmxpbmUge14gKkxPQUQgLiogKDB4WzAtOV0r KSR9ICRwaGRyXSB7CisrCWlmIHskYWxpZ25fbWF4IDwgJGFsaWdufSB7CisrCSAgICBzZXQgYWxp Z25fbWF4ICRhbGlnbgorKwl9CisrICAgIH0KKysgICAgdmVyYm9zZSAtbG9nICJhbGlnbl9tYXgg aXMgJGFsaWduX21heCIKKysgICAgaWYgeyRhbGlnbl9tYXggPT0gLTF9IHsKKysJZmFpbCAiJHRl c3QgKG5vIExPQUQgZm91bmQpIgorKwlyZXR1cm4KKysgICAgfQorKyAgICBwYXNzICR0ZXN0Cisr ICAgIHJldHVybiBbbGlzdCAkZHluYW1pY192YWRkciAkYWxpZ25fbWF4XQorK30KKysKKytzZXQg cGhkciBbcmVhZF9waGRyICRiaW5maWxlICJyZWFkZWxmIGluaXRpYWwgc2NhbiJdCisrc2V0IGR5 bmFtaWNfdmFkZHIgW2xpbmRleCAkcGhkciAwXQorK3NldCBhbGlnbl9tYXggW2xpbmRleCAkcGhk ciAxXQorKworK3NldCBzdHViX3NpemUgW2Zvcm1hdCAweCV4IFtleHByICIyICogJGFsaWduX21h eCAtICgkZHluYW1pY192YWRkciAmICgkYWxpZ25fbWF4IC0gMSkpIl1dCisrdmVyYm9zZSAtbG9n ICJzdHViX3NpemUgaXMgJHN0dWJfc2l6ZSIKKysKKysjIE9uIHg4Nl82NCBpdCBpcyBjb21tb25s eSBhYm91dCA0TUIuCisraWYgeyRzdHViX3NpemUgPiAyNTAwMDAwMH0geworKyAgICB4ZmFpbCAi c3R1YiBzaXplICRzdHViX3NpemUgaXMgdG9vIGxhcmdlIgorKyAgICByZXR1cm4KKyt9CisrCisr c2V0IHRlc3QgImdlbmVyYXRlIHN0dWIiCisrc2V0IGNvbW1hbmQgImV4ZWMgJGJpbmZpbGUgJHN0 dWJfc2l6ZSA+JGdlbmZpbGUiCisrdmVyYm9zZSAtbG9nICJjb21tYW5kIGlzICRjb21tYW5kIgor K3NldCByZXN1bHQgW2NhdGNoICRjb21tYW5kIG91dHB1dF0KKyt2ZXJib3NlIC1sb2cgInJlc3Vs dCBpcyAkcmVzdWx0IgorK3ZlcmJvc2UgLWxvZyAib3V0cHV0IGlzICRvdXRwdXQiCisraWYgeyRy ZXN1bHQgPT0gMH0geworKyAgICBwYXNzICR0ZXN0CisrfSBlbHNlIHsKKysgICAgZmFpbCAkdGVz dAorK30KKysKKytpZiB7W2J1aWxkX2V4ZWN1dGFibGUgJHt0ZXN0fS5leHAgJGV4ZWN1dGFibGUg JHNyY2ZpbGUgW2xpc3QgImFkZGl0aW9uYWxfZmxhZ3M9LWZQSUUgLXBpZSAtREdFTj1cIiRnZW5m aWxlXCIiXV0gPT0gLTF9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgeDg2XzY0IGZpbGUg aGFzIDI1TUIsIG5vIG5lZWQgdG8ga2VlcCBpdC4KKytmaWxlIGRlbGV0ZSAtLSAkZ2VuZmlsZQor KworK3NldCBwaGRyIFtyZWFkX3BoZHIgJGJpbmZpbGUgInJlYWRlbGYgcmVidWlsdCB3aXRoIHN0 dWJfc2l6ZSJdCisrc2V0IGR5bmFtaWNfdmFkZHJfcHJlbGlua25vIFtsaW5kZXggJHBoZHIgMF0K KysKKytzZXQgY29tbWFuZCAiZXhlYyAvdXNyL3NiaW4vcHJlbGluayAtcSAtTiAtLW5vLWV4ZWMt c2hpZWxkIC1SICRiaW5maWxlIgorK3ZlcmJvc2UgLWxvZyAiY29tbWFuZCBpcyAkY29tbWFuZCIK KytzZXQgcmVzdWx0IFtjYXRjaCAkY29tbWFuZCBvdXRwdXRdCisrdmVyYm9zZSAtbG9nICJyZXN1 bHQgaXMgJHJlc3VsdCIKKyt2ZXJib3NlIC1sb2cgIm91dHB1dCBpcyAkb3V0cHV0IgorKworK3Nl dCB0ZXN0ICJwcmVsaW5rIC1SIgorK2lmIHskcmVzdWx0ID09IDAgJiYgJG91dHB1dCA9PSAiIn0g eworKyAgICBwYXNzICR0ZXN0CisrfSBlbHNlaWYgeyRyZXN1bHQgPT0gMSAmJiBbcmVnZXhwIHte KGNvdWxkbid0IGV4ZWN1dGUgIi91c3Ivc2Jpbi9wcmVsaW5rW15cclxuXSoiOiBubyBzdWNoIGZp bGUgb3IgZGlyZWN0b3J5XG4/KSokfSAkb3V0cHV0XX0geworKyAgICB1bnRlc3RlZCBhdHRhY2gt cGllLW1pc3JlYWQuZXhwCisrICAgIHJldHVybiAtMQorK30gZWxzZSB7CisrICAgIGZhaWwgJHRl c3QKKyt9CisrCisrc2V0IHBoZHIgW3JlYWRfcGhkciAkYmluZmlsZSAicmVhZGVsZiB3aXRoIHBy ZWxpbmsgLVIiXQorK3NldCBkeW5hbWljX3ZhZGRyX3ByZWxpbmt5ZXMgW2xpbmRleCAkcGhkciAw XQorKworK3NldCBmaXJzdF9vZmZzZXQgW2Zvcm1hdCAweCV4IFtleHByICRkeW5hbWljX3ZhZGRy X3ByZWxpbmt5ZXMgLSAkZHluYW1pY192YWRkcl9wcmVsaW5rbm9dXQorK3ZlcmJvc2UgLWxvZyAi Zmlyc3Rfb2Zmc2V0IGlzICRmaXJzdF9vZmZzZXQiCisrCisrc2V0IHRlc3QgImZpcnN0IG9mZnNl dCBpcyBub24temVybyIKKytpZiB7JGZpcnN0X29mZnNldCA9PSAwfSB7CisrICAgIGZhaWwgIiR0 ZXN0ICgtZlBJRSAtcGllIGluIGVmZmVjdD8pIgorK30gZWxzZSB7CisrICAgIHBhc3MgJHRlc3QK Kyt9CisrCisrc2V0IHRlc3QgInN0YXJ0IGluZmVyaW9yIgorK2dkYl9leGl0CisrCisrc2V0IHJl cyBbcmVtb3RlX3NwYXduIGhvc3QgJGJpbmZpbGVdOworK2lmIHsgJHJlcyA8IDAgfHwgJHJlcyA9 PSAiIiB9IHsKKysgICAgcGVycm9yICJTcGF3bmluZyAkYmluZmlsZSBmYWlsZWQuIgorKyAgICBm YWlsICR0ZXN0CisrICAgIHJldHVybgorK30KKytzZXQgcGlkIFtleHBfcGlkIC1pICRyZXNdCisr Z2RiX2V4cGVjdCB7CisrICAgIC1yZSAic2xlZXBpbmdcclxuIiB7CisrCXBhc3MgJHRlc3QKKysg ICAgfQorKyAgICBlb2YgeworKwlmYWlsICIkdGVzdCAoZW9mKSIKKysJcmVtb3RlX2V4ZWMgaG9z dCAia2lsbCAtOSAkcGlkIgorKwlyZXR1cm4KKysgICAgfQorKyAgICB0aW1lb3V0IHsKKysJZmFp bCAiJHRlc3QgKHRpbWVvdXQpIgorKwlyZW1vdGVfZXhlYyBob3N0ICJraWxsIC05ICRwaWQiCisr CXJldHVybgorKyAgICB9CisrfQorKworKyMgRHVlIHRvIGFsaWdubWVudHMgaXQgd2FzIHJlcHJv ZHVjaWJsZSB3aXRoIDEgb24geDg2XzY0IGJ1dCAyIG9uIGk2ODYuCisrZm9yZWFjaCBhbGlnbl9t dWx0IHsxIDJ9IHsKKysgICAgc2V0IG9sZF9sZHByZWZpeCAkcGZfcHJlZml4CisrICAgIGxhcHBl bmQgcGZfcHJlZml4ICJzaGlmdC1ieS0kYWxpZ25fbXVsdDoiCisrCisrICAgICMgRklYTUU6IFdl IGJlbGlldmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdW5kZXIgRklSU1RfT0ZGU0VULgorKyAgICBz ZXQgc2hpZnRlZF9vZmZzZXQgW2Zvcm1hdCAweCV4IFtleHByICIkZmlyc3Rfb2Zmc2V0IC0gJGFs aWduX211bHQgKiAkYWxpZ25fbWF4Il1dCisrICAgIHZlcmJvc2UgLWxvZyAic2hpZnRlZF9vZmZz ZXQgaXMgJHNoaWZ0ZWRfb2Zmc2V0IgorKworKyAgICBzZXQgY29tbWFuZCAiZXhlYyAvdXNyL3Ni aW4vcHJlbGluayAtcSAtTiAtLW5vLWV4ZWMtc2hpZWxkIC1yICRzaGlmdGVkX29mZnNldCAkYmlu ZmlsZSIKKysgICAgdmVyYm9zZSAtbG9nICJjb21tYW5kIGlzICRjb21tYW5kIgorKyAgICBzZXQg cmVzdWx0IFtjYXRjaCAkY29tbWFuZCBvdXRwdXRdCisrICAgIHZlcmJvc2UgLWxvZyAicmVzdWx0 IGlzICRyZXN1bHQiCisrICAgIHZlcmJvc2UgLWxvZyAib3V0cHV0IGlzICRvdXRwdXQiCisrCisr ICAgIHNldCB0ZXN0ICJwcmVsaW5rIC1yIgorKyAgICBpZiB7JHJlc3VsdCA9PSAwICYmICRvdXRw dXQgPT0gIiJ9IHsKKysJcGFzcyAkdGVzdAorKyAgICB9IGVsc2UgeworKwlmYWlsICR0ZXN0Cisr ICAgIH0KKysKKysgICAgY2xlYW5fcmVzdGFydCAkZXhlY3V0YWJsZQorKworKyAgICBzZXQgdGVz dCAiYXR0YWNoIgorKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAiYXR0YWNoICRwaWQiICR0ZXN0IHsK KysJLXJlICJBdHRhY2hpbmcgdG8gcHJvZ3JhbTogLiosIHByb2Nlc3MgJHBpZFxyXG4iIHsKKysJ ICAgICMgTWlzc2luZyAiJGdkYl9wcm9tcHQgJCIgaXMgaW50ZW50aW9uYWwuCisrCSAgICBwYXNz ICR0ZXN0CisrCX0KKysgICAgfQorKworKyAgICBzZXQgdGVzdCAiZXJyb3Igb24gQ2Fubm90IGFj Y2VzcyBtZW1vcnkgYXQgYWRkcmVzcyIKKysgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3Qg eworKwktcmUgIlxyXG5DYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIC4qJGdkYl9wcm9t cHQgJCIgeworKwkgICAgZmFpbCAkdGVzdAorKwl9CisrCS1yZSAiJGdkYl9wcm9tcHQgJCIgewor KwkgICAgcGFzcyAkdGVzdAorKwl9CisrICAgIH0KKysKKysgICAgZ2RiX3Rlc3QgImRldGFjaCIg IkRldGFjaGluZyBmcm9tIHByb2dyYW06IC4qIgorKworKyAgICBzZXQgcGZfcHJlZml4ICRvbGRf bGRwcmVmaXgKKyt9CisrCisrcmVtb3RlX2V4ZWMgaG9zdCAia2lsbCAtOSAkcGlkIgorLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVhay1pbnRlcnAuZXhwCisrKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2JyZWFrLWludGVycC5leHAKK0BAIC0yNDgsOSArMjQ4LDggQEAgcHJvYyBy ZWFjaCB7ZnVuYyBjb21tYW5kIGRpc3BsYWNlbWVudH0geworIAkJfQorIAkJaWYgeyRkaXNwbGFj ZW1lbnQgPT0gJGNhc2V9IHsKKyAJCSAgICBwYXNzICR0ZXN0X2Rpc3BsYWNlbWVudAorLQkJICAg ICMgUGVybWl0IG11bHRpcGxlIHN1Y2ggbWVzc2FnZXMuCisgCQkgICAgc2V0IGRpc3BsYWNlbWVu dCAiRk9VTkQtJGRpc3BsYWNlbWVudCIKKy0JCX0gZWxzZWlmIHskZGlzcGxhY2VtZW50ICE9ICJG T1VORC0kY2FzZSJ9IHsKKysJCX0gZWxzZSB7CisgCQkgICAgZmFpbCAkdGVzdF9kaXNwbGFjZW1l bnQKKyAJCX0KKyAJCWV4cF9jb250aW51ZQorQEAgLTMwNCw5ICszMDMsOCBAQCBwcm9jIHRlc3Rf Y29yZSB7ZmlsZSBkaXNwbGFjZW1lbnR9IHsKKyAJICAgIH0KKyAJICAgIGlmIHskZGlzcGxhY2Vt ZW50ID09ICRjYXNlfSB7CisgCQlwYXNzICR0ZXN0X2Rpc3BsYWNlbWVudAorLQkJIyBQZXJtaXQg bXVsdGlwbGUgc3VjaCBtZXNzYWdlcy4KKyAJCXNldCBkaXNwbGFjZW1lbnQgIkZPVU5ELSRkaXNw bGFjZW1lbnQiCistCSAgICB9IGVsc2VpZiB7JGRpc3BsYWNlbWVudCAhPSAiRk9VTkQtJGNhc2Ui fSB7CisrCSAgICB9IGVsc2UgeworIAkJZmFpbCAkdGVzdF9kaXNwbGFjZW1lbnQKKyAJICAgIH0K KyAJICAgIGV4cF9jb250aW51ZQorQEAgLTM2Miw5ICszNjAsOCBAQCBwcm9jIHRlc3RfYXR0YWNo X2dkYiB7ZmlsZSBwaWQgZGlzcGxhY2VtZW50IHByZWZpeH0geworIAkgICAgfQorIAkgICAgaWYg eyRkaXNwbGFjZW1lbnQgPT0gJGNhc2V9IHsKKyAJCXBhc3MgJHRlc3RfZGlzcGxhY2VtZW50Cist CQkjIFBlcm1pdCBtdWx0aXBsZSBzdWNoIG1lc3NhZ2VzLgorIAkJc2V0IGRpc3BsYWNlbWVudCAi Rk9VTkQtJGRpc3BsYWNlbWVudCIKKy0JICAgIH0gZWxzZWlmIHskZGlzcGxhY2VtZW50ICE9ICJG T1VORC0kY2FzZSJ9IHsKKysJICAgIH0gZWxzZSB7CisgCQlmYWlsICR0ZXN0X2Rpc3BsYWNlbWVu dAorIAkgICAgfQorIAkgICAgZXhwX2NvbnRpbnVlCitAQCAtNDUxLDkgKzQ0OCw3IEBACisgICAg IGdkYl90ZXN0ICJidCIgIiMwICtcW15cclxuXF0qXFxtZGxfbWFpblxcTS4qIiAiZGwgYnQiCisg CisgICAgIGlmICRpZm1haW4geworLQkjIERpc3BsYWNlbWVudCBtZXNzYWdlIHdpbGwgYmUgcHJp bnRlZCB0aGUgc2Vjb25kIHRpbWUgb24gaW5pdGlhbGl6aW5nCistCSMgdGhlIGxpbmtlciBmcm9t IHN2cjRfc3BlY2lhbF9zeW1ib2xfaGFuZGxpbmcuCistCXJlYWNoICJtYWluIiBjb250aW51ZSAk ZGlzcGxhY2VtZW50CisrCXJlYWNoICJtYWluIiBjb250aW51ZSAiTk9ORSIKKyAKKyAJcmVhY2gg ImxpYmZ1bmMiIGNvbnRpbnVlICJOT05FIgorIAorQEAgLTUyOCw5ICs1MTcsOCBAQCBwcm9jIHRl c3RfbGQge2ZpbGUgaWZtYWluIHRyeW5vc3ltIGRpc3BsYWNlbWVudH0geworIAkJfQorIAkJaWYg eyRkaXNwbGFjZW1lbnQgPT0gJGNhc2V9IHsKKyAJCSAgICBwYXNzICR0ZXN0X2Rpc3BsYWNlbWVu dAorLQkJICAgICMgUGVybWl0IG11bHRpcGxlIHN1Y2ggbWVzc2FnZXMuCisgCQkgICAgc2V0IGRp c3BsYWNlbWVudCAiRk9VTkQtJGRpc3BsYWNlbWVudCIKKy0JCX0gZWxzZWlmIHskZGlzcGxhY2Vt ZW50ICE9ICJGT1VORC0kY2FzZSJ9IHsKKysJCX0gZWxzZSB7CisgCQkgICAgZmFpbCAkdGVzdF9k aXNwbGFjZW1lbnQKKyAJCX0KKyAJCWV4cF9jb250aW51ZQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXBp ZS1yZXJ1bi5wYXRjaCBiL2dkYi1waWUtcmVydW4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZGQwNjgwNQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1waWUtcmVydW4u cGF0Y2gKQEAgLTAsMCArMSwxMjcgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0 Y2hlcy8yMDEwLTAzL21zZzAwODY4Lmh0bWwKK1N1YmplY3Q6IFtwYXRjaF0gUElFOiBGaXggYmFj ayByZS1ydW4gIFtSZTogW3BhdGNoXSBzdnI0X2V4ZWNfZGlzcGxhY2VtZW50ICBzdWNjZXNzIGlu ZGljYXRvcl0KKworSGksCisKK2N1cnJlbnRseToKKworJCBlY2hvICdtYWluKCl7fSd8Z2NjIC1v IDEgLWZQSUUgLXBpZSAteCBjIC07IC4vZ2RiIC1ueCAtZXggJ3NldCBkaXNhYmxlLXJhbmRvbWl6 YXRpb24gb2ZmJyAtZXggJ2IgbWFpbicgLWV4IHIgLWV4IGMgLWV4IHIgLi8xCitCcmVha3BvaW50 IDEgYXQgMHg2YjAKK1N0YXJ0aW5nIHByb2dyYW06IC9ob21lL2prcmF0b2NoL3JlZGhhdC9nZGIt Y2xlYW4vZ2RiL3Rlc3RzdWl0ZS8xIAorQnJlYWtwb2ludCAxLCAweDAwMDA3ZmJmNzNlOGM2YjAg aW4gbWFpbiAoKQorQ29udGludWluZy4KK1Byb2dyYW0gZXhpdGVkIHdpdGggY29kZSAwMTQwLgor U3RhcnRpbmcgcHJvZ3JhbTogL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi1jbGVhbi9nZGIvdGVz dHN1aXRlLzEgCitFcnJvciBpbiByZS1zZXR0aW5nIGJyZWFrcG9pbnQgMTogQ2Fubm90IGFjY2Vz cyBtZW1vcnkgYXQgYWRkcmVzcyAweDdmYmY3M2U4YzZhYworCitJdCBpcyBzaW5jZToKKwlbcGF0 Y2hdIHN2cjRfZXhlY19kaXNwbGFjZW1lbnQgc3VjY2VzcyBpbmRpY2F0b3IgW1JlOiBQSUUgcXVl c3Rpb25dCisJaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDMvbXNn MDAzMzYuaHRtbAorCisKK09uIE1vbiwgMDggTWFyIDIwMTAgMjI6NTM6NTggKzAxMDAsIEphbiBL cmF0b2NodmlsIHdyb3RlOgorPiBBdHRhY2hlZCB0aGVzZSBjaGFuZ2VzOgorPiAKKz4gKiBzdnI0 X2V4ZWNfZGlzcGxhY2VtZW50IGNhbGxpbmcgY29udmVudGlvbiBzaG91bGQgaGF2ZSBzdWNjZXNz IGluZGljYXRvci4KKz4gCis+ICogUHJlc2VydmluZyBub3cgc2VjdGlvbl9vZmZzZXRzIGlmIHRo ZXkgYXJlIGFscmVhZHkgc2V0LCBpbnNwaXJlZCBieQorPiAgIGluaXRfb2JqZmlsZV9zZWN0X2lu ZGljZXMuCis+IAorPiBJIGJlbGlldmUgZWl0aGVyIG9mIHBhcnRzIHdvdWxkIGJlIHN1ZmZpY2ll bnQgZm9yIHRoaXMgcHJvYmxlbS4KKworVGhlIGZpcnN0IHBhcnQgaGFzIGNhdXNlZCB0aGUgcmVn cmVzc2lvbiBmb3IgUElFIG9uIG5hdGl2ZSB4ODYqIEdOVS9MaW51eCBob3N0LgorCitBcyBJIGJl bGlldmUgZm9yIERhbmllbCBKLidzIHNlZW4gcmVncmVzc2lvbiBvZiBgcU9mZnNldHMnIHRoZSBz ZWNvbmQgYWxyZWFkeQorY2hlY2tlZC1pbiBwYXJ0IGlzIHN1ZmZpY2llbnQgLSBJIHdvdWxkIGxp a2UgdG8gcmVtb3ZlIHRoZSBmaXJzdCBwYXJ0LgorCitPSyB0byBjaGVjayBpdCBpbj8KKworTm8g cmVncmVzc2lvbnMgb24ge3g4Nl82NCx4ODZfNjQtbTMyLGk2ODZ9LWZlZG9yYTEyLWxpbnV4LWdu dS4KKworKEkgZG8gbm90IHRoaW5rIG9uZSBuZWVkcyB0byB0aGluayBhYm91dCA3LjEtYnJhbmNo IGFzIGl0IGlzIG5vdCBhIHJlZ3Jlc3Npb24KK2FnYWluc3QgYW55IEZTRiBHREIgcmVsZWFzZS4p CisKKworVGhhbmtzLAorSmFuCisKKworZ2RiLworMjAxMC0wMy0yNSAgSmFuIEtyYXRvY2h2aWwg IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJRml4IHJlLXJ1biBvZiBQSUUgZXhlY3V0 YWJsZS4KKwkqIHNvbGliLXN2cjQuYyAoc3ZyNF9yZWxvY2F0ZV9tYWluX2V4ZWN1dGFibGUpIDxz eW1maWxlX29iamZpbGU+OiBSZW1vdmUKKwl0aGUgcGFydCBvZiBwcmUtc2V0IFNZTUZJTEVfT0JK RklMRS0+U0VDVElPTl9PRkZTRVRTLgorCitnZGIvdGVzdHN1aXRlLworMjAxMC0wMy0yNSAgSmFu IEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJRml4IHJlLXJ1biBv ZiBQSUUgZXhlY3V0YWJsZS4KKwkqIGdkYi5iYXNlL2JyZWFrLWludGVycC5leHAgKHRlc3RfbGQp OiBUdXJuIG9mZiAiZGlzYWJsZS1yYW5kb21pemF0aW9uIi4KKwlSZW1vdmUgJGRpc3BsYWNlbWVu dF9tYWluIHRvIG1hdGNoIHRoZSBzb2xpYi1zdnI0LmMgY2hhbmdlLiAgTmV3ICJraWxsIgorCWFu ZCByZS0icnVuIiBvZiB0aGUgaW5mZXJpb3IuCisKKy0tLSBhL2dkYi9zb2xpYi1zdnI0LmMKKysr KyBiL2dkYi9zb2xpYi1zdnI0LmMKK0BAIC0xNzkxLDE3ICsxNzkxLDEwIEBAIHN2cjRfcmVsb2Nh dGVfbWFpbl9leGVjdXRhYmxlICh2b2lkKQorIHsKKyAgIENPUkVfQUREUiBkaXNwbGFjZW1lbnQ7 CisgCistICBpZiAoc3ltZmlsZV9vYmpmaWxlKQorLSAgICB7CistICAgICAgaW50IGk7CistCist ICAgICAgLyogUmVtb3RlIHRhcmdldCBtYXkgaGF2ZSBhbHJlYWR5IHNldCBzcGVjaWZpYyBvZmZz ZXRzIGJ5IGBxT2Zmc2V0cycKKy0JIHdoaWNoIHNob3VsZCBiZSBwcmVmZXJyZWQuICAqLworLQor LSAgICAgIGZvciAoaSA9IDA7IGkgPCBzeW1maWxlX29iamZpbGUtPm51bV9zZWN0aW9uczsgaSsr KQorLQlpZiAoQU5PRkZTRVQgKHN5bWZpbGVfb2JqZmlsZS0+c2VjdGlvbl9vZmZzZXRzLCBpKSAh PSAwKQorLQkgIHJldHVybjsKKy0gICAgfQorKyAgLyogU1lNRklMRV9PQkpGSUxFLT5TRUNUSU9O X09GRlNFVFMgbWF5IG5vdyBjb250YWluIGRpc3BsYWNlbWVudCBmcm9tIHRoZQorKyAgICAgcHJl dmlvdXMgcnVuIG9mIHRoZSBpbmZlcmlvci4gIFJlLXNldCBpdCBhY2NvcmRpbmcgdG8gdGhlIGN1 cnJlbnQgdmFsdWUsCisrICAgICBpZiB3ZSBjYW4gZmluZCBpdCBvdXQuICBCdXQgb3RoZXJ3aXNl IGtlZXAgaXQgYXMgZm9yIHJlbW90ZSB0YXJnZXQgaXQgbWF5CisrICAgICBoYXZlIGJlZW4gcHJl LXNldCBieSB0aGUgYHFPZmZzZXRzJyBwYWNrZXQuICAqLworIAorICAgaWYgKCEgc3ZyNF9leGVj X2Rpc3BsYWNlbWVudCAoJmRpc3BsYWNlbWVudCkpCisgICAgIHJldHVybjsKKy0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvYnJlYWstaW50ZXJwLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9icmVhay1pbnRlcnAuZXhwCitAQCAtNDE2LDI1ICs0MTYsMjggQEAgcHJvYyB0ZXN0 X2xkIHtmaWxlIGlmbWFpbiB0cnlub3N5bSBkaXNwbGFjZW1lbnR9IHsKKyAgICAgIyBQcmludCB0 aGUgIlBJRSAoUG9zaXRpb24gSW5kZXBlbmRlbnQgRXhlY3V0YWJsZSkgZGlzcGxhY2VtZW50IiBt ZXNzYWdlLgorICAgICBnZGJfdGVzdCAic2V0IHZlcmJvc2Ugb24iCisgCisrICAgICMgQSBiaXQg YmV0dGVyIHRlc3QgY292ZXJhZ2UuCisrICAgIGdkYl90ZXN0ICJzZXQgZGlzYWJsZS1yYW5kb21p emF0aW9uIG9mZiIKKysKKyAgICAgcmVhY2ggImRsX21haW4iICJydW4gc2VndiIgJGRpc3BsYWNl bWVudAorIAorICAgICBnZGJfdGVzdCAiYnQiICIjMCArXFteXHJcblxdKlxcbWRsX21haW5cXE0u KiIgImRsIGJ0IgorIAorICAgICBpZiAkaWZtYWluIHsKKyAJIyBEaXNwbGFjZW1lbnQgbWVzc2Fn ZSB3aWxsIGJlIHByaW50ZWQgdGhlIHNlY29uZCB0aW1lIG9uIGluaXRpYWxpemluZworLQkjIHRo ZSBsaW5rZXIgZnJvbSBzdnI0X3NwZWNpYWxfc3ltYm9sX2hhbmRsaW5nLiAgSWYgYW55IEFOT0ZG U0VUIGhhcworLQkjIGJlZW4gYWxyZWFkeSBzZXQgYXMgbm9uLXplcm8gdGhlIGRldGVjdGlvbiB3 aWxsIG5vIGxvbmdlciBiZSBydW4uCistCWlmIHskZGlzcGxhY2VtZW50ID09ICJOT05aRVJPIn0g eworLQkgICAgc2V0IGRpc3BsYWNlbWVudF9tYWluICJOT05FIgorLQl9IGVsc2UgeworLQkgICAg c2V0IGRpc3BsYWNlbWVudF9tYWluICRkaXNwbGFjZW1lbnQKKy0JfQorLQlyZWFjaCAibWFpbiIg Y29udGludWUgJGRpc3BsYWNlbWVudF9tYWluCisrCSMgdGhlIGxpbmtlciBmcm9tIHN2cjRfc3Bl Y2lhbF9zeW1ib2xfaGFuZGxpbmcuCisrCXJlYWNoICJtYWluIiBjb250aW51ZSAkZGlzcGxhY2Vt ZW50CisgCisgCXJlYWNoICJsaWJmdW5jIiBjb250aW51ZSAiTk9ORSIKKyAKKyAJZ2RiX3Rlc3Qg ImJ0IiAiIzAgK1xbXlxyXG5cXSpcXG1saWJmdW5jXFxNXFteXHJcblxdKlxyXG4jMSArXFteXHJc blxdKlxcbW1haW5cXE0uKiIgIm1haW4gYnQiCisrICAgIH0KKyAKKysgICAgIyBUcnkgcmUtcnVu IGlmIHRoZSBuZXcgUElFIGRpc3BsYWNlbWVudCB0YWtlcyBlZmZlY3QuCisrICAgIGdkYl90ZXN0 ICJraWxsIiAiIiAia2lsbCIge0tpbGwgdGhlIHByb2dyYW0gYmVpbmcgZGVidWdnZWRcPyBcKHkg b3IgblwpIH0gInkiCisrICAgIHJlYWNoICJkbF9tYWluIiAicnVuICBzZWd2IiAkZGlzcGxhY2Vt ZW50CisrCisrICAgIGlmICRpZm1haW4geworIAl0ZXN0X2NvcmUgJGZpbGUgJGRpc3BsYWNlbWVu dAorIAorIAl0ZXN0X2F0dGFjaCAkZmlsZSAkZGlzcGxhY2VtZW50CisKCmRpZmYgLS1naXQgYS9n ZGItcmVhZGxpbmUtNi4wLXNpZ25hbC5wYXRjaCBiL2dkYi1yZWFkbGluZS02LjAtc2lnbmFsLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjhjOGM2Li4wMDAwMDAwCi0tLSBh L2dkYi1yZWFkbGluZS02LjAtc2lnbmFsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjQ4ICsw LDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA5LTExL21zZzAw NTk2Lmh0bWwKLVN1YmplY3Q6IFtnZGIgRllJLXBhdGNoXSBjYWxsYmFjay1tb2RlIHJlYWRsaW5l LTYuMCByZWdyZXNzaW9uCi0KLUhpIENoZXQsCi0KLUZTRiBHREIgY3VycmVudGx5IHNoaXBzIGJ1 bmRsZWQgd2l0aCByZWFkbGluZS01LjIgd2hpY2ggd29ya3MgZmluZS4KLUJ1dCB1c2luZyAtLXdp dGgtc3lzdGVtLXJlYWRsaW5lIGFuZCByZWFkbGluZS02LjAtcGF0Y2hsZXZlbDQgaGFzCi1hIHJl Z3Jlc3Npb246Ci0KLXJlYWRsaW5lLTUuMjogUnVuIGBnZGIgLW54IC1xJyBhbmQgdHlwZSBDVFJM LUM6Ci0oZ2RiKSBRdWl0Ci0oZ2RiKSBfCi0KLXJlYWRsaW5lLTYuMDogUnVuIGBnZGIgLW54IC1x JyBhbmQgdHlwZSBDVFJMLUM6Ci0oZ2RiKSBfCi0gPSBub3RoaW5nIGhhcHBlbnMgKGl0IGdldHMg YnVmZmVyZWQgYW5kIGV4ZWN1dGVkIGxhdGVyKQotCShJdCBkb2VzIGFsc28gRkFJTCBvbiBnZGIu Z2RiL3NlbGZ0ZXN0LmV4cC4pCi0KLUl0IGlzIGJlY2F1c2UgR0RCIHdhaXRzIGluIGl0cyBvd24g cG9sbCgpIG1haW5sb29wIGFuZCByZWFkbGluZSB1c2VzIHZpYQotcmxfY2FsbGJhY2tfaGFuZGxl cl9pbnN0YWxsIGFuZCBybF9jYWxsYmFja19oYW5kbGVyX3JlbW92ZS4gIFRoaXMgd2F5IHRoZQot cmVhZGxpbmUgaW50ZXJuYWwgdmFyaWFibGUgX3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSByZW1h aW5zIDAgYW5kIENUUkwtQyBnZXRzCi1vbmx5IHN0b3JlZCB0byBfcmxfY2F1Z2h0X3NpZ25hbCBi dXQgbm90IGV4ZWN1dGVkLgotCi1TZWVuIGluIHJsX3NpZ25hbF9oYW5kbGVyIGV2ZW4gaWYgX3Js X2ludGVycnVwdF9pbW1lZGlhdGVseSBpcyBzZXQgYW5kCi1fcmxfaGFuZGxlX3NpZ25hbCBpcyBj YWxsZWQgdGhlbiB0aGUgc2lnbmFsIGlzIHN0aWxsIHN0b3JlZCB0bwotX3JsX2NhdWdodF9zaWdu YWwuICBJbiB0aGUgX3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSBjYXNlIGl0IHNob3VsZCBub3Qg YmUKLXN0b3JlZCB3aGVuIGl0IHdhcyBhbHJlYWR5IHByb2Nlc3NlZC4KLQotcmxfc2lnbmFsX2hh bmRsZXIgZG9lcyBgX3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSA9IDA7JyAtIHdoaWxlIEkgYW0g bm90IGF3YXJlCi1vZiBpdHMgbWVhbmluZyBpdCBicmVha3MgdGhlIG5lc3QtY291bnRpbmcgb2Yg b3RoZXIgcm91dGluZXMgd2hpY2ggZG8KLWBfcmxfaW50ZXJydXB0X2ltbWVkaWF0ZWx5Kys7JyBh bmQgYF9ybF9pbnRlcnJ1cHRfaW1tZWRpYXRlbHktLTsnIHBvc3NpYmx5Ci1jcmVhdGluZyBwcm9i bGVtYXRpYyBgX3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSA9PSAtMScuCi0KLWBfcmxfaW50ZXJy dXB0X2ltbWVkaWF0ZWx5JyBpcyBhbiBpbnRlcm5hbCB2YXJpYWJsZSwgaG93IGl0IGNvdWxkIGJl IGFjY2Vzc2VkCi1ieSBhIHJlYWRsaW5lIGFwcGxpY2F0aW9uPyAoT0ssIG1heWJlIGl0IHNob3Vs ZCBub3QgYmUgdXNlZC4pCi0KLUF0dGFjaGluZyBhIGN1cnJlbnQgR0RCLXNpZGUgcGF0Y2ggYnV0 IGl0IG11c3QgYWNjZXNzIHJlYWRsaW5lIGludGVybmFsCi12YXJpYWJsZSBfcmxfY2F1Z2h0X3Np Z25hbCBhbmQgaXQgaXMgZ2VuZXJhbGx5IGp1c3QgYSB3b3JrYXJvdW5kLiAgQ291bGQgeW91Ci1w bGVhc2UgaW5jbHVkZSBzdXBwb3J0IGZvciBzaWduYWxzIGluIHRoaXMgYXN5bmNocm9ub3VzIG1v ZGUgaW4gcmVhZGxpbmUtNi4xPwotSSBmaW5kIGl0IHdvdWxkIGJlIGVub3VnaCB0byBtYWtlIFJM X0NIRUNLX1NJR05BTFMgcHVibGljPwotCi0KLUdEQjogTm8gcmVncmVzc2lvbnMgb24ge3g4Nl82 NCx4ODZfNjQtbTMyLGk2ODZ9LWZlZG9yYTEyLWxpbnV4LWdudS4KLUJ1dCB0aGlzIGlzIG5vdCBh IHBhdGNoIGludGVuZGVkIHRvIGJlIGFjY2VwdGVkLgotCi0KLVRoYW5rcywKLUphbgotCi0KLWdk Yi8KLTIwMDktMTEtMjkgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KLQotCSogY29uZmlnLmluLCBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCi0JKiBjb25maWd1cmUu YWMgKGZvciByZWFkbGluZV9lY2hvaW5nX3ApOiBNb3ZlIGluc2lkZSAkTElCUyBjaGFuZ2UuCi0J KGZvciBfcmxfY2F1Z2h0X3NpZ25hbCk6IE5ldy4KLQkqIGV2ZW50LWxvb3AuYzogSW5jbHVkZSBy ZWFkbGluZS9yZWFkbGluZS5oLgotCShnZGJfZG9fb25lX2V2ZW50KSBbSEFWRV9SRUFETElORV9D QVVHSFRfU0lHTkFMXTogTmV3LgotCi1nZGIvdGVzdHN1aXRlLwotMjAwOS0xMS0yOSAgSmFuIEty YXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIuZ2RiL3NlbGZ0 ZXN0LmV4cCAoYmFja3RyYWNlIHRocm91Z2ggc2lnbmFsIGhhbmRsZXIpOiBNb3ZlIGJlZm9yZQot CVNJR0lOVCBwYXNzLCBkcm9wIHRoZSB0aW1lb3V0IGNhc2UuCi0JKHNlbmQgU0lHSU5UIHNpZ25h bCB0byBjaGlsZCBwcm9jZXNzKTogVXNlIGdkYl90ZXN0LgotCShiYWNrdHJhY2UgdGhyb3VnaCBy ZWFkbGluZSBoYW5kbGVyKTogTmV3LgotCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIv Y29uZmlnLmluCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41MC4yMDEwMDExNS5vcmlnL2dkYi9j b25maWcuaW4JMjAxMC0wMS0xNSAxMjo0ODowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4w LjUwLjIwMTAwMTE1L2dkYi9jb25maWcuaW4JMjAxMC0wMS0xNSAxMjo0ODo0MC4wMDAwMDAwMDAg KzAxMDAKLUBAIC0zNTksNiArMzU5LDkgQEAKLSAvKiBEZWZpbmUgaWYgUHl0aG9uIGludGVycHJl dGVyIGlzIGJlaW5nIGxpbmtlZCBpbi4gKi8KLSAjdW5kZWYgSEFWRV9QWVRIT04KLSAKLSsvKiBy ZWFkbGluZS02LjAgd29ya2Fyb3VuZCBvZiBibG9ja2VkIHNpZ25hbHMuICovCi0rI3VuZGVmIEhB VkVfUkVBRExJTkVfQ0FVR0hUX1NJR05BTAotKwotIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IHRoZSBgcmVhbHBhdGgnIGZ1bmN0aW9uLiAqLwotICN1bmRlZiBIQVZFX1JFQUxQQVRICi0gCi1J bmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvY29uZmlndXJlLmFjCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMC41MC4yMDEwMDExNS5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxMC0wMS0xNSAx Mjo0ODowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTE1L2dkYi9jb25m aWd1cmUuYWMJMjAxMC0wMS0xNSAxMjo0ODo0MC4wMDAwMDAwMDAgKzAxMDAKLUBAIC03NzcsMTcg Kzc3NywyNSBAQCBpZiB0ZXN0ICIkd2l0aF9zeXN0ZW1fcmVhZGxpbmUiID0geWVzOyB0Ci0gICAj IHJlYWRsaW5lLTYuMCBzdGFydGVkIHRvIHVzZSB0aGUgbmFtZSBgX3JsX2VjaG9pbmdfcCcuCi0g ICAjIGAkKFJFQURMSU5FX0RJUikvJyBvZiBidW5kbGVkIHJlYWRsaW5lIHdvdWxkIG5vdCByZXNv bHZlIGluIGNvbmZpZ3VyZS4KLSAKLS0gIEFDX01TR19DSEVDS0lORyhbZm9yIHJlYWRsaW5lX2Vj aG9pbmdfcF0pCi0gICBzYXZlX0xJQlM9JExJQlMKLSAgIExJQlM9IiRMSUJTICRSRUFETElORSIK LSsgIEFDX01TR19DSEVDS0lORyhbZm9yIHJlYWRsaW5lX2VjaG9pbmdfcF0pCi0gICBBQ19MSU5L X0lGRUxTRShBQ19MQU5HX1BST0dSQU0oLFtbZXh0ZXJuIGludCByZWFkbGluZV9lY2hvaW5nX3A7 Ci0gCQkJCSAgICByZXR1cm4gcmVhZGxpbmVfZWNob2luZ19wO11dKSwKLSAJCSBbUkVBRExJTkVf RUNIT0lOR19QPXllc10sCi0gCQkgW1JFQURMSU5FX0VDSE9JTkdfUD1ubwotIAkJICBBQ19ERUZJ TkUoW3JlYWRsaW5lX2VjaG9pbmdfcF0sIFtfcmxfZWNob2luZ19wXSwKLSAJCQkgICAgW3JlYWRs aW5lLTYuMCBzdGFydGVkIHRvIHVzZSBkaWZmZXJlbnQgbmFtZS5dKV0pCi0tICBMSUJTPSIkc2F2 ZV9MSUJTIgotICAgQUNfTVNHX1JFU1VMVChbJFJFQURMSU5FX0VDSE9JTkdfUF0pCi0rICBBQ19N U0dfQ0hFQ0tJTkcoW2ZvciBfcmxfY2F1Z2h0X3NpZ25hbF0pCi0rICBBQ19MSU5LX0lGRUxTRShB Q19MQU5HX1BST0dSQU0oLFtbZXh0ZXJuIGludCB2b2xhdGlsZSBfcmxfY2F1Z2h0X3NpZ25hbDsK LSsJCQkJICAgIHJldHVybiBfcmxfY2F1Z2h0X3NpZ25hbDtdXSksCi0rCQkgW1JFQURMSU5FX0NB VUdIVF9TSUdOQUw9eWVzCi0rCQkgIEFDX0RFRklORShbSEFWRV9SRUFETElORV9DQVVHSFRfU0lH TkFMXSwsCi0rCQkJICAgIFtyZWFkbGluZS02LjAgd29ya2Fyb3VuZCBvZiBibG9ja2VkIHNpZ25h bHMuXSldLAotKwkJIFtSRUFETElORV9DQVVHSFRfU0lHTkFMPW5vXSkKLSsgIEFDX01TR19SRVNV TFQoWyRSRUFETElORV9DQVVHSFRfU0lHTkFMXSkKLSsgIExJQlM9IiRzYXZlX0xJQlMiCi0gZWxz ZQotICAgUkVBRExJTkU9JyQoUkVBRExJTkVfRElSKS9saWJyZWFkbGluZS5hJwotICAgUkVBRExJ TkVfREVQUz0nJChSRUFETElORSknCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZXZl bnQtbG9vcC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41MC4yMDEwMDExNS5vcmlnL2dkYi9l dmVudC1sb29wLmMJMjAxMC0wMS0wMSAwODozMTozMS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGIt Ny4wLjUwLjIwMTAwMTE1L2dkYi9ldmVudC1sb29wLmMJMjAxMC0wMS0xNSAxMjo0ODo0MC4wMDAw MDAwMDAgKzAxMDAKLUBAIC0zNyw2ICszNyw3IEBACi0gI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIK LSAjaW5jbHVkZSAiZ2RiX2Fzc2VydC5oIgotICNpbmNsdWRlICJnZGJfc2VsZWN0LmgiCi0rI2lu Y2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCi0gCi0gLyogRGF0YSBwb2ludCB0byBwYXNzIHRv IHRoZSBldmVudCBoYW5kbGVyLiAgKi8KLSB0eXBlZGVmIHVuaW9uIGV2ZW50X2RhdGEKLUBAIC00 MTEsNiArNDEyLDkgQEAgZ2RiX2RvX29uZV9ldmVudCAodm9pZCAqZGF0YSkKLSAgIHN0YXRpYyBp bnQgZXZlbnRfc291cmNlX2hlYWQgPSAwOwotICAgY29uc3QgaW50IG51bWJlcl9vZl9zb3VyY2Vz ID0gMzsKLSAgIGludCBjdXJyZW50ID0gMDsKLSsjaWZkZWYgSEFWRV9SRUFETElORV9DQVVHSFRf U0lHTkFMCi0rICBleHRlcm4gaW50IHZvbGF0aWxlIF9ybF9jYXVnaHRfc2lnbmFsOwotKyNlbmRp ZgotIAotICAgLyogQW55IGV2ZW50cyBhbHJlYWR5IHdhaXRpbmcgaW4gdGhlIHF1ZXVlPyAgKi8K LSAgIGlmIChwcm9jZXNzX2V2ZW50ICgpKQotQEAgLTQ1NSw2ICs0NTksMTYgQEAgZ2RiX2RvX29u ZV9ldmVudCAodm9pZCAqZGF0YSkKLSAgIGlmIChnZGJfd2FpdF9mb3JfZXZlbnQgKDEpIDwgMCkK LSAgICAgcmV0dXJuIC0xOwotIAotKyNpZmRlZiBIQVZFX1JFQURMSU5FX0NBVUdIVF9TSUdOQUwK LSsgIGlmIChhc3luY19jb21tYW5kX2VkaXRpbmdfcCAmJiBSTF9JU1NUQVRFIChSTF9TVEFURV9D QUxMQkFDSykKLSsgICAgICAmJiBfcmxfY2F1Z2h0X3NpZ25hbCkKLSsgICAgewotKyAgICAgIC8q IENhbGwgUkxfQ0hFQ0tfU0lHTkFMUyB0aGlzIHdheS4gICovCi0rICAgICAgcmxfY2FsbGJhY2tf aGFuZGxlcl9yZW1vdmUgKCk7Ci0rICAgICAgcmxfY2FsbGJhY2tfaGFuZGxlcl9pbnN0YWxsIChO VUxMLCBpbnB1dF9oYW5kbGVyKTsKLSsgICAgfQotKyNlbmRpZgotKwotICAgLyogSGFuZGxlIGFu eSBuZXcgZXZlbnRzIG9jY3VycmVkIHdoaWxlIHdhaXRpbmcuICAqLwotICAgaWYgKHByb2Nlc3Nf ZXZlbnQgKCkpCi0gICAgIHJldHVybiAxOwotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAu NTAuMjAxMDAxMTUub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCTIwMTAt MDEtMTUgMTI6NDg6MDEuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDExNS9n ZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCTIwMTAtMDEtMTUgMTI6NDg6NDAuMDAw MDAwMDAwICswMTAwCi1AQCAtNDcxLDMxICs0NzEsNDIgQEAgR0RCLipDb3B5cmlnaHQgXFswLTlc XSsgRnJlZSBTb2Z0d2FyZSBGbwotIAkgICAgZmFpbCAiJGRlc2NyaXB0aW9uICh0aW1lb3V0KSIK LSAJfQotICAgICB9Ci0tICAgIAotLSAgICBzZXQgZGVzY3JpcHRpb24gInNlbmQgU0lHSU5UIHNp Z25hbCB0byBjaGlsZCBwcm9jZXNzIgotLSAgICBzZW5kX2dkYiAic2lnbmFsIFNJR0lOVFxuIgot LSAgICBnZGJfZXhwZWN0IHsKLS0JLXJlICJDb250aW51aW5nIHdpdGggc2lnbmFsIFNJR0lOVC4q JGdkYl9wcm9tcHQgJCIgewotKwotKyAgICAjIGdldCBhIHN0YWNrIHRyYWNlIHdpdGggdGhlIHBv bGwgZnVuY3Rpb24KLSsgICAgIwotKyAgICAjIFRoaXMgZmFpbHMgb24gc29tZSBsaW51eCBzeXN0 ZW1zIGZvciB1bmtub3duIHJlYXNvbnMuICBPbiB0aGUKLSsgICAgIyBzeXN0ZW1zIHdoZXJlIGl0 IGZhaWxzLCBzb21ldGltZXMgaXQgd29ya3MgZmluZSB3aGVuIHJ1biBtYW51YWxseS4KLSsgICAg IyBUaGUgdGVzdHN1aXRlIGZhaWx1cmVzIG1heSBub3QgYmUgbGltaXRlZCB0byBqdXN0IGFvdXQg c3lzdGVtcy4KLSsgICAgc2V0dXBfeGZhaWwgImkqODYtcGMtbGludXhhb3V0LWdudSIKLSsgICAg c2V0IGRlc2NyaXB0aW9uICJiYWNrdHJhY2UgdGhyb3VnaCBzaWduYWwgaGFuZGxlciIKLSsgICAg Z2RiX3Rlc3RfbXVsdGlwbGUgImJhY2t0cmFjZSIgJGRlc2NyaXB0aW9uIHsKLSsJLXJlICIjMC4q KHJlYWR8cG9sbCkuKmluIG1haW4gXFwoLipcXCkgYXQgLipnZGJcXC5jLiokZ2RiX3Byb21wdCAk IiB7Ci0gCSAgICBwYXNzICIkZGVzY3JpcHRpb24iCi0gCX0KLSAJLXJlICIuKiRnZGJfcHJvbXB0 ICQiIHsKLSsJICAgICMgT24gdGhlIGFscGhhLCB3ZSBoaXQgdGhlIGluZmFtb3VzIHByb2JsZW0g YWJvdXQgZ2RiCi0rCSAgICAjIGJlaW5nIHVuYWJsZSB0byBnZXQgdGhlIGZyYW1lIHBvaW50ZXIg KG1lbnRpb25lZCBpbgotKwkgICAgIyBnZGIvUkVBRE1FKS4gIEFzIGl0IGlzIGludGVybWl0dGVu dCwgdGhlcmUgaXMgbm8gd2F5IHRvCi0rCSAgICAjIFhGQUlMIGl0IHdoaWNoIHdpbGwgZ2l2ZSB1 cyBhbiBYUEFTUyBpZiB0aGUgcHJvYmxlbSBnb2VzCi0rCSAgICAjIGF3YXkuCi0rCSAgICBzZXR1 cF94ZmFpbCAiYWxwaGEqLSotb3NmKiIKLSAJICAgIGZhaWwgIiRkZXNjcmlwdGlvbiIKLSAJfQot LQl0aW1lb3V0IHsKLS0JICAgIGZhaWwgIiRkZXNjcmlwdGlvbiAodGltZW91dCkiCi0tCX0KLSAg ICAgfQotICAgICAKLS0gICAgIyBnZXQgYSBzdGFjayB0cmFjZQotKyAgICBnZGJfdGVzdCAic2ln bmFsIFNJR0lOVCIgIkNvbnRpbnVpbmcgd2l0aCBzaWduYWwgU0lHSU5ULioiIFwKLSsJICAgICAi c2VuZCBTSUdJTlQgc2lnbmFsIHRvIGNoaWxkIHByb2Nlc3MiCi0rICAgIAotKyAgICAjIGdldCBh IHN0YWNrIHRyYWNlIGJlaW5nIHJlZGVsaXZlcmVkIGJ5IHJlYWRsaW5lCi0gICAgICMKLSAgICAg IyBUaGlzIGZhaWxzIG9uIHNvbWUgbGludXggc3lzdGVtcyBmb3IgdW5rbm93biByZWFzb25zLiAg T24gdGhlCi0gICAgICMgc3lzdGVtcyB3aGVyZSBpdCBmYWlscywgc29tZXRpbWVzIGl0IHdvcmtz IGZpbmUgd2hlbiBydW4gbWFudWFsbHkuCi0gICAgICMgVGhlIHRlc3RzdWl0ZSBmYWlsdXJlcyBt YXkgbm90IGJlIGxpbWl0ZWQgdG8ganVzdCBhb3V0IHN5c3RlbXMuCi0rICAgICMgT3B0aW9uYWwg c3lzdGVtIHJlYWRsaW5lIG1heSBub3QgaGF2ZSBzeW1ib2xzIHRvIGJlIHNob3duLgotICAgICBz ZXR1cF94ZmFpbCAiaSo4Ni1wYy1saW51eGFvdXQtZ251IgotLSAgICBzZXQgZGVzY3JpcHRpb24g ImJhY2t0cmFjZSB0aHJvdWdoIHNpZ25hbCBoYW5kbGVyIgotLSAgICBzZW5kX2dkYiAiYmFja3Ry YWNlXG4iCi0tICAgIGdkYl9leHBlY3QgewotLQktcmUgIiMwLioocmVhZHxwb2xsKS4qaW4gbWFp biBcXCguKlxcKSBhdCAuKmdkYlxcLmMuKiRnZGJfcHJvbXB0ICQiIHsKLSsgICAgc2V0IGRlc2Ny aXB0aW9uICJiYWNrdHJhY2UgdGhyb3VnaCByZWFkbGluZSBoYW5kbGVyIgotKyAgICBnZGJfdGVz dF9tdWx0aXBsZSAiYmFja3RyYWNlIiAkZGVzY3JpcHRpb24gewotKwktcmUgIiMwLipnZGJfZG9f b25lX2V2ZW50LippbiBtYWluIFxcKC4qXFwpIGF0IC4qZ2RiXFwuYy4qJGdkYl9wcm9tcHQgJCIg ewotIAkgICAgcGFzcyAiJGRlc2NyaXB0aW9uIgotIAl9Ci0gCS1yZSAiLiokZ2RiX3Byb21wdCAk IiB7Ci1AQCAtNTA3LDkgKzUxOCw2IEBAIEdEQi4qQ29weXJpZ2h0IFxbMC05XF0rIEZyZWUgU29m dHdhcmUgRm8KLSAJICAgIHNldHVwX3hmYWlsICJhbHBoYSotKi1vc2YqIgotIAkgICAgZmFpbCAi JGRlc2NyaXB0aW9uIgotIAl9Ci0tCXRpbWVvdXQgewotLQkgICAgZmFpbCAiJGRlc2NyaXB0aW9u ICh0aW1lb3V0KSIKLS0JfQotICAgICB9Ci0gCi0gCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDEx NS9nZGIvY29uZmlndXJlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41MC4yMDEwMDExNS5vcmln L2dkYi9jb25maWd1cmUJMjAxMC0wMS0xNSAxMjo0ODowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBn ZGItNy4wLjUwLjIwMTAwMTE1L2dkYi9jb25maWd1cmUJMjAxMC0wMS0xNSAxMjo0ODo0Ni4wMDAw MDAwMDAgKzAxMDAKLUBAIC02NzcyLDYgKzY3NzIsMTg1IEBAIGVsc2UKLSBmaQotIAotIAotKwot KwotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtc2VwYXJhdGUtZGVidWctZGlyIHdhcyBn aXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfc2VwYXJhdGVfZGVidWdfZGlyK3NldH0iID0gc2V0OyB0 aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfc2VwYXJhdGVfZGVidWdfZGlyOwotKyAgICBERUJVR0RJ Uj0kd2l0aHZhbAotK2Vsc2UKLSsgIERFQlVHRElSPSR7bGliZGlyfS9kZWJ1ZwotK2ZpCi0rCi0r Ci0rICB0ZXN0ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9IiRhY19kZWZhdWx0X3ByZWZp eCIKLSsgIHRlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgJiYgZXhlY19wcmVmaXg9JyR7cHJl Zml4fScKLSsgIGFjX2RlZmluZV9kaXI9YGV2YWwgZWNobyAkREVCVUdESVJgCi0rICBhY19kZWZp bmVfZGlyPWBldmFsIGVjaG8gJGFjX2RlZmluZV9kaXJgCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8 PF9BQ0VPRgotKyNkZWZpbmUgREVCVUdESVIgIiRhY19kZWZpbmVfZGlyIgotK19BQ0VPRgotKwot KwotKwotKyAgaWYgdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSB8fCB0ZXN0ICJ4JGV4ZWNf cHJlZml4IiA9ICd4JHtwcmVmaXh9JzsgdGhlbgotKyAgICAgaWYgdGVzdCAieCRwcmVmaXgiID0g eE5PTkU7IHRoZW4KLSsgICAgIAl0ZXN0X3ByZWZpeD0vdXNyL2xvY2FsCi0rICAgICBlbHNlCi0r CXRlc3RfcHJlZml4PSRwcmVmaXgKLSsgICAgIGZpCi0rICBlbHNlCi0rICAgICB0ZXN0X3ByZWZp eD0kZXhlY19wcmVmaXgKLSsgIGZpCi0rICB2YWx1ZT0wCi0rICBjYXNlICR7YWNfZGVmaW5lX2Rp cn0gaW4KLSsgICAgICIke3Rlc3RfcHJlZml4fSJ8IiR7dGVzdF9wcmVmaXh9LyIqfFwKLSsJJyR7 ZXhlY19wcmVmaXh9J3wnJHtleGVjX3ByZWZpeH0vJyopCi0rICAgICB2YWx1ZT0xCi0rICAgICA7 OwotKyAgZXNhYwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIERFQlVH RElSX1JFTE9DQVRBQkxFICR2YWx1ZQotK19BQ0VPRgotKwotKwotKwotKyMgR0RCJ3MgZGF0YWRp ciByZWxvY2F0aW9uCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nZGItZGF0YWRp ciB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2dkYl9kYXRhZGlyK3NldH0iID0gc2V0OyB0 aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfZ2RiX2RhdGFkaXI7Ci0rICAgIEdEQl9EQVRBRElSPSR3 aXRodmFsCi0rZWxzZQotKyAgR0RCX0RBVEFESVI9JHtkYXRhZGlyfS9nZGIKLStmaQotKwotKwot KyAgdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSIkYWNfZGVmYXVsdF9wcmVmaXgi Ci0rICB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05FICYmIGV4ZWNfcHJlZml4PScke3ByZWZp eH0nCi0rICBhY19kZWZpbmVfZGlyPWBldmFsIGVjaG8gJEdEQl9EQVRBRElSYAotKyAgYWNfZGVm aW5lX2Rpcj1gZXZhbCBlY2hvICRhY19kZWZpbmVfZGlyYAotKwotK2NhdCA+PmNvbmZkZWZzLmgg PDxfQUNFT0YKLSsjZGVmaW5lIEdEQl9EQVRBRElSICIkYWNfZGVmaW5lX2RpciIKLStfQUNFT0YK LSsKLSsKLSsKLSsgIGlmIHRlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgfHwgdGVzdCAieCRl eGVjX3ByZWZpeCIgPSAneCR7cHJlZml4fSc7IHRoZW4KLSsgICAgIGlmIHRlc3QgIngkcHJlZml4 IiA9IHhOT05FOyB0aGVuCi0rICAgICAJdGVzdF9wcmVmaXg9L3Vzci9sb2NhbAotKyAgICAgZWxz ZQotKwl0ZXN0X3ByZWZpeD0kcHJlZml4Ci0rICAgICBmaQotKyAgZWxzZQotKyAgICAgdGVzdF9w cmVmaXg9JGV4ZWNfcHJlZml4Ci0rICBmaQotKyAgdmFsdWU9MAotKyAgY2FzZSAke2FjX2RlZmlu ZV9kaXJ9IGluCi0rICAgICAiJHt0ZXN0X3ByZWZpeH0ifCIke3Rlc3RfcHJlZml4fS8iKnxcCi0r CScke2V4ZWNfcHJlZml4fSd8JyR7ZXhlY19wcmVmaXh9LycqKQotKyAgICAgdmFsdWU9MQotKyAg ICAgOzsKLSsgIGVzYWMKLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBH REJfREFUQURJUl9SRUxPQ0FUQUJMRSAkdmFsdWUKLStfQUNFT0YKLSsKLSsKLSsKLSsKLSsjIENo ZWNrIHdoZXRoZXIgLS13aXRoLXJlbG9jYXRlZC1zb3VyY2VzIHdhcyBnaXZlbi4KLStpZiB0ZXN0 ICIke3dpdGhfcmVsb2NhdGVkX3NvdXJjZXMrc2V0fSIgPSBzZXQ7IHRoZW4gOgotKyAgd2l0aHZh bD0kd2l0aF9yZWxvY2F0ZWRfc291cmNlczsgcmVsb2Nfc3JjZGlyPSIke3dpdGh2YWx9IgotKwot KyAgdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSIkYWNfZGVmYXVsdF9wcmVmaXgi Ci0rICB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05FICYmIGV4ZWNfcHJlZml4PScke3ByZWZp eH0nCi0rICBhY19kZWZpbmVfZGlyPWBldmFsIGVjaG8gJHJlbG9jX3NyY2RpcmAKLSsgIGFjX2Rl ZmluZV9kaXI9YGV2YWwgZWNobyAkYWNfZGVmaW5lX2RpcmAKLSsKLStjYXQgPj5jb25mZGVmcy5o IDw8X0FDRU9GCi0rI2RlZmluZSBSRUxPQ19TUkNESVIgIiRhY19kZWZpbmVfZGlyIgotK19BQ0VP RgotKwotKwotKwotK2ZpCi0rCi0rCi0rIyBHREIncyBkYXRhZGlyIHJlbG9jYXRpb24KLSsKLStn ZGJkYXRhZGlyPSR7ZGF0YWRpcn0vZ2RiCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1n ZGItZGF0YWRpciB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2dkYl9kYXRhZGlyK3NldH0i ID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfZ2RiX2RhdGFkaXI7IGdkYmRhdGFkaXI9 IiR7d2l0aHZhbH0iCi0rZmkKLSsKLSsKLSsKLSsgIHRlc3QgIngkcHJlZml4IiA9IHhOT05FICYm IHByZWZpeD0iJGFjX2RlZmF1bHRfcHJlZml4IgotKyAgdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4 Tk9ORSAmJiBleGVjX3ByZWZpeD0nJHtwcmVmaXh9JwotKyAgYWNfZGVmaW5lX2Rpcj1gZXZhbCBl Y2hvICRnZGJkYXRhZGlyYAotKyAgYWNfZGVmaW5lX2Rpcj1gZXZhbCBlY2hvICRhY19kZWZpbmVf ZGlyYAotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIEdEQl9EQVRBRElS ICIkYWNfZGVmaW5lX2RpciIKLStfQUNFT0YKLSsKLSsKLSsKLStpZiB0ZXN0ICJ4JGV4ZWNfcHJl Zml4IiA9IHhOT05FIHx8IHRlc3QgIngkZXhlY19wcmVmaXgiID0gJ3gke3ByZWZpeH0nOyB0aGVu Ci0rICBpZiB0ZXN0ICJ4JHByZWZpeCIgPSB4Tk9ORTsgdGhlbgotKyAgICB0ZXN0X3ByZWZpeD0v dXNyL2xvY2FsCi0rICBlbHNlCi0rICAgIHRlc3RfcHJlZml4PSRwcmVmaXgKLSsgIGZpCi0rZWxz ZQotKyAgdGVzdF9wcmVmaXg9JGV4ZWNfcHJlZml4Ci0rZmkKLSsKLStjYXNlICR7Z2RiZGF0YWRp cn0gaW4KLSsgICIke3Rlc3RfcHJlZml4fSJ8IiR7dGVzdF9wcmVmaXh9LyIqfFwKLSsgICcke2V4 ZWNfcHJlZml4fSd8JyR7ZXhlY19wcmVmaXh9LycqKQotKwotKyRhc19lY2hvICIjZGVmaW5lIEdE Ql9EQVRBRElSX1JFTE9DQVRBQkxFIDEiID4+Y29uZmRlZnMuaAotKwotKyAgOzsKLStlc2FjCi0r R0RCX0RBVEFESVJfUEFUSD0ke2dkYmRhdGFkaXJ9Ci0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVy IC0td2l0aC1weXRob25kaXIgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9weXRob25kaXIr c2V0fSIgPSBzZXQ7IHRoZW4gOgotKyAgd2l0aHZhbD0kd2l0aF9weXRob25kaXI7IHB5dGhvbmRp cj0iJHt3aXRodmFsfSIKLStlbHNlCi0rICBweXRob25kaXI9bm8KLStmaQotKwotKwotKyMgSWYg dGhlIHVzZXIgcGFzc2VkIGluIGEgcGF0aCwgZGVmaW5lIGl0LiAgT3RoZXJ3aXNlLCBjb21wdXRl IGl0IGF0Ci0rIyBydW50aW1lIGJhc2VkIG9uIHRoZSBwb3NzaWJseS1yZWxvY2F0YWJsZSBkYXRh ZGlyLgotK2lmIHRlc3QgIiRweXRob25kaXIiID0gIm5vIjsgdGhlbgotKyAgcHl0aG9uZGlyPSck KEdEQl9EQVRBRElSX1BBVEgpL3B5dGhvbicKLStlbHNlCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8 PF9BQ0VPRgotKyNkZWZpbmUgUFlUSE9ORElSICIkcHl0aG9uZGlyIgotK19BQ0VPRgotKwotK2Zp Ci0rCi0rCi0gIyBJbnRlZ3JhdGlvbiB3aXRoIHJwbSBsaWJyYXJ5IHRvIHN1cHBvcnQgbWlzc2lu ZyBkZWJ1Z2luZm8gc3VnZ2VzdGlvbnMuCi0gIyAtLXdpdGhvdXQtcnBtOiBEaXNhYmxlIGFueSBy cG0gc3VwcG9ydC4KLSAjIC0td2l0aC1ycG09bGlibmFtZS5zbzogVHJ5IHRvIGR5bmFtaWNhbGx5 IG9wZW4gYGxpYm5hbWUuc28nIGR1cmluZyBydW50aW1lLgotQEAgLTcyNTUsMTg1ICs3NDM0LDYg QEAgZmkKLSAKLSAKLSAKLS0KLS0jIENoZWNrIHdoZXRoZXIgLS13aXRoLXNlcGFyYXRlLWRlYnVn LWRpciB3YXMgZ2l2ZW4uCi0taWYgdGVzdCAiJHt3aXRoX3NlcGFyYXRlX2RlYnVnX2RpcitzZXR9 IiA9IHNldDsgdGhlbiA6Ci0tICB3aXRodmFsPSR3aXRoX3NlcGFyYXRlX2RlYnVnX2RpcjsKLS0g ICAgREVCVUdESVI9JHdpdGh2YWwKLS1lbHNlCi0tICBERUJVR0RJUj0ke2xpYmRpcn0vZGVidWcK LS1maQotLQotLQotLSAgdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSIkYWNfZGVm YXVsdF9wcmVmaXgiCi0tICB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05FICYmIGV4ZWNfcHJl Zml4PScke3ByZWZpeH0nCi0tICBhY19kZWZpbmVfZGlyPWBldmFsIGVjaG8gJERFQlVHRElSYAot LSAgYWNfZGVmaW5lX2Rpcj1gZXZhbCBlY2hvICRhY19kZWZpbmVfZGlyYAotLQotLWNhdCA+PmNv bmZkZWZzLmggPDxfQUNFT0YKLS0jZGVmaW5lIERFQlVHRElSICIkYWNfZGVmaW5lX2RpciIKLS1f QUNFT0YKLS0KLS0KLS0KLS0gIGlmIHRlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgfHwgdGVz dCAieCRleGVjX3ByZWZpeCIgPSAneCR7cHJlZml4fSc7IHRoZW4KLS0gICAgIGlmIHRlc3QgIngk cHJlZml4IiA9IHhOT05FOyB0aGVuCi0tICAgICAJdGVzdF9wcmVmaXg9L3Vzci9sb2NhbAotLSAg ICAgZWxzZQotLQl0ZXN0X3ByZWZpeD0kcHJlZml4Ci0tICAgICBmaQotLSAgZWxzZQotLSAgICAg dGVzdF9wcmVmaXg9JGV4ZWNfcHJlZml4Ci0tICBmaQotLSAgdmFsdWU9MAotLSAgY2FzZSAke2Fj X2RlZmluZV9kaXJ9IGluCi0tICAgICAiJHt0ZXN0X3ByZWZpeH0ifCIke3Rlc3RfcHJlZml4fS8i KnxcCi0tCScke2V4ZWNfcHJlZml4fSd8JyR7ZXhlY19wcmVmaXh9LycqKQotLSAgICAgdmFsdWU9 MQotLSAgICAgOzsKLS0gIGVzYWMKLS0KLS1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0tI2Rl ZmluZSBERUJVR0RJUl9SRUxPQ0FUQUJMRSAkdmFsdWUKLS1fQUNFT0YKLS0KLS0KLS0KLS0jIEdE QidzIGRhdGFkaXIgcmVsb2NhdGlvbgotLQotLQotLQotLSMgQ2hlY2sgd2hldGhlciAtLXdpdGgt Z2RiLWRhdGFkaXIgd2FzIGdpdmVuLgotLWlmIHRlc3QgIiR7d2l0aF9nZGJfZGF0YWRpcitzZXR9 IiA9IHNldDsgdGhlbiA6Ci0tICB3aXRodmFsPSR3aXRoX2dkYl9kYXRhZGlyOwotLSAgICBHREJf REFUQURJUj0kd2l0aHZhbAotLWVsc2UKLS0gIEdEQl9EQVRBRElSPSR7ZGF0YWRpcn0vZ2RiCi0t ZmkKLS0KLS0KLS0gIHRlc3QgIngkcHJlZml4IiA9IHhOT05FICYmIHByZWZpeD0iJGFjX2RlZmF1 bHRfcHJlZml4IgotLSAgdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBleGVjX3ByZWZp eD0nJHtwcmVmaXh9JwotLSAgYWNfZGVmaW5lX2Rpcj1gZXZhbCBlY2hvICRHREJfREFUQURJUmAK LS0gIGFjX2RlZmluZV9kaXI9YGV2YWwgZWNobyAkYWNfZGVmaW5lX2RpcmAKLS0KLS1jYXQgPj5j b25mZGVmcy5oIDw8X0FDRU9GCi0tI2RlZmluZSBHREJfREFUQURJUiAiJGFjX2RlZmluZV9kaXIi Ci0tX0FDRU9GCi0tCi0tCi0tCi0tICBpZiB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05FIHx8 IHRlc3QgIngkZXhlY19wcmVmaXgiID0gJ3gke3ByZWZpeH0nOyB0aGVuCi0tICAgICBpZiB0ZXN0 ICJ4JHByZWZpeCIgPSB4Tk9ORTsgdGhlbgotLSAgICAgCXRlc3RfcHJlZml4PS91c3IvbG9jYWwK LS0gICAgIGVsc2UKLS0JdGVzdF9wcmVmaXg9JHByZWZpeAotLSAgICAgZmkKLS0gIGVsc2UKLS0g ICAgIHRlc3RfcHJlZml4PSRleGVjX3ByZWZpeAotLSAgZmkKLS0gIHZhbHVlPTAKLS0gIGNhc2Ug JHthY19kZWZpbmVfZGlyfSBpbgotLSAgICAgIiR7dGVzdF9wcmVmaXh9InwiJHt0ZXN0X3ByZWZp eH0vIip8XAotLQknJHtleGVjX3ByZWZpeH0nfCcke2V4ZWNfcHJlZml4fS8nKikKLS0gICAgIHZh bHVlPTEKLS0gICAgIDs7Ci0tICBlc2FjCi0tCi0tY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgot LSNkZWZpbmUgR0RCX0RBVEFESVJfUkVMT0NBVEFCTEUgJHZhbHVlCi0tX0FDRU9GCi0tCi0tCi0t Ci0tCi0tIyBDaGVjayB3aGV0aGVyIC0td2l0aC1yZWxvY2F0ZWQtc291cmNlcyB3YXMgZ2l2ZW4u Ci0taWYgdGVzdCAiJHt3aXRoX3JlbG9jYXRlZF9zb3VyY2VzK3NldH0iID0gc2V0OyB0aGVuIDoK LS0gIHdpdGh2YWw9JHdpdGhfcmVsb2NhdGVkX3NvdXJjZXM7IHJlbG9jX3NyY2Rpcj0iJHt3aXRo dmFsfSIKLS0KLS0gIHRlc3QgIngkcHJlZml4IiA9IHhOT05FICYmIHByZWZpeD0iJGFjX2RlZmF1 bHRfcHJlZml4IgotLSAgdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBleGVjX3ByZWZp eD0nJHtwcmVmaXh9JwotLSAgYWNfZGVmaW5lX2Rpcj1gZXZhbCBlY2hvICRyZWxvY19zcmNkaXJg Ci0tICBhY19kZWZpbmVfZGlyPWBldmFsIGVjaG8gJGFjX2RlZmluZV9kaXJgCi0tCi0tY2F0ID4+ Y29uZmRlZnMuaCA8PF9BQ0VPRgotLSNkZWZpbmUgUkVMT0NfU1JDRElSICIkYWNfZGVmaW5lX2Rp ciIKLS1fQUNFT0YKLS0KLS0KLS0KLS1maQotLQotLQotLSMgR0RCJ3MgZGF0YWRpciByZWxvY2F0 aW9uCi0tCi0tZ2RiZGF0YWRpcj0ke2RhdGFkaXJ9L2dkYgotLQotLQotLSMgQ2hlY2sgd2hldGhl ciAtLXdpdGgtZ2RiLWRhdGFkaXIgd2FzIGdpdmVuLgotLWlmIHRlc3QgIiR7d2l0aF9nZGJfZGF0 YWRpcitzZXR9IiA9IHNldDsgdGhlbiA6Ci0tICB3aXRodmFsPSR3aXRoX2dkYl9kYXRhZGlyOyBn ZGJkYXRhZGlyPSIke3dpdGh2YWx9IgotLWZpCi0tCi0tCi0tCi0tICB0ZXN0ICJ4JHByZWZpeCIg PSB4Tk9ORSAmJiBwcmVmaXg9IiRhY19kZWZhdWx0X3ByZWZpeCIKLS0gIHRlc3QgIngkZXhlY19w cmVmaXgiID0geE5PTkUgJiYgZXhlY19wcmVmaXg9JyR7cHJlZml4fScKLS0gIGFjX2RlZmluZV9k aXI9YGV2YWwgZWNobyAkZ2RiZGF0YWRpcmAKLS0gIGFjX2RlZmluZV9kaXI9YGV2YWwgZWNobyAk YWNfZGVmaW5lX2RpcmAKLS0KLS1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0tI2RlZmluZSBH REJfREFUQURJUiAiJGFjX2RlZmluZV9kaXIiCi0tX0FDRU9GCi0tCi0tCi0tCi0taWYgdGVzdCAi eCRleGVjX3ByZWZpeCIgPSB4Tk9ORSB8fCB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9ICd4JHtwcmVm aXh9JzsgdGhlbgotLSAgaWYgdGVzdCAieCRwcmVmaXgiID0geE5PTkU7IHRoZW4KLS0gICAgdGVz dF9wcmVmaXg9L3Vzci9sb2NhbAotLSAgZWxzZQotLSAgICB0ZXN0X3ByZWZpeD0kcHJlZml4Ci0t ICBmaQotLWVsc2UKLS0gIHRlc3RfcHJlZml4PSRleGVjX3ByZWZpeAotLWZpCi0tCi0tY2FzZSAk e2dkYmRhdGFkaXJ9IGluCi0tICAiJHt0ZXN0X3ByZWZpeH0ifCIke3Rlc3RfcHJlZml4fS8iKnxc Ci0tICAnJHtleGVjX3ByZWZpeH0nfCcke2V4ZWNfcHJlZml4fS8nKikKLS0KLS0kYXNfZWNobyAi I2RlZmluZSBHREJfREFUQURJUl9SRUxPQ0FUQUJMRSAxIiA+PmNvbmZkZWZzLmgKLS0KLS0gIDs7 Ci0tZXNhYwotLUdEQl9EQVRBRElSX1BBVEg9JHtnZGJkYXRhZGlyfQotLQotLQotLQotLSMgQ2hl Y2sgd2hldGhlciAtLXdpdGgtcHl0aG9uZGlyIHdhcyBnaXZlbi4KLS1pZiB0ZXN0ICIke3dpdGhf cHl0aG9uZGlyK3NldH0iID0gc2V0OyB0aGVuIDoKLS0gIHdpdGh2YWw9JHdpdGhfcHl0aG9uZGly OyBweXRob25kaXI9IiR7d2l0aHZhbH0iCi0tZWxzZQotLSAgcHl0aG9uZGlyPW5vCi0tZmkKLS0K LS0KLS0jIElmIHRoZSB1c2VyIHBhc3NlZCBpbiBhIHBhdGgsIGRlZmluZSBpdC4gIE90aGVyd2lz ZSwgY29tcHV0ZSBpdCBhdAotLSMgcnVudGltZSBiYXNlZCBvbiB0aGUgcG9zc2libHktcmVsb2Nh dGFibGUgZGF0YWRpci4KLS1pZiB0ZXN0ICIkcHl0aG9uZGlyIiA9ICJubyI7IHRoZW4KLS0gIHB5 dGhvbmRpcj0nJChHREJfREFUQURJUl9QQVRIKS9weXRob24nCi0tZWxzZQotLQotLWNhdCA+PmNv bmZkZWZzLmggPDxfQUNFT0YKLS0jZGVmaW5lIFBZVEhPTkRJUiAiJHB5dGhvbmRpciIKLS1fQUNF T0YKLS0KLS1maQotLQotLQotLQotLQotLQotIHN1YmRpcnM9IiRzdWJkaXJzIGRvYyB0ZXN0c3Vp dGUiCi0gCi0gCi1AQCAtOTI5MCwxMCArOTI5MCwxMCBAQCBpZiB0ZXN0ICIkd2l0aF9zeXN0ZW1f cmVhZGxpbmUiID0geWVzOyB0Ci0gICAjIHJlYWRsaW5lLTYuMCBzdGFydGVkIHRvIHVzZSB0aGUg bmFtZSBgX3JsX2VjaG9pbmdfcCcuCi0gICAjIGAkKFJFQURMSU5FX0RJUikvJyBvZiBidW5kbGVk IHJlYWRsaW5lIHdvdWxkIG5vdCByZXNvbHZlIGluIGNvbmZpZ3VyZS4KLSAKLS0gIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIHJlYWRsaW5lX2Vj aG9pbmdfcCIgPiY1Ci0tJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHJlYWRsaW5lX2VjaG9pbmdf cC4uLiAiID4mNjsgfQotICAgc2F2ZV9MSUJTPSRMSUJTCi0gICBMSUJTPSIkTElCUyAkUkVBRExJ TkUiCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IGZvciByZWFkbGluZV9lY2hvaW5nX3AiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBy ZWFkbGluZV9lY2hvaW5nX3AuLi4gIiA+JjY7IH0KLSAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKLSAvKiBlbmQgY29uZmRlZnMuaC4gICovCi0gCi1AQCAtOTMx Niw5ICs5MzE2LDM1IEBAICRhc19lY2hvICIjZGVmaW5lIHJlYWRsaW5lX2VjaG9pbmdfcCBfcmwK LSBmaQotIHJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotICAg ICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotLSAgTElCUz0iJHNhdmVfTElC UyIKLSAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk UkVBRExJTkVfRUNIT0lOR19QIiA+JjUKLSAkYXNfZWNobyAiJFJFQURMSU5FX0VDSE9JTkdfUCIg PiY2OyB9Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIGZvciBfcmxfY2F1Z2h0X3NpZ25hbCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IF9ybF9jYXVnaHRfc2lnbmFsLi4uICIgPiY2OyB9Ci0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FD RU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAot K21haW4gKCkKLSt7Ci0rZXh0ZXJuIGludCB2b2xhdGlsZSBfcmxfY2F1Z2h0X3NpZ25hbDsKLSsJ CQkJICAgIHJldHVybiBfcmxfY2F1Z2h0X3NpZ25hbDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30K LStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0rICBSRUFE TElORV9DQVVHSFRfU0lHTkFMPXllcwotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfUkVBRExJ TkVfQ0FVR0hUX1NJR05BTCAvKiovIiA+PmNvbmZkZWZzLmgKLSsKLStlbHNlCi0rICBSRUFETElO RV9DQVVHSFRfU0lHTkFMPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQK LSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkUkVB RExJTkVfQ0FVR0hUX1NJR05BTCIgPiY1Ci0rJGFzX2VjaG8gIiRSRUFETElORV9DQVVHSFRfU0lH TkFMIiA+JjY7IH0KLSsgIExJQlM9IiRzYXZlX0xJQlMiCi0gZWxzZQotICAgUkVBRExJTkU9JyQo UkVBRExJTkVfRElSKS9saWJyZWFkbGluZS5hJwotICAgUkVBRExJTkVfREVQUz0nJChSRUFETElO RSknCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoZWw1LWdjYzQ0LnBhdGNoIGIvZ2RiLXJoZWw1LWdjYzQ0 LnBhdGNoCmluZGV4IDE1ZDM0ZGYuLmQ3NjE1MzggMTAwNjQ0Ci0tLSBhL2dkYi1yaGVsNS1nY2M0 NC5wYXRjaAorKysgYi9nZGItcmhlbDUtZ2NjNDQucGF0Y2gKQEAgLTY5LDcgKzY5LDcgQEAgSW5k ZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVhay1pbnRl cnAuZXhwCiAgfQogIAogQEAgLTQ4MCw5ICs1MDAsMzMgQEAgZm9yZWFjaCBsZHByZWxpbmsge05P IFlFU30gewotIAkJICAgIGlmIHskYmlucGllID09ICJZRVMifSB7CisgCQkgICAgaWYgeyRiaW5w aWUgIT0gIk5PIn0gewogIAkJCWxhcHBlbmQgb3B0cyB7YWRkaXRpb25hbF9mbGFncz0tZlBJRSAt cGllfQogIAkJICAgIH0KIC0JCSAgICBpZiB7W2J1aWxkX2V4ZWN1dGFibGUgJHt0ZXN0fS5leHAg W2ZpbGUgdGFpbCAkZXhlY10gJHNyY2ZpbGUgJG9wdHNdID09IC0xfSB7CgpkaWZmIC0tZ2l0IGEv Z2RiLXNvbGliLW1lbW9yeS1lcnJvci1ub25mYXRhbC5wYXRjaCBiL2dkYi1zb2xpYi1tZW1vcnkt ZXJyb3Itbm9uZmF0YWwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZjhkNzNkOAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1zb2xpYi1tZW1vcnktZXJyb3Itbm9uZmF0 YWwucGF0Y2gKQEAgLTAsMCArMSw0MSBAQAorW1JGQy9pYTY0XSBtZW1vcnkgZXJyb3Igd2hlbiBy ZWFkaW5nIHdyb25nIGNvcmUgZmlsZQoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRj aGVzLzIwMTAtMDEvbXNnMDA2NDUuaHRtbAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1w YXRjaGVzLzIwMTAtMDIvbXNnMDAwMDEuaHRtbAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dk Yi1wYXRjaGVzLzIwMTAtMDMvbXNnMDAyOTguaHRtbAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21s L2dkYi1jdnMvMjAxMC0wMy9tc2cwMDA2NS5odG1sCitjOTYxYThkYTQyMjI4MzY2MmUwOWVlNDk4 YzA1OThkNDhmYzlkNzBmCisKKy0tLSBzcmMvZ2RiL3NvbGliLXN2cjQuYwkyMDEwLzAyLzI0IDAw OjI5OjAyCTEuMTI1CisrKysgc3JjL2dkYi9zb2xpYi1zdnI0LmMJMjAxMC8wMy8wOCAwNzo0NTo0 OQkxLjEyNgorQEAgLTg2OCw5ICs4NjgsMTYgQEAKKyB7CisgICBzdHJ1Y3QgbGlua19tYXBfb2Zm c2V0cyAqbG1vID0gc3ZyNF9mZXRjaF9saW5rX21hcF9vZmZzZXRzICgpOworICAgc3RydWN0IHR5 cGUgKnB0cl90eXBlID0gYnVpbHRpbl90eXBlICh0YXJnZXRfZ2RiYXJjaCktPmJ1aWx0aW5fZGF0 YV9wdHI7CisrICBDT1JFX0FERFIgYWRkciA9IDA7CisrICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4 Y2VwdGlvbiBleDsKKyAKKy0gIHJldHVybiByZWFkX21lbW9yeV90eXBlZF9hZGRyZXNzIChpbmZv LT5kZWJ1Z19iYXNlICsgbG1vLT5yX21hcF9vZmZzZXQsCistCQkJCSAgICBwdHJfdHlwZSk7Cisr ICBUUllfQ0FUQ0ggKGV4LCBSRVRVUk5fTUFTS19FUlJPUikKKysgICAgeworKyAgICAgIGFkZHIg PSByZWFkX21lbW9yeV90eXBlZF9hZGRyZXNzIChpbmZvLT5kZWJ1Z19iYXNlICsgbG1vLT5yX21h cF9vZmZzZXQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cl90 eXBlKTsKKysgICAgfQorKyAgZXhjZXB0aW9uX3ByaW50IChnZGJfc3RkZXJyLCBleCk7CisrICBy ZXR1cm4gYWRkcjsKKyB9CisgCisgLyogRmluZCByX2JyayBmcm9tIHRoZSBpbmZlcmlvcidzIGRl YnVnIGJhc2UuICAqLworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTAvMDMvMDggMDE6NDk6MzAJ MS4xMTQ0MQorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTAvMDMvMDggMDc6NDU6NDkJMS4xMTQ0 MgorIyMgLTEsMyArMSwxMCBAQAorKzIwMTAtMDMtMDggIEpvZWwgQnJvYmVja2VyICA8YnJvYmVj a2VyQGFkYWNvcmUuY29tPgorKworKwlNZW1vcnkgZXJyb3Igd2hlbiByZWFkaW5nIHdyb25nIGNv cmUgZmlsZS4KKysJKiBzb2xpYi1zdnI0LmMgKHNvbGliX3N2cjRfcl9tYXApOiBjYXRjaCBhbmQg cHJpbnQgYWxsIGV4Y2VwdGlvbgorKwllcnJvcnMgd2hpbGUgcmVhZGluZyB0aGUgaW5mZXJpb3Ig bWVtb3J5LCBhbmQgcmV0dXJuIHplcm8gaWYKKysJYW4gZXhjZXB0aW9uIHdhcyByYWlzZWQuCisr CisgMjAxMC0wMy0wNyAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHZtd2FyZS5jb20+CisgCisg CSogcmVjb3JkLmMgKHJlY29yZF9yZXN0b3JlKTogUmVuYW1lIHRtcHU4IHRvIHJlY3R5cGUuCgpk aWZmIC0tZ2l0IGEvZ2RiLXN0YWxlLXJlbGF0ZWRfYnJlYWtwb2ludC5wYXRjaCBiL2dkYi1zdGFs ZS1yZWxhdGVkX2JyZWFrcG9pbnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDY1Yjk0YzQuLjAwMDAwMDAKLS0tIGEvZ2RiLXN0YWxlLXJlbGF0ZWRfYnJlYWtwb2ludC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDE1NCArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcv bWwvZ2RiLXBhdGNoZXMvMjAwOS0xMi9tc2cwMDM2NC5odG1sCi1TdWJqZWN0OiBbcGF0Y2hdIHJl bGF0ZWRfYnJlYWtwb2ludCBzdGFsZSByZWYgY3Jhc2ggZml4Ci0KLUhpLAotCi1nZXR0aW5nIG9j Y2FzaW9uYWwgcmFuZG9tOgotIFBBU1M6IGdkYi50aHJlYWRzL2xvY2FsLXdhdGNoLXdyb25nLXRo cmVhZC5leHA6IGxvY2FsIHdhdGNocG9pbnQgc3RpbGwgdHJpZ2dlcnMKLSBQQVNTOiBnZGIudGhy ZWFkcy9sb2NhbC13YXRjaC13cm9uZy10aHJlYWQuZXhwOiBsZXQgdGhyZWFkX2Z1bmN0aW9uMCBy ZXR1cm4KLSBQQVNTOiBnZGIudGhyZWFkcy9sb2NhbC13YXRjaC13cm9uZy10aHJlYWQuZXhwOiBi cmVha3BvaW50IG9uIHRocmVhZF9mdW5jdGlvbjAncyBjYWxsZXIKLS1QQVNTOiBnZGIudGhyZWFk cy9sb2NhbC13YXRjaC13cm9uZy10aHJlYWQuZXhwOiBsb2NhbCB3YXRjaHBvaW50IGF1dG9tYXRp Y2FsbHkgZGVsZXRlZAotK0VSUk9SOiBQcm9jZXNzIG5vIGxvbmdlciBleGlzdHMKLStVTlJFU09M VkVEOiBnZGIudGhyZWFkcy9sb2NhbC13YXRjaC13cm9uZy10aHJlYWQuZXhwOiBsb2NhbCB3YXRj aHBvaW50IGF1dG9tYXRpY2FsbHkgZGVsZXRlZAotCi1JdCBpcyBldmVuIHJlcHJvZHVjaWJsZSBv biBIRUFEIHVzaW5nICJpbnB1dCIgZmlsZSBiZWxvdyBhbmQ6Ci0JdmFsZ3JpbmQgLi4vZ2RiIC1u eCA8aW5wdXQKLQotKGdkYikgKGdkYikgQnJlYWtwb2ludCA2IGF0IDB4NDAwNjg1OiBmaWxlIC4v Z2RiLnRocmVhZHMvbG9jYWwtd2F0Y2gtd3JvbmctdGhyZWFkLmMsIGxpbmUgNDcuCi0oZ2RiKSA9 PTMxNzU5PT0gSW52YWxpZCB3cml0ZSBvZiBzaXplIDQKLT09MzE3NTk9PSAgICBhdCAweDYwMUEx MTogYnBzdGF0X2NoZWNrX2JyZWFrcG9pbnRfY29uZGl0aW9ucyAoYnJlYWtwb2ludC5jOjM0ODIp Ci09PTMxNzU5PT0gICAgYnkgMHg2MDFDNzA6IGJwc3RhdF9zdG9wX3N0YXR1cyAoYnJlYWtwb2lu dC5jOjM1OTYpCi09PTMxNzU5PT0gICAgYnkgMHg2NUQyMjg6IGhhbmRsZV9pbmZlcmlvcl9ldmVu dCAoaW5mcnVuLmM6MzU4OSkKLT09MzE3NTk9PSAgICBieSAweDY1QTU2Mzogd2FpdF9mb3JfaW5m ZXJpb3IgKGluZnJ1bi5jOjIyODEpCi09PTMxNzU5PT0gICAgYnkgMHg2NTlBQTA6IHByb2NlZWQg KGluZnJ1bi5jOjE4ODMpCi09PTMxNzU5PT0gICAgYnkgMHg2NTMwMEI6IGNvbnRpbnVlXzEgKGlu ZmNtZC5jOjY2OCkKLT09MzE3NTk9PSAgICBieSAweDY1MzI4MjogY29udGludWVfY29tbWFuZCAo aW5mY21kLmM6NzYwKQotPT0zMTc1OT09ICAgIGJ5IDB4NUM1MUQ4OiBkb19jZnVuYyAoY2xpLWRl Y29kZS5jOjY3KQotPT0zMTc1OT09ICAgIGJ5IDB4NUM4MjRGOiBjbWRfZnVuYyAoY2xpLWRlY29k ZS5jOjE3MzgpCi09PTMxNzU5PT0gICAgYnkgMHg0ODMzNUE6IGV4ZWN1dGVfY29tbWFuZCAodG9w LmM6NDUwKQotPT0zMTc1OT09ICAgIGJ5IDB4NjcyNzNFOiBjb21tYW5kX2hhbmRsZXIgKGV2ZW50 LXRvcC5jOjUxMSkKLT09MzE3NTk9PSAgICBieSAweDY3MkU1MzogY29tbWFuZF9saW5lX2hhbmRs ZXIgKGV2ZW50LXRvcC5jOjczNikKLT09MzE3NTk9PSAgQWRkcmVzcyAweGJiZGM5NTAgaXMgMjQw IGJ5dGVzIGluc2lkZSBhIGJsb2NrIG9mIHNpemUgMzM2IGZyZWUnZAotPT0zMTc1OT09ICAgIGF0 IDB4NEEwNEQ3MjogZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzozMjUpCi09PTMxNzU5PT0gICAg YnkgMHg0ODZFNEI6IHhmcmVlICh1dGlscy5jOjEyODYpCi09PTMxNzU5PT0gICAgYnkgMHg2MEJD MzU6IGRlbGV0ZV9icmVha3BvaW50IChicmVha3BvaW50LmM6ODcwOCkKLT09MzE3NTk9PSAgICBi eSAweDYwQkRBRjogZGVsZXRlX2NvbW1hbmQgKGJyZWFrcG9pbnQuYzo4NzY1KQotPT0zMTc1OT09 ICAgIGJ5IDB4NUM1MUQ4OiBkb19jZnVuYyAoY2xpLWRlY29kZS5jOjY3KQotPT0zMTc1OT09ICAg IGJ5IDB4NUM4MjRGOiBjbWRfZnVuYyAoY2xpLWRlY29kZS5jOjE3MzgpCi09PTMxNzU5PT0gICAg YnkgMHg0ODMzNUE6IGV4ZWN1dGVfY29tbWFuZCAodG9wLmM6NDUwKQotPT0zMTc1OT09ICAgIGJ5 IDB4NjcyNzNFOiBjb21tYW5kX2hhbmRsZXIgKGV2ZW50LXRvcC5jOjUxMSkKLT09MzE3NTk9PSAg ICBieSAweDY3MkU1MzogY29tbWFuZF9saW5lX2hhbmRsZXIgKGV2ZW50LXRvcC5jOjczNikKLT09 MzE3NTk9PSAgICBieSAweDY3MkZDRjogZ2RiX3JlYWRsaW5lMiAoZXZlbnQtdG9wLmM6ODE3KQot PT0zMTc1OT09ICAgIGJ5IDB4NjcyNUY3OiBzdGRpbl9ldmVudF9oYW5kbGVyIChldmVudC10b3Au Yzo0MzMpCi09PTMxNzU5PT0gICAgYnkgMHg2NzBDREU6IGhhbmRsZV9maWxlX2V2ZW50IChldmVu dC1sb29wLmM6ODEyKQotPT0zMTc1OT09IAotCi1XYXRjaHBvaW50IDQgZGVsZXRlZCBiZWNhdXNl IHRoZSBwcm9ncmFtIGhhcyBsZWZ0IHRoZSBibG9jayBpbgotd2hpY2ggaXRzIGV4cHJlc3Npb24g aXMgdmFsaWQuCi0KLQotVGhlcmUgaXMgYWxyZWFkeSBhdXRvbWF0aWMgZGVsZXRpb24gb2YgUkVM QVRFRF9CUkVBS1BPSU5UIGluCi1tYXBfYnJlYWtwb2ludF9udW1iZXJzIGJ1dCAiZGVsZXRlIGJy ZWFrcG9pbnRzIiAoZm9yIGFsbCB0aGUgYnJlYWtwb2ludHMpCi1jYWxscyBkZWxldGVfYnJlYWtw b2ludCBmcm9tIGRlbGV0ZV9jb21tYW5kIGRpcmVjdGx5IHdpdGhvdXQgY2FsbGluZwotbWFwX2Jy ZWFrcG9pbnRfbnVtYmVycyBhbmQgaXQgZG9lcyBub3QgZGVsZXRlIHRoZSBhc3NvY2lhdGVkCi1i cF93YXRjaHBvaW50X3Njb3BlLgotCi1JIGZpbmQgdGhlIGF0dGFjaGVkIHBhdGNoIGlzIHJpZ2h0 IGZvciBkZWxldGVfYnJlYWtwb2ludCBpdHNlbGYgYXMgc3VjaAotZnVuY3Rpb24gc2hvdWxkIG5v dCBsZWF2ZSBzdGFsZSByZWZlcmVuY2VzIGluIHRoZSBsZWZ0b3ZlciBkYXRhIHN0cnVjdHVyZXMu Ci1Ib3cgd2VsbCBjb3VsZCBiZSBvdGhlciBjb2RlIGNsZWFuZWQgdXAgd2l0aCB0aGlzIHBhdGNo IGluIHBsYWNlIEkgaGF2ZSBub3QKLXRhcmdldGVkIGJ5IHRoaXMgcGF0Y2guCi0KLQotVGhlIGV4 aXN0aW5nIGNvZGUgZXhwZWN0cyBhY2Nlc3NpYmlsaXR5IG9mIGZyZWVkIG1lbW9yeSBhbmQgZGlz Y3Vzc2VzIHRoZQotY3VycmVudCBzdGFsZSByZWZlcmVuY2VzIHByb2JsZW06Ci0KLXZvaWQKLWRl bGV0ZV9icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQotWy4uLl0KLSAgLyogSGFz IHRoaXMgYnAgYWxyZWFkeSBiZWVuIGRlbGV0ZWQ/ICBUaGlzIGNhbiBoYXBwZW4gYmVjYXVzZSBt dWx0aXBsZQotICAgICBsaXN0cyBjYW4gaG9sZCBwb2ludGVycyB0byBicCdzLiAgYnBzdGF0IGxp c3RzIGFyZSBlc3BlY2lhbCBjdWxwcml0cy4KLQotICAgICBPbmUgZXhhbXBsZSBvZiB0aGlzIGhh cHBlbmluZyBpcyBhIHdhdGNocG9pbnQncyBzY29wZSBicC4gIFdoZW4gdGhlCi0gICAgIHNjb3Bl IGJwIHRyaWdnZXJzLCB3ZSBub3RpY2UgdGhhdCB0aGUgd2F0Y2hwb2ludCBpcyBvdXQgb2Ygc2Nv cGUsIGFuZAotICAgICBkZWxldGUgaXQuICBXZSBhbHNvIGRlbGV0ZSBpdHMgc2NvcGUgYnAuICBC dXQgdGhlIHNjb3BlIGJwIGlzIG1hcmtlZAotICAgICAiYXV0by1kZWxldGluZyIsIGFuZCBpcyBh bHJlYWR5IG9uIGEgYnBzdGF0LiAgVGhhdCBicHN0YXQgaXMgdGhlbgotICAgICBjaGVja2VkIGZv ciBhdXRvLWRlbGV0aW5nIGJwJ3MsIHdoaWNoIGFyZSBkZWxldGVkLgotCi0gICAgIEEgcmVhbCBz b2x1dGlvbiB0byB0aGlzIHByb2JsZW0gbWlnaHQgaW52b2x2ZSByZWZlcmVuY2UgY291bnRzIGlu IGJwJ3MsCi0gICAgIGFuZC9vciBnaXZpbmcgdGhlbSBwb2ludGVycyBiYWNrIHRvIHRoZWlyIHJl ZmVyZW5jaW5nIGJwc3RhdCdzLCBhbmQKLSAgICAgdGVhY2hpbmcgZGVsZXRlX2JyZWFrcG9pbnQg dG8gb25seSBmcmVlIGEgYnAncyBzdG9yYWdlIHdoZW4gbm8gbW9yZQotICAgICByZWZlcmVuY2Vz IHdlcmUgZXh0ZW50LiAgQSBjaGVhcGVyIGJhbmRhaWQgd2FzIGNob3Nlbi4gICovCi0gIGlmIChi cHQtPnR5cGUgPT0gYnBfbm9uZSkKLSAgICByZXR1cm47Ci1bLi4uXQotICBicHQtPnR5cGUgPSBi cF9ub25lOwotCi0gIHhmcmVlIChicHQpOwotfQotCi0KLVdoaWxlIGZpeGluZyB0aGlzIHBhcnQg bWF5IGJlIGRpZmZpY3VsdCBJIGZpbmQgdGhlIGF0dGFjaGVkIHBhdGNoIGVhc3kgZW5vdWdoCi1m aXhpbmcgdGhlIElNTyBjdXJyZW50bHkgbW9zdCBjb21tb24gY3Jhc2ggZHVlIHRvIGl0LgotCi1O byByZWdyZXNzaW9ucyBvbiB7eDg2XzY0LHg4Nl82NC1tMzIsaTY4Nn0tZmVkb3JhMTItbGludXgt Z251LgotCi0KLVRoYW5rcywKLUphbgotCi0KLSJpbnB1dCI6Ci1zZXQgaGVpZ2h0IDAKLXNldCB3 aWR0aCAwCi1zZXQgY29uZmlybSBubwotZmlsZSAuLi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvbG9j YWwtd2F0Y2gtd3JvbmctdGhyZWFkCi1zZXQgY2FuLXVzZS1ody13YXRjaHBvaW50cyAxCi1icmVh ayBtYWluCi1ydW4KLWJyZWFrIGxvY2FsLXdhdGNoLXdyb25nLXRocmVhZC5jOjM2Ci1jb250aW51 ZQotZGVsZXRlIGJyZWFrcG9pbnRzCi13YXRjaCAqbXlwCi1jb250aW51ZQotZGVsZXRlIGJyZWFr cG9pbnRzCi1lY2hvIE1BS0Ugd2F0Y2hcbgotd2F0Y2ggKm15cCBpZiB0cmlnZ2VyICE9IDAKLWVj aG8gTUFLRSBicmVha1xuCi1icmVhayBsb2NhbC13YXRjaC13cm9uZy10aHJlYWQuYzo2MAotaW5m byBicmVhawotY29udGludWUKLWVjaG8gREVMRVRFIGZpdmVcbgotZGVsZXRlIDUKLXNldCB0cmln Z2VyPTEKLWNvbnRpbnVlCi1zZXQgKm15cD0wCi1icmVhayBsb2NhbC13YXRjaC13cm9uZy10aHJl YWQuYzo0NwotY29udGludWUKLQotCi0KLTIwMDktMTItMjMgIEphbiBLcmF0b2NodmlsICA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCSogYnJlYWtwb2ludC5jIChkZWxldGVfYnJlYWtw b2ludCA8YnB0LT5yZWxhdGVkX2JyZWFrcG9pbnQgIT0gTlVMTD4pOgotCU5ldy4KLQotLS0tIGEv Z2RiL2JyZWFrcG9pbnQuYwotKysrIGIvZ2RiL2JyZWFrcG9pbnQuYwotQEAgLTg2NDksNiArODY0 OSwxNiBAQCBkZWxldGVfYnJlYWtwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKLSAgIGlm IChicHQtPnR5cGUgPT0gYnBfbm9uZSkKLSAgICAgcmV0dXJuOwotIAotKyAgLyogQXQgbGVhc3Qg YXZvaWQgdGhpcyBzdGFsZSByZWZlcmVuY2UgdW50aWwgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBv ZgotKyAgICAgYnJlYWtwb2ludHMgZ2V0cyByZXNvbHZlZC4gICovCi0rICBpZiAoYnB0LT5yZWxh dGVkX2JyZWFrcG9pbnQgIT0gTlVMTCkKLSsgICAgewotKyAgICAgIGdkYl9hc3NlcnQgKGJwdC0+ cmVsYXRlZF9icmVha3BvaW50LT5yZWxhdGVkX2JyZWFrcG9pbnQgPT0gYnB0KTsKLSsgICAgICBi cHQtPnJlbGF0ZWRfYnJlYWtwb2ludC0+ZGlzcG9zaXRpb24gPSBkaXNwX2RlbF9hdF9uZXh0X3N0 b3A7Ci0rICAgICAgYnB0LT5yZWxhdGVkX2JyZWFrcG9pbnQtPnJlbGF0ZWRfYnJlYWtwb2ludCA9 IE5VTEw7Ci0rICAgICAgYnB0LT5yZWxhdGVkX2JyZWFrcG9pbnQgPSBOVUxMOwotKyAgICB9Ci0r Ci0gICBvYnNlcnZlcl9ub3RpZnlfYnJlYWtwb2ludF9kZWxldGVkIChicHQtPm51bWJlcik7Ci0g Ci0gICBpZiAoYnJlYWtwb2ludF9jaGFpbiA9PSBicHQpCi0KCmRpZmYgLS1naXQgYS9nZGItdW53 aW5kLWRlYnVnaG9vay1zYWZlLWZhaWwucGF0Y2ggYi9nZGItdW53aW5kLWRlYnVnaG9vay1zYWZl LWZhaWwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQxNmIzMwot LS0gL2Rldi9udWxsCisrKyBiL2dkYi11bndpbmQtZGVidWdob29rLXNhZmUtZmFpbC5wYXRjaApA QCAtMCwwICsxLDQ2IEBACitjb21taXQgODAyMjE0Yzk3ZDE2NjFhZDMzN2FhZDBkMDExZGRlZDQ0 ZjBiNWRkZAorQXV0aG9yOiBUb20gVHJvbWV5IDx0cm9tZXlAcmVkaGF0LmNvbT4KK0RhdGU6ICAg TW9uIEFwciAyNiAxNToxNTo1NSAyMDEwIC0wNjAwCisKKyAgICBGYWlsIGdyYWNlZnVsbHkgaWYg dGhlIF9VbndpbmRfRGVidWdIb29rIGFyZ3VtZW50IGlzIG9wdGltaXplZCBvdXQKKworZGlmZiAt LWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYworaW5kZXggMmVlYTU1MC4uOWE1YjUz NCAxMDA2NDQKKy0tLSBhL2dkYi9pbmZydW4uYworKysrIGIvZ2RiL2luZnJ1bi5jCitAQCAtNDky NSwyMCArNDkyNSwyNCBAQCBpbnNlcnRfZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50IChzdHJ1 Y3QgdGhyZWFkX2luZm8gKnRwLAorIAorICAgICAgIHZzeW0gPSBsb29rdXBfc3ltYm9sIChTWU1C T0xfTElOS0FHRV9OQU1FIChzeW0pLCBiLCBWQVJfRE9NQUlOLCBOVUxMKTsKKyAgICAgICB2YWx1 ZSA9IHJlYWRfdmFyX3ZhbHVlICh2c3ltLCBmcmFtZSk7CistICAgICAgaGFuZGxlciA9IHZhbHVl X2FzX2FkZHJlc3MgKHZhbHVlKTsKKysgICAgICAvKiBJZiB0aGUgdmFsdWUgd2FzIG9wdGltaXpl ZCBvdXQsIHJldmVydCB0byB0aGUgb2xkIGJlaGF2aW9yLiAgKi8KKysgICAgICBpZiAoISB2YWx1 ZV9vcHRpbWl6ZWRfb3V0ICh2YWx1ZSkpCisrCXsKKysJICBoYW5kbGVyID0gdmFsdWVfYXNfYWRk cmVzcyAodmFsdWUpOworIAorLSAgICAgIC8qIFdlJ3JlIGdvaW5nIHRvIHJlcGxhY2UgdGhlIGN1 cnJlbnQgc3RlcC1yZXN1bWUgYnJlYWtwb2ludAorLQkgd2l0aCBhbiBleGNlcHRpb24tcmVzdW1l IGJyZWFrcG9pbnQuICAqLworLSAgICAgIGRlbGV0ZV9zdGVwX3Jlc3VtZV9icmVha3BvaW50ICh0 cCk7CisrCSAgLyogV2UncmUgZ29pbmcgdG8gcmVwbGFjZSB0aGUgY3VycmVudCBzdGVwLXJlc3Vt ZSBicmVha3BvaW50CisrCSAgICAgd2l0aCBhbiBleGNlcHRpb24tcmVzdW1lIGJyZWFrcG9pbnQu ICAqLworKwkgIGRlbGV0ZV9zdGVwX3Jlc3VtZV9icmVha3BvaW50ICh0cCk7CisgCistICAgICAg aWYgKGRlYnVnX2luZnJ1bikKKy0JZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorLQkJ CSAgICAiaW5mcnVuOiBleGNlcHRpb24gcmVzdW1lIGF0ICVseFxuIiwKKy0JCQkgICAgKHVuc2ln bmVkIGxvbmcpIGhhbmRsZXIpOworKwkgIGlmIChkZWJ1Z19pbmZydW4pCisrCSAgICBmcHJpbnRm X3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCisrCQkJCSJpbmZydW46IGV4Y2VwdGlvbiByZXN1bWUg YXQgJWx4XG4iLAorKwkJCQkodW5zaWduZWQgbG9uZykgaGFuZGxlcik7CisgCistICAgICAgYnAg PSBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRfYXRfcGMgKGdldF9mcmFtZV9hcmNoIChmcmFtZSks CistCQkJCQkgICBoYW5kbGVyLCBicF9leGNlcHRpb25fcmVzdW1lKTsKKy0gICAgICBpbmZlcmlv cl90aHJlYWQgKCktPnN0ZXBfcmVzdW1lX2JyZWFrcG9pbnQgPSBicDsKKysJICBicCA9IHNldF9t b21lbnRhcnlfYnJlYWtwb2ludF9hdF9wYyAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSwKKysJCQkJ CSAgICAgICBoYW5kbGVyLCBicF9leGNlcHRpb25fcmVzdW1lKTsKKysJICBpbmZlcmlvcl90aHJl YWQgKCktPnN0ZXBfcmVzdW1lX2JyZWFrcG9pbnQgPSBicDsKKysJfQorICAgICB9CisgfQorIAoK ZGlmZiAtLWdpdCBhL2dkYi11bndpbmQtZGVidWdob29rLXN0ZXAtaW5kZXBlbmRlbnQucGF0Y2gg Yi9nZGItdW53aW5kLWRlYnVnaG9vay1zdGVwLWluZGVwZW5kZW50LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3YmQyYmEKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIt dW53aW5kLWRlYnVnaG9vay1zdGVwLWluZGVwZW5kZW50LnBhdGNoCkBAIC0wLDAgKzEsMjM1IEBA Citjb21taXQgZjhjYTAzZTAwOTdhZTQ5YzY2Y2YzM2E1MGUzMjQ3YmNjZDNhNGEzMworQXV0aG9y OiBUb20gVHJvbWV5IDx0cm9tZXlAcmVkaGF0LmNvbT4KK0RhdGU6ICAgV2VkIEFwciAyOCAxNDox NzozOCAyMDEwIC0wNjAwCisKKyAgICBSZWltcGxlbWVudCBpbmZydW4gcGFydHMgb2YgbmV4dC1v dmVyLXRocm93LgorICAgIFByZXZpb3VzbHksIHdlIHJlc2V0IHRoZSBzdGVwLXJlc3VtZSBicmVh a3BvaW50LgorICAgIEhvd2V2ZXIsIHRoaXMgY2FuIGRvIHRoZSB3cm9uZyB0aGluZyBpZiBhbiBl eGNlcHRpb24KKyAgICBpcyB0aHJvd24gYW5kIGNhdWdodCBiZW5lYXRoIHRoZSBuZXh0aW5nIGZy YW1lLgorICAgIFRoZSBuZXcgYXBwcm9hY2ggaXMgdG8gaGF2ZSBhIHNlcGFyYXRlIGV4Y2VwdGlv bi1yZXN1bWUKKyAgICBicmVha3BvaW50LgorCitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnRocmVhZC5o IGIvZ2RiL2dkYnRocmVhZC5oCitpbmRleCA2MTFkY2JiLi45NjM4MzY4IDEwMDY0NAorLS0tIGEv Z2RiL2dkYnRocmVhZC5oCisrKysgYi9nZGIvZ2RidGhyZWFkLmgKK0BAIC02Niw2ICs2Niw5IEBA IHN0cnVjdCB0aHJlYWRfaW5mbworICAgLyogU3RlcC1yZXN1bWUgb3IgbG9uZ2ptcC1yZXN1bWUg YnJlYWtwb2ludC4gICovCisgICBzdHJ1Y3QgYnJlYWtwb2ludCAqc3RlcF9yZXN1bWVfYnJlYWtw b2ludDsKKyAKKysgIC8qIEV4Y2VwdGlvbi1yZXN1bWUgYnJlYWtwb2ludC4gICovCisrICBzdHJ1 Y3QgYnJlYWtwb2ludCAqZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50OworKworICAgLyogUmFu Z2UgdG8gc2luZ2xlIHN0ZXAgd2l0aGluLgorIAorICAgICAgSWYgdGhpcyBpcyBub256ZXJvLCBy ZXNwb25kIHRvIGEgc2luZ2xlLXN0ZXAgc2lnbmFsIGJ5IGNvbnRpbnVpbmcKK0BAIC0yMjUsNiAr MjI4LDkgQEAgZXh0ZXJuIHZvaWQgZGVsZXRlX3RocmVhZF9zaWxlbnQgKHB0aWRfdCk7CisgLyog RGVsZXRlIGEgc3RlcF9yZXN1bWVfYnJlYWtwb2ludCBmcm9tIHRoZSB0aHJlYWQgZGF0YWJhc2Uu ICovCisgZXh0ZXJuIHZvaWQgZGVsZXRlX3N0ZXBfcmVzdW1lX2JyZWFrcG9pbnQgKHN0cnVjdCB0 aHJlYWRfaW5mbyAqKTsKKyAKKysvKiBEZWxldGUgYW4gZXhjZXB0aW9uX3Jlc3VtZV9icmVha3Bv aW50IGZyb20gdGhlIHRocmVhZCBkYXRhYmFzZS4gKi8KKytleHRlcm4gdm9pZCBkZWxldGVfZXhj ZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50IChzdHJ1Y3QgdGhyZWFkX2luZm8gKik7CisrCisgLyog VHJhbnNsYXRlIHRoZSBpbnRlZ2VyIHRocmVhZCBpZCAoR0RCJ3MgaG9tZWdyb3duIGlkLCBub3Qg dGhlIHN5c3RlbSdzKQorICAgIGludG8gYSAicGlkIiAod2hpY2ggbWF5IGJlIG92ZXJsb2FkZWQg d2l0aCBleHRyYSB0aHJlYWQgaW5mb3JtYXRpb24pLiAgKi8KKyBleHRlcm4gcHRpZF90IHRocmVh ZF9pZF90b19waWQgKGludCk7CitkaWZmIC0tZ2l0IGEvZ2RiL2luZnJ1bi5jIGIvZ2RiL2luZnJ1 bi5jCitpbmRleCA5YTViNTM0Li4zNTQ2Y2YxIDEwMDY0NAorLS0tIGEvZ2RiL2luZnJ1bi5jCisr KysgYi9nZGIvaW5mcnVuLmMKK0BAIC0zMDAsNiArMzAwLDcgQEAgZm9sbG93X2ZvcmsgKHZvaWQp CisgICAgICBwYXJlbnQgdGhyZWFkIHN0cnVjdHVyZSdzIHJ1biBjb250cm9sIHJlbGF0ZWQgZmll bGRzLCBub3QganVzdCB0aGVzZS4KKyAgICAgIEluaXRpYWxpemVkIHRvIGF2b2lkICJtYXkgYmUg dXNlZCB1bmluaXRpYWxpemVkIiB3YXJuaW5ncyBmcm9tIGdjYy4gICovCisgICBzdHJ1Y3QgYnJl YWtwb2ludCAqc3RlcF9yZXN1bWVfYnJlYWtwb2ludCA9IE5VTEw7CisrICBzdHJ1Y3QgYnJlYWtw b2ludCAqZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50ID0gTlVMTDsKKyAgIENPUkVfQUREUiBz dGVwX3JhbmdlX3N0YXJ0ID0gMDsKKyAgIENPUkVfQUREUiBzdGVwX3JhbmdlX2VuZCA9IDA7Cisg ICBzdHJ1Y3QgZnJhbWVfaWQgc3RlcF9mcmFtZV9pZCA9IHsgMCB9OworQEAgLTM1Miw2ICszNTMs OCBAQCBmb2xsb3dfZm9yayAodm9pZCkKKyAJICAgIHN0ZXBfcmFuZ2Vfc3RhcnQgPSB0cC0+c3Rl cF9yYW5nZV9zdGFydDsKKyAJICAgIHN0ZXBfcmFuZ2VfZW5kID0gdHAtPnN0ZXBfcmFuZ2VfZW5k OworIAkgICAgc3RlcF9mcmFtZV9pZCA9IHRwLT5zdGVwX2ZyYW1lX2lkOworKwkgICAgZXhjZXB0 aW9uX3Jlc3VtZV9icmVha3BvaW50CisrCSAgICAgID0gY2xvbmVfbW9tZW50YXJ5X2JyZWFrcG9p bnQgKHRwLT5leGNlcHRpb25fcmVzdW1lX2JyZWFrcG9pbnQpOworIAorIAkgICAgLyogRm9yIG5v dywgZGVsZXRlIHRoZSBwYXJlbnQncyBzciBicmVha3BvaW50LCBvdGhlcndpc2UsCisgCSAgICAg ICBwYXJlbnQvY2hpbGQgc3IgYnJlYWtwb2ludHMgYXJlIGNvbnNpZGVyZWQgZHVwbGljYXRlcywK K0BAIC0zNjIsNiArMzY1LDcgQEAgZm9sbG93X2ZvcmsgKHZvaWQpCisgCSAgICB0cC0+c3RlcF9y YW5nZV9zdGFydCA9IDA7CisgCSAgICB0cC0+c3RlcF9yYW5nZV9lbmQgPSAwOworIAkgICAgdHAt PnN0ZXBfZnJhbWVfaWQgPSBudWxsX2ZyYW1lX2lkOworKwkgICAgZGVsZXRlX2V4Y2VwdGlvbl9y ZXN1bWVfYnJlYWtwb2ludCAodHApOworIAkgIH0KKyAKKyAJcGFyZW50ID0gaW5mZXJpb3JfcHRp ZDsKK0BAIC00MDMsNiArNDA3LDggQEAgZm9sbG93X2ZvcmsgKHZvaWQpCisgCQkgICAgdHAtPnN0 ZXBfcmFuZ2Vfc3RhcnQgPSBzdGVwX3JhbmdlX3N0YXJ0OworIAkJICAgIHRwLT5zdGVwX3Jhbmdl X2VuZCA9IHN0ZXBfcmFuZ2VfZW5kOworIAkJICAgIHRwLT5zdGVwX2ZyYW1lX2lkID0gc3RlcF9m cmFtZV9pZDsKKysJCSAgICB0cC0+ZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50CisrCQkgICAg ICA9IGV4Y2VwdGlvbl9yZXN1bWVfYnJlYWtwb2ludDsKKyAJCSAgfQorIAkJZWxzZQorIAkJICB7 CitAQCAtNDU2LDYgKzQ2Miw5IEBAIGZvbGxvd19pbmZlcmlvcl9yZXNldF9icmVha3BvaW50cyAo dm9pZCkKKyAgIGlmICh0cC0+c3RlcF9yZXN1bWVfYnJlYWtwb2ludCkKKyAgICAgYnJlYWtwb2lu dF9yZV9zZXRfdGhyZWFkICh0cC0+c3RlcF9yZXN1bWVfYnJlYWtwb2ludCk7CisgCisrICBpZiAo dHAtPmV4Y2VwdGlvbl9yZXN1bWVfYnJlYWtwb2ludCkKKysgICAgYnJlYWtwb2ludF9yZV9zZXRf dGhyZWFkICh0cC0+ZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50KTsKKysKKyAgIC8qIFJlaW5z ZXJ0IGFsbCBicmVha3BvaW50cyBpbiB0aGUgY2hpbGQuICBUaGUgdXNlciBtYXkgaGF2ZSBzZXQK KyAgICAgIGJyZWFrcG9pbnRzIGFmdGVyIGNhdGNoaW5nIHRoZSBmb3JrLCBpbiB3aGljaCBjYXNl IHRob3NlCisgICAgICB3ZXJlIG5ldmVyIHNldCBpbiB0aGUgY2hpbGQsIGJ1dCBvbmx5IGluIHRo ZSBwYXJlbnQuICBUaGlzIG1ha2VzCitAQCAtNjk0LDYgKzcwMyw3IEBAIGZvbGxvd19leGVjIChw dGlkX3QgcGlkLCBjaGFyICpleGVjZF9wYXRobmFtZSkKKyAgIC8qIElmIHRoZXJlIHdhcyBvbmUs IGl0J3MgZ29uZSBub3cuICBXZSBjYW5ub3QgdHJ1bHkgc3RlcC10by1uZXh0CisgICAgICBzdGF0 ZW1lbnQgdGhyb3VnaCBhbiBleGVjKCkuICovCisgICB0aC0+c3RlcF9yZXN1bWVfYnJlYWtwb2lu dCA9IE5VTEw7CisrICB0aC0+ZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50ID0gTlVMTDsKKyAg IHRoLT5zdGVwX3JhbmdlX3N0YXJ0ID0gMDsKKyAgIHRoLT5zdGVwX3JhbmdlX2VuZCA9IDA7Cisg CitAQCAtMjE0NSw2ICsyMTU1LDcgQEAgZGVsZXRlX3N0ZXBfcmVzdW1lX2JyZWFrcG9pbnRfY2Fs bGJhY2sgKHN0cnVjdCB0aHJlYWRfaW5mbyAqaW5mbywgdm9pZCAqZGF0YSkKKyAgICAgcmV0dXJu IDA7CisgCisgICBkZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtwb2ludCAoaW5mbyk7CisrICBkZWxl dGVfZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50IChpbmZvKTsKKyAgIHJldHVybiAwOworIH0K KyAKK0BAIC0yMTY4LDYgKzIxNzksNyBAQCBkZWxldGVfc3RlcF90aHJlYWRfc3RlcF9yZXN1bWVf YnJlYWtwb2ludCAodm9pZCkKKyAJIHN0ZXBwaW5nLiAgKi8KKyAgICAgICBzdHJ1Y3QgdGhyZWFk X2luZm8gKnRwID0gaW5mZXJpb3JfdGhyZWFkICgpOworICAgICAgIGRlbGV0ZV9zdGVwX3Jlc3Vt ZV9icmVha3BvaW50ICh0cCk7CisrICAgICAgZGVsZXRlX2V4Y2VwdGlvbl9yZXN1bWVfYnJlYWtw b2ludCAodHApOworICAgICB9CisgICBlbHNlCisgICAgIC8qIEluIGFsbC1zdG9wIG1vZGUsIGRl bGV0ZSBhbGwgc3RlcC1yZXN1bWUgYW5kIGxvbmdqbXAtcmVzdW1lCitAQCAtMzgzMiwzMCArMzg0 NCwzMSBAQCBpbmZydW46IEJQU1RBVF9XSEFUX1NFVF9MT05HSk1QX1JFU1VNRSAoIWdkYmFyY2hf Z2V0X2xvbmdqbXBfdGFyZ2V0KVxuIik7CisgCSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3Rk bG9nLAorIAkJCSAgICAgICJpbmZydW46IEJQU1RBVF9XSEFUX0NMRUFSX0xPTkdKTVBfUkVTVU1F XG4iKTsKKyAKKy0JZ2RiX2Fzc2VydCAoZWNzLT5ldmVudF90aHJlYWQtPnN0ZXBfcmVzdW1lX2Jy ZWFrcG9pbnQgIT0gTlVMTCk7CistCWRlbGV0ZV9zdGVwX3Jlc3VtZV9icmVha3BvaW50IChlY3Mt PmV2ZW50X3RocmVhZCk7CistCistCWlmICghd2hhdC5pc19sb25nam1wKQorKwlpZiAod2hhdC5p c19sb25nam1wKQorKwkgIHsKKysJICAgIGdkYl9hc3NlcnQgKGVjcy0+ZXZlbnRfdGhyZWFkLT5z dGVwX3Jlc3VtZV9icmVha3BvaW50ICE9IE5VTEwpOworKwkgICAgZGVsZXRlX3N0ZXBfcmVzdW1l X2JyZWFrcG9pbnQgKGVjcy0+ZXZlbnRfdGhyZWFkKTsKKysJICB9CisrCWVsc2UKKyAJICB7Cisg CSAgICAvKiBUaGVyZSBhcmUgc2V2ZXJhbCBjYXNlcyB0byBjb25zaWRlci4KKy0JICAgICAgIAor KworIAkgICAgICAgMS4gVGhlIGluaXRpYXRpbmcgZnJhbWUgbm8gbG9uZ2VyIGV4aXN0cy4gIElu IHRoaXMgY2FzZQorIAkgICAgICAgd2UgbXVzdCBzdG9wLCBiZWNhdXNlIHRoZSBleGNlcHRpb24g aGFzIGdvbmUgdG9vIGZhci4KKy0JICAgICAgIAorKworIAkgICAgICAgMi4gVGhlIGluaXRpYXRp bmcgZnJhbWUgZXhpc3RzLCBhbmQgaXMgdGhlIHNhbWUgYXMgdGhlCistCSAgICAgICBjdXJyZW50 IGZyYW1lLgorLQkgICAgICAgCistCSAgICAgICAyLjEuIElmIHdlIGFyZSBzdGVwcGluZywgZGVm ZXIgdG8gdGhlIHN0ZXBwaW5nIGxvZ2ljLgorLQkgICAgICAgCistCSAgICAgICAyLjIuIE90aGVy d2lzZSwgd2UgYXJlIG5vdCBzdGVwcGluZywgc28gd2UgYXJlIGRvaW5nIGEKKy0JICAgICAgICJm aW5pc2giIGFuZCB3ZSBoYXZlIHJlYWNoZWQgdGhlIGNhbGxpbmcgZnJhbWUuICBTbywKKy0JICAg ICAgIHN0b3AuCistCSAgICAgICAKKysJICAgICAgIGN1cnJlbnQgZnJhbWUuICBXZSBzdG9wLCBi ZWNhdXNlIHRoZSBleGNlcHRpb24gaGFzIGJlZW4KKysJICAgICAgIGNhdWdodC4KKysKKyAJICAg ICAgIDMuIFRoZSBpbml0aWF0aW5nIGZyYW1lIGV4aXN0cyBhbmQgaXMgZGlmZmVyZW50IGZyb20K KyAJICAgICAgIHRoZSBjdXJyZW50IGZyYW1lLiAgVGhpcyBtZWFucyB0aGUgZXhjZXB0aW9uIGhh cyBiZWVuCisgCSAgICAgICBjYXVnaHQgYmVuZWF0aCB0aGUgaW5pdGlhdGluZyBmcmFtZSwgc28g a2VlcCBnb2luZy4gICovCisgCSAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqaW5pdF9mcmFtZQorIAkg ICAgICA9IGZyYW1lX2ZpbmRfYnlfaWQgKGVjcy0+ZXZlbnRfdGhyZWFkLT5pbml0aWF0aW5nX2Zy YW1lKTsKKysKKysJICAgIGdkYl9hc3NlcnQgKGVjcy0+ZXZlbnRfdGhyZWFkLT5leGNlcHRpb25f cmVzdW1lX2JyZWFrcG9pbnQgIT0gTlVMTCk7CisrCSAgICBkZWxldGVfZXhjZXB0aW9uX3Jlc3Vt ZV9icmVha3BvaW50IChlY3MtPmV2ZW50X3RocmVhZCk7CisrCisgCSAgICBpZiAoaW5pdF9mcmFt ZSkKKyAJICAgICAgeworIAkJc3RydWN0IGZyYW1lX2lkIGN1cnJlbnRfaWQKK0BAIC0zODYzLDE1 ICszODc2LDcgQEAgaW5mcnVuOiBCUFNUQVRfV0hBVF9TRVRfTE9OR0pNUF9SRVNVTUUgKCFnZGJh cmNoX2dldF9sb25nam1wX3RhcmdldClcbiIpOworIAkJaWYgKGZyYW1lX2lkX2VxIChjdXJyZW50 X2lkLAorIAkJCQkgZWNzLT5ldmVudF90aHJlYWQtPmluaXRpYXRpbmdfZnJhbWUpKQorIAkJICB7 CistCQkgICAgaWYgKGVjcy0+ZXZlbnRfdGhyZWFkLT5zdGVwX3JhbmdlX3N0YXJ0KQorLQkJICAg ICAgeworLQkJCS8qIENhc2UgMi4xLiAgKi8KKy0JCQlicmVhazsKKy0JCSAgICAgIH0KKy0JCSAg ICBlbHNlCistCQkgICAgICB7CistCQkJLyogQ2FzZSAyLjI6IGZhbGwgdGhyb3VnaC4gICovCist CQkgICAgICB9CisrCQkgICAgLyogQ2FzZSAyLiAgRmFsbCB0aHJvdWdoLiAgKi8KKyAJCSAgfQor IAkJZWxzZQorIAkJICB7CitAQCAtMzg4MCw2ICszODg1LDEwIEBAIGluZnJ1bjogQlBTVEFUX1dI QVRfU0VUX0xPTkdKTVBfUkVTVU1FICghZ2RiYXJjaF9nZXRfbG9uZ2ptcF90YXJnZXQpXG4iKTsK KyAJCSAgICByZXR1cm47CisgCQkgIH0KKyAJICAgICAgfQorKworKwkgICAgLyogRm9yIENhc2Vz IDEgYW5kIDIsIHJlbW92ZSB0aGUgc3RlcC1yZXN1bWUgYnJlYWtwb2ludCwKKysJICAgICAgIGlm IGl0IGV4aXN0cy4gICovCisrCSAgICBkZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtwb2ludCAoZWNz LT5ldmVudF90aHJlYWQpOworIAkgIH0KKyAKKyAJZWNzLT5ldmVudF90aHJlYWQtPnN0b3Bfc3Rl cCA9IDE7CitAQCAtNDkzMCwxMCArNDkzOSw2IEBAIGluc2VydF9leGNlcHRpb25fcmVzdW1lX2Jy ZWFrcG9pbnQgKHN0cnVjdCB0aHJlYWRfaW5mbyAqdHAsCisgCXsKKyAJICBoYW5kbGVyID0gdmFs dWVfYXNfYWRkcmVzcyAodmFsdWUpOworIAorLQkgIC8qIFdlJ3JlIGdvaW5nIHRvIHJlcGxhY2Ug dGhlIGN1cnJlbnQgc3RlcC1yZXN1bWUgYnJlYWtwb2ludAorLQkgICAgIHdpdGggYW4gZXhjZXB0 aW9uLXJlc3VtZSBicmVha3BvaW50LiAgKi8KKy0JICBkZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtw b2ludCAodHApOworLQorIAkgIGlmIChkZWJ1Z19pbmZydW4pCisgCSAgICBmcHJpbnRmX3VuZmls dGVyZWQgKGdkYl9zdGRsb2csCisgCQkJCSJpbmZydW46IGV4Y2VwdGlvbiByZXN1bWUgYXQgJWx4 XG4iLAorQEAgLTQ5NDEsNyArNDk0Niw3IEBAIGluc2VydF9leGNlcHRpb25fcmVzdW1lX2JyZWFr cG9pbnQgKHN0cnVjdCB0aHJlYWRfaW5mbyAqdHAsCisgCisgCSAgYnAgPSBzZXRfbW9tZW50YXJ5 X2JyZWFrcG9pbnRfYXRfcGMgKGdldF9mcmFtZV9hcmNoIChmcmFtZSksCisgCQkJCQkgICAgICAg aGFuZGxlciwgYnBfZXhjZXB0aW9uX3Jlc3VtZSk7CistCSAgaW5mZXJpb3JfdGhyZWFkICgpLT5z dGVwX3Jlc3VtZV9icmVha3BvaW50ID0gYnA7CisrCSAgaW5mZXJpb3JfdGhyZWFkICgpLT5leGNl cHRpb25fcmVzdW1lX2JyZWFrcG9pbnQgPSBicDsKKyAJfQorICAgICB9CisgfQorZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjk1OTMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu Y3AvZ2RiOTU5My5leHAKK2luZGV4IGVlOWFlZmYuLmM3N2RiZDggMTAwNjQ0CistLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5jcC9nZGI5NTkzLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Av Z2RiOTU5My5leHAKK0BAIC0xNDUsNyArMTQ1LDcgQEAgZ2RiX3Rlc3QgInN0ZXAiIFwKKyAgICJz dGVwIGludG8gZmluaXNoLCBmb3IgdW50aWwiCisgCisgZ2RiX3Rlc3QgInVudGlsIiBcCistICAi LipjYXRjaCAuaW50IHguKiIgXAorKyAgIi4qZnVuY3Rpb24xICgpLioiIFwKKyAgICJ1bnRpbCB3 aXRoIG5vIGFyZ3VtZW50IDEiCisgCisgc2V0IGxpbmUgW2dkYl9nZXRfbGluZV9udW1iZXIgIm1h cmtlciBmb3IgdW50aWwiICR0ZXN0ZmlsZS5jY10KK2RpZmYgLS1naXQgYS9nZGIvdGhyZWFkLmMg Yi9nZGIvdGhyZWFkLmMKK2luZGV4IDE2YTIwN2MuLjNjNTJhZTQgMTAwNjQ0CistLS0gYS9nZGIv dGhyZWFkLmMKKysrKyBiL2dkYi90aHJlYWQuYworQEAgLTkwLDYgKzkwLDE2IEBAIGRlbGV0ZV9z dGVwX3Jlc3VtZV9icmVha3BvaW50IChzdHJ1Y3QgdGhyZWFkX2luZm8gKnRwKQorICAgICB9Cisg fQorIAorK3ZvaWQKKytkZWxldGVfZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50IChzdHJ1Y3Qg dGhyZWFkX2luZm8gKnRwKQorK3sKKysgIGlmICh0cCAmJiB0cC0+ZXhjZXB0aW9uX3Jlc3VtZV9i cmVha3BvaW50KQorKyAgICB7CisrICAgICAgZGVsZXRlX2JyZWFrcG9pbnQgKHRwLT5leGNlcHRp b25fcmVzdW1lX2JyZWFrcG9pbnQpOworKyAgICAgIHRwLT5leGNlcHRpb25fcmVzdW1lX2JyZWFr cG9pbnQgPSBOVUxMOworKyAgICB9CisrfQorKworIHN0YXRpYyB2b2lkCisgY2xlYXJfdGhyZWFk X2luZmVyaW9yX3Jlc291cmNlcyAoc3RydWN0IHRocmVhZF9pbmZvICp0cCkKKyB7CgpkaWZmIC0t Z2l0IGEvZ2RiLXVwc3RyZWFtLnBhdGNoIGIvZ2RiLXVwc3RyZWFtLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2NDNhZDYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIt dXBzdHJlYW0ucGF0Y2gKQEAgLTAsMCArMSwxMTc5IEBACitodHRwOi8vc291cmNld2FyZS5vcmcv bWwvZ2RiLWN2cy8yMDEwLTAzL21zZzAwMTA0Lmh0bWwKKzU4NTU5NTQ0NTRmMTlhODAxZjc2YmJm N2JhYWZkMTFhNjkzYzVkMzMKKworSW1wb3J0ZWQgdG8gc3luYyBnZGIuYmFzZS9icmVhay1pbnRl cnAuZXhwIGZvciBnZGItcGllLXJlcnVuLnBhdGNoLgorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJ MjAxMC8wMy8xMSAwMzo0NTo0OAkxLjExNDY5CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMC8w My8xMSAyMjowNzowMAkxLjExNDcwCisjIyAtMSwzICsxLDkgQEAKKysyMDEwLTAzLTExICBKYW4g S3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCisrCSogc29saWItc3Zy NC5jIChMTV9BRERSX0NIRUNLKSA8aW5mb192ZXJib3NlPjogVXNlIHByaW50Zl91bmZpbHRlcmVk CisrCWZvciB0aGUgUElDIGRpc3BsYWNlbWVudCwgcHJpbnQgYWxzbyB0aGUgZGlzcGxhY2VtZW50 IHZhbHVlLgorKwkoc3ZyNF9leGVjX2Rpc3BsYWNlbWVudCk6ICBQcmludCBESVNQTEFDRU1FTlQg aWYgSU5GT19WRVJCT1NFLgorKworIDIwMTAtMDMtMTAgIEtldmluIEJ1ZXR0bmVyICA8a2V2aW5i QHJlZGhhdC5jb20+CisgCisgCSogcmVtb3RlLW1pcHMuYyAoY2xvc2VfcG9ydHMsIG1pcHNfaW5p dGlhbGl6ZV9jbGVhbnVwcykKKy0tLSBzcmMvZ2RiL3NvbGliLXN2cjQuYwkyMDEwLzAzLzEwIDIw OjU1OjQ0CTEuMTI5CisrKysgc3JjL2dkYi9zb2xpYi1zdnI0LmMJMjAxMC8wMy8xMSAyMjowNzow MgkxLjEzMAorQEAgLTI0MywxMiArMjQzLDEwIEBACisgCSAgICAgIGxfYWRkciA9IGxfZHluYWRk ciAtIGR5bmFkZHI7CisgCisgCSAgICAgIGlmIChpbmZvX3ZlcmJvc2UpCistCQl7CistCQkgIHdh cm5pbmcgKF8oIi5keW5hbWljIHNlY3Rpb24gZm9yIFwiJXNcIiAiCistCQkJICAgICAiaXMgbm90 IGF0IHRoZSBleHBlY3RlZCBhZGRyZXNzIiksIHNvLT5zb19uYW1lKTsKKy0JCSAgd2FybmluZyAo XygiZGlmZmVyZW5jZSBhcHBlYXJzIHRvIGJlIGNhdXNlZCBieSBwcmVsaW5rLCAiCistCQkJICAg ICAiYWRqdXN0aW5nIGV4cGVjdGF0aW9ucyIpKTsKKy0JCX0KKysJCXByaW50Zl91bmZpbHRlcmVk IChfKCJVc2luZyBQSUMgKFBvc2l0aW9uIEluZGVwZW5kZW50IENvZGUpICIKKysJCQkJICAgICAi cHJlbGluayBkaXNwbGFjZW1lbnQgJXMgZm9yIFwiJXNcIi5cbiIpLAorKwkJCQkgICBwYWRkcmVz cyAodGFyZ2V0X2dkYmFyY2gsIGxfYWRkciksCisrCQkJCSAgIHNvLT5zb19uYW1lKTsKKyAJICAg IH0KKyAJICBlbHNlCisgCSAgICB3YXJuaW5nIChfKCIuZHluYW1pYyBzZWN0aW9uIGZvciBcIiVz XCIgIgorQEAgLTE3NjcsNiArMTc2NSwxOCBAQAorIAlyZXR1cm4gMDsKKyAgICAgfQorIAorKyAg aWYgKGluZm9fdmVyYm9zZSkKKysgICAgeworKyAgICAgIC8qIEl0IGNhbiBiZSBwcmludGVkIHJl cGVhdGVkbHkgYXMgdGhlcmUgaXMgbm8gZWFzeSB3YXkgdG8gY2hlY2sKKysJIHRoZSBleGVjdXRh YmxlIHN5bWJvbHMvZmlsZSBoYXMgYmVlbiBhbHJlYWR5IHJlbG9jYXRlZCB0bworKwkgZGlzcGxh Y2VtZW50LiAgKi8KKysKKysgICAgICBwcmludGZfdW5maWx0ZXJlZCAoXygiVXNpbmcgUElFIChQ b3NpdGlvbiBJbmRlcGVuZGVudCBFeGVjdXRhYmxlKSAiCisrCQkJICAgImRpc3BsYWNlbWVudCAl cyBmb3IgXCIlc1wiLlxuIiksCisrCQkJIHBhZGRyZXNzICh0YXJnZXRfZ2RiYXJjaCwgZGlzcGxh Y2VtZW50KSwKKysJCQkgYmZkX2dldF9maWxlbmFtZSAoZXhlY19iZmQpKTsKKysgICAgfQorKwor ICAgKmRpc3BsYWNlbWVudHAgPSBkaXNwbGFjZW1lbnQ7CisgICByZXR1cm4gMTsKKyB9CisjIyMg c3JjL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDMvMTEgMDA6MjA6MjkJMS4yMTY4Cisj IyMgc3JjL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDMvMTEgMjI6MDc6MDIJMS4yMTY5 CisjIyAtMSwzICsxLDIwIEBACisrMjAxMC0wMy0xMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPgorKworKwkqIGdkYi5iYXNlL2JyZWFrLWludGVycC5leHA6IENy ZWF0ZSBuZXcgZGlzcGxhY2VtZW50IHBhcmFtZXRlciB2YWx1ZQorKwlmb3IgdGhlIHRlc3RfbGQg Y2FsbHMuCisrCShyZWFjaCk6IE5ldyBwYXJhbWV0ZXIgZGlzcGxhY2VtZW50LCB2ZXJpZnkgaXRz IGNvbnRlbnQuICBOZXcgcHVzaCBvZgorKwlwZl9wcmVmaXggInJlYWNoLSRmdW5jOiIuICBJbXBv cnQgZ2xvYmFsIGV4cGVjdF9vdXQuCisrCSh0ZXN0X2NvcmUpOiBOZXcgcGFyYW1ldGVyIGRpc3Bs YWNlbWVudCwgdmVyaWZ5IGl0cyBjb250ZW50LiAgTmV3IHB1c2gKKysJb2YgcGZfcHJlZml4ICJj b3JlOiIuICBOZXcgY29tbWFuZCAic2V0IHZlcmJvc2Ugb24iLiAgSW1wb3J0IGdsb2JhbAorKwll eHBlY3Rfb3V0LgorKwkodGVzdF9hdHRhY2gpOiBOZXcgcGFyYW1ldGVyIGRpc3BsYWNlbWVudCwg dmVyaWZ5IGl0cyBjb250ZW50LiAgTmV3CisrCXB1c2ggb2YgcGZfcHJlZml4ICJhdHRhY2g6Ii4g IE5ldyBjb21tYW5kICJzZXQgdmVyYm9zZSBvbiIuICBJbXBvcnQKKysJZ2xvYmFsIGV4cGVjdF9v dXQuCisrCSh0ZXN0X2xkKTogTmV3IHBhcmFtZXRlciBkaXNwbGFjZW1lbnQsIHBhc3MgaXQgdG8g dGhlIHJlYWNoLCB0ZXN0X2NvcmUKKysJYW5kIHRlc3RfYXR0YWNoIGNhbGxzIGFuZCB2ZXJpZnkg aXRzIGNvbnRlbnQgaW4gdGhlICJsZC5zbyBleGl0IiB0ZXN0LgorKwkqIGdkYi5iYXNlL3ByZWxp bmsuZXhwOiBSZW1vdmUgZ2RiX2V4aXQgYW5kIGZpbmFsIHJldHVybi4KKysJKHByZWxpbmspOiBV cGRhdGUgZXhwZWN0ZWQgdGV4dCwgdXNlIGdkYl90ZXN0LgorKworIDIwMTAtMDMtMTAgIERvdWcg RXZhbnMgIDxkamVAZ29vZ2xlLmNvbT4KKyAKKyAJKiBnZGIuYmFzZS9jaGVja3BvaW50LmV4cDog Rml4IGNvbW1lbnQuCistLS0gc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJlYWstaW50ZXJw LmV4cAkyMDEwLzAxLzI3IDIwOjUzOjIyCTEuNgorKysrIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2JyZWFrLWludGVycC5leHAJMjAxMC8wMy8xMSAyMjowNzowMwkxLjcKK0BAIC0yMjEsMzAg KzIyMSw2MSBAQAorIH0KKyAKKyAjIGBydW50bycgZG9lcyBub3QgY2hlY2sgd2Ugc3RvcHBlZCBy ZWFsbHkgYXQgdGhlIGZ1bmN0aW9uIHdlIHNwZWNpZmllZC4KKy1wcm9jIHJlYWNoIHtmdW5jIGNv bW1hbmR9IHsKKy0gICAgZ2xvYmFsIGdkYl9wcm9tcHQKKysjIERJU1BMQUNFTUVOVCBjYW4gYmUg Ik5PTkUiLCAiWkVSTyIgb3IgIk5PTlpFUk8iCisrcHJvYyByZWFjaCB7ZnVuYyBjb21tYW5kIGRp c3BsYWNlbWVudH0geworKyAgICBnbG9iYWwgZ2RiX3Byb21wdCBleHBlY3Rfb3V0CisrCisrICAg IGdsb2JhbCBwZl9wcmVmaXgKKysgICAgc2V0IG9sZF9sZHByZWZpeCAkcGZfcHJlZml4CisrICAg IGxhcHBlbmQgcGZfcHJlZml4ICJyZWFjaC0kZnVuYzoiCisgCisgICAgIGlmIFtnZGJfYnJlYWtw b2ludCAkZnVuYyBhbGxvdy1wZW5kaW5nXSB7CistCXNldCB0ZXN0ICJyZWFjaCAkZnVuYyIKKysJ c2V0IHRlc3QgInJlYWNoIgorKwlzZXQgdGVzdF9kaXNwbGFjZW1lbnQgInNlZW4gZGlzcGxhY2Vt ZW50IG1lc3NhZ2UgYXMgJGRpc3BsYWNlbWVudCIKKyAJZ2RiX3Rlc3RfbXVsdGlwbGUgJGNvbW1h bmQgJHRlc3QgeworKwkgICAgLXJlICJVc2luZyBQSUUgXFwoUG9zaXRpb24gSW5kZXBlbmRlbnQg RXhlY3V0YWJsZVxcKSBkaXNwbGFjZW1lbnQgKDB4XFswLTlhLWZcXSspICIgeworKwkJIyBNaXNz aW5nICIkZ2RiX3Byb21wdCAkIiBpcyBpbnRlbnRpb25hbC4KKysJCWlmIHskZXhwZWN0X291dCgx LHN0cmluZykgPT0gIjB4MCJ9IHsKKysJCSAgICBzZXQgY2FzZSAiWkVSTyIKKysJCX0gZWxzZSB7 CisrCQkgICAgc2V0IGNhc2UgIk5PTlpFUk8iCisrCQl9CisrCQlpZiB7JGRpc3BsYWNlbWVudCA9 PSAkY2FzZX0geworKwkJICAgIHBhc3MgJHRlc3RfZGlzcGxhY2VtZW50CisrCQkgICAgIyBQZXJt aXQgbXVsdGlwbGUgc3VjaCBtZXNzYWdlcy4KKysJCSAgICBzZXQgZGlzcGxhY2VtZW50ICJGT1VO RC0kZGlzcGxhY2VtZW50IgorKwkJfSBlbHNlaWYgeyRkaXNwbGFjZW1lbnQgIT0gIkZPVU5ELSRj YXNlIn0geworKwkJICAgIGZhaWwgJHRlc3RfZGlzcGxhY2VtZW50CisrCQl9CisrCQlleHBfY29u dGludWUKKysJICAgIH0KKyAJICAgIC1yZSAiQnJlYWtwb2ludCBcWzAtOVxdKywgJGZ1bmMgXFwo LipcXCkgYXQgLio6XFswLTlcXStcclxuLiokZ2RiX3Byb21wdCAkIiB7CisgCQlwYXNzICR0ZXN0 CisgCSAgICB9CistCSAgICAtcmUgIkJyZWFrcG9pbnQgXFswLTlcXSssIFxbMC05eGEtZlxdKyBp biAkZnVuYyBcXChcXCkoIGZyb20gLiopP1xyXG4kZ2RiX3Byb21wdCAkIiB7IAorKwkgICAgLXJl ICJCcmVha3BvaW50IFxbMC05XF0rLCBcWzAtOXhhLWZcXSsgaW4gJGZ1bmMgXFwoXFwpKCBmcm9t IC4qKT9cclxuJGdkYl9wcm9tcHQgJCIgeworIAkJcGFzcyAkdGVzdAorIAkgICAgfQorIAl9Cisr CWlmICFbcmVnZXhwIHteKE5PTkV8Rk9VTkQtLiopJH0gJGRpc3BsYWNlbWVudF0geworKwkgICAg ZmFpbCAkdGVzdF9kaXNwbGFjZW1lbnQKKysJfQorICAgICB9CisrCisrICAgIHNldCBwZl9wcmVm aXggJG9sZF9sZHByZWZpeAorIH0KKyAKKy1wcm9jIHRlc3RfY29yZSB7ZmlsZX0geworLSAgICBn bG9iYWwgc3JjZGlyIHN1YmRpciBnZGJfcHJvbXB0CisrcHJvYyB0ZXN0X2NvcmUge2ZpbGUgZGlz cGxhY2VtZW50fSB7CisrICAgIGdsb2JhbCBzcmNkaXIgc3ViZGlyIGdkYl9wcm9tcHQgZXhwZWN0 X291dAorIAorICAgICBzZXQgY29yZWZpbGUgW2NvcmVfZmluZCAkZmlsZSB7fSAic2VndiJdCisg ICAgIGlmIHskY29yZWZpbGUgPT0gIiJ9IHsKKyAJcmV0dXJuCisgICAgIH0KKyAKKysgICAgZ2xv YmFsIHBmX3ByZWZpeAorKyAgICBzZXQgb2xkX2xkcHJlZml4ICRwZl9wcmVmaXgKKysgICAgbGFw cGVuZCBwZl9wcmVmaXggImNvcmU6IgorKworICAgICBnZGJfZXhpdAorICAgICBnZGJfc3RhcnQK KyAgICAgIyBDbGVhciBpdCB0byBuZXZlciBmaW5kIGFueSBzZXBhcmF0ZSBkZWJ1ZyBpbmZvcyBp biAkZGVidWdfcm9vdC4KK0BAIC0yNTIsMTQgKzI4Myw0NCBAQAorICAgICBnZGJfcmVpbml0aWFs aXplX2RpciAkc3JjZGlyLyRzdWJkaXIKKyAgICAgZ2RiX2xvYWQgJGZpbGUKKyAKKy0gICAgIyBE byBub3QgY2hlY2sgdGhlIGJpbmFyeSBmaWxlbmFtZSBhcyBpdCBtYXkgYmUgdHJ1bmNhdGVkLgor LSAgICBnZGJfdGVzdCAiY29yZS1maWxlICRjb3JlZmlsZSIgIkNvcmUgd2FzIGdlbmVyYXRlZCBi eSAuKlxyXG4jMCAuKiIgImNvcmUgbG9hZGVkIgorKyAgICAjIFByaW50IHRoZSAiUElFIChQb3Np dGlvbiBJbmRlcGVuZGVudCBFeGVjdXRhYmxlKSBkaXNwbGFjZW1lbnQiIG1lc3NhZ2UuCisrICAg IGdkYl90ZXN0ICJzZXQgdmVyYm9zZSBvbiIKKysKKysgICAgc2V0IHRlc3QgImNvcmUgbG9hZGVk IgorKyAgICBzZXQgdGVzdF9kaXNwbGFjZW1lbnQgInNlZW4gZGlzcGxhY2VtZW50IG1lc3NhZ2Ui CisrICAgIGdkYl90ZXN0X211bHRpcGxlICJjb3JlLWZpbGUgJGNvcmVmaWxlIiAkdGVzdCB7Cisr CS1yZSAiVXNpbmcgUElFIFxcKFBvc2l0aW9uIEluZGVwZW5kZW50IEV4ZWN1dGFibGVcXCkgZGlz cGxhY2VtZW50ICgweFxbMC05YS1mXF0rKSAiIHsKKysJICAgICMgTWlzc2luZyAiJGdkYl9wcm9t cHQgJCIgaXMgaW50ZW50aW9uYWwuCisrCSAgICBpZiB7JGV4cGVjdF9vdXQoMSxzdHJpbmcpID09 ICIweDAifSB7CisrCQlzZXQgY2FzZSAiWkVSTyIKKysJICAgIH0gZWxzZSB7CisrCQlzZXQgY2Fz ZSAiTk9OWkVSTyIKKysJICAgIH0KKysJICAgIGlmIHskZGlzcGxhY2VtZW50ID09ICRjYXNlfSB7 CisrCQlwYXNzICR0ZXN0X2Rpc3BsYWNlbWVudAorKwkJIyBQZXJtaXQgbXVsdGlwbGUgc3VjaCBt ZXNzYWdlcy4KKysJCXNldCBkaXNwbGFjZW1lbnQgIkZPVU5ELSRkaXNwbGFjZW1lbnQiCisrCSAg ICB9IGVsc2VpZiB7JGRpc3BsYWNlbWVudCAhPSAiRk9VTkQtJGNhc2UifSB7CisrCQlmYWlsICR0 ZXN0X2Rpc3BsYWNlbWVudAorKwkgICAgfQorKwkgICAgZXhwX2NvbnRpbnVlCisrCX0KKysJLXJl ICJDb3JlIHdhcyBnZW5lcmF0ZWQgYnkgLipcclxuIzAgLiokZ2RiX3Byb21wdCAkIiB7CisrCSAg ICAjIERvIG5vdCBjaGVjayB0aGUgYmluYXJ5IGZpbGVuYW1lIGFzIGl0IG1heSBiZSB0cnVuY2F0 ZWQuCisrCSAgICBwYXNzICR0ZXN0CisrCX0KKysgICAgfQorKyAgICBpZiAhW3JlZ2V4cCB7XihO T05FfEZPVU5ELS4qKSR9ICRkaXNwbGFjZW1lbnRdIHsKKysJZmFpbCAkdGVzdF9kaXNwbGFjZW1l bnQKKysgICAgfQorIAorICAgICBnZGJfdGVzdCAiYnQiICIjXFswLTlcXSsgK1xbXlxyXG5cXSpc XG1saWJmdW5jXFxNXFteXHJcblxdKlxyXG4jXFswLTlcXSsgK1xbXlxyXG5cXSpcXG1tYWluXFxN LioiICJjb3JlIG1haW4gYnQiCisrCisrICAgIHNldCBwZl9wcmVmaXggJG9sZF9sZHByZWZpeAor IH0KKyAKKy1wcm9jIHRlc3RfYXR0YWNoIHtmaWxlfSB7CistICAgIGdsb2JhbCBib2FyZF9pbmZv CisrcHJvYyB0ZXN0X2F0dGFjaCB7ZmlsZSBkaXNwbGFjZW1lbnR9IHsKKysgICAgZ2xvYmFsIGJv YXJkX2luZm8gZ2RiX3Byb21wdCBleHBlY3Rfb3V0CisgCisgICAgIGdkYl9leGl0CisgCitAQCAt Mjg3LDE3ICszNDgsNjEgQEAKKyAJfQorICAgICB9CisgCisrICAgIGdsb2JhbCBwZl9wcmVmaXgK KysgICAgc2V0IG9sZF9sZHByZWZpeCAkcGZfcHJlZml4CisrICAgIGxhcHBlbmQgcGZfcHJlZml4 ICJhdHRhY2g6IgorKworICAgICBnZGJfZXhpdAorICAgICBnZGJfc3RhcnQKKy0gICAgZ2RiX3Rl c3QgImF0dGFjaCAkcGlkIiAiQXR0YWNoaW5nIHRvIHByb2Nlc3MgJHBpZFxyXG4uKiIgImF0dGFj aCIKKysKKysgICAgIyBQcmludCB0aGUgIlBJRSAoUG9zaXRpb24gSW5kZXBlbmRlbnQgRXhlY3V0 YWJsZSkgZGlzcGxhY2VtZW50IiBtZXNzYWdlLgorKyAgICBnZGJfdGVzdCAic2V0IHZlcmJvc2Ug b24iCisrCisrICAgIHNldCB0ZXN0ICJhdHRhY2giCisrICAgIGdkYl90ZXN0X211bHRpcGxlICJh dHRhY2ggJHBpZCIgJHRlc3QgeworKwktcmUgIkF0dGFjaGluZyB0byBwcm9jZXNzICRwaWRcclxu IiB7CisrCSAgICAjIE1pc3NpbmcgIiRnZGJfcHJvbXB0ICQiIGlzIGludGVudGlvbmFsLgorKwkg ICAgcGFzcyAkdGVzdAorKwl9CisrICAgIH0KKysKKysgICAgc2V0IHRlc3QgImF0dGFjaCBmaW5h bCBwcm9tcHQiCisrICAgIHNldCB0ZXN0X2Rpc3BsYWNlbWVudCAic2VlbiBkaXNwbGFjZW1lbnQg bWVzc2FnZSIKKysgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgeworKwktcmUgIlVzaW5n IFBJRSBcXChQb3NpdGlvbiBJbmRlcGVuZGVudCBFeGVjdXRhYmxlXFwpIGRpc3BsYWNlbWVudCAo MHhcWzAtOWEtZlxdKykgIiB7CisrCSAgICAjIE1pc3NpbmcgIiRnZGJfcHJvbXB0ICQiIGlzIGlu dGVudGlvbmFsLgorKwkgICAgaWYgeyRleHBlY3Rfb3V0KDEsc3RyaW5nKSA9PSAiMHgwIn0gewor KwkJc2V0IGNhc2UgIlpFUk8iCisrCSAgICB9IGVsc2UgeworKwkJc2V0IGNhc2UgIk5PTlpFUk8i CisrCSAgICB9CisrCSAgICBpZiB7JGRpc3BsYWNlbWVudCA9PSAkY2FzZX0geworKwkJcGFzcyAk dGVzdF9kaXNwbGFjZW1lbnQKKysJCSMgUGVybWl0IG11bHRpcGxlIHN1Y2ggbWVzc2FnZXMuCisr CQlzZXQgZGlzcGxhY2VtZW50ICJGT1VORC0kZGlzcGxhY2VtZW50IgorKwkgICAgfSBlbHNlaWYg eyRkaXNwbGFjZW1lbnQgIT0gIkZPVU5ELSRjYXNlIn0geworKwkJZmFpbCAkdGVzdF9kaXNwbGFj ZW1lbnQKKysJICAgIH0KKysJICAgIGV4cF9jb250aW51ZQorKwl9CisrCS1yZSAiJGdkYl9wcm9t cHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKwl9CisrICAgIH0KKysgICAgaWYgIVtyZWdleHAg e14oTk9ORXxGT1VORC0uKikkfSAkZGlzcGxhY2VtZW50XSB7CisrCWZhaWwgJHRlc3RfZGlzcGxh Y2VtZW50CisrICAgIH0KKysKKyAgICAgZ2RiX3Rlc3QgImJ0IiAiI1xbMC05XF0rICtcW15cclxu XF0qXFxtbGliZnVuY1xcTVxbXlxyXG5cXSpcclxuI1xbMC05XF0rICtcW15cclxuXF0qXFxtbWFp blxcTS4qIiAiYXR0YWNoIG1haW4gYnQiCisgICAgIGdkYl9leGl0CisgCisgICAgIHJlbW90ZV9l eGVjIGhvc3QgImtpbGwgLTkgJHBpZCIKKysKKysgICAgc2V0IHBmX3ByZWZpeCAkb2xkX2xkcHJl Zml4CisgfQorIAorLXByb2MgdGVzdF9sZCB7ZmlsZSBpZm1haW4gdHJ5bm9zeW19IHsKKy0gICAg Z2xvYmFsIHNyY2RpciBzdWJkaXIgZ2RiX3Byb21wdAorK3Byb2MgdGVzdF9sZCB7ZmlsZSBpZm1h aW4gdHJ5bm9zeW0gZGlzcGxhY2VtZW50fSB7CisrICAgIGdsb2JhbCBzcmNkaXIgc3ViZGlyIGdk Yl9wcm9tcHQgZXhwZWN0X291dAorIAorICAgICAjIEZpcnN0IHRlc3Qgbm9ybWFsIGBmaWxlJy1j b21tYW5kIGxvYWRlZCAkRklMRSB3aXRoIHN5bWJvbHMuCisgCitAQCAtMzA4LDIwICs0MTMsMzEg QEAKKyAgICAgZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisgICAgIGdkYl9s b2FkICRmaWxlCisgCistICAgIHJlYWNoICJkbF9tYWluIiAicnVuIHNlZ3YiCisrICAgICMgUHJp bnQgdGhlICJQSUUgKFBvc2l0aW9uIEluZGVwZW5kZW50IEV4ZWN1dGFibGUpIGRpc3BsYWNlbWVu dCIgbWVzc2FnZS4KKysgICAgZ2RiX3Rlc3QgInNldCB2ZXJib3NlIG9uIgorKworKyAgICByZWFj aCAiZGxfbWFpbiIgInJ1biBzZWd2IiAkZGlzcGxhY2VtZW50CisgCisgICAgIGdkYl90ZXN0ICJi dCIgIiMwICtcW15cclxuXF0qXFxtZGxfbWFpblxcTS4qIiAiZGwgYnQiCisgCisgICAgIGlmICRp Zm1haW4geworLQlyZWFjaCAibWFpbiIgY29udGludWUKKysJIyBEaXNwbGFjZW1lbnQgbWVzc2Fn ZSB3aWxsIGJlIHByaW50ZWQgdGhlIHNlY29uZCB0aW1lIG9uIGluaXRpYWxpemluZworKwkjIHRo ZSBsaW5rZXIgZnJvbSBzdnI0X3NwZWNpYWxfc3ltYm9sX2hhbmRsaW5nLiAgSWYgYW55IEFOT0ZG U0VUIGhhcworKwkjIGJlZW4gYWxyZWFkeSBzZXQgYXMgbm9uLXplcm8gdGhlIGRldGVjdGlvbiB3 aWxsIG5vIGxvbmdlciBiZSBydW4uCisrCWlmIHskZGlzcGxhY2VtZW50ID09ICJOT05aRVJPIn0g eworKwkgICAgc2V0IGRpc3BsYWNlbWVudF9tYWluICJOT05FIgorKwl9IGVsc2UgeworKwkgICAg c2V0IGRpc3BsYWNlbWVudF9tYWluICRkaXNwbGFjZW1lbnQKKysJfQorKwlyZWFjaCAibWFpbiIg Y29udGludWUgJGRpc3BsYWNlbWVudF9tYWluCisgCistCXJlYWNoICJsaWJmdW5jIiBjb250aW51 ZQorKwlyZWFjaCAibGliZnVuYyIgY29udGludWUgIk5PTkUiCisgCisgCWdkYl90ZXN0ICJidCIg IiMwICtcW15cclxuXF0qXFxtbGliZnVuY1xcTVxbXlxyXG5cXSpcclxuIzEgK1xbXlxyXG5cXSpc XG1tYWluXFxNLioiICJtYWluIGJ0IgorIAorLQl0ZXN0X2NvcmUgJGZpbGUKKysJdGVzdF9jb3Jl ICRmaWxlICRkaXNwbGFjZW1lbnQKKyAKKy0JdGVzdF9hdHRhY2ggJGZpbGUKKysJdGVzdF9hdHRh Y2ggJGZpbGUgJGRpc3BsYWNlbWVudAorICAgICB9CisgCisgICAgIGlmICEkdHJ5bm9zeW0gewor QEAgLTM0MSwxOCArNDU3LDIxIEBACisgICAgIGdkYl90ZXN0ICJzZXQgZGVidWctZmlsZS1kaXJl Y3RvcnkiCisgICAgIGdkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorIAorKyAg ICAjIFByaW50IHRoZSAiUElFIChQb3NpdGlvbiBJbmRlcGVuZGVudCBFeGVjdXRhYmxlKSBkaXNw bGFjZW1lbnQiIG1lc3NhZ2UuCisrICAgIGdkYl90ZXN0ICJzZXQgdmVyYm9zZSBvbiIKKysKKyAg ICAgIyBUZXN0IG5vIChlcnJvcikgbWVzc2FnZSBoYXMgYmVlbiBwcmludGVkIGJ5IGBleGVjLWZp bGUnLgorICAgICBzZXQgZXNjYXBlZGZpbGUgW3N0cmluZ190b19yZWdleHAgJGZpbGVdCisgICAg IGdkYl90ZXN0ICJleGVjLWZpbGUgJGZpbGUiICJleGVjLWZpbGUgJGVzY2FwZWRmaWxlIiAibG9h ZCIKKyAKKyAgICAgaWYgJGlmbWFpbiB7CistCXJlYWNoICJkbF9tYWluIiBydW4KKysJcmVhY2gg ImRsX21haW4iIHJ1biAkZGlzcGxhY2VtZW50CisgCisgCXNldCB0ZXN0ICJpbmZvIGZpbGVzIgor IAlzZXQgZW50cnlub2hleCAiIgorIAlnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7Cisg CSAgICAtcmUgIlxyXG5cW1x0IFxdKkVudHJ5IHBvaW50OlxbXHQgXF0qMHgoXFswLTlhLWZcXSsp XHJcbi4qJGdkYl9wcm9tcHQgJCIgeworLQkJc2V0IGVudHJ5bm9oZXggJGV4cGVjdF9vdXQoMSxz dHJpbmcpIAorKwkJc2V0IGVudHJ5bm9oZXggJGV4cGVjdF9vdXQoMSxzdHJpbmcpCisgCQlwYXNz ICR0ZXN0CisgCSAgICB9CisgCX0KK0BAIC0zNjMsNyArNDgyLDM0IEBACisgICAgIH0gZWxzZSB7 CisgCSMgVGhlcmUgaXMgbm8gc3ltYm9sIHRvIGJyZWFrIGF0IGxkLnNvLiAgTW9yZW92ZXIgaXQg Y2FuIGV4aXQgd2l0aCBhbgorIAkjIGVycm9yIGNvZGUuCistCWdkYl90ZXN0ICJydW4iICJQcm9n cmFtIGV4aXRlZCAobm9ybWFsbHl8d2l0aCBjb2RlIFxbMC05XF0rKVxcLiIgImxkLnNvIGV4aXQi CisrCisrCXNldCB0ZXN0ICJsZC5zbyBleGl0IgorKwlzZXQgdGVzdF9kaXNwbGFjZW1lbnQgInNl ZW4gZGlzcGxhY2VtZW50IG1lc3NhZ2UiCisrCWdkYl90ZXN0X211bHRpcGxlICJydW4iICR0ZXN0 IHsKKysJICAgIC1yZSAiVXNpbmcgUElFIFxcKFBvc2l0aW9uIEluZGVwZW5kZW50IEV4ZWN1dGFi bGVcXCkgZGlzcGxhY2VtZW50ICgweFxbMC05YS1mXF0rKSAiIHsKKysJCSMgTWlzc2luZyAiJGdk Yl9wcm9tcHQgJCIgaXMgaW50ZW50aW9uYWwuCisrCQlpZiB7JGV4cGVjdF9vdXQoMSxzdHJpbmcp ID09ICIweDAifSB7CisrCQkgICAgc2V0IGNhc2UgIlpFUk8iCisrCQl9IGVsc2UgeworKwkJICAg IHNldCBjYXNlICJOT05aRVJPIgorKwkJfQorKwkJaWYgeyRkaXNwbGFjZW1lbnQgPT0gJGNhc2V9 IHsKKysJCSAgICBwYXNzICR0ZXN0X2Rpc3BsYWNlbWVudAorKwkJICAgICMgUGVybWl0IG11bHRp cGxlIHN1Y2ggbWVzc2FnZXMuCisrCQkgICAgc2V0IGRpc3BsYWNlbWVudCAiRk9VTkQtJGRpc3Bs YWNlbWVudCIKKysJCX0gZWxzZWlmIHskZGlzcGxhY2VtZW50ICE9ICJGT1VORC0kY2FzZSJ9IHsK KysJCSAgICBmYWlsICR0ZXN0X2Rpc3BsYWNlbWVudAorKwkJfQorKwkJZXhwX2NvbnRpbnVlCisr CSAgICB9CisrCSAgICAtcmUgIlByb2dyYW0gZXhpdGVkIChub3JtYWxseXx3aXRoIGNvZGUgXFsw LTlcXSspXFwuXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJCSMgRG8gbm90IGNoZWNrIHRoZSBiaW5h cnkgZmlsZW5hbWUgYXMgaXQgbWF5IGJlIHRydW5jYXRlZC4KKysJCXBhc3MgJHRlc3QKKysJICAg IH0KKysJfQorKwlpZiAhW3JlZ2V4cCB7XihOT05FfEZPVU5ELS4qKSR9ICRkaXNwbGFjZW1lbnRd IHsKKysJICAgIGZhaWwgJHRlc3RfZGlzcGxhY2VtZW50CisrCX0KKyAgICAgfQorIAorICAgICBz ZXQgcGZfcHJlZml4ICRvbGRfbGRwcmVmaXgKK0BAIC00NTAsNyArNTk2LDEyIEBACisgCWlmICFb cHJlbGluayRsZHByZWxpbmsgJGludGVycF0geworIAkgICAgY29udGludWUKKyAJfQorLQl0ZXN0 X2xkICRpbnRlcnAgMCBbZXhwciB7JGxkc2VwZGVidWcgPT0gIk5PIn1dCisrCWlmIHskbGRwcmVs aW5rID09ICJOTyJ9IHsKKysJICAgIHNldCBkaXNwbGFjZW1lbnQgIk5PTlpFUk8iCisrCX0gZWxz ZSB7CisrCSAgICBzZXQgZGlzcGxhY2VtZW50ICJaRVJPIgorKwl9CisrCXRlc3RfbGQgJGludGVy cCAwIFtleHByIHskbGRzZXBkZWJ1ZyA9PSAiTk8ifV0gJGRpc3BsYWNlbWVudAorIAorIAlpZiAh W2NvcHkgJGludGVycCAkaW50ZXJwX3NhdmVkXSB7CisgCSAgICBjb250aW51ZQorQEAgLTUzMSw3 ICs2ODIsMTQgQEAKKyAKKyAJCSAgICBpZiB7W3ByZWxpbmskYmlucHJlbGluayAiLS1keW5hbWlj LWxpbmtlcj0kaW50ZXJwIC0tbGQtbGlicmFyeS1wYXRoPSRkaXIgJGV4ZWMgJGludGVycCBbY29u Y2F0ICRkZXN0c10iIFtmaWxlIHRhaWwgJGV4ZWNdXQorIAkJICAgICAgICAmJiBbY29weSAkaW50 ZXJwX3NhdmVkICRpbnRlcnBdfSB7CistCQkJdGVzdF9sZCAkZXhlYyAxIFtleHByIHskYmluc2Vw ZGVidWcgPT0gIk5PIn1dCisrCQkJaWYgeyRiaW5waWUgPT0gIk5PIn0geworKwkJCSAgICBzZXQg ZGlzcGxhY2VtZW50ICJOT05FIgorKwkJCX0gZWxzZWlmIHskYmlucHJlbGluayA9PSAiTk8ifSB7 CisrCQkJICAgIHNldCBkaXNwbGFjZW1lbnQgIk5PTlpFUk8iCisrCQkJfSBlbHNlIHsKKysJCQkg ICAgc2V0IGRpc3BsYWNlbWVudCAiWkVSTyIKKysJCQl9CisrCQkJdGVzdF9sZCAkZXhlYyAxIFtl eHByIHskYmluc2VwZGVidWcgPT0gIk5PIn1dICRkaXNwbGFjZW1lbnQKKyAJCSAgICB9CisgCQl9 CisgCSAgICB9CistLS0gc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvcHJlbGluay5leHAJMjAx MC8wMi8xMyAxMjowMjoyOQkxLjExCisrKysgc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvcHJl bGluay5leHAJMjAxMC8wMy8xMSAyMjowNzowMwkxLjEyCitAQCAtMTEyLDE1ICsxMTIsNCBAQAor ICMgUHJpbnQgdGhlICJhZGp1c3RpbmcgZXhwZWN0YXRpb25zIiBtZXNzYWdlLgorIGdkYl90ZXN0 ICJzZXQgdmVyYm9zZSBvbiIKKyAKKy1zZXQgdGVzdCAicHJlbGluayIKKy1nbG9iYWwgZ2RiX3By b21wdAorLWdkYl90ZXN0X211bHRpcGxlICJjb3JlLWZpbGUgJG9iamRpci8kc3ViZGlyL3ByZWxp bmsuY29yZSIgIiR0ZXN0IiB7CistICAgIC1yZSAid2FybmluZzogXC5keW5hbWljIHNlY3Rpb24u Km5vdCBhdCB0aGUgZXhwZWN0ZWQgYWRkcmVzcy4qd2FybmluZzogZGlmZmVyZW5jZS4qY2F1c2Vk IGJ5IHByZWxpbmssIGFkanVzdGluZyBleHBlY3RhdGlvbnMuKiRnZGJfcHJvbXB0ICQiIHsKKy0J cGFzcyAiJHRlc3QiCistICAgIH0KKy19CistCistZ2RiX2V4aXQKKy0KKy1yZXR1cm4gMAorLQor K2dkYl90ZXN0ICJjb3JlLWZpbGUgJG9iamRpci8kc3ViZGlyL3ByZWxpbmsuY29yZSIge1VzaW5n IFBJQyBcKFBvc2l0aW9uIEluZGVwZW5kZW50IENvZGVcKSBwcmVsaW5rIGRpc3BsYWNlbWVudC4q fSAicHJlbGluayIKKworCisKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTAt MDMvbXNnMDAwNjYuaHRtbAorMTY1NTg0NTc3ODNkNzFlMjg1NmZmMmI5Y2VhYTgzMTk5ZDJkOTgx MQorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMC8wMy8wOCAwNzo0NTo0OQkxLjExNDQyCisj IyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMC8wMy8wOCAwODozMjo0OQkxLjExNDQzCisjIyAtMSwz ICsxLDggQEAKKysyMDEwLTAzLTA4ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+CisrCisrCSogc3ltZmlsZS5jIChhZGRyX2luZm9fbWFrZV9yZWxhdGl2ZSk6IE5l dyB2YXJpYWJsZSBzZWN0X25hbWUsIHVzZSBpdC4KKysJRG8gbm90IHdhcm4gb24gIi5nbnUubGli bGlzdCIgYW5kICIuZ251LmNvbmZsaWN0Ii4KKysKKyAyMDEwLTAzLTA4ICBKb2VsIEJyb2JlY2tl ciAgPGJyb2JlY2tlckBhZGFjb3JlLmNvbT4KKyAKKyAJTWVtb3J5IGVycm9yIHdoZW4gcmVhZGlu ZyB3cm9uZyBjb3JlIGZpbGUuCistLS0gc3JjL2dkYi9zeW1maWxlLmMJMjAxMC8wMy8wNSAxOToz Mjo0NAkxLjI3NQorKysrIHNyYy9nZGIvc3ltZmlsZS5jCTIwMTAvMDMvMDggMDg6MzI6NDkJMS4y NzYKK0BAIC01OTIsNyArNTkyLDggQEAKKyAKKyAgIGZvciAoaSA9IDA7IGkgPCBhZGRycy0+bnVt X3NlY3Rpb25zICYmIGFkZHJzLT5vdGhlcltpXS5uYW1lOyBpKyspCisgICAgIHsKKy0gICAgICBh c2VjdGlvbiAqc2VjdCA9IGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lIChhYmZkLCBhZGRycy0+b3Ro ZXJbaV0ubmFtZSk7CisrICAgICAgY29uc3QgY2hhciAqc2VjdF9uYW1lID0gYWRkcnMtPm90aGVy W2ldLm5hbWU7CisrICAgICAgYXNlY3Rpb24gKnNlY3QgPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFt ZSAoYWJmZCwgc2VjdF9uYW1lKTsKKyAKKyAgICAgICBpZiAoc2VjdCkKKyAJeworQEAgLTYwOSw4 ICs2MTAsMjIgQEAKKyAJfQorICAgICAgIGVsc2UKKyAJeworLQkgIHdhcm5pbmcgKF8oInNlY3Rp b24gJXMgbm90IGZvdW5kIGluICVzIiksIGFkZHJzLT5vdGhlcltpXS5uYW1lLAorLQkJICAgYmZk X2dldF9maWxlbmFtZSAoYWJmZCkpOworKwkgIC8qIFRoaXMgc2VjdGlvbiBkb2VzIG5vdCBleGlz dCBpbiBBQkZELCB3aGljaCBpcyBub3JtYWxseQorKwkgICAgIHVuZXhwZWN0ZWQgYW5kIHdlIHdh bnQgdG8gaXNzdWUgYSB3YXJuaW5nLgorKworKwkgICAgIEhvd2V2ZXIsIHRoZSBFTEYgcHJlbGlu a2VyIGRvZXMgY3JlYXRlIGEgY291cGxlIG9mIHNlY3Rpb25zCisrCSAgICAgKCIuZ251LmxpYmxp c3QiIGFuZCAiLmdudS5jb25mbGljdCIpIHdoaWNoIGFyZSBtYXJrZWQgaW4gdGhlIG1haW4KKysJ ICAgICBleGVjdXRhYmxlIGFzIGxvYWRhYmxlICh0aGV5IGFyZSBsb2FkZWQgaW4gbWVtb3J5IGZy b20gdGhlCisrCSAgICAgRFlOQU1JQyBzZWdtZW50KSBhbmQgeWV0IGFyZSBub3QgcHJlc2VudCBp biBzZXBhcmF0ZSBkZWJ1ZyBpbmZvCisrCSAgICAgZmlsZXMuICBUaGlzIGlzIGZpbmUsIGFuZCBz aG91bGQgbm90IGNhdXNlIGEgd2FybmluZy4gIFNoYXJlZAorKwkgICAgIGxpYnJhcmllcyBjb250 YWluIGp1c3QgdGhlIHNlY3Rpb24gIi5nbnUubGlibGlzdCIgYnV0IGl0IGlzIG5vdAorKwkgICAg IG1hcmtlZCBhcyBsb2FkYWJsZSB0aGVyZS4gICovCisrCisrCSAgaWYgKCEoc3RyY21wIChzZWN0 X25hbWUsICIuZ251LmxpYmxpc3QiKSA9PSAwCisrCQl8fCBzdHJjbXAgKHNlY3RfbmFtZSwgIi5n bnUuY29uZmxpY3QiKSA9PSAwKSkKKysJICAgIHdhcm5pbmcgKF8oInNlY3Rpb24gJXMgbm90IGZv dW5kIGluICVzIiksIHNlY3RfbmFtZSwKKysJCSAgICAgYmZkX2dldF9maWxlbmFtZSAoYWJmZCkp OworKworIAkgIGFkZHJzLT5vdGhlcltpXS5hZGRyID0gMDsKKyAKKyAJICAvKiBTRUNUSU5ERVgg aXMgaW52YWxpZCBpZiBBRERSIGlzIHplcm8uICAqLworCisKKworaHR0cDovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi1jdnMvMjAxMC0wMy9tc2cwMDEzOC5odG1sCitodHRwOi8vc291cmNld2FyZS5v cmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMy9tc2cwMDUzNS5odG1sCitjYzNlNzE2NTFlMmZkMDE2 OGEyZDNkZDRlZmMyZDNlMTVmZDUwOGRkCisKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEwLzAz LzE1IDAzOjQ4OjQ2CTEuMTE0NzkKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEwLzAzLzE1IDA5 OjMxOjMwCTEuMTE0ODAKKyMjIC0xLDMgKzEsOCBAQAorKzIwMTAtMDMtMTUgIEphbiBLcmF0b2No dmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysKKysJKiBzeW1maWxlLmMgKGFkZHJf aW5mb19tYWtlX3JlbGF0aXZlKTogSWdub3JlIGFsc28gbWlzc2luZyAiLmR5bmJzcyIKKysJYW5k ICIuc2R5bmJzcyIuICBVcGRhdGUgdGhlIGNvbW1lbnQuCisrCisgMjAxMC0wMy0xNSAgSmllIFpo YW5nICA8amllQGNvZGVzb3VyY2VyeS5jb20+CisgCisgCSogTUFJTlRBSU5FUlM6IFVwZGF0ZSBt eSBlbWFpbCBhZGRyZXNzLgorLS0tIHNyYy9nZGIvc3ltZmlsZS5jCTIwMTAvMDMvMTAgMTg6MjA6 MDcJMS4yNzcKKysrKyBzcmMvZ2RiL3N5bWZpbGUuYwkyMDEwLzAzLzE1IDA5OjMxOjM0CTEuMjc4 CitAQCAtNTc2LDE2ICs1NzYsMTkgQEAKKyAJICAvKiBUaGlzIHNlY3Rpb24gZG9lcyBub3QgZXhp c3QgaW4gQUJGRCwgd2hpY2ggaXMgbm9ybWFsbHkKKyAJICAgICB1bmV4cGVjdGVkIGFuZCB3ZSB3 YW50IHRvIGlzc3VlIGEgd2FybmluZy4KKyAKKy0JICAgICBIb3dldmVyLCB0aGUgRUxGIHByZWxp bmtlciBkb2VzIGNyZWF0ZSBhIGNvdXBsZSBvZiBzZWN0aW9ucworLQkgICAgICgiLmdudS5saWJs aXN0IiBhbmQgIi5nbnUuY29uZmxpY3QiKSB3aGljaCBhcmUgbWFya2VkIGluIHRoZSBtYWluCist CSAgICAgZXhlY3V0YWJsZSBhcyBsb2FkYWJsZSAodGhleSBhcmUgbG9hZGVkIGluIG1lbW9yeSBm cm9tIHRoZQorLQkgICAgIERZTkFNSUMgc2VnbWVudCkgYW5kIHlldCBhcmUgbm90IHByZXNlbnQg aW4gc2VwYXJhdGUgZGVidWcgaW5mbworLQkgICAgIGZpbGVzLiAgVGhpcyBpcyBmaW5lLCBhbmQg c2hvdWxkIG5vdCBjYXVzZSBhIHdhcm5pbmcuICBTaGFyZWQKKy0JICAgICBsaWJyYXJpZXMgY29u dGFpbiBqdXN0IHRoZSBzZWN0aW9uICIuZ251LmxpYmxpc3QiIGJ1dCBpdCBpcyBub3QKKy0JICAg ICBtYXJrZWQgYXMgbG9hZGFibGUgdGhlcmUuICAqLworKwkgICAgIEhvd2V2ZXIsIHRoZSBFTEYg cHJlbGlua2VyIGRvZXMgY3JlYXRlIGEgZmV3IHNlY3Rpb25zIHdoaWNoIGFyZQorKwkgICAgIG1h cmtlZCBpbiB0aGUgbWFpbiBleGVjdXRhYmxlIGFzIGxvYWRhYmxlICh0aGV5IGFyZSBsb2FkZWQg aW4KKysJICAgICBtZW1vcnkgZnJvbSB0aGUgRFlOQU1JQyBzZWdtZW50KSBhbmQgeWV0IGFyZSBu b3QgcHJlc2VudCBpbgorKwkgICAgIHNlcGFyYXRlIGRlYnVnIGluZm8gZmlsZXMuICBUaGlzIGlz IGZpbmUsIGFuZCBzaG91bGQgbm90IGNhdXNlCisrCSAgICAgYSB3YXJuaW5nLiAgU2hhcmVkIGxp YnJhcmllcyBjb250YWluIGp1c3QgdGhlIHNlY3Rpb24KKysJICAgICAiLmdudS5saWJsaXN0IiBi dXQgaXQgaXMgbm90IG1hcmtlZCBhcyBsb2FkYWJsZSB0aGVyZS4gIFRoZXJlIGlzCisrCSAgICAg bm8gb3RoZXIgd2F5IHRvIGlkZW50aWZ5IHRoZW0gdGhhbiBieSB0aGVpciBuYW1lIGFzIHRoZSBz ZWN0aW9ucworKwkgICAgIGNyZWF0ZWQgYnkgcHJlbGluayBoYXZlIG5vIHNwZWNpYWwgZmxhZ3Mu ICAqLworIAorIAkgIGlmICghKHN0cmNtcCAoc2VjdF9uYW1lLCAiLmdudS5saWJsaXN0IikgPT0g MAorLQkJfHwgc3RyY21wIChzZWN0X25hbWUsICIuZ251LmNvbmZsaWN0IikgPT0gMCkpCisrCQl8 fCBzdHJjbXAgKHNlY3RfbmFtZSwgIi5nbnUuY29uZmxpY3QiKSA9PSAwCisrCQl8fCBzdHJjbXAg KHNlY3RfbmFtZSwgIi5keW5ic3MiKSA9PSAwCisrCQl8fCBzdHJjbXAgKHNlY3RfbmFtZSwgIi5z ZHluYnNzIikgPT0gMCkpCisgCSAgICB3YXJuaW5nIChfKCJzZWN0aW9uICVzIG5vdCBmb3VuZCBp biAlcyIpLCBzZWN0X25hbWUsCisgCQkgICAgIGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpKTsKKyAK KworCisKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAw Nzk5Lmh0bWwKK1N1YmplY3Q6IFtwYXRjaF0gRml4IHNlcGFyYXRlLWRlYnVnIHdpdGggbm9uLXVu aXF1ZSBzZWN0aW9uIG5hbWVzIChQUiAxMTQwOSkKKworQSBkaWZmZXJlbnQgdmVyc2lvbiB3YXMg Y2hlY2tlZC1pbiBidXQgdGhleSBhcmUgaW50ZXJjaGFuZ2VhYmxlOgorCWh0dHA6Ly9zb3VyY2V3 YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAwNzk5Lmh0bWwKKwlodHRwOi8vc291 cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEwLTAzL21zZzAwMjQxLmh0bWwKKworSGksCisKK2dk Yi03LjEgaXMgbm93IGJyb2tlbiBmb3IgZXhhbXBsZSBmb3IgZGVidWdnaW5nIC91c3IvYmluL2Vt YWNzIGR1ZSB0bzoKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/ aWQ9MTE0MDkKKyAgWzIyXSAuZGF0YSAgIFBST0dCSVRTIDAwMDAwMDAwMDA3ZmU4YTAgMWZlOGEw IDIxNTA2OCAwMCAgV0EgIDAgICAwIDMyCisgIFsyM10gLmRhdGEgICBQUk9HQklUUyAwMDAwMDAw MDAwYTEzOTIwIDQxMzkyMCA2OGM2ZTAgMDAgIFdBICAwICAgMCAzMgorCitJdCBpcyBpbiBmYWN0 IGEgcmVncmVzc2lvbiBhZ2FpbnN0IGdkYi03LjAgYnkgbWUgZHVlIHRvOgorCitjb21taXQgNzFk MDA2OWE5ZjIzOGExMWY3ZjQ1NWJmNmFkMmFkZmMyNTY4MzUyMQorQXV0aG9yOiBKYW4gS3JhdG9j aHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KK0RhdGU6ICAgVHVlIEphbiA1IDE1OjUx OjAxIDIwMTAgKzAwMDAKKworZ2RiLworICAgICAgICAqIHN5bWZpbGUuYyAoc3ltc19mcm9tX29i amZpbGUpOiBSZW1vdmUgdGhlICFNQUlOTElORSBjb25kaXRpb25hbC4KKworYXMgd2hpbGUgdGhl IGNvZGUgd2FzIGJyb2tlbiBldmVuIGJlZm9yZSB0aGUgYnJva2VuIHJlbG9jYXRpb24gd2FzIG5v dCBhcHBsaWVkCit0byBtYWlubGluZSBiaW5hcnkgKGJlZm9yZSBQSUUrT1NYIHBhdGNoZXMgd2Vu dCBpbikuCisKKworTm8gcmVncmVzc2lvbnMgb24ge3g4Nl82NCx4ODZfNjQtbTMyLGk2ODZ9LWZl ZG9yYTEyLWxpbnV4LWdudS4KKworT0sgdG8gY2hlY2staW4gYWxzbyBmb3IgZ2RiLTcuMSAoNy4x LjEpPworCisKK1RoYW5rcywKK0phbgorCisKK2dkYi8KKzIwMTAtMDMtMjMgIEphbiBLcmF0b2No dmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCSogc3ltZmlsZS5jIChhZGRyX2lu Zm9fbWFrZV9yZWxhdGl2ZSk6IE1vdmUgc2VjdCBkZWNsYXJhdGlvbiB0byB0aGUKKwlvdXRlciBi bG9jay4gIEluaXRpYWxpemUgaXQgdG8gTlVMTC4gIFByZWZlciBTRUNULT5uZXh0IG1vcmUgdGhh bgorCWJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lLgorCitnZGIvdGVzdHN1aXRlLworMjAxMC0wMy0y MyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBnZGIu YmFzZS9kdXAtc2VjdC5leHAsIGdkYi5iYXNlL2R1cC1zZWN0LlM6IE5ldy4KKworLS0tIGEvZ2Ri L3N5bWZpbGUuYworKysrIGIvZ2RiL3N5bWZpbGUuYworQEAgLTUyOSw2ICs1MjksNyBAQCBhZGRy X2luZm9fbWFrZV9yZWxhdGl2ZSAoc3RydWN0IHNlY3Rpb25fYWRkcl9pbmZvICphZGRycywgYmZk ICphYmZkKQorICAgYXNlY3Rpb24gKmxvd2VyX3NlY3Q7CisgICBDT1JFX0FERFIgbG93ZXJfb2Zm c2V0OworICAgaW50IGk7CisrICBhc2VjdGlvbiAqc2VjdDsKKyAKKyAgIC8qIEZpbmQgbG93ZXN0 IGxvYWRhYmxlIHNlY3Rpb24gdG8gYmUgdXNlZCBhcyBzdGFydGluZyBwb2ludCBmb3IKKyAgICAg IGNvbnRpbmd1b3VzIHNlY3Rpb25zLiAgKi8KK0BAIC01NTMsMTEgKzU1NCwyMyBAQCBhZGRyX2lu Zm9fbWFrZV9yZWxhdGl2ZSAoc3RydWN0IHNlY3Rpb25fYWRkcl9pbmZvICphZGRycywgYmZkICph YmZkKQorICAgICAgKHRoZSBsb2FkYWJsZSBzZWN0aW9uIGRpcmVjdGx5IGJlbG93IGl0IGluIG1l bW9yeSkuCisgICAgICB0aGlzX29mZnNldCA9IGxvd2VyX29mZnNldCA9IGxvd2VyX2FkZHIgLSBs b3dlcl9vcmlnX2FkZHIgKi8KKyAKKysgIHNlY3QgPSBOVUxMOworICAgZm9yIChpID0gMDsgaSA8 IGFkZHJzLT5udW1fc2VjdGlvbnMgJiYgYWRkcnMtPm90aGVyW2ldLm5hbWU7IGkrKykKKyAgICAg eworICAgICAgIGNvbnN0IGNoYXIgKnNlY3RfbmFtZSA9IGFkZHJzLT5vdGhlcltpXS5uYW1lOwor LSAgICAgIGFzZWN0aW9uICpzZWN0ID0gYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKGFiZmQsIHNl Y3RfbmFtZSk7CisgCisrICAgICAgLyogUHJlZmVyIHRoZSBuZXh0IHNlY3Rpb24gb2YgdGhhdCB3 ZSBoYXZlIGZvdW5kIGxhc3QuICBUaGUgc2VwYXJhdGUKKysJIGRlYnVnIGluZm8gZmlsZXMgaGF2 ZSBlaXRoZXIgdGhlIHNhbWUgc2VjdGlvbiBsYXlvdXQgb3IganVzdCBhIGZldworKwkgc2VjdGlv bnMgYXJlIG1pc3NpbmcgdGhlcmUuICBPbiB0aGUgb3RoZXIgaGFuZCB0aGUgc2VjdGlvbiBuYW1l IGlzIG5vdAorKwkgdW5pcXVlIGFuZCB3ZSBjb3VsZCBmaW5kIGFuIGluYXBwcm9wcmFpdGUgc2Vj dGlvbiBieSBpdHMgbmFtZS4gICovCisrCisrICAgICAgaWYgKHNlY3QpCisrCXNlY3QgPSBzZWN0 LT5uZXh0OworKyAgICAgIGlmIChzZWN0ICYmIHN0cmNtcCAoc2VjdF9uYW1lLCBiZmRfZ2V0X3Nl Y3Rpb25fbmFtZSAoYWJmZCwgc2VjdCkpICE9IDApCisrCXNlY3QgPSBOVUxMOworKworKyAgICAg IGlmIChzZWN0ID09IE5VTEwpCisrCXNlY3QgPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAoYWJm ZCwgc2VjdF9uYW1lKTsKKyAgICAgICBpZiAoc2VjdCkKKyAJeworIAkgIC8qIFRoaXMgaXMgdGhl IGluZGV4IHVzZWQgYnkgQkZELiAqLworLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9kdXAtc2VjdC5TCitAQCAtMCwwICsxLDIyIEBACisrLyogVGhpcyB0ZXN0Y2Fz ZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAx MCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAg IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrCS5zZWN0aW9uCXNlY3QxLCAiYSIKKyt2YXIxOgku Ynl0ZQkxCisrCisrCS5zZWN0aW9uCXNlY3QyLCAiYSIKKyt2YXIyOgkuYnl0ZQkyCistLS0gL2Rl di9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2R1cC1zZWN0LmV4cAorQEAgLTAs MCArMSw3OSBAQAorKyMgVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1 Z2dlci4KKysKKysjIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFRlc3QgaW5hcHByb3By aWF0ZSBvZmZzZXRpbmcgb2YgbXVsdGlwbGUgc2VjdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1lLgor KyMgV2hlbiBrZXB0IGluIG9iamVjdCBmaWxlIChiZWZvcmUgZmluYWwgZXhlY3V0YWJsZSBsaW5r KSBpdCBzdGlsbCB3b3Jrcy4KKysjIFdoZW4gc2VwYXJhdGUgZGVidWcgaW5mbyBmaWxlIGlzIG5v dCB1c2VkIGl0IHN0aWxsIHdvcmtzLgorKyMgV2hlbiB0aGUgRUxGIHN5bWJvbCB0YWJsZSBpcyBr ZXB0IGluIHRoZSBtYWluIGJpbmFyeSBpdCBzdGlsbCB3b3Jrcy4KKysjIFVzZWQgLlMgZmlsZSBh cyBpbiAuYyBmaWxlIHdlIHdvdWxkIG5lZWQgX19hdHRyaXV0ZV9fKChzZWN0aW9uKSkgd2hpY2gg aXMKKysjIGEgR0NDIGV4dGVuc2lvbi4KKysKKysjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4g b24gdGFyZ2V0cyB3aGljaCBzdXBwb3J0IEVMRiBhbmQgdXNlIGdhcy4KKysjIEZvciBub3cgcGlj ayBhIHNhbXBsaW5nIG9mIGxpa2VseSB0YXJnZXRzLgorK2lmIHshW2lzdGFyZ2V0ICotKi1saW51 eCpdCisrICAgICYmICFbaXN0YXJnZXQgKi0qLWdudSpdCisrICAgICYmICFbaXN0YXJnZXQgKi0q LWVsZipdCisrICAgICYmICFbaXN0YXJnZXQgYXJtLSotZWFiaSpdCisrICAgICYmICFbaXN0YXJn ZXQgcG93ZXJwYy0qLWVhYmkqXX0geworKyAgICByZXR1cm4gMAorK30KKysKKytzZXQgdGVzdGZp bGUgZHVwLXNlY3QKKytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5TCisrc2V0IHNyY21haW5maWxl IHN0YXJ0LmMKKytzZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfQorK3NldCBiaW5maWxlICR7b2Jq ZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRhYmxlfQorKworK2lmIHtbYnVpbGRfZXhlY3V0YWJsZSAk e3Rlc3RmaWxlfS5leHAgJGV4ZWN1dGFibGUgW2xpc3QgJHtzcmNmaWxlfSAke3NyY21haW5maWxl fV0ge31dID09IC0xfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytzZXQgdGVzdCAicmVuYW1l IHNlY3Rpb24iCisrc2V0IG9iamNvcHlfcHJvZ3JhbSBbdHJhbnNmb3JtIG9iamNvcHldCisrc2V0 IHJlc3VsdCBbY2F0Y2ggImV4ZWMgJG9iamNvcHlfcHJvZ3JhbSAtLXJlbmFtZS1zZWN0aW9uIHNl Y3QyPXNlY3QxICRiaW5maWxlIiBvdXRwdXRdCisrdmVyYm9zZSAicmVzdWx0IGlzICRyZXN1bHQi CisrdmVyYm9zZSAib3V0cHV0IGlzICRvdXRwdXQiCisraWYgeyRyZXN1bHQgIT0gMH0geworKyAg ICBmYWlsICR0ZXN0CisrICAgIHJldHVybgorK30KKytwYXNzICR0ZXN0CisrCisrc2V0IHRlc3Qg InNwbGl0IgorK2lmIHtbZ2RiX2dudV9zdHJpcF9kZWJ1ZyAkYmluZmlsZV0gIT0gMH0geworKyAg ICBmYWlsICR0ZXN0CisrfSBlbHNlIHsKKysgICAgcGFzcyAkdGVzdAorK30KKysKKysjIGdkYl9n bnVfc3RyaXBfZGVidWcgdXNlcyBvbmx5IC0tc3RyaXAtZGVidWcgYW5kIGtlZXBzIHRoZSBFTEYg c3ltYm9sIHRhYmxlCisrIyBpbiAkYmluZmlsZS4KKytzZXQgdGVzdCAic3RyaXAiCisrc2V0IHN0 cmlwX3Byb2dyYW0gW3RyYW5zZm9ybSBzdHJpcF0KKytzZXQgcmVzdWx0IFtjYXRjaCAiZXhlYyAk c3RyaXBfcHJvZ3JhbSAkYmluZmlsZSIgb3V0cHV0XQorK3ZlcmJvc2UgInJlc3VsdCBpcyAkcmVz dWx0IgorK3ZlcmJvc2UgIm91dHB1dCBpcyAkb3V0cHV0IgorK2lmIHskcmVzdWx0ICE9IDB9IHsK KysgICAgZmFpbCAkdGVzdAorKyAgICByZXR1cm4KKyt9CisrcGFzcyAkdGVzdAorKworK2NsZWFu X3Jlc3RhcnQgJGV4ZWN1dGFibGUKKysKKytnZGJfdGVzdCAicC9kICooY29uc3QgY2hhciAqKSAm dmFyMSIgIiA9IDEiICJ2YXIxIGFmdGVyIHN0cmlwIgorK2dkYl90ZXN0ICJwL2QgKihjb25zdCBj aGFyICopICZ2YXIyIiAiID0gMiIgInZhcjIgYWZ0ZXIgc3RyaXAiCisKKworCitbcGF0Y2hdIEZp eCBicmVha3BvaW50IGF0ICpfc3RhcnQKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0 Y2hlcy8yMDEwLTA0L21zZzAwMDU5Lmh0bWwKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIt Y3ZzLzIwMTAtMDQvbXNnMDAwMjkuaHRtbAorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMC8w NC8wNCAxMzo1NDo0MgkxLjExNTY4CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMC8wNC8wNCAy MjoxMjowNAkxLjExNTY5CisjIyAtMSw1ICsxLDEwIEBACisgMjAxMC0wNC0wNCAgSmFuIEtyYXRv Y2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorIAorKwkqIGluZmNtZC5jIChydW5f Y29tbWFuZF8xKTogQ2FsbCBwcm9jZWVkIHdpdGggcmVnY2FjaGVfcmVhZF9wYyBhZGRyZXNzLgor KwkqIGNvbmZpZy9kamdwcC9mbmNoYW5nZS5sc3Q6IEFkZCB0cmFuc2xhdGlvbiBmb3IgYnJlYWst ZW50cnkuZXhwLgorKworKzIwMTAtMDQtMDQgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4KKysKKyAJKiBicmVha3BvaW50LmMgKGJwc3RhdF9maW5kX3N0ZXBfcmVz dW1lX2JyZWFrcG9pbnQpOiBSZW1vdmUuCisgCSogYnJlYWtwb2ludC5oIChicHN0YXRfZmluZF9z dGVwX3Jlc3VtZV9icmVha3BvaW50KTogUmVtb3ZlLgorIAorLS0tIHNyYy9nZGIvaW5mY21kLmMJ MjAxMC8wMy8yNSAyMDo0ODo1MwkxLjI2MworKysrIHNyYy9nZGIvaW5mY21kLmMJMjAxMC8wNC8w NCAyMjoxMjowNAkxLjI2NAorQEAgLTU4MCw4ICs1ODAsOSBAQAorICAgICAgaGFzIGRvbmUgaXRz IHRoaW5nOyBub3cgd2UgYXJlIHNldHRpbmcgdXAgdGhlIHJ1bm5pbmcgcHJvZ3JhbS4gICovCisg ICBwb3N0X2NyZWF0ZV9pbmZlcmlvciAoJmN1cnJlbnRfdGFyZ2V0LCAwKTsKKyAKKy0gIC8qIFN0 YXJ0IHRoZSB0YXJnZXQgcnVubmluZy4gICovCistICBwcm9jZWVkICgoQ09SRV9BRERSKSAtMSwg VEFSR0VUX1NJR05BTF8wLCAwKTsKKysgIC8qIFN0YXJ0IHRoZSB0YXJnZXQgcnVubmluZy4gIERv IG5vdCB1c2UgLTEgY29udGludWF0aW9uIGFzIGl0IHdvdWxkIHNraXAKKysgICAgIGJyZWFrcG9p bnQgcmlnaHQgYXQgdGhlIGVudHJ5IHBvaW50LiAgKi8KKysgIHByb2NlZWQgKHJlZ2NhY2hlX3Jl YWRfcGMgKGdldF9jdXJyZW50X3JlZ2NhY2hlICgpKSwgVEFSR0VUX1NJR05BTF8wLCAwKTsKKyAK KyAgIC8qIFNpbmNlIHRoZXJlIHdhcyBubyBlcnJvciwgdGhlcmUncyBubyBuZWVkIHRvIGZpbmlz aCB0aGUgdGhyZWFkCisgICAgICBzdGF0ZXMgaGVyZS4gICovCistLS0gc3JjL2dkYi9jb25maWcv ZGpncHAvZm5jaGFuZ2UubHN0CTIwMTAvMDIvMDEgMTk6Mjc6NTUJMS4xMDgKKysrKyBzcmMvZ2Ri L2NvbmZpZy9kamdwcC9mbmNoYW5nZS5sc3QJMjAxMC8wNC8wNCAyMjoxMjowNwkxLjEwOQorQEAg LTM3MSw2ICszNzEsNyBAQAorIEBWQC9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3Bvd2VycGMtcHJv bG9ndWUuZXhwIEBWQC9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3BwYy1wcm9sb2d1ZS5leHAKKyBA VkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9iaXRmaWVsZHMyLmMgQFZAL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvYml0ZmllbDIuYworIEBWQC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JpdGZpZWxk czIuZXhwIEBWQC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JpdGZpZWwyLmV4cAorK0BWQC9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2JyZWFrLWVudHJ5LmV4cCBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9icmtlbnRyeS5leHAKKyBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlbWFrZXIy LmMgQFZAL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZTJtYWtlci5jCisgQFZAL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUxLmV4cCBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9o YXNoMWxpbmUuZXhwCisgQFZAL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUyLmV4cCBA VkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9oYXNoMmxpbmUuZXhwCisjIyMgc3JjL2dkYi90ZXN0 c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDQvMDIgMDU6MTM6MDcJMS4yMjE4CisjIyMgc3JjL2dkYi90 ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDQvMDQgMjI6MTI6MDkJMS4yMjE5CisjIyAtMSwzICsx LDcgQEAKKysyMDEwLTA0LTA0ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+CisrCisrCSogZ2RiLmJhc2UvYnJlYWstZW50cnkuZXhwOiBOZXcuCisrCisgMjAxMC0w NC0wMiAgSHVpIFpodSAgPHRlYXdhdGVyQGdtYWlsLmNvbT4KKyAgICAgICAgICAgICBNaWNoYWVs IFNueWRlciA8bXNueWRlckB2bXdhcmUuY29tPgorIAorLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2JyZWFrLWVudHJ5LmV4cAorKysrIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Jy ZWFrLWVudHJ5LmV4cAkyMDEwLTA0LTA1IDIwOjE3OjM5LjIzNDY4NDAwMCArMDAwMAorQEAgLTAs MCArMSw0MyBAQAorKyMgQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor KyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFRlc3QgaW5m ZXJpb3IgY2FuIHN0b3AgYXQgaXRzIHZlcnkgZmlyc3QgaW5zdHJ1Y3Rpb24sIHVzdWFsbHkgIl9z dGFydCIuCisrIyBEeW5hbWljIGV4ZWN1dGFibGVzIGhhdmUgZmlyc3QgaW5zdHJ1Y3Rpb24gaW4g bGQuc28uCisrCisrc2V0IHRlc3RmaWxlIGJyZWFrLWVudHJ5CisraWYgeyBbcHJlcGFyZV9mb3Jf dGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gc3RhcnQuYyB7YWRkaXRpb25hbF9m bGFncz0tc3RhdGljfV0gfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytzZXQgdGVzdCAiaW5m byBmaWxlcyIKKytzZXQgZW50cnkgIiIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7 CisrICAgIC1yZSAiXHJcblxbXHQgXF0qRW50cnkgcG9pbnQ6XFtcdCBcXSooMHhcWzAtOWEtZlxd KylcclxuLiokZ2RiX3Byb21wdCAkIiB7CisrCXNldCBlbnRyeSAkZXhwZWN0X291dCgxLHN0cmlu ZykKKysJcGFzcyAkdGVzdAorKyAgICB9CisrfQorK2lmIHskZW50cnkgPT0gIiJ9IHsKKysgICAg dW50ZXN0ZWQgJHt0ZXN0ZmlsZX0uZXhwCisrICAgIHJldHVybgorK30KKysKKytpZiAhW3J1bnRv ICIqJGVudHJ5Il0geworKyAgICByZXR1cm4KKyt9CisrZ2RiX3Rlc3Qge3AveCAkcGN9ICIgPSAk ZW50cnkiCisrCisrZ2RiX2JyZWFrcG9pbnQgIm1haW4iCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgIm1haW4iICJtYWluLioiCisKKworCitodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20v c2hvd19idWcuY2dpP2lkPTU5MDY0OAorUmU6IFtyZmNdIFdvcmsgYXJvdW5kIGludmFsaWQgRysr IERXQVJGIGZvciB1bm5hbWVkIGFnZ3JlZ2F0ZXMKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAwOTA5Lmh0bWwKK2NvbW1pdCA1ZTQwYWYxOTViZDc0YTY2 ZDMwMGQ4ZjQ4MWNhYjFmMmJhNTMzZjNhCisKK1sgY3V0IG9ubHkgYSBwYXJ0IG9mIGl0IF0KKwor LS0tIGEvZ2RiL2NvbXBsZXRlci5jCisrKysgYi9nZGIvY29tcGxldGVyLmMKK0BAIC00MDEsNyAr NDAxLDcgQEAgYWRkX3N0cnVjdF9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgKm5leHRw LCBjaGFyICoqb3V0cHV0LAorIAkgICAgICBjb21wdXRlZF90eXBlX25hbWUgPSAxOworIAkgICAg fQorIAkgIC8qIE9taXQgY29uc3RydWN0b3JzIGZyb20gdGhlIGNvbXBsZXRpb24gbGlzdC4gICov CistCSAgaWYgKHR5cGVfbmFtZSAmJiBzdHJjbXAgKHR5cGVfbmFtZSwgbmFtZSkpCisrCSAgaWYg KCF0eXBlX25hbWUgfHwgc3RyY21wICh0eXBlX25hbWUsIG5hbWUpKQorIAkgICAgeworIAkgICAg ICBvdXRwdXRbKm5leHRwXSA9IHhzdHJkdXAgKG5hbWUpOworIAkgICAgICArKypuZXh0cDsKKwor CisKK2h0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NTc4MTM2Cito dHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTU5MzkyNgoraHR0cDov L3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDQvbXNnMDA4MjAuaHRtbAoraHR0 cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMC0wNC9tc2cwMDI0MC5odG1sCisKKyMj IyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEwLzA0LzIzIDE4OjA5OjE2CTEuMTE2NzgKKyMjIyBzcmMv Z2RiL0NoYW5nZUxvZwkyMDEwLzA0LzIzIDIxOjQ0OjE5CTEuMTE2NzkKKyMjIC0xLDMgKzEsMTQg QEAKKysyMDEwLTA0LTIzICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29t PgorKwkgICAgUGF1bCBQbHV6aG5pa292ICA8cHBsdXpobmlrb3ZAZ29vZ2xlLmNvbT4KKysJICAg IEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysKKysJRml4IGRl YWRsb2NrIG9uIGxvb3BlZCBsaXN0IG9mIGxvYWRlZCBzaGFyZWQgb2JqZWN0cy4KKysJKiBzb2xp Yi1zdnI0LmMgKExNX1BSRVYpOiBOZXcgZnVuY3Rpb24uCisrCShJR05PUkVfRklSU1RfTElOS19N QVBfRU5UUlkpOiBVc2UgaXQuCisrCShzdnI0X2N1cnJlbnRfc29zKTogQ2hlY2sgZm9yIGNvcnJl Y3QgbF9wcmV2LiAgTmV3IHZhcmlhYmxlcyBwcmV2X2xtCisrCWFuZCBuZXh0X2xtLiAgQ2xlYXIg cHJldl9sbSBmb3Igc29saWJfc3ZyNF9yX2xkc29tYXAuCisrCSogY29uZmlnL2RqZ3BwL2ZuY2hh bmdlLmxzdDogQWRkIHRyYW5zbGF0aW9uIGZvciBzb2xpYi1jb3JydXB0ZWQuZXhwLgorKworIDIw MTAtMDQtMjMgIERvdWcgRXZhbnMgIDxkamVAZ29vZ2xlLmNvbT4KKyAKKyAJKiBjb25maWd1cmUu YWMgKENPTkZJR19TUkNTKTogQWRkIHB5LWF1dG8tbG9hZC5vIGV2ZW4gaWYgbm90IHVzaW5nCist LS0gc3JjL2dkYi9zb2xpYi1zdnI0LmMJMjAxMC8wMy8xMSAyMjowNzowMgkxLjEzMAorKysrIHNy Yy9nZGIvc29saWItc3ZyNC5jCTIwMTAvMDQvMjMgMjE6NDQ6MTkJMS4xMzEKK0BAIC0yNzIsNiAr MjcyLDE2IEBACisgfQorIAorIHN0YXRpYyBDT1JFX0FERFIKKytMTV9QUkVWIChzdHJ1Y3Qgc29f bGlzdCAqc28pCisreworKyAgc3RydWN0IGxpbmtfbWFwX29mZnNldHMgKmxtbyA9IHN2cjRfZmV0 Y2hfbGlua19tYXBfb2Zmc2V0cyAoKTsKKysgIHN0cnVjdCB0eXBlICpwdHJfdHlwZSA9IGJ1aWx0 aW5fdHlwZSAodGFyZ2V0X2dkYmFyY2gpLT5idWlsdGluX2RhdGFfcHRyOworKworKyAgcmV0dXJu IGV4dHJhY3RfdHlwZWRfYWRkcmVzcyAoc28tPmxtX2luZm8tPmxtICsgbG1vLT5sX3ByZXZfb2Zm c2V0LAorKwkJCQlwdHJfdHlwZSk7CisrfQorKworK3N0YXRpYyBDT1JFX0FERFIKKyBMTV9OQU1F IChzdHJ1Y3Qgc29fbGlzdCAqc28pCisgeworICAgc3RydWN0IGxpbmtfbWFwX29mZnNldHMgKmxt byA9IHN2cjRfZmV0Y2hfbGlua19tYXBfb2Zmc2V0cyAoKTsKK0BAIC0yODQsMTYgKzI5NCwxMiBA QAorIHN0YXRpYyBpbnQKKyBJR05PUkVfRklSU1RfTElOS19NQVBfRU5UUlkgKHN0cnVjdCBzb19s aXN0ICpzbykKKyB7CistICBzdHJ1Y3QgbGlua19tYXBfb2Zmc2V0cyAqbG1vID0gc3ZyNF9mZXRj aF9saW5rX21hcF9vZmZzZXRzICgpOworLSAgc3RydWN0IHR5cGUgKnB0cl90eXBlID0gYnVpbHRp bl90eXBlICh0YXJnZXRfZ2RiYXJjaCktPmJ1aWx0aW5fZGF0YV9wdHI7CistCisgICAvKiBBc3N1 bWUgdGhhdCBldmVyeXRoaW5nIGlzIGEgbGlicmFyeSBpZiB0aGUgZHluYW1pYyBsb2FkZXIgd2Fz IGxvYWRlZAorICAgICAgbGF0ZSBieSBhIHN0YXRpYyBleGVjdXRhYmxlLiAgKi8KKyAgIGlmIChl eGVjX2JmZCAmJiBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAoZXhlY19iZmQsICIuZHluYW1pYyIp ID09IE5VTEwpCisgICAgIHJldHVybiAwOworIAorLSAgcmV0dXJuIGV4dHJhY3RfdHlwZWRfYWRk cmVzcyAoc28tPmxtX2luZm8tPmxtICsgbG1vLT5sX3ByZXZfb2Zmc2V0LAorLQkJCQlwdHJfdHlw ZSkgPT0gMDsKKysgIHJldHVybiBMTV9QUkVWIChzbykgPT0gMDsKKyB9CisgCisgLyogUGVyIHBz cGFjZSBTVlI0IHNwZWNpZmljIGRhdGEuICAqLworQEAgLTExMDEsNyArMTEwNyw3IEBACisgc3Rh dGljIHN0cnVjdCBzb19saXN0ICoKKyBzdnI0X2N1cnJlbnRfc29zICh2b2lkKQorIHsKKy0gIENP UkVfQUREUiBsbTsKKysgIENPUkVfQUREUiBsbSwgcHJldl9sbTsKKyAgIHN0cnVjdCBzb19saXN0 ICpoZWFkID0gMDsKKyAgIHN0cnVjdCBzb19saXN0ICoqbGlua19wdHIgPSAmaGVhZDsKKyAgIENP UkVfQUREUiBsZHNvbWFwID0gMDsKK0BAIC0xMTIwLDYgKzExMjYsNyBAQAorIAorICAgLyogV2Fs ayB0aGUgaW5mZXJpb3IncyBsaW5rIG1hcCBsaXN0LCBhbmQgYnVpbGQgb3VyIGxpc3Qgb2YKKyAg ICAgIGBzdHJ1Y3Qgc29fbGlzdCcgbm9kZXMuICAqLworKyAgcHJldl9sbSA9IDA7CisgICBsbSA9 IHNvbGliX3N2cjRfcl9tYXAgKGluZm8pOworIAorICAgd2hpbGUgKGxtKQorQEAgLTExMjcsNiAr MTEzNCw3IEBACisgICAgICAgc3RydWN0IGxpbmtfbWFwX29mZnNldHMgKmxtbyA9IHN2cjRfZmV0 Y2hfbGlua19tYXBfb2Zmc2V0cyAoKTsKKyAgICAgICBzdHJ1Y3Qgc29fbGlzdCAqbmV3ID0gWFpB TExPQyAoc3RydWN0IHNvX2xpc3QpOworICAgICAgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW4g PSBtYWtlX2NsZWFudXAgKHhmcmVlLCBuZXcpOworKyAgICAgIENPUkVfQUREUiBuZXh0X2xtOwor IAorICAgICAgIG5ldy0+bG1faW5mbyA9IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IGxtX2luZm8p KTsKKyAgICAgICBtYWtlX2NsZWFudXAgKHhmcmVlLCBuZXctPmxtX2luZm8pOworQEAgLTExMzgs MTQgKzExNDYsMjEgQEAKKyAKKyAgICAgICByZWFkX21lbW9yeSAobG0sIG5ldy0+bG1faW5mby0+ bG0sIGxtby0+bGlua19tYXBfc2l6ZSk7CisgCistICAgICAgbG0gPSBMTV9ORVhUIChuZXcpOwor KyAgICAgIG5leHRfbG0gPSBMTV9ORVhUIChuZXcpOworKworKyAgICAgIGlmIChMTV9QUkVWIChu ZXcpICE9IHByZXZfbG0pCisrCXsKKysJICB3YXJuaW5nIChfKCJDb3JydXB0ZWQgc2hhcmVkIGxp YnJhcnkgbGlzdCIpKTsKKysJICBmcmVlX3NvIChuZXcpOworKwkgIG5leHRfbG0gPSAwOworKwl9 CisgCisgICAgICAgLyogRm9yIFNWUjQgdmVyc2lvbnMsIHRoZSBmaXJzdCBlbnRyeSBpbiB0aGUg bGluayBtYXAgaXMgZm9yIHRoZQorICAgICAgICAgIGluZmVyaW9yIGV4ZWN1dGFibGUsIHNvIHdl IG11c3QgaWdub3JlIGl0LiAgRm9yIHNvbWUgdmVyc2lvbnMgb2YKKyAgICAgICAgICBTVlI0LCBp dCBoYXMgbm8gbmFtZS4gIEZvciBvdGhlcnMgKFNvbGFyaXMgMi4zIGZvciBleGFtcGxlKSwgaXQK KyAgICAgICAgICBkb2VzIGhhdmUgYSBuYW1lLCBzbyB3ZSBjYW4gbm8gbG9uZ2VyIHVzZSBhIG1p c3NpbmcgbmFtZSB0bworICAgICAgICAgIGRlY2lkZSB3aGVuIHRvIGlnbm9yZSBpdC4gKi8KKy0g ICAgICBpZiAoSUdOT1JFX0ZJUlNUX0xJTktfTUFQX0VOVFJZIChuZXcpICYmIGxkc29tYXAgPT0g MCkKKysgICAgICBlbHNlIGlmIChJR05PUkVfRklSU1RfTElOS19NQVBfRU5UUlkgKG5ldykgJiYg bGRzb21hcCA9PSAwKQorIAl7CisgCSAgaW5mby0+bWFpbl9sbV9hZGRyID0gbmV3LT5sbV9pbmZv LT5sbV9hZGRyOworIAkgIGZyZWVfc28gKG5ldyk7CitAQCAtMTE4MiwxMiArMTE5NywxOCBAQAor IAkgICAgfQorIAl9CisgCisrICAgICAgcHJldl9sbSA9IGxtOworKyAgICAgIGxtID0gbmV4dF9s bTsKKysKKyAgICAgICAvKiBPbiBTb2xhcmlzLCB0aGUgZHluYW1pYyBsaW5rZXIgaXMgbm90IGlu IHRoZSBub3JtYWwgbGlzdCBvZgorIAkgc2hhcmVkIG9iamVjdHMsIHNvIG1ha2Ugc3VyZSB3ZSBw aWNrIGl0IHVwIHRvby4gIEhhdmluZworIAkgc3ltYm9sIGluZm9ybWF0aW9uIGZvciB0aGUgZHlu YW1pYyBsaW5rZXIgaXMgcXVpdGUgY3J1Y2lhbAorIAkgZm9yIHNraXBwaW5nIGR5bmFtaWMgbGlu a2VyIHJlc29sdmVyIGNvZGUuICAqLworICAgICAgIGlmIChsbSA9PSAwICYmIGxkc29tYXAgPT0g MCkKKy0JbG0gPSBsZHNvbWFwID0gc29saWJfc3ZyNF9yX2xkc29tYXAgKGluZm8pOworKwl7Cisr CSAgbG0gPSBsZHNvbWFwID0gc29saWJfc3ZyNF9yX2xkc29tYXAgKGluZm8pOworKwkgIHByZXZf bG0gPSAwOworKwl9CisgCisgICAgICAgZGlzY2FyZF9jbGVhbnVwcyAob2xkX2NoYWluKTsKKyAg ICAgfQorLS0tIHNyYy9nZGIvY29uZmlnL2RqZ3BwL2ZuY2hhbmdlLmxzdAkyMDEwLzA0LzA5IDE1 OjE1OjA1CTEuMTEyCisrKysgc3JjL2dkYi9jb25maWcvZGpncHAvZm5jaGFuZ2UubHN0CTIwMTAv MDQvMjMgMjE6NDQ6MTkJMS4xMTMKK0BAIC0zOTcsNiArMzk3LDcgQEAKKyBAVkAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9zaWdpbmZvLW9iai5jIEBWQC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Np LW9iai5jCisgQFZAL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc2lnaW5mby1hZGRyLmV4cCBAVkAv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zaS1hZGRyLmV4cAorIEBWQC9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3NpZ2luZm8tb2JqLmV4cCBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zaS1vYmou ZXhwCisrQFZAL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc29saWItY29ycnVwdGVkLmV4cCBAVkAv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zby1jcnB0ZC5leHAKKyBAVkAvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9zb2xpYi1kaXNjLmMgQFZAL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc28tZGlzYy5j CisgQFZAL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc29saWItZGlzcGxheS1saWIuYyBAVkAvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9zby1kaXNwbGliLmMKKyBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9zb2xpYi1kaXNwbGF5LW1haW4uYyBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zby1k aXNwbWFpbi5jCisjIyMgc3JjL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDQvMjMgMTg6 MDM6MzEJMS4yMjUyCisjIyMgc3JjL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDQvMjMg MjE6NDQ6MjAJMS4yMjUzCisjIyAtMSwzICsxLDggQEAKKysyMDEwLTA0LTIzICBKYW4gS3JhdG9j aHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCisrCUZpeCBkZWFkbG9jayBvbiBs b29wZWQgbGlzdCBvZiBsb2FkZWQgc2hhcmVkIG9iamVjdHMuCisrCSogZ2RiLmJhc2Uvc29saWIt Y29ycnVwdGVkLmV4cDogTmV3LgorKworIDIwMTAtMDQtMjMgIERvdWcgRXZhbnMgIDxkamVAZ29v Z2xlLmNvbT4KKyAKKyAJKiBnZGIucHl0aG9uL3B5LXNlY3Rpb24tc2NyaXB0LmM6IE5ldyBmaWxl LgorLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvbGliLWNvcnJ1cHRlZC5leHAKKysr KyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb2xpYi1jb3JydXB0ZWQuZXhwCTIwMTAtMDUt MjQgMTg6MDA6NTIuMDU3OTk1MDAwICswMDAwCitAQCAtMCwwICsxLDQ2IEBACisrIyBDb3B5cmln aHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor KyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisrCisrc2V0IHRlc3RmaWxlICJzb2xpYi1jb3JydXB0ZWQiCisrc2V0 IHNyY2ZpbGUgc3RhcnQuYworKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0Zmls ZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX1dIH0geworKyAgICB1bnRlc3RlZCAke3Rlc3Rm aWxlfS5leHAKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmICFbcnVudG9fbWFpbl0geworKyAg ICBmYWlsICJDYW4ndCBydW4gdG8gbWFpbiIKKysgICAgcmV0dXJuCisrfQorKworK2dkYl90ZXN0 ICJpbmZvIHNoYXJlZGxpYnJhcnkiICIiICJub3JtYWwgbGlzdCIKKysKKysjIEdEQiBjaGVja3Mg dGhlcmUgZm9yIG1hdGNoaW5nIExfUFJFVi4KKytzZXQgdGVzdCAibWFrZSBzb2xpYnMgbG9vcGlu ZyIKKytnZGJfdGVzdF9tdWx0aXBsZSAicC94IF9yX2RlYnVnLT5yX21hcC0+bF9uZXh0ID0gX3Jf ZGVidWctPnJfbWFwIiAkdGVzdCB7CisrICAgIC1yZSAiKE5vIHN5bWJvbCBcIl9yX2RlYnVnXCIg aW4gY3VycmVudCBjb250ZXh0XFwufEF0dGVtcHQgdG8gZXh0cmFjdCBhIGNvbXBvbmVudCBvZiBh IHZhbHVlIHRoYXQgaXMgbm90IGEgc3RydWN0dXJlIHBvaW50ZXJcXC4pXHJcbiRnZGJfcHJvbXB0 ICQiIHsKKysJIyBnbGliYyBkZWJ1ZyBpbmZvIGlzIG5vdCBhdmFpbGFibGUgYW5kIGl0IGlzIHRv byBkaWZmaWN1bHQgdG8gZmluZCBhbmQKKysJIyBwYXJzZSBpdCBmcm9tIHRoaXMgdGVzdGNhc2Ug d2l0aG91dCB0aGUgZ2RiIHN1cHBvcnRpbmcgZnVuY3Rpb25zLgorKwl2ZXJib3NlIC1sb2cgIm5v IF9yX2RlYnVnIHN5bWJvbCBoYXMgYmVlbiBmb3VuZCIKKysJeGZhaWwgJHRlc3QKKysJdW50ZXN0 ZWQgJHt0ZXN0ZmlsZX0uZXhwCisrCXJldHVybgorKyAgICB9CisrICAgIC1yZSAiID0gMHhcWzAt OWEtZlxdK1xyXG4kZ2RiX3Byb21wdCAkIiB7CisrCXBhc3MgJHRlc3QKKysgICAgfQorK30KKytn ZGJfdGVzdCAiaW5mbyBzaGFyZWRsaWJyYXJ5IiAid2FybmluZzogQ29ycnVwdGVkIHNoYXJlZCBs aWJyYXJ5IGxpc3RcclxuLioiICJjb3JydXB0ZWQgbGlzdCIKKworCisKK1JlOiBbcGF0Y2hdIEZp eCBjcmFzaCBvbiAvcHJvYy9QSUQvc3RhdCByYWNlCitodHRwOi8vc291cmNld2FyZS5vcmcvbWwv Z2RiLXBhdGNoZXMvMjAxMC0wNS9tc2cwMDY4NS5odG1sCitodHRwOi8vc291cmNld2FyZS5vcmcv bWwvZ2RiLWN2cy8yMDEwLTA1L21zZzAwMjQ0Lmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9n CTIwMTAvMDUvMjggMTg6MDA6NDEJMS4xMTg1NQorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTAv MDUvMjggMTg6MjM6MTMJMS4xMTg1NgorIyMgLTEsNSArMSwxMCBAQAorIDIwMTAtMDUtMjggIEph biBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKyAKKysJKiBsaW51eC1u YXQuYyAobGludXhfbmF0X2NvcmVfb2ZfdGhyZWFkXzEpOiBGaXggY3Jhc2ggb24gaW52YWxpZAor KwlDT05URU5ULgorKworKzIwMTAtMDUtMjggIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4KKysKKyAJKiBsaW51eC1uYXQuYyAobGludXhfbmF0X3dhaXRfMSk6IERv IG5vdCBjYWxsCisgCWxpbnV4X25hdF9jb3JlX29mX3RocmVhZF8xIG9uIFRBUkdFVF9XQUlUS0lO RF9FWElURUQgb3IKKyAJVEFSR0VUX1dBSVRLSU5EX1NJR05BTExFRC4KKy0tLSBzcmMvZ2RiL2xp bnV4LW5hdC5jCTIwMTAvMDUvMjggMTg6MDA6NDYJMS4xNjkKKysrKyBzcmMvZ2RiL2xpbnV4LW5h dC5jCTIwMTAvMDUvMjggMTg6MjM6MTUJMS4xNzAKK0BAIC01NTA5LDE1ICs1NTA5LDIxIEBACisg ICBtYWtlX2NsZWFudXAgKHhmcmVlLCBjb250ZW50KTsKKyAKKyAgIHAgPSBzdHJjaHIgKGNvbnRl bnQsICcoJyk7CistICBwID0gc3RyY2hyIChwLCAnKScpICsgMjsgLyogc2tpcCAiKSIgYW5kIGEg d2hpdGVzcGFjZS4gKi8KKysKKysgIC8qIFNraXAgIikiLiAgKi8KKysgIGlmIChwICE9IE5VTEwp CisrICAgIHAgPSBzdHJjaHIgKHAsICcpJyk7CisrICBpZiAocCAhPSBOVUxMKQorKyAgICBwKys7 CisgCisgICAvKiBJZiB0aGUgZmlyc3QgZmllbGQgYWZ0ZXIgcHJvZ3JhbSBuYW1lIGhhcyBpbmRl eCAwLCB0aGVuIGNvcmUgbnVtYmVyIGlzCisgICAgICB0aGUgZmllbGQgd2l0aCBpbmRleCAzNi4g IFRoZXJlJ3Mgbm8gY29uc3RhbnQgZm9yIHRoYXQgYW55d2hlcmUuICAqLworLSAgcCA9IHN0cnRv a19yIChwLCAiICIsICZ0cyk7CistICBmb3IgKGkgPSAwOyBpICE9IDM2OyArK2kpCisrICBpZiAo cCAhPSBOVUxMKQorKyAgICBwID0gc3RydG9rX3IgKHAsICIgIiwgJnRzKTsKKysgIGZvciAoaSA9 IDA7IHAgIT0gTlVMTCAmJiBpICE9IDM2OyArK2kpCisgICAgIHAgPSBzdHJ0b2tfciAoTlVMTCwg IiAiLCAmdHMpOworIAorLSAgaWYgKHNzY2FuZiAocCwgIiVkIiwgJmNvcmUpID09IDApCisrICBp ZiAocCA9PSBOVUxMIHx8IHNzY2FuZiAocCwgIiVkIiwgJmNvcmUpID09IDApCisgICAgIGNvcmUg PSAtMTsKKyAKKyAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKKyMjIyBzcmMvZ2RiL2dkYnNlcnZl ci9DaGFuZ2VMb2cJMjAxMC8wNS8yNiAyMjo0MDoyMgkxLjM4NgorIyMjIHNyYy9nZGIvZ2Ric2Vy dmVyL0NoYW5nZUxvZwkyMDEwLzA1LzI4IDE4OjIzOjE1CTEuMzg3CisjIyAtMSwzICsxLDggQEAK KysyMDEwLTA1LTI4ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ CisrCisrCSogbGludXgtbG93LmMgKGxpbnV4X2NvcmVfb2ZfdGhyZWFkKTogRml4IGNyYXNoIG9u IGludmFsaWQgQ09OVEVOVC4KKysJTmV3IGNvbW1lbnQuCisrCisgMjAxMC0wNS0yNiAgT3prYW4g U2V6ZXIgIDxzZXplcm96QGdtYWlsLmNvbT4KKyAKKyAJKiBnZGJyZXBsYXkuYyAocmVtb3RlX29w ZW4pOiBDaGVjayBlcnJvciByZXR1cm4gZnJvbSBzb2NrZXQoKSBjYWxsIGJ5CistLS0gc3JjL2dk Yi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxMC8wNS8wMyAwNDowMjoyMAkxLjE0OAorKysrIHNy Yy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTAvMDUvMjggMTg6MjM6MTUJMS4xNDkKK0BA IC00MzQ2LDEzICs0MzQ2LDIxIEBACisgICAgIH0KKyAKKyAgIHAgPSBzdHJjaHIgKGNvbnRlbnQs ICcoJyk7CistICBwID0gc3RyY2hyIChwLCAnKScpICsgMjsgLyogc2tpcCAiKSIgYW5kIGEgd2hp dGVzcGFjZS4gKi8KKyAKKy0gIHAgPSBzdHJ0b2tfciAocCwgIiAiLCAmdHMpOworLSAgZm9yIChp ID0gMDsgaSAhPSAzNjsgKytpKQorKyAgLyogU2tpcCAiKSIuICAqLworKyAgaWYgKHAgIT0gTlVM TCkKKysgICAgcCA9IHN0cmNociAocCwgJyknKTsKKysgIGlmIChwICE9IE5VTEwpCisrICAgIHAr KzsKKysKKysgIC8qIElmIHRoZSBmaXJzdCBmaWVsZCBhZnRlciBwcm9ncmFtIG5hbWUgaGFzIGlu ZGV4IDAsIHRoZW4gY29yZSBudW1iZXIgaXMKKysgICAgIHRoZSBmaWVsZCB3aXRoIGluZGV4IDM2 LiAgVGhlcmUncyBubyBjb25zdGFudCBmb3IgdGhhdCBhbnl3aGVyZS4gICovCisrICBpZiAocCAh PSBOVUxMKQorKyAgICBwID0gc3RydG9rX3IgKHAsICIgIiwgJnRzKTsKKysgIGZvciAoaSA9IDA7 IHAgIT0gTlVMTCAmJiBpICE9IDM2OyArK2kpCisgICAgIHAgPSBzdHJ0b2tfciAoTlVMTCwgIiAi LCAmdHMpOworIAorLSAgaWYgKHNzY2FuZiAocCwgIiVkIiwgJmNvcmUpID09IDApCisrICBpZiAo cCA9PSBOVUxMIHx8IHNzY2FuZiAocCwgIiVkIiwgJmNvcmUpID09IDApCisgICAgIGNvcmUgPSAt MTsKKyAKKyAgIGZyZWUgKGNvbnRlbnQpOworCisKKworUmU6IFtwYXRjaF0gdGVzdHN1aXRlOiB3 YXRjaHRocmVhZHMtcmVvcmRlcjogTGludXgga2VybmVsIGNvbXBhdC4KK2h0dHA6Ly9zb3VyY2V3 YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTA1L21zZzAwNjk2Lmh0bWwKK2h0dHA6Ly9zb3Vy Y2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTAtMDUvbXNnMDAyNTUuaHRtbAorCisjIyMgc3JjL2dk Yi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDUvMjggMjM6NDc6NDAJMS4yMjkzCisjIyMgc3Jj L2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDUvMzEgMDM6MzE6MTYJMS4yMjk0CisjIyAt MSwzICsxLDExIEBACisrMjAxMC0wNS0zMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZp bEByZWRoYXQuY29tPgorKworKwlBY2NlcHQgdGhlIG5ldyBMaW51eCBrZXJuZWwgInQgKHRyYWNp bmcgc3RvcCkiIHN0cmluZy4KKysJKiBnZGIudGhyZWFkcy93YXRjaHRocmVhZHMtcmVvcmRlci5j ICh0aHJlYWQxX2Z1bmMsIHRocmVhZDJfZnVuYyk6CisrCVVwZGF0ZSBjb21tZW50LgorKwkoc3Rh dGVfd2FpdCkgPFQgKHRyYWNpbmcgc3RvcCk+OiBOZXcuCisrCShtYWluKTogVXBkYXRlIHRoZSBz dGF0ZV93YWl0IGV4cGVjdCBzdHJpbmcuCisrCisgMjAxMC0wNS0yOCAgUGVkcm8gQWx2ZXMgIDxw ZWRyb0Bjb2Rlc291cmNlcnkuY29tPgorIAorIAkqIGxpbWl0cy5jLCBsaW1pdHMuZXhwOiBEZWxl dGUgZmlsZXMuCistLS0gc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2h0aHJlYWRz LXJlb3JkZXIuYwkyMDEwLzAxLzIwIDIxOjA5OjMwCTEuMworKysrIHNyYy9nZGIvdGVzdHN1aXRl L2dkYi50aHJlYWRzL3dhdGNodGhyZWFkcy1yZW9yZGVyLmMJMjAxMC8wNS8zMSAwMzozMToxNwkx LjQKK0BAIC05OSw3ICs5OSw3IEBACisgCisgICByd2F0Y2hfc3RvcmUgPSB0aHJlYWQxX3J3YXRj aDsKKyAKKy0gIC8qIEJlIHN1cmUgdGhlICJUICh0cmFjaW5nIHN0b3ApIiB0ZXN0IGNhbiBwcm9j ZWVkIGZvciBib3RoIHRocmVhZHMuICAqLworKyAgLyogQmUgc3VyZSB0aGUgInQgKHRyYWNpbmcg c3RvcCkiIHRlc3QgY2FuIHByb2NlZWQgZm9yIGJvdGggdGhyZWFkcy4gICovCisgICB0aW1lZF9t dXRleF9sb2NrICgmdGVybWluYXRlX211dGV4KTsKKyAgIGkgPSBwdGhyZWFkX211dGV4X3VubG9j ayAoJnRlcm1pbmF0ZV9tdXRleCk7CisgICBhc3NlcnQgKGkgPT0gMCk7CitAQCAtMTI1LDcgKzEy NSw3IEBACisgCisgICByd2F0Y2hfc3RvcmUgPSB0aHJlYWQyX3J3YXRjaDsKKyAKKy0gIC8qIEJl IHN1cmUgdGhlICJUICh0cmFjaW5nIHN0b3ApIiB0ZXN0IGNhbiBwcm9jZWVkIGZvciBib3RoIHRo cmVhZHMuICAqLworKyAgLyogQmUgc3VyZSB0aGUgInQgKHRyYWNpbmcgc3RvcCkiIHRlc3QgY2Fu IHByb2NlZWQgZm9yIGJvdGggdGhyZWFkcy4gICovCisgICB0aW1lZF9tdXRleF9sb2NrICgmdGVy bWluYXRlX211dGV4KTsKKyAgIGkgPSBwdGhyZWFkX211dGV4X3VubG9jayAoJnRlcm1pbmF0ZV9t dXRleCk7CisgICBhc3NlcnQgKGkgPT0gMCk7CitAQCAtMjExLDYgKzIxMSwxMyBAQAorICAgZG8K KyAgICAgeworICAgICAgIHN0YXRlID0gcHJvY19zdHJpbmcgKGZpbGVuYW1lLCAiU3RhdGU6XHQi KTsKKysKKysgICAgICAvKiB0b3J2YWxkcy9saW51eC0yLjYuZ2l0IDQ2NDc2M2NmMWM2ZGY2MzJk Y2NjOGYyZjRjN2U1MDE2MzE1NGEyYzAKKysJIGhhcyBjaGFuZ2VkICJUICh0cmFjaW5nIHN0b3Ap IiB0byAidCAodHJhY2luZyBzdG9wKSIuICBNYWtlIHRoZSBHREIKKysJIHRlc3RjYXNlIGJhY2t3 YXJkIGNvbXBhdGlibGUgd2l0aCBvbGRlciBMaW51eCBrZXJuZWxzLiAgKi8KKysgICAgICBpZiAo c3RyY21wIChzdGF0ZSwgIlQgKHRyYWNpbmcgc3RvcCkiKSA9PSAwKQorKwlzdGF0ZSA9ICJ0ICh0 cmFjaW5nIHN0b3ApIjsKKysKKyAgICAgICBpZiAoc3RyY21wIChzdGF0ZSwgd2FudGVkKSA9PSAw KQorIAl7CisgCSAgZnJlZSAoZmlsZW5hbWUpOworQEAgLTMzNiw5ICszNDMsOSBAQAorICAgICB7 CisgICAgICAgLyogczM5MHgtdW5rbm93bi1saW51eC1nbnUgd2lsbCBmYWlsIHdpdGggIlIgKHJ1 bm5pbmcpIi4gICovCisgCistICAgICAgc3RhdGVfd2FpdCAodGhyZWFkMV90aWQsICJUICh0cmFj aW5nIHN0b3ApIik7CisrICAgICAgc3RhdGVfd2FpdCAodGhyZWFkMV90aWQsICJ0ICh0cmFjaW5n IHN0b3ApIik7CisgCistICAgICAgc3RhdGVfd2FpdCAodGhyZWFkMl90aWQsICJUICh0cmFjaW5n IHN0b3ApIik7CisrICAgICAgc3RhdGVfd2FpdCAodGhyZWFkMl90aWQsICJ0ICh0cmFjaW5nIHN0 b3ApIik7CisgICAgIH0KKyAKKyAgIGNsZWFudXAgKCk7CgpkaWZmIC0tZ2l0IGEvZ2RiLXVzaW5n LWRpcmVjdGl2ZS1sZWFrLnBhdGNoIGIvZ2RiLXVzaW5nLWRpcmVjdGl2ZS1sZWFrLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxZmFhOTEKLS0tIC9kZXYvbnVsbAor KysgYi9nZGItdXNpbmctZGlyZWN0aXZlLWxlYWsucGF0Y2gKQEAgLTAsMCArMSwyMTQgQEAKK0ZT RiBHREIgdmFyaWFudCBpcyBhdDoKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hl cy8yMDEwLTAzL21zZzAwNzg5Lmh0bWwKKworY29tbWl0IDU2YjQ1ZjQ5NGY2NDczNjBmOWQ2ZmY4 NGYxMmY1OWMwOGNiZTA1YWYKK0F1dGhvcjogU2FtaSBXYWdpYWFsbGEgPHN3YWdpYWFsQHJlZGhh dC5jb20+CitEYXRlOiAgIE1vbiBNYXIgMjkgMTY6MDg6NTggMjAxMCAtMDQwMAorCisgICAgRml4 IHVzaW5nX2RpcmVjdGl2ZSBtZW1vcnkgbGVhay4KKworZGlmZiAtLWdpdCBhL2dkYi9idWlsZHN5 bS5jIGIvZ2RiL2J1aWxkc3ltLmMKK2luZGV4IGZmMmM5YjEuLjM1ZTQ2NjMgMTAwNjQ0CistLS0g YS9nZGIvYnVpbGRzeW0uYworKysrIGIvZ2RiL2J1aWxkc3ltLmMKK0BAIC0zODcsNiArMzg3LDcg QEAgZmluaXNoX2Jsb2NrIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBwZW5kaW5nICoq bGlzdGhlYWQsCisgICAgIH0KKyAKKyAgIGJsb2NrX3NldF91c2luZyAoYmxvY2ssIHVzaW5nX2Rp cmVjdGl2ZXMsICZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2spOworKyAgdXNpbmdfZGlyZWN0aXZl cyA9IE5VTEw7CisgCisgICByZWNvcmRfcGVuZGluZ19ibG9jayAob2JqZmlsZSwgYmxvY2ssIG9w YmxvY2spOworIAorZGlmZiAtLWdpdCBhL2dkYi9jcC1uYW1lc3BhY2UuYyBiL2dkYi9jcC1uYW1l c3BhY2UuYworaW5kZXggNjMyNWVhZC4uYzZkZjkxZiAxMDA2NDQKKy0tLSBhL2dkYi9jcC1uYW1l c3BhY2UuYworKysrIGIvZ2RiL2NwLW5hbWVzcGFjZS5jCitAQCAtMTIwLDcgKzEyMCw4IEBAIGNw X3NjYW5fZm9yX2Fub255bW91c19uYW1lc3BhY2VzIChjb25zdCBzdHJ1Y3Qgc3ltYm9sICpzeW1i b2wpCisgCQkgYW5vbnltb3VzIG5hbWVzcGFjZS4gIFNvIGFkZCBzeW1ib2xzIGluIGl0IHRvIHRo ZQorIAkJIG5hbWVzcGFjZSBnaXZlbiBieSB0aGUgcHJldmlvdXMgY29tcG9uZW50IGlmIHRoZXJl IGlzCisgCQkgb25lLCBvciB0byB0aGUgZ2xvYmFsIG5hbWVzcGFjZSBpZiB0aGVyZSBpc24ndC4g ICovCistCSAgICAgIGNwX2FkZF91c2luZ19kaXJlY3RpdmUgKGRlc3QsIHNyYywgTlVMTCwgIiIs IDApOworKwkgICAgICBjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChkZXN0LCBzcmMsIE5VTEwsICIi LCAwLAorKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmU1lNQk9MX1NZTVRBQiAoc3lt Ym9sKS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrKTsKKyAJICAgIH0KKyAJICAvKiBUaGUgIisg MiIgaXMgZm9yIHRoZSAiOjoiLiAgKi8KKyAJICBwcmV2aW91c19jb21wb25lbnQgPSBuZXh0X2Nv bXBvbmVudCArIDI7CitAQCAtMTMyLDExICsxMzMsMTcgQEAgY3Bfc2Nhbl9mb3JfYW5vbnltb3Vz X25hbWVzcGFjZXMgKGNvbnN0IHN0cnVjdCBzeW1ib2wgKnN5bWJvbCkKKyB9CisgCisgLyogQWRk IGEgdXNpbmcgZGlyZWN0aXZlIHRvIHVzaW5nX2xpc3QuIElmIHRoZSB1c2luZyBkaXJlY3RpdmUg aW4gcXVlc3Rpb24KKy0gICBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkLCBkb24ndCBhZGQgaXQgdHdp Y2UuICAqLworKyAgIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQsIGRvbid0IGFkZCBpdCB0d2ljZS4K KysgICBDcmVhdGUgYSBuZXcgc3RydWN0IHVzaW5nX2RpcmVjdCB3aGljaCBpbXBvcnRzIHRoZSBu YW1lc3BhY2UgU1JDIGludG8gdGhlCisrICAgc2NvcGUgREVTVC4gIEFMSUFTIGlzIHRoZSBuYW1l IG9mIHRoZSBpbXBvcnRlZCBuYW1lc3BhY2UgaW4gdGhlIGN1cnJlbnQKKysgICBzY29wZS4gIElm IEFMSUFTIGlzIE5VTEwgdGhlbiB0aGUgbmFtZXNwYWNlIGlzIGtub3duIGJ5IGl0cyBvcmlnaW5h bCBuYW1lLgorKyAgIFRoZSBhcmd1bWVudHMgYXJlIGNvcGllZCBpbnRvIG5ld2x5IGFsbG9jYXRl ZCBtZW1vcnkgc28gdGhleSBjYW4gYmUKKysgICB0ZW1wb3Jhcmllcy4gICovCisgCisgdm9pZAor IGNwX2FkZF91c2luZ19kaXJlY3RpdmUgKGNvbnN0IGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNy YywgY29uc3QgY2hhciAqYWxpYXMsCistCQkJY29uc3QgY2hhciAqZGVjbGFyYXRpb24sIGNvbnN0 IGludCBsaW5lX251bWJlcikKKysJCQljb25zdCBjaGFyICpkZWNsYXJhdGlvbiwgY29uc3QgaW50 IGxpbmVfbnVtYmVyLAorKwkJCXN0cnVjdCBvYnN0YWNrICpvYnN0YWNrKQorIHsKKyAgIHN0cnVj dCB1c2luZ19kaXJlY3QgKmN1cnJlbnQ7CisgICBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICpuZXc7CitA QCAtMTQ2LDEyICsxNTMsMjYgQEAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAoY29uc3QgY2hhciAq ZGVzdCwgY29uc3QgY2hhciAqc3JjLCBjb25zdCBjaGFyICphbGlhcywKKyAgIGZvciAoY3VycmVu dCA9IHVzaW5nX2RpcmVjdGl2ZXM7IGN1cnJlbnQgIT0gTlVMTDsgY3VycmVudCA9IGN1cnJlbnQt Pm5leHQpCisgICAgIHsKKyAgICAgICBpZiAoc3RyY21wIChjdXJyZW50LT5pbXBvcnRfc3JjLCBz cmMpID09IDAKKy0gICAgICAgICAgJiYgc3RyY21wIChjdXJyZW50LT5pbXBvcnRfZGVzdCwgZGVz dCkgPT0gMCkKKysJICAmJiBzdHJjbXAgKGN1cnJlbnQtPmltcG9ydF9kZXN0LCBkZXN0KSA9PSAw CisrCSAgJiYgKChhbGlhcyA9PSBOVUxMICYmIGN1cnJlbnQtPmFsaWFzID09IE5VTEwpCisrCSAg ICAgIHx8IChhbGlhcyAhPSBOVUxMICYmIGN1cnJlbnQtPmFsaWFzICE9IE5VTEwKKysJCSAgJiYg c3RyY21wIChhbGlhcywgY3VycmVudC0+YWxpYXMpID09IDApKSkKKyAJcmV0dXJuOworICAgICB9 CisgCistICB1c2luZ19kaXJlY3RpdmVzID0gY3BfYWRkX3VzaW5nIChkZXN0LCBzcmMsIGFsaWFz LCBkZWNsYXJhdGlvbiwKKy0JCQkJICAgbGluZV9udW1iZXIsIHVzaW5nX2RpcmVjdGl2ZXMpOwor KyAgbmV3ID0gT0JTVEFDS19aQUxMT0MgKG9ic3RhY2ssIHN0cnVjdCB1c2luZ19kaXJlY3QpOwor KworKyAgbmV3LT5pbXBvcnRfc3JjID0gb2JzYXZlc3RyaW5nIChzcmMsIHN0cmxlbiAoc3JjKSwg b2JzdGFjayk7CisrICBuZXctPmltcG9ydF9kZXN0ID0gb2JzYXZlc3RyaW5nIChkZXN0LCBzdHJs ZW4gKGRlc3QpLCBvYnN0YWNrKTsKKysKKysgIGlmIChhbGlhcyAhPSBOVUxMKQorKyAgICBuZXct PmFsaWFzID0gb2JzYXZlc3RyaW5nIChhbGlhcywgc3RybGVuIChhbGlhcyksIG9ic3RhY2spOwor KworKyAgbmV3LT5kZWNsYXJhdGlvbiA9IG9ic2F2ZXN0cmluZyAoZGVjbGFyYXRpb24sIHN0cmxl biAoZGVjbGFyYXRpb24pLCBvYnN0YWNrKTsKKysgIG5ldy0+bGluZV9udW1iZXIgPSBsaW5lX251 bWJlcjsKKysKKysgIG5ldy0+bmV4dCA9IHVzaW5nX2RpcmVjdGl2ZXM7CisrICB1c2luZ19kaXJl Y3RpdmVzID0gbmV3OworIAorIH0KKyAKK0BAIC0yMDMsNDIgKzIyNCw2IEBAIGNwX2lzX2Fub255 bW91cyAoY29uc3QgY2hhciAqbmFtZXNwYWNlKQorIAkgICE9IE5VTEwpOworIH0KKyAKKy0vKiBD cmVhdGUgYSBuZXcgc3RydWN0IHVzaW5nIGRpcmVjdCB3aGljaCBpbXBvcnRzIHRoZSBuYW1lc3Bh Y2UgU1JDCistICAgaW50byB0aGUgc2NvcGUgREVTVC4gIEFMSUFTIGlzIHRoZSBuYW1lIG9mIHRo ZSBpbXBvcnRlZCBuYW1lc3BhY2UKKy0gICBpbiB0aGUgY3VycmVudCBzY29wZS4gIElmIEFMSUFT IGlzIE5VTEwgdGhlbiB0aGUKKy0gICBuYW1lc3BhY2UgaXMga25vd24gYnkgaXRzIG9yaWdpbmFs IG5hbWUuCistCistICAgU2V0IGl0cyBuZXh0IG1lbWJlciBpbiB0aGUgbGlua2VkIGxpc3QgdG8g TkVYVDsgYWxsb2NhdGUgYWxsIG1lbW9yeQorLSAgIHVzaW5nIHhtYWxsb2MuICBJdCBjb3BpZXMg dGhlIHN0cmluZ3MsIHNvIE5BTUUgY2FuIGJlIGEgdGVtcG9yYXJ5CistICAgc3RyaW5nLiAgKi8K Ky0KKy1zdHJ1Y3QgdXNpbmdfZGlyZWN0ICoKKy1jcF9hZGRfdXNpbmcgKGNvbnN0IGNoYXIgKmRl c3QsCistICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsCistICAgICAgICAgICAgICBjb25z dCBjaGFyICphbGlhcywKKy0gICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmRlY2xhcmF0aW9uLAor LSAgICAgICAgICAgICAgY29uc3QgaW50IGxpbmVfbnVtYmVyLAorLQkgICAgICBzdHJ1Y3QgdXNp bmdfZGlyZWN0ICpuZXh0KQorLXsKKy0gIHN0cnVjdCB1c2luZ19kaXJlY3QgKnJldHZhbDsKKy0K Ky0gIHJldHZhbCA9IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IHVzaW5nX2RpcmVjdCkpOworLSAg cmV0dmFsLT5pbXBvcnRfc3JjID0gc2F2ZXN0cmluZyAoc3JjLCBzdHJsZW4gKHNyYykpOworLSAg cmV0dmFsLT5pbXBvcnRfZGVzdCA9IHNhdmVzdHJpbmcgKGRlc3QsIHN0cmxlbiAoZGVzdCkpOwor LQorLSAgaWYgKGFsaWFzICE9IE5VTEwpCistICAgIHJldHZhbC0+YWxpYXMgPSBzYXZlc3RyaW5n IChhbGlhcywgc3RybGVuIChhbGlhcykpOworLSAgZWxzZQorLSAgICByZXR2YWwtPmFsaWFzID0g TlVMTDsKKy0KKy0gIHJldHZhbC0+ZGVjbGFyYXRpb24gPSBzYXZlc3RyaW5nIChkZWNsYXJhdGlv biwgc3RybGVuIChkZWNsYXJhdGlvbikpOworLSAgcmV0dmFsLT5saW5lX251bWJlciA9IGxpbmVf bnVtYmVyOworLSAgcmV0dmFsLT5uZXh0ID0gbmV4dDsKKy0gIHJldHZhbC0+c2VhcmNoZWQgPSAw OworLQorLSAgcmV0dXJuIHJldHZhbDsKKy19CistCisgLyogVGhlIEMrKy1zcGVjaWZpYyB2ZXJz aW9uIG9mIG5hbWUgbG9va3VwIGZvciBzdGF0aWMgYW5kIGdsb2JhbAorICAgIG5hbWVzLiAgVGhp cyBtYWtlcyBzdXJlIHRoYXQgbmFtZXMgZ2V0IGxvb2tlZCBmb3IgaW4gYWxsIG5hbWVzcGFjZXMK KyAgICB0aGF0IGFyZSBpbiBzY29wZS4gIE5BTUUgaXMgdGhlIG5hdHVyYWwgbmFtZSBvZiB0aGUg c3ltYm9sIHRoYXQKK2RpZmYgLS1naXQgYS9nZGIvY3Atc3VwcG9ydC5oIGIvZ2RiL2NwLXN1cHBv cnQuaAoraW5kZXggNTdhYTVlNS4uNDFmMTdmZSAxMDA2NDQKKy0tLSBhL2dkYi9jcC1zdXBwb3J0 LmgKKysrKyBiL2dkYi9jcC1zdXBwb3J0LmgKK0BAIC0xMDEsMTQgKzEwMSw4IEBAIGV4dGVybiB2 b2lkIGNwX2FkZF91c2luZ19kaXJlY3RpdmUgKGNvbnN0IGNoYXIgKmRlc3QsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmFsaWFzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmRlY2xhcmF0aW9uLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBsaW5lX251bWJlcik7Cist CistZXh0ZXJuIHN0cnVjdCB1c2luZ19kaXJlY3QgKmNwX2FkZF91c2luZyAoY29uc3QgY2hhciAq ZGVzdCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpzcmMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciAqYWxpYXMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqZGVjbGFyYXRpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgaW50IGxpbmVfbnVtYmVyLAorLQkJCQkJICBzdHJ1Y3QgdXNp bmdfZGlyZWN0ICpuZXh0KTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBpbnQgbGluZV9udW1iZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IG9ic3RhY2sgKm9ic3RhY2spOworIAorIGV4dGVybiB2b2lkIGNwX2luaXRpYWxp emVfbmFtZXNwYWNlICh2b2lkKTsKKyAKK2RpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIv Z2RiL2R3YXJmMnJlYWQuYworaW5kZXggZTNhNzgwZS4uYjczZjQ0NCAxMDA2NDQKKy0tLSBhL2dk Yi9kd2FyZjJyZWFkLmMKKysrKyBiL2dkYi9kd2FyZjJyZWFkLmMKK0BAIC0zNTYzLDEyICszNTYz LDEyIEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorICAgICB9CisgICB9CisgICAKKy0gIHVzaW5nX2RpcmVjdGl2ZXMg PSBjcF9hZGRfdXNpbmcgKGltcG9ydF9wcmVmaXgsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjYW5vbmljYWxfbmFtZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGltcG9ydF9hbGlhcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGltcG9ydGVkX2RlY2xhcmF0aW9uLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGluZV9udW1iZXIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2lu Z19kaXJlY3RpdmVzKTsKKysgIGNwX2FkZF91c2luZ19kaXJlY3RpdmUgKGltcG9ydF9wcmVmaXgs CisrICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5vbmljYWxfbmFtZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgIGltcG9ydF9hbGlhcywKKysgICAgICAgICAgICAgICAgICAgICAgICAg IGltcG9ydGVkX2RlY2xhcmF0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9u dW1iZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAmY3UtPm9iamZpbGUtPm9iamZpbGVf b2JzdGFjayk7CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtNTcwMyw3ICs1NzAzLDEyIEBAIHJl YWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CisgICAgICAgaWYgKGlzX2Fub255bW91cykKKyAJeworIAkgIGNvbnN0IGNoYXIgKnByZXZpb3Vz X3ByZWZpeCA9IGRldGVybWluZV9wcmVmaXggKGRpZSwgY3UpOworLQkgIGNwX2FkZF91c2luZ19k aXJlY3RpdmUgKHByZXZpb3VzX3ByZWZpeCwgVFlQRV9OQU1FICh0eXBlKSwgTlVMTCwgIiIsIGR3 YXJmMl9yZWFkX2RlY2xfbGluZShkaWUsIGN1KSk7CisrCSAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2 ZSAocHJldmlvdXNfcHJlZml4LAorKwkgICAgICAgICAgICAgICAgICAgICAgICAgIFRZUEVfTkFN RSAodHlwZSksCisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysJICAgICAgICAg ICAgICAgICAgICAgICAgICAiIiwKKysJICAgICAgICAgICAgICAgICAgICAgICAgICBkd2FyZjJf cmVhZF9kZWNsX2xpbmUoZGllLCBjdSksCisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgJm9i amZpbGUtPm9iamZpbGVfb2JzdGFjayk7CisgCX0KKyAgICAgfQorIAorZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjIzODQtYmFzZS5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNw L2dkYjIzODQtYmFzZS5jYworaW5kZXggMDllZDA0ZS4uYjU4ZjMwZCAxMDA2NDQKKy0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjIzODQtYmFzZS5jYworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuY3AvZ2RiMjM4NC1iYXNlLmNjCitAQCAtMjMsNiArMjMsOCBAQCBiYXNlOjpiYXNlIChpbnQg X3gpCisgeworIH0KKyAKKyt1c2luZyBuYW1lc3BhY2UgQjsKKysKKyBpbnQKKyBiYXNlOjptZXRo ICgpCisgeworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjIzODQtYmFzZS5o IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiMjM4NC1iYXNlLmgKK2luZGV4IGIwOTcwMWUuLjk4 MTk0M2MgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9nZGIyMzg0LWJhc2UuaAor KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiMjM4NC1iYXNlLmgKK0BAIC0xNiw2ICsxNiwx MCBAQAorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICAgICovCisgCisrbmFtZXNwYWNlIEJ7CisrICBpbnQg eDsKKyt9CisrCisgY2xhc3MgYmFzZQorIHsKKyAgcHVibGljOgoKZGlmZiAtLWdpdCBhL2dkYi5z cGVjIGIvZ2RiLnNwZWMKaW5kZXggZWY4ZTkzYi4uOTVjM2U2MSAxMDA2NDQKLS0tIGEvZ2RiLnNw ZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTMyLDE3ICszMiwxOCBAQCBOYW1lOiBnZGIlez9fd2l0aF9k ZWJ1ZzotZGVidWd9CiAjIFNldCB2ZXJzaW9uIHRvIGNvbnRlbnRzIG9mIGdkYi92ZXJzaW9uLmlu LgogIyBOT1RFOiB0aGUgRlNGIGdkYiB2ZXJzaW9ucyBhcmUgbnVtYmVyZWQgTi5NIGZvciBvZmZp Y2lhbCByZWxlYXNlcywgbGlrZSA2LjMKICMgYW5kLCBzaW5jZSBKYW51YXJ5IDIwMDUsIFguWS5a LmRhdGUgZm9yIGRhaWx5IHNuYXBzaG90cywgbGlrZSA2LjMuNTAuMjAwNTAxMTIgIyAoZGFpbHkg c25hcHNob3QgZnJvbSBtYWlsaW5lKSwgb3IgNi4zLjAuMjAwNDAxMTIgKGhlYWQgb2YgdGhlIHJl bGVhc2UgYnJhbmNoKS4KLVZlcnNpb246IDcuMC41MC4yMDEwMDIwMworVmVyc2lvbjogNy4xCiAK ICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIs IHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8g c3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgot UmVsZWFzZTogMTUlez9fd2l0aF91cHN0cmVhbToudXBzdHJlYW19JXtkaXN0fQorUmVsZWFzZTog Mjglez9fd2l0aF91cHN0cmVhbToudXBzdHJlYW19JXtkaXN0fQogCi1MaWNlbnNlOiBHUEx2MysK K0xpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMdjIrIGFu ZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFuZCBHRkRMIGFu ZCBCU0QgYW5kIFB1YmxpYyBEb21haW4KIEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKKyMg RG8gbm90IHByb3ZpZGUgVVJMIGZvciBzbmFwc2hvdHMgYXMgdGhlIGZpbGUgbGFzdHMgdGhlcmUg b25seSBmb3IgMiBkYXlzLgogIyBmdHA6Ly9zb3VyY2V3YXJlLm9yZy9wdWIvZ2RiL3NuYXBzaG90 cy9icmFuY2gvZ2RiLSV7dmVyc2lvbn0udGFyLmJ6MgogIyBmdHA6Ly9zb3VyY2V3YXJlLm9yZy9w dWIvZ2RiL3JlbGVhc2VzL2dkYi0le3ZlcnNpb259LnRhci5iejIKLVNvdXJjZTogZnRwOi8vc291 cmNld2FyZS5vcmcvcHViL2dkYi9zbmFwc2hvdHMvYnJhbmNoL2dkYi0le3ZlcnNpb259LnRhci5i ejIKK1NvdXJjZTogZnRwOi8vc291cmNld2FyZS5vcmcvcHViL2dkYi9yZWxlYXNlcy9nZGItJXt2 ZXJzaW9ufS50YXIuYnoyCiBCdWlsZHJvb3Q6ICUobWt0ZW1wIC11ZCAle190bXBwYXRofS8le25h bWV9LSV7dmVyc2lvbn0tJXtyZWxlYXNlfS1YWFhYWFgpCiBVUkw6IGh0dHA6Ly9nbnUub3JnL3Nv ZnR3YXJlL2dkYi8KIApAQCAtMTE4LDcgKzExOSw2IEBAIFBhdGNoMTE4OiBnZGItNi4zLWdzdGFj ay0yMDA1MDQxMS5wYXRjaAogCiAjIFZTWVNDQUxMIGFuZCBQSUUKIFBhdGNoMTIyOiBnZGItNi4z LXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoCi1QYXRjaDEyNDogZ2RiLWFyY2hlci1waWUtMDMxNS1i cmVha3BvaW50X2FkZHJlc3NfbWF0Y2gucGF0Y2gKIFBhdGNoMzg5OiBnZGItYXJjaGVyLXBpZS1h ZGRvbnMucGF0Y2gKIFBhdGNoMzk0OiBnZGItYXJjaGVyLXBpZS1hZGRvbnMta2VlcC1kaXNhYmxl ZC5wYXRjaAogCkBAIC0xODMsMTAgKzE4Myw2IEBAIFBhdGNoMTcwOiBnZGItNi4zLWJ0LXBhc3Qt emVyby0yMDA1MTIwMS5wYXRjaAogIyBVc2UgYmlnZ2VyIG51bWJlcnMgdGhhbiBpbnQuCiBQYXRj aDE3NjogZ2RiLTYuMy1sYXJnZS1jb3JlLTIwMDUxMjA2LnBhdGNoCiAKLSMgSGFyZC1jb2RlIGV4 ZWN1dGFibGUgbmFtZXMgaW4gZ3N0YWNrLCBzdWNoIHRoYXQgaXQgY2FuIHJ1biB3aXRoIGEKLSMg Y29ycnVwdGVkIG9yIG1pc3NpbmcgUEFUSC4KLVBhdGNoMTc3OiBnZGItNi4zLWdzdGFjay13aXRo b3V0LXBhdGgtMjAwNjA0MTQucGF0Y2gKLQogIyBGaXggZGVidWdpbmZvIGFkZHJlc3NlcyByZXNv bHZpbmcgZm9yIC0tZW1pdC1yZWxvY3MgTGludXgga2VybmVscyAoQlogMjAzNjYxKS4KIFBhdGNo MTg4OiBnZGItNi41LWJ6MjAzNjYxLWVtaXQtcmVsb2NzLnBhdGNoCiAKQEAgLTIyNCw4ICsyMjAs NyBAQCBQYXRjaDIxMzogZ2RiLTYuNS1yZWFkbGluZS1sb25nLWxpbmUtY3Jhc2gtdGVzdC5wYXRj aAogIyBGaXggYm9ndXMgMHgwIHVud2luZCBvZiB0aGUgdGhyZWFkJ3MgdG9wbW9zdCBmdW5jdGlv biBjbG9uZSgzKSAoQlogMjE2NzExKS4KIFBhdGNoMjE0OiBnZGItNi41LWJ6MjE2NzExLWNsb25l LWlzLW91dGVybW9zdC5wYXRjaAogCi0jIFRyeSB0byByZWR1Y2Ugc2lkZWVmZmVjdHMgb2Ygc2tp cHBpbmcgcHBjIC5zbyBsaWJzIHRyYW1wb2xpbmVzIChCWiAyMTgzNzkpLgotUGF0Y2gyMTU6IGdk Yi02LjUtYnoyMTgzNzktcHBjLXNvbGliLXRyYW1wb2xpbmUtZml4LnBhdGNoCisjIFRlc3Qgc2lk ZWVmZmVjdHMgb2Ygc2tpcHBpbmcgcHBjIC5zbyBsaWJzIHRyYW1wb2xpbmVzIChCWiAyMTgzNzkp LgogUGF0Y2gyMTY6IGdkYi02LjUtYnoyMTgzNzktcHBjLXNvbGliLXRyYW1wb2xpbmUtdGVzdC5w YXRjaAogCiAjIEZpeCBsb2NrdXAgb24gdHJhbXBvbGluZSB2cy4gaXRzIGZ1bmN0aW9uIGxvb2t1 cDsgdW5yZXByb2R1Y2libGUgKEJaIDIxODM3OSkuCkBAIC0yNDEsNyArMjM2LDcgQEAgUGF0Y2gy Mjk6IGdkYi02LjMtYnoxNDA1MzItcHBjLXVud2luZGluZy10ZXN0LnBhdGNoCiBQYXRjaDIzMTog Z2RiLTYuMy1iejIwMjY4OS1leGVjLWZyb20tcHRocmVhZC10ZXN0LnBhdGNoCiAKICMgQmFja3Bv cnRlZCBmaXh1cHMgcG9zdCB0aGUgc291cmNlIHRhcmJhbGwuCi0jUGF0Y2gyMzI6IGdkYi11cHN0 cmVhbS5wYXRjaAorUGF0Y2gyMzI6IGdkYi11cHN0cmVhbS5wYXRjaAogCiAjIFRlc3RjYXNlIGZv ciBQUEMgUG93ZXI2L0RGUCBpbnN0cnVjdGlvbnMgZGlzYXNzZW1ibHkgKEJaIDIzMDAwMCkuCiBQ YXRjaDIzNDogZ2RiLTYuNi1iejIzMDAwMC1wb3dlcjYtZGlzYXNzZW1ibHktdGVzdC5wYXRjaApA QCAtMzQ0LDEzICszMzksNiBAQCBQYXRjaDMyNDogZ2RiLTYuOC1nbGliYy1oZWFkZXJzLWNvbXBh dC5wYXRjaAogIyBDcmVhdGUgYSBzaW5nbGUgYmluYXJ5IGBnZGInIGF1dG9kZXRlY3RpbmcgLS10 dWkgYnkgaXRzIGFyZ3ZbMF0uCiBQYXRjaDMyNjogZ2RiLTYuOC10dWktc2luZ2xlYmluYXJ5LnBh dGNoCiAKLSMgU3VwcG9ydCB0cmFuc3BhcmVudCBkZWJ1Z2dpbmcgb2YgaW5saW5lZCBmdW5jdGlv bnMgZm9yIGFuIG9wdGltaXplZCBjb2RlLgotIyBEaXNhYmxlIGJyZWFrLWJ5LW5hbWUgb24gaW5s aW5lZCBmdW5jdGlvbnMgZHVlIHRvIGEgcmVncmVzc2lvbiBvbiBwYXJhbWV0ZXJzCi0jIG9mIGlu bGluZWQgZnVuY3Rpb25zIGZhbHNlbHkgPG9wdGltaXplZCBvdXQ+IChCWiA1NTY5NzUgQ29tbWVu dCA4KS4KLSMgRGlzYWJsZSBhZGRvbiAoZmluaXNoKSBkdWUgdG8gaW5saW5lLWNtZHMuZXhwOiB1 cCBmcm9tIG91dGVyX2lubGluZTIgYXNzZXJ0LgotUGF0Y2gzNTA6IGdkYi02LjgtaW5saW5pbmct YWRkb24ucGF0Y2gKLVBhdGNoMzI4OiBnZGItNi44LWlubGluaW5nLWJ5LW5hbWUucGF0Y2gKLQog IyBGaXggUFJQU0lORk8gaW4gdGhlIGNvcmUgZmlsZXMgZHVtcGVkIGJ5IGdjb3JlIChCWiAyNTQy MjkpLgogUGF0Y2gzMjk6IGdkYi02LjgtYnoyNTQyMjktZ2NvcmUtcHJwc2luZm8ucGF0Y2gKIApA QCAtMzc0LDYgKzM2Miw3IEBAIFBhdGNoMzQ4OiBnZGItNi44LWJ6NDY2OTAxLWJhY2t0cmFjZS1m dWxsLXByZWxpbmtlZC5wYXRjaAogCiAjIFRoZSBtZXJnZWQgYnJhbmNoIGBhcmNoZXInIG9mOiBo dHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogUGF0Y2gzNDk6IGdk Yi1hcmNoZXIucGF0Y2gKK1BhdGNoNDIwOiBnZGItYXJjaGVyLWFkYS5wYXRjaAogCiAjIEZpeCBw YXJzaW5nIGVsZjY0LWkzODYgZmlsZXMgZm9yIGtkdW1wIFBBRSB2bWNvcmUgZHVtcHMgKEJaIDQ1 NzE4NykuCiAjIC0gVHVybiBvbiA2NC1iaXQgQkZEIHN1cHBvcnQsIGdsb2JhbGx5IGVuYWJsZSBB Q19TWVNfTEFSR0VGSUxFLgpAQCAtMzg1LDkgKzM3NCw2IEBAIFBhdGNoMzgxOiBnZGItc2ltdWx0 YW5lb3VzLXN0ZXAtcmVzdW1lLWJyZWFrcG9pbnQtdGVzdC5wYXRjaAogIyBGaXggR05VL0xpbnV4 IGNvcmUgb3BlbjogQ2FuJ3QgcmVhZCBwYXRobmFtZSBmb3IgbG9hZCBtYXA6IElucHV0L291dHB1 dCBlcnJvci4KIFBhdGNoMzgyOiBnZGItY29yZS1vcGVuLXZkc28td2FybmluZy5wYXRjaAogCi0j IEZpeCBjYWxsYmFjay1tb2RlIHJlYWRsaW5lLTYuMCByZWdyZXNzaW9uIGZvciBDVFJMLUMuCi1Q YXRjaDM5MDogZ2RiLXJlYWRsaW5lLTYuMC1zaWduYWwucGF0Y2gKLQogIyBGaXggc3lzY2FsbCBy ZXN0YXJ0cyBmb3IgYW1kNjQtPmkzODYgYmlhcmNoLgogUGF0Y2gzOTE6IGdkYi14ODZfNjQtaTM4 Ni1zeXNjYWxsLXJlc3RhcnQucGF0Y2gKIApAQCAtNDA0LDkgKzM5MCw2IEBAIFBhdGNoMzM1OiBn ZGItcmhlbDUtY29tcGF0LnBhdGNoCiAjIEZpeCByZWdyZXNzaW9uIGJ5IHB5dGhvbiBvbiBpYTY0 IGR1ZSB0byBzdGFsZSBjdXJyZW50IGZyYW1lLgogUGF0Y2gzOTc6IGdkYi1mb2xsb3ctY2hpbGQt c3RhbGUtcGFyZW50LnBhdGNoCiAKLSMgRml4IHJlbGF0ZWRfYnJlYWtwb2ludCBzdGFsZSByZWYg Y3Jhc2guCi1QYXRjaDQwMDogZ2RiLXN0YWxlLXJlbGF0ZWRfYnJlYWtwb2ludC5wYXRjaAotCiAj IFdvcmthcm91bmQgY2NhY2hlIG1ha2luZyBsaW5lbm8gbm9uLXplcm8gZm9yIGNvbW1hbmQtbGlu ZSBkZWZpbml0aW9ucy4KIFBhdGNoNDAzOiBnZGItY2NhY2hlLXdvcmthcm91bmQucGF0Y2gKIApA QCAtNDI5LDYgKzQxMiwxMjEgQEAgUGF0Y2g0MTI6IGdkYi11bnVzZWQtcmV2ZXJ0LnBhdGNoCiAj IEZpeCBpMzg2K3g4Nl82NCByd2F0Y2grYXdhdGNoIGJlZm9yZSBydW4sIHJlZ3Jlc3Npb24gYWdh aW5zdCA2LjggKEJaIDU0MTg2NikuCiBQYXRjaDQxNzogZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZv cmUtcnVuLnBhdGNoCiAKKyMgUmVtb3ZlIGZhbHNlIGdkYl9hc3NlcnQgb24gJHNwIHVuZGVyZmxv dy4KK1BhdGNoNDIyOiBnZGItaW5mY2FsbC1zcC11bmRlcmZsb3cucGF0Y2gKKworIyBGaXggZG91 YmxlLWZyZWUgb24gc3RkOjp0ZXJtaW5hdGUgaGFuZGxlciAoVG9tIFRyb21leSwgQlogNTYyOTc1 KS4KK1BhdGNoNDI5OiBnZGItYno1NjI5NzUtc3RkLXRlcm1pbmF0ZS1kb3VibGUtZnJlZS5wYXRj aAorCisjIFBJRTogRml4IGJhY2sgcmUtcmV1bi4KK1BhdGNoNDMwOiBnZGItcGllLXJlcnVuLnBh dGNoCisKKyMgRG8gbm90IGNvbnNpZGVyIG1lbW9yeSBlcnJvciBvbiByZWFkaW5nIF9yX2RlYnVn LT5yX21hcCBhcyBmYXRhbCAoQlogNTc2NzQyKS4KK1BhdGNoNDMyOiBnZGItc29saWItbWVtb3J5 LWVycm9yLW5vbmZhdGFsLnBhdGNoCisKKyMgdGVzdHN1aXRlOiBGaXggdW5zdGFibGUgcmVzdWx0 cyBvZiBnZGIuYmFzZS9wcmVsaW5rLmV4cC4KK1BhdGNoNDMzOiBnZGItNi43LXRlc3RzdWl0ZS1z dGFibGUtcmVzdWx0cy1wcmVsaW5rLnBhdGNoIAorCisjIFtwYXRjaCAxLzZdIFBJRTogQXR0YWNo IGJpbmFyeSBldmVuIGFmdGVyIHJlLXByZWxpbmtlZCB1bmRlcm5lYXRoCisjIFtwYXRjaCAyLzZd IFBJRTogQXR0YWNoIGJpbmFyeSBldmVuIGFmdGVyIGxkLnNvIHJlLXByZWxpbmtlZCB1bmRlcm5l YXRoCisjIFtwYXRjaCAzLzZdIFBJRTogRml4IG9jY2FzaW9uYWwgZXJyb3IgYXR0YWNoaW5nIGk2 ODYgYmluYXJ5CitQYXRjaDQzNDogZ2RiLXBpZS0xb2Y2LXJlcHJlbGlua2VkLWJpbi5wYXRjaAor UGF0Y2g0MzU6IGdkYi1waWUtMm9mNi1yZXByZWxpbmtlZC1sZC5wYXRjaAorUGF0Y2g0MzY6IGdk Yi1waWUtM29mNi1yZWxvY2F0ZS1vbmNlLnBhdGNoCisKKyMgW2V4cHItY3VtdWxhdGl2ZV0gdXNp bmctZGlyZWN0aXZlOiBGaXggbWVtb3J5IGxlYWsgKFNhbWkgV2FnaWFhbGxhKS4KK1BhdGNoNDM3 OiBnZGItdXNpbmctZGlyZWN0aXZlLWxlYWsucGF0Y2gKKworIyBGaXggZGFuZ2xpbmcgZGlzcGxh eXMgaW4gc2VwYXJhdGUgZGVidWdpbmZvIChCWiA1NzQ0ODMpLgorUGF0Y2g0Mzg6IGdkYi1iejU3 NDQ4My1kaXNwbGF5LXNlcGRlYnVnLnBhdGNoCisKKyMgU3VwcG9ydCBBVlggcmVnaXN0ZXJzIChC WiA1NzgyNTApLgorUGF0Y2g0Mzk6IGdkYi1iejU3ODI1MC1hdngtMDFvZjEwLnBhdGNoCitQYXRj aDQ0MDogZ2RiLWJ6NTc4MjUwLWF2eC0wMm9mMTAucGF0Y2gKK1BhdGNoNDQxOiBnZGItYno1Nzgy NTAtYXZ4LTAzb2YxMC5wYXRjaAorUGF0Y2g0NDI6IGdkYi1iejU3ODI1MC1hdngtMDRvZjEwLnBh dGNoCitQYXRjaDQ0MzogZ2RiLWJ6NTc4MjUwLWF2eC0wNW9mMTAucGF0Y2gKK1BhdGNoNDQ0OiBn ZGItYno1NzgyNTAtYXZ4LTA2b2YxMC5wYXRjaAorUGF0Y2g0NDU6IGdkYi1iejU3ODI1MC1hdngt MDdvZjEwLnBhdGNoCitQYXRjaDQ0NjogZ2RiLWJ6NTc4MjUwLWF2eC0wOG9mMTAucGF0Y2gKK1Bh dGNoNDQ3OiBnZGItYno1NzgyNTAtYXZ4LTA5b2YxMC5wYXRjaAorUGF0Y2g0NDg6IGdkYi1iejU3 ODI1MC1hdngtMTBvZjEwLnBhdGNoCitQYXRjaDQ0OTogZ2RiLWJ6NTc4MjUwLWF2eC0xMG9mMTAt cHBjLnBhdGNoCisKKyMgRml4IGNyYXNoIG9uIEMrKyB0eXBlcyBpbiBzb21lIGRlYnVnIGluZm8g ZmlsZXMgKEJaIDU3NTI5MiwgS2VpdGggU2VpdHopLgorIyBUZW1wb3JhcmlseSB3b3JrYXJvdW5k IHRoZSBjcmFzaCBvZiBCWiA1NzUyOTIgYXMgdGhlcmUgd2FzIG5vdyBCWiA1ODU0NDUuCisjIFJl LWVuYWJsZSB0aGUgQlogNTc1MjkyIGFuZCBCWiA1ODU0NDUgQysrIGZpeCB1c2luZyBhbiB1cGRh dGVkIHBhdGNoLgorUGF0Y2g0NTE6IGdkYi1iejU3NTI5Mi1kZWxheWVkLXBoeXNuYW1lLnBhdGNo CitQYXRjaDQ1NTogZ2RiLWJ6NTc1MjkyLXZvaWQtd29ya2Fyb3VuZC5wYXRjaAorCisjIFByZXR0 eSBwcmludGVycyBub3Qgd2VsbCBkb2N1bWVudGVkIChCWiA1NzA2MzUsIFRvbSBUcm9tZXksIEph biBLcmF0b2NodmlsKS4KK1BhdGNoNDUyOiBnZGItYno1NzA2MzUtcHJldHR5cHJpbnQtZG9jMS5w YXRjaAorUGF0Y2g0NTM6IGdkYi1iejU3MDYzNS1wcmV0dHlwcmludC1kb2MyLnBhdGNoCisKKyMg Rml4IGNyYXNoIHdoZW4gdXNpbmcgR05VIElGVU5DIGNhbGwgZnJvbSBicmVha3BvaW50IGNvbmRp dGlvbi4KK1BhdGNoNDU0OiBnZGItYno1Mzk1OTAtZ251LWlmdW5jLWZpeC1jb25kLnBhdGNoCisK KyMgRmFpbCBncmFjZWZ1bGx5IGlmIHRoZSBfVW53aW5kX0RlYnVnSG9vayBhcmcuIGlzIG9wdGlt aXplZCBvdXQgKFRvbSBUcm9tZXkpLgorIyBNYWtlIF9VbndpbmRfRGVidWdIb29rIGluZGVwZW5k ZW50IGZyb20gc3RlcC1yZXN1bWUgYnJlYWtwb2ludCAoVG9tIFRyb21leSkuCitQYXRjaDQ1Njog Z2RiLXVud2luZC1kZWJ1Z2hvb2stc2FmZS1mYWlsLnBhdGNoCitQYXRjaDQ1NzogZ2RiLXVud2lu ZC1kZWJ1Z2hvb2stc3RlcC1pbmRlcGVuZGVudC5wYXRjaAorCisjIHRlc3RzdWl0ZTogRml4IGdk Yi5iYXNlL3ZsYS1vdmVyZmxvdy5leHAgRkFJTGluZyBvbiBzMzkweCAoQlogNTkwNjM1KS4KK1Bh dGNoNDU4OiBnZGItYXJjaGVyLXZsYS10ZXN0LW9vbS5wYXRjaAorCisjIFdvcmthcm91bmQgbm9u LXN0b3AgbW9yaWJ1bmQgbG9jYXRpb25zIGV4cGxvaXRlZCBieSBrZXJuZWwgdXRyYWNlIChCWiA1 OTA2MjMpLgorUGF0Y2g0NTk6IGdkYi1tb3JpYnVuZC11dHJhY2Utd29ya2Fyb3VuZC5wYXRjaAor CisjIEZpeCBjcmFzaCBvbiBWTEEgYm91bmQgcmVmZXJlbmNpbmcgYW4gb3B0aW1pemVkLW91dCB2 YXJpYWJsZSAoQlogNTkxODc5KS4KK1BhdGNoNDYwOiBnZGItYXJjaGVyLXZsYS1yZWYtb3B0aW1p emVkb3V0LnBhdGNoCisKKyMgUmVtb3ZlIGNvcmUgZmlsZSB3aGVuIHN0YXJ0aW5nIGEgcHJvY2Vz cyAoQlogNTk0NTYwKS4KK1BhdGNoNDYxOiBnZGItYno1OTQ1NjAtY29yZS12cy1wcm9jZXNzLnBh dGNoCisKKyMgSW1wb3J0IGZpeCBvZiBUVUkgbGF5b3V0IGludGVybmFsIGVycm9yIChCWiA1OTU0 NzUpLgorUGF0Y2g0NjI6IGdkYi1iejU5NTQ3NS10dWktbGF5b3V0LnBhdGNoCisKKyMgRml4IGFu ZCBzdXBwb3J0IERXX09QXypwaWVjZSAoVG9tIFRyb21leSwgQlogNTg5NDY3KS4KK1BhdGNoNDYz OiBnZGItYno1ODk0NjctcGllY2VzMDFvZjQucGF0Y2gKK1BhdGNoNDY0OiBnZGItYno1ODk0Njct cGllY2VzMDJvZjQucGF0Y2gKK1BhdGNoNDY1OiBnZGItYno1ODk0NjctcGllY2VzMDNvZjQucGF0 Y2gKK1BhdGNoNDY2OiBnZGItYno1ODk0NjctcGllY2VzMW9mNC5wYXRjaAorUGF0Y2g0Njc6IGdk Yi1iejU4OTQ2Ny1waWVjZXMyb2Y0LnBhdGNoCitQYXRjaDQ2ODogZ2RiLWJ6NTg5NDY3LXBpZWNl czNvZjQucGF0Y2gKK1BhdGNoNDY5OiBnZGItYno1ODk0NjctcGllY2VzNG9mNC5wYXRjaAorUGF0 Y2g0NzE6IGdkYi1iejU4OTQ2Ny1waWVjZXMtdmxhLWNvbXBhdC5wYXRjaAorCisjIEZpeCBmb2xs b3ctZXhlYyBmb3IgQysrIHByb2dyYW1zIChidWdyZXBvcnRlZCBieSBNYXJ0aW4gU3RyYW5za3kp LgorUGF0Y2g0NzA6IGdkYi1hcmNoZXItbmV4dC1vdmVyLXRocm93LWN4eC1leGVjLnBhdGNoCisK KyMgRml4IEFETCBhbm9ueW1vdXMgdHlwZSBjcmFzaCAoQlogNjAwNzQ2LCBTYW1pIFdhZ2lhYWxs YSkuCitQYXRjaDQ3MjogZ2RiLWJ6NjAwNzQ2LWtvZW5pZy1jcmFzaC5wYXRjaAorCisjIEJhY2tw b3J0IERXQVJGLTQgc3VwcG9ydCAoQlogNjAxODg3LCBUb20gVHJvbWV5KS4KK1BhdGNoNDczOiBn ZGItYno2MDE4ODctZHdhcmY0LTFvZjIucGF0Y2gKK1BhdGNoNDc0OiBnZGItYno2MDE4ODctZHdh cmY0LTJvZjIucGF0Y2gKK1BhdGNoNDc1OiBnZGItYno2MDE4ODctZHdhcmY0LXJoLXRlc3QucGF0 Y2gKKworIyBGaXggb2JzdGFjayBjb3JydXB0aW9ucyBvbiBDKysgKEJaIDYwNjE4NSwgQ2hyaXMg TW9sbGVyLCBKYW4gS3JhdG9jaHZpbCkuCitQYXRjaDQ3NjogZ2RiLWJ6NjA2MTg1LW9ic3RhY2st MW9mNS5wYXRjaAorUGF0Y2g0Nzc6IGdkYi1iejYwNjE4NS1vYnN0YWNrLTJvZjUucGF0Y2gKK1Bh dGNoNDc4OiBnZGItYno2MDYxODUtb2JzdGFjay0zb2Y1LnBhdGNoCitQYXRjaDQ3OTogZ2RiLWJ6 NjA2MTg1LW9ic3RhY2stNG9mNS5wYXRjaAorUGF0Y2g0ODA6IGdkYi1iejYwNjE4NS1vYnN0YWNr LTVvZjUucGF0Y2gKKworIyBJbXByb3ZlIHN1cHBvcnQgZm9yIHR5cGVkZWZzIGluIGNsYXNzZXMg KEJaIDYwMjMxNCkuCitQYXRjaDQ4MTogZ2RiLWJ6NjAyMzE0LXB0eXBlLWNsYXNzLXR5cGVkZWYt MW9mMy5wYXRjaAorUGF0Y2g0ODI6IGdkYi1iejYwMjMxNC1wdHlwZS1jbGFzcy10eXBlZGVmLTJv ZjMucGF0Y2gKK1BhdGNoNDgzOiBnZGItYno2MDIzMTQtcHR5cGUtY2xhc3MtdHlwZWRlZi0zb2Yz LnBhdGNoCisKKyMgRml4IGBzZXQgcHJpbnQgb2JqZWN0IG9uJyBmb3Igc29tZSBub24tZHluYW1p YyBjbGFzc2VzIChCWiA2MDY2NjApLgorUGF0Y2g0ODQ6IGdkYi1iejYwNjY2MC1wcmludC1vYmpl Y3Qtbm9udmlydHVhbC5wYXRjaAorCisjIFByaW50IDJEIEMrKyB2ZWN0b3JzIGFzIG1hdHJpY2Vz IChCWiA1NjI3NjMsIHNvdXJjZXdhcmUxMDY1OSwgQ2hyaXMgTW9sbGVyKS4KK1BhdGNoNDg1OiBn ZGItYno1NjI3NjMtcHJldHR5LXByaW50LTJkLXZlY3RvcnMtcHJlcmVxLnBhdGNoCitQYXRjaDQ4 NjogZ2RiLWJ6NTYyNzYzLXByZXR0eS1wcmludC0yZC12ZWN0b3JzLnBhdGNoCitQYXRjaDQ4Nzog Z2RiLWJ6NTYyNzYzLXByZXR0eS1wcmludC0yZC12ZWN0b3JzLWxpYnN0ZGN4eC5wYXRjaAorCiBC dWlsZFJlcXVpcmVzOiBuY3Vyc2VzLWRldmVsJXs/X2lzYX0gdGV4aW5mbyBnZXR0ZXh0IGZsZXgg Ymlzb24gZXhwYXQtZGV2ZWwlez9faXNhfQogUmVxdWlyZXM6IHJlYWRsaW5lJXs/X2lzYX0KIEJ1 aWxkUmVxdWlyZXM6IHJlYWRsaW5lLWRldmVsJXs/X2lzYX0KQEAgLTQ1OSw3ICs1NTcsNyBAQCBC dWlsZFJlcXVpcmVzOiBsaWJzdGRjKyslez9faXNhfQogJWRlZmluZSBiaXRzX290aGVyICV7P19p c2F9CiAlaWYgMCV7IT9lbDU6MX0KICVpZmFyY2ggczM5MHgKLSVkZWZpbmUgYml0c19vdGhlciAo JXtfX2lzYV9uYW1lfS0zMSkKKyVkZWZpbmUgYml0c19vdGhlciAoJXtfX2lzYV9uYW1lfS0zMikK ICVlbHNlICMhczM5MHgKICVpZmFyY2ggcHBjCiAlZGVmaW5lIGJpdHNfb3RoZXIgKCV7X19pc2Ff bmFtZX0tNjQpCkBAIC01MzksNyArNjM3LDggQEAgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLCBhbGxv d3MgeW91IHRvIGRlYnVnIHByb2dyYW1zIHdyaXR0ZW4gaW4gQywgQysrLAogSmF2YSwgYW5kIG90 aGVyIGxhbmd1YWdlcywgYnkgZXhlY3V0aW5nIHRoZW0gaW4gYSBjb250cm9sbGVkIGZhc2hpb24K IGFuZCBwcmludGluZyB0aGVpciBkYXRhLgogCi1UaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBwcm9n cmFtIHRoYXQgYWxsb3dzIHlvdSB0byBydW4gR0RCIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgdGhh biB0aGUgb25lIHdoaWNoIGlzIHJ1bm5pbmcgdGhlIHByb2dyYW0gYmVpbmcgZGVidWdnZWQuCitU aGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBwcm9ncmFtIHRoYXQgYWxsb3dzIHlvdSB0byBydW4gR0RC IG9uIGEgZGlmZmVyZW50CittYWNoaW5lIHRoYW4gdGhlIG9uZSB3aGljaCBpcyBydW5uaW5nIHRo ZSBwcm9ncmFtIGJlaW5nIGRlYnVnZ2VkLgogJWVuZGlmICMgMCV7IT9lbDU6MX0KIAogJXByZXAK QEAgLTU2Myw5ICs2NjIsOSBAQCBybSAtZiBnZGIvanYtZXhwLmMgZ2RiL20yLWV4cC5jIGdkYi9v YmpjLWV4cC5jIGdkYi9wLWV4cC5jCiAKICVpZiAwJXshP193aXRoX3Vwc3RyZWFtOjF9CiAKLSNw YXRjaDIzMiAtcDEKKyVwYXRjaDIzMiAtcDEKICVwYXRjaDM0OSAtcDEKLSVwYXRjaDEyNCAtcDEK KyVwYXRjaDQyMCAtcDEKICVwYXRjaDEgLXAxCiAlcGF0Y2gzIC1wMQogCkBAIC01OTYsNyArNjk1 LDYgQEAgcm0gLWYgZ2RiL2p2LWV4cC5jIGdkYi9tMi1leHAuYyBnZGIvb2JqYy1leHAuYyBnZGIv cC1leHAuYwogJXBhdGNoMTY5IC1wMQogJXBhdGNoMTcwIC1wMQogJXBhdGNoMTc2IC1wMQotJXBh dGNoMTc3IC1wMQogJXBhdGNoMTg4IC1wMQogJXBhdGNoMTkwIC1wMQogJXBhdGNoMTk0IC1wMQpA QCAtNjA5LDcgKzcwNyw2IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29i amMtZXhwLmMgZ2RiL3AtZXhwLmMKICVwYXRjaDIxMSAtcDEKICVwYXRjaDIxMyAtcDEKICVwYXRj aDIxNCAtcDEKLSVwYXRjaDIxNSAtcDEKICVwYXRjaDIxNiAtcDEKICVwYXRjaDIxNyAtcDEKICVw YXRjaDIyNSAtcDEKQEAgLTY1MSw4ICs3NDgsNiBAQCBybSAtZiBnZGIvanYtZXhwLmMgZ2RiL20y LWV4cC5jIGdkYi9vYmpjLWV4cC5jIGdkYi9wLWV4cC5jCiAlcGF0Y2gzMjIgLXAxCiAlcGF0Y2gz MjQgLXAxCiAlcGF0Y2gzMjYgLXAxCi0jIyNwYXRjaDM1MCAtcDEKLSMjI3BhdGNoMzI4IC1wMQog JXBhdGNoMzI5IC1wMQogJXBhdGNoMzMwIC1wMQogJXBhdGNoMzMxIC1wMQpAQCAtNjYzLDExICs3 NTgsOSBAQCBybSAtZiBnZGIvanYtZXhwLmMgZ2RiL20yLWV4cC5jIGdkYi9vYmpjLWV4cC5jIGdk Yi9wLWV4cC5jCiAlcGF0Y2gzNjAgLXAxCiAlcGF0Y2gzODEgLXAxCiAlcGF0Y2gzODIgLXAxCi0l cGF0Y2gzOTAgLXAxCiAlcGF0Y2gzOTEgLXAxCiAlcGF0Y2gzOTIgLXAxCiAlcGF0Y2gzOTcgLXAx Ci0lcGF0Y2g0MDAgLXAxCiAlcGF0Y2g0MDMgLXAxCiAlcGF0Y2g0MDQgLXAxCiAlcGF0Y2g0MDUg LXAxCkBAIC02NzgsNiArNzcxLDY0IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMg Z2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKICVwYXRjaDQwOCAtcDEKICVwYXRjaDQxMiAtcDEK ICVwYXRjaDQxNyAtcDEKKyVwYXRjaDQyMiAtcDEKKyVwYXRjaDQyOSAtcDEKKyVwYXRjaDQzMCAt cDEKKyVwYXRjaDQzMiAtcDEKKyVwYXRjaDQzMyAtcDEKKyVwYXRjaDQzNCAtcDEKKyVwYXRjaDQz NSAtcDEKKyVwYXRjaDQzNiAtcDEKKyVwYXRjaDQzNyAtcDEKKyVwYXRjaDQzOCAtcDEKKyVwYXRj aDQzOSAtcDEKKyVwYXRjaDQ0MCAtcDEKKyVwYXRjaDQ0MSAtcDEKKyVwYXRjaDQ0MiAtcDEKKyVw YXRjaDQ0MyAtcDEKKyVwYXRjaDQ0NCAtcDEKKyVwYXRjaDQ0NSAtcDEKKyVwYXRjaDQ0NiAtcDEK KyVwYXRjaDQ0NyAtcDEKKyVwYXRjaDQ0OCAtcDEKKyVwYXRjaDQ0OSAtcDEKKyVwYXRjaDQ1MSAt cDEKKyVwYXRjaDQ1MiAtcDEKKyVwYXRjaDQ1MyAtcDEKKyVwYXRjaDQ1NCAtcDEKKyVwYXRjaDQ1 NSAtcDEKKyVwYXRjaDQ1NiAtcDEKKyVwYXRjaDQ1NyAtcDEKKyVwYXRjaDQ1OCAtcDEKKyVwYXRj aDQ1OSAtcDEKKyVwYXRjaDQ2MCAtcDEKKyVwYXRjaDQ2MSAtcDEKKyVwYXRjaDQ2MiAtcDEKKyVw YXRjaDQ2MyAtcDEKKyVwYXRjaDQ2NCAtcDEKKyVwYXRjaDQ2NSAtcDEKKyVwYXRjaDQ2NiAtcDEK KyVwYXRjaDQ2NyAtcDEKKyVwYXRjaDQ2OCAtcDEKKyVwYXRjaDQ2OSAtcDEKKyVwYXRjaDQ3MSAt cDEKKyVwYXRjaDQ3MCAtcDEKKyVwYXRjaDQ3MiAtcDEKKyVwYXRjaDQ3MyAtcDEKKyVwYXRjaDQ3 NCAtcDEKKyVwYXRjaDQ3NSAtcDEKKyVwYXRjaDQ3NiAtcDEKKyVwYXRjaDQ3NyAtcDEKKyVwYXRj aDQ3OCAtcDEKKyVwYXRjaDQ3OSAtcDEKKyVwYXRjaDQ4MCAtcDEKKyVwYXRjaDQ4MSAtcDEKKyVw YXRjaDQ4MiAtcDEKKyVwYXRjaDQ4MyAtcDEKKyVwYXRjaDQ4NCAtcDEKKyVwYXRjaDQ4NSAtcDEK KyVwYXRjaDQ4NiAtcDEKKyVwYXRjaDQ4NyAtcDEKIAogJXBhdGNoNDE1IC1wMQogJXBhdGNoMzkz IC1wMQpAQCAtNjg1LDcgKzgzNiw3IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMg Z2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKICMgUGF0Y2g0MTU6IGdkYi02LjYtYnVpbGRpZC1s b2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKICMgQ3VycmVudGx5IGRpc2FibGVkIGZvciBSSEVMIGFz IGl0IGlzIGEgbmV3IGV4cGVyaW1lbnRhbCBmZWF0dXJlIG5vdCBwcmVzZW50CiAjIGluIEZTRiBH REIgYW5kIHBvc3NpYmx5IGFmZmVjdGluZyBuZXcgdXNlciBzY3JpcHRzLgotJWlmIDAleyE/cmhl bDoxfQorJWlmIDAlez9yaGVsOjF9CiAlcGF0Y2g0MTUgLXAxIC1SCiAlZW5kaWYKICVpZiAwJXsh P2VsNToxfQpAQCAtOTc4LDcgKzExMjksNyBAQCBmaQogCiAlZmlsZXMKICVkZWZhdHRyKC0scm9v dCxyb290KQotJWRvYyBDT1BZSU5HIENPUFlJTkcuTElCIFJFQURNRSBORVdTCislZG9jIENPUFlJ TkczIENPUFlJTkcgQ09QWUlORy5MSUIgUkVBRE1FIE5FV1MKICV7X2JpbmRpcn0vZ2NvcmUKICV7 X2JpbmRpcn0vZ2RiCiAle19iaW5kaXJ9L2dkYnR1aQpAQCAtMTAxMCw2ICsxMTYxLDE0OCBAQCBm aQogJWVuZGlmCiAKICVjaGFuZ2Vsb2cKKyogU3VuIEp1bCAxMSAyMDEwIEphbiBLcmF0b2Nodmls IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMS0yOC5mYzE0CistIFJlYnVpbGQgZm9y IEZlZG9yYSAxNC4KKworKiBXZWQgSnVuIDMwIDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xLTI4LmZjMTMKKy0gUHJpbnQgMkQgQysrIHZlY3RvcnMg YXMgbWF0cmljZXMgKEJaIDU2Mjc2Mywgc291cmNld2FyZTEwNjU5LCBDaHJpcyBNb2xsZXIpLgor CisqIFdlZCBKdW4gMzAgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4gLSA3LjEtMjcuZmMxMworLSBGaXggb2JzdGFjayBjb3JydXB0aW9ucyBvbiBDKysgKEJa IDYwNjE4NSwgQ2hyaXMgTW9sbGVyLCBKYW4gS3JhdG9jaHZpbCkuCistIEltcHJvdmUgc3VwcG9y dCBmb3IgdHlwZWRlZnMgaW4gY2xhc3NlcyAoQlogNjAyMzE0KS4KKy0gRml4IGBzZXQgcHJpbnQg b2JqZWN0IG9uJyBmb3Igc29tZSBub24tZHluYW1pYyBjbGFzc2VzIChCWiA2MDY2NjApLgorCisq IFdlZCBKdW4gIDkgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4gLSA3LjEtMjYuZmMxMworLSBCYWNrcG9ydCBEV0FSRi00IHN1cHBvcnQgKEJaIDYwMTg4Nywg VG9tIFRyb21leSkuCisKKyogV2VkIEp1biAgOSAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMS0yNS5mYzEzCistIEZpeCBBREwgYW5vbnltb3VzIHR5 cGUgY3Jhc2ggKEJaIDYwMDc0NiwgU2FtaSBXYWdpYWFsbGEpLgorCisqIFR1ZSBKdW4gIDEgMjAx MCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtMjQuZmMx MworLSBGaXggY3Jhc2ggb24gL3Byb2MvUElEL3N0YXQgcmFjZSBkdXJpbmcgaW5mZXJpb3IgZXhp dCAoQlogNTk2NzUxKS4KKy0gdGVzdHN1aXRlOiBnZGIudGhyZWFkcy93YXRjaHRocmVhZHMtcmVv cmRlci5leHAga2VybmVsLTIuNi4zMyBjb21wYXQuIGZpeC4KKworKiBTdW4gTWF5IDMwIDIwMTAg SmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xLTIzLmZjMTMK Ky0gRml4IGFuZCBzdXBwb3J0IERXX09QXypwaWVjZSAoVG9tIFRyb21leSwgQlogNTg5NDY3KS4K Ky0gRml4IGZvbGxvdy1leGVjIGZvciBDKysgcHJvZ3JhbXMgKGJ1Z3JlcG9ydGVkIGJ5IE1hcnRp biBTdHJhbnNreSkuCisKKyogTW9uIE1heSAyNCAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMS0yMi5mYzEzCistIFJlbW92ZSBjb3JlIGZpbGUgd2hl biBzdGFydGluZyBhIHByb2Nlc3MgKEJaIDU5NDU2MCkuCistIEZpeCBsb2NrIHVwIG9uIGxvb3Bz IGluIHRoZSBzb2xpYiBjaGFpbiAoQlogNTkzOTI2KS4KKy0gSW1wb3J0IGZpeCBvZiBUVUkgbGF5 b3V0IGludGVybmFsIGVycm9yIChCWiA1OTU0NzUpLgorCisqIFN1biBNYXkgMTYgMjAxMCBKYW4g S3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtMjEuZmMxMworLSBN YWtlIGdkYi02LjgtYnoyNTQyMjktZ2NvcmUtcHJwc2luZm8ucGF0Y2ggUkhFTC01IC91c3IvYmlu L3BhdGNoIGNvbXBhdGlibGUKKyAgKGJ1Z3JlcG9ydGVkIGJ5IEpvbmFzIE1hZWJlKS4KKworKiBU aHUgTWF5IDEzIDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ IC0gNy4xLTIwLmZjMTMKKy0gRml4IGNyYXNoIG9uIFZMQSBib3VuZCByZWZlcmVuY2luZyBhbiBv cHRpbWl6ZWQtb3V0IHZhcmlhYmxlIChCWiA1OTE4NzkpLgorLSBSZS1lbmFibGUgdGhlIEJaIDU3 NTI5MiBhbmQgQlogNTg1NDQ1IEMrKyBmaXggdXNpbmcgYW4gdXBkYXRlZCBwYXRjaC4KKworKiBX ZWQgTWF5IDEyIDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ IC0gNy4xLTE5LmZjMTMKKy0gQmFja3BvcnQgPHRhYj4tY29tcGxldGlvbiBidWcgb24gYW5vbnlt b3VzIHN0cnVjdHVyZSBmaWVsZHMgKEJaIDU5MDY0OCkuCistIHRlc3RzdWl0ZTogRml4IGdkYi5i YXNlL3ZsYS1vdmVyZmxvdy5leHAgRkFJTGluZyBvbiBzMzkweCAoQlogNTkwNjM1KS4KKy0gV29y a2Fyb3VuZCBub24tc3RvcCBtb3JpYnVuZCBsb2NhdGlvbnMgZXhwbG9pdGVkIGJ5IGtlcm5lbCB1 dHJhY2UgKEJaIDU5MDYyMykuCisKKyogVGh1IEFwciAyOSAyMDEwIEphbiBLcmF0b2NodmlsIDxq YW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMS0xOC5mYzEzCistIE1ha2UgX1Vud2luZF9E ZWJ1Z0hvb2sgaW5kZXBlbmRlbnQgZnJvbSBzdGVwLXJlc3VtZSBicmVha3BvaW50IChUb20gVHJv bWV5KS4KKworKiBUdWUgQXByIDI3IDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+IC0gNy4xLTE3LmZjMTMKKy0gRmFpbCBncmFjZWZ1bGx5IGlmIHRoZSBfVW53 aW5kX0RlYnVnSG9vayBhcmcuIGlzIG9wdGltaXplZCBvdXQgKFRvbSBUcm9tZXkpLgorCisqIFR1 ZSBBcHIgMjcgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4g LSA3LjEtMTYuZmMxMworLSBUZW1wb3JhcmlseSB3b3JrYXJvdW5kIHRoZSBjcmFzaCBvZiBCWiA1 NzUyOTIgYXMgdGhlcmUgd2FzIG5vdyBCWiA1ODU0NDUuCisKKyogTW9uIEFwciAyNiAyMDEwIEph biBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMS0xNS5mYzEzCist IEZpeCBjcmFzaCB3aGVuIHVzaW5nIEdOVSBJRlVOQyBjYWxsIGZyb20gYnJlYWtwb2ludCBjb25k aXRpb24uCistIEF2b2lkIGludGVybmFsIGVycm9yIGJ5IGRpc2FibGluZyB0aGUgcHJldmlvdXMg QlogNTc1MjkyIGZpeCAoQlogNTg1NDQ1KS4KKworKiBUaHUgQXByIDIyIDIwMTAgSmFuIEtyYXRv Y2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xLTE0LmZjMTMKKy0gRml4IGNy YXNoIG9uIEMrKyB0eXBlcyBpbiBzb21lIGRlYnVnIGluZm8gZmlsZXMgKEJaIDU3NTI5MiwgS2Vp dGggU2VpdHopLgorLSBQcmV0dHkgcHJpbnRlcnMgbm90IHdlbGwgZG9jdW1lbnRlZCAoQlogNTcw NjM1LCBUb20gVHJvbWV5LCBKYW4gS3JhdG9jaHZpbCkuCisKKyogRnJpIEFwciAxNiAyMDEwIEph biBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMS0xMy5mYzEzCist IGFyY2hlci1qYW5rcmF0b2NodmlsLWZlZG9yYTEzIGNvbW1pdDogMzk5OThjNDk2OTg4ZmFhYTE1 MDljYzZhYjc2YjVjNDc3NzY1OWJmNAorLSBbdmxhXSBGaXggYm91bmRhcmllcyBmb3IgYXJyYXlz IG9uIC1PMiAtZyAoc3VwcG9ydCBib3VuZC1yZWYtPnZhci0+bG9jbGlzdCkuCistIFt2bGFdIEZp eCBjb3B5X3R5cGVfcmVjdXJzaXZlIGZvciB1bmF2YWlsYWJsZSB2YXJpYWJsZXMgKEpvb3N0IHZh biBkZXIgU2x1aXMpLgorCisqIFN1biBBcHIgMTEgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtMTIuZmMxMworLSBGaXggY3Jhc2ggb24gdHJ5aW5n IHRvIGxvYWQgaW52YWxpZCBleGVjdXRhYmxlIChCWiA1ODEyMTUpLgorCisqIFRodSBBcHIgIDgg MjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtMTEu ZmMxMworLSB0ZXN0c3VpdGU6IEZpeCBnZGIuYmFzZS9nc3RhY2suZXhwIGFsc28gZm9yIHBwYzY0 IGluZmVyaW9ycyAoZm9yIEJaIDU3OTc5MykuCisKKyogVGh1IEFwciAgOCAyMDEwIEphbiBLcmF0 b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMS0xMC5mYzEzCistIEZpeCBz MzkwIC0td2l0aCB0ZXN0c3VpdGUgQnVpbGRyZXF1aWVycyB0byBiZSAoczM5MC0zMikgKEJaIDU4 MDM0NywgQ2FpIFFpYW4pLgorCisqIFdlZCBBcHIgIDcgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtOS5mYzEzCistIEZpeCBnc3RhY2sgdG8gcHJp bnQgZXZlbiB0aGUgZnJhbWUgIzAuICBOZXcgZ2RiLmJhc2UvZ3N0YWNrLmV4cC4gIChCWiA1Nzk3 OTMpCistIE1lcmdlIGdkYi02LjMtZ3N0YWNrLXdpdGhvdXQtcGF0aC0yMDA2MDQxNC5wKiBpbnRv IGdkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnAqLAorICBubyByZWFsIGNvZGUgY2hhbmdlLgorCisq IE1vbiBBcHIgIDUgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4gLSA3LjEtOC5mYzEzCistIEZpeCBicmVha3BvaW50IGF0ICpfc3RhcnQgKEJaIDE2Mjc3NSwg YnVncmVwb3J0IGJ5IEpvaG4gUmVpc2VyKS4KKworKiBTYXQgQXByICAzIDIwMTAgSmFuIEtyYXRv Y2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xLTcuZmMxMworLSBGaXggcHBj IGJ1aWxkIG9mIHRoZSBBVlggcmVnaXN0ZXJzIHN1cHBvcnQgKGZvciBCWiA1NzgyNTApLgorCisq IFNhdCBBcHIgIDMgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4gLSA3LjEtNi5mYzEzCistIFN1cHBvcnQgQVZYIHJlZ2lzdGVycyAoQlogNTc4MjUwKS4KKwor KiBTYXQgQXByICAzIDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+IC0gNy4xLTUuZmMxMworLSBGaXggZGFuZ2xpbmcgZGlzcGxheXMgaW4gc2VwYXJhdGUgZGVi dWdpbmZvIChCWiA1NzQ0ODMpLgorCisqIFdlZCBNYXIgMzEgMjAxMCBKYW4gS3JhdG9jaHZpbCA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtNC5mYzEzCistIFJlbW92ZSBnZGItcmVh ZGxpbmUtNi4wLXNpZ25hbC5wYXRjaCB3aXRoIGEgYnVnIGNhdXNpbmcgY3Jhc2ggd2hpbGUgbm8g bG9uZ2VyCisgIHJlcXVpcmVkIHdpdGggRi0xMyByZWFkbGluZS02LjEgKEJaIDU3NTUxNikKKwor KiBNb24gTWFyIDI5IDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+IC0gNy4xLTMuZmMxMworLSBbZXhwci1jdW11bGF0aXZlXSB1c2luZy1kaXJlY3RpdmU6IEZp eCBtZW1vcnkgbGVhayAoU2FtaSBXYWdpYWFsbGEpLgorCisqIE1vbiBNYXIgMjkgMjAxMCBKYW4g S3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtMi5mYzEzCistIERy b3Agb2Jzb2xldGVkIGBnZGItYXJjaGVyLXBpZS0wMzE1LWJyZWFrcG9pbnRfYWRkcmVzc19tYXRj aC5wYXRjaCcuCistIERvIG5vdCBjb25zaWRlciBtZW1vcnkgZXJyb3Igb24gcmVhZGluZyBfcl9k ZWJ1Zy0+cl9tYXAgYXMgZmF0YWwgKEJaIDU3Njc0MikuCisgIC0gUElFOiBBdHRhY2ggYmluYXJ5 IGV2ZW4gYWZ0ZXIgcmUtcHJlbGlua2VkIHVuZGVybmVhdGguCisgIC0gUElFOiBBdHRhY2ggYmlu YXJ5IGV2ZW4gYWZ0ZXIgbGQuc28gcmUtcHJlbGlua2VkIHVuZGVybmVhdGguCisgIC0gUElFOiBG aXggb2NjYXNpb25hbCBlcnJvciBhdHRhY2hpbmcgaTY4NiBiaW5hcnkgKEJaIDU3Njc0MikuCist IHRlc3RzdWl0ZTogRml4IHVuc3RhYmxlIHJlc3VsdHMgb2YgZ2RiLmJhc2UvcHJlbGluay5leHAu CisKKyogVGh1IE1hciAyNSAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPiAtIDcuMS0xLmZjMTMKKy0gVXBkYXRlIHRvIG5ldyBGU0YgR0RCIHJlbGVhc2UuCisK KyogTW9uIE1hciAxNSAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQu Y29tPiAtIDcuMC45MC4yMDEwMDMxMi0yNC5mYzEzCistIERyb3AgZ2RiLTYuNS1iejIxODM3OS1w cGMtc29saWItdHJhbXBvbGluZS1maXgucGF0Y2ggaGF2aW5nIGZhbHNlIHN5bWJvbHMKKyAgcmVz b2x2aW5nIChyZWxhdGVkIHRvIEJaIDU3MzI3NykuCisKKyogRnJpIE1hciAxMiAyMDEwIEphbiBL cmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMC45MC4yMDEwMDMxMi0y My5mYzEzCistIFVwZGF0ZSB0byBuZXcgRlNGIEdEQiBzbmFwc2hvdC4KKy0gRml4IGRvdWJsZS1m cmVlIG9uIHN0ZDo6dGVybWluYXRlIGhhbmRsZXIgKFRvbSBUcm9tZXksIEJaIDU2Mjk3NSkuCisK KyogV2VkIE1hciAxMCAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQu Y29tPiAtIDcuMC45MC4yMDEwMDMwNi0yMi5mYzEzCistIEFub3RoZXIgTGljZW5zZSB1cGRhdGUu CisKKyogV2VkIE1hciAxMCAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPiAtIDcuMC45MC4yMDEwMDMwNi0yMS5mYzEzCistIFVwZGF0ZSBMaWNlbnNlIGZvciBh bGwgdGhlIGxpY2Vuc2VzIGNvbnRhaW5lZCBpbiAuc3JjLnJwbS4KKworKiBNb24gTWFyICA4IDIw MTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4wLjkwLjIw MTAwMzA2LTIwLmZjMTMKKy0gUmVtb3ZlIHVuYXBwbGllZDogZ2RiLTYuOC1pbmxpbmluZy1hZGRv bi5wYXRjaCBnZGItNi44LWlubGluaW5nLWJ5LW5hbWUucGF0Y2gKKworKiBNb24gTWFyICA4IDIw MTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4wLjkwLjIw MTAwMzA2LTE5LmZjMTMKKy0gSW5jbHVkZSBhbHNvICUlZG9jIENPUFlJTkczIChyZXZpZXcgYnkg UGV0ciBNYWNoYXRhKS4KKy0gUmVtb3ZlIFVSTCBmb3IgU291cmNlIChyZXZpZXcgYnkgTWF0ZWog Q2VwbCkuCisKKyogU3VuIE1hciAgNyAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZp bEByZWRoYXQuY29tPiAtIDcuMC45MC4yMDEwMDMwNi0xOC5mYzEzCistIGFyY2hlci1qYW5rcmF0 b2NodmlsLWZlZG9yYTEzIGNvbW1pdDogNTljMzVhMzFmMDk4MWEwZjBiODg0YjMyYzkxYWU2MzI1 YjIxMjZjZAorCisqIFN1biBGZWIgMjggMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4gLSA3LjAuNTAuMjAxMDAyMDMtMTcuZmMxMworLSBGaXggZmFsc2Ugd2Fy bmluZzogc2VjdGlvbiAuZ251LmxpYmxpc3Qgbm90IGZvdW5kIGluIC4uLgorLSBGaXggY3Jhc2gg b24gc3RhbGUgYWRkcmluZm8tPnNlY3RpbmRleCAobW9yZSBzZW5zaXRpdmUgZHVlIHRvIHRoZSBQ SUUgcGF0Y2gpLgorCisqIEZyaSBGZWIgMjYgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4gLSA3LjAuNTAuMjAxMDAyMDMtMTYuZmMxMworLSBGaXggaWE2NCBw YXJ0IG9mIHRoZSBidC1jbG9uZS1zdG9wLmV4cCBmaXguCistIEZpeCBnZGIuYWRhLyogcmVncmVz c2lvbnMgKEtlaXRoIFNlaXR6KS4KKy0gUmVtb3ZlIGZhbHNlIGdkYl9hc3NlcnQgb24gJHNwIHVu ZGVyZmxvdy4KKwogKiBNb24gRmViICA4IDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+IC0gNy4wLjUwLjIwMTAwMjAzLTE1LmZjMTMKIC0gRml4IGkzODYreDg2 XzY0IHJ3YXRjaCthd2F0Y2ggYmVmb3JlIHJ1biwgcmVncmVzc2lvbiBhZ2FpbnN0IDYuOCAoQlog NTQxODY2KS4KIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDg1Y2FhYjYu LjllNDA1YTggMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIg QEAKLTE3OWQ1ZTU0NTc1ZjdhNGQ4ZGZiZTQyM2UxZWU2Njc4ICBnZGItNy4wLjUwLjIwMTAwMjAz LnRhci5iejIKKzIxZGNlNjEwNDc2YzA1NDY4N2I1Mjc3MGQyZGRjNjU3ICBnZGItNy4xLnRhci5i ejIKIDA0ZTVjNGIxYjllNjMzNDIyY2M0ODk5MGZlNjE5NThkICBsaWJzdGRjKystdjMtcHl0aG9u LXIxNTU5NzgudGFyLmJ6Mgo=