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: - Upgrade to the FSF GDB gdb-7.0 snapshot: 6.8.91.20090925 Date: Sat, 27 Jun 2026 23:54:26 GMT Message-ID: <178260446678.1.9485132937577993596.rpms-gdb-4d3aa5611718@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 4d3aa56117188a28cdcbb527b0d253bb353b6f4c ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogNGQzYWE1NjExNzE4OGEyOGNkY2JiNTI3YjBkMjUzYmIzNTNi NmY0YwogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3Jh cHJvamVjdC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDktMjVUMDY6NDk6MjErMDA6 MDAKICAgICAgICAgICAgU3RhdHMgIDogKzM5MC8tMTE1NCBpbiA2IGZpbGUocykKICAgICAgICAg ICAgVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy80ZDNh YTU2MTE3MTg4YTI4Y2RjYmI1MjdiMGQyNTNiYjM1M2I2ZjRjP2JyYW5jaD1nZGItMTcuMi1yZWJh c2UtZjQ0CgogICAgICAgICAgICBMb2c6CiAgICAgICAgICAgIC0gVXBncmFkZSB0byB0aGUgRlNG IEdEQiBnZGItNy4wIHNuYXBzaG90OiA2LjguOTEuMjAwOTA5MjUKLSBhcmNoZXItamFua3JhdG9j aHZpbC1mZWRvcmExMiBjb21taXQ6CiAgICA0MzM4ZWE4NWM3OTgwMDdjMzI1OTQwMzJmNjAyZGI5 ZmQyMzBlYmE5Ci0gW3B5dGhvbl0gRG9uJ3QgZGlyZWN0bHkgcmVmZXJlbmNlIHNlbGYuZnJhbWUg KFRvbSBUcm9tZXkpLgotIFtleHByXSBVcGRhdGVzIGZyb20gYnJhbmNoIChLZWl0aCBTZWl0eiku CgotLS0KZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUgYi8uY3ZzaWdub3JlCmluZGV4IDRjZjdkMDUu LjY1MGVjNGEgMTAwNjQ0Ci0tLSBhLy5jdnNpZ25vcmUKKysrIGIvLmN2c2lnbm9yZQpAQCAtMSwy ICsxLDIgQEAKIGxpYnN0ZGMrKy12My1weXRob24tcjE1MTc5OC50YXIueHoKLWdkYi02LjguOTEu MjAwOTA5MjEudGFyLmJ6MgorZ2RiLTYuOC45MS4yMDA5MDkyNS50YXIuYnoyCgpkaWZmIC0tZ2l0 IGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2ggYi9nZGItNi4zLXJlYWRuZXZlci0y MDA1MDkwNy5wYXRjaAppbmRleCBiY2JmYWU4Li44MjNjMzhmIDEwMDY0NAotLS0gYS9nZGItNi4z LXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaAorKysgYi9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkw Ny5wYXRjaApAQCAtNjUsNyArNjUsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIv ZHdhcmYycmVhZC5jCiAtLS0gZ2RiLTYuOC41MC4yMDA5MDgxMS5vcmlnL2dkYi9kd2FyZjJyZWFk LmMJMjAwOS0wOC0xMyAxMDoxNDoxNS4wMDAwMDAwMDAgKzAyMDAKICsrKyBnZGItNi44LjUwLjIw MDkwODExL2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOC0xMyAxMDoxNDoyOS4wMDAwMDAwMDAgKzAy MDAKIEBAIC01Myw2ICs1Myw3IEBACi0gI2luY2x1ZGUgInR5cGVwcmludC5oIgorICNpbmNsdWRl ICJqdi1sYW5nLmgiCiAgI2luY2x1ZGUgInZlYy5oIgogICNpbmNsdWRlICJibG9jay5oIgogKyNp bmNsdWRlICJ0b3AuaCIKCmRpZmYgLS1naXQgYS9nZGItNi44LjUwLjIwMDkwOTIxLXVwc3RyZWFt LnBhdGNoIGIvZ2RiLTYuOC41MC4yMDA5MDkyMS11cHN0cmVhbS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMTc3ODU1Mi4uMDAwMDAwMAotLS0gYS9nZGItNi44LjUwLjIwMDkw OTIxLXVwc3RyZWFtLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTY1ICswLDAgQEAKLT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLVJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL0NoYW5nZUxvZyx2Ci1yZXRyaWV2aW5n IHJldmlzaW9uIDEuMTA4NzQuMi4xMQotcmV0cmlldmluZyByZXZpc2lvbiAxLjEwODc0LjIuMTIK LWRpZmYgLXUgLXIxLjEwODc0LjIuMTEgLXIxLjEwODc0LjIuMTIKLS0tLSBzcmMvZ2RiL0NoYW5n ZUxvZwkyMDA5LzA5LzE5IDE2OjM2OjA4CTEuMTA4NzQuMi4xMQotKysrIHNyYy9nZGIvQ2hhbmdl TG9nCTIwMDkvMDkvMjEgMDY6NTc6MDIJMS4xMDg3NC4yLjEyCi1AQCAtMSwzICsxLDQ3IEBACi0r MjAwOS0wOS0yMSAgSHVpIFpodSAgPHRlYXdhdGVyQGdtYWlsLmNvbT4KLSsJICAgIE1pY2hhZWwg U255ZGVyICA8bXNueWRlckB2bXdhcmUuY29tPgotKwotKwkqIGFtZDY0LWxpbnV4LXRkZXAuYyAo YW1kNjRfYWxsX2J1dF9pcF9yZWdpc3RlcnNfcmVjb3JkKTogTmV3Ci0rCWZ1bmN0aW9uLgotKwko YW1kNjRfbGludXhfc3lzY2FsbF9yZWNvcmQpOiBDYWxsCi0rCWFtZDY0X2FsbF9idXRfaXBfcmVn aXN0ZXJzX3JlY29yZCBpZiBzeXNjYWxsIGlzCi0rCXN5c19ydF9zaWdyZXR1cm4uCi0rCShBTUQ2 NF9MSU5VWF9yZWR6b25lLCBBTUQ2NF9MSU5VWF94c3RhdGUsCi0rCUFNRDY0X0xJTlVYX2ZyYW1l X3NpemUpOiBOZXcgbWFjcm9zLgotKwkoYW1kNjRfbGludXhfcmVjb3JkX3NpZ25hbCk6IE5ldyBm dW5jdGlvbi4KLSsJKGFtZDY0X2xpbnV4X2luaXRfYWJpKTogQ2FsbCBzZXRfZ2RiYXJjaF9wcm9j ZXNzX3JlY29yZF9zaWduYWwuCi0rCi0rMjAwOS0wOS0yMSAgSHVpIFpodSAgPHRlYXdhdGVyQGdt YWlsLmNvbT4KLSsJICAgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckB2bXdhcmUuY29tPgotKwot KwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2FsbF9idXRfaXBfcmVnaXN0ZXJzX3JlY29yZCk6 IE5ldwotKwlmdW5jdGlvbi4KLSsJKGkzODZfbGludXhfaW50eDgwX3N5c2VudGVyX3JlY29yZCk6 IENhbGwKLSsJaTM4Nl9hbGxfYnV0X2lwX3JlZ2lzdGVyc19yZWNvcmQgaWYgc3lzY2FsbCBpcyBz eXNfc2lncmV0dXJuCi0rCW9yIHN5c19ydF9zaWdyZXR1cm4uCi0rCShJMzg2X0xJTlVYX3hzdGF0 ZSwgSTM4Nl9MSU5VWF9mcmFtZV9zaXplKTogTmV3IG1hY3Jvcy4KLSsJKGkzODZfbGludXhfcmVj b3JkX3NpZ25hbCk6IE5ldyBmdW5jdGlvbi4KLSsJKGkzODZfbGludXhfaW5pdF9hYmkpOiBDYWxs IHNldF9nZGJhcmNoX3Byb2Nlc3NfcmVjb3JkX3NpZ25hbC4KLSsKLSsyMDA5LTA5LTIxICBIdWkg Wmh1ICA8dGVhd2F0ZXJAZ21haWwuY29tPgotKwkgICAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVy QHZtd2FyZS5jb20+Ci0rCi0rCSogcmVjb3JkLmMgKHJlY29yZF9lbmRfZW50cnkpOiBOZXcgc3Ry dWN0LgotKwkocmVjb3JkX3R5cGUpOiBBZGQgZW5kLgotKwkocmVjb3JkX2FyY2hfbGlzdF9hZGRf ZW5kKTogU2V0IHJlYy0+dS5lbmQuc2lndmFsIHRvCi0rCVRBUkdFVF9TSUdOQUxfMC4KLSsJKHJl Y29yZF9tZXNzYWdlX2FyZ3MpOiBOZXcgc3RydWN0LgotKwkocmVjb3JkX21lc3NhZ2UpOiBDYWxs IGdkYmFyY2hfcHJvY2Vzc19yZWNvcmRfc2lnbmFsLgotKwkoZG9fcmVjb3JkX21lc3NhZ2UpOiBB ZGQgYXJndW1lbnQgInNpZ25hbCIuCi0rCShyZWNvcmRfcmVzdW1lKTogRGl0dG8uCi0rCShyZWNv cmRfd2FpdCk6IERpdHRvLiAgQ2hlY2sgcmVjb3JkX2xpc3QtPnUuZW5kLnNpZ3ZhbAotKwlpbiBy ZXBsYXkgbW9kZS4KLSsKLSsyMDA5LTA5LTIxICBIdWkgWmh1ICA8dGVhd2F0ZXJAZ21haWwuY29t PgotKwkgICAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHZtd2FyZS5jb20+Ci0rCi0rCSogZ2Ri YXJjaC5zaCAocHJvY2Vzc19yZWNvcmRfc2lnbmFsKTogTmV3IGludGVyZmFjZS4KLSsKLSAyMDA5 LTA5LTE5ICBNYXhpbSBHcmlnb3JpZXYgIDxtYXhpbTI0MDVAZ21haWwuY29tPgotIAotIAkqIHh0 ZW5zYS10ZGVwLmMgKGNhbGwwX2FuYWx5emVfcHJvbG9ndWUpOiBSZXBsYWNlIElOVF9NQVggYnkg VU5JVF9NQVguCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci1SQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9nZGJhcmNo LnNoLHYKLXJldHJpZXZpbmcgcmV2aXNpb24gMS40OTYKLXJldHJpZXZpbmcgcmV2aXNpb24gMS40 OTYuMi4xCi1kaWZmIC11IC1yMS40OTYgLXIxLjQ5Ni4yLjEKLS0tLSBzcmMvZ2RiL2dkYmFyY2gu c2gJMjAwOS8wOS8xNSAwMzozMDowNQkxLjQ5NgotKysrIHNyYy9nZGIvZ2RiYXJjaC5zaAkyMDA5 LzA5LzIxIDA2OjU3OjAyCTEuNDk2LjIuMQotQEAgLTcwOSw2ICs3MDksMTAgQEAKLSAjIFJldHVy biAtMSBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZywgMCBvdGhlcndpc2UuCi0gTTppbnQ6cHJvY2Vz c19yZWNvcmQ6c3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgQ09SRV9BRERSIGFkZHI6cmVnY2Fj aGUsIGFkZHIKLSAKLSsjIFNhdmUgcHJvY2VzcyBzdGF0ZSBhZnRlciBhIHNpZ25hbC4KLSsjIFJl dHVybiAtMSBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZywgMCBvdGhlcndpc2UuCi0rTTppbnQ6cHJv Y2Vzc19yZWNvcmRfc2lnbmFsOnN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGVudW0gdGFyZ2V0 X3NpZ25hbCBzaWduYWw6cmVnY2FjaGUsIHNpZ25hbAotKwotICMgU2lnbmFsIHRyYW5zbGF0aW9u OiB0cmFuc2xhdGUgaW5mZXJpb3IncyBzaWduYWwgKGhvc3QncykgbnVtYmVyIGludG8KLSAjIEdE QidzIHJlcHJlc2VudGF0aW9uLgotIG06ZW51bSB0YXJnZXRfc2lnbmFsOnRhcmdldF9zaWduYWxf ZnJvbV9ob3N0OmludCBzaWdubzpzaWdubzo6ZGVmYXVsdF90YXJnZXRfc2lnbmFsX2Zyb21faG9z dDo6MAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZ2RiYXJjaC5jLHYK LXJldHJpZXZpbmcgcmV2aXNpb24gMS40NTMKLXJldHJpZXZpbmcgcmV2aXNpb24gMS40NTMuMi4x Ci1kaWZmIC11IC1yMS40NTMgLXIxLjQ1My4yLjEKLS0tLSBzcmMvZ2RiL2dkYmFyY2guYwkyMDA5 LzA5LzE1IDAzOjMwOjA1CTEuNDUzCi0rKysgc3JjL2dkYi9nZGJhcmNoLmMJMjAwOS8wOS8yMSAw Njo1NzowMgkxLjQ1My4yLjEKLUBAIC0yNDAsNiArMjQwLDcgQEAKLSAgIGdkYmFyY2hfc3RhdGlj X3RyYW5zZm9ybV9uYW1lX2Z0eXBlICpzdGF0aWNfdHJhbnNmb3JtX25hbWU7Ci0gICBpbnQgc29m dW5fYWRkcmVzc19tYXliZV9taXNzaW5nOwotICAgZ2RiYXJjaF9wcm9jZXNzX3JlY29yZF9mdHlw ZSAqcHJvY2Vzc19yZWNvcmQ7Ci0rICBnZGJhcmNoX3Byb2Nlc3NfcmVjb3JkX3NpZ25hbF9mdHlw ZSAqcHJvY2Vzc19yZWNvcmRfc2lnbmFsOwotICAgZ2RiYXJjaF90YXJnZXRfc2lnbmFsX2Zyb21f aG9zdF9mdHlwZSAqdGFyZ2V0X3NpZ25hbF9mcm9tX2hvc3Q7Ci0gICBnZGJhcmNoX3RhcmdldF9z aWduYWxfdG9faG9zdF9mdHlwZSAqdGFyZ2V0X3NpZ25hbF90b19ob3N0OwotICAgZ2RiYXJjaF9n ZXRfc2lnaW5mb190eXBlX2Z0eXBlICpnZXRfc2lnaW5mb190eXBlOwotQEAgLTM3OCw2ICszNzks NyBAQAotICAgMCwgIC8qIHN0YXRpY190cmFuc2Zvcm1fbmFtZSAqLwotICAgMCwgIC8qIHNvZnVu X2FkZHJlc3NfbWF5YmVfbWlzc2luZyAqLwotICAgMCwgIC8qIHByb2Nlc3NfcmVjb3JkICovCi0r ICAwLCAgLyogcHJvY2Vzc19yZWNvcmRfc2lnbmFsICovCi0gICBkZWZhdWx0X3RhcmdldF9zaWdu YWxfZnJvbV9ob3N0LCAgLyogdGFyZ2V0X3NpZ25hbF9mcm9tX2hvc3QgKi8KLSAgIGRlZmF1bHRf dGFyZ2V0X3NpZ25hbF90b19ob3N0LCAgLyogdGFyZ2V0X3NpZ25hbF90b19ob3N0ICovCi0gICAw LCAgLyogZ2V0X3NpZ2luZm9fdHlwZSAqLwotQEAgLTYzNSw2ICs2MzcsNyBAQAotICAgLyogU2tp cCB2ZXJpZnkgb2Ygc3RhdGljX3RyYW5zZm9ybV9uYW1lLCBoYXMgcHJlZGljYXRlICovCi0gICAv KiBTa2lwIHZlcmlmeSBvZiBzb2Z1bl9hZGRyZXNzX21heWJlX21pc3NpbmcsIGludmFsaWRfcCA9 PSAwICovCi0gICAvKiBTa2lwIHZlcmlmeSBvZiBwcm9jZXNzX3JlY29yZCwgaGFzIHByZWRpY2F0 ZSAqLwotKyAgLyogU2tpcCB2ZXJpZnkgb2YgcHJvY2Vzc19yZWNvcmRfc2lnbmFsLCBoYXMgcHJl ZGljYXRlICovCi0gICAvKiBTa2lwIHZlcmlmeSBvZiB0YXJnZXRfc2lnbmFsX2Zyb21faG9zdCwg aW52YWxpZF9wID09IDAgKi8KLSAgIC8qIFNraXAgdmVyaWZ5IG9mIHRhcmdldF9zaWduYWxfdG9f aG9zdCwgaW52YWxpZF9wID09IDAgKi8KLSAgIC8qIFNraXAgdmVyaWZ5IG9mIGdldF9zaWdpbmZv X3R5cGUsIGhhcyBwcmVkaWNhdGUgKi8KLUBAIC05NzEsNiArOTc0LDEyIEBACi0gICAgICAgICAg ICAgICAgICAgICAgICJnZGJhcmNoX2R1bXA6IHByb2Nlc3NfcmVjb3JkID0gPCVzPlxuIiwKLSAg ICAgICAgICAgICAgICAgICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmluZyAoZ2RiYXJjaC0+cHJv Y2Vzc19yZWNvcmQpKTsKLSAgIGZwcmludGZfdW5maWx0ZXJlZCAoZmlsZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgImdkYmFyY2hfZHVtcDogZ2RiYXJjaF9wcm9jZXNzX3JlY29yZF9zaWduYWxf cCgpID0gJWRcbiIsCi0rICAgICAgICAgICAgICAgICAgICAgIGdkYmFyY2hfcHJvY2Vzc19yZWNv cmRfc2lnbmFsX3AgKGdkYmFyY2gpKTsKLSsgIGZwcmludGZfdW5maWx0ZXJlZCAoZmlsZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgImdkYmFyY2hfZHVtcDogcHJvY2Vzc19yZWNvcmRfc2lnbmFs ID0gPCVzPlxuIiwKLSsgICAgICAgICAgICAgICAgICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmlu ZyAoZ2RiYXJjaC0+cHJvY2Vzc19yZWNvcmRfc2lnbmFsKSk7Ci0rICBmcHJpbnRmX3VuZmlsdGVy ZWQgKGZpbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICJnZGJhcmNoX2R1bXA6IHBzX3JlZ251 bSA9ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICBwbG9uZ2VzdCAoZ2RiYXJjaC0+cHNf cmVnbnVtKSk7Ci0gICBmcHJpbnRmX3VuZmlsdGVyZWQgKGZpbGUsCi1AQCAtMzMwNyw2ICszMzE2 LDMwIEBACi0gICBnZGJhcmNoLT5wcm9jZXNzX3JlY29yZCA9IHByb2Nlc3NfcmVjb3JkOwotIH0K LSAKLStpbnQKLStnZGJhcmNoX3Byb2Nlc3NfcmVjb3JkX3NpZ25hbF9wIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCkKLSt7Ci0rICBnZGJfYXNzZXJ0IChnZGJhcmNoICE9IE5VTEwpOwotKyAgcmV0 dXJuIGdkYmFyY2gtPnByb2Nlc3NfcmVjb3JkX3NpZ25hbCAhPSBOVUxMOwotK30KLSsKLStpbnQK LStnZGJhcmNoX3Byb2Nlc3NfcmVjb3JkX3NpZ25hbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs IHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGVudW0gdGFyZ2V0X3NpZ25hbCBzaWduYWwpCi0r ewotKyAgZ2RiX2Fzc2VydCAoZ2RiYXJjaCAhPSBOVUxMKTsKLSsgIGdkYl9hc3NlcnQgKGdkYmFy Y2gtPnByb2Nlc3NfcmVjb3JkX3NpZ25hbCAhPSBOVUxMKTsKLSsgIGlmIChnZGJhcmNoX2RlYnVn ID49IDIpCi0rICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgImdkYmFyY2hfcHJv Y2Vzc19yZWNvcmRfc2lnbmFsIGNhbGxlZFxuIik7Ci0rICByZXR1cm4gZ2RiYXJjaC0+cHJvY2Vz c19yZWNvcmRfc2lnbmFsIChnZGJhcmNoLCByZWdjYWNoZSwgc2lnbmFsKTsKLSt9Ci0rCi0rdm9p ZAotK3NldF9nZGJhcmNoX3Byb2Nlc3NfcmVjb3JkX3NpZ25hbCAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGJhcmNoX3Byb2Nl c3NfcmVjb3JkX3NpZ25hbF9mdHlwZSBwcm9jZXNzX3JlY29yZF9zaWduYWwpCi0rewotKyAgZ2Ri YXJjaC0+cHJvY2Vzc19yZWNvcmRfc2lnbmFsID0gcHJvY2Vzc19yZWNvcmRfc2lnbmFsOwotK30K LSsKLSBlbnVtIHRhcmdldF9zaWduYWwKLSBnZGJhcmNoX3RhcmdldF9zaWduYWxfZnJvbV9ob3N0 IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHNpZ25vKQotIHsKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVJD UyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2dkYmFyY2guaCx2Ci1yZXRyaWV2aW5nIHJldmlzaW9u IDEuNDAzCi1yZXRyaWV2aW5nIHJldmlzaW9uIDEuNDAzLjIuMQotZGlmZiAtdSAtcjEuNDAzIC1y MS40MDMuMi4xCi0tLS0gc3JjL2dkYi9nZGJhcmNoLmgJMjAwOS8wOS8xNSAwMzozMDowNQkxLjQw MwotKysrIHNyYy9nZGIvZ2RiYXJjaC5oCTIwMDkvMDkvMjEgMDY6NTc6MDIJMS40MDMuMi4xCi1A QCAtODIyLDYgKzgyMiwxNSBAQAotIGV4dGVybiBpbnQgZ2RiYXJjaF9wcm9jZXNzX3JlY29yZCAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIENPUkVf QUREUiBhZGRyKTsKLSBleHRlcm4gdm9pZCBzZXRfZ2RiYXJjaF9wcm9jZXNzX3JlY29yZCAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsIGdkYmFyY2hfcHJvY2Vzc19yZWNvcmRfZnR5cGUgKnByb2Nl c3NfcmVjb3JkKTsKLSAKLSsvKiBTYXZlIHByb2Nlc3Mgc3RhdGUgYWZ0ZXIgYSBzaWduYWwuCi0r ICAgUmV0dXJuIC0xIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nLCAwIG90aGVyd2lzZS4gKi8KLSsK LStleHRlcm4gaW50IGdkYmFyY2hfcHJvY2Vzc19yZWNvcmRfc2lnbmFsX3AgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoKTsKLSsKLSt0eXBlZGVmIGludCAoZ2RiYXJjaF9wcm9jZXNzX3JlY29yZF9z aWduYWxfZnR5cGUpIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSwgZW51bSB0YXJnZXRfc2lnbmFsIHNpZ25hbCk7Ci0rZXh0ZXJuIGludCBnZGJhcmNo X3Byb2Nlc3NfcmVjb3JkX3NpZ25hbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCBy ZWdjYWNoZSAqcmVnY2FjaGUsIGVudW0gdGFyZ2V0X3NpZ25hbCBzaWduYWwpOwotK2V4dGVybiB2 b2lkIHNldF9nZGJhcmNoX3Byb2Nlc3NfcmVjb3JkX3NpZ25hbCAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsIGdkYmFyY2hfcHJvY2Vzc19yZWNvcmRfc2lnbmFsX2Z0eXBlICpwcm9jZXNzX3JlY29y ZF9zaWduYWwpOwotKwotIC8qIFNpZ25hbCB0cmFuc2xhdGlvbjogdHJhbnNsYXRlIGluZmVyaW9y J3Mgc2lnbmFsIChob3N0J3MpIG51bWJlciBpbnRvCi0gICAgR0RCJ3MgcmVwcmVzZW50YXRpb24u ICovCi0gCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci1SQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9yZWNvcmQuYyx2 Ci1yZXRyaWV2aW5nIHJldmlzaW9uIDEuMTcKLXJldHJpZXZpbmcgcmV2aXNpb24gMS4xNy4yLjEK LWRpZmYgLXUgLXIxLjE3IC1yMS4xNy4yLjEKLS0tLSBzcmMvZ2RiL3JlY29yZC5jCTIwMDkvMDkv MDggMDA6NTA6NDIJMS4xNwotKysrIHNyYy9nZGIvcmVjb3JkLmMJMjAwOS8wOS8yMSAwNjo1Nzow MwkxLjE3LjIuMQotQEAgLTU5LDYgKzU5LDExIEBACi0gICBnZGJfYnl0ZSAqdmFsOwotIH07Ci0g Ci0rc3RydWN0IHJlY29yZF9lbmRfZW50cnkKLSt7Ci0rICBlbnVtIHRhcmdldF9zaWduYWwgc2ln dmFsOwotK307Ci0rCi0gZW51bSByZWNvcmRfdHlwZQotIHsKLSAgIHJlY29yZF9lbmQgPSAwLAot QEAgLTc3LDYgKzgyLDggQEAKLSAgICAgc3RydWN0IHJlY29yZF9yZWdfZW50cnkgcmVnOwotICAg ICAvKiBtZW0gKi8KLSAgICAgc3RydWN0IHJlY29yZF9tZW1fZW50cnkgbWVtOwotKyAgICAvKiBl bmQgKi8KLSsgICAgc3RydWN0IHJlY29yZF9lbmRfZW50cnkgZW5kOwotICAgfSB1OwotIH07Ci0g Ci1AQCAtMzE0LDYgKzMyMSw3IEBACi0gICByZWMtPnByZXYgPSBOVUxMOwotICAgcmVjLT5uZXh0 ID0gTlVMTDsKLSAgIHJlYy0+dHlwZSA9IHJlY29yZF9lbmQ7Ci0rICByZWMtPnUuZW5kLnNpZ3Zh bCA9IFRBUkdFVF9TSUdOQUxfMDsKLSAKLSAgIHJlY29yZF9hcmNoX2xpc3RfYWRkIChyZWMpOwot IAotQEAgLTM2MCwxMSArMzY4LDE3IEBACi0gICByZWNvcmRfbGlzdF9yZWxlYXNlIChyZWNvcmRf YXJjaF9saXN0X3RhaWwpOwotIH0KLSAKLStzdHJ1Y3QgcmVjb3JkX21lc3NhZ2VfYXJncyB7Ci0r ICBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlOwotKyAgZW51bSB0YXJnZXRfc2lnbmFsIHNpZ25h bDsKLSt9OwotKwotIHN0YXRpYyBpbnQKLSByZWNvcmRfbWVzc2FnZSAodm9pZCAqYXJncykKLSB7 Ci0gICBpbnQgcmV0OwotLSAgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSA9IGFyZ3M7Ci0rICBz dHJ1Y3QgcmVjb3JkX21lc3NhZ2VfYXJncyAqbXlhcmdzID0gYXJnczsKLSsgIHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKG15YXJncy0+cmVnY2FjaGUpOwotICAg c3RydWN0IGNsZWFudXAgKm9sZF9jbGVhbnVwcyA9IG1ha2VfY2xlYW51cCAocmVjb3JkX21lc3Nh Z2VfY2xlYW51cHMsIDApOwotIAotICAgcmVjb3JkX2FyY2hfbGlzdF9oZWFkID0gTlVMTDsKLUBA IC0zNzMsOSArMzg3LDQ0IEBACi0gICAvKiBDaGVjayByZWNvcmRfaW5zbl9udW0uICAqLwotICAg cmVjb3JkX2NoZWNrX2luc25fbnVtICgxKTsKLSAKLS0gIHJldCA9IGdkYmFyY2hfcHJvY2Vzc19y ZWNvcmQgKGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSksCi0tCQkJCXJlZ2NhY2hlLAotLQkJ CQlyZWdjYWNoZV9yZWFkX3BjIChyZWdjYWNoZSkpOwotKyAgLyogSWYgZ2RiIHNlbmRzIGEgc2ln bmFsIHZhbHVlIHRvIHRhcmdldF9yZXN1bWUsCi0rICAgICBzYXZlIGl0IGluIHRoZSAnZW5kJyBm aWVsZCBvZiB0aGUgcHJldmlvdXMgaW5zdHJ1Y3Rpb24uCi0rCi0rICAgICBNYXliZSBwcm9jZXNz IHJlY29yZCBzaG91bGQgcmVjb3JkIHdoYXQgcmVhbGx5IGhhcHBlbmVkLAotKyAgICAgcmF0aGVy IHRoYW4gd2hhdCBnZGIgcHJldGVuZHMgaGFzIGhhcHBlbmVkLgotKwotKyAgICAgU28gaWYgTGlu dXggZGVsaXZlcmVkIHRoZSBzaWduYWwgdG8gdGhlIGNoaWxkIHByb2Nlc3MgZHVyaW5nCi0rICAg ICB0aGUgcmVjb3JkIG1vZGUsIHdlIHdpbGwgcmVjb3JkIGl0IGFuZCBkZWxpdmVyIGl0IGFnYWlu IGluCi0rICAgICB0aGUgcmVwbGF5IG1vZGUuCi0rCi0rICAgICBJZiB1c2VyIHNheXMgImlnbm9y ZSB0aGlzIHNpZ25hbCIgZHVyaW5nIHRoZSByZWNvcmQgbW9kZSwgdGhlbgotKyAgICAgaXQgd2ls bCBiZSBpZ25vcmVkIGFnYWluIGR1cmluZyB0aGUgcmVwbGF5IG1vZGUgKG5vIG1hdHRlciBpZgot KyAgICAgdGhlIHVzZXIgc2F5cyBzb21ldGhpbmcgZGlmZmVyZW50LCBsaWtlICJkZWxpdmVyIHRo aXMgc2lnbmFsIgotKyAgICAgZHVyaW5nIHRoZSByZXBsYXkgbW9kZSkuCi0rCi0rICAgICBVc2Vy IHNob3VsZCB1bmRlcnN0YW5kIHRoYXQgbm90aGluZyBoZSBkb2VzIGR1cmluZyB0aGUgcmVwbGF5 Ci0rICAgICBtb2RlIHdpbGwgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiB0aGUgY2hpbGQuICBJZiBo ZSB0cmllcywKLSsgICAgIHRoZW4gdGhhdCBpcyBhIHVzZXIgZXJyb3IuCi0rCi0rICAgICBCdXQg d2Ugc2hvdWxkIHN0aWxsIGRlbGl2ZXIgdGhlIHNpZ25hbCB0byBnZGIgZHVyaW5nIHRoZSByZXBs YXksCi0rICAgICBpZiB3ZSBkZWxpdmVyZWQgaXQgZHVyaW5nIHRoZSByZWNvcmRpbmcuICBUaGVy ZWZvcmUgd2Ugc2hvdWxkCi0rICAgICByZWNvcmQgdGhlIHNpZ25hbCBkdXJpbmcgcmVjb3JkX3dh aXQsIG5vdCByZWNvcmRfcmVzdW1lLiAgKi8KLSsgIGlmIChyZWNvcmRfbGlzdCAhPSAmcmVjb3Jk X2ZpcnN0KSAgICAvKiBGSVhNRSBiZXR0ZXIgd2F5IHRvIGNoZWNrICovCi0rICAgIHsKLSsgICAg ICBnZGJfYXNzZXJ0IChyZWNvcmRfbGlzdC0+dHlwZSA9PSByZWNvcmRfZW5kKTsKLSsgICAgICBy ZWNvcmRfbGlzdC0+dS5lbmQuc2lndmFsID0gbXlhcmdzLT5zaWduYWw7Ci0rICAgIH0KLSsKLSsg IGlmIChteWFyZ3MtPnNpZ25hbCA9PSBUQVJHRVRfU0lHTkFMXzAKLSsgICAgICB8fCAhZ2RiYXJj aF9wcm9jZXNzX3JlY29yZF9zaWduYWxfcCAoZ2RiYXJjaCkpCi0rICAgIHJldCA9IGdkYmFyY2hf cHJvY2Vzc19yZWNvcmQgKGdkYmFyY2gsCi0rCQkJCSAgbXlhcmdzLT5yZWdjYWNoZSwKLSsJCQkJ ICByZWdjYWNoZV9yZWFkX3BjIChteWFyZ3MtPnJlZ2NhY2hlKSk7Ci0rICBlbHNlCi0rICAgIHJl dCA9IGdkYmFyY2hfcHJvY2Vzc19yZWNvcmRfc2lnbmFsIChnZGJhcmNoLAotKwkJCQkJIG15YXJn cy0+cmVnY2FjaGUsCi0rCQkJCQkgbXlhcmdzLT5zaWduYWwpOwotKwotICAgaWYgKHJldCA+IDAp Ci0gICAgIGVycm9yIChfKCJQcm9jZXNzIHJlY29yZDogaW5mZXJpb3IgcHJvZ3JhbSBzdG9wcGVk LiIpKTsKLSAgIGlmIChyZXQgPCAwKQotQEAgLTM5Niw5ICs0NDUsMTQgQEAKLSB9Ci0gCi0gc3Rh dGljIGludAotLWRvX3JlY29yZF9tZXNzYWdlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQot K2RvX3JlY29yZF9tZXNzYWdlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAotKwkJICAgZW51 bSB0YXJnZXRfc2lnbmFsIHNpZ25hbCkKLSB7Ci0tICByZXR1cm4gY2F0Y2hfZXJyb3JzIChyZWNv cmRfbWVzc2FnZSwgcmVnY2FjaGUsIE5VTEwsIFJFVFVSTl9NQVNLX0FMTCk7Ci0rICBzdHJ1Y3Qg cmVjb3JkX21lc3NhZ2VfYXJncyBhcmdzOwotKwotKyAgYXJncy5yZWdjYWNoZSA9IHJlZ2NhY2hl OwotKyAgYXJncy5zaWduYWwgPSBzaWduYWw7Ci0rICByZXR1cm4gY2F0Y2hfZXJyb3JzIChyZWNv cmRfbWVzc2FnZSwgJmFyZ3MsIE5VTEwsIFJFVFVSTl9NQVNLX0FMTCk7Ci0gfQotIAotIC8qIFNl dCB0byAxIGlmIHJlY29yZF9zdG9yZV9yZWdpc3RlcnMgYW5kIHJlY29yZF94ZmVyX3BhcnRpYWwK LUBAIC01MjAsMTMgKzU3NCwxMyBAQAotIAotIHN0YXRpYyB2b2lkCi0gcmVjb3JkX3Jlc3VtZSAo c3RydWN0IHRhcmdldF9vcHMgKm9wcywgcHRpZF90IHB0aWQsIGludCBzdGVwLAotLSAgICAgICAg ICAgICAgIGVudW0gdGFyZ2V0X3NpZ25hbCBzaWdnbmFsKQotKyAgICAgICAgICAgICAgIGVudW0g dGFyZ2V0X3NpZ25hbCBzaWduYWwpCi0gewotICAgcmVjb3JkX3Jlc3VtZV9zdGVwID0gc3RlcDsK LSAKLSAgIGlmICghUkVDT1JEX0lTX1JFUExBWSkKLSAgICAgewotLSAgICAgIGlmIChkb19yZWNv cmRfbWVzc2FnZSAoZ2V0X2N1cnJlbnRfcmVnY2FjaGUgKCkpKQotKyAgICAgIGlmIChkb19yZWNv cmRfbWVzc2FnZSAoZ2V0X2N1cnJlbnRfcmVnY2FjaGUgKCksIHNpZ25hbCkpCi0gICAgICAgICB7 Ci0gICAgICAgICAgIHJlY29yZF9yZXN1bWVfZXJyb3IgPSAwOwotICAgICAgICAgfQotQEAgLTUz Niw3ICs1OTAsNyBAQAotICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9Ci0gICAgICAgcmVj b3JkX2JlbmVhdGhfdG9fcmVzdW1lIChyZWNvcmRfYmVuZWF0aF90b19yZXN1bWVfb3BzLCBwdGlk LCAxLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnZ25hbCk7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYWwpOwotICAgICB9Ci0gfQotIAotQEAgLTYx MSwxNSArNjY1LDE2IEBACi0gCSAgICAgIHJldCA9IHJlY29yZF9iZW5lYXRoX3RvX3dhaXQgKHJl Y29yZF9iZW5lYXRoX3RvX3dhaXRfb3BzLAotIAkJCQkJICAgIHB0aWQsIHN0YXR1cywgb3B0aW9u cyk7Ci0gCi0rCSAgICAgIC8qIElzIHRoaXMgYSBTSUdUUkFQPyAgKi8KLSAJICAgICAgaWYgKHN0 YXR1cy0+a2luZCA9PSBUQVJHRVRfV0FJVEtJTkRfU1RPUFBFRAotIAkJICAmJiBzdGF0dXMtPnZh bHVlLnNpZyA9PSBUQVJHRVRfU0lHTkFMX1RSQVApCi0gCQl7Ci0tCQkgIC8qIENoZWNrIGlmIHRo ZXJlIGlzIGEgYnJlYWtwb2ludC4gICovCi0rCQkgIC8qIFllcyAtLSBjaGVjayBpZiB0aGVyZSBp cyBhIGJyZWFrcG9pbnQuICAqLwotIAkJICByZWdpc3RlcnNfY2hhbmdlZCAoKTsKLSAJCSAgdG1w X3BjID0gcmVnY2FjaGVfcmVhZF9wYyAoZ2V0X2N1cnJlbnRfcmVnY2FjaGUgKCkpOwotIAkJICBp ZiAoYnJlYWtwb2ludF9pbnNlcnRlZF9oZXJlX3AgKHRtcF9wYykpCi0gCQkgICAgewotLQkJICAg ICAgLyogVGhlcmUgaXMgYSBicmVha3BvaW50LiAgKi8KLSsJCSAgICAgIC8qIFRoZXJlIGlzIGEg YnJlYWtwb2ludC4gIEdEQiB3aWxsIHdhbnQgdG8gc3RvcC4gICovCi0gCQkgICAgICBDT1JFX0FE RFIgZGVjcl9wY19hZnRlcl9icmVhayA9Ci0gCQkJZ2RiYXJjaF9kZWNyX3BjX2FmdGVyX2JyZWFr Ci0gCQkJKGdldF9yZWdjYWNoZV9hcmNoIChnZXRfY3VycmVudF9yZWdjYWNoZSAoKSkpOwotQEAg LTYzMSw4ICs2ODYsMTIgQEAKLSAJCSAgICB9Ci0gCQkgIGVsc2UKLSAJCSAgICB7Ci0tCQkgICAg ICAvKiBUaGVyZSBpcyBub3QgYSBicmVha3BvaW50LiAgKi8KLS0JCSAgICAgIGlmICghZG9fcmVj b3JkX21lc3NhZ2UgKGdldF9jdXJyZW50X3JlZ2NhY2hlICgpKSkKLSsJCSAgICAgIC8qIFRoZXJl IGlzIG5vdCBhIGJyZWFrcG9pbnQsIGFuZCBnZGIgaXMgbm90Ci0rCQkgICAgICAgICBzdGVwcGlu ZywgdGhlcmVmb3JlIGdkYiB3aWxsIG5vdCBzdG9wLgotKwkJCSBUaGVyZWZvcmUgd2Ugd2lsbCBu b3QgcmV0dXJuIHRvIGdkYi4KLSsJCSAgICAgICAgIFJlY29yZCB0aGUgaW5zbiBhbmQgcmVzdW1l LiAgKi8KLSsJCSAgICAgIGlmICghZG9fcmVjb3JkX21lc3NhZ2UgKGdldF9jdXJyZW50X3JlZ2Nh Y2hlICgpLAotKwkJCQkJICAgICAgVEFSR0VUX1NJR05BTF8wKSkKLSAJCQl7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKLSAJCQl9Ci1AQCAtODI3LDYgKzg4NiwxMCBAQAotIAkJ CQkJICAgZ2RiYXJjaF9kZWNyX3BjX2FmdGVyX2JyZWFrIChnZGJhcmNoKSk7Ci0gCQkgICAgICBj b250aW51ZV9mbGFnID0gMDsKLSAJCSAgICB9Ci0rCQkgIC8qIENoZWNrIHRhcmdldCBzaWduYWwg Ki8KLSsJCSAgaWYgKHJlY29yZF9saXN0LT51LmVuZC5zaWd2YWwgIT0gVEFSR0VUX1NJR05BTF8w KQotKwkJICAgIC8qIEZJWE1FOiBiZXR0ZXIgd2F5IHRvIGNoZWNrICovCi0rCQkgICAgY29udGlu dWVfZmxhZyA9IDA7Ci0gCQl9Ci0gCSAgICB9Ci0gCi1AQCAtODUxLDYgKzkxNCw5IEBACi0gcmVw bGF5X291dDoKLSAgICAgICBpZiAocmVjb3JkX2dldF9zaWcpCi0gCXN0YXR1cy0+dmFsdWUuc2ln ID0gVEFSR0VUX1NJR05BTF9JTlQ7Ci0rICAgICAgZWxzZSBpZiAocmVjb3JkX2xpc3QtPnUuZW5k LnNpZ3ZhbCAhPSBUQVJHRVRfU0lHTkFMXzApCi0rCS8qIEZJWE1FOiBiZXR0ZXIgd2F5IHRvIGNo ZWNrICovCi0rCXN0YXR1cy0+dmFsdWUuc2lnID0gcmVjb3JkX2xpc3QtPnUuZW5kLnNpZ3ZhbDsK LSAgICAgICBlbHNlCi0gCXN0YXR1cy0+dmFsdWUuc2lnID0gVEFSR0VUX1NJR05BTF9UUkFQOwot IAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvaTM4Ni1saW51eC10ZGVw LmMsdgotcmV0cmlldmluZyByZXZpc2lvbiAxLjY4Ci1yZXRyaWV2aW5nIHJldmlzaW9uIDEuNjgu Mi4xCi1kaWZmIC11IC1yMS42OCAtcjEuNjguMi4xCi0tLS0gc3JjL2dkYi9pMzg2LWxpbnV4LXRk ZXAuYwkyMDA5LzA5LzE1IDAzOjMwOjA2CTEuNjgKLSsrKyBzcmMvZ2RiL2kzODYtbGludXgtdGRl cC5jCTIwMDkvMDkvMjEgMDY6NTc6MDMJMS42OC4yLjEKLUBAIC0zNTgsNyArMzU4LDMyIEBACi0g ICByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBJMzg2X0xJTlVYX09S SUdfRUFYX1JFR05VTSwgLTEpOwotIH0KLSAKLS1zdGF0aWMgc3RydWN0IGxpbnV4X3JlY29yZF90 ZGVwIGkzODZfbGludXhfcmVjb3JkX3RkZXA7Ci0rLyogUmVjb3JkIGFsbCByZWdpc3RlcnMgYnV0 IElQIHJlZ2lzdGVyIGZvciBwcm9jZXNzLXJlY29yZC4gICovCi0rCi0rc3RhdGljIGludAotK2kz ODZfYWxsX2J1dF9pcF9yZWdpc3RlcnNfcmVjb3JkIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hl KQotK3sKLSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBJMzg2X0VB WF9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRf cmVnIChyZWdjYWNoZSwgSTM4Nl9FQ1hfUkVHTlVNKSkKLSsgICAgcmV0dXJuIC0xOwotKyAgaWYg KHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEkzODZfRURYX1JFR05VTSkpCi0r ICAgIHJldHVybiAtMTsKLSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hl LCBJMzg2X0VCWF9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVjb3JkX2FyY2hf bGlzdF9hZGRfcmVnIChyZWdjYWNoZSwgSTM4Nl9FU1BfUkVHTlVNKSkKLSsgICAgcmV0dXJuIC0x OwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEkzODZfRUJQX1JF R05VTSkpCi0rICAgIHJldHVybiAtMTsKLSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcg KHJlZ2NhY2hlLCBJMzg2X0VTSV9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfcmVnIChyZWdjYWNoZSwgSTM4Nl9FRElfUkVHTlVNKSkKLSsgICAg cmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEkz ODZfRUZMQUdTX1JFR05VTSkpCi0rICAgIHJldHVybiAtMTsKLSsKLSsgIHJldHVybiAwOwotK30K LSAKLSAvKiBpMzg2X2Nhbm9uaWNhbGl6ZV9zeXNjYWxsIG1hcHMgZnJvbSB0aGUgbmF0aXZlIGkz ODYgTGludXggc2V0Ci0gICAgb2Ygc3lzY2FsbCBpZHMgaW50byBhIGNhbm9uaWNhbCBzZXQgb2Yg c3lzY2FsbCBpZHMgdXNlZCBieQotQEAgLTM4Myw2ICs0MDgsOCBAQAotIAotICAgIFJldHVybiAt MSBpZiBzb21ldGhpbmcgd3JvbmcuICAqLwotIAotK3N0YXRpYyBzdHJ1Y3QgbGludXhfcmVjb3Jk X3RkZXAgaTM4Nl9saW51eF9yZWNvcmRfdGRlcDsKLSsKLSBzdGF0aWMgaW50Ci0gaTM4Nl9saW51 eF9pbnR4ODBfc3lzZW50ZXJfcmVjb3JkIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQotIHsK LUBAIC00MDIsNiArNDI5LDE0IEBACi0gICAgICAgcmV0dXJuIC0xOwotICAgICB9Ci0gCi0rICBp ZiAoc3lzY2FsbF9nZGIgPT0gZ2RiX3N5c19zaWdyZXR1cm4KLSsgICAgICB8fCBzeXNjYWxsX2dk YiA9PSBnZGJfc3lzX3J0X3NpZ3JldHVybikKLSsgICB7Ci0rICAgICBpZiAoaTM4Nl9hbGxfYnV0 X2lwX3JlZ2lzdGVyc19yZWNvcmQgKHJlZ2NhY2hlKSkKLSsgICAgICAgcmV0dXJuIC0xOwotKyAg ICAgcmV0dXJuIDA7Ci0rICAgfQotKwotICAgcmV0ID0gcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxs IChzeXNjYWxsX2dkYiwgcmVnY2FjaGUsCi0gCQkJCSAgJmkzODZfbGludXhfcmVjb3JkX3RkZXAp OwotICAgaWYgKHJldCkKLUBAIC00MTMsNiArNDQ4LDQwIEBACi0gCi0gICByZXR1cm4gMDsKLSB9 Ci0rCi0rI2RlZmluZSBJMzg2X0xJTlVYX3hzdGF0ZQkyNzAKLSsjZGVmaW5lIEkzODZfTElOVVhf ZnJhbWVfc2l6ZQk3MzIKLSsKLStpbnQKLStpMzg2X2xpbnV4X3JlY29yZF9zaWduYWwgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gdGFyZ2V0 X3NpZ25hbCBzaWduYWwpCi0rewotKyAgVUxPTkdFU1QgZXNwOwotKwotKyAgaWYgKGkzODZfYWxs X2J1dF9pcF9yZWdpc3RlcnNfcmVjb3JkIChyZWdjYWNoZSkpCi0rICAgIHJldHVybiAtMTsKLSsK LSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBJMzg2X0VJUF9SRUdO VU0pKQotKyAgICByZXR1cm4gLTE7Ci0rCi0rICAvKiBSZWNvcmQgdGhlIGNoYW5nZSBpbiB0aGUg c3RhY2suICAqLwotKyAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBJMzg2 X0VTUF9SRUdOVU0sICZlc3ApOwotKyAgLyogVGhpcyBpcyBmb3IgeHN0YXRlLgotKyAgICAgc3Ag LT0gc2l6ZW9mIChzdHJ1Y3QgX2Zwc3RhdGUpOyAgKi8KLSsgIGVzcCAtPSBJMzg2X0xJTlVYX3hz dGF0ZTsKLSsgIC8qIFRoaXMgaXMgZm9yIGZyYW1lX3NpemUuCi0rICAgICBzcCAtPSBzaXplb2Yg KHN0cnVjdCBydF9zaWdmcmFtZSk7ICAqLwotKyAgZXNwIC09IEkzODZfTElOVVhfZnJhbWVfc2l6 ZTsKLSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKGVzcCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEkzODZfTElOVVhfeHN0YXRlICsgSTM4Nl9MSU5VWF9mcmFtZV9z aXplKSkKLSsgICAgcmV0dXJuIC0xOwotKwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX2Vu ZCAoKSkKLSsgICAgcmV0dXJuIC0xOwotKwotKyAgcmV0dXJuIDA7Ci0rfQotIAwKLSAKLSBzdGF0 aWMgTE9OR0VTVAotQEAgLTUyOSw2ICs1OTgsNyBAQAotICAgdGRlcC0+c2NfbnVtX3JlZ3MgPSBB UlJBWV9TSVpFIChpMzg2X2xpbnV4X3NjX3JlZ19vZmZzZXQpOwotIAotICAgc2V0X2dkYmFyY2hf cHJvY2Vzc19yZWNvcmQgKGdkYmFyY2gsIGkzODZfcHJvY2Vzc19yZWNvcmQpOwotKyAgc2V0X2dk YmFyY2hfcHJvY2Vzc19yZWNvcmRfc2lnbmFsIChnZGJhcmNoLCBpMzg2X2xpbnV4X3JlY29yZF9z aWduYWwpOwotIAotICAgLyogSW5pdGlhbGl6ZSB0aGUgaTM4Nl9saW51eF9yZWNvcmRfdGRlcC4g ICovCi0gICAvKiBUaGVzZSB2YWx1ZXMgYXJlIHRoZSBzaXplIG9mIHRoZSB0eXBlIHRoYXQgd2ls bCBiZSB1c2VkIGluIGEgc3lzdGVtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1SQ1MgZmlsZTogL2N2cy9zcmMvc3Jj L2dkYi9hbWQ2NC1saW51eC10ZGVwLmMsdgotcmV0cmlldmluZyByZXZpc2lvbiAxLjI5Ci1yZXRy aWV2aW5nIHJldmlzaW9uIDEuMjkuMi4xCi1kaWZmIC11IC1yMS4yOSAtcjEuMjkuMi4xCi0tLS0g c3JjL2dkYi9hbWQ2NC1saW51eC10ZGVwLmMJMjAwOS8wOS8xNSAwMzozMDowNAkxLjI5Ci0rKysg c3JjL2dkYi9hbWQ2NC1saW51eC10ZGVwLmMJMjAwOS8wOS8yMSAwNjo1NzowMwkxLjI5LjIuMQot QEAgLTI4OSwxNiArMjg5LDQ4IEBACi0gICByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWduZWQg KHJlZ2NhY2hlLCBBTUQ2NF9MSU5VWF9PUklHX1JBWF9SRUdOVU0sIC0xKTsKLSB9Ci0gCi0tLyog UGFyc2UgdGhlIGFyZ3VtZW50cyBvZiBjdXJyZW50IHN5c3RlbSBjYWxsIGluc3RydWN0aW9uIGFu ZCByZWNvcmQKLS0gICB0aGUgdmFsdWVzIG9mIHRoZSByZWdpc3RlcnMgYW5kIG1lbW9yeSB0aGF0 IHdpbGwgYmUgY2hhbmdlZCBpbnRvCi0tICAgInJlY29yZF9hcmNoX2xpc3QiLiAgVGhpcyBpbnN0 cnVjdGlvbiBpcyAic3lzY2FsbCIuCi0tCi0tICAgUmV0dXJuIC0xIGlmIHNvbWV0aGluZyB3cm9u Zy4gICovCi0rLyogUmVjb3JkIGFsbCByZWdpc3RlcnMgYnV0IElQIHJlZ2lzdGVyIGZvciBwcm9j ZXNzLXJlY29yZC4gICovCi0gCi0tc3RhdGljIHN0cnVjdCBsaW51eF9yZWNvcmRfdGRlcCBhbWQ2 NF9saW51eF9yZWNvcmRfdGRlcDsKLStzdGF0aWMgaW50Ci0rYW1kNjRfYWxsX2J1dF9pcF9yZWdp c3RlcnNfcmVjb3JkIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQotK3sKLSsgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SQVhfUkVHTlVNKSkKLSsgICAg cmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEFN RDY0X1JDWF9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVjb3JkX2FyY2hfbGlz dF9hZGRfcmVnIChyZWdjYWNoZSwgQU1ENjRfUkRYX1JFR05VTSkpCi0rICAgIHJldHVybiAtMTsK LSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SQlhfUkVH TlVNKSkKLSsgICAgcmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAo cmVnY2FjaGUsIEFNRDY0X1JTUF9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfcmVnIChyZWdjYWNoZSwgQU1ENjRfUkJQX1JFR05VTSkpCi0rICAg IHJldHVybiAtMTsKLSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBB TUQ2NF9SU0lfUkVHTlVNKSkKLSsgICAgcmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNoX2xp c3RfYWRkX3JlZyAocmVnY2FjaGUsIEFNRDY0X1JESV9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7 Ci0rICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfcmVnIChyZWdjYWNoZSwgQU1ENjRfUjhfUkVH TlVNKSkKLSsgICAgcmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAo cmVnY2FjaGUsIEFNRDY0X1I5X1JFR05VTSkpCi0rICAgIHJldHVybiAtMTsKLSsgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SMTBfUkVHTlVNKSkKLSsgICAg cmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEFN RDY0X1IxMV9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVjb3JkX2FyY2hfbGlz dF9hZGRfcmVnIChyZWdjYWNoZSwgQU1ENjRfUjEyX1JFR05VTSkpCi0rICAgIHJldHVybiAtMTsK LSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SMTNfUkVH TlVNKSkKLSsgICAgcmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAo cmVnY2FjaGUsIEFNRDY0X1IxNF9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfcmVnIChyZWdjYWNoZSwgQU1ENjRfUjE1X1JFR05VTSkpCi0rICAg IHJldHVybiAtMTsKLSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBB TUQ2NF9FRkxBR1NfUkVHTlVNKSkKLSsgICAgcmV0dXJuIC0xOwotIAotLSNkZWZpbmUgUkVDT1JE X0FSQ0hfR0VUX0ZTCTB4MTAwMwotLSNkZWZpbmUgUkVDT1JEX0FSQ0hfR0VUX0dTCTB4MTAwNAot KyAgcmV0dXJuIDA7Ci0rfQotIAotIC8qIGFtZDY0X2Nhbm9uaWNhbGl6ZV9zeXNjYWxsIG1hcHMg ZnJvbSB0aGUgbmF0aXZlIGFtZDY0IExpbnV4IHNldCAKLSAgICBvZiBzeXNjYWxsIGlkcyBpbnRv IGEgY2Fub25pY2FsIHNldCBvZiBzeXNjYWxsIGlkcyB1c2VkIGJ5IAotQEAgLTExMTEsNiArMTE0 MywxNyBAQAotICAgfQotIH0KLSAKLSsvKiBQYXJzZSB0aGUgYXJndW1lbnRzIG9mIGN1cnJlbnQg c3lzdGVtIGNhbGwgaW5zdHJ1Y3Rpb24gYW5kIHJlY29yZAotKyAgIHRoZSB2YWx1ZXMgb2YgdGhl IHJlZ2lzdGVycyBhbmQgbWVtb3J5IHRoYXQgd2lsbCBiZSBjaGFuZ2VkIGludG8KLSsgICAicmVj b3JkX2FyY2hfbGlzdCIuICBUaGlzIGluc3RydWN0aW9uIGlzICJzeXNjYWxsIi4KLSsKLSsgICBS ZXR1cm4gLTEgaWYgc29tZXRoaW5nIHdyb25nLiAgKi8KLSsKLStzdGF0aWMgc3RydWN0IGxpbnV4 X3JlY29yZF90ZGVwIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwOwotKwotKyNkZWZpbmUgUkVDT1JE X0FSQ0hfR0VUX0ZTCTB4MTAwMwotKyNkZWZpbmUgUkVDT1JEX0FSQ0hfR0VUX0dTCTB4MTAwNAot KwotIHN0YXRpYyBpbnQKLSBhbWQ2NF9saW51eF9zeXNjYWxsX3JlY29yZCAoc3RydWN0IHJlZ2Nh Y2hlICpyZWdjYWNoZSkKLSB7Ci1AQCAtMTEyMCwyNyArMTE2MywzOSBAQAotIAotICAgcmVnY2Fj aGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBBTUQ2NF9SQVhfUkVHTlVNLCAmc3lzY2Fs bF9uYXRpdmUpOwotIAotLSAgc3lzY2FsbF9nZGIgPSBhbWQ2NF9jYW5vbmljYWxpemVfc3lzY2Fs bCAoc3lzY2FsbF9uYXRpdmUpOwotLQotLSAgaWYgKHN5c2NhbGxfbmF0aXZlID09IGFtZDY0X3N5 c19hcmNoX3ByY3RsKSAKLSsgIHN3aXRjaCAoc3lzY2FsbF9uYXRpdmUpCi0gICAgIHsKLS0gICAg ICBVTE9OR0VTVCBhcmczOwotLQotLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChy ZWdjYWNoZSwgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuYXJnMywKLS0JCQkJICAmYXJnMyk7Ci0t ICAgICAgaWYgKGFyZzMgPT0gUkVDT1JEX0FSQ0hfR0VUX0ZTIHx8IGFyZzMgPT0gUkVDT1JEX0FS Q0hfR0VUX0dTKQotLSAgICAgIHsKLS0JQ09SRV9BRERSIGFkZHI7Ci0tCi0tCXJlZ2NhY2hlX3Jh d19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuYXJnMiwK LS0JCQkJICAgICZhZGRyKTsKLS0JaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoYWRkciwg Ci0tCQkJCSAgICAgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfdWxvbmcpKQotLQkgIHJl dHVybiAtMTsKLS0gICAgICB9Ci0tICAgICAgZ290byByZWNvcmRfcmVnczsKLSsgICAgY2FzZSBh bWQ2NF9zeXNfcnRfc2lncmV0dXJuOgotKyAgICAgIGlmIChhbWQ2NF9hbGxfYnV0X2lwX3JlZ2lz dGVyc19yZWNvcmQgKHJlZ2NhY2hlKSkKLSsgICAgICAgIHJldHVybiAtMTsKLSsgICAgICByZXR1 cm4gMDsKLSsgICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBhbWQ2NF9zeXNfYXJjaF9wcmN0bDoK LSsgICAgICBpZiAoc3lzY2FsbF9uYXRpdmUgPT0gYW1kNjRfc3lzX2FyY2hfcHJjdGwpCi0rICAg ICAgICB7Ci0rICAgICAgICAgIFVMT05HRVNUIGFyZzM7Ci0rCi0rICAgICAgICAgIHJlZ2NhY2hl X3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuYXJn MywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcmczKTsKLSsgICAg ICAgICAgaWYgKGFyZzMgPT0gUkVDT1JEX0FSQ0hfR0VUX0ZTIHx8IGFyZzMgPT0gUkVDT1JEX0FS Q0hfR0VUX0dTKQotKyAgICAgICAgICAgIHsKLSsJICAgICAgQ09SRV9BRERSIGFkZHI7Ci0rCi0r CSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5h cmcyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhZGRyKTsK LSsJICAgICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoYWRkciwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVw LnNpemVfdWxvbmcpKQotKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0rICAgICAgICAgICAg fQotKyAgICAgICAgICBnb3RvIHJlY29yZF9yZWdzOwotKyAgICAgICAgfQotKyAgICAgIGJyZWFr OwotICAgICB9Ci0gCi0rICBzeXNjYWxsX2dkYiA9IGFtZDY0X2Nhbm9uaWNhbGl6ZV9zeXNjYWxs IChzeXNjYWxsX25hdGl2ZSk7Ci0rCi0gICBpZiAoc3lzY2FsbF9nZGIgPCAwKQotICAgICB7Ci0g ICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oIlByb2Nlc3MgcmVjb3JkIGFuZCByZXBsYXkgdGFy Z2V0IGRvZXNuJ3QgIgotQEAgLTExNjMsNiArMTIxOCw0NCBAQAotICAgaWYgKHJlY29yZF9hcmNo X2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEFNRDY0X1IxMV9SRUdOVU0pKQotICAgICByZXR1cm4g LTE7Ci0gCi0rICByZXR1cm4gMDsKLSt9Ci0rCi0rI2RlZmluZSBBTUQ2NF9MSU5VWF9yZWR6b25l ICAgIDEyOAotKyNkZWZpbmUgQU1ENjRfTElOVVhfeHN0YXRlICAgICA1MTIKLSsjZGVmaW5lIEFN RDY0X0xJTlVYX2ZyYW1lX3NpemUgNTYwCi0rCi0raW50Ci0rYW1kNjRfbGludXhfcmVjb3JkX3Np Z25hbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbnVtIHRhcmdldF9zaWduYWwgc2lnbmFsKQotK3sKLSsgIFVMT05HRVNUIHJzcDsKLSsKLSsg IGlmIChhbWQ2NF9hbGxfYnV0X2lwX3JlZ2lzdGVyc19yZWNvcmQgKHJlZ2NhY2hlKSkKLSsgICAg cmV0dXJuIC0xOwotKwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUs IEFNRDY0X1JJUF9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rCi0rICAvKiBSZWNvcmQgdGhl IGNoYW5nZSBpbiB0aGUgc3RhY2suICAqLwotKyAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQg KHJlZ2NhY2hlLCBBTUQ2NF9SU1BfUkVHTlVNLCAmcnNwKTsKLSsgIC8qIHJlZHpvbmUKLSsgICAg IHNwIC09IDEyODsgKi8KLSsgIHJzcCAtPSBBTUQ2NF9MSU5VWF9yZWR6b25lOwotKyAgLyogVGhp cyBpcyBmb3IgeHN0YXRlLgotKyAgICAgc3AgLT0gc2l6ZW9mIChzdHJ1Y3QgX2Zwc3RhdGUpOyAg Ki8KLSsgIHJzcCAtPSBBTUQ2NF9MSU5VWF94c3RhdGU7Ci0rICAvKiBUaGlzIGlzIGZvciBmcmFt ZV9zaXplLgotKyAgICAgc3AgLT0gc2l6ZW9mIChzdHJ1Y3QgcnRfc2lnZnJhbWUpOyAgKi8KLSsg IHJzcCAtPSBBTUQ2NF9MSU5VWF9mcmFtZV9zaXplOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbSAocnNwLCBBTUQ2NF9MSU5VWF9yZWR6b25lCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsgQU1ENjRfTElOVVhfeHN0YXRlCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsgQU1ENjRfTElOVVhfZnJhbWVfc2l6ZSkpCi0rICAgIHJldHVy biAtMTsKLSsKLSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9lbmQgKCkpCi0rICAgIHJldHVy biAtMTsKLSAKLSAgIHJldHVybiAwOwotIH0KLUBAIC0xMjE4LDYgKzEzMTEsNyBAQAotICAgc2V0 X2dkYmFyY2hfZ2V0X3NpZ2luZm9fdHlwZSAoZ2RiYXJjaCwgbGludXhfZ2V0X3NpZ2luZm9fdHlw ZSk7Ci0gCi0gICBzZXRfZ2RiYXJjaF9wcm9jZXNzX3JlY29yZCAoZ2RiYXJjaCwgaTM4Nl9wcm9j ZXNzX3JlY29yZCk7Ci0rICBzZXRfZ2RiYXJjaF9wcm9jZXNzX3JlY29yZF9zaWduYWwgKGdkYmFy Y2gsIGFtZDY0X2xpbnV4X3JlY29yZF9zaWduYWwpOwotIAotICAgLyogSW5pdGlhbGl6ZSB0aGUg YW1kNjRfbGludXhfcmVjb3JkX3RkZXAuICAqLwotICAgLyogVGhlc2UgdmFsdWVzIGFyZSB0aGUg c2l6ZSBvZiB0aGUgdHlwZSB0aGF0IHdpbGwgYmUgdXNlZCBpbiBhIHN5c3RlbQotPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvQ2hhbmdlTG9nLHYKLXJldHJpZXZpbmcgcmV2 aXNpb24gMS4xMDg3NC4yLjEyCi1yZXRyaWV2aW5nIHJldmlzaW9uIDEuMTA4NzQuMi4xMwotZGlm ZiAtdSAtcjEuMTA4NzQuMi4xMiAtcjEuMTA4NzQuMi4xMwotLS0tIHNyYy9nZGIvQ2hhbmdlTG9n CTIwMDkvMDkvMjEgMDY6NTc6MDIJMS4xMDg3NC4yLjEyCi0rKysgc3JjL2dkYi9DaGFuZ2VMb2cJ MjAwOS8wOS8yMSAxMDoxOTo1OQkxLjEwODc0LjIuMTMKLUBAIC0xLDMgKzEsOCBAQAotKzIwMDkt MDktMjEgIFBoaWwgTXVsZG9vbiAgPHBtdWxkb29uQHJlZGhhdC5jb20+Ci0rCi0rCSogcHl0aG9u L3B5LXZhbHVlLmMgKHZhbHB5X2dldGl0ZW0pOiBUZXN0IHZhbHVlIGJlZm9yZSBhbGxvd2luZwot KwlzdWJzY3JpcHQgb3BlcmF0aW9uLgotKwotIDIwMDktMDktMjEgIEh1aSBaaHUgIDx0ZWF3YXRl ckBnbWFpbC5jb20+Ci0gCSAgICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAdm13YXJlLmNvbT4K LSAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLVJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3B5dGhvbi9weS12YWx1 ZS5jLHYKLXJldHJpZXZpbmcgcmV2aXNpb24gMS4xCi1yZXRyaWV2aW5nIHJldmlzaW9uIDEuMS4y LjEKLWRpZmYgLXUgLXIxLjEgLXIxLjEuMi4xCi0tLS0gc3JjL2dkYi9weXRob24vcHktdmFsdWUu YwkyMDA5LzA5LzA5IDE3OjQ1OjQwCTEuMQotKysrIHNyYy9nZGIvcHl0aG9uL3B5LXZhbHVlLmMJ MjAwOS8wOS8yMSAxMDoyMDowMAkxLjEuMi4xCi1AQCAtMzI0LDcgKzMyNCwxOCBAQAotIAkgICAg IHR5cGUuICAqLwotIAkgIHN0cnVjdCB2YWx1ZSAqaWR4ID0gY29udmVydF92YWx1ZV9mcm9tX3B5 dGhvbiAoa2V5KTsKLSAJICBpZiAoaWR4ICE9IE5VTEwpCi0tCSAgICByZXNfdmFsID0gdmFsdWVf c3Vic2NyaXB0ICh0bXAsIHZhbHVlX2FzX2xvbmcgKGlkeCkpOwotKwkgICAgewotKwkgICAgICAv KiBDaGVjayB0aGUgdmFsdWUncyB0eXBlIGlzIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBhY2Nlc3Nl ZCB2aWEKLSsJCSBhIHN1YnNjcmlwdC4gICovCi0rCSAgICAgIHN0cnVjdCB0eXBlICp0eXBlOwot KwkgICAgICB0bXAgPSBjb2VyY2VfcmVmICh0bXApOwotKwkgICAgICB0eXBlID0gY2hlY2tfdHlw ZWRlZiAodmFsdWVfdHlwZSAodG1wKSk7Ci0rCSAgICAgIGlmIChUWVBFX0NPREUgKHR5cGUpICE9 IFRZUEVfQ09ERV9BUlJBWQotKwkJICAmJiBUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9Q VFIpCi0rCQkgIGVycm9yKCBfKCJDYW5ub3Qgc3Vic2NyaXB0IHJlcXVlc3RlZCB0eXBlIikpOwot KwkgICAgICBlbHNlCi0rCQlyZXNfdmFsID0gdmFsdWVfc3Vic2NyaXB0ICh0bXAsIHZhbHVlX2Fz X2xvbmcgKGlkeCkpOwotKwkgICAgfQotIAl9Ci0gICAgIH0KLSAKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVJDUyBm aWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2csdgotcmV0cmlldmluZyBy ZXZpc2lvbiAxLjE5NjAKLXJldHJpZXZpbmcgcmV2aXNpb24gMS4xOTYwLjIuMQotZGlmZiAtdSAt cjEuMTk2MCAtcjEuMTk2MC4yLjEKLS0tLSBzcmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cJMjAw OS8wOS8xNSAxODo1MToyNQkxLjE5NjAKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cJ MjAwOS8wOS8yMSAxMDoyMDowMAkxLjE5NjAuMi4xCi1AQCAtMSwzICsxLDEwIEBACi0rMjAwOS0w OS0yMSAgUGhpbCBNdWxkb29uICA8cG11bGRvb25AcmVkaGF0LmNvbT4KLSsKLSsJKiBnZGIucHl0 aG9uL3B5LXZhbHVlLmV4cCAodGVzdF9zdWJzY3JpcHRfcmVncmVzc2lvbik6IE5ldwotKwlmdW5j dGlvbi4gIFRlc3QgZm9yIGludmFsaWQgc3Vic2NyaXB0cy4KLSsJKiBnZGIucHl0aG9uL3B5LXZh bHVlLmMgKG1haW4pOiBBZGQgdGVzdCBhcnJheSwgYW5kIHBvaW50ZXIgdG8gaXQuCi0rCShwdHJf cmVmKTogTmV3IGZ1bmN0aW9uLgotKwotIDIwMDktMDktMTUgIFRvbSBUcm9tZXkgIDx0cm9tZXlA cmVkaGF0LmNvbT4KLSAKLSAJKiBsaWIvbWktc3VwcG9ydC5leHAgKG1pX2NyZWF0ZV92YXJvYmop OiBVcGRhdGUuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci1SQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5jLHYKLXJldHJpZXZpbmcgcmV2aXNpb24gMS4xCi1yZXRy aWV2aW5nIHJldmlzaW9uIDEuMS4yLjEKLWRpZmYgLXUgLXIxLjEgLXIxLjEuMi4xCi0tLS0gc3Jj L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5jCTIwMDkvMDkvMDkgMTc6NDU6NDIJ MS4xCi0rKysgc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5jCTIwMDkvMDkv MjEgMTA6MjA6MDAJMS4xLjIuMQotQEAgLTM3LDYgKzM3LDEzIEBACi0gCi0gZW51bSBlIGV2YWx1 ZSA9IFRXTzsKLSAKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt2b2lkIHB0cl9yZWYoaW50KiYgcnB0 cl9pbnQpCi0rewotKyAgcmV0dXJuOyAvKiBicmVhayB0byBpbnNwZWN0IHBvaW50ZXIgYnkgcmVm ZXJlbmNlLiAqLwotK30KLSsjZW5kaWYKLSsKLSBpbnQKLSBtYWluIChpbnQgYXJnYywgY2hhciAq YXJndltdKQotIHsKLUBAIC00NiwxMCArNTMsMTggQEAKLSAgIFBUUiB4ID0gJnM7Ci0gICBjaGFy IHN0WzE3XSA9ICJkaXZpZGUgZXQgaW1wZXJhIjsKLSAgIGNoYXIgbnVsbHN0WzE3XSA9ICJkaXZp ZGVcMGV0XDBpbXBlcmEiOwotKyAgaW50IGFbM10gPSB7MSwyLDN9OwotKyAgaW50ICpwID0gYTsK LSsgIGludCBpID0gMjsKLSsgIGludCAqcHRyX2kgPSAmaTsKLSAKLSAgIHMuYSA9IDM7Ci0gICBz LmIgPSA1OwotICAgdS5hID0gNzsKLSAKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSsgIHB0cl9yZWYo cHRyX2kpOwotKyNlbmRpZgotKwotICAgcmV0dXJuIDA7ICAgICAgLyogYnJlYWsgdG8gaW5zcGVj dCBzdHJ1Y3QgYW5kIHVuaW9uICovCi0gfQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotUkNTIGZpbGU6IC9jdnMvc3Jj L3NyYy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwLHYKLXJldHJpZXZpbmcg cmV2aXNpb24gMS4xCi1yZXRyaWV2aW5nIHJldmlzaW9uIDEuMS4yLjEKLWRpZmYgLXUgLXIxLjEg LXIxLjEuMi4xCi0tLS0gc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAJ MjAwOS8wOS8wOSAxNzo0NTo0MgkxLjEKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXZhbHVlLmV4cAkyMDA5LzA5LzIxIDEwOjIwOjAwCTEuMS4yLjEKLUBAIC0yOTIsNiArMjky LDc1IEBACi0gICAgICJwcmludCB2YWx1ZSdzIHR5cGUiCi0gfQotIAotKyMgUmVncmVzc2lvbiB0 ZXN0IGZvciBpbnZhbGlkIHN1YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAot KyMgdGhlIHR5cGUgb2YgdGhlIHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxs b3dpbmcgYQotKyMgc3Vic2NyaXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgotKwotK3Byb2MgdGVz dF9zdWJzY3JpcHRfcmVncmVzc2lvbiB7bGFuZ30gewotKwotKyBnbG9iYWwgc3JjZGlyIHN1YmRp ciBzcmNmaWxlIGJpbmZpbGUgdGVzdGZpbGUgaGV4Ci0rIGlmIHsgW2dkYl9jb21waWxlICIke3Ny Y2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlICJkZWJ1 ZyAkbGFuZyJdICE9ICIiIH0gewotKyAgICAgdW50ZXN0ZWQgIkNvdWxkbid0IGNvbXBpbGUgJHtz cmNmaWxlfSBpbiAkbGFuZyBtb2RlIgotKyAgICAgcmV0dXJuIC0xCi0rIH0KLSsKLSsgIyBTdGFy dCB3aXRoIGEgZnJlc2ggZ2RiLgotKyBnZGJfZXhpdAotKyBnZGJfc3RhcnQKLSsgZ2RiX3JlaW5p dGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCi0rIGdkYl9sb2FkICR7YmluZmlsZX0KLSsKLSsg aWYgIVtydW50b19tYWluIF0gdGhlbiB7Ci0rICAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBi cmVha3BvaW50IgotKyAgICAgcmV0dXJuCi0rIH0KLSsKLSsgaWYgeyRsYW5nID09ICJjKysifSB7 Ci0rICAgICBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiYnJlYWsgdG8gaW5z cGVjdCBwb2ludGVyIGJ5IHJlZmVyZW5jZSJdCi0rICAgICBnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAiYnJlYWsgdG8gaW5zcGVjdCBwb2ludGVyIGJ5IHJlZmVyZW5jZSIKLSsKLSsgICAgIGdk Yl9weV90ZXN0X3NpbGVudF9jbWQgInByaW50IHJwdHJfaW50IiBcCi0rCSAiT2J0YWluIGFkZHJl c3MiIDEKLSsgICAgIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBycHRyID0gZ2RiLmhp c3RvcnkoMCkiIFwKLSsJICJPYnRhaW5zIHZhbHVlIGZyb20gR0RCIiAxCi0rICAgICBnZGJfdGVz dCAicHl0aG9uIHByaW50IHJwdHJcWzBcXSIgIjIiICJDaGVjayBwb2ludGVyIHBhc3NlZCBhcyBy ZWZlcmVuY2UiCi0rIH0KLSsKLSsgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg ImJyZWFrIHRvIGluc3BlY3Qgc3RydWN0IGFuZCB1bmlvbiJdCi0rIGdkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJicmVhayB0byBpbnNwZWN0IHN0cnVjdCBhbmQgdW5pb24iCi0rCi0rIGdkYl9w eV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBpbnR2ID0gZ2RiLlZhbHVlKDEpIiBcCi0rICAgICAi Q3JlYXRlIGEgdmFsdWUgZm9yIHN1YnNjcmlwdCB0ZXN0IiAxCi0rIGdkYl9weV90ZXN0X3NpbGVu dF9jbWQgInB5dGhvbiBzdHJpbmd2ID0gZ2RiLlZhbHVlKFwiZm9vXCIpIiBcCi0rICAgICAiQ3Jl YXRlIGEgdmFsdWUgZm9yIHN1YnNjcmlwdCB0ZXN0IiAxCi0rCi0rICMgVHJ5IHRvIGFjY2VzcyBh biBpbnQgd2l0aCBhIHN1YnNjcmlwdC4gIFRoaXMgc2hvdWxkIGZhaWwuCi0rIGdkYl90ZXN0ICJw eXRob24gcHJpbnQgaW50diIgIjEiICJCYXNlbGluZSBwcmludCBvZiBhIFB5dGhvbiB2YWx1ZSIK LSsgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBpbnR2XFswXF0iICJSdW50aW1lRXJyb3I6IENhbm5v dCBzdWJzY3JpcHQgcmVxdWVzdGVkIHR5cGUuKiIgXAotKyAgICAgIkF0dGVtcHQgdG8gYWNjZXNz IGFuIGludGVnZXIgd2l0aCBhIHN1YnNjcmlwdCIKLSsKLSsgIyBUcnkgdG8gYWNjZXNzIGEgc3Ry aW5nIHdpdGggYSBzdWJzY3JpcHQuICBUaGlzIHNob3VsZCBwYXNzLgotKyBnZGJfdGVzdCAicHl0 aG9uIHByaW50IHN0cmluZ3YiICJmb28uIiAiQmFzZWxpbmUgcHJpbnQgb2YgYSBQeXRob24gdmFs dWUiCi0rIGdkYl90ZXN0ICJweXRob24gcHJpbnQgc3RyaW5ndlxbMFxdIiAiZi4iICJBdHRlbXB0 IHRvIGFjY2VzcyBhIHN0cmluZyB3aXRoIGEgc3Vic2NyaXB0IgotKwotKyAjIFRyeSB0byBhY2Nl c3MgYW4gaW50IGFycmF5IHZpYSBhIHBvaW50ZXIgd2l0aCBhIHN1YnNjcmlwdC4gIFRoaXMgc2hv dWxkIHBhc3MuCi0rIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInByaW50IHAiICJCdWlsZCBwb2lu dGVyIHRvIGFycmF5IiAxCi0rIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBwb2ludGVy ID0gZ2RiLmhpc3RvcnkoMCkiICIiIDEKLSsgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBwb2ludGVy XFswXF0iICIxIiAiQWNjZXNzIGFycmF5IHZpYSBwb2ludGVyIHdpdGggaW50IHN1YnNjcmlwdCIK LSsgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBwb2ludGVyXFtpbnR2XF0iICIyIiAiQWNjZXNzIGFy cmF5IHZpYSBwb2ludGVyIHdpdGggdmFsdWUgc3Vic2NyaXB0IgotKwotKyAjIFRyeSB0byBhY2Nl c3MgYSBzaW5nbGUgZGltZW5zaW9uIGFycmF5IHdpdGggYSBzdWJzY3JpcHQgdG8gdGhlCi0rICMg cmVzdWx0LiAgVGhpcyBzaG91bGQgZmFpbC4KLSsgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBwb2lu dGVyXFtpbnR2XF1cWzBcXSIgIlJ1bnRpbWVFcnJvcjogQ2Fubm90IHN1YnNjcmlwdCByZXF1ZXN0 ZWQgdHlwZS4qIiBcCi0rICAgICAiQXR0ZW1wdCB0byBhY2Nlc3MgYW4gaW50ZWdlciB3aXRoIGEg c3Vic2NyaXB0IgotKwotKyAjIExhc3RseSwgdGVzdCBzdWJzY3JpcHQgYWNjZXNzIHRvIGFuIGFy cmF5IHdpdGggbXVsdGlwbGUKLSsgIyBkaW1lbnNpb25zLiAgVGhpcyBzaG91bGQgcGFzcy4KLSsg Z2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAicHJpbnQge1wiZnUgXCIsXCJmb29cIixcImJhclwifSIg IkJ1aWxkIGFycmF5IiAxCi0rIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBtYXJyYXkg PSBnZGIuaGlzdG9yeSgwKSIgIiIgMQotKyBnZGJfdGVzdCAicHl0aG9uIHByaW50IG1hcnJheVxb MVxdXFsyXF0iICJvLiIgIlRlc3QgbXVsdGlwbGUgc3Vic2NyaXB0IgotK30KLSsKLSAjIFN0YXJ0 IHdpdGggYSBmcmVzaCBnZGIuCi0gCi0gZ2RiX2V4aXQKLUBAIC0zMjIsMyArMzkxLDggQEAKLSAK LSB0ZXN0X3ZhbHVlX2luX2luZmVyaW9yCi0gdGVzdF92YWx1ZV9hZnRlcl9kZWF0aAotKwotKyMg VGhlIGZvbGxvd2luZyB0ZXN0IHJlY29tcGlsZXMgdGhlIGJpbmFyeSB0byB0ZXN0IGVpdGhlciBD IG9yIEMrKwotKyMgdmFsdWVzLiAKLSt0ZXN0X3N1YnNjcmlwdF9yZWdyZXNzaW9uICJjKysiCi0r dGVzdF9zdWJzY3JpcHRfcmVncmVzc2lvbiAiYyIKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVJDUyBmaWxlOiAvY3Zz L3NyYy9zcmMvZ2RiL0NoYW5nZUxvZyx2Ci1yZXRyaWV2aW5nIHJldmlzaW9uIDEuMTA4NzQuMi4x MwotcmV0cmlldmluZyByZXZpc2lvbiAxLjEwODc0LjIuMTQKLWRpZmYgLXUgLXIxLjEwODc0LjIu MTMgLXIxLjEwODc0LjIuMTQKLS0tLSBzcmMvZ2RiL0NoYW5nZUxvZwkyMDA5LzA5LzIxIDEwOjE5 OjU5CTEuMTA4NzQuMi4xMwotKysrIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMDkvMDkvMjEgMTA6MjU6 MjkJMS4xMDg3NC4yLjE0Ci1AQCAtMSw1ICsxLDEyIEBACi0gMjAwOS0wOS0yMSAgUGhpbCBNdWxk b29uICA8cG11bGRvb25AcmVkaGF0LmNvbT4KLSAKLSsJUFIgcHl0aG9uLzEwNjMzCi0rCi0rCSog Yy1sYW5nLmMgKGNfcHJpbnRzdHIpOiBEbyBub3QgbG9vcCBwYXN0ICBvcHRpb25zLT5wcmludF9t YXggd2hlbgotKwlpdGVyYXRpbmcgd2l0aCB3Y2hhcl9pdGVyYXRlLgotKwotKzIwMDktMDktMjEg IFBoaWwgTXVsZG9vbiAgPHBtdWxkb29uQHJlZGhhdC5jb20+Ci0rCi0gCSogcHl0aG9uL3B5LXZh bHVlLmMgKHZhbHB5X2dldGl0ZW0pOiBUZXN0IHZhbHVlIGJlZm9yZSBhbGxvd2luZwotIAlzdWJz Y3JpcHQgb3BlcmF0aW9uLgotIAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9n ZGIvYy1sYW5nLmMsdgotcmV0cmlldmluZyByZXZpc2lvbiAxLjc1Ci1yZXRyaWV2aW5nIHJldmlz aW9uIDEuNzUuNC4xCi1kaWZmIC11IC1yMS43NSAtcjEuNzUuNC4xCi0tLS0gc3JjL2dkYi9jLWxh bmcuYwkyMDA5LzA3LzEwIDEwOjM1OjE2CTEuNzUKLSsrKyBzcmMvZ2RiL2MtbGFuZy5jCTIwMDkv MDkvMjEgMTA6MjU6MjkJMS43NS40LjEKLUBAIC00NTksNyArNDU5LDcgQEAKLSAJIHNpbmdsZSBj aGFyYWN0ZXIgaW4gaXNvbGF0aW9uLiAgVGhpcyBtYWtlcyB0aGUgY29kZSBzaW1wbGVyCi0gCSBh bmQgcHJvYmFibHkgZG9lcyB0aGUgc2Vuc2libGUgdGhpbmcgaW4gdGhlIG1ham9yaXR5IG9mCi0g CSBjYXNlcy4gICovCi0tICAgICAgd2hpbGUgKG51bV9jaGFycyA9PSAxKQotKyAgICAgIHdoaWxl IChudW1fY2hhcnMgPT0gMSAmJiB0aGluZ3NfcHJpbnRlZCA8IG9wdGlvbnMtPnByaW50X21heCkK LSAJewotIAkgIC8qIENvdW50IHRoZSBudW1iZXIgb2YgcmVwZXRpdGlvbnMuICAqLwotIAkgIHVu c2lnbmVkIGludCByZXBzID0gMDsKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMv Z2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2csdgotcmV0cmlldmluZyByZXZpc2lvbiAxLjE5NjAuMi4x Ci1yZXRyaWV2aW5nIHJldmlzaW9uIDEuMTk2MC4yLjIKLWRpZmYgLXUgLXIxLjE5NjAuMi4xIC1y MS4xOTYwLjIuMgotLS0tIHNyYy9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDA5LzA5LzIxIDEw OjIwOjAwCTEuMTk2MC4yLjEKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cJMjAwOS8w OS8yMSAxMDoyNToyOQkxLjE5NjAuMi4yCi1AQCAtMSw1ICsxLDEzIEBACi0gMjAwOS0wOS0yMSAg UGhpbCBNdWxkb29uICA8cG11bGRvb25AcmVkaGF0LmNvbT4KLSAKLSsJUFIgcHl0aG9uLzEwNjMz Ci0rCi0rCSogZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAgKGdkYl9weV90ZXN0X3NpbGVu dF9jbWQpOiBOZXcKLSsJRnVuY3Rpb24uCi0rCShydW5fbGFuZ190ZXN0cyk6IEFkZCBwcmludCBl bGVtZW50cyB0ZXN0LgotKwotKzIwMDktMDktMjEgIFBoaWwgTXVsZG9vbiAgPHBtdWxkb29uQHJl ZGhhdC5jb20+Ci0rCi0gCSogZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAgKHRlc3Rfc3Vic2NyaXB0 X3JlZ3Jlc3Npb24pOiBOZXcKLSAJZnVuY3Rpb24uICBUZXN0IGZvciBpbnZhbGlkIHN1YnNjcmlw dHMuCi0gCSogZ2RiLnB5dGhvbi9weS12YWx1ZS5jIChtYWluKTogQWRkIHRlc3QgYXJyYXksIGFu ZCBwb2ludGVyIHRvIGl0LgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwLHYKLXJldHJpZXZpbmcgcmV2 aXNpb24gMS4xCi1yZXRyaWV2aW5nIHJldmlzaW9uIDEuMS4yLjEKLWRpZmYgLXUgLXIxLjEgLXIx LjEuMi4xCi0tLS0gc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5l eHAJMjAwOS8wOS8wOSAxNzo0NTo0MgkxLjEKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LXByZXR0eXByaW50LmV4cAkyMDA5LzA5LzIxIDEwOjI1OjMwCTEuMS4yLjEKLUBAIC0z NSw2ICszNSwxNyBAQAotICAgICAtcmUgIiRnZGJfcHJvbXB0ICQiCXt9Ci0gfQotIAotKyMgUnVu IGEgY29tbWFuZCBpbiBHREIsIGFuZCByZXBvcnQgYSBmYWlsdXJlIGlmIGEgUHl0aG9uIGV4Y2Vw dGlvbiBpcyB0aHJvd24uCi0rIyBJZiByZXBvcnRfcGFzcyBpcyB0cnVlLCByZXBvcnQgYSBwYXNz IGlmIG5vIGV4Y2VwdGlvbiBpcyB0aHJvd24uCi0rcHJvYyBnZGJfcHlfdGVzdF9zaWxlbnRfY21k IHtjbWQgbmFtZSByZXBvcnRfcGFzc30gewotKyAgZ2xvYmFsIGdkYl9wcm9tcHQKLSsKLSsgIGdk Yl90ZXN0X211bHRpcGxlICRjbWQgJG5hbWUgewotKyAgICAgIC1yZSAiVHJhY2ViYWNrLiokZ2Ri X3Byb21wdCAkIiAgeyBmYWlsICRuYW1lIH0KLSsgICAgICAtcmUgIiRnZGJfcHJvbXB0ICQiCSAg ICAgIHsgaWYgJHJlcG9ydF9wYXNzIHsgcGFzcyAkbmFtZSB9IH0KLSsgIH0KLSt9Ci0rCi0gcHJv YyBydW5fbGFuZ190ZXN0cyB7bGFuZ30gewotICAgICBnbG9iYWwgc3JjZGlyIHN1YmRpciBzcmNm aWxlIGJpbmZpbGUgdGVzdGZpbGUgaGV4Ci0gICAgIGlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rp cn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlICJkZWJ1ZyAk bGFuZyJdICE9ICIiIH0gewotQEAgLTc5LDYgKzkwLDExIEBACi0gCWdkYl90ZXN0ICJwcmludCBk ZXJpdmVkIiBcCi0gCSAgICAiID0gXHsuKjxWYmFzZTE+ID0gcHAgY2xhc3MgbmFtZTogVmJhc2Ux Lio8VmJhc2UyPiA9IFx7Lio8VmlydHVhbFRlc3Q+ID0gcHAgdmFsdWUgdmFyaWFibGUgaXM6IDEs LiptZW1iZXJzIG9mIFZiYXNlMjouKl92cHRyLlZiYXNlMiA9ICRoZXguKjxWYmFzZTM+ID0gXHsu Km1lbWJlcnMgb2YgVmJhc2UzLiptZW1iZXJzIG9mIERlcml2ZWQ6Lip2YWx1ZSA9IDIuKiIKLSAJ Z2RiX3Rlc3QgInByaW50IG5zICIgIlwiZW1iZWRkZWRcXFxcMDAwbnVsbFxcXFwwMDBzdHJpbmdc IiIKLSsJZ2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAic2V0IHByaW50IGVsZW1lbnRzIDMiICIiIDEK LSsJZ2RiX3Rlc3QgInByaW50IG5zIiAiZW1iXC5cLlwuLiIKLSsJZ2RiX3B5X3Rlc3Rfc2lsZW50 X2NtZCAic2V0IHByaW50IGVsZW1lbnRzIDEwIiAiIiAxCi0rCWdkYl90ZXN0ICJwcmludCBucyIg ImVtYmVkZGVkXFxcXDAwMG5cLlwuXC4uIgotKwlnZGJfcHlfdGVzdF9zaWxlbnRfY21kICJzZXQg cHJpbnQgZWxlbWVudHMgMjAwIiAiIiAxCi0gICAgIH0KLSAKLSAgICAgZ2RiX3Rlc3QgInByaW50 IHgiICIgPSAkaGV4IFwidGhpcyBpcyB4XCIiCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRj aCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXggNjIzNWI5Zi4uMTQwNmFiOCAxMDA2NDQKLS0tIGEv Z2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDcgKzIsNyBAQCBo dHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogaHR0cDovL3NvdXJj ZXdhcmUub3JnL2dkYi93aWtpL0FyY2hlckJyYW5jaE1hbmFnZW1lbnQKIAogR0lUIHNuYXBzaG90 OgotY29tbWl0IDBkNWMzOGRkODkwNTBjMGVlMWNmMDQ5NjU2ZjE3N2MxNzBkNjc1ZDQKK2NvbW1p dCA0MzM4ZWE4NWM3OTgwMDdjMzI1OTQwMzJmNjAyZGI5ZmQyMzBlYmE5CiAKIGJyYW5jaCBgYXJj aGVyJyAtIHRoZSBtZXJnZSBvZiBicmFuY2hlczoKIGFyY2hlci10cm9tZXktY2FsbC1mcmFtZS1j ZmEKQEAgLTM1NTcsMTkgKzM1NTcsMjYgQEAgaW5kZXggZDJkOGYyZS4uYWYwYmEyOCAxMDA2NDQK ICAgICAgICBpZiAoc3ltICE9IE5VTEwpCiAgCXJldHVybiBzeW07CiBkaWZmIC0tZ2l0IGEvZ2Ri L2NwLXN1cHBvcnQuYyBiL2dkYi9jcC1zdXBwb3J0LmMKLWluZGV4IGYxMmQ3ODUuLmNhMTAwMDcg MTAwNjQ0CitpbmRleCBmMTJkNzg1Li4yM2IzNGMxIDEwMDY0NAogLS0tIGEvZ2RiL2NwLXN1cHBv cnQuYwogKysrIGIvZ2RiL2NwLXN1cHBvcnQuYwotQEAgLTcwLDYgKzcwLDIxIEBAIHN0cnVjdCBj bWRfbGlzdF9lbGVtZW50ICptYWludF9jcGx1c19jbWRfbGlzdCA9IE5VTEw7CitAQCAtMzIsNiAr MzIsOSBAQAorICNpbmNsdWRlICJibG9jay5oIgorICNpbmNsdWRlICJjb21wbGFpbnRzLmgiCisg I2luY2x1ZGUgImdkYnR5cGVzLmgiCisrI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKKysjaW5jbHVk ZSAiZXhwcmVzc2lvbi5oIgorKyNpbmNsdWRlICJ2YWx1ZS5oIgorIAorICNpbmNsdWRlICJzYWZl LWN0eXBlLmgiCisgCitAQCAtNzAsNiArNzMsMTggQEAgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQg Km1haW50X2NwbHVzX2NtZF9saXN0ID0gTlVMTDsKICBzdGF0aWMgdm9pZCBtYWludF9jcGx1c19j b21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSk7CiAgc3RhdGljIHZvaWQgZmlyc3RfY29t cG9uZW50X2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KTsKICAKLSsvKiBPcGVyYXRv ciB2YWxpZGF0aW9uLiBUaGlzIGlzIHVzZWQgYnkgY3BfdmFsaWRhdGVfb3BlYXJ0b3IsCi0rICAg d2hpY2ggaXMgaW4gdHVybiB1c2VkIGJ5IGJvdGggdGhlIGV4cHJlc3Npb24gcGFyc2VyIChjbGV4 KQotKyAgIGFuZCBkZWNvZGVfbGluZSAoZGVjb2RlX2NvbXBvdW5kLCBhY3R1YWxseSkuCi0rCisr LyogT3BlcmF0b3IgdmFsaWRhdGlvbi4KICsgICBOT1RFOiBNdWx0aS1ieXRlIG9wZXJhdG9ycyAo dXN1YWxseSB0aGUgYXNzaWdubWVudCB2YXJpZXR5IG9wZXJhdG9yKQotKyAgIG11c3QgYXBwZWFy IGJlZm9yZSB0aGUgc2luZ2xlIGJ5dGUgdmVyc2lvbiwgaS5lLiwgIis9IiBiZWZvcmUgIisiLiAq LworKyAgIG11c3QgYXBwZWFyIGJlZm9yZSB0aGUgc2luZ2xlIGJ5dGUgdmVyc2lvbiwgaS5lLiwg Iis9IiBiZWZvcmUgIisiLiAgKi8KICtzdGF0aWMgY29uc3QgY2hhciAqb3BlcmF0b3JfdG9rZW5z W10gPQogKyAgewogKyAgICAiKysiLCAiKz0iLCAiKyIsICItPioiLCAiLT4iLCAiLS0iLCAiLT0i LCAiLSIsICIqPSIsICIqIiwgIi89IiwgIi8iLApAQCAtMzYwNCw3ICszNjExLDcgQEAgaW5kZXgg ZjEyZDc4NS4uY2ExMDAwNyAxMDA2NDQKICAJICAgICE9IE5VTEwpKQogICAgICAgIHBzeW10YWJf dG9fc3ltdGFiIChwcyk7CiAgICB9Ci1AQCAtOTA5LDYgKzkyNSw3MiBAQCBmaXJzdF9jb21wb25l bnRfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCitAQCAtOTA5LDYgKzkyNSwxMDcg QEAgZmlyc3RfY29tcG9uZW50X2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQogIAog IGV4dGVybiBpbml0aWFsaXplX2ZpbGVfZnR5cGUgX2luaXRpYWxpemVfY3Bfc3VwcG9ydDsgLyog LVdtaXNzaW5nLXByb3RvdHlwZXMgKi8KICAKQEAgLTM2MTcsMTggKzM2MjQsMjMgQEAgaW5kZXgg ZjEyZDc4NS4uY2ExMDAwNyAxMDA2NDQKICsgIHdoaWxlICgwKQogKwogKy8qIFJldHVybnMgdGhl IGxlbmd0aCBvZiB0aGUgb3BlcmF0b3IgbmFtZSBvciAwIGlmIElOUFVUIGRvZXMgbm90Ci0rICAg cG9pbnQgdG8gYSB2YWxpZCBDKysgb3BlcmF0b3IuIElOUFVUIHNob3VsZCBzdGFydCB3aXRoICJv cGVyYXRvciIuICovCisrICAgcG9pbnQgdG8gYSB2YWxpZCBDKysgb3BlcmF0b3IuICBJTlBVVCBz aG91bGQgc3RhcnQgd2l0aCAib3BlcmF0b3IiLiAgKi8KICtpbnQKICtjcF92YWxpZGF0ZV9vcGVy YXRvciAoY29uc3QgY2hhciAqaW5wdXQpCiArewogKyAgaW50IGk7Ci0rICBjb25zdCBjaGFyICpw ID0gaW5wdXQ7Ci0rICBpbnQgdmFsaWQgPSAwOworKyAgY2hhciAqY29weTsKKysgIGNvbnN0IGNo YXIgKnA7CisrICBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwcjsKKysgIHN0cnVjdCB2YWx1ZSAqdmFs OworKyAgc3RydWN0IGdkYl9leGNlcHRpb24gZXhjZXB0OworKyAgc3RydWN0IGNsZWFudXAgKm9s ZF9jaGFpbjsKKysKKysgIHAgPSBpbnB1dDsKICsKLSsgIC8qIE1vc3QgY2FsbGVycyBhcHBlYXIg dG8gZG8gdGhpcyBhbHJlYWR5LCBidXQgc2luY2UgdGhpcyBpcyBub3QKLSsgICAgIHJlYWxseSB0 aW1lLWNyaXRpY2FsIGNvZGUsIGl0IGlzIGRvdWJsZS1jaGVja2VkIGhlcmUuICovCiArICBpZiAo c3RybmNtcCAocCwgIm9wZXJhdG9yIiwgOCkgPT0gMCkKICsgICAgeworKyAgICAgIGludCB2YWxp ZCA9IDA7CiArICAgICAgcCArPSA4OwogKwogKyAgICAgIFNLSVBfU1BBQ0UgKHApOwpAQCAtMzYz Nyw3ICszNjQ5LDcgQEAgaW5kZXggZjEyZDc4NS4uY2ExMDAwNyAxMDA2NDQKICsJewogKwkgIGlu dCBsZW5ndGggPSBzdHJsZW4gKG9wZXJhdG9yX3Rva2Vuc1tpXSk7CiArCSAgLyogQnkgdXNpbmcg c3RybmNtcCBoZXJlLCB3ZSBNVVNUIGhhdmUgb3BlcmF0b3JfdG9rZW5zIG9yZGVyZWQhCi0rCSAg ICAgU2VlIGFkZGl0aW9uYWwgbm90ZXMgd2hlcmUgb3BlcmF0b3JfdG9rZW5zIGlzIGRlZmluZWQg YWJvdmUuICovCisrCSAgICAgU2VlIGFkZGl0aW9uYWwgbm90ZXMgd2hlcmUgb3BlcmF0b3JfdG9r ZW5zIGlzIGRlZmluZWQgYWJvdmUuICAqLwogKwkgIGlmIChzdHJuY21wIChwLCBvcGVyYXRvcl90 b2tlbnNbaV0sIGxlbmd0aCkgPT0gMCkKICsJICAgIHsKICsJICAgICAgY29uc3QgY2hhciAqb3Ag PSBwOwpAQCAtMzY0OCw4ICszNjYwLDggQEAgaW5kZXggZjEyZDc4NS4uY2ExMDAwNyAxMDA2NDQK ICsJCSAgfHwgc3RybmNtcCAob3AsICJkZWxldGUiLCA2KSA9PSAwKQogKwkJewogKwotKwkJICAv KiBTcGVjaWFsIGNhc2U6IG5ld1tdIGFuZCBkZWxldGVbXS4gV2UgbXVzdCBiZSBjYXJlZnVsCi0r CQkgICAgIHRvIHN3YWxsb3cgd2hpdGVzcGFjZSBiZWZvcmUvaW4gIltdIi4qLworKwkJICAvKiBT cGVjaWFsIGNhc2U6IG5ld1tdIGFuZCBkZWxldGVbXS4gIFdlIG11c3QgYmUgY2FyZWZ1bAorKwkJ ICAgICB0byBzd2FsbG93IHdoaXRlc3BhY2UgYmVmb3JlL2luICJbXSIuICAqLwogKwkJICBTS0lQ X1NQQUNFIChwKTsKICsKICsJCSAgaWYgKCpwID09ICdbJykKQEAgLTM2NjMsMTUgKzM2NzUsNDUg QEAgaW5kZXggZjEyZDc4NS4uY2ExMDAwNyAxMDA2NDQKICsJCSAgICB9CiArCQl9CiArCi0rCSAg ICAgIGJyZWFrOworKwkgICAgICBpZiAodmFsaWQpCisrCQlyZXR1cm4gKHAgLSBpbnB1dCk7CiAr CSAgICB9CiArCX0KICsKLSsgICAgICBpZiAoIXZhbGlkKQotKwlwID0gaW5wdXQ7CisrICAgICAg LyogQ2hlY2sgaW5wdXQgZm9yIGEgY29udmVyc2lvbiBvcGVyYXRvci4gICovCisrCisrICAgICAg LyogU2tpcCBwYXN0IGJhc2UgdHlwZW5hbWUgKi8KKysgICAgICB3aGlsZSAoKnAgIT0gJyonICYm ICpwICE9ICcmJyAmJiAqcCAhPSAwICYmICpwICE9ICcgJykKKysJKytwOworKyAgICAgIFNLSVBf U1BBQ0UgKHApOworKworKyAgICAgIC8qIEFkZCBtb2RpZmllcnMgJyonLycmJyAqLworKyAgICAg IHdoaWxlICgqcCA9PSAnKicgfHwgKnAgPT0gJyYnKQorKwl7CisrCSAgKytwOworKwkgIFNLSVBf U1BBQ0UgKHApOworKwl9CisrCisrICAgICAgLyogQ2hlY2sgZm9yIHZhbGlkIHR5cGUuICBbUmVt ZW1iZXI6IGlucHV0IHN0YXJ0cyB3aXRoIAorKwkgIm9wZXJhdG9yIi5dICAqLworKyAgICAgIGNv cHkgPSBzYXZlc3RyaW5nIChpbnB1dCArIDgsIHAgLSBpbnB1dCAtIDgpOworKyAgICAgIGV4cHIg PSBOVUxMOworKyAgICAgIHZhbCA9IE5VTEw7CisrICAgICAgVFJZX0NBVENIIChleGNlcHQsIFJF VFVSTl9NQVNLX0FMTCkKKysJeworKwkgIGV4cHIgPSBwYXJzZV9leHByZXNzaW9uIChjb3B5KTsK KysJICB2YWwgPSBldmFsdWF0ZV90eXBlIChleHByKTsKKysJfQorKworKyAgICAgIHhmcmVlIChj b3B5KTsKKysgICAgICBpZiAoZXhwcikKKysJeGZyZWUgKGV4cHIpOworKworKyAgICAgIGlmICh2 YWwgIT0gTlVMTCAmJiB2YWx1ZV90eXBlICh2YWwpICE9IE5VTEwpCisrCXJldHVybiAocCAtIGlu cHV0KTsKICsgICAgfQogKwotKyAgcmV0dXJuIChwIC0gaW5wdXQpOworKyAgcmV0dXJuIDA7CiAr fQogKwogIHZvaWQKQEAgLTQ5MjEsNyArNDk2Myw3IEBAIGluZGV4IDBiZmNmY2EuLjAxMDE4ZDYg MTAwNjQ0CiAgCiAgI2VuZGlmIC8qIGR3YXJmMmxvYy5oICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3 YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKLWluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAw NjQ0CitpbmRleCA0Y2NlMzZiLi5jMmY1ZjIzIDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMnJlYWQu YwogKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwogQEAgLTQ4LDYgKzQ4LDEyIEBACkBAIC00OTMwLDgg KzQ5NzIsOCBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogICNpbmNsdWRlICJhZGRy bWFwLmgiCiArI2luY2x1ZGUgImYtbGFuZy5oIgogKyNpbmNsdWRlICJjLWxhbmcuaCIKLSsjaW5j bHVkZSAianYtbGFuZy5oIgogKyNpbmNsdWRlICJ0eXBlcHJpbnQuaCIKKysjaW5jbHVkZSAianYt bGFuZy5oIgogKyNpbmNsdWRlICJ2ZWMuaCIKICsjaW5jbHVkZSAiYmxvY2suaCIKICAKQEAgLTUw MjMsMjAgKzUwNjUsMTggQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICBzdGF0aWMg dm9pZCBkd2FyZjJfcmVhZF9hYmJyZXZzIChiZmQgKmFiZmQsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KTsKICAKICBzdGF0aWMgdm9pZCBkd2FyZjJfZnJlZV9hYmJyZXZfdGFibGUgKHZvaWQgKik7Ci1A QCAtOTQ1LDggKzk3OCwxMyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKnRhZ190eXBlX3RvX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOworQEAgLTk0NSw2ICs5Nzgs MTEgQEAgc3RhdGljIHN0cnVjdCB0eXBlICp0YWdfdHlwZV90b190eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKnJlYWRf dHlwZV9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIAorK3N0 YXRpYyBjaGFyICpwaHlzbmFtZV9wcmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICopOworKwogK3N0YXRpYyB2b2lkIHBoeXNuYW1lX3ByZWZpeF8xIChzdHJ1Y3Qg dWlfZmlsZSAqLCBzdHJ1Y3QgZGllX2luZm8gKiwKICsJCQkgICAgICAgc3RydWN0IGR3YXJmMl9j dSAqKTsKICsKICBzdGF0aWMgY2hhciAqZGV0ZXJtaW5lX3ByZWZpeCAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCi0rc3RhdGljIGNoYXIgKnBoeXNuYW1lX3By ZWZpeCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKik7Ci0rCiAgc3Rh dGljIGNoYXIgKnR5cGVuYW1lX2NvbmNhdCAoc3RydWN0IG9ic3RhY2sgKiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwcmVmaXgsIAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN1ZmZpeCwKIEBAIC05NjQsNyArMTAwMiw4IEBA IHN0YXRpYyBpbnQgZHdhcmYyX3Jhbmdlc19yZWFkICh1bnNpZ25lZCwgQ09SRV9BRERSICosIENP UkVfQUREUiAqLAogIAkJCSAgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICosIHN0cnVjdCBwYXJ0aWFs X3N5bXRhYiAqKTsKICAKQEAgLTUwNzYsMTYgKzUxMTYsMTggQEAgaW5kZXggNGNjZTM2Yi4uZDM5 NDg4NyAxMDA2NDQKICBzdGF0aWMgY29uc3QgY2hhciAqbmFtZXNwYWNlX25hbWUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLAogIAkJCQkgICBpbnQgKmlzX2Fub255bW91cywgc3RydWN0IGR3YXJmMl9j dSAqKTsKICAKLUBAIC0xMDM0LDYgKzEwODEsOSBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2RpZSAo c3RydWN0IGRpZV9pbmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7CitAQCAtMTAzMiw3ICsxMDc5 LDEwIEBAIHN0YXRpYyBnZGJfYnl0ZSAqcmVhZF9mdWxsX2RpZSAoY29uc3Qgc3RydWN0IGRpZV9y ZWFkZXJfc3BlY3MgKnJlYWRlciwKICAKLSBzdGF0aWMgY2hhciAqZHdhcmYyX2xpbmthZ2VfbmFt ZSAoc3RydWN0IGRpZV9pbmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7Cisgc3RhdGljIHZvaWQg cHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIAor LXN0YXRpYyBjaGFyICpkd2FyZjJfbGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKiwgc3Ry dWN0IGR3YXJmMl9jdSAqKTsKKytzdGF0aWMgY2hhciAqZHdhcmYyX3BoeXNuYW1lIChzdHJ1Y3Qg ZGllX2luZm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKKysKICtzdGF0aWMgY2hhciAqZm9ydHJh bl9tb2R1bGVfbGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICsJCQkJCSAgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpOwotKworIAogIHN0YXRpYyBjaGFyICpkd2FyZjJfY2Fub25pY2Fs aXplX25hbWUgKGNoYXIgKiwgc3RydWN0IGR3YXJmMl9jdSAqLAogIAkJCQkgICAgICAgc3RydWN0 IG9ic3RhY2sgKik7Ci0gCiBAQCAtMTA3Niw3ICsxMTI2LDcgQEAgc3RhdGljIGludCBpc19yZWZf YXR0ciAoc3RydWN0IGF0dHJpYnV0ZSAqKTsKICAKICBzdGF0aWMgdW5zaWduZWQgaW50IGR3YXJm Ml9nZXRfcmVmX2RpZV9vZmZzZXQgKHN0cnVjdCBhdHRyaWJ1dGUgKik7CkBAIC01NTM2LDcgKzU1 NzgsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogICAgICBjYXNlIERXX1RBR19j bGFzc190eXBlOgogICAgICBjYXNlIERXX1RBR19pbnRlcmZhY2VfdHlwZToKICAgICAgY2FzZSBE V19UQUdfc3RydWN0dXJlX3R5cGU6Ci1AQCAtMjUzMiwyMiArMjgxOSw2IEBAIGFkZF9wYXJ0aWFs X3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCitAQCAtMjUzMiwzNCArMjgxOSwxNyBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBw YXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGJyZWFr OwogICAgICB9CiAgCkBAIC01NTU5LDggKzU2MDEsMTIgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4 NyAxMDA2NDQKICAgIGlmIChidWlsdF9hY3R1YWxfbmFtZSkKICAgICAgeGZyZWUgKGFjdHVhbF9u YW1lKTsKICB9Ci1AQCAtMjU1Nyw5ICsyODI4LDkgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1 Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAgICBuYW1l IGxpc3RlZCBpbiB0aGUgZGllLiAgKi8KKyAKKy0vKiBEZXRlcm1pbmUgd2hldGhlciBhIGRpZSBv ZiB0eXBlIFRBRyBsaXZpbmcgaW4gYSBDKysgY2xhc3Mgb3IKKy0gICBuYW1lc3BhY2UgbmVlZHMg dG8gaGF2ZSB0aGUgbmFtZSBvZiB0aGUgc2NvcGUgcHJlcGVuZGVkIHRvIHRoZQorLSAgIG5hbWUg bGlzdGVkIGluIHRoZSBkaWUuICAqLworKy8qIERldGVybWluZSB3aGV0aGVyIERJRSBuZWVkcyB0 byBoYXZlIHRoZSBuYW1lIG9mIHRoZSBzY29wZSBwcmVwZW5kZWQKKysgICB0byB0aGUgbmFtZSBs aXN0ZWQgaW4gdGhlIGRpZS4gICovCiAgCiAgc3RhdGljIGludAogLXBkaV9uZWVkc19uYW1lc3Bh Y2UgKGVudW0gZHdhcmZfdGFnIHRhZykKQEAgLTU1NzEsNyArNTYxNyw3IEBAIGluZGV4IDRjY2Uz NmIuLmQzOTQ4ODcgMTAwNjQ0CiAgICAgIHsKICAgICAgY2FzZSBEV19UQUdfbmFtZXNwYWNlOgog ICAgICBjYXNlIERXX1RBR190eXBlZGVmOgotQEAgLTI1NjksNyArMjg0MCwyMyBAQCBwZGlfbmVl ZHNfbmFtZXNwYWNlIChlbnVtIGR3YXJmX3RhZyB0YWcpCitAQCAtMjU2OSw3ICsyODM5LDIzIEBA IHBkaV9uZWVkc19uYW1lc3BhY2UgKGVudW0gZHdhcmZfdGFnIHRhZykKICAgICAgY2FzZSBEV19U QUdfdW5pb25fdHlwZToKICAgICAgY2FzZSBEV19UQUdfZW51bWVyYXRpb25fdHlwZToKICAgICAg Y2FzZSBEV19UQUdfZW51bWVyYXRvcjoKQEAgLTU1OTUsNyArNTY0MSw3IEBAIGluZGV4IDRjY2Uz NmIuLmQzOTQ4ODcgMTAwNjQ0CiAgICAgIGRlZmF1bHQ6CiAgICAgICAgcmV0dXJuIDA7CiAgICAg IH0KLUBAIC0yNjAyLDEyICsyODg5LDEyIEBAIHN0YXRpYyB2b2lkCitAQCAtMjYwMiwxMiArMjg4 OCwxMiBAQCBzdGF0aWMgdm9pZAogIGFkZF9wYXJ0aWFsX21vZHVsZSAoc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKnBkaSwgQ09SRV9BRERSICpsb3dwYywKICAJCSAgICBDT1JFX0FERFIgKmhpZ2hw YywgaW50IG5lZWRfcGMsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIHsKQEAgLTU2MTIsNyArNTY1 OCw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgfQogIAogIC8qIFJlYWQgYSBw YXJ0aWFsIGRpZSBjb3JyZXNwb25kaW5nIHRvIGEgc3VicHJvZ3JhbSBhbmQgY3JlYXRlIGEgcGFy dGlhbAotQEAgLTI2OTgsMjcgKzI5ODUsNiBAQCBndWVzc19zdHJ1Y3R1cmVfbmFtZSAoc3RydWN0 IHBhcnRpYWxfZGllX2luZm8gKnN0cnVjdF9wZGksCitAQCAtMjY5OCwyNyArMjk4NCw2IEBAIGd1 ZXNzX3N0cnVjdHVyZV9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3RydWN0X3BkaSwK ICAKICAgICAgICBpZiAocmVhbF9wZGktPmRpZV9wYXJlbnQgIT0gTlVMTCkKICAJcmV0dXJuOwpA QCAtNTY0MCw3ICs1Njg2LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAg fQogIH0KICAKLUBAIC0zMjk1LDYgKzM1NjEsMTQgQEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zMjk1LDYgKzM1NjAsMTQgQEAg cHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAgICAgY2FzZSBEV19UQUdfaW1wb3J0ZWRfZGVjbGFyYXRpb246CiAgICAgIGNhc2UgRFdfVEFH X2ltcG9ydGVkX21vZHVsZToKICAgICAgICBwcm9jZXNzaW5nX2hhc19uYW1lc3BhY2VfaW5mbyA9 IDE7CkBAIC01NjU1LDcgKzU3MDEsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAog ICAgICAgIGlmIChkaWUtPmNoaWxkICE9IE5VTEwgJiYgKGRpZS0+dGFnID09IERXX1RBR19pbXBv cnRlZF9kZWNsYXJhdGlvbgogIAkJCQkgfHwgY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2ZvcnRy YW4pKQogIAljb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIlRhZyAnJXMnIGhhcyB1 bmV4cGVjdGVkIGNoaWxkcmVuIiksCi1AQCAtMzMxMCw0MSArMzU4NCw2OCBAQCBwcm9jZXNzX2Rp ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTMzMTAs NDEgKzM1ODMsNjggQEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICAvKiBSZXR1cm4gdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIERJ RSwgYmFzZWQgb24gaXRzIERXX0FUX25hbWUuCiAgICAgSWYgc2NvcGUgcXVhbGlmaWVycyBhcmUg YXBwcm9wcmlhdGUgdGhleSB3aWxsIGJlIGFkZGVkLiAgVGhlIHJlc3VsdAogICAgIHdpbGwgYmUg YWxsb2NhdGVkIG9uIHRoZSBvYmpmaWxlX29ic3RhY2ssIG9yIE5VTEwgaWYgdGhlIERJRSBkb2Vz CkBAIC01NzQ1LDcgKzU3OTEsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIC8q IFJlYWQgdGhlIGltcG9ydCBzdGF0ZW1lbnQgc3BlY2lmaWVkIGJ5IHRoZSBnaXZlbiBkaWUgYW5k IHJlY29yZCBpdC4gICovCiAgCiAgc3RhdGljIHZvaWQKLUBAIC0zMzU0LDkgKzM2NTUsMTUgQEAg cmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCitAQCAtMzM1NCw5ICszNjU0LDE1IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGRp ZV9pbmZvICppbXBvcnRlZF9kaWU7CiAgICBjb25zdCBjaGFyICppbXBvcnRlZF9uYW1lOwogICAg Y29uc3QgY2hhciAqaW1wb3J0ZWRfbmFtZV9wcmVmaXg7CkBAIC01NzYzLDcgKzU4MDksNyBAQCBp bmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogICAgaW1wb3J0X2F0dHIgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9pbXBvcnQsIGN1KTsKICAgIGlmIChpbXBvcnRfYXR0ciA9PSBOVUxMKQog ICAgICB7Ci1AQCAtMzQwNCwxNyArMzcxMSwyNyBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zNDA0LDE3ICsz NzEwLDI3IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIHJldHVybjsKICAgICAgfQogIApAQCAtNTc5Nyw3 ICs1ODQzLDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgICBjYW5vbmlj YWxfbmFtZSA9IGFsbG9jYSAoc3RybGVuIChpbXBvcnRlZF9uYW1lX3ByZWZpeCkgKyAyICsgc3Ry bGVuIChpbXBvcnRlZF9uYW1lKSArIDEpOwogICAgICAgIHN0cmNweSAoY2Fub25pY2FsX25hbWUs IGltcG9ydGVkX25hbWVfcHJlZml4KTsKICAgICAgICBzdHJjYXQgKGNhbm9uaWNhbF9uYW1lLCAi OjoiKTsKLUBAIC0zNDI1LDggKzM3NDIsMTQgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzQyNSw4ICszNzQx LDE0IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGNhbm9uaWNhbF9uYW1lID0gYWxsb2NhIChzdHJsZW4g KGltcG9ydGVkX25hbWUpICsgMSk7CiAgICAgICAgc3RyY3B5IChjYW5vbmljYWxfbmFtZSwgaW1w b3J0ZWRfbmFtZSk7CiAgICAgIH0KQEAgLTU4MTQsNyArNTg2MCw3IEBAIGluZGV4IDRjY2UzNmIu LmQzOTQ4ODcgMTAwNjQ0CiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMzY5NSw2ICs0MDE4LDE0 IEBAIGluaGVyaXRfYWJzdHJhY3RfZGllcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQorQEAgLTM2OTUsNiArNDAxNywxNCBAQCBpbmhlcml0X2Fic3RyYWN0X2Rp ZXMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHI7CiAgCiAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRf YWJzdHJhY3Rfb3JpZ2luLCBjdSk7CkBAIC01ODI5LDcgKzU4NzUsNyBAQCBpbmRleCA0Y2NlMzZi Li5kMzk0ODg3IDEwMDY0NAogICAgaWYgKCFhdHRyKQogICAgICByZXR1cm47CiAgCi1AQCAtMzc5 Myw2ICs0MTI0LDcgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzc5Myw2ICs0MTIzLDcgQEAgcmVhZF9mdW5jX3Njb3Bl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBjaGFyICpu YW1lOwogICAgQ09SRV9BRERSIGJhc2VhZGRyOwogICAgc3RydWN0IGJsb2NrICpibG9jazsKQEAg LTU4MzcsNyArNTg4Myw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgICBpbnQg aW5saW5lZF9mdW5jID0gKGRpZS0+dGFnID09IERXX1RBR19pbmxpbmVkX3N1YnJvdXRpbmUpOwog IAogICAgaWYgKGlubGluZWRfZnVuYykKLUBAIC0zODExLDEzICs0MTQzLDIzIEBAIHJlYWRfZnVu Y19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAg LTM4MTEsMTMgKzQxNDIsMjMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChvYmpm aWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKICAKQEAgLTU4 NjQsNyArNTkxMCw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgICBsb3dwYyAr PSBiYXNlYWRkcjsKICAgIGhpZ2hwYyArPSBiYXNlYWRkcjsKICAKLUBAIC0zODQ0LDE0ICs0MTg2 LDE5IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTM4NDQsMTQgKzQxODUsMTkgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBjdS0+bGlzdF9p bl9zY29wZSA9ICZsb2NhbF9zeW1ib2xzOwogIApAQCAtNTg5MSw3ICs1OTM3LDcgQEAgaW5kZXgg NGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgfQogIAogICAgaW5oZXJpdF9hYnN0cmFjdF9k aWVzIChkaWUsIGN1KTsKLUBAIC0zODY3LDYgKzQyMTQsMTMgQEAgcmVhZF9mdW5jX3Njb3BlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzg2Nyw2ICs0 MjEzLDEzIEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogIAkJCWRldGVybWluZV9wcmVmaXggKGRpZSwgY3UpLAogIAkJCXByb2Nl c3NpbmdfaGFzX25hbWVzcGFjZV9pbmZvKTsKICAKQEAgLTU5MDUsNyArNTk1MSw3IEBAIGluZGV4 IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgICAvKiBJZiB3ZSBoYXZlIGFkZHJlc3MgcmFuZ2Vz LCByZWNvcmQgdGhlbS4gICovCiAgICBkd2FyZjJfcmVjb3JkX2Jsb2NrX3JhbmdlcyAoZGllLCBi bG9jaywgYmFzZWFkZHIsIGN1KTsKICAgIAotQEAgLTM5MDMsNyArNDI1Nyw3IEBAIHJlYWRfbGV4 aWNhbF9ibG9ja19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTM5MDMsNyArNDI1Niw3IEBAIHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgYXMgbXVsdGlw bGUgbGV4aWNhbCBibG9ja3M/ICBIYW5kbGluZyBjaGlsZHJlbiBpbiBhIHNhbmUgd2F5IHdvdWxk CiAgICAgICBiZSBuYXN0eS4gIE1pZ2h0IGJlIGVhc2llciB0byBwcm9wZXJseSBleHRlbmQgZ2Vu ZXJpYyBibG9ja3MgdG8gCiAgICAgICBkZXNjcmliZSByYW5nZXMuICAqLwpAQCAtNTkxNCw3ICs1 OTYwLDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgcmV0dXJuOwogICAg bG93cGMgKz0gYmFzZWFkZHI7CiAgICBoaWdocGMgKz0gYmFzZWFkZHI7Ci1AQCAtMzkyMCw3ICs0 Mjc0LDcgQEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzkyMCw3ICs0MjczLDcgQEAgcmVhZF9sZXhpY2Fs X2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CiAgICAgIH0KICAgIG5ldyA9IHBvcF9jb250ZXh0ICgpOwogIApAQCAtNTkyMyw3ICs1OTY5LDcg QEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgewogICAgICAgIHN0cnVjdCBi bG9jayAqYmxvY2sKICAgICAgICAgID0gZmluaXNoX2Jsb2NrICgwLCAmbG9jYWxfc3ltYm9scywg bmV3LT5vbGRfYmxvY2tzLCBuZXctPnN0YXJ0X2FkZHIsCi1AQCAtNDA3NSw3ICs0NDI5LDggQEAg ZHdhcmYyX3Jhbmdlc19yZWFkICh1bnNpZ25lZCBvZmZzZXQsIENPUkVfQUREUiAqbG93X3JldHVy biwKK0BAIC00MDc1LDcgKzQ0MjgsOCBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkIG9m ZnNldCwgQ09SRV9BRERSICpsb3dfcmV0dXJuLAogICAgIGRpc2NvbnRpbnVvdXMsIGkuZS4gZGVy aXZlZCBmcm9tIERXX0FUX3JhbmdlcyBpbmZvcm1hdGlvbi4gICovCiAgc3RhdGljIGludAogIGR3 YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dw YywKQEAgLTU5MzMsNyArNTk3OSw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAg ewogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAgIENPUkVfQUREUiBsb3cgPSAwOwotQEAg LTQxMDMsNyArNDQ1OCw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgQ09SRV9BRERSICpsb3dwYywKK0BAIC00MTAzLDcgKzQ0NTcsNyBAQCBkd2FyZjJfZ2V0 X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCiAgCXsK ICAJICAvKiBWYWx1ZSBvZiB0aGUgRFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSBpcyB0aGUgb2Zmc2V0 IGluIHRoZQogIAkgICAgIC5kZWJ1Z19yYW5nZXMgc2VjdGlvbi4gICovCkBAIC01OTQyLDcgKzU5 ODgsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAkgICAgcmV0dXJuIDA7CiAg CSAgLyogRm91bmQgZGlzY29udGludW91cyByYW5nZSBvZiBhZGRyZXNzZXMuICAqLwogIAkgIHJl dCA9IC0xOwotQEAgLTQxNDIsNyArNDQ5Nyw3IEBAIGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19i b3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTQxNDIsNyArNDQ5Niw3IEBAIGR3YXJm Ml9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgQ09S RV9BRERSIGxvdywgaGlnaDsKICAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGQgPSBkaWUtPmNoaWxk OwogIApAQCAtNTk1MSw3ICs1OTk3LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQK ICAgICAgewogICAgICAgICpsb3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cpOwogICAgICAgICpoaWdo cGMgPSBtYXggKCpoaWdocGMsIGhpZ2gpOwotQEAgLTQxNzksNyArNDUzNCw3IEBAIGdldF9zY29w ZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTQxNzksNyArNDUzMyw3IEBA IGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgQ09SRV9BRERS IGJlc3RfaGlnaCA9IChDT1JFX0FERFIpIDA7CiAgICBDT1JFX0FERFIgY3VycmVudF9sb3csIGN1 cnJlbnRfaGlnaDsKICAKQEAgLTU5NjAsNyArNjAwNiwyNSBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0 ODg3IDEwMDY0NAogICAgICB7CiAgICAgICAgYmVzdF9sb3cgPSBjdXJyZW50X2xvdzsKICAgICAg ICBiZXN0X2hpZ2ggPSBjdXJyZW50X2hpZ2g7Ci1AQCAtNDY2MSw3ICs1MDE2LDcgQEAgZHdhcmYy X2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAq ZGllLAorQEAgLTQ0NzQsNyArNDgyOCw3IEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVs ZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAorIAlyZXR1cm47CisgCisgICAgICAg LyogR2V0IHBoeXNpY2FsIG5hbWUuICAqLworLSAgICAgIHBoeXNuYW1lID0gZHdhcmYyX2xpbmth Z2VfbmFtZSAoZGllLCBjdSk7CisrICAgICAgcGh5c25hbWUgPSBkd2FyZjJfcGh5c25hbWUgKGRp ZSwgY3UpOworIAorICAgICAgIC8qIFRoZSBuYW1lIGlzIGFscmVhZHkgYWxsb2NhdGVkIGFsb25n IHdpdGggdGhpcyBvYmpmaWxlLCBzbyB3ZSBkb24ndAorIAkgbmVlZCB0byBkdXBsaWNhdGUgaXQg Zm9yIHRoZSB0eXBlLiAgKi8KK0BAIC00NjE3LDcgKzQ5NzEsNyBAQCBkd2FyZjJfYWRkX21lbWJl cl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCisgICAg IHJldHVybjsKKyAKKyAgIC8qIEdldCB0aGUgbWFuZ2xlZCBuYW1lLiAgKi8KKy0gIHBoeXNuYW1l ID0gZHdhcmYyX2xpbmthZ2VfbmFtZSAoZGllLCBjdSk7CisrICBwaHlzbmFtZSA9IGR3YXJmMl9w aHlzbmFtZSAoZGllLCBjdSk7CisgCisgICAvKiBMb29rIHVwIG1lbWJlciBmdW5jdGlvbiBuYW1l IGluIGZpZWxkbGlzdC4gICovCisgICBmb3IgKGkgPSAwOyBpIDwgZmlwLT5uZm5maWVsZHM7IGkr KykKK0BAIC00NjYxLDcgKzUwMTUsNyBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZp ZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgICAvKiBUaGUgbmFtZSBpcyBh bHJlYWR5IGFsbG9jYXRlZCBhbG9uZyB3aXRoIHRoaXMgb2JqZmlsZSwgc28gd2UgZG9uJ3QKICAg ICAgIG5lZWQgdG8gZHVwbGljYXRlIGl0IGZvciB0aGUgdHlwZS4gICovCiAgICBmbnAtPnBoeXNu YW1lID0gcGh5c25hbWUgPyBwaHlzbmFtZSA6ICIiOwpAQCAtNTk2OSw3ICs2MDMzLDcgQEAgaW5k ZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgIHRoaXNfdHlwZSA9IHJlYWRfdHlwZV9kaWUg KGRpZSwgY3UpOwogICAgaWYgKHRoaXNfdHlwZSAmJiBUWVBFX0NPREUgKHRoaXNfdHlwZSkgPT0g VFlQRV9DT0RFX0ZVTkMpCiAgICAgIHsKLUBAIC00NzIxLDE4ICs1MDc2LDE4IEBAIGR3YXJmMl9h ZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRp ZSwKK0BAIC00NzIxLDE4ICs1MDc1LDE4IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3Qg ZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAgICAgewogICAgICAgIC8q IFN1cHBvcnQgdGhlIC5kZWJ1Z19sb2Mgb2Zmc2V0cyAqLwogICAgICAgIGlmIChhdHRyX2Zvcm1f aXNfYmxvY2sgKGF0dHIpKQpAQCAtNTk5NSw3ICs2MDU5LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5 NDg4NyAxMDA2NDQKICAgICB9CiAgfQogIAotQEAgLTQ4NDUsNyArNTIwMCw3IEBAIHF1aXJrX2dj Y19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlciAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQorQEAgLTQ4NDUsNyArNTE5OSw3IEBAIHF1aXJrX2djY19tZW1iZXJfZnVu Y3Rpb25fcG9pbnRlciAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogICAgICByZXR1cm4gTlVMTDsKICAKICAgIGRvbWFpbl90eXBlID0gVFlQRV9UQVJHRVRfVFlQ RSAoVFlQRV9GSUVMRF9UWVBFIChwZm5fdHlwZSwgMCkpOwpAQCAtNjAwNCw3ICs2MDY4LDcgQEAg aW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgIHNtYXNoX3RvX21ldGhvZF90eXBlICh0 eXBlLCBkb21haW5fdHlwZSwgVFlQRV9UQVJHRVRfVFlQRSAocGZuX3R5cGUpLAogIAkJCVRZUEVf RklFTERTIChwZm5fdHlwZSksIFRZUEVfTkZJRUxEUyAocGZuX3R5cGUpLAogIAkJCVRZUEVfVkFS QVJHUyAocGZuX3R5cGUpKTsKLUBAIC00ODk4LDcgKzUyNTMsNyBAQCByZWFkX3N0cnVjdHVyZV90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNDg5 OCw3ICs1MjUyLDcgQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwg dHlwZSwgY3UpOwogICAgICB9CiAgCkBAIC02MDEzLDcgKzYwNzcsNyBAQCBpbmRleCA0Y2NlMzZi Li5kMzk0ODg3IDEwMDY0NAogICAgSU5JVF9DUExVU19TUEVDSUZJQyAodHlwZSk7CiAgCiAgICBu YW1lID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwotQEAgLTQ5MDcsMTQgKzUyNjIsMTggQEAgcmVh ZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTQ5MDcsMTQgKzUyNjEsMTggQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGlmIChjdS0+bGFu Z3VhZ2UgPT0gbGFuZ3VhZ2VfY3BsdXMKICAJICB8fCBjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2Vf amF2YSkKICAJewpAQCAtNjAzNSw3ICs2MDk5LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAx MDA2NDQKICAJfQogICAgICB9CiAgCi1AQCAtNTEyNCw3ICs1NDgzLDcgQEAgcmVhZF9lbnVtZXJh dGlvbl90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitA QCAtNTEyNCw3ICs1NDgyLDcgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgcmV0dXJuIHNldF9kaWVfdHlw ZSAoZGllLCB0eXBlLCBjdSk7CiAgICAgIH0KICAKQEAgLTYwNDQsNyArNjEwOCw3IEBAIGluZGV4 IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgCiAgICBUWVBFX0NPREUgKHR5cGUpID0gVFlQRV9D T0RFX0VOVU07CiAgICBuYW1lID0gZHdhcmYyX2Z1bGxfbmFtZSAoZGllLCBjdSk7Ci1AQCAtNTE1 Miw1MSArNTUxMSw2IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUxNTIsNTEgKzU1MTAsNiBAQCByZWFkX2Vu dW1lcmF0aW9uX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogIH0KICAKQEAgLTYw OTYsNyArNjE2MCw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgLyogR2l2ZW4g YSBwb2ludGVyIHRvIGEgZGllIHdoaWNoIGJlZ2lucyBhbiBlbnVtZXJhdGlvbiwgcHJvY2VzcyBh bGwKICAgICB0aGUgZGllcyB0aGF0IGRlZmluZSB0aGUgbWVtYmVycyBvZiB0aGUgZW51bWVyYXRp b24sIGFuZCBjcmVhdGUgdGhlCiAgICAgc3ltYm9sIGZvciB0aGUgZW51bWVyYXRpb24gdHlwZS4K LUBAIC01Mjc0LDYgKzU1ODgsMjkgQEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9zY29wZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUyNzQsNiArNTU4Nywy OSBAQCBwcm9jZXNzX2VudW1lcmF0aW9uX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICBuZXdfc3ltYm9sIChkaWUsIHRoaXNfdHlwZSwgY3UpOwog IH0KICAKQEAgLTYxMjYsNyArNjE5MCw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0 CiAgLyogRXh0cmFjdCBhbGwgaW5mb3JtYXRpb24gZnJvbSBhIERXX1RBR19hcnJheV90eXBlIERJ RSBhbmQgcHV0IGl0IGluCiAgICAgdGhlIERJRSdzIHR5cGUgZmllbGQuICBGb3Igbm93LCB0aGlz IG9ubHkgaGFuZGxlcyBvbmUgZGltZW5zaW9uYWwKICAgICBhcnJheXMuICAqLwotQEAgLTUyODcs NyArNTYyNCw3IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTUyODcsNyArNTYyMyw3IEBAIHJlYWRfYXJyYXlfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IHR5 cGUgKmVsZW1lbnRfdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlOwogICAgc3RydWN0IHR5 cGUgKipyYW5nZV90eXBlcyA9IE5VTEw7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAt NjEzNSw3ICs2MTk5LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgIHN0cnVj dCBjbGVhbnVwICpiYWNrX3RvOwogICAgY2hhciAqbmFtZTsKICAKLUBAIC01MzM0LDE2ICs1Njcx LDExIEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTUzMzQsMTYgKzU2NzAsMTEgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICB0eXBlID0gZWxlbWVu dF90eXBlOwogIAogICAgaWYgKHJlYWRfYXJyYXlfb3JkZXIgKGRpZSwgY3UpID09IERXX09SRF9j b2xfbWFqb3IpCkBAIC02MTU3LDcgKzYyMjEsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEw MDY0NAogIAogICAgLyogVW5kZXJzdGFuZCBEd2FyZjIgc3VwcG9ydCBmb3IgdmVjdG9yIHR5cGVz IChsaWtlIHRoZXkgb2NjdXIgb24KICAgICAgIHRoZSBQb3dlclBDIHcvIEFsdGlWZWMpLiAgR2Nj IGp1c3QgYWRkcyBhbm90aGVyIGF0dHJpYnV0ZSB0byB0aGUKLUBAIC01NDEwLDEyICs1NzQyLDE0 IEBAIHJlYWRfc2V0X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKK0BAIC01NDEwLDEyICs1NzQxLDE0IEBAIHJlYWRfc2V0X3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHJldHVybiBzZXRfZGllX3R5cGUg KGRpZSwgc2V0X3R5cGUsIGN1KTsKICB9CiAgCkBAIC02MTc0LDcgKzYyMzgsNyBAQCBpbmRleCA0 Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAgIHN0 cnVjdCBzeW1ib2wgKnN5bTsKICAgIENPUkVfQUREUiBiYXNlID0gKENPUkVfQUREUikgMDsKLUBA IC01NDI1LDI1ICs1NzU5LDU1IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTQyNSwyNSArNTc1OCw1NSBAQCByZWFk X2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogICAgICB7CiAgICAgICAgLyogU3VwcG9ydCB0aGUgLmRlYnVnX2xvYyBvZmZzZXRzICovCiAg ICAgICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCkBAIC02MjM3LDcgKzYzMDEsNyBA QCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAkgIGF0dHIgPSBkd2FyZjJfYXR0ciAo Y2hpbGRfZGllLCBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiwgY3UpOwogIAkgIGlmIChhdHRy KQogIAkgICAgewotQEAgLTU0NjEsOCArNTgyNSwyNSBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU0NjEsOCArNTgy NCwyNSBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogIAkgICAgICBTWU1CT0xfVkFMVUVfQUREUkVTUyAoc3ltKSA9IGJhc2Ug KyBieXRlX29mZnNldDsKICAJICAgICAgYWRkX3N5bWJvbF90b19saXN0IChzeW0sICZnbG9iYWxf c3ltYm9scyk7CiAgCSAgICB9CkBAIC02MjYzLDcgKzYzMjcsNyBAQCBpbmRleCA0Y2NlMzZiLi5k Mzk0ODg3IDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTU1MzAsNyArNTkxMSw3IEBAIHJlYWRf bmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitA QCAtNTUzMCw3ICs1OTEwLDcgQEAgcmVhZF9uYW1lc3BhY2UgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBpZiAoaXNfYW5vbnltb3VzKQogIAl7CiAg CSAgY29uc3QgY2hhciAqcHJldmlvdXNfcHJlZml4ID0gZGV0ZXJtaW5lX3ByZWZpeCAoZGllLCBj dSk7CkBAIC02MjcyLDcgKzYzMzYsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAog IAl9CiAgICAgIH0KICAKLUBAIC01NTQ2LDIwICs1OTI3LDE1NSBAQCByZWFkX25hbWVzcGFjZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU1NDYsMjAg KzU5MjYsMTU1IEBAIHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCiAgICAgIH0KICB9CiAgCkBAIC02MzEyLDE4ICs2Mzc2LDE4IEBAIGlu ZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiArCiArICBpZiAoZGllX2lzX2RlY2xhcmF0aW9u IChkaWUsIGN1KSkKICsgICAgcmV0dXJuIE5VTEw7Ci0rCisgCistICAvKiBGSVhNRTogU3VwcG9y dCB0aGUgc2VwYXJhdGUgRm9ydHJhbiBtb2R1bGUgbmFtZXNwYWNlcy4gICovCiArICBtb2R1bGVf bmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKICsgIGlmICghbW9kdWxlX25hbWUpCiArICAg IGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywgXygiRFdfVEFHX21vZHVsZSBoYXMgbm8g bmFtZSwgb2Zmc2V0IDB4JXgiKSwKICsgICAgICAgICAgICAgICBkaWUtPm9mZnNldCk7CiArICB0 eXBlID0gaW5pdF90eXBlIChUWVBFX0NPREVfTU9EVUxFLCAwLCAwLCBtb2R1bGVfbmFtZSwgb2Jq ZmlsZSk7Ci0rCi0rICAvKiBDcmVhdGUgYSBjb250ZXh0IGZvciByZWFkaW5nIHRoZSBtb2R1bGUg dmFyaWFibGVzLiAgKi8KICAKLS0gIC8qIEZJWE1FOiBTdXBwb3J0IHRoZSBzZXBhcmF0ZSBGb3J0 cmFuIG1vZHVsZSBuYW1lc3BhY2VzLiAgKi8KKysgIC8qIENyZWF0ZSBhIGNvbnRleHQgZm9yIHJl YWRpbmcgdGhlIG1vZHVsZSB2YXJpYWJsZXMuICAqLworKwogKyAgbmV3ID0gcHVzaF9jb250ZXh0 ICgwLCAwKTsKLSAKKysKICsgIHNhdmVfZmlsZV9zeW1ib2xzID0gZmlsZV9zeW1ib2xzOwogKyAg ZmlsZV9zeW1ib2xzID0gTlVMTDsKICsgIHNhdmVfZ2xvYmFsX3N5bWJvbHMgPSBnbG9iYWxfc3lt Ym9sczsKQEAgLTY0MzEsNyArNjQ5NSw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0 CiAgfQogIAogIC8qIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgbmFtZXNwYWNlIHJlcHJlc2VudGVk IGJ5IERJRS4gIFNldAotQEAgLTU3MjQsMjkgKzYyNDAsMTEzIEBAIHJlYWRfdGFnX3N0cmluZ190 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTcy NCwyOSArNjIzOSwxMTMgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0g Z2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdl X3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0 cjsKQEAgLTY1NTksNyArNjYyMyw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAg ICBjaGFyX3R5cGUgPSBsYW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2VfZGVm biwgZ2RiYXJjaCk7CiAgICB0eXBlID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFyX3R5 cGUsIHJhbmdlX3R5cGUpOwogIAotQEAgLTU4NDEsNyArNjQ0MSw2IEBAIHN0YXRpYyBzdHJ1Y3Qg dHlwZSAqCitAQCAtNTg0MSw3ICs2NDQwLDYgQEAgc3RhdGljIHN0cnVjdCB0eXBlICoKICByZWFk X3R5cGVkZWYgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7 CiAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9IGN1LT5vYmpmaWxlOwpAQCAtNjU2Nyw3ICs2 NjMxLDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgIGNvbnN0IGNoYXIgKm5h bWUgPSBOVUxMOwogICAgc3RydWN0IHR5cGUgKnRoaXNfdHlwZTsKICAKLUBAIC01OTQ5LDggKzY1 NDgsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKK0BAIC01OTQ5LDggKzY1NDcsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0 eXBlICpiYXNlX3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHI7CkBAIC02NTc3LDcgKzY2NDEsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0 ODg3IDEwMDY0NAogICAgY2hhciAqbmFtZTsKICAgIAogICAgYmFzZV90eXBlID0gZGllX3R5cGUg KGRpZSwgY3UpOwotQEAgLTU5NjMsNDIgKzY1NjEsODkgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTk2Myw0MiAr NjU2MCw4OSBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKICAJCSAgICAgMCwgTlVMTCwgY3UtPm9iamZpbGUpOwogICAgICB9 CiAgCkBAIC02Njk2LDcgKzY3NjAsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAog IAogICAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKICAgIGlmIChuYW1lKQotQEAgLTY0 NjksNiArNzExNCw3IEBAIGxvYWRfcGFydGlhbF9kaWVzIChiZmQgKmFiZmQsIGdkYl9ieXRlICpi dWZmZXIsIGdkYl9ieXRlICppbmZvX3B0ciwKK0BAIC02NDY5LDYgKzcxMTMsNyBAQCBsb2FkX3Bh cnRpYWxfZGllcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqYnVmZmVyLCBnZGJfYnl0ZSAqaW5mb19w dHIsCiAgCSAgJiYgYWJicmV2LT50YWcgIT0gRFdfVEFHX2xleGljYWxfYmxvY2sKICAJICAmJiBh YmJyZXYtPnRhZyAhPSBEV19UQUdfdmFyaWFibGUKICAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19U QUdfbmFtZXNwYWNlCkBAIC02NzA0LDcgKzY3NjgsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3 IDEwMDY0NAogIAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR19tZW1iZXIpCiAgCXsKICAJICAv KiBPdGhlcndpc2Ugd2Ugc2tpcCB0byB0aGUgbmV4dCBzaWJsaW5nLCBpZiBhbnkuICAqLwotQEAg LTY2ODksOSArNzMzNSw2IEBAIHJlYWRfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9p bmZvICpwYXJ0X2RpZSwKK0BAIC02Njg5LDkgKzczMzQsNiBAQCByZWFkX3BhcnRpYWxfZGllIChz dHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCiAgCSAgaWYgKHBhcnRfZGllLT5kaXJu YW1lID09IE5VTEwpCiAgCSAgICBwYXJ0X2RpZS0+ZGlybmFtZSA9IERXX1NUUklORyAoJmF0dHIp OwogIAkgIGJyZWFrOwpAQCAtNjcxNCw3ICs2Nzc4LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4 NyAxMDA2NDQKICAJY2FzZSBEV19BVF9sb3dfcGM6CiAgCSAgaGFzX2xvd19wY19hdHRyID0gMTsK ICAJICBwYXJ0X2RpZS0+bG93cGMgPSBEV19BRERSICgmYXR0cik7Ci1AQCAtNjkyMyw3ICs3NTY2 LDggQEAgZml4dXBfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2Rp ZSwKK0BAIC02OTIzLDcgKzc1NjUsOCBAQCBmaXh1cF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRp YWxfZGllX2luZm8gKnBhcnRfZGllLAogICAgLyogSWYgd2UgZm91bmQgYSByZWZlcmVuY2UgYXR0 cmlidXRlIGFuZCB0aGUgRElFIGhhcyBubyBuYW1lLCB0cnkKICAgICAgIHRvIGZpbmQgYSBuYW1l IGluIHRoZSByZWZlcnJlZCB0byBESUUuICAqLwogIApAQCAtNjcyNCw3ICs2Nzg4LDcgQEAgaW5k ZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgewogICAgICAgIHN0cnVjdCBwYXJ0aWFs X2RpZV9pbmZvICpzcGVjX2RpZTsKICAKLUBAIC04MjY1LDEwICs4OTA5LDEyIEBAIHZhcl9kZWNv ZGVfbG9jYXRpb24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwK K0BAIC04MjY1LDEwICs4OTA4LDEyIEBAIHZhcl9kZWNvZGVfbG9jYXRpb24gKHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAgICAgIChpLmUuIHdoZW4gdGhlIHZh bHVlIG9mIGEgcmVnaXN0ZXIgb3IgbWVtb3J5IGxvY2F0aW9uIGlzCiAgICAgICByZWZlcmVuY2Vk LCBvciBhIHRocmVhZC1sb2NhbCBibG9jaywgZXRjLikuICBUaGVuIGFnYWluLCBpdCBtaWdodAog ICAgICAgbm90IGJlIHdvcnRod2hpbGUuICBJJ20gYXNzdW1pbmcgdGhhdCBpdCBpc24ndCB1bmxl c3MgcGVyZm9ybWFuY2UKQEAgLTY3MzksNyArNjgwMyw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4 ODcgMTAwNjQ0CiAgfQogIAogIC8qIEdpdmVuIGEgcG9pbnRlciB0byBhIERXQVJGIGluZm9ybWF0 aW9uIGVudHJ5LCBmaWd1cmUgb3V0IGlmIHdlIG5lZWQKLUBAIC04MjkwLDIxICs4OTM2LDMwIEBA IG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODI5MCwyMSArODkzNSwzMCBAQCBuZXdfc3ltYm9sIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogIAogICAgYmFzZWFkZHIgPSBBTk9GRlNFVCAob2JqZmlsZS0+c2VjdGlvbl9vZmZzZXRz LCBTRUNUX09GRl9URVhUIChvYmpmaWxlKSk7CiAgCkBAIC02NzY2LDcgKzY4MzAsNyBAQCBpbmRl eCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogKwogKyAgICAgIC8qIENhY2hlIHRoaXMgc3ltYm9s J3MgbmFtZSBhbmQgdGhlIG5hbWUncyBkZW1hbmdsZWQgZm9ybSAoaWYgYW55KS4gICovCiArCi0r ICAgICAgbGlua2FnZW5hbWUgPSBkd2FyZjJfbGlua2FnZV9uYW1lIChkaWUsIGN1KTsKKysgICAg ICBsaW5rYWdlbmFtZSA9IGR3YXJmMl9waHlzbmFtZSAoZGllLCBjdSk7CiArICAgICAgU1lNQk9M X1NFVF9OQU1FUyAoc3ltLCBsaW5rYWdlbmFtZSwgc3RybGVuIChsaW5rYWdlbmFtZSksIG9iamZp bGUpOwogKyAgICAgIGlmIChjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbikKICsJewpA QCAtNjc3Nyw3ICs2ODQxLDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAKICAg ICAgICAvKiBEZWZhdWx0IGFzc3VtcHRpb25zLgogICAgICAgICAgIFVzZSB0aGUgcGFzc2VkIHR5 cGUgb3IgZGVjb2RlIGl0IGZyb20gdGhlIGRpZS4gICovCi1AQCAtODQwMiw5ICs5MDU3LDI4IEBA IG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODQwMiw5ICs5MDU2LDI4IEBAIG5ld19zeW1ib2wgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiAgCSAgaWYgKGF0dHIpCiAgCSAgICB7CiAgCSAgICAgIHZhcl9kZWNvZGVfbG9jYXRpb24g KGF0dHIsIHN5bSwgY3UpOwpAQCAtNjgwNyw3ICs2ODcxLDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5 NDg4NyAxMDA2NDQKICAJICAgICAgZWxzZQogIAkJYWRkX3N5bWJvbF90b19saXN0IChzeW0sIGN1 LT5saXN0X2luX3Njb3BlKTsKICAJICAgIH0KLUBAIC04NTM0LDcgKzkyMDgsNyBAQCBuZXdfc3lt Ym9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTg1MzQsNyArOTIwNyw3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCSAg YWRkX3N5bWJvbF90b19saXN0IChzeW0sIGN1LT5saXN0X2luX3Njb3BlKTsKICAJICBicmVhazsK ICAJY2FzZSBEV19UQUdfZW51bWVyYXRvcjoKQEAgLTY4MTYsNyArNjg4MCw3IEBAIGluZGV4IDRj Y2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgCSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FU X2NvbnN0X3ZhbHVlLCBjdSk7CiAgCSAgaWYgKGF0dHIpCiAgCSAgICB7Ci1AQCAtODU1OCw2ICs5 MjMyLDE2IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODU1OCw2ICs5MjMxLDE2IEBAIG5ld19z eW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCiAgCSAgU1lNQk9MX0NMQVNTIChzeW0pID0gTE9DX1RZUEVERUY7CiAgCSAg YWRkX3N5bWJvbF90b19saXN0IChzeW0sICZnbG9iYWxfc3ltYm9scyk7CiAgCSAgYnJlYWs7CkBA IC02ODMzLDcgKzY4OTcsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAlkZWZh dWx0OgogIAkgIC8qIE5vdCBhIHRhZyB3ZSByZWNvZ25pemUuICBIb3BlZnVsbHkgd2UgYXJlbid0 IHByb2Nlc3NpbmcKICAJICAgICB0cmFzaCBkYXRhLCBidXQgc2luY2Ugd2UgbXVzdCBzcGVjaWZp Y2FsbHkgaWdub3JlIHRoaW5ncwotQEAgLTg1NzEsOCArOTI1NSw3IEBAIG5ld19zeW1ib2wgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCitAQCAtODU3MSw4ICs5MjU0LDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICAvKiBG b3IgdGhlIGJlbmVmaXQgb2Ygb2xkIHZlcnNpb25zIG9mIEdDQywgY2hlY2sgZm9yIGFub255bW91 cwogIAkgbmFtZXNwYWNlcyBiYXNlZCBvbiB0aGUgZGVtYW5nbGVkIG5hbWUuICAqLwogICAgICAg IGlmICghcHJvY2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8KQEAgLTY4NDMsNyArNjkwNyw3IEBA IGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgCWNwX3NjYW5fZm9yX2Fub255bW91c19u YW1lc3BhY2VzIChzeW0pOwogICAgICB9CiAgICByZXR1cm4gKHN5bSk7Ci1AQCAtODgyMywxMiAr OTUwNiwxOCBAQCByZWFkX3R5cGVfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCitAQCAtODgyMywxMiArOTUwNSwxOCBAQCByZWFkX3R5cGVfZGllIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIGNhc2UgRFdfVEFH X25hbWVzcGFjZToKICAgICAgICB0aGlzX3R5cGUgPSByZWFkX25hbWVzcGFjZV90eXBlIChkaWUs IGN1KTsKICAgICAgICBicmVhazsKQEAgLTY4NjIsNyArNjkyNiw3IEBAIGluZGV4IDRjY2UzNmIu LmQzOTQ4ODcgMTAwNjQ0CiAgICByZXR1cm4gdGhpc190eXBlOwogIH0KICAKLUBAIC04OTEwLDEw ICs5NTk5LDk3IEBAIGRldGVybWluZV9wcmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04OTEwLDEwICs5NTk4LDEwMCBAQCBkZXRlcm1pbmVfcHJl Zml4IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCSAgICAg U28gaXQgZG9lcyBub3QgbmVlZCBhIHByZWZpeC4gICovCiAgCSAgcmV0dXJuICIiOwogICAgICAg IGRlZmF1bHQ6CkBAIC02ODcxLDEwICs2OTM1LDEwIEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcg MTAwNjQ0CiAgICAgICAgfQogIH0KICAKLSsvKiBEZXRlcm1pbmVzIHRoZSBwcmVmaXggZm9yIGEg c3ltYm9sJ3MgcGh5c25hbWUuIFVubGlrZSBkZXRlcm1pbmVfcHJlZml4LAorKy8qIERldGVybWlu ZXMgdGhlIHByZWZpeCBmb3IgYSBzeW1ib2wncyBwaHlzbmFtZS4gIFVubGlrZSBkZXRlcm1pbmVf cHJlZml4LAogKyAgIHRoaXMgbWV0aG9kIGRvZXMgbm90IHNpbXBseSBsb29rIGF0IHRoZSBESUUn cyBpbW1lZGlhdGUgcGFyZW50LgogKyAgIEl0IHdpbGwgY29tcHV0ZSB0aGUgc3ltYm9sJ3MgcGh5 c25hbWUgYnkgc2Nhbm5pbmcgdGhyb3VnaCBhbGwgcGFyZW50Ci0rICAgRElFcyB1bnRpbCBpdCBn ZXRzIHRvIHRoZSBjb21waWxhdGlvbiB1bml0J3MgRElFLiAqLworKyAgIERJRXMgdW50aWwgaXQg Z2V0cyB0byB0aGUgY29tcGlsYXRpb24gdW5pdCdzIERJRS4gICovCiArCiArc3RhdGljIGNoYXIg KgogK3BoeXNuYW1lX3ByZWZpeCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQpAQCAtNjg4Myw2ICs2OTQ3LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2 NDQKICsgIHN0cnVjdCB1aV9maWxlICpidWY7CiArICBzdHJ1Y3QgZGllX2luZm8gKmQsICpzcGVj X2RpZTsKICsgIHN0cnVjdCBkd2FyZjJfY3UgKnNwZWNfY3U7CisrICBjaGFyICpuYW1lOwogKwog KyAgLyogQ29uc3RydWN0IGEgc3RhY2sgY29udGFpbmluZyBhbGwgb2YgdGhlIERJRSdzIHBhcmVu dHMuICBDYXV0aW9uCiArICAgICBtdXN0IGJlIG9ic2VydmVkIGZvciBkZWFsaW5nIHdpdGggRFdf QVRfc3BlY2lmaWNhdGlvbi4gKi8KQEAgLTY5MDQsNyArNjk2OSw3IEBAIGluZGV4IDRjY2UzNmIu LmQzOTQ4ODcgMTAwNjQ0CiArICAgICAgZCA9IGQtPnBhcmVudDsKICsgICAgfQogKwotKyAgLyog Tm93IHBvcCBhbGwgdGhlIGVsZW1lbnRzLCBwcmludGluZyB0aGVpciBuYW1lcyBhcyB3ZSBnbyAq LworKyAgLyogTm93IHBvcCBhbGwgdGhlIGVsZW1lbnRzLCBwcmludGluZyB0aGVpciBuYW1lcyBh cyB3ZSBnby4gICovCiArICBidWYgPSBtZW1fZmlsZW9wZW4gKCk7CiArICB3aGlsZSAoIVZFQ19l bXB0eSAoZGllX2luZm9fcCwgZGllX2xpc3QpKQogKyAgICB7CkBAIC02OTIwLDcgKzY5ODUsOSBA QCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogKwl9CiArICAgIH0KICsKLSsgIHJldHVy biB1aV9maWxlX29ic2F2ZXN0cmluZyAoYnVmLCAmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFj aywgJmxlbmd0aCk7CisrICBuYW1lID0gdWlfZmlsZV9vYnNhdmVzdHJpbmcgKGJ1ZiwgJmN1LT5v YmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssICZsZW5ndGgpOworKyAgdWlfZmlsZV9kZWxldGUgKGJ1 Zik7CisrICByZXR1cm4gbmFtZTsKICt9CiArCiArc3RhdGljIHZvaWQKQEAgLTY5NjEsOCArNzAy OCwxNiBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIC8qIFJldHVybiBhIG5ld2x5 LWFsbG9jYXRlZCBzdHJpbmcgZm9ybWVkIGJ5IGNvbmNhdGVuYXRpbmcgUFJFRklYIGFuZAogICAg IFNVRkZJWCB3aXRoIGFwcHJvcHJpYXRlIHNlcGFyYXRvci4gIElmIFBSRUZJWCBvciBTVUZGSVgg aXMgTlVMTCBvciBlbXB0eSwgdGhlbgogICAgIHNpbXBseSBjb3B5IHRoZSBTVUZGSVggb3IgUFJF RklYLCByZXNwZWN0aXZlbHkuICBJZiBPQlMgaXMgbm9uLW51bGwsCi1AQCAtODk2OSwxMSArOTc0 NSwxMDUgQEAgc3RhdGljIGNoYXIgKgotIGR3YXJmMl9saW5rYWdlX25hbWUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04OTYzLDE3ICs5NzQxLDExMSBA QCBzaWJsaW5nX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUpCisgICByZXR1cm4gZGllLT5zaWJs aW5nOworIH0KKyAKKy0vKiBHZXQgbGlua2FnZSBuYW1lIG9mIGEgZGllLCByZXR1cm4gTlVMTCBp ZiBub3QgZm91bmQuICAqLworKy8qIENvbnN0cnVjdCBhIHBoeXNuYW1lIGZvciB0aGUgZ2l2ZW4g RElFIGluIENVLiAqLworIAorIHN0YXRpYyBjaGFyICoKKy1kd2FyZjJfbGlua2FnZV9uYW1lIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisrZHdhcmYyX3BoeXNu YW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAg c3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICsgIGNoYXIgKm5hbWU7CkBAIC03MDE1LDExICs3MDkw LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICsJCWZwdXRzX3VuZmlsdGVyZWQg KCIgY29uc3QiLCBidWYpOwogKwkgICAgfQogKwl9Ci0gCi0tICBhdHRyID0gZHdhcmYyX2F0dHIg KGRpZSwgRFdfQVRfTUlQU19saW5rYWdlX25hbWUsIGN1KTsKLS0gIGlmIChhdHRyICYmIERXX1NU UklORyAoYXR0cikpCi0tICAgIHJldHVybiBEV19TVFJJTkcgKGF0dHIpOwotLSAgcmV0dXJuIGR3 YXJmMl9uYW1lIChkaWUsIGN1KTsKKysKICsgICAgICBuYW1lID0gdWlfZmlsZV9vYnNhdmVzdHJp bmcgKGJ1ZiwgJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCiArCQkJCSAgICZsZW5ndGgp OwogKyAgICAgIHVpX2ZpbGVfZGVsZXRlIChidWYpOwpAQCAtNzA1Niw3ICs3MTI3LDExIEBAIGlu ZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiArICAgICAgaWYgKG1vZHVsZV9uYW1lKQogKwl7 CiArCSAgY2hhciAqcmV0dmFsOwotKworIAorLSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX01JUFNfbGlua2FnZV9uYW1lLCBjdSk7CistICBpZiAoYXR0ciAmJiBEV19TVFJJTkcgKGF0 dHIpKQorLSAgICByZXR1cm4gRFdfU1RSSU5HIChhdHRyKTsKKy0gIHJldHVybiBkd2FyZjJfbmFt ZSAoZGllLCBjdSk7CiArCSAgLyogYF9fbW9kdWxlbmFtZV9NT0RfdmFyaWFibGVuYW1lMCcuICAq LwogKwkgIHJldHZhbCA9IG9ic3RhY2tfYWxsb2MgKCZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0 YWNrLAogKwkJCQkgIDIgKyBzdHJsZW4gKG1vZHVsZV9uYW1lKSArIDUgKyBzdHJsZW4gKG5hbWUp CkBAIC03MDcxLDcgKzcxNDYsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIH0K ICAKICAvKiBHZXQgbmFtZSBvZiBhIGRpZSwgcmV0dXJuIE5VTEwgaWYgbm90IGZvdW5kLiAgKi8K LUBAIC0xMDIwMCwxMSArMTEwNzAsMTEgQEAgZHdhcmYyX2dldF9yZWZfZGllX29mZnNldCAoc3Ry dWN0IGF0dHJpYnV0ZSAqYXR0cikKK0BAIC0xMDIwMCwxMSArMTEwNzIsMTEgQEAgZHdhcmYyX2dl dF9yZWZfZGllX29mZnNldCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKICAgIHJldHVybiAwOwog IH0KICAKQEAgLTcwODYsNyArNzE2MSw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0 CiAgewogICAgaWYgKGF0dHItPmZvcm0gPT0gRFdfRk9STV9zZGF0YSkKICAgICAgcmV0dXJuIERX X1NORCAoYXR0cik7Ci1AQCAtMTEwMDksOCArMTE4NzksNiBAQCBkd2FyZl9kZWNvZGVfbWFjcm9z IChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMDA5 LDggKzExODgxLDYgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICps aCwgdW5zaWduZWQgaW50IG9mZnNldCwKICB7CiAgICBnZGJfYnl0ZSAqbWFjX3B0ciwgKm1hY19l bmQ7CiAgICBzdHJ1Y3QgbWFjcm9fc291cmNlX2ZpbGUgKmN1cnJlbnRfZmlsZSA9IDA7CkBAIC03 MDk1LDcgKzcxNzAsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAogICAgaWYg KGR3YXJmMl9wZXJfb2JqZmlsZS0+bWFjaW5mby5idWZmZXIgPT0gTlVMTCkKICAgICAgewotQEAg LTExMDE4LDI5ICsxMTg4NiwxOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9o ZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMDE4LDI5ICsxMTg4OCwxOSBA QCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBp bnQgb2Zmc2V0LAogICAgICAgIHJldHVybjsKICAgICAgfQogIApAQCAtNzEzMCw3ICs3MjA1LDcg QEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgICAgIH0KICAKICAgICAgICBt YWNpbmZvX3R5cGUgPSByZWFkXzFfYnl0ZSAoYWJmZCwgbWFjX3B0cik7Ci1AQCAtMTEwNTEsOTIg KzExOTA5LDcgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwg dW5zaWduZWQgaW50IG9mZnNldCwKK0BAIC0xMTA1MSw5MiArMTE5MTEsNyBAQCBkd2FyZl9kZWNv ZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAog ICAgICAgICAgICAvKiBBIHplcm8gbWFjaW5mbyB0eXBlIGluZGljYXRlcyB0aGUgZW5kIG9mIHRo ZSBtYWNybwogICAgICAgICAgICAgICBpbmZvcm1hdGlvbi4gICovCiAgICAgICAgICBjYXNlIDA6 CkBAIC03MjI0LDcgKzcyOTksNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAog ICAgICAgICAgY2FzZSBEV19NQUNJTkZPX2RlZmluZToKICAgICAgICAgIGNhc2UgRFdfTUFDSU5G T191bmRlZjoKLUBAIC0xMTE1MSwzMSArMTE5MjQsMTkgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAo c3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKK0BAIC0xMTE1MSwz MSArMTE5MjYsMTkgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICps aCwgdW5zaWduZWQgaW50IG9mZnNldCwKICAgICAgICAgICAgICBtYWNfcHRyICs9IGJ5dGVzX3Jl YWQ7CiAgCiAgICAgICAgICAgICAgaWYgKCEgY3VycmVudF9maWxlKQpAQCAtNzI2Nyw3ICs3MzQy LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgICAgICAgfQogICAgICAg ICAgICBicmVhazsKICAKLUBAIC0xMTE4OSwyMiArMTE5NTAsOSBAQCBkd2FyZl9kZWNvZGVfbWFj cm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTEx MTg5LDIyICsxMTk1Miw5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRl ciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgICAgZmlsZSA9IHJlYWRfdW5z aWduZWRfbGViMTI4IChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVhZCk7CiAgICAgICAgICAgICAg bWFjX3B0ciArPSBieXRlc19yZWFkOwogIApAQCAtNzI5Myw3ICs3MzY4LDcgQEAgaW5kZXggNGNj ZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAK LUBAIC0xMTI1OCw3ICsxMjAwNiw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5l X2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTEyNTgsNyArMTIwMDgsNyBA QCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBp bnQgb2Zmc2V0LAogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQpA QCAtNzMwMiw3ICs3Mzc3LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICB9CiAg CiAgLyogQ2hlY2sgaWYgdGhlIGF0dHJpYnV0ZSdzIGZvcm0gaXMgYSBEV19GT1JNX2Jsb2NrKgot QEAgLTExMzE4LDYgKzEyMDY2LDM0IEBAIGF0dHJfZm9ybV9pc19jb25zdGFudCAoc3RydWN0IGF0 dHJpYnV0ZSAqYXR0cikKK0BAIC0xMTMxOCw2ICsxMjA2OCwzNCBAQCBhdHRyX2Zvcm1faXNfY29u c3RhbnQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCiAgICAgIH0KICB9CiAgCkBAIC03MzM3LDcg Kzc0MTIsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIHN0YXRpYyB2b2lkCiAg ZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1 Y3Qgc3ltYm9sICpzeW0sCiAgCQkJICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLUBAIC0xMTM0 NywzNSArMTIxMjMsMjUgQEAgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0 cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCitAQCAtMTEzNDcsMzUgKzEyMTI1LDI1 IEBAIGR3YXJmMl9zeW1ib2xfbWFya19jb21wdXRlZCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwg c3RydWN0IHN5bWJvbCAqc3ltLAogICAgICAgIFNZTUJPTF9DT01QVVRFRF9PUFMgKHN5bSkgPSAm ZHdhcmYyX2xvY2xpc3RfZnVuY3M7CiAgICAgICAgU1lNQk9MX0xPQ0FUSU9OX0JBVE9OIChzeW0p ID0gYmF0b247CiAgICAgIH0KQEAgLTczODgsNyArNzQ2Myw3IEBAIGluZGV4IDRjY2UzNmIuLmQz OTQ4ODcgMTAwNjQ0CiAgICAgIH0KICB9CiAgCi1AQCAtMTE2NjMsNiArMTI0MjksMzEgQEAgb2Zm c2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lkICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9y aHMpCitAQCAtMTE2NjMsNiArMTI0MzEsMzEgQEAgb2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2 b2lkICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCiAgICByZXR1cm4gb2ZzX2xocy0+ b2Zmc2V0ID09IG9mc19yaHMtPm9mZnNldDsKICB9CiAgCkBAIC03NDIwLDcgKzc0OTUsNyBAQCBp bmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIC8qIFNldCB0aGUgdHlwZSBhc3NvY2lhdGVk IHdpdGggRElFIHRvIFRZUEUuICBTYXZlIGl0IGluIENVJ3MgaGFzaAogICAgIHRhYmxlIGlmIG5l Y2Vzc2FyeS4gIEZvciBjb252ZW5pZW5jZSwgcmV0dXJuIFRZUEUuICAqLwogIAotQEAgLTExNjcx LDYgKzEyNDYyLDggQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTExNjcxLDYgKzEyNDY0LDgg QEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIHsKICAgIHN0cnVjdCBkd2FyZjJfb2Zmc2V0X2FuZF90 eXBlICoqc2xvdCwgb2ZzOwogIApAQCAtNzQyOSw3ICs3NTA0LDcgQEAgaW5kZXggNGNjZTM2Yi4u ZDM5NDg4NyAxMDA2NDQKICAgIGlmIChjdS0+dHlwZV9oYXNoID09IE5VTEwpCiAgICAgIHsKICAg ICAgICBnZGJfYXNzZXJ0IChjdS0+cGVyX2N1ICE9IE5VTEwpOwotQEAgLTExODEzLDIzICsxMjYw NiwxMyBAQCBzaG93X2R3YXJmMl9jbWQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKK0BAIC0x MTgxMywyMyArMTI2MDgsMTMgQEAgc2hvd19kd2FyZjJfY21kIChjaGFyICphcmdzLCBpbnQgZnJv bV90dHkpCiAgICBjbWRfc2hvd19saXN0IChzaG93X2R3YXJmMl9jbWRsaXN0LCBmcm9tX3R0eSwg IiIpOwogIH0KICAKQEAgLTc0NTcsNyArNzUzMiw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcg MTAwNjQ0CiAgfQogIAogIC8qIG11bm1hcCBkZWJ1ZyBzZWN0aW9ucyBmb3IgT0JKRklMRSwgaWYg bmVjZXNzYXJ5LiAgKi8KLUBAIC0xMTgzOCwxNSArMTI2MjEsMTUgQEAgc3RhdGljIHZvaWQKK0BA IC0xMTgzOCwxNSArMTI2MjMsMTUgQEAgc3RhdGljIHZvaWQKICBkd2FyZjJfcGVyX29iamZpbGVf ZnJlZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHZvaWQgKmQpCiAgewogICAgc3RydWN0IGR3 YXJmMl9wZXJfb2JqZmlsZSAqZGF0YSA9IGQ7CkBAIC03NDgyLDcgKzc1NTcsNyBAQCBpbmRleCA0 Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIH0KICAKICB2b2lkIF9pbml0aWFsaXplX2R3YXJmMl9y ZWFkICh2b2lkKTsKLUBAIC0xMTg1NCw2ICsxMjYzNyw3IEBAIHZvaWQgX2luaXRpYWxpemVfZHdh cmYyX3JlYWQgKHZvaWQpOworQEAgLTExODU0LDYgKzEyNjM5LDcgQEAgdm9pZCBfaW5pdGlhbGl6 ZV9kd2FyZjJfcmVhZCAodm9pZCk7CiAgdm9pZAogIF9pbml0aWFsaXplX2R3YXJmMl9yZWFkICh2 b2lkKQogIHsKQEAgLTc1MjMsNyArNzU5OCw3IEBAIGluZGV4IDZlNzlkNGEuLjE5OGJhZTMgMTAw NjQ0CiAgICBkZWZhdWx0X3N5bWZpbGVfb2Zmc2V0cywJLyogc3ltX29mZnNldHM6ICBUcmFuc2xh dGUgZXh0LiB0byBpbnQuIHJlbG9jYXRpb24gKi8KICAgIGVsZl9zeW1maWxlX3NlZ21lbnRzLAkJ Lyogc3ltX3NlZ21lbnRzOiBHZXQgc2VnbWVudCBpbmZvcm1hdGlvbiBmcm9tCiBkaWZmIC0tZ2l0 IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IDdlNDFkMzkuLjM3ZmZlMjMgMTAwNjQ0 CitpbmRleCAyOTI2NDY1Li40YzZkZTc4IDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwogKysrIGIv Z2RiL2V2YWwuYwogQEAgLTM5LDggKzM5LDEyIEBACkBAIC03NjY0LDcgKzc3MzksNyBAQCBpbmRl eCA3ZTQxZDM5Li4zN2ZmZTIzIDEwMDY0NAogIAl9CiAgICAgICAgZWxzZSBpZiAob3AgPT0gT1Bf VkFSX1ZBTFVFKQogIAl7Ci1AQCAtMTU0Miw3ICsxNTk0LDEwIEBAIGV2YWx1YXRlX3N1YmV4cF9z dGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTE1NDksNyArMTYwMSwxMCBA QCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAK ICAgICAgICAvKiBGaXJzdCBkZXRlcm1pbmUgdGhlIHR5cGUgY29kZSB3ZSBhcmUgZGVhbGluZyB3 aXRoLiAgKi8KICAgICAgICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwg cG9zLCBub3NpZGUpOwpAQCAtNzY3NSw3ICs3NzUwLDcgQEAgaW5kZXggN2U0MWQzOS4uMzdmZmUy MyAxMDA2NDQKICAgICAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAKICAgICAgICBpZiAo Y29kZSA9PSBUWVBFX0NPREVfUFRSKQotQEAgLTE3MDksNiArMTc2NCwzNyBAQCBldmFsdWF0ZV9z dWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0xNzE2LDYgKzE3 NzEsMzcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5 cGUsCiAgCSAgZXJyb3IgKF8oIm5vbi1wb2ludGVyLXRvLW1lbWJlciB2YWx1ZSB1c2VkIGluIHBv aW50ZXItdG8tbWVtYmVyIGNvbnN0cnVjdCIpKTsKICAJfQogIApAQCAtNzcxMyw3ICs3Nzg4LDcg QEAgaW5kZXggN2U0MWQzOS4uMzdmZmUyMyAxMDA2NDQKICAgICAgY2FzZSBCSU5PUF9DT05DQVQ6 CiAgICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChleHAsIHBvcywg bm9zaWRlKTsKICAgICAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4 cCwgcG9zLCBub3NpZGUpOwotQEAgLTE5ODAsMTMgKzIwNjYsMTkgQEAgZXZhbHVhdGVfc3ViZXhw X3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMTk4NywxMyArMjA3Mywx OSBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwK ICAgICAgICB7CiAgCWludCBzdWJzY3JpcHRfYXJyYXlbTUFYX0ZPUlRSQU5fRElNU107CiAgCWlu dCBhcnJheV9zaXplX2FycmF5W01BWF9GT1JUUkFOX0RJTVNdOwpAQCAtNzczMyw3ICs3ODA4LDcg QEAgaW5kZXggN2U0MWQzOS4uMzdmZmUyMyAxMDA2NDQKICAJdG1wX3R5cGUgPSBjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlIChhcmcxKSk7CiAgCW5kaW1lbnNpb25zID0gY2FsY19mNzdfYXJyYXlf ZGltcyAodHlwZSk7CiAgCi1AQCAtMjAxNiw2ICsyMTA4LDkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0 YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMjAyMyw2ICsyMTE1LDkgQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAg ICB1cHBlciA9IGY3N19nZXRfdXBwZXJib3VuZCAodG1wX3R5cGUpOwogIAkgICAgbG93ZXIgPSBm NzdfZ2V0X2xvd2VyYm91bmQgKHRtcF90eXBlKTsKICAKQEAgLTc3NDMsNyArNzgxOCw3IEBAIGlu ZGV4IDdlNDFkMzkuLjM3ZmZlMjMgMTAwNjQ0CiAgCSAgICBhcnJheV9zaXplX2FycmF5W25hcmdz IC0gaSAtIDFdID0gdXBwZXIgLSBsb3dlciArIDE7CiAgCiAgCSAgICAvKiBaZXJvLW5vcm1hbGl6 ZSBzdWJzY3JpcHRzIHNvIHRoYXQgb2Zmc2V0dGluZyB3aWxsIHdvcmsuICovCi1AQCAtMjAzNCwx MyArMjEyOSwyNSBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBl Y3RfdHlwZSwKK0BAIC0yMDQxLDEzICsyMTM2LDI1IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFy ZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogIAkgICAgICB0bXBfdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHRtcF90eXBlKSk7CiAgCSAgfQogIApAQCAtNzc3Myw3 ICs3ODQ4LDcgQEAgaW5kZXggN2U0MWQzOS4uMzdmZmUyMyAxMDA2NDQKICAKICAJLyogTGV0IHVz IG5vdyBwbGF5IGEgZGlydHkgdHJpY2s6IHdlIHdpbGwgdGFrZSBhcmcxIAogIAkgICB3aGljaCBp cyBhIHZhbHVlIG5vZGUgcG9pbnRpbmcgdG8gdGhlIHRvcG1vc3QgbGV2ZWwKLUBAIC0yMDUwLDcg KzIxNTcsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3Rf dHlwZSwKK0BAIC0yMDU3LDcgKzIxNjQsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0 cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJICAgcmV0dXJucyB0aGUgY29ycmVjdCB0eXBlIHZh bHVlICovCiAgCiAgCWRlcHJlY2F0ZWRfc2V0X3ZhbHVlX3R5cGUgKGFyZzEsIHRtcF90eXBlKTsK QEAgLTc3ODIsNyArNzg1Nyw3IEBAIGluZGV4IDdlNDFkMzkuLjM3ZmZlMjMgMTAwNjQ0CiAgICAg ICAgfQogIAogICAgICBjYXNlIEJJTk9QX0xPR0lDQUxfQU5EOgotQEAgLTI1OTEsNyArMjY5OCw3 IEBAIGV2YWx1YXRlX3N1YmV4cF9mb3JfYWRkcmVzcyAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwg aW50ICpwb3MsCitAQCAtMjU5OCw3ICsyNzA1LDcgQEAgZXZhbHVhdGVfc3ViZXhwX2Zvcl9hZGRy ZXNzIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywKICAgICAgICAoKnBvcykgKz0g NSArIEJZVEVTX1RPX0VYUF9FTEVNICh0ZW0gKyAxKTsKICAgICAgICB4ID0gdmFsdWVfYWdncmVn YXRlX2VsdCAoZXhwLT5lbHRzW3BjICsgMV0udHlwZSwKICAJCQkgICAgICAgJmV4cC0+ZWx0c1tw YyArIDNdLnN0cmluZywKQEAgLTc3OTEsNyArNzg2Niw3IEBAIGluZGV4IDdlNDFkMzkuLjM3ZmZl MjMgMTAwNjQ0CiAgICAgICAgaWYgKHggPT0gTlVMTCkKICAJZXJyb3IgKF8oIlRoZXJlIGlzIG5v IGZpZWxkIG5hbWVkICVzIiksICZleHAtPmVsdHNbcGMgKyAzXS5zdHJpbmcpOwogICAgICAgIHJl dHVybiB4OwotQEAgLTI2MzYsNyArMjc0Myw3IEBAIGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJj aW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTI2NDMsNyArMjc1MCw3IEBAIGV2YWx1 YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIHsKICAg IGVudW0gZXhwX29wY29kZSBvcDsKICAgIGludCBwYzsKQEAgLTc4MDAsNyArNzg3NSw3IEBAIGlu ZGV4IDdlNDFkMzkuLjM3ZmZlMjMgMTAwNjQ0CiAgICBzdHJ1Y3Qgc3ltYm9sICp2YXI7CiAgICBz dHJ1Y3QgdHlwZSAqdHlwZTsKICAKLUBAIC0yNjQ3LDEyICsyNzU0LDE3IEBAIGV2YWx1YXRlX3N1 YmV4cF93aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTI2NTQsMTIg KzI3NjEsMTcgQEAgZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKHN0cnVjdCBleHByZXNz aW9uICpleHAsCiAgICAgIHsKICAgICAgY2FzZSBPUF9WQVJfVkFMVUU6CiAgICAgICAgdmFyID0g ZXhwLT5lbHRzW3BjICsgMl0uc3ltYm9sOwpAQCAtNzgxOSw3ICs3ODk0LDcgQEAgaW5kZXggN2U0 MWQzOS4uMzdmZmUyMyAxMDA2NDQKICAJICByZXR1cm4gdmFsdWVfY2FzdCAobG9va3VwX3BvaW50 ZXJfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpLAogIAkJCSAgICAgdmFsKTsKICAJfQot QEAgLTI3MDQsOSArMjgxNiwxMyBAQCBldmFsdWF0ZV9zdWJleHBfZm9yX3NpemVvZiAoc3RydWN0 IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MpCitAQCAtMjcxMSw5ICsyODIzLDEzIEBAIGV2YWx1 YXRlX3N1YmV4cF9mb3Jfc2l6ZW9mIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcykK ICAKICAgICAgY2FzZSBPUF9WQVJfVkFMVUU6CiAgICAgICAgKCpwb3MpICs9IDQ7CkBAIC05Nzg3 LDcgKzk4NjIsNyBAQCBpbmRleCA3OWQzM2ZlLi5kM2I0ZmExIDEwMDY0NAogICAgIG9uY2UgZm9y IGVhY2gga25vd24gdGhyZWFkLiAgKi8KICB0eXBlZGVmIGludCAoKnRocmVhZF9jYWxsYmFja19m dW5jKSAoc3RydWN0IHRocmVhZF9pbmZvICosIHZvaWQgKik7CiBkaWZmIC0tZ2l0IGEvZ2RiL2dk YnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwotaW5kZXggMmY3N2RjYS4uODE0NjE3NSAxMDA2NDQK K2luZGV4IDJmNzdkY2EuLjkwYWJmMmMgMTAwNjQ0CiAtLS0gYS9nZGIvZ2RidHlwZXMuYwogKysr IGIvZ2RiL2dkYnR5cGVzLmMKIEBAIC0zOCw2ICszOCw5IEBACkBAIC0xMDE1OCw3ICsxMDIzMywx NyBAQCBpbmRleCAyZjc3ZGNhLi44MTQ2MTc1IDEwMDY0NAogICAgcmV0dXJuIHR5cGU7CiAgfQog IAotQEAgLTI4MjAsMzMgKzI5ODMsNDIgQEAgdHlwZV9wYWlyX2VxIChjb25zdCB2b2lkICppdGVt X2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCitAQCAtMjAwNCw3ICsyMTY3LDggQEAgcmFua19v bmVfdHlwZSAoc3RydWN0IHR5cGUgKnBhcm0sIHN0cnVjdCB0eXBlICphcmcpCisgICAgICAgc3dp dGNoIChUWVBFX0NPREUgKGFyZykpCisgCXsKKyAJY2FzZSBUWVBFX0NPREVfUFRSOgorLQkgIGlm IChUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZUEUgKHBhcm0pKSA9PSBUWVBFX0NPREVfVk9JRCkK KysJICBpZiAoVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFIChwYXJtKSkgPT0gVFlQRV9DT0RF X1ZPSUQKKysJICAgICAgJiYgVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFIChhcmcpKSAhPSBU WVBFX0NPREVfVk9JRCkKKyAJICAgIHJldHVybiBWT0lEX1BUUl9DT05WRVJTSU9OX0JBRE5FU1M7 CisgCSAgZWxzZQorIAkgICAgcmV0dXJuIHJhbmtfb25lX3R5cGUgKFRZUEVfVEFSR0VUX1RZUEUg KHBhcm0pLCAKK0BAIC0yODIwLDMzICsyOTg0LDQyIEBAIHR5cGVfcGFpcl9lcSAoY29uc3Qgdm9p ZCAqaXRlbV9saHMsIGNvbnN0IHZvaWQgKml0ZW1fcmhzKQogIH0KICAKICAvKiBBbGxvY2F0ZSB0 aGUgaGFzaCB0YWJsZSB1c2VkIGJ5IGNvcHlfdHlwZV9yZWN1cnNpdmUgdG8gd2FsawpAQCAtMTAy MTYsNyArMTAzMDEsNyBAQCBpbmRleCAyZjc3ZGNhLi44MTQ2MTc1IDEwMDY0NAogICAgICByZXR1 cm4gdHlwZTsKICAKICAgIC8qIFRoaXMgdHlwZSBzaG91bGRuJ3QgYmUgcG9pbnRpbmcgdG8gYW55 IHR5cGVzIGluIG90aGVyIG9iamZpbGVzOwotQEAgLTI4NjEsOCArMzAzMywxMCBAQCBjb3B5X3R5 cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0yODYxLDggKzMwMzQs MTAgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICBu ZXdfdHlwZSA9IGFsbG9jX3R5cGVfYXJjaCAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwogIAogICAg LyogV2UgbXVzdCBhZGQgdGhlIG5ldyB0eXBlIHRvIHRoZSBoYXNoIHRhYmxlIGltbWVkaWF0ZWx5 LCBpbiBjYXNlCkBAIC0xMDIyOSw3ICsxMDMxNCw3IEBAIGluZGV4IDJmNzdkY2EuLjgxNDYxNzUg MTAwNjQ0CiAgICBzdG9yZWQtPm9sZCA9IHR5cGU7CiAgICBzdG9yZWQtPm5ldyA9IG5ld190eXBl OwogICAgKnNsb3QgPSBzdG9yZWQ7Ci1AQCAtMjg3Myw2ICszMDQ3LDE5IEBAIGNvcHlfdHlwZV9y ZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTI4NzMsNiArMzA0OCwxOSBA QCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIFRZUEVf T0JKRklMRV9PV05FRCAobmV3X3R5cGUpID0gMDsKICAgIFRZUEVfT1dORVIgKG5ld190eXBlKS5n ZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7CiAgCkBAIC0xMDI0OSw3ICsxMDMzNCw3IEBA IGluZGV4IDJmNzdkY2EuLjgxNDYxNzUgMTAwNjQ0CiAgICBpZiAoVFlQRV9OQU1FICh0eXBlKSkK ICAgICAgVFlQRV9OQU1FIChuZXdfdHlwZSkgPSB4c3RyZHVwIChUWVBFX05BTUUgKHR5cGUpKTsK ICAgIGlmIChUWVBFX1RBR19OQU1FICh0eXBlKSkKLUBAIC0yODgxLDEyICszMDY4LDQ1IEBAIGNv cHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTI4ODEsMTIg KzMwNjksNDUgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs CiAgICBUWVBFX0lOU1RBTkNFX0ZMQUdTIChuZXdfdHlwZSkgPSBUWVBFX0lOU1RBTkNFX0ZMQUdT ICh0eXBlKTsKICAgIFRZUEVfTEVOR1RIIChuZXdfdHlwZSkgPSBUWVBFX0xFTkdUSCAodHlwZSk7 CiAgCkBAIC0xMDI5NSw3ICsxMDM4MCw3IEBAIGluZGV4IDJmNzdkY2EuLjgxNDYxNzUgMTAwNjQ0 CiAgICAgICAgVFlQRV9GSUVMRFMgKG5ld190eXBlKSA9IFhDQUxMT0MgKG5maWVsZHMsIHN0cnVj dCBmaWVsZCk7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IG5maWVsZHM7IGkrKykKICAJewotQEAg LTI4OTUsOCArMzExNSw4IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLAorQEAgLTI4OTUsOCArMzExNiw4IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLAogIAkgIFRZUEVfRklFTERfQklUU0laRSAobmV3X3R5cGUsIGkp ID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCBpKTsKICAJICBpZiAoVFlQRV9GSUVMRF9UWVBF ICh0eXBlLCBpKSkKICAJICAgIFRZUEVfRklFTERfVFlQRSAobmV3X3R5cGUsIGkpCkBAIC0xMDMw Niw3ICsxMDM5MSw3IEBAIGluZGV4IDJmNzdkY2EuLjgxNDYxNzUgMTAwNjQ0CiAgCSAgaWYgKFRZ UEVfRklFTERfTkFNRSAodHlwZSwgaSkpCiAgCSAgICBUWVBFX0ZJRUxEX05BTUUgKG5ld190eXBl LCBpKSA9IAogIAkgICAgICB4c3RyZHVwIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpKTsKLUBA IC0yOTE1LDYgKzMxMzUsMTYgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUsCitAQCAtMjkxNSw2ICszMTM2LDE2IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogIAkJCQkgIHhzdHJkdXAgKFRZUEVfRklFTERfU1RBVElD X1BIWVNOQU1FICh0eXBlLAogIAkJCQkJCQkJICAgICAgIGkpKSk7CiAgCSAgICAgIGJyZWFrOwpA QCAtMTAzMjMsNyArMTA0MDgsNyBAQCBpbmRleCAyZjc3ZGNhLi44MTQ2MTc1IDEwMDY0NAogIAkg ICAgZGVmYXVsdDoKICAJICAgICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywK ICAJCQkgICAgICBfKCJVbmV4cGVjdGVkIHR5cGUgZmllbGQgbG9jYXRpb24ga2luZDogJWQiKSwK LUBAIC0yOTIzLDE3ICszMTUzLDMwIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLAorQEAgLTI5MjMsMTcgKzMxNTQsMzAgQEAgY29weV90eXBlX3JlY3Vyc2l2 ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgCX0KICAgICAgfQogIApAQCAtMTAzNjAsNyAr MTA0NDUsNyBAQCBpbmRleCAyZjc3ZGNhLi44MTQ2MTc1IDEwMDY0NAogICAgLyogTWF5YmUgY29w eSB0aGUgdHlwZV9zcGVjaWZpYyBiaXRzLgogIAogICAgICAgTk9URSBkcm93LzIwMDUtMTItMDk6 IFdlIGRvIG5vdCBjb3B5IHRoZSBDKystc3BlY2lmaWMgYml0cyBsaWtlCi1AQCAtMjk1MSw2ICsz MTk0LDE3IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAor QEAgLTI5NTEsNiArMzE5NSwxNyBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwKICAgIHJldHVybiBuZXdfdHlwZTsKICB9CiAgCkBAIC0xMDM3OCw3ICsxMDQ2 Myw3IEBAIGluZGV4IDJmNzdkY2EuLjgxNDYxNzUgMTAwNjQ0CiAgLyogTWFrZSBhIGNvcHkgb2Yg dGhlIGdpdmVuIFRZUEUsIGV4Y2VwdCB0aGF0IHRoZSBwb2ludGVyICYgcmVmZXJlbmNlCiAgICAg dHlwZXMgYXJlIG5vdCBwcmVzZXJ2ZWQuCiAgICAgCi1AQCAtMjk3Myw2ICszMjI3LDIxNyBAQCBj b3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTI5NzMsNiArMzIyOCwyMTcg QEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgIHJldHVybiBuZXdfdHlw ZTsKICB9CiAgCkBAIC0xMDU5Niw3ICsxMDY4MSw3IEBAIGluZGV4IDJmNzdkY2EuLjgxNDYxNzUg MTAwNjQ0CiAgCiAgLyogSGVscGVyIGZ1bmN0aW9ucyB0byBpbml0aWFsaXplIGFyY2hpdGVjdHVy ZS1zcGVjaWZpYyB0eXBlcy4gICovCiAgCi1AQCAtMzQ2Myw2ICszOTI4LDExIEBAIHZvaWQKK0BA IC0zNDYzLDYgKzM5MjksMTEgQEAgdm9pZAogIF9pbml0aWFsaXplX2dkYnR5cGVzICh2b2lkKQog IHsKICAgIGdkYnR5cGVzX2RhdGEgPSBnZGJhcmNoX2RhdGFfcmVnaXN0ZXJfcG9zdF9pbml0IChn ZGJ0eXBlc19wb3N0X2luaXQpOwpAQCAtMTE1MzgsNyArMTE2MjMsNyBAQCBpbmRleCBjNjUwZTA3 Li42NjBmZGY2IDEwMDY0NAogIAkJCQkJCSBjb25zdCBkb21haW5fZW51bSk7CiAgCiBkaWZmIC0t Z2l0IGEvZ2RiL2xpbmVzcGVjLmMgYi9nZGIvbGluZXNwZWMuYwotaW5kZXggM2U5NDNhMS4uM2I4 OTU2YyAxMDA2NDQKK2luZGV4IDNlOTQzYTEuLmI5NmQ0MjUgMTAwNjQ0CiAtLS0gYS9nZGIvbGlu ZXNwZWMuYwogKysrIGIvZ2RiL2xpbmVzcGVjLmMKIEBAIC0zMCw2ICszMCw3IEBACkBAIC0xMTU4 NCwzNiArMTE2NjksMzMgQEAgaW5kZXggM2U5NDNhMS4uM2I4OTU2YyAxMDA2NDQKICAgIC8qIEtl ZXAgYW55IHRlbXBsYXRlIHBhcmFtZXRlcnMgKi8KICAgIGlmICgqcCA9PSAnPCcpCiAgICAgIHAg PSBmaW5kX3RlbXBsYXRlX25hbWVfZW5kIChwKTsKLUBAIC0xMjU3LDcgKzEyNzgsMTAgQEAgZGVj b2RlX2NvbXBvdW5kIChjaGFyICoqYXJncHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBjaGFyICoqKmNh bm9uaWNhbCwKK0BAIC0xMjU3LDYgKzEyNzgsOSBAQCBkZWNvZGVfY29tcG91bmQgKGNoYXIgKiph cmdwdHIsIGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAogICAgICAgIC8qIE1v dmUgcG9pbnRlciBhaGVhZCB0byBuZXh0IGRvdWJsZS1jb2xvbi4gICovCiAgICAgICAgd2hpbGUg KCpwICYmIChwWzBdICE9ICcgJykgJiYgKHBbMF0gIT0gJ1x0JykgJiYgKHBbMF0gIT0gJ1wnJykp CiAgCXsKLS0JICBpZiAocFswXSA9PSAnPCcpCi0rCSAgaWYgKGN1cnJlbnRfbGFuZ3VhZ2UtPmxh X2xhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzCi0rCSAgICAgICYmIHN0cm5jbXAgKHAsICJvcGVy YXRvciIsIDgpID09IDApCisrCSAgaWYgKGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdlID09 IGxhbmd1YWdlX2NwbHVzKQogKwkgICAgcCArPSBjcF92YWxpZGF0ZV9vcGVyYXRvciAocCk7Ci0r CSAgZWxzZSBpZiAocFswXSA9PSAnPCcpCisrCisgCSAgaWYgKHBbMF0gPT0gJzwnKQogIAkgICAg ewogIAkgICAgICB0ZW1wX2VuZCA9IGZpbmRfdGVtcGxhdGVfbmFtZV9lbmQgKHApOwotIAkgICAg ICBpZiAoIXRlbXBfZW5kKQotQEAgLTEzMzQsNiArMTM1OCwxNiBAQCBkZWNvZGVfY29tcG91bmQg KGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAorQEAg LTEzMzQsNiArMTM1OCwxNSBAQCBkZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdwdHIsIGludCBm dW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAogIAkgIHdoaWxlICgqcCAmJiAqcCAhPSAn ICcgJiYgKnAgIT0gJ1x0JyAmJiAqcCAhPSAnLCcgJiYgKnAgIT0gJzonKQogIAkgICAgcCsrOwog IAkgIC8qIEF0IHRoaXMgcG9pbnQgcC0+IiIuICBTdHJpbmcgZW5kZWQuICAqLwotKwkgIC8qIE5v cGUuIEMrKyBvcGVyYXRvcnMgY291bGQgaGF2ZSBzcGFjZXMgaW4gdGhlbQorKwkgIC8qIE5vcGUs IEMrKyBvcGVyYXRvcnMgY291bGQgaGF2ZSBzcGFjZXMgaW4gdGhlbQogKwkgICAgICgiZm9vOjpv cGVyYXRvciA8IiBvciAiZm9vOjpvcGVyYXRvciBkZWxldGUgW10iKS4KLSsJICAgICBJIGFwb2xv Z2l6ZSwgdGhpcyBpcyBhIGJpdCBoYWNreS4uLiAqLworKwkgICAgIEkgYXBvbG9naXplLCB0aGlz IGlzIGEgYml0IGhhY2t5Li4uICAqLwogKwkgIGlmIChjdXJyZW50X2xhbmd1YWdlLT5sYV9sYW5n dWFnZSA9PSBsYW5ndWFnZV9jcGx1cwotKwkgICAgICAmJiAqcCA9PSAnICcgJiYgcCAtIDggLSAq YXJncHRyICsgMSA+IDAKLSsJICAgICAgJiYgc3RybmNtcCAocCAtIDgsICJvcGVyYXRvciIsIDgp ID09IDApCisrCSAgICAgICYmICpwID09ICcgJyAmJiBwIC0gOCAtICphcmdwdHIgKyAxID4gMCkK ICsJICAgIHsKLSsJICAgICAgLyogVGhlIGFib3ZlIGxvb3AgaGFzIGFscmVhZHkgc3dhbGxvd2Vk ICJvcGVyYXRvciIgKi8KKysJICAgICAgLyogVGhlIGFib3ZlIGxvb3AgaGFzIGFscmVhZHkgc3dh bGxvd2VkICJvcGVyYXRvciIuICAqLwogKwkgICAgICBwICs9IGNwX3ZhbGlkYXRlX29wZXJhdG9y IChwIC0gOCkgLSA4OwogKwkgICAgfQogIAl9CiAgCiAgICAgICAgLyogQWxsb2NhdGUgb3VyIG93 biBjb3B5IG9mIHRoZSBzdWJzdHJpbmcgYmV0d2VlbiBhcmdwdHIgYW5kCi1AQCAtMTQwNyw2ICsx NDQxLDcgQEAgbG9va3VwX3ByZWZpeF9zeW0gKGNoYXIgKiphcmdwdHIsIGNoYXIgKnApCitAQCAt MTQwNyw2ICsxNDQwLDcgQEAgbG9va3VwX3ByZWZpeF9zeW0gKGNoYXIgKiphcmdwdHIsIGNoYXIg KnApCiAgewogICAgY2hhciAqcDE7CiAgICBjaGFyICpjb3B5OwpAQCAtMTE2MjEsNyArMTE3MDMs NyBAQCBpbmRleCAzZTk0M2ExLi4zYjg5NTZjIDEwMDY0NAogIAogICAgLyogRXh0cmFjdCB0aGUg Y2xhc3MgbmFtZS4gICovCiAgICBwMSA9IHA7Ci1AQCAtMTQyNSw3ICsxNDYwLDI2IEBAIGxvb2t1 cF9wcmVmaXhfc3ltIChjaGFyICoqYXJncHRyLCBjaGFyICpwKQorQEAgLTE0MjUsNyArMTQ1OSwy NiBAQCBsb29rdXBfcHJlZml4X3N5bSAoY2hhciAqKmFyZ3B0ciwgY2hhciAqcCkKICAgIC8qIEF0 IHRoaXMgcG9pbnQgcDEtPiI6OmluQTo6ZnVuIiwgcC0+ImluQTo6ZnVuIiBjb3B5LT4iQUFBIiwK ICAgICAgIGFyZ3B0ci0+ImluQTo6ZnVuIiAqLwogIApAQCAtMTE2NDksNyArMTE3MzEsMzYgQEAg aW5kZXggM2U5NDNhMS4uM2I4OTU2YyAxMDA2NDQKICB9CiAgCiAgLyogVGhpcyBmaW5kcyB0aGUg bWV0aG9kIENPUFkgaW4gdGhlIGNsYXNzIHdob3NlIHR5cGUgaXMgVCBhbmQgd2hvc2UKLUBAIC0x NzgwLDcgKzE4MzQsNyBAQCBzeW1ib2xfZm91bmQgKGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioq Y2Fub25pY2FsLCBjaGFyICpjb3B5LAorQEAgLTE0NzQsMjYgKzE1MjcsMTYgQEAgZmluZF9tZXRo b2QgKGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLCBjaGFyICpzYXZlZF9hcmcs CisgICAgIH0KKyAgIGVsc2UKKyAgICAgeworLSAgICAgIGNoYXIgKnRtcDsKKy0KKy0gICAgICBp ZiAoaXNfb3BlcmF0b3JfbmFtZSAoY29weSkpCistCXsKKy0JICB0bXAgPSAoY2hhciAqKSBhbGxv Y2EgKHN0cmxlbiAoY29weSArIDMpICsgOSk7CistCSAgc3RyY3B5ICh0bXAsICJvcGVyYXRvciAi KTsKKy0JICBzdHJjYXQgKHRtcCwgY29weSArIDMpOworLQl9CistICAgICAgZWxzZQorLQl0bXAg PSBjb3B5OworICAgICAgIGlmIChub3RfZm91bmRfcHRyKQorICAgICAgICAgKm5vdF9mb3VuZF9w dHIgPSAxOworLSAgICAgIGlmICh0bXBbMF0gPT0gJ34nKQorKyAgICAgIGlmIChjb3B5WzBdID09 ICd+JykKKyAJY3BsdXNwbHVzX2Vycm9yIChzYXZlZF9hcmcsCisgCQkJICJ0aGUgY2xhc3MgYCVz JyBkb2VzIG5vdCBoYXZlIGRlc3RydWN0b3IgZGVmaW5lZFxuIiwKKyAJCQkgU1lNQk9MX1BSSU5U X05BTUUgKHN5bV9jbGFzcykpOworICAgICAgIGVsc2UKKyAJY3BsdXNwbHVzX2Vycm9yIChzYXZl ZF9hcmcsCisgCQkJICJ0aGUgY2xhc3MgJXMgZG9lcyBub3QgaGF2ZSBhbnkgbWV0aG9kIG5hbWVk ICVzXG4iLAorLQkJCSBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltX2NsYXNzKSwgdG1wKTsKKysJCQkg U1lNQk9MX1BSSU5UX05BTUUgKHN5bV9jbGFzcyksIGNvcHkpOworICAgICB9CisgfQorIAorQEAg LTE3ODAsNyArMTgyMyw3IEBAIHN5bWJvbF9mb3VuZCAoaW50IGZ1bmZpcnN0bGluZSwgY2hhciAq KipjYW5vbmljYWwsIGNoYXIgKmNvcHksCiAgCXsKICAJICBzdHJ1Y3QgYmxvY2t2ZWN0b3IgKmJ2 ID0gQkxPQ0tWRUNUT1IgKFNZTUJPTF9TWU1UQUIgKHN5bSkpOwogIAkgIHN0cnVjdCBibG9jayAq YiA9IEJMT0NLVkVDVE9SX0JMT0NLIChidiwgU1RBVElDX0JMT0NLKTsKQEAgLTEyNTY1LDcgKzEy Njc2LDcgQEAgaW5kZXggMDAwMDAwMC4uNTY1NDU0NgogKyAgICAgICAgcmV0dXJuIHJlc3VsdAog ZGlmZiAtLWdpdCBhL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkgYi9nZGIvcHl0 aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXgg MDAwMDAwMC4uMzlmODI0NgoraW5kZXggMDAwMDAwMC4uYjc5MGE1NAogLS0tIC9kZXYvbnVsbAog KysrIGIvZ2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weQogQEAgLTAsMCArMSwxMTIg QEAKQEAgLTEyNjAxLDcgKzEyNzEyLDcgQEAgaW5kZXggMDAwMDAwMC4uMzlmODI0NgogKwogKyAg ICAgICAgc3RyZWFtLndyaXRlIChzeW0ucHJpbnRfbmFtZSArICI9IikKICsgICAgICAgIHRyeToK LSsgICAgICAgICAgICB2YWwgPSBzZWxmLmZyYW1lLnJlYWRfdmFyIChzeW0pCisrICAgICAgICAg ICAgdmFsID0gc2VsZi5yZWFkX3ZhciAoc3ltKQogKyAgICAgICAgICAgIGlmIHZhbCAhPSBOb25l OgogKyAgICAgICAgICAgICAgICB2YWwgPSBzdHIgKHZhbCkKICsgICAgICAgICMgRklYTUU6IHdv dWxkIGJlIG5pY2UgdG8gaGF2ZSBhIG1vcmUgcHJlY2lzZSBleGNlcHRpb24gaGVyZS4KQEAgLTEy NjQ2LDIxICsxMjc1NywyMSBAQCBpbmRleCAwMDAwMDAwLi4zOWY4MjQ2CiArICAgICMgRklYTUU6 IHRoaXMgc2hvdWxkIHByb2JhYmx5IGp1c3QgYmUgYSBtZXRob2Qgb24gZ2RiLkZyYW1lLgogKyAg ICAjIEJ1dCB0aGVuIHdlIG5lZWQgc3RyZWFtIHdyYXBwZXJzLgogKyAgICBkZWYgZGVzY3JpYmUg KHNlbGYsIHN0cmVhbSwgZnVsbCk6Ci0rICAgICAgICBpZiBzZWxmLmZyYW1lLnR5cGUgKCkgPT0g Z2RiLkRVTU1ZX0ZSQU1FOgorKyAgICAgICAgaWYgc2VsZi50eXBlICgpID09IGdkYi5EVU1NWV9G UkFNRToKICsgICAgICAgICAgICBzdHJlYW0ud3JpdGUgKCIgPGZ1bmN0aW9uIGNhbGxlZCBmcm9t IGdkYj5cbiIpCi0rICAgICAgICBlbGlmIHNlbGYuZnJhbWUudHlwZSAoKSA9PSBnZGIuU0lHVFJB TVBfRlJBTUU6CisrICAgICAgICBlbGlmIHNlbGYudHlwZSAoKSA9PSBnZGIuU0lHVFJBTVBfRlJB TUU6CiArICAgICAgICAgICAgc3RyZWFtLndyaXRlICgiIDxzaWduYWwgaGFuZGxlciBjYWxsZWQ+ XG4iKQogKyAgICAgICAgZWxzZToKLSsgICAgICAgICAgICBzYWwgPSBzZWxmLmZyYW1lLmZpbmRf c2FsICgpCi0rICAgICAgICAgICAgcGMgPSBzZWxmLmZyYW1lLnBjICgpCi0rICAgICAgICAgICAg bmFtZSA9IHNlbGYuZnJhbWUubmFtZSAoKQorKyAgICAgICAgICAgIHNhbCA9IHNlbGYuZmluZF9z YWwgKCkKKysgICAgICAgICAgICBwYyA9IHNlbGYucGMgKCkKKysgICAgICAgICAgICBuYW1lID0g c2VsZi5uYW1lICgpCiArICAgICAgICAgICAgaWYgbm90IG5hbWU6CiArICAgICAgICAgICAgICAg IG5hbWUgPSAiPz8iCiArICAgICAgICAgICAgaWYgcGMgIT0gc2FsLnBjIG9yIG5vdCBzYWwuc3lt dGFiOgogKyAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGUgKCIgMHglMDh4IGluIiAlIHBjKQog KyAgICAgICAgICAgIHN0cmVhbS53cml0ZSAoIiAiICsgbmFtZSArICIgKCIpCiArCi0rICAgICAg ICAgICAgZnVuYyA9IHNlbGYuZnJhbWUuZnVuY3Rpb24gKCkKKysgICAgICAgICAgICBmdW5jID0g c2VsZi5mdW5jdGlvbiAoKQogKyAgICAgICAgICAgIHNlbGYucHJpbnRfZnJhbWVfYXJncyAoc3Ry ZWFtLCBmdW5jKQogKwogKyAgICAgICAgICAgIHN0cmVhbS53cml0ZSAoIikiKQpAQCAtMTI2Njks NyArMTI3ODAsNyBAQCBpbmRleCAwMDAwMDAwLi4zOWY4MjQ2CiArICAgICAgICAgICAgICAgIHN0 cmVhbS53cml0ZSAoIiBhdCAiICsgc2FsLnN5bXRhYi5maWxlbmFtZSkKICsgICAgICAgICAgICAg ICAgc3RyZWFtLndyaXRlICgiOiIgKyBzdHIgKHNhbC5saW5lKSkKICsKLSsgICAgICAgICAgICBp ZiBub3Qgc2VsZi5mcmFtZS5uYW1lICgpIG9yIChub3Qgc2FsLnN5bXRhYiBvciBub3Qgc2FsLnN5 bXRhYi5maWxlbmFtZSk6CisrICAgICAgICAgICAgaWYgbm90IHNlbGYubmFtZSAoKSBvciAobm90 IHNhbC5zeW10YWIgb3Igbm90IHNhbC5zeW10YWIuZmlsZW5hbWUpOgogKyAgICAgICAgICAgICAg ICBsaWIgPSBnZGIuc29saWJfYWRkcmVzcyAocGMpCiArICAgICAgICAgICAgICAgIGlmIGxpYjoK ICsgICAgICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZSAoIiBmcm9tICIgKyBsaWIpCkBAIC0x NzkwMyw3ICsxODAxNCw3IEBAIGluZGV4IDQ5YzA0MzcuLjg0YTQ3NmUgMTAwNjQ0CiArICByZXR1 cm4gMTsKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS12YWx1ZS5jIGIvZ2RiL3B5dGhv bi9weS12YWx1ZS5jCi1pbmRleCA3MTRhYTExLi45ZmExYzQ0IDEwMDY0NAoraW5kZXggNThiY2Vl My4uYjJlN2I3ZCAxMDA2NDQKIC0tLSBhL2dkYi9weXRob24vcHktdmFsdWUuYwogKysrIGIvZ2Ri L3B5dGhvbi9weS12YWx1ZS5jCiBAQCAtMjUsNiArMjUsNyBAQApAQCAtMTc5MjUsNyArMTgwMzYs NyBAQCBpbmRleCA3MTRhYTExLi45ZmExYzQ0IDEwMDY0NAogICNkZWZpbmUgYnVpbHRpbl90eXBl X3B5Ym9vbCBcCiAgICBsYW5ndWFnZV9ib29sX3R5cGUgKHB5dGhvbl9sYW5ndWFnZSwgcHl0aG9u X2dkYmFyY2gpCiAgCi1AQCAtOTAyLDcgKzkwNywzNCBAQCBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0 aG9uIChQeU9iamVjdCAqb2JqKQorQEAgLTkxMyw3ICs5MTgsMzQgQEAgY29udmVydF92YWx1ZV9m cm9tX3B5dGhvbiAoUHlPYmplY3QgKm9iaikKICAJewogIAkgIExPTkdFU1QgbCA9IFB5TG9uZ19B c0xvbmdMb25nIChvYmopOwogIApAQCAtMTc5NjEsNyArMTgwNzIsNyBAQCBpbmRleCA3MTRhYTEx Li45ZmExYzQ0IDEwMDY0NAogIAkgICAgdmFsdWUgPSB2YWx1ZV9mcm9tX2xvbmdlc3QgKGJ1aWx0 aW5fdHlwZV9weWxvbmcsIGwpOwogIAl9CiAgICAgICAgZWxzZSBpZiAoUHlGbG9hdF9DaGVjayAo b2JqKSkKLUBAIC05NjEsNiArOTkzLDI1IEBAIGdkYnB5X2hpc3RvcnkgKFB5T2JqZWN0ICpzZWxm LCBQeU9iamVjdCAqYXJncykKK0BAIC05NzIsNiArMTAwNCwyNSBAQCBnZGJweV9oaXN0b3J5IChQ eU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiAgICByZXR1cm4gdmFsdWVfdG9fdmFsdWVf b2JqZWN0IChyZXNfdmFsKTsKICB9CiAgCkBAIC0xNzk4Nyw3ICsxODA5OCw3IEBAIGluZGV4IDcx NGFhMTEuLjlmYTFjNDQgMTAwNjQ0CiAgdm9pZAogIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2 b2lkKQogIHsKLUBAIC05NzEsNiArMTAyMiw4IEBAIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2 b2lkKQorQEAgLTk4Miw2ICsxMDMzLDggQEAgZ2RicHlfaW5pdGlhbGl6ZV92YWx1ZXMgKHZvaWQp CiAgICBQeU1vZHVsZV9BZGRPYmplY3QgKGdkYl9tb2R1bGUsICJWYWx1ZSIsIChQeU9iamVjdCAq KSAmdmFsdWVfb2JqZWN0X3R5cGUpOwogIAogICAgdmFsdWVzX2luX3B5dGhvbiA9IE5VTEw7CkBA IC0xODc0OSw3ICsxODg2MCw3IEBAIGluZGV4IDZjZmFhODUuLjY4YWFkYzAgMTAwNjQ0CiAgCiAg ZXh0ZXJuIGluaXRpYWxpemVfZmlsZV9mdHlwZSBfaW5pdGlhbGl6ZV9zdnI0X3NvbGliOyAvKiAt V21pc3NpbmctcHJvdG90eXBlcyAqLwogZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi5jIGIvZ2RiL3Nv bGliLmMKLWluZGV4IGM3ZmQwZmMuLjZmMzE4NTIgMTAwNjQ0CitpbmRleCBhMmFkMGM0Li4zNTc0 ZTYyIDEwMDY0NAogLS0tIGEvZ2RiL3NvbGliLmMKICsrKyBiL2dkYi9zb2xpYi5jCiBAQCAtMTEy NywxMyArMTEyNywxMiBAQCBzaG93X2F1dG9fc29saWJfYWRkIChzdHJ1Y3QgdWlfZmlsZSAqZmls ZSwgaW50IGZyb21fdHR5LApAQCAtMjE2OTUsMTAgKzIxODA2LDMwIEBAIGluZGV4IDQwOTVjY2Yu LjAzYzA3ZDUgMTAwNjQ0CiArZ2RiX3Rlc3QgImJyZWFrICokZnVuYzJfbmFtZSIgXAogICAgICAi QnJlYWtwb2ludCAkZGVjaW1hbCBhdCAweDIuLi4uOiBmaWxlIC4qIgogZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL2NwbHVzZnVuY3MuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9j cGx1c2Z1bmNzLmNjCi1pbmRleCA3ZjAzM2Q2Li4xYTUwYTMyIDEwMDY0NAoraW5kZXggN2YwMzNk Ni4uMTFkYmEwNiAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NwbHVzZnVuY3Mu Y2MKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NwbHVzZnVuY3MuY2MKLUBAIC0xOTEsNiAr MTkxLDEyIEBAIGNoYXIgKglkbV90eXBlX2NoYXJfc3RhciAoY2hhciAqIHApCQl7IHJldHVybiBw OyB9CitAQCAtNDYsNyArNDYsOSBAQCBwdWJsaWM6CisgICB2b2lkICBvcGVyYXRvciBbXSAgICAg KGZvbyYpOworICAgdm9pZCAgb3BlcmF0b3IgKCkgICAgIChmb28mKTsKKyAgIHZvaWQqIG9wZXJh dG9yIG5ldyAgICAoc2l6ZV90KSB0aHJvdyAoKTsKKysgIHZvaWQqIG9wZXJhdG9yIG5ld1tdICAo c2l6ZV90KSB0aHJvdyAoKTsKKyAgIHZvaWQgIG9wZXJhdG9yIGRlbGV0ZSAodm9pZCAqKTsKKysg IHZvaWQgIG9wZXJhdG9yIGRlbGV0ZVtdICh2b2lkICopOworICAgLyoqLyAgb3BlcmF0b3IgaW50 ICAgICgpOworICAgLyoqLyAgb3BlcmF0b3IgY2hhciogICgpOworIAorQEAgLTExNSw3ICsxMTcs OSBAQCB2b2lkICBmb286Om9wZXJhdG9yIC0+KiAgICAoZm9vJiBhZm9vKSB7IGFmb28uaWZvbyA9 IDA7IH0KKyB2b2lkICBmb286Om9wZXJhdG9yIFtdICAgICAoZm9vJiBhZm9vKSB7IGFmb28uaWZv byA9IDA7IH0KKyB2b2lkICBmb286Om9wZXJhdG9yICgpICAgICAoZm9vJiBhZm9vKSB7IGFmb28u aWZvbyA9IDA7IH0KKyB2b2lkKiBmb286Om9wZXJhdG9yIG5ldyAgICAoc2l6ZV90IGl2YWwpIHRo cm93ICgpIHsgaXZhbCA9IDA7IHJldHVybiAwOyB9Cisrdm9pZCogZm9vOjpvcGVyYXRvciBuZXdb XSAgICAoc2l6ZV90IGl2YWwpIHRocm93ICgpIHsgaXZhbCA9IDA7IHJldHVybiAwOyB9Cisgdm9p ZCAgZm9vOjpvcGVyYXRvciBkZWxldGUgKHZvaWQgKnB0cikgeyBwdHIgPSAwOyB9Cisrdm9pZCAg Zm9vOjpvcGVyYXRvciBkZWxldGVbXSAodm9pZCAqcHRyKSB7IHB0ciA9IDA7IH0KKyAvKiovICBm b286Om9wZXJhdG9yIGludCAgICAoKSB7IHJldHVybiAwOyB9CisgLyoqLyAgZm9vOjpvcGVyYXRv ciBjaGFyKiAgKCkgeyByZXR1cm4gMDsgfQorIAorQEAgLTE5MSw2ICsxOTUsMTIgQEAgY2hhciAq CWRtX3R5cGVfY2hhcl9zdGFyIChjaGFyICogcCkJCXsgcmV0dXJuIHA7IH0KICBpbnQJZG1fdHlw ZV9mb29fcmVmIChmb28gJiBmb28pCQl7IHJldHVybiBmb28uaWZvbzsgfQogIGludCAqCWRtX3R5 cGVfaW50X3N0YXIgKGludCAqIHApCQl7IHJldHVybiBwOyB9CiAgbG9uZyAqCWRtX3R5cGVfbG9u Z19zdGFyIChsb25nICogcCkJCXsgcmV0dXJuIHA7IH0KQEAgLTIxNzEyLDExICsyMTg0MywxNSBA QCBpbmRleCA3ZjAzM2Q2Li4xYTUwYTMyIDEwMDY0NAogK3R5cGVkZWYgaW50IG15aW50OwogK2lu dAlkbV90eXBlX3R5cGVkZWYgKG15aW50IGkpCQl7IHJldHVybiBpOyB9CiBkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3BsdXNmdW5jcy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5j cC9jcGx1c2Z1bmNzLmV4cAotaW5kZXggNWUwODc2OC4uOGM4ZTAzOCAxMDA2NDQKK2luZGV4IDVl MDg3NjguLjEwZmZkZjAgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGx1c2Z1 bmNzLmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3BsdXNmdW5jcy5leHAKLUBAIC02 Niw5ICs2NiwyNSBAQCBzZXQgZG1fdHlwZV91bnNpZ25lZF9pbnQJInVuc2lnbmVkIgotIHNldCBk bV90eXBlX3ZvaWQJCSIiCitAQCAtNjMsMTIgKzYzLDI4IEBAIHNldCBkbV90eXBlX2Zvb19yZWYg CQkiZm9vJiIKKyBzZXQgZG1fdHlwZV9pbnRfc3RhcgkJImludCoiCisgc2V0IGRtX3R5cGVfbG9u Z19zdGFyCQkibG9uZyoiCisgc2V0IGRtX3R5cGVfdW5zaWduZWRfaW50CSJ1bnNpZ25lZCIKKy1z ZXQgZG1fdHlwZV92b2lkCQkiIgorK3NldCBkbV90eXBlX3ZvaWQJCSJ2b2lkIgogIHNldCBkbV90 eXBlX3ZvaWRfc3RhcgkJInZvaWQqIgogIAogKyMgU29tZSBvdGhlciB2YWdhcmllcyBvZiBHREIn cyB0eXBlIHByaW50aW5nIG1hY2hpbmVyeS4gIFRoZSBpbnRlZ2VyIHR5cGVzCkBAIC0yMTc0MSw3 ICsyMTg3Niw3IEBAIGluZGV4IDVlMDg3NjguLjhjOGUwMzggMTAwNjQ0CiAgICAgIGdsb2JhbCBk bV90eXBlX2NoYXJfc3RhcgogICAgICBnbG9iYWwgZG1fdHlwZV9jaGFyX3N0YXJfcXVvdGVkCiAg ICAgIGdsb2JhbCBkbV90eXBlX2Zvb19yZWYKLUBAIC03Nyw2ICs5MywxMSBAQCBwcm9jIHByb2Jl X2RlbWFuZ2xlciB7IH0geworQEAgLTc3LDggKzkzLDEzIEBAIHByb2MgcHJvYmVfZGVtYW5nbGVy IHsgfSB7CiAgICAgIGdsb2JhbCBkbV90eXBlX3Vuc2lnbmVkX2ludAogICAgICBnbG9iYWwgZG1f dHlwZV92b2lkCiAgICAgIGdsb2JhbCBkbV90eXBlX3ZvaWRfc3RhcgpAQCAtMjE3NTEsMTMgKzIx ODg2LDE2IEBAIGluZGV4IDVlMDg3NjguLjhjOGUwMzggMTAwNjQ0CiArICAgIGdsb2JhbCBkbV90 eXBlX3Vuc2lnbmVkX2xvbmcKICsgICAgZ2xvYmFsIGRtX3R5cGVfdHlwZWRlZgogIAotICAgICBz ZW5kX2dkYiAicHJpbnQgJidmb286Om9wZXJhdG9yLChmb28mKSdcbiIKKy0gICAgc2VuZF9nZGIg InByaW50ICYnZm9vOjpvcGVyYXRvciwoZm9vJiknXG4iCisrICAgIHNlbmRfZ2RiICJwcmludCAm Zm9vOjpvcGVyYXRvciwoZm9vJilcbiIKICAgICAgZ2RiX2V4cGVjdCB7CisgCS1yZSAiLipmb286 Om9wZXJhdG9yLCBcXCguKmZvby4qJi4qXFwpLipcclxuJGdkYl9wcm9tcHQgJCIgeworIAkgICAg IyB2MiBkZW1hbmdsZXIKIEBAIC05Nyw2ICsxMTgsMjYgQEAgcHJvYyBwcm9iZV9kZW1hbmdsZXIg eyB9IHsKICAJfQogICAgICB9CiAgCi0rICAgIHNlbmRfZ2RiICJwcmludCAmJ2Zvbzo6b3BlcmF0 b3IgY2hhciooKSdcbiIKKysgICAgc2VuZF9nZGIgInByaW50ICZmb286Om9wZXJhdG9yIGNoYXIq KCRkbV90eXBlX3ZvaWQpXG4iCiArICAgIGdkYl9leHBlY3QgewogKwktcmUgIi4qZm9vOjpvcGVy YXRvciBjaGFyIFxcKlxcKHZvaWRcXCkuKlxyXG4kZ2RiX3Byb21wdCAkIiB7CiArCSAgICAjIHYy IGRlbWFuZ2xlciBvciBHREIgdHlwZSBwcmludGVyCkBAIC0yMTg5NCw3ICsyMjAzMiw1MCBAQCBp bmRleCA1ZTA4NzY4Li44YzhlMDM4IDEwMDY0NAogIH0KICAKICAjCi1AQCAtMzQ1LDggKzQ4Niw5 IEBAIHByb2MgcHJpbnRfYWRkciB7IG5hbWUgfSB7CitAQCAtMjQxLDYgKzM4Miw3IEBAIHByb2Mg aW5mb19mdW5jX3JlZ2V4cCB7IG5hbWUgZGVtYW5nbGVkIH0geworICAgICBnbG9iYWwgZ2RiX3By b21wdAorIAorICAgICBzZW5kX2dkYiAiaW5mbyBmdW5jdGlvbiAkbmFtZVxuIgorKyAgICBzZXQg ZGVtYW5nbGVkIFtyZWdzdWIge1xcXCh2b2lkXFxcKX0gJGRlbWFuZ2xlZCB7XChcKX1dCisgICAg IGdkYl9leHBlY3QgeworIAktcmUgIi4qRmlsZSAuKjpcclxuKGNsYXNzIHwpJGRlbWFuZ2xlZFxy XG4uKiRnZGJfcHJvbXB0ICQiIHsKKyAJICAgIHBhc3MgImluZm8gZnVuY3Rpb24gZm9yIFwiJG5h bWVcIiIKK0BAIC0yNzcsMTYgKzQxOSwxNiBAQCBwcm9jIHByaW50X2FkZHJfMiB7IG5hbWUgZ29v ZCB9IHsKKyAKKyAgICAgc2V0IGdvb2RfcGF0dGVybiBbc3RyaW5nX3RvX3JlZ2V4cCAkZ29vZF0K KyAKKy0gICAgc2VuZF9nZGIgInByaW50ICYnJG5hbWUnXG4iCisrICAgIHNlbmRfZ2RiICJwcmlu dCAmJG5hbWVcbiIKKyAgICAgZ2RiX2V4cGVjdCB7CisgCS1yZSAiLiogPSAuKiAkaGV4IDwkZ29v ZF9wYXR0ZXJuPlxyXG4kZ2RiX3Byb21wdCAkIiB7CistCSAgICBwYXNzICJwcmludCAmJyRuYW1l JyIKKysJICAgIHBhc3MgInByaW50ICYkbmFtZSIKKyAJfQorIAktcmUgIi4qJGdkYl9wcm9tcHQg JCIgeworLQkgICAgZmFpbCAicHJpbnQgJickbmFtZSciCisrCSAgICBmYWlsICJwcmludCAmJG5h bWUiCisgCX0KKyAJdGltZW91dCB7CistCSAgICBmYWlsICJwcmludCAmJyRuYW1lJyAodGltZW91 dCkiCisrCSAgICBmYWlsICJwcmludCAmJG5hbWUgKHRpbWVvdXQpIgorIAl9CisgICAgIH0KKyB9 CitAQCAtMzI3LDcgKzQ2OSwxMiBAQCBwcm9jIHByaW50X2FkZHJfMl9rZmFpbCB7IG5hbWUgZ29v ZCBiYWQgYnVnaWQgfSB7CisgIworIAorIHByb2MgcHJpbnRfYWRkciB7IG5hbWUgfSB7CistICAg IHByaW50X2FkZHJfMiAiJG5hbWUiICIkbmFtZSIKKysgICAgc2V0IGV4cGVjdGVkIFtyZWdzdWIg e1wodm9pZFwpfSAkbmFtZSB7KCl9XQorKyAgICBpZiB7W3N0cmluZyBmaXJzdCAiOjoiICRuYW1l XSA9PSAtMX0geworKwkjIEMgZnVuY3Rpb24gLS0gbXVzdCBiZSBxdXRvZWQKKysJc2V0IG5hbWUg IickbmFtZSciCisrICAgIH0KKysgICAgcHJpbnRfYWRkcl8yICIkbmFtZSIgJGV4cGVjdGVkCisg fQorIAorICMKK0BAIC0zNDUsOCArNDkyLDkgQEAgcHJvYyBwcmludF9hZGRyIHsgbmFtZSB9IHsK ICAKICBwcm9jIHRlc3RfbG9va3VwX29wZXJhdG9yX2Z1bmN0aW9ucyB7fSB7CiAgICAgIGdsb2Jh bCBkbV9vcGVyYXRvcl9jb21tYQpAQCAtMjE5MDUsNyArMjIwODYsNyBAQCBpbmRleCA1ZTA4NzY4 Li44YzhlMDM4IDEwMDY0NAogICAgICBnbG9iYWwgZG1fdHlwZV9mb29fcmVmCiAgICAgIGdsb2Jh bCBkbV90eXBlX3ZvaWQKICAgICAgZ2xvYmFsIGRtX3R5cGVfdm9pZF9zdGFyCi1AQCAtNDA0LDgg KzU0Niw4IEBAIHByb2MgdGVzdF9sb29rdXBfb3BlcmF0b3JfZnVuY3Rpb25zIHt9IHsKK0BAIC00 MDQsOCArNTUyLDggQEAgcHJvYyB0ZXN0X2xvb2t1cF9vcGVyYXRvcl9mdW5jdGlvbnMge30gewog IAogICAgICBpbmZvX2Z1bmMgIm9wZXJhdG9yIGludCgiCSJpbnQgZm9vOjpvcGVyYXRvciBpbnQo JGRtX3R5cGVfdm9pZCk7IgogICAgICBpbmZvX2Z1bmMgIm9wZXJhdG9yKCkoIgkidm9pZCBmb286 Om9wZXJhdG9yKCkoJGRtX3R5cGVfZm9vX3JlZik7IgpAQCAtMjE5MTYsNyArMjIwOTcsNyBAQCBp bmRleCA1ZTA4NzY4Li44YzhlMDM4IDEwMDY0NAogIAogIH0KICAKLUBAIC00MjAsNiArNTYyLDcg QEAgcHJvYyB0ZXN0X3BhZGRyX29wZXJhdG9yX2Z1bmN0aW9ucyB7fSB7CitAQCAtNDIwLDYgKzU2 OCw3IEBAIHByb2MgdGVzdF9wYWRkcl9vcGVyYXRvcl9mdW5jdGlvbnMge30gewogICAgICBnbG9i YWwgZG1fdHlwZV91bnNpZ25lZF9pbnQKICAgICAgZ2xvYmFsIGRtX3R5cGVfdm9pZAogICAgICBn bG9iYWwgZG1fdHlwZV92b2lkX3N0YXIKQEAgLTIxOTI0LDcgKzIyMTA1LDIxIEBAIGluZGV4IDVl MDg3NjguLjhjOGUwMzggMTAwNjQ0CiAgCiAgICAgIHByaW50X2FkZHIgImZvbzo6b3BlcmF0b3Iq KCRkbV90eXBlX2Zvb19yZWYpIgogICAgICBwcmludF9hZGRyICJmb286Om9wZXJhdG9yJSgkZG1f dHlwZV9mb29fcmVmKSIKLUBAIC00NzAsNyArNjEzLDcgQEAgcHJvYyB0ZXN0X3BhZGRyX29wZXJh dG9yX2Z1bmN0aW9ucyB7fSB7CitAQCAtNDYwLDE3ICs2MDksMjAgQEAgcHJvYyB0ZXN0X3BhZGRy X29wZXJhdG9yX2Z1bmN0aW9ucyB7fSB7CisgICAgIHByaW50X2FkZHIgImZvbzo6b3BlcmF0b3Jc W1xdKCRkbV90eXBlX2Zvb19yZWYpIgorICAgICBwcmludF9hZGRyICJmb286Om9wZXJhdG9yKCko JGRtX3R5cGVfZm9vX3JlZikiCisgCistICAgIGdkYl90ZXN0ICJwcmludCAmJ2Zvbzo6b3BlcmF0 b3IgbmV3JyIgXAorKyAgICBnZGJfdGVzdCAicHJpbnQgJmZvbzo6b3BlcmF0b3IgbmV3IiBcCisg CSIgPSAuKiAkaGV4IDxmb286Om9wZXJhdG9yIG5ld1xcKC4qXFwpKHwgc3RhdGljKT4iCisrICAg IGdkYl90ZXN0ICJwcmludCAmZm9vOjpvcGVyYXRvciBuZXdcW1xdIiBcCisrCSIgPSAuKiAkaGV4 IDxmb286Om9wZXJhdG9yIG5ld1xcXFtcXFxdXFwoLipcXCkofCBzdGF0aWMpPiIgICAgCisgICAg IGlmIHsgISRocF9hQ0NfY29tcGlsZXIgfSB7CisgCXByaW50X2FkZHIgImZvbzo6b3BlcmF0b3Ig ZGVsZXRlKCRkbV90eXBlX3ZvaWRfc3RhcikiCisrCXByaW50X2FkZHIgImZvbzo6b3BlcmF0b3Ig ZGVsZXRlW10oJGRtX3R5cGVfdm9pZF9zdGFyKSIKKyAgICAgfSBlbHNlIHsKKyAJZ2RiX3Rlc3Qg InByaW50ICYnZm9vOjpvcGVyYXRvciBkZWxldGUoJGRtX3R5cGVfdm9pZF9zdGFyKSBzdGF0aWMn IiBcCisgCSAgICAiID0gLiooMHhcWzAtOWEtZlxdK3wpIDxmb286Om9wZXJhdG9yIGRlbGV0ZS4q PiIKICAgICAgfQogIAogICAgICBwcmludF9hZGRyICJmb286Om9wZXJhdG9yIGludCgkZG1fdHlw ZV92b2lkKSIKQEAgLTIxOTMzLDcgKzIyMTI4LDcgQEAgaW5kZXggNWUwODc2OC4uOGM4ZTAzOCAx MDA2NDQKICB9CiAgCiAgIwotQEAgLTQ4MCwxNyArNjIzLDIxIEBAIHByb2MgdGVzdF9wYWRkcl9v cGVyYXRvcl9mdW5jdGlvbnMge30geworQEAgLTQ4MCwxNyArNjMyLDIxIEBAIHByb2MgdGVzdF9w YWRkcl9vcGVyYXRvcl9mdW5jdGlvbnMge30gewogIHByb2MgdGVzdF9wYWRkcl9vdmVybG9hZGVk X2Z1bmN0aW9ucyB7fSB7CiAgICAgIGdsb2JhbCBkbV90eXBlX3Vuc2lnbmVkX2ludAogICAgICBn bG9iYWwgZG1fdHlwZV92b2lkCkBAIC0yMTk1OSw3ICsyMjE1NCw3IEBAIGluZGV4IDVlMDg3Njgu LjhjOGUwMzggMTAwNjQ0CiAgICAgIHByaW50X2FkZHIgIm92ZXJsb2FkMWFyZyhmbG9hdCkiCiAg ICAgIHByaW50X2FkZHIgIm92ZXJsb2FkMWFyZyhkb3VibGUpIgogIAotQEAgLTUxMywxNyArNjYw LDMxIEBAIHByb2MgdGVzdF9wYWRkcl9oYWlyeV9mdW5jdGlvbnMge30geworQEAgLTUxMywxNyAr NjY5LDMxIEBAIHByb2MgdGVzdF9wYWRkcl9oYWlyeV9mdW5jdGlvbnMge30gewogICAgICBnbG9i YWwgZG1fdHlwZV9jaGFyX3N0YXIKICAgICAgZ2xvYmFsIGRtX3R5cGVfaW50X3N0YXIKICAgICAg Z2xvYmFsIGRtX3R5cGVfbG9uZ19zdGFyCkBAIC0yNTU5Miw3ICsyNTc4Nyw3IEBAIGluZGV4IGE2 N2VhYTMuLjUzODBjMGYgMTAwNjQ0CiArCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0 ID0nLCBmMC5ibG9jayAoKSIgIjxnZGIuQmxvY2sgb2JqZWN0IGF0IDB4XFtcWzp4ZGlnaXQ6XF1c XSs+IiAidGVzdCBGcmFtZS5ibG9jayIKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktZnVuY3Rpb24uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZ1bmN0 aW9uLmV4cAotaW5kZXggN2ZlY2EyYi4uNGFlNTE5ZiAxMDA2NDQKK2luZGV4IDMwZmRlN2QuLjE0 Y2Q5MGMgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24u ZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCiBAQCAt MjAsMzYgKzIwLDE1IEBAIGlmICR0cmFjZWxldmVsIHRoZW4gewoKZGlmZiAtLWdpdCBhL2dkYi5z cGVjIGIvZ2RiLnNwZWMKaW5kZXggOWEyZjNlZS4uYTgwOTAwYyAxMDA2NDQKLS0tIGEvZ2RiLnNw ZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTEwLDcgKzEwLDcgQEAgTmFtZTogZ2RiJXs/X3dpdGhfZGVi dWc6LWRlYnVnfQogIyBTZXQgdmVyc2lvbiB0byBjb250ZW50cyBvZiBnZGIvdmVyc2lvbi5pbi4K ICMgTk9URTogdGhlIEZTRiBnZGIgdmVyc2lvbnMgYXJlIG51bWJlcmVkIE4uTSBmb3Igb2ZmaWNp YWwgcmVsZWFzZXMsIGxpa2UgNi4zIAogIyBhbmQsIHNpbmNlIEphbnVhcnkgMjAwNSwgWC5ZLlou ZGF0ZSBmb3IgZGFpbHkgc25hcHNob3RzLCBsaWtlIDYuMy41MC4yMDA1MDExMiAjIChkYWlseSBz bmFwc2hvdCBmcm9tIG1haWxpbmUpLCBvciA2LjMuMC4yMDA0MDExMiAoaGVhZCBvZiB0aGUgcmVs ZWFzZSBicmFuY2gpLgotVmVyc2lvbjogNi44LjkxLjIwMDkwOTIxCitWZXJzaW9uOiA2LjguOTEu MjAwOTA5MjUKIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2Vy dmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9m IGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhl IHRlc3RpbmcuCkBAIC0yMjAsNyArMjIwLDcgQEAgUGF0Y2gyMjk6IGdkYi02LjMtYnoxNDA1MzIt cHBjLXVud2luZGluZy10ZXN0LnBhdGNoCiBQYXRjaDIzMTogZ2RiLTYuMy1iejIwMjY4OS1leGVj LWZyb20tcHRocmVhZC10ZXN0LnBhdGNoCiAKICMgQmFja3BvcnRlZCBwb3N0IGdkYi02LjguNTAu MjAwOTA5OTEgc25hcHNob3QgZml4dXBzLgotUGF0Y2gyMzI6IGdkYi02LjguNTAuMjAwOTA5MjEt dXBzdHJlYW0ucGF0Y2gKKyNQYXRjaDIzMjogZ2RiLTYuOC41MC4yMDA5MDkyMS11cHN0cmVhbS5w YXRjaAogCiAjIFRlc3RjYXNlIGZvciBQUEMgUG93ZXI2L0RGUCBpbnN0cnVjdGlvbnMgZGlzYXNz ZW1ibHkgKEJaIDIzMDAwMCkuCiBQYXRjaDIzNDogZ2RiLTYuNi1iejIzMDAwMC1wb3dlcjYtZGlz YXNzZW1ibHktdGVzdC5wYXRjaApAQCAtNDUzLDcgKzQ1Myw3IEBAIHJtIC1mIGdkYi9qdi1leHAu YyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKIAogJWlmIDAleyE/X3dp dGhfdXBzdHJlYW06MX0KIAotJXBhdGNoMjMyIC1wMQorI3BhdGNoMjMyIC1wMQogJXBhdGNoMzQ5 IC1wMQogJXBhdGNoMSAtcDEKICVwYXRjaDMgLXAxCkBAIC04NDcsNiArODQ3LDEyIEBAIGZpCiAl ZW5kaWYKIAogJWNoYW5nZWxvZworKiBGcmkgU2VwIDI1IDIwMDkgSmFuIEtyYXRvY2h2aWwgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNi44LjkxLjIwMDkwOTI1LTEKKy0gVXBncmFkZSB0 byB0aGUgRlNGIEdEQiBnZGItNy4wIHNuYXBzaG90OiA2LjguOTEuMjAwOTA5MjUKKy0gYXJjaGVy LWphbmtyYXRvY2h2aWwtZmVkb3JhMTIgY29tbWl0OiA0MzM4ZWE4NWM3OTgwMDdjMzI1OTQwMzJm NjAyZGI5ZmQyMzBlYmE5CisgIC0gW3B5dGhvbl0gRG9uJ3QgZGlyZWN0bHkgcmVmZXJlbmNlIHNl bGYuZnJhbWUgKFRvbSBUcm9tZXkpLgorICAtIFtleHByXSBVcGRhdGVzIGZyb20gYnJhbmNoIChL ZWl0aCBTZWl0eikuCisKICogTW9uIFNlcCAyMSAyMDA5IEphbiBLcmF0b2NodmlsIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPiAtIDYuOC45MS4yMDA5MDkyMS0xCiAtIFVwZ3JhZGUgdG8gdGhl IEZTRiBHREIgZ2RiLTcuMCBzbmFwc2hvdDogNi44LjkxLjIwMDkwOTIxCiAtIGFyY2hlci1qYW5r cmF0b2NodmlsLWZlZG9yYTEyIGNvbW1pdDogMGQ1YzM4ZGQ4OTA1MGMwZWUxY2YwNDk2NTZmMTc3 YzE3MGQ2NzVkNAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDdkMWY0YjMu LmNjYjNiZmQgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIg QEAKIDFlM2EyNjA0MGRjZGQzNTc5ZDc1OTY3MDg1ZWI5MmI5ICBsaWJzdGRjKystdjMtcHl0aG9u LXIxNTE3OTgudGFyLnh6Ci02N2I1MGE3OGQwMzIwMGM2NzE0Y2FmZDg1YjgwNDRlOCAgZ2RiLTYu OC45MS4yMDA5MDkyMS50YXIuYnoyCitiNmZmOWFhNGM3OGNhNDE5MzEwNTJjODY1OGJkYWJmZCAg Z2RiLTYuOC45MS4yMDA5MDkyNS50YXIuYnoyCg==