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: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Enable IM gtk4 module Date: Sun, 31 May 2026 02:07:32 GMT Message-ID: <178019325245.1.3032604415915895918.rpms-ibus-823ed8c386d7@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: 823ed8c386d7d06fc9f38a7bfac78ce1a377c04a ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvaWJ1cwogICAgICAgICAgICBCcmFuY2ggOiBhdXRvdG9vbAogICAgICAgICAg ICBDb21taXQgOiA4MjNlZDhjMzg2ZDdkMDZmYzlmMzhhN2JmYWM3OGNlMWEzNzdjMDRhCiAgICAg ICAgICAgIEF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgogICAg ICAgICAgICBEYXRlICAgOiAyMDIxLTAxLTIyVDA5OjQxOjMxKzA5OjAwCiAgICAgICAgICAgIFN0 YXRzICA6ICsxNTE2Ly04IGluIDIgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRwczov L3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy84MjNlZDhjMzg2ZDdkMDZmYzlmMzhh N2JmYWM3OGNlMWEzNzdjMDRhP2JyYW5jaD1hdXRvdG9vbAoKICAgICAgICAgICAgTG9nOgogICAg ICAgICAgICBFbmFibGUgSU0gZ3RrNCBtb2R1bGUKCi0gRml4IHRvIHJlbmFtZSB4a2I6ZGU6Omdl ciB0byBzeW5jIHhrZXlib2FyZC1jb25maWcKLSBFbmhhbmNlIGlidXMtc2V0dXAgc2VhcmNoIGVu Z2luZQoKLS0tCmRpZmYgLS1naXQgYS9pYnVzLUhFQUQucGF0Y2ggYi9pYnVzLUhFQUQucGF0Y2gK aW5kZXggMGI2NmMyZC4uNWUzYWFkZiAxMDA2NDQKLS0tIGEvaWJ1cy1IRUFELnBhdGNoCisrKyBi L2lidXMtSEVBRC5wYXRjaApAQCAtNDIxLDMgKzQyMSwxNDY4IEBAIGluZGV4IDA2MzcwYTI3Li43 OThhZDA0ZCAxMDA2NDQKIC0tIAogMi4yNC4xCiAKK0Zyb20gNTMyMmM0NDdjNzRhMTBlZTU0YjQ4 MmQ2ZWZmNmRhNmQxNmE3YzljZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGZ1aml3 YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KK0RhdGU6IFNhdCwgMjEgTm92IDIwMjAg MDc6NDE6MjMgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSF0gdWkvZ3RrMzogV2FybiBkZXByZWNhdGVk IElCdXMgWEtCIGVuZ2luZXMgL3cgZGlhbG9nCisKK3NpbXBsZS54bWwgaXMgdXBkYXRlZCBieSBJ QnVzIHJlbGVhc2UgYW5kIHNvbWUgWEtCIGVuZ2luZXMKK2NvdWxkIGJlIGRlcHJlY2F0ZWQgd2l0 aCB4a2V5Ym9hcmQtY29uZmlnIHVwZGF0ZXMuCitOb3cgYSB3YXJuaW5nIGRpYWxvZyBpcyBsYXVu Y2hlZCB3aGVuIHRoZSBkZXByZWNhdGVkIGVuZ2luZXMgYXJlCitjaGFuZ2VkIHRvIHhrYjp1czo6 ZW5nIGVuZ2luZS4KKworQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzIy NzQKKy0tLQorIHVpL2d0azMvcGFuZWwudmFsYSB8IDE1ICsrKysrKysrKysrKysrKworIDEgZmls ZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1n aXQgYS91aS9ndGszL3BhbmVsLnZhbGEgYi91aS9ndGszL3BhbmVsLnZhbGEKK2luZGV4IDYyN2Uy NmFlLi4wMWY4N2UzMyAxMDA2NDQKKy0tLSBhL3VpL2d0azMvcGFuZWwudmFsYQorKysrIGIvdWkv Z3RrMy9wYW5lbC52YWxhCitAQCAtOTcwLDYgKzk3MCwyMSBAQCBjbGFzcyBQYW5lbCA6IElCdXMu UGFuZWxTZXJ2aWNlIHsKKyAgICAgICAgICAgICBuYW1lcyA9ICB7InhrYjp1czo6ZW5nIn07Cisg ICAgICAgICAgICAgbV9zZXR0aW5nc19nZW5lcmFsLnNldF9zdHJ2KCJwcmVsb2FkLWVuZ2luZXMi LCBuYW1lcyk7CisgICAgICAgICAgICAgZW5naW5lcyA9IG1fYnVzLmdldF9lbmdpbmVzX2J5X25h bWVzKG5hbWVzKTsKKysgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IF8oIllvdXIgaW5wdXQgbWV0 aG9kICVzIGRvZXMgbm90IGV4aXN0IGluIElCdXMgIiArCisrICAgICAgICAgICAgICAgICAgICAi aW5wdXQgbWV0aG9kcyBzbyBcIlVTXCIgbGF5b3V0IHdhcyBjb25maWd1cmVkIGluc3RlYWQgIiAr CisrICAgICAgICAgICAgICAgICAgICAib2YgeW91ciBpbnB1dCBtZXRob2QuIFBsZWFzZSBydW4g YGlidXMtc2V0dXBgIGNvbW1hbmQsICIgKworKyAgICAgICAgICAgICAgICAgICAgIm9wZW4gXCJJ bnB1dCBNZXRob2RcIiB0YWIsIGFuZCBjb25maWd1cmUgeW91ciBpbnB1dCAiICsKKysgICAgICAg ICAgICAgICAgICAgICJtZXRob2RzIGFnYWluLiIpLnByaW50ZihuYW1lc1swXSk7CisrICAgICAg ICAgICAgdmFyIGRpYWxvZyA9IG5ldyBHdGsuTWVzc2FnZURpYWxvZygKKysgICAgICAgICAgICAg ICAgICAgIG51bGwsCisrICAgICAgICAgICAgICAgICAgICBHdGsuRGlhbG9nRmxhZ3MuREVTVFJP WV9XSVRIX1BBUkVOVCwKKysgICAgICAgICAgICAgICAgICAgIEd0ay5NZXNzYWdlVHlwZS5XQVJO SU5HLAorKyAgICAgICAgICAgICAgICAgICAgR3RrLkJ1dHRvbnNUeXBlLkNMT1NFLAorKyAgICAg ICAgICAgICAgICAgICAgbWVzc2FnZSk7CisrICAgICAgICAgICAgZGlhbG9nLnJlc3BvbnNlLmNv bm5lY3QoKGlkKSA9PiB7CisrICAgICAgICAgICAgICAgICAgICBkaWFsb2cuZGVzdHJveSgpOwor KyAgICAgICAgICAgIH0pOworKyAgICAgICAgICAgIGRpYWxvZy5zaG93KCk7CisgCX0KKyAKKyAg ICAgICAgIGlmIChtX2VuZ2luZXMubGVuZ3RoID09IDApIHsKKy0tIAorMi4yOC4wCisKK0Zyb20g YWVjMmFjNzVlYTY3M2QzNzAxOTA0NzM1Mzc4NzY1NDc2Y2FkMGYyMSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEd1bm5hciBIamFsbWFyc3NvbiA8Z3VubmFyaGpAdWJ1bnR1LmNvbT4K K0RhdGU6IEZyaSwgMTEgRGVjIDIwMjAgMTY6Mjc6MzYgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSF0g dWkvZ3RrMzogV2FybmluZyBkaWFsb2cgZm9yIGFueSBkZXByZWNhdGVkIElCdXMgWEtCCisgZW5n aW5lCisKK1RoaXMgaXMgYSBmb2xsb3ctdXAgb2YgY29tbWl0IDUzMjJjNDQ3LiBUaGF0IGNvbW1p dCBpbnRyb2R1Y2VkCithIHdhcm5pbmcgZGlhbG9nIGluIGNhc2Ugb2YgYW4gZW1wdHkgZW5naW5l cyBsaXN0LgorCitUaGlzIGNvbW1pdCBtYWtlcyBhIGRpZmZlcmVudGx5IHdvcmRlZCB3YXJuaW5n IGRpYWxvZyBiZSBzaG93bgoraW4gY2FzZXMgd2hlcmUgdGhlIGVuZ2luZXMgbGlzdCBpcyBub3Qg ZW1wdHkgYnV0IHByZWxvYWQtZW5naW5lcworaW5jbHVkZXMgYXQgbGVhc3Qgb25lIGRlcHJlY2F0 ZWQgZW5naW5lLiBJdCBhbHNvIGZpeGVzIGEgdmFyaWFibGUKK2NvbmZ1c2lvbiBzbyBhIGRlcHJl Y2F0ZWQgZW5naW5lIGlzIG1lbnRpb25lZCBpbiB0aGUgZmlyc3Qga2luZAorb2Ygd2FybmluZyBk aWFsb2cgYW5kIG5vdCB0aGUgVVMgZW5naW5lLgorCitCVUc9aHR0cHM6Ly9naXRodWIuY29tL2li dXMvaWJ1cy9pc3N1ZXMvMjI3NAorLS0tCisgdWkvZ3RrMy9wYW5lbC52YWxhIHwgMzAgKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tCisgMSBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25z KCspLCAyNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3VpL2d0azMvcGFuZWwudmFsYSBi L3VpL2d0azMvcGFuZWwudmFsYQoraW5kZXggMDFmODdlMzMuLmFiMjAwNWQ3IDEwMDY0NAorLS0t IGEvdWkvZ3RrMy9wYW5lbC52YWxhCisrKysgYi91aS9ndGszL3BhbmVsLnZhbGEKK0BAIC05NjYs MjUgKzk2NiwzMyBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKKyAgICAgICAg IC8qIEZlZG9yYSBpbnRlcm5hbCBwYXRjaCBjb3VsZCBzYXZlIGVuZ2luZXMgbm90IGluIHNpbXBs ZS54bWwKKyAgICAgICAgICAqIGxpa2VzICd4a2I6Y246OmNoaScuCisgICAgICAgICAgKi8KKy0g ICAgICAgIGlmIChlbmdpbmVzLmxlbmd0aCA9PSAwKSB7CistICAgICAgICAgICAgbmFtZXMgPSAg eyJ4a2I6dXM6OmVuZyJ9OworLSAgICAgICAgICAgIG1fc2V0dGluZ3NfZ2VuZXJhbC5zZXRfc3Ry digicHJlbG9hZC1lbmdpbmVzIiwgbmFtZXMpOworLSAgICAgICAgICAgIGVuZ2luZXMgPSBtX2J1 cy5nZXRfZW5naW5lc19ieV9uYW1lcyhuYW1lcyk7CistICAgICAgICAgICAgdmFyIG1lc3NhZ2Ug PSBfKCJZb3VyIGlucHV0IG1ldGhvZCAlcyBkb2VzIG5vdCBleGlzdCBpbiBJQnVzICIgKworLSAg ICAgICAgICAgICAgICAgICAgImlucHV0IG1ldGhvZHMgc28gXCJVU1wiIGxheW91dCB3YXMgY29u ZmlndXJlZCBpbnN0ZWFkICIgKworLSAgICAgICAgICAgICAgICAgICAgIm9mIHlvdXIgaW5wdXQg bWV0aG9kLiBQbGVhc2UgcnVuIGBpYnVzLXNldHVwYCBjb21tYW5kLCAiICsKKy0gICAgICAgICAg ICAgICAgICAgICJvcGVuIFwiSW5wdXQgTWV0aG9kXCIgdGFiLCBhbmQgY29uZmlndXJlIHlvdXIg aW5wdXQgIiArCistICAgICAgICAgICAgICAgICAgICAibWV0aG9kcyBhZ2Fpbi4iKS5wcmludGYo bmFtZXNbMF0pOworKyAgICAgICAgaWYgKGVuZ2luZXMubGVuZ3RoIDwgbmFtZXMubGVuZ3RoKSB7 CisrICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UxOworKyAgICAgICAgICAgIGlmIChlbmdpbmVz Lmxlbmd0aCA9PSAwKSB7CisrICAgICAgICAgICAgICAgIHN0cmluZ1tdIGZhbGxiYWNrX25hbWVz ID0geyJ4a2I6dXM6OmVuZyJ9OworKyAgICAgICAgICAgICAgICBtX3NldHRpbmdzX2dlbmVyYWwu c2V0X3N0cnYoInByZWxvYWQtZW5naW5lcyIsIGZhbGxiYWNrX25hbWVzKTsKKysgICAgICAgICAg ICAgICAgZW5naW5lcyA9IG1fYnVzLmdldF9lbmdpbmVzX2J5X25hbWVzKGZhbGxiYWNrX25hbWVz KTsKKysgICAgICAgICAgICAgICAgbWVzc2FnZTEgPSBfKCJZb3VyIGNvbmZpZ3VyZWQgaW5wdXQg bWV0aG9kICVzIGRvZXMgbm90IGV4aXN0ICIgKworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImluIElCdXMgaW5wdXQgbWV0aG9kcyBzbyBcIlVTXCIgbGF5b3V0IHdhcyAiICsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJjb25maWd1cmVkIGluc3RlYWQgb2YgeW91ciBpbnB1 dCBtZXRob2QuIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApLnByaW50ZihuYW1lc1sw XSk7CisrICAgICAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICAgICAgbWVzc2FnZTEgPSBf KCJBdCBsZWFzdCBvbmUgb2YgeW91ciBjb25maWd1cmVkIGlucHV0IG1ldGhvZHMgIiArCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9lcyBub3QgZXhpc3QgaW4gSUJ1cyBpbnB1dCBt ZXRob2RzLiIpOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICB2YXIgbWVzc2FnZTIgPSBf KCJQbGVhc2UgcnVuIGBpYnVzLXNldHVwYCBjb21tYW5kLCBvcGVuIFwiSW5wdXQgIiArCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiTWV0aG9kXCIgdGFiLCBhbmQgY29uZmlndXJlIHlv dXIgaW5wdXQgbWV0aG9kcyAiICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhZ2Fp bi4iKTsKKyAgICAgICAgICAgICB2YXIgZGlhbG9nID0gbmV3IEd0ay5NZXNzYWdlRGlhbG9nKAor ICAgICAgICAgICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgIEd0ay5EaWFs b2dGbGFncy5ERVNUUk9ZX1dJVEhfUEFSRU5ULAorICAgICAgICAgICAgICAgICAgICAgR3RrLk1l c3NhZ2VUeXBlLldBUk5JTkcsCisgICAgICAgICAgICAgICAgICAgICBHdGsuQnV0dG9uc1R5cGUu Q0xPU0UsCistICAgICAgICAgICAgICAgICAgICBtZXNzYWdlKTsKKysgICAgICAgICAgICAgICAg ICAgICIlcyAlcyIsIG1lc3NhZ2UxLCBtZXNzYWdlMik7CisgICAgICAgICAgICAgZGlhbG9nLnJl c3BvbnNlLmNvbm5lY3QoKGlkKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICBkaWFsb2cuZGVz dHJveSgpOworICAgICAgICAgICAgIH0pOworLSAgICAgICAgICAgIGRpYWxvZy5zaG93KCk7Cisr ICAgICAgICAgICAgZGlhbG9nLnNob3dfYWxsKCk7CisgCX0KKyAKKyAgICAgICAgIGlmIChtX2Vu Z2luZXMubGVuZ3RoID09IDApIHsKKy0tIAorMi4yOC4wCisKK0Zyb20gNWQ2OGIwMGUwNDY0ZDQz YmEyZjc3Njk3ZjlkY2ZiZmY3OGQ3YjQzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KK0RhdGU6IFRodSwgMzEgRGVj IDIwMjAgMTc6Mjg6NDUgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSF0gZW5naW5lOiBGaXggaXNvLXBh dGggaW4gZ2Vuc2ltcGxlLnB5CisKK1JlcGxhY2UgZGF0YXJvb3RkaXIgd2l0aCBJU09DT0RFU19Q UkVGSVguCistLS0KKyBlbmdpbmUvTWFrZWZpbGUuYW0gfCAyICstCisgMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9lbmdpbmUvTWFr ZWZpbGUuYW0gYi9lbmdpbmUvTWFrZWZpbGUuYW0KK2luZGV4IGQ4MTA3MDRiLi4xOTQ0YzAyYiAx MDA2NDQKKy0tLSBhL2VuZ2luZS9NYWtlZmlsZS5hbQorKysrIGIvZW5naW5lL01ha2VmaWxlLmFt CitAQCAtMTA0LDcgKzEwNCw3IEBAIHNpbXBsZS54bWwuaW46CisgCSAgICAtLW91dHB1dD0kQCBc CisgCSAgICAtLXZlcnNpb249JChWRVJTSU9OKS5gZGF0ZSAnKyVZJW0lZCdgIFwKKyAJICAgIC0t ZXhlYy1wYXRoPUBsaWJleGVjZGlyXEAvaWJ1cy1lbmdpbmUtc2ltcGxlIFwKKy0JICAgIC0taXNv LXBhdGg9JChkYXRhcm9vdGRpcikveG1sL2lzby1jb2Rlcy9pc29fNjM5LnhtbCBcCisrCSAgICAt LWlzby1wYXRoPSQoSVNPQ09ERVNfUFJFRklYKS9zaGFyZS94bWwvaXNvLWNvZGVzL2lzb182Mzku eG1sIFwKKyAJICAgIC0tZmlyc3QtbGFuZ3VhZ2UgXAorIAkkKE5VTEwpCisgCistLSAKKzIuMjgu MAorCitGcm9tIDI5OTU5ZTFkMjUyMTc4MWM1NDQ4NzliMjg0ZTAzODEyYTJhMTFiMmUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+CitEYXRlOiBUaHUsIDMxIERlYyAyMDIwIDIwOjAwOjAyICswOTAwCitTdWJqZWN0OiBb UEFUQ0hdIGVuZ2luZTogRml4IGlucHV0IGluIGdlbnNpbXBsZS5weQorCitSZXBsYWNlIGRhdGFy b290ZGlyIHdpdGggWEtCQ09ORklHX0JBU0UuCistLS0KKyBjb25maWd1cmUuYWMgICAgICAgfCA3 ICsrKysrKysKKyBlbmdpbmUvTWFrZWZpbGUuYW0gfCAyICstCisgMiBmaWxlcyBjaGFuZ2VkLCA4 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5h YyBiL2NvbmZpZ3VyZS5hYworaW5kZXggNTc1MzA1N2IuLjllZDVjYjY2IDEwMDY0NAorLS0tIGEv Y29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC03MjAsNiArNzIwLDEzIEBAIFBL R19DSEVDS19NT0RVTEVTKElTT0NPREVTLCBbCisgSVNPQ09ERVNfUFJFRklYPWAkUEtHX0NPTkZJ RyBpc28tY29kZXMgLS12YXJpYWJsZT1wcmVmaXhgCisgQUNfU1VCU1QoSVNPQ09ERVNfUFJFRklY KQorIAorK1BLR19DSEVDS19NT0RVTEVTKFhLQkNPTkZJRywKKysgICAgW3hrZXlib2FyZC1jb25m aWddLAorKyAgICBbWEtCQ09ORklHX0JBU0U9YCRQS0dfQ09ORklHIHhrZXlib2FyZC1jb25maWcg LS12YXJpYWJsZT14a2JfYmFzZWBdLAorKyAgICBbWEtCQ09ORklHX0JBU0U9JyQoZGF0YXJvb3Rk aXIpL1gxMS94a2InXQorKykKKytBQ19TVUJTVChYS0JDT05GSUdfQkFTRSkKKysKKyBBQ19TVUJT VChbR0RCVVNfQ09ERUdFTl0sIFtgJFBLR19DT05GSUcgLS12YXJpYWJsZSBnZGJ1c19jb2RlZ2Vu IGdpby0yLjBgXSkKKyAKKyAjIE9VVFBVVCBmaWxlcworZGlmZiAtLWdpdCBhL2VuZ2luZS9NYWtl ZmlsZS5hbSBiL2VuZ2luZS9NYWtlZmlsZS5hbQoraW5kZXggMTk0NGMwMmIuLjg0YmM3ZjZjIDEw MDY0NAorLS0tIGEvZW5naW5lL01ha2VmaWxlLmFtCisrKysgYi9lbmdpbmUvTWFrZWZpbGUuYW0K K0BAIC0xMDAsNyArMTAwLDcgQEAgc2ltcGxlLnhtbDogc2ltcGxlLnhtbC5pbgorIAorIHNpbXBs ZS54bWwuaW46CisgCSQoc3JjZGlyKS9nZW5zaW1wbGUucHkgXAorLQkgICAgLS1pbnB1dD0kKGRh dGFyb290ZGlyKS9YMTEveGtiL3J1bGVzL2V2ZGV2LnhtbCBcCisrCSAgICAtLWlucHV0PSQoWEtC Q09ORklHX0JBU0UpL3J1bGVzL2V2ZGV2LnhtbCBcCisgCSAgICAtLW91dHB1dD0kQCBcCisgCSAg ICAtLXZlcnNpb249JChWRVJTSU9OKS5gZGF0ZSAnKyVZJW0lZCdgIFwKKyAJICAgIC0tZXhlYy1w YXRoPUBsaWJleGVjZGlyXEAvaWJ1cy1lbmdpbmUtc2ltcGxlIFwKKy0tIAorMi4yOC4wCisKK0Zy b20gYzc5MjhiMTU4NzQxMjgyZTE3YTA0MmY3NjdiYzVhZTMyYzMwMmM5NiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4K K0RhdGU6IEZyaSwgOCBKYW4gMjAyMSAxODo0NTo1NSArMDkwMAorU3ViamVjdDogW1BBVENIXSBB ZGQgR1RLNCBJTSBtb2R1bGUKKworQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNz dWVzLzIyOTEKKy0tLQorIGNsaWVudC9NYWtlZmlsZS5hbSAgICAgICAgICB8ICAgNyArLQorIGNs aWVudC9ndGsyL2lidXNpbWNvbnRleHQuYyB8IDM1MiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0KKyBjbGllbnQvZ3RrNC9NYWtlZmlsZS5hbSAgICAgfCAgNjYgKysrKysrKwor IGNsaWVudC9ndGs0L2lidXNpbS5jICAgICAgICB8ICA1MiArKysrKysKKyBjbGllbnQvZ3RrNC9p YnVzaW1jb250ZXh0LmMgfCAgIDEgKworIGNsaWVudC9ndGs0L2lidXNpbWNvbnRleHQuaCB8ICAg MSArCisgY29uZmlndXJlLmFjICAgICAgICAgICAgICAgIHwgIDMyICsrKysKKyA3IGZpbGVzIGNo YW5nZWQsIDQ2NSBpbnNlcnRpb25zKCspLCA0NiBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAx MDA2NDQgY2xpZW50L2d0azQvTWFrZWZpbGUuYW0KKyBjcmVhdGUgbW9kZSAxMDA2NDQgY2xpZW50 L2d0azQvaWJ1c2ltLmMKKyBjcmVhdGUgbW9kZSAxMjAwMDAgY2xpZW50L2d0azQvaWJ1c2ltY29u dGV4dC5jCisgY3JlYXRlIG1vZGUgMTIwMDAwIGNsaWVudC9ndGs0L2lidXNpbWNvbnRleHQuaAor CitkaWZmIC0tZ2l0IGEvY2xpZW50L01ha2VmaWxlLmFtIGIvY2xpZW50L01ha2VmaWxlLmFtCitp bmRleCA1NDZjYTEzMi4uMTc0NDUxOGMgMTAwNjQ0CistLS0gYS9jbGllbnQvTWFrZWZpbGUuYW0K KysrKyBiL2NsaWVudC9NYWtlZmlsZS5hbQorQEAgLTMsNyArMyw3IEBACisgIyBpYnVzIC0gVGhl IElucHV0IEJ1cworICMKKyAjIENvcHlyaWdodCAoYykgMjAwNy0yMDEwIFBlbmcgSHVhbmcgPHNo YXduLnAuaHVhbmdAZ21haWwuY29tPgorLSMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTAgUmVkIEhh dCwgSW5jLgorKyMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMjAgUmVkIEhhdCwgSW5jLgorICMKKyAj IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKyAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKK0BAIC0yOCw2ICsyOCwxMCBAQCBpZiBFTkFCTEVfR1RLMworIEdUSzMgPSBn dGszCisgZW5kaWYKKyAKKytpZiBFTkFCTEVfR1RLNAorK0dUSzQgPSBndGs0CisrZW5kaWYKKysK KyBpZiBFTkFCTEVfWElNCisgWDExID0geDExCisgZW5kaWYKK0BAIC0zOSw2ICs0Myw3IEBAIGVu ZGlmCisgU1VCRElSUyA9IFwKKyAJJChHVEsyKSBcCisgCSQoR1RLMykgXAorKwkkKEdUSzQpIFwK KyAJJChYMTEpIFwKKyAJJChXQVlMQU5EKSBcCisgCSQoTlVMTCkKK2RpZmYgLS1naXQgYS9jbGll bnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgYi9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKK2lu ZGV4IDUwMjkwYzU1Li5hMjNmYzJlMyAxMDA2NDQKKy0tLSBhL2NsaWVudC9ndGsyL2lidXNpbWNv bnRleHQuYworKysrIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCitAQCAtMiw4ICsyLDgg QEAKKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCisg ICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFp bC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2Fv LmZ1aml3YXJhMUBnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgUmVkIEhh dCwgSW5jLgorKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIwIFRha2FvIEZ1aml3YXJhIDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDIwIFJlZCBI YXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAtMzIsOCArMzIsMTIgQEAKKyAjaW5j bHVkZSAiaWJ1c2ltY29udGV4dC5oIgorIAorICNpZmRlZiBHREtfV0lORE9XSU5HX1dBWUxBTkQK KysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorKyNpbmNsdWRlIDxnZGsvd2F5bGFu ZC9nZGt3YXlsYW5kLmg+CisrI2Vsc2UKKyAjaW5jbHVkZSA8Z2RrL2dka3dheWxhbmQuaD4KKyAj ZW5kaWYKKysjZW5kaWYKKyAKKyAjaWYgIUdUS19DSEVDS19WRVJTSU9OICgyLCA5MSwgMCkKKyAj ICBkZWZpbmUgREVQUkVDQVRFRF9HREtfS0VZU1lNUyAxCitAQCAtNTIsNyArNTYsMTEgQEAgc3Ry dWN0IF9JQnVzSU1Db250ZXh0IHsKKyAKKyAgICAgLyogaW5zdGFuY2UgbWVtYmVycyAqLworICAg ICBHdGtJTUNvbnRleHQgKnNsYXZlOworKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQp CisrICAgIEd0a1dpZGdldCAqY2xpZW50X3dpbmRvdzsKKysjZWxzZQorICAgICBHZGtXaW5kb3cg KmNsaWVudF93aW5kb3c7CisrI2VuZGlmCisgCisgICAgIElCdXNJbnB1dENvbnRleHQgKmlidXNj b250ZXh0OworIAorQEAgLTczLDcgKzgxLDEyIEBAIHN0cnVjdCBfSUJ1c0lNQ29udGV4dCB7Cisg ICAgIEdDYW5jZWxsYWJsZSAgICAqY2FuY2VsbGFibGU7CisgICAgIEdRdWV1ZSAgICAgICAgICAq ZXZlbnRzX3F1ZXVlOworIAorLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDkzLCAwKQorKyNp ZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisrICAgIEdka1N1cmZhY2UgICAgICAqc3Vy ZmFjZTsKKysgICAgR2RrRGV2aWNlICAgICAgICpkZXZpY2U7CisrICAgIGRvdWJsZSAgICAgICAg ICAgeDsKKysgICAgZG91YmxlICAgICAgICAgICB5OworKyNlbHNlCisgICAgIGdib29sZWFuICAg ICAgICAgdXNlX2J1dHRvbl9wcmVzc19ldmVudDsKKyAjZW5kaWYKKyB9OworQEAgLTkwLDkgKzEw MywxMSBAQCBzdGF0aWMgZ3VpbnQgICAgX3NpZ25hbF9wcmVlZGl0X2VuZF9pZCA9IDA7Cisgc3Rh dGljIGd1aW50ICAgIF9zaWduYWxfZGVsZXRlX3N1cnJvdW5kaW5nX2lkID0gMDsKKyBzdGF0aWMg Z3VpbnQgICAgX3NpZ25hbF9yZXRyaWV2ZV9zdXJyb3VuZGluZ19pZCA9IDA7CisgCisrI2lmICFH VEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisgc3RhdGljIGNvbnN0IGdjaGFyICpfbm9fc25v b3Blcl9hcHBzID0gTk9fU05PT1BFUl9BUFBTOworIHN0YXRpYyBnYm9vbGVhbiBfdXNlX2tleV9z bm9vcGVyID0gRU5BQkxFX1NOT09QRVI7Cisgc3RhdGljIGd1aW50ICAgIF9rZXlfc25vb3Blcl9p ZCA9IDA7CisrI2VuZGlmCisgCisgc3RhdGljIGdib29sZWFuIF91c2Vfc3luY19tb2RlID0gRkFM U0U7CisgCitAQCAtMTAxLDggKzExNiwxMCBAQCBzdGF0aWMgZ2Jvb2xlYW4gX3VzZV9kaXNjYXJk X3Bhc3N3b3JkID0gRkFMU0U7CisgCisgc3RhdGljIEd0a0lNQ29udGV4dCAqX2ZvY3VzX2ltX2Nv bnRleHQgPSBOVUxMOworIHN0YXRpYyBJQnVzSW5wdXRDb250ZXh0ICpfZmFrZV9jb250ZXh0ID0g TlVMTDsKKysjaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKyBzdGF0aWMgR2RrV2lu ZG93ICpfaW5wdXRfd2luZG93ID0gTlVMTDsKKyBzdGF0aWMgR3RrV2lkZ2V0ICpfaW5wdXRfd2lk Z2V0ID0gTlVMTDsKKysjZW5kaWYKKyAKKyAvKiBmdW5jdGlvbnMgcHJvdG90eXBlICovCisgc3Rh dGljIHZvaWQgICAgIGlidXNfaW1fY29udGV4dF9jbGFzc19pbml0ICAoSUJ1c0lNQ29udGV4dENs YXNzICAgICpjbGFzcyk7CitAQCAtMTE0LDcgKzEzMSwxMSBAQCBzdGF0aWMgdm9pZCAgICAgaWJ1 c19pbV9jb250ZXh0X2ZpbmFsaXplICAgIChHT2JqZWN0ICAgICAgICAgICAgICAgKm9iaik7Cisg c3RhdGljIHZvaWQgICAgIGlidXNfaW1fY29udGV4dF9yZXNldCAgICAgICAoR3RrSU1Db250ZXh0 ICAgICAgICAgICpjb250ZXh0KTsKKyBzdGF0aWMgZ2Jvb2xlYW4gaWJ1c19pbV9jb250ZXh0X2Zp bHRlcl9rZXlwcmVzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKEd0a0lNQ29udGV4dCAgICAgICAgICAgKmNvbnRleHQsCisrI2lmIEdUS19DSEVDS19WRVJT SU9OICgzLCA5OCwgNCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHZGtFdmVudCAgICAgICAgICAgICAgICprZXkpOworKyNlbHNlCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrRXZlbnRLZXkgICAgICAgICAgICAq a2V5KTsKKysjZW5kaWYKKyBzdGF0aWMgdm9pZCAgICAgaWJ1c19pbV9jb250ZXh0X2ZvY3VzX2lu ICAgIChHdGtJTUNvbnRleHQgICAgICAgICAgKmNvbnRleHQpOworIHN0YXRpYyB2b2lkICAgICBp YnVzX2ltX2NvbnRleHRfZm9jdXNfb3V0ICAgKEd0a0lNQ29udGV4dCAgICAgICAgICAqY29udGV4 dCk7Cisgc3RhdGljIHZvaWQgICAgIGlidXNfaW1fY29udGV4dF9nZXRfcHJlZWRpdF9zdHJpbmcK K0BAIC0xMjIsOSArMTQzLDE1IEBAIHN0YXRpYyB2b2lkICAgICBpYnVzX2ltX2NvbnRleHRfZ2V0 X3ByZWVkaXRfc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2NoYXIgICAgICAgICAgICAgICAgICAqKnN0ciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYW5nb0F0dHJMaXN0ICAgICAgICAgICoqYXR0cnMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCAgICAg ICAgICAgICAgICAgICAqY3Vyc29yX3Bvcyk7CisrI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5 OCwgNCkKKytzdGF0aWMgdm9pZCAgICAgaWJ1c19pbV9jb250ZXh0X3NldF9jbGllbnRfd2lkZ2V0 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR3RrSU1Db250 ZXh0ICAgICAgICAgICAqY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHdGtXaWRnZXQgICAgICAgICAgICAgICpjbGllbnQpOworKyNlbHNlCisg c3RhdGljIHZvaWQgICAgIGlidXNfaW1fY29udGV4dF9zZXRfY2xpZW50X3dpbmRvdworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEd0a0lNQ29udGV4dCAgICAg ICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR2RrV2luZG93ICAgICAgICAgICAgICAqY2xpZW50KTsKKysjZW5kaWYKKyBzdGF0aWMg dm9pZCAgICAgaWJ1c19pbV9jb250ZXh0X3NldF9jdXJzb3JfbG9jYXRpb24KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHdGtJTUNvbnRleHQgICAgICAgICAg ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdka1JlY3RhbmdsZSAgICAgICAgICAgKmFyZWEpOworQEAgLTIzOSw2ICsyNjYsNyBAQCBpYnVz X2ltX2NvbnRleHRfbmV3ICh2b2lkKQorICAgICByZXR1cm4gSUJVU19JTV9DT05URVhUIChvYmop OworIH0KKyAKKysjaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKyBzdGF0aWMgZ2Jv b2xlYW4KKyBfZm9jdXNfaW5fY2IgKEd0a1dpZGdldCAgICAgKndpZGdldCwKKyAgICAgICAgICAg ICAgIEdka0V2ZW50Rm9jdXMgKmV2ZW50LAorQEAgLTI2MCwyMiArMjg4LDQxIEBAIF9mb2N1c19v dXRfY2IgKEd0a1dpZGdldCAgICAgKndpZGdldCwKKyAgICAgfQorICAgICByZXR1cm4gRkFMU0U7 CisgfQorKyNlbmRpZiAvKiBlbmQgb2YgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KSAqLwor IAorIHN0YXRpYyBnYm9vbGVhbgorIGlidXNfaW1fY29udGV4dF9jb21taXRfZXZlbnQgKElCdXNJ TUNvbnRleHQgKmlidXNpbWNvbnRleHQsCisrI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwg NCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtFdmVudCAgICAgICpldmVudCkK KysjZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50S2V5ICAgKmV2 ZW50KQorKyNlbmRpZgorIHsKKysgICAgZ3VpbnQga2V5dmFsID0gMDsKKysgICAgR2RrTW9kaWZp ZXJUeXBlIHN0YXRlID0gMDsKKyAgICAgaW50IGk7CisgICAgIEdka01vZGlmaWVyVHlwZSBub190 ZXh0X2lucHV0X21hc2s7CisgICAgIGd1bmljaGFyIGNoOworIAorKyNpZiBHVEtfQ0hFQ0tfVkVS U0lPTiAoMywgOTgsIDQpCisrICAgIGlmIChnZGtfZXZlbnRfZ2V0X2V2ZW50X3R5cGUgKGV2ZW50 KSA9PSBHREtfS0VZX1JFTEVBU0UpCisrICAgICAgICByZXR1cm4gRkFMU0U7CisrICAgIGtleXZh bCA9IGdka19rZXlfZXZlbnRfZ2V0X2tleXZhbCAoZXZlbnQpOworKyAgICBzdGF0ZSA9IGdka19l dmVudF9nZXRfbW9kaWZpZXJfc3RhdGUgKGV2ZW50KTsKKysjZWxzZQorICAgICBpZiAoZXZlbnQt PnR5cGUgPT0gR0RLX0tFWV9SRUxFQVNFKQorICAgICAgICAgcmV0dXJuIEZBTFNFOworKyAgICBr ZXl2YWwgPSBldmVudC0+a2V5dmFsOworKyAgICBzdGF0ZSA9IGV2ZW50LT5zdGF0ZTsKKysjZW5k aWYKKysKKyAgICAgLyogSWdub3JlIG1vZGlmaWVyIGtleSBwcmVzc2VzICovCisgICAgIGZvciAo aSA9IDA7IGkgPCBHX05fRUxFTUVOVFMgKElCVVNfQ09NUE9TRV9JR05PUkVfS0VZTElTVCk7IGkr KykKKy0gICAgICAgIGlmIChldmVudC0+a2V5dmFsID09IElCVVNfQ09NUE9TRV9JR05PUkVfS0VZ TElTVFtpXSkKKysgICAgICAgIGlmIChrZXl2YWwgPT0gSUJVU19DT01QT1NFX0lHTk9SRV9LRVlM SVNUW2ldKQorICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKy0jaWYgR1RLX0NIRUNLX1ZFUlNJ T04gKDMsIDQsIDApCisrI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKysgICAgbm9f dGV4dF9pbnB1dF9tYXNrID0gR0RLX01PRElGSUVSX01BU0s7CisrI2VsaWYgR1RLX0NIRUNLX1ZF UlNJT04gKDMsIDQsIDApCisgICAgIG5vX3RleHRfaW5wdXRfbWFzayA9IGdka19rZXltYXBfZ2V0 X21vZGlmaWVyX21hc2sgKAorICAgICAgICAgICAgIGdka19rZXltYXBfZ2V0X2Zvcl9kaXNwbGF5 IChnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCAoKSksCisgICAgICAgICAgICAgR0RLX01PRElGSUVS X0lOVEVOVF9OT19URVhUX0lOUFVUKTsKK0BAIC0yOTAsMTMgKzMzNywxMyBAQCBpYnVzX2ltX2Nv bnRleHRfY29tbWl0X2V2ZW50IChJQnVzSU1Db250ZXh0ICppYnVzaW1jb250ZXh0LAorIAorICMg IHVuZGVmIF9JQlVTX05PX1RFWFRfSU5QVVRfTU9EX01BU0sKKyAjZW5kaWYKKy0gICAgaWYgKGV2 ZW50LT5zdGF0ZSAmIG5vX3RleHRfaW5wdXRfbWFzayB8fAorLSAgICAgICAgZXZlbnQtPmtleXZh bCA9PSBHREtfS0VZX1JldHVybiB8fAorLSAgICAgICAgZXZlbnQtPmtleXZhbCA9PSBHREtfS0VZ X0lTT19FbnRlciB8fAorLSAgICAgICAgZXZlbnQtPmtleXZhbCA9PSBHREtfS0VZX0tQX0VudGVy KSB7CisrICAgIGlmIChzdGF0ZSAmIG5vX3RleHRfaW5wdXRfbWFzayB8fAorKyAgICAgICAga2V5 dmFsID09IEdES19LRVlfUmV0dXJuIHx8CisrICAgICAgICBrZXl2YWwgPT0gR0RLX0tFWV9JU09f RW50ZXIgfHwKKysgICAgICAgIGtleXZhbCA9PSBHREtfS0VZX0tQX0VudGVyKSB7CisgICAgICAg ICByZXR1cm4gRkFMU0U7CisgICAgIH0KKy0gICAgY2ggPSBpYnVzX2tleXZhbF90b191bmljb2Rl IChldmVudC0+a2V5dmFsKTsKKysgICAgY2ggPSBpYnVzX2tleXZhbF90b191bmljb2RlIChrZXl2 YWwpOworICAgICBpZiAoY2ggIT0gMCAmJiAhZ191bmljaGFyX2lzY250cmwgKGNoKSkgeworICAg ICAgICAgSUJ1c1RleHQgKnRleHQgPSBpYnVzX3RleHRfbmV3X2Zyb21fdW5pY2hhciAoY2gpOwor ICAgICAgICAgZ19zaWduYWxfZW1pdCAoaWJ1c2ltY29udGV4dCwgX3NpZ25hbF9jb21taXRfaWQs IDAsIHRleHQtPnRleHQpOworQEAgLTMwNywxNCArMzU0LDI2IEBAIGlidXNfaW1fY29udGV4dF9j b21taXRfZXZlbnQgKElCdXNJTUNvbnRleHQgKmlidXNpbWNvbnRleHQsCisgICAgcmV0dXJuIEZB TFNFOworIH0KKyAKKytzdHJ1Y3QgX1Byb2Nlc3NLZXlFdmVudERhdGEgeworKyAgICBHZGtFdmVu dCAqZXZlbnQ7CisrICAgIElCdXNJTUNvbnRleHQgKmlidXNpbWNvbnRleHQ7CisrfTsKKysKKyt0 eXBlZGVmIHN0cnVjdCBfUHJvY2Vzc0tleUV2ZW50RGF0YSBQcm9jZXNzS2V5RXZlbnREYXRhOwor KworIHN0YXRpYyB2b2lkCisgX3Byb2Nlc3Nfa2V5X2V2ZW50X2RvbmUgKEdPYmplY3QgICAgICAq b2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgKnJlcywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICB1c2VyX2RhdGEpCisgeworICAg ICBJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0ID0gKElCdXNJbnB1dENvbnRleHQgKilvYmplY3Q7 CistICAgIEdka0V2ZW50S2V5ICpldmVudCA9IChHZGtFdmVudEtleSAqKSB1c2VyX2RhdGE7Cisr CisrICAgIFByb2Nlc3NLZXlFdmVudERhdGEgKmRhdGEgPSAoUHJvY2Vzc0tleUV2ZW50RGF0YSAq KXVzZXJfZGF0YTsKKysgICAgR2RrRXZlbnQgKmV2ZW50ID0gZGF0YS0+ZXZlbnQ7CisrICAgIElC dXNJTUNvbnRleHQgKmlidXNpbWNvbnRleHQgPSBkYXRhLT5pYnVzaW1jb250ZXh0OworICAgICBH RXJyb3IgKmVycm9yID0gTlVMTDsKKysKKysgICAgZ19zbGljZV9mcmVlIChQcm9jZXNzS2V5RXZl bnREYXRhLCBkYXRhKTsKKyAgICAgZ2Jvb2xlYW4gcmV0dmFsID0gaWJ1c19pbnB1dF9jb250ZXh0 X3Byb2Nlc3Nfa2V5X2V2ZW50X2FzeW5jX2ZpbmlzaCAoCisgICAgICAgICAgICAgY29udGV4dCwK KyAgICAgICAgICAgICByZXMsCitAQCAtMzI2LDQ2ICszODUsOTYgQEAgX3Byb2Nlc3Nfa2V5X2V2 ZW50X2RvbmUgKEdPYmplY3QgICAgICAqb2JqZWN0LAorICAgICB9CisgCisgICAgIGlmIChyZXR2 YWwgPT0gRkFMU0UpIHsKKy0gICAgICAgIGV2ZW50LT5zdGF0ZSB8PSBJQlVTX0lHTk9SRURfTUFT SzsKKy0gICAgICAgIGdka19ldmVudF9wdXQgKChHZGtFdmVudCAqKWV2ZW50KTsKKysjaWYgR1RL X0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbCAoR1RL X0lTX0lNX0NPTlRFWFQgKGlidXNpbWNvbnRleHQpKTsKKysgICAgICAgIGd0a19pbV9jb250ZXh0 X2ZpbHRlcl9rZXkgKAorKyAgICAgICAgICAgICAgICBHVEtfSU1fQ09OVEVYVCAoaWJ1c2ltY29u dGV4dCksCisrICAgICAgICAgICAgICAgIGdka19ldmVudF9nZXRfZXZlbnRfdHlwZSAoZXZlbnQp ID09IEdES19LRVlfUFJFU1MsCisrICAgICAgICAgICAgICAgIGdka19ldmVudF9nZXRfc3VyZmFj ZSAoZXZlbnQpLAorKyAgICAgICAgICAgICAgICBnZGtfZXZlbnRfZ2V0X2RldmljZSAoZXZlbnQp LAorKyAgICAgICAgICAgICAgICBnZGtfZXZlbnRfZ2V0X3RpbWUgKGV2ZW50KSwKKysgICAgICAg ICAgICAgICAgZ2RrX2tleV9ldmVudF9nZXRfa2V5Y29kZSAoZXZlbnQpLAorKyAgICAgICAgICAg ICAgICBnZGtfZXZlbnRfZ2V0X21vZGlmaWVyX3N0YXRlIChldmVudCkgfCBJQlVTX0lHTk9SRURf TUFTSywKKysgICAgICAgICAgICAgICAgMCk7CisrI2Vsc2UKKysgICAgICAgICgoR2RrRXZlbnRL ZXkgKilldmVudCktPnN0YXRlIHw9IElCVVNfSUdOT1JFRF9NQVNLOworKyAgICAgICAgZ2RrX2V2 ZW50X3B1dCAoZXZlbnQpOworKyNlbmRpZgorICAgICB9CistICAgIGdka19ldmVudF9mcmVlICgo R2RrRXZlbnQgKilldmVudCk7CisrI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKysg ICAgZ2RrX2V2ZW50X3VucmVmIChldmVudCk7CisrI2Vsc2UKKysgICAgZ2RrX2V2ZW50X2ZyZWUg KGV2ZW50KTsKKysjZW5kaWYKKyB9CisgCisgc3RhdGljIGdib29sZWFuCisgX3Byb2Nlc3Nfa2V5 X2V2ZW50IChJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAorLSAgICAgICAgICAgICAgICAgICAg R2RrRXZlbnRLZXkgICAgICAqZXZlbnQpCisrI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwg NCkKKysgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50ICAgICAgICAgKmV2ZW50LAorKyNlbHNl CisrICAgICAgICAgICAgICAgICAgICBHZGtFdmVudEtleSAgICAgICpldmVudCwKKysjZW5kaWYK KysgICAgICAgICAgICAgICAgICAgIElCdXNJTUNvbnRleHQgICAgKmlidXNpbWNvbnRleHQpCisg eworLSAgICBndWludCBzdGF0ZSA9IGV2ZW50LT5zdGF0ZTsKKysgICAgZ3VpbnQgc3RhdGU7Cisr ICAgIGd1aW50IGtleXZhbCA9IDA7CisrICAgIGd1aW50MTYgaGFyZHdhcmVfa2V5Y29kZSA9IDA7 CisrICAgIGd1aW50IGtleWNvZGUgPSAwOworICAgICBnYm9vbGVhbiByZXR2YWwgPSBGQUxTRTsK KyAKKy0gICAgaWYgKGV2ZW50LT50eXBlID09IEdES19LRVlfUkVMRUFTRSkgeworKyNpZiBHVEtf Q0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisrICAgIEdka01vZGlmaWVyVHlwZSBnZGtzdGF0ZSA9 IGdka19ldmVudF9nZXRfbW9kaWZpZXJfc3RhdGUgKGV2ZW50KTsKKysgICAgc3RhdGUgPSAodWlu dClnZGtzdGF0ZTsKKysgICAgaWYgKGdka19ldmVudF9nZXRfZXZlbnRfdHlwZSAoZXZlbnQpID09 IEdES19LRVlfUkVMRUFTRSkKKyAgICAgICAgIHN0YXRlIHw9IElCVVNfUkVMRUFTRV9NQVNLOwor LSAgICB9CisrICAgIGtleXZhbCA9IGdka19rZXlfZXZlbnRfZ2V0X2tleXZhbCAoZXZlbnQpOwor KyAgICBoYXJkd2FyZV9rZXljb2RlID0gZ2RrX2tleV9ldmVudF9nZXRfa2V5Y29kZSAoZXZlbnQp OworKyNlbHNlCisrICAgIHN0YXRlID0gZXZlbnQtPnN0YXRlOworKyAgICBpZiAoZXZlbnQtPnR5 cGUgPT0gR0RLX0tFWV9SRUxFQVNFKQorKyAgICAgICAgc3RhdGUgfD0gSUJVU19SRUxFQVNFX01B U0s7CisrICAgIGtleXZhbCA9IGV2ZW50LT5rZXl2YWw7CisrICAgIGhhcmR3YXJlX2tleWNvZGUg PSBldmVudC0+aGFyZHdhcmVfa2V5Y29kZTsKKysjZW5kaWYKKysgICAga2V5Y29kZSA9IGhhcmR3 YXJlX2tleWNvZGU7CisgCisgICAgIGlmIChfdXNlX3N5bmNfbW9kZSkgeworICAgICAgICAgcmV0 dmFsID0gaWJ1c19pbnB1dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50IChjb250ZXh0LAorLSAg ICAgICAgICAgIGV2ZW50LT5rZXl2YWwsCistICAgICAgICAgICAgZXZlbnQtPmhhcmR3YXJlX2tl eWNvZGUgLSA4LAorKyAgICAgICAgICAgIGtleXZhbCwKKysgICAgICAgICAgICBrZXljb2RlIC0g OCwKKyAgICAgICAgICAgICBzdGF0ZSk7CisgICAgIH0KKyAgICAgZWxzZSB7CisrICAgICAgICBQ cm9jZXNzS2V5RXZlbnREYXRhICpkYXRhID0gZ19zbGljZV9uZXcwIChQcm9jZXNzS2V5RXZlbnRE YXRhKTsKKysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorKyAgICAgICAgZGF0YS0+ ZXZlbnQgPSBnZGtfZXZlbnRfcmVmIChldmVudCk7CisrI2Vsc2UKKysgICAgICAgIGRhdGEtPmV2 ZW50ID0gZ2RrX2V2ZW50X2NvcHkgKChHZGtFdmVudCAqKWV2ZW50KTsKKysjZW5kaWYKKysgICAg ICAgIGRhdGEtPmlidXNpbWNvbnRleHQgPSBpYnVzaW1jb250ZXh0OworICAgICAgICAgaWJ1c19p bnB1dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50X2FzeW5jIChjb250ZXh0LAorLSAgICAgICAg ICAgIGV2ZW50LT5rZXl2YWwsCistICAgICAgICAgICAgZXZlbnQtPmhhcmR3YXJlX2tleWNvZGUg LSA4LAorKyAgICAgICAgICAgIGtleXZhbCwKKysgICAgICAgICAgICBrZXljb2RlIC0gOCwKKyAg ICAgICAgICAgICBzdGF0ZSwKKyAgICAgICAgICAgICAtMSwKKyAgICAgICAgICAgICBOVUxMLAor ICAgICAgICAgICAgIF9wcm9jZXNzX2tleV9ldmVudF9kb25lLAorLSAgICAgICAgICAgIGdka19l dmVudF9jb3B5ICgoR2RrRXZlbnQgKikgZXZlbnQpKTsKKysgICAgICAgICAgICBkYXRhKTsKKyAK KyAgICAgICAgIHJldHZhbCA9IFRSVUU7CisgICAgIH0KKyAKKysgICAgLyogR1RLNCBkb2VzIG5v dCBwcm92aWRlIGd0a19rZXlfc25vb3Blcl9pbnN0YWxsKCkgYW5kIGFsc28KKysgICAgICogR3Rr SU1Db250ZXh0Q2xhc3MtPmZpbHRlcl9rZXlwcmVzcygpIGNhbm5vdCBzZW5kIHRoZSB1cGRhdGVk CisrICAgICAqIEdka0V2ZW50S2V5IHNvIGV2ZW50LT5zdGF0ZSBpcyBub3QgdXBkYXRlZCBoZXJl IGluIEdUSzQuCisrICAgICAqLworKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQor ICAgICBpZiAocmV0dmFsKQorICAgICAgICAgZXZlbnQtPnN0YXRlIHw9IElCVVNfSEFORExFRF9N QVNLOworICAgICBlbHNlCisgICAgICAgICBldmVudC0+c3RhdGUgfD0gSUJVU19JR05PUkVEX01B U0s7CisrI2VuZGlmCisgCisgICAgIHJldHVybiByZXR2YWw7CisgfQorQEAgLTQyNSw2ICs1MzQs NyBAQCBfc2V0X2NvbnRlbnRfdHlwZSAoSUJ1c0lNQ29udGV4dCAqY29udGV4dCkKKyB9CisgCisg CisrI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisgc3RhdGljIGdpbnQKKyBfa2V5 X3Nub29wZXJfY2IgKEd0a1dpZGdldCAgICp3aWRnZXQsCisgICAgICAgICAgICAgICAgICBHZGtF dmVudEtleSAqZXZlbnQsCitAQCAtNTI2LDcgKzYzNiw3IEBAIF9rZXlfc25vb3Blcl9jYiAoR3Rr V2lkZ2V0ICAgKndpZGdldCwKKyAgICAgICAgIGlidXNpbWNvbnRleHQtPnRpbWUgPSBldmVudC0+ dGltZTsKKyAgICAgfQorIAorLSAgICByZXR2YWwgPSBfcHJvY2Vzc19rZXlfZXZlbnQgKGlidXNj b250ZXh0LCBldmVudCk7CisrICAgIHJldHZhbCA9IF9wcm9jZXNzX2tleV9ldmVudCAoaWJ1c2Nv bnRleHQsIGV2ZW50LCBpYnVzaW1jb250ZXh0KTsKKyAKKyAgICAgaWYgKGlidXNpbWNvbnRleHQg IT0gTlVMTCkgeworICAgICAgICAgLyogdW5yZWYgaWJ1c2ltY29udGV4dCBjb3VsZCBjYWxsIGli dXNfaW1fY29udGV4dF9maW5hbGl6ZSBoZXJlCitAQCAtNTM3LDYgKzY0Nyw3IEBAIF9rZXlfc25v b3Blcl9jYiAoR3RrV2lkZ2V0ICAgKndpZGdldCwKKyAKKyAgICAgcmV0dXJuIHJldHZhbDsKKyB9 CisrI2VuZGlmCisgCisgc3RhdGljIGdib29sZWFuCisgX2dldF9ib29sZWFuX2Vudihjb25zdCBn Y2hhciAqbmFtZSwKK0BAIC01OTksNyArNzEwLDExIEBAIGlidXNfaW1fY29udGV4dF9jbGFzc19p bml0IChJQnVzSU1Db250ZXh0Q2xhc3MgKmNsYXNzKQorICAgICBpbV9jb250ZXh0X2NsYXNzLT5m b2N1c19vdXQgPSBpYnVzX2ltX2NvbnRleHRfZm9jdXNfb3V0OworICAgICBpbV9jb250ZXh0X2Ns YXNzLT5maWx0ZXJfa2V5cHJlc3MgPSBpYnVzX2ltX2NvbnRleHRfZmlsdGVyX2tleXByZXNzOwor ICAgICBpbV9jb250ZXh0X2NsYXNzLT5nZXRfcHJlZWRpdF9zdHJpbmcgPSBpYnVzX2ltX2NvbnRl eHRfZ2V0X3ByZWVkaXRfc3RyaW5nOworKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQp CisrICAgIGltX2NvbnRleHRfY2xhc3MtPnNldF9jbGllbnRfd2lkZ2V0ID0gaWJ1c19pbV9jb250 ZXh0X3NldF9jbGllbnRfd2lkZ2V0OworKyNlbHNlCisgICAgIGltX2NvbnRleHRfY2xhc3MtPnNl dF9jbGllbnRfd2luZG93ID0gaWJ1c19pbV9jb250ZXh0X3NldF9jbGllbnRfd2luZG93OworKyNl bmRpZgorICAgICBpbV9jb250ZXh0X2NsYXNzLT5zZXRfY3Vyc29yX2xvY2F0aW9uID0gaWJ1c19p bV9jb250ZXh0X3NldF9jdXJzb3JfbG9jYXRpb247CisgICAgIGltX2NvbnRleHRfY2xhc3MtPnNl dF91c2VfcHJlZWRpdCA9IGlidXNfaW1fY29udGV4dF9zZXRfdXNlX3ByZWVkaXQ7CisgICAgIGlt X2NvbnRleHRfY2xhc3MtPnNldF9zdXJyb3VuZGluZyA9IGlidXNfaW1fY29udGV4dF9zZXRfc3Vy cm91bmRpbmc7CitAQCAtNjMwLDggKzc0NSwxMCBAQCBpYnVzX2ltX2NvbnRleHRfY2xhc3NfaW5p dCAoSUJ1c0lNQ29udGV4dENsYXNzICpjbGFzcykKKyAgICAgICAgIGdfc2lnbmFsX2xvb2t1cCAo InJldHJpZXZlLXN1cnJvdW5kaW5nIiwgR19UWVBFX0ZST01fQ0xBU1MgKGNsYXNzKSk7CisgICAg IGdfYXNzZXJ0IChfc2lnbmFsX3JldHJpZXZlX3N1cnJvdW5kaW5nX2lkICE9IDApOworIAorKyNp ZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorICAgICBfdXNlX2tleV9zbm9vcGVyID0g IV9nZXRfYm9vbGVhbl9lbnYgKCJJQlVTX0RJU0FCTEVfU05PT1BFUiIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIShFTkFCTEVfU05PT1BFUikpOworKyNlbmRp ZgorICAgICBfdXNlX3N5bmNfbW9kZSA9IF9nZXRfYm9vbGVhbl9lbnYgKCJJQlVTX0VOQUJMRV9T WU5DX01PREUiLCBGQUxTRSk7CisgICAgIF91c2VfZGlzY2FyZF9wYXNzd29yZCA9IF9nZXRfYm9v bGVhbl9lbnYgKCJJQlVTX0RJU0NBUkRfUEFTU1dPUkQiLCBGQUxTRSk7CisgCitAQCAtNjU2LDYg Kzc3Myw3IEBAIGlidXNfaW1fY29udGV4dF9jbGFzc19pbml0IChJQnVzSU1Db250ZXh0Q2xhc3Mg KmNsYXNzKQorICAgICBnX3N0cmZyZWV2IChhcHBzKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyB9CisgCisrI2lmICFHVEtfQ0hFQ0tfVkVSU0lP TiAoMywgOTgsIDQpCisgICAgIC8qIGVudiBJQlVTX0RJU0FCTEVfU05PT1BFUiBkb2VzIG5vdCBl eGlzdCAqLworICAgICBpZiAoX3VzZV9rZXlfc25vb3BlcikgeworICAgICAgICAgLyogZGlzYWJs ZSBzbm9vcGVyIGlmIGFwcCBpcyBpbiBfbm9fc25vb3Blcl9hcHBzICovCitAQCAtNjY0LDYgKzc4 Miw3IEBAIGlidXNfaW1fY29udGV4dF9jbGFzc19pbml0IChJQnVzSU1Db250ZXh0Q2xhc3MgKmNs YXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbm9fc25vb3Bl cl9hcHBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSk7 CisgICAgIH0KKysjZW5kaWYKKyAgICAgaWYgKCFfdXNlX2Rpc2NhcmRfcGFzc3dvcmQpIHsKKyAg ICAgICAgIENIRUNLX0FQUF9JTl9DU1ZfRU5WX1ZBUklBQkxFUyAoX3VzZV9kaXNjYXJkX3Bhc3N3 b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQlVTX0RJU0NB UkRfUEFTU1dPUkRfQVBQUywKK0BAIC02ODYsNiArODA1LDcgQEAgaWJ1c19pbV9jb250ZXh0X2Ns YXNzX2luaXQgKElCdXNJTUNvbnRleHRDbGFzcyAqY2xhc3MpCisgICAgIH0KKyAKKyAKKysjaWYg IUdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKyAgICAgLyogYWx3YXlzIGluc3RhbGwgc25v b3BlciAqLworICAgICBpZiAoX2tleV9zbm9vcGVyX2lkID09IDApIHsKKyAjcHJhZ21hIEdDQyBk aWFnbm9zdGljIHB1c2gKK0BAIC02OTMsNiArODEzLDcgQEAgaWJ1c19pbV9jb250ZXh0X2NsYXNz X2luaXQgKElCdXNJTUNvbnRleHRDbGFzcyAqY2xhc3MpCisgICAgICAgICBfa2V5X3Nub29wZXJf aWQgPSBndGtfa2V5X3Nub29wZXJfaW5zdGFsbCAoX2tleV9zbm9vcGVyX2NiLCBOVUxMKTsKKyAj cHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAgICB9CisrI2VuZGlmCisgCisgICAgIF9kYWVt b25fbmFtZV93YXRjaF9pZCA9IGdfYnVzX3dhdGNoX25hbWUgKEdfQlVTX1RZUEVfU0VTU0lPTiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1c19idXNf Z2V0X3NlcnZpY2VfbmFtZSAoX2J1cyksCitAQCAtNzA2LDYgKzgyNyw3IEBAIGlidXNfaW1fY29u dGV4dF9jbGFzc19pbml0IChJQnVzSU1Db250ZXh0Q2xhc3MgKmNsYXNzKQorIHN0YXRpYyB2b2lk CisgaWJ1c19pbV9jb250ZXh0X2NsYXNzX2ZpbmkgKElCdXNJTUNvbnRleHRDbGFzcyAqY2xhc3Mp CisgeworKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorICAgICBpZiAoX2tleV9z bm9vcGVyX2lkICE9IDApIHsKKyAgICAgICAgIElERUJVRyAoInNub29wZXIgaXMgdGVybWluYXRl ZC4iKTsKKyAjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKK0BAIC03MTQsNiArODM2LDcgQEAg aWJ1c19pbV9jb250ZXh0X2NsYXNzX2ZpbmkgKElCdXNJTUNvbnRleHRDbGFzcyAqY2xhc3MpCisg I3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgIF9rZXlfc25vb3Blcl9pZCA9IDA7 CisgICAgIH0KKysjZW5kaWYKKyAKKyAgICAgZ19idXNfdW53YXRjaF9uYW1lIChfZGFlbW9uX25h bWVfd2F0Y2hfaWQpOworIH0KK0BAIC04NDksNyArOTcyLDExIEBAIGlidXNfaW1fY29udGV4dF9m aW5hbGl6ZSAoR09iamVjdCAqb2JqKQorICAgICAgICAgaWJ1c19wcm94eV9kZXN0cm95ICgoSUJ1 c1Byb3h5ICopaWJ1c2ltY29udGV4dC0+aWJ1c2NvbnRleHQpOworICAgICB9CisgCisrI2lmIEdU S19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKysgICAgaWJ1c19pbV9jb250ZXh0X3NldF9jbGll bnRfd2lkZ2V0ICgoR3RrSU1Db250ZXh0ICopaWJ1c2ltY29udGV4dCwgTlVMTCk7CisrI2Vsc2UK KyAgICAgaWJ1c19pbV9jb250ZXh0X3NldF9jbGllbnRfd2luZG93ICgoR3RrSU1Db250ZXh0ICop aWJ1c2ltY29udGV4dCwgTlVMTCk7CisrI2VuZGlmCisgCisgICAgIGlmIChpYnVzaW1jb250ZXh0 LT5zbGF2ZSkgeworICAgICAgICAgZ19vYmplY3RfdW5yZWYgKGlidXNpbWNvbnRleHQtPnNsYXZl KTsKK0BAIC04NjQsOCArOTkxLDEzIEBAIGlidXNfaW1fY29udGV4dF9maW5hbGl6ZSAoR09iamVj dCAqb2JqKQorICAgICAgICAgcGFuZ29fYXR0cl9saXN0X3VucmVmIChpYnVzaW1jb250ZXh0LT5w cmVlZGl0X2F0dHJzKTsKKyAgICAgfQorIAorKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgs IDQpCisrICAgIGdfcXVldWVfZnJlZV9mdWxsIChpYnVzaW1jb250ZXh0LT5ldmVudHNfcXVldWUs CisrICAgICAgICAgICAgICAgICAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpZ2RrX2V2ZW50X3VucmVm KTsKKysjZWxzZQorICAgICBnX3F1ZXVlX2ZyZWVfZnVsbCAoaWJ1c2ltY29udGV4dC0+ZXZlbnRz X3F1ZXVlLAorICAgICAgICAgICAgICAgICAgICAgICAgKEdEZXN0cm95Tm90aWZ5KWdka19ldmVu dF9mcmVlKTsKKysjZW5kaWYKKyAKKyAgICAgR19PQkpFQ1RfQ0xBU1MocGFyZW50X2NsYXNzKS0+ ZmluYWxpemUgKG9iaik7CisgfQorQEAgLTkwMiw3ICsxMDM0LDExIEBAIGlidXNfaW1fY29udGV4 dF9jbGVhcl9wcmVlZGl0X3RleHQgKElCdXNJTUNvbnRleHQgKmlidXNpbWNvbnRleHQpCisgCisg c3RhdGljIGdib29sZWFuCisgaWJ1c19pbV9jb250ZXh0X2ZpbHRlcl9rZXlwcmVzcyAoR3RrSU1D b250ZXh0ICpjb250ZXh0LAorKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrRXZlbnQgICAgICpldmVudCkKKysjZWxz ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50S2V5ICAqZXZlbnQp CisrI2VuZGlmCisgeworICAgICBJREVCVUcgKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgCitAQCAt OTE3LDYgKzEwNTMsMTUgQEAgaWJ1c19pbV9jb250ZXh0X2ZpbHRlcl9rZXlwcmVzcyAoR3RrSU1D b250ZXh0ICpjb250ZXh0LAorICAgICBpZiAoIWlidXNpbWNvbnRleHQtPmhhc19mb2N1cykKKyAg ICAgICAgIHJldHVybiBndGtfaW1fY29udGV4dF9maWx0ZXJfa2V5cHJlc3MgKGlidXNpbWNvbnRl eHQtPnNsYXZlLCBldmVudCk7CisgCisrI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkK KysgICAgeworKyAgICAgICAgR2RrTW9kaWZpZXJUeXBlIHN0YXRlID0gZ2RrX2V2ZW50X2dldF9t b2RpZmllcl9zdGF0ZSAoZXZlbnQpOworKyAgICAgICAgaWYgKHN0YXRlICYgSUJVU19IQU5ETEVE X01BU0spCisrICAgICAgICAgICAgcmV0dXJuIFRSVUU7CisrICAgICAgICBpZiAoc3RhdGUgJiBJ QlVTX0lHTk9SRURfTUFTSykKKysgICAgICAgICAgICByZXR1cm4gaWJ1c19pbV9jb250ZXh0X2Nv bW1pdF9ldmVudCAoaWJ1c2ltY29udGV4dCwgZXZlbnQpOworKyAgICB9CisrI2Vsc2UKKyAgICAg aWYgKGV2ZW50LT5zdGF0ZSAmIElCVVNfSEFORExFRF9NQVNLKQorICAgICAgICAgcmV0dXJuIFRS VUU7CisgCitAQCAtOTMxLDE3ICsxMDc2LDI4IEBAIGlidXNfaW1fY29udGV4dF9maWx0ZXJfa2V5 cHJlc3MgKEd0a0lNQ29udGV4dCAqY29udGV4dCwKKyAgICAgaWYgKGlidXNpbWNvbnRleHQtPmNs aWVudF93aW5kb3cgPT0gTlVMTCAmJiBldmVudC0+d2luZG93ICE9IE5VTEwpCisgICAgICAgICBn dGtfaW1fY29udGV4dF9zZXRfY2xpZW50X3dpbmRvdyAoKEd0a0lNQ29udGV4dCAqKWlidXNpbWNv bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQt PndpbmRvdyk7CisrI2VuZGlmCisgCisgICAgIF9yZXF1ZXN0X3N1cnJvdW5kaW5nX3RleHQgKGli dXNpbWNvbnRleHQpOworIAorKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisrICAg IGlidXNpbWNvbnRleHQtPnRpbWUgPSBnZGtfZXZlbnRfZ2V0X3RpbWUgKGV2ZW50KTsKKysgICAg aWJ1c2ltY29udGV4dC0+c3VyZmFjZT0gZ2RrX2V2ZW50X2dldF9zdXJmYWNlIChldmVudCk7Cisr ICAgIGlidXNpbWNvbnRleHQtPmRldmljZSA9IGdka19ldmVudF9nZXRfZGV2aWNlIChldmVudCk7 CisrICAgIGdka19ldmVudF9nZXRfcG9zaXRpb24gKGV2ZW50LCAmaWJ1c2ltY29udGV4dC0+eCwg JmlidXNpbWNvbnRleHQtPnkpOworKyNlbHNlCisgICAgIGlidXNpbWNvbnRleHQtPnRpbWUgPSBl dmVudC0+dGltZTsKKysjZW5kaWYKKyAKKyAgICAgaWYgKGlidXNpbWNvbnRleHQtPmlidXNjb250 ZXh0KSB7CistICAgICAgICBpZiAoX3Byb2Nlc3Nfa2V5X2V2ZW50IChpYnVzaW1jb250ZXh0LT5p YnVzY29udGV4dCwgZXZlbnQpKQorKyAgICAgICAgaWYgKF9wcm9jZXNzX2tleV9ldmVudCAoaWJ1 c2ltY29udGV4dC0+aWJ1c2NvbnRleHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBldmVudCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNpbWNvbnRleHQp KSB7CisgICAgICAgICAgICAgcmV0dXJuIFRSVUU7CistICAgICAgICBlbHNlCisrICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgIHJldHVybiBndGtfaW1fY29udGV4dF9maWx0ZXJfa2V5cHJl c3MgKGlidXNpbWNvbnRleHQtPnNsYXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGV2ZW50KTsKKysgICAgICAgIH0KKyAgICAgfQorIAorICAg ICAvKiBBdCB0aGlzIHBvaW50IHdlIF9zaG91bGRfIGJlIHdhaXRpbmcgZm9yIHRoZSBJQnVzIGNv bnRleHQgdG8gYmUKK0BAIC05NTIsMTIgKzExMDgsMjEgQEAgaWJ1c19pbV9jb250ZXh0X2ZpbHRl cl9rZXlwcmVzcyAoR3RrSU1Db250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWJ1c19idXNfaXNfY29ubmVjdGVkIChfYnVzKSA9PSBGQUxTRSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZBTFNFKTsKKyAgICAgZ19xdWV1ZV9wdXNoX3RhaWwgKGlidXNpbWNv bnRleHQtPmV2ZW50c19xdWV1ZSwKKysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQor KyAgICAgICAgICAgICAgICAgICAgICAgZ2RrX2V2ZW50X3JlZiAoZXZlbnQpKTsKKysjZWxzZQor ICAgICAgICAgICAgICAgICAgICAgICAgZ2RrX2V2ZW50X2NvcHkgKChHZGtFdmVudCAqKWV2ZW50 KSk7CisrI2VuZGlmCisgCisgICAgIGlmIChnX3F1ZXVlX2dldF9sZW5ndGggKGlidXNpbWNvbnRl eHQtPmV2ZW50c19xdWV1ZSkgPiBNQVhfUVVFVUVEX0VWRU5UUykgeworICAgICAgICAgZ193YXJu aW5nICgiRXZlbnRzIHF1ZXVlIGdyb3dpbmcgdG9vIGJpZywgd2lsbCBzdGFydCB0byBkcm9wLiIp OworKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisrICAgICAgICBnZGtfZXZlbnRf dW5yZWYgKChHZGtFdmVudCAqKQorKyAgICAgICAgICAgICAgICAgICAgICAgICBnX3F1ZXVlX3Bv cF9oZWFkIChpYnVzaW1jb250ZXh0LT5ldmVudHNfcXVldWUpKTsKKysjZWxzZQorICAgICAgICAg Z2RrX2V2ZW50X2ZyZWUgKChHZGtFdmVudCAqKQorICAgICAgICAgICAgICAgICAgICAgICAgIGdf cXVldWVfcG9wX2hlYWQgKGlidXNpbWNvbnRleHQtPmV2ZW50c19xdWV1ZSkpOworKyNlbmRpZgor ICAgICB9CisgCisgICAgIHJldHVybiBUUlVFOworQEAgLTk2NiwyNiArMTEzMSwyOSBAQCBpYnVz X2ltX2NvbnRleHRfZmlsdGVyX2tleXByZXNzIChHdGtJTUNvbnRleHQgKmNvbnRleHQsCisgc3Rh dGljIHZvaWQKKyBpYnVzX2ltX2NvbnRleHRfZm9jdXNfaW4gKEd0a0lNQ29udGV4dCAqY29udGV4 dCkKKyB7CistICAgIElERUJVRyAoIiVzIiwgX19GVU5DVElPTl9fKTsKKy0KKyAgICAgSUJ1c0lN Q29udGV4dCAqaWJ1c2ltY29udGV4dCA9IChJQnVzSU1Db250ZXh0ICopIGNvbnRleHQ7CisrICAg IEd0a1dpZGdldCAqd2lkZ2V0ID0gTlVMTDsKKysKKysgICAgSURFQlVHICgiJXMiLCBfX0ZVTkNU SU9OX18pOworIAorICAgICBpZiAoaWJ1c2ltY29udGV4dC0+aGFzX2ZvY3VzKQorICAgICAgICAg cmV0dXJuOworIAorICAgICAvKiBkb24ndCBzZXQgZm9jdXMgb24gcGFzc3dvcmQgZW50cnkgKi8K KysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorKyAgICB3aWRnZXQgPSBpYnVzaW1j b250ZXh0LT5jbGllbnRfd2luZG93OworKyNlbHNlCisgICAgIGlmIChpYnVzaW1jb250ZXh0LT5j bGllbnRfd2luZG93ICE9IE5VTEwpIHsKKy0gICAgICAgIEd0a1dpZGdldCAqd2lkZ2V0OworLQor ICAgICAgICAgZ2RrX3dpbmRvd19nZXRfdXNlcl9kYXRhIChpYnVzaW1jb250ZXh0LT5jbGllbnRf d2luZG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIgKikm d2lkZ2V0KTsKKyAKKy0gICAgICAgIGlmIChHVEtfSVNfRU5UUlkgKHdpZGdldCkgJiYKKy0gICAg ICAgICAgICAhZ3RrX2VudHJ5X2dldF92aXNpYmlsaXR5IChHVEtfRU5UUlkgKHdpZGdldCkpKSB7 CistICAgICAgICAgICAgcmV0dXJuOworLSAgICAgICAgfQorICAgICB9CisrI2VuZGlmCisgCisr ICAgIGlmICh3aWRnZXQgJiYgR1RLX0lTX0VOVFJZICh3aWRnZXQpICYmCisrICAgICAgICAhZ3Rr X2VudHJ5X2dldF92aXNpYmlsaXR5IChHVEtfRU5UUlkgKHdpZGdldCkpKSB7CisrICAgICAgICBy ZXR1cm47CisrICAgIH0KKyAgICAgLyogRG8gbm90IGNhbGwgZ3RrX2ltX2NvbnRleHRfZm9jdXNf b3V0KCkgaGVyZS4KKyAgICAgICogZ29vZ2xlLWNocm9tZSdzIG5vdGlmaWNhdGlvbiBwb3B1cCB3 aW5kb3cgKFB1c2hidWxsZXQpCisgICAgICAqIHRha2VzIHRoZSBmb2N1cyBhbmQgdGhlIHBvcHVw IHdpbmRvdyBkaXNhcHBlYXJzLgorQEAgLTEwMTQsMTAgKzExODIsMTAgQEAgaWJ1c19pbV9jb250 ZXh0X2ZvY3VzX2luIChHdGtJTUNvbnRleHQgKmNvbnRleHQpCisgCisgICAgIC8qIHNldF9jdXJz b3JfbG9jYXRpb25faW50ZXJuYWwoKSB3aWxsIGdldCBvcmlnaW4gZnJvbSBYIHNlcnZlciwKKyAg ICAgICogaXQgYmxvY2tzIFVJLiBTbyBkZWxheSBpdCB0byBpZGxlIGNhbGxiYWNrLiAqLworLSAg ICBnZGtfdGhyZWFkc19hZGRfaWRsZV9mdWxsIChHX1BSSU9SSVRZX0RFRkFVTFRfSURMRSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdTb3VyY2VGdW5jKSBfc2V0X2N1cnNvcl9s b2NhdGlvbl9pbnRlcm5hbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19vYmpl Y3RfcmVmIChpYnVzaW1jb250ZXh0KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KEdEZXN0cm95Tm90aWZ5KSBnX29iamVjdF91bnJlZik7CisrICAgIGdfaWRsZV9hZGRfZnVsbCAo R19QUklPUklUWV9ERUZBVUxUX0lETEUsCisrICAgICAgICAgICAgICAgICAgICAgKEdTb3VyY2VG dW5jKSBfc2V0X2N1cnNvcl9sb2NhdGlvbl9pbnRlcm5hbCwKKysgICAgICAgICAgICAgICAgICAg ICBnX29iamVjdF9yZWYgKGlidXNpbWNvbnRleHQpLAorKyAgICAgICAgICAgICAgICAgICAgIChH RGVzdHJveU5vdGlmeSkgZ19vYmplY3RfdW5yZWYpOworIAorICAgICAvKiByZXRyaWV2ZSB0aGUg aW5pdGlhbCBzdXJyb3VuZGluZy10ZXh0IChyZWdhcmRsZXNzIG9mIHdoZXRoZXIKKyAgICAgICog dGhlIGN1cnJlbnQgSUJ1cyBlbmdpbmUgbmVlZHMgc3Vycm91bmRpbmctdGV4dCkgKi8KK0BAIC0x MTIyLDcgKzEyOTAsNyBAQCBpYnVzX2ltX2NvbnRleHRfZ2V0X3ByZWVkaXRfc3RyaW5nIChHdGtJ TUNvbnRleHQgICAqY29udGV4dCwKKyB9CisgCisgCistI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAo MywgOTMsIDApCisrI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisgLyogVXNlIHRo ZSBidXR0b24tcHJlc3MtZXZlbnQgc2lnbmFsIHVudGlsIEd0a0lNQ29udGV4dCBhbHdheXMgZW1p dHMgdGhlIHJlc2V0CisgICogc2lnbmFsLgorICAqIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H Tk9NRS9ndGsvbWVyZ2VfcmVxdWVzdHMvNDYwCitAQCAtMTE3MSw4ICsxMzM5LDE1IEBAIF9jb25u ZWN0X2J1dHRvbl9wcmVzc19ldmVudCAoSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCwKKyB9 CisgI2VuZGlmCisgCisrI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKyBzdGF0aWMg dm9pZAorLWlidXNfaW1fY29udGV4dF9zZXRfY2xpZW50X3dpbmRvdyAoR3RrSU1Db250ZXh0ICpj b250ZXh0LCBHZGtXaW5kb3cgKmNsaWVudCkKKytpYnVzX2ltX2NvbnRleHRfc2V0X2NsaWVudF93 aWRnZXQgKEd0a0lNQ29udGV4dCAqY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEd0a1dpZGdldCAgICAqY2xpZW50KQorKyNlbHNlCisrc3RhdGljIHZvaWQKKytp YnVzX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3cgKEd0a0lNQ29udGV4dCAqY29udGV4dCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka1dpbmRvdyAgICAqY2xpZW50 KQorKyNlbmRpZgorIHsKKyAgICAgSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dDsKKyAKK0BA IC0xMTgxLDcgKzEzNTYsNyBAQCBpYnVzX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3cgKEd0 a0lNQ29udGV4dCAqY29udGV4dCwgR2RrV2luZG93ICpjbGllbnQpCisgICAgIGlidXNpbWNvbnRl eHQgPSBJQlVTX0lNX0NPTlRFWFQgKGNvbnRleHQpOworIAorICAgICBpZiAoaWJ1c2ltY29udGV4 dC0+Y2xpZW50X3dpbmRvdykgeworLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDkzLCAwKQor KyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorICAgICAgICAgaWYgKGlidXNpbWNv bnRleHQtPnVzZV9idXR0b25fcHJlc3NfZXZlbnQpCisgICAgICAgICAgICAgX2Nvbm5lY3RfYnV0 dG9uX3ByZXNzX2V2ZW50IChpYnVzaW1jb250ZXh0LCBGQUxTRSk7CisgI2VuZGlmCitAQCAtMTE5 MSwyNiArMTM2Niw0MSBAQCBpYnVzX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3cgKEd0a0lN Q29udGV4dCAqY29udGV4dCwgR2RrV2luZG93ICpjbGllbnQpCisgCisgICAgIGlmIChjbGllbnQg IT0gTlVMTCkgeworICAgICAgICAgaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdyA9IGdfb2Jq ZWN0X3JlZiAoY2xpZW50KTsKKy0jaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5MywgMCkKKysj aWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKyAgICAgICAgIGlmICghaWJ1c2ltY29u dGV4dC0+dXNlX2J1dHRvbl9wcmVzc19ldmVudCkKKyAgICAgICAgICAgICBfY29ubmVjdF9idXR0 b25fcHJlc3NfZXZlbnQgKGlidXNpbWNvbnRleHQsIFRSVUUpOworICNlbmRpZgorICAgICB9Cisr I2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKysgICAgaWYgKGlidXNpbWNvbnRleHQt PnNsYXZlKQorKyAgICAgICAgZ3RrX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aWRnZXQgKGlidXNp bWNvbnRleHQtPnNsYXZlLCBjbGllbnQpOworKyNlbHNlCisgICAgIGlmIChpYnVzaW1jb250ZXh0 LT5zbGF2ZSkKKyAgICAgICAgIGd0a19pbV9jb250ZXh0X3NldF9jbGllbnRfd2luZG93IChpYnVz aW1jb250ZXh0LT5zbGF2ZSwgY2xpZW50KTsKKysjZW5kaWYKKyB9CisgCisgc3RhdGljIHZvaWQK KyBfc2V0X3JlY3Rfc2NhbGVfZmFjdG9yX3dpdGhfd2luZG93IChHZGtSZWN0YW5nbGUgKmFyZWEs CisrI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHdGtXaWRnZXQgICAgKndpbmRvdykKKysjZWxzZQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka1dpbmRvdyAgICAqd2luZG93KQorKyNlbmRp ZgorIHsKKyAjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDEwLCAwKQorICAgICBpbnQgc2NhbGVf ZmFjdG9yOworIAorICAgICBnX2Fzc2VydCAoYXJlYSk7CisrI2lmIEdUS19DSEVDS19WRVJTSU9O ICgzLCA5OCwgNCkKKysgICAgZ19hc3NlcnQgKEdUS19JU19XSURHRVQgKHdpbmRvdykpOworKwor KyAgICBzY2FsZV9mYWN0b3IgPSBndGtfd2lkZ2V0X2dldF9zY2FsZV9mYWN0b3IgKHdpbmRvdyk7 CisrI2Vsc2UKKyAgICAgZ19hc3NlcnQgKEdES19JU19XSU5ET1cgKHdpbmRvdykpOworIAorICAg ICBzY2FsZV9mYWN0b3IgPSBnZGtfd2luZG93X2dldF9zY2FsZV9mYWN0b3IgKHdpbmRvdyk7Cisr I2VuZGlmCisgICAgIGFyZWEtPnggKj0gc2NhbGVfZmFjdG9yOworICAgICBhcmVhLT55ICo9IHNj YWxlX2ZhY3RvcjsKKyAgICAgYXJlYS0+d2lkdGggKj0gc2NhbGVfZmFjdG9yOworQEAgLTEyMzAs NiArMTQyMCw3IEBAIF9zZXRfY3Vyc29yX2xvY2F0aW9uX2ludGVybmFsIChJQnVzSU1Db250ZXh0 ICppYnVzaW1jb250ZXh0KQorIAorICAgICBhcmVhID0gaWJ1c2ltY29udGV4dC0+Y3Vyc29yX2Fy ZWE7CisgCisrI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisgI2lmZGVmIEdES19X SU5ET1dJTkdfV0FZTEFORAorICAgICBpZiAoR0RLX0lTX1dBWUxBTkRfRElTUExBWSAoZ2RrX2Rp c3BsYXlfZ2V0X2RlZmF1bHQgKCkpKSB7CisgICAgICAgICBnZG91YmxlIHB4LCBweTsKK0BAIC0x MjUzLDEwICsxNDQ0LDE0IEBAIF9zZXRfY3Vyc29yX2xvY2F0aW9uX2ludGVybmFsIChJQnVzSU1D b250ZXh0ICppYnVzaW1jb250ZXh0KQorICAgICAgICAgICAgIGFyZWEuaGVpZ2h0KTsKKyAgICAg ICAgIHJldHVybiBGQUxTRTsKKyAgICAgfQorKyNlbmRpZgorICNlbmRpZgorIAorICAgICBpZiAo YXJlYS54ID09IC0xICYmIGFyZWEueSA9PSAtMSAmJiBhcmVhLndpZHRoID09IDAgJiYgYXJlYS5o ZWlnaHQgPT0gMCkgeworLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwgOTEsIDApCisrI2lmIEdU S19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKysgICAgICAgIGFyZWEueCA9IDA7CisrICAgICAg ICBhcmVhLnkgKz0gZ3RrX3dpZGdldF9nZXRfaGVpZ2h0IChpYnVzaW1jb250ZXh0LT5jbGllbnRf d2luZG93KTsKKysjZWxpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMiwgOTEsIDApCisgICAgICAgICBh cmVhLnggPSAwOworICAgICAgICAgYXJlYS55ICs9IGdka193aW5kb3dfZ2V0X2hlaWdodCAoaWJ1 c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdyk7CisgI2Vsc2UKK0BAIC0xMjY3LDkgKzE0NjIsMzkg QEAgX3NldF9jdXJzb3JfbG9jYXRpb25faW50ZXJuYWwgKElCdXNJTUNvbnRleHQgKmlidXNpbWNv bnRleHQpCisgI2VuZGlmCisgICAgIH0KKyAKKysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDkz LCAwKQorKyAgICB7CisrI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKysgICAgICAg IEd0a05hdGl2ZSAqbmF0aXZlID0gZ3RrX3dpZGdldF9nZXRfbmF0aXZlICgKKysgICAgICAgICAg ICAgICAgaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdyk7CisrICAgICAgICBHdGtSb290ICpy b290ID0gZ3RrX3dpZGdldF9nZXRfcm9vdCAoaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdyk7 CisrICAgICAgICBkb3VibGUgbngsIG55OworKyAgICAgICAgZG91YmxlIHB4LCBweTsKKysgICAg ICAgIGd0a19uYXRpdmVfZ2V0X3N1cmZhY2VfdHJhbnNmb3JtIChuYXRpdmUsICZueCwgJm55KTsK KysgICAgICAgIHB4ID0gKGRvdWJsZSlhcmVhLnggKyBpYnVzaW1jb250ZXh0LT54IC0gbng7Cisr ICAgICAgICBweSA9IChkb3VibGUpYXJlYS55ICsgaWJ1c2ltY29udGV4dC0+eSAtIG55OworKyAg ICAgICAgZ3RrX3dpZGdldF90cmFuc2xhdGVfY29vcmRpbmF0ZXMgKGlidXNpbWNvbnRleHQtPmNs aWVudF93aW5kb3csCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KEd0a1dpZGdldCAqKXJvb3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHgsIHB5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZweCwgJnB5KTsKKysgICAgICAgIGFyZWEueCA9IChpbnQpcHg7CisrICAgICAgICBhcmVhLnkg PSAoaW50KXB5OworKyNlbHNlCisrICAgICAgICBHdGtOYXRpdmUgKm5hdGl2ZSA9IGd0a193aWRn ZXRfZ2V0X25hdGl2ZSAoCisrICAgICAgICAgICAgICAgIGlidXNpbWNvbnRleHQtPmNsaWVudF93 aW5kb3cpOworKyAgICAgICAgR2RrU3VyZmFjZSAqc3VyZmFjZSA9IGd0a19uYXRpdmVfZ2V0X3N1 cmZhY2UgKG5hdGl2ZSk7CisrICAgICAgICBpbnQgcm9vdF94ID0gMDsKKysgICAgICAgIGludCBy b290X3kgPSAwOworKyAgICAgICAgZ2RrX3N1cmZhY2VfZ2V0X3Bvc2l0aW9uIChzdXJmYWNlLCAm cm9vdF94LCAmcm9vdF95KTsKKysgICAgICAgIGFyZWEueCArPSByb290X3g7CisrICAgICAgICBh cmVhLnkgKz0gcm9vdF95OworKyNlbmRpZgorKyAgICB9CisrI2Vsc2UKKyAgICAgZ2RrX3dpbmRv d19nZXRfcm9vdF9jb29yZHMgKGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5kb3csCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmVhLngsIGFyZWEueSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZhcmVhLngsICZhcmVhLnkpOworKyNlbmRpZgorICAgICBfc2V0 X3JlY3Rfc2NhbGVfZmFjdG9yX3dpdGhfd2luZG93ICgmYXJlYSwgaWJ1c2ltY29udGV4dC0+Y2xp ZW50X3dpbmRvdyk7CisgICAgIGlidXNfaW5wdXRfY29udGV4dF9zZXRfY3Vyc29yX2xvY2F0aW9u IChpYnVzaW1jb250ZXh0LT5pYnVzY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFyZWEueCwKK0BAIC0xMzI2LDcgKzE1NTEsMTEgQEAgZ2V0X3Nl bGVjdGlvbl9hbmNob3JfcG9pbnQgKElCdXNJTUNvbnRleHQgKmlidXNpbWNvbnRleHQsCisgICAg IGlmIChpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93ID09IE5VTEwpIHsKKyAgICAgICAgIHJl dHVybiBjdXJzb3JfcG9zOworICAgICB9CisrI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwg NCkKKysgICAgd2lkZ2V0ID0gaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdzsKKysjZWxzZQor ICAgICBnZGtfd2luZG93X2dldF91c2VyX2RhdGEgKGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5k b3csIChncG9pbnRlciAqKSZ3aWRnZXQpOworKyNlbmRpZgorIAorICAgICBpZiAoIUdUS19JU19U RVhUX1ZJRVcgKHdpZGdldCkpeworICAgICAgICAgcmV0dXJuIGN1cnNvcl9wb3M7CitAQCAtMTQ0 MCw2ICsxNjY5LDcgQEAgX2lidXNfY29udGV4dF9jb21taXRfdGV4dF9jYiAoSUJ1c0lucHV0Q29u dGV4dCAqaWJ1c2NvbnRleHQsCisgICAgIF9yZXF1ZXN0X3N1cnJvdW5kaW5nX3RleHQgKGlidXNp bWNvbnRleHQpOworIH0KKyAKKysjaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKyBz dGF0aWMgZ2Jvb2xlYW4KKyBfa2V5X2lzX21vZGlmaWVyIChndWludCBrZXl2YWwpCisgeworQEAg LTE2MTUsNiArMTg0NSw3IEBAIF9jcmVhdGVfZ2RrX2V2ZW50IChJQnVzSU1Db250ZXh0ICppYnVz aW1jb250ZXh0LAorIG91dDoKKyAgICAgcmV0dXJuIGV2ZW50OworIH0KKysjZW5kaWYKKyAKKyBz dGF0aWMgdm9pZAorIF9pYnVzX2NvbnRleHRfZm9yd2FyZF9rZXlfZXZlbnRfY2IgKElCdXNJbnB1 dENvbnRleHQgICppYnVzY29udGV4dCwKK0BAIC0xNjI0LDkgKzE4NTUsMzIgQEAgX2lidXNfY29u dGV4dF9mb3J3YXJkX2tleV9ldmVudF9jYiAoSUJ1c0lucHV0Q29udGV4dCAgKmlidXNjb250ZXh0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNJTUNvbnRleHQgICAg ICppYnVzaW1jb250ZXh0KQorIHsKKyAgICAgSURFQlVHICgiJXMiLCBfX0ZVTkNUSU9OX18pOwor KyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisrICAgIGludCBncm91cCA9IDA7Cisr ICAgIGdfcmV0dXJuX2lmX2ZhaWwgKEdUS19JU19JTV9DT05URVhUIChpYnVzaW1jb250ZXh0KSk7 CisrICAgIGlmIChrZXljb2RlID09IDAgJiYgaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdykg eworKyAgICAgICAgR2RrRGlzcGxheSAqZGlzcGxheSA9IGd0a193aWRnZXRfZ2V0X2Rpc3BsYXkg KGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5kb3cpOworKyAgICAgICAgR2RrS2V5bWFwS2V5ICpr ZXlzID0gTlVMTDsKKysgICAgICAgIGdpbnQgbl9rZXlzID0gMDsKKysgICAgICAgIGlmICghZ2Rr X2Rpc3BsYXlfbWFwX2tleXZhbCAoZGlzcGxheSwga2V5dmFsLCAma2V5cywgJm5fa2V5cykpCisr ICAgICAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIHBhcnNlIGtleWNvZGUgZnJvbSBrZXl2 YWwgJXgiLCBrZXl2YWwpOworKyAgICAgICBrZXljb2RlID0ga2V5cy0+a2V5Y29kZTsKKysgICAg ICAgZ3JvdXAgPSBrZXlzLT5ncm91cDsKKysgICAgfQorKyAgICBndGtfaW1fY29udGV4dF9maWx0 ZXJfa2V5ICgKKysgICAgICAgIEdUS19JTV9DT05URVhUIChpYnVzaW1jb250ZXh0KSwKKysgICAg ICAgIChzdGF0ZSAmIElCVVNfUkVMRUFTRV9NQVNLKSA/IEZBTFNFIDogVFJVRSwKKysgICAgICAg IGlidXNpbWNvbnRleHQtPnN1cmZhY2UsCisrICAgICAgICBpYnVzaW1jb250ZXh0LT5kZXZpY2Us CisrICAgICAgICBpYnVzaW1jb250ZXh0LT50aW1lLAorKyAgICAgICAga2V5Y29kZSwKKysgICAg ICAgIChHZGtNb2RpZmllclR5cGUpc3RhdGUsCisrICAgICAgICBncm91cCk7CisrI2Vsc2UKKyAg ICAgR2RrRXZlbnRLZXkgKmV2ZW50ID0gX2NyZWF0ZV9nZGtfZXZlbnQgKGlidXNpbWNvbnRleHQs IGtleXZhbCwga2V5Y29kZSwgc3RhdGUpOworICAgICBnZGtfZXZlbnRfcHV0ICgoR2RrRXZlbnQg KilldmVudCk7CisgICAgIGdka19ldmVudF9mcmVlICgoR2RrRXZlbnQgKilldmVudCk7CisrI2Vu ZGlmCisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtMTY2MCw3ICsxOTE0LDcgQEAgX2lidXNfY29u dGV4dF91cGRhdGVfcHJlZWRpdF90ZXh0X2NiIChJQnVzSW5wdXRDb250ZXh0ICAqaWJ1c2NvbnRl eHQsCisgICAgICAgICBpYnVzaW1jb250ZXh0LT5wcmVlZGl0X2F0dHJzID0gTlVMTDsKKyAgICAg fQorIAorLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDkzLCAwKQorKyNpZiAhR1RLX0NIRUNL X1ZFUlNJT04gKDMsIDk4LCA0KQorICAgICBpZiAoIWlidXNpbWNvbnRleHQtPnVzZV9idXR0b25f cHJlc3NfZXZlbnQgJiYKKyAgICAgICAgIG1vZGUgPT0gSUJVU19FTkdJTkVfUFJFRURJVF9DT01N SVQpIHsKKyAgICAgICAgIGlmIChpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93KSB7CitAQCAt MTg0NywxMCArMjEwMSwxOCBAQCBfY3JlYXRlX2lucHV0X2NvbnRleHRfZG9uZSAoSUJ1c0J1cyAg ICAgICAqYnVzLAorICAgICAgICAgfQorIAorICAgICAgICAgaWYgKCFnX3F1ZXVlX2lzX2VtcHR5 IChpYnVzaW1jb250ZXh0LT5ldmVudHNfcXVldWUpKSB7CisrI2lmIEdUS19DSEVDS19WRVJTSU9O ICgzLCA5OCwgNCkKKysgICAgICAgICAgICBHZGtFdmVudCAqZXZlbnQ7CisrI2Vsc2UKKyAgICAg ICAgICAgICBHZGtFdmVudEtleSAqZXZlbnQ7CisrI2VuZGlmCisgICAgICAgICAgICAgd2hpbGUg KChldmVudCA9IGdfcXVldWVfcG9wX2hlYWQgKGlidXNpbWNvbnRleHQtPmV2ZW50c19xdWV1ZSkp KSB7CistICAgICAgICAgICAgICAgIF9wcm9jZXNzX2tleV9ldmVudCAoY29udGV4dCwgZXZlbnQp OworKyAgICAgICAgICAgICAgICBfcHJvY2Vzc19rZXlfZXZlbnQgKGNvbnRleHQsIGV2ZW50LCBp YnVzaW1jb250ZXh0KTsKKysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorKyAgICAg ICAgICAgICAgICBnZGtfZXZlbnRfdW5yZWYgKGV2ZW50KTsKKysjZWxzZQorICAgICAgICAgICAg ICAgICBnZGtfZXZlbnRfZnJlZSAoKEdka0V2ZW50ICopZXZlbnQpOworKyNlbmRpZgorICAgICAg ICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfQorZGlmZiAtLWdpdCBhL2NsaWVudC9ndGs0L01h a2VmaWxlLmFtIGIvY2xpZW50L2d0azQvTWFrZWZpbGUuYW0KK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMC4uOGQ4YjMxZGIKKy0tLSAvZGV2L251bGwKKysrKyBiL2NsaWVudC9n dGs0L01ha2VmaWxlLmFtCitAQCAtMCwwICsxLDY2IEBACisrIyB2aW06c2V0IG5vZXQgdHM9NDoK KysjCisrIyBpYnVzIC0gVGhlIElucHV0IEJ1cworKyMKKysjIENvcHlyaWdodCAoYykgMjAyMCBU YWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysjIENvcHlyaWdodCAo YykgMjAyMCBSZWQgSGF0LCBJbmMuCisrIworKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyMgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrIyB2ZXJz aW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKysjCisrIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyMgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisr IyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG cmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxCisrIyBVU0EKKysKKytsaWJpYnVzID0g JCh0b3BfYnVpbGRkaXIpL3NyYy9saWJpYnVzLUBJQlVTX0FQSV9WRVJTSU9OQC5sYQorKworK0FN X0NQUEZMQUdTID0gXAorKwktSSQodG9wX3NyY2Rpcikvc3JjIFwKKysJLUkkKHRvcF9idWlsZGRp cikvc3JjIFwKKysJJChOVUxMKQorKworK2ltbW9kdWxlZGlyID0gQEdUSzRfSU1fTU9EVUxFRElS QAorK2ltbW9kdWxlX0xUTElCUkFSSUVTID0gbGliaW0taWJ1cy5sYQorKworK2xpYmltX2lidXNf bGFfU09VUkNFUyA9IFwKKysJaWJ1c2ltLmMgXAorKwlpYnVzaW1jb250ZXh0LmMgXAorKwlpYnVz aW1jb250ZXh0LmggXAorKwkkKE5VTEwpCisrCisrbGliaW1faWJ1c19sYV9ERVBFTkRFTkNJRVMg PSAkKGxpYmlidXMpCisrCisrbGliaW1faWJ1c19sYV9DRkxBR1MgPSBcCisrCUBHVEs0X0NGTEFH U0AgXAorKwlAREJVU19DRkxBR1NAIFwKKysJLURHX0xPR19ET01BSU49XCJJQlVTXCIgXAorKwkk KE5VTEwpCisrCisrbGliaW1faWJ1c19sYV9MSUJBREQgPSBcCisrCUBHVEs0X0xJQlNAIFwKKysJ QERCVVNfTElCU0AgXAorKwkkKGxpYmlidXMpIFwKKysJJChOVUxMKQorK2xpYmltX2lidXNfbGFf TERGTEFHUyA9IFwKKysJLWF2b2lkLXZlcnNpb24gXAorKwktbW9kdWxlIFwKKysJJChOVUxMKQor KworKyQobGliaWJ1cyk6CisrCShjZCAkKHRvcF9idWlsZGRpcikvc3JjOyBtYWtlICkKKysKKytF WFRSQV9ESVNUID0gXAorKwkkKE5VTEwpCisrCisrdGVzdDogYWxsCisrCUdUS19JTV9NT0RVTEU9 aWJ1cyBnZWRpdAorKworKy1pbmNsdWRlICQodG9wX3NyY2RpcikvZ2l0Lm1rCitkaWZmIC0tZ2l0 IGEvY2xpZW50L2d0azQvaWJ1c2ltLmMgYi9jbGllbnQvZ3RrNC9pYnVzaW0uYworbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi41ZWNmOTc3OAorLS0tIC9kZXYvbnVsbAorKysr IGIvY2xpZW50L2d0azQvaWJ1c2ltLmMKK0BAIC0wLDAgKzEsNTIgQEAKKysvKiAtKi0gbW9kZTog QzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICovCisrLyog dmltOnNldCBldCB0cz00OiAqLworKy8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCisrICogQ29weXJp Z2h0IChDKSAyMDA4LTIwMTAgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Cisr ICogQ29weXJpZ2h0IChDKSAyMDIwIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21h aWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDIwIFJlZCBIYXQsIEluYy4KKysgKgor KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisrICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2Us IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrICoKKysgKiBUaGlzIGxp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKysgKgorKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgKiBMaWNlbnNlIGFsb25n IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisr ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z dG9uLCBNQSAgMDIxMTAtMTMwMQorKyAqIFVTQQorKyAqLworKworKyNpbmNsdWRlIDxndGsvZ3Rr Lmg+CisrI2luY2x1ZGUgPGd0ay9ndGtpbW1vZHVsZS5oPgorKyNpbmNsdWRlIDxpYnVzLmg+Cisr I2luY2x1ZGUgImlidXNpbWNvbnRleHQuaCIKKysKKytHX01PRFVMRV9FWFBPUlQgdm9pZAorK2df aW9faW1faWJ1c19sb2FkIChHVHlwZU1vZHVsZSAqdHlwZV9tb2R1bGUpCisreworKyAgICBzdGF0 aWMgZ2Jvb2xlYW4gaW5pdGVkID0gRkFMU0U7CisrCisrICAgIGlmICghaW5pdGVkKSB7CisrICAg ICAgICBpYnVzX2luaXQgKCk7CisrICAgICAgICBpYnVzX2ltX2NvbnRleHRfcmVnaXN0ZXJfdHlw ZSAodHlwZV9tb2R1bGUpOworKyAgICAgICAgZ19pb19leHRlbnNpb25fcG9pbnRfaW1wbGVtZW50 ICgiZ3RrLWltLW1vZHVsZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElCVVNfVFlQRV9JTV9DT05URVhULAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiaWJ1cyIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDUwKTsKKysgICAgICAgIGluaXRlZCA9IFRSVUU7CisrICAgIH0KKysgICAgLyogbWFrZSBt b2R1bGUgcmVzaWRlbnQgKi8KKysgICAgZ190eXBlX21vZHVsZV91c2UgKHR5cGVfbW9kdWxlKTsK Kyt9CisrCisrR19NT0RVTEVfRVhQT1JUIHZvaWQKKytnX2lvX2ltX2lidXNfdW5sb2FkIChHVHlw ZU1vZHVsZSAqdHlwZV9tb2R1bGUpCisreworKyAgICBnX3R5cGVfbW9kdWxlX3VudXNlICh0eXBl X21vZHVsZSk7CisrfQorKworZGlmZiAtLWdpdCBhL2NsaWVudC9ndGs0L2lidXNpbWNvbnRleHQu YyBiL2NsaWVudC9ndGs0L2lidXNpbWNvbnRleHQuYworbmV3IGZpbGUgbW9kZSAxMjAwMDAKK2lu ZGV4IDAwMDAwMDAwLi40MTg5NmYwNQorLS0tIC9kZXYvbnVsbAorKysrIGIvY2xpZW50L2d0azQv aWJ1c2ltY29udGV4dC5jCitAQCAtMCwwICsxIEBACisrLi4vZ3RrMi9pYnVzaW1jb250ZXh0LmMK K1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL2NsaWVudC9ndGs0L2li dXNpbWNvbnRleHQuaCBiL2NsaWVudC9ndGs0L2lidXNpbWNvbnRleHQuaAorbmV3IGZpbGUgbW9k ZSAxMjAwMDAKK2luZGV4IDAwMDAwMDAwLi4yOTc1OTg4MworLS0tIC9kZXYvbnVsbAorKysrIGIv Y2xpZW50L2d0azQvaWJ1c2ltY29udGV4dC5oCitAQCAtMCwwICsxIEBACisrLi4vZ3RrMi9pYnVz aW1jb250ZXh0LmgKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL2Nv bmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggOWVkNWNiNjYuLmZmZWEzMzE3IDEwMDY0 NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0xOTMsNiArMTkz LDE1IEBAIEFDX0FSR19FTkFCTEUoZ3RrMywKKyApCisgQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9H VEszXSwgW3Rlc3QgeCIkZW5hYmxlX2d0azMiID0geCJ5ZXMiXSkKKyAKKysjIC0tZW5hYmxlLWd0 azQgb3B0aW9uLgorK0FDX0FSR19FTkFCTEUoZ3RrNCwKKysgICAgQVNfSEVMUF9TVFJJTkcoWy0t ZW5hYmxlLWd0azRdLAorKyAgICAgICAgICAgICAgICAgICBbQnVpbGQgZ3RrNCBpbSBtb2R1bGVd KSwKKysgICAgW2VuYWJsZV9ndGs0PSRlbmFibGV2YWxdLAorKyAgICBbZW5hYmxlX2d0azQ9bm9d CisrKQorK0FNX0NPTkRJVElPTkFMKFtFTkFCTEVfR1RLNF0sIFt0ZXN0IHgiJGVuYWJsZV9ndGs0 IiA9IHgieWVzIl0pCisrCisgIyAtLWRpc2FibGUteGltIG9wdGlvbi4KKyBBQ19BUkdfRU5BQkxF KHhpbSwKKyAgICAgQVNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS14aW1dLAorQEAgLTI1Nyw2ICsy NjYsMTggQEAgaWYgdGVzdCB4IiRlbmFibGVfZ2RrM193YXlsYW5kIiAhPSB4InllcyI7IHRoZW4K KyBmaQorIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfR0RLM19XQVlMQU5EXSwgW3Rlc3QgeCIkZW5h YmxlX2dkazNfd2F5bGFuZCIgPSB4InllcyJdKQorIAorK2lmIHRlc3QgeCIkZW5hYmxlX2d0azQi ID0geCJ5ZXMiOyB0aGVuCisrICAgICMgY2hlY2sgZm9yIGd0azQKKysgICAgUEtHX0NIRUNLX01P RFVMRVMoR1RLNCwgWworKyAgICAgICAgZ3RrNAorKyAgICBdKQorKworKyAgICBndGs0X2JpbmFy eV92ZXJzaW9uPWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWd0a19iaW5hcnlfdmVyc2lvbiBndGs0 YAorKyAgICBHVEs0X0lNX01PRFVMRURJUj0iJGxpYmRpciIvZ3RrLTQuMC8kZ3RrNF9iaW5hcnlf dmVyc2lvbi9pbW1vZHVsZXMKKytlbHNlCisrICAgIGVuYWJsZV9ndGs0PSJubyAoZGlzYWJsZWQs IHVzZSAtLWVuYWJsZS1ndGs0IHRvIGVuYWJsZSkiCisrZmkKKysKKyBpZiB0ZXN0IHgiJGVuYWJs ZV94aW0iID0geCJ5ZXMiOyB0aGVuCisgICAgICMgQ2hlY2sgZm9yIHgxMQorICAgICBQS0dfQ0hF Q0tfTU9EVUxFUyhYMTEsIFsKK0BAIC00NzgsNiArNDk5LDE0IEBAIEFDX0FSR19XSVRIKGd0azMt aW0tbW9kdWxlLWRpciwKKyApCisgQUNfU1VCU1QoR1RLM19JTV9NT0RVTEVESVIpCisgCisrIyBE ZWZpbmUgZ3RrNCBpbW1vZHVsZSBkaXIuCisrQUNfQVJHX1dJVEgoZ3RrNC1pbS1tb2R1bGUtZGly LAorKyAgICBBU19IRUxQX1NUUklORyhbLS13aXRoLWd0azQtaW0tbW9kdWxlLWRpcls9RElSXV0s CisrICAgICAgICBbU2VsZWN0IGd0azQgaW1tb2R1bGUgZGlyXSksCisrICAgIEdUSzRfSU1fTU9E VUxFRElSPSR3aXRoX2d0azRfaW1fbW9kdWxlX2RpcgorKykKKytBQ19TVUJTVChHVEs0X0lNX01P RFVMRURJUikKKysKKyBpZiB0ZXN0IHgiJGVuYWJsZV9weXRob24iID0geCJ5ZXMiOyB0aGVuCisg ICAgICMgQ2hlY2sgZm9yIGRidXMtcHl0aG9uLgorICAgICBBQ19BUkdfRU5BQkxFKGRidXMtcHl0 aG9uLWNoZWNrLAorQEAgLTczNyw2ICs3NjYsNyBAQCBpYnVzLnNwZWMKKyBjbGllbnQvTWFrZWZp bGUKKyBjbGllbnQvZ3RrMi9NYWtlZmlsZQorIGNsaWVudC9ndGszL01ha2VmaWxlCisrY2xpZW50 L2d0azQvTWFrZWZpbGUKKyBjbGllbnQveDExL01ha2VmaWxlCisgY2xpZW50L3dheWxhbmQvTWFr ZWZpbGUKKyBzcmMvTWFrZWZpbGUKK0BAIC03ODYsOCArODE2LDEwIEBAIEJ1aWxkIG9wdGlvbnM6 CisgICBFbmFibGUgcHl0aG9uMiAgICAgICAgICAgICAgICAkZW5hYmxlX3B5dGhvbjIKKyAgIEd0 azIgaW1tb2R1bGUgZGlyICAgICAgICAgICAgICRHVEsyX0lNX01PRFVMRURJUgorICAgR3RrMyBp bW1vZHVsZSBkaXIgICAgICAgICAgICAgJEdUSzNfSU1fTU9EVUxFRElSCisrICBHdGs0IGltbW9k dWxlIGRpciAgICAgICAgICAgICAkR1RLNF9JTV9NT0RVTEVESVIKKyAgIEJ1aWxkIGd0azIgaW1t b2R1bGUgICAgICAgICAgICRlbmFibGVfZ3RrMgorICAgQnVpbGQgZ3RrMyBpbW1vZHVsZSAgICAg ICAgICAgJGVuYWJsZV9ndGszCisrICBCdWlsZCBndGs0IGltbW9kdWxlICAgICAgICAgICAkZW5h YmxlX2d0azQKKyAgIEJ1aWxkIFhJTSBhZ2VudCBzZXJ2ZXIgICAgICAgICRlbmFibGVfeGltCisg ICBCdWlsZCB3YXlsYW5kIHN1cHBvcnQgICAgICAgICAkZW5hYmxlX3dheWxhbmQKKyAgIEJ1aWxk IGdkazMgd2F5bGFuZCBzdXBwb3J0ICAgICRlbmFibGVfZ2RrM193YXlsYW5kCistLSAKKzIuMjgu MAorCitGcm9tIGQwYTQ3YzNjODJiMWEwYzI2M2ZmOGI5NWY5Y2Y1YzBhNWQxZjIyOGQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+CitEYXRlOiBGcmksIDggSmFuIDIwMjEgMTg6NDg6MTMgKzA5MDAKK1N1YmplY3Q6IFtQ QVRDSF0gY2xpZW50L2d0azI6IEFkZCBYVHJhbnNsYXRlQ29vcmRpbmF0ZXMgZm9yIEdUSzQgWDEx CisgY29vcmRpbmF0ZQorCitHZGtXaW5kb3cgaGFkIHRoZSBhYnNvbHV0ZSBjb29yZGlhbnRlIGlu IHRoZSBwcml2YXRlIGNsYXNzIGluIEdUSzMKK2J1dCB0aGUgYWJzb2x1dGUgY29vcmRpYW5lIG5v IGxvbmdlciBleGlzdHMgaW4gR1RLNCBmb3IgV2F5bGFuZC4KK05vdyBnZXQgdGhlIHRvcGxldmVs IHdpbmRvdyBjb29yZGlhbnRlIGZvciB0aGUgd2Fya2Fyb3VuZCBpbiBHVEs0CitidXQgdGhlIGNv b3JkaWFudGUgb2YgdGhlIGlubmVyIHdpZGdldHMgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSB0b28u CisKK0JVRz1odHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ3RrLy0vaXNzdWVzLzMwMjQj bm90ZV85ODc4MzUKKy0tLQorIGNsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYyB8IDQ3ICsrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMzEgaW5z ZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jbGllbnQvZ3RrMi9p YnVzaW1jb250ZXh0LmMgYi9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKK2luZGV4IGEyM2Zj MmUzLi5lMTUzMDgxZCAxMDA2NDQKKy0tLSBhL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwor KysrIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCitAQCAtMzksNiArMzksMTMgQEAKKyAj ZW5kaWYKKyAjZW5kaWYKKyAKKysjaWZkZWYgR0RLX1dJTkRPV0lOR19YMTEKKysjaWYgR1RLX0NI RUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorKyNpbmNsdWRlIDxnZGsveDExL2dka3guaD4KKysjaW5j bHVkZSA8WDExL1hsaWIuaD4KKysjZW5kaWYKKysjZW5kaWYKKysKKyAjaWYgIUdUS19DSEVDS19W RVJTSU9OICgyLCA5MSwgMCkKKyAjICBkZWZpbmUgREVQUkVDQVRFRF9HREtfS0VZU1lNUyAxCisg I2VuZGlmCitAQCAtMTQ2MiwyNCArMTQ2OSwzMyBAQCBfc2V0X2N1cnNvcl9sb2NhdGlvbl9pbnRl cm5hbCAoSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCkKKyAjZW5kaWYKKyAgICAgfQorIAor LSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTMsIDApCistICAgIHsKKyAjaWYgR1RLX0NIRUNL X1ZFUlNJT04gKDMsIDk4LCA0KQorKyNpZmRlZiBHREtfV0lORE9XSU5HX1gxMQorKyAgICBHZGtE aXNwbGF5ICpkaXNwbGF5ID0gZ3RrX3dpZGdldF9nZXRfZGlzcGxheSAoaWJ1c2ltY29udGV4dC0+ Y2xpZW50X3dpbmRvdyk7CisrICAgIGlmIChHREtfSVNfWDExX0RJU1BMQVkgKGRpc3BsYXkpKSB7 CisrICAgICAgICBEaXNwbGF5ICp4ZGlzcGxheSA9IGdka194MTFfZGlzcGxheV9nZXRfeGRpc3Bs YXkgKGRpc3BsYXkpOworKyAgICAgICAgV2luZG93IHJvb3Rfd2luZG93ID0gZ2RrX3gxMV9kaXNw bGF5X2dldF94cm9vdHdpbmRvdyAoZGlzcGxheSk7CisgICAgICAgICBHdGtOYXRpdmUgKm5hdGl2 ZSA9IGd0a193aWRnZXRfZ2V0X25hdGl2ZSAoCisgICAgICAgICAgICAgICAgIGlidXNpbWNvbnRl eHQtPmNsaWVudF93aW5kb3cpOworLSAgICAgICAgR3RrUm9vdCAqcm9vdCA9IGd0a193aWRnZXRf Z2V0X3Jvb3QgKGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5kb3cpOworLSAgICAgICAgZG91Ymxl IG54LCBueTsKKy0gICAgICAgIGRvdWJsZSBweCwgcHk7CistICAgICAgICBndGtfbmF0aXZlX2dl dF9zdXJmYWNlX3RyYW5zZm9ybSAobmF0aXZlLCAmbngsICZueSk7CistICAgICAgICBweCA9IChk b3VibGUpYXJlYS54ICsgaWJ1c2ltY29udGV4dC0+eCAtIG54OworLSAgICAgICAgcHkgPSAoZG91 YmxlKWFyZWEueSArIGlidXNpbWNvbnRleHQtPnkgLSBueTsKKy0gICAgICAgIGd0a193aWRnZXRf dHJhbnNsYXRlX2Nvb3JkaW5hdGVzIChpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93LAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHdGtXaWRnZXQgKilyb290 LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB4LCBweSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHgsICZweSk7CistICAg ICAgICBhcmVhLnggPSAoaW50KXB4OworLSAgICAgICAgYXJlYS55ID0gKGludClweTsKKy0jZWxz ZQorKyAgICAgICAgR2RrU3VyZmFjZSAqc3VyZmFjZSA9IGd0a19uYXRpdmVfZ2V0X3N1cmZhY2Ug KG5hdGl2ZSk7CisrICAgICAgICAvKiBUaGUgd2luZG93IGlzIHRoZSB0b3BsZXZlbCB3aW5kb3cg YnV0IG5vdCB0aGUgaW5uZXIgdGV4dCB3aWRnZXQuCisrICAgICAgICAgKiBVbmZvcnR1bmF0ZWxs eSBHVEs0IGNhbm5vdCBnZXQgdGhlIGNvb3JkaW5hdGUgb2YgdGhlIHRleHQgd2lkZ2V0LgorKyAg ICAgICAgICovCisrICAgICAgICBXaW5kb3cgd2luZG93ID0gZ2RrX3gxMV9zdXJmYWNlX2dldF94 aWQgKHN1cmZhY2UpOworKyAgICAgICAgV2luZG93IGNoaWxkOworKyAgICAgICAgaW50IHgsIHk7 CisrICAgICAgICBYVHJhbnNsYXRlQ29vcmRpbmF0ZXMgKHhkaXNwbGF5LCB3aW5kb3csIHJvb3Rf d2luZG93LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAmeCwgJnksICZj aGlsZCk7CisrICAgICAgICBYV2luZG93QXR0cmlidXRlcyB4d2E7CisrICAgICAgICBYR2V0V2lu ZG93QXR0cmlidXRlcyAoeGRpc3BsYXksIHdpbmRvdywgJnh3YSk7CisrICAgICAgICBhcmVhLngg PSB4IC0geHdhLnggKyBhcmVhLng7CisrICAgICAgICBhcmVhLnkgPSB5IC0geHdhLnkgKyBhcmVh Lnk7CisrICAgICAgICBhcmVhLndpZHRoID0geHdhLndpZHRoOworKyAgICAgICAgYXJlYS5oZWln aHQgPSB4d2EuaGVpZ2h0OworKyAgICB9CisrI2VuZGlmCisrI2VsaWYgR1RLX0NIRUNLX1ZFUlNJ T04gKDMsIDkzLCAwKQorKyAgICB7CisgICAgICAgICBHdGtOYXRpdmUgKm5hdGl2ZSA9IGd0a193 aWRnZXRfZ2V0X25hdGl2ZSAoCisgICAgICAgICAgICAgICAgIGlidXNpbWNvbnRleHQtPmNsaWVu dF93aW5kb3cpOworICAgICAgICAgR2RrU3VyZmFjZSAqc3VyZmFjZSA9IGd0a19uYXRpdmVfZ2V0 X3N1cmZhY2UgKG5hdGl2ZSk7CitAQCAtMTQ4OCw3ICsxNTA0LDYgQEAgX3NldF9jdXJzb3JfbG9j YXRpb25faW50ZXJuYWwgKElCdXNJTUNvbnRleHQgKmlidXNpbWNvbnRleHQpCisgICAgICAgICBn ZGtfc3VyZmFjZV9nZXRfcG9zaXRpb24gKHN1cmZhY2UsICZyb290X3gsICZyb290X3kpOworICAg ICAgICAgYXJlYS54ICs9IHJvb3RfeDsKKyAgICAgICAgIGFyZWEueSArPSByb290X3k7CistI2Vu ZGlmCisgICAgIH0KKyAjZWxzZQorICAgICBnZGtfd2luZG93X2dldF9yb290X2Nvb3JkcyAoaWJ1 c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdywKKy0tIAorMi4yOC4wCisKK0Zyb20gZWY0YzVjN2Vm NzkwY2UxZjgwZTk0YTU0NjNlMTEwZWQ0YmFlMjU0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KK0RhdGU6IFdlZCwg MjAgSmFuIDIwMjEgMTc6MjY6NDcgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSF0gc2V0dXA6IFNlYXJj aCBlbmdpbmUgbmFtZSBkaXJlY3RseQorCitDdXJyZW50bHkgdXNlcnMgY2FuIHNlYXJjaCBsYW5n dWFnZSBuYW1lcyBvbmx5IGluIHRoZSBsYW5ndWFnZSBsaXN0CitpbiBpYnVzLXNldHVwLiBBZnRl ciBhIGxhbmd1YWdlIGlzIHNlbGVjdGVkIGFuZCBvcGVuLCBlbmdpbmUgbmFtZXMgY2FuCitiZSBz ZWFyY2hlZC4KK05vdyBlbmdpbmUgbmFtZXMgYWxzbyBjYW4gYmUgc2VhcmNoZWQgaW4gdGhlIGxh bmd1YWdlIGxpc3QuCistLS0KKyBzZXR1cC9lbmdpbmVkaWFsb2cucHkgfCA0MCArKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIxIGluc2Vy dGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc2V0dXAvZW5naW5lZGlh bG9nLnB5IGIvc2V0dXAvZW5naW5lZGlhbG9nLnB5CitpbmRleCA3MmRlYWRhOC4uZTFjMzIyYmYg MTAwNjQ0CistLS0gYS9zZXR1cC9lbmdpbmVkaWFsb2cucHkKKysrKyBiL3NldHVwL2VuZ2luZWRp YWxvZy5weQorQEAgLTQsNyArNCw3IEBACisgIyBpYnVzIC0gVGhlIElucHV0IEJ1cworICMKKyAj IENvcHlyaWdodCAoYykgMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4K Ky0jIENvcHlyaWdodCAoYykgMjAxNS0yMDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2Fy YTFAZ21haWwuY29tPgorKyMgQ29weXJpZ2h0IChjKSAyMDE1LTIwMjEgVGFrYW8gRnVqaXdhcmEg PHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisgIyBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxNSBS ZWQgSGF0LCBJbmMuCisgIworICMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorQEAgLTExMiwxNSArMTEyLDIwIEBAIGNsYXNzIEVu Z2luZURpYWxvZyhHdGsuRGlhbG9nKToKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAg ICAgIGlmIHNlbGYuX19maWx0ZXJfd29yZCA9PSBOb25lOgorICAgICAgICAgICAgIHJldHVybiBU cnVlCisrICAgICAgICBpZiByb3cuYmFjazoKKysgICAgICAgICAgICByZXR1cm4gVHJ1ZQorIAor LSAgICAgICAgbmFtZSA9IHJvdy5uYW1lLmxvd2VyKCkKKy0gICAgICAgIHVudHJhbnMgPSByb3cu dW50cmFucy5sb3dlcigpCistICAgICAgICBpZiBzZWxmLl9fZmlsdGVyX3dvcmQgIT0gTm9uZToK Ky0gICAgICAgICAgICB3b3JkID0gc2VsZi5fX2ZpbHRlcl93b3JkLmxvd2VyKCkKKy0gICAgICAg ICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgod29yZCk6CistICAgICAgICAgICAgICAgIHJldHVybiBU cnVlCistICAgICAgICAgICAgaWYgdW50cmFucy5zdGFydHN3aXRoKHdvcmQpOgorLSAgICAgICAg ICAgICAgICByZXR1cm4gVHJ1ZQorKyAgICAgICAgd29yZCA9IHNlbGYuX19maWx0ZXJfd29yZC5s b3dlcigpCisrICAgICAgICBpZiB3b3JkIGluIHJvdy5uYW1lLmxvd2VyKCk6CisrICAgICAgICAg ICAgcmV0dXJuIFRydWUKKysgICAgICAgIGlmIHdvcmQgaW4gcm93LnVudHJhbnMubG93ZXIoKToK KysgICAgICAgICAgICByZXR1cm4gVHJ1ZQorKyAgICAgICAgaWYgcm93LmxhbmdfaW5mbyBhbmQg cm93Lm5hbWUgaW4gc2VsZi5fX2VuZ2luZXNfZm9yX2xhbmc6CisrICAgICAgICAgICAgZm9yIHJv d19lIGluIHNlbGYuX19lbmdpbmVzX2Zvcl9sYW5nW3Jvdy5uYW1lXToKKysgICAgICAgICAgICAg ICAgaWYgd29yZCBpbiByb3dfZS5uYW1lLmxvd2VyKCk6CisrICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gVHJ1ZQorKyAgICAgICAgICAgICAgICBpZiB3b3JkIGluIHJvd19lLnVudHJhbnMubG93 ZXIoKToKKysgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICByZXR1cm4g RmFsc2UKKyAKKyAKK0BAIC0xMjksMTEgKzEzNCw5IEBAIGNsYXNzIEVuZ2luZURpYWxvZyhHdGsu RGlhbG9nKToKKyAgICAgICAgICAgICBzZWxmLl9fc2hvd19tb3JlKCkKKyAgICAgICAgICAgICBy ZXR1cm4KKyAgICAgICAgIGlmIHJvdy5iYWNrOgorLSAgICAgICAgICAgIHNlbGYuX19maWx0ZXJf ZW50cnkuc2V0X3RleHQoJycpCisgICAgICAgICAgICAgc2VsZi5fX3Nob3dfbGFuZ19yb3dzKCkK KyAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIGlmIHJvdy5sYW5nX2luZm86CistICAgICAg ICAgICAgc2VsZi5fX2ZpbHRlcl9lbnRyeS5zZXRfdGV4dCgnJykKKyAgICAgICAgICAgICBzZWxm Ll9fc2hvd19lbmdpbmVzX2Zvcl9sYW5nKHJvdykKKyAgICAgICAgICAgICByZXR1cm4KKyAKK0BA IC0yMzIsNiArMjM1LDcgQEAgY2xhc3MgRW5naW5lRGlhbG9nKEd0ay5EaWFsb2cpOgorICAgICAg ICAgZGVzY3JpcHRpb24gPSBpMThuLmdldHRleHRfZW5naW5lX2Rlc2NyaXB0aW9uKGVuZ2luZSkK KyAgICAgICAgIHJvdyA9IHNlbGYuX19saXN0X2JveF9yb3dfbmV3KGxvbmduYW1lKQorICAgICAg ICAgcm93LnVudHJhbnMgPSBlbmdpbmUuZ2V0X2xvbmduYW1lKCkKKysgICAgICAgIHJvdy5yYW5r ID0gZW5naW5lLmdldF9yYW5rKCkKKyAgICAgICAgIHJvdy5zZXRfdG9vbHRpcF90ZXh0KGRlc2Ny aXB0aW9uKQorICAgICAgICAgcm93LmVuZ2luZSA9IGVuZ2luZQorICAgICAgICAgd2lkZ2V0ID0g c2VsZi5fX3BhZGRlZF9sYWJlbF9uZXcobG9uZ25hbWUsCitAQCAtMjYwLDE2ICsyNjQsMTMgQEAg Y2xhc3MgRW5naW5lRGlhbG9nKEd0ay5EaWFsb2cpOgorICAgICAgICAgbGFuZyA9IHJvdy5uYW1l CisgCisgICAgICAgICBkZWYgY21wX2VuZ2luZShhLCBiKToKKy0gICAgICAgICAgICBpZiBhLmdl dF9yYW5rKCkgPT0gYi5nZXRfcmFuaygpOgorLSAgICAgICAgICAgICAgICBhX2xvbmduYW1lID0g aTE4bi5nZXR0ZXh0X2VuZ2luZV9sb25nbmFtZShhKQorLSAgICAgICAgICAgICAgICBiX2xvbmdu YW1lID0gaTE4bi5nZXR0ZXh0X2VuZ2luZV9sb25nbmFtZShiKQorLSAgICAgICAgICAgICAgICBy ZXR1cm4gbG9jYWxlLnN0cmNvbGwoYV9sb25nbmFtZSwgYl9sb25nbmFtZSkKKy0gICAgICAgICAg ICByZXR1cm4gaW50KGIuZ2V0X3JhbmsoKSAtIGEuZ2V0X3JhbmsoKSkKKysgICAgICAgICAgICBp ZiBhLnJhbmsgPT0gYi5yYW5rOgorKyAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlLnN0cmNv bGwoYS5uYW1lLCBiLm5hbWUpCisrICAgICAgICAgICAgcmV0dXJuIGludChiLnJhbmsgLSBhLnJh bmspCisgCisgICAgICAgICBzZWxmLl9fZW5naW5lc19mb3JfbGFuZ1tsYW5nXS5zb3J0KAorICAg ICAgICAgICAgICAgICBrZXkgPSBmdW5jdG9vbHMuY21wX3RvX2tleShjbXBfZW5naW5lKSkKKy0g ICAgICAgIGZvciBlIGluIHNlbGYuX19lbmdpbmVzX2Zvcl9sYW5nW2xhbmddOgorLSAgICAgICAg ICAgIHJvdyA9IHNlbGYuX19lbmdpbmVfcm93X25ldyhlKQorKyAgICAgICAgZm9yIHJvdyBpbiBz ZWxmLl9fZW5naW5lc19mb3JfbGFuZ1tsYW5nXToKKyAgICAgICAgICAgICBzZWxmLl9fbGlzdC5h ZGQocm93KQorIAorIAorQEAgLTMyOSw3ICszMzAsOCBAQCBjbGFzcyBFbmdpbmVEaWFsb2coR3Rr LkRpYWxvZyk6CisgICAgICAgICAgICAgaWYgbCBub3QgaW4gc2VsZi5fX2VuZ2luZXNfZm9yX2xh bmc6CisgICAgICAgICAgICAgICAgIHNlbGYuX19lbmdpbmVzX2Zvcl9sYW5nW2xdID0gW10KKyAg ICAgICAgICAgICBpMThuLmluaXRfdGV4dGRvbWFpbihlLmdldF90ZXh0ZG9tYWluKCkpCistICAg ICAgICAgICAgc2VsZi5fX2VuZ2luZXNfZm9yX2xhbmdbbF0uYXBwZW5kKGUpCisrICAgICAgICAg ICAgcm93ID0gc2VsZi5fX2VuZ2luZV9yb3dfbmV3KGUpCisrICAgICAgICAgICAgc2VsZi5fX2Vu Z2luZXNfZm9yX2xhbmdbbF0uYXBwZW5kKHJvdykKKyAKKyAgICAgICAgICAgICAjIFJldHJpZXZl IFVudHJhbnNsYXRlZCBsYW5ndWFnZSBuYW1lcy4KKyAgICAgICAgICAgICB1bnRyYW5zID0gSUJ1 cy5nZXRfdW50cmFuc2xhdGVkX2xhbmd1YWdlX25hbWUoZS5nZXRfbGFuZ3VhZ2UoKSkKKy0tIAor Mi4yOC4wCisKCmRpZmYgLS1naXQgYS9pYnVzLnNwZWMgYi9pYnVzLnNwZWMKaW5kZXggNTZiNjM3 Zi4uYjVmNzRmMiAxMDA2NDQKLS0tIGEvaWJ1cy5zcGVjCisrKyBiL2lidXMuc3BlYwpAQCAtMTIs MTMgKzEyLDI1IEBACiAjIGZvciBieXRlY29tcGlsZSBpbiAlJXtfZGF0YWRpcn0vaWJ1cy9zZXR1 cAogJWdsb2JhbCBfX3B5dGhvbiAle19fcHl0aG9uM30KIAorJWlmICgwJXs/ZmVkb3JhfSA+IDMz IHx8IDAlez9yaGVsfSA+IDgpCislYmNvbmRfd2l0aG91dCBndGs0CislZWxzZQorJWJjb25kX3dp dGggICAgZ3RrNAorJWVuZGlmCisKICVpZiAld2l0aF9wa2dfY29uZmlnCiAleyE/Z3RrMl9iaW5h cnlfdmVyc2lvbjogJWdsb2JhbCBndGsyX2JpbmFyeV92ZXJzaW9uICUocGtnLWNvbmZpZyAgLS12 YXJpYWJsZT1ndGtfYmluYXJ5X3ZlcnNpb24gZ3RrKy0yLjApfQogJXshP2d0azNfYmluYXJ5X3Zl cnNpb246ICVnbG9iYWwgZ3RrM19iaW5hcnlfdmVyc2lvbiAlKHBrZy1jb25maWcgIC0tdmFyaWFi bGU9Z3RrX2JpbmFyeV92ZXJzaW9uIGd0aystMy4wKX0KKyVpZiAle3dpdGggZ3RrNH0KKyV7IT9n dGs0X2JpbmFyeV92ZXJzaW9uOiAlZ2xvYmFsIGd0azRfYmluYXJ5X3ZlcnNpb24gJShwa2ctY29u ZmlnICAtLXZhcmlhYmxlPWd0a19iaW5hcnlfdmVyc2lvbiBndGs0KX0KKyVlbHNlCisleyE/Z3Rr NF9iaW5hcnlfdmVyc2lvbjogJWdsb2JhbCBndGs0X2JpbmFyeV92ZXJzaW9uID8uPy4/fQorJWVu ZGlmCiAlZ2xvYmFsIGdsaWJfdmVyICUoWyAtYSAle19saWJkaXJ9L3BrZ2NvbmZpZy9nbGliLTIu MC5wYyBdICYmIHBrZy1jb25maWcgLS1tb2R2ZXJzaW9uIGdsaWItMi4wIHwgY3V0IC1kLiAtZiAx LDIgfHwgZWNobyAtbiAiOTk5IikKICVlbHNlCiAleyE/Z3RrMl9iaW5hcnlfdmVyc2lvbjogJWds b2JhbCBndGsyX2JpbmFyeV92ZXJzaW9uID8uPy4/fQogJXshP2d0azNfYmluYXJ5X3ZlcnNpb246 ICVnbG9iYWwgZ3RrM19iaW5hcnlfdmVyc2lvbiA/Lj8uP30KKyV7IT9ndGs0X2JpbmFyeV92ZXJz aW9uOiAlZ2xvYmFsIGd0azRfYmluYXJ5X3ZlcnNpb24gPy4/Lj99CiAlZ2xvYmFsIGdsaWJfdmVy IDAKICVlbmRpZgogCkBAIC0yNiw3ICszOCw3IEBACiAKIE5hbWU6ICAgICAgICAgICBpYnVzCiBW ZXJzaW9uOiAgICAgICAgMS41LjIzCi1SZWxlYXNlOiAgICAgICAgMiV7P2Rpc3R9CitSZWxlYXNl OiAgICAgICAgMyV7P2Rpc3R9CiBTdW1tYXJ5OiAgICAgICAgSW50ZWxsaWdlbnQgSW5wdXQgQnVz IGZvciBMaW51eCBPUwogTGljZW5zZTogICAgICAgIExHUEx2MisKIFVSTDogICAgICAgICAgICBo dHRwczovL2dpdGh1Yi5jb20vaWJ1cy8lbmFtZS93aWtpCkBAIC00NCw2ICs1Niw5IEBAIEJ1aWxk UmVxdWlyZXM6ICBsaWJ0b29sCiBCdWlsZFJlcXVpcmVzOiAgZ2xpYjItZG9jCiBCdWlsZFJlcXVp cmVzOiAgZ3RrMi1kZXZlbAogQnVpbGRSZXF1aXJlczogIGd0azMtZGV2ZWwKKyVpZiAle3dpdGgg Z3RrNH0KK0J1aWxkUmVxdWlyZXM6ICBndGs0LWRldmVsCislZW5kaWYKIEJ1aWxkUmVxdWlyZXM6 ICBkYnVzLWdsaWItZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICBkYnVzLXB5dGhvbi1kZXZlbCA+PSAl e2RidXNfcHl0aG9uX3ZlcnNpb259CiBCdWlsZFJlcXVpcmVzOiAgZGVza3RvcC1maWxlLXV0aWxz CkBAIC0xMDMsMTIgKzExOCw2IEBAIFJlcXVpcmVzOiAgICAgICAgICAgICAgICV7X3NiaW5kaXJ9 L2FsdGVybmF0aXZlcwogUmVxdWlyZXMocG9zdCk6ICAgICAgICAgJXtfc2JpbmRpcn0vYWx0ZXJu YXRpdmVzCiBSZXF1aXJlcyhwb3N0dW4pOiAgICAgICAle19zYmluZGlyfS9hbHRlcm5hdGl2ZXMK IAotJWlmICgwJXs/ZmVkb3JhfSA+IDI5IHx8IDAlez9yaGVsfSA+IDgpCi0jIE9ic29sZXRlcyBp YnVzLXhrYmMgYnkgaWJ1cyB4a2IgZW5naW5lCi1Qcm92aWRlczogaWJ1cy14a2JjID0gMS4zLjQK LU9ic29sZXRlczogaWJ1cy14a2JjIDwgMS4zLjQKLSVlbmRpZgotCiAlZ2xvYmFsIF94aW5wdXRj b25mICV7X3N5c2NvbmZkaXJ9L1gxMS94aW5pdC94aW5wdXQuZC9pYnVzLmNvbmYKIAogJWRlc2Ny aXB0aW9uCkBAIC0xNTAsNiArMTU5LDE3IEBAIFJlcXVpcmVzKHBvc3QpOiBnbGliMiA+PSAle2ds aWJfdmVyfQogJWRlc2NyaXB0aW9uIGd0azMKIFRoaXMgcGFja2FnZSBjb250YWlucyBJQnVzIElN IG1vZHVsZSBmb3IgR1RLMwogCislaWYgJXt3aXRoIGd0azR9CislcGFja2FnZSBndGs0CitTdW1t YXJ5OiAgICAgICAgSUJ1cyBJTSBtb2R1bGUgZm9yIEdUSzQKK1JlcXVpcmVzOiAgICAgICAle25h bWV9LWxpYnMlez9faXNhfSAgID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CitSZXF1aXJlczogICAg ICAgZ2xpYjIgPj0gJXtnbGliX3Zlcn0KK1JlcXVpcmVzKHBvc3QpOiBnbGliMiA+PSAle2dsaWJf dmVyfQorCislZGVzY3JpcHRpb24gZ3RrNAorVGhpcyBwYWNrYWdlIGNvbnRhaW5zIElCdXMgSU0g bW9kdWxlIGZvciBHVEs0CislZW5kaWYKKwogJXBhY2thZ2Ugc2V0dXAKIFN1bW1hcnk6ICAgICAg ICBJQnVzIHNldHVwIHV0aWxpdHkKIFJlcXVpcmVzOiAgICAgICAle25hbWV9ID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9CkBAIC0xNTcsNyArMTc3LDcgQEAgUmVxdWlyZXM6ICAgICAgICV7bmFtZX0g PSAle3ZlcnNpb259LSV7cmVsZWFzZX0KIFJlcXVpcmVzOiAgICAgICBweXRob24zLWdvYmplY3QK IEJ1aWxkUmVxdWlyZXM6ICBnb2JqZWN0LWludHJvc3BlY3Rpb24tZGV2ZWwKIEJ1aWxkUmVxdWly ZXM6ICBweWdvYmplY3QzLWRldmVsCi1CdWlsZFJlcXVpcmVzOiBtYWtlCitCdWlsZFJlcXVpcmVz OiAgbWFrZQogQnVpbGRBcmNoOiAgICAgIG5vYXJjaAogCiAlZGVzY3JpcHRpb24gc2V0dXAKQEAg LTI0NSw2ICsyNjUsOCBAQCB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgaW5zdGFsbGVkICV7bmFt ZX0gcGFja2FnZS4KICVhdXRvc2V0dXAgLVMgZ2l0CiAjIGNwIGNsaWVudC9ndGsyL2lidXNpbWNv bnRleHQuYyBjbGllbnQvZ3RrMy9pYnVzaW1jb250ZXh0LmMgfHwgOgogIyBjcCBjbGllbnQvZ3Rr Mi9pYnVzaW0uYyBjbGllbnQvZ3RrMy9pYnVzaW0uYyB8fCA6CisjIGNwIGNsaWVudC9ndGsyL2li dXNpbWNvbnRleHQuYyBjbGllbnQvZ3RrNC9pYnVzaW1jb250ZXh0LmMgfHwgOgorY3AgY2xpZW50 L2d0azIvaWJ1c2ltY29udGV4dC5jIGNsaWVudC9ndGszL2lidXNpbWNvbnRleHQuYyB8fCA6CiAK IAogIyBwcmVwIHRlc3QKQEAgLTI1Niw2ICsyNzgsMTEgQEAgZG8KICAgICAgICAgYWJvcnQKICAg ICBmaQogZG9uZQorZGlmZiBjbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgY2xpZW50L2d0azQv aWJ1c2ltY29udGV4dC5jCitpZiB0ZXN0ICQ/IC1uZSAwIDsgdGhlbgorICAgIGVjaG8gIkhhdmUg dG8gY29weSBpYnVzaW1jb250ZXh0LmMgaW50byBjbGllbnQvZ3RrNCIKKyAgICBhYm9ydAorZmkK IAogJWJ1aWxkCiAjYXV0b3JlY29uZiAtZiAtaSAtdgpAQCAtMjY2LDYgKzI5Myw5IEBAIGF1dG9y ZWNvbmYgLWYgLWkgLXYKICAgICAtLWRpc2FibGUtc3RhdGljIFwKICAgICAtLWVuYWJsZS1ndGsy IFwKICAgICAtLWVuYWJsZS1ndGszIFwKKyVpZiAle3dpdGggZ3RrNH0KKyAgICAtLWVuYWJsZS1n dGs0IFwKKyVlbmRpZgogICAgIC0tZW5hYmxlLXhpbSBcCiAgICAgLS1lbmFibGUtZ3RrLWRvYyBc CiAgICAgLS1lbmFibGUtc3Vycm91bmRpbmctdGV4dCBcCkBAIC0yODgsNiArMzE4LDkgQEAgbWFr ZSBpbnN0YWxsIERFU1RESVI9JFJQTV9CVUlMRF9ST09UIElOU1RBTEw9J2luc3RhbGwgLXAnCiBy bSAtZiAkUlBNX0JVSUxEX1JPT1Qle19saWJkaXJ9L2xpYmlidXMtKiV7aWJ1c19hcGlfdmVyc2lv bn0ubGEKIHJtIC1mICRSUE1fQlVJTERfUk9PVCV7X2xpYmRpcn0vZ3RrLTIuMC8le2d0azJfYmlu YXJ5X3ZlcnNpb259L2ltbW9kdWxlcy9pbS1pYnVzLmxhCiBybSAtZiAkUlBNX0JVSUxEX1JPT1Ql e19saWJkaXJ9L2d0ay0zLjAvJXtndGszX2JpbmFyeV92ZXJzaW9ufS9pbW1vZHVsZXMvaW0taWJ1 cy5sYQorJWlmICV7d2l0aCBndGs0fQorcm0gLWYgJFJQTV9CVUlMRF9ST09UJXtfbGliZGlyfS9n dGstNC4wLyV7Z3RrNF9iaW5hcnlfdmVyc2lvbn0vaW1tb2R1bGVzL2xpYmltLWlidXMubGEKKyVl bmRpZgogCiAjIGluc3RhbGwgbWFuIHBhZ2UKIGZvciBTIGluICV7U09VUkNFMn0KQEAgLTM5OCw2 ICs0MzEsMTEgQEAgZGNvbmYgdXBkYXRlIHx8IDoKICVmaWxlcyBndGszCiAle19saWJkaXJ9L2d0 ay0zLjAvJXtndGszX2JpbmFyeV92ZXJzaW9ufS9pbW1vZHVsZXMvaW0taWJ1cy5zbwogCislaWYg JXt3aXRoIGd0azR9CislZmlsZXMgZ3RrNAorJXtfbGliZGlyfS9ndGstNC4wLyV7Z3RrNF9iaW5h cnlfdmVyc2lvbn0vaW1tb2R1bGVzL2xpYmltLWlidXMuc28KKyVlbmRpZgorCiAjIFRoZSBzZXR1 cCBwYWNrYWdlIHdvbid0IGluY2x1ZGUgaWNvbiBmaWxlcyBzbyB0aGF0CiAjIGd0ay11cGRhdGUt aWNvbi1jYWNoZSBpcyBleGVjdXRlZCBpbiB0aGUgbWFpbiBwYWNrYWdlIG9ubHkgb25lIHRpbWUu CiAlZmlsZXMgc2V0dXAKQEAgLTQ1Miw2ICs0OTAsMTEgQEAgZGNvbmYgdXBkYXRlIHx8IDoKICV7 X2RhdGFkaXJ9L2luc3RhbGxlZC10ZXN0cy9pYnVzCiAKICVjaGFuZ2Vsb2cKKyogV2VkIEphbiAy MCAyMDIxIFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPiAtIDEuNS4yMy0zCist IEVuYWJsZSBJTSBndGs0IG1vZHVsZQorLSBGaXggdG8gcmVuYW1lIHhrYjpkZTo6Z2VyIHRvIHN5 bmMgeGtleWJvYXJkLWNvbmZpZworLSBFbmhhbmNlIGlidXMtc2V0dXAgc2VhcmNoIGVuZ2luZQor CiAqIEZyaSBOb3YgMjAgMjAyMCBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4g LSAxLjUuMjMtMgogLSBCdWcgMTg5ODA2NSAtIEZpeCBidWlsZCBmYWlsdXJlIG9mIGVtb2ppLSou ZGljdCB3aXRoIENMRFIgMzgKIC0gRml4IGJ1aWxkIGZhaWx1cmUgd2l0aCBWYWxhIDAuNTAK