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: - Upgrade to the FSF GDB gdb-6.8.50 snapshot: 6.8.50.20090818 Date: Thu, 23 Jul 2026 18:29:10 GMT Message-ID: <178483135064.1.17776212294267711596.rpms-gdb-a97b573f83a4@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: a97b573f83a459c4d23b0dd888491106da807cc0 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogYTk3YjU3M2Y4M2E0NTljNGQyM2IwZGQ4ODg0OTExMDZkYTgwN2NjMAog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3JhcHJvamVj dC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDgtMThUMTg6NTE6MTcrMDA6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzE3NTAvLTIzMzcgaW4gNyBmaWxlKHMpCiAgICAgICAgICAgIFVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvYTk3YjU3M2Y4 M2E0NTljNGQyM2IwZGQ4ODg0OTExMDZkYTgwN2NjMD9icmFuY2g9Zml4LWR1cC1wYXRjaAoKICAg ICAgICAgICAgTG9nOgogICAgICAgICAgICAtIFVwZ3JhZGUgdG8gdGhlIEZTRiBHREIgZ2RiLTYu OC41MCBzbmFwc2hvdDogNi44LjUwLjIwMDkwODE4Ci0gYXJjaGVyLWphbmtyYXRvY2h2aWwtZmVk b3JhMTIgY29tbWl0OgogICAgNWUwZDFjYzc0ZjExOTM5MWEyYzNhZTI1ZWY1NzQ5ZmMyODY3NGYw NgoKLS0tCmRpZmYgLS1naXQgYS8uY3ZzaWdub3JlIGIvLmN2c2lnbm9yZQppbmRleCA5ZmMxNTk1 Li5jODhmNjFiIDEwMDY0NAotLS0gYS8uY3ZzaWdub3JlCisrKyBiLy5jdnNpZ25vcmUKQEAgLTEg KzEgQEAKLWdkYi02LjguNTAuMjAwOTA4MTEudGFyLmJ6MgorZ2RiLTYuOC41MC4yMDA5MDgxOC50 YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2ggYi9n ZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaAppbmRleCA5M2EzZmU3Li5iY2JmYWU4IDEw MDY0NAotLS0gYS9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaAorKysgYi9nZGItNi4z LXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaApAQCAtMTEsMTAgKzExLDEwIEBACiAKICAgICAgICAg KiBnZGIudGV4aW5mbyAoRmlsZSBPcHRpb25zKTogRG9jdW1lbnQgLS1yZWFkbmV2ZXIuCiAKLUlu ZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9kb2MvZ2RiLnRleGluZm8KK0luZGV4OiBnZGIt Ni44LjUwLjIwMDkwODExL2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ni44LjUwLjIwMDkwODAyLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDA5LTA4LTAzIDA5OjUw OjU3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL2RvYy9nZGIu dGV4aW5mbwkyMDA5LTA4LTAzIDEyOjI5OjU4LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02Ljgu NTAuMjAwOTA4MTEub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMDktMDgtMTMgMTA6MTQ6MTUu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvZG9jL2dkYi50ZXhp bmZvCTIwMDktMDgtMTMgMTA6MTQ6MTguMDAwMDAwMDAwICswMjAwCiBAQCAtOTkxLDYgKzk5MSwx MiBAQCBSZWFkIGVhY2ggc3ltYm9sIGZpbGUncyBlbnRpcmUgc3ltYm9sIHRhCiAgdGhlIGRlZmF1 bHQsIHdoaWNoIGlzIHRvIHJlYWQgaXQgaW5jcmVtZW50YWxseSBhcyBpdCBpcyBuZWVkZWQuCiAg VGhpcyBtYWtlcyBzdGFydHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1dHVyZSBvcGVyYXRpb25zIGZh c3Rlci4KQEAgLTI4LDEwICsyOCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIv ZG9jL2dkYi50ZXhpbmZvCiAgQGVuZCB0YWJsZQogIAogIEBub2RlIE1vZGUgT3B0aW9ucwotSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL21haW4uYworSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MTEvZ2RiL21haW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDIub3Jp Zy9nZGIvbWFpbi5jCTIwMDktMDgtMDMgMTI6Mjk6MDMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2Ri LTYuOC41MC4yMDA5MDgwMi9nZGIvbWFpbi5jCTIwMDktMDgtMDMgMTI6Mjk6NTguMDAwMDAwMDAw ICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDgxMS5vcmlnL2dkYi9tYWluLmMJMjAwOS0wOC0x MyAxMDoxNDoxNS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwODExL2dkYi9t YWluLmMJMjAwOS0wOC0xMyAxMDoxNDoxOC4wMDAwMDAwMDAgKzAyMDAKIEBAIC0zODIsNiArMzgy LDcgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgICAgICB7InhkYiIsIG5vX2FyZ3Vt ZW50LCAmeGRiX2NvbW1hbmRzLCAxfSwKICAgICAgICB7ImRieCIsIG5vX2FyZ3VtZW50LCAmZGJ4 X2NvbW1hbmRzLCAxfSwKQEAgLTQ4LDExICs0OCwxMSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5 MDgwMi9nZGIvbWFpbi5jCiAgIiksIHN0cmVhbSk7CiAgICBmcHV0c191bmZpbHRlcmVkIChfKCJc CiAgICAtLXNlPUZJTEUgICAgICAgICAgVXNlIEZJTEUgYXMgc3ltYm9sIGZpbGUgYW5kIGV4ZWN1 dGFibGUgZmlsZS5cblwKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9zeW1maWxlLmMK K0luZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9zeW1maWxlLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNi44LjUwLjIwMDkwODAyLm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDA5LTA4LTAzIDEyOjI4 OjE0LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3N5bWZpbGUu YwkyMDA5LTA4LTAzIDEyOjI5OjU4LjAwMDAwMDAwMCArMDIwMAotQEAgLTc4LDYgKzc4LDcgQEAg c3RhdGljIHZvaWQgY2xlYXJfc3ltdGFiX3VzZXJzX2NsZWFudXAgKAorLS0tIGdkYi02LjguNTAu MjAwOTA4MTEub3JpZy9nZGIvc3ltZmlsZS5jCTIwMDktMDgtMTMgMTA6MTQ6MTUuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc3ltZmlsZS5jCTIwMDktMDgtMTMg MTA6MTQ6MTguMDAwMDAwMDAwICswMjAwCitAQCAtNzksNiArNzksNyBAQCBzdGF0aWMgdm9pZCBj bGVhcl9zeW10YWJfdXNlcnNfY2xlYW51cCAoCiAgCiAgLyogR2xvYmFsIHZhcmlhYmxlcyBvd25l ZCBieSB0aGlzIGZpbGUgKi8KICBpbnQgcmVhZG5vd19zeW1ib2xfZmlsZXM7CS8qIFJlYWQgZnVs bCBzeW1ib2xzIGltbWVkaWF0ZWx5ICovCkBAIC02MCwxOSArNjAsMTkgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDIvZ2RiL3N5bWZpbGUuYwogIAogIC8qIEV4dGVybmFsIHZhcmlhYmxlcyBh bmQgZnVuY3Rpb25zIHJlZmVyZW5jZWQuICovCiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw Mi9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvZHdhcmYy cmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMi5vcmlnL2dkYi9kd2Fy ZjJyZWFkLmMJMjAwOS0wOC0wMyAwOTo1MDo1Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44 LjUwLjIwMDkwODAyL2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOC0wMyAxMjozMTowMS4wMDAwMDAw MDAgKzAyMDAKLUBAIC01Miw2ICs1Miw3IEBACi0gI2luY2x1ZGUgImp2LWxhbmcuaCIKKy0tLSBn ZGItNi44LjUwLjIwMDkwODExLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDA5LTA4LTEzIDEwOjE0 OjE1LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2R3YXJmMnJl YWQuYwkyMDA5LTA4LTEzIDEwOjE0OjI5LjAwMDAwMDAwMCArMDIwMAorQEAgLTUzLDYgKzUzLDcg QEAKICAjaW5jbHVkZSAidHlwZXByaW50LmgiCiAgI2luY2x1ZGUgInZlYy5oIgorICNpbmNsdWRl ICJibG9jay5oIgogKyNpbmNsdWRlICJ0b3AuaCIKICAKICAjaW5jbHVkZSA8ZmNudGwuaD4KICAj aW5jbHVkZSAiZ2RiX3N0cmluZy5oIgotQEAgLTEyMjUsNyArMTIyNiw4IEBAIGR3YXJmMl9oYXNf aW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKK0BAIC0xMjQ1LDcgKzEyNDYsOCBAQCBkd2Fy ZjJfaGFzX2luZm8gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlCiAgCiAgICAgICAgYmZkX21hcF9v dmVyX3NlY3Rpb25zIChvYmpmaWxlLT5vYmZkLCBkd2FyZjJfbG9jYXRlX3NlY3Rpb25zLCBOVUxM KTsKICAgICAgfQpAQCAtODIsMTAgKzgyLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAy L2dkYi9kd2FyZjJyZWFkLmMKICAJICAmJiBkd2FyZjJfcGVyX29iamZpbGUtPmFiYnJldi5hc2Vj dGlvbiAhPSBOVUxMKTsKICB9CiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvdG9w LmgKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi90b3AuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi02LjguNTAuMjAwOTA4MDIub3JpZy9nZGIvdG9wLmgJMjAwOS0wMS0wMyAwNjo1Nzo1My4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90b3AuaAkyMDA5LTA4 LTAzIDEyOjI5OjU4LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA4MTEub3Jp Zy9nZGIvdG9wLmgJMjAwOS0wMS0wMyAwNjo1Nzo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ni44LjUwLjIwMDkwODExL2dkYi90b3AuaAkyMDA5LTA4LTEzIDEwOjE0OjE4LjAwMDAwMDAwMCAr MDIwMAogQEAgLTU5LDYgKzU5LDcgQEAgZXh0ZXJuIHZvaWQgc2V0X3Byb21wdCAoY2hhciAqKTsK ICAKICAvKiBGcm9tIHJhbmRvbSBwbGFjZXMuICAqLwoKZGlmZiAtLWdpdCBhL2dkYi02LjYtbXVs dGlmb3JrLWRlYnVncmVnLnBhdGNoIGIvZ2RiLTYuNi1tdWx0aWZvcmstZGVidWdyZWcucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwNjllZTguLjAwMDAwMDAKLS0tIGEvZ2Ri LTYuNi1tdWx0aWZvcmstZGVidWdyZWcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMxICsw LDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA4LTAxL21zZzAw MDQyLmh0bWwKLVsgQmFja3BvcnRlZCBmb3IgR0RCLTYuNiAob25seSByZW1vdmVkIHRoZSBuZXcg ZmlsZSBpbmNsdXNpb24pLiBdCi0KLSsKLQotMjAwNy0wOS0xNiAgRGFuaWVsIEphY29ib3dpdHog IDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KLQkgICAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJl ZGhhdC5jb20+Ci0KLQkqIGdkYi50ZXhpbmZvIChTZXR0aW5nIFdhdGNocG9pbnRzKTogQWRqdXN0 IHdhcm5pbmcgdGV4dCBhYm91dAotCW11bHRpLXRocmVhZGVkIHdhdGNocG9pbnRzLgotCi0yMDA3 LTEyLTE1ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkq IGdkYi50ZXhpbmZvIChTZXR0aW5nIFdhdGNocG9pbnRzKTogTmV3IHBhcmFncmFwaCBvbiB0aGUg c29mdHdhcmUKLQl3YXRjaHBvaW50cyBzYWZldHkgd3J0IGBzZXQgc2NoZWR1bGVyLWxvY2tpbmcn LgotCi0yMDA4LTAzLTAxICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+Ci0KLQlQb3J0IHRvIEdEQi02LjhwcmUuCi0KLTIwMDgtMDMtMzEgIEphbiBLcmF0b2Nodmls ICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCSogZ2RiLnRocmVhZHMvd2F0Y2hwb2lu dC1mb3JrLWZvcmtvZmYuYyAoZm9ya29mZik6IE5ldyBkZWxheSBhZnRlciB0aGUKLQlwYXJlbnQv Y2hpbGQgbWVzc2FnZXMgdG8gZml4IGEgcmFjZS4KLQotMjAwOC0wNS0yOCAgSmFuIEtyYXRvY2h2 aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBzMzkwLW5hdC5jIChzMzkwX2Zp eF93YXRjaF9wb2ludHMpOiBGaXggaXRzIGNvbXBpbGF0aW9uIGZhaWx1cmUKLQktIHJlbmFtZSBp dCB0byBTMzkwX0ZJWF9XQVRDSF9QT0lOVFNfTElTVC4KLQotSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MDMvZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4y MDA5MDgwMy5vcmlnL2dkYi9hbWQ2NC1saW51eC1uYXQuYwkyMDA5LTA4LTA0IDA3OjE3OjE5LjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2FtZDY0LWxpbnV4LW5h dC5jCTIwMDktMDgtMDQgMDc6MTc6NTguMDAwMDAwMDAwICswMjAwCi1AQCAtNDExLDI1ICs0MTEs NDMgQEAgYW1kNjRfbGludXhfZHJfc2V0IChwdGlkX3QgcHRpZCwgaW50IHJlZwotIHN0YXRpYyB2 b2lkCi0gYW1kNjRfbGludXhfZHJfc2V0X2NvbnRyb2wgKHVuc2lnbmVkIGxvbmcgY29udHJvbCkK LSB7Ci0tICBzdHJ1Y3QgbHdwX2luZm8gKmxwOwotLSAgcHRpZF90IHB0aWQ7Ci0tCi0gICBhbWQ2 NF9saW51eF9kcltEUl9DT05UUk9MXSA9IGNvbnRyb2w7Ci0tICBBTExfTFdQUyAobHAsIHB0aWQp Ci0tICAgIGFtZDY0X2xpbnV4X2RyX3NldCAocHRpZCwgRFJfQ09OVFJPTCwgY29udHJvbCk7Ci0r Ci0rICAvKiBJMzg2X0RFVEFDSF9CUkVBS1BPSU5UUyBtYXkgbmVlZCB0byByZXNldCB0aGUgcmVn aXN0ZXJzIG9uIHNpbmdsZSBwcm9jZXNzCi0rICAgICBub3QgbGlzdGVkIGZvciBBTExfTFdQUy4g ICovCi0rCi0rICBpZiAocHRpZF9nZXRfbHdwIChpbmZlcmlvcl9wdGlkKSA9PSAwKQotKyAgICBh bWQ2NF9saW51eF9kcl9zZXQgKGluZmVyaW9yX3B0aWQsIERSX0NPTlRST0wsIGNvbnRyb2wpOwot KyAgZWxzZQotKyAgICB7Ci0rICAgICAgc3RydWN0IGx3cF9pbmZvICpscDsKLSsgICAgICBwdGlk X3QgcHRpZDsKLSsKLSsgICAgICBBTExfTFdQUyAobHAsIHB0aWQpCi0rCWFtZDY0X2xpbnV4X2Ry X3NldCAocHRpZCwgRFJfQ09OVFJPTCwgY29udHJvbCk7Ci0rICAgIH0KLSB9Ci0gCi0gc3RhdGlj IHZvaWQKLSBhbWQ2NF9saW51eF9kcl9zZXRfYWRkciAoaW50IHJlZ251bSwgQ09SRV9BRERSIGFk ZHIpCi0gewotLSAgc3RydWN0IGx3cF9pbmZvICpscDsKLS0gIHB0aWRfdCBwdGlkOwotLQotICAg Z2RiX2Fzc2VydCAocmVnbnVtID49IDAgJiYgcmVnbnVtIDw9IERSX0xBU1RBRERSIC0gRFJfRklS U1RBRERSKTsKLSAKLSAgIGFtZDY0X2xpbnV4X2RyW0RSX0ZJUlNUQUREUiArIHJlZ251bV0gPSBh ZGRyOwotLSAgQUxMX0xXUFMgKGxwLCBwdGlkKQotLSAgICBhbWQ2NF9saW51eF9kcl9zZXQgKHB0 aWQsIERSX0ZJUlNUQUREUiArIHJlZ251bSwgYWRkcik7Ci0rCi0rICAvKiBJMzg2X0RFVEFDSF9C UkVBS1BPSU5UUyBtYXkgbmVlZCB0byByZXNldCB0aGUgcmVnaXN0ZXJzIG9uIHNpbmdsZSBwcm9j ZXNzCi0rICAgICBub3QgbGlzdGVkIGZvciBBTExfTFdQUy4gICovCi0rCi0rICBpZiAocHRpZF9n ZXRfbHdwIChpbmZlcmlvcl9wdGlkKSA9PSAwKQotKyAgICBhbWQ2NF9saW51eF9kcl9zZXQgKGlu ZmVyaW9yX3B0aWQsIERSX0ZJUlNUQUREUiArIHJlZ251bSwgYWRkcik7Ci0rICBlbHNlCi0rICAg IHsKLSsgICAgICBzdHJ1Y3QgbHdwX2luZm8gKmxwOwotKyAgICAgIHB0aWRfdCBwdGlkOwotKwot KyAgICAgIEFMTF9MV1BTIChscCwgcHRpZCkKLSsJYW1kNjRfbGludXhfZHJfc2V0IChwdGlkLCBE Ul9GSVJTVEFERFIgKyByZWdudW0sIGFkZHIpOwotKyAgICB9Ci0gfQotIAotIHN0YXRpYyB2b2lk Ci1AQCAtNDU0LDYgKzQ3Miw0MiBAQCBhbWQ2NF9saW51eF9uZXdfdGhyZWFkIChwdGlkX3QgcHRp ZCkKLSAKLSAgIGFtZDY0X2xpbnV4X2RyX3NldCAocHRpZCwgRFJfQ09OVFJPTCwgYW1kNjRfbGlu dXhfZHJbRFJfQ09OVFJPTF0pOwotIH0KLSsKLSsvKiBUT19GT0xMT1dfRk9SSyBzdG9yZXMgaGVy ZSB0aGUgUElEIHVuZGVyIERFVEFDSF9CUkVBS1BPSU5UUyBmb3IgdGhlIGNoaWxkCi0rICAgcHJv Y2VzcyBvZiB0cmFjZWQgRk9SSy4gIFdlIG11c3QgY2xlYXIgc3VjaCB3YXRjaHBvaW50cyBvbmx5 IG9uY2UgZHVyaW5nCi0rICAgREVUQUNIX0JSRUFLUE9JTlRTLiAgKi8KLSsKLStzdGF0aWMgaW50 IGFtZDY0X2xpbnV4X2RldGFjaF9icmVha3BvaW50c19waWQ7Ci0rCi0rLyogUmVtb3ZlIGEgd2F0 Y2hwb2ludCB0aGF0IHdhdGNoZWQgdGhlIG1lbW9yeSByZWdpb24gd2hpY2ggc3RhcnRzIGF0Ci0r ICAgYWRkcmVzcyBBRERSLCB3aG9zZSBsZW5ndGggaXMgTEVOIGJ5dGVzLCBhbmQgZm9yIGFjY2Vz c2VzIG9mIHRoZQotKyAgIHR5cGUgVFlQRS4gIFJldHVybiAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGZh aWx1cmUuICAqLwotK2ludAotK2FtZDY0X2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FE RFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUpCi0rewotKyAgaWYgKHB0aWRfZ2V0X3BpZCAoaW5m ZXJpb3JfcHRpZCkgPT0gYW1kNjRfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRzX3BpZCkKLSsgICAg cmV0dXJuIDA7Ci0rICAvKiBGT0xMT1ctRk9SSy1NT0RFIENISUxEIHJ1bnMgbGF0ZXIgdGhlIENI SUxEIHdpdGggbm8gcmVzdHJpY3Rpb25zLiAgKi8KLSsgIGFtZDY0X2xpbnV4X2RldGFjaF9icmVh a3BvaW50c19waWQgPSAwOwotKwotKyAgcmV0dXJuIHRhcmdldF9yZW1vdmVfd2F0Y2hwb2ludCAo YWRkciwgbGVuLCB0eXBlKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLSthbWQ2NF9saW51eF9kZXRh Y2hfYnJlYWtwb2ludHMgKGludCBkZXRhY2hlZF9waWQpCi0rewotKyAgc3RydWN0IGNsZWFudXAg Km9sZF9jaGFpbiA9IHNhdmVfaW5mZXJpb3JfcHRpZCAoKTsKLSsgIGludCBpOwotKyAgZXh0ZXJu IHZvaWQgaTM4Nl9kZXRhY2hfYnJlYWtwb2ludHMgKGludCBkZXRhY2hlZF9waWQpOwotKwotKyAg YW1kNjRfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRzX3BpZCA9IGRldGFjaGVkX3BpZDsKLSsgIC8q IERlcGVuZCBvbiBgIWlzX2x3cCAoaW5mZXJpb3JfcHRpZCknIGZvciB0aGUgSTM4Nl8qIG1hY3Jv cy4gICovCi0rICBpbmZlcmlvcl9wdGlkID0gcGlkX3RvX3B0aWQgKGRldGFjaGVkX3BpZCk7Ci0r Ci0rICBpMzg2X2RldGFjaF9icmVha3BvaW50cyAoZGV0YWNoZWRfcGlkKTsKLSsKLSsgIGRvX2Ns ZWFudXBzIChvbGRfY2hhaW4pOwotK30KLSAMCi0gCi0gLyogVGhpcyBmdW5jdGlvbiBpcyBjYWxs ZWQgYnkgbGlidGhyZWFkX2RiIGFzIHBhcnQgb2YgaXRzIGhhbmRsaW5nIG9mCi1AQCAtNzY3LDYg KzgyMSw0MiBAQCBhbWQ2NF9saW51eF9zaWdpbmZvX2ZpeHVwIChzdHJ1Y3Qgc2lnaW5mCi0gICAg IHJldHVybiAwOwotIH0KLSAKLStzdGF0aWMgaW50ICgqYW1kNjRfbGludXhfc3VwZXJfZm9sbG93 X2ZvcmspIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLAotKwkJCQkJICAgICBpbnQgZm9sbG93X2No aWxkKTsKLSsKLSsvKiBXZSBuZWVkIHRvIGR1cGxpY2F0ZSB0aGUgTElOVVhfQ0hJTERfRk9MTE9X X0ZPUksgYmVoYXZpb3IgaGVyZSBhbmQgY2F0Y2ggaXRzCi0rICAgY2FsbGVkIERFVEFDSF9CUkVB S1BPSU5UUyB0byBhdm9pZCBjb3JydXB0aW5nIG91ciBsb2NhbCByZWdpc3RlcnMgbWlycm9yLiAg Ki8KLSsKLStzdGF0aWMgaW50Ci0rYW1kNjRfbGludXhfZm9sbG93X2ZvcmsgKHN0cnVjdCB0YXJn ZXRfb3BzICpvcHMsIGludCBmb2xsb3dfY2hpbGQpCi0rewotKyAgcHRpZF90IGxhc3RfcHRpZDsK LSsgIHN0cnVjdCB0YXJnZXRfd2FpdHN0YXR1cyBsYXN0X3N0YXR1czsKLSsgIGludCBoYXNfdmZv cmtlZDsKLSsgIGludCBwYXJlbnRfcGlkLCBjaGlsZF9waWQ7Ci0rCi0rICBnZXRfbGFzdF90YXJn ZXRfc3RhdHVzICgmbGFzdF9wdGlkLCAmbGFzdF9zdGF0dXMpOwotKyAgaGFzX3Zmb3JrZWQgPSAo bGFzdF9zdGF0dXMua2luZCA9PSBUQVJHRVRfV0FJVEtJTkRfVkZPUktFRCk7Ci0rICBwYXJlbnRf cGlkID0gcHRpZF9nZXRfbHdwIChsYXN0X3B0aWQpOwotKyAgaWYgKHBhcmVudF9waWQgPT0gMCkK LSsgICAgcGFyZW50X3BpZCA9IHB0aWRfZ2V0X3BpZCAobGFzdF9wdGlkKTsKLSsgIGNoaWxkX3Bp ZCA9IHB0aWRfZ2V0X2x3cCAobGFzdF9zdGF0dXMudmFsdWUucmVsYXRlZF9waWQpOwotKyAgaWYg KGNoaWxkX3BpZCA9PSAwKQotKyAgICBjaGlsZF9waWQgPSBwdGlkX2dldF9waWQgKGxhc3Rfc3Rh dHVzLnZhbHVlLnJlbGF0ZWRfcGlkKTsKLSsKLSsgIGlmICghIGZvbGxvd19jaGlsZCkKLSsgICAg ewotKyAgICAgIGFtZDY0X2xpbnV4X2RldGFjaF9icmVha3BvaW50cyAoY2hpbGRfcGlkKTsKLSsg ICAgfQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgaWYgKCEgaGFzX3Zmb3JrZWQpCi0rCWFtZDY0 X2xpbnV4X2RldGFjaF9icmVha3BvaW50cyAoY2hpbGRfcGlkKTsKLSsgICAgfQotKwotKyAgcmV0 dXJuICgqYW1kNjRfbGludXhfc3VwZXJfZm9sbG93X2ZvcmspIChvcHMsIGZvbGxvd19jaGlsZCk7 Ci0rfQotKwotIC8qIFByb3ZpZGUgYSBwcm90b3R5cGUgdG8gc2lsZW5jZSAtV21pc3NpbmctcHJv dG90eXBlcy4gICovCi0gdm9pZCBfaW5pdGlhbGl6ZV9hbWQ2NF9saW51eF9uYXQgKHZvaWQpOwot IAotQEAgLTgwOSw2ICs4OTksOSBAQCBfaW5pdGlhbGl6ZV9hbWQ2NF9saW51eF9uYXQgKHZvaWQp Ci0gICBsaW51eF9lbGZjb3JlX3dyaXRlX3Byc3RhdHVzID0gYW1kNjRfbGludXhfZWxmY29yZV93 cml0ZV9wcnN0YXR1czsKLSAgIGxpbnV4X2VsZmNvcmVfd3JpdGVfcHJmcHJlZyA9IGFtZDY0X2xp bnV4X2VsZmNvcmVfd3JpdGVfcHJmcHJlZzsKLSAKLSsgIGFtZDY0X2xpbnV4X3N1cGVyX2ZvbGxv d19mb3JrID0gdC0+dG9fZm9sbG93X2Zvcms7Ci0rICB0LT50b19mb2xsb3dfZm9yayA9IGFtZDY0 X2xpbnV4X2ZvbGxvd19mb3JrOwotKwotICAgLyogUmVnaXN0ZXIgdGhlIHRhcmdldC4gICovCi0g ICBsaW51eF9uYXRfYWRkX3RhcmdldCAodCk7Ci0gICBsaW51eF9uYXRfc2V0X25ld190aHJlYWQg KHQsIGFtZDY0X2xpbnV4X25ld190aHJlYWQpOwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMv Z2RiL2kzODYtbGludXgtbmF0LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAz Lm9yaWcvZ2RiL2kzODYtbGludXgtbmF0LmMJMjAwOS0wOC0wNCAwNzoxNzoxOS4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pMzg2LWxpbnV4LW5hdC5jCTIwMDkt MDgtMDQgMDc6MjY6NDMuMDAwMDAwMDAwICswMjAwCi1AQCAtNjM3LDIxICs2MzcsNDIgQEAgaTM4 Nl9saW51eF9kcl9zZXRfY29udHJvbCAodW5zaWduZWQgbG9uZwotICAgcHRpZF90IHB0aWQ7Ci0g Ci0gICBpMzg2X2xpbnV4X2RyW0RSX0NPTlRST0xdID0gY29udHJvbDsKLS0gIEFMTF9MV1BTIChs cCwgcHRpZCkKLS0gICAgaTM4Nl9saW51eF9kcl9zZXQgKHB0aWQsIERSX0NPTlRST0wsIGNvbnRy b2wpOwotKwotKyAgLyogSTM4Nl9ERVRBQ0hfQlJFQUtQT0lOVFMgbWF5IG5lZWQgdG8gcmVzZXQg dGhlIHJlZ2lzdGVycyBvbiBzaW5nbGUgcHJvY2VzcwotKyAgICAgbm90IGxpc3RlZCBmb3IgQUxM X0xXUFMuICAqLwotKwotKyAgaWYgKHB0aWRfZ2V0X2x3cCAoaW5mZXJpb3JfcHRpZCkgPT0gMCkK LSsgICAgaTM4Nl9saW51eF9kcl9zZXQgKGluZmVyaW9yX3B0aWQsIERSX0NPTlRST0wsIGNvbnRy b2wpOwotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgc3RydWN0IGx3cF9pbmZvICpscDsKLSsgICAg ICBwdGlkX3QgcHRpZDsKLSsKLSsgICAgICBBTExfTFdQUyAobHAsIHB0aWQpCi0rCWkzODZfbGlu dXhfZHJfc2V0IChwdGlkLCBEUl9DT05UUk9MLCBjb250cm9sKTsKLSsgICAgfQotIH0KLSAKLSBz dGF0aWMgdm9pZAotIGkzODZfbGludXhfZHJfc2V0X2FkZHIgKGludCByZWdudW0sIENPUkVfQURE UiBhZGRyKQotIHsKLS0gIHN0cnVjdCBsd3BfaW5mbyAqbHA7Ci0tICBwdGlkX3QgcHRpZDsKLS0K LSAgIGdkYl9hc3NlcnQgKHJlZ251bSA+PSAwICYmIHJlZ251bSA8PSBEUl9MQVNUQUREUiAtIERS X0ZJUlNUQUREUik7Ci0gCi0gICBpMzg2X2xpbnV4X2RyW0RSX0ZJUlNUQUREUiArIHJlZ251bV0g PSBhZGRyOwotLSAgQUxMX0xXUFMgKGxwLCBwdGlkKQotLSAgICBpMzg2X2xpbnV4X2RyX3NldCAo cHRpZCwgRFJfRklSU1RBRERSICsgcmVnbnVtLCBhZGRyKTsKLSsKLSsgIC8qIEkzODZfREVUQUNI X0JSRUFLUE9JTlRTIG1heSBuZWVkIHRvIHJlc2V0IHRoZSByZWdpc3RlcnMgb24gc2luZ2xlIHBy b2Nlc3MKLSsgICAgIG5vdCBsaXN0ZWQgZm9yIEFMTF9MV1BTLiAgKi8KLSsKLSsgIGlmIChwdGlk X2dldF9sd3AgKGluZmVyaW9yX3B0aWQpID09IDApCi0rICAgIGkzODZfbGludXhfZHJfc2V0IChp bmZlcmlvcl9wdGlkLCBEUl9GSVJTVEFERFIgKyByZWdudW0sIGFkZHIpOwotKyAgZWxzZQotKyAg ICB7Ci0rICAgICAgc3RydWN0IGx3cF9pbmZvICpscDsKLSsgICAgICBwdGlkX3QgcHRpZDsKLSsK LSsgICAgICBBTExfTFdQUyAobHAsIHB0aWQpCi0rCWkzODZfbGludXhfZHJfc2V0IChwdGlkLCBE Ul9GSVJTVEFERFIgKyByZWdudW0sIGFkZHIpOwotKyAgICB9Ci0gfQotIAotIHN0YXRpYyB2b2lk Ci1AQCAtNjc2LDYgKzY5Nyw0MiBAQCBpMzg2X2xpbnV4X25ld190aHJlYWQgKHB0aWRfdCBwdGlk KQotIAotICAgaTM4Nl9saW51eF9kcl9zZXQgKHB0aWQsIERSX0NPTlRST0wsIGkzODZfbGludXhf ZHJbRFJfQ09OVFJPTF0pOwotIH0KLSsKLSsvKiBUT19GT0xMT1dfRk9SSyBzdG9yZXMgaGVyZSB0 aGUgUElEIHVuZGVyIERFVEFDSF9CUkVBS1BPSU5UUyBmb3IgdGhlIGNoaWxkCi0rICAgcHJvY2Vz cyBvZiB0cmFjZWQgRk9SSy4gIFdlIG11c3QgY2xlYXIgc3VjaCB3YXRjaHBvaW50cyBvbmx5IG9u Y2UgZHVyaW5nCi0rICAgREVUQUNIX0JSRUFLUE9JTlRTLiAgKi8KLSsKLStzdGF0aWMgaW50IGkz ODZfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRzX3BpZDsKLSsKLSsvKiBSZW1vdmUgYSB3YXRjaHBv aW50IHRoYXQgd2F0Y2hlZCB0aGUgbWVtb3J5IHJlZ2lvbiB3aGljaCBzdGFydHMgYXQKLSsgICBh ZGRyZXNzIEFERFIsIHdob3NlIGxlbmd0aCBpcyBMRU4gYnl0ZXMsIGFuZCBmb3IgYWNjZXNzZXMg b2YgdGhlCi0rICAgdHlwZSBUWVBFLiAgUmV0dXJuIDAgb24gc3VjY2VzcywgLTEgb24gZmFpbHVy ZS4gICovCi0raW50Ci0raTM4Nl9saW51eF9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFk ZHIsIGludCBsZW4sIGludCB0eXBlKQotK3sKLSsgIGlmIChwdGlkX2dldF9waWQgKGluZmVyaW9y X3B0aWQpID09IGkzODZfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRzX3BpZCkKLSsgICAgcmV0dXJu IDA7Ci0rICAvKiBGT0xMT1ctRk9SSy1NT0RFIENISUxEIHJ1bnMgbGF0ZXIgdGhlIENISUxEIHdp dGggbm8gcmVzdHJpY3Rpb25zLiAgKi8KLSsgIGkzODZfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRz X3BpZCA9IDA7Ci0rCi0rICByZXR1cm4gdGFyZ2V0X3JlbW92ZV93YXRjaHBvaW50IChhZGRyLCBs ZW4sIHR5cGUpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2kzODZfbGludXhfZGV0YWNoX2JyZWFr cG9pbnRzIChpbnQgZGV0YWNoZWRfcGlkKQotK3sKLSsgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hh aW4gPSBzYXZlX2luZmVyaW9yX3B0aWQgKCk7Ci0rICBpbnQgaTsKLSsgIGV4dGVybiB2b2lkIGkz ODZfZGV0YWNoX2JyZWFrcG9pbnRzIChpbnQgZGV0YWNoZWRfcGlkKTsKLSsKLSsgIGkzODZfbGlu dXhfZGV0YWNoX2JyZWFrcG9pbnRzX3BpZCA9IGRldGFjaGVkX3BpZDsKLSsgIC8qIERlcGVuZCBv biBgIWlzX2x3cCAoaW5mZXJpb3JfcHRpZCknIGZvciB0aGUgSTM4Nl8qIG1hY3Jvcy4gICovCi0r ICBpbmZlcmlvcl9wdGlkID0gcGlkX3RvX3B0aWQgKGRldGFjaGVkX3BpZCk7Ci0rCi0rICBpMzg2 X2RldGFjaF9icmVha3BvaW50cyAoZGV0YWNoZWRfcGlkKTsKLSsKLSsgIGRvX2NsZWFudXBzIChv bGRfY2hhaW4pOwotK30KLSAMCi0gCi0gLyogQ2FsbGVkIGJ5IGxpYnRocmVhZF9kYi4gIFJldHVy bnMgYSBwb2ludGVyIHRvIHRoZSB0aHJlYWQgbG9jYWwKLUBAIC04MTgsNiArODc1LDQwIEBAIGkz ODZfbGludXhfY2hpbGRfcG9zdF9zdGFydHVwX2luZmVyaW9yICgKLSAgIHN1cGVyX3Bvc3Rfc3Rh cnR1cF9pbmZlcmlvciAocHRpZCk7Ci0gfQotIAotK3N0YXRpYyBpbnQgKCppMzg2X2xpbnV4X3N1 cGVyX2ZvbGxvd19mb3JrKSAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywKLSsJCQkJCSAgICBpbnQg Zm9sbG93X2NoaWxkKTsKLSsKLSsvKiBXZSBuZWVkIHRvIGR1cGxpY2F0ZSB0aGUgTElOVVhfQ0hJ TERfRk9MTE9XX0ZPUksgYmVoYXZpb3IgaGVyZSBhbmQgY2F0Y2ggaXRzCi0rICAgY2FsbGVkIERF VEFDSF9CUkVBS1BPSU5UUyB0byBhdm9pZCBjb3JydXB0aW5nIG91ciBsb2NhbCByZWdpc3RlcnMg bWlycm9yLiAgKi8KLSsKLStzdGF0aWMgaW50Ci0raTM4Nl9saW51eF9mb2xsb3dfZm9yayAoc3Ry dWN0IHRhcmdldF9vcHMgKm9wcywgaW50IGZvbGxvd19jaGlsZCkKLSt7Ci0rICBwdGlkX3QgbGFz dF9wdGlkOwotKyAgc3RydWN0IHRhcmdldF93YWl0c3RhdHVzIGxhc3Rfc3RhdHVzOwotKyAgaW50 IGhhc192Zm9ya2VkOwotKyAgaW50IHBhcmVudF9waWQsIGNoaWxkX3BpZDsKLSsKLSsgIGdldF9s YXN0X3RhcmdldF9zdGF0dXMgKCZsYXN0X3B0aWQsICZsYXN0X3N0YXR1cyk7Ci0rICBoYXNfdmZv cmtlZCA9IChsYXN0X3N0YXR1cy5raW5kID09IFRBUkdFVF9XQUlUS0lORF9WRk9SS0VEKTsKLSsg IHBhcmVudF9waWQgPSBwdGlkX2dldF9sd3AgKGxhc3RfcHRpZCk7Ci0rICBpZiAocGFyZW50X3Bp ZCA9PSAwKQotKyAgICBwYXJlbnRfcGlkID0gcHRpZF9nZXRfcGlkIChsYXN0X3B0aWQpOwotKyAg Y2hpbGRfcGlkID0gcHRpZF9nZXRfcGlkIChsYXN0X3N0YXR1cy52YWx1ZS5yZWxhdGVkX3BpZCk7 Ci0rCi0rICBpZiAoISBmb2xsb3dfY2hpbGQpCi0rICAgIHsKLSsgICAgICBpMzg2X2xpbnV4X2Rl dGFjaF9icmVha3BvaW50cyAoY2hpbGRfcGlkKTsKLSsgICAgfQotKyAgZWxzZQotKyAgICB7Ci0r ICAgICAgaWYgKCEgaGFzX3Zmb3JrZWQpCi0rCWkzODZfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRz IChjaGlsZF9waWQpOwotKyAgICB9Ci0rCi0rICByZXR1cm4gKCppMzg2X2xpbnV4X3N1cGVyX2Zv bGxvd19mb3JrKSAob3BzLCBmb2xsb3dfY2hpbGQpOwotK30KLSsKLSB2b2lkCi0gX2luaXRpYWxp emVfaTM4Nl9saW51eF9uYXQgKHZvaWQpCi0gewotQEAgLTg0NSw2ICs5MzYsOSBAQCBfaW5pdGlh bGl6ZV9pMzg2X2xpbnV4X25hdCAodm9pZCkKLSAgIHQtPnRvX2ZldGNoX3JlZ2lzdGVycyA9IGkz ODZfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzOwotICAgdC0+dG9fc3RvcmVfcmVnaXN0 ZXJzID0gaTM4Nl9saW51eF9zdG9yZV9pbmZlcmlvcl9yZWdpc3RlcnM7Ci0gCi0rICBpMzg2X2xp bnV4X3N1cGVyX2ZvbGxvd19mb3JrID0gdC0+dG9fZm9sbG93X2Zvcms7Ci0rICB0LT50b19mb2xs b3dfZm9yayA9IGkzODZfbGludXhfZm9sbG93X2Zvcms7Ci0rCi0gICAvKiBSZWdpc3RlciB0aGUg dGFyZ2V0LiAgKi8KLSAgIGxpbnV4X25hdF9hZGRfdGFyZ2V0ICh0KTsKLSAgIGxpbnV4X25hdF9z ZXRfbmV3X3RocmVhZCAodCwgaTM4Nl9saW51eF9uZXdfdGhyZWFkKTsKLUluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAzL2dkYi9pMzg2LW5hdC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4y MDA5MDgwMy5vcmlnL2dkYi9pMzg2LW5hdC5jCTIwMDktMDgtMDQgMDc6MTc6MTkuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvaTM4Ni1uYXQuYwkyMDA5LTA4LTA0 IDA3OjE3OjU4LjAwMDAwMDAwMCArMDIwMAotQEAgLTUyMCw2ICs1MjAsMTggQEAgaTM4Nl9yZW1v dmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIAotICAgcmV0dXJuIHJldHZhbDsKLSB9Ci0g Ci0rdm9pZAotK2kzODZfZGV0YWNoX2JyZWFrcG9pbnRzIChpbnQgZGV0YWNoZWRfcGlkKQotK3sK LSsgIGludCBpOwotKwotKyAgLyogRG8gbm90IHRvdWNoIGFueSBEUl9NSVJST1Igb3IgRFJfQ09O VFJPTF9NSVJST1IgbWlycm9ycyBoZXJlLiAgKi8KLSsgIGkzODZfZHJfbG93LnNldF9jb250cm9s ICgwKTsKLSsgIGlmIChpMzg2X2RyX2xvdy5yZXNldF9hZGRyKQotKyAgICBBTExfREVCVUdfUkVH SVNURVJTKGkpCi0rICAgICAgaTM4Nl9kcl9sb3cucmVzZXRfYWRkciAoaSk7Ci0rfQotKwotIC8q IFJldHVybiBub24temVybyBpZiB3ZSBjYW4gd2F0Y2ggYSBtZW1vcnkgcmVnaW9uIHRoYXQgc3Rh cnRzIGF0Ci0gICAgYWRkcmVzcyBBRERSIGFuZCB3aG9zZSBsZW5ndGggaXMgTEVOIGJ5dGVzLiAg Ki8KLSAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pYTY0LWxpbnV4LW5hdC5jCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9pYTY0LWxpbnV4LW5h dC5jCTIwMDktMDgtMDQgMDc6MTc6MTkuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvaWE2NC1saW51eC1uYXQuYwkyMDA5LTA4LTA0IDA3OjE3OjU4LjAwMDAwMDAw MCArMDIwMAotQEAgLTU4Myw2ICs1ODMsMTIgQEAgaWE2NF9saW51eF9pbnNlcnRfd2F0Y2hwb2lu dCAoQ09SRV9BRERSIAotICAgcmV0dXJuIDA7Ci0gfQotIAotKy8qIFRPX0ZPTExPV19GT1JLIHN0 b3JlcyBoZXJlIHRoZSBQSUQgdW5kZXIgREVUQUNIX0JSRUFLUE9JTlRTIGZvciB0aGUgY2hpbGQK LSsgICBwcm9jZXNzIG9mIHRyYWNlZCBGT1JLLiAgV2UgbXVzdCBjbGVhciBzdWNoIHdhdGNocG9p bnRzIG9ubHkgb25jZSBkdXJpbmcKLSsgICBERVRBQ0hfQlJFQUtQT0lOVFMuICAqLwotKwotK3N0 YXRpYyBpbnQgaWE2NF9saW51eF9kZXRhY2hfYnJlYWtwb2ludHNfcGlkOwotKwotIHN0YXRpYyBp bnQKLSBpYTY0X2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxl biwgaW50IHR5cGUpCi0gewotQEAgLTU5MCw2ICs1OTYsMTEgQEAgaWE2NF9saW51eF9yZW1vdmVf d2F0Y2hwb2ludCAoQ09SRV9BRERSIAotICAgbG9uZyBkYnJfYWRkciwgZGJyX21hc2s7Ci0gICBp bnQgbWF4X3dhdGNocG9pbnRzID0gNDsKLSAKLSsgIGlmIChwdGlkX2dldF9waWQgKGluZmVyaW9y X3B0aWQpID09IGlhNjRfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRzX3BpZCkKLSsgICAgcmV0dXJu IDA7Ci0rICAvKiBGT0xMT1ctRk9SSy1NT0RFIENISUxEIHJ1bnMgbGF0ZXIgdGhlIENISUxEIHdp dGggbm8gcmVzdHJpY3Rpb25zLiAgKi8KLSsgIGlhNjRfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRz X3BpZCA9IDA7Ci0rCi0gICBpZiAobGVuIDw9IDAgfHwgIWlzX3Bvd2VyX29mXzIgKGxlbikpCi0g ICAgIHJldHVybiAtMTsKLSAKLUBAIC02MTcsNiArNjI4LDIyIEBAIGlhNjRfbGludXhfcmVtb3Zl X3dhdGNocG9pbnQgKENPUkVfQUREUiAKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLStpYTY0X2xpbnV4 X2RldGFjaF9icmVha3BvaW50cyAoaW50IGRldGFjaGVkX3BpZCkKLSt7Ci0rICBpbnQgaWR4LCBp OwotKyAgbG9uZyBkYnJfYWRkciwgZGJyX21hc2s7Ci0rICBpbnQgbWF4X3dhdGNocG9pbnRzID0g NDsKLSsKLSsgIGlhNjRfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRzX3BpZCA9IGRldGFjaGVkX3Bp ZDsKLSsKLSsgIC8qIERvIG5vdCB0b3VjaCBhbnkgREVCVUdfUkVHSVNURVJTIG1pcnJvcnMgaGVy ZS4gICovCi0rICBkYnJfYWRkciA9IDA7Ci0rICBkYnJfbWFzayA9IDA7Ci0rICBmb3IgKGlkeCA9 IDA7IGlkeCA8IG1heF93YXRjaHBvaW50czsgaWR4KyspCi0rICAgIHN0b3JlX2RlYnVnX3JlZ2lz dGVyX3BhaXIgKHB0aWRfYnVpbGQgKGRldGFjaGVkX3BpZCwgMCwgMCksIGlkeCwgJmRicl9hZGRy LCAmZGJyX21hc2spOwotK30KLSsKLStzdGF0aWMgdm9pZAotIGlhNjRfbGludXhfbmV3X3RocmVh ZCAocHRpZF90IHB0aWQpCi0gewotICAgaW50IGksIGFueTsKLUBAIC04MDcsNiArODM0LDQwIEBA IGlhNjRfbGludXhfeGZlcl9wYXJ0aWFsIChzdHJ1Y3QgdGFyZ2V0X28KLSAJCQkgICAgIG9mZnNl dCwgbGVuKTsKLSB9Ci0gCi0rc3RhdGljIGludCAoKmlhNjRfbGludXhfc3VwZXJfZm9sbG93X2Zv cmspIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLAotKwkJCQkJICAgIGludCBmb2xsb3dfY2hpbGQp OwotKwotKy8qIFdlIG5lZWQgdG8gZHVwbGljYXRlIHRoZSBMSU5VWF9DSElMRF9GT0xMT1dfRk9S SyBiZWhhdmlvciBoZXJlIGFuZCBjYXRjaCBpdHMKLSsgICBjYWxsZWQgREVUQUNIX0JSRUFLUE9J TlRTIHRvIGF2b2lkIGNvcnJ1cHRpbmcgb3VyIGxvY2FsIHJlZ2lzdGVycyBtaXJyb3IuICAqLwot KwotK2ludAotK2lhNjRfbGludXhfZm9sbG93X2ZvcmsgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMs IGludCBmb2xsb3dfY2hpbGQpCi0rewotKyAgcHRpZF90IGxhc3RfcHRpZDsKLSsgIHN0cnVjdCB0 YXJnZXRfd2FpdHN0YXR1cyBsYXN0X3N0YXR1czsKLSsgIGludCBoYXNfdmZvcmtlZDsKLSsgIGlu dCBwYXJlbnRfcGlkLCBjaGlsZF9waWQ7Ci0rCi0rICBnZXRfbGFzdF90YXJnZXRfc3RhdHVzICgm bGFzdF9wdGlkLCAmbGFzdF9zdGF0dXMpOwotKyAgaGFzX3Zmb3JrZWQgPSAobGFzdF9zdGF0dXMu a2luZCA9PSBUQVJHRVRfV0FJVEtJTkRfVkZPUktFRCk7Ci0rICBwYXJlbnRfcGlkID0gcHRpZF9n ZXRfbHdwIChsYXN0X3B0aWQpOwotKyAgaWYgKHBhcmVudF9waWQgPT0gMCkKLSsgICAgcGFyZW50 X3BpZCA9IHB0aWRfZ2V0X3BpZCAobGFzdF9wdGlkKTsKLSsgIGNoaWxkX3BpZCA9IHB0aWRfZ2V0 X3BpZCAobGFzdF9zdGF0dXMudmFsdWUucmVsYXRlZF9waWQpOwotKwotKyAgaWYgKCEgZm9sbG93 X2NoaWxkKQotKyAgICB7Ci0rICAgICAgaWE2NF9saW51eF9kZXRhY2hfYnJlYWtwb2ludHMgKGNo aWxkX3BpZCk7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgewotKyAgICAgIGlmICghIGhhc192Zm9y a2VkKQotKwlpYTY0X2xpbnV4X2RldGFjaF9icmVha3BvaW50cyAoY2hpbGRfcGlkKTsKLSsgICAg fQotKwotKyAgcmV0dXJuICgqaWE2NF9saW51eF9zdXBlcl9mb2xsb3dfZm9yaykgKG9wcywgZm9s bG93X2NoaWxkKTsKLSt9Ci0rCi0gdm9pZCBfaW5pdGlhbGl6ZV9pYTY0X2xpbnV4X25hdCAodm9p ZCk7Ci0gCi0gLyoKLUBAIC05MDEsNiArOTYyLDkgQEAgX2luaXRpYWxpemVfaWE2NF9saW51eF9u YXQgKHZvaWQpCi0gICB0LT50b19pbnNlcnRfd2F0Y2hwb2ludCA9IGlhNjRfbGludXhfaW5zZXJ0 X3dhdGNocG9pbnQ7Ci0gICB0LT50b19yZW1vdmVfd2F0Y2hwb2ludCA9IGlhNjRfbGludXhfcmVt b3ZlX3dhdGNocG9pbnQ7Ci0gCi0rICBpYTY0X2xpbnV4X3N1cGVyX2ZvbGxvd19mb3JrID0gdC0+ dG9fZm9sbG93X2Zvcms7Ci0rICB0LT50b19mb2xsb3dfZm9yayA9IGlhNjRfbGludXhfZm9sbG93 X2Zvcms7Ci0rCi0gICAvKiBSZWdpc3RlciB0aGUgdGFyZ2V0LiAgKi8KLSAgIGxpbnV4X25hdF9h ZGRfdGFyZ2V0ICh0KTsKLSAgIGxpbnV4X25hdF9zZXRfbmV3X3RocmVhZCAodCwgaWE2NF9saW51 eF9uZXdfdGhyZWFkKTsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9wcGMtbGludXgt bmF0LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3BwYy1s aW51eC1uYXQuYwkyMDA5LTA4LTA0IDA3OjE3OjE5LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDA5LTA4LTA0IDA3OjE3OjU4LjAw MDAwMDAwMCArMDIwMAotQEAgLTEzNzcsNiArMTM3NywxMiBAQCBwcGNfbGludXhfaW5zZXJ0X3dh dGNocG9pbnQgKENPUkVfQUREUiBhCi0gICByZXR1cm4gMDsKLSB9Ci0gCi0rLyogVE9fRk9MTE9X X0ZPUksgc3RvcmVzIGhlcmUgdGhlIFBJRCB1bmRlciBERVRBQ0hfQlJFQUtQT0lOVFMgZm9yIHRo ZSBjaGlsZAotKyAgIHByb2Nlc3Mgb2YgdHJhY2VkIEZPUksuICBXZSBtdXN0IGNsZWFyIHN1Y2gg d2F0Y2hwb2ludHMgb25seSBvbmNlIGR1cmluZwotKyAgIERFVEFDSF9CUkVBS1BPSU5UUy4gICov Ci0rCi0rc3RhdGljIGludCBwcGNfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRzX3BpZDsKLSsKLSBz dGF0aWMgaW50Ci0gcHBjX2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwg aW50IGxlbiwgaW50IHJ3KQotIHsKLUBAIC0xMzg0LDYgKzEzOTAsMTEgQEAgcHBjX2xpbnV4X3Jl bW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYQotICAgcHRpZF90IHB0aWQ7Ci0gICBsb25nIGRh YnJfdmFsdWUgPSAwOwotIAotKyAgaWYgKHB0aWRfZ2V0X3BpZCAoaW5mZXJpb3JfcHRpZCkgPT0g cHBjX2xpbnV4X2RldGFjaF9icmVha3BvaW50c19waWQpCi0rICAgIHJldHVybiAwOwotKyAgLyog Rk9MTE9XLUZPUkstTU9ERSBDSElMRCBydW5zIGxhdGVyIHRoZSBDSElMRCB3aXRoIG5vIHJlc3Ry aWN0aW9ucy4gICovCi0rICBwcGNfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRzX3BpZCA9IDA7Ci0r Ci0gICBzYXZlZF9kYWJyX3ZhbHVlID0gMDsKLSAgIEFMTF9MV1BTIChscCwgcHRpZCkKLSAgICAg aWYgKHB0cmFjZSAoUFRSQUNFX1NFVF9ERUJVR1JFRywgVElER0VUIChwdGlkKSwgMCwgc2F2ZWRf ZGFicl92YWx1ZSkgPCAwKQotQEAgLTEzOTcsNiArMTQwOCwxNSBAQCBwcGNfbGludXhfbmV3X3Ro cmVhZCAocHRpZF90IHB0aWQpCi0gICBwdHJhY2UgKFBUUkFDRV9TRVRfREVCVUdSRUcsIFRJREdF VCAocHRpZCksIDAsIHNhdmVkX2RhYnJfdmFsdWUpOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK3Bw Y19saW51eF9kZXRhY2hfYnJlYWtwb2ludHMgKGludCBkZXRhY2hlZF9waWQpCi0rewotKyAgcHBj X2xpbnV4X2RldGFjaF9icmVha3BvaW50c19waWQgPSBkZXRhY2hlZF9waWQ7Ci0rCi0rICAvKiBE byBub3QgdG91Y2ggdGhlIFNBVkVEX0RBQlJfVkFMVUUgbWlycm9yIGhlcmUuICAqLwotKyAgcHRy YWNlIChQVFJBQ0VfU0VUX0RFQlVHUkVHLCBkZXRhY2hlZF9waWQsIDAsIDApOwotK30KLSsKLSBz dGF0aWMgaW50Ci0gcHBjX2xpbnV4X3N0b3BwZWRfZGF0YV9hZGRyZXNzIChzdHJ1Y3QgdGFyZ2V0 X29wcyAqdGFyZ2V0LCBDT1JFX0FERFIgKmFkZHJfcCkKLSB7Ci1AQCAtMTYyOSw2ICsxNjQ5LDQw IEBAIHBwY19saW51eF9yZWFkX2Rlc2NyaXB0aW9uIChzdHJ1Y3QgdGFyZ2UKLSAgIHJldHVybiBp c2EyMDU/IHRkZXNjX3Bvd2VycGNfaXNhMjA1XzMybCA6IHRkZXNjX3Bvd2VycGNfMzJsOwotIH0K LSAKLStzdGF0aWMgaW50ICgqcHBjX2xpbnV4X3N1cGVyX2ZvbGxvd19mb3JrKSAoc3RydWN0IHRh cmdldF9vcHMgKm9wcywKLSsJCQkJCSAgIGludCBmb2xsb3dfY2hpbGQpOwotKwotKy8qIFdlIG5l ZWQgdG8gZHVwbGljYXRlIHRoZSBMSU5VWF9DSElMRF9GT0xMT1dfRk9SSyBiZWhhdmlvciBoZXJl IGFuZCBjYXRjaCBpdHMKLSsgICBjYWxsZWQgREVUQUNIX0JSRUFLUE9JTlRTIHRvIGF2b2lkIGNv cnJ1cHRpbmcgb3VyIGxvY2FsIHJlZ2lzdGVycyBtaXJyb3IuICAqLwotKwotK2ludAotK3BwY19s aW51eF9mb2xsb3dfZm9yayAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgaW50IGZvbGxvd19jaGls ZCkKLSt7Ci0rICBwdGlkX3QgbGFzdF9wdGlkOwotKyAgc3RydWN0IHRhcmdldF93YWl0c3RhdHVz IGxhc3Rfc3RhdHVzOwotKyAgaW50IGhhc192Zm9ya2VkOwotKyAgaW50IHBhcmVudF9waWQsIGNo aWxkX3BpZDsKLSsKLSsgIGdldF9sYXN0X3RhcmdldF9zdGF0dXMgKCZsYXN0X3B0aWQsICZsYXN0 X3N0YXR1cyk7Ci0rICBoYXNfdmZvcmtlZCA9IChsYXN0X3N0YXR1cy5raW5kID09IFRBUkdFVF9X QUlUS0lORF9WRk9SS0VEKTsKLSsgIHBhcmVudF9waWQgPSBwdGlkX2dldF9sd3AgKGxhc3RfcHRp ZCk7Ci0rICBpZiAocGFyZW50X3BpZCA9PSAwKQotKyAgICBwYXJlbnRfcGlkID0gcHRpZF9nZXRf cGlkIChsYXN0X3B0aWQpOwotKyAgY2hpbGRfcGlkID0gcHRpZF9nZXRfcGlkIChsYXN0X3N0YXR1 cy52YWx1ZS5yZWxhdGVkX3BpZCk7Ci0rCi0rICBpZiAoISBmb2xsb3dfY2hpbGQpCi0rICAgIHsK LSsgICAgICBwcGNfbGludXhfZGV0YWNoX2JyZWFrcG9pbnRzIChjaGlsZF9waWQpOwotKyAgICB9 Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICBpZiAoISBoYXNfdmZvcmtlZCkKLSsJcHBjX2xpbnV4 X2RldGFjaF9icmVha3BvaW50cyAoY2hpbGRfcGlkKTsKLSsgICAgfQotKwotKyAgcmV0dXJuICgq cHBjX2xpbnV4X3N1cGVyX2ZvbGxvd19mb3JrKSAob3BzLCBmb2xsb3dfY2hpbGQpOwotK30KLSsK LSB2b2lkIF9pbml0aWFsaXplX3BwY19saW51eF9uYXQgKHZvaWQpOwotIAotIHZvaWQKLUBAIC0x NjU1LDYgKzE3MDksOSBAQCBfaW5pdGlhbGl6ZV9wcGNfbGludXhfbmF0ICh2b2lkKQotICAgdC0+ dG9fcmVhZF9kZXNjcmlwdGlvbiA9IHBwY19saW51eF9yZWFkX2Rlc2NyaXB0aW9uOwotICAgdC0+ dG9fYXV4dl9wYXJzZSA9IHBwY19saW51eF9hdXh2X3BhcnNlOwotIAotKyAgcHBjX2xpbnV4X3N1 cGVyX2ZvbGxvd19mb3JrID0gdC0+dG9fZm9sbG93X2Zvcms7Ci0rICB0LT50b19mb2xsb3dfZm9y ayA9IHBwY19saW51eF9mb2xsb3dfZm9yazsKLSsKLSAgIC8qIFJlZ2lzdGVyIHRoZSB0YXJnZXQu ICAqLwotICAgbGludXhfbmF0X2FkZF90YXJnZXQgKHQpOwotICAgbGludXhfbmF0X3NldF9uZXdf dGhyZWFkICh0LCBwcGNfbGludXhfbmV3X3RocmVhZCk7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5 MDgwMy9nZGIvczM5MC1uYXQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMu b3JpZy9nZGIvczM5MC1uYXQuYwkyMDA5LTA4LTA0IDA3OjE3OjE5LjAwMDAwMDAwMCArMDIwMAot KysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3MzOTAtbmF0LmMJMjAwOS0wOC0wNCAwNzoxNzo1 OC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yODUsMjEgKzI4NSwxNSBAQCBzMzkwX3N0b3BwZWRfYnlf d2F0Y2hwb2ludCAodm9pZCkKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLS1zMzkwX2ZpeF93YXRjaF9w b2ludHMgKHB0aWRfdCBwdGlkKQotK3MzOTBfZml4X3dhdGNoX3BvaW50c19saXN0IChpbnQgdGlk LCBzdHJ1Y3Qgd2F0Y2hfYXJlYSAqYXJlYV9saXN0KQotIHsKLS0gIGludCB0aWQ7Ci0tCi0gICBw ZXJfc3RydWN0IHBlcl9pbmZvOwotICAgcHRyYWNlX2FyZWEgcGFyZWE7Ci0gCi0gICBDT1JFX0FE RFIgd2F0Y2hfbG9fYWRkciA9IChDT1JFX0FERFIpLTEsIHdhdGNoX2hpX2FkZHIgPSAwOwotICAg c3RydWN0IHdhdGNoX2FyZWEgKmFyZWE7Ci0gCi0tICB0aWQgPSBUSURHRVQgKHB0aWQpOwotLSAg aWYgKHRpZCA9PSAwKQotLSAgICB0aWQgPSBQSURHRVQgKHB0aWQpOwotLQotLSAgZm9yIChhcmVh ID0gd2F0Y2hfYmFzZTsgYXJlYTsgYXJlYSA9IGFyZWEtPm5leHQpCi0rICBmb3IgKGFyZWEgPSBh cmVhX2xpc3Q7IGFyZWE7IGFyZWEgPSBhcmVhLT5uZXh0KQotICAgICB7Ci0gICAgICAgd2F0Y2hf bG9fYWRkciA9IG1pbiAod2F0Y2hfbG9fYWRkciwgYXJlYS0+bG9fYWRkcik7Ci0gICAgICAgd2F0 Y2hfaGlfYWRkciA9IG1heCAod2F0Y2hfaGlfYWRkciwgYXJlYS0+aGlfYWRkcik7Ci1AQCAtMzEx LDcgKzMwNSw3IEBAIHMzOTBfZml4X3dhdGNoX3BvaW50cyAocHRpZF90IHB0aWQpCi0gICBpZiAo cHRyYWNlIChQVFJBQ0VfUEVFS1VTUl9BUkVBLCB0aWQsICZwYXJlYSkgPCAwKQotICAgICBwZXJy b3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCByZXRyaWV2ZSB3YXRjaHBvaW50IHN0YXR1cyIpKTsK LSAKLS0gIGlmICh3YXRjaF9iYXNlKQotKyAgaWYgKGFyZWFfbGlzdCkKLSAgICAgewotICAgICAg IHBlcl9pbmZvLmNvbnRyb2xfcmVncy5iaXRzLmVtX3N0b3JhZ2VfYWx0ZXJhdGlvbiA9IDE7Ci0g ICAgICAgcGVyX2luZm8uY29udHJvbF9yZWdzLmJpdHMuc3RvcmFnZV9hbHRfc3BhY2VfY3RsID0g MTsKLUBAIC0zMjgsNiArMzIyLDE4IEBAIHMzOTBfZml4X3dhdGNoX3BvaW50cyAocHRpZF90IHB0 aWQpCi0gICAgIHBlcnJvcl93aXRoX25hbWUgKF8oIkNvdWxkbid0IG1vZGlmeSB3YXRjaHBvaW50 IHN0YXR1cyIpKTsKLSB9Ci0gCi0rc3RhdGljIHZvaWQKLStzMzkwX2ZpeF93YXRjaF9wb2ludHMg KHB0aWRfdCBwdGlkKQotK3sKLSsgIGludCB0aWQ7Ci0rCi0rICB0aWQgPSBUSURHRVQgKHB0aWQp OwotKyAgaWYgKHRpZCA9PSAwKQotKyAgICB0aWQgPSBQSURHRVQgKHB0aWQpOwotKwotKyAgczM5 MF9maXhfd2F0Y2hfcG9pbnRzX2xpc3QgKHRpZCwgd2F0Y2hfYmFzZSk7Ci0rfQotKwotIHN0YXRp YyBpbnQKLSBzMzkwX2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwg aW50IHR5cGUpCi0gewotQEAgLTM0OSw2ICszNTUsMTIgQEAgczM5MF9pbnNlcnRfd2F0Y2hwb2lu dCAoQ09SRV9BRERSIGFkZHIsIAotICAgcmV0dXJuIDA7Ci0gfQotIAotKy8qIFRPX0ZPTExPV19G T1JLIHN0b3JlcyBoZXJlIHRoZSBQSUQgdW5kZXIgREVUQUNIX0JSRUFLUE9JTlRTIGZvciB0aGUg Y2hpbGQKLSsgICBwcm9jZXNzIG9mIHRyYWNlZCBGT1JLLiAgV2UgbXVzdCBjbGVhciBzdWNoIHdh dGNocG9pbnRzIG9ubHkgb25jZSBkdXJpbmcKLSsgICBERVRBQ0hfQlJFQUtQT0lOVFMuICAqLwot KwotK3N0YXRpYyBpbnQgczM5MF9kZXRhY2hfYnJlYWtwb2ludHNfcGlkOwotKwotIHN0YXRpYyBp bnQKLSBzMzkwX3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50 IHR5cGUpCi0gewotQEAgLTM1Niw2ICszNjgsMTEgQEAgczM5MF9yZW1vdmVfd2F0Y2hwb2ludCAo Q09SRV9BRERSIGFkZHIsIAotICAgcHRpZF90IHB0aWQ7Ci0gICBzdHJ1Y3Qgd2F0Y2hfYXJlYSAq YXJlYSwgKipwYXJlYTsKLSAKLSsgIGlmIChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpID09 IHMzOTBfZGV0YWNoX2JyZWFrcG9pbnRzX3BpZCkKLSsgICAgcmV0dXJuIDA7Ci0rICAvKiBGT0xM T1ctRk9SSy1NT0RFIENISUxEIHJ1bnMgbGF0ZXIgdGhlIENISUxEIHdpdGggbm8gcmVzdHJpY3Rp b25zLiAgKi8KLSsgIHMzOTBfZGV0YWNoX2JyZWFrcG9pbnRzX3BpZCA9IDA7Ci0rCi0gICBmb3Ig KHBhcmVhID0gJndhdGNoX2Jhc2U7ICpwYXJlYTsgcGFyZWEgPSAmKCpwYXJlYSktPm5leHQpCi0g ICAgIGlmICgoKnBhcmVhKS0+bG9fYWRkciA9PSBhZGRyCi0gCSYmICgqcGFyZWEpLT5oaV9hZGRy ID09IGFkZHIgKyBsZW4gLSAxKQotQEAgLTM2Myw4ICszODAsMTAgQEAgczM5MF9yZW1vdmVfd2F0 Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIAotIAotICAgaWYgKCEqcGFyZWEpCi0gICAgIHsKLSsj aWYgMCAvKiBSZWQgSGF0IGZvcmsvdGhyZWFkcyB3YXRjaHBvaW50cyBjaGFuZ2VzIG1heSB0cmln Z2VyIGl0LiAgKi8KLSAgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIsCi0gCQkJ ICAiQXR0ZW1wdCB0byByZW1vdmUgbm9uZXhpc3RlbnQgd2F0Y2hwb2ludC5cbiIpOwotKyNlbmRp ZgotICAgICAgIHJldHVybiAtMTsKLSAgICAgfQotIAotQEAgLTM3Nyw2ICszOTYsMTUgQEAgczM5 MF9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIAotICAgcmV0dXJuIDA7Ci0gfQot IAotK3N0YXRpYyB2b2lkCi0rczM5MF9kZXRhY2hfYnJlYWtwb2ludHMgKGludCBkZXRhY2hlZF9w aWQpCi0rewotKyAgczM5MF9kZXRhY2hfYnJlYWtwb2ludHNfcGlkID0gZGV0YWNoZWRfcGlkOwot KwotKyAgLyogRG8gbm90IHRvdWNoIHRoZSBXQVRDSF9CQVNFIGhlcmUuICAqLwotKyAgczM5MF9m aXhfd2F0Y2hfcG9pbnRzX2xpc3QgKGRldGFjaGVkX3BpZCwgTlVMTCk7Ci0rfQotKwotIHN0YXRp YyBpbnQKLSBzMzkwX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoaW50IHR5cGUsIGludCBjbnQsIGlu dCBvdGhlcnR5cGUpCi0gewotQEAgLTM4OSw2ICs0MTcsMzkgQEAgczM5MF9yZWdpb25fb2tfZm9y X2h3X3dhdGNocG9pbnQgKENPUkVfQQotICAgcmV0dXJuIDE7Ci0gfQotIAotK3N0YXRpYyBpbnQg KCpzMzkwX3N1cGVyX2ZvbGxvd19mb3JrKSAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgaW50IGZv bGxvd19jaGlsZCk7Ci0rCi0rLyogV2UgbmVlZCB0byBkdXBsaWNhdGUgdGhlIExJTlVYX0NISUxE X0ZPTExPV19GT1JLIGJlaGF2aW9yIGhlcmUgYW5kIGNhdGNoIGl0cwotKyAgIGNhbGxlZCBERVRB Q0hfQlJFQUtQT0lOVFMgdG8gYXZvaWQgY29ycnVwdGluZyBvdXIgbG9jYWwgcmVnaXN0ZXJzIG1p cnJvci4gICovCi0rCi0raW50Ci0rczM5MF9mb2xsb3dfZm9yayAoc3RydWN0IHRhcmdldF9vcHMg Km9wcywgaW50IGZvbGxvd19jaGlsZCkKLSt7Ci0rICBwdGlkX3QgbGFzdF9wdGlkOwotKyAgc3Ry dWN0IHRhcmdldF93YWl0c3RhdHVzIGxhc3Rfc3RhdHVzOwotKyAgaW50IGhhc192Zm9ya2VkOwot KyAgaW50IHBhcmVudF9waWQsIGNoaWxkX3BpZDsKLSsKLSsgIGdldF9sYXN0X3RhcmdldF9zdGF0 dXMgKCZsYXN0X3B0aWQsICZsYXN0X3N0YXR1cyk7Ci0rICBoYXNfdmZvcmtlZCA9IChsYXN0X3N0 YXR1cy5raW5kID09IFRBUkdFVF9XQUlUS0lORF9WRk9SS0VEKTsKLSsgIHBhcmVudF9waWQgPSBw dGlkX2dldF9sd3AgKGxhc3RfcHRpZCk7Ci0rICBpZiAocGFyZW50X3BpZCA9PSAwKQotKyAgICBw YXJlbnRfcGlkID0gcHRpZF9nZXRfcGlkIChsYXN0X3B0aWQpOwotKyAgY2hpbGRfcGlkID0gcHRp ZF9nZXRfcGlkIChsYXN0X3N0YXR1cy52YWx1ZS5yZWxhdGVkX3BpZCk7Ci0rCi0rICBpZiAoISBm b2xsb3dfY2hpbGQpCi0rICAgIHsKLSsgICAgICBzMzkwX2RldGFjaF9icmVha3BvaW50cyAoY2hp bGRfcGlkKTsKLSsgICAgfQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgaWYgKCEgaGFzX3Zmb3Jr ZWQpCi0rCXMzOTBfZGV0YWNoX2JyZWFrcG9pbnRzIChjaGlsZF9waWQpOwotKyAgICB9Ci0rCi0r ICByZXR1cm4gKCpzMzkwX3N1cGVyX2ZvbGxvd19mb3JrKSAob3BzLCBmb2xsb3dfY2hpbGQpOwot K30KLSsKLSAKLSB2b2lkIF9pbml0aWFsaXplX3MzOTBfbmF0ICh2b2lkKTsKLSAKLUBAIC00MTIs NiArNDczLDkgQEAgX2luaXRpYWxpemVfczM5MF9uYXQgKHZvaWQpCi0gICB0LT50b19pbnNlcnRf d2F0Y2hwb2ludCA9IHMzOTBfaW5zZXJ0X3dhdGNocG9pbnQ7Ci0gICB0LT50b19yZW1vdmVfd2F0 Y2hwb2ludCA9IHMzOTBfcmVtb3ZlX3dhdGNocG9pbnQ7Ci0gCi0rICBzMzkwX3N1cGVyX2ZvbGxv d19mb3JrID0gdC0+dG9fZm9sbG93X2Zvcms7Ci0rICB0LT50b19mb2xsb3dfZm9yayA9IHMzOTBf Zm9sbG93X2Zvcms7Ci0rCi0gICAvKiBSZWdpc3RlciB0aGUgdGFyZ2V0LiAgKi8KLSAgIGxpbnV4 X25hdF9hZGRfdGFyZ2V0ICh0KTsKLSAgIGxpbnV4X25hdF9zZXRfbmV3X3RocmVhZCAodCwgczM5 MF9maXhfd2F0Y2hfcG9pbnRzKTsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90ZXN0 c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2hwb2ludC1mb3JrLWZvcmtvZmYuYwotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50LWZv cmstZm9ya29mZi5jCTIwMDktMDgtMDQgMDc6MTc6NTguMDAwMDAwMDAwICswMjAwCi1AQCAtMCww ICsxLDE3MiBAQAotKy8qIFRlc3QgY2FzZSBmb3IgZm9yZ290dGVuIGh3LXdhdGNocG9pbnRzIGFm dGVyIGZvcmsoKS1vZmYgb2YgYSBwcm9jZXNzLgotKwotKyAgIENvcHlyaWdodCAyMDA4Ci0rICAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBmaWxlIGlzIHBhcnQg b2YgR0RCLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv cgotKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0rICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rICAgRm91bmRhdGlvbiwg SW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotKyAgIEJvc3RvbiwgTUEgMDIxMTEt MTMwNywgVVNBLiAgKi8KLSsKLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rI2luY2x1ZGUgPGVycm5v Lmg+Ci0rCi0rc3RhdGljIHZvaWQgZGVsYXkgKHZvaWQpCi0rewotKyAgaW50IGkgPSB1c2xlZXAg KDEwMDAwMDAgLyAxMDApOwotKyAgYXNzZXJ0IChpID09IDAgfHwgZXJybm8gPT0gRUlOVFIpOwot K30KLSsKLSsjaWYgZGVmaW5lZCBGT0xMT1dfUEFSRU5UCi0rCi0rc3RhdGljIHZvaWQgZm9ya29m ZiAoaW50IG5yKQotK3sKLSsgIHBpZF90IGNoaWxkLCBwaWRfZ290OwotKyAgaW50IGV4aXRfY29k ZSA9IDQyICsgbnI7Ci0rICBpbnQgc3RhdHVzLCBpOwotKwotKyAgY2hpbGQgPSBmb3JrICgpOwot KyAgc3dpdGNoIChjaGlsZCkKLSsgICAgewotKyAgICBjYXNlIC0xOgotKyAgICAgIGFzc2VydCAo MCk7Ci0rICAgIGNhc2UgMDoKLSsgICAgICBwcmludGYgKCJjaGlsZCVkOiAlZFxuIiwgbnIsIChp bnQpIGdldHBpZCAoKSk7Ci0rICAgICAgLyogRGVsYXkgdG8gZ2V0IGJvdGggdGhlICJjaGlsZCVk IiBhbmQgInBhcmVudCVkIiBtZXNzYWdlIHByaW50ZWQgd2l0aG91dAotKwkgYSByYWNlIGJyZWFr aW5nIGV4cGVjdCBieSBpdHMgZW5kbGVzcyB3YWl0IG9uIGAkZ2RiX3Byb21wdCQnOgotKwkgQnJl YWtwb2ludCAzLCBicmVha3BvaW50ICgpIGF0IC4uLy4uLy4uL2dkYi90ZXN0c3VpdGUvZ2RiLnRo cmVhZHMvd2F0Y2hwb2ludC1mb3JrLmM6MzMKLSsJIDMzICAgICAgfQotKwkgKGdkYikgcGFyZW50 MjogMTQyMjMgICovCi0rICAgICAgaSA9IHNsZWVwICgxKTsKLSsgICAgICBhc3NlcnQgKGkgPT0g MCk7Ci0rCi0rICAgICAgLyogV2UgbXVzdCBub3QgZ2V0IGNhdWdodCBoZXJlIChhZ2FpbnN0IGEg Zm9yZ290dGVuIGJyZWFrcG9pbnQpLiAgKi8KLSsgICAgICB2YXIrKzsKLSsgICAgICBicmVha3Bv aW50ICgpOwotKwotKyAgICAgIF9leGl0IChleGl0X2NvZGUpOwotKyAgICBkZWZhdWx0OgotKyAg ICAgIHByaW50ZiAoInBhcmVudCVkOiAlZFxuIiwgbnIsIChpbnQpIGNoaWxkKTsKLSsgICAgICAv KiBEZWxheSB0byBnZXQgYm90aCB0aGUgImNoaWxkJWQiIGFuZCAicGFyZW50JWQiIG1lc3NhZ2Ug cHJpbnRlZCwgc2VlCi0rCSBhYm92ZS4gICovCi0rICAgICAgaSA9IHNsZWVwICgxKTsKLSsgICAg ICBhc3NlcnQgKGkgPT0gMCk7Ci0rCi0rICAgICAgcGlkX2dvdCA9IHdhaXQgKCZzdGF0dXMpOwot KyAgICAgIGFzc2VydCAocGlkX2dvdCA9PSBjaGlsZCk7Ci0rICAgICAgYXNzZXJ0IChXSUZFWElU RUQgKHN0YXR1cykpOwotKyAgICAgIGFzc2VydCAoV0VYSVRTVEFUVVMgKHN0YXR1cykgPT0gZXhp dF9jb2RlKTsKLSsKLSsgICAgICAvKiBXZSBtdXN0IGdldCBjYXVnaHQgaGVyZSAoYWdhaW5zdCBh IGZhbHNlIHdhdGNocG9pbnQgcmVtb3ZhbCkuICAqLwotKyAgICAgIGJyZWFrcG9pbnQgKCk7Ci0r ICAgIH0KLSt9Ci0rCi0rI2VsaWYgZGVmaW5lZCBGT0xMT1dfQ0hJTEQKLSsKLStzdGF0aWMgdm9s YXRpbGUgaW50IHVzcjFfZ290OwotKwotK3N0YXRpYyB2b2lkIGhhbmRsZXJfdXNyMSAoaW50IHNp Z25vKQotK3sKLSsgIHVzcjFfZ290Kys7Ci0rfQotKwotK3N0YXRpYyB2b2lkIGZvcmtvZmYgKGlu dCBucikKLSt7Ci0rICBwaWRfdCBjaGlsZDsKLSsgIGludCBpLCBsb29wOwotKyAgc3RydWN0IHNp Z2FjdGlvbiBhY3QsIG9sZGFjdDsKLSsjaWZkZWYgVEhSRUFECi0rICB2b2lkICp0aHJlYWRfcmVz dWx0OwotKyNlbmRpZgotKwotKyAgbWVtc2V0ICgmYWN0LCAwLCBzaXplb2YgYWN0KTsKLSsgIGFj dC5zYV9mbGFncyA9IFNBX1JFU1RBUlQ7Ci0rICBhY3Quc2FfaGFuZGxlciA9IGhhbmRsZXJfdXNy MTsKLSsgIHNpZ2VtcHR5c2V0ICgmYWN0LnNhX21hc2spOwotKyAgaSA9IHNpZ2FjdGlvbiAoU0lH VVNSMSwgJmFjdCwgJm9sZGFjdCk7Ci0rICBhc3NlcnQgKGkgPT0gMCk7Ci0rCi0rICBjaGlsZCA9 IGZvcmsgKCk7Ci0rICBzd2l0Y2ggKGNoaWxkKQotKyAgICB7Ci0rICAgIGNhc2UgLTE6Ci0rICAg ICAgYXNzZXJ0ICgwKTsKLSsgICAgZGVmYXVsdDoKLSsgICAgICBwcmludGYgKCJwYXJlbnQlZDog JWRcbiIsIG5yLCAoaW50KSBjaGlsZCk7Ci0rCi0rICAgICAgLyogU2xlZXAgZm9yIGEgd2hpbGUg dG8gcG9zc2libHkgZ2V0IGluY29ycmVjdGx5IEFUVEFDSF9USFJFQURlZCBieSBHREIKLSsgICAg ICAgICB0cmFjaW5nIHRoZSBjaGlsZCBmb3JrIHdpdGggbm8gbG9uZ2VyIHZhbGlkIHRocmVhZC9s d3AgZW50cmllcyBvZiB0aGUKLSsgICAgICAgICBwYXJlbnQuICAqLwotKwotKyAgICAgIGkgPSBz bGVlcCAoMik7Ci0rICAgICAgYXNzZXJ0IChpID09IDApOwotKwotKyAgICAgIC8qIFdlIG11c3Qg bm90IGdldCBjYXVnaHQgaGVyZSAoYWdhaW5zdCBhIGZvcmdvdHRlbiBicmVha3BvaW50KS4gICov Ci0rCi0rICAgICAgdmFyKys7Ci0rICAgICAgYnJlYWtwb2ludCAoKTsKLSsKLSsjaWZkZWYgVEhS RUFECi0rICAgICAgLyogQW5kIG5laXRoZXIgZ290IGNhdWdodCBvdXIgdGhyZWFkLiAgKi8KLSsK LSsgICAgICBzdGVwID0gOTk7Ci0rICAgICAgaSA9IHB0aHJlYWRfam9pbiAodGhyZWFkLCAmdGhy ZWFkX3Jlc3VsdCk7Ci0rICAgICAgYXNzZXJ0IChpID09IDApOwotKyAgICAgIGFzc2VydCAodGhy ZWFkX3Jlc3VsdCA9PSAodm9pZCAqKSA5OVVMKTsKLSsjZW5kaWYKLSsKLSsgICAgICAvKiBCZSBz dXJlIG91ciBjaGlsZCBrbm93cyB3ZSBkaWQgbm90IGdldCBjYXVnaHQgYWJvdmUuICAqLwotKwot KyAgICAgIGkgPSBraWxsIChjaGlsZCwgU0lHVVNSMSk7Ci0rICAgICAgYXNzZXJ0IChpID09IDAp OwotKwotKyAgICAgIC8qIFNsZWVwIGZvciBhIHdoaWxlIHRvIGNoZWNrIEdEQidzIGBpbmZvIHRo cmVhZHMnIG5vIGxvbmdlciB0cmFja3MgdXMgaW4KLSsgICAgICAgICB0aGUgY2hpbGQgZm9yay4g ICovCi0rCi0rICAgICAgaSA9IHNsZWVwICgyKTsKLSsgICAgICBhc3NlcnQgKGkgPT0gMCk7Ci0r Ci0rICAgICAgX2V4aXQgKDApOwotKyAgICBjYXNlIDA6Ci0rICAgICAgcHJpbnRmICgiY2hpbGQl ZDogJWRcbiIsIG5yLCAoaW50KSBnZXRwaWQgKCkpOwotKwotKyAgICAgIC8qIExldCB0aGUgcGFy ZW50IHNpZ25hbCB1cyBhYm91dCBpdHMgc3VjY2Vzcy4gIEJlIGNhcmVmdWwgb2YgcmFjZXMuICAq LwotKwotKyAgICAgIGZvciAobG9vcCA9IDA7IGxvb3AgPCAxMDAwOyBsb29wKyspCi0rICAgICAg ICB7Ci0rCSAgLyogUGFyZW50IGVpdGhlciBkaWVkIChhbmQgVVNSMV9HT1QgaXMgemVybykgb3Ig aXQgc3VjY2VlZGVkLiAgKi8KLSsJICBpZiAoa2lsbCAoZ2V0cHBpZCAoKSwgMCkgIT0gMCkKLSsJ ICAgIGJyZWFrOwotKwkgIC8qIFBhcmVudCBzdWNjZWVkZWQ/ICAqLwotKwkgIGlmICh1c3IxX2dv dCkKLSsJICAgIGJyZWFrOwotKwotKwkgIGRlbGF5ICgpOwotKwl9Ci0rICAgICAgYXNzZXJ0ICh1 c3IxX2dvdCk7Ci0rCi0rICAgICAgLyogV2UgbXVzdCBnZXQgY2F1Z2h0IGhlcmUgKGFnYWluc3Qg YSBmYWxzZSB3YXRjaHBvaW50IHJlbW92YWwpLiAgKi8KLSsKLSsgICAgICBicmVha3BvaW50ICgp OwotKyAgICB9Ci0rCi0rICBpID0gc2lnYWN0aW9uIChTSUdVU1IxLCAmb2xkYWN0LCBOVUxMKTsK LSsgIGFzc2VydCAoaSA9PSAwKTsKLSt9Ci0rCi0rI2Vsc2UKLSsjIGVycm9yICIhRk9MTE9XX1BB UkVOVCAmJiAhRk9MTE9XX0NISUxEIgotKyNlbmRpZgotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50LWZvcmstbXQuYwotPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRjaHBv aW50LWZvcmstbXQuYwkyMDA5LTA4LTA0IDA3OjE3OjU4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAs MCArMSwxNTQgQEAKLSsvKiBUZXN0IGNhc2UgZm9yIGZvcmdvdHRlbiBody13YXRjaHBvaW50cyBh ZnRlciBmb3JrKCktb2ZmIG9mIGEgcHJvY2Vzcy4KLSsKLSsgICBDb3B5cmlnaHQgMjAwOAotKyAg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg b3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyAgIEZvdW5kYXRpb24s IEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSsgICBCb3N0b24sIE1BIDAyMTEx LTEzMDcsIFVTQS4gICovCi0rCi0rI2luY2x1ZGUgPGFzc2VydC5oPgotKyNpbmNsdWRlIDx1bmlz dGQuaD4KLSsjaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsjaW5j bHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSsKLSsjaW5jbHVkZSA8YXNt L3VuaXN0ZC5oPgotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsjZGVmaW5lIGdldHRpZCgpIHN5c2Nh bGwgKF9fTlJfZ2V0dGlkKQotKwotKy8qIE5vbi1hdG9taWMgYHZhcisrJyBzaG91bGQgbm90IGh1 cnQgYXMgd2Ugc3luY2hyb25pemUgdGhlIHRocmVhZHMgYnkgdGhlIFNURVAKLSsgICB2YXJpYWJs ZS4gIEhpdC1jb21tZW50cyBuZWVkIHRvIGJlIGR1cGxpY2l0ZSB0aGVyZSB0byBjYXRjaCBib3Ro IGF0LXN0b3BzCi0rICAgYW5kIGJlaGluZC1zdG9wcywgZGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQu ICAqLwotKwotK3N0YXRpYyB2b2xhdGlsZSBpbnQgdmFyOwotKwotK3N0YXRpYyB2b2lkIGR1bW15 ICh2b2lkKQotK3sKLSt9Ci0rCi0rc3RhdGljIHZvaWQgYnJlYWtwb2ludCAodm9pZCkKLSt7Ci0r fQotKwotKy8qIEluY2x1ZGUgaGVyZSB0aGUgZnVuY3Rpb25zOgotKyAgIHN0YXRpYyB2b2lkIGZv cmtvZmYgKGludCBucik7Ci0rICAgc3RhdGljIHZvaWQgZGVsYXkgKHZvaWQpOyAgKi8KLSsKLStz dGF0aWMgcHRocmVhZF90IHRocmVhZDsKLStzdGF0aWMgdm9sYXRpbGUgaW50IHN0ZXA7Ci0rI2Rl ZmluZSBUSFJFQUQKLSsKLSsjaW5jbHVkZSAid2F0Y2hwb2ludC1mb3JrLWZvcmtvZmYuYyIKLSsK LStzdGF0aWMgdm9pZCAqc3RhcnQgKHZvaWQgKmFyZykKLSt7Ci0rICBpZiAoc3RlcCA+PSAzKQot KyAgICBnb3RvIHN0ZXBfMzsKLSsKLSsgIHdoaWxlIChzdGVwICE9IDEpCi0rICAgIGRlbGF5ICgp OwotKwotKyAgdmFyKys7CS8qIHZhbGlkaXR5LXRocmVhZC1CICovCi0rICBkdW1teSAoKTsJLyog dmFsaWRpdHktdGhyZWFkLUIgKi8KLSsgIHN0ZXAgPSAyOwotKyAgd2hpbGUgKHN0ZXAgIT0gMykK LSsgICAgewotKyAgICAgIGlmIChzdGVwID09IDk5KQotKyAgICAgICAgZ290byBzdGVwXzk5Owot KyAgICAgIGRlbGF5ICgpOwotKyAgICB9Ci0rCi0rc3RlcF8zOgotKyAgaWYgKHN0ZXAgPj0gNSkK LSsgICAgZ290byBzdGVwXzU7Ci0rCi0rICB2YXIrKzsJLyogYWZ0ZXItZm9yazEtQiAqLwotKyAg ZHVtbXkgKCk7CS8qIGFmdGVyLWZvcmsxLUIgKi8KLSsgIHN0ZXAgPSA0OwotKyAgd2hpbGUgKHN0 ZXAgIT0gNSkKLSsgICAgewotKyAgICAgIGlmIChzdGVwID09IDk5KQotKyAgICAgICAgZ290byBz dGVwXzk5OwotKyAgICAgIGRlbGF5ICgpOwotKyAgICB9Ci0rCi0rc3RlcF81OgotKyAgdmFyKys7 CS8qIGFmdGVyLWZvcmsyLUIgKi8KLSsgIGR1bW15ICgpOwkvKiBhZnRlci1mb3JrMi1CICovCi0r ICByZXR1cm4gKHZvaWQgKikgNVVMOwotKwotK3N0ZXBfOTk6Ci0rICAvKiBXZSBtdXN0IG5vdCBn ZXQgY2F1Z2h0IGhlcmUgKGFnYWluc3QgYSBmb3Jnb3R0ZW4gYnJlYWtwb2ludCkuICAqLwotKyAg dmFyKys7Ci0rICBicmVha3BvaW50ICgpOwotKyAgcmV0dXJuICh2b2lkICopIDk5VUw7Ci0rfQot KwotK2ludCBtYWluICh2b2lkKQotK3sKLSsgIGludCBpOwotKyAgdm9pZCAqdGhyZWFkX3Jlc3Vs dDsKLSsKLSsgIHNldGJ1ZiAoc3Rkb3V0LCBOVUxMKTsKLSsgIHByaW50ZiAoIm1haW46ICVkXG4i LCAoaW50KSBnZXR0aWQgKCkpOwotKwotKyAgLyogR2VuZXJhbCB3YXRjaHBvaW50cyB2YWxpZGl0 eS4gICovCi0rICB2YXIrKzsJLyogdmFsaWRpdHktZmlyc3QgKi8KLSsgIGR1bW15ICgpOwkvKiB2 YWxpZGl0eS1maXJzdCAqLwotKwotKyAgaSA9IHB0aHJlYWRfY3JlYXRlICgmdGhyZWFkLCBOVUxM LCBzdGFydCwgTlVMTCk7Ci0rICBhc3NlcnQgKGkgPT0gMCk7Ci0rCi0rICB2YXIrKzsJLyogdmFs aWRpdHktdGhyZWFkLUEgKi8KLSsgIGR1bW15ICgpOwkvKiB2YWxpZGl0eS10aHJlYWQtQSAqLwot KyAgc3RlcCA9IDE7Ci0rICB3aGlsZSAoc3RlcCAhPSAyKQotKyAgICBkZWxheSAoKTsKLSsKLSsg IC8qIEhhcmR3YXJlIHdhdGNocG9pbnRzIGdvdCBkaXNhcm1lZCBoZXJlLiAgKi8KLSsgIGZvcmtv ZmYgKDEpOwotKwotKyAgdmFyKys7CS8qIGFmdGVyLWZvcmsxLUEgKi8KLSsgIGR1bW15ICgpOwkv KiBhZnRlci1mb3JrMS1BICovCi0rICBzdGVwID0gMzsKLSsjaWZkZWYgRk9MTE9XX0NISUxECi0r ICAvKiBTcGF3biBuZXcgdGhyZWFkIGFzIGl0IHdhcyBkZWxldGVkIGluIHRoZSBjaGlsZCBvZiBG T1JLLiAgKi8KLSsgIGkgPSBwdGhyZWFkX2NyZWF0ZSAoJnRocmVhZCwgTlVMTCwgc3RhcnQsIE5V TEwpOwotKyAgYXNzZXJ0IChpID09IDApOwotKyNlbmRpZgotKyAgd2hpbGUgKHN0ZXAgIT0gNCkK LSsgICAgZGVsYXkgKCk7Ci0rCi0rICAvKiBBIHNhbml0eSBjaGVjayBmb3IgZG91YmxlIGhhcmR3 YXJlIHdhdGNocG9pbnRzIHJlbW92YWwuICAqLwotKyAgZm9ya29mZiAoMik7Ci0rCi0rICB2YXIr KzsJLyogYWZ0ZXItZm9yazItQSAqLwotKyAgZHVtbXkgKCk7CS8qIGFmdGVyLWZvcmsyLUEgKi8K LSsgIHN0ZXAgPSA1OwotKyNpZmRlZiBGT0xMT1dfQ0hJTEQKLSsgIC8qIFNwYXduIG5ldyB0aHJl YWQgYXMgaXQgd2FzIGRlbGV0ZWQgaW4gdGhlIGNoaWxkIG9mIEZPUksuICAqLwotKyAgaSA9IHB0 aHJlYWRfY3JlYXRlICgmdGhyZWFkLCBOVUxMLCBzdGFydCwgTlVMTCk7Ci0rICBhc3NlcnQgKGkg PT0gMCk7Ci0rI2VuZGlmCi0rCi0rICBpID0gcHRocmVhZF9qb2luICh0aHJlYWQsICZ0aHJlYWRf cmVzdWx0KTsKLSsgIGFzc2VydCAoaSA9PSAwKTsKLSsgIGFzc2VydCAodGhyZWFkX3Jlc3VsdCA9 PSAodm9pZCAqKSA1VUwpOwotKwotKyAgcmV0dXJuIDA7Ci0rfQotSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50LWZvcmsuYwotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRj aHBvaW50LWZvcmsuYwkyMDA5LTA4LTA0IDA3OjE3OjU4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAs MCArMSw1NiBAQAotKy8qIFRlc3QgY2FzZSBmb3IgZm9yZ290dGVuIGh3LXdhdGNocG9pbnRzIGFm dGVyIGZvcmsoKS1vZmYgb2YgYSBwcm9jZXNzLgotKwotKyAgIENvcHlyaWdodCAyMDA4Ci0rICAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBmaWxlIGlzIHBhcnQg b2YgR0RCLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv cgotKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0rICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rICAgRm91bmRhdGlvbiwg SW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotKyAgIEJvc3RvbiwgTUEgMDIxMTEt MTMwNywgVVNBLiAgKi8KLSsKLSsjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2luY2x1ZGUgPHVuaXN0 ZC5oPgotKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgotKyNpbmNsdWRlIDxzdGRpby5oPgotKyNpbmNs dWRlIDxzdGRsaWIuaD4KLSsKLStzdGF0aWMgdm9sYXRpbGUgaW50IHZhcjsKLSsKLStzdGF0aWMg dm9pZCBicmVha3BvaW50ICh2b2lkKQotK3sKLSt9Ci0rCi0rLyogSW5jbHVkZSBoZXJlIHRoZSBm dW5jdGlvbjoKLSsgICBzdGF0aWMgdm9pZCBmb3Jrb2ZmIChpbnQgbnIpOyAgKi8KLSsKLSsjaW5j bHVkZSAid2F0Y2hwb2ludC1mb3JrLWZvcmtvZmYuYyIKLSsKLStpbnQgbWFpbiAodm9pZCkKLSt7 Ci0rICBzZXRidWYgKHN0ZG91dCwgTlVMTCk7Ci0rICBwcmludGYgKCJtYWluOiAlZFxuIiwgKGlu dCkgZ2V0cGlkICgpKTsKLSsKLSsgIC8qIEdlbmVyYWwgd2F0Y2hwb2ludHMgdmFsaWRpdHkuICAq LwotKyAgdmFyKys7Ci0rICAvKiBIYXJkd2FyZSB3YXRjaHBvaW50cyBnb3QgZGlzYXJtZWQgaGVy ZS4gICovCi0rICBmb3Jrb2ZmICgxKTsKLSsgIC8qIFRoaXMgd2F0Y2hwb2ludCBnb3QgbG9zdCBi ZWZvcmUuICAqLwotKyAgdmFyKys7Ci0rICAvKiBBIHNhbml0eSBjaGVjayBmb3IgZG91YmxlIGhh cmR3YXJlIHdhdGNocG9pbnRzIHJlbW92YWwuICAqLwotKyAgZm9ya29mZiAoMik7Ci0rICB2YXIr KzsKLSsKLSsgIHJldHVybiAwOwotK30KLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90 ZXN0c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2hwb2ludC1mb3JrLmV4cAotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy93YXRjaHBvaW50LWZvcmsu ZXhwCTIwMDktMDgtMDQgMDc6MTc6NTguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE0MCBA QAotKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0r IyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwot KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgVGVzdCBjYXNlIGZvciBmb3Jnb3R0 ZW4gaHctd2F0Y2hwb2ludHMgYWZ0ZXIgZm9yaygpLW9mZiBvZiBhIHByb2Nlc3MuCi0rCi0rcHJv YyB0ZXN0IHt0eXBlIHN5bWJvbH0gewotKyAgICBnbG9iYWwgb2JqZGlyIHN1YmRpciBzcmNkaXIK LSsKLSsgICAgZ2xvYmFsIHBmX3ByZWZpeAotKyAgICBzZXQgcHJlZml4X3Rlc3QgJHBmX3ByZWZp eAotKyAgICBsYXBwZW5kIHBmX3ByZWZpeCAiJHR5cGU6IgotKyAgICBzZXQgcHJlZml4X210ICRw Zl9wcmVmaXgKLSsKLSsgICAgIyBubyB0aHJlYWRzCi0rCi0rICAgIHNldCBwZl9wcmVmaXggJHBy ZWZpeF9tdAotKyAgICBsYXBwZW5kIHBmX3ByZWZpeCAic2luZ2xldGhyZWFkZWQ6IgotKwotKyAg ICBzZXQgdGVzdGZpbGUgd2F0Y2hwb2ludC1mb3JrCi0rICAgIHNldCBzcmNmaWxlICR7dGVzdGZp bGV9LmMKLSsgICAgc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQot KwotKyAgICBpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxl fSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUgImRlYnVnIGFkZGl0aW9uYWxfZmxhZ3M9LUQkc3lt Ym9sIl0gIT0gIiIgfSB7Ci0rCXVudGVzdGVkICJDb3VsZG4ndCBjb21waWxlIHRlc3QgcHJvZ3Jh bSIKLSsJcmV0dXJuIC0xCi0rICAgIH0KLSsKLSsgICAgZ2RiX2V4aXQKLSsgICAgZ2RiX3N0YXJ0 Ci0rICAgIGdkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgotKyAgICBnZGJfbG9h ZCAke2JpbmZpbGV9Ci0rCi0rICAgIGdkYl90ZXN0ICJzZXQgZm9sbG93LWZvcmstbW9kZSAkdHlw ZSIKLSsgICAgIyBUZXN0Y2FzZSB1c2VzIGl0IGZvciB0aGUgYGZvbGxvdy1mb3JrLW1vZGUgY2hp bGQnIHR5cGUuCi0rICAgIGdkYl90ZXN0ICJoYW5kbGUgU0lHVVNSMSBub3N0b3Agbm9wcmludCBw YXNzIgotKwotKyAgICBpZiB7ICFbcnVudG9fbWFpbl0gfSB0aGVuIHsKLSsJZ2RiX3N1cHByZXNz X3Rlc3RzCi0rCXJldHVybgotKyAgICB9Ci0rCi0rICAgICMgSW5zdGFsbCB0aGUgd2F0Y2hwb2lu dCBvbmx5IGFmdGVyIGdldHRpbmcgaW50byBNQUlOIC0gd29ya2Fyb3VuZCBzb21lIFBQQwotKyAg ICAjIHByb2JsZW0uCi0rICAgIGdkYl90ZXN0ICJ3YXRjaCB2YXIiICJhdGNocG9pbnQgMjogdmFy IiAiU2V0IHRoZSB3YXRjaHBvaW50IgotKwotKyAgICAjIEl0IGlzIG5ldmVyIGhpdCBidXQgaXQg c2hvdWxkIG5vdCBiZSBsZWZ0IG92ZXIgaW4gdGhlIGZvcmsoKWVkLW9mZiBjaGlsZC4KLSsgICAg Z2RiX2JyZWFrcG9pbnQgImJyZWFrcG9pbnQiCi0rCi0rICAgIGdkYl90ZXN0ICJjb250aW51ZSIg XAotKwkgICAgICJhdGNocG9pbnQgMjogdmFyLipPbGQgdmFsdWUgPSAwLipOZXcgdmFsdWUgPSAx Lipmb3Jrb2ZmICpcXCgxXFwpLioiICJ3YXRjaHBvaW50cyB3b3JrIgotKyAgICBnZGJfdGVzdCAi Y29udGludWUiIFwKLSsJICAgICAicmVha3BvaW50IDMsIGJyZWFrcG9pbnQuKiIgImJyZWFrcG9p bnQgYWZ0ZXIgdGhlIGZpcnN0IGZvcmsiCi0rICAgIGdkYl90ZXN0ICJjb250aW51ZSIgXAotKwkg ICAgICJhdGNocG9pbnQgMjogdmFyLipPbGQgdmFsdWUgPSAxLipOZXcgdmFsdWUgPSAyLipmb3Jr b2ZmICpcXCgyXFwpLioiICJ3YXRjaHBvaW50IGFmdGVyIHRoZSBmaXJzdCBmb3JrIgotKyAgICBn ZGJfdGVzdCAiY29udGludWUiIFwKLSsJICAgICAicmVha3BvaW50IDMsIGJyZWFrcG9pbnQuKiIg ImJyZWFrcG9pbnQgYWZ0ZXIgdGhlIHNlY29uZCBmb3JrIgotKyAgICBnZGJfdGVzdCAiY29udGlu dWUiIFwKLSsJICAgICAiYXRjaHBvaW50IDI6IHZhci4qT2xkIHZhbHVlID0gMi4qTmV3IHZhbHVl ID0gMy4qcmV0dXJuICowOyIgIndhdGNocG9pbnQgYWZ0ZXIgdGhlIHNlY29uZCBmb3JrIgotKyAg ICBnZGJfdGVzdCAiY29udGludWUiICJDb250aW51aW5nLi4qUHJvZ3JhbSBleGl0ZWQgbm9ybWFs bHkuIiAiZmluaXNoIgotKwotKwotKyAgICAjIHRocmVhZHMKLSsKLSsgICAgc2V0IHBmX3ByZWZp eCAkcHJlZml4X210Ci0rICAgIGxhcHBlbmQgcGZfcHJlZml4ICJtdWx0aXRocmVhZGVkOiIKLSsK LSsgICAgc2V0IHRlc3RmaWxlIHdhdGNocG9pbnQtZm9yay1tdAotKyAgICBzZXQgc3JjZmlsZSAk e3Rlc3RmaWxlfS5jCi0rICAgIHNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0 ZmlsZX0KLSsKLSsgICAgaWYgIHsgW2dkYl9jb21waWxlX3B0aHJlYWRzICIke3NyY2Rpcn0vJHtz dWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlICJkZWJ1ZyBhZGRpdGlv bmFsX2ZsYWdzPS1EJHN5bWJvbCJdICE9ICIiIH0gewotKwl1bnRlc3RlZCAiQ291bGRuJ3QgY29t cGlsZSB0ZXN0IHByb2dyYW0iCi0rCXJldHVybiAtMQotKyAgICB9Ci0rCi0rICAgIGdkYl9leGl0 Ci0rICAgIGdkYl9zdGFydAotKyAgICBnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJk aXIKLSsgICAgZ2RiX2xvYWQgJHtiaW5maWxlfQotKwotKyAgICBnZGJfdGVzdCAic2V0IGZvbGxv dy1mb3JrLW1vZGUgJHR5cGUiCi0rICAgICMgVGVzdGNhc2UgdXNlcyBpdCBmb3IgdGhlIGBmb2xs b3ctZm9yay1tb2RlIGNoaWxkJyB0eXBlLgotKyAgICBnZGJfdGVzdCAiaGFuZGxlIFNJR1VTUjEg bm9zdG9wIG5vcHJpbnQgcGFzcyIKLSsKLSsgICAgaWYgeyAhW3J1bnRvX21haW5dIH0gdGhlbiB7 Ci0rCWdkYl9zdXBwcmVzc190ZXN0cwotKwlyZXR1cm4KLSsgICAgfQotKwotKyAgICAjIEluc3Rh bGwgdGhlIHdhdGNocG9pbnQgb25seSBhZnRlciBnZXR0aW5nIGludG8gTUFJTiAtIHdvcmthcm91 bmQgc29tZSBQUEMKLSsgICAgIyBwcm9ibGVtLgotKyAgICBnZGJfdGVzdCAid2F0Y2ggdmFyIiAi YXRjaHBvaW50IDI6IHZhciIgIlNldCB0aGUgd2F0Y2hwb2ludCIKLSsKLSsgICAgIyBJdCBpcyBu ZXZlciBoaXQgYnV0IGl0IHNob3VsZCBub3QgYmUgbGVmdCBvdmVyIGluIHRoZSBmb3JrKCllZC1v ZmYgY2hpbGQuCi0rICAgIGdkYl9icmVha3BvaW50ICJicmVha3BvaW50IgotKwotKyAgICBnZGJf dGVzdCAiY29udGludWUiIFwKLSsJICAgICAiYXRjaHBvaW50IDI6IHZhci4qT2xkIHZhbHVlID0g MC4qTmV3IHZhbHVlID0gMS4qdmFsaWRpdHktZmlyc3QuKiIgInNpbmdsZXRocmVhZCB3YXRjaHBv aW50cyB3b3JrIgotKyAgICBnZGJfdGVzdCAiY29udGludWUiIFwKLSsJICAgICAiYXRjaHBvaW50 IDI6IHZhci4qT2xkIHZhbHVlID0gMS4qTmV3IHZhbHVlID0gMi4qdmFsaWRpdHktdGhyZWFkLUEu KiIgIm11bHRpdGhyZWFkZWQgd2F0Y2hwb2ludHMgd29yayBhdCBBIgotKyAgICBnZGJfdGVzdCAi Y29udGludWUiIFwKLSsJICAgICAiYXRjaHBvaW50IDI6IHZhci4qT2xkIHZhbHVlID0gMi4qTmV3 IHZhbHVlID0gMy4qdmFsaWRpdHktdGhyZWFkLUIuKiIgIm11bHRpdGhyZWFkZWQgd2F0Y2hwb2lu dHMgd29yayBhdCBCIgotKyAgICBnZGJfdGVzdCAiY29udGludWUiIFwKLSsJICAgICAicmVha3Bv aW50IDMsIGJyZWFrcG9pbnQuKiIgImJyZWFrcG9pbnQgKEEpIGFmdGVyIHRoZSBmaXJzdCBmb3Jr IgotKyAgICBnZGJfdGVzdCAiY29udGludWUiIFwKLSsJICAgICAiYXRjaHBvaW50IDI6IHZhci4q T2xkIHZhbHVlID0gMy4qTmV3IHZhbHVlID0gNC4qYWZ0ZXItZm9yazEtQS4qIiAid2F0Y2hwb2lu dCBBIGFmdGVyIHRoZSBmaXJzdCBmb3JrIgotKyAgICBnZGJfdGVzdCAiY29udGludWUiIFwKLSsJ ICAgICAiYXRjaHBvaW50IDI6IHZhci4qT2xkIHZhbHVlID0gNC4qTmV3IHZhbHVlID0gNS4qYWZ0 ZXItZm9yazEtQi4qIiAid2F0Y2hwb2ludCBCIGFmdGVyIHRoZSBmaXJzdCBmb3JrIgotKyAgICBn ZGJfdGVzdCAiY29udGludWUiIFwKLSsJICAgICAicmVha3BvaW50IDMsIGJyZWFrcG9pbnQuKiIg ImJyZWFrcG9pbnQgKEEpIGFmdGVyIHRoZSBzZWNvbmQgZm9yayIKLSsgICAgZ2RiX3Rlc3QgImNv bnRpbnVlIiBcCi0rCSAgICAgImF0Y2hwb2ludCAyOiB2YXIuKk9sZCB2YWx1ZSA9IDUuKk5ldyB2 YWx1ZSA9IDYuKmFmdGVyLWZvcmsyLUEuKiIgIndhdGNocG9pbnQgQSBhZnRlciB0aGUgc2Vjb25k IGZvcmsiCi0rICAgIGdkYl90ZXN0ICJjb250aW51ZSIgXAotKwkgICAgICJhdGNocG9pbnQgMjog dmFyLipPbGQgdmFsdWUgPSA2LipOZXcgdmFsdWUgPSA3LiphZnRlci1mb3JrMi1CLioiICJ3YXRj aHBvaW50IEIgYWZ0ZXIgdGhlIHNlY29uZCBmb3JrIgotKyAgICBnZGJfdGVzdCAiY29udGludWUi ICJDb250aW51aW5nLi4qUHJvZ3JhbSBleGl0ZWQgbm9ybWFsbHkuIiAiZmluaXNoIgotKwotKwot KyAgICAjIGNsZWFudXAKLSsKLSsgICAgc2V0IHBmX3ByZWZpeCAkcHJlZml4X3Rlc3QKLSt9Ci0r Ci0rdGVzdCBwYXJlbnQgRk9MTE9XX1BBUkVOVAotKwotKyMgT25seSBHTlUvTGludXggaXMga25v d24gdG8gc3VwcG9ydCBgc2V0IGZvbGxvdy1mb3JrLW1vZGUgY2hpbGQnLgotK2lmIHtbaXN0YXJn ZXQgIiotKi1saW51eCoiXX0gewotKyAgICB0ZXN0IGNoaWxkIEZPTExPV19DSElMRAotK30KLUlu ZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9kb2MvZ2RiLnRleGluZm8KLT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDA5LTA4 LTA0IDA3OjE3OjE5LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L2RvYy9nZGIudGV4aW5mbwkyMDA5LTA4LTA0IDA3OjE3OjU4LjAwMDAwMDAwMCArMDIwMAotQEAg LTM2MjUsNiArMzYyNSwxNCBAQCBjb25maWRlbnQgdGhhdCBubyBvdGhlciB0aHJlYWQgY2FuIGJl Y29tCi0gc29mdHdhcmUgd2F0Y2hwb2ludHMgYXMgdXN1YWwuICBIb3dldmVyLCBAdmFsdWV7R0RC Tn0gbWF5IG5vdCBub3RpY2UKLSB3aGVuIGEgbm9uLWN1cnJlbnQgdGhyZWFkJ3MgYWN0aXZpdHkg Y2hhbmdlcyB0aGUgZXhwcmVzc2lvbi4gIChIYXJkd2FyZQotIHdhdGNocG9pbnRzLCBpbiBjb250 cmFzdCwgd2F0Y2ggYW4gZXhwcmVzc2lvbiBpbiBhbGwgdGhyZWFkcy4pCi0rCi0rU29mdHdhcmUg d2F0Y2hwb2ludHMgc2luZ2xlLXN0ZXAgdGhlIGN1cnJlbnQgdGhyZWFkIHRvIHRyYWNrIHRoZSBj aGFuZ2VzLgotK090aGVyIHRocmVhZHMgYXJlIGxlZnQgZnJlZWx5IHJ1bm5pbmcgb24gQGNvZGV7 Y29udGludWV9OyB0aGVyZWZvcmUsIHRoZWlyCi0rY2hhbmdlcyBjYW5ub3QgYmUgY2F1Z2h0LiAg VG8gZ2V0IG1vcmUgcmVsaWFibGUgc29mdHdhcmUgd2F0Y2hwb2ludHMsIHBsZWFzZQotK3VzZSBA Y29kZXtzZXQgc2NoZWR1bGVyLWxvY2tpbmcgb259LiAgVGhlIGRlZmF1bHQgZm9yIFJlZCBIYXQv RmVkb3JhCi0rQHZhbHVle0dEQk59IGlzIEBjb2Rle3NldCBzY2hlZHVsZXItbG9ja2luZyBzdGVw fSwgd2hpY2ggbWFrZXMgdGhlIHNvZnR3YXJlCi0rd2F0Y2hwb2ludHMgc2FmZSBmb3IgdGhlIEBj b2Rle3N0ZXB9IGNvbW1hbmQsIGJ1dCBub3QgZm9yIHRoZSBAY29kZXtjb250aW51ZX0KLStjb21t YW5kLiAgQHhyZWZ7VGhyZWFkIFN0b3BzfS4KLSBAZW5kIHF1b3RhdGlvbgotIAotIEB4cmVme3Nl dCByZW1vdGUgaGFyZHdhcmUtd2F0Y2hwb2ludC1saW1pdH0uCi1JbmRleDogZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAotPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02 LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAkyMDA5LTA4LTA0 IDA3OjE3OjE5LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2Nv bmZpZy9pMzg2L25tLWxpbnV4LmgJMjAwOS0wOC0wNCAwNzoxNzo1OC4wMDAwMDAwMDAgKzAyMDAK LUBAIC0yOSw0ICsyOSwxNCBAQAotICNkZWZpbmUgRklMTF9GUFhSRUdTRVQKLSAjZW5kaWYKLSAK LSsvKiBSZW1vdmUgYSB3YXRjaHBvaW50IHRoYXQgd2F0Y2hlZCB0aGUgbWVtb3J5IHJlZ2lvbiB3 aGljaCBzdGFydHMgYXQKLSsgKiAgICBhZGRyZXNzIEFERFIsIHdob3NlIGxlbmd0aCBpcyBMRU4g Ynl0ZXMsIGFuZCBmb3IgYWNjZXNzZXMgb2YgdGhlCi0rICogICAgICAgdHlwZSBUWVBFLiAgUmV0 dXJuIDAgb24gc3VjY2VzcywgLTEgb24gZmFpbHVyZS4gICovCi0rZXh0ZXJuIGludCBpMzg2X2xp bnV4X3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUp OwotKwotKy8qIE92ZXJyaWRlIGJhc2ljIGkzODYgbWFjcm9zIGZvciB3YXRjaHBvaW50IGFuZCBo YXJkd2FyZSBicmVha3BvaW50Ci0rICAgaW5zZXJ0aW9uL3JlbW92YWwgdG8gc3VwcG9ydCB0aHJl YWRzLiAgKi8KLSsjZGVmaW5lIHRhcmdldF9yZW1vdmVfd2F0Y2hwb2ludChhZGRyLCBsZW4sIHR5 cGUpIFwKLSsgIGkzODZfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKGFkZHIsIGxlbiwgdHlwZSkK LSsKLSAjZW5kaWYgLyogbm0tbGludXguaCAqLwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMv Z2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAu MjAwOTA4MDMub3JpZy9nZGIvY29uZmlnL2kzODYvbm0tbGludXg2NC5oCTIwMDktMDgtMDQgMDc6 MTc6MTkuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmln L2kzODYvbm0tbGludXg2NC5oCTIwMDktMDgtMDQgMDc6MTc6NTguMDAwMDAwMDAwICswMjAwCi1A QCAtNTEsNCArNTEsMTQgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgYW1kNjRfbGludXhfZHJfZ2V0 XwotICNkZWZpbmUgSTM4Nl9EUl9MT1dfR0VUX1NUQVRVUygpIFwKLSAgIGFtZDY0X2xpbnV4X2Ry X2dldF9zdGF0dXMgKCkKLSAKLSsvKiBSZW1vdmUgYSB3YXRjaHBvaW50IHRoYXQgd2F0Y2hlZCB0 aGUgbWVtb3J5IHJlZ2lvbiB3aGljaCBzdGFydHMgYXQKLSsgKiAgICBhZGRyZXNzIEFERFIsIHdo b3NlIGxlbmd0aCBpcyBMRU4gYnl0ZXMsIGFuZCBmb3IgYWNjZXNzZXMgb2YgdGhlCi0rICogICAg ICAgdHlwZSBUWVBFLiAgUmV0dXJuIDAgb24gc3VjY2VzcywgLTEgb24gZmFpbHVyZS4gICovCi0r ZXh0ZXJuIGludCBhbWQ2NF9saW51eF9yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIs IGludCBsZW4sIGludCB0eXBlKTsKLSsKLSsvKiBPdmVycmlkZSBiYXNpYyBhbWQ2NCBtYWNyb3Mg Zm9yIHdhdGNocG9pbnQgYW5kIGhhcmR3YXJlIGJyZWFrcG9pbnQKLSsgICBpbnNlcnRpb24vcmVt b3ZhbCB0byBzdXBwb3J0IHRocmVhZHMuICAqLwotKyNkZWZpbmUgdGFyZ2V0X3JlbW92ZV93YXRj aHBvaW50KGFkZHIsIGxlbiwgdHlwZSkgXAotKyAgYW1kNjRfbGludXhfcmVtb3ZlX3dhdGNocG9p bnQgKGFkZHIsIGxlbiwgdHlwZSkKLSsKLSAjZW5kaWYgLyogbm0tbGludXg2NC5oICovCi1JbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmgKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ni44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3RhcmdldC5oCTIwMDktMDgtMDQgMDc6MTc6MTkuMDAw MDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmgJMjAwOS0w OC0wNCAwNzozNToxMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xMTE0LDExICsxMTE0LDE1IEBAIGV4 dGVybiBjaGFyICpub3JtYWxfcGlkX3RvX3N0ciAocHRpZF90IHAKLSAgICBmb3Igd3JpdGUsIDEg Zm9yIHJlYWQsIGFuZCAyIGZvciByZWFkL3dyaXRlIGFjY2Vzc2VzLiAgUmV0dXJucyAwIGZvcgot ICAgIHN1Y2Nlc3MsIG5vbi16ZXJvIGZvciBmYWlsdXJlLiAgKi8KLSAKLSsjaWZuZGVmIHRhcmdl dF9pbnNlcnRfd2F0Y2hwb2ludAotICNkZWZpbmUJdGFyZ2V0X2luc2VydF93YXRjaHBvaW50KGFk ZHIsIGxlbiwgdHlwZSkJXAotICAgICAgKCpjdXJyZW50X3RhcmdldC50b19pbnNlcnRfd2F0Y2hw b2ludCkgKGFkZHIsIGxlbiwgdHlwZSkKLSsjZW5kaWYKLSAKLSsjaWZuZGVmIHRhcmdldF9yZW1v dmVfd2F0Y2hwb2ludAotICNkZWZpbmUJdGFyZ2V0X3JlbW92ZV93YXRjaHBvaW50KGFkZHIsIGxl biwgdHlwZSkJXAotICAgICAgKCpjdXJyZW50X3RhcmdldC50b19yZW1vdmVfd2F0Y2hwb2ludCkg KGFkZHIsIGxlbiwgdHlwZSkKLSsjZW5kaWYKLSAKLSAjZGVmaW5lIHRhcmdldF9pbnNlcnRfaHdf YnJlYWtwb2ludChnZGJhcmNoLCBicF90Z3QpIFwKLSAgICAgICgqY3VycmVudF90YXJnZXQudG9f aW5zZXJ0X2h3X2JyZWFrcG9pbnQpIChnZGJhcmNoLCBicF90Z3QpCgpkaWZmIC0tZ2l0IGEvZ2Ri LTYuOC1mb3J0cmFuLXRhZy1jb25zdGFudC5wYXRjaCBiL2dkYi02LjgtZm9ydHJhbi10YWctY29u c3RhbnQucGF0Y2gKaW5kZXggODYxNDM5NS4uYTdjYzFkZCAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1m b3J0cmFuLXRhZy1jb25zdGFudC5wYXRjaAorKysgYi9nZGItNi44LWZvcnRyYW4tdGFnLWNvbnN0 YW50LnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2R3YXJmMnJlYWQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZHdhcmYycmVh ZC5jCTIwMDktMDgtMDQgMDY6MzI6NTguMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDgtMDQgMDY6MzM6MTguMDAwMDAwMDAwICsw MjAwCi1AQCAtMjQ1OSw2ICsyNDU5LDcgQEAgc2Nhbl9wYXJ0aWFsX3N5bWJvbHMgKHN0cnVjdCBw YXJ0aWFsX2RpZQorLS0tIGdkYi02LjguNTAuMjAwOTA4MTEub3JpZy9nZGIvZHdhcmYycmVhZC5j CTIwMDktMDgtMTMgMTA6MTQ6NDUuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5 MDgxMS9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDgtMTMgMTA6MjI6MzYuMDAwMDAwMDAwICswMjAw CitAQCAtMjQ4MCw2ICsyNDgwLDcgQEAgc2Nhbl9wYXJ0aWFsX3N5bWJvbHMgKHN0cnVjdCBwYXJ0 aWFsX2RpZQogIAkgICAgICBhZGRfcGFydGlhbF9zdWJwcm9ncmFtIChwZGksIGxvd3BjLCBoaWdo cGMsIG5lZWRfcGMsIGN1KTsKICAJICAgICAgYnJlYWs7CiAgCSAgICBjYXNlIERXX1RBR192YXJp YWJsZToKQEAgLTEwLDcgKzEwLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2R3 YXJmMnJlYWQuYwogIAkgICAgY2FzZSBEV19UQUdfdHlwZWRlZjoKICAJICAgIGNhc2UgRFdfVEFH X3VuaW9uX3R5cGU6CiAgCSAgICAgIGlmICghcGRpLT5pc19kZWNsYXJhdGlvbikKLUBAIC0yNjU0 LDYgKzI2NTUsNyBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pCitA QCAtMjY3NSw2ICsyNjc2LDcgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9k aWVfaQogIAl9CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgRFdfVEFHX3ZhcmlhYmxlOgpAQCAt MTgsNyArMTgsMTUgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2R3YXJmMnJlYWQu YwogICAgICAgIGlmIChwZGktPmlzX2V4dGVybmFsKQogIAl7CiAgCSAgLyogR2xvYmFsIFZhcmlh YmxlLgotQEAgLTQ3OTAsNyArNDc5Miw4IEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVs ZF9pbmZvICpmaXAKK0BAIC0yODA1LDYgKzI4MDcsNyBAQCBkaWVfbmVlZHNfbmFtZXNwYWNlIChz dHJ1Y3QgZGllX2luZm8gKmRpCisgICAgICAgcmV0dXJuIDE7CisgCisgICAgIGNhc2UgRFdfVEFH X3ZhcmlhYmxlOgorKyAgICBjYXNlIERXX1RBR19jb25zdGFudDoKKyAgICAgICB7CisgCXN0cnVj dCBhdHRyaWJ1dGUgKmF0dHI7CisgCWF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9zcGVj aWZpY2F0aW9uLCBjdSk7CitAQCAtNDc0MSw3ICs0NzQ0LDggQEAgZHdhcmYyX2FkZF9maWVsZCAo c3RydWN0IGZpZWxkX2luZm8gKmZpcAogIAkgIGZpcC0+bm9uX3B1YmxpY19maWVsZHMgPSAxOwog IAl9CiAgICAgIH0KQEAgLTI4LDcgKzM2LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMv Z2RiL2R3YXJmMnJlYWQuYwogICAgICB7CiAgICAgICAgLyogQysrIHN0YXRpYyBtZW1iZXIuICAq LwogIAotQEAgLTUyOTcsNyArNTMwMCw4IEBAIHJlYWRfc3RydWN0dXJlX3R5cGUgKHN0cnVjdCBk aWVfaW5mbyAqZGkKK0BAIC01MjMzLDcgKzUyMzcsOCBAQCByZWFkX3N0cnVjdHVyZV90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpCiAgICAgICAgd2hpbGUgKGNoaWxkX2RpZSAmJiBjaGlsZF9kaWUt PnRhZykKICAJewogIAkgIGlmIChjaGlsZF9kaWUtPnRhZyA9PSBEV19UQUdfbWVtYmVyCkBAIC0z OCw3ICs0Niw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9kd2FyZjJyZWFkLmMK ICAJICAgIHsKICAJICAgICAgLyogTk9URTogY2FybHRvbi8yMDAyLTExLTA1OiBBIEMrKyBzdGF0 aWMgZGF0YSBtZW1iZXIKICAJCSBzaG91bGQgYmUgYSBEV19UQUdfbWVtYmVyIHRoYXQgaXMgYSBk ZWNsYXJhdGlvbiwgYnV0Ci1AQCAtNTQxNiw2ICs1NDIwLDcgQEAgcHJvY2Vzc19zdHJ1Y3R1cmVf c2NvcGUgKHN0cnVjdCBkaWVfaW5mbworQEAgLTUzNTIsNiArNTM1Nyw3IEBAIHByb2Nlc3Nfc3Ry dWN0dXJlX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8KICAgICAgewogICAgICAgIGlmIChjaGlsZF9k aWUtPnRhZyA9PSBEV19UQUdfbWVtYmVyCiAgCSAgfHwgY2hpbGRfZGllLT50YWcgPT0gRFdfVEFH X3ZhcmlhYmxlCkBAIC00NiwxNSArNTQsMTUgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMv Z2RiL2R3YXJmMnJlYWQuYwogIAkgIHx8IGNoaWxkX2RpZS0+dGFnID09IERXX1RBR19pbmhlcml0 YW5jZSkKICAJewogIAkgIC8qIERvIG5vdGhpbmcuICAqLwotQEAgLTY5MjYsNiArNjkzMSw3IEBA IGxvYWRfcGFydGlhbF9kaWVzIChiZmQgKmFiZmQsIGdkYl9ieXRlICoKK0BAIC02OTgwLDYgKzY5 ODYsNyBAQCBsb2FkX3BhcnRpYWxfZGllcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqCiAgCSAgJiYg YWJicmV2LT50YWcgIT0gRFdfVEFHX3N1YnByb2dyYW0KICAJICAmJiBhYmJyZXYtPnRhZyAhPSBE V19UQUdfbGV4aWNhbF9ibG9jawogIAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR192YXJpYWJs ZQogKwkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR19jb25zdGFudAogIAkgICYmIGFiYnJldi0+ dGFnICE9IERXX1RBR19uYW1lc3BhY2UKKyAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19UQUdfbW9k dWxlCiAgCSAgJiYgYWJicmV2LT50YWcgIT0gRFdfVEFHX21lbWJlcikKLSAJewotQEAgLTcwMzMs NiArNzAzOSw3IEBAIGxvYWRfcGFydGlhbF9kaWVzIChiZmQgKmFiZmQsIGdkYl9ieXRlICoKK0BA IC03MDg4LDYgKzcwOTUsNyBAQCBsb2FkX3BhcnRpYWxfZGllcyAoYmZkICphYmZkLCBnZGJfYnl0 ZSAqCiAgICAgICAgaWYgKGxvYWRfYWxsCiAgCSAgfHwgYWJicmV2LT50YWcgPT0gRFdfVEFHX3N1 YnByb2dyYW0KICAJICB8fCBhYmJyZXYtPnRhZyA9PSBEV19UQUdfdmFyaWFibGUKQEAgLTYyLDcg KzcwLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2R3YXJmMnJlYWQuYwogIAkg IHx8IGFiYnJldi0+dGFnID09IERXX1RBR19uYW1lc3BhY2UKICAJICB8fCBwYXJ0X2RpZS0+aXNf ZGVjbGFyYXRpb24pCiAgCXsKLUBAIC04ODQwLDYgKzg4NDcsMTEgQEAgbmV3X3N5bWJvbCAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdAorQEAgLTg5MDEsNiArODkwOSwxMSBAQCBuZXdfc3lt Ym9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0CiAgCSAgLyogRG8gbm90IGFkZCB0aGUg c3ltYm9sIHRvIGFueSBsaXN0cy4gIEl0IHdpbGwgYmUgZm91bmQgdmlhCiAgCSAgICAgQkxPQ0tf RlVOQ1RJT04gZnJvbSB0aGUgYmxvY2t2ZWN0b3IuICAqLwogIAkgIGJyZWFrOwoKZGlmZiAtLWdp dCBhL2dkYi1hcmNoZXIucGF0Y2ggYi9nZGItYXJjaGVyLnBhdGNoCmluZGV4IDllZDljZGYuLjE1 Y2Q3ZWQgMTAwNjQ0Ci0tLSBhL2dkYi1hcmNoZXIucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci5wYXRj aApAQCAtMiw3ICsyLDcgQEAgaHR0cDovL3NvdXJjZXdhcmUub3JnL2dkYi93aWtpL1Byb2plY3RB cmNoZXIKIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9BcmNoZXJCcmFuY2hNYW5hZ2Vt ZW50CiAKIEdJVCBzbmFwc2hvdDoKLWNvbW1pdCAyODg4ZmFmZTYzODg5NzU3YzZmZDI3Y2NjMmYy NTY2MWQ0M2ZkMWE0Citjb21taXQgNWUwZDFjYzc0ZjExOTM5MWEyYzNhZTI1ZWY1NzQ5ZmMyODY3 NGYwNgogCiBicmFuY2ggYGFyY2hlcicgLSB0aGUgbWVyZ2Ugb2YgYnJhbmNoZXM6CiBhcmNoZXIt dHJvbWV5LWNhbGwtZnJhbWUtY2ZhCkBAIC0xMiwxMCArMTIsMTIgQEAgYXJjaGVyLWphbmtyYXRv Y2h2aWwtdmxhCiBhcmNoZXItamFua3JhdG9jaHZpbC1taXNjCiBhcmNoZXIta2VpdGhzLWV4cHIt Y3VtdWxhdGl2ZQogYXJjaGVyLXRyb21leS1weXRob24KK2FyY2hlci1qYW5rcmF0b2NodmlsLWZv cnRyYW4tbW9kdWxlCithcmNoZXItamFua3JhdG9jaHZpbC13YXRjaHBvaW50CiAKIAogZGlmZiAt LWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgotaW5kZXggY2NjNGRiOC4u NDk2YzlmMiAxMDA2NDQKK2luZGV4IDljMmI5YzcuLjAzMmIwY2YgMTAwNjQ0CiAtLS0gYS9nZGIv TWFrZWZpbGUuaW4KICsrKyBiL2dkYi9NYWtlZmlsZS5pbgogQEAgLTE2Niw2ICsxNjYsMTMgQEAg SU5UTF9DRkxBR1MgPSBASU5DSU5UTEAKQEAgLTcwLDcgKzcyLDcgQEAgaW5kZXggY2NjNGRiOC4u NDk2YzlmMiAxMDA2NDQKICAJcHl0aG9uL3B5dGhvbi10eXBlLmMgXAogIAlweXRob24vcHl0aG9u LXV0aWxzLmMgXAogIAlweXRob24vcHl0aG9uLXZhbHVlLmMKLUBAIC03NDYsNyArNzY5LDcgQEAg Y29uZmlnL3JzNjAwMC9ubS1yczYwMDAuaCB0b3AuaCBic2Qta3ZtLmggZ2RiLXN0YWJzLmggcmVn Z3JvdXBzLmggXAorQEAgLTc0NSw3ICs3NjgsNyBAQCBjb25maWcvcnM2MDAwL25tLXJzNjAwMC5o IHRvcC5oIGJzZC1rdm0uaCBnZGItc3RhYnMuaCByZWdncm91cHMuaCBcCiAgYW5ub3RhdGUuaCBz aW0tcmVnbm8uaCBkaWN0aW9uYXJ5LmggZGZwLmggbWFpbi5oIGZyYW1lLXVud2luZC5oCVwKICBy ZW1vdGUtZmlsZWlvLmggaTM4Ni1saW51eC10ZGVwLmggdmF4LXRkZXAuaCBvYmpjLWxhbmcuaCBc CiAgc2VudGluZWwtZnJhbWUuaCBiY2FjaGUuaCBzeW1maWxlLmggd2luZG93cy10ZGVwLmggbGlu dXgtdGRlcC5oIFwKQEAgLTc5LDcgKzgxLDcgQEAgaW5kZXggY2NjNGRiOC4uNDk2YzlmMiAxMDA2 NDQKICAKICAjIEhlYWRlciBmaWxlcyB0aGF0IGFscmVhZHkgaGF2ZSBzcmNkaXIgaW4gdGhlbSwg b3Igd2hpY2ggYXJlIGluIG9iamRpci4KICAKLUBAIC04NjMsNyArODg2LDcgQEAgZ2VuZXJhdGVk X2ZpbGVzID0gY29uZmlnLmggb2JzZXJ2ZXIuaCBvYnNlcnZlci5pbmMgYWRhLWxleC5jIFwKK0BA IC04NjIsNyArODg1LDcgQEAgZ2VuZXJhdGVkX2ZpbGVzID0gY29uZmlnLmggb2JzZXJ2ZXIuaCBv YnNlcnZlci5pbmMgYWRhLWxleC5jIFwKICAJJChDT01QSUxFKSAkPAogIAkkKFBPU1RDT01QSUxF KQogIApAQCAtODgsMTEgKzkwLDExIEBAIGluZGV4IGNjYzRkYjguLjQ5NmM5ZjIgMTAwNjQ0CiAg CUAkKE1BS0UpICQoRkxBR1NfVE9fUEFTUykgRE89YWxsICJET0RJUlM9YGVjaG8gJChTVUJESVJT KSB8IHNlZCAncy90ZXN0c3VpdGUvLydgIiBzdWJkaXJfZG8KICAuUEhPTlk6IGFsbC10dWkKICBh bGwtdHVpOiAkKFRVSSkkKEVYRUVYVCkKLUBAIC0xMjE5LDYgKzEyNDIsMTIgQEAgc3RhbXAtaDog JChzcmNkaXIpL2NvbmZpZy5pbiBjb25maWcuc3RhdHVzCitAQCAtMTIxOCw2ICsxMjQxLDEyIEBA IHN0YW1wLWg6ICQoc3JjZGlyKS9jb25maWcuaW4gY29uZmlnLnN0YXR1cwogIAkgIENPTkZJR19M SU5LUz0gXAogIAkgICQoU0hFTEwpIGNvbmZpZy5zdGF0dXMKICAKLSsuZ2RiaW5pdDogZ2RiaW5p dC5pbiBjb25maWcuc3RhdHVzCisrLmdkYmluaXQ6ICQoc3JjZGlyKS9nZGJpbml0LmluIGNvbmZp Zy5zdGF0dXMKICsJQ09ORklHX0ZJTEVTPSIuZ2RiaW5pdDpnZGJpbml0LmluIiBcCiArCSAgQ09O RklHX0NPTU1BTkRTPSBcCiArCSAgQ09ORklHX0hFQURFUlM9IFwKQEAgLTEwMSw3ICsxMDMsNyBA QCBpbmRleCBjY2M0ZGI4Li40OTZjOWYyIDEwMDY0NAogIGNvbmZpZy5zdGF0dXM6ICQoc3JjZGly KS9jb25maWd1cmUgY29uZmlndXJlLnRndCBjb25maWd1cmUuaG9zdAogIAkkKFNIRUxMKSBjb25m aWcuc3RhdHVzIC0tcmVjaGVjawogIAotQEAgLTE5MTgsNiArMTk0NywxNCBAQCBweXRob24ubzog JChzcmNkaXIpL3B5dGhvbi9weXRob24uYworQEAgLTE5MTcsNiArMTk0NiwxNCBAQCBweXRob24u bzogJChzcmNkaXIpL3B5dGhvbi9weXRob24uYwogIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFH UykgJChzcmNkaXIpL3B5dGhvbi9weXRob24uYwogIAkkKFBPU1RDT01QSUxFKQogIApAQCAtMTE2 LDcgKzExOCw3IEBAIGluZGV4IGNjYzRkYjguLjQ5NmM5ZjIgMTAwNjQ0CiAgcHl0aG9uLWNtZC5v OiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1jbWQuYwogIAkkKENPTVBJTEUpICQoUFlUSE9OX0NG TEFHUykgJChzcmNkaXIpL3B5dGhvbi9weXRob24tY21kLmMKICAJJChQT1NUQ09NUElMRSkKLUBA IC0xOTMwLDE0ICsxOTY3LDM4IEBAIHB5dGhvbi1mdW5jdGlvbi5vOiAkKHNyY2RpcikvcHl0aG9u L3B5dGhvbi1mdW5jdGlvbi5jCitAQCAtMTkyOSwxNCArMTk2NiwzOCBAQCBweXRob24tZnVuY3Rp b24ubzogJChzcmNkaXIpL3B5dGhvbi9weXRob24tZnVuY3Rpb24uYwogIAkkKENPTVBJTEUpICQo UFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9weXRob24tZnVuY3Rpb24uYwogIAkkKFBP U1RDT01QSUxFKQogIApAQCAtMTU1LDcgKzE1Nyw3IEBAIGluZGV4IGNjYzRkYjguLjQ5NmM5ZjIg MTAwNjQ0CiAgcHl0aG9uLXR5cGUubzogJChzcmNkaXIpL3B5dGhvbi9weXRob24tdHlwZS5jCiAg CSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi10eXBl LmMKICAJJChQT1NUQ09NUElMRSkKLUBAIC0xOTUwLDYgKzIwMTEsMzYgQEAgcHl0aG9uLXZhbHVl Lm86ICQoc3JjZGlyKS9weXRob24vcHl0aG9uLXZhbHVlLmMKK0BAIC0xOTQ5LDYgKzIwMTAsMzYg QEAgcHl0aG9uLXZhbHVlLm86ICQoc3JjZGlyKS9weXRob24vcHl0aG9uLXZhbHVlLmMKICAJJChD T01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHl0aG9uLXZhbHVlLmMK ICAJJChQT1NUQ09NUElMRSkKICAKQEAgLTI4OSw3ICsyOTEsNyBAQCBpbmRleCA5YjVkMmM2Li42 MTY3NmE5IDEwMDY0NAogICAgYWRhX2R1bXBfc3ViZXhwX2JvZHksCiAgICBhZGFfZXZhbHVhdGVf c3ViZXhwCiBkaWZmIC0tZ2l0IGEvZ2RiL2Jsb2NrLmMgYi9nZGIvYmxvY2suYwotaW5kZXggMTg4 OWVjZC4uNDk4ZTcxMCAxMDA2NDQKK2luZGV4IDE4ODllY2QuLjM3ZmEzNDIgMTAwNjQ0CiAtLS0g YS9nZGIvYmxvY2suYwogKysrIGIvZ2RiL2Jsb2NrLmMKIEBAIC0yMjMsOCArMjIzLDkgQEAgYmxv Y2tfc2V0X3Njb3BlIChzdHJ1Y3QgYmxvY2sgKmJsb2NrLCBjb25zdCBjaGFyICpzY29wZSwKQEAg LTMwNCw3ICszMDYsMTEgQEAgaW5kZXggMTg4OWVjZC4uNDk4ZTcxMCAxMDA2NDQKICAKICBzdHJ1 Y3QgdXNpbmdfZGlyZWN0ICoKICBibG9ja191c2luZyAoY29uc3Qgc3RydWN0IGJsb2NrICpibG9j aykKLUBAIC0zMTcsMyArMzE4LDIxIEBAIGFsbG9jYXRlX2Jsb2NrIChzdHJ1Y3Qgb2JzdGFjayAq b2JzdGFjaykKK0BAIC0zMTQsNiArMzE1LDI1IEBAIGFsbG9jYXRlX2Jsb2NrIChzdHJ1Y3Qgb2Jz dGFjayAqb2JzdGFjaykKKyAgIEJMT0NLX1NVUEVSQkxPQ0sgKGJsKSA9IE5VTEw7CisgICBCTE9D S19ESUNUIChibCkgPSBOVUxMOworICAgQkxPQ0tfTkFNRVNQQUNFIChibCkgPSBOVUxMOworKyAg QkxPQ0tfRk9SVFJBTl9VU0UgKGJsKSA9IE5VTEw7CiAgCiAgICByZXR1cm4gYmw7CiAgfQpAQCAt MzI3LDEwICszMzMsMzQgQEAgaW5kZXggMTg4OWVjZC4uNDk4ZTcxMCAxMDA2NDQKICsgIHJldHVy biBTWU1CT0xfU1lNVEFCIChmdW5jKS0+b2JqZmlsZTsKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL2Js b2NrLmggYi9nZGIvYmxvY2suaAotaW5kZXggNTNlNzM3MS4uODI5MGFkYyAxMDA2NDQKK2luZGV4 IDUzZTczNzEuLmQzNzNmOGEgMTAwNjQ0CiAtLS0gYS9nZGIvYmxvY2suaAogKysrIGIvZ2RiL2Js b2NrLmgKLUBAIC0xNjYsNCArMTY2LDYgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBibG9jayAqYmxv Y2tfZ2xvYmFsX2Jsb2NrIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrKTsKK0BAIC05Niw2ICs5 NiwxNSBAQCBzdHJ1Y3QgYmxvY2sKKyAgICAgY3BsdXNfc3BlY2lmaWM7CisgICB9CisgICBsYW5n dWFnZV9zcGVjaWZpYzsKKysKKysgIC8qIEZJWE1FOiBJdCBzaG91bGQgYmUgaW4gdGhlIExBTkdV QUdFX1NQRUNJRklDIHJlZ2lvbiBidXQgdGhlCisrICAgICBCTE9DS19OQU1FU1BBQ0UgYWNjZXNz b3IgaXMgbm90IHByb3RlY3RlZCBieSB0aGUgQyBsYW5ndWFnZSBjaGVjay4gICovCisrCisrICBz dHJ1Y3QKKysgICAgeworKyAgICAgIHN0cnVjdCBmb3J0cmFuX3VzaW5nICp1c2U7CisrICAgIH0K KysgIGZvcnRyYW5fc3BlY2lmaWM7CisgfTsKKyAKKyAjZGVmaW5lIEJMT0NLX1NUQVJUKGJsKQkJ KGJsKS0+c3RhcnRhZGRyCitAQCAtMTA0LDYgKzExMyw3IEBAIHN0cnVjdCBibG9jaworICNkZWZp bmUgQkxPQ0tfU1VQRVJCTE9DSyhibCkJKGJsKS0+c3VwZXJibG9jaworICNkZWZpbmUgQkxPQ0tf RElDVChibCkJCShibCktPmRpY3QKKyAjZGVmaW5lIEJMT0NLX05BTUVTUEFDRShibCkgICAoYmwp LT5sYW5ndWFnZV9zcGVjaWZpYy5jcGx1c19zcGVjaWZpYy5uYW1lc3BhY2UKKysjZGVmaW5lIEJM T0NLX0ZPUlRSQU5fVVNFKGJsKQkoYmwpLT5mb3J0cmFuX3NwZWNpZmljLnVzZQorIAorIC8qIE1h Y3JvIHRvIGxvb3AgdGhyb3VnaCBhbGwgc3ltYm9scyBpbiBhIGJsb2NrIEJMLCBpbiBubyBwYXJ0 aWN1bGFyCisgICAgb3JkZXIuICBJVEVSIGhlbHBzIGtlZXAgdHJhY2sgb2YgdGhlIGl0ZXJhdGlv biwgYW5kIHNob3VsZCBiZSBhCitAQCAtMTY2LDQgKzE3Niw2IEBAIGV4dGVybiBjb25zdCBzdHJ1 Y3QgYmxvY2sgKmJsb2NrX2dsb2JhbF9ibG9jayAoY29uc3Qgc3RydWN0IGJsb2NrICpibG9jayk7 CiAgCiAgZXh0ZXJuIHN0cnVjdCBibG9jayAqYWxsb2NhdGVfYmxvY2sgKHN0cnVjdCBvYnN0YWNr ICpvYnN0YWNrKTsKICAKQEAgLTE3MTgsMjYgKzE3NDgsMzAgQEAgaW5kZXggNjI4MDBiOC4uOTdk NTg3YiAxMDA2NDQKICAJCQl7ICQkID0gJDEuY29tcDsKICAJCQkgIGlmICgkMikgJCQgPSBmaWxs X2NvbXAgKERFTUFOR0xFX0NPTVBPTkVOVF9MT0NBTF9OQU1FLCAkJCwgJDIpOyB9CiBkaWZmIC0t Z2l0IGEvZ2RiL2NwLW5hbWVzcGFjZS5jIGIvZ2RiL2NwLW5hbWVzcGFjZS5jCi1pbmRleCBkMmQ4 ZjJlLi5jYzI1OWU3IDEwMDY0NAoraW5kZXggZDJkOGYyZS4uNTgwNWEzMCAxMDA2NDQKIC0tLSBh L2dkYi9jcC1uYW1lc3BhY2UuYwogKysrIGIvZ2RiL2NwLW5hbWVzcGFjZS5jCi1AQCAtMzUsMTUg KzM1LDcgQEAKLSBzdGF0aWMgc3RydWN0IHVzaW5nX2RpcmVjdCAqY3BfY29weV91c2luZ3MgKHN0 cnVjdCB1c2luZ19kaXJlY3QgKnVzaW5nLAorQEAgLTM2LDE0ICszNiwxNyBAQCBzdGF0aWMgc3Ry dWN0IHVzaW5nX2RpcmVjdCAqY3BfY29weV91c2luZ3MgKHN0cnVjdCB1c2luZ19kaXJlY3QgKnVz aW5nLAogIAkJCQkJICAgIHN0cnVjdCBvYnN0YWNrICpvYnN0YWNrKTsKICAKLS1zdGF0aWMgc3Ry dWN0IHN5bWJvbCAqbG9va3VwX25hbWVzcGFjZV9zY29wZSAoY29uc3QgY2hhciAqbmFtZSwKKyBz dGF0aWMgc3RydWN0IHN5bWJvbCAqbG9va3VwX25hbWVzcGFjZV9zY29wZSAoY29uc3QgY2hhciAq bmFtZSwKIC0JCQkJCSAgICAgIGNvbnN0IGNoYXIgKmxpbmthZ2VfbmFtZSwKLS0JCQkJCSAgICAg IGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCi0tCQkJCQkgICAgICBjb25zdCBkb21haW5fZW51 bSBkb21haW4sCi0tCQkJCQkgICAgICBjb25zdCBjaGFyICpzY29wZSwKLS0JCQkJCSAgICAgIGlu dCBzY29wZV9sZW4pOwotLQorIAkJCQkJICAgICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywK KyAJCQkJCSAgICAgIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbiwKKyAJCQkJCSAgICAgIGNvbnN0 IGNoYXIgKnNjb3BlLAorIAkJCQkJICAgICAgaW50IHNjb3BlX2xlbik7CisgCisrc3RhdGljIHN0 cnVjdCBzeW1ib2wgKmNwX2xvb2t1cF9zeW1ib2xfaW5fbmFtZXNwYWNlIChjb25zdCBjaGFyICpu YW1lc3BhY2UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICpuYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRv bWFpbl9lbnVtIGRvbWFpbik7CisrCiAgc3RhdGljIHN0cnVjdCBzeW1ib2wgKmxvb2t1cF9zeW1i b2xfZmlsZSAoY29uc3QgY2hhciAqbmFtZSwKIC0JCQkJCSAgY29uc3QgY2hhciAqbGlua2FnZV9u YW1lLAogIAkJCQkJICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAogIAkJCQkJICBjb25zdCBk b21haW5fZW51bSBkb21haW4sCiAgCQkJCQkgIGludCBhbm9ueW1vdXNfbmFtZXNwYWNlKTsKLUBA IC0xMTksNyArMTExLDcgQEAgY3Bfc2Nhbl9mb3JfYW5vbnltb3VzX25hbWVzcGFjZXMgKGNvbnN0 IHN0cnVjdCBzeW1ib2wgKnN5bWJvbCkKK0BAIC0xMTksNyArMTIyLDcgQEAgY3Bfc2Nhbl9mb3Jf YW5vbnltb3VzX25hbWVzcGFjZXMgKGNvbnN0IHN0cnVjdCBzeW1ib2wgKnN5bWJvbCkKICAJCSBh bm9ueW1vdXMgbmFtZXNwYWNlLiAgU28gYWRkIHN5bWJvbHMgaW4gaXQgdG8gdGhlCiAgCQkgbmFt ZXNwYWNlIGdpdmVuIGJ5IHRoZSBwcmV2aW91cyBjb21wb25lbnQgaWYgdGhlcmUgaXMKICAJCSBv bmUsIG9yIHRvIHRoZSBnbG9iYWwgbmFtZXNwYWNlIGlmIHRoZXJlIGlzbid0LiAgKi8KQEAgLTE3 NDYsNyArMTc4MCw3IEBAIGluZGV4IGQyZDhmMmUuLmNjMjU5ZTcgMTAwNjQ0CiAgCSAgICB9CiAg CSAgLyogVGhlICIrIDIiIGlzIGZvciB0aGUgIjo6Ii4gICovCiAgCSAgcHJldmlvdXNfY29tcG9u ZW50ID0gbmV4dF9jb21wb25lbnQgKyAyOwotQEAgLTEzNCw3ICsxMjYsOCBAQCBjcF9zY2FuX2Zv cl9hbm9ueW1vdXNfbmFtZXNwYWNlcyAoY29uc3Qgc3RydWN0IHN5bWJvbCAqc3ltYm9sKQorQEAg LTEzNCw3ICsxMzcsOCBAQCBjcF9zY2FuX2Zvcl9hbm9ueW1vdXNfbmFtZXNwYWNlcyAoY29uc3Qg c3RydWN0IHN5bWJvbCAqc3ltYm9sKQogICAgIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQsIGRvbid0 IGFkZCBpdCB0d2ljZS4gICovCiAgCiAgdm9pZApAQCAtMTc1Niw3ICsxNzkwLDcgQEAgaW5kZXgg ZDJkOGYyZS4uY2MyNTllNyAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICpjdXJy ZW50OwogICAgc3RydWN0IHVzaW5nX2RpcmVjdCAqbmV3OwotQEAgLTE0OCw3ICsxNDEsOCBAQCBj cF9hZGRfdXNpbmdfZGlyZWN0aXZlIChjb25zdCBjaGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMp CitAQCAtMTQ4LDcgKzE1Miw4IEBAIGNwX2FkZF91c2luZ19kaXJlY3RpdmUgKGNvbnN0IGNoYXIg KmRlc3QsIGNvbnN0IGNoYXIgKnNyYykKICAJcmV0dXJuOwogICAgICB9CiAgCkBAIC0xNzY2LDcg KzE4MDAsNyBAQCBpbmRleCBkMmQ4ZjJlLi5jYzI1OWU3IDEwMDY0NAogIAogIH0KICAKLUBAIC0y MDEsNyArMTk1LDEwIEBAIGNwX2lzX2Fub255bW91cyAoY29uc3QgY2hhciAqbmFtZXNwYWNlKQor QEAgLTIwMSw3ICsyMDYsMTAgQEAgY3BfaXNfYW5vbnltb3VzIChjb25zdCBjaGFyICpuYW1lc3Bh Y2UpCiAgfQogIAogIC8qIENyZWF0ZSBhIG5ldyBzdHJ1Y3QgdXNpbmcgZGlyZWN0IHdoaWNoIGlt cG9ydHMgdGhlIG5hbWVzcGFjZSBTUkMKQEAgLTE3NzgsNyArMTgxMiw3IEBAIGluZGV4IGQyZDhm MmUuLmNjMjU5ZTcgMTAwNjQ0CiAgICAgU2V0IGl0cyBuZXh0IG1lbWJlciBpbiB0aGUgbGlua2Vk IGxpc3QgdG8gTkVYVDsgYWxsb2NhdGUgYWxsIG1lbW9yeQogICAgIHVzaW5nIHhtYWxsb2MuICBJ dCBjb3BpZXMgdGhlIHN0cmluZ3MsIHNvIE5BTUUgY2FuIGJlIGEgdGVtcG9yYXJ5CiAgICAgc3Ry aW5nLiAgKi8KLUBAIC0yMDksMTMgKzIwNiwxOSBAQCBjcF9pc19hbm9ueW1vdXMgKGNvbnN0IGNo YXIgKm5hbWVzcGFjZSkKK0BAIC0yMDksMTQgKzIxNywyMSBAQCBjcF9pc19hbm9ueW1vdXMgKGNv bnN0IGNoYXIgKm5hbWVzcGFjZSkKICBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICoKICBjcF9hZGRfdXNp bmcgKGNvbnN0IGNoYXIgKmRlc3QsCiAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsCkBA IC0xNzk4LDkgKzE4MzIsMTEgQEAgaW5kZXggZDJkOGYyZS4uY2MyNTllNyAxMDA2NDQKICsgIHJl dHZhbC0+ZGVjbGFyYXRpb24gPSBzYXZlc3RyaW5nIChkZWNsYXJhdGlvbiwgc3RybGVuIChkZWNs YXJhdGlvbikpOwogKyAgcmV0dmFsLT5saW5lX251bWJlciA9IGxpbmVfbnVtYmVyOwogICAgcmV0 dmFsLT5uZXh0ID0gbmV4dDsKKysgIHJldHZhbC0+c2VhcmNoZWQgPSAwOwogIAogICAgcmV0dXJu IHJldHZhbDsKLUBAIC0yNDEsMTAgKzI0NCwxNiBAQCBjcF9jb3B5X3VzaW5ncyAoc3RydWN0IHVz aW5nX2RpcmVjdCAqdXNpbmcsCisgfQorQEAgLTI0MSwxMCArMjU2LDE4IEBAIGNwX2NvcHlfdXNp bmdzIChzdHJ1Y3QgdXNpbmdfZGlyZWN0ICp1c2luZywKICAJCQkJICAgIG9ic3RhY2spOwogICAg ICAgIHJldHZhbC0+aW1wb3J0X2Rlc3QgPSBvYnNhdmVzdHJpbmcgKHVzaW5nLT5pbXBvcnRfZGVz dCwgc3RybGVuICh1c2luZy0+aW1wb3J0X2Rlc3QpLAogIAkJCQkgICAgb2JzdGFjayk7CkBAIC0x ODEwLDYgKzE4NDYsOCBAQCBpbmRleCBkMmQ4ZjJlLi5jYzI1OWU3IDEwMDY0NAogKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic3RhY2spOwogICAgICAgIHJldHZhbC0+bmV4 dCA9IGNwX2NvcHlfdXNpbmdzICh1c2luZy0+bmV4dCwgb2JzdGFjayk7CiAgCisrICAgICAgcmV0 dmFsLT5zZWFyY2hlZCA9IHVzaW5nLT5zZWFyY2hlZDsKKysKICAgICAgICB4ZnJlZSAodXNpbmct PmltcG9ydF9zcmMpOwogICAgICAgIHhmcmVlICh1c2luZy0+aW1wb3J0X2Rlc3QpOwogKyAgICAg IHhmcmVlICh1c2luZy0+YWxpYXMpOwpAQCAtMTgxNyw3ICsxODU1LDcgQEAgaW5kZXggZDJkOGYy ZS4uY2MyNTllNyAxMDA2NDQKICAgICAgICB4ZnJlZSAodXNpbmcpOwogIAogICAgICAgIHJldHVy biByZXR2YWw7Ci1AQCAtMjYxLDEyICsyNzAsNDIgQEAgY3BfY29weV91c2luZ3MgKHN0cnVjdCB1 c2luZ19kaXJlY3QgKnVzaW5nLAorQEAgLTI2MSwxMiArMjg0LDQ4IEBAIGNwX2NvcHlfdXNpbmdz IChzdHJ1Y3QgdXNpbmdfZGlyZWN0ICp1c2luZywKICAKICBzdHJ1Y3Qgc3ltYm9sICoKICBjcF9s b29rdXBfc3ltYm9sX25vbmxvY2FsIChjb25zdCBjaGFyICpuYW1lLApAQCAtMTgyNywzMSArMTg2 NSwzNyBAQCBpbmRleCBkMmQ4ZjJlLi5jYzI1OWU3IDEwMDY0NAogIHsKIC0gIHJldHVybiBsb29r dXBfbmFtZXNwYWNlX3Njb3BlIChuYW1lLCBsaW5rYWdlX25hbWUsIGJsb2NrLCBkb21haW4sCiAt CQkJCSBibG9ja19zY29wZSAoYmxvY2spLCAwKTsKLSsgIHN0cnVjdCBzeW1ib2wgKnN5bTsKLSsg IGNvbnN0IGNoYXIqIHNjb3BlID0gYmxvY2tfc2NvcGUgKGJsb2NrKTsgCisrICBzdHJ1Y3Qgc3lt Ym9sICpzeW07IAorKyAgY29uc3QgY2hhciAqc2NvcGUgPSBibG9ja19zY29wZSAoYmxvY2spOwog KwotKyAgc3ltID0gbG9va3VwX25hbWVzcGFjZV9zY29wZSAobmFtZSwgYmxvY2ssIGRvbWFpbiwg c2NvcGUgLCAwLCAwKTsKLSsgIGlmICggc3ltICE9IE5VTEwpCisrICBzeW0gPSBsb29rdXBfbmFt ZXNwYWNlX3Njb3BlIChuYW1lLCBibG9jaywgZG9tYWluLCBzY29wZSwgMCk7CisrICBpZiAoc3lt ICE9IE5VTEwpCiArICAgIHJldHVybiBzeW07CiArCi0rICByZXR1cm4gY3BfbG9va3VwX3N5bWJv bF9uYW1lc3BhY2VfaW5jcmVtZW50YWwoc2NvcGUsIG5hbWUsIGJsb2NrLCBkb21haW4pOworKyAg cmV0dXJuIGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlKHNjb3BlLCBuYW1lLCBibG9jaywgZG9t YWluKTsKICt9CiArCisrLyogU2VhcmNoZXMgZm9yIE5BTUUgaW4gdGhlIGN1cnJlbnQgbmFtZXNw YWNlLCBhbmQgYnkgYXBwbHlpbmcgcmVsZXZhbnQgaW1wb3J0CisrICAgc3RhdGVtZW50cyBiZWxv bmdpbmcgdG8gQkxPQ0sgYW5kIGl0cyBwYXJlbnRzLiAgU0NPUEUgaXMgdGhlIG5hbWVzcGFjZQor KyAgIHNjb3BlIG9mIHRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBzZWFyY2ggaXMgYmVpbmcgZXZh bHVhdGVkLiAgKi8KKysKICtzdHJ1Y3Qgc3ltYm9sKgotK2NwX2xvb2t1cF9zeW1ib2xfbmFtZXNw YWNlX2luY3JlbWVudGFsIChjb25zdCBjaGFyICpzY29wZSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9tYWluX2VudW0gZG9t YWluKQorK2NwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlIChjb25zdCBjaGFyICpzY29wZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgZG9tYWluX2VudW0gZG9tYWluKQogK3sKICsgIHN0cnVj dCBzeW1ib2wgKnN5bTsKICsKLSsgIHN5bSA9IGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlIChz Y29wZSwgbmFtZSwgYmxvY2ssIGRvbWFpbiwgMCk7CisrICAvKiBGaXJzdCwgdHJ5IHRvIGZpbmQg dGhlIHN5bWJvbCBpbiB0aGUgZ2l2ZW4gbmFtZXNwYWNlLiAgKi8KKysgIHN5bSA9IGNwX2xvb2t1 cF9zeW1ib2xfaW5fbmFtZXNwYWNlIChzY29wZSwgbmFtZSwgYmxvY2ssIGRvbWFpbik7CiArICBp ZiAoIHN5bSAhPSBOVUxMKQogKyAgICByZXR1cm4gc3ltOwotKworKyAgICAKKysgIC8qIFNlYXJj aCBmb3IgbmFtZSBpbiBuYW1lc3BhY2VzIGltcG9ydGVkIHRvIHRoaXMgYW5kIHBhcmVudCBibG9j a3MuICAqLwogKyAgd2hpbGUgKGJsb2NrICE9IE5VTEwpCiArICAgIHsKLSsgICAgICBzeW0gPSBj cF9sb29rdXBfc3ltYm9sX2ltcG9ydHMoc2NvcGUsIG5hbWUsIGJsb2NrLCBkb21haW4sMCk7Cisr ICAgICAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9pbXBvcnRzKHNjb3BlLG5hbWUsIGJsb2NrLCBk b21haW4sMCk7CiArCiArICAgICAgaWYgKHN5bSkKICsgICAgICAgIHJldHVybiBzeW07CkBAIC0x ODYzLDcgKzE5MDcsNyBAQCBpbmRleCBkMmQ4ZjJlLi5jYzI1OWU3IDEwMDY0NAogIH0KICAKICAv KiBMb29rdXAgTkFNRSBhdCBuYW1lc3BhY2Ugc2NvcGUgKG9yLCBpbiBDIHRlcm1zLCBpbiBzdGF0 aWMgYW5kCi1AQCAtMjg0LDEzICszMjMsMTMgQEAgY3BfbG9va3VwX3N5bWJvbF9ub25sb2NhbCAo Y29uc3QgY2hhciAqbmFtZSwKK0BAIC0yODQsOSArMzQzLDggQEAgY3BfbG9va3VwX3N5bWJvbF9u b25sb2NhbCAoY29uc3QgY2hhciAqbmFtZSwKICAgICAiQTo6eCIsIGFuZCBpZiB0aGF0IGNhbGwg ZmFpbHMsIHRoZW4gdGhlIGZpcnN0IGNhbGwgbG9va3MgZm9yCiAgICAgIngiLiAgKi8KICAKQEAg LTE4NzQsMzAgKzE5MTgsMjMgQEAgaW5kZXggZDJkOGYyZS4uY2MyNTllNyAxMDA2NDQKICAJCQlj b25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAogIAkJCWNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbiwK ICAJCQljb25zdCBjaGFyICpzY29wZSwKLS0JCQlpbnQgc2NvcGVfbGVuKQotKwkJCWludCBzY29w ZV9sZW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlY2xhcmF0aW9uX29ubHkpCi0g ewotICAgY2hhciAqbmFtZXNwYWNlOwotIAotQEAgLTMwOCw4ICszNDcsOCBAQCBsb29rdXBfbmFt ZXNwYWNlX3Njb3BlIChjb25zdCBjaGFyICpuYW1lLAorQEAgLTMwOCw4ICszNjYsNyBAQCBsb29r dXBfbmFtZXNwYWNlX3Njb3BlIChjb25zdCBjaGFyICpuYW1lLAogIAkgIG5ld19zY29wZV9sZW4g Kz0gMjsKICAJfQogICAgICAgIG5ld19zY29wZV9sZW4gKz0gY3BfZmluZF9maXJzdF9jb21wb25l bnQgKHNjb3BlICsgbmV3X3Njb3BlX2xlbik7CiAtICAgICAgc3ltID0gbG9va3VwX25hbWVzcGFj ZV9zY29wZSAobmFtZSwgbGlua2FnZV9uYW1lLCBibG9jaywKIC0JCQkJICAgIGRvbWFpbiwgc2Nv cGUsIG5ld19zY29wZV9sZW4pOwotKyAgICAgIHN5bSA9IGxvb2t1cF9uYW1lc3BhY2Vfc2NvcGUg KG5hbWUsIGJsb2NrLCBkb21haW4sIHNjb3BlLCBuZXdfc2NvcGVfbGVuLAotKwkJCQkgICAgZGVj bGFyYXRpb25fb25seSk7CisrICAgICAgc3ltID0gbG9va3VwX25hbWVzcGFjZV9zY29wZSAobmFt ZSwgYmxvY2ssIGRvbWFpbiwgc2NvcGUsIG5ld19zY29wZV9sZW4pOwogICAgICAgIGlmIChzeW0g IT0gTlVMTCkKICAJcmV0dXJuIHN5bTsKICAgICAgfQotQEAgLTMyMCwyNSArMzU5LDUwIEBAIGxv b2t1cF9uYW1lc3BhY2Vfc2NvcGUgKGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMzIwLDI1ICszNzcs NTUgQEAgbG9va3VwX25hbWVzcGFjZV9zY29wZSAoY29uc3QgY2hhciAqbmFtZSwKICAgIG5hbWVz cGFjZSA9IGFsbG9jYSAoc2NvcGVfbGVuICsgMSk7CiAgICBzdHJuY3B5IChuYW1lc3BhY2UsIHNj b3BlLCBzY29wZV9sZW4pOwogICAgbmFtZXNwYWNlW3Njb3BlX2xlbl0gPSAnXDAnOwogLSAgcmV0 dXJuIGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlIChuYW1lc3BhY2UsIG5hbWUsIGxpbmthZ2Vf bmFtZSwKIC0JCQkJICAgICBibG9jaywgZG9tYWluKTsKLSsgIHJldHVybiBjcF9sb29rdXBfc3lt Ym9sX25hbWVzcGFjZSAobmFtZXNwYWNlLCBuYW1lLCBibG9jaywgZG9tYWluLCBkZWNsYXJhdGlv bl9vbmx5KTsKKysgIHJldHVybiBjcF9sb29rdXBfc3ltYm9sX2luX25hbWVzcGFjZSAobmFtZXNw YWNlLCBuYW1lLGJsb2NrLCBkb21haW4pOwogIH0KICAKIC0vKiBMb29rIHVwIE5BTUUgaW4gdGhl IEMrKyBuYW1lc3BhY2UgTkFNRVNQQUNFLCBhcHBseWluZyB0aGUgdXNpbmcKQEAgLTE5MDUsMTQg KzE5NDIsMTEgQEAgaW5kZXggZDJkOGYyZS4uY2MyNTllNyAxMDA2NDQKICsvKiBMb29rIHVwIE5B TUUgaW4gdGhlIEMrKyBuYW1lc3BhY2UgTkFNRVNQQUNFLiBPdGhlciBhcmd1bWVudHMgYXJlIGFz IGluCiAgICAgY3BfbG9va3VwX3N5bWJvbF9ub25sb2NhbC4gICovCiAgCi0gc3RydWN0IHN5bWJv bCAqCi0gY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2UgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSwK LSAJCQkgICAgY29uc3QgY2hhciAqbmFtZSwKLS0JCQkgICAgY29uc3QgY2hhciAqbGlua2FnZV9u YW1lLAotIAkJCSAgICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAotLQkJCSAgICBjb25zdCBk b21haW5fZW51bSBkb21haW4pCi0rCQkJICAgIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbiwKLSsJ CQkgICAgaW50IGRlY2xhcmF0aW9uX29ubHkpCisrc3RhdGljIHN0cnVjdCBzeW1ib2wgKgorK2Nw X2xvb2t1cF9zeW1ib2xfaW5fbmFtZXNwYWNlIChjb25zdCBjaGFyICpuYW1lc3BhY2UsCisrCQkJ ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCisrCQkJICAgICAgIGNvbnN0IHN0cnVjdCBibG9jayAq YmxvY2ssCisrCQkJICAgICAgIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbikKICt7CiArCiArICBp ZiAobmFtZXNwYWNlWzBdID09ICdcMCcpCkBAIC0xOTM0LDM5ICsxOTY4LDU0IEBAIGluZGV4IGQy ZDhmMmUuLmNjMjU5ZTcgMTAwNjQ0CiArLyogU2VhcmNoIGZvciBOQU1FIGJ5IGFwcGx5aW5nIGFs bCBpbXBvcnQgc3RhdGVtZW50cyBiZWxvbmdpbmcKICsgICB0byBCTE9DSyB3aGljaCBhcmUgYXBw bGljYWJsZSBpbiBTQ09QRS4gICovCiArCi0rc3RydWN0IHN5bWJvbCAqCisgc3RydWN0IHN5bWJv bCAqCistY3BfbG9va3VwX3N5bWJvbF9uYW1lc3BhY2UgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSwK Ky0JCQkgICAgY29uc3QgY2hhciAqbmFtZSwKKy0JCQkgICAgY29uc3QgY2hhciAqbGlua2FnZV9u YW1lLAorLQkJCSAgICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAorLQkJCSAgICBjb25zdCBk b21haW5fZW51bSBkb21haW4pCiArY3BfbG9va3VwX3N5bWJvbF9pbXBvcnRzIChjb25zdCBjaGFy ICpzY29wZSwKICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwK ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywK ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9tYWluX2VudW0gZG9tYWluLAog KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVjbGFyYXRpb25fb25seSkKICB7Ci0g ICBjb25zdCBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICpjdXJyZW50OworLSAgY29uc3Qgc3RydWN0IHVz aW5nX2RpcmVjdCAqY3VycmVudDsKIC0gIHN0cnVjdCBzeW1ib2wgKnN5bTsKKysgIHN0cnVjdCB1 c2luZ19kaXJlY3QgKmN1cnJlbnQ7CiArICBzdHJ1Y3Qgc3ltYm9sICpzeW0gPSBOVUxMOwogIAog LSAgLyogRmlyc3QsIGdvIHRocm91Z2ggdGhlIHVzaW5nIGRpcmVjdGl2ZXMuICBJZiBhbnkgb2Yg dGhlbSBhZGQgbmV3CisrICBpZighZGVjbGFyYXRpb25fb25seSkKKysgIC8qIEZpcnN0LCB0cnkg dG8gZmluZCB0aGUgc3ltYm9sIGluIHRoZSBnaXZlbiBuYW1lc3BhY2UuICAqLworKyAgc3ltID0g Y3BfbG9va3VwX3N5bWJvbF9pbl9uYW1lc3BhY2UgKHNjb3BlLCBuYW1lLCBibG9jaywgZG9tYWlu KTsKKysgIGlmICggc3ltICE9IE5VTEwpCisrICAgIHJldHVybiBzeW07CisrCiArICAvKiBHbyB0 aHJvdWdoIHRoZSB1c2luZyBkaXJlY3RpdmVzLiAgSWYgYW55IG9mIHRoZW0gYWRkIG5ldwogICAg ICAgbmFtZXMgdG8gdGhlIG5hbWVzcGFjZSB3ZSdyZSBzZWFyY2hpbmcgaW4sIHNlZSBpZiB3ZSBj YW4gZmluZCBhCiAgICAgICBtYXRjaCBieSBhcHBseWluZyB0aGVtLiAgKi8KICAKLUBAIC0zNDYs MzkgKzQxMCw2NSBAQCBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZSAoY29uc3QgY2hhciAqbmFt ZXNwYWNlLAorQEAgLTM0NiwzOSArNDMzLDcwIEBAIGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNl IChjb25zdCBjaGFyICpuYW1lc3BhY2UsCiAgICAgICAgIGN1cnJlbnQgIT0gTlVMTDsKICAgICAg ICAgY3VycmVudCA9IGN1cnJlbnQtPm5leHQpCiAgICAgIHsKIC0gICAgICBpZiAoc3RyY21wIChu YW1lc3BhY2UsIGN1cnJlbnQtPmltcG9ydF9kZXN0KSA9PSAwKQogKyAgICAgIGludCBjdXJyZW50 X2xpbmUgPSBmaW5kX3BjX2xpbmUgKGdldF9mcmFtZV9wYyAoZ2V0X2N1cnJlbnRfZnJhbWUgKCkp LCAwKS5saW5lOwotKyAgICAgIAorKyAgCiArICAgICAgLyogSWYgdGhlIGltcG9ydCBkZXN0aW5h dGlvbiBpcyB0aGUgY3VycmVudCBzY29wZSBvciBvbmUgb2YgaXRzIGFuY2VzdG9ycyB0aGVuCiAr ICAgICAgICAgaXQgaXMgYXBwbGljYWJsZS4gICovCi0rICAgICAgaWYgKHN0cm5jbXAgKHNjb3Bl LCBjdXJyZW50LT5pbXBvcnRfZGVzdCwgc3RybGVuKGN1cnJlbnQtPmltcG9ydF9kZXN0KSkgPT0g MCAmJiBjdXJyZW50LT5saW5lX251bWJlciA8IGN1cnJlbnRfbGluZSApCisrICAgICAgaWYgKHN0 cm5jbXAgKHNjb3BlLCBjdXJyZW50LT5pbXBvcnRfZGVzdCwKKysgICAgICAgICAgc3RybGVuKGN1 cnJlbnQtPmltcG9ydF9kZXN0KSkgPT0gMCAmJgorKyAgICAgICAgICBjdXJyZW50LT5saW5lX251 bWJlciA8IGN1cnJlbnRfbGluZSAmJgorKyAgICAgICAgICAhY3VycmVudC0+c2VhcmNoZWQpCiAg CXsKIC0JICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZSAoY3VycmVudC0+aW1wb3J0 X3NyYywKIC0JCQkJCSAgICBuYW1lLAogLQkJCQkJICAgIGxpbmthZ2VfbmFtZSwKIC0JCQkJCSAg ICBibG9jaywKIC0JCQkJCSAgICBkb21haW4pOwotLQkgIGlmIChzeW0gIT0gTlVMTCkKKysJICBj dXJyZW50LT5zZWFyY2hlZCA9IDE7CiArCSAgLyogSWYgdGhlcmUgaXMgYW4gaW1wb3J0IG9mIGEg c2luZ2xlIGRlY2xhcmF0aW9uLCBjb21wYXJlIHRoZSBpbXBvcnRlZAogKwkgICAgIGRlY2xhcmF0 aW9uIHdpdGggdGhlIHNvdWdodCBvdXQgbmFtZS4gSWYgdGhlcmUgaXMgYSBtYXRjaCBwYXNzCiAr CSAgICAgY3VycmVudC0+aW1wb3J0X3NyYyBhcyBOQU1FU1BBQ0UgdG8gZGlyZWN0IHRoZSBzZWFy Y2ggdG93YXJkcyB0aGUKQEAgLTE5NzUsMTYgKzIwMjQsMTYgQEAgaW5kZXggZDJkOGYyZS4uY2My NTllNyAxMDA2NDQKICsJICAgIHsKICsJICAgIGlmIChzdHJjbXAgKG5hbWUsIGN1cnJlbnQtPmRl Y2xhcmF0aW9uKSA9PSAwKQogKwkgICAgICB7Ci0rCSAgICAgICAgc3ltID0gY3BfbG9va3VwX3N5 bWJvbF9uYW1lc3BhY2UgKGN1cnJlbnQtPmltcG9ydF9zcmMsCisrCSAgICAgICAgc3ltID0gY3Bf bG9va3VwX3N5bWJvbF9pbl9uYW1lc3BhY2UgKGN1cnJlbnQtPmltcG9ydF9zcmMsCiArCSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCiArCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLAotKwkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4sCi0rCSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uX29ubHkpOworKwkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4pOwogKwkgICAgICB9CiArCSAgICB9 CiArCSAgIAogKwkgIGlmIChkZWNsYXJhdGlvbl9vbmx5KQogKyAgICAgICAgICAgIHsKKysgICAg ICAgICAgICAgIGN1cnJlbnQtPnNlYXJjaGVkID0gMDsKICsgICAgICAgICAgICAgIGlmIChzeW0p CiArICAgICAgICAgICAgICAgIHsKICsgICAgICAgICAgICAgICAgICByZXR1cm4gc3ltOwpAQCAt MTk5OCwyNCArMjA0NywyNiBAQCBpbmRleCBkMmQ4ZjJlLi5jYzI1OWU3IDEwMDY0NAogKwkgICAg ICAgc291Z2h0IG5hbWUuIFBhc3MgY3VycmVudC0+aW5uZXIgYXMgdGhlIE5BTUUgdG8gZGlyZWN0 IHRoZQogKwkgICAgICAgc2VhcmNoIHRvd2FyZHMgdGhlIGFsaWFzZWQgbmFtZXNwYWNlICovCiAr CSAgICB7Ci0rCSAgICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZSAoc2NvcGUsCisr CSAgICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX2luX25hbWVzcGFjZSAoc2NvcGUsCiArCSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC0+aW1wb3J0X3NyYywKICsJ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jaywKLSsJICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4sCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uX29ubHkpOworKwkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbik7CiArCSAgICB9IGVsc2UgaWYg KHN0cmNtcCAoIiIsIGN1cnJlbnQtPmFsaWFzKSA9PSAwKXsKICsJICAgIC8qIElmIHRoaXMgaW1w b3J0IHN0YXRlbWVudCBjcmVhdGVzIG5vIGFsaWFzLCBwYXNzIGN1cnJlbnQtPmlubmVyIGFzCiAr CSAgICAgICBOQU1FU1BBQ0UgdG8gZGlyZWN0IHRoZSBzZWFyY2ggdG93YXJkcyB0aGUgaW1wb3J0 ZWQgbmFtZXNwYWNlLiAqLwotKwkgICAgICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFj ZSAoY3VycmVudC0+aW1wb3J0X3NyYywKKysJICAgICAgc3ltID0gY3BfbG9va3VwX3N5bWJvbF9p bXBvcnRzIChjdXJyZW50LT5pbXBvcnRfc3JjLAogKwkJICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBuYW1lLAogKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jaywK ICsJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uX29ubHkpOwor KwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKICsJICAgIH0KICsKLSsJICBp ZiAoc3ltICE9IE5VTEwpewotIAkgICAgcmV0dXJuIHN5bTsKLSsJICB9CisrCSAgY3VycmVudC0+ c2VhcmNoZWQgPSAwOworIAkgIGlmIChzeW0gIT0gTlVMTCkKKy0JICAgIHJldHVybiBzeW07Cisr CSAgICB7CisrCSAgICAgIHJldHVybiBzeW07CisrCSAgICB9CiAgCX0KICAgICAgfQogIApAQCAt MjA0NCw3ICsyMDk1LDcgQEAgaW5kZXggZDJkOGYyZS4uY2MyNTllNyAxMDA2NDQKICB9CiAgCiAg LyogTG9vayB1cCBOQU1FIGluIEJMT0NLJ3Mgc3RhdGljIGJsb2NrIGFuZCBpbiBnbG9iYWwgYmxv Y2tzLiAgSWYKLUBAIC0zODgsMTcgKzQ3OCwxNSBAQCBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFj ZSAoY29uc3QgY2hhciAqbmFtZXNwYWNlLAorQEAgLTM4OCwxNyArNTA2LDE1IEBAIGNwX2xvb2t1 cF9zeW1ib2xfbmFtZXNwYWNlIChjb25zdCBjaGFyICpuYW1lc3BhY2UsCiAgCiAgc3RhdGljIHN0 cnVjdCBzeW1ib2wgKgogIGxvb2t1cF9zeW1ib2xfZmlsZSAoY29uc3QgY2hhciAqbmFtZSwKQEAg LTIwNjMsNyArMjExNCw3IEBAIGluZGV4IGQyZDhmMmUuLmNjMjU5ZTcgMTAwNjQ0CiAgICBpZiAo YW5vbnltb3VzX25hbWVzcGFjZSkKICAgICAgewogICAgICAgIC8qIFN5bWJvbHMgZGVmaW5lZCBp biBhbm9ueW1vdXMgbmFtZXNwYWNlcyBoYXZlIGV4dGVybmFsIGxpbmthZ2UKLUBAIC00MDgsMTIg KzQ5NiwxMSBAQCBsb29rdXBfc3ltYm9sX2ZpbGUgKGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtNDA4 LDEyICs1MjQsMTEgQEAgbG9va3VwX3N5bWJvbF9maWxlIChjb25zdCBjaGFyICpuYW1lLAogICAg ICAgIGNvbnN0IHN0cnVjdCBibG9jayAqZ2xvYmFsX2Jsb2NrID0gYmxvY2tfZ2xvYmFsX2Jsb2Nr IChibG9jayk7CiAgICAgICAgCiAgICAgICAgaWYgKGdsb2JhbF9ibG9jayAhPSBOVUxMKQpAQCAt MjA3OCw3ICsyMTI5LDcgQEAgaW5kZXggZDJkOGYyZS4uY2MyNTllNyAxMDA2NDQKICAgICAgfQog IAogICAgaWYgKHN5bSAhPSBOVUxMKQotQEAgLTQzNCw2ICs1MjEsNyBAQCBsb29rdXBfc3ltYm9s X2ZpbGUgKGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtNDM0LDYgKzU0OSw3IEBAIGxvb2t1cF9zeW1i b2xfZmlsZSAoY29uc3QgY2hhciAqbmFtZSwKICAgICAgICBzeW0gPSBsb29rdXBfcG9zc2libGVf bmFtZXNwYWNlX3N5bWJvbCAobmFtZSk7CiAgICAgICAgaWYgKHN5bSAhPSBOVUxMKQogIAlyZXR1 cm4gc3ltOwpAQCAtMjA4NiwxOCArMjEzNywxOCBAQCBpbmRleCBkMmQ4ZjJlLi5jYzI1OWU3IDEw MDY0NAogICAgICB9CiAgCiAgICByZXR1cm4gTlVMTDsKLUBAIC00NjMsOSArNTUxLDggQEAgY3Bf bG9va3VwX25lc3RlZF90eXBlIChzdHJ1Y3QgdHlwZSAqcGFyZW50X3R5cGUsCitAQCAtNDYxLDkg KzU3Nyw4IEBAIGNwX2xvb2t1cF9uZXN0ZWRfdHlwZSAoc3RydWN0IHR5cGUgKnBhcmVudF90eXBl LAorIAkgICBsb29rdXBfc3ltYm9sX25hbWVzcGFjZSB3b3JrcyB3aGVuIGxvb2tpbmcgdGhlbSB1 cC4gICovCisgCiAgCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lID0gVFlQRV9UQUdfTkFNRSAocGFy ZW50X3R5cGUpOwotIAlzdHJ1Y3Qgc3ltYm9sICpzeW0gPSBjcF9sb29rdXBfc3ltYm9sX25hbWVz cGFjZSAocGFyZW50X25hbWUsCistCXN0cnVjdCBzeW1ib2wgKnN5bSA9IGNwX2xvb2t1cF9zeW1i b2xfbmFtZXNwYWNlIChwYXJlbnRfbmFtZSwKKysJc3RydWN0IHN5bWJvbCAqc3ltID0gY3BfbG9v a3VwX3N5bWJvbF9pbl9uYW1lc3BhY2UgKHBhcmVudF9uYW1lLAogIAkJCQkJCQkgbmVzdGVkX25h bWUsCiAtCQkJCQkJCSBOVUxMLAogIAkJCQkJCQkgYmxvY2ssCi0tCQkJCQkJCSBWQVJfRE9NQUlO KTsKLSsJCQkJCQkJIFZBUl9ET01BSU4sMCk7CisgCQkJCQkJCSBWQVJfRE9NQUlOKTsKICAJaWYg KHN5bSA9PSBOVUxMIHx8IFNZTUJPTF9DTEFTUyAoc3ltKSAhPSBMT0NfVFlQRURFRikKLSAJICBy ZXR1cm4gTlVMTDsKLSAJZWxzZQotQEAgLTcwOSw3ICs3OTYsNyBAQCBjaGVja19vbmVfcG9zc2li bGVfbmFtZXNwYWNlX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbiwKK0BAIC03MDks NyArODI0LDcgQEAgY2hlY2tfb25lX3Bvc3NpYmxlX25hbWVzcGFjZV9zeW1ib2wgKGNvbnN0IGNo YXIgKm5hbWUsIGludCBsZW4sCiAgCiAgICBtZW1jcHkgKG5hbWVfY29weSwgbmFtZSwgbGVuKTsK ICAgIG5hbWVfY29weVtsZW5dID0gJ1wwJzsKQEAgLTIxMDYsNyArMjE1Nyw3IEBAIGluZGV4IGQy ZDhmMmUuLmNjMjU5ZTcgMTAwNjQ0CiAgCiAgICBpZiAoc3ltID09IE5VTEwpCiAgICAgIHsKLUBA IC03NDksNyArODM2LDcgQEAgbG9va3VwX3Bvc3NpYmxlX25hbWVzcGFjZV9zeW1ib2wgKGNvbnN0 IGNoYXIgKm5hbWUpCitAQCAtNzQ5LDcgKzg2NCw3IEBAIGxvb2t1cF9wb3NzaWJsZV9uYW1lc3Bh Y2Vfc3ltYm9sIChjb25zdCBjaGFyICpuYW1lKQogICAgICAgIHN0cnVjdCBzeW1ib2wgKnN5bTsK ICAKICAgICAgICBzeW0gPSBsb29rdXBfYmxvY2tfc3ltYm9sIChnZXRfcG9zc2libGVfbmFtZXNw YWNlX2Jsb2NrIChvYmpmaWxlKSwKQEAgLTIyMzcsMTAgKzIyODgsMTAgQEAgaW5kZXggZjEyZDc4 NS4uY2ExMDAwNyAxMDA2NDQKICBfaW5pdGlhbGl6ZV9jcF9zdXBwb3J0ICh2b2lkKQogIHsKIGRp ZmYgLS1naXQgYS9nZGIvY3Atc3VwcG9ydC5oIGIvZ2RiL2NwLXN1cHBvcnQuaAotaW5kZXggYjVh NWM1Zi4uZjEyNmJlZCAxMDA2NDQKK2luZGV4IGI1YTVjNWYuLjAyMmYxMDIgMTAwNjQ0CiAtLS0g YS9nZGIvY3Atc3VwcG9ydC5oCiArKysgYi9nZGIvY3Atc3VwcG9ydC5oCi1AQCAtMzgsMTQgKzM4 LDI5IEBAIHN0cnVjdCBkZW1hbmdsZV9jb21wb25lbnQ7CitAQCAtMzgsMTUgKzM4LDMzIEBAIHN0 cnVjdCBkZW1hbmdsZV9jb21wb25lbnQ7CiAgCiAgLyogVGhpcyBzdHJ1Y3QgaXMgZGVzaWduZWQg dG8gc3RvcmUgZGF0YSBmcm9tIHVzaW5nIGRpcmVjdGl2ZXMuICBJdAogICAgIHNheXMgdGhhdCBu YW1lcyBmcm9tIG5hbWVzcGFjZSBJTVBPUlRfU1JDIHNob3VsZCBiZSB2aXNpYmxlIHdpdGhpbgpA QCAtMjI3MSw5ICsyMzIyLDEzIEBAIGluZGV4IGI1YTVjNWYuLmYxMjZiZWQgMTAwNjQ0CiArICBp bnQgbGluZV9udW1iZXI7CiArCiAgICBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICpuZXh0OworKworKyAg LyogVXNlZCBkdXJpbmcgaW1wb3J0IHNlYXJjaCB0byB0ZW1wb3Jhcmx5IG1hcmsgdGhpcyBub2Rl IGFzIHNlYXJjZWQuICAqLworKyAgaW50IHNlYXJjaGVkOwogIH07CiAgCi1AQCAtNTQsNiArNjks NyBAQCBzdHJ1Y3QgdXNpbmdfZGlyZWN0CisgCitAQCAtNTQsNiArNzIsNyBAQCBzdHJ1Y3QgdXNp bmdfZGlyZWN0CiAgCiAgZXh0ZXJuIGNoYXIgKmNwX2Nhbm9uaWNhbGl6ZV9zdHJpbmcgKGNvbnN0 IGNoYXIgKnN0cmluZyk7CiAgCkBAIC0yMjgxLDcgKzIzMzYsNyBAQCBpbmRleCBiNWE1YzVmLi5m MTI2YmVkIDEwMDY0NAogIGV4dGVybiBjaGFyICpjcF9jbGFzc19uYW1lX2Zyb21fcGh5c25hbWUg KGNvbnN0IGNoYXIgKnBoeXNuYW1lKTsKICAKICBleHRlcm4gY2hhciAqbWV0aG9kX25hbWVfZnJv bV9waHlzbmFtZSAoY29uc3QgY2hhciAqcGh5c25hbWUpOwotQEAgLTcyLDE1ICs4OCwyMyBAQCBl eHRlcm4gc3RydWN0IHN5bWJvbCAqKm1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3QgKGNvbnN0IGNo YXIgKiwKK0BAIC03MiwxNSArOTEsMjMgQEAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKiptYWtlX3N5 bWJvbF9vdmVybG9hZF9saXN0IChjb25zdCBjaGFyICosCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpj cF9sb29rdXBfcnR0aV90eXBlIChjb25zdCBjaGFyICpuYW1lLAogIAkJCQkJIHN0cnVjdCBibG9j ayAqYmxvY2spOwogIApAQCAtMjMwNiw3ICsyMzYxLDcgQEAgaW5kZXggYjVhNWM1Zi4uZjEyNmJl ZCAxMDA2NDQKICAJCQkJCSAgc3RydWN0IHVzaW5nX2RpcmVjdCAqbmV4dCk7CiAgCiAgZXh0ZXJu IHZvaWQgY3BfaW5pdGlhbGl6ZV9uYW1lc3BhY2UgKHZvaWQpOwotQEAgLTk3LDE1ICsxMjEsMzIg QEAgZXh0ZXJuIHZvaWQgY3Bfc2V0X2Jsb2NrX3Njb3BlIChjb25zdCBzdHJ1Y3Qgc3ltYm9sICpz eW1ib2wsCitAQCAtOTcsMTUgKzEyNCwxOSBAQCBleHRlcm4gdm9pZCBjcF9zZXRfYmxvY2tfc2Nv cGUgKGNvbnN0IHN0cnVjdCBzeW1ib2wgKnN5bWJvbCwKICBleHRlcm4gdm9pZCBjcF9zY2FuX2Zv cl9hbm9ueW1vdXNfbmFtZXNwYWNlcyAoY29uc3Qgc3RydWN0IHN5bWJvbCAqc3ltYm9sKTsKICAK ICBleHRlcm4gc3RydWN0IHN5bWJvbCAqY3BfbG9va3VwX3N5bWJvbF9ub25sb2NhbCAoY29uc3Qg Y2hhciAqbmFtZSwKQEAgLTIzMTQsMTggKzIzNjksNiBAQCBpbmRleCBiNWE1YzVmLi5mMTI2YmVk IDEwMDY0NAogIAkJCQkJCSBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAogIAkJCQkJCSBjb25z dCBkb21haW5fZW51bSBkb21haW4pOwogIAotK2V4dGVybiBzdHJ1Y3Qgc3ltYm9sICpsb29rdXBf bmFtZXNwYWNlX3Njb3BlIChjb25zdCBjaGFyICpuYW1lLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkb21haW5f ZW51bSBkb21haW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKnNjb3BlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgc2NvcGVfbGVuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgZGVjbGFyYXRpb25fb25seSk7Ci0rCi0rZXh0ZXJuIHN0 cnVjdCBzeW1ib2wqIGNwX2xvb2t1cF9zeW1ib2xfbmFtZXNwYWNlX2luY3JlbWVudGFsIChjb25z dCBjaGFyICpzY29wZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgZG9tYWluX2VudW0gZG9tYWluKTsKLSsKICtzdHJ1Y3Qgc3lt Ym9sICpjcF9sb29rdXBfc3ltYm9sX2ltcG9ydHMgKGNvbnN0IGNoYXIgKnNjb3BlLAogKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBibG9j ayAqYmxvY2ssCkBAIC0yMzM5LDggKzIzODIsNyBAQCBpbmRleCBiNWE1YzVmLi5mMTI2YmVkIDEw MDY0NAogLQkJCQkJCSAgY29uc3QgZG9tYWluX2VudW0gZG9tYWluKTsKICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgYmxvY2sgKmJsb2NrLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgZG9tYWluX2VudW0gZG9tYWluLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlY2xhcmF0aW9uX29ubHkp OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZG9tYWluX2VudW0gZG9tYWluKTsKICAKICBleHRlcm4gc3RydWN0IHR5cGUgKmNwX2xvb2t1 cF9uZXN0ZWRfdHlwZSAoc3RydWN0IHR5cGUgKnBhcmVudF90eXBlLAogIAkJCQkJICAgY29uc3Qg Y2hhciAqbmVzdGVkX25hbWUsCkBAIC0zMjMwLDcgKzMyNzIsNyBAQCBpbmRleCA0OTg0ZjMxLi5m Y2YxYjVkIDEwMDY0NAogIFRoaXMgb2JzZXJ2ZXIgaXMgdXNlZCBmb3IgaW50ZXJuYWwgdGVzdGlu Zy4gIERvIG5vdCB1c2UuICAKICBTZWUgdGVzdHN1aXRlL2dkYi5nZGIvb2JzZXJ2ZXIuZXhwLgog ZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjItZnJhbWUuYyBiL2dkYi9kd2FyZjItZnJhbWUuYwotaW5k ZXggMGY2ZGE0MC4uZmM3MDMwOSAxMDA2NDQKK2luZGV4IDQyN2Y1OGYuLmZjNzAzMDkgMTAwNjQ0 CiAtLS0gYS9nZGIvZHdhcmYyLWZyYW1lLmMKICsrKyBiL2dkYi9kd2FyZjItZnJhbWUuYwogQEAg LTM4LDYgKzM4LDcgQEAKQEAgLTMyNTUsMTggKzMyOTcsNyBAQCBpbmRleCAwZjZkYTQwLi5mYzcw MzA5IDEwMDY0NAogIG5vX2dldF90bHNfYWRkcmVzcyAodm9pZCAqYmF0b24sIENPUkVfQUREUiBv ZmZzZXQpCiAgewogICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKLUBAIC0z NTIsMjQgKzM2MCwyOSBAQCBleGVjdXRlX3N0YWNrX29wIChnZGJfYnl0ZSAqZXhwLCBVTE9OR0VT VCBsZW4sIGludCBhZGRyX3NpemUsCi0gewotICAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAq Y3R4OwotICAgQ09SRV9BRERSIHJlc3VsdDsKLSsgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW47 Ci0gCi0gICBjdHggPSBuZXdfZHdhcmZfZXhwcl9jb250ZXh0ICgpOwotKyAgb2xkX2NoYWluID0g bWFrZV9jbGVhbnVwX2ZyZWVfZHdhcmZfZXhwcl9jb250ZXh0IChjdHgpOwotKwotICAgY3R4LT5n ZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKHRoaXNfZnJhbWUpOwotICAgY3R4LT5hZGRyX3NpemUg PSBhZGRyX3NpemU7Ci0gICBjdHgtPmJhdG9uID0gdGhpc19mcmFtZTsKK0BAIC0zNjMsMTQgKzM3 MSwxNiBAQCBleGVjdXRlX3N0YWNrX29wIChnZGJfYnl0ZSAqZXhwLCBVTE9OR0VTVCBsZW4sIGlu dCBhZGRyX3NpemUsCiAgICBjdHgtPnJlYWRfcmVnID0gcmVhZF9yZWc7CiAgICBjdHgtPnJlYWRf bWVtID0gcmVhZF9tZW07CiAgICBjdHgtPmdldF9mcmFtZV9iYXNlID0gbm9fZ2V0X2ZyYW1lX2Jh c2U7CkBAIC0zMjgyLDEyICszMzEzLDkgQEAgaW5kZXggMGY2ZGE0MC4uZmM3MDMwOSAxMDA2NDQK ICAgICAgcmVzdWx0ID0gcmVhZF9yZWcgKHRoaXNfZnJhbWUsIHJlc3VsdCk7CiArICAvKiBGSVhN RSAqLwogIAotLSAgZnJlZV9kd2FyZl9leHByX2NvbnRleHQgKGN0eCk7Ci0rICBkb19jbGVhbnVw cyAob2xkX2NoYWluKTsKKyAgIGRvX2NsZWFudXBzIChvbGRfY2hhaW4pOwogIAotICAgcmV0dXJu IHJlc3VsdDsKLSB9Ci1AQCAtMTI0Nyw2ICsxMjYwLDE0IEBAIGR3YXJmMl9mcmFtZV9iYXNlX3Nu aWZmZXIgKHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lKQorQEAgLTEyNTAsNiArMTI2MCwx NCBAQCBkd2FyZjJfZnJhbWVfYmFzZV9zbmlmZmVyIChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhpc19m cmFtZSkKICAKICAgIHJldHVybiBOVUxMOwogIH0KQEAgLTMzMDIsNyArMzMzMCw3IEBAIGluZGV4 IDBmNmRhNDAuLmZjNzAzMDkgMTAwNjQ0CiAgDAogIGNvbnN0IHN0cnVjdCBvYmpmaWxlX2RhdGEg KmR3YXJmMl9mcmFtZV9vYmpmaWxlX2RhdGE7CiAgCi1AQCAtMTUzNiw2ICsxNTU3LDE0IEBAIGR3 YXJmMl9mcmFtZV9maW5kX2ZkZSAoQ09SRV9BRERSICpwYykKK0BAIC0xNTM5LDYgKzE1NTcsMTQg QEAgZHdhcmYyX2ZyYW1lX2ZpbmRfZmRlIChDT1JFX0FERFIgKnBjKQogICAgICAgIENPUkVfQURE UiBvZmZzZXQ7CiAgICAgICAgQ09SRV9BRERSIHNlZWtfcGM7CiAgCkBAIC0zMzMxLDMzICszMzU5 LDEwIEBAIGluZGV4IGIyMDM2NjEuLmRkMDNkNTkgMTAwNjQ0CiArCiAgI2VuZGlmIC8qIGR3YXJm Mi1mcmFtZS5oICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmV4cHIuYyBiL2dkYi9kd2FyZjJl eHByLmMKLWluZGV4IDhkYmY5NzYuLjIyOGVhZTcgMTAwNjQ0CitpbmRleCAyNzIxMDY1Li4yMjhl YWU3IDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMmV4cHIuYwogKysrIGIvZ2RiL2R3YXJmMmV4cHIu YwotQEAgLTYxLDYgKzYxLDIyIEBAIGZyZWVfZHdhcmZfZXhwcl9jb250ZXh0IChzdHJ1Y3QgZHdh cmZfZXhwcl9jb250ZXh0ICpjdHgpCi0gICB4ZnJlZSAoY3R4KTsKLSB9Ci0gCi0rLyogSGVscGVy IGZvciBtYWtlX2NsZWFudXBfZnJlZV9kd2FyZl9leHByX2NvbnRleHQuICAqLwotKwotK3N0YXRp YyB2b2lkCi0rZnJlZV9kd2FyZl9leHByX2NvbnRleHRfY2xlYW51cCAodm9pZCAqYXJnKQotK3sK LSsgIGZyZWVfZHdhcmZfZXhwcl9jb250ZXh0IChhcmcpOwotK30KLSsKLSsvKiBSZXR1cm4gYSBj bGVhbnVwIHRoYXQgY2FsbHMgZnJlZV9kd2FyZl9leHByX2NvbnRleHQuICAqLwotKwotK3N0cnVj dCBjbGVhbnVwICoKLSttYWtlX2NsZWFudXBfZnJlZV9kd2FyZl9leHByX2NvbnRleHQgKHN0cnVj dCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCkKLSt7Ci0rICByZXR1cm4gbWFrZV9jbGVhbnVwIChm cmVlX2R3YXJmX2V4cHJfY29udGV4dF9jbGVhbnVwLCBjdHgpOwotK30KLSsKLSAvKiBFeHBhbmQg dGhlIG1lbW9yeSBhbGxvY2F0ZWQgdG8gQ1RYJ3Mgc3RhY2sgdG8gY29udGFpbiBhdCBsZWFzdAot ICAgIE5FRUQgbW9yZSBlbGVtZW50cyB0aGFuIGFyZSBjdXJyZW50bHkgdXNlZC4gICovCi0gCi1A QCAtMTA5LDggKzEyNSw3IEBAIGR3YXJmX2V4cHJfZmV0Y2ggKHN0cnVjdCBkd2FyZl9leHByX2Nv bnRleHQgKmN0eCwgaW50IG4pCitAQCAtMTI1LDggKzEyNSw3IEBAIGR3YXJmX2V4cHJfZmV0Y2gg KHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwgaW50IG4pCiAgCiAgLyogQWRkIGEgbmV3 IHBpZWNlIHRvIENUWCdzIHBpZWNlIGxpc3QuICAqLwogIHN0YXRpYyB2b2lkCkBAIC0zMzY3LDcg KzMzNzIsNyBAQCBpbmRleCA4ZGJmOTc2Li4yMjhlYWU3IDEwMDY0NAogIHsKICAgIHN0cnVjdCBk d2FyZl9leHByX3BpZWNlICpwOwogIAotQEAgLTEyNSw5ICsxNDAsMTUgQEAgYWRkX3BpZWNlIChz dHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgsCitAQCAtMTQxLDkgKzE0MCwxNSBAQCBhZGRf cGllY2UgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqIHNpemVvZiAoc3RydWN0IGR3YXJmX2V4cHJfcGllY2UpKTsKICAKICAgIHAg PSAmY3R4LT5waWVjZXNbY3R4LT5udW1fcGllY2VzIC0gMV07CkBAIC0zMzg1LDcgKzMzOTAsNyBA QCBpbmRleCA4ZGJmOTc2Li4yMjhlYWU3IDEwMDY0NAogIH0KICAKICAvKiBFdmFsdWF0ZSB0aGUg ZXhwcmVzc2lvbiBhdCBBRERSIChMRU4gYnl0ZXMgbG9uZykgdXNpbmcgdGhlIGNvbnRleHQKLUBA IC0yNzEsNiArMjkyLDIxIEBAIHNpZ25lZF9hZGRyZXNzX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLCBpbnQgYWRkcl9zaXplKQorQEAgLTI4Nyw2ICsyOTIsMjEgQEAgc2lnbmVkX2FkZHJl c3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCBhZGRyX3NpemUpCiAgICAgIH0K ICB9CiAgDApAQCAtMzQwNyw3ICszNDEyLDcgQEAgaW5kZXggOGRiZjk3Ni4uMjI4ZWFlNyAxMDA2 NDQKICAvKiBUaGUgZW5naW5lIGZvciB0aGUgZXhwcmVzc2lvbiBldmFsdWF0b3IuICBVc2luZyB0 aGUgY29udGV4dCBpbiBDVFgsCiAgICAgZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24gYmV0d2VlbiBP UF9QVFIgYW5kIE9QX0VORC4gICovCiAgCi1AQCAtMjc5LDggKzMxNSw3IEBAIGV4ZWN1dGVfc3Rh Y2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKK0BAIC0yOTUsOCArMzE1LDcg QEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAogIAkJ ICBnZGJfYnl0ZSAqb3BfcHRyLCBnZGJfYnl0ZSAqb3BfZW5kKQogIHsKICAgIGVudW0gYmZkX2Vu ZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChjdHgtPmdkYmFyY2gpOwpAQCAt MzQxNyw3ICszNDIyLDcgQEAgaW5kZXggOGRiZjk3Ni4uMjI4ZWFlNyAxMDA2NDQKICAgIGN0eC0+ aW5pdGlhbGl6ZWQgPSAxOyAgLyogRGVmYXVsdCBpcyBpbml0aWFsaXplZC4gICovCiAgCiAgICBp ZiAoY3R4LT5yZWN1cnNpb25fZGVwdGggPiBjdHgtPm1heF9yZWN1cnNpb25fZGVwdGgpCi1AQCAt NDIwLDIwICs0NTUsMzYgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3YXJmX2V4cHJfY29u dGV4dCAqY3R4LAorQEAgLTQzNiwyMCArNDU1LDM2IEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0cnVj dCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKICAJCSAgICJ1c2VkIGVpdGhlciBhbG9uZSBvciBp biBjb25qdWN0aW9uIHdpdGggRFdfT1BfcGllY2UuIikpOwogIAogIAkgIHJlc3VsdCA9IG9wIC0g RFdfT1BfcmVnMDsKQEAgLTM0NjAsNyArMzQ2NSw3IEBAIGluZGV4IDhkYmY5NzYuLjIyOGVhZTcg MTAwNjQ0CiAgCWNhc2UgRFdfT1BfYnJlZzA6CiAgCWNhc2UgRFdfT1BfYnJlZzE6CiAgCWNhc2Ug RFdfT1BfYnJlZzI6Ci1AQCAtNDk4LDExICs1NDksMTIgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3Ry dWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAorQEAgLTUxNCwxMSArNTQ5LDEyIEBAIGV4ZWN1 dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKICAJICAgIChjdHgt PmdldF9mcmFtZV9iYXNlKSAoY3R4LT5iYXRvbiwgJmRhdGFzdGFydCwgJmRhdGFsZW4pOwogIAkg ICAgZHdhcmZfZXhwcl9ldmFsIChjdHgsIGRhdGFzdGFydCwgZGF0YWxlbik7CiAgCSAgICByZXN1 bHQgPSBkd2FyZl9leHByX2ZldGNoIChjdHgsIDApOwpAQCAtMzQ3NSw3ICszNDgwLDcgQEAgaW5k ZXggOGRiZjk3Ni4uMjI4ZWFlNyAxMDA2NDQKICAJICB9CiAgCSAgYnJlYWs7CiAgCWNhc2UgRFdf T1BfZHVwOgotQEAgLTcwMCw2ICs3NTIsMTAgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3 YXJmX2V4cHJfY29udGV4dCAqY3R4LAorQEAgLTcxNiw2ICs3NTIsMTAgQEAgZXhlY3V0ZV9zdGFj a19vcCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAogIAkgIH0KICAJICBicmVhazsK ICAKQEAgLTM0ODYsNyArMzQ5MSw3IEBAIGluZGV4IDhkYmY5NzYuLjIyOGVhZTcgMTAwNjQ0CiAg CWNhc2UgRFdfT1BfR05VX3B1c2hfdGxzX2FkZHJlc3M6CiAgCSAgLyogVmFyaWFibGUgaXMgYXQg YSBjb25zdGFudCBvZmZzZXQgaW4gdGhlIHRocmVhZC1sb2NhbAogIAkgIHN0b3JhZ2UgYmxvY2sg aW50byB0aGUgb2JqZmlsZSBmb3IgdGhlIGN1cnJlbnQgdGhyZWFkIGFuZAotQEAgLTczOCwxMiAr Nzk0LDEzIEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0 eCwKK0BAIC03NTQsMTIgKzc5NCwxMyBAQCBleGVjdXRlX3N0YWNrX29wIChzdHJ1Y3QgZHdhcmZf ZXhwcl9jb250ZXh0ICpjdHgsCiAgCiAgICAgICAgICAgICAgLyogUmVjb3JkIHRoZSBwaWVjZS4g ICovCiAgICAgICAgICAgICAgb3BfcHRyID0gcmVhZF91bGViMTI4IChvcF9wdHIsIG9wX2VuZCwg JnNpemUpOwpAQCAtMzUwNSw3ICszNTEwLDcgQEAgaW5kZXggOGRiZjk3Ni4uMjI4ZWFlNyAxMDA2 NDQKICAgICAgICAgICAgfQogICAgICAgICAgICBnb3RvIG5vX3B1c2g7CiAgCi1AQCAtNzU1LDYg KzgxMiwxMyBAQCBleGVjdXRlX3N0YWNrX29wIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpj dHgsCitAQCAtNzcxLDYgKzgxMiwxMyBAQCBleGVjdXRlX3N0YWNrX29wIChzdHJ1Y3QgZHdhcmZf ZXhwcl9jb250ZXh0ICpjdHgsCiAgCSAgY3R4LT5pbml0aWFsaXplZCA9IDA7CiAgCSAgZ290byBu b19wdXNoOwogIApAQCAtMzUyMCw3ICszNTI1LDcgQEAgaW5kZXggOGRiZjk3Ni4uMjI4ZWFlNyAx MDA2NDQKICAJICBlcnJvciAoXygiVW5oYW5kbGVkIGR3YXJmIGV4cHJlc3Npb24gb3Bjb2RlIDB4 JXgiKSwgb3ApOwogIAl9CiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmV4cHIuaCBiL2dkYi9kd2Fy ZjJleHByLmgKLWluZGV4IDcwNDc5MjIuLjU5N2MyZGUgMTAwNjQ0CitpbmRleCAyMzA2ZTQ5Li41 OTdjMmRlIDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMmV4cHIuaAogKysrIGIvZ2RiL2R3YXJmMmV4 cHIuaAogQEAgLTIzLDYgKzIzLDE5IEBACkBAIC0zNjQyLDE3ICszNjQ3LDggQEAgaW5kZXggNzA0 NzkyMi4uNTk3YzJkZSAxMDA2NDQKICAKICAgIC8qIFRoZSBsZW5ndGggb2YgdGhlIHBpZWNlLCBp biBieXRlcy4gICovCiAgICBVTE9OR0VTVCBzaXplOwotQEAgLTEzMSw2ICsxNTksOCBAQCBzdHJ1 Y3QgZHdhcmZfZXhwcl9waWVjZQotIAotIHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKm5ld19k d2FyZl9leHByX2NvbnRleHQgKHZvaWQpOwotIHZvaWQgZnJlZV9kd2FyZl9leHByX2NvbnRleHQg KHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCk7Ci0rc3RydWN0IGNsZWFudXAgKgotKyAg ICBtYWtlX2NsZWFudXBfZnJlZV9kd2FyZl9leHByX2NvbnRleHQgKHN0cnVjdCBkd2FyZl9leHBy X2NvbnRleHQgKmN0eCk7Ci0gCi0gdm9pZCBkd2FyZl9leHByX3B1c2ggKHN0cnVjdCBkd2FyZl9l eHByX2NvbnRleHQgKmN0eCwgQ09SRV9BRERSIHZhbHVlKTsKLSB2b2lkIGR3YXJmX2V4cHJfcG9w IChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgpOwogZGlmZiAtLWdpdCBhL2dkYi9kd2Fy ZjJsb2MuYyBiL2dkYi9kd2FyZjJsb2MuYwotaW5kZXggMDcxYjVhYy4uN2IyZTQ4OCAxMDA2NDQK K2luZGV4IDFkZjZhOWYuLmMxMDEzNzEgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYybG9jLmMKICsr KyBiL2dkYi9kd2FyZjJsb2MuYwogQEAgLTM2LDYgKzM2LDcgQEAKQEAgLTM3OTcsNiArMzc5Myw4 IEBAIGluZGV4IDA3MWI1YWMuLjdiMmU0ODggMTAwNjQ0CiArICBiYXRvbi5vYmplY3RfYWRkcmVz cyA9IG9iamVjdF9hZGRyZXNzOwogKwogKyAgY3R4ID0gbmV3X2R3YXJmX2V4cHJfY29udGV4dCAo KTsKKysgIG1ha2VfY2xlYW51cF9mcmVlX2R3YXJmX2V4cHJfY29udGV4dCAoY3R4KTsKKysKICsg IGN0eC0+Z2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKGJhdG9uLm9iamZpbGUpOwogKyAgY3R4 LT5hZGRyX3NpemUgPSBkd2FyZjJfcGVyX2N1X2FkZHJfc2l6ZSAocGVyX2N1KTsKICsgIGN0eC0+ YmF0b24gPSAmYmF0b247CkBAIC0zODA3LDggKzM4MDUsNiBAQCBpbmRleCAwNzFiNWFjLi43YjJl NDg4IDEwMDY0NAogKyAgY3R4LT5nZXRfdGxzX2FkZHJlc3MgPSBkd2FyZl9leHByX3Rsc19hZGRy ZXNzOwogKyAgY3R4LT5nZXRfb2JqZWN0X2FkZHJlc3MgPSBkd2FyZl9leHByX29iamVjdF9hZGRy ZXNzOwogKwotKyAgbWFrZV9jbGVhbnVwICgobWFrZV9jbGVhbnVwX2Z0eXBlICopIGZyZWVfZHdh cmZfZXhwcl9jb250ZXh0LCBjdHgpOwotKwogKyAgZHdhcmZfZXhwcl9ldmFsIChjdHgsIGRhdGEs IHNpemUpOwogKwogKyAgLyogSXQgd2FzIHVzZWQgb25seSBkdXJpbmcgZHdhcmZfZXhwcl9ldmFs LiAgKi8KQEAgLTM4NDIsMjUgKzM4MzgsMjcgQEAgaW5kZXggMDcxYjVhYy4uN2IyZTQ4OCAxMDA2 NDQKICAvKiBFdmFsdWF0ZSBhIGxvY2F0aW9uIGRlc2NyaXB0aW9uLCBzdGFydGluZyBhdCBEQVRB IGFuZCB3aXRoIGxlbmd0aAogICAgIFNJWkUsIHRvIGZpbmQgdGhlIGN1cnJlbnQgbG9jYXRpb24g b2YgdmFyaWFibGUgVkFSIGluIHRoZSBjb250ZXh0CiAgICAgb2YgRlJBTUUuICAqLwotQEAgLTIx Myw4ICszNDcsOCBAQCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZh ciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorQEAgLTIxMyw5ICszNDcsOCBAQCBkd2FyZjJf ZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lLAogIAkJCSAgc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KQogIHsKICAg IHN0cnVjdCB2YWx1ZSAqcmV0dmFsOwogLSAgc3RydWN0IGR3YXJmX2V4cHJfYmF0b24gYmF0b247 CiAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHg7Ci0rICBzdHJ1Y3QgY2xlYW51cCAq YmFja190byA9IG1ha2VfY2xlYW51cCAobnVsbF9jbGVhbnVwLCAwKTsKKy0gIHN0cnVjdCBjbGVh bnVwICpvbGRfY2hhaW47CisrICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWluID0gbWFrZV9jbGVh bnVwIChudWxsX2NsZWFudXAsIDApOwogIAogICAgaWYgKHNpemUgPT0gMCkKICAgICAgewotQEAg LTIyNCwxOSArMzU4LDggQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3Qgc3ltYm9s ICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKK0BAIC0yMjUsMjEgKzM1OCw4IEBAIGR3 YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVf aW5mbyAqZnJhbWUsCiAgICAgICAgcmV0dXJuIHJldHZhbDsKICAgICAgfQogIAogLSAgYmF0b24u ZnJhbWUgPSBmcmFtZTsKIC0gIGJhdG9uLm9iamZpbGUgPSBkd2FyZjJfcGVyX2N1X29iamZpbGUg KHBlcl9jdSk7Ci0rICBjdHggPSBkd2FyZl9leHByX3ByZXBfY3R4IChmcmFtZSwgZGF0YSwgc2l6 ZSwgcGVyX2N1KTsKLSAKKy0KIC0gIGN0eCA9IG5ld19kd2FyZl9leHByX2NvbnRleHQgKCk7Cist ICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXBfZnJlZV9kd2FyZl9leHByX2NvbnRleHQgKGN0eCk7 CistCiAtICBjdHgtPmdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChiYXRvbi5vYmpmaWxlKTsK IC0gIGN0eC0+YWRkcl9zaXplID0gZHdhcmYyX3Blcl9jdV9hZGRyX3NpemUgKHBlcl9jdSk7CiAt ICBjdHgtPmJhdG9uID0gJmJhdG9uOwpAQCAtMzg2OCwxMiArMzg2NiwxMyBAQCBpbmRleCAwNzFi NWFjLi43YjJlNDg4IDEwMDY0NAogLSAgY3R4LT5yZWFkX21lbSA9IGR3YXJmX2V4cHJfcmVhZF9t ZW07CiAtICBjdHgtPmdldF9mcmFtZV9iYXNlID0gZHdhcmZfZXhwcl9mcmFtZV9iYXNlOwogLSAg Y3R4LT5nZXRfdGxzX2FkZHJlc3MgPSBkd2FyZl9leHByX3Rsc19hZGRyZXNzOwotLQorKyAgY3R4 ID0gZHdhcmZfZXhwcl9wcmVwX2N0eCAoZnJhbWUsIGRhdGEsIHNpemUsIHBlcl9jdSk7CisgCiAt ICBkd2FyZl9leHByX2V2YWwgKGN0eCwgZGF0YSwgc2l6ZSk7CiAgICBpZiAoY3R4LT5udW1fcGll Y2VzID4gMCkKICAgICAgewogICAgICAgIGludCBpOwotQEAgLTI0OCw0MSArMzcxLDEyMCBAQCBk d2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lLAorQEAgLTI1MSwzNiArMzcxLDExNSBAQCBkd2FyZjJfZXZhbHVhdGVfbG9j X2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAogICAg ICAgIGZvciAoaSA9IDA7IGkgPCBjdHgtPm51bV9waWVjZXM7IGkrKykKICAJewogIAkgIHN0cnVj dCBkd2FyZl9leHByX3BpZWNlICpwID0gJmN0eC0+cGllY2VzW2ldOwpAQCAtNDAxMiwxMyArNDAx MSw3IEBAIGluZGV4IDA3MWI1YWMuLjdiMmU0ODggMTAwNjQ0CiAgICAgIH0KICAKICAgIHNldF92 YWx1ZV9pbml0aWFsaXplZCAocmV0dmFsLCBjdHgtPmluaXRpYWxpemVkKTsKLSAKLS0gIGZyZWVf ZHdhcmZfZXhwcl9jb250ZXh0IChjdHgpOwotKyAgZG9fY2xlYW51cHMgKGJhY2tfdG8pOwotIAot ICAgcmV0dXJuIHJldHZhbDsKLSB9Ci1AQCAtMzI3LDYgKzUyOSwxNSBAQCBuZWVkc19mcmFtZV9m cmFtZV9iYXNlICh2b2lkICpiYXRvbiwgZ2RiX2J5dGUgKipzdGFydCwgc2l6ZV90ICogbGVuZ3Ro KQorQEAgLTMzMCw2ICs1MjksMTUgQEAgbmVlZHNfZnJhbWVfZnJhbWVfYmFzZSAodm9pZCAqYmF0 b24sIGdkYl9ieXRlICoqc3RhcnQsIHNpemVfdCAqIGxlbmd0aCkKICAgIG5mX2JhdG9uLT5uZWVk c19mcmFtZSA9IDE7CiAgfQogIApAQCAtNDAzNCwyMCArNDAyNyw3IEBAIGluZGV4IDA3MWI1YWMu LjdiMmU0ODggMTAwNjQ0CiAgLyogVGhyZWFkLWxvY2FsIGFjY2Vzc2VzIGRvIHJlcXVpcmUgYSBm cmFtZS4gICovCiAgc3RhdGljIENPUkVfQUREUgogIG5lZWRzX2ZyYW1lX3Rsc19hZGRyZXNzICh2 b2lkICpiYXRvbiwgQ09SRV9BRERSIG9mZnNldCkKLUBAIC0zNDYsMjEgKzU1NywyNSBAQCBkd2Fy ZjJfbG9jX2Rlc2NfbmVlZHNfZnJhbWUgKGdkYl9ieXRlICpkYXRhLCB1bnNpZ25lZCBzaG9ydCBz aXplLAotICAgc3RydWN0IG5lZWRzX2ZyYW1lX2JhdG9uIGJhdG9uOwotICAgc3RydWN0IGR3YXJm X2V4cHJfY29udGV4dCAqY3R4OwotICAgaW50IGluX3JlZzsKLSsgIHN0cnVjdCBjbGVhbnVwICpv bGRfY2hhaW47Ci0gCi0gICBiYXRvbi5uZWVkc19mcmFtZSA9IDA7Ci0gCi0gICBjdHggPSBuZXdf ZHdhcmZfZXhwcl9jb250ZXh0ICgpOwotKyAgb2xkX2NoYWluID0gbWFrZV9jbGVhbnVwX2ZyZWVf ZHdhcmZfZXhwcl9jb250ZXh0IChjdHgpOwotKwotICAgY3R4LT5nZGJhcmNoID0gZ2V0X29iamZp bGVfYXJjaCAoZHdhcmYyX3Blcl9jdV9vYmpmaWxlIChwZXJfY3UpKTsKLSAgIGN0eC0+YWRkcl9z aXplID0gZHdhcmYyX3Blcl9jdV9hZGRyX3NpemUgKHBlcl9jdSk7Ci0gICBjdHgtPmJhdG9uID0g JmJhdG9uOworQEAgLTM2MiwxMSArNTcwLDEyIEBAIGR3YXJmMl9sb2NfZGVzY19uZWVkc19mcmFt ZSAoZ2RiX2J5dGUgKmRhdGEsIHVuc2lnbmVkIHNob3J0IHNpemUsCiAgICBjdHgtPnJlYWRfcmVn ID0gbmVlZHNfZnJhbWVfcmVhZF9yZWc7CiAgICBjdHgtPnJlYWRfbWVtID0gbmVlZHNfZnJhbWVf cmVhZF9tZW07CiAgICBjdHgtPmdldF9mcmFtZV9iYXNlID0gbmVlZHNfZnJhbWVfZnJhbWVfYmFz ZTsKQEAgLTQwNjEsNyArNDA0MSw3IEBAIGluZGV4IDA3MWI1YWMuLjdiMmU0ODggMTAwNjQ0CiAg CiAgICBpZiAoY3R4LT5udW1fcGllY2VzID4gMCkKICAgICAgewotQEAgLTM2OSwxMSArNTg0LDEx IEBAIGR3YXJmMl9sb2NfZGVzY19uZWVkc19mcmFtZSAoZ2RiX2J5dGUgKmRhdGEsIHVuc2lnbmVk IHNob3J0IHNpemUsCitAQCAtMzc1LDcgKzU4NCw3IEBAIGR3YXJmMl9sb2NfZGVzY19uZWVkc19m cmFtZSAoZ2RiX2J5dGUgKmRhdGEsIHVuc2lnbmVkIHNob3J0IHNpemUsCiAgICAgICAgLyogSWYg dGhlIGxvY2F0aW9uIGhhcyBzZXZlcmFsIHBpZWNlcywgYW5kIGFueSBvZiB0aGVtIGFyZSBpbgog ICAgICAgICAgIHJlZ2lzdGVycywgdGhlbiB3ZSB3aWxsIG5lZWQgYSBmcmFtZSB0byBmZXRjaCB0 aGVtIGZyb20uICAqLwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBjdHgtPm51bV9waWVjZXM7IGkr KykKQEAgLTQwNzAsMTIgKzQwNTAsNyBAQCBpbmRleCAwNzFiNWFjLi43YjJlNDg4IDEwMDY0NAog ICAgICAgICAgICBpbl9yZWcgPSAxOwogICAgICB9CiAgCi0tICBmcmVlX2R3YXJmX2V4cHJfY29u dGV4dCAoY3R4KTsKLSsgIGRvX2NsZWFudXBzIChvbGRfY2hhaW4pOwotIAotICAgcmV0dXJuIGJh dG9uLm5lZWRzX2ZyYW1lIHx8IGluX3JlZzsKLSB9Ci1AQCAtNjAxLDcgKzgxNiw3IEBAIHN0YXRp YyBpbnQKK0BAIC02MDcsNyArODE2LDcgQEAgc3RhdGljIGludAogIGxvY2xpc3RfZGVzY3JpYmVf bG9jYXRpb24gKHN0cnVjdCBzeW1ib2wgKnN5bWJvbCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkK ICB7CiAgICAvKiBGSVhNRTogQ291bGQgcHJpbnQgdGhlIGVudGlyZSBsaXN0IG9mIGxvY2F0aW9u cy4gICovCkBAIC00MDg0LDcgKzQwNTksNyBAQCBpbmRleCAwNzFiNWFjLi43YjJlNDg4IDEwMDY0 NAogICAgcmV0dXJuIDE7CiAgfQogIAotQEAgLTYxNywxNiArODMyLDU2IEBAIGxvY2xpc3RfdHJh Y2Vwb2ludF92YXJfcmVmIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLAorQEAgLTYyMywxNiArODMyLDU2IEBAIGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVm IChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAogICAg ZGF0YSA9IGZpbmRfbG9jYXRpb25fZXhwcmVzc2lvbiAoZGxiYXRvbiwgJnNpemUsIGF4LT5zY29w ZSk7CiAgICBpZiAoZGF0YSA9PSBOVUxMKQpAQCAtNDE2MSw3ICs0MTM2LDcgQEAgaW5kZXggMGJm Y2ZjYS4uMDEwMThkNiAxMDA2NDQKICAKICAjZW5kaWYgLyogZHdhcmYybG9jLmggKi8KIGRpZmYg LS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5kZXggNDQ1YmFi OC4uNjU1NTZjOSAxMDA2NDQKK2luZGV4IDQ0NWJhYjguLjJlMGE0YmMgMTAwNjQ0CiAtLS0gYS9n ZGIvZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCiBAQCAtMSw4ICsxLDcgQEAK QEAgLTQxNzQsNyArNDE0OSw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgCiAg ICAgQWRhcHRlZCBieSBHYXJ5IEZ1bmNrIChnYXJ5QGludHJlcGlkLmNvbSksIEludHJlcGlkIFRl Y2hub2xvZ3ksCiAgICAgSW5jLiAgd2l0aCBzdXBwb3J0IGZyb20gRmxvcmlkYSBTdGF0ZSBVbml2 ZXJzaXR5ICh1bmRlciBjb250cmFjdAotQEAgLTQ4LDYgKzQ3LDExIEBACitAQCAtNDgsNiArNDcs MTIgQEAKICAjaW5jbHVkZSAiZ2RiY21kLmgiCiAgI2luY2x1ZGUgImJsb2NrLmgiCiAgI2luY2x1 ZGUgImFkZHJtYXAuaCIKQEAgLTQxODMsMTAgKzQxNTgsMTEgQEAgaW5kZXggNDQ1YmFiOC4uNjU1 NTZjOSAxMDA2NDQKICsjaW5jbHVkZSAianYtbGFuZy5oIgogKyNpbmNsdWRlICJ0eXBlcHJpbnQu aCIKICsjaW5jbHVkZSAidmVjLmgiCisrI2luY2x1ZGUgImJsb2NrLmgiCiAgCiAgI2luY2x1ZGUg PGZjbnRsLmg+CiAgI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKLUBAIC05Myw3ICs5Nyw3IEBAIHR5 cGVkZWYgc3RydWN0IHB1Ym5hbWVzX2hlYWRlcgorQEAgLTkzLDcgKzk4LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgcHVibmFtZXNfaGVhZGVyCiAgX1BVQk5BTUVTX0hFQURFUjsKICAjZGVmaW5lIF9BQ1RV QUxfUFVCTkFNRVNfSEVBREVSX1NJWkUgMTMKICAKQEAgLTQxOTUsNyArNDE3MSw3IEBAIGluZGV4 IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICAgQmVjYXVzZSBvZiBhbGlnbm1lbnQgY29uc3Ry YWludHMsIHRoaXMgc3RydWN0dXJlIGhhcyBwYWRkaW5nIGFuZCBjYW5ub3QKICAgICBiZSBtYXBw ZWQgZGlyZWN0bHkgb250byB0aGUgYmVnaW5uaW5nIG9mIHRoZSAuZGVidWdfaW5mbyBzZWN0aW9u LiAgKi8KICB0eXBlZGVmIHN0cnVjdCBhcmFuZ2VzX2hlYWRlcgotQEAgLTE1MCw3ICsxNTQsMTAg QEAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8KK0BAIC0xNTAsNyArMTU1LDEwIEBAIHN0cnVj dCBkd2FyZjJfc2VjdGlvbl9pbmZvCiAgICBhc2VjdGlvbiAqYXNlY3Rpb247CiAgICBnZGJfYnl0 ZSAqYnVmZmVyOwogICAgYmZkX3NpemVfdHlwZSBzaXplOwpAQCAtNDIwNyw3ICs0MTgzLDI3IEBA IGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgfTsKICAKICBzdHJ1Y3QgZHdhcmYyX3Bl cl9vYmpmaWxlCi1AQCAtNDc0LDggKzQ4MSw4IEBAIHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvCitA QCAtMzM2LDYgKzM0NCwxOSBAQCBzdHJ1Y3QgZHdhcmYyX2N1CisgCisgICAvKiBGaWVsZCBgcmFu Z2VzX29mZnNldCcgaXMgZmlsbGVkIGluOyBmbGFnIGFzIHRoZSB2YWx1ZSBtYXkgYmUgemVyby4g ICovCisgICB1bnNpZ25lZCBpbnQgaGFzX3Jhbmdlc19vZmZzZXQgOiAxOworKworKyAgLyogRmll bGRzIGFyZSB2YWxpZCBhY2NvcmRpbmcgdG8gdGhlIExBTkdVQUdFIGZpZWxkLiAgKi8KKysgIHVu aW9uCisrICAgIHsKKysgICAgICAvKiBsYW5ndWFnZV9mb3J0cmFuICovCisrICAgICAgc3RydWN0 CisrICAgICAgICB7CisrCSAgLyogTW9kdWxlIG5hbWVzIGltcG9ydGVkIHRvIHRoZSBibG9jayBi ZWluZyBjdXJyZW50bHkgcmVhZCBpbi4gICovCisrCSAgc3RydWN0IGZvcnRyYW5fdXNpbmcgKnVz ZTsKKysJfQorKyAgICAgIGZvcnRyYW47CisrICAgIH0KKysgIGxhbmd1YWdlX3NwZWNpZmljOwor IH07CisgCisgLyogUGVyc2lzdGVudCBkYXRhIGhlbGQgZm9yIGEgY29tcGlsYXRpb24gdW5pdCwg ZXZlbiB3aGVuIG5vdAorQEAgLTQ3NCw4ICs0OTUsOCBAQCBzdHJ1Y3QgcGFydGlhbF9kaWVfaW5m bwogICAgICAvKiBEV0FSRi0yIHRhZyBmb3IgdGhpcyBESUUuICAqLwogICAgICBFTlVNX0JJVEZJ RUxEKGR3YXJmX3RhZykgdGFnIDogMTY7CiAgCkBAIC00MjE4LDcgKzQyMTQsNyBAQCBpbmRleCA0 NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgICB1bnNpZ25lZCBpbnQgbGFuZ3VhZ2UgOiA4Owog IAogICAgICAvKiBBc3NvcnRlZCBmbGFncyBkZXNjcmliaW5nIHRoZSBkYXRhIGZvdW5kIGluIHRo aXMgRElFLiAgKi8KLUBAIC00OTUsOCArNTAyLDcgQEAgc3RydWN0IHBhcnRpYWxfZGllX2luZm8K K0BAIC00OTUsOCArNTE2LDcgQEAgc3RydWN0IHBhcnRpYWxfZGllX2luZm8KICAgICAgdW5zaWdu ZWQgaW50IGhhc19ieXRlX3NpemUgOiAxOwogIAogICAgICAvKiBUaGUgbmFtZSBvZiB0aGlzIERJ RS4gIE5vcm1hbGx5IHRoZSB2YWx1ZSBvZiBEV19BVF9uYW1lLCBidXQKQEAgLTQyMjgsNyArNDIy NCw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICAgIGNoYXIgKm5hbWU7CiAg ICAgIGNoYXIgKmRpcm5hbWU7CiAgCi1AQCAtNjkxLDYgKzY5NywxMSBAQCBzdHJ1Y3QgZmllbGRf aW5mbworQEAgLTY5MSw2ICs3MTEsMTEgQEAgc3RydWN0IGZpZWxkX2luZm8KICAgICAgaW50IG5m bmZpZWxkczsKICAgIH07CiAgCkBAIC00MjQwLDcgKzQyMzYsNyBAQCBpbmRleCA0NDViYWI4Li42 NTU1NmM5IDEwMDY0NAogIC8qIE9uZSBpdGVtIG9uIHRoZSBxdWV1ZSBvZiBjb21waWxhdGlvbiB1 bml0cyB0byByZWFkIGluIGZ1bGwgc3ltYm9scwogICAgIGZvci4gICovCiAgc3RydWN0IGR3YXJm Ml9xdWV1ZV9pdGVtCi1AQCAtODAyLDcgKzgxMywxMCBAQCBzdGF0aWMgdm9pZCBzY2FuX3BhcnRp YWxfc3ltYm9scyAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKiwKK0BAIC04MDIsNyArODI3LDEw IEBAIHN0YXRpYyB2b2lkIHNjYW5fcGFydGlhbF9zeW1ib2xzIChzdHJ1Y3QgcGFydGlhbF9kaWVf aW5mbyAqLAogIHN0YXRpYyB2b2lkIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKiwKICAJCQkJc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKQEAgLTQyNTIsNyArNDI0 OCw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgCiAgc3RhdGljIHZvaWQgYWRk X3BhcnRpYWxfbmFtZXNwYWNlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkJCQkg ICBDT1JFX0FERFIgKmxvd3BjLCBDT1JFX0FERFIgKmhpZ2hwYywKLUBAIC04MjcsNiArODQxLDEw IEBAIHN0YXRpYyB2b2lkIGR3YXJmMl9wc3ltdGFiX3RvX3N5bXRhYiAoc3RydWN0IHBhcnRpYWxf c3ltdGFiICopOworQEAgLTgyNyw2ICs4NTUsMTAgQEAgc3RhdGljIHZvaWQgZHdhcmYyX3BzeW10 YWJfdG9fc3ltdGFiIChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7CiAgCiAgc3RhdGljIHZvaWQg cHN5bXRhYl90b19zeW10YWJfMSAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwogIApAQCAtNDI2 Myw3ICs0MjU5LDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICBzdGF0aWMgdm9p ZCBkd2FyZjJfcmVhZF9hYmJyZXZzIChiZmQgKmFiZmQsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsK ICAKICBzdGF0aWMgdm9pZCBkd2FyZjJfZnJlZV9hYmJyZXZfdGFibGUgKHZvaWQgKik7Ci1AQCAt OTQ3LDggKzk2NSwxMyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKnRhZ190eXBlX3RvX3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOworQEAgLTk0Nyw4ICs5NzksMTMg QEAgc3RhdGljIHN0cnVjdCB0eXBlICp0YWdfdHlwZV90b190eXBlIChzdHJ1Y3QgZGllX2luZm8g Kiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKnJlYWRfdHlw ZV9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIApAQCAtNDI3 Nyw3ICs0MjczLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICBzdGF0aWMgY2hh ciAqdHlwZW5hbWVfY29uY2F0IChzdHJ1Y3Qgb2JzdGFjayAqLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnByZWZpeCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqc3VmZml4LAotQEAgLTk2Niw3ICs5ODksOCBAQCBzdGF0aWMg aW50IGR3YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQsIENPUkVfQUREUiAqLCBDT1JFX0FERFIg KiwKK0BAIC05NjYsNyArMTAwMyw4IEBAIHN0YXRpYyBpbnQgZHdhcmYyX3Jhbmdlc19yZWFkICh1 bnNpZ25lZCwgQ09SRV9BRERSICosIENPUkVfQUREUiAqLAogIAkJCSAgICAgICBzdHJ1Y3QgZHdh cmYyX2N1ICosIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqKTsKICAKICBzdGF0aWMgaW50IGR3YXJm Ml9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKiwKQEAgLTQyODcsNyArNDI4Myw3IEBA IGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgCiAgc3RhdGljIHZvaWQgZ2V0X3Njb3Bl X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICosCiAgCQkJCSBDT1JFX0FERFIgKiwgQ09SRV9B RERSICosCi1AQCAtOTkwLDEzICsxMDE0LDEyIEBAIHN0YXRpYyB2b2lkIGR3YXJmMl9hdHRhY2hf Zm5fZmllbGRzX3RvX3R5cGUgKHN0cnVjdCBmaWVsZF9pbmZvICosCitAQCAtOTkwLDE3ICsxMDI4 LDI1IEBAIHN0YXRpYyB2b2lkIGR3YXJmMl9hdHRhY2hfZm5fZmllbGRzX3RvX3R5cGUgKHN0cnVj dCBmaWVsZF9pbmZvICosCiAgCiAgc3RhdGljIHZvaWQgcHJvY2Vzc19zdHJ1Y3R1cmVfc2NvcGUg KHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIApAQCAtNDMwMyw3ICs0 Mjk5LDMwIEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgc3RhdGljIHZvaWQgcmVh ZF9tb2R1bGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7CiAg CiAgc3RhdGljIHZvaWQgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqKTsKLUBAIC0xMDc4LDcgKzExMDEsOCBAQCBzdGF0aWMgaW50 IGlzX3JlZl9hdHRyIChzdHJ1Y3QgYXR0cmlidXRlICopOworIAorK3N0YXRpYyBzdHJ1Y3QgdHlw ZSAqcmVhZF9tb2R1bGVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsCisrCQkJCSAgICAgIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KTsKKysKKytzdGF0aWMgdm9pZCByZWFkX2ZvcnRyYW5faW1wb3J0 ZWRfbW9kdWxlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKKysJCQkJCSAgc3RydWN0IGR3YXJmMl9j dSAqY3UpOworKworK3N0YXRpYyB2b2lkIHJlYWRfZm9ydHJhbl9pbXBvcnRlZF9kZWNsYXJhdGlv biAoc3RydWN0IGRpZV9pbmZvICpkaWUsCisrCQkJCQkgICAgICAgc3RydWN0IGR3YXJmMl9jdSAq Y3UpOworKworIHN0YXRpYyBjb25zdCBjaGFyICpuYW1lc3BhY2VfbmFtZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsCisgCQkJCSAgIGludCAqaXNfYW5vbnltb3VzLCBzdHJ1Y3QgZHdhcmYyX2N1ICop OworIAorQEAgLTEwMzYsNiArMTA4Miw5IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfZGllIChzdHJ1 Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKKyAKKyBzdGF0aWMgY2hhciAqZHdh cmYyX2xpbmthZ2VfbmFtZSAoc3RydWN0IGRpZV9pbmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7 CisgCisrc3RhdGljIGNoYXIgKmZvcnRyYW5fbW9kdWxlX2xpbmthZ2VfbmFtZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsCisrCQkJCQkgIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKKysKKyBzdGF0aWMg Y2hhciAqZHdhcmYyX2Nhbm9uaWNhbGl6ZV9uYW1lIChjaGFyICosIHN0cnVjdCBkd2FyZjJfY3Ug KiwKKyAJCQkJICAgICAgIHN0cnVjdCBvYnN0YWNrICopOworIAorQEAgLTEwNzgsNyArMTEyNyw4 IEBAIHN0YXRpYyBpbnQgaXNfcmVmX2F0dHIgKHN0cnVjdCBhdHRyaWJ1dGUgKik7CiAgCiAgc3Rh dGljIHVuc2lnbmVkIGludCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3QgYXR0cmli dXRlICopOwogIApAQCAtNDMxMyw3ICs0MzMyLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAx MDA2NDQKICAKICBzdGF0aWMgc3RydWN0IGRpZV9pbmZvICpmb2xsb3dfZGllX3JlZl9vcl9zaWcg KHN0cnVjdCBkaWVfaW5mbyAqLAogIAkJCQkJICAgICAgIHN0cnVjdCBhdHRyaWJ1dGUgKiwKLUBA IC0xMTUwLDYgKzExNzQsOSBAQCBzdGF0aWMgdm9pZCBhZ2VfY2FjaGVkX2NvbXBfdW5pdHMgKHZv aWQpOworQEAgLTExNTAsNiArMTIwMCw5IEBAIHN0YXRpYyB2b2lkIGFnZV9jYWNoZWRfY29tcF91 bml0cyAodm9pZCk7CiAgCiAgc3RhdGljIHZvaWQgZnJlZV9vbmVfY2FjaGVkX2NvbXBfdW5pdCAo dm9pZCAqKTsKICAKQEAgLTQzMjMsNyArNDM0Miw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2Yzkg MTAwNjQ0CiAgc3RhdGljIHN0cnVjdCB0eXBlICpzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqLCBzdHJ1Y3QgdHlwZSAqLAogIAkJCQkgIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCi1AQCAt MTE2OSwyMiArMTE5NiwzMSBAQCBzdGF0aWMgdm9pZCBkd2FyZjJfY2xlYXJfbWFya3MgKHN0cnVj dCBkd2FyZjJfcGVyX2N1X2RhdGEgKik7CitAQCAtMTE2OSwyMiArMTIyMiwzMSBAQCBzdGF0aWMg dm9pZCBkd2FyZjJfY2xlYXJfbWFya3MgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKik7CiAg CiAgc3RhdGljIHN0cnVjdCB0eXBlICpnZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7CiAgCkBAIC00MzY0LDcgKzQzODMsNyBAQCBpbmRleCA0 NDViYWI4Li42NTU1NmM5IDEwMDY0NAogIH0KICAKICAvKiBXaGVuIGxvYWRpbmcgc2VjdGlvbnMs IHdlIGNhbiBlaXRoZXIgbG9vayBmb3IgIi48bmFtZT4iLCBvciBmb3IKLUBAIC0xMjc3LDEwICsx MzEzLDEzIEBAIGR3YXJmMl9sb2NhdGVfc2VjdGlvbnMgKGJmZCAqYWJmZCwgYXNlY3Rpb24gKnNl Y3RwLCB2b2lkICppZ25vcmVfcHRyKQorQEAgLTEyNzcsMTAgKzEzMzksMTMgQEAgZHdhcmYyX2xv Y2F0ZV9zZWN0aW9ucyAoYmZkICphYmZkLCBhc2VjdGlvbiAqc2VjdHAsIHZvaWQgKmlnbm9yZV9w dHIpCiAgfQogIAogIC8qIERlY29tcHJlc3MgYSBzZWN0aW9uIHRoYXQgd2FzIGNvbXByZXNzZWQg dXNpbmcgemxpYi4gIFN0b3JlIHRoZQpAQCAtNDM4MCw3ICs0Mzk5LDcgQEAgaW5kZXggNDQ1YmFi OC4uNjU1NTZjOSAxMDA2NDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RiX2J5dGUgKipv dXRidWYsIGJmZF9zaXplX3R5cGUgKm91dHNpemUpCiAgewogICAgYmZkICphYmZkID0gb2JqZmls ZS0+b2JmZDsKLUBAIC0xMjk3LDYgKzEzMzYsNyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKK0BAIC0xMjk3LDYgKzEz NjIsNyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs IGFzZWN0aW9uICpzZWN0cCwKICAgIHpfc3RyZWFtIHN0cm07CiAgICBpbnQgcmM7CiAgICBpbnQg aGVhZGVyX3NpemUgPSAxMjsKQEAgLTQzODgsNyArNDQwNyw3IEBAIGluZGV4IDQ0NWJhYjguLjY1 NTU2YzkgMTAwNjQ0CiAgCiAgICBpZiAoYmZkX3NlZWsgKGFiZmQsIHNlY3RwLT5maWxlcG9zLCBT RUVLX1NFVCkgIT0gMAogICAgICAgIHx8IGJmZF9icmVhZCAoY29tcHJlc3NlZF9idWZmZXIsIGNv bXByZXNzZWRfc2l6ZSwgYWJmZCkgIT0gY29tcHJlc3NlZF9zaXplKQotQEAgLTEzMjYsOCArMTM2 NiwxMyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs IGFzZWN0aW9uICpzZWN0cCwKK0BAIC0xMzI2LDggKzEzOTIsMTMgQEAgemxpYl9kZWNvbXByZXNz X3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2VjdHAsCiAgICBz dHJtLmF2YWlsX2luID0gY29tcHJlc3NlZF9zaXplIC0gaGVhZGVyX3NpemU7CiAgICBzdHJtLm5l eHRfaW4gPSAoQnl0ZWYqKSBjb21wcmVzc2VkX2J1ZmZlciArIGhlYWRlcl9zaXplOwogICAgc3Ry bS5hdmFpbF9vdXQgPSB1bmNvbXByZXNzZWRfc2l6ZTsKQEAgLTQ0MDQsNyArNDQyMyw3IEBAIGlu ZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICByYyA9IGluZmxhdGVJbml0ICgmc3RybSk7 CiAgICB3aGlsZSAoc3RybS5hdmFpbF9pbiA+IDApCiAgICAgIHsKLUBAIC0xMzQ4LDI2ICsxMzkz LDEzNiBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs IGFzZWN0aW9uICpzZWN0cCwKK0BAIC0xMzQ4LDI2ICsxNDE5LDE3NiBAQCB6bGliX2RlY29tcHJl c3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKICAg ICAgZXJyb3IgKF8oIkR3YXJmIEVycm9yOiBjb25jbHVkaW5nIERXQVJGIHVuY29tcHJlc3Npb24g aW4gJyVzJzogJWQiKSwKICAgICAgICAgICAgIGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpLCByYyk7 CiAgCkBAIC00NDYwLDkgKzQ0NzksMjggQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQK ICsgICAgICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZCwgc2VnbWVudF9zaXplLCBkZWx0YTsKICsg ICAgICBMT05HRVNUIGluZm9fb2Zmc2V0OwogKyAgICAgIHN0cnVjdCBkd2FyZjJfY3UgY3U7Cisr ICAgICAgY2hhciAqZW5kX3B0cjsKICsKICsgICAgICBjdV9oZWFkZXIuaW5pdGlhbF9sZW5ndGhf c2l6ZSA9IDA7CisrICAgICAgZW5kX3B0ciA9IGFyYW5nZXNfcHRyOwogKyAgICAgIGFyYW5nZXNf cHRyID0gcmVhZF9jb21wX3VuaXRfaGVhZCAoJmN1X2hlYWRlciwgYXJhbmdlc19wdHIsIGFiZmQp OworKyAgICAgIGVuZF9wdHIgKz0gY3VfaGVhZGVyLmluaXRpYWxfbGVuZ3RoX3NpemUgKyBjdV9o ZWFkZXIubGVuZ3RoOworKworKyAgICAgIC8qIFNhbml0eSBjaGVjay4gICovCisrICAgICAgaWYg KGVuZF9wdHIgLSBhcmFuZ2VzX3B0ciA+PSBkd2FyZjJfcGVyX29iamZpbGUtPmFyYW5nZXMuc2l6 ZSkKKysJeworKwkgIGRvX2NsZWFudXBzIChvbGQpOworKwkgIGNvbXBsYWludCAoJnN5bWZpbGVf Y29tcGxhaW50cywKKysJCSAgICAgXygiYXJhbmdlcyBlbnRyeSBydW5zIG9mZiBlbmQgb2YgYC5k ZWJ1Z19hcmFuZ2VzJyBzZWN0aW9uLCBpZ25vcmVkIikpOworKwkgIHJldHVybjsKKysJfQorKyAg ICAgIGlmIChjdV9oZWFkZXIuYWRkcl9zaXplID09IDApCisrCXsKKysJICBkb19jbGVhbnVwcyAo b2xkKTsKKysJICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisrCQkgICAgIF8oImFy YW5nZXMgZW50cnkgaGFzIHplcm8gYWRkcl9zaXplLCBpZ25vcmVkIikpOworKwkgIHJldHVybjsK KysJfQogKwogKyAgICAgIHNlZ21lbnRfc2l6ZSA9IHJlYWRfMV9ieXRlIChhYmZkLCBhcmFuZ2Vz X3B0cik7CiArICAgICAgYXJhbmdlc19wdHIgKz0gMTsKQEAgLTQ0ODksOSArNDUyNywzMCBAQCBp bmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogKwkgIGlmIChhZGRyZXNzID09IDAgJiYgbGVu Z3RoID09IDApCiArCSAgICBicmVhazsKICsKKysJICBpZiAobGVuZ3RoID09IDApCisrCSAgICB7 CisrCSAgICAgIGRvX2NsZWFudXBzIChvbGQpOworKwkgICAgICBjb21wbGFpbnQgKCZzeW1maWxl X2NvbXBsYWludHMsCisrCQkJIF8oImFyYW5nZXMgZW50cnkgaGFzIHplcm8gbGVuZ3RoLCBpZ25v cmVkIikpOworKwkgICAgICByZXR1cm47CisrCSAgICB9CisrCiArCSAgYWRkcmVzcyArPSBiYXNl YWRkcjsKICsKLSsJICBhZGRybWFwX3NldF9lbXB0eSAobXV0YWJsZV9tYXAsIGFkZHJlc3MsIGFk ZHJlc3MgKyBsZW5ndGgsIG9iamZpbGUpOworKwkgIGFkZHJtYXBfc2V0X2VtcHR5IChtdXRhYmxl X21hcCwgYWRkcmVzcywgYWRkcmVzcyArIGxlbmd0aCAtIDEsCisrCQkJICAgICBvYmpmaWxlKTsK KysJfQorKworKyAgICAgIC8qIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgR0NDIGluY29ycmVjdGx5 IHN0YXJ0ZWQgdGhlIGFyYW5nZQorKwkgd2l0aCBhICgwLDApIHBhaXIuICBJZiB3ZSBlbmNvdW50 ZXIgYW55IG9kZGl0eSB3aGlsZSByZWFkaW5nCisrCSB0aGUgc2VjdGlvbiwganVzdCBhYmFuZG9u IHRoZSBhdHRlbXB0OyBmYWxsaW5nIGJhY2sgdG8gdGhlCisrCSBzbG93ZXIgY29kZSBpcyBhbHdh eXMgc2FmZS4gICovCisrICAgICAgaWYgKGFyYW5nZXNfcHRyICE9IGVuZF9wdHIpCisrCXsKKysJ ICBkb19jbGVhbnVwcyAob2xkKTsKKysJICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMs CisrCQkgICAgIF8oImFyYW5nZXMgZW50cnkgZW5kcyBlYXJseSwgaWdub3JlZCIpKTsKKysJICBy ZXR1cm47CiArCX0KICsgICAgfQogKwpAQCAtNDU0Niw3ICs0NjA1LDcgQEAgaW5kZXggNDQ1YmFi OC4uNjU1NTZjOSAxMDA2NDQKICAKICAgIGlmIChpbmZvLT5hc2VjdGlvbiA9PSBOVUxMIHx8IGlu Zm8tPnNpemUgPT0gMCkKICAgICAgcmV0dXJuOwotQEAgLTEzODAsNyArMTUzNSw3IEBAIGR3YXJm Ml9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3Nl Y3Rpb25faW5mbyAqaW5mbykKK0BAIC0xMzgwLDcgKzE2MDEsNyBAQCBkd2FyZjJfcmVhZF9zZWN0 aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8g KmluZm8pCiAgICAgICAgLyogVXBvbiBkZWNvbXByZXNzaW9uLCB1cGRhdGUgdGhlIGJ1ZmZlciBh bmQgaXRzIHNpemUuICAqLwogICAgICAgIGlmIChzdHJuY21wIChoZWFkZXIsICJaTElCIiwgc2l6 ZW9mIChoZWFkZXIpKSA9PSAwKQogICAgICAgICAgewpAQCAtNDU1NSw3ICs0NjE0LDcgQEAgaW5k ZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICAJCQkJICAgJmluZm8tPnNpemUpOwogICAgICAg ICAgICByZXR1cm47CiAgICAgICAgICB9Ci1AQCAtMTQwMyw3ICsxNTU4LDcgQEAgZHdhcmYyX3Jl YWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlv bl9pbmZvICppbmZvKQorQEAgLTE0MDMsNyArMTYyNCw3IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24g KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5m bykKICAKICAgICAgICBpZiAocmV0YnVmICE9IE1BUF9GQUlMRUQpCiAgCXsKQEAgLTQ1NjQsNyAr NDYyMyw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgCSAgaW5mby0+YnVmZmVy ID0gcmV0YnVmICsgKHNlY3RwLT5maWxlcG9zICYgKHBhZ2VzaXplIC0gMSkpIDsKICAJICByZXR1 cm47CiAgCX0KLUBAIC0xNDExLDggKzE1NjYsMTUgQEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICppbmZvKQor QEAgLTE0MTEsOCArMTYzMiwxNSBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCiAgI2VuZGlmCiAg CiAgICAvKiBJZiB3ZSBnZXQgaGVyZSwgd2UgYXJlIGEgbm9ybWFsLCBub3QtY29tcHJlc3NlZCBz ZWN0aW9uLiAgKi8KQEAgLTQ1ODIsNyArNDY0MSw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2Yzkg MTAwNjQ0CiAgCiAgICAvKiBXaGVuIGRlYnVnZ2luZyAubyBmaWxlcywgd2UgbWF5IG5lZWQgdG8g YXBwbHkgcmVsb2NhdGlvbnM7IHNlZQogICAgICAgaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dk Yi1wYXRjaGVzLzIwMDItMDQvbXNnMDAxMzYuaHRtbCAuCi1AQCAtMTQyMSw2ICsxNTgzLDggQEAg ZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2Fy ZjJfc2VjdGlvbl9pbmZvICppbmZvKQorQEAgLTE0MjEsNiArMTY0OSw4IEBAIGR3YXJmMl9yZWFk X3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25f aW5mbyAqaW5mbykKICAgIHJldGJ1ZiA9IHN5bWZpbGVfcmVsb2NhdGVfZGVidWdfc2VjdGlvbiAo YWJmZCwgc2VjdHAsIGJ1Zik7CiAgICBpZiAocmV0YnVmICE9IE5VTEwpCiAgICAgIHsKQEAgLTQ1 OTEsNyArNDY1MCw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICAgICAgaW5m by0+YnVmZmVyID0gcmV0YnVmOwogICAgICAgIHJldHVybjsKICAgICAgfQotQEAgLTE0MjksNiAr MTU5MywxOSBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwg c3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCitAQCAtMTQyOSw2ICsxNjU5LDE5IEBA IGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdh cmYyX3NlY3Rpb25faW5mbyAqaW5mbykKICAgICAgICB8fCBiZmRfYnJlYWQgKGJ1ZiwgaW5mby0+ c2l6ZSwgYWJmZCkgIT0gaW5mby0+c2l6ZSkKICAgICAgZXJyb3IgKF8oIkR3YXJmIEVycm9yOiBD YW4ndCByZWFkIERXQVJGIGRhdGEgZnJvbSAnJXMnIiksCiAgCSAgIGJmZF9nZXRfZmlsZW5hbWUg KGFiZmQpKTsKQEAgLTQ2MTEsNyArNDY3MCw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAw NjQ0CiAgfQogIAogIC8qIEZpbGwgaW4gU0VDVFAsIEJVRlAgYW5kIFNJWkVQIHdpdGggc2VjdGlv biBpbmZvLCBnaXZlbiBPQkpGSUxFIGFuZAotQEAgLTE2NjYsMTEgKzE4NDMsNyBAQCBkd2FyZjJf Y3JlYXRlX2luY2x1ZGVfcHN5bXRhYiAoY2hhciAqbmFtZSwgc3RydWN0IHBhcnRpYWxfc3ltdGFi ICpwc3QsCitAQCAtMTY2NiwxMSArMTkwOSw3IEBAIGR3YXJmMl9jcmVhdGVfaW5jbHVkZV9wc3lt dGFiIChjaGFyICpuYW1lLCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCwKICAKICAvKiBSZWFk IHRoZSBMaW5lIE51bWJlciBQcm9ncmFtIGRhdGEgYW5kIGV4dHJhY3QgdGhlIGxpc3Qgb2YgZmls ZXMKICAgICBpbmNsdWRlZCBieSB0aGUgc291cmNlIGZpbGUgcmVwcmVzZW50ZWQgYnkgUFNULiAg QnVpbGQgYW4gaW5jbHVkZQpAQCAtNDYyNCw3ICs0NjgzLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1 NTZjOSAxMDA2NDQKICAKICBzdGF0aWMgdm9pZAogIGR3YXJmMl9idWlsZF9pbmNsdWRlX3BzeW10 YWJzIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKLUBAIC0xODEyLDYgKzE5ODUsMzcgQEAgbG9va3Vw X3NpZ25hdHVyZWRfdHlwZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIFVMT05HRVNUIHNpZykK K0BAIC0xODEyLDYgKzIwNTEsMzcgQEAgbG9va3VwX3NpZ25hdHVyZWRfdHlwZSAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsIFVMT05HRVNUIHNpZykKICAgIHJldHVybiBlbnRyeTsKICB9CiAgCkBA IC00NjYyLDcgKzQ3MjEsNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogIC8qIFN1 YnJvdXRpbmUgb2YgcHJvY2Vzc190eXBlX2NvbXBfdW5pdCBhbmQgZHdhcmYyX2J1aWxkX3BzeW10 YWJzX2hhcmQKICAgICB0byBjb21iaW5lIHRoZSBjb21tb24gcGFydHMuCiAgICAgUHJvY2VzcyBh IGNvbXBpbGF0aW9uIHVuaXQgZm9yIGEgcHN5bXRhYi4KLUBAIC0xODc4LDcgKzIwODIsNyBAQCBw cm9jZXNzX3BzeW10YWJfY29tcF91bml0IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0x ODc4LDcgKzIxNDgsNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0IChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwKICAgICAgfQogIAogICAgLyogU2V0IHRoZSBsYW5ndWFnZSB3ZSdyZSBkZWJ1 Z2dpbmcuICAqLwpAQCAtNDY3MSw3ICs0NzMwLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAx MDA2NDQKICAKICAgIC8qIEFsbG9jYXRlIGEgbmV3IHBhcnRpYWwgc3ltYm9sIHRhYmxlIHN0cnVj dHVyZS4gICovCiAgICBwc3QgPSBzdGFydF9wc3ltdGFiX2NvbW1vbiAob2JqZmlsZSwgb2JqZmls ZS0+c2VjdGlvbl9vZmZzZXRzLAotQEAgLTE5MjksOCArMjEzMyw4IEBAIHByb2Nlc3NfcHN5bXRh Yl9jb21wX3VuaXQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTE5MjksOCArMjE5OSw4 IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAog ICAgICB9CiAgICBlbHNlIGlmIChjb21wX3VuaXRfZGllLmhhc19wY19pbmZvCiAgCSAgICYmIGNv bXBfdW5pdF9kaWUubG93cGMgPCBjb21wX3VuaXRfZGllLmhpZ2hwYykKQEAgLTQ2ODIsNyArNDc0 MSw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICAgIGFkZHJtYXBfc2V0X2Vt cHR5IChvYmpmaWxlLT5wc3ltdGFic19hZGRybWFwLAogIAkJICAgICAgIGNvbXBfdW5pdF9kaWUu bG93cGMgKyBiYXNlYWRkciwKICAJCSAgICAgICBjb21wX3VuaXRfZGllLmhpZ2hwYyArIGJhc2Vh ZGRyIC0gMSwgcHN0KTsKLUBAIC0yMzYxLDcgKzI1NjUsNyBAQCBwYXJ0aWFsX2RpZV9wYXJlbnRf c2NvcGUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksCitAQCAtMjM2MSw3ICsyNjMxLDcg QEAgcGFydGlhbF9kaWVfcGFyZW50X3Njb3BlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRp LAogIAkgaWdub3JpbmcgdGhlbS4gICovCiAgICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21w bGFpbnRzLAogIAkJIF8oInVuaGFuZGxlZCBjb250YWluaW5nIERJRSB0YWcgJWQgZm9yIERJRSBh dCAlZCIpLApAQCAtNDY5MSw3ICs0NzUwLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2 NDQKICAgICAgICBwYXJlbnQtPnNjb3BlID0gZ3JhbmRwYXJlbnRfc2NvcGU7CiAgICAgIH0KICAK LUBAIC0yMzc2LDEyICsyNTgwLDIyIEBAIHBhcnRpYWxfZGllX2Z1bGxfbmFtZSAoc3RydWN0IHBh cnRpYWxfZGllX2luZm8gKnBkaSwKK0BAIC0yMzc2LDEyICsyNjQ2LDIyIEBAIHBhcnRpYWxfZGll X2Z1bGxfbmFtZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKICAJCSAgICAgICBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBjaGFyICpwYXJlbnRfc2NvcGU7CkBAIC00NzE4LDcg KzQ3NzcsNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogIH0KICAKICBzdGF0aWMg dm9pZAotQEAgLTIzOTcsMTIgKzI2MTEsOSBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBw YXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTIzOTcsMTIg KzI2NzcsOSBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpw ZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAogICAgYmFzZWFkZHIgPSBBTk9GRlNFVCAob2Jq ZmlsZS0+c2VjdGlvbl9vZmZzZXRzLCBTRUNUX09GRl9URVhUIChvYmpmaWxlKSk7CiAgCkBAIC00 NzM0LDcgKzQ3OTMsMjAgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICAKICAgIGlm IChhY3R1YWxfbmFtZSA9PSBOVUxMKQogICAgICBhY3R1YWxfbmFtZSA9IHBkaS0+bmFtZTsKLUBA IC0yNTM0LDIyICsyNzQ1LDYgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9k aWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0yNDkzLDYgKzI3NzAsMTIg QEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKKyAJCQkgICAmb2JqZmlsZS0+Z2xvYmFsX3BzeW1ib2xzLAorIAkJ CSAgIDAsIChDT1JFX0FERFIpIDAsIGN1LT5sYW5ndWFnZSwgb2JqZmlsZSk7CisgICAgICAgYnJl YWs7CisrICAgIGNhc2UgRFdfVEFHX21vZHVsZToKKysgICAgICBhZGRfcHN5bWJvbF90b19saXN0 IChhY3R1YWxfbmFtZSwgc3RybGVuIChhY3R1YWxfbmFtZSksCisrCQkJICAgTU9EVUxFX0RPTUFJ TiwgTE9DX1NUQVRJQywKKysJCQkgICAmb2JqZmlsZS0+Z2xvYmFsX3BzeW1ib2xzLAorKwkJCSAg IDAsIChDT1JFX0FERFIpIDAsIGN1LT5sYW5ndWFnZSwgb2JqZmlsZSk7CisrICAgICAgYnJlYWs7 CisgICAgIGNhc2UgRFdfVEFHX2NsYXNzX3R5cGU6CisgICAgIGNhc2UgRFdfVEFHX2ludGVyZmFj ZV90eXBlOgorICAgICBjYXNlIERXX1RBR19zdHJ1Y3R1cmVfdHlwZToKK0BAIC0yNTM0LDIyICsy ODE3LDYgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRp LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBicmVhazsKICAgICAgfQogIApAQCAtNDc1 Nyw3ICs0ODI5LDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICAgIGlmIChidWls dF9hY3R1YWxfbmFtZSkKICAgICAgeGZyZWUgKGFjdHVhbF9uYW1lKTsKICB9Ci1AQCAtMjU1OSw5 ICsyNzU0LDkgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAq cGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0yNTU5LDkgKzI4MjYsOSBAQCBhZGRfcGFy dGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogICAgIG5hbWUgbGlzdGVkIGluIHRoZSBkaWUuICAqLwogIAogIHN0YXRpYyBpbnQK QEAgLTQ3NjksNyArNDg0MSw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICAg IHsKICAgICAgY2FzZSBEV19UQUdfbmFtZXNwYWNlOgogICAgICBjYXNlIERXX1RBR190eXBlZGVm OgotQEAgLTI1NzEsNyArMjc2NiwyMyBAQCBwZGlfbmVlZHNfbmFtZXNwYWNlIChlbnVtIGR3YXJm X3RhZyB0YWcpCitAQCAtMjU3MSw3ICsyODM4LDIzIEBAIHBkaV9uZWVkc19uYW1lc3BhY2UgKGVu dW0gZHdhcmZfdGFnIHRhZykKICAgICAgY2FzZSBEV19UQUdfdW5pb25fdHlwZToKICAgICAgY2Fz ZSBEV19UQUdfZW51bWVyYXRpb25fdHlwZToKICAgICAgY2FzZSBEV19UQUdfZW51bWVyYXRvcjoK QEAgLTQ3OTMsNyArNDg2NSwyNCBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAg ICBkZWZhdWx0OgogICAgICAgIHJldHVybiAwOwogICAgICB9Ci1AQCAtMjcwMCwyNyArMjkxMSw2 IEBAIGd1ZXNzX3N0cnVjdHVyZV9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3RydWN0 X3BkaSwKK0BAIC0yNjA0LDEyICsyODg3LDEyIEBAIHN0YXRpYyB2b2lkCisgYWRkX3BhcnRpYWxf bW9kdWxlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBDT1JFX0FERFIgKmxvd3BjLAor IAkJICAgIENPUkVfQUREUiAqaGlnaHBjLCBpbnQgbmVlZF9wYywgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCisgeworLSAgLyogTm93IHNjYW4gcGFydGlhbCBzeW1ib2xzIGluIHRoYXQgbW9kdWxlLgor KyAgLyogQWRkIGEgc3ltYm9sIGZvciB0aGUgbW9kdWxlLiAgKi8KKyAKKy0gICAgIEZJWE1FOiBT dXBwb3J0IHRoZSBzZXBhcmF0ZSBGb3J0cmFuIG1vZHVsZSBuYW1lc3BhY2VzLiAgKi8KKysgIGFk ZF9wYXJ0aWFsX3N5bWJvbCAocGRpLCBjdSk7CisgCistICBpZiAocGRpLT5oYXNfY2hpbGRyZW4p CistICAgIHNjYW5fcGFydGlhbF9zeW1ib2xzIChwZGktPmRpZV9jaGlsZCwgbG93cGMsIGhpZ2hw YywgbmVlZF9wYywgY3UpOworKyAgLyogUGFydGlhbCBzeW1ib2xzIGluIHRoYXQgbW9kdWxlIGFy ZSBub3Qgc2Nhbm5lZCBhcyB0aGV5IGFyZSBuZXZlciBnbG9iYWxseQorKyAgICAgdmlzaWJsZS4g IFRoZXkgZ2V0IGltcG9ydGVkIHRvIHRoZSBzcGVjaWZpYyBzY29wZXMgb24gdGhlIGZ1bGwgcmVh ZC4gICovCisgfQorIAorIC8qIFJlYWQgYSBwYXJ0aWFsIGRpZSBjb3JyZXNwb25kaW5nIHRvIGEg c3VicHJvZ3JhbSBhbmQgY3JlYXRlIGEgcGFydGlhbAorQEAgLTI3MDAsMjcgKzI5ODMsNiBAQCBn dWVzc19zdHJ1Y3R1cmVfbmFtZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnN0cnVjdF9wZGks CiAgCiAgICAgICAgaWYgKHJlYWxfcGRpLT5kaWVfcGFyZW50ICE9IE5VTEwpCiAgCXJldHVybjsK QEAgLTQ4MjEsNyArNDkxMCw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICAg IH0KICB9CiAgCi1AQCAtMzE3MCw3ICszMzYwLDYgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAo c3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KQorQEAgLTMxNzAsNyArMzQzMiw2IEBA IHByb2Nlc3NfZnVsbF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9j dSkKICAgIENPUkVfQUREUiBsb3dwYywgaGlnaHBjOwogICAgc3RydWN0IHN5bXRhYiAqc3ltdGFi OwogICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CkBAIC00ODI5LDcgKzQ5MTgsNyBAQCBpbmRl eCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgQ09SRV9BRERSIGJhc2VhZGRyOwogIAogICAg YmFzZWFkZHIgPSBBTk9GRlNFVCAob2JqZmlsZS0+c2VjdGlvbl9vZmZzZXRzLCBTRUNUX09GRl9U RVhUIChvYmpmaWxlKSk7Ci1AQCAtMzE4MCwzMCArMzM2OSw3IEBAIHByb2Nlc3NfZnVsbF9jb21w X3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9jdSkKK0BAIC0zMTgwLDMwICsz NDQxLDcgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0 YSAqcGVyX2N1KQogIAogICAgY3UtPmxpc3RfaW5fc2NvcGUgPSAmZmlsZV9zeW1ib2xzOwogIApA QCAtNDg2MSw3ICs0OTUwLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICAKICAg IC8qIERvIGxpbmUgbnVtYmVyIGRlY29kaW5nIGluIHJlYWRfZmlsZV9zY29wZSAoKSAqLwogICAg cHJvY2Vzc19kaWUgKGN1LT5kaWVzLCBjdSk7Ci1AQCAtMzIzNCw2ICszNDAwLDcgQEAgcHJvY2Vz c19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KQorQEAg LTMyMzQsNiArMzQ3Miw3IEBAIHByb2Nlc3NfZnVsbF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJf cGVyX2N1X2RhdGEgKnBlcl9jdSkKICBzdGF0aWMgdm9pZAogIHByb2Nlc3NfZGllIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewpAQCAtNDg2OSw3ICs0OTU4 LDIyIEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICBzd2l0Y2ggKGRpZS0+dGFn KQogICAgICB7CiAgICAgIGNhc2UgRFdfVEFHX3BhZGRpbmc6Ci1AQCAtMzMxMiw0MiArMzQ3OSw2 OSBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTMyOTcsNiArMzUzNiwxNCBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgICBjYXNlIERXX1RBR19pbXBvcnRlZF9k ZWNsYXJhdGlvbjoKKyAgICAgY2FzZSBEV19UQUdfaW1wb3J0ZWRfbW9kdWxlOgorICAgICAgIHBy b2Nlc3NpbmdfaGFzX25hbWVzcGFjZV9pbmZvID0gMTsKKysgICAgICBpZiAoY3UtPmxhbmd1YWdl ID09IGxhbmd1YWdlX2ZvcnRyYW4pCisrCXsKKysJICBpZiAoZGllLT50YWcgPT0gRFdfVEFHX2lt cG9ydGVkX2RlY2xhcmF0aW9uKQorKwkgICAgcmVhZF9mb3J0cmFuX2ltcG9ydGVkX2RlY2xhcmF0 aW9uIChkaWUsIGN1KTsKKysJICBlbHNlCisrCSAgICByZWFkX2ZvcnRyYW5faW1wb3J0ZWRfbW9k dWxlIChkaWUsIGN1KTsKKysJICBicmVhazsKKysJfQorICAgICAgIGlmIChkaWUtPmNoaWxkICE9 IE5VTEwgJiYgKGRpZS0+dGFnID09IERXX1RBR19pbXBvcnRlZF9kZWNsYXJhdGlvbgorIAkJCQkg fHwgY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2ZvcnRyYW4pKQorIAljb21wbGFpbnQgKCZzeW1m aWxlX2NvbXBsYWludHMsIF8oIlRhZyAnJXMnIGhhcyB1bmV4cGVjdGVkIGNoaWxkcmVuIiksCitA QCAtMzMxMiw0MiArMzU1OSw2OSBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIC8qIFJldHVybiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5h bWUgb2YgRElFLCBiYXNlZCBvbiBpdHMgRFdfQVRfbmFtZS4KICAgICBJZiBzY29wZSBxdWFsaWZp ZXJzIGFyZSBhcHByb3ByaWF0ZSB0aGV5IHdpbGwgYmUgYWRkZWQuICBUaGUgcmVzdWx0CiAgICAg d2lsbCBiZSBhbGxvY2F0ZWQgb24gdGhlIG9iamZpbGVfb2JzdGFjaywgb3IgTlVMTCBpZiB0aGUg RElFIGRvZXMKQEAgLTQ5NjEsNyArNTA2NSw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAw NjQ0CiAgCiAgc3RhdGljIHZvaWQKICByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLUBAIC0zMzU2LDkgKzM1NTAsMTUgQEAg cmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCitAQCAtMzM1Niw5ICszNjMwLDE1IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGRp ZV9pbmZvICppbXBvcnRlZF9kaWU7CiAgICBjb25zdCBjaGFyICppbXBvcnRlZF9uYW1lOwogICAg Y29uc3QgY2hhciAqaW1wb3J0ZWRfbmFtZV9wcmVmaXg7CkBAIC00OTc5LDcgKzUwODMsNyBAQCBp bmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgaW1wb3J0X2F0dHIgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9pbXBvcnQsIGN1KTsKICAgIGlmIChpbXBvcnRfYXR0ciA9PSBOVUxMKQog ICAgICB7Ci1AQCAtMzQwNiwyOSArMzYwNiw0NSBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zNDA2LDI5ICsz Njg2LDQ1IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIHJldHVybjsKICAgICAgfQogIApAQCAtNTAzOCw3 ICs1MTQyLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICB9CiAgCiAgc3RhdGlj IHZvaWQKLUBAIC0zNjc2LDcgKzM4OTIsNyBAQCB1bnNpZ25lZF9pbnRfY29tcGFyIChjb25zdCB2 b2lkICphcCwgY29uc3Qgdm9pZCAqYnApCitAQCAtMzY3Niw3ICszOTcyLDcgQEAgdW5zaWduZWRf aW50X2NvbXBhciAoY29uc3Qgdm9pZCAqYXAsIGNvbnN0IHZvaWQgKmJwKQogIAogICAgcmV0dXJu IChhID4gYikgLSAoYiA+IGEpOwogIH0KQEAgLTUwNDcsNyArNTE1MSw3IEBAIGluZGV4IDQ0NWJh YjguLjY1NTU2YzkgMTAwNjQ0CiAgLyogRFdfQVRfYWJzdHJhY3Rfb3JpZ2luIGluaGVyaXRzIHdo b2xlIERJRXMgKG5vdCBqdXN0IHRoZWlyIGF0dHJpYnV0ZXMpLgogICAgIEluaGVyaXQgb25seSB0 aGUgY2hpbGRyZW4gb2YgdGhlIERXX0FUX2Fic3RyYWN0X29yaWdpbiBESUUgbm90IGJlaW5nIGFs cmVhZHkKICAgICByZWZlcmVuY2VkIGJ5IERXX0FUX2Fic3RyYWN0X29yaWdpbiBmcm9tIHRoZSBj aGlsZHJlbiBvZiB0aGUgY3VycmVudCBESUUuICAqLwotQEAgLTM2OTcsNiArMzkxMywxNCBAQCBp bmhlcml0X2Fic3RyYWN0X2RpZXMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKK0BAIC0zNjk3LDYgKzM5OTMsMTQgQEAgaW5oZXJpdF9hYnN0cmFjdF9kaWVzIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgYXR0 cmlidXRlICphdHRyOwogIAogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2Fic3Ry YWN0X29yaWdpbiwgY3UpOwpAQCAtNTA2Miw3ICs1MTY2LDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1 NTZjOSAxMDA2NDQKICAgIGlmICghYXR0cikKICAgICAgcmV0dXJuOwogIAotQEAgLTM3OTUsNiAr NDAxOSw3IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQorQEAgLTM3OTUsNiArNDA5OSw3IEBAIHJlYWRfZnVuY19zY29wZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgY2hhciAqbmFtZTsK ICAgIENPUkVfQUREUiBiYXNlYWRkcjsKICAgIHN0cnVjdCBibG9jayAqYmxvY2s7CkBAIC01MDcw LDcgKzUxNzQsNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgaW50IGlubGlu ZWRfZnVuYyA9IChkaWUtPnRhZyA9PSBEV19UQUdfaW5saW5lZF9zdWJyb3V0aW5lKTsKICAKICAg IGlmIChpbmxpbmVkX2Z1bmMpCi1AQCAtMzgxMywxMyArNDAzOCwyMyBAQCByZWFkX2Z1bmNfc2Nv cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zODEz LDEzICs0MTE4LDIzIEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogIAogICAgYmFzZWFkZHIgPSBBTk9GRlNFVCAob2JqZmlsZS0+ c2VjdGlvbl9vZmZzZXRzLCBTRUNUX09GRl9URVhUIChvYmpmaWxlKSk7CiAgCkBAIC01MDk3LDEz ICs1MjAxLDEyIEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICBsb3dwYyArPSBi YXNlYWRkcjsKICAgIGhpZ2hwYyArPSBiYXNlYWRkcjsKICAKLUBAIC0zODQ2LDE0ICs0MDgxLDEy IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTM4NDYsMTQgKzQxNjEsMTkgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBjdS0+bGlzdF9pbl9z Y29wZSA9ICZsb2NhbF9zeW1ib2xzOwogIAogLSAgaWYgKGRpZS0+Y2hpbGQgIT0gTlVMTCkKLSsg IGNoaWxkX2RpZSA9IGRpZS0+Y2hpbGQ7Ci0rICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2Rp ZS0+dGFnKQorKyAgc3dpdGNoIChjdS0+bGFuZ3VhZ2UpCiAgICAgIHsKIC0gICAgICBjaGlsZF9k aWUgPSBkaWUtPmNoaWxkOwogLSAgICAgIHdoaWxlIChjaGlsZF9kaWUgJiYgY2hpbGRfZGllLT50 YWcpCkBAIC01MTExLDEzICs1MjE0LDM1IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0 CiAtCSAgcHJvY2Vzc19kaWUgKGNoaWxkX2RpZSwgY3UpOwogLQkgIGNoaWxkX2RpZSA9IHNpYmxp bmdfZGllIChjaGlsZF9kaWUpOwogLQl9CisrICAgIGNhc2UgbGFuZ3VhZ2VfZm9ydHJhbjoKKysg ICAgICBjdS0+bGFuZ3VhZ2Vfc3BlY2lmaWMuZm9ydHJhbi51c2UgPSBOVUxMOworKyAgICAgIGJy ZWFrOworKyAgICB9CisrCisrICBjaGlsZF9kaWUgPSBkaWUtPmNoaWxkOworKyAgd2hpbGUgKGNo aWxkX2RpZSAmJiBjaGlsZF9kaWUtPnRhZykKKysgICAgewogKyAgICAgIHByb2Nlc3NfZGllIChj aGlsZF9kaWUsIGN1KTsKICsgICAgICBjaGlsZF9kaWUgPSBzaWJsaW5nX2RpZSAoY2hpbGRfZGll KTsKICsgICAgICBkaWVfY2hpbGRyZW4rKzsKICAgICAgfQogIAogICAgaW5oZXJpdF9hYnN0cmFj dF9kaWVzIChkaWUsIGN1KTsKLUBAIC0zOTA1LDcgKzQxMzgsNyBAQCByZWFkX2xleGljYWxfYmxv Y2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BA IC0zODY5LDYgKzQxODksMTMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCQkJZGV0ZXJtaW5lX3ByZWZpeCAoZGllLCBjdSks CisgCQkJcHJvY2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8pOworIAorKyAgc3dpdGNoIChjdS0+ bGFuZ3VhZ2UpCisrICAgIHsKKysgICAgY2FzZSBsYW5ndWFnZV9mb3J0cmFuOgorKyAgICAgIEJM T0NLX0ZPUlRSQU5fVVNFIChibG9jaykgPSBjdS0+bGFuZ3VhZ2Vfc3BlY2lmaWMuZm9ydHJhbi51 c2U7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysKKyAgIC8qIElmIHdlIGhhdmUgYWRkcmVzcyBy YW5nZXMsIHJlY29yZCB0aGVtLiAgKi8KKyAgIGR3YXJmMl9yZWNvcmRfYmxvY2tfcmFuZ2VzIChk aWUsIGJsb2NrLCBiYXNlYWRkciwgY3UpOworICAgCitAQCAtMzkwNSw3ICs0MjMyLDcgQEAgcmVh ZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgICAgICBhcyBtdWx0aXBsZSBsZXhpY2FsIGJsb2Nrcz8gIEhhbmRsaW5nIGNo aWxkcmVuIGluIGEgc2FuZSB3YXkgd291bGQKICAgICAgIGJlIG5hc3R5LiAgTWlnaHQgYmUgZWFz aWVyIHRvIHByb3Blcmx5IGV4dGVuZCBnZW5lcmljIGJsb2NrcyB0byAKICAgICAgIGRlc2NyaWJl IHJhbmdlcy4gICovCkBAIC01MTI2LDcgKzUyNTEsNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5 IDEwMDY0NAogICAgICByZXR1cm47CiAgICBsb3dwYyArPSBiYXNlYWRkcjsKICAgIGhpZ2hwYyAr PSBiYXNlYWRkcjsKLUBAIC0zOTIyLDcgKzQxNTUsNyBAQCByZWFkX2xleGljYWxfYmxvY2tfc2Nv cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zOTIy LDcgKzQyNDksNyBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgfQogICAgbmV3ID0gcG9wX2NvbnRleHQg KCk7CiAgCkBAIC01MTM1LDcgKzUyNjAsNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0 NAogICAgICB7CiAgICAgICAgc3RydWN0IGJsb2NrICpibG9jawogICAgICAgICAgPSBmaW5pc2hf YmxvY2sgKDAsICZsb2NhbF9zeW1ib2xzLCBuZXctPm9sZF9ibG9ja3MsIG5ldy0+c3RhcnRfYWRk ciwKLUBAIC00MDc3LDcgKzQzMTAsOCBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkIG9m ZnNldCwgQ09SRV9BRERSICpsb3dfcmV0dXJuLAorQEAgLTQwNzcsNyArNDQwNCw4IEBAIGR3YXJm Ml9yYW5nZXNfcmVhZCAodW5zaWduZWQgb2Zmc2V0LCBDT1JFX0FERFIgKmxvd19yZXR1cm4sCiAg ICAgZGlzY29udGludW91cywgaS5lLiBkZXJpdmVkIGZyb20gRFdfQVRfcmFuZ2VzIGluZm9ybWF0 aW9uLiAgKi8KICBzdGF0aWMgaW50CiAgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBDT1JFX0FERFIgKmxvd3BjLApAQCAtNTE0NSw3ICs1MjcwLDcgQEAgaW5kZXgg NDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwog ICAgQ09SRV9BRERSIGxvdyA9IDA7Ci1AQCAtNDEwNSw3ICs0MzM5LDcgQEAgZHdhcmYyX2dldF9w Y19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxvd3BjLAorQEAgLTQx MDUsNyArNDQzMyw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgQ09SRV9BRERSICpsb3dwYywKICAJewogIAkgIC8qIFZhbHVlIG9mIHRoZSBEV19BVF9yYW5n ZXMgYXR0cmlidXRlIGlzIHRoZSBvZmZzZXQgaW4gdGhlCiAgCSAgICAgLmRlYnVnX3JhbmdlcyBz ZWN0aW9uLiAgKi8KQEAgLTUxNTQsNyArNTI3OSw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2Yzkg MTAwNjQ0CiAgCSAgICByZXR1cm4gMDsKICAJICAvKiBGb3VuZCBkaXNjb250aW51b3VzIHJhbmdl IG9mIGFkZHJlc3Nlcy4gICovCiAgCSAgcmV0ID0gLTE7Ci1AQCAtNDE0NCw3ICs0Mzc4LDcgQEAg ZHdhcmYyX2dldF9zdWJwcm9ncmFtX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCitA QCAtNDE0NCw3ICs0NDcyLDcgQEAgZHdhcmYyX2dldF9zdWJwcm9ncmFtX3BjX2JvdW5kcyAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsCiAgICBDT1JFX0FERFIgbG93LCBoaWdoOwogICAgc3RydWN0IGRp ZV9pbmZvICpjaGlsZCA9IGRpZS0+Y2hpbGQ7CiAgCkBAIC01MTYzLDcgKzUyODgsNyBAQCBpbmRl eCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgICB7CiAgICAgICAgKmxvd3BjID0gbWluICgq bG93cGMsIGxvdyk7CiAgICAgICAgKmhpZ2hwYyA9IG1heCAoKmhpZ2hwYywgaGlnaCk7Ci1AQCAt NDE4MSw3ICs0NDE1LDcgQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpk aWUsCitAQCAtNDE4MSw3ICs0NTA5LDcgQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRp ZV9pbmZvICpkaWUsCiAgICBDT1JFX0FERFIgYmVzdF9oaWdoID0gKENPUkVfQUREUikgMDsKICAg IENPUkVfQUREUiBjdXJyZW50X2xvdywgY3VycmVudF9oaWdoOwogIApAQCAtNTE3Miw3ICs1Mjk3 LDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICAgICAgewogICAgICAgIGJlc3Rf bG93ID0gY3VycmVudF9sb3c7CiAgICAgICAgYmVzdF9oaWdoID0gY3VycmVudF9oaWdoOwotQEAg LTQzODQsMjEgKzQ2MTgsOCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAq ZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC00Mzg0LDIxICs0NzEyLDggQEAgZHdhcmYy X2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUs CiAgICAgICAgLyogR2V0IGJpdCBvZmZzZXQgb2YgZmllbGQuICAqLwogICAgICAgIGF0dHIgPSBk d2FyZjJfYXR0ciAoZGllLCBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiwgY3UpOwogICAgICAg IGlmIChhdHRyKQpAQCAtNTE5Niw3ICs1MzIxLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAx MDA2NDQKICAgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYml0X29mZnNldCwg Y3UpOwogICAgICAgIGlmIChhdHRyKQogIAl7Ci1AQCAtNDQ3Niw3ICs0Njk3LDExIEBAIGR3YXJm Ml9hZGRfZmllbGQgKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGll LAorQEAgLTQ0NzYsNyArNDc5MSwxMSBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRf aW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAgICAgICBpZiAoZmllbGRuYW1lID09 IE5VTEwpCiAgCXJldHVybjsKICAKQEAgLTUyMDksNyArNTMzNCw3IEBAIGluZGV4IDQ0NWJhYjgu LjY1NTU2YzkgMTAwNjQ0CiAgICAgICAgcGh5c25hbWUgPSBkd2FyZjJfbGlua2FnZV9uYW1lIChk aWUsIGN1KTsKICAKICAgICAgICAvKiBUaGUgbmFtZSBpcyBhbHJlYWR5IGFsbG9jYXRlZCBhbG9u ZyB3aXRoIHRoaXMgb2JqZmlsZSwgc28gd2UgZG9uJ3QKLUBAIC00NDkwLDcgKzQ3MTUsNyBAQCBk d2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8g KmRpZSwKK0BAIC00NDkwLDcgKzQ4MDksNyBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmll bGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAgICAgICAvKiBDKysgYmFzZSBj bGFzcyBmaWVsZC4gICovCiAgICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2Rh dGFfbWVtYmVyX2xvY2F0aW9uLCBjdSk7CiAgICAgICAgaWYgKGF0dHIpCkBAIC01MjE4LDcgKzUz NDMsNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogIAkJCSAgICAgICAqIGJpdHNf cGVyX2J5dGUpOwogICAgICAgIEZJRUxEX0JJVFNJWkUgKCpmcCkgPSAwOwogICAgICAgIEZJRUxE X1RZUEUgKCpmcCkgPSBkaWVfdHlwZSAoZGllLCBjdSk7Ci1AQCAtNDYwNyw3ICs0ODMyLDExIEBA IGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGll X2luZm8gKmRpZSwKK0BAIC00NjA3LDcgKzQ5MjYsMTEgQEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4g KHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgaWYgKGZp ZWxkbmFtZSA9PSBOVUxMKQogICAgICByZXR1cm47CiAgCkBAIC01MjMxLDcgKzUzNTYsNyBAQCBp bmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgcGh5c25hbWUgPSBkd2FyZjJfbGlua2Fn ZV9uYW1lIChkaWUsIGN1KTsKICAKICAgIC8qIExvb2sgdXAgbWVtYmVyIGZ1bmN0aW9uIG5hbWUg aW4gZmllbGRsaXN0LiAgKi8KLUBAIC00NjUyLDcgKzQ4ODEsNyBAQCBkd2FyZjJfYWRkX21lbWJl cl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAt NDY1Miw3ICs0OTc1LDcgQEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZv ICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgLyogVGhlIG5hbWUgaXMgYWxyZWFkeSBh bGxvY2F0ZWQgYWxvbmcgd2l0aCB0aGlzIG9iamZpbGUsIHNvIHdlIGRvbid0CiAgICAgICBuZWVk IHRvIGR1cGxpY2F0ZSBpdCBmb3IgdGhlIHR5cGUuICAqLwogICAgZm5wLT5waHlzbmFtZSA9IHBo eXNuYW1lID8gcGh5c25hbWUgOiAiIjsKQEAgLTUyNDAsNyArNTM2NSw3IEBAIGluZGV4IDQ0NWJh YjguLjY1NTU2YzkgMTAwNjQ0CiAgICB0aGlzX3R5cGUgPSByZWFkX3R5cGVfZGllIChkaWUsIGN1 KTsKICAgIGlmICh0aGlzX3R5cGUgJiYgVFlQRV9DT0RFICh0aGlzX3R5cGUpID09IFRZUEVfQ09E RV9GVU5DKQogICAgICB7Ci1AQCAtNDcwOSwyMiArNDkzOCw3IEBAIGR3YXJmMl9hZGRfbWVtYmVy X2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC00 NzA5LDIyICs1MDMyLDcgQEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZv ICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgLyogR2V0IGluZGV4IGluIHZpcnR1YWwg ZnVuY3Rpb24gdGFibGUgaWYgaXQgaXMgYSB2aXJ0dWFsIG1lbWJlciBmdW5jdGlvbi4gICovCiAg ICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfdnRhYmxlX2VsZW1fbG9jYXRpb24sIGN1 KTsKICAgIGlmIChhdHRyKQpAQCAtNTI2NCw3ICs1Mzg5LDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1 NTZjOSAxMDA2NDQKICB9CiAgCiAgLyogQ3JlYXRlIHRoZSB2ZWN0b3Igb2YgbWVtYmVyIGZ1bmN0 aW9uIGZpZWxkcywgYW5kIGF0dGFjaCBpdCB0byB0aGUgdHlwZS4gICovCi1AQCAtNDgzNiw3ICs1 MDUwLDcgQEAgcXVpcmtfZ2NjX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNDgzNiw3ICs1MTQ0LDcgQEAgcXVp cmtfZ2NjX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIHJldHVybiBOVUxMOwogIAogICAgZG9tYWluX3R5cGUg PSBUWVBFX1RBUkdFVF9UWVBFIChUWVBFX0ZJRUxEX1RZUEUgKHBmbl90eXBlLCAwKSk7CkBAIC01 MjczLDcgKzUzOTgsNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgc21hc2hf dG9fbWV0aG9kX3R5cGUgKHR5cGUsIGRvbWFpbl90eXBlLCBUWVBFX1RBUkdFVF9UWVBFIChwZm5f dHlwZSksCiAgCQkJVFlQRV9GSUVMRFMgKHBmbl90eXBlKSwgVFlQRV9ORklFTERTIChwZm5fdHlw ZSksCiAgCQkJVFlQRV9WQVJBUkdTIChwZm5fdHlwZSkpOwotQEAgLTQ4ODksNyArNTEwMyw3IEBA IHJlYWRfc3RydWN0dXJlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKK0BAIC00ODg5LDcgKzUxOTcsNyBAQCByZWFkX3N0cnVjdHVyZV90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgcmV0dXJuIHNl dF9kaWVfdHlwZSAoZGllLCB0eXBlLCBjdSk7CiAgICAgIH0KICAKQEAgLTUyODIsNyArNTQwNyw3 IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICBJTklUX0NQTFVTX1NQRUNJRklD ICh0eXBlKTsKICAKICAgIG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7Ci1AQCAtNDg5OCwx NCArNTExMiwxOCBAQCByZWFkX3N0cnVjdHVyZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNDg5OCwxNCArNTIwNiwxOCBAQCByZWFkX3N0cnVj dHVyZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAg ICAgICAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cwogIAkgIHx8IGN1LT5sYW5n dWFnZSA9PSBsYW5ndWFnZV9qYXZhKQogIAl7CkBAIC01MzA0LDcgKzU0MjksNyBAQCBpbmRleCA0 NDViYWI4Li42NTU1NmM5IDEwMDY0NAogIAl9CiAgICAgIH0KICAKLUBAIC01MTE1LDcgKzUzMzMs NyBAQCByZWFkX2VudW1lcmF0aW9uX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKK0BAIC01MTE1LDcgKzU0MjcsNyBAQCByZWFkX2VudW1lcmF0aW9uX3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBy ZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHR5cGUsIGN1KTsKICAgICAgfQogIApAQCAtNTMxMyw3 ICs1NDM4LDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICAKICAgIFRZUEVfQ09E RSAodHlwZSkgPSBUWVBFX0NPREVfRU5VTTsKICAgIG5hbWUgPSBkd2FyZjJfZnVsbF9uYW1lIChk aWUsIGN1KTsKLUBAIC01MTQzLDUxICs1MzYxLDYgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTE0Myw1MSAr NTQ1NSw2IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgcmV0dXJuIHNldF9kaWVfdHlwZSAoZGllLCB0eXBlLCBj dSk7CiAgfQogIApAQCAtNTM2NSw3ICs1NDkwLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAx MDA2NDQKICAvKiBHaXZlbiBhIHBvaW50ZXIgdG8gYSBkaWUgd2hpY2ggYmVnaW5zIGFuIGVudW1l cmF0aW9uLCBwcm9jZXNzIGFsbAogICAgIHRoZSBkaWVzIHRoYXQgZGVmaW5lIHRoZSBtZW1iZXJz IG9mIHRoZSBlbnVtZXJhdGlvbiwgYW5kIGNyZWF0ZSB0aGUKICAgICBzeW1ib2wgZm9yIHRoZSBl bnVtZXJhdGlvbiB0eXBlLgotQEAgLTUyNjUsNiArNTQzOCwyOSBAQCBwcm9jZXNzX2VudW1lcmF0 aW9uX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitA QCAtNTI2NSw2ICs1NTMyLDI5IEBAIHByb2Nlc3NfZW51bWVyYXRpb25fc2NvcGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIG5ld19zeW1ib2wgKGRpZSwg dGhpc190eXBlLCBjdSk7CiAgfQogIApAQCAtNTM5NSw3ICs1NTIwLDcgQEAgaW5kZXggNDQ1YmFi OC4uNjU1NTZjOSAxMDA2NDQKICAvKiBFeHRyYWN0IGFsbCBpbmZvcm1hdGlvbiBmcm9tIGEgRFdf VEFHX2FycmF5X3R5cGUgRElFIGFuZCBwdXQgaXQgaW4KICAgICB0aGUgRElFJ3MgdHlwZSBmaWVs ZC4gIEZvciBub3csIHRoaXMgb25seSBoYW5kbGVzIG9uZSBkaW1lbnNpb25hbAogICAgIGFycmF5 cy4gICovCi1AQCAtNTI3OCw3ICs1NDc0LDcgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTI3OCw3ICs1NTY4LDcgQEAg cmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlLCAqcmFuZ2VfdHlwZSwgKmluZGV4X3R5 cGU7CiAgICBzdHJ1Y3QgdHlwZSAqKnJhbmdlX3R5cGVzID0gTlVMTDsKICAgIHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHI7CkBAIC01NDA0LDcgKzU1MjksNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5 IDEwMDY0NAogICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CiAgICBjaGFyICpuYW1lOwogIAot QEAgLTUzMjUsMTYgKzU1MjEsMTEgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTMyNSwxNiArNTYxNSwxMSBAQCByZWFk X2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAgIHR5cGUgPSBlbGVtZW50X3R5cGU7CiAgCiAgICBpZiAocmVhZF9hcnJheV9vcmRlciAoZGll LCBjdSkgPT0gRFdfT1JEX2NvbF9tYWpvcikKQEAgLTU0MjYsNyArNTU1MSw3IEBAIGluZGV4IDQ0 NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgCiAgICAvKiBVbmRlcnN0YW5kIER3YXJmMiBzdXBwb3J0 IGZvciB2ZWN0b3IgdHlwZXMgKGxpa2UgdGhleSBvY2N1ciBvbgogICAgICAgdGhlIFBvd2VyUEMg dy8gQWx0aVZlYykuICBHY2MganVzdCBhZGRzIGFub3RoZXIgYXR0cmlidXRlIHRvIHRoZQotQEAg LTU0MDEsNDkgKzU1OTIsODMgQEAgcmVhZF9zZXRfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU0MDEsNDkgKzU2ODYsODMgQEAgcmVhZF9zZXRf dHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgcmV0 dXJuIHNldF9kaWVfdHlwZSAoZGllLCBzZXRfdHlwZSwgY3UpOwogIH0KICAKQEAgLTU0NzcsOSAr NTYwMiw5IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiArICAgICAgLyogQXJ0aWZp Y2lhbCB0eXBlIHRvIGJlIHVzZWQgb25seSBieSBgaW5mbyBjb21tb24nLiAgKi8KICsgICAgICBU WVBFX05BTUUgKHR5cGUpID0gIjxjb21tb24+IjsKICsKLSAgICAgICBjaGlsZF9kaWUgPSBkaWUt PmNoaWxkOwotICAgICAgIHdoaWxlIChjaGlsZF9kaWUgJiYgY2hpbGRfZGllLT50YWcpCi0gCXsK KysgICAgICBjaGlsZF9kaWUgPSBkaWUtPmNoaWxkOworKyAgICAgIHdoaWxlIChjaGlsZF9kaWUg JiYgY2hpbGRfZGllLT50YWcpCisrCXsKICsJICBUWVBFX05GSUVMRFMgKHR5cGUpKys7CiArCSAg Y2hpbGRfZGllID0gc2libGluZ19kaWUgKGNoaWxkX2RpZSk7CiArCX0KQEAgLTU0OTEsOSArNTYx Niw5IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiArCQkJCSAgICAgKiBUWVBFX05G SUVMRFMgKHR5cGUpKTsKICsgICAgICAKICsgICAgICBmaWVsZCA9IFRZUEVfRklFTERTICh0eXBl KTsKLSsgICAgICBjaGlsZF9kaWUgPSBkaWUtPmNoaWxkOwotKyAgICAgIHdoaWxlIChjaGlsZF9k aWUgJiYgY2hpbGRfZGllLT50YWcpCi0rCXsKKyAgICAgICBjaGlsZF9kaWUgPSBkaWUtPmNoaWxk OworICAgICAgIHdoaWxlIChjaGlsZF9kaWUgJiYgY2hpbGRfZGllLT50YWcpCisgCXsKICsJICAv KiBDcmVhdGUgdGhlIHN5bWJvbCBpbiB0aGUgRFdfVEFHX2NvbW1vbl9ibG9jayBibG9jayBpbiB0 aGUgY3VycmVudAogKwkgICAgIHN5bWJvbCBzY29wZS4gICovCiAgCSAgc3ltID0gbmV3X3N5bWJv bCAoY2hpbGRfZGllLCBOVUxMLCBjdSk7CkBAIC01NTI5LDcgKzU2NTQsNyBAQCBpbmRleCA0NDVi YWI4Li42NTU1NmM5IDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTU1MTEsNyArNTczNiw3IEBA IHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCitAQCAtNTUxMSw3ICs1ODMwLDcgQEAgcmVhZF9uYW1lc3BhY2UgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBpZiAoaXNfYW5vbnltb3VzKQog IAl7CiAgCSAgY29uc3QgY2hhciAqcHJldmlvdXNfcHJlZml4ID0gZGV0ZXJtaW5lX3ByZWZpeCAo ZGllLCBjdSk7CkBAIC01NTM4LDcgKzU2NjMsMTY2IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2Yzkg MTAwNjQ0CiAgCX0KICAgICAgfQogIAotQEAgLTU3MDUsMjkgKzU5MzAsOTMgQEAgcmVhZF90YWdf c3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK K0BAIC01NTI3LDIwICs1ODQ2LDE1NSBAQCByZWFkX25hbWVzcGFjZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgICB9CisgfQorIAorLS8qIFJlYWQgYSBG b3J0cmFuIG1vZHVsZS4gICovCisrLyogUmVhZCBhIEZvcnRyYW4gbW9kdWxlIGFzIGdsb2JhbCBz eW1ib2wgd2hpY2ggY2FuIGJlIGxhdGVyIGxvb2tlZCB1cCBieQorKyAgIGZfbG9va3VwX3N5bWJv bF9ub25sb2NhbC4gICovCisgCisgc3RhdGljIHZvaWQKKyByZWFkX21vZHVsZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorIHsKKy0gIHN0cnVjdCBkaWVfaW5m byAqY2hpbGRfZGllID0gZGllLT5jaGlsZDsKKysgIHN0cnVjdCB0eXBlICp0eXBlOworIAorLSAg LyogRklYTUU6IFN1cHBvcnQgdGhlIHNlcGFyYXRlIEZvcnRyYW4gbW9kdWxlIG5hbWVzcGFjZXMu ICAqLworKyAgdHlwZSA9IHJlYWRfbW9kdWxlX3R5cGUgKGRpZSwgY3UpOworIAorKyAgaWYgKHR5 cGUpCisrICAgIG5ld19zeW1ib2wgKGRpZSwgdHlwZSwgY3UpOworK30KKysKKysvKiBSZWFkIGEg Rm9ydHJhbiBtb2R1bGUgYXMgdHlwZS4KKysKKysgICBNb2R1bGVzIHByZXNlbnQgb25seSBhcyBk ZWNsYXJhdGlvbnMgLSBiZWluZyB1c2VkIG9ubHkgZm9yIERXX0FUX2ltcG9ydCBvZgorKyAgIERX X1RBR19pbXBvcnRlZF9tb2R1bGUgLSBhcmUgaWdub3JlZCBoZXJlLiAgVGhleSBhcmUgcmVhZCBp biBvbmx5IGluIGZvcm0gb2YKKysgICB0aGUgbW9kdWxlIG5hbWUgYnkgcmVhZF9mb3J0cmFuX2lt cG9ydGVkX21vZHVsZS4gICovCisrCisrc3RhdGljIHN0cnVjdCB0eXBlICoKKytyZWFkX21vZHVs ZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisrewor KyAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKKysgIHN0cnVjdCBkaWVf aW5mbyAqY2hpbGRfZGllOworKyAgc3RydWN0IHR5cGUgKnR5cGU7CisrICBjaGFyICptb2R1bGVf bmFtZTsKKysgIHN0cnVjdCBjb250ZXh0X3N0YWNrICpuZXc7CisrICBzdHJ1Y3QgcGVuZGluZyAq c2F2ZV9maWxlX3N5bWJvbHM7CisrICBzdHJ1Y3QgcGVuZGluZyAqc2F2ZV9nbG9iYWxfc3ltYm9s czsKKysgIHN0cnVjdCBwZW5kaW5nICoqc2F2ZV9saXN0X2luX3Njb3BlOworKworKyAgaWYgKGRp ZV9pc19kZWNsYXJhdGlvbiAoZGllLCBjdSkpCisrICAgIHJldHVybiBOVUxMOworKworKyAgbW9k dWxlX25hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CisrICBpZiAoIW1vZHVsZV9uYW1lKQor KyAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIkRXX1RBR19tb2R1bGUgaGFz IG5vIG5hbWUsIG9mZnNldCAweCV4IiksCisrICAgICAgICAgICAgICAgZGllLT5vZmZzZXQpOwor KyAgdHlwZSA9IGluaXRfdHlwZSAoVFlQRV9DT0RFX01PRFVMRSwgMCwgMCwgbW9kdWxlX25hbWUs IG9iamZpbGUpOworKworKyAgLyogQ3JlYXRlIGEgY29udGV4dCBmb3IgcmVhZGluZyB0aGUgbW9k dWxlIHZhcmlhYmxlcy4gICovCisrCisrICBuZXcgPSBwdXNoX2NvbnRleHQgKDAsIDApOworKwor KyAgc2F2ZV9maWxlX3N5bWJvbHMgPSBmaWxlX3N5bWJvbHM7CisrICBmaWxlX3N5bWJvbHMgPSBO VUxMOworKyAgc2F2ZV9nbG9iYWxfc3ltYm9scyA9IGdsb2JhbF9zeW1ib2xzOworKyAgZ2xvYmFs X3N5bWJvbHMgPSBOVUxMOworKyAgc2F2ZV9saXN0X2luX3Njb3BlID0gY3UtPmxpc3RfaW5fc2Nv cGU7CisrCisrICAvKiBQcm9jZXNzIHRoZSBjaGlsZCBESUVzLiAgKi8KKysKKysgIGNoaWxkX2Rp ZSA9IGRpZS0+Y2hpbGQ7CisgICB3aGlsZSAoY2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQor ICAgICB7CisrICAgICAgLyogQW55IERXX1RBR19zdWJwcm9ncmFtIHdpbGwgcmVzZXQgTElTVF9J Tl9TQ09QRSB0byBMT0NBTF9TWU1CT0xTLiAgKi8KKysgICAgICBjdS0+bGlzdF9pbl9zY29wZSA9 ICZnbG9iYWxfc3ltYm9sczsKKysKKyAgICAgICBwcm9jZXNzX2RpZSAoY2hpbGRfZGllLCBjdSk7 CisgICAgICAgY2hpbGRfZGllID0gc2libGluZ19kaWUgKGNoaWxkX2RpZSk7CisgICAgIH0KKysK KysgIC8qIEZpbmlzaCB0aGlzIG1vZHVsZSBhbmQgcmVzdG9yZSB0aGUgY29udGV4dC4gICovCisr CisrICBUWVBFX01PRFVMRV9CTE9DSyAodHlwZSkgPSBmaW5pc2hfYmxvY2sgKE5VTEwsICZnbG9i YWxfc3ltYm9scywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmV3LT5vbGRfYmxvY2tzLCAwLCAwLCBvYmpmaWxlKTsKKysKKysgIGlmIChmaWxlX3N5bWJvbHMp CisrICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywgXygiRFdfVEFHX21vZHVsZSBj b250YWlucyBzdGF0aWMgc3ltYm9scyIpKTsKKysgIGlmIChsb2NhbF9zeW1ib2xzKQorKyAgICBj b21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIkRXX1RBR19tb2R1bGUgY29udGFpbnMg bG9jYWwgc3ltYm9scyIpKTsKKysgIGlmIChwYXJhbV9zeW1ib2xzKQorKyAgICBjb21wbGFpbnQg KCZzeW1maWxlX2NvbXBsYWludHMsIF8oIkRXX1RBR19tb2R1bGUgY29udGFpbnMgZnVuY3Rpb24g IgorKwkJCQkgICAgICAicGFyYW1ldGVycyIpKTsKKysKKysgIGZpbGVfc3ltYm9scyA9IHNhdmVf ZmlsZV9zeW1ib2xzOworKyAgZ2xvYmFsX3N5bWJvbHMgPSBzYXZlX2dsb2JhbF9zeW1ib2xzOwor KyAgY3UtPmxpc3RfaW5fc2NvcGUgPSBzYXZlX2xpc3RfaW5fc2NvcGU7CisrCisrICBwb3BfY29u dGV4dCAoKTsKKysKKysgIHNldF9kaWVfdHlwZSAoZGllLCB0eXBlLCBjdSk7CisrCisrICByZXR1 cm4gdHlwZTsKKyt9CisrCisrLyogSW1wb3J0IGEgRm9ydHJhbiBtb2R1bGUuICBPbmx5IHN0b3Jl IHRoZSBtb2R1bGUgbmFtZSBmb3IgaXRzIGxhdGVyIGxvb2t1cCBieQorKyAgIGZfbG9va3VwX3N5 bWJvbF9ub25sb2NhbC4gICovCisrCisrc3RhdGljIHZvaWQKKytyZWFkX2ZvcnRyYW5faW1wb3J0 ZWRfbW9kdWxlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisr eworKyAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKKysgIHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHI7CisrICBzdHJ1Y3QgZGllX2luZm8gKm1vZHVsZV9kaWU7CisrICBjaGFy ICptb2R1bGVfbmFtZTsKKysgIHN0cnVjdCBmb3J0cmFuX3VzaW5nICp1c2U7CisrCisrICBhdHRy ID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfaW1wb3J0LCBjdSk7CisrICBpZiAoYXR0ciA9PSBO VUxMKQorKyAgICByZXR1cm47CisrCisrICBtb2R1bGVfZGllID0gZm9sbG93X2RpZV9yZWYgKGRp ZSwgYXR0ciwgJmN1KTsKKysgIG1vZHVsZV9uYW1lID0gZHdhcmYyX25hbWUgKG1vZHVsZV9kaWUs IGN1KTsKKysgIGlmIChtb2R1bGVfbmFtZSA9PSBOVUxMKQorKyAgICB7CisrICAgICAgY29tcGxh aW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJIF8oIkltcG9ydGVkIERJRSBhdCBvZmZzZXQg MHgleCBoYXMgbm8gbmFtZSIpLCBkaWUtPm9mZnNldCk7CisrICAgICAgcmV0dXJuOworKyAgICB9 CisrCisrICAvKiBGb3J0cmFuIGRvZXMgbm90IGFsbG93IGFueSBkdXBsaWNpdHkgYmV0d2VlbiBs b2NhbCBhbmQgYW55IG9mIHRoZSBpbXBvcnRlZAorKyAgICAgc3ltYm9scy4gIFRoZXJlZm9yZSB0 aGUgb3JkZXIgb2YgdGhlIFVTRSBzdGF0ZW1lbnRzIGlzIG5vdCBwb3J0YW50LgorKyAgICAgZ2Zv cnRyYW4gcHJpbnRzOgorKyAgICAgRXJyb3I6IE5hbWUgJ1gnIGF0ICgxKSBpcyBhbiBhbWJpZ3Vv dXMgcmVmZXJlbmNlIHRvICdYJyBmcm9tIG1vZHVsZSAnWScgICovCisrCisrICB1c2UgPSBvYnN0 YWNrX2FsbG9jICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBzaXplb2YgKCp1c2UpCisrCQkJ CQkJICArIHN0cmxlbiAobW9kdWxlX25hbWUpKTsKKysgIHN0cmNweSAodXNlLT5tb2R1bGVfbmFt ZSwgbW9kdWxlX25hbWUpOworKyAgZ2RiX2Fzc2VydCAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdl X2ZvcnRyYW4pOworKyAgdXNlLT5uZXh0ID0gY3UtPmxhbmd1YWdlX3NwZWNpZmljLmZvcnRyYW4u dXNlOworKyAgY3UtPmxhbmd1YWdlX3NwZWNpZmljLmZvcnRyYW4udXNlID0gdXNlOworK30KKysK KysvKiBJbXBvcnQgYSBzaW5nbGUgRm9ydHJhbiBkZWNsYXJhdGlvbiBhbmQgcG9zc2libHkgcmVu YW1lIGl0LiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3JlYWRfZm9ydHJhbl9pbXBvcnRlZF9kZWNs YXJhdGlvbiAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorK3sK KysgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CisrICBzdHJ1Y3QgZGllX2luZm8gKmltcG9ydGVk X2RpZTsKKysgIHN0cnVjdCBzeW1ib2wgKnN5bTsKKysgIGNoYXIgKnJlbmFtZSA9IGR3YXJmMl9u YW1lIChkaWUsIGN1KTsKKysKKysgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9pbXBv cnQsIGN1KTsKKysgIGlmIChhdHRyID09IE5VTEwpCisrICAgIHsKKysgICAgICBjb21wbGFpbnQg KCZzeW1maWxlX2NvbXBsYWludHMsCisrCQkgXygiRm9ydHJhbiBEV19UQUdfaW1wb3J0ZWRfZGVj bGFyYXRpb24gaXMgbWlzc2luZyAiCisrCQkgICAiRFdfQVRfaW1wb3J0IGF0IG9mZnNldCAweCV4 IiksIGRpZS0+b2Zmc2V0KTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysgIGltcG9ydGVkX2Rp ZSA9IGZvbGxvd19kaWVfcmVmIChkaWUsIGF0dHIsICZjdSk7CisrCisrICBzeW0gPSBuZXdfc3lt Ym9sIChpbXBvcnRlZF9kaWUsIE5VTEwsIGN1KTsKKysKKysgIGlmIChzeW0gJiYgcmVuYW1lKQor KyAgICAoc3ltKS0+Z2luZm8ubGFuZ3VhZ2Vfc3BlY2lmaWMuY3BsdXNfc3BlY2lmaWMuZGVtYW5n bGVkX25hbWUgPSByZW5hbWU7CisgfQorIAorIC8qIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgbmFt ZXNwYWNlIHJlcHJlc2VudGVkIGJ5IERJRS4gIFNldAorQEAgLTU3MDUsMjkgKzYxNTksOTMgQEAg cmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAo b2JqZmlsZSk7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBl LCAqY2hhcl90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTU2NDYsNyArNTkz MCw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICBjaGFyX3R5cGUgPSBsYW5n dWFnZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2VfZGVmbiwgZ2RiYXJjaCk7CiAgICB0 eXBlID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFyX3R5cGUsIHJhbmdlX3R5cGUpOwog IAotQEAgLTU4MjIsNyArNjExMSw2IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCitAQCAtNTgyMiw3 ICs2MzQwLDYgQEAgc3RhdGljIHN0cnVjdCB0eXBlICoKICByZWFkX3R5cGVkZWYgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSA9IGN1LT5vYmpmaWxlOwpAQCAtNTY1NCw3ICs1OTM4LDcgQEAgaW5kZXggNDQ1 YmFiOC4uNjU1NTZjOSAxMDA2NDQKICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMOwogICAgc3Ry dWN0IHR5cGUgKnRoaXNfdHlwZTsKICAKLUBAIC01OTMwLDggKzYyMTgsNyBAQCByZWFkX3N1YnJh bmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BA IC01OTMwLDggKzY0NDcsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICpiYXNlX3R5cGU7CiAg ICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBA IC01NjY0LDcgKzU5NDgsNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgY2hh ciAqbmFtZTsKICAgIAogICAgYmFzZV90eXBlID0gZGllX3R5cGUgKGRpZSwgY3UpOwotQEAgLTU5 NDQsNDIgKzYyMzEsOTEgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTk0NCw0MiArNjQ2MCw5MSBAQCByZWFkX3N1 YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAJCSAgICAgMCwgTlVMTCwgY3UtPm9iamZpbGUpOwogICAgICB9CiAgCkBAIC01Nzg1LDcgKzYw NjksMTUgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICAKICAgIG5hbWUgPSBkd2Fy ZjJfbmFtZSAoZGllLCBjdSk7CiAgICBpZiAobmFtZSkKLUBAIC02NjcwLDkgKzcwMDYsNiBAQCBy ZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAt NjQ1MCw2ICs3MDE1LDcgQEAgbG9hZF9wYXJ0aWFsX2RpZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUg KmJ1ZmZlciwgZ2RiX2J5dGUgKmluZm9fcHRyLAorIAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RB R19sZXhpY2FsX2Jsb2NrCisgCSAgJiYgYWJicmV2LT50YWcgIT0gRFdfVEFHX3ZhcmlhYmxlCisg CSAgJiYgYWJicmV2LT50YWcgIT0gRFdfVEFHX25hbWVzcGFjZQorKwkgICYmIGFiYnJldi0+dGFn ICE9IERXX1RBR19tb2R1bGUKKyAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19UQUdfbWVtYmVyKQor IAl7CisgCSAgLyogT3RoZXJ3aXNlIHdlIHNraXAgdG8gdGhlIG5leHQgc2libGluZywgaWYgYW55 LiAgKi8KK0BAIC02NjcwLDkgKzcyMzYsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFy dGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCiAgCSAgaWYgKHBhcnRfZGllLT5kaXJuYW1lID09IE5V TEwpCiAgCSAgICBwYXJ0X2RpZS0+ZGlybmFtZSA9IERXX1NUUklORyAoJmF0dHIpOwogIAkgIGJy ZWFrOwpAQCAtNTc5NSw3ICs2MDg3LDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQK ICAJY2FzZSBEV19BVF9sb3dfcGM6CiAgCSAgaGFzX2xvd19wY19hdHRyID0gMTsKICAJICBwYXJ0 X2RpZS0+bG93cGMgPSBEV19BRERSICgmYXR0cik7Ci1AQCAtNjc0NCwxMCArNzA3NywxMCBAQCBy ZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAt Njc0NCwxMCArNzMwNywxMCBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVf aW5mbyAqcGFydF9kaWUsCiAgCSAgZWxzZQogIAkgICAgcGFydF9kaWUtPnNpYmxpbmcgPSBidWZm ZXIgKyBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0ICgmYXR0cik7CiAgCSAgYnJlYWs7CkBAIC01 ODEwLDcgKzYxMDIsNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgICAgICAg Y2FzZSBEV19BVF9ieXRlX3NpemU6CiAgICAgICAgICAgIHBhcnRfZGllLT5oYXNfYnl0ZV9zaXpl ID0gMTsKICAgICAgICAgICAgYnJlYWs7Ci1AQCAtNjc4OSwxMyArNzEyMiw2IEBAIHJlYWRfcGFy dGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKK0BAIC02Nzg5LDEz ICs3MzUyLDYgQEAgcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBh cnRfZGllLAogIAkgIHx8IGR3YXJmMl9wZXJfb2JqZmlsZS0+aGFzX3NlY3Rpb25fYXRfemVybykp CiAgICAgIHBhcnRfZGllLT5oYXNfcGNfaW5mbyA9IDE7CiAgCkBAIC01ODI0LDcgKzYxMTYsNyBA QCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgcmV0dXJuIGluZm9fcHRyOwogIH0K ICAKLUBAIC02OTA0LDcgKzcyMzAsOCBAQCBmaXh1cF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRp YWxfZGllX2luZm8gKnBhcnRfZGllLAorQEAgLTY5MDQsNyArNzQ2MCw4IEBAIGZpeHVwX3BhcnRp YWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCiAgICAvKiBJZiB3ZSBm b3VuZCBhIHJlZmVyZW5jZSBhdHRyaWJ1dGUgYW5kIHRoZSBESUUgaGFzIG5vIG5hbWUsIHRyeQog ICAgICAgdG8gZmluZCBhIG5hbWUgaW4gdGhlIHJlZmVycmVkIHRvIERJRS4gICovCiAgCkBAIC01 ODM0LDcgKzYxMjYsNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgICB7CiAg ICAgICAgc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnNwZWNfZGllOwogIAotQEAgLTgyNDQsMTAg Kzg1NzEsMTIgQEAgdmFyX2RlY29kZV9sb2NhdGlvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwg c3RydWN0IHN5bWJvbCAqc3ltLAorQEAgLTgyNDQsMTAgKzg4MDEsMTIgQEAgdmFyX2RlY29kZV9s b2NhdGlvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAogICAg ICAgKGkuZS4gd2hlbiB0aGUgdmFsdWUgb2YgYSByZWdpc3RlciBvciBtZW1vcnkgbG9jYXRpb24g aXMKICAgICAgIHJlZmVyZW5jZWQsIG9yIGEgdGhyZWFkLWxvY2FsIGJsb2NrLCBldGMuKS4gIFRo ZW4gYWdhaW4sIGl0IG1pZ2h0CiAgICAgICBub3QgYmUgd29ydGh3aGlsZS4gIEknbSBhc3N1bWlu ZyB0aGF0IGl0IGlzbid0IHVubGVzcyBwZXJmb3JtYW5jZQpAQCAtNTg0OSw3ICs2MTQxLDcgQEAg aW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICB9CiAgCiAgLyogR2l2ZW4gYSBwb2ludGVy IHRvIGEgRFdBUkYgaW5mb3JtYXRpb24gZW50cnksIGZpZ3VyZSBvdXQgaWYgd2UgbmVlZAotQEAg LTgyNjksMjEgKzg1OTgsMjQgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04MjY5LDIxICs4ODI4 LDMwIEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlw ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChvYmpm aWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKICAKQEAgLTU4 NzgsMTAgKzYxNzAsMTYgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICsKICsgICAg ICBsaW5rYWdlbmFtZSA9IGR3YXJmMl9saW5rYWdlX25hbWUgKGRpZSwgY3UpOwogKyAgICAgIFNZ TUJPTF9TRVRfTkFNRVMgKHN5bSwgbGlua2FnZW5hbWUsIHN0cmxlbiAobGlua2FnZW5hbWUpLCBv YmpmaWxlKTsKKysgICAgICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2ZvcnRyYW4pCisr CXsKKysJICAoc3ltKS0+Z2luZm8ubGFuZ3VhZ2Vfc3BlY2lmaWMuY3BsdXNfc3BlY2lmaWMuZGVt YW5nbGVkX25hbWUgPQorKwkgICAgU1lNQk9MX0xJTktBR0VfTkFNRSAoc3ltKTsKKysJICBTWU1C T0xfTElOS0FHRV9OQU1FIChzeW0pID0gZm9ydHJhbl9tb2R1bGVfbGlua2FnZV9uYW1lIChkaWUs IGN1KTsKKysJfQogIAogICAgICAgIC8qIERlZmF1bHQgYXNzdW1wdGlvbnMuCiAgICAgICAgICAg VXNlIHRoZSBwYXNzZWQgdHlwZSBvciBkZWNvZGUgaXQgZnJvbSB0aGUgZGllLiAgKi8KLUBAIC04 MzgxLDcgKzg3MTMsMTUgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04MzgxLDkgKzg5NDksMjgg QEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJICBpZiAoYXR0cikKICAJICAgIHsKICAJICAgICAgdmFy X2RlY29kZV9sb2NhdGlvbiAoYXR0ciwgc3ltLCBjdSk7CkBAIC01ODk1LDkgKzYxOTMsMjMgQEAg aW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICsJCWF0dHIyID0gTlVMTDsKICsKICAJICAg ICAgaWYgKGF0dHIyICYmIChEV19VTlNORCAoYXR0cjIpICE9IDApKQotIAkJYWRkX3N5bWJvbF90 b19saXN0IChzeW0sICZnbG9iYWxfc3ltYm9scyk7CistCQlhZGRfc3ltYm9sX3RvX2xpc3QgKHN5 bSwgJmdsb2JhbF9zeW1ib2xzKTsKKysJCXsKKysJCSAgLyogV29ya2Fyb3VuZCBnZm9ydHJhbiBQ UiBkZWJ1Zy80MDA0MCAtIGl0IHVzZXMKKysJCSAgICAgRFdfQVRfbG9jYXRpb24gZm9yIHZhcmlh YmxlcyBpbiAtZlBJQyBsaWJyYXJpZXMgd2hpY2ggbWF5CisrCQkgICAgIGdldCBvdmVycmlkZW4g Ynkgb3RoZXIgbGlicmFyaWVzL2V4ZWN1dGFibGUgYW5kIGdldAorKwkJICAgICBhIGRpZmZlcmVu dCBhZGRyZXNzLiAgUmVzb2x2ZSBpdCBieSAuZHluc3ltIGluc3RlYWQuICAqLworKworKwkJICBp ZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2ZvcnRyYW4gJiYgZGllLT5wYXJlbnQKKysJCSAg ICAgICYmIGRpZS0+cGFyZW50LT50YWcgPT0gRFdfVEFHX21vZHVsZSkKKysJCSAgICBTWU1CT0xf Q0xBU1MgKHN5bSkgPSBMT0NfVU5SRVNPTFZFRDsKKysKKysJCSAgYWRkX3N5bWJvbF90b19saXN0 IChzeW0sICZnbG9iYWxfc3ltYm9scyk7CisrCQl9CiAgCSAgICAgIGVsc2UKLUBAIC04NTEzLDcg Kzg4NTMsNyBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUg KnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorIAkJYWRkX3N5bWJvbF90b19saXN0IChzeW0s IGN1LT5saXN0X2luX3Njb3BlKTsKKyAJICAgIH0KK0BAIC04NTEzLDcgKzkxMDAsNyBAQCBuZXdf c3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQogIAkgIGFkZF9zeW1ib2xfdG9fbGlzdCAoc3ltLCBjdS0+bGlzdF9pbl9z Y29wZSk7CiAgCSAgYnJlYWs7CiAgCWNhc2UgRFdfVEFHX2VudW1lcmF0b3I6CkBAIC01OTA2LDcg KzYyMTgsNyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogIAkgIGF0dHIgPSBkd2Fy ZjJfYXR0ciAoZGllLCBEV19BVF9jb25zdF92YWx1ZSwgY3UpOwogIAkgIGlmIChhdHRyKQogIAkg ICAgewotQEAgLTg1MzcsNiArODg3NywxMSBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTg1Mzcs NiArOTEyNCwxNiBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5 cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkgIFNZTUJPTF9DTEFTUyAoc3ltKSA9 IExPQ19UWVBFREVGOwogIAkgIGFkZF9zeW1ib2xfdG9fbGlzdCAoc3ltLCAmZ2xvYmFsX3N5bWJv bHMpOwogIAkgIGJyZWFrOwpAQCAtNTkxNSwxMCArNjIyNywxNSBAQCBpbmRleCA0NDViYWI4Li42 NTU1NmM5IDEwMDY0NAogKwkgIFNZTUJPTF9ET01BSU4gKHN5bSkgPSBDT01NT05fQkxPQ0tfRE9N QUlOOwogKwkgIGFkZF9zeW1ib2xfdG9fbGlzdCAoc3ltLCBjdS0+bGlzdF9pbl9zY29wZSk7CiAr CSAgYnJlYWs7CisrCWNhc2UgRFdfVEFHX21vZHVsZToKKysJICBTWU1CT0xfQ0xBU1MgKHN5bSkg PSBMT0NfU1RBVElDOworKwkgIFNZTUJPTF9ET01BSU4gKHN5bSkgPSBNT0RVTEVfRE9NQUlOOwor KwkgIGFkZF9zeW1ib2xfdG9fbGlzdCAoc3ltLCAmZ2xvYmFsX3N5bWJvbHMpOworKwkgIGJyZWFr OwogIAlkZWZhdWx0OgogIAkgIC8qIE5vdCBhIHRhZyB3ZSByZWNvZ25pemUuICBIb3BlZnVsbHkg d2UgYXJlbid0IHByb2Nlc3NpbmcKICAJICAgICB0cmFzaCBkYXRhLCBidXQgc2luY2Ugd2UgbXVz dCBzcGVjaWZpY2FsbHkgaWdub3JlIHRoaW5ncwotQEAgLTg1NTAsOCArODg5NSw3IEBAIG5ld19z eW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCitAQCAtODU1MCw4ICs5MTQ3LDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAg ICAgICAvKiBGb3IgdGhlIGJlbmVmaXQgb2Ygb2xkIHZlcnNpb25zIG9mIEdDQywgY2hlY2sgZm9y IGFub255bW91cwogIAkgbmFtZXNwYWNlcyBiYXNlZCBvbiB0aGUgZGVtYW5nbGVkIG5hbWUuICAq LwogICAgICAgIGlmICghcHJvY2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8KQEAgLTU5MjgsNyAr NjI0NSwxNiBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogIAljcF9zY2FuX2Zvcl9h bm9ueW1vdXNfbmFtZXNwYWNlcyAoc3ltKTsKICAgICAgfQogICAgcmV0dXJuIChzeW0pOwotQEAg LTg4MDgsNiArOTE1Miw5IEBAIHJlYWRfdHlwZV9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04ODAyLDEyICs5Mzk4LDE4IEBAIHJlYWRfdHlwZV9k aWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgICAgY2Fz ZSBEV19UQUdfbmFtZXNwYWNlOgorICAgICAgIHRoaXNfdHlwZSA9IHJlYWRfbmFtZXNwYWNlX3R5 cGUgKGRpZSwgY3UpOworICAgICAgIGJyZWFrOworKyAgICBjYXNlIERXX1RBR19tb2R1bGU6Cisr ICAgICAgdGhpc190eXBlID0gcmVhZF9tb2R1bGVfdHlwZSAoZGllLCBjdSk7CisrICAgICAgYnJl YWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRz LCBfKCJ1bmV4cGVjdGVkIHRhZyBpbiByZWFkX3R5cGVfZGllOiAnJXMnIiksCisgCQkgZHdhcmZf dGFnX25hbWUgKGRpZS0+dGFnKSk7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKQEAgLTU5Mzgs NyArNjI2NCw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICByZXR1cm4gdGhp c190eXBlOwogIH0KICAKLUBAIC04ODg5LDEwICs5MjM2LDk3IEBAIGRldGVybWluZV9wcmVmaXgg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04ODg5LDEw ICs5NDkxLDk3IEBAIGRldGVybWluZV9wcmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKICAJICAgICBTbyBpdCBkb2VzIG5vdCBuZWVkIGEgcHJlZml4LiAg Ki8KICAJICByZXR1cm4gIiI7CiAgICAgICAgZGVmYXVsdDoKQEAgLTYwMzcsMjMgKzYzNjMsMjMg QEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICAvKiBSZXR1cm4gYSBuZXdseS1hbGxv Y2F0ZWQgc3RyaW5nIGZvcm1lZCBieSBjb25jYXRlbmF0aW5nIFBSRUZJWCBhbmQKICAgICBTVUZG SVggd2l0aCBhcHByb3ByaWF0ZSBzZXBhcmF0b3IuICBJZiBQUkVGSVggb3IgU1VGRklYIGlzIE5V TEwgb3IgZW1wdHksIHRoZW4KICAgICBzaW1wbHkgY29weSB0aGUgU1VGRklYIG9yIFBSRUZJWCwg cmVzcGVjdGl2ZWx5LiAgSWYgT0JTIGlzIG5vbi1udWxsLAotQEAgLTg5NDgsMTQgKzkzODIsNzUg QEAgc3RhdGljIGNoYXIgKgorQEAgLTg5NDgsMTQgKzk2MzcsMTA4IEBAIHN0YXRpYyBjaGFyICoK ICBkd2FyZjJfbGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgewogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICsgIGNoYXIgKm5hbWU7 CiArCiArICBuYW1lID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOworKworKyAgLyogVGhlc2UgYXJl IHRoZSBvbmx5IGxhbmd1YWdlcyB3ZSBrbm93IGhvdyB0byBxdWFsaWZ5IG5hbWVzIGluLiAgKi8K KysgIGlmIChjdS0+bGFuZ3VhZ2UgIT0gbGFuZ3VhZ2VfY3BsdXMKKysgICAgICAmJiBjdS0+bGFu Z3VhZ2UgIT0gbGFuZ3VhZ2VfamF2YSkKKysgICAgcmV0dXJuIG5hbWU7CiAgCiAtICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfTUlQU19saW5rYWdlX25hbWUsIGN1KTsKIC0gIGlmIChh dHRyICYmIERXX1NUUklORyAoYXR0cikpCiAtICAgIHJldHVybiBEV19TVFJJTkcgKGF0dHIpOwog LSAgcmV0dXJuIGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKLSsgIC8qIFRoZXNlIGFyZSB0aGUgb25s eSBsYW5ndWFnZXMgd2Uga25vdyBob3cgdG8gcXVhbGlmeSBuYW1lcyBpbi4gICovCi0rICBpZiAo Y3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2NwbHVzCi0rICAgICAgJiYgY3UtPmxhbmd1YWdlICE9 IGxhbmd1YWdlX2phdmEpCi0rICAgIHJldHVybiBuYW1lOwotKwogKyAgaWYgKGRpZV9uZWVkc19u YW1lc3BhY2UgKGRpZSwgY3UpKQogKyAgICB7CiArICAgICAgbG9uZyBsZW5ndGg7CkBAIC02MTE0 LDE0ICs2NDQwLDQ3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgfQogIAogLS8q IEdldCBuYW1lIG9mIGEgZGllLCByZXR1cm4gTlVMTCBpZiBub3QgZm91bmQuICAqLwotKy8qIENh bm9uaWNhbGl6ZSB0aGUgbmFtZSBvZiB0aGUgZ2l2ZW4gRElFLiAgKi8KLSAKLSBzdGF0aWMgY2hh ciAqCi0gZHdhcmYyX2Nhbm9uaWNhbGl6ZV9uYW1lIChjaGFyICpuYW1lLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSwKLUBAIC0xMDE4MSwxMSArMTA2NzYsMTIgQEAgZHdhcmYyX2dldF9yZWZfZGllX29m ZnNldCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKLSAgIHJldHVybiAwOwotIH0KLSAKKysvKiBS ZXR1cm4gdGhlIGZ1bGx5IHF1YWxpZmllZCAuc3ltdGFiIG5hbWUgZm9yIHN5bWJvbHMgY29udGFp bmVkIGluIEZvcnRyYW4KKysgICBtb2R1bGVzLiAgUmV0dXJuIERXQVJGMl9OQU1FIG90aGVyd2lz ZS4gICovCisrCisrc3RhdGljIGNoYXIgKgorK2ZvcnRyYW5fbW9kdWxlX2xpbmthZ2VfbmFtZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorK3sKKysgIGNoYXIg Km5hbWU7CisrCisrICBnZGJfYXNzZXJ0IChjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJh bik7CisrCisrICBuYW1lID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOworKworKyAgaWYgKG5hbWUg JiYgZGllLT5wYXJlbnQgJiYgZGllLT5wYXJlbnQtPnRhZyA9PSBEV19UQUdfbW9kdWxlKQorKyAg ICB7CisrICAgICAgY2hhciAqbW9kdWxlX25hbWUgPSBkd2FyZjJfbmFtZSAoZGllLT5wYXJlbnQs IGN1KTsKKysKKysgICAgICBpZiAobW9kdWxlX25hbWUpCisrCXsKKysJICBjaGFyICpyZXR2YWw7 CisrCisrCSAgLyogYF9fbW9kdWxlbmFtZV9NT0RfdmFyaWFibGVuYW1lMCcuICAqLworKwkgIHJl dHZhbCA9IG9ic3RhY2tfYWxsb2MgKCZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLAorKwkJ CQkgIDIgKyBzdHJsZW4gKG1vZHVsZV9uYW1lKSArIDUgKyBzdHJsZW4gKG5hbWUpCisrCQkJCSAg KyAxKTsKKysJICBzcHJpbnRmIChyZXR2YWwsICJfXyVzX01PRF8lcyIsIG1vZHVsZV9uYW1lLCBu YW1lKTsKKysKKysJICByZXR1cm4gcmV0dmFsOworKwl9CisrICAgIH0KKysKKysgIHJldHVybiBu YW1lOworK30KKysKKysvKiBDYW5vbmljYWxpemUgdGhlIG5hbWUgb2YgdGhlIGdpdmVuIERJRS4g ICovCisgCisgc3RhdGljIGNoYXIgKgorIGR3YXJmMl9jYW5vbmljYWxpemVfbmFtZSAoY2hhciAq bmFtZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UsCitAQCAtMTAxODEsMTEgKzEwOTY0LDEyIEBAIGR3 YXJmMl9nZXRfcmVmX2RpZV9vZmZzZXQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCisgICByZXR1 cm4gMDsKKyB9CisgCiAtLyogUmV0dXJuIHRoZSBjb25zdGFudCB2YWx1ZSBoZWxkIGJ5IHRoZSBn aXZlbiBhdHRyaWJ1dGUuICBSZXR1cm4gLTEKICsvKiBSZXR1cm4gdGhlIGNvbnN0YW50IHZhbHVl IGhlbGQgYnkgdGhlIGdpdmVuIGF0dHJpYnV0ZS4gIFJldHVybiBERUZBVUxUX1ZBTFVFCiAgICAg aWYgdGhlIHZhbHVlIGhlbGQgYnkgdGhlIGF0dHJpYnV0ZSBpcyBub3QgY29uc3RhbnQuICAqLwpA QCAtNjEzNCw3ICs2NDkzLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICB7CiAg ICBpZiAoYXR0ci0+Zm9ybSA9PSBEV19GT1JNX3NkYXRhKQogICAgICByZXR1cm4gRFdfU05EIChh dHRyKTsKLUBAIC0xMDE5NSw2ICsxMDY5MSw4IEBAIGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92 YWx1ZSAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgaW50IGRlZmF1bHRfdmFsdWUpCitAQCAtMTAx OTUsNiArMTA5NzksOCBAQCBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHIsIGludCBkZWZhdWx0X3ZhbHVlKQogICAgICAgICAgICAgfHwgYXR0ci0+ Zm9ybSA9PSBEV19GT1JNX2RhdGE0CiAgICAgICAgICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZP Uk1fZGF0YTgpCiAgICAgIHJldHVybiBEV19VTlNORCAoYXR0cik7CkBAIC02MTQzLDcgKzY1MDIs NyBAQCBpbmRleCA0NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgZWxzZQogICAgICB7CiAgICAg ICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBfKCJBdHRyaWJ1dGUgdmFsdWUgaXMg bm90IGEgY29uc3RhbnQgKCVzKSIpLAotQEAgLTEwOTkwLDggKzExNDg4LDYgQEAgZHdhcmZfZGVj b2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwK K0BAIC0xMDk5MCw4ICsxMTc3Niw2IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5l X2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgewogICAgZ2RiX2J5dGUgKm1hY19w dHIsICptYWNfZW5kOwogICAgc3RydWN0IG1hY3JvX3NvdXJjZV9maWxlICpjdXJyZW50X2ZpbGUg PSAwOwpAQCAtNjE1Miw3ICs2NTExLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQK ICAKICAgIGlmIChkd2FyZjJfcGVyX29iamZpbGUtPm1hY2luZm8uYnVmZmVyID09IE5VTEwpCiAg ICAgIHsKLUBAIC0xMDk5OSwyOSArMTE0OTUsMTkgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3Ry dWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKK0BAIC0xMDk5OSwyOSAr MTE3ODMsMTkgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwg dW5zaWduZWQgaW50IG9mZnNldCwKICAgICAgICByZXR1cm47CiAgICAgIH0KICAKQEAgLTYxODcs NyArNjU0Niw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICAgICAgICB9CiAg CiAgICAgICAgbWFjaW5mb190eXBlID0gcmVhZF8xX2J5dGUgKGFiZmQsIG1hY19wdHIpOwotQEAg LTExMDMyLDkyICsxMTUxOCw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hl YWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTEwMzIsOTIgKzExODA2LDcgQEAg ZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50 IG9mZnNldCwKICAgICAgICAgICAgLyogQSB6ZXJvIG1hY2luZm8gdHlwZSBpbmRpY2F0ZXMgdGhl IGVuZCBvZiB0aGUgbWFjcm8KICAgICAgICAgICAgICAgaW5mb3JtYXRpb24uICAqLwogICAgICAg ICAgY2FzZSAwOgpAQCAtNjI4MSw3ICs2NjQwLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAx MDA2NDQKICAKICAgICAgICAgIGNhc2UgRFdfTUFDSU5GT19kZWZpbmU6CiAgICAgICAgICBjYXNl IERXX01BQ0lORk9fdW5kZWY6Ci1AQCAtMTExMzIsMzEgKzExNTMzLDE5IEBAIGR3YXJmX2RlY29k ZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitA QCAtMTExMzIsMzEgKzExODIxLDE5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5l X2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgICAgbWFjX3B0ciAr PSBieXRlc19yZWFkOwogIAogICAgICAgICAgICAgIGlmICghIGN1cnJlbnRfZmlsZSkKQEAgLTYz MjQsNyArNjY4Myw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICAgICAgICAg IH0KICAgICAgICAgICAgYnJlYWs7CiAgCi1AQCAtMTExNzAsMjIgKzExNTU5LDkgQEAgZHdhcmZf ZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNl dCwKK0BAIC0xMTE3MCwyMiArMTE4NDcsOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3Qg bGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgICAgICAgICAgIGZpbGUg PSByZWFkX3Vuc2lnbmVkX2xlYjEyOCAoYWJmZCwgbWFjX3B0ciwgJmJ5dGVzX3JlYWQpOwogICAg ICAgICAgICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKICAKQEAgLTYzNTAsNyArNjcwOSw3IEBA IGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICAgICAgICAgIH0KICAgICAgICAgICAg YnJlYWs7CiAgCi1AQCAtMTEyMzksNyArMTE2MTUsNyBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChz dHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMjM5LDcg KzExOTAzLDcgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwg dW5zaWduZWQgaW50IG9mZnNldCwKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAg ICAgICAgIH0KQEAgLTYzNTksNyArNjcxOCw3IEBAIGluZGV4IDQ0NWJhYjguLjY1NTU2YzkgMTAw NjQ0CiAgfQogIAogIC8qIENoZWNrIGlmIHRoZSBhdHRyaWJ1dGUncyBmb3JtIGlzIGEgRFdfRk9S TV9ibG9jayoKLUBAIC0xMTI5OSw2ICsxMTY3NSwzNCBAQCBhdHRyX2Zvcm1faXNfY29uc3RhbnQg KHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpCitAQCAtMTEyOTksNiArMTE5NjMsMzQgQEAgYXR0cl9m b3JtX2lzX2NvbnN0YW50IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQogICAgICB9CiAgfQogIApA QCAtNjM5NCw3ICs2NzUzLDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICBzdGF0 aWMgdm9pZAogIGR3YXJmMl9zeW1ib2xfbWFya19jb21wdXRlZCAoc3RydWN0IGF0dHJpYnV0ZSAq YXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAogIAkJCSAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3Up Ci1AQCAtMTEzMjgsMzUgKzExNzMyLDI1IEBAIGR3YXJmMl9zeW1ib2xfbWFya19jb21wdXRlZCAo c3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAorQEAgLTExMzI4LDM1 ICsxMjAyMCwyNSBAQCBkd2FyZjJfc3ltYm9sX21hcmtfY29tcHV0ZWQgKHN0cnVjdCBhdHRyaWJ1 dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAgICAgICBTWU1CT0xfQ09NUFVURURfT1BT IChzeW0pID0gJmR3YXJmMl9sb2NsaXN0X2Z1bmNzOwogICAgICAgIFNZTUJPTF9MT0NBVElPTl9C QVRPTiAoc3ltKSA9IGJhdG9uOwogICAgICB9CkBAIC02NDQ1LDcgKzY4MDQsNyBAQCBpbmRleCA0 NDViYWI4Li42NTU1NmM5IDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTExNjQ0LDYgKzEyMDM4 LDMxIEBAIG9mZnNldF9hbmRfdHlwZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZv aWQgKml0ZW1fcmhzKQorQEAgLTExNjQ0LDYgKzEyMzI2LDMxIEBAIG9mZnNldF9hbmRfdHlwZV9l cSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZvaWQgKml0ZW1fcmhzKQogICAgcmV0dXJu IG9mc19saHMtPm9mZnNldCA9PSBvZnNfcmhzLT5vZmZzZXQ7CiAgfQogIApAQCAtNjQ3Nyw3ICs2 ODM2LDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICAvKiBTZXQgdGhlIHR5cGUg YXNzb2NpYXRlZCB3aXRoIERJRSB0byBUWVBFLiAgU2F2ZSBpdCBpbiBDVSdzIGhhc2gKICAgICB0 YWJsZSBpZiBuZWNlc3NhcnkuICBGb3IgY29udmVuaWVuY2UsIHJldHVybiBUWVBFLiAgKi8KICAK LUBAIC0xMTY1Miw2ICsxMjA3MSw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xMTY1Miw2 ICsxMjM1OSw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1Y3QgZHdhcmYyX29m ZnNldF9hbmRfdHlwZSAqKnNsb3QsIG9mczsKICAKQEAgLTY0ODYsNyArNjg0NSw3IEBAIGluZGV4 IDQ0NWJhYjguLjY1NTU2YzkgMTAwNjQ0CiAgICBpZiAoY3UtPnR5cGVfaGFzaCA9PSBOVUxMKQog ICAgICB7CiAgICAgICAgZ2RiX2Fzc2VydCAoY3UtPnBlcl9jdSAhPSBOVUxMKTsKLUBAIC0xMTc5 NCwyMyArMTIyMTUsMTMgQEAgc2hvd19kd2FyZjJfY21kIChjaGFyICphcmdzLCBpbnQgZnJvbV90 dHkpCitAQCAtMTE3OTQsMjMgKzEyNTAzLDEzIEBAIHNob3dfZHdhcmYyX2NtZCAoY2hhciAqYXJn cywgaW50IGZyb21fdHR5KQogICAgY21kX3Nob3dfbGlzdCAoc2hvd19kd2FyZjJfY21kbGlzdCwg ZnJvbV90dHksICIiKTsKICB9CiAgCkBAIC02NTE0LDcgKzY4NzMsNyBAQCBpbmRleCA0NDViYWI4 Li42NTU1NmM5IDEwMDY0NAogIH0KICAKICAvKiBtdW5tYXAgZGVidWcgc2VjdGlvbnMgZm9yIE9C SkZJTEUsIGlmIG5lY2Vzc2FyeS4gICovCi1AQCAtMTE4MTksMTUgKzEyMjMwLDE1IEBAIHN0YXRp YyB2b2lkCitAQCAtMTE4MTksMTUgKzEyNTE4LDE1IEBAIHN0YXRpYyB2b2lkCiAgZHdhcmYyX3Bl cl9vYmpmaWxlX2NsZWFudXAgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCB2b2lkICpkKQogIHsK ICAgIHN0cnVjdCBkd2FyZjJfcGVyX29iamZpbGUgKmRhdGEgPSBkOwpAQCAtNjUzOSw3ICs2ODk4 LDcgQEAgaW5kZXggNDQ1YmFiOC4uNjU1NTZjOSAxMDA2NDQKICB9CiAgCiAgdm9pZCBfaW5pdGlh bGl6ZV9kd2FyZjJfcmVhZCAodm9pZCk7Ci1AQCAtMTE4MzUsNiArMTIyNDYsNyBAQCB2b2lkIF9p bml0aWFsaXplX2R3YXJmMl9yZWFkICh2b2lkKTsKK0BAIC0xMTgzNSw2ICsxMjUzNCw3IEBAIHZv aWQgX2luaXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpOwogIHZvaWQKICBfaW5pdGlhbGl6ZV9k d2FyZjJfcmVhZCAodm9pZCkKICB7CkBAIC02OTUwLDEwICs3MzA5LDE5IEBAIGluZGV4IGMwNGM4 ZjQuLmRkY2Q0NjAgMTAwNjQ0CiAgICB7ICJpbnRlZ2VyIiwgSU5UX0tFWVdPUkQsIEJJTk9QX0VO RCB9LAogICAgeyAibG9naWNhbCIsIExPR0lDQUxfS0VZV09SRCwgQklOT1BfRU5EIH0sCiBkaWZm IC0tZ2l0IGEvZ2RiL2YtbGFuZy5jIGIvZ2RiL2YtbGFuZy5jCi1pbmRleCAxOWMxMzE2Li44ZDJh NTM4IDEwMDY0NAoraW5kZXggMTljMTMxNi4uNGNjMmE0MCAxMDA2NDQKIC0tLSBhL2dkYi9mLWxh bmcuYwogKysrIGIvZ2RiL2YtbGFuZy5jCi1AQCAtNTUsMjAgKzU1LDYgQEAgdHlwZWRlZiBzdHJ1 Y3Qgc2F2ZWRfYmZfc3ltbnVtIFNBVkVEX0JGLCAqU0FWRURfQkZfUFRSOworQEAgLTMxLDYgKzMx LDggQEAKKyAjaW5jbHVkZSAiZi1sYW5nLmgiCisgI2luY2x1ZGUgInZhbHByaW50LmgiCisgI2lu Y2x1ZGUgInZhbHVlLmgiCisrI2luY2x1ZGUgImJsb2NrLmgiCisrI2luY2x1ZGUgImdkYl9hc3Nl cnQuaCIKKyAKKyAKKyAvKiBGb2xsb3dpbmcgaXMgZHViaW91cyBzdHVmZiB0aGF0IGhhZCBiZWVu IGluIHRoZSB4Y29mZiByZWFkZXIuICovCitAQCAtNTUsMjAgKzU3LDYgQEAgdHlwZWRlZiBzdHJ1 Y3Qgc2F2ZWRfYmZfc3ltbnVtIFNBVkVEX0JGLCAqU0FWRURfQkZfUFRSOwogIC8qIExvY2FsIGZ1 bmN0aW9ucyAqLwogIAogIGV4dGVybiB2b2lkIF9pbml0aWFsaXplX2ZfbGFuZ3VhZ2UgKHZvaWQp OwpAQCAtNjk3NCw3ICs3MzQyLDcgQEAgaW5kZXggMTljMTMxNi4uOGQyYTUzOCAxMDA2NDQKICAK ICBzdGF0aWMgdm9pZCBmX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1 Y3QgdWlfZmlsZSAqIHN0cmVhbSk7CiAgc3RhdGljIHZvaWQgZl9lbWl0X2NoYXIgKGludCBjLCBz dHJ1Y3QgdHlwZSAqdHlwZSwKLUBAIC0yNTksNiArMjQ1LDcgQEAgZW51bSBmX3ByaW1pdGl2ZV90 eXBlcyB7CitAQCAtMjU5LDYgKzI0Nyw3IEBAIGVudW0gZl9wcmltaXRpdmVfdHlwZXMgewogICAg Zl9wcmltaXRpdmVfdHlwZV9sb2dpY2FsLAogICAgZl9wcmltaXRpdmVfdHlwZV9sb2dpY2FsX3Mx LAogICAgZl9wcmltaXRpdmVfdHlwZV9sb2dpY2FsX3MyLApAQCAtNjk4Miw3ICs3MzUwLDcgQEAg aW5kZXggMTljMTMxNi4uOGQyYTUzOCAxMDA2NDQKICAgIGZfcHJpbWl0aXZlX3R5cGVfaW50ZWdl ciwKICAgIGZfcHJpbWl0aXZlX3R5cGVfaW50ZWdlcl9zMiwKICAgIGZfcHJpbWl0aXZlX3R5cGVf cmVhbCwKLUBAIC0yODksNiArMjc2LDggQEAgZl9sYW5ndWFnZV9hcmNoX2luZm8gKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLAorQEAgLTI4OSw2ICsyNzgsOCBAQCBmX2xhbmd1YWdlX2FyY2hfaW5m byAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgICAgID0gYnVpbHRpbi0+YnVpbHRpbl9sb2dp Y2FsX3MxOwogICAgbGFpLT5wcmltaXRpdmVfdHlwZV92ZWN0b3IgW2ZfcHJpbWl0aXZlX3R5cGVf bG9naWNhbF9zMl0KICAgICAgPSBidWlsdGluLT5idWlsdGluX2xvZ2ljYWxfczI7CkBAIC02OTkx LDcgKzczNTksNjMgQEAgaW5kZXggMTljMTMxNi4uOGQyYTUzOCAxMDA2NDQKICAgIGxhaS0+cHJp bWl0aXZlX3R5cGVfdmVjdG9yIFtmX3ByaW1pdGl2ZV90eXBlX3JlYWxdCiAgICAgID0gYnVpbHRp bi0+YnVpbHRpbl9yZWFsOwogICAgbGFpLT5wcmltaXRpdmVfdHlwZV92ZWN0b3IgW2ZfcHJpbWl0 aXZlX3R5cGVfcmVhbF9zOF0KLUBAIC0zNzIsNiArMzYxLDEwIEBAIGJ1aWxkX2ZvcnRyYW5fdHlw ZXMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQorQEAgLTMwNiw2ICsyOTcsNDYgQEAgZl9sYW5n dWFnZV9hcmNoX2luZm8gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorICAgbGFpLT5ib29sX3R5 cGVfZGVmYXVsdCA9IGJ1aWx0aW4tPmJ1aWx0aW5fbG9naWNhbF9zMjsKKyB9CisgCisrLyogRmlu ZCBpZiBOQU1FIGlzIG5vdCBjb250YWluZWQgaW4gYW55IG9mIHRoZSBGb3J0cmFuIG1vZHVsZXMg aW1wb3J0ZWQgYnkgdGhlCisrICAgRm9ydHJhbiBVU0Ugc3RhdGVtZW50LgorKworKyAgIEFzIEZv cnRyYW4gaGFzIG5vIG5lc3RlZCBibG9ja3Mgc3VjaCBsb29rdXAgY2FuIGJlIHByb2Nlc3NlZCBm cm9tCisrICAgbG9va3VwX3N5bWJvbF9ub25sb2NhbCAtIHdoZW4gbm8gbG9jYWwgYmxvY2tzIGNv dWxkIHNhdGlzZnkgdGhlIGxvb2t1cC4gICovCisrCisrc3RhdGljIHN0cnVjdCBzeW1ib2wgKgor K2ZfbG9va3VwX3N5bWJvbF9ub25sb2NhbCAoY29uc3QgY2hhciAqbmFtZSwKKysJCQkgIGNvbnN0 IHN0cnVjdCBibG9jayAqYmxvY2ssCisrCQkJICBjb25zdCBkb21haW5fZW51bSBkb21haW4pCisr eworKyAgc3RydWN0IGZvcnRyYW5fdXNpbmcgKnVzZTsKKysKKysgIGlmICghYmxvY2spCisrICAg IHJldHVybiBOVUxMOworKworKyAgZm9yICh1c2UgPSBCTE9DS19GT1JUUkFOX1VTRSAoYmxvY2sp OyB1c2U7IHVzZSA9IHVzZS0+bmV4dCkKKysgICAgeworKyAgICAgIHN0cnVjdCBzeW1ib2wgKnN5 bTsKKysgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKysgICAgICBzdHJ1Y3Qgc3ltYm9sICpyZXR2 YWw7CisrCisrICAgICAgc3ltID0gbG9va3VwX3N5bWJvbF9nbG9iYWwgKHVzZS0+bW9kdWxlX25h bWUsIGJsb2NrLCBNT0RVTEVfRE9NQUlOKTsKKysKKysgICAgICAvKiBNb2R1bGUgbmFtZSBsb29r dXAgc2hvdWxkIG5vdCBmYWlsIHdpdGggY29ycmVjdCBkZWJ1ZyBpbmZvLiAgKi8KKysgICAgICBp ZiAoc3ltID09IE5VTEwpCisrCWNvbnRpbnVlOworKworKyAgICAgIHR5cGUgPSBTWU1CT0xfVFlQ RSAoc3ltKTsKKysgICAgICBnZGJfYXNzZXJ0IChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09E RV9NT0RVTEUpOworKyAgICAgIGdkYl9hc3NlcnQgKFRZUEVfTU9EVUxFX0JMT0NLICh0eXBlKSAh PSBOVUxMKTsKKysKKysgICAgICByZXR2YWwgPSBsb29rdXBfYmxvY2tfc3ltYm9sIChUWVBFX01P RFVMRV9CTE9DSyAodHlwZSksIG5hbWUsIGRvbWFpbik7CisrICAgICAgaWYgKHJldHZhbCkKKysJ cmV0dXJuIHJldHZhbDsKKysgICAgfQorKworKyAgcmV0dXJuIE5VTEw7CisrfQorKworIC8qIFRo aXMgaXMgZGVjbGFyZWQgaW4gYy1sYW5nLmggYnV0IGl0IGlzIHNpbGx5IHRvIGltcG9ydCB0aGF0 IGZpbGUgZm9yIHdoYXQKKyAgICBpcyBhbHJlYWR5IGp1c3QgYSBoYWNrLiAqLworIGV4dGVybiBp bnQgY192YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICosIHN0cnVjdCB1aV9maWxlICosCitAQCAt MzMzLDcgKzM2NCw3IEBAIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuIGZfbGFuZ3VhZ2VfZGVm biA9CisgICBjX3ZhbHVlX3ByaW50LAkJLyogRklYTUUgKi8KKyAgIE5VTEwsCQkJCS8qIExhbmd1 YWdlIHNwZWNpZmljIHNraXBfdHJhbXBvbGluZSAqLworICAgTlVMTCwgICAgICAgICAgICAgICAg ICAgIAkvKiBuYW1lX29mX3RoaXMgKi8KKy0gIGJhc2ljX2xvb2t1cF9zeW1ib2xfbm9ubG9jYWws CS8qIGxvb2t1cF9zeW1ib2xfbm9ubG9jYWwgKi8KKysgIGZfbG9va3VwX3N5bWJvbF9ub25sb2Nh bCwJLyogbG9va3VwX3N5bWJvbF9ub25sb2NhbCAqLworICAgYmFzaWNfbG9va3VwX3RyYW5zcGFy ZW50X3R5cGUsLyogbG9va3VwX3RyYW5zcGFyZW50X3R5cGUgKi8KKyAgIE5VTEwsCQkJCS8qIExh bmd1YWdlIHNwZWNpZmljIHN5bWJvbCBkZW1hbmdsZXIgKi8KKyAgIE5VTEwsCQkJCS8qIExhbmd1 YWdlIHNwZWNpZmljIGNsYXNzX25hbWVfZnJvbV9waHlzbmFtZSAqLworQEAgLTM3Miw2ICs0MDMs MTAgQEAgYnVpbGRfZm9ydHJhbl90eXBlcyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCiAgICAg ID0gYXJjaF9ib29sZWFuX3R5cGUgKGdkYmFyY2gsIGdkYmFyY2hfc2hvcnRfYml0IChnZGJhcmNo KSwgMSwKICAJCQkgImxvZ2ljYWwqMiIpOwogIApAQCAtNzAwMiw3ICs3NDI2LDcgQEAgaW5kZXgg MTljMTMxNi4uOGQyYTUzOCAxMDA2NDQKICAgIGJ1aWx0aW5fZl90eXBlLT5idWlsdGluX2ludGVn ZXIKICAgICAgPSBhcmNoX2ludGVnZXJfdHlwZSAoZ2RiYXJjaCwgZ2RiYXJjaF9pbnRfYml0IChn ZGJhcmNoKSwgMCwKICAJCQkgImludGVnZXIiKTsKLUBAIC00MTgsMzk1ICs0MTEsMyBAQCBfaW5p dGlhbGl6ZV9mX2xhbmd1YWdlICh2b2lkKQorQEAgLTQxOCwzOTUgKzQ1MywzIEBAIF9pbml0aWFs aXplX2ZfbGFuZ3VhZ2UgKHZvaWQpCiAgCiAgICBhZGRfbGFuZ3VhZ2UgKCZmX2xhbmd1YWdlX2Rl Zm4pOwogIH0KQEAgLTczOTksNyArNzgyMyw3IEBAIGluZGV4IDE5YzEzMTYuLjhkMmE1MzggMTAw NjQ0CiAtfQogLSNlbmRpZgogZGlmZiAtLWdpdCBhL2dkYi9mLWxhbmcuaCBiL2dkYi9mLWxhbmcu aAotaW5kZXggNzExYmRiYS4uY2QyZjgwNCAxMDA2NDQKK2luZGV4IDcxMWJkYmEuLjlkN2Q5MmIg MTAwNjQ0CiAtLS0gYS9nZGIvZi1sYW5nLmgKICsrKyBiL2dkYi9mLWxhbmcuaAogQEAgLTI4LDYg KzI4LDEwIEBAIGV4dGVybiB2b2lkIGZfZXJyb3IgKGNoYXIgKik7CS8qIERlZmluZWQgaW4gZi1l eHAueSAqLwpAQCAtNzQ2Myw2ICs3ODg3LDE3IEBAIGluZGV4IDcxMWJkYmEuLmNkMmY4MDQgMTAw NjQ0CiAgICBzdHJ1Y3QgdHlwZSAqYnVpbHRpbl9yZWFsOwogICAgc3RydWN0IHR5cGUgKmJ1aWx0 aW5fcmVhbF9zODsKICAgIHN0cnVjdCB0eXBlICpidWlsdGluX3JlYWxfczE2OworQEAgLTEyNSwz ICs5NywxMCBAQCBzdHJ1Y3QgYnVpbHRpbl9mX3R5cGUKKyAvKiBSZXR1cm4gdGhlIEZvcnRyYW4g dHlwZSB0YWJsZSBmb3IgdGhlIHNwZWNpZmllZCBhcmNoaXRlY3R1cmUuICAqLworIGV4dGVybiBj b25zdCBzdHJ1Y3QgYnVpbHRpbl9mX3R5cGUgKmJ1aWx0aW5fZl90eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCk7CisgCisrLyogTGlzdCBvZiBtb2R1bGUgbmFtZXMgYmVpbmcgaW1wb3J0ZWQg YnkgYSBibG9jayB0aG91Z2ggQkxPQ0tfRk9SVFJBTl9VU0UuICAqLworKworK3N0cnVjdCBmb3J0 cmFuX3VzaW5nCisrICB7CisrICAgIHN0cnVjdCBmb3J0cmFuX3VzaW5nICpuZXh0OworKyAgICBj aGFyIG1vZHVsZV9uYW1lWzFdOworKyAgfTsKIGRpZmYgLS1naXQgYS9nZGIvZi10eXBlcHJpbnQu YyBiL2dkYi9mLXR5cGVwcmludC5jCiBpbmRleCA2Yzk2NjhmLi44NTJiOWE4IDEwMDY0NAogLS0t IGEvZ2RiL2YtdHlwZXByaW50LmMKQEAgLTgyOTgsNyArODczMyw3IEBAIGluZGV4IDhjMDI3Yzku LmQyMDFmNzYgMTAwNjQ0CiAgICBlbHNlCiAgICAgIHsKIGRpZmYgLS1naXQgYS9nZGIvZnJhbWUu YyBiL2dkYi9mcmFtZS5jCi1pbmRleCA2N2UwNjA3Li40OWMzMDEzIDEwMDY0NAoraW5kZXggNjdl MDYwNy4uN2RjZjJjYiAxMDA2NDQKIC0tLSBhL2dkYi9mcmFtZS5jCiArKysgYi9nZGIvZnJhbWUu YwogQEAgLTExMDksNiArMTEwOSwxNCBAQCBoYXNfc3RhY2tfZnJhbWVzICh2b2lkKQpAQCAtODMx Niw3ICs4NzUxLDcgQEAgaW5kZXggNjdlMDYwNy4uNDljMzAxMyAxMDA2NDQKICAgIC8qIERvbid0 IHRyeSB0byByZWFkIGZyb20gYSBkZWFkIHRocmVhZC4gICovCiAgICBpZiAoaXNfZXhpdGVkIChp bmZlcmlvcl9wdGlkKSkKICAgICAgcmV0dXJuIDA7Ci1AQCAtMTg0Myw2ICsxODUxLDE1IEBAIGdl dF9mcmFtZV9hcmdzX2FkZHJlc3MgKHN0cnVjdCBmcmFtZV9pbmZvICpmaSkKK0BAIC0xODQzLDYg KzE4NTEsMTcgQEAgZ2V0X2ZyYW1lX2FyZ3NfYWRkcmVzcyAoc3RydWN0IGZyYW1lX2luZm8gKmZp KQogICAgcmV0dXJuIGZpLT5iYXNlLT50aGlzX2FyZ3MgKGZpLCAmZmktPmJhc2VfY2FjaGUpOwog IH0KICAKQEAgLTgzMjYsNiArODc2MSw4IEBAIGluZGV4IDY3ZTA2MDcuLjQ5YzMwMTMgMTAwNjQ0 CiAraW50CiArZnJhbWVfdW53aW5kZXJfaXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmaSwgY29uc3Qg c3RydWN0IGZyYW1lX3Vud2luZCAqdW53aW5kZXIpCiAreworKyAgaWYgKGZpLT51bndpbmQgPT0g TlVMTCkKKysgICAgZmktPnVud2luZCA9IGZyYW1lX3Vud2luZF9maW5kX2J5X2ZyYW1lIChmaSwg JmZpLT5wcm9sb2d1ZV9jYWNoZSk7CiArICByZXR1cm4gZmktPnVud2luZCA9PSB1bndpbmRlcjsK ICt9CiArCkBAIC05NjEwLDEwICsxMDA0NywxOSBAQCBpbmRleCAyZjc3ZGNhLi44MTQ2MTc1IDEw MDY0NAogIAogICAgYWRkX3NldHNob3dfemludGVnZXJfY21kICgib3ZlcmxvYWQiLCBub19jbGFz cywgJm92ZXJsb2FkX2RlYnVnLCBfKCJcCiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9n ZGIvZ2RidHlwZXMuaAotaW5kZXggYmU2ZWQ1NS4uY2Y4YzRkOCAxMDA2NDQKK2luZGV4IGJlNmVk NTUuLjZhNTFhNGUgMTAwNjQ0CiAtLS0gYS9nZGIvZ2RidHlwZXMuaAogKysrIGIvZ2RiL2dkYnR5 cGVzLmgKLUBAIC0yMTMsNiArMjEzLDExIEBAIGVudW0gdHlwZV9pbnN0YW5jZV9mbGFnX3ZhbHVl CitAQCAtMTM3LDYgKzEzNyw4IEBAIGVudW0gdHlwZV9jb2RlCisgCisgICAgIFRZUEVfQ09ERV9E RUNGTE9BVCwJCS8qIERlY2ltYWwgZmxvYXRpbmcgcG9pbnQuICAqLworIAorKyAgICBUWVBFX0NP REVfTU9EVUxFLAkJLyogRm9ydHJhbiBtb2R1bGUuICAqLworKworICAgICAvKiBJbnRlcm5hbCBm dW5jdGlvbiB0eXBlLiAgKi8KKyAgICAgVFlQRV9DT0RFX0lOVEVSTkFMX0ZVTkNUSU9OCisgICB9 OworQEAgLTIxMyw2ICsyMTUsMTEgQEAgZW51bSB0eXBlX2luc3RhbmNlX2ZsYWdfdmFsdWUKICAK ICAjZGVmaW5lIFRZUEVfVEFSR0VUX1NUVUIodCkJKFRZUEVfTUFJTl9UWVBFICh0KS0+ZmxhZ190 YXJnZXRfc3R1YikKICAKQEAgLTk2MjUsNyArMTAwNzEsNyBAQCBpbmRleCBiZTZlZDU1Li5jZjhj NGQ4IDEwMDY0NAogIC8qIFN0YXRpYyB0eXBlLiAgSWYgdGhpcyBpcyBzZXQsIHRoZSBjb3JyZXNw b25kaW5nIHR5cGUgaGFkIAogICAqIGEgc3RhdGljIG1vZGlmaWVyLgogICAqIE5vdGU6IFRoaXMg bWF5IGJlIHVubmVjZXNzYXJ5LCBzaW5jZSBzdGF0aWMgZGF0YSBtZW1iZXJzCi1AQCAtMjc4LDYg KzI4Myw0OCBAQCBlbnVtIHR5cGVfaW5zdGFuY2VfZmxhZ192YWx1ZQorQEAgLTI3OCw2ICsyODUs NDggQEAgZW51bSB0eXBlX2luc3RhbmNlX2ZsYWdfdmFsdWUKICAjZGVmaW5lIFRZUEVfT1dORVIo dCkgVFlQRV9NQUlOX1RZUEUodCktPm93bmVyCiAgI2RlZmluZSBUWVBFX09CSkZJTEUodCkgKFRZ UEVfT0JKRklMRV9PV05FRCh0KT8gVFlQRV9PV05FUih0KS5vYmpmaWxlIDogTlVMTCkKICAKQEAg LTk2NzQsNyArMTAxMjAsNyBAQCBpbmRleCBiZTZlZDU1Li5jZjhjNGQ4IDEwMDY0NAogIC8qIENv bnN0YW50IHR5cGUuICBJZiB0aGlzIGlzIHNldCwgdGhlIGNvcnJlc3BvbmRpbmcgdHlwZSBoYXMg YQogICAqIGNvbnN0IG1vZGlmaWVyLgogICAqLwotQEAgLTM2NSw2ICs0MTIsMTMgQEAgc3RydWN0 IG1haW5fdHlwZQorQEAgLTM2NSw2ICs0MTQsMTMgQEAgc3RydWN0IG1haW5fdHlwZQogICAgdW5z aWduZWQgaW50IGZsYWdfbm90dGV4dCA6IDE7CiAgICB1bnNpZ25lZCBpbnQgZmxhZ19maXhlZF9p bnN0YW5jZSA6IDE7CiAgICB1bnNpZ25lZCBpbnQgZmxhZ19vYmpmaWxlX293bmVkIDogMTsKQEAg LTk2ODgsNyArMTAxMzQsNyBAQCBpbmRleCBiZTZlZDU1Li5jZjhjNGQ4IDEwMDY0NAogIAogICAg LyogTnVtYmVyIG9mIGZpZWxkcyBkZXNjcmliZWQgZm9yIHRoaXMgdHlwZS4gIFRoaXMgZmllbGQg YXBwZWFycyBhdAogICAgICAgdGhpcyBsb2NhdGlvbiBiZWNhdXNlIGl0IHBhY2tzIG5pY2VseSBo ZXJlLiAgKi8KLUBAIC00MzEsNiArNDg1LDIwIEBAIHN0cnVjdCBtYWluX3R5cGUKK0BAIC00MzEs NiArNDg3LDIwIEBAIHN0cnVjdCBtYWluX3R5cGUKICAKICAgIHN0cnVjdCB0eXBlICp0YXJnZXRf dHlwZTsKICAKQEAgLTk3MDksNyArMTAxNTUsMTcgQEAgaW5kZXggYmU2ZWQ1NS4uY2Y4YzRkOCAx MDA2NDQKICAgIC8qIEZvciBzdHJ1Y3R1cmUgYW5kIHVuaW9uIHR5cGVzLCBhIGRlc2NyaXB0aW9u IG9mIGVhY2ggZmllbGQuCiAgICAgICBGb3Igc2V0IGFuZCBwYXNjYWwgYXJyYXkgdHlwZXMsIHRo ZXJlIGlzIG9uZSAiZmllbGQiLAogICAgICAgd2hvc2UgdHlwZSBpcyB0aGUgZG9tYWluIHR5cGUg b2YgdGhlIHNldCBvciBhcnJheS4KLUBAIC04MTIsOSArODgwLDkgQEAgZXh0ZXJuIHZvaWQgYWxs b2NhdGVfY3BsdXNfc3RydWN0X3R5cGUgKHN0cnVjdCB0eXBlICopOworQEAgLTUzOCw2ICs2MDgs OSBAQCBzdHJ1Y3QgbWFpbl90eXBlCisgICAgICAgIHN1cHBvcnRpbmcgbXVsdGlwbGUgQUJJcy4g IFJpZ2h0IG5vdyB0aGlzIGlzIG9ubHkgZmV0Y2hlZCBmcm9tCisgICAgICAgIHRoZSBEd2FyZi0y IERXX0FUX2NhbGxpbmdfY29udmVudGlvbiBhdHRyaWJ1dGUuICAqLworICAgICB1bnNpZ25lZCBj YWxsaW5nX2NvbnZlbnRpb247CisrCisrICAgIC8qIEZvciBUWVBFX0NPREVfTU9EVUxFLCB0aGUg bGlzdCBvZiBzeW1ib2xzIGNvbnRhaW5lZCBpbiB0aGUgbW9kdWxlLiAgKi8KKysgICAgc3RydWN0 IGJsb2NrICptb2R1bGVfYmxvY2s7CisgICB9IHR5cGVfc3BlY2lmaWM7CisgfTsKKyAKK0BAIC04 MTIsOSArODg1LDkgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfY3BsdXNfc3RydWN0X3R5cGUgKHN0 cnVjdCB0eXBlICopOwogICNkZWZpbmUgVFlQRV9QT0lOVEVSX1RZUEUodGhpc3R5cGUpICh0aGlz dHlwZSktPnBvaW50ZXJfdHlwZQogICNkZWZpbmUgVFlQRV9SRUZFUkVOQ0VfVFlQRSh0aGlzdHlw ZSkgKHRoaXN0eXBlKS0+cmVmZXJlbmNlX3R5cGUKICAjZGVmaW5lIFRZUEVfQ0hBSU4odGhpc3R5 cGUpICh0aGlzdHlwZSktPmNoYWluCkBAIC05NzIyLDcgKzEwMTc4LDcgQEAgaW5kZXggYmU2ZWQ1 NS4uY2Y4YzRkOCAxMDA2NDQKICAgICBjYWxscyBjaGVja190eXBlZGVmLCBUWVBFX0xFTkdUSCAo VkFMVUVfVFlQRSAoWCkpIGlzIHNhZmUuICAqLwogICNkZWZpbmUgVFlQRV9MRU5HVEgodGhpc3R5 cGUpICh0aGlzdHlwZSktPmxlbmd0aAogIC8qIE5vdGUgdGhhdCBUWVBFX0NPREUgY2FuIGJlIFRZ UEVfQ09ERV9UWVBFREVGLCBzbyBpZiB5b3Ugd2FudCB0aGUgcmVhbAotQEAgLTgyMywyMyArODkx LDQ0IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2NwbHVzX3N0cnVjdF90eXBlIChzdHJ1Y3QgdHlw ZSAqKTsKK0BAIC04MjMsMjMgKzg5Niw0NCBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9jcGx1c19z dHJ1Y3RfdHlwZSAoc3RydWN0IHR5cGUgKik7CiAgI2RlZmluZSBUWVBFX05GSUVMRFModGhpc3R5 cGUpIFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBlKS0+bmZpZWxkcwogICNkZWZpbmUgVFlQRV9GSUVM RFModGhpc3R5cGUpIFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBlKS0+ZmllbGRzCiAgI2RlZmluZSBU WVBFX1RFTVBMQVRFX0FSR1ModGhpc3R5cGUpIFRZUEVfQ1BMVVNfU1BFQ0lGSUModGhpc3R5cGUp LT50ZW1wbGF0ZV9hcmdzCkBAIC05Nzc3LDcgKzEwMjMzLDE1IEBAIGluZGV4IGJlNmVkNTUuLmNm OGM0ZDggMTAwNjQ0CiAgCiAgLyogQysrICovCiAgCi1AQCAtMTEzMSw3ICsxMjIwLDcgQEAgZXh0 ZXJuIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqZmxvYXRmb3JtYXRzX2libV9sb25nX2RvdWJs ZVtCRkRfRU5ESUFOX1VOS05PV04KK0BAIC04NTUsNiArOTQ5LDcgQEAgZXh0ZXJuIHZvaWQgYWxs b2NhdGVfY3BsdXNfc3RydWN0X3R5cGUgKHN0cnVjdCB0eXBlICopOworICNkZWZpbmUgVFlQRV9D UExVU19TUEVDSUZJQyh0aGlzdHlwZSkgVFlQRV9NQUlOX1RZUEUodGhpc3R5cGUpLT50eXBlX3Nw ZWNpZmljLmNwbHVzX3N0dWZmCisgI2RlZmluZSBUWVBFX0ZMT0FURk9STUFUKHRoaXN0eXBlKSBU WVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPnR5cGVfc3BlY2lmaWMuZmxvYXRmb3JtYXQKKyAjZGVm aW5lIFRZUEVfQ0FMTElOR19DT05WRU5USU9OKHRoaXN0eXBlKSBUWVBFX01BSU5fVFlQRSh0aGlz dHlwZSktPnR5cGVfc3BlY2lmaWMuY2FsbGluZ19jb252ZW50aW9uCisrI2RlZmluZSBUWVBFX01P RFVMRV9CTE9DSyh0aGlzdHlwZSkgVFlQRV9NQUlOX1RZUEUodGhpc3R5cGUpLT50eXBlX3NwZWNp ZmljLm1vZHVsZV9ibG9jaworICNkZWZpbmUgVFlQRV9CQVNFQ0xBU1ModGhpc3R5cGUsaW5kZXgp IFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBlKS0+ZmllbGRzW2luZGV4XS50eXBlCisgI2RlZmluZSBU WVBFX05fQkFTRUNMQVNTRVModGhpc3R5cGUpIFRZUEVfQ1BMVVNfU1BFQ0lGSUModGhpc3R5cGUp LT5uX2Jhc2VjbGFzc2VzCisgI2RlZmluZSBUWVBFX0JBU0VDTEFTU19OQU1FKHRoaXN0eXBlLGlu ZGV4KSBUWVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPmZpZWxkc1tpbmRleF0ubmFtZQorQEAgLTEx MzEsNyArMTIyNiw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgZmxvYXRmb3JtYXQgKmZsb2F0Zm9y bWF0c19pYm1fbG9uZ19kb3VibGVbQkZEX0VORElBTl9VTktOT1dOCiAgICAgVXNlIGFsbG9jX3R5 cGVfYXJjaCB0byBhbGxvY2F0ZSBhIHR5cGUgb3duZWQgYnkgYW4gYXJjaGl0ZWN0dXJlLgogICAg IFVzZSBhbGxvY190eXBlX2NvcHkgdG8gYWxsb2NhdGUgYSB0eXBlIHdpdGggdGhlIHNhbWUgb3du ZXIgYXMgYQogICAgIHByZS1leGlzdGluZyB0ZW1wbGF0ZSB0eXBlLCBubyBtYXR0ZXIgd2hldGhl ciBvYmpmaWxlIG9yIGdkYmFyY2guICAqLwpAQCAtOTc4Niw3ICsxMDI1MCw3IEBAIGluZGV4IGJl NmVkNTUuLmNmOGM0ZDggMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphbGxvY190eXBlX2Fy Y2ggKHN0cnVjdCBnZGJhcmNoICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYWxsb2NfdHlwZV9j b3B5IChjb25zdCBzdHJ1Y3QgdHlwZSAqKTsKICAKLUBAIC0xMjI2LDYgKzEzMTUsMTggQEAgZXh0 ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0 IHR5cGUgKiwKK0BAIC0xMjI2LDYgKzEzMjEsMTggQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVh dGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICAgICAg IHN0cnVjdCB0eXBlICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqbG9va3VwX2FycmF5X3Jhbmdl X3R5cGUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKICAKQEAgLTk4MDUsNyArMTAyNjksNyBA QCBpbmRleCBiZTZlZDU1Li5jZjhjNGQ4IDEwMDY0NAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY3Jl YXRlX3N0cmluZ190eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqLAogIAkJCQkJc3Ry dWN0IHR5cGUgKik7CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpsb29rdXBfc3RyaW5nX3JhbmdlX3R5 cGUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKLUBAIC0xMjYyLDYgKzEzNjMsOCBAQCBleHRl cm4gaW50IGdldF9kaXNjcmV0ZV9ib3VuZHMgKHN0cnVjdCB0eXBlICosIExPTkdFU1QgKiwgTE9O R0VTVCAqKTsKK0BAIC0xMjYyLDYgKzEzNjksOCBAQCBleHRlcm4gaW50IGdldF9kaXNjcmV0ZV9i b3VuZHMgKHN0cnVjdCB0eXBlICosIExPTkdFU1QgKiwgTE9OR0VTVCAqKTsKICAKICBleHRlcm4g aW50IGlzX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsKICAKQEAgLTk4 MTQsNyArMTAyNzgsNyBAQCBpbmRleCBiZTZlZDU1Li5jZjhjNGQ4IDEwMDY0NAogIC8qIE92ZXJs b2FkIHJlc29sdXRpb24gKi8KICAKICAjZGVmaW5lIExFTkdUSF9NQVRDSChidikgKChidiktPnJh bmtbMF0pCi1AQCAtMTMyNCwxMCArMTQyNywxNSBAQCBleHRlcm4gdm9pZCBtYWludGVuYW5jZV9w cmludF90eXBlIChjaGFyICosIGludCk7CitAQCAtMTMyNCwxMCArMTQzMywxNSBAQCBleHRlcm4g dm9pZCBtYWludGVuYW5jZV9wcmludF90eXBlIChjaGFyICosIGludCk7CiAgCiAgZXh0ZXJuIGh0 YWJfdCBjcmVhdGVfY29waWVkX3R5cGVzX2hhc2ggKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKTsK ICAKQEAgLTk5MTEsNyArMTAzNzUsNyBAQCBpbmRleCA2YjY4ZTdkLi41MDk1MTgwIDEwMDY0NAog ICAgZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCwKICAgIGV2YWx1YXRlX3N1YmV4cF9qYXZhCiBk aWZmIC0tZ2l0IGEvZ2RiL2xhbmd1YWdlLmggYi9nZGIvbGFuZ3VhZ2UuaAotaW5kZXggYmEzN2Zh YS4uYThlNDFkMiAxMDA2NDQKK2luZGV4IGM2NTBlMDcuLjY2MGZkZjYgMTAwNjQ0CiAtLS0gYS9n ZGIvbGFuZ3VhZ2UuaAogKysrIGIvZ2RiL2xhbmd1YWdlLmgKIEBAIC0yMzcsNyArMjM3LDYgQEAg c3RydWN0IGxhbmd1YWdlX2RlZm4KQEAgLTk5MjMsNyArMTAzODcsNyBAQCBpbmRleCBiYTM3ZmFh Li5hOGU0MWQyIDEwMDY0NAogIAkJCQkJCSBjb25zdCBkb21haW5fZW51bSk7CiAgCiBkaWZmIC0t Z2l0IGEvZ2RiL2xpbmVzcGVjLmMgYi9nZGIvbGluZXNwZWMuYwotaW5kZXggZGViZTg2Zi4uZTE3 YTBiNiAxMDA2NDQKK2luZGV4IDNlOTQzYTEuLjNiODk1NmMgMTAwNjQ0CiAtLS0gYS9nZGIvbGlu ZXNwZWMuYwogKysrIGIvZ2RiL2xpbmVzcGVjLmMKIEBAIC0zMCw2ICszMCw3IEBACkBAIC05OTM0 LDcgKzEwMzk4LDcgQEAgaW5kZXggZGViZTg2Zi4uZTE3YTBiNiAxMDA2NDQKICAjaW5jbHVkZSAi cGFyc2VyLWRlZnMuaCIKICAjaW5jbHVkZSAiYmxvY2suaCIKICAjaW5jbHVkZSAib2JqYy1sYW5n LmgiCi1AQCAtODQwLDEzICs4NDEsMzMgQEAgZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwg aW50IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10YWIsCitAQCAtODM5 LDEzICs4NDAsMzMgQEAgZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0 bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10YWIsCiAgICAgIH0KICAgIGVsc2UgaWYg KHBhcmVuX3BvaW50ZXIgIT0gTlVMTCkKICAgICAgewpAQCAtOTk2OSw3ICsxMDQzMyw3IEBAIGlu ZGV4IGRlYmU4NmYuLmUxN2EwYjYgMTAwNjQ0CiAgICAvKiBLZWVwIGFueSB0ZW1wbGF0ZSBwYXJh bWV0ZXJzICovCiAgICBpZiAoKnAgPT0gJzwnKQogICAgICBwID0gZmluZF90ZW1wbGF0ZV9uYW1l X2VuZCAocCk7Ci1AQCAtMTI1OCw3ICsxMjc5LDEwIEBAIGRlY29kZV9jb21wb3VuZCAoY2hhciAq KmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGluZSwgY2hhciAqKipjYW5vbmljYWwsCitAQCAtMTI1Nyw3 ICsxMjc4LDEwIEBAIGRlY29kZV9jb21wb3VuZCAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0 bGluZSwgY2hhciAqKipjYW5vbmljYWwsCiAgICAgICAgLyogTW92ZSBwb2ludGVyIGFoZWFkIHRv IG5leHQgZG91YmxlLWNvbG9uLiAgKi8KICAgICAgICB3aGlsZSAoKnAgJiYgKHBbMF0gIT0gJyAn KSAmJiAocFswXSAhPSAnXHQnKSAmJiAocFswXSAhPSAnXCcnKSkKICAJewpAQCAtOTk4MSw3ICsx MDQ0NSw3IEBAIGluZGV4IGRlYmU4NmYuLmUxN2EwYjYgMTAwNjQ0CiAgCSAgICB7CiAgCSAgICAg IHRlbXBfZW5kID0gZmluZF90ZW1wbGF0ZV9uYW1lX2VuZCAocCk7CiAgCSAgICAgIGlmICghdGVt cF9lbmQpCi1AQCAtMTMzNSw2ICsxMzU5LDE2IEBAIGRlY29kZV9jb21wb3VuZCAoY2hhciAqKmFy Z3B0ciwgaW50IGZ1bmZpcnN0bGluZSwgY2hhciAqKipjYW5vbmljYWwsCitAQCAtMTMzNCw2ICsx MzU4LDE2IEBAIGRlY29kZV9jb21wb3VuZCAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGlu ZSwgY2hhciAqKipjYW5vbmljYWwsCiAgCSAgd2hpbGUgKCpwICYmICpwICE9ICcgJyAmJiAqcCAh PSAnXHQnICYmICpwICE9ICcsJyAmJiAqcCAhPSAnOicpCiAgCSAgICBwKys7CiAgCSAgLyogQXQg dGhpcyBwb2ludCBwLT4iIi4gIFN0cmluZyBlbmRlZC4gICovCkBAIC05OTk4LDcgKzEwNDYyLDcg QEAgaW5kZXggZGViZTg2Zi4uZTE3YTBiNiAxMDA2NDQKICAJfQogIAogICAgICAgIC8qIEFsbG9j YXRlIG91ciBvd24gY29weSBvZiB0aGUgc3Vic3RyaW5nIGJldHdlZW4gYXJncHRyIGFuZAotQEAg LTE0MDgsNiArMTQ0Miw3IEBAIGxvb2t1cF9wcmVmaXhfc3ltIChjaGFyICoqYXJncHRyLCBjaGFy ICpwKQorQEAgLTE0MDcsNiArMTQ0MSw3IEBAIGxvb2t1cF9wcmVmaXhfc3ltIChjaGFyICoqYXJn cHRyLCBjaGFyICpwKQogIHsKICAgIGNoYXIgKnAxOwogICAgY2hhciAqY29weTsKQEAgLTEwMDA2 LDcgKzEwNDcwLDcgQEAgaW5kZXggZGViZTg2Zi4uZTE3YTBiNiAxMDA2NDQKICAKICAgIC8qIEV4 dHJhY3QgdGhlIGNsYXNzIG5hbWUuICAqLwogICAgcDEgPSBwOwotQEAgLTE0MjYsNyArMTQ2MSwy NiBAQCBsb29rdXBfcHJlZml4X3N5bSAoY2hhciAqKmFyZ3B0ciwgY2hhciAqcCkKK0BAIC0xNDI1 LDcgKzE0NjAsMjYgQEAgbG9va3VwX3ByZWZpeF9zeW0gKGNoYXIgKiphcmdwdHIsIGNoYXIgKnAp CiAgICAvKiBBdCB0aGlzIHBvaW50IHAxLT4iOjppbkE6OmZ1biIsIHAtPiJpbkE6OmZ1biIgY29w eS0+IkFBQSIsCiAgICAgICBhcmdwdHItPiJpbkE6OmZ1biIgKi8KICAKQEAgLTEwMDM0LDcgKzEw NDk4LDcgQEAgaW5kZXggZGViZTg2Zi4uZTE3YTBiNiAxMDA2NDQKICB9CiAgCiAgLyogVGhpcyBm aW5kcyB0aGUgbWV0aG9kIENPUFkgaW4gdGhlIGNsYXNzIHdob3NlIHR5cGUgaXMgVCBhbmQgd2hv c2UKLUBAIC0xNzgxLDcgKzE4MzUsNyBAQCBzeW1ib2xfZm91bmQgKGludCBmdW5maXJzdGxpbmUs IGNoYXIgKioqY2Fub25pY2FsLCBjaGFyICpjb3B5LAorQEAgLTE3ODAsNyArMTgzNCw3IEBAIHN5 bWJvbF9mb3VuZCAoaW50IGZ1bmZpcnN0bGluZSwgY2hhciAqKipjYW5vbmljYWwsIGNoYXIgKmNv cHksCiAgCXsKICAJICBzdHJ1Y3QgYmxvY2t2ZWN0b3IgKmJ2ID0gQkxPQ0tWRUNUT1IgKFNZTUJP TF9TWU1UQUIgKHN5bSkpOwogIAkgIHN0cnVjdCBibG9jayAqYiA9IEJMT0NLVkVDVE9SX0JMT0NL IChidiwgU1RBVElDX0JMT0NLKTsKQEAgLTEwMjQ5LDEwICsxMDcxMyw3OSBAQCBpbmRleCBhYWM4 MmU5Li42MjYyOTJjIDEwMDY0NAogICAgVFlQRV9DUExVU19TUEVDSUZJQyAodCkgPSAoc3RydWN0 IGNwbHVzX3N0cnVjdF90eXBlICopICZjcGx1c19zdHJ1Y3RfZGVmYXVsdDsKICAgIHJldHVybiB0 OwogZGlmZiAtLWdpdCBhL2dkYi9taS9taS1jbWQtdmFyLmMgYi9nZGIvbWkvbWktY21kLXZhci5j Ci1pbmRleCAwY2YwM2Q5Li4xOTEzYzQ5IDEwMDY0NAoraW5kZXggMGNmMDNkOS4uZDZhODVkOSAx MDA2NDQKIC0tLSBhL2dkYi9taS9taS1jbWQtdmFyLmMKICsrKyBiL2dkYi9taS9taS1jbWQtdmFy LmMKLUBAIC0zNjksMjQgKzM2OSwzNSBAQCBtaV9jbWRfdmFyX2xpc3RfY2hpbGRyZW4gKGNoYXIg KmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKK0BAIC00MSw3ICs0MSw3IEBAIHN0YXRp YyB2b2lkIHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3QgdmFyb2JqICp2YXIsCisgCQkJICAgICAg ZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzLAorIAkJCSAgICAgIGludCBleHBsaWNpdCk7 CisgCistc3RhdGljIGludCBtaV9wcmludF92YWx1ZV9wIChzdHJ1Y3QgdHlwZSAqdHlwZSwgZW51 bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzKTsKKytzdGF0aWMgaW50IG1pX3ByaW50X3ZhbHVl X3AgKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzKTsK KyAKKyAvKiBQcmludCB2YXJpYWJsZSBvYmplY3QgVkFSLiAgVGhlIFBSSU5UX1ZBTFVFUyBwYXJh bWV0ZXIgY29udHJvbHMKKyAgICBpZiB0aGUgdmFsdWUgc2hvdWxkIGJlIHByaW50ZWQuICBUaGUg UFJJTlRfRVhQUkVTU0lPTiBwYXJhbWV0ZXIKK0BAIC01OSw4ICs1OSwxMiBAQCBwcmludF92YXJv YmogKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzLAor ICAgICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgImV4cCIsIHZhcm9ial9nZXRfZXhwcmVz c2lvbiAodmFyKSk7CisgICB1aV9vdXRfZmllbGRfaW50ICh1aW91dCwgIm51bWNoaWxkIiwgdmFy b2JqX2dldF9udW1fY2hpbGRyZW4gKHZhcikpOworICAgCistICBpZiAobWlfcHJpbnRfdmFsdWVf cCAodmFyb2JqX2dldF9nZGJfdHlwZSAodmFyKSwgcHJpbnRfdmFsdWVzKSkKKy0gICAgdWlfb3V0 X2ZpZWxkX3N0cmluZyAodWlvdXQsICJ2YWx1ZSIsIHZhcm9ial9nZXRfdmFsdWUgKHZhcikpOwor KyAgaWYgKG1pX3ByaW50X3ZhbHVlX3AgKHZhciwgcHJpbnRfdmFsdWVzKSkKKysgICAgeworKyAg ICAgIGNoYXIgKnZhbCA9IHZhcm9ial9nZXRfdmFsdWUgKHZhcik7CisrICAgICAgdWlfb3V0X2Zp ZWxkX3N0cmluZyAodWlvdXQsICJ2YWx1ZSIsIHZhbCk7CisrICAgICAgeGZyZWUgKHZhbCk7Cisr ICAgIH0KKyAKKyAgIHR5cGUgPSB2YXJvYmpfZ2V0X3R5cGUgKHZhcik7CisgICBpZiAodHlwZSAh PSBOVUxMKQorQEAgLTIyMyw2ICsyMjcsNyBAQCBtaV9jbWRfdmFyX3NldF9mb3JtYXQgKGNoYXIg KmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKKyB7CisgICBlbnVtIHZhcm9ial9kaXNw bGF5X2Zvcm1hdHMgZm9ybWF0OworICAgc3RydWN0IHZhcm9iaiAqdmFyOworKyAgY2hhciAqdmFs OworIAorICAgaWYgKGFyZ2MgIT0gMikKKyAgICAgZXJyb3IgKF8oIm1pX2NtZF92YXJfc2V0X2Zv cm1hdDogVXNhZ2U6IE5BTUUgRk9STUFULiIpKTsKK0BAIC0yMzksNyArMjQ0LDkgQEAgbWlfY21k X3Zhcl9zZXRfZm9ybWF0IChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCisg ICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgImZvcm1hdCIsIHZhcm9ial9mb3JtYXRfc3Ry aW5nWyhpbnQpIGZvcm1hdF0pOworICAKKyAgIC8qIFJlcG9ydCB0aGUgdmFsdWUgaW4gdGhlIG5l dyBmb3JtYXQgKi8KKy0gIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAidmFsdWUiLCB2YXJv YmpfZ2V0X3ZhbHVlICh2YXIpKTsKKysgIHZhbCA9IHZhcm9ial9nZXRfdmFsdWUgKHZhcik7Cisr ICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgInZhbHVlIiwgdmFsKTsKKysgIHhmcmVlICh2 YWwpOworIH0KKyAKKyB2b2lkCitAQCAtMzM3LDExICszNDQsMTIgQEAgTXVzdCBiZTogMCBvciBc IiVzXCIsIDEgb3IgXCIlc1wiLCAyIG9yIFwiJXNcIiIpLAorIH0KKyAKKyAvKiBSZXR1cm4gMSBp ZiBnaXZlbiB0aGUgYXJndW1lbnQgUFJJTlRfVkFMVUVTIHdlIHNob3VsZCBkaXNwbGF5CistICAg YSB2YWx1ZSBvZiB0eXBlIFRZUEUuICAqLworKyAgIHRoZSB2YXJvYmogVkFSLiAgKi8KKyAKKyBz dGF0aWMgaW50CistbWlfcHJpbnRfdmFsdWVfcCAoc3RydWN0IHR5cGUgKnR5cGUsIGVudW0gcHJp bnRfdmFsdWVzIHByaW50X3ZhbHVlcykKKyttaV9wcmludF92YWx1ZV9wIChzdHJ1Y3QgdmFyb2Jq ICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcykKKyB7CisrICBzdHJ1Y3QgdHlw ZSAqdHlwZTsKKyAKKyAgIGlmIChwcmludF92YWx1ZXMgPT0gUFJJTlRfTk9fVkFMVUVTKQorICAg ICByZXR1cm4gMDsKK0BAIC0zNDksNiArMzU3LDEwIEBAIG1pX3ByaW50X3ZhbHVlX3AgKHN0cnVj dCB0eXBlICp0eXBlLCBlbnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1ZXMpCisgICBpZiAocHJp bnRfdmFsdWVzID09IFBSSU5UX0FMTF9WQUxVRVMpCisgICAgIHJldHVybiAxOworIAorKyAgaWYg KHZhcm9ial9wcmV0dHlfcHJpbnRlZF9wICh2YXIpKQorKyAgICByZXR1cm4gMTsKKysKKysgIHR5 cGUgPSB2YXJvYmpfZ2V0X2dkYl90eXBlICh2YXIpOworICAgaWYgKHR5cGUgPT0gTlVMTCkKKyAg ICAgcmV0dXJuIDE7CisgICBlbHNlCitAQCAtMzY5LDI0ICszODEsMzUgQEAgbWlfY21kX3Zhcl9s aXN0X2NoaWxkcmVuIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCiAgICBz dHJ1Y3QgdmFyb2JqICp2YXI7ICAKICAgIFZFQyh2YXJvYmpfcCkgKmNoaWxkcmVuOwogICAgc3Ry dWN0IHZhcm9iaiAqY2hpbGQ7CkBAIC0xMDI5NCw3ICsxMDgyNyw3IEBAIGluZGV4IDBjZjAzZDku LjE5MTNjNDkgMTAwNjQ0CiAgICAgIHByaW50X3ZhbHVlcyA9IG1pX3BhcnNlX3ZhbHVlc19vcHRp b24gKGFyZ3ZbMF0pOwogICAgZWxzZQogICAgICBwcmludF92YWx1ZXMgPSBQUklOVF9OT19WQUxV RVM7Ci1AQCAtMzk4LDIxICs0MDksMjggQEAgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVuIChjaGFy ICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCitAQCAtMzk4LDIxICs0MjEsMjggQEAg bWlfY21kX3Zhcl9saXN0X2NoaWxkcmVuIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50 IGFyZ2MpCiAgICAgICAgeGZyZWUgKGRpc3BsYXlfaGludCk7CiAgICAgIH0KICAKQEAgLTEwMzM2 LDcgKzEwODY5LDQ2IEBAIGluZGV4IDBjZjAzZDkuLjE5MTNjNDkgMTAwNjQ0CiAgfQogIAogIHZv aWQKLUBAIC02NDQsNyArNjYyLDYgQEAgbWlfY21kX3Zhcl91cGRhdGUgKGNoYXIgKmNvbW1hbmQs IGNoYXIgKiphcmd2LCBpbnQgYXJnYykKK0BAIC01MzgsMTYgKzU2OCwyNCBAQCBtaV9jbWRfdmFy X2V2YWx1YXRlX2V4cHJlc3Npb24gKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJn YykKKyAgIHZhciA9IHZhcm9ial9nZXRfaGFuZGxlIChhcmd2W29wdGluZF0pOworICAgIAorICAg aWYgKGZvcm1hdEZvdW5kKQorLSAgICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgInZhbHVl IiwgdmFyb2JqX2dldF9mb3JtYXR0ZWRfdmFsdWUgKHZhciwgZm9ybWF0KSk7CisrICAgIHsKKysg ICAgICBjaGFyICp2YWwgPSB2YXJvYmpfZ2V0X2Zvcm1hdHRlZF92YWx1ZSAodmFyLCBmb3JtYXQp OworKyAgICAgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAidmFsdWUiLCB2YWwpOworKyAg ICAgIHhmcmVlICh2YWwpOworKyAgICB9CisgICBlbHNlCistICAgIHVpX291dF9maWVsZF9zdHJp bmcgKHVpb3V0LCAidmFsdWUiLCB2YXJvYmpfZ2V0X3ZhbHVlICh2YXIpKTsKKysgICAgeworKyAg ICAgIGNoYXIgKnZhbCA9IHZhcm9ial9nZXRfdmFsdWUgKHZhcik7CisrICAgICAgdWlfb3V0X2Zp ZWxkX3N0cmluZyAodWlvdXQsICJ2YWx1ZSIsIHZhbCk7CisrICAgICAgeGZyZWUgKHZhbCk7Cisr ICAgIH0KKyB9CisgCisgdm9pZAorIG1pX2NtZF92YXJfYXNzaWduIChjaGFyICpjb21tYW5kLCBj aGFyICoqYXJndiwgaW50IGFyZ2MpCisgeworICAgc3RydWN0IHZhcm9iaiAqdmFyOworLSAgY2hh ciAqZXhwcmVzc2lvbjsKKysgIGNoYXIgKmV4cHJlc3Npb24sICp2YWw7CisgCisgICBpZiAoYXJn YyAhPSAyKQorICAgICBlcnJvciAoXygibWlfY21kX3Zhcl9hc3NpZ246IFVzYWdlOiBOQU1FIEVY UFJFU1NJT04uIikpOworQEAgLTU2Myw3ICs2MDEsOSBAQCBtaV9jbWRfdmFyX2Fzc2lnbiAoY2hh ciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQorICAgaWYgKCF2YXJvYmpfc2V0X3Zh bHVlICh2YXIsIGV4cHJlc3Npb24pKQorICAgICBlcnJvciAoXygibWlfY21kX3Zhcl9hc3NpZ246 IENvdWxkIG5vdCBhc3NpZ24gZXhwcmVzc2lvbiB0byB2YXJpYWJsZSBvYmplY3QiKSk7CisgCist ICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgInZhbHVlIiwgdmFyb2JqX2dldF92YWx1ZSAo dmFyKSk7CisrICB2YWwgPSB2YXJvYmpfZ2V0X3ZhbHVlICh2YXIpOworKyAgdWlfb3V0X2ZpZWxk X3N0cmluZyAodWlvdXQsICJ2YWx1ZSIsIHZhbCk7CisrICB4ZnJlZSAodmFsKTsKKyB9CisgCisg LyogVHlwZSB1c2VkIGZvciBwYXJhbWV0ZXJzIHBhc3NpbmcgdG8gbWlfY21kX3Zhcl91cGRhdGVf aXRlci4gICovCitAQCAtNjQ0LDcgKzY4NCw2IEBAIG1pX2NtZF92YXJfdXBkYXRlIChjaGFyICpj b21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCiAgICAgIH0KICAgIGVsc2UKICAgICAgewpA QCAtMTAzNDQsNyArMTA5MTYsMjIgQEAgaW5kZXggMGNmMDNkOS4uMTkxM2M0OSAxMDA2NDQKICAg ICAgICBzdHJ1Y3QgdmFyb2JqICp2YXIgPSB2YXJvYmpfZ2V0X2hhbmRsZSAobmFtZSk7CiAgCiAg ICAgICAgdmFyb2JqX3VwZGF0ZV9vbmUgKHZhciwgcHJpbnRfdmFsdWVzLCAxIC8qIGV4cGxpY2l0 ICovKTsKLUBAIC02OTksMTEgKzcxNiwxMSBAQCB2YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZh cm9iaiAqdmFyLCBlbnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1ZXMsCitAQCAtNjc4LDggKzcx NywxMiBAQCB2YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHByaW50 X3ZhbHVlcyBwcmludF92YWx1ZXMsCisgICAgICAgc3dpdGNoIChyLT5zdGF0dXMpCisgCXsKKyAJ Y2FzZSBWQVJPQkpfSU5fU0NPUEU6CistCSAgaWYgKG1pX3ByaW50X3ZhbHVlX3AgKHZhcm9ial9n ZXRfZ2RiX3R5cGUgKHItPnZhcm9iaiksIHByaW50X3ZhbHVlcykpCistCSAgICB1aV9vdXRfZmll bGRfc3RyaW5nICh1aW91dCwgInZhbHVlIiwgdmFyb2JqX2dldF92YWx1ZSAoci0+dmFyb2JqKSk7 CisrCSAgaWYgKG1pX3ByaW50X3ZhbHVlX3AgKHItPnZhcm9iaiwgcHJpbnRfdmFsdWVzKSkKKysJ ICAgIHsKKysJICAgICAgY2hhciAqdmFsID0gdmFyb2JqX2dldF92YWx1ZSAoci0+dmFyb2JqKTsK KysJICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJ2YWx1ZSIsIHZhbCk7CisrCSAg ICAgIHhmcmVlICh2YWwpOworKwkgICAgfQorIAkgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0 LCAiaW5fc2NvcGUiLCAidHJ1ZSIpOworIAkgIGJyZWFrOworICAgICAgICAgY2FzZSBWQVJPQkpf Tk9UX0lOX1NDT1BFOgorQEAgLTY5OSwxMSArNzQyLDExIEBAIHZhcm9ial91cGRhdGVfb25lIChz dHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKICAJfQog IAogICAgICAgIGlmIChyLT50eXBlX2NoYW5nZWQpCkBAIC0xMDM2MSw3ICsxMDk0OCw3IEBAIGlu ZGV4IDBjZjAzZDkuLjE5MTNjNDkgMTAwNjQ0CiAgCiAgICAgICAgZGlzcGxheV9oaW50ID0gdmFy b2JqX2dldF9kaXNwbGF5X2hpbnQgKHZhcik7CiAgICAgICAgaWYgKGRpc3BsYXlfaGludCkKLUBA IC03MTQsMjYgKzczMSw1OCBAQCB2YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFy LCBlbnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1ZXMsCitAQCAtNzE0LDI2ICs3NTcsNTggQEAg dmFyb2JqX3VwZGF0ZV9vbmUgKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSBwcmludF92YWx1ZXMg cHJpbnRfdmFsdWVzLAogIAogICAgICAgIGlmIChyLT5jaGlsZHJlbl9jaGFuZ2VkKQogIAl7CkBA IC0xMDQ5Nyw3ICsxMTA4NCw3IEBAIGluZGV4IGE4NDAwM2YuLjkyNGMxYzUgMTAwNjQ0CiAgICBk ZWZhdWx0X3N5bWZpbGVfb2Zmc2V0cywJLyogc3ltX29mZnNldHM6IGR1bW15IEZJWE1FIHRpbCBp bXBsZW0gc3ltIHJlbG9jICovCiAgICBkZWZhdWx0X3N5bWZpbGVfc2VnbWVudHMsCS8qIHN5bV9z ZWdtZW50czogR2V0IHNlZ21lbnQgaW5mb3JtYXRpb24gZnJvbQogZGlmZiAtLWdpdCBhL2dkYi9v YmpmaWxlcy5jIGIvZ2RiL29iamZpbGVzLmMKLWluZGV4IDU4NmY1ZDAuLjZkMDQ1MWMgMTAwNjQ0 CitpbmRleCA5MmRiNjVlLi40ZDM5MTEyIDEwMDY0NAogLS0tIGEvZ2RiL29iamZpbGVzLmMKICsr KyBiL2dkYi9vYmpmaWxlcy5jCiBAQCAtNTAsNyArNTAsNiBAQApAQCAtMTA1MjUsNyArMTExMTIs NyBAQCBpbmRleCA1ODZmNWQwLi42ZDA0NTFjIDEwMDY0NAogICAgLyogQmVmb3JlIHRoZSBzeW1i b2wgdGFibGUgY29kZSB3YXMgcmVkb25lIHRvIG1ha2UgaXQgZWFzaWVyIHRvCiAgICAgICBzZWxl Y3RpdmVseSBsb2FkIGFuZCByZW1vdmUgaW5mb3JtYXRpb24gcGFydGljdWxhciB0byBhIHNwZWNp ZmljCiAgICAgICBsaW5rYWdlIHVuaXQsIGdkYiB1c2VkIHRvIGRvIHRoZXNlIHRoaW5ncyB3aGVu ZXZlciB0aGUgbW9ub2xpdGhpYwotQEAgLTcxNCw2ICs3MTUsMjAgQEAgaGF2ZV9wYXJ0aWFsX3N5 bWJvbHMgKHZvaWQpCitAQCAtNzE2LDYgKzcxNywyMCBAQCBoYXZlX3BhcnRpYWxfc3ltYm9scyAo dm9pZCkKICAJcmV0dXJuIDE7CiAgICAgICAgfQogICAgfQpAQCAtMTI4OTQsMTAgKzEzNDgxLDEw IEBAIGluZGV4IDUyOGFjYTYuLjA0YjNmZDEgMTAwNjQ0CiAgICAgIHJldHVybiAtMTsKICAKIGRp ZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1mcmFtZS5jIGIvZ2RiL3B5dGhvbi9weXRob24t ZnJhbWUuYwotaW5kZXggYTk3MDA5Zi4uM2QyZjYxZiAxMDA2NDQKK2luZGV4IDI3OTQxNWMuLjVk OGNlMGEgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi1mcmFtZS5jCiArKysgYi9nZGIv cHl0aG9uL3B5dGhvbi1mcmFtZS5jCi1AQCAtMjAzLDEwICsyMDMsNTkgQEAgZnJhcHlfcGMgKFB5 T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK0BAIC0yMDIsMTAgKzIwMiw1OSBAQCBmcmFw eV9wYyAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogICAgcmV0dXJuIFB5TG9uZ19G cm9tVW5zaWduZWRMb25nTG9uZyAocGMpOwogIH0KICAKQEAgLTEyOTU4LDcgKzEzNTQ1LDcgQEAg aW5kZXggYTk3MDA5Zi4uM2QyZjYxZiAxMDA2NDQKICBmcmFtZV9pbmZvX3RvX2ZyYW1lX29iamVj dCAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQogIHsKICAgIGZyYW1lX29iamVjdCAqZnJhbWVf b2JqOwotQEAgLTIzNiw3ICsyODUsNyBAQCBmcmFtZV9pbmZvX3RvX2ZyYW1lX29iamVjdCAoc3Ry dWN0IGZyYW1lX2luZm8gKmZyYW1lKQorQEAgLTIzNSw3ICsyODQsNyBAQCBmcmFtZV9pbmZvX3Rv X2ZyYW1lX29iamVjdCAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQogIAogICAgZnJhbWVfb2Jq LT5nZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKICAKQEAgLTEyOTY3LDcgKzEzNTU0 LDcgQEAgaW5kZXggYTk3MDA5Zi4uM2QyZjYxZiAxMDA2NDQKICB9CiAgCiAgLyogSW1wbGVtZW50 YXRpb24gb2YgZ2RiLkZyYW1lLm9sZGVyIChzZWxmKSAtPiBnZGIuRnJhbWUuCi1AQCAtMjk3LDcg KzM0NiwzMCBAQCBmcmFweV9uZXdlciAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQor QEAgLTI5Niw3ICszNDUsMzAgQEAgZnJhcHlfbmV3ZXIgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVj dCAqYXJncykKICAgIHJldHVybiBuZXh0X29iajsKICB9CiAgCkBAIC0xMjk5OSw3ICsxMzU4Niw3 IEBAIGluZGV4IGE5NzAwOWYuLjNkMmY2MWYgMTAwNjQ0CiAgICAgUmV0dXJucyB0aGUgdmFsdWUg b2YgdGhlIGdpdmVuIHZhcmlhYmxlIGluIHRoaXMgZnJhbWUuICBUaGUgYXJndW1lbnQgbXVzdCBi ZQogICAgIGEgc3RyaW5nLiAgUmV0dXJucyBOb25lIGlmIEdEQiBjYW4ndCBmaW5kIHRoZSBzcGVj aWZpZWQgdmFyaWFibGUuICAqLwogIAotQEAgLTMxMyw3ICszODUsOSBAQCBmcmFweV9yZWFkX3Zh ciAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorQEAgLTMxMiw3ICszODQsOSBAQCBm cmFweV9yZWFkX3ZhciAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogICAgaWYgKCFQ eUFyZ19QYXJzZVR1cGxlIChhcmdzLCAiTyIsICZzeW1fb2JqKSkKICAgICAgcmV0dXJuIE5VTEw7 CiAgCkBAIC0xMzAxMCw3ICsxMzU5Nyw3IEBAIGluZGV4IGE5NzAwOWYuLjNkMmY2MWYgMTAwNjQ0 CiAgICAgIHsKICAgICAgICBjaGFyICp2YXJfbmFtZTsKICAgICAgICBzdHJ1Y3QgYmxvY2sgKmJs b2NrID0gTlVMTDsKLUBAIC0zNjYsNiArNDQwLDI1IEBAIGZyYXB5X3JlYWRfdmFyIChQeU9iamVj dCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitAQCAtMzY1LDYgKzQzOSwyNSBAQCBmcmFweV9yZWFk X3ZhciAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogICAgUHlfUkVUVVJOX05PTkU7 CiAgfQogIApAQCAtMTMwMzYsNyArMTM2MjMsNyBAQCBpbmRleCBhOTcwMDlmLi4zZDJmNjFmIDEw MDY0NAogIC8qIEltcGxlbWVudGF0aW9uIG9mIGdkYi5zZWxlY3RlZF9mcmFtZSAoKSAtPiBnZGIu RnJhbWUuCiAgICAgUmV0dXJucyB0aGUgc2VsZWN0ZWQgZnJhbWUgb2JqZWN0LiAgKi8KICAKLUBA IC0zNzMsNyArNDY2LDcgQEAgUHlPYmplY3QgKgorQEAgLTM3Miw3ICs0NjUsNyBAQCBQeU9iamVj dCAqCiAgZ2RicHlfc2VsZWN0ZWRfZnJhbWUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJn cykKICB7CiAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWU7CkBAIC0xMzA0NSw3ICsxMzYzMiw3 IEBAIGluZGV4IGE5NzAwOWYuLjNkMmY2MWYgMTAwNjQ0CiAgICB2b2xhdGlsZSBzdHJ1Y3QgZ2Ri X2V4Y2VwdGlvbiBleGNlcHQ7CiAgCiAgICBUUllfQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tf QUxMKQotQEAgLTM4Myw3ICs0NzYsNyBAQCBnZGJweV9zZWxlY3RlZF9mcmFtZSAoUHlPYmplY3Qg KnNlbGYsIFB5T2JqZWN0ICphcmdzKQorQEAgLTM4Miw3ICs0NzUsNyBAQCBnZGJweV9zZWxlY3Rl ZF9mcmFtZSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogICAgICB9CiAgICBHREJf UFlfSEFORExFX0VYQ0VQVElPTiAoZXhjZXB0KTsKICAKQEAgLTEzMDU0LDcgKzEzNjQxLDcgQEAg aW5kZXggYTk3MDA5Zi4uM2QyZjYxZiAxMDA2NDQKICB9CiAgCiAgLyogSW1wbGVtZW50YXRpb24g b2YgZ2RiLnN0b3BfcmVhc29uX3N0cmluZyAoSW50ZWdlcikgLT4gU3RyaW5nLgotQEAgLTQ4NSwx NSArNTc4LDI2IEBAIFJldHVybiB0aGUgcmVhc29uIHdoeSBpdCdzIG5vdCBwb3NzaWJsZSB0byBm aW5kIGZyYW1lcyBvbGRlciB0aGFuIHRoaXMuIiB9LAorQEAgLTQ4NCwxNSArNTc3LDI2IEBAIFJl dHVybiB0aGUgcmVhc29uIHdoeSBpdCdzIG5vdCBwb3NzaWJsZSB0byBmaW5kIGZyYW1lcyBvbGRl ciB0aGFuIHRoaXMuIiB9LAogICAgeyAicGMiLCBmcmFweV9wYywgTUVUSF9OT0FSR1MsCiAgICAg ICJwYyAoKSAtPiBMb25nLlxuXAogIFJldHVybiB0aGUgZnJhbWUncyByZXN1bWUgYWRkcmVzcy4i IH0sCkBAIC0xNTM4NSw3ICsxNTk3Miw3IEBAIGluZGV4IDAwMDAwMDAuLjFmNTkxYTgKICsgIFB5 VHlwZV9HZW5lcmljTmV3CQkgIC8qIHRwX25ldyAqLwogK307CiBkaWZmIC0tZ2l0IGEvZ2RiL3B5 dGhvbi9weXRob24tcHJldHR5cHJpbnQuYyBiL2dkYi9weXRob24vcHl0aG9uLXByZXR0eXByaW50 LmMKLWluZGV4IDVkNjk2YzguLjViZTU0YjQgMTAwNjQ0CitpbmRleCA1ZDY5NmM4Li5hNjM0OGJh IDEwMDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24tcHJldHR5cHJpbnQuYwogKysrIGIvZ2Ri L3B5dGhvbi9weXRob24tcHJldHR5cHJpbnQuYwogQEAgLTEyMSw2ICsxMjEsNyBAQCBmaW5kX3By ZXR0eV9wcmludGVyIChQeU9iamVjdCAqdmFsdWUpCkBAIC0xNTQxMCw3ICsxNTk5Nyw3IEBAIGlu ZGV4IDVkNjk2YzguLjViZTU0YjQgMTAwNjQ0CiArCQkvKiBXZSBtdXN0IGluY3JlbWVudCB0aGUg dmFsdWUncyByZWZjb3VudCwgYmVjYXVzZSB3ZQogKwkJICAgYXJlIGFib3V0IHRvIGRlY3JlZiBS RVNVTFQsIGFuZCB0aGlzIG1heSByZXN1bHQgaW4KICsJCSAgIHRoZSB2YWx1ZSBiZWluZyBkZXN0 cm95ZWQuICAqLwotKwkJcmVsZWFzZV92YWx1ZSAoKm91dF92YWx1ZSk7CisrCQl2YWx1ZV9pbmNy ZWYgKCpvdXRfdmFsdWUpOwogKyAJICAgICAgUHlfREVDUkVGIChyZXN1bHQpOwogKyAJICAgICAg cmVzdWx0ID0gTlVMTDsKICAJICAgIH0KQEAgLTE2MTAyLDcgKzE2Njg5LDcgQEAgaW5kZXggMDAw MDAwMC4uODMwZTU4NgogKyAgc2FsX29iamVjdF9nZXRzZXQJCSAgLyogdHBfZ2V0c2V0ICovCiAr fTsKIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi10eXBlLmMgYi9nZGIvcHl0aG9uL3B5 dGhvbi10eXBlLmMKLWluZGV4IGUxODUxMTIuLmI1NWNlOWEgMTAwNjQ0CitpbmRleCBmMjMyNDhj Li5iNDFkODY4IDEwMDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24tdHlwZS5jCiArKysgYi9n ZGIvcHl0aG9uL3B5dGhvbi10eXBlLmMKIEBAIC0yNyw2ICsyNyw4IEBACkBAIC0xNjQ3MiwyNyAr MTcwNTksMTggQEAgaW5kZXggNDljMDQzNy4uODRhNDc2ZSAxMDA2NDQKICsgIHJldHVybiAxOwog K30KIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi12YWx1ZS5jIGIvZ2RiL3B5dGhvbi9w eXRob24tdmFsdWUuYwotaW5kZXggZGQzYzkxOS4uZGM3NjY5MiAxMDA2NDQKK2luZGV4IGM0MjE3 ZDUuLmYxZGE2NjAgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi12YWx1ZS5jCiArKysg Yi9nZGIvcHl0aG9uL3B5dGhvbi12YWx1ZS5jCi1AQCAtMjUsMTUgKzI1LDcgQEAKK0BAIC0yNSw2 ICsyNSw3IEBACiAgI2luY2x1ZGUgImxhbmd1YWdlLmgiCiAgI2luY2x1ZGUgImRmcC5oIgogICNp bmNsdWRlICJ2YWxwcmludC5oIgotLQotLS8qIExpc3Qgb2YgYWxsIHZhbHVlcyB3aGljaCBhcmUg Y3VycmVudGx5IGV4cG9zZWQgdG8gUHl0aG9uLiBJdCBpcwotLSAgIG1haW50YWluZWQgc28gdGhh dCB3aGVuIGFuIG9iamZpbGUgaXMgZGlzY2FyZGVkLCBwcmVzZXJ2ZV92YWx1ZXMKLS0gICBjYW4g Y29weSB0aGUgdmFsdWVzJyB0eXBlcyBpZiBuZWVkZWQuICBUaGlzIGlzIGRlY2xhcmVkCi0tICAg dW5jb25kaXRpb25hbGx5IHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHVzZXMgb2YgSEFWRV9QWVRI T04gaW4gdGhlCi0tICAgZ2VuZXJpYyBjb2RlLiAgKi8KLS0vKiBUaGlzIHZhcmlhYmxlIGlzIHVu bmVjZXNzYXJpbHkgaW5pdGlhbGl6ZWQgdG8gTlVMTCBpbiBvcmRlciB0byAKLS0gICB3b3JrIGFy b3VuZCBhIGxpbmtlciBidWcgb24gTWFjT1MuICAqLwotLXN0cnVjdCB2YWx1ZSAqdmFsdWVzX2lu X3B5dGhvbiA9IE5VTEw7CiArI2luY2x1ZGUgIm9ic2VydmVyLmgiCiAgCiAgI2lmZGVmIEhBVkVf UFlUSE9OCiAgCi1AQCAtNTIsMjYgKzQ0LDQzIEBAIHN0cnVjdCB2YWx1ZSAqdmFsdWVzX2luX3B5 dGhvbiA9IE5VTEw7CitAQCAtNDMsNiArNDQsMTAgQEAKICAvKiBQeXRob24ncyBsb25nIHR5cGUg Y29ycmVzcG9uZHMgdG8gQydzIGxvbmcgbG9uZyB0eXBlLiAgKi8KICAjZGVmaW5lIGJ1aWx0aW5f dHlwZV9weWxvbmcgYnVpbHRpbl90eXBlIChweXRob25fZ2RiYXJjaCktPmJ1aWx0aW5fbG9uZ19s b25nCiAgCkBAIC0xNjUwMywxMDYgKzE3MDgxLDcgQEAgaW5kZXggZGQzYzkxOS4uZGM3NjY5MiAx MDA2NDQKICAjZGVmaW5lIGJ1aWx0aW5fdHlwZV9weWJvb2wgXAogICAgbGFuZ3VhZ2VfYm9vbF90 eXBlIChweXRob25fbGFuZ3VhZ2UsIHB5dGhvbl9nZGJhcmNoKQogIAotICNkZWZpbmUgYnVpbHRp bl90eXBlX3B5Y2hhciBcCi0gICBsYW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChweXRob25fbGFu Z3VhZ2UsIHB5dGhvbl9nZGJhcmNoKQotIAotLXR5cGVkZWYgc3RydWN0IHsKLSt0eXBlZGVmIHN0 cnVjdCB2YWx1ZV9vYmplY3QgewotICAgUHlPYmplY3RfSEVBRAotKyAgc3RydWN0IHZhbHVlX29i amVjdCAqbmV4dDsKLSAgIHN0cnVjdCB2YWx1ZSAqdmFsdWU7Ci0gICBQeU9iamVjdCAqYWRkcmVz czsKLSAgIFB5T2JqZWN0ICp0eXBlOwotIH0gdmFsdWVfb2JqZWN0OwotIAotKy8qIExpc3Qgb2Yg YWxsIHZhbHVlcyB3aGljaCBhcmUgY3VycmVudGx5IGV4cG9zZWQgdG8gUHl0aG9uLiBJdCBpcwot KyAgIG1haW50YWluZWQgc28gdGhhdCB3aGVuIGFuIG9iamZpbGUgaXMgZGlzY2FyZGVkLCBwcmVz ZXJ2ZV92YWx1ZXMKLSsgICBjYW4gY29weSB0aGUgdmFsdWVzJyB0eXBlcyBpZiBuZWVkZWQuICAq LwotKy8qIFRoaXMgdmFyaWFibGUgaXMgdW5uZWNlc3NhcmlseSBpbml0aWFsaXplZCB0byBOVUxM IGluIG9yZGVyIHRvCi0rICAgd29yayBhcm91bmQgYSBsaW5rZXIgYnVnIG9uIE1hY09TLiAgKi8K LStzdGF0aWMgdmFsdWVfb2JqZWN0ICp2YWx1ZXNfaW5fcHl0aG9uID0gTlVMTDsKLSsKLSAvKiBD YWxsZWQgYnkgdGhlIFB5dGhvbiBpbnRlcnByZXRlciB3aGVuIGRlYWxsb2NhdGluZyBhIHZhbHVl IG9iamVjdC4gICovCi0gc3RhdGljIHZvaWQKLSB2YWxweV9kZWFsbG9jIChQeU9iamVjdCAqb2Jq KQotIHsKLSAgIHZhbHVlX29iamVjdCAqc2VsZiA9ICh2YWx1ZV9vYmplY3QgKikgb2JqOwotKyAg dmFsdWVfb2JqZWN0ICoqaXRlcjsKLSAKLS0gIHZhbHVlX3JlbW92ZV9mcm9tX2xpc3QgKCZ2YWx1 ZXNfaW5fcHl0aG9uLCBzZWxmLT52YWx1ZSk7Ci0rICAvKiBSZW1vdmUgT0JKIGZyb20gdGhlIGds b2JhbCBsaXN0LiAgKi8KLSsgIGl0ZXIgPSAmdmFsdWVzX2luX3B5dGhvbjsKLSsgIHdoaWxlICgq aXRlciAhPSBzZWxmKQotKyAgICBpdGVyID0gJigqaXRlciktPm5leHQ7Ci0rICAqaXRlciA9ICgq aXRlciktPm5leHQ7Ci0gCi0gICB2YWx1ZV9mcmVlIChzZWxmLT52YWx1ZSk7Ci0gCi1AQCAtMTIy LDExICsxMzEsMjMgQEAgdmFscHlfbmV3IChQeVR5cGVPYmplY3QgKnN1YnR5cGUsIFB5T2JqZWN0 ICphcmdzLCBQeU9iamVjdCAqa2V5d29yZHMpCi0gICB2YWx1ZV9vYmotPmFkZHJlc3MgPSBOVUxM OwotICAgdmFsdWVfb2JqLT50eXBlID0gTlVMTDsKLSAgIHJlbGVhc2VfdmFsdWUgKHZhbHVlKTsK LS0gIHZhbHVlX3ByZXBlbmRfdG9fbGlzdCAoJnZhbHVlc19pbl9weXRob24sIHZhbHVlKTsKLSsg IHZhbHVlX29iai0+bmV4dCA9IHZhbHVlc19pbl9weXRob247Ci0rICB2YWx1ZXNfaW5fcHl0aG9u ID0gdmFsdWVfb2JqOwotIAotICAgcmV0dXJuIChQeU9iamVjdCAqKSB2YWx1ZV9vYmo7Ci0gfQot IAotKy8qIEl0ZXJhdGUgb3ZlciBhbGwgdGhlIFZhbHVlIG9iamVjdHMsIGNhbGxpbmcgcHJlc2Vy dmVfb25lX3ZhbHVlIG9uCi0rICAgZWFjaC4gICovCi0rdm9pZAotK3ByZXNlcnZlX3B5dGhvbl92 YWx1ZXMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBodGFiX3QgY29waWVkX3R5cGVzKQotK3sK LSsgIHZhbHVlX29iamVjdCAqaXRlcjsKLSsKLSsgIGZvciAoaXRlciA9IHZhbHVlc19pbl9weXRo b247IGl0ZXI7IGl0ZXIgPSBpdGVyLT5uZXh0KQotKyAgICBwcmVzZXJ2ZV9vbmVfdmFsdWUgKGl0 ZXItPnZhbHVlLCBvYmpmaWxlLCBjb3BpZWRfdHlwZXMpOwotK30KLSsKLSAvKiBHaXZlbiBhIHZh bHVlIG9mIGEgcG9pbnRlciB0eXBlLCBhcHBseSB0aGUgQyB1bmFyeSAqIG9wZXJhdG9yIHRvIGl0 LiAgKi8KLSBzdGF0aWMgUHlPYmplY3QgKgotIHZhbHB5X2RlcmVmZXJlbmNlIChQeU9iamVjdCAq c2VsZiwgUHlPYmplY3QgKmFyZ3MpCi1AQCAtNTQzLDkgKzU2NCw3IEBAIHZhbHB5X25lZ2F0aXZl IChQeU9iamVjdCAqc2VsZikKLSBzdGF0aWMgUHlPYmplY3QgKgotIHZhbHB5X3Bvc2l0aXZlIChQ eU9iamVjdCAqc2VsZikKLSB7Ci0tICBzdHJ1Y3QgdmFsdWUgKmNvcHkgPSB2YWx1ZV9jb3B5ICgo KHZhbHVlX29iamVjdCAqKSBzZWxmKS0+dmFsdWUpOwotLQotLSAgcmV0dXJuIHZhbHVlX3RvX3Zh bHVlX29iamVjdCAoY29weSk7Ci0rICByZXR1cm4gdmFsdWVfdG9fdmFsdWVfb2JqZWN0ICgoKHZh bHVlX29iamVjdCAqKSBzZWxmKS0+dmFsdWUpOwotIH0KLSAKLSBzdGF0aWMgUHlPYmplY3QgKgot QEAgLTgwMywxMyArODIyLDE1IEBAIHZhbHVlX3RvX3ZhbHVlX29iamVjdCAoc3RydWN0IHZhbHVl ICp2YWwpCi0gICAgICAgdmFsX29iai0+YWRkcmVzcyA9IE5VTEw7Ci0gICAgICAgdmFsX29iai0+ dHlwZSA9IE5VTEw7Ci0gICAgICAgcmVsZWFzZV92YWx1ZSAodmFsKTsKLS0gICAgICB2YWx1ZV9w cmVwZW5kX3RvX2xpc3QgKCZ2YWx1ZXNfaW5fcHl0aG9uLCB2YWwpOwotKyAgICAgIHZhbF9vYmot Pm5leHQgPSB2YWx1ZXNfaW5fcHl0aG9uOwotKyAgICAgIHZhbHVlc19pbl9weXRob24gPSB2YWxf b2JqOwotICAgICB9Ci0gCi0gICByZXR1cm4gKFB5T2JqZWN0ICopIHZhbF9vYmo7Ci0gfQotIAot LS8qIFJldHVybnMgdmFsdWUgc3RydWN0dXJlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIHZh bHVlIG9iamVjdC4gICovCi0rLyogUmV0dXJucyBhIGJvcnJvd2VkIHJlZmVyZW5jZSB0byB0aGUg c3RydWN0IHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8KLSsgICB0aGUgZ2l2ZW4gdmFsdWUgb2JqZWN0 LiAgKi8KLSBzdHJ1Y3QgdmFsdWUgKgotIHZhbHVlX29iamVjdF90b192YWx1ZSAoUHlPYmplY3Qg KnNlbGYpCi0gewotQEAgLTgyMSw3ICs4NDIsOCBAQCB2YWx1ZV9vYmplY3RfdG9fdmFsdWUgKFB5 T2JqZWN0ICpzZWxmKQotIH0KLSAKLSAvKiBUcnkgdG8gY29udmVydCBhIFB5dGhvbiB2YWx1ZSB0 byBhIGdkYiB2YWx1ZS4gIElmIHRoZSB2YWx1ZSBjYW5ub3QKLS0gICBiZSBjb252ZXJ0ZWQsIHNl dCBhIFB5dGhvbiBleGNlcHRpb24gYW5kIHJldHVybiBOVUxMLiAgKi8KLSsgICBiZSBjb252ZXJ0 ZWQsIHNldCBhIFB5dGhvbiBleGNlcHRpb24gYW5kIHJldHVybiBOVUxMLiAgUmV0dXJucyBhCi0r ICAgYm9ycm93ZWQgcmVmZXJlbmNlIHRvIHRoZSByZXN1bHRpbmcgc3RydWN0IHZhbHVlLiAgKi8K LSAKLSBzdHJ1Y3QgdmFsdWUgKgotIGNvbnZlcnRfdmFsdWVfZnJvbV9weXRob24gKFB5T2JqZWN0 ICpvYmopCi1AQCAtODUzLDcgKzg3NSwzNCBAQCBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChQ eU9iamVjdCAqb2JqKQorQEAgLTg4Myw3ICs4ODgsMzQgQEAgY29udmVydF92YWx1ZV9mcm9tX3B5 dGhvbiAoUHlPYmplY3QgKm9iaikKICAJewogIAkgIExPTkdFU1QgbCA9IFB5TG9uZ19Bc0xvbmdM b25nIChvYmopOwogIApAQCAtMTY2MzgsMjEgKzE3MTE3LDcgQEAgaW5kZXggZGQzYzkxOS4uZGM3 NjY5MiAxMDA2NDQKICAJICAgIHZhbHVlID0gdmFsdWVfZnJvbV9sb25nZXN0IChidWlsdGluX3R5 cGVfcHlsb25nLCBsKTsKICAJfQogICAgICAgIGVsc2UgaWYgKFB5RmxvYXRfQ2hlY2sgKG9iaikp Ci1AQCAtODc2LDcgKzkyNSwxMiBAQCBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChQeU9iamVj dCAqb2JqKQotIAkgICAgfQotIAl9Ci0gICAgICAgZWxzZSBpZiAoUHlPYmplY3RfVHlwZUNoZWNr IChvYmosICZ2YWx1ZV9vYmplY3RfdHlwZSkpCi0tCXZhbHVlID0gdmFsdWVfY29weSAoKCh2YWx1 ZV9vYmplY3QgKikgb2JqKS0+dmFsdWUpOwotKwl7Ci0rCSAgLyogVGhpcyBsZXRzIGNhbGxlcnMg ZnJlZWx5IGRlY3JlZiB0aGUgVmFsdWUgd3JhcHBlciBvYmplY3QKLSsJICAgICBhbmQgbm90IHdv cnJ5IGFib3V0IHdoZXRoZXIgb3Igbm90IHRoZSB2YWx1ZSB3aWxsCi0rCSAgICAgZGlzYXBwZWFy LiAgKi8KLSsJICB2YWx1ZSA9IHZhbHVlX2NvcHkgKCgodmFsdWVfb2JqZWN0ICopIG9iaiktPnZh bHVlKTsKLSsJfQotICAgICAgIGVsc2UKLSAJUHlFcnJfRm9ybWF0IChQeUV4Y19UeXBlRXJyb3Is IF8oIkNvdWxkIG5vdCBjb252ZXJ0IFB5dGhvbiBvYmplY3Q6ICVzIiksCi0gCQkgICAgICBQeVN0 cmluZ19Bc1N0cmluZyAoUHlPYmplY3RfU3RyIChvYmopKSk7Ci1AQCAtOTEyLDYgKzk2NiwyNSBA QCBnZGJweV9oaXN0b3J5IChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitAQCAtOTQy LDYgKzk3NCwyNSBAQCBnZGJweV9oaXN0b3J5IChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFy Z3MpCiAgICByZXR1cm4gdmFsdWVfdG9fdmFsdWVfb2JqZWN0IChyZXNfdmFsKTsKICB9CiAgCkBA IC0xNjY3OCw3ICsxNzE0Myw3IEBAIGluZGV4IGRkM2M5MTkuLmRjNzY2OTIgMTAwNjQ0CiAgdm9p ZAogIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKQogIHsKLUBAIC05MjIsNiArOTk1LDgg QEAgZ2RicHlfaW5pdGlhbGl6ZV92YWx1ZXMgKHZvaWQpCitAQCAtOTUyLDYgKzEwMDMsOCBAQCBn ZGJweV9pbml0aWFsaXplX3ZhbHVlcyAodm9pZCkKICAgIFB5TW9kdWxlX0FkZE9iamVjdCAoZ2Ri X21vZHVsZSwgIlZhbHVlIiwgKFB5T2JqZWN0ICopICZ2YWx1ZV9vYmplY3RfdHlwZSk7CiAgCiAg ICB2YWx1ZXNfaW5fcHl0aG9uID0gTlVMTDsKQEAgLTE2Njg3LDE5ICsxNzE1Miw2IEBAIGluZGV4 IGRkM2M5MTkuLmRjNzY2OTIgMTAwNjQ0CiAgfQogIAogIAwKLUBAIC0xMDE5LDQgKzEwOTQsMTIg QEAgUHlUeXBlT2JqZWN0IHZhbHVlX29iamVjdF90eXBlID0gewotICAgdmFscHlfbmV3CQkJICAv KiB0cF9uZXcgKi8KLSB9OwotIAotKyNlbHNlCi0rCi0rdm9pZAotK3ByZXNlcnZlX3B5dGhvbl92 YWx1ZXMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBodGFiX3QgY29waWVkX3R5cGVzKQotK3sK LSsgIC8qIE5vdGhpbmcuICAqLwotK30KLSsKLSAjZW5kaWYgLyogSEFWRV9QWVRIT04gKi8KIGRp ZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwogaW5k ZXggMjU0YmQyOC4uNWEyYTlhZSAxMDA2NDQKIC0tLSBhL2dkYi9weXRob24vcHl0aG9uLmMKQEAg LTE3MjE2LDE1ICsxNzY2OCwxMSBAQCBpbmRleCAyNTRiZDI4Li41YTJhOWFlIDEwMDY0NAogICAg ICAiV3JpdGUgYSBzdHJpbmcgdXNpbmcgZ2RiJ3MgZmlsdGVyZWQgc3RyZWFtLiIgfSwKICAgIHsg ImZsdXNoIiwgZ2RicHlfZmx1c2gsIE1FVEhfTk9BUkdTLAogZGlmZiAtLWdpdCBhL2dkYi9weXRo b24vcHl0aG9uLmggYi9nZGIvcHl0aG9uL3B5dGhvbi5oCi1pbmRleCAzM2IwNDM3Li5iYmI2MTg0 IDEwMDY0NAoraW5kZXggZTk3MDE4MC4uYmJiNjE4NCAxMDA2NDQKIC0tLSBhL2dkYi9weXRob24v cHl0aG9uLmgKICsrKyBiL2dkYi9weXRob24vcHl0aG9uLmgKLUBAIC0yMiwxNCArMjIsMTggQEAK K0BAIC0yNCw2ICsyNCwxMCBAQAogIAotICNpbmNsdWRlICJ2YWx1ZS5oIgotIAotLWV4dGVybiBz dHJ1Y3QgdmFsdWUgKnZhbHVlc19pbl9weXRob247Ci0tCiAgdm9pZCBldmFsX3B5dGhvbl9mcm9t X2NvbnRyb2xfY29tbWFuZCAoc3RydWN0IGNvbW1hbmRfbGluZSAqKTsKICAKICt2b2lkIHNvdXJj ZV9weXRob25fc2NyaXB0IChGSUxFICpzdHJlYW0sIGNoYXIgKmZpbGUpOwpAQCAtMTcyMzQsMTIg KzE3NjgyLDYgQEAgaW5kZXggMzNiMDQzNy4uYmJiNjE4NCAxMDA2NDQKICBpbnQgYXBwbHlfdmFs X3ByZXR0eV9wcmludGVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCiAgCQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiAg CQkJICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkJICAgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi0gCQkJICAgICAgY29u c3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKTsKLSAKLSt2b2lkIHByZXNlcnZlX3B5 dGhvbl92YWx1ZXMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBodGFiX3QgY29waWVkX3R5cGVz KTsKLSsKLSAjZW5kaWYgLyogR0RCX1BZVEhPTl9IICovCiBkaWZmIC0tZ2l0IGEvZ2RiL3NjbS1s YW5nLmMgYi9nZGIvc2NtLWxhbmcuYwogaW5kZXggZGUzNDg5NC4uMDc1MThiMCAxMDA2NDQKIC0t LSBhL2dkYi9zY20tbGFuZy5jCkBAIC0xNzQ2Nyw3ICsxNzkwOSw3IEBAIGluZGV4IDFjMzc4MDEu LjU5NGViMTYgMTAwNjQ0CiAgCSAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChOVUxMLCBzeW0s IGZyYW1lLCBzdHJlYW0sIDQgKiBudW1fdGFicyk7CiAgCSAgYnJlYWs7CiBkaWZmIC0tZ2l0IGEv Z2RiL3N5bWZpbGUuYyBiL2dkYi9zeW1maWxlLmMKLWluZGV4IGMxODJmYWEuLjU1MGQwNmEgMTAw NjQ0CitpbmRleCA1MTUxOTY2Li5hY2NhNTM3IDEwMDY0NAogLS0tIGEvZ2RiL3N5bWZpbGUuYwog KysrIGIvZ2RiL3N5bWZpbGUuYwogQEAgLTkyOCw2ICs5MjgsMTcgQEAgbmV3X3N5bWZpbGVfb2Jq ZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGludCBhZGRfZmxhZ3MpCkBAIC0xNzU1MCw3 ICsxNzk5Miw3IEBAIGluZGV4IGMxODJmYWEuLjU1MGQwNmEgMTAwNjQ0CiAgICBpZiAoZnJvbV90 dHkpCiAgICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCJObyBzeW1ib2wgZmlsZSBub3cuXG4iKSk7 CiAgfQotQEAgLTI0MzcsMTMgKzI0NTgsMTUgQEAgcmVyZWFkX3N5bWJvbHMgKHZvaWQpCitAQCAt MjQzNiwxMyArMjQ1NywxNSBAQCByZXJlYWRfc3ltYm9scyAodm9pZCkKICAJICAgICAgICAgemVy byBpcyBPSyBzaW5jZSBkYnhyZWFkLmMgYWxzbyBkb2VzIHdoYXQgaXQgbmVlZHMgdG8gZG8gaWYK ICAJICAgICAgICAgb2JqZmlsZS0+Z2xvYmFsX3BzeW1ib2xzLnNpemUgaXMgMC4gICovCiAgCSAg ICAgICgqb2JqZmlsZS0+c2YtPnN5bV9yZWFkKSAob2JqZmlsZSwgMCk7CkBAIC0xNzU2Nyw3ICsx ODAwOSw3IEBAIGluZGV4IGMxODJmYWEuLjU1MGQwNmEgMTAwNjQ0CiAgCSAgICAgIC8qIFdlJ3Jl IGRvbmUgcmVhZGluZyB0aGUgc3ltYm9sIGZpbGU7IGZpbmlzaCBvZmYgY29tcGxhaW50cy4gICov CiAgCSAgICAgIGNsZWFyX2NvbXBsYWludHMgKCZzeW1maWxlX2NvbXBsYWludHMsIDAsIDEpOwog IAotQEAgLTI3NDEsNyArMjc2NCw3IEBAIGFsbG9jYXRlX3N5bXRhYiAoY2hhciAqZmlsZW5hbWUs IHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTI3NDAsNyArMjc2Myw3IEBAIGFsbG9jYXRl X3N5bXRhYiAoY2hhciAqZmlsZW5hbWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIH0KICAK ICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKgpAQCAtMTc1NzYsNyArMTgwMTgsNyBAQCBpbmRleCBj MTgyZmFhLi41NTBkMDZhIDEwMDY0NAogIHsKICAgIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN5 bXRhYjsKICAKLUBAIC0zMDU1LDcgKzMwNzgsOCBAQCBhZ2FpbjI6CitAQCAtMzA1NCw3ICszMDc3 LDggQEAgYWdhaW4yOgogIAogIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqCiAgc3RhcnRfcHN5bXRh Yl9jb21tb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLApAQCAtMTc2NTMsNyArMTgwOTUsNyBA QCBpbmRleCBlYjM1MzY5Li5kZmQ4YzhjIDEwMDY0NAogIAkgIHsKICAJICAgIHByaW50Zl9maWx0 ZXJlZCAoIkdsb2JhbCBzeW1ib2wgYCIpOwogZGlmZiAtLWdpdCBhL2dkYi9zeW10YWIuYyBiL2dk Yi9zeW10YWIuYwotaW5kZXggYzg4MTU2YS4uYjI2OTQ5MSAxMDA2NDQKK2luZGV4IGM4ODE1NmEu LjljMTAyYzAgMTAwNjQ0CiAtLS0gYS9nZGIvc3ltdGFiLmMKICsrKyBiL2dkYi9zeW10YWIuYwog QEAgLTQyLDYgKzQyLDcgQEAKQEAgLTE3NzA1LDcgKzE4MTQ3LDE3IEBAIGluZGV4IGM4ODE1NmEu LmIyNjk0OTEgMTAwNjQ0CiAgICB7CiAgICAgIGlmIChGSUxFTkFNRV9DTVAgKG5hbWUsIHBzdC0+ ZmlsZW5hbWUpID09IDApCiAgICAgICAgewotQEAgLTQ3NCw3ICs0NzMsNyBAQCBzeW1ib2xfZmlu ZF9kZW1hbmdsZWRfbmFtZSAoc3RydWN0IGdlbmVyYWxfc3ltYm9sX2luZm8gKmdzeW1ib2wsCitA QCAtNDE0LDcgKzQxMyw4IEBAIHN5bWJvbF9pbml0X2xhbmd1YWdlX3NwZWNpZmljIChzdHJ1Y3Qg Z2VuZXJhbF9zeW1ib2xfaW5mbyAqZ3N5bWJvbCwKKyAgIGdzeW1ib2wtPmxhbmd1YWdlID0gbGFu Z3VhZ2U7CisgICBpZiAoZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfY3BsdXMKKyAgICAg ICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9qYXZhCistICAgICAgfHwgZ3N5bWJv bC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2Vfb2JqYykKKysgICAgICB8fCBnc3ltYm9sLT5sYW5ndWFn ZSA9PSBsYW5ndWFnZV9vYmpjCisrICAgICAgfHwgZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3Vh Z2VfZm9ydHJhbikKKyAgICAgeworICAgICAgIGdzeW1ib2wtPmxhbmd1YWdlX3NwZWNpZmljLmNw bHVzX3NwZWNpZmljLmRlbWFuZ2xlZF9uYW1lID0gTlVMTDsKKyAgICAgfQorQEAgLTQ3NCw3ICs0 NzQsNyBAQCBzeW1ib2xfZmluZF9kZW1hbmdsZWRfbmFtZSAoc3RydWN0IGdlbmVyYWxfc3ltYm9s X2luZm8gKmdzeW1ib2wsCiAgICAgICAgfHwgZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2Vf YXV0bykKICAgICAgewogICAgICAgIGRlbWFuZ2xlZCA9CkBAIC0xNzcxNCw3ICsxODE2NiwyMyBA QCBpbmRleCBjODgxNTZhLi5iMjY5NDkxIDEwMDY0NAogICAgICAgIGlmIChkZW1hbmdsZWQgIT0g TlVMTCkKICAJewogIAkgIGdzeW1ib2wtPmxhbmd1YWdlID0gbGFuZ3VhZ2VfY3BsdXM7Ci1AQCAt ODY4LDcgKzg2NywxMyBAQCBmaW5kX3BjX3NlY3RfcHN5bXRhYiAoQ09SRV9BRERSIHBjLCBzdHJ1 Y3Qgb2JqX3NlY3Rpb24gKnNlY3Rpb24pCitAQCAtNjMzLDYgKzYzMyw3IEBAIHN5bWJvbF9uYXR1 cmFsX25hbWUgKGNvbnN0IHN0cnVjdCBnZW5lcmFsX3N5bWJvbF9pbmZvICpnc3ltYm9sKQorICAg ICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAgICBjYXNlIGxhbmd1YWdlX2phdmE6CisgICAgIGNh c2UgbGFuZ3VhZ2Vfb2JqYzoKKysgICAgY2FzZSBsYW5ndWFnZV9mb3J0cmFuOgorICAgICAgIGlm IChnc3ltYm9sLT5sYW5ndWFnZV9zcGVjaWZpYy5jcGx1c19zcGVjaWZpYy5kZW1hbmdsZWRfbmFt ZSAhPSBOVUxMKQorIAlyZXR1cm4gZ3N5bWJvbC0+bGFuZ3VhZ2Vfc3BlY2lmaWMuY3BsdXNfc3Bl Y2lmaWMuZGVtYW5nbGVkX25hbWU7CisgICAgICAgYnJlYWs7CitAQCAtNjU4LDYgKzY1OSw3IEBA IHN5bWJvbF9kZW1hbmdsZWRfbmFtZSAoY29uc3Qgc3RydWN0IGdlbmVyYWxfc3ltYm9sX2luZm8g KmdzeW1ib2wpCisgICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgIGNhc2UgbGFuZ3VhZ2Vf amF2YToKKyAgICAgY2FzZSBsYW5ndWFnZV9vYmpjOgorKyAgICBjYXNlIGxhbmd1YWdlX2ZvcnRy YW46CisgICAgICAgaWYgKGdzeW1ib2wtPmxhbmd1YWdlX3NwZWNpZmljLmNwbHVzX3NwZWNpZmlj LmRlbWFuZ2xlZF9uYW1lICE9IE5VTEwpCisgCXJldHVybiBnc3ltYm9sLT5sYW5ndWFnZV9zcGVj aWZpYy5jcGx1c19zcGVjaWZpYy5kZW1hbmdsZWRfbmFtZTsKKyAgICAgICBicmVhazsKK0BAIC04 NjgsNyArODcwLDEzIEBAIGZpbmRfcGNfc2VjdF9wc3ltdGFiIChDT1JFX0FERFIgcGMsIHN0cnVj dCBvYmpfc2VjdGlvbiAqc2VjdGlvbikKICAgICAgIHRoYW4gdGhlIGxhdGVyIHVzZWQgVEVYVExP Vy9URVhUSElHSCBvbmUuICAqLwogIAogICAgQUxMX09CSkZJTEVTIChvYmpmaWxlKQpAQCAtMTc3 MjksNyArMTgxOTcsNyBAQCBpbmRleCBjODgxNTZhLi5iMjY5NDkxIDEwMDY0NAogICAgICAgIHsK ICAJc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3Q7CiAgCi1AQCAtOTAxLDYgKzkwNiw3IEBAIGZp bmRfcGNfc2VjdF9wc3ltdGFiIChDT1JFX0FERFIgcGMsIHN0cnVjdCBvYmpfc2VjdGlvbiAqc2Vj dGlvbikKK0BAIC05MDEsNiArOTA5LDcgQEAgZmluZF9wY19zZWN0X3BzeW10YWIgKENPUkVfQURE UiBwYywgc3RydWN0IG9ial9zZWN0aW9uICpzZWN0aW9uKQogIAkgICAgcmV0dXJuIHBzdDsKICAJ ICB9CiAgICAgICAgfQpAQCAtMTc3MzcsNyArMTgyMDUsNyBAQCBpbmRleCBjODgxNTZhLi5iMjY5 NDkxIDEwMDY0NAogIAogICAgLyogRXhpc3RpbmcgUFNZTVRBQlNfQUREUk1BUCBtYXBwaW5nIGlz IHByZXNlbnQgZXZlbiBmb3IgUEFSVElBTF9TWU1UQUJzCiAgICAgICB3aGljaCBzdGlsbCBoYXZl IG5vIGNvcnJlc3BvbmRpbmcgZnVsbCBTWU1UQUJzIHJlYWQuICBCdXQgaXQgaXMgbm90Ci1AQCAt MTE2OCw2ICsxMTc0LDIyIEBAIGZpeHVwX3BzeW1ib2xfc2VjdGlvbiAoc3RydWN0IHBhcnRpYWxf c3ltYm9sICpwc3ltLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKK0BAIC0xMTY4LDYgKzExNzcs MjIgQEAgZml4dXBfcHN5bWJvbF9zZWN0aW9uIChzdHJ1Y3QgcGFydGlhbF9zeW1ib2wgKnBzeW0s IHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogICAgcmV0dXJuIHBzeW07CiAgfQogIApAQCAtMTc3 NjAsNyArMTgyMjgsNyBAQCBpbmRleCBjODgxNTZhLi5iMjY5NDkxIDEwMDY0NAogIC8qIEZpbmQg dGhlIGRlZmluaXRpb24gZm9yIGEgc3BlY2lmaWVkIHN5bWJvbCBuYW1lIE5BTUUKICAgICBpbiBk b21haW4gRE9NQUlOLCB2aXNpYmxlIGZyb20gbGV4aWNhbCBibG9jayBCTE9DSy4KICAgICBSZXR1 cm5zIHRoZSBzdHJ1Y3Qgc3ltYm9sIHBvaW50ZXIsIG9yIHplcm8gaWYgbm8gc3ltYm9sIGlzIGZv dW5kLgotQEAgLTExOTQsMTAgKzEyMTYsMTQgQEAgbG9va3VwX3N5bWJvbF9pbl9sYW5ndWFnZSAo Y29uc3QgY2hhciAqbmFtZSwgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKK0BAIC0xMTk0LDEw ICsxMjE5LDE0IEBAIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3VhZ2UgKGNvbnN0IGNoYXIgKm5hbWUs IGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCiAgewogICAgY2hhciAqZGVtYW5nbGVkX25hbWUg PSBOVUxMOwogICAgY29uc3QgY2hhciAqbW9kaWZpZWRfbmFtZSA9IE5VTEw7CkBAIC0xNzc3Niw3 ICsxODI0NCw3IEBAIGluZGV4IGM4ODE1NmEuLmIyNjk0OTEgMTAwNjQ0CiAgICBtb2RpZmllZF9u YW1lID0gbmFtZTsKICAKICAgIC8qIElmIHdlIGFyZSB1c2luZyBDKysgb3IgSmF2YSwgZGVtYW5n bGUgdGhlIG5hbWUgYmVmb3JlIGRvaW5nIGEgbG9va3VwLCBzbwotQEAgLTEyMDcsNyArMTIzMyw2 IEBAIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3VhZ2UgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0 cnVjdCBibG9jayAqYmxvY2ssCitAQCAtMTIwNyw3ICsxMjM2LDYgQEAgbG9va3VwX3N5bWJvbF9p bl9sYW5ndWFnZSAoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywK ICAgICAgICBkZW1hbmdsZWRfbmFtZSA9IGNwbHVzX2RlbWFuZ2xlIChuYW1lLCBETUdMX0FOU0kg fCBETUdMX1BBUkFNUyk7CiAgICAgICAgaWYgKGRlbWFuZ2xlZF9uYW1lKQogIAl7CkBAIC0xNzc4 NCw3ICsxODI1Miw3IEBAIGluZGV4IGM4ODE1NmEuLmIyNjk0OTEgMTAwNjQ0CiAgCSAgbW9kaWZp ZWRfbmFtZSA9IGRlbWFuZ2xlZF9uYW1lOwogIAkgIG1ha2VfY2xlYW51cCAoeGZyZWUsIGRlbWFu Z2xlZF9uYW1lKTsKICAJfQotQEAgLTEyMjksNyArMTI1NCw2IEBAIGxvb2t1cF9zeW1ib2xfaW5f bGFuZ3VhZ2UgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCitA QCAtMTIyOSw3ICsxMjU3LDYgQEAgbG9va3VwX3N5bWJvbF9pbl9sYW5ndWFnZSAoY29uc3QgY2hh ciAqbmFtZSwgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKICAJCSAgICAgIAkJICAgICAgIERN R0xfQU5TSSB8IERNR0xfUEFSQU1TIHwgRE1HTF9KQVZBKTsKICAgICAgICBpZiAoZGVtYW5nbGVk X25hbWUpCiAgCXsKQEAgLTE3NzkyLDcgKzE4MjYwLDcgQEAgaW5kZXggYzg4MTU2YS4uYjI2OTQ5 MSAxMDA2NDQKICAJICBtb2RpZmllZF9uYW1lID0gZGVtYW5nbGVkX25hbWU7CiAgCSAgbWFrZV9j bGVhbnVwICh4ZnJlZSwgZGVtYW5nbGVkX25hbWUpOwogIAl9Ci1AQCAtMTI0OCw4ICsxMjcyLDgg QEAgbG9va3VwX3N5bWJvbF9pbl9sYW5ndWFnZSAoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgc3Ry dWN0IGJsb2NrICpibG9jaywKK0BAIC0xMjQ4LDggKzEyNzUsOCBAQCBsb29rdXBfc3ltYm9sX2lu X2xhbmd1YWdlIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAog ICAgICAgIG1vZGlmaWVkX25hbWUgPSBjb3B5OwogICAgICB9CiAgCkBAIC0xNzgwMyw3ICsxODI3 MSw3IEBAIGluZGV4IGM4ODE1NmEuLmIyNjk0OTEgMTAwNjQ0CiAgICBkb19jbGVhbnVwcyAoY2xl YW51cCk7CiAgCiAgICByZXR1cm4gcmV0dXJudmFsOwotQEAgLTEyNzMsOSArMTI5Nyw5IEBAIGxv b2t1cF9zeW1ib2wgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ss CitAQCAtMTI3Myw5ICsxMzAwLDkgQEAgbG9va3VwX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwg Y29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKICAgICB3ZWxsLiAgKi8KICAKICBzdGF0aWMgc3Ry dWN0IHN5bWJvbCAqCkBAIC0xNzgxNiw3ICsxODI4NCw3IEBAIGluZGV4IGM4ODE1NmEuLmIyNjk0 OTEgMTAwNjQ0CiAgewogICAgc3RydWN0IHN5bWJvbCAqc3ltOwogICAgY29uc3Qgc3RydWN0IGxh bmd1YWdlX2RlZm4gKmxhbmdkZWY7Ci1AQCAtMTI5MSw1NSArMTMxNSwxOSBAQCBsb29rdXBfc3lt Ym9sX2F1eCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqbGlua2FnZV9uYW1lLAorQEAg LTEyOTEsNTUgKzEzMTgsMTkgQEAgbG9va3VwX3N5bWJvbF9hdXggKGNvbnN0IGNoYXIgKm5hbWUs IGNvbnN0IGNoYXIgKmxpbmthZ2VfbmFtZSwKICAgIC8qIFNlYXJjaCBzcGVjaWZpZWQgYmxvY2sg YW5kIGl0cyBzdXBlcmlvcnMuICBEb24ndCBzZWFyY2gKICAgICAgIFNUQVRJQ19CTE9DSyBvciBH TE9CQUxfQkxPQ0suICAqLwogIApAQCAtMTc4NzksNyArMTgzNDcsNyBAQCBpbmRleCBjODgxNTZh Li5iMjY5NDkxIDEwMDY0NAogICAgaWYgKHN5bSAhPSBOVUxMKQogICAgICByZXR1cm4gc3ltOwog IAotQEAgLTEzNDksMTEgKzEzMzcsMTEgQEAgbG9va3VwX3N5bWJvbF9hdXggKGNvbnN0IGNoYXIg Km5hbWUsIGNvbnN0IGNoYXIgKmxpbmthZ2VfbmFtZSwKK0BAIC0xMzQ5LDExICsxMzQwLDExIEBA IGxvb2t1cF9zeW1ib2xfYXV4IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpsaW5rYWdl X25hbWUsCiAgICAgICBkZXNpcmVkIG5hbWUgYXMgYSBmaWxlLWxldmVsIHN0YXRpYywgdGhlbiBk byBwc3ltdGFiLXRvLXN5bXRhYgogICAgICAgY29udmVyc2lvbiBvbiB0aGUgZmx5IGFuZCByZXR1 cm4gdGhlIGZvdW5kIHN5bWJvbC4gKi8KICAKQEAgLTE3ODkzLDcgKzE4MzYxLDcgQEAgaW5kZXgg Yzg4MTU2YS4uYjI2OTQ5MSAxMDA2NDQKICAgIGlmIChzeW0gIT0gTlVMTCkKICAgICAgcmV0dXJu IHN5bTsKICAKLUBAIC0xMzY0LDMwICsxMzUyLDgxIEBAIGxvb2t1cF9zeW1ib2xfYXV4IChjb25z dCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpsaW5rYWdlX25hbWUsCitAQCAtMTM2NCwzMCArMTM1 NSw4MSBAQCBsb29rdXBfc3ltYm9sX2F1eCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAq bGlua2FnZV9uYW1lLAogICAgIERvbid0IHNlYXJjaCBTVEFUSUNfQkxPQ0sgb3IgR0xPQkFMX0JM T0NLLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHN5bWJvbCAqCkBAIC0xNzk4Nyw3ICsxODQ1NSw3 IEBAIGluZGV4IGM4ODE1NmEuLmIyNjk0OTEgMTAwNjQ0CiAgCiAgICByZXR1cm4gTlVMTDsKICB9 Ci1AQCAtMTQxNiwxMyArMTQ1NSwxMiBAQCBsb29rdXBfb2JqZmlsZV9mcm9tX2Jsb2NrIChjb25z dCBzdHJ1Y3QgYmxvY2sgKmJsb2NrKQorQEAgLTE0MTYsMTMgKzE0NTgsMTIgQEAgbG9va3VwX29i amZpbGVfZnJvbV9ibG9jayAoY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaykKICAgICBibG9ja19m b3VuZCBhcHByb3ByaWF0ZWx5LiAgKi8KICAKICBzdHJ1Y3Qgc3ltYm9sICoKQEAgLTE4MDAzLDcg KzE4NDcxLDcgQEAgaW5kZXggYzg4MTU2YS4uYjI2OTQ5MSAxMDA2NDQKICAgIGlmIChzeW0pCiAg ICAgIHsKICAgICAgICBibG9ja19mb3VuZCA9IGJsb2NrOwotQEAgLTE0MzgsNyArMTQ3Niw2IEBA IGxvb2t1cF9zeW1ib2xfYXV4X2Jsb2NrIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICps aW5rYWdlX25hbWUsCitAQCAtMTQzOCw3ICsxNDc5LDYgQEAgbG9va3VwX3N5bWJvbF9hdXhfYmxv Y2sgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmxpbmthZ2VfbmFtZSwKICBzdHJ1Y3Qg c3ltYm9sICoKICBsb29rdXBfZ2xvYmFsX3N5bWJvbF9mcm9tX29iamZpbGUgKGNvbnN0IHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLAogIAkJCQkgICBjb25zdCBjaGFyICpuYW1lLApAQCAtMTgwMTEs NyArMTg0NzksNyBAQCBpbmRleCBjODgxNTZhLi5iMjY5NDkxIDEwMDY0NAogIAkJCQkgICBjb25z dCBkb21haW5fZW51bSBkb21haW4pCiAgewogICAgc3RydWN0IHN5bWJvbCAqc3ltOwotQEAgLTE0 NTIsNyArMTQ4OSw3IEBAIGxvb2t1cF9nbG9iYWxfc3ltYm9sX2Zyb21fb2JqZmlsZSAoY29uc3Qg c3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMTQ1Miw3ICsxNDkyLDcgQEAgbG9va3VwX2ds b2JhbF9zeW1ib2xfZnJvbV9vYmpmaWxlIChjb25zdCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwK ICAgIHsKICAgICAgYnYgPSBCTE9DS1ZFQ1RPUiAocyk7CiAgICAgIGJsb2NrID0gQkxPQ0tWRUNU T1JfQkxPQ0sgKGJ2LCBHTE9CQUxfQkxPQ0spOwpAQCAtMTgwMjAsNyArMTg0ODgsNyBAQCBpbmRl eCBjODgxNTZhLi5iMjY5NDkxIDEwMDY0NAogICAgICBpZiAoc3ltKQogICAgICAgIHsKICAJYmxv Y2tfZm91bmQgPSBibG9jazsKLUBAIC0xNDYxLDIzICsxNDk4LDIzIEBAIGxvb2t1cF9nbG9iYWxf c3ltYm9sX2Zyb21fb2JqZmlsZSAoY29uc3Qgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAt MTQ2MSwyMyArMTUwMSwyMyBAQCBsb29rdXBfZ2xvYmFsX3N5bWJvbF9mcm9tX29iamZpbGUgKGNv bnN0IHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogICAgfQogIAogICAgLyogTm93IGdvIHRocm91 Z2ggcHN5bXRhYnMuICAqLwpAQCAtMTgwNDgsNyArMTg1MTYsNyBAQCBpbmRleCBjODgxNTZhLi5i MjY5NDkxIDEwMDY0NAogIAogICAgcmV0dXJuIE5VTEw7CiAgfQotQEAgLTE0ODgsOCArMTUyNSw3 IEBAIGxvb2t1cF9nbG9iYWxfc3ltYm9sX2Zyb21fb2JqZmlsZSAoY29uc3Qgc3RydWN0IG9iamZp bGUgKm9iamZpbGUsCitAQCAtMTQ4OCw4ICsxNTI4LDcgQEAgbG9va3VwX2dsb2JhbF9zeW1ib2xf ZnJvbV9vYmpmaWxlIChjb25zdCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgICBzdGF0aWMg c3ltYm9scy4gICovCiAgCiAgc3RhdGljIHN0cnVjdCBzeW1ib2wgKgpAQCAtMTgwNTgsNyArMTg1 MjYsNyBAQCBpbmRleCBjODgxNTZhLi5iMjY5NDkxIDEwMDY0NAogIAkJCSAgIGNvbnN0IGRvbWFp bl9lbnVtIGRvbWFpbikKICB7CiAgICBzdHJ1Y3Qgc3ltYm9sICpzeW07Ci1AQCAtMTUwMiw3ICsx NTM4LDcgQEAgbG9va3VwX3N5bWJvbF9hdXhfc3ltdGFicyAoaW50IGJsb2NrX2luZGV4LAorQEAg LTE1MDIsNyArMTU0MSw3IEBAIGxvb2t1cF9zeW1ib2xfYXV4X3N5bXRhYnMgKGludCBibG9ja19p bmRleCwKICAgIHsKICAgICAgYnYgPSBCTE9DS1ZFQ1RPUiAocyk7CiAgICAgIGJsb2NrID0gQkxP Q0tWRUNUT1JfQkxPQ0sgKGJ2LCBibG9ja19pbmRleCk7CkBAIC0xODA2Nyw3ICsxODUzNSw3IEBA IGluZGV4IGM4ODE1NmEuLmIyNjk0OTEgMTAwNjQ0CiAgICAgIGlmIChzeW0pCiAgICAgICAgewog IAlibG9ja19mb3VuZCA9IGJsb2NrOwotQEAgLTE1MjAsNyArMTU1Niw2IEBAIGxvb2t1cF9zeW1i b2xfYXV4X3N5bXRhYnMgKGludCBibG9ja19pbmRleCwKK0BAIC0xNTIwLDcgKzE1NTksNiBAQCBs b29rdXBfc3ltYm9sX2F1eF9zeW10YWJzIChpbnQgYmxvY2tfaW5kZXgsCiAgCiAgc3RhdGljIHN0 cnVjdCBzeW1ib2wgKgogIGxvb2t1cF9zeW1ib2xfYXV4X3BzeW10YWJzIChpbnQgYmxvY2tfaW5k ZXgsIGNvbnN0IGNoYXIgKm5hbWUsCkBAIC0xODA3NSw3ICsxODU0Myw3IEBAIGluZGV4IGM4ODE1 NmEuLmIyNjk0OTEgMTAwNjQ0CiAgCQkJICAgIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbikKICB7 CiAgICBzdHJ1Y3Qgc3ltYm9sICpzeW07Ci1AQCAtMTUzMSwxNiArMTU2NiwxNSBAQCBsb29rdXBf c3ltYm9sX2F1eF9wc3ltdGFicyAoaW50IGJsb2NrX2luZGV4LCBjb25zdCBjaGFyICpuYW1lLAor QEAgLTE1MzEsMTYgKzE1NjksMTUgQEAgbG9va3VwX3N5bWJvbF9hdXhfcHN5bXRhYnMgKGludCBi bG9ja19pbmRleCwgY29uc3QgY2hhciAqbmFtZSwKICAgIHN0cnVjdCBzeW10YWIgKnM7CiAgICBj b25zdCBpbnQgcHN5bXRhYl9pbmRleCA9IChibG9ja19pbmRleCA9PSBHTE9CQUxfQkxPQ0sgPyAx IDogMCk7CiAgCkBAIC0xODA5NSw3ICsxODU2Myw3IEBAIGluZGV4IGM4ODE1NmEuLmIyNjk0OTEg MTAwNjQ0CiAgCWlmICghc3ltKQogIAkgIHsKICAJICAgIC8qIFRoaXMgc2hvdWxkbid0IGJlIG5l Y2Vzc2FyeSwgYnV0IGFzIGEgbGFzdCByZXNvcnQgdHJ5Ci1AQCAtMTU1Nyw3ICsxNTkxLDcgQEAg bG9va3VwX3N5bWJvbF9hdXhfcHN5bXRhYnMgKGludCBibG9ja19pbmRleCwgY29uc3QgY2hhciAq bmFtZSwKK0BAIC0xNTU3LDcgKzE1OTQsNyBAQCBsb29rdXBfc3ltYm9sX2F1eF9wc3ltdGFicyAo aW50IGJsb2NrX2luZGV4LCBjb25zdCBjaGFyICpuYW1lLAogIAkgICAgYmxvY2sgPSBCTE9DS1ZF Q1RPUl9CTE9DSyAoYnYsCiAgCQkJCSAgICAgICBibG9ja19pbmRleCA9PSBHTE9CQUxfQkxPQ0sg PwogIAkJCQkgICAgICAgU1RBVElDX0JMT0NLIDogR0xPQkFMX0JMT0NLKTsKQEAgLTE4MTA0LDcg KzE4NTcyLDcgQEAgaW5kZXggYzg4MTU2YS4uYjI2OTQ5MSAxMDA2NDQKICAJICAgIGlmICghc3lt KQogIAkgICAgICBlcnJvciAoXygiSW50ZXJuYWw6ICVzIHN5bWJvbCBgJXMnIGZvdW5kIGluICVz IHBzeW10YWIgYnV0IG5vdCBpbiBzeW10YWIuXG4lcyBtYXkgYmUgYW4gaW5saW5lZCBmdW5jdGlv biwgb3IgbWF5IGJlIGEgdGVtcGxhdGUgZnVuY3Rpb25cbihpZiBhIHRlbXBsYXRlLCB0cnkgc3Bl Y2lmeWluZyBhbiBpbnN0YW50aWF0aW9uOiAlczx0eXBlPikuIiksCiAgCQkgICAgIGJsb2NrX2lu ZGV4ID09IEdMT0JBTF9CTE9DSyA/ICJnbG9iYWwiIDogInN0YXRpYyIsCi1AQCAtMTU3Niw3ICsx NjEwLDYgQEAgbG9va3VwX3N5bWJvbF9hdXhfcHN5bXRhYnMgKGludCBibG9ja19pbmRleCwgY29u c3QgY2hhciAqbmFtZSwKK0BAIC0xNTc2LDcgKzE2MTMsNiBAQCBsb29rdXBfc3ltYm9sX2F1eF9w c3ltdGFicyAoaW50IGJsb2NrX2luZGV4LCBjb25zdCBjaGFyICpuYW1lLAogIAogIHN0cnVjdCBz eW1ib2wgKgogIGJhc2ljX2xvb2t1cF9zeW1ib2xfbm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUs CkBAIC0xODExMiw3ICsxODU4MCw3IEBAIGluZGV4IGM4ODE1NmEuLmIyNjk0OTEgMTAwNjQ0CiAg CQkJICAgICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKICAJCQkgICAgICBjb25zdCBkb21h aW5fZW51bSBkb21haW4pCiAgewotQEAgLTE2MTAsMTEgKzE2NDMsMTEgQEAgYmFzaWNfbG9va3Vw X3N5bWJvbF9ub25sb2NhbCAoY29uc3QgY2hhciAqbmFtZSwKK0BAIC0xNjEwLDExICsxNjQ2LDEx IEBAIGJhc2ljX2xvb2t1cF9zeW1ib2xfbm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsCiAgICAg ICB0aGFuIHRoYXQgb25lLCBzbyBJIGRvbid0IHRoaW5rIHdlIHNob3VsZCB3b3JyeSBhYm91dCB0 aGF0IGZvcgogICAgICAgbm93LiAgKi8KICAKQEAgLTE4MTI2LDcgKzE4NTk0LDcgQEAgaW5kZXgg Yzg4MTU2YS4uYjI2OTQ5MSAxMDA2NDQKICB9CiAgCiAgLyogTG9va3VwIGEgc3ltYm9sIGluIHRo ZSBzdGF0aWMgYmxvY2sgYXNzb2NpYXRlZCB0byBCTE9DSywgaWYgdGhlcmUKLUBAIC0xNjIyLDE0 ICsxNjU1LDEzIEBAIGJhc2ljX2xvb2t1cF9zeW1ib2xfbm9ubG9jYWwgKGNvbnN0IGNoYXIgKm5h bWUsCitAQCAtMTYyMiwxNCArMTY1OCwxMyBAQCBiYXNpY19sb29rdXBfc3ltYm9sX25vbmxvY2Fs IChjb25zdCBjaGFyICpuYW1lLAogIAogIHN0cnVjdCBzeW1ib2wgKgogIGxvb2t1cF9zeW1ib2xf c3RhdGljIChjb25zdCBjaGFyICpuYW1lLApAQCAtMTgxNDIsNyArMTg2MTAsNyBAQCBpbmRleCBj ODgxNTZhLi5iMjY5NDkxIDEwMDY0NAogICAgZWxzZQogICAgICByZXR1cm4gTlVMTDsKICB9Ci1A QCAtMTYzOSw3ICsxNjcxLDYgQEAgbG9va3VwX3N5bWJvbF9zdGF0aWMgKGNvbnN0IGNoYXIgKm5h bWUsCitAQCAtMTYzOSw3ICsxNjc0LDYgQEAgbG9va3VwX3N5bWJvbF9zdGF0aWMgKGNvbnN0IGNo YXIgKm5hbWUsCiAgCiAgc3RydWN0IHN5bWJvbCAqCiAgbG9va3VwX3N5bWJvbF9nbG9iYWwgKGNv bnN0IGNoYXIgKm5hbWUsCkBAIC0xODE1MCw3ICsxODYxOCw3IEBAIGluZGV4IGM4ODE1NmEuLmIy Njk0OTEgMTAwNjQ0CiAgCQkgICAgICBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAogIAkJICAg ICAgY29uc3QgZG9tYWluX2VudW0gZG9tYWluKQogIHsKLUBAIC0xNjQ5LDE1ICsxNjgwLDE1IEBA IGxvb2t1cF9zeW1ib2xfZ2xvYmFsIChjb25zdCBjaGFyICpuYW1lLAorQEAgLTE2NDksMTUgKzE2 ODMsMTUgQEAgbG9va3VwX3N5bWJvbF9nbG9iYWwgKGNvbnN0IGNoYXIgKm5hbWUsCiAgICAvKiBD YWxsIGxpYnJhcnktc3BlY2lmaWMgbG9va3VwIHByb2NlZHVyZS4gICovCiAgICBvYmpmaWxlID0g bG9va3VwX29iamZpbGVfZnJvbV9ibG9jayAoYmxvY2spOwogICAgaWYgKG9iamZpbGUgIT0gTlVM TCkKQEAgLTE4MTY5LDcgKzE4NjM3LDcgQEAgaW5kZXggYzg4MTU2YS4uYjI2OTQ5MSAxMDA2NDQK ICB9CiAgCiAgaW50Ci1AQCAtMTY4MSwxNCArMTcxMiwxMSBAQCBzeW1ib2xfbWF0Y2hlc19kb21h aW4gKGVudW0gbGFuZ3VhZ2Ugc3ltYm9sX2xhbmd1YWdlLAorQEAgLTE2ODEsMTQgKzE3MTUsMTEg QEAgc3ltYm9sX21hdGNoZXNfZG9tYWluIChlbnVtIGxhbmd1YWdlIHN5bWJvbF9sYW5ndWFnZSwK ICB9CiAgCiAgLyogTG9vaywgaW4gcGFydGlhbF9zeW10YWIgUFNULCBmb3Igc3ltYm9sIHdob3Nl IG5hdHVyYWwgbmFtZSBpcyBOQU1FLgpAQCAtMTgxODYsNyArMTg2NTQsNyBAQCBpbmRleCBjODgx NTZhLi5iMjY5NDkxIDEwMDY0NAogIHsKICAgIHN0cnVjdCBwYXJ0aWFsX3N5bWJvbCAqdGVtcDsK ICAgIHN0cnVjdCBwYXJ0aWFsX3N5bWJvbCAqKnN0YXJ0LCAqKnBzeW07Ci1AQCAtMTc0MCw5ICsx NzY4LDcgQEAgbG9va3VwX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBz dCwgY29uc3QgY2hhciAqbmFtZSwKK0BAIC0xNzQwLDkgKzE3NzEsNyBAQCBsb29rdXBfcGFydGlh bF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN0LCBjb25zdCBjaGFyICpuYW1lLAog IAlpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLCBfKCJmYWlsZWQgaW50ZXJuYWwg Y29uc2lzdGVuY3kgY2hlY2siKSk7CiAgCiAgICAgICAgd2hpbGUgKHRvcCA8PSByZWFsX3RvcApA QCAtMTgxOTcsNyArMTg2NjUsNyBAQCBpbmRleCBjODgxNTZhLi5iMjY5NDkxIDEwMDY0NAogIAl7 CiAgCSAgaWYgKHN5bWJvbF9tYXRjaGVzX2RvbWFpbiAoU1lNQk9MX0xBTkdVQUdFICgqdG9wKSwK ICAJCQkJICAgICBTWU1CT0xfRE9NQUlOICgqdG9wKSwgZG9tYWluKSkKLUBAIC0xNzU5LDE1ICsx Nzg1LDkgQEAgbG9va3VwX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBz dCwgY29uc3QgY2hhciAqbmFtZSwKK0BAIC0xNzU5LDE1ICsxNzg4LDkgQEAgbG9va3VwX3BhcnRp YWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCwgY29uc3QgY2hhciAqbmFtZSwK ICAgICAgICBmb3IgKHBzeW0gPSBzdGFydDsgcHN5bSA8IHN0YXJ0ICsgbGVuZ3RoOyBwc3ltKysp CiAgCXsKICAJICBpZiAoc3ltYm9sX21hdGNoZXNfZG9tYWluIChTWU1CT0xfTEFOR1VBR0UgKCpw c3ltKSwKQEAgLTE4MjE2LDcgKzE4Njg0LDcgQEAgaW5kZXggYzg4MTU2YS4uYjI2OTQ5MSAxMDA2 NDQKICAJfQogICAgICB9CiAgCi1AQCAtMTgwOSwyMiArMTgyOSwyNSBAQCBiYXNpY19sb29rdXBf dHJhbnNwYXJlbnRfdHlwZSAoY29uc3QgY2hhciAqbmFtZSkKK0BAIC0xODA5LDIyICsxODMyLDI1 IEBAIGJhc2ljX2xvb2t1cF90cmFuc3BhcmVudF90eXBlIChjb25zdCBjaGFyICpuYW1lKQogICAg ewogICAgICBidiA9IEJMT0NLVkVDVE9SIChzKTsKICAgICAgYmxvY2sgPSBCTE9DS1ZFQ1RPUl9C TE9DSyAoYnYsIEdMT0JBTF9CTE9DSyk7CkBAIC0xODI0Nyw3ICsxODcxNSw3IEBAIGluZGV4IGM4 ODE1NmEuLmIyNjk0OTEgMTAwNjQ0CiAgCWlmICghc3ltKQogIAkgIHsKICAJICAgIC8qIFRoaXMg c2hvdWxkbid0IGJlIG5lY2Vzc2FyeSwgYnV0IGFzIGEgbGFzdCByZXNvcnQKLUBAIC0xODMzLDcg KzE4NTYsNyBAQCBiYXNpY19sb29rdXBfdHJhbnNwYXJlbnRfdHlwZSAoY29uc3QgY2hhciAqbmFt ZSkKK0BAIC0xODMzLDcgKzE4NTksNyBAQCBiYXNpY19sb29rdXBfdHJhbnNwYXJlbnRfdHlwZSAo Y29uc3QgY2hhciAqbmFtZSkKICAJICAgICAqIHRoZSBwc3ltdGFiIGdldHMgaXQgd3JvbmcgaW4g c29tZSBjYXNlcy4KICAJICAgICAqLwogIAkgICAgYmxvY2sgPSBCTE9DS1ZFQ1RPUl9CTE9DSyAo YnYsIFNUQVRJQ19CTE9DSyk7CkBAIC0xODI1Niw3ICsxODcyNCw3IEBAIGluZGV4IGM4ODE1NmEu LmIyNjk0OTEgMTAwNjQ0CiAgCSAgICBpZiAoIXN5bSkKICAJICAgICAgZXJyb3IgKF8oIkludGVy bmFsOiBnbG9iYWwgc3ltYm9sIGAlcycgZm91bmQgaW4gJXMgcHN5bXRhYiBidXQgbm90IGluIHN5 bXRhYi5cblwKICAlcyBtYXkgYmUgYW4gaW5saW5lZCBmdW5jdGlvbiwgb3IgbWF5IGJlIGEgdGVt cGxhdGUgZnVuY3Rpb25cblwKLUBAIC0xODU3LDIxICsxODgwLDI2IEBAIGJhc2ljX2xvb2t1cF90 cmFuc3BhcmVudF90eXBlIChjb25zdCBjaGFyICpuYW1lKQorQEAgLTE4NTcsMjEgKzE4ODMsMjYg QEAgYmFzaWNfbG9va3VwX3RyYW5zcGFyZW50X3R5cGUgKGNvbnN0IGNoYXIgKm5hbWUpCiAgICB7 CiAgICAgIGJ2ID0gQkxPQ0tWRUNUT1IgKHMpOwogICAgICBibG9jayA9IEJMT0NLVkVDVE9SX0JM T0NLIChidiwgU1RBVElDX0JMT0NLKTsKQEAgLTE4Mjg3LDcgKzE4NzU1LDcgQEAgaW5kZXggYzg4 MTU2YS4uYjI2OTQ5MSAxMDA2NDQKICAJaWYgKCFzeW0pCiAgCSAgewogIAkgICAgLyogVGhpcyBz aG91bGRuJ3QgYmUgbmVjZXNzYXJ5LCBidXQgYXMgYSBsYXN0IHJlc29ydAotQEAgLTE4ODAsNyAr MTkwOCw3IEBAIGJhc2ljX2xvb2t1cF90cmFuc3BhcmVudF90eXBlIChjb25zdCBjaGFyICpuYW1l KQorQEAgLTE4ODAsNyArMTkxMSw3IEBAIGJhc2ljX2xvb2t1cF90cmFuc3BhcmVudF90eXBlIChj b25zdCBjaGFyICpuYW1lKQogIAkgICAgICogdGhlIHBzeW10YWIgZ2V0cyBpdCB3cm9uZyBpbiBz b21lIGNhc2VzLgogIAkgICAgICovCiAgCSAgICBibG9jayA9IEJMT0NLVkVDVE9SX0JMT0NLIChi diwgR0xPQkFMX0JMT0NLKTsKQEAgLTE4Mjk2LDcgKzE4NzY0LDcgQEAgaW5kZXggYzg4MTU2YS4u YjI2OTQ5MSAxMDA2NDQKICAJICAgIGlmICghc3ltKQogIAkgICAgICBlcnJvciAoXygiSW50ZXJu YWw6IHN0YXRpYyBzeW1ib2wgYCVzJyBmb3VuZCBpbiAlcyBwc3ltdGFiIGJ1dCBub3QgaW4gc3lt dGFiLlxuXAogICVzIG1heSBiZSBhbiBpbmxpbmVkIGZ1bmN0aW9uLCBvciBtYXkgYmUgYSB0ZW1w bGF0ZSBmdW5jdGlvblxuXAotQEAgLTE5MDUsOSArMTkzMywyMyBAQCBmaW5kX21haW5fcHN5bXRh YiAodm9pZCkKK0BAIC0xOTA1LDkgKzE5MzYsMjMgQEAgZmluZF9tYWluX3BzeW10YWIgKHZvaWQp CiAgICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdDsKICAgIHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlOwogIApAQCAtMTgzMjIsNyArMTg3OTAsNyBAQCBpbmRleCBjODgxNTZhLi5iMjY5NDkxIDEw MDY0NAogICAgICAgIHsKICAJcmV0dXJuIChwc3QpOwogICAgICAgIH0KLUBAIC0xOTI1LDE0ICsx OTY3LDEwIEBAIGZpbmRfbWFpbl9wc3ltdGFiICh2b2lkKQorQEAgLTE5MjUsMTQgKzE5NzAsMTAg QEAgZmluZF9tYWluX3BzeW10YWIgKHZvaWQpCiAgICAgc2VhcmNoIG9uIHRoZSBzeW1ib2xzLiAg RWFjaCBzeW1ib2wgd2hpY2ggaXMgbWFya2VkIGFzIGJlaW5nIGEgT2JqQy9DKysKICAgICBzeW1i b2wgKGxhbmd1YWdlX2NwbHVzIG9yIGxhbmd1YWdlX29iamMgc2V0KSBoYXMgYm90aCB0aGUgZW5j b2RlZCBhbmQKICAgICBub24tZW5jb2RlZCBuYW1lcyB0ZXN0ZWQgZm9yIGEgbWF0Y2guCkBAIC0x ODMzNyw3ICsxODgwNSw3IEBAIGluZGV4IGM4ODE1NmEuLmIyNjk0OTEgMTAwNjQ0CiAgCQkgICAg IGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbikKICB7CiAgICBzdHJ1Y3QgZGljdF9pdGVyYXRvciBp dGVyOwotQEAgLTE5NDUsOSArMTk4Myw3IEBAIGxvb2t1cF9ibG9ja19zeW1ib2wgKGNvbnN0IHN0 cnVjdCBibG9jayAqYmxvY2ssIGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMTk0NSw5ICsxOTg2LDcg QEAgbG9va3VwX2Jsb2NrX3N5bWJvbCAoY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywgY29uc3Qg Y2hhciAqbmFtZSwKICAJICAgc3ltID0gZGljdF9pdGVyX25hbWVfbmV4dCAobmFtZSwgJml0ZXIp KQogIAl7CiAgCSAgaWYgKHN5bWJvbF9tYXRjaGVzX2RvbWFpbiAoU1lNQk9MX0xBTkdVQUdFIChz eW0pLApAQCAtMTgzNDgsNyArMTg4MTYsNyBAQCBpbmRleCBjODgxNTZhLi5iMjY5NDkxIDEwMDY0 NAogIAkgICAgcmV0dXJuIHN5bTsKICAJfQogICAgICAgIHJldHVybiBOVUxMOwotQEAgLTE5Njcs OSArMjAwMyw3IEBAIGxvb2t1cF9ibG9ja19zeW1ib2wgKGNvbnN0IHN0cnVjdCBibG9jayAqYmxv Y2ssIGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMTk2Nyw5ICsyMDA2LDcgQEAgbG9va3VwX2Jsb2Nr X3N5bWJvbCAoY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywgY29uc3QgY2hhciAqbmFtZSwKICAJ ICAgc3ltID0gZGljdF9pdGVyX25hbWVfbmV4dCAobmFtZSwgJml0ZXIpKQogIAl7CiAgCSAgaWYg KHN5bWJvbF9tYXRjaGVzX2RvbWFpbiAoU1lNQk9MX0xBTkdVQUdFIChzeW0pLApAQCAtMTgzNTks NyArMTg4MjcsNyBAQCBpbmRleCBjODgxNTZhLi5iMjY5NDkxIDEwMDY0NAogIAkgICAgewogIAkg ICAgICBzeW1fZm91bmQgPSBzeW07CiAgCSAgICAgIGlmICghU1lNQk9MX0lTX0FSR1VNRU5UIChz eW0pKQotQEAgLTMxNzIsNyArMzIwNiw3IEBAIHNlYXJjaF9zeW1ib2xzIChjaGFyICpyZWdleHAs IGRvbWFpbl9lbnVtIGtpbmQsIGludCBuZmlsZXMsIGNoYXIgKmZpbGVzW10sCitAQCAtMzE3Miw3 ICszMjA5LDcgQEAgc2VhcmNoX3N5bWJvbHMgKGNoYXIgKnJlZ2V4cCwgZG9tYWluX2VudW0ga2lu ZCwgaW50IG5maWxlcywgY2hhciAqZmlsZXNbXSwKICAgICAgIG1hdGNoaW5nIHRoZSByZWdleHAu ICBUaGF0IHdheSB3ZSBkb24ndCBoYXZlIHRvIHJlcHJvZHVjZSBhbGwgb2YKICAgICAgIHRoZSBt YWNoaW5lcnkgYmVsb3cuICovCiAgCkBAIC0xODM2OSw3ICsxODgzNyw3IEBAIGluZGV4IGM4ODE1 NmEuLmIyNjk0OTEgMTAwNjQ0CiAgICAgIHN0cnVjdCBwYXJ0aWFsX3N5bWJvbCAqKmJvdW5kLCAq Kmdib3VuZCwgKipzYm91bmQ7CiAgICAgIGludCBrZWVwX2dvaW5nID0gMTsKIGRpZmYgLS1naXQg YS9nZGIvc3ltdGFiLmggYi9nZGIvc3ltdGFiLmgKLWluZGV4IDc0MGQ0ZTAuLjEzZTUyMWEgMTAw NjQ0CitpbmRleCA3NDBkNGUwLi40NjFmZjk1IDEwMDY0NAogLS0tIGEvZ2RiL3N5bXRhYi5oCiAr KysgYi9nZGIvc3ltdGFiLmgKIEBAIC0xNzEsOSArMTcxLDYgQEAgZXh0ZXJuIENPUkVfQUREUiBz eW1ib2xfb3ZlcmxheWVkX2FkZHJlc3MgKENPUkVfQUREUiwgc3RydWN0IG9ial9zZWN0aW9uICop OwpAQCAtMTgzODIsNyArMTg4NTAsNyBAQCBpbmRleCA3NDBkNGUwLi4xM2U1MjFhIDEwMDY0NAog IC8qIEluaXRpYWxpemVzIHRoZSBsYW5ndWFnZSBkZXBlbmRlbnQgcG9ydGlvbiBvZiBhIHN5bWJv bAogICAgIGRlcGVuZGluZyB1cG9uIHRoZSBsYW5ndWFnZSBmb3IgdGhlIHN5bWJvbC4gKi8KICAj ZGVmaW5lIFNZTUJPTF9JTklUX0xBTkdVQUdFX1NQRUNJRklDKHN5bWJvbCxsYW5ndWFnZSkgXAot QEAgLTM5NCw3ICszOTEsMTAgQEAgdHlwZWRlZiBlbnVtIGRvbWFpbl9lbnVtX3RhZworQEAgLTM5 NCw3ICszOTEsMTMgQEAgdHlwZWRlZiBlbnVtIGRvbWFpbl9lbnVtX3RhZwogICAgRlVOQ1RJT05T X0RPTUFJTiwKICAKICAgIC8qIEFsbCBkZWZpbmVkIHR5cGVzICovCkBAIC0xODM5MCwxMSArMTg4 NTgsMTQgQEAgaW5kZXggNzQwZDRlMC4uMTNlNTIxYSAxMDA2NDQKICsgIFRZUEVTX0RPTUFJTiwK ICsKICsgIC8qIEZvcnRyYW4gY29tbW9uIGJsb2Nrcy4gIFRoZWlyIG5hbWluZyBtdXN0IGJlIHNl cGFyYXRlIGZyb20gVkFSX0RPTUFJTi4gICovCi0rICBDT01NT05fQkxPQ0tfRE9NQUlOCisrICBD T01NT05fQkxPQ0tfRE9NQUlOLAorKworKyAgLyogRm9ydHJhbiBtb2R1bGUuICBUaGVpciBuYW1p bmcgbXVzdCBiZSBzZXBhcmF0ZS4gICovCisrICBNT0RVTEVfRE9NQUlOCiAgfQogIGRvbWFpbl9l bnVtOwogIAotQEAgLTk5MCw3ICs5OTAsNiBAQCBleHRlcm4gc3RydWN0IHN5bWJvbCAqbG9va3Vw X3N5bWJvbCAoY29uc3QgY2hhciAqLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKiwKK0BAIC05OTAsNyAr OTkzLDYgQEAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmxvb2t1cF9zeW1ib2wgKGNvbnN0IGNoYXIg KiwgY29uc3Qgc3RydWN0IGJsb2NrICosCiAgICAgdGhhdCBjYW4ndCB0aGluayBvZiBhbnl0aGlu ZyBiZXR0ZXIgdG8gZG8uICAqLwogIAogIGV4dGVybiBzdHJ1Y3Qgc3ltYm9sICpiYXNpY19sb29r dXBfc3ltYm9sX25vbmxvY2FsIChjb25zdCBjaGFyICosCkBAIC0xODQwMiw3ICsxODg3Myw3IEBA IGluZGV4IDc0MGQ0ZTAuLjEzZTUyMWEgMTAwNjQ0CiAgCQkJCQkJICAgIGNvbnN0IHN0cnVjdCBi bG9jayAqLAogIAkJCQkJCSAgICBjb25zdCBkb21haW5fZW51bSk7CiAgCi1AQCAtMTAwMSw3ICsx MDAwLDYgQEAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmJhc2ljX2xvb2t1cF9zeW1ib2xfbm9ubG9j YWwgKGNvbnN0IGNoYXIgKiwKK0BAIC0xMDAxLDcgKzEwMDMsNiBAQCBleHRlcm4gc3RydWN0IHN5 bWJvbCAqYmFzaWNfbG9va3VwX3N5bWJvbF9ub25sb2NhbCAoY29uc3QgY2hhciAqLAogICAgIGlz IG9uZTsgZG8gbm90aGluZyBpZiBCTE9DSyBpcyBOVUxMIG9yIGEgZ2xvYmFsIGJsb2NrLiAgKi8K ICAKICBleHRlcm4gc3RydWN0IHN5bWJvbCAqbG9va3VwX3N5bWJvbF9zdGF0aWMgKGNvbnN0IGNo YXIgKm5hbWUsCkBAIC0xODQxMCw3ICsxODg4MSw3IEBAIGluZGV4IDc0MGQ0ZTAuLjEzZTUyMWEg MTAwNjQ0CiAgCQkJCQkgICAgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKICAJCQkJCSAgICBj b25zdCBkb21haW5fZW51bSBkb21haW4pOwogIAotQEAgLTEwMDksNyArMTAwNyw2IEBAIGV4dGVy biBzdHJ1Y3Qgc3ltYm9sICpsb29rdXBfc3ltYm9sX3N0YXRpYyAoY29uc3QgY2hhciAqbmFtZSwK K0BAIC0xMDA5LDcgKzEwMTAsNiBAQCBleHRlcm4gc3RydWN0IHN5bWJvbCAqbG9va3VwX3N5bWJv bF9zdGF0aWMgKGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgbmVjZXNzYXJ5KS4gICovCiAgCiAgZXh0 ZXJuIHN0cnVjdCBzeW1ib2wgKmxvb2t1cF9zeW1ib2xfZ2xvYmFsIChjb25zdCBjaGFyICpuYW1l LApAQCAtMTg0MTgsNyArMTg4ODksNyBAQCBpbmRleCA3NDBkNGUwLi4xM2U1MjFhIDEwMDY0NAog IAkJCQkJICAgIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssCiAgCQkJCQkgICAgY29uc3QgZG9t YWluX2VudW0gZG9tYWluKTsKICAKLUBAIC0xMDE4LDIxICsxMDE1LDE4IEBAIGV4dGVybiBzdHJ1 Y3Qgc3ltYm9sICpsb29rdXBfc3ltYm9sX2dsb2JhbCAoY29uc3QgY2hhciAqbmFtZSwKK0BAIC0x MDE4LDIxICsxMDE4LDE4IEBAIGV4dGVybiBzdHJ1Y3Qgc3ltYm9sICpsb29rdXBfc3ltYm9sX2ds b2JhbCAoY29uc3QgY2hhciAqbmFtZSwKICAgICB3aWxsIGZpeCB1cCB0aGUgc3ltYm9sIGlmIG5l Y2Vzc2FyeS4gICovCiAgCiAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmxvb2t1cF9zeW1ib2xfYXV4 X2Jsb2NrIChjb25zdCBjaGFyICpuYW1lLApAQCAtMTg0NDAsNyArMTg5MTEsNyBAQCBpbmRleCA3 NDBkNGUwLi4xM2U1MjFhIDEwMDY0NAogIAkJCQkJICAgY29uc3QgZG9tYWluX2VudW0pOwogIAog IC8qIGxvb2t1cCBhIFtzdHJ1Y3QsIHVuaW9uLCBlbnVtXSBieSBuYW1lLCB3aXRoaW4gYSBzcGVj aWZpZWQgYmxvY2sgKi8KLUBAIC0xMDYyLDYgKzEwNTYsOCBAQCBleHRlcm4gdm9pZCBjbGVhcl9w Y19mdW5jdGlvbl9jYWNoZSAodm9pZCk7CitAQCAtMTA2Miw2ICsxMDU5LDggQEAgZXh0ZXJuIHZv aWQgY2xlYXJfcGNfZnVuY3Rpb25fY2FjaGUgKHZvaWQpOwogIAogIC8qIGZyb20gc3ltdGFiLmM6 ICovCiAgCkBAIC0xODQ0OSw3ICsxODkyMCw3IEBAIGluZGV4IDc0MGQ0ZTAuLjEzZTUyMWEgMTAw NjQ0CiAgLyogbG9va3VwIHBhcnRpYWwgc3ltYm9sIHRhYmxlIGJ5IGZpbGVuYW1lICovCiAgCiAg ZXh0ZXJuIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqbG9va3VwX3BhcnRpYWxfc3ltdGFiIChjb25z dCBjaGFyICopOwotQEAgLTEzNTYsNyArMTM1Miw2IEBAIGV4dGVybiAvKmNvbnN0ICovIGNoYXIg Km1haW5fbmFtZSAodm9pZCk7CitAQCAtMTM1Niw3ICsxMzU1LDYgQEAgZXh0ZXJuIC8qY29uc3Qg Ki8gY2hhciAqbWFpbl9uYW1lICh2b2lkKTsKICAvKiBDaGVjayBnbG9iYWwgc3ltYm9scyBpbiBv YmpmaWxlLiAgKi8KICBzdHJ1Y3Qgc3ltYm9sICpsb29rdXBfZ2xvYmFsX3N5bWJvbF9mcm9tX29i amZpbGUgKGNvbnN0IHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogIAkJCQkJCSAgY29uc3QgY2hh ciAqbmFtZSwKQEAgLTE4NDk3LDExNCArMTg5NjgsNiBAQCBpbmRleCAyYzc0M2U5Li5lZjI5NjEw IDEwMDY0NAogIAwKICAvKiBTdHVmZiB0aGF0IHNob3VsZCBiZSBzaGFyZWQgYW1vbmcgdGhlIHZh cmlvdXMgcmVtb3RlIHRhcmdldHMuICAqLwogIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Q2hhbmdlTG9nIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLWluZGV4IDc5OTNhYzUuLjE4MWI3 NTIgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2cKLUBAIC0xMjYzLDYgKzEyNjMsMTAzIEBACi0gCWdkYl9zdGFydF9jbWQu Ci0gCVVzZSBydW50b19tYWluIGJlZm9yZSBhbnkgdGVzdCB0aGF0IHJlcXVpcmVzIGV4ZWN1dGlv bi4KLSAKLSsyMDA4LTEwLTIzICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+Ci0rCi0r CSogZ2RiLnB5dGhvbi9weXRob24tcHJldHR5cHJpbnQuZXhwIChydW5fbGFuZ190ZXN0cyk6IFRl c3QKLSsJcHJpbnRpbmcgYSByZWZlcmVuY2UuCi0rCSogZ2RiLnB5dGhvbi9weXRob24tcHJldHR5 cHJpbnQuYyAobWFpbik6IEFkZCByZWZlcmVuY2UuCi0rCi0rMjAwOC0xMC0yMyAgVG9tIFRyb21l eSAgPHRyb21leUByZWRoYXQuY29tPgotKwotKwkqIGdkYi5weXRob24vcHl0aG9uLXByZXR0eXBy aW50LmV4cCAocnVuX2xhbmdfdGVzdHMpOiBUZXN0Ci0rCXByaW50aW5nICdjc3RyaW5nJy4KLSsJ KiBnZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5jIChtYWluKTogTmV3IGxvY2FsICdjc3Ry aW5nJy4KLSsKLSsyMDA4LTEwLTIyICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+Ci0r Ci0rCSogbGliL21pLXN1cHBvcnQuZXhwIChtaV9saXN0X3Zhcm9ial9jaGlsZHJlbl9yYW5nZSk6 IE5ldyBwcm9jLgotKwkobWlfbGlzdF92YXJvYmpfY2hpbGRyZW4pOiBVc2UgaXQuCi0rCSogZ2Ri LnB5dGhvbi9weXRob24tbWkuZXhwOiBBZGQgLXZhci1zZXQtdmlzdWFsaXplciB0ZXN0cywKLSsJ LXZhci1zZXQtY2hpbGQtcmFuZ2UgdGVzdHMuCi0rCi0rMjAwOC0xMC0yMiAgVG9tIFRyb21leSAg PHRyb21leUByZWRoYXQuY29tPgotKwotKwkqIGdkYi5weXRob24vcHl0aG9uLXByZXR0eXByaW50 LnB5IChDb250YWluZXJQcmludGVyLnRvX3N0cmluZyk6Ci0rCVJlbmFtZSBmcm9tICdoZWFkZXIn LgotKwotKzIwMDgtMTAtMjIgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KLSsKLSsJ KiBnZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5weTogQWRkIE1JIHByZXR0eSBwcmludGVy LgotKwkqIGdkYi5weXRob24vcHl0aG9uLW1pLmV4cDogTmV3IGZpbGUuCi0rCSogbGliL21pLXN1 cHBvcnQuZXhwIChtaV9jaGlsZF9yZWdleHApOiBOZXcgcHJvYy4KLSsJKG1pX2xpc3RfdmFyb2Jq X2NoaWxkcmVuKTogVXNlIGl0LgotKwkobWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljKTogTmV3IHBy b2MuCi0rCShtaV9nZXRfZmVhdHVyZXMpOiBOZXcgcHJvYy4KLSsKLSsyMDA4LTEwLTIxICBQYXVs IFBsdXpobmlrb3YgIDxwcGx1emhuaWtvdkBnb29nbGUuY29tPgotKwkKLSsJKiBnZGIucHl0aG9u L3B5dGhvbi1wcmV0dHlwcmludC5leHAsCi0rCWdkYi5weXRob24vcHl0aG9uLXByZXR0eXByaW50 LmMsCi0rCWdkYi5weXRob24vcHl0aG9uLXByZXR0eXByaW50LnB5OiBNb3JlIEMrKyB0ZXN0cy4K LSsJCi0rMjAwOC0xMC0yMSAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgotKwotKwkq IGdkYi5weXRob24vcHl0aG9uLXByZXR0eXByaW50LmV4cCAocnVuX2xhbmdfdGVzdHMpOiBEb24n dCBleHBlY3QKLSsJcXVvdGVzLgotKwotKzIwMDgtMTAtMjAgIFRvbSBUcm9tZXkgIDx0cm9tZXlA cmVkaGF0LmNvbT4KLSsKLSsJKiBnZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5leHA6IEZp eGVkIGNvbW1lbnQuCi0rCi0rMjAwOC0xMC0yMCAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQu Y29tPgotKwotKwkqIGdkYi5weXRob24vTWFrZWZpbGUuaW4gKEVYRUNVVEFCTEVTKTogQWRkIHB5 dGhvbi1wcmV0dHlwcmludC4KLSsKLSsyMDA4LTEwLTIwICBUb20gVHJvbWV5ICA8dHJvbWV5QHJl ZGhhdC5jb20+Ci0rCi0rCSogZ2RiLnB5dGhvbi9weXRob24tcHJldHR5cHJpbnQuZXhwIChydW5f bGFuZ190ZXN0cyk6IEFkZCB0ZXN0cy4KLSsJKiBnZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmlu dC5jIChzdHJpbmdfcmVwciwgY29udGFpbmVyKTogTmV3Ci0rCXR5cGVzLgotKwkoYXJyYXkpOiBO ZXcgZ2xvYmFsLgotKwkoenp6X3R5cGUpOiBOZXcgdHlwZWRlZi4KLSsJKG1ha2Vfc3RyaW5nLCBt YWtlX2NvbnRhaW5lciwgYWRkX2l0ZW0pOiBOZXcgZnVuY3Rpb25zLgotKwkobWFpbik6IEFkZCB2 YXJpYWJsZXMuCi0rCSogZ2RiLnB5dGhvbi9weXRob24tcHJldHR5cHJpbnQucHkgKHN0cmluZ19w cmludCk6IE5ldyBmdW5jdGlvbi4KLSsJKENvbnRhaW5lclByaW50ZXIpOiBOZXcgY2xhc3MuCi0r Ci0rMjAwOC0xMC0yMCAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgotKwotKwkqIGdk Yi5weXRob24vcHl0aG9uLXByZXR0eXByaW50LmV4cCAocnVuX2xhbmdfdGVzdHMpOiBVc2UgcHl0 aG9uJ3MKLSsJZXhlY2ZpbGUgdG8gcmVhZCAucHkgZmlsZS4KLSsJKiBnZGIucHl0aG9uL3B5dGhv bi1wcmV0dHlwcmludC5weTogUmVtb3ZlICdweXRob24nIGNvbW1hbmQuCi0rCi0rMjAwOC0xMC0x NyAgUGF1bCBQbHV6aG5pa292ICA8cHBsdXpobmlrb3ZAZ29vZ2xlLmNvbT4KLSsJCi0rCSogZ2Ri LnB5dGhvbi9weXRob24tcHJldHR5cHJpbnQuZXhwLAotKwlnZGIucHl0aG9uL3B5dGhvbi1wcmV0 dHlwcmludC5jLAotKwlnZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5weTogQWRkIEMrKyB0 ZXN0cy4KLSsJCi0rMjAwOC0xMC0xNyAgUGF1bCBQbHV6aG5pa292ICA8cHBsdXpobmlrb3ZAZ29v Z2xlLmNvbT4KLSsJCi0rCSogZ2RiLnB5dGhvbi9weXRob24tcHJldHR5cHJpbnQuZXhwLAotKwln ZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5jLAotKwlnZGIucHl0aG9uL3B5dGhvbi1wcmV0 dHlwcmludC5weTogTmV3IHRlc3QgZm9yIHByZXR0eQotKwlwcmludGluZy4KLSsJCi0rMjAwOC0x MC0xNiAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgotKwotKwkqIGdkYi5weXRob24v TWFrZWZpbGUuaW46IE5ldyBmaWxlLgotKwkqIGNvbmZpZ3VyZTogUmVidWlsZC4KLSsJKiBjb25m aWd1cmUuYWM6IEFkZCBnZGIucHl0aG9uL01ha2VmaWxlLgotKwotKzIwMDgtMTAtMTQgIFBhdWwg UGx1emhuaWtvdiAgPHBwbHV6aG5pa292QGdvb2dsZS5jb20+Ci0rCi0rCSogZ2RiLnB5dGhvbi9w eXRob24tdmFsdWUuYzogUHJldmVudCBnY2MgZnJvbSBvcHRpbWl6aW5nIGFyZ3ZbXSBvdXQuCi0r CQotKzIwMDgtMTAtMTQgIFBhdWwgUGx1emhuaWtvdiAgPHBwbHV6aG5pa292QGdvb2dsZS5jb20+ Ci0rCi0rCSogTWFrZWZpbGUuaW46IEFkZCBnZGIucHl0aG9uIHRvIEFMTF9TVUJESVJTCi0rCQot IDIwMDgtMTAtMjMgIFBlZHJvIEFsdmVzICA8cGVkcm9AY29kZXNvdXJjZXJ5LmNvbT4KLSAKLSAJ KiBsaWIvbWktc3VwcG9ydC5leHAgKG1pX2V4cGVjdF9pbnRlcnJ1cHQpOiBFeHBlY3Qgc2lnbmFs IDAKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3Bvd2VycGMtcG93ZXI3LmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1wb3dlcjcuZXhwCiBuZXcgZmlsZSBt b2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4uYWUzMDFkYgpAQCAtMTk1MTYsMTAgKzE5ODc5LDEw IEBAIGluZGV4IDcxY2U0YWEuLmFmMGU1ZjggMTAwNjQ0CiArICAgIH0KICt9CiBkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9oZWxwLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvaGVscC5leHAKLWluZGV4IDVmYzY4MGIuLmQyNzFjODEgMTAwNjQ0CitpbmRleCBkNzZjYzM2 Li40OTZmZjE4IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9oZWxwLmV4cAog KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9oZWxwLmV4cAotQEAgLTYwNSw3ICs2MDUsNyBA QCBnZGJfdGVzdCAiaGVscCBzdGVwaSIgIlN0ZXAgb25lIGluc3RydWN0aW9uIGV4YWN0bHlcLlxb XHJcblxdK0FyZ3VtZW50IE4gbWVhbnMgZAorQEAgLTYwNiw3ICs2MDYsNyBAQCBnZGJfdGVzdCAi aGVscCBzdGVwaSIgIlN0ZXAgb25lIGluc3RydWN0aW9uIGV4YWN0bHlcLlxbXHJcblxdK0FyZ3Vt ZW50IE4gbWVhbnMgZAogIGdkYl90ZXN0ICJoZWxwIHNpZ25hbCIgIkNvbnRpbnVlIHByb2dyYW0g Z2l2aW5nIGl0IHNpZ25hbC4qIiAiaGVscCBzaWduYWwiCiAgIyB0ZXN0IGhlbHAgc291cmNlCiAg IyB2eGdkYiByZWFkcyAudnhnZGJpbml0CkBAIC0yMDkzNiwxMCArMjEyOTksMTAgQEAgaW5kZXgg MDAwMDAwMC4uZTUwODEwMwogK2dkYl90ZXN0ICJwcmludCBhYmMiICI9IDMzIgogZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1yZWN1cnNpdmUuY2MgYi9nZGIvdGVz dHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtcmVjdXJzaXZlLmNjCiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAotaW5kZXggMDAwMDAwMC4uY2I3MTJmYQoraW5kZXggMDAwMDAwMC4uODQ2MDVhNgogLS0tIC9k ZXYvbnVsbAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXJlY3Vyc2l2ZS5j YwotQEAgLTAsMCArMSwxNiBAQAorQEAgLTAsMCArMSwzMCBAQAogK25hbWVzcGFjZSBBewogKyAg aW50IGF4ID0gOTsKICt9CkBAIC0yMDk1MiwxNyArMjEzMTUsMzAgQEAgaW5kZXggMDAwMDAwMC4u Y2I3MTJmYQogKyAgdXNpbmcgbmFtZXNwYWNlIEI7CiArfQogKworKy8vLS0tLS0tLS0tLS0tLS0t CisrbmFtZXNwYWNlIER7CisrICB1c2luZyBuYW1lc3BhY2UgRDsKKysgIGludCBkeCA9IDk5Owor K30KKyt1c2luZyBuYW1lc3BhY2UgQzsKKysKKysvLy0tLS0tLS0tLS0tLS0tLQorK25hbWVzcGFj ZXsKKysgIG5hbWVzcGFjZXsKKysgICAgaW50IHh4ID0gOTk5OworKyAgfQorK30KKysKICtpbnQg bWFpbigpewotKyAgdXNpbmcgbmFtZXNwYWNlIEM7Ci0rICByZXR1cm4gYXg7CisrICB1c2luZyBu YW1lc3BhY2UgRDsKKysgIHJldHVybiBheCArIGR4ICsgeHg7CiArfQotXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNl LXJlY3Vyc2l2ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtcmVjdXJzaXZl LmV4cAogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjRlNmFkMjAKK2luZGV4 IDAwMDAwMDAuLmViYzg5OGYKIC0tLSAvZGV2L251bGwKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmNwL25hbWVzcGFjZS1yZWN1cnNpdmUuZXhwCi1AQCAtMCwwICsxLDUzIEBACitAQCAtMCwwICsx LDY2IEBACiArIyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICsKICsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0yMTAwNSwxNyArMjEzODEsMzAgQEAgaW5kZXggMDAwMDAw MC4uNGU2YWQyMAogK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgogK2dkYl9s b2FkICR7YmluZmlsZX0KICsKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotKyMgdGVzdCBwcmludGluZyBvZiBuYW1lc3BhY2UgaW1wb3J0ZWQgd2l0aGluCi0r IyB0aGUgZnVuY3Rpb24uCi0rCiAraWYgIVtydW50b19tYWluXSB0aGVuIHsKICsgICAgcGVycm9y ICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBtYWluIgogKyAgICBjb250aW51ZQogK30KICsK LStzZXR1cF94ZmFpbCAqLSotKgorKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisrIyB0ZXN0IHByaW50aW5nIGZyb20gbmFtZXNwYWNlIGltcG9ydGVkIGludG8K KysjIGltcG9ydGVkIG5hbWVzcGFjZQorKwogK2dkYl90ZXN0ICJwcmludCBheCIgIj0gOSIKKysK KysjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgdGVzdCB0 aGF0IGdkYiBjYW4gcHJpbnQgd2l0aG91dCBmYWxsaW5nIAorKyMgaW50byBzZWFyY2ggbG9vcAor KworK2dkYl90ZXN0ICJwcmludCBkeCIgIj0gOTkiCisrCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKysjIHRlc3QgcHJpbnRpbmcgZnJvbSBuYW1lc3BhY2Ug aW1wb3J0ZWQgaW50bworKyMgaW1wb3J0ZWQgbmFtZXNwYWNlIHdoZXJlIGltcG9ydHMgYXJlIGlt cGxpY2l0CisrIyBhbm9ueW1vdXMgbmFtZXNwYWNlIGltcG9ydHMuCisrCisrZ2RiX3Rlc3QgInBy aW50IHh4IiAiPSA5OTkiCisrCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFt ZXNwYWNlLXVzaW5nLmNjIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmNj CiBpbmRleCA0Nzg2ZmQ1Li44ZmY1NjIyIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Y3AvbmFtZXNwYWNlLXVzaW5nLmNjCkBAIC0yMjA0NSw1OCArMjI0MzQsMjUwIEBAIGluZGV4IDAw MDAwMDAuLjAwZDY3ZmMKICtmb3Ige3NldCBpIDF9IHskaSA8IDV9IHtpbmNyIGl9IHsKICsgICAg Z2RiX3Rlc3QgInNpIiAiYXJnID0gNzciICJzdGVwICRpIGZvciBjYWxsLWZyYW1lLWNmYSIKICt9 Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCitkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1hcmFuZ2VzLlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvZHcyLWFyYW5nZXMuUwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAu LjFmMDJkOTAKK2luZGV4IDAwMDAwMDAuLmQ1YjljYTUKIC0tLSAvZGV2L251bGwKLSsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwotQEAgLTAsMCArMSw0MiBAQAor KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1hcmFuZ2VzLlMKK0BAIC0wLDAgKzEs MTQwIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KICsKLSsgICBDb3B5cmlnaHQgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysgICBDb3B5cmlnaHQgMjAwNCwgMjAwNywgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICsKICsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z ZSwgb3IKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgogKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCiArCiArICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCiArICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiArICAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsgCisrCiArICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsg ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0 d2FyZQotKyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwg Qm9zdG9uLCBNQSAwMjExMS0xMzA3LAotKyAgIFVTQS4gICovCisrICAgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAq LwogKworKy8qIFRlc3QgLmRlYnVnX2FyYW5nZXMgY29udGFpbmluZyB6ZXJvIGFkZHJlc3Nfc2l6 ZS4gICovCiArCi0rLyogVGhlIGZ1bmN0aW9uIGBmdW5jMScgdHJhY2VkIGludG8gbXVzdCBoYXZl IGRlYnVnIGluZm8gb24gb2Zmc2V0ID4gMDsKLSsgICAoRFdfVU5TTkQgKGF0dHIpKS4gIFRoaXMg aXMgdGhlIHJlYXNvbiBvZiBgZnVuYzAnIGV4aXN0ZW5jZS4gICovCisrLyogRHVtbXkgZnVuY3Rp b24gdG8gcHJvdmlkZSBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IuICAqLwogKwotK3ZvaWQKLStmdW5j MChpbnQgYSwgaW50IGIpCi0rewotK30KKysJLnRleHQKKysuTGJlZ2luX3RleHQxOgorKwkuZ2xv YmwgbWFpbgorKwkudHlwZSBtYWluLCAlZnVuY3Rpb24KKyttYWluOgorKy5MYmVnaW5fbWFpbjoK KysJLmludCAwCisrLkxlbmRfbWFpbjoKKysJLnNpemUgbWFpbiwgLi1tYWluCisrLkxlbmRfdGV4 dDE6CiArCi0rLyogYGZ1bmMxJyBiZWluZyB0cmFjZWQgaW50byBtdXN0IGhhdmUgc29tZSBhcmd1 bWVudHMgdG8gZHVtcC4gICovCisrLyogRGVidWcgaW5mb3JtYXRpb24gKi8KICsKLSt2b2lkCi0r ZnVuYzEoaW50IGEsIGludCBiKQotK3sKLSsgIGZ1bmMwIChhLGIpOwotK30KKysJLnNlY3Rpb24g LmRlYnVnX2luZm8KKysuTGN1MV9iZWdpbjoKKysJLyogQ1UgaGVhZGVyICovCisrCS40Ynl0ZQku TGN1MV9lbmQgLSAuTGN1MV9zdGFydAkJLyogTGVuZ3RoIG9mIENvbXBpbGF0aW9uIFVuaXQgKi8K KysuTGN1MV9zdGFydDoKKysJLjJieXRlCTIJCQkJLyogRFdBUkYgVmVyc2lvbiAqLworKwkuNGJ5 dGUJLkxhYmJyZXYxX2JlZ2luCQkJLyogT2Zmc2V0IGludG8gYWJicmV2IHNlY3Rpb24gKi8KKysJ LmJ5dGUJNAkJCQkvKiBQb2ludGVyIHNpemUgKi8KICsKLStpbnQKLSttYWluKHZvaWQpCi0rewot KyAgZnVuYzEgKDEsIDIpOwotKyAgcmV0dXJuIDA7Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdHJpcHBlZC5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAw Li4xYzZlODRhCi0tLS0gL2Rldi9udWxsCisrCS8qIENVIGRpZSAqLworKwkudWxlYjEyOCAxCQkJ CS8qIEFiYnJldjogRFdfVEFHX2NvbXBpbGVfdW5pdCAqLworKwkuNGJ5dGUJLkxlbmRfdGV4dDEJ CQkvKiBEV19BVF9oaWdoX3BjICovCisrCS40Ynl0ZQkuTGJlZ2luX3RleHQxCQkJLyogRFdfQVRf bG93X3BjICovCisrCS5hc2NpaQkiZmlsZTEudHh0XDAiCQkJLyogRFdfQVRfbmFtZSAqLworKwku YXNjaWkJIkdOVSBDIDMuMy4zXDAiCQkJLyogRFdfQVRfcHJvZHVjZXIgKi8KKysJLmJ5dGUJMQkJ CQkvKiBEV19BVF9sYW5ndWFnZSAoQykgKi8KKysKKysJLyogbWFpbiAqLworKwkudWxlYjEyOAky CQkJLyogQWJicmV2OiBEV19UQUdfc3VicHJvZ3JhbSAqLworKwkuYnl0ZQkJMQkJCS8qIERXX0FU X2V4dGVybmFsICovCisrCS5ieXRlCQkxCQkJLyogRFdfQVRfZGVjbF9maWxlICovCisrCS5ieXRl CQkyCQkJLyogRFdfQVRfZGVjbF9saW5lICovCisrCS5hc2NpaQkJIm1haW5cMCIJCS8qIERXX0FU X25hbWUgKi8KKysJLjRieXRlCQkuTHR5cGVfaW50LS5MY3UxX2JlZ2luCS8qIERXX0FUX3R5cGUg Ki8KKysJLjRieXRlCQkuTGJlZ2luX21haW4JLyogRFdfQVRfbG93X3BjICovCisrCS40Ynl0ZQkJ LkxlbmRfbWFpbgkJLyogRFdfQVRfaGlnaF9wYyAqLworKwkuYnl0ZQkJMQkJCS8qIERXX0FUX2Zy YW1lX2Jhc2U6IGxlbmd0aCAqLworKwkuYnl0ZQkJMHg1NQkJCS8qIERXX0FUX2ZyYW1lX2Jhc2U6 IERXX09QX3JlZzUgKi8KKysKKysuTHR5cGVfaW50OgorKwkudWxlYjEyOAkzCQkJLyogQWJicmV2 OiBEV19UQUdfYmFzZV90eXBlICovCisrCS5hc2NpaQkJImludFwwIgkJCS8qIERXX0FUX25hbWUg Ki8KKysJLmJ5dGUJCTQJCQkvKiBEV19BVF9ieXRlX3NpemUgKi8KKysJLmJ5dGUJCTUJCQkvKiBE V19BVF9lbmNvZGluZyAqLworKworKwkuYnl0ZQkJMAkJCS8qIEVuZCBvZiBjaGlsZHJlbiBvZiBD VSAqLworKworKy5MY3UxX2VuZDoKKysKKysvKiBBYmJyZXYgdGFibGUgKi8KKysJLnNlY3Rpb24g LmRlYnVnX2FiYnJldgorKy5MYWJicmV2MV9iZWdpbjoKKysJLnVsZWIxMjgJMQkJCS8qIEFiYnJl diBjb2RlICovCisrCS51bGViMTI4CTB4MTEJCQkvKiBEV19UQUdfY29tcGlsZV91bml0ICovCisr CS5ieXRlCQkxCQkJLyogaGFzX2NoaWxkcmVuICovCisrCS51bGViMTI4CTB4MTIJCQkvKiBEV19B VF9oaWdoX3BjICovCisrCS51bGViMTI4CTB4MQkJCS8qIERXX0ZPUk1fYWRkciAqLworKwkudWxl YjEyOAkweDExCQkJLyogRFdfQVRfbG93X3BjICovCisrCS51bGViMTI4CTB4MQkJCS8qIERXX0ZP Uk1fYWRkciAqLworKwkudWxlYjEyOAkweDMJCQkvKiBEV19BVF9uYW1lICovCisrCS51bGViMTI4 CTB4OAkJCS8qIERXX0ZPUk1fc3RyaW5nICovCisrCS51bGViMTI4CTB4MjUJCQkvKiBEV19BVF9w cm9kdWNlciAqLworKwkudWxlYjEyOAkweDgJCQkvKiBEV19GT1JNX3N0cmluZyAqLworKwkudWxl YjEyOAkweDEzCQkJLyogRFdfQVRfbGFuZ3VhZ2UgKi8KKysJLnVsZWIxMjgJMHhiCQkJLyogRFdf Rk9STV9kYXRhMSAqLworKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKwkuYnl0ZQkJ MHgwCQkJLyogVGVybWluYXRvciAqLworKworKwkudWxlYjEyOAkyCQkJLyogQWJicmV2IGNvZGUg Ki8KKysJLnVsZWIxMjgJMHgyZQkJCS8qIERXX1RBR19zdWJwcm9ncmFtICovCisrCS5ieXRlCQkw CQkJLyogaGFzX2NoaWxkcmVuICovCisrCS51bGViMTI4CTB4M2YJCQkvKiBEV19BVF9leHRlcm5h bCAqLworKwkudWxlYjEyOAkweGMJCQkvKiBEV19GT1JNX2ZsYWcgKi8KKysJLnVsZWIxMjgJMHgz YQkJCS8qIERXX0FUX2RlY2xfZmlsZSAqLworKwkudWxlYjEyOAkweGIJCQkvKiBEV19GT1JNX2Rh dGExICovCisrCS51bGViMTI4CTB4M2IJCQkvKiBEV19BVF9kZWNsX2xpbmUgKi8KKysJLnVsZWIx MjgJMHhiCQkJLyogRFdfRk9STV9kYXRhMSAqLworKwkudWxlYjEyOAkweDMJCQkvKiBEV19BVF9u YW1lICovCisrCS51bGViMTI4CTB4OAkJCS8qIERXX0ZPUk1fc3RyaW5nICovCisrCS51bGViMTI4 CTB4NDkJCQkvKiBEV19BVF90eXBlICovCisrCS51bGViMTI4CTB4MTMJCQkvKiBEV19GT1JNX3Jl ZjQgKi8KKysJLnVsZWIxMjgJMHgxMQkJCS8qIERXX0FUX2xvd19wYyAqLworKwkudWxlYjEyOAkw eDEJCQkvKiBEV19GT1JNX2FkZHIgKi8KKysJLnVsZWIxMjgJMHgxMgkJCS8qIERXX0FUX2hpZ2hf cGMgKi8KKysJLnVsZWIxMjgJMHgxCQkJLyogRFdfRk9STV9hZGRyICovCisrCS51bGViMTI4CTB4 NDAJCQkvKiBEV19BVF9mcmFtZV9iYXNlICovCisrCS51bGViMTI4CTB4YQkJCS8qIERXX0ZPUk1f YmxvY2sxICovCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisrCS5ieXRlCQkweDAJ CQkvKiBUZXJtaW5hdG9yICovCisrCisrCS51bGViMTI4CTMJCQkvKiBBYmJyZXYgY29kZSAqLwor KwkudWxlYjEyOAkweDI0CQkJLyogRFdfVEFHX2Jhc2VfdHlwZSAqLworKwkuYnl0ZQkJMAkJCS8q IGhhc19jaGlsZHJlbiAqLworKwkudWxlYjEyOAkweDMJCQkvKiBEV19BVF9uYW1lICovCisrCS51 bGViMTI4CTB4OAkJCS8qIERXX0ZPUk1fc3RyaW5nICovCisrCS51bGViMTI4CTB4YgkJCS8qIERX X0FUX2J5dGVfc2l6ZSAqLworKwkudWxlYjEyOAkweGIJCQkvKiBEV19GT1JNX2RhdGExICovCisr CS51bGViMTI4CTB4M2UJCQkvKiBEV19BVF9lbmNvZGluZyAqLworKwkudWxlYjEyOAkweGIJCQkv KiBEV19GT1JNX2RhdGExICovCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisrCS5i eXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisrCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5h dG9yICovCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisrCisrLyogYXJhbmdlcyB0 YWJsZSAqLworKwkuc2VjdGlvbiAuZGVidWdfYXJhbmdlcworKwkubG9uZwkuTGFyYW5nZXNfZW5k IC0gMWYKKysxOgorKwkuMmJ5dGUJMgkJCQkvKiBhcmFuZ2VzIFZlcnNpb24gKi8KKysJLjRieXRl CS5MY3UxX2JlZ2luIC0gLmRlYnVnX2luZm8JLyogT2Zmc2V0IGludG8gLmRlYnVnX2luZm8gc2Vj dGlvbiAqLworKwkvKiBUaGUgR0RCIGNyYXNoZXIgaXMgdGhpcyB6ZXJvIHZhbHVlLiAgKi8KKysJ LmJ5dGUJCTAJCQkvKiBhcmFuZ2VzIGFkZHJlc3Nfc2l6ZSAqLworKwkuYnl0ZQkJMAkJCS8qIGFy YW5nZXMgc2VnbWVudF9zaXplICovCisrCisrLkxhcmFuZ2VzX2VuZDoKK2RpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWFyYW5nZXMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1hcmFuZ2VzLmV4cAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAw MDAwMDAuLjM5NjMyZDUKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItYXJhbmdlcy5leHAKK0BAIC0wLDAgKzEsNDAgQEAKKysjIENvcHlyaWdodCAyMDA0 LCAyMDA1LCAyMDA3LCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr IyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor KyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFRlc3QgLmRlYnVnX2FyYW5n ZXMgY29udGFpbmluZyB6ZXJvIGFkZHJlc3Nfc2l6ZS4KKysKKysjIFRoaXMgdGVzdCBjYW4gb25s eSBiZSBydW4gb24gdGFyZ2V0cyB3aGljaCBzdXBwb3J0IERXQVJGLTIgYW5kIHVzZSBnYXMuCisr IyBGb3Igbm93IHBpY2sgYSBzYW1wbGluZyBvZiBsaWtlbHkgdGFyZ2V0cy4KKytpZiB7IVtpc3Rh cmdldCAqLSotbGludXgqXQorKyAgICAmJiAhW2lzdGFyZ2V0ICotKi1nbnUqXQorKyAgICAmJiAh W2lzdGFyZ2V0ICotKi1lbGYqXQorKyAgICAmJiAhW2lzdGFyZ2V0ICotKi1vcGVuYnNkKl0KKysg ICAgJiYgIVtpc3RhcmdldCBhcm0tKi1lYWJpKl0KKysgICAgJiYgIVtpc3RhcmdldCBwb3dlcnBj LSotZWFiaSpdfSB7CisrICAgIHJldHVybiAwICAKKyt9CisrCisrc2V0IHRlc3RmaWxlICJkdzIt YXJhbmdlcyIKKytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5TCisrc2V0IGJpbmZpbGUgJHtvYmpk aXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQorKworK2lmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNk aXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7bm9kZWJ1 Z31dICE9ICIiIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrY2xlYW5fcmVzdGFydCAkdGVz dGZpbGUKKysKKysjIEZhaWxlZCBnZGJfbG9hZCB3b3VsZCBhYm9ydCB0aGUgdGVzdGNhc2UgZXhl Y3V0aW9uIGVhcmxpZXIuCisrcGFzcyAiZmlsZSBsb2FkZWQiCitkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdHJpcHBlZC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4u MWYwMmQ5MAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1zdHJpcHBlZC5jCitAQCAtMCwwICsxLDQyIEBACisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0 IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAwNCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBv ZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIAorKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK KysgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3Rv biwgTUEgMDIxMTEtMTMwNywKKysgICBVU0EuICAqLworKworKworKy8qIFRoZSBmdW5jdGlvbiBg ZnVuYzEnIHRyYWNlZCBpbnRvIG11c3QgaGF2ZSBkZWJ1ZyBpbmZvIG9uIG9mZnNldCA+IDA7Cisr ICAgKERXX1VOU05EIChhdHRyKSkuICBUaGlzIGlzIHRoZSByZWFzb24gb2YgYGZ1bmMwJyBleGlz dGVuY2UuICAqLworKworK3ZvaWQKKytmdW5jMChpbnQgYSwgaW50IGIpCisreworK30KKysKKysv KiBgZnVuYzEnIGJlaW5nIHRyYWNlZCBpbnRvIG11c3QgaGF2ZSBzb21lIGFyZ3VtZW50cyB0byBk dW1wLiAgKi8KKysKKyt2b2lkCisrZnVuYzEoaW50IGEsIGludCBiKQorK3sKKysgIGZ1bmMwIChh LGIpOworK30KKysKKytpbnQKKyttYWluKHZvaWQpCisreworKyAgZnVuYzEgKDEsIDIpOworKyAg cmV0dXJuIDA7CisrfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzIt c3RyaXBwZWQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi4xYzZlODRhCistLS0gL2Rldi9u dWxsCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAogQEAg LTAsMCArMSw3OSBAQAogKyMgQ29weXJpZ2h0IDIwMDYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCkBAIC0yMjU4NiwxMCArMjMxNjcsMTAgQEAgaW5kZXggMDAwMDAwMC4uZTQ5MmIzYQog K2VuZCBwcm9ncmFtIHJlcHJvCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9keW5hbWljLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAKIG5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5mODljZjZiCitpbmRleCAwMDAwMDAw Li4wY2NlYmUwCiAtLS0gL2Rldi9udWxsCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2R5bmFtaWMuZXhwCi1AQCAtMCwwICsxLDE1OCBAQAorQEAgLTAsMCArMSwxNDUgQEAKICsjIENv cHlyaWdodCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwogKyMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKQEAgLTIyNzM1LDE5ICsyMzMxNiw2IEBAIGluZGV4IDAwMDAwMDAuLmY4OWNmNmIKICtn ZGJfdGVzdCAicCB2YXJ0KDMsOCkiICJcXCRcWzAtOVxdKiA9IDkiCiArIyBtYXBzIHRvIGZvbzo6 dmFyeSgxLDMpCiArZ2RiX3Rlc3QgInAgdmFydCgyLDkpIiAiXFwkXFswLTlcXSogPSAxMCIKLSsK LStzZXQgdGVzdCAicXVpdCAjMSIKLStnZGJfdGVzdF9tdWx0aXBsZSAicXVpdCIgJHRlc3Qgewot KyAgICAtcmUgIlRoZSBwcm9ncmFtIGlzIHJ1bm5pbmcuICBRdWl0IGFueXdheSBcXChhbmQga2ls bCBpdFxcKVxcPyBcXCh5IG9yIG5cXCkgIiB7Ci0rCXBhc3MgJHRlc3QKLSsgICAgfQotK30KLStz ZXQgdGVzdCAicXVpdCAjMiIKLStnZGJfdGVzdF9tdWx0aXBsZSAieSIgJHRlc3QgewotKyAgICBl b2YgewotKwlwYXNzICR0ZXN0Ci0rICAgIH0KLSt9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHlu YW1pYy5mOTAKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRleCAwMDAwMDAwLi4wZjQzNTY0CkBA IC0yMjg1Miw2ICsyMzQyMCwxMjggQEAgaW5kZXggMDAwMDAwMC4uMGY0MzU2NAogKyAgaWYgKHgg KDEsIDEpIC5uZS4gOCAub3IuIHggKDIsIDIpIC5uZS4gOSAub3IuIHggKDEsIDIpIC5uZS4gNCkg Y2FsbCBhYm9ydAogKyAgaWYgKHggKDMsIDEpIC5uZS4gMTApIGNhbGwgYWJvcnQKICtlbmQKK2Rp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2xpYnJhcnktbW9kdWxlLWxpYi5m OTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2xpYnJhcnktbW9kdWxlLWxpYi5mOTAKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi42MzY5ZDM0CistLS0gL2Rldi9udWxs CisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2xpYnJhcnktbW9kdWxlLWxpYi5mOTAK K0BAIC0wLDAgKzEsMjggQEAKKyshIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyEgCisrISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyshIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisrISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyEgCisrISBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorKyEgCisrISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrbW9k dWxlIGxpYgorKyAgICAgICAgaW50ZWdlciA6OiB2YXJfaSA9IDEKKytjb250YWlucworKyAgICAg ICAgc3Vicm91dGluZSBsaWJfZnVuYworKyAgICAgICAgaWYgKHZhcl9pIC5uZS4gMSkgY2FsbCBh Ym9ydAorKyAgICAgICAgdmFyX2kgPSAyCisrICAgICAgICBlbmQgc3Vicm91dGluZSBsaWJfZnVu YworK2VuZCBtb2R1bGUgbGliCisrCisrbW9kdWxlIGxpYm1hbnkKKysgICAgICAgIGludGVnZXIg OjogdmFyX2ogPSAzCisrICAgICAgICBpbnRlZ2VyIDo6IHZhcl9rID0gNAorK2VuZCBtb2R1bGUg bGlibWFueQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbGlicmFyeS1t b2R1bGUtbWFpbi5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2xpYnJhcnktbW9kdWxl LW1haW4uZjkwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZGU2M2E2NQor LS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9saWJyYXJ5LW1v ZHVsZS1tYWluLmY5MAorQEAgLTAsMCArMSwyMyBAQAorKyEgQ29weXJpZ2h0IDIwMDkgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrISAKKyshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrISBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKKyshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisrISAKKyshIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyEgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyshIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyshIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrISAKKyshIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrISBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KKysKKysgICAgICAgIHVzZSBsaWIKKysJdXNlIGxpYm1hbnksIG9ubHk6IHZhcl9qCisr ICAgICAgICBpZiAodmFyX2kgLm5lLiAxKSBjYWxsIGFib3J0CisrCWNhbGwgbGliX2Z1bmMKKysg ICAgICAgIGlmICh2YXJfaSAubmUuIDIpIGNhbGwgYWJvcnQKKysgICAgICAgIGlmICh2YXJfaiAu bmUuIDMpIGNhbGwgYWJvcnQKKysgICAgICAgIHZhcl9pID0gdmFyX2kgICAgICAgICAgICAgICAg ICEgaS1pcy0yCisrZW5kCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9s aWJyYXJ5LW1vZHVsZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2xpYnJhcnktbW9k dWxlLmV4cAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjRiNGVhNGMKKy0t LSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbGlicmFyeS1tb2R1 bGUuZXhwCitAQCAtMCwwICsxLDUzIEBACisrIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisr c2V0IHRlc3RmaWxlICJsaWJyYXJ5LW1vZHVsZSIKKytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS1t YWluLmY5MAorK3NldCBzcmNsaWJmaWxlICR7dGVzdGZpbGV9LWxpYi5mOTAKKytzZXQgbGliZmls ZSAke3Rlc3RmaWxlfS1saWIuc28KKytzZXQgYmluZmlsZSAke3Rlc3RmaWxlfQorKworKyMgUmVx dWlyZWQgZm9yIC1mUElDIGJ5IGdkYl9jb21waWxlX3NobGliLgorK2lmIFtnZXRfY29tcGlsZXJf aW5mbyBub3QtdXNlZF0geworKyAgIHdhcm5pbmcgIkNvdWxkIG5vdCBnZXQgY29tcGlsZXIgaW5m byIKKysgICByZXR1cm4gLTEKKyt9CisrCisraWYgIHsgW2dkYl9jb21waWxlX3NobGliICIke3Ny Y2Rpcn0vJHtzdWJkaXJ9LyR7c3JjbGliZmlsZX0iICRvYmpkaXIvJHN1YmRpci8kbGliZmlsZSB7 ZGVidWcgZjc3fV0gIT0gIiIgfSB7CisrICAgIHVudGVzdGVkICJDb3VsZG4ndCBjb21waWxlICR7 c3JjbGliZmlsZX0iCisrICAgIHJldHVybiAtMQorK30KKysKKysjIHByZXBhcmVfZm9yX3Rlc3Rp bmcgY2Fubm90IGJlIHVzZWQgYXMgbGlua2luZyB3aXRoICRsaWJmaWxlIGNhbm5vdCBiZSBwYXNz ZWQKKysjIGp1c3QgZm9yIHRoZSBsaW5raW5nIHBoYXNlIChhbmQgbm90IHRoZSBzb3VyY2UgY29t cGlsYXRpb24gcGhhc2UpLiAgQW5kIGFueQorKyMgd2FybmluZ3Mgb24gaWdub3JlZCAkbGliZmls ZSBhYm9ydCB0aGUgcHJvY2Vzcy4KKysKKytpZiAgeyBbZ2RiX2NvbXBpbGUgW2xpc3QgJHNyY2Rp ci8kc3ViZGlyLyRzcmNmaWxlICRvYmpkaXIvJHN1YmRpci8kbGliZmlsZV0gJG9iamRpci8kc3Vi ZGlyLyRiaW5maWxlIGV4ZWN1dGFibGUge2RlYnVnIGY3N31dICE9ICIiIH0geworKyAgICB1bnRl c3RlZCAiQ291bGRuJ3QgY29tcGlsZSAke3NyY2ZpbGV9IgorKyAgICByZXR1cm4gLTEKKyt9Cisr CisrY2xlYW5fcmVzdGFydCAkYmluZmlsZQorKworK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsK KysgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCisrICAgIGNv bnRpbnVlCisrfQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJpLWlz LTIiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJpLWlzLTIiICIuKmktaXMtMi4qIgor K2dkYl90ZXN0ICJwcmludCB2YXJfaSIgIiA9IDIiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9qIiAi ID0gMyIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2siICJObyBzeW1ib2wgXCJ2YXJfa1wiIGluIGN1 cnJlbnQgY29udGV4dFxcLiIKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2xvZ2ljYWwuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9sb2dpY2FsLmV4cAogbmV3 IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLmVmNzZmNDMKQEAgLTIyOTQxLDEyICsy MzYzMSwxMDQgQEAgaW5kZXggMDAwMDAwMC4uNDIyOTMwNAogKyAgbDggPSAuVFJVRS4KICsgIGwg PSAuRkFMU0UuCQkJCQkhIHN0b3AtaGVyZQogK2VuZAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vbW9kdWxlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbW9k dWxlLmV4cAoraW5kZXggMzQyY2NlZS4uYzgzNmMzYyAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vbW9kdWxlLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9tb2R1bGUuZXhwCitAQCAtMTUsMjEgKzE1LDMxIEBACisgCisgc2V0IHRlc3RmaWxlICJtb2R1 bGUiCisgc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uZjkwCistc2V0IGJpbmZpbGUgJHtvYmpkaXJ9 LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQorIAorLWlmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9 LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVidWcgZjc3 IHF1aWV0fV0gIT0gIiIgfSB7CistICAgIHVudGVzdGVkICJDb3VsZG4ndCBjb21waWxlICR7c3Jj ZmlsZX0iCisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAkdGVzdGZpbGUuZXhwICR0ZXN0Zmls ZSAkc3JjZmlsZSB7ZGVidWcgZjc3fV0gfSB7CisgICAgIHJldHVybiAtMQorIH0KKyAKKy1nZGJf ZXhpdAorLWdkYl9zdGFydAorLWdkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgor LWdkYl9sb2FkICR7YmluZmlsZX0KKy0KKyBpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7CisgICAg IHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgorICAgICBjb250aW51 ZQorIH0KKyAKKy1nZGJfdGVzdCAicHJpbnQgaSIgIiA9IDQyIgorKyMgRG8gbm90IHVzZSBzaW1w bGUgc2luZ2xlLWxldHRlciBuYW1lcyBhcyBHREIgd291bGQgcGljayB1cCBmb3IgZXhwZWN0ZWRs eQorKyMgbm9uZXhpc3Rpbmcgc3ltYm9scyBzb21lIHN0YXRpYyB2YXJpYWJsZXMgZnJvbSBzeXN0 ZW0gbGlicmFyaWVzIGRlYnVnaW5mb3MuCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgImktaXMtMSJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImktaXMtMSIg Ii4qaS1pcy0xLioiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9pIiAiID0gMSIgInByaW50IHZhcl9p IHZhbHVlIDEiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImktaXMt MiJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImktaXMtMiIgIi4qaS1pcy0yLioiCisr Z2RiX3Rlc3QgInByaW50IHZhcl9pIiAiID0gMiIgInByaW50IHZhcl9pIHZhbHVlIDIiCisrCisr Z2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImEtYi1jLWQiXQorK2dkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJhLWItYy1kIiAiLiphLWItYy1kLioiCisrZ2RiX3Rlc3QgInBy aW50IHZhcl9hIiAiTm8gc3ltYm9sIFwidmFyX2FcIiBpbiBjdXJyZW50IGNvbnRleHRcXC4iCisr Z2RiX3Rlc3QgInByaW50IHZhcl9iIiAiID0gMTEiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9jIiAi Tm8gc3ltYm9sIFwidmFyX2NcIiBpbiBjdXJyZW50IGNvbnRleHRcXC4iCisrZ2RiX3Rlc3QgInBy aW50IHZhcl9kIiAiID0gMTIiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9pIiAiID0gMTQiICJwcmlu dCB2YXJfaSB2YWx1ZSAxNCIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L21vZHVsZS5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL21vZHVsZS5mOTAKK2luZGV4 IDUwMWNjYzguLjExODkzMWQgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L21vZHVsZS5mOTAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbW9kdWxlLmY5MAor QEAgLTEzLDEwICsxMywzNyBAQAorICEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAhIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorIAorLW1v ZHVsZSBtb2QKKy0gICAgICAgIGludGVnZXIgOjogaSA9IDQyCistZW5kIG1vZHVsZSBtb2QKKytt b2R1bGUgbW9kMQorKyAgICAgICAgaW50ZWdlciA6OiB2YXJfaSA9IDEKKytlbmQgbW9kdWxlIG1v ZDEKKyAKKy0gICAgICAgIHVzZSBtb2QKKy0gICAgICAgIHByaW50ICosIGkKKyttb2R1bGUgbW9k MgorKyAgICAgICAgaW50ZWdlciA6OiB2YXJfaSA9IDIKKytlbmQgbW9kdWxlIG1vZDIKKysKKytt b2R1bGUgbW9kbWFueQorKyAgICAgICAgaW50ZWdlciA6OiB2YXJfYSA9IDEwLCB2YXJfYiA9IDEx LCB2YXJfYyA9IDEyLCB2YXJfaSA9IDE0CisrZW5kIG1vZHVsZSBtb2RtYW55CisrCisrICAgICAg ICBzdWJyb3V0aW5lIHN1YjEKKysgICAgICAgIHVzZSBtb2QxCisrICAgICAgICBpZiAodmFyX2kg Lm5lLiAxKSBjYWxsIGFib3J0CisrICAgICAgICB2YXJfaSA9IHZhcl9pICAgICAgICAgICAgICAg ICAgICAgICAgICEgaS1pcy0xCisrICAgICAgICBlbmQKKysKKysgICAgICAgIHN1YnJvdXRpbmUg c3ViMgorKyAgICAgICAgdXNlIG1vZDIKKysgICAgICAgIGlmICh2YXJfaSAubmUuIDIpIGNhbGwg YWJvcnQKKysgICAgICAgIHZhcl9pID0gdmFyX2kgICAgICAgICAgICAgICAgICAgICAgICAgISBp LWlzLTIKKysgICAgICAgIGVuZAorKworKyAgICAgICAgdXNlIG1vZG1hbnksIG9ubHk6IHZhcl9i LCB2YXJfZCA9PiB2YXJfYywgdmFyX2kKKysKKysgICAgICAgIGNhbGwgc3ViMQorKyAgICAgICAg Y2FsbCBzdWIyCisrCisrICAgICAgICBpZiAodmFyX2IgLm5lLiAxMSkgY2FsbCBhYm9ydAorKyAg ICAgICAgaWYgKHZhcl9kIC5uZS4gMTIpIGNhbGwgYWJvcnQKKysgICAgICAgIGlmICh2YXJfaSAu bmUuIDE0KSBjYWxsIGFib3J0CisrICAgICAgICB2YXJfYiA9IHZhcl9iICAgICAgICAgICAgICAg ICAgICAgICAgICEgYS1iLWMtZAorIGVuZAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vc3RyaW5nLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4 cAogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmFiNzIyMDYKK2luZGV4IDAw MDAwMDAuLmIxMTIwYzMKIC0tLSAvZGV2L251bGwKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3RyaW5nLmV4cAotQEAgLTAsMCArMSw3MiBAQAorQEAgLTAsMCArMSw1OSBAQAogKyMg Q29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCiArIyBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQpAQCAtMjMwMDYsMTkgKzIzNzg4LDYgQEAgaW5kZXggMDAwMDAwMC4uYWI3MjIwNgog K2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXItZmluaXNoIgogK2dkYl90ZXN0ICJwIGUi ICJcXCRcWzAtOVxdKiA9ICdlICAgJyIgInAgZSByZS1zZXQiCiArZ2RiX3Rlc3QgInAgZiIgIlxc JFxbMC05XF0qID0gXFwoXFwoICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAn LCAnZiAgICcsICdmICAgJ1xcKSBcXCggJ2YyICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAn ZiAgICcsICdmICAgJywgJ2YgICAnXFwpIFxcKCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAg ICcsICdmICAgJywgJ2YgICAnLCAnZiAgICdcXCkgXFwpIiAicCAqZiByZS1zZXQiCi0rCi0rc2V0 IHRlc3QgInF1aXQgIzEiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUgInF1aXQiICR0ZXN0IHsKLSsgICAg LXJlICJUaGUgcHJvZ3JhbSBpcyBydW5uaW5nLiAgUXVpdCBhbnl3YXkgXFwoYW5kIGtpbGwgaXRc XClcXD8gXFwoeSBvciBuXFwpICIgewotKwlwYXNzICR0ZXN0Ci0rICAgIH0KLSt9Ci0rc2V0IHRl c3QgInF1aXQgIzIiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUgInkiICR0ZXN0IHsKLSsgICAgZW9mIHsK LSsJcGFzcyAkdGVzdAotKyAgICB9Ci0rfQogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vc3RyaW5nLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5 MAogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjIyNmRjNWQKQEAgLTI0NDU1 LDcgKzI1MjI0LDcgQEAgaW5kZXggYTdhYzNjOC4uODE1YzgyZCAxMDA2NDQKICB9CiAgCiBkaWZm IC0tZ2l0IGEvZ2RiL3RvcC5jIGIvZ2RiL3RvcC5jCi1pbmRleCBkZTQ5NDE4Li4yMzdlNTc1IDEw MDY0NAoraW5kZXggY2I1MWUwOC4uYjEyNmE4YSAxMDA2NDQKIC0tLSBhL2dkYi90b3AuYwogKysr IGIvZ2RiL3RvcC5jCiBAQCAtMzc4LDYgKzM3OCw3IEBAIGV4ZWN1dGVfY29tbWFuZCAoY2hhciAq cCwgaW50IGZyb21fdHR5KQpAQCAtMjQ0NjcsNyArMjUyMzYsNyBAQCBpbmRleCBkZTQ5NDE4Li4y MzdlNTc1IDEwMDY0NAogICAgLyogRm9yY2UgY2xlYW51cCBvZiBhbnkgYWxsb2NhIGFyZWFzIGlm IHVzaW5nIEMgYWxsb2NhIGluc3RlYWQgb2YKICAgICAgIGEgYnVpbHRpbiBhbGxvY2EuICAqLwog ZGlmZiAtLWdpdCBhL2dkYi90eXBlcHJpbnQuYyBiL2dkYi90eXBlcHJpbnQuYwotaW5kZXggODEz M2FkMC4uMGFmNjJlMSAxMDA2NDQKK2luZGV4IGYwOTAyMzEuLmZjMTVlYzEgMTAwNjQ0CiAtLS0g YS9nZGIvdHlwZXByaW50LmMKICsrKyBiL2dkYi90eXBlcHJpbnQuYwogQEAgLTM1LDYgKzM1LDgg QEAKQEAgLTI0NDg5LDcgKzI1MjU4LDcgQEAgaW5kZXggODEzM2FkMC4uMGFmNjJlMSAxMDA2NDQK ICAgIExBX1BSSU5UX1RZUEUgKHR5cGUsIHZhcnN0cmluZywgc3RyZWFtLCBzaG93LCAwKTsKICB9 CiAgCi1AQCAtMTE1LDcgKzEyMCw4IEBAIHdoYXRpc19leHAgKGNoYXIgKmV4cCwgaW50IHNob3cp CitAQCAtMTE0LDcgKzExOSw4IEBAIHdoYXRpc19leHAgKGNoYXIgKmV4cCwgaW50IHNob3cpCiAg ewogICAgc3RydWN0IGV4cHJlc3Npb24gKmV4cHI7CiAgICBzdHJ1Y3QgdmFsdWUgKnZhbDsKQEAg LTI0NDk5LDcgKzI1MjY4LDcgQEAgaW5kZXggODEzM2FkMC4uMGFmNjJlMSAxMDA2NDQKICAgIHN0 cnVjdCB0eXBlICpyZWFsX3R5cGUgPSBOVUxMOwogICAgc3RydWN0IHR5cGUgKnR5cGU7CiAgICBp bnQgZnVsbCA9IDA7Ci1AQCAtMTI2LDEyICsxMzIsMTMgQEAgd2hhdGlzX2V4cCAoY2hhciAqZXhw LCBpbnQgc2hvdykKK0BAIC0xMjUsMTIgKzEzMSwxMyBAQCB3aGF0aXNfZXhwIChjaGFyICpleHAs IGludCBzaG93KQogICAgaWYgKGV4cCkKICAgICAgewogICAgICAgIGV4cHIgPSBwYXJzZV9leHBy ZXNzaW9uIChleHApOwpAQCAtMjQ1MTQsNyArMjUyODMsNyBAQCBpbmRleCA4MTMzYWQwLi4wYWY2 MmUxIDEwMDY0NAogICAgdHlwZSA9IHZhbHVlX3R5cGUgKHZhbCk7CiAgCiAgICBnZXRfdXNlcl9w cmludF9vcHRpb25zICgmb3B0cyk7Ci1AQCAtMTY4LDggKzE3NSw3IEBAIHdoYXRpc19leHAgKGNo YXIgKmV4cCwgaW50IHNob3cpCitAQCAtMTY3LDggKzE3NCw3IEBAIHdoYXRpc19leHAgKGNoYXIg KmV4cCwgaW50IHNob3cpCiAgICB0eXBlX3ByaW50ICh0eXBlLCAiIiwgZ2RiX3N0ZG91dCwgc2hv dyk7CiAgICBwcmludGZfZmlsdGVyZWQgKCJcbiIpOwogIApAQCAtMjQ1NDMsNyArMjUzMTIsNyBA QCBpbmRleCBmNTYxMzEwLi5kMjYxYzc5IDEwMDY0NAogK3ZvaWQgY190eXBlX3ByaW50X2FyZ3Mg KHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICosIGludCwgZW51bSBsYW5ndWFnZSk7CiAg I2VuZGlmCiBkaWZmIC0tZ2l0IGEvZ2RiL3VpLWZpbGUuYyBiL2dkYi91aS1maWxlLmMKLWluZGV4 IDAyYTAzMTQuLjVjOGM5NmUgMTAwNjQ0CitpbmRleCA1Mjc5MTdjLi4wN2Q5NTlhIDEwMDY0NAog LS0tIGEvZ2RiL3VpLWZpbGUuYwogKysrIGIvZ2RiL3VpLWZpbGUuYwogQEAgLTIyLDYgKzIyLDcg QEAKQEAgLTI0NTYzLDggKzI1MzMyLDggQEAgaW5kZXggMDJhMDMxNC4uNWM4Yzk2ZSAxMDA2NDQK ICAKICBzdHJ1Y3QgYWNjdW11bGF0ZWRfdWlfZmlsZQogIHsKLUBAIC0yOTcsNiArMjk4LDIzIEBA IHVpX2ZpbGVfeHN0cmR1cCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsCi0gICAqbGVuZ3RoID0gYWNj Lmxlbmd0aDsKK0BAIC0yOTcsNiArMjk4LDIzIEBAIHVpX2ZpbGVfeHN0cmR1cCAoc3RydWN0IHVp X2ZpbGUgKmZpbGUsIGxvbmcgKmxlbmd0aCkKKyAgICAgKmxlbmd0aCA9IGFjYy5sZW5ndGg7CiAg ICByZXR1cm4gYWNjLmJ1ZmZlcjsKICB9CiArCkBAIC0yNDU4OCw3ICsyNTM1Nyw3IEBAIGluZGV4 IDAyYTAzMTQuLjVjOGM5NmUgMTAwNjQ0CiAgLyogQSBwdXJlIG1lbW9yeSBiYXNlZCBgYHN0cnVj dCB1aV9maWxlJycgdGhhdCBjYW4gYmUgdXNlZCBhbiBvdXRwdXQKICAgICBidWZmZXIuIFRoZSBi dWZmZXJzIGFjY3VtdWxhdGVkIGNvbnRlbnRzIGFyZSBhdmFpbGFibGUgdmlhCiBkaWZmIC0tZ2l0 IGEvZ2RiL3VpLWZpbGUuaCBiL2dkYi91aS1maWxlLmgKLWluZGV4IDE1NjJkNWEuLmQ4NmE3ZWIg MTAwNjQ0CitpbmRleCBiZjk5MTVjLi4yMzMyMDZjIDEwMDY0NAogLS0tIGEvZ2RiL3VpLWZpbGUu aAogKysrIGIvZ2RiL3VpLWZpbGUuaAogQEAgLTE5LDYgKzE5LDcgQEAKQEAgLTI0NjAwLDcgKzI1 MzY5LDcgQEAgaW5kZXggMTU2MmQ1YS4uZDg2YTdlYiAxMDA2NDQKICAKICAvKiBDcmVhdGUgYSBn ZW5lcmljIHVpX2ZpbGUgb2JqZWN0IHdpdGggbnVsbCBtZXRob2RzLiAqLwogQEAgLTc3LDcgKzc4 LDEwIEBAIGV4dGVybiB2b2lkIHVpX2ZpbGVfcHV0IChzdHJ1Y3QgdWlfZmlsZSAqc3JjLCB1aV9m aWxlX3B1dF9tZXRob2RfZnR5cGUgKndyaXRlLCB2Ci0gICAgYXBwZW5kZWQgTlVMLiAqLworICAg IG1pbnVzIHRoYXQgYXBwZW5kZWQgTlVMLiAqLwogIGV4dGVybiBjaGFyICp1aV9maWxlX3hzdHJk dXAgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBsb25nICpsZW5ndGgpOwogIAogLQpAQCAtMjQ2MTIs MTAgKzI1MzgxLDEwIEBAIGluZGV4IDE1NjJkNWEuLmQ4NmE3ZWIgMTAwNjQ0CiAgZXh0ZXJuIGxv bmcgdWlfZmlsZV9yZWFkIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBsb25nIGxl bmd0aF9idWYpOwogIAogZGlmZiAtLWdpdCBhL2dkYi91dGlscy5jIGIvZ2RiL3V0aWxzLmMKLWlu ZGV4IGEyNjZiMDIuLjNkOTUzZTMgMTAwNjQ0CitpbmRleCA1ZmEyZjI2Li5mOTg1ZmE5IDEwMDY0 NAogLS0tIGEvZ2RiL3V0aWxzLmMKICsrKyBiL2dkYi91dGlscy5jCi1AQCAtMjYwNSw3ICsyNjA1 LDEwIEBAIGZwcmludGZfc3ltYm9sX2ZpbHRlcmVkIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBj aGFyICpuYW1lLAorQEAgLTI2MDQsNyArMjYwNCwxMCBAQCBmcHJpbnRmX3N5bWJvbF9maWx0ZXJl ZCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgY2hhciAqbmFtZSwKICAgICBBcyBhbiBleHRyYSBo YWNrLCBzdHJpbmcxPT0iRk9PKEFSR1MpIiBtYXRjaGVzIHN0cmluZzI9PSJGT08iLgogICAgIFRo aXMgImZlYXR1cmUiIGlzIHVzZWZ1bCB3aGVuIHNlYXJjaGluZyBmb3IgbWF0Y2hpbmcgQysrIGZ1 bmN0aW9uIG5hbWVzCiAgICAgKHN1Y2ggYXMgaWYgdGhlIHVzZXIgdHlwZXMgJ2JyZWFrIEZPTycs IHdoZXJlIEZPTyBpcyBhIG1hbmdsZWQgQysrCkBAIC0yNDYyNyw3ICsyNTM5Niw3IEBAIGluZGV4 IGEyNjZiMDIuLjNkOTUzZTMgMTAwNjQ0CiAgCiAgaW50CiAgc3RyY21wX2l3IChjb25zdCBjaGFy ICpzdHJpbmcxLCBjb25zdCBjaGFyICpzdHJpbmcyKQotQEAgLTI2MzAsNyArMjYzMyw3IEBAIHN0 cmNtcF9pdyAoY29uc3QgY2hhciAqc3RyaW5nMSwgY29uc3QgY2hhciAqc3RyaW5nMikKK0BAIC0y NjI5LDcgKzI2MzIsNyBAQCBzdHJjbXBfaXcgKGNvbnN0IGNoYXIgKnN0cmluZzEsIGNvbnN0IGNo YXIgKnN0cmluZzIpCiAgCSAgc3RyaW5nMisrOwogIAl9CiAgICAgIH0KQEAgLTI0NzI3LDcgKzI1 NDk2LDcgQEAgaW5kZXggYTljODc1ZC4uMTJmNmYwNyAxMDA2NDQKICB9CiAgCiBkaWZmIC0tZ2l0 IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCi1pbmRleCA1ZTVjNGVkLi40NDZhNGQxIDEw MDY0NAoraW5kZXggNWU1YzRlZC4uN2FlZGJmZCAxMDA2NDQKIC0tLSBhL2dkYi92YWxvcHMuYwog KysrIGIvZ2RiL3ZhbG9wcy5jCiBAQCAtMzgsNiArMzgsNyBAQApAQCAtMjUwODYsNyArMjU4NTUs NyBAQCBpbmRleCA1ZTVjNGVkLi40NDZhNGQxIDEwMDY0NAogICAgc3RydWN0IHZhbHVlICpyZXN1 bHQ7CiAgCiAtICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZSAobmFtZXNwYWNlX25h bWUsIG5hbWUsIE5VTEwsCi0rICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX25hbWVzcGFjZV9pbmNy ZW1lbnRhbChuYW1lc3BhY2VfbmFtZSwgbmFtZSwKKysgIHN5bSA9IGNwX2xvb2t1cF9zeW1ib2xf bmFtZXNwYWNlKG5hbWVzcGFjZV9uYW1lLCBuYW1lLAogIAkJCQkgICAgZ2V0X3NlbGVjdGVkX2Js b2NrICgwKSwgCiAgCQkJCSAgICBWQVJfRE9NQUlOKTsKICAKQEAgLTI1MTMwLDcgKzI1ODk5LDcg QEAgaW5kZXggY2JiNWQ5NC4uY2YzNWJmMCAxMDA2NDQKICAJICArK3JlcHM7CiAgCSAgKytyZXAx OwogZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5jIGIvZ2RiL3ZhbHVlLmMKLWluZGV4IDY1YTVhYTku LmZhMzlkM2QgMTAwNjQ0CitpbmRleCA5N2YyMzZjLi44YWY2YWUxIDEwMDY0NAogLS0tIGEvZ2Ri L3ZhbHVlLmMKICsrKyBiL2dkYi92YWx1ZS5jCiBAQCAtMzcsOCArMzcsMTAgQEAKQEAgLTI1MTY5 LDcgKzI1OTM4LDcgQEAgaW5kZXggNjVhNWFhOS4uZmEzOWQzZCAxMDA2NDQKICAgIFZBTFVFX0xW QUwgKHZhbCkgPSBub3RfbHZhbDsKICAgIHZhbC0+bG9jYXRpb24uYWRkcmVzcyA9IDA7CiAgICBW QUxVRV9GUkFNRV9JRCAodmFsKSA9IG51bGxfZnJhbWVfaWQ7Ci1AQCAtMzY3LDYgKzM3OSw4IEBA IHZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpCitAQCAtMzQyLDYgKzM1NCw4IEBAIHZh bHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpCiAgdm9pZAogIGRlcHJlY2F0ZWRfc2V0X3Zh bHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCB0eXBlICp0eXBlKQogIHsKQEAg LTI1MTc4LDkxICsyNTk0NywxNyBAQCBpbmRleCA2NWE1YWE5Li5mYTM5ZDNkIDEwMDY0NAogICAg dmFsdWUtPnR5cGUgPSB0eXBlOwogIH0KICAKLUBAIC02MjMsMjcgKzYzNywyOCBAQCB2YWx1ZV9m cmVlIChzdHJ1Y3QgdmFsdWUgKnZhbCkKLSB7Ci0gICBpZiAodmFsKQotICAgICB7Ci0tICAgICAg Z2RiX2Fzc2VydCAodmFsLT5yZWZlcmVuY2VfY291bnQgPiAwKTsKLS0gICAgICB2YWwtPnJlZmVy ZW5jZV9jb3VudC0tOwotLSAgICAgIGlmICh2YWwtPnJlZmVyZW5jZV9jb3VudCA+IDApCi0tCXJl dHVybjsKLSsgICAgICAvKiBJZiB0aGUgY291bnQgd2FzIGFscmVhZHkgMCwgdGhlbiB0aGUgdmFs dWUgd2FzIG9uIHRoZQotKwkgYWxsX3ZhbHVlcyBsaXN0LCBhbmQgd2UgbXVzdCBiZSBmcmVlaW5n IGJhY2sgdG8gc29tZQotKwkgcG9pbnQuICAqLwotKyAgICAgIGlmICh2YWwtPnJlZmNvdW50IDw9 IDEpCi0rCXsKLSsJICB0eXBlX2RlY3JlZiAodmFsLT50eXBlKTsKLSsJICB0eXBlX2RlY3JlZiAo dmFsLT5lbmNsb3NpbmdfdHlwZSk7Ci0gCi0tICAgICAgLyogSWYgdGhlcmUncyBhbiBhc3NvY2lh dGVkIHBhcmVudCB2YWx1ZSwgZHJvcCBvdXIgcmVmZXJlbmNlIHRvCi0tCSBpdC4gICovCi0tICAg ICAgaWYgKHZhbC0+cGFyZW50ICE9IE5VTEwpCi0tCXZhbHVlX2ZyZWUgKHZhbC0+cGFyZW50KTsK LSsJICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX2NvbXB1dGVkKQotKwkgICAgewotKwkg ICAgICBzdHJ1Y3QgbHZhbF9mdW5jcyAqZnVuY3MgPSB2YWwtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1 bmNzOwotIAotLSAgICAgIGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxfY29tcHV0ZWQpCi0t CXsKLS0JICBzdHJ1Y3QgbHZhbF9mdW5jcyAqZnVuY3MgPSB2YWwtPmxvY2F0aW9uLmNvbXB1dGVk LmZ1bmNzOwotKwkgICAgICBpZiAoZnVuY3MtPmZyZWVfY2xvc3VyZSkKLSsJCWZ1bmNzLT5mcmVl X2Nsb3N1cmUgKHZhbCk7Ci0rCSAgICB9Ci0gCi0tCSAgaWYgKGZ1bmNzLT5mcmVlX2Nsb3N1cmUp Ci0tCSAgICBmdW5jcy0+ZnJlZV9jbG9zdXJlICh2YWwpOwotKwkgIHhmcmVlICh2YWwtPmNvbnRl bnRzKTsKLSsJICB4ZnJlZSAodmFsKTsKLSAJfQotLQotLSAgICAgIHhmcmVlICh2YWwtPmNvbnRl bnRzKTsKLSsgICAgICBlbHNlCi0rCS0tdmFsLT5yZWZjb3VudDsKLSAgICAgfQotLSAgeGZyZWUg KHZhbCk7Ci0gfQorQEAgLTYwOCw2ICs2MjIsOSBAQCB2YWx1ZV9mcmVlIChzdHJ1Y3QgdmFsdWUg KnZhbCkKKyAgICAgICBpZiAodmFsLT5wYXJlbnQgIT0gTlVMTCkKKyAJdmFsdWVfZnJlZSAodmFs LT5wYXJlbnQpOwogIAotIC8qIEZyZWUgYWxsIHZhbHVlcyBhbGxvY2F0ZWQgc2luY2UgTUFSSyB3 YXMgb2J0YWluZWQgYnkgdmFsdWVfbWFyawotQEAgLTY4NiwyMiArNzAxLDI2IEBAIGZyZWVfYWxs X3ZhbHVlcyAodm9pZCkKLSB2b2lkCi0gcmVsZWFzZV92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwp Ci0gewotLSAgc3RydWN0IHZhbHVlICp2OwotLQotLSAgaWYgKGFsbF92YWx1ZXMgPT0gdmFsKQot LSAgICB7Ci0tICAgICAgYWxsX3ZhbHVlcyA9IHZhbC0+bmV4dDsKLS0gICAgICByZXR1cm47Ci0t ICAgIH0KLS0KLS0gIGZvciAodiA9IGFsbF92YWx1ZXM7IHY7IHYgPSB2LT5uZXh0KQotKyAgLyog SWYgdGhlIHJlZmVyZW5jZSBjb3VudCBpcyBub256ZXJvLCB0aGVuIHdlIGhhdmUgYWxyZWFkeSBy ZW1vdmVkCi0rICAgICB0aGUgaXRlbSBmcm9tIHRoZSBsaXN0LCBzbyB0aGVyZSBpcyBubyByZWFz b24gdG8gZG8gaXQgYWdhaW4uICAqLwotKyAgaWYgKHZhbC0+cmVmY291bnQgPT0gMCkKLSAgICAg ewotLSAgICAgIGlmICh2LT5uZXh0ID09IHZhbCkKLSsgICAgICBpZiAoYWxsX3ZhbHVlcyA9PSB2 YWwpCi0rCWFsbF92YWx1ZXMgPSB2YWwtPm5leHQ7Ci0rICAgICAgZWxzZQorKyAgICAgIHR5cGVf ZGVjcmVmICh2YWwtPnR5cGUpOworKyAgICAgIHR5cGVfZGVjcmVmICh2YWwtPmVuY2xvc2luZ190 eXBlKTsKKysKKyAgICAgICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX2NvbXB1dGVkKQog IAl7Ci0tCSAgdi0+bmV4dCA9IHZhbC0+bmV4dDsKLS0JICBicmVhazsKLSsJICBzdHJ1Y3QgdmFs dWUgKnY7Ci0rCSAgZm9yICh2ID0gYWxsX3ZhbHVlczsgdjsgdiA9IHYtPm5leHQpCi0rCSAgICB7 Ci0rCSAgICAgIGlmICh2LT5uZXh0ID09IHZhbCkKLSsJCXsKLSsJCSAgdi0+bmV4dCA9IHZhbC0+ bmV4dDsKLSsJCSAgYnJlYWs7Ci0rCQl9Ci0rCSAgICB9Ci0gCX0KLSAgICAgfQotKyAgKyt2YWwt PnJlZmNvdW50OwotIH0KLSAKLSAvKiBSZWxlYXNlIGFsbCB2YWx1ZXMgdXAgdG8gbWFyayAgKi8K LUBAIC03MzYsNiArNzU1LDkgQEAgdmFsdWVfY29weSAoc3RydWN0IHZhbHVlICphcmcpCisgCSAg c3RydWN0IGx2YWxfZnVuY3MgKmZ1bmNzID0gdmFsLT5sb2NhdGlvbi5jb21wdXRlZC5mdW5jczsK K0BAIC03MTEsNiArNzI4LDkgQEAgdmFsdWVfY29weSAoc3RydWN0IHZhbHVlICphcmcpCiAgICAg IHZhbCA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKGVuY2xfdHlwZSk7CiAgICBlbHNlCiAgICAgIHZh bCA9IGFsbG9jYXRlX3ZhbHVlIChlbmNsX3R5cGUpOwpAQCAtMjUyNzIsNyArMjU5NjcsNyBAQCBp bmRleCA2NWE1YWE5Li5mYTM5ZDNkIDEwMDY0NAogICAgdmFsLT50eXBlID0gYXJnLT50eXBlOwog ICAgVkFMVUVfTFZBTCAodmFsKSA9IFZBTFVFX0xWQUwgKGFyZyk7CiAgICB2YWwtPmxvY2F0aW9u ID0gYXJnLT5sb2NhdGlvbjsKLUBAIC03NzEsMTIgKzc5MywxNSBAQCB2YWx1ZV9jb3B5IChzdHJ1 Y3QgdmFsdWUgKmFyZykKK0BAIC03NDYsMTIgKzc2NiwxNSBAQCB2YWx1ZV9jb3B5IChzdHJ1Y3Qg dmFsdWUgKmFyZykKICB2b2lkCiAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3RydWN0 IHZhbHVlICpjb21wb25lbnQsIHN0cnVjdCB2YWx1ZSAqd2hvbGUpCiAgewpAQCAtMjUyODgsNyAr MjU5ODMsNyBAQCBpbmRleCA2NWE1YWE5Li5mYTM5ZDNkIDEwMDY0NAogICAgaWYgKFZBTFVFX0xW QUwgKHdob2xlKSA9PSBsdmFsX2NvbXB1dGVkKQogICAgICB7CiAgICAgICAgc3RydWN0IGx2YWxf ZnVuY3MgKmZ1bmNzID0gd2hvbGUtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzOwotQEAgLTc4NCw2 ICs4MDksMTAgQEAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbHVlICpj b21wb25lbnQsIHN0cnVjdCB2YWx1ZSAqd2hvbGUpCitAQCAtNzU5LDYgKzc4MiwxMCBAQCBzZXRf dmFsdWVfY29tcG9uZW50X2xvY2F0aW9uIChzdHJ1Y3QgdmFsdWUgKmNvbXBvbmVudCwgc3RydWN0 IHZhbHVlICp3aG9sZSkKICAgICAgICBpZiAoZnVuY3MtPmNvcHlfY2xvc3VyZSkKICAgICAgICAg IGNvbXBvbmVudC0+bG9jYXRpb24uY29tcHV0ZWQuY2xvc3VyZSA9IGZ1bmNzLT5jb3B5X2Nsb3N1 cmUgKHdob2xlKTsKICAgICAgfQpAQCAtMjUyOTksNyArMjU5OTQsNyBAQCBpbmRleCA2NWE1YWE5 Li5mYTM5ZDNkIDEwMDY0NAogIH0KICAKICAMCi1AQCAtOTE0LDYgKzk0MywyOSBAQCBzaG93X3Zh bHVlcyAoY2hhciAqbnVtX2V4cCwgaW50IGZyb21fdHR5KQorQEAgLTg4OSw2ICs5MTYsMjkgQEAg c2hvd192YWx1ZXMgKGNoYXIgKm51bV9leHAsIGludCBmcm9tX3R0eSkKICAgICAgICBudW1fZXhw WzFdID0gJ1wwJzsKICAgICAgfQogIH0KQEAgLTI1MzI5LDcgKzI2MDI0LDcgQEAgaW5kZXggNjVh NWFhOS4uZmEzOWQzZCAxMDA2NDQKICAMCiAgLyogSW50ZXJuYWwgdmFyaWFibGVzLiAgVGhlc2Ug YXJlIHZhcmlhYmxlcyB3aXRoaW4gdGhlIGRlYnVnZ2VyCiAgICAgdGhhdCBob2xkIHZhbHVlcyBh c3NpZ25lZCBieSBkZWJ1Z2dlciBjb21tYW5kcy4KLUBAIC0xMzg4LDYgKzE0NDAsMzcgQEAgY2Fs bF9pbnRlcm5hbF9mdW5jdGlvbiAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMTM2Myw2 ICsxNDEzLDM3IEBAIGNhbGxfaW50ZXJuYWxfZnVuY3Rpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLAogICAgcmV0dXJuICgqaWZuLT5oYW5kbGVyKSAoZ2RiYXJjaCwgbGFuZ3VhZ2UsIGlmbi0+ Y29va2llLCBhcmdjLCBhcmd2KTsKICB9CiAgCkBAIC0yNTM2NywxMyArMjYwNjIsNyBAQCBpbmRl eCA2NWE1YWE5Li5mYTM5ZDNkIDEwMDY0NAogIC8qIFRoZSAnZnVuY3Rpb24nIGNvbW1hbmQuICBU aGlzIGRvZXMgbm90aGluZyAtLSBpdCBpcyBqdXN0IGEKICAgICBwbGFjZWhvbGRlciB0byBsZXQg ImhlbHAgZnVuY3Rpb24gTkFNRSIgd29yay4gIFRoaXMgaXMgYWxzbyB1c2VkIGFzCiAgICAgdGhl IGltcGxlbWVudGF0aW9uIG9mIHRoZSBzdWItY29tbWFuZCB0aGF0IGlzIGNyZWF0ZWQgd2hlbgot QEAgLTE0MzAsMTYgKzE1MTMsMTUgQEAgYWRkX2ludGVybmFsX2Z1bmN0aW9uIChjb25zdCBjaGFy ICpuYW1lLCBjb25zdCBjaGFyICpkb2MsCi0gLyogVXBkYXRlIFZBTFVFIGJlZm9yZSBkaXNjYXJk aW5nIE9CSkZJTEUuICBDT1BJRURfVFlQRVMgaXMgdXNlZCB0bwotICAgIHByZXZlbnQgY3ljbGVz IC8gZHVwbGljYXRlcy4gICovCi0gCi0tc3RhdGljIHZvaWQKLSt2b2lkCi0gcHJlc2VydmVfb25l X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BA IC0xNDEwLDExICsxNDkxLDEwIEBAIHByZXNlcnZlX29uZV92YWx1ZSAoc3RydWN0IHZhbHVlICp2 YWx1ZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgCQkgICAgaHRhYl90IGNvcGllZF90eXBl cykKICB7CiAgICBpZiAoVFlQRV9PQkpGSUxFICh2YWx1ZS0+dHlwZSkgPT0gb2JqZmlsZSkKQEAg LTI1Mzg3LDcgKzI2MDc2LDcgQEAgaW5kZXggNjVhNWFhOS4uZmEzOWQzZCAxMDA2NDQKICAJCQkJ CQkgY29waWVkX3R5cGVzKTsKICB9CiAgCi1AQCAtMTQ1NCw3ICsxNTM2LDcgQEAgcHJlc2VydmVf b25lX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgc3RydWN0IG9iamZpbGUg Km9iamZpbGUsCitAQCAtMTQyOSw3ICsxNTA5LDcgQEAgcHJlc2VydmVfb25lX2ludGVybmFsdmFy IChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICAg IGNhc2UgSU5URVJOQUxWQVJfU0NBTEFSOgogICAgICAgIGlmICh2YXItPnUuc2NhbGFyLnR5cGUg JiYgVFlQRV9PQkpGSUxFICh2YXItPnUuc2NhbGFyLnR5cGUpID09IG9iamZpbGUpCiAgCXZhci0+ dS5zY2FsYXIudHlwZQpAQCAtMjUzOTYsMTcgKzI2MDg1LDcgQEAgaW5kZXggNjVhNWFhOS4uZmEz OWQzZCAxMDA2NDQKICAgICAgICBicmVhazsKICAKICAgICAgY2FzZSBJTlRFUk5BTFZBUl9WQUxV RToKLUBAIC0xNDkwLDggKzE1NzIsNyBAQCBwcmVzZXJ2ZV92YWx1ZXMgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlKQotICAgZm9yICh2YXIgPSBpbnRlcm5hbHZhcnM7IHZhcjsgdmFyID0gdmFyLT5u ZXh0KQotICAgICBwcmVzZXJ2ZV9vbmVfaW50ZXJuYWx2YXIgKHZhciwgb2JqZmlsZSwgY29waWVk X3R5cGVzKTsKLSAKLS0gIGZvciAodmFsID0gdmFsdWVzX2luX3B5dGhvbjsgdmFsOyB2YWwgPSB2 YWwtPm5leHQpCi0tICAgIHByZXNlcnZlX29uZV92YWx1ZSAodmFsLCBvYmpmaWxlLCBjb3BpZWRf dHlwZXMpOwotKyAgcHJlc2VydmVfcHl0aG9uX3ZhbHVlcyAob2JqZmlsZSwgY29waWVkX3R5cGVz KTsKLSAKLSAgIGh0YWJfZGVsZXRlIChjb3BpZWRfdHlwZXMpOwotIH0KLUBAIC0xODU3LDYgKzE5 MzgsOCBAQCB2YWx1ZV9jaGFuZ2VfZW5jbG9zaW5nX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBz dHJ1Y3QgdHlwZSAqbmV3X2VuY2xfdHlwZSkKK0BAIC0xODMxLDYgKzE5MTEsOCBAQCB2YWx1ZV9j aGFuZ2VfZW5jbG9zaW5nX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdHlwZSAqbmV3 X2VuY2xfdHlwZSkKICAgICAgdmFsLT5jb250ZW50cyA9CiAgICAgICAgKGdkYl9ieXRlICopIHhy ZWFsbG9jICh2YWwtPmNvbnRlbnRzLCBUWVBFX0xFTkdUSCAobmV3X2VuY2xfdHlwZSkpOwogIApA QCAtMjU0MTUsNyArMjYwOTQsNyBAQCBpbmRleCA2NWE1YWE5Li5mYTM5ZDNkIDEwMDY0NAogICAg dmFsLT5lbmNsb3NpbmdfdHlwZSA9IG5ld19lbmNsX3R5cGU7CiAgICByZXR1cm4gdmFsOwogIH0K LUBAIC0xOTIxLDYgKzIwMDQsOCBAQCB2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1 ZSAqYXJnMSwgaW50IG9mZnNldCwKK0BAIC0xODk1LDYgKzE5NzcsOCBAQCB2YWx1ZV9wcmltaXRp dmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwKICAJICBtZW1jcHkgKHZh bHVlX2NvbnRlbnRzX2FsbF9yYXcgKHYpLCB2YWx1ZV9jb250ZW50c19hbGxfcmF3IChhcmcxKSwK ICAJCSAgVFlQRV9MRU5HVEggKHZhbHVlX2VuY2xvc2luZ190eXBlIChhcmcxKSkpOwogIAl9CkBA IC0yNTQyNCw3ICsyNjEwMyw3IEBAIGluZGV4IDY1YTVhYTkuLmZhMzlkM2QgMTAwNjQ0CiAgICAg ICAgdi0+dHlwZSA9IHR5cGU7CiAgICAgICAgdi0+b2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChhcmcx KTsKICAgICAgICB2LT5lbWJlZGRlZF9vZmZzZXQgPSAob2Zmc2V0ICsgdmFsdWVfZW1iZWRkZWRf b2Zmc2V0IChhcmcxKQotQEAgLTIxNzEsNiArMjI1Niw0MiBAQCBwYWNrX2xvbmcgKGdkYl9ieXRl ICpidWYsIHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIG51bSkKK0BAIC0yMTQ1LDYgKzIyMjks NDIgQEAgcGFja19sb25nIChnZGJfYnl0ZSAqYnVmLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VT VCBudW0pCiAgfQogIAogIApAQCAtMjU0NjcsNyArMjYxNDYsNyBAQCBpbmRleCA2NWE1YWE5Li5m YTM5ZDNkIDEwMDY0NAogIC8qIENvbnZlcnQgQyBudW1iZXJzIGludG8gbmV3bHkgYWxsb2NhdGVk IHZhbHVlcy4gICovCiAgCiAgc3RydWN0IHZhbHVlICoKLUBAIC0yMTg0LDYgKzIzMDUsMTkgQEAg dmFsdWVfZnJvbV9sb25nZXN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBudW0pCitAQCAt MjE1OCw2ICsyMjc4LDE5IEBAIHZhbHVlX2Zyb21fbG9uZ2VzdCAoc3RydWN0IHR5cGUgKnR5cGUs IExPTkdFU1QgbnVtKQogIH0KICAKICAKQEAgLTI1NDg3LDcgKzI2MTY2LDcgQEAgaW5kZXggNjVh NWFhOS4uZmEzOWQzZCAxMDA2NDQKICAvKiBDcmVhdGUgYSB2YWx1ZSByZXByZXNlbnRpbmcgYSBw b2ludGVyIG9mIHR5cGUgVFlQRSB0byB0aGUgYWRkcmVzcwogICAgIEFERFIuICAqLwogIHN0cnVj dCB2YWx1ZSAqCi1AQCAtMjM0Miw0ICsyNDc2LDggQEAgVkFSSUFCTEUgaXMgYWxyZWFkeSBpbml0 aWFsaXplZC4iKSk7CitAQCAtMjMxNiw0ICsyNDQ5LDggQEAgVkFSSUFCTEUgaXMgYWxyZWFkeSBp bml0aWFsaXplZC4iKSk7CiAgICBhZGRfcHJlZml4X2NtZCAoImZ1bmN0aW9uIiwgbm9fY2xhc3Ms IGZ1bmN0aW9uX2NvbW1hbmQsIF8oIlwKICBQbGFjZWhvbGRlciBjb21tYW5kIGZvciBzaG93aW5n IGhlbHAgb24gY29udmVuaWVuY2UgZnVuY3Rpb25zLiIpLAogIAkJICAmZnVuY3Rpb25saXN0LCAi ZnVuY3Rpb24gIiwgMCwgJmNtZGxpc3QpOwpAQCAtMjU0OTcsMTAgKzI2MTc2LDEwIEBAIGluZGV4 IDY1YTVhYTkuLmZhMzlkM2QgMTAwNjQ0CiArICBvYnNlcnZlcl9hdHRhY2hfbWFya191c2VkICh2 YWx1ZV90eXBlc19tYXJrX3VzZWQpOwogIH0KIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUuaCBiL2dk Yi92YWx1ZS5oCi1pbmRleCAyOWFkNzgzLi5jMzU3ZDgwIDEwMDY0NAoraW5kZXggNmY2Yjc1Ni4u YjljYTY1MCAxMDA2NDQKIC0tLSBhL2dkYi92YWx1ZS5oCiArKysgYi9nZGIvdmFsdWUuaAotQEAg LTM0NCwxMSArMzQ0LDE2IEBAIGV4dGVybiBMT05HRVNUIHVucGFja19maWVsZF9hc19sb25nIChz dHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC0zMzksMTEgKzMzOSwxNiBAQCBleHRlcm4gTE9OR0VTVCB1 bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RydWN0IHR5cGUgKnR5cGUsCiAgZXh0ZXJuIHZvaWQgcGFj a19sb25nIChnZGJfYnl0ZSAqYnVmLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBudW0pOwog IAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2Zyb21fbG9uZ2VzdCAoc3RydWN0IHR5cGUg KnR5cGUsIExPTkdFU1QgbnVtKTsKQEAgLTI1NTE3LDcgKzI2MTk2LDcgQEAgaW5kZXggMjlhZDc4 My4uYzM1N2Q4MCAxMDA2NDQKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9hdCAoc3RydWN0 IHR5cGUgKnR5cGUsIENPUkVfQUREUiBhZGRyKTsKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1 ZV9hdF9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHIpOwogIAotQEAgLTQz OCw2ICs0NDMsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1 Y3QgdmFsdWUgKiphcmdwLAorQEAgLTQzMyw2ICs0MzgsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKiphcmdwLAogIAogIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKnZhbHVlX2FnZ3JlZ2F0ZV9lbHQgKHN0cnVjdCB0eXBlICpjdXJ0eXBlLAogIAkJ CQkJICBjaGFyICpuYW1lLApAQCAtMjU1MjUsMTYgKzI2MjA0LDcgQEAgaW5kZXggMjlhZDc4My4u YzM1N2Q4MCAxMDA2NDQKICAJCQkJCSAgaW50IHdhbnRfYWRkcmVzcywKICAJCQkJCSAgZW51bSBu b3NpZGUgbm9zaWRlKTsKICAKLUBAIC02NjQsNiArNjcwLDggQEAgZXh0ZXJuIHZvaWQgcHJlc2Vy dmVfdmFsdWVzIChzdHJ1Y3Qgb2JqZmlsZSAqKTsKLSAKLSBleHRlcm4gc3RydWN0IHZhbHVlICp2 YWx1ZV9jb3B5IChzdHJ1Y3QgdmFsdWUgKik7Ci0gCi0rZXh0ZXJuIHZvaWQgcHJlc2VydmVfb25l X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKiwgc3RydWN0IG9iamZpbGUgKiwgaHRhYl90KTsKLSsKLSAv KiBGcm9tIHZhbG9wcy5jICovCi0gCi0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFyeWluZ190b19z bGljZSAoc3RydWN0IHZhbHVlICopOwotQEAgLTY4MSw3ICs2ODksNyBAQCBleHRlcm4gc3RydWN0 IHZhbHVlICp2YWx1ZV9hbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAoaW50KTsKK0BAIC02Nzgs NyArNjg0LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfYWxsb2NhdGVfc3BhY2VfaW5f aW5mZXJpb3IgKGludCk7CiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfb2ZfbG9jYWwgKGNv bnN0IGNoYXIgKm5hbWUsIGludCBjb21wbGFpbik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAq dmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LApAQCAtMjU1NDQs NyArMjYyMTQsNyBAQCBpbmRleCAyOWFkNzgzLi5jMzU3ZDgwIDEwMDY0NAogIC8qIFVzZXIgZnVu Y3Rpb24gaGFuZGxlci4gICovCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL3Zhcm9iai5jIGIvZ2RiL3Zh cm9iai5jCi1pbmRleCA0YTk0OTg4Li5mMjY1NGYwIDEwMDY0NAoraW5kZXggZmJlOGZmOC4uMWJm YzVlNCAxMDA2NDQKIC0tLSBhL2dkYi92YXJvYmouYwogKysrIGIvZ2RiL3Zhcm9iai5jCiBAQCAt MjYsOSArMjYsMTIgQEAKQEAgLTI1Nzc2LDcgKzI2NDQ2LDcgQEAgaW5kZXggNGE5NDk4OC4uZjI2 NTRmMCAxMDA2NDQKICAgIFB5T2JqZWN0ICpwcmludGVyID0gdmFyLT5wcmV0dHlfcHJpbnRlcjsK ICAKICAgIGJhY2tfdG8gPSB2YXJvYmpfZW5zdXJlX3B5dGhvbl9lbnYgKHZhcik7Ci1AQCAtODYy LDk2ICs5NTgsMTAzIEBAIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAoc3RydWN0IHZh cm9iaiAqdmFyLAorQEAgLTg2Miw4NyArOTU4LDEwMyBAQCB1cGRhdGVfZHluYW1pY192YXJvYmpf Y2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhciwKICAgICAgICByZXR1cm4gMDsKICAgICAgfQog IApAQCAtMjU4MzksNTEgKzI2NTA5LDQ0IEBAIGluZGV4IDRhOTQ5ODguLmYyNjU0ZjAgMTAwNjQ0 CiAtICAgICAgY2hhciAqbmFtZTsKIC0gICAgICBzdHJ1Y3QgY2xlYW51cCAqaW5uZXI7CiAtICAg ICAgCi0tICAgICAgaWYgKCFpdGVtKQotLQlicmVhazsKLS0gICAgICBpbm5lciA9IG1ha2VfY2xl YW51cF9weV9kZWNyZWYgKGl0ZW0pOwogKyAgICAgIFB5T2JqZWN0ICppdGVtOwotIAotLSAgICAg IGlmICghUHlBcmdfUGFyc2VUdXBsZSAoaXRlbSwgInNPIiwgJm5hbWUsICZweV92KSkKLS0JZXJy b3IgKF8oIkludmFsaWQgaXRlbSBmcm9tIHRoZSBjaGlsZCBsaXN0IikpOwotLSAgICAgIAotLSAg ICAgIGlmIChQeU9iamVjdF9UeXBlQ2hlY2sgKHB5X3YsICZ2YWx1ZV9vYmplY3RfdHlwZSkpCisr CiArICAgICAgLyogU2VlIGlmIHRoZXJlIHdhcyBhIGxlZnRvdmVyIGZyb20gbGFzdCB0aW1lLiAg Ki8KICsgICAgICBpZiAodmFyLT5zYXZlZF9pdGVtKQotIAl7Ci0tCSAgLyogSWYgd2UganVzdCBj YWxsIGNvbnZlcnRfdmFsdWVfZnJvbV9weXRob24gZm9yIHRoaXMgdHlwZSwKLS0JICAgICB3ZSB3 b24ndCBrbm93IHdobyBvd25zIHRoZSByZXN1bHQuICBGb3IgdGhpcyBvbmUgY2FzZSB3ZQotLQkg ICAgIG5lZWQgdG8gY29weSB0aGUgcmVzdWx0aW5nIHZhbHVlLiAgKi8KLS0JICB2ID0gdmFsdWVf b2JqZWN0X3RvX3ZhbHVlIChweV92KTsKLS0JICB2ID0gdmFsdWVfY29weSAodik7CisrCXsKICsJ ICBpdGVtID0gdmFyLT5zYXZlZF9pdGVtOwogKwkgIHZhci0+c2F2ZWRfaXRlbSA9IE5VTEw7Ci0g CX0KLSAgICAgICBlbHNlCi0tCXYgPSBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChweV92KTsK KysJfQorKyAgICAgIGVsc2UKICsJaXRlbSA9IFB5SXRlcl9OZXh0ICh2YXItPmNoaWxkX2l0ZXIp OworKworICAgICAgIGlmICghaXRlbSkKKyAJYnJlYWs7CistICAgICAgaW5uZXIgPSBtYWtlX2Ns ZWFudXBfcHlfZGVjcmVmIChpdGVtKTsKKyAKKy0gICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUg KGl0ZW0sICJzTyIsICZuYW1lLCAmcHlfdikpCistCWVycm9yIChfKCJJbnZhbGlkIGl0ZW0gZnJv bSB0aGUgY2hpbGQgbGlzdCIpKTsKKy0gICAgICAKKy0gICAgICB2ID0gY29udmVydF92YWx1ZV9m cm9tX3B5dGhvbiAocHlfdik7CisrICAgICAgLyogV2UgZG9uJ3Qgd2FudCB0byBwdXNoIHRoZSBl eHRyYSBjaGlsZCBvbiBhbnkgcmVwb3J0IGxpc3QuICAqLworKyAgICAgIGlmICh0byA8IDAgfHwg aSA8IHRvKQorKwl7CisrCSAgUHlPYmplY3QgKnB5X3Y7CisrCSAgY2hhciAqbmFtZTsKKysJICBz dHJ1Y3QgdmFsdWUgKnY7CisrCSAgc3RydWN0IGNsZWFudXAgKmlubmVyOwogIAogLSAgICAgIC8q IFRPRE86IFRoaXMgYXNzdW1lIHRoZSBuYW1lIG9mIHRoZSBpLXRoIGNoaWxkIG5ldmVyIGNoYW5n ZXMuICAqLwotKyAgICAgIGlmICghaXRlbSkKLSsJYnJlYWs7CisrCSAgaW5uZXIgPSBtYWtlX2Ns ZWFudXBfcHlfZGVjcmVmIChpdGVtKTsKICAKIC0gICAgICAvKiBOb3cgc2VlIHdoYXQgdG8gZG8g aGVyZS4gICovCiAtICAgICAgaWYgKFZFQ19sZW5ndGggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVu KSA8IGkgKyAxKQotKyAgICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gcHVzaCB0aGUgZXh0cmEgY2hp bGQgb24gYW55IHJlcG9ydCBsaXN0LiAgKi8KLSsgICAgICBpZiAodG8gPCAwIHx8IGkgPCB0bykK LSAJeworLQl7CiAtCSAgLyogVGhlcmUncyBubyBjaGlsZCB5ZXQuICAqLwogLQkgIHN0cnVjdCB2 YXJvYmogKmNoaWxkID0gdmFyb2JqX2FkZF9jaGlsZCAodmFyLCBuYW1lLCB2KTsKIC0JICBpZiAo bmV3X2FuZF91bmNoYW5nZWQpCiAtCSAgICBWRUNfc2FmZV9wdXNoICh2YXJvYmpfcCwgKm5ld19h bmRfdW5jaGFuZ2VkLCBjaGlsZCk7CiAtCSAgY2hpbGRyZW5fY2hhbmdlZCA9IDE7Ci0rCSAgUHlP YmplY3QgKnB5X3Y7Ci0rCSAgY2hhciAqbmFtZTsKLSsJICBzdHJ1Y3QgdmFsdWUgKnY7Ci0rCSAg c3RydWN0IGNsZWFudXAgKmlubmVyOwotKwotKwkgIGlubmVyID0gbWFrZV9jbGVhbnVwX3B5X2Rl Y3JlZiAoaXRlbSk7Ci0rCiArCSAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlIChpdGVtLCAic08iLCAm bmFtZSwgJnB5X3YpKQogKwkgICAgZXJyb3IgKF8oIkludmFsaWQgaXRlbSBmcm9tIHRoZSBjaGls ZCBsaXN0IikpOwogKwpAQCAtMjU5NDQsNyArMjY2MDcsNyBAQCBpbmRleCA0YTk0OTg4Li5mMjY1 NGYwIDEwMDY0NAogICAgcmV0dXJuIDE7CiAgI2Vsc2UKICAgIGdkYl9hc3NlcnQgKDAgJiYgInNo b3VsZCBuZXZlciBiZSBjYWxsZWQgaWYgUHl0aG9uIGlzIG5vdCBlbmFibGVkIik7Ci1AQCAtOTY0 LDggKzEwNjcsNyBAQCB2YXJvYmpfZ2V0X251bV9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFy KQorQEAgLTk1NSw4ICsxMDY3LDcgQEAgdmFyb2JqX2dldF9udW1fY2hpbGRyZW4gKHN0cnVjdCB2 YXJvYmogKnZhcikKICAgIGlmICh2YXItPm51bV9jaGlsZHJlbiA9PSAtMSkKICAgICAgewogICAg ICAgIGludCBjaGFuZ2VkOwpAQCAtMjU5NTQsNyArMjY2MTcsNyBAQCBpbmRleCA0YTk0OTg4Li5m MjY1NGYwIDEwMDY0NAogIAl2YXItPm51bV9jaGlsZHJlbiA9IG51bWJlcl9vZl9jaGlsZHJlbiAo dmFyKTsKICAgICAgfQogIAotQEAgLTk3Niw3ICsxMDc4LDcgQEAgdmFyb2JqX2dldF9udW1fY2hp bGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKK0BAIC05NjcsNyArMTA3OCw3IEBAIHZhcm9ial9n ZXRfbnVtX2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2YXIpCiAgICAgdGhlIHJldHVybiBjb2Rl IGlzIHRoZSBudW1iZXIgb2Ygc3VjaCBjaGlsZHJlbiBvciAtMSBvbiBlcnJvciAqLwogIAogIFZF QyAodmFyb2JqX3ApKgpAQCAtMjU5NjMsMjIgKzI2NjI2LDI3IEBAIGluZGV4IDRhOTQ5ODguLmYy NjU0ZjAgMTAwNjQ0CiAgewogICAgc3RydWN0IHZhcm9iaiAqY2hpbGQ7CiAgICBjaGFyICpuYW1l OwotQEAgLTk4OCw4ICsxMDkwLDEyIEBAIHZhcm9ial9saXN0X2NoaWxkcmVuIChzdHJ1Y3QgdmFy b2JqICp2YXIpCitAQCAtOTc1LDEyICsxMDg2LDE2IEBAIHZhcm9ial9saXN0X2NoaWxkcmVuIChz dHJ1Y3QgdmFyb2JqICp2YXIpCisgCisgICB2YXItPmNoaWxkcmVuX3JlcXVlc3RlZCA9IDE7Cisg CistICBpZiAodmFyLT5wcmV0dHlfcHJpbnRlcgorKyAgaWYgKHZhci0+cHJldHR5X3ByaW50ZXIp CisrICAgIHsKICAgICAgICAvKiBUaGlzLCBpbiB0aGVvcnksIGNhbiByZXN1bHQgaW4gdGhlIG51 bWJlciBvZiBjaGlsZHJlbiBjaGFuZ2luZyB3aXRob3V0CiAgCSBmcm9udGVuZCBub3RpY2luZy4g IEJ1dCB3ZWxsLCBjYWxsaW5nIC12YXItbGlzdC1jaGlsZHJlbiBvbiB0aGUgc2FtZQogIAkgdmFy b2JqIHR3aWNlIGlzIG5vdCBzb21ldGhpbmcgYSBzYW5lIGZyb250ZW5kIHdvdWxkIGRvLiAgKi8K IC0gICAgICAmJiB1cGRhdGVfZHluYW1pY192YXJvYmpfY2hpbGRyZW4gKHZhciwgTlVMTCwgTlVM TCwgJmNoaWxkcmVuX2NoYW5nZWQpKQogLSAgICByZXR1cm4gdmFyLT5jaGlsZHJlbjsKLSsgICAg ICAmJiB1cGRhdGVfZHluYW1pY192YXJvYmpfY2hpbGRyZW4gKHZhciwgTlVMTCwgTlVMTCwgJmNo aWxkcmVuX2NoYW5nZWQsCi0rCQkJCQkgMCwgKnRvKSkKLSsgICAgeworKyAgICAgIHVwZGF0ZV9k eW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCAmY2hpbGRyZW5fY2hhbmdl ZCwKKysJCQkJICAgICAgMCwgKnRvKTsKICsgICAgICByZXN0cmljdF9yYW5nZSAodmFyLT5jaGls ZHJlbiwgZnJvbSwgdG8pOwogKyAgICAgIHJldHVybiB2YXItPmNoaWxkcmVuOwogKyAgICB9CiAg CiAgICBpZiAodmFyLT5udW1fY2hpbGRyZW4gPT0gLTEpCiAgICAgIHZhci0+bnVtX2NoaWxkcmVu ID0gbnVtYmVyX29mX2NoaWxkcmVuICh2YXIpOwotQEAgLTEwMTUsMTAgKzExMjEsMTAgQEAgdmFy b2JqX2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKK0BAIC0xMDA2LDEwICsxMTIx LDEwIEBAIHZhcm9ial9saXN0X2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2YXIpCiAgCSAgbmFt ZSA9IG5hbWVfb2ZfY2hpbGQgKHZhciwgaSk7CiAgCSAgZXhpc3RpbmcgPSBjcmVhdGVfY2hpbGQg KHZhciwgaSwgbmFtZSk7CiAgCSAgVkVDX3JlcGxhY2UgKHZhcm9ial9wLCB2YXItPmNoaWxkcmVu LCBpLCBleGlzdGluZyk7CkBAIC0yNTk5MCw3ICsyNjY1OCw3IEBAIGluZGV4IDRhOTQ5ODguLmYy NjU0ZjAgMTAwNjQ0CiAgICByZXR1cm4gdmFyLT5jaGlsZHJlbjsKICB9CiAgCi1AQCAtMTAyOSw3 ICsxMTM1LDYgQEAgdmFyb2JqX2FkZF9jaGlsZCAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBj aGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlKQorQEAgLTEwMjAsNyArMTEzNSw2IEBAIHZh cm9ial9hZGRfY2hpbGQgKHN0cnVjdCB2YXJvYmogKnZhciwgY29uc3QgY2hhciAqbmFtZSwgc3Ry dWN0IHZhbHVlICp2YWx1ZSkKICAJCQkJCVZFQ19sZW5ndGggKHZhcm9ial9wLCB2YXItPmNoaWxk cmVuKSwgCiAgCQkJCQluYW1lLCB2YWx1ZSk7CiAgICBWRUNfc2FmZV9wdXNoICh2YXJvYmpfcCwg dmFyLT5jaGlsZHJlbiwgdik7CkBAIC0yNTk5OCw3ICsyNjY2NiwyMCBAQCBpbmRleCA0YTk0OTg4 Li5mMjY1NGYwIDEwMDY0NAogICAgcmV0dXJuIHY7CiAgfQogIAotQEAgLTExNjgsNiArMTI3Mywx MTUgQEAgdmFyb2JqX3NldF92YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBjaGFyICpleHByZXNz aW9uKQorQEAgLTEwODIsNiArMTE5NiwxMiBAQCB2YXJvYmpfZ2V0X2F0dHJpYnV0ZXMgKHN0cnVj dCB2YXJvYmogKnZhcikKKyAgIHJldHVybiBhdHRyaWJ1dGVzOworIH0KKyAKKytpbnQKKyt2YXJv YmpfcHJldHR5X3ByaW50ZWRfcCAoc3RydWN0IHZhcm9iaiAqdmFyKQorK3sKKysgIHJldHVybiB2 YXItPnByZXR0eV9wcmludGVyICE9IE5VTEw7CisrfQorKworIGNoYXIgKgorIHZhcm9ial9nZXRf Zm9ybWF0dGVkX3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIsCisgCQkJICAgIGVudW0gdmFyb2Jq X2Rpc3BsYXlfZm9ybWF0cyBmb3JtYXQpCitAQCAtMTE1OSw2ICsxMjc5LDExNSBAQCB2YXJvYmpf c2V0X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGNoYXIgKmV4cHJlc3Npb24pCiAgICByZXR1 cm4gMTsKICB9CiAgCkBAIC0yNjExNCw3ICsyNjc5NSwyOCBAQCBpbmRleCA0YTk0OTg4Li5mMjY1 NGYwIDEwMDY0NAogIC8qIEFzc2lnbiBhIG5ldyB2YWx1ZSB0byBhIHZhcmlhYmxlIG9iamVjdC4g IElmIElOSVRJQUwgaXMgbm9uLXplcm8sCiAgICAgdGhpcyBpcyB0aGUgZmlyc3QgYXNzaWduZW1l bnQgYWZ0ZXIgdGhlIHZhcmlhYmxlIG9iamVjdCB3YXMganVzdAogICAgIGNyZWF0ZWQsIG9yIGNo YW5nZWQgdHlwZS4gIEluIHRoYXQgY2FzZSwganVzdCBhc3NpZ24gdGhlIHZhbHVlIAotQEAgLTEy NzQsNyArMTQ4OCw3IEBAIGluc3RhbGxfbmV3X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIHN0 cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBpbml0aWFsKQorQEAgLTExOTksMTAgKzE0MjgsNyBAQCBp bnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVl LCBpbnQgaW5pdGlhbCkKKyAgICAgIHRoYXQgaW4gQysrIGEgcmVmZXJlbmNlIGlzIG5vdCByZWJp bmRhYmxlLCBpdCBjYW5ub3QKKyAgICAgIG1lYW5pbmdmdWxseSBjaGFuZ2UuICBTbywgZ2V0IGhv bGQgb2YgdGhlIHJlYWwgdmFsdWUuICAqLworICAgaWYgKHZhbHVlKQorLSAgICB7CistICAgICAg dmFsdWUgPSBjb2VyY2VfcmVmICh2YWx1ZSk7CistICAgICAgcmVsZWFzZV92YWx1ZSAodmFsdWUp OworLSAgICB9CisrICAgIHZhbHVlID0gY29lcmNlX3JlZiAodmFsdWUpOworIAorICAgaWYgKHZh ci0+dHlwZSAmJiBUWVBFX0NPREUgKHZhci0+dHlwZSkgPT0gVFlQRV9DT0RFX1VOSU9OKQorICAg ICAvKiBGb3IgdW5pb25zLCB3ZSBuZWVkIHRvIGZldGNoIHRoZSB2YWx1ZSBpbXBsaWNpdGx5IGJl Y2F1c2UKK0BAIC0xMjQ5LDcgKzE0NzUsNyBAQCBpbnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZh cm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgaW5pdGlhbCkKKyAgICAgIHZhbHVl cy4gIERvbid0IGdldCBzdHJpbmcgcmVuZGVyaW5nIGlmIHRoZSB2YWx1ZSBpcworICAgICAgbGF6 eSAtLSBpZiBpdCBpcywgdGhlIGNvZGUgYWJvdmUgaGFzIGRlY2lkZWQgdGhhdCB0aGUgdmFsdWUK KyAgICAgIHNob3VsZCBub3QgYmUgZmV0Y2hlZC4gICovCistICBpZiAodmFsdWUgJiYgIXZhbHVl X2xhenkgKHZhbHVlKSkKKysgIGlmICh2YWx1ZSAmJiAhdmFsdWVfbGF6eSAodmFsdWUpICYmICF2 YXItPnByZXR0eV9wcmludGVyKQorICAgICBwcmludF92YWx1ZSA9IHZhbHVlX2dldF9wcmludF92 YWx1ZSAodmFsdWUsIHZhci0+Zm9ybWF0LCB2YXIpOworIAorICAgLyogSWYgdGhlIHR5cGUgaXMg Y2hhbmdlYWJsZSwgY29tcGFyZSB0aGUgb2xkIGFuZCB0aGUgbmV3IHZhbHVlcy4KK0BAIC0xMjY1 LDcgKzE0OTEsNyBAQCBpbnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1 Y3QgdmFsdWUgKnZhbHVlLCBpbnQgaW5pdGlhbCkKICAJewogIAkgIGNoYW5nZWQgPSAxOwogIAl9 CkBAIC0yNjEyMyw3ICsyNjgyNSwxNiBAQCBpbmRleCA0YTk0OTg4Li5mMjY1NGYwIDEwMDY0NAog IAl7CiAgCSAgLyogVHJ5IHRvIGNvbXBhcmUgdGhlIHZhbHVlcy4gIFRoYXQgcmVxdWlyZXMgdGhh dCBib3RoCiAgCSAgICAgdmFsdWVzIGFyZSBub24tbGF6eS4gICovCi1AQCAtMTMyOCw2NSArMTU0 MiwzMiBAQCBpbnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3QgdmFs dWUgKnZhbHVlLCBpbnQgaW5pdGlhbCkKK0BAIC0xMzEwLDYgKzE1MzYsOCBAQCBpbnN0YWxsX25l d192YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgaW5p dGlhbCkKKyAgIGlmICh2YXItPnZhbHVlICE9IE5VTEwgJiYgdmFyLT52YWx1ZSAhPSB2YWx1ZSkK KyAgICAgdmFsdWVfZnJlZSAodmFyLT52YWx1ZSk7CisgICB2YXItPnZhbHVlID0gdmFsdWU7Cisr ICBpZiAodmFsdWUgIT0gTlVMTCkKKysgICAgdmFsdWVfaW5jcmVmICh2YWx1ZSk7CisgICBpZiAo dmFyLT5wcmludF92YWx1ZSkKKyAgICAgeGZyZWUgKHZhci0+cHJpbnRfdmFsdWUpOworICAgdmFy LT5wcmludF92YWx1ZSA9IHByaW50X3ZhbHVlOworQEAgLTEzMTksNjUgKzE1NDcsMzIgQEAgaW5z dGFsbF9uZXdfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1ZSwg aW50IGluaXRpYWwpCiAgICAgIHZhci0+bm90X2ZldGNoZWQgPSAwOwogICAgdmFyLT51cGRhdGVk ID0gMDsKICAKQEAgLTI2MjA2LDcgKzI2OTE3LDcgQEAgaW5kZXggNGE5NDk4OC4uZjI2NTRmMCAx MDA2NDQKICB9CiAgCiAgdm9pZCAKLUBAIC0xNDA0LDMxICsxNTg1LDE5IEBAIHZhcm9ial9zZXRf dmlzdWFsaXplciAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICp2aXN1YWxpemVyKQor QEAgLTEzOTUsMzEgKzE1OTAsMTkgQEAgdmFyb2JqX3NldF92aXN1YWxpemVyIChzdHJ1Y3QgdmFy b2JqICp2YXIsIGNvbnN0IGNoYXIgKnZpc3VhbGl6ZXIpCiAgICBtYWtlX2NsZWFudXBfcHlfZGVj cmVmIChnbG9iYWxzKTsKICAKICAgIGNvbnN0cnVjdG9yID0gUHlSdW5fU3RyaW5nICh2aXN1YWxp emVyLCBQeV9ldmFsX2lucHV0LCBnbG9iYWxzLCBnbG9iYWxzKTsKQEAgLTI2MjE5LDkgKzI2OTMw LDkgQEAgaW5kZXggNGE5NDk4OC4uZjI2NTRmMCAxMDA2NDQKIC0gICAgfQogLSAgZWxzZQogLSAg ICBwcmV0dHlfcHJpbnRlciA9IGluc3RhbnRpYXRlX3ByZXR0eV9wcmludGVyIChjb25zdHJ1Y3Rv ciwgdmFyLT52YWx1ZSk7Ci0gCi0tICBQeV9YREVDUkVGIChjb25zdHJ1Y3Rvcik7CiAtCistICBQ eV9YREVDUkVGIChjb25zdHJ1Y3Rvcik7CisgCiAtICBpZiAoISBwcmV0dHlfcHJpbnRlcikKICsg IGlmICghIGNvbnN0cnVjdG9yKQogICAgICB7CkBAIC0yNjI0NCw3ICsyNjk1NSw3IEBAIGluZGV4 IDRhOTQ5ODguLmYyNjU0ZjAgMTAwNjQ0CiAgCiAgICBkb19jbGVhbnVwcyAoYmFja190byk7CiAg I2Vsc2UKLUBAIC0xNTQzLDcgKzE3MTIsNyBAQCBWRUModmFyb2JqX3VwZGF0ZV9yZXN1bHQpICp2 YXJvYmpfdXBkYXRlIChzdHJ1Y3QgdmFyb2JqICoqdmFycCwgaW50IGV4cGxpY2l0KQorQEAgLTE1 MzQsNyArMTcxNyw3IEBAIFZFQyh2YXJvYmpfdXBkYXRlX3Jlc3VsdCkgKnZhcm9ial91cGRhdGUg KHN0cnVjdCB2YXJvYmogKip2YXJwLCBpbnQgZXhwbGljaXQpCiAgCSBVSSwgc28gd2UgbmVlZCBu b3QgYm90aGVyIGdldHRpbmcgaXQuICAqLwogICAgICAgIGlmICh2LT5wcmV0dHlfcHJpbnRlcikK ICAJewpAQCAtMjYyNTMsNyArMjY5NjQsNyBAQCBpbmRleCA0YTk0OTg4Li5mMjY1NGYwIDEwMDY0 NAogIAkgIGludCBpLCBjaGlsZHJlbl9jaGFuZ2VkOwogIAkgIHZhcm9ial9wIHRtcDsKICAKLUBA IC0xNTU1LDI4ICsxNzI0LDI4IEBAIFZFQyh2YXJvYmpfdXBkYXRlX3Jlc3VsdCkgKnZhcm9ial91 cGRhdGUgKHN0cnVjdCB2YXJvYmogKip2YXJwLCBpbnQgZXhwbGljaXQpCitAQCAtMTU0NiwyOCAr MTcyOSwyOCBAQCBWRUModmFyb2JqX3VwZGF0ZV9yZXN1bHQpICp2YXJvYmpfdXBkYXRlIChzdHJ1 Y3QgdmFyb2JqICoqdmFycCwgaW50IGV4cGxpY2l0KQogIAogIAkgIC8qIElmIHVwZGF0ZV9keW5h bWljX3Zhcm9ial9jaGlsZHJlbiByZXR1cm5zIDAsIHRoZW4gd2UgaGF2ZQogIAkgICAgIGEgbm9u LWNvbmZvcm1pbmcgcHJldHR5LXByaW50ZXIsIHNvIHdlIHNraXAgaXQuICAqLwpAQCAtMjYyOTQs NyArMjcwMDUsNyBAQCBpbmRleCA0YTk0OTg4Li5mMjY1NGYwIDEwMDY0NAogIAkgICAgICBjb250 aW51ZTsKICAJICAgIH0KICAJfQotQEAgLTE4NjQsNyArMjAzMywxMiBAQCBuZXdfdmFyaWFibGUg KHZvaWQpCitAQCAtMTg1NSw3ICsyMDM4LDEyIEBAIG5ld192YXJpYWJsZSAodm9pZCkKICAgIHZh ci0+ZnJvemVuID0gMDsKICAgIHZhci0+bm90X2ZldGNoZWQgPSAwOwogICAgdmFyLT5jaGlsZHJl bl9yZXF1ZXN0ZWQgPSAwOwpAQCAtMjYzMDcsNyArMjcwMTgsNyBAQCBpbmRleCA0YTk0OTg4Li5m MjY1NGYwIDEwMDY0NAogIAogICAgcmV0dXJuIHZhcjsKICB9Ci1AQCAtMTg5NCw3ICsyMDY4LDEw IEBAIGZyZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhcikKK0BAIC0xODg1LDcgKzIwNzMs MTAgQEAgZnJlZV92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyKQogICAgaWYgKHZhci0+cHJl dHR5X3ByaW50ZXIpCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cCA9IHZh cm9ial9lbnN1cmVfcHl0aG9uX2VudiAodmFyKTsKQEAgLTI2MzE5LDcgKzI3MDMwLDcgQEAgaW5k ZXggNGE5NDk4OC4uZjI2NTRmMCAxMDA2NDQKICAgICAgICBkb19jbGVhbnVwcyAoY2xlYW51cCk7 CiAgICAgIH0KICAjZW5kaWYKLUBAIC0xOTI3LDYgKzIxMDQsMTggQEAgbWFrZV9jbGVhbnVwX2Zy ZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhcikKK0BAIC0xOTE4LDYgKzIxMDksMTggQEAg bWFrZV9jbGVhbnVwX2ZyZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhcikKICAgIHJldHVy biBtYWtlX2NsZWFudXAgKGRvX2ZyZWVfdmFyaWFibGVfY2xlYW51cCwgdmFyKTsKICB9CiAgCkBA IC0yNjMzOCw3ICsyNzA0OSw3IEBAIGluZGV4IDRhOTQ5ODguLmYyNjU0ZjAgMTAwNjQ0CiAgLyog VGhpcyByZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSB2YXJpYWJsZS4gSXQgYWxzbyBza2lwcyBwYXN0 IHR5cGVkZWZzCiAgICAgdG8gcmV0dXJuIHRoZSByZWFsIHR5cGUgb2YgdGhlIHZhcmlhYmxlLgog IAotQEAgLTIxNDEsNiArMjMzMCw4IEBAIHZhbHVlX29mX3Jvb3QgKHN0cnVjdCB2YXJvYmogKip2 YXJfaGFuZGxlLCBpbnQgKnR5cGVfY2hhbmdlZCkKK0BAIC0yMTMyLDYgKzIzMzUsOCBAQCB2YWx1 ZV9vZl9yb290IChzdHJ1Y3QgdmFyb2JqICoqdmFyX2hhbmRsZSwgaW50ICp0eXBlX2NoYW5nZWQp CiAgICAgICAgZWxzZQogIAl7CiAgCSAgdG1wX3Zhci0+b2JqX25hbWUgPSB4c3RyZHVwICh2YXIt Pm9ial9uYW1lKTsKQEAgLTI2MzQ3LDcgKzI3MDU4LDMyIEBAIGluZGV4IDRhOTQ5ODguLmYyNjU0 ZjAgMTAwNjQ0CiAgCSAgdmFyb2JqX2RlbGV0ZSAodmFyLCBOVUxMLCAwKTsKICAKICAJICBpbnN0 YWxsX3ZhcmlhYmxlICh0bXBfdmFyKTsKLUBAIC0zMTczLDYgKzMzNjQsMTkgQEAgamF2YV92YWx1 ZV9vZl92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHZhcm9ial9kaXNwbGF5X2Zv cm1hdHMgZm9ybWF0KQorQEAgLTIxNjYsNyArMjM3MSwxMSBAQCBzdGF0aWMgY2hhciAqCisgbXlf dmFsdWVfb2ZfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSB2YXJvYmpfZGlzcGxh eV9mb3JtYXRzIGZvcm1hdCkKKyB7CisgICBpZiAodmFyLT5yb290LT5pc192YWxpZCkKKy0gICAg cmV0dXJuICgqdmFyLT5yb290LT5sYW5nLT52YWx1ZV9vZl92YXJpYWJsZSkgKHZhciwgZm9ybWF0 KTsKKysgICAgeworKyAgICAgIGlmICh2YXItPnByZXR0eV9wcmludGVyKQorKwlyZXR1cm4gdmFs dWVfZ2V0X3ByaW50X3ZhbHVlICh2YXItPnZhbHVlLCB2YXItPmZvcm1hdCwgdmFyKTsKKysgICAg ICByZXR1cm4gKCp2YXItPnJvb3QtPmxhbmctPnZhbHVlX29mX3ZhcmlhYmxlKSAodmFyLCBmb3Jt YXQpOworKyAgICB9CisgICBlbHNlCisgICAgIHJldHVybiBOVUxMOworIH0KK0BAIC0yOTU0LDEw ICszMTYzLDcgQEAgY3BsdXNfZGVzY3JpYmVfY2hpbGQgKHN0cnVjdCB2YXJvYmogKnBhcmVudCwg aW50IGluZGV4LAorIAkgICAgKmNuYW1lID0geHN0cmR1cCAoVFlQRV9GSUVMRF9OQU1FICh0eXBl LCBpbmRleCkpOworIAorIAkgIGlmIChjdmFsdWUgJiYgdmFsdWUpCistCSAgICB7CistCSAgICAg ICpjdmFsdWUgPSB2YWx1ZV9jYXN0IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGluZGV4KSwgdmFs dWUpOworLQkgICAgICByZWxlYXNlX3ZhbHVlICgqY3ZhbHVlKTsKKy0JICAgIH0KKysJICAgICpj dmFsdWUgPSB2YWx1ZV9jYXN0IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGluZGV4KSwgdmFsdWUp OworIAorIAkgIGlmIChjdHlwZSkKKyAJICAgIHsKK0BAIC0zMTYzLDYgKzMzNjksMTkgQEAgamF2 YV92YWx1ZV9vZl92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHZhcm9ial9kaXNw bGF5X2Zvcm1hdHMgZm9ybWF0KQogICAgcmV0dXJuIGNwbHVzX3ZhbHVlX29mX3ZhcmlhYmxlICh2 YXIsIGZvcm1hdCk7CiAgfQogIApAQCAtMjYzNjcsNyArMjcxMDMsNyBAQCBpbmRleCA0YTk0OTg4 Li5mMjY1NGYwIDEwMDY0NAogIC8qIEl0ZXJhdGUgYWxsIHRoZSBleGlzdGluZyBfcm9vdF8gVkFS T0JKcyBhbmQgY2FsbCB0aGUgRlVOQyBjYWxsYmFjayBmb3IgdGhlbQogICAgIHdpdGggYW4gYXJi aXRyYXJ5IGNhbGxlciBzdXBwbGllZCBEQVRBIHBvaW50ZXIuICAqLwogIAotQEAgLTMxOTAsNiAr MzM5NCw0MyBAQCBhbGxfcm9vdF92YXJvYmpzICh2b2lkICgqZnVuYykgKHN0cnVjdCB2YXJvYmog KnZhciwgdm9pZCAqZGF0YSksIHZvaWQgKmRhdGEpCitAQCAtMzE4MCw2ICszMzk5LDQzIEBAIGFs bF9yb290X3Zhcm9ianMgKHZvaWQgKCpmdW5jKSAoc3RydWN0IHZhcm9iaiAqdmFyLCB2b2lkICpk YXRhKSwgdm9pZCAqZGF0YSkKICAgICAgICAoKmZ1bmMpICh2YXJfcm9vdC0+cm9vdHZhciwgZGF0 YSk7CiAgICAgIH0KICB9CkBAIC0yNjQxMiw3ICsyNzE0OCw3IEBAIGluZGV4IDRhOTQ5ODguLmYy NjU0ZjAgMTAwNjQ0CiAgZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVfdmFyb2JqICh2b2lkKTsKICB2 b2lkCiBkaWZmIC0tZ2l0IGEvZ2RiL3Zhcm9iai5oIGIvZ2RiL3Zhcm9iai5oCi1pbmRleCA3Mjk3 MjQzLi4wNzQ0Y2MzIDEwMDY0NAoraW5kZXggNzI5NzI0My4uZjQzYzU5MyAxMDA2NDQKIC0tLSBh L2dkYi92YXJvYmouaAogKysrIGIvZ2RiL3Zhcm9iai5oCiBAQCAtNzgsNiArNzgsMTIgQEAgdHlw ZWRlZiBzdHJ1Y3QgdmFyb2JqX3VwZGF0ZV9yZXN1bHRfdApAQCAtMjY0NTYsNyArMjcxOTIsNyBA QCBpbmRleCA3Mjk3MjQzLi4wNzQ0Y2MzIDEwMDY0NAogIAogIGV4dGVybiBjaGFyICp2YXJvYmpf Z2V0X3R5cGUgKHN0cnVjdCB2YXJvYmogKnZhcik7CiAgCi1AQCAtMTQ5LDYgKzE2NiwxMSBAQCBl eHRlcm4gaW50IHZhcm9ial9lZGl0YWJsZV9wIChzdHJ1Y3QgdmFyb2JqICp2YXIpOworQEAgLTE0 OSw2ICsxNjYsMTMgQEAgZXh0ZXJuIGludCB2YXJvYmpfZWRpdGFibGVfcCAoc3RydWN0IHZhcm9i aiAqdmFyKTsKICAKICBleHRlcm4gaW50IHZhcm9ial9mbG9hdGluZ19wIChzdHJ1Y3QgdmFyb2Jq ICp2YXIpOwogIApAQCAtMjY0NjcsNiArMjcyMDMsOCBAQCBpbmRleCA3Mjk3MjQzLi4wNzQ0Y2Mz IDEwMDY0NAogK2V4dGVybiB2b2lkIHZhcm9ial9lbmFibGVfcHJldHR5X3ByaW50aW5nICh2b2lk KTsKICsKICtleHRlcm4gaW50IHZhcm9ial9oYXNfbW9yZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBp bnQgdG8pOworKworK2V4dGVybiBpbnQgdmFyb2JqX3ByZXR0eV9wcmludGVkX3AgKHN0cnVjdCB2 YXJvYmogKnZhcik7CiAgCiAgI2VuZGlmIC8qIFZBUk9CSl9IICovCiBkaWZmIC0tZ2l0IGEvZ2Ri L3hjb2ZmcmVhZC5jIGIvZ2RiL3hjb2ZmcmVhZC5jCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9n ZGIuc3BlYwppbmRleCA3NTQzNTQ2Li42ODE1ZTI1IDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysg Yi9nZGIuc3BlYwpAQCAtMTAsMTEgKzEwLDExIEBAIE5hbWU6IGdkYiV7P193aXRoX2RlYnVnOi1k ZWJ1Z30KICMgU2V0IHZlcnNpb24gdG8gY29udGVudHMgb2YgZ2RiL3ZlcnNpb24uaW4uCiAjIE5P VEU6IHRoZSBGU0YgZ2RiIHZlcnNpb25zIGFyZSBudW1iZXJlZCBOLk0gZm9yIG9mZmljaWFsIHJl bGVhc2VzLCBsaWtlIDYuMyAKICMgYW5kLCBzaW5jZSBKYW51YXJ5IDIwMDUsIFguWS5aLmRhdGUg Zm9yIGRhaWx5IHNuYXBzaG90cywgbGlrZSA2LjMuNTAuMjAwNTAxMTIgIyAoZGFpbHkgc25hcHNo b3QgZnJvbSBtYWlsaW5lKSwgb3IgNi4zLjAuMjAwNDAxMTIgKGhlYWQgb2YgdGhlIHJlbGVhc2Ug YnJhbmNoKS4KLVZlcnNpb246IDYuOC41MC4yMDA5MDgxMQorVmVyc2lvbjogNi44LjUwLjIwMDkw ODE4CiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBu dW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFt ZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0 aW5nLgotUmVsZWFzZTogNCV7P193aXRoX3Vwc3RyZWFtOi51cHN0cmVhbX0lez9kaXN0fQorUmVs ZWFzZTogMSV7P193aXRoX3Vwc3RyZWFtOi51cHN0cmVhbX0lez9kaXN0fQogCiBMaWNlbnNlOiBH UEx2MysKIEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTIxOCw4ICsyMTgsOCBAQCBQ YXRjaDIyOTogZ2RiLTYuMy1iejE0MDUzMi1wcGMtdW53aW5kaW5nLXRlc3QucGF0Y2gKICMgVGVz dGNhc2UgZm9yIGV4ZWMoKSBmcm9tIHRocmVhZGVkIHByb2dyYW0gKEJaIDIwMjY4OSkuCiBQYXRj aDIzMTogZ2RiLTYuMy1iejIwMjY4OS1leGVjLWZyb20tcHRocmVhZC10ZXN0LnBhdGNoCiAKLSMg QmFja3BvcnRlZCBwb3N0IGdkYi02LjguNTAuMjAwOTA4MTEgc25hcHNob3QgZml4dXBzLgotI1Bh dGNoMjMyOiBnZGItNi44LjUwLjIwMDkwODExLXVwc3RyZWFtLnBhdGNoCisjIEJhY2twb3J0ZWQg cG9zdCBnZGItNi44LjUwLjIwMDkwODE4IHNuYXBzaG90IGZpeHVwcy4KKyNQYXRjaDIzMjogZ2Ri LTYuOC41MC4yMDA5MDgxOC11cHN0cmVhbS5wYXRjaAogCiAjIFRlc3RjYXNlIGZvciBQUEMgUG93 ZXI2L0RGUCBpbnN0cnVjdGlvbnMgZGlzYXNzZW1ibHkgKEJaIDIzMDAwMCkuCiBQYXRjaDIzNDog Z2RiLTYuNi1iejIzMDAwMC1wb3dlcjYtZGlzYXNzZW1ibHktdGVzdC5wYXRjaApAQCAtMjY1LDEx ICsyNjUsNiBAQCBQYXRjaDI3MTogZ2RiLTYuNS1iejI0Mzg0NS1zdGFsZS10ZXN0aW5nLXpvbWJp ZS10ZXN0LnBhdGNoCiBQYXRjaDI3NDogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAogUGF0 Y2gzNTM6IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBhdGNoCiAKLSMgRml4IGhhcmR3YXJl IHdhdGNocG9pbnRzIGFmdGVyIGluZmVyaW9yIGZvcmtzLW9mZiBzb21lIHByb2Nlc3MuCi0jIFRo cmVhZGVkIGBzZXQgZm9sbG93LWZvcmstbW9kZSBjaGlsZCcgc3RpbGwgbm90IGZpeGVkIHRoZXJl LCBnbGliYyBmaXhlcyByZXFkLgotIyBgc2V0IGRldGFjaC1vbi1mb3JrIG9mZicgbm90IGZpeGVk IHRoZXJlIGluIGdlbmVyYWwgLSBpdCBhbHJlYWR5IGFzc2VydC1mYWlscy4KLVBhdGNoMjgwOiBn ZGItNi42LW11bHRpZm9yay1kZWJ1Z3JlZy5wYXRjaAotCiAjIEZpeCBkaXNwbGF5aW5nIG9mIG51 bWVyaWMgY2hhciBhcnJheXMgYXMgc3RyaW5ncyAoQlogMjI0MTI4KS4KIFBhdGNoMjgyOiBnZGIt Ni43LWNoYXJzaWduLXRlc3QucGF0Y2gKIApAQCAtNTIxLDcgKzUxNiw2IEBAIHJtIC1mIGdkYi9q di1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKICVwYXRjaDI3 MSAtcDEKICVwYXRjaDI3NCAtcDEKICVwYXRjaDM1MyAtcDEKLSVwYXRjaDI4MCAtcDEKICVwYXRj aDI4MiAtcDEKICVwYXRjaDI4NCAtcDEKICVwYXRjaDI4NyAtcDEKQEAgLTgyNyw2ICs4MjEsMTAg QEAgZmkKICVlbmRpZgogCiAlY2hhbmdlbG9nCisqIFR1ZSBBdWcgMTggMjAwOSBKYW4gS3JhdG9j aHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA2LjguNTAuMjAwOTA4MTgtMQorLSBV cGdyYWRlIHRvIHRoZSBGU0YgR0RCIGdkYi02LjguNTAgc25hcHNob3Q6IDYuOC41MC4yMDA5MDgx OAorLSBhcmNoZXItamFua3JhdG9jaHZpbC1mZWRvcmExMiBjb21taXQ6IDVlMGQxY2M3NGYxMTkz OTFhMmMzYWUyNWVmNTc0OWZjMjg2NzRmMDYKKwogKiBXZWQgQXVnIDEyIDIwMDkgSmFuIEtyYXRv Y2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNi44LjUwLjIwMDkwODExLTQKIC0g Rml4IG1pbm9yIHJlZ3Jlc3Npb25zIGludHJvZHVjZWQgYnkgdGhlIHJlYmFzZSBmcm9tIEYtMTEg KDYuOC41MC4yMDA5MDMwMikuCiAKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRl eCBmZmJhY2MyLi42ZWY2YjFlIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAg LTEgKzEgQEAKLWYzZTBjZmNlMTI3OTgyZDBmMTQ3NzcxODhkOGZhNGM1ICBnZGItNi44LjUwLjIw MDkwODExLnRhci5iejIKKzYzZDg0OGNmZGQ5YTQzYTliMmI0MTJhMjIwZDAwMzY2ICBnZGItNi44 LjUwLjIwMDkwODE4LnRhci5iejIK