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] fix-dup-patch: Rebase to pre-7.9 snapshot 7.8.50.20150108. Date: Thu, 23 Jul 2026 18:31:40 GMT Message-ID: <178483150024.1.3157491763369850610.rpms-gdb-2f7f533ae735@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 2f7f533ae735c37ad823486c21ab39dde62aa772 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogMmY3ZjUzM2FlNzM1YzM3YWQ4MjM0ODZjMjFhYjM5ZGRlNjJhYTc3Mgog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxNS0wMS0wOFQyMTo1MzoxNyswMTowMAogICAg ICAgICAgICBTdGF0cyAgOiArMjIzMy8tMzkxOCBpbiAzOSBmaWxlKHMpCiAgICAgICAgICAgIFVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvMmY3ZjUzM2Fl NzM1YzM3YWQ4MjM0ODZjMjFhYjM5ZGRlNjJhYTc3Mj9icmFuY2g9Zml4LWR1cC1wYXRjaAoKICAg ICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gcHJlLTcuOSBzbmFwc2hvdCA3Ljgu NTAuMjAxNTAxMDguCgotIEZpeCBqaXQtcmVhZGVyLmggZm9yIG11bHRpLWxpYi4KCi0tLQpkaWZm IC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggNmFmNDhkNS4uZDk4ZDg1MCAx MDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0xLDIgKzEsMiBAQAog L2dkYi1saWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgudGFyLmJ6MgotL2dkYi03LjguMS4yMDE0 MTIyOC50YXIueHoKKy9nZGItNy44LjUwLjIwMTUwMTA4LnRhci54egoKZGlmZiAtLWdpdCBhL2dk Yi02LjMtYnoyMzE4MzItb2JzdGFjay0yZ2IucGF0Y2ggYi9nZGItNi4zLWJ6MjMxODMyLW9ic3Rh Y2stMmdiLnBhdGNoCmluZGV4IDQ0OTcxYWUuLjFhMTlkMzQgMTAwNjQ0Ci0tLSBhL2dkYi02LjMt YnoyMzE4MzItb2JzdGFjay0yZ2IucGF0Y2gKKysrIGIvZ2RiLTYuMy1iejIzMTgzMi1vYnN0YWNr LTJnYi5wYXRjaApAQCAtMSwyOSArMSwxMCBAQAogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29t L2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yMzE4MzIKIAogCi1JbmRleDogZ2RiLTcuNS41MC4y MDEzMDExOC9nZGIvc3ltbWlzYy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9pbmNsdWRl L29ic3RhY2suaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3JpZy9nZGIv c3ltbWlzYy5jCTIwMTMtMDEtMTggMjM6NTQ6NTcuNDc4OTc0Mjg5ICswMTAwCi0rKysgZ2RiLTcu NS41MC4yMDEzMDExOC9nZGIvc3ltbWlzYy5jCTIwMTMtMDEtMTggMjM6NTU6NDEuNjUwOTMwMjU0 ICswMTAwCi1AQCAtMTQ4LDEwICsxNDgsMTAgQEAgcHJpbnRfb2JqZmlsZV9zdGF0aXN0aWNzICh2 b2lkKQotICAgICBpZiAoT0JKU1RBVCAob2JqZmlsZSwgc3pfc3RydGFiKSA+IDApCi0gICAgICAg cHJpbnRmX2ZpbHRlcmVkIChfKCIgIFNwYWNlIHVzZWQgYnkgYS5vdXQgc3RyaW5nIHRhYmxlczog JWRcbiIpLAotIAkJICAgICAgIE9CSlNUQVQgKG9iamZpbGUsIHN6X3N0cnRhYikpOwotLSAgICBw cmludGZfZmlsdGVyZWQgKF8oIiAgVG90YWwgbWVtb3J5IHVzZWQgZm9yIG9iamZpbGUgb2JzdGFj azogJWRcbiIpLAotLQkJICAgICBvYnN0YWNrX21lbW9yeV91c2VkICgmb2JqZmlsZS0+b2JqZmls ZV9vYnN0YWNrKSk7Ci0tICAgIHByaW50Zl9maWx0ZXJlZCAoXygiICBUb3RhbCBtZW1vcnkgdXNl ZCBmb3IgQkZEIG9ic3RhY2s6ICVkXG4iKSwKLS0JCSAgICAgb2JzdGFja19tZW1vcnlfdXNlZCAo Jm9iamZpbGUtPnBlcl9iZmQtPnN0b3JhZ2Vfb2JzdGFjaykpOwotKyAgICBwcmludGZfZmlsdGVy ZWQgKF8oIiAgVG90YWwgbWVtb3J5IHVzZWQgZm9yIG9iamZpbGUgb2JzdGFjazogJWxkXG4iKSwK LSsJCSAgICAgKGxvbmcpIG9ic3RhY2tfbWVtb3J5X3VzZWQgKCZvYmpmaWxlLT5vYmpmaWxlX29i c3RhY2spKTsKLSsgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCIgIFRvdGFsIG1lbW9yeSB1c2VkIGZv ciBCRkQgb2JzdGFjazogJWxkXG4iKSwKLSsJCSAgICAgKGxvbmcpIG9ic3RhY2tfbWVtb3J5X3Vz ZWQgKCZvYmpmaWxlLT5wZXJfYmZkLT5zdG9yYWdlX29ic3RhY2spKTsKLSAgICAgcHJpbnRmX2Zp bHRlcmVkIChfKCIgIFRvdGFsIG1lbW9yeSB1c2VkIGZvciBwc3ltYm9sIGNhY2hlOiAlZFxuIiks Ci0gCQkgICAgIGJjYWNoZV9tZW1vcnlfdXNlZCAocHN5bWJvbF9iY2FjaGVfZ2V0X2JjYWNoZQot IAkJICAgICAgICAgICAgICAgICAgICAgICAgICAob2JqZmlsZS0+cHN5bWJvbF9jYWNoZSkpKTsK LUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2luY2x1ZGUvb2JzdGFjay5oCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2luY2x1ZGUvb2JzdGFjay5oCTIwMTMtMDEt MTggMjM6NTQ6NTcuNDc4OTc0Mjg5ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9pbmNs dWRlL29ic3RhY2suaAkyMDEzLTAxLTE4IDIzOjU1OjEwLjI1Njk5OTE4OCArMDEwMAorLS0tIGdk Yi03LjguNTAuMjAxNDEyMjgub3JpZy9pbmNsdWRlL29ic3RhY2suaAkyMDE1LTAxLTAxIDE3OjAy OjUzLjI1NDgyMDQ0NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvaW5jbHVkZS9vYnN0 YWNrLmgJMjAxNS0wMS0wMSAxNzowMjo1My44ODA4MjAwODQgKzAxMDAKIEBAIC0xODgsMzEgKzE4 OCwzMSBAQCBzdHJ1Y3Qgb2JzdGFjawkJLyogY29udHJvbCBjdXJyZW50IG9iamVjCiAgCiAgLyog RGVjbGFyZSB0aGUgZXh0ZXJuYWwgZnVuY3Rpb25zIHdlIHVzZTsgdGhleSBhcmUgaW4gb2JzdGFj ay5jLiAgKi8KQEAgLTEyOSwxMCArMTEwLDEwIEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4 L2luY2x1ZGUvb2JzdGFjay5oCiAgICAgaWYgKF9fby0+Y2h1bmtfbGltaXQgLSBfX28tPm5leHRf ZnJlZSA8IF9fbGVuKQkJCVwKICAgICAgIF9vYnN0YWNrX25ld2NodW5rIChfX28sIF9fbGVuKTsJ CQkJCVwKICAgICBvYnN0YWNrX2JsYW5rX2Zhc3QgKF9fbywgX19sZW4pOwkJCQkJXAotSW5kZXg6 IGdkYi03LjUuNTAuMjAxMzAxMTgvbGliaWJlcnR5L29ic3RhY2suYworSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvbGliaWJlcnR5L29ic3RhY2suYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUu NTAuMjAxMzAxMTgub3JpZy9saWJpYmVydHkvb2JzdGFjay5jCTIwMTMtMDEtMTggMjM6NTQ6NTcu NDc4OTc0Mjg5ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9saWJpYmVydHkvb2JzdGFj ay5jCTIwMTMtMDEtMTggMjM6NTU6MTAuMjU2OTk5MTg4ICswMTAwCistLS0gZ2RiLTcuOC41MC4y MDE0MTIyOC5vcmlnL2xpYmliZXJ0eS9vYnN0YWNrLmMJMjAxNS0wMS0wMSAxNzowMjo1My4yNTQ4 MjA0NDcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2xpYmliZXJ0eS9vYnN0YWNrLmMJ MjAxNS0wMS0wMSAxNzowMjo1My44ODA4MjAwODQgKzAxMDAKIEBAIC00NCw5ICs0NCwxMSBAQAog ICNpZiAhZGVmaW5lZCAoX0xJQkMpICYmIGRlZmluZWQgKF9fR05VX0xJQlJBUllfXykgJiYgX19H TlVfTElCUkFSWV9fID4gMQogICNpbmNsdWRlIDxnbnUtdmVyc2lvbnMuaD4KCmRpZmYgLS1naXQg YS9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaCBiL2dkYi02LjMtcmVhZG5ldmVyLTIw MDUwOTA3LnBhdGNoCmluZGV4IDdmZjFkYzcuLjFlOWFkZGYgMTAwNjQ0Ci0tLSBhL2dkYi02LjMt cmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCisrKyBiL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3 LnBhdGNoCkBAIC0xMSwxMSArMTEsMTEgQEAKIAogICAgICAgICAqIGdkYi50ZXhpbmZvIChGaWxl IE9wdGlvbnMpOiBEb2N1bWVudCAtLXJlYWRuZXZlci4KIAotSW5kZXg6IGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2RvYy9nZGIudGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3Jp Zy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTQtMDEtMjcgMjI6NDI6NTMuMTUwNTczNjAzICswMTAw Ci0rKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTQtMDEtMjcg MjI6NDI6NTYuNjk0NTc2MzE5ICswMTAwCi1AQCAtMTAzMSw2ICsxMDMxLDEyIEBAIFJlYWQgZWFj aCBzeW1ib2wgZmlsZSdzIGVudGlyZSBzeW1ib2wgdGEKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4 Lm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTAxLTAxIDE3OjAxOjA4LjMwODg4MTI5MiAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTAx LTAxIDE3OjAxOjEwLjMwMjg4MDEyNiArMDEwMAorQEAgLTEwMzIsNiArMTAzMiwxMiBAQCBSZWFk IGVhY2ggc3ltYm9sIGZpbGUncyBlbnRpcmUgc3ltYm9sIHRhCiAgdGhlIGRlZmF1bHQsIHdoaWNo IGlzIHRvIHJlYWQgaXQgaW5jcmVtZW50YWxseSBhcyBpdCBpcyBuZWVkZWQuCiAgVGhpcyBtYWtl cyBzdGFydHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1dHVyZSBvcGVyYXRpb25zIGZhc3Rlci4KICAK QEAgLTI4LDExICsyOCwxMSBAQCBJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZG9jL2dk Yi50ZXhpbmZvCiAgQGVuZCB0YWJsZQogIAogIEBub2RlIE1vZGUgT3B0aW9ucwotSW5kZXg6IGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL21haW4uYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL21haW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIv bWFpbi5jCTIwMTQtMDEtMjcgMjI6NDI6NTMuMTUzNTczNjA2ICswMTAwCi0rKysgZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvbWFpbi5jCTIwMTQtMDEtMjcgMjI6NDI6NTYuNjk1NTc2MzE5ICswMTAw Ci1AQCAtNDczLDYgKzQ3Myw3IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9tYWluLmMJMjAxNS0wMS0wMSAxNzowMTowOC4zMTI4 ODEyOTAgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tYWluLmMJMjAxNS0wMS0w MSAxNzowMToxMC4zMDM4ODAxMjUgKzAxMDAKK0BAIC01OTAsNiArNTkwLDcgQEAgY2FwdHVyZWRf bWFpbiAodm9pZCAqZGF0YSkKICAgICAgICB7InhkYiIsIG5vX2FyZ3VtZW50LCAmeGRiX2NvbW1h bmRzLCAxfSwKICAgICAgICB7ImRieCIsIG5vX2FyZ3VtZW50LCAmZGJ4X2NvbW1hbmRzLCAxfSwK ICAgICAgICB7InJlYWRub3ciLCBub19hcmd1bWVudCwgJnJlYWRub3dfc3ltYm9sX2ZpbGVzLCAx fSwKQEAgLTQwLDcgKzQwLDcgQEAgSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL21haW4u YwogICAgICAgIHsiciIsIG5vX2FyZ3VtZW50LCAmcmVhZG5vd19zeW1ib2xfZmlsZXMsIDF9LAog ICAgICAgIHsicXVpZXQiLCBub19hcmd1bWVudCwgJnF1aWV0LCAxfSwKICAgICAgICB7InEiLCBu b19hcmd1bWVudCwgJnF1aWV0LCAxfSwKLUBAIC0xMTY0LDYgKzExNjUsNyBAQCBTZWxlY3Rpb24g b2YgZGVidWdnZWUgYW5kIGl0cyBmaWxlczpcblxuCitAQCAtMTI0NSw2ICsxMjQ2LDcgQEAgU2Vs ZWN0aW9uIG9mIGRlYnVnZ2VlIGFuZCBpdHMgZmlsZXM6XG5cbgogICAgLS1zZT1GSUxFICAgICAg ICAgIFVzZSBGSUxFIGFzIHN5bWJvbCBmaWxlIGFuZCBleGVjdXRhYmxlIGZpbGUuXG5cCiAgICAt LXN5bWJvbHM9U1lNRklMRSAgUmVhZCBzeW1ib2xzIGZyb20gU1lNRklMRS5cblwKICAgIC0tcmVh ZG5vdyAgICAgICAgICBGdWxseSByZWFkIHN5bWJvbCBmaWxlcyBvbiBmaXJzdCBhY2Nlc3MuXG5c CkBAIC00OCwxMSArNDgsMTEgQEAgSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL21haW4u YwogICAgLS13cml0ZSAgICAgICAgICAgIFNldCB3cml0aW5nIGludG8gZXhlY3V0YWJsZSBhbmQg Y29yZSBmaWxlcy5cblxuXAogICIpLCBzdHJlYW0pOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygi XAotSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3N5bWZpbGUuYworSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3N5bWZpbGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvc3ltZmlsZS5jCTIwMTQtMDEtMjcgMjI6NDI6NTMuMTU0NTczNjA3 ICswMTAwCi0rKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc3ltZmlsZS5jCTIwMTQtMDEtMjcg MjI6NDI6NTYuNjk2NTc2MzIwICswMTAwCi1AQCAtODIsNiArODIsNyBAQCBzdGF0aWMgdm9pZCBj bGVhcl9zeW10YWJfdXNlcnNfY2xlYW51cCAoCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi9zeW1maWxlLmMJMjAxNS0wMS0wMSAxNzowMTowOC4zMTM4ODEyODkgKzAxMDAKKysrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zeW1maWxlLmMJMjAxNS0wMS0wMSAxNzowMToxMC4zMDQ4 ODAxMjUgKzAxMDAKK0BAIC04MCw2ICs4MCw3IEBAIHN0YXRpYyB2b2lkIGNsZWFyX3N5bXRhYl91 c2Vyc19jbGVhbnVwICgKICAKICAvKiBHbG9iYWwgdmFyaWFibGVzIG93bmVkIGJ5IHRoaXMgZmls ZS4gICovCiAgaW50IHJlYWRub3dfc3ltYm9sX2ZpbGVzOwkvKiBSZWFkIGZ1bGwgc3ltYm9scyBp bW1lZGlhdGVseS4gICovCkBAIC02MCwxOSArNjAsMTkgQEAgSW5kZXg6IGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL3N5bWZpbGUuYwogIAogIC8qIEZ1bmN0aW9ucyB0aGlzIGZpbGUgZGVmaW5lcy4g ICovCiAgCi1JbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZHdhcmYycmVhZC5jCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNC0wMS0yNyAyMjo0 Mjo1Ni43MDA1NzYzMjMgKzAxMDAKLSsrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kd2FyZjJy ZWFkLmMJMjAxNC0wMS0yNyAyMjo0NDoyMS45MTU2NDE1NjAgKzAxMDAKLUBAIC03MCw2ICs3MCw3 IEBACistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0w MS0wMSAxNzowMTowOC4zMTk4ODEyODUgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9kd2FyZjJyZWFkLmMJMjAxNS0wMS0wMSAxNzowMToyNi44ODg4NzA1MTEgKzAxMDAKK0BAIC02 OSw2ICs2OSw3IEBACiAgI2luY2x1ZGUgInNvdXJjZS5oIgogICNpbmNsdWRlICJmaWxlc3R1ZmYu aCIKICAjaW5jbHVkZSAiYnVpbGQtaWQuaCIKICsjaW5jbHVkZSAidG9wLmgiCiAgCiAgI2luY2x1 ZGUgPGZjbnRsLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotQEAgLTE5NzUsNyArMTk3Niw4IEBA IGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKKyAjaW5jbHVkZSA8c3lz L3R5cGVzLmg+CitAQCAtMTk4OSw3ICsxOTkwLDggQEAgZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikg bmFtZXMpOwogICAgICAgIGR3YXJmMl9wZXJfb2JqZmlsZS0+b2JqZmlsZSA9IG9iamZpbGU7CiAg ICAgIH0KQEAgLTgyLDExICs4MiwxMSBAQCBJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv ZHdhcmYycmVhZC5jCiAgCSAgJiYgZHdhcmYyX3Blcl9vYmpmaWxlLT5pbmZvLnMuYXNlY3Rpb24g IT0gTlVMTAogIAkgICYmICFkd2FyZjJfcGVyX29iamZpbGUtPmFiYnJldi5pc192aXJ0dWFsCiAg CSAgJiYgZHdhcmYyX3Blcl9vYmpmaWxlLT5hYmJyZXYucy5hc2VjdGlvbiAhPSBOVUxMKTsKLUlu ZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90b3AuaAorSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3RvcC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmln L2dkYi90b3AuaAkyMDE0LTAxLTI3IDIyOjQyOjUzLjE1OTU3MzYxMCArMDEwMAotKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL3RvcC5oCTIwMTQtMDEtMjcgMjI6NDI6NTYuNzAxNTc2MzI0ICsw MTAwCi1AQCAtNTksNiArNTksNyBAQCBleHRlcm4gdm9pZCBzZXRfcHJvbXB0IChjb25zdCBjaGFy ICpzKTsKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3RvcC5oCTIwMTUtMDEtMDEg MTc6MDE6MDguMzIwODgxMjg0ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdG9w LmgJMjAxNS0wMS0wMSAxNzowMToxMC4zMTA4ODAxMjEgKzAxMDAKK0BAIC02Nyw2ICs2Nyw3IEBA IGV4dGVybiB2b2lkIHNldF9wcm9tcHQgKGNvbnN0IGNoYXIgKnMpOwogIAogIC8qIEZyb20gcmFu ZG9tIHBsYWNlcy4gICovCiAgZXh0ZXJuIGludCByZWFkbm93X3N5bWJvbF9maWxlczsKCmRpZmYg LS1naXQgYS9nZGItNi4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoIGIvZ2RiLTYuMy10ZXN0LXBp ZS0yMDA1MDEwNy5wYXRjaAppbmRleCA4NDE5NWI4Li4xYmQxMWVmIDEwMDY0NAotLS0gYS9nZGIt Ni4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoCisrKyBiL2dkYi02LjMtdGVzdC1waWUtMjAwNTAx MDcucGF0Y2gKQEAgLTEsOCArMSw4IEBACi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIv dGVzdHN1aXRlL2NvbmZpZ3VyZS5hYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rl c3RzdWl0ZS9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjUwLjIwMTQwNjA5 Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMJMjAxNC0wNi0xMyAyMDowNTozMy4wNTg1 MDY4MTcgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvY29uZmln dXJlLmFjCTIwMTQtMDYtMTMgMjA6MDU6NTkuOTkxNTMyNTk1ICswMjAwCi1AQCAtOTcsNiArOTcs NiBAQCBBQ19PVVRQVVQoW01ha2VmaWxlIFwKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMJMjAxNS0wMS0wMSAxNzowMDoyNi4xMjM5MDg5NDgg KzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlLmFj CTIwMTUtMDEtMDEgMTc6MDA6NDMuMTY4ODk3NzczICswMTAwCitAQCAtMTA2LDYgKzEwNiw2IEBA IEFDX09VVFBVVChbTWFrZWZpbGUgXAogICAgZ2RiLmhwL2dkYi5hQ0MvTWFrZWZpbGUgZ2RiLmhw L2dkYi5jb21wYXQvTWFrZWZpbGUgXAogICAgZ2RiLmhwL2dkYi5kZWZlY3RzL01ha2VmaWxlIGdk Yi5ndWlsZS9NYWtlZmlsZSBnZGIubGluZXNwZWMvTWFrZWZpbGUgXAogICAgZ2RiLm1pL01ha2Vm aWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBcCkBAIC0xMCwyMCAr MTAsMjAgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1 cmUuYWMKICsgIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcGVuY2wvTWFrZWZpbGUgZ2RiLm9wdC9N YWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5waWUvTWFrZWZpbGUgXAogICAgZ2RiLnBl cmYvTWFrZWZpbGUgZ2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIu c3RhYnMvTWFrZWZpbGUgXAogICAgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2Vm aWxlIGdkYi54bWwvTWFrZWZpbGVdKQotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rl c3RzdWl0ZS9jb25maWd1cmUKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dk Yi90ZXN0c3VpdGUvY29uZmlndXJlCTIwMTQtMDYtMTMgMjA6MDU6MjkuOTU2NTAzODk5ICswMjAw Ci0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQkyMDE0LTA2 LTEzIDIwOjA2OjI0LjQ5MjU1NTcwOSArMDIwMAotQEAgLTM0NDgsNyArMzQ0OCw3IEBAIGRvbmUK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUJMjAx NS0wMS0wMSAxNzowMDoyNi4xMjQ5MDg5NDcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCTIwMTUtMDEtMDEgMTc6MDA6NTkuNDY3ODg3MDg4ICsw MTAwCitAQCAtMzQ1OCw3ICszNDU4LDcgQEAgaWYgdGVzdCAiJHtidWlsZH0iID0gIiR7aG9zdH0i IC1hICIke2hvcworIGZpCiAgCiAgCi0gCi0tYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2Zp bGVzIE1ha2VmaWxlIGdkYi5hZGEvTWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9N YWtlZmlsZSBnZGIuYmFzZS9NYWtlZmlsZSBnZGIuYnRyYWNlL01ha2VmaWxlIGdkYi5jZWxsL01h a2VmaWxlIGdkYi5jcC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFr ZWZpbGUgZ2RiLmRsYW5nL01ha2VmaWxlIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5nZGIvTWFr ZWZpbGUgZ2RiLmdvL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEvTWFrZWZp bGUgZ2RiLmhwL01ha2VmaWxlIGdkYi5ocC9nZGIub2JqZGJnL01ha2VmaWxlIGdkYi5ocC9nZGIu YmFzZS1ocC9NYWtlZmlsZSBnZGIuaHAvZ2RiLmFDQy9NYWtlZmlsZSBnZGIuaHAvZ2RiLmNvbXBh dC9NYWtlZmlsZSBnZGIuaHAvZ2RiLmRlZmVjdHMvTWFrZWZpbGUgZ2RiLmd1aWxlL01ha2VmaWxl IGdkYi5saW5lc3BlYy9NYWtlZmlsZSBnZGIubWkvTWFrZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZp bGUgZ2RiLm11bHRpL01ha2VmaWxlIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcGVuY2wvTWFrZWZp bGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5wZXJmL01ha2VmaWxl IGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnN0YWJzL01ha2Vm aWxlIGdkYi50aHJlYWRzL01ha2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBnZGIueG1sL01ha2Vm aWxlIgotK2FjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSBnZGIuYWRh L01ha2VmaWxlIGdkYi5hcmNoL01ha2VmaWxlIGdkYi5hc20vTWFrZWZpbGUgZ2RiLmJhc2UvTWFr ZWZpbGUgZ2RiLmJ0cmFjZS9NYWtlZmlsZSBnZGIuY2VsbC9NYWtlZmlsZSBnZGIuY3AvTWFrZWZp bGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2VmaWxlIGdkYi5kbGFuZy9NYWtl ZmlsZSBnZGIuZm9ydHJhbi9NYWtlZmlsZSBnZGIuZ2RiL01ha2VmaWxlIGdkYi5nby9NYWtlZmls ZSBnZGIuc2VydmVyL01ha2VmaWxlIGdkYi5qYXZhL01ha2VmaWxlIGdkYi5ocC9NYWtlZmlsZSBn ZGIuaHAvZ2RiLm9iamRiZy9NYWtlZmlsZSBnZGIuaHAvZ2RiLmJhc2UtaHAvTWFrZWZpbGUgZ2Ri LmhwL2dkYi5hQ0MvTWFrZWZpbGUgZ2RiLmhwL2dkYi5jb21wYXQvTWFrZWZpbGUgZ2RiLmhwL2dk Yi5kZWZlY3RzL01ha2VmaWxlIGdkYi5ndWlsZS9NYWtlZmlsZSBnZGIubGluZXNwZWMvTWFrZWZp bGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmls ZSBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3BlbmNsL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUg Z2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01ha2VmaWxlIGdkYi5wZXJmL01ha2VmaWxlIGdk Yi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnN0YWJzL01ha2VmaWxl IGdkYi50aHJlYWRzL01ha2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBnZGIueG1sL01ha2VmaWxl IgorLWFjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSBnZGIuYWRhL01h a2VmaWxlIGdkYi5hcmNoL01ha2VmaWxlIGdkYi5hc20vTWFrZWZpbGUgZ2RiLmJhc2UvTWFrZWZp bGUgZ2RiLmJ0cmFjZS9NYWtlZmlsZSBnZGIuY2VsbC9NYWtlZmlsZSBnZGIuY29tcGlsZS9NYWtl ZmlsZSBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2Vm aWxlIGdkYi5kbGFuZy9NYWtlZmlsZSBnZGIuZm9ydHJhbi9NYWtlZmlsZSBnZGIuZ2RiL01ha2Vm aWxlIGdkYi5nby9NYWtlZmlsZSBnZGIuc2VydmVyL01ha2VmaWxlIGdkYi5qYXZhL01ha2VmaWxl IGdkYi5ocC9NYWtlZmlsZSBnZGIuaHAvZ2RiLm9iamRiZy9NYWtlZmlsZSBnZGIuaHAvZ2RiLmJh c2UtaHAvTWFrZWZpbGUgZ2RiLmhwL2dkYi5hQ0MvTWFrZWZpbGUgZ2RiLmhwL2dkYi5jb21wYXQv TWFrZWZpbGUgZ2RiLmhwL2dkYi5kZWZlY3RzL01ha2VmaWxlIGdkYi5ndWlsZS9NYWtlZmlsZSBn ZGIubGluZXNwZWMvTWFrZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxl IGdkYi5tdWx0aS9NYWtlZmlsZSBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3BlbmNsL01ha2VmaWxl IGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGVyZi9NYWtlZmlsZSBn ZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIGdkYi5zdGFicy9NYWtlZmls ZSBnZGIudGhyZWFkcy9NYWtlZmlsZSBnZGIudHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtlZmls ZSIKKythY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9N YWtlZmlsZSBnZGIuYXJjaC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2Vm aWxlIGdkYi5idHJhY2UvTWFrZWZpbGUgZ2RiLmNlbGwvTWFrZWZpbGUgZ2RiLmNvbXBpbGUvTWFr ZWZpbGUgZ2RiLmNwL01ha2VmaWxlIGdkYi5kaXNhc20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9NYWtl ZmlsZSBnZGIuZGxhbmcvTWFrZWZpbGUgZ2RiLmZvcnRyYW4vTWFrZWZpbGUgZ2RiLmdkYi9NYWtl ZmlsZSBnZGIuZ28vTWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmls ZSBnZGIuaHAvTWFrZWZpbGUgZ2RiLmhwL2dkYi5vYmpkYmcvTWFrZWZpbGUgZ2RiLmhwL2dkYi5i YXNlLWhwL01ha2VmaWxlIGdkYi5ocC9nZGIuYUNDL01ha2VmaWxlIGdkYi5ocC9nZGIuY29tcGF0 L01ha2VmaWxlIGdkYi5ocC9nZGIuZGVmZWN0cy9NYWtlZmlsZSBnZGIuZ3VpbGUvTWFrZWZpbGUg Z2RiLmxpbmVzcGVjL01ha2VmaWxlIGdkYi5taS9NYWtlZmlsZSBnZGIubW9kdWxhMi9NYWtlZmls ZSBnZGIubXVsdGkvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtlZmls ZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBpZS9NYWtlZmlsZSBn ZGIucGVyZi9NYWtlZmlsZSBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxl IGdkYi5zdGFicy9NYWtlZmlsZSBnZGIudGhyZWFkcy9NYWtlZmlsZSBnZGIudHJhY2UvTWFrZWZp bGUgZ2RiLnhtbC9NYWtlZmlsZSIKICAKICBjYXQgPmNvbmZjYWNoZSA8PFxfQUNFT0YKICAjIFRo aXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25m aWd1cmUKLUBAIC00MTc5LDYgKzQxNzksNyBAQCBkbworQEAgLTQxOTAsNiArNDE5MCw3IEBAIGRv CiAgICAgICJnZGIub3BlbmNsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT IGdkYi5vcGVuY2wvTWFrZWZpbGUiIDs7CiAgICAgICJnZGIub3B0L01ha2VmaWxlIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vcHQvTWFrZWZpbGUiIDs7CiAgICAgICJnZGIucGFz Y2FsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5wYXNjYWwvTWFr ZWZpbGUiIDs7CkBAIC0zMSwxMCArMzEsMTAgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkv Z2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUKICAgICAgImdkYi5wZXJmL01ha2VmaWxlIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5wZXJmL01ha2VmaWxlIiA7OwogICAgICAiZ2RiLnB5 dGhvbi9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBnZGIucHl0aG9uL01h a2VmaWxlIiA7OwogICAgICAiZ2RiLnJldmVyc2UvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRD T05GSUdfRklMRVMgZ2RiLnJldmVyc2UvTWFrZWZpbGUiIDs7Ci1JbmRleDogZ2RiLTcuNy41MC4y MDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMKK0luZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5jCTIwMTQtMDYtMTMg MjA6MDU6MzMuMDYwNTA2ODE5ICswMjAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVz dHN1aXRlL2dkYi5waWUvYXR0YWNoLmMJMjAxNS0wMS0wMSAxNzowMDo0My4xNjk4OTc3NzMgKzAx MDAKIEBAIC0wLDAgKzEsMjAgQEAKICsvKiBUaGlzIHByb2dyYW0gaXMgaW50ZW5kZWQgdG8gYmUg c3RhcnRlZCBvdXRzaWRlIG9mIGdkYiwgYW5kIHRoZW4KICsgICBhdHRhY2hlZCB0byBieSBnZGIu ICBUaHVzLCBpdCBzaW1wbHkgc3BpbnMgaW4gYSBsb29wLiAgVGhlIGxvb3AKQEAgLTU2LDEwICs1 NiwxMCBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUv YXR0YWNoLmMKICsgICAgfQogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjcuNTAuMjAx NDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYworSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwkyMDE0LTA2LTEz IDIwOjA1OjMzLjA2MDUwNjgxOSArMDIwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rl c3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwkyMDE1LTAxLTAxIDE3OjAwOjQzLjE3MDg5Nzc3MiAr MDEwMAogQEAgLTAsMCArMSwyNCBAQAogKy8qIFRoaXMgcHJvZ3JhbSBpcyBpbnRlbmRlZCB0byBi ZSBzdGFydGVkIG91dHNpZGUgb2YgZ2RiLCBhbmQgdGhlbgogKyAgIGF0dGFjaGVkIHRvIGJ5IGdk Yi4gIFRodXMsIGl0IHNpbXBseSBzcGlucyBpbiBhIGxvb3AuICBUaGUgbG9vcApAQCAtODUsMTAg Kzg1LDEwIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9hdHRhY2gyLmMKICsgICAgfQogKyAgcmV0dXJuICgwKTsKICt9Ci1JbmRleDogZ2RiLTcuNy41 MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYworSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGIt Ny43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5jCTIwMTQtMDYtMTMg MjA6MDU6MzMuMDYxNTA2ODIwICswMjAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVz dHN1aXRlL2dkYi5waWUvYnJlYWsuYwkyMDE1LTAxLTAxIDE3OjAwOjQzLjE3MDg5Nzc3MiArMDEw MAogQEAgLTAsMCArMSwxNDYgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0 aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMjM2LDEwICsyMzYsMTAgQEAgSW5kZXg6IGdkYi03Ljcu NTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMKICsgICAgfQogKyAgcmV0 dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIu cGllL2JyZWFrMS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dk Yi5waWUvYnJlYWsxLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3Vp dGUvZ2RiLnBpZS9icmVhazEuYwkyMDE0LTA2LTEzIDIwOjA1OjMzLjA2MTUwNjgyMCArMDIwMAor KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrMS5jCTIw MTUtMDEtMDEgMTc6MDA6NDMuMTcwODk3NzcyICswMTAwCiBAQCAtMCwwICsxLDQ0IEBACiArLyog VGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTI4 NSwxMCArMjg1LDEwIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUv Z2RiLnBpZS9icmVhazEuYwogK3ZvaWQgbWFya2VyMyAoYSwgYikgY2hhciAqYSwgKmI7IHt9CS8q IHNldCBicmVha3BvaW50IDE4IGhlcmUgKi8KICt2b2lkIG1hcmtlcjQgKGQpIGxvbmcgZDsge30J CS8qIHNldCBicmVha3BvaW50IDEzIGhlcmUgKi8KICsjZW5kaWYKLUluZGV4OiBnZGItNy43LjUw LjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYworSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtlci5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZW1ha2VyLmMJ MjAxNC0wNi0xMyAyMDowNTozMy4wNjE1MDY4MjAgKzAyMDAKKysrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwkyMDE1LTAxLTAxIDE3OjAwOjQz LjE3MDg5Nzc3MiArMDEwMAogQEAgLTAsMCArMSwxNDIgQEAKICsvKiBDb3B5cmlnaHQgMTk5Miwg MTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OQogKyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgpAQCAtNDMyLDEwICs0MzIsMTAgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkv Z2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtlci5jCiArICByZXR1cm4gMDsKICt9CiArCi1J bmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4 cAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFj aC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9hdHRhY2guZXhwCTIwMTQtMDYtMTMgMjA6MDU6MzMuMDYxNTA2ODIwICswMjAwCisrKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAkyMDE1LTAx LTAxIDE3OjAwOjQzLjE3MTg5Nzc3MSArMDEwMAogQEAgLTAsMCArMSw0MTcgQEAKICsjICAgQ29w eXJpZ2h0IDE5OTcsIDE5OTksIDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAr CkBAIC04NTQsMTAgKzg1NCwxMCBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVz dHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAogK2RvX2NhbGxfYXR0YWNoX3Rlc3RzCiArCiArcmV0 dXJuIDAKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9i cmVhay5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9icmVhay5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUv Z2RiLnBpZS9icmVhay5leHAJMjAxNC0wNi0xMyAyMDowNTozMy4wNjI1MDY4MjEgKzAyMDAKKysr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAJMjAx NS0wMS0wMSAxNzowMDo0My4xNzI4OTc3NzEgKzAxMDAKIEBAIC0wLDAgKzEsOTYyIEBACiArIyAg IENvcHlyaWdodCAxOTg4LCAxOTkwLCAxOTkxLCAxOTkyLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LAogKyMgICAyMDAwLCAyMDAyLCAyMDAzLCAyMDA0CkBAIC0xODIxLDEwICsx ODIxLDEwIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9icmVhay5leHAKICsgICAgc2VuZF9nZGIgInNldCBhcmdzIG1haW5cbiIKICsgICAgZ2RiX2V4 cGVjdCAtcmUgIi4qJGdkYl9wcm9tcHQgJCIge30KICt9Ci1JbmRleDogZ2RiLTcuNy41MC4yMDE0 MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCTIw MTQtMDYtMTMgMjA6MDU6MzMuMDYzNTA2ODIyICswMjAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCTIwMTUtMDEtMDEgMTc6MDA6NDMu MTcyODk3NzcxICswMTAwCiBAQCAtMCwwICsxLDIzMyBAQAogKyMgQ29weXJpZ2h0IDE5OTIsIDE5 OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAKICsjIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjA1OSwxMCArMjA1OSwxMCBAQCBJbmRleDogZ2Ri LTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCiArZ2Ri X3Rlc3QgInVwIiAiI1xbMC05XF0qICpcWzAtOXhhLWZIJ1xdKiBpbiAuKiBcXCguKlxcKS4qIiAi dXAgaW4gY29yZWZpbGUuZXhwIChyZWluaXQpIgogKwogK2dkYl90ZXN0ICJjb3JlIiAiTm8gY29y ZSBmaWxlIG5vdy4iCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dk Yi5waWUvTWFrZWZpbGUuaW4KK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxlLmluCTIwMTQtMDYtMTMgMjA6MDU6MzMuMDYzNTA2 ODIyICswMjAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUv TWFrZWZpbGUuaW4JMjAxNS0wMS0wMSAxNzowMDo0My4xNzI4OTc3NzEgKzAxMDAKIEBAIC0wLDAg KzEsMTkgQEAKICtWUEFUSCA9IEBzcmNkaXJACiArc3JjZGlyID0gQHNyY2RpckAKCmRpZmYgLS1n aXQgYS9nZGItNi41LWJ6MjE2NzExLWNsb25lLWlzLW91dGVybW9zdC5wYXRjaCBiL2dkYi02LjUt YnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJtb3N0LnBhdGNoCmluZGV4IDlmYjIzZWQuLmEyYzRiOGYg MTAwNjQ0Ci0tLSBhL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJtb3N0LnBhdGNoCisr KyBiL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJtb3N0LnBhdGNoCkBAIC0yMywxMSAr MjMsMTEgQEAgaW5zdGVhZC4KIAogCVBvcnQgdG8gR0RCLTYuNy4KIAotSW5kZXg6IGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvYW1kNjQtbGludXgtdGRlcC5jCTIwMTQtMDItMDQgMjM6NDA6MDYu MjYzNDgzNDY5ICswMTAwCi0rKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYW1kNjQtbGludXgt dGRlcC5jCTIwMTQtMDItMDQgMjM6NDc6MTguNDM4MDA5MjkwICswMTAwCi1AQCAtMjg5LDYgKzI4 OSw4MCBAQCBhbWQ2NF9saW51eF9yZWdpc3Rlcl9yZWdncm91cF9wIChzdHJ1Y3QKKy0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwkyMDE1LTAxLTAxIDE3 OjAxOjUxLjUwNjg1NjI0MSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FtZDY0 LWxpbnV4LXRkZXAuYwkyMDE1LTAxLTAxIDE3OjAxOjU0Ljc2OTg1NDM0OSArMDEwMAorQEAgLTI5 MCw2ICsyOTAsODAgQEAgYW1kNjRfbGludXhfcmVnaXN0ZXJfcmVnZ3JvdXBfcCAoc3RydWN0CiAg CiAgLyogU2V0IHRoZSBwcm9ncmFtIGNvdW50ZXIgZm9yIHByb2Nlc3MgUFRJRCB0byBQQy4gICov CiAgCkBAIC0xMDgsNyArMTA4LDcgQEAgSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2Ft ZDY0LWxpbnV4LXRkZXAuYwogIHN0YXRpYyB2b2lkCiAgYW1kNjRfbGludXhfd3JpdGVfcGMgKHN0 cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIENPUkVfQUREUiBwYykKICB7Ci1AQCAtMTYwNyw2ICsx NjgxLDggQEAgYW1kNjRfbGludXhfaW5pdF9hYmlfY29tbW9uKHN0cnVjdCBnZGJhcgorQEAgLTE2 NTcsNiArMTczMSw4IEBAIGFtZDY0X2xpbnV4X2luaXRfYWJpX2NvbW1vbihzdHJ1Y3QgZ2RiYXIK ICAKICAgIHRkZXAtPnhzYXZlX3hjcjBfb2Zmc2V0ID0gSTM4Nl9MSU5VWF9YU0FWRV9YQ1IwX09G RlNFVDsKICAKQEAgLTExNywxMSArMTE3LDExIEBAIEluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9hbWQ2NC1saW51eC10ZGVwLmMKICAgIC8qIEFkZCB0aGUgJW9yaWdfcmF4IHJlZ2lzdGVy IHVzZWQgZm9yIHN5c2NhbGwgcmVzdGFydGluZy4gICovCiAgICBzZXRfZ2RiYXJjaF93cml0ZV9w YyAoZ2RiYXJjaCwgYW1kNjRfbGludXhfd3JpdGVfcGMpOwogIAotSW5kZXg6IGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL2FtZDY0LXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2FtZDY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9n ZGIvYW1kNjQtdGRlcC5jCTIwMTQtMDItMDQgMjM6NDA6MDYuMjY1NDgzNDcxICswMTAwCi0rKysg Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYW1kNjQtdGRlcC5jCTIwMTQtMDItMDQgMjM6NDU6NDAu ODQ2ODkxNjUzICswMTAwCi1AQCAtMjM1OSw2ICsyMzU5LDcgQEAgYW1kNjRfZnJhbWVfdW53aW5k X3N0b3BfcmVhc29uIChzdHJ1Y3QgZgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv YW1kNjQtdGRlcC5jCTIwMTUtMDEtMDEgMTc6MDE6NTEuNTA3ODU2MjQwICswMTAwCisrKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvYW1kNjQtdGRlcC5jCTIwMTUtMDEtMDEgMTc6MDE6NTQuNzcw ODU0MzQ5ICswMTAwCitAQCAtMjQ5Miw2ICsyNDkyLDcgQEAgYW1kNjRfZnJhbWVfdW53aW5kX3N0 b3BfcmVhc29uIChzdHJ1Y3QgZgogIHsKICAgIHN0cnVjdCBhbWQ2NF9mcmFtZV9jYWNoZSAqY2Fj aGUgPQogICAgICBhbWQ2NF9mcmFtZV9jYWNoZSAodGhpc19mcmFtZSwgdGhpc19jYWNoZSk7CkBA IC0xMjksNyArMTI5LDcgQEAgSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FtZDY0LXRk ZXAuYwogIAogICAgaWYgKCFjYWNoZS0+YmFzZV9wKQogICAgICByZXR1cm4gVU5XSU5EX1VOQVZB SUxBQkxFOwotQEAgLTIzNjcsNiArMjM2OCwxMCBAQCBhbWQ2NF9mcmFtZV91bndpbmRfc3RvcF9y ZWFzb24gKHN0cnVjdCBmCitAQCAtMjUwMCw2ICsyNTAxLDEwIEBAIGFtZDY0X2ZyYW1lX3Vud2lu ZF9zdG9wX3JlYXNvbiAoc3RydWN0IGYKICAgIGlmIChjYWNoZS0+YmFzZSA9PSAwKQogICAgICBy ZXR1cm4gVU5XSU5EX09VVEVSTU9TVDsKICAKQEAgLTE0MCw3ICsxNDAsNyBAQCBJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvYW1kNjQtdGRlcC5jCiAgICByZXR1cm4gVU5XSU5EX05PX1JF QVNPTjsKICB9CiAgCi1AQCAtMjQ5OCw2ICsyNTAzLDcgQEAgYW1kNjRfc2lndHJhbXBfZnJhbWVf dGhpc19pZCAoc3RydWN0IGZyYQorQEAgLTI2MzEsNiArMjYzNiw3IEBAIGFtZDY0X3NpZ3RyYW1w X2ZyYW1lX3RoaXNfaWQgKHN0cnVjdCBmcmEKICB7CiAgICBzdHJ1Y3QgYW1kNjRfZnJhbWVfY2Fj aGUgKmNhY2hlID0KICAgICAgYW1kNjRfc2lndHJhbXBfZnJhbWVfY2FjaGUgKHRoaXNfZnJhbWUs IHRoaXNfY2FjaGUpOwpAQCAtMTQ4LDcgKzE0OCw3IEBAIEluZGV4OiBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9hbWQ2NC10ZGVwLmMKICAKICAgIGlmICghY2FjaGUtPmJhc2VfcCkKICAgICAgKCp0 aGlzX2lkKSA9IGZyYW1lX2lkX2J1aWxkX3VuYXZhaWxhYmxlX3N0YWNrIChnZXRfZnJhbWVfcGMg KHRoaXNfZnJhbWUpKTsKLUBAIC0yNTA2LDYgKzI1MTIsMTEgQEAgYW1kNjRfc2lndHJhbXBfZnJh bWVfdGhpc19pZCAoc3RydWN0IGZyYQorQEAgLTI2MzksNiArMjY0NSwxMSBAQCBhbWQ2NF9zaWd0 cmFtcF9mcmFtZV90aGlzX2lkIChzdHJ1Y3QgZnJhCiAgICAgICAgLyogVGhpcyBtYXJrcyB0aGUg b3V0ZXJtb3N0IGZyYW1lLiAgKi8KICAgICAgICByZXR1cm47CiAgICAgIH0KQEAgLTE2MCwxMSAr MTYwLDExIEBAIEluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9hbWQ2NC10ZGVwLmMKICAg IGVsc2UKICAgICAgKCp0aGlzX2lkKSA9IGZyYW1lX2lkX2J1aWxkIChjYWNoZS0+YmFzZSArIDE2 LCBnZXRfZnJhbWVfcGMgKHRoaXNfZnJhbWUpKTsKICB9Ci1JbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvaTM4Ni10ZGVwLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pMzg2 LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvaTM4 Ni10ZGVwLmMJMjAxNC0wMi0wNCAyMzo0MDowNi4yNjc0ODM0NzMgKzAxMDAKLSsrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9pMzg2LXRkZXAuYwkyMDE0LTAyLTA0IDIzOjQzOjMzLjA0ODczNDk3 NCArMDEwMAotQEAgLTc4MzAsNiArNzgzMCw5IEBAIGkzODZfZ2RiYXJjaF9pbml0IChzdHJ1Y3Qg Z2RiYXJjaF9pbmZvIGkKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2kzODYtdGRl cC5jCTIwMTUtMDEtMDEgMTc6MDE6NTEuNTA5ODU2MjM5ICswMTAwCisrKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvaTM4Ni10ZGVwLmMJMjAxNS0wMS0wMSAxNzowMTo1NC43NzI4NTQzNDggKzAx MDAKK0BAIC04Mjg2LDYgKzgyODYsOSBAQCBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFy Y2hfaW5mbyBpCiAgCiAgICB0ZGVwLT54c2F2ZV94Y3IwX29mZnNldCA9IC0xOwogIApAQCAtMTc0 LDE3NSArMTc0LDI0IEBAIEluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9pMzg2LXRkZXAu YwogICAgdGRlcC0+cmVjb3JkX3JlZ21hcCA9IGkzODZfcmVjb3JkX3JlZ21hcDsKICAKICAgIHNl dF9nZGJhcmNoX2xvbmdfbG9uZ19hbGlnbl9iaXQgKGdkYmFyY2gsIDMyKTsKLUluZGV4OiBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9pMzg2LXRkZXAuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2kzODYtdGRlcC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5v cmlnL2dkYi9pMzg2LXRkZXAuaAkyMDE0LTAyLTA0IDIzOjQwOjA2LjI2ODQ4MzQ3NSArMDEwMAot KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2kzODYtdGRlcC5oCTIwMTQtMDItMDQgMjM6NDM6 MzMuMDQ4NzM0OTc0ICswMTAwCi1AQCAtMTkyLDYgKzE5Miw5IEBAIHN0cnVjdCBnZGJhcmNoX3Rk ZXAKLSAgIGludCAoKmkzODZfc3lzZW50ZXJfcmVjb3JkKSAoc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSk7Ci0gICAvKiBQYXJzZSBzeXNjYWxsIGFyZ3MuICAqLwotICAgaW50ICgqaTM4Nl9zeXNj YWxsX3JlY29yZCkgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUpOworLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvaTM4Ni10ZGVwLmgJMjAxNS0wMS0wMSAxNzowMTo1NC43NzI4NTQz NDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pMzg2LXRkZXAuaAkyMDE1LTAx LTAxIDE3OjAyOjE1LjgyNjg0MjE0MyArMDEwMAorQEAgLTI0MCw2ICsyNDAsOSBAQCBzdHJ1Y3Qg Z2RiYXJjaF90ZGVwCisgCisgICAvKiBSZWdzZXRzLiAqLworICAgY29uc3Qgc3RydWN0IHJlZ3Nl dCAqZnByZWdzZXQ7CiArCiArICAvKiBEZXRlY3QgT1MgZGVwZW5kZW50IG91dGVybW9zdCBmcmFt ZXM7IHN1Y2ggYXMgYGNsb25lJy4gICovCiArICBpbnQgKCpvdXRlcm1vc3RfZnJhbWVfcCkgKHN0 cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lKTsKICB9OwogIAogIC8qIEZsb2F0aW5nLXBvaW50 IHJlZ2lzdGVycy4gICovCi1JbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaWE2NC10ZGVw LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2lhNjQtdGRl cC5jCTIwMTQtMDItMDQgMjM6NDA6MDYuMjcwNDgzNDc3ICswMTAwCi0rKysgZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvaWE2NC10ZGVwLmMJMjAxNC0wMi0wNCAyMzo0MzozMy4wNDk3MzQ5NzUgKzAx MDAKLUBAIC0yMTc2LDYgKzIxNzYsMTM4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZnJhbWVfdW53 aW5kIGlhNjRfZnIKLSAgIGRlZmF1bHRfZnJhbWVfc25pZmZlcgotIH07Ci0gCi0rLyogRGV0ZWN0 IHRoZSBvdXRlcm1vc3QgZnJhbWU7IGR1cmluZyB1bndpbmQgb2YKLSsgICAJIzYgIDB4MjAwMDAw MDAwMDM0NzEwMCBpbiBfX2Nsb25lMiAoKSBmcm9tIC9saWIvbGliYy5zby42LjEKLSsgICBhdm9p ZCB0aGUgYWRkaXRpb25hbCBib2d1cyBmcmFtZQotKyAgIAkjNyAgMHgwMDAwMDAwMDAwMDAwMDAw IGluID8/ICgpICAqLwotKwotK3N0YXRpYyBjaGFyIGxpbnV4X2Nsb25lMl9jb2RlW10gPQotK3sK LSsvKiBsaWJjL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2lhNjQvY2xvbmUyLlMgKi8KLSsgIDB4 MDksIDB4MDAsIDB4MjAsIDB4MTIsIDB4OTAsIDB4MTEsIDB4MDAsIDB4NDAsCi0rICAweDI4LCAw eDIwLCAweDIzLCAweDAwLCAweDAwLCAweDAwLCAweDA0LCAweDAwLAotKy8qICAgICAgICAgc3Q0 IFtyOV09cjggKi8KLSsvKiAgICAgICAgIHN0NCBbcjEwXT1yOCAqLwotKy8qICAgICAgICAgOzsg Ki8KLSsvKiAjZW5kaWYgKi8KLSsgIDB4MDIsIDB4NTAsIDB4MjEsIDB4NDAsIDB4MTgsIDB4MTQs IDB4OTAsIDB4MDIsCi0rICAweDkwLCAweDAwLCAweDQyLCAweDAwLCAweDAwLCAweDAwLCAweDA0 LCAweDAwLAotKy8qIDE6ICAgICAgbGQ4IG91dDE9W2luMF0sOCAgICAgICAgfCogUmV0cmlldmUg Y29kZSBwb2ludGVyLiAgICAgICAqfCAqLwotKy8qICAgICAgICAgbW92IG91dDA9aW40ICAgICAg ICAgICAgfCogUGFzcyBwcm9wZXIgYXJndW1lbnQgdG8gZm4gKnwgKi8KLSsvKiAgICAgICAgIDs7 ICovCi0rICAweDExLCAweDA4LCAweDAwLCAweDQwLCAweDE4LCAweDEwLCAweDYwLCAweDUwLAot KyAgMHgwNSwgMHg4MCwgMHgwMywgMHgwMCwgMHg2OCwgMHgwMCwgMHg4MCwgMHgxMiwKLSsvKiAg ICAgICAgIGxkOCBncD1baW4wXSAgICAgICAgICAgIHwqIExvYWQgZnVuY3Rpb24gZ3AuICAgICAg ICAgICAgKnwgKi8KLSsvKiAgICAgICAgIG1vdiBiNj1vdXQxICovCi0rLyogICAgICAgICBici5j YWxsLmRwdGsubWFueSBycD1iNiB8KiBDYWxsIGZuKGFyZykgaW4gdGhlIGNoaWxkICAgICp8ICov Ci0rLyogICAgICAgICA7OyAqLwotKyAgMHgxMCwgMHg0OCwgMHgwMSwgMHgxMCwgMHgwMCwgMHgy MSwgMHgxMCwgMHgwMCwKLSsgIDB4YTAsIDB4MDAsIDB4NDIsIDB4MDAsIDB4OTgsIDB4ZGYsIDB4 ZjcsIDB4NWIsCi0rLyogICAgICAgICBtb3Ygb3V0MD1yOCAgICAgICAgICAgICB8KiBBcmd1bWVu dCB0byBfZXhpdCAgICAgICAgICAgICp8ICovCi0rLyogICAgICAgICBtb3YgZ3A9bG9jMCAqLwot Ky8qICAgICAgICAgLmdsb2JsIEhJRERFTl9KVU1QVEFSR0VUKF9leGl0KSAqLwotKy8qICAgICAg ICAgYnIuY2FsbC5kcG50Lm1hbnkgcnA9SElEREVOX0pVTVBUQVJHRVQoX2V4aXQpICovCi0rLyog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8KiBjYWxsIF9leGl0IHdpdGggcmVzdWx0 IGZyb20gZm4uICAgICAgKnwgKi8KLSsgIDB4MTEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4 MDAsIDB4MDAsIDB4MDAsCi0rICAweDAwLCAweDAyLCAweDAwLCAweDgwLCAweDAwLCAweDAwLCAw eDg0LCAweDAwCi0rLyogICAgICAgICByZXQgICAgICAgICAgICAgICAgICAgICB8KiBOb3QgcmVh Y2hlZC4gICAgICAgICAqfCAqLwotK307Ci0rCi0rI2RlZmluZSBMSU5VWF9DTE9ORV9QUkVfU0xP VFMgMwkvKiBOdW1iZXIgb2Ygc2xvdHMgYmVmb3JlIFBDLiAgKi8KLSsjZGVmaW5lIExJTlVYX0NM T05FX0xFTiAoc2l6ZW9mIGxpbnV4X2Nsb25lMl9jb2RlKQotKwotK3N0YXRpYyBpbnQKLStpYTY0 X2xpbnV4X2Nsb25lMl9ydW5uaW5nIChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhpc19mcmFtZSkKLSt7 Ci0rICBDT1JFX0FERFIgcGMgPSBnZXRfZnJhbWVfcGMgKHRoaXNfZnJhbWUpOwotKyAgY2hhciBi dWZbTElOVVhfQ0xPTkVfTEVOXTsKLSsgIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqbWluc3ltOwot KyAgbG9uZyBsb25nIGluc3RyOwotKwotKyAgaWYgKCFzYWZlX2ZyYW1lX3Vud2luZF9tZW1vcnkg KHRoaXNfZnJhbWUsIHBjIC0gTElOVVhfQ0xPTkVfUFJFX1NMT1RTICogMTYsCi0rCQkJCSBidWYs IExJTlVYX0NMT05FX0xFTikpCi0rICAgIHJldHVybiAwOwotKwotKyAgaWYgKG1lbWNtcCAoYnVm LCBsaW51eF9jbG9uZTJfY29kZSwgTElOVVhfQ0xPTkVfUFJFX1NMT1RTICogMTYpICE9IDApCi0r ICAgIHJldHVybiAwOwotKwotKyAgLyogQWRqdXN0IHRoZSBleHBlY3RlZCAiX2V4aXQiIGFkZHJl c3MuICAqLwotKyAgbWluc3ltID0gbG9va3VwX21pbmltYWxfc3ltYm9sX3RleHQgKCJfZXhpdCIs IE5VTEwpOwotKyAgaWYgKG1pbnN5bSA9PSBOVUxMKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIGlu c3RyID0gc2xvdE5fY29udGVudHMgKCZsaW51eF9jbG9uZTJfY29kZVtMSU5VWF9DTE9ORV9QUkVf U0xPVFMgKiAxNl0sIDIpOwotKyAgaW5zdHIgJj0gfigoKDFMIDw8IDIwKSAtIDEpIDw8IDEzKTsK LSsgIC8qIEFkZHJlc3MgaXMgcmVsYXRpdmUgdG8gdGhlIGp1bXAgaW5zdHJ1Y3Rpb24gc2xvdCwg bm90IHRoZSBuZXh0IG9uZS4gICovCi0rICBpbnN0ciB8PSAoKChTWU1CT0xfVkFMVUVfQUREUkVT UyAobWluc3ltKSAtIChwYyAmIH4weGZMKSkgPj4gNCkKLSsJICAgICYgKCgxTCA8PCAyMCkgLSAx KSkgPDwgMTM7Ci0rICByZXBsYWNlX3Nsb3ROX2NvbnRlbnRzICgmbGludXhfY2xvbmUyX2NvZGVb TElOVVhfQ0xPTkVfUFJFX1NMT1RTICogMTZdLCBpbnN0ciwKLSsJCQkgIDIpOwotKwotKyAgaWYg KG1lbWNtcCAoJmJ1ZltMSU5VWF9DTE9ORV9QUkVfU0xPVFMgKiAxNl0sCi0rICAgICAgICAgICAg ICAmbGludXhfY2xvbmUyX2NvZGVbTElOVVhfQ0xPTkVfUFJFX1NMT1RTICogMTZdLAotKwkgICAg ICBMSU5VWF9DTE9ORV9MRU4gLSAoTElOVVhfQ0xPTkVfUFJFX1NMT1RTICogMTYpKSAhPSAwKQot KyAgICByZXR1cm4gMDsKLSsKLSsgIHJldHVybiAxOwotK30KLSsKLStzdGF0aWMgaW50Ci0raWE2 NF9vdXRlcm1vc3RfZnJhbWUgKHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lKQotK3sKLSsg IENPUkVfQUREUiBwYyA9IGdldF9mcmFtZV9wYyAodGhpc19mcmFtZSk7Ci0rICBjaGFyICpuYW1l OwotKwotKyAgZmluZF9wY19wYXJ0aWFsX2Z1bmN0aW9uIChwYywgJm5hbWUsIE5VTEwsIE5VTEwp OwotKwotKyAgLyogSWYgd2UgaGF2ZSBOQU1FLCB3ZSBjYW4gb3B0aW1pemUgdGhlIHNlYXJjaC4K LSsgICAgIGBjbG9uZScgTkFNRSBzdGlsbCBuZWVkcyB0byBoYXZlIHRoZSBjb2RlIGNoZWNrZWQg YXMgaXRzIG5hbWUgbWF5IGJlCi0rICAgICBwcmVzZW50IGluIHRoZSB1c2VyIGNvZGUuCi0rICAg ICBgX19jbG9uZScgTkFNRSBzaG91bGQgbm90IGJlIHByZXNlbnQgaW4gdGhlIHVzZXIgY29kZSBi dXQgaW4gdGhlIGluaXRpYWwKLSsgICAgIHBhcnRzIG9mIHRoZSBgX19jbG9uZScgaW1wbGVtZW50 YXRpb24gdGhlIHVud2luZCBzdGlsbCBtYWtlcyBzZW5zZS4KLSsgICAgIE1vcmUgZGV0YWlsZWQg dW53aW5kaW5nIGRlY2lzaW9uIHdvdWxkIGJlIHRvbyBtdWNoIHNlbnNpdGl2ZSB0byBwb3NzaWJs ZQotKyAgICAgc3VidGxlIGNoYW5nZXMgaW4gc3BlY2lmaWMgZ2xpYmMgcmV2aXNpb25zLiAgKi8K LSsgIGlmIChuYW1lID09IE5VTEwgfHwgc3RyY21wIChuYW1lLCAiY2xvbmUyIikgPT0gMAotKyAg ICAgIHx8IHN0cmNtcCAoIl9fY2xvbmUyIiwgbmFtZSkgPT0gMCkKLSsgICAgcmV0dXJuIChpYTY0 X2xpbnV4X2Nsb25lMl9ydW5uaW5nICh0aGlzX2ZyYW1lKSAhPSAwKTsKLSsKLSsgIHJldHVybiAw OwotK30KLSsKLStzdGF0aWMgdm9pZAotK2lhNjRfY2xvbmUyX2ZyYW1lX3RoaXNfaWQgKHN0cnVj dCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lLCB2b2lkICoqdGhpc19jYWNoZSwKLSsJCQkgICBzdHJ1 Y3QgZnJhbWVfaWQgKnRoaXNfaWQpCi0rewotKyAgLyogTGVhdmUgdGhlIGRlZmF1bHQgb3V0ZXJt b3N0IGZyYW1lIGF0ICpUSElTX0lELiAgKi8KLSt9Ci0rCi0rc3RhdGljIHN0cnVjdCB2YWx1ZSAq Ci0raWE2NF9jbG9uZTJfZnJhbWVfcHJldl9yZWdpc3RlciAoc3RydWN0IGZyYW1lX2luZm8gKnRo aXNfZnJhbWUsCi0rCQkJCSB2b2lkICoqdGhpc19jYWNoZSwgaW50IHJlZ251bSkKLSt7Ci0rICBy ZXR1cm4gZnJhbWVfdW53aW5kX2dvdF9yZWdpc3RlciAodGhpc19mcmFtZSwgcmVnbnVtLCByZWdu dW0pOwotK30KLSsKLStzdGF0aWMgaW50Ci0raWE2NF9jbG9uZTJfZnJhbWVfc25pZmZlciAoY29u c3Qgc3RydWN0IGZyYW1lX3Vud2luZCAqc2VsZiwKLSsJCQkgICBzdHJ1Y3QgZnJhbWVfaW5mbyAq dGhpc19mcmFtZSwKLSsJCQkgICB2b2lkICoqdGhpc19wcm9sb2d1ZV9jYWNoZSkKLSt7Ci0rICBp ZiAoaWE2NF9vdXRlcm1vc3RfZnJhbWUgKHRoaXNfZnJhbWUpKQotKyAgICByZXR1cm4gMTsKLSsK LSsgIHJldHVybiAwOwotK30KLSsKLStzdGF0aWMgY29uc3Qgc3RydWN0IGZyYW1lX3Vud2luZCBp YTY0X2Nsb25lMl9mcmFtZV91bndpbmQgPQotK3sKLSsgIE5PUk1BTF9GUkFNRSwKLSsgICZpYTY0 X2Nsb25lMl9mcmFtZV90aGlzX2lkLAotKyAgJmlhNjRfY2xvbmUyX2ZyYW1lX3ByZXZfcmVnaXN0 ZXIsCi0rICBOVUxMLAotKyAgJmlhNjRfY2xvbmUyX2ZyYW1lX3NuaWZmZXIKLSt9OwotKwotIC8q IFNpZ25hbCB0cmFtcG9saW5lcy4gICovCi0gCi0gc3RhdGljIHZvaWQKLUBAIC00MDIzLDYgKzQx NTUsNyBAQCBpYTY0X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpCi0gICBzZXRf Z2RiYXJjaF9kdW1teV9pZCAoZ2RiYXJjaCwgaWE2NF9kdW1teV9pZCk7Ci0gCi0gICBzZXRfZ2Ri YXJjaF91bndpbmRfcGMgKGdkYmFyY2gsIGlhNjRfdW53aW5kX3BjKTsKLSsgIGZyYW1lX3Vud2lu ZF9hcHBlbmRfdW53aW5kZXIgKGdkYmFyY2gsICZpYTY0X2Nsb25lMl9mcmFtZV91bndpbmQpOwot ICNpZmRlZiBIQVZFX0xJQlVOV0lORF9JQTY0X0gKLSAgIGZyYW1lX3Vud2luZF9hcHBlbmRfdW53 aW5kZXIgKGdkYmFyY2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaWE2NF9s aWJ1bndpbmRfc2lndHJhbXBfZnJhbWVfdW53aW5kKTsKLUluZGV4OiBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUtc3RvcC5jCitJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2J0LWNsb25lLXN0b3Au YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFk cy9idC1jbG9uZS1zdG9wLmMJMjAxNC0wMi0wNCAyMzo0MzozMy4wNTA3MzQ5NzYgKzAxMDAKKysr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUt c3RvcC5jCTIwMTUtMDEtMDEgMTc6MDE6NTQuNzczODU0MzQ3ICswMTAwCiBAQCAtMCwwICsxLDM5 IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4K ICsKQEAgLTM4MywxMCArMjMyLDEwIEBAIEluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90 ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUtc3RvcC5jCiArCWZvciAoOzspCiArCQlwYXVz ZSgpOwogK30KLUluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnRo cmVhZHMvYnQtY2xvbmUtc3RvcC5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUtc3RvcC5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUtc3RvcC5leHAJ MjAxNC0wMi0wNCAyMzo0MzozMy4wNTA3MzQ5NzYgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUtc3RvcC5leHAJMjAxNS0wMS0w MSAxNzowMTo1NC43NzQ4NTQzNDYgKzAxMDAKIEBAIC0wLDAgKzEsNjEgQEAKICsjIENvcHlyaWdo dCAyMDA2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwoKZGlmZiAtLWdpdCBhL2dk Yi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQt bG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCmluZGV4IDExMzg2NTguLmM5OGU2ODYgMTAwNjQ0Ci0t LSBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKKysrIGIvZ2RiLTYu Ni1idWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRjaApAQCAtNTgsMjQgKzU4LDEwIEBAIEh0 dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAxL21zZzAwNTE3Lmh0bWwK IAkqIGV4ZWMuYyAoZXhlY19maWxlX2F0dGFjaCk6IFByaW50IGEgbW9yZSB1c2VmdWwgZXJyb3Ig bWVzc2FnZSBpZiB0aGUKIAl1c2VyIGRpZCAiZ2RiIGNvcmUiLgogCi1JbmRleDogZ2RiLTcuNy41 MC4yMDE0MDYwOS9nZGIvZXhjZXB0aW9ucy5oCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZXhlYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9l eGNlcHRpb25zLmgJMjAxNC0wNi0xMyAyMDoyNjo0Ni45ODg4MDQ1NTMgKzAyMDAKLSsrKyBnZGIt Ny43LjUwLjIwMTQwNjA5L2dkYi9leGNlcHRpb25zLmgJMjAxNC0wNi0xMyAyMDoyNzowMS45MzA4 MjAwNTcgKzAyMDAKLUBAIC0xMDAsNiArMTAwLDkgQEAgZW51bSBlcnJvcnMgewotICAgLyogUmVx dWVzdGVkIGZlYXR1cmUsIG1ldGhvZCwgbWVjaGFuaXNtLCBldGMuIGlzIG5vdCBzdXBwb3J0ZWQu ICAqLwotICAgTk9UX1NVUFBPUlRFRF9FUlJPUiwKLSAKLSsgIC8qIEF0dGVtcHQgdG8gbG9hZCBh IGNvcmUgZmlsZSBhcyBleGVjdXRhYmxlLiAgKi8KLSsgIElTX0NPUkVfRVJST1IsCi0rCi0gICAv KiBBZGQgbW9yZSBlcnJvcnMgaGVyZS4gICovCi0gICBOUl9FUlJPUlMKLSB9OwotSW5kZXg6IGdk Yi03LjcuNTAuMjAxNDA2MDkvZ2RiL2V4ZWMuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuNTAu MjAxNDA2MDkub3JpZy9nZGIvZXhlYy5jCTIwMTQtMDYtMTMgMjA6MjY6NDQuODMxODAyMzE1ICsw MjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZXhlYy5jCTIwMTQtMDYtMTMgMjA6Mjc6 MTcuMjgyODM2NDU0ICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9leGVj LmMJMjAxNS0wMS0wMyAyMzoxODozOC4wOTc0Mjc5MDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9leGVjLmMJMjAxNS0wMS0wMyAyMzoxOTowMi40NDg1NTYzOTEgKzAxMDAKIEBA IC0zNSw2ICszNSw3IEBACiAgI2luY2x1ZGUgInByb2dzcGFjZS5oIgogICNpbmNsdWRlICJnZGJf YmZkLmgiCkBAIC04NCw3ICs3MCw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9l eGVjLmMKICAKICAjaW5jbHVkZSA8ZmNudGwuaD4KICAjaW5jbHVkZSAicmVhZGxpbmUvcmVhZGxp bmUuaCIKLUBAIC0yMzEsMTIgKzIzMiwyNyBAQCBleGVjX2ZpbGVfYXR0YWNoIChjaGFyICpmaWxl bmFtZSwgaW50IGZyCitAQCAtMjIyLDEyICsyMjMsMjcgQEAgZXhlY19maWxlX2F0dGFjaCAoY29u c3QgY2hhciAqZmlsZW5hbWUsCiAgCiAgICAgICAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0X21hdGNo ZXMgKGV4ZWNfYmZkLCBiZmRfb2JqZWN0LCAmbWF0Y2hpbmcpKQogIAl7CkBAIC0xMTUsMTEgKzEw MSwxMSBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZXhlYy5jCiAgCX0KICAKICAg ICAgICBpZiAoYnVpbGRfc2VjdGlvbl90YWJsZSAoZXhlY19iZmQsICZzZWN0aW9ucywgJnNlY3Rp b25zX2VuZCkpCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvbWFpbi5jCitJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWFpbi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41 MC4yMDE0MDYwOS5vcmlnL2dkYi9tYWluLmMJMjAxNC0wNi0xMyAyMDoyNjo0NC44MzE4MDIzMTUg KzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9tYWluLmMJMjAxNC0wNi0xMyAyMDoy Njo0Ni45OTA4MDQ1NTUgKzAyMDAKLUBAIC0zNDEsNiArMzQxLDM2IEBAIHR5cGVkZWYgc3RydWN0 IGNtZGFyZyB7CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9tYWluLmMJMjAxNS0w MS0wMyAyMzoxODozOC4wOTg0Mjc5MTMgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9tYWluLmMJMjAxNS0wMS0wMyAyMzoyMjoxMC4xNTc1NDY3OTIgKzAxMDAKK0BAIC00MjYsNiAr NDI2LDM2IEBAIHR5cGVkZWYgc3RydWN0IGNtZGFyZyB7CiAgLyogRGVmaW5lIHR5cGUgVkVDIChj bWRhcmdfcykuICAqLwogIERFRl9WRUNfTyAoY21kYXJnX3MpOwogIApAQCAtMTI4LDcgKzExNCw3 IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9tYWluLmMKICsgICBjb3JlX2ZpbGVf Y29tbWFuZCBmYWlsZWQgdG8gZmluZCBhIG1hdGNoaW5nIGV4ZWN1dGFibGUuICAqLwogKwogK3N0 YXRpYyB2b2lkCi0rZXhlY19vcl9jb3JlX2ZpbGVfYXR0YWNoIChjaGFyICpmaWxlbmFtZSwgaW50 IGZyb21fdHR5KQorK2V4ZWNfb3JfY29yZV9maWxlX2F0dGFjaCAoY29uc3QgY2hhciAqZmlsZW5h bWUsIGludCBmcm9tX3R0eSkKICt7CiArICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBl OwogKwpAQCAtMTQyLDcgKzEyOCw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9t YWluLmMKICsgICAgewogKyAgICAgIGlmIChlLmVycm9yID09IElTX0NPUkVfRVJST1IpCiArCXsK LSsJICBjb3JlX2ZpbGVfY29tbWFuZCAoZmlsZW5hbWUsIGZyb21fdHR5KTsKKysJICBjb3JlX2Zp bGVfY29tbWFuZCAoKGNoYXIgKikgZmlsZW5hbWUsIGZyb21fdHR5KTsKICsKICsJICAvKiBJZmYg dGhlIGNvcmUgZmlsZSBmb3VuZCBpdHMgZXhlY3V0YWJsZSBzdXBwcmVzcyB0aGUgZXJyb3IgbWVz c2FnZQogKwkgICAgIGZyb20gZXhlY19maWxlX2F0dGFjaC4gICovCkBAIC0xNTYsNyArMTQyLDcg QEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL21haW4uYwogIHN0YXRpYyBpbnQKICBj YXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIHsKLUBAIC04NTQsNiArODg0LDggQEAgY2FwdHVy ZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC05MTAsNiArOTQwLDggQEAgY2FwdHVyZWRfbWFpbiAo dm9pZCAqZGF0YSkKICAJewogIAkgIHN5bWFyZyA9IGFyZ3Zbb3B0aW5kXTsKICAJICBleGVjYXJn ID0gYXJndltvcHRpbmRdOwpAQCAtMTY1LDExICsxNTEsMTEgQEAgSW5kZXg6IGdkYi03LjcuNTAu MjAxNDA2MDkvZ2RiL21haW4uYwogIAkgIG9wdGluZCsrOwogIAl9CiAgCi1AQCAtMTAxNywxMSAr MTA0OSwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTEwNjksMTEgKzExMDEs MjYgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgICAgICAmJiBzeW1hcmcgIT0gTlVM TAogICAgICAgICYmIHN0cmNtcCAoZXhlY2FyZywgc3ltYXJnKSA9PSAwKQogICAgICB7Ci0rICAg ICAgY2F0Y2hfY29tbWFuZF9lcnJvcnNfZnR5cGUgKmZ1bmM7CisrICAgICAgY2F0Y2hfY29tbWFu ZF9lcnJvcnNfY29uc3RfZnR5cGUgKmZ1bmM7CiArCiArICAgICAgLyogQ2FsbCBleGVjX29yX2Nv cmVfZmlsZV9hdHRhY2ggb25seSBpZiB0aGUgZmlsZSB3YXMgc3BlY2lmaWVkIGFzCiArCSBhIGNv bW1hbmQgbGluZSBhcmd1bWVudCAoYW5kIG5vdCBhbiBhIGNvbW1hbmQgbGluZSBvcHRpb24pLiAg Ki8KQEAgLTE4NCwxMyArMTcwLDI4IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9t YWluLmMKICAgICAgICAvKiBUaGUgZXhlYyBmaWxlIGFuZCB0aGUgc3ltYm9sLWZpbGUgYXJlIHRo ZSBzYW1lLiAgSWYgd2UgY2FuJ3QKICAgICAgICAgICBvcGVuIGl0LCBiZXR0ZXIgb25seSBwcmlu dCBvbmUgZXJyb3IgbWVzc2FnZS4KIC0gICAgICAgICBjYXRjaF9jb21tYW5kX2Vycm9ycyByZXR1 cm5zIG5vbi16ZXJvIG9uIHN1Y2Nlc3MhICAqLwotLSAgICAgIGlmIChjYXRjaF9jb21tYW5kX2Vy cm9ycyAoZXhlY19maWxlX2F0dGFjaCwgZXhlY2FyZywKLS0JCQkJIWJhdGNoX2ZsYWcsIFJFVFVS Tl9NQVNLX0FMTCkpCistICAgICAgaWYgKGNhdGNoX2NvbW1hbmRfZXJyb3JzX2NvbnN0IChleGVj X2ZpbGVfYXR0YWNoLCBleGVjYXJnLAorLQkJCQkgICAgICAhYmF0Y2hfZmxhZywgUkVUVVJOX01B U0tfQUxMKSkKICsgICAgICAgICBjYXRjaF9jb21tYW5kX2Vycm9ycyByZXR1cm5zIG5vbi16ZXJv IG9uIHN1Y2Nlc3MhCiArCSBEbyBub3QgbG9hZCBFWEVDQVJHIGFzIGEgc3ltYm9sIGZpbGUgaWYg aXQgaGFzIGJlZW4gYWxyZWFkeSBwcm9jZXNzZWQKICsJIGFzIGEgY29yZSBmaWxlLiAgKi8KLSsg ICAgICBpZiAoY2F0Y2hfY29tbWFuZF9lcnJvcnMgKGZ1bmMsIGV4ZWNhcmcsICFiYXRjaF9mbGFn LCBSRVRVUk5fTUFTS19BTEwpCisrICAgICAgaWYgKGNhdGNoX2NvbW1hbmRfZXJyb3JzX2NvbnN0 IChmdW5jLCBleGVjYXJnLCAhYmF0Y2hfZmxhZywKKysJCQkJICAgICAgUkVUVVJOX01BU0tfQUxM KQogKwkgICYmIGNvcmVfYmZkID09IE5VTEwpCiAgCWNhdGNoX2NvbW1hbmRfZXJyb3JzX2NvbnN0 IChzeW1ib2xfZmlsZV9hZGRfbWFpbiwgc3ltYXJnLAogIAkJCQkgICAgIWJhdGNoX2ZsYWcsIFJF VFVSTl9NQVNLX0FMTCk7CiAgICAgIH0KK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9j b21tb24vY29tbW9uLWV4Y2VwdGlvbnMuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjguNTAuMjAx NDEyMjgub3JpZy9nZGIvY29tbW9uL2NvbW1vbi1leGNlcHRpb25zLmgJMjAxNS0wMS0wMyAyMzox ODozOC4wOTc0Mjc5MDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb21tb24v Y29tbW9uLWV4Y2VwdGlvbnMuaAkyMDE1LTAxLTAzIDIzOjE5OjAyLjQ0OTU1NjM5NiArMDEwMAor QEAgLTk5LDYgKzk5LDkgQEAgZW51bSBlcnJvcnMgeworICAgLyogUmVxdWVzdGVkIGZlYXR1cmUs IG1ldGhvZCwgbWVjaGFuaXNtLCBldGMuIGlzIG5vdCBzdXBwb3J0ZWQuICAqLworICAgTk9UX1NV UFBPUlRFRF9FUlJPUiwKKyAKKysgIC8qIEF0dGVtcHQgdG8gbG9hZCBhIGNvcmUgZmlsZSBhcyBl eGVjdXRhYmxlLiAgKi8KKysgIElTX0NPUkVfRVJST1IsCisrCisgICAvKiBBZGQgbW9yZSBlcnJv cnMgaGVyZS4gICovCisgICBOUl9FUlJPUlMKKyB9OwoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVp bGRpZC1sb2NhdGUtcnBtLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2gK aW5kZXggNzQ2ODc3Zi4uOGRjNGJjYyAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS1ycG0ucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2gKQEAgLTEs OCArMSw4IEBACi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZXZlbnQtdG9wLmMKK0lu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9ldmVudC10b3AuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAxNC0wNi0xMyAyMDox MDoxOS42MzI3ODc2NDIgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9ldmVudC10 b3AuYwkyMDE0LTA2LTEzIDIwOjExOjQ5LjYwNTg3ODU1NyArMDIwMAotQEAgLTM4LDYgKzM4LDcg QEAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2V2ZW50LXRvcC5jCTIwMTUtMDEt MDEgMTc6MTI6MjQuODgxNDg5MDg3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv ZXZlbnQtdG9wLmMJMjAxNS0wMS0wMSAxNzoxMjoyOC44MjE0ODY4MDMgKzAxMDAKK0BAIC0zNyw2 ICszNyw3IEBACiAgI2luY2x1ZGUgImdkYmNtZC5oIgkJLyogZm9yIGRvbnRfcmVwZWF0KCkgKi8K ICAjaW5jbHVkZSAiYW5ub3RhdGUuaCIKICAjaW5jbHVkZSAibWFpbnQuaCIKQEAgLTEwLDcgKzEw LDcgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2V2ZW50LXRvcC5jCiAgCiAgLyog cmVhZGxpbmUgaW5jbHVkZSBmaWxlcy4gICovCiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5l LmgiCi1AQCAtMTc2LDYgKzE3Nyw4IEBAIHJsX2NhbGxiYWNrX3JlYWRfY2hhcl93cmFwcGVyIChn ZGJfY2xpZW4KK0BAIC0xODAsNiArMTgxLDggQEAgcmxfY2FsbGJhY2tfcmVhZF9jaGFyX3dyYXBw ZXIgKGdkYl9jbGllbgogIHZvaWQKICBjbGlfY29tbWFuZF9sb29wICh2b2lkICpkYXRhKQogIHsK QEAgLTE5LDcgKzE5LDcgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2V2ZW50LXRv cC5jCiAgICBkaXNwbGF5X2dkYl9wcm9tcHQgKDApOwogIAogICAgLyogTm93IGl0J3MgdGltZSB0 byBzdGFydCB0aGUgZXZlbnQgbG9vcC4gICovCi1AQCAtMjQzLDYgKzI0Niw4IEBAIGRpc3BsYXlf Z2RiX3Byb21wdCAoY2hhciAqbmV3X3Byb21wdCkKK0BAIC0yOTgsNiArMzAxLDggQEAgZGlzcGxh eV9nZGJfcHJvbXB0IChjb25zdCBjaGFyICpuZXdfcHJvbQogICAgLyogUmVzZXQgdGhlIG5lc3Rp bmcgZGVwdGggdXNlZCB3aGVuIHRyYWNlLWNvbW1hbmRzIGlzIHNldC4gICovCiAgICByZXNldF9j b21tYW5kX25lc3RfZGVwdGggKCk7CiAgCkBAIC0yOCwxMSArMjgsMTEgQEAgSW5kZXg6IGdkYi03 LjcuNTAuMjAxNDA2MDkvZ2RiL2V2ZW50LXRvcC5jCiAgICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFu dXAgKGZyZWVfY3VycmVudF9jb250ZW50cywgJmFjdHVhbF9nZGJfcHJvbXB0KTsKICAKICAgIC8q IERvIG5vdCBjYWxsIHRoZSBweXRob24gaG9vayBvbiBhbiBleHBsaWNpdCBwcm9tcHQgY2hhbmdl IGFzCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvc3ltZmlsZS5oCitJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41 MC4yMDE0MDYwOS5vcmlnL2dkYi9zeW1maWxlLmgJMjAxNC0wNi0xMyAyMDoxMDoxOS42MzM3ODc2 NDMgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9zeW1maWxlLmgJMjAxNC0wNi0x MyAyMDoxMDozMS4wNjY3OTkxNTggKzAyMDAKLUBAIC01NzMsNiArNTczLDggQEAgdm9pZCBtYXBf c3ltYm9sX2ZpbGVuYW1lcyAoc3ltYm9sX2ZpbGVuYQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvc3ltZmlsZS5oCTIwMTUtMDEtMDEgMTc6MTI6MjQuODgxNDg5MDg3ICswMTAwCisr KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3ltZmlsZS5oCTIwMTUtMDEtMDEgMTc6MTI6Mjgu ODIyNDg2ODAyICswMTAwCitAQCAtNTc3LDYgKzU3Nyw4IEBAIHZvaWQgbWFwX3N5bWJvbF9maWxl bmFtZXMgKHN5bWJvbF9maWxlbmEKICAvKiBidWlsZC1pZCBzdXBwb3J0LiAgKi8KICBleHRlcm4g c3RydWN0IGVsZl9idWlsZF9pZCAqYnVpbGRfaWRfYWRkcl9nZXQgKENPUkVfQUREUiBhZGRyKTsK ICBleHRlcm4gdm9pZCBkZWJ1Z19wcmludF9taXNzaW5nIChjb25zdCBjaGFyICpiaW5hcnksIGNv bnN0IGNoYXIgKmRlYnVnKTsKQEAgLTQxLDExICs0MSwxMSBAQCBJbmRleDogZ2RiLTcuNy41MC4y MDE0MDYwOS9nZGIvc3ltZmlsZS5oCiAgCiAgLyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KICAKLUlu ZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKK0luZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy43LjUwLjIwMTQwNjA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4 cAkyMDE0LTA2LTEzIDIwOjEwOjE5LjYzNDc4NzY0NCArMDIwMAotKysrIGdkYi03LjcuNTAuMjAx NDA2MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE0LTA2LTEzIDIwOjEwOjMxLjA2Nzc5 OTE1OSArMDIwMAotQEAgLTE0OTIsNyArMTQ5Miw3IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQg eyB9IHsKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ri LmV4cAkyMDE1LTAxLTAxIDE3OjEyOjI0Ljg4MzQ4OTA4NSArMDEwMAorKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE1LTAxLTAxIDE3OjEyOjI4Ljgy MzQ4NjgwMSArMDEwMAorQEAgLTE1MjIsNyArMTUyMiw3IEBAIHByb2MgZGVmYXVsdF9nZGJfc3Rh cnQgeyB9IHsKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCiAg CX0KICAgICAgfQpAQCAtNTQsMTEgKzU0LDExIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKICAgICAgc2VuZF9nZGIgInNldCBidWlsZC1pZC12 ZXJib3NlIDBcbiIKICAgICAgZ2RiX2V4cGVjdCAxMCB7CiAgCS1yZSAiJGdkYl9wcm9tcHQgJCIg ewotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9y dC5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1 cHBvcnQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi90 ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTQtMDYtMTMgMjA6MTA6MTkuNjM1Nzg3NjQ1 ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBw b3J0LmV4cAkyMDE0LTA2LTEzIDIwOjEwOjMxLjA2ODc5OTE2MCArMDIwMAotQEAgLTIxMiw3ICsy MTIsNyBAQCBwcm9jIGRlZmF1bHRfbWlfZ2RiX3N0YXJ0IHsgYXJncyB9IHsKKy0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNS0w MS0wMSAxNzoxMjoyNC44ODQ0ODkwODUgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTUtMDEtMDEgMTc6MTI6MjguODIzNDg2 ODAxICswMTAwCitAQCAtMjE0LDcgKzIxNCw3IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQg eyBhcmdzIH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIK ICAJfQogICAgICB9CkBAIC02NywyMiArNjcsMjIgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2 MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKICAgICAgc2VuZF9nZGIgIjE5MC1n ZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxuIgogICAgICBnZGJfZXhwZWN0IDEwIHsKICAJLXJl ICIuKjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxyXG4xOTBcXFxeZG9uZVxyXG4kbWlf Z2RiX3Byb21wdCQiIHsKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90dWkvdHVpLWlu dGVycC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdHVpL3R1aS1pbnRlcnAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvdHVpL3R1aS1pbnRl cnAuYwkyMDE0LTA2LTEzIDIwOjEwOjMxLjA2ODc5OTE2MCArMDIwMAotKysrIGdkYi03LjcuNTAu MjAxNDA2MDkvZ2RiL3R1aS90dWktaW50ZXJwLmMJMjAxNC0wNi0xMyAyMDoxMDo0Ny44MDY4MTY1 NDIgKzAyMDAKLUBAIC0zMiw2ICszMiw3IEBACi0gI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKKy0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3R1aS90dWktaW50ZXJwLmMJMjAxNS0wMS0w MSAxNzoxMjoyOC44MjQ0ODY4MDEgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 dWkvdHVpLWludGVycC5jCTIwMTUtMDEtMDEgMTc6MTI6NDMuMjQwNDc4NDQ0ICswMTAwCitAQCAt MzEsNiArMzEsNyBAQAorICNpbmNsdWRlICJ0dWkvdHVpLWlvLmgiCiAgI2luY2x1ZGUgImluZnJ1 bi5oIgogICNpbmNsdWRlICJvYnNlcnZlci5oIgogKyNpbmNsdWRlICJzeW1maWxlLmgiCiAgCiAg c3RhdGljIHN0cnVjdCB1aV9vdXQgKnR1aV91aV9vdXQgKHN0cnVjdCBpbnRlcnAgKnNlbGYpOwog IAotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2FjbG9jYWwubTQKK0luZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9hY2xvY2FsLm00CiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41 MC4yMDE0MDYwOS5vcmlnL2dkYi9hY2xvY2FsLm00CTIwMTQtMDYtMTMgMjA6MTA6MTkuNjM2Nzg3 NjQ2ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYWNsb2NhbC5tNAkyMDE0LTA2 LTEzIDIwOjEwOjMxLjA2OTc5OTE2MSArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvYWNsb2NhbC5tNAkyMDE1LTAxLTAxIDE3OjEyOjI0Ljg4NTQ4OTA4NCArMDEwMAorKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FjbG9jYWwubTQJMjAxNS0wMS0wMSAxNzoxMjoyOC44 MjQ0ODY4MDEgKzAxMDAKIEBAIC0xMSw2ICsxMSwyMjEgQEAKICAjIGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKICAjIFBBUlRJQ1VM QVIgUFVSUE9TRS4KQEAgLTMwNSwxMCArMzA1LDEwIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQw NjA5L2dkYi9hY2xvY2FsLm00CiAgIyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogIAogICMgQ29weXJpZ2h0 IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLUlu ZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWcuaW4KK0luZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9jb25maWcuaW4KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjUwLjIwMTQw NjA5Lm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE0LTA2LTEzIDIwOjEwOjE5LjYzNzc4NzY0NyArMDIw MAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2NvbmZpZy5pbgkyMDE0LTA2LTEzIDIwOjEw OjMxLjA2OTc5OTE2MSArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY29u ZmlnLmluCTIwMTUtMDEtMDEgMTc6MTI6MjQuODg1NDg5MDg0ICswMTAwCisrKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvY29uZmlnLmluCTIwMTUtMDEtMDEgMTc6MTI6MjguODI0NDg2ODAxICsw MTAwCiBAQCAtMzMsNiArMzMsOSBAQAogIC8qIERlZmluZSB0byBCRkQncyBkZWZhdWx0IHRhcmdl dCB2ZWN0b3IuICovCiAgI3VuZGVmIERFRkFVTFRfQkZEX1ZFQwpAQCAtMzE5LDcgKzMxOSw3IEBA IEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8g MSBpZiB0cmFuc2xhdGlvbiBvZiBwcm9ncmFtIG1lc3NhZ2VzIHRvIHRoZSB1c2VyJ3MgbmF0aXZl CiAgICAgbGFuZ3VhZ2UgaXMgcmVxdWVzdGVkLiAqLwogICN1bmRlZiBFTkFCTEVfTkxTCi1AQCAt MjEwLDYgKzIxMyw5IEBACitAQCAtMjA3LDYgKzIxMCw5IEBACiAgLyogRGVmaW5lIGlmIFB5dGhv biAyLjcgaXMgYmVpbmcgdXNlZC4gKi8KICAjdW5kZWYgSEFWRV9MSUJQWVRIT04yXzcKICAKQEAg LTMyOSwxMSArMzI5LDExIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWcu aW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYnVud2luZC1pYTY0Lmg+IGhl YWRlciBmaWxlLiAqLwogICN1bmRlZiBIQVZFX0xJQlVOV0lORF9JQTY0X0gKICAKLUluZGV4OiBn ZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWd1cmUKK0luZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9jb25maWd1cmUKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjUwLjIwMTQwNjA5Lm9y aWcvZ2RiL2NvbmZpZ3VyZQkyMDE0LTA2LTEzIDIwOjEwOjE5LjY0Mjc4NzY1MiArMDIwMAotKysr IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2NvbmZpZ3VyZQkyMDE0LTA2LTEzIDIwOjEwOjMxLjA3 Mzc5OTE2NSArMDIwMAotQEAgLTY5Miw2ICs2OTIsMTEgQEAgUEtHVkVSU0lPTgorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY29uZmlndXJlCTIwMTUtMDEtMDEgMTc6MTI6MjQuODkx NDg5MDgxICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlndXJlCTIwMTUt MDEtMDEgMTc6MTI6MjguODI4NDg2Nzk4ICswMTAwCitAQCAtNjk4LDYgKzY5OCwxMSBAQCBQS0dW RVJTSU9OCiAgSEFWRV9OQVRJVkVfR0NPUkVfVEFSR0VUCiAgVEFSR0VUX09CUwogIHN1YmRpcnMK QEAgLTM0NSw3ICszNDUsNyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29uZmln dXJlCiAgR0RCX0RBVEFESVIKICBERUJVR0RJUgogIE1BS0VJTkZPX0VYVFJBX0ZMQUdTCi1AQCAt Nzk1LDYgKzgwMCw3IEBAIHdpdGhfZ2RiX2RhdGFkaXIKK0BAIC04MDEsNiArODA2LDcgQEAgd2l0 aF9nZGJfZGF0YWRpcgogIHdpdGhfcmVsb2NhdGVkX3NvdXJjZXMKICB3aXRoX2F1dG9fbG9hZF9k aXIKICB3aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGgKQEAgLTM1Myw3ICszNTMsNyBAQCBJbmRleDog Z2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29uZmlndXJlCiAgZW5hYmxlX3RhcmdldHMKICBlbmFi bGVfNjRfYml0X2JmZAogIGVuYWJsZV9nZGJjbGkKLUBAIC04NDYsNiArODUyLDExIEBAIENQUEZM QUdTCitAQCAtODUyLDYgKzg1OCwxMSBAQCBDUFBGTEFHUwogIENQUAogIE1BS0VJTkZPCiAgTUFL RUlORk9GTEFHUwpAQCAtMzY1LDcgKzM2NSw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi9jb25maWd1cmUKICBZQUNDCiAgWUZMQUdTCiAgWE1LTUYnCi1AQCAtMTUxNiw2ICsxNTI3 LDggQEAgT3B0aW9uYWwgUGFja2FnZXM6CitAQCAtMTUyMiw2ICsxNTMzLDggQEAgT3B0aW9uYWwg UGFja2FnZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbLS13aXRoLWF1dG8tbG9hZC1k aXJdCiAgICAtLXdpdGhvdXQtYXV0by1sb2FkLXNhZmUtcGF0aAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgZG8gbm90IHJlc3RyaWN0IGF1dG8tbG9hZGVkIGZpbGVzIGxvY2F0aW9ucwpAQCAt Mzc0LDcgKzM3NCw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWd1cmUK ICAgIC0td2l0aC1saWJ1bndpbmQtaWE2NCAgIHVzZSBsaWJ1bndpbmQgZnJhbWUgdW53aW5kaW5n IGZvciBpYTY0IHRhcmdldHMKICAgIC0td2l0aC1jdXJzZXMgICAgICAgICAgIHVzZSB0aGUgY3Vy c2VzIGxpYnJhcnkgaW5zdGVhZCBvZiB0aGUgdGVybWNhcAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlicmFyeQotQEAgLTE1NjUsNiArMTU3OCwxMyBAQCBTb21lIGluZmx1ZW50aWFsIGVu dmlyb25tZW50IHZhcmlhYmxlczoKK0BAIC0xNTcxLDYgKzE1ODQsMTMgQEAgU29tZSBpbmZsdWVu dGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CiAgICBNQUtFSU5GTyAgICBQYXJlbnQgY29uZmln dXJlIGRldGVjdHMgaWYgaXQgaXMgb2Ygc3VmZmljaWVudCB2ZXJzaW9uLgogICAgTUFLRUlORk9G TEFHUwogICAgICAgICAgICAgICAgUGFyYW1ldGVycyBmb3IgTUFLRUlORk8uCkBAIC0zODgsNyAr Mzg4LDcgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2NvbmZpZ3VyZQogICAgWUFD QyAgICAgICAgVGhlIGBZZXQgQW5vdGhlciBDIENvbXBpbGVyJyBpbXBsZW1lbnRhdGlvbiB0byB1 c2UuIERlZmF1bHRzIHRvCiAgICAgICAgICAgICAgICB0aGUgZmlyc3QgcHJvZ3JhbSBmb3VuZCBv dXQgb2Y6IGBiaXNvbiAteScsIGBieWFjYycsIGB5YWNjJy4KICAgIFlGTEFHUyAgICAgIFRoZSBs aXN0IG9mIGFyZ3VtZW50cyB0aGF0IHdpbGwgYmUgcGFzc2VkIGJ5IGRlZmF1bHQgdG8gJFlBQ0Mu Ci1AQCAtNTE2MCw2ICs1MTgwLDQ5MSBAQCBfQUNFT0YKK0BAIC01MjY3LDYgKzUyODcsNDkxIEBA IF9BQ0VPRgogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkd2l0aF9hdXRvX2xvYWRfc2FmZV9wYXRoIiA+JjUKICAkYXNfZWNobyAiJHdpdGhfYXV0b19s b2FkX3NhZmVfcGF0aCIgPiY2OyB9CiAgCkBAIC04ODAsMTEgKzg4MCwxMSBAQCBJbmRleDogZ2Ri LTcuNy41MC4yMDE0MDYwOS9nZGIvY29uZmlndXJlCiAgCiAgCiAgc3ViZGlycz0iJHN1YmRpcnMg dGVzdHN1aXRlIgotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2NvbmZpZ3VyZS5hYwor SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMTQtMDYtMTMg MjA6MTA6MTkuNjQzNzg3NjUzICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29u ZmlndXJlLmFjCTIwMTQtMDYtMTMgMjA6MTA6MzEuMDc0Nzk5MTY2ICswMjAwCi1AQCAtMTY1LDYg KzE2NSwxOTkgQEAgQUNfREVGSU5FX0RJUihBVVRPX0xPQURfU0FGRV9QQVRILCBlc2NhcAorLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMTUtMDEtMDEgMTc6 MTI6MjQuODkzNDg5MDc5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmln dXJlLmFjCTIwMTUtMDEtMDEgMTc6MTI6MjguODI5NDg2Nzk4ICswMTAwCitAQCAtMTcyLDYgKzE3 MiwxOTkgQEAgQUNfREVGSU5FX0RJUihBVVRPX0xPQURfU0FGRV9QQVRILCBlc2NhcAogIAkgICAg ICBbRGlyZWN0b3JpZXMgc2FmZSB0byBob2xkIGF1dG8tbG9hZGVkIGZpbGVzLl0pCiAgQUNfTVNH X1JFU1VMVChbJHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aF0pCiAgCkBAIC0xMDg0LDExICsxMDg0 LDExIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWd1cmUuYWMKICBBQ19D T05GSUdfU1VCRElSUyh0ZXN0c3VpdGUpCiAgCiAgIyBDaGVjayB3aGV0aGVyIHRvIHN1cHBvcnQg YWx0ZXJuYXRpdmUgdGFyZ2V0IGNvbmZpZ3VyYXRpb25zCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0 MDYwOS9nZGIvY29yZWxvdy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29yZWxv dy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9jb3JlbG93 LmMJMjAxNC0wNi0xMyAyMDoxMDoxOS42NDQ3ODc2NTQgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIw MTQwNjA5L2dkYi9jb3JlbG93LmMJMjAxNC0wNi0xMyAyMDoxMDozMS4wNzQ3OTkxNjYgKzAyMDAK LUBAIC0zMTYsNyArMzE2LDcgQEAgYnVpbGRfaWRfbG9jYXRlX2V4ZWMgKGludCBmcm9tX3R0eSkK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDE1LTAxLTAxIDE3 OjEyOjI0Ljg5NDQ4OTA3OSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvcmVs b3cuYwkyMDE1LTAxLTAxIDE3OjEyOjI4LjgyOTQ4Njc5OCArMDEwMAorQEAgLTMxMCw3ICszMTAs NyBAQCBidWlsZF9pZF9sb2NhdGVfZXhlYyAoaW50IGZyb21fdHR5KQogICAgICAgICAgc3ltZmls ZV9vYmpmaWxlLT5mbGFncyB8PSBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEOwogICAgICB9CiAg ICBlbHNlCkBAIC0xMDk3LDExICsxMDk3LDExIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi9jb3JlbG93LmMKICAKICAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKICAKLUluZGV4OiBn ZGItNy43LjUwLjIwMTQwNjA5L2dkYi9idWlsZC1pZC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvYnVpbGQtaWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuNTAuMjAxNDA2MDku b3JpZy9nZGIvYnVpbGQtaWQuYwkyMDE0LTA2LTEzIDIwOjEwOjE5LjY0NDc4NzY1NCArMDIwMAot KysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmMJMjAxNC0wNi0xMyAyMDoxMDoz MS4wNzU3OTkxNjcgKzAyMDAKLUBAIC0zMiw2ICszMiw3IEBACistLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9idWlsZC1pZC5jCTIwMTUtMDEtMDEgMTc6MTI6MjQuODk0NDg5MDc5ICsw MTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnVpbGQtaWQuYwkyMDE1LTAxLTAxIDE3 OjEyOjI4LjgzMDQ4Njc5NyArMDEwMAorQEAgLTMxLDYgKzMxLDcgQEAKICAjaW5jbHVkZSAiZ2Ri Y21kLmgiCiAgI2luY2x1ZGUgIm9ic2VydmVyLmgiCiAgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CkBA IC0xMTA5LDcgKzExMDksNyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQt aWQuYwogIAogICNkZWZpbmUgQlVJTERfSURfVkVSQk9TRV9OT05FIDAKICAjZGVmaW5lIEJVSUxE X0lEX1ZFUkJPU0VfRklMRU5BTUVTIDEKLUBAIC02NjYsOCArNjY3LDM2MCBAQCBidWlsZF9pZF90 b19maWxlbmFtZSAoY29uc3Qgc3RydWN0IGVsZl9iCitAQCAtNjY0LDggKzY2NSwzNjAgQEAgYnVp bGRfaWRfdG9fZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBlbGZfYgogICAgcmV0dXJuIHJlc3VsdDsK ICB9CiAgCkBAIC0xNDcxLDcgKzE0NzEsNyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9n ZGIvYnVpbGQtaWQuYwogICAgIGF2b2lkYW5jZS4gICovCiAgCiAgc3RydWN0IG1pc3NpbmdfZmls ZXBhaXIKLUBAIC03MjEsMTEgKzEwNzQsMTcgQEAgbWlzc2luZ19maWxlcGFpcl9jaGFuZ2UgKHZv aWQpCitAQCAtNzE5LDExICsxMDcyLDE3IEBAIG1pc3NpbmdfZmlsZXBhaXJfY2hhbmdlICh2b2lk KQogICAgICAgIC8qIEFsbCB0aGVpciBtZW1vcnkgY2FtZSBqdXN0IGZyb20gbWlzc2luZ19maWxl cGFpcl9PQlNUQUNLLiAgKi8KICAgICAgICBtaXNzaW5nX2ZpbGVwYWlyX2hhc2ggPSBOVUxMOwog ICAgICB9CkBAIC0xNDg5LDcgKzE0ODksNyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9n ZGIvYnVpbGQtaWQuYwogICAgbWlzc2luZ19maWxlcGFpcl9jaGFuZ2UgKCk7CiAgfQogIAotQEAg LTc5MiwxNCArMTE1MSwzNCBAQCBkZWJ1Z19wcmludF9taXNzaW5nIChjb25zdCBjaGFyICpiaW5h cnksCitAQCAtNzkwLDE0ICsxMTQ5LDM0IEBAIGRlYnVnX3ByaW50X21pc3NpbmcgKGNvbnN0IGNo YXIgKmJpbmFyeSwKICAKICAgICpzbG90ID0gbWlzc2luZ19maWxlcGFpcjsKICAKCmRpZmYgLS1n aXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS5wYXRjaAppbmRleCBlYjRmMWQzLi43MWRlNGQwIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxk aWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKQEAgLTEs OCArMSw4IEBACi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29yZWxvdy5jCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9jb3JlbG93LmMJMjAxNC0wNi0xMyAyMDowOTozNy4z Njk3NDUyMjEgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb3JlbG93LmMJMjAx NC0wNi0xMyAyMDowOTo0Mi40MDc3NTAyNjUgKzAyMDAKLUBAIC00OSw2ICs0OSwxMCBAQAorLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY29yZWxvdy5jCTIwMTUtMDEtMDMgMjM6MTE6 NTQuMDE4MjcwMDkwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29yZWxvdy5j CTIwMTUtMDEtMDMgMjM6MTI6MDguNjkxMzQ5NDU0ICswMTAwCitAQCAtNDUsNiArNDUsMTAgQEAK ICAjaW5jbHVkZSAiZ2RiX2JmZC5oIgogICNpbmNsdWRlICJjb21wbGV0ZXIuaCIKICAjaW5jbHVk ZSAiZmlsZXN0dWZmLmgiCkBAIC0xMyw3ICsxMyw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQw NjA5L2dkYi9jb3JlbG93LmMKICAKICAjaWZuZGVmIE9fTEFSR0VGSUxFCiAgI2RlZmluZSBPX0xB UkdFRklMRSAwCi1AQCAtMjcyLDYgKzI3Niw1MyBAQCBhZGRfdG9fdGhyZWFkX2xpc3QgKGJmZCAq YWJmZCwgYXNlY3Rpb24KK0BAIC0yNjYsNiArMjcwLDUzIEBAIGFkZF90b190aHJlYWRfbGlzdCAo YmZkICphYmZkLCBhc2VjdGlvbgogICAgICBpbmZlcmlvcl9wdGlkID0gcHRpZDsJCQkvKiBZZXMs IG1ha2UgaXQgY3VycmVudC4gICovCiAgfQogIApAQCAtNjcsNyArNjcsNyBAQCBJbmRleDogZ2Ri LTcuNy41MC4yMDE0MDYwOS9nZGIvY29yZWxvdy5jCiAgLyogVGhpcyByb3V0aW5lIG9wZW5zIGFu ZCBzZXRzIHVwIHRoZSBjb3JlIGZpbGUgYmZkLiAgKi8KICAKICBzdGF0aWMgdm9pZAotQEAgLTQx MCw2ICs0NjEsMTQgQEAgY29yZV9vcGVuIChjaGFyICpmaWxlbmFtZSwgaW50IGZyb21fdHR5KQor QEAgLTQwNSw2ICs0NTYsMTQgQEAgY29yZV9vcGVuIChjb25zdCBjaGFyICphcmcsIGludCBmcm9t X3R0eQogIAlzd2l0Y2hfdG9fdGhyZWFkICh0aHJlYWQtPnB0aWQpOwogICAgICB9CiAgCkBAIC04 Miw3ICs4Miw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb3JlbG93LmMKICAg IHBvc3RfY3JlYXRlX2luZmVyaW9yICgmY29yZV9vcHMsIGZyb21fdHR5KTsKICAKICAgIC8qIE5v dyBnbyB0aHJvdWdoIHRoZSB0YXJnZXQgc3RhY2sgbG9va2luZyBmb3IgdGhyZWFkcyBzaW5jZSB0 aGVyZQotQEAgLTEwMjksNCArMTA4OCwxMSBAQCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQor QEAgLTEwMzUsNCArMTA5NCwxMSBAQCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQogICAgaW5p dF9jb3JlX29wcyAoKTsKICAKICAgIGFkZF90YXJnZXRfd2l0aF9jb21wbGV0ZXIgKCZjb3JlX29w cywgZmlsZW5hbWVfY29tcGxldGVyKTsKQEAgLTk0LDExICs5NCwxMSBAQCBJbmRleDogZ2RiLTcu Ny41MC4yMDE0MDYwOS9nZGIvY29yZWxvdy5jCiArCQkJICAgTlVMTCwgTlVMTCwgTlVMTCwKICsJ CQkgICAmc2V0bGlzdCwgJnNob3dsaXN0KTsKICB9Ci1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYw OS9nZGIvZG9jL2dkYi50ZXhpbmZvCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZG9j L2dkYi50ZXhpbmZvCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dk Yi9kb2MvZ2RiLnRleGluZm8JMjAxNC0wNi0xMyAyMDowOTozNy4zODA3NDUyMzIgKzAyMDAKLSsr KyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNC0wNi0xMyAyMDow OTo0Mi40MTc3NTAyNzUgKzAyMDAKLUBAIC0xNzU0Nyw2ICsxNzU0NywyNyBAQCBpbmZvcm1hdGlv biBmaWxlcy4KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5m bwkyMDE1LTAxLTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAorKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTAxLTAzIDIzOjEyOjA4LjcwMTM0OTUwOSAr MDEwMAorQEAgLTE3OTMwLDYgKzE3OTMwLDI3IEBAIGluZm9ybWF0aW9uIGZpbGVzLgogIAogIEBl bmQgdGFibGUKICAKQEAgLTEyNiwxOSArMTI2LDE5IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQw NjA5L2dkYi9kb2MvZ2RiLnRleGluZm8KICBAY2luZGV4IEBjb2Rley5nbnVfZGVidWdsaW5rfSBz ZWN0aW9ucwogIEBjaW5kZXggZGVidWcgbGluayBzZWN0aW9ucwogIEEgZGVidWcgbGluayBpcyBh IHNwZWNpYWwgc2VjdGlvbiBvZiB0aGUgZXhlY3V0YWJsZSBmaWxlIG5hbWVkCi1JbmRleDogZ2Ri LTcuNy41MC4yMDE0MDYwOS9nZGIvc29saWItc3ZyNC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvc29saWItc3ZyNC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYw OS5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAxNC0wNi0xMyAyMDowOTozNy4zODI3NDUyMzQgKzAy MDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9zb2xpYi1zdnI0LmMJMjAxNC0wNi0xMyAy MDowOTo0Mi40MTg3NTAyNzYgKzAyMDAKLUBAIC00OCw2ICs0OCw3IEBACi0gI2luY2x1ZGUgImV4 Y2VwdGlvbnMuaCIKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3NvbGliLXN2cjQu YwkyMDE1LTAxLTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAorKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3NvbGliLXN2cjQuYwkyMDE1LTAxLTAzIDIzOjEyOjA4LjcwMjM0OTUxNCArMDEw MAorQEAgLTQ1LDYgKzQ1LDcgQEAKKyAjaW5jbHVkZSAiYXV4di5oIgogICNpbmNsdWRlICJnZGJf YmZkLmgiCiAgI2luY2x1ZGUgInByb2JlLmgiCiArI2luY2x1ZGUgImJ1aWxkLWlkLmgiCiAgCiAg c3RhdGljIHN0cnVjdCBsaW5rX21hcF9vZmZzZXRzICpzdnI0X2ZldGNoX2xpbmtfbWFwX29mZnNl dHMgKHZvaWQpOwogIHN0YXRpYyBpbnQgc3ZyNF9oYXZlX2xpbmtfbWFwX29mZnNldHMgKHZvaWQp OwotQEAgLTEzNjksOSArMTM3MCw1MiBAQCBzdnI0X3JlYWRfc29fbGlzdCAoQ09SRV9BRERSIGxt LCBDT1JFX0FECitAQCAtMTM2Niw5ICsxMzY3LDUyIEBAIHN2cjRfcmVhZF9zb19saXN0IChDT1JF X0FERFIgbG0sIENPUkVfQUQKICAJICBjb250aW51ZTsKICAJfQogIApAQCAtMTk0LDExICsxOTQs MTEgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3NvbGliLXN2cjQuYwogICAgICAg IHhmcmVlIChidWZmZXIpOwogIAogICAgICAgIC8qIElmIHRoaXMgZW50cnkgaGFzIG5vIG5hbWUs IG9yIGl0cyBuYW1lIG1hdGNoZXMgdGhlIG5hbWUKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9lbGZyZWFkLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy43LjUwLjIwMTQwNjA5Lm9yaWcvZ2RiL2VsZnJlYWQuYwky MDE0LTA2LTEzIDIwOjA5OjM3LjM4Mzc0NTIzNSArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2 MDkvZ2RiL2VsZnJlYWQuYwkyMDE0LTA2LTEzIDIwOjA5OjQyLjQxODc1MDI3NiArMDIwMAotQEAg LTEzMzUsOSArMTMzNSwxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9lbGZyZWFkLmMJMjAxNS0wMS0w MyAyMzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9l bGZyZWFkLmMJMjAxNS0wMS0wMyAyMzoxMjowOC43MDMzNDk1MTkgKzAxMDAKK0BAIC0xMzM5LDkg KzEzMzksMTAgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAogIAkg ICAmJiBvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID09IE5VTEwKICAJICAgJiYgb2Jq ZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9PSBOVUxMKQogICAgICB7CkBA IC0yMTEsNyArMjExLDcgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2VsZnJlYWQu YwogIAogICAgICAgIGlmIChkZWJ1Z2ZpbGUgPT0gTlVMTCkKICAJZGVidWdmaWxlID0gZmluZF9z ZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2RlYnVnbGluayAob2JqZmlsZSk7Ci1AQCAtMTM1MSw2ICsx MzUyLDEyIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKK0BAIC0x MzU1LDYgKzEzNTYsMTIgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZp bAogIAkgIHN5bWJvbF9maWxlX2FkZF9zZXBhcmF0ZSAoYWJmZCwgZGVidWdmaWxlLCBzeW1maWxl X2ZsYWdzLCBvYmpmaWxlKTsKICAJICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CiAgCX0KQEAgLTIy NCwxMSArMjI0LDExIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9lbGZyZWFkLmMK ICAgICAgfQogIH0KICAKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9zeW1maWxlLmgK K0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zeW1maWxlLmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy43LjUwLjIwMTQwNjA5Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDE0LTA2LTEzIDIwOjA5 OjQyLjQxOTc1MDI3NyArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3N5bWZpbGUu aAkyMDE0LTA2LTEzIDIwOjEwOjA0LjQ3ODc3MjUxMCArMDIwMAotQEAgLTU3MCw2ICs1NzAsMTAg QEAgdm9pZCBleHBhbmRfc3ltdGFic19tYXRjaGluZyAoZXhwYW5kX3N5bQorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTUtMDEtMDMgMjM6MTE6NTQuMDE4Mjcw MDkwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3ltZmlsZS5oCTIwMTUtMDEt MDMgMjM6MTI6MDguNzAzMzQ5NTE5ICswMTAwCitAQCAtNTc0LDYgKzU3NCwxMCBAQCB2b2lkIGV4 cGFuZF9zeW10YWJzX21hdGNoaW5nIChleHBhbmRfc3ltCiAgdm9pZCBtYXBfc3ltYm9sX2ZpbGVu YW1lcyAoc3ltYm9sX2ZpbGVuYW1lX2Z0eXBlICpmdW4sIHZvaWQgKmRhdGEsCiAgCQkJICAgaW50 IG5lZWRfZnVsbG5hbWUpOwogIApAQCAtMjM5LDExICsyMzksMTEgQEAgSW5kZXg6IGdkYi03Ljcu NTAuMjAxNDA2MDkvZ2RiL3N5bWZpbGUuaAogIC8qIEZyb20gZHdhcmYycmVhZC5jICovCiAgCiAg LyogTmFtZXMgZm9yIGEgZHdhcmYyIGRlYnVnZ2luZyBzZWN0aW9uLiAgVGhlIGZpZWxkIE5PUk1B TCBpcyB0aGUgbm9ybWFsCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRl L2xpYi9nZGIuZXhwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2xp Yi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi90 ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNC0wNi0xMyAyMDowOTozNy4zODQ3NDUyMzYgKzAyMDAK LSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNC0w Ni0xMyAyMDowOTo0Mi40MjA3NTAyNzggKzAyMDAKLUBAIC0xNDkyLDYgKzE0OTIsMTYgQEAgcHJv YyBkZWZhdWx0X2dkYl9zdGFydCB7IH0geworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9n ZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTUtMDEtMDMgMjM6MTE6NTQuMDE4MjcwMDkwICsw MTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIw MTUtMDEtMDMgMjM6MTI6MDguNzA0MzQ5NTI1ICswMTAwCitAQCAtMTUyMiw2ICsxNTIyLDE2IEBA IHByb2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNl dCB0aGUgd2lkdGggdG8gMC4iCiAgCX0KICAgICAgfQpAQCAtMjYwLDExICsyNjAsMTEgQEAgSW5k ZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogICAgICBy ZXR1cm4gMAogIH0KICAKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUv bGliL21pLXN1cHBvcnQuZXhwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1 aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuNTAuMjAxNDA2 MDkub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE0LTA2LTEzIDIwOjA5 OjM3LjM4NTc0NTIzNyArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0 ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNC0wNi0xMyAyMDowOTo0Mi40MjE3NTAyNzkgKzAyMDAK LUBAIC0yMTIsNiArMjEyLDE2IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0g eworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBw b3J0LmV4cAkyMDE1LTAxLTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNS0wMS0wMyAy MzoxMjowOC43MDUzNDk1MzAgKzAxMDAKK0BAIC0yMTQsNiArMjE0LDE2IEBAIHByb2MgZGVmYXVs dF9taV9nZGJfc3RhcnQgeyBhcmdzIH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRo ZSB3aWR0aCB0byAwLiIKICAJfQogICAgICB9CkBAIC0yODEsMTEgKzI4MSwxMSBAQCBJbmRleDog Z2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogICAg ICAjIElmIGFsbG93aW5nIHRoZSBpbmZlcmlvciB0byBoYXZlIGl0cyBvd24gUFRZIHRoZW4gYXNz aWduIHRoZSBpbmZlcmlvcgogICAgICAjIGl0cyBvd24gdGVybWluYWwgZGV2aWNlIGhlcmUuCiAg ICAgIGlmIHsgJHNlcGFyYXRlX2luZmVyaW9yX3B0eSB9IHsKLUluZGV4OiBnZGItNy43LjUwLjIw MTQwNjA5L2dkYi9vYmpmaWxlcy5oCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvb2Jq ZmlsZXMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvb2Jq ZmlsZXMuaAkyMDE0LTA2LTEzIDIwOjA5OjM3LjM4NTc0NTIzNyArMDIwMAotKysrIGdkYi03Ljcu NTAuMjAxNDA2MDkvZ2RiL29iamZpbGVzLmgJMjAxNC0wNi0xMyAyMDowOTo0Mi40MjE3NTAyNzkg KzAyMDAKLUBAIC00NjQsNiArNDY0LDEwIEBAIHN0cnVjdCBvYmpmaWxlCistLS0gZ2RiLTcuOC41 MC4yMDE0MTIyOC5vcmlnL2dkYi9vYmpmaWxlcy5oCTIwMTUtMDEtMDMgMjM6MTE6NTQuMDE4Mjcw MDkwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvb2JqZmlsZXMuaAkyMDE1LTAx LTAzIDIzOjEyOjA4LjcwNTM0OTUzMCArMDEwMAorQEAgLTQ1OSw2ICs0NTksMTAgQEAgc3RydWN0 IG9iamZpbGUKICAKICAjZGVmaW5lIE9CSkZfTk9UX0ZJTEVOQU1FICgxIDw8IDYpCiAgCkBAIC0y OTYsMTAgKzI5NiwxMCBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvb2JqZmlsZXMu aAogIC8qIERlY2xhcmF0aW9ucyBmb3IgZnVuY3Rpb25zIGRlZmluZWQgaW4gb2JqZmlsZXMuYyAq LwogIAogIGV4dGVybiBzdHJ1Y3Qgb2JqZmlsZSAqYWxsb2NhdGVfb2JqZmlsZSAoYmZkICosIGNv bnN0IGNoYXIgKm5hbWUsIGludCk7Ci1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny43LjUwLjIwMTQwNjA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJ MjAxNC0wNi0xMyAyMDowOTozNy4zODU3NDUyMzcgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQw NjA5L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTQtMDYtMTMgMjA6MDk6 NDIuNDIxNzUwMjc5ICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTUtMDEtMDMgMjM6MTE6NTQuMDE4MjcwMDkw ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Nv cmVmaWxlLmV4cAkyMDE1LTAxLTAzIDIzOjEyOjA4LjcwNTM0OTUzMCArMDEwMAogQEAgLTI5Mywz ICsyOTMsMzMgQEAgZ2RiX3Rlc3RfbXVsdGlwbGUgImNvcmUtZmlsZSAkY29yZWZpbGUiCiAgCXBh c3MgJHRlc3QKICAgICAgfQpAQCAtMzM0LDExICszMzQsMTEgQEAgSW5kZXg6IGdkYi03LjcuNTAu MjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKICsgICAgZ2RiX3Rl c3QgImluZm8gZmlsZXMiICJMb2NhbCBleGVjIGZpbGU6XHJcblxbIFx0XF0qYFtzdHJpbmdfdG9f cmVnZXhwICRkZWJ1Z2Rpci8kYnVpbGRpZF0nLCBmaWxlIHR5cGUgLioiCiArICAgIHBhc3MgJHdo b2xldGVzdAogK30KLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9idWlsZC1pZC5jCitJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnVpbGQtaWQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvYnVpbGQtaWQuYwkyMDE0LTA2LTEzIDIwOjA5 OjM3LjM4Njc0NTIzOCArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlk LmMJMjAxNC0wNi0xMyAyMDowOTo0Mi40MjI3NTAyODAgKzAyMDAKLUBAIC0yNywxMSArMjcsNjUg QEAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNS0wMS0w MyAyMzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9i dWlsZC1pZC5jCTIwMTUtMDEtMDMgMjM6MTI6NDAuNzkyNTIzMDg1ICswMTAwCitAQCAtMjYsMTEg KzI2LDY0IEBACiAgI2luY2x1ZGUgInN5bWZpbGUuaCIKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIK ICAjaW5jbHVkZSAiZmlsZW5hbWVzLmgiCkBAIC0zNTksMTEgKzM1OSwxMSBAQCBJbmRleDogZ2Ri LTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogKyAgZnByaW50Zl9maWx0ZXJlZCAoZmls ZSwgXygiVmVyYm9zaXR5IGxldmVsIG9mIHRoZSBidWlsZC1pZCBsb2NhdG9yIGlzICVzLlxuIiks CiArCQkgICAgdmFsdWUpOwogK30KLSsKKyAKKy0vKiBTZWUgYnVpbGQtaWQuaC4gICovCiArLyog TG9jYXRlIE5UX0dOVV9CVUlMRF9JRCBhbmQgcmV0dXJuIGl0cyBtYXRjaGluZyBkZWJ1ZyBmaWxl bmFtZS4KICsgICBGSVhNRTogTk9URSBkZWNvZGluZyBzaG91bGQgYmUgdW5pZmllZCB3aXRoIHRo ZSBCRkQgY29yZSBub3RlcyBkZWNvZGluZy4gICovCi0gCi0tLyogTG9jYXRlIE5UX0dOVV9CVUlM RF9JRCBmcm9tIEFCRkQgYW5kIHJldHVybiBpdHMgY29udGVudC4gICovCisrCiArc3RhdGljIHN0 cnVjdCBlbGZfYnVpbGRfaWQgKgogK2J1aWxkX2lkX2J1Zl9nZXQgKGJmZCAqdGVtcGwsIGdkYl9i eXRlICpidWYsIGJmZF9zaXplX3R5cGUgc2l6ZSkKICt7CkBAIC0zODksMjQgKzM4OSwyMyBAQCBJ bmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogKwkgIHJldHZhbCA9IHht YWxsb2MgKHNpemVvZiAqcmV0dmFsIC0gMSArIHNpemUpOwogKwkgIHJldHZhbC0+c2l6ZSA9IHNp emU7CiArCSAgbWVtY3B5IChyZXR2YWwtPmRhdGEsIGRhdGEsIHNpemUpOwotKworIAogKwkgIHJl dHVybiByZXR2YWw7CiArCX0KICsgICAgICBwID0gZGVzY2RhdGEgKyBCRkRfQUxJR04gKGRlc2Nz eiwgNCk7CiArICAgIH0KICsgIHJldHVybiBOVUxMOwogK30KLSAKLSsvKiBTZXBhcmF0ZSBkZWJ1 Z2luZm8gZmlsZXMgaGF2ZSBjb3JydXB0ZWQgUEhEUiBidXQgU0hEUiBpcyBjb3JyZWN0IHRoZXJl LgotKyAgIExvY2F0ZSBOVF9HTlVfQlVJTERfSUQgZnJvbSBBQkZEIGFuZCByZXR1cm4gaXRzIGNv bnRlbnQuICAqLworKworKy8qIFNlZSBidWlsZC1pZC5oLiAgKi8KICsgCi0gc3RhdGljIGNvbnN0 IHN0cnVjdCBlbGZfYnVpbGRfaWQgKgorIGNvbnN0IHN0cnVjdCBlbGZfYnVpbGRfaWQgKgogLWJ1 aWxkX2lkX2JmZF9nZXQgKGJmZCAqYWJmZCkKICtidWlsZF9pZF9iZmRfc2hkcl9nZXQgKGJmZCAq YWJmZCkKICB7CiAgICBpZiAoIWJmZF9jaGVja19mb3JtYXQgKGFiZmQsIGJmZF9vYmplY3QpCiAg ICAgICAgfHwgYmZkX2dldF9mbGF2b3VyIChhYmZkKSAhPSBiZmRfdGFyZ2V0X2VsZl9mbGF2b3Vy Ci1AQCAtNDUsNiArOTksMzQ4IEBAIGJ1aWxkX2lkX2JmZF9nZXQgKGJmZCAqYWJmZCkKK0BAIC00 NCw2ICs5NywzNDggQEAgYnVpbGRfaWRfYmZkX2dldCAoYmZkICphYmZkKQogICAgcmV0dXJuIGVs Zl90ZGF0YSAoYWJmZCktPmJ1aWxkX2lkOwogIH0KICAKQEAgLTc1NSw3ICs3NTQsNyBAQCBJbmRl eDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogIC8qIFNlZSBidWlsZC1pZC5o LiAgKi8KICAKICBpbnQKLUBAIC01Myw3ICs0NDksNyBAQCBidWlsZF9pZF92ZXJpZnkgKGJmZCAq YWJmZCwgc2l6ZV90IGNoZWNrCitAQCAtNTIsNyArNDQ3LDcgQEAgYnVpbGRfaWRfdmVyaWZ5IChi ZmQgKmFiZmQsIHNpemVfdCBjaGVjawogICAgY29uc3Qgc3RydWN0IGVsZl9idWlsZF9pZCAqZm91 bmQ7CiAgICBpbnQgcmV0dmFsID0gMDsKICAKQEAgLTc2NCw3ICs3NjMsNyBAQCBJbmRleDogZ2Ri LTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogIAogICAgaWYgKGZvdW5kID09IE5VTEwp CiAgICAgIHdhcm5pbmcgKF8oIkZpbGUgXCIlc1wiIGhhcyBubyBidWlsZC1pZCwgZmlsZSBza2lw cGVkIiksCi1AQCAtNjgsMjAgKzQ2NCw1NiBAQCBidWlsZF9pZF92ZXJpZnkgKGJmZCAqYWJmZCwg c2l6ZV90IGNoZWNrCitAQCAtNjcsMjAgKzQ2Miw1NiBAQCBidWlsZF9pZF92ZXJpZnkgKGJmZCAq YWJmZCwgc2l6ZV90IGNoZWNrCiAgICByZXR1cm4gcmV0dmFsOwogIH0KICAKQEAgLTgyNSw3ICs4 MjQsNyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogIAogICAg LyogS2VlcCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHNvIHRoYXQgREVCVUdfRklMRV9ESVJFQ1RP UlkgYmVpbmcgIiIgd2lsbAogICAgICAgY2F1c2UgIi8uYnVpbGQtaWQvLi4uIiBsb29rdXBzLiAg Ki8KLUBAIC05NCw4ICs1MjYsMTEgQEAgYnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXplX3QgYnVp bGRfaWRfbAorQEAgLTkzLDggKzUyNCwxMSBAQCBidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVf dCBidWlsZF9pZF9sCiAgICAgICAgc2l6ZV90IGRlYnVnZGlyX2xlbiA9IHN0cmxlbiAoZGVidWdk aXIpOwogICAgICAgIGNvbnN0IGdkYl9ieXRlICpkYXRhID0gYnVpbGRfaWQ7CiAgICAgICAgc2l6 ZV90IHNpemUgPSBidWlsZF9pZF9sZW47CkBAIC04MzgsNyArODM3LDcgQEAgSW5kZXg6IGdkYi03 LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmMKICAKICAgICAgICBtZW1jcHkgKGxpbmssIGRl YnVnZGlyLCBkZWJ1Z2Rpcl9sZW4pOwogICAgICAgIHMgPSAmbGlua1tkZWJ1Z2Rpcl9sZW5dOwot QEAgLTEwOSw0NCArNTQ0LDI4MiBAQCBidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVfdCBidWls ZF9pZF9sCitAQCAtMTA4LDQ0ICs1NDIsMjgyIEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAoc2l6 ZV90IGJ1aWxkX2lkX2wKICAJKnMrKyA9ICcvJzsKICAgICAgICB3aGlsZSAoc2l6ZS0tID4gMCkK ICAJcyArPSBzcHJpbnRmIChzLCAiJTAyeCIsICh1bnNpZ25lZCkgKmRhdGErKyk7CkBAIC05MDks NyArOTA4LDkgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmMKICsJ ICB4ZnJlZSAoZmlsZW5hbWUpOwogKwkgIGZpbGVuYW1lID0gTlVMTDsKICsJfQotKworIAorLSAg ICAgIGdkYl9iZmRfdW5yZWYgKGFiZmQpOworLSAgICAgIGFiZmQgPSBOVUxMOwogKyAgICAgIGlm IChmaWxlbmFtZSAhPSBOVUxMKQogKwl7CiArCSAgLyogTElOS19BTEwgaXMgbm90IHVzZWQgYmVs b3cgaW4gdGhpcyBub24tTlVMTCBGSUxFTkFNRSBjYXNlLiAgKi8KQEAgLTkzNSw5ICs5MzYsNyBA QCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogKwkgIC8qIFVzZSB3 aGl0ZXNwYWNlIGluc3RlYWQgb2YgRElSTkFNRV9TRVBBUkFUT1IgdG8gYmUgY29tcGF0aWJsZSB3 aXRoCiArCSAgICAgaXRzIHBvc3NpYmxlIHVzZSBhcyBhbiBhcmd1bWVudCBmb3IgaW5zdGFsbGF0 aW9uIGNvbW1hbmQuICAqLwogKwkgIGxpbmtfYWxsW2xlbl9vcmlnXSA9ICcgJzsKLSAKLS0gICAg ICBnZGJfYmZkX3VucmVmIChhYmZkKTsKLS0gICAgICBhYmZkID0gTlVMTDsKKysKICsJICBzdHJj cHkgKCZsaW5rX2FsbFtsZW5fb3JpZyArIDFdLCBsaW5rMF9yZXNvbHZlZCk7CiArCSAgeGZyZWUg KGxpbmswX3Jlc29sdmVkKTsKICsJfQpAQCAtMTEzOCw3ICsxMTM3LDcgQEAgSW5kZXg6IGdkYi03 LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmMKICAgICAgICAvKiBQcmV2ZW50IGxvb3Bpbmcg b24gYSBzdHJpcHBlZCAuZGVidWcgZmlsZS4gICovCiAgICAgICAgaWYgKGFiZmQgIT0gTlVMTAog IAkgICYmIGZpbGVuYW1lX2NtcCAoYmZkX2dldF9maWxlbmFtZSAoYWJmZCksCi1AQCAtMTY2LDMg KzgzOSwyMSBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3RyCitAQCAt MTY1LDMgKzgzNywyMSBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3Ry CiAgICAgIH0KICAgIHJldHVybiBOVUxMOwogIH0KQEAgLTExNjAsMTEgKzExNTksMjQgQEAgSW5k ZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmMKICsKICsgIG9ic2VydmVyX2F0 dGFjaF9leGVjdXRhYmxlX2NoYW5nZWQgKGRlYnVnX3ByaW50X2V4ZWN1dGFibGVfY2hhbmdlZCk7 CiArfQotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmgKK0luZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9idWlsZC1pZC5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny41MC4yMDE0MDYwOS5vcmlnL2dkYi9idWlsZC1pZC5oCTIwMTQtMDYtMTMgMjA6MDk6MzcuMzg2 NzQ1MjM4ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuaAkyMDE0 LTA2LTEzIDIwOjA5OjQyLjQyMjc1MDI4MCArMDIwMAotQEAgLTMyLDEzICszMiwxOCBAQCBleHRl cm4gaW50IGJ1aWxkX2lkX3ZlcmlmeSAoYmZkICphYmZkLAorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvYnVpbGQtaWQuaAkyMDE1LTAxLTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEw MAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2J1aWxkLWlkLmgJMjAxNS0wMS0wMyAyMzox MjowOC43MDYzNDk1MzYgKzAxMDAKK0BAIC0yMCw5ICsyMCwxMCBAQAorICNpZm5kZWYgQlVJTERf SURfSAorICNkZWZpbmUgQlVJTERfSURfSAorIAorLS8qIExvY2F0ZSBOVF9HTlVfQlVJTERfSUQg ZnJvbSBBQkZEIGFuZCByZXR1cm4gaXRzIGNvbnRlbnQuICAqLworKy8qIFNlcGFyYXRlIGRlYnVn aW5mbyBmaWxlcyBoYXZlIGNvcnJ1cHRlZCBQSERSIGJ1dCBTSERSIGlzIGNvcnJlY3QgdGhlcmUu CisrICAgTG9jYXRlIE5UX0dOVV9CVUlMRF9JRCBmcm9tIEFCRkQgYW5kIHJldHVybiBpdHMgY29u dGVudC4gICovCisgCistZXh0ZXJuIGNvbnN0IHN0cnVjdCBlbGZfYnVpbGRfaWQgKmJ1aWxkX2lk X2JmZF9nZXQgKGJmZCAqYWJmZCk7CisrZXh0ZXJuIGNvbnN0IHN0cnVjdCBlbGZfYnVpbGRfaWQg KmJ1aWxkX2lkX2JmZF9zaGRyX2dldCAoYmZkICphYmZkKTsKKyAKKyAvKiBSZXR1cm4gdHJ1ZSBp ZiBBQkZEIGhhcyBOVF9HTlVfQlVJTERfSUQgbWF0Y2hpbmcgdGhlIENIRUNLIHZhbHVlLgorICAg IE90aGVyd2lzZSwgaXNzdWUgYSB3YXJuaW5nIGFuZCByZXR1cm4gZmFsc2UuICAqLworQEAgLTM2 LDEzICszNywxOCBAQCBleHRlcm4gaW50IGJ1aWxkX2lkX3ZlcmlmeSAoYmZkICphYmZkLAogICAg IHRoZSBjYWxsZXIuICAqLwogIAogIGV4dGVybiBiZmQgKmJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAo c2l6ZV90IGJ1aWxkX2lkX2xlbiwKQEAgLTExODUsMTEgKzExOTcsMTEgQEAgSW5kZXg6IGdkYi03 LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmgKICsJCQkJCSAgICAgICBjaGFyICoqYnVpbGRf aWRfZmlsZW5hbWVfcmV0dXJuKTsKICAKICAjZW5kaWYgLyogQlVJTERfSURfSCAqLwotSW5kZXg6 IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuNTAuMjAx NDA2MDkub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTQtMDYtMTMgMjA6MDk6MzcuMzg5NzQ1MjQx ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZHdhcmYycmVhZC5jCTIwMTQtMDYt MTMgMjA6MDk6NDIuNDI1NzUwMjgzICswMjAwCi1AQCAtMjQ0Niw3ICsyNDQ2LDcgQEAgZHdhcmYy X2dldF9kd3pfZmlsZSAodm9pZCkKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3 YXJmMnJlYWQuYwkyMDE1LTAxLTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAorKysrIGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTAzIDIzOjEyOjA4LjcxMTM0 OTU2MyArMDEwMAorQEAgLTI0NDMsNyArMjQ0Myw3IEBAIGR3YXJmMl9nZXRfZHd6X2ZpbGUgKHZv aWQpCiAgICAgIH0KICAKICAgIGlmIChkd3pfYmZkID09IE5VTEwpCkBAIC0xMTk4LDMgKzEyMTAs MjUgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2R3YXJmMnJlYWQuYwogIAogICAg aWYgKGR3el9iZmQgPT0gTlVMTCkKICAgICAgZXJyb3IgKF8oImNvdWxkIG5vdCBmaW5kICcuZ251 X2RlYnVnYWx0bGluaycgZmlsZSBmb3IgJXMiKSwKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9weXRob24vcHktb2JqZmlsZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTUtMDEtMDMgMjM6MTE6NTQuMDE4 MjcwMDkwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL3B5LW9iamZp bGUuYwkyMDE1LTAxLTAzIDIzOjEyOjA4LjcxMjM0OTU2OCArMDEwMAorQEAgLTExOCw3ICsxMTgs NyBAQCBvYmpmcHlfZ2V0X2J1aWxkX2lkIChQeU9iamVjdCAqc2VsZiwgdm9pCisgCisgICBUUllf Q0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQorICAgICB7CistICAgICAgYnVpbGRfaWQg PSBidWlsZF9pZF9iZmRfZ2V0IChvYmpmaWxlLT5vYmZkKTsKKysgICAgICBidWlsZF9pZCA9IGJ1 aWxkX2lkX2JmZF9zaGRyX2dldCAob2JqZmlsZS0+b2JmZCk7CisgICAgIH0KKyAgIEdEQl9QWV9I QU5ETEVfRVhDRVBUSU9OIChleGNlcHQpOworIAorQEAgLTQ2Nyw3ICs0NjcsNyBAQCBvYmpmcHlf bG9va3VwX29iamZpbGVfYnlfYnVpbGRfaWQgKGNvbnN0CisgICAgICAgLyogRG9uJ3QgcmV0dXJu IHNlcGFyYXRlIGRlYnVnIGZpbGVzLiAgKi8KKyAgICAgICBpZiAob2JqZmlsZS0+c2VwYXJhdGVf ZGVidWdfb2JqZmlsZV9iYWNrbGluayAhPSBOVUxMKQorIAljb250aW51ZTsKKy0gICAgICBvYmZk X2J1aWxkX2lkID0gYnVpbGRfaWRfYmZkX2dldCAob2JqZmlsZS0+b2JmZCk7CisrICAgICAgb2Jm ZF9idWlsZF9pZCA9IGJ1aWxkX2lkX2JmZF9zaGRyX2dldCAob2JqZmlsZS0+b2JmZCk7CisgICAg ICAgaWYgKG9iZmRfYnVpbGRfaWQgPT0gTlVMTCkKKyAJY29udGludWU7CisgICAgICAgaWYgKG9i amZweV9idWlsZF9pZF9tYXRjaGVzIChvYmZkX2J1aWxkX2lkLCBidWlsZF9pZCkpCgpkaWZmIC0t Z2l0IGEvZ2RiLTYuNi1iejIzNTE5Ny1mb3JrLWRldGFjaC1pbmZvLnBhdGNoIGIvZ2RiLTYuNi1i ejIzNTE5Ny1mb3JrLWRldGFjaC1pbmZvLnBhdGNoCmluZGV4IGQ2ZDk0MTYuLjhkZjI5MjQgMTAw NjQ0Ci0tLSBhL2dkYi02LjYtYnoyMzUxOTctZm9yay1kZXRhY2gtaW5mby5wYXRjaAorKysgYi9n ZGItNi42LWJ6MjM1MTk3LWZvcmstZGV0YWNoLWluZm8ucGF0Y2gKQEAgLTMsMjMgKzMsMTAgQEAK IAlQb3J0IHRvIEdEQi02LjhwcmUuCiAJUmVtb3ZlIHRoZSBgWycgY2hhcmFjdGVyIGZyb20gdGhl IEdEQi02LjggZGVmYXVsdCBtZXNzYWdlLgogCi1JbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvbGludXgtbmF0LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcv Z2RiL2xpbnV4LW5hdC5jCTIwMTQtMDItMDQgMjM6NDc6MzkuMjc1MDM0NDkxICswMTAwCi0rKysg Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbGludXgtbmF0LmMJMjAxNC0wMi0wNCAyMzo0ODoxMS45 NDMwNzQxMzIgKzAxMDAKLUBAIC00MjYsNyArNDI2LDcgQEAgaG9sZGluZyB0aGUgY2hpbGQgc3Rv cHBlZC4gIFRyeSBcInNldCBkZQotIAkgICAgICByZW1vdmVfYnJlYWtwb2ludHNfcGlkIChwdGlk X2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsKLSAJICAgIH0KLSAKLS0JICBpZiAoaW5mb192ZXJi b3NlIHx8IGRlYnVnX2xpbnV4X25hdCkKLSsJICBpZiAoMSAvKiBGZWRvcmEgQnVnIDIzNTE5NyAq LyB8fCBpbmZvX3ZlcmJvc2UgfHwgZGVidWdfbGludXhfbmF0KQotIAkgICAgewotIAkgICAgICB0 YXJnZXRfdGVybWluYWxfb3VycyAoKTsKLSAJICAgICAgZnByaW50Zl9maWx0ZXJlZCAoZ2RiX3N0 ZGxvZywKLUluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv Zm9yay1kZXRhY2guYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9mb3JrLWRldGFjaC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2ZvcmstZGV0YWNoLmMJMjAxNC0wMi0wNCAyMzo0NzozOS4yNzUw MzQ0OTEgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvZm9yay1kZXRhY2guYwkyMDE1LTAxLTA2IDE5OjMxOjQwLjcwMzk4ODUzNCArMDEwMAogQEAg LTAsMCArMSw1NyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUg ZGVidWdnZXIuCiArCkBAIC03OCwxMCArNjUsMTAgQEAgSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5jCiArICAgIH0KICsgIHJldHVy biAwOwogK30KLUluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvZm9yay1kZXRhY2guZXhwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2ZvcmstZGV0YWNoLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5leHAJMjAxNC0wMi0wNCAyMzo0 NzozOS4yNzYwMzQ0OTMgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvZm9yay1kZXRhY2guZXhwCTIwMTUtMDEtMDYgMTk6MzE6NDAuNzA0OTg4NTM4 ICswMTAwCiBAQCAtMCwwICsxLDM2IEBACiArIyBDb3B5cmlnaHQgMjAwNyBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTExOSwzICsxMDYsMTYgQEAgSW5kZXg6IGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5leHAKICtnZGJf dGVzdCAiIiBcCiArICAgICAgICAgIkRldGFjaGluZyBhZnRlciBmb3JrIGZyb20gY2hpbGQgcHJv Y2Vzcy4qXFxcW0luZmVyaW9yIC4qIGV4aXRlZCBub3JtYWxseVxcXF0iIFwKICsgICAgICAgICAi SW5mbyBtZXNzYWdlIGNhdWdodCIKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZy dW4uYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvaW5mcnVu LmMJMjAxNS0wMS0wNiAxOTozMTo0MC4yNjI5ODY2NDQgKzAxMDAKKysrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9pbmZydW4uYwkyMDE1LTAxLTA2IDE5OjQzOjU0Ljg2NTIxOTA5NiArMDEwMAor QEAgLTQ1Niw3ICs0NTYsNyBAQCBob2xkaW5nIHRoZSBjaGlsZCBzdG9wcGVkLiAgVHJ5IFwic2V0 IGRlCisgCSAgICAgIHJlbW92ZV9icmVha3BvaW50c19waWQgKHB0aWRfZ2V0X3BpZCAoaW5mZXJp b3JfcHRpZCkpOworIAkgICAgfQorIAorLQkgIGlmIChpbmZvX3ZlcmJvc2UgfHwgZGVidWdfaW5m cnVuKQorKwkgIGlmICgxIC8qIEZlZG9yYSBCdWcgMjM1MTk3ICovIHx8IGluZm9fdmVyYm9zZSB8 fCBkZWJ1Z19pbmZydW4pCisgCSAgICB7CisgCSAgICAgIHRhcmdldF90ZXJtaW5hbF9vdXJzX2Zv cl9vdXRwdXQgKCk7CisgCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKGdkYl9zdGRsb2csCgpkaWZm IC0tZ2l0IGEvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLXN3LXdhdGNocG9pbnRzMi5w YXRjaCBiL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1zdy13YXRjaHBvaW50czIucGF0 Y2gKaW5kZXggOGNlODEwNy4uOGM0MTYyYSAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1zY2hlZHVsZXJf bG9ja2luZy1zdGVwLXN3LXdhdGNocG9pbnRzMi5wYXRjaAorKysgYi9nZGItNi42LXNjaGVkdWxl cl9sb2NraW5nLXN0ZXAtc3ctd2F0Y2hwb2ludHMyLnBhdGNoCkBAIC0yMSwxMSArMjEsMTEgQEAK IAogCVBvcnQgdG8gR0RCLTYuOHByZS4KIAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2luZnJ1bi5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5mcnVuLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTQtMDYt MTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv aW5mcnVuLmMJMjAxNC0wNi0xMyAyMTozNjo0My42MzcyOTQ3ODIgKzAyMDAKLUBAIC04NCw3ICs4 NCw3IEBAIHN0YXRpYyBpbnQgZm9sbG93X2ZvcmsgKHZvaWQpOworLS0tIGdkYi03LjguNTAuMjAx NDEyMjgub3JpZy9nZGIvaW5mcnVuLmMJMjAxNC0xMi0yOCAyMTozMzo0MS4zMDE1NDc4ODAgKzAx MDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uYwkyMDE1LTAxLTAxIDE3OjAw OjA4LjIxMjkyMDY5MCArMDEwMAorQEAgLTg2LDcgKzg2LDcgQEAgc3RhdGljIHZvaWQgZm9sbG93 X2luZmVyaW9yX3Jlc2V0X2JyZWFrcAogIHN0YXRpYyB2b2lkIHNldF9zY2hlZGxvY2tfZnVuYyAo Y2hhciAqYXJncywgaW50IGZyb21fdHR5LAogIAkJCQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAq Yyk7CiAgCkBAIC0zNCwxNyArMzQsMTYgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2luZnJ1bi5jCiAgCiAgc3RhdGljIHZvaWQgeGRiX2hhbmRsZV9jb21tYW5kIChjaGFyICphcmdz LCBpbnQgZnJvbV90dHkpOwogIAotQEAgLTE3NDIsNyArMTc0Miw4IEBAIHVzZXJfdmlzaWJsZV9y ZXN1bWVfcHRpZCAoaW50IHN0ZXApCitAQCAtMTk5OCw3ICsxOTk4LDcgQEAgdXNlcl92aXNpYmxl X3Jlc3VtZV9wdGlkIChpbnQgc3RlcCkKKyAgICAgICByZXN1bWVfcHRpZCA9IGluZmVyaW9yX3B0 aWQ7CiAgICAgIH0KICAgIGVsc2UgaWYgKChzY2hlZHVsZXJfbW9kZSA9PSBzY2hlZGxvY2tfb24p Ci0gCSAgIHx8IChzY2hlZHVsZXJfbW9kZSA9PSBzY2hlZGxvY2tfc3RlcAotLQkgICAgICAgJiYg KHN0ZXAgfHwgc2luZ2xlc3RlcF9icmVha3BvaW50c19pbnNlcnRlZF9wKSkpCi0rCSAgICAgICAm JiAoc3RlcCA9PSBSRVNVTUVfU1RFUF9VU0VSCi0rCQkgICB8fCBzaW5nbGVzdGVwX2JyZWFrcG9p bnRzX2luc2VydGVkX3ApKSkKKy0JICAgfHwgKHNjaGVkdWxlcl9tb2RlID09IHNjaGVkbG9ja19z dGVwICYmIHN0ZXApKQorKwkgICB8fCAoc2NoZWR1bGVyX21vZGUgPT0gc2NoZWRsb2NrX3N0ZXAg JiYgc3RlcCA9PSBSRVNVTUVfU1RFUF9VU0VSKSkKICAgICAgewogICAgICAgIC8qIFVzZXItc2V0 dGFibGUgJ3NjaGVkdWxlcicgbW9kZSByZXF1aXJlcyBzb2xvIHRocmVhZCByZXN1bWUuICAqLwog ICAgICAgIHJlc3VtZV9wdGlkID0gaW5mZXJpb3JfcHRpZDsKLUBAIC0xNzYwLDcgKzE3NjEsNyBA QCB1c2VyX3Zpc2libGVfcmVzdW1lX3B0aWQgKGludCBzdGVwKQorQEAgLTIwMjIsNyArMjAyMiw3 IEBAIHVzZXJfdmlzaWJsZV9yZXN1bWVfcHRpZCAoaW50IHN0ZXApCiAgICAgU1RFUCBub256ZXJv IGlmIHdlIHNob3VsZCBzdGVwICh6ZXJvIHRvIGNvbnRpbnVlIGluc3RlYWQpLgogICAgIFNJRyBp cyB0aGUgc2lnbmFsIHRvIGdpdmUgdGhlIGluZmVyaW9yICh6ZXJvIGZvciBub25lKS4gICovCiAg dm9pZApAQCAtNTMsNyArNTIsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvaW5m cnVuLmMKICB7CiAgICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NsZWFudXBzID0gbWFrZV9jbGVhbnVw IChyZXN1bWVfY2xlYW51cHMsIDApOwogICAgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSA9IGdl dF9jdXJyZW50X3JlZ2NhY2hlICgpOwotQEAgLTE4MDAsOSArMTgwMSwxMyBAQCByZXN1bWUgKGlu dCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnKQorQEAgLTIwNjQsOSArMjA2NCwxMyBAQCByZXN1 bWUgKGludCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnKQogIAogICAgaWYgKGRlYnVnX2luZnJ1 bikKICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLApAQCAtNjksNyArNjgsNyBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvaW5mcnVuLmMKICAJCQl0cC0+Y29udHJv bC50cmFwX2V4cGVjdGVkLAogIAkJCXRhcmdldF9waWRfdG9fc3RyIChpbmZlcmlvcl9wdGlkKSwK ICAJCQlwYWRkcmVzcyAoZ2RiYXJjaCwgcGMpKTsKLUBAIC0yMTg4LDYgKzIxOTMsNyBAQCBwcm9j ZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSBnZGJfc2lnbmFsCitAQCAtMjU0Myw2ICsyNTQ3LDcg QEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gZ2RiX3NpZ25hbAogICAgc3RydWN0IHRo cmVhZF9pbmZvICp0cDsKICAgIENPUkVfQUREUiBwYzsKICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNl ICphc3BhY2U7CkBAIC03Nyw3ICs3Niw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9pbmZydW4uYwogIAogICAgLyogSWYgd2UncmUgc3RvcHBlZCBhdCBhIGZvcmsvdmZvcmssIGZv bGxvdyB0aGUgYnJhbmNoIHNldCBieSB0aGUKICAgICAgICJzZXQgZm9sbG93LWZvcmstbW9kZSIg Y29tbWFuZDsgb3RoZXJ3aXNlLCB3ZSdsbCBqdXN0IHByb2NlZWQKLUBAIC0yMjMwLDEzICsyMjM2 LDE5IEBAIHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKK0BAIC0yNTg2 LDEzICsyNTkxLDE5IEBAIHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwK ICAJICAgTm90ZSwgd2UgZG9uJ3QgZG8gdGhpcyBpbiByZXZlcnNlLCBiZWNhdXNlIHdlIHdvbid0 CiAgCSAgIGFjdHVhbGx5IGJlIGV4ZWN1dGluZyB0aGUgYnJlYWtwb2ludCBpbnNuIGFueXdheS4K ICAJICAgV2UnbGwgYmUgKHVuLSlleGVjdXRpbmcgdGhlIHByZXZpb3VzIGluc3RydWN0aW9uLiAg Ki8KQEAgLTk3LDcgKzk2LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2luZnJ1 bi5jCiAgICAgIH0KICAgIGVsc2UKICAgICAgewotQEAgLTIyODgsNiArMjMwMCw3IEBAIHByb2Nl ZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKK0BAIC0yNjQ3LDYgKzI2NTgsNyBA QCBwcm9jZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSBnZGJfc2lnbmFsCiAgCSAgdHAtPnByZXZf cGMgPSByZWdjYWNoZV9yZWFkX3BjIChnZXRfY3VycmVudF9yZWdjYWNoZSAoKSk7CiAgCSAgc3dp dGNoX3RvX3RocmVhZCAoc3RlcF9vdmVyLT5wdGlkKTsKICAJICB0cCA9IHN0ZXBfb3ZlcjsKQEAg LTEwNSw5ICsxMDQsOSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvaW5mcnVuLmMK ICAJfQogICAgICB9CiAgCi1AQCAtMjM3NSw5ICsyMzg4LDEzIEBAIHByb2NlZWQgKENPUkVfQURE UiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKLSAgIC8qIFJlc2V0IHRvIG5vcm1hbCBzdGF0ZS4gICov Ci0gICBpbml0X2luZndhaXRfc3RhdGUgKCk7CitAQCAtMjY5OSw5ICsyNzExLDEzIEBAIHByb2Nl ZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKKyAgICAgIGNvcnJlY3RseSB3aGVu IHRoZSBpbmZlcmlvciBpcyBzdG9wcGVkLiAgKi8KKyAgIHRwLT5wcmV2X3BjID0gcmVnY2FjaGVf cmVhZF9wYyAoZ2V0X2N1cnJlbnRfcmVnY2FjaGUgKCkpOwogIAogKyAgaWYgKHRwLT5jb250cm9s LnRyYXBfZXhwZWN0ZWQgfHwgc3RlcCkKICsgICAgcmVzdW1lX3N0ZXAgPSBSRVNVTUVfU1RFUF9V U0VSOwpAQCAtMTIxLDcgKzEyMCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9p bmZydW4uYwogIAogICAgLyogV2FpdCBmb3IgaXQgdG8gc3RvcCAoaWYgbm90IHN0YW5kYWxvbmUp CiAgICAgICBhbmQgaW4gYW55IGNhc2UgZGVjb2RlIHdoeSBpdCBzdG9wcGVkLCBhbmQgYWN0IGFj Y29yZGluZ2x5LiAgKi8KLUBAIC01MzU5LDEzICs1Mzc2LDE2IEBAIHN3aXRjaF9iYWNrX3RvX3N0 ZXBwZWRfdGhyZWFkIChzdHJ1Y3QgZXgKK0BAIC01Njc0LDE0ICs1NjkwLDE2IEBAIHN3aXRjaF9i YWNrX3RvX3N0ZXBwZWRfdGhyZWFkIChzdHJ1Y3QgZXgKICAKICAvKiBJcyB0aHJlYWQgVFAgaW4g dGhlIG1pZGRsZSBvZiBzaW5nbGUtc3RlcHBpbmc/ICAqLwogIApAQCAtMTMzLDYgKzEzMiw3IEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9pbmZydW4uYwogKyAgaWYgICAgICgodHAt PmNvbnRyb2wuc3RlcF9yYW5nZV9lbmQKICAJICAgJiYgdHAtPmNvbnRyb2wuc3RlcF9yZXN1bWVf YnJlYWtwb2ludCA9PSBOVUxMKQogLQkgIHx8IHRwLT5jb250cm9sLnRyYXBfZXhwZWN0ZWQKKy0J ICB8fCB0cC0+c3RlcHBlZF9icmVha3BvaW50CiAtCSAgfHwgYnBzdGF0X3Nob3VsZF9zdGVwICgp KTsKICsJICB8fCB0cC0+Y29udHJvbC50cmFwX2V4cGVjdGVkKQogKyAgICByZXR1cm4gUkVTVU1F X1NURVBfVVNFUjsKQEAgLTE0MiwxMSArMTQyLDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9pbmZydW4uYwogIH0KICAKICAvKiBJbmZlcmlvciBoYXMgc3RlcHBlZCBpbnRvIGEg c3Vicm91dGluZSBjYWxsIHdpdGggc291cmNlIGNvZGUgdGhhdAotSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2xpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv bGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2Ri L2xpbnV4LW5hdC5jCTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvbGludXgtbmF0LmMJMjAxNC0wNi0xMyAyMTozMToxOS40NDk5 NDk4MTQgKzAyMDAKLUBAIC0yNzA5LDcgKzI3MDksMTEgQEAgc3RhdGljIGludAorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNC0xMi0yOCAyMTozMzo0MS4z MDM1NDc4ODIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwky MDE0LTEyLTI4IDIxOjMzOjQ1LjgyNzU1MTY4NyArMDEwMAorQEAgLTI1MTksNyArMjUxOSwxMSBA QCBzdGF0aWMgaW50CiAgc2VsZWN0X3NpbmdsZXN0ZXBfbHdwX2NhbGxiYWNrIChzdHJ1Y3QgbHdw X2luZm8gKmxwLCB2b2lkICpkYXRhKQogIHsKICAgIGlmIChscC0+bGFzdF9yZXN1bWVfa2luZCA9 PSByZXN1bWVfc3RlcApAQCAtMTU5LDEwICsxNTksMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2xpbnV4LW5hdC5jCiAgICAgIHJldHVybiAxOwogICAgZWxzZQogICAgICByZXR1 cm4gMDsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9saW51eC1uYXQuaAorSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xpbnV4LW5hdC5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9saW51eC1uYXQuaAkyMDE0LTA2LTEzIDAzOjU5OjM3 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2xpbnV4LW5hdC5o CTIwMTQtMDYtMTMgMjE6MzE6MTkuNDQ5OTQ5ODE0ICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9saW51eC1uYXQuaAkyMDE0LTEyLTI4IDIxOjMzOjQxLjMwNDU0Nzg4MiAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xpbnV4LW5hdC5oCTIwMTQtMTItMjgg MjE6MzM6NDUuODI3NTUxNjg3ICswMTAwCiBAQCAtMTgsNiArMTgsNyBAQAogICAgIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KICAKQEAgLTE4MiwxMSArMTgyLDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9saW51eC1uYXQuaAogIAogICAgLyogU1RPUFBFRF9CWV9XQVRDSFBPSU5UIGlzIG5v bi16ZXJvIGlmIHRoaXMgTFdQIHN0b3BwZWQgd2l0aCBhIGRhdGEKICAgICAgIHdhdGNocG9pbnQg dHJhcC4gICovCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvaW5mcnVuLmgKK0luZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvaW5mcnVuLmgJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAw MDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9pbmZydW4uaAkyMDE0LTA2 LTEzIDIxOjMxOjE5LjQ0OTk0OTgxNCArMDIwMAotQEAgLTg5LDcgKzg5LDE0IEBAIGV4dGVybiB2 b2lkIHByb2NlZWQgKENPUkVfQUREUiwgZW51bSBnZGIKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4 Lm9yaWcvZ2RiL2luZnJ1bi5oCTIwMTQtMTItMjggMjE6MzM6NDUuODI3NTUxNjg3ICswMTAwCisr KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5mcnVuLmgJMjAxNC0xMi0yOCAyMTozNDoxMy41 MTY1NzQ5ODEgKzAxMDAKK0BAIC05Miw3ICs5MiwxNCBAQCBleHRlcm4gdm9pZCBwcm9jZWVkIChD T1JFX0FERFIsIGVudW0gZ2RiCiAgCiAgLyogVGhlIGByZXN1bWUnIHJvdXRpbmUgc2hvdWxkIG9u bHkgYmUgY2FsbGVkIGluIHNwZWNpYWwgY2lyY3Vtc3RhbmNlcy4KICAgICBOb3JtYWxseSwgdXNl IGBwcm9jZWVkJywgd2hpY2ggaGFuZGxlcyBhIGxvdCBvZiBib29ra2VlcGluZy4gICovCkBAIC0y MDAsMTIgKzIwMCwxMiBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvaW5mcnVuLmgK ICsgIH07CiArZXh0ZXJuIHZvaWQgcmVzdW1lIChlbnVtIHJlc3VtZV9zdGVwLCBlbnVtIGdkYl9z aWduYWwpOwogIAotIGV4dGVybiBwdGlkX3QgdXNlcl92aXNpYmxlX3Jlc3VtZV9wdGlkIChpbnQg c3RlcCk7Ci0gCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zaWduYWwt d2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10aHJlYWQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIudGhyZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10aHJlYWQuZXhw Ci1pbmRleCAyYTMwNjA0Li5lZTFmZDExIDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu dGhyZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10aHJlYWQuZXhwCi0r KysgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ25hbC13aGlsZS1zdGVwcGluZy1vdmVy LWJwLW90aGVyLXRocmVhZC5leHAKKyAvKiBSZXR1cm4gYSBwdGlkIHJlcHJlc2VudGluZyB0aGUg c2V0IG9mIHRocmVhZHMgdGhhdCB3ZSB3aWxsIHByb2NlZWQsCisgICAgaW4gdGhlIHBlcnNwZWN0 aXZlIG9mIHRoZSB1c2VyL2Zyb250ZW5kLiAgKi8KK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvc2lnbmFsLXdoaWxlLXN0ZXBwaW5nLW92ZXItYnAt b3RoZXItdGhyZWFkLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ25hbC13aGlsZS1zdGVwcGluZy1vdmVyLWJw LW90aGVyLXRocmVhZC5leHAJMjAxNC0xMi0yOCAyMTozMzo0MS4zMDQ1NDc4ODIgKzAxMDAKKysr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvc2lnbmFsLXdo aWxlLXN0ZXBwaW5nLW92ZXItYnAtb3RoZXItdGhyZWFkLmV4cAkyMDE0LTEyLTI4IDIxOjMzOjQ1 LjgyNzU1MTY4NyArMDEwMAogQEAgLTk3LDcgKzk3LDcgQEAgZ2RiX3Rlc3QgInNldCBkZWJ1ZyBp bmZydW4gMSIKICAKICBnZGJfdGVzdCBcCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1hdHRhY2gtc2ln bmFsbGVkLWRldGFjaC1zdG9wcGVkLnBhdGNoIGIvZ2RiLTYuOC1hdHRhY2gtc2lnbmFsbGVkLWRl dGFjaC1zdG9wcGVkLnBhdGNoCmluZGV4IDc1OWRlYzguLmJkNWQwOWMgMTAwNjQ0Ci0tLSBhL2dk Yi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3RvcHBlZC5wYXRjaAorKysgYi9nZGItNi44 LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2gKQEAgLTEsOCArMSw4IEBACi1J bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAu MjAxNDA2MTMub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNC0wNi0xMyAyMzowMzozNC4zNjQxNzc2 MTQgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9saW51eC1uYXQuYwkyMDE0LTA2 LTEzIDIzOjA1OjA3Ljc0OTI3OTEyMiArMDIwMAotQEAgLTE3OCw2ICsxNzgsOSBAQCBibG9ja2Vk LiAgKi8KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTUt MDEtMDUgMjI6NTI6MDEuMTE1OTc4MDI2ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvbGludXgtbmF0LmMJMjAxNS0wMS0wNSAyMjo1MjoyMy4xNDcwNzQ3MTAgKzAxMDAKK0BAIC0x NzQsNiArMTc0LDkgQEAgYmxvY2tlZC4gICovCiAgc3RhdGljIHN0cnVjdCB0YXJnZXRfb3BzICps aW51eF9vcHM7CiAgc3RhdGljIHN0cnVjdCB0YXJnZXRfb3BzIGxpbnV4X29wc19zYXZlZDsKICAK QEAgLTEyLDIzICsxMiw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9saW51eC1u YXQuYwogIC8qIFRoZSBtZXRob2QgdG8gY2FsbCwgaWYgYW55LCB3aGVuIGEgbmV3IHRocmVhZCBp cyBhdHRhY2hlZC4gICovCiAgc3RhdGljIHZvaWQgKCpsaW51eF9uYXRfbmV3X3RocmVhZCkgKHN0 cnVjdCBsd3BfaW5mbyAqKTsKICAKLUBAIC02ODMsNyArNjg2LDE0IEBAIGhvbGRpbmcgdGhlIGNo aWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGUKLSAJICBwYXJlbnRfaW5mLT53YWl0aW5nX2Zvcl92 Zm9ya19kb25lID0gMDsKLSAJfQotICAgICAgIGVsc2UgaWYgKGRldGFjaF9mb3JrKQotLQl0YXJn ZXRfZGV0YWNoIChOVUxMLCAwKTsKLSsJewotKwkgIC8qIFdlIHNob3VsZCBjaGVjayBQSURfV0FT X1NUT1BQRUQgYW5kIGRldGFjaCBpdCBzdG9wcGVkIGFjY29yZGluZ2x5LgotKwkgICAgIEluIHRo aXMgcG9pbnQgb2YgY29kZSBpdCBjYW5ub3QgYmUgMSBhcyB3ZSB3b3VsZCBub3QgZ2V0IEZPUksK LSsJICAgICBleGVjdXRlZCB3aXRob3V0IENPTlRJTlVFIGZpcnN0IHdoaWNoIHJlc2V0cyBQSURf V0FTX1NUT1BQRUQuCi0rCSAgICAgV2Ugd291bGQgaGF2ZSB0byBmaXJzdCBUQVJHRVRfU1RPUCBh bmQgV0FJVFBJRCBpdCBhcyB3aXRoIHJ1bm5pbmcKLSsJICAgICBpbmZlcmlvciBQVFJBQ0VfREVU QUNILCBTSUdTVE9QIHdpbGwgaWdub3JlIHRoZSBzaWduYWwuICAqLwotKwkgIHRhcmdldF9kZXRh Y2ggKE5VTEwsIDApOwotKwl9Ci0gCi0gICAgICAgLyogTm90ZSB0aGF0IHRoZSBkZXRhY2ggYWJv dmUgbWFrZXMgUEFSRU5UX0lORiBkYW5nbGluZy4gICovCi0gCi1AQCAtMTEwNyw2ICsxMTE3LDcg QEAgbGludXhfbmF0X3Bvc3RfYXR0YWNoX3dhaXQgKHB0aWRfdCBwdGlkLAorQEAgLTkxNSw2ICs5 MTgsNyBAQCBsaW51eF9uYXRfcG9zdF9hdHRhY2hfd2FpdCAocHRpZF90IHB0aWQsCiAgICAgICAg aWYgKGRlYnVnX2xpbnV4X25hdCkKICAJZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAog IAkJCSAgICAiTE5QQVc6IEF0dGFjaGluZyB0byBhIHN0b3BwZWQgcHJvY2Vzc1xuIik7CkBAIC0z Niw3ICsyMCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9saW51eC1uYXQuYwog IAogICAgICAgIC8qIFRoZSBwcm9jZXNzIGlzIGRlZmluaXRlbHkgc3RvcHBlZC4gIEl0IGlzIGlu IGEgam9iIGNvbnRyb2wKICAJIHN0b3AsIHVubGVzcyB0aGUga2VybmVsIHByZWRhdGVzIHRoZSBU QVNLX1NUT1BQRUQgLwotQEAgLTE1MjksNiArMTU0MCw5IEBAIGdldF9wZW5kaW5nX3N0YXR1cyAo c3RydWN0IGx3cF9pbmZvICpscCwKK0BAIC0xMzM3LDYgKzEzNDEsOSBAQCBnZXRfcGVuZGluZ19z dGF0dXMgKHN0cnVjdCBsd3BfaW5mbyAqbHAsCiAgCQkJICAgIGdkYl9zaWduYWxfdG9fc3RyaW5n IChzaWdubykpOwogICAgICB9CiAgCkBAIC00Niw3ICszMCw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9saW51eC1uYXQuYwogICAgcmV0dXJuIDA7CiAgfQogIAotQEAgLTE2NDIs NiArMTY1Niw4IEBAIGxpbnV4X25hdF9kZXRhY2ggKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKK0BA IC0xNDUwLDYgKzE0NTcsOCBAQCBsaW51eF9uYXRfZGV0YWNoIChzdHJ1Y3QgdGFyZ2V0X29wcyAq b3BzCiAgICAgIH0KICAgIGVsc2UKICAgICAgbGludXhfb3BzLT50b19kZXRhY2ggKG9wcywgYXJn cywgZnJvbV90dHkpOwpAQCAtNTUsNyArMzksNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvbGludXgtbmF0LmMKICB9CiAgCiAgLyogUmVzdW1lIExQLiAgKi8KLUBAIC0xODI0LDYg KzE4NDAsMTQgQEAgbGludXhfbmF0X3Jlc3VtZSAoc3RydWN0IHRhcmdldF9vcHMgKm9wcworQEAg LTE2MzEsNiArMTY0MCwxNCBAQCBsaW51eF9uYXRfcmVzdW1lIChzdHJ1Y3QgdGFyZ2V0X29wcyAq b3BzCiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgCkBAIC03MCw3ICs1NCw3IEBAIEluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9saW51eC1uYXQuYwogICAgaWYgKHJlc3VtZV9tYW55KQog ICAgICBpdGVyYXRlX292ZXJfbHdwcyAocHRpZCwgbGludXhfbmF0X3Jlc3VtZV9jYWxsYmFjaywg bHApOwogIAotQEAgLTM4NzAsNiArMzg5NCw4IEBAIGxpbnV4X25hdF9tb3Vybl9pbmZlcmlvciAo c3RydWN0IHRhcmdldF8KK0BAIC0zNjk2LDYgKzM3MTMsOCBAQCBsaW51eF9uYXRfbW91cm5faW5m ZXJpb3IgKHN0cnVjdCB0YXJnZXRfCiAgCiAgICAvKiBMZXQgdGhlIGFyY2gtc3BlY2lmaWMgbmF0 aXZlIGNvZGUga25vdyB0aGlzIHByb2Nlc3MgaXMgZ29uZS4gICovCiAgICBsaW51eF9uYXRfZm9y Z2V0X3Byb2Nlc3MgKHBpZCk7CkBAIC03OSwxMCArNjMsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2xpbnV4LW5hdC5jCiAgfQogIAogIC8qIENvbnZlcnQgYSBuYXRpdmUvaG9z dCBzaWdpbmZvIG9iamVjdCwgaW50by9mcm9tIHRoZSBzaWdpbmZvIGluIHRoZQotSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBl ZC5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVh ZHMvYXR0YWNoLXN0b3BwZWQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYx My5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTQt MDYtMTMgMjM6MDM6MzQuMzY1MTc3NjE1ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE0LTA2LTEzIDIz OjAzOjM3LjE2MjE4MDY2MCArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE1LTAxLTA1IDIyOjUy OjAxLjExNTk3ODAyNiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0 ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAJMjAxNS0wMS0wNSAyMjo1MjoyMy4xNDgw NzQ3MTQgKzAxMDAKIEBAIC02MSw3ICs2MSw2NSBAQCBwcm9jIGNvcmVmdW5jIHsgdGhyZWFkdHlw ZSB9IHsKICAgICAgZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCiAgICAgIGdk Yl9sb2FkICR7YmluZmlsZX0KQEAgLTE1MCwzICsxMzQsMTkgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAKICAg ICAgICAgCiAgICAgIHNldCB0ZXN0ICIkdGhyZWFkdHlwZTogYXR0YWNoMiB0byBzdG9wcGVkLCBh ZnRlciBzZXR0aW5nIGZpbGUiCiAgICAgIGdkYl90ZXN0X211bHRpcGxlICJhdHRhY2ggJHRlc3Rw aWQiICIkdGVzdCIgeworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2luZnJ1bi5jCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9pbmZydW4uYwkyMDE1 LTAxLTA1IDIyOjQyOjQ4Ljc3MzUwMTQyOSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2luZnJ1bi5jCTIwMTUtMDEtMDUgMjI6NTM6NDcuMjc0NDQzOTAzICswMTAwCitAQCAtNjAw LDYgKzYwMCwxMSBAQCBob2xkaW5nIHRoZSBjaGlsZCBzdG9wcGVkLiAgVHJ5IFwic2V0IGRlCisg CQkJCWNoaWxkX3BpZCk7CisgCSAgICB9CisgCisrCSAgLyogV2Ugc2hvdWxkIGNoZWNrIFBJRF9X QVNfU1RPUFBFRCBhbmQgZGV0YWNoIGl0IHN0b3BwZWQgYWNjb3JkaW5nbHkuCisrCSAgICAgSW4g dGhpcyBwb2ludCBvZiBjb2RlIGl0IGNhbm5vdCBiZSAxIGFzIHdlIHdvdWxkIG5vdCBnZXQgRk9S SworKwkgICAgIGV4ZWN1dGVkIHdpdGhvdXQgQ09OVElOVUUgZmlyc3Qgd2hpY2ggcmVzZXRzIFBJ RF9XQVNfU1RPUFBFRC4KKysJICAgICBXZSB3b3VsZCBoYXZlIHRvIGZpcnN0IFRBUkdFVF9TVE9Q IGFuZCBXQUlUUElEIGl0IGFzIHdpdGggcnVubmluZworKwkgICAgIGluZmVyaW9yIFBUUkFDRV9E RVRBQ0gsIFNJR1NUT1Agd2lsbCBpZ25vcmUgdGhlIHNpZ25hbC4gICovCisgCSAgdGFyZ2V0X2Rl dGFjaCAoTlVMTCwgMCk7CisgCX0KKyAKCmRpZmYgLS1naXQgYS9nZGItNi44LWJ6NDU3MTg3LWxh cmdlZmlsZS10ZXN0LXJlZ3Jlc3Npb24tZml4LnBhdGNoIGIvZ2RiLTYuOC1iejQ1NzE4Ny1sYXJn ZWZpbGUtdGVzdC1yZWdyZXNzaW9uLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5kZTEzNzNhCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLTYuOC1iejQ1NzE4Ny1s YXJnZWZpbGUtdGVzdC1yZWdyZXNzaW9uLWZpeC5wYXRjaApAQCAtMCwwICsxLDQ5IEBACitodHRw Oi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNS0wMS9tc2cwMDE5OC5odG1sCitT dWJqZWN0OiBbUEFUQ0hdIFtQUiBjb3JlZmlsZXMvMTc4MDhdIGkzODY6IEZpeCBpbnRlcm5hbCBl cnJvciB3aGVuIHByc3RhdHVzIGluIGNvcmUgZmlsZSBpcyB0b28gYmlnCisKK0FzIHJlcG9ydGVk IGluIFBSIDE3ODA4LCBhIHRlc3QgY2FzZSB3aXRoIGEgZm9yZ2VkIChpbnZhbGlkKSBjb3JlIGZp bGUKK2NhbiBjcmFzaCBHREIgd2l0aCBhbiBhc3NlcnRpb24gZmFpbHVyZS4gIEluIHRoYXQgcGFy dGljdWxhciBjYXNlIHRoZQorcHJzdGF0dXMgb2YgYW4gaTM4NiBjb3JlIGZpbGUgbG9va3MgbGlr ZSB0aGF0IGZyb20gYW4gQU1ENjQgY29yZSBmaWxlLAoraS5lLiwgaXQgaXMgbGFyZ2VyIHRoYW4g R0RCIHdvdWxkIGV4cGVjdC4KKworVGhlIHBhdGNoIHJlcGxhY2VzIHRoZSBhc3NlcnRpb24gYnkg YSB3YXJuaW5nIGFuZCBza2lwcyB0aGUgaW52YWxpZAorY29yZSBmaWxlIHJlZ2lzdGVyIHNlY3Rp b24uICBJbiB0aGlzIHdheSBpdCBpcyBndWFyYW50ZWVkIHRoYXQgbm8KK2JvZ3VzIHJlZ2lzdGVy IHZhbHVlcyBhcmUgcmVhZCBmcm9tIHRoZSBiYWRseSBmb3JtYXR0ZWQgc2VjdGlvbi4KKworTm90 ZSB0aGF0IHRoaXMgYmVoYXZpb3IgZGV2aWF0ZXMgZnJvbSB0aGUgZGVmYXVsdCBwb2xpY3k6IElu IGdlbmVyYWwsIGlmCitzb21lIGZ1dHVyZSBrZXJuZWwgYWRkcyBuZXcgcmVnaXN0ZXJzIHRvIGEg cmVnaXN0ZXIgc2V0LCB0aGVuIGEgR0RCCit1bmF3YXJlIG9mIHRoaXMgZXh0ZW5zaW9uIHdvdWxk IHJlYWQgdGhlIGtub3duIHN1YnNldCBhbmQganVzdCBpZ25vcmUKK3RoZSB1bmtub3duIGJ5dGVz LgorCitnZGIvQ2hhbmdlTG9nOgorCisJUFIgY29yZWZpbGVzLzE3ODA4CisJKiBpMzg2LXRkZXAu YyAoaTM4Nl9zdXBwbHlfZ3JlZ3NldCk6IEluc3RlYWQgb2YgeWllbGRpbmcgYW4KKwlpbnRlcm5h bCBlcnJvciBvbiB1bmV4cGVjdGVkIGlucHV0IGJ1ZmZlciBzaXplLCBpZ25vcmUgdGhlIGRhdGEK KwlhbmQgZW1pdCBhIHdhcm5pbmcuCisKKy0tLQorIGdkYi9pMzg2LXRkZXAuYyB8ICAgIDcgKysr KysrLQorIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKwor ZGlmZiAtLWdpdCBhL2dkYi9pMzg2LXRkZXAuYyBiL2dkYi9pMzg2LXRkZXAuYworaW5kZXggN2Qx NzRjNC4uZDAyYWFmMiAxMDA2NDQKKy0tLSBhL2dkYi9pMzg2LXRkZXAuYworKysrIGIvZ2RiL2kz ODYtdGRlcC5jCitAQCAtMzcyNyw3ICszNzI3LDEyIEBAIGkzODZfc3VwcGx5X2dyZWdzZXQgKGNv bnN0IHN0cnVjdCByZWdzZXQgKnJlZ3NldCwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKyAg IGNvbnN0IGdkYl9ieXRlICpyZWdzID0gZ3JlZ3M7CisgICBpbnQgaTsKKyAKKy0gIGdkYl9hc3Nl cnQgKGxlbiA9PSB0ZGVwLT5zaXplb2ZfZ3JlZ3NldCk7CisrICBpZiAobGVuICE9IHRkZXAtPnNp emVvZl9ncmVnc2V0KQorKyAgICB7CisrICAgICAgLyogQnVmZmVyIGhhcyB1bmtub3duIHNpemU6 IGFzc3VtZSB3cm9uZyBmb3JtYXQuICAqLworKyAgICAgIHdhcm5pbmcgKF8oIkJhZCBzaXplIG9m IGdlbmVyYWwgcmVnaXN0ZXIgc2VjdGlvbiIpKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKyAK KyAgIGZvciAoaSA9IDA7IGkgPCB0ZGVwLT5ncmVnc2V0X251bV9yZWdzOyBpKyspCisgICAgIHsK Ky0tIAorMS43LjkuNQorCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNo ZXIucGF0Y2gKaW5kZXggZDZjOGUzOC4uYzZiMmNjYSAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5w YXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDIzICsyLDI0IEBAIGh0dHA6Ly9zb3Vy Y2V3YXJlLm9yZy9nZGIvd2lraS9Qcm9qZWN0QXJjaGVyCiBodHRwOi8vc291cmNld2FyZS5vcmcv Z2RiL3dpa2kvQXJjaGVyQnJhbmNoTWFuYWdlbWVudAogCiBHSVQgc25hcHNob3Q6Ci1jb21taXQg Yjg4MjMwZWRmNGUyZGE5NDhkNjMzYzI4M2JhMDg5M2JmMjJiZDdhZQorY29tbWl0IGVmNWU1ZTRk NWJmZWRlY2Y1NGVmN2YxMzgwZWFmODk2NjJiNjE3ZDAKIAogdHJvbWV5L3B5dGhvbgogCiAKLUlu ZGV4OiBnZGItNy44L1JFQURNRS5hcmNoZXIKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44L1JFQURNRS5hcmNo ZXIJMjAxNC0wNy0yOSAxOToyOTowNC44NjE5ODI3NzkgKzAyMDAKK2RpZmYgLS1naXQgYS9SRUFE TUUuYXJjaGVyIGIvUkVBRE1FLmFyY2hlcgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAw MDAwMDAuLjE3M2I4ZWEKKy0tLSAvZGV2L251bGwKKysrKyBiL1JFQURNRS5hcmNoZXIKIEBAIC0w LDAgKzEsMiBAQAogK1RoaXMgYnJhbmNoIG9yaWdpbmFsbHkgaGVsZCB0aGUgUHl0aG9uIGNvZGUg Zm9yIGdkYi4gIEl0IHN0aWxsIGV4aXN0cwogK2JlY2F1c2UgYSBzbWFsbCBhbW91bnQgb2YgY29k ZSBoZXJlIGhhcyBub3QgeWV0IGJlZW4gbWVyZ2VkIHVwc3RyZWFtLgotSW5kZXg6IGdkYi03Ljgv Z2RiL01ha2VmaWxlLmluCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi9NYWtlZmls ZS5pbgkyMDE0LTA3LTI5IDE5OjI5OjAyLjY2NTk3OTY1NSArMDIwMAotKysrIGdkYi03LjgvZ2Ri L01ha2VmaWxlLmluCTIwMTQtMDctMjkgMTk6Mjk6MDQuODYyOTgyNzgxICswMjAwCi1AQCAtMTQ3 Niw2ICsxNDc2LDEyIEBAIHN0YW1wLWg6ICQoc3JjZGlyKS9jb25maWcuaW4gY29uZmlnLnN0YXQK K2RpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KK2luZGV4IGJl NjliNmYuLmE0NDgzZTQgMTAwNjQ0CistLS0gYS9nZGIvTWFrZWZpbGUuaW4KKysrKyBiL2dkYi9N YWtlZmlsZS5pbgorQEAgLTE1MTUsNiArMTUxNSwxMiBAQCBzdGFtcC1oOiAkKHNyY2RpcikvY29u ZmlnLmluIGNvbmZpZy5zdGF0dXMKICAJICBDT05GSUdfTElOS1M9IFwKICAJICAkKFNIRUxMKSBj b25maWcuc3RhdHVzCiAgCkBAIC0zMSwzNSArMzIsMzQgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL01h a2VmaWxlLmluCiAgY29uZmlnLnN0YXR1czogJChzcmNkaXIpL2NvbmZpZ3VyZSBjb25maWd1cmUu dGd0IGNvbmZpZ3VyZS5ob3N0IC4uL2JmZC9kZXZlbG9wbWVudC5zaAogIAkkKFNIRUxMKSBjb25m aWcuc3RhdHVzIC0tcmVjaGVjawogIAotSW5kZXg6IGdkYi03LjgvZ2RiL2RhdGEtZGlyZWN0b3J5 L01ha2VmaWxlLmluCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi9kYXRhLWRpcmVj dG9yeS9NYWtlZmlsZS5pbgkyMDE0LTA3LTI5IDE5OjI5OjAyLjY2NTk3OTY1NSArMDIwMAotKysr IGdkYi03LjgvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCTIwMTQtMDctMjkgMTk6Mjk6 MzMuMDUzMDIyNDg2ICswMjAwCi1AQCAtNjUsNiArNjUsOCBAQCBQWVRIT05fRklMRV9MSVNUID0g XAorZGlmZiAtLWdpdCBhL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbiBiL2dkYi9kYXRh LWRpcmVjdG9yeS9NYWtlZmlsZS5pbgoraW5kZXggMDBjNzBiYi4uZjkzZmZkZCAxMDA2NDQKKy0t LSBhL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgorKysrIGIvZ2RiL2RhdGEtZGlyZWN0 b3J5L01ha2VmaWxlLmluCitAQCAtNjQsNyArNjQsMTAgQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwK KyAJZ2RiL3ByaW50aW5nLnB5IFwKICAJZ2RiL3Byb21wdC5weSBcCiAgCWdkYi94bWV0aG9kLnB5 IFwKKysJZ2RiL3R5cGVzLnB5IFwKICAJZ2RiL2NvbW1hbmQvX19pbml0X18ucHkgXAogKwlnZGIv Y29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5IFwKICsJZ2RiL2NvbW1hbmQvcGFob2xlLnB5IFwKICAJ Z2RiL2NvbW1hbmQveG1ldGhvZHMucHkgXAogIAlnZGIvY29tbWFuZC9mcmFtZV9maWx0ZXJzLnB5 IFwKICAJZ2RiL2NvbW1hbmQvdHlwZV9wcmludGVycy5weSBcCi1AQCAtNzQsNyArNzYsMTAgQEAg UFlUSE9OX0ZJTEVfTElTVCA9IFwKK0BAIC03NCw2ICs3Nyw4IEBAIFBZVEhPTl9GSUxFX0xJU1Qg PSBcCiAgCWdkYi9mdW5jdGlvbi9fX2luaXRfXy5weSBcCisgCWdkYi9mdW5jdGlvbi9jYWxsZXJf aXMucHkgXAogIAlnZGIvZnVuY3Rpb24vc3RyZm5zLnB5IFwKLSAJZ2RiL3ByaW50ZXIvX19pbml0 X18ucHkgXAotLQlnZGIvcHJpbnRlci9ib3VuZF9yZWdpc3RlcnMucHkKLSsJZ2RiL3ByaW50ZXIv Ym91bmRfcmVnaXN0ZXJzLnB5IFwKICsJZ2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weSBcCiArCWdk Yi9mdW5jdGlvbi9pbl9zY29wZS5weSBcCi0rCWdkYi90eXBlcy5weQorIAlnZGIvcHJpbnRlci9f X2luaXRfXy5weSBcCisgCWdkYi9wcmludGVyL2JvdW5kX3JlZ2lzdGVycy5weQogIAotIEBIQVZF X1BZVEhPTl9UUlVFQFBZVEhPTl9GSUxFUyA9ICQoUFlUSE9OX0ZJTEVfTElTVCkKLSBASEFWRV9Q WVRIT05fRkFMU0VAUFlUSE9OX0ZJTEVTID0KLUluZGV4OiBnZGItNy44L2dkYi9kb2MvZ2RiLnRl eGluZm8KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwky MDE0LTA3LTI5IDE5OjI5OjAyLjY3NTk3OTY2OSArMDIwMAotKysrIGdkYi03LjgvZ2RiL2RvYy9n ZGIudGV4aW5mbwkyMDE0LTA3LTI5IDE5OjI5OjA0Ljg3MTk4Mjc5NCArMDIwMAorZGlmZiAtLWdp dCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCitpbmRleCBlMDg2 YzMzLi41ZGZlYjFkIDEwMDY0NAorLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbworKysrIGIvZ2Ri L2RvYy9nZGIudGV4aW5mbwogQEAgLTEyMjUsNiArMTIyNSwxNiBAQCBmb3IgcmVtb3RlIGRlYnVn Z2luZy4KICBSdW4gdXNpbmcgQHZhcntkZXZpY2V9IGZvciB5b3VyIHByb2dyYW0ncyBzdGFuZGFy ZCBpbnB1dCBhbmQgb3V0cHV0LgogIEBjIEZJWE1FOiBraW5nZG9uIHRoaW5rcyB0aGVyZSBpcyBt b3JlIHRvIC10dHkuICBJbnZlc3RpZ2F0ZS4KQEAgLTc3LDEwICs3NywxMCBAQCBJbmRleDogZ2Ri LTcuOC9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGMgcmVzb2x2ZSB0aGUgc2l0dWF0aW9uIG9mIHRo ZXNlIGV2ZW50dWFsbHkKICBAaXRlbSAtdHVpCiAgQGNpbmRleCBAY29kZXstLXR1aX0KLUluZGV4 OiBnZGItNy44L2dkYi9kb2MvcHl0aG9uLnRleGkKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9y aWcvZ2RiL2RvYy9weXRob24udGV4aQkyMDE0LTA3LTI5IDE5OjI5OjAyLjY3Nzk3OTY3MiArMDIw MAotKysrIGdkYi03LjgvZ2RiL2RvYy9weXRob24udGV4aQkyMDE0LTA3LTI5IDE5OjI5OjA0Ljg3 Mjk4Mjc5NSArMDIwMAorZGlmZiAtLWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRleGkgYi9nZGIvZG9j L3B5dGhvbi50ZXhpCitpbmRleCAyMzRjZTVjLi5lOTQwMTI1IDEwMDY0NAorLS0tIGEvZ2RiL2Rv Yy9weXRob24udGV4aQorKysrIGIvZ2RiL2RvYy9weXRob24udGV4aQogQEAgLTg4LDggKzg4LDYg QEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CiAgCiAgQHNtYWxsZXhhbXBs ZQpAQCAtOTAsMTAgKzkwLDEwIEBAIEluZGV4OiBnZGItNy44L2dkYi9kb2MvcHl0aG9uLnRleGkK ICA+cHJpbnQgMjMKICA+ZW5kCiAgMjMKLUluZGV4OiBnZGItNy44L2dkYi9nZGItZ2RiLmdkYi5p bgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvZ2RiLWdkYi5nZGIuaW4JMjAxNC0w Ny0yOSAxOToyOTowMi42Nzc5Nzk2NzIgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9nZGItZ2RiLmdk Yi5pbgkyMDE0LTA3LTI5IDE5OjI5OjA0Ljg3Mjk4Mjc5NSArMDIwMAorZGlmZiAtLWdpdCBhL2dk Yi9nZGItZ2RiLmdkYi5pbiBiL2dkYi9nZGItZ2RiLmdkYi5pbgoraW5kZXggMDVhMzhiMi4uOTgw MWZkZiAxMDA2NDQKKy0tLSBhL2dkYi9nZGItZ2RiLmdkYi5pbgorKysrIGIvZ2RiL2dkYi1nZGIu Z2RiLmluCiBAQCAtMSw1ICsxLDE1IEBACiAgZWNobyBTZXR0aW5nIHVwIHRoZSBlbnZpcm9ubWVu dCBmb3IgZGVidWdnaW5nIGdkYi5cbgogIApAQCAtMTEwLDExICsxMTAsMTEgQEAgSW5kZXg6IGdk Yi03LjgvZ2RiL2dkYi1nZGIuZ2RiLmluCiAgaWYgISRnZGJfaW5pdF9kb25lCiAgICBzZXQgdmFy aWFibGUgJGdkYl9pbml0X2RvbmUgPSAxCiAgCi1JbmRleDogZ2RiLTcuOC9nZGIvbWFpbi5jCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi9tYWluLmMJMjAxNC0wNy0yOSAxOToyOTow Mi42Nzg5Nzk2NzMgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9tYWluLmMJMjAxNC0wNy0yOSAxOToy OTowNC44NzI5ODI3OTUgKzAyMDAKLUBAIC0zNyw2ICszNyw3IEBACitkaWZmIC0tZ2l0IGEvZ2Ri L21haW4uYyBiL2dkYi9tYWluLmMKK2luZGV4IGFjY2Q5MjcuLmVkMjExZjYgMTAwNjQ0CistLS0g YS9nZGIvbWFpbi5jCisrKysgYi9nZGIvbWFpbi5jCitAQCAtMzMsNiArMzMsNyBAQAogIAogICNp bmNsdWRlICJpbnRlcnBzLmgiCiAgI2luY2x1ZGUgIm1haW4uaCIKQEAgLTEyMiw3ICsxMjIsNyBA QCBJbmRleDogZ2RiLTcuOC9nZGIvbWFpbi5jCiAgI2luY2x1ZGUgInNvdXJjZS5oIgogICNpbmNs dWRlICJjbGkvY2xpLWNtZHMuaCIKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKLUBAIC00MTcsNiAr NDE4LDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC00NDQsNiArNDQ1LDggQEAg Y2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgIGNoYXIgKmNkYXJnID0gTlVMTDsKICAgIGNo YXIgKnR0eWFyZyA9IE5VTEw7CiAgCkBAIC0xMzEsNyArMTMxLDcgQEAgSW5kZXg6IGdkYi03Ljgv Z2RiL21haW4uYwogICAgLyogVGhlc2UgYXJlIHN0YXRpYyBzbyB0aGF0IHdlIGNhbiB0YWtlIHRo ZWlyIGFkZHJlc3MgaW4gYW4KICAgICAgIGluaXRpYWxpemVyLiAgKi8KICAgIHN0YXRpYyBpbnQg cHJpbnRfaGVscDsKLUBAIC02MjQsMTAgKzYyNywxNCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpk YXRhKQorQEAgLTY0OSwxMCArNjUyLDE0IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAg ICAgICAgeyJhcmdzIiwgbm9fYXJndW1lbnQsICZzZXRfYXJncywgMX0sCiAgICAgICAgeyJsIiwg cmVxdWlyZWRfYXJndW1lbnQsIDAsICdsJ30sCiAgICAgICAgeyJyZXR1cm4tY2hpbGQtcmVzdWx0 Iiwgbm9fYXJndW1lbnQsICZyZXR1cm5fY2hpbGRfcmVzdWx0LCAxfSwKQEAgLTE0Nyw3ICsxNDcs NyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvbWFpbi5jCiAgICAgICAgewogIAlpbnQgb3B0aW9uX2lu ZGV4OwogIAotQEAgLTY0NSw2ICs2NTIsOSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQor QEAgLTY3MCw2ICs2NzcsOSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIAkgIGNhc2Ug MDoKICAJICAgIC8qIExvbmcgb3B0aW9uIHRoYXQganVzdCBzZXRzIGEgZmxhZy4gICovCiAgCSAg ICBicmVhazsKQEAgLTE1Nyw3ICsxNTcsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvbWFpbi5jCiAg CSAgY2FzZSBPUFRfU0U6CiAgCSAgICBzeW1hcmcgPSBvcHRhcmc7CiAgCSAgICBleGVjYXJnID0g b3B0YXJnOwotQEAgLTg0OSw3ICs4NTksMzEgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkK K0BAIC04NTEsNyArODYxLDMxIEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgCiAgICAv KiBOb3cgdGhhdCBnZGJfaW5pdCBoYXMgY3JlYXRlZCB0aGUgaW5pdGlhbCBpbmZlcmlvciwgd2Un cmUgaW4KICAgICAgIHBvc2l0aW9uIHRvIHNldCBhcmdzIGZvciB0aGF0IGluZmVyaW9yLiAgKi8K QEAgLTE5MCw3ICsxOTAsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvbWFpbi5jCiAgICAgIHsKICAg ICAgICAvKiBUaGUgcmVtYWluaW5nIG9wdGlvbnMgYXJlIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9u cyBmb3IgdGhlCiAgCSBpbmZlcmlvci4gIFRoZSBmaXJzdCBvbmUgaXMgdGhlIHN5bS9leGVjIGZp bGUsIGFuZCB0aGUgcmVzdAotQEAgLTExMzUsNyArMTE2OSw4IEBAIGNhcHR1cmVkX21haW4gKHZv aWQgKmRhdGEpCitAQCAtMTEyOSw3ICsxMTYzLDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0 YSkKICAKICAgIC8qIFJlYWQgaW4gdGhlIG9sZCBoaXN0b3J5IGFmdGVyIGFsbCB0aGUgY29tbWFu ZCBmaWxlcyBoYXZlIGJlZW4KICAgICAgIHJlYWQuICAqLwpAQCAtMjAwLDcgKzIwMCw3IEBAIElu ZGV4OiBnZGItNy44L2dkYi9tYWluLmMKICAKICAgIGlmIChiYXRjaF9mbGFnKQogICAgICB7Ci1A QCAtMTE0NiwxMyArMTE4MSwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTEx NDAsMTMgKzExNzUsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgIC8qIFNob3cg dGltZSBhbmQvb3Igc3BhY2UgdXNhZ2UuICAqLwogICAgZG9fY2xlYW51cHMgKHByZV9zdGF0X2No YWluKTsKICAKQEAgLTIzMiw3ICsyMzIsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvbWFpbi5jCiAg ICAgIH0KICAgIC8qIE5vIGV4aXQgLS0gZXhpdCBpcyB0aHJvdWdoIHF1aXRfY29tbWFuZC4gICov CiAgfQotQEAgLTExODYsNiArMTIzMywxMiBAQCBwcmludF9nZGJfaGVscCAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSkKK0BAIC0xMTgwLDYgKzEyMjcsMTIgQEAgcHJpbnRfZ2RiX2hlbHAgKHN0cnVj dCB1aV9maWxlICpzdHJlYW0pCiAgICBmcHV0c191bmZpbHRlcmVkIChfKCJcCiAgVGhpcyBpcyB0 aGUgR05VIGRlYnVnZ2VyLiAgVXNhZ2U6XG5cblwKICAgICAgZ2RiIFtvcHRpb25zXSBbZXhlY3V0 YWJsZS1maWxlIFtjb3JlLWZpbGUgb3IgcHJvY2Vzcy1pZF1dXG5cCkBAIC0yNDUsNyArMjQ1LDcg QEAgSW5kZXg6IGdkYi03LjgvZ2RiL21haW4uYwogICAgICBnZGIgW29wdGlvbnNdIC0tYXJncyBl eGVjdXRhYmxlLWZpbGUgW2luZmVyaW9yLWFyZ3VtZW50cyAuLi5dXG5cblwKICAiKSwgc3RyZWFt KTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKLUBAIC0xMjMxLDYgKzEyODQsMTMgQEAgT3V0 cHV0IGFuZCB1c2VyIGludGVyZmFjZSBjb250cm9sOlxuXG5cCitAQCAtMTIyNSw2ICsxMjc4LDEz IEBAIE91dHB1dCBhbmQgdXNlciBpbnRlcmZhY2UgY29udHJvbDpcblxuXAogICAgZnB1dHNfdW5m aWx0ZXJlZCAoXygiXAogICAgLS1kYnggICAgICAgICAgICAgIERCWCBjb21wYXRpYmlsaXR5IG1v ZGUuXG5cCiAgICAtLXhkYiAgICAgICAgICAgICAgWERCIGNvbXBhdGliaWxpdHkgbW9kZS5cblwK QEAgLTI1OSwxMCArMjU5LDExIEBAIEluZGV4OiBnZGItNy44L2dkYi9tYWluLmMKICAgIC1xLCAt LXF1aWV0LCAtLXNpbGVudFxuXAogICAgICAgICAgICAgICAgICAgICAgIERvIG5vdCBwcmludCB2 ZXJzaW9uIG51bWJlciBvbiBzdGFydHVwLlxuXG5cCiAgIiksIHN0cmVhbSk7Ci1JbmRleDogZ2Ri LTcuOC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5Ci09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuOC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5CTIw MTQtMDctMjkgMTk6Mjk6MDQuODcyOTgyNzk1ICswMjAwCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhv bi9saWIvZ2RiL2NvbW1hbmQvaWdub3JlX2Vycm9ycy5weSBiL2dkYi9weXRob24vbGliL2dkYi9j b21tYW5kL2lnbm9yZV9lcnJvcnMucHkKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwLi42ZmE0OGZmCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvY29t bWFuZC9pZ25vcmVfZXJyb3JzLnB5CiBAQCAtMCwwICsxLDM3IEBACiArIyBJZ25vcmUgZXJyb3Jz IGluIHVzZXIgY29tbWFuZHMuCiArCkBAIC0zMDEsMTAgKzMwMiwxMSBAQCBJbmRleDogZ2RiLTcu OC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5CiArICAgICAgICAg ICAgcGFzcwogKwogK0lnbm9yZUVycm9yc0NvbW1hbmQgKCkKLUluZGV4OiBnZGItNy44L2dkYi9w eXRob24vbGliL2dkYi9jb21tYW5kL3BhaG9sZS5weQotPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjgvZ2RiL3B5 dGhvbi9saWIvZ2RiL2NvbW1hbmQvcGFob2xlLnB5CTIwMTQtMDctMjkgMTk6Mjk6MDQuODczOTgy Nzk3ICswMjAwCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvcGFob2xl LnB5IGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvcGFob2xlLnB5CituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMC4uNjM2Zjk5ZAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2Ri L3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvcGFob2xlLnB5CiBAQCAtMCwwICsxLDgxIEBACiArIyBw YWhvbGUgY29tbWFuZCBmb3IgZ2RiCiArCkBAIC0zODcsNzMgKzM4OSwxMSBAQCBJbmRleDogZ2Ri LTcuOC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9wYWhvbGUucHkKICsgICAgICAgIHNlbGYu cGFob2xlICh0eXBlLCAwLCAnJykKICsKICtQYWhvbGUoKQotSW5kZXg6IGdkYi03LjgvZ2RiL3B5 dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weQotPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjgvZ2Ri L3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weQkyMDE0LTA3LTI5IDE5OjI5OjA0 Ljg3Mzk4Mjc5NyArMDIwMAotQEAgLTAsMCArMSw1OCBAQAotKyMgQ2FsbGVyLWlzIGZ1bmN0aW9u cy4KLSsKLSsjIENvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0raW1wb3J0IGdkYgotK2lt cG9ydCByZQotKwotK2NsYXNzIENhbGxlcklzIChnZGIuRnVuY3Rpb24pOgotKyAgICAiIiJSZXR1 cm4gVHJ1ZSBpZiB0aGUgY2FsbGluZyBmdW5jdGlvbidzIG5hbWUgaXMgZXF1YWwgdG8gYSBzdHJp bmcuCi0rVGhpcyBmdW5jdGlvbiB0YWtlcyBvbmUgb3IgdHdvIGFyZ3VtZW50cy4KLStUaGUgZmly c3QgYXJndW1lbnQgaXMgdGhlIG5hbWUgb2YgYSBmdW5jdGlvbjsgaWYgdGhlIGNhbGxpbmcgZnVu Y3Rpb24ncwotK25hbWUgaXMgZXF1YWwgdG8gdGhpcyBhcmd1bWVudCwgdGhpcyBmdW5jdGlvbiBy ZXR1cm5zIFRydWUuCi0rVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCB0ZWxscyB0aGlzIGZ1 bmN0aW9uIGhvdyBtYW55IHN0YWNrIGZyYW1lcwotK3RvIHRyYXZlcnNlIHRvIGZpbmQgdGhlIGNh bGxpbmcgZnVuY3Rpb24uICBUaGUgZGVmYXVsdCBpcyAxLiIiIgotKwotKyAgICBkZWYgX19pbml0 X18gKHNlbGYpOgotKyAgICAgICAgc3VwZXIgKENhbGxlcklzLCBzZWxmKS5fX2luaXRfXyAoImNh bGxlcl9pcyIpCi0rCi0rICAgIGRlZiBpbnZva2UgKHNlbGYsIG5hbWUsIG5mcmFtZXMgPSAxKToK LSsgICAgICAgIGZyYW1lID0gZ2RiLnNlbGVjdGVkX2ZyYW1lICgpCi0rICAgICAgICB3aGlsZSBu ZnJhbWVzID4gMDoKLSsgICAgICAgICAgICBmcmFtZSA9IGZyYW1lLm9sZGVyICgpCi0rICAgICAg ICAgICAgbmZyYW1lcyA9IG5mcmFtZXMgLSAxCi0rICAgICAgICByZXR1cm4gZnJhbWUubmFtZSAo KSA9PSBuYW1lLnN0cmluZyAoKQotKwotK2NsYXNzIENhbGxlck1hdGNoZXMgKGdkYi5GdW5jdGlv bik6Ci0rICAgICIiIlJldHVybiBUcnVlIGlmIHRoZSBjYWxsaW5nIGZ1bmN0aW9uJ3MgbmFtZSBt YXRjaGVzIGEgc3RyaW5nLgotK1RoaXMgZnVuY3Rpb24gdGFrZXMgb25lIG9yIHR3byBhcmd1bWVu dHMuCi0rVGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgcmVndWxhciBleHByZXNzaW9uOyBpZiB0aGUg Y2FsbGluZyBmdW5jdGlvbidzCi0rbmFtZSBpcyBtYXRjaGVkIGJ5IHRoaXMgYXJndW1lbnQsIHRo aXMgZnVuY3Rpb24gcmV0dXJucyBUcnVlLgotK1RoZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQg dGVsbHMgdGhpcyBmdW5jdGlvbiBob3cgbWFueSBzdGFjayBmcmFtZXMKLSt0byB0cmF2ZXJzZSB0 byBmaW5kIHRoZSBjYWxsaW5nIGZ1bmN0aW9uLiAgVGhlIGRlZmF1bHQgaXMgMS4iIiIKLSsKLSsg ICAgZGVmIF9faW5pdF9fIChzZWxmKToKLSsgICAgICAgIHN1cGVyIChDYWxsZXJNYXRjaGVzLCBz ZWxmKS5fX2luaXRfXyAoImNhbGxlcl9tYXRjaGVzIikKLSsKLSsgICAgZGVmIGludm9rZSAoc2Vs ZiwgbmFtZSwgbmZyYW1lcyA9IDEpOgotKyAgICAgICAgZnJhbWUgPSBnZGIuc2VsZWN0ZWRfZnJh bWUgKCkKLSsgICAgICAgIHdoaWxlIG5mcmFtZXMgPiAwOgotKyAgICAgICAgICAgIGZyYW1lID0g ZnJhbWUub2xkZXIgKCkKLSsgICAgICAgICAgICBuZnJhbWVzID0gbmZyYW1lcyAtIDEKLSsgICAg ICAgIHJldHVybiByZS5tYXRjaCAobmFtZS5zdHJpbmcgKCksIGZyYW1lLm5hbWUgKCkpIGlzIG5v dCBOb25lCi0rCi0rQ2FsbGVySXMoKQotK0NhbGxlck1hdGNoZXMoKQotSW5kZXg6IGdkYi03Ljgv Z2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2luX3Njb3BlLnB5Ci09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu OC9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vaW5fc2NvcGUucHkJMjAxNC0wNy0yOSAxOToy OTowNC44NzM5ODI3OTcgKzAyMDAKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL2xpYi9nZGIvZnVu Y3Rpb24vaW5fc2NvcGUucHkgYi9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vaW5fc2NvcGUu cHkKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5kZWJiM2JiCistLS0gL2Rl di9udWxsCisrKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vaW5fc2NvcGUucHkKIEBA IC0wLDAgKzEsNDcgQEAKICsjIEluLXNjb3BlIGZ1bmN0aW9uLgogKwpAQCAtNTAyLDExICs0NDIs MTEgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2luX3Njb3Bl LnB5CiArCXJldHVybiB3YW50ZWQgPT0gZm91bmQKICsKICtJblNjb3BlICgpCi1JbmRleDogZ2Ri LTcuOC9nZGIvcHl0aG9uL3B5dGhvbi5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dk Yi9weXRob24vcHl0aG9uLmMJMjAxNC0wNy0yOSAxOToyOTowMi42Nzk5Nzk2NzQgKzAyMDAKLSsr KyBnZGItNy44L2dkYi9weXRob24vcHl0aG9uLmMJMjAxNC0wNy0yOSAxOToyOTowNC44NzM5ODI3 OTcgKzAyMDAKLUBAIC05NSw2ICs5NSw4IEBAIGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3Vh Z2VfZGVmbiBleHQKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhv bi9weXRob24uYworaW5kZXggYjFkODI4My4uOGViOGFmZSAxMDA2NDQKKy0tLSBhL2dkYi9weXRo b24vcHl0aG9uLmMKKysrKyBiL2dkYi9weXRob24vcHl0aG9uLmMKK0BAIC05Myw2ICs5Myw4IEBA IGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiBleHRlbnNpb25fbGFuZ3VhZ2Vf cHl0aG9uID0KICAjaW5jbHVkZSAibGluZXNwZWMuaCIKICAjaW5jbHVkZSAic291cmNlLmgiCiAg I2luY2x1ZGUgInZlcnNpb24uaCIKQEAgLTUxNSw3ICs0NTUsNyBAQCBJbmRleDogZ2RiLTcuOC9n ZGIvcHl0aG9uL3B5dGhvbi5jCiAgI2luY2x1ZGUgInRhcmdldC5oIgogICNpbmNsdWRlICJnZGJ0 aHJlYWQuaCIKICAjaW5jbHVkZSAiaW50ZXJwcy5oIgotQEAgLTEyMjIsNiArMTIyNCw1NiBAQCBn ZGJweV9wcmludF9zdGFjayAodm9pZCkKK0BAIC0xMjIwLDYgKzEyMjIsNTYgQEAgZ2RicHlfcHJp bnRfc3RhY2sgKHZvaWQpCiAgCiAgLyogUmV0dXJuIHRoZSBjdXJyZW50IFByb2dzcGFjZS4KICAg ICBUaGVyZSBhbHdheXMgaXMgb25lLiAgKi8KQEAgLTU3Miw3ICs1MTIsNyBAQCBJbmRleDogZ2Ri LTcuOC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAgCiAgc3RhdGljIFB5T2JqZWN0ICoKICBnZGJweV9n ZXRfY3VycmVudF9wcm9nc3BhY2UgKFB5T2JqZWN0ICp1bnVzZWQxLCBQeU9iamVjdCAqdW51c2Vk MikKLUBAIC0xOTEwLDYgKzE5NjIsOCBAQCBzdGF0aWMgUHlNZXRob2REZWYgR2RiTWV0aG9kc1td ID0KK0BAIC0xOTEzLDYgKzE5NjUsOCBAQCBzdGF0aWMgUHlNZXRob2REZWYgR2RiTWV0aG9kc1td ID0KICBFdmFsdWF0ZSBjb21tYW5kLCBhIHN0cmluZywgYXMgYSBnZGIgQ0xJIGNvbW1hbmQuICBP cHRpb25hbGx5IHJldHVybnNcblwKICBhIFB5dGhvbiBTdHJpbmcgY29udGFpbmluZyB0aGUgb3V0 cHV0IG9mIHRoZSBjb21tYW5kIGlmIHRvX3N0cmluZyBpc1xuXAogIHNldCB0byBUcnVlLiIgfSwK QEAgLTU4MSwxMCArNTIxLDEwIEBAIEluZGV4OiBnZGItNy44L2dkYi9weXRob24vcHl0aG9uLmMK ICAgIHsgInBhcmFtZXRlciIsIGdkYnB5X3BhcmFtZXRlciwgTUVUSF9WQVJBUkdTLAogICAgICAi UmV0dXJuIGEgZ2RiIHBhcmFtZXRlcidzIHZhbHVlIiB9LAogIAotSW5kZXg6IGdkYi03LjgvZ2Ri L3B5dGhvbi9weXRob24uaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvcHl0aG9u L3B5dGhvbi5oCTIwMTQtMDctMjkgMTk6Mjk6MDIuNjc5OTc5Njc0ICswMjAwCi0rKysgZ2RiLTcu OC9nZGIvcHl0aG9uL3B5dGhvbi5oCTIwMTQtMDctMjkgMTk6Mjk6MDQuODczOTgyNzk3ICswMjAw CitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uaCBiL2dkYi9weXRob24vcHl0aG9uLmgK K2luZGV4IDllOTk5OTIuLmM3NzZlNTkgMTAwNjQ0CistLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi5o CisrKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5oCiBAQCAtMjUsNCArMjUsNiBAQAogIC8qIFRoaXMg aXMgYWxsIHRoYXQgcHl0aG9uIGV4cG9ydHMgdG8gZ2RiLiAgKi8KICBleHRlcm4gY29uc3Qgc3Ry dWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuIGV4dGVuc2lvbl9sYW5ndWFnZV9weXRob247CkBA IC01OTIsMTAgKzUzMiwxMCBAQCBJbmRleDogZ2RiLTcuOC9nZGIvcHl0aG9uL3B5dGhvbi5oCiAr ZXh0ZXJuIHZvaWQgcnVuX3B5dGhvbl9zY3JpcHQgKGludCBhcmdjLCBjaGFyICoqYXJndik7CiAr CiAgI2VuZGlmIC8qIEdEQl9QWVRIT05fSCAqLwotSW5kZXg6IGdkYi03LjgvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCTIwMTQtMDctMjkgMTk6Mjk6MDIuNjc5OTc5 Njc0ICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhw CTIwMTQtMDctMjkgMTk6Mjk6MDQuODc0OTgyNzk4ICswMjAwCitkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxm dGVzdC5leHAKK2luZGV4IDBiMTFlMTIuLmUzNWU4MjkgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2Vs ZnRlc3QuZXhwCiBAQCAtOTIsNiArOTIsMTAgQEAgcHJvYyBkb19zdGVwc19hbmRfbmV4dHMge30g ewogIAkJc2V0IGRlc2NyaXB0aW9uICJzdGVwIG92ZXIgY21kYXJnX3ZlYyBpbml0aWFsaXphdGlv biIKICAJCXNldCBjb21tYW5kICJzdGVwIgpAQCAtNjA3LDIxICs1NDcsMjQgQEAgSW5kZXg6IGdk Yi03LjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAogIAkgICAgLXJlICIuKnBy ZV9zdGF0X2NoYWluID0gbWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXAuKiRnZGJfcHJvbXB0ICQi IHsKICAJCXNldCBkZXNjcmlwdGlvbiAibmV4dCBvdmVyIG1ha2VfY29tbWFuZF9zdGF0c19jbGVh bnVwIGFuZCBldmVyeXRoaW5nIGl0IGNhbGxzIgogIAkJc2V0IGNvbW1hbmQgIm5leHQiCi1JbmRl eDogZ2RiLTcuOC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCi09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5l eHAJMjAxNC0wNy0yOSAxOToyOTowMi42ODA5Nzk2NzYgKzAyMDAKLSsrKyBnZGItNy44L2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAJMjAxNC0wNy0yOSAxOToyOTowNC44NzQ5 ODI3OTggKzAyMDAKLUBAIC05NCwzICs5NCw1IEBAIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdy ZXN1bHQgPSAlcycgJQotIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSBm MC5yZWFkX3ZhciAoJ2EnKSkiICIgPSAxIiAidGVzdCBGcmFtZS5yZWFkX3ZhciAtIHN1Y2Nlc3Mi CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cCBiL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKK2luZGV4IGU0N2YzNDAuLmE3ZTBh NTIgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCisr KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCitAQCAtOTUsNiArOTUs OCBAQCBnZGJfdGVzdCAicHl0aG9uIHByaW50ICgncmVzdWx0ID0gJXMnICUgZjAucmVhZF92YXIg KCdhJykpIiAiID0gMSIgInRlc3QgRnJhbWUucgogIAogIGdkYl90ZXN0ICJweXRob24gcHJpbnQg KCdyZXN1bHQgPSAlcycgJSAoZ2RiLnNlbGVjdGVkX2ZyYW1lICgpID09IGYxKSkiICIgPSBUcnVl IiAidGVzdCBnZGIuc2VsZWN0ZWRfZnJhbWUiCi0rCisgCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmlu dCAoJ3Jlc3VsdCA9ICVzJyAlIChmMC5ibG9jayAoKSkpIiAiPGdkYi5CbG9jayBvYmplY3QgYXQg MHhcW1xbOnhkaWdpdDpcXVxdKz4iICJ0ZXN0IEZyYW1lLmJsb2NrIgotSW5kZXg6IGdkYi03Ljgv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cAotPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03Ljgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCTIwMTQtMDct MjkgMTk6Mjk6MDIuNjgwOTc5Njc2ICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktdmFsdWUuZXhwCTIwMTQtMDctMjkgMTk6Mjk6MDQuODc0OTgyNzk4ICswMjAw Ci1AQCAtMzg1LDYgKzM4NSwxNSBAQCBwcm9jIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgge30gewor KworICMgQ2FuIHJlYWQgU1AgcmVnaXN0ZXIuCisgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAoJ3Jl c3VsdCA9ICVzJyAlIChnZGIuc2VsZWN0ZWRfZnJhbWUgKCkucmVhZF9yZWdpc3RlciAoJ3NwJykg PT0gZ2RiLnBhcnNlX2FuZF9ldmFsICgnXCRzcCcpKSkiIFwKKyAgICIgPSBUcnVlIiBcCitkaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKK2luZGV4IGYwODFmZjAuLjMxYjU5MTAgMTAw NjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCisrKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCitAQCAtMzg4LDYgKzM4OCwxNSBA QCBwcm9jIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgge30gewogICAgICAicHJpbnQgdmFsdWUncyB0 eXBlIgogIH0KICAKQEAgLTYzNyw3ICs1ODAsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCiAgIyBSZWdyZXNzaW9uIHRlc3QgZm9yIGludmFs aWQgc3Vic2NyaXB0IG9wZXJhdGlvbnMuICBUaGUgYnVnIHdhcyB0aGF0CiAgIyB0aGUgdHlwZSBv ZiB0aGUgdmFsdWUgd2FzIG5vdCBiZWluZyBjaGVja2VkIGJlZm9yZSBhbGxvd2luZyBhCiAgIyBz dWJzY3JpcHQgb3BlcmF0aW9uIHRvIHByb2NlZWQuCi1AQCAtNTE0LDYgKzUyMyw3IEBAIHRlc3Rf dmFsdWVfaW5faW5mZXJpb3IKK0BAIC01MTcsNiArNTI2LDcgQEAgdGVzdF92YWx1ZV9pbl9pbmZl cmlvcgogIHRlc3RfaW5mZXJpb3JfZnVuY3Rpb25fY2FsbAogIHRlc3RfbGF6eV9zdHJpbmdzCiAg dGVzdF92YWx1ZV9hZnRlcl9kZWF0aAoKZGlmZiAtLWdpdCBhL2dkYi1hc3luYy1zdG9wcGVkLW9u LXBpZC1hcmctdGVzdHN1aXRlLnBhdGNoIGIvZ2RiLWFzeW5jLXN0b3BwZWQtb24tcGlkLWFyZy10 ZXN0c3VpdGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1MTY2OTUuLjAw MDAwMDAKLS0tIGEvZ2RiLWFzeW5jLXN0b3BwZWQtb24tcGlkLWFyZy10ZXN0c3VpdGUucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwv Z2RiLXBhdGNoZXMvMjAxNC0wOS9tc2cwMDM4MS5odG1sCi1TdWJqZWN0OiBbdGVzdHN1aXRlIHBh dGNoXSBydW5hd2F5IGF0dGFjaCBwcm9jZXNzZXMgIFtSZTogUmVncmVzc2lvbjogR0RCIHN0b3Bw ZWQgb24gcnVuIHdpdGggYXR0YWNoZWQgcHJvY2VzcyAoUFIgMTczNDcpXQotCi0KLS0tUm5sUWpK MGQ5N0RhK1RWMQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1D b250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotT24gVGh1LCAxMSBTZXAgMjAxNCAxNDozNTo1 MyArMDIwMCwgUGVkcm8gQWx2ZXMgd3JvdGU6Ci0+IFRoYW5rcywgcHVzaGVkIHRvIGJvdGggbWFz dGVyIGFuZCA3LjguCi0KLUkgaGF2ZSBzdGFydGVkIHNlZWluZyBvY2Nhc2lvbmFsIHJ1bmF3YXkg J2F0dGFjaCcgcHJvY2Vzc2VzIHRoZXNlIGRheXMuCi1JIGNhbm5vdCBiZSBjZXJ0YWluIGl0IGlz IHJlYWxseSBjYXVzZWQgYnkgdGhpcyBwYXRjaCwgZm9yIGV4YW1wbGUKLWdyZXAgJ0ZBSUwuKmNt ZGxpbmUgYXR0YWNoIHJ1bicgZG9lcyBub3Qgc2hvdyBhbnl0aGluZyBpbiBteSBsb2dzLgotCi1C dXQgYXMgSSByZW1lbWJlciB0aGlzICdhdHRhY2gnIHJ1bmF3YXkgcHJvY2VzcyBhbHdheXMgaGFw cGVuZWQgaW4gR0RCIChidXQKLUkgZG8gbm90IHJlbWVtYmVyIGl0IGluIHRoZSBwYXN0IG1vbnRo cykgSSB0aGluayBpdCB3b3VsZCBiZSBtb3N0IHNhZmUgdG8ganVzdAotc29sdmUgaXQgZm9yZXZl ciBieSBbYXR0YWNoZWRdLgotCi0KLUphbgotCi0tLVJubFFqSjBkOTdEYStUVjEKLUNvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjog aW5saW5lOyBmaWxlbmFtZT0xCi0KLWdkYi90ZXN0c3VpdGUvCi0yMDE0LTA5LTEyICBKYW4gS3Jh dG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIGdkYi5iYXNlL2F0dGFj aC5jOiBJbmNsdWRlIHVuaXN0ZC5oLgotCShtYWluKTogQ2FsbCBhbGFybS4gIEFkZCBsYWJlbCBw b3N0bG9vcC4KLQkqIGdkYi5iYXNlL2F0dGFjaC5leHAgKGRvX2F0dGFjaF90ZXN0cyk6IFVzZSBn ZGJfZ2V0X2xpbmVfbnVtYmVyLAotCWdkYl9icmVha3BvaW50LCBnZGJfY29udGludWVfdG9fYnJl YWtwb2ludC4KLQkodGVzdF9jb21tYW5kX2xpbmVfYXR0YWNoX3J1bik6IEtpbGwgJHt0ZXN0cGlk fSBpbiBvbmUgZXhpdCBwYXRoLgotCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXR0YWNoLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2F0dGFjaC5jCTIwMTQtMTAtMzAgMjA6MjM6MDEuMzExNTk1NzI1ICswMTAw Ci0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmMJMjAxNC0xMC0z MCAyMDoyMzozOC42NTM1NzQ5OTkgKzAxMDAKLUBAIC01LDYgKzUsNyBAQAotICAgIGV4aXQgdW5s ZXNzL3VudGlsIGdkYiBzZXRzIHRoZSB2YXJpYWJsZSB0byBub24temVyby4pCi0gICAgKi8KLSAj aW5jbHVkZSA8c3RkaW8uaD4KLSsjaW5jbHVkZSA8dW5pc3RkLmg+Ci0gCi0gaW50ICBzaG91bGRf ZXhpdCA9IDA7Ci0gCi1AQCAtMTIsOSArMTMsMTEgQEAgaW50IG1haW4gKCkKLSB7Ci0gICBpbnQg IGxvY2FsX2kgPSAwOwotIAotKyAgYWxhcm0gKDYwKTsKLSsKLSAgIHdoaWxlICghIHNob3VsZF9l eGl0KQotICAgICB7Ci0gICAgICAgbG9jYWxfaSsrOwotICAgICB9Ci0tICByZXR1cm4gMDsKLSsg IHJldHVybiAwOyAvKiBwb3N0bG9vcCAqLwotIH0KLUluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9hdHRhY2guZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2guZXhwCTIwMTQtMTAtMzAgMjA6MjM6MDEuMzEx NTk1NzI1ICswMTAwCi0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNo LmV4cAkyMDE0LTEwLTMwIDIwOjIzOjU0LjE1MTU2Mjg2NyArMDEwMAotQEAgLTI1NiwxMSArMjU2 LDggQEAgcHJvYyBkb19hdHRhY2hfdGVzdHMge30gewotIAotICAgICAjIFZlcmlmeSB0aGF0IHRo ZSBtb2RpZmljYXRpb24gcmVhbGx5IGhhcHBlbmVkLgotIAotLSAgICBnZGJfdGVzdCAidGJyZWFr IDE5IiAiVGVtcG9yYXJ5IGJyZWFrcG9pbnQgLiphdC4qJHNyY2ZpbGUsIGxpbmUgMTkuKiIgXAot LQkiYWZ0ZXIgYXR0YWNoMiwgc2V0IHRicmVhayBwb3N0bG9vcCIKLS0KLS0gICAgZ2RiX3Rlc3Qg ImNvbnRpbnVlIiAibWFpbi4qYXQuKiRzcmNmaWxlOjE5LioiIFwKLS0JImFmdGVyIGF0dGFjaDIs IHJlYWNoIHRicmVhayBwb3N0bG9vcCIKLSsgICAgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgInBvc3Rsb29wIl0gdGVtcG9yYXJ5Ci0rICAgIGdkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJwb3N0bG9vcCIgIi4qIHBvc3Rsb29wIC4qIgotIAotICAgICAjIEFsbG93IHRoZSB0 ZXN0IHByb2Nlc3MgdG8gZXhpdCwgdG8gY2xlYW51cCBhZnRlciBvdXJzZWx2ZXMuCi0gCi1AQCAt NDE4LDYgKzQxNSw3IEBAIHByb2MgdGVzdF9jb21tYW5kX2xpbmVfYXR0YWNoX3J1biB7fSB7Ci0g CQkgICAgICItaWV4IFwic2V0IGhlaWdodCAwXCIgLWlleCBcInNldCB3aWR0aCAwXCIgLS1waWQ9 JHRlc3RwaWQgLWV4IFwic3RhcnRcIiJdCi0gCWlmIHsgJHJlcyAhPSAwfSB7Ci0gCSAgICBmYWls ICR0ZXN0Ci0rCSAgICByZW1vdGVfZXhlYyBidWlsZCAia2lsbCAtOSAke3Rlc3RwaWR9IgotIAkg ICAgcmV0dXJuICRyZXMKLSAJfQotIAlnZGJfdGVzdF9tdWx0aXBsZSAiIiAkdGVzdCB7CgpkaWZm IC0tZ2l0IGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaCBiL2dkYi1hdHRhY2gt ZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKaW5kZXggNzVhN2E1Zi4uZTZkOTEwMiAxMDA2NDQKLS0t IGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAorKysgYi9nZGItYXR0YWNoLWZh aWwtcmVhc29ucy01b2Y1LnBhdGNoCkBAIC0zNywxMSArMzcsMTEgQEAgZ2RiL2dkYnNlcnZlci8K IAkobGludXhfY3JlYXRlX2luZmVyaW9yLCBsaW51eF90cmFjZWZvcmtfY2hpbGQpOiBDYWxsIGl0 IGluc3RlYWQgb2YKIAlkaXJlY3QgcHRyYWNlLgogCi1JbmRleDogZ2RiLTcuOC4xL2dkYi9jb21t b24vbGludXgtcHRyYWNlLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9uYXQvbGlu dXgtcHRyYWNlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9nZGIvY29tbW9uL2xp bnV4LXB0cmFjZS5jCTIwMTQtMTAtMzAgMTg6MzM6MzcuMjcxMDk3NjQ0ICswMTAwCi0rKysgZ2Ri LTcuOC4xL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmMJMjAxNC0xMC0zMCAxODozMzozOS42NDEw OTI3NjMgKzAxMDAKLUBAIC0zMiw2ICszMiwxMCBAQAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCTIwMTUtMDEtMDEgMjE6Mzg6MTQuNjkxMjA5MDk0 ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCTIw MTUtMDEtMDEgMjE6Mzk6MzQuNjcwMTU3NTA2ICswMTAwCitAQCAtMjUsNiArMjUsMTAgQEAKICAK ICAjaW5jbHVkZSA8c3RkaW50Lmg+CiAgCkBAIC01Miw3ICs1Miw3IEBAIEluZGV4OiBnZGItNy44 LjEvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwogIC8qIFN0b3JlcyB0aGUgY3VycmVudGx5IHN1 cHBvcnRlZCBwdHJhY2Ugb3B0aW9ucy4gIEEgdmFsdWUgb2YKICAgICAtMSBtZWFucyB3ZSBkaWQg bm90IGNoZWNrIGZvciBmZWF0dXJlcyB5ZXQuICBBIHZhbHVlIG9mIDAgbWVhbnMKICAgICB0aGVy ZSBhcmUgbm8gc3VwcG9ydGVkIGZlYXR1cmVzLiAgKi8KLUBAIC01Niw2ICs2MCw4IEBAIGxpbnV4 X3B0cmFjZV9hdHRhY2hfZmFpbF9yZWFzb24gKHBpZF90IHAKK0BAIC01Myw2ICs1Nyw4IEBAIGxp bnV4X3B0cmFjZV9hdHRhY2hfZmFpbF9yZWFzb24gKHBpZF90IHAKICAgICAgYnVmZmVyX3htbF9w cmludGYgKGJ1ZmZlciwgXygicHJvY2VzcyAlZCBpcyBhIHpvbWJpZSAiCiAgCQkJCSAiLSB0aGUg cHJvY2VzcyBoYXMgYWxyZWFkeSB0ZXJtaW5hdGVkIiksCiAgCQkgICAgICAgKGludCkgcGlkKTsK QEAgLTYxLDExICs2MSwxMCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9jb21tb24vbGludXgtcHRy YWNlLmMKICB9CiAgCiAgI2lmIGRlZmluZWQgX19pMzg2X18gfHwgZGVmaW5lZCBfX3g4Nl82NF9f Ci1AQCAtNTUxLDMgKzU1NywxOSBAQCBsaW51eF9wdHJhY2VfaW5pdF93YXJuaW5ncyAodm9pZCkK LSAKK0BAIC01NjgsNiArNTc0LDIyIEBAIGxpbnV4X3B0cmFjZV9pbml0X3dhcm5pbmdzICh2b2lk KQogICAgbGludXhfcHRyYWNlX3Rlc3RfcmV0X3RvX254ICgpOwogIH0KLSsKKyAKICsvKiBQcmlu dCBhbGwgcG9zc2libGUgcmVhc29ucyB3ZSBjb3VsZCBmYWlsIHRvIGNyZWF0ZSBhIHRyYWNlZCBw cm9jZXNzLiAgKi8KICsKICt2b2lkCkBAIC04MSwyMyArODAsMjcgQEAgSW5kZXg6IGdkYi03Ljgu MS9nZGIvY29tbW9uL2xpbnV4LXB0cmFjZS5jCiArCQkJICIoZ2RiKSBzaGVsbCBzdWRvIHNldHNl Ym9vbCBkZW55X3B0cmFjZT0wIikpOwogKyNlbmRpZiAvKiBIQVZFX0xJQlNFTElOVVggKi8KICt9 Ci1JbmRleDogZ2RiLTcuOC4xL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgKKysKKyAvKiBTZXQg YWRkaXRpb25hbCBwdHJhY2UgZmxhZ3MgdG8gdXNlLiAgU29tZSBzdWNoIGZsYWdzIG1heSBiZSBj aGVja2VkCisgICAgYnkgdGhlIGltcGxlbWVudGF0aW9uIGFib3ZlLiAgVGhpcyBmdW5jdGlvbiBt dXN0IGJlIGNhbGxlZCBiZWZvcmUKKyAgICBhbnkgb3RoZXIgZnVuY3Rpb24gaW4gdGhpcyBmaWxl OyBvdGhlcndpc2UgdGhlIGZsYWdzIG1heSBub3QgdGFrZQorSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL25hdC9saW51eC1wdHJhY2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5v cmlnL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJMjAxNC0xMC0zMCAxODozMzozNy4yNzEwOTc2 NDQgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuaAkyMDE0LTEw LTMwIDE4OjMzOjM5LjY0MjA5Mjc2MSArMDEwMAotQEAgLTg1LDYgKzg1LDcgQEAgc3RydWN0IGJ1 ZmZlcjsKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2Uu aAkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MDIwNDg0NCArMDEwMAorKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE1LTAxLTAxIDIxOjM5OjAwLjU0MjE3OTUx OSArMDEwMAorQEAgLTkwLDYgKzkwLDcgQEAgc3RydWN0IGJ1ZmZlcjsKICAKICBleHRlcm4gdm9p ZCBsaW51eF9wdHJhY2VfYXR0YWNoX2ZhaWxfcmVhc29uIChwaWRfdCBwaWQsIHN0cnVjdCBidWZm ZXIgKmJ1ZmZlcik7CiAgZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2luaXRfd2FybmluZ3MgKHZv aWQpOwogK2V4dGVybiB2b2lkIGxpbnV4X3B0cmFjZV9jcmVhdGVfd2FybmluZ3MgKHN0cnVjdCBi dWZmZXIgKmJ1ZmZlcik7Ci0gZXh0ZXJuIHZvaWQgbGludXhfZW5hYmxlX2V2ZW50X3JlcG9ydGlu ZyAocGlkX3QgcGlkKTsKKyBleHRlcm4gdm9pZCBsaW51eF9lbmFibGVfZXZlbnRfcmVwb3J0aW5n IChwaWRfdCBwaWQsIGludCBhdHRhY2hlZCk7CiAgZXh0ZXJuIHZvaWQgbGludXhfZGlzYWJsZV9l dmVudF9yZXBvcnRpbmcgKHBpZF90IHBpZCk7CiAgZXh0ZXJuIGludCBsaW51eF9zdXBwb3J0c190 cmFjZWZvcmsgKHZvaWQpOwotSW5kZXg6IGdkYi03LjguMS9nZGIvY29uZmlndXJlLmFjCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlndXJlLmFjCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC4xLm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE0LTEwLTMwIDE4OjMzOjM3LjI3MjA5 NzY0MiArMDEwMAotKysrIGdkYi03LjguMS9nZGIvY29uZmlndXJlLmFjCTIwMTQtMTAtMzAgMTg6 MzM6MzkuNjQzMDkyNzU5ICswMTAwCi1AQCAtMjE2MSw2ICsyMTYxLDEwIEBAIGNhc2UgJGhvc3Rf b3MgaW4KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE1 LTAxLTAxIDIxOjM4OjE0LjY5MjIwOTA5NCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2NvbmZpZ3VyZS5hYwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MTIwNDg0MyArMDEwMAorQEAg LTIxMTYsNiArMjExNiwxMCBAQCBjYXNlICRob3N0X29zIGluCiAgZXNhYwogIEFDX0RFRklORV9V TlFVT1RFRChHREJJTklULCIkZ2RiaW5pdCIsW1RoZSAuZ2RiaW5pdCBmaWxlbmFtZS5dKQogIApA QCAtMTA4LDExICsxMTEsMTEgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvY29uZmlndXJlLmFjCiAg ZG5sIEhhbmRsZSBvcHRpb25hbCBmZWF0dXJlcyB0aGF0IGNhbiBiZSBlbmFibGVkLgogIAogICMg U3VwcG9ydCBmb3IgLS13aXRoLXN5c3Jvb3QgaXMgYSBjb3B5IG9mIEdEQl9BQ19XSVRIX0RJUiwK LUluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMKK0luZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNC0xMC0zMCAx ODozMzozNy4yNzMwOTc2NDAgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25m aWd1cmUuYWMJMjAxNC0xMC0zMCAxODozMzozOS42NDMwOTI3NTkgKzAxMDAKLUBAIC00NTQsNiAr NDU0LDEwIEBAIGlmICR3YW50X2lwYSA7IHRoZW4KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNS0wMS0wMSAyMTozODoxNC42OTMyMDkw OTMgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJl LmFjCTIwMTUtMDEtMDEgMjE6Mzg6MjEuMjgxMjA0ODQzICswMTAwCitAQCAtNDYxLDYgKzQ2MSwx MCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCiAgICAgZmkKICBmaQogIApAQCAtMTIzLDExICsxMjYs MTEgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwogIEFDX1NV QlNUKEdEQlNFUlZFUl9ERVBGSUxFUykKICBBQ19TVUJTVChHREJTRVJWRVJfTElCUykKICBBQ19T VUJTVChzcnZfeG1sYnVpbHRpbikKLUluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9saW51 eC1sb3cuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnNlcnZlci9saW51eC1s b3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmlnL2dkYi9nZGJzZXJ2ZXIvbGludXgt bG93LmMJMjAxNC0xMC0zMCAxODozMzozNy4yNzUwOTc2MzYgKzAxMDAKLSsrKyBnZGItNy44LjEv Z2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE0LTEwLTMwIDE4OjMzOjM5LjY0NDA5Mjc1NyAr MDEwMAotQEAgLTU0MSw2ICs1NDEsMjkgQEAgYWRkX2x3cCAocHRpZF90IHB0aWQpCistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxNS0wMS0w MSAyMTozODoxNC42OTUyMDkwOTEgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9n ZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxNS0wMS0wMSAyMTozODoyMS4yODIyMDQ4NDMgKzAxMDAK K0BAIC01MzcsNiArNTM3LDI5IEBAIGFkZF9sd3AgKHB0aWRfdCBwdGlkKQogICAgcmV0dXJuIGx3 cDsKICB9CiAgCkBAIC0xNTcsNyArMTYwLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZ2Ric2Vy dmVyL2xpbnV4LWxvdy5jCiAgLyogU3RhcnQgYW4gaW5mZXJpb3IgcHJvY2VzcyBhbmQgcmV0dXJu cyBpdHMgcGlkLgogICAgIEFMTEFSR1MgaXMgYSB2ZWN0b3Igb2YgcHJvZ3JhbS1uYW1lIGFuZCBh cmdzLiAqLwogIAotQEAgLTU4Miw3ICs2MDUsNyBAQCBsaW51eF9jcmVhdGVfaW5mZXJpb3IgKGNo YXIgKnByb2dyYW0sIGNoCitAQCAtNTc4LDcgKzYwMSw3IEBAIGxpbnV4X2NyZWF0ZV9pbmZlcmlv ciAoY2hhciAqcHJvZ3JhbSwgY2gKICAgIGlmIChwaWQgPT0gMCkKICAgICAgewogICAgICAgIGNs b3NlX21vc3RfZmRzICgpOwpAQCAtMTY2LDExICsxNjksMTEgQEAgSW5kZXg6IGdkYi03LjguMS9n ZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCiAgCiAgI2lmbmRlZiBfX0FORFJPSURfXyAvKiBCaW9u aWMgZG9lc24ndCB1c2UgU0lHUlRNSU4gdGhlIHdheSBnbGliYyBkb2VzLiAgKi8KICAgICAgICBz aWduYWwgKF9fU0lHUlRNSU4gKyAxLCBTSUdfREZMKTsKLUluZGV4OiBnZGItNy44LjEvZ2RiL2lu Zi1wdHJhY2UuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2luZi1wdHJhY2UuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmlnL2dkYi9pbmYtcHRyYWNlLmMJMjAxNC0xMC0z MCAxODozMzozNy4yNzYwOTc2MzQgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL2luZi1wdHJhY2Uu YwkyMDE0LTEwLTMwIDE4OjMzOjM5LjY0NTA5Mjc1NSArMDEwMAotQEAgLTEwNSw3ICsxMDUsMTUg QEAgc3RhdGljIHZvaWQKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2luZi1wdHJh Y2UuYwkyMDE1LTAxLTAxIDIxOjM4OjE0LjY5NTIwOTA5MSArMDEwMAorKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2luZi1wdHJhY2UuYwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MjIwNDg0MyAr MDEwMAorQEAgLTY2LDcgKzY2LDE1IEBAIHN0YXRpYyB2b2lkCiAgaW5mX3B0cmFjZV9tZSAodm9p ZCkKICB7CiAgICAvKiAiVHJhY2UgbWUsIERyLiBNZW1vcnkhIiAgKi8KQEAgLTE4NiwxMSArMTg5 LDExIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2luZi1wdHJhY2UuYwogIH0KICAKICAvKiBTdGFy dCBhIG5ldyBpbmZlcmlvciBVbml4IGNoaWxkIHByb2Nlc3MuICBFWEVDX0ZJTEUgaXMgdGhlIGZp bGUgdG8KLUluZGV4OiBnZGItNy44LjEvZ2RiL2xpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEub3Jp Zy9nZGIvbGludXgtbmF0LmMJMjAxNC0xMC0zMCAxODozMzozNy4yNzcwOTc2MzEgKzAxMDAKLSsr KyBnZGItNy44LjEvZ2RiL2xpbnV4LW5hdC5jCTIwMTQtMTAtMzAgMTg6MzM6MzkuNjQ2MDkyNzUz ICswMTAwCi1AQCAtMTI5MSw2ICsxMjkxLDcgQEAgbGludXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAo c3RydWN0IHRhcmdldAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbGludXgtbmF0 LmMJMjAxNS0wMS0wMSAyMTozODoxNC42OTcyMDkwOTAgKzAxMDAKKysrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9saW51eC1uYXQuYwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MzIwNDg0MiArMDEw MAorQEAgLTEwOTksNiArMTA5OSw3IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVj dCB0YXJnZXQKICAjaWZkZWYgSEFWRV9QRVJTT05BTElUWQogICAgaW50IHBlcnNvbmFsaXR5X29y aWcgPSAwLCBwZXJzb25hbGl0eV9zZXQgPSAwOwogICNlbmRpZiAvKiBIQVZFX1BFUlNPTkFMSVRZ ICovCkBAIC0xOTgsNyArMjAxLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvbGludXgtbmF0LmMK ICAKICAgIC8qIFRoZSBmb3JrX2NoaWxkIG1lY2hhbmlzbSBpcyBzeW5jaHJvbm91cyBhbmQgY2Fs bHMgdGFyZ2V0X3dhaXQsIHNvCiAgICAgICB3ZSBoYXZlIHRvIG1hc2sgdGhlIGFzeW5jIG1vZGUu ICAqLwotQEAgLTEzMTUsNyArMTMxNiwxMCBAQCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yIChz dHJ1Y3QgdGFyZ2V0CitAQCAtMTEyMyw3ICsxMTI0LDEwIEBAIGxpbnV4X25hdF9jcmVhdGVfaW5m ZXJpb3IgKHN0cnVjdCB0YXJnZXQKICAgIC8qIE1ha2Ugc3VyZSB3ZSByZXBvcnQgYWxsIHNpZ25h bHMgZHVyaW5nIHN0YXJ0dXAuICAqLwogICAgbGludXhfbmF0X3Bhc3Nfc2lnbmFscyAob3BzLCAw LCBOVUxMKTsKICAKQEAgLTIxMCw3ICsyMTMsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9saW51 eC1uYXQuYwogIAogICNpZmRlZiBIQVZFX1BFUlNPTkFMSVRZCiAgICBpZiAocGVyc29uYWxpdHlf c2V0KQotQEAgLTEzMjcsNiArMTMzMSwyNCBAQCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yIChz dHJ1Y3QgdGFyZ2V0CitAQCAtMTEzNSw2ICsxMTM5LDI0IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5m ZXJpb3IgKHN0cnVjdCB0YXJnZXQKICAJCSBzYWZlX3N0cmVycm9yIChlcnJubykpOwogICAgICB9 CiAgI2VuZGlmIC8qIEhBVkVfUEVSU09OQUxJVFkgKi8KQEAgLTIzNSwxMSArMjM4LDExIEBAIElu ZGV4OiBnZGItNy44LjEvZ2RiL2xpbnV4LW5hdC5jCiAgfQogIAogIHN0YXRpYyB2b2lkCi1JbmRl eDogZ2RiLTcuOC4xL2dkYi9jb25maWcuaW4KK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9jb25maWcuaW4KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9nZGIvY29uZmlnLmlu CTIwMTQtMTAtMzAgMTg6MzM6MzcuMjc4MDk3NjMwICswMTAwCi0rKysgZ2RiLTcuOC4xL2dkYi9j b25maWcuaW4JMjAxNC0xMC0zMCAxODozNDozNi4xNjU5NzYzNjYgKzAxMDAKLUBAIC0yMTYsNiAr MjE2LDkgQEAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE1 LTAxLTAxIDIxOjM4OjE0LjY5NzIwOTA5MCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2NvbmZpZy5pbgkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4NDIwNDg0MiArMDEwMAorQEAgLTIx Myw2ICsyMTMsOSBAQAogIC8qIERlZmluZSBpZiBsaWJycG0gbGlicmFyeSBpcyBiZWluZyB1c2Vk LiAqLwogICN1bmRlZiBIQVZFX0xJQlJQTQogIApAQCAtMjQ5LDcgKzI1Miw3IEBAIEluZGV4OiBn ZGItNy44LjEvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 bGlidW53aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUuICovCiAgI3VuZGVmIEhBVkVfTElCVU5XSU5E X0lBNjRfSAogIAotQEAgLTM1MSw2ICszNTQsOSBAQAorQEAgLTM0Miw2ICszNDUsOSBAQAogIC8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2NtX25ld19zbW9iJyBmdW5jdGlvbi4gKi8K ICAjdW5kZWYgSEFWRV9TQ01fTkVXX1NNT0IKICAKQEAgLTI1OSwxMSArMjYyLDExIEBAIEluZGV4 OiBnZGItNy44LjEvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSBgc2V0bG9jYWxlJyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TRVRMT0NBTEUKICAKLUlu ZGV4OiBnZGItNy44LjEvZ2RiL2NvbmZpZ3VyZQorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmlnL2dkYi9jb25maWd1 cmUJMjAxNC0xMC0zMCAxODozMzozNy4yODEwOTc2MjMgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2Ri L2NvbmZpZ3VyZQkyMDE0LTEwLTMwIDE4OjMzOjM5LjY0OTA5Mjc0NyArMDEwMAotQEAgLTEzNDAw LDYgKzEzNDAwLDY0IEBAIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKy0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE1LTAxLTAxIDIxOjM4OjE0LjcwMTIwOTA4 NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZpZ3VyZQkyMDE1LTAxLTAx IDIxOjM4OjIxLjI4NjIwNDg0MCArMDEwMAorQEAgLTEzMjY5LDYgKzEzMjY5LDY0IEBAIGNhdCA+ PmNvbmZkZWZzLmggPDxfQUNFT0YKICBfQUNFT0YKICAKICAKQEAgLTMyOCwxMSArMzMxLDExIEBA IEluZGV4OiBnZGItNy44LjEvZ2RiL2NvbmZpZ3VyZQogIAogICMgU3VwcG9ydCBmb3IgLS13aXRo LXN5c3Jvb3QgaXMgYSBjb3B5IG9mIEdEQl9BQ19XSVRIX0RJUiwKICAjIGV4Y2VwdCB0aGF0IHRo ZSBhcmd1bWVudCB0byAtLXdpdGgtc3lzcm9vdCBpcyBvcHRpb25hbC4KLUluZGV4OiBnZGItNy44 LjEvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9nZGJzZXJ2ZXIvY29uZmlnLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcvZ2Ri L2dkYnNlcnZlci9jb25maWcuaW4JMjAxNC0xMC0zMCAxODozMzozNy4yODIwOTc2MjEgKzAxMDAK LSsrKyBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNC0xMC0zMCAxODozMzoz OS42NDkwOTI3NDcgKzAxMDAKLUBAIC04MSw2ICs4MSw5IEBACistLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCTIwMTUtMDEtMDEgMjE6Mzg6MTQuNzAy MjA5MDg3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2Ric2VydmVyL2NvbmZp Zy5pbgkyMDE1LTAxLTAxIDIxOjM4OjM5LjM2NTE5MzE3OSArMDEwMAorQEAgLTc1LDYgKzc1LDkg QEAKICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1jaGVjaycgbGlicmFyeSAoLWxt Y2hlY2spLiAqLwogICN1bmRlZiBIQVZFX0xJQk1DSEVDSwogIApAQCAtMzQyLDkgKzM0NSw5IEBA IEluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KICAvKiBEZWZpbmUgaWYg dGhlIHRhcmdldCBzdXBwb3J0cyBicmFuY2ggdHJhY2luZy4gKi8KICAjdW5kZWYgSEFWRV9MSU5V WF9CVFJBQ0UKICAKLUBAIC0xNTQsNiArMTU3LDkgQEAKLSAvKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgYHJlYWRsaW5rJyBmdW5jdGlvbi4gKi8KLSAjdW5kZWYgSEFWRV9SRUFETElOSwor QEAgLTE0Miw2ICsxNDUsOSBAQAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHdy aXRlJyBmdW5jdGlvbi4gKi8KKyAjdW5kZWYgSEFWRV9QV1JJVEUKICAKICsvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgPHNlbGludXgvc2VsaW51eC5oPiBoZWFkZXIgZmlsZS4gKi8KICsj dW5kZWYgSEFWRV9TRUxJTlVYX1NFTElOVVhfSApAQCAtMzUyLDExICszNTUsMTEgQEAgSW5kZXg6 IGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSA8c2d0dHkuaD4gaGVhZGVyIGZpbGUuICovCiAgI3VuZGVmIEhBVkVfU0dUVFlf SAogIAotSW5kZXg6IGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQorSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjEub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE0LTEwLTMwIDE4OjMz OjM3LjI4MzA5NzYxOSArMDEwMAotKysrIGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2NvbmZpZ3Vy ZQkyMDE0LTEwLTMwIDE4OjMzOjM5LjY1MDA5Mjc0NSArMDEwMAotQEAgLTYxNzAsNiArNjE3MCw2 NCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTUtMDEtMDEgMjE6Mzg6MTQuNzA0MjA5MDg2ICswMTAw CisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE1LTAx LTAxIDIxOjM4OjIxLjI4ODIwNDgzOSArMDEwMAorQEAgLTYxOTksNiArNjE5OSw2NCBAQCBpZiAk d2FudF9pcGEgOyB0aGVuCiAgICAgZmkKICBmaQogIAoKZGlmZiAtLWdpdCBhL2dkYi1iejU0MTg2 Ni1yd2F0Y2gtYmVmb3JlLXJ1bi5wYXRjaCBiL2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVmb3JlLXJ1 bi5wYXRjaAppbmRleCA3YmZlNDExLi45NTgyOWY5IDEwMDY0NAotLS0gYS9nZGItYno1NDE4NjYt cndhdGNoLWJlZm9yZS1ydW4ucGF0Y2gKKysrIGIvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZvcmUt cnVuLnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2Ri L2NvbmZpZy9pMzg2L2xpbnV4NjQubWgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9j b25maWcvaTM4Ni9saW51eDY0Lm1oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYw OS5vcmlnL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTQtMDYtMTMgMjA6MjU6MzcuMzU2 NzMyMzM1ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29uZmlnL2kzODYvbGlu dXg2NC5taAkyMDE0LTA2LTEzIDIwOjI2OjA3Ljk4NDc2NDA5OCArMDIwMAotQEAgLTUsNyArNSw3 IEBAIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKKy0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJMjAxNS0wMS0wMSAx NzoxMjo1My45NjU0NzIyMjcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25m aWcvaTM4Ni9saW51eDY0Lm1oCTIwMTUtMDEtMDEgMTc6MTI6NTUuMzY3NDcxNDE0ICswMTAwCitA QCAtNiw3ICs2LDcgQEAgTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gXAog IAlwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBsaW51eC1mb3JrLm8gXAogIAlsaW51 eC1wcm9jZnMubyBsaW51eC1wdHJhY2UubyBsaW51eC1idHJhY2UubyBcCiAgCWxpbnV4LXdhaXRw aWQubwpAQCAtMTEsMjIgKzExLDIyIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9j b25maWcvaTM4Ni9saW51eDY0Lm1oCiAgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2Vydmlj ZS5saXN0CiAgCiAgIyBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBh Y2Nlc3MgdG8gc3ltYm9scyBpbiB0aGUKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9j b25maWcvaTM4Ni9saW51eC5taAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZp Zy9pMzg2L2xpbnV4Lm1oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmln L2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE0LTA2LTEzIDIwOjI1OjM3LjM1NjczMjMzNSAr MDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1oCTIw MTQtMDYtMTMgMjA6MjY6MDcuOTg0NzY0MDk4ICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE1LTAxLTAxIDE3OjEyOjU1LjM2NzQ3 MTQxNCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4 Lm1oCTIwMTUtMDEtMDEgMTc6MTM6MDcuNTY4NDY0MzQyICswMTAwCiBAQCAtMSw2ICsxLDYgQEAK ICAjIEhvc3Q6IEludGVsIDM4NiBydW5uaW5nIEdOVS9MaW51eC4KICAKIC1OQVRfRklMRT0gY29u ZmlnL25tLWxpbnV4LmgKICtOQVRfRklMRT0gbm0tbGludXguaAogIE5BVERFUEZJTEVTPSBpbmYt cHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKLSAJaTM4Ni1uYXQubyBpMzg2LWxpbnV4LW5hdC5vIFwK KyAJeDg2LW5hdC5vIHg4Ni1kcmVncy5vIGkzODYtbGludXgtbmF0Lm8geDg2LWxpbnV4LW5hdC5v IFwKICAJcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gXAotSW5kZXg6IGdkYi03Ljcu NTAuMjAxNDA2MDkvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4LmgKK0luZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eC5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy41 MC4yMDE0MDYwOS9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAkyMDE0LTA2LTEzIDIwOjI2OjA3 Ljk4NDc2NDA5OCArMDIwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZpZy9pMzg2 L25tLWxpbnV4LmgJMjAxNS0wMS0wMSAxNzoxMjo1NS4zNjg0NzE0MTQgKzAxMDAKIEBAIC0wLDAg KzEsMjggQEAKICsvKiBOYXRpdmUgc3VwcG9ydCBmb3IgR05VL0xpbnV4IGkzODYuCiArCkBAIC01 NiwxMCArNTYsMTAgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2NvbmZpZy9pMzg2 L25tLWxpbnV4LmgKICsjZGVmaW5lIHRhcmdldF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQo dHlwZSwgY250LCBvdCkgMQogKwogKyNlbmRpZiAvKiBOTV9MSU5VWDY0X0ggKi8KLUluZGV4OiBn ZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKK0luZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgJMjAxNC0w Ni0xMyAyMDoyNjowNy45ODQ3NjQwOTggKzAyMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgJMjAxNS0wMS0wMSAxNzoxMjo1NS4zNjg0NzE0MTQg KzAxMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBOYXRpdmUgc3VwcG9ydCBmb3IgR05VL0xpbnV4 IGFtZDY0LgogKwpAQCAtODksMTEgKzg5LDExIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKICsjZGVmaW5lIHRhcmdldF9jYW5fdXNlX2hh cmR3YXJlX3dhdGNocG9pbnQodHlwZSwgY250LCBvdCkgMQogKwogKyNlbmRpZiAvKiBOTV9MSU5V WDY0X0ggKi8KLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90YXJnZXQuaAorSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny41MC4yMDE0MDYwOS5vcmlnL2dkYi90YXJnZXQuaAkyMDE0LTA2LTEzIDIwOjI2OjA3Ljk4NTc2 NDA5OSArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3RhcmdldC5oCTIwMTQtMDYt MTMgMjA6MjY6MzQuOTE1NzkyMDk1ICswMjAwCi1AQCAtMTcyOCw5ICsxNzI4LDExIEBAIGV4dGVy biBjaGFyICp0YXJnZXRfdGhyZWFkX25hbWUgKHN0cnVjdAorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvdGFyZ2V0LmgJMjAxNS0wMS0wMSAxNzoxMjo1My45Njc0NzIyMjYgKzAxMDAK KysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQuaAkyMDE1LTAxLTAxIDE3OjEyOjU1 LjM2ODQ3MTQxNCArMDEwMAorQEAgLTE3NTQsOSArMTc1NCwxMSBAQCBleHRlcm4gY2hhciAqdGFy Z2V0X3RocmVhZF9uYW1lIChzdHJ1Y3QKICAgICBicF9oYXJkd2FyZV9icmVha3BvaW50LiAgQ05U IGlzIHRoZSBudW1iZXIgb2Ygc3VjaCB3YXRjaHBvaW50cyB1c2VkIHNvIGZhcgogICAgIChpbmNs dWRpbmcgdGhpcyBvbmU/KS4gIE9USEVSVFlQRSBpcyB3aG8ga25vd3Mgd2hhdC4uLiAgKi8KICAK QEAgLTEwNSwxMCArMTA1LDEwIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90YXJn ZXQuaAogIAogIC8qIFJldHVybnMgdGhlIG51bWJlciBvZiBkZWJ1ZyByZWdpc3RlcnMgbmVlZGVk IHRvIHdhdGNoIHRoZSBnaXZlbgogICAgIG1lbW9yeSByZWdpb24sIG9yIHplcm8gaWYgbm90IHN1 cHBvcnRlZC4gICovCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAKK0luZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1ody1iZWZvcmUtcnVuLmV4 cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93 YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCTIwMTQtMDYtMTMgMjA6MjY6MDcuOTg2NzY0MTAx ICswMjAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dh dGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAJMjAxNS0wMS0wMSAxNzoxMjo1NS4zNjk0NzE0MTMg KzAxMDAKIEBAIC0wLDAgKzEsNDAgQEAKICsjIENvcHlyaWdodCAyMDA5LCAyMDEwIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwoKZGlmZiAtLWdpdCBhL2dkYi1jb21waWxlLXdhcm5f dW51c2VkX3Jlc3VsdC5wYXRjaCBiL2dkYi1jb21waWxlLXdhcm5fdW51c2VkX3Jlc3VsdC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzI0MDA0Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2RiLWNvbXBpbGUtd2Fybl91bnVzZWRfcmVzdWx0LnBhdGNoCkBAIC0wLDAgKzEs MTEgQEAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb21waWxlL2NvbXBpbGUuYy1vcmln CTIwMTQtMTItMjggMDI6NDg6NDMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvY29tcGlsZS9jb21waWxlLmMJMjAxNS0wMS0wNSAyMzowMzozMy4zODMwMTYwMzkg KzAxMDAKK0BAIC0xNzIsNyArMTcyLDcgQEAgZG9fcm1kaXIgKHZvaWQgKmFyZykKKyAgIAorICAg Z2RiX2Fzc2VydCAoc3RybmNtcCAoZGlyLCBUTVBfUFJFRklYLCBzdHJsZW4gKFRNUF9QUkVGSVgp KSA9PSAwKTsKKyAgIHphcCA9IGNvbmNhdCAoInJtIC1yZiAiLCBkaXIsIChjaGFyICopIE5VTEwp OworLSAgc3lzdGVtICh6YXApOworKyAgaWYgKHN5c3RlbSAoemFwKSkge30KKyB9CisgCisgLyog UmV0dXJuIHRoZSBuYW1lIG9mIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIHVzZSBmb3IgLm8g ZmlsZXMsIGFuZAoKZGlmZiAtLWdpdCBhL2dkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRj aCBiL2dkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRjaAppbmRleCBhODFlOTQyLi43NDll MmNmIDEwMDY0NAotLS0gYS9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2gKKysrIGIv Z2RiLWR0cy1yaGVsNi1weXRob24tY29tcGF0LnBhdGNoCkBAIC0xLDkgKzEsOSBAQAogaHR0cHM6 Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xMDIwMDA0CiAKLUluZGV4OiBn ZGItNy44L2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgorSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC5vcmlnL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE0LTEwLTE5IDE4 OjI1OjM0LjE4NzExMDI2MSArMDIwMAotKysrIGdkYi03LjgvZ2RiL2RhdGEtZGlyZWN0b3J5L01h a2VmaWxlLmluCTIwMTQtMTAtMTkgMTg6MjU6NTEuMDkyMTIxNzA2ICswMjAwCistLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE1LTAx LTA1IDIyOjUxOjEwLjcwNzc1NjgxMCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCTIwMTUtMDEtMDUgMjI6NTE6NDguNjA4OTIzMTM5 ICswMTAwCiBAQCAtNjAsNiArNjAsOCBAQCBQWVRIT05fRklMRV9MSVNUID0gXAogIAlnZGIvZnJh bWVzLnB5IFwKICAJZ2RiL0ZyYW1lSXRlcmF0b3IucHkgXApAQCAtMTMsMTggKzEzLDE4IEBAIElu ZGV4OiBnZGItNy44L2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgogIAlnZGIvdHlwZXMu cHkgXAogIAlnZGIvcHJpbnRpbmcucHkgXAogIAlnZGIvcHJvbXB0LnB5IFwKLUBAIC03Myw2ICs3 NSw3IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCitAQCAtNzQsNiArNzYsNyBAQCBQWVRIT05fRklM RV9MSVNUID0gXAogIAlnZGIvY29tbWFuZC9wcmV0dHlfcHJpbnRlcnMucHkgXAogIAlnZGIvY29t bWFuZC9wcm9tcHQucHkgXAogIAlnZGIvY29tbWFuZC9leHBsb3JlLnB5IFwKICsJZ2RiL2NvbW1h bmQvYmFja3RyYWNlLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5IFwKKyAJZ2RiL2Z1 bmN0aW9uL2NhbGxlcl9pcy5weSBcCiAgCWdkYi9mdW5jdGlvbi9zdHJmbnMucHkgXAotIAlnZGIv cHJpbnRlci9fX2luaXRfXy5weSBcCi1JbmRleDogZ2RiLTcuOC9nZGIvcHl0aG9uL2xpYi9nZGIv RnJhbWVXcmFwcGVyLnB5CitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL2xp Yi9nZGIvRnJhbWVXcmFwcGVyLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC9nZGIvcHl0aG9uL2xpYi9n ZGIvRnJhbWVXcmFwcGVyLnB5CTIwMTQtMTAtMTkgMTg6MjU6MzYuODA4MTEyMDMxICswMjAwCisr KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5 CTIwMTUtMDEtMDUgMjI6NTE6MjQuNzA2ODE4MjQ1ICswMTAwCiBAQCAtMCwwICsxLDEyMiBAQAog KyMgV3JhcHBlciBBUEkgZm9yIGZyYW1lcy4KICsKQEAgLTE0OCwxMCArMTQ4LDEwIEBAIEluZGV4 OiBnZGItNy44L2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkKICsKICsgICAgZGVm IF9fZ2V0YXR0cl9fIChzZWxmLCBuYW1lKToKICsgICAgICAgIHJldHVybiBnZXRhdHRyIChzZWxm LmZyYW1lLCBuYW1lKQotSW5kZXg6IGdkYi03LjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFj ZS5weQorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0 cmFjZS5weQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5w eQkyMDE0LTEwLTE5IDE4OjI1OjM2LjgwODExMjAzMSArMDIwMAorKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5weQkyMDE1LTAxLTA1IDIyOjUxOjI0 LjcwNjgxODI0NSArMDEwMAogQEAgLTAsMCArMSw0MiBAQAogKyMgRmlsdGVyaW5nIGJhY2t0cmFj ZS4KICsKQEAgLTE5NSwxMCArMTk1LDEwIEBAIEluZGV4OiBnZGItNy44L2dkYi9weXRob24vbGli L2dkYi9iYWNrdHJhY2UucHkKICsgICAgICAgIHJldHVybiBpdGVyCiArICAgIHJldHVybiBvbGRf ZnJhbWVfZmlsdGVyIChpdGVyKQogKwotSW5kZXg6IGdkYi03LjgvZ2RiL3B5dGhvbi9saWIvZ2Ri L2NvbW1hbmQvYmFja3RyYWNlLnB5CitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0 aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44L2dkYi9w eXRob24vbGliL2dkYi9jb21tYW5kL2JhY2t0cmFjZS5weQkyMDE0LTEwLTE5IDE4OjI1OjM2Ljgw ODExMjAzMSArMDIwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3B5dGhvbi9saWIvZ2Ri L2NvbW1hbmQvYmFja3RyYWNlLnB5CTIwMTUtMDEtMDUgMjI6NTE6MjQuNzA3ODE4MjQ5ICswMTAw CiBAQCAtMCwwICsxLDEwNiBAQAogKyMgTmV3IGJhY2t0cmFjZSBjb21tYW5kLgogKwoKZGlmZiAt LWdpdCBhL2dkYi1lbmFibGUtY291bnQtY3Jhc2gucGF0Y2ggYi9nZGItZW5hYmxlLWNvdW50LWNy YXNoLnBhdGNoCmluZGV4IDk0NjFlZTkuLjRjZGQ1YmEgMTAwNjQ0Ci0tLSBhL2dkYi1lbmFibGUt Y291bnQtY3Jhc2gucGF0Y2gKKysrIGIvZ2RiLWVuYWJsZS1jb3VudC1jcmFzaC5wYXRjaApAQCAt MzcsMjAgKzM3LDIwIEBAIGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgogIGdkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvZW5hLWRpcy1ici5leHAgfCA4ICsrKysrKysrCiAgMiBmaWxlcyBjaGFuZ2VkLCAx NSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvZ2RiL2JyZWFr cG9pbnQuYyBiL2dkYi9icmVha3BvaW50LmMKLWluZGV4IGNjZDA1ZDkuLjVhMGM1YWIgMTAwNjQ0 Ci0tLS0gYS9nZGIvYnJlYWtwb2ludC5jCi0rKysgYi9nZGIvYnJlYWtwb2ludC5jCi1AQCAtMTQz ODksNyArMTQzODksNyBAQCBtYXBfYnJlYWtwb2ludF9udW1iZXJzIChjaGFyICphcmdzLCB2b2lk ICgqZnVuY3Rpb24pIChzdHJ1Y3QgYnJlYWtwb2ludCAqLAorSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2JyZWFrcG9pbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTUtMDEtMDUgMjI6MjE6NDcuNjMxODAxNTU4ICsw MTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnJlYWtwb2ludC5jCTIwMTUtMDEtMDUg MjI6MjY6MTMuMTY1MDA1MDQ5ICswMTAwCitAQCAtMTQ4NDksNyArMTQ4NDksNyBAQCBtYXBfYnJl YWtwb2ludF9udW1iZXJzIChjaGFyICphcmdzLCB2b2lkCiAgICBpbnQgbWF0Y2g7CiAgICBzdHJ1 Y3QgZ2V0X251bWJlcl9vcl9yYW5nZV9zdGF0ZSBzdGF0ZTsKLQorIAogLSAgaWYgKGFyZ3MgPT0g MCkKICsgIGlmIChhcmdzID09IDAgfHwgKmFyZ3MgPT0gJ1wwJykKICAgICAgZXJyb3Jfbm9fYXJn IChfKCJvbmUgb3IgbW9yZSBicmVha3BvaW50IG51bWJlcnMiKSk7Ci0KKyAKICAgIGluaXRfbnVt YmVyX29yX3JhbmdlICgmc3RhdGUsIGFyZ3MpOwotQEAgLTE0NzEzLDcgKzE0NzEzLDEyIEBAIGRv X21hcF9lbmFibGVfY291bnRfYnJlYWtwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCwgdm9p ZCAqY291bnRwdHIpCitAQCAtMTUxODYsNyArMTUxODYsMTIgQEAgZG9fbWFwX2VuYWJsZV9jb3Vu dF9icmVha3BvaW50IChzdHJ1Y3QgYgogIHN0YXRpYyB2b2lkCiAgZW5hYmxlX2NvdW50X2NvbW1h bmQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICB7CkBAIC02MSwxNyArNjEsMTcgQEAgaW5k ZXggY2NkMDVkOS4uNWEwYzVhYiAxMDA2NDQKICsgICAgZXJyb3Jfbm9fYXJnIChfKCJoaXQgY291 bnQiKSk7CiArCiArICBjb3VudCA9IGdldF9udW1iZXIgKCZhcmdzKTsKLQorIAogICAgbWFwX2Jy ZWFrcG9pbnRfbnVtYmVycyAoYXJncywgZG9fbWFwX2VuYWJsZV9jb3VudF9icmVha3BvaW50LCAm Y291bnQpOwogIH0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2VuYS1kaXMt YnIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9lbmEtZGlzLWJyLmV4cAotaW5kZXggYjA4 YjcwOS4uODJhZWY2NCAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZW5hLWRp cy1ici5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZW5hLWRpcy1ici5leHAKLUBA IC0xNzMsNiArMTczLDE0IEBAIHNldCBicCBbYnJlYWtfYXQgJGJwX2xvY2F0aW9uNyAibGluZSAk YnBfbG9jYXRpb243Il0KLQotIHNldCBicDIgW2JyZWFrX2F0IG1hcmtlcjEgIiBsaW5lICgkYnBf bG9jYXRpb24xNXwkYnBfbG9jYXRpb24xNikiXQotCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2VuYS1kaXMtYnIuZXhwCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZW5hLWRpcy1i ci5leHAJMjAxNS0wMS0wNSAyMjoyNjoxMy4xNjUwMDUwNDkgKzAxMDAKKysrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZW5hLWRpcy1ici5leHAJMjAxNS0wMS0w NSAyMjoyNjo1MS4zNTcxNzgxNTAgKzAxMDAKK0BAIC0xNTEsNiArMTUxLDE0IEBAIHNldCBicCBb YnJlYWtfYXQgJGJwX2xvY2F0aW9uNyAibGluZSAkYnAKKyAKKyBzZXQgYnAyIFticmVha19hdCBt YXJrZXIxICIgbGluZSAkYnBfbG9jYXRpb24xNSJdCisgCiArZ2RiX3Rlc3QgImVuYWJsZSBjb3Vu dCIgXAogKyAgICAiQXJndW1lbnQgcmVxdWlyZWQgXFwoaGl0IGNvdW50XFwpXFwuIiBcCiArICAg ICJlbmFibGUgY291bnQgbWlzc2luZyBhcmd1bWVudHMiCkBAIC04MSw2ICs4MSw1IEBAIGluZGV4 IGIwOGI3MDkuLjgyYWVmNjQgMTAwNjQ0CiArICAgICJlbmFibGUgY291bnQgbWlzc2luZyBsYXN0 IGFyZ3VtZW50IgogKwogIGdkYl90ZXN0X25vX291dHB1dCAiZW5hYmxlIGNvdW50IDIgJGJwIiAi ZGlzYWJsZSBicmVhayB3aXRoIGNvdW50IgotCisgCiAgZ2RiX3Rlc3QgImNvbnRpbnVlIiBcCi0K CmRpZmYgLS1naXQgYS9nZGItaml0LXJlYWRlci1tdWx0aWxpYi5wYXRjaCBiL2dkYi1qaXQtcmVh ZGVyLW11bHRpbGliLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0 YWEzOTcKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItaml0LXJlYWRlci1tdWx0aWxpYi5wYXRjaApA QCAtMCwwICsxLDQwIEBACitkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1 cmUKK2luZGV4IDdmZjc0YmEuLjAwYTViNWIgMTAwNzU1CistLS0gYS9nZGIvY29uZmlndXJlCisr KysgYi9nZGIvY29uZmlndXJlCitAQCAtNzM4MiwxMCArNzM4MiwxMiBAQCBfQUNFT0YKKyAKKyAK KyAKKy1pZiB0ZXN0ICJ4JHthY19jdl9zaXplb2ZfdW5zaWduZWRfbG9uZ30iID0gIng4IjsgdGhl bgorLSAgVEFSR0VUX1BUUj0idW5zaWduZWQgbG9uZyIKKy1lbGlmIHRlc3QgIngke2FjX2N2X3Np emVvZl91bnNpZ25lZF9sb25nX2xvbmd9IiA9ICJ4OCI7IHRoZW4KKysjIFRyeSB0byBrZWVwIFRB UkdFVF9QVFIgdGhlIHNhbWUgYWNyb3NzIGFyY2hzIHNvIHRoYXQgaml0LXJlYWRlci5oIGZpbGUK KysjIGNvbnRlbnQgaXMgdGhlIHNhbWUgZm9yIG11bHRpbGliIGRpc3RyaWJ1dGlvbnMuCisraWYg dGVzdCAieCR7YWNfY3Zfc2l6ZW9mX3Vuc2lnbmVkX2xvbmdfbG9uZ30iID0gIng4IjsgdGhlbgor ICAgVEFSR0VUX1BUUj0idW5zaWduZWQgbG9uZyBsb25nIgorK2VsaWYgdGVzdCAieCR7YWNfY3Zf c2l6ZW9mX3Vuc2lnbmVkX2xvbmd9IiA9ICJ4OCI7IHRoZW4KKysgIFRBUkdFVF9QVFI9InVuc2ln bmVkIGxvbmciCisgZWxpZiB0ZXN0ICJ4JHthY19jdl9zaXplb2ZfdW5zaWduZWRfX19pbnQxMjh9 IiA9ICJ4MTYiOyB0aGVuCisgICBUQVJHRVRfUFRSPSJ1bnNpZ25lZCBfX2ludDEyOCIKKyBlbHNl CitkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZS5hYyBiL2dkYi9jb25maWd1cmUuYWMKK2luZGV4 IGVjNzc2ZDcuLmMwMmFjZTkgMTAwNjQ0CistLS0gYS9nZGIvY29uZmlndXJlLmFjCisrKysgYi9n ZGIvY29uZmlndXJlLmFjCitAQCAtNjQ4LDEwICs2NDgsMTIgQEAgQUNfQ0hFQ0tfU0laRU9GKHVu c2lnbmVkIGxvbmcgbG9uZykKKyBBQ19DSEVDS19TSVpFT0YodW5zaWduZWQgbG9uZykKKyBBQ19D SEVDS19TSVpFT0YodW5zaWduZWQgX19pbnQxMjgpCisgCistaWYgdGVzdCAieCR7YWNfY3Zfc2l6 ZW9mX3Vuc2lnbmVkX2xvbmd9IiA9ICJ4OCI7IHRoZW4KKy0gIFRBUkdFVF9QVFI9InVuc2lnbmVk IGxvbmciCistZWxpZiB0ZXN0ICJ4JHthY19jdl9zaXplb2ZfdW5zaWduZWRfbG9uZ19sb25nfSIg PSAieDgiOyB0aGVuCisrIyBUcnkgdG8ga2VlcCBUQVJHRVRfUFRSIHRoZSBzYW1lIGFjcm9zcyBh cmNocyBzbyB0aGF0IGppdC1yZWFkZXIuaCBmaWxlCisrIyBjb250ZW50IGlzIHRoZSBzYW1lIGZv ciBtdWx0aWxpYiBkaXN0cmlidXRpb25zLgorK2lmIHRlc3QgIngke2FjX2N2X3NpemVvZl91bnNp Z25lZF9sb25nX2xvbmd9IiA9ICJ4OCI7IHRoZW4KKyAgIFRBUkdFVF9QVFI9InVuc2lnbmVkIGxv bmcgbG9uZyIKKytlbGlmIHRlc3QgIngke2FjX2N2X3NpemVvZl91bnNpZ25lZF9sb25nfSIgPSAi eDgiOyB0aGVuCisrICBUQVJHRVRfUFRSPSJ1bnNpZ25lZCBsb25nIgorIGVsaWYgdGVzdCAieCR7 YWNfY3Zfc2l6ZW9mX3Vuc2lnbmVkX19faW50MTI4fSIgPSAieDE2IjsgdGhlbgorICAgVEFSR0VU X1BUUj0idW5zaWduZWQgX19pbnQxMjgiCisgZWxzZQoKZGlmZiAtLWdpdCBhL2dkYi1weS1mcmFt ZS1yaXAtdGVzdC1maXgucGF0Y2ggYi9nZGItcHktZnJhbWUtcmlwLXRlc3QtZml4LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3YTkzMGMKLS0tIC9kZXYvbnVsbAor KysgYi9nZGItcHktZnJhbWUtcmlwLXRlc3QtZml4LnBhdGNoCkBAIC0wLDAgKzEsNTMgQEAKK2h0 dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE1LTAxL21zZzAwMTEwLmh0bWwK K1N1YmplY3Q6IFt0ZXN0c3VpdGUgcGF0Y2hdIEZpeCBuZXcgRkFJTDogcHktZnJhbWUuZXhwOiB0 ZXN0IEZyYW1lLnJlYWRfcmVnaXN0ZXIocmlwKQorCisKKy0tLzA0dzZldkc4WGxMbDNmdAorQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitDb250ZW50LURpc3Bvc2l0 aW9uOiBpbmxpbmUKKworSGksCisKK2ZvciB4ODZfNjQgLW0zMiBydW4gb25lIGdldHM6CisKKytG QUlMOiBnZGIucHl0aG9uL3B5LWZyYW1lLmV4cDogdGVzdCBGcmFtZS5yZWFkX3JlZ2lzdGVyKHJp cCkKKworSSBkbyBub3QgaGF2ZSB4MzIgT1MgaGVyZSBidXQgdGhlICVyaXAgdGVzdCBzaG91bGQg UEFTUyB0aGVyZSBJIHRoaW5rLgorCitPSyBmb3IgY2hlY2staW4/CisKK1RoZSBjb2RlIGlzIHRo ZXJlIHNpbmNlOgorCWNvbW1pdCA1ZjNiOTljZmVkMzgwM2YwYjA5OTE1MmY1NGFhYzdjYjkwYTJi OTI2CisJQXV0aG9yOiBTYXNoYSBTbXVuZGFrIDxhc211bmRha0Bnb29nbGUuY29tPgorCURhdGU6 ICAgV2VkIFNlcCAzIDE2OjM0OjQ3IDIwMTQgLTA3MDAKKwkgICAgQWRkIHN1cHBvcnQgZm9yIHJl YWRpbmcgZnJhbWUgcmVnaXN0ZXJzIHRvIFB5dGhvbiBBUEkuCisKKworSmFuCisKKy0tLzA0dzZl dkc4WGxMbDNmdAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitD b250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKKworZ2RiL3Rlc3RzdWl0ZS8K KzIwMTUtMDEtMDcgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4K KworCSogZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAgKHRlc3QgRnJhbWUucmVhZF9yZWdpc3Rlcihy aXApKTogVXNlCisJaXNfYW1kNjRfcmVnc190YXJnZXQuCisKK2RpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LWZyYW1lLmV4cAoraW5kZXggYmYyZTFjZS4uOTg0YWNmYyAxMDA2NDQKKy0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1mcmFtZS5leHAKK0BAIC0xMDYsNyArMTA2LDcgQEAgZ2RiX3Rlc3QgInB5dGhv biBwcmludCAoJ3Jlc3VsdCA9ICVzJyAlIChmMC5yZWFkX3JlZ2lzdGVyKCdwYycpID09IGYwLnBj KCkpKSIgXAorICAgInRlc3QgRnJhbWUucmVhZF9yZWdpc3RlcihwYykiCisgCisgIyBPbiB4ODYt NjQsIFBDIGlzIGluICRyaXAgcmVnaXN0ZXIuCistaWYge1tpc3RhcmdldCB4ODZfNjQtKl19IHsK KytpZiB7W2lzX2FtZDY0X3JlZ3NfdGFyZ2V0XX0geworICAgICBnZGJfdGVzdCAicHl0aG9uIHBy aW50ICgncmVzdWx0ID0gJXMnICUgKGYwLnJlYWRfcmVnaXN0ZXIoJ3BjJykgPT0gZjAucmVhZF9y ZWdpc3RlcigncmlwJykpKSIgXAorIAkiID0gVHJ1ZSIgXAorIAkidGVzdCBGcmFtZS5yZWFkX3Jl Z2lzdGVyKHJpcCkiCisKKy0tLzA0dzZldkc4WGxMbDNmdC0tCisKCmRpZmYgLS1naXQgYS9nZGIt cHl0aG9uLWNvbXBsZXRlci0xb2YyLnBhdGNoIGIvZ2RiLXB5dGhvbi1jb21wbGV0ZXItMW9mMi5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzA3ODgyMi4uMDAwMDAwMAotLS0g YS9nZGItcHl0aG9uLWNvbXBsZXRlci0xb2YyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzQ3 ICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE0LTA3L21z ZzAwMDAyLmh0bWwKLVN1YmplY3Q6IFJlOiBbUEFUQ0hdIFBSIHB5dGhvbi8xNjY5OTogR0RCIFB5 dGhvbiBjb21tYW5kIGNvbXBsZXRpb24gd2l0aCBvdmVycmlkZW4gY29tcGxldGUgdnMuIGNvbXBs ZXRlciBjbGFzcwotaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0x MDc1MTk5Ci0KLU9uIFdlZG5lc2RheSwgTWF5IDIxIDIwMTQsIERvdWcgRXZhbnMgd3JvdGU6Ci0K LT4gU2VyZ2lvIER1cmlnYW4gSnVuaW9yIDxzZXJnaW9kakByZWRoYXQuY29tPiB3cml0ZXM6Ci0+ PiBbLi4uXQotPj4gVGhhbmtzLiAgV0RZVCBvZiB0aGUgZm9sbG93aW5nIHBhdGNoPwotPgotPiBI aS4KLT4KLT4gZndpdyBpdCdzIHRvbyBiYWQgdGhlIGFiaWxpdHkgdG8gcGx1ZyBpbiBkaWZmZXJl bnQgY29tcGxldGVycyBpc24ndCBtb3JlLAotPiBJIGR1bm5vLCBwYXJhbWV0ZXJpemVkIChjb3Vs ZG4ndCBwaWNrIGEgYmV0dGVyIHRlcm0sIGFwb2xvZ2llcyAtCi0+IEkgdGhvdWdodCBvZiAib2Jq ZWN0IG9yaWVudGVkIiBidXQgdGhhdCBjYXJyaWVzIGl0cyBvd24gYmFnZ2FnZSkuCi0+IFBlcmZv cm1pbmcgY29tcGxldGlvbiBvYnZpb3VzbHkgaW52b2x2ZXMgc3BlY2lmeWluZyBtb3JlIHRoYW4g YSBqdXN0Ci0+IHNpbmdsZSBmdW5jdGlvbiAod2l0bmVzcyB0aGUgY29tcGFyaXNvbiBvZiB0aGUg Y29tcGxldGVyIHdpdGggc3BlY2lmaWMKLT4gZnVuY3Rpb25zKS4KLQotVGhhbmtzIGZvciB0aGUg cmVwbHksIGFuZCBzb3JyeSBmb3IgdGhlIGxvbmcgZGVsYXkgaW4gYW5zd2VyaW5nLgotCi0+IFBs dXMgaXQncyBtb3JlIHRoYW4gc3BlY2lmeWluZyBicmtjaGFycy4KLT4gV2l0bmVzcyBjb2RlIGxp a2UgdGhpczoKLT4KLT4gCQkgICAgICAvKiBNYW55IGNvbW1hbmRzIHdoaWNoIHdhbnQgdG8gY29t cGxldGUgb24KLT4gCQkJIGZpbGUgbmFtZXMgYWNjZXB0IHNldmVyYWwgZmlsZSBuYW1lcywgYXMK LT4gCQkJIGluICJydW4gZm9vIGJhciA+PmJheiIuICBTbyB3ZSBkb24ndCB3YW50Ci0+IAkJCSB0 byBjb21wbGV0ZSB0aGUgZW50aXJlIHRleHQgYWZ0ZXIgdGhlCi0+IAkJCSBjb21tYW5kLCBqdXN0 IHRoZSBsYXN0IHdvcmQuICBUbyB0aGlzCi0+IAkJCSBlbmQsIHdlIG5lZWQgdG8gZmluZCB0aGUg YmVnaW5uaW5nIG9mIHRoZQotPiAJCQkgZmlsZSBuYW1lIGJ5IHN0YXJ0aW5nIGF0IGB3b3JkJyBh bmQgZ29pbmcKLT4gCQkJIGJhY2t3YXJkcy4gICovCi0+IAkJICAgICAgZm9yIChwID0gd29yZDsK LT4gCQkJICAgcCA+IHRtcF9jb21tYW5kCi0+IAkJCSAgICAgJiYgc3RyY2hyIChnZGJfY29tcGxl dGVyX2ZpbGVfbmFtZV9icmVha19jaGFyYWN0ZXJzLCBwWy0xXSkgPT0gTlVMTDsKLT4gCQkJICAg cC0tKQotPiAJCQk7Ci0+Ci0+IElXQk4gaWYgYSAiY29tcGxldGVyIiBvYmplY3QgZGVzY3JpYmVk IGhvdyB0byBkbyBhbGwgdGhlc2UgdGhyZWUgdGhpbmdzLgotPiBUaGVuIHRoZSBzcGVjaWFsIGNh c2UgY29kZSBmb3IgZmlsZW5hbWVfY29tcGxldGVyIChhbmQgbG9jYXRpb25fY29tcGxldGVyKQot PiBpbiBjb21wbGV0ZXIuYyBjb3VsZCBkaXNhcHBlYXIuICBCdXQgbWF5YmUgdGhhdCdzIGEgcGF0 Y2ggZm9yIGFub3RoZXIgZGF5LgotCi1XaGlsZSBJIGFncmVlIHdpdGggeW91IHRoYXQgdGhlIGNv bXBsZXRpb24gbWVjaGFuaXNtIGNvdWxkIGJlIGJldHRlciAoSQotbXlzZWxmIGhhZCBhIGxvdCBv ZiB0cm91YmxlIHdpdGggaXQpLCBJIHVuZm9ydHVuYXRlbHkgZG9uJ3QgaGF2ZSBlbm91Z2gKLXRp bWUgdG8gdGFja2xlIHRoaXMgcHJvYmxlbSBub3cuICBTbyB5ZWFoLCBJIHRoaW5rIGl0IHdpbGwg YmUgYSBwYXRjaAotZm9yIGFub3RoZXIgZGF5Li4uCi0KLT4gUmVnYXJkaW5nIHRoZSBoYWNrIG9m IHVzaW5nIGEgc3RhdGljIGxvY2FsIHRvIHBhc3MgZGF0YSBmcm9tCi0+IGhhbmRsZV9icmtjaGFy cyB0byBoYW5kbGVfY29tcGxldGlvbiwgSSBrbm93IGl0J3MgYSBoYWNreSBwcmFnbWF0aWMKLT4g Y2hvaWNlLiAgVG8gZ2V0IHRoZSByZWZlcmVuY2UgY291bnRpbmcgcmlnaHQgdGhlIGNvZGUgYXNz dW1lcyB0aGF0Ci0+IGlmIHRoZSBoYW5kbGVfYnJrY2hhcnMgcGhhc2UgaXMgZG9uZSB0aGVuIHRo ZSBoYW5kbGVfY29tcGxldGlvbgotPiBwaGFzZSB3aWxsIGJlIGRvbmUgdG9vLCByaWdodD8KLQot WWVhaC4gIFRoaXMgaXMgdHJ1ZSBmb3IgdGhlIGN1cnJlbnQgY29kZSAod2VsbCwgZXhjZXB0IG1h eWJlIGZvciB0aGUKLWNhc2UgeW91IGRlc2NyaWJlIGJlbG93Li4uKS4KLQotPiBJIHdvbmRlciBp ZiBhIFNJR0lOVCBjb3VsZCBzbmVhayBpbgotPiB0aGVyZSBiZXR3ZWVuIHRoZSB0d28gcGFzc2Vz IChlaXRoZXIgdG9kYXkgb3IgdG9tb3Jyb3cpLgotPiBNYXliZSB0aGUgY29kZSBpbiBjbWRweV9j b21wbGV0ZXJfaGVscGVyIGZvciBoYW5kbGVfYnJrY2hhcnNfcCBjb3VsZAotPiBmaXJzdCBjaGVj ayB3aGV0aGVyIHJlc3VsdG9iaiBpcyBhbHJlYWR5IG5vbi1OVUxMLCBhbmQgZGVjcmVtZW50IGl0 cwotPiByZWZlcmVuY2UgY291bnQgYmVmb3JlIHNldHRpbmcgaXQgdG8gTlVMTD8KLQotWWVzLCBk b25lIChJIHRoaW5rKS4gIFRoYW5rcyBmb3IgcmFpc2luZyB0aGlzIGlzc3VlLgotCi0+IEFuZCBj bWRweV9jb21wbGV0ZXJfaGVscGVyCi0+IGNvdWxkIGJlIGRlZmluZWQgdG8gcmV0dXJuIGEgYm9y cm93ZWQgcmVmZXJlbmNlIHRvIHJlc3VsdG9iaj8KLT4gRHVubm8sIGp1c3QgdGhpbmtpbmcgb3V0 IGxvdWQuCi0KLURvbmUsIEkgZ3Vlc3MuCi0KLT4gU29tZXRoaW5nIHB1enpsZXMgbWUgdGhvdWdo OiBJZiBpdCdzIG9rIHRvIGNhY2hlIHRoZSBjb21wbGV0aW9uIHJlc3VsdCBmcm9tIHRoZQotPiBo YW5kbGVfYnJrY2hhcnMgcGFzcyB0byB0aGUgaGFuZGxlX2NvbXBsZXRpb24gcGFzcywgd2h5IGhh dmUgdHdvIHBhc3Nlcz8KLT4gSXQgZmVlbHMgbGlrZSB0aGVyZSBtdXN0IGJlIGEgY2FzZSB3aGVy ZSB0aGlzIGNhY2hpbmcgb2YgdGhlIHJlc3VsdAotPiBpbiBhIHN0YXRpYyBsb2NhbCBmcm9tIG9u ZSBwYXNzIHRvIHRoZSBuZXh0IHdvbid0IHdvcmsuCi0KLUknbSBub3Qgc3VyZSBJIGZvbGxvdy4K LQotSXQncyBPSyB0byBjYWNoZSB0aGUgcmVzdWx0IGJlY2F1c2UgaGFuZGxlX2Jya2NoYXJzIGFu ZAotaGFuZGxlX2NvbXBsZXRpb24gd29yayBvbiB0aGUgc2FtZSBzZXQgb2YgZGF0YS4gIEluIGZh Y3QsIHdlIHdvdWxkbid0Ci1uZWVkIHRvIGhhdmUgdHdvIHBhc3NlcyBoZXJlOyBteSBwcmV2aW91 cyBwYXRjaCBkaWRuJ3QgaGF2ZSB0d28gcGFzc2VzLAotYW5kIHdvcmtlZCBmaW5lLiAgSSBqdXN0 IGltcGxlbWVudGVkIGl0IHRoaXMgd2F5IGJlY2F1c2UgVG9tIChjb3JyZWN0bHkpCi1yYWlzZWQg dGhlIHBvaW50IHRoYXQgdGhlIGNvbXBsZXRpb24gaXRzZWxmIG1pZ2h0IGJlIHRpbWUtY29uc3Vt aW5nLCBhbmQKLXRodXMgd2UgY291bGQgcmV1c2UgaXRzIHJlc3VsdCBpbiB0aGUgdHdvIHBoYXNl cy4KLQotPiBBbm90aGVyIHF1ZXN0aW9uOgotPiBJIG5vdGljZWQgY29tcGxldGVfY29tbWFuZCBk b2Vzbid0IGRvIHRoaXMgdHdvLXBoYXNlIGRhbmNlCi0+IG9mIGhhbmRsZV9icmtjaGFycyBmb2xs b3dlZCBieSBoYW5kbGVfY29tcGxldGlvbnMuICBTaG91bGQgaXQ/Ci0+IEl0IGp1c3QgZ29lcyBz dHJhaWdodCB0byBoYW5kbGVfY29tcGxldGlvbnMuCi0KLUkgZG9uJ3QgdGhpbmsgaXQgc2hvdWxk LCBiZWNhdXNlIGZvciBjb21wbGV0ZV9jb21tYW5kIChhbmQKLWNvbXBsZXRlX2ZpbGVuYW1lIGV0 IGFsKSB0aGUgaGFuZGxlX2Jya2NoYXJzIGlzIGFscmVhZHkgZGVmaW5lZAotaW50ZXJuYWxseSBi eSBHREIuICBTZWU6Ci0KLSAgICAuLi4KLSAgLyogQ2hvb3NlIHRoZSBkZWZhdWx0IHNldCBvZiB3 b3JkIGJyZWFrIGNoYXJhY3RlcnMgdG8gYnJlYWsKLSAgICAgY29tcGxldGlvbnMuICBJZiB3ZSBs YXRlciBmaW5kIG91dCB0aGF0IHdlIGFyZSBkb2luZyBjb21wbGV0aW9ucwotICAgICBvbiBjb21t YW5kIHN0cmluZ3MgKGFzIG9wcG9zZWQgdG8gc3RyaW5ncyBzdXBwbGllZCBieSB0aGUKLSAgICAg aW5kaXZpZHVhbCBjb21tYW5kIGNvbXBsZXRlciBmdW5jdGlvbnMsIHdoaWNoIGNhbiBiZSBhbnkg c3RyaW5nKQotICAgICB0aGVuIHdlIHdpbGwgc3dpdGNoIHRvIHRoZSBzcGVjaWFsIHdvcmQgYnJl YWsgc2V0IGZvciBjb21tYW5kCi0gICAgIHN0cmluZ3MsIHdoaWNoIGxlYXZlcyBvdXQgdGhlICct JyBjaGFyYWN0ZXIgdXNlZCBpbiBzb21lCi0gICAgIGNvbW1hbmRzLiAgKi8KLSAgcmxfY29tcGxl dGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVycyA9Ci0gICAgY3VycmVudF9sYW5ndWFnZS0+bGFfd29y ZF9icmVha19jaGFyYWN0ZXJzKCk7Ci0gICAgLi4uCi0KLSAgICAvKiBJdCBpcyBhIG5vcm1hbCBj b21tYW5kOyB3aGF0IGNvbWVzIGFmdGVyIGl0IGlzCi0gICAgICAgY29tcGxldGVkIGJ5IHRoZSBj b21tYW5kJ3MgY29tcGxldGVyIGZ1bmN0aW9uLiAgKi8KLSAgICBpZiAoYy0+Y29tcGxldGVyID09 IGZpbGVuYW1lX2NvbXBsZXRlcikKLSAgICAgIHsKLSAgICAgICAgLyogTWFueSBjb21tYW5kcyB3 aGljaCB3YW50IHRvIGNvbXBsZXRlIG9uCi0gICAgICAgICAgIGZpbGUgbmFtZXMgYWNjZXB0IHNl dmVyYWwgZmlsZSBuYW1lcywgYXMKLSAgICAgICAgICAgaW4gInJ1biBmb28gYmFyID4+YmF6Ii4g IFNvIHdlIGRvbid0IHdhbnQKLSAgICAgICAgICAgdG8gY29tcGxldGUgdGhlIGVudGlyZSB0ZXh0 IGFmdGVyIHRoZQotICAgICAgICAgICBjb21tYW5kLCBqdXN0IHRoZSBsYXN0IHdvcmQuICBUbyB0 aGlzCi0gICAgICAgICAgIGVuZCwgd2UgbmVlZCB0byBmaW5kIHRoZSBiZWdpbm5pbmcgb2YgdGhl Ci0gICAgICAgICAgIGZpbGUgbmFtZSBieSBzdGFydGluZyBhdCBgd29yZCcgYW5kIGdvaW5nCi0g ICAgICAgICAgIGJhY2t3YXJkcy4gICovCi0gICAgICAgIGZvciAocCA9IHdvcmQ7Ci0gICAgICAg ICAgICAgcCA+IHRtcF9jb21tYW5kCi0gICAgICAgICAgICAgICAmJiBzdHJjaHIgKGdkYl9jb21w bGV0ZXJfZmlsZV9uYW1lX2JyZWFrX2NoYXJhY3RlcnMsIHBbLTFdKSA9PSBOVUxMOwotICAgICAg ICAgICAgIHAtLSkKLSAgICAgICAgICA7Ci0gICAgICAgIHJsX2NvbXBsZXRlcl93b3JkX2JyZWFr X2NoYXJhY3RlcnMgPQotICAgICAgICAgIGdkYl9jb21wbGV0ZXJfZmlsZV9uYW1lX2JyZWFrX2No YXJhY3RlcnM7Ci0gICAgICB9Ci0gICAgZWxzZSBpZiAoYy0+Y29tcGxldGVyID09IGxvY2F0aW9u X2NvbXBsZXRlcikKLSAgICAgIHsKLSAgICAgICAgLyogQ29tbWFuZHMgd2hpY2ggY29tcGxldGUg b24gbG9jYXRpb25zIHdhbnQgdG8KLSAgICAgICAgICAgc2VlIHRoZSBlbnRpcmUgYXJndW1lbnQu ICAqLwotICAgICAgICBmb3IgKHAgPSB3b3JkOwotICAgICAgICAgICAgIHAgPiB0bXBfY29tbWFu ZAotICAgICAgICAgICAgICAgJiYgcFstMV0gIT0gJyAnICYmIHBbLTFdICE9ICdcdCc7Ci0gICAg ICAgICAgICAgcC0tKQotICAgICAgICAgIDsKLSAgICAgIH0KLSAgICBpZiAocmVhc29uID09IGhh bmRsZV9icmtjaGFycwotICAgICAgICAmJiBjLT5jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzICE9 IE5VTEwpCi0gICAgICAoKmMtPmNvbXBsZXRlcl9oYW5kbGVfYnJrY2hhcnMpIChjLCBwLCB3b3Jk KTsKLSAgICBpZiAocmVhc29uICE9IGhhbmRsZV9icmtjaGFycyAmJiBjLT5jb21wbGV0ZXIgIT0g TlVMTCkKLSAgICAgIGxpc3QgPSAoKmMtPmNvbXBsZXRlcikgKGMsIHAsIHdvcmQpOwotCi0KLVRo ZSBjb21wbGV0ZV9jb21tYW5kIGZ1bmN0aW9uIHdpbGwgb25seSBiZSBjYWxsZWQgYnkgdGhlIGxh c3QgImlmIgotY2xhdXNlLCB3aGVuIHJlYXNvbiAhPSBoYW5kbGVfYnJrY2hhcnMuICBPdGhlcndp c2UsCi1jb21wbGV0ZV9saW5lX2ludGVybmFsIHdpbGwganVzdCBkZWFsIHdpdGggaGFuZGxlX2Jy a2NoYXJzLiAgQW5kIGZvcgotY29tcGxldGVfY29tbWFuZCwgdGhlIHJpZ2h0IHZhbHVlIGZvciBy bF9jb21wbGV0ZXJfd29yZF9icmVha19jaGFyYWN0ZXJzCi1pcyB3aGF0IGlzIGF0dHJpYnV0ZWQg YXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZnVuY3Rpb24uCi0KLU15IHBhdGNoIGltcGxlbWVudHMg dGhpcyAidHdvLXBoYXNlIiBkYW5jZSBmb3IgUHl0aG9uIGJlY2F1c2UgaW4gdGhpcwotc3BlY2lm aWMgY2FzZSAoaS5lLiwgYSBjb21wbGV0aW9uIG1ldGhvZCBkZWZpbmVkIGluIHRoZSBQeXRob24g c2NyaXB0KQotdGhlcmUgaXMgbm8gd2F5IHRvIGtub3cgdGhlIHZhbHVlIG9mIGhhbmRsZV9icmtj aGFycyBiZWZvcmUgd2UgYWN0dWFsbHkKLWRvIHRoZSBjb21wbGV0aW9uIGl0c2VsZi4KLQotSW4g ZmFjdCwgbXkgcGF0Y2ggY291bGQgcHJvYmFibHkgYmUgInNpbXBsaWZpZWQiIGFuZCBiZSBtYWRl IHRvIGNhbGwKLWNtZHB5X2NvbXBsZXRlciBkaXJlY3RseSAod2l0aG91dCBhbnkgY21kcHlfY29t cGxldGVyX2hhbmRsZV9icmtjaGFycyksCi1hc3N1bWluZyB0aGF0IHRoaXMgZnVuY3Rpb24gdG9v ayBjYXJlIG9mIGZpbGxpbmcgaGFuZGxlX2Jya2NoYXJzCi1jb3JyZWN0bHkuICBXaGF0IEkgbWVh biBpczogd2hlbiBkZWFsaW5nIHdpdGggdGhlIGhhbmRsZV9icmtjaGFycyBjYXNlLAotdGhlIGNv bXBsZXRlciBjb21tYW5kIGNhbiBkbyBhbnl0aGluZyBpdCB3YW50cy4KLQotPiBbTWF5YmUgdGhh dCBleHBsYWlucyB0aGUgZGlmZmVyZW5jZSBmcm9tIHVzaW5nIFRBQi4gIER1bm5vIG9mZiBoYW5k Ll0KLT4gSXQgc2VlbXMgbGlrZSBjb21wbGV0ZV9jb21tYW5kIGlzIHRyeWluZyB0byBoYW5kLWNv ZGUgaXRzIG93bgotPiBoYW5kbGVfYnJrY2hhcnMgaGFuZGxpbmc6Ci0+Ci0+IHN0YXRpYyB2b2lk Ci0+IGNvbXBsZXRlX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQotPiB7Ci0+ICAg aW50IGFyZ3BvaW50OwotPiAgIGNoYXIgKnBvaW50LCAqYXJnX3ByZWZpeDsKLT4gICBWRUMgKGNo YXJfcHRyKSAqY29tcGxldGlvbnM7Ci0+Ci0+ICAgZG9udF9yZXBlYXQgKCk7Ci0+Ci0+ICAgaWYg KGFyZyA9PSBOVUxMKQotPiAgICAgYXJnID0gIiI7Ci0+ICAgYXJncG9pbnQgPSBzdHJsZW4gKGFy Zyk7Ci0+Ci0+ICAgLyogY29tcGxldGVfbGluZSBhc3N1bWVzIHRoYXQgaXRzIGZpcnN0IGFyZ3Vt ZW50IGlzIHNvbWV3aGVyZQotPiAgICAgIHdpdGhpbiwgYW5kIGV4Y2VwdCBmb3IgZmlsZW5hbWVz IGF0IHRoZSBiZWdpbm5pbmcgb2YsIHRoZSB3b3JkIHRvCi0+ICAgICAgYmUgY29tcGxldGVkLiAg VGhlIGZvbGxvd2luZyBjcnVkZSBpbWl0YXRpb24gb2YgcmVhZGxpbmUncwotPiAgICAgIHdvcmQt YnJlYWtpbmcgdHJpZXMgdG8gYWNjb21vZGF0ZSB0aGlzLiAgKi8KLT4gICBwb2ludCA9IGFyZyAr IGFyZ3BvaW50OwotPiAgIHdoaWxlIChwb2ludCA+IGFyZykKLT4gICAgIHsKLT4gICAgICAgaWYg KHN0cmNociAocmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVycywgcG9pbnRbLTFdKSAh PSAwKQotPiAgICAgICAgIGJyZWFrOwotPiAgICAgICBwb2ludC0tOwotPiAgICAgfQotPgotPiAg IGFyZ19wcmVmaXggPSBhbGxvY2EgKHBvaW50IC0gYXJnICsgMSk7Ci0+ICAgbWVtY3B5IChhcmdf cHJlZml4LCBhcmcsIHBvaW50IC0gYXJnKTsKLT4gICBhcmdfcHJlZml4W3BvaW50IC0gYXJnXSA9 IDA7Ci0+Ci0+ICAgY29tcGxldGlvbnMgPSBjb21wbGV0ZV9saW5lIChwb2ludCwgYXJnLCBhcmdw b2ludCk7Ci0+Ci0+ICAgLi4uCi0+IH0KLQotWWVzLCBpdCBzZWVtcyBzbywgYnV0IEkgZGlkIG5v dCBjaGVjayBmdXJ0aGVyLgotCi0+IFRBQiBhbmQgdGhlIGNvbXBsZXRlIGNvbW1hbmQgc2hvdWxk IHdvcmsgaWRlbnRpY2FsbHkgb2YgY291cnNlLAotPiBidXQgZm9yIHlvdXIgdGVzdGNhc2UsIG1h eWJlIHlvdSBzaG91bGQgdGVzdCBib3RoIGp1c3QgdG8gdmVyaWZ5Ci0+IGJvdGggd29yayByZWFz b25hYmx5IHdlbGwgKGV2ZW4gaWYgbm90IGlkZW50aWNhbGx5KS4KLT4gR2l2ZW4gdGhhdCBjb21w bGV0ZV9jb21tYW5kIGRvZXNuJ3QgZG8gdGhlIHR3byBwaGFzZSBkYW5jZSwKLT4gZG9lcyBpdCB3 b3JrIHdpdGggeW91ciBwYXRjaD8KLT4gTWF5YmUgaXQgZG9lcywgYnV0IElXQk4gdG8gY29uZmly bSB0aGF0LgotCi1UaGUgJ2NvbXBsZXRlJyBjb21tYW5kIGRvZXMgbm90IHdvcmsgYXMgaXQgc2hv dWxkIHdpdGggbXkgcGF0Y2g6Ci0KLSAgKGdkYikgY29tcGxldGUgY29tcGxldGVmaWxlaW5pdCAv aG9tCi0gIGNvbXBsZXRlZmlsZWluaXQgL2hvbWUKLSAgKGdkYikgY29tcGxldGUgY29tcGxldGVm aWxlbWV0aG9kIC9ob20KLSAgY29tcGxldGVmaWxlbWV0aG9kIC9ob21lCi0KLUJ1dCB0aGVuLCBp dCBhbHNvIGRvZXMgbm90IHdvcmsgd2l0aG91dCBteSBwYXRjaCBlaXRoZXI6Ci0KLSAgKGdkYikg Y29tcGxldGUgZmlsZSAvaG9tCi0gIGZpbGUgL2hvbWUKLQotU28gSSBhbSBub3QgZXh0ZW5kaW5n IHRoZSB0ZXN0Y2FzZSBmb3Igbm93LCBiZWNhdXNlIHRoaXMgYnVnIG5lZWRzIHRvIGJlCi1maXhl ZCBmaXJzdCAoYW5kIGl0IGlzIHVucmVsYXRlZCB0byB0aGUgcGF0Y2ggSSBhbSBwcm9wb3Npbmcp LgotCi1XRFlUIG9mIHRoaXMgdmVyc2lvbj8KLQotVGhhbmtzLAotCi0tLSAKLVNlcmdpbwotR1BH IGtleSBJRDogNjVGQzVFMzYKLVBsZWFzZSBzZW5kIGVuY3J5cHRlZCBlLW1haWwgaWYgcG9zc2li bGUKLWh0dHA6Ly9ibG9nLnNlcmdpb2RqLm5ldC8KLQotZ2RiLwotMjAxNC0wNi0zMCAgU2VyZ2lv IER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLQotCVBSIHB5dGhvbi8xNjY5 OQotCSogY2xpL2NsaS1kZWNvZGUuYyAoc2V0X2NtZF9jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJz KTogTmV3Ci0JZnVuY3Rpb24uCi0JKGFkZF9jbWQpOiBTZXQgImNvbXBsZXRlcl9oYW5kbGVfYnJr Y2hhcnMiIHRvIE5VTEwuCi0JKiBjbGkvY2xpLWRlY29kZS5oIChzdHJ1Y3QgY21kX2xpc3RfZWxl bWVudCkKLQk8Y29tcGxldGVyX2hhbmRsZV9icmtjaGFycz46IE5ldyBmaWVsZC4KLQkqIGNvbW1h bmQuaCAoY29tcGxldGVyX2Z0eXBlX3ZvaWQpOiBOZXcgdHlwZWRlZi4KLQkoc2V0X2NtZF9jb21w bGV0ZXJfaGFuZGxlX2Jya2NoYXJzKTogTmV3IHByb3RvdHlwZS4KLQkqIGNvbXBsZXRlci5jIChz ZXRfZ2RiX2NvbXBsZXRpb25fd29yZF9icmVha19jaGFyYWN0ZXJzKTogTmV3Ci0JZnVuY3Rpb24u Ci0JKGNvbXBsZXRlX2xpbmVfaW50ZXJuYWwpOiBDYWxsICJjb21wbGV0ZXJfaGFuZGxlX2Jya2No YXJzIgotCWNhbGxiYWNrIGZyb20gY29tbWFuZC4KLQkqIGNvbXBsZXRlci5oOiBJbmNsdWRlICJj b21tYW5kLmgiLgotCShzZXRfZ2RiX2NvbXBsZXRpb25fd29yZF9icmVha19jaGFyYWN0ZXJzKTog TmV3IHByb3RvdHlwZS4KLQkqIHB5dGhvbi9weS1jbWQuYyAoY21kcHlfY29tcGxldGVyX2hlbHBl cik6IE5ldyBmdW5jdGlvbi4KLQkoY21kcHlfY29tcGxldGVyX2hhbmRsZV9icmtjaGFycyk6IE5l dyBmdW5jdGlvbi4KLQkoY21kcHlfY29tcGxldGVyKTogQWRqdXN0IHRvIHVzZSBjbWRweV9jb21w bGV0ZXJfaGVscGVyLgotCShjbWRweV9pbml0KTogU2V0IGNvbXBsZXRlcl9oYW5kbGVfYnJrY2hh cnMgdG8KLQljbWRweV9jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzLgotCi1nZGIvdGVzdHN1aXRl LwotMjAxNC0wNi0zMCAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNv bT4KLQotCVBSIHB5dGhvbi8xNjY5OQotCSogZ2RiLnB5dGhvbi9weS1jb21wbGV0aW9uLmV4cDog TmV3IGZpbGUuCi0JKiBnZGIucHl0aG9uL3B5LWNvbXBsZXRpb24ucHk6IExpa2V3aXNlLgotCi0K LUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjI3L2dkYi9jbGkvY2xpLWRlY29kZS5jCi09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYyNy5vcmlnL2dkYi9jbGkvY2xpLWRlY29kZS5jCTIw MTQtMDctMDcgMjA6NTM6NTIuNjM1MTA2OTE0ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYy Ny9nZGIvY2xpL2NsaS1kZWNvZGUuYwkyMDE0LTA3LTA3IDIwOjUzOjU1LjQyOTExMDIwNyArMDIw MAotQEAgLTE2NCw2ICsxNjQsMTUgQEAgc2V0X2NtZF9jb21wbGV0ZXIgKHN0cnVjdCBjbWRfbGlz dF9lbGVtZQotICAgY21kLT5jb21wbGV0ZXIgPSBjb21wbGV0ZXI7IC8qIE9rLiAgKi8KLSB9Ci0g Ci0rLyogU2VlIGRlZmluaXRpb24gaW4gY29tbWFuZHMuaC4gICovCi0rCi0rdm9pZAotK3NldF9j bWRfY29tcGxldGVyX2hhbmRsZV9icmtjaGFycyAoc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmNt ZCwKLSsJCQkgICAgICAgY29tcGxldGVyX2Z0eXBlX3ZvaWQgKmNvbXBsZXRlcl9oYW5kbGVfYnJr Y2hhcnMpCi0rewotKyAgY21kLT5jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzID0gY29tcGxldGVy X2hhbmRsZV9icmtjaGFyczsKLSt9Ci0rCi0gLyogQWRkIGVsZW1lbnQgbmFtZWQgTkFNRS4KLSAg ICBTcGFjZSBmb3IgTkFNRSBhbmQgRE9DIG11c3QgYmUgYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIu Ci0gICAgQ0xBU1MgaXMgdGhlIHRvcCBsZXZlbCBjYXRlZ29yeSBpbnRvIHdoaWNoIGNvbW1hbmRz IGFyZSBicm9rZW4gZG93bgotQEAgLTIzOSw2ICsyNDgsNyBAQCBhZGRfY21kIChjb25zdCBjaGFy ICpuYW1lLCBlbnVtIGNvbW1hbmRfCi0gICBjLT5wcmVmaXggPSBOVUxMOwotICAgYy0+YWJicmV2 X2ZsYWcgPSAwOwotICAgc2V0X2NtZF9jb21wbGV0ZXIgKGMsIG1ha2Vfc3ltYm9sX2NvbXBsZXRp b25fbGlzdF9mbik7Ci0rICBjLT5jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzID0gTlVMTDsKLSAg IGMtPmRlc3Ryb3llciA9IE5VTEw7Ci0gICBjLT50eXBlID0gbm90X3NldF9jbWQ7Ci0gICBjLT52 YXIgPSBOVUxMOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MjcvZ2RiL2NsaS9jbGktZGVjb2Rl LmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjI3Lm9yaWcvZ2RiL2NsaS9jbGkt ZGVjb2RlLmgJMjAxNC0wNy0wNyAyMDo1Mzo1Mi42MzYxMDY5MTUgKzAyMDAKLSsrKyBnZGItNy43 LjkwLjIwMTQwNjI3L2dkYi9jbGkvY2xpLWRlY29kZS5oCTIwMTQtMDctMDcgMjA6NTM6NTUuNDI5 MTEwMjA3ICswMjAwCi1AQCAtMTc2LDYgKzE3NiwxNSBAQCBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVu dAotICAgICAgICAiYmF6L2ZvbyIsIHJldHVybiAiYmF6L2Zvb2JhciIuICAqLwotICAgICBjb21w bGV0ZXJfZnR5cGUgKmNvbXBsZXRlcjsKLSAKLSsgICAgLyogSGFuZGxlIHRoZSB3b3JkIGJyZWFr IGNoYXJhY3RlcnMgZm9yIHRoaXMgY29tcGxldGVyLiAgVXN1YWxseQotKyAgICAgICB0aGlzIGZ1 bmN0aW9uIG5lZWQgbm90IGJlIGRlZmluZWQsIGJ1dCBmb3Igc29tZSB0eXBlcyBvZgotKyAgICAg ICBjb21wbGV0ZXJzIChlLmcuLCBQeXRob24gY29tcGxldGVycyBkZWNsYXJlZCBhcyBtZXRob2Rz IGluc2lkZQotKyAgICAgICBhIGNsYXNzKSB0aGUgd29yZCBicmVhayBjaGFycyBtYXkgbmVlZCB0 byBiZSByZWRlZmluZWQKLSsgICAgICAgZGVwZW5kaW5nIG9uIHRoZSBjb21wbGV0ZXIgdHlwZSAo ZS5nLiwgZm9yIGZpbGVuYW1lCi0rICAgICAgIGNvbXBsZXRlcnMpLiAgKi8KLSsKLSsgICAgY29t cGxldGVyX2Z0eXBlX3ZvaWQgKmNvbXBsZXRlcl9oYW5kbGVfYnJrY2hhcnM7Ci0rCi0gICAgIC8q IERlc3RydWN0aW9uIHJvdXRpbmUgZm9yIHRoaXMgY29tbWFuZC4gIElmIG5vbi1OVUxMLCB0aGlz IGlzCi0gICAgICAgIGNhbGxlZCB3aGVuIHRoaXMgY29tbWFuZCBpbnN0YW5jZSBpcyBkZXN0cm95 ZWQuICBUaGlzIG1heSBiZQotICAgICAgICB1c2VkIHRvIGZpbmFsaXplIHRoZSBDT05URVhUIGZp ZWxkLCBpZiBuZWVkZWQuICAqLwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MjcvZ2RiL2NvbW1h bmQuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2Mjcub3JpZy9nZGIvY29tbWFu ZC5oCTIwMTQtMDctMDcgMjA6NTM6NTIuNjM2MTA2OTE1ICswMjAwCi0rKysgZ2RiLTcuNy45MC4y MDE0MDYyNy9nZGIvY29tbWFuZC5oCTIwMTQtMDctMDcgMjA6NTM6NTUuNDMwMTEwMjA4ICswMjAw Ci1AQCAtMTU4LDggKzE1OCwxNiBAQCBleHRlcm4gdm9pZCBzZXRfY21kX3NmdW5jIChzdHJ1Y3Qg Y21kX2xpCi0gdHlwZWRlZiBWRUMgKGNoYXJfcHRyKSAqY29tcGxldGVyX2Z0eXBlIChzdHJ1Y3Qg Y21kX2xpc3RfZWxlbWVudCAqLAotIAkJCQkJIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsK LSAKLSt0eXBlZGVmIHZvaWQgY29tcGxldGVyX2Z0eXBlX3ZvaWQgKHN0cnVjdCBjbWRfbGlzdF9l bGVtZW50ICosCi0rCQkJCSAgIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKLSsKLSBleHRl cm4gdm9pZCBzZXRfY21kX2NvbXBsZXRlciAoc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKiwgY29t cGxldGVyX2Z0eXBlICopOwotIAotKy8qIFNldCB0aGUgY29tcGxldGVyX2hhbmRsZV9icmtjaGFy cyBjYWxsYmFjay4gICovCi0rCi0rZXh0ZXJuIHZvaWQgc2V0X2NtZF9jb21wbGV0ZXJfaGFuZGxl X2Jya2NoYXJzIChzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqLAotKwkJCQkJICAgICAgIGNvbXBs ZXRlcl9mdHlwZV92b2lkICopOwotKwotIC8qIEhBQ0s6IGNhZ25leS8yMDAyLTAyLTIzOiBDb2Rl LCBtb3N0bHkgaW4gdHJhY2Vwb2ludHMuYywgZ3J1YnMKLSAgICBhcm91bmQgaW4gY21kIG9iamVj dHMgdG8gdGVzdCB0aGUgdmFsdWUgb2YgdGhlIGNvbW1hbmRzIHNmdW5jKCkuICAqLwotIGV4dGVy biBpbnQgY21kX2NmdW5jX2VxIChzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqY21kLAotSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MjcvZ2RiL2NvbXBsZXRlci5jCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNy45MC4yMDE0MDYyNy5vcmlnL2dkYi9jb21wbGV0ZXIuYwkyMDE0LTA3LTA3IDIwOjUzOjUy LjYzNzEwNjkxNiArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MjcvZ2RiL2NvbXBsZXRlci5j CTIwMTQtMDctMDcgMjA6NTM6NTUuNDMwMTEwMjA4ICswMjAwCi1AQCAtNDUwLDYgKzQ1MCwyMSBA QCBleHByZXNzaW9uX2NvbXBsZXRlciAoc3RydWN0IGNtZF9saXN0X2VsCi0gICByZXR1cm4gbG9j YXRpb25fY29tcGxldGVyIChpZ25vcmUsIHAsIHdvcmQpOwotIH0KLSAKLSsvKiBTZWUgZGVmaW5p dGlvbiBpbiBjb21wbGV0ZXIuaC4gICovCi0rCi0rdm9pZAotK3NldF9nZGJfY29tcGxldGlvbl93 b3JkX2JyZWFrX2NoYXJhY3RlcnMgKGNvbXBsZXRlcl9mdHlwZSAqZm4pCi0rewotKyAgLyogU28g ZmFyIHdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gZGlmZmVyZW50aWF0aW5nIGZpbGVuYW1lCi0r ICAgICBjb21wbGV0ZXJzIGZyb20gZXZlcnl0aGluZyBlbHNlLiAgKi8KLSsgIGlmIChmbiA9PSBm aWxlbmFtZV9jb21wbGV0ZXIpCi0rICAgIHJsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3Rl cnMKLSsgICAgICA9IGdkYl9jb21wbGV0ZXJfZmlsZV9uYW1lX2JyZWFrX2NoYXJhY3RlcnM7Ci0r ICBlbHNlCi0rICAgIHJsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3RlcnMKLSsgICAgICA9 IGdkYl9jb21wbGV0ZXJfY29tbWFuZF93b3JkX2JyZWFrX2NoYXJhY3RlcnM7Ci0rfQotKwotIC8q IEhlcmUgYXJlIHNvbWUgdXNlZnVsIHRlc3QgY2FzZXMgZm9yIGNvbXBsZXRpb24uICBGSVhNRTog VGhlc2UKLSAgICBzaG91bGQgYmUgcHV0IGluIHRoZSB0ZXN0IHN1aXRlLiAgVGhleSBzaG91bGQg YmUgdGVzdGVkIHdpdGggYm90aAotICAgIE0tPyBhbmQgVEFCLgotQEAgLTY3OCw2ICs2OTMsOSBA QCBjb21wbGV0ZV9saW5lX2ludGVybmFsIChjb25zdCBjaGFyICp0ZXh0Ci0gCQkJICAgcC0tKQot IAkJCTsKLSAJCSAgICB9Ci0rCQkgIGlmIChyZWFzb24gPT0gaGFuZGxlX2Jya2NoYXJzCi0rCQkg ICAgICAmJiBjLT5jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzICE9IE5VTEwpCi0rCQkgICAgKCpj LT5jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzKSAoYywgcCwgd29yZCk7Ci0gCQkgIGlmIChyZWFz b24gIT0gaGFuZGxlX2Jya2NoYXJzICYmIGMtPmNvbXBsZXRlciAhPSBOVUxMKQotIAkJICAgIGxp c3QgPSAoKmMtPmNvbXBsZXRlcikgKGMsIHAsIHdvcmQpOwotIAkJfQotQEAgLTc1MSw2ICs3Njks OSBAQCBjb21wbGV0ZV9saW5lX2ludGVybmFsIChjb25zdCBjaGFyICp0ZXh0Ci0gCQkgICAgICAg cC0tKQotIAkJICAgIDsKLSAJCX0KLSsJICAgICAgaWYgKHJlYXNvbiA9PSBoYW5kbGVfYnJrY2hh cnMKLSsJCSAgJiYgYy0+Y29tcGxldGVyX2hhbmRsZV9icmtjaGFycyAhPSBOVUxMKQotKwkJKCpj LT5jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzKSAoYywgcCwgd29yZCk7Ci0gCSAgICAgIGlmIChy ZWFzb24gIT0gaGFuZGxlX2Jya2NoYXJzICYmIGMtPmNvbXBsZXRlciAhPSBOVUxMKQotIAkJbGlz dCA9ICgqYy0+Y29tcGxldGVyKSAoYywgcCwgd29yZCk7Ci0gCSAgICB9Ci1JbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYyNy9nZGIvY29tcGxldGVyLmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43Ljkw LjIwMTQwNjI3Lm9yaWcvZ2RiL2NvbXBsZXRlci5oCTIwMTQtMDctMDcgMjA6NTM6NTIuNjM3MTA2 OTE2ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYyNy9nZGIvY29tcGxldGVyLmgJMjAxNC0w Ny0wNyAyMDo1NDoxMy4yOTcxMzE4MzEgKzAyMDAKLUBAIC0xOCw2ICsxOCw3IEBACi0gI2RlZmlu ZSBDT01QTEVURVJfSCAxCi0gCi0gI2luY2x1ZGUgImdkYl92ZWNzLmgiCi0rI2luY2x1ZGUgImNv bW1hbmQuaCIKLSAKLSBleHRlcm4gVkVDIChjaGFyX3B0cikgKmNvbXBsZXRlX2xpbmUgKGNvbnN0 IGNoYXIgKnRleHQsCi0gCQkJCSAgICAgIGNoYXIgKmxpbmVfYnVmZmVyLAotQEAgLTQ4LDYgKzQ5 LDEzIEBAIGV4dGVybiBjaGFyICpnZXRfZ2RiX2NvbXBsZXRlcl9xdW90ZV9jaGEKLSAKLSBleHRl cm4gY2hhciAqZ2RiX2NvbXBsZXRpb25fd29yZF9icmVha19jaGFyYWN0ZXJzICh2b2lkKTsKLSAK LSsvKiBTZXQgdGhlIHdvcmQgYnJlYWsgY2hhcmFjdGVycyBhcnJheSB0byB0aGUgY29ycmVzcG9u ZGluZyBzZXQgb2YKLSsgICBjaGFycywgYmFzZWQgb24gRk4uICBUaGlzIGZ1bmN0aW9uIGlzIHVz ZWZ1bCBmb3IgY2FzZXMgd2hlbiB0aGUKLSsgICBjb21wbGV0ZXIgZG9lc24ndCBrbm93IHRoZSB0 eXBlIG9mIHRoZSBjb21wbGV0aW9uIHVudGlsIHNvbWUKLSsgICBjYWxjdWxhdGlvbiBpcyBkb25l IChlLmcuLCBmb3IgUHl0aG9uIGZ1bmN0aW9ucykuICAqLwotKwotK2V4dGVybiB2b2lkIHNldF9n ZGJfY29tcGxldGlvbl93b3JkX2JyZWFrX2NoYXJhY3RlcnMgKGNvbXBsZXRlcl9mdHlwZSAqZm4p OwotKwotIC8qIEV4cG9ydGVkIHRvIGxpbmVzcGVjLmMgKi8KLSAKLSBleHRlcm4gY29uc3QgY2hh ciAqc2tpcF9xdW90ZWRfY2hhcnMgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLAotSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MjcvZ2RiL3B5dGhvbi9weS1jbWQuYwotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjcuOTAuMjAxNDA2Mjcub3JpZy9nZGIvcHl0aG9uL3B5LWNtZC5jCTIwMTQtMDctMDcg MjA6NTM6NTIuNjM3MTA2OTE2ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYyNy9nZGIvcHl0 aG9uL3B5LWNtZC5jCTIwMTQtMDctMDcgMjA6NTM6NTUuNDMxMTEwMjA5ICswMjAwCi1AQCAtMjA4 LDQ1ICsyMDgsMTU1IEBAIGNtZHB5X2Z1bmN0aW9uIChzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudAot ICAgZG9fY2xlYW51cHMgKGNsZWFudXApOwotIH0KLSAKLSsvKiBIZWxwZXIgZnVuY3Rpb24gZm9y IHRoZSBQeXRob24gY29tbWFuZCBjb21wbGV0ZXJzIChib3RoICJwdXJlIgotKyAgIGNvbXBsZXRl ciBhbmQgYnJrY2hhciBoYW5kbGVyKS4gIFRoaXMgZnVuY3Rpb24gdGFrZXMgQ09NTUFORCwgVEVY VAotKyAgIGFuZCBXT1JEIGFuZCB0cmllcyB0byBjYWxsIHRoZSBQeXRob24gbWV0aG9kIGZvciBj b21wbGV0aW9uIHdpdGgKLSsgICB0aGVzZSBhcmd1bWVudHMuICBJdCBhbHNvIHRha2VzIEhBTkRM RV9CUktDSEFSU19QLCBhbiBhcmd1bWVudCB0bwotKyAgIGlkZW50aWZ5IHdoZXRoZXIgaXQgaXMg YmVpbmcgY2FsbGVkIGZyb20gdGhlIGJya2NoYXIgaGFuZGxlciBvcgotKyAgIGZyb20gdGhlICJw dXJlIiBjb21wbGV0ZXIuICBJbiB0aGUgZmlyc3QgY2FzZSwgaXQgZWZmZWN0aXZlbHkgY2FsbHMK LSsgICB0aGUgUHl0aG9uIG1ldGhvZCBmb3IgY29tcGxldGlvbiwgYW5kIHJlY29yZHMgdGhlIFB5 T2JqZWN0IGluIGEKLSsgICBzdGF0aWMgdmFyaWFibGUgKHVzZWQgYXMgYSAiY2FjaGUiKS4gIElu IHRoZSBzZWNvbmQgY2FzZSwgaXQganVzdAotKyAgIHJldHVybnMgdGhhdCB2YXJpYWJsZSwgd2l0 aG91dCBhY3R1YWxseSBjYWxsaW5nIHRoZSBQeXRob24gbWV0aG9kCi0rICAgYWdhaW4uICBUaGlz IHNhdmVzIHVzIG9uZSBQeXRob24gbWV0aG9kIGNhbGwuCi0rCi0rICAgSXQgaXMgaW1wb3J0YW50 IHRvIG1lbnRpb24gdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIGJ1aWx0IG9uIHRoZQotKyAgIGFzc3Vt cHRpb24gdGhhdCB0aGUgY2FsbHMgdG8gY21kcHlfY29tcGxldGVyX2hhbmRsZV9icmtjaGFycyBh bmQKLSsgICBjbWRweV9jb21wbGV0ZXIgd2lsbCBiZSBzdWJzZXF1ZW50IHdpdGggbm90aGluZyBp bnRlcnZlbmluZy4gIFRoaXMKLSsgICBpcyB0cnVlIGZvciBvdXIgY29tcGxldGVyIG1lY2hhbmlz bS4KLSsKLSsgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIFB5T2JqZWN0IHJlcHJlc2VudGlu ZyB0aGUgUHl0aG9uIG1ldGhvZAotKyAgIGNhbGwuICAqLwotKwotK3N0YXRpYyBQeU9iamVjdCAq Ci0rY21kcHlfY29tcGxldGVyX2hlbHBlciAoc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmNvbW1h bmQsCi0rCQkJY29uc3QgY2hhciAqdGV4dCwgY29uc3QgY2hhciAqd29yZCwKLSsJCQlpbnQgaGFu ZGxlX2Jya2NoYXJzX3ApCi0rewotKyAgY21kcHlfb2JqZWN0ICpvYmogPSAoY21kcHlfb2JqZWN0 ICopIGdldF9jbWRfY29udGV4dCAoY29tbWFuZCk7Ci0rICBQeU9iamVjdCAqdGV4dG9iaiwgKndv cmRvYmo7Ci0rICAvKiBUaGlzIHN0YXRpYyB2YXJpYWJsZSB3aWxsIHNlcnZlciBhcyBhICJjYWNo ZSIgZm9yIHVzLCBpbiBvcmRlciB0bwotKyAgICAgc3RvcmUgdGhlIFB5T2JqZWN0IHRoYXQgcmVz dWx0cyBmcm9tIGNhbGxpbmcgdGhlIFB5dGhvbgotKyAgICAgZnVuY3Rpb24uICAqLwotKyAgc3Rh dGljIFB5T2JqZWN0ICpyZXN1bHRvYmogPSBOVUxMOwotKwotKyAgaWYgKGhhbmRsZV9icmtjaGFy c19wKQotKyAgICB7Ci0rICAgICAgLyogSWYgd2Ugd2VyZSBjYWxsZWQgdG8gaGFuZGxlIGJya2No YXJzLCBpdCBtZWFucyB0aGlzIGlzIHRoZQotKwkgZmlyc3QgZnVuY3Rpb24gY2FsbCBvZiB0d28g dGhhdCB3aWxsIGhhcHBlbiBpbiBhIHJvdy4KLSsJIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBjYWxs IHRoZSBjb21wbGV0ZXIgb3Vyc2VsdmVzLCBhbmQgY2FjaGUKLSsJIHRoZSByZXR1cm4gdmFsdWUg aW4gdGhlIHN0YXRpYyB2YXJpYWJsZSBSRVNVTFRPQkouICBUaGVuLCBpbgotKwkgdGhlIHNlY29u ZCBjYWxsLCB3ZSBjYW4ganVzdCB1c2UgdGhlIHZhbHVlIG9mIFJFU1VMVE9CSiB0byBkbwotKwkg b3VyIGpvYi4gICovCi0rICAgICAgaWYgKHJlc3VsdG9iaiAhPSBOVUxMKQotKwlQeV9ERUNSRUYg KHJlc3VsdG9iaik7Ci0rCi0rICAgICAgcmVzdWx0b2JqID0gTlVMTDsKLSsgICAgICBpZiAoIW9i aikKLSsJZXJyb3IgKF8oIkludmFsaWQgaW52b2NhdGlvbiBvZiBQeXRob24gY29tbWFuZCBvYmpl Y3QuIikpOwotKyAgICAgIGlmICghUHlPYmplY3RfSGFzQXR0ciAoKFB5T2JqZWN0ICopIG9iaiwg Y29tcGxldGVfY3N0KSkKLSsJewotKwkgIC8qIElmIHRoZXJlIGlzIG5vIGNvbXBsZXRlIG1ldGhv ZCwgZG9uJ3QgZXJyb3IuICAqLwotKwkgIHJldHVybiBOVUxMOwotKwl9Ci0rCi0rICAgICAgdGV4 dG9iaiA9IFB5VW5pY29kZV9EZWNvZGUgKHRleHQsIHN0cmxlbiAodGV4dCksIGhvc3RfY2hhcnNl dCAoKSwgTlVMTCk7Ci0rICAgICAgaWYgKCF0ZXh0b2JqKQotKwllcnJvciAoXygiQ291bGQgbm90 IGNvbnZlcnQgYXJndW1lbnQgdG8gUHl0aG9uIHN0cmluZy4iKSk7Ci0rICAgICAgd29yZG9iaiA9 IFB5VW5pY29kZV9EZWNvZGUgKHdvcmQsIHNpemVvZiAod29yZCksIGhvc3RfY2hhcnNldCAoKSwg TlVMTCk7Ci0rICAgICAgaWYgKCF3b3Jkb2JqKQotKwl7Ci0rCSAgUHlfREVDUkVGICh0ZXh0b2Jq KTsKLSsJICBlcnJvciAoXygiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgdG8gUHl0aG9uIHN0 cmluZy4iKSk7Ci0rCX0KLSsKLSsgICAgICByZXN1bHRvYmogPSBQeU9iamVjdF9DYWxsTWV0aG9k T2JqQXJncyAoKFB5T2JqZWN0ICopIG9iaiwgY29tcGxldGVfY3N0LAotKwkJCQkJICAgICAgdGV4 dG9iaiwgd29yZG9iaiwgTlVMTCk7Ci0rICAgICAgUHlfREVDUkVGICh0ZXh0b2JqKTsKLSsgICAg ICBQeV9ERUNSRUYgKHdvcmRvYmopOwotKyAgICAgIGlmICghcmVzdWx0b2JqKQotKwl7Ci0rCSAg LyogSnVzdCBzd2FsbG93IGVycm9ycyBoZXJlLiAgKi8KLSsJICBQeUVycl9DbGVhciAoKTsKLSsJ fQotKwotKyAgICAgIFB5X1hJTkNSRUYgKHJlc3VsdG9iaik7Ci0rICAgIH0KLSsKLSsgIHJldHVy biByZXN1bHRvYmo7Ci0rfQotKwotKy8qIFB5dGhvbiBmdW5jdGlvbiBjYWxsZWQgdG8gZGV0ZXJt aW5lIHRoZSBicmVhayBjaGFyYWN0ZXJzIG9mIGEKLSsgICBjZXJ0YWluIGNvbXBsZXRlci4gIFdl IGFyZSBvbmx5IGludGVyZXN0ZWQgaW4ga25vd2luZyBpZiB0aGUKLSsgICBjb21wbGV0ZXIgcmVn aXN0ZXJlZCBieSB0aGUgdXNlciB3aWxsIHJldHVybiBvbmUgb2YgdGhlIGludGVnZXIKLSsgICBj b2RlcyAoc2VlIENPTVBMRVRFUl8qIHN5bWJvbHMpLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2Nt ZHB5X2NvbXBsZXRlcl9oYW5kbGVfYnJrY2hhcnMgKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpj b21tYW5kLAotKwkJCQkgY29uc3QgY2hhciAqdGV4dCwgY29uc3QgY2hhciAqd29yZCkKLSt7Ci0r ICBQeU9iamVjdCAqcmVzdWx0b2JqID0gTlVMTDsKLSsgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVw OwotKwotKyAgY2xlYW51cCA9IGVuc3VyZV9weXRob25fZW52IChnZXRfY3VycmVudF9hcmNoICgp LCBjdXJyZW50X2xhbmd1YWdlKTsKLSsKLSsgIC8qIENhbGxpbmcgb3VyIGhlbHBlciB0byBvYnRh aW4gdGhlIFB5T2JqZWN0IG9mIHRoZSBQeXRob24KLSsgICAgIGZ1bmN0aW9uLiAgKi8KLSsgIHJl c3VsdG9iaiA9IGNtZHB5X2NvbXBsZXRlcl9oZWxwZXIgKGNvbW1hbmQsIHRleHQsIHdvcmQsIDEp OwotKwotKyAgLyogQ2hlY2sgaWYgdGhlcmUgd2FzIGFuIGVycm9yLiAgKi8KLSsgIGlmIChyZXN1 bHRvYmogPT0gTlVMTCkKLSsgICAgZ290byBkb25lOwotKwotKyAgaWYgKFB5SW50X0NoZWNrIChy ZXN1bHRvYmopKQotKyAgICB7Ci0rICAgICAgLyogVXNlciBjb2RlIG1heSBhbHNvIHJldHVybiBv bmUgb2YgdGhlIGNvbXBsZXRpb24gY29uc3RhbnRzLAotKwkgdGh1cyByZXF1ZXN0aW5nIHRoYXQg c29ydCBvZiBjb21wbGV0aW9uLiAgV2UgYXJlIG9ubHkKLSsJIGludGVyZXN0ZWQgaW4gdGhpcyBr aW5kIG9mIHJldHVybi4gICovCi0rICAgICAgbG9uZyB2YWx1ZTsKLSsKLSsgICAgICBpZiAoIWdk Yl9weV9pbnRfYXNfbG9uZyAocmVzdWx0b2JqLCAmdmFsdWUpKQotKwl7Ci0rCSAgLyogSWdub3Jl LiAgKi8KLSsJICBQeUVycl9DbGVhciAoKTsKLSsJfQotKyAgICAgIGVsc2UgaWYgKHZhbHVlID49 IDAgJiYgdmFsdWUgPCAobG9uZykgTl9DT01QTEVURVJTKQotKwl7Ci0rCSAgLyogVGhpcyBpcyB0 aGUgY29yZSBvZiB0aGlzIGZ1bmN0aW9uLiAgRGVwZW5kaW5nIG9uIHdoaWNoCi0rCSAgICAgY29t cGxldGVyIHR5cGUgdGhlIFB5dGhvbiBmdW5jdGlvbiByZXR1cm5zLCB3ZSBoYXZlIHRvCi0rCSAg ICAgYWRqdXN0IHRoZSBicmVhayBjaGFyYWN0ZXJzIGFjY29yZGluZ2x5LiAgKi8KLSsJICBzZXRf Z2RiX2NvbXBsZXRpb25fd29yZF9icmVha19jaGFyYWN0ZXJzCi0rCSAgICAoY29tcGxldGVyc1t2 YWx1ZV0uY29tcGxldGVyKTsKLSsJfQotKyAgICB9Ci0rCi0rIGRvbmU6Ci0rCi0rICAvKiBXZSBk byBub3QgY2FsbCBQeV9YREVDUkVGIGhlcmUgYmVjYXVzZSBSRVNVTFRPQkogd2lsbCBiZSB1c2Vk IGluCi0rICAgICB0aGUgc3Vic2VxdWVudCBjYWxsIHRvIGNtZHB5X2NvbXBsZXRlciBmdW5jdGlv bi4gICovCi0rICBkb19jbGVhbnVwcyAoY2xlYW51cCk7Ci0rfQotKwotIC8qIENhbGxlZCBieSBn ZGIgZm9yIGNvbW1hbmQgY29tcGxldGlvbi4gICovCi0gCi0gc3RhdGljIFZFQyAoY2hhcl9wdHIp ICoKLSBjbWRweV9jb21wbGV0ZXIgKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjb21tYW5kLAot IAkJIGNvbnN0IGNoYXIgKnRleHQsIGNvbnN0IGNoYXIgKndvcmQpCi0gewotLSAgY21kcHlfb2Jq ZWN0ICpvYmogPSAoY21kcHlfb2JqZWN0ICopIGdldF9jbWRfY29udGV4dCAoY29tbWFuZCk7Ci0t ICBQeU9iamVjdCAqdGV4dG9iaiwgKndvcmRvYmosICpyZXN1bHRvYmogPSBOVUxMOwotKyAgUHlP YmplY3QgKnJlc3VsdG9iaiA9IE5VTEw7Ci0gICBWRUMgKGNoYXJfcHRyKSAqcmVzdWx0ID0gTlVM TDsKLSAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOwotIAotICAgY2xlYW51cCA9IGVuc3VyZV9w eXRob25fZW52IChnZXRfY3VycmVudF9hcmNoICgpLCBjdXJyZW50X2xhbmd1YWdlKTsKLSAKLS0g IGlmICghIG9iaikKLS0gICAgZXJyb3IgKF8oIkludmFsaWQgaW52b2NhdGlvbiBvZiBQeXRob24g Y29tbWFuZCBvYmplY3QuIikpOwotLSAgaWYgKCEgUHlPYmplY3RfSGFzQXR0ciAoKFB5T2JqZWN0 ICopIG9iaiwgY29tcGxldGVfY3N0KSkKLS0gICAgewotLSAgICAgIC8qIElmIHRoZXJlIGlzIG5v IGNvbXBsZXRlIG1ldGhvZCwgZG9uJ3QgZXJyb3IgLS0gaW5zdGVhZCwganVzdAotLQkgc2F5IHRo YXQgdGhlcmUgYXJlIG5vIGNvbXBsZXRpb25zLiAgKi8KLS0gICAgICBnb3RvIGRvbmU7Ci0tICAg IH0KLS0KLS0gIHRleHRvYmogPSBQeVVuaWNvZGVfRGVjb2RlICh0ZXh0LCBzdHJsZW4gKHRleHQp LCBob3N0X2NoYXJzZXQgKCksIE5VTEwpOwotLSAgaWYgKCEgdGV4dG9iaikKLS0gICAgZXJyb3Ig KF8oIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IHRvIFB5dGhvbiBzdHJpbmcuIikpOwotLSAg d29yZG9iaiA9IFB5VW5pY29kZV9EZWNvZGUgKHdvcmQsIHN0cmxlbiAod29yZCksIGhvc3RfY2hh cnNldCAoKSwgTlVMTCk7Ci0tICBpZiAoISB3b3Jkb2JqKQotLSAgICBlcnJvciAoXygiQ291bGQg bm90IGNvbnZlcnQgYXJndW1lbnQgdG8gUHl0aG9uIHN0cmluZy4iKSk7Ci0tCi0tICByZXN1bHRv YmogPSBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyAoKFB5T2JqZWN0ICopIG9iaiwgY29tcGxl dGVfY3N0LAotLQkJCQkJICB0ZXh0b2JqLCB3b3Jkb2JqLCBOVUxMKTsKLS0gIFB5X0RFQ1JFRiAo dGV4dG9iaik7Ci0tICBQeV9ERUNSRUYgKHdvcmRvYmopOwotLSAgaWYgKCEgcmVzdWx0b2JqKQot LSAgICB7Ci0tICAgICAgLyogSnVzdCBzd2FsbG93IGVycm9ycyBoZXJlLiAgKi8KLS0gICAgICBQ eUVycl9DbGVhciAoKTsKLS0gICAgICBnb3RvIGRvbmU7Ci0tICAgIH0KLSsgIC8qIENhbGxpbmcg b3VyIGhlbHBlciB0byBvYnRhaW4gdGhlIFB5T2JqZWN0IG9mIHRoZSBQeXRob24KLSsgICAgIGZ1 bmN0aW9uLiAgKi8KLSsgIHJlc3VsdG9iaiA9IGNtZHB5X2NvbXBsZXRlcl9oZWxwZXIgKGNvbW1h bmQsIHRleHQsIHdvcmQsIDApOwotKwotKyAgLyogSWYgdGhlIHJlc3VsdCBvYmplY3Qgb2YgY2Fs bGluZyB0aGUgUHl0aG9uIGZ1bmN0aW9uIGlzIE5VTEwsIGl0Ci0rICAgICBtZWFucyB0aGF0IHRo ZXJlIHdhcyBhbiBlcnJvci4gIEluIHRoaXMgY2FzZSwganVzdCBnaXZlIHVwIGFuZAotKyAgICAg cmV0dXJuIE5VTEwuICAqLwotKyAgaWYgKHJlc3VsdG9iaiA9PSBOVUxMKQotKyAgICBnb3RvIGRv bmU7Ci0gCi0gICByZXN1bHQgPSBOVUxMOwotICAgaWYgKFB5SW50X0NoZWNrIChyZXN1bHRvYmop KQotQEAgLTMwMiw3ICs0MTIsNiBAQCBjbWRweV9jb21wbGV0ZXIgKHN0cnVjdCBjbWRfbGlzdF9l bGVtZW50Ci0gCi0gIGRvbmU6Ci0gCi0tICBQeV9YREVDUkVGIChyZXN1bHRvYmopOwotICAgZG9f Y2xlYW51cHMgKGNsZWFudXApOwotIAotICAgcmV0dXJuIHJlc3VsdDsKLUBAIC01NDgsNiArNjU3 LDkgQEAgY21kcHlfaW5pdCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcgotICAgICAgIHNl dF9jbWRfY29udGV4dCAoY21kLCBzZWxmKTsKLSAgICAgICBzZXRfY21kX2NvbXBsZXRlciAoY21k LCAoKGNvbXBsZXRldHlwZSA9PSAtMSkgPyBjbWRweV9jb21wbGV0ZXIKLSAJCQkgICAgICAgOiBj b21wbGV0ZXJzW2NvbXBsZXRldHlwZV0uY29tcGxldGVyKSk7Ci0rICAgICAgaWYgKGNvbXBsZXRl dHlwZSA9PSAtMSkKLSsJc2V0X2NtZF9jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzIChjbWQsCi0r CQkJCQkgICBjbWRweV9jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzKTsKLSAgICAgfQotICAgaWYg KGV4Y2VwdC5yZWFzb24gPCAwKQotICAgICB7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYyNy9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktY29tcGxldGlvbi5leHAKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGIt Ny43LjkwLjIwMTQwNjI3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1jb21wbGV0aW9uLmV4 cAkyMDE0LTA3LTA3IDIwOjUzOjU1LjQzMTExMDIwOSArMDIwMAotQEAgLTAsMCArMSw3MCBAQAot KyMgQ29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwot KyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMK LSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStzZXQgdGVzdGZpbGUgInB5LWNvbXBs ZXRpb24iCi0rCi0rbG9hZF9saWIgZ2RiLXB5dGhvbi5leHAKLSsKLStnZGJfZXhpdAotK2dkYl9z dGFydAotKwotKyMgU2tpcCBhbGwgdGVzdHMgaWYgUHl0aG9uIHNjcmlwdGluZyBpcyBub3QgZW5h YmxlZC4KLStpZiB7IFtza2lwX3B5dGhvbl90ZXN0c10gfSB7IGNvbnRpbnVlIH0KLSsKLStnZGJf dGVzdF9ub19vdXRwdXQgInNvdXJjZSAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LnB5 IgotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeQotK3NldCB0ZXN0ZGlyICIke29i amRpcn0vJHtzdWJkaXJ9L3B5LWNvbXBsZXRpb24tdGVzdGRpci8iCi0rc2V0IHRlc3RkaXJfcmVn ZXggW3N0cmluZ190b19yZWdleHAgJHRlc3RkaXJdCi0rc2V0IHRlc3RkaXJfY29tcGxldGUgIiR7 b2JqZGlyfS8ke3N1YmRpcn0vcHktY29tcGxldGlvbi10ZXN0IgotK2ZpbGUgbWtkaXIgJHRlc3Rk aXIKLSsKLSsjIFRoaXMgb25lIHNob3VsZCBhbHdheXMgcGFzcy4KLStzZW5kX2dkYiAiY29tcGxl dGVmaWxlaW5pdCAke3Rlc3RkaXJfY29tcGxldGV9XHQiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUgIiIg ImNvbXBsZXRlZmlsZWluaXQgY29tcGxldGlvbiIgewotKyAgICAtcmUgIl5jb21wbGV0ZWZpbGVp bml0ICR7dGVzdGRpcl9yZWdleH0kIiB7Ci0rICAgICAgICBwYXNzICJjb21wbGV0ZWZpbGVpbml0 IGNvbXBsZXRpb24iCi0rICAgIH0KLSt9Ci0rCi0rIyBKdXN0IGRpc2NhcmRpbmcgd2hhdGV2ZXIg d2UgdHlwZWQuCi0rc2VuZF9nZGIgIlxuIgotK2dkYl90ZXN0ICJwcmludCIgIi4qIgotKwotKyMg VGhpcyBpcyB0aGUgcHJvYmxlbWF0aWMgb25lLgotK3NlbmRfZ2RiICJjb21wbGV0ZWZpbGVtZXRo b2QgJHt0ZXN0ZGlyX2NvbXBsZXRlfVx0IgotK2dkYl90ZXN0X211bHRpcGxlICIiICJjb21wbGV0 ZWZpbGVtZXRob2QgY29tcGxldGlvbiIgewotKyAgICAtcmUgIl5jb21wbGV0ZWZpbGVtZXRob2Qg JHt0ZXN0ZGlyX3JlZ2V4fSAkIiB7Ci0rICAgICAgICBmYWlsICJjb21wbGV0ZWZpbGVtZXRob2Qg Y29tcGxldGlvbiAoY29tcGxldGVkIGZpbGVuYW1lIGFzIHdyb25nIGNvbW1hbmQgYXJnKSIKLSsg ICAgfQotKyAgICAtcmUgIl5jb21wbGV0ZWZpbGVtZXRob2QgJHt0ZXN0ZGlyX3JlZ2V4fSQiIHsK LSsgICAgICAgIHBhc3MgImNvbXBsZXRlZmlsZW1ldGhvZCBjb21wbGV0aW9uIgotKyAgICB9Ci0r fQotKwotKyMgRGlzY2FyZGluZyBhZ2FpbgotK3NlbmRfZ2RiICJcbiIKLStnZGJfdGVzdCAicHJp bnQiICIuKiIKLSsKLSsjIEFub3RoZXIgcHJvYmxlbWF0aWMKLStzZW5kX2dkYiAiY29tcGxldGVm aWxlY29tbWFuZGNvbmQgJHtvYmpkaXJ9LyR7c3ViZGlyfS9weS1jb21wbGV0aW9uLXRcdCIKLStn ZGJfdGVzdF9tdWx0aXBsZSAiIiAiY29tcGxldGVmaWxlY29tbWFuZGNvbmQgY29tcGxldGlvbiIg ewotKyAgICAtcmUgIl5jb21wbGV0ZWZpbGVjb21tYW5kY29uZCAke3Rlc3RkaXJ9JCIgewotKwlm YWlsICJjb21wbGV0ZWZpbGVjb21tYW5kY29uZCBjb21wbGV0aW9uIChjb21wbGV0ZWQgZmlsZW5h bWUgaW5zdGVhZCBvZiBjb21tYW5kKSIKLSsgICAgfQotKyAgICAtcmUgIl5jb21wbGV0ZWZpbGVj b21tYW5kY29uZCAke29iamRpcn0vJHtzdWJkaXJ9L3B5LWNvbXBsZXRpb24tdCQiIHsKLSsJcGFz cyAiY29tcGxldGVmaWxlY29tbWFuZGNvbmQgY29tcGxldGlvbiIKLSsgICAgfQotK30KLUluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjI3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1jb21wbGV0 aW9uLnB5Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYyNy9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktY29tcGxldGlvbi5weQkyMDE0LTA3LTA3IDIwOjUzOjU1LjQzMTExMDIwOSArMDIw MAotQEAgLTAsMCArMSw1OCBAQAotKyMgQ29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLSsj IFRoaXMgdGVzdGNhc2UgdGVzdHMgUFIgcHl0aG9uLzE2Njk5Ci0rCi0raW1wb3J0IGdkYgotKwot K2NsYXNzIENvbXBsZXRlRmlsZUluaXQoZ2RiLkNvbW1hbmQpOgotKwlkZWYgX19pbml0X18oc2Vs Zik6Ci0rCQlnZGIuQ29tbWFuZC5fX2luaXRfXyhzZWxmLCdjb21wbGV0ZWZpbGVpbml0JyxnZGIu Q09NTUFORF9VU0VSLGdkYi5DT01QTEVURV9GSUxFTkFNRSkKLSsKLSsJZGVmIGludm9rZShzZWxm LGFyZ3VtZW50LGZyb21fdHR5KToKLSsJCXJhaXNlIGdkYi5HZGJFcnJvcignbm90IGltcGxlbWVu dGVkJykKLSsKLStjbGFzcyBDb21wbGV0ZUZpbGVNZXRob2QoZ2RiLkNvbW1hbmQpOgotKwlkZWYg X19pbml0X18oc2VsZik6Ci0rCQlnZGIuQ29tbWFuZC5fX2luaXRfXyhzZWxmLCdjb21wbGV0ZWZp bGVtZXRob2QnLGdkYi5DT01NQU5EX1VTRVIpCi0rCi0rCWRlZiBpbnZva2Uoc2VsZixhcmd1bWVu dCxmcm9tX3R0eSk6Ci0rCQlyYWlzZSBnZGIuR2RiRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpCi0r Ci0rCWRlZiBjb21wbGV0ZShzZWxmLHRleHQsd29yZCk6Ci0rCQlyZXR1cm4gZ2RiLkNPTVBMRVRF X0ZJTEVOQU1FCi0rCi0rY2xhc3MgQ29tcGxldGVGaWxlQ29tbWFuZENvbmQoZ2RiLkNvbW1hbmQp OgotKwlkZWYgX19pbml0X18oc2VsZik6Ci0rCQlnZGIuQ29tbWFuZC5fX2luaXRfXyhzZWxmLCdj b21wbGV0ZWZpbGVjb21tYW5kY29uZCcsZ2RiLkNPTU1BTkRfVVNFUikKLSsKLSsJZGVmIGludm9r ZShzZWxmLGFyZ3VtZW50LGZyb21fdHR5KToKLSsJCXJhaXNlIGdkYi5HZGJFcnJvcignbm90IGlt cGxlbWVudGVkJykKLSsKLSsJZGVmIGNvbXBsZXRlKHNlbGYsdGV4dCx3b3JkKToKLSsJCSMgVGhp cyBpcyBhIHRlc3QgbWFkZSB0byBrbm93IGlmIHRoZSBjb21tYW5kCi0rCQkjIGNvbXBsZXRpb24g c3RpbGwgd29ya3MgZmluZS4gIFdoZW4gdGhlIHVzZXIgYXNrcyB0bwotKwkJIyBjb21wbGV0ZSBz b21ldGhpbmcgbGlrZSAiY29tcGxldGVmaWxlY29tbWFuZGNvbmQKLSsJCSMgL3BhdGgvdG8vcHkt Y29tcGxldGlvbi10IiwgaXQgc2hvdWxkIG5vdCBjb21wbGV0ZSB0bwotKwkJIyAiL3BhdGgvdG8v cHktY29tcGxldGlvbi10ZXN0LyIsIGJ1dCBpbnN0ZWFkIGp1c3QKLSsJCSMgd2FpdCBmb3IgaW5w dXQuCi0rCQlpZiAicHktY29tcGxldGlvbi10IiBpbiB0ZXh0OgotKwkJCXJldHVybiBnZGIuQ09N UExFVEVfQ09NTUFORAotKwkJZWxzZToKLSsJCQlyZXR1cm4gZ2RiLkNPTVBMRVRFX0ZJTEVOQU1F Ci0rCi0rQ29tcGxldGVGaWxlSW5pdCgpCi0rQ29tcGxldGVGaWxlTWV0aG9kKCkKLStDb21wbGV0 ZUZpbGVDb21tYW5kQ29uZCgpCgpkaWZmIC0tZ2l0IGEvZ2RiLXB5dGhvbi1jb21wbGV0ZXItMm9m Mi5wYXRjaCBiL2dkYi1weXRob24tY29tcGxldGVyLTJvZjIucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGVjM2M2MmYuLjAwMDAwMDAKLS0tIGEvZ2RiLXB5dGhvbi1jb21wbGV0 ZXItMm9mMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLWh0dHA6Ly9zb3Vy Y2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE0LTA3L21zZzAwMTU0Lmh0bWwKLVN1YmplY3Q6 IFJlOiBbUEFUQ0hdIFBSIHB5dGhvbi8xNjY5OTogR0RCIFB5dGhvbiBjb21tYW5kIGNvbXBsZXRp b24gd2l0aCBvdmVycmlkZW4gY29tcGxldGUgdnMuIGNvbXBsZXRlciBjbGFzcwotCi0KLS0tcFd5 aUVnSlltNWY5djU1LwotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lp Ci1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotT24gVHVlLCAwOCBKdWwgMjAxNCAxNzoz MjoyMSArMDIwMCwgSmFuIEtyYXRvY2h2aWwgd3JvdGU6Ci0+IC0gICAgLXJlICJeY29tcGxldGVm aWxlY29tbWFuZGNvbmQgJHtvYmpkaXJ9LyR7c3ViZGlyfS9weS1jb21wbGV0aW9uLXQkIiB7Ci0+ ICsgICAgLXJlICJeY29tcGxldGVmaWxlY29tbWFuZGNvbmQgJHtjb21wbGV0aW9uX3JlZ2V4fSQi IHsKLQotVGhlcmUgd2FzIGEgcmFjeSBidWcgaGVyZSAtIGFuZCBldmVuIGluIHRoZSBmb3JtZXIg dGVzdCAtIGhlcmUgc2hvdWxkIGJlOgotICArICAgIC1yZSAiXmNvbXBsZXRlZmlsZWNvbW1hbmRj b25kICR7Y29tcGxldGlvbl9yZWdleH1cMDA3JCIgewotCi1VcGRhdGVkIGZpeCBhdHRhY2hlZC4K LQotCi1KYW4KLQotLS1wV3lpRWdKWW01Zjl2NTUvCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47 IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9 InB5LWNvbXBsZXRpb24tcmFjZTIucGF0Y2giCi0KLS0tLSAuL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS1jb21wbGV0aW9uLmV4cC1vcmlnCTIwMTQtMDctMDcgMjE6MzI6MTcuODkxMDQ1MDU4 ICswMjAwCi0rKysgLi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktY29tcGxldGlvbi5leHAJ MjAxNC0wNy0wOCAyMDoxNDo1Ny4xODk3OTE5MjggKzAyMDAKLUBAIC0yNiw5ICsyNiw5IEBAIGlm IHsgW3NraXBfcHl0aG9uX3Rlc3RzXSB9IHsgY29udGludWUgfQotIGdkYl90ZXN0X25vX291dHB1 dCAic291cmNlICR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0ucHkiCi0gCi0gIyBDcmVh dGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5Ci0tc2V0IHRlc3RkaXIgIiR7b2JqZGlyfS8ke3N1YmRp cn0vcHktY29tcGxldGlvbi10ZXN0ZGlyLyIKLStzZXQgdGVzdGRpciAiW3N0YW5kYXJkX291dHB1 dF9maWxlICJweS1jb21wbGV0aW9uLXRlc3RkaXIiXS8iCi0gc2V0IHRlc3RkaXJfcmVnZXggW3N0 cmluZ190b19yZWdleHAgJHRlc3RkaXJdCi0tc2V0IHRlc3RkaXJfY29tcGxldGUgIiR7b2JqZGly fS8ke3N1YmRpcn0vcHktY29tcGxldGlvbi10ZXN0IgotK3NldCB0ZXN0ZGlyX2NvbXBsZXRlIFtz dGFuZGFyZF9vdXRwdXRfZmlsZSAicHktY29tcGxldGlvbi10ZXN0Il0KLSBmaWxlIG1rZGlyICR0 ZXN0ZGlyCi0gCi0gIyBUaGlzIG9uZSBzaG91bGQgYWx3YXlzIHBhc3MuCi1AQCAtNDAsOCArNDAs NyBAQCBnZGJfdGVzdF9tdWx0aXBsZSAiIiAiY29tcGxldGVmaWxlaW5pdCBjCi0gfQotIAotICMg SnVzdCBkaXNjYXJkaW5nIHdoYXRldmVyIHdlIHR5cGVkLgotLXNlbmRfZ2RiICJcbiIKLS1nZGJf dGVzdCAicHJpbnQiICIuKiIKLStnZGJfdGVzdCAiICIgIi4qIiAiZGlzY2FyZCAjMSIKLSAKLSAj IFRoaXMgaXMgdGhlIHByb2JsZW1hdGljIG9uZS4KLSBzZW5kX2dkYiAiY29tcGxldGVmaWxlbWV0 aG9kICR7dGVzdGRpcl9jb21wbGV0ZX1cdCIKLUBAIC01NSwxNiArNTQsMTYgQEAgZ2RiX3Rlc3Rf bXVsdGlwbGUgIiIgImNvbXBsZXRlZmlsZW1ldGhvZAotIH0KLSAKLSAjIERpc2NhcmRpbmcgYWdh aW4KLS1zZW5kX2dkYiAiXG4iCi0tZ2RiX3Rlc3QgInByaW50IiAiLioiCi0rZ2RiX3Rlc3QgIiAi ICIuKiIgImRpc2NhcmQgIzIiCi0gCi0gIyBBbm90aGVyIHByb2JsZW1hdGljCi0tc2VuZF9nZGIg ImNvbXBsZXRlZmlsZWNvbW1hbmRjb25kICR7b2JqZGlyfS8ke3N1YmRpcn0vcHktY29tcGxldGlv bi10XHQiCi0rc2V0IGNvbXBsZXRpb25fcmVnZXggIltzdHJpbmdfdG9fcmVnZXhwIFtzdGFuZGFy ZF9vdXRwdXRfZmlsZSAicHktY29tcGxldGlvbi10Il1dIgotK3NlbmRfZ2RiICJjb21wbGV0ZWZp bGVjb21tYW5kY29uZCBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgInB5LWNvbXBsZXRpb24tdFx0Il0i Ci0gZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgImNvbXBsZXRlZmlsZWNvbW1hbmRjb25kIGNvbXBsZXRp b24iIHsKLSAgICAgLXJlICJeY29tcGxldGVmaWxlY29tbWFuZGNvbmQgJHt0ZXN0ZGlyfSQiIHsK LSAJZmFpbCAiY29tcGxldGVmaWxlY29tbWFuZGNvbmQgY29tcGxldGlvbiAoY29tcGxldGVkIGZp bGVuYW1lIGluc3RlYWQgb2YgY29tbWFuZCkiCi0gICAgIH0KLS0gICAgLXJlICJeY29tcGxldGVm aWxlY29tbWFuZGNvbmQgJHtvYmpkaXJ9LyR7c3ViZGlyfS9weS1jb21wbGV0aW9uLXQkIiB7Ci0r ICAgIC1yZSAiXmNvbXBsZXRlZmlsZWNvbW1hbmRjb25kICR7Y29tcGxldGlvbl9yZWdleH1cMDA3 JCIgewotIAlwYXNzICJjb21wbGV0ZWZpbGVjb21tYW5kY29uZCBjb21wbGV0aW9uIgotICAgICB9 Ci0gfQotCi0tLXBXeWlFZ0pZbTVmOXY1NS8tLQotCgpkaWZmIC0tZ2l0IGEvZ2RiLXJlYWRsaW5l LTYuMy41LnBhdGNoIGIvZ2RiLXJlYWRsaW5lLTYuMy41LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBiMjZhYjNhLi4wMDAwMDAwCi0tLSBhL2dkYi1yZWFkbGluZS02LjMuNS5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9y Zy9tbC9nZGItcGF0Y2hlcy8yMDE0LTA2L21zZzAwNzM3Lmh0bWwKLVN1YmplY3Q6IFtwYXRjaF0g Rml4IC0td2l0aC1zeXN0ZW0tcmVhZGxpbmUgd2l0aCByZWFkbGluZS02LjMgcGF0Y2ggNQotCi0K LS0tQlhWQVQ1a050cnpLdURGbAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVz LWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotSGksCi0KLUkgaGF2ZSBmaWxl ZCBub3c6Ci0JLS13aXRoLXN5c3RlbS1yZWFkbGluZSB1c2VzIGJ1bmRsZWQgcmVhZGxpbmUgaW5j bHVkZSBmaWxlcwotCWh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dp P2lkPTE3MDc3Ci0KLVRvIHNlZSBhbnkgZWZmZWN0IG9mIHRoZSBwYXRjaCBiZWxvdyB5b3UgaGF2 ZSB0byBkbzoKLQlybSAtcmYgcmVhZGxpbmUKLU90aGVyd2lzZSByZWFkbGluZSBpbmNsdWRlIGZp bGVzIGdldCB1c2VkIHRoZSBidW5kbGVkIG9uZXMgZnJvbSBHREIgd2hpY2ggYXJlCi1jdXJyZW50 bHkgNi4yIHdoaWxlIHN5c3RlbSByZWFkbGluZSBtYXkgYmUgNi4zIGFscmVhZHkuCi0KLVlvdSBh bHNvIGhhdmUgdG8gdXNlIHN5c3RlbSByZWFkbGluZS02LjMgaW5jbHVkaW5nIGl0cyB1cHN0cmVh bSBwYXRjaDoKLQlbQnVnLXJlYWRsaW5lXSBSZWFkbGluZS02LjMgT2ZmaWNpYWwgUGF0Y2ggNQot CWh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9idWctcmVhZGxpbmUvMjAxNC0wNC9t c2cwMDAxOC5odG1sCi0JTWVzc2FnZS1JRDogPDE0MDQxNTEyNTYxOC5BQTU3NTk4LlNNQGNhbGVi Lmlucy5jd3J1LmVkdT4KLQotSW4gc2hvcnQgaXQgaGFwcGVucyBvbiBGZWRvcmEgUmF3aGlkZSBz aW5jZToKLQlyZWFkbGluZS02LjMtMS5mYzIxCi0JaHR0cHM6Ly9rb2ppLmZlZG9yYXByb2plY3Qu b3JnL2tvamkvYnVpbGRpbmZvP2J1aWxkSUQ9NTM4OTQxCi0KLVRoZSBlcnJvciBpczoKLQlodHRw czovL2tvamlwa2dzLmZlZG9yYXByb2plY3Qub3JnLy93b3JrL3Rhc2tzLzk4OTAvNzA1OTg5MC9i dWlsZC5sb2cKLQkuLi8uLi9nZGIvdHVpL3R1aS1pby5jOjEzMjoxOiBlcnJvcjogJ0Z1bmN0aW9u JyBpcyBkZXByZWNhdGVkIFstV2Vycm9yPWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQotCSBzdGF0 aWMgRnVuY3Rpb24gKnR1aV9vbGRfcmxfZ2V0Y19mdW5jdGlvbjsKLQkgXgotCS4uLy4uL2dkYi90 dWkvdHVpLWlvLmM6MTMzOjE6IGVycm9yOiAnVkZ1bmN0aW9uJyBpcyBkZXByZWNhdGVkIFstV2Vy cm9yPWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQotCSBzdGF0aWMgVkZ1bmN0aW9uICp0dWlfb2xk X3JsX3JlZGlzcGxheV9mdW5jdGlvbjsKLQkgXgotCS4uLy4uL2dkYi90dWkvdHVpLWlvLmM6MTM0 OjE6IGVycm9yOiAnVkZ1bmN0aW9uJyBpcyBkZXByZWNhdGVkIFstV2Vycm9yPWRlcHJlY2F0ZWQt ZGVjbGFyYXRpb25zXQotCSBzdGF0aWMgVkZ1bmN0aW9uICp0dWlfb2xkX3JsX3ByZXBfdGVybWlu YWw7Ci0JIF4KLQkuLi8uLi9nZGIvdHVpL3R1aS1pby5jOjEzNToxOiBlcnJvcjogJ1ZGdW5jdGlv bicgaXMgZGVwcmVjYXRlZCBbLVdlcnJvcj1kZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KLQkgc3Rh dGljIFZGdW5jdGlvbiAqdHVpX29sZF9ybF9kZXByZXBfdGVybWluYWw7Ci0JIF4KLQotSXQgaXMg c2luY2UgYmFzaCBjaGFuZ2U6Ci1saWIvcmVhZGxpbmUvcmx0eXBlZGVmcy5oCi0gICAgICAgLSBy ZW1vdmUgb2xkIEZ1bmN0aW9uL1ZGdW5jdGlvbi9DUEZ1bmN0aW9uL0NQUEZ1bmN0aW9uIHR5cGVk ZWZzIGFzCi0gICAgICAgICBzdWdnZXN0ZWQgYnkgVG9tIFRyb21leSA8dHJvbWV5QHJlZGhhdC5j b20+Ci0KLVRoZSBuZXcgdHlwZWRlZnMgdXNlZCBiZWxvdyBhcmUgcHJlc2VudCBpbiByZWFkbGlu ZS9ybHR5cGVkZWZzLmggc2luY2U6Ci0JZ2l0Oi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvYmFzaC5n aXQKLQljb21taXQgMjhlZjZjMzE2ZjFhZmY5MTRiYjk1YWMwOTc4N2EzYzgzYzE4MTVmZAotCURh dGU6ICAgRnJpIEFwciA2IDE5OjE0OjMxIDIwMDEgKzAwMDAKLQotCi1KYW4KLQotLS1CWFZBVDVr TnRyekt1REZsCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNv bnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9InR1aXJlYWRsaW5lLnBhdGNoIgot Ci1nZGIvCi0yMDE0LTA2LTIwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+Ci0KLQlGaXggLS13aXRoLXN5c3RlbS1yZWFkbGluZSB3aXRoIHJlYWRsaW5lLTYuMyBw YXRjaCA1LgotCSogdHVpL3R1aS1pby5jICh0dWlfb2xkX3JsX2dldGNfZnVuY3Rpb24sIHR1aV9v bGRfcmxfcmVkaXNwbGF5X2Z1bmN0aW9uKQotCSh0dWlfb2xkX3JsX3ByZXBfdGVybWluYWwsIHR1 aV9vbGRfcmxfZGVwcmVwX3Rlcm1pbmFsKTogVXNlIHJsXypfdAotCXR5cGVzLgotCi1kaWZmIC0t Z2l0IGEvZ2RiL3R1aS90dWktaW8uYyBiL2dkYi90dWkvdHVpLWlvLmMKLWluZGV4IDc2MWQyMDMu LmRjY2NiMDggMTAwNjQ0Ci0tLS0gYS9nZGIvdHVpL3R1aS1pby5jCi0rKysgYi9nZGIvdHVpL3R1 aS1pby5jCi1AQCAtMTI5LDEwICsxMjksMTAgQEAgc3RhdGljIHN0cnVjdCB1aV9maWxlICp0dWlf b2xkX3N0ZGVycjsKLSBzdHJ1Y3QgdWlfb3V0ICp0dWlfb2xkX3Vpb3V0OwotIAotIC8qIFJlYWRs aW5lIHByZXZpb3VzIGhvb2tzLiAgKi8KLS1zdGF0aWMgRnVuY3Rpb24gKnR1aV9vbGRfcmxfZ2V0 Y19mdW5jdGlvbjsKLS1zdGF0aWMgVkZ1bmN0aW9uICp0dWlfb2xkX3JsX3JlZGlzcGxheV9mdW5j dGlvbjsKLS1zdGF0aWMgVkZ1bmN0aW9uICp0dWlfb2xkX3JsX3ByZXBfdGVybWluYWw7Ci0tc3Rh dGljIFZGdW5jdGlvbiAqdHVpX29sZF9ybF9kZXByZXBfdGVybWluYWw7Ci0rc3RhdGljIHJsX2dl dGNfZnVuY190ICp0dWlfb2xkX3JsX2dldGNfZnVuY3Rpb247Ci0rc3RhdGljIHJsX3ZvaWRmdW5j X3QgKnR1aV9vbGRfcmxfcmVkaXNwbGF5X2Z1bmN0aW9uOwotK3N0YXRpYyBybF92aW50ZnVuY190 ICp0dWlfb2xkX3JsX3ByZXBfdGVybWluYWw7Ci0rc3RhdGljIHJsX3ZvaWRmdW5jX3QgKnR1aV9v bGRfcmxfZGVwcmVwX3Rlcm1pbmFsOwotIHN0YXRpYyBpbnQgdHVpX29sZF9ybF9lY2hvaW5nX3A7 Ci0gCi0gLyogUmVhZGxpbmUgb3V0cHV0IHN0cmVhbS4KLQotLS1CWFZBVDVrTnRyekt1REZsLS0K LQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTE2MzMzOS1hZGQtYXV0by1sb2FkLXNjcmlwdHMtZGly ZWN0b3J5LnBhdGNoIGIvZ2RiLXJoYnoxMTYzMzM5LWFkZC1hdXRvLWxvYWQtc2NyaXB0cy1kaXJl Y3RvcnkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5NDQwMTcuLjAwMDAw MDAKLS0tIGEvZ2RiLXJoYnoxMTYzMzM5LWFkZC1hdXRvLWxvYWQtc2NyaXB0cy1kaXJlY3Rvcnku cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzYgKzAsMCBAQAotRGF0ZTogVGh1LCAxMyBOb3Yg MjAxNCAxNjoyNjozNyArMDEwMAotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGphbiBkb3Qga3JhdG9j aHZpbCBhdCByZWRoYXQgZG90IGNvbT4KLVRvOiBnZGItcGF0Y2hlcyBhdCBzb3VyY2V3YXJlIGRv dCBvcmcKLUNjOiBKYWt1YiBGaWxhayA8amZpbGFrIGF0IHJlZGhhdCBkb3QgY29tPgotU3ViamVj dDogW3BhdGNoXSBBZGQgYWRkLWF1dG8tbG9hZC1zY3JpcHRzLWRpcmVjdG9yeQotCi0tLWpobzF5 WkpkYWQ2MERKcisKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQot Q29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCi0KLUhpLAotCi10aGVyZSBpcyBhbHJlYWR5ICJh ZGQtYXV0by1sb2FkLXNhZmUtcGF0aCIgd2hpY2ggd29ya3MKLWxpa2UgInNldCBhdXRvLWxvYWQg c2FmZS1wYXRoIiBidXQgaW4gYXBwZW5kIG1vZGUuCi0KLVRoZXJlIHdhcyBtaXNzaW5nIGFuIGFw cGVuZCBlcXVpdmFsZW50IGZvciAic2V0IGF1dG8tbG9hZCBzY3JpcHRzLWRpcmVjdG9yeSIuCi0K LUFCUlQgaGFzIGRpcmVjdG9yeSAvdmFyL2NhY2hlL2FicnQtZGkvIGFzIGFuIGFsdGVybmF0aXZl IG9uZQotdG8gL3Vzci9saWIvZGVidWcvIC4gVGhlcmVmb3JlIEFCUlQgbmVlZHMgdG8gdXNlIC1p ZXggcGFyYW1ldGVycyB0byBhZGQgdGhpcwotL3Zhci9jYWNoZS9hYnJ0LWRpLyBkaXJlY3Rvcnkg YXMgYSBmaXJzdC1jbGFzcyBkZWJ1Z2luZm8gZGlyZWN0b3J5LgotVXNpbmcgYWJzb2x1dGUgInNl dCBhdXRvLWxvYWQgc2NyaXB0cy1kaXJlY3RvcnkiIHdvdWxkIGhhcmQtY29kZSB0aGUgcGF0aAot cG9zc2libHkgb3ZlcnJpZGluZyBsb2NhbCBzeXN0ZW0gZGlyZWN0b3J5IGFkZGl0aW9uczsgYmVz aWRlcyBpdCB3b3VsZCBub3QgYmUKLW5pY2UgYW55d2F5LgotCi1ObyByZWdyZXNzaW9ucyBvbiB7 eDg2XzY0LHg4Nl82NC1tMzIsaTY4Nn0tZmVkb3JhMjEtbGludXgtZ251OyBhbHRob3VnaCBJIGhh dmUKLXNlZW4gc29tZSBoZWF2eSByZWdyZXNzaW9ucyB0aGVyZSB0b2RheSB1bnJlbGF0ZWQgdG8g dGhpcyBwYXRjaC4KLQotCi1UaGFua3MsCi1KYW4KLQotLS1qaG8xeVpKZGFkNjBESnIrCi1Db250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRp b246IGlubGluZTsgZmlsZW5hbWU9ImFkZGF1dG9sb2FkLnBhdGNoIgotCi1nZGIvCi0yMDE0LTEx LTEzICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQlBZGQg YWRkLWF1dG8tbG9hZC1zY3JpcHRzLWRpcmVjdG9yeS4KLQkqIE5FV1MgKENoYW5nZXMgc2luY2Ug R0RCIDcuOCk6IEFkZCBhZGQtYXV0by1sb2FkLXNjcmlwdHMtZGlyZWN0b3J5LgotCSogYXV0by1s b2FkLmMgKGFkZF9hdXRvX2xvYWRfZGlyKTogTmV3IGZ1bmN0aW9uLgotCShfaW5pdGlhbGl6ZV9h dXRvX2xvYWQpOiBJbnN0YWxsIGl0LgotCi1nZGIvZG9jLwotMjAxNC0xMS0xMyAgSmFuIEtyYXRv Y2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JQWRkIGFkZC1hdXRvLWxvYWQt c2NyaXB0cy1kaXJlY3RvcnkuCi0JKiBnZGIudGV4aW5mbyAoQXV0by1sb2FkaW5nKTogQWRkIGFk ZC1hdXRvLWxvYWQtc2NyaXB0cy1kaXJlY3RvcnkgbGluay4KLQkob2JqZmlsZS1nZGJkb3RleHQg ZmlsZSk6IEFkZCBhZGQtYXV0by1sb2FkLXNjcmlwdHMtZGlyZWN0b3J5LgotCi1JbmRleDogZ2Ri LTcuNi4xL2dkYi9ORVdTCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi4xLm9yaWcvZ2RiL05FV1MK LSsrKyBnZGItNy42LjEvZ2RiL05FV1MKLUBAIC0xLDYgKzEsMTIgQEAKLSAJCVdoYXQgaGFzIGNo YW5nZWQgaW4gR0RCPwotIAkgICAgIChPcmdhbml6ZWQgcmVsZWFzZSBieSByZWxlYXNlKQotIAot KyogTmV3IGNvbW1hbmRzOgotKwotK2FkZC1hdXRvLWxvYWQtc2NyaXB0cy1kaXJlY3RvcnkgZGly ZWN0b3J5Ci0rICBBZGQgZW50cmllcyB0byB0aGUgbGlzdCBvZiBkaXJlY3RvcmllcyBmcm9tIHdo aWNoIHRvIGxvYWQgYXV0by1sb2FkZWQKLSsgIHNjcmlwdHMuCi0rCi0gKioqIENoYW5nZXMgaW4g R0RCIDcuOAotIAotICogTmV3IGNvbW1hbmQgbGluZSBvcHRpb25zCi1JbmRleDogZ2RiLTcuNi4x L2dkYi9hdXRvLWxvYWQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuMS5vcmlnL2dkYi9hdXRv LWxvYWQuYwotKysrIGdkYi03LjYuMS9nZGIvYXV0by1sb2FkLmMKLUBAIC0yOTgsNiArMjk4LDIy IEBAIFVzZSAnc2V0IGF1dG8tbG9hZCBzYWZlLXBhdGggLycgZm9yIGRpc2EKLSAgIGF1dG9fbG9h ZF9zYWZlX3BhdGhfdmVjX3VwZGF0ZSAoKTsKLSB9Ci0gCi0rLyogImFkZC1hdXRvLWxvYWQtc2Ny aXB0cy1kaXJlY3RvcnkiIGNvbW1hbmQgZm9yIHRoZSBhdXRvX2xvYWRfZGlyIGNvbmZpZ3VyYXRp b24KLSsgICB2YXJpYWJsZS4gICovCi0rCi0rc3RhdGljIHZvaWQKLSthZGRfYXV0b19sb2FkX2Rp ciAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQotK3sKLSsgIGNoYXIgKnM7Ci0rCi0rICBpZiAo YXJncyA9PSBOVUxMIHx8ICphcmdzID09IDApCi0rICAgIGVycm9yIChfKCJEaXJlY3RvcnkgYXJn dW1lbnQgcmVxdWlyZWQuIikpOwotKwotKyAgcyA9IHhzdHJwcmludGYgKCIlcyVjJXMiLCBhdXRv X2xvYWRfZGlyLCBESVJOQU1FX1NFUEFSQVRPUiwgYXJncyk7Ci0rICB4ZnJlZSAoYXV0b19sb2Fk X2Rpcik7Ci0rICBhdXRvX2xvYWRfZGlyID0gczsKLSt9Ci0rCi0gLyogSW1wbGVtZW50YXRpb24g Zm9yIGZpbGVuYW1lX2lzX2luX3BhdHRlcm4gb3ZlcndyaXRpbmcgdGhlIGNhbGxlcidzIEZJTEVO QU1FCi0gICAgYW5kIFBBVFRFUk4uICAqLwotIAotQEAgLTEyOTUsNiArMTMxMSwxNSBAQCBhY2Nl c3MgdGhlIGN1cnJlbnQgZnVsbCBsaXN0IHNldHRpbmcuIiksCi0gCQkgJmNtZGxpc3QpOwotICAg c2V0X2NtZF9jb21wbGV0ZXIgKGNtZCwgZmlsZW5hbWVfY29tcGxldGVyKTsKLSAKLSsgIGNtZCA9 IGFkZF9jbWQgKCJhZGQtYXV0by1sb2FkLXNjcmlwdHMtZGlyZWN0b3J5IiwgY2xhc3Nfc3VwcG9y dCwKLSsJCSBhZGRfYXV0b19sb2FkX2RpciwKLSsJCSBfKCJBZGQgZW50cmllcyB0byB0aGUgbGlz dCBvZiBkaXJlY3RvcmllcyBmcm9tIHdoaWNoIHRvIGxvYWQgIgotKwkJICAgImF1dG8tbG9hZGVk IHNjcmlwdHMuXG5cCi0rU2VlIHRoZSBjb21tYW5kcyAnc2V0IGF1dG8tbG9hZCBzY3JpcHRzLWRp cmVjdG9yeScgYW5kXG5cCi0rJ3Nob3cgYXV0by1sb2FkIHNjcmlwdHMtZGlyZWN0b3J5JyB0byBh Y2Nlc3MgdGhlIGN1cnJlbnQgZnVsbCBsaXN0IHNldHRpbmcuIiksCi0rCQkgJmNtZGxpc3QpOwot KyAgc2V0X2NtZF9jb21wbGV0ZXIgKGNtZCwgZmlsZW5hbWVfY29tcGxldGVyKTsKLSsKLSAgIGFk ZF9zZXRzaG93X2Jvb2xlYW5fY21kICgiYXV0by1sb2FkIiwgY2xhc3NfbWFpbnRlbmFuY2UsCi0g CQkJICAgJmRlYnVnX2F1dG9fbG9hZCwgXygiXAotIFNldCBhdXRvLWxvYWQgdmVyaWZpY2F0aW9u cyBkZWJ1Z2dpbmcuIiksIF8oIlwKLUluZGV4OiBnZGItNy42LjEvZ2RiL2RvYy9nZGIudGV4aW5m bwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuMS5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8KLSsr KyBnZGItNy42LjEvZ2RiL2RvYy9nZGIudGV4aW5mbwotQEAgLTIxOTI5LDYgKzIxOTI5LDggQEAg VGhlc2UgYXJlIEB2YWx1ZXtHREJOfSBjb250cm9sIGNvbW1hbmRzCi0gQHRhYiBDb250cm9sIGZv ciBAdmFsdWV7R0RCTn0gYXV0by1sb2FkZWQgc2NyaXB0cyBsb2NhdGlvbi4KLSBAaXRlbSBAeHJl ZntzaG93IGF1dG8tbG9hZCBzY3JpcHRzLWRpcmVjdG9yeX0uCi0gQHRhYiBTaG93IEB2YWx1ZXtH REJOfSBhdXRvLWxvYWRlZCBzY3JpcHRzIGxvY2F0aW9uLgotK0BpdGVtIEB4cmVme2FkZC1hdXRv LWxvYWQtc2NyaXB0cy1kaXJlY3Rvcnl9LgotK0B0YWIgQWRkIGRpcmVjdG9yeSBmb3IgYXV0by1s b2FkZWQgc2NyaXB0cyBsb2NhdGlvbiBsaXN0LgotIEBpdGVtIEB4cmVme3NldCBhdXRvLWxvYWQg bG9jYWwtZ2RiaW5pdH0uCi0gQHRhYiBDb250cm9sIGZvciBpbml0IGZpbGUgaW4gdGhlIGN1cnJl bnQgZGlyZWN0b3J5LgotIEBpdGVtIEB4cmVme3Nob3cgYXV0by1sb2FkIGxvY2FsLWdkYmluaXR9 LgotQEAgLTI3MjEzLDYgKzI3MjE1LDEyIEBAIHRvIHRoZSBAZW52e1BBVEh9IGVudmlyb25tZW50 IHZhcmlhYmxlLgotIEBraW5kZXggc2hvdyBhdXRvLWxvYWQgc2NyaXB0cy1kaXJlY3RvcnkKLSBA aXRlbSBzaG93IGF1dG8tbG9hZCBzY3JpcHRzLWRpcmVjdG9yeQotIFNob3cgQHZhbHVle0dEQk59 IGF1dG8tbG9hZGVkIHNjcmlwdHMgbG9jYXRpb24uCi0rCi0rQGFuY2hvcnthZGQtYXV0by1sb2Fk LXNjcmlwdHMtZGlyZWN0b3J5fQotK0BraW5kZXggYWRkLWF1dG8tbG9hZC1zY3JpcHRzLWRpcmVj dG9yeQotK0BpdGVtIGFkZC1hdXRvLWxvYWQtc2NyaXB0cy1kaXJlY3RvcnkgQHJ7W31AdmFye2Rp cmVjdG9yaWVzfUBye119Ci0rQWRkIGFuIGVudHJ5IChvciBsaXN0IG9mIGVudHJpZXMpIHRvIHRo ZSBsaXN0IG9mIGF1dG8tbG9hZGVkIHNjcmlwdHMgbG9jYXRpb25zLgotK011bHRpcGxlIGVudHJp ZXMgbWF5IGJlIGRlbGltaXRlZCBieSB0aGUgaG9zdCBwbGF0Zm9ybSBwYXRoIHNlcGFyYXRvciBp biB1c2UuCi0gQGVuZCB0YWJsZQotIAotIEB2YWx1ZXtHREJOfSBkb2VzIG5vdCB0cmFjayB3aGlj aCBmaWxlcyBpdCBoYXMgYWxyZWFkeSBhdXRvLWxvYWRlZCB0aGlzIHdheS4KCmRpZmYgLS1naXQg YS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0 cG9zLTIwb2YyNS5wYXRjaAppbmRleCAxOWM1NDdkLi4yOGU2YWJjIDEwMDY0NAotLS0gYS9nZGIt cmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBv cy0yMG9mMjUucGF0Y2gKQEAgLTQ2MywxMSArNDYzLDExIEBAIENvbnRlbnQtVHlwZTogdGV4dC94 LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250ZW50LURpc3Bvc2l0 aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtbWFpbi5wYXRjaAogCi1JbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2FkYS1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9y aWcvZ2RiL2FkYS1sYW5nLmMJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsr KyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCTIwMTQtMDYtMjQgMTY6MDc6Mjcu MjQ1OTg2ODc1ICswMjAwCi1AQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKmRl c2NfYm91bmRzX3R5cGUgKHN0CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hZGEt bGFuZy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTA4MzE4NzE3ICswMTAwCisrKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE2NDMyNjc1MiAr MDEwMAorQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpkZXNjX2JvdW5kc190 eXBlIChzdAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2NfYm91bmRzIChzdHJ1Y3QgdmFs dWUgKik7CiAgCkBAIC00NzYsNyArNDc2LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2FkYS1sYW5nLmMKICAKICBzdGF0aWMgaW50IGZhdF9wbnRyX2JvdW5kc19iaXRzaXplIChz dHJ1Y3QgdHlwZSAqKTsKICAKLUBAIC04NiwxMyArODYsMTMgQEAgc3RhdGljIHN0cnVjdCB0eXBl ICpkZXNjX2RhdGFfdGFyZ2V0X3R5cAorQEAgLTgyLDEzICs4MiwxMyBAQCBzdGF0aWMgc3RydWN0 IHR5cGUgKmRlc2NfZGF0YV90YXJnZXRfdHlwCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqZGVz Y19kYXRhIChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC00OTIsNyArNDkyLDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAKICBzdGF0aWMgaW50IGRlc2NfYm91 bmRfYml0c2l6ZSAoc3RydWN0IHR5cGUgKiwgaW50LCBpbnQpOwogIAotQEAgLTE3Miw3ICsxNzIs NyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKnN0YXRpY191bndyYXBfdHlwZSAoCitAQCAtMTY4LDcg KzE2OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqc3RhdGljX3Vud3JhcF90eXBlICgKICAKICBz dGF0aWMgc3RydWN0IHZhbHVlICp1bndyYXBfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqKTsKICAKQEAg LTUwMSw3ICs1MDEsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcu YwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJh eV90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAKLUBAIC0xODcsNyArMTg3LDggQEAgc3RhdGljIGlu dCBhZGFfaXNfdW5jb25zdHJhaW5lZF9wYWNrZWRfYQorQEAgLTE4Myw3ICsxODMsOCBAQCBzdGF0 aWMgaW50IGFkYV9pc191bmNvbnN0cmFpbmVkX3BhY2tlZF9hCiAgc3RhdGljIHN0cnVjdCB2YWx1 ZSAqdmFsdWVfc3Vic2NyaXB0X3BhY2tlZCAoc3RydWN0IHZhbHVlICosIGludCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmFsdWUgKiopOwog IApAQCAtNTExLDcgKzUxMSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEt bGFuZy5jCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqY29lcmNlX3Vuc3BlY192YWxfdG9fdHlw ZSAoc3RydWN0IHZhbHVlICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR5cGUgKik7Ci1AQCAtMjE1LDE0ICsyMTYsMTQgQEAgc3RhdGlj IHN0cnVjdCB2YWx1ZSAqdmFsdWVfdmFsX2F0ciAoc3RydQorQEAgLTIxMSwxNCArMjEyLDE0IEBA IHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3ZhbF9hdHIgKHN0cnUKICBzdGF0aWMgc3RydWN0 IHN5bWJvbCAqc3RhbmRhcmRfbG9va3VwIChjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCBibG9j ayAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbl9lbnVt KTsKICAKQEAgLTUzMCwxNiArNTMwLDE2IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqYWRhX3RvX2ZpeGVkX3ZhbHVl X2NyZWF0ZSAoc3RydWN0IHR5cGUgKiwgQ09SRV9BRERSLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2YWx1ZSAqKTsKLUBAIC0yMzgsNyAr MjM5LDcgQEAgc3RhdGljIHZvaWQgYWRhX2xhbmd1YWdlX2FyY2hfaW5mbyAoc3RydQotIAotIHN0 YXRpYyB2b2lkIGNoZWNrX3NpemUgKGNvbnN0IHN0cnVjdCB0eXBlICopOworQEAgLTIzMiw3ICsy MzMsNyBAQCBzdGF0aWMgaW50IGFkYV9pc19kaXJlY3RfYXJyYXlfdHlwZSAoc3RyCisgc3RhdGlj IHZvaWQgYWRhX2xhbmd1YWdlX2FyY2hfaW5mbyAoc3RydWN0IGdkYmFyY2ggKiwKKyAJCQkJICAg IHN0cnVjdCBsYW5ndWFnZV9hcmNoX2luZm8gKik7CiAgCiAtc3RhdGljIHN0cnVjdCB2YWx1ZSAq YWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50LCBzdHJ1Y3QgdmFsdWUgKiwgaW50LAogK3N0YXRp YyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmllbGQgKExPTkdFU1QsIHN0cnVjdCB2 YWx1ZSAqLCBMT05HRVNULAogIAkJCQkJICAgICBzdHJ1Y3QgdHlwZSAqKTsKICAKICBzdGF0aWMg c3RydWN0IHZhbHVlICphc3NpZ25fYWdncmVnYXRlIChzdHJ1Y3QgdmFsdWUgKiwgc3RydWN0IHZh bHVlICosIAotQEAgLTY5NCw3ICs2OTUsNyBAQCBjb2VyY2VfdW5zcGVjX3ZhbF90b190eXBlIChz dHJ1Y3QgdmFsdWUKK0BAIC02OTUsNyArNjk2LDcgQEAgY29lcmNlX3Vuc3BlY192YWxfdG9fdHlw ZSAoc3RydWN0IHZhbHVlCiAgfQogIAogIHN0YXRpYyBjb25zdCBnZGJfYnl0ZSAqCkBAIC01NDgs NyArNTQ4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICB7 CiAgICBpZiAodmFsYWRkciA9PSBOVUxMKQogICAgICByZXR1cm4gTlVMTDsKLUBAIC03MDMsNyAr NzA0LDcgQEAgY29uZF9vZmZzZXRfaG9zdCAoY29uc3QgZ2RiX2J5dGUgKnZhbGFkZAorQEAgLTcw NCw3ICs3MDUsNyBAQCBjb25kX29mZnNldF9ob3N0IChjb25zdCBnZGJfYnl0ZSAqdmFsYWRkCiAg fQogIAogIHN0YXRpYyBDT1JFX0FERFIKQEAgLTU1Nyw3ICs1NTcsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIHsKICAgIGlmIChhZGRyZXNzID09IDApCiAg ICAgIHJldHVybiAwOwotQEAgLTE3MTEsNyArMTcxMiw3IEBAIGRlc2NfYm91bmRzIChzdHJ1Y3Qg dmFsdWUgKmFycikKK0BAIC0xNzEyLDcgKzE3MTMsNyBAQCBkZXNjX2JvdW5kcyAoc3RydWN0IHZh bHVlICphcnIpCiAgLyogSWYgVFlQRSBpcyB0aGUgdHlwZSBvZiBhbiBhcnJheS1kZXNjcmlwdG9y IChmYXQgcG9pbnRlciksICB0aGUgYml0CiAgICAgcG9zaXRpb24gb2YgdGhlIGZpZWxkIGNvbnRh aW5pbmcgdGhlIGFkZHJlc3Mgb2YgdGhlIGJvdW5kcyBkYXRhLiAgKi8KICAKQEAgLTU2Niw3ICs1 NjYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIGZhdF9w bnRyX2JvdW5kc19iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIHJldHVybiBUWVBF X0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAxKTsKLUBAIC0xNzc3LDcgKzE3 NzgsNyBAQCBkZXNjX2RhdGEgKHN0cnVjdCB2YWx1ZSAqYXJyKQorQEAgLTE3NzgsNyArMTc3OSw3 IEBAIGRlc2NfZGF0YSAoc3RydWN0IHZhbHVlICphcnIpCiAgLyogSWYgVFlQRSBpcyB0aGUgdHlw ZSBvZiBhbiBhcnJheS1kZXNjcmlwdG9yIChmYXQgcG9pbnRlciksIHRoZSBiaXQKICAgICBwb3Np dGlvbiBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0aGUgYWRkcmVzcyBvZiB0aGUgZGF0YS4gICov CiAgCkBAIC01NzUsNyArNTc1LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Fk YS1sYW5nLmMKICBmYXRfcG50cl9kYXRhX2JpdHBvcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgewog ICAgcmV0dXJuIFRZUEVfRklFTERfQklUUE9TIChkZXNjX2Jhc2VfdHlwZSAodHlwZSksIDApOwot QEAgLTE4MTIsNyArMTgxMyw3IEBAIGRlc2Nfb25lX2JvdW5kIChzdHJ1Y3QgdmFsdWUgKmJvdW5k cywgaW4KK0BAIC0xODEzLDcgKzE4MTQsNyBAQCBkZXNjX29uZV9ib3VuZCAoc3RydWN0IHZhbHVl ICpib3VuZHMsIGluCiAgICAgb2YgdGhlIEl0aCBsb3dlciBib3VuZCBzdG9yZWQgaW4gaXQsIGlm IFdISUNIIGlzIDAsIGFuZCB0aGUgSXRoIHVwcGVyCiAgICAgYm91bmQsIGlmIFdISUNIIGlzIDEu ICBUaGUgZmlyc3QgYm91bmQgaXMgST0xLiAgKi8KICAKQEAgLTU4NCw3ICs1ODQsNyBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIGRlc2NfYm91bmRfYml0cG9z IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGksIGludCB3aGljaCkKICB7CiAgICByZXR1cm4gVFlQ RV9GSUVMRF9CSVRQT1MgKGRlc2NfYmFzZV90eXBlICh0eXBlKSwgMiAqIGkgKyB3aGljaCAtIDIp OwotQEAgLTIwMDIsNyArMjAwMyw3IEBAIGFkYV90eXBlX29mX2FycmF5IChzdHJ1Y3QgdmFsdWUg KmFyciwgaW4KK0BAIC0yMDAzLDcgKzIwMDQsNyBAQCBhZGFfdHlwZV9vZl9hcnJheSAoc3RydWN0 IHZhbHVlICphcnIsIGluCiAgCSAgICAgICAgIHplcm8sIGFuZCBkb2VzIG5vdCBuZWVkIHRvIGJl IHJlY29tcHV0ZWQuICAqLwogIAkgICAgICBpZiAobG8gPCBoaSkKICAJCXsKQEAgLTU5Myw4ICs1 OTMsOCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIAkJICAg ICAgICAoaGkgLSBsbyArIDEpICogVFlQRV9GSUVMRF9CSVRTSVpFIChlbHRfdHlwZSwgMCk7CiAg CiAgCQkgIFRZUEVfTEVOR1RIIChhcnJheV90eXBlKSA9IChhcnJheV9iaXRzaXplICsgNykgLyA4 OwotQEAgLTIxNTQsNyArMjE1NSw3IEBAIGRlY29kZV9wYWNrZWRfYXJyYXlfYml0c2l6ZSAoc3Ry dWN0IHR5cGUKLSAgICBpbiBiaXRzLiAgKi8KK0BAIC0yMTYzLDcgKzIxNjQsNyBAQCBkZWNvZGVf cGFja2VkX2FycmF5X2JpdHNpemUgKHN0cnVjdCB0eXBlCisgICAgdGhlIGxlbmd0aCBpcyBhcmJp dHJhcnkuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAtY29uc3RyYWluZWRfcGFja2Vk X2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBsb25nICplbHRfYml0cykKQEAgLTYwMiw3 ICs2MDIsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIHsK ICAgIHN0cnVjdCB0eXBlICpuZXdfZWx0X3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqbmV3X3R5cGU7 Ci1AQCAtMjIwNiw3ICsyMjA3LDcgQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJheV90 eXBlIChzdAorQEAgLTIyMTcsNyArMjIxOCw3IEBAIGRlY29kZV9jb25zdHJhaW5lZF9wYWNrZWRf YXJyYXlfdHlwZSAoc3QKICAgIGNoYXIgKm5hbWU7CiAgICBjb25zdCBjaGFyICp0YWlsOwogICAg c3RydWN0IHR5cGUgKnNoYWRvd190eXBlOwpAQCAtNjExLDcgKzYxMSw3IEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCiAgCiAgICBpZiAoIXJhd19uYW1lKQogICAg ICByYXdfbmFtZSA9IGFkYV90eXBlX25hbWUgKGRlc2NfYmFzZV90eXBlICh0eXBlKSk7Ci1AQCAt MjI3Nyw3ICsyMjc4LDggQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJheSAoc3RydWN0 CitAQCAtMjI4OCw3ICsyMjg5LDggQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJheSAo c3RydWN0CiAgIAkgYXJyYXkgd2l0aCBubyB3cmFwcGVyLiAgSW4gb3JkZXIgdG8gaW50ZXJwcmV0 IHRoZSB2YWx1ZSB0aHJvdWdoCiAgIAkgdGhlIChsZWZ0LWp1c3RpZmllZCkgcGFja2VkIGFycmF5 IHR5cGUgd2UganVzdCBidWlsdCwgd2UgbXVzdAogICAJIGZpcnN0IGxlZnQtanVzdGlmeSBpdC4g ICovCkBAIC02MjEsNyArNjIxLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Fk YS1sYW5nLmMKICAgICAgICBVTE9OR0VTVCBtb2Q7CiAgCiAgICAgICAgbW9kID0gYWRhX21vZHVs dXMgKHZhbHVlX3R5cGUgKGFycikpIC0gMTsKLUBAIC0yMzc4LDE1ICsyMzgwLDE2IEBAIGhhc19u ZWdhdGl2ZXMgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTIzODksMTUgKzIzOTEsMTYgQEAgaGFz X25lZ2F0aXZlcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAgc3RydWN0IHZhbHVlICoKICBhZGFf dmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2YWx1ZSAqb2JqLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKQEAgLTY0NCw3ICs2NDQsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ynl0ZSBvZiBzb3VyY2UgdGhhdCBhcmUgdW51c2VkICovCiAgICAgIGFjY3VtU2l6ZTsgICAgICAg ICAgICAgICAgICAvKiBOdW1iZXIgb2YgbWVhbmluZ2Z1bCBiaXRzIGluIGFjY3VtICovCiAgICB1 bnNpZ25lZCBjaGFyICpieXRlczsgICAgICAgICAvKiBGaXJzdCBieXRlIGNvbnRhaW5pbmcgZGF0 YSB0byB1bnBhY2sgKi8KLUBAIC0yNDIwLDcgKzI0MjMsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZl X3BhY2tlZF92YWwgKHN0cnVjdCB2CitAQCAtMjQzMSw3ICsyNDM0LDcgQEAgYWRhX3ZhbHVlX3By aW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdgogIAogICAgaWYgKG9iaiAhPSBOVUxMKQogICAg ICB7CkBAIC02NTMsNyArNjUzLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Fk YS1sYW5nLmMKICAKICAgICAgICBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uICh2LCBvYmop OwogICAgICAgIHNldF92YWx1ZV9iaXRwb3MgKHYsIGJpdF9vZmZzZXQgKyB2YWx1ZV9iaXRwb3Mg KG9iaikpOwotQEAgLTI1MzYsNyArMjUzOSw3IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2Vk X3ZhbCAoc3RydWN0IHYKK0BAIC0yNTQ3LDcgKzI1NTAsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZl X3BhY2tlZF92YWwgKHN0cnVjdCB2CiAgICAgbm90IG92ZXJsYXAuICAqLwogIHN0YXRpYyB2b2lk CiAgbW92ZV9iaXRzIChnZGJfYnl0ZSAqdGFyZ2V0LCBpbnQgdGFyZ19vZmZzZXQsIGNvbnN0IGdk Yl9ieXRlICpzb3VyY2UsCkBAIC02NjIsNyArNjYyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICB1bnNpZ25lZCBpbnQgYWNjdW0sIG1hc2s7CiAg ICBpbnQgYWNjdW1fYml0cywgY2h1bmtfc2l6ZTsKLUBAIC0yNjI2LDcgKzI2MjksNyBAQCBhZGFf dmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzCitAQCAtMjYzNyw3ICsyNjQwLDcg QEAgYWRhX3ZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgcwogICAgICB7CiAgICAg ICAgaW50IGxlbiA9ICh2YWx1ZV9iaXRwb3MgKHRvdmFsKQogIAkJICsgYml0cyArIEhPU1RfQ0hB Ul9CSVQgLSAxKSAvIEhPU1RfQ0hBUl9CSVQ7CkBAIC02NzEsNyArNjcxLDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBnZGJfYnl0ZSAqYnVmZmVy ID0gYWxsb2NhIChsZW4pOwogICAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsOwogICAgICAgIENPUkVf QUREUiB0b19hZGRyID0gdmFsdWVfYWRkcmVzcyAodG92YWwpOwotQEAgLTI2NzEsNyArMjY3NCw3 IEBAIHZhbHVlX2Fzc2lnbl90b19jb21wb25lbnQgKHN0cnVjdCB2YWx1ZQorQEAgLTI2ODIsNyAr MjY4NSw3IEBAIHZhbHVlX2Fzc2lnbl90b19jb21wb25lbnQgKHN0cnVjdCB2YWx1ZQogICAgICAo TE9OR0VTVCkgICh2YWx1ZV9hZGRyZXNzIChjb21wb25lbnQpIC0gdmFsdWVfYWRkcmVzcyAoY29u dGFpbmVyKSk7CiAgICBpbnQgYml0X29mZnNldF9pbl9jb250YWluZXIgPSAKICAgICAgdmFsdWVf Yml0cG9zIChjb21wb25lbnQpIC0gdmFsdWVfYml0cG9zIChjb250YWluZXIpOwpAQCAtNjgwLDcg KzY4MCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCiAgICAK ICAgIHZhbCA9IHZhbHVlX2Nhc3QgKHZhbHVlX3R5cGUgKGNvbXBvbmVudCksIHZhbCk7CiAgCi1A QCAtNDE5Niw3ICs0MTk5LDcgQEAgZW5zdXJlX2x2YWwgKHN0cnVjdCB2YWx1ZSAqdmFsKQorQEAg LTQyMTksNyArNDIyMiw3IEBAIGVuc3VyZV9sdmFsIChzdHJ1Y3QgdmFsdWUgKnZhbCkKICAgIGlm IChWQUxVRV9MVkFMICh2YWwpID09IG5vdF9sdmFsCiAgICAgICAgfHwgVkFMVUVfTFZBTCAodmFs KSA9PSBsdmFsX2ludGVybmFsdmFyKQogICAgICB7CkBAIC02ODksNyArNjg5LDcgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBjb25zdCBDT1JFX0FE RFIgYWRkciA9CiAgICAgICAgICB2YWx1ZV9hc19sb25nICh2YWx1ZV9hbGxvY2F0ZV9zcGFjZV9p bl9pbmZlcmlvciAobGVuKSk7CiAgCi1AQCAtNDI3MCw3ICs0MjczLDcgQEAgc3RhdGljIENPUkVf QUREUgorQEAgLTQyOTMsNyArNDI5Niw3IEBAIHN0YXRpYyBDT1JFX0FERFIKICB2YWx1ZV9wb2lu dGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwpAQCAtNjk4LDcgKzY5 OCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCiAgICBnZGJf Ynl0ZSAqYnVmID0gYWxsb2NhIChsZW4pOwogICAgQ09SRV9BRERSIGFkZHI7CiAgCi1AQCAtNjM3 NCw3ICs2Mzc3LDcgQEAgdmFsdWVfdGFnX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHN0cgor QEAgLTY0MDUsNyArNjQwOCw3IEBAIHZhbHVlX3RhZ19mcm9tX2NvbnRlbnRzX2FuZF9hZGRyZXNz IChzdHIKICAJCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3MpCiAgewpAQCAtNzA3LDcg KzcwNyw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCiAgICBz dHJ1Y3QgdHlwZSAqdGFnX3R5cGU7CiAgCiAgICBpZiAoZmluZF9zdHJ1Y3RfZmllbGQgKCJfdGFn IiwgdHlwZSwgMCwgJnRhZ190eXBlLCAmdGFnX2J5dGVfb2Zmc2V0LAotQEAgLTY4MzksNyArNjg0 Miw3IEBAIGFkYV9pbl92YXJpYW50IChMT05HRVNUIHZhbCwgc3RydWN0IHR5cGUKK0BAIC02ODcw LDcgKzY4NzMsNyBAQCBhZGFfaW5fdmFyaWFudCAoTE9OR0VTVCB2YWwsIHN0cnVjdCB0eXBlCiAg ICAgb25seSBpbiB0aGF0IGl0IGNhbiBoYW5kbGUgcGFja2VkIHZhbHVlcyBvZiBhcmJpdHJhcnkg dHlwZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03MTYsNyArNzE2LDcgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpCiAgewogICAgc3RydWN0IHR5cGUg KnR5cGU7Ci1AQCAtNjg1MSw3ICs2ODU0LDcgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAo c3RydWN0IHZhbHVlCitAQCAtNjg4Miw3ICs2ODg1LDcgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9m aWVsZCAoc3RydWN0IHZhbHVlCiAgCiAgICBpZiAoVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlw ZSwgZmllbGRubykgIT0gMCkKICAgICAgewpAQCAtNzI1LDcgKzcyNSw3IEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCiAgICAgICAgaW50IGJpdF9zaXplID0gVFlQ RV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubyk7CiAgCiAgICAgICAgcmV0dXJuIGFk YV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoYXJnMSwgdmFsdWVfY29udGVudHMgKGFyZzEp LAotQEAgLTY4NzgsOSArNjg4MSw5IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVj dCB2YWx1ZQorQEAgLTY5MDksOSArNjkxMiw5IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQg KHN0cnVjdCB2YWx1ZQogICAgIFJldHVybnMgMSBpZiBmb3VuZCwgMCBvdGhlcndpc2UuICAqLwog IAogIHN0YXRpYyBpbnQKQEAgLTczNyw3ICs3MzcsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvYWRhLWxhbmcuYwogIAkJICAgaW50ICppbmRleF9wKQogIHsKICAgIGludCBpOwot QEAgLTY4OTgsOCArNjkwMSw4IEBAIGZpbmRfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1l LCBzdHIKK0BAIC02OTI5LDggKzY5MzIsOCBAQCBmaW5kX3N0cnVjdF9maWVsZCAoY29uc3QgY2hh ciAqbmFtZSwgc3RyCiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9ORklFTERTICh0eXBlKTsg aSArPSAxKQogICAgICB7CkBAIC03NDgsNyArNzQ4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBjb25zdCBjaGFyICp0X2ZpZWxkX25hbWUgPSBU WVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpOwogIAogICAgICAgIGlmICh0X2ZpZWxkX25hbWUgPT0g TlVMTCkKLUBAIC02OTY5LDcgKzY5NzIsNyBAQCBudW1fdmlzaWJsZV9maWVsZHMgKHN0cnVjdCB0 eXBlICp0eXBlKQorQEAgLTcwMDAsNyArNzAwMyw3IEBAIG51bV92aXNpYmxlX2ZpZWxkcyAoc3Ry dWN0IHR5cGUgKnR5cGUpCiAgICAgU2VhcmNoZXMgcmVjdXJzaXZlbHkgdGhyb3VnaCB3cmFwcGVy IGZpZWxkcyAoZS5nLiwgJ19wYXJlbnQnKS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAq CkBAIC03NTcsNyArNzU3LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1s YW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewog ICAgaW50IGk7Ci1AQCAtNzAwMiw3ICs3MDA1LDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQg KGNoYXIgKm5hbWUsIHN0cgorQEAgLTcwMzMsNyArNzAzNiw3IEBAIGFkYV9zZWFyY2hfc3RydWN0 X2ZpZWxkIChjaGFyICpuYW1lLCBzdHIKICAgICAgICAgICAgaW50IGo7CiAgICAgICAgICAgIHN0 cnVjdCB0eXBlICpmaWVsZF90eXBlID0gYWRhX2NoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQ RSAodHlwZSwKICAJCQkJCQkJCQlpKSk7CkBAIC03NjYsNyArNzY2LDcgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAKICAgICAgICAgICAgZm9yIChqID0gMDsg aiA8IFRZUEVfTkZJRUxEUyAoZmllbGRfdHlwZSk7IGogKz0gMSkKICAgICAgICAgICAgICB7Ci1A QCAtNzAyMCw4ICs3MDIzLDggQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUs IHN0cgorQEAgLTcwNTEsOCArNzA1NCw4IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjaGFy ICpuYW1lLCBzdHIKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAgLTc3Nyw3ICs3NzcsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIAogIAogIC8qIFJldHVy biBmaWVsZCAjSU5ERVggaW4gQVJHLCB3aGVyZSB0aGUgaW5kZXggaXMgdGhhdCByZXR1cm5lZCBi eQotQEAgLTcwMzAsNyArNzAzMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9z dHJ1Y3RfZmkKK0BAIC03MDYxLDcgKzcwNjQsNyBAQCBzdGF0aWMgc3RydWN0IHZhbHVlICphZGFf aW5kZXhfc3RydWN0X2ZpCiAgICogSWYgZm91bmQsIHJldHVybiB2YWx1ZSwgZWxzZSByZXR1cm4g TlVMTC4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03ODYsNyArNzg2LDcgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAJCQlzdHJ1Y3QgdHlw ZSAqdHlwZSkKICB7CiAgICByZXR1cm4gYWRhX2luZGV4X3N0cnVjdF9maWVsZF8xICgmaW5kZXgs IGFyZywgb2Zmc2V0LCB0eXBlKTsKLUBAIC03MDQyLDcgKzcwNDUsNyBAQCBhZGFfaW5kZXhfc3Ry dWN0X2ZpZWxkIChpbnQgaW5kZXgsIHN0cnVjCitAQCAtNzA3Myw3ICs3MDc2LDcgQEAgYWRhX2lu ZGV4X3N0cnVjdF9maWVsZCAoaW50IGluZGV4LCBzdHJ1YwogICAqICpJTkRFWF9QLiAgKi8KICAK ICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc5NSw3ICs3OTUsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIAkJCSAgc3RydWN0IHR5cGUgKnR5cGUpCiAg ewogICAgaW50IGk7Ci1AQCAtNzEzMiw3ICs3MTM1LDggQEAgYWRhX3ZhbHVlX3N0cnVjdF9lbHQg KHN0cnVjdCB2YWx1ZSAqYXJnLAorQEAgLTcxNjMsNyArNzE2Niw4IEBAIGFkYV92YWx1ZV9zdHJ1 Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKmFyZywKICAgICAgdiA9IGFkYV9zZWFyY2hfc3RydWN0X2Zp ZWxkIChuYW1lLCBhcmcsIDAsIHQpOwogICAgZWxzZQogICAgICB7CkBAIC04MDUsNyArODA1LDcg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBzdHJ1 Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAgICAgICBDT1JFX0FERFIgYWRkcmVzczsKICAKLUBAIC03 NDQ5LDggKzc0NTMsOCBAQCBhZGFfY29lcmNlX3JlZiAoc3RydWN0IHZhbHVlICp2YWwwKQorQEAg LTc0ODAsOCArNzQ4NCw4IEBAIGFkYV9jb2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKnZhbDApCiAg LyogUmV0dXJuIE9GRiByb3VuZGVkIHVwd2FyZCBpZiBuZWNlc3NhcnkgdG8gYSBtdWx0aXBsZSBv ZgogICAgIEFMSUdOTUVOVCAoYSBwb3dlciBvZiAyKS4gICovCiAgCkBAIC04MTYsNyArODE2LDcg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICByZXR1 cm4gKG9mZiArIGFsaWdubWVudCAtIDEpICYgfihhbGlnbm1lbnQgLSAxKTsKICB9Ci1AQCAtNzgz MiwxMCArNzgzNiw5IEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIK K0BAIC03ODYzLDEwICs3ODY3LDkgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBl XzEgKHN0cgogICAgc3RydWN0IHZhbHVlICptYXJrID0gdmFsdWVfbWFyayAoKTsKICAgIHN0cnVj dCB2YWx1ZSAqZHZhbDsKICAgIHN0cnVjdCB0eXBlICpydHlwZTsKQEAgLTgyOSw3ICs4MjksNyBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogICAgaW50IGY7CiAg CiAgICAvKiBDb21wdXRlIHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHRoaXMgcmVjb3JkIHR5cGUg dGhhdCBhcmUgZ29pbmcKLUBAIC03OTEzLDcgKzc5MTYsNyBAQCBhZGFfdGVtcGxhdGVfdG9fZml4 ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitAQCAtNzk0NCw3ICs3OTQ3LDcgQEAgYWRhX3RlbXBsYXRl X3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgogIAkgICAgIHRoYXQgZm9sbG93IHRoaXMgb25l LiAgKi8KICAJICBpZiAoYWRhX2lzX2FsaWduZXJfdHlwZSAoZmllbGRfdHlwZSkpCiAgCSAgICB7 CkBAIC04MzgsNyArODM4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1s YW5nLmMKICAKICAJICAgICAgZmllbGRfdmFsYWRkciA9IGNvbmRfb2Zmc2V0X2hvc3QgKGZpZWxk X3ZhbGFkZHIsIGZpZWxkX29mZnNldCk7CiAgCSAgICAgIGZpZWxkX2FkZHJlc3MgPSBjb25kX29m ZnNldF90YXJnZXQgKGZpZWxkX2FkZHJlc3MsIGZpZWxkX29mZnNldCk7Ci1AQCAtODA0OSwxMSAr ODA1MiwxMSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitAQCAt ODA4MCwxMSArODA4MywxMSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAo c3RyCiAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDw9IDApCiAgICAgIHsKICAgICAgICBpZiAo VFlQRV9OQU1FIChydHlwZSkpCkBAIC04NTQsNyArODU0LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgfQogICAgZWxzZQogICAgICB7Ci1AQCAtODM5 Myw3ICs4Mzk2LDggQEAgdG9fZml4ZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLAor QEAgLTg1MDgsNyArODUxMSw4IEBAIHRvX2ZpeGVkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICp0 eXBlMCwKICAJIHR5cGUgd2FzIGEgcmVndWxhciAobm9uLXBhY2tlZCkgYXJyYXkgdHlwZS4gIEFz IGEgcmVzdWx0LCB0aGUKICAJIGJpdHNpemUgb2YgdGhlIGFycmF5IGVsZW1lbnRzIG5lZWRzIHRv IGJlIHNldCBhZ2FpbiwgYW5kIHRoZSBhcnJheQogIAkgbGVuZ3RoIG5lZWRzIHRvIGJlIHJlY29t cHV0ZWQgYmFzZWQgb24gdGhhdCBiaXRzaXplLiAgKi8KQEAgLTg2NCwxMSArODY0LDExIEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCiAgICAgICAgaW50IGVsdF9i aXRzaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlMCwgMCk7CiAgCiAgICAgICAgVFlQRV9G SUVMRF9CSVRTSVpFIChyZXN1bHQsIDApID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlMCwgMCk7 Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuaAorSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43Ljkw LjIwMTQwNjEzLm9yaWcvZ2RiL2FkYS1sYW5nLmgJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAw MDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5oCTIwMTQtMDYt MjQgMTY6MDc6MjcuMjQ1OTg2ODc1ICswMjAwCi1AQCAtMTgxLDcgKzE4MSw3IEBAIGV4dGVybiB2 b2lkIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUwOTMxODcyMiArMDEwMAor KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0 My4xNjQzMjY3NTIgKzAxMDAKK0BAIC0xNzksNyArMTc5LDcgQEAgZXh0ZXJuIHZvaWQgYWRhX3By aW50X3R5cGUgKHN0cnVjdCB0eXBlCiAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50X3R5cGVkZWYgKHN0 cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qgc3ltYm9sICpuZXdfc3ltYm9sLAogIAkJCSAgICAgICBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICAKQEAgLTg3Nyw3ICs4NzcsNyBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuaAogIAkJCSAgIHN0cnVjdCB1aV9maWxlICos IGludCwKICAJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLUBAIC0xOTYsNyArMTk2LDcgQEAgZXh0ZXJuIHZvaWQg YWRhX2VtaXRfY2hhciAoaW50LCBzdHJ1Y3QgdAorQEAgLTE5NCw3ICsxOTQsNyBAQCBleHRlcm4g dm9pZCBhZGFfZW1pdF9jaGFyIChpbnQsIHN0cnVjdCB0CiAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50 Y2hhciAoaW50LCBzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKICBleHRlcm4g dm9pZCBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICosIHN0cnVjdCB0eXBlICosIGNvbnN0 IGdkYl9ieXRlICosCkBAIC04ODYsNyArODg2LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL2FkYS1sYW5nLmgKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICopOwogIAogIHN0cnVjdCB2YWx1ZSAqYWRhX2NvbnZlcnRfYWN0dWFsIChzdHJ1Y3QgdmFsdWUg KmFjdHVhbCwKLUBAIC0yNjcsNyArMjY3LDcgQEAgZXh0ZXJuIGludCBhZGFfaXNfY29uc3RyYWlu ZWRfcGFja2VkX2FycgorQEAgLTI2NSw3ICsyNjUsNyBAQCBleHRlcm4gaW50IGFkYV9pc19jb25z dHJhaW5lZF9wYWNrZWRfYXJyCiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWRhX3ZhbHVlX3By aW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJCQkgICAgIGNvbnN0IGdk Yl9ieXRlICosCkBAIC04OTUsMTEgKzg5NSwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvYWRhLWxhbmcuaAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICph ZGFfY29lcmNlX3RvX3NpbXBsZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKLUluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9hZGEtdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43Ljkw LjIwMTQwNjEzLm9yaWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE0LTA2LTEzIDAzOjU5OjM2LjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS10eXBlcHJpbnQu YwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI0NTk4Njg3NSArMDIwMAotQEAgLTg2NSw4ICs4NjUsOCBA QCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBjb25zCistLS0gZ2RiLTcuOC41 MC4yMDE0MTIyOC5vcmlnL2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41 MDkzMTg3MjIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hZGEtdHlwZXByaW50 LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNjUzMjY3NTcgKzAxMDAKK0BAIC04ODMsOCArODgzLDgg QEAgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwgY29ucwogIAkgICAgY29uc3Qg Y2hhciAqbmFtZSA9IGFkYV90eXBlX25hbWUgKHR5cGUpOwogIAogIAkgICAgaWYgKCFhZGFfaXNf cmFuZ2VfdHlwZV9uYW1lIChuYW1lKSkKQEAgLTkxMCw3ICs5MTAsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvYWRhLXR5cGVwcmludC5jCiAgCSAgICBlbHNlCiAgCSAgICAgIHsK ICAJCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgInJhbmdlICIpOwotQEAgLTg4Nyw3ICs4ODcs OCBAQCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBjb25zCitAQCAtOTA1LDcg KzkwNSw4IEBAIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsIGNvbnMKICAJICB9 CiAgCWJyZWFrOwogICAgICAgIGNhc2UgVFlQRV9DT0RFX0ZMVDoKQEAgLTkyMCwxMSArOTIwLDEx IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtdHlwZXByaW50LmMKICAJYnJl YWs7CiAgICAgICAgY2FzZSBUWVBFX0NPREVfRU5VTToKICAJaWYgKHNob3cgPCAwKQotSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvYWRhLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43Ljkw LjIwMTQwNjEzLm9yaWcvZ2RiL2FkYS12YWxwcmludC5jCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAw MDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLXZhbHByaW50LmMJ MjAxNC0wNi0yNCAxNjowNzoyNy4yNDY5ODY4NzYgKzAyMDAKLUBAIC0zNSwxMSArMzUsMTEgQEAK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMDEt MDYgMjI6NDQ6NDEuNTEwMzE4NzI3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv YWRhLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNjUzMjY3NTcgKzAxMDAKK0BAIC0z MywxMSArMzMsMTEgQEAKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICAKICBzdGF0aWMgaW50IHBy aW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKQEAgLTkz OCw3ICs5MzgsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLXZhbHByaW50 LmMKICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKik7CiAgDAogIAotQEAg LTEzMSw3ICsxMzEsNyBAQCB2YWxfcHJpbnRfcGFja2VkX2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QK K0BAIC0xMjksNyArMTI5LDcgQEAgdmFsX3ByaW50X3BhY2tlZF9hcnJheV9lbGVtZW50cyAoc3Ry dWN0CiAgICB1bnNpZ25lZCBpbnQgdGhpbmdzX3ByaW50ZWQgPSAwOwogICAgdW5zaWduZWQgbGVu OwogICAgc3RydWN0IHR5cGUgKmVsdHR5cGUsICppbmRleF90eXBlOwpAQCAtOTQ3LDcgKzk0Nyw3 IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtdmFscHJpbnQuYwogICAgdW5z aWduZWQgbG9uZyBiaXRzaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCAwKTsKICAgIHN0 cnVjdCB2YWx1ZSAqbWFyayA9IHZhbHVlX21hcmsgKCk7CiAgICBMT05HRVNUIGxvdyA9IDA7Ci1A QCAtMjgwLDcgKzI4MCw3IEBAIGFkYV9lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlw ZSwKK0BAIC0yNzgsNyArMjc4LDcgQEAgYWRhX2VtaXRfY2hhciAoaW50IGMsIHN0cnVjdCB0eXBl ICp0eXBlLAogICAgIG9mIGEgY2hhcmFjdGVyLiAgKi8KICAKICBzdGF0aWMgaW50CkBAIC05NTYs NyArOTU2LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS12YWxwcmludC5j CiAgCSBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcikKICB7CiAgICBpZiAodHlwZV9sZW4gPT0g MSkKLUBAIC00NDIsMTEgKzQ0MiwxMSBAQCBhZGFfcHJpbnRfc2NhbGFyIChzdHJ1Y3QgdHlwZSAq dHlwZSwgTE9OCitAQCAtNDQwLDExICs0NDAsMTEgQEAgYWRhX3ByaW50X3NjYWxhciAoc3RydWN0 IHR5cGUgKnR5cGUsIExPTgogIAogIHN0YXRpYyB2b2lkCiAgcHJpbnRzdHIgKHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICplbHR0eXBlLCBjb25zdCBnZGJfYnl0ZSAqc3RyaW5n LApAQCAtOTcwLDcgKzk3MCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEt dmFscHJpbnQuYwogICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKICAgIGludCBp bl9xdW90ZXMgPSAwOwogICAgaW50IG5lZWRfY29tbWEgPSAwOwotQEAgLTQ2MSw5ICs0NjEsOSBA QCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CitAQCAtNDU5LDkgKzQ1 OSw5IEBAIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKICAgICAgewog ICAgICAgIC8qIFBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIgd2UgYXJlIGV4YW1pbmluZwogICAg ICAgICAgIHRvIHNlZSB3aGV0aGVyIGl0IGlzIHJlcGVhdGVkLiAgKi8KQEAgLTk4Miw3ICs5ODIs NyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLXZhbHByaW50LmMKICAKICAg ICAgICBRVUlUOwogIAotQEAgLTQ5NCw3ICs0OTQsOCBAQCBwcmludHN0ciAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgc3RydWN0CitAQCAtNDkyLDcgKzQ5Miw4IEBAIHByaW50c3RyIChzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKICAJICBhZGFfZW1pdF9jaGFyIChjaGFyX2F0IChzdHJp bmcsIGksIHR5cGVfbGVuLCBieXRlX29yZGVyKSwKICAJCQkgZWx0dHlwZSwgc3RyZWFtLCAnXCcn LCB0eXBlX2xlbik7CiAgCSAgZnB1dHNfZmlsdGVyZWQgKCInIiwgc3RyZWFtKTsKQEAgLTk5Miw3 ICs5OTIsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLXZhbHByaW50LmMK ICAJICBpID0gcmVwMSAtIDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0 X2NvdW50X3RocmVzaG9sZDsKICAJICBuZWVkX2NvbW1hID0gMTsKLUBAIC01MjIsNyArNTIzLDcg QEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdAorQEAgLTUyMCw3ICs1 MjEsNyBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CiAgCiAgdm9p ZAogIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5 cGUsCkBAIC0xMDAxLDcgKzEwMDEsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv YWRhLXZhbHByaW50LmMKICAJICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9l bGxpcHNlcywKICAJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlv bnMpCiAgewotQEAgLTUzMiwxMiArNTMzLDEyIEBAIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgc3QKK0BAIC01MzAsMTIgKzUzMSwxMiBAQCBhZGFfcHJpbnRzdHIgKHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIHN0CiAgCiAgc3RhdGljIGludAogIHByaW50X3ZhcmlhbnRfcGFy dCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBmaWVsZF9udW0sCkBAIC0xMDE2LDcgKzEwMTYsNyBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLXZhbHByaW50LmMKICAJCSAgICBj b25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZ3VhZ2UpCiAgewogICAgc3RydWN0IHR5cGUg KnZhcl90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBmaWVsZF9udW0pOwotQEAgLTU3Mywx MSArNTc0LDExIEBAIHByaW50X3ZhcmlhbnRfcGFydCAoc3RydWN0IHR5cGUgKnR5cGUsIGkKK0BA IC01NzEsMTEgKzU3MiwxMSBAQCBwcmludF92YXJpYW50X3BhcnQgKHN0cnVjdCB0eXBlICp0eXBl LCBpCiAgCiAgc3RhdGljIGludAogIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTAzMCw3ICsxMDMwLDcgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkgICAgY29uc3Qgc3Ry dWN0IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKQogIHsKICAgIGludCBpLCBsZW47Ci1AQCAtNjQ0 LDcgKzY0NSw3IEBAIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKnR5cGUsIGMKK0BA IC02NDIsNyArNjQzLDcgQEAgcHJpbnRfZmllbGRfdmFsdWVzIChzdHJ1Y3QgdHlwZSAqdHlwZSwg YwogIAkgICAgfQogIAkgIGVsc2UKICAJICAgIHsKQEAgLTEwMzksNyArMTAzOSw3IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtdmFscHJpbnQuYwogIAkgICAgICBpbnQgYml0 X3NpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGkpOwogIAkgICAgICBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyBvcHRzOwogIAotQEAgLTY5MCw4ICs2OTEsOCBAQCBhZGFfdmFsX3By aW50X3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNjg4LDggKzY4OSw4IEBAIGFkYV92 YWxfcHJpbnRfc3RyaW5nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICB7CiAgICBlbnVtIGJmZF9lbmRp YW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkp OwogICAgc3RydWN0IHR5cGUgKmVsdHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKQEAg LTEwNTAsNyArMTA1MCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtdmFs cHJpbnQuYwogIAogICAgLyogV2Uga25vdyB0aGF0IEVMVFRZUEUgY2Fubm90IHBvc3NpYmx5IGJl IG51bGwsIGJlY2F1c2Ugd2UgYXNzdW1lCiAgICAgICB0aGF0IHdlJ3JlIGNhbGxlZCBvbmx5IHdo ZW4gVFlQRSBpcyBhIHN0cmluZy1saWtlIHR5cGUuCi1AQCAtNzEwLDcgKzcxMSw3IEBAIGFkYV92 YWxfcHJpbnRfc3RyaW5nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC03MDgsNyArNzA5LDcgQEAg YWRhX3ZhbF9wcmludF9zdHJpbmcgKHN0cnVjdCB0eXBlICp0eXBlLAogICAgICAgZWxlbWVudHMg dXAgdG8gaXQuICAqLwogICAgaWYgKG9wdGlvbnMtPnN0b3BfcHJpbnRfYXRfbnVsbCkKICAgICAg ewpAQCAtMTA1OSw3ICsxMDU5LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Fk YS12YWxwcmludC5jCiAgCiAgICAgICAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIuICAqLwogICAg ICAgIGZvciAodGVtcF9sZW4gPSAwOwotQEAgLTEwNjksNyArMTA3MCw3IEBAIGFkYV92YWxfcHJp bnRfcmVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY28KK0BAIC0xMDczLDcgKzEwNzQsNyBAQCBhZGFf dmFsX3ByaW50X3JlZiAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCiAgCiAgc3RhdGljIHZvaWQKICBh ZGFfdmFsX3ByaW50XzEgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwKQEAgLTEwNjgsNyArMTA2OCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9h ZGEtdmFscHJpbnQuYwogIAkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAog IAkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCQkgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMTE1MCw3ICsxMTUxLDcgQEAgYWRh X3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29ucworQEAgLTExNTQsNyArMTE1NSw3 IEBAIGFkYV92YWxfcHJpbnRfMSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMKICAKICB2b2lkCiAg YWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LApAQCAtMTA3NywxMSArMTA3NywxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv YWRhLXZhbHByaW50LmMKICAJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCSAgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi9hbm5vdGF0ZS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW5u b3RhdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvYW5u b3RhdGUuYwkyMDE0LTA2LTEzIDAzOjU5OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2Fubm90YXRlLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNDY5ODY4NzYg KzAyMDAKLUBAIC01MjQsMjEgKzUyNCwyMSBAQCBhbm5vdGF0ZV9mcmFtZV9lbmQgKHZvaWQpCist LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hbm5vdGF0ZS5jCTIwMTUtMDEtMDYgMjI6 NDQ6NDEuNTEwMzE4NzI3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW5ub3Rh dGUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE2NTMyNjc1NyArMDEwMAorQEAgLTU0MiwyMSArNTQy LDIxIEBAIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCkKICB9CiAgDAogIHZvaWQKQEAgLTExMDcs MTAgKzExMDcsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Fubm90YXRlLmMK ICB9CiAgCiAgdm9pZAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Fubm90YXRlLmgK K0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hbm5vdGF0ZS5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTQtMDYtMTMgMDM6 NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYW5ub3Rh dGUuaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjI0Njk4Njg3NiArMDIwMAorLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvYW5ub3RhdGUuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUxMDMxODcy NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2Fubm90YXRlLmgJMjAxNS0wMS0w NiAyMjo0NDo0My4xNjUzMjY3NTcgKzAxMDAKIEBAIC05Miw4ICs5Miw4IEBAIGV4dGVybiB2b2lk IGFubm90YXRlX2ZyYW1lX3NvdXJjZV9lbmQgKHYKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFt ZV93aGVyZSAodm9pZCk7CiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVfZW5kICh2b2lkKTsK QEAgLTExMjIsMTEgKzExMjIsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Fu bm90YXRlLmgKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHRfcmVwX2VuZCAodm9pZCk7CiAgZXh0 ZXJuIHZvaWQgYW5ub3RhdGVfZWx0ICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9hcnJh eV9zZWN0aW9uX2VuZCAodm9pZCk7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYXJt LWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXJtLWxpbnV4LW5h dC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9hcm0tbGlu dXgtbmF0LmMJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNDY5 ODY4NzYgKzAyMDAKLUBAIC0xMTg3LDcgKzExODcsNyBAQCBhcm1fbGludXhfcmVtb3ZlX2h3X2Jy ZWFrcG9pbnQgKHN0cnVjdCB0CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hcm0t bGludXgtbmF0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MTEzMTg3MzIgKzAxMDAKKysrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4x NjYzMjY3NjIgKzAxMDAKK0BAIC0xMTg2LDcgKzExODYsNyBAQCBhcm1fbGludXhfcmVtb3ZlX2h3 X2JyZWFrcG9pbnQgKHN0cnVjdCB0CiAgICAgQUREUj8gICovCiAgc3RhdGljIGludAogIGFybV9s aW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxm LApAQCAtMTEzNSwxMSArMTEzNSwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv YXJtLWxpbnV4LW5hdC5jCiAgewogICAgY29uc3Qgc3RydWN0IGFybV9saW51eF9od2JwX2NhcCAq Y2FwID0gYXJtX2xpbnV4X2dldF9od2JwX2NhcCAoKTsKICAgIENPUkVfQUREUiBtYXhfd3BfbGVu Z3RoLCBhbGlnbmVkX2FkZHI7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYXgtZ2Ri LmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9heC1nZGIuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvYXgtZ2RiLmMJMjAxNC0wNi0xMyAwMzo1 OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9heC1nZGIu YwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI0Nzk4Njg3NyArMDIwMAotQEAgLTgzLDEyICs4MywxMiBA QCBzdGF0aWMgdm9pZCBnZW5fdHJhY2VkX3BvcCAoc3RydWN0IGdkYmFyCistLS0gZ2RiLTcuOC41 MC4yMDE0MTIyOC5vcmlnL2dkYi9heC1nZGIuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUxMjMxODcz NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F4LWdkYi5jCTIwMTUtMDEtMDYg MjI6NDQ6NDMuMTY2MzI2NzYyICswMTAwCitAQCAtODIsMTIgKzgyLDEyIEBAIHN0YXRpYyB2b2lk IGdlbl90cmFjZWRfcG9wIChzdHJ1Y3QgZ2RiYXIKICBzdGF0aWMgdm9pZCBnZW5fc2lnbl9leHRl bmQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwogIHN0YXRpYyB2b2lkIGdl bl9leHRlbmQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwogIHN0YXRpYyB2 b2lkIGdlbl9mZXRjaCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CkBAIC0x MTU0LDcgKzExNTQsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYXgtZ2RiLmMK ICBzdGF0aWMgdm9pZCBnZW5fc3ltX29mZnNldCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0 IHN5bWJvbCAqKTsKICBzdGF0aWMgdm9pZCBnZW5fdmFyX3JlZiAoc3RydWN0IGdkYmFyY2ggKiwg c3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwgc3Ry dWN0IHN5bWJvbCAqdmFyKTsKLUBAIC0xMzYsMTUgKzEzNiwxNiBAQCBzdGF0aWMgdm9pZCBnZW5f ZGVyZWYgKHN0cnVjdCBhZ2VudF9leHByCitAQCAtMTM1LDE1ICsxMzUsMTYgQEAgc3RhdGljIHZv aWQgZ2VuX2RlcmVmIChzdHJ1Y3QgYWdlbnRfZXhwcgogIHN0YXRpYyB2b2lkIGdlbl9hZGRyZXNz X29mIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgYXhzX3ZhbHVlICopOwogIHN0YXRpYyB2 b2lkIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIHN0cnVjdCBhZ2Vu dF9leHByICpheCwKICAJCQkgICAgICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKQEAgLTExNzQs NyArMTE3NCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9heC1nZGIuYwogIAkJ CQkgICAgIHN0cnVjdCB0eXBlICp0eXBlKTsKICBzdGF0aWMgdm9pZCBnZW5fc3RydWN0X3JlZiAo c3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSAgICBz dHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKLUBAIC01MzksNyArNTQwLDcgQEAgZ2VuX2ZldGNoIChz dHJ1Y3QgYWdlbnRfZXhwciAqYXgsIHN0cnVjdAorQEAgLTUzOCw3ICs1MzksNyBAQCBnZW5fZmV0 Y2ggKHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0CiAgICAgcmlnaHQgc2hpZnQgaXQgYnkg LURJU1RBTkNFIGJpdHMgaWYgRElTVEFOQ0UgPCAwLiAgVGhpcyBnZW5lcmF0ZXMKICAgICB1bnNp Z25lZCAobG9naWNhbCkgcmlnaHQgc2hpZnRzLiAgKi8KICBzdGF0aWMgdm9pZApAQCAtMTE4Myw3 ICsxMTgzLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2F4LWdkYi5jCiAgewog ICAgaWYgKGRpc3RhbmNlID4gMCkKICAgICAgewotQEAgLTU5Myw3ICs1OTQsNyBAQCBnZW5fZnJh bWVfbG9jYWxzX2FkZHJlc3MgKHN0cnVjdCBnZGJhcmNoCitAQCAtNTkyLDcgKzU5Myw3IEBAIGdl bl9mcmFtZV9sb2NhbHNfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2gKICAgICBwcm9ncmFtbWluZyBp biBNTCwgaXQgd291bGQgYmUgY2xlYXJlciB3aHkgdGhlc2UgYXJlIHRoZSBzYW1lCiAgICAgdGhp bmcuICAqLwogIHN0YXRpYyB2b2lkCkBAIC0xMTkyLDcgKzExOTIsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJdCB3b3VsZCBzdWZmaWNlIHRv IHNpbXBseSBwdXNoIHRoZSBvZmZzZXQgYW5kIGFkZCBpdCwgYnV0IHRoaXMKICAgICAgIG1ha2Vz IGl0IGVhc2llciB0byByZWFkIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBvZmZzZXRzIGluIHRoZQot QEAgLTEyNDksNyArMTI1MCw3IEBAIGdlbl9hZGRyZXNzX29mIChzdHJ1Y3QgYWdlbnRfZXhwciAq YXgsIHMKK0BAIC0xMjQ4LDcgKzEyNDksNyBAQCBnZW5fYWRkcmVzc19vZiAoc3RydWN0IGFnZW50 X2V4cHIgKmF4LCBzCiAgc3RhdGljIHZvaWQKICBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkgIHN0cnVjdCBheHNfdmFs dWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTEyMDEsNyArMTIwMSw3IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9heC1nZGIuYwogIHsKICAgIC8qIE5vdGUgdGhhdCBv cHNbaV0gZmV0Y2hlcyA4IDw8IGkgYml0cy4gICovCiAgICBzdGF0aWMgZW51bSBhZ2VudF9vcCBv cHNbXQotQEAgLTEyODQsMTMgKzEyODUsMTMgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4 cHJlc3Npb24gKmV4cAorQEAgLTEyODMsMTMgKzEyODQsMTMgQEAgZ2VuX2JpdGZpZWxkX3JlZiAo c3RydWN0IGV4cHJlc3Npb24gKmV4cAogIAogICAgLyogVGhlIGZpcnN0IGFuZCBvbmUtYWZ0ZXIt bGFzdCBiaXRzIGluIHRoZSBmaWVsZCwgYnV0IHJvdW5kZWQgZG93bgogICAgICAgYW5kIHVwIHRv IGJ5dGUgYm91bmRhcmllcy4gICovCkBAIC0xMjIwLDcgKzEyMjAsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvYXgtZ2RiLmMKICAKICAgIC8qIFRoZSBpbmRleCBpbiBvcHMgb2Yg dGhlIG9wY29kZSB3ZSdyZSBjb25zaWRlcmluZy4gICovCiAgICBpbnQgb3A7Ci1AQCAtMTQwOSw3 ICsxNDEwLDcgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cAorQEAg LTE0MDgsNyArMTQwOSw3IEBAIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVjdCBleHByZXNzaW9uICpl eHAKICBzdGF0aWMgdm9pZAogIGdlbl9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCBleHByZXNzaW9u ICpleHAsCiAgCQkgICAgIHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0IGF4c192YWx1ZSAq dmFsdWUsCkBAIC0xMjI5LDcgKzEyMjksNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJcyB0aGlzIGEgYml0ZmllbGQ/ICAqLwogICAgaWYgKFRZ UEVfRklFTERfUEFDS0VEICh0eXBlLCBmaWVsZG5vKSkKLUBAIC0xNDM0LDcgKzE0MzUsNyBAQCBn ZW5fcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqCitAQCAtMTQzMyw3ICsxNDM0 LDcgQEAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IGV4cHJlc3Npb24gKgogIHN0YXRpYyBp bnQKICBnZW5fc3RydWN0X3JlZl9yZWN1cnNpdmUgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIHN0 cnVjdCBhZ2VudF9leHByICpheCwKICAJCQkgIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLApAQCAt MTIzOCwxMSArMTIzOCwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYXgtZ2Ri LmMKICB7CiAgICBpbnQgaSwgcnNsdDsKICAgIGludCBuYmFzZXMgPSBUWVBFX05fQkFTRUNMQVNT RVMgKHR5cGUpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2F4LWdlbmVyYWwuYwor SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F4LWdlbmVyYWwuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTQtMDYtMTMg MDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYXgt Z2VuZXJhbC5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjQ3OTg2ODc3ICswMjAwCi1AQCAtMTk1LDcg KzE5NSw3IEBAIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRfZXhwciAqeCwgaW50IG4KKy0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2F4LWdlbmVyYWwuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjUxMjMxODczNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F4LWdlbmVy YWwuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE2NzMyNjc2NyArMDEwMAorQEAgLTE5Myw3ICsxOTMs NyBAQCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKngsIGludCBuCiAgCiAgLyogQXBw ZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMu ICAqLwogIHZvaWQKQEAgLTEyNTEsMTAgKzEyNTEsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2F4LWdlbmVyYWwuYwogIHsKICAgIC8qIE4gbXVzdCBmaXQgaW4gYSBieXRlLiAg Ki8KICAgIGlmIChuIDwgMCB8fCBuID4gMjU1KQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2F4LmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9heC5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9heC5oCTIwMTQtMDYtMTMgMDM6NTk6 MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYXguaAkyMDE0 LTA2LTI0IDE2OjA3OjI3LjI0Nzk4Njg3NyArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvYXguaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUxMjMxODczNyArMDEwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2F4LmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xNjczMjY3Njcg KzAxMDAKIEBAIC0yMDcsNyArMjA3LDcgQEAgZXh0ZXJuIHZvaWQgYXhfZXh0IChzdHJ1Y3QgYWdl bnRfZXhwciAqRQogIGV4dGVybiB2b2lkIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRfZXhwciAq RVhQUiwgaW50IE4pOwogIApAQCAtMTI2NCwxMSArMTI2NCwyMyBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvYXguaAogIAogIC8qIEFwcGVuZCBhIGdvdG8gb3AgdG8gRVhQUi4gIE9Q IGlzIHRoZSBhY3R1YWwgb3AgKG11c3QgYmUgYW9wX2dvdG8gb3IKICAgICBhb3BfaWZfZ290byku ICBXZSBhc3N1bWUgd2UgZG9uJ3Qga25vdyB0aGUgdGFyZ2V0IG9mZnNldCB5ZXQsCi1JbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYnJlYWtwb2ludC5jCitJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvYnJlYWtwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0 MDYxMy5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4wNzA5ODY2ODEg KzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9icmVha3BvaW50LmMJMjAxNC0wNi0y NCAxNjowNzoyNy4yNDk5ODY4NzkgKzAyMDAKLUBAIC02OTMwLDcgKzY5MzAsNyBAQCBicmVha3Bv aW50X2FkZHJlc3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNzCistLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MTYzMTg3NTYgKzAx MDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9icmVha3BvaW50LmMJMjAxNS0wMS0wNiAy Mjo0NDo0My4xNzAzMjY3ODEgKzAxMDAKK0BAIC0yMTkxLDkgKzIxOTEsOSBAQCBzaG91bGRfYmVf aW5zZXJ0ZWQgKHN0cnVjdCBicF9sb2NhdGlvbiAqCisgCXsKKyAJICBmcHJpbnRmX3VuZmlsdGVy ZWQgKGdkYl9zdGRsb2csCisgCQkJICAgICAgImluZnJ1bjogc3RlcHBpbmcgcGFzdCBub24tc3Rl cHBhYmxlIHdhdGNocG9pbnQuICIKKy0JCQkgICAgICAic2tpcHBpbmcgd2F0Y2hwb2ludCBhdCAl czolZFxuIiwKKysJCQkgICAgICAic2tpcHBpbmcgd2F0Y2hwb2ludCBhdCAlczolc1xuIiwKKyAJ CQkgICAgICBwYWRkcmVzcyAoYmwtPmdkYmFyY2gsIGJsLT5hZGRyZXNzKSwKKy0JCQkgICAgICBi bC0+bGVuZ3RoKTsKKysJCQkgICAgICBwbG9uZ2VzdCAoYmwtPmxlbmd0aCkpOworIAl9CisgICAg ICAgcmV0dXJuIDA7CisgICAgIH0KK0BAIC02OTQzLDcgKzY5NDMsNyBAQCBicmVha3BvaW50X2Fk ZHJlc3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNzCiAgCiAgc3RhdGljIGludAogIGJyZWFrcG9pbnRf YWRkcmVzc19tYXRjaF9yYW5nZSAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZTEsIENPUkVf QUREUiBhZGRyMSwKQEAgLTEyNzcsNyArMTI4OSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9icmVha3BvaW50LmMKICAJCQkJQ09SRV9BRERSIGFkZHIyKQogIHsKICAgIHJldHVy biAoKGdkYmFyY2hfaGFzX2dsb2JhbF9icmVha3BvaW50cyAodGFyZ2V0X2dkYmFyY2ggKCkpCi1A QCAtMTE1NDIsNyArMTE1NDIsNyBAQCBjYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQgKHN0cnVj dCB2YWx1CitAQCAtMTE2NjcsNyArMTE2NjcsNyBAQCBjYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9p bnQgKHN0cnVjdCB2YWx1CiAgCQkgICAgICAmJiBUWVBFX0NPREUgKHZ0eXBlKSAhPSBUWVBFX0NP REVfQVJSQVkpKQogIAkJewogIAkJICBDT1JFX0FERFIgdmFkZHIgPSB2YWx1ZV9hZGRyZXNzICh2 KTsKQEAgLTEyODYsMTEgKzEyOTgsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2JyZWFrcG9pbnQuYwogIAkJICBpbnQgbnVtX3JlZ3M7CiAgCiAgCQkgIGxlbiA9ICh0YXJnZXRf ZXhhY3Rfd2F0Y2hwb2ludHMKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9icmVha3Bv aW50LmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9icmVha3BvaW50LmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE0 LTA2LTI0IDE2OjA3OjI3LjAzNjk4NjY0MyArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2JyZWFrcG9pbnQuaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjI1MDk4Njg4MSArMDIwMAotQEAg LTI0NCw3ICsyNDQsNyBAQCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8KKy0tLSBnZGItNy44LjUwLjIw MTQxMjI4Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUxNzMxODc2 MSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTAx LTA2IDIyOjQ0OjQzLjE3MDMyNjc4MSArMDEwMAorQEAgLTIzNiw3ICsyMzYsNyBAQCBzdHJ1Y3Qg YnBfdGFyZ2V0X2luZm8KICAKICAgIC8qIElmIHRoaXMgaXMgYSByYW5nZWQgYnJlYWtwb2ludCwg dGhlbiB0aGlzIGZpZWxkIGNvbnRhaW5zIHRoZQogICAgICAgbGVuZ3RoIG9mIHRoZSByYW5nZSB0 aGF0IHdpbGwgYmUgd2F0Y2hlZCBmb3IgZXhlY3V0aW9uLiAgKi8KQEAgLTEyOTksNyArMTMxMSw3 IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9icmVha3BvaW50LmgKICAKICAgIC8q IElmIHRoZSBicmVha3BvaW50IGxpdmVzIGluIG1lbW9yeSBhbmQgcmVhZGluZyB0aGF0IG1lbW9y eSB3b3VsZAogICAgICAgZ2l2ZSBiYWNrIHRoZSBicmVha3BvaW50LCBpbnN0ZWFkIG9mIHRoZSBv cmlnaW5hbCBjb250ZW50cywgdGhlbgotQEAgLTQxMyw3ICs0MTMsNyBAQCBzdHJ1Y3QgYnBfbG9j YXRpb24KK0BAIC00MTIsNyArNDEyLDcgQEAgc3RydWN0IGJwX2xvY2F0aW9uCiAgICAvKiBGb3Ig aGFyZHdhcmUgd2F0Y2hwb2ludHMsIHRoZSBzaXplIG9mIHRoZSBtZW1vcnkgcmVnaW9uIGJlaW5n CiAgICAgICB3YXRjaGVkLiAgRm9yIGhhcmR3YXJlIHJhbmdlZCBicmVha3BvaW50cywgdGhlIHNp emUgb2YgdGhlCiAgICAgICBicmVha3BvaW50IHJhbmdlLiAgKi8KQEAgLTEzMDgsMTEgKzEzMjAs MTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2JyZWFrcG9pbnQuaAogIAogICAg LyogVHlwZSBvZiBoYXJkd2FyZSB3YXRjaHBvaW50LiAgKi8KICAgIGVudW0gdGFyZ2V0X2h3X2Jw X3R5cGUgd2F0Y2hwb2ludF90eXBlOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Mt bGFuZy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy1sYW5nLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2MtbGFuZy5jCTIwMTQtMDYtMTMg MDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYy1s YW5nLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTA5ODY4ODEgKzAyMDAKLUBAIC0xOTAsNyArMTkw LDcgQEAgY19wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgcworLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYy1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MTgz MTg3NjYgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jLWxhbmcuYwkyMDE1LTAx LTA2IDIyOjQ0OjQzLjE3MDMyNjc4MSArMDEwMAorQEAgLTE4Nyw3ICsxODcsNyBAQCBjX3ByaW50 Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCiAgCiAgdm9pZAogIGNfcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTEzMjEsNyAr MTMzMyw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9jLWxhbmcuYwogIAkgICAg Y29uc3QgY2hhciAqdXNlcl9lbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotQEAgLTY3OSw3ICs2 NzksNyBAQCBldmFsdWF0ZV9zdWJleHBfYyAoc3RydWN0IHR5cGUgKmV4cGVjdF90CitAQCAtNjc2 LDcgKzY3Niw3IEBAIGV2YWx1YXRlX3N1YmV4cF9jIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3QKICAJ ICB9CiAgCWVsc2UKICAJICB7CkBAIC0xMzMwLDcgKzEzNDIsNyBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvYy1sYW5nLmMKICAKICAJICAgIC8qIFdyaXRlIHRoZSB0ZXJtaW5hdGlu ZyBjaGFyYWN0ZXIuICAqLwogIAkgICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTEVOR1RIICh0eXBl KTsgKytpKQotQEAgLTY4OCw3ICs2ODgsNyBAQCBldmFsdWF0ZV9zdWJleHBfYyAoc3RydWN0IHR5 cGUgKmV4cGVjdF90CitAQCAtNjg1LDcgKzY4NSw3IEBAIGV2YWx1YXRlX3N1YmV4cF9jIChzdHJ1 Y3QgdHlwZSAqZXhwZWN0X3QKICAJICAgIGlmIChzYXRpc2Z5X2V4cGVjdGVkKQogIAkgICAgICB7 CiAgCQlMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKQEAgLTEzMzksMTAgKzEzNTEsMTAg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2MtbGFuZy5jCiAgCiAgCQlpZiAoZ2V0 X2Rpc2NyZXRlX2JvdW5kcyAoVFlQRV9JTkRFWF9UWVBFIChleHBlY3RfdHlwZSksCiAgCQkJCQkg Jmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9jLWxhbmcuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2MtbGFuZy5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9jLWxhbmcuaAkyMDE0 LTA2LTEzIDAzOjU5OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2MtbGFuZy5oCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjUwOTg2ODgxICswMjAwCistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jLWxhbmcuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUx ODMxODc2NiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2MtbGFuZy5oCTIwMTUt MDEtMDYgMjI6NDQ6NDMuMTcxMzI2Nzg2ICswMTAwCiBAQCAtNzQsNyArNzQsNyBAQCBleHRlcm4g dm9pZCBjX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlCiAgCQkJICAgICBzdHJ1Y3QgdWlfZmls ZSAqKTsKICAKQEAgLTEzNzgsMTEgKzEzOTAsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL2MtbGFuZy5oCiAgCQkJCQlzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJCQljb25z dCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICosCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYy12YWxwcmludC5jCitJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNC0wNi0yNCAxNjowNzoy Ni4yODU5ODU4MTAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9jLXZhbHByaW50 LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTA5ODY4ODEgKzAyMDAKLUBAIC0xMzMsNyArMTMzLDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZQorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvYy12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTE4 MzE4NzY2ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy12YWxwcmludC5jCTIw MTUtMDEtMDYgMjI6NDQ6NDMuMTcxMzI2Nzg2ICswMTAwCitAQCAtMTMyLDcgKzEzMiw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKICAKICB2b2lkCiAgY192YWxf cHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTEz OTEsNyArMTQwMyw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9jLXZhbHByaW50 LmMKICAJICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICBj b25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkgICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQotQEAgLTE0NCw3ICsxNDQsNyBAQCBjX3ZhbF9w cmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkCitAQCAtMTQzLDcgKzE0Myw3IEBAIGNf dmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2QKICAgIHVuc2lnbmVkIGxlbjsK ICAgIHN0cnVjdCB0eXBlICplbHR0eXBlLCAqdW5yZXNvbHZlZF9lbHR0eXBlOwogICAgc3RydWN0 IHR5cGUgKnVucmVzb2x2ZWRfdHlwZSA9IHR5cGU7CkBAIC0xNDAwLDcgKzE0MTIsNyBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYy12YWxwcmludC5jCiAgICBDT1JFX0FERFIgYWRk cjsKICAKICAgIENIRUNLX1RZUEVERUYgKHR5cGUpOwotQEAgLTM4MCw5ICszODAsOSBAQCBjX3Zh bF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkCitAQCAtMzc5LDkgKzM3OSw5IEBA IGNfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2QKICAJICAvKiBQcmludCB2 dGFibGUgZW50cnkgLSB3ZSBvbmx5IGdldCBoZXJlIGlmIE5PVCB1c2luZwogIAkgICAgIC1mdnRh YmxlX3RodW5rcy4gIChPdGhlcndpc2UsIGxvb2sgdW5kZXIKICAJICAgICBUWVBFX0NPREVfUFRS LikgICovCkBAIC0xNDEzLDcgKzE0MjUsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvYy12YWxwcmludC5jCiAgCSAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBUWVBFX0ZJRUxE X1RZUEUgKHR5cGUsCiAgCQkJCQkJICAgICBWVEJMX0ZOQUREUl9PRkZTRVQpOwogIAkgIENPUkVf QUREUiBhZGRyCi1AQCAtNDYxLDcgKzQ2MSw4IEBAIGNfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1 ZSAqdmFsLCBzdHJ1Y3QKK0BAIC00NjAsNyArNDYwLDggQEAgY192YWx1ZV9wcmludCAoc3RydWN0 IHZhbHVlICp2YWwsIHN0cnVjdAogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUsICpyZWFsX3R5cGUsICp2 YWxfdHlwZTsKQEAgLTE0MjMsMTEgKzE0MzUsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL2MtdmFscHJpbnQuYwogICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0cyA9 ICpvcHRpb25zOwogIAogICAgb3B0cy5kZXJlZl9yZWYgPSAxOwotSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2NwLWFiaS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY3At YWJpLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2NwLWFi aS5jCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvY3AtYWJpLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTA5ODY4ODEgKzAyMDAK LUBAIC02OCwxMyArNjgsMTMgQEAgaXNfb3BlcmF0b3JfbmFtZSAoY29uc3QgY2hhciAqbmFtZSkK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NwLWFiaS5jCTIwMTUtMDEtMDYgMjI6 NDQ6NDEuNTE4MzE4NzY2ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY3AtYWJp LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzEzMjY3ODYgKzAxMDAKK0BAIC02NCwxMyArNjQsMTMg QEAgaXNfb3BlcmF0b3JfbmFtZSAoY29uc3QgY2hhciAqbmFtZSkKICAgIHJldHVybiAoKmN1cnJl bnRfY3BfYWJpLmlzX29wZXJhdG9yX25hbWUpIChuYW1lKTsKICB9CiAgCkBAIC0xNDQ0LDcgKzE0 NTYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtYWJpLmMKICAKICAgIGdk Yl9hc3NlcnQgKGN1cnJlbnRfY3BfYWJpLmJhc2VjbGFzc19vZmZzZXQgIT0gTlVMTCk7CiAgCi1A QCAtOTgsNyArOTgsNyBAQCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50 CitAQCAtOTQsNyArOTQsNyBAQCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwg aW50CiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKiphcmcxcCwKICAJCQlzdHJ1Y3QgZm5fZmllbGQgKmYsIGludCBqLApAQCAtMTQ1Myw3ICsx NDY1LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2NwLWFiaS5jCiAgewogICAg aWYgKChjdXJyZW50X2NwX2FiaS52aXJ0dWFsX2ZuX2ZpZWxkKSA9PSBOVUxMKQogICAgICByZXR1 cm4gTlVMTDsKLUBAIC0xMDgsNyArMTA4LDcgQEAgdmFsdWVfdmlydHVhbF9mbl9maWVsZCAoc3Ry dWN0IHZhbHVlICoqYQorQEAgLTEwNCw3ICsxMDQsNyBAQCB2YWx1ZV92aXJ0dWFsX2ZuX2ZpZWxk IChzdHJ1Y3QgdmFsdWUgKiphCiAgCiAgc3RydWN0IHR5cGUgKgogIHZhbHVlX3J0dGlfdHlwZSAo c3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1bGwsCkBAIC0xNDYyLDEwICsxNDc0LDEwIEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9jcC1hYmkuYwogIHsKICAgIHN0cnVjdCB0eXBlICpy ZXQgPSBOVUxMOwogICAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24gZTsKLUluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9jcC1hYmkuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2NwLWFiaS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmln L2dkYi9jcC1hYmkuaAkyMDE0LTA2LTEzIDAzOjU5OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2NwLWFiaS5oCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjUxOTg2 ODgyICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jcC1hYmkuaAkyMDE1 LTAxLTA2IDIyOjQ0OjQxLjUxOTMxODc3MCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2NwLWFiaS5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTcxMzI2Nzg2ICswMTAwCiBAQCAtMTA4 LDcgKzEwOCw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3ZpcnR1YWxfZm5fZmkKICAJ CQkJCSAgICAgc3RydWN0IGZuX2ZpZWxkICpmLAogIAkJCQkJICAgICBpbnQgaiwKQEAgLTE1MjAs MTEgKzE1MzIsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2NwLWFiaS5oCiAg ICB2b2lkICgqcHJpbnRfbWV0aG9kX3B0cikgKGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywKICAJ CQkgICAgc3RydWN0IHR5cGUgKnR5cGUsCiAgCQkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0p OwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2NwLXZhbHByaW50LmMKK0luZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTQtMDYtMTMgMDM6NTk6 MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtdmFscHJp bnQuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI1MTk4Njg4MiArMDIwMAotQEAgLTgyLDcgKzgyLDcg QEAgc3RhdGljIHZvaWQgY3BfcHJpbnRfc3RhdGljX2ZpZWxkIChzdHJ1YworLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvY3AtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUx OTMxODc3MCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NwLXZhbHByaW50LmMJ MjAxNS0wMS0wNiAyMjo0NDo0My4xNzIzMjY3OTEgKzAxMDAKK0BAIC04MCw3ICs4MCw3IEBAIHN0 YXRpYyB2b2lkIGNwX3ByaW50X3N0YXRpY19maWVsZCAoc3RydWMKICAJCQkJICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAgCiAgc3RhdGljIHZvaWQgY3BfcHJpbnRfdmFs dWUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCkBAIC0xNTMzLDcgKzE1NDUsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtdmFscHJpbnQuYwogIAkJCSAgICBDT1JF X0FERFIsIHN0cnVjdCB1aV9maWxlICosCiAgCQkJICAgIGludCwgY29uc3Qgc3RydWN0IHZhbHVl ICosCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICosCi1AQCAtMTU2 LDcgKzE1Niw3IEBAIGNwX2lzX3Z0YmxfbWVtYmVyIChzdHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC0x NTQsNyArMTU0LDcgQEAgY3BfaXNfdnRibF9tZW1iZXIgKHN0cnVjdCB0eXBlICp0eXBlKQogIAog IHZvaWQKICBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg dHlwZSAqcmVhbF90eXBlLApAQCAtMTU0Miw3ICsxNTU0LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2NwLXZhbHByaW50LmMKICAJCSAgICAgICBDT1JFX0FERFIgYWRkcmVzcywg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCSAgICAgICBpbnQgcmVjdXJzZSwgY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwsCiAgCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMsCi1AQCAtMzM5LDcgKzMzOSw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAo c3RydWN0IHR5cGUgKnR5cGUKK0BAIC0zMzEsNyArMzMxLDcgQEAgY3BfcHJpbnRfdmFsdWVfZmll bGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQogIAkJfQogIAkgICAgICBlbHNlIGlmIChpID09IHZwdHJf ZmllbGRubyAmJiB0eXBlID09IHZwdHJfYmFzZXR5cGUpCiAgCQl7CkBAIC0xNTUxLDcgKzE1NjMs NyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtdmFscHJpbnQuYwogIAkJICBz dHJ1Y3QgdHlwZSAqaV90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKTsKICAKICAJCSAg aWYgKHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJlYW0sIGlfdHlwZSwgaV9vZmZzZXQsIHZh bCkpCi1AQCAtNDIyLDcgKzQyMiw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5 cGUgKnR5cGUKK0BAIC00MTQsNyArNDE0LDcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1 Y3QgdHlwZSAqdHlwZQogIAogIHZvaWQKICBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3Ry dWN0IHR5cGUgKnR5cGUsCkBAIC0xNTYwLDggKzE1NzIsOCBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvY3AtdmFscHJpbnQuYwogIAkJCSAgICBDT1JFX0FERFIgYWRkcmVzcywKICAJ CQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJICAgIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTQzOCw3ICs0MzgsOCBAQCBjcF9wcmludF92YWx1ZV9m aWVsZHNfcnR0aSAoc3RydWN0IHR5cGUKLSAJCQlUQVJHRVRfQ0hBUl9CSVQgKiBUWVBFX0xFTkdU SCAodHlwZSkpKQorQEAgLTQzMSw3ICs0MzEsOCBAQCBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0 aSAoc3RydWN0IHR5cGUKKyAJCQkJICAgICBUQVJHRVRfQ0hBUl9CSVQgKiBUWVBFX0xFTkdUSCAo dHlwZSkpKQogICAgICB7CiAgICAgICAgc3RydWN0IHZhbHVlICp2YWx1ZTsKIC0gICAgICBpbnQg ZnVsbCwgdG9wLCB1c2luZ19lbmM7CkBAIC0xNTcwLDcgKzE1ODIsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvY3AtdmFscHJpbnQuYwogIAogICAgICAgIC8qIFVnaCwgd2UgaGF2 ZSB0byBjb252ZXJ0IGJhY2sgdG8gYSB2YWx1ZSBoZXJlLiAgKi8KICAgICAgICB2YWx1ZSA9IHZh bHVlX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHR5cGUsIHZhbGFkZHIgKyBvZmZzZXQsCi1A QCAtNDYzLDcgKzQ2NCw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChzdHJ1Y3QgdHlw ZQorQEAgLTQ1Niw3ICs0NTcsNyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0 IHR5cGUKICAKICBzdGF0aWMgdm9pZAogIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgc3RydWN0IHR5cGUgKnJlYWxfdHlwZSwKQEAgLTE1NzksNyArMTU5MSw3IEBAIEluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9jcC12YWxwcmludC5jCiAgCQlDT1JFX0FERFIgYWRkcmVz cywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCWludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCwKICAJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25z LAotQEAgLTQ3Myw3ICs0NzQsNyBAQCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUs IHN0cnVjCitAQCAtNDY2LDcgKzQ2Nyw3IEBAIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWMKICAgICAgPSAoc3RydWN0IHR5cGUgKiopIG9ic3RhY2tfbmV4dF9mcmVlICgm ZG9udF9wcmludF92Yl9vYnN0YWNrKTsKICAgIHN0cnVjdCBvYnN0YWNrIHRtcF9vYnN0YWNrID0g ZG9udF9wcmludF92Yl9vYnN0YWNrOwogICAgaW50IGksIG5fYmFzZWNsYXNzZXMgPSBUWVBFX05f QkFTRUNMQVNTRVMgKHR5cGUpOwpAQCAtMTU4OCw3ICsxNjAwLDcgQEAgSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2NwLXZhbHByaW50LmMKICAgIHN0cnVjdCB0eXBlICp0aGlzdHlwZTsK ICAKICAgIGlmIChkb250X3ByaW50X3ZiID09IDApCi1AQCAtNDg3LDcgKzQ4OCw3IEBAIGNwX3By aW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWMKK0BAIC00ODAsNyArNDgxLDcgQEAg Y3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1YwogIAogICAgZm9yIChpID0g MDsgaSA8IG5fYmFzZWNsYXNzZXM7IGkrKykKICAgICAgewpAQCAtMTU5NywxMSArMTYwOSwxMSBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtdmFscHJpbnQuYwogICAgICAgIGlu dCBza2lwOwogICAgICAgIHN0cnVjdCB0eXBlICpiYXNlY2xhc3MgPSBjaGVja190eXBlZGVmIChU WVBFX0JBU0VDTEFTUyAodHlwZSwgaSkpOwogICAgICAgIGNvbnN0IGNoYXIgKmJhc2VuYW1lID0g VFlQRV9OQU1FIChiYXNlY2xhc3MpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Qt bGFuZy5oCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZC1sYW5nLmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTQtMDYtMTMg MDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZC1s YW5nLmgJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTE5ODY4ODIgKzAyMDAKLUBAIC02OSw3ICs2OSw3 IEBAIGV4dGVybiBjb25zdCBjaGFyICpkX3BhcnNlX3N5bWJvbCAoc3RydWMKKy0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTE5MzE4 NzcwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZC1sYW5nLmgJMjAxNS0wMS0w NiAyMjo0NDo0My4xNzIzMjY3OTEgKzAxMDAKK0BAIC03MSw3ICs3MSw3IEBAIGV4dGVybiBjb25z dCBzdHJ1Y3QgYnVpbHRpbl9kX3R5cGUgKmJ1aWwKICAvKiBEZWZpbmVkIGluIGQtdmFscHJpbnQu YyAgKi8KICAKICBleHRlcm4gdm9pZCBkX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNv bnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTYxMCwxMCArMTYyMiwxMCBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvZC1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvZC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmln L2dkYi9kLXZhbHByaW50LmMJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsr KyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9kLXZhbHByaW50LmMJMjAxNC0wNi0yNCAxNjowNzoy Ny4yNTE5ODY4ODIgKzAyMDAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2QtdmFs cHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUxOTMxODc3MCArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2QtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3MjMyNjc5 MSArMDEwMAogQEAgLTI5LDcgKzI5LDcgQEAKICAKICBzdGF0aWMgaW50CkBAIC0xNjIzLDcgKzE2 MzUsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZC12YWxwcmludC5jCiAgCQkg ICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICAgY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwsCiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpCi1AQCAtNzIsOSArNzIsOSBAQCBkeW5hbWljX2FycmF5X3R5cGUgKHN0cnVjdCB0 eXBlICp0eXBlLCBjCitAQCAtNzMsOSArNzMsOSBAQCBkeW5hbWljX2FycmF5X3R5cGUgKHN0cnVj dCB0eXBlICp0eXBlLCBjCiAgCiAgLyogSW1wbGVtZW50cyB0aGUgbGFfdmFsX3ByaW50IHJvdXRp bmUgZm9yIGxhbmd1YWdlIEQuICAqLwogIHZvaWQKQEAgLTE2MzYsMTEgKzE2NDgsMTEgQEAgSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2QtdmFscHJpbnQuYwogICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBpbnQgcmV0 OwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2RvdWJsZXN0LmMKK0luZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9kb3VibGVzdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45 MC4yMDE0MDYxMy5vcmlnL2dkYi9kb3VibGVzdC5jCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAw MDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZG91Ymxlc3QuYwkyMDE0LTA2 LTI0IDE2OjA3OjI3LjI1MTk4Njg4MiArMDIwMAotQEAgLTc2Nyw3ICs3NjcsNyBAQCBmbG9hdGZv cm1hdF9mcm9tX2RvdWJsZXN0IChjb25zdCBzdHJ1Y3QKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4 Lm9yaWcvZ2RiL2RvdWJsZXN0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MjAzMTg3NzUgKzAxMDAK KysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kb3VibGVzdC5jCTIwMTUtMDEtMDYgMjI6NDQ6 NDMuMTcyMzI2NzkxICswMTAwCitAQCAtNzY1LDcgKzc2NSw3IEBAIGZsb2F0Zm9ybWF0X2Zyb21f ZG91Ymxlc3QgKGNvbnN0IHN0cnVjdAogICAgIGJ1dCBub3QgcGFzc2VkIG9uIGJ5IEdEQi4gIFRo aXMgc2hvdWxkIGJlIGZpeGVkLiAgKi8KICAKICBzdGF0aWMgY29uc3Qgc3RydWN0IGZsb2F0Zm9y bWF0ICoKQEAgLTE2NDksNyArMTY2MSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9kb3VibGVzdC5jCiAgewogICAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICpmb3JtYXQ7CiAg Ci1AQCAtNzk1LDggKzc5NSw4IEBAIGZsb2F0Zm9ybWF0X2Zyb21fbGVuZ3RoIChzdHJ1Y3QgZ2Ri YXJjaAorQEAgLTc5Myw4ICs3OTMsOCBAQCBmbG9hdGZvcm1hdF9mcm9tX2xlbmd0aCAoc3RydWN0 IGdkYmFyY2gKICAgIGVsc2UKICAgICAgZm9ybWF0ID0gTlVMTDsKICAgIGlmIChmb3JtYXQgPT0g TlVMTCkKQEAgLTE2NjAsMTEgKzE2NzIsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2RvdWJsZXN0LmMKICAgIHJldHVybiBmb3JtYXQ7CiAgfQogIAotSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2R3YXJmMmxvYy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZHdhcmYybG9jLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcv Z2RiL2R3YXJmMmxvYy5jCTIwMTQtMDYtMjQgMTY6MDc6MjYuMzg3OTg1OTIzICswMjAwCi0rKysg Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9jLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4y NTI5ODY4ODMgKzAyMDAKLUBAIC0xNTcyLDE5ICsxNTcyLDE5IEBAIGluc2VydF9iaXRzICh1bnNp Z25lZCBpbnQgZGF0dW0sCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9kd2FyZjJs b2MuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUyMjMxODc4NSArMDEwMAorKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTczMzI2Nzk2ICsw MTAwCitAQCAtMTU1NywxOSArMTU1NywxOSBAQCBpbnNlcnRfYml0cyAodW5zaWduZWQgaW50IGRh dHVtLAogICAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9tIGdkYmFyY2gu ICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0xNjkwLDcgKzE3MDIsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9jLmMKICAKICAgIGRlc3RfYXZhaWwgPSA4IC0gZGVz dF9vZmZzZXRfYml0cyAlIDg7CiAgCi1AQCAtMTYyMiwxMyArMTYyMiwxMyBAQCBzdGF0aWMgdm9p ZAorQEAgLTE2MDcsMTMgKzE2MDcsMTMgQEAgc3RhdGljIHZvaWQKICByZWFkX3BpZWNlZF92YWx1 ZSAoc3RydWN0IHZhbHVlICp2KQogIHsKICAgIGludCBpOwpAQCAtMTcwNiw3ICsxNzE4LDcgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2R3YXJmMmxvYy5jCiAgICBzaXplX3QgYnVm ZmVyX3NpemUgPSAwOwogICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7CiAgICBzdHJ1Y3QgY2xl YW51cCAqY2xlYW51cDsKLUBAIC0xNjU1LDggKzE2NTUsOCBAQCByZWFkX3BpZWNlZF92YWx1ZSAo c3RydWN0IHZhbHVlICp2KQorQEAgLTE2NDAsOCArMTY0MCw4IEBAIHJlYWRfcGllY2VkX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnYpCiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zm c2V0IDwgdHlwZV9sZW47IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3Bp ZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3MTcsNyArMTcyOSw3IEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9kd2FyZjJsb2MuYwogICAgICAgIGNvbnN0IGdkYl9ieXRlICpp bnRlcm1lZGlhdGVfYnVmZmVyOwogIAogICAgICAgIC8qIENvbXB1dGUgc2l6ZSwgc291cmNlLCBh bmQgZGVzdGluYXRpb24gb2Zmc2V0cyBmb3IgY29weWluZywgaW4KLUBAIC0xODA1LDEzICsxODA1 LDEzIEBAIHN0YXRpYyB2b2lkCitAQCAtMTc5MCwxMyArMTc5MCwxMyBAQCBzdGF0aWMgdm9pZAog IHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9t KQogIHsKICAgIGludCBpOwpAQCAtMTczMyw3ICsxNzQ1LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2R3YXJmMmxvYy5jCiAgICBzaXplX3QgYnVmZmVyX3NpemUgPSAwOwogICAg Z2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7CiAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsKLUBA IC0xODM5LDggKzE4MzksOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8s IHN0CitAQCAtMTgyNCw4ICsxODI0LDggQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFs dWUgKnRvLCBzdAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IHR5 cGVfbGVuOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9 ICZjLT5waWVjZXNbaV07CkBAIC0xNzQ0LDE4ICsxNzU2LDE4IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9kd2FyZjJsb2MuYwogICAgICAgIGludCBuZWVkX2JpdHdpc2U7CiAgICAg ICAgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZV9idWZmZXI7CiAgCi1AQCAtMTk3MCw4ICsxOTcwLDgg QEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAotICAgIGltcGxpY2l0 IHBvaW50ZXIuICAqLworQEAgLTE5NTMsOCArMTk1Myw4IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAo c3RydWN0IHZhbHVlICp0bywgc3QKKyAgICBhIHN5bnRoZXRpYyBwb2ludGVyLiAgKi8KICAKICBz dGF0aWMgaW50Ci0tY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMgKGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsdWUsIGludCBiaXRfb2Zmc2V0LAotLQkJCSBpbnQgYml0X2xlbmd0aCwKLStjaGVja19waWVj ZWRfdmFsdWVfYml0cyAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBiaXRfb2Zm c2V0LAotKwkJCSBMT05HRVNUIGJpdF9sZW5ndGgsCi0gCQkJIGVudW0gZHdhcmZfdmFsdWVfbG9j YXRpb24gY2hlY2tfZm9yKQorLWNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qg c3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IGJpdF9vZmZzZXQsCistCQkJCWludCBiaXRfbGVuZ3Ro KQorK2NoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVlICp2 YWx1ZSwgTE9OR0VTVCBiaXRfb2Zmc2V0LAorKwkJCQlMT05HRVNUIGJpdF9sZW5ndGgpCiAgewog ICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKLUBAIC0xOTg3LDcgKzE5ODcsNyBAQCBjaGVja19w aWVjZWRfdmFsdWVfYml0cyAoY29uc3Qgc3RydWN0IHZhCisgICAgID0gKHN0cnVjdCBwaWVjZV9j bG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHZhbHVlKTsKK0BAIC0xOTY3LDcgKzE5 NjcsNyBAQCBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0CiAgICBmb3Ig KGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykKICAgICAgewog ICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3 NjQsMjkgKzE3NzYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9j LmMKICAKICAgICAgICBpZiAoYml0X29mZnNldCA+IDApCiAgCXsKLUBAIC0yMDI1LDggKzIwMjUs OCBAQCBjaGVja19waWVjZWRfdmFsdWVfYml0cyAoY29uc3Qgc3RydWN0IHZhCi0gfQotIAotIHN0 YXRpYyBpbnQKLS1jaGVja19waWVjZWRfdmFsdWVfdmFsaWRpdHkgKGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsdWUsIGludCBiaXRfb2Zmc2V0LAotLQkJCSAgICAgaW50IGJpdF9sZW5ndGgpCi0rY2hl Y2tfcGllY2VkX3ZhbHVlX3ZhbGlkaXR5IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05H RVNUIGJpdF9vZmZzZXQsCi0rCQkJICAgICBMT05HRVNUIGJpdF9sZW5ndGgpCi0gewotICAgcmV0 dXJuIGNoZWNrX3BpZWNlZF92YWx1ZV9iaXRzICh2YWx1ZSwgYml0X29mZnNldCwgYml0X2xlbmd0 aCwKLSAJCQkJICBEV0FSRl9WQUxVRV9NRU1PUlkpOwotQEAgLTIwNDQsOCArMjA0NCw4IEBAIGNo ZWNrX3BpZWNlZF92YWx1ZV9pbnZhbGlkIChjb25zdCBzdHJ1Y3QKLSAgICBhIHN5bnRoZXRpYyBw b2ludGVyLiAgKi8KLSAKLSBzdGF0aWMgaW50Ci0tY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2lu dGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgYml0X29mZnNldCwKLS0JCQkJaW50 IGJpdF9sZW5ndGgpCi0rY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIGJpdF9vZmZzZXQsCi0rCQkJCUxPTkdFU1QgYml0X2xl bmd0aCkKLSB7Ci0gICByZXR1cm4gY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMgKHZhbHVlLCBiaXRf b2Zmc2V0LCBiaXRfbGVuZ3RoLAotIAkJCQkgIERXQVJGX1ZBTFVFX0lNUExJQ0lUX1BPSU5URVIp OwotQEAgLTIwNzAsOSArMjA3MCwxMCBAQCBpbmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2 YWx1ZSAqdmFsCitAQCAtMjAwOSw5ICsyMDA5LDEwIEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAo c3RydWN0IHZhbHVlICp2YWwKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogICAgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lOwogICAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uIGJhdG9uOwpAQCAt MTc5OSw3ICsxNzg5LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2R3YXJmMmxv Yy5jCiAgCiAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodmFsdWUpKTsKICAg IGlmIChUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9QVFIpCi1AQCAtMjA4Niw3ICsyMDg3 LDcgQEAgaW5kaXJlY3RfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbAorQEAgLTIwMjUs NyArMjAyNiw3IEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwKICAg IGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBiaXRfbGVuZ3RoID4gMDsgaSsrKQogICAg ICB7CiAgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpA QCAtMTgwOCw3ICsxNzk4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2R3YXJm MmxvYy5jCiAgCiAgICAgICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7Ci1AQCAtMjM1Nyw3ICsy MzU4LDcgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQorQEAgLTIz MDMsNyArMjMwNCw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHkK ICAJICAgIHN0cnVjdCB2YWx1ZSAqdmFsdWUgPSBkd2FyZl9leHByX2ZldGNoIChjdHgsIDApOwog IAkgICAgZ2RiX2J5dGUgKmNvbnRlbnRzOwogIAkgICAgY29uc3QgZ2RiX2J5dGUgKnZhbF9ieXRl czsKQEAgLTE4MTcsMTEgKzE4MDcsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2R3YXJmMmxvYy5jCiAgCiAgCSAgICBpZiAoYnl0ZV9vZmZzZXQgKyBUWVBFX0xFTkdUSCAodHlw ZSkgPiBuKQogIAkgICAgICBpbnZhbGlkX3N5bnRoZXRpY19wb2ludGVyICgpOwotSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2 MTMub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjE5OTg2ODQ2ICsw MjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZHdhcmYycmVhZC5jCTIwMTQtMDYtMjQg MTY6MDc6MjcuMjU1OTg2ODg2ICswMjAwCi1AQCAtMTg4OSwxMiArMTg4OSwxMiBAQCBkd2FyZjJf Y29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAoCistLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MjYzMTg4MDUgKzAx MDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0wMS0wNiAy Mjo0NDo0My4xNzczMjY4MTUgKzAxMDAKK0BAIC0xODgzLDEyICsxODgzLDEyIEBAIGR3YXJmMl9j b21wbGV4X2xvY2F0aW9uX2V4cHJfY29tcGxhaW50ICgKICB9CiAgCiAgc3RhdGljIHZvaWQKQEAg LTE4MzgsNyArMTgyOCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9kd2FyZjJy ZWFkLmMKICB9CiAgCiAgc3RhdGljIHZvaWQKLUBAIC0xMjMyNiw4ICsxMjMyNiw4IEBAIGR3YXJm Ml9hZGRfZmllbGQgKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAKK0BAIC0xMjM3MCw4ICsxMjM3MCw4 IEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAKICAJICAgICAgICAg b2JqZWN0LCBhbmQgdGhlbiBzdWJ0cmFjdCBvZmYgdGhlIG51bWJlciBvZiBiaXRzIG9mCiAgCSAg ICAgICAgIHRoZSBmaWVsZCBpdHNlbGYuICBUaGUgcmVzdWx0IGlzIHRoZSBiaXQgb2Zmc2V0IG9m CiAgCSAgICAgICAgIHRoZSBMU0Igb2YgdGhlIGZpZWxkLiAgKi8KQEAgLTE4NDksMTEgKzE4Mzks MTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2R3YXJmMnJlYWQuYwogIAogIAkg ICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9zaXplLCBjdSk7CiAgCSAg ICAgIGlmIChhdHRyKQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2V2YWwuYworSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2V2YWwuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvZXZhbC5jCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAw MDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZXZhbC5jCTIwMTQtMDYtMjQg MTY6MDc6MjcuMjU2OTg2ODg3ICswMjAwCi1AQCAtMjk3LDcgKzI5Nyw4IEBAIGV2YWx1YXRlX3N0 cnVjdF90dXBsZSAoc3RydWN0IHZhbHVlICpzdHIKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL2V2YWwuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUyODMxODgxNCArMDEwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2V2YWwuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3ODMyNjgy MCArMDEwMAorQEAgLTMxNCw3ICszMTQsOCBAQCBldmFsdWF0ZV9zdHJ1Y3RfdHVwbGUgKHN0cnVj dCB2YWx1ZSAqc3RyCiAgICB3aGlsZSAoLS1uYXJncyA+PSAwKQogICAgICB7CiAgICAgICAgc3Ry dWN0IHZhbHVlICp2YWwgPSBOVUxMOwpAQCAtMTg2Myw3ICsxODUzLDcgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL2V2YWwuYwogICAgICAgIGJmZF9ieXRlICphZGRyOwogIAogICAg ICAgIGZpZWxkbm8rKzsKLUBAIC0zNTksNyArMzYwLDcgQEAgaW5pdF9hcnJheV9lbGVtZW50IChz dHJ1Y3QgdmFsdWUgKmFycmF5LAorQEAgLTM3NSw3ICszNzYsNyBAQCBpbml0X2FycmF5X2VsZW1l bnQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksCiAgCQkgICAgZW51bSBub3NpZGUgbm9zaWRlLCBMT05H RVNUIGxvd19ib3VuZCwgTE9OR0VTVCBoaWdoX2JvdW5kKQogIHsKICAgIExPTkdFU1QgaW5kZXg7 CkBAIC0xOTA1LDcgKzE4OTUsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZXZh bC5jCiAgCSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQsIGluZGV4OwogIAogIAkgIGlm IChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbG93X2JvdW5kLCAmaGlnaF9ib3Vu ZCkgPCAwKQotQEAgLTE5MDMsNyArMTkwNCw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAo c3RydWN0IHR5cGUgKmUKK0BAIC0xODg3LDcgKzE4ODgsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3Rh bmRhcmQgKHN0cnVjdCB0eXBlICplCiAgICAgICAgewogICAgICAgICAgc3RydWN0IHR5cGUgKnR5 cGUgPSB2YWx1ZV90eXBlIChhcmcxKTsKICAgICAgICAgIHN0cnVjdCB0eXBlICpyZWFsX3R5cGU7 CkBAIC0xOTE1LDExICsxOTA1LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9l dmFsLmMKICAJc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0czsKICAKICAJZ2V0X3VzZXJf cHJpbnRfb3B0aW9ucyAoJm9wdHMpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Yt bGFuZy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi1sYW5nLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTQtMDYtMTMg MDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZi1s YW5nLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTY5ODY4ODcgKzAyMDAKLUBAIC0xMDQsNyArMTA0 LDcgQEAgZl9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgcworLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZi1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41Mjkz MTg4MTkgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLWxhbmcuYwkyMDE1LTAx LTA2IDIyOjQ0OjQzLjE3ODMyNjgyMCArMDEwMAorQEAgLTEwMyw3ICsxMDMsNyBAQCBmX3ByaW50 Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCiAgCiAgc3RhdGljIHZvaWQKICBmX3By aW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnN0cmluZywKQEAgLTE5MjgsMTAgKzE5MTgsMTAgQEAgSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2YtbGFuZy5jCiAgCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBjb25zdCBjaGFyICp0eXBlX2VuY29kaW5nID0gZl9n ZXRfZW5jb2RpbmcgKHR5cGUpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2YtbGFu Zy5oCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi1sYW5nLmgKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTQtMDYtMTMgMDM6 NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZi1sYW5n LmgJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTY5ODY4ODcgKzAyMDAKKy0tLSBnZGItNy44LjUwLjIw MTQxMjI4Lm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTI5MzE4ODE5ICsw MTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0 NDo0My4xNzgzMjY4MjAgKzAxMDAKIEBAIC0zMCw3ICszMCw3IEBAIGV4dGVybiB2b2lkIGZfZXJy b3IgKGNoYXIgKik7CS8qIERlZmluZWQKICBleHRlcm4gdm9pZCBmX3ByaW50X3R5cGUgKHN0cnVj dCB0eXBlICosIGNvbnN0IGNoYXIgKiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJCSAgaW50 LCBjb25zdCBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25zICopOwpAQCAtMTk0MSwxMSArMTkzMSwx MSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZi1sYW5nLmgKICAJCQkgc3RydWN0 IHVpX2ZpbGUgKiwgaW50LAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvZi12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi12YWxw cmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9mLXZh bHByaW50LmMJMjAxNC0wNi0yNCAxNjowNzoyNi4zNzE5ODU5MDUgKzAyMDAKLSsrKyBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi9mLXZhbHByaW50LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTY5ODY4 ODcgKzAyMDAKLUBAIC00MSw3ICs0MSw3IEBAIGV4dGVybiB2b2lkIF9pbml0aWFsaXplX2ZfdmFs cHJpbnQgKHZvaWQKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2YtdmFscHJpbnQu YwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUyOTMxODgxOSArMDEwMAorKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ1OjA3Ljc0NjQ0NjAyOCArMDEw MAorQEAgLTM4LDcgKzM4LDcgQEAgZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVfZl92YWxwcmludCAo dm9pZAogIHN0YXRpYyB2b2lkIGluZm9fY29tbW9uX2NvbW1hbmQgKGNoYXIgKiwgaW50KTsKICBz dGF0aWMgdm9pZCBmNzdfZ2V0X2R5bmFtaWNfbGVuZ3RoX29mX2FnZ3JlZ2F0ZSAoc3RydWN0IHR5 cGUgKik7CiAgCkBAIC0xOTU0LDcgKzE5NDQsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvZi12YWxwcmludC5jCiAgCiAgLyogQXJyYXkgd2hpY2ggaG9sZHMgb2Zmc2V0cyB0byBi ZSBhcHBsaWVkIHRvIGdldCBhIHJvdydzIGVsZW1lbnRzCiAgICAgZm9yIGEgZ2l2ZW4gYXJyYXku ICBBcnJheSBhbHNvIGhvbGRzIHRoZSBzaXplIG9mIGVhY2ggc3ViYXJyYXkuICAqLwotQEAgLTc2 LDggKzc2LDggQEAgZjc3X2dldF91cHBlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC03 Myw4ICs3Myw4IEBAIGY3N19nZXRfdXBwZXJib3VuZCAoc3RydWN0IHR5cGUgKnR5cGUpCiAgc3Rh dGljIHZvaWQKICBmNzdfZ2V0X2R5bmFtaWNfbGVuZ3RoX29mX2FnZ3JlZ2F0ZSAoc3RydWN0IHR5 cGUgKnR5cGUpCiAgewpAQCAtMTk2NSw3ICsxOTU1LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2YtdmFscHJpbnQuYwogIAogICAgLyogUmVjdXJzaXZlbHkgZ28gYWxsIHRoZSB3 YXkgZG93biBpbnRvIGEgcG9zc2libHkgbXVsdGktZGltZW5zaW9uYWwKICAgICAgIEY3NyBhcnJh eSBhbmQgZ2V0IHRoZSBib3VuZHMuICBGb3Igc2ltcGxlIGFycmF5cywgdGhpcyBpcyBwcmV0dHkK LUBAIC0xMDksNyArMTA5LDcgQEAgZjc3X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUg KHN0cgorQEAgLTEwNiw3ICsxMDYsNyBAQCBmNzdfZ2V0X2R5bmFtaWNfbGVuZ3RoX29mX2FnZ3Jl Z2F0ZSAoc3RyCiAgc3RhdGljIHZvaWQKICBmNzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50 IG5kaW1lbnNpb25zLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCSAgIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLApAQCAtMTk3NCw3ICsxOTY0LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2YtdmFscHJpbnQuYwogIAkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vy c2UsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTExOCw3ICsxMTgsNyBAQCBmNzdfcHJp bnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1lbnNpCitAQCAtMTE1LDcgKzExNSw3IEBAIGY3 N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2kKICAgIHN0cnVjdCB0eXBlICpy YW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChjaGVja190eXBlZGVmICh0eXBlKSk7CiAgICBD T1JFX0FERFIgYWRkciA9IGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZzZXQ7CiAgICBMT05HRVNUIGxv d2VyYm91bmQsIHVwcGVyYm91bmQ7CkBAIC0xOTgzLDcgKzE5NzMsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvZi12YWxwcmludC5jCiAgCiAgICBnZXRfZGlzY3JldGVfYm91bmRz IChyYW5nZV90eXBlLCAmbG93ZXJib3VuZCwgJnVwcGVyYm91bmQpOwogIAotQEAgLTE3NSw3ICsx NzUsNyBAQCBmNzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1lbnNpCitAQCAtMTc4 LDcgKzE3OCw3IEBAIGY3N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2kKICAK ICBzdGF0aWMgdm9pZAogIGY3N19wcmludF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTk5Miw3ICsxOTgyLDcgQEAgSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2YtdmFscHJpbnQuYwogIAkJIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJIGludCByZWN1cnNlLAogIAkJIGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsLAotQEAgLTIxMiw4ICsyMTIsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVy aWNfdmFsX3ByaW50X2RlCitAQCAtMjE1LDggKzIxNSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg Z2VuZXJpY192YWxfcHJpbnRfZGUKICAgICBmdW5jdGlvbjsgdGhleSBhcmUgaWRlbnRpY2FsLiAg Ki8KICAKICB2b2lkCkBAIC0yMDA0LDExICsxOTk0LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi9mLXZhbHByaW50LmMKICAJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdp bmFsX3ZhbHVlLAogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQogIHsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9maW5kdmFyLmMKK0luZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9maW5kdmFyLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDE0LTA2LTEzIDAzOjU5OjM2LjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2ZpbmR2YXIuYwkyMDE0 LTA2LTI0IDE2OjA3OjI3LjI1Njk4Njg4NyArMDIwMAotQEAgLTYyOCw3ICs2MjgsNyBAQCBzdHJ1 Y3QgdmFsdWUgKgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZmluZHZhci5jCTIw MTUtMDEtMDYgMjI6NDQ6NDEuNTI5MzE4ODE5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvZmluZHZhci5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTc5MzI2ODI1ICswMTAwCitAQCAt NjI2LDcgKzYyNiw3IEBAIHN0cnVjdCB2YWx1ZSAqCiAgZGVmYXVsdF92YWx1ZV9mcm9tX3JlZ2lz dGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUgKnR5cGUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVnbnVtLCBzdHJ1Y3QgZnJhbWVfaWQgZnJhbWVf aWQpCiAgewpAQCAtMjAxNyw3ICsyMDA3LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2ZpbmR2YXIuYwogICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9IGFsbG9jYXRlX3ZhbHVlICh0 eXBlKTsKICAKICAgIFZBTFVFX0xWQUwgKHZhbHVlKSA9IGx2YWxfcmVnaXN0ZXI7Ci1AQCAtNjYx LDEwICs2NjEsMTAgQEAgdm9pZAorQEAgLTY1OSwxMCArNjU5LDEwIEBAIHZvaWQKICByZWFkX2Zy YW1lX3JlZ2lzdGVyX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgZnJhbWVfaW5m byAqZnJhbWUpCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfZnJhbWVfYXJj aCAoZnJhbWUpOwpAQCAtMjAzMSwyMCArMjAyMSwyMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvZmluZHZhci5jCiAgCiAgICBnZGJfYXNzZXJ0IChWQUxVRV9MVkFMICh2YWx1ZSkg PT0gbHZhbF9yZWdpc3Rlcik7CiAgCi1AQCAtNjc5LDcgKzY3OSw3IEBAIHJlYWRfZnJhbWVfcmVn aXN0ZXJfdmFsdWUgKHN0cnVjdCB2YWx1ZQorQEAgLTY3Nyw3ICs2NzcsNyBAQCByZWFkX2ZyYW1l X3JlZ2lzdGVyX3ZhbHVlIChzdHJ1Y3QgdmFsdWUKICAgIHdoaWxlIChsZW4gPiAwKQogICAgICB7 CiAgICAgICAgc3RydWN0IHZhbHVlICpyZWd2YWwgPSBnZXRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUg KGZyYW1lLCByZWdudW0pOwogLSAgICAgIGludCByZWdfbGVuID0gVFlQRV9MRU5HVEggKHZhbHVl X3R5cGUgKHJlZ3ZhbCkpIC0gcmVnX29mZnNldDsKICsgICAgICBMT05HRVNUIHJlZ19sZW4gPSBU WVBFX0xFTkdUSCAodmFsdWVfdHlwZSAocmVndmFsKSkgLSByZWdfb2Zmc2V0OwogIAotICAgICAg IGlmICh2YWx1ZV9vcHRpbWl6ZWRfb3V0IChyZWd2YWwpKQotIAl7Ci1JbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvZnJhbWUuYworICAgICAgIC8qIElmIHRoZSByZWdpc3RlciBsZW5ndGgg aXMgbGFyZ2VyIHRoYW4gdGhlIG51bWJlciBvZiBieXRlcworICAgICAgICAgIHJlbWFpbmluZyB0 byBjb3B5LCB0aGVuIG9ubHkgY29weSB0aGUgYXBwcm9wcmlhdGUgYnl0ZXMuICAqLworSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2ZyYW1lLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43 LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2ZyYW1lLmMJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAw MDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mcmFtZS5jCTIwMTQtMDYtMjQg MTY6MDc6MjcuMjU3OTg2ODg4ICswMjAwCi1AQCAtMTI3Miw3ICsxMjcyLDcgQEAgZGVwcmVjYXRl ZF9mcmFtZV9yZWdpc3Rlcl9yZWFkIChzdHJ1Y3QgZgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvZnJhbWUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzMDMxODgyNCArMDEwMAorKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2ZyYW1lLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODAz MjY4MzAgKzAxMDAKK0BAIC0xMjY5LDcgKzEyNjksNyBAQCBkZXByZWNhdGVkX2ZyYW1lX3JlZ2lz dGVyX3JlYWQgKHN0cnVjdCBmCiAgCiAgaW50CiAgZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChz dHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIGludCByZWdudW0sCkBAIC0yMDUzLDcgKzIwNDMsNyBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZnJhbWUuYwogIAkJCSAgaW50ICpvcHRp bWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci1AQCAtMTMwMSw3ICsxMzAxLDcgQEAgZ2V0X2Zy YW1lX3JlZ2lzdGVyX2J5dGVzIChzdHJ1Y3QgZnJhbWVfaQorQEAgLTEyOTgsNyArMTI5OCw3IEBA IGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2kKICAgICAgfQogICAgaWYg KGxlbiA+IG1heHNpemUpCiAgICAgIGVycm9yIChfKCJCYWQgZGVidWcgaW5mb3JtYXRpb24gZGV0 ZWN0ZWQ6ICIKQEAgLTIwNjIsMTAgKzIwNTIsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL2ZyYW1lLmMKICAKICAgIC8qIENvcHkgdGhlIGRhdGEuICAqLwogICAgd2hpbGUgKGxl biA+IDApCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZnJhbWUuaAorSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2ZyYW1lLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43Ljkw LjIwMTQwNjEzLm9yaWcvZ2RiL2ZyYW1lLmgJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mcmFtZS5oCTIwMTQtMDYtMjQgMTY6 MDc6MjcuMjU3OTg2ODg4ICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9m cmFtZS5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTMwMzE4ODI0ICswMTAwCisrKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZnJhbWUuaAkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MDMyNjgzMCArMDEw MAogQEAgLTU4Myw3ICs1ODMsNyBAQCBleHRlcm4gdm9pZCBwdXRfZnJhbWVfcmVnaXN0ZXIgKHN0 cnVjdCBmCiAgICAgY29udGVudHMgYXJlIG9wdGltaXplZCBvdXQgb3IgdW5hdmFpbGFibGUsIHNl dCAqT1BUSU1JWkVEUCwKICAgICAqVU5BVkFJTEFCTEVQIGFjY29yZGluZ2x5LiAgKi8KQEAgLTIw NzUsMTEgKzIwNjUsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2ZyYW1lLmgK ICAJCQkJICAgICBnZGJfYnl0ZSAqbXlhZGRyLAogIAkJCQkgICAgIGludCAqb3B0aW1pemVkcCwg aW50ICp1bmF2YWlsYWJsZXApOwogIAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dk YnR5cGVzLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTQt MDYtMjQgMTY6MDc6MjYuNDEwOTg1OTQ5ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvZ2RidHlwZXMuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI1ODk4Njg5MCArMDIwMAotQEAgLTI0 NjMsNyArMjQ2Myw3IEBAIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICp0eXAK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wMS0wNiAy Mjo0NDo0MS41MzIzMTg4MzQgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0 eXBlcy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgxMzI2ODM1ICswMTAwCitAQCAtMjQ3Nyw3ICsy NDc3LDcgQEAgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKnR5cAogICAgIGxl YXN0IGFzIGxvbmcgYXMgT0JKRklMRS4gICovCiAgCiAgc3RydWN0IHR5cGUgKgpAQCAtMjA4OCw3 ICsyMDc4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dkYnR5cGVzLmMKICAJ ICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgewogICAgc3Ry dWN0IHR5cGUgKnR5cGU7Ci1AQCAtMjY5NCw4ICsyNjk0LDggQEAgaXNfcHVibGljX2FuY2VzdG9y IChzdHJ1Y3QgdHlwZSAqYmFzZSwgcworQEAgLTI3MTcsOCArMjcxNyw4IEBAIGlzX3B1YmxpY19h bmNlc3RvciAoc3RydWN0IHR5cGUgKmJhc2UsIHMKICAKICBzdGF0aWMgaW50CiAgaXNfdW5pcXVl X2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0cnVjdCB0eXBlICpkY2xhc3Ms CkBAIC0yMDk5LDcgKzIwODksNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ2Ri dHlwZXMuYwogIAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7 CiAgICBpbnQgaSwgY291bnQgPSAwOwotQEAgLTI3MDYsNyArMjcwNiw3IEBAIGlzX3VuaXF1ZV9h bmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0yNzI5LDcgKzI3MjksNyBAQCBpc191 bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChzdHJ1Y3QgdHlwZSAqCiAgICBmb3IgKGkgPSAwOyBpIDwg VFlQRV9OX0JBU0VDTEFTU0VTIChkY2xhc3MpICYmIGNvdW50IDwgMjsgKytpKQogICAgICB7CiAg ICAgICAgc3RydWN0IHR5cGUgKml0ZXI7CkBAIC0yMTA4LDcgKzIwOTgsNyBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvZ2RidHlwZXMuYwogIAogICAgICAgIGl0ZXIgPSBjaGVja190 eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAoZGNsYXNzLCBpKSk7CiAgCi1AQCAtMjc0Nyw3ICsyNzQ3 LDcgQEAgaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKgorQEAgLTI3NzAs NyArMjc3MCw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKICBp bnQKICBpc191bmlxdWVfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdmFsdWUg KnZhbCkKICB7CkBAIC0yMTE3LDcgKzIxMDcsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvZ2RidHlwZXMuYwogIAogICAgcmV0dXJuIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIg KGJhc2UsIHZhbHVlX3R5cGUgKHZhbCksICZvZmZzZXQsCiAgCQkJCSAgICB2YWx1ZV9jb250ZW50 c19mb3JfcHJpbnRpbmcgKHZhbCksCi1AQCAtMzg5MSw3ICszODkxLDcgQEAgcmVjdXJzaXZlX2R1 bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtMzkxNSw3ICszOTE1LDcgQEAgcmVjdXJz aXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCiAgICAgICAgYnJlYWs7CiAgICAgIH0K ICAgIHB1dHNfZmlsdGVyZWQgKCJcbiIpOwpAQCAtMjEyNiw3ICsyMTE2LDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dkYnR5cGVzLmMKICAgIGlmIChUWVBFX09CSkZJTEVfT1dO RUQgKHR5cGUpKQogICAgICB7CiAgICAgICAgcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzLCAib2Jq ZmlsZSAiKTsKLUBAIC00MDE1LDggKzQwMTUsOCBAQCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1 Y3QgdHlwZSAqdHlwZSwKK0BAIC00MDM5LDggKzQwMzksOCBAQCByZWN1cnNpdmVfZHVtcF90eXBl IChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgIGlkeCwgcGxvbmdlc3QgKFRZUEVfRklFTERfRU5V TVZBTCAodHlwZSwgaWR4KSkpOwogICAgICAgIGVsc2UKICAJcHJpbnRmaV9maWx0ZXJlZCAoc3Bh Y2VzICsgMiwKQEAgLTIxMzcsNyArMjEyNyw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9nZGJ0eXBlcy5jCiAgCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGlkeCkpOwog ICAgICAgIGdkYl9wcmludF9ob3N0X2FkZHJlc3MgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaWR4 KSwgZ2RiX3N0ZG91dCk7CiAgICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiIG5hbWUgJyVzJyAoIiwK LUBAIC00MzU3LDcgKzQzNTcsNyBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBl KQorQEAgLTQzOTcsNyArNDM5Nyw3IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5 cGUpCiAgCiAgc3RydWN0IHR5cGUgKgogIGFyY2hfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsCkBAIC0yMTQ2LDExICsyMTM2LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9nZGJ0eXBlcy5jCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7CiAgCi1JbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcv Z2RiL2dkYnR5cGVzLmgJMjAxNC0wNi0yNCAxNjowNzoyNy4wMjQ5ODY2MzAgKzAyMDAKLSsrKyBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nZGJ0eXBlcy5oCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjU4 OTg2ODkwICswMjAwCi1AQCAtNjA4LDcgKzYwOCw3IEBAIHN0cnVjdCBtYWluX3R5cGUKKy0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNS0wMS0wNiAyMjo0NDo0 MS41MzMzMTg4MzggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5o CTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgxMzI2ODM1ICswMTAwCitAQCAtNTk4LDcgKzU5OCw3IEBA IHN0cnVjdCBtYWluX3R5cGUKICAJICAgZ2RiYXJjaF9iaXRzX2JpZ19lbmRpYW49MCB0YXJnZXRz LCBpdCBpcyB0aGUgYml0IG9mZnNldCB0bwogIAkgICB0aGUgTFNCLiAgKi8KICAKQEAgLTIxNTks NyArMjE0OSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nZGJ0eXBlcy5oCiAg CiAgCS8qICogRW51bSB2YWx1ZS4gICovCiAgCUxPTkdFU1QgZW51bXZhbDsKLUBAIC04MTAsNyAr ODEwLDcgQEAgc3RydWN0IHR5cGUKK0BAIC04MDEsNyArODAxLDcgQEAgc3RydWN0IHR5cGUKICAg ICAgIEhPU1RfQ0hBUl9CSVQuICBIb3dldmVyLCB0aGlzIHdvdWxkIHN0aWxsIGZhaWwgdG8gYWRk cmVzcwogICAgICAgbWFjaGluZXMgYmFzZWQgb24gYSB0ZXJuYXJ5IG9yIGRlY2ltYWwgcmVwcmVz ZW50YXRpb24uICAqLwogICAgCkBAIC0yMTY4LDcgKzIxNTgsNyBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvZ2RidHlwZXMuaAogIAogICAgLyogKiBDb3JlIHR5cGUsIHNoYXJlZCBi eSBhIGdyb3VwIG9mIHF1YWxpZmllZCB0eXBlcy4gICovCiAgCi1AQCAtMTY0MCwxMSArMTY0MCwx MiBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmdldF90YXJnZXRfdHlwZSAoc3RyCitAQCAtMTY0MSwx MSArMTY0MSwxMiBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmdldF90YXJnZXRfdHlwZSAoc3RyCiAg CiAgLyogKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29uc3RydWN0IG9iamZpbGUtb3duZWQgdHlwZXMu ICAqLwogIApAQCAtMjE4MywxMSArMjE3MywxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvZ2RidHlwZXMuaAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9pbnRlZ2VyX3R5cGUg KHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOwogIGV4dGVybiBzdHJ1Y3QgdHlw ZSAqYXJjaF9jaGFyYWN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50LCBpbnQsIGNoYXIg Kik7CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2Jvb2xlYW5fdHlwZSAoc3RydWN0IGdkYmFy Y2ggKiwgaW50LCBpbnQsIGNoYXIgKik7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv Z251LXYyLWFiaS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ251LXYyLWFiaS5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9nbnUtdjItYWJp LmMJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi9nbnUtdjItYWJpLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTg5ODY4OTAgKzAy MDAKLUBAIC04NSw3ICs4NSw3IEBAIGdudXYyX2lzX29wZXJhdG9yX25hbWUgKGNvbnN0IGNoYXIg Km5hbWUKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dudS12Mi1hYmkuYwkyMDE1 LTAxLTA2IDIyOjQ0OjQxLjUzMzMxODgzOCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2dudS12Mi1hYmkuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MTMyNjgzNSArMDEwMAorQEAg LTgyLDcgKzgyLDcgQEAgZ251djJfaXNfb3BlcmF0b3JfbmFtZSAoY29uc3QgY2hhciAqbmFtZQog ICAgIFRZUEUgaXMgdGhlIHR5cGUgaW4gd2hpY2ggRiBpcyBsb2NhdGVkLiAgKi8KICBzdGF0aWMg c3RydWN0IHZhbHVlICoKICBnbnV2Ml92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiph cmcxcCwgc3RydWN0IGZuX2ZpZWxkICogZiwgaW50IGosCkBAIC0yMTk2LDcgKzIxODYsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ251LXYyLWFiaS5jCiAgewogICAgc3RydWN0 IHZhbHVlICphcmcxID0gKmFyZzFwOwogICAgc3RydWN0IHR5cGUgKnR5cGUxID0gY2hlY2tfdHlw ZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwotQEAgLTE4Niw3ICsxODYsOCBAQCBnbnV2Ml92aXJ0 dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphCitAQCAtMTgzLDcgKzE4Myw4IEBAIGdudXYy X3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmEKICAKICAKICBzdGF0aWMgc3RydWN0 IHR5cGUgKgpAQCAtMjIwNiw3ICsyMTk2LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2dudS12Mi1hYmkuYwogIHsKICAgIHN0cnVjdCB0eXBlICprbm93bl90eXBlOwogICAgc3Ry dWN0IHR5cGUgKnJ0dGlfdHlwZTsKLUBAIC0zNDEsOSArMzQyLDkgQEAgdmJfbWF0Y2ggKHN0cnVj dCB0eXBlICp0eXBlLCBpbnQgaW5kZXgsCitAQCAtMzM4LDkgKzMzOSw5IEBAIHZiX21hdGNoIChz dHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAogICAgIHRhcmdldCkuICBUaGUgcmVzdWx0IGlz IHRoZSBvZmZzZXQgb2YgdGhlIGJhc2VjbGFzcyB2YWx1ZSByZWxhdGl2ZQogICAgIHRvICh0aGUg YWRkcmVzcyBvZikoQVJHKSArIE9GRlNFVC4gICovCiAgCkBAIC0yMjE4LDcgKzIyMDgsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ251LXYyLWFiaS5jCiAgCQkJQ09SRV9BRERS IGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKICAgIHN0cnVjdCB0eXBlICpi YXNldHlwZSA9IFRZUEVfQkFTRUNMQVNTICh0eXBlLCBpbmRleCk7Ci1AQCAtMzYxLDggKzM2Miw4 IEBAIGdudXYyX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKK0BAIC0zNTgsOCAr MzU5LDggQEAgZ251djJfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cAogIAkgIGlm ICh2Yl9tYXRjaCAodHlwZSwgaSwgYmFzZXR5cGUpKQogIAkgICAgewogIAkgICAgICBzdHJ1Y3Qg dHlwZSAqZmllbGRfdHlwZTsKQEAgLTIyMjksNyArMjIxOSw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9nbnUtdjItYWJpLmMKICAJICAgICAgQ09SRV9BRERSIGFkZHI7CiAgCiAg CSAgICAgIGZpZWxkX3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUs IGkpKTsKLUBAIC0zODYsNyArMzg3LDcgQEAgZ251djJfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0 IHR5cGUgKnR5cAorQEAgLTM4Myw3ICszODQsNyBAQCBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0IChz dHJ1Y3QgdHlwZSAqdHlwCiAgCSAgLyogRG9uJ3QgZ28gdGhyb3VnaCBiYXNlY2xhc3Nfb2Zmc2V0 LCBhcyB0aGF0IHdyYXBzCiAgCSAgICAgZXhjZXB0aW9ucywgdGh1cywgaW5uZXIgZXhjZXB0aW9u cyB3b3VsZCBiZSB3cmFwcGVkIG1vcmUKICAJICAgICB0aGFuIG9uY2UuICAqLwpAQCAtMjIzOCwx MSArMjIyOCwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ251LXYyLWFiaS5j CiAgCSAgICBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0ICh0eXBlLCBpLCB2YWxhZGRyLAogIAkJCQkg ICAgZW1iZWRkZWRfb2Zmc2V0LCBhZGRyZXNzLCB2YWwpOwogIAotSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2dudS12My1hYmkuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2dudS12My1hYmkuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9n ZGIvZ251LXYzLWFiaS5jCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ251LXYzLWFiaS5jCTIwMTQtMDYtMjQgMTY6MDc6Mjcu MjU5OTg2ODkxICswMjAwCi1AQCAtMTEyLDcgKzExMiw3IEBAIGJ1aWxkX2dkYl92dGFibGVfdHlw ZSAoc3RydWN0IGdkYmFyY2ggKmEKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2du dS12My1hYmkuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzNDMxODg0MyArMDEwMAorKysrIGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2dudS12My1hYmkuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MTMy NjgzNSArMDEwMAorQEAgLTEwOCw3ICsxMDgsNyBAQCBidWlsZF9nZGJfdnRhYmxlX3R5cGUgKHN0 cnVjdCBnZGJhcmNoICphCiAgewogICAgc3RydWN0IHR5cGUgKnQ7CiAgICBzdHJ1Y3QgZmllbGQg KmZpZWxkX2xpc3QsICpmaWVsZDsKQEAgLTIyNTEsNyArMjI0MSw3IEBAIEluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi9nbnUtdjMtYWJpLmMKICAKICAgIHN0cnVjdCB0eXBlICp2b2lkX3B0 cl90eXBlCiAgICAgID0gYnVpbHRpbl90eXBlIChhcmNoKS0+YnVpbHRpbl9kYXRhX3B0cjsKLUBA IC0xODgsNyArMTg4LDcgQEAgdnRhYmxlX3B0cmRpZmZfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdk YgorQEAgLTE4NCw3ICsxODQsNyBAQCB2dGFibGVfcHRyZGlmZl90eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiCiAgLyogUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGltYWdp bmFyeSBgc3RydWN0CiAgICAgZ2RiX2dudV92M19hYmlfdnRhYmxlJyBvYmplY3QgdG8gdGhlIHZ0 YWJsZSdzICJhZGRyZXNzIHBvaW50IgogICAgIChpLmUuLCB3aGVyZSBvYmplY3RzJyB2aXJ0dWFs IHRhYmxlIHBvaW50ZXJzIHBvaW50KS4gICovCkBAIC0yMjYwLDcgKzIyNTAsNyBAQCBJbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ251LXYzLWFiaS5jCiAgdnRhYmxlX2FkZHJlc3NfcG9p bnRfb2Zmc2V0IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKICB7CiAgICBzdHJ1Y3QgdHlwZSAq dnRhYmxlX3R5cGUgPSBnZGJhcmNoX2RhdGEgKGdkYmFyY2gsIHZ0YWJsZV90eXBlX2dkYmFyY2hf ZGF0YSk7Ci1AQCAtMjc5LDcgKzI3OSw3IEBAIGdudXYzX2dldF92dGFibGUgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmMKK0BAIC0yNzUsNyArMjc1LDcgQEAgZ251djNfZ2V0X3Z0YWJsZSAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyYwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAgZ251djNfcnR0aV90 eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtMjI2OSw3ICsyMjU5LDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dudS12My1hYmkuYwogIHsKICAgIHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoOwogICAgc3RydWN0IHR5cGUgKnZhbHVlc190eXBlID0gY2hlY2tfdHlwZWRlZiAo dmFsdWVfdHlwZSAodmFsdWUpKTsKLUBAIC00MDQsNyArNDA0LDcgQEAgZ251djNfZ2V0X3ZpcnR1 YWxfZm4gKHN0cnVjdCBnZGJhcmNoICpnZAorQEAgLTQwMCw3ICs0MDAsNyBAQCBnbnV2M19nZXRf dmlydHVhbF9mbiAoc3RydWN0IGdkYmFyY2ggKmdkCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCiAg Z251djNfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqdmFsdWVfcCwKICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZm5fZmllbGQgKmYsIGludCBqLApAQCAtMjI3OCw3ICsy MjY4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dudS12My1hYmkuYwogIHsK ICAgIHN0cnVjdCB0eXBlICp2YWx1ZXNfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KCp2YWx1ZV9wKSk7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKLUBAIC00MzQsMTYgKzQz NCwxNiBAQCBnbnV2M192aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKip2CitAQCAtNDMw LDE2ICs0MzAsMTYgQEAgZ251djNfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqdgog IAogICAgIC0xIGlzIHJldHVybmVkIG9uIGVycm9yLiAgKi8KICAKQEAgLTIyOTgsNyArMjI4OCw3 IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nbnUtdjMtYWJpLmMKICAKICAgIC8q IERldGVybWluZSBhcmNoaXRlY3R1cmUuICAqLwogICAgZ2RiYXJjaCA9IGdldF90eXBlX2FyY2gg KHR5cGUpOwotQEAgLTQ2Nyw3ICs0NjcsNyBAQCBnbnV2M19iYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1 Y3QgdHlwZSAqdHlwCitAQCAtNDYzLDcgKzQ2Myw3IEBAIGdudXYzX2Jhc2VjbGFzc19vZmZzZXQg KHN0cnVjdCB0eXBlICp0eXAKICAgIGN1cl9iYXNlX29mZnNldCA9IGN1cl9iYXNlX29mZnNldCAr IHZ0YWJsZV9hZGRyZXNzX3BvaW50X29mZnNldCAoZ2RiYXJjaCk7CiAgICBpZiAoKC0gY3VyX2Jh c2Vfb2Zmc2V0KSAlIFRZUEVfTEVOR1RIIChwdHJfdHlwZSkgIT0gMCkKICAgICAgZXJyb3IgKF8o Ik1pc2FsaWduZWQgdmJhc2Ugb2Zmc2V0LiIpKTsKQEAgLTIzMDcsNyArMjI5Nyw3IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nbnUtdjMtYWJpLmMKICAKICAgIHZ0YWJsZSA9IGdu dXYzX2dldF92dGFibGUgKGdkYmFyY2gsIHR5cGUsIGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZzZXQp OwogICAgZ2RiX2Fzc2VydCAodnRhYmxlICE9IE5VTEwpOwotQEAgLTUxMSw3ICs1MTEsNyBAQCBn bnV2M19maW5kX21ldGhvZF9pbiAoc3RydWN0IHR5cGUgKmRvbWFpCitAQCAtNTA3LDcgKzUwNyw3 IEBAIGdudXYzX2ZpbmRfbWV0aG9kX2luIChzdHJ1Y3QgdHlwZSAqZG9tYWkKICAgICAgIHdlJ3Jl IG91dCBvZiBsdWNrLiAgKi8KICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05fQkFTRUNMQVNTRVMg KGRvbWFpbik7IGkrKykKICAgICAgewpAQCAtMjMxNiwxMCArMjMwNiwxMCBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvZ251LXYzLWFiaS5jCiAgICAgICAgc3RydWN0IHR5cGUgKmJh c2V0eXBlOwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAoZG9tYWluLCBpKSkK LUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nby1sYW5nLmgKK0luZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9nby1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIw MTQwNjEzLm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE0LTA2LTEzIDAzOjU5OjM2LjAwMDAwMDAwMCAr MDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dvLWxhbmcuaAkyMDE0LTA2LTI0IDE2 OjA3OjI3LjI1OTk4Njg5MSArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv Z28tbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM0MzE4ODQzICswMTAwCisrKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvZ28tbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgyMzI2ODQw ICswMTAwCiBAQCAtODUsNyArODUsNyBAQCBleHRlcm4gdm9pZCBnb19wcmludF90eXBlIChzdHJ1 Y3QgdHlwZSAqCiAgLyogRGVmaW5lZCBpbiBnby12YWxwcmludC5jLiAgKi8KICAKQEAgLTIzMjks MTAgKzIzMTksMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dvLWxhbmcuaAog IAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJICBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nby12YWxwcmludC5j CitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ28tdmFscHJpbnQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvZ28tdmFscHJpbnQuYwkyMDE0LTA2 LTEzIDAzOjU5OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2dvLXZhbHByaW50LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTk5ODY4OTEgKzAyMDAKKy0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0 NDo0MS41MzQzMTg4NDMgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nby12YWxw cmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgyMzI2ODQwICswMTAwCiBAQCAtMzcsNyArMzcs NyBAQAogIAogIHN0YXRpYyB2b2lkCkBAIC0yMzU1LDQ0ICsyMzQ1LDExIEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9nby12YWxwcmludC5jCiAgCSAgICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKICAgIENIRUNLX1RZUEVERUYgKHR5cGUp OwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2kzODYtbmF0LmMKLT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2kzODYtbmF0LmMJMjAxNC0wNi0xMyAw Mzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9pMzg2 LW5hdC5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjU5OTg2ODkxICswMjAwCi1AQCAtMjkwLDcgKzI5 MCw3IEBAIHN0YXRpYyBpbnQgaTM4Nl9yZW1vdmVfYWxpZ25lZF93YXRjaHBvaW4KLSAgICB2YWxp ZCB2YWx1ZSwgYm9tYnMgdGhyb3VnaCBpbnRlcm5hbF9lcnJvci4gICovCi0gc3RhdGljIGludCBp Mzg2X2hhbmRsZV9ub25hbGlnbmVkX3dhdGNocG9pbnQgKHN0cnVjdCBpMzg2X2RlYnVnX3JlZ19z dGF0ZSAqc3RhdGUsCi0gCQkJCQkgICAgICBpMzg2X3dwX29wX3Qgd2hhdCwKLS0JCQkJCSAgICAg IENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLAotKwkJCQkJICAgICAgQ09SRV9BRERSIGFkZHIsIExP TkdFU1QgbGVuLAotIAkJCQkJICAgICAgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSB0eXBlKTsKLSAK LSAvKiBJbXBsZW1lbnRhdGlvbi4gICovCi1AQCAtNTAxLDggKzUwMSw4IEBAIGkzODZfcmVtb3Zl X2FsaWduZWRfd2F0Y2hwb2ludCAoc3RydWN0IGkKLSAKLSBzdGF0aWMgaW50Ci0gaTM4Nl9oYW5k bGVfbm9uYWxpZ25lZF93YXRjaHBvaW50IChzdHJ1Y3QgaTM4Nl9kZWJ1Z19yZWdfc3RhdGUgKnN0 YXRlLAotLQkJCQkgICBpMzg2X3dwX29wX3Qgd2hhdCwgQ09SRV9BRERSIGFkZHIsIGludCBsZW4s Ci0tCQkJCSAgIGVudW0gdGFyZ2V0X2h3X2JwX3R5cGUgdHlwZSkKLSsJCQkJICAgaTM4Nl93cF9v cF90IHdoYXQsIENPUkVfQUREUiBhZGRyLAotKwkJCQkgICBMT05HRVNUIGxlbiwgZW51bSB0YXJn ZXRfaHdfYnBfdHlwZSB0eXBlKQotIHsKLSAgIGludCByZXR2YWwgPSAwOwotICAgaW50IG1heF93 cF9sZW4gPSBUQVJHRVRfSEFTX0RSX0xFTl84ID8gOCA6IDQ7Ci1AQCAtNjY1LDcgKzY2NSw3IEBA IGkzODZfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3AKLSAKLSBzdGF0aWMgaW50 Ci0gaTM4Nl9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxm LAotLQkJCSAgICAgICBDT1JFX0FERFIgYWRkciwgaW50IGxlbikKLSsJCQkgICAgICAgQ09SRV9B RERSIGFkZHIsIExPTkdFU1QgbGVuKQotIHsKLSAgIHN0cnVjdCBpMzg2X2RlYnVnX3JlZ19zdGF0 ZSAqc3RhdGUKLSAgICAgPSBpMzg2X2RlYnVnX3JlZ19zdGF0ZSAocHRpZF9nZXRfcGlkIChpbmZl cmlvcl9wdGlkKSk7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvaW5mLXR0cmFjZS5j CitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5mLXR0cmFjZS5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9pbmYtdHRyYWNlLmMJMjAxNC0wNi0x MyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9p bmYtdHRyYWNlLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTk5ODY4OTEgKzAyMDAKLUBAIC0zNjks NyArMzY5LDcgQEAgaW5mX3R0cmFjZV9jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdAorLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvaW5mLXR0cmFjZS5jCTIwMTUtMDEtMDYgMjI6 NDQ6NDEuNTM1MzE4ODQ4ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5mLXR0 cmFjZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgyMzI2ODQwICswMTAwCitAQCAtMzY2LDcgKzM2 Niw3IEBAIGluZl90dHJhY2VfY2FuX3VzZV9od19icmVha3BvaW50IChzdHJ1Y3QKICAKICBzdGF0 aWMgaW50CiAgaW5mX3R0cmFjZV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0 YXJnZXRfb3BzICpzZWxmLApAQCAtMjQwMSwxMCArMjM1OCwxMCBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvaW5mLXR0cmFjZS5jCiAgewogICAgcmV0dXJuIDE7CiAgfQotSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2p2LWxhbmcuYworSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2p2LWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMu b3JpZy9nZGIvanYtbGFuZy5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMDI1OTg2NjMxICswMjAwCi0r KysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvanYtbGFuZy5jCTIwMTQtMDYtMjQgMTY6MDc6Mjcu MjYwOTg2ODkyICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9qdi1sYW5n LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzUzMTg4NDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9qdi1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODIzMjY4NDAgKzAxMDAK IEBAIC00MzYsNyArNDM2LDcgQEAgamF2YV9saW5rX2NsYXNzX3R5cGUgKHN0cnVjdCBnZGJhcmNo ICpnZAogICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsgaSA8IG5maWVsZHM7 IGkrKykKICAgICAgewpAQCAtMjQyMywxMCArMjM4MCwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvanYtbGFuZy5jCiAgCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBjb25zdCBjaGFyICp0eXBlX2VuY29kaW5nID0gamF2 YV9nZXRfZW5jb2RpbmcgKHR5cGUpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2p2 LWxhbmcuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2p2LWxhbmcuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvanYtbGFuZy5oCTIwMTQtMDYt MTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv anYtbGFuZy5oCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjYwOTg2ODkyICswMjAwCistLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9qdi1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzUz MTg4NDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9qdi1sYW5nLmgJMjAxNS0w MS0wNiAyMjo0NDo0My4xODIzMjY4NDAgKzAxMDAKIEBAIC00Myw4ICs0Myw4IEBAIHN0cnVjdCBi dWlsdGluX2phdmFfdHlwZQogIAogIGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9qYXZhX3R5 cGUgKmJ1aWx0aW5famF2YV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqKTsKQEAgLTI0MzgsMTEgKzIz OTUsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2p2LWxhbmcuaAogIAkJCSAg ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKik7CiAgCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvanYtdmFscHJp bnQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2p2LXZhbHByaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2p2LXZhbHByaW50LmMJMjAx NC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9qdi12YWxwcmludC5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjYwOTg2ODkyICswMjAwCi1A QCAtMjY3LDcgKzI2Nyw3IEBAIGphdmFfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAqdmFsLCBz dHIKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2p2LXZhbHByaW50LmMJMjAxNS0w MS0wNiAyMjo0NDo0MS41MzUzMTg4NDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9qdi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgyMzI2ODQwICswMTAwCitAQCAt MjY1LDcgKzI2NSw3IEBAIGphdmFfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHIK ICAKICBzdGF0aWMgdm9pZAogIGphdmFfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNDUxLDcgKzI0MDgsNyBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvanYtdmFscHJpbnQuYwogIAkJCSBDT1JFX0FERFIg YWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCQkgaW50IHJlY3Vyc2UsCiAgCQkJ IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTQ2MCw3ICs0NjAsNyBAQCBqYXZhX3ByaW50 X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5CitAQCAtNDUzLDcgKzQ1Myw3IEBAIGphdmFf cHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHkKICAKICB2b2lkCiAgamF2YV92YWxf cHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTI0 NjAsMTEgKzI0MTcsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2p2LXZhbHBy aW50LmMKICAJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJY29uc3Qg c3RydWN0IHZhbHVlICp2YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucykKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9sYW5ndWFnZS5jCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbGFuZ3VhZ2UuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvbGFuZ3VhZ2UuYwkyMDE0LTA2LTEzIDAzOjU5OjM2 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2xhbmd1YWdlLmMJ MjAxNC0wNi0yNCAxNjowNzoyNy4yNjA5ODY4OTIgKzAyMDAKLUBAIC03MjIsNyArNzIyLDcgQEAg dW5rX2xhbmdfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgorLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvbGFuZ3VhZ2UuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzNjMxODg1 MyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xhbmd1YWdlLmMJMjAxNS0wMS0w NiAyMjo0NDo0My4xODMzMjY4NDQgKzAxMDAKK0BAIC03MjAsNyArNzIwLDcgQEAgdW5rX2xhbmdf cHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgogIAogIHN0YXRpYyB2b2lkCiAgdW5rX2xh bmdfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLApA QCAtMjQ3Myw3ICsyNDMwLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2xhbmd1 YWdlLmMKICAJCSAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAg CQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAt NzQxLDcgKzc0MSw3IEBAIHVua19sYW5nX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLAor QEAgLTczOSw3ICs3MzksNyBAQCB1bmtfbGFuZ19wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlw ZSwKICAKICBzdGF0aWMgdm9pZAogIHVua19sYW5nX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjQ4MiwxMSArMjQzOSwxMSBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbGFuZ3VhZ2UuYwogIAkJICAgIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs LAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQotSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2xhbmd1YWdlLmgKK0luZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9sYW5ndWFnZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0 MDYxMy5vcmlnL2dkYi9sYW5ndWFnZS5oCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICsw MjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbGFuZ3VhZ2UuaAkyMDE0LTA2LTI0IDE2 OjA3OjI3LjI2MDk4Njg5MiArMDIwMAotQEAgLTE4Myw3ICsxODMsNyBAQCBzdHJ1Y3QgbGFuZ3Vh Z2VfZGVmbgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbGFuZ3VhZ2UuaAkyMDE1 LTAxLTA2IDIyOjQ0OjQxLjUzNjMxODg1MyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2xhbmd1YWdlLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xODMzMjY4NDQgKzAxMDAKK0BAIC0x ODksNyArMTg5LDcgQEAgc3RydWN0IGxhbmd1YWdlX2RlZm4KICAJCQkgIHN0cnVjdCB1aV9maWxl ICogc3RyZWFtKTsKICAKICAgICAgdm9pZCAoKmxhX3ByaW50c3RyKSAoc3RydWN0IHVpX2ZpbGUg KiBzdHJlYW0sIHN0cnVjdCB0eXBlICplbHR0eXBlLApAQCAtMjQ5NSw3ICsyNDUyLDcgQEAgSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2xhbmd1YWdlLmgKICAJCQkgY29uc3QgY2hhciAq ZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKik7CiAgCi1AQCAtMjI1LDcgKzIyNSw3IEBAIHN0cnVjdCBsYW5ndWFnZV9k ZWZuCitAQCAtMjMxLDcgKzIzMSw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuCiAgCiAgICAgIHZv aWQgKCpsYV92YWxfcHJpbnQpIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgIGNvbnN0IGdkYl9i eXRlICpjb250ZW50cywKQEAgLTI1MDQsMTAgKzI0NjEsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2xhbmd1YWdlLmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvbTItbGFuZy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTIt bGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9tMi1s YW5nLmMJMjAxNC0wNi0xMyAwMzo1OTozNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9tMi1sYW5nLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNjE5ODY4OTMgKzAy MDAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL20yLWxhbmcuYwkyMDE1LTAxLTA2 IDIyOjQ0OjQxLjUzNjMxODg1MyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL20y LWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MzMyNjg0NCArMDEwMAogQEAgLTEwNCwxMCAr MTA0LDEwIEBAIG0yX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLAogIAogIHN0 YXRpYyB2b2lkCkBAIC0yNTQyLDEwICsyNDk5LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9tMi1sYW5nLmMKICAJICBpID0gcmVwMSAtIDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQg Kz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKICAJICBuZWVkX2NvbW1hID0gMTsK LUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tMi1sYW5nLmgKK0luZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9tMi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIw MTQwNjEzLm9yaWcvZ2RiL20yLWxhbmcuaAkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCAr MDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL20yLWxhbmcuaAkyMDE0LTA2LTI0IDE2 OjA3OjI3LjI2MTk4Njg5MyArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv bTItbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM2MzE4ODUzICswMTAwCisrKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvbTItbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgzMzI2ODQ0 ICswMTAwCiBAQCAtMzQsNyArMzQsNyBAQCBleHRlcm4gdm9pZCBtMl9wcmludF90eXBlZGVmIChz dHJ1Y3QgdHlwCiAgZXh0ZXJuIGludCBtMl9pc19sb25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUp OwogIGV4dGVybiBpbnQgbTJfaXNfdW5ib3VuZGVkX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSk7 CkBAIC0yNTU1LDExICsyNTEyLDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9t Mi1sYW5nLmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1J bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbTItdHlwZXByaW50LmMKK0luZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9tMi10eXBlcHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvbTItdHlwZXByaW50LmMJMjAxNC0wNi0xMyAwMzo1OToz Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tMi10eXBlcHJp bnQuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI2MTk4Njg5MyArMDIwMAotQEAgLTIzMyw5ICsyMzMs MTIgQEAgc3RhdGljIHZvaWQgbTJfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLAorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0 MS41MzczMTg4NTggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tMi10eXBlcHJp bnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MzMyNjg0NCArMDEwMAorQEAgLTIzMCw5ICsyMzAs MTIgQEAgc3RhdGljIHZvaWQgbTJfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLAogIAkgIG0yX3By aW50X2JvdW5kcyAoVFlQRV9JTkRFWF9UWVBFICh0eXBlKSwgc3RyZWFtLCBzaG93LCAtMSwgMSk7 CiAgCX0KICAgICAgICBlbHNlCkBAIC0yNTc1LDEwICsyNTMyLDEwIEBAIEluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi9tMi10eXBlcHJpbnQuYwogICAgICB9CiAgICBmcHJpbnRmX2ZpbHRl cmVkIChzdHJlYW0sICJdIE9GICIpOwogICAgbTJfcHJpbnRfdHlwZSAoVFlQRV9UQVJHRVRfVFlQ RSAodHlwZSksICIiLCBzdHJlYW0sIHNob3csIGxldmVsLCBmbGFncyk7Ci1JbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvbTItdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL20yLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEz Lm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNC0wNi0xMyAwMzo1OTozNy4wMDAwMDAwMDAgKzAy MDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tMi12YWxwcmludC5jCTIwMTQtMDYtMjQg MTY6MDc6MjcuMjYxOTg2ODkzICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9tMi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM3MzE4ODU4ICswMTAwCisrKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQz LjE4MzMyNjg0NCArMDEwMAogQEAgLTM1LDcgKzM1LDcgQEAgc3RhdGljIGludCBwcmludF91bnBh Y2tlZF9wb2ludGVyIChzdHJ1YwogIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICBz dGF0aWMgdm9pZApAQCAtMjY0NCwxMCArMjYwMSwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvbTItdmFscHJpbnQuYwogIAogIAkJICAvKiBMb29rIGZvciBhIE5VTEwgY2hhci4g ICovCiAgCQkgIGZvciAodGVtcF9sZW4gPSAwOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL21lbXJhbmdlLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tZW1yYW5nZS5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9tZW1yYW5nZS5j CTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvbWVtcmFuZ2UuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI2MTk4Njg5MyArMDIwMAor LS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbWVtcmFuZ2UuYwkyMDE1LTAxLTA2IDIy OjQ0OjQxLjUzNzMxODg1OCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21lbXJh bmdlLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODQzMjY4NDkgKzAxMDAKIEBAIC0yMSw4ICsyMSw4 IEBACiAgI2luY2x1ZGUgIm1lbXJhbmdlLmgiCiAgCkBAIC0yNjU5LDEwICsyNjE2LDEwIEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tZW1yYW5nZS5jCiAgewogICAgVUxPTkdFU1Qg aCwgbDsKICAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tZW1yYW5nZS5oCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWVtcmFuZ2UuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvbWVtcmFuZ2UuaAkyMDE0LTA2LTEzIDAzOjU5OjM3 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL21lbXJhbmdlLmgJ MjAxNC0wNi0yNCAxNjowNzoyNy4yNjE5ODY4OTMgKzAyMDAKKy0tLSBnZGItNy44LjUwLjIwMTQx MjI4Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzczMTg4NTggKzAx MDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tZW1yYW5nZS5oCTIwMTUtMDEtMDYgMjI6 NDQ6NDMuMTg0MzI2ODQ5ICswMTAwCiBAQCAtMzAsNyArMzAsNyBAQCBzdHJ1Y3QgbWVtX3Jhbmdl CiAgICBDT1JFX0FERFIgc3RhcnQ7CiAgCkBAIC0yNjgxLDEzICsyNjM4LDEzIEBAIEluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tZW1yYW5nZS5oCiArZXh0ZXJuIGludCBtZW1fcmFuZ2Vz X292ZXJsYXAgKENPUkVfQUREUiBzdGFydDEsIExPTkdFU1QgbGVuMSwKICsJCQkgICAgICAgQ09S RV9BRERSIHN0YXJ0MiwgTE9OR0VTVCBsZW4yKTsKICAKLSAvKiBTb3J0IHJhbmdlcyBieSBzdGFy dCBhZGRyZXNzLCB0aGVuIGNvYWxlc2NlIGNvbnRpZ3VvdXMgb3IKLSAgICBvdmVybGFwcGluZyBy YW5nZXMuICAqLwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL21pcHMtbGludXgtbmF0 LmMKKyAvKiBSZXR1cm5zIHRydWUgaWYgQUREUiBpcyBpbiBSQU5HRS4gICovCisgCitJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWlwcy1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE0LTA2LTEz IDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL21p cHMtbGludXgtbmF0LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNjI5ODY4OTQgKzAyMDAKLUBAIC01 OTAsNyArNTkwLDcgQEAgbWlwc19saW51eF9zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0Cist LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTUtMDEt MDYgMjI6NDQ6NDEuNTM3MzE4ODU4ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv bWlwcy1saW51eC1uYXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4NDMyNjg0OSArMDEwMAorQEAg LTU4Niw3ICs1ODYsNyBAQCBtaXBzX2xpbnV4X3N0b3BwZWRfZGF0YV9hZGRyZXNzIChzdHJ1Y3QK ICAKICBzdGF0aWMgaW50CiAgbWlwc19saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQg KHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMjY5NiwxMSArMjY1MywxMSBAQCBJbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbWlwcy1saW51eC1uYXQuYwogIHsKICAgIHN0cnVjdCBw dF93YXRjaF9yZWdzIGR1bW15X3JlZ3M7CiAgICBpbnQgaTsKLUluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi9vcGVuY2wtbGFuZy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv b3BlbmNsLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9n ZGIvb3BlbmNsLWxhbmcuYwkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysr IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNC0wNi0yNCAxNjowNzoy Ny4yNjI5ODY4OTQgKzAyMDAKLUBAIC04MCwxMSArODAsMTEgQEAgYnVpbHRpbl9vcGVuY2xfdHlw ZSAoc3RydWN0IGdkYmFyY2ggKmdkYgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv b3BlbmNsLWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzODMxODg2MyArMDEwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4x ODQzMjY4NDkgKzAxMDAKK0BAIC03OCwxMSArNzgsMTEgQEAgYnVpbHRpbl9vcGVuY2xfdHlwZSAo c3RydWN0IGdkYmFyY2ggKmdkYgogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAgbG9va3VwX29w ZW5jbF92ZWN0b3JfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGVudW0gdHlwZV9jb2Rl IGNvZGUsCkBAIC0yNzE0LDcgKzI2NzEsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvb3BlbmNsLWxhbmcuYwogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBOVUxMOwogICAgc3RydWN0 IHR5cGUgKip0eXBlcyA9IGJ1aWx0aW5fb3BlbmNsX3R5cGUgKGdkYmFyY2gpOwogIAotQEAgLTE3 NCw5ICsxNzQsOSBAQCBsdmFsX2Z1bmNfcmVhZCAoc3RydWN0IHZhbHVlICp2KQorQEAgLTE3Miw5 ICsxNzIsOSBAQCBsdmFsX2Z1bmNfcmVhZCAoc3RydWN0IHZhbHVlICp2KQogICAgc3RydWN0IGx2 YWxfY2xvc3VyZSAqYyA9IChzdHJ1Y3QgbHZhbF9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Ns b3N1cmUgKHYpOwogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlICh2KSk7CiAgICBzdHJ1Y3QgdHlwZSAqZWx0eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoY2hl Y2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYy0+dmFsKSkpOwpAQCAtMjcyNyw3ICsyNjg0LDcgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL29wZW5jbC1sYW5nLmMKICAgIExPTkdFU1Qg bG93YiA9IDA7CiAgICBMT05HRVNUIGhpZ2hiID0gMDsKICAKLUBAIC0yMDMsOSArMjAzLDkgQEAg bHZhbF9mdW5jX3dyaXRlIChzdHJ1Y3QgdmFsdWUgKnYsIHN0cnVjdAorQEAgLTIwMSw5ICsyMDEs OSBAQCBsdmFsX2Z1bmNfd3JpdGUgKHN0cnVjdCB2YWx1ZSAqdiwgc3RydWN0CiAgICBzdHJ1Y3Qg bHZhbF9jbG9zdXJlICpjID0gKHN0cnVjdCBsdmFsX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRf Y2xvc3VyZSAodik7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKHYpKTsKICAgIHN0cnVjdCB0eXBlICplbHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChj aGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSk7CkBAIC0yNzQwLDU2ICsyNjk3LDcg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL29wZW5jbC1sYW5nLmMKICAgIExPTkdF U1QgbG93YiA9IDA7CiAgICBMT05HRVNUIGhpZ2hiID0gMDsKICAKLUBAIC0yNDMsMTcgKzI0Mywx OCBAQCBsdmFsX2Z1bmNfd3JpdGUgKHN0cnVjdCB2YWx1ZSAqdiwgc3RydWN0Ci0gLyogUmV0dXJu IG5vbnplcm8gaWYgYWxsIGJpdHMgaW4gViB3aXRoaW4gT0ZGU0VUIGFuZCBMRU5HVEggYXJlIHZh bGlkLiAgKi8KLSAKLSBzdGF0aWMgaW50Ci0tbHZhbF9mdW5jX2NoZWNrX3ZhbGlkaXR5IChjb25z dCBzdHJ1Y3QgdmFsdWUgKnYsIGludCBvZmZzZXQsIGludCBsZW5ndGgpCi0rbHZhbF9mdW5jX2No ZWNrX3ZhbGlkaXR5IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnYsIExPTkdFU1Qgb2Zmc2V0LAotKwkJ CSAgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgc3RydWN0IGx2YWxfY2xvc3VyZSAqYyA9IChzdHJ1 Y3QgbHZhbF9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHYpOwotKyAgc3RydWN0 IHR5cGUgKnQgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKTsKLSAgIC8qIFNp emUgb2YgdGhlIHRhcmdldCB0eXBlIGluIGJpdHMuICAqLwotLSAgaW50IGVsc2l6ZSA9Ci0tICAg ICAgVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5 cGUgKGMtPnZhbCkpKSkgKiA4OwotLSAgaW50IHN0YXJ0cmVzdCA9IG9mZnNldCAlIGVsc2l6ZTsK LS0gIGludCBzdGFydCA9IG9mZnNldCAvIGVsc2l6ZTsKLS0gIGludCBlbmRyZXN0ID0gKG9mZnNl dCArIGxlbmd0aCkgJSBlbHNpemU7Ci0tICBpbnQgZW5kID0gKG9mZnNldCArIGxlbmd0aCkgLyBl bHNpemU7Ci0tICBpbnQgaTsKLSsgIExPTkdFU1QgZWxzaXplID0gVFlQRV9MRU5HVEggKFRZUEVf VEFSR0VUX1RZUEUgKHQpKSAqIDg7Ci0rICBMT05HRVNUIHN0YXJ0cmVzdCA9IG9mZnNldCAlIGVs c2l6ZTsKLSsgIExPTkdFU1Qgc3RhcnQgPSBvZmZzZXQgLyBlbHNpemU7Ci0rICBMT05HRVNUIGVu ZHJlc3QgPSAob2Zmc2V0ICsgbGVuZ3RoKSAlIGVsc2l6ZTsKLSsgIExPTkdFU1QgZW5kID0gKG9m ZnNldCArIGxlbmd0aCkgLyBlbHNpemU7Ci0rICBMT05HRVNUIGk7Ci0gCi0gICBpZiAoZW5kcmVz dCkKLSAgICAgZW5kKys7Ci1AQCAtMjYzLDggKzI2NCw4IEBAIGx2YWxfZnVuY19jaGVja192YWxp ZGl0eSAoY29uc3Qgc3RydWN0IHYKLSAKLSAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKysp Ci0gICAgIHsKLS0gICAgICBpbnQgY29tcF9vZmZzZXQgPSAoaSA9PSBzdGFydCkgPyBzdGFydHJl c3QgOiAwOwotLSAgICAgIGludCBjb21wX2xlbmd0aCA9IChpID09IGVuZCkgPyBlbmRyZXN0IDog ZWxzaXplOwotKyAgICAgIExPTkdFU1QgY29tcF9vZmZzZXQgPSAoaSA9PSBzdGFydCkgPyBzdGFy dHJlc3QgOiAwOwotKyAgICAgIExPTkdFU1QgY29tcF9sZW5ndGggPSAoaSA9PSBlbmQpID8gZW5k cmVzdCA6IGVsc2l6ZTsKLSAKLSAgICAgICBpZiAoIXZhbHVlX2JpdHNfdmFsaWQgKGMtPnZhbCwg Yy0+aW5kaWNlc1tpXSAqIGVsc2l6ZSArIGNvbXBfb2Zmc2V0LAotIAkJCSAgICAgY29tcF9sZW5n dGgpKQotQEAgLTI4MSw4ICsyODIsOCBAQCBsdmFsX2Z1bmNfY2hlY2tfYW55X3ZhbGlkIChjb25z dCBzdHJ1Y3QKLSB7Ci0gICBzdHJ1Y3QgbHZhbF9jbG9zdXJlICpjID0gKHN0cnVjdCBsdmFsX2Ns b3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodik7Ci0gICAvKiBTaXplIG9mIHRoZSB0 YXJnZXQgdHlwZSBpbiBiaXRzLiAgKi8KLS0gIGludCBlbHNpemUgPQotLSAgICAgIFRZUEVfTEVO R1RIIChUWVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwp KSkpICogODsKLSsgIExPTkdFU1QgZWxzaXplID0KLSsJICAgVFlQRV9MRU5HVEggKFRZUEVfVEFS R0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGMtPnZhbCkpKSkgKiA4OwotICAg aW50IGk7Ci0gCi0gICBmb3IgKGkgPSAwOyBpIDwgYy0+bjsgaSsrKQotQEAgLTI5NywxNyArMjk4 LDE3IEBAIGx2YWxfZnVuY19jaGVja19hbnlfdmFsaWQgKGNvbnN0IHN0cnVjdAorQEAgLTI0Mywx NyArMjQzLDE3IEBAIGx2YWxfZnVuY193cml0ZSAoc3RydWN0IHZhbHVlICp2LCBzdHJ1Y3QKICAK ICBzdGF0aWMgaW50CiAgbHZhbF9mdW5jX2NoZWNrX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBz dHJ1Y3QgdmFsdWUgKnYsCkBAIC0yNzk5LDE0ICsyNzA3LDEzIEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9vcGVuY2wtbGFuZy5jCiAgICBzdHJ1Y3QgbHZhbF9jbG9zdXJlICpjID0g KHN0cnVjdCBsdmFsX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodik7CiAgICAv KiBTaXplIG9mIHRoZSB0YXJnZXQgdHlwZSBpbiBiaXRzLiAgKi8KIC0gIGludCBlbHNpemUgPQot LSAgICAgIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlIChjLT52YWwpKSkpICogODsKKysgIExPTkdFU1QgZWxzaXplID0KKyAgICAgICBUWVBF X0xFTkdUSCAoVFlQRV9UQVJHRVRfVFlQRSAoY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYy0+ dmFsKSkpKSAqIDg7CiAtICBpbnQgc3RhcnRyZXN0ID0gb2Zmc2V0ICUgZWxzaXplOwogLSAgaW50 IHN0YXJ0ID0gb2Zmc2V0IC8gZWxzaXplOwogLSAgaW50IGVuZHJlc3QgPSAob2Zmc2V0ICsgbGVu Z3RoKSAlIGVsc2l6ZTsKIC0gIGludCBlbmQgPSAob2Zmc2V0ICsgbGVuZ3RoKSAvIGVsc2l6ZTsK IC0gIGludCBpOwotKyAgTE9OR0VTVCBlbHNpemUgPQotKwkgICBUWVBFX0xFTkdUSCAoVFlQRV9U QVJHRVRfVFlQRSAoY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYy0+dmFsKSkpKSAqIDg7CiAr ICBMT05HRVNUIHN0YXJ0cmVzdCA9IG9mZnNldCAlIGVsc2l6ZTsKICsgIExPTkdFU1Qgc3RhcnQg PSBvZmZzZXQgLyBlbHNpemU7CiArICBMT05HRVNUIGVuZHJlc3QgPSAob2Zmc2V0ICsgbGVuZ3Ro KSAlIGVsc2l6ZTsKQEAgLTI4MTUsNyArMjcyMiw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9vcGVuY2wtbGFuZy5jCiAgCiAgICBpZiAoZW5kcmVzdCkKICAgICAgZW5kKys7Ci1A QCAtMzE3LDggKzMxOCw4IEBAIGx2YWxfZnVuY19jaGVja19zeW50aGV0aWNfcG9pbnRlciAoY29u c3QKK0BAIC0yNjMsOCArMjYzLDggQEAgbHZhbF9mdW5jX2NoZWNrX3N5bnRoZXRpY19wb2ludGVy IChjb25zdAogIAogICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykKICAgICAgewpAQCAt MjgyNiwxMSArMjczMywxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvb3BlbmNs LWxhbmcuYwogIAogICAgICAgIGlmICghdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoYy0+ dmFsLAogIAkJCQkJIGMtPmluZGljZXNbaV0gKiBlbHNpemUgKyBjb21wX29mZnNldCwKLUluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9wLWxhbmcuYworSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3AtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5v cmlnL2dkYi9wLWxhbmcuYwkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysr IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3AtbGFuZy5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjYy OTg2ODk0ICswMjAwCi1AQCAtOTYsOCArOTYsOCBAQCBwYXNjYWxfbWFpbl9uYW1lICh2b2lkKQor LS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcC1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0 NDo0MS41MzgzMTg4NjMgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wLWxhbmcu YwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4NDMyNjg0OSArMDEwMAorQEAgLTk1LDggKzk1LDggQEAg cGFzY2FsX21haW5fbmFtZSAodm9pZCkKICAgICBhcmUgbm90IG11bHRpcGxlIG9mIFRBUkdFVF9D SEFSX0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwogICAgIGJ1dCB0aGlzIGRvZXMgbm90 IGhhcHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLwogIGludApAQCAtMjg0MSw3 ICsyNzQ4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3AtbGFuZy5jCiAgCQkg ICAgICAgc3RydWN0IHR5cGUgKipjaGFyX3R5cGUsCiAgCQkgICAgICAgY29uc3QgY2hhciAqKmFy cmF5bmFtZSkKICB7Ci1AQCAtMjE3LDEyICsyMTcsMTIgQEAgcGFzY2FsX3ByaW50Y2hhciAoaW50 IGMsIHN0cnVjdCB0eXBlICp0eQorQEAgLTIxNiwxMiArMjE2LDEyIEBAIHBhc2NhbF9wcmludGNo YXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHkKICAKICB2b2lkCiAgcGFzY2FsX3ByaW50c3RyIChz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTI4NTYsNyArMjc2 Myw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9wLWxhbmcuYwogICAgdW5zaWdu ZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKICAgIGludCBpbl9xdW90ZXMgPSAwOwogICAgaW50 IG5lZWRfY29tbWEgPSAwOwotQEAgLTI1MCw5ICsyNTAsOSBAQCBwYXNjYWxfcHJpbnRzdHIgKHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sCitAQCAtMjQ5LDkgKzI0OSw5IEBAIHBhc2NhbF9wcmludHN0 ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAgICAgewogICAgICAgIC8qIFBvc2l0aW9uIG9m IHRoZSBjaGFyYWN0ZXIgd2UgYXJlIGV4YW1pbmluZwogICAgICAgICAgIHRvIHNlZSB3aGV0aGVy IGl0IGlzIHJlcGVhdGVkLiAgKi8KQEAgLTI4NjgsNyArMjc3NSw3IEBAIEluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi9wLWxhbmcuYwogICAgICAgIHVuc2lnbmVkIGxvbmcgaW50IGN1cnJl bnRfY2hhcjsKICAKICAgICAgICBRVUlUOwotQEAgLTI4NCw3ICsyODQsNyBAQCBwYXNjYWxfcHJp bnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCitAQCAtMjgzLDcgKzI4Myw3IEBAIHBhc2Nh bF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJICAgICAgaW5fcXVvdGVzID0g MDsKICAJICAgIH0KICAJICBwYXNjYWxfcHJpbnRjaGFyIChjdXJyZW50X2NoYXIsIHR5cGUsIHN0 cmVhbSk7CkBAIC0yODc3LDEwICsyNzg0LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9wLWxhbmcuYwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0aGluZ3NfcHJpbnRlZCArPSBv cHRpb25zLT5yZXBlYXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5lZWRfY29tbWEgPSAxOwotSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3AtbGFuZy5oCitJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvcC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEz Lm9yaWcvZ2RiL3AtbGFuZy5oCTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAwICswMjAwCi0r KysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcC1sYW5nLmgJMjAxNC0wNi0yNCAxNjowNzoyNy4y NjI5ODY4OTQgKzAyMDAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3AtbGFuZy5o CTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM4MzE4ODYzICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvcC1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xODQzMjY4NDkgKzAxMDAKIEBA IC0zNiw3ICszNiw3IEBAIGV4dGVybiB2b2lkIHBhc2NhbF9wcmludF90eXBlIChzdHJ1Y3QgdHkK ICBleHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUgKiwgc3RydWN0 IHN5bWJvbCAqLAogIAkJCQkgIHN0cnVjdCB1aV9maWxlICopOwpAQCAtMjkxNSwxMSArMjgyMiwx MSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcC1sYW5nLmgKICAJCQkJCSAgICAg IENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwKICAJCQkJCSAgICAgIGludCwKICAJCQkJCSAg ICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3AtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3AtdmFscHJpbnQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvcC12YWxwcmlu dC5jCTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvcC12YWxwcmludC5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjYyOTg2ODk0ICsw MjAwCi1AQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3By aW50X2RlCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9wLXZhbHByaW50LmMJMjAx NS0wMS0wNiAyMjo0NDo0MS41MzkzMTg4NjggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9wLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODUzMjY4NTQgKzAxMDAKK0BA IC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUK ICAKICB2b2lkCiAgcGFzY2FsX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLApAQCAtMjkyOCw3ICsyODM1LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL3AtdmFscHJpbnQuYwogIAkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBp bnQgcmVjdXJzZSwKICAJCSAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJ CSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1AQCAtNjksOCAr NjksOCBAQCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uCitAQCAtNjgs OCArNjgsOCBAQCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uCiAgICB1 bnNpZ25lZCBsZW47CiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKICAgIHN0cnVj dCB0eXBlICplbHR0eXBlOwpAQCAtMjkzOSw3ICsyODQ2LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL3AtdmFscHJpbnQuYwogICAgc3RydWN0IHR5cGUgKmNoYXJfdHlwZTsKICAg IENPUkVfQUREUiBhZGRyOwogICAgaW50IHdhbnRfc3BhY2UgPSAwOwotQEAgLTQ2OCw3ICs0Njgs NyBAQCBzdGF0aWMgdm9pZCBwYXNjYWxfb2JqZWN0X3ByaW50X3N0YXRpY19mCitAQCAtNDY3LDcg KzQ2Nyw3IEBAIHN0YXRpYyB2b2lkIHBhc2NhbF9vYmplY3RfcHJpbnRfc3RhdGljX2YKICAJCQkJ CSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIAogIHN0YXRpYyB2 b2lkIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9i eXRlICosCkBAIC0yOTQ4LDcgKzI4NTUsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvcC12YWxwcmludC5jCiAgCQkJCSAgICAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICos IGludCwKICAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkgICAgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKiwKLUBAIC01MjcsNyArNTI3LDcgQEAgcGFz Y2FsX29iamVjdF9pc192dGJsX21lbWJlciAoc3RydWN0IHR5cAorQEAgLTUyNiw3ICs1MjYsNyBA QCBwYXNjYWxfb2JqZWN0X2lzX3Z0YmxfbWVtYmVyIChzdHJ1Y3QgdHlwCiAgCiAgdm9pZAogIHBh c2NhbF9vYmplY3RfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yOTU3LDcgKzI4NjQsNyBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvcC12YWxwcmludC5jCiAgCQkJCSAgQ09SRV9BRERSIGFkZHJlc3MsIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkJCSAgaW50IHJlY3Vyc2UsCiAgCQkJCSAgY29uc3Qg c3RydWN0IHZhbHVlICp2YWwsCi1AQCAtNzAzLDcgKzcwMyw3IEBAIHBhc2NhbF9vYmplY3RfcHJp bnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QKK0BAIC02OTcsNyArNjk3LDcgQEAgcGFzY2FsX29iamVj dF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdAogIAogIHN0YXRpYyB2b2lkCiAgcGFzY2FsX29i amVjdF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLApAQCAtMjk2Niw3ICsyODczLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3AtdmFscHJpbnQuYwogIAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLAogIAkJCSAgIGludCByZWN1cnNlLAogIAkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsLAotQEAgLTcyNiwxMSArNzI2LDExIEBAIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWUgKHN0 cnVjdCB0eXBlICoKK0BAIC03MjAsMTEgKzcyMCwxMSBAQCBwYXNjYWxfb2JqZWN0X3ByaW50X3Zh bHVlIChzdHJ1Y3QgdHlwZSAqCiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgbl9iYXNlY2xhc3Nlczsg aSsrKQogICAgICB7CkBAIC0yOTgwLDExICsyODg3LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi9wLXZhbHByaW50LmMKICAgICAgICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2Vw dGlvbiBleDsKICAgICAgICBpbnQgc2tpcCA9IDA7CiAgCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvcHBjLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv cHBjLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmln L2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNC0wNi0xMyAwMzo1OTozNy4wMDAwMDAwMDAgKzAyMDAK LSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNC0wNi0yNCAx NjowNzoyNy4yNjM5ODY4OTUgKzAyMDAKLUBAIC0xNDk4LDcgKzE0OTgsNyBAQCBwcGNfbGludXhf Y2FuX3VzZV9od19icmVha3BvaW50IChzdHJ1Y3QKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzOTMxODg2OCArMDEw MAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTAxLTA2 IDIyOjQ0OjQzLjE4NTMyNjg1NCArMDEwMAorQEAgLTE1MDEsNyArMTUwMSw3IEBAIHBwY19saW51 eF9jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdAogIAogIHN0YXRpYyBpbnQKICBwcGNfbGlu dXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwK QEAgLTI5OTMsMTEgKzI5MDAsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Bw Yy1saW51eC1uYXQuYwogIHsKICAgIC8qIEhhbmRsZSBzdWItOC1ieXRlIHF1YW50aXRpZXMuICAq LwogICAgaWYgKGxlbiA8PSAwKQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ByaW50 Y21kLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcmludGNtZC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9wcmludGNtZC5jCTIwMTQtMDYt MjQgMTY6MDc6MjYuNjQwOTg2MjA0ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv cHJpbnRjbWQuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI2Mzk4Njg5NSArMDIwMAotQEAgLTI4OCw3 ICsyODgsNyBAQCBwcmludF9mb3JtYXR0ZWQgKHN0cnVjdCB2YWx1ZSAqdmFsLCBpbnQKKy0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3ByaW50Y21kLmMJMjAxNS0wMS0wNiAyMjo0NDo0 MS41NDAzMTg4NzIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcmludGNtZC5j CTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTg1MzI2ODU0ICswMTAwCitAQCAtMjg1LDcgKzI4NSw3IEBA IHByaW50X2Zvcm1hdHRlZCAoc3RydWN0IHZhbHVlICp2YWwsIGludAogIAkJIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0pCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2 YWx1ZV90eXBlICh2YWwpKTsKQEAgLTMwMDYsNyArMjkxMyw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9wcmludGNtZC5jCiAgCiAgICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBs dmFsX21lbW9yeSkKICAgICAgbmV4dF9hZGRyZXNzID0gdmFsdWVfYWRkcmVzcyAodmFsKSArIGxl bjsKLUBAIC0zNjYsNyArMzY2LDcgQEAgcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoY29uc3Qgdm9p ZCAqdmFsYQorQEAgLTM2Myw3ICszNjMsNyBAQCBwcmludF9zY2FsYXJfZm9ybWF0dGVkIChjb25z dCB2b2lkICp2YWxhCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9h cmNoICh0eXBlKTsKICAgIExPTkdFU1QgdmFsX2xvbmcgPSAwOwpAQCAtMzAxNSwxMSArMjkyMiwx MSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcHJpbnRjbWQuYwogICAgZW51bSBi ZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogIAog ICAgLyogU3RyaW5nIHByaW50aW5nIHNob3VsZCBnbyB0aHJvdWdoIHZhbF9wcmludF9zY2FsYXJf Zm9ybWF0dGVkLiAgKi8KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9wcm9jZnMuYwor SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Byb2Nmcy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9wcm9jZnMuYwkyMDE0LTA2LTEzIDAzOjU5OjM3 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Byb2Nmcy5jCTIw MTQtMDYtMjQgMTY6MDc6MjcuMjY0OTg2ODk2ICswMjAwCi1AQCAtNDkxNiw3ICs0OTE2LDcgQEAg cHJvY2ZzX3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0XworLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvcHJvY2ZzLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NDEzMTg4Nzcg KzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcm9jZnMuYwkyMDE1LTAxLTA2IDIy OjQ0OjQzLjE4NjMyNjg1OSArMDEwMAorQEAgLTQ4NTksNyArNDg1OSw3IEBAIHByb2Nmc19yZW1v dmVfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF8KICAKICBzdGF0aWMgaW50CiAgcHJvY2ZzX3Jl Z2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0z MDI4LDExICsyOTM1LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9wcm9jZnMu YwogIHsKICAgIC8qIFRoZSBtYW4gcGFnZSBmb3IgcHJvYyg0KSBvbiBTb2xhcmlzIDIuNiBhbmQg dXAgc2F5cyB0aGF0IHRoZQogICAgICAgc3lzdGVtIGNhbiBzdXBwb3J0ICJ0aG91c2FuZHMiIG9m IGhhcmR3YXJlIHdhdGNocG9pbnRzLCBidXQgZ2l2ZXMKLUluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45 MC4yMDE0MDYxMy5vcmlnL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE0LTA2LTEzIDAz OjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3B5dGhv bi9weS1wcmV0dHlwcmludC5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjY0OTg2ODk2ICswMjAwCi1A QCAtNjg3LDcgKzY4Nyw3IEBAIHByaW50X2NoaWxkcmVuIChQeU9iamVjdCAqcHJpbnRlciwgY29u c3QKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmlu dC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTQxMzE4ODc3ICswMTAwCisrKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4x ODYzMjY4NTkgKzAxMDAKK0BAIC02ODYsNyArNjg2LDcgQEAgcHJpbnRfY2hpbGRyZW4gKFB5T2Jq ZWN0ICpwcmludGVyLCBjb25zdAogIGVudW0gZXh0X2xhbmdfcmMKICBnZGJweV9hcHBseV92YWxf cHJldHR5X3ByaW50ZXIgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0 bGFuZywKICAJCQkJc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApA QCAtMzA0MSwxMSArMjk0OCwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcHl0 aG9uL3B5LXByZXR0eXByaW50LmMKICAJCQkJc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCiAgCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCQljb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9yZWdjYWNoZS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcmVnY2FjaGUu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvcmVnY2FjaGUu YwkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL3JlZ2NhY2hlLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNjQ5ODY4OTYgKzAyMDAK LUBAIC04OTksNyArODk5LDcgQEAgdHlwZWRlZiB2b2lkIChyZWdjYWNoZV93cml0ZV9mdHlwZSkg KHN0cgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcmVnY2FjaGUuYwkyMDE1LTAx LTA2IDIyOjQ0OjQxLjU0MjMxODg4MiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3JlZ2NhY2hlLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODczMjY4NjQgKzAxMDAKK0BAIC05NDEs NyArOTQxLDcgQEAgdHlwZWRlZiB2b2lkIChyZWdjYWNoZV93cml0ZV9mdHlwZSkgKHN0cgogIAog IHN0YXRpYyBlbnVtIHJlZ2lzdGVyX3N0YXR1cwogIHJlZ2NhY2hlX3hmZXJfcGFydCAoc3RydWN0 IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTMwNTQsNyArMjk2MSw3IEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9yZWdjYWNoZS5jCiAgCQkgICAgZW51bSByZWdp c3Rlcl9zdGF0dXMgKCpyZWFkKSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCQkJCQkg IGludCByZWdudW0sCiAgCQkJCQkJICBnZGJfYnl0ZSAqYnVmKSwKLUBAIC05NDMsNyArOTQzLDcg QEAgcmVnY2FjaGVfeGZlcl9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZworQEAgLTk4NSw3ICs5 ODUsNyBAQCByZWdjYWNoZV94ZmVyX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnCiAgCiAgZW51 bSByZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2Fj aGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMzA2Myw3ICsyOTcwLDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVf ZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTk1NCw3ICs5NTQsNyBAQCBy ZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUKK0BAIC05OTYsNyArOTk2LDcg QEAgcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlCiAgCiAgdm9pZAogIHJl Z2NhY2hlX3Jhd193cml0ZV9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVn bnVtLApAQCAtMzA3Miw3ICsyOTc5LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2Fj aGUtPmRlc2NyOwogIAotQEAgLTk2NSw3ICs5NjUsNyBAQCByZWdjYWNoZV9yYXdfd3JpdGVfcGFy dCAoc3RydWN0IHJlZ2NhY2hlCitAQCAtMTAwNyw3ICsxMDA3LDcgQEAgcmVnY2FjaGVfcmF3X3dy aXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZQogIAogIGVudW0gcmVnaXN0ZXJfc3RhdHVzCiAgcmVn Y2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJl Z251bSwKQEAgLTMwODEsNyArMjk4OCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9yZWdjYWNoZS5jCiAgewogICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJlZ2Nh Y2hlLT5kZXNjcjsKICAKLUBAIC05NzYsNyArOTc2LDcgQEAgcmVnY2FjaGVfY29va2VkX3JlYWRf cGFydCAoc3RydWN0IHJlZ2NhYworQEAgLTEwMTgsNyArMTAxOCw3IEBAIHJlZ2NhY2hlX2Nvb2tl ZF9yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWMKICAKICB2b2lkCiAgcmVnY2FjaGVfY29va2VkX3dy aXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0zMDkw LDExICsyOTk3LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9yZWdjYWNoZS5j CiAgewogICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJlZ2NhY2hlLT5kZXNjcjsK ICAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9yZWdjYWNoZS5oCitJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvcmVnY2FjaGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljcu OTAuMjAxNDA2MTMub3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAw MDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3JlZ2NhY2hlLmgJMjAxNC0w Ni0yNCAxNjowNzoyNy4yNjU5ODY4OTcgKzAyMDAKLUBAIC04OSw5ICs4OSw5IEBAIGV4dGVybiB2 b2lkIHJlZ2NhY2hlX3Jhd193cml0ZV91bnNpZ25lZAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU0MjMxODg4MiArMDEwMAor KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JlZ2NhY2hlLmgJMjAxNS0wMS0wNiAyMjo0NDo0 My4xODczMjY4NjQgKzAxMDAKK0BAIC05Miw5ICs5Miw5IEBAIGV4dGVybiB2b2lkIHJlZ2NhY2hl X3Jhd193cml0ZV91bnNpZ25lZAogIAogIGV4dGVybiBlbnVtIHJlZ2lzdGVyX3N0YXR1cwogICAg cmVnY2FjaGVfcmF3X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJl Z251bSwKQEAgLTMxMDYsNyArMzAxMyw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9yZWdjYWNoZS5oCiAgCiAgdm9pZCByZWdjYWNoZV9pbnZhbGlkYXRlIChzdHJ1Y3QgcmVnY2Fj aGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtKTsKICAKLUBAIC0xMjgsMTAgKzEyOCwxMSBAQCBleHRl cm4gdm9pZCByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWduCitAQCAtMTMxLDEwICsxMzEsMTEg QEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbgogICAgIHdyaXRlIHN0 eWxlIG9wZXJhdGlvbnMuICAqLwogIAogIGVudW0gcmVnaXN0ZXJfc3RhdHVzIHJlZ2NhY2hlX2Nv b2tlZF9yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCkBAIC0zMTIxLDExICsz MDI4LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9yZWdjYWNoZS5oCiAgCiAg LyogU3BlY2lhbCByb3V0aW5lcyB0byByZWFkL3dyaXRlIHRoZSBQQy4gICovCiAgCi1JbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcmVtb3RlLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9yZW1vdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3Jp Zy9nZGIvcmVtb3RlLmMJMjAxNC0wNi0yNCAxNjowNzoyNi42NTg5ODYyMjQgKzAyMDAKLSsrKyBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9yZW1vdGUuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI2Njk4 Njg5OCArMDIwMAotQEAgLTgyNzIsNyArODI3Miw3IEBAIGludCByZW1vdGVfaHdfYnJlYWtwb2lu dF9saW1pdCA9IC0xOworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcmVtb3RlLmMJ MjAxNS0wMS0wNiAyMjo0NDo0MS41NDQzMTg4OTIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9yZW1vdGUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4ODMyNjg2OSArMDEwMAorQEAg LTgzNzEsNyArODM3MSw3IEBAIGludCByZW1vdGVfaHdfYnJlYWtwb2ludF9saW1pdCA9IC0xOwog IAogIHN0YXRpYyBpbnQKICByZW1vdGVfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1 Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTMxMzQsMjQgKzMwNDEsMjQgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3JlbW90ZS5jCiAgewogICAgaWYgKHJlbW90ZV9od193YXRjaHBv aW50X2xlbmd0aF9saW1pdCA9PSAwKQogICAgICByZXR1cm4gMDsKLUluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9zcHUtbXVsdGlhcmNoLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9zcHUtbXVsdGlhcmNoLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEz Lm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCAr MDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE0LTA2 LTI0IDE2OjA3OjI3LjI2Njk4Njg5OCArMDIwMAotQEAgLTExOSw3ICsxMTksNyBAQCBzcHVfdGhy ZWFkX2FyY2hpdGVjdHVyZSAoc3RydWN0IHRhcmdldF9vCistLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NDUzMTg4OTcg KzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0w MS0wNiAyMjo0NDo0My4xODgzMjY4NjkgKzAxMDAKK0BAIC0xMTcsNyArMTE3LDcgQEAgc3B1X3Ro cmVhZF9hcmNoaXRlY3R1cmUgKHN0cnVjdCB0YXJnZXRfbwogIC8qIE92ZXJyaWRlIHRoZSB0b19y ZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgcm91dGluZS4gICovCiAgc3RhdGljIGludAogIHNw dV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLAog LQkJCQkgQ09SRV9BRERSIGFkZHIsIGludCBsZW4pCiArCQkJCSBDT1JFX0FERFIgYWRkciwgTE9O R0VTVCBsZW4pCiAgewotICAgc3RydWN0IHRhcmdldF9vcHMgKm9wc19iZW5lYXRoID0gZmluZF90 YXJnZXRfYmVuZWF0aCAoJnNwdV9vcHMpOwotICAgd2hpbGUgKG9wc19iZW5lYXRoICYmICFvcHNf YmVuZWF0aC0+dG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50KQotSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL3N0YWNrLmMKKyAgIHN0cnVjdCB0YXJnZXRfb3BzICpvcHNfYmVuZWF0 aCA9IGZpbmRfdGFyZ2V0X2JlbmVhdGggKHNlbGYpOworIAorSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3N0YWNrLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9y aWcvZ2RiL3N0YWNrLmMJMjAxNC0wNi0xMyAwMzo1OTozNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9zdGFjay5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjY3OTg2 OTAwICswMjAwCi1AQCAtMTc5LDcgKzE3OSw3IEBAIHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnIKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3N0YWNrLmMJ MjAxNS0wMS0wNiAyMjo0NDo0MS41NDYzMTg5MDIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9zdGFjay5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTg5MzI2ODc0ICswMTAwCitAQCAt MTc1LDcgKzE3NSw3IEBAIHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnIK ICAgICBhcmd1bWVudCAobm90IGp1c3QgdGhlIGZpcnN0IG5hbWVsZXNzIGFyZ3VtZW50KS4gICov CiAgCiAgc3RhdGljIHZvaWQKQEAgLTMxNjAsNyArMzA2Nyw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9zdGFjay5jCiAgCQkJICAgaW50IGZpcnN0LCBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtKQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2gg KGZyYW1lKTsKLUBAIC01MjUsNyArNTI1LDcgQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5 bWJvbCAqZnVuYywgcworQEAgLTUyNCw3ICs1MjQsNyBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1 Y3Qgc3ltYm9sICpmdW5jLCBzCiAgICAvKiBPZmZzZXQgb2YgbmV4dCBzdGFjayBhcmd1bWVudCBi ZXlvbmQgdGhlIG9uZSB3ZSBoYXZlIHNlZW4gdGhhdCBpcwogICAgICAgYXQgdGhlIGhpZ2hlc3Qg b2Zmc2V0LCBvciAtMSBpZiB3ZSBoYXZlbid0IGNvbWUgdG8gYSBzdGFjawogICAgICAgYXJndW1l bnQgeWV0LiAgKi8KQEAgLTMxNjksNyArMzA3Niw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9zdGFjay5jCiAgICAvKiBOdW1iZXIgb2YgaW50cyBvZiBhcmd1bWVudHMgdGhhdCB3 ZSBoYXZlIHByaW50ZWQgc28gZmFyLiAgKi8KICAgIGludCBhcmdzX3ByaW50ZWQgPSAwOwogICAg c3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbjsKLUBAIC01NTksOCArNTU5LDggQEAgcHJpbnRfZnJh bWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcworQEAgLTU1OCw4ICs1NTgsOCBAQCBwcmlu dF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCiAgCSAgICBjYXNlIExPQ19BUkc6 CiAgCSAgICBjYXNlIExPQ19SRUZfQVJHOgogIAkgICAgICB7CkBAIC0zMTgwLDcgKzMwODcsNyBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvc3RhY2suYwogIAogIAkJLyogQ29tcHV0 ZSBhZGRyZXNzIG9mIG5leHQgYXJndW1lbnQgYnkgYWRkaW5nIHRoZSBzaXplIG9mCiAgCQkgICB0 aGlzIGFyZ3VtZW50IGFuZCByb3VuZGluZyB0byBhbiBpbnQgYm91bmRhcnkuICAqLwotQEAgLTY5 NSw3ICs2OTUsNyBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCitA QCAtNjk0LDcgKzY5NCw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMs IHMKICAgICAgIGVub3VnaCBhYm91dCB0aGUgc3RhY2sgdG8gZmluZCB0aGVtLiAgKi8KICAgIGlm IChudW0gIT0gLTEpCiAgICAgIHsKQEAgLTMxODksMTEgKzMwOTYsMTEgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3N0YWNrLmMKICAKICAgICAgICBpZiAoaGlnaGVzdF9vZmZzZXQg PT0gLTEpCiAgCXN0YXJ0ID0gZ2RiYXJjaF9mcmFtZV9hcmdzX3NraXAgKGdldF9mcmFtZV9hcmNo IChmcmFtZSkpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3N5bW1pc2MuYworSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3N5bW1pc2MuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTQtMDYtMjQgMTY6MDc6MjYu NzQ3OTg2MzIyICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvc3ltbWlzYy5jCTIw MTQtMDYtMjQgMTY6MDc6MjcuMjY3OTg2OTAwICswMjAwCi1AQCAtNTMwLDExICs1MzAsMTEgQEAg cHJpbnRfc3ltYm9sICh2b2lkICphcmdzKQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9n ZGIvc3ltbWlzYy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTQ2MzE4OTAyICswMTAwCisrKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvc3ltbWlzYy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTg5MzI2 ODc0ICswMTAwCitAQCAtNTM0LDExICs1MzQsMTEgQEAgcHJpbnRfc3ltYm9sICh2b2lkICphcmdz KQogIAogIAljYXNlIExPQ19DT05TVF9CWVRFUzoKICAJICB7CkBAIC0zMjA4LDI5ICszMTE1LDIw IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9zeW1taXNjLmMKICAJICAgIGZvciAo aSA9IDA7IGkgPCBUWVBFX0xFTkdUSCAodHlwZSk7IGkrKykKICAJICAgICAgZnByaW50Zl9maWx0 ZXJlZCAob3V0ZmlsZSwgIiAlMDJ4IiwKICAJCQkJKHVuc2lnbmVkKSBTWU1CT0xfVkFMVUVfQllU RVMgKHN5bWJvbClbaV0pOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3RhcmdldC5j CitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL3RhcmdldC5jCTIwMTQtMDYtMTMgMDM6NTk6 MzcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGFyZ2V0LmMJ MjAxNC0wNi0yNCAxNjowNzoyNy4yNjg5ODY5MDEgKzAyMDAKLUBAIC01NSw3ICs1NSw3IEBAIHN0 YXRpYyBpbnQgZGVmYXVsdF93YXRjaHBvaW50X2FkZHJfd2l0aGkKKy0tLSBnZGItNy44LjUwLjIw MTQxMjI4Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTQ3MzE4OTA2ICsw MTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LmMJMjAxNS0wMS0wNiAyMjo0 NDo0My4xOTAzMjY4NzggKzAxMDAKK0BAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBpbnQgZGVmYXVs dF93YXRjaHBvaW50X2FkZHJfd2l0aGkKICAJCQkJCQkgQ09SRV9BRERSLCBDT1JFX0FERFIsIGlu dCk7CiAgCiAgc3RhdGljIGludCBkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAo c3RydWN0IHRhcmdldF9vcHMgKiwKIC0JCQkJCQlDT1JFX0FERFIsIGludCk7CiArCQkJCQkJQ09S RV9BRERSLCBMT05HRVNUKTsKICAKLSBzdGF0aWMgdm9pZCBkZWZhdWx0X3JjbWQgKHN0cnVjdCB0 YXJnZXRfb3BzICosIGNoYXIgKiwgc3RydWN0IHVpX2ZpbGUgKik7Ci0gCi1AQCAtMTUzLDcgKzE1 Myw3IEBAIHN0YXRpYyBpbnQgZGVidWdfdG9fd2F0Y2hwb2ludF9hZGRyX3dpdGgKLSAJCQkJCQkg IENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOworIHN0YXRpYyB2b2lkIGRlZmF1bHRfcmNtZCAo c3RydWN0IHRhcmdldF9vcHMgKiwgY29uc3QgY2hhciAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAK LSBzdGF0aWMgaW50IGRlYnVnX3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0 IHRhcmdldF9vcHMgKnNlbGYsCi0tCQkJCQkJIENPUkVfQUREUiwgaW50KTsKLSsJCQkJCQkgQ09S RV9BRERSLCBMT05HRVNUKTsKLSAKLSBzdGF0aWMgaW50IGRlYnVnX3RvX2Nhbl9hY2NlbF93YXRj aHBvaW50X2NvbmRpdGlvbiAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCi0gCQkJCQkJICAgIENP UkVfQUREUiwgaW50LCBpbnQsCi1AQCAtMjk1MSw3ICsyOTUxLDcgQEAgdGFyZ2V0X2ZpbGVpb19y ZWFkX3N0cmFsbG9jIChjb25zdCBjaGFyCitAQCAtMjk3NSw3ICsyOTc1LDcgQEAgdGFyZ2V0X2Zp bGVpb19yZWFkX3N0cmFsbG9jIChjb25zdCBjaGFyCiAgCiAgc3RhdGljIGludAogIGRlZmF1bHRf cmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAg LTMyMzksMjAgKzMxMzcsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rhcmdl dC5jCiAgewogICAgcmV0dXJuIChsZW4gPD0gZ2RiYXJjaF9wdHJfYml0ICh0YXJnZXRfZ2RiYXJj aCAoKSkgLyBUQVJHRVRfQ0hBUl9CSVQpOwogIH0KLUBAIC0zNjY0LDcgKzM2NjQsNyBAQCBkZWJ1 Z190b19jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0Ci0gCi0gc3RhdGljIGludAotIGRl YnVnX3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNl bGYsCi0tCQkJCSAgICAgIENPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQotKwkJCQkgICAgICBDT1JF X0FERFIgYWRkciwgTE9OR0VTVCBsZW4pCi0gewotICAgQ09SRV9BRERSIHJldHZhbDsKLSAKLUlu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90YXJnZXQuaAorSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3RhcmdldC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYx My5vcmlnL2dkYi90YXJnZXQuaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjA2MDk4NjY3MCArMDIwMAot KysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3RhcmdldC5oCTIwMTQtMDYtMjQgMTY6MDc6Mjcu MjY4OTg2OTAxICswMjAwCi1AQCAtNDc1LDcgKzQ3NSw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCist LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90YXJnZXQuaAkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjU0NzMxODkwNiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5o CTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTkwMzI2ODc4ICswMTAwCitAQCAtNDg5LDcgKzQ4OSw3IEBA IHN0cnVjdCB0YXJnZXRfb3BzCiAgICAgIC8qIERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5l IGlzIHByb3ZpZGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKICAgICAgICAgdGFyZ2V0XyogbWFj cm8uICAqLwogICAgICBpbnQgKCp0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpIChzdHJ1 Y3QgdGFyZ2V0X29wcyAqLApAQCAtMzI2MSwxMSArMzE1MCwxMSBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvdGFyZ2V0LmgKICAgICAgICBUQVJHRVRfREVGQVVMVF9GVU5DIChkZWZh dWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk7CiAgCiAgICAgIGludCAoKnRvX2Nhbl9h Y2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbikgKHN0cnVjdCB0YXJnZXRfb3BzICosCi1JbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdHJhY2Vwb2ludC5jCitJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvdHJhY2Vwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0 MDYxMy5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNC0wNi0xMyAwMzo1OTozNy4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90cmFjZXBvaW50LmMJMjAxNC0wNi0y NCAxNjowNzoyNy4yNjk5ODY5MDIgKzAyMDAKLUBAIC05MzAsMTMgKzkzMCwxMyBAQCBhZGRfcmVn aXN0ZXIgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKmNvCistLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NDkzMTg5MTYgKzAx MDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90cmFjZXBvaW50LmMJMjAxNS0wMS0wNiAy Mjo0NDo0My4xOTEzMjY4ODMgKzAxMDAKK0BAIC05MjgsMTMgKzkyOCwxMyBAQCBhZGRfcmVnaXN0 ZXIgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKmNvCiAgc3RhdGljIHZvaWQKICBhZGRfbWVtcmFu Z2UgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKm1lbXJhbmdlcywgCiAgCSAgICAgIGludCB0eXBl LCBiZmRfc2lnbmVkX3ZtYSBiYXNlLApAQCAtMzI4MSw3ICszMTcwLDcgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3RyYWNlcG9pbnQuYwogICAgICB9CiAgCiAgICAvKiB0eXBlOiBt ZW1yYW5nZV9hYnNvbHV0ZSA9PSBtZW1vcnksIG90aGVyIG4gPT0gYmFzZXJlZyAqLwotQEAgLTk2 Niw3ICs5NjYsNyBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCitA QCAtOTY0LDcgKzk2NCw3IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0 ICoKICAJCUNPUkVfQUREUiBzY29wZSwKICAJCWludCB0cmFjZV9zdHJpbmcpCiAgewpAQCAtMzI5 MCw3ICszMTc5LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3RyYWNlcG9pbnQu YwogICAgdW5zaWduZWQgaW50IHJlZzsKICAgIGJmZF9zaWduZWRfdm1hIG9mZnNldDsKICAgIGlu dCB0cmVhdF9hc19leHByID0gMDsKLUBAIC05OTAsOCArOTkwLDggQEAgY29sbGVjdF9zeW1ib2wg KHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgorQEAgLTk4OCw4ICs5ODgsOCBAQCBjb2xsZWN0X3N5 bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCiAgCSAgY2hhciB0bXBbNDBdOwogIAogIAkg IHNwcmludGZfdm1hICh0bXAsIG9mZnNldCk7CkBAIC0zMzAxLDcgKzMxOTAsNyBAQCBJbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdHJhY2Vwb2ludC5jCiAgCQkJICAgdG1wIC8qIGFkZHJl c3MgKi8pOwogIAl9CiAgICAgICAgLyogQSBzdHJ1Y3QgbWF5IGJlIGEgQysrIGNsYXNzIHdpdGgg c3RhdGljIGZpZWxkcywgZ28gdG8gZ2VuZXJhbAotQEAgLTEwMjMsOCArMTAyMyw4IEBAIGNvbGxl Y3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC0xMDIxLDggKzEwMjEsOCBA QCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCiAgICAgICAgb2Zmc2V0 ID0gZnJhbWVfb2Zmc2V0ICsgU1lNQk9MX1ZBTFVFIChzeW0pOwogICAgICAgIGlmIChpbmZvX3Zl cmJvc2UpCiAgCXsKQEAgLTMzMTIsNyArMzIwMSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi90cmFjZXBvaW50LmMKICAJICBwcmludGZfdm1hIChvZmZzZXQpOwogIAkgIHByaW50 Zl9maWx0ZXJlZCAoIiBmcm9tIGZyYW1lIHB0ciByZWcgJWRcbiIsIHJlZyk7CiAgCX0KLUBAIC0x MDM1LDggKzEwMzUsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAq CitAQCAtMTAzMyw4ICsxMDMzLDggQEAgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9u X2xpc3QgKgogICAgICAgIG9mZnNldCA9IDA7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJ ewpAQCAtMzMyMyw3ICszMjEyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Ry YWNlcG9pbnQuYwogIAkgIHByaW50Zl92bWEgKG9mZnNldCk7CiAgCSAgcHJpbnRmX2ZpbHRlcmVk ICgiIGZyb20gcmVnICVkXG4iLCByZWcpOwogIAl9Ci1AQCAtMTA0Nyw4ICsxMDQ3LDggQEAgY29s bGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgorQEAgLTEwNDUsOCArMTA0NSw4 IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKICAgICAgICBvZmZz ZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFMVUUgKHN5bSk7CiAgICAgICAgaWYgKGluZm9f dmVyYm9zZSkKICAJewpAQCAtMzM1OCwxMSArMzI0NywxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvdHJhY2Vwb2ludC5jCiAgCX0KICAgICAgICBpZiAoQkxPQ0tfRlVOQ1RJT04g KGJsb2NrKSkKICAJYnJlYWs7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdHlwZXBy aW50LmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90eXBlcHJpbnQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdHlwZXByaW50LmMJMjAxNC0w Ni0yNCAxNjowNzoyNi4zMzk5ODU4NzAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi90eXBlcHJpbnQuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI2OTk4NjkwMiArMDIwMAotQEAgLTQw NSw3ICs0MDUsNyBAQCB3aGF0aXNfZXhwIChjaGFyICpleHAsIGludCBzaG93KQorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41 NTAzMTg5MjEgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90eXBlcHJpbnQuYwky MDE1LTAxLTA2IDIyOjQ0OjQzLjE5MTMyNjg4MyArMDEwMAorQEAgLTQwMiw3ICs0MDIsNyBAQCB3 aGF0aXNfZXhwIChjaGFyICpleHAsIGludCBzaG93KQogICAgc3RydWN0IHR5cGUgKnJlYWxfdHlw ZSA9IE5VTEw7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAgIGludCBmdWxsID0gMDsKQEAgLTMz NzEsMTEgKzMyNjAsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3R5cGVwcmlu dC5jCiAgICBpbnQgdXNpbmdfZW5jID0gMDsKICAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z IG9wdHM7CiAgICBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25zIGZsYWdzID0gZGVmYXVsdF9wdHlw ZV9mbGFnczsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxhcml0aC5jCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsYXJpdGguYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdmFsYXJpdGguYwkyMDE0LTA2LTI0IDE2OjA3OjI2 LjQxMTk4NTk1MCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbGFyaXRoLmMJ MjAxNC0wNi0yNCAxNjowNzoyNy4yNjk5ODY5MDIgKzAyMDAKLUBAIC0xOTAsMTIgKzE5MCwxMyBA QCB2YWx1ZV9zdWJzY3JpcHQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPCistLS0gZ2RiLTcuOC41 MC4yMDE0MTIyOC5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTUwMzE4 OTIxICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsYXJpdGguYwkyMDE1LTAx LTA2IDIyOjQ1OjU0LjAxMTY3MDUxMiArMDEwMAorQEAgLTE4OCwxMiArMTg4LDEzIEBAIHZhbHVl X3N1YnNjcmlwdCAoc3RydWN0IHZhbHVlICphcnJheSwgTE8KICAgICB0byBkb3VibGVzLCBidXQg bm8gbG9uZ2VyIGRvZXMuICAqLwogIAogIHN0cnVjdCB2YWx1ZSAqCkBAIC0zMzkyLDE4ICszMjgx LDE2IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxhcml0aC5jCiAgICBMT05H RVNUIGVsdF9zdHJpZGUgPSBUWVBFX0JZVEVfU1RSSURFIChUWVBFX0lOREVYX1RZUEUgKGFycmF5 X3R5cGUpKTsKICAgIHN0cnVjdCB2YWx1ZSAqdjsKICAKLUBAIC0yMDQsNyArMjA1LDkgQEAgdmFs dWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKgorQEAgLTIwMiw3ICsyMDMsNyBA QCB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqCiAgICBpZiAoVFlQRV9O T1RfQUxMT0NBVEVEIChhcnJheV90eXBlKSkKICAgICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9y IGVsZW1lbnQgYmVjYXVzZSBub3QgYWxsb2NhdGVkIikpOwogIAogLSAgZWx0X29mZnMgPSBsb25n ZXN0X3RvX2ludCAoaW5kZXggLSBsb3dlcmJvdW5kKTsKLSsgIGlmIChpbmRleCA8IGxvd2VyYm91 bmQpCi0rICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IikpOwogKyAgZWx0X29m ZnMgPSBpbmRleCAtIGxvd2VyYm91bmQ7CiAgCiAgICBpZiAoZWx0X3N0cmlkZSA+IDApCiAgICAg IGVsdF9vZmZzICo9IGVsdF9zdHJpZGU7Ci1AQCAtNjYyLDcgKzY2NSw3IEBAIHZhbHVlX2NvbmNh dCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QKK0BAIC02NjMsNyArNjY0LDcgQEAgdmFsdWVf Y29uY2F0IChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAogICAgc3RydWN0IHZhbHVlICppbnZh bDE7CiAgICBzdHJ1Y3QgdmFsdWUgKmludmFsMjsKICAgIHN0cnVjdCB2YWx1ZSAqb3V0dmFsID0g TlVMTDsKQEAgLTM0MTIsNyArMzI5OSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi92YWxhcml0aC5jCiAgICBpbnQgY291bnQsIGlkeDsKICAgIGNoYXIgKnB0cjsKICAgIGNoYXIg aW5jaGFyOwotQEAgLTE1MTUsNyArMTUxOCw3IEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3QgdmFsdWUg KmFyZzEsIHN0cnVjdAorQEAgLTE1MTYsNyArMTUxNyw3IEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3Qg dmFsdWUgKmFyZzEsIHN0cnVjdAogIGludAogIHZhbHVlX2xvZ2ljYWxfbm90IChzdHJ1Y3QgdmFs dWUgKmFyZzEpCiAgewpAQCAtMzQyMSw3ICszMzA4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL3ZhbGFyaXRoLmMKICAgIGNvbnN0IGdkYl9ieXRlICpwOwogICAgc3RydWN0IHR5 cGUgKnR5cGUxOwogIAotQEAgLTE1NDYsMTEgKzE1NDksMTEgQEAgdmFsdWVfbG9naWNhbF9ub3Qg KHN0cnVjdCB2YWx1ZSAqYXJnMSkKK0BAIC0xNTQ3LDExICsxNTQ4LDExIEBAIHZhbHVlX2xvZ2lj YWxfbm90IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgc3RhdGljIGludAogIHZhbHVlX3N0cmNtcCAo c3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QgdmFsdWUgKmFyZzIpCiAgewpAQCAtMzQzNiwxMSAr MzMyMywxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsYXJpdGguYwogIAog ICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQogICAgICB7Ci1JbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvdmFsb3BzLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxv cHMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdmFsb3Bz LmMJMjAxNC0wNi0yNCAxNjowNzoyNi45NDY5ODY1NDMgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi92YWxvcHMuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI3MDk4NjkwMyArMDIwMAot QEAgLTUxLDExICs1MSwxMSBAQCBzdGF0aWMgaW50IHR5cGVjbXAgKGludCBzdGF0aWNwLCBpbnQg dmFyCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi92YWxvcHMuYwkyMDE1LTAxLTA2 IDIyOjQ0OjQxLjU1NTMxODk0NSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Zh bG9wcy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTkyMzI2ODg4ICswMTAwCitAQCAtNDcsMTEgKzQ3 LDExIEBAIHN0YXRpYyBpbnQgdHlwZWNtcCAoaW50IHN0YXRpY3AsIGludCB2YXIKICAJCSAgICBz dHJ1Y3QgZmllbGQgdDFbXSwgc3RydWN0IHZhbHVlICp0MltdKTsKICAKICBzdGF0aWMgc3RydWN0 IHZhbHVlICpzZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICosIHN0cnVjdCB2YWx1ZSAq LCAKQEAgLTM0NTQsNyArMzM0MSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92 YWxvcHMuYwogIAogIHN0YXRpYyBpbnQgZmluZF9vbG9hZF9jaGFtcF9uYW1lc3BhY2UgKHN0cnVj dCB2YWx1ZSAqKiwgaW50LAogIAkJCQkgICAgICAgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICos Ci1AQCAtODMsNyArODMsNyBAQCBvbG9hZF9jbGFzc2lmaWNhdGlvbiBjbGFzc2lmeV9vbG9hZF9t YXRjCitAQCAtNzksNyArNzksNyBAQCBvbG9hZF9jbGFzc2lmaWNhdGlvbiBjbGFzc2lmeV9vbG9h ZF9tYXRjCiAgCQkJCQkgICBpbnQsIGludCk7CiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdmFs dWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdHlwZSAqLApAQCAtMzQ2Myw3ICsz MzUwLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCiAgCQkJCQkJ ICAgICBjb25zdCBjaGFyICosCiAgCQkJCQkJICAgICBzdHJ1Y3QgdHlwZSAqLAogIAkJCQkJCSAg ICAgaW50LCBlbnVtIG5vc2lkZSk7Ci1AQCAtMTAwLDkgKzEwMCw5IEBAIHN0YXRpYyBDT1JFX0FE RFIgYWxsb2NhdGVfc3BhY2VfaW5faW5mZXIKK0BAIC05Niw5ICs5Niw5IEBAIHN0YXRpYyBDT1JF X0FERFIgYWxsb2NhdGVfc3BhY2VfaW5faW5mZXIKICBzdGF0aWMgc3RydWN0IHZhbHVlICpjYXN0 X2ludG9fY29tcGxleCAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHZhbHVlICopOwogIAogIHN0YXRp YyB2b2lkIGZpbmRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAqKiwgY29uc3QgY2hhciAqLApA QCAtMzQ3NSw3ICszMzYyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9w cy5jCiAgCiAgdm9pZCBfaW5pdGlhbGl6ZV92YWxvcHMgKHZvaWQpOwogIAotQEAgLTE4Nyw3ICsx ODcsNyBAQCBmaW5kX2Z1bmN0aW9uX2luX2luZmVyaW9yIChjb25zdCBjaGFyICpuCitAQCAtMTgz LDcgKzE4Myw3IEBAIGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKGNvbnN0IGNoYXIgKm4KICAg ICBzcGFjZS4gICovCiAgCiAgc3RydWN0IHZhbHVlICoKQEAgLTM0ODQsNyArMzM3MSw3IEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIHsKICAgIHN0cnVjdCBvYmpm aWxlICpvYmpmOwogICAgc3RydWN0IHZhbHVlICp2YWwgPSBmaW5kX2Z1bmN0aW9uX2luX2luZmVy aW9yICgibWFsbG9jIiwgJm9iamYpOwotQEAgLTI2MCw3ICsyNjAsOCBAQCB2YWx1ZV9jYXN0X3N0 cnVjdHMgKHN0cnVjdCB0eXBlICp0eXBlLCBzCitAQCAtMjU2LDcgKzI1Niw4IEBAIHZhbHVlX2Nh c3Rfc3RydWN0cyAoc3RydWN0IHR5cGUgKnR5cGUsIHMKICAgIGlmIChUWVBFX05BTUUgKHQyKSAh PSBOVUxMKQogICAgICB7CiAgICAgICAgLyogVHJ5IGRvd25jYXN0aW5nIHVzaW5nIHRoZSBydW4t dGltZSB0eXBlIG9mIHRoZSB2YWx1ZS4gICovCkBAIC0zNDk0LDcgKzMzODEsNyBAQCBJbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsb3BzLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqcmVh bF90eXBlOwogIAogICAgICAgIHJlYWxfdHlwZSA9IHZhbHVlX3J0dGlfdHlwZSAodjIsICZmdWxs LCAmdG9wLCAmdXNpbmdfZW5jKTsKLUBAIC00MDAsMTIgKzQwMSwxMiBAQCB2YWx1ZV9jYXN0IChz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhCitAQCAtMzk2LDEyICszOTcsMTIgQEAgdmFsdWVf Y2FzdCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YQogICAgaWYgKGNvZGUxID09IFRZUEVf Q09ERV9BUlJBWSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5cGUgPSBU WVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKQEAgLTM1MDksNyArMzM5Niw3IEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAkgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdo X2JvdW5kLCBuZXdfbGVuZ3RoOwogIAogIAkgIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5n ZV90eXBlLCAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotQEAgLTYzOSw3ICs2NDAsNyBA QCB2YWx1ZV9yZWludGVycHJldF9jYXN0IChzdHJ1Y3QgdHlwZSAqdHlwCitAQCAtNjM1LDcgKzYz Niw3IEBAIHZhbHVlX3JlaW50ZXJwcmV0X2Nhc3QgKHN0cnVjdCB0eXBlICp0eXAKICBzdGF0aWMg aW50CiAgZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNpcmVkX3R5cGUsCiAg CQkgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM1MTgsNyArMzQwNSw3IEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAkJICAgICAgQ09SRV9BRERS IGFkZHJlc3MsCiAgCQkgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAgICAgIHN0cnVjdCB0 eXBlICpzZWFyY2hfdHlwZSwKLUBAIC02NTEsOCArNjUyLDggQEAgZHluYW1pY19jYXN0X2NoZWNr XzEgKHN0cnVjdCB0eXBlICpkZXNpcgorQEAgLTY0Nyw4ICs2NDgsOCBAQCBkeW5hbWljX2Nhc3Rf Y2hlY2tfMSAoc3RydWN0IHR5cGUgKmRlc2lyCiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9O X0JBU0VDTEFTU0VTIChzZWFyY2hfdHlwZSkgJiYgcmVzdWx0X2NvdW50IDwgMjsgKytpKQogICAg ICB7CkBAIC0zNTI5LDcgKzM0MTYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv dmFsb3BzLmMKICAKICAgICAgICBpZiAoY2xhc3NfdHlwZXNfc2FtZV9wIChkZXNpcmVkX3R5cGUs IFRZUEVfQkFTRUNMQVNTIChzZWFyY2hfdHlwZSwgaSkpKQogIAl7Ci1AQCAtNjg2LDcgKzY4Nyw3 IEBAIGR5bmFtaWNfY2FzdF9jaGVja18xIChzdHJ1Y3QgdHlwZSAqZGVzaXIKK0BAIC02ODIsNyAr NjgzLDcgQEAgZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNpcgogIHN0YXRp YyBpbnQKICBkeW5hbWljX2Nhc3RfY2hlY2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyZWRfdHlwZSwK ICAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzUzOCw3ICszNDI1LDcgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCiAgCQkgICAgICBDT1JFX0FE RFIgYWRkcmVzcywKICAJCSAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgICAgc3RydWN0 IHR5cGUgKnNlYXJjaF90eXBlLAotQEAgLTY5Niw3ICs2OTcsNyBAQCBkeW5hbWljX2Nhc3RfY2hl Y2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyCitAQCAtNjkyLDcgKzY5Myw3IEBAIGR5bmFtaWNfY2Fz dF9jaGVja18yIChzdHJ1Y3QgdHlwZSAqZGVzaXIKICAKICAgIGZvciAoaSA9IDA7IGkgPCBUWVBF X05fQkFTRUNMQVNTRVMgKHNlYXJjaF90eXBlKSAmJiByZXN1bHRfY291bnQgPCAyOyArK2kpCiAg ICAgIHsKQEAgLTM1NDcsNyArMzQzNCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi92YWxvcHMuYwogIAogICAgICAgIGlmICghIEJBU0VUWVBFX1ZJQV9QVUJMSUMgKHNlYXJjaF90 eXBlLCBpKSkKICAJY29udGludWU7Ci1AQCAtNzI3LDcgKzcyOCw4IEBAIGR5bmFtaWNfY2FzdF9j aGVja18yIChzdHJ1Y3QgdHlwZSAqZGVzaXIKK0BAIC03MjMsNyArNzI0LDggQEAgZHluYW1pY19j YXN0X2NoZWNrXzIgKHN0cnVjdCB0eXBlICpkZXNpcgogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVf ZHluYW1pY19jYXN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhbHVlICphcmcpCiAgewpA QCAtMzU1Nyw3ICszNDQ0LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9w cy5jCiAgICBzdHJ1Y3QgdHlwZSAqcmVzb2x2ZWRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUp OwogICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo YXJnKSk7CiAgICBzdHJ1Y3QgdHlwZSAqY2xhc3NfdHlwZSwgKnJ0dGlfdHlwZTsKLUBAIC05NTgs NyArOTYwLDcgQEAgdmFsdWVfYXRfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQQorQEAg LTk1NCw3ICs5NTYsNyBAQCB2YWx1ZV9hdF9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9B CiAgfQogIAogIHZvaWQKQEAgLTM1NjYsNyArMzQ1Myw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi92YWxvcHMuYwogIAkJICAgaW50IHN0YWNrLCBDT1JFX0FERFIgbWVtYWRkciwK ICAJCSAgIGdkYl9ieXRlICpidWZmZXIsIHNpemVfdCBsZW5ndGgpCiAgewotQEAgLTEwNTgsNyAr MTA2MCw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKK0BAIC0x MDU0LDcgKzEwNTYsNyBAQCB2YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1ZSAqdG92YWwsIHN0cnVj CiAgICAgICAgewogIAljb25zdCBnZGJfYnl0ZSAqZGVzdF9idWZmZXI7CiAgCUNPUkVfQUREUiBj aGFuZ2VkX2FkZHI7CkBAIC0zNTc1LDE2ICszNDYyLDE2IEBAIEluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi92YWxvcHMuYwogICAgICAgICAgZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9O R0VTVCldOwogIAogIAlpZiAodmFsdWVfYml0c2l6ZSAodG92YWwpKQotQEAgLTExMzcsNyArMTEz OSw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKLSAJICAgIGlm ICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCi0gCSAgICAgIHsKLSAJCXN0cnVjdCB2YWx1ZSAqcGFy ZW50ID0gdmFsdWVfcGFyZW50ICh0b3ZhbCk7Ci0tCQlpbnQgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0 IChwYXJlbnQpICsgdmFsdWVfb2Zmc2V0ICh0b3ZhbCk7Ci0rCQlMT05HRVNUIG9mZnNldCA9IHZh bHVlX29mZnNldCAocGFyZW50KSArIHZhbHVlX29mZnNldCAodG92YWwpOwotIAkJaW50IGNoYW5n ZWRfbGVuOwotIAkJZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VTVCldOwotIAkJaW50IG9w dGltLCB1bmF2YWlsOwotQEAgLTE2MDUsNyArMTYwNyw3IEBAIHZhbHVlX2FycmF5IChpbnQgbG93 Ym91bmQsIGludCBoaWdoYm91bmQKK0BAIC0xMTIzLDcgKzExMjUsNyBAQCB2YWx1ZV9hc3NpZ24g KHN0cnVjdCB2YWx1ZSAqdG92YWwsIHN0cnVjCisgCWlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkp CisgCSAgeworIAkgICAgc3RydWN0IHZhbHVlICpwYXJlbnQgPSB2YWx1ZV9wYXJlbnQgKHRvdmFs KTsKKy0JICAgIGludCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHBhcmVudCkgKyB2YWx1ZV9vZmZz ZXQgKHRvdmFsKTsKKysJICAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChwYXJlbnQp ICsgdmFsdWVfb2Zmc2V0ICh0b3ZhbCk7CisgCSAgICBpbnQgY2hhbmdlZF9sZW47CisgCSAgICBn ZGJfYnl0ZSBidWZmZXJbc2l6ZW9mIChMT05HRVNUKV07CisgCSAgICBpbnQgb3B0aW0sIHVuYXZh aWw7CitAQCAtMTYwNCw3ICsxNjA2LDcgQEAgdmFsdWVfYXJyYXkgKGludCBsb3dib3VuZCwgaW50 IGhpZ2hib3VuZAogIHsKICAgIGludCBuZWxlbTsKICAgIGludCBpZHg7CkBAIC0zNTkzLDcgKzM0 ODAsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsb3BzLmMKICAgIHN0cnVj dCB2YWx1ZSAqdmFsOwogICAgc3RydWN0IHR5cGUgKmFycmF5dHlwZTsKICAKLUBAIC0xNzgwLDcg KzE3ODIsNyBAQCB0eXBlY21wIChpbnQgc3RhdGljcCwgaW50IHZhcmFyZ3MsIGludCBuCitAQCAt MTc3OSw3ICsxNzgxLDcgQEAgdHlwZWNtcCAoaW50IHN0YXRpY3AsIGludCB2YXJhcmdzLCBpbnQg bgogIAogIHN0YXRpYyB2b2lkCiAgdXBkYXRlX3NlYXJjaF9yZXN1bHQgKHN0cnVjdCB2YWx1ZSAq KnJlc3VsdF9wdHIsIHN0cnVjdCB2YWx1ZSAqdiwKQEAgLTM2MDIsNyArMzQ4OSw3IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAkJICAgICAgY29uc3QgY2hhciAq bmFtZSwgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaWYgKHYgIT0gTlVMTCkKLUBAIC0xODA0 LDEwICsxODA2LDEwIEBAIHVwZGF0ZV9zZWFyY2hfcmVzdWx0IChzdHJ1Y3QgdmFsdWUgKipyZXMK K0BAIC0xODAzLDEwICsxODA1LDEwIEBAIHVwZGF0ZV9zZWFyY2hfcmVzdWx0IChzdHJ1Y3QgdmFs dWUgKipyZXMKICAgICBsb29rdXAgaXMgYW1iaWd1b3VzLiAgKi8KICAKICBzdGF0aWMgdm9pZApA QCAtMzYxNSw3ICszNTAyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9w cy5jCiAgCQkJc3RydWN0IHR5cGUgKm91dGVybW9zdF90eXBlKQogIHsKICAgIGludCBpOwotQEAg LTE4NTYsNyArMTg1OCw3IEBAIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5h bWUKK0BAIC0xODUzLDcgKzE4NTUsNyBAQCBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBj aGFyICpuYW1lCiAgCQkgICA8dmFyaWFudCBmaWVsZD4uICAqLwogIAogIAkJc3RydWN0IHZhbHVl ICp2ID0gTlVMTDsKQEAgLTM2MjQsNyArMzUxMSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi92YWxvcHMuYwogIAogIAkJLyogVGhpcyBpcyBwcmV0dHkgZ3Jvc3MuICBJbiBHKyss IHRoZSBvZmZzZXQgaW4gYW4KICAJCSAgIGFub255bW91cyB1bmlvbiBpcyByZWxhdGl2ZSB0byB0 aGUgYmVnaW5uaW5nIG9mIHRoZQotQEAgLTE4OTUsNyArMTg5Nyw3IEBAIGRvX3NlYXJjaF9zdHJ1 Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUKK0BAIC0xODkyLDcgKzE4OTQsNyBAQCBkb19zZWFy Y2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lCiAgCQkJICAgICAmJiAoc3RyY21wX2l3 IChuYW1lLCAKICAJCQkJCSAgICBUWVBFX0JBU0VDTEFTU19OQU1FICh0eXBlLCAKICAJCQkJCQkJ CSBpKSkgPT0gMCkpOwpAQCAtMzYzMyw3ICszNTIwLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL3ZhbG9wcy5jCiAgCiAgICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0 eXBlLCBpKSkKICAJewotQEAgLTE5NjgsMTEgKzE5NzAsMTEgQEAgZG9fc2VhcmNoX3N0cnVjdF9m aWVsZCAoY29uc3QgY2hhciAqbmFtZQorQEAgLTE5NjUsMTEgKzE5NjcsMTEgQEAgZG9fc2VhcmNo X3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZQogICAgIGZpZWxkcywgbG9vayBmb3IgYSBi YXNlY2xhc3MgbmFtZWQgTkFNRS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0z NjQ3LDcgKzM1MzQsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsb3BzLmMK ICAKICAgIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKG5hbWUsIGFyZzEsIG9mZnNldCwgdHlwZSwg bG9va2luZ19mb3JfYmFzZWNsYXNzLAogIAkJCSAgJnJlc3VsdCwgJmJvZmZzZXQsIHR5cGUpOwot QEAgLTE5ODksNyArMTk5MSw3IEBAIHNlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5h bWUsIHMKK0BAIC0xOTg2LDcgKzE5ODgsNyBAQCBzZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBj aGFyICpuYW1lLCBzCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCiAgc2VhcmNoX3N0cnVjdF9t ZXRob2QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqKmFyZzFwLApAQCAtMzY1Niw3 ICszNTQzLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCiAgCQkg ICAgICBpbnQgKnN0YXRpY19tZW1mdW5jcCwgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50 IGk7Ci1AQCAtMjA1Myw4ICsyMDU1LDggQEAgc2VhcmNoX3N0cnVjdF9tZXRob2QgKGNvbnN0IGNo YXIgKm5hbWUsCitAQCAtMjA1MCw4ICsyMDUyLDggQEAgc2VhcmNoX3N0cnVjdF9tZXRob2QgKGNv bnN0IGNoYXIgKm5hbWUsCiAgCiAgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUp IC0gMTsgaSA+PSAwOyBpLS0pCiAgICAgIHsKQEAgLTM2NjcsNyArMzU1NCw3IEBAIEluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAogICAgICAgIGlmIChCQVNFVFlQRV9W SUFfVklSVFVBTCAodHlwZSwgaSkpCiAgCXsKLUBAIC0yMjg5LDEwICsyMjkxLDEwIEBAIHZhbHVl X3N0cnVjdF9lbHRfYml0cG9zIChzdHJ1Y3QgdmFsdWUgKioKK0BAIC0yMjg2LDEwICsyMjg4LDEw IEBAIHZhbHVlX3N0cnVjdF9lbHRfYml0cG9zIChzdHJ1Y3QgdmFsdWUgKioKICAKICBzdGF0aWMg dm9pZAogIGZpbmRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAqKmFyZ3AsIGNvbnN0IGNoYXIg Km1ldGhvZCwKQEAgLTM2ODAsNyArMzU2Nyw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi92YWxvcHMuYwogIHsKICAgIGludCBpOwogICAgc3RydWN0IGZuX2ZpZWxkICpmID0gTlVM TDsKLUBAIC0yMzQ5LDcgKzIzNTEsNyBAQCBmaW5kX21ldGhvZF9saXN0IChzdHJ1Y3QgdmFsdWUg KiphcmdwLCBjCitAQCAtMjM0Niw3ICsyMzQ4LDcgQEAgZmluZF9tZXRob2RfbGlzdCAoc3RydWN0 IHZhbHVlICoqYXJncCwgYwogICAgICAgZXh0ZW5zaW9uIG1ldGhvZHMuICAqLwogICAgZm9yIChp ID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKSAtIDE7IGkgPj0gMDsgaS0tKQogICAgICB7CkBA IC0zNjg5LDcgKzM1NzYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsb3Bz LmMKICAKICAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwgKHR5cGUsIGkpKQogIAl7Ci1A QCAtMjM5Miw3ICsyMzk0LDcgQEAgdmFsdWVfZmluZF9vbG9hZF9tZXRob2RfbGlzdCAoc3RydWN0 IHZhbAorQEAgLTIzODksNyArMjM5MSw3IEBAIHZhbHVlX2ZpbmRfb2xvYWRfbWV0aG9kX2xpc3Qg KHN0cnVjdCB2YWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0LCBz dHJ1Y3QgZm5fZmllbGQgKipmbl9saXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCAqbnVtX2ZucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRUMgKHhtZXRo b2Rfd29ya2VyX3B0cikgKip4bV93b3JrZXJfdmVjLApAQCAtMzY5OCw3ICszNTg1LDcgQEAgSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCiAgewogICAgc3RydWN0IHR5cGUg KnQ7CiAgCi1AQCAtMjQ5Niw3ICsyNDk4LDcgQEAgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0 IHZhbHVlICoqYXJncworQEAgLTI1MDAsNyArMjUwMiw3IEBAIGZpbmRfb3ZlcmxvYWRfbWF0Y2gg KHN0cnVjdCB2YWx1ZSAqKmFyZ3MKICAgIC8qIE51bWJlciBvZiBvdmVybG9hZGVkIGluc3RhbmNl cyBiZWluZyBjb25zaWRlcmVkLiAgKi8KICAgIGludCBudW1fZm5zID0gMDsKICAgIHN0cnVjdCB0 eXBlICpiYXNldHlwZSA9IE5VTEw7CkBAIC0zNzA3LDcgKzM1OTQsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvdmFsb3BzLmMKICAKICAgIHN0cnVjdCBjbGVhbnVwICphbGxfY2xl YW51cHMgPSBtYWtlX2NsZWFudXAgKG51bGxfY2xlYW51cCwgTlVMTCk7CiAgCi1AQCAtMzMwNyw3 ICszMzA5LDcgQEAgY29tcGFyZV9wYXJhbWV0ZXJzIChzdHJ1Y3QgdHlwZSAqdDEsIHN0cgorQEAg LTMzMTUsNyArMzMxNyw3IEBAIGNvbXBhcmVfcGFyYW1ldGVycyAoc3RydWN0IHR5cGUgKnQxLCBz dHIKICAgICB0aGUgZm9ybSAiRE9NQUlOOjpOQU1FIi4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2 YWx1ZSAqCkBAIC0zNzE2LDcgKzM2MDMsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdmFsb3BzLmMKICAJCQkJc3RydWN0IHR5cGUgKmN1cnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUs CiAgCQkJCXN0cnVjdCB0eXBlICppbnR5cGUsIAogIAkJCQlpbnQgd2FudF9hZGRyZXNzLAotQEAg LTMzNDEsNyArMzM0Myw3IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0 IHQKK0BAIC0zMzQ5LDcgKzMzNTEsNyBAQCB2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2Ug KHN0cnVjdCB0CiAgCSAgaWYgKHdhbnRfYWRkcmVzcykKICAJICAgIHJldHVybiB2YWx1ZV9mcm9t X2xvbmdlc3QKICAJICAgICAgKGxvb2t1cF9tZW1iZXJwdHJfdHlwZSAoVFlQRV9GSUVMRF9UWVBF ICh0LCBpKSwgZG9tYWluKSwKQEAgLTM3MjUsNyArMzYxMiw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAkgIGVsc2UgaWYgKG5vc2lkZSAhPSBFVkFMX05PUk1B TCkKICAJICAgIHJldHVybiBhbGxvY2F0ZV92YWx1ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSk7 CiAgCSAgZWxzZQotQEAgLTM1MDksNyArMzUxMSw3IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3Jl ZmVyZW5jZSAoc3RydWN0IHQKK0BAIC0zNTE3LDcgKzM1MTksNyBAQCB2YWx1ZV9zdHJ1Y3RfZWx0 X2Zvcl9yZWZlcmVuY2UgKHN0cnVjdCB0CiAgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNTRVMg KHQpIC0gMTsgaSA+PSAwOyBpLS0pCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnY7CkBA IC0zNzM0LDcgKzM2MjEsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsb3Bz LmMKICAKICAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwgKHQsIGkpKQogIAliYXNlX29m ZnNldCA9IDA7Ci1AQCAtMzU5OSw3ICszNjAxLDcgQEAgdmFsdWVfbWF5YmVfbmFtZXNwYWNlX2Vs dCAoY29uc3Qgc3RydWN0CitAQCAtMzU5OCw3ICszNjAwLDcgQEAgdmFsdWVfbWF5YmVfbmFtZXNw YWNlX2VsdCAoY29uc3Qgc3RydWN0CiAgCiAgc3RydWN0IHR5cGUgKgogIHZhbHVlX3J0dGlfaW5k aXJlY3RfdHlwZSAoc3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1bGwsIApAQCAtMzc0Myw3ICszNjMw LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCiAgewogICAgc3Ry dWN0IHZhbHVlICp0YXJnZXQ7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJlYWxfdHlwZSwgKnRh cmdldF90eXBlOwotQEAgLTM2NDksMTIgKzM2NTEsMTIgQEAgdmFsdWVfcnR0aV9pbmRpcmVjdF90 eXBlIChzdHJ1Y3QgdmFsdWUgKgorQEAgLTM2NDgsMTIgKzM2NTAsMTIgQEAgdmFsdWVfcnR0aV9p bmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKgogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfZnVs bF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqYXJncCwgCiAgCQkgICBzdHJ1Y3QgdHlwZSAqcnR5cGUs IApAQCAtMzc1OCwxMSArMzY0NSwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv dmFsb3BzLmMKICAgIGludCB1c2luZ19lbmMgPSAwOwogICAgc3RydWN0IHZhbHVlICpuZXdfdmFs OwogIAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHByaW50LmMKK0luZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny45MC4yMDE0MDYxMy5vcmlnL2dkYi92YWxwcmludC5jCTIwMTQtMDYtMjQgMTY6MDc6MjYuMjQ3 OTg1NzY4ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFscHJpbnQuYwkyMDE0 LTA2LTI0IDE2OjA3OjI3LjI3MDk4NjkwMyArMDIwMAotQEAgLTMwMiw3ICszMDIsNyBAQCB2YWxf cHJpbnRfc2NhbGFyX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5CistLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi92YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTU3MzE4OTU1ICsw MTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIy OjQ0OjQzLjE5MzMyNjg5MyArMDEwMAorQEAgLTI5OCw3ICsyOTgsNyBAQCB2YWxfcHJpbnRfc2Nh bGFyX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5CiAgaW50CiAgdmFscHJpbnRfY2hlY2tfdmFsaWRp dHkgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkJIHN0cnVjdCB0eXBlICp0eXBlLApAQCAt Mzc3MSw3ICszNjU4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHByaW50 LmMKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpCiAgewogICAgQ0hFQ0tfVFlQRURFRiAo dHlwZSk7Ci1AQCAtMzk5LDcgKzM5OSw3IEBAIHZhbF9wcmludF9ub3RfYXNzb2NpYXRlZCAoc3Ry dWN0IHVpX2ZpbGUKK0BAIC0zOTYsNyArMzk2LDcgQEAgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVk IChzdHJ1Y3QgdWlfZmlsZQogIAogIHZvaWQKICBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzc4MCw3ICszNjY3LDcgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHByaW50LmMKICAJCSAgIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlICpv cmlnaW5hbF92YWx1ZSwKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zLAotQEAgLTc2MSw3ICs3NjEsNyBAQCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvCitAQCAtNzU4LDcgKzc1OCw3IEBAIGdlbmVyaWNfdmFsX3ByaW50IChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY28KICAgICBSRUNVUlNFLiAgKi8KICAKICB2b2lkCkBAIC0zNzg5LDcg KzM2NzYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFscHJpbnQuYwogIAkg ICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2Us CiAgCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC05OTksNyArOTk5LDcgQEAgdmFsX3ByaW50X3R5 cGVfY29kZV9mbGFncyAoc3RydWN0IHR5cGUgKgorQEAgLTk5Niw3ICs5OTYsNyBAQCB2YWxfcHJp bnRfdHlwZV9jb2RlX2ZsYWdzIChzdHJ1Y3QgdHlwZSAqCiAgCiAgdm9pZAogIHZhbF9wcmludF9z Y2FsYXJfZm9ybWF0dGVkIChzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTM3OTgsNyArMzY4NSw3IEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxwcmludC5jCiAgCQkJICAgIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucywKICAJCQkgICAgaW50IHNpemUsCi1AQCAtMTU0MCw3ICsxNTQwLDcgQEAg cHJpbnRfZGVjaW1hbF9jaGFycyAoc3RydWN0IHVpX2ZpbGUgKnN0cgorQEAgLTE1MzgsNyArMTUz OCw3IEBAIHByaW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdCB1aV9maWxlICpzdHIKICAKICB2b2lk CiAgcHJpbnRfaGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwKQEAgLTM4MDcsNyArMzY5NCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi92YWxwcmludC5jCiAgewogICAgY29uc3QgZ2RiX2J5dGUgKnA7CiAgCi1AQCAtMTY1 NywyMiArMTY1NywyMiBAQCBtYXliZV9wcmludF9hcnJheV9pbmRleCAoc3RydWN0IHR5cGUgKmlu CitAQCAtMTY1NSwyMiArMTY1NSwyMiBAQCBtYXliZV9wcmludF9hcnJheV9pbmRleCAoc3RydWN0 IHR5cGUgKmluCiAgCiAgdm9pZAogIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5 cGUgKnR5cGUsCkBAIC0zODM2LDcgKzM3MjMsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvdmFscHJpbnQuYwogICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CiAgCiAg ICBlbHR0eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7Ci1AQCAtMTc0Myw3ICsxNzQzLDcg QEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdAorQEAgLTE3NDEsNyAr MTc0MSw3IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnQKICAJCSAg ICAgYWRkcmVzcywgc3RyZWFtLCByZWN1cnNlICsgMSwgdmFsLCBvcHRpb25zLAogIAkJICAgICBj dXJyZW50X2xhbmd1YWdlKTsKICAJICBhbm5vdGF0ZV9lbHRfcmVwIChyZXBzKTsKQEAgLTM4NDUs NyArMzczMiw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxwcmludC5jCiAg CSAgYW5ub3RhdGVfZWx0X3JlcF9lbmQgKCk7CiAgCiAgCSAgaSA9IHJlcDEgLSAxOwotQEAgLTI0 MDAsNyArMjQwMCw3IEBAIHByaW50X2NvbnZlcnRlZF9jaGFyc190b19vYnN0YWNrIChzdHJ1Y3QK K0BAIC0yMzk3LDcgKzIzOTcsNyBAQCBwcmludF9jb252ZXJ0ZWRfY2hhcnNfdG9fb2JzdGFjayAo c3RydWN0CiAgCiAgdm9pZAogIGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTM4NTQsMTAgKzM3NDEsMTAgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHByaW50LmMKICAJCSAgY29uc3QgY2hhciAqZW5jb2Rp bmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCSAgaW50IHF1b3RlX2NoYXIsIGludCBjX3N0eWxl X3Rlcm1pbmF0b3IsCiAgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHByaW50LmgKK0luZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny45MC4yMDE0MDYxMy5vcmlnL2dkYi92YWxwcmludC5oCTIwMTQtMDYtMjQgMTY6MDc6MjYuMjQ3 OTg1NzY4ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFscHJpbnQuaAkyMDE0 LTA2LTI0IDE2OjA3OjI3LjI3MTk4NjkwNCArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU1NzMxODk1NSArMDEwMAor KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHByaW50LmgJMjAxNS0wMS0wNiAyMjo0NDo0 My4xOTMzMjY4OTMgKzAxMDAKIEBAIC0xMTUsMTEgKzExNSwxMSBAQCBleHRlcm4gdm9pZCBtYXli ZV9wcmludF9hcnJheV9pbmRleCAoc3RyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkJCSAgICAgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKik7CkBAIC0zOTA4LDExICszNzk1LDExIEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi92YWxwcmludC5oCiAgCQkJICAgICAgY29uc3QgY2hhciAqZW5j b2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCQkgICAgICBpbnQgcXVvdGVfY2hhciwgaW50 IGNfc3R5bGVfdGVybWluYXRvciwKICAJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUu YworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHVlLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNC0wNi0yNCAxNjowNzoy Ny4wMjY5ODY2MzIgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5jCTIw MTQtMDYtMjQgMTY6MDc6MjcuMjcxOTg2OTA0ICswMjAwCi1AQCAtNjksMTAgKzY5LDEwIEBAIHN0 cnVjdCBpbnRlcm5hbF9mdW5jdGlvbgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv dmFsdWUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2MjMxODk3OSArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3ZhbHVlLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTQzMjY4OTggKzAx MDAKK0BAIC02NiwxMCArNjYsMTAgQEAgc3RydWN0IGludGVybmFsX2Z1bmN0aW9uCiAgc3RydWN0 IHJhbmdlCiAgewogICAgLyogTG93ZXN0IG9mZnNldCBpbiB0aGUgcmFuZ2UuICAqLwpAQCAtMzky NSw3ICszODEyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmMKICB9 OwogIAogIHR5cGVkZWYgc3RydWN0IHJhbmdlIHJhbmdlX3M7Ci1AQCAtODMsOCArODMsOCBAQCBE RUZfVkVDX08ocmFuZ2Vfcyk7CitAQCAtODAsOCArODAsOCBAQCBERUZfVkVDX08ocmFuZ2Vfcyk7 CiAgICAgW29mZnNldDIsIG9mZnNldDIrbGVuMikgb3ZlcmxhcC4gICovCiAgCiAgc3RhdGljIGlu dApAQCAtMzkzNiw3ICszODIzLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Zh bHVlLmMKICB7CiAgICBVTE9OR0VTVCBoLCBsOwogIAotQEAgLTEwOCw3ICsxMDgsNyBAQCByYW5n ZV9sZXNzdGhhbiAoY29uc3QgcmFuZ2VfcyAqcjEsIGNvbnN0CitAQCAtMTA1LDcgKzEwNSw3IEBA IHJhbmdlX2xlc3N0aGFuIChjb25zdCByYW5nZV9zICpyMSwgY29uc3QKICAgICBPRkZTRVQrTEVO R1RIKS4gICovCiAgCiAgc3RhdGljIGludApAQCAtMzk0NSw3ICszODMyLDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmMKICB7CiAgICByYW5nZV9zIHdoYXQ7CiAgICBp bnQgaTsKLUBAIC0yNTIsNyArMjUyLDcgQEAgc3RydWN0IHZhbHVlCitAQCAtMjQwLDcgKzI0MCw3 IEBAIHN0cnVjdCB2YWx1ZQogICAgICAgbHZhbCA9PSBsdmFsX3JlZ2lzdGVyLCB0aGlzIGlzIGEg ZnVydGhlciBvZmZzZXQgZnJvbQogICAgICAgbG9jYXRpb24uYWRkcmVzcyB3aXRoaW4gdGhlIHJl Z2lzdGVycyBzdHJ1Y3R1cmUuICBOb3RlIGFsc28gdGhlCiAgICAgICBtZW1iZXIgZW1iZWRkZWRf b2Zmc2V0IGJlbG93LiAgKi8KQEAgLTM5NTQsNyArMzg0MSw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi92YWx1ZS5jCiAgCiAgICAvKiBPbmx5IHVzZWQgZm9yIGJpdGZpZWxkczsg bnVtYmVyIG9mIGJpdHMgY29udGFpbmVkIGluIHRoZW0uICAqLwogICAgaW50IGJpdHNpemU7Ci1A QCAtMzIyLDggKzMyMiw4IEBAIHN0cnVjdCB2YWx1ZQorQEAgLTMxMCw4ICszMTAsOCBAQCBzdHJ1 Y3QgdmFsdWUKICAgICAgIGB0eXBlJywgYW5kIGBlbWJlZGRlZF9vZmZzZXQnIGlzIHplcm8sIHNv IGV2ZXJ5dGhpbmcgd29ya3MKICAgICAgIG5vcm1hbGx5LiAgKi8KICAgIHN0cnVjdCB0eXBlICpl bmNsb3NpbmdfdHlwZTsKQEAgLTM5NjUsNyArMzg1MiwxNiBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvdmFsdWUuYwogIAogICAgLyogVmFsdWVzIGFyZSBzdG9yZWQgaW4gYSBjaGFp biwgc28gdGhhdCB0aGV5IGNhbiBiZSBkZWxldGVkIGVhc2lseQogICAgICAgb3ZlciBjYWxscyB0 byB0aGUgaW5mZXJpb3IuICBWYWx1ZXMgYXNzaWduZWQgdG8gaW50ZXJuYWwKLUBAIC0zNTEsNyAr MzUxLDggQEAgdmFsdWVfYml0c19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZQorQEAgLTM0 Miw3ICszNDIsNyBAQCBzdHJ1Y3QgdmFsdWUKKyB9OworIAorIGludAorLXZhbHVlX2JpdHNfYXZh aWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3Ro KQorK3ZhbHVlX2JpdHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05H RVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgZ2RiX2Fzc2VydCAoIXZhbHVlLT5s YXp5KTsKKyAKK0BAIC0zNTAsNyArMzUwLDggQEAgdmFsdWVfYml0c19hdmFpbGFibGUgKGNvbnN0 IHN0cnVjdCB2YWx1ZQogIH0KICAKICBpbnQKQEAgLTM5NzUsNyArMzg3MSwyNyBAQCBJbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwogIHsKICAgIHJldHVybiB2YWx1ZV9iaXRz X2F2YWlsYWJsZSAodmFsdWUsCiAgCQkJICAgICAgIG9mZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwK LUBAIC01NTgsNyArNTU5LDggQEAgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxhYmxlIChzdHJ1Y3Qg dmFsdQorQEAgLTM1OCw3ICszNTksOCBAQCB2YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNvbnN0IHN0 cnVjdCB2YWx1CisgfQorIAorIGludAorLXZhbHVlX2JpdHNfYW55X29wdGltaXplZF9vdXQgKGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBiaXRfb2Zmc2V0LCBpbnQgYml0X2xlbmd0aCkK Kyt2YWx1ZV9iaXRzX2FueV9vcHRpbWl6ZWRfb3V0IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVl LCBMT05HRVNUIGJpdF9vZmZzZXQsCisrCQkJICAgICAgTE9OR0VTVCBiaXRfbGVuZ3RoKQorIHsK KyAgIGdkYl9hc3NlcnQgKCF2YWx1ZS0+bGF6eSk7CisgCitAQCAtNDIwLDcgKzQyMiw4IEBAIHZh bHVlX2VudGlyZWx5X29wdGltaXplZF9vdXQgKHN0cnVjdCB2YWwKKyAgICBPRkZTRVQgYml0cywg YW5kIGV4dGVuZGluZyBmb3IgdGhlIG5leHQgTEVOR1RIIGJpdHMuICAqLworIAorIHN0YXRpYyB2 b2lkCistaW5zZXJ0X2ludG9fYml0X3JhbmdlX3ZlY3RvciAoVkVDKHJhbmdlX3MpICoqdmVjdG9y cCwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKKytpbnNlcnRfaW50b19iaXRfcmFuZ2VfdmVjdG9y IChWRUMocmFuZ2VfcykgKip2ZWN0b3JwLCBMT05HRVNUIG9mZnNldCwKKysJCQkgICAgICBMT05H RVNUIGxlbmd0aCkKKyB7CisgICByYW5nZV9zIG5ld3I7CisgICBpbnQgaTsKK0BAIC01OTEsNyAr NTk0LDggQEAgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsdQogIH0KICAK ICB2b2lkCkBAIC0zOTg1LDcgKzM5MDEsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdmFsdWUuYwogIHsKICAgIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZSAodmFsdWUsCiAg CQkJICAgICAgIG9mZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwKLUBAIC01NzIsNyArNTc0LDcgQEAg bWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbAorQEAgLTYwNSw3ICs2MDks NyBAQCBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsCiAgCiAgc3RhdGlj IGludAogIGZpbmRfZmlyc3RfcmFuZ2Vfb3ZlcmxhcCAoVkVDKHJhbmdlX3MpICpyYW5nZXMsIGlu dCBwb3MsCkBAIC0zOTk0LDIwICszOTEwLDMzIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi92YWx1ZS5jCiAgewogICAgcmFuZ2VfcyAqcjsKICAgIGludCBpOwotQEAgLTc2Myw5ICs3 NjUsOSBAQCB2YWx1ZV9hdmFpbGFibGVfY29udGVudHNfYml0c19lcSAoY29uc3QKK0BAIC04MDEs OSArODA1LDkgQEAgZmluZF9maXJzdF9yYW5nZV9vdmVybGFwX2FuZF9tYXRjaCAoc3RydQorICAg IFJldHVybiB0cnVlIGlmIHRoZSBhdmFpbGFibGUgYml0cyBtYXRjaC4gICovCisgCisgc3RhdGlj IGludAorLXZhbHVlX2NvbnRlbnRzX2JpdHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMSwg aW50IG9mZnNldDEsCistCQkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBpbnQgb2Zmc2V0MiwK Ky0JCQlpbnQgbGVuZ3RoKQorK3ZhbHVlX2NvbnRlbnRzX2JpdHNfZXEgKGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsMSwgTE9OR0VTVCBvZmZzZXQxLAorKwkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs MiwgTE9OR0VTVCBvZmZzZXQyLAorKwkJCUxPTkdFU1QgbGVuZ3RoKQorIHsKKyAgIC8qIEVhY2gg YXJyYXkgZWxlbWVudCBjb3JyZXNwb25kcyB0byBhIHJhbmdlcyBzb3VyY2UgKHVuYXZhaWxhYmxl LAorICAgICAgb3B0aW1pemVkIG91dCkuICAnMScgaXMgZm9yIFZBTDEsICcyJyBmb3IgVkFMMi4g ICovCitAQCAtODYzLDkgKzg2Nyw5IEBAIHZhbHVlX2NvbnRlbnRzX2JpdHNfZXEgKGNvbnN0IHN0 cnVjdCB2YWwKICB9CiAgCiAgaW50Ci0tdmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRzX2VxIChjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIGludCBvZmZzZXQxLAotLQkJCSAgICAgY29uc3Qgc3RydWN0 IHZhbHVlICp2YWwyLCBpbnQgb2Zmc2V0MiwKLS0JCQkgICAgIGludCBsZW5ndGgpCi0rdmFsdWVf YXZhaWxhYmxlX2NvbnRlbnRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIExPTkdFU1Qg b2Zmc2V0MSwKLSsJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgTE9OR0VTVCBvZmZz ZXQyLAotKwkJCSAgICAgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgcmV0dXJuIHZhbHVlX2F2YWls YWJsZV9jb250ZW50c19iaXRzX2VxICh2YWwxLCBvZmZzZXQxICogVEFSR0VUX0NIQVJfQklULAot IAkJCQkJICAgdmFsMiwgb2Zmc2V0MiAqIFRBUkdFVF9DSEFSX0JJVCwKLUBAIC05MzAsMTMgKzkz MiwxMyBAQCBkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFsdWUKKy12YWx1ZV9j b250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBpbnQgb2Zmc2V0MSwKKy0JCSAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgaW50IG9mZnNldDIsCistCQkgICBpbnQgbGVuZ3Ro KQorK3ZhbHVlX2NvbnRlbnRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIExPTkdFU1Qg b2Zmc2V0MSwKKysJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgTE9OR0VTVCBvZmZzZXQy LAorKwkJICAgTE9OR0VTVCBsZW5ndGgpCisgeworICAgcmV0dXJuIHZhbHVlX2NvbnRlbnRzX2Jp dHNfZXEgKHZhbDEsIG9mZnNldDEgKiBUQVJHRVRfQ0hBUl9CSVQsCisgCQkJCSB2YWwyLCBvZmZz ZXQyICogVEFSR0VUX0NIQVJfQklULAorQEAgLTEwMjksMTMgKzEwMzMsMTMgQEAgZGVwcmVjYXRl ZF9zZXRfdmFsdWVfdHlwZSAoc3RydWN0IHZhbHVlCiAgICB2YWx1ZS0+dHlwZSA9IHR5cGU7CiAg fQogIApAQCAtNDAyMyw3ICszOTUyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3ZhbHVlLmMKICB7CiAgICB2YWx1ZS0+b2Zmc2V0ID0gb2Zmc2V0OwogIH0KLUBAIC0xMTA2LDgg KzExMDgsOSBAQCB2YWx1ZV9jb250ZW50c19hbGwgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpCitAQCAt MTI0Niw4ICsxMjUwLDkgQEAgdmFsdWVfcmFuZ2VzX2NvcHlfYWRqdXN0ZWQgKHN0cnVjdCB2YWx1 ZQogICAgIERTVF9PRkZTRVQrTEVOR1RIKSByYW5nZSBhcmUgd2hvbGx5IGF2YWlsYWJsZS4gICov CiAgCiAgdm9pZApAQCAtNDAzNSw3ICszOTY0LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3ZhbHVlLmMKICB7CiAgICByYW5nZV9zICpyOwogICAgaW50IGk7Ci1AQCAtMTE1OSw4 ICsxMTYyLDggQEAgdmFsdWVfY29udGVudHNfY29weV9yYXcgKHN0cnVjdCB2YWx1ZSAqZAorQEAg LTEyOTMsOCArMTI5OCw4IEBAIHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUg KmQKICAgICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFuZ2UgYXJlIHdob2xseSBhdmFpbGFibGUuICAq LwogIAogIHZvaWQKQEAgLTQwNDQsMTggKzM5NzMsMjggQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL3ZhbHVlLmMKICt2YWx1ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFsdWUgKmRz dCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAogKwkJICAgICBzdHJ1Y3QgdmFsdWUgKnNyYywgc3NpemVf dCBzcmNfb2Zmc2V0LCBzc2l6ZV90IGxlbmd0aCkKICB7Ci0gICByZXF1aXJlX25vdF9vcHRpbWl6 ZWRfb3V0IChzcmMpOworICAgaWYgKHNyYy0+bGF6eSkKKyAgICAgdmFsdWVfZmV0Y2hfbGF6eSAo c3JjKTsKK0BAIC0xMzU4LDcgKzEzNjMsOCBAQCB2YWx1ZV9vcHRpbWl6ZWRfb3V0IChzdHJ1Y3Qg dmFsdWUgKnZhbHVlCisgICAgdGhlIGZvbGxvd2luZyBMRU5HVEggYnl0ZXMuICAqLwogIAotQEAg LTEyNjUsNyArMTI2OCw3IEBAIHZhbHVlX2VudGlyZWx5X29wdGltaXplZF9vdXQgKGNvbnN0IHN0 cnUKLSB9Cisgdm9pZAorLW1hcmtfdmFsdWVfYnl0ZXNfb3B0aW1pemVkX291dCAoc3RydWN0IHZh bHVlICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKKyttYXJrX3ZhbHVlX2J5dGVzX29w dGltaXplZF9vdXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qgb2Zmc2V0LAorKwkJCQlM T05HRVNUIGxlbmd0aCkKKyB7CisgICBtYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAodmFs dWUsCisgCQkJCSBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCitAQCAtMTM2OCwxNCArMTM3NCwx NSBAQCBtYXJrX3ZhbHVlX2J5dGVzX29wdGltaXplZF9vdXQgKHN0cnVjdCB2CisgLyogU2VlIHZh bHVlLmguICAqLwogIAotIGludAotLXZhbHVlX2JpdHNfdmFsaWQgKGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsdWUsIGludCBvZmZzZXQsIGludCBsZW5ndGgpCi0rdmFsdWVfYml0c192YWxpZCAoY29u c3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKQor IHZvaWQKKy1tYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAoc3RydWN0IHZhbHVlICp2YWx1 ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKKyttYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291 dCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQsCisrCQkJICAgICAgIExPTkdF U1QgbGVuZ3RoKQogIHsKLSAgIGlmICghdmFsdWUtPm9wdGltaXplZF9vdXQpCi0gICAgIHJldHVy biAxOwotQEAgLTEyNzgsNyArMTI4MSw3IEBAIHZhbHVlX2JpdHNfdmFsaWQgKGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmEKKyAgIGluc2VydF9pbnRvX2JpdF9yYW5nZV92ZWN0b3IgKCZ2YWx1ZS0+b3B0 aW1pemVkX291dCwgb2Zmc2V0LCBsZW5ndGgpOworIH0KICAKICBpbnQKICB2YWx1ZV9iaXRzX3N5 bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtNDA2NCw3ICs0 MDAzLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmMKICB7CiAgICBp ZiAodmFsdWUtPmx2YWwgIT0gbHZhbF9jb21wdXRlZAogICAgICAgIHx8ICF2YWx1ZS0+bG9jYXRp b24uY29tcHV0ZWQuZnVuY3MtPmNoZWNrX3N5bnRoZXRpY19wb2ludGVyKQotQEAgLTEyODgsMjYg KzEyOTEsMjYgQEAgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydQorQEAg LTEzODUsMjYgKzEzOTIsMjYgQEAgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qg c3RydQogIAkJCQkJCQkJICBsZW5ndGgpOwogIH0KICAKQEAgLTQwOTUsNyArNDAzNCw3IEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5jCiAgewogICAgdmFsdWUtPnBvaW50 ZWRfdG9fb2Zmc2V0ID0gdmFsOwogIH0KLUBAIC0yMTU0LDcgKzIxNTcsNyBAQCBnZXRfaW50ZXJu YWx2YXJfZnVuY3Rpb24gKHN0cnVjdCBpbnRlcm5hCitAQCAtMjI2Myw3ICsyMjcwLDcgQEAgZ2V0 X2ludGVybmFsdmFyX2Z1bmN0aW9uIChzdHJ1Y3QgaW50ZXJuYQogIH0KICAKICB2b2lkCkBAIC00 MTA0LDcgKzQwNDMsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwog IAkJCSAgIGludCBiaXRzaXplLCBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbCkKICB7CiAgICBnZGJfYnl0 ZSAqYWRkcjsKLUBAIC0yODYwLDcgKzI4NjMsNyBAQCBzZXRfdmFsdWVfZW5jbG9zaW5nX3R5cGUg KHN0cnVjdCB2YWx1ZSAqCitAQCAtMjk2OSw3ICsyOTc2LDcgQEAgc2V0X3ZhbHVlX2VuY2xvc2lu Z190eXBlIChzdHJ1Y3QgdmFsdWUgKgogICAgIEZJRUxETk8gc2F5cyB3aGljaCBmaWVsZC4gICov CiAgCiAgc3RydWN0IHZhbHVlICoKQEAgLTQxMTMsMTYgKzQwNTIsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwogIAkJICAgICAgIGludCBmaWVsZG5vLCBzdHJ1Y3Qg dHlwZSAqYXJnX3R5cGUpCiAgewogICAgc3RydWN0IHZhbHVlICp2OwotQEAgLTI4ODgsNyArMjg5 MSw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKLSAJIGJpdC4g IEFzc3VtZSB0aGF0IHRoZSBhZGRyZXNzLCBvZmZzZXQsIGFuZCBlbWJlZGRlZCBvZmZzZXQKLSAJ IGFyZSBzdWZmaWNpZW50bHkgYWxpZ25lZC4gICovCi0gCi0tICAgICAgaW50IGJpdHBvcyA9IFRZ UEVfRklFTERfQklUUE9TIChhcmdfdHlwZSwgZmllbGRubyk7Ci0rICAgICAgTE9OR0VTVCBiaXRw b3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAoYXJnX3R5cGUsIGZpZWxkbm8pOwotICAgICAgIGludCBj b250YWluZXJfYml0c2l6ZSA9IFRZUEVfTEVOR1RIICh0eXBlKSAqIDg7Ci0gCi0gICAgICAgaWYg KGFyZzEtPm9wdGltaXplZF9vdXQpCi1AQCAtMjkxNSw3ICsyOTE4LDcgQEAgdmFsdWVfcHJpbWl0 aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworQEAgLTMwMTksNyArMzAyNiw3IEBAIHZhbHVl X3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKICAgICAgICAvKiBUaGlzIGZpZWxk IGlzIGFjdHVhbGx5IGEgYmFzZSBzdWJvYmplY3QsIHNvIHByZXNlcnZlIHRoZQogIAkgZW50aXJl IG9iamVjdCdzIGNvbnRlbnRzIGZvciBsYXRlciByZWZlcmVuY2VzIHRvIHZpcnR1YWwKICAJIGJh c2VzLCBldGMuICAqLwpAQCAtNDEzMSw3ICs0MDYxLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL3ZhbHVlLmMKICAKICAgICAgICAvKiBMYXp5IHJlZ2lzdGVyIHZhbHVlcyB3aXRo IG9mZnNldHMgYXJlIG5vdCBzdXBwb3J0ZWQuICAqLwogICAgICAgIGlmIChWQUxVRV9MVkFMIChh cmcxKSA9PSBsdmFsX3JlZ2lzdGVyICYmIHZhbHVlX2xhenkgKGFyZzEpKQotQEAgLTMwMTQsNyAr MzAxNyw3IEBAIHZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBmaWUKK0BAIC0z MTA1LDcgKzMxMTIsNyBAQCB2YWx1ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcxLCBpbnQgZmll CiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYXJnMXAs IHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCWludCBqLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTQx NDAsMTggKzQwNzAsMTUgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmMK ICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7CiAgICBzdHJ1Y3QgdHlwZSAqZnR5cGUgPSBUWVBFX0ZO X0ZJRUxEX1RZUEUgKGYsIGopOwotQEAgLTMwNzQsOCArMzA3Nyw4IEBAIHZhbHVlX2ZuX2ZpZWxk IChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKK0BAIC0zMTc1LDE0ICszMTgyLDE0IEBAIHZhbHVl X2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKICAKLSBzdGF0aWMgaW50Ci0gdW5w YWNrX3ZhbHVlX2JpdHNfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBpbnQgYml0 cG9zLCBpbnQgYml0c2l6ZSwKLS0JCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxf dmFsdWUsCi0rCQkJICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgTE9OR0VTVCBiaXRwb3Ms Ci0rCQkJICAgICBpbnQgYml0c2l6ZSwgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1 ZSwKLSAJCQkgICAgIExPTkdFU1QgKnJlc3VsdCkKKyBzdGF0aWMgTE9OR0VTVAorIHVucGFja19i aXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKKy0JCSAgICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUpCisrCQkgICAgIExPTkdFU1Qg Yml0cG9zLCBpbnQgYml0c2l6ZSkKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9 IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAoZmllbGRfdHlwZSkpOwotQEAgLTMw ODMsNyArMzA4Niw3IEBAIHVucGFja192YWx1ZV9iaXRzX2FzX2xvbmdfMSAoc3RydWN0IHR5cGUK KyAgIFVMT05HRVNUIHZhbDsKICAgIFVMT05HRVNUIHZhbG1hc2s7CiAgICBpbnQgbHNiY291bnQ7 CiAgICBpbnQgYnl0ZXNfcmVhZDsKQEAgLTQxNjAsMjkgKzQwODcsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwogIAogICAgLyogUmVhZCB0aGUgbWluaW11bSBudW1i ZXIgb2YgYnl0ZXMgcmVxdWlyZWQ7IHRoZXJlIG1heSBub3QgYmUKICAgICAgIGVub3VnaCBieXRl cyB0byByZWFkIGFuIGVudGlyZSBVTE9OR0VTVC4gICovCi1AQCAtMzE1Myw3ICszMTU2LDcgQEAg dW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwZQotIAotIGludAotIHVucGFj a192YWx1ZV9iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKLS0JCQkgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBpbnQgYml0cG9zLCBp bnQgYml0c2l6ZSwKLSsJCQkgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgaW50IGJpdHBvcywg aW50IGJpdHNpemUsCi0gCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwK LSAJCQkgICBMT05HRVNUICpyZXN1bHQpCi0gewotQEAgLTMxNzEsMTAgKzMxNzQsMTAgQEAgdW5w YWNrX3ZhbHVlX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUgKgotIAotIHN0YXRpYyBpbnQKLSB1 bnBhY2tfdmFsdWVfZmllbGRfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIsCi0tCQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgaW50IGZpZWxk bm8sCi0rCQkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIGludCBmaWVsZG5vLAotIAkJ CSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLCBMT05HRVNUICpyZXN1bHQpCi0gewotLSAg aW50IGJpdHBvcyA9IFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBmaWVsZG5vKTsKLSsgIExPTkdF U1QgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8pOwotICAgaW50IGJp dHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8pOwotICAgc3RydWN0IHR5 cGUgKmZpZWxkX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkbm8pOwotIAotQEAg LTMxOTAsNyArMzE5Myw3IEBAIHVucGFja192YWx1ZV9maWVsZF9hc19sb25nXzEgKHN0cnVjdCB0 eXAKK0BAIC0zMjMxLDcgKzMyMzgsNyBAQCB1bnBhY2tfYml0c19hc19sb25nIChzdHJ1Y3QgdHlw ZSAqZmllbGRfCiAgCiAgaW50CiAgdW5wYWNrX3ZhbHVlX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQxOTAsMTcgKzQwOTUsMjYg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmMKICsJCQkgICAgTE9OR0VT VCBlbWJlZGRlZF9vZmZzZXQsIGludCBmaWVsZG5vLAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbCwgTE9OR0VTVCAqcmVzdWx0KQogIHsKLSAgIGdkYl9hc3NlcnQgKHZhbCAhPSBOVUxM KTsKLUBAIC0zMjIyLDcgKzMyMjUsNyBAQCB1bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RydWN0IHR5 cGUgKnR5cGUsCisgICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxk bm8pOworQEAgLTMyNzUsNyArMzI4Miw3IEBAIHVucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3Qg dHlwZSAqdHlwZSwKKyB2b2lkCisgdW5wYWNrX3ZhbHVlX2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUg KmRlc3RfdmFsLAorIAkJICAgICAgIGludCBiaXRwb3MsIGludCBiaXRzaXplLAorLQkJICAgICAg IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorKwkJICAgICAg IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJCSAg ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKKyB7CisgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlcjsKK0BAIC0zMzEzLDcgKzMzMjAsNyBAQCB1bnBhY2tfdmFsdWVfYml0ZmllbGQgKHN0 cnVjdCB2YWx1ZSAqZGVzCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9maWVsZF9iaXRmaWVsZCAo c3RydWN0IHR5cGUgKnR5cGUsIGludCBmaWVsZG5vLAogIAkJICAgICAgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCiAtCQkgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbCkKICsJCSAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCkKICB7Ci0gICBMT05HRVNUIGw7Ci0gCi1AQCAtMzI0OSwxMiArMzI1MiwxMiBA QCB2YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsCisgICBpbnQgYml0cG9z ID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8pOworICAgaW50IGJpdHNpemUgPSBU WVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8pOworQEAgLTMzMzQsMTIgKzMzNDEsMTIg QEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAogIAogIHZvaWQKICBt b2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBnZGJfYnl0ZSAqYWRkciwKQEAgLTQyMTUs MTEgKzQxMjksMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmMKICAK ICAgIC8qIE5vcm1hbGl6ZSBCSVRQT1MuICAqLwogICAgYWRkciArPSBiaXRwb3MgLyA4OwotSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmgKK0luZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi92YWx1ZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5v cmlnL2dkYi92YWx1ZS5oCTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjI3Mjk4 NjkwNSArMDIwMAotQEAgLTgzLDggKzgzLDggQEAgZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX3BhcmVu dCAoc3RydWN0IHZhbAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdmFsdWUuaAky MDE1LTAxLTA2IDIyOjQ0OjQxLjU2MzMxODk4NCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3ZhbHVlLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTUzMjY5MDMgKzAxMDAKK0BAIC0x MzEsOCArMTMxLDggQEAgZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX3BhcmVudCAoc3RydWN0IHZhbAog ICAgIHdpdGhpbiB0aGUgcmVnaXN0ZXJzIHN0cnVjdHVyZS4gIE5vdGUgYWxzbyB0aGUgbWVtYmVy CiAgICAgZW1iZWRkZWRfb2Zmc2V0IGJlbG93LiAgKi8KICAKQEAgLTQyMzAsNyArNDE0NCw3IEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5oCiAgCiAgLyogVGhlIGNvbW1l bnQgZnJvbSAic3RydWN0IHZhbHVlIiByZWFkczogYGBJcyBpdCBtb2RpZmlhYmxlPyAgT25seQog ICAgIHJlbGV2YW50IGlmIGx2YWwgIT0gbm90X2x2YWwuJycuICBTaG91bGRuJ3QgdGhlIHZhbHVl IGluc3RlYWQgYmUKLUBAIC0xNTMsMTAgKzE1MywxMCBAQCBleHRlcm4gc3RydWN0IHR5cGUgKnZh bHVlX2FjdHVhbF90eXBlIChzCitAQCAtMjAxLDEwICsyMDEsMTAgQEAgZXh0ZXJuIHN0cnVjdCB0 eXBlICp2YWx1ZV9hY3R1YWxfdHlwZSAocwogIAkJCQkgICAgICAgaW50IHJlc29sdmVfc2ltcGxl X3R5cGVzLAogIAkJCQkgICAgICAgaW50ICpyZWFsX3R5cGVfZm91bmQpOwogIApAQCAtNDI0NSwx NyArNDE1OSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5oCiAgCiAg LyogRm9yIGx2YWxfY29tcHV0ZWQgdmFsdWVzLCB0aGlzIHN0cnVjdHVyZSBob2xkcyBmdW5jdGlv bnMgdXNlZCB0bwogICAgIHJldHJpZXZlIGFuZCBzZXQgdGhlIHZhbHVlIChvciBwb3J0aW9ucyBv ZiB0aGUgdmFsdWUpLgotQEAgLTE4NCw3ICsxODQsOCBAQCBzdHJ1Y3QgbHZhbF9mdW5jcwotICAg LyogQ2hlY2sgdGhlIHZhbGlkaXR5IG9mIHNvbWUgYml0cyBpbiBWQUxVRS4gIFRoaXMgc2hvdWxk IHJldHVybiAxCi0gICAgICBpZiBhbGwgdGhlIGJpdHMgc3RhcnRpbmcgYXQgT0ZGU0VUIGFuZCBl eHRlbmRpbmcgZm9yIExFTkdUSCBiaXRzCi0gICAgICBhcmUgdmFsaWQsIG9yIDAgaWYgYW55IGJp dCBpcyBpbnZhbGlkLiAgKi8KLS0gIGludCAoKmNoZWNrX3ZhbGlkaXR5KSAoY29uc3Qgc3RydWN0 IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0rICBpbnQgKCpjaGVja192 YWxpZGl0eSkgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qgb2Zmc2V0LAotKwkJ CSBMT05HRVNUIGxlbmd0aCk7Ci0gCi0gICAvKiBSZXR1cm4gMSBpZiBhbnkgYml0IGluIFZBTFVF IGlzIHZhbGlkLCAwIGlmIHRoZXkgYXJlIGFsbCBpbnZhbGlkLiAgKi8KLSAgIGludCAoKmNoZWNr X2FueV92YWxpZCkgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUpOwotQEAgLTIwMiw3ICsyMDMs NyBAQCBzdHJ1Y3QgbHZhbF9mdW5jcworQEAgLTI0Miw3ICsyNDIsNyBAQCBzdHJ1Y3QgbHZhbF9m dW5jcwogICAgLyogSWYgbm9uLU5VTEwsIHRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhl ciB0aGUgaW5kaWNhdGVkIGJpdHMKICAgICAgIG9mIFZBTFVFIGFyZSBhIHN5bnRoZXRpYyBwb2lu dGVyLiAgKi8KICAgIGludCAoKmNoZWNrX3N5bnRoZXRpY19wb2ludGVyKSAoY29uc3Qgc3RydWN0 IHZhbHVlICp2YWx1ZSwKQEAgLTQyNjQsNyArNDE2OCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi92YWx1ZS5oCiAgCiAgICAvKiBSZXR1cm4gYSBkdXBsaWNhdGUgb2YgVkFMVUUn cyBjbG9zdXJlLCBmb3IgdXNlIGluIGEgbmV3IHZhbHVlLgogICAgICAgVGhpcyBtYXkgc2ltcGx5 IHJldHVybiB0aGUgc2FtZSBjbG9zdXJlLCBpZiBWQUxVRSdzIGlzCi1AQCAtMjM5LDcgKzI0MCw3 IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX2NvbXB1dGVkX3YKK0BAIC0yNzksNyAr Mjc5LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVfY29tcHV0ZWRfdgogICAgIE90 aGVyd2lzZSwgcmV0dXJuIDEuICAqLwogIAogIGV4dGVybiBpbnQgdmFscHJpbnRfY2hlY2tfdmFs aWRpdHkgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtNDI3 MywxNCArNDE3NywzMyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuaAog IAkJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwogIAogIGV4dGVybiBzdHJ1Y3QgdmFs dWUgKmFsbG9jYXRlX29wdGltaXplZF9vdXRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlKTsKLUBA IC00MjEsMTMgKzQyMiwxMyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICpjb2VyY2VfYXJyYXkgKHN0 cnVjCi0gICAgYml0cyBpbiB0aGUgZ2l2ZW4gcmFuZ2UgYXJlIHZhbGlkLCB6ZXJvIGlmIGFueSBi aXQgaXMgaW52YWxpZC4gICovCitAQCAtMzczLDcgKzM3Myw4IEBAIGV4dGVybiBpbnQgdmFsdWVf b3B0aW1pemVkX291dCAoc3RydWN0IHYKKyAgICBvdGhlcndpc2UuICAqLworIAorIGV4dGVybiBp bnQgdmFsdWVfYml0c19hbnlfb3B0aW1pemVkX291dCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1 ZSwKKy0JCQkJCSBpbnQgYml0X29mZnNldCwgaW50IGJpdF9sZW5ndGgpOworKwkJCQkJIExPTkdF U1QgYml0X29mZnNldCwKKysJCQkJCSBMT05HRVNUIGJpdF9sZW5ndGgpOworIAorIC8qIExpa2Ug dmFsdWVfb3B0aW1pemVkX291dCwgYnV0IHJldHVybiB0cnVlIGlmZiB0aGUgd2hvbGUgdmFsdWUg aXMKKyAgICBvcHRpbWl6ZWQgb3V0LiAgKi8KK0BAIC0zODMsMTMgKzM4NCwxMyBAQCBleHRlcm4g aW50IHZhbHVlX2VudGlyZWx5X29wdGltaXplZF9vdXQKKyAgICBMRU5HVEggYnl0ZXMgYXMgb3B0 aW1pemVkIG91dC4gICovCisgCisgZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9ieXRlc19vcHRpbWl6 ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAorLQkJCQkJICAgIGludCBvZmZzZXQsIGludCBs ZW5ndGgpOworKwkJCQkJICAgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7CisgCisg LyogTWFyayBWQUxVRSdzIGNvbnRlbnQgYml0cyBzdGFydGluZyBhdCBPRkZTRVQgYW5kIGV4dGVu ZGluZyBmb3IKKyAgICBMRU5HVEggYml0cyBhcyBvcHRpbWl6ZWQgb3V0LiAgKi8KICAKLSBleHRl cm4gaW50IHZhbHVlX2JpdHNfdmFsaWQgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tCQkJ ICAgICBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKLSsJCQkgICAgIExPTkdFU1Qgb2Zmc2V0LCBM T05HRVNUIGxlbmd0aCk7CisgZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9iaXRzX29wdGltaXplZF9v dXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsCistCQkJCQkgICBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3Ro KTsKKysJCQkJCSAgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7CiAgCi0gLyogR2l2 ZW4gYSB2YWx1ZSwgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGJpdHMgc3RhcnRpbmcgYXQgT0ZGU0VU IGFuZAorIC8qIFNldCBvciByZXR1cm4gZmllbGQgaW5kaWNhdGluZyB3aGV0aGVyIGEgdmFyaWFi bGUgaXMgaW5pdGlhbGl6ZWQgb3IKKyAgICBub3QsIGJhc2VkIG9uIGRlYnVnZ2luZyBpbmZvcm1h dGlvbiBzdXBwbGllZCBieSB0aGUgY29tcGlsZXIuCitAQCAtNDcyLDcgKzQ3Myw3IEBAIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKmNvZXJjZV9hcnJheSAoc3RydWMKICAgICBleHRlbmRpbmcgZm9yIExF TkdUSCBiaXRzIGFyZSBhIHN5bnRoZXRpYyBwb2ludGVyLiAgKi8KICAKICBleHRlcm4gaW50IHZh bHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCkBA IC00Mjg5LDcgKzQyMTIsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUu aAogIAogIC8qIEdpdmVuIGEgdmFsdWUsIGRldGVybWluZSB3aGV0aGVyIHRoZSBjb250ZW50cyBi eXRlcyBzdGFydGluZyBhdAogICAgIE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvciBMRU5HVEggYnl0 ZXMgYXJlIGF2YWlsYWJsZS4gIFRoaXMgcmV0dXJucwotQEAgLTQzNSw3ICs0MzYsNyBAQCBleHRl cm4gaW50IHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIKK0BAIC00ODAsNyArNDgxLDcgQEAg ZXh0ZXJuIGludCB2YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyCiAgICAgYnl0ZSBpcyB1bmF2 YWlsYWJsZS4gICovCiAgCiAgZXh0ZXJuIGludCB2YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCkBAIC00Mjk4LDcgKzQyMjEsMTYgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmgKICAKICAvKiBHaXZlbiBhIHZhbHVlLCBkZXRlcm1p bmUgd2hldGhlciB0aGUgY29udGVudHMgYml0cyBzdGFydGluZyBhdAogICAgIE9GRlNFVCBhbmQg ZXh0ZW5kaW5nIGZvciBMRU5HVEggYml0cyBhcmUgYXZhaWxhYmxlLiAgVGhpcyByZXR1cm5zCi1A QCAtNDU3LDcgKzQ1OCw3IEBAIGV4dGVybiBpbnQgdmFsdWVfZW50aXJlbHlfdW5hdmFpbGFibGUg KHMKK0BAIC00ODgsNyArNDg5LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9ieXRlc19hdmFpbGFibGUg KGNvbnN0CisgICAgYml0IGlzIHVuYXZhaWxhYmxlLiAgKi8KKyAKKyBleHRlcm4gaW50IHZhbHVl X2JpdHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLAorLQkJCQkgaW50IG9m ZnNldCwgaW50IGxlbmd0aCk7CisrCQkJCSBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgp OworIAorIC8qIExpa2UgdmFsdWVfYnl0ZXNfYXZhaWxhYmxlLCBidXQgcmV0dXJuIGZhbHNlIGlm IGFueSBieXRlIGluIHRoZQorICAgIHdob2xlIG9iamVjdCBpcyB1bmF2YWlsYWJsZS4gICovCitA QCAtNTAyLDcgKzUwMyw3IEBAIGV4dGVybiBpbnQgdmFsdWVfZW50aXJlbHlfdW5hdmFpbGFibGUg KHMKICAgICBMRU5HVEggYnl0ZXMgYXMgdW5hdmFpbGFibGUuICAqLwogIAogIGV4dGVybiB2b2lk IG1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsCkBAIC00 MzA3LDI5ICs0MjM5LDIwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5o CiAgCiAgLyogTWFyayBWQUxVRSdzIGNvbnRlbnQgYml0cyBzdGFydGluZyBhdCBPRkZTRVQgYW5k IGV4dGVuZGluZyBmb3IKICAgICBMRU5HVEggYml0cyBhcyB1bmF2YWlsYWJsZS4gICovCi1AQCAt NDczLDcgKzQ3NCw3IEBAIGV4dGVybiB2b2lkIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZQot ICAgIGV4YW1wbGUsIHRvIGNvbXBhcmUgYSBjb21wbGV0ZSBvYmplY3QgdmFsdWUgd2l0aCBpdHNl bGYsIGluY2x1ZGluZwotICAgIGl0cyBlbmNsb3NpbmcgdHlwZSBjaHVuaywgeW91J2QgZG86Ci0g Ci0tICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKHZhbHVlX2VuY2xv c2luZ190eXBlICh2YWwpKSk7Ci0rICAgICBVTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAoY2hl Y2tfdHlwZWRlZiAodmFsdWVfZW5jbG9zaW5nX3R5cGUgKHZhbCkpKTsKLSAgICAgIHZhbHVlX2F2 YWlsYWJsZV9jb250ZW50cyAodmFsLCAwLCB2YWwsIDAsIGxlbik7Ci0gCi0gICAgUmV0dXJucyB0 cnVlIGlmZiB0aGUgc2V0IG9mIGF2YWlsYWJsZSBjb250ZW50cyBtYXRjaC4gIFVuYXZhaWxhYmxl Ci1AQCAtNTAwLDkgKzUwMSw5IEBAIGV4dGVybiB2b2lkIG1hcmtfdmFsdWVfYml0c191bmF2YWls YWJsZQotICAgIGdvbmUsIGl0IHdvcmtzIHdpdGggY29uc3QgdmFsdWVzLiAgVGhlcmVmb3JlLCB0 aGlzIHJvdXRpbmUgbXVzdCBub3QKLSAgICBiZSBjYWxsZWQgd2l0aCBsYXp5IHZhbHVlcy4gICov Ci0gCi0tZXh0ZXJuIGludCB2YWx1ZV9hdmFpbGFibGVfY29udGVudHNfZXEgKGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsMSwgaW50IG9mZnNldDEsCi0tCQkJCQljb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bDIsIGludCBvZmZzZXQyLAotLQkJCQkJaW50IGxlbmd0aCk7Ci0rZXh0ZXJuIGludCB2YWx1ZV9h dmFpbGFibGVfY29udGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMSwgTE9OR0VTVCBv ZmZzZXQxLAotKwkJCQkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBMT05HRVNUIG9mZnNldDIs Ci0rCQkJCQlMT05HRVNUIGxlbmd0aCk7CitAQCAtNTYzLDkgKzU2NCw5IEBAIGV4dGVybiB2b2lk IG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZQorICAgIGFmdGVyIHRoZSBpbmZlcmlvciBpcyBn b25lLCBpdCB3b3JrcyB3aXRoIGNvbnN0IHZhbHVlcy4gIFRoZXJlZm9yZSwKKyAgICB0aGlzIHJv dXRpbmUgbXVzdCBub3QgYmUgY2FsbGVkIHdpdGggbGF6eSB2YWx1ZXMuICAqLworIAorLWV4dGVy biBpbnQgdmFsdWVfY29udGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMSwgaW50IG9m ZnNldDEsCistCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBpbnQgb2Zmc2V0MiwK Ky0JCQkgICAgICBpbnQgbGVuZ3RoKTsKKytleHRlcm4gaW50IHZhbHVlX2NvbnRlbnRzX2VxIChj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIExPTkdFU1Qgb2Zmc2V0MSwKKysJCQkgICAgICBjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbDIsIExPTkdFU1Qgb2Zmc2V0MiwKKysJCQkgICAgICBMT05HRVNU IGxlbmd0aCk7CiAgCiAgLyogUmVhZCBMRU5HVEggYnl0ZXMgb2YgbWVtb3J5IHN0YXJ0aW5nIGF0 IE1FTUFERFIgaW50byBCVUZGRVIsIHdoaWNoCiAgICAgaXMgKG9yIHdpbGwgYmUgY29waWVkIHRv KSBWQUwncyBjb250ZW50cyBidWZmZXIgb2Zmc2V0IGJ5Ci1AQCAtNTExLDcgKzUxMiw3IEBAIGV4 dGVybiBpbnQgdmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRzX2VxICgKK0BAIC01NzQsNyArNTc1LDcg QEAgZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydQogICAgIG1lbW9yeSBp cyBsaWtld2lzZSB1bmF2YWlsYWJsZS4gIFNUQUNLIGluZGljYXRlcyB3aGV0aGVyIHRoZSBtZW1v cnkKICAgICBpcyBrbm93biB0byBiZSBzdGFjayBtZW1vcnkuICAqLwogIApAQCAtNDMzOCwxNiAr NDI2MSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5oCiAgCQkJICAg ICAgIGludCBzdGFjaywgQ09SRV9BRERSIG1lbWFkZHIsCiAgCQkJICAgICAgIGdkYl9ieXRlICpi dWZmZXIsIHNpemVfdCBsZW5ndGgpOwogIAotQEAgLTU0NSw3ICs1NDYsNyBAQCBleHRlcm4gQ09S RV9BRERSIHVucGFja19wb2ludGVyIChzdHJ1Y3QKLSAKLSBleHRlcm4gaW50IHVucGFja192YWx1 ZV9iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLAotIAkJCQkgICAgICBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgaW50 IGJpdHBvcywKLSsJCQkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIGludCBiaXRwb3Ms Ci0gCQkJCSAgICAgIGludCBiaXRzaXplLAotIAkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUg Km9yaWdpbmFsX3ZhbHVlLAotIAkJCQkgICAgICBMT05HRVNUICpyZXN1bHQpOwotQEAgLTU1NCwx MiArNTU1LDEyIEBAIGV4dGVybiBMT05HRVNUIHVucGFja19maWVsZF9hc19sb25nIChzdHIKK0BA IC02MTAsMTcgKzYxMSwxOCBAQCBleHRlcm4gTE9OR0VTVCB1bnBhY2tfZmllbGRfYXNfbG9uZyAo c3RyCiAgCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCiAgCQkJCSAgICAgaW50IGZp ZWxkbm8pOwogIGV4dGVybiBpbnQgdW5wYWNrX3ZhbHVlX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQzNTUsNiArNDI2OSwxMyBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuaAogKwkJCQlMT05HRVNUIGVt YmVkZGVkX29mZnNldCwgaW50IGZpZWxkbm8sCiAgCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs LCBMT05HRVNUICpyZXN1bHQpOwogIAorIGV4dGVybiB2b2lkIHVucGFja192YWx1ZV9iaXRmaWVs ZCAoc3RydWN0IHZhbHVlICpkZXN0X3ZhbCwKKyAJCQkJICAgaW50IGJpdHBvcywgaW50IGJpdHNp emUsCistCQkJCSAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0 LAorKwkJCQkgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKysJCQkJICAgTE9OR0VTVCBlbWJl ZGRlZF9vZmZzZXQsCisgCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKKyAKICBleHRl cm4gc3RydWN0IHZhbHVlICp2YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUgKnR5cGUs IGludCBmaWVsZG5vLAogIAkJCQkJICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCiAtCQkJCQkg ICBpbnQgZW1iZWRkZWRfb2Zmc2V0LApAQCAtNDM2Miw3ICs0MjgzLDcgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmgKICAJCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsKTsKICAKICBleHRlcm4gdm9pZCBwYWNrX2xvbmcgKGdkYl9ieXRlICpidWYsIHN0cnVjdCB0 eXBlICp0eXBlLCBMT05HRVNUIG51bSk7Ci1AQCAtNjE2LDEyICs2MTcsMTIgQEAgZXh0ZXJuIHN0 cnVjdCB2YWx1ZSAqZGVmYXVsdF9yZWFkX3Zhcl92YQorQEAgLTY3NywxMiArNjc5LDEyIEBAIGV4 dGVybiBzdHJ1Y3QgdmFsdWUgKmRlZmF1bHRfcmVhZF92YXJfdmEKICAKICBleHRlcm4gc3RydWN0 IHZhbHVlICphbGxvY2F0ZV92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUpOwogIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKmFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0eXBlICp0eXBlKTsKQEAgLTQz ODEsNyArNDMwMiw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5oCiAg CiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVfcmVwZWF0X3ZhbHVlIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgaW50IGNvdW50KTsKICAKLUBAIC02OTgsMTYgKzY5OSwxNiBAQCBleHRlcm4gaW50 IGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB2CitAQCAtNzYwLDE2ICs3NjIsMTYgQEAgZXh0 ZXJuIGludCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdgogIAogIGV4dGVybiBzdHJ1Y3Qg dmFsdWUgKnZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBmaWVsZG5vKTsKICAK QEAgLTQ0MDEsNyArNDMyMiw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1 ZS5oCiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfY2FzdF9wb2ludGVycyAoc3RydWN0 IHR5cGUgKiwgc3RydWN0IHZhbHVlICosIGludCk7CiAgCi1AQCAtODAyLDcgKzgwMyw3IEBAIGV4 dGVybiB2b2lkIHNldF9pbnRlcm5hbHZhcl9zdHJpbmcgKHN0cnUKK0BAIC04NjQsNyArODY2LDcg QEAgZXh0ZXJuIHZvaWQgc2V0X2ludGVybmFsdmFyX3N0cmluZyAoc3RydQogIGV4dGVybiB2b2lk IGNsZWFyX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhcik7CiAgCiAgZXh0ZXJu IHZvaWQgc2V0X2ludGVybmFsdmFyX2NvbXBvbmVudCAoc3RydWN0IGludGVybmFsdmFyICp2YXIs CkBAIC00NDEwLDcgKzQzMzEsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFs dWUuaAogIAkJCQkgICAgICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUsCiAgCQkJCSAgICAgICBz dHJ1Y3QgdmFsdWUgKm5ld3ZhbHVlKTsKICAKLUBAIC04ODMsNyArODg0LDcgQEAgZXh0ZXJuIHN0 cnVjdCB2YWx1ZSAqdmFsdWVfeF91bm9wIChzdHJ1YworQEAgLTk0NSw3ICs5NDcsNyBAQCBleHRl cm4gc3RydWN0IHZhbHVlICp2YWx1ZV94X3Vub3AgKHN0cnVjCiAgCQkJCSAgIGVudW0gbm9zaWRl IG5vc2lkZSk7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfZm5fZmllbGQgKHN0cnVj dCB2YWx1ZSAqKmFyZzFwLCBzdHJ1Y3QgZm5fZmllbGQgKmYsCkBAIC00NDE5LDcgKzQzNDAsNyBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuaAogIAogIGV4dGVybiBpbnQg Ymlub3BfdHlwZXNfdXNlcl9kZWZpbmVkX3AgKGVudW0gZXhwX29wY29kZSBvcCwKICAJCQkJICAg ICAgIHN0cnVjdCB0eXBlICp0eXBlMSwKLUBAIC05MTEsNyArOTEyLDggQEAgZXh0ZXJuIHZvaWQg cmVsZWFzZV92YWx1ZV9vcl9pbmNyZWYgKHN0cgorQEAgLTk3Myw3ICs5NzUsOCBAQCBleHRlcm4g dm9pZCByZWxlYXNlX3ZhbHVlX29yX2luY3JlZiAoc3RyCiAgZXh0ZXJuIGludCByZWNvcmRfbGF0 ZXN0X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbCk7CiAgCiAgZXh0ZXJuIHZvaWQgbW9kaWZ5X2Zp ZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgZ2RiX2J5dGUgKmFkZHIsCkBAIC00NDI5LDcgKzQzNTAs NyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuaAogIAogIGV4dGVybiB2 b2lkIHR5cGVfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBjaGFyICp2YXJzdHJpbmcs CiAgCQkJc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHNob3cpOwotQEAgLTk0MSw3ICs5NDMs NyBAQCBleHRlcm4gdm9pZCB2YWx1ZV9wcmludF9hcnJheV9lbGVtZW50cyAoCitAQCAtMTAwMyw3 ICsxMDA2LDcgQEAgZXh0ZXJuIHZvaWQgdmFsdWVfcHJpbnRfYXJyYXlfZWxlbWVudHMgKAogIGV4 dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3JlbGVhc2VfdG9fbWFyayAoc3RydWN0IHZhbHVlICpt YXJrKTsKICAKICBleHRlcm4gdm9pZCB2YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQ0MzgsNyArNDM1OSw3IEBAIEluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5oCiAgCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgaW50IHJlY3Vyc2UsCiAgCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkg ICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtOTkw LDEwICs5OTIsMTEgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfbGl0ZXJhbF9jb21wbAor QEAgLTEwNTQsMTAgKzEwNTcsMTEgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfbGl0ZXJh bF9jb21wbAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3Ig KGNvbnN0IGNoYXIgKiwKICAJCQkJCQlzdHJ1Y3Qgb2JqZmlsZSAqKik7CiAgCkBAIC00NDUyLDEx ICs0MzczLDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5oCiAgCiAg LyogVXNlciBmdW5jdGlvbiBoYW5kbGVyLiAgKi8KICAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9zMzkwLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv czM5MC1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3Jp Zy9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3MzOTAtbGludXgtbmF0LmMJMjAxNC0wNi0y NCAxNjowNzoyNy4yNzI5ODY5MDUgKzAyMDAKLUBAIC01NjcsNyArNTY3LDcgQEAgczM5MF9jYW5f dXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0YXJnZQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NDMxODk4OSAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3MzOTAtbGludXgtbmF0LmMJMjAxNS0w MS0wNiAyMjo0NDo0My4xOTUzMjY5MDMgKzAxMDAKK0BAIC01NDQsNyArNTQ0LDcgQEAgczM5MF9j YW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0YXJnZQogIAogIHN0YXRpYyBpbnQKICBzMzkw X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBA IC00NDY1LDEwICs0Mzg2LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9zMzkw LWxpbnV4LW5hdC5jCiAgewogICAgcmV0dXJuIDE7CiAgfQotSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2V4dGVuc2lvbi1wcml2LmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9leHRlbnNpb24tcHJpdi5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5v cmlnL2dkYi9leHRlbnNpb24tcHJpdi5oCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICsw MjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZXh0ZW5zaW9uLXByaXYuaAkyMDE0LTA2 LTI0IDE2OjA3OjI3LjI3Mjk4NjkwNSArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvZXh0ZW5zaW9uLXByaXYuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NDMxODk4OSArMDEw MAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2V4dGVuc2lvbi1wcml2LmgJMjAxNS0wMS0w NiAyMjo0NDo0My4xOTUzMjY5MDMgKzAxMDAKIEBAIC0xNzUsNyArMTc1LDcgQEAgc3RydWN0IGV4 dGVuc2lvbl9sYW5ndWFnZV9vcHMKICAgIGVudW0gZXh0X2xhbmdfcmMgKCphcHBseV92YWxfcHJl dHR5X3ByaW50ZXIpCiAgICAgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4g KiwKQEAgLTQ0NzgsMTEgKzQzOTksMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2V4dGVuc2lvbi1wcml2LmgKICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAogICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zLAogICAgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4g Kmxhbmd1YWdlKTsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2Ri L3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCAr MDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwu aAkyMDE0LTA2LTI0IDE2OjA3OjI3LjI3Mjk4NjkwNSArMDIwMAotQEAgLTMxNyw3ICszMTcsNyBA QCBleHRlcm4gaW50IGdkYnB5X2F1dG9fbG9hZF9lbmFibGVkIChjb25zCistLS0gZ2RiLTcuOC41 MC4yMDE0MTIyOC5vcmlnL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNS0wMS0wNiAy Mjo0NDo0MS41NjQzMTg5ODkgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9weXRo b24vcHl0aG9uLWludGVybmFsLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTUzMjY5MDMgKzAxMDAK K0BAIC0zMTMsNyArMzEzLDcgQEAgZXh0ZXJuIGludCBnZGJweV9hdXRvX2xvYWRfZW5hYmxlZCAo Y29ucwogIGV4dGVybiBlbnVtIGV4dF9sYW5nX3JjIGdkYnB5X2FwcGx5X3ZhbF9wcmV0dHlfcHJp bnRlcgogICAgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqLAogICAgIHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQ0OTEsMTEgKzQ0 MTIsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3B5dGhvbi9weXRob24taW50 ZXJuYWwuaAogICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogICAgIGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3RhcmdldC1kZWxl Z2F0ZXMuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdGFyZ2V0LWRl bGVnYXRlcy5jCTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTQtMDYtMjQgMTY6MDc6Mjcu MjcyOTg2OTA1ICswMjAwCi1AQCAtMjY4LDcgKzI2OCw3IEBAIGRlbGVnYXRlX3dhdGNocG9pbnRf YWRkcl93aXRoaW5fcmFuZ2UgKHMKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Rh cmdldC1kZWxlZ2F0ZXMuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NTMxODk5NCArMDEwMAorKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE1LTAxLTA2IDIy OjQ0OjQzLjE5NjMyNjkwNyArMDEwMAorQEAgLTYzNCwxNCArNjM0LDE0IEBAIGRlYnVnX3dhdGNo cG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnUKICB9CiAgCiAgc3RhdGljIGludApAQCAtNDUw NCwxMSArNDQyNSwyOCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGFyZ2V0LWRl bGVnYXRlcy5jCiAgewogICAgc2VsZiA9IHNlbGYtPmJlbmVhdGg7CiAgICByZXR1cm4gc2VsZi0+ dG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzZWxmLCBhcmcxLCBhcmcyKTsKLUluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCisgfQorIAorIHN0 YXRpYyBpbnQKKy1kZWJ1Z19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJn ZXRfb3BzICpzZWxmLCBDT1JFX0FERFIgYXJnMSwgaW50IGFyZzIpCisrZGVidWdfcmVnaW9uX29r X2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwgQ09SRV9BRERSIGFy ZzEsIExPTkdFU1QgYXJnMikKKyB7CisgICBpbnQgcmVzdWx0OworICAgZnByaW50Zl91bmZpbHRl cmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAo Li4uKVxuIiwgZGVidWdfdGFyZ2V0LnRvX3Nob3J0bmFtZSk7CitAQCAtNjUxLDcgKzY1MSw3IEBA IGRlYnVnX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWMKKyAgIGZwdXRzX3VuZmls dGVyZWQgKCIsICIsIGdkYl9zdGRsb2cpOworICAgdGFyZ2V0X2RlYnVnX3ByaW50X0NPUkVfQURE UiAoYXJnMSk7CisgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKKy0gIHRh cmdldF9kZWJ1Z19wcmludF9pbnQgKGFyZzIpOworKyAgdGFyZ2V0X2RlYnVnX3ByaW50X0xPTkdF U1QgKGFyZzIpOworICAgZnB1dHNfdW5maWx0ZXJlZCAoIikgPSAiLCBnZGJfc3RkbG9nKTsKKyAg IHRhcmdldF9kZWJ1Z19wcmludF9pbnQgKHJlc3VsdCk7CisgICBmcHV0c191bmZpbHRlcmVkICgi XG4iLCBnZGJfc3RkbG9nKTsKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hYXJjaDY0 LWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dk Yi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAw Ci0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE0LTA2 LTI0IDE2OjA4OjA2LjcyMjAzMDY1MyArMDIwMAotQEAgLTE0MDcsNyArMTQwNyw3IEBAIGFhcmNo NjRfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdAorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NTMx ODk5NCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FhcmNoNjQtbGludXgtbmF0 LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTYzMjY5MDcgKzAxMDAKK0BAIC0xMzg5LDcgKzEzODks NyBAQCBhYXJjaDY0X2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QKICAKICBzdGF0aWMg aW50CiAgYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0 YXJnZXRfb3BzICpzZWxmLApAQCAtNDUxNywzICs0NDU1LDY5IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCiAgewogICAgQ09SRV9BRERSIGFsaWdu ZWRfYWRkcjsKICAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9uYXQveDg2LWRyZWdz LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL25hdC94ODYt ZHJlZ3MuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NjMxODk5OSArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE5NzMy NjkxMiArMDEwMAorQEAgLTM4NCw3ICszODQsNyBAQCB4ODZfcmVtb3ZlX2FsaWduZWRfd2F0Y2hw b2ludCAoc3RydWN0IHg4CisgCisgc3RhdGljIGludAorIHg4Nl9oYW5kbGVfbm9uYWxpZ25lZF93 YXRjaHBvaW50IChzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCistCQkJCSAgeDg2 X3dwX29wX3Qgd2hhdCwgQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCisrCQkJCSAgeDg2X3dwX29w X3Qgd2hhdCwgQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLAorIAkJCQkgIGVudW0gdGFyZ2V0 X2h3X2JwX3R5cGUgdHlwZSkKKyB7CisgICBpbnQgcmV0dmFsID0gMDsKK0BAIC01NTIsNyArNTUy LDcgQEAgeDg2X2RyX3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QgeDg2X2RlYgorIAorIGludAor IHg4Nl9kcl9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKHN0cnVjdCB4ODZfZGVidWdfcmVnX3N0 YXRlICpzdGF0ZSwKKy0JCQkJIENPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQorKwkJCQkgQ09SRV9B RERSIGFkZHIsIExPTkdFU1QgbGVuKQorIHsKKyAgIGludCBucmVnczsKKyAKK0luZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1 cHBvcnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NjMxODk5OSArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE1LTAxLTA2IDIy OjQ0OjQzLjE5NzMyNjkxMiArMDEwMAorQEAgLTI3NywxMSArMjc3LDExIEBAIGdlbmVyYXRlX3Jl Z2lzdGVyX3N0cnVjdCAoc3RydWN0IHVpX2ZpbGUKKyAKKyAJICAgICAgZGVmYXVsdDoKKyAJCWZw cmludGZfdW5maWx0ZXJlZCAoc3RyZWFtLAorLQkJCQkgICAgIiAgdW5zaWduZWQgY2hhciAlc1sl ZF0iCisrCQkJCSAgICAiICB1bnNpZ25lZCBjaGFyICVzWyVzXSIKKyAJCQkJICAgICIgX19hdHRy aWJ1dGVfXygoX19hbGlnbmVkX18oIgorIAkJCQkgICAgIl9fQklHR0VTVF9BTElHTk1FTlRfXykp KSIsCisgCQkJCSAgICByZWduYW1lLAorLQkJCQkgICAgVFlQRV9MRU5HVEggKHJlZ3R5cGUpKTsK KysJCQkJICAgIHB1bG9uZ2VzdCAoVFlQRV9MRU5HVEggKHJlZ3R5cGUpKSk7CisgCSAgICAgIH0K KyAJICAgIGZwdXRzX3VuZmlsdGVyZWQgKCI7XG4iLCBzdHJlYW0pOworIAorSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL25hdC94ODYtZHJlZ3MuaAorPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTUtMDEtMDYgMjI6NDQ6 NDEuNTY2MzE4OTk5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbmF0L3g4Ni1k cmVncy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTk3MzI2OTEyICswMTAwCitAQCAtMTEyLDcgKzEx Miw3IEBAIGV4dGVybiBpbnQgeDg2X2RyX3JlbW92ZV93YXRjaHBvaW50IChzdHIKKyAvKiBSZXR1 cm4gbm9uLXplcm8gaWYgd2UgY2FuIHdhdGNoIGEgbWVtb3J5IHJlZ2lvbiB0aGF0IHN0YXJ0cyBh dAorICAgIGFkZHJlc3MgQUREUiBhbmQgd2hvc2UgbGVuZ3RoIGlzIExFTiBieXRlcy4gICovCisg ZXh0ZXJuIGludCB4ODZfZHJfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChzdHJ1Y3QgeDg2X2Rl YnVnX3JlZ19zdGF0ZSAqc3RhdGUsCistCQkJCQkgICAgQ09SRV9BRERSIGFkZHIsIGludCBsZW4p OworKwkJCQkJICAgIENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbik7CisgCisgLyogSWYgdGhl IGluZmVyaW9yIGhhcyBzb21lIGJyZWFrL3dhdGNocG9pbnQgdGhhdCB0cmlnZ2VyZWQsIHNldCB0 aGUKKyAgICBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGJyZWFrL3dhdGNocG9pbnQgYW5k IHJldHVybiB0cnVlLgorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3g4Ni1uYXQuYwor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIveDg2LW5hdC5jCTIw MTUtMDEtMDYgMjI6NDQ6NDEuNTY2MzE4OTk5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIveDg2LW5hdC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTk3MzI2OTEyICswMTAwCitAQCAt MTc4LDcgKzE3OCw3IEBAIHg4Nl9yZW1vdmVfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMK KyAKKyBzdGF0aWMgaW50CisgeDg2X3JlZ2lvbl9va19mb3Jfd2F0Y2hwb2ludCAoc3RydWN0IHRh cmdldF9vcHMgKnNlbGYsCistCQkJICAgICAgQ09SRV9BRERSIGFkZHIsIGludCBsZW4pCisrCQkJ ICAgICAgQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuKQorIHsKKyAgIHN0cnVjdCB4ODZfZGVi dWdfcmVnX3N0YXRlICpzdGF0ZQorICAgICA9IHg4Nl9kZWJ1Z19yZWdfc3RhdGUgKHB0aWRfZ2V0 X3BpZCAoaW5mZXJpb3JfcHRpZCkpOwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBv cy0yMm9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjJvZjI1LnBhdGNoCmluZGV4 IDE5NDNiYTYuLmVjY2EwNjggMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMm9m MjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5wYXRjaApAQCAtOTYs MTEgKzk2LDExIEBAIENvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA3Yml0CiBDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFt ZT1iaXRwb3Mtd3AucGF0Y2gKIAotSW5kZXg6IGdkYi03LjgvZ2RiL2FybS1saW51eC1uYXQuYwor SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FybS1saW51eC1uYXQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTQtMDgtMDEgMjM6Mjc6 MzAuMTgzNzczNjc2ICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTQt MDgtMDEgMjM6Mjc6MzAuMjQxNzczNzU0ICswMjAwCi1AQCAtMTI5Niw3ICsxMjk2LDcgQEAgYXJt X2xpbnV4X3N0b3BwZWRfYnlfd2F0Y2hwb2ludCAoc3RydWN0CistLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0wMS0wNSAyMjoxMDozMC4xNzA3MjY3 NzQgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tbGludXgtbmF0LmMJMjAx NS0wMS0wNSAyMjoxMDozNS41NzE3NTEzMjQgKzAxMDAKK0BAIC0xMjk1LDcgKzEyOTUsNyBAQCBh cm1fbGludXhfc3RvcHBlZF9ieV93YXRjaHBvaW50IChzdHJ1Y3QKICBzdGF0aWMgaW50CiAgYXJt X2xpbnV4X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0 YXJnZXQsCiAgCQkJCQlDT1JFX0FERFIgYWRkciwKQEAgLTEwOSwxMSArMTA5LDExIEBAIEluZGV4 OiBnZGItNy44L2dkYi9hcm0tbGludXgtbmF0LmMKICB7CiAgICByZXR1cm4gc3RhcnQgPD0gYWRk ciAmJiBzdGFydCArIGxlbmd0aCAtIDEgPj0gYWRkcjsKICB9Ci1JbmRleDogZ2RiLTcuOC9nZGIv cHBjLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHBjLWxpbnV4 LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi9wcGMtbGludXgtbmF0LmMJ MjAxNC0wOC0wMSAyMzoyNzozMC4yMDI3NzM3MDEgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9wcGMt bGludXgtbmF0LmMJMjAxNC0wOC0wMSAyMzoyOTozOC4zMTE5NDQ5MjUgKzAyMDAKLUBAIC0xODYy LDExICsxODYyLDExIEBAIGNhbl91c2Vfd2F0Y2hwb2ludF9jb25kX2FjY2VsICh2b2lkKQorLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMDEtMDUg MjI6MTA6MzAuMTcxNzI2Nzc5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHBj LWxpbnV4LW5hdC5jCTIwMTUtMDEtMDUgMjI6MTA6MzUuNTcyNzUxMzI5ICswMTAwCitAQCAtMTg2 MCwxMSArMTg2MCwxMSBAQCBjYW5fdXNlX3dhdGNocG9pbnRfY29uZF9hY2NlbCAodm9pZCkKICAg ICBDT05ESVRJT05fVkFMVUUgd2lsbCBob2xkIHRoZSB2YWx1ZSB3aGljaCBzaG91bGQgYmUgcHV0 IGluIHRoZQogICAgIERWQyByZWdpc3Rlci4gICovCiAgc3RhdGljIHZvaWQKQEAgLTEyOCw3ICsx MjgsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvcHBjLWxpbnV4LW5hdC5jCiAgICBDT1JFX0FERFIg YWRkcl9lbmRfZGF0YSwgYWRkcl9lbmRfZHZjOwogIAogICAgLyogVGhlIERWQyByZWdpc3RlciBj b21wYXJlcyBieXRlcyB3aXRoaW4gZml4ZWQtbGVuZ3RoIHdpbmRvd3Mgd2hpY2gKLUBAIC0xOTUz LDcgKzE5NTMsNyBAQCBudW1fbWVtb3J5X2FjY2Vzc2VzIChzdHJ1Y3QgdmFsdWUgKnYpCitAQCAt MTk1MSw3ICsxOTUxLDcgQEAgbnVtX21lbW9yeV9hY2Nlc3NlcyAoc3RydWN0IHZhbHVlICp2KQog ICAgIG9mIHRoZSBjb25zdGFudC4gICovCiAgc3RhdGljIGludAogIGNoZWNrX2NvbmRpdGlvbiAo Q09SRV9BRERSIHdhdGNoX2FkZHIsIHN0cnVjdCBleHByZXNzaW9uICpjb25kLApAQCAtMTM3LDcg KzEzNyw3IEBAIEluZGV4OiBnZGItNy44L2dkYi9wcGMtbGludXgtbmF0LmMKICB7CiAgICBpbnQg cGMgPSAxLCBudW1fYWNjZXNzZXNfbGVmdCwgbnVtX2FjY2Vzc2VzX3JpZ2h0OwogICAgc3RydWN0 IHZhbHVlICpsZWZ0X3ZhbCwgKnJpZ2h0X3ZhbCwgKmxlZnRfY2hhaW4sICpyaWdodF9jaGFpbjsK LUBAIC0yMDIxLDcgKzIwMjEsNyBAQCBjaGVja19jb25kaXRpb24gKENPUkVfQUREUiB3YXRjaF9h ZGRyLCBzCitAQCAtMjAxOSw3ICsyMDE5LDcgQEAgY2hlY2tfY29uZGl0aW9uIChDT1JFX0FERFIg d2F0Y2hfYWRkciwgcwogICAgIHRydWUuICAqLwogIHN0YXRpYyBpbnQKICBwcGNfbGludXhfY2Fu X2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uIChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAg LTE0Niw3ICsxNDYsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvcHBjLWxpbnV4LW5hdC5jCiAgCQkJ CQkgIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQogIHsKICAgIENPUkVfQUREUiBkYXRhX3ZhbHVl OwotQEAgLTIwMzgsNyArMjAzOCw3IEBAIHBwY19saW51eF9jYW5fYWNjZWxfd2F0Y2hwb2ludF9j b25kaXRpb24KK0BAIC0yMDM2LDcgKzIwMzYsNyBAQCBwcGNfbGludXhfY2FuX2FjY2VsX3dhdGNo cG9pbnRfY29uZGl0aW9uCiAgCiAgc3RhdGljIHZvaWQKICBjcmVhdGVfd2F0Y2hwb2ludF9yZXF1 ZXN0IChzdHJ1Y3QgcHBjX2h3X2JyZWFrcG9pbnQgKnAsIENPUkVfQUREUiBhZGRyLApAQCAtMTU1 LDcgKzE1NSw3IEBAIEluZGV4OiBnZGItNy44L2dkYi9wcGMtbGludXgtbmF0LmMKICAJCQkgICBp bnQgaW5zZXJ0KQogIHsKICAgIGlmIChsZW4gPT0gMQotQEAgLTIzMDQsNyArMjMwNCw3IEBAIHBw Y19saW51eF9zdG9wcGVkX2J5X3dhdGNocG9pbnQgKHN0cnVjdAorQEAgLTIzMDIsNyArMjMwMiw3 IEBAIHBwY19saW51eF9zdG9wcGVkX2J5X3dhdGNocG9pbnQgKHN0cnVjdAogIHN0YXRpYyBpbnQK ICBwcGNfbGludXhfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoc3RydWN0IHRhcmdldF9v cHMgKnRhcmdldCwKICAJCQkJCUNPUkVfQUREUiBhZGRyLApAQCAtMTY0LDExICsxNjQsMTEgQEAg SW5kZXg6IGdkYi03LjgvZ2RiL3BwYy1saW51eC1uYXQuYwogIHsKICAgIGludCBtYXNrOwogIAot SW5kZXg6IGdkYi03LjgvZ2RiL3Byb2Nmcy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvcHJvY2ZzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIw MTQtMDgtMDEgMjM6Mjc6MzAuMjAzNzczNzAzICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvcHJvY2Zz LmMJMjAxNC0wOC0wMSAyMzoyNzozMC4yNDM3NzM3NTYgKzAyMDAKLUBAIC0yNDI5LDcgKzI0Mjks NyBAQCBwcm9jZnNfYWRkcmVzc190b19ob3N0X3BvaW50ZXIgKENPUkVfQURECistLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9wcm9jZnMuYwkyMDE1LTAxLTA1IDIyOjEwOjMwLjE3Mjcy Njc4MyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Byb2Nmcy5jCTIwMTUtMDEt MDUgMjI6MTA6MzUuNTczNzUxMzMzICswMTAwCitAQCAtMjQyNiw3ICsyNDI2LDcgQEAgcHJvY2Zz X2FkZHJlc3NfdG9faG9zdF9wb2ludGVyIChDT1JFX0FERAogICNlbmRpZgogIAogIHN0YXRpYyBp bnQKQEAgLTE3Nyw3ICsxNzcsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvcHJvY2ZzLmMKICB7CiAg I2lmICFkZWZpbmVkIChQQ1dBVENIKSAmJiAhZGVmaW5lZCAoUElPQ1NXQVRDSCkKICAgIC8qIElm IG5laXRoZXIgb3IgdGhlc2UgaXMgZGVmaW5lZCwgd2UgY2FuJ3Qgc3VwcG9ydCB3YXRjaHBvaW50 cy4KLUBAIC00NzYyLDcgKzQ3NjIsNyBAQCBwcm9jZnNfcGlkX3RvX3N0ciAoc3RydWN0IHRhcmdl dF9vcHMgKm9wCitAQCAtNDcwNSw3ICs0NzA1LDcgQEAgcHJvY2ZzX3BpZF90b19zdHIgKHN0cnVj dCB0YXJnZXRfb3BzICpvcAogIC8qIEluc2VydCBhIHdhdGNocG9pbnQuICAqLwogIAogIHN0YXRp YyBpbnQKQEAgLTE4NiwxMSArMTg2LDExIEBAIEluZGV4OiBnZGItNy44L2dkYi9wcm9jZnMuYwog IAkJICAgICAgIGludCBhZnRlcikKICB7CiAgI2lmbmRlZiBBSVg1Ci1JbmRleDogZ2RiLTcuOC9n ZGIvcmVtb3RlLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9yZW1vdGUuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvcmVtb3RlLmMJMjAxNC0wOC0wMSAyMzoyNzoz MC4yMDU3NzM3MDUgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9yZW1vdGUuYwkyMDE0LTA4LTAxIDIz OjI3OjMwLjI0Njc3Mzc2MCArMDIwMAotQEAgLTgyMDYsNyArODIwNiw3IEBAIHJlbW90ZV9pbnNl cnRfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF8KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL3JlbW90ZS5jCTIwMTUtMDEtMDUgMjI6MTA6MzAuMTc0NzI2NzkyICswMTAwCisrKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcmVtb3RlLmMJMjAxNS0wMS0wNSAyMjoxMDozNS41NzQ3 NTEzMzggKzAxMDAKK0BAIC04Mjk4LDcgKzgyOTgsNyBAQCByZW1vdGVfaW5zZXJ0X3dhdGNocG9p bnQgKHN0cnVjdCB0YXJnZXRfCiAgICBwID0gc3RyY2hyIChycy0+YnVmLCAnXDAnKTsKICAgIGFk ZHIgPSByZW1vdGVfYWRkcmVzc19tYXNrZWQgKGFkZHIpOwogICAgcCArPSBoZXhudW1zdHIgKHAs IChVTE9OR0VTVCkgYWRkcik7CkBAIC0xOTksNyArMTk5LDcgQEAgSW5kZXg6IGdkYi03LjgvZ2Ri L3JlbW90ZS5jCiAgCiAgICBwdXRwa3QgKHJzLT5idWYpOwogICAgZ2V0cGt0ICgmcnMtPmJ1Ziwg JnJzLT5idWZfc2l6ZSwgMCk7Ci1AQCAtODIyNiw3ICs4MjI2LDcgQEAgcmVtb3RlX2luc2VydF93 YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0XworQEAgLTgzMTgsNyArODMxOCw3IEBAIHJlbW90ZV9p bnNlcnRfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF8KICAKICBzdGF0aWMgaW50CiAgcmVtb3Rl X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQs IENPUkVfQUREUiBhZGRyLApAQCAtMjA4LDcgKzIwOCw3IEBAIEluZGV4OiBnZGItNy44L2dkYi9y ZW1vdGUuYwogIHsKICAgIENPUkVfQUREUiBkaWZmID0gcmVtb3RlX2FkZHJlc3NfbWFza2VkIChh ZGRyIC0gc3RhcnQpOwogIAotQEAgLTgyNTYsNyArODI1Niw3IEBAIHJlbW90ZV9yZW1vdmVfd2F0 Y2hwb2ludCAoc3RydWN0IHRhcmdldF8KK0BAIC04MzQ4LDcgKzgzNDgsNyBAQCByZW1vdGVfcmVt b3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfCiAgICBwID0gc3RyY2hyIChycy0+YnVmLCAn XDAnKTsKICAgIGFkZHIgPSByZW1vdGVfYWRkcmVzc19tYXNrZWQgKGFkZHIpOwogICAgcCArPSBo ZXhudW1zdHIgKHAsIChVTE9OR0VTVCkgYWRkcik7CkBAIC0yMTcsMTEgKzIxNywxMSBAQCBJbmRl eDogZ2RiLTcuOC9nZGIvcmVtb3RlLmMKICAgIHB1dHBrdCAocnMtPmJ1Zik7CiAgICBnZXRwa3Qg KCZycy0+YnVmLCAmcnMtPmJ1Zl9zaXplLCAwKTsKICAKLUluZGV4OiBnZGItNy44L2dkYi90YXJn ZXQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi90YXJnZXQuYwkyMDE0LTA4LTAxIDIzOjI3OjMwLjIwNjc3 MzcwNyArMDIwMAotKysrIGdkYi03LjgvZ2RiL3RhcmdldC5jCTIwMTQtMDgtMDEgMjM6Mjk6Mzgu MzE0OTQ0ODU3ICswMjAwCi1AQCAtNTIsNyArNTIsNyBAQCBzdGF0aWMgdm9pZCB0YXJnZXRfaW5m byAoY2hhciAqLCBpbnQpOworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdGFyZ2V0 LmMJMjAxNS0wMS0wNSAyMjoxMDozMC4xNzU3MjY3OTcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90YXJnZXQuYwkyMDE1LTAxLTA1IDIyOjEwOjM1LjU3NTc1MTM0MiArMDEwMAor QEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIHZvaWQgZ2VuZXJpY190bHNfZXJyb3IgKHZvaWQpIEFU VAogIHN0YXRpYyB2b2lkIGRlZmF1bHRfdGVybWluYWxfaW5mbyAoc3RydWN0IHRhcmdldF9vcHMg KiwgY29uc3QgY2hhciAqLCBpbnQpOwogIAogIHN0YXRpYyBpbnQgZGVmYXVsdF93YXRjaHBvaW50 X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLApAQCAtMjMwLDIzICsyMzAs NyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvdGFyZ2V0LmMKICAKICBzdGF0aWMgaW50IGRlZmF1bHRf cmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqLAogIAkJCQkJ CUNPUkVfQUREUiwgTE9OR0VTVCk7Ci1AQCAtMTUwLDEzICsxNTAsMTMgQEAgc3RhdGljIGludCBk ZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2ludCAocwotIHN0YXRpYyBpbnQgZGVidWdfdG9fc3RvcHBl ZF9kYXRhX2FkZHJlc3MgKHN0cnVjdCB0YXJnZXRfb3BzICosIENPUkVfQUREUiAqKTsKLSAKLSBz dGF0aWMgaW50IGRlYnVnX3RvX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0 YXJnZXRfb3BzICosCi0tCQkJCQkJICBDT1JFX0FERFIsIENPUkVfQUREUiwgaW50KTsKLSsJCQkJ CQkgIENPUkVfQUREUiwgQ09SRV9BRERSLCBMT05HRVNUKTsKLSAKLSBzdGF0aWMgaW50IGRlYnVn X3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYs Ci0gCQkJCQkJIENPUkVfQUREUiwgTE9OR0VTVCk7Ci0gCi0gc3RhdGljIGludCBkZWJ1Z190b19j YW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24gKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLAot LQkJCQkJCSAgICBDT1JFX0FERFIsIGludCwgaW50LAotKwkJCQkJCSAgICBDT1JFX0FERFIsIExP TkdFU1QsIGludCwKLSAJCQkJCQkgICAgc3RydWN0IGV4cHJlc3Npb24gKik7Ci0gCi0gc3RhdGlj IHZvaWQgZGVidWdfdG9fdGVybWluYWxfaW5pdCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYpOwot QEAgLTI5NjAsNyArMjk2MCw3IEBAIGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50 IChzdHIKK0BAIC0yOTgzLDcgKzI5ODMsNyBAQCBkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0 Y2hwb2ludCAoc3RyCiAgc3RhdGljIGludAogIGRlZmF1bHRfd2F0Y2hwb2ludF9hZGRyX3dpdGhp bl9yYW5nZSAoc3RydWN0IHRhcmdldF9vcHMgKnRhcmdldCwKICAJCQkJICAgICAgQ09SRV9BRERS IGFkZHIsCkBAIC0yNTUsNTIgKzIzOSwxMSBAQCBJbmRleDogZ2RiLTcuOC9nZGIvdGFyZ2V0LmMK ICB7CiAgICByZXR1cm4gYWRkciA+PSBzdGFydCAmJiBhZGRyIDwgc3RhcnQgKyBsZW5ndGg7CiAg fQotQEAgLTM2ODEsNyArMzY4MSw3IEBAIGRlYnVnX3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hw b2ludCAoc3QKLSAKLSBzdGF0aWMgaW50Ci0gZGVidWdfdG9fY2FuX2FjY2VsX3dhdGNocG9pbnRf Y29uZGl0aW9uIChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKLS0JCQkJCSBDT1JFX0FERFIgYWRk ciwgaW50IGxlbiwgaW50IHJ3LAotKwkJCQkJIENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbiwg aW50IHJ3LAotIAkJCQkJIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQotIHsKLSAgIGludCByZXR2 YWw7Ci1AQCAtMzY5Miw4ICszNjkyLDggQEAgZGVidWdfdG9fY2FuX2FjY2VsX3dhdGNocG9pbnRf Y29uZGl0aW9uCi0gCi0gICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCi0gCQkgICAg ICAidGFyZ2V0X2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAiCi0tCQkgICAgICAiKCVz LCAlZCwgJWQsICVzKSA9ICVsZFxuIiwKLS0JCSAgICAgIGNvcmVfYWRkcl90b19zdHJpbmcgKGFk ZHIpLCBsZW4sIHJ3LAotKwkJICAgICAgIiglcywgJXMsICVkLCAlcykgPSAlbGRcbiIsCi0rCQkg ICAgICBjb3JlX2FkZHJfdG9fc3RyaW5nIChhZGRyKSwgcGxvbmdlc3QgKGxlbiksIHJ3LAotIAkJ ICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmluZyAoY29uZCksICh1bnNpZ25lZCBsb25nKSByZXR2 YWwpOwotICAgcmV0dXJuIHJldHZhbDsKLSB9Ci1AQCAtMzcyOCw3ICszNzI4LDcgQEAgZGVidWdf dG9fc3RvcHBlZF9kYXRhX2FkZHJlc3MgKHN0cnVjdCB0YQotIHN0YXRpYyBpbnQKLSBkZWJ1Z190 b193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0 LAotIAkJCQkgICAgICAgQ09SRV9BRERSIGFkZHIsCi0tCQkJCSAgICAgICBDT1JFX0FERFIgc3Rh cnQsIGludCBsZW5ndGgpCi0rCQkJCSAgICAgICBDT1JFX0FERFIgc3RhcnQsIExPTkdFU1QgbGVu Z3RoKQotIHsKLSAgIGludCByZXR2YWw7Ci0gCi1AQCAtMzczNiw5ICszNzM2LDkgQEAgZGVidWdf dG9fd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAocwotIAkJCQkJCQkgc3RhcnQsIGxlbmd0 aCk7Ci0gCi0gICBmcHJpbnRmX2ZpbHRlcmVkIChnZGJfc3RkbG9nLAotLQkJICAgICJ0YXJnZXRf d2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoJXMsICVzLCAlZCkgPSAlZFxuIiwKLSsJCSAg ICAidGFyZ2V0X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKCVzLCAlcywgJXMpID0gJWRc biIsCi0gCQkgICAgY29yZV9hZGRyX3RvX3N0cmluZyAoYWRkciksIGNvcmVfYWRkcl90b19zdHJp bmcgKHN0YXJ0KSwKLS0JCSAgICBsZW5ndGgsIHJldHZhbCk7Ci0rCQkgICAgcGxvbmdlc3QgKGxl bmd0aCksIHJldHZhbCk7Ci0gICByZXR1cm4gcmV0dmFsOwotIH0KLSAKLUluZGV4OiBnZGItNy44 L2dkYi90YXJnZXQuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi90YXJnZXQuaAkyMDE0LTA4LTAxIDIzOjI3 OjMwLjIwNzc3MzcwOCArMDIwMAotKysrIGdkYi03LjgvZ2RiL3RhcmdldC5oCTIwMTQtMDgtMDEg MjM6Mjk6MzguMzE1OTQ0ODM5ICswMjAwCi1AQCAtNDY5LDcgKzQ2OSw3IEBAIHN0cnVjdCB0YXJn ZXRfb3BzCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90YXJnZXQuaAkyMDE1LTAx LTA1IDIyOjEwOjMwLjE3NjcyNjgwMiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3RhcmdldC5oCTIwMTUtMDEtMDUgMjI6MTA6MzUuNTc1NzUxMzQyICswMTAwCitAQCAtNDgzLDcg KzQ4Myw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCiAgICAgIGludCAoKnRvX3N0b3BwZWRfZGF0YV9h ZGRyZXNzKSAoc3RydWN0IHRhcmdldF9vcHMgKiwgQ09SRV9BRERSICopCiAgICAgICAgVEFSR0VU X0RFRkFVTFRfUkVUVVJOICgwKTsKICAgICAgaW50ICgqdG9fd2F0Y2hwb2ludF9hZGRyX3dpdGhp bl9yYW5nZSkgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0zMDksNyArMjUyLDcgQEAgSW5kZXg6 IGdkYi03LjgvZ2RiL3RhcmdldC5oCiAgICAgICAgVEFSR0VUX0RFRkFVTFRfRlVOQyAoZGVmYXVs dF93YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlKTsKICAKICAgICAgLyogRG9jdW1lbnRhdGlv biBvZiB0aGlzIHJvdXRpbmUgaXMgcHJvdmlkZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZwotQEAg LTQ3OSw3ICs0NzksNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcworQEAgLTQ5Myw3ICs0OTMsNyBAQCBz dHJ1Y3QgdGFyZ2V0X29wcwogICAgICAgIFRBUkdFVF9ERUZBVUxUX0ZVTkMgKGRlZmF1bHRfcmVn aW9uX29rX2Zvcl9od193YXRjaHBvaW50KTsKICAKICAgICAgaW50ICgqdG9fY2FuX2FjY2VsX3dh dGNocG9pbnRfY29uZGl0aW9uKSAoc3RydWN0IHRhcmdldF9vcHMgKiwKQEAgLTMxOCwxMSArMjYx LDExIEBAIEluZGV4OiBnZGItNy44L2dkYi90YXJnZXQuaAogIAkJCQkJICAgICAgc3RydWN0IGV4 cHJlc3Npb24gKikKICAgICAgICBUQVJHRVRfREVGQVVMVF9SRVRVUk4gKDApOwogICAgICBpbnQg KCp0b19tYXNrZWRfd2F0Y2hfbnVtX3JlZ2lzdGVycykgKHN0cnVjdCB0YXJnZXRfb3BzICosCi1J bmRleDogZ2RiLTcuOC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44 Lm9yaWcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNC0wOC0wMSAyMzoyNzozMC4yMTI3NzM3 MTUgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTQtMDgtMDEg MjM6Mjc6MzAuMjQ4NzczNzYzICswMjAwCi1AQCAtNDI4LDE0ICs0MjgsMTQgQEAgYWFyY2g2NF9u b3RpZnlfZGVidWdfcmVnX2NoYW5nZSAoY29uc3QgcworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1LTAxLTA1IDIyOjEwOjMwLjE3NjcyNjgw MiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJ MjAxNS0wMS0wNSAyMjoxMDozNS41NzU3NTEzNDIgKzAxMDAKK0BAIC00MjQsMTQgKzQyNCwxNCBA QCBhYXJjaDY0X25vdGlmeV9kZWJ1Z19yZWdfY2hhbmdlIChjb25zdCBzCiAgc3RhdGljIHZvaWQK ICBhYXJjaDY0X3Nob3dfZGVidWdfcmVnX3N0YXRlIChzdHJ1Y3QgYWFyY2g2NF9kZWJ1Z19yZWdf c3RhdGUgKnN0YXRlLAogIAkJCSAgICAgIGNvbnN0IGNoYXIgKmZ1bmMsIENPUkVfQUREUiBhZGRy LApAQCAtMzQwLDcgKzI4Myw3IEBAIEluZGV4OiBnZGItNy44L2dkYi9hYXJjaDY0LWxpbnV4LW5h dC5jCiAgCQkJdHlwZSA9PSBod193cml0ZSA/ICJody13cml0ZS13YXRjaHBvaW50IgogIAkJCTog KHR5cGUgPT0gaHdfcmVhZCA/ICJody1yZWFkLXdhdGNocG9pbnQiCiAgCQkJICAgOiAodHlwZSA9 PSBod19hY2Nlc3MgPyAiaHctYWNjZXNzLXdhdGNocG9pbnQiCi1AQCAtODY5LDkgKzg2OSwxMCBA QCBhYXJjaDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24gKHN0cnVjdCB0CitAQCAtODUxLDkgKzg1 MSwxMCBAQCBhYXJjaDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24gKHN0cnVjdCB0CiAgICAgZ2Ri c2VydmVyL2xpbnV4LWFhcmNoNjQtbG93LmMgZm9yIG1vcmUgaW5mb3JtYXRpb24uICAqLwogIAog IHN0YXRpYyB2b2lkCkBAIC0zNTMsNyArMjk2LDcgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL2FhcmNo NjQtbGludXgtbmF0LmMKICB7CiAgICBpbnQgYWxpZ25lZF9sZW47CiAgICB1bnNpZ25lZCBpbnQg b2Zmc2V0OwotQEAgLTEwMzgsNyArMTAzOSw3IEBAIGFhcmNoNjRfcG9pbnRfZW5jb2RlX2N0cmxf cmVnIChpbnQgdHlwZSwKK0BAIC0xMDIwLDcgKzEwMjEsNyBAQCBhYXJjaDY0X3BvaW50X2VuY29k ZV9jdHJsX3JlZyAoaW50IHR5cGUsCiAgICAgUmV0dXJuIDAgZm9yIGFueSBub24tY29tcGxpYW50 IEFERFIgYW5kL29yIExFTjsgcmV0dXJuIDEgb3RoZXJ3aXNlLiAgKi8KICAKICBzdGF0aWMgaW50 CkBAIC0zNjIsNyArMzA1LDcgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL2FhcmNoNjQtbGludXgtbmF0 LmMKICB7CiAgICB1bnNpZ25lZCBpbnQgYWxpZ25tZW50ID0gaXNfd2F0Y2hwb2ludCA/IEFBUkNI NjRfSFdQX0FMSUdOTUVOVAogICAgICA6IEFBUkNINjRfSEJQX0FMSUdOTUVOVDsKLUBAIC0xMjkw LDcgKzEyOTEsNyBAQCBhYXJjaDY0X2hhbmRsZV9hbGlnbmVkX3dhdGNocG9pbnQgKGludCB0CitA QCAtMTI3Miw3ICsxMjczLDcgQEAgYWFyY2g2NF9oYW5kbGVfYWxpZ25lZF93YXRjaHBvaW50IChp bnQgdAogICAgIFJldHVybiAwIGlmIHN1Y2NlZWQuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTM3 MSw3ICszMTQsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogIAkJ CQkgICAgIGludCBpc19pbnNlcnQpCiAgewogICAgc3RydWN0IGFhcmNoNjRfZGVidWdfcmVnX3N0 YXRlICpzdGF0ZQotQEAgLTEzMTUsOCArMTMxNiw4IEBAIGFhcmNoNjRfaGFuZGxlX3VuYWxpZ25l ZF93YXRjaHBvaW50IChpbnQKK0BAIC0xMjk3LDggKzEyOTgsOCBAQCBhYXJjaDY0X2hhbmRsZV91 bmFsaWduZWRfd2F0Y2hwb2ludCAoaW50CiAgCWZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxv ZywKICAiaGFuZGxlX3VuYWxpZ25lZF93YXRjaHBvaW50OiBpc19pbnNlcnQ6ICVkXG4iCiAgIiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25lZF9hZGRyOiAweCUwOGx4LCBhbGlnbmVk X2xlbjogJWRcbiIKQEAgLTM4Miw3ICszMjUsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvYWFyY2g2 NC1saW51eC1uYXQuYwogIAogICAgICAgIGlmIChyZXQgIT0gMCkKICAJcmV0dXJuIHJldDsKLUBA IC0xMzI4LDcgKzEzMjksNyBAQCBhYXJjaDY0X2hhbmRsZV91bmFsaWduZWRfd2F0Y2hwb2ludCAo aW50CitAQCAtMTMxMCw3ICsxMzExLDcgQEAgYWFyY2g2NF9oYW5kbGVfdW5hbGlnbmVkX3dhdGNo cG9pbnQgKGludAogIC8qIEltcGxlbWVudHMgaW5zZXJ0aW9uIGFuZCByZW1vdmFsIG9mIGEgc2lu Z2xlIHdhdGNocG9pbnQuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTM5MSw3ICszMzQsNyBAQCBJ bmRleDogZ2RiLTcuOC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogIHsKICAgIGlmIChhYXJjaDY0 X3BvaW50X2lzX2FsaWduZWQgKDEgLyogaXNfd2F0Y2hwb2ludCAqLyAsIGFkZHIsIGxlbikpCiAg ICAgIHJldHVybiBhYXJjaDY0X2hhbmRsZV9hbGlnbmVkX3dhdGNocG9pbnQgKHR5cGUsIGFkZHIs IGxlbiwgaXNfaW5zZXJ0KTsKLUBAIC0xNDk3LDcgKzE0OTgsNyBAQCBhYXJjaDY0X2xpbnV4X3N0 b3BwZWRfYnlfd2F0Y2hwb2ludCAoc3RyCitAQCAtMTQ3OSw3ICsxNDgwLDcgQEAgYWFyY2g2NF9s aW51eF9zdG9wcGVkX2J5X3dhdGNocG9pbnQgKHN0cgogIHN0YXRpYyBpbnQKICBhYXJjaDY0X2xp bnV4X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJn ZXQsCiAgCQkJCQkgICAgQ09SRV9BRERSIGFkZHIsCkBAIC00MDAsMTEgKzM0MywxMSBAQCBJbmRl eDogZ2RiLTcuOC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogIHsKICAgIHJldHVybiBzdGFydCA8 PSBhZGRyICYmIHN0YXJ0ICsgbGVuZ3RoIC0gMSA+PSBhZGRyOwogIH0KLUluZGV4OiBnZGItNy44 L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 YXJnZXQtZGVsZWdhdGVzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL3Rhcmdl dC1kZWxlZ2F0ZXMuYwkyMDE0LTA4LTAxIDIzOjI3OjMwLjIxMjc3MzcxNSArMDIwMAotKysrIGdk Yi03LjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE0LTA4LTAxIDIzOjI5OjM4LjMxMzk0NDg3 NyArMDIwMAotQEAgLTI2MSw3ICsyNjEsNyBAQCB0ZGVmYXVsdF9zdG9wcGVkX2RhdGFfYWRkcmVz cyAoc3RydWN0IHRhCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90YXJnZXQtZGVs ZWdhdGVzLmMJMjAxNS0wMS0wNSAyMjoxMDozMC4xNzc3MjY4MDYgKzAxMDAKKysrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0wMS0wNSAyMjoxMjoxMS4w NzExODU0MDggKzAxMDAKK0BAIC02MDcsMTQgKzYwNywxNCBAQCBkZWJ1Z19zdG9wcGVkX2RhdGFf YWRkcmVzcyAoc3RydWN0IHRhcmdlCiAgfQogIAogIHN0YXRpYyBpbnQKQEAgLTQxMyw3ICszNTYs MjQgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogIHsKICAgIHNlbGYg PSBzZWxmLT5iZW5lYXRoOwogICAgcmV0dXJuIHNlbGYtPnRvX3dhdGNocG9pbnRfYWRkcl93aXRo aW5fcmFuZ2UgKHNlbGYsIGFyZzEsIGFyZzIsIGFyZzMpOwotQEAgLTI3NSwxNCArMjc1LDE0IEBA IGRlbGVnYXRlX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3QKKyB9CisgCisgc3RhdGlj IGludAorLWRlYnVnX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRf b3BzICpzZWxmLCBDT1JFX0FERFIgYXJnMSwgQ09SRV9BRERSIGFyZzIsIGludCBhcmczKQorK2Rl YnVnX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxm LCBDT1JFX0FERFIgYXJnMSwgQ09SRV9BRERSIGFyZzIsIExPTkdFU1QgYXJnMykKKyB7CisgICBp bnQgcmVzdWx0OworICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnRv X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKC4uLilcbiIsIGRlYnVnX3RhcmdldC50b19z aG9ydG5hbWUpOworQEAgLTYyNiw3ICs2MjYsNyBAQCBkZWJ1Z193YXRjaHBvaW50X2FkZHJfd2l0 aGluX3JhbmdlIChzdHJ1CisgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsK KyAgIHRhcmdldF9kZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzIpOworICAgZnB1dHNfdW5maWx0 ZXJlZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7CistICB0YXJnZXRfZGVidWdfcHJpbnRfaW50IChhcmcz KTsKKysgIHRhcmdldF9kZWJ1Z19wcmludF9MT05HRVNUIChhcmczKTsKKyAgIGZwdXRzX3VuZmls dGVyZWQgKCIpID0gIiwgZ2RiX3N0ZGxvZyk7CisgICB0YXJnZXRfZGVidWdfcHJpbnRfaW50IChy ZXN1bHQpOworICAgZnB1dHNfdW5maWx0ZXJlZCAoIlxuIiwgZ2RiX3N0ZGxvZyk7CitAQCAtNjU5 LDIwICs2NTksMjAgQEAgZGVidWdfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Ywog IH0KICAKICBzdGF0aWMgaW50CkBAIC00MzAsMyArMzkwLDE5IEBAIEluZGV4OiBnZGItNy44L2dk Yi90YXJnZXQtZGVsZWdhdGVzLmMKICB7CiAgICByZXR1cm4gMDsKICB9CisgCisgc3RhdGljIGlu dAorLWRlYnVnX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoc3RydWN0IHRhcmdldF9v cHMgKnNlbGYsIENPUkVfQUREUiBhcmcxLCBpbnQgYXJnMiwgaW50IGFyZzMsIHN0cnVjdCBleHBy ZXNzaW9uICphcmc0KQorK2RlYnVnX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoc3Ry dWN0IHRhcmdldF9vcHMgKnNlbGYsIENPUkVfQUREUiBhcmcxLCBMT05HRVNUIGFyZzIsIGludCBh cmczLCBzdHJ1Y3QgZXhwcmVzc2lvbiAqYXJnNCkKKyB7CisgICBpbnQgcmVzdWx0OworICAgZnBy aW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnRvX2Nhbl9hY2NlbF93YXRjaHBv aW50X2NvbmRpdGlvbiAoLi4uKVxuIiwgZGVidWdfdGFyZ2V0LnRvX3Nob3J0bmFtZSk7CitAQCAt NjgyLDcgKzY4Miw3IEBAIGRlYnVnX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoc3QK KyAgIGZwdXRzX3VuZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRsb2cpOworICAgdGFyZ2V0X2RlYnVn X3ByaW50X0NPUkVfQUREUiAoYXJnMSk7CisgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJf c3RkbG9nKTsKKy0gIHRhcmdldF9kZWJ1Z19wcmludF9pbnQgKGFyZzIpOworKyAgdGFyZ2V0X2Rl YnVnX3ByaW50X0xPTkdFU1QgKGFyZzIpOworICAgZnB1dHNfdW5maWx0ZXJlZCAoIiwgIiwgZ2Ri X3N0ZGxvZyk7CisgICB0YXJnZXRfZGVidWdfcHJpbnRfaW50IChhcmczKTsKKyAgIGZwdXRzX3Vu ZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRsb2cpOwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0 LWJpdHBvcy0yM29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNo CmluZGV4IGUwZTEzYjUuLjA5ZjhmMmEgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBv cy0yM29mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaApA QCAtMTM3LDExICsxMzcsMTEgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7 IGZpbGVuYW1lPWJpdHBvcy10ZGVwLnBhdGNoCiAKLUluZGV4OiBnZGItNy43LjEvZ2RiL2FscGhh LXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FscGhhLXRkZXAuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAxNC0wNS0wOSAx OToyNDoxOC42NzcyNTI3NjkgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL2FscGhhLXRkZXAuYwky MDE0LTA1LTA5IDIwOjAyOjA5LjYyMDcwMzc2NyArMDIwMAotQEAgLTI5OSwxOCArMjk5LDE4IEBA IGFscGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKKy0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU1Ljk4ODAy MzYwNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FscGhhLXRkZXAuYwkyMDE1 LTAxLTA1IDIyOjE5OjA4LjA4NjA3ODQ0MCArMDEwMAorQEAgLTI5OCwxOCArMjk4LDE4IEBAIGFs cGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICB7CiAgICBlbnVtIGJmZF9l bmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQg aTsKQEAgLTE2NCw3ICsxNjQsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9hbHBoYS10ZGVwLmMK ICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBO VUxMKTsKICAKICAgIC8qIFRoZSBBQkkgcGxhY2VzIHRoZSBhZGRyZXNzIG9mIHRoZSBjYWxsZWQg ZnVuY3Rpb24gaW4gVDEyLiAgKi8KLUBAIC00MzAsOCArNDMwLDggQEAgYWxwaGFfcHVzaF9kdW1t eV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZworQEAgLTQyOSw4ICs0MjksOCBAQCBhbHBoYV9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCiAgICBmb3IgKGkgPSBuYXJnczsgbV9hcmct LSwgLS1pID49IDA7KQogICAgICB7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzID0g bV9hcmctPmNvbnRlbnRzOwpAQCAtMTc1LDcgKzE3NSw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2Ri L2FscGhhLXRkZXAuYwogIAogICAgICAgIC8qIENvcHkgdGhlIGJ5dGVzIGRlc3RpbmVkIGZvciBy ZWdpc3RlcnMgaW50byBhcmdfcmVnX2J1ZmZlci4gICovCiAgICAgICAgaWYgKG9mZnNldCA8IHNp emVvZihhcmdfcmVnX2J1ZmZlcikpCi1AQCAtNDQzLDcgKzQ0Myw3IEBAIGFscGhhX3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKK0BAIC00NDIsNyArNDQyLDcgQEAgYWxwaGFfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZwogIAkgICAgfQogIAkgIGVsc2UKICAJICAg IHsKQEAgLTE4NCwxMSArMTg0LDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL2FscGhhLXRkZXAu YwogIAkgICAgICBtZW1jcHkgKGFyZ19yZWdfYnVmZmVyICsgb2Zmc2V0LCBjb250ZW50cywgdGxl bik7CiAgCSAgICAgIG9mZnNldCArPSB0bGVuOwogIAkgICAgICBjb250ZW50cyArPSB0bGVuOwot SW5kZXg6IGdkYi03LjcuMS9nZGIvYW1kNjQtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvYW1kNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2Ri L2FtZDY0LXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY3ODI1Mjc3MCArMDIwMAotKysrIGdk Yi03LjcuMS9nZGIvYW1kNjQtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjIwNzAzNzY3ICsw MjAwCi1AQCAtNjMzLDcgKzYzMyw3IEBAIGFtZDY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFy Y2ggKmdkYmEKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwky MDE1LTAxLTA1IDIyOjE4OjU1Ljk4OTAyMzYxMiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2FtZDY0LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA4NzA3ODQ0NCArMDEwMAor QEAgLTcwMCw3ICs3MDAsNyBAQCBhbWQ2NF9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpn ZGJhCiAgCQkgICAgZ2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikK ICB7CiAgICBlbnVtIGFtZDY0X3JlZ19jbGFzcyBjbGFzc1syXTsKQEAgLTE5Nyw3ICsxOTcsNyBA QCBJbmRleDogZ2RiLTcuNy4xL2dkYi9hbWQ2NC10ZGVwLmMKICAgIHN0YXRpYyBpbnQgaW50ZWdl cl9yZWdudW1bXSA9IHsgQU1ENjRfUkFYX1JFR05VTSwgQU1ENjRfUkRYX1JFR05VTSB9OwogICAg c3RhdGljIGludCBzc2VfcmVnbnVtW10gPSB7IEFNRDY0X1hNTTBfUkVHTlVNLCBBTUQ2NF9YTU0x X1JFR05VTSB9OwogICAgaW50IGludGVnZXJfcmVnID0gMDsKLUBAIC03ODQsOCArNzg0LDggQEAg YW1kNjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgorQEAgLTg1MSw4ICs4NTEs OCBAQCBhbWQ2NF9wdXNoX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyCiAgICB9OwogICAg c3RydWN0IHZhbHVlICoqc3RhY2tfYXJncyA9IGFsbG9jYSAobmFyZ3MgKiBzaXplb2YgKHN0cnVj dCB2YWx1ZSAqKSk7CiAgICBpbnQgbnVtX3N0YWNrX2FyZ3MgPSAwOwpAQCAtMjA4LDcgKzIwOCw3 IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL2FtZDY0LXRkZXAuYwogICAgaW50IGludGVnZXJfcmVn ID0gMDsKICAgIGludCBzc2VfcmVnID0gMDsKICAgIGludCBpOwotQEAgLTc5Nyw3ICs3OTcsNyBA QCBhbWQ2NF9wdXNoX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyCitAQCAtODY0LDcgKzg2 NCw3IEBAIGFtZDY0X3B1c2hfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKICAgIGZvciAo aSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUg PSB2YWx1ZV90eXBlIChhcmdzW2ldKTsKQEAgLTIxNywxMCArMjE3LDEwIEBAIEluZGV4OiBnZGIt Ny43LjEvZ2RiL2FtZDY0LXRkZXAuYwogICAgICAgIGVudW0gYW1kNjRfcmVnX2NsYXNzIGNsYXNz WzJdOwogICAgICAgIGludCBuZWVkZWRfaW50ZWdlcl9yZWdzID0gMDsKICAgICAgICBpbnQgbmVl ZGVkX3NzZV9yZWdzID0gMDsKLUluZGV4OiBnZGItNy43LjEvZ2RiL2FtZDY0LXdpbmRvd3MtdGRl cC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMJ MjAxNC0wNS0wOSAxOToyNDoxOC42NzkyNTI3NzAgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL2Ft ZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjIwNzAzNzY3ICswMjAwCist LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE1 LTAxLTA1IDIyOjE4OjU1Ljk5MDAyMzYxNiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDg3MDc4NDQ0ICsw MTAwCiBAQCAtMjg4LDcgKzI4OCw3IEBAIGFtZDY0X3dpbmRvd3NfcmV0dXJuX3ZhbHVlIChzdHJ1 Y3QgZ2RiYXIKICAJCQkgICAgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCByZWdjYWNoZSAqcmVn Y2FjaGUsCiAgCQkJICAgIGdkYl9ieXRlICpyZWFkYnVmLCBjb25zdCBnZGJfYnl0ZSAqd3JpdGVi dWYpCkBAIC0yMzAsMjAgKzIzMCwyMCBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9hbWQ2NC13aW5k b3dzLXRkZXAuYwogICAgaW50IHJlZ251bSA9IC0xOwogIAogICAgLyogU2VlIGlmIG91ciB2YWx1 ZSBpcyByZXR1cm5lZCB0aHJvdWdoIGEgcmVnaXN0ZXIuICBJZiBpdCBpcywgdGhlbgotSW5kZXg6 IGdkYi03LjcuMS9nZGIvYXJtLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2FybS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvYXJtLXRkZXAu YwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY4NDI1Mjc3MCArMDIwMAotKysrIGdkYi03LjcuMS9nZGIv YXJtLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYyMjcwMzc2OCArMDIwMAotQEAgLTM0OTgs NyArMzQ5OCw3IEBAIGFybV92ZnBfY3ByY19yZWdfY2hhciAoZW51bSBhcm1fdmZwX2NwcmMKLSAg ICBhcnJheSkuICBWZWN0b3JzIGFuZCBjb21wbGV4IHR5cGVzIGFyZSBub3QgY3VycmVudGx5IHN1 cHBvcnRlZCwKLSAgICBtYXRjaGluZyB0aGUgZ2VuZXJpYyBBQVBDUyBzdXBwb3J0LiAgKi8KKy0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2FybS10ZGVwLmMJMjAxNS0wMS0wNSAyMjox ODo1NS45OTUwMjM2MzkgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tdGRl cC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDg5MDc4NDUzICswMTAwCitAQCAtMzUyNCw3ICszNTI0 LDcgQEAgYXJtX3ZmcF9jcHJjX3JlZ19jaGFyIChlbnVtIGFybV92ZnBfY3ByYworICAgIGFycmF5 KS4gIFZlY3RvciB0eXBlcyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQsIG1hdGNoaW5nIHRo ZQorICAgIGdlbmVyaWMgQUFQQ1Mgc3VwcG9ydC4gICovCiAgCiAtc3RhdGljIGludAogK3N0YXRp YyBMT05HRVNUCiAgYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKHN0cnVjdCB0eXBlICp0LAog IAkJCSAgICBlbnVtIGFybV92ZnBfY3ByY19iYXNlX3R5cGUgKmJhc2VfdHlwZSkKICB7Ci1AQCAt MzUyOSw3ICszNTI5LDcgQEAgYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKHN0cnVjdCB0eXBl CitAQCAtMzU4Nyw3ICszNTg3LDcgQEAgYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKHN0cnVj dCB0eXBlCiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX0FSUkFZOgogICAgICAgIHsKQEAgLTI1Miw3 ICsyNTIsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9hcm0tdGRlcC5jCiAgCXVuc2lnbmVkIHVu aXRsZW47CiAgCWNvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVfVEFSR0VU X1RZUEUgKHQpLCBiYXNlX3R5cGUpOwogIAlpZiAoY291bnQgPT0gLTEpCi1AQCAtMzU0OSwxMyAr MzU0OSwxNSBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKK0BAIC0z NjA3LDEzICszNjA3LDE1IEBAIGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChzdHJ1Y3QgdHlw ZQogIAogICAgICBjYXNlIFRZUEVfQ09ERV9TVFJVQ1Q6CiAgICAgICAgewpAQCAtMjcxLDcgKzI3 MSw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL2FybS10ZGVwLmMKICAJICAgIGlmIChzdWJfY291 bnQgPT0gLTEpCiAgCSAgICAgIHJldHVybiAtMTsKICAJICAgIGNvdW50ICs9IHN1Yl9jb3VudDsK LUBAIC0zNTc1LDEzICszNTc3LDE1IEBAIGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChzdHJ1 Y3QgdHlwZQorQEAgLTM2MzMsMTMgKzM2MzUsMTUgQEAgYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRh dGUgKHN0cnVjdCB0eXBlCiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX1VOSU9OOgogICAgICAgIHsK QEAgLTI5MCw3ICsyOTAsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9hcm0tdGRlcC5jCiAgCSAg ICBpZiAoc3ViX2NvdW50ID09IC0xKQogIAkgICAgICByZXR1cm4gLTE7CiAgCSAgICBjb3VudCA9 IChjb3VudCA+IHN1Yl9jb3VudCA/IGNvdW50IDogc3ViX2NvdW50KTsKLUBAIC0zNjE3LDcgKzM2 MjEsNyBAQCBhcm1fdmZwX2NhbGxfY2FuZGlkYXRlIChzdHJ1Y3QgdHlwZSAqdCwKK0BAIC0zNjc1 LDcgKzM2NzksNyBAQCBhcm1fdmZwX2NhbGxfY2FuZGlkYXRlIChzdHJ1Y3QgdHlwZSAqdCwKICAJ CQlpbnQgKmNvdW50KQogIHsKICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSBiID0gVkZQ X0NQUkNfVU5LTk9XTjsKQEAgLTI5OSw3ICsyOTksNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9h cm0tdGRlcC5jCiAgICBpZiAoYyA8PSAwIHx8IGMgPiA0KQogICAgICByZXR1cm4gMDsKICAgICpi YXNlX3R5cGUgPSBiOwotQEAgLTM2OTgsNyArMzcwMiw3IEBAIGFybV9wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoICpnZGIKK0BAIC0zNzU2LDcgKzM3NjAsNyBAQCBhcm1fcHVzaF9kdW1t eV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCiAgCiAgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251 bSA8IG5hcmdzOyBhcmdudW0rKykKICAgICAgewpAQCAtMzA4LDExICszMDgsMTEgQEAgSW5kZXg6 IGdkYi03LjcuMS9nZGIvYXJtLXRkZXAuYwogICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZTsK ICAgICAgICBzdHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGU7CiAgICAgICAgZW51bSB0eXBlX2NvZGUg dHlwZWNvZGU7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi9hdnItdGRlcC5jCitJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvYXZyLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5v cmlnL2dkYi9hdnItdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNjg2MjUyNzcxICswMjAwCi0r KysgZ2RiLTcuNy4xL2dkYi9hdnItdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjIzNzAzNzY4 ICswMjAwCi1AQCAtMTE2NywxMyArMTE2NywxNCBAQCBhdnJfZHVtbXlfaWQgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLCBzCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hdnItdGRl cC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTk2MDIzNjQzICswMTAwCisrKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvYXZyLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA4OTA3ODQ1MyArMDEw MAorQEAgLTExOTYsMTMgKzExOTYsMTQgQEAgYXZyX2R1bW15X2lkIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCwgcwogIAogIHN0cnVjdCBzdGFja19pdGVtCiAgewpAQCAtMzI5LDcgKzMyOSw3IEBA IEluZGV4OiBnZGItNy43LjEvZ2RiL2F2ci10ZGVwLmMKICB7CiAgICBzdHJ1Y3Qgc3RhY2tfaXRl bSAqc2k7CiAgICBzaSA9IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IHN0YWNrX2l0ZW0pKTsKLUBA IC0xMjYyLDEyICsxMjYzLDEyIEBAIGF2cl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNo ICpnZGIKK0BAIC0xMjkxLDEyICsxMjkyLDEyIEBAIGF2cl9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICpnZGIKICAKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7 CkBAIC0zNDUsMTEgKzM0NSwxMSBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9hdnItdGRlcC5jCiAg CiAgICAgICAgLyogQ2FsY3VsYXRlIHRoZSBwb3RlbnRpYWwgbGFzdCByZWdpc3RlciBuZWVkZWQu ICAqLwogICAgICAgIGxhc3RfcmVnbnVtID0gcmVnbnVtIC0gKGxlbiArIChsZW4gJiAxKSk7Ci1J bmRleDogZ2RiLTcuNy4xL2dkYi9iZmluLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2JmaW4tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2RiL2Jm aW4tdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNjg2MjUyNzcxICswMjAwCi0rKysgZ2RiLTcu Ny4xL2dkYi9iZmluLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYyMzcwMzc2OCArMDIwMAot QEAgLTUwNiw3ICs1MDYsNyBAQCBiZmluX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KmdkCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDE1LTAx LTA1IDIyOjE4OjU1Ljk5NjAyMzY0MyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2JmaW4tdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDkwMDc4NDU4ICswMTAwCitAQCAtNTA0 LDcgKzUwNCw3IEBAIGJmaW5fcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAg IGdkYl9ieXRlIGJ1Zls0XTsKICAgIGludCBpOwogICAgbG9uZyByZWdfcjAsIHJlZ19yMSwgcmVn X3IyOwpAQCAtMzU4LDcgKzM1OCw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL2JmaW4tdGRlcC5j CiAgICBlbnVtIGJmaW5fYWJpIGFiaSA9IGJmaW5fYWJpIChnZGJhcmNoKTsKICAgIENPUkVfQURE UiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsKICAKLUBA IC01MzAsNyArNTMwLDcgQEAgYmZpbl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpn ZAorQEAgLTUyOCw3ICs1MjgsNyBAQCBiZmluX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFy Y2ggKmdkCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdmFsdWVfdHlwZSA9IHZhbHVlX2Vu Y2xvc2luZ190eXBlIChhcmdzW2ldKTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBj aGVja190eXBlZGVmICh2YWx1ZV90eXBlKTsKQEAgLTM2NywxMSArMzY3LDExIEBAIEluZGV4OiBn ZGItNy43LjEvZ2RiL2JmaW4tdGRlcC5jCiAgCiAgICAgICAgc3AgLT0gY29udGFpbmVyX2xlbjsK ICAgICAgICB3cml0ZV9tZW1vcnkgKHNwLCB2YWx1ZV9jb250ZW50c193cml0ZWFibGUgKGFyZ3Nb aV0pLCBjb250YWluZXJfbGVuKTsKLUluZGV4OiBnZGItNy43LjEvZ2RiL2NyaXMtdGRlcC5jCitJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY3Jpcy10ZGVwLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy43LjEub3JpZy9nZGIvY3Jpcy10ZGVwLmMJMjAxNC0wNS0wOSAxOToyNDoxOC42ODcy NTI3NzEgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL2NyaXMtdGRlcC5jCTIwMTQtMDUtMDkgMjA6 MDI6MDkuNjIzNzAzNzY4ICswMjAwCi1AQCAtNjY1LDEzICs2NjUsMTMgQEAgc3RhdGljIENPUkVf QUREUiBjcmlzX3Vud2luZF9zcCAoc3RydWN0CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi9jcmlzLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU1Ljk5NzAyMzY0OCArMDEwMAorKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NyaXMtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDgu MDkwMDc4NDU4ICswMTAwCitAQCAtNjYzLDEzICs2NjMsMTMgQEAgc3RhdGljIENPUkVfQUREUiBj cmlzX3Vud2luZF9zcCAoc3RydWN0CiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0KICB7CkBAIC0zODcs NyArMzg3LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvY3Jpcy10ZGVwLmMKICB7CiAgICBzdHJ1 Y3Qgc3RhY2tfaXRlbSAqc2k7CiAgICBzaSA9IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IHN0YWNr X2l0ZW0pKTsKLUBAIC04NDQsMTMgKzg0NCwxMyBAQCBjcmlzX3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKmdkCitAQCAtODQyLDEzICs4NDIsMTMgQEAgY3Jpc19wdXNoX2R1bW15X2Nh bGwgKHN0cnVjdCBnZGJhcmNoICpnZAogIAogICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBu YXJnczsgYXJnbnVtKyspCiAgICAgIHsKQEAgLTQwNSwxMSArNDA1LDExIEBAIEluZGV4OiBnZGIt Ny43LjEvZ2RiL2NyaXMtdGRlcC5jCiAgICAgICAgCiAgICAgICAgLyogSG93IG1heSByZWdpc3Rl cnMgd29ydGggb2Ygc3RvcmFnZSBkbyB3ZSBuZWVkIGZvciB0aGlzIGFyZ3VtZW50PyAgKi8KICAg ICAgICByZWdfZGVtYW5kID0gKGxlbiAvIDQpICsgKGxlbiAlIDQgIT0gMCA/IDEgOiAwKTsKLUlu ZGV4OiBnZGItNy43LjEvZ2RiL2g4MzAwLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2g4MzAwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi9o ODMwMC10ZGVwLmMJMjAxNC0wNS0wOSAxOToyNDoxOC42ODgyNTI3NzEgKzAyMDAKLSsrKyBnZGIt Ny43LjEvZ2RiL2g4MzAwLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYyNDcwMzc2OCArMDIw MAotQEAgLTY0MCw3ICs2NDAsNyBAQCBoODMwMF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJh cmNoICpnCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9oODMwMC10ZGVwLmMJMjAx NS0wMS0wNSAyMjoxODo1NS45OTgwMjM2NTIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9oODMwMC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTEwNzg0NjMgKzAxMDAKK0BA IC02MzksNyArNjM5LDcgQEAgaDgzMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAq ZwogIAkJICAgICAgIGludCBzdHJ1Y3RfcmV0dXJuLCBDT1JFX0FERFIgc3RydWN0X2FkZHIpCiAg ewogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdk YmFyY2gpOwpAQCAtNDE4LDcgKzQxOCw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL2g4MzAwLXRk ZXAuYwogICAgaW50IHdvcmRzaXplID0gQklOV09SRCAoZ2RiYXJjaCk7CiAgICBpbnQgcmVnID0g RV9BUkcwX1JFR05VTTsKICAgIGludCBhcmd1bWVudDsKLUBAIC02NjcsMTEgKzY2NywxMSBAQCBo ODMwMF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCitAQCAtNjY2LDExICs2NjYs MTEgQEAgaDgzMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZwogICAgICB7CiAg ICAgICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUg PSB2YWx1ZV90eXBlIChhcmdzW2FyZ3VtZW50XSk7CkBAIC00MzIsNyArNDMyLDcgQEAgSW5kZXg6 IGdkYi03LjcuMS9nZGIvaDgzMDAtdGRlcC5jCiAgICAgICAgZ2RiX2J5dGUgKnBhZGRlZCA9IHht YWxsb2MgKHBhZGRlZF9sZW4pOwogICAgICAgIGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKHhmcmVl LCBwYWRkZWQpOwogIAotQEAgLTcwMCw3ICs3MDAsNyBAQCBoODMwMF9wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoICpnCitAQCAtNjk5LDcgKzY5OSw3IEBAIGg4MzAwX3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAJICAgICAgLyogSGVhdmVucyB0byBCZXRzeSAtLS0g aXQncyByZWFsbHkgZ29pbmcgaW4gcmVnaXN0ZXJzIQogIAkgICAgICAgICBOb3RlIHRoYXQgb24g dGhlIGg4LzMwMHMsIHRoZXJlIGFyZSBnYXBzIGJldHdlZW4gdGhlCiAgCSAgICAgICAgIHJlZ2lz dGVycyBpbiB0aGUgcmVnaXN0ZXIgZmlsZS4gICovCkBAIC00NDEsMTEgKzQ0MSwxMSBAQCBJbmRl eDogZ2RiLTcuNy4xL2dkYi9oODMwMC10ZGVwLmMKICAKICAJICAgICAgZm9yIChvZmZzZXQgPSAw OyBvZmZzZXQgPCBwYWRkZWRfbGVuOyBvZmZzZXQgKz0gd29yZHNpemUpCiAgCQl7Ci1JbmRleDog Z2RiLTcuNy4xL2dkYi9ocHBhLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2hwcGEtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2RiL2hwcGEtdGRl cC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNjkwMjUyNzcxICswMjAwCi0rKysgZ2RiLTcuNy4xL2dk Yi9ocHBhLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYyNDcwMzc2OCArMDIwMAotQEAgLTk2 MSw3ICs5NjEsNyBAQCBocHBhNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCist LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9ocHBhLXRkZXAuYwkyMDE1LTAxLTA1IDIy OjE4OjU1Ljk5OTAyMzY1NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2hwcGEt dGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDkxMDc4NDYzICswMTAwCitAQCAtOTYwLDcgKzk2 MCw3IEBAIGhwcGE2NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKICAgICAgewog ICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKICAgICAgICBzdHJ1Y3QgdHlwZSAq dHlwZSA9IHZhbHVlX3R5cGUgKGFyZyk7CkBAIC00NTQsNyArNDU0LDcgQEAgSW5kZXg6IGdkYi03 LjcuMS9nZGIvaHBwYS10ZGVwLmMKICAgICAgICBjb25zdCBiZmRfYnl0ZSAqdmFsYnVmOwogICAg ICAgIGJmZF9ieXRlIGZwdHJidWZbOF07CiAgICAgICAgaW50IHJlZ251bTsKLUBAIC0xMTU2LDcg KzExNTYsNyBAQCBocHBhNjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCitAQCAt MTE1NSw3ICsxMTU1LDcgQEAgaHBwYTY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2ggKmdk YgogIAkJICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwK ICAJCSAgICAgZ2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKICB7 CkBAIC00NjMsMTEgKzQ2MywxMSBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9ocHBhLXRkZXAuYwog ICAgaW50IHJlZ251bSwgb2Zmc2V0OwogIAogICAgaWYgKGxlbiA+IDE2KQotSW5kZXg6IGdkYi03 LjcuMS9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2Ri L2kzODYtZGFyd2luLXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY5MDI1Mjc3MSArMDIwMAot KysrIGdkYi03LjcuMS9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDku NjI0NzAzNzY4ICswMjAwCi1AQCAtMTY0LDcgKzE2NCw3IEBAIGkzODZfZGFyd2luX3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmEKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2kz ODYtZGFyd2luLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU1Ljk5OTAyMzY1NyArMDEwMAorKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDE1LTAxLTA1IDIy OjE5OjA4LjA5MTA3ODQ2MyArMDEwMAorQEAgLTE2Myw3ICsxNjMsNyBAQCBpMzg2X2Rhcndpbl9w dXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhCiAgCiAgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3 cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFzcysrKQogICAgICB7CkBAIC00NzYsMTEgKzQ3NiwxMSBA QCBJbmRleDogZ2RiLTcuNy4xL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMKICAgICAgICBpbnQgbnVt X20xMjggPSAwOwogIAogICAgICAgIGlmIChzdHJ1Y3RfcmV0dXJuKQotSW5kZXg6IGdkYi03Ljcu MS9nZGIvaTM4Ni10ZGVwLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pMzg2LXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi9pMzg2LXRkZXAuYwkyMDE0 LTA1LTA5IDE5OjI0OjE4LjY5MjI1Mjc3MSArMDIwMAotKysrIGdkYi03LjcuMS9nZGIvaTM4Ni10 ZGVwLmMJMjAxNC0wNS0wOSAyMDowMjowOS42MjU3MDM3NjkgKzAyMDAKLUBAIC0yNDczLDcgKzI0 NzMsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9pMzg2LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2 LjAwMjAyMzY3MSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2kzODYtdGRlcC5j CTIwMTUtMDEtMDUgMjI6MTk6MDguMDkyMDc4NDY3ICswMTAwCitAQCAtMjY0Myw3ICsyNjQzLDcg QEAgaTM4Nl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgZ2RiX2J5dGUg YnVmWzRdOwogICAgaW50IGk7CiAgICBpbnQgd3JpdGVfcGFzczsKQEAgLTQ4OSw3ICs0ODksNyBA QCBJbmRleDogZ2RiLTcuNy4xL2dkYi9pMzg2LXRkZXAuYwogIAogICAgLyogRGV0ZXJtaW5lIHRo ZSB0b3RhbCBzcGFjZSByZXF1aXJlZCBmb3IgYXJndW1lbnRzIGFuZCBzdHJ1Y3QKICAgICAgIHJl dHVybiBhZGRyZXNzIGluIGEgZmlyc3QgcGFzcyAoYWxsb3dpbmcgZm9yIDE2LWJ5dGUtYWxpZ25l ZAotQEAgLTI0ODEsNyArMjQ4MSw3IEBAIGkzODZfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2QKK0BAIC0yNjUxLDcgKzI2NTEsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKmdkCiAgCiAgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9wYXNzIDwg Mjsgd3JpdGVfcGFzcysrKQogICAgICB7CkBAIC00OTgsNyArNDk4LDcgQEAgSW5kZXg6IGdkYi03 LjcuMS9nZGIvaTM4Ni10ZGVwLmMKICAKICAgICAgICBpZiAoc3RydWN0X3JldHVybikKICAJewot QEAgLTI0OTgsNyArMjQ5OCw3IEBAIGkzODZfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqZ2QKK0BAIC0yNjY4LDcgKzI2NjgsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKmdkCiAgCiAgICAgICAgZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspCiAgCXsK QEAgLTUwNyw3ICs1MDcsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9pMzg2LXRkZXAuYwogIAog IAkgIGlmICh3cml0ZV9wYXNzKQogIAkgICAgewotQEAgLTI3MDUsNyArMjcwNSw3IEBAIGkzODZf cmVnX3N0cnVjdF9yZXR1cm5fcCAoc3RydWN0IGdkYmFyY2gKK0BAIC0yODc1LDcgKzI4NzUsNyBA QCBpMzg2X3JlZ19zdHJ1Y3RfcmV0dXJuX3AgKHN0cnVjdCBnZGJhcmNoCiAgewogICAgc3RydWN0 IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CiAgICBlbnVtIHR5 cGVfY29kZSBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKQEAgLTUxNiw3ICs1MTYsNyBAQCBJbmRl eDogZ2RiLTcuNy4xL2dkYi9pMzg2LXRkZXAuYwogIAogICAgZ2RiX2Fzc2VydCAoY29kZSA9PSBU WVBFX0NPREVfU1RSVUNUCiAgICAgICAgICAgICAgICB8fCBjb2RlID09IFRZUEVfQ09ERV9VTklP TgotQEAgLTMyNDksNyArMzI0OSw3IEBAIHN0YXRpYyBpbnQKK0BAIC0zNjIxLDcgKzM2MjEsNyBA QCBzdGF0aWMgaW50CiAgaTM4Nl9jb252ZXJ0X3JlZ2lzdGVyX3AgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLAogIAkJCSBpbnQgcmVnbnVtLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CkBAIC01MjUs NyArNTI1LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIC8qIFZh bHVlcyBtYXkgYmUgc3ByZWFkIGFjcm9zcyBtdWx0aXBsZSByZWdpc3RlcnMuICBNb3N0IGRlYnVn Z2luZwogICAgICAgZm9ybWF0cyBhcmVuJ3QgZXhwcmVzc2l2ZSBlbm91Z2ggdG8gc3BlY2lmeSB0 aGUgbG9jYXRpb25zLCBzbwotQEAgLTMyODIsNyArMzI4Miw3IEBAIGkzODZfcmVnaXN0ZXJfdG9f dmFsdWUgKHN0cnVjdCBmcmFtZV9pbmYKK0BAIC0zNjU0LDcgKzM2NTQsNyBAQCBpMzg2X3JlZ2lz dGVyX3RvX3ZhbHVlIChzdHJ1Y3QgZnJhbWVfaW5mCiAgCQkJaW50ICpvcHRpbWl6ZWRwLCBpbnQg KnVuYXZhaWxhYmxlcCkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFt ZV9hcmNoIChmcmFtZSk7CkBAIC01MzQsNyArNTM0LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIv aTM4Ni10ZGVwLmMKICAKICAgIGlmIChpMzg2X2ZwX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0p KQogICAgICByZXR1cm4gaTM4N19yZWdpc3Rlcl90b192YWx1ZSAoZnJhbWUsIHJlZ251bSwgdHlw ZSwgdG8sCi1AQCAtMzMxOCw3ICszMzE4LDcgQEAgc3RhdGljIHZvaWQKK0BAIC0zNjkwLDcgKzM2 OTAsNyBAQCBzdGF0aWMgdm9pZAogIGkzODZfdmFsdWVfdG9fcmVnaXN0ZXIgKHN0cnVjdCBmcmFt ZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKmZyb20pCiAgewpAQCAtNTQzLDI4ICs1NDMsMTEgQEAgSW5kZXg6IGdkYi03Ljcu MS9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIGlmIChpMzg2X2ZwX3JlZ251bV9wIChnZXRfZnJhbWVf YXJjaCAoZnJhbWUpLCByZWdudW0pKQogICAgICB7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi9pYTY0 LXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2lxMjAwMC10ZGVwLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvaWE2NC10ZGVwLmMJMjAxNC0wNS0wOSAx OToyNDoxOC42OTMyNTI3NzEgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL2lhNjQtdGRlcC5jCTIw MTQtMDUtMDkgMjA6MDI6MDkuNjI2NzAzNzY5ICswMjAwCi1AQCAtMzg1MSw4ICszODUxLDEwIEBA IGlhNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKLSAgIGludCBhcmdubzsK LSAgIHN0cnVjdCB2YWx1ZSAqYXJnOwotICAgc3RydWN0IHR5cGUgKnR5cGU7Ci0tICBpbnQgbGVu LCBhcmdvZmZzZXQ7Ci0tICBpbnQgbnNsb3RzLCByc2VzbG90cywgbWVtc2xvdHMsIHNsb3RudW0s IG5mdW5jYXJnczsKLSsgIExPTkdFU1QgYXJnb2Zmc2V0OwotKyAgTE9OR0VTVCBsZW47Ci0rICBp bnQgcnNlc2xvdHMsIHNsb3RudW0sIG5mdW5jYXJnczsKLSsgIExPTkdFU1QgbnNsb3RzLCBtZW1z bG90czsKLSAgIGludCBmbG9hdHJlZzsKLSAgIFVMT05HRVNUIGJzcDsKLSAgIENPUkVfQUREUiBm dW5jZGVzY2FkZHIsIHBjLCBnbG9iYWxfcG9pbnRlcjsKLUluZGV4OiBnZGItNy43LjEvZ2RiL2lx MjAwMC10ZGVwLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvaXEyMDAwLXRk ZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY5MzI1Mjc3MSArMDIwMAotKysrIGdkYi03LjcuMS9n ZGIvaXEyMDAwLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYyNjcwMzc2OSArMDIwMAotQEAg LTY1NCw4ICs2NTQsOSBAQCBpcTIwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAq CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9pcTIwMDAtdGRlcC5jCTIwMTUtMDEt MDUgMjI6MTg6NTYuMDAzMDIzNjc1ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv aXEyMDAwLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5MjA3ODQ2NyArMDEwMAorQEAgLTY1 Myw4ICs2NTMsOSBAQCBpcTIwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCiAg ICBjb25zdCBiZmRfYnl0ZSAqdmFsOwogICAgYmZkX2J5dGUgYnVmWzRdOwogICAgc3RydWN0IHR5 cGUgKnR5cGU7CkBAIC01NzYsMTEgKzU1OSwxMSBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9pcTIw MDAtdGRlcC5jCiAgICAvKiBVc2VkIHRvIGNvcHkgc3RydWN0IGFyZ3VtZW50cyBpbnRvIHRoZSBz dGFjay4gICovCiAgICBDT1JFX0FERFIgc3RydWN0X3B0cjsKICAKLUluZGV4OiBnZGItNy43LjEv Z2RiL20zMnItdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTMyci10ZGVw LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxNC0w NS0wOSAxOToyNDoxOC42OTMyNTI3NzEgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL20zMnItdGRl cC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjI2NzAzNzY5ICswMjAwCi1AQCAtNjg5LDcgKzY4OSw3 IEBAIG0zMnJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL20zMnItdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDAz MDIzNjc1ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTMyci10ZGVwLmMJMjAx NS0wMS0wNSAyMjoxOTowOC4wOTMwNzg0NzIgKzAxMDAKK0BAIC02ODcsNyArNjg3LDcgQEAgbTMy cl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgQ09SRV9BRERSIHJlZ3Zh bDsKICAgIGdkYl9ieXRlICp2YWw7CiAgICBnZGJfYnl0ZSB2YWxidWZbTUFYX1JFR0lTVEVSX1NJ WkVdOwpAQCAtNTg5LDExICs1NzIsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbTMyci10ZGVw LmMKICAKICAgIC8qIEZpcnN0IGZvcmNlIHNwIHRvIGEgNC1ieXRlIGFsaWdubWVudC4gICovCiAg ICBzcCA9IHNwICYgfjM7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi9tNjhrLXRkZXAuYworSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL202OGstdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNy4xLm9yaWcvZ2RiL202OGstdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNjk0MjUyNzcx ICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi9tNjhrLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5 LjYyNzcwMzc2OSArMDIwMAotQEAgLTM4NCw3ICszODQsNyBAQCBtNjhrX3JlZ19zdHJ1Y3RfcmV0 dXJuX3AgKHN0cnVjdCBnZGJhcmNoCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9t NjhrLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAwMzAyMzY3NSArMDEwMAorKysrIGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL202OGstdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDkzMDc4 NDcyICswMTAwCitAQCAtMzgyLDcgKzM4Miw3IEBAIG02OGtfcmVnX3N0cnVjdF9yZXR1cm5fcCAo c3RydWN0IGdkYmFyY2gKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJj aF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gdHlwZV9jb2RlIGNvZGUgPSBUWVBFX0NPREUgKHR5 cGUpOwpAQCAtNjAyLDcgKzU4NSw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL202OGstdGRlcC5j CiAgCiAgICBnZGJfYXNzZXJ0IChjb2RlID09IFRZUEVfQ09ERV9TVFJVQ1QgfHwgY29kZSA9PSBU WVBFX0NPREVfVU5JT04KICAJICAgICAgfHwgY29kZSA9PSBUWVBFX0NPREVfQ09NUExFWCk7Ci1A QCAtNTE2LDkgKzUxNiw5IEBAIG02OGtfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAq Z2QKK0BAIC01MTQsOSArNTE0LDkgQEAgbTY4a19wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJh cmNoICpnZAogICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkKICAgICAgewogICAg ICAgIHN0cnVjdCB0eXBlICp2YWx1ZV90eXBlID0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3Nb aV0pOwpAQCAtNjE1LDExICs1OTgsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbTY4ay10ZGVw LmMKICAKICAgICAgICAvKiBOb24tc2NhbGFycyBiaWdnZXIgdGhhbiA0IGJ5dGVzIGFyZSBsZWZ0 IGFsaWduZWQsIG90aGVycyBhcmUKICAJIHJpZ2h0IGFsaWduZWQuICAqLwotSW5kZXg6IGdkYi03 LjcuMS9nZGIvbTg4ay10ZGVwLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tODhr LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi9tODhrLXRkZXAuYwky MDE0LTA1LTA5IDE5OjI0OjE4LjY5NDI1Mjc3MSArMDIwMAotKysrIGdkYi03LjcuMS9nZGIvbTg4 ay10ZGVwLmMJMjAxNC0wNS0wOSAyMDowMjowOS42Mjc3MDM3NjkgKzAyMDAKLUBAIC0yNjAsMTMg KzI2MCwxMyBAQCBtODhrX3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyCistLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9tODhrLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4 OjU2LjAwNDAyMzY4MCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL204OGstdGRl cC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDkzMDc4NDcyICswMTAwCitAQCAtMjU3LDEzICsyNTcs MTMgQEAgbTg4a19zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgogIHsKICAgIHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKICAg IGludCBudW1fcmVnaXN0ZXJfd29yZHMgPSAwOwpAQCAtNjM1LDcgKzYxOCw3IEBAIEluZGV4OiBn ZGItNy43LjEvZ2RiL204OGstdGRlcC5jCiAgCiAgICAgICAgaWYgKG04OGtfaW50ZWdyYWxfb3Jf cG9pbnRlcl9wICh0eXBlKSAmJiBsZW4gPCA0KQogIAl7Ci1AQCAtMzA4LDggKzMwOCw4IEBAIG04 OGtfc3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKK0BAIC0zMDUsOCArMzA1LDgg QEAgbTg4a19zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgogICAgICB7CiAgICAg ICAgY29uc3QgYmZkX2J5dGUgKnZhbGJ1ZiA9IHZhbHVlX2NvbnRlbnRzIChhcmdzW2ldKTsKICAg ICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbaV0pOwpAQCAtNjQ2LDEx ICs2MjksMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbTg4ay10ZGVwLmMKICAKICAgICAgICBp ZiAobTg4a19pbl9yZWdpc3Rlcl9wICh0eXBlKSkKICAJewotSW5kZXg6IGdkYi03LjcuMS9nZGIv bWVwLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21lcC10ZGVwLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvbWVwLXRkZXAuYwkyMDE0LTA1LTA5IDE5 OjI0OjE4LjY5NTI1Mjc3MiArMDIwMAotKysrIGdkYi03LjcuMS9nZGIvbWVwLXRkZXAuYwkyMDE0 LTA1LTA5IDIwOjAyOjA5LjYyNzcwMzc2OSArMDIwMAotQEAgLTIyNzIsNyArMjI3Miw3IEBAIHB1 c2hfbGFyZ2VfYXJndW1lbnRzIChDT1JFX0FERFIgc3AsIGludAorLS0tIGdkYi03LjguNTAuMjAx NDEyMjgub3JpZy9nZGIvbWVwLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAwNTAyMzY4NCAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21lcC10ZGVwLmMJMjAxNS0wMS0wNSAy MjoxOTowOC4wOTMwNzg0NzIgKzAxMDAKK0BAIC0yMjY5LDcgKzIyNjksNyBAQCBwdXNoX2xhcmdl X2FyZ3VtZW50cyAoQ09SRV9BRERSIHNwLCBpbnQKICAKICAgIGZvciAoaSA9IDA7IGkgPCBhcmdj OyBpKyspCiAgICAgIHsKQEAgLTY1OSwxMSArNjQyLDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2Ri L21lcC10ZGVwLmMKICAKICAgICAgICBpZiAoYXJnX2xlbiA+IE1FUF9HUFJfU0laRSkKICAgICAg ICAgIHsKLUluZGV4OiBnZGItNy43LjEvZ2RiL21pcHMtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvbWlwcy10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3Jp Zy9nZGIvbWlwcy10ZGVwLmMJMjAxNC0wNS0wOSAxOToyNDoxOC42OTgyNTI3NzIgKzAyMDAKLSsr KyBnZGItNy43LjEvZ2RiL21pcHMtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjI4NzAzNzY5 ICswMjAwCi1AQCAtNDAyLDcgKzQwMiw3IEBAIHN0YXRpYyB2b2lkCistLS0gZ2RiLTcuOC41MC4y MDE0MTIyOC5vcmlnL2dkYi9taXBzLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAwOTAyMzcw MiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21pcHMtdGRlcC5jCTIwMTUtMDEt MDUgMjI6MTk6MDguMDk1MDc4NDgxICswMTAwCitAQCAtNDU1LDcgKzQ1NSw3IEBAIHN0YXRpYyB2 b2lkCiAgbWlwc194ZmVyX3JlZ2lzdGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0 IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCSAgICBpbnQgcmVnX251bSwgaW50IGxlbmd0aCwKICAJ CSAgICBlbnVtIGJmZF9lbmRpYW4gZW5kaWFuLCBnZGJfYnl0ZSAqaW4sCkBAIC02NzIsNyArNjU1 LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbWlwcy10ZGVwLmMKICB7CiAgICBpbnQgcmVnX29m ZnNldCA9IDA7CiAgCi1AQCAtNDI1LDggKzQyNSw4IEBAIG1pcHNfeGZlcl9yZWdpc3RlciAoc3Ry dWN0IGdkYmFyY2ggKmdkYmEKK0BAIC00NzgsOCArNDc4LDggQEAgbWlwc194ZmVyX3JlZ2lzdGVy IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYQogICAgICB9CiAgICBpZiAobWlwc19kZWJ1ZykKICAgICAg ZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLApAQCAtNjgzLDcgKzY2Niw3IEBAIEluZGV4 OiBnZGItNy43LjEvZ2RiL21pcHMtdGRlcC5jCiAgICBpZiAobWlwc19kZWJ1ZyAmJiBvdXQgIT0g TlVMTCkKICAgICAgewogICAgICAgIGludCBpOwotQEAgLTQzNDUsMTMgKzQzNDUsMTMgQEAgbWlw c19lYWJpX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyYworQEAgLTQ1NTEsMTMgKzQ1NTEs MTMgQEAgbWlwc19lYWJpX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyYwogICAgICAgIGdk Yl9ieXRlIHZhbGJ1ZltNQVhfUkVHSVNURVJfU0laRV07CiAgICAgICAgc3RydWN0IHZhbHVlICph cmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tf dHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC02OTgsOSArNjgxLDkgQEAgSW5kZXg6IGdk Yi03LjcuMS9nZGIvbWlwcy10ZGVwLmMKICsJCQkgICAgIm1pcHNfZWFiaV9wdXNoX2R1bW15X2Nh bGw6ICVkIGxlbj0lcyB0eXBlPSVkIiwKICsJCQkgICAgYXJnbnVtICsgMSwgcGxvbmdlc3QgKGxl biksIChpbnQpIHR5cGVjb2RlKTsKICAKLSAgICAgICAvKiBGdW5jdGlvbiBwb2ludGVyIGFyZ3Vt ZW50cyB0byBtaXBzMTYgY29kZSBuZWVkIHRvIGJlIG1hZGUgaW50bwotICAgICAgICAgIG1pcHMx NiBwb2ludGVycy4gICovCi1AQCAtNDYzNiw3ICs0NjM2LDcgQEAgbWlwc19lYWJpX3JldHVybl92 YWx1ZSAoc3RydWN0IGdkYmFyY2ggKgorICAgICAgIC8qIFRoZSBFQUJJIHBhc3NlcyBzdHJ1Y3R1 cmVzIHRoYXQgZG8gbm90IGZpdCBpbiBhIHJlZ2lzdGVyIGJ5CisgICAgICAgICAgcmVmZXJlbmNl LiAgKi8KK0BAIC00ODI2LDcgKzQ4MjYsNyBAQCBtaXBzX2VhYmlfcmV0dXJuX3ZhbHVlIChzdHJ1 Y3QgZ2RiYXJjaCAqCiAgCiAgc3RhdGljIGludAogIG1pcHNfbjMybjY0X2ZwX2FyZ19jaHVua19w IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUgKmFyZ190eXBlLApAQCAtNzA5 LDcgKzY5Miw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL21pcHMtdGRlcC5jCiAgewogICAgaW50 IGk7CiAgCi1AQCAtNDY1MSw3ICs0NjUxLDcgQEAgbWlwc19uMzJuNjRfZnBfYXJnX2NodW5rX3Ag KHN0cnVjdCBnZGJhcgorQEAgLTQ4NDEsNyArNDg0MSw3IEBAIG1pcHNfbjMybjY0X2ZwX2FyZ19j aHVua19wIChzdHJ1Y3QgZ2RiYXIKICAKICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMg KGFyZ190eXBlKTsgaSsrKQogICAgICB7CkBAIC03MTgsNyArNzAxLDcgQEAgSW5kZXg6IGdkYi03 LjcuMS9nZGIvbWlwcy10ZGVwLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAK ICAgICAgICAvKiBXZSdyZSBvbmx5IGxvb2tpbmcgYXQgbm9ybWFsIGZpZWxkcy4gICovCi1AQCAt NDY5Myw3ICs0NjkzLDcgQEAgbWlwc19uMzJuNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YQorQEAgLTQ4ODMsNyArNDg4Myw3IEBAIG1pcHNfbjMybjY0X3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmEKICAgIGludCBhcmdyZWc7CiAgICBpbnQgZmxvYXRfYXJncmVnOwogICAgaW50IGFy Z251bTsKQEAgLTcyNyw3ICs3MTAsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9taXBzLXRkZXAu YwogICAgaW50IHN0YWNrX29mZnNldCA9IDA7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRl ciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBDT1JFX0FERFIgZnVuY19hZGRy ID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7Ci1AQCAtNTA0NCwxMSArNTA0 NCwxMSBAQCBtaXBzX24zMm42NF9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoCitAQCAtNTIz NCwxMSArNTIzNCwxMSBAQCBtaXBzX24zMm42NF9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNo CiAgCQkJCTogTUlQU19WMF9SRUdOVU0pOwogIAkgICBmaWVsZCA8IFRZUEVfTkZJRUxEUyAodHlw ZSk7IGZpZWxkKyssIHJlZ251bSArPSAyKQogIAl7CkBAIC03NDMsNyArNzI2LDcgQEAgSW5kZXg6 IGdkYi03LjcuMS9nZGIvbWlwcy10ZGVwLmMKICAJICBpZiAoVFlQRV9MRU5HVEggKFRZUEVfRklF TERfVFlQRSAodHlwZSwgZmllbGQpKSA9PSAxNikKICAJICAgIHsKICAJICAgICAgLyogQSAxNi1i eXRlIGxvbmcgZG91YmxlIGZpZWxkIGdvZXMgaW4gdHdvIGNvbnNlY3V0aXZlCi1AQCAtNTA5MCw4 ICs1MDkwLDggQEAgbWlwc19uMzJuNjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaAorQEAg LTUyODAsOCArNTI4MCw4IEBAIG1pcHNfbjMybjY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFy Y2gKICAJICBpZiAob2Zmc2V0ICsgeGZlciA+IFRZUEVfTEVOR1RIICh0eXBlKSkKICAJICAgIHhm ZXIgPSBUWVBFX0xFTkdUSCAodHlwZSkgLSBvZmZzZXQ7CiAgCSAgaWYgKG1pcHNfZGVidWcpCkBA IC03NTQsNyArNzM3LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbWlwcy10ZGVwLmMKICAJICBt aXBzX3hmZXJfcmVnaXN0ZXIgKGdkYmFyY2gsIHJlZ2NhY2hlLAogIAkJCSAgICAgIGdkYmFyY2hf bnVtX3JlZ3MgKGdkYmFyY2gpICsgcmVnbnVtLAogIAkJCSAgICAgIHhmZXIsIEJGRF9FTkRJQU5f VU5LTk9XTiwgcmVhZGJ1Ziwgd3JpdGVidWYsCi1AQCAtNTE0OSw3ICs1MTQ5LDcgQEAgbWlwc19v MzJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaAorQEAgLTUzMzksNyArNTMzOSw3IEBA IG1pcHNfbzMyX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKICAgIGludCBhcmdyZWc7 CiAgICBpbnQgZmxvYXRfYXJncmVnOwogICAgaW50IGFyZ251bTsKQEAgLTc2Myw3ICs3NDYsNyBA QCBJbmRleDogZ2RiLTcuNy4xL2dkYi9taXBzLXRkZXAuYwogICAgaW50IHN0YWNrX29mZnNldCA9 IDA7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAo Z2RiYXJjaCk7CiAgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChm dW5jdGlvbiwgTlVMTCk7Ci1AQCAtNTIxMywxMyArNTIxMywxMyBAQCBtaXBzX28zMl9wdXNoX2R1 bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCitAQCAtNTQwMywxMyArNTQwMywxMyBAQCBtaXBzX28z Ml9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCiAgICAgICAgY29uc3QgZ2RiX2J5dGUg KnZhbDsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAgICBz dHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsK QEAgLTc4MCw3ICs3NjMsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9taXBzLXRkZXAuYwogIAog ICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwogIAotQEAgLTU2NzcsOCArNTY3Nyw4 IEBAIG1pcHNfbzY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKK0BAIC01ODY3LDgg KzU4NjcsOCBAQCBtaXBzX282NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCiAgICBp bnQgYXJncmVnOwogICAgaW50IGZsb2F0X2FyZ3JlZzsKICAgIGludCBhcmdudW07CkBAIC03OTEs OCArNzc0LDggQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbWlwcy10ZGVwLmMKICAgIGVudW0gYmZk X2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENP UkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsK ICAKLUBAIC01NzM5LDEzICs1NzM5LDEzIEBAIG1pcHNfbzY0X3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2gKLSAgICAgICBnZGJfYnl0ZSB2YWxidWZbTUFYX1JFR0lTVEVSX1NJWkVdOwor QEAgLTU5MjgsMTMgKzU5MjgsMTMgQEAgbWlwc19vNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiYXJjaAorICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICAgICAgc3RydWN0IHZhbHVl ICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hl Y2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CiAtICAgICAgaW50IGxlbiA9IFRZUEVfTEVO R1RIIChhcmdfdHlwZSk7CkBAIC04MDgsMTEgKzc5MSwxMSBAQCBJbmRleDogZ2RiLTcuNy4xL2dk Yi9taXBzLXRkZXAuYwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwogIAot SW5kZXg6IGdkYi03LjcuMS9nZGIvbW4xMDMwMC10ZGVwLmMKK0luZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9tbjEwMzAwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmln L2dkYi9tbjEwMzAwLXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY5ODI1Mjc3MiArMDIwMAot KysrIGdkYi03LjcuMS9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNC0wNS0wOSAyMDowMjowOS42Mjk3 MDM3NzAgKzAyMDAKLUBAIC0xMjI3LDcgKzEyMjcsNyBAQCBtbjEwMzAwX3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmFyY2gKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL21uMTAz MDAtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDEwMDIzNzA3ICswMTAwCisrKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTYw Nzg0ODUgKzAxMDAKK0BAIC0xMjI1LDcgKzEyMjUsNyBAQCBtbjEwMzAwX3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmFyY2gKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJj aF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGNvbnN0IGludCBwdXNoX3NpemUgPSByZWdpc3Rl cl9zaXplIChnZGJhcmNoLCBFX1BDX1JFR05VTSk7CiAgICBpbnQgcmVnc191c2VkOwpAQCAtODIx LDExICs4MDQsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbW4xMDMwMC10ZGVwLmMKICAgIGlu dCBzdGFja19vZmZzZXQgPSAwOwogICAgaW50IGFyZ251bTsKICAgIGNvbnN0IGdkYl9ieXRlICp2 YWw7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi9tdC10ZGVwLmMKK0luZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9tdC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIv bXQtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNjk5MjUyNzcyICswMjAwCi0rKysgZ2RiLTcu Ny4xL2dkYi9tdC10ZGVwLmMJMjAxNC0wNS0wOSAyMDowMjowOS42Mjk3MDM3NzAgKzAyMDAKLUBA IC03ODMsOSArNzgzLDkgQEAgbXRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbXQtdGRlcC5jCTIwMTUtMDEtMDUg MjI6MTg6NTYuMDEwMDIzNzA3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbXQt dGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDk2MDc4NDg1ICswMTAwCitAQCAtNzgxLDkgKzc4 MSw5IEBAIG10X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmEKICAgIGdkYl9i eXRlIGJ1ZltNVF9NQVhfU1RSVUNUX1NJWkVdOwogICAgaW50IGFyZ3JlZyA9IE1UXzFTVF9BUkdS RUc7CiAgICBpbnQgc3BsaXRfcGFyYW1fbGVuID0gMDsKQEAgLTgzNywxMSArODIwLDExIEBAIElu ZGV4OiBnZGItNy43LjEvZ2RiL210LXRkZXAuYwogICAgaW50IGksIGo7CiAgCiAgICAvKiBGaXJz dCBoYW5kbGUgaG93ZXZlciBtYW55IGFyZ3Mgd2UgY2FuIGZpdCBpbnRvIE1UXzFTVF9BUkdSRUcg dGhydQotSW5kZXg6IGdkYi03LjcuMS9nZGIvcHBjLXN5c3YtdGRlcC5jCitJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvcHBjLXN5c3YtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny4xLm9yaWcvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY5OTI1Mjc3 MiArMDIwMAotKysrIGdkYi03LjcuMS9nZGIvcHBjLXN5c3YtdGRlcC5jCTIwMTQtMDUtMDkgMjA6 MTA6MTMuOTk0ODA3NzA5ICswMjAwCi1AQCAtNjgsNyArNjgsNyBAQCBwcGNfc3lzdl9hYmlfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9wcGMtc3lzdi10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTEwMjM3MTEgKzAxMDAKKysr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNS0wMS0wNSAyMjox OTowOC4wOTYwNzg0ODUgKzAxMDAKK0BAIC02Niw3ICs2Niw3IEBAIHBwY19zeXN2X2FiaV9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGIKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0g Z2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGludCBvcGVuY2xfYWJpID0gcHBjX3N5 c3ZfdXNlX29wZW5jbF9hYmkgKHZhbHVlX3R5cGUgKGZ1bmN0aW9uKSk7CiAgICBVTE9OR0VTVCBz YXZlZF9zcDsKQEAgLTg1MCw3ICs4MzMsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9wcGMtc3lz di10ZGVwLmMKICAgIGludCB3cml0ZV9wYXNzOwogIAogICAgZ2RiX2Fzc2VydCAodGRlcC0+d29y ZHNpemUgPT0gNCk7Ci1AQCAtOTksOSArOTksOSBAQCBwcGNfc3lzdl9hYmlfcHVzaF9kdW1teV9j YWxsIChzdHJ1Y3QgZ2RiCitAQCAtOTcsOSArOTcsOSBAQCBwcGNfc3lzdl9hYmlfcHVzaF9kdW1t eV9jYWxsIChzdHJ1Y3QgZ2RiCiAgICAgICAgLyogTmV4dCBhdmFpbGFibGUgdmVjdG9yIHJlZ2lz dGVyIGZvciB2ZWN0b3IgYXJndW1lbnRzLiAgKi8KICAgICAgICBpbnQgdnJlZyA9IDI7CiAgICAg ICAgLyogQXJndW1lbnRzIHN0YXJ0IGFib3ZlIHRoZSAiTFIgc2F2ZSB3b3JkIiBhbmQgIkJhY2sg Y2hhaW4iLiAgKi8KQEAgLTg2Miw3ICs4NDUsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9wcGMt c3lzdi10ZGVwLmMKICAKICAgICAgICAvKiBJZiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuaW5nIGEg YHN0cnVjdCcsIHRoZW4gdGhlIGZpcnN0IHdvcmQKICAgICAgICAgICAod2hpY2ggd2lsbCBiZSBw YXNzZWQgaW4gcjMpIGlzIHVzZWQgZm9yIHN0cnVjdCByZXR1cm4KLUBAIC0xMjAsNyArMTIwLDcg QEAgcHBjX3N5c3ZfYWJpX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYgorQEAgLTExOCw3ICsx MTgsNyBAQCBwcGNfc3lzdl9hYmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiCiAgCXsKICAJ ICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbm9dOwogIAkgIHN0cnVjdCB0eXBlICp0eXBl ID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC04NzEsNyArODU0LDcgQEAg SW5kZXg6IGdkYi03LjcuMS9nZGIvcHBjLXN5c3YtdGRlcC5jCiAgCSAgY29uc3QgYmZkX2J5dGUg KnZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwogIAogIAkgIGlmIChUWVBFX0NPREUgKHR5cGUp ID09IFRZUEVfQ09ERV9GTFQgJiYgbGVuIDw9IDgKLUBAIC0xMjg1LDExICsxMjg1LDExIEBAIHN0 cnVjdCBwcGM2NF9zeXN2X2FyZ3BvcworQEAgLTEyODMsMTEgKzEyODMsMTEgQEAgc3RydWN0IHBw YzY0X3N5c3ZfYXJncG9zCiAgCiAgc3RhdGljIHZvaWQKICBwcGM2NF9zeXN2X2FiaV9wdXNoX3Zh bCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCkBAIC04ODUsMTEgKzg2OCwxMSBAQCBJbmRleDog Z2RiLTcuNy4xL2dkYi9wcGMtc3lzdi10ZGVwLmMKICAKICAgIC8qIEVuZm9yY2UgYWxpZ25tZW50 IG9mIHN0YWNrIGxvY2F0aW9uLCBpZiByZXF1ZXN0ZWQuICAqLwogICAgaWYgKGFsaWduID4gdGRl cC0+d29yZHNpemUpCi1JbmRleDogZ2RiLTcuNy4xL2dkYi9ybDc4LXRkZXAuYworSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3JsNzgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny4xLm9yaWcvZ2RiL3JsNzgtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNzAwMjUyNzcyICsw MjAwCi0rKysgZ2RiLTcuNy4xL2dkYi9ybDc4LXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYz MDcwMzc3MCArMDIwMAotQEAgLTEwNTIsOCArMTA1Miw4IEBAIHJsNzhfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Js NzgtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDExMDIzNzExICswMTAwCisrKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvcmw3OC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTYwNzg0 ODUgKzAxMDAKK0BAIC0xMjUxLDggKzEyNTEsOCBAQCBybDc4X3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKmdkCiAgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQogICAg ICB7CiAgICAgICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlw ZSAoYXJnc1tpXSk7CkBAIC05MDAsMTEgKzg4MywxMSBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9y bDc4LXRkZXAuYwogIAogICAgICAgIHNwIC09IGNvbnRhaW5lcl9sZW47CiAgICAgICAgd3JpdGVf bWVtb3J5IChybDc4X21ha2VfZGF0YV9hZGRyZXNzIChzcCksCi1JbmRleDogZ2RiLTcuNy4xL2dk Yi9yczYwMDAtYWl4LXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JzNjAw MC1haXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2RiL3JzNjAwMC1h aXgtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNzAwMjUyNzcyICswMjAwCi0rKysgZ2RiLTcu Ny4xL2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYzMDcwMzc3MCAr MDIwMAotQEAgLTE5Niw5ICsxOTYsOSBAQCByczYwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiYXJjaCAqCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9yczYwMDAtYWl4LXRk ZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxMjAyMzcxNiArMDEwMAorKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDk3MDc4 NDkwICswMTAwCitAQCAtMTg2LDkgKzE4Niw5IEBAIHJzNjAwMF9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhcmNoICoKICAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3Rk ZXAgKGdkYmFyY2gpOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5 dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGlpOwpAQCAtOTE2LDcgKzg5OSw3IEBAIEluZGV4 OiBnZGItNy43LjEvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCiAgICBnZGJfYnl0ZSB0bXBfYnVmZmVy WzUwXTsKICAgIGludCBmX2FyZ25vID0gMDsJCS8qIGN1cnJlbnQgZmxvYXRpbmcgcG9pbnQgYXJn bm8gKi8KICAgIGludCB3b3Jkc2l6ZSA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCktPndvcmRzaXpl OwotQEAgLTMzMSw3ICszMzEsNyBAQCByYW5fb3V0X29mX3JlZ2lzdGVyc19mb3JfYXJndW1lbnRz OgorQEAgLTMyMSw3ICszMjEsNyBAQCByYW5fb3V0X29mX3JlZ2lzdGVyc19mb3JfYXJndW1lbnRz OgogIAogICAgaWYgKChhcmdubyA8IG5hcmdzKSB8fCBhcmdieXRlcykKICAgICAgewpAQCAtOTI1 LDExICs5MDgsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKICAK ICAgICAgICBpZiAoYXJnYnl0ZXMpCiAgCXsKLUluZGV4OiBnZGItNy43LjEvZ2RiL3MzOTAtbGlu dXgtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvczM5MC1saW51eC10ZGVw LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvczM5MC1saW51eC10ZGVwLmMJ MjAxNC0wNS0wOSAxOToyNDoxOC43MDEyNTI3NzIgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL3Mz OTAtbGludXgtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjMxNzAzNzcwICswMjAwCi1AQCAt MjUyNiw3ICsyNTI2LDcgQEAgaXNfZmxvYXRfbGlrZSAoc3RydWN0IHR5cGUgKnR5cGUpCistLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE1LTAxLTA1 IDIyOjE4OjU2LjAxMzAyMzcyMCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Mz OTAtbGludXgtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDk3MDc4NDkwICswMTAwCitAQCAt MjMzNCw3ICsyMzM0LDcgQEAgaXNfZmxvYXRfbGlrZSAoc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAg CiAgc3RhdGljIGludApAQCAtOTM4LDcgKzkyMSw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3Mz OTAtbGludXgtdGRlcC5jCiAgewogICAgcmV0dXJuICgobiAmIChuIC0gMSkpID09IDApOwogIH0K LUBAIC0yNzEyLDcgKzI3MTIsNyBAQCBzMzkwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFy Y2ggKmdkCitAQCAtMjUyMCw3ICsyNTIwLDcgQEAgczM5MF9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICpnZAogICAgICAgIHsKICAJc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwog IAlzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpA QCAtOTQ3LDExICs5MzAsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvczM5MC1saW51eC10ZGVw LmMKICAKICAJaWYgKHMzOTBfZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlICh0eXBlKSkK ICAJICB7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi9zY29yZS10ZGVwLmMKK0luZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9zY29yZS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEu b3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNzAxMjUyNzcyICswMjAw Ci0rKysgZ2RiLTcuNy4xL2dkYi9zY29yZS10ZGVwLmMJMjAxNC0wNS0wOSAyMDowMjowOS42MzE3 MDM3NzAgKzAyMDAKLUBAIC01MTUsNyArNTE1LDcgQEAgc2NvcmVfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqZworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvc2NvcmUt dGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDEzMDIzNzIwICswMTAwCisrKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvc2NvcmUtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDk3MDc4NDkw ICswMTAwCitAQCAtNTE0LDcgKzUxNCw3IEBAIHNjb3JlX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKmcKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRl X29yZGVyIChnZGJhcmNoKTsKICAgIGludCBhcmdudW07CiAgICBpbnQgYXJncmVnOwpAQCAtOTYw LDExICs5NDMsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvc2NvcmUtdGRlcC5jCiAgICBDT1JF X0FERFIgc3RhY2tfb2Zmc2V0ID0gMDsKICAgIENPUkVfQUREUiBhZGRyID0gMDsKICAKLUluZGV4 OiBnZGItNy43LjEvZ2RiL3NoLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3NoLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi9zaC10ZGVwLmMJ MjAxNC0wNS0wOSAxOToyNDoxOC43MDIyNTI3NzIgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL3No LXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYzMTcwMzc3MCArMDIwMAotQEAgLTgwNyw3ICs4 MDcsNyBAQCBzaF9za2lwX3Byb2xvZ3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjCistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9zaC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4w MTQwMjM3MjUgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zaC10ZGVwLmMJMjAx NS0wMS0wNSAyMjoxOTowOC4wOTgwNzg0OTQgKzAxMDAKK0BAIC04MDUsNyArODA1LDcgQEAgc2hf c2tpcF9wcm9sb2d1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyYwogIHN0YXRpYyBpbnQKICBzaF91 c2Vfc3RydWN0X2NvbnZlbnRpb24gKGludCByZW5lc2FzX2FiaSwgc3RydWN0IHR5cGUgKnR5cGUp CiAgewpAQCAtOTczLDcgKzk1Niw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3NoLXRkZXAuYwog ICAgaW50IG5lbGVtID0gVFlQRV9ORklFTERTICh0eXBlKTsKICAKICAgIC8qIFRoZSBSZW5lc2Fz IEFCSSByZXR1cm5zIGFnZ3JlZ2F0ZSB0eXBlcyBhbHdheXMgb24gc3RhY2suICAqLwotQEAgLTkw OSw3ICs5MDksNyBAQCBzaF9mcmFtZV9hbGlnbiAoc3RydWN0IGdkYmFyY2ggKmlnbm9yZSwKK0BA IC05MDcsNyArOTA3LDcgQEAgc2hfZnJhbWVfYWxpZ24gKHN0cnVjdCBnZGJhcmNoICppZ25vcmUs CiAgCiAgLyogSGVscGVyIGZ1bmN0aW9uIHRvIGp1c3RpZnkgdmFsdWUgaW4gcmVnaXN0ZXIgYWNj b3JkaW5nIHRvIGVuZGlhbmVzcy4gICovCiAgc3RhdGljIGNvbnN0IGdkYl9ieXRlICoKQEAgLTk4 Miw3ICs5NjUsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9zaC10ZGVwLmMKICB7CiAgICBzdGF0 aWMgZ2RiX2J5dGUgdmFsYnVmWzRdOwogIAotQEAgLTEwNjksNyArMTA2OSw4IEBAIHNoX3B1c2hf ZHVtbXlfY2FsbF9mcHUgKHN0cnVjdCBnZGJhcmNoICoKK0BAIC0xMDY3LDcgKzEwNjcsOCBAQCBz aF9wdXNoX2R1bW15X2NhbGxfZnB1IChzdHJ1Y3QgZ2RiYXJjaCAqCiAgICBzdHJ1Y3QgdHlwZSAq dHlwZTsKICAgIENPUkVfQUREUiByZWd2YWw7CiAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwpAQCAt OTkyLDcgKzk3NSw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3NoLXRkZXAuYwogICAgaW50IHBh c3Nfb25fc3RhY2sgPSAwOwogICAgaW50IHRyZWF0X2FzX2ZsdDsKICAgIGludCBsYXN0X3JlZ19h cmcgPSBJTlRfTUFYOwotQEAgLTEyMTAsNyArMTIxMSw4IEBAIHNoX3B1c2hfZHVtbXlfY2FsbF9u b2ZwdSAoc3RydWN0IGdkYmFyY2gKK0BAIC0xMjA4LDcgKzEyMDksOCBAQCBzaF9wdXNoX2R1bW15 X2NhbGxfbm9mcHUgKHN0cnVjdCBnZGJhcmNoCiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAgIENP UkVfQUREUiByZWd2YWw7CiAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwpAQCAtMTAwMiwxMSArOTg1 LDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3NoLXRkZXAuYwogICAgaW50IHBhc3Nfb25fc3Rh Y2sgPSAwOwogICAgaW50IGxhc3RfcmVnX2FyZyA9IElOVF9NQVg7CiAgCi1JbmRleDogZ2RiLTcu Ny4xL2dkYi9zaDY0LXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3NoNjQt dGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2RiL3NoNjQtdGRlcC5jCTIw MTQtMDUtMDkgMTk6MjQ6MTguNzAyMjUyNzcyICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi9zaDY0 LXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYzMjcwMzc3MSArMDIwMAotQEAgLTEwNTgsNyAr MTA1OCw3IEBAIHNoNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3NoNjQtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6 NTYuMDE1MDIzNzI5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc2g2NC10ZGVw LmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTgwNzg0OTQgKzAxMDAKK0BAIC0xMDU2LDcgKzEwNTYs NyBAQCBzaDY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgCQkgICAgICBD T1JFX0FERFIgc3RydWN0X2FkZHIpCiAgewogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIg PSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwpAQCAtMTAxNSw3ICs5OTgsNyBAQCBJbmRl eDogZ2RiLTcuNy4xL2dkYi9zaDY0LXRkZXAuYwogICAgaW50IGludF9hcmdyZWc7CiAgICBpbnQg ZmxvYXRfYXJncmVnOwogICAgaW50IGRvdWJsZV9hcmdyZWc7Ci1AQCAtMTA2OSw3ICsxMDY5LDcg QEAgc2g2NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAorQEAgLTEwNjcsNyAr MTA2Nyw3IEBAIHNoNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgIENP UkVfQUREUiByZWd2YWw7CiAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwogICAgZ2RiX2J5dGUgdmFs YnVmWzhdOwpAQCAtMTAyNCwxMSArMTAwNywxMSBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9zaDY0 LXRkZXAuYwogICAgaW50IGFyZ3JlZ19zaXplOwogICAgaW50IGZwX2FyZ3NbMTJdOwogIAotSW5k ZXg6IGdkYi03LjcuMS9nZGIvc3BhcmMtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvc3BhcmMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2RiL3Nw YXJjLXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjcwMzI1Mjc3MiArMDIwMAotKysrIGdkYi03 LjcuMS9nZGIvc3BhcmMtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjMyNzAzNzcxICswMjAw Ci1AQCAtNTAyLDcgKzUwMiw3IEBAIHNwYXJjMzJfc3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVn Y2FjaGUKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3NwYXJjLXRkZXAuYwkyMDE1 LTAxLTA1IDIyOjE4OjU2LjAxNjAyMzczNCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3NwYXJjLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5ODA3ODQ5NCArMDEwMAorQEAg LTUyNSw3ICs1MjUsNyBAQCBzcGFyYzMyX3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hl CiAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCB0 eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0xMDM3LDExICsxMDIwLDExIEBA IEluZGV4OiBnZGItNy43LjEvZ2RiL3NwYXJjLXRkZXAuYwogIAogICAgICAgIGlmIChzcGFyY19z dHJ1Y3R1cmVfb3JfdW5pb25fcCAodHlwZSkKICAJICB8fCAoc3BhcmNfZmxvYXRpbmdfcCAodHlw ZSkgJiYgbGVuID09IDE2KQotSW5kZXg6IGdkYi03LjcuMS9nZGIvc3BhcmM2NC10ZGVwLmMKK0lu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcGFyYzY0LXRkZXAuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjcuMS5vcmlnL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4 LjcwNDI1Mjc3MyArMDIwMAotKysrIGdkYi03LjcuMS9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNC0w NS0wOSAyMDowMjowOS42MzI3MDM3NzEgKzAyMDAKLUBAIC02MzksNyArNjM5LDggQEAgc3BhcmM2 NF8xNl9ieXRlX2FsaWduX3AgKHN0cnVjdCB0eXBlICp0eQorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTYwMjM3MzQg KzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE1LTAx LTA1IDIyOjE5OjA4LjA5OTA3ODQ5OSArMDEwMAorQEAgLTYzNiw3ICs2MzYsOCBAQCBzcGFyYzY0 XzE2X2J5dGVfYWxpZ25fcCAoc3RydWN0IHR5cGUgKnR5CiAgCiAgc3RhdGljIHZvaWQKICBzcGFy YzY0X3N0b3JlX2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgc3Ry dWN0IHR5cGUgKnR5cGUsCkBAIC0xMDUxLDcgKzEwMzQsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dk Yi9zcGFyYzY0LXRkZXAuYwogIHsKICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CiAg Ci1AQCAtNjgxLDcgKzY4Miw3IEBAIHNwYXJjNjRfc3RvcmVfZmxvYXRpbmdfZmllbGRzIChzdHJ1 Y3QgcmUKK0BAIC02NzgsNyArNjc5LDcgQEAgc3BhcmM2NF9zdG9yZV9mbG9hdGluZ19maWVsZHMg KHN0cnVjdCByZQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBp KyspCiAgCXsKICAJICBzdHJ1Y3QgdHlwZSAqc3VidHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVf RklFTERfVFlQRSAodHlwZSwgaSkpOwpAQCAtMTA2MCw3ICsxMDQzLDcgQEAgSW5kZXg6IGdkYi03 LjcuMS9nZGIvc3BhcmM2NC10ZGVwLmMKICAKICAJICBzcGFyYzY0X3N0b3JlX2Zsb2F0aW5nX2Zp ZWxkcyAocmVnY2FjaGUsIHN1YnR5cGUsIHZhbGJ1ZiwKICAJCQkJCSBlbGVtZW50LCBzdWJwb3Mp OwotQEAgLTcxMyw3ICs3MTQsNyBAQCBzcGFyYzY0X3N0b3JlX2Zsb2F0aW5nX2ZpZWxkcyAoc3Ry dWN0IHJlCitAQCAtNzEwLDcgKzcxMSw3IEBAIHNwYXJjNjRfc3RvcmVfZmxvYXRpbmdfZmllbGRz IChzdHJ1Y3QgcmUKICAKICBzdGF0aWMgdm9pZAogIHNwYXJjNjRfZXh0cmFjdF9mbG9hdGluZ19m aWVsZHMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHN0cnVjdCB0eXBlICp0eXBlLApAQCAt MTA2OSw3ICsxMDUyLDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvc3BhcmM2NC10ZGVwLmMKICB7 CiAgICBpZiAoc3BhcmM2NF9mbG9hdGluZ19wICh0eXBlKSkKICAgICAgewotQEAgLTc1MCw3ICs3 NTEsNyBAQCBzcGFyYzY0X2V4dHJhY3RfZmxvYXRpbmdfZmllbGRzIChzdHJ1Y3QKK0BAIC03NDcs NyArNzQ4LDcgQEAgc3BhcmM2NF9leHRyYWN0X2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0CiAgICAg ICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTkZJRUxEUyAodHlwZSk7IGkrKykKICAJewogIAkgIHN0 cnVjdCB0eXBlICpzdWJ0eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBl LCBpKSk7CkBAIC0xMDc4LDcgKzEwNjEsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9zcGFyYzY0 LXRkZXAuYwogIAogIAkgIHNwYXJjNjRfZXh0cmFjdF9mbG9hdGluZ19maWVsZHMgKHJlZ2NhY2hl LCBzdWJ0eXBlLCB2YWxidWYsIHN1YnBvcyk7CiAgCX0KLUBAIC03ODMsNyArNzg0LDcgQEAgc3Bh cmM2NF9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZQorQEAgLTc4MCw3ICs3ODEsNyBA QCBzcGFyYzY0X3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlCiAgICBmb3IgKGkgPSAw OyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFs dWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0xMDg3LDcgKzEwNzAsNyBAQCBJbmRleDogZ2RiLTcuNy4x L2dkYi9zcGFyYzY0LXRkZXAuYwogIAogICAgICAgIGlmIChzcGFyYzY0X3N0cnVjdHVyZV9vcl91 bmlvbl9wICh0eXBlKQogIAkgIHx8IChzcGFyYzY0X2NvbXBsZXhfZmxvYXRpbmdfcCAodHlwZSkg JiYgbGVuID09IDMyKSkKLUBAIC04ODMsNyArODg0LDcgQEAgc3BhcmM2NF9zdG9yZV9hcmd1bWVu dHMgKHN0cnVjdCByZWdjYWNoZQorQEAgLTg4MCw3ICs4ODEsNyBAQCBzcGFyYzY0X3N0b3JlX2Fy Z3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlCiAgICAgIHsKICAgICAgICBjb25zdCBnZGJfYnl0ZSAq dmFsYnVmID0gdmFsdWVfY29udGVudHMgKGFyZ3NbaV0pOwogICAgICAgIHN0cnVjdCB0eXBlICp0 eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0xMDk2LDExICsxMDc5LDExIEBAIEluZGV4 OiBnZGItNy43LjEvZ2RiL3NwYXJjNjQtdGRlcC5jCiAgICAgICAgaW50IHJlZ251bSA9IC0xOwog ICAgICAgIGdkYl9ieXRlIGJ1ZlsxNl07CiAgCi1JbmRleDogZ2RiLTcuNy4xL2dkYi9zcHUtdGRl cC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3B1LXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi9zcHUtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTgu NzA0MjUyNzczICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi9zcHUtdGRlcC5jCTIwMTQtMDUtMDkg MjA6MDI6MDkuNjMzNzAzNzcxICswMjAwCi1AQCAtMTM3Niw3ICsxMzc2LDcgQEAgc3B1X3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvc3B1LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxNzAyMzczOSArMDEwMAor KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3NwdS10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTow OC4wOTkwNzg0OTkgKzAxMDAKK0BAIC0xNDMwLDcgKzE0MzAsNyBAQCBzcHVfcHVzaF9kdW1teV9j YWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdz W2ldOwogICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlw ZSAoYXJnKSk7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzID0gdmFsdWVfY29udGVu dHMgKGFyZyk7CkBAIC0xMTA5LDcgKzEwOTIsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9zcHUt dGRlcC5jCiAgCiAgICAgICAgLyogSWYgdGhlIGFyZ3VtZW50IGRvZXNuJ3Qgd2hvbGx5IGZpdCBp bnRvIHJlZ2lzdGVycywgaXQgYW5kCiAgCSBhbGwgc3Vic2VxdWVudCBhcmd1bWVudHMgZ28gdG8g dGhlIHN0YWNrLiAgKi8KLUBAIC0xNDA4LDcgKzE0MDgsNyBAQCBzcHVfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCitAQCAtMTQ2Miw3ICsxNDYyLDcgQEAgc3B1X3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYgogIAl7CiAgCSAgc3RydWN0IHZhbHVlICphcmcg PSBhcmdzW2ldOwogIAkgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAoYXJnKSk7CkBAIC0xMTE4LDExICsxMTAxLDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2Ri L3NwdS10ZGVwLmMKICAJICBpbnQgcHJlZmVycmVkX3Nsb3Q7CiAgCSAgCiAgCSAgaWYgKHNwdV9z Y2FsYXJfdmFsdWVfcCAodHlwZSkpCi1JbmRleDogZ2RiLTcuNy4xL2dkYi90aWM2eC10ZGVwLmMK K0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90aWM2eC10ZGVwLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy43LjEub3JpZy9nZGIvdGljNngtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTgu NzA1MjUyNzczICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi90aWM2eC10ZGVwLmMJMjAxNC0wNS0w OSAyMDowMjowOS42MzM3MDM3NzEgKzAyMDAKLUBAIC04OTYsNyArODk2LDcgQEAgdGljNnhfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvdGljNngtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDE4MDIzNzQzICswMTAw CisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGljNngtdGRlcC5jCTIwMTUtMDEtMDUgMjI6 MTk6MDguMDk5MDc4NDk5ICswMTAwCitAQCAtODk1LDcgKzg5NSw3IEBAIHRpYzZ4X3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAgIGludCBhcmdyZWcgPSAwOwogICAgaW50IGFy Z251bTsKICAgIGludCBzdGFja19vZmZzZXQgPSA0OwpAQCAtMTEzMSw3ICsxMTE0LDcgQEAgSW5k ZXg6IGdkYi03LjcuMS9nZGIvdGljNngtdGRlcC5jCiAgICBDT1JFX0FERFIgZnVuY19hZGRyID0g ZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CiAgICBlbnVtIGJmZF9lbmRpYW4g Ynl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBzdHJ1Y3QgdHlw ZSAqZnVuY190eXBlID0gdmFsdWVfdHlwZSAoZnVuY3Rpb24pOwotQEAgLTkzMCw3ICs5MzAsNyBA QCB0aWM2eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCitAQCAtOTI5LDcgKzky OSw3IEBAIHRpYzZ4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAgIC8qIE5v dyBtYWtlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgdGhlIGFyZ3MuICAqLwogICAgZm9yIChhcmdu dW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCiAgICAgIHsKQEAgLTExNDAsNyArMTEy Myw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3RpYzZ4LXRkZXAuYwogICAgICAgIGlmIChhcmdu dW0gPj0gMTAgLSBhcmdyZWcpCiAgCXJlZmVyZW5jZXNfb2Zmc2V0ICs9IGxlbjsKICAgICAgICBz dGFja19vZmZzZXQgKz0gbGVuOwotQEAgLTk0OSw3ICs5NDksNyBAQCB0aWM2eF9wdXNoX2R1bW15 X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCitAQCAtOTQ4LDcgKzk0OCw3IEBAIHRpYzZ4X3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFs OwogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdudW1dOwogICAgICAgIHN0cnVj dCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpAQCAt MTE0OSw3ICsxMTMyLDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvdGljNngtdGRlcC5jCiAgICAg ICAgZW51bSB0eXBlX2NvZGUgdHlwZWNvZGUgPSBUWVBFX0NPREUgKGFyZ190eXBlKTsKICAKICAg ICAgICB2YWwgPSB2YWx1ZV9jb250ZW50cyAoYXJnKTsKLUBAIC0xMTA5LDcgKzExMDksOCBAQCB0 aWM2eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCitAQCAtMTEwOCw3ICsxMTA4 LDggQEAgdGljNnhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZwogIAkgICAgfQog IAkgIGVsc2UKICAJICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCkBAIC0x MTU5LDExICsxMTQyLDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3RpYzZ4LXRkZXAuYwogIAog IAkgIGFkZHIgPSBzcCArIHN0YWNrX29mZnNldDsKICAJICB3cml0ZV9tZW1vcnkgKGFkZHIsIHZh bCwgbGVuKTsKLUluZGV4OiBnZGItNy43LjEvZ2RiL3RpbGVneC10ZGVwLmMKK0luZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi90aWxlZ3gtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny4xLm9yaWcvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNC0wNS0wOSAxOToyNDoxOC43MDUyNTI3NzMg KzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNC0wNS0wOSAyMDowMjow OS42MzM3MDM3NzEgKzAyMDAKLUBAIC0yOTAsNyArMjkwLDcgQEAgdGlsZWd4X3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv dGlsZWd4LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxODAyMzc0MyArMDEwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4x MDAwNzg1MDMgKzAxMDAKK0BAIC0yODgsNyArMjg4LDcgQEAgdGlsZWd4X3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmFyY2ggKgogICAgQ09SRV9BRERSIHN0YWNrX2Rlc3QgPSBzcDsKICAgIGlu dCBhcmdyZWcgPSBUSUxFR1hfUjBfUkVHTlVNOwogICAgaW50IGksIGo7CkBAIC0xMTcyLDExICsx MTU1LDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3RpbGVneC10ZGVwLmMKICAgIHN0YXRpYyBj b25zdCBnZGJfYnl0ZSBmb3VyX3plcm9fd29yZHNbMTZdID0geyAwIH07CiAgCiAgICAvKiBJZiBz dHJ1Y3RfcmV0dXJuIGlzIDEsIHRoZW4gdGhlIHN0cnVjdCByZXR1cm4gYWRkcmVzcyB3aWxsCi1J bmRleDogZ2RiLTcuNy4xL2dkYi92ODUwLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3Y4NTAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2RiL3Y4 NTAtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNzA1MjUyNzczICswMjAwCi0rKysgZ2RiLTcu Ny4xL2dkYi92ODUwLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYzNDcwMzc3MSArMDIwMAot QEAgLTEwMjEsNyArMTAyMSw3IEBAIHY4NTBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqZ2QKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTUt MDEtMDUgMjI6MTg6NTYuMDE5MDIzNzQ4ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdjg1MC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4xMDAwNzg1MDMgKzAxMDAKK0BAIC0x MDE5LDcgKzEwMTksNyBAQCB2ODUwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdk CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2Ri YXJjaCk7CiAgICBpbnQgYXJncmVnOwogICAgaW50IGFyZ251bTsKQEAgLTExODUsNyArMTE2OCw3 IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3Y4NTAtdGRlcC5jCiAgICBpbnQgc3RhY2tfb2Zmc2V0 OwogIAogICAgaWYgKGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCktPmFiaSA9PSBWODUwX0FCSV9SSDg1 MCkKLUBAIC0xMDQ5LDcgKzEwNDksNyBAQCB2ODUwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdk YmFyY2ggKmdkCitAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgdjg1MF9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhcmNoICpnZAogICAgICAgaW4gZm91ciByZWdpc3RlcnMgYXZhaWxhYmxlLiAgTG9v cCB0aHJ1IGFyZ3MgZnJvbSBmaXJzdCB0byBsYXN0LiAgKi8KICAgIGZvciAoYXJnbnVtID0gMDsg YXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQogICAgICB7CkBAIC0xMTk0LDExICsxMTc3LDExIEBA IEluZGV4OiBnZGItNy43LjEvZ2RiL3Y4NTAtdGRlcC5jCiAgICAgICAgZ2RiX2J5dGUgKnZhbDsK ICAgICAgICBnZGJfYnl0ZSB2YWxidWZbdjg1MF9yZWdfc2l6ZV07CiAgCi1JbmRleDogZ2RiLTcu Ny4xL2dkYi92YXgtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmF4LXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi92YXgtdGRlcC5jCTIwMTQt MDUtMDkgMTk6MjQ6MTguNzA2MjUyNzczICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi92YXgtdGRl cC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjM0NzAzNzcxICswMjAwCi1AQCAtMTE1LDcgKzExNSw3 IEBAIHZheF9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmUKKy0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTkw MjM3NDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YXgtdGRlcC5jCTIwMTUt MDEtMDUgMjI6MTk6MDguMTAwMDc4NTAzICswMTAwCitAQCAtMTExLDcgKzExMSw3IEBAIHZheF9z dG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmUKICAgIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKICAgIGVudW0gYmZkX2VuZGlh biBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGdkYl9ieXRl IGJ1Zls0XTsKQEAgLTEyMDcsNyArMTE5MCw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3ZheC10 ZGVwLmMKICAgIGludCBpOwogIAogICAgLyogV2UgY3JlYXRlIGFuIGFyZ3VtZW50IGxpc3Qgb24g dGhlIHN0YWNrLCBhbmQgbWFrZSB0aGUgYXJndW1lbnQKLUBAIC0xMjQsNyArMTI0LDcgQEAgdmF4 X3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyZQorQEAgLTEyMCw3ICsxMjAsNyBA QCB2YXhfc3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlCiAgICAvKiBQdXNoIGFy Z3VtZW50cyBpbiByZXZlcnNlIG9yZGVyLiAgKi8KICAgIGZvciAoaSA9IG5hcmdzIC0gMTsgaSA+ PSAwOyBpLS0pCiAgICAgIHsKQEAgLTEyMTYsMTEgKzExOTksMTEgQEAgSW5kZXg6IGdkYi03Ljcu MS9nZGIvdmF4LXRkZXAuYwogIAogICAgICAgIHNwIC09IChsZW4gKyAzKSAmIH4zOwogICAgICAg IGNvdW50ICs9IChsZW4gKyAzKSAvIDQ7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi94c3Rvcm15MTYt dGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIveHN0b3JteTE2LXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTQt MDUtMDkgMTk6MjQ6MTguNzA2MjUyNzczICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi94c3Rvcm15 MTYtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjM0NzAzNzcxICswMjAwCi1AQCAtMjM1LDgg KzIzNSw5IEBAIHhzdG9ybXkxNl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmMKKy0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxNS0wMS0wNSAy MjoxODo1Ni4wMjAwMjM3NTIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi94c3Rv cm15MTYtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMTAwMDc4NTAzICswMTAwCitAQCAtMjMz LDggKzIzMyw5IEBAIHhzdG9ybXkxNl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmMKICAg IGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNo KTsKICAgIENPUkVfQUREUiBzdGFja19kZXN0ID0gc3A7CiAgICBpbnQgYXJncmVnID0gRV8xU1Rf QVJHX1JFR05VTTsKQEAgLTEyMzIsMTEgKzEyMTUsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIv eHN0b3JteTE2LXRkZXAuYwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgIGdkYl9ieXRlIGJ1 Zlt4c3Rvcm15MTZfcGNfc2l6ZV07CiAgCi1JbmRleDogZ2RiLTcuNy4xL2dkYi94dGVuc2EtdGRl cC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIveHRlbnNhLXRkZXAuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi94dGVuc2EtdGRlcC5jCTIwMTQtMDUtMDkgMTk6 MjQ6MTguNzA3MjUyNzczICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi94dGVuc2EtdGRlcC5jCTIw MTQtMDUtMDkgMjA6MDI6MDkuNjM0NzAzNzcxICswMjAwCi1AQCAtMTY1Miw4ICsxNjUyLDcgQEAg eHRlbnNhX3N0b3JlX3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKgorLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIveHRlbnNhLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAyMTAy Mzc1NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAx NS0wMS0wNSAyMjoxOTowOC4xMDEwNzg1MDggKzAxMDAKK0BAIC0xNjQ2LDggKzE2NDYsNyBAQCB4 dGVuc2Ffc3RvcmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqCiAgCiAgICAgICAgaWYgKGxl biA+IChjYWxsc2l6ZSA+IDggPyA4IDogMTYpKQogIAlpbnRlcm5hbF9lcnJvciAoX19GSUxFX18s IF9fTElORV9fLApAQCAtMTI0Niw3ICsxMjI5LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIveHRl bnNhLXRkZXAuYwogICAgICAgIGFyZWcgPSBhcnJlZ19udW1iZXIgKGdkYmFyY2gsCiAgCQkJICAg Z2RiYXJjaF90ZGVwIChnZGJhcmNoKS0+YTBfYmFzZSArIDIgKyBjYWxsc2l6ZSwgd2IpOwogIAot QEAgLTE3MjcsMTggKzE3MjYsMTggQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdk YmFyY2ggKgorQEAgLTE3MjEsMTggKzE3MjAsMTggQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyY2ggKgogIHsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2Ri YXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGludCBpOwpAQCAtMTI2OCw3ICsxMjUxLDcg QEAgSW5kZXg6IGdkYi03LjcuMS9nZGIveHRlbnNhLXRkZXAuYwogICAgICAgIGludCByZWdubzsJ CS8qIHJlZ25vIGlmIGluIHJlZ2lzdGVyLiAgKi8KICAgICAgfSB1OwogICAgfTsKLUBAIC0xNzYy LDkgKzE3NjEsMTAgQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgor QEAgLTE3NTYsOSArMTc1NSwxMCBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqCiAgICAgICAgICB7CiAgCSAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwogIAkg IHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykp OwpAQCAtMTI4Miw3ICsxMjY1LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIveHRlbnNhLXRkZXAu YwogIAkgIHN3aXRjaCAoVFlQRV9DT0RFIChhcmdfdHlwZSkpCiAgCSAgICB7CiAgCSAgICBjYXNl IFRZUEVfQ09ERV9JTlQ6Ci1AQCAtMTgzNCw4ICsxODM0LDggQEAgeHRlbnNhX3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKgorQEAgLTE4MjgsOCArMTgyOCw4IEBAIHh0ZW5zYV9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKICAJICBpbmZvLT5hbGlnbiA9IFRZUEVfTEVO R1RIIChidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2xvbmcpOwogIAkgIGJyZWFrOwog IAl9CkBAIC0xMjkyLDcgKzEyNzUsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi94dGVuc2EtdGRl cC5jCiAgCiAgICAgICAgLyogQWxpZ24gc2l6ZSBhbmQgb25zdGFja19zaXplLiAgKi8KICAgICAg ICBzaXplID0gKHNpemUgKyBpbmZvLT5hbGlnbiAtIDEpICYgfihpbmZvLT5hbGlnbiAtIDEpOwot QEAgLTE4ODAsNyArMTg4MCw3IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJh cmNoICoKK0BAIC0xODc0LDcgKzE4NzQsNyBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjaCAqCiAgCiAgICAgICAgaWYgKGluZm8tPm9uc3RhY2spCiAgCXsKQEAgLTEzMDEs NyArMTI4NCw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3h0ZW5zYS10ZGVwLmMKICAJICBDT1JF X0FERFIgb2Zmc2V0ID0gc3AgKyBpbmZvLT51Lm9mZnNldDsKICAKICAJICAvKiBPZGQtc2l6ZWQg c3RydWN0cyBhcmUgYWxpZ25lZCB0byB0aGUgbG93ZXIgc2lkZSBvZiBhIG1lbW9yeQotQEAgLTE4 OTYsNyArMTg5Niw3IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoK K0BAIC0xODkwLDcgKzE4OTAsNyBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqCiAgCX0KICAgICAgICBlbHNlCiAgCXsKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQy NC1iaXRwb3MtMjVvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTI1b2YyNS5wYXRj aAppbmRleCAzYTY2YzAxLi42ZmU2ODRlIDEwMDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRw b3MtMjVvZjI1LnBhdGNoCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2gK QEAgLTQ3LDEwICs0NywxMCBAQCBDb250ZW50LVR5cGU6IHRleHQveC1wYXRjaAogQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogN2JpdAogQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsg ZmlsZW5hbWU9Zjc3LWJvdW5kcy5wYXRjaAogCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvZi1sYW5nLmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLWxhbmcuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvZi1sYW5nLmgJMjAxNC0w Ni0xNiAyMjo0NTowMC40MDQ0NzA5NDQgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9mLWxhbmcuaAkyMDE0LTA2LTE2IDIyOjQ1OjEwLjM1MjQ3Nzc2MSArMDIwMAorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZi1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NjozMS42MjA4 NTI5OTYgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLWxhbmcuaAkyMDE1LTAx LTA2IDIyOjQ2OjM0LjE5MDg2NTQ2NiArMDEwMAogQEAgLTYyLDkgKzYyLDkgQEAgc3RydWN0IGNv bW1vbl9ibG9jawogICAgc3RydWN0IHN5bWJvbCAqY29udGVudHNbMV07CiAgfTsKQEAgLTYzLDEx ICs2MywxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZi1sYW5nLmgKICAKICBl eHRlcm4gdm9pZCBmNzdfZ2V0X2R5bmFtaWNfYXJyYXlfbGVuZ3RoIChzdHJ1Y3QgdHlwZSAqKTsK ICAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mLXR5cGVwcmludC5jCitJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi10eXBlcHJpbnQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE0LTA2LTE2IDIyOjQ1 OjAwLjQwNDQ3MDk0NCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2YtdHlwZXBy aW50LmMJMjAxNC0wNi0xNiAyMjo0NToxMC4zNTM0Nzc3NjEgKzAyMDAKLUBAIC0xNjEsNyArMTYx LDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ2OjMx LjYyMTg1MzAwMSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdHlwZXByaW50 LmMJMjAxNS0wMS0wNiAyMjo0NzowMy43MzEwMDg3OTggKzAxMDAKK0BAIC0xNTgsNyArMTU4LDcg QEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQogIAkJCSAgICAgaW50 IHNob3csIGludCBwYXNzZWRfYV9wdHIsIGludCBkZW1hbmdsZWRfYXJncywKICAJCQkgICAgIGlu dCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwpCiAgewpAQCAtNzYsMjUgKzc2LDI1IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mLXR5cGVwcmludC5jCiAgCiAgICAvKiBObyBzdGF0 aWMgdmFyaWFibGVzIGFyZSBwZXJtaXR0ZWQgYXMgYW4gZXJyb3IgY2FsbCBtYXkgb2NjdXIgZHVy aW5nCiAgICAgICBleGVjdXRpb24gb2YgdGhpcyBmdW5jdGlvbi4gICovCi1AQCAtMTk1LDcgKzE5 NSw3IEBAIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUKK0BAIC0xOTIs NyArMTkyLDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQogIAog ICAgICAgICAgICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAodHlwZSk7CiAgICAg ICAgICAgIGlmIChsb3dlcl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1bHQuICAqLwogLSAg ICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkOiIsIGxvd2VyX2JvdW5kKTsK LSsJICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVzOiIsIHBsb25nZXN0IChsb3dlcl9i b3VuZCkpOworKyAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVzOiIsIHBs b25nZXN0IChsb3dlcl9ib3VuZCkpOwogIAogICAgICAgICAgICAvKiBNYWtlIHN1cmUgdGhhdCwg aWYgd2UgaGF2ZSBhbiBhc3N1bWVkIHNpemUgYXJyYXksIHdlCiAgICAgICAgICAgICAgIHByaW50 IG91dCBhIHdhcm5pbmcgYW5kIHByaW50IHRoZSB1cHBlcmJvdW5kIGFzICcqJy4gICovCi1AQCAt MjA1LDcgKzIwNSw3IEBAIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUK K0BAIC0yMDIsNyArMjAyLDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3Qg dHlwZQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdXBw ZXJfYm91bmQgPSBmNzdfZ2V0X3VwcGVyYm91bmQgKHR5cGUpOwogLSAgICAgICAgICAgICAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBlcl9ib3VuZCk7Ci0rCSAgICAgIGZwcmlu dGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVzIiwgcGxvbmdlc3QgKHVwcGVyX2JvdW5kKSk7CisrICAg ICAgICAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlcyIsIHBsb25nZXN0ICh1cHBl cl9ib3VuZCkpOwogICAgICAgICAgICAgIH0KICAKICAgICAgICAgICAgaWYgKFRZUEVfQ09ERSAo VFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpICE9IFRZUEVfQ09ERV9BUlJBWSkKLUBAIC0yNzQsNyAr Mjc0LDcgQEAgdm9pZAorQEAgLTI3MSw3ICsyNzEsNyBAQCB2b2lkCiAgZl90eXBlX3ByaW50X2Jh c2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgc2hvdywK ICAJCSAgIGludCBsZXZlbCkKICB7CkBAIC0xMDMsNyArMTAzLDcgQEAgSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2YtdHlwZXByaW50LmMKICAgIGludCBpbmRleDsKICAKICAgIFFVSVQ7 Ci1AQCAtMzU2LDcgKzM1Niw3IEBAIGZfdHlwZV9wcmludF9iYXNlIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgc3QKK0BAIC0zNTMsNyArMzUzLDcgQEAgZl90eXBlX3ByaW50X2Jhc2UgKHN0cnVjdCB0eXBl ICp0eXBlLCBzdAogICAgICAgIGVsc2UKICAJewogIAkgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91 cHBlcmJvdW5kICh0eXBlKTsKQEAgLTExMiwxMSArMTEyLDExIEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9mLXR5cGVwcmludC5jCiAgCX0KICAgICAgICBicmVhazsKICAKLUluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9mLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIw MTQwNjEzLm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE0LTA2LTE2IDIyOjQ1OjM0LjkwMTQ5NTA2 OSArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2YtdmFscHJpbnQuYwkyMDE0LTA2 LTE2IDIyOjQ1OjQ0LjkzMzUwMjA2NyArMDIwMAotQEAgLTQ2LDcgKzQ2LDcgQEAgTE9OR0VTVCBm NzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDY6MzEuNjIxODUzMDAxICswMTAw CisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6 NDY6MzQuMTkxODY1NDcxICswMTAwCitAQCAtNDMsNyArNDMsNyBAQCBMT05HRVNUIGY3N19hcnJh eV9vZmZzZXRfdGJsW01BWF9GT1JUUkFOCiAgLyogQXJyYXkgd2hpY2ggaG9sZHMgb2Zmc2V0cyB0 byBiZSBhcHBsaWVkIHRvIGdldCBhIHJvdydzIGVsZW1lbnRzCiAgICAgZm9yIGEgZ2l2ZW4gYXJy YXkuICBBcnJheSBhbHNvIGhvbGRzIHRoZSBzaXplIG9mIGVhY2ggc3ViYXJyYXkuICAqLwogIApA QCAtMTI1LDcgKzEyNSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mLXZhbHBy aW50LmMKICBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIGlm IChUWVBFX0FSUkFZX0xPV0VSX0JPVU5EX0lTX1VOREVGSU5FRCAodHlwZSkpCi1AQCAtNTUsNyAr NTUsNyBAQCBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTUyLDcg KzUyLDcgQEAgZjc3X2dldF9sb3dlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgIHJldHVy biBUWVBFX0FSUkFZX0xPV0VSX0JPVU5EX1ZBTFVFICh0eXBlKTsKICB9CiAgCgpkaWZmIC0tZ2l0 IGEvZ2RiLXNhdmUtYnJlYWtwb2ludHMtZml4LnBhdGNoIGIvZ2RiLXNhdmUtYnJlYWtwb2ludHMt Zml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYTVhM2JiLi4wMDAwMDAw Ci0tLSBhL2dkYi1zYXZlLWJyZWFrcG9pbnRzLWZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDEyMyArMCwwIEBACi1nZGIvCi0yMDE0LTEwLTAzICBNaXJvc2xhdiBGcmFuYyAgPG1mcmFuY0By ZWRoYXQuY29tPgotCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+Ci0KLQlGaXggInNhdmUgYnJlYWtwb2ludHMiIGZvciAiY2F0Y2giIGNvbW1hbmQuCi0JKiBi cmVhay1jYXRjaC1zaWcuYyAoc2lnbmFsX2NhdGNocG9pbnRfcHJpbnRfcmVjcmVhdGUpOiBBZGQg dHJhaWxpbmcKLQluZXdsaW5lLgotCi1nZGIvdGVzdHN1aXRlLwotMjAxNC0xMC0wMyAgSmFuIEty YXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JRml4ICJzYXZlIGJyZWFr cG9pbnRzIiBmb3IgImNhdGNoIiBjb21tYW5kLgotCSogZ2RiLmJhc2UvY2F0Y2gtc2lnbmFsLmV4 cDogQWRkIGdkYl9icmVha3BvaW50ICJtYWluIi4KLQlSZW1vdmUgLW5vbmV3bGluZS4gIE1hdGNo IGFsc28gdGhlIGFkZGVkICJtYWluIiBsaW5lLgotCi1kaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrLWNh dGNoLXNpZy5jIGIvZ2RiL2JyZWFrLWNhdGNoLXNpZy5jCi1pbmRleCBjNDFiZjMzLi41NzlmYjc4 IDEwMDY0NAotLS0tIGEvZ2RiL2JyZWFrLWNhdGNoLXNpZy5jCi0rKysgYi9nZGIvYnJlYWstY2F0 Y2gtc2lnLmMKLUBAIC0zNDYsNiArMzQ2LDcgQEAgc2lnbmFsX2NhdGNocG9pbnRfcHJpbnRfcmVj cmVhdGUgKHN0cnVjdCBicmVha3BvaW50ICpiLCBzdHJ1Y3QgdWlfZmlsZSAqZnApCi0gICAgIH0K LSAgIGVsc2UgaWYgKGMtPmNhdGNoX2FsbCkKLSAgICAgZnByaW50Zl91bmZpbHRlcmVkIChmcCwg IiBhbGwiKTsKLSsgIGZwdXRjX3VuZmlsdGVyZWQgKCdcbicsIGZwKTsKLSB9Ci0gCi0gLyogSW1w bGVtZW50IHRoZSAiZXhwbGFpbnNfc2lnbmFsIiBicmVha3BvaW50X29wcyBtZXRob2QgZm9yIHNp Z25hbAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2F0Y2gtc2lnbmFsLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2F0Y2gtc2lnbmFsLmV4cAotaW5kZXggMjJjYWY0 MC4uNzAwMmY4NCAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2F0Y2gtc2ln bmFsLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jYXRjaC1zaWduYWwuZXhwCi1A QCAtMTE3LDYgKzExNyw3IEBAIGZvcmVhY2gge2FyZyBkZXNjfSB7IiIgInN0YW5kYXJkIHNpZ25h bHMiIFwKLSAJInNldCBjYXRjaHBvaW50ICckYXJnJyBmb3IgcHJpbnRpbmciCi0gICAgIGdkYl90 ZXN0ICJpbmZvIGJyZWFrIiAiJGRlY2ltYWwuKmNhdGNocG9pbnQuKnNpZ25hbC4qJGRlc2MuKiIg XAotIAkiaW5mbyBicmVhayBmb3IgJyRhcmcnIgotKyAgICBnZGJfYnJlYWtwb2ludCAibWFpbiIK LSAgICAgZ2RiX3Rlc3QgInNhdmUgYnJlYWtwb2ludHMgW3N0YW5kYXJkX291dHB1dF9maWxlIGJw cy4kaV0iIFwKLSAJIlNhdmVkIHRvIGZpbGUgLipicHMuJGkuKiIgXAotIAkic2F2ZSBicmVha3Bv aW50cyBmb3IgJyRhcmcnIgotQEAgLTEyNCwxNSArMTI1LDE3IEBAIGZvcmVhY2gge2FyZyBkZXNj fSB7IiIgInN0YW5kYXJkIHNpZ25hbHMiIFwKLSAgICAgc2V0IGZpbGVuYW1lIFtyZW1vdGVfdXBs b2FkIGhvc3QgW3N0YW5kYXJkX291dHB1dF9maWxlIGJwcy4kaV0gXAotIAkJICAgICAgW3N0YW5k YXJkX291dHB1dF9maWxlIGJwcy1sb2NhbC4kaV1dCi0gICAgIHNldCBmZCBbb3BlbiAkZmlsZW5h bWVdCi0tICAgIHNldCBjb250ZW50cyBbcmVhZCAtbm9uZXdsaW5lICRmZF0KLSsgICAgc2V0IGNv bnRlbnRzIFtyZWFkICRmZF0KLSAgICAgY2xvc2UgJGZkCi0gCi0rICAgIHNldCBubCAiXHI/XG4i Ci0gICAgIGlmIHskYXJnID09ICIifSB7Ci0tCXNldCBwYXR0ZXJuICJjYXRjaCBzaWduYWwiCi0r CXNldCBwYXR0ZXJuICJjYXRjaCBzaWduYWwkbmwiCi0gICAgIH0gZWxzZSB7Ci0tCXNldCBwYXR0 ZXJuICJjYXRjaCBzaWduYWwgJGFyZyIKLSsJc2V0IHBhdHRlcm4gImNhdGNoIHNpZ25hbCAkYXJn JG5sIgotICAgICB9Ci0tICAgIGlmIHtbc3RyaW5nIG1hdGNoICRwYXR0ZXJuICRjb250ZW50c119 IHsKLSsgICAgc2V0IHBhdHRlcm4gIiR7cGF0dGVybn1icmVhayBtYWluJG5sIgotKyAgICBpZiB7 W3JlZ2V4cCAiJHBhdHRlcm4iICRjb250ZW50c119IHsKLSAJcGFzcyAicmVzdWx0cyBvZiBzYXZl IGJyZWFrcG9pbnRzIGZvciAnJGFyZyciCi0gICAgIH0gZWxzZSB7Ci0gCWZhaWwgInJlc3VsdHMg b2Ygc2F2ZSBicmVha3BvaW50cyBmb3IgJyRhcmcnIgotZ2RiLwotMjAxNC0xMC0wMyAgTWlyb3Ns YXYgRnJhbmMgIDxtZnJhbmNAcmVkaGF0LmNvbT4KLQotCUZpeCAic2F2ZSBicmVha3BvaW50cyIg Zm9yICJkaXNhYmxlICRicG51bSIgY29tbWFuZC4KLQkqIGJyZWFrcG9pbnQuYyAoc2F2ZV9icmVh a3BvaW50cyk6IEFkZCAkYnBudW0gZm9yIGRpc2FibGUuCi0KLWdkYi90ZXN0c3VpdGUvCi0yMDE0 LTEwLTAzICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQlG aXggInNhdmUgYnJlYWtwb2ludHMiIGZvciAiZGlzYWJsZSAkYnBudW0iIGNvbW1hbmQuCi0JKiBn ZGIuYmFzZS9zYXZlLWJwLmMgKG1haW4pOiBBZGQgbGFiZWwuCi0JKiBnZGIuYmFzZS9zYXZlLWJw LmV4cDogQWRkIDh0aCBkaXNhYmxlZCBicmVha3BvaW50LiAgTWF0Y2ggaXQuCi0KLWRpZmYgLS1n aXQgYS9nZGIvYnJlYWtwb2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQuYwotaW5kZXggZTIxNzBiNC4u MGE0MzhkMSAxMDA2NDQKLS0tLSBhL2dkYi9icmVha3BvaW50LmMKLSsrKyBiL2dkYi9icmVha3Bv aW50LmMKLUBAIC0xNjEzMSw3ICsxNjEzMSw3IEBAIHNhdmVfYnJlYWtwb2ludHMgKGNoYXIgKmZp bGVuYW1lLCBpbnQgZnJvbV90dHksCi0gICAgICAgfQotIAotICAgICBpZiAodHAtPmVuYWJsZV9z dGF0ZSA9PSBicF9kaXNhYmxlZCkKLS0gICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGZwLCAiZGlz YWJsZVxuIik7Ci0rICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChmcCwgImRpc2FibGUgJGJwbnVt XG4iKTsKLSAKLSAgICAgLyogSWYgdGhpcyBpcyBhIG11bHRpLWxvY2F0aW9uIGJyZWFrcG9pbnQs IGNoZWNrIGlmIHRoZSBsb2NhdGlvbnMKLSAgICAgICAgc2hvdWxkIGJlIGluZGl2aWR1YWxseSBk aXNhYmxlZC4gIFdhdGNocG9pbnQgbG9jYXRpb25zIGFyZQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2Uvc2F2ZS1icC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zYXZlLWJw LmMKLWluZGV4IDlhNzJmZTguLmYwMWYwMzEgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3NhdmUtYnAuYwotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zYXZlLWJwLmMK LUBAIC0zMSw2ICszMSw2IEBAIG1haW4gKHZvaWQpCi0gICAgIGJyZWFrX21lICgpOyAvKiBUcnkg YSBjb25kaXRpb24tc3BlY2lmaWMgYnJlYWtwb2ludC4gICovCi0gCi0gICBicmVha19tZSAoKTsg LyogRmluYWxseSwgdHJ5IGEgYnJlYWtwb2ludCB3aXRoIGNvbW1hbmRzLiAgKi8KLS0gIHJldHVy biAwOwotKyAgcmV0dXJuIDA7IC8qIFJldHVybiBsaW5lLiAqLwotIH0KLSAKLWRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NhdmUtYnAuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9zYXZlLWJwLmV4cAotaW5kZXggYmE5ODYzMy4uN2JjOGFiNiAxMDA2NDQKLS0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc2F2ZS1icC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2Uvc2F2ZS1icC5leHAKLUBAIC00Nyw2ICs0NywxMCBAQCBnZGJfdGVzdCAiY29tbWFuZHNc bnNpbGVudFxuZW5kIiAiRW5kIHdpdGguKiIgImFkZCBicmVha3BvaW50IGNvbW1hbmRzIgotIAot IGdkYl90ZXN0ICJkcHJpbnRmICR7c3JjZmlsZX06JHtsb2NfYnA1fSxcIkF0IGZvbyBlbnRyeVxc blwiIiAiRHByaW50ZiAuKiIKLSAKLStzZXQgbG9jX2JwOCBbZ2RiX2dldF9saW5lX251bWJlciAi UmV0dXJuIGxpbmUiXQotK2dkYl9icmVha3BvaW50ICIke3NyY2ZpbGV9OiR7bG9jX2JwOH0iCi0r Z2RiX3Rlc3Rfbm9fb3V0cHV0IHtkaXNhYmxlICRicG51bX0KLSsKLSAjIE5vdywgc2F2ZSB0aGUg YnJlYWtwb2ludHMgaW50byBhIGZpbGUuLi4KLSBpZiB7W2lzX3JlbW90ZSBob3N0XX0gewotICAg ICBzZXQgYnBzIGJwcwotQEAgLTcxLDYgKzc1LDcgQEAgZ2RiX3Rlc3QgInNvdXJjZSAkYnBzIiAi IiAic291cmNlIGJwcyIKLSAKLSAjIE5vdywgdmVyaWZ5IHRoYXQgYWxsIGJyZWFrcG9pbnRzIGhh dmUgYmVlbiBjcmVhdGVkIGNvcnJlY3RseS4uLgotIHNldCBicF9yb3dfc3RhcnQgIlxbMC05XF0r ICticmVha3BvaW50ICtrZWVwICt5ICsweFxbMC05YS1mXF0rICtpbiIKLStzZXQgZGlzYWJsZWRf cm93X3N0YXJ0ICJcWzAtOVxdKyArYnJlYWtwb2ludCAra2VlcCArbiArMHhcWzAtOWEtZlxdKyAr aW4iCi0gc2V0IGRwcmludGZfcm93X3N0YXJ0ICJcWzAtOVxdKyArZHByaW50ZiAra2VlcCAreSAr MHhcWzAtOWEtZlxdKyAraW4iCi0gZ2RiX3Rlc3QgImluZm8gYnJlYWsiIFwKLS0gICIgKk51bSAr VHlwZSArRGlzcCArRW5iICtBZGRyZXNzICtXaGF0XHJcbiRicF9yb3dfc3RhcnQgYnJlYWtfbWUg YXQgLiokc3JjZmlsZTpcWzAtOVxdK1xyXG4kYnBfcm93X3N0YXJ0IG1haW4gYXQgLiokc3JjZmls ZTokbG9jX2JwMlxyXG4kYnBfcm93X3N0YXJ0IG1haW4gYXQgLiokc3JjZmlsZTokbG9jX2JwMyAr dGhyZWFkIDFcclxuXFsgXHRdK3N0b3Agb25seSBpbiB0aHJlYWQgMVxyXG4kYnBfcm93X3N0YXJ0 IG1haW4gYXQgLiokc3JjZmlsZTokbG9jX2JwNFxyXG5cWyBcdFxdK3N0b3Agb25seSBpZiBpID09 IDEoIFxcKChob3N0fHRhcmdldCkgZXZhbHNcXCkpP1xyXG4kYnBfcm93X3N0YXJ0IG1haW4gYXQg Liokc3JjZmlsZTokbG9jX2JwNVxyXG5cWyBcdFxdK3NpbGVudFxyXG4kZHByaW50Zl9yb3dfc3Rh cnQgbWFpbiBhdCAuKiRzcmNmaWxlOiRsb2NfYnA1XHJcblxbIFx0XF0rcHJpbnRmLioiCi0rICAi ICpOdW0gK1R5cGUgK0Rpc3AgK0VuYiArQWRkcmVzcyArV2hhdFxyXG4kYnBfcm93X3N0YXJ0IGJy ZWFrX21lIGF0IC4qJHNyY2ZpbGU6XFswLTlcXStcclxuJGJwX3Jvd19zdGFydCBtYWluIGF0IC4q JHNyY2ZpbGU6JGxvY19icDJcclxuJGJwX3Jvd19zdGFydCBtYWluIGF0IC4qJHNyY2ZpbGU6JGxv Y19icDMgK3RocmVhZCAxXHJcblxbIFx0XStzdG9wIG9ubHkgaW4gdGhyZWFkIDFcclxuJGJwX3Jv d19zdGFydCBtYWluIGF0IC4qJHNyY2ZpbGU6JGxvY19icDRcclxuXFsgXHRcXStzdG9wIG9ubHkg aWYgaSA9PSAxKCBcXCgoaG9zdHx0YXJnZXQpIGV2YWxzXFwpKT9cclxuJGJwX3Jvd19zdGFydCBt YWluIGF0IC4qJHNyY2ZpbGU6JGxvY19icDVcclxuXFsgXHRcXStzaWxlbnRcclxuJGRwcmludGZf cm93X3N0YXJ0IG1haW4gYXQgLiokc3JjZmlsZTokbG9jX2JwNVxyXG5cWyBcdFxdK3ByaW50Zlxb XlxyXG5cXStcclxuJGRpc2FibGVkX3Jvd19zdGFydCBtYWluIGF0IC4qJHNyY2ZpbGU6JGxvY19i cDgiCgpkaWZmIC0tZ2l0IGEvZ2RiLXNsb3ctZ3N0YWNrLXBlcmZvcm1hbmNlLnBhdGNoIGIvZ2Ri LXNsb3ctZ3N0YWNrLXBlcmZvcm1hbmNlLnBhdGNoCmluZGV4IDZhOTM5ODguLmM4OTVlN2YgMTAw NjQ0Ci0tLSBhL2dkYi1zbG93LWdzdGFjay1wZXJmb3JtYW5jZS5wYXRjaAorKysgYi9nZGItc2xv dy1nc3RhY2stcGVyZm9ybWFuY2UucGF0Y2gKQEAgLTEzNCwxMSArMTM0LDExIEBAIGdkYi8KIAko ZHdhcmZfZGVjb2RlX2xpbmVfaGVhZGVyKTogSW5pdGlhbGl6ZSBvZmZzZXQgYW5kIG9mZnNldF9p bl9kd3ouCiAJKGR3YXJmX2RlY29kZV9saW5lcyk6IE5ldyBwYXJhbWV0ZXIgZGVjb2RlX21hcHBp bmcsIHVzZSBpdC4KIAotSW5kZXg6IGdkYi03LjgvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 Ljgub3JpZy9nZGIvZHdhcmYycmVhZC5jCi0rKysgZ2RiLTcuOC9nZGIvZHdhcmYycmVhZC5jCi1A QCAtMzEyLDYgKzMxMiw5IEBAIHN0cnVjdCBkd2FyZjJfcGVyX29iamZpbGUKKy0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTA1IDIyOjQ1OjMyLjgy MzI0MDQ1MyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwky MDE1LTAxLTA1IDIyOjQ5OjM1LjI3MDMzMjY0NyArMDEwMAorQEAgLTMwOSw2ICszMDksOSBAQCBz dHJ1Y3QgZHdhcmYyX3Blcl9vYmpmaWxlCiAgCiAgICAvKiBUaGUgQ1VzIHdlIHJlY2VudGx5IHJl YWQuICAqLwogICAgVkVDIChkd2FyZjJfcGVyX2N1X3B0cikgKmp1c3RfcmVhZF9jdXM7CkBAIC0x NDgsNyArMTQ4LDcgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL2R3YXJmMnJlYWQuYwogIH07CiAgCiAg c3RhdGljIHN0cnVjdCBkd2FyZjJfcGVyX29iamZpbGUgKmR3YXJmMl9wZXJfb2JqZmlsZTsKLUBA IC0xMDI4LDYgKzEwMzEsMTIgQEAgdHlwZWRlZiB2b2lkIChkaWVfcmVhZGVyX2Z1bmNfZnR5cGUp IChjbworQEAgLTEwMjUsNiArMTAyOCwxMiBAQCB0eXBlZGVmIHZvaWQgKGRpZV9yZWFkZXJfZnVu Y19mdHlwZSkgKGNvCiAgICAgd2hpY2ggY29udGFpbnMgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlv bi4gICovCiAgc3RydWN0IGxpbmVfaGVhZGVyCiAgewpAQCAtMTYxLDI3ICsxNjEsMjcgQEAgSW5k ZXg6IGdkYi03LjgvZ2RiL2R3YXJmMnJlYWQuYwogICAgdW5zaWduZWQgaW50IHRvdGFsX2xlbmd0 aDsKICAgIHVuc2lnbmVkIHNob3J0IHZlcnNpb247CiAgICB1bnNpZ25lZCBpbnQgaGVhZGVyX2xl bmd0aDsKLUBAIC0xNTE2LDcgKzE1MjUsNyBAQCBzdGF0aWMgc3RydWN0IGxpbmVfaGVhZGVyICpk d2FyZl9kZWNvZGVfCitAQCAtMTUxMyw3ICsxNTIyLDcgQEAgc3RhdGljIHN0cnVjdCBsaW5lX2hl YWRlciAqZHdhcmZfZGVjb2RlXwogIAogIHN0YXRpYyB2b2lkIGR3YXJmX2RlY29kZV9saW5lcyAo c3RydWN0IGxpbmVfaGVhZGVyICosIGNvbnN0IGNoYXIgKiwKICAJCQkJc3RydWN0IGR3YXJmMl9j dSAqLCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKiwKLS0JCQkJaW50KTsKLSsJCQkJaW50LCBpbnQg ZGVjb2RlX21hcHBpbmcpOworLQkJCQlDT1JFX0FERFIpOworKwkJCQlDT1JFX0FERFIsIGludCBk ZWNvZGVfbWFwcGluZyk7CiAgCi0gc3RhdGljIHZvaWQgZHdhcmYyX3N0YXJ0X3N1YmZpbGUgKGNv bnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOworIHN0YXRpYyB2b2lkIGR3 YXJmMl9zdGFydF9zdWJmaWxlIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CiAgCi1AQCAt MTg0OSw2ICsxODU4LDggQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19jdV9pbmNsdWRlcyAodm9pZCk7 Ci0gCi0gc3RhdGljIHZvaWQgY2hlY2tfcHJvZHVjZXIgKHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsK K0BAIC0yMDU3LDYgKzIwNjYsOCBAQCBnZXRfc2VjdGlvbl9maWxlX25hbWUgKGNvbnN0IHN0cnVj dCBkd2FyCisgLyogUmV0dXJuIHRoZSBpZCBvZiBTRUNUSU9OLgorICAgIFJldHVybnMgMCBpZiBT RUNUSU9OIGRvZXNuJ3QgZXhpc3QuICAqLwogIAogK3N0YXRpYyB2b2lkIGZyZWVfbGluZV9oZWFk ZXJfdm9pZHAgKHZvaWQgKmFyZyk7CiArCiAgc3RhdGljIGludAotIGF0dHJfdG9fZHluYW1pY19w cm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwK LSAJCSAgICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1LCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9w LAotQEAgLTE5MjAsNiArMTkzMSwyOSBAQCBkd2FyZjJfaW52YWxpZF9hdHRyaWJfY2xhc3NfY29t cGxhaW50IChjCi0gCSAgICAgXygiaW52YWxpZCBhdHRyaWJ1dGUgY2xhc3Mgb3IgZm9ybSBmb3Ig JyVzJyBpbiAnJXMnIiksCi0gCSAgICAgYXJnMSwgYXJnMik7CisgZ2V0X3NlY3Rpb25faWQgKGNv bnN0IHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICpzZWN0aW9uKQorIHsKK0BAIC0yNDYxLDYg KzI0NzIsMjkgQEAgZHdhcmYyX2dldF9kd3pfZmlsZSAodm9pZCkKKyAgIGR3YXJmMl9wZXJfb2Jq ZmlsZS0+ZHd6X2ZpbGUgPSByZXN1bHQ7CisgICByZXR1cm4gcmVzdWx0OwogIH0KICsKICsvKiBI YXNoIGZ1bmN0aW9uIGZvciBsaW5lX2hlYWRlcl9oYXNoLiAgKi8KQEAgLTIwNywyMCArMjA3LDIw IEBAIEluZGV4OiBnZGItNy44L2dkYi9kd2FyZjJyZWFkLmMKICt9CiArCiAgDAotICNpZiBXT1JE U19CSUdFTkRJQU4KKyAvKiBEV0FSRiBxdWlja19zeW1ib2xzX2Z1bmN0aW9ucyBzdXBwb3J0LiAg Ki8KICAKLUBAIC00NDU5LDcgKzQ0OTMsNyBAQCBkd2FyZjJfYnVpbGRfaW5jbHVkZV9wc3ltdGFi cyAoc3RydWN0IGR3CitAQCAtNDQ1NCw3ICs0NDg4LDcgQEAgZHdhcmYyX2J1aWxkX2luY2x1ZGVf cHN5bXRhYnMgKHN0cnVjdCBkdwogICAgICByZXR1cm47ICAvKiBObyBsaW5ldGFibGUsIHNvIG5v IGluY2x1ZGVzLiAgKi8KICAKICAgIC8qIE5PVEU6IHBzdC0+ZGlybmFtZSBpcyBEV19BVF9jb21w X2RpciAoaWYgcHJlc2VudCkuICAqLwotLSAgZHdhcmZfZGVjb2RlX2xpbmVzIChsaCwgcHN0LT5k aXJuYW1lLCBjdSwgcHN0LCAxKTsKLSsgIGR3YXJmX2RlY29kZV9saW5lcyAobGgsIHBzdC0+ZGly bmFtZSwgY3UsIHBzdCwgMSwgMSk7CistICBkd2FyZl9kZWNvZGVfbGluZXMgKGxoLCBwc3QtPmRp cm5hbWUsIGN1LCBwc3QsIHBzdC0+dGV4dGxvdyk7CisrICBkd2FyZl9kZWNvZGVfbGluZXMgKGxo LCBwc3QtPmRpcm5hbWUsIGN1LCBwc3QsIHBzdC0+dGV4dGxvdywgMSk7CiAgCiAgICBmcmVlX2xp bmVfaGVhZGVyIChsaCk7CiAgfQotQEAgLTg5ODksMjQgKzkwMjMsNjQgQEAgc3RhdGljIHZvaWQK K0BAIC05MDAyLDI0ICs5MDM2LDY0IEBAIHN0YXRpYyB2b2lkCiAgaGFuZGxlX0RXX0FUX3N0bXRf bGlzdCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LAotIAkJCWNv bnN0IGNoYXIgKmNvbXBfZGlyKSAvKiBBUkk6IGVkaXRDYXNlIGZ1bmN0aW9uICovCisgCQkJY29u c3QgY2hhciAqY29tcF9kaXIsIENPUkVfQUREUiBsb3dwYykgLyogQVJJOiBlZGl0Q2FzZSBmdW5j dGlvbiAqLwogIHsKICsgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlID0gZHdhcmYyX3Blcl9vYmpm aWxlLT5vYmpmaWxlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTI0OSw3ICsyNDks NyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvZHdhcmYycmVhZC5jCiAtCXsKIC0JICBjdS0+bGluZV9o ZWFkZXIgPSBsaW5lX2hlYWRlcjsKIC0JICBtYWtlX2NsZWFudXAgKGZyZWVfY3VfbGluZV9oZWFk ZXIsIGN1KTsKLS0JICBkd2FyZl9kZWNvZGVfbGluZXMgKGxpbmVfaGVhZGVyLCBjb21wX2Rpciwg Y3UsIE5VTEwsIDEpOworLQkgIGR3YXJmX2RlY29kZV9saW5lcyAobGluZV9oZWFkZXIsIGNvbXBf ZGlyLCBjdSwgTlVMTCwgbG93cGMpOwogLQl9CiArICAgICAgZHdhcmYyX3Blcl9vYmpmaWxlLT5s aW5lX2hlYWRlcl9oYXNoCiArCT0gaHRhYl9jcmVhdGVfYWxsb2NfZXggKDEyNywgbGluZV9oZWFk ZXJfaGFzaCwgbGluZV9oZWFkZXJfZXEsCkBAIC0yODksMTIgKzI4OSwxMiBAQCBJbmRleDogZ2Ri LTcuOC9nZGIvZHdhcmYycmVhZC5jCiArICAgICAgbWFrZV9jbGVhbnVwIChmcmVlX2N1X2xpbmVf aGVhZGVyLCBjdSk7CiAgICAgIH0KICsgIGRlY29kZV9tYXBwaW5nID0gKGRpZS0+dGFnICE9IERX X1RBR19wYXJ0aWFsX3VuaXQpOwotKyAgZHdhcmZfZGVjb2RlX2xpbmVzIChsaW5lX2hlYWRlciwg Y29tcF9kaXIsIGN1LCBOVUxMLCAxLAorKyAgZHdhcmZfZGVjb2RlX2xpbmVzIChsaW5lX2hlYWRl ciwgY29tcF9kaXIsIGN1LCBOVUxMLCBsb3dwYywKICsJCSAgICAgIGRlY29kZV9tYXBwaW5nKTsK ICB9CiAgCiAgLyogUHJvY2VzcyBEV19UQUdfY29tcGlsZV91bml0IG9yIERXX1RBR19wYXJ0aWFs X3VuaXQuICAqLwotQEAgLTE2OTY5LDYgKzE3MDQzLDE2IEBAIGZyZWVfbGluZV9oZWFkZXIgKHN0 cnVjdCBsaW5lX2hlYWRlciAqbGgKK0BAIC0xNjkxNyw2ICsxNjk5MSwxNiBAQCBmcmVlX2xpbmVf aGVhZGVyIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoCiAgICB4ZnJlZSAobGgpOwogIH0KICAKQEAg LTMxMSw3ICszMTEsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvZHdhcmYycmVhZC5jCiAgLyogQWRk IGFuIGVudHJ5IHRvIExIJ3MgaW5jbHVkZSBkaXJlY3RvcnkgdGFibGUuICAqLwogIAogIHN0YXRp YyB2b2lkCi1AQCAtMTcwOTksNiArMTcxODMsOSBAQCBkd2FyZl9kZWNvZGVfbGluZV9oZWFkZXIg KHVuc2lnbmVkIGludCBvCitAQCAtMTcwNDcsNiArMTcxMzEsOSBAQCBkd2FyZl9kZWNvZGVfbGlu ZV9oZWFkZXIgKHVuc2lnbmVkIGludCBvCiAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICgobWFr ZV9jbGVhbnVwX2Z0eXBlICopIGZyZWVfbGluZV9oZWFkZXIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAodm9pZCAqKSBsaCk7CiAgCkBAIC0zMjEsMTIgKzMyMSwxMiBAQCBJbmRleDogZ2Ri LTcuOC9nZGIvZHdhcmYycmVhZC5jCiAgICBsaW5lX3B0ciA9IHNlY3Rpb24tPmJ1ZmZlciArIG9m ZnNldDsKICAKICAgIC8qIFJlYWQgaW4gdGhlIGhlYWRlci4gICovCi1AQCAtMTc1OTYsMTggKzE3 NjgzLDIyIEBAIGR3YXJmX2RlY29kZV9saW5lc18xIChzdHJ1Y3QgbGluZV9oZWFkZXIKLSAgICBh cyB0aGUgY29ycmVzcG9uZGluZyBzeW10YWIuICBTaW5jZSBDT01QX0RJUiBpcyBub3QgdXNlZCBp biB0aGUgbmFtZSBvZiB0aGUKLSAgICBzeW10YWIgd2UgZG9uJ3QgdXNlIGl0IGluIHRoZSBuYW1l IG9mIHRoZSBwc3ltdGFicyB3ZSBjcmVhdGUuCitAQCAtMTc2NzQsMTcgKzE3NzYxLDIyIEBAIGR3 YXJmX2RlY29kZV9saW5lc18xIChzdHJ1Y3QgbGluZV9oZWFkZXIKICAgICBFLmcuIGV4cGFuZF9s aW5lX3NhbCByZXF1aXJlcyB0aGlzIHdoZW4gZmluZGluZyBwc3ltdGFicyB0byBleHBhbmQuCi0t ICAgQSBnb29kIHRlc3RjYXNlIGZvciB0aGlzIGlzIG1iLWlubGluZS5leHAuICAqLwotKyAgIEEg Z29vZCB0ZXN0Y2FzZSBmb3IgdGhpcyBpcyBtYi1pbmxpbmUuZXhwLgorICAgIEEgZ29vZCB0ZXN0 Y2FzZSBmb3IgdGhpcyBpcyBtYi1pbmxpbmUuZXhwLgorIAorLSAgIExPV1BDIGlzIHRoZSBsb3dl c3QgYWRkcmVzcyBpbiBDVSAob3IgMCBpZiBub3Qga25vd24pLiAgKi8KKysgICBMT1dQQyBpcyB0 aGUgbG93ZXN0IGFkZHJlc3MgaW4gQ1UgKG9yIDAgaWYgbm90IGtub3duKS4KICsKICsgICBCb29s ZWFuIERFQ09ERV9NQVBQSU5HIHNwZWNpZmllcyB3ZSBuZWVkIHRvIGZ1bGx5IGRlY29kZSAuZGVi dWdfbGluZQogKyAgIGZvciBpdHMgUEM8LT5saW5lcyBtYXBwaW5nIGluZm9ybWF0aW9uLiAgT3Ro ZXJ3aXNlIG9ubHkgZmlsZW5hbWVzCkBAIC0zMzUsMTUgKzMzNSwxNSBAQCBJbmRleDogZ2RiLTcu OC9nZGIvZHdhcmYycmVhZC5jCiAgc3RhdGljIHZvaWQKICBkd2FyZl9kZWNvZGVfbGluZXMgKHN0 cnVjdCBsaW5lX2hlYWRlciAqbGgsIGNvbnN0IGNoYXIgKmNvbXBfZGlyLAogIAkJICAgIHN0cnVj dCBkd2FyZjJfY3UgKmN1LCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCwKLS0JCSAgICBpbnQg d2FudF9saW5lX2luZm8pCi0rCQkgICAgaW50IHdhbnRfbGluZV9pbmZvLCBpbnQgZGVjb2RlX21h cHBpbmcpCistCQkgICAgQ09SRV9BRERSIGxvd3BjKQorKwkJICAgIENPUkVfQUREUiBsb3dwYywg aW50IGRlY29kZV9tYXBwaW5nKQogIHsKICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlID0gY3Ut Pm9iamZpbGU7CiAgICBjb25zdCBpbnQgZGVjb2RlX2Zvcl9wc3RfcCA9IChwc3QgIT0gTlVMTCk7 Ci0gICBzdHJ1Y3Qgc3ViZmlsZSAqZmlyc3Rfc3ViZmlsZSA9IGN1cnJlbnRfc3ViZmlsZTsKICAK LS0gIGlmICh3YW50X2xpbmVfaW5mbykKLSsgIGlmICh3YW50X2xpbmVfaW5mbyAmJiBkZWNvZGVf bWFwcGluZykKLSAgICAgZHdhcmZfZGVjb2RlX2xpbmVzXzEgKGxoLCBjb21wX2RpciwgY3UsIHBz dCk7CistICBkd2FyZl9kZWNvZGVfbGluZXNfMSAobGgsIGN1LCBkZWNvZGVfZm9yX3BzdF9wLCBs b3dwYyk7CisrICBpZiAoZGVjb2RlX21hcHBpbmcpCisrICAgIGR3YXJmX2RlY29kZV9saW5lc18x IChsaCwgY3UsIGRlY29kZV9mb3JfcHN0X3AsIGxvd3BjKTsKICAKICAgIGlmIChkZWNvZGVfZm9y X3BzdF9wKQorICAgICB7CgpkaWZmIC0tZ2l0IGEvZ2RiLXN0YWxlLWZyYW1lX2luZm8ucGF0Y2gg Yi9nZGItc3RhbGUtZnJhbWVfaW5mby5wYXRjaAppbmRleCA1OWY4ZWExLi5iYzQyZTY4IDEwMDY0 NAotLS0gYS9nZGItc3RhbGUtZnJhbWVfaW5mby5wYXRjaAorKysgYi9nZGItc3RhbGUtZnJhbWVf aW5mby5wYXRjaApAQCAtNDUsNyArNDUsNyBAQCBnZGIvCiAtICBpbmYgPSBmaW5kX2luZmVyaW9y X2Zvcl9wcm9ncmFtX3NwYWNlIChwc3BhY2UpOwogKyAgaWYgKGluZi0+cHNwYWNlICE9IHBzcGFj ZSkKICsgICAgaW5mID0gZmluZF9pbmZlcmlvcl9mb3JfcHJvZ3JhbV9zcGFjZSAocHNwYWNlKTsK LSAgIGlmIChpbmYgIT0gTlVMTCkKKyAgIGlmIChpbmYgIT0gTlVMTCAmJiBpbmYtPnBpZCAhPSAw KQogICAgICB7CiAtICAgICAgc3RydWN0IHRocmVhZF9pbmZvICp0cDsKICsgICAgICBzdHJ1Y3Qg dGhyZWFkX2luZm8gKnRwLCAqY3VycmVudF90cCA9IE5VTEw7CgpkaWZmIC0tZ2l0IGEvZ2RiLXN5 bWJvbHMtbG9va3VwLWFjY2VsLnBhdGNoIGIvZ2RiLXN5bWJvbHMtbG9va3VwLWFjY2VsLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTAxZDA3Li4wMDAwMDAwCi0tLSBhL2dk Yi1zeW1ib2xzLWxvb2t1cC1hY2NlbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5MSArMCww IEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNC0xMC9tc2cwMDUy NC5odG1sCi1TdWJqZWN0OiBbcGF0Y2ggMS8yXSBBY2NlbGVyYXRlIGl0ZXJfbWF0Y2hfZmlyc3Rf aGFzaGVkIDEuOHgKLQotCi0tLTE3cEVIZDRSaFBIT2luWnAKLUNvbnRlbnQtVHlwZTogdGV4dC9w bGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCi0KLUhp LAotCi12ZXJ5IHNpbXBsZSBjYWNoaW5nLiAgZGljdF9oYXNoKCkgaXMgYmVpbmcgY2FsbGVkIGFn YWluIGFuZCBhZ2FpbiBmb3IgdGhlIHNhbWUKLXN0cmluZy4KLQotIzAgIGluIHNraXBfc3BhY2Vz X2NvbnN0IChjaHA9MHg3ZmZmYjEwZjliYjYgInRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFy PiA+OjpucG9zIikgYXQgLi9jbGkvY2xpLXV0aWxzLmM6MjQ0Ci0jMSAgaW4gbXN5bWJvbF9oYXNo X2l3IChzdHJpbmc9MHg3ZmZmYjEwZjliYjYgInRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFy PiA+OjpucG9zIikgYXQgbWluc3ltcy5jOjg5Ci0jMiAgaW4gZGljdF9oYXNoICggc3RyaW5nMD0w eDdmZmZiMTBmOWI5MCAic3RkOjpiYXNpY19zdHJpbmc8Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxj aGFyPiwgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6bnBvcyIpIGF0IGRpY3Rpb25hcnkuYzo4NDAK LSMzICBpbiBpdGVyX21hdGNoX2ZpcnN0X2hhc2hlZCAoZGljdD0weDEwNWE3ODQwLCBuYW1lPTB4 N2ZmZmIxMGY5YjkwICJzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNo YXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpucG9zIiwgY29tcGFyZT0weDhiODJmOCA8c3Ry Y21wX2l3PiwgaXRlcmF0b3I9MHg3ZmZmYjEwZjk5NzApIGF0IGRpY3Rpb25hcnkuYzo2NTkKLSM0 ICBpbiBkaWN0X2l0ZXJfbWF0Y2hfZmlyc3QgKGRpY3Q9MHgxMDVhNzg0MCwgbmFtZT0weDdmZmZi MTBmOWI5MCAic3RkOjpiYXNpY19zdHJpbmc8Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiwg c3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6bnBvcyIsIGNvbXBhcmU9MHg4YjgyZjggPHN0cmNtcF9p dz4sIGl0ZXJhdG9yPTB4N2ZmZmIxMGY5OTcwKSBhdCBkaWN0aW9uYXJ5LmM6NTU1Ci0jNSAgaW4g ZGljdF9pdGVyX25hbWVfZmlyc3QgKGRpY3Q9MHgxMDVhNzg0MCwgbmFtZT0weDdmZmZiMTBmOWI5 MCAic3RkOjpiYXNpY19zdHJpbmc8Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiwgc3RkOjph bGxvY2F0b3I8Y2hhcj4gPjo6bnBvcyIsIGl0ZXJhdG9yPTB4N2ZmZmIxMGY5OTcwKSBhdCBkaWN0 aW9uYXJ5LmM6NTQxCi0jNiAgaW4gYmxvY2tfaXRlcl9uYW1lX3N0ZXAgKGl0ZXJhdG9yPTB4N2Zm ZmIxMGY5OTYwLCBuYW1lPTB4N2ZmZmIxMGY5YjkwICJzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBz dGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpucG9zIiwgZmly c3Q9MSkgYXQgYmxvY2suYzo1ODAKLSM3ICBpbiBibG9ja19pdGVyX25hbWVfZmlyc3QgKGJsb2Nr PTB4MTA1OTNlMTAsIG5hbWU9MHg3ZmZmYjEwZjliOTAgInN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIs IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Om5wb3MiLCBp dGVyYXRvcj0weDdmZmZiMTBmOTk2MCkgYXQgYmxvY2suYzo2MDkKLSM4ICBpbiBsb29rdXBfYmxv Y2tfc3ltYm9sIChibG9jaz0weDEwNTkzZTEwLCBuYW1lPTB4N2ZmZmIxMGY5YjkwICJzdGQ6OmJh c2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxj aGFyPiA+OjpucG9zIiwgZG9tYWluPVZBUl9ET01BSU4pIGF0IHN5bXRhYi5jOjIwNjIKLSM5ICBp biBsb29rdXBfc3ltYm9sX2F1eF9vYmpmaWxlIChvYmpmaWxlPTB4NDY2Zjg3MCwgYmxvY2tfaW5k ZXg9MCwgbmFtZT0weDdmZmZiMTBmOWI5MCAic3RkOjpiYXNpY19zdHJpbmc8Y2hhciwgc3RkOjpj aGFyX3RyYWl0czxjaGFyPiwgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6bnBvcyIsIGRvbWFpbj1W QVJfRE9NQUlOKSBhdCBzeW10YWIuYzoxNjY0Ci0jMTAgaW4gbG9va3VwX3N5bWJvbF9nbG9iYWxf aXRlcmF0b3JfY2IgKG9iamZpbGU9MHg0NjZmODcwLCBjYl9kYXRhPTB4N2ZmZmIxMGY5YWQwKSBh dCBzeW10YWIuYzoxODY4Ci0KLQotTWF5YmUgaXQgY291bGQgZ2V0IGNhY2hlZCBhdCB0aGUgY2Fs bGVyIGJ1dDoKLSAqIFdlIHdvdWxkIG5lZWQgdG8gcGFzcyB0aGUgaGFzaCB2YWx1ZSBhbG9uZyB0 aGUgd2hvbGUge2RpY3QsYmxvY2t9X2l0ZXJfKgotICAgY2FsbCBjaGFpbi4KLSAqIFRoZSBESUNU X1ZFQ1RPUiB2aXJ0dWFsaXphdGlvbiB3b3VsZCBnZXQgdmlvbGF0ZWQgYXMgZGljdF9saW5lYXIq X3ZlY3RvciBkbwotICAgbm90IHVzZSBhbnkgaGFzaCB2YWx1ZXMuCi0KLQotSmFuCi0KLS0tMTdw RUhkNFJoUEhPaW5acAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lp Ci1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPSJpZHhjYWNoZTEucGF0Y2gi Ci0KLWdkYi8KLTIwMTQtMTAtMjAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KLQotCSogZGljdGlvbmFyeS5jIChpdGVyX21hdGNoX2ZpcnN0X2hhc2hlZCk6IFBy b3ZpZGUgc3RhdGUgY2FjaGUgZm9yCi0JaGFzaF9pbmRleCBmcm9tIE5BTUUuCi0KLWRpZmYgLS1n aXQgYS9nZGIvZGljdGlvbmFyeS5jIGIvZ2RiL2RpY3Rpb25hcnkuYwotaW5kZXggMDU1Yzg3ZS4u OTBiY2Q2ZCAxMDA2NDQKLS0tLSBhL2dkYi9kaWN0aW9uYXJ5LmMKLSsrKyBiL2dkYi9kaWN0aW9u YXJ5LmMKLUBAIC02NTYsOSArNjU2LDI2IEBAIGl0ZXJfbWF0Y2hfZmlyc3RfaGFzaGVkIChjb25z dCBzdHJ1Y3QgZGljdGlvbmFyeSAqZGljdCwgY29uc3QgY2hhciAqbmFtZSwKLSAJCQkgc3ltYm9s X2NvbXBhcmVfZnR5cGUgKmNvbXBhcmUsCi0gCQkJIHN0cnVjdCBkaWN0X2l0ZXJhdG9yICppdGVy YXRvcikKLSB7Ci0tICB1bnNpZ25lZCBpbnQgaGFzaF9pbmRleCA9IGRpY3RfaGFzaCAobmFtZSkg JSBESUNUX0hBU0hFRF9OQlVDS0VUUyAoZGljdCk7Ci0rICB1bnNpZ25lZCBpbnQgaGFzaF9pbmRl eDsKLSAgIHN0cnVjdCBzeW1ib2wgKnN5bTsKLSAKLSsgIC8qIENhY2hlIEhBU0hfSU5ERVguICAq LwotKyAgewotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqbmFtZV9wdHJfY2FjaGVkOwotKyAgICBz dGF0aWMgY2hhciAqbmFtZV9jb250ZW50X2NhY2hlZDsKLSsgICAgc3RhdGljIHVuc2lnbmVkIGlu dCBkaWN0X2hhc2hfY2FjaGVkOwotKwotKyAgICBpZiAobmFtZV9wdHJfY2FjaGVkICE9IG5hbWUg fHwgc3RyY21wIChuYW1lX2NvbnRlbnRfY2FjaGVkLCBuYW1lKSAhPSAwKQotKyAgICAgIHsKLSsJ ZGljdF9oYXNoX2NhY2hlZCA9IGRpY3RfaGFzaCAobmFtZSk7Ci0rCW5hbWVfcHRyX2NhY2hlZCA9 IG5hbWU7Ci0rCXhmcmVlIChuYW1lX2NvbnRlbnRfY2FjaGVkKTsKLSsJbmFtZV9jb250ZW50X2Nh Y2hlZCA9IHhzdHJkdXAgKG5hbWUpOwotKyAgICAgIH0KLSsgICAgaGFzaF9pbmRleCA9IGRpY3Rf aGFzaF9jYWNoZWQ7Ci0rICB9Ci0rICBoYXNoX2luZGV4ICU9IERJQ1RfSEFTSEVEX05CVUNLRVRT IChkaWN0KTsKLSsKLSAgIERJQ1RfSVRFUkFUT1JfRElDVCAoaXRlcmF0b3IpID0gZGljdDsKLSAK LSAgIC8qIExvb3AgdGhyb3VnaCB0aGUgc3ltYm9scyBpbiB0aGUgZ2l2ZW4gYnVja2V0LCBicmVh a2luZyB3aGVuIFNZTQotCi0tLTE3cEVIZDRSaFBIT2luWnAtLQotCi0KLQotaHR0cDovL3NvdXJj ZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMTAvbXNnMDA2MTIuaHRtbAotU3ViamVjdDog W3BhdGNodjIgMi8yXSBBY2NlbGVyYXRlIGxvb2t1cF9zeW1ib2xfYXV4X29iamZpbGUgMTQuNXgg IFtSZTogW3BhdGNoIDAvMl0gQWNjZWxlcmF0ZSBzeW1ib2wgbG9va3VwcyAxNXhdCi0KLQotLS12 dHpHaHZpemJCUlE4NURMCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNj aWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQotCi1PbiBXZWQsIDIyIE9jdCAyMDE0IDEw OjU1OjE4ICswMjAwLCBEb3VnIEV2YW5zIHdyb3RlOgotPiBGb3IgZXhhbXBsZSwgdGhlIGNvdW50 IG9mIGNhbGxzIHRvIGRpY3RfaGFzaCBiZWZvcmUvYWZ0ZXIgZ29lcyBmcm9tIDEzLjhNIHRvIDMx LgotPiBJJ20gZ3Vlc3Npbmcgb25lIHQgaGluZyB3ZSdyZSBkb2luZyBoZXJlIGlzIGNvcGluZyB3 aXRoIGFuIGFydGlmYWN0IG9mCi0+IGR3ejoKLQotRHVyaW5nIG15IHNpbXBsZSB0ZXN0IG9uIG5v bi1EV1ogZmlsZSAoLi9nZGIgaXRzZWxmKSBpdCB3ZW50IDM2ODQtPjM0ODQuCi0KLVRoZSBwcm9i bGVtIGlzIHRoYXQgZGljdF9jYXNoKHZhbCkgaXMgY2FsbGVkIGZvciB0aGUgc2FtZSB2YWwgZm9y IGVhY2ggYmxvY2sKLSg9PSBzeW10YWIpLgotCi1PbiBEV1ogdGhlIHNhdmluZyBpcyBwcm9iYWJs eSBtdWNoIGxhcmdlciBhcyB0aGVyZSBhcmUgbWFueSBtb3JlIHN5bXRhYnMgZHVlCi10byBEV19U QUdfcGFydGlhbF91bml0IG9uZXMuCi0KLQotPiB3aGF0IHdhcyBvbmNlIG9uZSBnbG9iYWwgYmxv Y2sgdG8gcmVwcmVzZW50IHRoZSBlbnRpcmUgb2JqZmlsZSBpcwotPiBub3cgTi4KLQotV2l0aG91 dCBEV1ogdGhlcmUgYXJlIFggZ2xvYmFsIGJsb2NrcyBmb3IgWCBwcmltYXJ5IHN5bXRhYnMgZm9y IFggQ1VzIG9mCi1vYmpmaWxlLiAgV2l0aCBEV1ogdGhlcmUgYXJlIFgrWSBnbG9iYWwgYmxvY2tz IGZvciBYK1kgcHJpbWFyeSBzeW10YWJzIGZvcgotWCtZIENVcyB3aGVyZSBZIGFyZSAnRFdfVEFH X3BhcnRpYWxfdW5pdCdzLgotCi1Gb3IgJ0RXX1RBR19wYXJ0aWFsX3VuaXQncyAoWXMpIHRoZWly IGJsb2NrdmVjdG9yIGlzIHVzdWFsbHkgZW1wdHkuICBCdXQgbm90Ci1hbHdheXMsIEkgaGF2ZSBm b3VuZCB0aGVyZSB0eXBlZGVmIHN5bWJvbHMsIHRoZXJlIGNhbiBJTU8gYmUgb3B0aW1pemVkLW91 dAotc3RhdGljIHZhcmlhYmxlcyBldGMuCi0KLQotPiBbSSdtIHN1cmUgdGhlIHBhdGNoZXMgaGVs cCBpbiB0aGUgbm9uLWR3eiBjYXNlLCBidXQgSSBzdXNwZWN0IGl0J3MgbGVzcy4KLT4gV2hpY2gg aXNuJ3QgdG8gc2F5IHRoZSBwYXRjaGVzIGFyZW4ndCB1c2VmdWwuCi0+IEkganVzdCBuZWVkIHBs YXkgd2l0aCBhIGZldyBtb3JlIGV4YW1wbGVzLl0KLQotSSBhZ3JlZS4KLQotW3BhdGNoIDIvMl0g Y291bGQgbmVlZGxlc3NseSBwZXJmb3JtYW5jZS1yZWdyZXNzIG5vbi1EV1ogY2FzZXMsIHRoZXJl Zm9yZQotSSBoYXZlIHB1dCBiYWNrIG9yaWdpbmFsIEFMTF9PQkpGSUxFX1BSSU1BUllfU1lNVEFC UyAoaW5zdGVhZCBvZiBteQotQUxMX09CSkZJTEVfU1lNVEFCUykgYXMgaXQgaXMgcGVyZmVjdGx5 IHN1ZmZpY2llbnQuICBGb3IgdGhlIHBlcmZvcm1hbmNlCi10ZXN0Y2FzZSBvZiBtaW5lOgotCi1C ZW5jaG1hcmsgb24gbm9uLXRyaXZpYWwgYXBwbGljYXRpb24gd2l0aCAgICAncCA8dGFiPjx0YWI+ JzoKLUNvbW1hbmQgZXhlY3V0aW9uIHRpbWU6ICAgNC4yMTUwMDAgKGNwdSksICAgNC4yNDE0NjYg KHdhbGwpIC0tLSBib3RoIGZpeGVzIHdpdGggbmV3IFtwYXRjaCAyLzJdCi1Db21tYW5kIGV4ZWN1 dGlvbiB0aW1lOiAgIDcuMzczMDAwIChjcHUpLCAgIDcuMzk1MDk1ICh3YWxsKSAtLS0gYm90aCBm aXhlcwotQ29tbWFuZCBleGVjdXRpb24gdGltZTogIDEzLjU3MjAwMCAoY3B1KSwgIDEzLjU5MjY4 OSAod2FsbCkgLS0tIGp1c3QgbG9va3VwX3N5bWJvbF9hdXhfb2JqZmlsZSBmaXgKLUNvbW1hbmQg ZXhlY3V0aW9uIHRpbWU6IDExMy4wMzYwMDAgKGNwdSksIDExMy4wNjc5OTUgKHdhbGwpIC0tLSBG U0YgR0RCIEhFQUQKLQotVGhhdCBpcyBhZGRpdGlvbmFsIDEuNzV4IGltcHJvdmVtZW50LCBtYWtp bmcgdGhlIHRvdGFsIGltcHJvdmVtZW50IDI2Ljh4LgotCi0KLU5vIHJlZ3Jlc3Npb25zIG9uIHt4 ODZfNjQseDg2XzY0LW0zMixpNjg2fS1mZWRvcmEyMXByZS1saW51eC1nbnUgaW4gc3RhbmRhcmQK LWFuZCAuZ2RiX2luZGV4LWVuYWJsZWQgcnVucy4gIE5laXRoZXIgb2YgdGhlIHBhdGNoZXMgc2hv dWxkIGNhdXNlIGFueSB2aXNpYmxlCi1iZWhhdmlvciBjaGFuZ2UuCi0KLQotVGhhbmtzLAotSmFu Ci0KLS0tdnR6R2h2aXpiQlJRODVETAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPSJpZHhjYWNo ZTJkb3VnLnBhdGNoIgotCi1nZGIvCi0yMDE0LTEwLTIzICBKYW4gS3JhdG9jaHZpbCAgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIHN5bXRhYi5jIChsb29rdXBfc3ltYm9sX2F1eF9v YmpmaWxlKTogVXNlIEFMTF9PQkpGSUxFX1NZTVRBQlMsIGlubGluZQotCWxvb2t1cF9ibG9ja19z eW1ib2wuCi0KLWRpZmYgLS1naXQgYS9nZGIvc3ltdGFiLmMgYi9nZGIvc3ltdGFiLmMKLWluZGV4 IGM1MzBkNTAuLmRhMTM4NjEgMTAwNjQ0Ci0tLS0gYS9nZGIvc3ltdGFiLmMKLSsrKyBiL2dkYi9z eW10YWIuYwotQEAgLTE2NTcsMTUgKzE2NTcsMjUgQEAgbG9va3VwX3N5bWJvbF9hdXhfb2JqZmls ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGludCBibG9ja19pbmRleCwKLSAgIGNvbnN0IHN0 cnVjdCBibG9jayAqYmxvY2s7Ci0gICBzdHJ1Y3Qgc3ltdGFiICpzOwotIAotKyAgZ2RiX2Fzc2Vy dCAoYmxvY2tfaW5kZXggPT0gR0xPQkFMX0JMT0NLIHx8IGJsb2NrX2luZGV4ID09IFNUQVRJQ19C TE9DSyk7Ci0rCi0gICBBTExfT0JKRklMRV9QUklNQVJZX1NZTVRBQlMgKG9iamZpbGUsIHMpCi0g ICAgIHsKLSsgICAgICBzdHJ1Y3QgZGljdF9pdGVyYXRvciBkaWN0X2l0ZXI7Ci0rCi0gICAgICAg YnYgPSBCTE9DS1ZFQ1RPUiAocyk7Ci0gICAgICAgYmxvY2sgPSBCTE9DS1ZFQ1RPUl9CTE9DSyAo YnYsIGJsb2NrX2luZGV4KTsKLS0gICAgICBzeW0gPSBsb29rdXBfYmxvY2tfc3ltYm9sIChibG9j aywgbmFtZSwgZG9tYWluKTsKLS0gICAgICBpZiAoc3ltKQotKwotKyAgICAgIGZvciAoc3ltID0g ZGljdF9pdGVyX25hbWVfZmlyc3QgKGJsb2NrLT5kaWN0LCBuYW1lLCAmZGljdF9pdGVyKTsKLSsJ ICAgc3ltICE9IE5VTEw7Ci0rCSAgIHN5bSA9IGRpY3RfaXRlcl9uYW1lX25leHQgKG5hbWUsICZk aWN0X2l0ZXIpKQotIAl7Ci0tCSAgYmxvY2tfZm91bmQgPSBibG9jazsKLS0JICByZXR1cm4gZml4 dXBfc3ltYm9sX3NlY3Rpb24gKHN5bSwgb2JqZmlsZSk7Ci0rCSAgaWYgKHN5bWJvbF9tYXRjaGVz X2RvbWFpbiAoU1lNQk9MX0xBTkdVQUdFIChzeW0pLAotKwkJCQkgICAgIFNZTUJPTF9ET01BSU4g KHN5bSksIGRvbWFpbikpCi0rCSAgICB7Ci0rCSAgICAgIGJsb2NrX2ZvdW5kID0gYmxvY2s7Ci0r CSAgICAgIHJldHVybiBmaXh1cF9zeW1ib2xfc2VjdGlvbiAoc3ltLCBvYmpmaWxlKTsKLSsJICAg IH0KLSAJfQotICAgICB9Ci0gCi0KLS0tdnR6R2h2aXpiQlJRODVETC0tCi0KCmRpZmYgLS1naXQg YS9nZGItdGVraGV4LXJlZ3Jlc3Npb24tcmV2ZXJ0LnBhdGNoIGIvZ2RiLXRla2hleC1yZWdyZXNz aW9uLXJldmVydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODM3 NzVmCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXRla2hleC1yZWdyZXNzaW9uLXJldmVydC5wYXRj aApAQCAtMCwwICsxLDE1MSBAQAorLVIgZm9yIDg1ODgwMjUwZTU5MWE1MTYyNGQyNGRiNjUzYWFh Y2UwYzVjZTU5NDMKK2h0dHBzOi8vc291cmNld2FyZS5vcmcvZ2l0L2dpdHdlYi5jZ2k/cD1iaW51 dGlscy1nZGIuZ2l0O2E9Y29tbWl0ZGlmZjtoPTg1ODgwMjUwZTU5MWE1MTYyNGQyNGRiNjUzYWFh Y2UwYzVjZTU5NDM7aHA9ZmNlMTBhODQ5NGVmYThmYWVjCisKK1tidWlsZGJvdF0gR0RCIHJlZ3Jl c3Npb24gb24gODU4ODAyNTBlNTkxYTUxNjI0ZDI0ZGI2NTNhYWFjZTBjNWNlNTk0MworaHR0cHM6 Ly9zb3VyY2V3YXJlLm9yZy9tbC9iaW51dGlscy8yMDE1LTAxL21zZzAwMDQ0Lmh0bWwKKworZGlm ZiAtLWdpdCBhL2JmZC9jb2ZmLWk4NjAuYyBiL2JmZC9jb2ZmLWk4NjAuYworaW5kZXggODU3M2E4 ZC4uMjEyMmMwZCAxMDA2NDQKKy0tLSBhL2JmZC9jb2ZmLWk4NjAuYworKysrIGIvYmZkL2NvZmYt aTg2MC5jCitAQCAtNDY3LDEwICs0NjcsNyBAQCBzdGF0aWMgcmVsb2NfaG93dG9fdHlwZSBob3d0 b190YWJsZVtdID0KKyAgICBGSVhNRTogVGhpcyBtYWNybyByZWZlcnMgdG8gc3ltYm9scyBhbmQg YXNlY3Q7IHRoZXNlIGFyZSBmcm9tIHRoZQorICAgIGNhbGxpbmcgZnVuY3Rpb24sIG5vdCB0aGUg bWFjcm8gYXJndW1lbnRzLiAgKi8KKyAKKy0vKiBQUiAxNzUxMjogZmlsZTogMGEzOGZiN2MKKy0g ICBTZXQgYW4gYWRkZW5kIHZhbHVlLCBldmVuIGlmIGl0IGlzIG5vdCBnb2luZyB0byBiZSB1c2Vk LiAgQSB0b29sCistICAgbGlrZSBjb2ZmZHVtcCBtaWdodCBiZSB1c2VkIHRvIHByaW50IG91dCB0 aGUgY29udGVudHMgb2YgdGhlIHJlbG9jLiAgKi8KKy0jZGVmaW5lIENBTENfQURERU5EKGFiZmQs IHB0ciwgcmVsb2MsIGNhY2hlX3B0cikgKGNhY2hlX3B0ciktPmFkZGVuZCA9IDAKKysjZGVmaW5l IENBTENfQURERU5EKGFiZmQsIHB0ciwgcmVsb2MsIGNhY2hlX3B0cikKKyAKKyAvKiBXZSB1c2Ug dGhlIHNwZWNpYWwgQ09GRiBiYWNrZW5kIGxpbmtlci4gICovCisgI2RlZmluZSBjb2ZmX3JlbG9j YXRlX3NlY3Rpb24gX2JmZF9jb2ZmX2dlbmVyaWNfcmVsb2NhdGVfc2VjdGlvbgorZGlmZiAtLWdp dCBhL2JmZC90ZWtoZXguYyBiL2JmZC90ZWtoZXguYworaW5kZXggOTQ0NDExNy4uOTY5YjgxMiAx MDA2NDQKKy0tLSBhL2JmZC90ZWtoZXguYworKysrIGIvYmZkL3Rla2hleC5jCitAQCAtMjY3LDcg KzI2Nyw3IEBAIHR5cGVkZWYgc3RydWN0IHRla2hleF9kYXRhX3N0cnVjdAorICNkZWZpbmUgZW5k YSh4KSAoeC0+dm1hICsgeC0+c2l6ZSkKKyAKKyBzdGF0aWMgYmZkX2Jvb2xlYW4KKy1nZXR2YWx1 ZSAoY2hhciAqKnNyY3AsIGJmZF92bWEgKnZhbHVlcCwgY2hhciAqIGVuZHApCisrZ2V0dmFsdWUg KGNoYXIgKipzcmNwLCBiZmRfdm1hICp2YWx1ZXApCisgeworICAgY2hhciAqc3JjID0gKnNyY3A7 CisgICBiZmRfdm1hIHZhbHVlID0gMDsKK0BAIC0yNzksNyArMjc5LDcgQEAgZ2V0dmFsdWUgKGNo YXIgKipzcmNwLCBiZmRfdm1hICp2YWx1ZXAsIGNoYXIgKiBlbmRwKQorICAgbGVuID0gaGV4X3Zh bHVlICgqc3JjKyspOworICAgaWYgKGxlbiA9PSAwKQorICAgICBsZW4gPSAxNjsKKy0gIHdoaWxl IChsZW4tLSAmJiBzcmMgPCBlbmRwKQorKyAgd2hpbGUgKGxlbi0tKQorICAgICB7CisgICAgICAg aWYgKCFJU0hFWCAoKnNyYykpCisgCXJldHVybiBGQUxTRTsKK0BAIC0yODgsMTEgKzI4OCwxMSBA QCBnZXR2YWx1ZSAoY2hhciAqKnNyY3AsIGJmZF92bWEgKnZhbHVlcCwgY2hhciAqIGVuZHApCisg CisgICAqc3JjcCA9IHNyYzsKKyAgICp2YWx1ZXAgPSB2YWx1ZTsKKy0gIHJldHVybiBsZW4gPT0g MDsKKysgIHJldHVybiBUUlVFOworIH0KKyAKKyBzdGF0aWMgYmZkX2Jvb2xlYW4KKy1nZXRzeW0g KGNoYXIgKmRzdHAsIGNoYXIgKipzcmNwLCB1bnNpZ25lZCBpbnQgKmxlbnAsIGNoYXIgKiBlbmRw KQorK2dldHN5bSAoY2hhciAqZHN0cCwgY2hhciAqKnNyY3AsIHVuc2lnbmVkIGludCAqbGVucCkK KyB7CisgICBjaGFyICpzcmMgPSAqc3JjcDsKKyAgIHVuc2lnbmVkIGludCBpOworQEAgLTMwNCw3 ICszMDQsNyBAQCBnZXRzeW0gKGNoYXIgKmRzdHAsIGNoYXIgKipzcmNwLCB1bnNpZ25lZCBpbnQg KmxlbnAsIGNoYXIgKiBlbmRwKQorICAgbGVuID0gaGV4X3ZhbHVlICgqc3JjKyspOworICAgaWYg KGxlbiA9PSAwKQorICAgICBsZW4gPSAxNjsKKy0gIGZvciAoaSA9IDA7IGkgPCBsZW4gJiYgc3Jj IDwgZW5kcDsgaSsrKQorKyAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQorICAgICBkc3RwW2ld ID0gc3JjW2ldOworICAgZHN0cFtpXSA9IDA7CisgICAqc3JjcCA9IHNyYyArIGk7CitAQCAtMzU0 LDcgKzM1NCw3IEBAIGluc2VydF9ieXRlIChiZmQgKmFiZmQsIGludCB2YWx1ZSwgYmZkX3ZtYSBh ZGRyKQorICAgaG93IGJpZyB0aGUgZGF0YSBpcy4gICovCisgCisgc3RhdGljIGJmZF9ib29sZWFu CistZmlyc3RfcGhhc2UgKGJmZCAqYWJmZCwgaW50IHR5cGUsIGNoYXIgKnNyYywgY2hhciAqIHNy Y19lbmQpCisrZmlyc3RfcGhhc2UgKGJmZCAqYWJmZCwgaW50IHR5cGUsIGNoYXIgKnNyYykKKyB7 CisgICBhc2VjdGlvbiAqc2VjdGlvbiwgKmFsdF9zZWN0aW9uOworICAgdW5zaWduZWQgaW50IGxl bjsKK0BAIC0zNjgsMjEgKzM2OCwyMSBAQCBmaXJzdF9waGFzZSAoYmZkICphYmZkLCBpbnQgdHlw ZSwgY2hhciAqc3JjLCBjaGFyICogc3JjX2VuZCkKKyAgICAgICB7CisgCWJmZF92bWEgYWRkcjsK KyAKKy0JaWYgKCFnZXR2YWx1ZSAoJnNyYywgJmFkZHIsIHNyY19lbmQpKQorKwlpZiAoIWdldHZh bHVlICgmc3JjLCAmYWRkcikpCisgCSAgcmV0dXJuIEZBTFNFOworIAorLQl3aGlsZSAoKnNyYyAm JiBzcmMgPCBzcmNfZW5kIC0gMSkKKysJd2hpbGUgKCpzcmMpCisgCSAgeworIAkgICAgaW5zZXJ0 X2J5dGUgKGFiZmQsIEhFWCAoc3JjKSwgYWRkcik7CisgCSAgICBzcmMgKz0gMjsKKyAJICAgIGFk ZHIrKzsKKyAJICB9CistCXJldHVybiBUUlVFOworICAgICAgIH0KKyAKKysgICAgICByZXR1cm4g VFJVRTsKKyAgICAgY2FzZSAnMyc6CisgICAgICAgLyogU3ltYm9sIHJlY29yZCwgcmVhZCB0aGUg c2VnbWVudC4gICovCistICAgICAgaWYgKCFnZXRzeW0gKHN5bSwgJnNyYywgJmxlbiwgc3JjX2Vu ZCkpCisrICAgICAgaWYgKCFnZXRzeW0gKHN5bSwgJnNyYywgJmxlbikpCisgCXJldHVybiBGQUxT RTsKKyAgICAgICBzZWN0aW9uID0gYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKGFiZmQsIHN5bSk7 CisgICAgICAgaWYgKHNlY3Rpb24gPT0gTlVMTCkKK0BAIC00MDMsOSArNDAzLDkgQEAgZmlyc3Rf cGhhc2UgKGJmZCAqYWJmZCwgaW50IHR5cGUsIGNoYXIgKnNyYywgY2hhciAqIHNyY19lbmQpCisg CSAgICB7CisgCSAgICBjYXNlICcxJzoJCS8qIFNlY3Rpb24gcmFuZ2UuICAqLworIAkgICAgICBz cmMrKzsKKy0JICAgICAgaWYgKCFnZXR2YWx1ZSAoJnNyYywgJnNlY3Rpb24tPnZtYSwgc3JjX2Vu ZCkpCisrCSAgICAgIGlmICghZ2V0dmFsdWUgKCZzcmMsICZzZWN0aW9uLT52bWEpKQorIAkJcmV0 dXJuIEZBTFNFOworLQkgICAgICBpZiAoIWdldHZhbHVlICgmc3JjLCAmdmFsLCBzcmNfZW5kKSkK KysJICAgICAgaWYgKCFnZXR2YWx1ZSAoJnNyYywgJnZhbCkpCisgCQlyZXR1cm4gRkFMU0U7Cisg CSAgICAgIHNlY3Rpb24tPnNpemUgPSB2YWwgLSBzZWN0aW9uLT52bWE7CisgCSAgICAgIHNlY3Rp b24tPmZsYWdzID0gU0VDX0hBU19DT05URU5UUyB8IFNFQ19MT0FEIHwgU0VDX0FMTE9DOworQEAg LTQzMiw3ICs0MzIsNyBAQCBmaXJzdF9waGFzZSAoYmZkICphYmZkLCBpbnQgdHlwZSwgY2hhciAq c3JjLCBjaGFyICogc3JjX2VuZCkKKyAJCWFiZmQtPmZsYWdzIHw9IEhBU19TWU1TOworIAkJbmV3 X3N5bWJvbC0+cHJldiA9IGFiZmQtPnRkYXRhLnRla2hleF9kYXRhLT5zeW1ib2xzOworIAkJYWJm ZC0+dGRhdGEudGVraGV4X2RhdGEtPnN5bWJvbHMgPSBuZXdfc3ltYm9sOworLQkJaWYgKCFnZXRz eW0gKHN5bSwgJnNyYywgJmxlbiwgc3JjX2VuZCkpCisrCQlpZiAoIWdldHN5bSAoc3ltLCAmc3Jj LCAmbGVuKSkKKyAJCSAgcmV0dXJuIEZBTFNFOworIAkJbmV3X3N5bWJvbC0+c3ltYm9sLm5hbWUg PSAoY29uc3QgY2hhciAqKQorICAgICAgICAgICAgICAgICAgICAgYmZkX2FsbG9jIChhYmZkLCAo YmZkX3NpemVfdHlwZSkgbGVuICsgMSk7CitAQCAtNDgwLDcgKzQ4MCw3IEBAIGZpcnN0X3BoYXNl IChiZmQgKmFiZmQsIGludCB0eXBlLCBjaGFyICpzcmMsIGNoYXIgKiBzcmNfZW5kKQorIAkJCW5l d19zeW1ib2wtPnN5bWJvbC5zZWN0aW9uID0gYWx0X3NlY3Rpb247CisgCQkgICAgICB9CisgCQkg IH0KKy0JCWlmICghZ2V0dmFsdWUgKCZzcmMsICZ2YWwsIHNyY19lbmQpKQorKwkJaWYgKCFnZXR2 YWx1ZSAoJnNyYywgJnZhbCkpCisgCQkgIHJldHVybiBGQUxTRTsKKyAJCW5ld19zeW1ib2wtPnN5 bWJvbC52YWx1ZSA9IHZhbCAtIHNlY3Rpb24tPnZtYTsKKyAJCWJyZWFrOworQEAgLTQ5OCw3ICs0 OTgsNyBAQCBmaXJzdF9waGFzZSAoYmZkICphYmZkLCBpbnQgdHlwZSwgY2hhciAqc3JjLCBjaGFy ICogc3JjX2VuZCkKKyAgICByZWNvcmQuICAqLworIAorIHN0YXRpYyBiZmRfYm9vbGVhbgorLXBh c3Nfb3ZlciAoYmZkICphYmZkLCBiZmRfYm9vbGVhbiAoKmZ1bmMpIChiZmQgKiwgaW50LCBjaGFy ICosIGNoYXIgKikpCisrcGFzc19vdmVyIChiZmQgKmFiZmQsIGJmZF9ib29sZWFuICgqZnVuYykg KGJmZCAqLCBpbnQsIGNoYXIgKikpCisgeworICAgdW5zaWduZWQgaW50IGNoYXJzX29uX2xpbmU7 CisgICBiZmRfYm9vbGVhbiBpc19lb2YgPSBGQUxTRTsKK0BAIC01MzksNyArNTM5LDggQEAgcGFz c19vdmVyIChiZmQgKmFiZmQsIGJmZF9ib29sZWFuICgqZnVuYykgKGJmZCAqLCBpbnQsIGNoYXIg KiwgY2hhciAqKSkKKyAKKyAgICAgICAvKiBQdXQgYSBudWxsIGF0IHRoZSBlbmQuICAqLworICAg ICAgIHNyY1tjaGFyc19vbl9saW5lXSA9IDA7CistICAgICAgaWYgKCFmdW5jIChhYmZkLCB0eXBl LCBzcmMsIHNyYyArIGNoYXJzX29uX2xpbmUpKQorKworKyAgICAgIGlmICghZnVuYyAoYWJmZCwg dHlwZSwgc3JjKSkKKyAJcmV0dXJuIEZBTFNFOworICAgICB9CisgCgpkaWZmIC0tZ2l0IGEvZ2Ri LXVwc3RyZWFtLnBhdGNoIGIvZ2RiLXVwc3RyZWFtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMjhmZTdhLi4wMDAwMDAwCi0tLSBhL2dkYi11cHN0cmVhbS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIt cGF0Y2hlcy8yMDE0LTA3L21zZzAwMjc0Lmh0bWwKLVN1YmplY3Q6IFtvYnZdIEZpeCBmYWxzZSBh cmd2MC1zeW1saW5rLmV4cCBGQUlMIHJ1bm5pbmcgdW5kZXIgYSB2ZXJ5IGxvbmcgZGlyZWN0b3J5 IG5hbWUKLQotSGksCi0KLWNoZWNrZWQgaW4gYXMgb2J2aW91czoKLQotU3RhcnRpbmcgcHJvZ3Jh bTogL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi10ZXN0LWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9hcmd2MC1zeW1saW5rLWZpbGVsaW5rIF5NCi1bLi4uXQotKGdkYikgcHJpbnQgYXJndlswXV5N Ci0kMSA9IDB4N2ZmZmZmZmZkYTM5ICIvaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLXRlc3QtIiwg J2YnIDxyZXBlYXRzIDE2OSB0aW1lcz4uLi5eTQotKGdkYikgRkFJTDogZ2RiLmJhc2UvYXJndjAt c3ltbGluay5leHA6IGtlcHQgZmlsZSBzeW1ib2xpYyBsaW5rIG5hbWUKLQotYWZ0ZXIgInNldCBw cmludCByZXBlYXRzIDEwMDAwIjoKLQotcHJpbnQgYXJndlswXV5NCi0kMSA9IDB4N2ZmZmZmZmZk YTM5ICIvaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLXRlc3QtZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiIuLi5eTQotKGdkYikgRkFJTDogZ2Ri LmJhc2UvYXJndjAtc3ltbGluay5leHA6IGtlcHQgZmlsZSBzeW1ib2xpYyBsaW5rIG5hbWUKLQot YWZ0ZXIgInNldCBwcmludCBlbGVtZW50cyAxMDAwMCI6Ci0KLXByaW50IGFyZ3ZbMF1eTQotJDEg PSAweDdmZmZmZmZmZGEzOSAiL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi10ZXN0LWZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9hcmd2MC1zeW1saW5rLWZpbGVsaW5rIl5NCi0oZ2RiKSBQQVNTOiBn ZGIuYmFzZS9hcmd2MC1zeW1saW5rLmV4cDoga2VwdCBmaWxlIHN5bWJvbGljIGxpbmsgbmFtZQot Ci1jb21taXQgMjE4YzI2NTU2MDM3NDhiODQ0ZGNhZjEwM2UzNGZkMTRkOGVlOGFlZgotQXV0aG9y OiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLURhdGU6ICAgRnJp IEp1bCAxMSAxNzoyNjo0MiAyMDE0ICswMjAwCi0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L0NoYW5nZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi1pbmRleCA3NGY3YmNlLi4yNTNl ZWViIDEwMDY0NAotIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIyBiL2dkYi90ZXN0 c3VpdGUvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDkgQEAKLSsyMDE0LTA3LTExICBKYW4gS3JhdG9j aHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0rCi0rCUZpeCBmYWxzZSBGQUlMIHJ1 bm5pbmcgdW5kZXIgYSB2ZXJ5IGxvbmcgZGlyZWN0b3J5IG5hbWUuCi0rCSogZ2RiLmJhc2UvYXJn djAtc3ltbGluay5leHA6IEFkZCAic2V0IHByaW50IHJlcGVhdHMgMTAwMDAiCi0rCWFuZCAic2V0 IHByaW50IGVsZW1lbnRzIDEwMDAwIi4gIFR3aWNlLgotKwotIDIwMTQtMDctMTEgIFlhbyBRaSAg PHlhb0Bjb2Rlc291cmNlcnkuY29tPgotIAotIAkqIGdkYi5iYXNlL2V4cHJzLmV4cDogInNldCBw cmludCBzeW1ib2wgb2ZmIi4KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fy Z3YwLXN5bWxpbmsuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcmd2MC1zeW1saW5rLmV4 cAotaW5kZXggMGUwMjAyZC4uZDg0OWI0YyAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXJndjAtc3ltbGluay5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJn djAtc3ltbGluay5leHAKLUBAIC0zNiw2ICszNiw5IEBAIGlmICFbcnVudG9fbWFpbl0gewotICAg ICByZXR1cm4gLTEKLSB9Ci0gCi0rZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcHJpbnQgcmVwZWF0 cyAxMDAwMCIKLStnZGJfdGVzdF9ub19vdXRwdXQgInNldCBwcmludCBlbGVtZW50cyAxMDAwMCIK LSsKLSBnZGJfdGVzdCB7cHJpbnQgYXJndlswXX0gIi8kZmlsZWxpbmtcIiIgJHRlc3QKLSAKLSAj IEZvciBhIGxpbmsgbmFtZWQgL1BBVEgvVE8vRElSL0xJTkssIHdlIHdhbnQgdG8gY2hlY2sgdGhl IG91dHB1dAotQEAgLTY3LDYgKzcwLDkgQEAgaWYgIVtydW50b19tYWluXSB7Ci0gICAgIHJldHVy biAtMQotIH0KLSAKLStnZGJfdGVzdF9ub19vdXRwdXQgInNldCBwcmludCByZXBlYXRzIDEwMDAw IgotK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHByaW50IGVsZW1lbnRzIDEwMDAwIgotKwotICMg Z2Ric2VydmVyIGRvZXMgbm90IGhhdmUgdGhpcyBpc3N1ZS4KLSBpZiAhW2lzX3JlbW90ZSB0YXJn ZXRdIHsKLSAgICAgc2V0dXBfa2ZhaWwgIiotKi0qIiBnZGIvMTU5MzQKCmRpZmYgLS1naXQgYS9n ZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaCBiL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQt Zml4LnBhdGNoCmluZGV4IDkzN2Y4ZmUuLjY3ODUwZjMgMTAwNjQ0Ci0tLSBhL2dkYi12bGEtaW50 ZWwtc3RyaW5nYnQtZml4LnBhdGNoCisrKyBiL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBh dGNoCkBAIC0zMSwxMSArMzEsMTEgQEAgSmFuCiBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNo YXJzZXQ9dXMtYXNjaWkKIENvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9InZs YXN0cmluZ29ubHkucGF0Y2giCiAKLWRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9n ZGJ0eXBlcy5jCi1pbmRleCA1M2NhZTJjLi5jZjdhYzI2IDEwMDY0NAotLS0tIGEvZ2RiL2dkYnR5 cGVzLmMKLSsrKyBiL2dkYi9nZGJ0eXBlcy5jCi1AQCAtMTY1OSw2ICsxNjU5LDcgQEAgaXNfZHlu YW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHRvcF9sZXZlbCkKK0lu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5jCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMDggMTg6MTU6 MTguNDc1NjgyNTIzICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMu YwkyMDE1LTAxLTA4IDE4OjM5OjAxLjQyMzEzNDcwMCArMDEwMAorQEAgLTE2ODQsNiArMTY4NCw3 IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnQKICAgICAgICByZXR1 cm4gIWhhc19zdGF0aWNfcmFuZ2UgKFRZUEVfUkFOR0VfREFUQSAodHlwZSkpOwogIAogICAgICBj YXNlIFRZUEVfQ09ERV9BUlJBWToKQEAgLTQzLDExICs0MywxOCBAQCBpbmRleCA1M2NhZTJjLi5j ZjdhYzI2IDEwMDY0NAogICAgICAgIHsKICAJZ2RiX2Fzc2VydCAoVFlQRV9ORklFTERTICh0eXBl KSA9PSAxKTsKICAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFt aWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFt aWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwLi4yNjFjZTE3Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAKK0BAIC0xOTkyLDYgKzE5OTMsNyBAQCBy ZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5CisgCSAgfQorIAorIAljYXNl IFRZUEVfQ09ERV9BUlJBWToKKysJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgorIAkgIHJlc29sdmVk X3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHR5cGUsIGFkZHIpOworIAkgIGJyZWFrOwor IAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9k eW5hbWljLW90aGVyLWZyYW1lLXN0dWIuZjkwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAJ MjAxNS0wMS0wOCAxODoxNToxOC44OTc2ODQ0MzUgKzAxMDAKIEBAIC0wLDAgKzEsMjQgQEAKICsh IENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTcz LDExICs4MCwxMCBAQCBpbmRleCAwMDAwMDAwLi4yNjFjZTE3CiArICByZWFsIDo6IGR1bW15CiAr ICBkdW1teSA9IDEKICtlbmQgc3Vicm91dGluZSBiYXIKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmV4cAotbmV3IGZpbGUgbW9kZSAxMDA2NDQK LWluZGV4IDAwMDAwMDAuLjU3MGEyOGMKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5leHAKK0luZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5l eHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vZHluYW1pYy1vdGhlci1mcmFtZS5leHAJMjAxNS0wMS0wOCAxODoxNToxOC44OTc2ODQ0MzUg KzAxMDAKIEBAIC0wLDAgKzEsMzkgQEAKICsjIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTE4LDExICsxMjQsMTAgQEAgaW5kZXggMDAwMDAwMC4u NTcwYTI4YwogK30KICsKICtnZGJfdGVzdCAiYnQiIHtmb28gXChzdHJpbmc9J2hlbGxvJy4qfQot ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFt ZS5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZjkw Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMmJjNjM3ZAotLS0tIC9kZXYv bnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1l LmY5MAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9keW5hbWljLW90aGVyLWZyYW1lLmY5MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmY5MAkyMDE1LTAx LTA4IDE4OjE1OjE4Ljg5NzY4NDQzNSArMDEwMAogQEAgLTAsMCArMSwzNiBAQAogKyEgQ29weXJp Z2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTYwLDYgKzE2 NSwzIEBAIGluZGV4IDAwMDAwMDAuLjJiYzYzN2QKICsgIGVuZCBpbnRlcmZhY2UKICsgIGNhbGwg Zm9vICgnaGVsbG8nKQogK2VuZAotCi0tLUZDdXVnTUZrQ2xiSkxsMUwtLQotCgpkaWZmIC0tZ2l0 IGEvZ2RiLXZsYS1pbnRlbC5wYXRjaCBiL2dkYi12bGEtaW50ZWwucGF0Y2gKaW5kZXggN2E4Njc0 Yi4uMTczMDhmNSAxMDA2NDQKLS0tIGEvZ2RiLXZsYS1pbnRlbC5wYXRjaAorKysgYi9nZGItdmxh LWludGVsLnBhdGNoCkBAIC02LDExICs2LDExIEBAIEdJVCBzbmFwc2hvdDoKIGNvbW1pdCA1MTFi ZmY1MjAzNzJmZmMxMGZhMmZmNTY5YzE3NmJkZjFlNmU0NzVkCiAKIAotSW5kZXg6IGdkYi03Ljgu MS9nZGIvYy12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy12YWxw cmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2MtdmFscHJpbnQuYwky MDE0LTEyLTEzIDE1OjUyOjA3LjY5NTMxMDI3NiArMDEwMAotKysrIGdkYi03LjguMS9nZGIvYy12 YWxwcmludC5jCTIwMTQtMTItMTMgMTU6NTI6MTAuODE3MzA3MTM4ICswMTAwCi1AQCAtNTM4LDcg KzUzOCwxNiBAQCBjX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0CistLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo1 MToxNy42NjMyNDA5MDcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jLXZhbHBy aW50LmMJMjAxNS0wMS0wNiAyMzowMzowNy40MjQ2ODQ3NTMgKzAxMDAKK0BAIC01MzcsNyArNTM3 LDE2IEBAIGNfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QKICAJewogIAkg IC8qIG5vcm1hbCBjYXNlICovCiAgCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKCIpOwpA QCAtMjgsMjM0ICsyOCwyNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9jLXZhbHByaW50LmMKICAJ ICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpICIpOwogIAl9CiAgICAgIH0KLUluZGV4OiBn ZGItNy44LjEvZ2RiL2R3YXJmMmV4cHIuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2R3YXJmMmxvYy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2R3YXJmMmV4 cHIuYwkyMDE0LTEyLTEzIDE1OjUyOjA3LjY5NTMxMDI3NiArMDEwMAotKysrIGdkYi03LjguMS9n ZGIvZHdhcmYyZXhwci5jCTIwMTQtMTItMTMgMTU6NTI6MTAuODE3MzA3MTM4ICswMTAwCi1AQCAt MTQ3OCw2ICsxNDc4LDEyIEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2Nv bnQKLSAJICB9Ci0gCSAgYnJlYWs7Ci0gCi0rICAgICAgICBjYXNlIERXX09QX3B1c2hfb2JqZWN0 X2FkZHJlc3M6Ci0rCSAgLyogUmV0dXJuIHRoZSBhZGRyZXNzIG9mIHRoZSBvYmplY3Qgd2UgYXJl IGN1cnJlbnRseSBvYnNlcnZpbmcuICAqLwotKwkgIHJlc3VsdCA9IChjdHgtPmZ1bmNzLT5nZXRf b2JqZWN0X2FkZHJlc3MpIChjdHgtPmJhdG9uKTsKLSsJICByZXN1bHRfdmFsID0gdmFsdWVfZnJv bV91bG9uZ2VzdCAoYWRkcmVzc190eXBlLCByZXN1bHQpOwotKwkgIGJyZWFrOwotKwotIAlkZWZh dWx0OgotIAkgIGVycm9yIChfKCJVbmhhbmRsZWQgZHdhcmYgZXhwcmVzc2lvbiBvcGNvZGUgMHgl eCIpLCBvcCk7Ci0gCX0KLUluZGV4OiBnZGItNy44LjEvZ2RiL2R3YXJmMmV4cHIuaAotPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguMS5vcmlnL2dkYi9kd2FyZjJleHByLmgJMjAxNC0xMi0xMyAxNTo1 MjowNy42OTYzMTAyNzUgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL2R3YXJmMmV4cHIuaAkyMDE0 LTEyLTEzIDE1OjUyOjEwLjgxNzMwNzEzOCArMDEwMAotQEAgLTg0LDEyICs4NCw4IEBAIHN0cnVj dCBkd2FyZl9leHByX2NvbnRleHRfZnVuY3MKLSAgICAgIFRoaXMgY2FuIHRocm93IGFuIGV4Y2Vw dGlvbiBpZiB0aGUgaW5kZXggaXMgb3V0IG9mIHJhbmdlLiAgKi8KLSAgIENPUkVfQUREUiAoKmdl dF9hZGRyX2luZGV4KSAodm9pZCAqYmF0b24sIHVuc2lnbmVkIGludCBpbmRleCk7Ci0gCi0tI2lm IDAKLS0gIC8qIE5vdCB5ZXQgaW1wbGVtZW50ZWQuICAqLwotLQotICAgLyogUmV0dXJuIHRoZSBg b2JqZWN0IGFkZHJlc3MnIGZvciBEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzLiAgKi8KLSAgIENP UkVfQUREUiAoKmdldF9vYmplY3RfYWRkcmVzcykgKHZvaWQgKmJhdG9uKTsKLS0jZW5kaWYKLSB9 OwotIAotIC8qIFRoZSBsb2NhdGlvbiBvZiBhIHZhbHVlLiAgKi8KLUluZGV4OiBnZGItNy44LjEv Z2RiL2R3YXJmMmxvYy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2R3YXJm MmxvYy5jCTIwMTQtMTItMTMgMTU6NTI6MDcuNjk3MzEwMjc0ICswMTAwCi0rKysgZ2RiLTcuOC4x L2dkYi9kd2FyZjJsb2MuYwkyMDE0LTEyLTEzIDE1OjUyOjEwLjgxODMwNzEzNyArMDEwMAotQEAg LTMwNiw2ICszMDYsNyBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbgotIHsKLSAgIHN0cnVjdCBm cmFtZV9pbmZvICpmcmFtZTsKLSAgIHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9jdTsK LSsgIENPUkVfQUREUiBvYmpfYWRkcmVzczsKLSB9OwotIAotIC8qIEhlbHBlciBmdW5jdGlvbnMg Zm9yIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYy4gICovCi1AQCAtMTIwOSw2ICsxMjEwLDcgQEAg ZHdhcmZfZXhwcl9wdXNoX2R3YXJmX3JlZ19lbnRyeV92YWx1ZSAocwotIAotICAgYmF0b25fbG9j YWwuZnJhbWUgPSBjYWxsZXJfZnJhbWU7Ci0gICBiYXRvbl9sb2NhbC5wZXJfY3UgPSBjYWxsZXJf cGVyX2N1OwotKyAgYmF0b25fbG9jYWwub2JqX2FkZHJlc3MgPSAwOwotIAotICAgc2F2ZWRfY3R4 LmdkYmFyY2ggPSBjdHgtPmdkYmFyY2g7Ci0gICBzYXZlZF9jdHguYWRkcl9zaXplID0gY3R4LT5h ZGRyX3NpemU7Ci1AQCAtMTIzOCw2ICsxMjQwLDIyIEBAIGR3YXJmX2V4cHJfZ2V0X2FkZHJfaW5k ZXggKHZvaWQgKmJhdG9uLAotICAgcmV0dXJuIGR3YXJmMl9yZWFkX2FkZHJfaW5kZXggKGRlYmF0 b24tPnBlcl9jdSwgaW5kZXgpOwotIH0KLSAKLSsvKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgZ2V0 X29iamVjdF9hZGRyZXNzLiBSZXR1cm4gdGhlIGFkZHJlc3Mgb2YgdGhlIFZMQQotKyAgIG9iamVj dC4gICovCi0rCi0rc3RhdGljIENPUkVfQUREUgotK2R3YXJmX2V4cHJfZ2V0X29ial9hZGRyICh2 b2lkICpiYXRvbikKLSt7Ci0rICBzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbiAqZGViYXRvbiA9IGJh dG9uOwotKwotKyAgZ2RiX2Fzc2VydCAoZGViYXRvbiAhPSBOVUxMKTsKLSsKLSsgIGlmIChkZWJh dG9uLT5vYmpfYWRkcmVzcyA9PSAwKQotKyAgICBlcnJvciAoXygiTG9jYXRpb24gYWRkcmVzcyBp cyBub3Qgc2V0LiIpKTsKLSsKLSsgIHJldHVybiBkZWJhdG9uLT5vYmpfYWRkcmVzczsKLSt9Ci0r Ci0gLyogVkFMVUUgbXVzdCBiZSBvZiB0eXBlIGx2YWxfY29tcHV0ZWQgd2l0aCBlbnRyeV9kYXRh X3ZhbHVlX2Z1bmNzLiAgUGVyZm9ybQotICAgIHRoZSBpbmRpcmVjdCBtZXRob2Qgb24gaXQsIHRo YXQgaXMgdXNlIGl0cyBzdG9yZWQgdGFyZ2V0IHZhbHVlLCB0aGUgc29sZQotICAgIHB1cnBvc2Ug b2YgZW50cnlfZGF0YV92YWx1ZV9mdW5jcy4uICAqLwotQEAgLTIyMDIsNyArMjIyMCw4IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0X2YKLSAgIGR3YXJmX2V4cHJfZHdh cmZfY2FsbCwKLSAgIGR3YXJmX2V4cHJfZ2V0X2Jhc2VfdHlwZSwKLSAgIGR3YXJmX2V4cHJfcHVz aF9kd2FyZl9yZWdfZW50cnlfdmFsdWUsCi0tICBkd2FyZl9leHByX2dldF9hZGRyX2luZGV4Ci0r ICBkd2FyZl9leHByX2dldF9hZGRyX2luZGV4LAotKyAgZHdhcmZfZXhwcl9nZXRfb2JqX2FkZHIK LSB9OwotIAotIC8qIEV2YWx1YXRlIGEgbG9jYXRpb24gZGVzY3JpcHRpb24sIHN0YXJ0aW5nIGF0 IERBVEEgYW5kIHdpdGggbGVuZ3RoCi1AQCAtMjIzMSw2ICsyMjUwLDcgQEAgZHdhcmYyX2V2YWx1 YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQotIAotICAgYmF0b24uZnJhbWUgPSBmcmFtZTsK LSAgIGJhdG9uLnBlcl9jdSA9IHBlcl9jdTsKLSsgIGJhdG9uLm9ial9hZGRyZXNzID0gMDsKLSAK LSAgIGN0eCA9IG5ld19kd2FyZl9leHByX2NvbnRleHQgKCk7Ci0gICBvbGRfY2hhaW4gPSBtYWtl X2NsZWFudXBfZnJlZV9kd2FyZl9leHByX2NvbnRleHQgKGN0eCk7Ci1AQCAtMjMyNiw2ICsyMzQ2 LDExIEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHkKLSAJICAgIGlu dCBpbl9zdGFja19tZW1vcnkgPSBkd2FyZl9leHByX2ZldGNoX2luX3N0YWNrX21lbW9yeSAoY3R4 LCAwKTsKLSAKLSAJICAgIGRvX2NsZWFudXBzICh2YWx1ZV9jaGFpbik7Ci0rCi0rCSAgICAvKiBT ZWxlY3QgcmlnaHQgZnJhbWUgdG8gY29ycmVjdGx5IGV2YWx1YXRlIFZMQSdzIGR1cmluZyBhIGJh Y2t0cmFjZS4gICovCi0rCSAgICBpZiAoaXNfZHluYW1pY190eXBlICh0eXBlKSkKLSsJICAgICAg c2VsZWN0X2ZyYW1lIChmcmFtZSk7Ci0rCi0gCSAgICByZXR2YWwgPSB2YWx1ZV9hdF9sYXp5ICh0 eXBlLCBhZGRyZXNzICsgYnl0ZV9vZmZzZXQpOwotIAkgICAgaWYgKGluX3N0YWNrX21lbW9yeSkK LSAJICAgICAgc2V0X3ZhbHVlX3N0YWNrIChyZXR2YWwsIDEpOwotQEAgLTI0MzYsNiArMjQ2MSw3 IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHR5cGUgKnQKLSAKLSBzdGF0aWMg aW50Ci0gZHdhcmYyX2xvY2V4cHJfYmF0b25fZXZhbCAoY29uc3Qgc3RydWN0IGR3YXJmMl9sb2Nl eHByX2JhdG9uICpkbGJhdG9uLAotKyAgICAgICAgIENPUkVfQUREUiBhZGRyLAotIAkJCSAgIENP UkVfQUREUiAqdmFscCkKLSB7Ci0gICBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHg7Ci1A QCAtMjQ1MSw2ICsyNDc3LDcgQEAgZHdhcmYyX2xvY2V4cHJfYmF0b25fZXZhbCAoY29uc3Qgc3Ry dWN0Ci0gCi0gICBiYXRvbi5mcmFtZSA9IGdldF9zZWxlY3RlZF9mcmFtZSAoTlVMTCk7Ci0gICBi YXRvbi5wZXJfY3UgPSBkbGJhdG9uLT5wZXJfY3U7Ci0rICBiYXRvbi5vYmpfYWRkcmVzcyA9IGFk ZHI7Ci0gCi0gICBvYmpmaWxlID0gZHdhcmYyX3Blcl9jdV9vYmpmaWxlIChkbGJhdG9uLT5wZXJf Y3UpOwotIAotQEAgLTI0OTEsNyArMjUxOCw4IEBAIGR3YXJmMl9sb2NleHByX2JhdG9uX2V2YWwg KGNvbnN0IHN0cnVjdAotIC8qIFNlZSBkd2FyZjJsb2MuaC4gICovCi0gCi0gaW50Ci0tZHdhcmYy X2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLCBDT1JF X0FERFIgKnZhbHVlKQotK2R3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydWN0IGR5 bmFtaWNfcHJvcCAqcHJvcCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rICAgICAgICBDT1JFX0FERFIg KnZhbHVlKQotIHsKLSAgIGlmIChwcm9wID09IE5VTEwpCi0gICAgIHJldHVybiAwOwotQEAgLTI1 MDIsNyArMjUzMCw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydWN0IGQK LSAgICAgICB7Ci0gCWNvbnN0IHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0b24gKmJhdG9uID0g cHJvcC0+ZGF0YS5iYXRvbjsKLSAKLS0JaWYgKGR3YXJmMl9sb2NleHByX2JhdG9uX2V2YWwgKCZi YXRvbi0+bG9jZXhwciwgdmFsdWUpKQotKwlpZiAoZHdhcmYyX2xvY2V4cHJfYmF0b25fZXZhbCAo JmJhdG9uLT5sb2NleHByLCBhZGRyZXNzLCB2YWx1ZSkpCi0gCSAgewotIAkgICAgaWYgKGJhdG9u LT5yZWZlcmVuY2VkX3R5cGUpCi0gCSAgICAgIHsKLUBAIC0yNTQ2LDYgKzI1NzQsMjAgQEAgZHdh cmYyX2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBzdHJ1Y3QgZAotICAgcmV0dXJuIDA7Ci0gfQot IAotKy8qIFNlZSBkd2FyZjJsb2MuaC4gICovCi0rCi0raW50Ci0rZHdhcmYyX2FkZHJlc3NfZGF0 YV92YWxpZCAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCi0rewotKyAgaWYgKFRZUEVfTk9UX0FT U09DSUFURUQgKHR5cGUpKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIGlmIChUWVBFX05PVF9BTExP Q0FURUQgKHR5cGUpKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIHJldHVybiAxOwotK30KLSsKLSAM Ci0gLyogSGVscGVyIGZ1bmN0aW9ucyBhbmQgYmF0b24gZm9yIGR3YXJmMl9sb2NfZGVzY19uZWVk c19mcmFtZS4gICovCi0gCi1AQCAtMjY1Myw2ICsyNjk1LDE1IEBAIG5lZWRzX2dldF9hZGRyX2lu ZGV4ICh2b2lkICpiYXRvbiwgdW5zaWcKLSAgIHJldHVybiAxOwotIH0KLSAKLSsvKiBEV19PUF9w dXNoX29iamVjdF9hZGRyZXNzIGhhcyBhIGZyYW1lIGFscmVhZHkgcGFzc2VkIHRocm91Z2guICAq LwotKwotK3N0YXRpYyBDT1JFX0FERFIKLStuZWVkc19nZXRfb2JqX2FkZHIgKHZvaWQgKmJhdG9u KQotK3sKLSsgIC8qIE5vdGhpbmcgdG8gZG8uICAqLwotKyAgcmV0dXJuIDE7Ci0rfQotKwotIC8q IFZpcnR1YWwgbWV0aG9kIHRhYmxlIGZvciBkd2FyZjJfbG9jX2Rlc2NfbmVlZHNfZnJhbWUgYmVs b3cuICAqLwotIAotIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0X2Z1bmNz IG5lZWRzX2ZyYW1lX2N0eF9mdW5jcyA9Ci1AQCAtMjY2Nyw3ICsyNzE4LDggQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHRfZgotICAgbmVlZHNfZnJhbWVfZHdhcmZfY2Fs bCwKLSAgIE5VTEwsCQkJCS8qIGdldF9iYXNlX3R5cGUgKi8KLSAgIG5lZWRzX2R3YXJmX3JlZ19l bnRyeV92YWx1ZSwKLS0gIG5lZWRzX2dldF9hZGRyX2luZGV4Ci0rICBuZWVkc19nZXRfYWRkcl9p bmRleCwKLSsgIG5lZWRzX2dldF9vYmpfYWRkcgotIH07Ci0gCi0gLyogUmV0dXJuIG5vbi16ZXJv IGlmZiB0aGUgbG9jYXRpb24gZXhwcmVzc2lvbiBhdCBEQVRBIChsZW5ndGggU0laRSkKLUBAIC0z MzE2LDYgKzMzNjgsMTAgQEAgZHdhcmYyX2NvbXBpbGVfZXhwcl90b19heCAoc3RydWN0IGFnZW50 XwotIAkgIHVuaW1wbGVtZW50ZWQgKG9wKTsKLSAJICBicmVhazsKLSAKLSsgIGNhc2UgRFdfT1Bf cHVzaF9vYmplY3RfYWRkcmVzczoKLSsgICAgdW5pbXBsZW1lbnRlZCAob3ApOwotKyAgICBicmVh azsKLSsKLSAJY2FzZSBEV19PUF9za2lwOgotIAkgIG9mZnNldCA9IGV4dHJhY3Rfc2lnbmVkX2lu dGVnZXIgKG9wX3B0ciwgMiwgYnl0ZV9vcmRlcik7Ci0gCSAgb3BfcHRyICs9IDI7Ci1JbmRleDog Z2RiLTcuOC4xL2dkYi9kd2FyZjJsb2MuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmln L2dkYi9kd2FyZjJsb2MuaAkyMDE0LTEyLTEzIDE1OjUyOjA3LjY5NzMxMDI3NCArMDEwMAotKysr IGdkYi03LjguMS9nZGIvZHdhcmYybG9jLmgJMjAxNC0xMi0xMyAxNTo1MjoxMC44MTkzMDcxMzYg KzAxMDAKLUBAIC05NiwxMSArOTYsMTggQEAgc3RydWN0IHZhbHVlICpkd2FyZjJfZXZhbHVhdGVf bG9jX2Rlc2MgKAotICAgIGludG8gVkFMVUUsIG90aGVyd2lzZSByZXR1cm5zIDAuICAqLwotIAot IGludCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3Ag KnByb3AsCi0rCQkJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsCistLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9kd2FyZjJsb2MuaAkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkwNyAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMmxvYy5oCTIwMTUtMDEtMDYg MjM6MDM6MDcuNDI0Njg0NzUzICswMTAwCitAQCAtMTExLDYgKzExMSwxMSBAQCBpbnQgZHdhcmYy X2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBzdHJ1CisgCQkJICAgICAgQ09SRV9BRERSIGFkZHJl c3MsCiAgCQkJICAgICAgQ09SRV9BRERSICp2YWx1ZSk7CiAgCi0gQ09SRV9BRERSIGR3YXJmMl9y ZWFkX2FkZHJfaW5kZXggKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9jdSwKLSAJCQkJ ICB1bnNpZ25lZCBpbnQgYWRkcl9pbmRleCk7Ci0gCiArLyogQ2hlY2tzIGlmIGEgZHdhcmYgbG9j YXRpb24gZGVmaW5pdGlvbiBpcyB2YWxpZC4KICsgICBSZXR1cm5zIDEgaWYgdmFsaWQ7IDAgb3Ro ZXJ3aXNlLiAgKi8KICsKICtleHRlcm4gaW50IGR3YXJmMl9hZGRyZXNzX2RhdGFfdmFsaWQgKGNv bnN0IHN0cnVjdCB0eXBlICp0eXBlKTsKICsKLSsKLSAvKiBUaGUgc3ltYm9sIGxvY2F0aW9uIGJh dG9uIHR5cGVzIHVzZWQgYnkgdGhlIERXQVJGLTIgcmVhZGVyIChpLmUuCi0gICAgU1lNQk9MX0xP Q0FUSU9OX0JBVE9OIGZvciBhIExPQ19DT01QVVRFRCBzeW1ib2wpLiAgInN0cnVjdAotICAgIGR3 YXJmMl9sb2NleHByX2JhdG9uIiBpcyBmb3IgYSBzeW1ib2wgd2l0aCBhIHNpbmdsZSBsb2NhdGlv bgotSW5kZXg6IGdkYi03LjguMS9nZGIvZHdhcmYycmVhZC5jCisgLyogQSBoZWxwZXIgZm9yIHRo ZSBjb21waWxlciBpbnRlcmZhY2UgdGhhdCBjb21waWxlcyBhIHNpbmdsZSBkeW5hbWljCisgICAg cHJvcGVydHkgdG8gQyBjb2RlLgorIAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3 YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmlnL2dkYi9kd2FyZjJyZWFk LmMJMjAxNC0xMi0xMyAxNTo1MjowNy43MDQzMTAyNjcgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2Ri L2R3YXJmMnJlYWQuYwkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyMzMwNzEzMiArMDEwMAotQEAgLTE4 NDcsNiArMTg0NywxMiBAQCBzdGF0aWMgdm9pZCBmcmVlX2R3b19maWxlX2NsZWFudXAgKHZvaWQK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTA2 IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3 YXJmMnJlYWQuYwkyMDE1LTAxLTA2IDIzOjA0OjA5LjY5MTk4Njg4MSArMDEwMAorQEAgLTE4NDQs NiArMTg0NCwxMiBAQCBzdGF0aWMgdm9pZCBmcmVlX2R3b19maWxlX2NsZWFudXAgKHZvaWQKICBz dGF0aWMgdm9pZCBwcm9jZXNzX2N1X2luY2x1ZGVzICh2b2lkKTsKICAKICBzdGF0aWMgdm9pZCBj aGVja19wcm9kdWNlciAoc3RydWN0IGR3YXJmMl9jdSAqY3UpOwpAQCAtMjY4LDcgKzYxLDcgQEAg SW5kZXg6IGdkYi03LjguMS9nZGIvZHdhcmYycmVhZC5jCiAgDAogIC8qIFZhcmlvdXMgY29tcGxh aW50cyBhYm91dCBzeW1ib2wgcmVhZGluZyB0aGF0IGRvbid0IGFib3J0IHRoZSBwcm9jZXNzLiAg Ki8KICAKLUBAIC0xNDE4MiwyOSArMTQxODgsOTIgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqZAorQEAgLTE0MjQxLDI5ICsxNDI0Nyw5MiBAQCByZWFkX3RhZ19zdHJp bmdfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9 IGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpOwogICAgc3RydWN0IHR5cGUgKnR5cGUsICpyYW5n ZV90eXBlLCAqaW5kZXhfdHlwZSwgKmNoYXJfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHI7CkBAIC0zNjgsNyArMTYxLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZHdhcmYycmVhZC5j CiAgICBjaGFyX3R5cGUgPSBsYW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2Vf ZGVmbiwgZ2RiYXJjaCk7CiAgICB0eXBlID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFy X3R5cGUsIHJhbmdlX3R5cGUpOwogIAotQEAgLTE0NTIxLDEzICsxNDU5MCwxNSBAQCByZWFkX2Jh c2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0CitAQCAtMTQ1ODAsMTMgKzE0NjQ5LDE1 IEBAIHJlYWRfYmFzZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3QKICAgIHJldHVybiBz ZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogIH0KICAKQEAgLTM4NSw3ICsxNzgsNyBAQCBJ bmRleDogZ2RiLTcuOC4xL2dkYi9kd2FyZjJyZWFkLmMKICB7CiAgICBzdHJ1Y3QgZHdhcmYyX3By b3BlcnR5X2JhdG9uICpiYXRvbjsKICAgIHN0cnVjdCBvYnN0YWNrICpvYnN0YWNrID0gJmN1LT5v YmpmaWxlLT5vYmpmaWxlX29ic3RhY2s7Ci1AQCAtMTQ1NDAsOCArMTQ2MTEsMjUgQEAgYXR0cl90 b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaQorQEAgLTE0NTk5LDggKzE0NjcwLDI1 IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkKICAgICAgICBiYXRv biA9IG9ic3RhY2tfYWxsb2MgKG9ic3RhY2ssIHNpemVvZiAoKmJhdG9uKSk7CiAgICAgICAgYmF0 b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7CiAgICAgICAgYmF0b24tPmxvY2V4cHIucGVyX2N1 ID0gY3UtPnBlcl9jdTsKQEAgLTQxMyw3ICsyMDYsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9k d2FyZjJyZWFkLmMKICAgICAgICBwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247CiAgICAgICAgcHJv cC0+a2luZCA9IFBST1BfTE9DRVhQUjsKICAgICAgICBnZGJfYXNzZXJ0IChwcm9wLT5kYXRhLmJh dG9uICE9IE5VTEwpOwotQEAgLTE0NTcxLDggKzE0NjU5LDI4IEBAIGF0dHJfdG9fZHluYW1pY19w cm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkKK0BAIC0xNDYzMCw4ICsxNDcxOCwyOCBAQCBhdHRyX3Rv X2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpCiAgCSAgYmF0b24gPSBvYnN0YWNrX2Fs bG9jIChvYnN0YWNrLCBzaXplb2YgKCpiYXRvbikpOwogIAkgIGJhdG9uLT5yZWZlcmVuY2VkX3R5 cGUgPSBkaWVfdHlwZSAodGFyZ2V0X2RpZSwgdGFyZ2V0X2N1KTsKICAJICBiYXRvbi0+bG9jZXhw ci5wZXJfY3UgPSBjdS0+cGVyX2N1OwpAQCAtNDQ0LDcgKzIzNyw3IEBAIEluZGV4OiBnZGItNy44 LjEvZ2RiL2R3YXJmMnJlYWQuYwogIAkgIHByb3AtPmRhdGEuYmF0b24gPSBiYXRvbjsKICAJICBw cm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOwogIAkgIGdkYl9hc3NlcnQgKHByb3AtPmRhdGEuYmF0 b24gIT0gTlVMTCk7Ci1AQCAtMTQ2MDcsNyArMTQ3MTUsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllCitAQCAtMTQ2NjYsNyArMTQ3NzQsNyBAQCByZWFkX3N1YnJh bmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllCiAgICBzdHJ1Y3QgdHlwZSAqYmFzZV90eXBl LCAqb3JpZ19iYXNlX3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC00NTMsNyArMjQ2LDcgQEAgSW5kZXg6IGdkYi03LjguMS9n ZGIvZHdhcmYycmVhZC5jCiAgICBpbnQgbG93X2RlZmF1bHRfaXNfdmFsaWQ7CiAgICBpbnQgaGln aF9ib3VuZF9pc19jb3VudCA9IDA7CiAgICBjb25zdCBjaGFyICpuYW1lOwotQEAgLTE0NjI3LDcg KzE0NzM1LDkgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQorQEAg LTE0Njg2LDcgKzE0Nzk0LDkgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8g KmRpZQogIAogICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5raW5kID0gUFJPUF9D T05TVDsKQEAgLTQ2Myw3ICsyNTYsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9kd2FyZjJyZWFk LmMKICAKICAgIC8qIFNldCBMT1dfREVGQVVMVF9JU19WQUxJRCBpZiBjdXJyZW50IGxhbmd1YWdl IGFuZCBEV0FSRiB2ZXJzaW9uIGFsbG93CiAgICAgICBvbWl0dGluZyBEV19BVF9sb3dlcl9ib3Vu ZC4gICovCi1AQCAtMTQ2NjAsMTkgKzE0NzcwLDI2IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUKK0BAIC0xNDcxOSwxOSArMTQ4MjksMjYgQEAgcmVhZF9zdWJyYW5n ZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQogICAgICAgIGJyZWFrOwogICAgICB9CiAgCkBA IC00OTMsNyArMjg2LDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZHdhcmYycmVhZC5jCiAgCXsK ICAJICAvKiBJZiBib3VuZHMgYXJlIGNvbnN0YW50IGRvIHRoZSBmaW5hbCBjYWxjdWxhdGlvbiBo ZXJlLiAgKi8KICAJICBpZiAobG93LmtpbmQgPT0gUFJPUF9DT05TVCAmJiBoaWdoLmtpbmQgPT0g UFJPUF9DT05TVCkKLUBAIC0xNDczNiw3ICsxNDg1Myw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkaWUKK0BAIC0xNDc5NSw3ICsxNDkxMiw3IEBAIHJlYWRfc3VicmFu Z2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKICAgICAgICAmJiAhVFlQRV9VTlNJR05FRCAo YmFzZV90eXBlKSAmJiAoaGlnaC5kYXRhLmNvbnN0X3ZhbCAmIG5lZ2F0aXZlX21hc2spKQogICAg ICBoaWdoLmRhdGEuY29uc3RfdmFsIHw9IG5lZ2F0aXZlX21hc2s7CiAgCkBAIC01MDIsMTkgKzI5 NSwxOCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9kd2FyZjJyZWFkLmMKICAKICAgIGlmIChoaWdo X2JvdW5kX2lzX2NvdW50KQogICAgICBUWVBFX1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5mbGFn X3VwcGVyX2JvdW5kX2lzX2NvdW50ID0gMTsKLUBAIC0yMTY1NCw2ICsyMTc3MSw4IEBAIHNldF9k aWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnUKLSB7Ci0gICBzdHJ1Y3QgZHdhcmYy X3Blcl9jdV9vZmZzZXRfYW5kX3R5cGUgKipzbG90LCBvZnM7Ci0gICBzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSA9IGN1LT5vYmpmaWxlOwotKyAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKLSsgIHN0 cnVjdCBkeW5hbWljX3Byb3AgcHJvcDsKLSAKLSAgIC8qIEZvciBBZGEgdHlwZXMsIG1ha2Ugc3Vy ZSB0aGF0IHRoZSBnbmF0LXNwZWNpZmljIGRhdGEgaXMgYWx3YXlzCi0gICAgICBpbml0aWFsaXpl ZCAoaWYgbm90IGFscmVhZHkgc2V0KS4gIFRoZXJlIGFyZSBhIGZldyB0eXBlcyB3aGVyZQotQEAg LTIxNjY4LDYgKzIxNzg3LDQzIEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnUKLSAgICAgICAmJiAhSEFWRV9HTkFUX0FVWF9JTkZPICh0eXBlKSkKLSAgICAgSU5JVF9H TkFUX1NQRUNJRklDICh0eXBlKTsKK0BAIC0yMTg2MCw3ICsyMTk3Nyw0NCBAQCBzZXRfZGllX3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1CiAgCisgICAvKiBSZWFkIERXX0FUX2RhdGFf bG9jYXRpb24gYW5kIHNldCBpbiB0eXBlLiAgKi8KKyAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGll LCBEV19BVF9kYXRhX2xvY2F0aW9uLCBjdSk7CistICBpZiAoYXR0cl90b19keW5hbWljX3Byb3Ag KGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKKysgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0 ciwgZGllLCBjdSwgJnByb3AsIE5VTEwsIDApKQorKyAgICB7CisrICAgICAgVFlQRV9EQVRBX0xP Q0FUSU9OICh0eXBlKQorKyAgICAgICAgPSBvYnN0YWNrX2FsbG9jICgmb2JqZmlsZS0+b2JqZmls ZV9vYnN0YWNrLCBzaXplb2YgKHByb3ApKTsKKysgICAgICAqVFlQRV9EQVRBX0xPQ0FUSU9OICh0 eXBlKSA9IHByb3A7CisrICAgIH0KKysKICsgIC8qIFJlYWQgRFdfQVRfYWxsb2NhdGVkIGFuZCBz ZXQgaW4gdHlwZS4gICovCiArICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYWxsb2Nh dGVkLCBjdSk7CiArICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKQEAgLTU0NiwyOCAr MzM4LDIyIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2R3YXJmMnJlYWQuYwogKyAgLyogUmVhZCBE V19BVF9kYXRhX2xvY2F0aW9uIGFuZCBzZXQgaW4gdHlwZS4gICovCiArICBhdHRyID0gZHdhcmYy X2F0dHIgKGRpZSwgRFdfQVRfZGF0YV9sb2NhdGlvbiwgY3UpOwogKyAgaWYgKGF0dHJfdG9fZHlu YW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkpCi0rICAgIHsKLSsgICAg ICBUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCi0rICAgICAgICA9IG9ic3RhY2tfYWxsb2MgKCZv YmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssIHNpemVvZiAocHJvcCkpOwotKyAgICAgICpUWVBFX0RB VEFfTE9DQVRJT04gKHR5cGUpID0gcHJvcDsKLSsgICAgfQotKwotICAgaWYgKGR3YXJmMl9wZXJf b2JqZmlsZS0+ZGllX3R5cGVfaGFzaCA9PSBOVUxMKQogICAgICB7Ci0gICAgICAgZHdhcmYyX3Bl cl9vYmpmaWxlLT5kaWVfdHlwZV9oYXNoID0KLUluZGV4OiBnZGItNy44LjEvZ2RiL2YtdHlwZXBy aW50LmMKKyAgICAgICBUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCisgICAgICAgICA9IG9ic3Rh Y2tfYWxsb2MgKCZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssIHNpemVvZiAocHJvcCkpOworSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdHlwZXByaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjEub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE0LTEyLTEzIDE1OjUyOjA3Ljcw NTMxMDI2NiArMDEwMAotKysrIGdkYi03LjguMS9nZGIvZi10eXBlcHJpbnQuYwkyMDE0LTEyLTEz IDE1OjUyOjEwLjgyMzMwNzEzMiArMDEwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9n ZGIvZi10eXBlcHJpbnQuYwkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAorKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMzowMzow Ny40Mjg2ODQ3NzIgKzAxMDAKIEBAIC0zMCw2ICszMCw3IEBACiAgI2luY2x1ZGUgImdkYmNvcmUu aCIKICAjaW5jbHVkZSAidGFyZ2V0LmgiCiAgI2luY2x1ZGUgImYtbGFuZy5oIgogKyNpbmNsdWRl ICJ2YWxwcmludC5oIgogIAotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSAjaW5jbHVkZSA8ZXJybm8u aD4KLUBAIC01Niw2ICs1NywxNyBAQCBmX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBj b25zdCBjCisgI2lmIDAJCQkJLyogQ3VycmVudGx5IHVudXNlZC4gICovCisgc3RhdGljIHZvaWQg Zl90eXBlX3ByaW50X2FyZ3MgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICopOworQEAg LTUzLDYgKzU0LDE3IEBAIGZfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGMK ICAgIGVudW0gdHlwZV9jb2RlIGNvZGU7CiAgICBpbnQgZGVtYW5nbGVkX2FyZ3M7CiAgCkBAIC01 ODUsNyArMzcxLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZi10eXBlcHJpbnQuYwogICAgZl90 eXBlX3ByaW50X2Jhc2UgKHR5cGUsIHN0cmVhbSwgc2hvdywgbGV2ZWwpOwogICAgY29kZSA9IFRZ UEVfQ09ERSAodHlwZSk7CiAgICBpZiAoKHZhcnN0cmluZyAhPSBOVUxMICYmICp2YXJzdHJpbmcg IT0gJ1wwJykKLUBAIC0xNzAsMjggKzE4MiwzNiBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZm aXggKHN0cnVjdCB0eXBlCitAQCAtMTY3LDI4ICsxNzksMzYgQEAgZl90eXBlX3ByaW50X3ZhcnNw ZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQogICAgICAgIGlmIChhcnJheXByaW50X3JlY3Vyc2VfbGV2 ZWwgPT0gMSkKICAJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKCIpOwogIApAQCAtNjQzLDEx ICs0MjksMTEgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZi10eXBlcHJpbnQuYwogICAgICAgIGlm IChhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwgPT0gMSkKICAJZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCAiKSIpOwogICAgICAgIGVsc2UKLUluZGV4OiBnZGItNy44LjEvZ2RiL2YtdmFscHJpbnQu YworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdmFscHJpbnQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguMS5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNC0xMi0xMyAxNTo1Mjow Ny43MDUzMTAyNjYgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL2YtdmFscHJpbnQuYwkyMDE0LTEy LTEzIDE1OjUyOjEwLjgyNDMwNzEzMSArMDEwMAotQEAgLTM5LDggKzM5LDYgQEAKKy0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjUxOjE3 LjY2MzI0MDkwNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdmFscHJpbnQu YwkyMDE1LTAxLTA2IDIzOjAzOjA3LjQyODY4NDc3MiArMDEwMAorQEAgLTM2LDggKzM2LDYgQEAK ICAKICBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2b2lkKTsKICBzdGF0aWMg dm9pZCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICosIGludCk7CkBAIC02NTYsNyArNDQyLDcg QEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZi12YWxwcmludC5jCiAgc3RhdGljIHZvaWQgZjc3X2dl dF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICopOwogIAogIGludCBm NzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTl9ESU1TICsgMV1bMl07Ci1AQCAtNDgsMTUg KzQ2LDYgQEAgaW50IGY3N19hcnJheV9vZmZzZXRfdGJsW01BWF9GT1JUUkFOX0RJTQorQEAgLTQ1 LDE1ICs0Myw2IEBAIGludCBmNzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTl9ESU0KICAv KiBBcnJheSB3aGljaCBob2xkcyBvZmZzZXRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0IGEgcm93J3Mg ZWxlbWVudHMKICAgICBmb3IgYSBnaXZlbiBhcnJheS4gIEFycmF5IGFsc28gaG9sZHMgdGhlIHNp emUgb2YgZWFjaCBzdWJhcnJheS4gICovCiAgCkBAIC02NzIsNyArNDU4LDcgQEAgSW5kZXg6IGdk Yi03LjguMS9nZGIvZi12YWxwcmludC5jCiAgaW50CiAgZjc3X2dldF9sb3dlcmJvdW5kIChzdHJ1 Y3QgdHlwZSAqdHlwZSkKICB7Ci1AQCAtMTE0LDQ3ICsxMDMsNiBAQCBmNzdfZ2V0X2R5bmFtaWNf bGVuZ3RoX29mX2FnZ3JlZ2F0ZSAoc3RyCitAQCAtMTExLDQ3ICsxMDAsNiBAQCBmNzdfZ2V0X2R5 bmFtaWNfbGVuZ3RoX29mX2FnZ3JlZ2F0ZSAoc3RyCiAgICAgICogVFlQRV9MRU5HVEggKGNoZWNr X3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSk7CiAgfQogIApAQCAtNzIwLDcgKzUw Niw3IEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2YtdmFscHJpbnQuYwogIC8qIEFjdHVhbCBmdW5j dGlvbiB3aGljaCBwcmludHMgb3V0IEY3NyBhcnJheXMsIFZhbGFkZHIgPT0gYWRkcmVzcyBpbiAK ICAgICB0aGUgc3VwZXJpb3IuICBBZGRyZXNzID09IHRoZSBhZGRyZXNzIGluIHRoZSBpbmZlcmlv ci4gICovCiAgCi1AQCAtMTY3LDQxICsxMTUsNjIgQEAgZjc3X3ByaW50X2FycmF5XzEgKGludCBu c3MsIGludCBuZGltZW5zaQorQEAgLTE2NCw0MSArMTEyLDYyIEBAIGY3N19wcmludF9hcnJheV8x IChpbnQgbnNzLCBpbnQgbmRpbWVuc2kKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zLAogIAkJICAgaW50ICplbHRzKQogIHsKQEAgLTc5OSw3ICs1ODUsNyBA QCBJbmRleDogZ2RiLTcuOC4xL2dkYi9mLXZhbHByaW50LmMKICAJICAgIGZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgIi4uLiIpOwogIAl9CiAgICAgIH0KLUBAIC0yMjgsMTIgKzE5Nyw2IEBAIGY3 N19wcmludF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMKK0BAIC0yMjUsMTIgKzE5NCw2 IEBAIGY3N19wcmludF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMKICBUeXBlIG5vZGUg Y29ycnVwdCEgRjc3IGFycmF5cyBjYW5ub3QgaGF2ZSAlZCBzdWJzY3JpcHRzICglZCBNYXgpIiks CiAgCSAgIG5kaW1lbnNpb25zLCBNQVhfRk9SVFJBTl9ESU1TKTsKICAKQEAgLTgxMiw3ICs1OTgs NyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9mLXZhbHByaW50LmMKICAgIGY3N19wcmludF9hcnJh eV8xICgxLCBuZGltZW5zaW9ucywgdHlwZSwgdmFsYWRkciwgZW1iZWRkZWRfb2Zmc2V0LAogIAkJ ICAgICBhZGRyZXNzLCBzdHJlYW0sIHJlY3Vyc2UsIHZhbCwgb3B0aW9ucywgJmVsdHMpOwogIH0K LUBAIC0zNzgsMTIgKzM0MSwxNSBAQCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNv bnN0IGdkCitAQCAtMzc1LDEyICszMzgsMTUgQEAgZl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0 eXBlLCBjb25zdCBnZAogICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiggIik7CiAg ICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgVFlQRV9ORklFTERTICh0eXBlKTsgaW5kZXgr KykKICAgICAgICAgIHsKQEAgLTgzMywxMSArNjE5LDExIEBAIEluZGV4OiBnZGItNy44LjEvZ2Ri L2YtdmFscHJpbnQuYwogICAgICAgICAgICBpZiAoaW5kZXggIT0gVFlQRV9ORklFTERTICh0eXBl KSAtIDEpCiAgICAgICAgICAgICAgZnB1dHNfZmlsdGVyZWQgKCIsICIsIHN0cmVhbSk7CiAgICAg ICAgICB9Ci1JbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmln L2dkYi9nZGJ0eXBlcy5jCTIwMTQtMTItMTMgMTU6NTI6MDcuNzA3MzEwMjY0ICswMTAwCi0rKysg Z2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCTIwMTQtMTItMTMgMTU6NTM6MTAuNjc1MjQ2OTc2ICsw MTAwCi1AQCAtODA1LDcgKzgwNSw4IEBAIGFsbG9jYXRlX3N0dWJfbWV0aG9kIChzdHJ1Y3QgdHlw ZSAqdHlwZSkKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAx NS0wMS0wNiAyMjo1MToxNy42NjMyNDA5MDcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDI5Njg0Nzc3ICswMTAwCitAQCAt ODE1LDcgKzgxNSw4IEBAIGFsbG9jYXRlX3N0dWJfbWV0aG9kIChzdHJ1Y3QgdHlwZSAqdHlwZSkK ICBzdHJ1Y3QgdHlwZSAqCiAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRf dHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCiAgCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1p Y19wcm9wICpsb3dfYm91bmQsCkBAIC04NDcsNyArNjMzLDcgQEAgSW5kZXg6IGdkYi03LjguMS9n ZGIvZ2RidHlwZXMuYwogIHsKICAgIGlmIChyZXN1bHRfdHlwZSA9PSBOVUxMKQogICAgICByZXN1 bHRfdHlwZSA9IGFsbG9jX3R5cGVfY29weSAoaW5kZXhfdHlwZSk7Ci1AQCAtODIwLDYgKzgyMSw3 IEBAIGNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3QKK0BAIC04MzAsNiAr ODMxLDcgQEAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdAogICAgICBU WVBFX1pBTExPQyAocmVzdWx0X3R5cGUsIHNpemVvZiAoc3RydWN0IHJhbmdlX2JvdW5kcykpOwog ICAgVFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlwZSktPmxvdyA9ICpsb3dfYm91bmQ7CiAgICBU WVBFX1JBTkdFX0RBVEEgKHJlc3VsdF90eXBlKS0+aGlnaCA9ICpoaWdoX2JvdW5kOwpAQCAtODU1 LDcgKzY0MSw3IEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnR5cGVzLmMKICAKICAgIGlmIChs b3dfYm91bmQtPmtpbmQgPT0gUFJPUF9DT05TVCAmJiBsb3dfYm91bmQtPmRhdGEuY29uc3RfdmFs ID49IDApCiAgICAgIFRZUEVfVU5TSUdORUQgKHJlc3VsdF90eXBlKSA9IDE7Ci1AQCAtODQxLDcg Kzg0Myw3IEBAIHN0cnVjdCB0eXBlICoKK0BAIC04NTgsNyArODYwLDcgQEAgc3RydWN0IHR5cGUg KgogIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBz dHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKICAJCQkgIExPTkdFU1QgbG93X2JvdW5kLCBMT05HRVNU IGhpZ2hfYm91bmQpCiAgewpAQCAtODY0LDcgKzY1MCw3IEBAIEluZGV4OiBnZGItNy44LjEvZ2Ri L2dkYnR5cGVzLmMKICAKICAgIGxvdy5raW5kID0gUFJPUF9DT05TVDsKICAgIGxvdy5kYXRhLmNv bnN0X3ZhbCA9IGxvd19ib3VuZDsKLUBAIC04NDksNyArODUxLDExIEBAIGNyZWF0ZV9zdGF0aWNf cmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnIKK0BAIC04NjYsNyArODY4LDExIEBAIGNyZWF0ZV9z dGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnIKICAgIGhpZ2gua2luZCA9IFBST1BfQ09O U1Q7CiAgICBoaWdoLmRhdGEuY29uc3RfdmFsID0gaGlnaF9ib3VuZDsKICAKQEAgLTg3Nyw3ICs2 NjMsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICByZXR1cm4gcmVz dWx0X3R5cGU7CiAgfQotQEAgLTEwMDMsMTggKzEwMDksMjQgQEAgY3JlYXRlX2FycmF5X3R5cGVf d2l0aF9zdHJpZGUgKHN0cnVjdCB0eQorQEAgLTEwMjAsMTggKzEwMjYsMjQgQEAgY3JlYXRlX2Fy cmF5X3R5cGVfd2l0aF9zdHJpZGUgKHN0cnVjdCB0eQogIAogICAgVFlQRV9DT0RFIChyZXN1bHRf dHlwZSkgPSBUWVBFX0NPREVfQVJSQVk7CiAgICBUWVBFX1RBUkdFVF9UWVBFIChyZXN1bHRfdHlw ZSkgPSBlbGVtZW50X3R5cGU7CkBAIC05MDQsNyArNjkwLDcgQEAgSW5kZXg6IGdkYi03LjguMS9n ZGIvZ2RidHlwZXMuYwogICAgICAgIGVsc2UgaWYgKGJpdF9zdHJpZGUgPiAwKQogIAlUWVBFX0xF TkdUSCAocmVzdWx0X3R5cGUpID0KICAJICAoYml0X3N0cmlkZSAqIChoaWdoX2JvdW5kIC0gbG93 X2JvdW5kICsgMSkgKyA3KSAvIDg7Ci1AQCAtMTYxNiwxMiArMTYyOCwzMSBAQCBzdHViX25vbmFt ZV9jb21wbGFpbnQgKHZvaWQpCitAQCAtMTYzMCwxMiArMTY0MiwzMSBAQCBzdHViX25vbmFtZV9j b21wbGFpbnQgKHZvaWQpCiAgc3RhdGljIGludAogIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAo c3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCiAgewpAQCAtOTMzLDEwICs3MTksMTAg QEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZ2RidHlwZXMuYwogKyAgICAgIGlmIChpc19keW5hbWlj X3R5cGUgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaW5kZXgpKSkKICsgICAgICAgIHJldHVybiAx OwogKwotICAgc3dpdGNoIChUWVBFX0NPREUgKHR5cGUpKQotICAgICB7Ci0gICAgIGNhc2UgVFlQ RV9DT0RFX1JBTkdFOgotQEAgLTE2MzEsMTEgKzE2NjIsMTkgQEAgaXNfZHluYW1pY190eXBlX2lu dGVybmFsIChzdHJ1Y3QgdHlwZSAqdAorICAgLyogVHlwZXMgdGhhdCBoYXZlIGEgZHluYW1pYyBU WVBFX0RBVEFfTE9DQVRJT04gYXJlIGNvbnNpZGVyZWQKKyAgICAgIGR5bmFtaWMsIGV2ZW4gaWYg dGhlIHR5cGUgaXRzZWxmIGlzIHN0YXRpY2FsbHkgZGVmaW5lZC4KKyAgICAgIEZyb20gYSB1c2Vy J3MgcG9pbnQgb2YgdmlldywgdGhpcyBtYXkgYXBwZWFyIGNvdW50ZXItaW50dWl0aXZlOworQEAg LTE2NTYsMTEgKzE2ODcsMTkgQEAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlw ZSAqdAogICAgICAgIHsKICAJZ2RiX2Fzc2VydCAoVFlQRV9ORklFTERTICh0eXBlKSA9PSAxKTsK ICAKQEAgLTk1OSw3ICs3NDUsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCiAg ICAgICAgfQogIAogICAgICBjYXNlIFRZUEVfQ09ERV9TVFJVQ1Q6Ci1AQCAtMTY0OCw2ICsxNjg3 LDE3IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnQKK0BAIC0xNjcz LDYgKzE3MTIsMTcgQEAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdAog IAkgICAgICAmJiBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKFRZUEVfRklFTERfVFlQRSAodHlw ZSwgaSksIDApKQogIAkgICAgcmV0dXJuIDE7CiAgICAgICAgfQpAQCAtOTc3LDIwICs3NjMsNyBA QCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCiAgICAgICAgYnJlYWs7CiAgICAgIH0K ICAKLUBAIC0xNjY2LDIyICsxNzE2LDIzIEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqcmVzb2x2ZV9k eW5hbWljX3R5cGUKLSAJCQkJCQkgICBDT1JFX0FERFIgYWRkciwKLSAJCQkJCQkgICBpbnQgdG9w X2xldmVsKTsKLSAKLS0vKiBHaXZlbiBhIGR5bmFtaWMgcmFuZ2UgdHlwZSAoZHluX3JhbmdlX3R5 cGUpLCByZXR1cm4gYSBzdGF0aWMgdmVyc2lvbgotLSAgIG9mIHRoYXQgdHlwZS4gICovCi0rLyog R2l2ZW4gYSBkeW5hbWljIHJhbmdlIHR5cGUgKGR5bl9yYW5nZV90eXBlKSBhbmQgYWRkcmVzcywK LSsgICByZXR1cm4gYSBzdGF0aWMgdmVyc2lvbiBvZiB0aGF0IHR5cGUuICAqLwotIAotIHN0YXRp YyBzdHJ1Y3QgdHlwZSAqCi0tcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHlu X3JhbmdlX3R5cGUpCi0rcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluX3Jh bmdlX3R5cGUsIENPUkVfQUREUiBhZGRyKQotIHsKLSAgIENPUkVfQUREUiB2YWx1ZTsKK0BAIC0x NzAxLDcgKzE3NTEsOCBAQCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0eXBlICpkeW5f CiAgICBzdHJ1Y3QgdHlwZSAqc3RhdGljX3JhbmdlX3R5cGU7CiAgICBjb25zdCBzdHJ1Y3QgZHlu YW1pY19wcm9wICpwcm9wOwogICAgY29uc3Qgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uICpi YXRvbjsKQEAgLTEwMDAsMjIgKzc3Myw3IEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnR5cGVz LmMKICAKICAgIGdkYl9hc3NlcnQgKFRZUEVfQ09ERSAoZHluX3JhbmdlX3R5cGUpID09IFRZUEVf Q09ERV9SQU5HRSk7CiAgCi0gICBwcm9wID0gJlRZUEVfUkFOR0VfREFUQSAoZHluX3JhbmdlX3R5 cGUpLT5sb3c7Ci0tICBpZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCAmdmFsdWUp KQotKyAgaWYgKGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgYWRkciwgJnZhbHVlKSkK LSAgICAgewotICAgICAgIGxvd19ib3VuZC5raW5kID0gUFJPUF9DT05TVDsKLSAgICAgICBsb3df Ym91bmQuZGF0YS5jb25zdF92YWwgPSB2YWx1ZTsKLUBAIC0xNjkzLDcgKzE3NDQsNyBAQCByZXNv bHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0eXBlICpkeW5fCi0gICAgIH0KLSAKLSAgIHByb3Ag PSAmVFlQRV9SQU5HRV9EQVRBIChkeW5fcmFuZ2VfdHlwZSktPmhpZ2g7Ci0tICBpZiAoZHdhcmYy X2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCAmdmFsdWUpKQotKyAgaWYgKGR3YXJmMl9ldmFsdWF0 ZV9wcm9wZXJ0eSAocHJvcCwgYWRkciwgJnZhbHVlKSkKLSAgICAgewotICAgICAgIGhpZ2hfYm91 bmQua2luZCA9IFBST1BfQ09OU1Q7Ci0gICAgICAgaGlnaF9ib3VuZC5kYXRhLmNvbnN0X3ZhbCA9 IHZhbHVlOwotQEAgLTE3MDcsMTAgKzE3NTgsMTcgQEAgcmVzb2x2ZV9keW5hbWljX3JhbmdlIChz dHJ1Y3QgdHlwZSAqZHluXworQEAgLTE3MzIsMTAgKzE3ODMsMTcgQEAgcmVzb2x2ZV9keW5hbWlj X3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluXwogICAgICAgIGhpZ2hfYm91bmQua2luZCA9IFBST1Bf VU5ERUZJTkVEOwogICAgICAgIGhpZ2hfYm91bmQuZGF0YS5jb25zdF92YWwgPSAwOwogICAgICB9 CkBAIC0xMDM2LDE0ICs3OTQsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCiAg ICBUWVBFX1JBTkdFX0RBVEEgKHN0YXRpY19yYW5nZV90eXBlKS0+ZmxhZ19ib3VuZF9ldmFsdWF0 ZWQgPSAxOwogICAgcmV0dXJuIHN0YXRpY19yYW5nZV90eXBlOwogIH0KLUBAIC0xNzIwLDI5ICsx Nzc4LDUyIEBAIHJlc29sdmVfZHluYW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl8KLSAgICBv ZiB0aGUgYXNzb2NpYXRlZCBhcnJheS4gICovCi0gCi0gc3RhdGljIHN0cnVjdCB0eXBlICoKLS1y ZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlKQotK3Jlc29sdmVfZHluYW1p Y19hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQUREUiBhZGRyKQotIHsKLSAgIENPUkVf QUREUiB2YWx1ZTsKK0BAIC0xNzUxLDIzICsxODA5LDQ2IEBAIHJlc29sdmVfZHluYW1pY19hcnJh eSAoc3RydWN0IHR5cGUgKnR5cGUKICAgIHN0cnVjdCB0eXBlICplbHRfdHlwZTsKICAgIHN0cnVj dCB0eXBlICpyYW5nZV90eXBlOwogICAgc3RydWN0IHR5cGUgKmFyeV9kaW07CkBAIC0xMDUyLDEz ICs4MDMsMTIgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZ2RidHlwZXMuYwogIAogLSAgZ2RiX2Fz c2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkpOwogKyAgZ2RiX2Fzc2Vy dCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkKLSsgICAgICAgICAgICAgIHx8 IFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUklORyk7CisrCSAgICAgIHx8IFRZUEVf Q09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUklORyk7CiAgCiAgICBlbHRfdHlwZSA9IHR5cGU7 CiAgICByYW5nZV90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9JTkRFWF9UWVBFIChlbHRfdHlw ZSkpOwotLSAgcmFuZ2VfdHlwZSA9IHJlc29sdmVfZHluYW1pY19yYW5nZSAocmFuZ2VfdHlwZSk7 Ci0rICByYW5nZV90eXBlID0gcmVzb2x2ZV9keW5hbWljX3JhbmdlIChyYW5nZV90eXBlLCBhZGRy KTsKLSsKKyAgIHJhbmdlX3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHJhbmdlX3R5cGUs IGFkZHIpOworIAogKyAgcHJvcCA9IFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpOwogKyAgaWYg KGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgYWRkciwgJnZhbHVlKSkKICsgICAgewpA QCAtMTA3MiwxMSArODIyLDExIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnR5cGVzLmMKICsg ICAgICBUWVBFX0FTU09DSUFURURfUFJPUCAoY29weSktPmtpbmQgPSBQUk9QX0NPTlNUOwogKyAg ICAgIFRZUEVfQVNTT0NJQVRFRF9QUk9QIChjb3B5KS0+ZGF0YS5jb25zdF92YWwgPSB2YWx1ZTsK ICsgICAgfQotIAorKwogICAgYXJ5X2RpbSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZ UEUgKGVsdF90eXBlKSk7CiAgCiAtICBpZiAoYXJ5X2RpbSAhPSBOVUxMICYmIFRZUEVfQ09ERSAo YXJ5X2RpbSkgPT0gVFlQRV9DT0RFX0FSUkFZKQotLSAgICBlbHRfdHlwZSA9IHJlc29sdmVfZHlu YW1pY19hcnJheSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpOworLSAgICBlbHRfdHlwZSA9IHJl c29sdmVfZHluYW1pY19hcnJheSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIGFkZHIpOwogKyAg aWYgKGFyeV9kaW0gIT0gTlVMTCAmJiAoVFlQRV9DT0RFIChhcnlfZGltKSA9PSBUWVBFX0NPREVf QVJSQVkKICsgICAgICAgICAgfHwgVFlQRV9DT0RFIChhcnlfZGltKSA9PSBUWVBFX0NPREVfU1RS SU5HKSkKICsgICAgZWx0X3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKFRZUEVfVEFSR0VU X1RZUEUgKGNvcHkpLCBhZGRyKTsKQEAgLTEwODgsNDIgKzgzOCwxOCBAQCBJbmRleDogZ2RiLTcu OC4xL2dkYi9nZGJ0eXBlcy5jCiAtCQkJICAgIHJhbmdlX3R5cGUpOwogKyAgaWYgKFRZUEVfQ09E RSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUklORykKICsgICAgcmV0dXJuIGNyZWF0ZV9zdHJpbmdf dHlwZSAoY29weSwKLSsgICAgICAgICAgICBlbHRfdHlwZSwKLSsgICAgICAgICAgICByYW5nZV90 eXBlKTsKKysJICAgIGVsdF90eXBlLAorKwkgICAgcmFuZ2VfdHlwZSk7CiArICBlbHNlCiArICAg IHJldHVybiBjcmVhdGVfYXJyYXlfdHlwZSAoY29weSwKLSsgICAgICAgICAgICBlbHRfdHlwZSwK LSsgICAgICAgICAgICByYW5nZV90eXBlKTsKKysJICAgIGVsdF90eXBlLAorKwkgICAgcmFuZ2Vf dHlwZSk7CiAgfQogIAogIC8qIFJlc29sdmUgZHluYW1pYyBib3VuZHMgb2YgbWVtYmVycyBvZiB0 aGUgdW5pb24gVFlQRSB0byBzdGF0aWMKLUBAIC0xODQ2LDYgKzE5MjcsOCBAQCByZXNvbHZlX2R5 bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5Ci0gewotICAgc3RydWN0IHR5cGUgKnJlYWxf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUpOwotICAgc3RydWN0IHR5cGUgKnJlc29sdmVkX3R5 cGUgPSB0eXBlOwotKyAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcDsKLSsgIENPUkVf QUREUiB2YWx1ZTsKLSAKLSAgIGlmICghaXNfZHluYW1pY190eXBlX2ludGVybmFsIChyZWFsX3R5 cGUsIHRvcF9sZXZlbCkpCi0gICAgIHJldHVybiB0eXBlOwotQEAgLTE4NzYsMTEgKzE5NTksMTIg QEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eQotIAkgIH0KLSAKLSAJ Y2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0tCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1p Y19hcnJheSAodHlwZSk7Ci0rCWNhc2UgVFlQRV9DT0RFX1NUUklORzoKLSsJICByZXNvbHZlZF90 eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5ICh0eXBlLCBhZGRyKTsKLSAJICBicmVhazsKLSAK LSAJY2FzZSBUWVBFX0NPREVfUkFOR0U6Ci0tCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHlu YW1pY19yYW5nZSAodHlwZSk7Ci0rCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19y YW5nZSAodHlwZSwgYWRkcik7Ci0gCSAgYnJlYWs7Ci0gCi0gCWNhc2UgVFlQRV9DT0RFX1VOSU9O OgotQEAgLTE4OTMsNiArMTk3NywyNSBAQCByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAo c3RydWN0IHR5Ci0gCX0KLSAgICAgfQorQEAgLTE5MzgsNiArMjAxOSwyNSBAQCByZXNvbHZlX2R5 bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5CisgICBlbHNlCisgICAgIFRZUEVfREFUQV9M T0NBVElPTiAocmVzb2x2ZWRfdHlwZSkgPSBOVUxMOwogIAogKyAgLyogUmVzb2x2ZSBkYXRhX2xv Y2F0aW9uIGF0dHJpYnV0ZS4gICovCiArICBwcm9wID0gVFlQRV9EQVRBX0xPQ0FUSU9OIChyZXNv bHZlZF90eXBlKTsKQEAgLTExNDcsOCArODczLDggQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZ2Ri dHlwZXMuYwogICAgcmV0dXJuIHJlc29sdmVkX3R5cGU7CiAgfQogIAotQEAgLTQxMTAsNiArNDIx MywyNyBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqCi0gICAgICAg KlRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUpID0gKlRZUEVfUkFOR0VfREFUQSAodHlwZSk7CitA QCAtNDE3NCw2ICs0Mjc0LDI3IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxl ICpvYmoKKyAJICAgICAgc2l6ZW9mIChzdHJ1Y3QgZHluYW1pY19wcm9wKSk7CiAgICAgIH0KICAK ICsgIC8qIENvcHkgdGhlIGRhdGEgbG9jYXRpb24gaW5mb3JtYXRpb24uICAqLwpAQCAtMTE3NSw5 ICs5MDEsOSBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCiAgICAvKiBDb3B5IHBv aW50ZXJzIHRvIG90aGVyIHR5cGVzLiAgKi8KICAgIGlmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBl KSkKICAgICAgVFlQRV9UQVJHRVRfVFlQRSAobmV3X3R5cGUpID0gCi1AQCAtNDE1Niw2ICs0Mjgw LDQ0IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCi0gICBtZW1jcHkgKFRZ UEVfTUFJTl9UWVBFIChuZXdfdHlwZSksIFRZUEVfTUFJTl9UWVBFICh0eXBlKSwKLSAJICBzaXpl b2YgKHN0cnVjdCBtYWluX3R5cGUpKTsKK0BAIC00MjI3LDYgKzQzNDgsNDQgQEAgY29weV90eXBl IChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSkKKyAJICAgICAgc2l6ZW9mIChzdHJ1Y3QgZHluYW1p Y19wcm9wKSk7CisgICAgIH0KICAKICsgIGlmIChUWVBFX0FMTE9DQVRFRF9QUk9QICh0eXBlKSkK ICsgICAgewpAQCAtMTIyMCwxMSArOTQ2LDExIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnR5 cGVzLmMKICAgIHJldHVybiBuZXdfdHlwZTsKICB9CiAgDAotSW5kZXg6IGdkYi03LjguMS9nZGIv Z2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnR5cGVzLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9nZGIvZ2RidHlwZXMuaAkyMDE0LTEyLTEzIDE1 OjUyOjA3LjcwODMxMDI2MyArMDEwMAotKysrIGdkYi03LjguMS9nZGIvZ2RidHlwZXMuaAkyMDE0 LTEyLTEzIDE1OjUyOjEwLjgyNTMwNzEzMCArMDEwMAotQEAgLTY3MCw2ICs2NzAsMTAgQEAgc3Ry dWN0IG1haW5fdHlwZQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZ2RidHlwZXMu aAkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2dkYnR5cGVzLmgJMjAxNS0wMS0wNiAyMzowMzowNy40Mjk2ODQ3NzcgKzAxMDAK K0BAIC02NjAsNiArNjYwLDEwIEBAIHN0cnVjdCBtYWluX3R5cGUKICAKICAgICAgICBzdHJ1Y3Qg ZHluYW1pY19wcm9wIGhpZ2g7CiAgCkBAIC0xMjM1LDE1ICs5NjEsMTAgQEAgSW5kZXg6IGdkYi03 LjguMS9nZGIvZ2RidHlwZXMuaAogICAgICAgIC8qIFRydWUgaWYgSElHSCByYW5nZSBib3VuZCBj b250YWlucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZQogIAkgc3VicmFuZ2UuIFRoaXMg YWZmZWN0cyBob3cgdGhlIGZpbmFsIGhpZ2h0IGJvdW5kIGlzIGNvbXB1dGVkLiAgKi8KICAKLUBA IC03MjUsNiArNzI5LDIzIEBAIHN0cnVjdCBtYWluX3R5cGUKK0BAIC03MjAsNiArNzI0LDE4IEBA IHN0cnVjdCBtYWluX3R5cGUKKyAgICAgIHRoaXMgZmllbGQgeWllbGRzIHRvIHRoZSBsb2NhdGlv biBvZiB0aGUgZGF0YSBmb3IgYW4gb2JqZWN0LiAgKi8KICAKLSAgICAgc3RydWN0IGZ1bmNfdHlw ZSAqZnVuY19zdHVmZjsKLSAgIH0gdHlwZV9zcGVjaWZpYzsKLSsKLSsgIC8qICogQ29udGFpbnMg YSBsb2NhdGlvbiBkZXNjcmlwdGlvbiB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgdHlwZS4gRXZhbHVh dGluZwotKyAgICAgdGhpcyBmaWVsZCB5aWVsZHMgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBkYXRh IGZvciBhbiBvYmplY3QuICAqLwotKwotKyAgc3RydWN0IGR5bmFtaWNfcHJvcCAqZGF0YV9sb2Nh dGlvbjsKKyAgIHN0cnVjdCBkeW5hbWljX3Byb3AgKmRhdGFfbG9jYXRpb247CiArCiArICAvKiBT dHJ1Y3R1cmUgZm9yIERXX0FUX2FsbG9jYXRlZC4KICsgICAgIFRoZSBwcmVzZW5jZSBvZiB0aGlz IGF0dHJpYnV0ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgb2JqZWN0IG9mIHRoZSB0eXBlCkBAIC0xMjU5 LDcgKzk4MCw3IEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnR5cGVzLmgKICB9OwogIAogIC8q ICogQSBgYHN0cnVjdCB0eXBlJycgZGVzY3JpYmVzIGEgcGFydGljdWxhciBpbnN0YW5jZSBvZiBh IHR5cGUsIHdpdGgKLUBAIC0xMjAzLDYgKzEyMjQsMzkgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVf Z25hdF9hdXhfdHlwZSAoc3RydQorQEAgLTExOTgsNiArMTIxNCwzOSBAQCBleHRlcm4gdm9pZCBh bGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CiAgICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlw ZSktPmhpZ2gua2luZAogICNkZWZpbmUgVFlQRV9MT1dfQk9VTkRfS0lORChyYW5nZV90eXBlKSBc CiAgICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPmxvdy5raW5kCkBAIC0xMjk3LDkgKzEw MTgsOSBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5oCiArICAmJiBUWVBFX0FTU09D SUFURURfUFJPUCAodCktPmtpbmQgPT0gUFJPUF9DT05TVCBcCiArICAmJiAhVFlQRV9BU1NPQ0lB VEVEX1BST1AgKHQpLT5kYXRhLmNvbnN0X3ZhbCkKICAKLSAvKiBNb3RvLXNwZWNpZmljIHN0dWZm IGZvciBGT1JUUkFOIGFycmF5cy4gICovCi0gCi1AQCAtMTIxMCw2ICsxMjY0LDkgQEAgZXh0ZXJu IHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQorIC8qIEF0dHJpYnV0ZSBhY2Nlc3Nv cnMgZm9yIHRoZSB0eXBlIGRhdGEgbG9jYXRpb24uICAqLworICNkZWZpbmUgVFlQRV9EQVRBX0xP Q0FUSU9OKHRoaXN0eXBlKSBcCitAQCAtMTIxNSw2ICsxMjY0LDkgQEAgZXh0ZXJuIHZvaWQgYWxs b2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQogICAgIFRZUEVfSElHSF9CT1VORF9VTkRFRklORUQo VFlQRV9JTkRFWF9UWVBFKGFycmF5dHlwZSkpCiAgI2RlZmluZSBUWVBFX0FSUkFZX0xPV0VSX0JP VU5EX0lTX1VOREVGSU5FRChhcnJheXR5cGUpIFwKICAgICBUWVBFX0xPV19CT1VORF9VTkRFRklO RUQoVFlQRV9JTkRFWF9UWVBFKGFycmF5dHlwZSkpCkBAIC0xMzA5LDcgKzEwMzAsNyBAQCBJbmRl eDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5oCiAgCiAgI2RlZmluZSBUWVBFX0FSUkFZX1VQUEVS X0JPVU5EX1ZBTFVFKGFycmF5dHlwZSkgXAogICAgIChUWVBFX0hJR0hfQk9VTkQoVFlQRV9JTkRF WF9UWVBFKChhcnJheXR5cGUpKSkpCi1AQCAtMTY3OCw2ICsxNzM1LDcgQEAgZXh0ZXJuIHN0cnVj dCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZV93aQorQEAgLTE2ODUsNiArMTczNyw3IEBAIGV4dGVy biBzdHJ1Y3QgdHlwZSAqY3JlYXRlX2FycmF5X3R5cGVfd2kKICAKICBleHRlcm4gc3RydWN0IHR5 cGUgKmNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqLAogIAkJ CQkgICAgICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqLApAQCAtMTMxNywxMCArMTAzOCwx MCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5oCiAgCQkJCSAgICAgICBjb25zdCBz dHJ1Y3QgZHluYW1pY19wcm9wICopOwogIAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX2Fy cmF5X3R5cGUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCi1JbmRleDogZ2RiLTcuOC4x L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFsbG9jLWFzc29jLmV4cAorSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYWxsb2MtYXNz b2MuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LWFsbG9jLWFzc29jLmV4cAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNTMwNzEzMCArMDEwMAorKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYWxsb2Mt YXNzb2MuZXhwCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDI5Njg0Nzc3ICswMTAwCiBAQCAtMCwwICsx LDY1IEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICsKQEAgLTEzODcsMTAgKzExMDgsMTAgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1hbGxvYy1hc3NvYy5leHAKICtnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAidmxhMi1kZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicHJpbnQgbCIgIiA9IFxcLkZBTFNF XFwuIiAicHJpbnQgdmxhMiBkZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicHJpbnQgdmxhMiIgIiA9 IDxub3QgYWxsb2NhdGVkPiIgInByaW50IGRlYWxsb2NhdGVkIHZsYTIiCi1JbmRleDogZ2RiLTcu OC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5leHAKK0luZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBl cy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt ZGF0YXR5cGVzLmV4cAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNTMwNzEzMCArMDEwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVz LmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQyOTY4NDc3NyArMDEwMAogQEAgLTAsMCArMSw4MiBA QAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC0xNDc0LDEwICsxMTk1LDEwIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtZGF0YXR5cGVzLmV4cAogKyAgInByaW50IGxvZ2ljYWx2bGEoNSw1LDUpICgy bmQpIgogK2dkYl90ZXN0ICJwcmludCBjaGFyYWN0ZXJ2bGEoNSw1LDUpIiAiID0gJ1gnIiBcCiAr ICAicHJpbnQgY2hhcmFjdGVydmxhKDUsNSw1KSAoMm5kKSIKLUluZGV4OiBnZGItNy44LjEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmY5MAorSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmY5MAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRhdHlw ZXMuZjkwCTIwMTQtMTItMTMgMTU6NTI6MTAuODI1MzA3MTMwICswMTAwCisrKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRhdHlwZXMuZjkwCTIw MTUtMDEtMDYgMjM6MDM6MDcuNDI5Njg0Nzc3ICswMTAwCiBAQCAtMCwwICsxLDUxIEBACiArISBD b3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xNTMw LDEwICsxMjUxLDEwIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtZGF0YXR5cGVzLmY5MAogKyAgISBkdW1teSBzdGF0ZW1lbnQgZm9yIGJwCiArICBsID0g LkZBTFNFLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgISB2bGFzLW1vZGlmaWVkCiArZW5k IHByb2dyYW0gdmxhX3ByaW1pdGl2ZXMKLUluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC4xL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCTIwMTQtMTItMTMgMTU6NTI6MTAu ODI1MzA3MTMwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEw MAogQEAgLTAsMCArMSw2MSBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCiArCkBAIC0xNTk2LDEwICsxMzE3LDEwIEBAIEluZGV4OiBnZGItNy44LjEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKICsgICJwcmludCB2bGEzIChh ZnRlciBmdW5jMikiCiArZ2RiX3Rlc3QgInB0eXBlIHZsYTMiICJ0eXBlID0gaW50ZWdlclxcXChr aW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKICsgICJwdHlwZSB2bGEzIChhZnRlciBmdW5jMikiCi1J bmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCitJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1m dW5jLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1mdW5jLmY5MAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNjMwNzEyOSArMDEwMAorKysrIGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5mOTAJMjAx NS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAKIEBAIC0wLDAgKzEsNzEgQEAKICshIENv cHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTE2NzIs MTAgKzEzOTMsMTAgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1mdW5jLmY5MAogKwogKyAgcmV0ID0gLlRSVUUuICAgICAgICAgICAgICAgICEgZnVuYzIt cmV0dXJuZWQKICtlbmQgcHJvZ3JhbSB2bGFfZnVuYwotSW5kZXg6IGdkYi03LjguMS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1oaXN0b3J5LmV4cAorSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlzdG9yeS5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlzdG9yeS5leHAJMjAx NC0xMi0xMyAxNTo1MjoxMC44MjYzMDcxMjkgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWhpc3RvcnkuZXhwCTIwMTUtMDEtMDYgMjM6 MDM6MDcuNDMwNjg0NzgyICswMTAwCiBAQCAtMCwwICsxLDYyIEBACiArIyBDb3B5cmlnaHQgMjAx NCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE3MzksMTAgKzE0NjAsMTAg QEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1oaXN0b3J5 LmV4cAogKyMgVHJ5IHRvIGFjY2VzcyBoaXN0b3J5IHZhbHVlcyBmb3IgdmxhIHZhbHVlcy4KICtn ZGJfdGVzdCAicHJpbnQgXCQ5IiAiID0gMTMxMSIgInByaW50IFwkOSIKICtnZGJfdGVzdCAicHJp bnQgXCQxMCIgIiA9IDEwMDEiICJwcmludCBcJDEwIgotSW5kZXg6IGdkYi03LjguMS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS1zdWIuZXhwCitJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS1zdWIuZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLXN1Yi5l eHAJMjAxNC0xMi0xMyAxNTo1MjoxMC44MjYzMDcxMjkgKzAxMDAKKysrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLXN1Yi5leHAJMjAxNS0w MS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAKIEBAIC0wLDAgKzEsODcgQEAKICsjIENvcHly aWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTgzMSwxMCAr MTU1MiwxMCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXB0eXBlLXN1Yi5leHAKICsgICJwdHlwZSBhcnJheTEoMTAwKSAoYXJiaXRyYXJ5IGxlbmd0aCki CiArZ2RiX3Rlc3QgInB0eXBlIGFycmF5Mig0LDEwMCkiICJ0eXBlID0gaW50ZWdlclxcXChraW5k PTRcXFwpIiBcCiArICAicHR5cGUgYXJyYXkyKDQsMTAwKSAoYXJiaXRyYXJ5IGxlbmd0aCkiCi1J bmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAor SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt cHR5cGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXB0eXBlLmV4cAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNjMwNzEyOSArMDEwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhw CTIwMTUtMDEtMDYgMjM6MDM6MDcuNDMwNjg0NzgyICswMTAwCiBAQCAtMCwwICsxLDk2IEBACiAr IyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE5 MzIsMTAgKzE2NTMsMTAgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1wdHlwZS5leHAKICtnZGJfdGVzdCAicHR5cGUgdmxhMig1LCA0NSwgMjApIiBcCiAr ICAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBiZWNhdXNlIG5vdCBhbGxvY2F0ZWQiIFwKICsgICJw dHlwZSB2bGEyKDUsIDQ1LCAyMCkgbm90IGFsbG9jYXRlZCIKLUluZGV4OiBnZGItNy44LjEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAorSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zaXplb2YuZXhwCTIw MTQtMTItMTMgMTU6NTI6MTAuODI2MzA3MTI5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zaXplb2YuZXhwCTIwMTUtMDEtMDYgMjM6 MDM6MDcuNDMwNjg0NzgyICswMTAwCiBAQCAtMCwwICsxLDQ2IEBACiArIyBDb3B5cmlnaHQgMjAx NCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE5ODMsMTAgKzE3MDQsMTAg QEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zaXplb2Yu ZXhwCiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtYXNzb2NpYXRl ZCJdCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRlZCIKICtnZGJf dGVzdCAicHJpbnQgc2l6ZW9mKHB2bGEpIiAiID0gNDAwMCIgInByaW50IHNpemVvZiBhc3NvY2lh dGVkIHB2bGEiCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXN0cmlkZS5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNjMwNzEy OSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtc3RyaWRlLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAogQEAg LTAsMCArMSw0NCBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArCkBAIC0yMDMyLDEwICsxNzUzLDEwIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAogK2dkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJzaW5nbGUtZWxlbWVudCIKICtnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCg1 XFxcKSIgInByaW50IHNpbmdsZS1lbGVtZW50IgogK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAi ID0gNSIgInByaW50IG9uZSBzaW5nbGUtZWxlbWVudCIKLUluZGV4OiBnZGItNy44LjEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAorSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwCTIwMTQt MTItMTMgMTU6NTI6MTAuODI2MzA3MTI5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwCTIwMTUtMDEtMDYgMjM6MDM6 MDcuNDMwNjg0NzgyICswMTAwCiBAQCAtMCwwICsxLDMwIEBACiArISBDb3B5cmlnaHQgMjAxNCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yMDY3LDEwICsxNzg4LDEwIEBA IEluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5 MAogKwogKyAgcHZsYSA9PiBudWxsKCkgICAgICAgICEgc2luZ2xlLWVsZW1lbnQKICtlbmQgcHJv Z3JhbSB2bGFfc3RyaWRlCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXN0cmluZ3MuZXhwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguMS9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAkyMDE0LTEyLTEzIDE1OjUyOjEw LjgyNjMwNzEyOSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIg KzAxMDAKIEBAIC0wLDAgKzEsMTA0IEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIxNzYsMTAgKzE4OTcsMTAgQEAgSW5kZXg6IGdkYi03 LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAogKyAgIndoYXRp cyB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0ZWQiCiArZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFy X3AiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKSIgXAogKyAgInB0eXBl IHZhcl9jaGFyX3AgYWZ0ZXIgYXNzb2NpYXRlZCIKLUluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCTIwMTQt MTItMTMgMTU6NTI6MTAuODI2MzA3MTI5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAkyMDE1LTAxLTA2IDIzOjAz OjA3LjQzMDY4NDc4MiArMDEwMAogQEAgLTAsMCArMSw0MCBAQAogKyEgQ29weXJpZ2h0IDIwMTQg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMjIyMSwxMCArMTk0MiwxMCBA QCBJbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3Mu ZjkwCiArICB2YXJfY2hhcl9wID0+IG51bGwoKQogKyAgbCA9IGFzc29jaWF0ZWQodmFyX2NoYXJf cCkgICAgICAgICAgICAgICEgdmFyX2NoYXJfcC1ub3QtYXNzb2NpYXRlZAogK2VuZCBwcm9ncmFt IHZsYV9zdHJpbmdzCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXN1Yi5mOTAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXN1Yi5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtc3ViLmY5MAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNzMwNzEyOCArMDEw MAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt c3ViLmY5MAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAogQEAgLTAsMCArMSw4 MiBAQAogKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAr IQpAQCAtMjMwOCwxMCArMjAyOSwxMCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXN1Yi5mOTAKICsKICsgIGNhbGwgYmFyKHN1Yl9hcnIzLCBzdWJfYXJy MSkKICtlbmQgcHJvZ3JhbSB2bGFfc3ViCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1hcmJpdHJhcnkuZXhwCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWItYXJiaXRy YXJ5LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS12YWx1ZS1zdWItYXJiaXRyYXJ5LmV4cAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNzMwNzEyOCAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtdmFsdWUtc3ViLWFyYml0cmFyeS5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIg KzAxMDAKIEBAIC0wLDAgKzEsMzUgQEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjM0OCwxMCArMjA2OSwxMCBAQCBJbmRleDogZ2RiLTcu OC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1hcmJpdHJhcnkuZXhw CiArZ2RiX3Rlc3QgInAgYXJyYXkxKDEwMCkiICIgPSAxMDAiICJwcmludCBhcmJpdGFyeSBhcnJh eTEoMTAwKSIKICtnZGJfdGVzdCAicCBhcnJheTIoNCwxMCkiICIgPSAxIiAicHJpbnQgYXJiaXRh cnkgYXJyYXkyKDQsMTApIgogK2dkYl90ZXN0ICJwIGFycmF5Mig0LDEwMCkiICIgPSAxIiAicHJp bnQgYXJiaXRhcnkgYXJyYXkyKDQsMTAwKSIKLUluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWZpbmlzaC5leHAKK0luZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1maW5pc2gu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZh bHVlLXN1Yi1maW5pc2guZXhwCTIwMTQtMTItMTMgMTU6NTI6MTAuODI3MzA3MTI4ICswMTAwCisr KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1 ZS1zdWItZmluaXNoLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyArMDEwMAogQEAg LTAsMCArMSw0OSBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArCkBAIC0yNDAyLDEwICsyMTIzLDEwIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWZpbmlzaC5leHAKICtnZGJfdGVzdCAi cCBzdWJfYXJyMigxLCAxLCAxKSIgIiA9IDMwIiAic3ViX2FycjIoMSwgMSwgMSkgYWZ0ZXIgZmlu aXNoIgogK2dkYl90ZXN0ICJwIHN1Yl9hcnIyKDIsIDEsIDEpIiAiID0gMjAiICJzdWJfYXJyMigy LCAxLCAxKSBhZnRlciBmaW5pc2giCiArCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi5leHAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLmV4cAkyMDE0 LTEyLTEzIDE1OjUyOjEwLjgyNzMwNzEyOCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLmV4cAkyMDE1LTAxLTA2IDIz OjAzOjA3LjQzMTY4NDc4NyArMDEwMAogQEAgLTAsMCArMSw5MCBAQAogKyMgQ29weXJpZ2h0IDIw MTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yNDk3LDEwICsyMjE4LDEw IEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUt c3ViLmV4cAogKyAgInNldCBhcnJheSgyLDIsMikgdG8gMjAgaW4gc3Vicm91dGluZSAocGFzc2Vk IHZsYSkiCiArZ2RiX3Rlc3QgInByaW50IGFycmF5MiIgIiA9IFxcKCAqXFwoICpcXCggKjMwLCAq MjAsICozLFxbKCkzLCAuXF0qXFwpIiBcCiArICAicHJpbnQgYXJyYXkyIGluIGZvbyBhZnRlciBp dCB3YXMgbW9maWZpZWQgaW4gZGVidWdnZXIgKHBhc3NlZCB2bGEpIgotSW5kZXg6IGdkYi03Ljgu MS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAKK0luZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAJ MjAxNC0xMi0xMyAxNTo1MjoxMC44MjczMDcxMjggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAkyMDE1LTAxLTA2IDIz OjAzOjA3LjQzMTY4NDc4NyArMDEwMAogQEAgLTAsMCArMSwxNDggQEAKICsjIENvcHlyaWdodCAy MDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjY1MCwxMCArMjM3MSwx MCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVl LmV4cAogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJwdmxhLWRlYXNzb2NpYXRlZCIKICtn ZGJfdGVzdCAicHJpbnQgXCRteXB2YXIoMSwzLDgpIiAiID0gMTAwMSIgXAogKyAgInByaW50IFwk bXlwdmFyKDEsMyw4KSBhZnRlciBkZWFsbG9jYXRlZCIKLUluZGV4OiBnZGItNy44LjEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCTIwMTQtMTItMTMgMTU6NTI6MTAuODI3MzA3 MTI4ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS5mOTAJMjAxNS0wMS0wNiAyMzowMzowNy40MzE2ODQ3ODcgKzAxMDAKIEBAIC0wLDAg KzEsNTYgQEAKICshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgogKyEKQEAgLTI3MTEsMTAgKzI0MzIsMTAgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAKICsgIGFsbG9jYXRlICh2bGEzICgyLDIpKSAgICAgICAg ICAgICAgICEgdmxhMi1kZWFsbG9jYXRlZAogKyAgdmxhMyg6LDopID0gMTMKICtlbmQgcHJvZ3Jh bSB2bGEKLUluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRy YW4uZXhwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5taS9t aS12bGEtZm9ydHJhbi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktdmxhLWZvcnRyYW4uZXhwCTIwMTQtMTItMTMgMTU6NTI6MTAuODI3MzA3MTI4ICswMTAw CisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9y dHJhbi5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzE2ODQ3ODcgKzAxMDAKIEBAIC0wLDAgKzEs MTgyIEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICsKQEAgLTI4OTgsMTAgKzI2MTksMTAgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRl L2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAKICsKICttaV9nZGJfZXhpdAogK3JldHVybiAwCi1J bmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3ZsYS5mOTAKK0luZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3ZsYS5mOTAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvdmxhLmY5MAkyMDE0LTEyLTEzIDE1OjUyOjEw LjgyNzMwNzEyOCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIubWkvdmxhLmY5MAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyArMDEwMAogQEAgLTAs MCArMSw0MiBAQAogKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCiArIQpAQCAtMjk0NSwxMSArMjY2NiwxMSBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL3ZsYS5mOTAKICsgIHB2bGEyID0+IG51bGwoKQogKyAgbCA9IGFzc29jaWF0 ZWQocHZsYTIpICAgICAgICEgcHZsYTItc2V0LXRvLW51bGwKICtlbmQgcHJvZ3JhbSB2bGEKLUlu ZGV4OiBnZGItNy44LjEvZ2RiL3R5cGVwcmludC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9nZGIvdHlw ZXByaW50LmMJMjAxNC0xMi0xMyAxNTo1MjowNy43MTAzMTAyNjEgKzAxMDAKLSsrKyBnZGItNy44 LjEvZ2RiL3R5cGVwcmludC5jCTIwMTQtMTItMTMgMTU6NTI6MTAuODI4MzA3MTI3ICswMTAwCi1A QCAtNDU5LDYgKzQ1OSwxMyBAQCB3aGF0aXNfZXhwIChjaGFyICpleHAsIGludCBzaG93KQorLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMjo1 MToxNy42NjMyNDA5MDcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90eXBlcHJp bnQuYwkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyArMDEwMAorQEAgLTQ1Niw2ICs0NTYs MTMgQEAgd2hhdGlzX2V4cCAoY2hhciAqZXhwLCBpbnQgc2hvdykKICAKICAgIHR5cGUgPSB2YWx1 ZV90eXBlICh2YWwpOwogIApAQCAtMjk2MywxMSArMjY4NCwxMSBAQCBJbmRleDogZ2RiLTcuOC4x L2dkYi90eXBlcHJpbnQuYwogICAgZ2V0X3VzZXJfcHJpbnRfb3B0aW9ucyAoJm9wdHMpOwogICAg aWYgKG9wdHMub2JqZWN0cHJpbnQpCiAgICAgIHsKLUluZGV4OiBnZGItNy44LjEvZ2RiL3ZhbGFy aXRoLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxhcml0aC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNC0xMi0xMyAxNTo1Mjow Ny43MTEzMTAyNjAgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL3ZhbGFyaXRoLmMJMjAxNC0xMi0x MyAxNTo1MjoxMC44MjgzMDcxMjcgKzAxMDAKLUBAIC0xOTUsMTIgKzE5NSwzMSBAQCB2YWx1ZV9z dWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqCistLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMDEtMDYgMjI6NTE6MTcuNjYzMjQwOTA3ICswMTAw CisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsYXJpdGguYwkyMDE1LTAxLTA2IDIzOjAz OjA3LjQzMjY4NDc5MiArMDEwMAorQEAgLTE5MywxMiArMTkzLDMxIEBAIHZhbHVlX3N1YnNjcmlw dGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICoKICAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKICAgIHN0cnVjdCB0eXBlICplbHRf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKICAg IHVuc2lnbmVkIGludCBlbHRfc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHRfdHlwZSk7CkBAIC0zMDAx LDExICsyNzIyLDExIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3ZhbGFyaXRoLmMKICAKICAgIGlm IChWQUxVRV9MVkFMIChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkp KQogICAgICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAoZWx0X3R5cGUpOwotSW5kZXg6IGdkYi03 LjguMS9nZGIvdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHBy aW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9nZGIvdmFscHJpbnQuYwkyMDE0 LTEyLTEzIDE1OjUyOjA3LjcxMjMxMDI1OSArMDEwMAotKysrIGdkYi03LjguMS9nZGIvdmFscHJp bnQuYwkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyODMwNzEyNyArMDEwMAotQEAgLTMwNyw2ICszMDcs MTggQEAgdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlCistLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi92YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NTE6MTcuNjYz MjQwOTA3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFscHJpbnQuYwkyMDE1 LTAxLTA2IDIzOjAzOjA3LjQzMjY4NDc5MiArMDEwMAorQEAgLTMwMyw2ICszMDMsMTggQEAgdmFs cHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlCiAgewogICAgQ0hFQ0tfVFlQRURF RiAodHlwZSk7CiAgCkBAIC0zMDI0LDcgKzI3NDUsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi92 YWxwcmludC5jCiAgICBpZiAoVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfVU5JT04KICAg ICAgICAmJiBUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9TVFJVQ1QKICAgICAgICAmJiBU WVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9BUlJBWSkKLUBAIC0zNjIsNiArMzc0LDE4IEBA IHZhbF9wcmludF9pbnZhbGlkX2FkZHJlc3MgKHN0cnVjdCB1aV9maWwKK0BAIC0zNTksNiArMzcx LDE4IEBAIHZhbF9wcmludF9pbnZhbGlkX2FkZHJlc3MgKHN0cnVjdCB1aV9maWwKICAgIGZwcmlu dGZfZmlsdGVyZWQgKHN0cmVhbSwgXygiPGludmFsaWQgYWRkcmVzcz4iKSk7CiAgfQogIApAQCAt MzA0Myw3ICsyNzY0LDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdmFscHJpbnQuYwogIC8qIEEg Z2VuZXJpYyB2YWxfcHJpbnQgdGhhdCBpcyBzdWl0YWJsZSBmb3IgdXNlIGJ5IGxhbmd1YWdlCiAg ICAgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBsYV92YWxfcHJpbnQgbWV0aG9kLiAgVGhpcyBmdW5j dGlvbiBjYW4KICAgICBoYW5kbGUgbW9zdCB0eXBlIGNvZGVzLCB0aG91Z2ggbm90IGFsbCwgbm90 YWJseSBleGNlcHRpb24KLUBAIC04MDMsMTIgKzgyNywxNiBAQCBzdGF0aWMgaW50CitAQCAtODAw LDEyICs4MjQsMTYgQEAgc3RhdGljIGludAogIHZhbHVlX2NoZWNrX3ByaW50YWJsZSAoc3RydWN0 IHZhbHVlICp2YWwsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkgICAgICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewpAQCAtMzA2MCw3ICsyNzgxLDcg QEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdmFscHJpbnQuYwogICAgaWYgKHZhbHVlX2VudGlyZWx5 X29wdGltaXplZF9vdXQgKHZhbCkpCiAgICAgIHsKICAgICAgICBpZiAob3B0aW9ucy0+c3VtbWFy eSAmJiAhdmFsX3ByaW50X3NjYWxhcl90eXBlX3AgKHZhbHVlX3R5cGUgKHZhbCkpKQotQEAgLTgz NCw2ICs4NjIsMTggQEAgdmFsdWVfY2hlY2tfcHJpbnRhYmxlIChzdHJ1Y3QgdmFsdWUgKnZhbAor QEAgLTgzMSw2ICs4NTksMTggQEAgdmFsdWVfY2hlY2tfcHJpbnRhYmxlIChzdHJ1Y3QgdmFsdWUg KnZhbAogICAgICAgIHJldHVybiAwOwogICAgICB9CiAgCkBAIC0zMDc5LDEwICsyODAwLDEwIEBA IEluZGV4OiBnZGItNy44LjEvZ2RiL3ZhbHByaW50LmMKICAgIHJldHVybiAxOwogIH0KICAKLUlu ZGV4OiBnZGItNy44LjEvZ2RiL3ZhbHByaW50LmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi92YWxwcmludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL3ZhbHBy aW50LmgJMjAxNC0xMi0xMyAxNTo1MjowNy43MTIzMTAyNTkgKzAxMDAKLSsrKyBnZGItNy44LjEv Z2RiL3ZhbHByaW50LmgJMjAxNC0xMi0xMyAxNTo1MjoxMC44MjgzMDcxMjcgKzAxMDAKKy0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNS0wMS0wNiAyMjo1MTox Ny42NjMyNDA5MDcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5o CTIwMTUtMDEtMDYgMjM6MDM6MDcuNDMyNjg0NzkyICswMTAwCiBAQCAtMjE3LDQgKzIxNyw4IEBA IGV4dGVybiB2b2lkIG91dHB1dF9jb21tYW5kX2NvbnN0IChjb25zdAogIAogIGV4dGVybiBpbnQg dmFsX3ByaW50X3NjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eXBlKTsKQEAgLTMwOTIsMTEg KzI4MTMsMTEgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdmFscHJpbnQuaAogK2V4dGVybiB2b2lk IHZhbF9wcmludF9ub3RfYXNzb2NpYXRlZCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiArCiAg I2VuZGlmCi1JbmRleDogZ2RiLTcuOC4xL2dkYi92YWx1ZS5jCitJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvdmFsdWUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmlnL2dkYi92 YWx1ZS5jCTIwMTQtMTItMTMgMTU6NTI6MDcuNzEzMzEwMjU4ICswMTAwCi0rKysgZ2RiLTcuOC4x L2dkYi92YWx1ZS5jCTIwMTQtMTItMTMgMTU6NTI6MTAuODI5MzA3MTI2ICswMTAwCi1AQCAtNDMs NiArNDMsNyBAQAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdmFsdWUuYwkyMDE1 LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3ZhbHVlLmMJMjAxNS0wMS0wNiAyMzowMzowNy40MzM2ODQ3OTcgKzAxMDAKK0BAIC00MCw2 ICs0MCw3IEBACiAgI2luY2x1ZGUgInRyYWNlcG9pbnQuaCIKICAjaW5jbHVkZSAiY3AtYWJpLmgi CiAgI2luY2x1ZGUgInVzZXItcmVncy5oIgpAQCAtMzEwNCw3ICsyODI1LDcgQEAgSW5kZXg6IGdk Yi03LjguMS9nZGIvdmFsdWUuYwogIAogIC8qIFByb3RvdHlwZXMgZm9yIGV4cG9ydGVkIGZ1bmN0 aW9ucy4gICovCiAgCi1AQCAtMTY0OSw2ICsxNjUwLDI1IEBAIHNldF92YWx1ZV9jb21wb25lbnRf bG9jYXRpb24gKHN0cnVjdCB2YWwKK0BAIC0xNzU1LDYgKzE3NTYsMjUgQEAgc2V0X3ZhbHVlX2Nv bXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbAogICAgICAgIGlmIChmdW5jcy0+Y29weV9jbG9z dXJlKQogICAgICAgICAgY29tcG9uZW50LT5sb2NhdGlvbi5jb21wdXRlZC5jbG9zdXJlID0gZnVu Y3MtPmNvcHlfY2xvc3VyZSAod2hvbGUpOwogICAgICB9CkBAIC0zMTMwLDcgKzI4NTEsNyBAQCBJ bmRleDogZ2RiLTcuOC4xL2dkYi92YWx1ZS5jCiAgfQogIAogIAwKLUBAIC0yOTUzLDEzICsyOTcz LDIyIEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKK0BAIC0zMDQx LDEzICszMDYxLDIyIEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcK ICAJdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOwogICAgICAgIGVsc2UKICAJewpAQCAt MzE1OSw3ICsyODgwLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdmFsdWUuYwogICAgICB9CiAg ICBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uICh2LCBhcmcxKTsKICAgIFZBTFVFX1JFR05V TSAodikgPSBWQUxVRV9SRUdOVU0gKGFyZzEpOwotQEAgLTM1NDIsNyArMzU3MSw4IEBAIHJlYWRq dXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YWwKK0BAIC0zNjM1LDcgKzM2NjQsOCBA QCByZWFkanVzdF9pbmRpcmVjdF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFsCiAgCQkJICAgICAgc3Ry dWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSkKICB7CiAgICAvKiBSZS1hZGp1c3QgdHlwZS4gICov CkBAIC0zMTY5LDcgKzI4OTAsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi92YWx1ZS5jCiAgCiAg ICAvKiBBZGQgZW1iZWRkaW5nIGluZm8uICAqLwogICAgc2V0X3ZhbHVlX2VuY2xvc2luZ190eXBl ICh2YWx1ZSwgZW5jX3R5cGUpOwotQEAgLTM1NTksNiArMzU4OSwxMiBAQCBjb2VyY2VfcmVmIChz dHJ1Y3QgdmFsdWUgKmFyZykKK0BAIC0zNjUyLDYgKzM2ODIsMTIgQEAgY29lcmNlX3JlZiAoc3Ry dWN0IHZhbHVlICphcmcpCiAgICBzdHJ1Y3QgdmFsdWUgKnJldHZhbDsKICAgIHN0cnVjdCB0eXBl ICplbmNfdHlwZTsKICAKQEAgLTMxODIsNyArMjkwMyw3IEBAIEluZGV4OiBnZGItNy44LjEvZ2Ri L3ZhbHVlLmMKICAgIHJldHZhbCA9IGNvZXJjZV9yZWZfaWZfY29tcHV0ZWQgKGFyZyk7CiAgICBp ZiAocmV0dmFsKQogICAgICByZXR1cm4gcmV0dmFsOwotQEAgLTM3MDIsOCArMzczOCwxNCBAQCB2 YWx1ZV9mZXRjaF9sYXp5IChzdHJ1Y3QgdmFsdWUgKnZhbCkKK0BAIC0zNzg2LDggKzM4MjIsMTQg QEAgdmFsdWVfZmV0Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwpCiAgICAgIH0KICAgIGVsc2Ug aWYgKFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCiAgICAgIHsKQEAgLTMxOTgsMyAr MjkxOSwzOSBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi92YWx1ZS5jCiAgCiAgICAgICAgaWYgKFRZ UEVfTEVOR1RIICh0eXBlKSkKICAJcmVhZF92YWx1ZV9tZW1vcnkgKHZhbCwgMCwgdmFsdWVfc3Rh Y2sgKHZhbCksCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYybG9jLmMKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIw MTQtMTItMjggMDI6NDg6NDMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvZHdhcmYybG9jLmMJMjAxNS0wMS0wNiAyMzowNTo1NS4yOTY0OTkyODcgKzAxMDAKK0BA IC0yMzI2LDYgKzIzNDYsMTEgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVj dCB0eQorIAkgICAgaW50IGluX3N0YWNrX21lbW9yeSA9IGR3YXJmX2V4cHJfZmV0Y2hfaW5fc3Rh Y2tfbWVtb3J5IChjdHgsIDApOworIAorIAkgICAgZG9fY2xlYW51cHMgKHZhbHVlX2NoYWluKTsK KysKKysJICAgIC8qIFNlbGVjdCByaWdodCBmcmFtZSB0byBjb3JyZWN0bHkgZXZhbHVhdGUgVkxB J3MgZHVyaW5nIGEgYmFja3RyYWNlLiAgKi8KKysJICAgIGlmIChpc19keW5hbWljX3R5cGUgKHR5 cGUpKQorKwkgICAgICBzZWxlY3RfZnJhbWUgKGZyYW1lKTsKKysKKyAJICAgIHJldHZhbCA9IHZh bHVlX2F0X2xhenkgKHR5cGUsIGFkZHJlc3MgKyBieXRlX29mZnNldCk7CisgCSAgICBpZiAoaW5f c3RhY2tfbWVtb3J5KQorIAkgICAgICBzZXRfdmFsdWVfc3RhY2sgKHJldHZhbCwgMSk7CitAQCAt MjU0Niw2ICsyNTQ2LDE5IEBAIGR3YXJmMl9jb21waWxlX3Byb3BlcnR5X3RvX2MgKHN0cnVjdCB1 aV8KKyAJCQkgICAgIGRhdGEsIGRhdGEgKyBzaXplLCBwZXJfY3UpOworIH0KKyAKKysvKiBTZWUg ZHdhcmYybG9jLmguICAqLworKworK2ludAorK2R3YXJmMl9hZGRyZXNzX2RhdGFfdmFsaWQgKGNv bnN0IHN0cnVjdCB0eXBlICp0eXBlKQorK3sKKysgIGlmIChUWVBFX05PVF9BU1NPQ0lBVEVEICh0 eXBlKSkKKysgICAgcmV0dXJuIDA7CisrCisrICBpZiAoVFlQRV9OT1RfQUxMT0NBVEVEICh0eXBl KSkKKysgICAgcmV0dXJuIDA7CisrCisrICByZXR1cm4gMTsKKyt9CisgDAorIC8qIEhlbHBlciBm dW5jdGlvbnMgYW5kIGJhdG9uIGZvciBkd2FyZjJfbG9jX2Rlc2NfbmVlZHNfZnJhbWUuICAqLwor IAoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggYjc3YjcwYi4uYTE1OTJj NSAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTIxLDEyICsyMSwxMiBA QCBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogJWdsb2JhbCBzbmFwc3JjICAgIDIwMTQwNjExCiAj IFNlZSB0aW1lc3RhbXAgb2Ygc291cmNlIGdudWxpYiBpbnN0YWxsZWQgaW50byBnZGIvZ251bGli LyAuCiAlZ2xvYmFsIHNuYXBnbnVsaWIgMjAxMjEyMTMKLSVnbG9iYWwgdGFybmFtZSBnZGItJXt2 ZXJzaW9ufS4yMDE0MTIyOAotVmVyc2lvbjogNy44LjEKKyVnbG9iYWwgdGFybmFtZSBnZGItJXt2 ZXJzaW9ufQorVmVyc2lvbjogNy44LjUwLjIwMTUwMTA4CiAKICMgVGhlIHJlbGVhc2UgYWx3YXlz IGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1 cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5k ZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogMzYlez9kaXN0fQor UmVsZWFzZTogMSV7P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhj ZXB0aW9ucyBhbmQgR1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFu ZCBMR1BMdjIrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4gYW5kIEdGREwKIEdyb3VwOiBEZXZl bG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTIxOSw3ICsyMTksNyBAQCBQYXRjaDIzMTogZ2RiLTYuMy1i ejIwMjY4OS1leGVjLWZyb20tcHRocmVhZC10ZXN0LnBhdGNoCiAKICMgQmFja3BvcnRlZCBmaXh1 cHMgcG9zdCB0aGUgc291cmNlIHRhcmJhbGwuCiAjWGRyb3A6IEp1c3QgYmFja3BvcnRzLgotUGF0 Y2gyMzI6IGdkYi11cHN0cmVhbS5wYXRjaAorI1BhdGNoMjMyOiBnZGItdXBzdHJlYW0ucGF0Y2gK IAogIyBUZXN0Y2FzZSBmb3IgUFBDIFBvd2VyNi9ERlAgaW5zdHJ1Y3Rpb25zIGRpc2Fzc2VtYmx5 IChCWiAyMzAwMDApLgogIz1mZWRvcmF0ZXN0K3BwYwpAQCAtNTA2LDQzICs1MDYsMzMgQEAgUGF0 Y2g4NDg6IGdkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRjaAogUGF0Y2g4NTI6IGdkYi1n bmF0LWR3YXJmLWNyYXNoLTNvZjMucGF0Y2gKIAogIyBWTEEgKEZvcnRyYW4gZHluYW1pYyBhcnJh eXMpIGZyb20gSW50ZWwgKyBhcmNoZXItamFua3JhdG9jaHZpbC12bGEgdGVzdHMuCi1QYXRjaDg4 NzogZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gKIFBhdGNoODg4OiBnZGItdmxhLWludGVsLnBh dGNoCi1QYXRjaDkxMjogZ2RiLXZsYS1pbnRlbC0wNG9mMjMtZml4LnBhdGNoCiBQYXRjaDg4OTog Z2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2gKLQotIyBGaXggLS13aXRoLXN5c3RlbS1y ZWFkbGluZSB3aXRoIHJlYWRsaW5lLTYuMyBwYXRjaCA1LgotUGF0Y2g5MTQ6IGdkYi1yZWFkbGlu ZS02LjMuNS5wYXRjaAorUGF0Y2g5MTI6IGdkYi12bGEtaW50ZWwtMDRvZjIzLWZpeC5wYXRjaAor UGF0Y2g4ODc6IGdkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoCiAKICMgQ29udGludWUgYmFja3Ry YWNlIGV2ZW4gaWYgYSBmcmFtZSBmaWx0ZXIgdGhyb3dzIGFuIGV4Y2VwdGlvbiAoUGhpbCBNdWxk b29uKS4KIFBhdGNoOTE4OiBnZGItYnRyb2J1c3QucGF0Y2gKIAotIyBQeXRob24gY29tcGxldGlv biB3L292ZXJyaWRlbiBjb21wbGV0ZXIgKFNlcmdpbyBEdXJpZ2FuIEp1bmlvciwgQlogMTA3NTE5 OSkuCi1QYXRjaDkyMDogZ2RiLXB5dGhvbi1jb21wbGV0ZXItMW9mMi5wYXRjaAotUGF0Y2g5MjE6 IGdkYi1weXRob24tY29tcGxldGVyLTJvZjIucGF0Y2gKLQogIyBEaXNwbGF5IEZvcnRyYW4gc3Ry aW5ncyBpbiBiYWNrdHJhY2VzLgogUGF0Y2g5MjU6IGdkYi1mb3J0cmFuLWZyYW1lLXN0cmluZy5w YXRjaAogCiAjIEZpeCBQeXRob24gR0lMIHdpdGggZ2RiLmV4ZWN1dGUoImNvbnRpbnVlIikgKFBo aWwgTXVsZG9vbiwgQlogMTExNjk1NykuCiBQYXRjaDkyNzogZ2RiLXB5dGhvbi1naWwucGF0Y2gK IAotIyBGaXggR0RCIFNJR1RUKiBTdG9wcGVkIHdoZW4gdXNpbmcgdGhlIFBJRCBhcmd1bWVudCAo QlogMTEzNjcwNCwgUGVkcm8gQWx2ZXMpLgotUGF0Y2g5NzA6IGdkYi1hc3luYy1zdG9wcGVkLW9u LXBpZC1hcmctdGVzdHN1aXRlLnBhdGNoCi0KLSMgRml4ICJzYXZlIGJyZWFrcG9pbnRzIiBmb3Ig c2lnbmFsIGNhdGNocG9pbnRzIGFuZCBkaXNhYmxlZCBicmVha3BvaW50cwotIyAoQlogMTE0NjE3 MCwgTWlyb3NsYXYgRnJhbmMpLgotUGF0Y2g5NzE6IGdkYi1zYXZlLWJyZWFrcG9pbnRzLWZpeC5w YXRjaAotCiAjIEZpeCAnU2xvdyBnc3RhY2sgcGVyZm9ybWFuY2UnIChSSCBCWiAxMTAzODk0LCBK YW4gS3JhdG9jaHZpbCkuCiBQYXRjaDk3MzogZ2RiLXNsb3ctZ3N0YWNrLXBlcmZvcm1hbmNlLnBh dGNoCiAKLSMgQWNjZWxlcmF0ZSBpbnRlcmFjdGl2ZSBzeW1ib2xzIGxvb2t1cCAxNXguCi1QYXRj aDk3NTogZ2RiLXN5bWJvbHMtbG9va3VwLWFjY2VsLnBhdGNoCisjIEZpeCAnY29tcGlsZScgY29t cGlsYXRpb24gd2FybmluZy9lcnJvci4KK1BhdGNoOTc3OiBnZGItY29tcGlsZS13YXJuX3VudXNl ZF9yZXN1bHQucGF0Y2gKKworIyBGaXggaml0LXJlYWRlci5oIGZvciBtdWx0aS1saWIuCitQYXRj aDk3ODogZ2RiLWppdC1yZWFkZXItbXVsdGlsaWIucGF0Y2gKIAotIyBGaXggJ1tSRkVdIHBsZWFz ZSBhZGQgYWRkLWF1dG8tbG9hZC1zY3JpcHRzLWRpcmVjdG9yeSBjb21tYW5kJyAoUkgKLSMgQlog MTE2MzMzOSwgSmFuIEtyYXRvY2h2aWwpLgotUGF0Y2g5NzY6IGdkYi1yaGJ6MTE2MzMzOS1hZGQt YXV0by1sb2FkLXNjcmlwdHMtZGlyZWN0b3J5LnBhdGNoCisjIEZpeCBnZGItNy45cHJlIHJlZ3Jl c3Npb25zIC8gbmV3IEZBSUxzLgorUGF0Y2g5Nzk6IGdkYi02LjgtYno0NTcxODctbGFyZ2VmaWxl LXRlc3QtcmVncmVzc2lvbi1maXgucGF0Y2gKK1BhdGNoOTgwOiBnZGItcHktZnJhbWUtcmlwLXRl c3QtZml4LnBhdGNoCitQYXRjaDk4MTogZ2RiLXRla2hleC1yZWdyZXNzaW9uLXJldmVydC5wYXRj aAogCiAlaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYKICMgUkxfU1RBVEVfRkVET1JB X0dEQiB3b3VsZCBub3QgYmUgZm91bmQgZm9yOgpAQCAtNzE5LDExICs3MDksMTEgQEAgZmluZCAt bmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICMgTWF0Y2ggdGhlIEZlZG9yYSdzIHZlcnNpb24g aW5mby4KICVwYXRjaDIgLXAxCiAKLSVwYXRjaDIzMiAtcDEKKyNwYXRjaDIzMiAtcDEKICVwYXRj aDM0OSAtcDEKICVwYXRjaDg4OCAtcDEKLSVwYXRjaDkxMiAtcDEKICVwYXRjaDg4OSAtcDEKKyVw YXRjaDkxMiAtcDEKICVwYXRjaDEgLXAxCiAKICVwYXRjaDEwNSAtcDEKQEAgLTgyMiwxNyArODEy LDE1IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAlcGF0Y2g4NTIgLXAxCiAl cGF0Y2g4NjMgLXAxCiAlcGF0Y2g4ODcgLXAxCi0lcGF0Y2g5MTQgLXAxCiAlcGF0Y2g5MTggLXAx Ci0lcGF0Y2g5MjAgLXAxCi0lcGF0Y2g5MjEgLXAxCiAlcGF0Y2g5MjUgLXAxCiAlcGF0Y2g5Mjcg LXAxCi0lcGF0Y2g5NzAgLXAxCi0lcGF0Y2g5NzEgLXAxCiAlcGF0Y2g5NzMgLXAxCi0lcGF0Y2g5 NzUgLXAxCi0lcGF0Y2g5NzYgLXAxCislcGF0Y2g5NzcgLXAxCislcGF0Y2g5NzggLXAxCislcGF0 Y2g5NzkgLXAxCislcGF0Y2g5ODAgLXAxCislcGF0Y2g5ODEgLXAxCiAKICVwYXRjaDg0OCAtcDEK ICVpZiAwJXshP2VsNjoxfQpAQCAtMTI3MSwxMCArMTI1OSw5IEBAIHJtIC1yZiAkUlBNX0JVSUxE X1JPT1QKICV7X2JpbmRpcn0vcHN0YWNrCiAle19tYW5kaXJ9LyovcHN0YWNrLjEqCiAle19kYXRh ZGlyfS9nZGIKLSV7X2luY2x1ZGVkaXJ9L2dkYgotIyBQcm92aWRlIGppdC1yZWFkZXIuaCBzbyB0 aGF0IHVzZXJzIGFyZSBhYmxlIHRvIHdyaXRlIHRoZWlyIG93biBHREIgSklUCisjIFByb3ZpZGUg Z2RiL2ppdC1yZWFkZXIuaCBzbyB0aGF0IHVzZXJzIGFyZSBhYmxlIHRvIHdyaXRlIHRoZWlyIG93 biBHREIgSklUCiAjIHBsdWdpbnMuCi0le19pbmNsdWRlZGlyfS9nZGIvaml0LXJlYWRlci5oCisl e19pbmNsdWRlZGlyfS9nZGIKIAogIyBkb24ndCBpbmNsdWRlIHRoZSBmaWxlcyBpbiBpbmNsdWRl LCB0aGV5IGFyZSBwYXJ0IG9mIGJpbnV0aWxzCiAKQEAgLTEzMzQsNiArMTMyMSwxMCBAQCB0aGVu CiBmaQogCiAlY2hhbmdlbG9nCisqIFRodSBKYW4gIDggMjAxNSBKYW4gS3JhdG9jaHZpbCA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjguNTAuMjAxNTAxMDgtMS5mYzIyCistIFJlYmFz ZSB0byBwcmUtNy45IHNuYXBzaG90IDcuOC41MC4yMDE1MDEwOC4KKy0gRml4IGppdC1yZWFkZXIu aCBmb3IgbXVsdGktbGliLgorCiAqIFN1biBEZWMgMjggMjAxNCBKYW4gS3JhdG9jaHZpbCA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjguMS0zNi5mYzIxCiAtIFJlYmFzZSB0byA3Ljgu MS4yMDE0MTIyOCBmb3IgYSBwZXJmb3JtYW5jZSBmaXggKFBSIGJpbnV0aWxzLzE3Njc3KS4KIAoK ZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGUzN2U5Y2EuLmVkOTYzODYgMTAw NjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKIDQ5ODEzMDdh YTk2MTliYmVjNWI3MzI2MWU0ZTQxYzhkICBnZGItbGlic3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4 LnRhci5iejIKLTRjMTc2OWI0MGE2MDJjZTE5NmY3NjMyM2IyYTk1YTliICBnZGItNy44LjEuMjAx NDEyMjgudGFyLnh6Cis2YjQzZjEwNzllOWE2NDAxYzcyNzdkNmJkNzc3YmQ3ZiAgZ2RiLTcuOC41 MC4yMDE1MDEwOC50YXIueHoK