From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: - Support constant DW_AT_data_member_location by GCC PR debug/40659 (BZ Date: Sat, 27 Jun 2026 23:54:18 GMT Message-ID: <178260445874.1.10405048758485322342.rpms-gdb-912c39689b95@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 912c39689b95407e0f3a29da17b465fd1b708e82 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogOTEyYzM5Njg5Yjk1NDA3ZTBmM2EyOWRhMTdiNDY1ZmQxYjcw OGU4MgogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3Jh cHJvamVjdC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDgtMTFUMTQ6NDI6NDcrMDA6 MDAKICAgICAgICAgICAgU3RhdHMgIDogKzM0Ni8tNjc1IGluIDYgZmlsZShzKQogICAgICAgICAg ICBVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jLzkxMmMz OTY4OWI5NTQwN2UwZjNhMjlkYTE3YjQ2NWZkMWI3MDhlODI/YnJhbmNoPWdkYi0xNy4yLXJlYmFz ZS1mNDQKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAgLSBTdXBwb3J0IGNvbnN0YW50IERX X0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uIGJ5IEdDQyBQUiBkZWJ1Zy80MDY1OSAoQloKICAgIDUx NTM3NykuCi0gRml4IC5zcGVjIFVSTC4KLSBhcmNoZXItamFua3JhdG9jaHZpbC1mZWRvcmExMiBj b21taXQ6CiAgICA4MWRlM2M2YWJhZTRmN2UzNzM4YWE5YmNjMGFiMmY4NzI1Y2NlMjUyCgotLS0K ZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUgYi8uY3ZzaWdub3JlCmluZGV4IDc4YTYwMTEuLjlmYzE1 OTUgMTAwNjQ0Ci0tLSBhLy5jdnNpZ25vcmUKKysrIGIvLmN2c2lnbm9yZQpAQCAtMSArMSBAQAot Z2RiLTYuOC41MC4yMDA5MDgxMC50YXIuYnoyCitnZGItNi44LjUwLjIwMDkwODExLnRhci5iejIK CmRpZmYgLS1naXQgYS9nZGItNi4zLXBpZS0yMDA1MDExMC5wYXRjaCBiL2dkYi02LjMtcGllLTIw MDUwMTEwLnBhdGNoCmluZGV4IGUxNzM2YjMuLmMxOTg4MTQgMTAwNjQ0Ci0tLSBhL2dkYi02LjMt cGllLTIwMDUwMTEwLnBhdGNoCisrKyBiL2dkYi02LjMtcGllLTIwMDUwMTEwLnBhdGNoCkBAIC0x MDIxLDcgKzEwMjEsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwOS9nZGIvc29saWIuYwog IC8qCiAgCiAgICAgR0xPQkFMIEZVTkNUSU9OCi1AQCAtNDQ5LDE0ICs0NTMsMzggQEAgc3ltYm9s X2FkZF9zdHViIChzdHJ1Y3Qgc29fbGlzdCAqc28sIGludAorQEAgLTQ1MywxNCArNDUzLDM4IEBA IHN5bWJvbF9hZGRfc3R1YiAoc3RydWN0IHNvX2xpc3QgKnNvLCBpbnQKICAgIC8qIEhhdmUgd2Ug YWxyZWFkeSBsb2FkZWQgdGhpcyBzaGFyZWQgb2JqZWN0PyAgKi8KICAgIEFMTF9PQkpGSUxFUyAo c28tPm9iamZpbGUpCiAgICAgIHsKQEAgLTEwNjEsNyArMTA2MSw3IEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwODA5L2dkYi9zb2xpYi5jCiArCiAgICBwX3JlZmNvdW50ID0geG1hbGxvYyAoc2l6 ZW9mICgqcF9yZWZjb3VudCkpOwogICAgKnBfcmVmY291bnQgPSAyOyAgLyogQm90aCBzb2xpYiBh bmQgb2JqZmlsZSByZWZlciB0byB0aGlzIGFiZmQuICAqLwotICAgc28tPmFiZmQtPnVzcmRhdGEg PSBwX3JlZmNvdW50OworICAgYmZkX3VzcmRhdGEgKHNvLT5hYmZkKSA9IHBfcmVmY291bnQ7CiBA QCAtNjAwLDYgKzYyOCwxMCBAQCB1cGRhdGVfc29saWJfbGlzdCAoaW50IGZyb21fdHR5LCBzdHJ1 Y3QgCiAgCSAgICB9CiAgCSAgZWxzZQoKZGlmZiAtLWdpdCBhL2dkYi02LjUtYnoyMTY3MTEtY2xv bmUtaXMtb3V0ZXJtb3N0LnBhdGNoIGIvZ2RiLTYuNS1iejIxNjcxMS1jbG9uZS1pcy1vdXRlcm1v c3QucGF0Y2gKaW5kZXggODlkMWRiNi4uYjJkYzQ1MSAxMDA2NDQKLS0tIGEvZ2RiLTYuNS1iejIx NjcxMS1jbG9uZS1pcy1vdXRlcm1vc3QucGF0Y2gKKysrIGIvZ2RiLTYuNS1iejIxNjcxMS1jbG9u ZS1pcy1vdXRlcm1vc3QucGF0Y2gKQEAgLTEzOCwyOCArMTM4LDI0IEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAyL2dkYi9hbWQ2NC10ZGVwLmMKICAgICgqdGhpc19pZCkgPSBmcmFtZV9pZF9i dWlsZCAoY2FjaGUtPmJhc2UgKyAxNiwgY2FjaGUtPnBjKTsKICB9CiAgCi1JbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwMi9nZGIvaTM4Ni10ZGVwLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUw LjIwMDkwODAyLm9yaWcvZ2RiL2kzODYtdGRlcC5jCTIwMDktMDctMTIgMTk6NDY6MjEuMDAwMDAw MDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvaTM4Ni10ZGVwLmMJMjAwOS0w OC0wMyAxNTo1MDowOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC01MzA3LDYgKzUzMDcsOSBAQCBpMzg2 X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpCistLS0gZ2RiLTYuOC41MC4yMDA5 MDgxMS9nZGIvaTM4Ni10ZGVwLmMub3JpZwkyMDA5LTA4LTEwIDA1OjAyOjM5LjAwMDAwMDAwMCAr MDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2kzODYtdGRlcC5jCTIwMDktMDgtMTEg MTY6MzM6NTEuMDAwMDAwMDAwICswMjAwCitAQCAtNTQzMiw2ICs1NDMyLDkgQEAgaTM4Nl9nZGJh cmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaQogICAgdGRlcC0+c2NfcGNfb2Zmc2V0ID0g LTE7CiAgICB0ZGVwLT5zY19zcF9vZmZzZXQgPSAtMTsKICAKICsgIC8qIFVud2luZGluZyBzdG9w cyBvbiBpMzg2IGF1dG9tYXRpY2FsbHkuICAqLwogKyAgdGRlcC0+b3V0ZXJtb3N0X2ZyYW1lX3Ag PSBOVUxMOwogKworICAgdGRlcC0+cmVjb3JkX3JlZ21hcCA9IGkzODZfcmVjb3JkX3JlZ21hcDsK KyAKICAgIC8qIFRoZSBmb3JtYXQgdXNlZCBmb3IgYGxvbmcgZG91YmxlJyBvbiBhbG1vc3QgYWxs IGkzODYgdGFyZ2V0cyBpcwotICAgICAgdGhlIGkzODcgZXh0ZW5kZWQgZmxvYXRpbmctcG9pbnQg Zm9ybWF0LiAgSW4gZmFjdCwgb2YgYWxsIHRhcmdldHMKLSAgICAgIGluIHRoZSBHQ0MgMi45NSB0 cmVlLCBvbmx5IE9TRi8xIGRvZXMgaXQgZGlmZmVyZW50LCBhbmQgaW5zaXN0cwotSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA4MDIvZ2RiL2kzODYtdGRlcC5oCi09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYu OC41MC4yMDA5MDgwMi5vcmlnL2dkYi9pMzg2LXRkZXAuaAkyMDA5LTA3LTAyIDE5OjI1OjU0LjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL2kzODYtdGRlcC5oCTIw MDktMDgtMDMgMTU6NTA6MjkuMDAwMDAwMDAwICswMjAwCi1AQCAtMTE1LDYgKzExNSw5IEBAIHN0 cnVjdCBnZGJhcmNoX3RkZXAKLSAgIGludCAoKmkzODZfaW50eDgwX3JlY29yZCkgKHN0cnVjdCBy ZWdjYWNoZSAqcmVnY2FjaGUpOwotICAgLyogUGFyc2Ugc3lzZW50ZXIgYXJncy4gICovCistLS0g Z2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvaTM4Ni10ZGVwLmgub3JpZwkyMDA5LTA4LTEwIDA1OjAy OjM5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2kzODYtdGRl cC5oCTIwMDktMDgtMTEgMTY6MzQ6MDguMDAwMDAwMDAwICswMjAwCitAQCAtMTIwLDYgKzEyMCw5 IEBAIHN0cnVjdCBnZGJhcmNoX3RkZXAKICAgIGludCAoKmkzODZfc3lzZW50ZXJfcmVjb3JkKSAo c3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSk7CisgICAvKiBQYXJzZSBzeXNjYWxsIGFyZ3MuICAq LworICAgaW50ICgqaTM4Nl9zeXNjYWxsX3JlY29yZCkgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2Fj aGUpOwogKwogKyAgLyogRGV0ZWN0IE9TIGRlcGVuZGVudCBvdXRlcm1vc3QgZnJhbWVzOyBzdWNo IGFzIGBjbG9uZScuICAqLwogKyAgaW50ICgqb3V0ZXJtb3N0X2ZyYW1lX3ApIChzdHJ1Y3QgZnJh bWVfaW5mbyAqdGhpc19mcmFtZSk7CgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dk Yi1hcmNoZXIucGF0Y2gKaW5kZXggOGExMWUzNi4uNmEwMTBlNCAxMDA2NDQKLS0tIGEvZ2RiLWFy Y2hlci5wYXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDcgKzIsNyBAQCBodHRwOi8v c291cmNld2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogaHR0cDovL3NvdXJjZXdhcmUu b3JnL2dkYi93aWtpL0FyY2hlckJyYW5jaE1hbmFnZW1lbnQKIAogR0lUIHNuYXBzaG90OgotY29t bWl0IDkzZWMxNmU2ZjUwMDBkZDY0ZDQzM2Q4NjY3NGU4MjBlZDBmMzViNzIKK2NvbW1pdCA4MWRl M2M2YWJhZTRmN2UzNzM4YWE5YmNjMGFiMmY4NzI1Y2NlMjUyCiAKIGJyYW5jaCBgYXJjaGVyJyAt IHRoZSBtZXJnZSBvZiBicmFuY2hlczoKIGFyY2hlci10cm9tZXktY2FsbC1mcmFtZS1jZmEKQEAg LTE0LDI4NSArMTQsNiBAQCBhcmNoZXIta2VpdGhzLWV4cHItY3VtdWxhdGl2ZQogYXJjaGVyLXRy b21leS1weXRob24KIAogCi1kaWZmIC0tZ2l0IGEvYmZkL2NvZmYtc3RnbzMyLmMgYi9iZmQvY29m Zi1zdGdvMzIuYwotaW5kZXggYjg5MjhiZS4uOGJmNzY2NyAxMDA2NDQKLS0tLSBhL2JmZC9jb2Zm LXN0Z28zMi5jCi0rKysgYi9iZmQvY29mZi1zdGdvMzIuYwotQEAgLTEwMiw5ICsxMDIsNiBAQCBz dGF0aWMgYmZkX2Jvb2xlYW4KLSAKLSAjaW5jbHVkZSAiY29mZi1pMzg2LmMiCi0gCi0tLyogSSBo b2xkIGluIHRoZSB1c3JkYXRhIHRoZSBzdHViLiAgKi8KLS0jZGVmaW5lIGJmZF9jb2ZmX2dvMzJz dHViIGJmZF91c3JkYXRhCi0tCi0gLyogVGhpcyBtYWNybyBpcyB1c2VkLCBiZWNhdXNlIEkgY2Fu bm90IGFzc3VtZSB0aGUgZW5kaWFuZXNzIG9mIHRoZQotICAgIGhvc3Qgc3lzdGVtLiAgKi8KLSAj ZGVmaW5lIF9IKGluZGV4KSAoSF9HRVRfMTYgKGFiZmQsIChoZWFkZXIraW5kZXgqMikpKQotQEAg LTExMiw3ICsxMDksNyBAQCBzdGF0aWMgYmZkX2Jvb2xlYW4KLSAvKiBUaGVzZSBieXRlcyBhcmUg YSAyMDQ4LWJ5dGUgRE9TIGV4ZWN1dGFibGUsIHdoaWNoIGxvYWRzIHRoZSBDT0ZGCi0gICAgaW1h Z2UgaW50byBtZW1vcnkgYW5kIHRoZW4gcnVucyBpdC4gSXQgaXMgY2FsbGVkICdzdHViJy4gICov Ci0gCi0tc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc3R1Yl9ieXRlc1tTVFVCU0laRV0gPQot K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHN0dWJfYnl0ZXNbR08zMl9TVFVCU0laRV0gPQot IHsKLSAjaW5jbHVkZSAiZ28zMnN0dWIuaCIKLSB9OwotQEAgLTEyMCw3ICsxMTcsNyBAQCBzdGF0 aWMgY29uc3QgdW5zaWduZWQgY2hhciBzdHViX2J5dGVzW1NUVUJTSVpFXSA9Ci0gLyoKLSAgICBJ IGhhdmUgbm90IGNvbW1lbnRlZCBlYWNoIHN3YXAgZnVuY3Rpb24gYmVsb3csIGJlY2F1c2UgdGhl Ci0gICAgdGVjaG5pcXVlIGlzIGluIGFueSBmdW5jdGlvbiB0aGUgc2FtZS4gRm9yIHRoZSAuLi5p biBmdW5jdGlvbiwKLS0gICBhbGwgdGhlIHBvaW50ZXJzIGFyZSBhZGp1c3RlZCBieSBhZGRpbmcg U1RVQlNJWkUgYW5kIGZvciB0aGUKLSsgICBhbGwgdGhlIHBvaW50ZXJzIGFyZSBhZGp1c3RlZCBi eSBhZGRpbmcgR08zMl9TVFVCU0laRSBhbmQgZm9yIHRoZQotICAgIC4uLm91dCBmdW5jdGlvbiwg aXQgaXMgc3VidHJhY3RlZCBmaXJzdCBhbmQgYWZ0ZXIgY2FsbGluZyB0aGUKLSAgICBzdGFuZGFy ZCBzd2FwIGZ1bmN0aW9uIGl0IGlzIHJlc2V0IHRvIHRoZSBvbGQgdmFsdWUuICAqLwotIAotQEAg LTEzMiwyNSArMTI5LDIwIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHN0dWJfYnl0ZXNb U1RVQlNJWkVdID0KLSAKLSBzdGF0aWMgdm9pZAotIGFkanVzdF9maWxlaGRyX2luX3Bvc3QgIChh YmZkLCBzcmMsIGRzdCkKLS0gICAgIGJmZCAqYWJmZDsKLSsgICAgIGJmZCAqYWJmZCBBVFRSSUJV VEVfVU5VU0VEOwotICAgICAgUFRSIHNyYzsKLSAgICAgIFBUUiBkc3Q7Ci0gewotICAgRklMSERS ICpmaWxlaGRyX3NyYyA9IChGSUxIRFIgKikgc3JjOwotICAgc3RydWN0IGludGVybmFsX2ZpbGVo ZHIgKmZpbGVoZHJfZHN0ID0gKHN0cnVjdCBpbnRlcm5hbF9maWxlaGRyICopIGRzdDsKLSAKLS0g IEFESlVTVF9WQUwgKGZpbGVoZHJfZHN0LT5mX3N5bXB0ciwgU1RVQlNJWkUpOwotKyAgQURKVVNU X1ZBTCAoZmlsZWhkcl9kc3QtPmZfc3ltcHRyLCBHTzMyX1NUVUJTSVpFKTsKLSAKLS0gIC8qIFNh dmUgbm93IHRoZSBzdHViIHRvIGJlIHVzZWQgbGF0ZXIuICAqLwotLSAgYmZkX2NvZmZfZ28zMnN0 dWIgKGFiZmQpID0gKFBUUikgYmZkX2FsbG9jIChhYmZkLCAoYmZkX3NpemVfdHlwZSkgU1RVQlNJ WkUpOwotLQotLSAgLyogU2luY2UgdGhpcyBmdW5jdGlvbiByZXR1cm5zIG5vIHN0YXR1cywgSSBk byBub3Qgc2V0IGhlcmUKLS0gICAgIGFueSBiZmRfZXJyb3JfLi4uCi0tICAgICBUaGF0IG1lYW5z LCBiZWZvcmUgdGhlIHVzZSBvZiBiZmRfY29mZl9nbzMyc3R1YiAoKSwgdGhpcyB2YWx1ZQotLSAg ICAgc2hvdWxkIGJlIGNoZWNrZWQgaWYgaXQgaXMgIT0gTlVMTC4gICovCi0tICBpZiAoYmZkX2Nv ZmZfZ28zMnN0dWIgKGFiZmQpID09IE5VTEwpCi0tICAgIHJldHVybjsKLS0gIG1lbWNweSAoYmZk X2NvZmZfZ28zMnN0dWIgKGFiZmQpLCBmaWxlaGRyX3NyYy0+c3R1YiwgU1RVQlNJWkUpOwotKyAg LyogU2F2ZSBub3cgdGhlIHN0dWIgdG8gYmUgdXNlZCBsYXRlci4gIFB1dCB0aGUgc3R1YiBkYXRh IHRvIEZJTEVIRFJfRFNUCi0rICAgICBmaXJzdCBhcyBjb2ZmX2RhdGEgKGFiZmQpIHN0aWxsIGRv ZXMgbm90IGV4aXN0LiAgSXQgbWF5IG5vdCBldmVuIGJlIGV2ZXIKLSsgICAgIGNyZWF0ZWQgYXMg d2UgYXJlIGp1c3QgY2hlY2tpbmcgdGhlIGZpbGUgZm9ybWF0IG9mIEFCRkQuICAqLwotKyAgbWVt Y3B5IChmaWxlaGRyX2RzdC0+Z28zMnN0dWIsIGZpbGVoZHJfc3JjLT5zdHViLCBHTzMyX1NUVUJT SVpFKTsKLSsgIGZpbGVoZHJfZHN0LT5mX2ZsYWdzIHw9IEZfR08zMlNUVUI7Ci0gfQotIAotIHN0 YXRpYyB2b2lkCi1AQCAtMTY2LDEzICsxNTgsMTMgQEAgYWRqdXN0X2ZpbGVoZHJfb3V0X3ByZSAg KGFiZmQsIGluLCBvdXQpCi0gICBjcmVhdGVfZ28zMl9zdHViIChhYmZkKTsKLSAKLSAgIC8qIENv cHkgdGhlIHN0dWIgdG8gdGhlIGZpbGUgaGVhZGVyLiAgKi8KLS0gIGlmIChiZmRfY29mZl9nbzMy c3R1YiAoYWJmZCkgIT0gTlVMTCkKLS0gICAgbWVtY3B5IChmaWxlaGRyX291dC0+c3R1YiwgYmZk X2NvZmZfZ28zMnN0dWIgKGFiZmQpLCBTVFVCU0laRSk7Ci0rICBpZiAoY29mZl9kYXRhIChhYmZk KS0+Z28zMnN0dWIgIT0gTlVMTCkKLSsgICAgbWVtY3B5IChmaWxlaGRyX291dC0+c3R1YiwgY29m Zl9kYXRhIChhYmZkKS0+Z28zMnN0dWIsIEdPMzJfU1RVQlNJWkUpOwotICAgZWxzZQotICAgICAv KiBVc2UgdGhlIGRlZmF1bHQuICAqLwotLSAgICBtZW1jcHkgKGZpbGVoZHJfb3V0LT5zdHViLCBz dHViX2J5dGVzLCBTVFVCU0laRSk7Ci0rICAgIG1lbWNweSAoZmlsZWhkcl9vdXQtPnN0dWIsIHN0 dWJfYnl0ZXMsIEdPMzJfU1RVQlNJWkUpOwotIAotLSAgQURKVVNUX1ZBTCAoZmlsZWhkcl9pbi0+ Zl9zeW1wdHIsIC1TVFVCU0laRSk7Ci0rICBBREpVU1RfVkFMIChmaWxlaGRyX2luLT5mX3N5bXB0 ciwgLUdPMzJfU1RVQlNJWkUpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotQEAgLTE4Myw3ICsxNzUs NyBAQCBhZGp1c3RfZmlsZWhkcl9vdXRfcG9zdCAgKGFiZmQsIGluLCBvdXQpCi0gewotICAgc3Ry dWN0IGludGVybmFsX2ZpbGVoZHIgKmZpbGVoZHJfaW4gPSAoc3RydWN0IGludGVybmFsX2ZpbGVo ZHIgKikgaW47Ci0gICAvKiBVbmRvIHRoZSBhYm92ZSBjaGFuZ2UuICAqLwotLSAgQURKVVNUX1ZB TCAoZmlsZWhkcl9pbi0+Zl9zeW1wdHIsIFNUVUJTSVpFKTsKLSsgIEFESlVTVF9WQUwgKGZpbGVo ZHJfaW4tPmZfc3ltcHRyLCBHTzMyX1NUVUJTSVpFKTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBA IC0xOTQsOSArMTg2LDkgQEAgYWRqdXN0X3Njbmhkcl9pbl9wb3N0ICAoYWJmZCwgZXh0LCBpbikK LSB7Ci0gICBzdHJ1Y3QgaW50ZXJuYWxfc2NuaGRyICpzY25oZHJfaW50ID0gKHN0cnVjdCBpbnRl cm5hbF9zY25oZHIgKikgaW47Ci0gCi0tICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX3NjbnB0 ciwgU1RVQlNJWkUpOwotLSAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19yZWxwdHIsIFNUVUJT SVpFKTsKLS0gIEFESlVTVF9WQUwgKHNjbmhkcl9pbnQtPnNfbG5ub3B0ciwgU1RVQlNJWkUpOwot KyAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19zY25wdHIsIEdPMzJfU1RVQlNJWkUpOwotKyAg QURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19yZWxwdHIsIEdPMzJfU1RVQlNJWkUpOwotKyAgQURK VVNUX1ZBTCAoc2NuaGRyX2ludC0+c19sbm5vcHRyLCBHTzMyX1NUVUJTSVpFKTsKLSB9Ci0gCi0g c3RhdGljIHZvaWQKLUBAIC0yMDcsOSArMTk5LDkgQEAgYWRqdXN0X3Njbmhkcl9vdXRfcHJlICAo YWJmZCwgaW4sIG91dCkKLSB7Ci0gICBzdHJ1Y3QgaW50ZXJuYWxfc2NuaGRyICpzY25oZHJfaW50 ID0gKHN0cnVjdCBpbnRlcm5hbF9zY25oZHIgKikgaW47Ci0gCi0tICBBREpVU1RfVkFMIChzY25o ZHJfaW50LT5zX3NjbnB0ciwgLVNUVUJTSVpFKTsKLS0gIEFESlVTVF9WQUwgKHNjbmhkcl9pbnQt PnNfcmVscHRyLCAtU1RVQlNJWkUpOwotLSAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19sbm5v cHRyLCAtU1RVQlNJWkUpOwotKyAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+c19zY25wdHIsIC1H TzMyX1NUVUJTSVpFKTsKLSsgIEFESlVTVF9WQUwgKHNjbmhkcl9pbnQtPnNfcmVscHRyLCAtR08z Ml9TVFVCU0laRSk7Ci0rICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX2xubm9wdHIsIC1HTzMy X1NUVUJTSVpFKTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC0yMjAsOSArMjEyLDkgQEAgYWRq dXN0X3Njbmhkcl9vdXRfcG9zdCAoYWJmZCwgaW4sIG91dCkKLSB7Ci0gICBzdHJ1Y3QgaW50ZXJu YWxfc2NuaGRyICpzY25oZHJfaW50ID0gKHN0cnVjdCBpbnRlcm5hbF9zY25oZHIgKikgaW47Ci0g Ci0tICBBREpVU1RfVkFMIChzY25oZHJfaW50LT5zX3NjbnB0ciwgU1RVQlNJWkUpOwotLSAgQURK VVNUX1ZBTCAoc2NuaGRyX2ludC0+c19yZWxwdHIsIFNUVUJTSVpFKTsKLS0gIEFESlVTVF9WQUwg KHNjbmhkcl9pbnQtPnNfbG5ub3B0ciwgU1RVQlNJWkUpOwotKyAgQURKVVNUX1ZBTCAoc2NuaGRy X2ludC0+c19zY25wdHIsIEdPMzJfU1RVQlNJWkUpOwotKyAgQURKVVNUX1ZBTCAoc2NuaGRyX2lu dC0+c19yZWxwdHIsIEdPMzJfU1RVQlNJWkUpOwotKyAgQURKVVNUX1ZBTCAoc2NuaGRyX2ludC0+ c19sbm5vcHRyLCBHTzMyX1NUVUJTSVpFKTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC0yMzks NyArMjMxLDcgQEAgYWRqdXN0X2F1eF9pbl9wb3N0ICAoYWJmZCwgZXh0MSwgdHlwZSwgY2xhc3Ms IGluZHgsIG51bWF1eCwgaW4xKQotIAotICAgaWYgKGNsYXNzID09IENfQkxPQ0sgfHwgY2xhc3Mg PT0gQ19GQ04gfHwgSVNGQ04gKHR5cGUpIHx8IElTVEFHIChjbGFzcykpCi0gICAgIHsKLS0gICAg ICBBREpVU1RfVkFMIChpbi0+eF9zeW0ueF9mY25hcnkueF9mY24ueF9sbm5vcHRyLCBTVFVCU0la RSk7Ci0rICAgICAgQURKVVNUX1ZBTCAoaW4tPnhfc3ltLnhfZmNuYXJ5LnhfZmNuLnhfbG5ub3B0 ciwgR08zMl9TVFVCU0laRSk7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMjU3LDcgKzI0OSw3IEBAIGFk anVzdF9hdXhfb3V0X3ByZSAgKGFiZmQsIGlucCwgdHlwZSwgY2xhc3MsIGluZHgsIG51bWF1eCwg ZXh0cCkKLSAKLSAgIGlmIChjbGFzcyA9PSBDX0JMT0NLIHx8IGNsYXNzID09IENfRkNOIHx8IElT RkNOICh0eXBlKSB8fCBJU1RBRyAoY2xhc3MpKQotICAgICB7Ci0tICAgICAgQURKVVNUX1ZBTCAo aW4tPnhfc3ltLnhfZmNuYXJ5LnhfZmNuLnhfbG5ub3B0ciwgLVNUVUJTSVpFKTsKLSsgICAgICBB REpVU1RfVkFMIChpbi0+eF9zeW0ueF9mY25hcnkueF9mY24ueF9sbm5vcHRyLCAtR08zMl9TVFVC U0laRSk7Ci0gICAgIH0KLSB9Ci0gCi1AQCAtMjc1LDcgKzI2Nyw3IEBAIGFkanVzdF9hdXhfb3V0 X3Bvc3QgKGFiZmQsIGlucCwgdHlwZSwgY2xhc3MsIGluZHgsIG51bWF1eCwgZXh0cCkKLSAKLSAg IGlmIChjbGFzcyA9PSBDX0JMT0NLIHx8IGNsYXNzID09IENfRkNOIHx8IElTRkNOICh0eXBlKSB8 fCBJU1RBRyAoY2xhc3MpKQotICAgICB7Ci0tICAgICAgQURKVVNUX1ZBTCAoaW4tPnhfc3ltLnhf ZmNuYXJ5LnhfZmNuLnhfbG5ub3B0ciwgU1RVQlNJWkUpOwotKyAgICAgIEFESlVTVF9WQUwgKGlu LT54X3N5bS54X2ZjbmFyeS54X2Zjbi54X2xubm9wdHIsIEdPMzJfU1RVQlNJWkUpOwotICAgICB9 Ci0gfQotIAotQEAgLTI5Niw3ICsyODgsNyBAQCBjcmVhdGVfZ28zMl9zdHViIChhYmZkKQotICAg ICAgYmZkICphYmZkOwotIHsKLSAgIC8qIERvIGl0IG9ubHkgb25jZS4gICovCi0tICBpZiAoYmZk X2NvZmZfZ28zMnN0dWIgKGFiZmQpID09IE5VTEwpCi0rICBpZiAoY29mZl9kYXRhIChhYmZkKS0+ Z28zMnN0dWIgPT0gTlVMTCkKLSAgICAgewotICAgICAgIGNoYXIgKnN0dWI7Ci0gICAgICAgc3Ry dWN0IHN0YXQgc3Q7Ci1AQCAtMzYyLDMyICszNTQsMzIgQEAgY3JlYXRlX2dvMzJfc3R1YiAoYWJm ZCkKLSAJICBnb3RvIHN0dWJfZW5kOwotIAl9Ci0gICAgICAgLyogTm93IHdlIGZvdW5kIGEgY29y cmVjdCBzdHViIChob3BlZnVsbHkpLiAgKi8KLS0gICAgICBiZmRfY29mZl9nbzMyc3R1YiAoYWJm ZCkKLSsgICAgICBjb2ZmX2RhdGEgKGFiZmQpLT5nbzMyc3R1YgotIAk9IChQVFIpIGJmZF9hbGxv YyAoYWJmZCwgKGJmZF9zaXplX3R5cGUpIGNvZmZfc3RhcnQpOwotLSAgICAgIGlmIChiZmRfY29m Zl9nbzMyc3R1YiAoYWJmZCkgPT0gTlVMTCkKLSsgICAgICBpZiAoY29mZl9kYXRhIChhYmZkKS0+ Z28zMnN0dWIgPT0gTlVMTCkKLSAJewotIAkgIGNsb3NlIChmKTsKLSAJICByZXR1cm47Ci0gCX0K LSAgICAgICBsc2VlayAoZiwgMEwsIFNFRUtfU0VUKTsKLS0gICAgICBpZiAoKHVuc2lnbmVkIGxv bmcpIHJlYWQgKGYsIGJmZF9jb2ZmX2dvMzJzdHViIChhYmZkKSwgY29mZl9zdGFydCkKLSsgICAg ICBpZiAoKHVuc2lnbmVkIGxvbmcpIHJlYWQgKGYsIGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHVi LCBjb2ZmX3N0YXJ0KQotIAkgICE9IGNvZmZfc3RhcnQpCi0gCXsKLS0JICBiZmRfcmVsZWFzZSAo YWJmZCwgYmZkX2NvZmZfZ28zMnN0dWIgKGFiZmQpKTsKLS0JICBiZmRfY29mZl9nbzMyc3R1YiAo YWJmZCkgPSBOVUxMOwotKwkgIGJmZF9yZWxlYXNlIChhYmZkLCBjb2ZmX2RhdGEgKGFiZmQpLT5n bzMyc3R1Yik7Ci0rCSAgY29mZl9kYXRhIChhYmZkKS0+Z28zMnN0dWIgPSBOVUxMOwotIAl9Ci0g ICAgICAgY2xvc2UgKGYpOwotICAgICB9Ci0gc3R1Yl9lbmQ6Ci0gICAvKiBUaGVyZSB3YXMgc29t ZXRoaW5nIHdyb25nIGFib3ZlLCBzbyB1c2Ugbm93IHRoZSBzdGFuZGFyZCBidWlsdGluCi0gICAg ICBzdHViLiAgKi8KLS0gIGlmIChiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCkgPT0gTlVMTCkKLSsg IGlmIChjb2ZmX2RhdGEgKGFiZmQpLT5nbzMyc3R1YiA9PSBOVUxMKQotICAgICB7Ci0tICAgICAg YmZkX2NvZmZfZ28zMnN0dWIgKGFiZmQpCi0tCT0gKFBUUikgYmZkX2FsbG9jIChhYmZkLCAoYmZk X3NpemVfdHlwZSkgU1RVQlNJWkUpOwotLSAgICAgIGlmIChiZmRfY29mZl9nbzMyc3R1YiAoYWJm ZCkgPT0gTlVMTCkKLSsgICAgICBjb2ZmX2RhdGEgKGFiZmQpLT5nbzMyc3R1YgotKwk9IChQVFIp IGJmZF9hbGxvYyAoYWJmZCwgKGJmZF9zaXplX3R5cGUpIEdPMzJfU1RVQlNJWkUpOwotKyAgICAg IGlmIChjb2ZmX2RhdGEgKGFiZmQpLT5nbzMyc3R1YiA9PSBOVUxMKQotIAlyZXR1cm47Ci0tICAg ICAgbWVtY3B5IChiZmRfY29mZl9nbzMyc3R1YiAoYWJmZCksIHN0dWJfYnl0ZXMsIFNUVUJTSVpF KTsKLSsgICAgICBtZW1jcHkgKGNvZmZfZGF0YSAoYWJmZCktPmdvMzJzdHViLCBzdHViX2J5dGVz LCBHTzMyX1NUVUJTSVpFKTsKLSAgICAgfQotIH0KLSAKLUBAIC00MDMsMTMgKzM5NSwyMCBAQCBn bzMyX3N0dWJiZWRfY29mZl9iZmRfY29weV9wcml2YXRlX2JmZF9kYXRhICAoaWJmZCwgb2JmZCkK LSAgIGlmIChpYmZkLT54dmVjICE9IG9iZmQtPnh2ZWMpCi0gICAgIHJldHVybiBUUlVFOwotIAot LSAgLyogQ2hlY2sgaWYgYm90aCBoYXZlIGEgdmFsaWQgc3R1Yi4gICovCi0tICBpZiAoYmZkX2Nv ZmZfZ28zMnN0dWIgKGliZmQpID09IE5VTEwKLS0gICAgICB8fCBiZmRfY29mZl9nbzMyc3R1YiAo b2JmZCkgPT0gTlVMTCkKLSsgIC8qIENoZWNrIGlmIHdlIGhhdmUgYSBzb3VyY2Ugc3R1Yi4gICov Ci0rICBpZiAoY29mZl9kYXRhIChpYmZkKS0+Z28zMnN0dWIgPT0gTlVMTCkKLSAgICAgcmV0dXJu IFRSVUU7Ci0gCi0rICAvKiBBcyBhZGp1c3RfZmlsZWhkcl9vdXRfcHJlIG1heSBnZXQgY2FsbGVk IG9ubHkgYWZ0ZXIgdGhpcyBmdW5jdGlvbiwKLSsgICAgIG9wdGlvbmFsbHkgYWxsb2NhdGUgdGhl IG91dHB1dCBzdHViLiAgKi8KLSsgIGlmIChjb2ZmX2RhdGEgKG9iZmQpLT5nbzMyc3R1YiA9PSBO VUxMKQotKyAgICBjb2ZmX2RhdGEgKG9iZmQpLT5nbzMyc3R1YiA9IChQVFIpIGJmZF9hbGxvYyAo b2JmZCwKLSsJCQkJCQkoYmZkX3NpemVfdHlwZSkgR08zMl9TVFVCU0laRSk7Ci0rCi0gICAvKiBO b3cgY29weSB0aGUgc3R1Yi4gICovCi0tICBtZW1jcHkgKGJmZF9jb2ZmX2dvMzJzdHViIChvYmZk KSwgYmZkX2NvZmZfZ28zMnN0dWIgKGliZmQpLCBTVFVCU0laRSk7Ci0rICBpZiAoY29mZl9kYXRh IChvYmZkKS0+Z28zMnN0dWIgIT0gTlVMTCkKLSsgICAgbWVtY3B5IChjb2ZmX2RhdGEgKG9iZmQp LT5nbzMyc3R1YiwgY29mZl9kYXRhIChpYmZkKS0+Z28zMnN0dWIsCi0rCSAgICBHTzMyX1NUVUJT SVpFKTsKLSAKLSAgIHJldHVybiBUUlVFOwotIH0KLWRpZmYgLS1naXQgYS9iZmQvY29mZmNvZGUu aCBiL2JmZC9jb2ZmY29kZS5oCi1pbmRleCA0Yjc0OGI0Li4xY2M4NjBhIDEwMDY0NAotLS0tIGEv YmZkL2NvZmZjb2RlLmgKLSsrKyBiL2JmZC9jb2ZmY29kZS5oCi1AQCAtMTk5Miw2ICsxOTkyLDEx IEBAIGNvZmZfbWtvYmplY3RfaG9vayAoYmZkICogYWJmZCwKLSAgICAgYWJmZC0+ZmxhZ3MgfD0g SEFTX0RFQlVHOwotICNlbmRpZgotIAotKyAgaWYgKChpbnRlcm5hbF9mLT5mX2ZsYWdzICYgRl9H TzMyU1RVQikgIT0gMCkKLSsgICAgY29mZi0+Z28zMnN0dWIgPSAoY2hhciAqKSBiZmRfYWxsb2Mg KGFiZmQsIChiZmRfc2l6ZV90eXBlKSBHTzMyX1NUVUJTSVpFKTsKLSsgIGlmIChjb2ZmLT5nbzMy c3R1YiAhPSBOVUxMKQotKyAgICBtZW1jcHkgKGNvZmYtPmdvMzJzdHViLCBpbnRlcm5hbF9mLT5n bzMyc3R1YiwgR08zMl9TVFVCU0laRSk7Ci0rCi0gICByZXR1cm4gY29mZjsKLSB9Ci0gI2VuZGlm Ci1kaWZmIC0tZ2l0IGEvYmZkL2xpYmNvZmYtaW4uaCBiL2JmZC9saWJjb2ZmLWluLmgKLWluZGV4 IDE2YjZjN2IuLmYzMTA4ZWUgMTAwNjQ0Ci0tLS0gYS9iZmQvbGliY29mZi1pbi5oCi0rKysgYi9i ZmQvbGliY29mZi1pbi5oCi1AQCAtMTA2LDYgKzEwNiw5IEBAIHR5cGVkZWYgc3RydWN0IGNvZmZf dGRhdGEKLSAgICAgIHVzZWQgYnkgQVJNIGNvZGUuICAqLwotICAgZmxhZ3dvcmQgZmxhZ3M7Ci0g Ci0rICAvKiBjb2ZmLXN0Z28zMiBFWEUgc3R1YiBoZWFkZXIgYWZ0ZXIgQkZEIHRkYXRhIGhhcyBi ZWVuIGFsbG9jYXRlZC4gIEl0cyBkYXRhCi0rICAgICBpcyBrZXB0IGluIGludGVybmFsX2ZpbGVo ZHIuZ28zMnN0dWIgYmVmb3JlaGFuZC4gICovCi0rICBjaGFyICpnbzMyc3R1YjsKLSB9IGNvZmZf ZGF0YV90eXBlOwotIAotIC8qIFRkYXRhIGZvciBwZSBpbWFnZSBmaWxlcy4gICovCi1kaWZmIC0t Z2l0IGEvYmZkL2xpYmNvZmYuaCBiL2JmZC9saWJjb2ZmLmgKLWluZGV4IGE0YWI0MDUuLjRiYjQz ZjMgMTAwNjQ0Ci0tLS0gYS9iZmQvbGliY29mZi5oCi0rKysgYi9iZmQvbGliY29mZi5oCi1AQCAt MTEwLDYgKzExMCw5IEBAIHR5cGVkZWYgc3RydWN0IGNvZmZfdGRhdGEKLSAgICAgIHVzZWQgYnkg QVJNIGNvZGUuICAqLwotICAgZmxhZ3dvcmQgZmxhZ3M7Ci0gCi0rICAvKiBjb2ZmLXN0Z28zMiBF WEUgc3R1YiBoZWFkZXIgYWZ0ZXIgQkZEIHRkYXRhIGhhcyBiZWVuIGFsbG9jYXRlZC4gIEl0cyBk YXRhCi0rICAgICBpcyBrZXB0IGluIGludGVybmFsX2ZpbGVoZHIuZ28zMnN0dWIgYmVmb3JlaGFu ZC4gICovCi0rICBjaGFyICpnbzMyc3R1YjsKLSB9IGNvZmZfZGF0YV90eXBlOwotIAotIC8qIFRk YXRhIGZvciBwZSBpbWFnZSBmaWxlcy4gICovCiBkaWZmIC0tZ2l0IGEvZ2RiL01ha2VmaWxlLmlu IGIvZ2RiL01ha2VmaWxlLmluCiBpbmRleCBjY2M0ZGI4Li40OTZjOWYyIDEwMDY0NAogLS0tIGEv Z2RiL01ha2VmaWxlLmluCkBAIC00MzkyLDcgKzQxMTMsNyBAQCBpbmRleCAwYmZjZmNhLi4wMTAx OGQ2IDEwMDY0NAogIAogICNlbmRpZiAvKiBkd2FyZjJsb2MuaCAqLwogZGlmZiAtLWdpdCBhL2dk Yi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCi1pbmRleCA0NDViYWI4Li41MTY5OWJi IDEwMDY0NAoraW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJy ZWFkLmMKICsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKIEBAIC0xLDggKzEsNyBAQApAQCAtNDUzNCwy MyArNDI1NSwxNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIHN0YXRpYyB2b2lk IHJlYWRfbW9kdWxlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up OwogIAogIHN0YXRpYyB2b2lkIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKik7Ci1AQCAtMTA3OCw3ICsxMTAxLDE0IEBAIHN0YXRp YyBpbnQgaXNfcmVmX2F0dHIgKHN0cnVjdCBhdHRyaWJ1dGUgKik7CitAQCAtMTA3OCw3ICsxMTAx LDggQEAgc3RhdGljIGludCBpc19yZWZfYXR0ciAoc3RydWN0IGF0dHJpYnV0ZSAqKTsKICAKICBz dGF0aWMgdW5zaWduZWQgaW50IGR3YXJmMl9nZXRfcmVmX2RpZV9vZmZzZXQgKHN0cnVjdCBhdHRy aWJ1dGUgKik7CiAgCiAtc3RhdGljIGludCBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUg KHN0cnVjdCBhdHRyaWJ1dGUgKiwgaW50KTsKLStlbnVtIGdldF9hdHRyX2NvbnN0YW50X3ZhbHVl Ci0rICB7Ci0rICAgIGR3YXJmMl9hdHRyX3Vua25vd24sCi0rICAgIGR3YXJmMl9hdHRyX2NvbnN0 LAotKyAgICBkd2FyZjJfYXR0cl9ibG9jawotKyAgfTsKLStzdGF0aWMgZW51bSBnZXRfYXR0cl9j b25zdGFudF92YWx1ZSBnZXRfYXR0cl9jb25zdGFudF92YWx1ZQotKyAgKHN0cnVjdCBhdHRyaWJ1 dGUgKmF0dHIsIGludCAqdmFsX3JldHVybik7Cisrc3RhdGljIENPUkVfQUREUiBkd2FyZjJfZ2V0 X2F0dHJfY29uc3RhbnRfdmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUgKiwgQ09SRV9BRERSLAorKwkJ CQkJICAgc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKICBzdGF0aWMgc3RydWN0IGRpZV9pbmZvICpm b2xsb3dfZGllX3JlZl9vcl9zaWcgKHN0cnVjdCBkaWVfaW5mbyAqLAogIAkJCQkJICAgICAgIHN0 cnVjdCBhdHRyaWJ1dGUgKiwKLUBAIC0xMTUwLDYgKzExODAsOSBAQCBzdGF0aWMgdm9pZCBhZ2Vf Y2FjaGVkX2NvbXBfdW5pdHMgKHZvaWQpOworQEAgLTExNTAsNiArMTE3NCw5IEBAIHN0YXRpYyB2 b2lkIGFnZV9jYWNoZWRfY29tcF91bml0cyAodm9pZCk7CiAgCiAgc3RhdGljIHZvaWQgZnJlZV9v bmVfY2FjaGVkX2NvbXBfdW5pdCAodm9pZCAqKTsKICAKQEAgLTQ1NjAsNyArNDI3NSw3IEBAIGlu ZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgc3RhdGljIHN0cnVjdCB0eXBlICpzZXRfZGll X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgdHlwZSAqLAogIAkJCQkgIHN0cnVjdCBk d2FyZjJfY3UgKik7CiAgCi1AQCAtMTE2OSwyMiArMTIwMiwzMSBAQCBzdGF0aWMgdm9pZCBkd2Fy ZjJfY2xlYXJfbWFya3MgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKik7CitAQCAtMTE2OSwy MiArMTE5NiwzMSBAQCBzdGF0aWMgdm9pZCBkd2FyZjJfY2xlYXJfbWFya3MgKHN0cnVjdCBkd2Fy ZjJfcGVyX2N1X2RhdGEgKik7CiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICpnZXRfZGllX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7CiAgCkBAIC00NjAx LDcgKzQzMTYsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIH0KICAKICAvKiBX aGVuIGxvYWRpbmcgc2VjdGlvbnMsIHdlIGNhbiBlaXRoZXIgbG9vayBmb3IgIi48bmFtZT4iLCBv ciBmb3IKLUBAIC0xMjc3LDEwICsxMzE5LDEzIEBAIGR3YXJmMl9sb2NhdGVfc2VjdGlvbnMgKGJm ZCAqYWJmZCwgYXNlY3Rpb24gKnNlY3RwLCB2b2lkICppZ25vcmVfcHRyKQorQEAgLTEyNzcsMTAg KzEzMTMsMTMgQEAgZHdhcmYyX2xvY2F0ZV9zZWN0aW9ucyAoYmZkICphYmZkLCBhc2VjdGlvbiAq c2VjdHAsIHZvaWQgKmlnbm9yZV9wdHIpCiAgfQogIAogIC8qIERlY29tcHJlc3MgYSBzZWN0aW9u IHRoYXQgd2FzIGNvbXByZXNzZWQgdXNpbmcgemxpYi4gIFN0b3JlIHRoZQpAQCAtNDYxNyw3ICs0 MzMyLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ2RiX2J5dGUgKipvdXRidWYsIGJmZF9zaXplX3R5cGUgKm91dHNpemUpCiAgewog ICAgYmZkICphYmZkID0gb2JqZmlsZS0+b2JmZDsKLUBAIC0xMjk3LDYgKzEzNDIsNyBAQCB6bGli X2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpz ZWN0cCwKK0BAIC0xMjk3LDYgKzEzMzYsNyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKICAgIHpfc3RyZWFtIHN0cm07 CiAgICBpbnQgcmM7CiAgICBpbnQgaGVhZGVyX3NpemUgPSAxMjsKQEAgLTQ2MjUsNyArNDM0MCw3 IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgCiAgICBpZiAoYmZkX3NlZWsgKGFi ZmQsIHNlY3RwLT5maWxlcG9zLCBTRUVLX1NFVCkgIT0gMAogICAgICAgIHx8IGJmZF9icmVhZCAo Y29tcHJlc3NlZF9idWZmZXIsIGNvbXByZXNzZWRfc2l6ZSwgYWJmZCkgIT0gY29tcHJlc3NlZF9z aXplKQotQEAgLTEzMjYsOCArMTM3MiwxMyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKK0BAIC0xMzI2LDggKzEzNjYs MTMgQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBh c2VjdGlvbiAqc2VjdHAsCiAgICBzdHJtLmF2YWlsX2luID0gY29tcHJlc3NlZF9zaXplIC0gaGVh ZGVyX3NpemU7CiAgICBzdHJtLm5leHRfaW4gPSAoQnl0ZWYqKSBjb21wcmVzc2VkX2J1ZmZlciAr IGhlYWRlcl9zaXplOwogICAgc3RybS5hdmFpbF9vdXQgPSB1bmNvbXByZXNzZWRfc2l6ZTsKQEAg LTQ2NDEsNyArNDM1Niw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgICByYyA9 IGluZmxhdGVJbml0ICgmc3RybSk7CiAgICB3aGlsZSAoc3RybS5hdmFpbF9pbiA+IDApCiAgICAg IHsKLUBAIC0xMzQ4LDI2ICsxMzk5LDEzNiBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKK0BAIC0xMzQ4LDI2ICsxMzkz LDEzNiBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs IGFzZWN0aW9uICpzZWN0cCwKICAgICAgZXJyb3IgKF8oIkR3YXJmIEVycm9yOiBjb25jbHVkaW5n IERXQVJGIHVuY29tcHJlc3Npb24gaW4gJyVzJzogJWQiKSwKICAgICAgICAgICAgIGJmZF9nZXRf ZmlsZW5hbWUgKGFiZmQpLCByYyk7CiAgCkBAIC00NzgzLDcgKzQ0OTgsNyBAQCBpbmRleCA0NDVi YWI4Li41MTY5OWJiIDEwMDY0NAogIAogICAgaWYgKGluZm8tPmFzZWN0aW9uID09IE5VTEwgfHwg aW5mby0+c2l6ZSA9PSAwKQogICAgICByZXR1cm47Ci1AQCAtMTM4MCw3ICsxNTQxLDcgQEAgZHdh cmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJf c2VjdGlvbl9pbmZvICppbmZvKQorQEAgLTEzODAsNyArMTUzNSw3IEBAIGR3YXJmMl9yZWFkX3Nl Y3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5m byAqaW5mbykKICAgICAgICAvKiBVcG9uIGRlY29tcHJlc3Npb24sIHVwZGF0ZSB0aGUgYnVmZmVy IGFuZCBpdHMgc2l6ZS4gICovCiAgICAgICAgaWYgKHN0cm5jbXAgKGhlYWRlciwgIlpMSUIiLCBz aXplb2YgKGhlYWRlcikpID09IDApCiAgICAgICAgICB7CkBAIC00NzkyLDcgKzQ1MDcsNyBAQCBp bmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIAkJCQkgICAmaW5mby0+c2l6ZSk7CiAgICAg ICAgICAgIHJldHVybjsKICAgICAgICAgIH0KLUBAIC0xNDAzLDcgKzE1NjQsNyBAQCBkd2FyZjJf cmVhZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0 aW9uX2luZm8gKmluZm8pCitAQCAtMTQwMyw3ICsxNTU4LDcgQEAgZHdhcmYyX3JlYWRfc2VjdGlv biAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICpp bmZvKQogIAogICAgICAgIGlmIChyZXRidWYgIT0gTUFQX0ZBSUxFRCkKICAJewpAQCAtNDgwMSw3 ICs0NTE2LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAJICBpbmZvLT5idWZm ZXIgPSByZXRidWYgKyAoc2VjdHAtPmZpbGVwb3MgJiAocGFnZXNpemUgLSAxKSkgOwogIAkgIHJl dHVybjsKICAJfQotQEAgLTE0MTEsOCArMTU3MiwxNSBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8p CitAQCAtMTQxMSw4ICsxNTY2LDE1IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKICAjZW5kaWYK ICAKICAgIC8qIElmIHdlIGdldCBoZXJlLCB3ZSBhcmUgYSBub3JtYWwsIG5vdC1jb21wcmVzc2Vk IHNlY3Rpb24uICAqLwpAQCAtNDgxOSw3ICs0NTM0LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTli YiAxMDA2NDQKICAKICAgIC8qIFdoZW4gZGVidWdnaW5nIC5vIGZpbGVzLCB3ZSBtYXkgbmVlZCB0 byBhcHBseSByZWxvY2F0aW9uczsgc2VlCiAgICAgICBodHRwOi8vc291cmNld2FyZS5vcmcvbWwv Z2RiLXBhdGNoZXMvMjAwMi0wNC9tc2cwMDEzNi5odG1sIC4KLUBAIC0xNDIxLDYgKzE1ODksOCBA QCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3 YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCitAQCAtMTQyMSw2ICsxNTgzLDggQEAgZHdhcmYyX3Jl YWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlv bl9pbmZvICppbmZvKQogICAgcmV0YnVmID0gc3ltZmlsZV9yZWxvY2F0ZV9kZWJ1Z19zZWN0aW9u IChhYmZkLCBzZWN0cCwgYnVmKTsKICAgIGlmIChyZXRidWYgIT0gTlVMTCkKICAgICAgewpAQCAt NDgyOCw3ICs0NTQzLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgICBp bmZvLT5idWZmZXIgPSByZXRidWY7CiAgICAgICAgcmV0dXJuOwogICAgICB9Ci1AQCAtMTQyOSw2 ICsxNTk5LDE5IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKK0BAIC0xNDI5LDYgKzE1OTMsMTkg QEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBk d2FyZjJfc2VjdGlvbl9pbmZvICppbmZvKQogICAgICAgIHx8IGJmZF9icmVhZCAoYnVmLCBpbmZv LT5zaXplLCBhYmZkKSAhPSBpbmZvLT5zaXplKQogICAgICBlcnJvciAoXygiRHdhcmYgRXJyb3I6 IENhbid0IHJlYWQgRFdBUkYgZGF0YSBmcm9tICclcyciKSwKICAJICAgYmZkX2dldF9maWxlbmFt ZSAoYWJmZCkpOwpAQCAtNDg0OCw3ICs0NTYzLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAx MDA2NDQKICB9CiAgCiAgLyogRmlsbCBpbiBTRUNUUCwgQlVGUCBhbmQgU0laRVAgd2l0aCBzZWN0 aW9uIGluZm8sIGdpdmVuIE9CSkZJTEUgYW5kCi1AQCAtMTY2NiwxMSArMTg0OSw3IEBAIGR3YXJm Ml9jcmVhdGVfaW5jbHVkZV9wc3ltdGFiIChjaGFyICpuYW1lLCBzdHJ1Y3QgcGFydGlhbF9zeW10 YWIgKnBzdCwKK0BAIC0xNjY2LDExICsxODQzLDcgQEAgZHdhcmYyX2NyZWF0ZV9pbmNsdWRlX3Bz eW10YWIgKGNoYXIgKm5hbWUsIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN0LAogIAogIC8qIFJl YWQgdGhlIExpbmUgTnVtYmVyIFByb2dyYW0gZGF0YSBhbmQgZXh0cmFjdCB0aGUgbGlzdCBvZiBm aWxlcwogICAgIGluY2x1ZGVkIGJ5IHRoZSBzb3VyY2UgZmlsZSByZXByZXNlbnRlZCBieSBQU1Qu ICBCdWlsZCBhbiBpbmNsdWRlCkBAIC00ODYxLDcgKzQ1NzYsNyBAQCBpbmRleCA0NDViYWI4Li41 MTY5OWJiIDEwMDY0NAogIAogIHN0YXRpYyB2b2lkCiAgZHdhcmYyX2J1aWxkX2luY2x1ZGVfcHN5 bXRhYnMgKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAotQEAgLTE4MTIsNiArMTk5MSwzNyBAQCBsb29r dXBfc2lnbmF0dXJlZF90eXBlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgVUxPTkdFU1Qgc2ln KQorQEAgLTE4MTIsNiArMTk4NSwzNyBAQCBsb29rdXBfc2lnbmF0dXJlZF90eXBlIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSwgVUxPTkdFU1Qgc2lnKQogICAgcmV0dXJuIGVudHJ5OwogIH0KICAK QEAgLTQ4OTksNyArNDYxNCw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgLyog U3Vicm91dGluZSBvZiBwcm9jZXNzX3R5cGVfY29tcF91bml0IGFuZCBkd2FyZjJfYnVpbGRfcHN5 bXRhYnNfaGFyZAogICAgIHRvIGNvbWJpbmUgdGhlIGNvbW1vbiBwYXJ0cy4KICAgICBQcm9jZXNz IGEgY29tcGlsYXRpb24gdW5pdCBmb3IgYSBwc3ltdGFiLgotQEAgLTE4NzgsNyArMjA4OCw3IEBA IHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAg LTE4NzgsNyArMjA4Miw3IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXQgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLAogICAgICB9CiAgCiAgICAvKiBTZXQgdGhlIGxhbmd1YWdlIHdlJ3JlIGRl YnVnZ2luZy4gICovCkBAIC00OTA4LDcgKzQ2MjMsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJi IDEwMDY0NAogIAogICAgLyogQWxsb2NhdGUgYSBuZXcgcGFydGlhbCBzeW1ib2wgdGFibGUgc3Ry dWN0dXJlLiAgKi8KICAgIHBzdCA9IHN0YXJ0X3BzeW10YWJfY29tbW9uIChvYmpmaWxlLCBvYmpm aWxlLT5zZWN0aW9uX29mZnNldHMsCi1AQCAtMTkyOSw4ICsyMTM5LDggQEAgcHJvY2Vzc19wc3lt dGFiX2NvbXBfdW5pdCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMTkyOSw4ICsyMTMz LDggQEAgcHJvY2Vzc19wc3ltdGFiX2NvbXBfdW5pdCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs CiAgICAgIH0KICAgIGVsc2UgaWYgKGNvbXBfdW5pdF9kaWUuaGFzX3BjX2luZm8KICAJICAgJiYg Y29tcF91bml0X2RpZS5sb3dwYyA8IGNvbXBfdW5pdF9kaWUuaGlnaHBjKQpAQCAtNDkxOSw3ICs0 NjM0LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgYWRkcm1hcF9zZXRf ZW1wdHkgKG9iamZpbGUtPnBzeW10YWJzX2FkZHJtYXAsCiAgCQkgICAgICAgY29tcF91bml0X2Rp ZS5sb3dwYyArIGJhc2VhZGRyLAogIAkJICAgICAgIGNvbXBfdW5pdF9kaWUuaGlnaHBjICsgYmFz ZWFkZHIgLSAxLCBwc3QpOwotQEAgLTIzNjEsNyArMjU3MSw3IEBAIHBhcnRpYWxfZGllX3BhcmVu dF9zY29wZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKK0BAIC0yMzYxLDcgKzI1NjUs NyBAQCBwYXJ0aWFsX2RpZV9wYXJlbnRfc2NvcGUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpw ZGksCiAgCSBpZ25vcmluZyB0aGVtLiAgKi8KICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2Nv bXBsYWludHMsCiAgCQkgXygidW5oYW5kbGVkIGNvbnRhaW5pbmcgRElFIHRhZyAlZCBmb3IgRElF IGF0ICVkIiksCkBAIC00OTI4LDcgKzQ2NDMsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEw MDY0NAogICAgICAgIHBhcmVudC0+c2NvcGUgPSBncmFuZHBhcmVudF9zY29wZTsKICAgICAgfQog IAotQEAgLTIzNzYsMTIgKzI1ODYsMjIgQEAgcGFydGlhbF9kaWVfZnVsbF9uYW1lIChzdHJ1Y3Qg cGFydGlhbF9kaWVfaW5mbyAqcGRpLAorQEAgLTIzNzYsMTIgKzI1ODAsMjIgQEAgcGFydGlhbF9k aWVfZnVsbF9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkJICAgICAgIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogIHsKICAgIGNoYXIgKnBhcmVudF9zY29wZTsKQEAgLTQ5NTUs NyArNDY3MCw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgfQogIAogIHN0YXRp YyB2b2lkCi1AQCAtMjM5NywxMiArMjYxNyw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0 IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjM5Nywx MiArMjYxMSw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8g KnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChv YmpmaWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKICAKQEAg LTQ5NzEsNyArNDY4Niw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgCiAgICBp ZiAoYWN0dWFsX25hbWUgPT0gTlVMTCkKICAgICAgYWN0dWFsX25hbWUgPSBwZGktPm5hbWU7Ci1A QCAtMjUzNCwyMiArMjc1MSw2IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjUzNCwyMiArMjc0NSw2 IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKQEAgLTQ5OTQsNyAr NDcwOSw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgICBpZiAoYnVpbHRfYWN0 dWFsX25hbWUpCiAgICAgIHhmcmVlIChhY3R1YWxfbmFtZSk7CiAgfQotQEAgLTI1NTksOSArMjc2 MCw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjU1OSw5ICsyNzU0LDkgQEAgYWRkX3BhcnRpYWxf c3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICAgICBuYW1lIGxpc3RlZCBpbiB0aGUgZGllLiAgKi8KICAKICBzdGF0aWMgaW50CkBAIC01 MDA2LDcgKzQ3MjEsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogICAgICB7CiAg ICAgIGNhc2UgRFdfVEFHX25hbWVzcGFjZToKICAgICAgY2FzZSBEV19UQUdfdHlwZWRlZjoKLUBA IC0yNTcxLDcgKzI3NzIsMjMgQEAgcGRpX25lZWRzX25hbWVzcGFjZSAoZW51bSBkd2FyZl90YWcg dGFnKQorQEAgLTI1NzEsNyArMjc2NiwyMyBAQCBwZGlfbmVlZHNfbmFtZXNwYWNlIChlbnVtIGR3 YXJmX3RhZyB0YWcpCiAgICAgIGNhc2UgRFdfVEFHX3VuaW9uX3R5cGU6CiAgICAgIGNhc2UgRFdf VEFHX2VudW1lcmF0aW9uX3R5cGU6CiAgICAgIGNhc2UgRFdfVEFHX2VudW1lcmF0b3I6CkBAIC01 MDMwLDcgKzQ3NDUsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogICAgICBkZWZh dWx0OgogICAgICAgIHJldHVybiAwOwogICAgICB9Ci1AQCAtMjcwMCwyNyArMjkxNyw2IEBAIGd1 ZXNzX3N0cnVjdHVyZV9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3RydWN0X3BkaSwK K0BAIC0yNzAwLDI3ICsyOTExLDYgQEAgZ3Vlc3Nfc3RydWN0dXJlX25hbWUgKHN0cnVjdCBwYXJ0 aWFsX2RpZV9pbmZvICpzdHJ1Y3RfcGRpLAogIAogICAgICAgIGlmIChyZWFsX3BkaS0+ZGllX3Bh cmVudCAhPSBOVUxMKQogIAlyZXR1cm47CkBAIC01MDU4LDcgKzQ3NzMsNyBAQCBpbmRleCA0NDVi YWI4Li41MTY5OWJiIDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTMxNzAsNyArMzM2Niw2IEBA IHByb2Nlc3NfZnVsbF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9j dSkKK0BAIC0zMTcwLDcgKzMzNjAsNiBAQCBwcm9jZXNzX2Z1bGxfY29tcF91bml0IChzdHJ1Y3Qg ZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCiAgICBDT1JFX0FERFIgbG93cGMsIGhpZ2hwYzsK ICAgIHN0cnVjdCBzeW10YWIgKnN5bXRhYjsKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwpA QCAtNTA2Niw3ICs0NzgxLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgIENP UkVfQUREUiBiYXNlYWRkcjsKICAKICAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNl Y3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOwotQEAgLTMxODAsMzAgKzMz NzUsNyBAQCBwcm9jZXNzX2Z1bGxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRh ICpwZXJfY3UpCitAQCAtMzE4MCwzMCArMzM2OSw3IEBAIHByb2Nlc3NfZnVsbF9jb21wX3VuaXQg KHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9jdSkKICAKICAgIGN1LT5saXN0X2luX3Nj b3BlID0gJmZpbGVfc3ltYm9sczsKICAKQEAgLTUwOTgsNyArNDgxMyw3IEBAIGluZGV4IDQ0NWJh YjguLjUxNjk5YmIgMTAwNjQ0CiAgCiAgICAvKiBEbyBsaW5lIG51bWJlciBkZWNvZGluZyBpbiBy ZWFkX2ZpbGVfc2NvcGUgKCkgKi8KICAgIHByb2Nlc3NfZGllIChjdS0+ZGllcywgY3UpOwotQEAg LTMyMzQsNiArMzQwNiw3IEBAIHByb2Nlc3NfZnVsbF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJf cGVyX2N1X2RhdGEgKnBlcl9jdSkKK0BAIC0zMjM0LDYgKzM0MDAsNyBAQCBwcm9jZXNzX2Z1bGxf Y29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCiAgc3RhdGljIHZv aWQKICBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogIHsKQEAgLTUxMDYsNyArNDgyMSw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAw NjQ0CiAgICBzd2l0Y2ggKGRpZS0+dGFnKQogICAgICB7CiAgICAgIGNhc2UgRFdfVEFHX3BhZGRp bmc6Ci1AQCAtMzMxMiw0MiArMzQ4NSw2OSBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTMzMTIsNDIgKzM0NzksNjkgQEAgcHJv Y2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAv KiBSZXR1cm4gdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIERJRSwgYmFzZWQgb24gaXRzIERX X0FUX25hbWUuCiAgICAgSWYgc2NvcGUgcXVhbGlmaWVycyBhcmUgYXBwcm9wcmlhdGUgdGhleSB3 aWxsIGJlIGFkZGVkLiAgVGhlIHJlc3VsdAogICAgIHdpbGwgYmUgYWxsb2NhdGVkIG9uIHRoZSBv YmpmaWxlX29ic3RhY2ssIG9yIE5VTEwgaWYgdGhlIERJRSBkb2VzCkBAIC01MTk4LDcgKzQ5MTMs NyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIAogIHN0YXRpYyB2b2lkCiAgcmVh ZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCi1AQCAtMzM1Niw5ICszNTU2LDE1IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTMzNTYsOSArMzU1 MCwxNSBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCBkaWVfaW5mbyAqaW1wb3J0ZWRfZGllOwogICAg Y29uc3QgY2hhciAqaW1wb3J0ZWRfbmFtZTsKICAgIGNvbnN0IGNoYXIgKmltcG9ydGVkX25hbWVf cHJlZml4OwpAQCAtNTIxNiw3ICs0OTMxLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2 NDQKICAgIGltcG9ydF9hdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfaW1wb3J0LCBjdSk7 CiAgICBpZiAoaW1wb3J0X2F0dHIgPT0gTlVMTCkKICAgICAgewotQEAgLTM0MDYsMjkgKzM2MTIs NDUgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCitAQCAtMzQwNiwyOSArMzYwNiw0NSBAQCByZWFkX2ltcG9ydF9zdGF0 ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAg ICByZXR1cm47CiAgICAgIH0KICAKQEAgLTUyNzUsNyArNDk5MCw3IEBAIGluZGV4IDQ0NWJhYjgu LjUxNjk5YmIgMTAwNjQ0CiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMzY3Niw3ICszODk4LDcg QEAgdW5zaWduZWRfaW50X2NvbXBhciAoY29uc3Qgdm9pZCAqYXAsIGNvbnN0IHZvaWQgKmJwKQor QEAgLTM2NzYsNyArMzg5Miw3IEBAIHVuc2lnbmVkX2ludF9jb21wYXIgKGNvbnN0IHZvaWQgKmFw LCBjb25zdCB2b2lkICpicCkKICAKICAgIHJldHVybiAoYSA+IGIpIC0gKGIgPiBhKTsKICB9CkBA IC01Mjg0LDcgKzQ5OTksNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIC8qIERX X0FUX2Fic3RyYWN0X29yaWdpbiBpbmhlcml0cyB3aG9sZSBESUVzIChub3QganVzdCB0aGVpciBh dHRyaWJ1dGVzKS4KICAgICBJbmhlcml0IG9ubHkgdGhlIGNoaWxkcmVuIG9mIHRoZSBEV19BVF9h YnN0cmFjdF9vcmlnaW4gRElFIG5vdCBiZWluZyBhbHJlYWR5CiAgICAgcmVmZXJlbmNlZCBieSBE V19BVF9hYnN0cmFjdF9vcmlnaW4gZnJvbSB0aGUgY2hpbGRyZW4gb2YgdGhlIGN1cnJlbnQgRElF LiAgKi8KLUBAIC0zNjk3LDYgKzM5MTksMTQgQEAgaW5oZXJpdF9hYnN0cmFjdF9kaWVzIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzY5Nyw2ICszOTEz LDE0IEBAIGluaGVyaXRfYWJzdHJhY3RfZGllcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAKICAgIGF0dHIg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKQEAgLTUyOTks NyArNTAxNCw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgICBpZiAoIWF0dHIp CiAgICAgIHJldHVybjsKICAKLUBAIC0zNzk1LDYgKzQwMjUsNyBAQCByZWFkX2Z1bmNfc2NvcGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zNzk1LDYg KzQwMTksNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICAgIGNoYXIgKm5hbWU7CiAgICBDT1JFX0FERFIgYmFzZWFkZHI7CiAg ICBzdHJ1Y3QgYmxvY2sgKmJsb2NrOwpAQCAtNTMwNyw3ICs1MDIyLDcgQEAgaW5kZXggNDQ1YmFi OC4uNTE2OTliYiAxMDA2NDQKICAgIGludCBpbmxpbmVkX2Z1bmMgPSAoZGllLT50YWcgPT0gRFdf VEFHX2lubGluZWRfc3Vicm91dGluZSk7CiAgCiAgICBpZiAoaW5saW5lZF9mdW5jKQotQEAgLTM4 MTMsMTMgKzQwNDQsMjMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzgxMywxMyArNDAzOCwyMyBAQCByZWFkX2Z1bmNf c2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAg IGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZf VEVYVCAob2JqZmlsZSkpOwogIApAQCAtNTMzNCw3ICs1MDQ5LDcgQEAgaW5kZXggNDQ1YmFiOC4u NTE2OTliYiAxMDA2NDQKICAgIGxvd3BjICs9IGJhc2VhZGRyOwogICAgaGlnaHBjICs9IGJhc2Vh ZGRyOwogIAotQEAgLTM4NDYsMTQgKzQwODcsMTIgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzg0NiwxNCArNDA4MSwx MiBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAKICAgIGN1LT5saXN0X2luX3Njb3BlID0gJmxvY2FsX3N5bWJvbHM7CiAgCkBA IC01MzU0LDcgKzUwNjksNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogICAgICB9 CiAgCiAgICBpbmhlcml0X2Fic3RyYWN0X2RpZXMgKGRpZSwgY3UpOwotQEAgLTM5MDUsNyArNDE0 NCw3IEBAIHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTM5MDUsNyArNDEzOCw3IEBAIHJlYWRfbGV4aWNhbF9i bG9ja19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQog ICAgICAgYXMgbXVsdGlwbGUgbGV4aWNhbCBibG9ja3M/ICBIYW5kbGluZyBjaGlsZHJlbiBpbiBh IHNhbmUgd2F5IHdvdWxkCiAgICAgICBiZSBuYXN0eS4gIE1pZ2h0IGJlIGVhc2llciB0byBwcm9w ZXJseSBleHRlbmQgZ2VuZXJpYyBibG9ja3MgdG8gCiAgICAgICBkZXNjcmliZSByYW5nZXMuICAq LwpAQCAtNTM2Myw3ICs1MDc4LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAg ICAgcmV0dXJuOwogICAgbG93cGMgKz0gYmFzZWFkZHI7CiAgICBoaWdocGMgKz0gYmFzZWFkZHI7 Ci1AQCAtMzkyMiw3ICs0MTYxLDcgQEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzkyMiw3ICs0MTU1LDcg QEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCiAgICAgIH0KICAgIG5ldyA9IHBvcF9jb250ZXh0ICgpOwogIApAQCAt NTM3Miw3ICs1MDg3LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgewog ICAgICAgIHN0cnVjdCBibG9jayAqYmxvY2sKICAgICAgICAgID0gZmluaXNoX2Jsb2NrICgwLCAm bG9jYWxfc3ltYm9scywgbmV3LT5vbGRfYmxvY2tzLCBuZXctPnN0YXJ0X2FkZHIsCi1AQCAtNDA3 Nyw3ICs0MzE2LDggQEAgZHdhcmYyX3Jhbmdlc19yZWFkICh1bnNpZ25lZCBvZmZzZXQsIENPUkVf QUREUiAqbG93X3JldHVybiwKK0BAIC00MDc3LDcgKzQzMTAsOCBAQCBkd2FyZjJfcmFuZ2VzX3Jl YWQgKHVuc2lnbmVkIG9mZnNldCwgQ09SRV9BRERSICpsb3dfcmV0dXJuLAogICAgIGRpc2NvbnRp bnVvdXMsIGkuZS4gZGVyaXZlZCBmcm9tIERXX0FUX3JhbmdlcyBpbmZvcm1hdGlvbi4gICovCiAg c3RhdGljIGludAogIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg Q09SRV9BRERSICpsb3dwYywKQEAgLTUzODIsNyArNTA5Nyw3IEBAIGluZGV4IDQ0NWJhYjguLjUx Njk5YmIgMTAwNjQ0CiAgewogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAgIENPUkVfQURE UiBsb3cgPSAwOwotQEAgLTQxMDUsNyArNDM0NSw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKK0BAIC00MTA1LDcgKzQzMzks NyBAQCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQURE UiAqbG93cGMsCiAgCXsKICAJICAvKiBWYWx1ZSBvZiB0aGUgRFdfQVRfcmFuZ2VzIGF0dHJpYnV0 ZSBpcyB0aGUgb2Zmc2V0IGluIHRoZQogIAkgICAgIC5kZWJ1Z19yYW5nZXMgc2VjdGlvbi4gICov CkBAIC01MzkxLDcgKzUxMDYsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIAkg ICAgcmV0dXJuIDA7CiAgCSAgLyogRm91bmQgZGlzY29udGludW91cyByYW5nZSBvZiBhZGRyZXNz ZXMuICAqLwogIAkgIHJldCA9IC0xOwotQEAgLTQxNDQsNyArNDM4NCw3IEBAIGR3YXJmMl9nZXRf c3VicHJvZ3JhbV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTQxNDQsNyAr NDM3OCw3IEBAIGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5m byAqZGllLAogICAgQ09SRV9BRERSIGxvdywgaGlnaDsKICAgIHN0cnVjdCBkaWVfaW5mbyAqY2hp bGQgPSBkaWUtPmNoaWxkOwogIApAQCAtNTQwMCw3ICs1MTE1LDcgQEAgaW5kZXggNDQ1YmFiOC4u NTE2OTliYiAxMDA2NDQKICAgICAgewogICAgICAgICpsb3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cp OwogICAgICAgICpoaWdocGMgPSBtYXggKCpoaWdocGMsIGhpZ2gpOwotQEAgLTQxODEsNyArNDQy MSw3IEBAIGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTQx ODEsNyArNDQxNSw3IEBAIGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGll LAogICAgQ09SRV9BRERSIGJlc3RfaGlnaCA9IChDT1JFX0FERFIpIDA7CiAgICBDT1JFX0FERFIg Y3VycmVudF9sb3csIGN1cnJlbnRfaGlnaDsKICAKQEAgLTU0MDksMjEgKzUxMjQsMzEgQEAgaW5k ZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgewogICAgICAgIGJlc3RfbG93ID0gY3Vy cmVudF9sb3c7CiAgICAgICAgYmVzdF9oaWdoID0gY3VycmVudF9oaWdoOwotQEAgLTQzOTMsNyAr NDYzMywxMiBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1 Y3QgZGllX2luZm8gKmRpZSwKLSAgICAgICAgICAgICAgIGJ5dGVfb2Zmc2V0ID0gMDsKLSAgICAg ICAgICAgICB9Ci0gICAgICAgICAgIGVsc2UgaWYgKGF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0 cikpCitAQCAtNDM4NCwyMSArNDYxOCw4IEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVs ZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAorICAgICAgIC8qIEdldCBiaXQgb2Zm c2V0IG9mIGZpZWxkLiAgKi8KKyAgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRf ZGF0YV9tZW1iZXJfbG9jYXRpb24sIGN1KTsKKyAgICAgICBpZiAoYXR0cikKKy0JeworLSAgICAg ICAgICBpbnQgYnl0ZV9vZmZzZXQ7CistCistICAgICAgICAgIGlmIChhdHRyX2Zvcm1faXNfc2Vj dGlvbl9vZmZzZXQgKGF0dHIpKQorLSAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgIGR3YXJm Ml9jb21wbGV4X2xvY2F0aW9uX2V4cHJfY29tcGxhaW50ICgpOworLSAgICAgICAgICAgICAgYnl0 ZV9vZmZzZXQgPSAwOworLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgZWxzZSBpZiAoYXR0cl9m b3JtX2lzX2NvbnN0YW50IChhdHRyKSkKIC0gICAgICAgICAgICBieXRlX29mZnNldCA9IGR3YXJm Ml9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMCk7Ci0rICAgICAgICAgICAgewotKwkg ICAgICBlbnVtIGdldF9hdHRyX2NvbnN0YW50X3ZhbHVlIHR5cGU7Ci0rCSAgICAgIAotKwkgICAg ICB0eXBlID0gZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsICZieXRlX29mZnNldCk7Ci0r CSAgICAgIGdkYl9hc3NlcnQgKHR5cGUgPT0gZHdhcmYyX2F0dHJfY29uc3QpOwotKwkgICAgfQot ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgYnl0ZV9vZmZzZXQgPSBkZWNvZGVfbG9jZGVz YyAoRFdfQkxPQ0sgKGF0dHIpLCBjdSk7Ci0gCi1AQCAtNDQ3Niw3ICs0NzIxLDExIEBAIGR3YXJm Ml9hZGRfZmllbGQgKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGll LAorLSAgICAgICAgICBlbHNlCistICAgICAgICAgICAgYnl0ZV9vZmZzZXQgPSBkZWNvZGVfbG9j ZGVzYyAoRFdfQkxPQ0sgKGF0dHIpLCBjdSk7CistCistICAgICAgICAgIFNFVF9GSUVMRF9CSVRQ T1MgKCpmcCwgYnl0ZV9vZmZzZXQgKiBiaXRzX3Blcl9ieXRlKTsKKy0JfQorKwlTRVRfRklFTERf QklUUE9TICgqZnAsIGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMCwgY3Up CisrCQkJICAgICAgICogYml0c19wZXJfYnl0ZSk7CisgICAgICAgYXR0ciA9IGR3YXJmMl9hdHRy IChkaWUsIERXX0FUX2JpdF9vZmZzZXQsIGN1KTsKKyAgICAgICBpZiAoYXR0cikKKyAJeworQEAg LTQ0NzYsNyArNDY5NywxMSBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAq ZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAgICAgICBpZiAoZmllbGRuYW1lID09IE5VTEwp CiAgCXJldHVybjsKICAKQEAgLTU0MzYsNyArNTE2MSwxNiBAQCBpbmRleCA0NDViYWI4Li41MTY5 OWJiIDEwMDY0NAogICAgICAgIHBoeXNuYW1lID0gZHdhcmYyX2xpbmthZ2VfbmFtZSAoZGllLCBj dSk7CiAgCiAgICAgICAgLyogVGhlIG5hbWUgaXMgYWxyZWFkeSBhbGxvY2F0ZWQgYWxvbmcgd2l0 aCB0aGlzIG9iamZpbGUsIHNvIHdlIGRvbid0Ci1AQCAtNDYwNyw3ICs0ODU2LDExIEBAIGR3YXJm Ml9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8g KmRpZSwKK0BAIC00NDkwLDcgKzQ3MTUsNyBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmll bGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKKyAgICAgICAvKiBDKysgYmFzZSBj bGFzcyBmaWVsZC4gICovCisgICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2Rh dGFfbWVtYmVyX2xvY2F0aW9uLCBjdSk7CisgICAgICAgaWYgKGF0dHIpCistCVNFVF9GSUVMRF9C SVRQT1MgKCpmcCwgZGVjb2RlX2xvY2Rlc2MgKERXX0JMT0NLIChhdHRyKSwgY3UpCisrCVNFVF9G SUVMRF9CSVRQT1MgKCpmcCwgZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAw LCBjdSkKKyAJCQkgICAgICAgKiBiaXRzX3Blcl9ieXRlKTsKKyAgICAgICBGSUVMRF9CSVRTSVpF ICgqZnApID0gMDsKKyAgICAgICBGSUVMRF9UWVBFICgqZnApID0gZGllX3R5cGUgKGRpZSwgY3Up OworQEAgLTQ2MDcsNyArNDgzMiwxMSBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZp ZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgICBpZiAoZmllbGRuYW1lID09 IE5VTEwpCiAgICAgIHJldHVybjsKICAKQEAgLTU0NDksNyArNTE4Myw3IEBAIGluZGV4IDQ0NWJh YjguLjUxNjk5YmIgMTAwNjQ0CiAgICBwaHlzbmFtZSA9IGR3YXJmMl9saW5rYWdlX25hbWUgKGRp ZSwgY3UpOwogIAogICAgLyogTG9vayB1cCBtZW1iZXIgZnVuY3Rpb24gbmFtZSBpbiBmaWVsZGxp c3QuICAqLwotQEAgLTQ2NTIsNyArNDkwNSw3IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1 Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC00NjUyLDcgKzQ4 ODEsNyBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3Ry dWN0IGRpZV9pbmZvICpkaWUsCiAgICAvKiBUaGUgbmFtZSBpcyBhbHJlYWR5IGFsbG9jYXRlZCBh bG9uZyB3aXRoIHRoaXMgb2JqZmlsZSwgc28gd2UgZG9uJ3QKICAgICAgIG5lZWQgdG8gZHVwbGlj YXRlIGl0IGZvciB0aGUgdHlwZS4gICovCiAgICBmbnAtPnBoeXNuYW1lID0gcGh5c25hbWUgPyBw aHlzbmFtZSA6ICIiOwpAQCAtNTQ1OCw3ICs1MTkyLDMxIEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5 YmIgMTAwNjQ0CiAgICB0aGlzX3R5cGUgPSByZWFkX3R5cGVfZGllIChkaWUsIGN1KTsKICAgIGlm ICh0aGlzX3R5cGUgJiYgVFlQRV9DT0RFICh0aGlzX3R5cGUpID09IFRZUEVfQ09ERV9GVU5DKQog ICAgICB7Ci1AQCAtNDgzNiw3ICs1MDg5LDcgQEAgcXVpcmtfZ2NjX21lbWJlcl9mdW5jdGlvbl9w b2ludGVyIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAt NDcwOSwyMiArNDkzOCw3IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5m byAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKKyAgIC8qIEdldCBpbmRleCBpbiB2aXJ0dWFs IGZ1bmN0aW9uIHRhYmxlIGlmIGl0IGlzIGEgdmlydHVhbCBtZW1iZXIgZnVuY3Rpb24uICAqLwor ICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX3Z0YWJsZV9lbGVtX2xvY2F0aW9uLCBj dSk7CisgICBpZiAoYXR0cikKKy0gICAgeworLSAgICAgIC8qIFN1cHBvcnQgdGhlIC5kZWJ1Z19s b2Mgb2Zmc2V0cyAqLworLSAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQorLSAg ICAgICAgeworLSAgICAgICAgICBmbnAtPnZvZmZzZXQgPSBkZWNvZGVfbG9jZGVzYyAoRFdfQkxP Q0sgKGF0dHIpLCBjdSkgKyAyOworLSAgICAgICAgfQorLSAgICAgIGVsc2UgaWYgKGF0dHJfZm9y bV9pc19zZWN0aW9uX29mZnNldCAoYXR0cikpCistICAgICAgICB7CistCSAgZHdhcmYyX2NvbXBs ZXhfbG9jYXRpb25fZXhwcl9jb21wbGFpbnQgKCk7CistICAgICAgICB9CistICAgICAgZWxzZQor LSAgICAgICAgeworLQkgIGR3YXJmMl9pbnZhbGlkX2F0dHJpYl9jbGFzc19jb21wbGFpbnQgKCJE V19BVF92dGFibGVfZWxlbV9sb2NhdGlvbiIsCistCQkJCQkJIGZpZWxkbmFtZSk7CistICAgICAg ICB9CistICAgfQorKyAgICBmbnAtPnZvZmZzZXQgPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRf dmFsdWUgKGF0dHIsIC0yLCBjdSkgKyAyOworIH0KKyAKKyAvKiBDcmVhdGUgdGhlIHZlY3RvciBv ZiBtZW1iZXIgZnVuY3Rpb24gZmllbGRzLCBhbmQgYXR0YWNoIGl0IHRvIHRoZSB0eXBlLiAgKi8K K0BAIC00ODM2LDcgKzUwNTAsNyBAQCBxdWlya19nY2NfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgcmV0dXJu IE5VTEw7CiAgCiAgICBkb21haW5fdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKFRZUEVfRklFTERf VFlQRSAocGZuX3R5cGUsIDApKTsKQEAgLTU0NjcsNyArNTIyNSw3IEBAIGluZGV4IDQ0NWJhYjgu LjUxNjk5YmIgMTAwNjQ0CiAgICBzbWFzaF90b19tZXRob2RfdHlwZSAodHlwZSwgZG9tYWluX3R5 cGUsIFRZUEVfVEFSR0VUX1RZUEUgKHBmbl90eXBlKSwKICAJCQlUWVBFX0ZJRUxEUyAocGZuX3R5 cGUpLCBUWVBFX05GSUVMRFMgKHBmbl90eXBlKSwKICAJCQlUWVBFX1ZBUkFSR1MgKHBmbl90eXBl KSk7Ci1AQCAtNDg4OSw3ICs1MTQyLDcgQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTQ4ODksNyArNTEwMyw3IEBA IHJlYWRfc3RydWN0dXJlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAgICAgICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHR5cGUsIGN1KTsKICAg ICAgfQogIApAQCAtNTQ3Niw3ICs1MjM0LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2 NDQKICAgIElOSVRfQ1BMVVNfU1BFQ0lGSUMgKHR5cGUpOwogIAogICAgbmFtZSA9IGR3YXJmMl9u YW1lIChkaWUsIGN1KTsKLUBAIC00ODk4LDE0ICs1MTUxLDE4IEBAIHJlYWRfc3RydWN0dXJlX3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC00ODk4 LDE0ICs1MTEyLDE4IEBAIHJlYWRfc3RydWN0dXJlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1 YWdlX2NwbHVzCiAgCSAgfHwgY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2phdmEpCiAgCXsKQEAg LTU0OTgsNyArNTI1Niw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgCX0KICAg ICAgfQogIAotQEAgLTUxMTUsNyArNTM3Miw3IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUxMTUsNyArNTMz Myw3IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQogICAgICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwg Y3UpOwogICAgICB9CiAgCkBAIC01NTA3LDcgKzUyNjUsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5 OWJiIDEwMDY0NAogIAogICAgVFlQRV9DT0RFICh0eXBlKSA9IFRZUEVfQ09ERV9FTlVNOwogICAg bmFtZSA9IGR3YXJmMl9mdWxsX25hbWUgKGRpZSwgY3UpOwotQEAgLTUxNDMsNTEgKzU0MDAsNiBA QCByZWFkX2VudW1lcmF0aW9uX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKK0BAIC01MTQzLDUxICs1MzYxLDYgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICByZXR1cm4g c2V0X2RpZV90eXBlIChkaWUsIHR5cGUsIGN1KTsKICB9CiAgCkBAIC01NTU5LDcgKzUzMTcsNyBA QCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIC8qIEdpdmVuIGEgcG9pbnRlciB0byBh IGRpZSB3aGljaCBiZWdpbnMgYW4gZW51bWVyYXRpb24sIHByb2Nlc3MgYWxsCiAgICAgdGhlIGRp ZXMgdGhhdCBkZWZpbmUgdGhlIG1lbWJlcnMgb2YgdGhlIGVudW1lcmF0aW9uLCBhbmQgY3JlYXRl IHRoZQogICAgIHN5bWJvbCBmb3IgdGhlIGVudW1lcmF0aW9uIHR5cGUuCi1AQCAtNTI2NSw2ICs1 NDc3LDI5IEBAIHByb2Nlc3NfZW51bWVyYXRpb25fc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01MjY1LDYgKzU0MzgsMjkgQEAgcHJvY2Vzc19l bnVtZXJhdGlvbl9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogICAgbmV3X3N5bWJvbCAoZGllLCB0aGlzX3R5cGUsIGN1KTsKICB9CiAgCkBAIC01NTg5 LDcgKzUzNDcsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIC8qIEV4dHJhY3Qg YWxsIGluZm9ybWF0aW9uIGZyb20gYSBEV19UQUdfYXJyYXlfdHlwZSBESUUgYW5kIHB1dCBpdCBp bgogICAgIHRoZSBESUUncyB0eXBlIGZpZWxkLiAgRm9yIG5vdywgdGhpcyBvbmx5IGhhbmRsZXMg b25lIGRpbWVuc2lvbmFsCiAgICAgYXJyYXlzLiAgKi8KLUBAIC01Mjc4LDcgKzU1MTMsNyBAQCBy ZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC01Mjc4LDcgKzU0NzQsNyBAQCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5 cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZTsKICAgIHN0cnVjdCB0eXBlICoqcmFuZ2VfdHlw ZXMgPSBOVUxMOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTU1OTgsNyArNTM1Niw3 IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgICBzdHJ1Y3QgY2xlYW51cCAqYmFj a190bzsKICAgIGNoYXIgKm5hbWU7CiAgCi1AQCAtNTMyNSwxNiArNTU2MCwxMSBAQCByZWFkX2Fy cmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BA IC01MzI1LDE2ICs1NTIxLDExIEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgdHlwZSA9IGVsZW1lbnRfdHlwZTsKICAKICAg IGlmIChyZWFkX2FycmF5X29yZGVyIChkaWUsIGN1KSA9PSBEV19PUkRfY29sX21ham9yKQpAQCAt NTYyMCw3ICs1Mzc4LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAKICAgIC8q IFVuZGVyc3RhbmQgRHdhcmYyIHN1cHBvcnQgZm9yIHZlY3RvciB0eXBlcyAobGlrZSB0aGV5IG9j Y3VyIG9uCiAgICAgICB0aGUgUG93ZXJQQyB3LyBBbHRpVmVjKS4gIEdjYyBqdXN0IGFkZHMgYW5v dGhlciBhdHRyaWJ1dGUgdG8gdGhlCi1AQCAtNTQwMSwxMiArNTYzMSwxNCBAQCByZWFkX3NldF90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTQw MSw0OSArNTU5Miw4MyBAQCByZWFkX3NldF90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHNldF90eXBl LCBjdSk7CiAgfQogIApAQCAtNTYzNyw4ICs1Mzk1LDI2IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5 YmIgMTAwNjQ0CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwogICAgc3RydWN0IHN5bWJvbCAq c3ltOwogICAgQ09SRV9BRERSIGJhc2UgPSAoQ09SRV9BRERSKSAwOwotQEAgLTU0MzEsMTAgKzU2 NjMsNDAgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKLSAgICAgfQorIAorICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX2xvY2F0aW9uLCBjdSk7CisgICBpZiAoYXR0cikKKy0gICAgeworLSAgICAgIC8qIFN1cHBv cnQgdGhlIC5kZWJ1Z19sb2Mgb2Zmc2V0cyAqLworLSAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxv Y2sgKGF0dHIpKQorLSAgICAgICAgeworLSAgICAgICAgICBiYXNlID0gZGVjb2RlX2xvY2Rlc2Mg KERXX0JMT0NLIChhdHRyKSwgY3UpOworLSAgICAgICAgfQorLSAgICAgIGVsc2UgaWYgKGF0dHJf Zm9ybV9pc19zZWN0aW9uX29mZnNldCAoYXR0cikpCistICAgICAgICB7CistCSAgZHdhcmYyX2Nv bXBsZXhfbG9jYXRpb25fZXhwcl9jb21wbGFpbnQgKCk7CistICAgICAgICB9CistICAgICAgZWxz ZQorLSAgICAgICAgeworLQkgIGR3YXJmMl9pbnZhbGlkX2F0dHJpYl9jbGFzc19jb21wbGFpbnQg KCJEV19BVF9sb2NhdGlvbiIsCistCQkJCQkJICJjb21tb24gYmxvY2sgbWVtYmVyIik7CistICAg ICAgICB9CistICAgIH0KKysgICAgYmFzZSA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1 ZSAoYXR0ciwgMCwgY3UpOwogICAgaWYgKGRpZS0+Y2hpbGQgIT0gTlVMTCkKICAgICAgewogKyAg ICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlID0gY3UtPm9iamZpbGU7CkBAIC01NjUzLDkgKzU0 MjksOSBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogKyAgICAgIC8qIEFydGlmaWNp YWwgdHlwZSB0byBiZSB1c2VkIG9ubHkgYnkgYGluZm8gY29tbW9uJy4gICovCiArICAgICAgVFlQ RV9OQU1FICh0eXBlKSA9ICI8Y29tbW9uPiI7CiArCi0rICAgICAgY2hpbGRfZGllID0gZGllLT5j aGlsZDsKLSsgICAgICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQotKwl7Cisg ICAgICAgY2hpbGRfZGllID0gZGllLT5jaGlsZDsKKyAgICAgICB3aGlsZSAoY2hpbGRfZGllICYm IGNoaWxkX2RpZS0+dGFnKQorIAl7CiArCSAgVFlQRV9ORklFTERTICh0eXBlKSsrOwogKwkgIGNo aWxkX2RpZSA9IHNpYmxpbmdfZGllIChjaGlsZF9kaWUpOwogKwl9CkBAIC01NjY3LDkgKzU0NDMs OSBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogKwkJCQkgICAgICogVFlQRV9ORklF TERTICh0eXBlKSk7CiArICAgICAgCiArICAgICAgZmllbGQgPSBUWVBFX0ZJRUxEUyAodHlwZSk7 Ci0gICAgICAgY2hpbGRfZGllID0gZGllLT5jaGlsZDsKLSAgICAgICB3aGlsZSAoY2hpbGRfZGll ICYmIGNoaWxkX2RpZS0+dGFnKQotIAl7CisrICAgICAgY2hpbGRfZGllID0gZGllLT5jaGlsZDsK KysgICAgICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQorKwl7CiArCSAgLyog Q3JlYXRlIHRoZSBzeW1ib2wgaW4gdGhlIERXX1RBR19jb21tb25fYmxvY2sgYmxvY2sgaW4gdGhl IGN1cnJlbnQKICsJICAgICBzeW1ib2wgc2NvcGUuICAqLwogIAkgIHN5bSA9IG5ld19zeW1ib2wg KGNoaWxkX2RpZSwgTlVMTCwgY3UpOwpAQCAtNTY3OCw4ICs1NDU0LDkgQEAgaW5kZXggNDQ1YmFi OC4uNTE2OTliYiAxMDA2NDQKICAJICBhdHRyID0gZHdhcmYyX2F0dHIgKGNoaWxkX2RpZSwgRFdf QVRfZGF0YV9tZW1iZXJfbG9jYXRpb24sIGN1KTsKICAJICBpZiAoYXR0cikKICAJICAgIHsKLUBA IC01NDQyLDggKzU3MDQsMjUgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAJCWJhc2UgKyBkZWNvZGVfbG9jZGVzYyAoRFdf QkxPQ0sgKGF0dHIpLCBjdSk7CisgCSAgICAgIFNZTUJPTF9WQUxVRV9BRERSRVNTIChzeW0pID0K Ky0JCWJhc2UgKyBkZWNvZGVfbG9jZGVzYyAoRFdfQkxPQ0sgKGF0dHIpLCBjdSk7CisrCQliYXNl ICsgZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwLCBjdSk7CiAgCSAgICAg IGFkZF9zeW1ib2xfdG9fbGlzdCAoc3ltLCAmZ2xvYmFsX3N5bWJvbHMpOwogIAkgICAgfQogKwpA QCAtNTcwNCw3ICs1NDgxLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAg fQogIH0KICAKLUBAIC01NTExLDcgKzU3OTAsNyBAQCByZWFkX25hbWVzcGFjZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU1MTEsNyArNTczNiw3IEBA IHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiAgICAgICAgaWYgKGlzX2Fub255bW91cykKICAJewogIAkgIGNvbnN0IGNoYXIgKnByZXZp b3VzX3ByZWZpeCA9IGRldGVybWluZV9wcmVmaXggKGRpZSwgY3UpOwpAQCAtNTcxMyw3ICs1NDkw LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAJfQogICAgICB9CiAgCi1AQCAt NTcwNSwyOSArNTk4NCw5NSBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU3MDUsMjkgKzU5MzAsOTMgQEAgcmVh ZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2Jq ZmlsZSk7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAq Y2hhcl90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTU3MzQsOTIgKzU1MTEs ODYgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKIC0gIGlmIChhdHRyKQogLSAgICB7 CiAtICAgICAgbGVuZ3RoID0gRFdfVU5TTkQgKGF0dHIpOwotLSAgICB9Ci0tICBlbHNlCi0tICAg IHsKLS0gICAgICAvKiBjaGVjayBmb3IgdGhlIERXX0FUX2J5dGVfc2l6ZSBhdHRyaWJ1dGUgKi8K LSsgIHN3aXRjaCAoZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsICZsZW5ndGgpKQorKyAg aWYgKGF0dHIgJiYgYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICsgICAgewotKyAgICBjYXNl IGR3YXJmMl9hdHRyX2NvbnN0OgotKyAgICAgIC8qIFdlIGN1cnJlbnRseSBkbyBub3Qgc3VwcG9y dCBhIGNvbnN0YW50IGFkZHJlc3Mgd2hlcmUgdGhlIGxvY2F0aW9uCi0rCSBzaG91bGQgYmUgcmVh ZCBmcm9tIC0gRFdBUkYyX0FUVFJfQkxPQ0sgaXMgZXhwZWN0ZWQgaW5zdGVhZC4gIFNlZQotKwkg RFdBUkYgZm9yIHRoZSBEV19BVF9TVFJJTkdfTEVOR1RIIHZzLiBEV19BVF9CWVRFX1NJWkUgZGlm ZmVyZW5jZS4gICovCi0rICAgICAgLyogUEFTU1RIUlUgKi8KLSsgICAgY2FzZSBkd2FyZjJfYXR0 cl91bmtub3duOgorKyAgICAgIC8qIFNlY3VyaXR5IGNoZWNrIGZvciBhIHNpemUgb3ZlcmZsb3cu ICAqLworKyAgICAgIGlmIChEV19CTE9DSyAoYXR0ciktPnNpemUgKyAyIDwgRFdfQkxPQ0sgKGF0 dHIpLT5zaXplKQorKwlUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gMTsKKysgICAgICAv KiBFeHRlbmQgdGhlIERXQVJGIGJsb2NrIGJ5IGEgbmV3IERXX09QX2RlcmVmL0RXX09QX2RlcmVm X3NpemUKKysJIGluc3RydWN0aW9uIGFzIERXX0FUX3N0cmluZ19sZW5ndGggc3BlY2lmaWVzIHRo ZSBsZW5ndGggbG9jYXRpb24sIG5vdAorKwkgaXRzIHZhbHVlLiAgKi8KKysgICAgICBlbHNlCisr CXsKKysJICBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmxlbmd0aF9iYXRvbjsKKysJICBz dHJ1Y3QgYXR0cmlidXRlICpzaXplX2F0dHI7CisrCisrCSAgbGVuZ3RoX2JhdG9uID0gb2JzdGFj a19hbGxvYyAoJmN1LT5jb21wX3VuaXRfb2JzdGFjaywKKysJCQkJCXNpemVvZiAoKmxlbmd0aF9i YXRvbikpOworKwkgIGxlbmd0aF9iYXRvbi0+cGVyX2N1ID0gY3UtPnBlcl9jdTsKKysJICBsZW5n dGhfYmF0b24tPmRhdGEgPSBvYnN0YWNrX2FsbG9jICgmY3UtPmNvbXBfdW5pdF9vYnN0YWNrLAor KwkJCQkJICAgICAgRFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgMik7CisrCSAgbWVtY3B5IChsZW5n dGhfYmF0b24tPmRhdGEsIERXX0JMT0NLIChhdHRyKS0+ZGF0YSwKKysJCSAgRFdfQkxPQ0sgKGF0 dHIpLT5zaXplKTsKKysKKysJICAvKiBEV19BVF9CWVRFX1NJWkUgZXhpc3RpbmcgdG9nZXRoZXIg d2l0aCBEV19BVF9TVFJJTkdfTEVOR1RICisrCSAgICAgc3BlY2lmaWVzIHRoZSBzaXplIG9mIGFu IGludGVnZXIgdG8gZmV0Y2guICAqLworKworKwkgIHNpemVfYXR0ciA9IGR3YXJmMl9hdHRyIChk aWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOworKwkgIGlmIChzaXplX2F0dHIpCisrCSAgICB7Cisr CSAgICAgIGxlbmd0aF9iYXRvbi0+c2l6ZSA9IERXX0JMT0NLIChhdHRyKS0+c2l6ZSArIDI7Cisr CSAgICAgIGxlbmd0aF9iYXRvbi0+ZGF0YVtEV19CTE9DSyAoYXR0ciktPnNpemVdID0gRFdfT1Bf ZGVyZWZfc2l6ZTsKKysJICAgICAgbGVuZ3RoX2JhdG9uLT5kYXRhW0RXX0JMT0NLIChhdHRyKS0+ c2l6ZSArIDFdCisrCQkJCQkJCSA9IERXX1VOU05EIChzaXplX2F0dHIpOworKwkgICAgICBpZiAo bGVuZ3RoX2JhdG9uLT5kYXRhW0RXX0JMT0NLIChhdHRyKS0+c2l6ZSArIDFdCisrCQkgICE9IERX X1VOU05EIChzaXplX2F0dHIpKQorKwkJY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAor KwkJCSAgIF8oIkRXX0FUX3N0cmluZ19sZW5ndGgncyBEV19BVF9ieXRlX3NpemUgaW50ZWdlciAi CisrCQkJICAgICAiZXhjZWVkcyB0aGUgYnl0ZSBzaXplIHN0b3JhZ2UiKSk7CisrCSAgICB9Cisr CSAgZWxzZQorKwkgICAgeworKwkgICAgICBsZW5ndGhfYmF0b24tPnNpemUgPSBEV19CTE9DSyAo YXR0ciktPnNpemUgKyAxOworKwkgICAgICBsZW5ndGhfYmF0b24tPmRhdGFbRFdfQkxPQ0sgKGF0 dHIpLT5zaXplXSA9IERXX09QX2RlcmVmOworKwkgICAgfQorKworKwkgIFRZUEVfUkFOR0VfQk9V TkRfU0VUX0RXQVJGX0JMT0NLIChyYW5nZV90eXBlLCAxKTsKKysJICBUWVBFX0ZJRUxEX0RXQVJG X0JMT0NLIChyYW5nZV90eXBlLCAxKSA9IGxlbmd0aF9iYXRvbjsKKysJICBUWVBFX0RZTkFNSUMg KHJhbmdlX3R5cGUpID0gMTsKKysJfQorICAgICB9CisgICBlbHNlCisgICAgIHsKKy0gICAgICAv KiBjaGVjayBmb3IgdGhlIERXX0FUX2J5dGVfc2l6ZSBhdHRyaWJ1dGUgKi8KKysgICAgICBpZiAo YXR0ciAmJiBhdHRyX2Zvcm1faXNfY29uc3RhbnQgKGF0dHIpKQorKwl7CisrCSAgLyogV2UgY3Vy cmVudGx5IGRvIG5vdCBzdXBwb3J0IGEgY29uc3RhbnQgYWRkcmVzcyB3aGVyZSB0aGUgbG9jYXRp b24KKysJICAgICBzaG91bGQgYmUgcmVhZCBmcm9tIC0gYXR0cl9mb3JtX2lzX2Jsb2NrIGlzIGV4 cGVjdGVkIGluc3RlYWQuICBTZWUKKysJICAgICBEV0FSRiBmb3IgdGhlIERXX0FUX1NUUklOR19M RU5HVEggdnMuIERXX0FUX0JZVEVfU0laRSBkaWZmZXJlbmNlLgorKwkgICAgICovCisrCSAgLyog UEFTU1RIUlUgKi8KKysJfQorKwogICAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19B VF9ieXRlX3NpemUsIGN1KTsKIC0gICAgICBpZiAoYXR0cikKIC0gICAgICAgIHsKIC0gICAgICAg ICAgbGVuZ3RoID0gRFdfVU5TTkQgKGF0dHIpOwogLSAgICAgICAgfQotLSAgICAgIGVsc2UKLS0g ICAgICAgIHsKLS0gICAgICAgICAgbGVuZ3RoID0gMTsKLS0gICAgICAgIH0KLSsgICAgICBzd2l0 Y2ggKGdldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAmbGVuZ3RoKSkKKysgICAgICBpZiAo YXR0ciAmJiBhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQogKwl7Ci0rCWNhc2UgZHdhcmYyX2F0 dHJfdW5rbm93bjoKLSsJICBsZW5ndGggPSAxOwotKwkgIC8qIFBBU1NUSFJVICovCi0rCWNhc2Ug ZHdhcmYyX2F0dHJfY29uc3Q6Ci0rCSAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IGxl bmd0aDsKLSsJICBicmVhazsKLSsJY2FzZSBkd2FyZjJfYXR0cl9ibG9jazoKICsJICBUWVBFX1JB TkdFX0JPVU5EX1NFVF9EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSwgMSk7CiArCSAgVFlQRV9GSUVM RF9EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSwgMSkgPQogKwkJCQkJZHdhcmYyX2F0dHJfdG9fbG9j ZXhwcl9iYXRvbiAoYXR0ciwgY3UpOwogKwkgIFRZUEVfRFlOQU1JQyAocmFuZ2VfdHlwZSkgPSAx OwotKwkgIGJyZWFrOwogKwl9Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgZHdhcmYyX2F0dHJf YmxvY2s6Ci0rICAgICAgLyogU2VjdXJpdHkgY2hlY2sgZm9yIGEgc2l6ZSBvdmVyZmxvdy4gICov Ci0rICAgICAgaWYgKERXX0JMT0NLIChhdHRyKS0+c2l6ZSArIDIgPCBEV19CTE9DSyAoYXR0cikt PnNpemUpCi0rCXsKLSsJICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gMTsKLSsJICBi cmVhazsKLSsJfQotKyAgICAgIC8qIEV4dGVuZCB0aGUgRFdBUkYgYmxvY2sgYnkgYSBuZXcgRFdf T1BfZGVyZWYvRFdfT1BfZGVyZWZfc2l6ZQotKwkgaW5zdHJ1Y3Rpb24gYXMgRFdfQVRfc3RyaW5n X2xlbmd0aCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBsb2NhdGlvbiwgbm90Ci0rCSBpdHMgdmFsdWUu ICAqLwotKyAgICAgIHsKLSsJc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uICpsZW5ndGhfYmF0 b247Ci0rCXN0cnVjdCBhdHRyaWJ1dGUgKnNpemVfYXR0cjsKLSsKLSsJbGVuZ3RoX2JhdG9uID0g b2JzdGFja19hbGxvYyAoJmN1LT5jb21wX3VuaXRfb2JzdGFjaywKLSsJCQkJICAgICAgc2l6ZW9m ICgqbGVuZ3RoX2JhdG9uKSk7Ci0rCWxlbmd0aF9iYXRvbi0+cGVyX2N1ID0gY3UtPnBlcl9jdTsK LSsJbGVuZ3RoX2JhdG9uLT5kYXRhID0gb2JzdGFja19hbGxvYyAoJmN1LT5jb21wX3VuaXRfb2Jz dGFjaywKLSsJCQkJCSAgICBEV19CTE9DSyAoYXR0ciktPnNpemUgKyAyKTsKLSsJbWVtY3B5IChs ZW5ndGhfYmF0b24tPmRhdGEsIERXX0JMT0NLIChhdHRyKS0+ZGF0YSwKLSsJCURXX0JMT0NLIChh dHRyKS0+c2l6ZSk7Ci0rCi0rCS8qIERXX0FUX0JZVEVfU0laRSBleGlzdGluZyB0b2dldGhlciB3 aXRoIERXX0FUX1NUUklOR19MRU5HVEggc3BlY2lmaWVzCi0rCSAgIHRoZSBzaXplIG9mIGFuIGlu dGVnZXIgdG8gZmV0Y2guICAqLwotKwotKwlzaXplX2F0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBE V19BVF9ieXRlX3NpemUsIGN1KTsKLSsJaWYgKHNpemVfYXR0cikKLSsJICB7Ci0rCSAgICBsZW5n dGhfYmF0b24tPnNpemUgPSBEV19CTE9DSyAoYXR0ciktPnNpemUgKyAyOwotKwkgICAgbGVuZ3Ro X2JhdG9uLT5kYXRhW0RXX0JMT0NLIChhdHRyKS0+c2l6ZV0gPSBEV19PUF9kZXJlZl9zaXplOwot KwkgICAgbGVuZ3RoX2JhdG9uLT5kYXRhW0RXX0JMT0NLIChhdHRyKS0+c2l6ZSArIDFdCi0rCQkJ CQkJCSA9IERXX1VOU05EIChzaXplX2F0dHIpOwotKwkgICAgaWYgKGxlbmd0aF9iYXRvbi0+ZGF0 YVtEV19CTE9DSyAoYXR0ciktPnNpemUgKyAxXQotKwkgICAgICAgICE9IERXX1VOU05EIChzaXpl X2F0dHIpKQotKwkgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCi0rCSAgICAg ICAgICAgICAgICAgXygiRFdfQVRfc3RyaW5nX2xlbmd0aCdzIERXX0FUX2J5dGVfc2l6ZSBpbnRl Z2VyICIKLSsJCQkgICAiZXhjZWVkcyB0aGUgYnl0ZSBzaXplIHN0b3JhZ2UiKSk7Ci0rCSAgfQot KwllbHNlCi0rCSAgewotKwkgICAgbGVuZ3RoX2JhdG9uLT5zaXplID0gRFdfQkxPQ0sgKGF0dHIp LT5zaXplICsgMTsKLSsJICAgIGxlbmd0aF9iYXRvbi0+ZGF0YVtEV19CTE9DSyAoYXR0ciktPnNp emVdID0gRFdfT1BfZGVyZWY7Ci0rCSAgfQotKwotKwlUWVBFX1JBTkdFX0JPVU5EX1NFVF9EV0FS Rl9CTE9DSyAocmFuZ2VfdHlwZSwgMSk7Ci0rCVRZUEVfRklFTERfRFdBUkZfQkxPQ0sgKHJhbmdl X3R5cGUsIDEpID0gbGVuZ3RoX2JhdG9uOwotKwlUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUpID0g MTsKLSsgICAgICB9Ci0rICAgICAgYnJlYWs7CisrICAgICAgZWxzZSBpZiAoYXR0ciAmJiBhdHRy X2Zvcm1faXNfY29uc3RhbnQgKGF0dHIpKQorKwlUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUp ID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwLAorKwkJCQkJCQkJICAg ICAgIGN1KTsKKyAgICAgICBlbHNlCistICAgICAgICB7CistICAgICAgICAgIGxlbmd0aCA9IDE7 CistICAgICAgICB9CisrCVRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSAxOwogICAgICB9 CiAgCiAtICBpbmRleF90eXBlID0gb2JqZmlsZV90eXBlIChvYmpmaWxlKS0+YnVpbHRpbl9pbnQ7 CkBAIC01ODI3LDcgKzU1OTgsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogICAg Y2hhcl90eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2RlZm4s IGdkYmFyY2gpOwogICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90eXBl LCByYW5nZV90eXBlKTsKICAKLUBAIC01ODIyLDcgKzYxNjcsNiBAQCBzdGF0aWMgc3RydWN0IHR5 cGUgKgorQEAgLTU4MjIsNyArNjExMSw2IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAgcmVhZF90 eXBlZGVmIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewog ICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKQEAgLTU4MzUsMTggKzU2 MDYsMTcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMOwogICAgc3RydWN0IHR5cGUgKnRoaXNfdHlwZTsKICAKLUBAIC01OTMwLDggKzYy NzQsOCBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKK0BAIC01OTMwLDggKzYyMTgsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0 eXBlICpiYXNlX3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHI7CiAtICBpbnQgbG93ID0gMDsKIC0gIGludCBoaWdoID0gLTE7Ci0rICBp bnQgbG93LCBoaWdoLCBieXRlX3N0cmlkZV9pbnQ7Ci0rICBlbnVtIGdldF9hdHRyX2NvbnN0YW50 X3ZhbHVlIGhpZ2hfdHlwZTsKKysgIGludCBsb3c7CiAgICBjaGFyICpuYW1lOwogICAgCiAgICBi YXNlX3R5cGUgPSBkaWVfdHlwZSAoZGllLCBjdSk7Ci1AQCAtNTk0NCw0MiArNjI4OCw5MCBAQCBy ZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKK0BAIC01OTQ0LDQyICs2MjMxLDkxIEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkJICAgICAwLCBOVUxMLCBj dS0+b2JqZmlsZSk7CiAgICAgIH0KICAKQEAgLTU4NjQsMzQgKzU2MzQsMzYgQEAgaW5kZXggNDQ1 YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9s b3dlcl9ib3VuZCwgY3UpOwogLSAgaWYgKGF0dHIpCiAtICAgIGxvdyA9IGR3YXJmMl9nZXRfYXR0 cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMCk7Ci0rICBzd2l0Y2ggKGdldF9hdHRyX2NvbnN0YW50 X3ZhbHVlIChhdHRyLCAmbG93KSkKKysgIGlmIChhdHRyICYmIGF0dHJfZm9ybV9pc19ibG9jayAo YXR0cikpCiArICAgIHsKLSsgICAgY2FzZSBkd2FyZjJfYXR0cl91bmtub3duOgotKyAgICAgIGlm IChjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbikKLSsJewotKwkgIC8qIEZPUlRSQU4g aW1wbGllcyBhIGxvd2VyIGJvdW5kIG9mIDEsIGlmIG5vdCBnaXZlbi4gICovCi0rCSAgbG93ID0g MTsKLSsJfQotKyAgICAgIGVsc2UKLSsgICAgICAgIHsKLSsJICAvKiBBY2NvcmRpbmcgdG8gRFdB UkYgd2Ugc2hvdWxkIGFzc3VtZSB0aGUgdmFsdWUgMCBvbmx5IGZvcgotKwkgICAgIExBTkdVQUdF X0MgYW5kIExBTkdVQUdFX0NQTFVTLiAgKi8KLSsJICBsb3cgPSAwOwotKwl9Ci0rICAgICAgLyog UEFTU1RIUlUgKi8KLSsgICAgY2FzZSBkd2FyZjJfYXR0cl9jb25zdDoKLSsgICAgICBUWVBFX0xP V19CT1VORCAocmFuZ2VfdHlwZSkgPSBsb3c7Ci0rICAgICAgaWYgKGxvdyA+PSAwKQotKwlUWVBF X1VOU0lHTkVEIChyYW5nZV90eXBlKSA9IDE7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgZHdh cmYyX2F0dHJfYmxvY2s6CiArICAgICAgVFlQRV9SQU5HRV9CT1VORF9TRVRfRFdBUkZfQkxPQ0sg KHJhbmdlX3R5cGUsIDApOwogKyAgICAgIFRZUEVfRklFTERfRFdBUkZfQkxPQ0sgKHJhbmdlX3R5 cGUsIDApID0gZHdhcmYyX2F0dHJfdG9fbG9jZXhwcl9iYXRvbgogKwkJCQkJCQkJICAgICAoYXR0 ciwgY3UpOwogKyAgICAgIFRZUEVfRFlOQU1JQyAocmFuZ2VfdHlwZSkgPSAxOwogKyAgICAgIC8q IEZvciBzZXR0aW5nIGEgZGVmYXVsdCBpZiBEV19BVF9VUFBFUl9CT1VORCB3b3VsZCBiZSBtaXNz aW5nLiAgKi8KICsgICAgICBsb3cgPSAwOwotKyAgICAgIGJyZWFrOworKyAgICB9CisrICBlbHNl CisrICAgIHsKKysgICAgICBpZiAoYXR0ciAmJiBhdHRyX2Zvcm1faXNfY29uc3RhbnQgKGF0dHIp KQorKwlsb3cgPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDAsIGN1KTsK KysgICAgICBlbHNlCisrCXsKKysJICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2ZvcnRy YW4pCisrCSAgICB7CisrCSAgICAgIC8qIEZPUlRSQU4gaW1wbGllcyBhIGxvd2VyIGJvdW5kIG9m IDEsIGlmIG5vdCBnaXZlbi4gICovCisrCSAgICAgIGxvdyA9IDE7CisrCSAgICB9CisrCSAgZWxz ZQorKwkgICAgeworKwkgICAgICAvKiBBY2NvcmRpbmcgdG8gRFdBUkYgd2Ugc2hvdWxkIGFzc3Vt ZSB0aGUgdmFsdWUgMCBvbmx5IGZvcgorKwkJIExBTkdVQUdFX0MgYW5kIExBTkdVQUdFX0NQTFVT LiAgKi8KKysJICAgICAgbG93ID0gMDsKKysJICAgIH0KKysJfQorKyAgICAgIFRZUEVfTE9XX0JP VU5EIChyYW5nZV90eXBlKSA9IGxvdzsKKysgICAgICBpZiAobG93ID49IDApCisrCVRZUEVfVU5T SUdORUQgKHJhbmdlX3R5cGUpID0gMTsKICsgICAgfQogIAogICAgYXR0ciA9IGR3YXJmMl9hdHRy IChkaWUsIERXX0FUX3VwcGVyX2JvdW5kLCBjdSk7CkBAIC01OTEyLDYyICs1Njg0LDYwIEBAIGlu ZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAtICAgICAgICAgICAgIHRoZSBsb3dlciBib3Vu ZCB3ZSd2ZSBjb21wdXRlZCBhYm92ZS4gICovCiAtICAgICAgICAgIGhpZ2ggPSBsb3cgLSAxOwog LSAgICAgICAgfQotLSAgICAgIGVsc2UKLS0gICAgICAgIGhpZ2ggPSBkd2FyZjJfZ2V0X2F0dHJf Y29uc3RhbnRfdmFsdWUgKGF0dHIsIDEpOwotKyAgaGlnaF90eXBlID0gZ2V0X2F0dHJfY29uc3Rh bnRfdmFsdWUgKGF0dHIsICZoaWdoKTsKLSsgIGlmIChoaWdoX3R5cGUgPT0gZHdhcmYyX2F0dHJf dW5rbm93bikKKysgIGlmICghYXR0ciB8fCAoIWF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikgJiYg IWF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikpKQogKyAgICB7CiArICAgICAgYXR0ciA9IGR3 YXJmMl9hdHRyIChkaWUsIERXX0FUX2NvdW50LCBjdSk7Ci0rICAgICAgaGlnaF90eXBlID0gZ2V0 X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsICZoaWdoKTsKICsgICAgICAvKiBJdCBkb2VzIG5v dCBodXJ0IGJ1dCBpdCBpcyBuZWVkbGVzc2x5IGluZWZmZWN0aXZlIGluIGNoZWNrX3R5cGVkZWYu ICAqLwotKyAgICAgIGlmIChoaWdoX3R5cGUgIT0gZHdhcmYyX2F0dHJfdW5rbm93bikKKysgICAg ICBpZiAoYXR0ciAmJiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSB8fCBhdHRyX2Zvcm1faXNf Y29uc3RhbnQgKGF0dHIpKSkKICsgICAgICAJewogKwkgIFRZUEVfUkFOR0VfSElHSF9CT1VORF9J U19DT1VOVCAocmFuZ2VfdHlwZSkgPSAxOwogKwkgIFRZUEVfRFlOQU1JQyAocmFuZ2VfdHlwZSkg PSAxOwogKwl9CiArICAgICAgLyogUGFzcyBpdCBub3cgYXMgdGhlIHJlZ3VsYXIgRFdfQVRfdXBw ZXJfYm91bmQuICAqLwogKyAgICB9Ci0rICBzd2l0Y2ggKGhpZ2hfdHlwZSkKKysKKysgIGlmIChh dHRyICYmIGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCiArICAgIHsKLSsgICAgY2FzZSBkd2Fy ZjJfYXR0cl91bmtub3duOgotKyAgICAgIFRZUEVfUkFOR0VfVVBQRVJfQk9VTkRfSVNfVU5ERUZJ TkVEIChyYW5nZV90eXBlKSA9IDE7Ci0rICAgICAgaGlnaCA9IGxvdyAtIDE7Ci0rICAgICAgLyog UEFTU1RIUlUgKi8KLSsgICAgY2FzZSBkd2FyZjJfYXR0cl9jb25zdDoKLSsgICAgICBUWVBFX0hJ R0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gaGlnaDsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBk d2FyZjJfYXR0cl9ibG9jazoKICsgICAgICBUWVBFX1JBTkdFX0JPVU5EX1NFVF9EV0FSRl9CTE9D SyAocmFuZ2VfdHlwZSwgMSk7CiArICAgICAgVFlQRV9GSUVMRF9EV0FSRl9CTE9DSyAocmFuZ2Vf dHlwZSwgMSkgPSBkd2FyZjJfYXR0cl90b19sb2NleHByX2JhdG9uCiArCQkJCQkJCQkgICAgIChh dHRyLCBjdSk7CiArICAgICAgVFlQRV9EWU5BTUlDIChyYW5nZV90eXBlKSA9IDE7Ci0rICAgICAg YnJlYWs7CisrICAgIH0KKysgIGVsc2UKKysgICAgeworKyAgICAgIGlmIChhdHRyICYmIGF0dHJf Zm9ybV9pc19jb25zdGFudCAoYXR0cikpCisrCVRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkg PSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDAsCisrCQkJCQkJCQkgICAg ICAgY3UpOworICAgICAgIGVsc2UKKy0gICAgICAgIGhpZ2ggPSBkd2FyZjJfZ2V0X2F0dHJfY29u c3RhbnRfdmFsdWUgKGF0dHIsIDEpOworKwl7CisrCSAgVFlQRV9SQU5HRV9VUFBFUl9CT1VORF9J U19VTkRFRklORUQgKHJhbmdlX3R5cGUpID0gMTsKKysJICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdl X3R5cGUpID0gbG93IC0gMTsKKysJfQogICAgICB9CiAgCiAtICByYW5nZV90eXBlID0gY3JlYXRl X3JhbmdlX3R5cGUgKE5VTEwsIGJhc2VfdHlwZSwgbG93LCBoaWdoKTsKICsgIC8qIERXX0FUX2Jp dF9zdHJpZGUgaXMgY3VycmVudGx5IHVuc3VwcG9ydGVkIGFzIHdlIGNvdW50IGluIGJ5dGVzLiAg Ki8KICsgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3N0cmlkZSwgY3UpOwot KyAgc3dpdGNoIChnZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgJmJ5dGVfc3RyaWRlX2lu dCkpCisrICBpZiAoYXR0ciAmJiBhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQogKyAgICB7Ci0r ICAgIGNhc2UgZHdhcmYyX2F0dHJfdW5rbm93bjoKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBk d2FyZjJfYXR0cl9jb25zdDoKLSsgICAgICBpZiAoYnl0ZV9zdHJpZGVfaW50ID09IDApCi0rCWNv bXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSsJCSAgIF8oIkZvdW5kIERXX0FUX2J5dGVf c3RyaWRlIHdpdGggdW5zdXBwb3J0ZWQgdmFsdWUgMCIpKTsKLSsgICAgICBUWVBFX0JZVEVfU1RS SURFIChyYW5nZV90eXBlKSA9IGJ5dGVfc3RyaWRlX2ludDsKLSsgICAgICBicmVhazsKLSsgICAg Y2FzZSBkd2FyZjJfYXR0cl9ibG9jazoKICsgICAgICBUWVBFX1JBTkdFX0JPVU5EX1NFVF9EV0FS Rl9CTE9DSyAocmFuZ2VfdHlwZSwgMik7CiArICAgICAgVFlQRV9GSUVMRF9EV0FSRl9CTE9DSyAo cmFuZ2VfdHlwZSwgMikgPSBkd2FyZjJfYXR0cl90b19sb2NleHByX2JhdG9uCiArCQkJCQkJCQkg ICAgIChhdHRyLCBjdSk7CiArICAgICAgVFlQRV9EWU5BTUlDIChyYW5nZV90eXBlKSA9IDE7Ci0r ICAgICAgYnJlYWs7CisrICAgIH0KKysgIGVsc2UgaWYgKGF0dHIgJiYgYXR0cl9mb3JtX2lzX2Nv bnN0YW50IChhdHRyKSkKKysgICAgeworKyAgICAgIFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5 cGUpID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwLAorKwkJCQkJCQkJ ICAgICAgY3UpOworKyAgICAgIGlmIChUWVBFX0JZVEVfU1RSSURFIChyYW5nZV90eXBlKSA9PSAw KQorKwljb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisrCQkgICBfKCJGb3VuZCBEV19B VF9ieXRlX3N0cmlkZSB3aXRoIHVuc3VwcG9ydGVkIHZhbHVlIDAiKSk7CiArICAgIH0KICAKICAg IG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CiAgICBpZiAobmFtZSkKLUBAIC02NjcwLDkg KzcwNjIsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFy dF9kaWUsCitAQCAtNjY3MCw5ICs3MDA2LDYgQEAgcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBh cnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAogIAkgIGlmIChwYXJ0X2RpZS0+ZGlybmFtZSA9PSBO VUxMKQogIAkgICAgcGFydF9kaWUtPmRpcm5hbWUgPSBEV19TVFJJTkcgKCZhdHRyKTsKICAJICBi cmVhazsKQEAgLTU5NzcsNyArNTc0Nyw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0 CiAgCWNhc2UgRFdfQVRfbG93X3BjOgogIAkgIGhhc19sb3dfcGNfYXR0ciA9IDE7CiAgCSAgcGFy dF9kaWUtPmxvd3BjID0gRFdfQUREUiAoJmF0dHIpOwotQEAgLTY3NDQsMTAgKzcxMzMsMTAgQEAg cmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAorQEAg LTY3NDQsMTAgKzcwNzcsMTAgQEAgcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGll X2luZm8gKnBhcnRfZGllLAogIAkgIGVsc2UKICAJICAgIHBhcnRfZGllLT5zaWJsaW5nID0gYnVm ZmVyICsgZHdhcmYyX2dldF9yZWZfZGllX29mZnNldCAoJmF0dHIpOwogIAkgIGJyZWFrOwpAQCAt NTk5Miw3ICs1NzYyLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgICAg IGNhc2UgRFdfQVRfYnl0ZV9zaXplOgogICAgICAgICAgICBwYXJ0X2RpZS0+aGFzX2J5dGVfc2l6 ZSA9IDE7CiAgICAgICAgICAgIGJyZWFrOwotQEAgLTY3ODksMTMgKzcxNzgsNiBAQCByZWFkX3Bh cnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAtNjc4OSwx MyArNzEyMiw2IEBAIHJlYWRfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpw YXJ0X2RpZSwKICAJICB8fCBkd2FyZjJfcGVyX29iamZpbGUtPmhhc19zZWN0aW9uX2F0X3plcm8p KQogICAgICBwYXJ0X2RpZS0+aGFzX3BjX2luZm8gPSAxOwogIApAQCAtNjAwNiw3ICs1Nzc2LDcg QEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgIHJldHVybiBpbmZvX3B0cjsKICB9 CiAgCi1AQCAtNjkwNCw3ICs3Mjg2LDggQEAgZml4dXBfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0 aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKK0BAIC02OTA0LDcgKzcyMzAsOCBAQCBmaXh1cF9wYXJ0 aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAogICAgLyogSWYgd2Ug Zm91bmQgYSByZWZlcmVuY2UgYXR0cmlidXRlIGFuZCB0aGUgRElFIGhhcyBubyBuYW1lLCB0cnkK ICAgICAgIHRvIGZpbmQgYSBuYW1lIGluIHRoZSByZWZlcnJlZCB0byBESUUuICAqLwogIApAQCAt NjAxNiw3ICs1Nzg2LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAgewog ICAgICAgIHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpzcGVjX2RpZTsKICAKLUBAIC04MjQ0LDEw ICs4NjI3LDEyIEBAIHZhcl9kZWNvZGVfbG9jYXRpb24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIs IHN0cnVjdCBzeW1ib2wgKnN5bSwKK0BAIC04MjQ0LDEwICs4NTcxLDEyIEBAIHZhcl9kZWNvZGVf bG9jYXRpb24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAg ICAgIChpLmUuIHdoZW4gdGhlIHZhbHVlIG9mIGEgcmVnaXN0ZXIgb3IgbWVtb3J5IGxvY2F0aW9u IGlzCiAgICAgICByZWZlcmVuY2VkLCBvciBhIHRocmVhZC1sb2NhbCBibG9jaywgZXRjLikuICBU aGVuIGFnYWluLCBpdCBtaWdodAogICAgICAgbm90IGJlIHdvcnRod2hpbGUuICBJJ20gYXNzdW1p bmcgdGhhdCBpdCBpc24ndCB1bmxlc3MgcGVyZm9ybWFuY2UKQEAgLTYwMzEsNyArNTgwMSw3IEBA IGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgfQogIAogIC8qIEdpdmVuIGEgcG9pbnRl ciB0byBhIERXQVJGIGluZm9ybWF0aW9uIGVudHJ5LCBmaWd1cmUgb3V0IGlmIHdlIG5lZWQKLUBA IC04MjY5LDIxICs4NjU0LDI0IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODI2OSwyMSArODU5 OCwyNCBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5 cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAogICAgYmFzZWFkZHIgPSBBTk9GRlNFVCAob2Jq ZmlsZS0+c2VjdGlvbl9vZmZzZXRzLCBTRUNUX09GRl9URVhUIChvYmpmaWxlKSk7CiAgCkBAIC02 MDYzLDcgKzU4MzMsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIAogICAgICAg IC8qIERlZmF1bHQgYXNzdW1wdGlvbnMuCiAgICAgICAgICAgVXNlIHRoZSBwYXNzZWQgdHlwZSBv ciBkZWNvZGUgaXQgZnJvbSB0aGUgZGllLiAgKi8KLUBAIC04MzgxLDcgKzg3NjksMTUgQEAgbmV3 X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKK0BAIC04MzgxLDcgKzg3MTMsMTUgQEAgbmV3X3N5bWJvbCAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAJICBpZiAoYXR0cikKICAJICAgIHsKICAJICAgICAgdmFyX2RlY29kZV9sb2NhdGlvbiAoYXR0 ciwgc3ltLCBjdSk7CkBAIC02MDc5LDcgKzU4NDksNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJi IDEwMDY0NAogIAkgICAgICBpZiAoYXR0cjIgJiYgKERXX1VOU05EIChhdHRyMikgIT0gMCkpCiAg CQlhZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwgJmdsb2JhbF9zeW1ib2xzKTsKICAJICAgICAgZWxz ZQotQEAgLTg1MTMsNyArODkwOSw3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODUxMyw3ICs4 ODUzLDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0 eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJICBhZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwg Y3UtPmxpc3RfaW5fc2NvcGUpOwogIAkgIGJyZWFrOwogIAljYXNlIERXX1RBR19lbnVtZXJhdG9y OgpAQCAtNjA4OCw3ICs1ODU4LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAJ ICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfY29uc3RfdmFsdWUsIGN1KTsKICAJICBp ZiAoYXR0cikKICAJICAgIHsKLUBAIC04NTM3LDYgKzg5MzMsMTEgQEAgbmV3X3N5bWJvbCAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC04NTM3LDYgKzg4NzcsMTEgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJICBTWU1CT0xf Q0xBU1MgKHN5bSkgPSBMT0NfVFlQRURFRjsKICAJICBhZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwg Jmdsb2JhbF9zeW1ib2xzKTsKICAJICBicmVhazsKQEAgLTYxMDAsNyArNTg3MCw3IEBAIGluZGV4 IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgCWRlZmF1bHQ6CiAgCSAgLyogTm90IGEgdGFnIHdl IHJlY29nbml6ZS4gIEhvcGVmdWxseSB3ZSBhcmVuJ3QgcHJvY2Vzc2luZwogIAkgICAgIHRyYXNo IGRhdGEsIGJ1dCBzaW5jZSB3ZSBtdXN0IHNwZWNpZmljYWxseSBpZ25vcmUgdGhpbmdzCi1AQCAt ODU1MCw4ICs4OTUxLDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04NTUwLDggKzg4OTUsNyBA QCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIC8qIEZvciB0aGUgYmVuZWZpdCBvZiBvbGQgdmVy c2lvbnMgb2YgR0NDLCBjaGVjayBmb3IgYW5vbnltb3VzCiAgCSBuYW1lc3BhY2VzIGJhc2VkIG9u IHRoZSBkZW1hbmdsZWQgbmFtZS4gICovCiAgICAgICAgaWYgKCFwcm9jZXNzaW5nX2hhc19uYW1l c3BhY2VfaW5mbwpAQCAtNjExMCw3ICs1ODgwLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAx MDA2NDQKICAJY3Bfc2Nhbl9mb3JfYW5vbnltb3VzX25hbWVzcGFjZXMgKHN5bSk7CiAgICAgIH0K ICAgIHJldHVybiAoc3ltKTsKLUBAIC04ODA4LDYgKzkyMDgsOSBAQCByZWFkX3R5cGVfZGllIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODgwOCw2ICs5 MTUyLDkgQEAgcmVhZF90eXBlX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQogICAgICAgIGJyZWFrOwogICAgICB9CiAgCkBAIC02MTIwLDcgKzU4OTAsNyBA QCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogICAgcmV0dXJuIHRoaXNfdHlwZTsKICB9 CiAgCi1AQCAtODg4OSwxMCArOTI5Miw5NyBAQCBkZXRlcm1pbmVfcHJlZml4IChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODg4OSwxMCArOTIzNiw5NyBA QCBkZXRlcm1pbmVfcHJlZml4IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgCSAgICAgU28gaXQgZG9lcyBub3QgbmVlZCBhIHByZWZpeC4gICovCiAgCSAgcmV0 dXJuICIiOwogICAgICAgIGRlZmF1bHQ6CkBAIC02MjE5LDE0ICs1OTg5LDE4IEBAIGluZGV4IDQ0 NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgLyogUmV0dXJuIGEgbmV3bHktYWxsb2NhdGVkIHN0cmlu ZyBmb3JtZWQgYnkgY29uY2F0ZW5hdGluZyBQUkVGSVggYW5kCiAgICAgU1VGRklYIHdpdGggYXBw cm9wcmlhdGUgc2VwYXJhdG9yLiAgSWYgUFJFRklYIG9yIFNVRkZJWCBpcyBOVUxMIG9yIGVtcHR5 LCB0aGVuCiAgICAgc2ltcGx5IGNvcHkgdGhlIFNVRkZJWCBvciBQUkVGSVgsIHJlc3BlY3RpdmVs eS4gIElmIE9CUyBpcyBub24tbnVsbCwKLUBAIC04OTQ4LDE0ICs5NDM4LDc1IEBAIHN0YXRpYyBj aGFyICoKK0BAIC04OTQ4LDE0ICs5MzgyLDc1IEBAIHN0YXRpYyBjaGFyICoKICBkd2FyZjJfbGlu a2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAg ewogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICsgIGNoYXIgKm5hbWU7CiArCiArICBuYW1l ID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwotKworIAorLSAgYXR0ciA9IGR3YXJmMl9hdHRyIChk aWUsIERXX0FUX01JUFNfbGlua2FnZV9uYW1lLCBjdSk7CistICBpZiAoYXR0ciAmJiBEV19TVFJJ TkcgKGF0dHIpKQorLSAgICByZXR1cm4gRFdfU1RSSU5HIChhdHRyKTsKKy0gIHJldHVybiBkd2Fy ZjJfbmFtZSAoZGllLCBjdSk7CiArICAvKiBUaGVzZSBhcmUgdGhlIG9ubHkgbGFuZ3VhZ2VzIHdl IGtub3cgaG93IHRvIHF1YWxpZnkgbmFtZXMgaW4uICAqLwogKyAgaWYgKGN1LT5sYW5ndWFnZSAh PSBsYW5ndWFnZV9jcGx1cwogKyAgICAgICYmIGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9qYXZh KQpAQCAtNjI1NSwxMSArNjAyOSw3IEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAr CSAgJiYgZGllLT50YWcgPT0gRFdfVEFHX3N1YnByb2dyYW0pCiArCXsKICsJICBzdHJ1Y3QgdHlw ZSAqdHlwZSA9IHJlYWRfdHlwZV9kaWUgKGRpZSwgY3UpOwotIAotLSAgYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX01JUFNfbGlua2FnZV9uYW1lLCBjdSk7Ci0tICBpZiAoYXR0ciAmJiBE V19TVFJJTkcgKGF0dHIpKQotLSAgICByZXR1cm4gRFdfU1RSSU5HIChhdHRyKTsKLS0gIHJldHVy biBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CisrCiArCSAgY190eXBlX3ByaW50X2FyZ3MgKHR5cGUs IGJ1ZiwgMCwgY3UtPmxhbmd1YWdlKTsKICsKICsJICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1 YWdlX2phdmEpCkBAIC02MzAwLDU4ICs2MDcwLDMyIEBAIGluZGV4IDQ0NWJhYjguLjUxNjk5YmIg MTAwNjQ0CiAgCiAgc3RhdGljIGNoYXIgKgogIGR3YXJmMl9jYW5vbmljYWxpemVfbmFtZSAoY2hh ciAqbmFtZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UsCi1AQCAtMTAxODEsMjYgKzEwNzMyLDM1IEBA IGR3YXJmMl9nZXRfcmVmX2RpZV9vZmZzZXQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCitAQCAt MTAxODEsMTEgKzEwNjc2LDEyIEBAIGR3YXJmMl9nZXRfcmVmX2RpZV9vZmZzZXQgKHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHIpCiAgICByZXR1cm4gMDsKICB9CiAgCiAtLyogUmV0dXJuIHRoZSBjb25z dGFudCB2YWx1ZSBoZWxkIGJ5IHRoZSBnaXZlbiBhdHRyaWJ1dGUuICBSZXR1cm4gLTEKLS0gICBp ZiB0aGUgdmFsdWUgaGVsZCBieSB0aGUgYXR0cmlidXRlIGlzIG5vdCBjb25zdGFudC4gICovCi0r LyogKCp2YWxfcmV0dXJuKSBpcyBmaWxsZWQgb25seSBpZiByZXR1cm5pbmcgZHdhcmYyX2F0dHJf Y29uc3QuICAqLworKy8qIFJldHVybiB0aGUgY29uc3RhbnQgdmFsdWUgaGVsZCBieSB0aGUgZ2l2 ZW4gYXR0cmlidXRlLiAgUmV0dXJuIERFRkFVTFRfVkFMVUUKKyAgICBpZiB0aGUgdmFsdWUgaGVs ZCBieSB0aGUgYXR0cmlidXRlIGlzIG5vdCBjb25zdGFudC4gICovCiAgCiAtc3RhdGljIGludAog LWR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwg aW50IGRlZmF1bHRfdmFsdWUpCi0rc3RhdGljIGVudW0gZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUK LStnZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgaW50ICp2 YWxfcmV0dXJuKQorK3N0YXRpYyBDT1JFX0FERFIKKytkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRf dmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIENPUkVfQUREUiBkZWZhdWx0X3ZhbHVlLAor KwkJCQlzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7Ci0rICBpZiAoYXR0ciA9PSBOVUxMKQotKyAg ICByZXR1cm4gZHdhcmYyX2F0dHJfdW5rbm93bjsKICAgIGlmIChhdHRyLT5mb3JtID09IERXX0ZP Uk1fc2RhdGEpCi0tICAgIHJldHVybiBEV19TTkQgKGF0dHIpOwotLSAgZWxzZSBpZiAoYXR0ci0+ Zm9ybSA9PSBEV19GT1JNX3VkYXRhCi0tICAgICAgICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZP Uk1fZGF0YTEKLS0gICAgICAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9kYXRhMgotLSAg ICAgICAgICAgfHwgYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2RhdGE0Ci0tICAgICAgICAgICB8fCBh dHRyLT5mb3JtID09IERXX0ZPUk1fZGF0YTgpCi0tICAgIHJldHVybiBEV19VTlNORCAoYXR0cik7 Ci0tICBlbHNlCisgICAgIHJldHVybiBEV19TTkQgKGF0dHIpOworQEAgLTEwMTk1LDYgKzEwNjkx LDggQEAgZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChzdHJ1Y3QgYXR0cmlidXRlICph dHRyLCBpbnQgZGVmYXVsdF92YWx1ZSkKKyAgICAgICAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdf Rk9STV9kYXRhNAorICAgICAgICAgICAgfHwgYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2RhdGE4KQor ICAgICByZXR1cm4gRFdfVU5TTkQgKGF0dHIpOworKyAgZWxzZSBpZiAoYXR0cl9mb3JtX2lzX2Js b2NrIChhdHRyKSkKKysgICAgcmV0dXJuIGRlY29kZV9sb2NkZXNjIChEV19CTE9DSyAoYXR0ciks IGN1KTsKKyAgIGVsc2UKICAgICAgewotLSAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxh aW50cywgXygiQXR0cmlidXRlIHZhbHVlIGlzIG5vdCBhIGNvbnN0YW50ICglcykiKSwKLS0gICAg ICAgICAgICAgICAgIGR3YXJmX2Zvcm1fbmFtZSAoYXR0ci0+Zm9ybSkpOwotLSAgICAgIHJldHVy biBkZWZhdWx0X3ZhbHVlOwotKyAgICAgICp2YWxfcmV0dXJuID0gRFdfU05EIChhdHRyKTsKLSsg ICAgICByZXR1cm4gZHdhcmYyX2F0dHJfY29uc3Q7Ci0gICAgIH0KLSsgIGlmIChhdHRyLT5mb3Jt ID09IERXX0ZPUk1fdWRhdGEKLSsgICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZPUk1fZGF0YTEK LSsgICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZPUk1fZGF0YTIKLSsgICAgICB8fCBhdHRyLT5m b3JtID09IERXX0ZPUk1fZGF0YTQKLSsgICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZPUk1fZGF0 YTgpCi0rICAgIHsKLSsgICAgICAqdmFsX3JldHVybiA9IERXX1VOU05EIChhdHRyKTsKLSsgICAg ICByZXR1cm4gZHdhcmYyX2F0dHJfY29uc3Q7Ci0rICAgIH0KLSsgIGlmIChhdHRyLT5mb3JtID09 IERXX0ZPUk1fYmxvY2sKLSsgICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZPUk1fYmxvY2sxCi0r ICAgICAgfHwgYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2Jsb2NrMgotKyAgICAgIHx8IGF0dHItPmZv cm0gPT0gRFdfRk9STV9ibG9jazQpCi0rICAgIHJldHVybiBkd2FyZjJfYXR0cl9ibG9jazsKLSsg IGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywgXygiQXR0cmlidXRlIHZhbHVlIGlzIG5v dCBhIGNvbnN0YW50ICglcykiKSwKLSsgICAgICAgICAgICAgZHdhcmZfZm9ybV9uYW1lIChhdHRy LT5mb3JtKSk7Ci0rICByZXR1cm4gZHdhcmYyX2F0dHJfdW5rbm93bjsKLSB9Ci0gCi0gLyogVEhJ U19DVSBoYXMgYSByZWZlcmVuY2UgdG8gUEVSX0NVLiAgSWYgbmVjZXNzYXJ5LCBsb2FkIHRoZSBu ZXcgY29tcGlsYXRpb24KLUBAIC0xMDk5MCw4ICsxMTU1MCw2IEBAIGR3YXJmX2RlY29kZV9tYWNy b3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCisgICAgICAg Y29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBfKCJBdHRyaWJ1dGUgdmFsdWUgaXMgbm90 IGEgY29uc3RhbnQgKCVzKSIpLAorQEAgLTEwOTkwLDggKzExNDg4LDYgQEAgZHdhcmZfZGVjb2Rl X21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKICB7 CiAgICBnZGJfYnl0ZSAqbWFjX3B0ciwgKm1hY19lbmQ7CiAgICBzdHJ1Y3QgbWFjcm9fc291cmNl X2ZpbGUgKmN1cnJlbnRfZmlsZSA9IDA7CkBAIC02MzYwLDcgKzYxMDQsNyBAQCBpbmRleCA0NDVi YWI4Li41MTY5OWJiIDEwMDY0NAogIAogICAgaWYgKGR3YXJmMl9wZXJfb2JqZmlsZS0+bWFjaW5m by5idWZmZXIgPT0gTlVMTCkKICAgICAgewotQEAgLTEwOTk5LDI5ICsxMTU1NywxOSBAQCBkd2Fy Zl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zm c2V0LAorQEAgLTEwOTk5LDI5ICsxMTQ5NSwxOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1 Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgICAgIHJldHVybjsK ICAgICAgfQogIApAQCAtNjM5NSw3ICs2MTM5LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAx MDA2NDQKICAgICAgICAgIH0KICAKICAgICAgICBtYWNpbmZvX3R5cGUgPSByZWFkXzFfYnl0ZSAo YWJmZCwgbWFjX3B0cik7Ci1AQCAtMTEwMzIsOTIgKzExNTgwLDcgQEAgZHdhcmZfZGVjb2RlX21h Y3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKK0BAIC0x MTAzMiw5MiArMTE1MTgsNyBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFk ZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgICAgICAgICAvKiBBIHplcm8gbWFjaW5m byB0eXBlIGluZGljYXRlcyB0aGUgZW5kIG9mIHRoZSBtYWNybwogICAgICAgICAgICAgICBpbmZv cm1hdGlvbi4gICovCiAgICAgICAgICBjYXNlIDA6CkBAIC02NDg5LDcgKzYyMzMsNyBAQCBpbmRl eCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIAogICAgICAgICAgY2FzZSBEV19NQUNJTkZPX2Rl ZmluZToKICAgICAgICAgIGNhc2UgRFdfTUFDSU5GT191bmRlZjoKLUBAIC0xMTEzMiwzMSArMTE1 OTUsMTkgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5z aWduZWQgaW50IG9mZnNldCwKK0BAIC0xMTEzMiwzMSArMTE1MzMsMTkgQEAgZHdhcmZfZGVjb2Rl X21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKICAg ICAgICAgICAgICBtYWNfcHRyICs9IGJ5dGVzX3JlYWQ7CiAgCiAgICAgICAgICAgICAgaWYgKCEg Y3VycmVudF9maWxlKQpAQCAtNjUzMiw3ICs2Mjc2LDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTli YiAxMDA2NDQKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAKLUBAIC0xMTE3MCwy MiArMTE2MjEsOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxo LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMTcwLDIyICsxMTU1OSw5IEBAIGR3YXJmX2Rl Y29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQs CiAgICAgICAgICAgICAgZmlsZSA9IHJlYWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBtYWNfcHRy LCAmYnl0ZXNfcmVhZCk7CiAgICAgICAgICAgICAgbWFjX3B0ciArPSBieXRlc19yZWFkOwogIApA QCAtNjU1OCw3ICs2MzAyLDcgQEAgaW5kZXggNDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgICAg ICAgICAgfQogICAgICAgICAgICBicmVhazsKICAKLUBAIC0xMTIzOSw3ICsxMTY3Nyw3IEBAIGR3 YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBv ZmZzZXQsCitAQCAtMTEyMzksNyArMTE2MTUsNyBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1 Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgICAgICAgICB9CiAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQpAQCAtNjU2NywxNiArNjMxMSw3IEBAIGluZGV4 IDQ0NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgfQogIAogIC8qIENoZWNrIGlmIHRoZSBhdHRyaWJ1 dGUncyBmb3JtIGlzIGEgRFdfRk9STV9ibG9jayoKLUBAIC0xMTI3Miw3ICsxMTcxMCw3IEBAIGF0 dHJfZm9ybV9pc19zZWN0aW9uX29mZnNldCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKLSAKLSAv KiBSZXR1cm4gbm9uLXplcm8gaWYgQVRUUidzIHZhbHVlIGZhbGxzIGluIHRoZSAnY29uc3RhbnQn IGNsYXNzLCBvcgotICAgIHplcm8gb3RoZXJ3aXNlLiAgV2hlbiB0aGlzIGZ1bmN0aW9uIHJldHVy bnMgdHJ1ZSwgeW91IGNhbiBhcHBseQotLSAgIGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1 ZSB0byBpdC4KLSsgICBnZXRfYXR0cl9jb25zdGFudF92YWx1ZSB0byBpdC4KLSAKLSAgICBIb3dl dmVyLCBub3RlIHRoYXQgZm9yIHNvbWUgYXR0cmlidXRlcyB5b3UgbXVzdCBjaGVjawotICAgIGF0 dHJfZm9ybV9pc19zZWN0aW9uX29mZnNldCBiZWZvcmUgdXNpbmcgdGhpcyB0ZXN0LiAgRFdfRk9S TV9kYXRhNAotQEAgLTExMjk5LDYgKzExNzM3LDM0IEBAIGF0dHJfZm9ybV9pc19jb25zdGFudCAo c3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKK0BAIC0xMTI5OSw2ICsxMTY3NSwzNCBAQCBhdHRyX2Zv cm1faXNfY29uc3RhbnQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCiAgICAgIH0KICB9CiAgCkBA IC02NjExLDcgKzYzNDYsNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIHN0YXRp YyB2b2lkCiAgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRlICph dHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAgCQkJICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK LUBAIC0xMTMyOCwzNSArMTE3OTQsMjUgQEAgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChz dHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCitAQCAtMTEzMjgsMzUg KzExNzMyLDI1IEBAIGR3YXJmMl9zeW1ib2xfbWFya19jb21wdXRlZCAoc3RydWN0IGF0dHJpYnV0 ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAogICAgICAgIFNZTUJPTF9DT01QVVRFRF9PUFMg KHN5bSkgPSAmZHdhcmYyX2xvY2xpc3RfZnVuY3M7CiAgICAgICAgU1lNQk9MX0xPQ0FUSU9OX0JB VE9OIChzeW0pID0gYmF0b247CiAgICAgIH0KQEAgLTY2NjIsNyArNjM5Nyw3IEBAIGluZGV4IDQ0 NWJhYjguLjUxNjk5YmIgMTAwNjQ0CiAgICAgIH0KICB9CiAgCi1AQCAtMTE2NDQsNiArMTIxMDAs MzEgQEAgb2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lkICppdGVtX2xocywgY29uc3Qgdm9p ZCAqaXRlbV9yaHMpCitAQCAtMTE2NDQsNiArMTIwMzgsMzEgQEAgb2Zmc2V0X2FuZF90eXBlX2Vx IChjb25zdCB2b2lkICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCiAgICByZXR1cm4g b2ZzX2xocy0+b2Zmc2V0ID09IG9mc19yaHMtPm9mZnNldDsKICB9CiAgCkBAIC02Njk0LDcgKzY0 MjksNyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIC8qIFNldCB0aGUgdHlwZSBh c3NvY2lhdGVkIHdpdGggRElFIHRvIFRZUEUuICBTYXZlIGl0IGluIENVJ3MgaGFzaAogICAgIHRh YmxlIGlmIG5lY2Vzc2FyeS4gIEZvciBjb252ZW5pZW5jZSwgcmV0dXJuIFRZUEUuICAqLwogIAot QEAgLTExNjUyLDYgKzEyMTMzLDggQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTExNjUyLDYg KzEyMDcxLDggQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5 cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIHsKICAgIHN0cnVjdCBkd2FyZjJfb2Zm c2V0X2FuZF90eXBlICoqc2xvdCwgb2ZzOwogIApAQCAtNjcwMyw3ICs2NDM4LDcgQEAgaW5kZXgg NDQ1YmFiOC4uNTE2OTliYiAxMDA2NDQKICAgIGlmIChjdS0+dHlwZV9oYXNoID09IE5VTEwpCiAg ICAgIHsKICAgICAgICBnZGJfYXNzZXJ0IChjdS0+cGVyX2N1ICE9IE5VTEwpOwotQEAgLTExNzk0 LDIzICsxMjI3NywxMyBAQCBzaG93X2R3YXJmMl9jbWQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0 eSkKK0BAIC0xMTc5NCwyMyArMTIyMTUsMTMgQEAgc2hvd19kd2FyZjJfY21kIChjaGFyICphcmdz LCBpbnQgZnJvbV90dHkpCiAgICBjbWRfc2hvd19saXN0IChzaG93X2R3YXJmMl9jbWRsaXN0LCBm cm9tX3R0eSwgIiIpOwogIH0KICAKQEAgLTY3MzEsNyArNjQ2Niw3IEBAIGluZGV4IDQ0NWJhYjgu LjUxNjk5YmIgMTAwNjQ0CiAgfQogIAogIC8qIG11bm1hcCBkZWJ1ZyBzZWN0aW9ucyBmb3IgT0JK RklMRSwgaWYgbmVjZXNzYXJ5LiAgKi8KLUBAIC0xMTgxOSwxNSArMTIyOTIsMTUgQEAgc3RhdGlj IHZvaWQKK0BAIC0xMTgxOSwxNSArMTIyMzAsMTUgQEAgc3RhdGljIHZvaWQKICBkd2FyZjJfcGVy X29iamZpbGVfY2xlYW51cCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHZvaWQgKmQpCiAgewog ICAgc3RydWN0IGR3YXJmMl9wZXJfb2JqZmlsZSAqZGF0YSA9IGQ7CkBAIC02NzU2LDcgKzY0OTEs NyBAQCBpbmRleCA0NDViYWI4Li41MTY5OWJiIDEwMDY0NAogIH0KICAKICB2b2lkIF9pbml0aWFs aXplX2R3YXJmMl9yZWFkICh2b2lkKTsKLUBAIC0xMTgzNSw2ICsxMjMwOCw3IEBAIHZvaWQgX2lu aXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpOworQEAgLTExODM1LDYgKzEyMjQ2LDcgQEAgdm9p ZCBfaW5pdGlhbGl6ZV9kd2FyZjJfcmVhZCAodm9pZCk7CiAgdm9pZAogIF9pbml0aWFsaXplX2R3 YXJmMl9yZWFkICh2b2lkKQogIHsKQEAgLTEwNzE1LDcgKzEwNDUwLDcgQEAgaW5kZXggYTg0MDAz Zi4uOTI0YzFjNSAxMDA2NDQKICAgIGRlZmF1bHRfc3ltZmlsZV9vZmZzZXRzLAkvKiBzeW1fb2Zm c2V0czogZHVtbXkgRklYTUUgdGlsIGltcGxlbSBzeW0gcmVsb2MgKi8KICAgIGRlZmF1bHRfc3lt ZmlsZV9zZWdtZW50cywJLyogc3ltX3NlZ21lbnRzOiBHZXQgc2VnbWVudCBpbmZvcm1hdGlvbiBm cm9tCiBkaWZmIC0tZ2l0IGEvZ2RiL29iamZpbGVzLmMgYi9nZGIvb2JqZmlsZXMuYwotaW5kZXgg NDNjNTE3NC4uNWFkNGY4ZCAxMDA2NDQKK2luZGV4IDU4NmY1ZDAuLmE0YmY3MTkgMTAwNjQ0CiAt LS0gYS9nZGIvb2JqZmlsZXMuYwogKysrIGIvZ2RiL29iamZpbGVzLmMKIEBAIC00MzIsMTAgKzQz Miw5IEBAIGZyZWVfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCkBAIC0xNzUwMSwx MCArMTcyMzYsMTAgQEAgaW5kZXggY2MzMzE5YS4uZDBkNDcwMiAxMDA2NDQKICAgICAgICBpZiAo KGdkYl9vdXRwdXRfc3ltID09IE5VTEwpIHx8IChnZGJfb3V0cHV0X2xlbl9zeW0gPT0gTlVMTCkp CiAgCXJldCA9IC0xOwogZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi1kYXJ3aW4uYyBiL2dkYi9zb2xp Yi1kYXJ3aW4uYwotaW5kZXggOTdjYzI5Yy4uZjY1NTk1NiAxMDA2NDQKK2luZGV4IDhiOTZhNmYu Ljk0MjhkOTIgMTAwNjQ0CiAtLS0gYS9nZGIvc29saWItZGFyd2luLmMKICsrKyBiL2dkYi9zb2xp Yi1kYXJ3aW4uYwotQEAgLTQwMSw3ICs0MDEsNiBAQCBkYXJ3aW5fcmVsb2NhdGVfc2VjdGlvbl9h ZGRyZXNzZXMgKHN0cnVjdCBzb19saXN0ICpzbywKK0BAIC0zODksNyArMzg5LDYgQEAgZGFyd2lu X3JlbG9jYXRlX3NlY3Rpb25fYWRkcmVzc2VzIChzdHJ1Y3Qgc29fbGlzdCAqc28sCiAgc3RhdGlj IHN0cnVjdCBzeW1ib2wgKgogIGRhcndpbl9sb29rdXBfbGliX3N5bWJvbCAoY29uc3Qgc3RydWN0 IG9iamZpbGUgKm9iamZpbGUsCiAgCQkJICBjb25zdCBjaGFyICpuYW1lLApAQCAtMTc1NTcsNyAr MTcyOTIsNyBAQCBpbmRleCA2Y2ZhYTg1Li42OGFhZGMwIDEwMDY0NAogIAogIGV4dGVybiBpbml0 aWFsaXplX2ZpbGVfZnR5cGUgX2luaXRpYWxpemVfc3ZyNF9zb2xpYjsgLyogLVdtaXNzaW5nLXBy b3RvdHlwZXMgKi8KIGRpZmYgLS1naXQgYS9nZGIvc29saWIuYyBiL2dkYi9zb2xpYi5jCi1pbmRl eCA1NjRhNTVjLi44Yzc1YjgxIDEwMDY0NAoraW5kZXggYWFkMmQ1OS4uZGVmMDJmOCAxMDA2NDQK IC0tLSBhL2dkYi9zb2xpYi5jCiArKysgYi9nZGIvc29saWIuYwogQEAgLTEwNjYsMTMgKzEwNjYs MTIgQEAgc2hvd19hdXRvX3NvbGliX2FkZCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIGludCBmcm9t X3R0eSwKQEAgLTE3Njk5LDcgKzE3NDM0LDcgQEAgaW5kZXggMWMzNzgwMS4uNTk0ZWIxNiAxMDA2 NDQKICAJICBwcmludF92YXJpYWJsZV9hbmRfdmFsdWUgKE5VTEwsIHN5bSwgZnJhbWUsIHN0cmVh bSwgNCAqIG51bV90YWJzKTsKICAJICBicmVhazsKIGRpZmYgLS1naXQgYS9nZGIvc3ltZmlsZS5j IGIvZ2RiL3N5bWZpbGUuYwotaW5kZXggNGJkYWI5MS4uZThjMDIzNiAxMDA2NDQKK2luZGV4IGMx ODJmYWEuLjhiOTcxZmIgMTAwNjQ0CiAtLS0gYS9nZGIvc3ltZmlsZS5jCiArKysgYi9nZGIvc3lt ZmlsZS5jCiBAQCAtNTIsNyArNTIsNiBAQApAQCAtMTc3OTMsNyArMTc1MjgsNyBAQCBpbmRleCA0 YmRhYjkxLi5lOGMwMjM2IDEwMDY0NAogICAgaWYgKGZyb21fdHR5KQogICAgICBwcmludGZfdW5m aWx0ZXJlZCAoXygiTm8gc3ltYm9sIGZpbGUgbm93LlxuIikpOwogIH0KLUBAIC0yMzQ2LDcgKzIz NjksNyBAQCByZXJlYWRfc3ltYm9scyAodm9pZCkKK0BAIC0yMzQ5LDcgKzIzNzIsNyBAQCByZXJl YWRfc3ltYm9scyAodm9pZCkKICAKICAJICAgICAgLyogUmVtb3ZlIGFueSByZWZlcmVuY2VzIHRv IHRoaXMgb2JqZmlsZSBpbiB0aGUgZ2xvYmFsCiAgCQkgdmFsdWUgbGlzdHMuICAqLwpAQCAtMTc4 MDIsNyArMTc1MzcsNyBAQCBpbmRleCA0YmRhYjkxLi5lOGMwMjM2IDEwMDY0NAogIAogIAkgICAg ICAvKiBOdWtlIGFsbCB0aGUgc3RhdGUgdGhhdCB3ZSB3aWxsIHJlLXJlYWQuICBNdWNoIG9mIHRo ZSBmb2xsb3dpbmcKICAJICAgICAgICAgY29kZSB3aGljaCBzZXRzIHRoaW5ncyB0byBOVUxMIHJl YWxseSBpcyBuZWNlc3NhcnkgdG8gdGVsbAotQEAgLTI0MzQsMTMgKzI0NTcsMTUgQEAgcmVyZWFk X3N5bWJvbHMgKHZvaWQpCitAQCAtMjQzNywxMyArMjQ2MCwxNSBAQCByZXJlYWRfc3ltYm9scyAo dm9pZCkKICAJICAgICAgICAgemVybyBpcyBPSyBzaW5jZSBkYnhyZWFkLmMgYWxzbyBkb2VzIHdo YXQgaXQgbmVlZHMgdG8gZG8gaWYKICAJICAgICAgICAgb2JqZmlsZS0+Z2xvYmFsX3BzeW1ib2xz LnNpemUgaXMgMC4gICovCiAgCSAgICAgICgqb2JqZmlsZS0+c2YtPnN5bV9yZWFkKSAob2JqZmls ZSwgMCk7CkBAIC0xNzgxOSw3ICsxNzU1NCw3IEBAIGluZGV4IDRiZGFiOTEuLmU4YzAyMzYgMTAw NjQ0CiAgCSAgICAgIC8qIFdlJ3JlIGRvbmUgcmVhZGluZyB0aGUgc3ltYm9sIGZpbGU7IGZpbmlz aCBvZmYgY29tcGxhaW50cy4gICovCiAgCSAgICAgIGNsZWFyX2NvbXBsYWludHMgKCZzeW1maWxl X2NvbXBsYWludHMsIDAsIDEpOwogIAotQEAgLTI0NDksNiArMjQ3NCw5IEBAIHJlcmVhZF9zeW1i b2xzICh2b2lkKQorQEAgLTI0NTIsNiArMjQ3Nyw5IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQog IAogIAkgICAgICByZWluaXRfZnJhbWVfY2FjaGUgKCk7CiAgCkBAIC0xNzgyOSw3ICsxNzU2NCw3 IEBAIGluZGV4IDRiZGFiOTEuLmU4YzAyMzYgMTAwNjQ0CiAgCSAgICAgIC8qIERpc2NhcmQgY2xl YW51cHMgYXMgc3ltYm9sIHJlYWRpbmcgd2FzIHN1Y2Nlc3NmdWwuICAqLwogIAkgICAgICBkaXNj YXJkX2NsZWFudXBzIChvbGRfY2xlYW51cHMpOwogIAotQEAgLTI3MzgsNyArMjc2Niw3IEBAIGFs bG9jYXRlX3N5bXRhYiAoY2hhciAqZmlsZW5hbWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQor QEAgLTI3NDEsNyArMjc2OSw3IEBAIGFsbG9jYXRlX3N5bXRhYiAoY2hhciAqZmlsZW5hbWUsIHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIH0KICAKICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKgpA QCAtMTc4MzgsNyArMTc1NzMsNyBAQCBpbmRleCA0YmRhYjkxLi5lOGMwMjM2IDEwMDY0NAogIHsK ICAgIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN5bXRhYjsKICAKLUBAIC0yODI5LDEwICsyODU3 LDYgQEAgY2xlYXJfc3ltdGFiX3VzZXJzICh2b2lkKQorQEAgLTI4MzIsMTAgKzI4NjAsNiBAQCBj bGVhcl9zeW10YWJfdXNlcnMgKHZvaWQpCiAgICAgICBiZXR3ZWVuIGV4cHJlc3Npb25zIGFuZCB3 aGljaCBvdWdodCB0byBiZSByZXNldCBlYWNoIHRpbWUuICAqLwogICAgZXhwcmVzc2lvbl9jb250 ZXh0X2Jsb2NrID0gTlVMTDsKICAgIGlubmVybW9zdF9ibG9jayA9IE5VTEw7CkBAIC0xNzg0OSw3 ICsxNzU4NCw3IEBAIGluZGV4IDRiZGFiOTEuLmU4YzAyMzYgMTAwNjQ0CiAgfQogIAogIHN0YXRp YyB2b2lkCi1AQCAtMzA1Miw3ICszMDc2LDggQEAgYWdhaW4yOgorQEAgLTMwNTUsNyArMzA3OSw4 IEBAIGFnYWluMjoKICAKICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKgogIHN0YXJ0X3BzeW10YWJf Y29tbW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKQEAgLTI2NTczLDY4ICsyNjMwOCwzIEBA IGluZGV4IGM1NmFiODYuLmRhY2Y5MTMgMTAwNjQ0CiAgICB4Y29mZl9zeW1maWxlX2ZpbmlzaCwJ CS8qIHN5bV9maW5pc2g6IGZpbmlzaGVkIHdpdGggZmlsZSwgY2xlYW51cCAqLwogICAgeGNvZmZf c3ltZmlsZV9vZmZzZXRzLAkvKiBzeW1fb2Zmc2V0czogeGxhdGUgb2Zmc2V0cyBleHQtPmludCBm b3JtICovCiAgICBkZWZhdWx0X3N5bWZpbGVfc2VnbWVudHMsCS8qIHN5bV9zZWdtZW50czogR2V0 IHNlZ21lbnQgaW5mb3JtYXRpb24gZnJvbQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29mZi9nbzMy ZXhlLmggYi9pbmNsdWRlL2NvZmYvZ28zMmV4ZS5oCi1pbmRleCBjODVkYTBjLi4yMjQ4ZmYyIDEw MDY0NAotLS0tIGEvaW5jbHVkZS9jb2ZmL2dvMzJleGUuaAotKysrIGIvaW5jbHVkZS9jb2ZmL2dv MzJleGUuaAotQEAgLTE2LDExICsxNiw5IEBACi0gICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07 IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAgICBGb3VuZGF0aW9uLCBJbmMu LCA1MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAx LCBVU0EuICAqLwotIAotLSNkZWZpbmUgU1RVQlNJWkUgMjA0OAotLQotIHN0cnVjdCBleHRlcm5h bF9maWxlaGRyX2dvMzJfZXhlCi0gICB7Ci0tICAgIGNoYXIgc3R1YltTVFVCU0laRV07LyogdGhl IHN0dWIgdG8gbG9hZCB0aGUgaW1hZ2UJKi8KLSsgICAgY2hhciBzdHViW0dPMzJfU1RVQlNJWkVd OyAvKiB0aGUgc3R1YiB0byBsb2FkIHRoZSBpbWFnZSAqLwotIAkJCS8qIHRoZSBzdGFuZGFyZCBD T0ZGIGhlYWRlciAgICAgKi8KLSAgICAgY2hhciBmX21hZ2ljWzJdOwkvKiBtYWdpYyBudW1iZXIJ CQkqLwotICAgICBjaGFyIGZfbnNjbnNbMl07CS8qIG51bWJlciBvZiBzZWN0aW9ucwkJKi8KLUBA IC0zNCw0ICszMiw0IEBAIHN0cnVjdCBleHRlcm5hbF9maWxlaGRyX2dvMzJfZXhlCi0gI3VuZGVm IEZJTEhEUgotICNkZWZpbmUJRklMSERSCXN0cnVjdCBleHRlcm5hbF9maWxlaGRyX2dvMzJfZXhl Ci0gI3VuZGVmIEZJTEhTWgotLSNkZWZpbmUJRklMSFNaCVNUVUJTSVpFKzIwCi0rI2RlZmluZQlG SUxIU1oJR08zMl9TVFVCU0laRSsyMAotZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29mZi9pbnRlcm5h bC5oIGIvaW5jbHVkZS9jb2ZmL2ludGVybmFsLmgKLWluZGV4IGM1ZDZjZDEuLjM2ZDAzZWIgMTAw NjQ0Ci0tLS0gYS9pbmNsdWRlL2NvZmYvaW50ZXJuYWwuaAotKysrIGIvaW5jbHVkZS9jb2ZmL2lu dGVybmFsLmgKLUBAIC01OCwxMCArNTgsMTkgQEAgc3RydWN0IGludGVybmFsX2V4dHJhX3BlX2Zp bGVoZHIKLSAgIGJmZF92bWEgIG50X3NpZ25hdHVyZTsgICAJLyogcmVxdWlyZWQgTlQgc2lnbmF0 dXJlLCAweDQ1NTAgKi8gCi0gfTsKLSAKLSsjZGVmaW5lIEdPMzJfU1RVQlNJWkUgMjA0OAotKwot IHN0cnVjdCBpbnRlcm5hbF9maWxlaGRyCi0gewotICAgc3RydWN0IGludGVybmFsX2V4dHJhX3Bl X2ZpbGVoZHIgcGU7Ci0gCi0rICAvKiBjb2ZmLXN0Z28zMiBFWEUgc3R1YiBoZWFkZXIgYmVmb3Jl IEJGRCB0ZGF0YSBoYXMgYmVlbiBhbGxvY2F0ZWQuCi0rICAgICBJdHMgZGF0YSBpcyBrZXB0IGlu IElOVEVSTkFMX0ZJTEVIRFIuR08zMlNUVUIgYWZ0ZXJ3YXJkcy4KLSsgICAgIAotKyAgICAgRl9H TzMyU1RVQiBpcyBzZXQgaWZmIGdvMzJzdHViIGNvbnRhaW5zIGEgdmFsaWQgZGF0YS4gIEFydGlm aWNhbCBoZWFkZXJzCi0rICAgICBjcmVhdGVkIGluIEJGRCBoYXZlIG5vIHByZS1zZXQgZ28zMnN0 dWIuICAqLwotKyAgY2hhciBnbzMyc3R1YltHTzMyX1NUVUJTSVpFXTsKLSsKLSAgIC8qIFN0YW5k YXJkIGNvZmYgaW50ZXJuYWwgaW5mby4gICovCi0gICB1bnNpZ25lZCBzaG9ydCBmX21hZ2ljOwkv KiBtYWdpYyBudW1iZXIJCQkqLwotICAgdW5zaWduZWQgc2hvcnQgZl9uc2NuczsJLyogbnVtYmVy IG9mIHNlY3Rpb25zCQkqLwotQEAgLTg0LDcgKzkzLDggQEAgc3RydWN0IGludGVybmFsX2ZpbGVo ZHIKLSAgCUZfQVIzMlcJCWZpbGUgaXMgMzItYml0IGJpZy1lbmRpYW4KLSAgCUZfRFlOTE9BRAly cy82MDAwIGFpeDogZHluYW1pY2FsbHkgbG9hZGFibGUgdy9pbXBvcnRzICYgZXhwb3J0cwotICAJ Rl9TSFJPQkoJcnMvNjAwMCBhaXg6IGZpbGUgaXMgYSBzaGFyZWQgb2JqZWN0Ci0tICAgICAgICBG X0RMTCAgICAgICAgICAgUEUgZm9ybWF0IERMTC4gICovCi0rCUZfRExMICAgICAgICAgICBQRSBm b3JtYXQgRExMCi0rCUZfR08zMlNUVUIgICAgICBGaWVsZCBnbzMyc3R1YiBjb250YWlucyB2YWxp ZCBkYXRhLiAgKi8KLSAKLSAjZGVmaW5lCUZfUkVMRkxHCSgweDAwMDEpCi0gI2RlZmluZQlGX0VY RUMJCSgweDAwMDIpCi1AQCAtOTYsNiArMTA2LDcgQEAgc3RydWN0IGludGVybmFsX2ZpbGVoZHIK LSAjZGVmaW5lCUZfRFlOTE9BRAkoMHgxMDAwKQotICNkZWZpbmUJRl9TSFJPQkoJKDB4MjAwMCkK LSAjZGVmaW5lIEZfRExMICAgICAgICAgICAoMHgyMDAwKQotKyNkZWZpbmUgRl9HTzMyU1RVQiAg ICAgICgweDQwMDApCi0gCi0gLyogRXh0cmEgc3RydWN0dXJlIHdoaWNoIGlzIHVzZWQgaW4gdGhl IG9wdGlvbmFsIGhlYWRlci4gICovCi0gdHlwZWRlZiBzdHJ1Y3QgX0lNQUdFX0RBVEFfRElSRUNU T1JZIAoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggY2IyZjdhNC4uYzEx NzFmMiAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTEwLDE1ICsxMCwx NSBAQCBOYW1lOiBnZGIlez9fd2l0aF9kZWJ1ZzotZGVidWd9CiAjIFNldCB2ZXJzaW9uIHRvIGNv bnRlbnRzIG9mIGdkYi92ZXJzaW9uLmluLgogIyBOT1RFOiB0aGUgRlNGIGdkYiB2ZXJzaW9ucyBh cmUgbnVtYmVyZWQgTi5NIGZvciBvZmZpY2lhbCByZWxlYXNlcywgbGlrZSA2LjMgCiAjIGFuZCwg c2luY2UgSmFudWFyeSAyMDA1LCBYLlkuWi5kYXRlIGZvciBkYWlseSBzbmFwc2hvdHMsIGxpa2Ug Ni4zLjUwLjIwMDUwMTEyICMgKGRhaWx5IHNuYXBzaG90IGZyb20gbWFpbGluZSksIG9yIDYuMy4w LjIwMDQwMTEyIChoZWFkIG9mIHRoZSByZWxlYXNlIGJyYW5jaCkuCi1WZXJzaW9uOiA2LjguNTAu MjAwOTA4MTAKK1ZlcnNpb246IDYuOC41MC4yMDA5MDgxMQogCiAjIFRoZSByZWxlYXNlIGFsd2F5 cyBjb250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBg dXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVu ZGVuY2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDIlez9fd2l0aF91 cHN0cmVhbToudXBzdHJlYW19JXs/ZGlzdH0KK1JlbGVhc2U6IDElez9fd2l0aF91cHN0cmVhbTou dXBzdHJlYW19JXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrCiBHcm91cDogRGV2ZWxvcG1lbnQv RGVidWdnZXJzCi1Tb3VyY2U6IGZ0cDovL3NvdXJjZXdhcmUub3JnL3B1Yi9nZGIvcmVsZWFzZXMv Z2RiLSV7dmVyc2lvbn0udGFyLmJ6MgorU291cmNlOiBmdHA6Ly9zb3VyY2V3YXJlLm9yZy9wdWIv Z2RiL3NuYXBzaG90cy9jdXJyZW50L2dkYi0le3ZlcnNpb259LnRhci5iejIKIEJ1aWxkcm9vdDog JShta3RlbXAgLXVkICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LVhY WFhYWCkKIFVSTDogaHR0cDovL2dudS5vcmcvc29mdHdhcmUvZ2RiLwogCkBAIC0yMTcsOCArMjE3 LDggQEAgUGF0Y2gyMjk6IGdkYi02LjMtYnoxNDA1MzItcHBjLXVud2luZGluZy10ZXN0LnBhdGNo CiAjIFRlc3RjYXNlIGZvciBleGVjKCkgZnJvbSB0aHJlYWRlZCBwcm9ncmFtIChCWiAyMDI2ODkp LgogUGF0Y2gyMzE6IGdkYi02LjMtYnoyMDI2ODktZXhlYy1mcm9tLXB0aHJlYWQtdGVzdC5wYXRj aAogCi0jIEJhY2twb3J0ZWQgcG9zdCBnZGItNi44LjUwLjIwMDkwODEwIHNuYXBzaG90IGZpeHVw cy4KLSNQYXRjaDIzMjogZ2RiLTYuOC41MC4yMDA5MDgxMC11cHN0cmVhbS5wYXRjaAorIyBCYWNr cG9ydGVkIHBvc3QgZ2RiLTYuOC41MC4yMDA5MDgxMSBzbmFwc2hvdCBmaXh1cHMuCisjUGF0Y2gy MzI6IGdkYi02LjguNTAuMjAwOTA4MTEtdXBzdHJlYW0ucGF0Y2gKIAogIyBUZXN0Y2FzZSBmb3Ig UFBDIFBvd2VyNi9ERlAgaW5zdHJ1Y3Rpb25zIGRpc2Fzc2VtYmx5IChCWiAyMzAwMDApLgogUGF0 Y2gyMzQ6IGdkYi02LjYtYnoyMzAwMDAtcG93ZXI2LWRpc2Fzc2VtYmx5LXRlc3QucGF0Y2gKQEAg LTgyNSw3ICs4MjUsMTIgQEAgZmkKICVlbmRpZgogCiAlY2hhbmdlbG9nCi0qIE1vbiBBdWcgMTAg MjAwOSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA2LjguNTAu MjAwOTA4MTAtMQorKiBUdWUgQXVnIDExIDIwMDkgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+IC0gNi44LjUwLjIwMDkwODExLTEKKy0gU3VwcG9ydCBjb25zdGFudCBE V19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiBieSBHQ0MgUFIgZGVidWcvNDA2NTkgKEJaIDUxNTM3 NykuCistIEZpeCAuc3BlYyBVUkwuCistIGFyY2hlci1qYW5rcmF0b2NodmlsLWZlZG9yYTEyIGNv bW1pdDogODFkZTNjNmFiYWU0ZjdlMzczOGFhOWJjYzBhYjJmODcyNWNjZTI1MgorCisqIE1vbiBB dWcgMTAgMjAwOSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA2 LjguNTAuMjAwOTA4MTAtMgogLSBVcGdyYWRlIHRvIHRoZSBGU0YgR0RCIGdkYi02LjguNTAgc25h cHNob3Q6IDYuOC41MC4yMDA5MDgxMAogLSBhcmNoZXItamFua3JhdG9jaHZpbC1mZWRvcmExMiBj b21taXQ6IDkzZWMxNmU2ZjUwMDBkZDY0ZDQzM2Q4NjY3NGU4MjBlZDBmMzViNzIKIAoKZGlmZiAt LWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDQ2NmFkYTUuLmZmYmFjYzIgMTAwNjQ0Ci0t LSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBAQAotYjQ1NDk0OTgzNDU4NDk0NTg0 NjRjOGZlMjUwM2EzN2MgIGdkYi02LjguNTAuMjAwOTA4MTAudGFyLmJ6MgorZjNlMGNmY2UxMjc5 ODJkMGYxNDc3NzE4OGQ4ZmE0YzUgIGdkYi02LjguNTAuMjAwOTA4MTEudGFyLmJ6Mgo=