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: Tom Callaway To: git-commits@fedoraproject.org Subject: [rpms/openssl] rebase_40beta: resolve bugzilla 319901 (phew! only took 6 years & 9 days) Date: Tue, 09 Jun 2026 12:43:05 GMT Message-ID: <178100898502.1.11876644130573327025.rpms-openssl-4d56d16496d4@fedoraproject.org> List-ID: X-Git-Repo: rpms/openssl X-Git-Branch: rebase_40beta X-Git-Rev: 4d56d16496d4aeb9eb20fb4bc9c4f48b67cb9cc2 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvb3BlbnNzbApCcmFu Y2ggOiByZWJhc2VfNDBiZXRhCkNvbW1pdCA6IDRkNTZkMTY0OTZkNGFlYjllYjIwZmI0YmM5YzRm NDhiNjdjYjljYzIKQXV0aG9yIDogVG9tIENhbGxhd2F5IDxzcG90QGZlZG9yYXByb2plY3Qub3Jn PgpEYXRlICAgOiAyMDEzLTEwLTE1VDAyOjE0OjExKzAxOjAwClN0YXRzICA6ICsyNDQyLy0yODMg aW4gNiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMv b3BlbnNzbC9jLzRkNTZkMTY0OTZkNGFlYjllYjIwZmI0YmM5YzRmNDhiNjdjYjljYzI/YnJhbmNo PXJlYmFzZV80MGJldGEKCkxvZzoKcmVzb2x2ZSBidWd6aWxsYSAzMTk5MDEgKHBoZXchIG9ubHkg dG9vayA2IHllYXJzICYgOSBkYXlzKQoKLS0tCmRpZmYgLS1naXQgYS9ob2JibGUtb3BlbnNzbCBi L2hvYmJsZS1vcGVuc3NsCmluZGV4IDRjYTdlYWIuLjNiNzgzMzUgMTAwNzU1Ci0tLSBhL2hvYmJs ZS1vcGVuc3NsCisrKyBiL2hvYmJsZS1vcGVuc3NsCkBAIC03LDM5ICs3LDMwIEBAIHNldCAtZQog IyBNREMtMjogNCw5MDgsODYxIDEzLzAzLzIwMDcgLSBleHBpcmVkLCB3ZSBkbyBub3QgcmVtb3Zl IGl0IGJ1dCBkbyBub3QgZW5hYmxlIGl0IGFueXdheQogIyBJREVBOiAgNSwyMTQsNzAzIDA3LzAx LzIwMTIgLSBleHBpcmVkLCB3ZSBkbyBub3QgcmVtb3ZlIGl0IGFueW1vcmUKICMgUkM1OiAgIDUs NzI0LDQyOCAwMS8xMS8yMDE1Ci0jIEVDOiAgICA/Pz8/Pz8/Pz8gPz8vPz8vMjAyMAogIyBTUlA6 ICAgPz8/Pz8/Pz8/ID8/Lz8/LzIwPz8KIAogIyBSZW1vdmUgYXNzZW1ibGVyIHBvcnRpb25zIG9m IElERUEsIE1EQzIsIGFuZCBSQzUuCiAoZmluZCBjcnlwdG8vcmM1L2FzbSAtdHlwZSBmIHwgeGFy Z3MgLXIgcm0gLWZ2KQogCi0jIFJDNSwgRUMsIFNSUC4KLWZvciBhIGluIHJjNSBlYyBlY2RoIGVj ZHNhIHNycDsgZG8KKyMgUkM1LCBTUlAuCitmb3IgYSBpbiByYzUgc3JwOyBkbwogICBmb3IgYyBp biBgZmluZCBjcnlwdG8vJGEgLW5hbWUgIiouYyIgLWEgXCEgLW5hbWUgIip0ZXN0KiIgLXR5cGUg ZmAgOyBkbwogCWVjaG8gRGVzdHJveWluZyAkYwogCT4gJGMKICAgZG9uZQogZG9uZQogCi1mb3Ig YyBpbiBgZmluZCBjcnlwdG8vZXZwIC1uYW1lICIqX3JjNS5jIiAtbyAtbmFtZSAiKl9lY2RzYS5j ImA7IGRvCi0JZWNobyBEZXN0cm95aW5nICRjCi0JPiAkYwotZG9uZQotCi1mb3IgYyBpbiBgZmlu ZCBjcnlwdG8vYm4gLW5hbWUgIipnZjJtLmMiYDsgZG8KK2ZvciBjIGluIGBmaW5kIGNyeXB0by9l dnAgLW5hbWUgIipfcmM1LmMiYDsgZG8KIAllY2hvIERlc3Ryb3lpbmcgJGMKIAk+ICRjCiBkb25l CiAKIGZvciBoIGluIGBmaW5kIGNyeXB0byBzc2wgYXBwcyB0ZXN0IC1uYW1lICIqLmgiYCA7IGRv Ci0JZWNobyBSZW1vdmluZyBSQzUsIFNSUCBhbmQgRUMgcmVmZXJlbmNlcyBmcm9tICRoCisJZWNo byBSZW1vdmluZyBSQzUsIFNSUCByZWZlcmVuY2VzIGZyb20gJGgKIAljYXQgJGggfCBcCiAJYXdr ICAgICdCRUdJTiB7ZWNoPTE7fSBcCiAJCS9eI1sgXHRdKmlmbmRlZi4qTk9fU1JQLyB7ZWNoLS07 IG5leHQ7fSBcCiAJCS9eI1sgXHRdKmlmbmRlZi4qTk9fUkM1LyB7ZWNoLS07IG5leHQ7fSBcCi0J CS9eI1sgXHRdKmlmbmRlZi4qTk9fRUMvIHtlY2gtLTsgbmV4dDt9IFwKLQkJL14jWyBcdF0qaWZu ZGVmLipOT19FQ0RILyB7ZWNoLS07IG5leHQ7fSBcCi0JCS9eI1sgXHRdKmlmbmRlZi4qTk9fRUNE U0EvIHtlY2gtLTsgbmV4dDt9IFwKICAgICAgICAgICAgICAgICAvXiNbIFx0XSppZi8ge2lmKGVj aCA8IDEpIGVjaC0tO30gXAogCQl7aWYoZWNoPjApIHs7cHJpbnQgJDB9O30gXAogCQkvXiNbIFx0 XSplbmRpZi8ge2lmKGVjaCA8IDEpIGVjaCsrO30nID4gJGguaG9iYmxlZCAmJiBcCgpkaWZmIC0t Z2l0IGEvb3BlbnNzbC0xLjAuMWUtZmlwcy1jdG9yLnBhdGNoIGIvb3BlbnNzbC0xLjAuMWUtZmlw cy1jdG9yLnBhdGNoCmluZGV4IDA5M2E3ZjQuLjAxMjFkZWMgMTAwNjQ0Ci0tLSBhL29wZW5zc2wt MS4wLjFlLWZpcHMtY3Rvci5wYXRjaAorKysgYi9vcGVuc3NsLTEuMC4xZS1maXBzLWN0b3IucGF0 Y2gKQEAgLTEsNiArMSw2IEBACiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9m aXBzLmMuZmlwcy1jdG9yIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHMuYwotLS0tIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHMuYy5maXBzLWN0b3IJMjAxMy0wOS0wMiAxNDoy MDoyNi44NTM5MjUxNDQgKzAyMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBz LmMJMjAxMy0wOS0wMiAxNDoyMjoxOC4wODIzNzA2ODAgKzAyMDAKKy0tLSBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9maXBzLmMuZmlwcy1jdG9yCTIwMTMtMDktMjMgMTg6MDU6MTUuNzMxMTM2 ODYzICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwcy5jCTIwMTMtMDkt MjMgMTg6MTg6MjcuOTUzOTY5NzcwICswMjAwCiBAQCAtNjAsNiArNjAsOCBAQAogICNpbmNsdWRl IDxkbGZjbi5oPgogICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMjMsMTEgKzIzLDY1IEBAIGRpZmYg LXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHMuYy5maXBzLWN0b3Igb3BlbnNzbC0x LjAuMWUvY3J5cHRvL2ZpcHMvCiAgI2RlZmluZSBSRUFEX0JVRkZFUl9MRU5HVEggMTYzODQKICAK ICBzdGF0aWMgY2hhciAqCi1AQCAtMzQxLDYgKzM0NSwzMiBAQCBlbmQ6CitAQCAtMjc5LDE5ICsy ODMsMTMgQEAgZW5kOgorIH0KKyAKKyBzdGF0aWMgaW50CistRklQU0NIRUNLX3ZlcmlmeShjb25z dCBjaGFyICpsaWJuYW1lLCBjb25zdCBjaGFyICpzeW1ib2xuYW1lKQorK0ZJUFNDSEVDS192ZXJp ZnkoY29uc3QgY2hhciAqcGF0aCkKKyB7CistCWNoYXIgcGF0aFtQQVRIX01BWCsxXTsKKy0JaW50 IHJ2OworKwlpbnQgcnYgPSAwOworIAlGSUxFICpoZjsKKyAJY2hhciAqaG1hY3BhdGgsICpwOwor IAljaGFyICpobWFjID0gTlVMTDsKKyAJc2l6ZV90IG47CistCQorLQlydiA9IGdldF9saWJyYXJ5 X3BhdGgobGlibmFtZSwgc3ltYm9sbmFtZSwgcGF0aCwgc2l6ZW9mKHBhdGgpKTsKKy0KKy0JaWYg KHJ2IDwgMCkKKy0JCXJldHVybiAwOworIAorIAlobWFjcGF0aCA9IG1ha2VfaG1hY19wYXRoKHBh dGgpOworIAlpZiAoaG1hY3BhdGggPT0gTlVMTCkKK0BAIC0zNDEsNiArMzM5LDY0IEBAIGVuZDoK ICAJcmV0dXJuIDE7CQogIH0KICAKLStpbnQgRklQU19tb2R1bGVfaW5zdGFsbGVkKHZvaWQpCisr c3RhdGljIGludAorK3ZlcmlmeV9jaGVja3N1bXModm9pZCkKKysgICAgeworKwlpbnQgcnY7Cisr CWNoYXIgcGF0aFtQQVRIX01BWCsxXTsKKysJY2hhciAqcDsKKysKKysJLyogd2UgbmVlZCB0byBh dm9pZCBkbG9wZW5pbmcgbGlic3NsLCBhc3N1bWUgYm90aCBsaWJjcnlwdG8gYW5kIGxpYnNzbAor KwkgICBhcmUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5ICovCisrCisrCXJ2ID0gZ2V0X2xpYnJhcnlf cGF0aCgibGliY3J5cHRvLnNvLiIgU0hMSUJfVkVSU0lPTl9OVU1CRVIsICJGSVBTX21vZGVfc2V0 IiwgcGF0aCwgc2l6ZW9mKHBhdGgpKTsKKysJaWYgKHJ2IDwgMCkKKysJCXJldHVybiAwOworKwor KwlydiA9IEZJUFNDSEVDS192ZXJpZnkocGF0aCk7CisrCWlmICghcnYpCisrCQlyZXR1cm4gMDsK KysKKysJLyogcmVwbGFjZSBsaWJjcnlwdG8gd2l0aCBsaWJzc2wgKi8KKysJd2hpbGUgKChwID0g c3Ryc3RyKHBhdGgsICJsaWJjcnlwdG8uc28iKSkgIT0gTlVMTCkKKysJICAgIHsKKysJCXAgPSBz dHBjcHkocCwgImxpYnNzbCIpOworKyAgICAgICAgICAgICAgICBtZW1tb3ZlKHAsIHArMywgc3Ry bGVuKHArMikpOworKwkgICAgfQorKworKwlydiA9IEZJUFNDSEVDS192ZXJpZnkocGF0aCk7Cisr CWlmICghcnYpCisrCQlyZXR1cm4gMDsKKysJcmV0dXJuIDE7CisrICAgIH0KKysKKytpbnQKKytG SVBTX21vZHVsZV9pbnN0YWxsZWQodm9pZCkKICsgICAgewogKwljaGFyIHBhdGhbUEFUSF9NQVgr MV07CiArCWludCBydjsKQEAgLTU2LDkgKzExMCwyNiBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9maXBzLmMuZmlwcy1jdG9yIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBz LwogIGludCBGSVBTX21vZHVsZV9tb2RlX3NldChpbnQgb25vZmYsIGNvbnN0IGNoYXIgKmF1dGgp CiAgICAgIHsKICAgICAgaW50IHJldCA9IDA7CitAQCAtMzc5LDE1ICs0MzUsNyBAQCBpbnQgRklQ U19tb2R1bGVfbW9kZV9zZXQoaW50IG9ub2ZmLCBjb25zCisgCX0KKyAjZW5kaWYKKyAKKy0JaWYo IUZJUFNDSEVDS192ZXJpZnkoImxpYmNyeXB0by5zby4iIFNITElCX1ZFUlNJT05fTlVNQkVSLCJG SVBTX21vZGVfc2V0IikpCistCSAgICB7CistCSAgICBGSVBTZXJyKEZJUFNfRl9GSVBTX01PRFVM RV9NT0RFX1NFVCxGSVBTX1JfRklOR0VSUFJJTlRfRE9FU19OT1RfTUFUQ0gpOworLQkgICAgZmlw c19zZWxmdGVzdF9mYWlsID0gMTsKKy0JICAgIHJldCA9IDA7CistCSAgICBnb3RvIGVuZDsKKy0J ICAgIH0KKy0KKy0JaWYoIUZJUFNDSEVDS192ZXJpZnkoImxpYnNzbC5zby4iIFNITElCX1ZFUlNJ T05fTlVNQkVSLCJTU0xfQ1RYX25ldyIpKQorKwlpZighdmVyaWZ5X2NoZWNrc3VtcygpKQorIAkg ICAgeworIAkgICAgRklQU2VycihGSVBTX0ZfRklQU19NT0RVTEVfTU9ERV9TRVQsRklQU19SX0ZJ TkdFUlBSSU5UX0RPRVNfTk9UX01BVENIKTsKKyAJICAgIGZpcHNfc2VsZnRlc3RfZmFpbCA9IDE7 CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzLmguZmlwcy1jdG9yIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHMuaAotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9maXBzL2ZpcHMuaC5maXBzLWN0b3IJMjAxMy0wOS0wMiAxNDoyMDoyNi44NTc5MjUyMzIgKzAy MDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzLmgJMjAxMy0wOS0wMiAxNDoy MDoyNi45MTU5MjY1MDcgKzAyMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBz LmguZmlwcy1jdG9yCTIwMTMtMDktMjMgMTg6MDU6MTUuNzM0MTM2OTMxICswMjAwCisrKysgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwcy5oCTIwMTMtMDktMjMgMTg6MDU6MTUuNzc1MTM3 ODU0ICswMjAwCiBAQCAtNzQsNiArNzQsNyBAQCBzdHJ1Y3QgaG1hY19jdHhfc3Q7CiAgCiAgaW50 IEZJUFNfbW9kdWxlX21vZGVfc2V0KGludCBvbm9mZiwgY29uc3QgY2hhciAqYXV0aCk7CkBAIC02 OCw4ICsxMzksOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzLmgu Zmlwcy1jdG9yIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzLwogIGludCBGSVBTX3NlbGZ0ZXN0 KHZvaWQpOwogIGludCBGSVBTX3NlbGZ0ZXN0X2ZhaWxlZCh2b2lkKTsKIGRpZmYgLXVwIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9vX2luaXQuYy5maXBzLWN0b3Igb3BlbnNzbC0xLjAuMWUvY3J5cHRv L29faW5pdC5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL29faW5pdC5jLmZpcHMtY3Rvcgky MDEzLTA5LTAyIDE0OjIwOjI2Ljg5NDkyNjA0NiArMDIwMAotKysrIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9vX2luaXQuYwkyMDEzLTA5LTAyIDE0OjIwOjI2LjkxNjkyNjUyOSArMDIwMAorLS0tIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9vX2luaXQuYy5maXBzLWN0b3IJMjAxMy0wOS0yMyAxODowNTox NS43NjIxMzc1NjEgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vb19pbml0LmMJMjAx My0wOS0yMyAxODowNToxNS43NzYxMzc4NzYgKzAyMDAKIEBAIC03Myw2ICs3MywxMCBAQCBzdGF0 aWMgdm9pZCBpbml0X2ZpcHNfbW9kZSh2b2lkKQogIAljaGFyIGJ1ZlsyXSA9ICIwIjsKICAJaW50 IGZkOwoKZGlmZiAtLWdpdCBhL29wZW5zc2wtMS4wLjFlLWZpcHMtZWMucGF0Y2ggYi9vcGVuc3Ns LTEuMC4xZS1maXBzLWVjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmU2MzVkZGUKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc3NsLTEuMC4xZS1maXBzLWVjLnBhdGNo CkBAIC0wLDAgKzEsMjA1MiBAQAorZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VjL2Vj Ml9zbXBsLmMuZmlwcy1lYyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZWMvZWMyX3NtcGwuYworLS0t IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9lYy9lYzJfc21wbC5jLmZpcHMtZWMJMjAxMy0xMC0xNSAw MToxMDo1Ny40NzI1NDY3NTMgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZWMvZWMy X3NtcGwuYwkyMDEzLTEwLTE1IDAxOjExOjEwLjM0NjUyOTAxMSArMDEwMAorQEAgLTgwLDkgKzgw LDYgQEAKKyAKKyBjb25zdCBFQ19NRVRIT0QgKkVDX0dGMm1fc2ltcGxlX21ldGhvZCh2b2lkKQor IAl7CistI2lmZGVmIE9QRU5TU0xfRklQUworLQlyZXR1cm4gZmlwc19lY19nZjJtX3NpbXBsZV9t ZXRob2QoKTsKKy0jZWxzZQorIAlzdGF0aWMgY29uc3QgRUNfTUVUSE9EIHJldCA9IHsKKyAJCUVD X0ZMQUdTX0RFRkFVTFRfT0NULAorIAkJTklEX1g5XzYyX2NoYXJhY3RlcmlzdGljX3R3b19maWVs ZCwKK0BAIC0xMjYsNyArMTIzLDYgQEAgY29uc3QgRUNfTUVUSE9EICpFQ19HRjJtX3NpbXBsZV9t ZXRob2QodgorIAkJMCAvKiBmaWVsZF9zZXRfdG9fb25lICovIH07CisgCisgCXJldHVybiAmcmV0 OworLSNlbmRpZgorIAl9CisgCisgCitkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZWMv ZWNfa2V5LmMuZmlwcy1lYyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZWMvZWNfa2V5LmMKKy0tLSBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZWMvZWNfa2V5LmMuZmlwcy1lYwkyMDEzLTAyLTExIDE1OjI2 OjA0LjAwMDAwMDAwMCArMDAwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9lYy9lY19rZXku YwkyMDEzLTEwLTE1IDAxOjA4OjA2LjA0Njc4MzE0OCArMDEwMAorQEAgLTY0LDkgKzY0LDYgQEAK KyAjaW5jbHVkZSA8c3RyaW5nLmg+CisgI2luY2x1ZGUgImVjX2xjbC5oIgorICNpbmNsdWRlIDxv cGVuc3NsL2Vyci5oPgorLSNpZmRlZiBPUEVOU1NMX0ZJUFMKKy0jaW5jbHVkZSA8b3BlbnNzbC9m aXBzLmg+CistI2VuZGlmCisgCisgRUNfS0VZICpFQ19LRVlfbmV3KHZvaWQpCisgCXsKK0BAIC0y MzQsNiArMjMxLDM5IEBAIGludCBFQ19LRVlfdXBfcmVmKEVDX0tFWSAqcikKKyAJcmV0dXJuICgo aSA+IDEpID8gMSA6IDApOworIAl9CisgCisrI2lmZGVmIE9QRU5TU0xfRklQUworKworKyNpbmNs dWRlIDxvcGVuc3NsL2V2cC5oPgorKyNpbmNsdWRlIDxvcGVuc3NsL2ZpcHMuaD4KKysjaW5jbHVk ZSA8b3BlbnNzbC9maXBzX3JhbmQuaD4KKysKKytzdGF0aWMgaW50IGZpcHNfY2hlY2tfZWMoRUNf S0VZICprZXkpCisrCXsKKysJRVZQX1BLRVkgKnBrOworKwl1bnNpZ25lZCBjaGFyIHRic1tdID0g IkVDRFNBIFBhaXJ3aXNlIENoZWNrIERhdGEiOworKwlpbnQgcmV0ID0gMDsKKysKKysJaWYgKChw az1FVlBfUEtFWV9uZXcoKSkgPT0gTlVMTCkKKysJCWdvdG8gZXJyOworKworKwlFVlBfUEtFWV9z ZXQxX0VDX0tFWShwaywga2V5KTsKKysKKysJaWYgKGZpcHNfcGtleV9zaWduYXR1cmVfdGVzdChw aywgdGJzLCAwLCBOVUxMLCAwLCBOVUxMLCAwLCBOVUxMKSkKKysJCXJldCA9IDE7CisrCisrCWVy cjoKKysJaWYgKHJldCA9PSAwKQorKwkJeworKwkJRklQU2VycihGSVBTX0ZfRklQU19DSEVDS19F QyxGSVBTX1JfUEFJUldJU0VfVEVTVF9GQUlMRUQpOworKwkJZmlwc19zZXRfc2VsZnRlc3RfZmFp bCgpOworKwkJfQorKwlpZiAocGspCisrCQlFVlBfUEtFWV9mcmVlKHBrKTsKKysJcmV0dXJuIHJl dDsKKysJfQorKworKyNlbmRpZgorKworIGludCBFQ19LRVlfZ2VuZXJhdGVfa2V5KEVDX0tFWSAq ZWNrZXkpCisgCXsJCisgCWludAlvayA9IDA7CitAQCAtMjQyLDggKzI3MiwxMSBAQCBpbnQgRUNf S0VZX2dlbmVyYXRlX2tleShFQ19LRVkgKmVja2V5KQorIAlFQ19QT0lOVCAqcHViX2tleSA9IE5V TEw7CisgCisgI2lmZGVmIE9QRU5TU0xfRklQUworLQlpZiAoRklQU19tb2RlKCkpCistCQlyZXR1 cm4gRklQU19lY19rZXlfZ2VuZXJhdGVfa2V5KGVja2V5KTsKKysJaWYoRklQU19zZWxmdGVzdF9m YWlsZWQoKSkKKysJCXsKKysJCUZJUFNlcnIoRklQU19GX0VDX0tFWV9HRU5FUkFURV9LRVksRklQ U19SX0ZJUFNfU0VMRlRFU1RfRkFJTEVEKTsKKysJCXJldHVybiAwOworKwkJfQorICNlbmRpZgor IAorIAlpZiAoIWVja2V5IHx8ICFlY2tleS0+Z3JvdXApCitAQCAtMjg3LDYgKzMyMCwxNSBAQCBp bnQgRUNfS0VZX2dlbmVyYXRlX2tleShFQ19LRVkgKmVja2V5KQorIAllY2tleS0+cHJpdl9rZXkg PSBwcml2X2tleTsKKyAJZWNrZXktPnB1Yl9rZXkgID0gcHViX2tleTsKKyAKKysjaWZkZWYgT1BF TlNTTF9GSVBTCisrCWlmKCFmaXBzX2NoZWNrX2VjKGVja2V5KSkKKysJCXsKKysJCWVja2V5LT5w cml2X2tleSA9IE5VTEw7CisrCQllY2tleS0+cHViX2tleSAgPSBOVUxMOworKwkgICAgCWdvdG8g ZXJyOworKwkJfQorKyNlbmRpZgorKworIAlvaz0xOworIAorIGVycjoJCitAQCAtNDI5LDEwICs0 NzEsMTIgQEAgaW50IEVDX0tFWV9zZXRfcHVibGljX2tleV9hZmZpbmVfY29vcmRpbgorIAkJCQkJ CQkJdHgsIHR5LCBjdHgpKQorIAkJCWdvdG8gZXJyOworIAkJfQorLQkvKiBDaGVjayBpZiByZXRy aWV2ZWQgY29vcmRpbmF0ZXMgbWF0Y2ggb3JpZ2luYWxzOiBpZiBub3QgdmFsdWVzCistCSAqIGFy ZSBvdXQgb2YgcmFuZ2UuCisrCS8qIENoZWNrIGlmIHJldHJpZXZlZCBjb29yZGluYXRlcyBtYXRj aCBvcmlnaW5hbHMgYW5kIGFyZSBsZXNzIHRoYW4KKysJICogZmllbGQgb3JkZXI6IGlmIG5vdCB2 YWx1ZXMgYXJlIG91dCBvZiByYW5nZS4KKyAJICovCistCWlmIChCTl9jbXAoeCwgdHgpIHx8IEJO X2NtcCh5LCB0eSkpCisrCWlmIChCTl9jbXAoeCwgdHgpIHx8IEJOX2NtcCh5LCB0eSkKKysJCXx8 IChCTl9jbXAoeCwgJmtleS0+Z3JvdXAtPmZpZWxkKSA+PSAwKQorKwkJfHwgKEJOX2NtcCh5LCAm a2V5LT5ncm91cC0+ZmllbGQpID49IDApKQorIAkJeworIAkJRUNlcnIoRUNfRl9FQ19LRVlfU0VU X1BVQkxJQ19LRVlfQUZGSU5FX0NPT1JESU5BVEVTLAorIAkJCUVDX1JfQ09PUkRJTkFURVNfT1VU X09GX1JBTkdFKTsKK2RpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9lYy9lY3BfbW9udC5j LmZpcHMtZWMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VjL2VjcF9tb250LmMKKy0tLSBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZWMvZWNwX21vbnQuYy5maXBzLWVjCTIwMTMtMDItMTEgMTU6MjY6MDQu MDAwMDAwMDAwICswMDAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VjL2VjcF9tb250LmMJ MjAxMy0xMC0xNSAwMTowODowNi4wNDc3ODMxNDYgKzAxMDAKK0BAIC02MywxOCArNjMsMTEgQEAK KyAKKyAjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KKyAKKy0jaWZkZWYgT1BFTlNTTF9GSVBTCist I2luY2x1ZGUgPG9wZW5zc2wvZmlwcy5oPgorLSNlbmRpZgorLQorICNpbmNsdWRlICJlY19sY2wu aCIKKyAKKyAKKyBjb25zdCBFQ19NRVRIT0QgKkVDX0dGcF9tb250X21ldGhvZCh2b2lkKQorIAl7 CistI2lmZGVmIE9QRU5TU0xfRklQUworLQlyZXR1cm4gZmlwc19lY19nZnBfbW9udF9tZXRob2Qo KTsKKy0jZWxzZQorIAlzdGF0aWMgY29uc3QgRUNfTUVUSE9EIHJldCA9IHsKKyAJCUVDX0ZMQUdT X0RFRkFVTFRfT0NULAorIAkJTklEX1g5XzYyX3ByaW1lX2ZpZWxkLAorQEAgLTExNSw3ICsxMDgs NiBAQCBjb25zdCBFQ19NRVRIT0QgKkVDX0dGcF9tb250X21ldGhvZCh2b2lkCisgCQllY19HRnBf bW9udF9maWVsZF9zZXRfdG9fb25lIH07CisgCisgCXJldHVybiAmcmV0OworLSNlbmRpZgorIAl9 CisgCisgCitkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZWMvZWNwX25pc3QuYy5maXBz LWVjIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9lYy9lY3BfbmlzdC5jCistLS0gb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2VjL2VjcF9uaXN0LmMuZmlwcy1lYwkyMDEzLTAyLTExIDE1OjI2OjA0LjAwMDAw MDAwMCArMDAwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9lYy9lY3BfbmlzdC5jCTIwMTMt MTAtMTUgMDE6MDg6MDYuMDQ3NzgzMTQ2ICswMTAwCitAQCAtNjcsMTUgKzY3LDggQEAKKyAjaW5j bHVkZSA8b3BlbnNzbC9vYmpfbWFjLmg+CisgI2luY2x1ZGUgImVjX2xjbC5oIgorIAorLSNpZmRl ZiBPUEVOU1NMX0ZJUFMKKy0jaW5jbHVkZSA8b3BlbnNzbC9maXBzLmg+CistI2VuZGlmCistCisg Y29uc3QgRUNfTUVUSE9EICpFQ19HRnBfbmlzdF9tZXRob2Qodm9pZCkKKyAJeworLSNpZmRlZiBP UEVOU1NMX0ZJUFMKKy0JcmV0dXJuIGZpcHNfZWNfZ2ZwX25pc3RfbWV0aG9kKCk7CistI2Vsc2UK KyAJc3RhdGljIGNvbnN0IEVDX01FVEhPRCByZXQgPSB7CisgCQlFQ19GTEFHU19ERUZBVUxUX09D VCwKKyAJCU5JRF9YOV82Ml9wcmltZV9maWVsZCwKK0BAIC0xMTYsNyArMTA5LDYgQEAgY29uc3Qg RUNfTUVUSE9EICpFQ19HRnBfbmlzdF9tZXRob2Qodm9pZAorIAkJMCAvKiBmaWVsZF9zZXRfdG9f b25lICovIH07CisgCisgCXJldHVybiAmcmV0OworLSNlbmRpZgorIAl9CisgCisgaW50IGVjX0dG cF9uaXN0X2dyb3VwX2NvcHkoRUNfR1JPVVAgKmRlc3QsIGNvbnN0IEVDX0dST1VQICpzcmMpCitk aWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZWMvZWNwX3NtcGwuYy5maXBzLWVjIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9lYy9lY3Bfc21wbC5jCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2VjL2VjcF9zbXBsLmMuZmlwcy1lYwkyMDEzLTAyLTExIDE1OjI2OjA0LjAwMDAwMDAwMCArMDAw MAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9lYy9lY3Bfc21wbC5jCTIwMTMtMTAtMTUgMDE6 MDg6MDYuMDQ3NzgzMTQ2ICswMTAwCitAQCAtNjUsMTcgKzY1LDEwIEBACisgI2luY2x1ZGUgPG9w ZW5zc2wvZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvc3ltaGFja3MuaD4KKyAKKy0jaWZkZWYg T1BFTlNTTF9GSVBTCistI2luY2x1ZGUgPG9wZW5zc2wvZmlwcy5oPgorLSNlbmRpZgorLQorICNp bmNsdWRlICJlY19sY2wuaCIKKyAKKyBjb25zdCBFQ19NRVRIT0QgKkVDX0dGcF9zaW1wbGVfbWV0 aG9kKHZvaWQpCisgCXsKKy0jaWZkZWYgT1BFTlNTTF9GSVBTCistCXJldHVybiBmaXBzX2VjX2dm cF9zaW1wbGVfbWV0aG9kKCk7CistI2Vsc2UKKyAJc3RhdGljIGNvbnN0IEVDX01FVEhPRCByZXQg PSB7CisgCQlFQ19GTEFHU19ERUZBVUxUX09DVCwKKyAJCU5JRF9YOV82Ml9wcmltZV9maWVsZCwK K0BAIC0xMTYsNyArMTA5LDYgQEAgY29uc3QgRUNfTUVUSE9EICpFQ19HRnBfc2ltcGxlX21ldGhv ZCh2bworIAkJMCAvKiBmaWVsZF9zZXRfdG9fb25lICovIH07CisgCisgCXJldHVybiAmcmV0Owor LSNlbmRpZgorIAl9CisgCisgCitkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZWNkaC9l Y2RoLmguZmlwcy1lYyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZWNkaC9lY2RoLmgKKy0tLSBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vZWNkaC9lY2RoLmguZmlwcy1lYwkyMDEzLTEwLTE1IDAxOjA4OjA1 Ljc0ODc4MzU1OSArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9lY2RoL2VjZGguaAky MDEzLTEwLTE1IDAxOjA4OjA2LjA0Njc4MzE0OCArMDEwMAorQEAgLTg1LDYgKzg1LDggQEAKKyBl eHRlcm4gIkMiIHsKKyAjZW5kaWYKKyAKKysjZGVmaW5lIEVDX0ZMQUdfQ09GQUNUT1JfRUNESAkw eDEwMDAKKysKKyBjb25zdCBFQ0RIX01FVEhPRCAqRUNESF9PcGVuU1NMKHZvaWQpOworIAorIHZv aWQJICBFQ0RIX3NldF9kZWZhdWx0X21ldGhvZChjb25zdCBFQ0RIX01FVEhPRCAqKTsKK2RpZmYg LXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9lY2RoL2VjZGh0ZXN0LmMuZmlwcy1lYyBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZWNkaC9lY2RodGVzdC5jCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2VjZGgvZWNkaHRlc3QuYy5maXBzLWVjCTIwMTMtMDItMTEgMTU6MjY6MDQuMDAwMDAwMDAwICsw MDAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VjZGgvZWNkaHRlc3QuYwkyMDEzLTEwLTE1 IDAxOjA4OjA2LjA0Njc4MzE0OCArMDEwMAorQEAgLTMyMywxMSArMzIzLDE1IEBAIGludCBtYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pCisgCWlmICgoY3R4PUJOX0NUWF9uZXcoKSkgPT0gTlVM TCkgZ290byBlcnI7CisgCisgCS8qIE5JU1QgUFJJTUUgQ1VSVkVTIFRFU1RTICovCisrI2lmIDAK KyAJaWYgKCF0ZXN0X2VjZGhfY3VydmUoTklEX1g5XzYyX3ByaW1lMTkydjEsICJOSVNUIFByaW1l LUN1cnZlIFAtMTkyIiwgY3R4LCBvdXQpKSBnb3RvIGVycjsKKyAJaWYgKCF0ZXN0X2VjZGhfY3Vy dmUoTklEX3NlY3AyMjRyMSwgIk5JU1QgUHJpbWUtQ3VydmUgUC0yMjQiLCBjdHgsIG91dCkpIGdv dG8gZXJyOworKyNlbmRpZgorIAlpZiAoIXRlc3RfZWNkaF9jdXJ2ZShOSURfWDlfNjJfcHJpbWUy NTZ2MSwgIk5JU1QgUHJpbWUtQ3VydmUgUC0yNTYiLCBjdHgsIG91dCkpIGdvdG8gZXJyOworIAlp ZiAoIXRlc3RfZWNkaF9jdXJ2ZShOSURfc2VjcDM4NHIxLCAiTklTVCBQcmltZS1DdXJ2ZSBQLTM4 NCIsIGN0eCwgb3V0KSkgZ290byBlcnI7CisrI2lmIDAKKyAJaWYgKCF0ZXN0X2VjZGhfY3VydmUo TklEX3NlY3A1MjFyMSwgIk5JU1QgUHJpbWUtQ3VydmUgUC01MjEiLCBjdHgsIG91dCkpIGdvdG8g ZXJyOworKyNlbmRpZgorICNpZm5kZWYgT1BFTlNTTF9OT19FQzJNCisgCS8qIE5JU1QgQklOQVJZ IENVUlZFUyBURVNUUyAqLworIAlpZiAoIXRlc3RfZWNkaF9jdXJ2ZShOSURfc2VjdDE2M2sxLCAi TklTVCBCaW5hcnktQ3VydmUgSy0xNjMiLCBjdHgsIG91dCkpIGdvdG8gZXJyOworZGlmZiAtdXAg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VjZGgvZWNoX2xpYi5jLmZpcHMtZWMgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2VjZGgvZWNoX2xpYi5jCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VjZGgv ZWNoX2xpYi5jLmZpcHMtZWMJMjAxMy0wMi0xMSAxNToyNjowNC4wMDAwMDAwMDAgKzAwMDAKKysr KyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZWNkaC9lY2hfbGliLmMJMjAxMy0xMC0xNSAwMTowODow Ni4wNDY3ODMxNDggKzAxMDAKK0BAIC05NCwxNCArOTQsNyBAQCBjb25zdCBFQ0RIX01FVEhPRCAq RUNESF9nZXRfZGVmYXVsdF9tZXRoCisgCXsKKyAJaWYoIWRlZmF1bHRfRUNESF9tZXRob2QpIAor IAkJeworLSNpZmRlZiBPUEVOU1NMX0ZJUFMKKy0JCWlmIChGSVBTX21vZGUoKSkKKy0JCQlyZXR1 cm4gRklQU19lY2RoX29wZW5zc2woKTsKKy0JCWVsc2UKKy0JCQlyZXR1cm4gRUNESF9PcGVuU1NM KCk7CistI2Vsc2UKKyAJCWRlZmF1bHRfRUNESF9tZXRob2QgPSBFQ0RIX09wZW5TU0woKTsKKy0j ZW5kaWYKKyAJCX0KKyAJcmV0dXJuIGRlZmF1bHRfRUNESF9tZXRob2Q7CisgCX0KK2RpZmYgLXVw IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9lY2RoL2VjaF9vc3NsLmMuZmlwcy1lYyBvcGVuc3NsLTEu MC4xZS9jcnlwdG8vZWNkaC9lY2hfb3NzbC5jCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Vj ZGgvZWNoX29zc2wuYy5maXBzLWVjCTIwMTMtMDItMTEgMTU6MjY6MDQuMDAwMDAwMDAwICswMDAw CisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VjZGgvZWNoX29zc2wuYwkyMDEzLTEwLTE1IDAx OjA4OjA2LjA0Njc4MzE0OCArMDEwMAorQEAgLTc5LDYgKzc5LDEwIEBACisgI2luY2x1ZGUgPG9w ZW5zc2wvb2JqX21hYy5oPgorICNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CisgCisrI2lmZGVmIE9Q RU5TU0xfRklQUworKyNpbmNsdWRlIDxvcGVuc3NsL2ZpcHMuaD4KKysjZW5kaWYKKysKKyBzdGF0 aWMgaW50IGVjZGhfY29tcHV0ZV9rZXkodm9pZCAqb3V0LCBzaXplX3QgbGVuLCBjb25zdCBFQ19Q T0lOVCAqcHViX2tleSwKKyAJRUNfS0VZICplY2RoLCAKKyAJdm9pZCAqKCpLREYpKGNvbnN0IHZv aWQgKmluLCBzaXplX3QgaW5sZW4sIHZvaWQgKm91dCwgc2l6ZV90ICpvdXRsZW4pKTsKK0BAIC05 MCw3ICs5NCw3IEBAIHN0YXRpYyBFQ0RIX01FVEhPRCBvcGVuc3NsX2VjZGhfbWV0aCA9IHsKKyAJ TlVMTCwgLyogaW5pdCAgICAgKi8KKyAJTlVMTCwgLyogZmluaXNoICAgKi8KKyAjZW5kaWYKKy0J MCwgICAgLyogZmxhZ3MgICAgKi8KKysJRUNESF9GTEFHX0ZJUFNfTUVUSE9ELCAgICAvKiBmbGFn cyAgICAqLworIAlOVUxMICAvKiBhcHBfZGF0YSAqLworIH07CisgCitAQCAtMTE4LDYgKzEyMiwx NCBAQCBzdGF0aWMgaW50IGVjZGhfY29tcHV0ZV9rZXkodm9pZCAqb3V0LCBzCisgCXNpemVfdCBi dWZsZW4sIGxlbjsKKyAJdW5zaWduZWQgY2hhciAqYnVmPU5VTEw7CisgCisrI2lmZGVmIE9QRU5T U0xfRklQUworKwlpZihGSVBTX3NlbGZ0ZXN0X2ZhaWxlZCgpKQorKwkJeworKwkJRklQU2VycihG SVBTX0ZfRUNESF9DT01QVVRFX0tFWSxGSVBTX1JfRklQU19TRUxGVEVTVF9GQUlMRUQpOworKwkJ cmV0dXJuIC0xOworKwkJfQorKyNlbmRpZgorKworIAlpZiAob3V0bGVuID4gSU5UX01BWCkKKyAJ CXsKKyAJCUVDREhlcnIoRUNESF9GX0VDREhfQ09NUFVURV9LRVksRVJSX1JfTUFMTE9DX0ZBSUxV UkUpOyAvKiBzb3J0IG9mLCBhbnl3YXkgKi8KK0BAIC0xMzcsNiArMTQ5LDE4IEBAIHN0YXRpYyBp bnQgZWNkaF9jb21wdXRlX2tleSh2b2lkICpvdXQsIHMKKyAJCX0KKyAKKyAJZ3JvdXAgPSBFQ19L RVlfZ2V0MF9ncm91cChlY2RoKTsKKysKKysJaWYgKEVDX0tFWV9nZXRfZmxhZ3MoZWNkaCkgJiBF Q19GTEFHX0NPRkFDVE9SX0VDREgpCisrCQl7CisrCQlpZiAoIUVDX0dST1VQX2dldF9jb2ZhY3Rv cihncm91cCwgeCwgY3R4KSB8fAorKwkJCSFCTl9tdWwoeCwgeCwgcHJpdl9rZXksIGN0eCkpCisr CQkJeworKwkJCUVDREhlcnIoRUNESF9GX0VDREhfQ09NUFVURV9LRVksIEVSUl9SX01BTExPQ19G QUlMVVJFKTsKKysJCQlnb3RvIGVycjsKKysJCQl9CisrCQlwcml2X2tleSA9IHg7CisrCQl9Cisr CisgCWlmICgodG1wPUVDX1BPSU5UX25ldyhncm91cCkpID09IE5VTEwpCisgCQl7CisgCQlFQ0RI ZXJyKEVDREhfRl9FQ0RIX0NPTVBVVEVfS0VZLEVSUl9SX01BTExPQ19GQUlMVVJFKTsKK2RpZmYg LXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9lY2RzYS9lY2RzYXRlc3QuYy5maXBzLWVjIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9lY2RzYS9lY2RzYXRlc3QuYworLS0tIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9lY2RzYS9lY2RzYXRlc3QuYy5maXBzLWVjCTIwMTMtMDItMTEgMTU6MjY6MDQuMDAwMDAw MDAwICswMDAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VjZHNhL2VjZHNhdGVzdC5jCTIw MTMtMTAtMTUgMDE6MDg6MDYuMDQ2NzgzMTQ4ICswMTAwCitAQCAtMTM4LDExICsxMzgsMTQgQEAg aW50IHJlc3RvcmVfcmFuZCh2b2lkKQorIAl9CisgCisgc3RhdGljIGludCBmYnl0ZXNfY291bnRl ciA9IDA7Cistc3RhdGljIGNvbnN0IGNoYXIgKm51bWJlcnNbOF0gPSB7Cisrc3RhdGljIGNvbnN0 IGNoYXIgKm51bWJlcnNbMTBdID0geworKwkiNjUxMDU2NzcwOTA2MDE1MDc2MDU2ODEwNzYzNDU2 MzU4NTY3MTkwMTAwMTU2Njk1NjE1NjY1NjU5IiwKKyAJIjY1MTA1Njc3MDkwNjAxNTA3NjA1Njgx MDc2MzQ1NjM1ODU2NzE5MDEwMDE1NjY5NTYxNTY2NTY1OSIsCisgCSI2MTQwNTA3MDY3MDY1MDAx MDYzMDY1MDY1NTY1NjY3NDA1NTYwMDA2MTYxNTU2NTY1NjY1NjU2NjU0IiwKKyAJIjg3NjMwMDEw MTUwNzEwNzU2NzUwMTA2NjEzMDc2MTY3MTA3ODM1NzAxMDY3MTA2Nzc4MTc3NjcxNjYiCisgCSI3 MTY3NjE3ODcyNjcxNyIsCisrCSI4NzYzMDAxMDE1MDcxMDc1Njc1MDEwNjYxMzA3NjE2NzEwNzgz NTcwMTA2NzEwNjc3ODE3NzY3MTY2IgorKwkiNzE2NzYxNzg3MjY3MTciLAorIAkiNzAwMDAwMDE3 NTY5MDU2NjQ2NjU1NTA1NzgxNzU3MTU3MTA3NTcwNTAxNTc1Nzc1NzA1Nzc5NTc1NSIKKyAJIjU1 NjU3MTU2NzU2NjU1IiwKKyAJIjEyNzU1NTIxOTExMTMyMTIzMDAwMTIwMzA0MzkxODcxNDYxNjQ2 NDYxNDY2NDY0NjY3NDk0OTQ3OTkiLAorQEAgLTE1Nyw3ICsxNjAsNyBAQCBpbnQgZmJ5dGVzKHVu c2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG51bSkKKyAJaW50CXJldDsKKyAJQklHTlVNCSp0bXAgPSBO VUxMOworIAorLQlpZiAoZmJ5dGVzX2NvdW50ZXIgPj0gOCkKKysJaWYgKGZieXRlc19jb3VudGVy ID49IDEwKQorIAkJcmV0dXJuIDA7CisgCXRtcCA9IEJOX25ldygpOworIAlpZiAoIXRtcCkKK0BA IC01NTAsNyArNTUzLDkgQEAgaW50IG1haW4odm9pZCkKKyAJUkFORF9zZWVkKHJuZF9zZWVkLCBz aXplb2Yocm5kX3NlZWQpKTsKKyAKKyAJLyogdGhlIHRlc3RzICovCisrI2lmIDAKKyAJaWYgKCF4 OV82Ml90ZXN0cyhvdXQpKSAgZ290byBlcnI7CisrI2VuZGlmCisgCWlmICghdGVzdF9idWlsdGlu KG91dCkpIGdvdG8gZXJyOworIAkKKyAJcmV0ID0gMDsKK2RpZmYgLXVwIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9lY2RzYS9lY3NfbGliLmMuZmlwcy1lYyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZWNk c2EvZWNzX2xpYi5jCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VjZHNhL2Vjc19saWIuYy5m aXBzLWVjCTIwMTMtMDItMTEgMTU6MjY6MDQuMDAwMDAwMDAwICswMDAwCisrKysgb3BlbnNzbC0x LjAuMWUvY3J5cHRvL2VjZHNhL2Vjc19saWIuYwkyMDEzLTEwLTE1IDAxOjA4OjA2LjA0Njc4MzE0 OCArMDEwMAorQEAgLTgxLDE0ICs4MSw3IEBAIGNvbnN0IEVDRFNBX01FVEhPRCAqRUNEU0FfZ2V0 X2RlZmF1bHRfbWUKKyB7CisgCWlmKCFkZWZhdWx0X0VDRFNBX21ldGhvZCkgCisgCQl7CistI2lm ZGVmIE9QRU5TU0xfRklQUworLQkJaWYgKEZJUFNfbW9kZSgpKQorLQkJCXJldHVybiBGSVBTX2Vj ZHNhX29wZW5zc2woKTsKKy0JCWVsc2UKKy0JCQlyZXR1cm4gRUNEU0FfT3BlblNTTCgpOworLSNl bHNlCisgCQlkZWZhdWx0X0VDRFNBX21ldGhvZCA9IEVDRFNBX09wZW5TU0woKTsKKy0jZW5kaWYK KyAJCX0KKyAJcmV0dXJuIGRlZmF1bHRfRUNEU0FfbWV0aG9kOworIH0KK2RpZmYgLXVwIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9lY2RzYS9lY3Nfb3NzbC5jLmZpcHMtZWMgb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL2VjZHNhL2Vjc19vc3NsLmMKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZWNkc2Ev ZWNzX29zc2wuYy5maXBzLWVjCTIwMTMtMDItMTEgMTU6MjY6MDQuMDAwMDAwMDAwICswMDAwCisr Kysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VjZHNhL2Vjc19vc3NsLmMJMjAxMy0xMC0xNSAwMTow ODowNi4wNDY3ODMxNDggKzAxMDAKK0BAIC02MCw2ICs2MCw5IEBACisgI2luY2x1ZGUgPG9wZW5z c2wvZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvb2JqX21hYy5oPgorICNpbmNsdWRlIDxvcGVu c3NsL2JuLmg+CisrI2lmZGVmIE9QRU5TU0xfRklQUworKyNpbmNsdWRlIDxvcGVuc3NsL2ZpcHMu aD4KKysjZW5kaWYKKyAKKyBzdGF0aWMgRUNEU0FfU0lHICplY2RzYV9kb19zaWduKGNvbnN0IHVu c2lnbmVkIGNoYXIgKmRnc3QsIGludCBkbGVuLCAKKyAJCWNvbnN0IEJJR05VTSAqLCBjb25zdCBC SUdOVU0gKiwgRUNfS0VZICplY2tleSk7CitAQCAtNzcsNyArODAsNyBAQCBzdGF0aWMgRUNEU0Ff TUVUSE9EIG9wZW5zc2xfZWNkc2FfbWV0aCA9CisgCU5VTEwsIC8qIGluaXQgICAgICovCisgCU5V TEwsIC8qIGZpbmlzaCAgICovCisgI2VuZGlmCistCTAsICAgIC8qIGZsYWdzICAgICovCisrCUVD RFNBX0ZMQUdfRklQU19NRVRIT0QsICAgIC8qIGZsYWdzICAgICovCisgCU5VTEwgIC8qIGFwcF9k YXRhICovCisgfTsKKyAKK0BAIC0yMzEsNiArMjM0LDE0IEBAIHN0YXRpYyBFQ0RTQV9TSUcgKmVj ZHNhX2RvX3NpZ24oY29uc3QgdW4KKyAJRUNEU0FfREFUQSAqZWNkc2E7CisgCWNvbnN0IEJJR05V TSAqcHJpdl9rZXk7CisgCisrI2lmZGVmIE9QRU5TU0xfRklQUworKwlpZihGSVBTX3NlbGZ0ZXN0 X2ZhaWxlZCgpKQorKwkJeworKwkJRklQU2VycihGSVBTX0ZfRUNEU0FfRE9fU0lHTixGSVBTX1Jf RklQU19TRUxGVEVTVF9GQUlMRUQpOworKwkJcmV0dXJuIE5VTEw7CisrCQl9CisrI2VuZGlmCisr CisgCWVjZHNhICAgID0gZWNkc2FfY2hlY2soZWNrZXkpOworIAlncm91cCAgICA9IEVDX0tFWV9n ZXQwX2dyb3VwKGVja2V5KTsKKyAJcHJpdl9rZXkgPSBFQ19LRVlfZ2V0MF9wcml2YXRlX2tleShl Y2tleSk7CitAQCAtMzYwLDYgKzM3MSwxNCBAQCBzdGF0aWMgaW50IGVjZHNhX2RvX3ZlcmlmeShj b25zdCB1bnNpZ25lCisgCWNvbnN0IEVDX0dST1VQICpncm91cDsKKyAJY29uc3QgRUNfUE9JTlQg KnB1Yl9rZXk7CisgCisrI2lmZGVmIE9QRU5TU0xfRklQUworKwlpZihGSVBTX3NlbGZ0ZXN0X2Zh aWxlZCgpKQorKwkJeworKwkJRklQU2VycihGSVBTX0ZfRUNEU0FfRE9fVkVSSUZZLEZJUFNfUl9G SVBTX1NFTEZURVNUX0ZBSUxFRCk7CisrCQlyZXR1cm4gLTE7CisrCQl9CisrI2VuZGlmCisrCisg CS8qIGNoZWNrIGlucHV0IHZhbHVlcyAqLworIAlpZiAoZWNrZXkgPT0gTlVMTCB8fCAoZ3JvdXAg PSBFQ19LRVlfZ2V0MF9ncm91cChlY2tleSkpID09IE5VTEwgfHwKKyAJICAgIChwdWJfa2V5ID0g RUNfS0VZX2dldDBfcHVibGljX2tleShlY2tleSkpID09IE5VTEwgfHwgc2lnID09IE5VTEwpCitk aWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL21fZWNkc2EuYy5maXBzLWVjIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9ldnAvbV9lY2RzYS5jCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2V2cC9tX2VjZHNhLmMuZmlwcy1lYwkyMDEzLTAyLTExIDE1OjI2OjA0LjAwMDAwMDAwMCArMDAw MAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvbV9lY2RzYS5jCTIwMTMtMTAtMTUgMDE6 MDg6MDYuMDQ3NzgzMTQ2ICswMTAwCitAQCAtMTE2LDcgKzExNiw2IEBACisgI2luY2x1ZGUgPG9w ZW5zc2wveDUwOS5oPgorIAorICNpZm5kZWYgT1BFTlNTTF9OT19TSEEKKy0jaWZuZGVmIE9QRU5T U0xfRklQUworIAorIHN0YXRpYyBpbnQgaW5pdChFVlBfTURfQ1RYICpjdHgpCisgCXsgcmV0dXJu IFNIQTFfSW5pdChjdHgtPm1kX2RhdGEpOyB9CitAQCAtMTMyLDcgKzEzMSw3IEBAIHN0YXRpYyBj b25zdCBFVlBfTUQgZWNkc2FfbWQ9CisgCU5JRF9lY2RzYV93aXRoX1NIQTEsCisgCU5JRF9lY2Rz YV93aXRoX1NIQTEsCisgCVNIQV9ESUdFU1RfTEVOR1RILAorLQlFVlBfTURfRkxBR19QS0VZX0RJ R0VTVCwKKysJRVZQX01EX0ZMQUdfUEtFWV9ESUdFU1R8RVZQX01EX0ZMQUdfRklQUywKKyAJaW5p dCwKKyAJdXBkYXRlLAorIAlmaW5hbCwKK0BAIC0xNDgsNCArMTQ3LDMgQEAgY29uc3QgRVZQX01E ICpFVlBfZWNkc2Eodm9pZCkKKyAJcmV0dXJuKCZlY2RzYV9tZCk7CisgCX0KKyAjZW5kaWYKKy0j ZW5kaWYKK2RpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL01ha2VmaWxlLmZpcHMt ZWMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvTWFrZWZpbGUKKy0tLSBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9NYWtlZmlsZS5maXBzLWVjCTIwMTMtMTAtMTUgMDE6MDg6MDYuMDA4Nzgz MjAwICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvTWFrZWZpbGUJMjAxMy0x MC0xNSAwMTowODoxNy42Mjc3NjcxNjggKzAxMDAKK0BAIC0yNCwxMyArMjQsMTMgQEAgTElCU1JD PWZpcHNfYWVzX3NlbGZ0ZXN0LmMgZmlwc19kZXNfc2VsZgorICAgICBmaXBzX3JzYV9zZWxmdGVz dC5jIGZpcHNfc2hhX3NlbGZ0ZXN0LmMgZmlwcy5jIGZpcHNfZHNhX3NlbGZ0ZXN0LmMgIGZpcHNf cmFuZC5jIFwKKyAgICAgZmlwc19yc2FfeDkzMWcuYyBmaXBzX3Bvc3QuYyBmaXBzX2RyYmdfY3Ry LmMgZmlwc19kcmJnX2hhc2guYyBmaXBzX2RyYmdfaG1hYy5jIFwKKyAgICAgZmlwc19kcmJnX2xp Yi5jIGZpcHNfZHJiZ19yYW5kLmMgZmlwc19kcmJnX3NlbGZ0ZXN0LmMgZmlwc19yYW5kX2xpYi5j IFwKKy0gICAgZmlwc19jbWFjX3NlbGZ0ZXN0LmMgZmlwc19lbmMuYyBmaXBzX21kLmMKKysgICAg Zmlwc19jbWFjX3NlbGZ0ZXN0LmMgZmlwc19lY2RoX3NlbGZ0ZXN0LmMgZmlwc19lY2RzYV9zZWxm dGVzdC5jIGZpcHNfZW5jLmMgZmlwc19tZC5jCisgCisgTElCT0JKPWZpcHNfYWVzX3NlbGZ0ZXN0 Lm8gZmlwc19kZXNfc2VsZnRlc3QubyBmaXBzX2htYWNfc2VsZnRlc3QubyBmaXBzX3JhbmRfc2Vs ZnRlc3QubyBcCisgICAgIGZpcHNfcnNhX3NlbGZ0ZXN0Lm8gZmlwc19zaGFfc2VsZnRlc3QubyBm aXBzLm8gZmlwc19kc2Ffc2VsZnRlc3QubyAgZmlwc19yYW5kLm8gXAorICAgICBmaXBzX3JzYV94 OTMxZy5vIGZpcHNfcG9zdC5vIGZpcHNfZHJiZ19jdHIubyBmaXBzX2RyYmdfaGFzaC5vIGZpcHNf ZHJiZ19obWFjLm8gXAorICAgICBmaXBzX2RyYmdfbGliLm8gZmlwc19kcmJnX3JhbmQubyBmaXBz X2RyYmdfc2VsZnRlc3QubyBmaXBzX3JhbmRfbGliLm8gXAorLSAgICBmaXBzX2NtYWNfc2VsZnRl c3QubyBmaXBzX2VuYy5vIGZpcHNfbWQubworKyAgICBmaXBzX2NtYWNfc2VsZnRlc3QubyBmaXBz X2VjZGhfc2VsZnRlc3QubyBmaXBzX2VjZHNhX3NlbGZ0ZXN0Lm8gZmlwc19lbmMubyBmaXBzX21k Lm8KKyAKKyBMSUJDUllQVE89LUwuLiAtbGNyeXB0bworIAorQEAgLTExOCw2ICsxMTgsMjEgQEAg Zmlwc19hZXNfc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVucworIGZpcHNfYWVzX3NlbGZ0 ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9zYWZlc3RhY2suaAorIGZpcHNfYWVzX3NlbGZ0 ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9zdGFjay5oCisgZmlwc19hZXNfc2VsZnRlc3Qu bzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL3N5bWhhY2tzLmggZmlwc19hZXNfc2VsZnRlc3QuYwor K2ZpcHNfY21hY19zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvYXNuMS5oIC4uLy4u L2luY2x1ZGUvb3BlbnNzbC9iaW8uaAorK2ZpcHNfY21hY19zZWxmdGVzdC5vOiAuLi8uLi9pbmNs dWRlL29wZW5zc2wvY21hYy5oCisrZmlwc19jbWFjX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUv b3BlbnNzbC9jcnlwdG8uaAorK2ZpcHNfY21hY19zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29w ZW5zc2wvZV9vczIuaCAuLi8uLi9pbmNsdWRlL29wZW5zc2wvZXJyLmgKKytmaXBzX2NtYWNfc2Vs ZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL2V2cC5oIC4uLy4uL2luY2x1ZGUvb3BlbnNz bC9maXBzLmgKKytmaXBzX2NtYWNfc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL2xo YXNoLmgKKytmaXBzX2NtYWNfc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL29ial9t YWMuaAorK2ZpcHNfY21hY19zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvb2JqZWN0 cy5oCisrZmlwc19jbWFjX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3Ns Y29uZi5oCisrZmlwc19jbWFjX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9vcGVu c3Nsdi5oCisrZmlwc19jbWFjX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9vc3Ns X3R5cC5oCisrZmlwc19jbWFjX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9zYWZl c3RhY2suaAorK2ZpcHNfY21hY19zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvc3Rh Y2suaAorK2ZpcHNfY21hY19zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvc3ltaGFj a3MuaCBmaXBzX2NtYWNfc2VsZnRlc3QuYworK2ZpcHNfY21hY19zZWxmdGVzdC5vOiBmaXBzX2xv Y2wuaAorIGZpcHNfZGVzX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9hc24xLmgg Li4vLi4vaW5jbHVkZS9vcGVuc3NsL2Jpby5oCisgZmlwc19kZXNfc2VsZnRlc3QubzogLi4vLi4v aW5jbHVkZS9vcGVuc3NsL2NyeXB0by5oCisgZmlwc19kZXNfc2VsZnRlc3QubzogLi4vLi4vaW5j bHVkZS9vcGVuc3NsL2Vfb3MyLmggLi4vLi4vaW5jbHVkZS9vcGVuc3NsL2Vyci5oCitAQCAtMjMx LDYgKzI0Niw0NiBAQCBmaXBzX2RzYV9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zCisg Zmlwc19kc2Ffc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL3N0YWNrLmgKKyBmaXBz X2RzYV9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvc3ltaGFja3MuaCBmaXBzX2Rz YV9zZWxmdGVzdC5jCisgZmlwc19kc2Ffc2VsZnRlc3QubzogZmlwc19sb2NsLmgKKytmaXBzX2Vj ZGhfc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL2FzbjEuaCAuLi8uLi9pbmNsdWRl L29wZW5zc2wvYmlvLmgKKytmaXBzX2VjZGhfc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVu c3NsL2JuLmggLi4vLi4vaW5jbHVkZS9vcGVuc3NsL2NyeXB0by5oCisrZmlwc19lY2RoX3NlbGZ0 ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9lX29zMi5oIC4uLy4uL2luY2x1ZGUvb3BlbnNz bC9lYy5oCisrZmlwc19lY2RoX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9lY2Ro LmggLi4vLi4vaW5jbHVkZS9vcGVuc3NsL2Vyci5oCisrZmlwc19lY2RoX3NlbGZ0ZXN0Lm86IC4u Ly4uL2luY2x1ZGUvb3BlbnNzbC9ldnAuaCAuLi8uLi9pbmNsdWRlL29wZW5zc2wvZmlwcy5oCisr Zmlwc19lY2RoX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9saGFzaC5oCisrZmlw c19lY2RoX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9vYmpfbWFjLmgKKytmaXBz X2VjZGhfc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL29iamVjdHMuaAorK2ZpcHNf ZWNkaF9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYuaAorK2Zp cHNfZWNkaF9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbHYuaAorK2Zp cHNfZWNkaF9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvb3NzbF90eXAuaAorK2Zp cHNfZWNkaF9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvc2FmZXN0YWNrLmgKKytm aXBzX2VjZGhfc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL3N0YWNrLmgKKytmaXBz X2VjZGhfc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL3N5bWhhY2tzLmggZmlwc19l Y2RoX3NlbGZ0ZXN0LmMKKytmaXBzX2VjZGhfc2VsZnRlc3QubzogZmlwc19sb2NsLmgKKytmaXBz X2VjZHNhX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9hc24xLmggLi4vLi4vaW5j bHVkZS9vcGVuc3NsL2Jpby5oCisrZmlwc19lY2RzYV9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRl L29wZW5zc2wvYm4uaAorK2ZpcHNfZWNkc2Ffc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVu c3NsL2NyeXB0by5oCisrZmlwc19lY2RzYV9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5z c2wvZV9vczIuaCAuLi8uLi9pbmNsdWRlL29wZW5zc2wvZWMuaAorK2ZpcHNfZWNkc2Ffc2VsZnRl c3QubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL2VjZHNhLmgKKytmaXBzX2VjZHNhX3NlbGZ0ZXN0 Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9lcnIuaCAuLi8uLi9pbmNsdWRlL29wZW5zc2wvZXZw LmgKKytmaXBzX2VjZHNhX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9maXBzLmgK KytmaXBzX2VjZHNhX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9saGFzaC5oCisr Zmlwc19lY2RzYV9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvb2JqX21hYy5oCisr Zmlwc19lY2RzYV9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvb2JqZWN0cy5oCisr Zmlwc19lY2RzYV9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYu aAorK2ZpcHNfZWNkc2Ffc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL29wZW5zc2x2 LmgKKytmaXBzX2VjZHNhX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9vc3NsX3R5 cC5oCisrZmlwc19lY2RzYV9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvc2FmZXN0 YWNrLmgKKytmaXBzX2VjZHNhX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9zdGFj ay5oCisrZmlwc19lY2RzYV9zZWxmdGVzdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvc3ltaGFj a3MuaCBmaXBzX2VjZHNhX3NlbGZ0ZXN0LmMKKytmaXBzX2VuYy5vOiAuLi8uLi9pbmNsdWRlL29w ZW5zc2wvYXNuMS5oIC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9iaW8uaAorK2ZpcHNfZW5jLm86IC4u Ly4uL2luY2x1ZGUvb3BlbnNzbC9jcnlwdG8uaCAuLi8uLi9pbmNsdWRlL29wZW5zc2wvZV9vczIu aAorK2ZpcHNfZW5jLm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9lcnIuaCAuLi8uLi9pbmNsdWRl L29wZW5zc2wvZXZwLmgKKytmaXBzX2VuYy5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvZmlwcy5o IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9saGFzaC5oCisrZmlwc19lbmMubzogLi4vLi4vaW5jbHVk ZS9vcGVuc3NsL29ial9tYWMuaCAuLi8uLi9pbmNsdWRlL29wZW5zc2wvb2JqZWN0cy5oCisrZmlw c19lbmMubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLmgKKytmaXBzX2VuYy5v OiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbHYuaCAuLi8uLi9pbmNsdWRlL29wZW5zc2wv b3NzbF90eXAuaAorK2ZpcHNfZW5jLm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9zYWZlc3RhY2su aCAuLi8uLi9pbmNsdWRlL29wZW5zc2wvc3RhY2suaAorK2ZpcHNfZW5jLm86IC4uLy4uL2luY2x1 ZGUvb3BlbnNzbC9zeW1oYWNrcy5oIGZpcHNfZW5jLmMKKyBmaXBzX2htYWNfc2VsZnRlc3Qubzog Li4vLi4vaW5jbHVkZS9vcGVuc3NsL2FzbjEuaCAuLi8uLi9pbmNsdWRlL29wZW5zc2wvYmlvLmgK KyBmaXBzX2htYWNfc2VsZnRlc3QubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL2NyeXB0by5oCisg Zmlwc19obWFjX3NlbGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9lX29zMi5oIC4uLy4u L2luY2x1ZGUvb3BlbnNzbC9lcnIuaAorQEAgLTI0NSw2ICszMDAsMTUgQEAgZmlwc19obWFjX3Nl bGZ0ZXN0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbgorIGZpcHNfaG1hY19zZWxmdGVzdC5vOiAuLi8u Li9pbmNsdWRlL29wZW5zc2wvc2FmZXN0YWNrLmgKKyBmaXBzX2htYWNfc2VsZnRlc3QubzogLi4v Li4vaW5jbHVkZS9vcGVuc3NsL3N0YWNrLmgKKyBmaXBzX2htYWNfc2VsZnRlc3QubzogLi4vLi4v aW5jbHVkZS9vcGVuc3NsL3N5bWhhY2tzLmggZmlwc19obWFjX3NlbGZ0ZXN0LmMKKytmaXBzX21k Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9hc24xLmggLi4vLi4vaW5jbHVkZS9vcGVuc3NsL2Jp by5oCisrZmlwc19tZC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvY3J5cHRvLmggLi4vLi4vaW5j bHVkZS9vcGVuc3NsL2Vfb3MyLmgKKytmaXBzX21kLm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9l cnIuaCAuLi8uLi9pbmNsdWRlL29wZW5zc2wvZXZwLmgKKytmaXBzX21kLm86IC4uLy4uL2luY2x1 ZGUvb3BlbnNzbC9maXBzLmggLi4vLi4vaW5jbHVkZS9vcGVuc3NsL2xoYXNoLmgKKytmaXBzX21k Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9vYmpfbWFjLmggLi4vLi4vaW5jbHVkZS9vcGVuc3Ns L29iamVjdHMuaAorK2ZpcHNfbWQubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25m LmggLi4vLi4vaW5jbHVkZS9vcGVuc3NsL29wZW5zc2x2LmgKKytmaXBzX21kLm86IC4uLy4uL2lu Y2x1ZGUvb3BlbnNzbC9vc3NsX3R5cC5oIC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9zYWZlc3RhY2su aAorK2ZpcHNfbWQubzogLi4vLi4vaW5jbHVkZS9vcGVuc3NsL3N0YWNrLmggLi4vLi4vaW5jbHVk ZS9vcGVuc3NsL3N5bWhhY2tzLmgKKytmaXBzX21kLm86IGZpcHNfbWQuYworIGZpcHNfcG9zdC5v OiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvYWVzLmggLi4vLi4vaW5jbHVkZS9vcGVuc3NsL2FzbjEu aAorIGZpcHNfcG9zdC5vOiAuLi8uLi9pbmNsdWRlL29wZW5zc2wvYmlvLmggLi4vLi4vaW5jbHVk ZS9vcGVuc3NsL2NyeXB0by5oCisgZmlwc19wb3N0Lm86IC4uLy4uL2luY2x1ZGUvb3BlbnNzbC9k c2EuaCAuLi8uLi9pbmNsdWRlL29wZW5zc2wvZV9vczIuaAorZGlmZiAtdXAgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2VjZGh2cy5jLmZpcHMtZWMgb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL2ZpcHMvY2F2cy9maXBzX2VjZGh2cy5jCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2ZpcHMvY2F2cy9maXBzX2VjZGh2cy5jLmZpcHMtZWMJMjAxMy0xMC0xNSAwMTowODowNi4wNDc3 ODMxNDYgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfZWNk aHZzLmMJMjAxMy0xMC0xNSAwMTowODowNi4wNDc3ODMxNDYgKzAxMDAKK0BAIC0wLDAgKzEsNDk2 IEBACisrLyogZmlwcy9lY2RoL2ZpcHNfZWNkaHZzLmMgKi8KKysvKiBXcml0dGVuIGJ5IERyIFN0 ZXBoZW4gTiBIZW5zb24gKHN0ZXZlQG9wZW5zc2wub3JnKSBmb3IgdGhlIE9wZW5TU0wKKysgKiBw cm9qZWN0LgorKyAqLworKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrICogQ29weXJpZ2h0IChjKSAyMDExIFRo ZSBPcGVuU1NMIFByb2plY3QuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorKyAqCisrICogUmVkaXN0 cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo b3V0CisrICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv bGxvd2luZyBjb25kaXRpb25zCisrICogYXJlIG1ldDoKKysgKgorKyAqIDEuIFJlZGlzdHJpYnV0 aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisrICog ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj bGFpbWVyLiAKKysgKgorKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0 IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisrICogICAgbm90aWNlLCB0aGlzIGxpc3Qg b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCisrICogICAgdGhl IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor KyAqICAgIGRpc3RyaWJ1dGlvbi4KKysgKgorKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlh bHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcworKyAqICAgIHNvZnR3YXJlIG11 c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdtZW50OgorKyAqICAgICJUaGlzIHBy b2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVuU1NMIFByb2plY3QK KysgKiAgICBmb3IgdXNlIGluIHRoZSBPcGVuU1NMIFRvb2xraXQuIChodHRwOi8vd3d3Lk9wZW5T U0wub3JnLykiCisrICoKKysgKiA0LiBUaGUgbmFtZXMgIk9wZW5TU0wgVG9vbGtpdCIgYW5kICJP cGVuU1NMIFByb2plY3QiIG11c3Qgbm90IGJlIHVzZWQgdG8KKysgKiAgICBlbmRvcnNlIG9yIHBy b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorKyAqICAg IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdyaXR0ZW4gcGVybWlzc2lvbiwgcGxlYXNl IGNvbnRhY3QKKysgKiAgICBsaWNlbnNpbmdAT3BlblNTTC5vcmcuCisrICoKKysgKiA1LiBQcm9k dWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSBtYXkgbm90IGJlIGNhbGxlZCAiT3BlblNT TCIKKysgKiAgICBub3IgbWF5ICJPcGVuU1NMIiBhcHBlYXIgaW4gdGhlaXIgbmFtZXMgd2l0aG91 dCBwcmlvciB3cml0dGVuCisrICogICAgcGVybWlzc2lvbiBvZiB0aGUgT3BlblNTTCBQcm9qZWN0 LgorKyAqCisrICogNi4gUmVkaXN0cmlidXRpb25zIG9mIGFueSBmb3JtIHdoYXRzb2V2ZXIgbXVz dCByZXRhaW4gdGhlIGZvbGxvd2luZworKyAqICAgIGFja25vd2xlZGdtZW50OgorKyAqICAgICJU aGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVuU1NMIFBy b2plY3QKKysgKiAgICBmb3IgdXNlIGluIHRoZSBPcGVuU1NMIFRvb2xraXQgKGh0dHA6Ly93d3cu T3BlblNTTC5vcmcvKSIKKysgKgorKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF IE9wZW5TU0wgUFJPSkVDVCBgYEFTIElTJycgQU5EIEFOWQorKyAqIEVYUFJFU1NFRCBPUiBJTVBM SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKysgKiBJ TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIKKysgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg VEhFIE9wZW5TU0wgUFJPSkVDVCBPUgorKyAqIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKysgKiBTUEVDSUFMLCBFWEVNUExB UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKysgKiBOT1QgTElN SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKysg KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O KQorKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF VEhFUiBJTiBDT05UUkFDVCwKKysgKiBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisrICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRAorKyAqIE9GIFRIRSBQ T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKysgKiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyAqLworKworKwor KyNkZWZpbmUgT1BFTlNTTF9GSVBTQVBJCisrI2luY2x1ZGUgPG9wZW5zc2wvb3BlbnNzbGNvbmYu aD4KKysKKysjaWZuZGVmIE9QRU5TU0xfRklQUworKyNpbmNsdWRlIDxzdGRpby5oPgorKworK2lu dCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKKyt7CisrICAgIHByaW50ZigiTm8gRklQUyBF Q0RIIHN1cHBvcnRcbiIpOworKyAgICByZXR1cm4oMCk7CisrfQorKyNlbHNlCisrCisrI2luY2x1 ZGUgPG9wZW5zc2wvY3J5cHRvLmg+CisrI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KKysjaW5jbHVk ZSA8b3BlbnNzbC9lY2RoLmg+CisrI2luY2x1ZGUgPG9wZW5zc2wvZmlwcy5oPgorKyNpbmNsdWRl IDxvcGVuc3NsL2Vyci5oPgorKyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgorKyNpbmNsdWRlIDxz dHJpbmcuaD4KKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysKKysjaW5jbHVkZSAiZmlwc191dGwuaCIK KysKKytzdGF0aWMgY29uc3QgRVZQX01EICplcGFyc2VfbWQoY2hhciAqbGluZSkKKysJeworKwlj aGFyICpwOworKwlpZiAobGluZVswXSAhPSAnWycgfHwgbGluZVsxXSAhPSAnRScpCisrCQlyZXR1 cm4gTlVMTDsKKysJcCA9IHN0cmNocihsaW5lLCAnLScpOworKwlpZiAoIXApCisrCQlyZXR1cm4g TlVMTDsKKysJbGluZSA9IHAgKyAxOworKwlwID0gc3RyY2hyKGxpbmUsICddJyk7CisrCWlmICgh cCkKKysJCXJldHVybiBOVUxMOworKwkqcCA9IDA7CisrCXAgPSBsaW5lOworKwl3aGlsZShpc3Nw YWNlKCpwKSkKKysJCXArKzsKKysJaWYgKCFzdHJjbXAocCwgIlNIQTEiKSkKKysJCXJldHVybiBF VlBfc2hhMSgpOworKwllbHNlIGlmICghc3RyY21wKHAsICJTSEEyMjQiKSkKKysJCXJldHVybiBF VlBfc2hhMjI0KCk7CisrCWVsc2UgaWYgKCFzdHJjbXAocCwgIlNIQTI1NiIpKQorKwkJcmV0dXJu IEVWUF9zaGEyNTYoKTsKKysJZWxzZSBpZiAoIXN0cmNtcChwLCAiU0hBMzg0IikpCisrCQlyZXR1 cm4gRVZQX3NoYTM4NCgpOworKwllbHNlIGlmICghc3RyY21wKHAsICJTSEE1MTIiKSkKKysJCXJl dHVybiBFVlBfc2hhNTEyKCk7CisrCWVsc2UKKysJCXJldHVybiBOVUxMOworKwl9CisrCisrc3Rh dGljIGludCBsb29rdXBfY3VydmUyKGNoYXIgKmNuYW1lKQorKwl7CisrCWNoYXIgKnA7CisrCXAg PSBzdHJjaHIoY25hbWUsICddJyk7CisrCWlmICghcCkKKysJCXsKKysJCWZwcmludGYoc3RkZXJy LCAiUGFyc2UgZXJyb3I6IG1pc3NpbmcgXVxuIik7CisrCQlyZXR1cm4gTklEX3VuZGVmOworKwkJ fQorKwkqcCA9IDA7CisrCisrCWlmICghc3RyY21wKGNuYW1lLCAiQi0xNjMiKSkKKysJCXJldHVy biBOSURfc2VjdDE2M3IyOworKwlpZiAoIXN0cmNtcChjbmFtZSwgIkItMjMzIikpCisrCQlyZXR1 cm4gTklEX3NlY3QyMzNyMTsKKysJaWYgKCFzdHJjbXAoY25hbWUsICJCLTI4MyIpKQorKwkJcmV0 dXJuIE5JRF9zZWN0MjgzcjE7CisrCWlmICghc3RyY21wKGNuYW1lLCAiQi00MDkiKSkKKysJCXJl dHVybiBOSURfc2VjdDQwOXIxOworKwlpZiAoIXN0cmNtcChjbmFtZSwgIkItNTcxIikpCisrCQly ZXR1cm4gTklEX3NlY3Q1NzFyMTsKKysJaWYgKCFzdHJjbXAoY25hbWUsICJLLTE2MyIpKQorKwkJ cmV0dXJuIE5JRF9zZWN0MTYzazE7CisrCWlmICghc3RyY21wKGNuYW1lLCAiSy0yMzMiKSkKKysJ CXJldHVybiBOSURfc2VjdDIzM2sxOworKwlpZiAoIXN0cmNtcChjbmFtZSwgIkstMjgzIikpCisr CQlyZXR1cm4gTklEX3NlY3QyODNrMTsKKysJaWYgKCFzdHJjbXAoY25hbWUsICJLLTQwOSIpKQor KwkJcmV0dXJuIE5JRF9zZWN0NDA5azE7CisrCWlmICghc3RyY21wKGNuYW1lLCAiSy01NzEiKSkK KysJCXJldHVybiBOSURfc2VjdDU3MWsxOworKwlpZiAoIXN0cmNtcChjbmFtZSwgIlAtMTkyIikp CisrCQlyZXR1cm4gTklEX1g5XzYyX3ByaW1lMTkydjE7CisrCWlmICghc3RyY21wKGNuYW1lLCAi UC0yMjQiKSkKKysJCXJldHVybiBOSURfc2VjcDIyNHIxOworKwlpZiAoIXN0cmNtcChjbmFtZSwg IlAtMjU2IikpCisrCQlyZXR1cm4gTklEX1g5XzYyX3ByaW1lMjU2djE7CisrCWlmICghc3RyY21w KGNuYW1lLCAiUC0zODQiKSkKKysJCXJldHVybiBOSURfc2VjcDM4NHIxOworKwlpZiAoIXN0cmNt cChjbmFtZSwgIlAtNTIxIikpCisrCQlyZXR1cm4gTklEX3NlY3A1MjFyMTsKKysKKysJZnByaW50 ZihzdGRlcnIsICJVbmtub3duIEN1cnZlIG5hbWUgJXNcbiIsIGNuYW1lKTsKKysJcmV0dXJuIE5J RF91bmRlZjsKKysJfQorKworK3N0YXRpYyBpbnQgbG9va3VwX2N1cnZlKGNoYXIgKmNuYW1lKQor Kwl7CisrCWNoYXIgKnA7CisrCXAgPSBzdHJjaHIoY25hbWUsICc6Jyk7CisrCWlmICghcCkKKysJ CXsKKysJCWZwcmludGYoc3RkZXJyLCAiUGFyc2UgZXJyb3I6IG1pc3NpbmcgOlxuIik7CisrCQly ZXR1cm4gTklEX3VuZGVmOworKwkJfQorKwljbmFtZSA9IHAgKyAxOworKwl3aGlsZShpc3NwYWNl KCpjbmFtZSkpCisrCQljbmFtZSsrOworKwlyZXR1cm4gbG9va3VwX2N1cnZlMihjbmFtZSk7Cisr CX0KKysKKytzdGF0aWMgRUNfUE9JTlQgKm1ha2VfcGVlcihFQ19HUk9VUCAqZ3JvdXAsIEJJR05V TSAqeCwgQklHTlVNICp5KQorKwl7CisrCUVDX1BPSU5UICpwZWVyOworKwlpbnQgcnY7CisrCUJO X0NUWCAqYzsKKysJcGVlciA9IEVDX1BPSU5UX25ldyhncm91cCk7CisrCWlmICghcGVlcikKKysJ CXJldHVybiBOVUxMOworKwljID0gQk5fQ1RYX25ldygpOworKwlpZiAoRUNfTUVUSE9EX2dldF9m aWVsZF90eXBlKEVDX0dST1VQX21ldGhvZF9vZihncm91cCkpCisrCQk9PSBOSURfWDlfNjJfcHJp bWVfZmllbGQpCisrCQlydiA9IEVDX1BPSU5UX3NldF9hZmZpbmVfY29vcmRpbmF0ZXNfR0ZwKGdy b3VwLCBwZWVyLCB4LCB5LCBjKTsKKysJZWxzZQorKyNpZmRlZiBPUEVOU1NMX05PX0VDMk0KKysJ CXsKKysJCWZwcmludGYoc3RkZXJyLCAiRVJST1I6IEdGMm0gbm90IHN1cHBvcnRlZFxuIik7Cisr CQlleGl0KDEpOworKwkJfQorKyNlbHNlCisrCQlydiA9IEVDX1BPSU5UX3NldF9hZmZpbmVfY29v cmRpbmF0ZXNfR0YybShncm91cCwgcGVlciwgeCwgeSwgYyk7CisrI2VuZGlmCisrCisrCUJOX0NU WF9mcmVlKGMpOworKwlpZiAocnYpCisrCQlyZXR1cm4gcGVlcjsKKysJRUNfUE9JTlRfZnJlZShw ZWVyKTsKKysJcmV0dXJuIE5VTEw7CisrCX0KKysKKytzdGF0aWMgaW50IGVjX3ByaW50X2tleShG SUxFICpvdXQsIEVDX0tFWSAqa2V5LCBpbnQgYWRkX2UsIGludCBleG91dCkKKysJeworKwljb25z dCBFQ19QT0lOVCAqcHQ7CisrCWNvbnN0IEVDX0dST1VQICpncnA7CisrCWNvbnN0IEVDX01FVEhP RCAqbWV0aDsKKysJaW50IHJ2OworKwlCSUdOVU0gKnR4LCAqdHk7CisrCWNvbnN0IEJJR05VTSAq ZCA9IE5VTEw7CisrCUJOX0NUWCAqY3R4OworKwljdHggPSBCTl9DVFhfbmV3KCk7CisrCWlmICgh Y3R4KQorKwkJcmV0dXJuIDA7CisrCXR4ID0gQk5fQ1RYX2dldChjdHgpOworKwl0eSA9IEJOX0NU WF9nZXQoY3R4KTsKKysJaWYgKCF0eCB8fCAhdHkpCisrCQlyZXR1cm4gMDsKKysJZ3JwID0gRUNf S0VZX2dldDBfZ3JvdXAoa2V5KTsKKysJcHQgPSBFQ19LRVlfZ2V0MF9wdWJsaWNfa2V5KGtleSk7 CisrCWlmIChleG91dCkKKysJCWQgPSBFQ19LRVlfZ2V0MF9wcml2YXRlX2tleShrZXkpOworKwlt ZXRoID0gRUNfR1JPVVBfbWV0aG9kX29mKGdycCk7CisrCWlmIChFQ19NRVRIT0RfZ2V0X2ZpZWxk X3R5cGUobWV0aCkgPT0gTklEX1g5XzYyX3ByaW1lX2ZpZWxkKQorKwkJcnYgPSBFQ19QT0lOVF9n ZXRfYWZmaW5lX2Nvb3JkaW5hdGVzX0dGcChncnAsIHB0LCB0eCwgdHksIGN0eCk7CisrCWVsc2UK KysjaWZkZWYgT1BFTlNTTF9OT19FQzJNCisrCQl7CisrCQlmcHJpbnRmKHN0ZGVyciwgIkVSUk9S OiBHRjJtIG5vdCBzdXBwb3J0ZWRcbiIpOworKwkJZXhpdCgxKTsKKysJCX0KKysjZWxzZQorKwkJ cnYgPSBFQ19QT0lOVF9nZXRfYWZmaW5lX2Nvb3JkaW5hdGVzX0dGMm0oZ3JwLCBwdCwgdHgsIHR5 LCBjdHgpOworKyNlbmRpZgorKworKwlpZiAoYWRkX2UpCisrCQl7CisrCQlkb19ibl9wcmludF9u YW1lKG91dCwgIlFlSVVUeCIsIHR4KTsKKysJCWRvX2JuX3ByaW50X25hbWUob3V0LCAiUWVJVVR5 IiwgdHkpOworKwkJaWYgKGQpCisrCQkJZG9fYm5fcHJpbnRfbmFtZShvdXQsICJRZUlVVGQiLCBk KTsKKysJCX0KKysJZWxzZQorKwkJeworKwkJZG9fYm5fcHJpbnRfbmFtZShvdXQsICJRSVVUeCIs IHR4KTsKKysJCWRvX2JuX3ByaW50X25hbWUob3V0LCAiUUlVVHkiLCB0eSk7CisrCQlpZiAoZCkK KysJCQlkb19ibl9wcmludF9uYW1lKG91dCwgIlFJVVRkIiwgZCk7CisrCQl9CisrCisrCUJOX0NU WF9mcmVlKGN0eCk7CisrCisrCXJldHVybiBydjsKKysKKysJfQorKworK3N0YXRpYyB2b2lkIGVj X291dHB1dF9aaGFzaChGSUxFICpvdXQsIGludCBleG91dCwgRUNfR1JPVVAgKmdyb3VwLAorKwkJ CUJJR05VTSAqaXgsIEJJR05VTSAqaXksIEJJR05VTSAqaWQsIEJJR05VTSAqY3gsCisrCQkJQklH TlVNICpjeSwgY29uc3QgRVZQX01EICptZCwKKysJCQkJdW5zaWduZWQgY2hhciAqcmhhc2gsIHNp emVfdCByaGFzaGxlbikKKysJeworKwlFQ19LRVkgKmVjID0gTlVMTDsKKysJRUNfUE9JTlQgKnBl ZXJrZXkgPSBOVUxMOworKwl1bnNpZ25lZCBjaGFyICpaOworKwl1bnNpZ25lZCBjaGFyIGNoYXNo W0VWUF9NQVhfTURfU0laRV07CisrCWludCBabGVuOworKwllYyA9IEVDX0tFWV9uZXcoKTsKKysJ RUNfS0VZX3NldF9mbGFncyhlYywgRUNfRkxBR19DT0ZBQ1RPUl9FQ0RIKTsKKysJRUNfS0VZX3Nl dF9ncm91cChlYywgZ3JvdXApOworKwlwZWVya2V5ID0gbWFrZV9wZWVyKGdyb3VwLCBjeCwgY3kp OworKwlpZiAocmhhc2ggPT0gTlVMTCkKKysJCXsKKysJCWlmIChtZCkKKysJCQlyaGFzaGxlbiA9 IE1fRVZQX01EX3NpemUobWQpOworKwkJRUNfS0VZX2dlbmVyYXRlX2tleShlYyk7CisrCQllY19w cmludF9rZXkob3V0LCBlYywgbWQgPyAxIDogMCwgZXhvdXQpOworKwkJfQorKwllbHNlCisrCQl7 CisrCQlFQ19LRVlfc2V0X3B1YmxpY19rZXlfYWZmaW5lX2Nvb3JkaW5hdGVzKGVjLCBpeCwgaXkp OworKwkJRUNfS0VZX3NldF9wcml2YXRlX2tleShlYywgaWQpOworKwkJfQorKwlabGVuID0gKEVD X0dST1VQX2dldF9kZWdyZWUoZ3JvdXApICsgNykvODsKKysJWiA9IE9QRU5TU0xfbWFsbG9jKFps ZW4pOworKwlpZiAoIVopCisrCQlleGl0KDEpOworKwlFQ0RIX2NvbXB1dGVfa2V5KFosIFpsZW4s IHBlZXJrZXksIGVjLCAwKTsKKysJaWYgKG1kKQorKwkJeworKwkJaWYgKGV4b3V0KQorKwkJCU91 dHB1dFZhbHVlKCJaIiwgWiwgWmxlbiwgb3V0LCAwKTsKKysJCUZJUFNfZGlnZXN0KFosIFpsZW4s IGNoYXNoLCBOVUxMLCBtZCk7CisrCQlPdXRwdXRWYWx1ZShyaGFzaCA/ICJJVVRIYXNoWloiIDog Ikhhc2haWiIsCisrCQkJCQkJY2hhc2gsIHJoYXNobGVuLCBvdXQsIDApOworKwkJaWYgKHJoYXNo KQorKwkJCXsKKysJCQlmcHJpbnRmKG91dCwgIlJlc3VsdCA9ICVzXG4iLAorKwkJCQltZW1jbXAo Y2hhc2gsIHJoYXNoLCByaGFzaGxlbikgPyAiRiIgOiAiUCIpOworKwkJCX0KKysJCX0KKysJZWxz ZQorKwkJT3V0cHV0VmFsdWUoIlpJVVQiLCBaLCBabGVuLCBvdXQsIDApOworKwlPUEVOU1NMX2Ns ZWFuc2UoWiwgWmxlbik7CisrCU9QRU5TU0xfZnJlZShaKTsKKysJRUNfS0VZX2ZyZWUoZWMpOwor KwlFQ19QT0lOVF9mcmVlKHBlZXJrZXkpOworKwl9CisrCQkKKysjaWZkZWYgRklQU19BTEdWUwor K2ludCBmaXBzX2VjZGh2c19tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKKysjZWxzZQorK2lu dCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKKysjZW5kaWYKKysJeworKwljaGFyICoqYXJn cyA9IGFyZ3YgKyAxOworKwlpbnQgYXJnbiA9IGFyZ2MgLSAxOworKwlGSUxFICppbiwgKm91dDsK KysJY2hhciBidWZbMjA0OF0sIGxidWZbMjA0OF07CisrCXVuc2lnbmVkIGNoYXIgKnJoYXNoID0g TlVMTDsKKysJbG9uZyByaGFzaGxlbjsKKysJQklHTlVNICpjeCA9IE5VTEwsICpjeSA9IE5VTEw7 CisrCUJJR05VTSAqaWQgPSBOVUxMLCAqaXggPSBOVUxMLCAqaXkgPSBOVUxMOworKwljb25zdCBF VlBfTUQgKm1kID0gTlVMTDsKKysJRUNfR1JPVVAgKmdyb3VwID0gTlVMTDsKKysJY2hhciAqa2V5 d29yZCA9IE5VTEwsICp2YWx1ZSA9IE5VTEw7CisrCWludCBkb192ZXJpZnkgPSAtMSwgZXhvdXQg PSAwOworKwlpbnQgcnYgPSAxOworKworKwlpbnQgY3VydmVfbmlkc1s1XSA9IHswLDAsMCwwLDB9 OworKwlpbnQgcGFyYW1fc2V0ID0gLTE7CisrCisrCWZpcHNfYWxndGVzdF9pbml0KCk7CisrCisr CWlmIChhcmduICYmICFzdHJjbXAoKmFyZ3MsICJlY2RodmVyIikpCisrCQl7CisrCQlkb192ZXJp ZnkgPSAxOworKwkJYXJncysrOworKwkJYXJnbi0tOworKwkJfQorKwllbHNlIGlmIChhcmduICYm ICFzdHJjbXAoKmFyZ3MsICJlY2RoZ2VuIikpCisrCQl7CisrCQlkb192ZXJpZnkgPSAwOworKwkJ YXJncysrOworKwkJYXJnbi0tOworKwkJfQorKworKwlpZiAoYXJnbiAmJiAhc3RyY21wKCphcmdz LCAiLWV4b3V0IikpCisrCQl7CisrCQlleG91dCA9IDE7CisrCQlhcmdzKys7CisrCQlhcmduLS07 CisrCQl9CisrCisrCWlmIChkb192ZXJpZnkgPT0gLTEpCisrCQl7CisrCQlmcHJpbnRmKHN0ZGVy ciwiJXMgW2VjZGh2ZXJ8ZWNkaGdlbnxdIFstZXhvdXRdIChpbmZpbGUgb3V0ZmlsZSlcbiIsYXJn dlswXSk7CisrCQlleGl0KDEpOworKwkJfQorKworKwlpZiAoYXJnbiA9PSAyKQorKwkJeworKwkJ aW4gPSBmb3BlbigqYXJncywgInIiKTsKKysJCWlmICghaW4pCisrCQkJeworKwkJCWZwcmludGYo c3RkZXJyLCAiRXJyb3Igb3BlbmluZyBpbnB1dCBmaWxlXG4iKTsKKysJCQlleGl0KDEpOworKwkJ CX0KKysJCW91dCA9IGZvcGVuKGFyZ3NbMV0sICJ3Iik7CisrCQlpZiAoIW91dCkKKysJCQl7Cisr CQkJZnByaW50ZihzdGRlcnIsICJFcnJvciBvcGVuaW5nIG91dHB1dCBmaWxlXG4iKTsKKysJCQll eGl0KDEpOworKwkJCX0KKysJCX0KKysJZWxzZSBpZiAoYXJnbiA9PSAwKQorKwkJeworKwkJaW4g PSBzdGRpbjsKKysJCW91dCA9IHN0ZG91dDsKKysJCX0KKysJZWxzZQorKwkJeworKwkJZnByaW50 ZihzdGRlcnIsIiVzIFtkaHZlcnxkaGdlbnxdIFstZXhvdXRdIChpbmZpbGUgb3V0ZmlsZSlcbiIs YXJndlswXSk7CisrCQlleGl0KDEpOworKwkJfQorKworKwl3aGlsZSAoZmdldHMoYnVmLCBzaXpl b2YoYnVmKSwgaW4pICE9IE5VTEwpCisrCQl7CisrCQlmcHV0cyhidWYsIG91dCk7CisrCQlpZiAo YnVmWzBdID09ICdbJyAmJiBidWZbMV0gPT0gJ0UnKQorKwkJCXsKKysJCQlpbnQgYyA9IGJ1Zlsy XTsKKysJCQlpZiAoYyA8ICdBJyB8fCBjID4gJ0UnKQorKwkJCQlnb3RvIHBhcnNlX2Vycm9yOwor KwkJCXBhcmFtX3NldCA9IGMgLSAnQSc7CisrCQkJLyogSWYganVzdCBbRT9dIHRoZW4gaW5pdGlh bCBwYXJhbXNldCAqLworKwkJCWlmIChidWZbM10gPT0gJ10nKQorKwkJCQljb250aW51ZTsKKysJ CQlpZiAoZ3JvdXApCisrCQkJCUVDX0dST1VQX2ZyZWUoZ3JvdXApOworKwkJCWdyb3VwID0gRUNf R1JPVVBfbmV3X2J5X2N1cnZlX25hbWUoY3VydmVfbmlkc1tjIC0gJ0EnXSk7CisrCQkJfQorKwkJ aWYgKHN0cmxlbihidWYpID4gMTAgJiYgIXN0cm5jbXAoYnVmLCAiW0N1cnZlIiwgNikpCisrCQkJ eworKwkJCWludCBuaWQ7CisrCQkJaWYgKHBhcmFtX3NldCA9PSAtMSkKKysJCQkJZ290byBwYXJz ZV9lcnJvcjsKKysJCQluaWQgPSBsb29rdXBfY3VydmUoYnVmKTsKKysJCQlpZiAobmlkID09IE5J RF91bmRlZikKKysJCQkJZ290byBwYXJzZV9lcnJvcjsKKysJCQljdXJ2ZV9uaWRzW3BhcmFtX3Nl dF0gPSBuaWQ7CisrCQkJfQorKworKwkJaWYgKHN0cmxlbihidWYpID4gNCAmJiBidWZbMF0gPT0g J1snICYmIGJ1ZlsyXSA9PSAnLScpCisrCQkJeworKwkJCWludCBuaWQgPSBsb29rdXBfY3VydmUy KGJ1ZiArIDEpOworKwkJCWlmIChuaWQgPT0gTklEX3VuZGVmKQorKwkJCQlnb3RvIHBhcnNlX2Vy cm9yOworKwkJCWlmIChncm91cCkKKysJCQkJRUNfR1JPVVBfZnJlZShncm91cCk7CisrCQkJZ3Jv dXAgPSBFQ19HUk9VUF9uZXdfYnlfY3VydmVfbmFtZShuaWQpOworKwkJCWlmICghZ3JvdXApCisr CQkJCXsKKysJCQkJZnByaW50ZihzdGRlcnIsICJFUlJPUjogdW5zdXBwb3J0ZWQgY3VydmUgJXNc biIsIGJ1ZiArIDEpOworKwkJCQlyZXR1cm4gMTsKKysJCQkJfQorKwkJCX0KKysKKysJCWlmIChz dHJsZW4oYnVmKSA+IDYgJiYgIXN0cm5jbXAoYnVmLCAiW0UiLCAyKSkKKysJCQl7CisrCQkJbWQg PSBlcGFyc2VfbWQoYnVmKTsKKysJCQlpZiAobWQgPT0gTlVMTCkKKysJCQkJZ290byBwYXJzZV9l cnJvcjsKKysJCQljb250aW51ZTsKKysJCQl9CisrCQlpZiAoIXBhcnNlX2xpbmUoJmtleXdvcmQs ICZ2YWx1ZSwgbGJ1ZiwgYnVmKSkKKysJCQljb250aW51ZTsKKysJCWlmICghc3RyY21wKGtleXdv cmQsICJRZUNBVlN4IikgfHwgIXN0cmNtcChrZXl3b3JkLCAiUUNBVlN4IikpCisrCQkJeworKwkJ CWlmICghZG9faGV4MmJuKCZjeCwgdmFsdWUpKQorKwkJCQlnb3RvIHBhcnNlX2Vycm9yOworKwkJ CX0KKysJCWVsc2UgaWYgKCFzdHJjbXAoa2V5d29yZCwgIlFlQ0FWU3kiKSB8fCAhc3RyY21wKGtl eXdvcmQsICJRQ0FWU3kiKSkKKysJCQl7CisrCQkJaWYgKCFkb19oZXgyYm4oJmN5LCB2YWx1ZSkp CisrCQkJCWdvdG8gcGFyc2VfZXJyb3I7CisrCQkJaWYgKGRvX3ZlcmlmeSA9PSAwKQorKwkJCQll Y19vdXRwdXRfWmhhc2gob3V0LCBleG91dCwgZ3JvdXAsCisrCQkJCQkJTlVMTCwgTlVMTCwgTlVM TCwKKysJCQkJCQljeCwgY3ksIG1kLCByaGFzaCwgcmhhc2hsZW4pOworKwkJCX0KKysJCWVsc2Ug aWYgKCFzdHJjbXAoa2V5d29yZCwgImRlSVVUIikpCisrCQkJeworKwkJCWlmICghZG9faGV4MmJu KCZpZCwgdmFsdWUpKQorKwkJCQlnb3RvIHBhcnNlX2Vycm9yOworKwkJCX0KKysJCWVsc2UgaWYg KCFzdHJjbXAoa2V5d29yZCwgIlFlSVVUeCIpKQorKwkJCXsKKysJCQlpZiAoIWRvX2hleDJibigm aXgsIHZhbHVlKSkKKysJCQkJZ290byBwYXJzZV9lcnJvcjsKKysJCQl9CisrCQllbHNlIGlmICgh c3RyY21wKGtleXdvcmQsICJRZUlVVHkiKSkKKysJCQl7CisrCQkJaWYgKCFkb19oZXgyYm4oJml5 LCB2YWx1ZSkpCisrCQkJCWdvdG8gcGFyc2VfZXJyb3I7CisrCQkJfQorKwkJZWxzZSBpZiAoIXN0 cmNtcChrZXl3b3JkLCAiQ0FWU0hhc2haWiIpKQorKwkJCXsKKysJCQlpZiAoIW1kKQorKwkJCQln b3RvIHBhcnNlX2Vycm9yOworKwkJCXJoYXNoID0gaGV4MmJpbl9tKHZhbHVlLCAmcmhhc2hsZW4p OworKwkJCWlmICghcmhhc2ggfHwgcmhhc2hsZW4gIT0gTV9FVlBfTURfc2l6ZShtZCkpCisrCQkJ CWdvdG8gcGFyc2VfZXJyb3I7CisrCQkJZWNfb3V0cHV0X1poYXNoKG91dCwgZXhvdXQsIGdyb3Vw LCBpeCwgaXksIGlkLCBjeCwgY3ksCisrCQkJCQltZCwgcmhhc2gsIHJoYXNobGVuKTsKKysJCQl9 CisrCQl9CisrCXJ2ID0gMDsKKysJcGFyc2VfZXJyb3I6CisrCWlmIChpZCkKKysJCUJOX2ZyZWUo aWQpOworKwlpZiAoaXgpCisrCQlCTl9mcmVlKGl4KTsKKysJaWYgKGl5KQorKwkJQk5fZnJlZShp eSk7CisrCWlmIChjeCkKKysJCUJOX2ZyZWUoY3gpOworKwlpZiAoY3kpCisrCQlCTl9mcmVlKGN5 KTsKKysJaWYgKGdyb3VwKQorKwkJRUNfR1JPVVBfZnJlZShncm91cCk7CisrCWlmIChpbiAmJiBp biAhPSBzdGRpbikKKysJCWZjbG9zZShpbik7CisrCWlmIChvdXQgJiYgb3V0ICE9IHN0ZG91dCkK KysJCWZjbG9zZShvdXQpOworKwlpZiAocnYpCisrCQlmcHJpbnRmKHN0ZGVyciwgIkVycm9yIFBh cnNpbmcgcmVxdWVzdCBmaWxlXG4iKTsKKysJcmV0dXJuIHJ2OworKwl9CisrCisrI2VuZGlmCitk aWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfZWNkc2F2cy5jLmZp cHMtZWMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2VjZHNhdnMuYworLS0t IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19lY2RzYXZzLmMuZmlwcy1lYwky MDEzLTEwLTE1IDAxOjA4OjA2LjA0Nzc4MzE0NiArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9maXBzL2NhdnMvZmlwc19lY2RzYXZzLmMJMjAxMy0xMC0xNSAwMTowODowNi4wNDc3ODMx NDYgKzAxMDAKK0BAIC0wLDAgKzEsNTMzIEBACisrLyogZmlwcy9lY2RzYS9maXBzX2VjZHNhdnMu YyAqLworKy8qIFdyaXR0ZW4gYnkgRHIgU3RlcGhlbiBOIEhlbnNvbiAoc3RldmVAb3BlbnNzbC5v cmcpIGZvciB0aGUgT3BlblNTTAorKyAqIHByb2plY3QuCisrICovCisrLyogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K KysgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMg cmVzZXJ2ZWQuCisrICoKKysgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKysgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKysgKiBhcmUgbWV0 OgorKyAqCisrICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu IHRoZSBhYm92ZSBjb3B5cmlnaHQKKysgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorKyAqCisrICogMi4gUmVkaXN0cmli dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK KysgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n IGRpc2NsYWltZXIgaW4KKysgKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0 ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisrICogICAgZGlzdHJpYnV0aW9uLgorKyAqCisrICog My4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBv ZiB0aGlzCisrICogICAgc29mdHdhcmUgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93 bGVkZ21lbnQ6CisrICogICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9w ZWQgYnkgdGhlIE9wZW5TU0wgUHJvamVjdAorKyAqICAgIGZvciB1c2UgaW4gdGhlIE9wZW5TU0wg VG9vbGtpdC4gKGh0dHA6Ly93d3cuT3BlblNTTC5vcmcvKSIKKysgKgorKyAqIDQuIFRoZSBuYW1l cyAiT3BlblNTTCBUb29sa2l0IiBhbmQgIk9wZW5TU0wgUHJvamVjdCIgbXVzdCBub3QgYmUgdXNl ZCB0bworKyAqICAgIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhp cyBzb2Z0d2FyZSB3aXRob3V0CisrICogICAgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiBGb3Ig d3JpdHRlbiBwZXJtaXNzaW9uLCBwbGVhc2UgY29udGFjdAorKyAqICAgIGxpY2Vuc2luZ0BPcGVu U1NMLm9yZy4KKysgKgorKyAqIDUuIFByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJl IG1heSBub3QgYmUgY2FsbGVkICJPcGVuU1NMIgorKyAqICAgIG5vciBtYXkgIk9wZW5TU0wiIGFw cGVhciBpbiB0aGVpciBuYW1lcyB3aXRob3V0IHByaW9yIHdyaXR0ZW4KKysgKiAgICBwZXJtaXNz aW9uIG9mIHRoZSBPcGVuU1NMIFByb2plY3QuCisrICoKKysgKiA2LiBSZWRpc3RyaWJ1dGlvbnMg b2YgYW55IGZvcm0gd2hhdHNvZXZlciBtdXN0IHJldGFpbiB0aGUgZm9sbG93aW5nCisrICogICAg YWNrbm93bGVkZ21lbnQ6CisrICogICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBk ZXZlbG9wZWQgYnkgdGhlIE9wZW5TU0wgUHJvamVjdAorKyAqICAgIGZvciB1c2UgaW4gdGhlIE9w ZW5TU0wgVG9vbGtpdCAoaHR0cDovL3d3dy5PcGVuU1NMLm9yZy8pIgorKyAqCisrICogVEhJUyBT T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgT3BlblNTTCBQUk9KRUNUIGBgQVMgSVMnJyBBTkQg QU5ZCisrICogRVhQUkVTU0VEIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg Tk9UIExJTUlURUQgVE8sIFRIRQorKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKyAqIFBVUlBPU0UgQVJFIERJU0NM QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgT3BlblNTTCBQUk9KRUNUIE9SCisrICogSVRT IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO VEFMLAorKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ TkNMVURJTkcsIEJVVAorKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisrICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULAorKyAqIFNUUklDVCBM SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKysg KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF TiBJRiBBRFZJU0VECisrICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKyAq ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisrICovCisrCisrI2RlZmluZSBPUEVOU1NMX0ZJUFNBUEkKKysjaW5jbHVk ZSA8b3BlbnNzbC9vcGVuc3NsY29uZi5oPgorKyNpbmNsdWRlIDxzdGRpby5oPgorKworKyNpZm5k ZWYgT1BFTlNTTF9GSVBTCisrCisraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorK3sK KysgICAgcHJpbnRmKCJObyBGSVBTIEVDRFNBIHN1cHBvcnRcbiIpOworKyAgICByZXR1cm4oMCk7 CisrfQorKyNlbHNlCisrCisrI2luY2x1ZGUgPHN0cmluZy5oPgorKyNpbmNsdWRlIDxjdHlwZS5o PgorKyNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgorKyNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+Cisr I2luY2x1ZGUgPG9wZW5zc2wvZWNkc2EuaD4KKysjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KKysj aW5jbHVkZSAiZmlwc191dGwuaCIKKysKKysjaW5jbHVkZSA8b3BlbnNzbC9vYmplY3RzLmg+Cisr CisrCisrc3RhdGljIGludCBlbG9va3VwX2N1cnZlKGNoYXIgKmluLCBjaGFyICpjdXJ2ZV9uYW1l LCBjb25zdCBFVlBfTUQgKipwbWQpCisrCXsKKysJY2hhciAqY25hbWUsICpwOworKwkvKiBDb3B5 IGJ1ZmZlciBhcyB3ZSB3aWxsIGNoYW5nZSBpdCAqLworKwlzdHJjcHkoY3VydmVfbmFtZSwgaW4p OworKwljbmFtZSA9IGN1cnZlX25hbWUgKyAxOworKwlwID0gc3RyY2hyKGNuYW1lLCAnXScpOwor KwlpZiAoIXApCisrCQl7CisrCQlmcHJpbnRmKHN0ZGVyciwgIlBhcnNlIGVycm9yOiBtaXNzaW5n IF1cbiIpOworKwkJcmV0dXJuIE5JRF91bmRlZjsKKysJCX0KKysJKnAgPSAwOworKwlwID0gc3Ry Y2hyKGNuYW1lLCAnLCcpOworKwlpZiAocCkKKysJCXsKKysJCWlmICghcG1kKQorKwkJCXsKKysJ CQlmcHJpbnRmKHN0ZGVyciwgIlBhcnNlIGVycm9yOiB1bmV4cGVjdGVkIGRpZ2VzdFxuIik7Cisr CQkJcmV0dXJuIE5JRF91bmRlZjsKKysJCQl9CisrCQkqcCA9IDA7CisrCQlwKys7CisrCisrCQlp ZiAoIXN0cmNtcChwLCAiU0hBLTEiKSkKKysJCQkqcG1kID0gRVZQX3NoYTEoKTsKKysJCWVsc2Ug aWYgKCFzdHJjbXAocCwgIlNIQS0yMjQiKSkKKysJCQkqcG1kID0gRVZQX3NoYTIyNCgpOworKwkJ ZWxzZSBpZiAoIXN0cmNtcChwLCAiU0hBLTI1NiIpKQorKwkJCSpwbWQgPSBFVlBfc2hhMjU2KCk7 CisrCQllbHNlIGlmICghc3RyY21wKHAsICJTSEEtMzg0IikpCisrCQkJKnBtZCA9IEVWUF9zaGEz ODQoKTsKKysJCWVsc2UgaWYgKCFzdHJjbXAocCwgIlNIQS01MTIiKSkKKysJCQkqcG1kID0gRVZQ X3NoYTUxMigpOworKwkJZWxzZQorKwkJCXsKKysJCQlmcHJpbnRmKHN0ZGVyciwgIlVua25vd24g ZGlnZXN0ICVzXG4iLCBwKTsKKysJCQlyZXR1cm4gTklEX3VuZGVmOworKwkJCX0KKysJCX0KKysJ ZWxzZSBpZihwbWQpCisrCQkqcG1kID0gRVZQX3NoYTEoKTsKKysKKysJaWYgKCFzdHJjbXAoY25h bWUsICJCLTE2MyIpKQorKwkJcmV0dXJuIE5JRF9zZWN0MTYzcjI7CisrCWlmICghc3RyY21wKGNu YW1lLCAiQi0yMzMiKSkKKysJCXJldHVybiBOSURfc2VjdDIzM3IxOworKwlpZiAoIXN0cmNtcChj bmFtZSwgIkItMjgzIikpCisrCQlyZXR1cm4gTklEX3NlY3QyODNyMTsKKysJaWYgKCFzdHJjbXAo Y25hbWUsICJCLTQwOSIpKQorKwkJcmV0dXJuIE5JRF9zZWN0NDA5cjE7CisrCWlmICghc3RyY21w KGNuYW1lLCAiQi01NzEiKSkKKysJCXJldHVybiBOSURfc2VjdDU3MXIxOworKwlpZiAoIXN0cmNt cChjbmFtZSwgIkstMTYzIikpCisrCQlyZXR1cm4gTklEX3NlY3QxNjNrMTsKKysJaWYgKCFzdHJj bXAoY25hbWUsICJLLTIzMyIpKQorKwkJcmV0dXJuIE5JRF9zZWN0MjMzazE7CisrCWlmICghc3Ry Y21wKGNuYW1lLCAiSy0yODMiKSkKKysJCXJldHVybiBOSURfc2VjdDI4M2sxOworKwlpZiAoIXN0 cmNtcChjbmFtZSwgIkstNDA5IikpCisrCQlyZXR1cm4gTklEX3NlY3Q0MDlrMTsKKysJaWYgKCFz dHJjbXAoY25hbWUsICJLLTU3MSIpKQorKwkJcmV0dXJuIE5JRF9zZWN0NTcxazE7CisrCWlmICgh c3RyY21wKGNuYW1lLCAiUC0xOTIiKSkKKysJCXJldHVybiBOSURfWDlfNjJfcHJpbWUxOTJ2MTsK KysJaWYgKCFzdHJjbXAoY25hbWUsICJQLTIyNCIpKQorKwkJcmV0dXJuIE5JRF9zZWNwMjI0cjE7 CisrCWlmICghc3RyY21wKGNuYW1lLCAiUC0yNTYiKSkKKysJCXJldHVybiBOSURfWDlfNjJfcHJp bWUyNTZ2MTsKKysJaWYgKCFzdHJjbXAoY25hbWUsICJQLTM4NCIpKQorKwkJcmV0dXJuIE5JRF9z ZWNwMzg0cjE7CisrCWlmICghc3RyY21wKGNuYW1lLCAiUC01MjEiKSkKKysJCXJldHVybiBOSURf c2VjcDUyMXIxOworKworKwlmcHJpbnRmKHN0ZGVyciwgIlVua25vd24gQ3VydmUgbmFtZSAlc1xu IiwgY25hbWUpOworKwlyZXR1cm4gTklEX3VuZGVmOworKwl9CisrCisrc3RhdGljIGludCBlY19n ZXRfcHVia2V5KEVDX0tFWSAqa2V5LCBCSUdOVU0gKngsIEJJR05VTSAqeSkKKysJeworKwljb25z dCBFQ19QT0lOVCAqcHQ7CisrCWNvbnN0IEVDX0dST1VQICpncnA7CisrCWNvbnN0IEVDX01FVEhP RCAqbWV0aDsKKysJaW50IHJ2OworKwlCTl9DVFggKmN0eDsKKysJY3R4ID0gQk5fQ1RYX25ldygp OworKwlpZiAoIWN0eCkKKysJCXJldHVybiAwOworKwlncnAgPSBFQ19LRVlfZ2V0MF9ncm91cChr ZXkpOworKwlwdCA9IEVDX0tFWV9nZXQwX3B1YmxpY19rZXkoa2V5KTsKKysJbWV0aCA9IEVDX0dS T1VQX21ldGhvZF9vZihncnApOworKwlpZiAoRUNfTUVUSE9EX2dldF9maWVsZF90eXBlKG1ldGgp ID09IE5JRF9YOV82Ml9wcmltZV9maWVsZCkKKysJCXJ2ID0gRUNfUE9JTlRfZ2V0X2FmZmluZV9j b29yZGluYXRlc19HRnAoZ3JwLCBwdCwgeCwgeSwgY3R4KTsKKysJZWxzZQorKyNpZmRlZiBPUEVO U1NMX05PX0VDMk0KKysJCXsKKysJCWZwcmludGYoc3RkZXJyLCAiRVJST1I6IEdGMm0gbm90IHN1 cHBvcnRlZFxuIik7CisrCQlleGl0KDEpOworKwkJfQorKyNlbHNlCisrCQlydiA9IEVDX1BPSU5U X2dldF9hZmZpbmVfY29vcmRpbmF0ZXNfR0YybShncnAsIHB0LCB4LCB5LCBjdHgpOworKyNlbmRp ZgorKworKwlCTl9DVFhfZnJlZShjdHgpOworKworKwlyZXR1cm4gcnY7CisrCisrCX0KKysKKytz dGF0aWMgaW50IEtleVBhaXIoRklMRSAqaW4sIEZJTEUgKm91dCkKKysJeworKwljaGFyIGJ1Zlsy MDQ4XSwgbGJ1ZlsyMDQ4XTsKKysJY2hhciAqa2V5d29yZCwgKnZhbHVlOworKwlpbnQgY3VydmVf bmlkID0gTklEX3VuZGVmOworKwlpbnQgaSwgY291bnQ7CisrCUJJR05VTSAqUXggPSBOVUxMLCAq UXkgPSBOVUxMOworKwljb25zdCBCSUdOVU0gKmQgPSBOVUxMOworKwlFQ19LRVkgKmtleSA9IE5V TEw7CisrCVF4ID0gQk5fbmV3KCk7CisrCVF5ID0gQk5fbmV3KCk7CisrCXdoaWxlKGZnZXRzKGJ1 Ziwgc2l6ZW9mIGJ1ZiwgaW4pICE9IE5VTEwpCisrCQl7CisrCQlpZiAoKmJ1ZiA9PSAnWycgJiYg YnVmWzJdID09ICctJykKKysJCQl7CisrCQkJaWYgKGJ1ZlsyXSA9PSAnLScpCisrCQkJY3VydmVf bmlkID0gZWxvb2t1cF9jdXJ2ZShidWYsIGxidWYsIE5VTEwpOworKwkJCWZwdXRzKGJ1Ziwgb3V0 KTsKKysJCQljb250aW51ZTsKKysJCQl9CisrCQlpZiAoIXBhcnNlX2xpbmUoJmtleXdvcmQsICZ2 YWx1ZSwgbGJ1ZiwgYnVmKSkKKysJCQl7CisrCQkJZnB1dHMoYnVmLCBvdXQpOworKwkJCWNvbnRp bnVlOworKwkJCX0KKysJCWlmICghc3RyY21wKGtleXdvcmQsICJOIikpCisrCQkJeworKwkJCWNv dW50ID0gYXRvaSh2YWx1ZSk7CisrCisrCQkJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCisr CQkJCXsKKysKKysJCQkJa2V5ID0gRUNfS0VZX25ld19ieV9jdXJ2ZV9uYW1lKGN1cnZlX25pZCk7 CisrCQkJCWlmICghRUNfS0VZX2dlbmVyYXRlX2tleShrZXkpKQorKwkJCQkJeworKwkJCQkJZnBy aW50ZihzdGRlcnIsICJFcnJvciBnZW5lcmF0aW5nIGtleVxuIik7CisrCQkJCQlyZXR1cm4gMDsK KysJCQkJCX0KKysKKysJCQkJaWYgKCFlY19nZXRfcHVia2V5KGtleSwgUXgsIFF5KSkKKysJCQkJ CXsKKysJCQkJCWZwcmludGYoc3RkZXJyLCAiRXJyb3IgZ2V0dGluZyBwdWJsaWMga2V5XG4iKTsK KysJCQkJCXJldHVybiAwOworKwkJCQkJfQorKworKwkJCQlkID0gRUNfS0VZX2dldDBfcHJpdmF0 ZV9rZXkoa2V5KTsKKysKKysJCQkJZG9fYm5fcHJpbnRfbmFtZShvdXQsICJkIiwgZCk7CisrCQkJ CWRvX2JuX3ByaW50X25hbWUob3V0LCAiUXgiLCBReCk7CisrCQkJCWRvX2JuX3ByaW50X25hbWUo b3V0LCAiUXkiLCBReSk7CisrCQkJCWZwdXRzKFJFU1BfRU9MLCBvdXQpOworKwkJCQlFQ19LRVlf ZnJlZShrZXkpOworKworKwkJCQl9CisrCisrCQkJfQorKworKwkJfQorKwlCTl9mcmVlKFF4KTsK KysJQk5fZnJlZShReSk7CisrCXJldHVybiAxOworKwl9CisrCisrc3RhdGljIGludCBQS1YoRklM RSAqaW4sIEZJTEUgKm91dCkKKysJeworKworKwljaGFyIGJ1ZlsyMDQ4XSwgbGJ1ZlsyMDQ4XTsK KysJY2hhciAqa2V5d29yZCwgKnZhbHVlOworKwlpbnQgY3VydmVfbmlkID0gTklEX3VuZGVmOwor KwlCSUdOVU0gKlF4ID0gTlVMTCwgKlF5ID0gTlVMTDsKKysJRUNfS0VZICprZXkgPSBOVUxMOwor Kwl3aGlsZShmZ2V0cyhidWYsIHNpemVvZiBidWYsIGluKSAhPSBOVUxMKQorKwkJeworKwkJZnB1 dHMoYnVmLCBvdXQpOworKwkJaWYgKCpidWYgPT0gJ1snICYmIGJ1ZlsyXSA9PSAnLScpCisrCQkJ eworKwkJCWN1cnZlX25pZCA9IGVsb29rdXBfY3VydmUoYnVmLCBsYnVmLCBOVUxMKTsKKysJCQlp ZiAoY3VydmVfbmlkID09IE5JRF91bmRlZikKKysJCQkJcmV0dXJuIDA7CisrCQkJCQorKwkJCX0K KysJCWlmICghcGFyc2VfbGluZSgma2V5d29yZCwgJnZhbHVlLCBsYnVmLCBidWYpKQorKwkJCWNv bnRpbnVlOworKwkJaWYgKCFzdHJjbXAoa2V5d29yZCwgIlF4IikpCisrCQkJeworKwkJCWlmICgh ZG9faGV4MmJuKCZReCwgdmFsdWUpKQorKwkJCQl7CisrCQkJCWZwcmludGYoc3RkZXJyLCAiSW52 YWxpZCBReCB2YWx1ZVxuIik7CisrCQkJCXJldHVybiAwOworKwkJCQl9CisrCQkJfQorKwkJaWYg KCFzdHJjbXAoa2V5d29yZCwgIlF5IikpCisrCQkJeworKwkJCWludCBydjsKKysJCQlpZiAoIWRv X2hleDJibigmUXksIHZhbHVlKSkKKysJCQkJeworKwkJCQlmcHJpbnRmKHN0ZGVyciwgIkludmFs aWQgUXkgdmFsdWVcbiIpOworKwkJCQlyZXR1cm4gMDsKKysJCQkJfQorKwkJCWtleSA9IEVDX0tF WV9uZXdfYnlfY3VydmVfbmFtZShjdXJ2ZV9uaWQpOworKwkJCW5vX2VyciA9IDE7CisrCQkJcnYg PSBFQ19LRVlfc2V0X3B1YmxpY19rZXlfYWZmaW5lX2Nvb3JkaW5hdGVzKGtleSwgUXgsIFF5KTsK KysJCQlub19lcnIgPSAwOworKwkJCUVDX0tFWV9mcmVlKGtleSk7CisrCQkJZnByaW50ZihvdXQs ICJSZXN1bHQgPSAlcyIgUkVTUF9FT0wsIHJ2ID8gIlAiOiJGIik7CisrCQkJfQorKworKwkJfQor KwlCTl9mcmVlKFF4KTsKKysJQk5fZnJlZShReSk7CisrCXJldHVybiAxOworKwl9CisrCisrc3Rh dGljIGludCBTaWdHZW4oRklMRSAqaW4sIEZJTEUgKm91dCkKKysJeworKwljaGFyIGJ1ZlsyMDQ4 XSwgbGJ1ZlsyMDQ4XTsKKysJY2hhciAqa2V5d29yZCwgKnZhbHVlOworKwl1bnNpZ25lZCBjaGFy ICptc2c7CisrCWludCBjdXJ2ZV9uaWQgPSBOSURfdW5kZWY7CisrCWxvbmcgbWxlbjsKKysJQklH TlVNICpReCA9IE5VTEwsICpReSA9IE5VTEw7CisrCUVDX0tFWSAqa2V5ID0gTlVMTDsKKysJRUNE U0FfU0lHICpzaWcgPSBOVUxMOworKwljb25zdCBFVlBfTUQgKmRpZ2VzdCA9IE5VTEw7CisrCVF4 ID0gQk5fbmV3KCk7CisrCVF5ID0gQk5fbmV3KCk7CisrCXdoaWxlKGZnZXRzKGJ1Ziwgc2l6ZW9m IGJ1ZiwgaW4pICE9IE5VTEwpCisrCQl7CisrCQlmcHV0cyhidWYsIG91dCk7CisrCQlpZiAoKmJ1 ZiA9PSAnWycpCisrCQkJeworKwkJCWN1cnZlX25pZCA9IGVsb29rdXBfY3VydmUoYnVmLCBsYnVm LCAmZGlnZXN0KTsKKysJCQlpZiAoY3VydmVfbmlkID09IE5JRF91bmRlZikKKysJCQkJcmV0dXJu IDA7CisrCQkJfQorKwkJaWYgKCFwYXJzZV9saW5lKCZrZXl3b3JkLCAmdmFsdWUsIGxidWYsIGJ1 ZikpCisrCQkJY29udGludWU7CisrCQlpZiAoIXN0cmNtcChrZXl3b3JkLCAiTXNnIikpCisrCQkJ eworKwkJCW1zZyA9IGhleDJiaW5fbSh2YWx1ZSwgJm1sZW4pOworKwkJCWlmICghbXNnKQorKwkJ CQl7CisrCQkJCWZwcmludGYoc3RkZXJyLCAiSW52YWxpZCBNZXNzYWdlXG4iKTsKKysJCQkJcmV0 dXJuIDA7CisrCQkJCX0KKysKKysJCQlrZXkgPSBFQ19LRVlfbmV3X2J5X2N1cnZlX25hbWUoY3Vy dmVfbmlkKTsKKysJCQlpZiAoIUVDX0tFWV9nZW5lcmF0ZV9rZXkoa2V5KSkKKysJCQkJeworKwkJ CQlmcHJpbnRmKHN0ZGVyciwgIkVycm9yIGdlbmVyYXRpbmcga2V5XG4iKTsKKysJCQkJcmV0dXJu IDA7CisrCQkJCX0KKysKKysJCQlpZiAoIWVjX2dldF9wdWJrZXkoa2V5LCBReCwgUXkpKQorKwkJ CQl7CisrCQkJCWZwcmludGYoc3RkZXJyLCAiRXJyb3IgZ2V0dGluZyBwdWJsaWMga2V5XG4iKTsK KysJCQkJcmV0dXJuIDA7CisrCQkJCX0KKysKKysJICAgIAkJc2lnID0gRklQU19lY2RzYV9zaWdu KGtleSwgbXNnLCBtbGVuLCBkaWdlc3QpOworKworKwkJCWlmICghc2lnKQorKwkJCQl7CisrCQkJ CWZwcmludGYoc3RkZXJyLCAiRXJyb3Igc2lnbmluZyBtZXNzYWdlXG4iKTsKKysJCQkJcmV0dXJu IDA7CisrCQkJCX0KKysKKysJCQlkb19ibl9wcmludF9uYW1lKG91dCwgIlF4IiwgUXgpOworKwkJ CWRvX2JuX3ByaW50X25hbWUob3V0LCAiUXkiLCBReSk7CisrCQkJZG9fYm5fcHJpbnRfbmFtZShv dXQsICJSIiwgc2lnLT5yKTsKKysJCQlkb19ibl9wcmludF9uYW1lKG91dCwgIlMiLCBzaWctPnMp OworKworKwkJCUVDX0tFWV9mcmVlKGtleSk7CisrCQkJT1BFTlNTTF9mcmVlKG1zZyk7CisrCQkJ RklQU19lY2RzYV9zaWdfZnJlZShzaWcpOworKworKwkJCX0KKysKKysJCX0KKysJQk5fZnJlZShR eCk7CisrCUJOX2ZyZWUoUXkpOworKwlyZXR1cm4gMTsKKysJfQorKworK3N0YXRpYyBpbnQgU2ln VmVyKEZJTEUgKmluLCBGSUxFICpvdXQpCisrCXsKKysJY2hhciBidWZbMjA0OF0sIGxidWZbMjA0 OF07CisrCWNoYXIgKmtleXdvcmQsICp2YWx1ZTsKKysJdW5zaWduZWQgY2hhciAqbXNnID0gTlVM TDsKKysJaW50IGN1cnZlX25pZCA9IE5JRF91bmRlZjsKKysJbG9uZyBtbGVuOworKwlCSUdOVU0g KlF4ID0gTlVMTCwgKlF5ID0gTlVMTDsKKysJRUNfS0VZICprZXkgPSBOVUxMOworKwlFQ0RTQV9T SUcgc2csICpzaWcgPSAmc2c7CisrCWNvbnN0IEVWUF9NRCAqZGlnZXN0ID0gTlVMTDsKKysJc2ln LT5yID0gTlVMTDsKKysJc2lnLT5zID0gTlVMTDsKKysJd2hpbGUoZmdldHMoYnVmLCBzaXplb2Yg YnVmLCBpbikgIT0gTlVMTCkKKysJCXsKKysJCWZwdXRzKGJ1Ziwgb3V0KTsKKysJCWlmICgqYnVm ID09ICdbJykKKysJCQl7CisrCQkJY3VydmVfbmlkID0gZWxvb2t1cF9jdXJ2ZShidWYsIGxidWYs ICZkaWdlc3QpOworKwkJCWlmIChjdXJ2ZV9uaWQgPT0gTklEX3VuZGVmKQorKwkJCQlyZXR1cm4g MDsKKysJCQl9CisrCQlpZiAoIXBhcnNlX2xpbmUoJmtleXdvcmQsICZ2YWx1ZSwgbGJ1ZiwgYnVm KSkKKysJCQljb250aW51ZTsKKysJCWlmICghc3RyY21wKGtleXdvcmQsICJNc2ciKSkKKysJCQl7 CisrCQkJbXNnID0gaGV4MmJpbl9tKHZhbHVlLCAmbWxlbik7CisrCQkJaWYgKCFtc2cpCisrCQkJ CXsKKysJCQkJZnByaW50ZihzdGRlcnIsICJJbnZhbGlkIE1lc3NhZ2VcbiIpOworKwkJCQlyZXR1 cm4gMDsKKysJCQkJfQorKwkJCX0KKysJCQkKKysJCWlmICghc3RyY21wKGtleXdvcmQsICJReCIp KQorKwkJCXsKKysJCQlpZiAoIWRvX2hleDJibigmUXgsIHZhbHVlKSkKKysJCQkJeworKwkJCQlm cHJpbnRmKHN0ZGVyciwgIkludmFsaWQgUXggdmFsdWVcbiIpOworKwkJCQlyZXR1cm4gMDsKKysJ CQkJfQorKwkJCX0KKysJCWlmICghc3RyY21wKGtleXdvcmQsICJReSIpKQorKwkJCXsKKysJCQlp ZiAoIWRvX2hleDJibigmUXksIHZhbHVlKSkKKysJCQkJeworKwkJCQlmcHJpbnRmKHN0ZGVyciwg IkludmFsaWQgUXkgdmFsdWVcbiIpOworKwkJCQlyZXR1cm4gMDsKKysJCQkJfQorKwkJCX0KKysJ CWlmICghc3RyY21wKGtleXdvcmQsICJSIikpCisrCQkJeworKwkJCWlmICghZG9faGV4MmJuKCZz aWctPnIsIHZhbHVlKSkKKysJCQkJeworKwkJCQlmcHJpbnRmKHN0ZGVyciwgIkludmFsaWQgUiB2 YWx1ZVxuIik7CisrCQkJCXJldHVybiAwOworKwkJCQl9CisrCQkJfQorKwkJaWYgKCFzdHJjbXAo a2V5d29yZCwgIlMiKSkKKysJCQl7CisrCQkJaW50IHJ2OworKwkJCWlmICghZG9faGV4MmJuKCZz aWctPnMsIHZhbHVlKSkKKysJCQkJeworKwkJCQlmcHJpbnRmKHN0ZGVyciwgIkludmFsaWQgUyB2 YWx1ZVxuIik7CisrCQkJCXJldHVybiAwOworKwkJCQl9CisrCQkJa2V5ID0gRUNfS0VZX25ld19i eV9jdXJ2ZV9uYW1lKGN1cnZlX25pZCk7CisrCQkJcnYgPSBFQ19LRVlfc2V0X3B1YmxpY19rZXlf YWZmaW5lX2Nvb3JkaW5hdGVzKGtleSwgUXgsIFF5KTsKKysKKysJCQlpZiAocnYgIT0gMSkKKysJ CQkJeworKwkJCQlmcHJpbnRmKHN0ZGVyciwgIkVycm9yIHNldHRpbmcgcHVibGljIGtleVxuIik7 CisrCQkJCXJldHVybiAwOworKwkJCQl9CisrCisrCQkJbm9fZXJyID0gMTsKKysJICAgIAkJcnYg PSBGSVBTX2VjZHNhX3ZlcmlmeShrZXksIG1zZywgbWxlbiwgZGlnZXN0LCBzaWcpOworKwkJCUVD X0tFWV9mcmVlKGtleSk7CisrCQkJaWYgKG1zZykKKysJCQkJT1BFTlNTTF9mcmVlKG1zZyk7Cisr CQkJbm9fZXJyID0gMDsKKysKKysJCQlmcHJpbnRmKG91dCwgIlJlc3VsdCA9ICVzIiBSRVNQX0VP TCwgcnYgPyAiUCI6IkYiKTsKKysJCQl9CisrCisrCQl9CisrCWlmIChzaWctPnIpCisrCQlCTl9m cmVlKHNpZy0+cik7CisrCWlmIChzaWctPnMpCisrCQlCTl9mcmVlKHNpZy0+cyk7CisrCWlmIChR eCkKKysJCUJOX2ZyZWUoUXgpOworKwlpZiAoUXkpCisrCQlCTl9mcmVlKFF5KTsKKysJcmV0dXJu IDE7CisrCX0KKysjaWZkZWYgRklQU19BTEdWUworK2ludCBmaXBzX2VjZHNhdnNfbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCisrI2Vsc2UKKytpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpCisrI2VuZGlmCisrCXsKKysJRklMRSAqaW4gPSBOVUxMLCAqb3V0ID0gTlVMTDsKKysJY29u c3QgY2hhciAqY21kID0gYXJndlsxXTsKKysJaW50IHJ2ID0gMDsKKysJZmlwc19hbGd0ZXN0X2lu aXQoKTsKKysKKysJaWYgKGFyZ2MgPT0gNCkKKysJCXsKKysJCWluID0gZm9wZW4oYXJndlsyXSwg InIiKTsKKysJCWlmICghaW4pCisrCQkJeworKwkJCWZwcmludGYoc3RkZXJyLCAiRXJyb3Igb3Bl bmluZyBpbnB1dCBmaWxlXG4iKTsKKysJCQlleGl0KDEpOworKwkJCX0KKysJCW91dCA9IGZvcGVu KGFyZ3ZbM10sICJ3Iik7CisrCQlpZiAoIW91dCkKKysJCQl7CisrCQkJZnByaW50ZihzdGRlcnIs ICJFcnJvciBvcGVuaW5nIG91dHB1dCBmaWxlXG4iKTsKKysJCQlleGl0KDEpOworKwkJCX0KKysJ CX0KKysJZWxzZSBpZiAoYXJnYyA9PSAyKQorKwkJeworKwkJaW4gPSBzdGRpbjsKKysJCW91dCA9 IHN0ZG91dDsKKysJCX0KKysKKysJaWYgKCFjbWQpCisrCQl7CisrCQlmcHJpbnRmKHN0ZGVyciwg ImZpcHNfZWNkc2F2cyBbS2V5UGFpcnxQS1Z8U2lnR2VufFNpZ1Zlcl1cbiIpOworKwkJcmV0dXJu IDE7CisrCQl9CisrCWlmICghc3RyY21wKGNtZCwgIktleVBhaXIiKSkKKysJCXJ2ID0gS2V5UGFp cihpbiwgb3V0KTsKKysJZWxzZSBpZiAoIXN0cmNtcChjbWQsICJQS1YiKSkKKysJCXJ2ID0gUEtW KGluLCBvdXQpOworKwllbHNlIGlmICghc3RyY21wKGNtZCwgIlNpZ1ZlciIpKQorKwkJcnYgPSBT aWdWZXIoaW4sIG91dCk7CisrCWVsc2UgaWYgKCFzdHJjbXAoY21kLCAiU2lnR2VuIikpCisrCQly diA9IFNpZ0dlbihpbiwgb3V0KTsKKysJZWxzZQorKwkJeworKwkJZnByaW50ZihzdGRlcnIsICJV bmtub3duIGNvbW1hbmQgJXNcbiIsIGNtZCk7CisrCQlyZXR1cm4gMTsKKysJCX0KKysKKysJaWYg KGFyZ2MgPT0gNCkKKysJCXsKKysJCWZjbG9zZShpbik7CisrCQlmY2xvc2Uob3V0KTsKKysJCX0K KysKKysJaWYgKHJ2IDw9IDApCisrCQl7CisrCQlmcHJpbnRmKHN0ZGVyciwgIkVycm9yIHJ1bm5p bmcgJXNcbiIsIGNtZCk7CisrCQlyZXR1cm4gMTsKKysJCX0KKysKKysJcmV0dXJuIDA7CisrCX0K KysKKysjZW5kaWYKK2RpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHMuaC5m aXBzLWVjIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHMuaAorLS0tIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9maXBzL2ZpcHMuaC5maXBzLWVjCTIwMTMtMTAtMTUgMDE6MDg6MDYuMDM3Nzgz MTYwICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwcy5oCTIwMTMtMTAt MTUgMDE6MDg6MDYuMDQ4NzgzMTQ1ICswMTAwCitAQCAtOTQsNiArOTQsOCBAQCBpbnQgRklQU19z ZWxmdGVzdF9yc2Eodm9pZCk7Cisgdm9pZCBGSVBTX2NvcnJ1cHRfZHNhKHZvaWQpOworIHZvaWQg RklQU19jb3JydXB0X2RzYV9rZXlnZW4odm9pZCk7CisgaW50IEZJUFNfc2VsZnRlc3RfZHNhKHZv aWQpOworK2ludCBGSVBTX3NlbGZ0ZXN0X2VjZHNhKHZvaWQpOworK2ludCBGSVBTX3NlbGZ0ZXN0 X2VjZGgodm9pZCk7Cisgdm9pZCBGSVBTX2NvcnJ1cHRfcm5nKHZvaWQpOworIHZvaWQgRklQU19y bmdfc3RpY2sodm9pZCk7Cisgdm9pZCBGSVBTX3g5MzFfc3RpY2soaW50IG9ub2ZmKTsKK2RpZmYg LXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZWNkaF9zZWxmdGVzdC5jLmZpcHMt ZWMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19lY2RoX3NlbGZ0ZXN0LmMKKy0tLSBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2VjZGhfc2VsZnRlc3QuYy5maXBzLWVjCTIw MTMtMTAtMTUgMDE6MDg6MDYuMDQ4NzgzMTQ1ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2ZpcHMvZmlwc19lY2RoX3NlbGZ0ZXN0LmMJMjAxMy0xMC0xNSAwMTowODowNi4wNDg3ODMx NDUgKzAxMDAKK0BAIC0wLDAgKzEsMjUyIEBACisrLyogZmlwcy9lY2RoL2ZpcHNfZWNkaF9zZWxm dGVzdC5jICovCisrLyogV3JpdHRlbiBieSBEciBTdGVwaGVuIE4gSGVuc29uIChzdGV2ZUBvcGVu c3NsLm9yZykgZm9yIHRoZSBPcGVuU1NMCisrICogcHJvamVjdCAyMDExLgorKyAqLworKy8qID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisrICogQ29weXJpZ2h0IChjKSAyMDExIFRoZSBPcGVuU1NMIFByb2plY3QuICBB bGwgcmlnaHRzIHJlc2VydmVkLgorKyAqCisrICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisrICogbW9kaWZpY2F0aW9u LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisr ICogYXJlIG1ldDoKKysgKgorKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisrICogICAgbm90aWNlLCB0aGlzIGxpc3Qg b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKysgKgorKyAqIDIu IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg Y29weXJpZ2h0CisrICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCisrICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29y IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorKyAqICAgIGRpc3RyaWJ1dGlvbi4K KysgKgorKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJl cyBvciB1c2Ugb2YgdGhpcworKyAqICAgIHNvZnR3YXJlIG11c3QgZGlzcGxheSB0aGUgZm9sbG93 aW5nIGFja25vd2xlZGdtZW50OgorKyAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdh cmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVuU1NMIFByb2plY3QKKysgKiAgICBmb3IgdXNlIGluIHRo ZSBPcGVuU1NMIFRvb2xraXQuIChodHRwOi8vd3d3Lk9wZW5TU0wub3JnLykiCisrICoKKysgKiA0 LiBUaGUgbmFtZXMgIk9wZW5TU0wgVG9vbGtpdCIgYW5kICJPcGVuU1NMIFByb2plY3QiIG11c3Qg bm90IGJlIHVzZWQgdG8KKysgKiAgICBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl ZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorKyAqICAgIHByaW9yIHdyaXR0ZW4gcGVybWlz c2lvbi4gRm9yIHdyaXR0ZW4gcGVybWlzc2lvbiwgcGxlYXNlIGNvbnRhY3QKKysgKiAgICBsaWNl bnNpbmdAT3BlblNTTC5vcmcuCisrICoKKysgKiA1LiBQcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhp cyBzb2Z0d2FyZSBtYXkgbm90IGJlIGNhbGxlZCAiT3BlblNTTCIKKysgKiAgICBub3IgbWF5ICJP cGVuU1NMIiBhcHBlYXIgaW4gdGhlaXIgbmFtZXMgd2l0aG91dCBwcmlvciB3cml0dGVuCisrICog ICAgcGVybWlzc2lvbiBvZiB0aGUgT3BlblNTTCBQcm9qZWN0LgorKyAqCisrICogNi4gUmVkaXN0 cmlidXRpb25zIG9mIGFueSBmb3JtIHdoYXRzb2V2ZXIgbXVzdCByZXRhaW4gdGhlIGZvbGxvd2lu ZworKyAqICAgIGFja25vd2xlZGdtZW50OgorKyAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMg c29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVuU1NMIFByb2plY3QKKysgKiAgICBmb3IgdXNl IGluIHRoZSBPcGVuU1NMIFRvb2xraXQgKGh0dHA6Ly93d3cuT3BlblNTTC5vcmcvKSIKKysgKgor KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIE9wZW5TU0wgUFJPSkVDVCBgYEFT IElTJycgQU5EIEFOWQorKyAqIEVYUFJFU1NFRCBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKysgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKysgKiBQVVJQT1NF IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIE9wZW5TU0wgUFJPSkVDVCBP UgorKyAqIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD VCwgSU5DSURFTlRBTCwKKysgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg REFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKysgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKysgKiBMT1NTIE9GIFVTRSwgREFUQSwg T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorKyAqIEhPV0VWRVIgQ0FVU0VE IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKysg KiBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF UldJU0UpCisrICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G VFdBUkUsIEVWRU4gSUYgQURWSVNFRAorKyAqIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB TUFHRS4KKysgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorKyAqCisrICovCisrCisrI2RlZmluZSBPUEVOU1NMX0ZJ UFNBUEkKKysKKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRv Lmg+CisrI2luY2x1ZGUgPG9wZW5zc2wvZWMuaD4KKysjaW5jbHVkZSA8b3BlbnNzbC9lY2RoLmg+ CisrI2luY2x1ZGUgPG9wZW5zc2wvZmlwcy5oPgorKyNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgor KyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgorKyNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CisrCisr I2lmZGVmIE9QRU5TU0xfRklQUworKworKyNpbmNsdWRlICJmaXBzX2xvY2wuaCIKKysKKytzdGF0 aWMgY29uc3QgdW5zaWduZWQgY2hhciBwMjU2X3FjYXZzeFtdID0geworKwkweDUyLDB4YzYsMHhh NSwweDc1LDB4ZjMsMHgwNCwweDk4LDB4YjMsMHgyOSwweDY2LDB4MGMsMHg2MiwKKysJMHgxOCww eDYwLDB4NTUsMHg0MSwweDU5LDB4ZDQsMHg2MCwweDg1LDB4OTksMHhjMSwweDUxLDB4MTMsCisr CTB4NmYsMHg5NywweDg1LDB4OTMsMHgzMywweDM0LDB4MDcsMHg1MAorK307Cisrc3RhdGljIGNv bnN0IHVuc2lnbmVkIGNoYXIgcDI1Nl9xY2F2c3lbXSA9IHsKKysJMHg2ZiwweDY5LDB4MjQsMHhl YiwweGU5LDB4M2IsMHhhNywweGNjLDB4NDcsMHgxNywweGFhLDB4M2YsCisrCTB4NzAsMHhmYyww eDEwLDB4NzMsMHgwYSwweGNkLDB4MjEsMHhlZSwweDI5LDB4MTksMHgxZiwweGFmLAorKwkweGI0 LDB4MWMsMHgxZSwweGMyLDB4OGUsMHg5NywweDgxLDB4NmUKKyt9OworK3N0YXRpYyBjb25zdCB1 bnNpZ25lZCBjaGFyIHAyNTZfcWl1dHhbXSA9IHsKKysJMHg3MSwweDQ2LDB4ODgsMHgwOCwweDky LDB4MjEsMHgxYiwweDEwLDB4MjEsMHg3NCwweGZmLDB4MGMsCisrCTB4OTQsMHhkZSwweDM0LDB4 N2MsMHg4NiwweDc0LDB4YmUsMHg2NywweDQxLDB4NjgsMHhkNCwweGMxLAorKwkweGU1LDB4NzUs MHg2MywweDljLDB4YTcsMHg0NiwweDkzLDB4NmYKKyt9OworK3N0YXRpYyBjb25zdCB1bnNpZ25l ZCBjaGFyIHAyNTZfcWl1dHlbXSA9IHsKKysJMHgzMywweDQwLDB4YTksMHg2YSwweGY1LDB4MjAs MHhiNSwweDllLDB4ZmMsMHg2MCwweDFhLDB4YWUsCisrCTB4M2QsMHhmOCwweDIxLDB4ZDIsMHhh NywweGNhLDB4NTIsMHgzNCwweGI5LDB4NWYsMHgyNywweDc1LAorKwkweDZjLDB4ODEsMHhiZSww eDMyLDB4NGQsMHhiYSwweGJiLDB4ZjgKKyt9OworK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFy IHAyNTZfcWl1dGRbXSA9IHsKKysJMHgxYSwweDQ4LDB4NTUsMHg2YiwweDExLDB4YmUsMHg5Miww eGQ0LDB4MWMsMHhkNywweDQ1LDB4YzMsCisrCTB4ODIsMHg4MSwweDUxLDB4ZjEsMHgyMywweDQw LDB4YjcsMHg4MywweGZkLDB4MDEsMHg2ZCwweGJjLAorKwkweGExLDB4NjYsMHhhZiwweDBhLDB4 MDMsMHgyMywweGNkLDB4YzgKKyt9OworK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHAyNTZf eml1dFtdID0geworKwkweDc3LDB4MmEsMHgxZSwweDM3LDB4ZWUsMHhlNiwweDUxLDB4MDIsMHg3 MSwweDQwLDB4ZjgsMHg2YSwKKysJMHgzNiwweGY4LDB4NjUsMHg2MSwweDJiLDB4MTgsMHg3MSww eDgyLDB4MjMsMHhlNiwweGYyLDB4NzcsCisrCTB4Y2UsMHhlYywweGI4LDB4NDksMHhjNywweGJm LDB4MzYsMHg0ZgorK307CisrCisrCisrdHlwZWRlZiBzdHJ1Y3QgCisrCXsKKysJaW50IGN1cnZl OworKwljb25zdCB1bnNpZ25lZCBjaGFyICp4MTsKKysJc2l6ZV90IHgxbGVuOworKwljb25zdCB1 bnNpZ25lZCBjaGFyICp5MTsKKysJc2l6ZV90IHkxbGVuOworKwljb25zdCB1bnNpZ25lZCBjaGFy ICpkMTsKKysJc2l6ZV90IGQxbGVuOworKwljb25zdCB1bnNpZ25lZCBjaGFyICp4MjsKKysJc2l6 ZV90IHgybGVuOworKwljb25zdCB1bnNpZ25lZCBjaGFyICp5MjsKKysJc2l6ZV90IHkybGVuOwor Kwljb25zdCB1bnNpZ25lZCBjaGFyICp6OworKwlzaXplX3QgemxlbjsKKysJfSBFQ0RIX1NFTEZU RVNUX0RBVEE7CisrCisrI2RlZmluZSBtYWtlX2VjZGhfdGVzdChuaWQsIHByKSB7IG5pZCwgXAor KwkJCQlwciMjX3FpdXR4LCBzaXplb2YocHIjI19xaXV0eCksIFwKKysJCQkJcHIjI19xaXV0eSwg c2l6ZW9mKHByIyNfcWl1dHkpLCBcCisrCQkJCXByIyNfcWl1dGQsIHNpemVvZihwciMjX3FpdXRk KSwgXAorKwkJCQlwciMjX3FjYXZzeCwgc2l6ZW9mKHByIyNfcWNhdnN4KSwgXAorKwkJCQlwciMj X3FjYXZzeSwgc2l6ZW9mKHByIyNfcWNhdnN5KSwgXAorKwkJCQlwciMjX3ppdXQsIHNpemVvZihw ciMjX3ppdXQpIH0KKysKKytzdGF0aWMgRUNESF9TRUxGVEVTVF9EQVRBIHRlc3RfZWNkaF9kYXRh W10gPSAKKysJeworKwltYWtlX2VjZGhfdGVzdChOSURfWDlfNjJfcHJpbWUyNTZ2MSwgcDI1Niks CisrCX07CisrCisraW50IEZJUFNfc2VsZnRlc3RfZWNkaCh2b2lkKQorKwl7CisrCUVDX0tFWSAq ZWMxID0gTlVMTCwgKmVjMiA9IE5VTEw7CisrCWNvbnN0IEVDX1BPSU5UICplY3AgPSBOVUxMOwor KwlCSUdOVU0gKnggPSBOVUxMLCAqeSA9IE5VTEwsICpkID0gTlVMTDsKKysJdW5zaWduZWQgY2hh ciAqenRtcCA9IE5VTEw7CisrCWludCBydiA9IDE7CisrCXNpemVfdCBpOworKworKwlmb3IgKGkg PSAwOyBpIDwgc2l6ZW9mKHRlc3RfZWNkaF9kYXRhKS9zaXplb2YoRUNESF9TRUxGVEVTVF9EQVRB KTsgaSsrKQorKwkJeworKwkJRUNESF9TRUxGVEVTVF9EQVRBICplY2QgPSB0ZXN0X2VjZGhfZGF0 YSArIGk7CisrCQlpZiAoIWZpcHNfcG9zdF9zdGFydGVkKEZJUFNfVEVTVF9FQ0RILCBlY2QtPmN1 cnZlLCAwKSkKKysJCQljb250aW51ZTsKKysJCXp0bXAgPSBPUEVOU1NMX21hbGxvYyhlY2QtPnps ZW4pOworKworKwkJeCA9IEJOX2JpbjJibihlY2QtPngxLCBlY2QtPngxbGVuLCB4KTsKKysJCXkg PSBCTl9iaW4yYm4oZWNkLT55MSwgZWNkLT55MWxlbiwgeSk7CisrCQlkID0gQk5fYmluMmJuKGVj ZC0+ZDEsIGVjZC0+ZDFsZW4sIGQpOworKworKwkJaWYgKCF4IHx8ICF5IHx8ICFkIHx8ICF6dG1w KQorKwkJCXsKKysJCQlydiA9IC0xOworKwkJCWdvdG8gZXJyOworKwkJCX0KKysKKysJCWVjMSA9 IEVDX0tFWV9uZXdfYnlfY3VydmVfbmFtZShlY2QtPmN1cnZlKTsKKysJCWlmICghZWMxKQorKwkJ CXsKKysJCQlydiA9IC0xOworKwkJCWdvdG8gZXJyOworKwkJCX0KKysJCUVDX0tFWV9zZXRfZmxh Z3MoZWMxLCBFQ19GTEFHX0NPRkFDVE9SX0VDREgpOworKworKwkJaWYgKCFFQ19LRVlfc2V0X3B1 YmxpY19rZXlfYWZmaW5lX2Nvb3JkaW5hdGVzKGVjMSwgeCwgeSkpCisrCQkJeworKwkJCXJ2ID0g LTE7CisrCQkJZ290byBlcnI7CisrCQkJfQorKworKwkJaWYgKCFFQ19LRVlfc2V0X3ByaXZhdGVf a2V5KGVjMSwgZCkpCisrCQkJeworKwkJCXJ2ID0gLTE7CisrCQkJZ290byBlcnI7CisrCQkJfQor KworKwkJeCA9IEJOX2JpbjJibihlY2QtPngyLCBlY2QtPngybGVuLCB4KTsKKysJCXkgPSBCTl9i aW4yYm4oZWNkLT55MiwgZWNkLT55MmxlbiwgeSk7CisrCisrCQlpZiAoIXggfHwgIXkpCisrCQkJ eworKwkJCXJ2ID0gLTE7CisrCQkJZ290byBlcnI7CisrCQkJfQorKworKwkJZWMyID0gRUNfS0VZ X25ld19ieV9jdXJ2ZV9uYW1lKGVjZC0+Y3VydmUpOworKwkJaWYgKCFlYzIpCisrCQkJeworKwkJ CXJ2ID0gLTE7CisrCQkJZ290byBlcnI7CisrCQkJfQorKwkJRUNfS0VZX3NldF9mbGFncyhlYzEs IEVDX0ZMQUdfQ09GQUNUT1JfRUNESCk7CisrCisrCQlpZiAoIUVDX0tFWV9zZXRfcHVibGljX2tl eV9hZmZpbmVfY29vcmRpbmF0ZXMoZWMyLCB4LCB5KSkKKysJCQl7CisrCQkJcnYgPSAtMTsKKysJ CQlnb3RvIGVycjsKKysJCQl9CisrCisrCQllY3AgPSBFQ19LRVlfZ2V0MF9wdWJsaWNfa2V5KGVj Mik7CisrCQlpZiAoIWVjcCkKKysJCQl7CisrCQkJcnYgPSAtMTsKKysJCQlnb3RvIGVycjsKKysJ CQl9CisrCisrCQlpZiAoIUVDREhfY29tcHV0ZV9rZXkoenRtcCwgZWNkLT56bGVuLCBlY3AsIGVj MSwgMCkpCisrCQkJeworKwkJCXJ2ID0gLTE7CisrCQkJZ290byBlcnI7CisrCQkJfQorKworKwkJ aWYgKCFmaXBzX3Bvc3RfY29ycnVwdChGSVBTX1RFU1RfRUNESCwgZWNkLT5jdXJ2ZSwgTlVMTCkp CisrCQkJenRtcFswXSBePSAweDE7CisrCisrCQlpZiAobWVtY21wKHp0bXAsIGVjZC0+eiwgZWNk LT56bGVuKSkKKysJCQl7CisrCQkJZmlwc19wb3N0X2ZhaWxlZChGSVBTX1RFU1RfRUNESCwgZWNk LT5jdXJ2ZSwgMCk7CisrCQkJcnYgPSAwOworKwkJCX0KKysJCWVsc2UgaWYgKCFmaXBzX3Bvc3Rf c3VjY2VzcyhGSVBTX1RFU1RfRUNESCwgZWNkLT5jdXJ2ZSwgMCkpCisrCQkJZ290byBlcnI7Cisr CisrCQlFQ19LRVlfZnJlZShlYzEpOworKwkJZWMxID0gTlVMTDsKKysJCUVDX0tFWV9mcmVlKGVj Mik7CisrCQllYzIgPSBOVUxMOworKwkJT1BFTlNTTF9mcmVlKHp0bXApOworKwkJenRtcCA9IE5V TEw7CisrCQl9CisrCisrCWVycjoKKysKKysJaWYgKHgpCisrCQlCTl9jbGVhcl9mcmVlKHgpOwor KwlpZiAoeSkKKysJCUJOX2NsZWFyX2ZyZWUoeSk7CisrCWlmIChkKQorKwkJQk5fY2xlYXJfZnJl ZShkKTsKKysJaWYgKGVjMSkKKysJCUVDX0tFWV9mcmVlKGVjMSk7CisrCWlmIChlYzIpCisrCQlF Q19LRVlfZnJlZShlYzIpOworKwlpZiAoenRtcCkKKysJCU9QRU5TU0xfZnJlZSh6dG1wKTsKKysK KysJcmV0dXJuIHJ2OworKworKwl9CisrCisrI2VuZGlmCitkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9maXBzX2VjZHNhX3NlbGZ0ZXN0LmMuZmlwcy1lYyBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9maXBzX2VjZHNhX3NlbGZ0ZXN0LmMKKy0tLSBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vZmlwcy9maXBzX2VjZHNhX3NlbGZ0ZXN0LmMuZmlwcy1lYwkyMDEzLTEwLTE1IDAxOjA4 OjA2LjA0ODc4MzE0NSArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNf ZWNkc2Ffc2VsZnRlc3QuYwkyMDEzLTEwLTE1IDAxOjA4OjA2LjA0ODc4MzE0NSArMDEwMAorQEAg LTAsMCArMSwxNjcgQEAKKysvKiBmaXBzL2VjZHNhL2ZpcHNfZWNkc2Ffc2VsZnRlc3QuYyAqLwor Ky8qIFdyaXR0ZW4gYnkgRHIgU3RlcGhlbiBOIEhlbnNvbiAoc3RldmVAb3BlbnNzbC5vcmcpIGZv ciB0aGUgT3BlblNTTAorKyAqIHByb2plY3QgMjAxMS4KKysgKi8KKysvKiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor KyAqIENvcHlyaWdodCAoYykgMjAxMSBUaGUgT3BlblNTTCBQcm9qZWN0LiAgQWxsIHJpZ2h0cyBy ZXNlcnZlZC4KKysgKgorKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKyAqIGFyZSBtZXQ6 CisrICoKKysgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g dGhlIGFib3ZlIGNvcHlyaWdodAorKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisrICoKKysgKiAyLiBSZWRpc3RyaWJ1 dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg ZGlzY2xhaW1lciBpbgorKyAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKysgKiAgICBkaXN0cmlidXRpb24uCisrICoKKysgKiAz LiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9m IHRoaXMKKysgKiAgICBzb2Z0d2FyZSBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3ds ZWRnbWVudDoKKysgKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3Bl ZCBieSB0aGUgT3BlblNTTCBQcm9qZWN0CisrICogICAgZm9yIHVzZSBpbiB0aGUgT3BlblNTTCBU b29sa2l0LiAoaHR0cDovL3d3dy5PcGVuU1NMLm9yZy8pIgorKyAqCisrICogNC4gVGhlIG5hbWVz ICJPcGVuU1NMIFRvb2xraXQiIGFuZCAiT3BlblNTTCBQcm9qZWN0IiBtdXN0IG5vdCBiZSB1c2Vk IHRvCisrICogICAgZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlz IHNvZnR3YXJlIHdpdGhvdXQKKysgKiAgICBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIEZvciB3 cml0dGVuIHBlcm1pc3Npb24sIHBsZWFzZSBjb250YWN0CisrICogICAgbGljZW5zaW5nQE9wZW5T U0wub3JnLgorKyAqCisrICogNS4gUHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUg bWF5IG5vdCBiZSBjYWxsZWQgIk9wZW5TU0wiCisrICogICAgbm9yIG1heSAiT3BlblNTTCIgYXBw ZWFyIGluIHRoZWlyIG5hbWVzIHdpdGhvdXQgcHJpb3Igd3JpdHRlbgorKyAqICAgIHBlcm1pc3Np b24gb2YgdGhlIE9wZW5TU0wgUHJvamVjdC4KKysgKgorKyAqIDYuIFJlZGlzdHJpYnV0aW9ucyBv ZiBhbnkgZm9ybSB3aGF0c29ldmVyIG11c3QgcmV0YWluIHRoZSBmb2xsb3dpbmcKKysgKiAgICBh Y2tub3dsZWRnbWVudDoKKysgKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRl dmVsb3BlZCBieSB0aGUgT3BlblNTTCBQcm9qZWN0CisrICogICAgZm9yIHVzZSBpbiB0aGUgT3Bl blNTTCBUb29sa2l0IChodHRwOi8vd3d3Lk9wZW5TU0wub3JnLykiCisrICoKKysgKiBUSElTIFNP RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBPcGVuU1NMIFBST0pFQ1QgYGBBUyBJUycnIEFORCBB TlkKKysgKiBFWFBSRVNTRUQgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO T1QgTElNSVRFRCBUTywgVEhFCisrICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisrICogUFVSUE9TRSBBUkUgRElTQ0xB SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBPcGVuU1NMIFBST0pFQ1QgT1IKKysgKiBJVFMg Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U QUwsCisrICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO Q0xVRElORywgQlVUCisrICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV VEUgR09PRFMgT1IgU0VSVklDRVM7CisrICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7 IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKysgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCisrICogU1RSSUNUIExJ QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKyAq IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO IElGIEFEVklTRUQKKysgKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisrICog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKysgKgorKyAqLworKworKyNkZWZpbmUgT1BFTlNTTF9GSVBTQVBJCisrCisr I2luY2x1ZGUgPHN0cmluZy5oPgorKyNpbmNsdWRlIDxvcGVuc3NsL2NyeXB0by5oPgorKyNpbmNs dWRlIDxvcGVuc3NsL2VjLmg+CisrI2luY2x1ZGUgPG9wZW5zc2wvZWNkc2EuaD4KKysjaW5jbHVk ZSA8b3BlbnNzbC9maXBzLmg+CisrI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+CisrI2luY2x1ZGUg PG9wZW5zc2wvZXZwLmg+CisrI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KKysKKysjaWZkZWYgT1BF TlNTTF9GSVBTCisrCisrc3RhdGljIGNvbnN0IGNoYXIgUF8yNTZfbmFtZVtdID0gIkVDRFNBIFAt MjU2IjsKKysKKytzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBQXzI1Nl9kW10gPSB7CisrCTB4 NTEsMHhiZCwweDA2LDB4YTEsMHgxYywweGRhLDB4ZTIsMHgxMiwweDk5LDB4YzksMHg1MiwweDNm LAorKwkweGVhLDB4YTQsMHhkMiwweGQxLDB4ZjQsMHg3ZiwweGQ0LDB4M2UsMHhiZCwweGY4LDB4 ZmMsMHg4NywKKysJMHhkYywweDgyLDB4NTMsMHgyMSwweGVlLDB4YTAsMHhkYywweDY0CisrfTsK KytzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBQXzI1Nl9xeFtdID0geworKwkweDIzLDB4ODks MHhlMCwweGY0LDB4NjksMHhlMCwweDQ5LDB4ZTUsMHhjNywweGU1LDB4NDAsMHg2ZSwKKysJMHg4 ZiwweDI1LDB4ZGQsMHhhZCwweDExLDB4MTYsMHgxNCwweDliLDB4YWIsMHg0NCwweDA2LDB4MzEs CisrCTB4YmYsMHg1ZSwweGE2LDB4NDQsMHhhYywweDg2LDB4MDAsMHgwNworK307Cisrc3RhdGlj IGNvbnN0IHVuc2lnbmVkIGNoYXIgUF8yNTZfcXlbXSA9IHsKKysJMHhiMywweDA1LDB4MGQsMHhk MCwweGRjLDB4ZjcsMHg0MCwweGU2LDB4ZjksMHhkOCwweDZkLDB4N2IsCisrCTB4NjMsMHhjYSww eDk3LDB4ZTYsMHgxMiwweGY5LDB4ZDQsMHgxOCwweDU5LDB4YmUsMHhiMiwweDVlLAorKwkweDRh LDB4NmEsMHg3NywweDIzLDB4ZjQsMHgxMSwweDlkLDB4ZWIKKyt9OworKworK3R5cGVkZWYgc3Ry dWN0IAorKwl7CisrCWludCBjdXJ2ZTsKKysJY29uc3QgY2hhciAqbmFtZTsKKysJY29uc3QgdW5z aWduZWQgY2hhciAqeDsKKysJc2l6ZV90IHhsZW47CisrCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnk7 CisrCXNpemVfdCB5bGVuOworKwljb25zdCB1bnNpZ25lZCBjaGFyICpkOworKwlzaXplX3QgZGxl bjsKKysJfSBFQ19TRUxGVEVTVF9EQVRBOworKworKyNkZWZpbmUgbWFrZV9lY2RzYV90ZXN0KG5p ZCwgcHIpIHsgbmlkLCBwciMjX25hbWUsIFwKKysJCQkJcHIjI19xeCwgc2l6ZW9mKHByIyNfcXgp LCBcCisrCQkJCXByIyNfcXksIHNpemVvZihwciMjX3F5KSwgXAorKwkJCQlwciMjX2QsIHNpemVv ZihwciMjX2QpfQorKworK3N0YXRpYyBFQ19TRUxGVEVTVF9EQVRBIHRlc3RfZWNfZGF0YVtdID0g CisrCXsKKysJbWFrZV9lY2RzYV90ZXN0KE5JRF9YOV82Ml9wcmltZTI1NnYxLCBQXzI1NiksCisr CX07CisrCisraW50IEZJUFNfc2VsZnRlc3RfZWNkc2EoKQorKwl7CisrCUVDX0tFWSAqZWMgPSBO VUxMOworKwlCSUdOVU0gKnggPSBOVUxMLCAqeSA9IE5VTEwsICpkID0gTlVMTDsKKysJRVZQX1BL RVkgKnBrID0gTlVMTDsKKysJaW50IHJ2ID0gMDsKKysJc2l6ZV90IGk7CisrCisrCWZvciAoaSA9 IDA7IGkgPCBzaXplb2YodGVzdF9lY19kYXRhKS9zaXplb2YoRUNfU0VMRlRFU1RfREFUQSk7IGkr KykKKysJCXsKKysJCUVDX1NFTEZURVNUX0RBVEEgKmVjZCA9IHRlc3RfZWNfZGF0YSArIGk7Cisr CisrCQl4ID0gQk5fYmluMmJuKGVjZC0+eCwgZWNkLT54bGVuLCB4KTsKKysJCXkgPSBCTl9iaW4y Ym4oZWNkLT55LCBlY2QtPnlsZW4sIHkpOworKwkJZCA9IEJOX2JpbjJibihlY2QtPmQsIGVjZC0+ ZGxlbiwgZCk7CisrCisrCQlpZiAoIXggfHwgIXkgfHwgIWQpCisrCQkJZ290byBlcnI7CisrCisr CQllYyA9IEVDX0tFWV9uZXdfYnlfY3VydmVfbmFtZShlY2QtPmN1cnZlKTsKKysJCWlmICghZWMp CisrCQkJZ290byBlcnI7CisrCisrCQlpZiAoIUVDX0tFWV9zZXRfcHVibGljX2tleV9hZmZpbmVf Y29vcmRpbmF0ZXMoZWMsIHgsIHkpKQorKwkJCWdvdG8gZXJyOworKworKwkJaWYgKCFFQ19LRVlf c2V0X3ByaXZhdGVfa2V5KGVjLCBkKSkKKysJCQlnb3RvIGVycjsKKysKKysJCWlmICgocGs9RVZQ X1BLRVlfbmV3KCkpID09IE5VTEwpCisrCQkJZ290byBlcnI7CisrCisrCQlFVlBfUEtFWV9hc3Np Z25fRUNfS0VZKHBrLCBlYyk7CisrCisrCQlpZiAoIWZpcHNfcGtleV9zaWduYXR1cmVfdGVzdChw aywgTlVMTCwgMCwKKysJCQkJCQlOVUxMLCAwLCBFVlBfc2hhMjU2KCksIDAsCisrCQkJCQkJZWNk LT5uYW1lKSkKKysJCQlnb3RvIGVycjsKKysJCX0KKysKKysJcnYgPSAxOworKworKwllcnI6Cisr CisrCWlmICh4KQorKwkJQk5fY2xlYXJfZnJlZSh4KTsKKysJaWYgKHkpCisrCQlCTl9jbGVhcl9m cmVlKHkpOworKwlpZiAoZCkKKysJCUJOX2NsZWFyX2ZyZWUoZCk7CisrCWlmIChwaykKKysJCUVW UF9QS0VZX2ZyZWUocGspOworKwllbHNlIGlmIChlYykKKysJCUVDX0tFWV9mcmVlKGVjKTsKKysK KysJcmV0dXJuIHJ2OworKworKwl9CisrCisrI2VuZGlmCitkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9maXBzX3Bvc3QuYy5maXBzLWVjIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9m aXBzL2ZpcHNfcG9zdC5jCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19wb3N0 LmMuZmlwcy1lYwkyMDEzLTEwLTE1IDAxOjA4OjA2LjAwNTc4MzIwNCArMDEwMAorKysrIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcG9zdC5jCTIwMTMtMTAtMTUgMDE6MDg6MDYuMDQ4 NzgzMTQ1ICswMTAwCitAQCAtOTUsOCArOTUsMTIgQEAgaW50IEZJUFNfc2VsZnRlc3Qodm9pZCkK KyAJCXJ2ID0gMDsKKyAJaWYgKCFGSVBTX3NlbGZ0ZXN0X3JzYSgpKQorIAkJcnYgPSAwOworKwlp ZiAoIUZJUFNfc2VsZnRlc3RfZWNkc2EoKSkKKysJCXJ2ID0gMDsKKyAJaWYgKCFGSVBTX3NlbGZ0 ZXN0X2RzYSgpKQorIAkJcnYgPSAwOworKwlpZiAoIUZJUFNfc2VsZnRlc3RfZWNkaCgpKQorKwkJ cnYgPSAwOworIAlyZXR1cm4gcnY7CisgCX0KKyAKK2RpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL3Zl cnNpb24ubWFwLmZpcHMtZWMgb3BlbnNzbC0xLjAuMWUvdmVyc2lvbi5tYXAKKy0tLSBvcGVuc3Ns LTEuMC4xZS92ZXJzaW9uLm1hcC5maXBzLWVjCTIwMTMtMTAtMTUgMDE6MDg6MDYuMDE2NzgzMTg5 ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvdmVyc2lvbi5tYXAJMjAxMy0xMC0xNSAwMTowODow Ni4wNDg3ODMxNDUgKzAxMDAKK0BAIC02LDMgKzYsNyBAQCBPUEVOU1NMXzEuMC4xIHsKKyAJICAg IF9vcmlnaW5hbCo7CisgCSAgICBfY3VycmVudCo7CisgfTsKKytPUEVOU1NMXzEuMC4xX0VDIHsK KysgICAgZ2xvYmFsOgorKwkgICAgRUMqOworK307CgpkaWZmIC0tZ2l0IGEvb3BlbnNzbC0xLjAu MWUtZmlwcy5wYXRjaCBiL29wZW5zc2wtMS4wLjFlLWZpcHMucGF0Y2gKaW5kZXggM2UyZmY0Mi4u YzJmNzg0OCAxMDA2NDQKLS0tIGEvb3BlbnNzbC0xLjAuMWUtZmlwcy5wYXRjaAorKysgYi9vcGVu c3NsLTEuMC4xZS1maXBzLnBhdGNoCkBAIC0xLDYgKzEsNiBAQAogZGlmZiAtdXAgb3BlbnNzbC0x LjAuMWUvYXBwcy9wa2NzMTIuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2FwcHMvcGtjczEyLmMKIC0t LSBvcGVuc3NsLTEuMC4xZS9hcHBzL3BrY3MxMi5jLmZpcHMJMjAxMy0wMi0xMSAxNjoyNjowNC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9hcHBzL3BrY3MxMi5jCTIwMTMtMDIt MTkgMTI6NDc6MzMuNzE0MTE4MzY0ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvYXBwcy9wa2Nz MTIuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMyNDY2NDcyOCArMDIwMAogQEAgLTY3LDYgKzY3LDkg QEAKICAjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KICAjaW5jbHVkZSA8b3BlbnNzbC9wZW0uaD4K QEAgLTI1LDcgKzI1LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvYXBwcy9wa2NzMTIuYy5m aXBzIG9wZW5zc2wtMS4wLjFlL2FwcHMvcGtjczEyLmMKICAKIGRpZmYgLXVwIG9wZW5zc2wtMS4w LjFlL2FwcHMvc3BlZWQuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2FwcHMvc3BlZWQuYwogLS0tIG9w ZW5zc2wtMS4wLjFlL2FwcHMvc3BlZWQuYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAw MDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvYXBwcy9zcGVlZC5jCTIwMTMtMDItMTkgMTI6 NDc6MzMuNzE1MTE4Mzg0ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvYXBwcy9zcGVlZC5jCTIw MTMtMDktMjcgMTQ6NDg6NTUuMjQ3NzIyNzM3ICswMjAwCiBAQCAtMTk1LDcgKzE5NSw2IEBACiAg I2lmZGVmIE9QRU5TU0xfRE9JTkdfTUFLRURFUEVORAogICN1bmRlZiBBRVNfc2V0X2VuY3J5cHRf a2V5CkBAIC02OCw3ICs2OCwyNCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9hcHBzL3NwZWVk LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9hcHBzL3NwZWVkLmMKICAJCQlkc2FfZG9pdFtSX0RTQV8x MDI0XT0xOwogIAkJCWRzYV9kb2l0W1JfRFNBXzIwNDhdPTE7CiAgCQkJfQotQEAgLTEyMjYsMzAg KzEyMzQsNTQgQEAgaW50IE1BSU4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorQEAgLTExNjIsMTIg KzExNzAsMTUgQEAgaW50IE1BSU4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorIAkJeworIAkJZm9y IChpPTA7IGk8QUxHT1JfTlVNOyBpKyspCisgCQkJeworLQkJCWlmIChpICE9IERfRVZQKQorKwkJ CWlmIChpICE9IERfRVZQICYmCisrCQkJICAgICghRklQU19tb2RlKCkgfHwgaSAhPSBEX1dISVJM UE9PTCkpCisgCQkJCWRvaXRbaV09MTsKKyAJCQl9CisgCQlmb3IgKGk9MDsgaTxSU0FfTlVNOyBp KyspCisrCQkgICAgaWYgKCFGSVBTX21vZGUoKSB8fCBpICE9IFJfUlNBXzUxMikKKyAJCQlyc2Ff ZG9pdFtpXT0xOworIAkJZm9yIChpPTA7IGk8RFNBX05VTTsgaSsrKQorKwkJICAgIGlmICghRklQ U19tb2RlKCkgfHwgaSAhPSBSX0RTQV81MTIpCisgCQkJZHNhX2RvaXRbaV09MTsKKyAjaWZuZGVm IE9QRU5TU0xfTk9fRUNEU0EKKyAJCWZvciAoaT0wOyBpPEVDX05VTTsgaSsrKQorQEAgLTEyMjYs MzAgKzEyMzcsNTQgQEAgaW50IE1BSU4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogIAlBRVNfc2V0 X2VuY3J5cHRfa2V5KGtleTMyLDI1NiwmYWVzX2tzMyk7CiAgI2VuZGlmCiAgI2lmbmRlZiBPUEVO U1NMX05PX0NBTUVMTElBCkBAIC0xMjMsNyArMTQwLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAu MWUvYXBwcy9zcGVlZC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvYXBwcy9zcGVlZC5jCiAgI2VuZGlm CiAgI2lmbmRlZiBPUEVOU1NMX05PX1JTQQogIAltZW1zZXQocnNhX2MsMCxzaXplb2YocnNhX2Mp KTsKLUBAIC0xNTY0LDYgKzE1OTYsNyBAQCBpbnQgTUFJTihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CitAQCAtMTU2NCw2ICsxNTU5LDcgQEAgaW50IE1BSU4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQog IAkJSE1BQ19DVFggaGN0eDsKICAKICAJCUhNQUNfQ1RYX2luaXQoJmhjdHgpOwpAQCAtMTMyLDgg KzE0OSw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2FwcHMvc3BlZWQuYy5maXBzIG9wZW5z c2wtMS4wLjFlL2FwcHMvc3BlZWQuYwogIAkJCTE2LEVWUF9tZDUoKSwgTlVMTCk7CiAgCiBkaWZm IC11cCBvcGVuc3NsLTEuMC4xZS9Db25maWd1cmUuZmlwcyBvcGVuc3NsLTEuMC4xZS9Db25maWd1 cmUKLS0tLSBvcGVuc3NsLTEuMC4xZS9Db25maWd1cmUuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMz LjY3MDExNzQ3MCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL0NvbmZpZ3VyZQkyMDEzLTAyLTE5 IDEyOjQ3OjMzLjcxNjExODQwNSArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFlL0NvbmZpZ3VyZS5m aXBzCTIwMTMtMDktMjcgMTQ6MzI6MzUuMDc3NjU5MTY3ICswMjAwCisrKysgb3BlbnNzbC0xLjAu MWUvQ29uZmlndXJlCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzI0NjY0NzI4ICswMjAwCiBAQCAtOTk1 LDExICs5OTUsNiBAQCBpZiAoZGVmaW5lZCgkZGlzYWJsZWR7Im1kNSJ9KSB8fCBkZWZpbmVkCiAg CSRkaXNhYmxlZHsic3NsMiJ9ID0gImZvcmNlZCI7CiAgCX0KQEAgLTE3MCw3ICsxODcsNyBAQCBk aWZmIC11cCBvcGVuc3NsLTEuMC4xZS9Db25maWd1cmUuZmlwcyBvcGVuc3NsLTEuMC4xZS9Db25m aWd1cmUKICAJcy9eU0hBUkVEX0xJQlM9LiovU0hBUkVEX0xJQlM9XCQoU0hBUkVEX0NSWVBUTykg XCQoU0hBUkVEX1NTTCkvIGlmICghJG5vX3NoYXJlZCk7CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vYWVzL2Flc19taXNjLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vYWVzL2Fl c19taXNjLmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vYWVzL2Flc19taXNjLmMuZmlwcwky MDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9hZXMvYWVzX21pc2MuYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjcxNzExODQyNiArMDEwMAor KysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9hZXMvYWVzX21pc2MuYwkyMDEzLTA5LTI3IDE0OjMy OjM1LjMyNTY2NDc1MSArMDIwMAogQEAgLTY5LDE3ICs2OSwxMSBAQCBjb25zdCBjaGFyICpBRVNf b3B0aW9ucyh2b2lkKSB7CiAgaW50IEFFU19zZXRfZW5jcnlwdF9rZXkoY29uc3QgdW5zaWduZWQg Y2hhciAqdXNlcktleSwgY29uc3QgaW50IGJpdHMsCiAgCQkJQUVTX0tFWSAqa2V5KQpAQCAtMTkx LDcgKzIwOCw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9hZXMvYWVzX21pc2Mu Yy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9hZXMvYWVzCiAgCX0KIGRpZmYgLXVwIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9jbWFjL2NtYWMuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9j bWFjL2NtYWMuYwogLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9jbWFjL2NtYWMuYy5maXBzCTIw MTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2NtYWMvY21hYy5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzE3MTE4NDI2ICswMTAwCisrKysg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2NtYWMvY21hYy5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzI1 NjY0NzUxICswMjAwCiBAQCAtMTA3LDEzICsxMDcsNiBAQCBDTUFDX0NUWCAqQ01BQ19DVFhfbmV3 KHZvaWQpCiAgCiAgdm9pZCBDTUFDX0NUWF9jbGVhbnVwKENNQUNfQ1RYICpjdHgpCkBAIC0yNDEs OCArMjU4LDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2NtYWMvY21hYy5jLmZp cHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2NtYWMvY21hYy4KICAJCXJldHVybiAwOwogIAlibCA9 IEVWUF9DSVBIRVJfQ1RYX2Jsb2NrX3NpemUoJmN0eC0+Y2N0eCk7CiBkaWZmIC11cCBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vY3J5cHRvLmguZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vY3J5cHRv LmgKLS0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vY3J5cHRvLmguZmlwcwkyMDEzLTAyLTE5IDEy OjQ3OjMzLjQ0NDExMjg3NiArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9jcnlwdG8u aAkyMDEzLTAyLTE5IDEyOjQ3OjMzLjcxODExODQ0NyArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9jcnlwdG8uaC5maXBzCTIwMTMtMDktMjcgMTQ6MzI6MzQuOTcyNjU2ODA0ICswMjAw CisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2NyeXB0by5oCTIwMTMtMDktMjcgMTQ6MzI6MzUu MzI1NjY0NzUxICswMjAwCiBAQCAtNTUzLDI0ICs1NTMsMjkgQEAgaW50IEZJUFNfbW9kZV9zZXQo aW50IHIpOwogIHZvaWQgT1BFTlNTTF9pbml0KHZvaWQpOwogIApAQCAtMjg5LDggKzMwNiw4IEBA IGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9jcnlwdG8uaC5maXBzIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9jcnlwdG8uaAogIAogIC8qIEZ1bmN0aW9uIGNvZGVzLiAqLwogZGlmZiAtdXAg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Rlcy9kZXMuaC5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9kZXMvZGVzLmgKLS0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZGVzL2Rlcy5oLmZpcHMJMjAx My0wMi0xOSAxMjo0NzozMy41MTYxMTQzNDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlw dG8vZGVzL2Rlcy5oCTIwMTMtMDItMTkgMTI6NDc6MzMuNzE4MTE4NDQ3ICswMTAwCistLS0gb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2Rlcy9kZXMuaC5maXBzCTIwMTMtMDktMjcgMTQ6MzI6MzUuMDA0 NjU3NTI1ICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Rlcy9kZXMuaAkyMDEzLTA5 LTI3IDE0OjMyOjM1LjMyNTY2NDc1MSArMDIwMAogQEAgLTIyNCw5ICsyMjQsNiBAQCBpbnQgREVT X3NldF9rZXkoY29uc3RfREVTX2NibG9jayAqa2V5LERFCiAgaW50IERFU19rZXlfc2NoZWQoY29u c3RfREVTX2NibG9jayAqa2V5LERFU19rZXlfc2NoZWR1bGUgKnNjaGVkdWxlKTsKICBpbnQgREVT X3NldF9rZXlfY2hlY2tlZChjb25zdF9ERVNfY2Jsb2NrICprZXksREVTX2tleV9zY2hlZHVsZSAq c2NoZWR1bGUpOwpAQCAtMzAzLDcgKzMyMCw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9kZXMvZGVzLmguZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZGVzL2Rlcy5oCiAgdm9p ZCBERVNfY2ZiNjRfZW5jcnlwdChjb25zdCB1bnNpZ25lZCBjaGFyICppbix1bnNpZ25lZCBjaGFy ICpvdXQsbG9uZyBsZW5ndGgsCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZGVzL3Nl dF9rZXkuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kZXMvc2V0X2tleS5jCiAtLS0gb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2Rlcy9zZXRfa2V5LmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0 LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kZXMvc2V0X2tleS5j CTIwMTMtMDItMTkgMTI6NDc6MzMuNzE5MTE4NDY4ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL2Rlcy9zZXRfa2V5LmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMjU2NjQ3NTEgKzAyMDAK IEBAIC0zMzYsMTMgKzMzNiw2IEBAIGludCBERVNfc2V0X2tleV9jaGVja2VkKGNvbnN0X0RFU19j YmxvY2sKICAJfQogIApAQCAtMzIwLDcgKzMzNyw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9kZXMvc2V0X2tleS5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Rlcy9zZXRf CiAgCXJlZ2lzdGVyIERFU19MT05HIGMsZCx0LHMsdDI7CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZGgvZGhfZ2VuLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZGgvZGhfZ2Vu LmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZGgvZGhfZ2VuLmMuZmlwcwkyMDEzLTAyLTEx IDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9k aF9nZW4uYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjcxOTExODQ2OCArMDEwMAorKysrIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9kaC9kaF9nZW4uYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMyNTY2NDc1MSAr MDIwMAogQEAgLTg0LDExICs4NCw2IEBAIGludCBESF9nZW5lcmF0ZV9wYXJhbWV0ZXJzX2V4KERI ICpyZXQsIGkKICAjZW5kaWYKICAJaWYocmV0LT5tZXRoLT5nZW5lcmF0ZV9wYXJhbXMpCkBAIC0z NTUsOCArMzcyLDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RoL2RoX2dlbi5j LmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RoL2RoX2dlbi4KICAJaWYgKGN0eCA9PSBOVUxM KSBnb3RvIGVycjsKICAJQk5fQ1RYX3N0YXJ0KGN0eCk7CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZGgvZGguaC5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaC5oCi0tLS0g b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RoL2RoLmguZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjM4 ODExMTczOSArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaC5oCTIwMTMtMDIt MTkgMTI6NDc6MzMuNzE5MTE4NDY4ICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Ro L2RoLmguZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM0Ljk0MzY1NjE1MSArMDIwMAorKysrIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9kaC9kaC5oCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzI2NjY0NzczICsw MjAwCiBAQCAtNzcsNiArNzcsOCBAQAogICMgZGVmaW5lIE9QRU5TU0xfREhfTUFYX01PRFVMVVNf QklUUwkxMDAwMAogICNlbmRpZgpAQCAtMzY4LDcgKzM4NSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9kaC9kaC5oLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RoL2RoLmgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGltcGxlbWVudGF0aW9u IG5vdyB1c2VzIGNvbnN0YW50IHRpbWUKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9k aC9kaF9rZXkuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaF9rZXkuYwogLS0tIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaF9rZXkuYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQu MDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RoL2RoX2tleS5jCTIw MTMtMDItMTkgMTI6NDc6MzMuNzIwMTE4NDg4ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2RoL2RoX2tleS5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzI2NjY0NzczICswMjAwCiBAQCAt NjEsNiArNjEsOSBAQAogICNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CiAgI2luY2x1ZGUgPG9wZW5z c2wvcmFuZC5oPgpAQCAtNDI5LDcgKzQ0Niw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9kaC9kaF9rZXkuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaF9rZXkuCiAg CX0KIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaF9saWIuYy5maXBzIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9kaC9kaF9saWIuYwogLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9k aC9kaF9saWIuYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0rKysg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RoL2RoX2xpYi5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzIw MTE4NDg4ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RoL2RoX2xpYi5jCTIwMTMt MDktMjcgMTQ6MzI6MzUuMzI2NjY0NzczICswMjAwCiBAQCAtODEsMTQgKzgxLDcgQEAgY29uc3Qg REhfTUVUSE9EICpESF9nZXRfZGVmYXVsdF9tZXRob2QodgogIAl7CiAgCWlmKCFkZWZhdWx0X0RI X21ldGhvZCkKQEAgLTQ0Nyw3ICs0NjQsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlw dG8vZGgvZGhfbGliLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZGgvZGhfbGliLgogIAl9 CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYV9lcnIuYy5maXBzIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX2Vyci5jCiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2RzYS9kc2FfZXJyLmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAot KysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX2Vyci5jCTIwMTMtMDItMTkgMTI6NDc6 MzMuNzIwMTE4NDg4ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2FfZXJy LmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMjY2NjQ3NzMgKzAyMDAKIEBAIC03NCw2ICs3NCw4IEBA IHN0YXRpYyBFUlJfU1RSSU5HX0RBVEEgRFNBX3N0cl9mdW5jdHNbXT0KICB7RVJSX0ZVTkMoRFNB X0ZfRE9fRFNBX1BSSU5UKSwJIkRPX0RTQV9QUklOVCJ9LAogIHtFUlJfRlVOQyhEU0FfRl9EU0FQ QVJBTVNfUFJJTlQpLAkiRFNBcGFyYW1zX3ByaW50In0sCkBAIC00NjgsNyArNDg1LDcgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2FfZXJyLmMuZmlwcyBvcGVuc3NsLTEu MC4xZS9jcnlwdG8vZHNhL2RzYV8KICB7RVJSX1JFQVNPTihEU0FfUl9ORUVEX05FV19TRVRVUF9W QUxVRVMpICwibmVlZCBuZXcgc2V0dXAgdmFsdWVzIn0sCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZHNhL2RzYV9nZW4uYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNh X2dlbi5jCiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2FfZ2VuLmMuZmlwcwkyMDEz LTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9kc2EvZHNhX2dlbi5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzIxMTE4NTA4ICswMTAwCisrKysg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2FfZ2VuLmMJMjAxMy0wOS0yNyAxNDozMjozNS4z MjY2NjQ3NzMgKzAyMDAKIEBAIC04NSw2ICs4NSwxNCBAQAogICNpbmNsdWRlIDxvcGVuc3NsL2Zp cHMuaD4KICAjZW5kaWYKQEAgLTg3Niw4ICs4OTMsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZHNhL2RzYV9nZW4uYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNh XwogIAlpZiAobW9udCAhPSBOVUxMKSBCTl9NT05UX0NUWF9mcmVlKG1vbnQpOwogIAlyZXR1cm4g b2s7CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYS5oLmZpcHMgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2RzYS9kc2EuaAotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2Ev ZHNhLmguZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjIwNTEwODAyMCArMDEwMAotKysrIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhLmgJMjAxMy0wMi0xOSAxMjo0NzozMy43MjExMTg1MDgg KzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYS5oLmZpcHMJMjAxMy0wOS0y NyAxNDozMjozNC44NjA2NTQyODMgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNh L2RzYS5oCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzI2NjY0NzczICswMjAwCiBAQCAtODgsNiArODgs OCBAQAogICMgZGVmaW5lIE9QRU5TU0xfRFNBX01BWF9NT0RVTFVTX0JJVFMJMTAwMDAKICAjZW5k aWYKQEAgLTk0MCw3ICs5NTcsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNh L2RzYS5oLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2EuaAogICNpZmRlZiAgX19j cGx1c3BsdXMKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX2tleS5jLmZp cHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2Ffa2V5LmMKIC0tLSBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZHNhL2RzYV9rZXkuYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAw ICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2Ffa2V5LmMJMjAxMy0wMi0x OSAxMjo0NzozMy43MjIxMTg1MjggKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNh L2RzYV9rZXkuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMyNzY2NDc5NSArMDIwMAogQEAgLTY2LDYg KzY2LDM1IEBACiAgCiAgI2lmZGVmIE9QRU5TU0xfRklQUwpAQCAtMTAyMSw3ICsxMDM4LDcgQEAg ZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2Ffa2V5LmMuZmlwcyBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZHNhL2RzYV8KICBlcnI6CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vZHNhL2RzYV9saWIuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX2xp Yi5jCiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2FfbGliLmMuZmlwcwkyMDEzLTAy LTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9k c2EvZHNhX2xpYi5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzIyMTE4NTI4ICswMTAwCisrKysgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2FfbGliLmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMjc2 NjQ3OTUgKzAyMDAKIEBAIC04NywxNCArODcsNyBAQCBjb25zdCBEU0FfTUVUSE9EICpEU0FfZ2V0 X2RlZmF1bHRfbWV0aG9kCiAgCXsKICAJaWYoIWRlZmF1bHRfRFNBX21ldGhvZCkKQEAgLTEwMzgs OCArMTA1NSw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX2xpYi5j LmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2FfCiAgCXJldHVybiBkZWZhdWx0X0RT QV9tZXRob2Q7CiAgCX0KIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX2xv Y2wuaC5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX2xvY2wuaAotLS0tIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX2xvY2wuaC5maXBzCTIwMTMtMDItMTkgMTI6NDc6MzMu MjA5MTA4MTAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2FfbG9jbC5o CTIwMTMtMDItMTkgMTI6NDc6MzMuNzIyMTE4NTI4ICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL2RzYS9kc2FfbG9jbC5oLmZpcHMJMjAxMy0wOS0yNyAxNDozMjozNC44NjI2NTQzMjgg KzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYV9sb2NsLmgJMjAxMy0wOS0y NyAxNDozMjozNS4zMjc2NjQ3OTUgKzAyMDAKIEBAIC01Niw1ICs1Niw0IEBACiAgCiAgaW50IGRz YV9idWlsdGluX3BhcmFtZ2VuKERTQSAqcmV0LCBzaXplX3QgYml0cywgc2l6ZV90IHFiaXRzLApA QCAtMTA0OCw3ICsxMDY1LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9k c2FfbG9jbC5oLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2EKICAJaW50ICpjb3Vu dGVyX3JldCwgdW5zaWduZWQgbG9uZyAqaF9yZXQsIEJOX0dFTkNCICpjYik7CiBkaWZmIC11cCBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYV9vc3NsLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vZHNhL2RzYV9vc3NsLmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYV9v c3NsLmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX29zc2wuYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjcyMzEx ODU0OCArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX29zc2wuYwkyMDEz LTA5LTI3IDE0OjMyOjM1LjMyNzY2NDc5NSArMDIwMAogQEAgLTY1LDYgKzY1LDkgQEAKICAjaW5j bHVkZSA8b3BlbnNzbC9kc2EuaD4KICAjaW5jbHVkZSA8b3BlbnNzbC9yYW5kLmg+CkBAIC0xMTI0 LDcgKzExNDEsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYV9vc3Ns LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYQogIH0KIGRpZmYgLXVwIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX3BtZXRoLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlw dG8vZHNhL2RzYV9wbWV0aC5jCiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2FfcG1l dGguYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2RzYS9kc2FfcG1ldGguYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjcyMzEx ODU0OCArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX3BtZXRoLmMJMjAx My0wOS0yNyAxNDozMjozNS4zMjc2NjQ3OTUgKzAyMDAKIEBAIC0yNTUsNyArMjU1LDcgQEAgc3Rh dGljIGludCBwa2V5X2RzYV9wYXJhbWdlbihFVlBfUEtFWV9DVAogIAlpZiAoIWRzYSkKICAJCXJl dHVybiAwOwpAQCAtMTEzNiw3ICsxMTUzLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2RzYS9kc2FfcG1ldGguYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHMKICAJ ZWxzZQogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2F0ZXN0LmMuZmlwcyBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYXRlc3QuYwogLS0tIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9kc2EvZHNhdGVzdC5jLmZpcHMJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYXRlc3QuYwkyMDEzLTAyLTE5IDEy OjQ3OjMzLjcyMzExODU0OCArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNh dGVzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzI3NjY0Nzk1ICswMjAwCiBAQCAtOTYsMzYgKzk2 LDQxIEBAIHN0YXRpYyBpbnQgTVNfQ0FMTEJBQ0sgZHNhX2NiKGludCBwLCBpbnQKICAvKiBzZWVk LCBvdXRfcCwgb3V0X3EsIG91dF9nIGFyZSB0YWtlbiBmcm9tIHRoZSB1cGRhdGVkIEFwcGVuZGl4 IDUgdG8KICAgKiBGSVBTIFBVQiAxODYgYW5kIGFsc28gYXBwZWFyIGluIEFwcGVuZGl4IDUgdG8g RklQUyBQSUIgMTg2LTEgKi8KQEAgLTEyMjMsNyArMTI0MCw3IEBAIGRpZmYgLXVwIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9kc2EvZHNhdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Rz YS9kc2F0CiAgCWlmIChoICE9IDIpCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZW5n aW5lL2VuZ19hbGwuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9lbmdpbmUvZW5nX2FsbC5j CiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VuZ2luZS9lbmdfYWxsLmMuZmlwcwkyMDEzLTAy LTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9l bmdpbmUvZW5nX2FsbC5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzI0MTE4NTY5ICswMTAwCisrKysg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VuZ2luZS9lbmdfYWxsLmMJMjAxMy0wOS0yNyAxNDozMjoz NS4zMjg2NjQ4MTcgKzAyMDAKIEBAIC01OCwxMSArNTgsMjUgQEAKICAKICAjaW5jbHVkZSAiY3J5 cHRsaWIuaCIKQEAgLTEyNTIsNyArMTI2OSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9lbmdpbmUvZW5nX2FsbC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2VuZ2luCiAg CSAqIGl0IGlzIHRoZSAqb25seSogd2F5IGZvciBzdGFuZGFyZCBidWlsdGluIGltcGxlbWVudGF0 aW9ucyB0byBiZSBiZQogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9jX2FsbGMu Yy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvY19hbGxjLmMKIC0tLSBvcGVuc3NsLTEu MC4xZS9jcnlwdG8vZXZwL2NfYWxsYy5jLmZpcHMJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2NfYWxsYy5jCTIwMTMtMDIt MTkgMTI6NDc6MzMuNzI1MTE4NTg5ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2 cC9jX2FsbGMuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMyODY2NDgxNyArMDIwMAogQEAgLTY1LDYg KzY1LDExIEBACiAgdm9pZCBPcGVuU1NMX2FkZF9hbGxfY2lwaGVycyh2b2lkKQogIAl7CkBAIC0x MzI4LDcgKzEzNDUsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2NfYWxs Yy5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9jX2FsbAogIAl9CiBkaWZmIC11cCBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2NfYWxsZC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2V2cC9jX2FsbGQuYwogLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvY19hbGxkLmMu ZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9ldnAvY19hbGxkLmMJMjAxMy0wMi0xOSAxMjo0NzozMy43MjUxMTg1ODkgKzAx MDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2NfYWxsZC5jCTIwMTMtMDktMjcgMTQ6 MzI6MzUuMzI4NjY0ODE3ICswMjAwCiBAQCAtNjQsNiArNjQsMTEgQEAKICAKICB2b2lkIE9wZW5T U0xfYWRkX2FsbF9kaWdlc3RzKHZvaWQpCkBAIC0xMzc2LDcgKzEzOTMsNyBAQCBkaWZmIC11cCBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2NfYWxsZC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2V2cC9jX2FsbAogIAl9CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2Rp Z2VzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9kaWdlc3QuYwogLS0tIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9ldnAvZGlnZXN0LmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0LjAw MDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZGlnZXN0LmMJMjAx My0wMi0xOSAxMjo1MTo0MS4yNzY3Nzk4NzcgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlw dG8vZXZwL2RpZ2VzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzI4NjY0ODE3ICswMjAwCiBAQCAt MTQyLDkgKzE0Miw1MCBAQCBpbnQgRVZQX0RpZ2VzdEluaXQoRVZQX01EX0NUWCAqY3R4LCBjb25z CiAgCXJldHVybiBFVlBfRGlnZXN0SW5pdF9leChjdHgsIHR5cGUsIE5VTEwpOwogIAl9CkBAIC0x NTI3LDcgKzE1NDQsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2RpZ2Vz dC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9kaWdlcwogIAlyZXR1cm4gMTsKIGRp ZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZV9hZXMuYy5maXBzIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9ldnAvZV9hZXMuYwogLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZV9h ZXMuYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2V2cC9lX2Flcy5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzI2MTE4NjA5 ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9lX2Flcy5jCTIwMTMtMDktMjcg MTQ6MzI6MzUuMzI4NjY0ODE3ICswMjAwCiBAQCAtNTYsNyArNTYsNiBAQAogICNpbmNsdWRlIDxh c3NlcnQuaD4KICAjaW5jbHVkZSA8b3BlbnNzbC9hZXMuaD4KQEAgLTE1NjEsNyArMTU3OCw3IEBA IGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZV9hZXMuYy5maXBzIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9ldnAvZV9hZXMuCiAtI2VuZGlmCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZXZwL2VfZGVzMy5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9lX2Rl czMuYwogLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZV9kZXMzLmMuZmlwcwkyMDEzLTAy LTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9l dnAvZV9kZXMzLmMJMjAxMy0wMi0xOSAxMjo0NzozMy43MjcxMTg2MjkgKzAxMDAKKysrKyBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vZXZwL2VfZGVzMy5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzI4NjY0 ODE3ICswMjAwCiBAQCAtNjUsOCArNjUsNiBAQAogICNpbmNsdWRlIDxvcGVuc3NsL2Rlcy5oPgog ICNpbmNsdWRlIDxvcGVuc3NsL3JhbmQuaD4KQEAgLTE2MjIsNyArMTYzOSw3IEBAIGRpZmYgLXVw IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZV9kZXMzLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vZXZwL2VfZGVzCiAtI2VuZGlmCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v ZXZwL2VfbnVsbC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9lX251bGwuYwogLS0t IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZV9udWxsLmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2 OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZV9udWxs LmMJMjAxMy0wMi0xOSAxMjo0NzozMy43MjcxMTg2MjkgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZXZwL2VfbnVsbC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzI5NjY0ODQwICswMjAw CiBAQCAtNjEsOCArNjEsNiBAQAogICNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgogICNpbmNsdWRl IDxvcGVuc3NsL29iamVjdHMuaD4KQEAgLTE2NDgsNyArMTY2NSw3IEBAIGRpZmYgLXVwIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9ldnAvZV9udWxsLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v ZXZwL2VfbnVsCiAtI2VuZGlmCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2V2 cF9lbmMuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZXZwX2VuYy5jCiAtLS0gb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9ldnBfZW5jLmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0 LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZXZwX2VuYy5j CTIwMTMtMDItMTkgMTI6NDc6MzMuNzI4MTE4NjQ5ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL2V2cC9ldnBfZW5jLmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMjk2NjQ4NDAgKzAyMDAK IEBAIC02OSwxNyArNjksNTggQEAKICAjZW5kaWYKICAjaW5jbHVkZSAiZXZwX2xvY2wuaCIKQEAg LTE3OTgsOCArMTgxNSw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZXZw X2VuYy5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9ldnBfCiAgCXJldHVybiAxOwog IAl9CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2V2cC5oLmZpcHMgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2V2cC9ldnAuaAotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAv ZXZwLmguZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjQ3NDExMzQ4NyArMDEwMAotKysrIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9ldnAvZXZwLmgJMjAxMy0wMi0xOSAxMjo0NzozMy43MjgxMTg2NDkg KzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2V2cC5oLmZpcHMJMjAxMy0wOS0y NyAxNDozMjozNC45ODY2NTcxMTkgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZw L2V2cC5oCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzI5NjY0ODQwICswMjAwCiBAQCAtNzUsNiArNzUs MTAgQEAKICAjaW5jbHVkZSA8b3BlbnNzbC9iaW8uaD4KICAjZW5kaWYKQEAgLTE4NTQsNyArMTg3 MSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZXZwLmguZmlwcyBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vZXZwL2V2cC5oCiAgICovCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZXZwL2V2cF9saWIuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZXZw X2xpYi5jCiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9ldnBfbGliLmMuZmlwcwkyMDEz LTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9ldnAvZXZwX2xpYi5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzI5MTE4NjY5ICswMTAwCisrKysg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9ldnBfbGliLmMJMjAxMy0wOS0yNyAxNDozMjozNS4z Mjk2NjQ4NDAgKzAyMDAKIEBAIC0xOTAsNiArMTkwLDkgQEAgaW50IEVWUF9DSVBIRVJfQ1RYX2Js b2NrX3NpemUoY29uc3QgRVZQXwogIAogIGludCBFVlBfQ2lwaGVyKEVWUF9DSVBIRVJfQ1RYICpj dHgsIHVuc2lnbmVkIGNoYXIgKm91dCwgY29uc3QgdW5zaWduZWQgY2hhciAqaW4sIHVuc2lnbmVk IGludCBpbmwpCkBAIC0xODY2LDggKzE4ODMsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vZXZwL2V2cF9saWIuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZXZwXwog IAl9CiAgCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2V2cF9sb2NsLmguZmlw cyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL2V2cF9sb2NsLmgKLS0tLSBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZXZwL2V2cF9sb2NsLmguZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjQ2NTExMzMw NCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvZXZwX2xvY2wuaAkyMDEzLTAy LTE5IDEyOjQ3OjMzLjcyOTExODY2OSArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9l dnAvZXZwX2xvY2wuaC5maXBzCTIwMTMtMDktMjcgMTQ6MzI6MzQuOTgxNjU3MDA2ICswMjAwCisr Kysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9ldnBfbG9jbC5oCTIwMTMtMDktMjcgMTQ6MzI6 MzUuMzI5NjY0ODQwICswMjAwCiBAQCAtMjU4LDEwICsyNTgsOSBAQCBjb25zdCBFVlBfQ0lQSEVS ICpFVlBfIyNjbmFtZSMjX2VjYih2b2lkCiAgCUJMT0NLX0NJUEhFUl9mdW5jX2NmYihjaXBoZXIj I18jI2tleXNpemUsY3ByZWZpeCxjYml0cyxrc3RydWN0LGtzY2hlZCkgXAogIAlCTE9DS19DSVBI RVJfZGVmX2NmYihjaXBoZXIjI18jI2tleXNpemUsa3N0cnVjdCwgXApAQCAtMTkwNCw3ICsxOTIx LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9ldnBfbG9jbC5oLmZpcHMg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9ldnAKICAjZW5kaWYKIGRpZmYgLXVwIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9ldnAvTWFrZWZpbGUuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZw L01ha2VmaWxlCiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9NYWtlZmlsZS5maXBzCTIw MTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2V2cC9NYWtlZmlsZQkyMDEzLTAyLTE5IDEyOjUzOjI1LjQ2ODkxNzM4NiArMDEwMAorKysr IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvTWFrZWZpbGUJMjAxMy0wOS0yNyAxNDozMjozNS4z MzA2NjQ4NjMgKzAyMDAKIEBAIC0yOCw3ICsyOCw3IEBAIExJQlNSQz0gZW5jb2RlLmMgZGlnZXN0 LmMgZXZwX2VuYy5jIGV2cF8KICAJYmlvX21kLmMgYmlvX2I2NC5jIGJpb19lbmMuYyBldnBfZXJy LmMgZV9udWxsLmMgXAogIAljX2FsbC5jIGNfYWxsYy5jIGNfYWxsZC5jIGV2cF9saWIuYyBiaW9f b2suYyBcCkBAIC0xOTIzLDYwICsxOTQwLDYwIEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9ldnAvTWFrZWZpbGUuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL01ha2VmCiAg CWVfYWVzX2NiY19obWFjX3NoYTEubyBlX3JjNF9obWFjX21kNS5vCiAgCiAgU1JDPSAkKExJQlNS QykKLWRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvbV9kc3MxLmMuZmlwcyBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vZXZwL21fZHNzMS5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2V2cC9tX2RzczEuYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0r Kysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9tX2RzczEuYwkyMDEzLTAyLTE5IDEyOjQ3OjMz LjczMDExODY4OSArMDEwMAotQEAgLTY4LDggKzY4LDYgQEAKLSAjaW5jbHVkZSA8b3BlbnNzbC9k c2EuaD4KK2RpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvbV9kc3MuYy5maXBzIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvbV9kc3MuYworLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9ldnAvbV9kc3MuYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCisr Kysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9tX2Rzcy5jCTIwMTMtMDktMjcgMTQ6MzI6MzUu MzMwNjY0ODYzICswMjAwCitAQCAtNjYsNyArNjYsNiBAQAogICNlbmRpZgogIAotLSNpZm5kZWYg T1BFTlNTTF9GSVBTIAotLQorICNpZm5kZWYgT1BFTlNTTF9OT19TSEEKKy0jaWZuZGVmIE9QRU5T U0xfRklQUworIAogIHN0YXRpYyBpbnQgaW5pdChFVlBfTURfQ1RYICpjdHgpCiAgCXsgcmV0dXJu IFNIQTFfSW5pdChjdHgtPm1kX2RhdGEpOyB9Ci0gCi1AQCAtODQsNyArODIsNyBAQCBzdGF0aWMg Y29uc3QgRVZQX01EIGRzczFfbWQ9Ci0gCU5JRF9kc2EsCi0gCU5JRF9kc2FXaXRoU0hBMSwKK0BA IC04Miw3ICs4MSw3IEBAIHN0YXRpYyBjb25zdCBFVlBfTUQgZHNhX21kPQorIAlOSURfZHNhV2l0 aFNIQSwKKyAJTklEX2RzYVdpdGhTSEEsCiAgCVNIQV9ESUdFU1RfTEVOR1RILAogLQlFVlBfTURf RkxBR19QS0VZX0RJR0VTVCwKICsJRVZQX01EX0ZMQUdfUEtFWV9ESUdFU1R8RVZQX01EX0ZMQUdf RklQUywKICAJaW5pdCwKICAJdXBkYXRlLAogIAlmaW5hbCwKLUBAIC0xMDAsNCArOTgsMyBAQCBj b25zdCBFVlBfTUQgKkVWUF9kc3MxKHZvaWQpCi0gCXJldHVybigmZHNzMV9tZCk7CitAQCAtOTgs NCArOTcsMyBAQCBjb25zdCBFVlBfTUQgKkVWUF9kc3Modm9pZCkKKyAJcmV0dXJuKCZkc2FfbWQp OwogIAl9CiAgI2VuZGlmCiAtI2VuZGlmCi1kaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v ZXZwL21fZHNzLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL21fZHNzLmMKLS0tLSBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL21fZHNzLmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0 LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvbV9kc3MuYwky MDEzLTAyLTE5IDEyOjQ3OjMzLjczMDExODY4OSArMDEwMAotQEAgLTY2LDcgKzY2LDYgQEAKK2Rp ZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvbV9kc3MxLmMuZmlwcyBvcGVuc3NsLTEu MC4xZS9jcnlwdG8vZXZwL21fZHNzMS5jCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9t X2RzczEuYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCisrKysgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9tX2RzczEuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzMDY2 NDg2MyArMDIwMAorQEAgLTY4LDggKzY4LDYgQEAKKyAjaW5jbHVkZSA8b3BlbnNzbC9kc2EuaD4K ICAjZW5kaWYKICAKLSAjaWZuZGVmIE9QRU5TU0xfTk9fU0hBCi0tI2lmbmRlZiBPUEVOU1NMX0ZJ UFMKLSAKKy0jaWZuZGVmIE9QRU5TU0xfRklQUyAKKy0KICBzdGF0aWMgaW50IGluaXQoRVZQX01E X0NUWCAqY3R4KQogIAl7IHJldHVybiBTSEExX0luaXQoY3R4LT5tZF9kYXRhKTsgfQotQEAgLTgy LDcgKzgxLDcgQEAgc3RhdGljIGNvbnN0IEVWUF9NRCBkc2FfbWQ9Ci0gCU5JRF9kc2FXaXRoU0hB LAotIAlOSURfZHNhV2l0aFNIQSwKKyAKK0BAIC04NCw3ICs4Miw3IEBAIHN0YXRpYyBjb25zdCBF VlBfTUQgZHNzMV9tZD0KKyAJTklEX2RzYSwKKyAJTklEX2RzYVdpdGhTSEExLAogIAlTSEFfRElH RVNUX0xFTkdUSCwKIC0JRVZQX01EX0ZMQUdfUEtFWV9ESUdFU1QsCiArCUVWUF9NRF9GTEFHX1BL RVlfRElHRVNUfEVWUF9NRF9GTEFHX0ZJUFMsCiAgCWluaXQsCiAgCXVwZGF0ZSwKICAJZmluYWws Ci1AQCAtOTgsNCArOTcsMyBAQCBjb25zdCBFVlBfTUQgKkVWUF9kc3Modm9pZCkKLSAJcmV0dXJu KCZkc2FfbWQpOworQEAgLTEwMCw0ICs5OCwzIEBAIGNvbnN0IEVWUF9NRCAqRVZQX2RzczEodm9p ZCkKKyAJcmV0dXJuKCZkc3MxX21kKTsKICAJfQogICNlbmRpZgogLSNlbmRpZgogZGlmZiAtdXAg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9tX21kMi5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2V2cC9tX21kMi5jCiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9tX21kMi5jLmZp cHMJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZXZwL21fbWQyLmMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzExMTg3MTAgKzAxMDAK KysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL21fbWQyLmMJMjAxMy0wOS0yNyAxNDozMjoz NS4zMzA2NjQ4NjMgKzAyMDAKIEBAIC02OCw2ICs2OCw3IEBACiAgI2lmbmRlZiBPUEVOU1NMX05P X1JTQQogICNpbmNsdWRlIDxvcGVuc3NsL3JzYS5oPgpAQCAtMTk4Nyw3ICsyMDA0LDcgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9tX21kMi5jLmZpcHMgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2V2cC9tX21kMi4KICAJeyByZXR1cm4gTUQyX0luaXQoY3R4LT5tZF9kYXRhKTsg fQogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9tX3NoYTEuYy5maXBzIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9ldnAvbV9zaGExLmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v ZXZwL21fc2hhMS5jLmZpcHMJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL21fc2hhMS5jCTIwMTMtMDItMTkgMTI6NDc6MzMu NzMxMTE4NzEwICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2cC9tX3NoYTEuYwky MDEzLTA5LTI3IDE0OjMyOjM1LjMzMDY2NDg2MyArMDIwMAogQEAgLTU5LDggKzU5LDYgQEAKICAj aW5jbHVkZSA8c3RkaW8uaD4KICAjaW5jbHVkZSAiY3J5cHRsaWIuaCIKQEAgLTIwNTQsNyArMjA3 MSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvbV9zaGExLmMuZmlwcyBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL21fc2hhCiAtI2VuZGlmCiBkaWZmIC11cCBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZXZwL3Bfc2lnbi5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2V2 cC9wX3NpZ24uYwogLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvcF9zaWduLmMuZmlwcwky MDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9ldnAvcF9zaWduLmMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzExMTg3MTAgKzAxMDAKKysr KyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL3Bfc2lnbi5jCTIwMTMtMDktMjcgMTQ6MzI6MzUu MzMwNjY0ODYzICswMjAwCiBAQCAtNjEsNiArNjEsNyBAQAogICNpbmNsdWRlIDxvcGVuc3NsL2V2 cC5oPgogICNpbmNsdWRlIDxvcGVuc3NsL29iamVjdHMuaD4KQEAgLTIwODgsNyArMjEwNSw3IEBA IGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvcF9zaWduLmMuZmlwcyBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZXZwL3Bfc2lnCiAgCQkqc2lnbGVuID0gc2x0bXA7CiBkaWZmIC11cCBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL3BfdmVyaWZ5LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vZXZwL3BfdmVyaWZ5LmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL3BfdmVy aWZ5LmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9ldnAvcF92ZXJpZnkuYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjczMjEx ODczMSArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9ldnAvcF92ZXJpZnkuYwkyMDEz LTA5LTI3IDE0OjMyOjM1LjMzMDY2NDg2MyArMDIwMAogQEAgLTYxLDYgKzYxLDcgQEAKICAjaW5j bHVkZSA8b3BlbnNzbC9ldnAuaD4KICAjaW5jbHVkZSA8b3BlbnNzbC9vYmplY3RzLmg+CkBAIC0y MTIxLDggKzIxMzgsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL3BfdmVy aWZ5LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZXZwL3BfdgogIAkJZXJyOgogIAkJRVZQ X1BLRVlfQ1RYX2ZyZWUocGtjdHgpOwogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Zp cHMvY2F2cy9maXBzX2Flc2F2cy5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2 cy9maXBzX2Flc2F2cy5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBz X2Flc2F2cy5jLmZpcHMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzIxMTg3MzEgKzAxMDAKLSsrKyBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfYWVzYXZzLmMJMjAxMy0wMi0xOSAx Mjo0NzozMy43MzIxMTg3MzEgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9j YXZzL2ZpcHNfYWVzYXZzLmMuZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzMTY2NDg4NSArMDIw MAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19hZXNhdnMuYwkyMDEz LTA5LTI3IDE0OjMyOjM1LjMzMTY2NDg4NSArMDIwMAogQEAgLTAsMCArMSw5MzkgQEAKICsvKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogKyAqIENvcHlyaWdodCAoYykgMjAwNCBUaGUgT3BlblNTTCBQcm9qZWN0LiAg QWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTMwNjQsOCArMzA4MSw4IEBAIGRpZmYgLXVwIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19hZXNhdnMuYy5maXBzIG9wZW5zc2wtMS4w LjFlL2NyeXB0CiArCiArI2VuZGlmCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlw cy9jYXZzL2ZpcHNfY21hY3Rlc3QuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2Nh dnMvZmlwc19jbWFjdGVzdC5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9m aXBzX2NtYWN0ZXN0LmMuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjczMjExODczMSArMDEwMAot KysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19jbWFjdGVzdC5jCTIwMTMt MDItMTkgMTI6NDc6MzMuNzMyMTE4NzMxICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2ZpcHMvY2F2cy9maXBzX2NtYWN0ZXN0LmMuZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzMTY2 NDg4NSArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19jbWFj dGVzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzMxNjY0ODg1ICswMjAwCiBAQCAtMCwwICsxLDUx NyBAQAogKy8qIGZpcHNfY21hY3Rlc3QuYyAqLwogKy8qIFdyaXR0ZW4gYnkgRHIgU3RlcGhlbiBO IEhlbnNvbiAoc3RldmVAb3BlbnNzbC5vcmcpIGZvciB0aGUgT3BlblNTTApAQCAtMzU4NSw4ICsz NjAyLDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2Nt YWN0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnkKICsKICsjZW5kaWYKIGRpZmYgLXVwIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19kZXNtb3ZzLmMuZmlwcyBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfZGVzbW92cy5jCi0tLS0gb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2Rlc21vdnMuYy5maXBzCTIwMTMtMDItMTkgMTI6NDc6 MzMuNzMzMTE4NzUyICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9m aXBzX2Rlc21vdnMuYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjczMzExODc1MiArMDEwMAorLS0tIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19kZXNtb3ZzLmMuZmlwcwkyMDEzLTA5 LTI3IDE0OjMyOjM1LjMzMTY2NDg4NSArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9m aXBzL2NhdnMvZmlwc19kZXNtb3ZzLmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMzE2NjQ4ODUgKzAy MDAKIEBAIC0wLDAgKzEsNzAyIEBACiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMp IDIwMDQgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC00Mjkx LDggKzQzMDgsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2Zp cHNfZGVzbW92cy5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cAogKwogKyNlbmRpZgogZGlmZiAt dXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2RodnMuYy5maXBzIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19kaHZzLmMKLS0tLSBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfZGh2cy5jLmZpcHMJMjAxMy0wMi0xOSAxMjo0NzozMy43 MzMxMTg3NTIgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNf ZGh2cy5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzMzMTE4NzUyICswMTAwCistLS0gb3BlbnNzbC0x LjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2RodnMuYy5maXBzCTIwMTMtMDktMjcgMTQ6MzI6 MzUuMzMyNjY0OTA4ICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9m aXBzX2RodnMuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzMTY2NDg4NSArMDIwMAogQEAgLTAsMCAr MSwyOTIgQEAKICsvKiBmaXBzL2RoL2ZpcHNfZGh2cy5jICovCiArLyogV3JpdHRlbiBieSBEciBT dGVwaGVuIE4gSGVuc29uIChzdGV2ZUBvcGVuc3NsLm9yZykgZm9yIHRoZSBPcGVuU1NMCkBAIC00 NTg3LDggKzQ2MDQsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZz L2ZpcHNfZGh2cy5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvLwogKwogKyNlbmRpZgogZGlm ZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2RyYmd2cy5jLmZpcHMg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2RyYmd2cy5jCi0tLS0gb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2RyYmd2cy5jLmZpcHMJMjAxMy0wMi0xOSAx Mjo0NzozMy43MzMxMTg3NTIgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9j YXZzL2ZpcHNfZHJiZ3ZzLmMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzMxMTg3NTIgKzAxMDAKKy0t LSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfZHJiZ3ZzLmMuZmlwcwkyMDEz LTA5LTI3IDE0OjMyOjM1LjMzMjY2NDkwOCArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9maXBzL2NhdnMvZmlwc19kcmJndnMuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzMjY2NDkwOCAr MDIwMAogQEAgLTAsMCArMSw0MTYgQEAKICsvKiBmaXBzL3JhbmQvZmlwc19kcmJndnMuYyAqLwog Ky8qIFdyaXR0ZW4gYnkgRHIgU3RlcGhlbiBOIEhlbnNvbiAoc3RldmVAb3BlbnNzbC5vcmcpIGZv ciB0aGUgT3BlblNTTApAQCAtNTAwNyw4ICs1MDI0LDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2RyYmd2cy5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5 cHQKICsKICsjZW5kaWYKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMv Zmlwc19kc3N2cy5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2Rz c3ZzLmMKLS0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfZHNzdnMuYy5m aXBzCTIwMTMtMDItMTkgMTI6NDc6MzMuNzMzMTE4NzUyICswMTAwCi0rKysgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2Rzc3ZzLmMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzMx MTg3NTIgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfZHNz dnMuYy5maXBzCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzMyNjY0OTA4ICswMjAwCisrKysgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX2Rzc3ZzLmMJMjAxMy0wOS0yNyAxNDozMjoz NS4zMzI2NjQ5MDggKzAyMDAKIEBAIC0wLDAgKzEsNTM3IEBACiArI2luY2x1ZGUgPG9wZW5zc2wv b3BlbnNzbGNvbmYuaD4KICsKQEAgLTU1NDgsOCArNTU2NSw4IEBAIGRpZmYgLXVwIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19kc3N2cy5jLmZpcHMgb3BlbnNzbC0xLjAuMWUv Y3J5cHRvCiArCiArI2VuZGlmCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9j YXZzL2ZpcHNfZ2NtdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9m aXBzX2djbXRlc3QuYwotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19n Y210ZXN0LmMuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjczNDExODc3MiArMDEwMAotKysrIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19nY210ZXN0LmMJMjAxMy0wMi0xOSAx Mjo0NzozMy43MzQxMTg3NzIgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9j YXZzL2ZpcHNfZ2NtdGVzdC5jLmZpcHMJMjAxMy0wOS0yNyAxNDozMjozNS4zMzI2NjQ5MDggKzAy MDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfZ2NtdGVzdC5jCTIw MTMtMDktMjcgMTQ6MzI6MzUuMzMyNjY0OTA4ICswMjAwCiBAQCAtMCwwICsxLDU3MSBAQAogKy8q IGZpcHMvYWVzL2ZpcHNfZ2NtdGVzdC5jICovCiArLyogV3JpdHRlbiBieSBEciBTdGVwaGVuIE4g SGVuc29uIChzdGV2ZUBvcGVuc3NsLm9yZykgZm9yIHRoZSBPcGVuU1NMCkBAIC02MTIzLDggKzYx NDAsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfZ2Nt dGVzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cAogKwogKyNlbmRpZgogZGlmZiAtdXAgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX3JuZ3ZzLmMuZmlwcyBvcGVuc3NsLTEu MC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfcm5ndnMuYwotLS0tIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9maXBzL2NhdnMvZmlwc19ybmd2cy5jLmZpcHMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzQx MTg3NzIgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfcm5n dnMuYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjczNDExODc3MiArMDEwMAorLS0tIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19ybmd2cy5jLmZpcHMJMjAxMy0wOS0yNyAxNDozMjoz NS4zMzI2NjQ5MDggKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2Zp cHNfcm5ndnMuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzMjY2NDkwOCArMDIwMAogQEAgLTAsMCAr MSwyMzAgQEAKICsvKgogKyAqIENydWRlIHRlc3QgZHJpdmVyIGZvciBwcm9jZXNzaW5nIHRoZSBW U1QgYW5kIE1DVCB0ZXN0dmVjdG9yIGZpbGVzCkBAIC02MzU3LDggKzYzNzQsOCBAQCBkaWZmIC11 cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfcm5ndnMuYy5maXBzIG9wZW5z c2wtMS4wLjFlL2NyeXB0bwogKyAgICB9CiArI2VuZGlmCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfcnNhZ3Rlc3QuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9maXBzL2NhdnMvZmlwc19yc2FndGVzdC5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2ZpcHMvY2F2cy9maXBzX3JzYWd0ZXN0LmMuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjczNDEx ODc3MiArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19yc2Fn dGVzdC5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzM0MTE4NzcyICswMTAwCistLS0gb3BlbnNzbC0x LjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX3JzYWd0ZXN0LmMuZmlwcwkyMDEzLTA5LTI3IDE0 OjMyOjM1LjMzMzY2NDkzMCArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2Nh dnMvZmlwc19yc2FndGVzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzMzNjY0OTMwICswMjAwCiBA QCAtMCwwICsxLDM5MCBAQAogKy8qIGZpcHNfcnNhZ3Rlc3QuYyAqLwogKy8qIFdyaXR0ZW4gYnkg RHIgU3RlcGhlbiBOIEhlbnNvbiAoc3RldmVAb3BlbnNzbC5vcmcpIGZvciB0aGUgT3BlblNTTApA QCAtNjc1MSw4ICs2NzY4LDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMv Y2F2cy9maXBzX3JzYWd0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnkKICsKICsjZW5kaWYK IGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19yc2FzdGVzdC5j LmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX3JzYXN0ZXN0LmMKLS0t LSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfcnNhc3Rlc3QuYy5maXBzCTIw MTMtMDItMTkgMTI6NDc6MzMuNzM0MTE4NzcyICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2ZpcHMvY2F2cy9maXBzX3JzYXN0ZXN0LmMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzQxMTg3 NzIgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfcnNhc3Rl c3QuYy5maXBzCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzMzNjY0OTMwICswMjAwCisrKysgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX3JzYXN0ZXN0LmMJMjAxMy0wOS0yNyAxNDoz MjozNS4zMzM2NjQ5MzAgKzAyMDAKIEBAIC0wLDAgKzEsMzcwIEBACiArLyogZmlwc19yc2FzdGVz dC5jICovCiArLyogV3JpdHRlbiBieSBEciBTdGVwaGVuIE4gSGVuc29uIChzdGV2ZUBvcGVuc3Ns Lm9yZykgZm9yIHRoZSBPcGVuU1NMCkBAIC03MTI1LDggKzcxNDIsOCBAQCBkaWZmIC11cCBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfcnNhc3Rlc3QuYy5maXBzIG9wZW5zc2wt MS4wLjFlL2NyeQogKwl9CiArI2VuZGlmCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v Zmlwcy9jYXZzL2ZpcHNfcnNhdnRlc3QuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBz L2NhdnMvZmlwc19yc2F2dGVzdC5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2 cy9maXBzX3JzYXZ0ZXN0LmMuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjczNTExODc5MiArMDEw MAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19yc2F2dGVzdC5jCTIw MTMtMDItMTkgMTI6NDc6MzMuNzM1MTE4NzkyICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2ZpcHMvY2F2cy9maXBzX3JzYXZ0ZXN0LmMuZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMz MzY2NDkzMCArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19y c2F2dGVzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzMzNjY0OTMwICswMjAwCiBAQCAtMCwwICsx LDM3NyBAQAogKy8qIGZpcHNfcnNhdnRlc3QuYyAqLwogKy8qIFdyaXR0ZW4gYnkgRHIgU3RlcGhl biBOIEhlbnNvbiAoc3RldmVAb3BlbnNzbC5vcmcpIGZvciB0aGUgT3BlblNTTApAQCAtNzUwNiw4 ICs3NTIzLDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBz X3JzYXZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnkKICsJfQogKyNlbmRpZgogZGlmZiAt dXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX3NoYXRlc3QuYy5maXBzIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc19zaGF0ZXN0LmMKLS0tLSBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNfc2hhdGVzdC5jLmZpcHMJMjAxMy0wMi0xOSAx Mjo0NzozMy43MzUxMTg3OTIgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9j YXZzL2ZpcHNfc2hhdGVzdC5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzM1MTE4NzkyICswMTAwCist LS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX3NoYXRlc3QuYy5maXBzCTIw MTMtMDktMjcgMTQ6MzI6MzUuMzMzNjY0OTMwICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2ZpcHMvY2F2cy9maXBzX3NoYXRlc3QuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzMzY2NDkz MCArMDIwMAogQEAgLTAsMCArMSwzODggQEAKICsvKiBmaXBzX3NoYXRlc3QuYyAqLwogKy8qIFdy aXR0ZW4gYnkgRHIgU3RlcGhlbiBOIEhlbnNvbiAoc3RldmVAb3BlbnNzbC5vcmcpIGZvciB0aGUg T3BlblNTTApAQCAtNzg5OCw4ICs3OTE1LDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2ZpcHMvY2F2cy9maXBzX3NoYXRlc3QuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXAKICsK ICsjZW5kaWYKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc191 dGwuaC5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc191dGwuaAotLS0t IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2NhdnMvZmlwc191dGwuaC5maXBzCTIwMTMtMDIt MTkgMTI6NDc6MzMuNzM1MTE4NzkyICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Zp cHMvY2F2cy9maXBzX3V0bC5oCTIwMTMtMDItMTkgMTI6NDc6MzMuNzM1MTE4NzkyICswMTAwCist LS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvY2F2cy9maXBzX3V0bC5oLmZpcHMJMjAxMy0w OS0yNyAxNDozMjozNS4zMzM2NjQ5MzAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v Zmlwcy9jYXZzL2ZpcHNfdXRsLmgJMjAxMy0wOS0yNyAxNDozMjozNS4zMzM2NjQ5MzAgKzAyMDAK IEBAIC0wLDAgKzEsMzQzIEBACiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIw MDcgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC04MjQ1LDgg KzgyNjIsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9jYXZzL2ZpcHNf dXRsLmguZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZgogKyAgICB9CiArCiBkaWZmIC11cCBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2Flc19zZWxmdGVzdC5jLmZpcHMgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19hZXNfc2VsZnRlc3QuYwotLS0tIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9maXBzL2ZpcHNfYWVzX3NlbGZ0ZXN0LmMuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3 OjMzLjczNTExODc5MiArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNf YWVzX3NlbGZ0ZXN0LmMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzUxMTg3OTIgKzAxMDAKKy0tLSBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2Flc19zZWxmdGVzdC5jLmZpcHMJMjAxMy0w OS0yNyAxNDozMjozNS4zMzQ2NjQ5NTIgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v Zmlwcy9maXBzX2Flc19zZWxmdGVzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM0NjY0OTUyICsw MjAwCiBAQCAtMCwwICsxLDM1OSBAQAogKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiArICogQ29weXJpZ2h0IChj KSAyMDAzIFRoZSBPcGVuU1NMIFByb2plY3QuICBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtODM5 Miw3ICs4NDA5LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19h ZXNfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXAKICsJRVZQX0NJUEhFUl9DVFgg Y3R4OwogKwlFVlBfQ0lQSEVSX0NUWF9pbml0KCZjdHgpOwogKwltZW1zZXQob3V0LCAwLCBzaXpl b2Yob3V0KSk7Ci0rCWlmICghRVZQX0NpcGhlckluaXQoJmN0eCwgRVZQX2Flc18xOTJfY2NtKCks IE5VTEwsIE5VTEwsIDEpKQorKwlpZiAoIUVWUF9DaXBoZXJJbml0X2V4KCZjdHgsIEVWUF9hZXNf MTkyX2NjbSgpLE5VTEwsIE5VTEwsIE5VTEwsIDEpKQogKwkJZ290byBlcnI7CiArCWlmICghRVZQ X0NJUEhFUl9DVFhfY3RybCgmY3R4LCBFVlBfQ1RSTF9DQ01fU0VUX0lWTEVOLAogKwkJCQkJc2l6 ZW9mKGNjbV9ub25jZSksIE5VTEwpKQpAQCAtODQwMCw3ICs4NDE3LDcgQEAgZGlmZiAtdXAgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19hZXNfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wt MS4wLjFlL2NyeXAKICsJaWYgKCFFVlBfQ0lQSEVSX0NUWF9jdHJsKCZjdHgsIEVWUF9DVFJMX0ND TV9TRVRfVEFHLAogKwkJCQkJc2l6ZW9mKGNjbV90YWcpLCBOVUxMKSkKICsJCWdvdG8gZXJyOwot KwlpZiAoIUVWUF9DaXBoZXJJbml0KCZjdHgsIE5VTEwsIGNjbV9rZXksIGNjbV9ub25jZSwgMSkp CisrCWlmICghRVZQX0NpcGhlckluaXRfZXgoJmN0eCwgTlVMTCwgTlVMTCwgY2NtX2tleSwgY2Nt X25vbmNlLCAxKSkKICsJCWdvdG8gZXJyOwogKwlpZiAoRVZQX0NpcGhlcigmY3R4LCBOVUxMLCBO VUxMLCBzaXplb2YoY2NtX3B0KSkgIT0gc2l6ZW9mKGNjbV9wdCkpCiArCQlnb3RvIGVycjsKQEAg LTg0MTcsMTQgKzg0MzQsMTQgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMv Zmlwc19hZXNfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXAKICsKICsJbWVtc2V0 KG91dCwgMCwgc2l6ZW9mKG91dCkpOwogKwotKwlpZiAoIUVWUF9DaXBoZXJJbml0KCZjdHgsIEVW UF9hZXNfMTkyX2NjbSgpLCBOVUxMLCBOVUxMLCAwKSkKKysJaWYgKCFFVlBfQ2lwaGVySW5pdF9l eCgmY3R4LCBFVlBfYWVzXzE5Ml9jY20oKSwgTlVMTCwgTlVMTCwgTlVMTCwgMCkpCiArCQlnb3Rv IGVycjsKICsJaWYgKCFFVlBfQ0lQSEVSX0NUWF9jdHJsKCZjdHgsIEVWUF9DVFJMX0NDTV9TRVRf SVZMRU4sCiArCQkJCQlzaXplb2YoY2NtX25vbmNlKSwgTlVMTCkpCiArCQlnb3RvIGVycjsKICsJ aWYgKCFFVlBfQ0lQSEVSX0NUWF9jdHJsKCZjdHgsIEVWUF9DVFJMX0NDTV9TRVRfVEFHLCAxNiwg dGFnKSkKICsJCWdvdG8gZXJyOwotKwlpZiAoIUVWUF9DaXBoZXJJbml0KCZjdHgsIE5VTEwsIGNj bV9rZXksIGNjbV9ub25jZSwgMCkpCisrCWlmICghRVZQX0NpcGhlckluaXRfZXgoJmN0eCwgTlVM TCwgTlVMTCwgY2NtX2tleSwgY2NtX25vbmNlLCAwKSkKICsJCWdvdG8gZXJyOwogKwlpZiAoRVZQ X0NpcGhlcigmY3R4LCBOVUxMLCBOVUxMLCBzaXplb2YoY2NtX2N0KSkgIT0gc2l6ZW9mKGNjbV9j dCkpCiArCQlnb3RvIGVycjsKQEAgLTg0ODYsMTIgKzg1MDMsMTIgQEAgZGlmZiAtdXAgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19hZXNfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4w LjFlL2NyeXAKICsJRVZQX0NJUEhFUl9DVFhfaW5pdCgmY3R4KTsKICsJbWVtc2V0KG91dCwgMCwg c2l6ZW9mKG91dCkpOwogKwltZW1zZXQodGFnLCAwLCBzaXplb2YodGFnKSk7Ci0rCWlmICghRVZQ X0NpcGhlckluaXQoJmN0eCwgRVZQX2Flc18yNTZfZ2NtKCksIE5VTEwsIE5VTEwsIDEpKQorKwlp ZiAoIUVWUF9DaXBoZXJJbml0X2V4KCZjdHgsIEVWUF9hZXNfMjU2X2djbSgpLCBOVUxMLCBOVUxM LCBOVUxMLCAxKSkKICsJCWdvdG8gZXJyOwogKwlpZiAoIUVWUF9DSVBIRVJfQ1RYX2N0cmwoJmN0 eCwgRVZQX0NUUkxfR0NNX1NFVF9JVkxFTiwKICsJCQkJCXNpemVvZihnY21faXYpLCBOVUxMKSkK ICsJCWdvdG8gZXJyOwotKwlpZiAoIUVWUF9DaXBoZXJJbml0KCZjdHgsIE5VTEwsIGdjbV9rZXks IGdjbV9pdiwgMSkpCisrCWlmICghRVZQX0NpcGhlckluaXRfZXgoJmN0eCwgTlVMTCwgTlVMTCwg Z2NtX2tleSwgZ2NtX2l2LCAxKSkKICsJCWdvdG8gZXJyOwogKwlpZiAoRVZQX0NpcGhlcigmY3R4 LCBOVUxMLCBnY21fYWFkLCBzaXplb2YoZ2NtX2FhZCkpIDwgMCkKICsJCWdvdG8gZXJyOwpAQCAt ODUwOCwxNCArODUyNSwxNCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9m aXBzX2Flc19zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cAogKwogKwltZW1zZXQo b3V0LCAwLCBzaXplb2Yob3V0KSk7CiArCi0rCWlmICghRVZQX0NpcGhlckluaXQoJmN0eCwgRVZQ X2Flc18yNTZfZ2NtKCksIE5VTEwsIE5VTEwsIDApKQorKwlpZiAoIUVWUF9DaXBoZXJJbml0X2V4 KCZjdHgsIEVWUF9hZXNfMjU2X2djbSgpLCBOVUxMLCBOVUxMLCBOVUxMLCAwKSkKICsJCWdvdG8g ZXJyOwogKwlpZiAoIUVWUF9DSVBIRVJfQ1RYX2N0cmwoJmN0eCwgRVZQX0NUUkxfR0NNX1NFVF9J VkxFTiwKICsJCQkJCXNpemVvZihnY21faXYpLCBOVUxMKSkKICsJCWdvdG8gZXJyOwogKwlpZiAo IUVWUF9DSVBIRVJfQ1RYX2N0cmwoJmN0eCwgRVZQX0NUUkxfR0NNX1NFVF9UQUcsIDE2LCB0YWcp KQogKwkJZ290byBlcnI7Ci0rCWlmICghRVZQX0NpcGhlckluaXQoJmN0eCwgTlVMTCwgZ2NtX2tl eSwgZ2NtX2l2LCAwKSkKKysJaWYgKCFFVlBfQ2lwaGVySW5pdF9leCgmY3R4LCBOVUxMLCBOVUxM LCBnY21fa2V5LCBnY21faXYsIDApKQogKwkJZ290byBlcnI7CiArCWlmIChFVlBfQ2lwaGVyKCZj dHgsIE5VTEwsIGdjbV9hYWQsIHNpemVvZihnY21fYWFkKSkgPCAwKQogKwkJZ290byBlcnI7CkBA IC04NjA4LDggKzg2MjUsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9m aXBzX2Flc19zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cAogKwogKyNlbmRpZgog ZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwcy5jLmZpcHMgb3BlbnNzbC0x LjAuMWUvY3J5cHRvL2ZpcHMvZmlwcy5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMv Zmlwcy5jLmZpcHMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzUxMTg3OTIgKzAxMDAKLSsrKyBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzLmMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzYxMTg4 MTIgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzLmMuZmlwcwkyMDEz LTA5LTI3IDE0OjMyOjM1LjMzNDY2NDk1MiArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9maXBzL2ZpcHMuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzNDY2NDk1MiArMDIwMAogQEAgLTAs MCArMSw0ODkgQEAKICsvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKyAqIENvcHlyaWdodCAoYykgMjAwMyBUaGUg T3BlblNTTCBQcm9qZWN0LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTkxMDEsOCArOTExOCw4 IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHMuYy5maXBzIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHMuCiArCiArI2VuZGlmCiBkaWZmIC11cCBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2NtYWNfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9maXBzL2ZpcHNfY21hY19zZWxmdGVzdC5jCi0tLS0gb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL2ZpcHMvZmlwc19jbWFjX3NlbGZ0ZXN0LmMuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMz LjczNjExODgxMiArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfY21h Y19zZWxmdGVzdC5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzM2MTE4ODEyICswMTAwCistLS0gb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19jbWFjX3NlbGZ0ZXN0LmMuZmlwcwkyMDEzLTA5 LTI3IDE0OjMyOjM1LjMzNDY2NDk1MiArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9m aXBzL2ZpcHNfY21hY19zZWxmdGVzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM0NjY0OTUyICsw MjAwCiBAQCAtMCwwICsxLDE2MSBAQAogKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiArICogQ29weXJpZ2h0IChj KSAyMDExIFRoZSBPcGVuU1NMIFByb2plY3QuICBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtOTI2 Niw4ICs5MjgzLDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19j bWFjX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnkKICsJfQogKyNlbmRpZgogZGlm ZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kZXNfc2VsZnRlc3QuYy5maXBz IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZGVzX3NlbGZ0ZXN0LmMKLS0tLSBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2Rlc19zZWxmdGVzdC5jLmZpcHMJMjAxMy0wMi0x OSAxMjo0NzozMy43MzYxMTg4MTIgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlw cy9maXBzX2Rlc19zZWxmdGVzdC5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzM2MTE4ODEyICswMTAw CistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kZXNfc2VsZnRlc3QuYy5maXBz CTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM0NjY0OTUyICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL2ZpcHMvZmlwc19kZXNfc2VsZnRlc3QuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzNDY2 NDk1MiArMDIwMAogQEAgLTAsMCArMSwxNDcgQEAKICsvKiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKyAqIENvcHly aWdodCAoYykgMjAwMyBUaGUgT3BlblNTTCBQcm9qZWN0LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K QEAgLTk0MTcsOCArOTQzNCw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBz L2ZpcHNfZGVzX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwCiArICAgIH0KICsj ZW5kaWYKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19jdHIu Yy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19jdHIuYwotLS0tIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19jdHIuYy5maXBzCTIwMTMtMDItMTkg MTI6NDc6MzMuNzM2MTE4ODEyICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMv Zmlwc19kcmJnX2N0ci5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzM2MTE4ODEyICswMTAwCistLS0g b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2N0ci5jLmZpcHMJMjAxMy0wOS0y NyAxNDozMjozNS4zMzQ2NjQ5NTIgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlw cy9maXBzX2RyYmdfY3RyLmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMzQ2NjQ5NTIgKzAyMDAKIEBA IC0wLDAgKzEsNDM2IEBACiArLyogZmlwcy9yYW5kL2ZpcHNfZHJiZ19jdHIuYyAqLwogKy8qIFdy aXR0ZW4gYnkgRHIgU3RlcGhlbiBOIEhlbnNvbiAoc3RldmVAb3BlbnNzbC5vcmcpIGZvciB0aGUg T3BlblNTTApAQCAtOTg1Nyw4ICs5ODc0LDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2ZpcHMvZmlwc19kcmJnX2N0ci5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2YKICsJ cmV0dXJuIDE7CiArCX0KIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNf ZHJiZ19oYXNoLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2RyYmdfaGFz aC5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2hhc2guYy5maXBz CTIwMTMtMDItMTkgMTI6NDc6MzMuNzM2MTE4ODEyICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL2ZpcHMvZmlwc19kcmJnX2hhc2guYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjczNjExODgx MiArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19oYXNoLmMu ZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzNTY2NDk3NSArMDIwMAorKysrIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19oYXNoLmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMzU2 NjQ5NzUgKzAyMDAKIEBAIC0wLDAgKzEsMzc4IEBACiArLyogZmlwcy9yYW5kL2ZpcHNfZHJiZ19o YXNoLmMgKi8KICsvKiBXcml0dGVuIGJ5IERyIFN0ZXBoZW4gTiBIZW5zb24gKHN0ZXZlQG9wZW5z c2wub3JnKSBmb3IgdGhlIE9wZW5TU0wKQEAgLTEwMjM5LDggKzEwMjU2LDggQEAgZGlmZiAtdXAg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2hhc2guYy5maXBzIG9wZW5zc2wt MS4wLjFlL2NyeXB0by8KICsJcmV0dXJuIDE7CiArCX0KIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9maXBzL2ZpcHNfZHJiZ19obWFjLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v Zmlwcy9maXBzX2RyYmdfaG1hYy5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlw c19kcmJnX2htYWMuYy5maXBzCTIwMTMtMDItMTkgMTI6NDc6MzMuNzM3MTE4ODMyICswMTAwCi0r Kysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2htYWMuYwkyMDEzLTAyLTE5 IDEyOjQ3OjMzLjczNzExODgzMiArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBz L2ZpcHNfZHJiZ19obWFjLmMuZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzNTY2NDk3NSArMDIw MAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19obWFjLmMJMjAxMy0w OS0yNyAxNDozMjozNS4zMzU2NjQ5NzUgKzAyMDAKIEBAIC0wLDAgKzEsMjgxIEBACiArLyogZmlw cy9yYW5kL2ZpcHNfZHJiZ19obWFjLmMgKi8KICsvKiBXcml0dGVuIGJ5IERyIFN0ZXBoZW4gTiBI ZW5zb24gKHN0ZXZlQG9wZW5zc2wub3JnKSBmb3IgdGhlIE9wZW5TU0wKQEAgLTEwNTI0LDggKzEw NTQxLDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2ht YWMuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by8KICsJcmV0dXJuIDE7CiArCX0KIGRpZmYg LXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19saWIuYy5maXBzIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19saWIuYwotLS0tIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9maXBzL2ZpcHNfZHJiZ19saWIuYy5maXBzCTIwMTMtMDItMTkgMTI6NDc6MzMuNzM3 MTE4ODMyICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2xp Yi5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzM3MTE4ODMyICswMTAwCistLS0gb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2xpYi5jLmZpcHMJMjAxMy0wOS0yNyAxNDozMjozNS4z MzU2NjQ5NzUgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2RyYmdf bGliLmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMzU2NjQ5NzUgKzAyMDAKIEBAIC0wLDAgKzEsNTc4 IEBACiArLyogV3JpdHRlbiBieSBEciBTdGVwaGVuIE4gSGVuc29uIChzdGV2ZUBvcGVuc3NsLm9y ZykgZm9yIHRoZSBPcGVuU1NMCiArICogcHJvamVjdC4KQEAgLTExMTA2LDggKzExMTIzLDggQEAg ZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX2xpYi5jLmZpcHMg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2YKICsJcmV0dXJuIDE7CiArCX0KIGRpZmYgLXVwIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19yYW5kLmMuZmlwcyBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9maXBzX2RyYmdfcmFuZC5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2ZpcHMvZmlwc19kcmJnX3JhbmQuYy5maXBzCTIwMTMtMDItMTkgMTI6NDc6MzMuNzM3MTE4ODMy ICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX3JhbmQuYwky MDEzLTAyLTE5IDEyOjQ3OjMzLjczNzExODgzMiArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9maXBzL2ZpcHNfZHJiZ19yYW5kLmMuZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzNTY2 NDk3NSArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19yYW5k LmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMzU2NjQ5NzUgKzAyMDAKIEBAIC0wLDAgKzEsMTcyIEBA CiArLyogZmlwcy9yYW5kL2ZpcHNfZHJiZ19yYW5kLmMgKi8KICsvKiBXcml0dGVuIGJ5IERyIFN0 ZXBoZW4gTiBIZW5zb24gKHN0ZXZlQG9wZW5zc2wub3JnKSBmb3IgdGhlIE9wZW5TU0wKQEAgLTEx MjgyLDggKzExMjk5LDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlw c19kcmJnX3JhbmQuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by8KICsJfQogKwogZGlmZiAt dXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX3NlbGZ0ZXN0LmMuZmlwcyBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2RyYmdfc2VsZnRlc3QuYwotLS0tIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19zZWxmdGVzdC5jLmZpcHMJMjAxMy0wMi0x OSAxMjo0NzozMy43MzcxMTg4MzIgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlw cy9maXBzX2RyYmdfc2VsZnRlc3QuYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjczNzExODgzMiArMDEw MAorLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19zZWxmdGVzdC5jLmZp cHMJMjAxMy0wOS0yNyAxNDozMjozNS4zMzY2NjQ5OTggKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9maXBzX2RyYmdfc2VsZnRlc3QuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMz NjY2NDk5OCArMDIwMAogQEAgLTAsMCArMSw4NjIgQEAKICsvKiBmaXBzL3JhbmQvZmlwc19kcmJn X3NlbGZ0ZXN0LmMgKi8KICsvKiBXcml0dGVuIGJ5IERyIFN0ZXBoZW4gTiBIZW5zb24gKHN0ZXZl QG9wZW5zc2wub3JnKSBmb3IgdGhlIE9wZW5TU0wKQEAgLTEyMTQ4LDggKzEyMTY1LDggQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX3NlbGZ0ZXN0LmMuZmlw cyBvcGVuc3NsLTEuMC4xZS9jcnkKICsJfQogKwogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2ZpcHMvZmlwc19kcmJnX3NlbGZ0ZXN0LmguZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v Zmlwcy9maXBzX2RyYmdfc2VsZnRlc3QuaAotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBz L2ZpcHNfZHJiZ19zZWxmdGVzdC5oLmZpcHMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzgxMTg4NTIg KzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2RyYmdfc2VsZnRlc3Qu aAkyMDEzLTAyLTE5IDEyOjQ3OjMzLjczODExODg1MiArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9maXBzL2ZpcHNfZHJiZ19zZWxmdGVzdC5oLmZpcHMJMjAxMy0wOS0yNyAxNDozMjoz NS4zMzc2NjUwMjAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2Ry Ymdfc2VsZnRlc3QuaAkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzNzY2NTAyMCArMDIwMAogQEAgLTAs MCArMSwyMzM1IEBACiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVGhl IE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xNDQ4Nyw4ICsxNDUw NCw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19zZWxm dGVzdC5oLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5CiArCX07CiArCiBkaWZmIC11cCBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2RzYV9zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvZmlwc19kc2Ffc2VsZnRlc3QuYwotLS0tIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9maXBzL2ZpcHNfZHNhX3NlbGZ0ZXN0LmMuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjcz OTExODg3MiArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHNhX3Nl bGZ0ZXN0LmMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzkxMTg4NzIgKzAxMDAKKy0tLSBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2RzYV9zZWxmdGVzdC5jLmZpcHMJMjAxMy0wOS0yNyAx NDozMjozNS4zMzc2NjUwMjAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9m aXBzX2RzYV9zZWxmdGVzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM3NjY1MDIwICswMjAwCiBA QCAtMCwwICsxLDE5MyBAQAogKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiArICogQ29weXJpZ2h0IChjKSAyMDEx IFRoZSBPcGVuU1NMIFByb2plY3QuICBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMTQ2ODQsOCAr MTQ3MDEsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2RzYV9z ZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cAogKwl9CiArI2VuZGlmCiBkaWZmIC11 cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2VuYy5jLmZpcHMgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvZmlwc19lbmMuYwotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBz L2ZpcHNfZW5jLmMuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjczOTExODg3MiArMDEwMAotKysr IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZW5jLmMJMjAxMy0wMi0xOSAxMjo0Nzoz My43MzkxMTg4NzIgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2Vu Yy5jLmZpcHMJMjAxMy0wOS0yNyAxNDozMjozNS4zMzc2NjUwMjAgKzAyMDAKKysrKyBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2VuYy5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM3NjY1 MDIwICswMjAwCiBAQCAtMCwwICsxLDE5MSBAQAogKy8qIGZpcGUvZXZwL2ZpcHNfZW5jLmMgKi8K ICsvKiBDb3B5cmlnaHQgKEMpIDE5OTUtMTk5OCBFcmljIFlvdW5nIChlYXlAY3J5cHRzb2Z0LmNv bSkKQEAgLTE0ODc5LDggKzE0ODk2LDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2ZpcHMvZmlwc19lbmMuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2YKICsJfQog KwogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwcy5oLmZpcHMgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwcy5oCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Zp cHMvZmlwcy5oLmZpcHMJMjAxMy0wMi0xOSAxMjo0NzozMy43MzkxMTg4NzIgKzAxMDAKLSsrKyBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzLmgJMjAxMy0wMi0xOSAxMjo0NzozMy43Mzkx MTg4NzIgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzLmguZmlwcwky MDEzLTA5LTI3IDE0OjMyOjM1LjMzNzY2NTAyMCArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9maXBzL2ZpcHMuaAkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzNzY2NTAyMCArMDIwMAogQEAg LTAsMCArMSwyNzkgQEAKICsvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKyAqIENvcHlyaWdodCAoYykgMjAwMyBU aGUgT3BlblNTTCBQcm9qZWN0LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTE1MTYyLDggKzE1 MTc5LDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwcy5oLmZpcHMg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwcy4KICsjZW5kaWYKICsjZW5kaWYKIGRpZmYg LXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfaG1hY19zZWxmdGVzdC5jLmZpcHMg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19obWFjX3NlbGZ0ZXN0LmMKLS0tLSBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2htYWNfc2VsZnRlc3QuYy5maXBzCTIwMTMtMDIt MTkgMTI6NDc6MzMuNzM5MTE4ODcyICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Zp cHMvZmlwc19obWFjX3NlbGZ0ZXN0LmMJMjAxMy0wMi0xOSAxMjo0NzozMy43NDAxMTg4OTMgKzAx MDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2htYWNfc2VsZnRlc3QuYy5m aXBzCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM3NjY1MDIwICswMjAwCisrKysgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvZmlwc19obWFjX3NlbGZ0ZXN0LmMJMjAxMy0wOS0yNyAxNDozMjozNS4z Mzc2NjUwMjAgKzAyMDAKIEBAIC0wLDAgKzEsMTM3IEBACiArLyogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBD b3B5cmlnaHQgKGMpIDIwMDUgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2 ZWQuCkBAIC0xNTMwMyw4ICsxNTMyMCw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9maXBzL2ZpcHNfaG1hY19zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5CiArICAg IH0KICsjZW5kaWYKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfbG9j bC5oLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19sb2NsLmgKLS0tLSBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2xvY2wuaC5maXBzCTIwMTMtMDItMTkgMTI6NDc6 MzMuNzQwMTE4ODkzICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19s b2NsLmgJMjAxMy0wMi0xOSAxMjo0NzozMy43NDAxMTg4OTMgKzAxMDAKKy0tLSBvcGVuc3NsLTEu MC4xZS9jcnlwdG8vZmlwcy9maXBzX2xvY2wuaC5maXBzCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM3 NjY1MDIwICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19sb2NsLmgJ MjAxMy0wOS0yNyAxNDozMjozNS4zMzc2NjUwMjAgKzAyMDAKIEBAIC0wLDAgKzEsNzEgQEAKICsv KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogKyAqIENvcHlyaWdodCAoYykgMjAxMSBUaGUgT3BlblNTTCBQcm9qZWN0 LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTE1Mzc4LDggKzE1Mzk1LDggQEAgZGlmZiAtdXAg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19sb2NsLmguZmlwcyBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy8KICsjZW5kaWYKICsjZW5kaWYKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9maXBzL2ZpcHNfbWQuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2Zp cHNfbWQuYwotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfbWQuYy5maXBzCTIw MTMtMDItMTkgMTI6NDc6MzMuNzQwMTE4ODkzICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2ZpcHMvZmlwc19tZC5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQwMTE4ODkzICswMTAwCist LS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19tZC5jLmZpcHMJMjAxMy0wOS0yNyAx NDozMjozNS4zMzg2NjUwNDMgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9m aXBzX21kLmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMzg2NjUwNDMgKzAyMDAKIEBAIC0wLDAgKzEs MTQ1IEBACiArLyogZmlwcy9ldnAvZmlwc19tZC5jICovCiArLyogQ29weXJpZ2h0IChDKSAxOTk1 LTE5OTggRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pCkBAIC0xNTUyNyw4ICsxNTU0NCw4 IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfbWQuYy5maXBzIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpCiArCQl9CiArCX0KIGRpZmYgLXVwIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcG9zdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2ZpcHMvZmlwc19wb3N0LmMKLS0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3Bv c3QuYy5maXBzCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQwMTE4ODkzICswMTAwCi0rKysgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19wb3N0LmMJMjAxMy0wMi0xOSAxMjo0NzozMy43NDAx MTg4OTMgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3Bvc3QuYy5m aXBzCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM4NjY1MDQzICswMjAwCisrKysgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvZmlwc19wb3N0LmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMzg2NjUwNDMg KzAyMDAKIEBAIC0wLDAgKzEsMjA1IEBACiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQg KGMpIDIwMTEgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0x NTczNiw4ICsxNTc1Myw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2Zp cHNfcG9zdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvCiArCX0KICsjZW5kaWYK IGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcmFuZC5jLmZpcHMgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yYW5kLmMKLS0tLSBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vZmlwcy9maXBzX3JhbmQuYy5maXBzCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQwMTE4ODkz ICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yYW5kLmMJMjAxMy0w Mi0xOSAxMjo0NzozMy43NDAxMTg4OTMgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v Zmlwcy9maXBzX3JhbmQuYy5maXBzCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM4NjY1MDQzICswMjAw CisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yYW5kLmMJMjAxMy0wOS0yNyAx NDozMjozNS4zMzg2NjUwNDMgKzAyMDAKIEBAIC0wLDAgKzEsNDU3IEBACiArLyogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIwMDcgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCkBAIC0xNjE5Nyw4ICsxNjIxNCw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9maXBzL2ZpcHNfcmFuZC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Zp cHMvCiArCiArI2VuZGlmCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBz X3JhbmQuaC5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcmFuZC5oCi0tLS0g b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yYW5kLmguZmlwcwkyMDEzLTAyLTE5IDEy OjQ3OjMzLjc0MDExODg5MyArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2Zp cHNfcmFuZC5oCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQxMTE4OTE0ICswMTAwCistLS0gb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yYW5kLmguZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1 LjMzODY2NTA0MyArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcmFu ZC5oCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM4NjY1MDQzICswMjAwCiBAQCAtMCwwICsxLDE0NSBA QAogKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiArICogQ29weXJpZ2h0IChjKSAyMDAzIFRoZSBPcGVuU1NMIFBy b2plY3QuICBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMTYzNDYsOCArMTYzNjMsOCBAQCBkaWZm IC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JhbmQuaC5maXBzIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9maXBzLwogKyNlbmRpZgogKyNlbmRpZgogZGlmZiAtdXAgb3BlbnNzbC0x LjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yYW5kX2xjbC5oLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2ZpcHMvZmlwc19yYW5kX2xjbC5oCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMv Zmlwc19yYW5kX2xjbC5oLmZpcHMJMjAxMy0wMi0xOSAxMjo0NzozMy43NDExMTg5MTQgKzAxMDAK LSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JhbmRfbGNsLmgJMjAxMy0wMi0x OSAxMjo0NzozMy43NDExMTg5MTQgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlw cy9maXBzX3JhbmRfbGNsLmguZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzODY2NTA0MyArMDIw MAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcmFuZF9sY2wuaAkyMDEzLTA5 LTI3IDE0OjMyOjM1LjMzODY2NTA0MyArMDIwMAogQEAgLTAsMCArMSwyMTkgQEAKICsvKiBmaXBz L3JhbmQvZmlwc19yYW5kX2xjbC5oICovCiArLyogV3JpdHRlbiBieSBEciBTdGVwaGVuIE4gSGVu c29uIChzdGV2ZUBvcGVuc3NsLm9yZykgZm9yIHRoZSBPcGVuU1NMCkBAIC0xNjU2OSw4ICsxNjU4 Niw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcmFuZF9sY2wu aC5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9mCiArI2RlZmluZSBGSVBTX2RpZ2VzdGZpbmFs IEVWUF9EaWdlc3RGaW5hbAogKyNkZWZpbmUgTV9FVlBfTURfc2l6ZSBFVlBfTURfc2l6ZQogZGlm ZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yYW5kX2xpYi5jLmZpcHMgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yYW5kX2xpYi5jCi0tLS0gb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvZmlwc19yYW5kX2xpYi5jLmZpcHMJMjAxMy0wMi0xOSAxMjo0NzozMy43 NDExMTg5MTQgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JhbmRf bGliLmMJMjAxMy0wMi0xOSAxMjo0NzozMy43NDExMTg5MTQgKzAxMDAKKy0tLSBvcGVuc3NsLTEu MC4xZS9jcnlwdG8vZmlwcy9maXBzX3JhbmRfbGliLmMuZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1 LjMzOTY2NTA2NSArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcmFu ZF9saWIuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzOTY2NTA2NSArMDIwMAogQEAgLTAsMCArMSwx OTEgQEAKICsvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogKyAqIENvcHlyaWdodCAoYykgMjAxMSBUaGUgT3BlblNT TCBQcm9qZWN0LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTE2NzY0LDggKzE2NzgxLDggQEAg ZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yYW5kX2xpYi5jLmZpcHMg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2YKICsJcmV0dXJuIDA7CiArCX0KIGRpZmYgLXVwIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcmFuZF9zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0x LjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yYW5kX3NlbGZ0ZXN0LmMKLS0tLSBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9maXBzX3JhbmRfc2VsZnRlc3QuYy5maXBzCTIwMTMtMDItMTkgMTI6NDc6 MzMuNzQxMTE4OTE0ICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19y YW5kX3NlbGZ0ZXN0LmMJMjAxMy0wMi0xOSAxMjo0NzozMy43NDExMTg5MTQgKzAxMDAKKy0tLSBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JhbmRfc2VsZnRlc3QuYy5maXBzCTIwMTMt MDktMjcgMTQ6MzI6MzUuMzM5NjY1MDY1ICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2ZpcHMvZmlwc19yYW5kX3NlbGZ0ZXN0LmMJMjAxMy0wOS0yNyAxNDozMjozNS4zMzk2NjUwNjUg KzAyMDAKIEBAIC0wLDAgKzEsMTgzIEBACiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQg KGMpIDIwMDMgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0x Njk1MSw4ICsxNjk2OCw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2Zp cHNfcmFuZF9zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5CiArCiArI2VuZGlmCiBk aWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JhbmR0ZXN0LmMuZmlwcyBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JhbmR0ZXN0LmMKLS0tLSBvcGVuc3NsLTEu MC4xZS9jcnlwdG8vZmlwcy9maXBzX3JhbmR0ZXN0LmMuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMz Ljc0MTExODkxNCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcmFu ZHRlc3QuYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjc0MTExODkxNCArMDEwMAorLS0tIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcmFuZHRlc3QuYy5maXBzCTIwMTMtMDktMjcgMTQ6MzI6 MzUuMzM5NjY1MDY1ICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19y YW5kdGVzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM5NjY1MDY1ICswMjAwCiBAQCAtMCwwICsx LDI1MCBAQAogKy8qIENvcHlyaWdodCAoQykgMTk5NS0xOTk4IEVyaWMgWW91bmcgKGVheUBjcnlw dHNvZnQuY29tKQogKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xNzIwNSw4ICsxNzIyMiw4 IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcmFuZHRlc3QuYy5m aXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9mCiArCiArI2VuZGlmCiBkaWZmIC11cCBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JzYV9zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvZmlwc19yc2Ffc2VsZnRlc3QuYwotLS0tIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9maXBzL2ZpcHNfcnNhX3NlbGZ0ZXN0LmMuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjc0 MjExODkzNSArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcnNhX3Nl bGZ0ZXN0LmMJMjAxMy0wMi0xOSAxMjo0NzozMy43NDIxMTg5MzUgKzAxMDAKKy0tLSBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JzYV9zZWxmdGVzdC5jLmZpcHMJMjAxMy0wOS0yNyAx NDozMjozNS4zMzk2NjUwNjUgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9m aXBzX3JzYV9zZWxmdGVzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzM5NjY1MDY1ICswMjAwCiBA QCAtMCwwICsxLDQ0NCBAQAogKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiArICogQ29weXJpZ2h0IChjKSAyMDAz LTIwMDcgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xNzY1 Myw4ICsxNzY3MCw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNf cnNhX3NlbGZ0ZXN0LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwCiArCiArI2VuZGlmIC8qIGRl ZiBPUEVOU1NMX0ZJUFMgKi8KIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2Zp cHNfcnNhX3g5MzFnLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JzYV94 OTMxZy5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yc2FfeDkzMWcuYy5m aXBzCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQyMTE4OTM1ICswMTAwCi0rKysgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvZmlwc19yc2FfeDkzMWcuYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjc0MjEx ODkzNSArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcnNhX3g5MzFn LmMuZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1LjMzOTY2NTA2NSArMDIwMAorKysrIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcnNhX3g5MzFnLmMJMjAxMy0wOS0yNyAxNDozMjozNS4z Mzk2NjUwNjUgKzAyMDAKIEBAIC0wLDAgKzEsMjgyIEBACiArLyogY3J5cHRvL3JzYS9yc2FfZ2Vu LmMgKi8KICsvKiBDb3B5cmlnaHQgKEMpIDE5OTUtMTk5OCBFcmljIFlvdW5nIChlYXlAY3J5cHRz b2Z0LmNvbSkKQEAgLTE3OTM5LDggKzE3OTU2LDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL2ZpcHMvZmlwc19yc2FfeDkzMWcuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by8K ICsKICsJfQogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19zaGFfc2Vs ZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfc2hhX3NlbGZ0ZXN0 LmMKLS0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3NoYV9zZWxmdGVzdC5jLmZp cHMJMjAxMy0wMi0xOSAxMjo0NzozMy43NDIxMTg5MzUgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9maXBzX3NoYV9zZWxmdGVzdC5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQy MTE4OTM1ICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19zaGFfc2Vs ZnRlc3QuYy5maXBzCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzQwNjY1MDg4ICswMjAwCisrKysgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19zaGFfc2VsZnRlc3QuYwkyMDEzLTA5LTI3IDE0 OjMyOjM1LjM0MDY2NTA4OCArMDIwMAogQEAgLTAsMCArMSwxNDAgQEAKICsvKiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogKyAqIENvcHlyaWdodCAoYykgMjAwMyBUaGUgT3BlblNTTCBQcm9qZWN0LiAgQWxsIHJpZ2h0 cyByZXNlcnZlZC4KQEAgLTE4MDgzLDggKzE4MTAwLDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2ZpcHMvZmlwc19zaGFfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2Ny eXAKICsKICsjZW5kaWYKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNf c3RhbmRhbG9uZV9obWFjLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3N0 YW5kYWxvbmVfaG1hYy5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19zdGFu ZGFsb25lX2htYWMuYy5maXBzCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQyMTE4OTM1ICswMTAwCi0r Kysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19zdGFuZGFsb25lX2htYWMuYwkyMDEz LTAyLTE5IDEyOjQ3OjMzLjc0MjExODkzNSArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9maXBzL2ZpcHNfc3RhbmRhbG9uZV9obWFjLmMuZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1LjM0 MDY2NTA4OCArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfc3RhbmRh bG9uZV9obWFjLmMJMjAxMy0wOS0yNyAxNDozMjozNS4zNDA2NjUwODggKzAyMDAKIEBAIC0wLDAg KzEsMTgwIEBACiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIwMDMgVGhlIE9w ZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xODI2Nyw4ICsxODI4NCw4 IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfc3RhbmRhbG9uZV9o bWFjLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jCiArCiArCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vZmlwcy9maXBzX3Rlc3Rfc3VpdGUuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9maXBzL2ZpcHNfdGVzdF9zdWl0ZS5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMv Zmlwc190ZXN0X3N1aXRlLmMuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjc0MzExODk1NSArMDEw MAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfdGVzdF9zdWl0ZS5jCTIwMTMt MDItMTkgMTI6NDc6MzMuNzQzMTE4OTU1ICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2ZpcHMvZmlwc190ZXN0X3N1aXRlLmMuZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM1LjM0MDY2NTA4 OCArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfdGVzdF9zdWl0ZS5j CTIwMTMtMDktMjcgMTQ6MzI6MzUuMzQwNjY1MDg4ICswMjAwCiBAQCAtMCwwICsxLDU4OCBAQAog Ky8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiArICogQ29weXJpZ2h0IChjKSAyMDAzIFRoZSBPcGVuU1NMIFByb2pl Y3QuICBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMTg4NTksOCArMTg4NzYsOCBAQCBkaWZmIC11 cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3Rlc3Rfc3VpdGUuYy5maXBzIG9wZW5z c2wtMS4wLjFlL2NyeXB0bwogKwogKyNlbmRpZgogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2ZpcHMvTWFrZWZpbGUuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9NYWtlZmls ZQotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL01ha2VmaWxlLmZpcHMJMjAxMy0wMi0x OSAxMjo0NzozMy43NDMxMTg5NTUgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlw cy9NYWtlZmlsZQkyMDEzLTAyLTE5IDEyOjQ3OjMzLjc0MzExODk1NSArMDEwMAorLS0tIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9maXBzL01ha2VmaWxlLmZpcHMJMjAxMy0wOS0yNyAxNDozMjozNS4z NDA2NjUwODggKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9NYWtlZmlsZQky MDEzLTA5LTI3IDE0OjMyOjM1LjM0MDY2NTA4OCArMDIwMAogQEAgLTAsMCArMSwzNDAgQEAKICsj CiArIyBPcGVuU1NML2NyeXB0by9maXBzL01ha2VmaWxlCkBAIC0xOTIwNCw3ICsxOTIyMSw3IEBA IGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL01ha2VmaWxlLmZpcHMgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2ZpcHMvTWFrCiArZmlwc19zaGFfc2VsZnRlc3QubzogLi4vLi4vaW5j bHVkZS9vcGVuc3NsL3N5bWhhY2tzLmggZmlwc19zaGFfc2VsZnRlc3QuYwogZGlmZiAtdXAgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2htYWMvaG1hYy5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2htYWMvaG1hYy5jCiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2htYWMvaG1hYy5jLmZpcHMJ MjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vaG1hYy9obWFjLmMJMjAxMy0wMi0xOSAxMjo0NzozMy43NDMxMTg5NTUgKzAxMDAKKysr KyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vaG1hYy9obWFjLmMJMjAxMy0wOS0yNyAxNDozMjozNS4z NDA2NjUwODggKzAyMDAKIEBAIC04MSwxMSArODEsNiBAQCBpbnQgSE1BQ19Jbml0X2V4KEhNQUNf Q1RYICpjdHgsIGNvbnN0IHZvCiAgCQkJRVZQZXJyKEVWUF9GX0hNQUNfSU5JVF9FWCwgRVZQX1Jf RElTQUJMRURfRk9SX0ZJUFMpOwogIAkJCXJldHVybiAwOwpAQCAtMTkyNjcsOSArMTkyODQsMjEg QEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2htYWMvaG1hYy5jLmZpcHMgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2htYWMvaG1hYy4KICAJRVZQX01EX0NUWF9jbGVhbnVwKCZjdHgtPmlf Y3R4KTsKICAJRVZQX01EX0NUWF9jbGVhbnVwKCZjdHgtPm9fY3R4KTsKICAJRVZQX01EX0NUWF9j bGVhbnVwKCZjdHgtPm1kX2N0eCk7CitkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vbWRj Mi9tZGMyZGdzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL21kYzIvbWRjMmRnc3QuYwor LS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tZGMyL21kYzJkZ3N0LmMuZmlwcwkyMDEzLTAyLTEx IDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tZGMy L21kYzJkZ3N0LmMJMjAxMy0wOS0yNyAxNDozMjozNS4zNDE2NjUxMTAgKzAyMDAKK0BAIC03Niw3 ICs3Niw3IEBACisgCQkJKigoYykrKyk9KHVuc2lnbmVkIGNoYXIpKCgobCk+PjI0TCkmMHhmZikp CisgCisgc3RhdGljIHZvaWQgbWRjMl9ib2R5KE1EQzJfQ1RYICpjLCBjb25zdCB1bnNpZ25lZCBj aGFyICppbiwgc2l6ZV90IGxlbik7CistZmlwc19tZF9pbml0KE1EQzIpCisrbm9uZmlwc19tZF9p bml0KE1EQzIpCisgCXsKKyAJYy0+bnVtPTA7CisgCWMtPnBhZF90eXBlPTE7CiBkaWZmIC11cCBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vbWQyL21kMl9kZ3N0LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vbWQyL21kMl9kZ3N0LmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vbWQyL21kMl9k Z3N0LmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9tZDIvbWQyX2Rnc3QuYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjc0MzEx ODk1NSArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tZDIvbWQyX2Rnc3QuYwkyMDEz LTA5LTI3IDE0OjMyOjM1LjM0MTY2NTExMCArMDIwMAogQEAgLTYyLDYgKzYyLDExIEBACiAgI2lu Y2x1ZGUgPG9wZW5zc2wvbWQyLmg+CiAgI2luY2x1ZGUgPG9wZW5zc2wvb3BlbnNzbHYuaD4KQEAg LTE5MjkzLDcgKzE5MzIyLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL21kMi9t ZDJfZGdzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL21kMi9tZDIKICAJbWVtc2V0KGMt PnN0YXRlLDAsc2l6ZW9mIGMtPnN0YXRlKTsKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9tZDQvbWQ0X2Rnc3QuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tZDQvbWQ0X2Rnc3Qu YwogLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tZDQvbWQ0X2Rnc3QuYy5maXBzCTIwMTMtMDIt MTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL21k NC9tZDRfZGdzdC5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQ0MTE4OTc1ICswMTAwCisrKysgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL21kNC9tZDRfZGdzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzQx NjY1MTEwICswMjAwCiBAQCAtNzEsNyArNzEsNyBAQCBjb25zdCBjaGFyIE1ENF92ZXJzaW9uW109 Ik1ENCIgT1BFTlNTTF9WCiAgI2RlZmluZSBJTklUX0RBVEFfQyAodW5zaWduZWQgbG9uZykweDk4 YmFkY2ZlTAogICNkZWZpbmUgSU5JVF9EQVRBX0QgKHVuc2lnbmVkIGxvbmcpMHgxMDMyNTQ3NkwK QEAgLTE5MzA1LDcgKzE5MzM0LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL21k NC9tZDRfZGdzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL21kNC9tZDQKICAJYy0+QT1J TklUX0RBVEFfQTsKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tZDUvbWQ1X2Rnc3Qu Yy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tZDUvbWQ1X2Rnc3QuYwogLS0tIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9tZDUvbWQ1X2Rnc3QuYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAw MDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL21kNS9tZDVfZGdzdC5jCTIw MTMtMDItMTkgMTI6NDc6MzMuNzQ0MTE4OTc1ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL21kNS9tZDVfZGdzdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzQxNjY1MTEwICswMjAwCiBA QCAtNzEsNyArNzEsNyBAQCBjb25zdCBjaGFyIE1ENV92ZXJzaW9uW109Ik1ENSIgT1BFTlNTTF9W CiAgI2RlZmluZSBJTklUX0RBVEFfQyAodW5zaWduZWQgbG9uZykweDk4YmFkY2ZlTAogICNkZWZp bmUgSU5JVF9EQVRBX0QgKHVuc2lnbmVkIGxvbmcpMHgxMDMyNTQ3NkwKQEAgLTE5MzE1LDIxICsx OTM0NCw5IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tZDUvbWQ1X2Rnc3QuYy5m aXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tZDUvbWQ1CiAgCXsKICAJbWVtc2V0IChjLDAsc2l6 ZW9mKCpjKSk7CiAgCWMtPkE9SU5JVF9EQVRBX0E7Ci1kaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vbWRjMi9tZGMyZGdzdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL21kYzIvbWRj MmRnc3QuYwotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tZGMyL21kYzJkZ3N0LmMuZmlwcwky MDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9tZGMyL21kYzJkZ3N0LmMJMjAxMy0wMi0xOSAxMjo0NzozMy43NDQxMTg5NzUgKzAxMDAK LUBAIC03Niw3ICs3Niw3IEBACi0gCQkJKigoYykrKyk9KHVuc2lnbmVkIGNoYXIpKCgobCk+PjI0 TCkmMHhmZikpCi0gCi0gc3RhdGljIHZvaWQgbWRjMl9ib2R5KE1EQzJfQ1RYICpjLCBjb25zdCB1 bnNpZ25lZCBjaGFyICppbiwgc2l6ZV90IGxlbik7Ci0tZmlwc19tZF9pbml0KE1EQzIpCi0rbm9u Zmlwc19tZF9pbml0KE1EQzIpCi0gCXsKLSAJYy0+bnVtPTA7Ci0gCWMtPnBhZF90eXBlPTE7CiBk aWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vb19maXBzLmMuZmlwcyBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vb19maXBzLmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vb19maXBzLmMuZmlw cwkyMDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9vX2ZpcHMuYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjc0NDExODk3NSArMDEwMAorKysr IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9vX2ZpcHMuYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjM0MTY2 NTExMCArMDIwMAogQEAgLTc5LDYgKzc5LDggQEAgaW50IEZJUFNfbW9kZV9zZXQoaW50IHIpCiAg I2lmbmRlZiBGSVBTX0FVVEhfVVNFUl9QQVNTCiAgI2RlZmluZSBGSVBTX0FVVEhfVVNFUl9QQVNT CSJEZWZhdWx0IEZJUFMgQ3J5cHRvIFVzZXIgUGFzc3dvcmQiCkBAIC0xOTM0MSw3ICsxOTM1OCw3 IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9vX2ZpcHMuYy5maXBzIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9vX2ZpcHMuYwogIAlpZiAocikKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9vX2luaXQuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9vX2luaXQuYwogLS0t IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9vX2luaXQuYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQu MDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL29faW5pdC5jCTIwMTMt MDgtMTUgMTY6MTQ6NDMuMDY5MjIxNTgwICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRv L29faW5pdC5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzQxNjY1MTEwICswMjAwCiBAQCAtNTUsMjgg KzU1LDY4IEBACiAgI2luY2x1ZGUgPGVfb3MuaD4KICAjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4K QEAgLTE5NDE3LDcgKzE5NDM0LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL29f aW5pdC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL29faW5pdC5jCiArCX0KIGRpZmYgLXVw IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9vcGVuc3NsY29uZi5oLmluLmZpcHMgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL29wZW5zc2xjb25mLmguaW4KIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vb3Bl bnNzbGNvbmYuaC5pbi5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0r Kysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL29wZW5zc2xjb25mLmguaW4JMjAxMy0wMi0xOSAxMjo0 NzozMy43NDQxMTg5NzUgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vb3BlbnNzbGNv bmYuaC5pbgkyMDEzLTA5LTI3IDE0OjMyOjM1LjM0MTY2NTExMCArMDIwMAogQEAgLTEsNSArMSwy MCBAQAogIC8qIGNyeXB0by9vcGVuc3NsY29uZi5oLmluICovCiAgCkBAIC0xOTQ0MSw3ICsxOTQ1 OCw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9vcGVuc3NsY29uZi5oLmluLmZp cHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL29wZW5zCiAgCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vcGtjczEyL3AxMl9jcnQuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9wa2Nz MTIvcDEyX2NydC5jCiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3BrY3MxMi9wMTJfY3J0LmMu ZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9wa2NzMTIvcDEyX2NydC5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQ0MTE4OTc1 ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3BrY3MxMi9wMTJfY3J0LmMJMjAxMy0w OS0yNyAxNDozMjozNS4zNDE2NjUxMTAgKzAyMDAKIEBAIC01OSw2ICs1OSwxMCBAQAogICNpbmNs dWRlIDxzdGRpby5oPgogICNpbmNsdWRlICJjcnlwdGxpYi5oIgpAQCAtMTk0NzAsNyArMTk0ODcs NyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcGtjczEyL3AxMl9jcnQuYy5maXBz IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9wa2NzMQogIAlpZiAoIWl0ZXIpCiBkaWZmIC11cCBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9tZF9yYW5kLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlw dG8vcmFuZC9tZF9yYW5kLmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9tZF9yYW5k LmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9yYW5kL21kX3JhbmQuYwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjc0NTExODk5 NSArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL21kX3JhbmQuYwkyMDEzLTA5 LTI3IDE0OjMyOjM1LjM0MjY2NTEzMyArMDIwMAogQEAgLTM4OSw3ICszODksMTAgQEAgc3RhdGlj IGludCBzc2xlYXlfcmFuZF9ieXRlcyh1bnNpZ25lZCBjaAogIAlDUllQVE9fd191bmxvY2soQ1JZ UFRPX0xPQ0tfUkFORDIpOwogIAljcnlwdG9fbG9ja19yYW5kID0gMTsKQEAgLTE5NDg0LDggKzE5 NTAxLDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JhbmQvbWRfcmFuZC5jLmZp cHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JhbmQvbWQKICAJCVJBTkRfcG9sbCgpOwogIAkJaW5p dGlhbGl6ZWQgPSAxOwogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JhbmQvcmFuZC5o LmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JhbmQvcmFuZC5oCi0tLS0gb3BlbnNzbC0xLjAu MWUvY3J5cHRvL3JhbmQvcmFuZC5oLmZpcHMJMjAxMy0wMi0xOSAxMjo0NzozMy4xNzYxMDc0MzAg KzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9yYW5kLmgJMjAxMy0wMi0xOSAx Mjo0NzozMy43NDUxMTg5OTUgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9y YW5kLmguZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM0Ljg0NzY1Mzk5MCArMDIwMAorKysrIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9yYW5kL3JhbmQuaAkyMDEzLTA5LTI3IDE0OjMyOjM1LjM0MjY2NTEz MyArMDIwMAogQEAgLTEzMywxNSArMTMzLDMzIEBAIHZvaWQgRVJSX2xvYWRfUkFORF9zdHJpbmdz KHZvaWQpOwogIC8qIEVycm9yIGNvZGVzIGZvciB0aGUgUkFORCBmdW5jdGlvbnMuICovCiAgCkBA IC0xOTUyNiw3ICsxOTU0Myw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5k L3JhbmQuaC5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3JhbmQuCiAgfQogZGlmZiAt dXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JpcGVtZC9ybWRfZGdzdC5jLmZpcHMgb3BlbnNzbC0x LjAuMWUvY3J5cHRvL3JpcGVtZC9ybWRfZGdzdC5jCiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L3JpcGVtZC9ybWRfZGdzdC5jLmZpcHMJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmlwZW1kL3JtZF9kZ3N0LmMJMjAxMy0wMi0x OSAxMjo0NzozMy43NDUxMTg5OTUgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmlw ZW1kL3JtZF9kZ3N0LmMJMjAxMy0wOS0yNyAxNDozMjozNS4zNDI2NjUxMzMgKzAyMDAKIEBAIC03 MCw3ICs3MCw3IEBAIGNvbnN0IGNoYXIgUk1EMTYwX3ZlcnNpb25bXT0iUklQRS1NRDE2MCIKICAg ICAgIHZvaWQgcmlwZW1kMTYwX2Jsb2NrKFJJUEVNRDE2MF9DVFggKmMsIHVuc2lnbmVkIGxvbmcg KnAsc2l6ZV90IG51bSk7CiAgIyAgZW5kaWYKQEAgLTE5NTM4LDcgKzE5NTU1LDcgQEAgZGlmZiAt dXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JpcGVtZC9ybWRfZGdzdC5jLmZpcHMgb3BlbnNzbC0x LjAuMWUvY3J5cHRvL3JpcGUKICAJYy0+QT1SSVBFTUQxNjBfQTsKIGRpZmYgLXVwIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9yc2EvcnNhX2NycHQuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9y c2EvcnNhX2NycHQuYwogLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX2NycHQuYy5m aXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL3JzYS9yc2FfY3JwdC5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQ1MTE4OTk1ICsw MTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2FfY3JwdC5jCTIwMTMtMDktMjcg MTQ6MzI6MzUuMzQyNjY1MTMzICswMjAwCiBAQCAtOTAsMTAgKzkwLDkgQEAgaW50IFJTQV9wcml2 YXRlX2VuY3J5cHQoaW50IGZsZW4sIGNvbnN0CiAgCSAgICAgUlNBICpyc2EsIGludCBwYWRkaW5n KQogIAl7CkBAIC0xOTU2Nyw3ICsxOTU4NCw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9yc2EvcnNhX2NycHQuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhCiAg I2VuZGlmCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYV9lYXkuYy5maXBz IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX2VheS5jCiAtLS0gb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL3JzYS9yc2FfZWF5LmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCAr MDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX2VheS5jCTIwMTMtMDItMTkg MTI6NDc6MzMuNzQ1MTE4OTk1ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9y c2FfZWF5LmMJMjAxMy0wOS0yNyAxNDozMjozNS4zNDI2NjUxMzMgKzAyMDAKIEBAIC0xMTQsNiAr MTE0LDEwIEBACiAgI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KICAjaW5jbHVkZSA8b3BlbnNzbC9y c2EuaD4KQEAgLTE5NzAwLDcgKzE5NzE3LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL3JzYS9yc2FfZWF5LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYV8KICAJ fQogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2FfZXJyLmMuZmlwcyBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYV9lcnIuYwogLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9yc2EvcnNhX2Vyci5jLmZpcHMJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYV9lcnIuYwkyMDEzLTAyLTE5IDEyOjQ3 OjMzLjc0NjExOTAxNSArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX2Vy ci5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzQyNjY1MTMzICswMjAwCiBAQCAtMTIxLDYgKzEyMSw4 IEBAIHN0YXRpYyBFUlJfU1RSSU5HX0RBVEEgUlNBX3N0cl9mdW5jdHNbXT0KICB7RVJSX0ZVTkMo UlNBX0ZfUlNBX1BVQkxJQ19FTkNSWVBUKSwJIlJTQV9wdWJsaWNfZW5jcnlwdCJ9LAogIHtFUlJf RlVOQyhSU0FfRl9SU0FfUFVCX0RFQ09ERSksCSJSU0FfUFVCX0RFQ09ERSJ9LApAQCAtMTk3MTIs NyArMTk3MjksNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYV9lcnIu Yy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhXwogIHtFUlJfRlVOQyhSU0FfRl9S U0FfVkVSSUZZKSwJIlJTQV92ZXJpZnkifSwKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9yc2EvcnNhX2dlbi5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2FfZ2VuLmMK IC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYV9nZW4uYy5maXBzCTIwMTMtMDItMTEg MTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9y c2FfZ2VuLmMJMjAxMy0wMi0xOSAxMjo0NzozMy43NDYxMTkwMTUgKzAxMDAKKysrKyBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vcnNhL3JzYV9nZW4uYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjM0MzY2NTE1 NSArMDIwMAogQEAgLTY5LDYgKzY5LDc4IEBACiAgI2luY2x1ZGUgPG9wZW5zc2wvcnNhLmg+CiAg I2lmZGVmIE9QRU5TU0xfRklQUwpAQCAtMTk4NTUsOCArMTk4NzIsOCBAQCBkaWZmIC11cCBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYV9nZW4uYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0 by9yc2EvcnNhXwogIGVycjoKICAJaWYgKG9rID09IC0xKQogZGlmZiAtdXAgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL3JzYS9yc2EuaC5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhLmgK LS0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYS5oLmZpcHMJMjAxMy0wMi0xOSAxMjo0 NzozMy40ODUxMTM3MTAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYS5o CTIwMTMtMDItMTkgMTI6NDc6MzMuNzQ2MTE5MDE1ICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL3JzYS9yc2EuaC5maXBzCTIwMTMtMDktMjcgMTQ6MzI6MzQuOTkxNjU3MjMyICswMjAw CisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2EuaAkyMDEzLTA5LTI3IDE0OjMyOjM1 LjM0MzY2NTE1NSArMDIwMAogQEAgLTE2NCw2ICsxNjQsOCBAQCBzdHJ1Y3QgcnNhX3N0CiAgIyBk ZWZpbmUgT1BFTlNTTF9SU0FfTUFYX01PRFVMVVNfQklUUwkxNjM4NAogICNlbmRpZgpAQCAtMTk5 NDMsNyArMTk5NjAsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYS5o LmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2EuaAogICNkZWZpbmUgUlNBX1JfUF9O T1RfUFJJTUUJCQkJIDEyOAogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2Ff bGliLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYV9saWIuYwogLS0tIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX2xpYi5jLmZpcHMJMjAxMy0wMi0xMSAxNjoyNjowNC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYV9saWIuYwky MDEzLTAyLTE5IDEyOjQ3OjMzLjc0NjExOTAxNSArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9yc2EvcnNhX2xpYi5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzQzNjY1MTU1ICswMjAwCiBA QCAtODQsNiArODQsMTMgQEAgUlNBICpSU0FfbmV3KHZvaWQpCiAgCiAgdm9pZCBSU0Ffc2V0X2Rl ZmF1bHRfbWV0aG9kKGNvbnN0IFJTQV9NRVRIT0QgKm1ldGgpCkBAIC0yMDAyMSw3ICsyMDAzOCw3 IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX2xpYi5jLmZpcHMgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2FfCiAgI2lmbmRlZiBPUEVOU1NMX05PX0VOR0lORQog ZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2FfcG1ldGguYy5maXBzIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX3BtZXRoLmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlw dG8vcnNhL3JzYV9wbWV0aC5jLmZpcHMJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzYV9wbWV0aC5jCTIwMTMtMDItMTkg MTI6NDc6MzMuNzQ2MTE5MDE1ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9y c2FfcG1ldGguYwkyMDEzLTA5LTI3IDE0OjMyOjM1LjM0MzY2NTE1NSArMDIwMAogQEAgLTIwNiwy MiArMjA2LDYgQEAgc3RhdGljIGludCBwa2V5X3JzYV9zaWduKEVWUF9QS0VZX0NUWCAqYwogIAkJ CQkJUlNBX1JfSU5WQUxJRF9ESUdFU1RfTEVOR1RIKTsKICAJCQlyZXR1cm4gLTE7CkBAIC0yMDA2 Nyw3ICsyMDA4NCw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX3Bt ZXRoLmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcnNhL3JzCiAgCQkJCQlzaWcsIHNpZ2xl biwgcnNhKTsKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX3NpZ24uYy5m aXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX3NpZ24uYwogLS0tIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9yc2EvcnNhX3NpZ24uYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAw MDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2Ffc2lnbi5jCTIwMTMt MDItMTkgMTI6NDc6MzMuNzQ3MTE5MDM1ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRv L3JzYS9yc2Ffc2lnbi5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzQzNjY1MTU1ICswMjAwCiBAQCAt MTM4LDcgKzEzOCw4IEBAIGludCBSU0Ffc2lnbihpbnQgdHlwZSwgY29uc3QgdW5zaWduZWQgY2gK ICAJCWkyZF9YNTA5X1NJRygmc2lnLCZwKTsKICAJCXM9dG1wczsKQEAgLTIwMDk5LDkgKzIwMTE2 LDYzIEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX3NpZ24uYy5maXBz IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhCiAgCiAgCWlmIChpIDw9IDApIGdvdG8gZXJy OwogIAkvKiBPZGRiYWxsIE1EQzIgY2FzZTogc2lnbmF0dXJlIGNhbiBiZSBPQ1RFVCBTVFJJTkcu CitkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vc2hhL3NoYS5oLmZpcHMgb3BlbnNzbC0x LjAuMWUvY3J5cHRvL3NoYS9zaGEuaAorLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9zaGEvc2hh LmguZmlwcwkyMDEzLTA5LTI3IDE0OjMyOjM0Ljc2MzY1MjA5OSArMDIwMAorKysrIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9zaGEvc2hhLmgJMjAxMy0wOS0yNyAxNDozMjozNS4zNDQ2NjUxNzggKzAy MDAKK0BAIC0xMTYsOSArMTE2LDYgQEAgdW5zaWduZWQgY2hhciAqU0hBKGNvbnN0IHVuc2lnbmVk IGNoYXIgKgorIHZvaWQgU0hBX1RyYW5zZm9ybShTSEFfQ1RYICpjLCBjb25zdCB1bnNpZ25lZCBj aGFyICpkYXRhKTsKKyAjZW5kaWYKKyAjaWZuZGVmIE9QRU5TU0xfTk9fU0hBMQorLSNpZmRlZiBP UEVOU1NMX0ZJUFMKKy1pbnQgcHJpdmF0ZV9TSEExX0luaXQoU0hBX0NUWCAqYyk7CistI2VuZGlm CisgaW50IFNIQTFfSW5pdChTSEFfQ1RYICpjKTsKKyBpbnQgU0hBMV9VcGRhdGUoU0hBX0NUWCAq YywgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbik7CisgaW50IFNIQTFfRmluYWwodW5zaWdu ZWQgY2hhciAqbWQsIFNIQV9DVFggKmMpOworQEAgLTE0MSwxMCArMTM4LDYgQEAgdHlwZWRlZiBz dHJ1Y3QgU0hBMjU2c3RhdGVfc3QKKyAJfSBTSEEyNTZfQ1RYOworIAorICNpZm5kZWYgT1BFTlNT TF9OT19TSEEyNTYKKy0jaWZkZWYgT1BFTlNTTF9GSVBTCistaW50IHByaXZhdGVfU0hBMjI0X0lu aXQoU0hBMjU2X0NUWCAqYyk7CistaW50IHByaXZhdGVfU0hBMjU2X0luaXQoU0hBMjU2X0NUWCAq Yyk7CistI2VuZGlmCisgaW50IFNIQTIyNF9Jbml0KFNIQTI1Nl9DVFggKmMpOworIGludCBTSEEy MjRfVXBkYXRlKFNIQTI1Nl9DVFggKmMsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pOwor IGludCBTSEEyMjRfRmluYWwodW5zaWduZWQgY2hhciAqbWQsIFNIQTI1Nl9DVFggKmMpOworQEAg LTE5MiwxMCArMTg1LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgU0hBNTEyc3RhdGVfc3QKKyAjZW5kaWYK KyAKKyAjaWZuZGVmIE9QRU5TU0xfTk9fU0hBNTEyCistI2lmZGVmIE9QRU5TU0xfRklQUworLWlu dCBwcml2YXRlX1NIQTM4NF9Jbml0KFNIQTUxMl9DVFggKmMpOworLWludCBwcml2YXRlX1NIQTUx Ml9Jbml0KFNIQTUxMl9DVFggKmMpOworLSNlbmRpZgorIGludCBTSEEzODRfSW5pdChTSEE1MTJf Q1RYICpjKTsKKyBpbnQgU0hBMzg0X1VwZGF0ZShTSEE1MTJfQ1RYICpjLCBjb25zdCB2b2lkICpk YXRhLCBzaXplX3QgbGVuKTsKKyBpbnQgU0hBMzg0X0ZpbmFsKHVuc2lnbmVkIGNoYXIgKm1kLCBT SEE1MTJfQ1RYICpjKTsKK2RpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9zaGEvc2hhX2xv Y2wuaC5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9zaGEvc2hhX2xvY2wuaAorLS0tIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9zaGEvc2hhX2xvY2wuaC5maXBzCTIwMTMtMDktMjcgMTQ6MzI6MzQu NzY1NjUyMTQ0ICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3NoYS9zaGFfbG9jbC5o CTIwMTMtMDktMjcgMTQ6MzI6MzUuMzQ0NjY1MTc4ICswMjAwCitAQCAtMTIzLDExICsxMjMsMTQg QEAgdm9pZCBzaGExX2Jsb2NrX2RhdGFfb3JkZXIgKFNIQV9DVFggKmMsCisgI2RlZmluZSBJTklU X0RBVEFfaDQgMHhjM2QyZTFmMFVMCisgCisgI2lmZGVmIFNIQV8wCistZmlwc19tZF9pbml0KFNI QSkKKytub25maXBzX21kX2luaXQoU0hBKQorICNlbHNlCisgZmlwc19tZF9pbml0X2N0eChTSEEx LCBTSEEpCisgI2VuZGlmCisgCXsKKysjaWYgZGVmaW5lZChTSEFfMSkgJiYgZGVmaW5lZChPUEVO U1NMX0ZJUFMpCisrCUZJUFNfc2VsZnRlc3RfY2hlY2soKTsKKysjZW5kaWYKKyAJbWVtc2V0IChj LDAsc2l6ZW9mKCpjKSk7CisgCWMtPmgwPUlOSVRfREFUQV9oMDsKKyAJYy0+aDE9SU5JVF9EQVRB X2gxOwogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3NoYS9zaGEyNTYuYy5maXBzIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9zaGEvc2hhMjU2LmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlw dG8vc2hhL3NoYTI1Ni5jLmZpcHMJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vc2hhL3NoYTI1Ni5jCTIwMTMtMDItMTkgMTI6NDc6 MzMuNzQ3MTE5MDM1ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3NoYS9zaGEyNTYu YwkyMDEzLTA5LTI3IDE0OjMyOjM1LjM0MzY2NTE1NSArMDIwMAogQEAgLTEyLDEyICsxMiwxOSBA QAogIAogICNpbmNsdWRlIDxvcGVuc3NsL2NyeXB0by5oPgpAQCAtMjAxMzQsNyArMjAyMDUsNyBA QCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vc2hhL3NoYTI1Ni5jLmZpcHMgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL3NoYS9zaGEyNQogIAljLT5oWzJdPTB4M2M2ZWYzNzJVTDsJYy0+aFsz XT0weGE1NGZmNTNhVUw7CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vc2hhL3NoYTUx Mi5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3NoYS9zaGE1MTIuYwogLS0tIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9zaGEvc2hhNTEyLmMuZmlwcwkyMDEzLTAyLTExIDE2OjI2OjA0LjAwMDAw MDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9zaGEvc2hhNTEyLmMJMjAxMy0w Mi0xOSAxMjo0NzozMy43NDcxMTkwMzUgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v c2hhL3NoYTUxMi5jCTIwMTMtMDktMjcgMTQ6MzI6MzUuMzQ0NjY1MTc4ICswMjAwCiBAQCAtNSw2 ICs1LDEwIEBACiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgKi8KQEAgLTIwMTY2LDYzICsyMDIzNyw5IEBA IGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9zaGEvc2hhNTEyLmMuZmlwcyBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vc2hhL3NoYTUxCiAgCWMtPmhbMF09VTY0KDB4NmEwOWU2NjdmM2JjYzkw OCk7CiAgCWMtPmhbMV09VTY0KDB4YmI2N2FlODU4NGNhYTczYik7CiAgCWMtPmhbMl09VTY0KDB4 M2M2ZWYzNzJmZTk0ZjgyYik7Ci1kaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vc2hhL3No YS5oLmZpcHMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3NoYS9zaGEuaAotLS0tIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9zaGEvc2hhLmguZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMyLjk4NjEwMzU2OCAr MDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9zaGEvc2hhLmgJMjAxMy0wMi0xOSAxMjo0 NzozMy43NDcxMTkwMzUgKzAxMDAKLUBAIC0xMTYsOSArMTE2LDYgQEAgdW5zaWduZWQgY2hhciAq U0hBKGNvbnN0IHVuc2lnbmVkIGNoYXIgKgotIHZvaWQgU0hBX1RyYW5zZm9ybShTSEFfQ1RYICpj LCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKTsKLSAjZW5kaWYKLSAjaWZuZGVmIE9QRU5TU0xf Tk9fU0hBMQotLSNpZmRlZiBPUEVOU1NMX0ZJUFMKLS1pbnQgcHJpdmF0ZV9TSEExX0luaXQoU0hB X0NUWCAqYyk7Ci0tI2VuZGlmCi0gaW50IFNIQTFfSW5pdChTSEFfQ1RYICpjKTsKLSBpbnQgU0hB MV9VcGRhdGUoU0hBX0NUWCAqYywgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbik7Ci0gaW50 IFNIQTFfRmluYWwodW5zaWduZWQgY2hhciAqbWQsIFNIQV9DVFggKmMpOwotQEAgLTE0MSwxMCAr MTM4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgU0hBMjU2c3RhdGVfc3QKLSAJfSBTSEEyNTZfQ1RYOwot IAotICNpZm5kZWYgT1BFTlNTTF9OT19TSEEyNTYKLS0jaWZkZWYgT1BFTlNTTF9GSVBTCi0taW50 IHByaXZhdGVfU0hBMjI0X0luaXQoU0hBMjU2X0NUWCAqYyk7Ci0taW50IHByaXZhdGVfU0hBMjU2 X0luaXQoU0hBMjU2X0NUWCAqYyk7Ci0tI2VuZGlmCi0gaW50IFNIQTIyNF9Jbml0KFNIQTI1Nl9D VFggKmMpOwotIGludCBTSEEyMjRfVXBkYXRlKFNIQTI1Nl9DVFggKmMsIGNvbnN0IHZvaWQgKmRh dGEsIHNpemVfdCBsZW4pOwotIGludCBTSEEyMjRfRmluYWwodW5zaWduZWQgY2hhciAqbWQsIFNI QTI1Nl9DVFggKmMpOwotQEAgLTE5MiwxMCArMTg1LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgU0hBNTEy c3RhdGVfc3QKLSAjZW5kaWYKLSAKLSAjaWZuZGVmIE9QRU5TU0xfTk9fU0hBNTEyCi0tI2lmZGVm IE9QRU5TU0xfRklQUwotLWludCBwcml2YXRlX1NIQTM4NF9Jbml0KFNIQTUxMl9DVFggKmMpOwot LWludCBwcml2YXRlX1NIQTUxMl9Jbml0KFNIQTUxMl9DVFggKmMpOwotLSNlbmRpZgotIGludCBT SEEzODRfSW5pdChTSEE1MTJfQ1RYICpjKTsKLSBpbnQgU0hBMzg0X1VwZGF0ZShTSEE1MTJfQ1RY ICpjLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKTsKLSBpbnQgU0hBMzg0X0ZpbmFsKHVu c2lnbmVkIGNoYXIgKm1kLCBTSEE1MTJfQ1RYICpjKTsKLWRpZmYgLXVwIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9zaGEvc2hhX2xvY2wuaC5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9zaGEvc2hh X2xvY2wuaAotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9zaGEvc2hhX2xvY2wuaC5maXBzCTIw MTMtMDItMTkgMTI6NDc6MzIuOTkxMTAzNjcwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL3NoYS9zaGFfbG9jbC5oCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQ3MTE5MDM1ICswMTAwCi1A QCAtMTIzLDExICsxMjMsMTQgQEAgdm9pZCBzaGExX2Jsb2NrX2RhdGFfb3JkZXIgKFNIQV9DVFgg KmMsCi0gI2RlZmluZSBJTklUX0RBVEFfaDQgMHhjM2QyZTFmMFVMCi0gCi0gI2lmZGVmIFNIQV8w Ci0tZmlwc19tZF9pbml0KFNIQSkKLStub25maXBzX21kX2luaXQoU0hBKQotICNlbHNlCi0gZmlw c19tZF9pbml0X2N0eChTSEExLCBTSEEpCi0gI2VuZGlmCi0gCXsKLSsjaWYgZGVmaW5lZChTSEFf MSkgJiYgZGVmaW5lZChPUEVOU1NMX0ZJUFMpCi0rCUZJUFNfc2VsZnRlc3RfY2hlY2soKTsKLSsj ZW5kaWYKLSAJbWVtc2V0IChjLDAsc2l6ZW9mKCpjKSk7Ci0gCWMtPmgwPUlOSVRfREFUQV9oMDsK LSAJYy0+aDE9SU5JVF9EQVRBX2gxOwogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3do cmxwb29sL3dwX2Rnc3QuYy5maXBzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by93aHJscG9vbC93cF9k Z3N0LmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vd2hybHBvb2wvd3BfZGdzdC5jLmZpcHMJ MjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vd2hybHBvb2wvd3BfZGdzdC5jCTIwMTMtMDItMTkgMTI6NDc6MzMuNzQ4MTE5MDU1ICsw MTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3docmxwb29sL3dwX2Rnc3QuYwkyMDEzLTA5 LTI3IDE0OjMyOjM1LjM0NDY2NTE3OCArMDIwMAogQEAgLTU1LDcgKzU1LDcgQEAKICAjaW5jbHVk ZSA8b3BlbnNzbC9jcnlwdG8uaD4KICAjaW5jbHVkZSA8c3RyaW5nLmg+CkBAIC0yMDIzMyw4ICsy MDI1MCw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by93aHJscG9vbC93cF9kZ3N0 LmMuZmlwcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vd2hyCiAgCW1lbXNldCAoYywwLHNpemVvZigq YykpOwogIAlyZXR1cm4oMSk7CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9NYWtlZmlsZS5vcmcu ZmlwcyBvcGVuc3NsLTEuMC4xZS9NYWtlZmlsZS5vcmcKLS0tLSBvcGVuc3NsLTEuMC4xZS9NYWtl ZmlsZS5vcmcuZmlwcwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjY3ODExNzYzNCArMDEwMAotKysrIG9w ZW5zc2wtMS4wLjFlL01ha2VmaWxlLm9yZwkyMDEzLTAyLTE5IDEyOjQ3OjMzLjc0ODExOTA1NSAr MDEwMAorLS0tIG9wZW5zc2wtMS4wLjFlL01ha2VmaWxlLm9yZy5maXBzCTIwMTMtMDktMjcgMTQ6 MzI6MzUuMDgxNjU5MjU4ICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWUvTWFrZWZpbGUub3JnCTIw MTMtMDktMjcgMTQ6MzI6MzUuMzQ0NjY1MTc4ICswMjAwCiBAQCAtMTM2LDYgKzEzNiw5IEBAIEZJ UFNDQU5MSUI9CiAgCiAgQkFTRUFERFI9CkBAIC0yMDI2Miw5ICsyMDI3OSwyMiBAQCBkaWZmIC11 cCBvcGVuc3NsLTEuMC4xZS9NYWtlZmlsZS5vcmcuZmlwcyBvcGVuc3NsLTEuMC4xZS9NYWtlZmls ZS5vcmcKICAJCVRISVM9JCR7VEhJUzotJEB9IE1BS0VGSUxFPU1ha2VmaWxlIE1BS0VPVkVSUklE RVM9CiAgIyBNQUtFT1ZFUlJJREVTPSBlZmZlY3RpdmVseSAiZXF1YWxpemVzIiBHTlUtaXNoIGFu ZCBTeXNWLWlzaCBtYWtlIGZsYXZvcnMsCiAgIyB3aGljaCBpbiB0dXJuIGVsaW1pbmF0ZXMgYW1i aWd1aXRpZXMgaW4gdmFyaWFibGUgdHJlYXRtZW50IHdpdGggLWUuCitkaWZmIC11cCBvcGVuc3Ns LTEuMC4xZS9zc2wvZDFfY2xudC5jLmZpcHMgb3BlbnNzbC0xLjAuMWUvc3NsL2QxX2NsbnQuYwor ZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvc3NsL2QxX3NydnIuYy5maXBzIG9wZW5zc2wtMS4wLjFl L3NzbC9kMV9zcnZyLmMKKy0tLSBvcGVuc3NsLTEuMC4xZS9zc2wvZDFfc3J2ci5jLmZpcHMJMjAx My0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9zc2wv ZDFfc3J2ci5jCTIwMTMtMDktMjcgMTU6Mjc6MDMuMDE4MjIwMzg4ICswMjAwCitAQCAtMTM3Miw2 ICsxMzcyLDggQEAgaW50IGR0bHMxX3NlbmRfc2VydmVyX2tleV9leGNoYW5nZShTU0wgKgorIAkJ CQlqPTA7CisgCQkJCWZvciAobnVtPTI7IG51bSA+IDA7IG51bS0tKQorIAkJCQkJeworKwkJCQkJ RVZQX01EX0NUWF9zZXRfZmxhZ3MoJm1kX2N0eCwKKysJCQkJCQkJCUVWUF9NRF9DVFhfRkxBR19O T05fRklQU19BTExPVyk7CisgCQkJCQlFVlBfRGlnZXN0SW5pdF9leCgmbWRfY3R4LChudW0gPT0g MikKKyAJCQkJCQk/cy0+Y3R4LT5tZDU6cy0+Y3R4LT5zaGExLCBOVUxMKTsKKyAJCQkJCUVWUF9E aWdlc3RVcGRhdGUoJm1kX2N0eCwmKHMtPnMzLT5jbGllbnRfcmFuZG9tWzBdKSxTU0wzX1JBTkRP TV9TSVpFKTsKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL3NzbC9zc2xfYWxncy5jLmZpcHMgb3Bl bnNzbC0xLjAuMWUvc3NsL3NzbF9hbGdzLmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9zc2wvc3NsX2Fs Z3MuYy5maXBzCTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNz bC0xLjAuMWUvc3NsL3NzbF9hbGdzLmMJMjAxMy0wMi0xOSAxMjo0NzozMy43NDgxMTkwNTUgKzAx MDAKKysrKyBvcGVuc3NsLTEuMC4xZS9zc2wvc3NsX2FsZ3MuYwkyMDEzLTA5LTI3IDE0OjMyOjM1 LjM0NDY2NTE3OCArMDIwMAogQEAgLTY0LDYgKzY0LDEyIEBACiAgaW50IFNTTF9saWJyYXJ5X2lu aXQodm9pZCkKICAJewoKZGlmZiAtLWdpdCBhL29wZW5zc2wuc3BlYyBiL29wZW5zc2wuc3BlYwpp bmRleCAzMzNlNzg4Li4zMmJlM2M5IDEwMDY0NAotLS0gYS9vcGVuc3NsLnNwZWMKKysrIGIvb3Bl bnNzbC5zcGVjCkBAIC0yMSw3ICsyMSw3IEBACiBTdW1tYXJ5OiBVdGlsaXRpZXMgZnJvbSB0aGUg Z2VuZXJhbCBwdXJwb3NlIGNyeXB0b2dyYXBoeSBsaWJyYXJ5IHdpdGggVExTIGltcGxlbWVudGF0 aW9uCiBOYW1lOiBvcGVuc3NsCiBWZXJzaW9uOiAxLjAuMWUKLVJlbGVhc2U6IDIzJXs/ZGlzdH0K K1JlbGVhc2U6IDI3JXs/ZGlzdH0KIEVwb2NoOiAxCiAjIFdlIGhhdmUgdG8gcmVtb3ZlIGNlcnRh aW4gcGF0ZW50ZWQgYWxnb3JpdGhtcyBmcm9tIHRoZSBvcGVuc3NsIHNvdXJjZQogIyB0YXJiYWxs IHdpdGggdGhlIGhvYmJsZS1vcGVuc3NsIHNjcmlwdCB3aGljaCBpcyBpbmNsdWRlZCBiZWxvdy4K QEAgLTc3LDYgKzc3LDcgQEAgUGF0Y2g4Mjogb3BlbnNzbC0xLjAuMWUtYmFja3BvcnRzLnBhdGNo CiBQYXRjaDgzOiBvcGVuc3NsLTEuMC4xZS1iYWQtbWFjLnBhdGNoCiBQYXRjaDg0OiBvcGVuc3Ns LTEuMC4xZS10cnVzdGVkLWZpcnN0LnBhdGNoCiBQYXRjaDg1OiBvcGVuc3NsLTEuMC4xZS1hcm0t dXNlLWVsZi1hdXh2LWNhcHMucGF0Y2gKK1BhdGNoODY6IG9wZW5zc2wtMS4wLjFlLWZpcHMtZWMu cGF0Y2gKIAogTGljZW5zZTogT3BlblNTTAogR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJy YXJpZXMKQEAgLTE5Nyw2ICsxOTgsNyBAQCBPcGVuU1NMIEZJUFMgbW9kdWxlLgogJXBhdGNoODMg LXAxIC1iIC5iYWQtbWFjCiAlcGF0Y2g4NCAtcDEgLWIgLnRydXN0ZWQtZmlyc3QKICVwYXRjaDg1 IC1wMSAtYiAuYXJtY2FwCislcGF0Y2g4NiAtcDEgLWIgLmZpcHMtZWMKIAogc2VkIC1pICdzL1NI TElCX1ZFUlNJT05fTlVNQkVSICIxLjAuMCIvU0hMSUJfVkVSU0lPTl9OVU1CRVIgIiV7dmVyc2lv bn0iLycgY3J5cHRvL29wZW5zc2x2LmgKIApAQCAtMjUxLDcgKzI1Myw3IEBAIHNzbGFyY2g9bGlu dXgtcHBjNjQKIC4vQ29uZmlndXJlIFwKIAktLXByZWZpeD0le19wcmVmaXh9IC0tb3BlbnNzbGRp cj0le19zeXNjb25mZGlyfS9wa2kvdGxzICR7c3NsZmxhZ3N9IFwKIAl6bGliIGVuYWJsZS1jYW1l bGxpYSBlbmFibGUtc2VlZCBlbmFibGUtdGxzZXh0IGVuYWJsZS1yZmMzNzc5IFwKLQllbmFibGUt Y21zIGVuYWJsZS1tZDIgbm8tbWRjMiBuby1yYzUgbm8tZWMgbm8tZWMybSBuby1lY2RoIG5vLWVj ZHNhIG5vLXNycCBcCisJZW5hYmxlLWNtcyBlbmFibGUtbWQyIG5vLW1kYzIgbm8tcmM1IG5vLXNy cCBcCiAJLS13aXRoLWtyYjUtZmxhdm9yPU1JVCAtLWVuZ2luZXNkaXI9JXtfbGliZGlyfS9vcGVu c3NsL2VuZ2luZXMgXAogCS0td2l0aC1rcmI1LWRpcj0vdXNyIHNoYXJlZCAgJHtzc2xhcmNofSAl ez8hbm9maXBzOmZpcHN9CiAKQEAgLTQ3Myw2ICs0NzUsMTkgQEAgcm0gLXJmICRSUE1fQlVJTERf Uk9PVC8le19saWJkaXJ9L2ZpcHNjYW5pc3Rlci4qCiBwcmVsaW5rIC11ICV7X2xpYmRpcn0vbGli Y3J5cHRvLnNvLiV7dmVyc2lvbn0gJXtfbGliZGlyfS9saWJzc2wuc28uJXt2ZXJzaW9ufSAyPi9k ZXYvbnVsbCB8fCA6CiAKICVjaGFuZ2Vsb2cKKyogTW9uIE9jdCAxNCAyMDEzIFRvbSBDYWxsYXdh eSA8c3BvdEBmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjAuMWUtMjcKKy0gcmVzb2x2ZSBidWd6aWxs YSAzMTk5MDEgKHBoZXchIG9ubHkgdG9vayA2IHllYXJzICYgOSBkYXlzKQorCisqIEZyaSBTZXAg MjcgMjAxMyBUb23DocWhIE1yw6F6IDx0bXJhekByZWRoYXQuY29tPiAxLjAuMWUtMjYKKy0gbWFr ZSBEVExTMSB3b3JrIGluIEZJUFMgbW9kZQorLSBhdm9pZCBSU0EgYW5kIERTQSA1MTIgYml0cyBh bmQgV2hpcmxwb29sIGluICdvcGVuc3NsIHNwZWVkJyBpbiBGSVBTIG1vZGUKKworKiBNb24gU2Vw IDIzIDIwMTMgVG9tw6HFoSBNcsOheiA8dG1yYXpAcmVkaGF0LmNvbT4gMS4wLjFlLTI1CistIGF2 b2lkIGRsb3BlbmluZyBsaWJzc2wuc28gZnJvbSBsaWJjcnlwdG8gKCMxMDEwMzU3KQorCisqIEZy aSBTZXAgMjAgMjAxMyBUb23DocWhIE1yw6F6IDx0bXJhekByZWRoYXQuY29tPiAxLjAuMWUtMjQK Ky0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIGluIEZJUFMgYWVzIHNlbGZ0ZXN0CisKICogVGh1IFNl cCAxOSAyMDEzIFRvbcOhxaEgTXLDoXogPHRtcmF6QHJlZGhhdC5jb20+IDEuMC4xZS0yMwogLSBm aXggc2VnZmF1bHQgaW4gb3BlbnNzbCBzcGVlZCBobWFjIGluIHRoZSBGSVBTIG1vZGUKIAoKZGlm ZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGY0YmEzYTEuLmQ1YWJhZjggMTAwNjQ0 Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBAQAotNjQxNjc3YzExNjg2NWU2 MDYwMTY3NzMyOWI1MTRlMmQgIG9wZW5zc2wtMS4wLjFlLXVzYS50YXIueHoKKzNiMDg0NWNmYmJi MmFmMzUwZWYzYjAyNmY4ZGZjZDVmICBvcGVuc3NsLTEuMC4xZS11c2EudGFyLnh6Cg==