From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Rebase to FSF GDB 7.10.50.20151027 (trunk snapshot). Date: Sat, 27 Jun 2026 23:57:18 GMT Message-ID: <178260463830.1.8669525571953673307.rpms-gdb-23f398e61a85@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 23f398e61a85e64e6d7f6288e7ae000db543885f QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogMjNmMzk4ZTYxYTg1ZTY0ZTZkN2Y2Mjg4ZTdh ZTAwMGRiNTQzODg1ZgpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxNS0xMS0wM1QyMjoyODozNiswMTowMApTdGF0cyAgOiArMTc5 My8tMzY3OCBpbiAyNSBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qu b3JnL3JwbXMvZ2RiL2MvMjNmMzk4ZTYxYTg1ZTY0ZTZkN2Y2Mjg4ZTdhZTAwMGRiNTQzODg1Zj9i cmFuY2g9Z2RiLTE3LjItcmViYXNlLWY0NAoKTG9nOgpSZWJhc2UgdG8gRlNGIEdEQiA3LjEwLjUw LjIwMTUxMDI3ICh0cnVuayBzbmFwc2hvdCkuCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUg Yi8uZ2l0aWdub3JlCmluZGV4IGZkYmY0ZGQuLmQ3MzJmZDQgMTAwNjQ0Ci0tLSBhLy5naXRpZ25v cmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwyICsxLDIgQEAKIC9nZGItbGlic3RkYysrLXYzLXB5 dGhvbi1yMjI1NTIxLnRhci54egotL2dkYi03LjEwLnRhci54egorL2dkYi03LjEwLjUwLjIwMTUx MDI3LnRhci54egoKZGlmZiAtLWdpdCBhL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNo IGIvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKaW5kZXggOGVlYjU5Yy4uZWY4Y2Y1 MSAxMDA2NDQKLS0tIGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKKysrIGIvZ2Ri LTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKQEAgLTExLDEwICsxMSwxMCBAQAogCiAgICAg ICAgICogZ2RiLnRleGluZm8gKEZpbGUgT3B0aW9ucyk6IERvY3VtZW50IC0tcmVhZG5ldmVyLgog Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL2dkYi50ZXhpbmZvCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2RvYy9nZGIudGV4aW5mbwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTUtMDUtMzEg MTY6MzQ6NTguNDM2Mzc5NjYzICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9j L2dkYi50ZXhpbmZvCTIwMTUtMDUtMzEgMTY6MzU6MDMuNDUyNDE2MzgxICswMjAwCistLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTUtMTAtMjIgMjI6 MTY6NTAuNDgzNDgyMjg4ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2RvYy9n ZGIudGV4aW5mbwkyMDE1LTEwLTIyIDIyOjI4OjIyLjA0MjU1NDE0MiArMDIwMAogQEAgLTEwMzIs NiArMTAzMiwxMiBAQCBSZWFkIGVhY2ggc3ltYm9sIGZpbGUncyBlbnRpcmUgc3ltYm9sIHRhCiAg dGhlIGRlZmF1bHQsIHdoaWNoIGlzIHRvIHJlYWQgaXQgaW5jcmVtZW50YWxseSBhcyBpdCBpcyBu ZWVkZWQuCiAgVGhpcyBtYWtlcyBzdGFydHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1dHVyZSBvcGVy YXRpb25zIGZhc3Rlci4KQEAgLTI4LDEwICsyOCwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGVuZCB0YWJsZQogIAogIEBub2RlIE1vZGUgT3B0 aW9ucwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21haW4uYworSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDIyL2dkYi9tYWluLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL21haW4uYwkyMDE1LTA1LTMxIDE2OjM0OjU4LjQzOTM3OTY4NSArMDIw MAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21haW4uYwkyMDE1LTA1LTMxIDE2OjM1OjIw LjU0NzU0MTUxOCArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL21haW4u YwkyMDE1LTEwLTIyIDIyOjE2OjUwLjQ4NTQ4MjI5OSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIw MTUxMDIyL2dkYi9tYWluLmMJMjAxNS0xMC0yMiAyMjoyODoyMi4wNDI1NTQxNDIgKzAyMDAKIEBA IC02MDQsNiArNjA0LDcgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgICAgICB7InR1 aSIsIG5vX2FyZ3VtZW50LCAwLCBPUFRfVFVJfSwKICAgICAgICB7ImRieCIsIG5vX2FyZ3VtZW50 LCAmZGJ4X2NvbW1hbmRzLCAxfSwKQEAgLTQ4LDEwICs0OCwxMCBAQCBJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvbWFpbi5jCiAgICAtLXdyaXRlICAgICAgICAgICAgU2V0IHdyaXRpbmcg aW50byBleGVjdXRhYmxlIGFuZCBjb3JlIGZpbGVzLlxuXG5cCiAgIiksIHN0cmVhbSk7CiAgICBm cHV0c191bmZpbHRlcmVkIChfKCJcCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc3lt ZmlsZS5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3N5bWZpbGUuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvc3ltZmlsZS5jCTIwMTUtMDUt MzEgMTY6MzQ6NTguNDQwMzc5NjkyICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv c3ltZmlsZS5jCTIwMTUtMDUtMzEgMTY6MzU6MDMuNDU0NDE2Mzk1ICswMjAwCistLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvc3ltZmlsZS5jCTIwMTUtMTAtMjIgMjI6MTY6NTAuNDg2 NDgyMzA1ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3N5bWZpbGUuYwkyMDE1 LTEwLTIyIDIyOjI4OjIyLjA0MzU1NDE0OCArMDIwMAogQEAgLTgwLDYgKzgwLDcgQEAgc3RhdGlj IHZvaWQgY2xlYXJfc3ltdGFiX3VzZXJzX2NsZWFudXAgKAogIAogIC8qIEdsb2JhbCB2YXJpYWJs ZXMgb3duZWQgYnkgdGhpcyBmaWxlLiAgKi8KQEAgLTYwLDMzICs2MCwzMyBAQCBJbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvc3ltZmlsZS5jCiAgCiAgLyogRnVuY3Rpb25zIHRoaXMgZmls ZSBkZWZpbmVzLiAgKi8KICAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJy ZWFkLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvZHdhcmYycmVhZC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAx NS0wNS0zMSAxNjozNDo1OC40NDYzNzk3MzYgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0wNS0zMSAxNjozNTowMy40NTk0MTY0MzIgKzAyMDAKLUBA IC02OSw2ICs2OSw3IEBACi0gI2luY2x1ZGUgInNvdXJjZS5oIgorLS0tIGdkYi03LjEwLjUwLjIw MTUxMDIyLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTEwLTIyIDIyOjI4OjIyLjA0NjU1NDE2 NSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0x MC0yMiAyMjoyOToxNy42NjQ4ODE2NDIgKzAyMDAKK0BAIC03MCw2ICs3MCw3IEBACiAgI2luY2x1 ZGUgImZpbGVzdHVmZi5oIgogICNpbmNsdWRlICJidWlsZC1pZC5oIgorICNpbmNsdWRlICJuYW1l c3BhY2UuaCIKICsjaW5jbHVkZSAidG9wLmgiCiAgCiAgI2luY2x1ZGUgPGZjbnRsLmg+CiAgI2lu Y2x1ZGUgPHN5cy90eXBlcy5oPgotQEAgLTIwNTAsNyArMjA1MSw4IEBAIGR3YXJmMl9oYXNfaW5m byAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKK0BAIC0yMDU5LDcgKzIwNjAsOCBAQCBkd2FyZjJf aGFzX2luZm8gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAodm9pZCAqKSBuYW1lcyk7CiAgICAgICAgZHdhcmYyX3Blcl9vYmpmaWxlLT5vYmpm aWxlID0gb2JqZmlsZTsKICAgICAgfQogLSAgcmV0dXJuICghZHdhcmYyX3Blcl9vYmpmaWxlLT5p bmZvLmlzX3ZpcnR1YWwKICsgIHJldHVybiAhcmVhZG5ldmVyX3N5bWJvbF9maWxlcyAmJgogKwkg KCFkd2FyZjJfcGVyX29iamZpbGUtPmluZm8uaXNfdmlydHVhbAotIAkgICYmIGR3YXJmMl9wZXJf b2JqZmlsZS0+aW5mby5zLmFzZWN0aW9uICE9IE5VTEwKKyAJICAmJiBkd2FyZjJfcGVyX29iamZp bGUtPmluZm8ucy5zZWN0aW9uICE9IE5VTEwKICAJICAmJiAhZHdhcmYyX3Blcl9vYmpmaWxlLT5h YmJyZXYuaXNfdmlydHVhbAotIAkgICYmIGR3YXJmMl9wZXJfb2JqZmlsZS0+YWJicmV2LnMuYXNl Y3Rpb24gIT0gTlVMTCk7Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdG9wLmgKKyAJ ICAmJiBkd2FyZjJfcGVyX29iamZpbGUtPmFiYnJldi5zLnNlY3Rpb24gIT0gTlVMTCk7CitJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3RvcC5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OS41MC4yMDE1MDUyMC5vcmlnL2dkYi90b3AuaAkyMDE1LTA1LTMxIDE2OjM0OjU4LjQ0ODM3OTc1 MSArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RvcC5oCTIwMTUtMDUtMzEgMTY6 MzU6MDMuNDU5NDE2NDMyICswMjAwCi1AQCAtNjcsNiArNjcsNyBAQCBleHRlcm4gdm9pZCBzZXRf cHJvbXB0IChjb25zdCBjaGFyICpzKTsKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dk Yi90b3AuaAkyMDE1LTEwLTIyIDIyOjE2OjUwLjQ5MDQ4MjMyOSArMDIwMAorKysrIGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi90b3AuaAkyMDE1LTEwLTIyIDIyOjI4OjIyLjA0NzU1NDE3MSArMDIw MAorQEAgLTc0LDYgKzc0LDcgQEAgZXh0ZXJuIGludCBnZGJfaW5fc2Vjb25kYXJ5X3Byb21wdF9w ICh2bwogIAogIC8qIEZyb20gcmFuZG9tIHBsYWNlcy4gICovCiAgZXh0ZXJuIGludCByZWFkbm93 X3N5bWJvbF9maWxlczsKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNo IGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAppbmRleCBkYzA1YzM5Li42NzljMGY1IDEw MDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02LjYtYnVp bGRpZC1sb2NhdGUucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvY29yZWxvdy5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2NvcmVs b3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvY29yZWxv dy5jCTIwMTUtMDctMDkgMjI6MDU6MjAuOTg4MDQ0MzEyICswMjAwCi0rKysgZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvY29yZWxvdy5jCTIwMTUtMDctMDkgMjI6MDU6NDIuMDU3MjIyNzIyICswMjAw CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvY29yZWxvdy5jCTIwMTUtMTAtMjIg MjI6MzA6NDYuMjI2NDAzMDg3ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2Nv cmVsb3cuYwkyMDE1LTEwLTIyIDIyOjMwOjQ5LjI2NjQyMDk4NiArMDIwMAogQEAgLTQ1LDYgKzQ1 LDEwIEBACiAgI2luY2x1ZGUgImdkYl9iZmQuaCIKICAjaW5jbHVkZSAiY29tcGxldGVyLmgiCkBA IC05NCwxMSArOTQsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2NvcmVsb3cu YwogKwkJCSAgIE5VTEwsIE5VTEwsIE5VTEwsCiArCQkJICAgJnNldGxpc3QsICZzaG93bGlzdCk7 CiAgfQotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTA3 LTA5IDIyOjA1OjIwLjk4ODA0NDMxMiArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L2RvYy9nZGIudGV4aW5mbwkyMDE1LTA3LTA5IDIyOjA1OjQyLjA2NzIyMjgwNiArMDIwMAotQEAg LTE4MzA0LDYgKzE4MzA0LDI3IEBAIGluZm9ybWF0aW9uIGZpbGVzLgorLS0tIGdkYi03LjEwLjUw LjIwMTUxMDIyLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTEwLTIyIDIyOjMwOjQ2LjIz MzQwMzEyOCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9kb2MvZ2RiLnRleGlu Zm8JMjAxNS0xMC0yMiAyMjozMDo0OS4yNzE0MjEwMTUgKzAyMDAKK0BAIC0xODQ5NSw2ICsxODQ5 NSwyNyBAQCBpbmZvcm1hdGlvbiBmaWxlcy4KICAKICBAZW5kIHRhYmxlCiAgCkBAIC0xMjYsMTAg KzEyNiwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZG9jL2dkYi50ZXhpbmZv CiAgQGNpbmRleCBAY29kZXsuZ251X2RlYnVnbGlua30gc2VjdGlvbnMKICBAY2luZGV4IGRlYnVn IGxpbmsgc2VjdGlvbnMKICBBIGRlYnVnIGxpbmsgaXMgYSBzcGVjaWFsIHNlY3Rpb24gb2YgdGhl IGV4ZWN1dGFibGUgZmlsZSBuYW1lZAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3Nv bGliLXN2cjQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9zb2xpYi1zdnI0LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3NvbGliLXN2cjQu YwkyMDE1LTA3LTA5IDIyOjA1OjIwLjk4ODA0NDMxMiArMDIwMAotKysrIGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL3NvbGliLXN2cjQuYwkyMDE1LTA3LTA5IDIyOjA1OjQyLjA2ODIyMjgxNSArMDIw MAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDE1LTEw LTIyIDIyOjMwOjQ2LjIzNTQwMzE0MCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dk Yi9zb2xpYi1zdnI0LmMJMjAxNS0xMC0yMiAyMjozMDo0OS4yNzI0MjEwMjEgKzAyMDAKIEBAIC00 NSw2ICs0NSw3IEBACiAgI2luY2x1ZGUgImF1eHYuaCIKICAjaW5jbHVkZSAiZ2RiX2JmZC5oIgpA QCAtMTM4LDcgKzEzOCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9zb2xpYi1z dnI0LmMKICAKICBzdGF0aWMgc3RydWN0IGxpbmtfbWFwX29mZnNldHMgKnN2cjRfZmV0Y2hfbGlu a19tYXBfb2Zmc2V0cyAodm9pZCk7CiAgc3RhdGljIGludCBzdnI0X2hhdmVfbGlua19tYXBfb2Zm c2V0cyAodm9pZCk7Ci1AQCAtMTM3OSw5ICsxMzgwLDUyIEBAIHN2cjRfcmVhZF9zb19saXN0IChD T1JFX0FERFIgbG0sIENPUkVfQUQKK0BAIC0xNDE2LDkgKzE0MTcsNTIgQEAgc3ZyNF9yZWFkX3Nv X2xpc3QgKENPUkVfQUREUiBsbSwgQ09SRV9BRAogIAkgIGNvbnRpbnVlOwogIAl9CiAgCkBAIC0x OTQsMTEgKzE5NCwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvc29saWItc3Zy NC5jCiAgICAgICAgeGZyZWUgKGJ1ZmZlcik7CiAgCiAgICAgICAgLyogSWYgdGhpcyBlbnRyeSBo YXMgbm8gbmFtZSwgb3IgaXRzIG5hbWUgbWF0Y2hlcyB0aGUgbmFtZQotSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2VsZnJlYWQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dk Yi9lbGZyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2Ri L2VsZnJlYWQuYwkyMDE1LTA3LTA5IDIyOjA1OjIwLjk4ODA0NDMxMiArMDIwMAotKysrIGdkYi03 LjkuOTAuMjAxNTA3MDkvZ2RiL2VsZnJlYWQuYwkyMDE1LTA3LTA5IDIyOjA1OjQyLjA2ODIyMjgx NSArMDIwMAotQEAgLTEyNTAsOSArMTI1MCwxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvZWxmcmVh ZC5jCTIwMTUtMTAtMjIgMjI6MzA6NDYuMjM1NDAzMTQwICswMjAwCisrKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjIvZ2RiL2VsZnJlYWQuYwkyMDE1LTEwLTIyIDIyOjMwOjQ5LjI3MjQyMTAyMSArMDIw MAorQEAgLTEyNTksOSArMTI1OSwxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsCiAgCSAgICYmIG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGUgPT0gTlVM TAogIAkgICAmJiBvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rID09IE5V TEwpCiAgICAgIHsKQEAgLTIxMSw3ICsyMTEsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcw OS9nZGIvZWxmcmVhZC5jCiAgCiAgICAgICAgaWYgKGRlYnVnZmlsZSA9PSBOVUxMKQogIAlkZWJ1 Z2ZpbGUgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfZGVidWdsaW5rIChvYmpmaWxlKTsK LUBAIC0xMjY2LDYgKzEyNjcsMTIgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUg Km9iamZpbAorQEAgLTEyNzUsNiArMTI3NiwxMiBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsCiAgCSAgc3ltYm9sX2ZpbGVfYWRkX3NlcGFyYXRlIChhYmZkLCBkZWJ1 Z2ZpbGUsIHN5bWZpbGVfZmxhZ3MsIG9iamZpbGUpOwogIAkgIGRvX2NsZWFudXBzIChjbGVhbnVw KTsKICAJfQpAQCAtMjI0LDEwICsyMjQsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2VsZnJlYWQuYwogICAgICB9CiAgfQogIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL3N5bWZpbGUuaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9zeW1maWxlLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3N5bWZpbGUuaAky MDE1LTA3LTA5IDIyOjA1OjIwLjk4ODA0NDMxMiArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL3N5bWZpbGUuaAkyMDE1LTA3LTA5IDIyOjA1OjQyLjA2ODIyMjgxNSArMDIwMAorLS0t IGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDE1LTEwLTIyIDIyOjMw OjQ2LjIzNjQwMzE0NSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9zeW1maWxl LmgJMjAxNS0xMC0yMiAyMjozMDo0OS4yNzM0MjEwMjcgKzAyMDAKIEBAIC01ODQsNiArNTg0LDEw IEBAIHZvaWQgZXhwYW5kX3N5bXRhYnNfbWF0Y2hpbmcgKGV4cGFuZF9zeW0KICB2b2lkIG1hcF9z eW1ib2xfZmlsZW5hbWVzIChzeW1ib2xfZmlsZW5hbWVfZnR5cGUgKmZ1biwgdm9pZCAqZGF0YSwK ICAJCQkgICBpbnQgbmVlZF9mdWxsbmFtZSk7CkBAIC0yMzksMTEgKzIzOSwxMSBAQCBJbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvc3ltZmlsZS5oCiAgLyogRnJvbSBkd2FyZjJyZWFkLmMg Ki8KICAKICAvKiBOYW1lcyBmb3IgYSBkd2FyZjIgZGVidWdnaW5nIHNlY3Rpb24uICBUaGUgZmll bGQgTk9STUFMIGlzIHRoZSBub3JtYWwKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90 ZXN0c3VpdGUvbGliL2dkYi5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVz dHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5v cmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNS0wNy0wOSAyMjowNToyMC45ODgwNDQz MTIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5l eHAJMjAxNS0wNy0wOSAyMjowNTo0Mi4wNzAyMjI4MzIgKzAyMDAKLUBAIC0xNTczLDYgKzE1NzMs MTYgQEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0geworLS0tIGdkYi03LjEwLjUwLjIwMTUx MDIyLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE1LTEwLTIyIDIyOjMwOjQ2LjIz NzQwMzE1MSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvbGli L2dkYi5leHAJMjAxNS0xMC0yMiAyMjozMDo0OS4yNzM0MjEwMjcgKzAyMDAKK0BAIC0xNjQwLDYg KzE2NDAsMTYgQEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0gewogIAkgICAgd2FybmluZyAi Q291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKICAJfQogICAgICB9CkBAIC0yNjAsMTEgKzI2 MCwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCiAgICAgIHJldHVybiAwCiAgfQogIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Mi9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE1 LTA3LTA5IDIyOjA1OjIwLjk4ODA0NDMxMiArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNS0wNy0wOSAyMjowNTo0Mi4wNzAy MjI4MzIgKzAyMDAKLUBAIC0yMTQsNiArMjE0LDE2IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3Rh cnQgeyBhcmdzIH0geworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNS0xMC0yMiAyMjozMDo0OS4yNzQ0MjEwMzMgKzAyMDAK KysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4 cAkyMDE1LTEwLTIyIDIyOjMxOjI0Ljg2OTYzMTU3NSArMDIwMAorQEAgLTIwNCw2ICsyMDQsMTYg QEAgcHJvYyBkZWZhdWx0X21pX2dkYl9zdGFydCB7IGFyZ3MgfSB7CiAgCSAgICB3YXJuaW5nICJD b3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgogIAl9CiAgICAgIH0KQEAgLTI3OCwxNCArMjc4 LDE0IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1 cHBvcnQuZXhwCiArCSAgICB3YXJuaW5nICJDb3VsZCBub3QgZGlzYWJsZSB0aGUgbWlzc2luZyBk ZWJ1ZyBpbmZvcyB3YXJuaW5ncy4uIgogKwl9CiArICAgIH0KLSAgICAgIyBJZiBhbGxvd2luZyB0 aGUgaW5mZXJpb3IgdG8gaGF2ZSBpdHMgb3duIFBUWSB0aGVuIGFzc2lnbiB0aGUgaW5mZXJpb3IK LSAgICAgIyBpdHMgb3duIHRlcm1pbmFsIGRldmljZSBoZXJlLgorIAorICAgICAjIENyZWF0ZSB0 aGUgbmV3IFBUWSBmb3IgdGhlIGluZmVyaW9yIHByb2Nlc3MuCiAgICAgIGlmIHsgJHNlcGFyYXRl X2luZmVyaW9yX3B0eSB9IHsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9vYmpmaWxl cy5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL29iamZpbGVzLmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL29iamZpbGVzLmgJMjAxNS0wNy0w OSAyMjowNToyMC45ODgwNDQzMTIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9v YmpmaWxlcy5oCTIwMTUtMDctMDkgMjI6MDU6NDIuMDcxMjIyODQwICswMjAwCi1AQCAtNDU5LDYg KzQ1OSwxMCBAQCBzdHJ1Y3Qgb2JqZmlsZQorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcv Z2RiL29iamZpbGVzLmgJMjAxNS0xMC0yMiAyMjozMDo0Ni4yMzg0MDMxNTcgKzAyMDAKKysrKyBn ZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvb2JqZmlsZXMuaAkyMDE1LTEwLTIyIDIyOjMwOjQ5LjI3 NDQyMTAzMyArMDIwMAorQEAgLTQ4OSw2ICs0ODksMTAgQEAgc3RydWN0IG9iamZpbGUKICAKICAj ZGVmaW5lIE9CSkZfTk9UX0ZJTEVOQU1FICgxIDw8IDYpCiAgCkBAIC0yOTYsMTAgKzI5NiwxMCBA QCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvb2JqZmlsZXMuaAogIC8qIERlY2xhcmF0 aW9ucyBmb3IgZnVuY3Rpb25zIGRlZmluZWQgaW4gb2JqZmlsZXMuYyAqLwogIAogIGV4dGVybiBz dHJ1Y3Qgb2JqZmlsZSAqYWxsb2NhdGVfb2JqZmlsZSAoYmZkICosIGNvbnN0IGNoYXIgKm5hbWUs IGludCk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2NvcmVmaWxlLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvY29yZWZpbGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcw OS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTUtMDctMDkgMjI6 MDU6MjAuOTg4MDQ0MzEyICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDE1LTA3LTA5IDIyOjA1OjQyLjA3MTIyMjg0MCAr MDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9jb3JlZmlsZS5leHAJMjAxNS0xMC0yMiAyMjozMDo0Ni4yMzg0MDMxNTcgKzAyMDAKKysrKyBn ZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAky MDE1LTEwLTIyIDIyOjMwOjQ5LjI3NDQyMTAzMyArMDIwMAogQEAgLTI5MywzICsyOTMsMzMgQEAg Z2RiX3Rlc3RfbXVsdGlwbGUgImNvcmUtZmlsZSAkY29yZWZpbGUiCiAgCXBhc3MgJHRlc3QKICAg ICAgfQpAQCAtMzM0LDEwICszMzQsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKICsgICAgZ2RiX3Rlc3QgImluZm8gZmls ZXMiICJMb2NhbCBleGVjIGZpbGU6XHJcblxbIFx0XF0qYFtzdHJpbmdfdG9fcmVnZXhwICRkZWJ1 Z2Rpci8kYnVpbGRpZF0nLCBmaWxlIHR5cGUgLioiCiArICAgIHBhc3MgJHdob2xldGVzdAogK30K LUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9idWlsZC1pZC5jCitJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjIvZ2RiL2J1aWxkLWlkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45Ljkw LjIwMTUwNzA5Lm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNS0wNy0wOSAyMjowNToyMC45ODgwNDQz MTIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9idWlsZC1pZC5jCTIwMTUtMDct MDkgMjI6MTk6MzUuMDIyOTU3MDA5ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3Jp Zy9nZGIvYnVpbGQtaWQuYwkyMDE1LTEwLTIyIDIyOjMwOjQ2LjIzODQwMzE1NyArMDIwMAorKysr IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9idWlsZC1pZC5jCTIwMTUtMTAtMjIgMjI6MzQ6MzYu NTc5Nzc0NjYyICswMjAwCiBAQCAtMjYsMTEgKzI2LDY3IEBACiAgI2luY2x1ZGUgIm9iamZpbGVz LmgiCiAgI2luY2x1ZGUgImZpbGVuYW1lcy5oIgpAQCAtNzY1LDcgKzc2NSw3IEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9idWlsZC1pZC5jCiAgCiAgICBpZiAoZm91bmQgPT0gTlVM TCkKICAgICAgd2FybmluZyAoXygiRmlsZSBcIiVzXCIgaGFzIG5vIGJ1aWxkLWlkLCBmaWxlIHNr aXBwZWQiKSwKLUBAIC02NSwyMCArNDYzLDU2IEBAIGJ1aWxkX2lkX3ZlcmlmeSAoYmZkICphYmZk LCBzaXplX3QgY2hlY2sKK0BAIC02NSwyMyArNDYzLDU2IEBAIGJ1aWxkX2lkX3ZlcmlmeSAoYmZk ICphYmZkLCBzaXplX3QgY2hlY2sKICAgIHJldHVybiByZXR2YWw7CiAgfQogIApAQCAtODE4LDE1 ICs4MTgsMTggQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2J1aWxkLWlkLmMKICAg IHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgaW50IGl4OwogICAgYmZkICphYmZkID0gTlVM TDsKKy0gIGludCBhbGxvY19sZW47CiAgCiAgICAvKiBERUJVR19GSUxFX0RJUkVDVE9SWS8uYnVp bGQtaWQvYWIvY2RlZiAqLwotLSAgbGluayA9IGFsbG9jYSAoc3RybGVuIChkZWJ1Z19maWxlX2Rp cmVjdG9yeSkgKyAoc2l6ZW9mICIvLmJ1aWxkLWlkLyIgLSAxKSArIDEKLS0JCSArIDIgKiBidWls ZF9pZF9sZW4gKyAoc2l6ZW9mICIuZGVidWciIC0gMSkgKyAxKTsKKy0gIGFsbG9jX2xlbiA9IChz dHJsZW4gKGRlYnVnX2ZpbGVfZGlyZWN0b3J5KQorLQkgICAgICAgKyAoc2l6ZW9mICIvLmJ1aWxk LWlkLyIgLSAxKSArIDEKKy0JICAgICAgICsgMiAqIGJ1aWxkX2lkX2xlbiArIChzaXplb2YgIi5k ZWJ1ZyIgLSAxKSArIDEpOworLSAgbGluayA9IChjaGFyICopIGFsbG9jYSAoYWxsb2NfbGVuKTsK ICsgIGxpbmsgPSB4bWFsbG9jIChzdHJsZW4gKGRlYnVnX2ZpbGVfZGlyZWN0b3J5KSArIDIgKiBi dWlsZF9pZF9sZW4gKyA1MCk7CiAgCiAgICAvKiBLZWVwIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg c28gdGhhdCBERUJVR19GSUxFX0RJUkVDVE9SWSBiZWluZyAiIiB3aWxsCiAgICAgICBjYXVzZSAi Ly5idWlsZC1pZC8uLi4iIGxvb2t1cHMuICAqLwotQEAgLTkxLDkgKzUyNSwxMiBAQCBidWlsZF9p ZF90b19kZWJ1Z19iZmQgKHNpemVfdCBidWlsZF9pZF9sCitAQCAtOTQsOSArNTI1LDEyIEBAIGJ1 aWxkX2lkX3RvX2RlYnVnX2JmZCAoc2l6ZV90IGJ1aWxkX2lkX2wKICAgICAgICBzaXplX3QgZGVi dWdkaXJfbGVuID0gc3RybGVuIChkZWJ1Z2Rpcik7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKmRh dGEgPSBidWlsZF9pZDsKICAgICAgICBzaXplX3Qgc2l6ZSA9IGJ1aWxkX2lkX2xlbjsKQEAgLTg0 MCw3ICs4NDMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYnVpbGQtaWQuYwog IAogICAgICAgIG1lbWNweSAobGluaywgZGVidWdkaXIsIGRlYnVnZGlyX2xlbik7CiAgICAgICAg cyA9ICZsaW5rW2RlYnVnZGlyX2xlbl07Ci1AQCAtMTA3LDQ3ICs1NDQsMjgxIEBAIGJ1aWxkX2lk X3RvX2RlYnVnX2JmZCAoc2l6ZV90IGJ1aWxkX2lkX2wKK0BAIC0xMTAsNDcgKzU0NCwyODEgQEAg YnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbAogIAkqcysrID0gJy8nOwog ICAgICAgIHdoaWxlIChzaXplLS0gPiAwKQogIAlzICs9IHNwcmludGYgKHMsICIlMDJ4IiwgKHVu c2lnbmVkKSAqZGF0YSsrKTsKQEAgLTExNDEsNyArMTE0NCw3IEBAIEluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi9idWlsZC1pZC5jCiAgICAgICAgLyogUHJldmVudCBsb29waW5nIG9uIGEg c3RyaXBwZWQgLmRlYnVnIGZpbGUuICAqLwogICAgICAgIGlmIChhYmZkICE9IE5VTEwKICAJICAm JiBmaWxlbmFtZV9jbXAgKGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpLAotQEAgLTE2NywzICs4Mzgs MjEgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cgorQEAgLTE3MCwz ICs4MzgsMjEgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cgogICAg ICB9CiAgICByZXR1cm4gTlVMTDsKICB9CkBAIC0xMTYzLDEwICsxMTY2LDEwIEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9idWlsZC1pZC5jCiArCiArICBvYnNlcnZlcl9hdHRhY2hf ZXhlY3V0YWJsZV9jaGFuZ2VkIChkZWJ1Z19wcmludF9leGVjdXRhYmxlX2NoYW5nZWQpOwogK30K LUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9idWlsZC1pZC5oCitJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjIvZ2RiL2J1aWxkLWlkLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45Ljkw LjIwMTUwNzA5Lm9yaWcvZ2RiL2J1aWxkLWlkLmgJMjAxNS0wNy0wOSAyMjowNToyMC45ODgwNDQz MTIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9idWlsZC1pZC5oCTIwMTUtMDct MDkgMjI6MDU6NDIuMDcyMjIyODQ5ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3Jp Zy9nZGIvYnVpbGQtaWQuaAkyMDE1LTEwLTIyIDIyOjMwOjQ2LjIzOTQwMzE2MyArMDIwMAorKysr IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9idWlsZC1pZC5oCTIwMTUtMTAtMjIgMjI6MzA6NDku Mjc1NDIxMDM5ICswMjAwCiBAQCAtMjAsOSArMjAsMTAgQEAKICAjaWZuZGVmIEJVSUxEX0lEX0gK ICAjZGVmaW5lIEJVSUxEX0lEX0gKQEAgLTEyMDEsMTEgKzEyMDQsMTEgQEAgSW5kZXg6IGdkYi03 LjkuOTAuMjAxNTA3MDkvZ2RiL2J1aWxkLWlkLmgKICsJCQkJCSAgICAgICBjaGFyICoqYnVpbGRf aWRfZmlsZW5hbWVfcmV0dXJuKTsKICAKICAjZW5kaWYgLyogQlVJTERfSURfSCAqLwotSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDIyL2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIw MTUwNzA5Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA3LTA5IDIyOjA1OjIwLjk4ODA0NDMx MiArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA3 LTA5IDIyOjA1OjQyLjA3NzIyMjg5MSArMDIwMAotQEAgLTI1MDcsNyArMjUwNyw3IEBAIGR3YXJm Ml9nZXRfZHd6X2ZpbGUgKHZvaWQpCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIv ZHdhcmYycmVhZC5jCTIwMTUtMTAtMjIgMjI6MzA6NDYuMjQyNDAzMTgxICswMjAwCisrKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTEwLTIyIDIyOjMwOjQ5LjI3 ODQyMTA1NyArMDIwMAorQEAgLTI1MTQsNyArMjUxNCw3IEBAIGR3YXJmMl9nZXRfZHd6X2ZpbGUg KHZvaWQpCiAgICAgIH0KICAKICAgIGlmIChkd3pfYmZkID09IE5VTEwpCkBAIC0xMjE0LDEwICsx MjE3LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9kd2FyZjJyZWFkLmMKICAK ICAgIGlmIChkd3pfYmZkID09IE5VTEwpCiAgICAgIGVycm9yIChfKCJjb3VsZCBub3QgZmluZCAn LmdudV9kZWJ1Z2FsdGxpbmsnIGZpbGUgZm9yICVzIiksCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi9weXRob24vcHktb2JqZmlsZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1 MDcwOS5vcmlnL2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTUtMDctMDkgMjI6MDU6MjAuOTg4 MDQ0MzEyICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHl0aG9uL3B5LW9iamZp bGUuYwkyMDE1LTA3LTA5IDIyOjA1OjQyLjA3NzIyMjg5MSArMDIwMAorLS0tIGdkYi03LjEwLjUw LjIwMTUxMDIyLm9yaWcvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMJMjAxNS0xMC0yMiAyMjozMDo0 Ni4yNDM0MDMxODcgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvcHl0aG9uL3B5 LW9iamZpbGUuYwkyMDE1LTEwLTIyIDIyOjMwOjQ5LjI3ODQyMTA1NyArMDIwMAogQEAgLTEzOSw3 ICsxMzksNyBAQCBvYmpmcHlfZ2V0X2J1aWxkX2lkIChQeU9iamVjdCAqc2VsZiwgdm9pCiAgCiAg ICBUUlkKQEAgLTEyMzYsMTAgKzEyMzksMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL3B5dGhvbi9weS1vYmpmaWxlLmMKICAgICAgICBpZiAob2JmZF9idWlsZF9pZCA9PSBOVUxM KQogIAljb250aW51ZTsKICAgICAgICBpZiAob2JqZnB5X2J1aWxkX2lkX21hdGNoZXMgKG9iZmRf YnVpbGRfaWQsIGJ1aWxkX2lkKSkKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jb2Zm cmVhZC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2NvZmZyZWFkLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2NvZmZyZWFkLmMJMjAxNS0w Ny0wOSAyMjowNToyMC45ODgwNDQzMTIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9jb2ZmcmVhZC5jCTIwMTUtMDctMDkgMjI6MDU6NDIuMDc4MjIyODk5ICswMjAwCistLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvY29mZnJlYWQuYwkyMDE1LTEwLTIyIDIyOjMwOjQ2 LjI0NDQwMzE5MyArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9jb2ZmcmVhZC5j CTIwMTUtMTAtMjIgMjI6MzA6NDkuMjc4NDIxMDU3ICswMjAwCiBAQCAtNzM5LDcgKzczOSw3IEBA IGNvZmZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmkKICAgICAgewogICAgICAg IGNoYXIgKmRlYnVnZmlsZTsKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ6MjM1MTk3LWZvcmstZGV0 YWNoLWluZm8ucGF0Y2ggYi9nZGItNi42LWJ6MjM1MTk3LWZvcmstZGV0YWNoLWluZm8ucGF0Y2gK aW5kZXggMjZjOTI4ZC4uZDEzMTU4MCAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1iejIzNTE5Ny1mb3Jr LWRldGFjaC1pbmZvLnBhdGNoCisrKyBiL2dkYi02LjYtYnoyMzUxOTctZm9yay1kZXRhY2gtaW5m by5wYXRjaApAQCAtMywxMCArMywxMCBAQAogCVBvcnQgdG8gR0RCLTYuOHByZS4KIAlSZW1vdmUg dGhlIGBbJyBjaGFyYWN0ZXIgZnJvbSB0aGUgR0RCLTYuOCBkZWZhdWx0IG1lc3NhZ2UuCiAKLUlu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRh Y2guYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv Zm9yay1kZXRhY2guYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5jCTIwMTUtMDUtMzEgMTg6MjM6NDkuMDA4NDUwNzE2ICsw MjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3Jr LWRldGFjaC5jCTIwMTUtMTAtMjcgMjI6Mzg6NDYuNjkzNDU5NTY5ICswMTAwCiBAQCAtMCwwICsx LDU3IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KICsKQEAgLTY1LDEwICs2NSwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2ZvcmstZGV0YWNoLmMKICsgICAgfQogKyAgcmV0dXJuIDA7CiAr fQotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3Jr LWRldGFjaC5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2ZvcmstZGV0YWNoLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5leHAJMjAxNS0wNS0zMSAxODoyMzo0OS4w MDg0NTA3MTYgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2ZvcmstZGV0YWNoLmV4cAkyMDE1LTEwLTI3IDIyOjM4OjQ2LjY5MzQ1OTU2OSArMDEw MAogQEAgLTAsMCArMSwzNiBAQAogKyMgQ29weXJpZ2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCiArCkBAIC0xMDYsMTEgKzEwNiwxMSBAQCBJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUzMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ZvcmstZGV0YWNoLmV4cAogK2dkYl90ZXN0 ICIiIFwKICsgICAgICAgICAiRGV0YWNoaW5nIGFmdGVyIGZvcmsgZnJvbSBjaGlsZCBwcm9jZXNz LipcXFxbSW5mZXJpb3IgLiogZXhpdGVkIG5vcm1hbGx5XFxcXSIgXAogKyAgICAgICAgICJJbmZv IG1lc3NhZ2UgY2F1Z2h0IgotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL2luZnJ1bi5j CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOS41MC4yMDE1MDUzMS5vcmlnL2dkYi9pbmZydW4uYwkyMDE1LTA1LTMxIDE4OjIz OjQxLjcwMzQwNTYxNyArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL2luZnJ1bi5j CTIwMTUtMDUtMzEgMTg6MjM6NDkuMDExNDUwNzM1ICswMjAwCi1AQCAtNDQzLDcgKzQ0Myw3IEBA IGhvbGRpbmcgdGhlIGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGUKKy0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi9pbmZydW4uYwkyMDE1LTEwLTI3IDIyOjM4OjM0LjMzMzM4Njkz OSArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9pbmZydW4uYwkyMDE1LTEwLTI3 IDIyOjM4OjQ2LjY5NTQ1OTU4MSArMDEwMAorQEAgLTQ3Nyw3ICs0NzcsNyBAQCBob2xkaW5nIHRo ZSBjaGlsZCBzdG9wcGVkLiAgVHJ5IFwic2V0IGRlCiAgCSAgICAgIHJlbW92ZV9icmVha3BvaW50 c19waWQgKHB0aWRfZ2V0X3BpZCAoaW5mZXJpb3JfcHRpZCkpOwogIAkgICAgfQogIApAQCAtMTE5 LDMgKzExOSwyNSBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvaW5mcnVuLmMKICAJ ICAgIHsKICAJICAgICAgLyogRW5zdXJlIHRoYXQgd2UgaGF2ZSBhIHByb2Nlc3MgcHRpZC4gICov CiAgCSAgICAgIHB0aWRfdCBwcm9jZXNzX3B0aWQgPSBwaWRfdG9fcHRpZCAocHRpZF9nZXRfcGlk IChjaGlsZF9wdGlkKSk7CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9jYXRjaC1zeXNjYWxsLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jYXRjaC1zeXNjYWxsLmV4cAky MDE1LTEwLTI3IDIyOjQzOjQ3LjAxNTIyNDMyMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2F0Y2gtc3lzY2FsbC5leHAJMjAxNS0xMC0yNyAy Mjo0NDoyOS4zMjc0NzI5NTUgKzAxMDAKK0BAIC0xNjUsNyArMTY1LDcgQEAgcHJvYyBjaGVja19m b3JfcHJvZ3JhbV9lbmQge30geworICAgICAjIERlbGV0aW5nIHRoZSBjYXRjaHBvaW50cworICAg ICBkZWxldGVfYnJlYWtwb2ludHMKKyAKKy0gICAgZ2RiX2NvbnRpbnVlX3RvX2VuZAorKyAgICBn ZGJfY29udGludWVfdG9fZW5kICIiIGNvbnRpbnVlIDEKKyB9CisgCisgcHJvYyB0ZXN0X2NhdGNo X3N5c2NhbGxfd2l0aG91dF9hcmdzIHt9IHsKK0BAIC0yMzYsNyArMjM2LDcgQEAgcHJvYyB0ZXN0 X2NhdGNoX3N5c2NhbGxfd2l0aF93cm9uZ19hcmdzCisgCSMgSWYgaXQgZG9lc24ndCwgZXZlcnl0 aGluZyBpcyByaWdodCAoc2luY2Ugd2UgZG9uJ3QgaGF2ZQorIAkjIGEgc3lzY2FsbCBuYW1lZCAi bWxvY2siIGluIGl0KS4gIE90aGVyd2lzZSwgdGhpcyBpcyBhIGZhaWx1cmUuCisgCXNldCB0aGlz dGVzdCAiY2F0Y2ggc3lzY2FsbCB3aXRoIHVudXNlZCBzeXNjYWxsICgkc3lzY2FsbF9uYW1lKSIK Ky0JZ2RiX2NvbnRpbnVlX3RvX2VuZCAkdGhpc3Rlc3QKKysJZ2RiX2NvbnRpbnVlX3RvX2VuZCAk dGhpc3Rlc3QgY29udGludWUgMQorICAgICB9CisgfQorIAoKZGlmZiAtLWdpdCBhL2dkYi02LjYt c2NoZWR1bGVyX2xvY2tpbmctc3RlcC1pcy1kZWZhdWx0LnBhdGNoIGIvZ2RiLTYuNi1zY2hlZHVs ZXJfbG9ja2luZy1zdGVwLWlzLWRlZmF1bHQucGF0Y2gKaW5kZXggZThlMDU5NS4uNDk2N2I5MiAx MDA2NDQKLS0tIGEvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLWlzLWRlZmF1bHQucGF0 Y2gKKysrIGIvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLWlzLWRlZmF1bHQucGF0Y2gK QEAgLTEsMjEgKzEsMjEgQEAKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9pbmZydW4u YworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9pbmZydW4uYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvaW5mcnVuLmMJMjAxNC0wNi0xMyAyMDow ODo1MS4yMjU2OTkyMDMgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9pbmZydW4u YwkyMDE0LTA2LTEzIDIwOjA4OjU1LjUxNTcwMzQ2NiArMDIwMAotQEAgLTE2NjEsNyArMTY2MSw3 IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzY2hlZHVsZXJfZW51bXMKLSAgIHNjaGVkbG9j a19zdGVwLAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTUt MTAtMjIgMjI6MzA6MTUuODg3MjI0NDUyICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIv Z2RiL2luZnJ1bi5jCTIwMTUtMTAtMjIgMjI6MzA6MjUuNzQyMjgyNDc4ICswMjAwCitAQCAtMjE3 NSw3ICsyMTc1LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHNjaGVkdWxlcl9lbnVtcwor ICAgc2NoZWRsb2NrX3JlcGxheSwKICAgIE5VTEwKICB9OwotLXN0YXRpYyBjb25zdCBjaGFyICpz Y2hlZHVsZXJfbW9kZSA9IHNjaGVkbG9ja19vZmY7Cistc3RhdGljIGNvbnN0IGNoYXIgKnNjaGVk dWxlcl9tb2RlID0gc2NoZWRsb2NrX3JlcGxheTsKICtzdGF0aWMgY29uc3QgY2hhciAqc2NoZWR1 bGVyX21vZGUgPSBzY2hlZGxvY2tfc3RlcDsKICBzdGF0aWMgdm9pZAogIHNob3dfc2NoZWR1bGVy X21vZGUgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCiAgCQkgICAgIHN0cnVj dCBjbWRfbGlzdF9lbGVtZW50ICpjLCBjb25zdCBjaGFyICp2YWx1ZSkKLUluZGV4OiBnZGItNy43 LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5leHAKK0luZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jbGkuZXhwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21p LWNsaS5leHAJMjAxNC0wNi0xMyAyMDowODo1NS41MTU3MDM0NjYgKzAyMDAKLSsrKyBnZGItNy43 LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5leHAJMjAxNC0wNi0xMyAy MDowOToyNC44NjI3MzI4MzIgKzAyMDAKLUBAIC0xODEsNyArMTgxLDcgQEAgbWlfZXhwZWN0X3N0 b3AgImJyZWFrcG9pbnQtaGl0IiAibWFpbiIgIgorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9y aWcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY2xpLmV4cAkyMDE1LTEwLTIyIDIyOjI5OjM4LjM1 MjAwMzQ0NyArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2Ri Lm1pL21pLWNsaS5leHAJMjAxNS0xMC0yMiAyMjozMDoxNS44ODgyMjQ0NTggKzAyMDAKK0BAIC0x OTksNyArMTk5LDcgQEAgbWlfZXhwZWN0X3N0b3AgImJyZWFrcG9pbnQtaGl0IiAibWFpbiIgIgog ICMgVGVzdCB0aGF0IHRoZSB0b2tlbiBpcyBvdXRwdXQgZXZlbiBmb3IgQ0xJIGNvbW1hbmRzCiAg IyBBbHNvIHRlc3QgdGhhdCAqc3RvcHBlZCBpbmNsdWRlcyBmcmFtZSBpbmZvcm1hdGlvbi4KICBt aV9nZGJfdGVzdCAiMzQgbmV4dCIgXApAQCAtMjQsMTAgKzI0LDEwIEBAIEluZGV4OiBnZGItNy43 LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5leHAKICAgICAgIjM0IG5l eHQ6IHJ1biIKICAKICAjIFRlc3QgdGhhdCB0aGUgbmV3IGN1cnJlbnQgc291cmNlIGxpbmUgaXMg b3V0cHV0IHRvIHRoZSBjb25zb2xlCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVz dHN1aXRlL2dkYi5taS9taS1sb2dnaW5nLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWxvZ2dpbmcuZXhwCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWxvZ2dpbmcuZXhw CTIwMTQtMDYtMTMgMjA6MDg6NTEuMjI3Njk5MjA1ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0 MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1sb2dnaW5nLmV4cAkyMDE0LTA2LTEzIDIwOjA4 OjU1LjUxNjcwMzQ2NyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWktbG9nZ2luZy5leHAJMjAxNS0xMC0yMiAyMjoyOTozOC4zNTIwMDM0 NDcgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5taS9t aS1sb2dnaW5nLmV4cAkyMDE1LTEwLTIyIDIyOjMwOjE1Ljg4ODIyNDQ1OCArMDIwMAogQEAgLTUz LDcgKzUzLDcgQEAgY2xvc2UgJGNoYW4KICAKICBzZXQgbWlfbG9nX3Byb21wdCAiXFsoXF1nZGJc WylcXSBcW1xyXG5cXSsiCkBAIC00NiwxMCArNDYsMTAgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAx NDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktbG9nZ2luZy5leHAKICAgICAgcGFzcyAiUmVk aXJlY3QgbG9nIGZpbGUgY29udGVudHMiCiAgfSBlbHNlIHsKICAgICAgZmFpbCAiUmVkaXJlY3Qg bG9nIGZpbGUgY29udGVudHMiCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taS1jb25zb2xlLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dk Yi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNvbnNvbGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny41MC4yMDE0MDYwOS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNvbnNvbGUuZXhwCTIw MTQtMDYtMTMgMjA6MDg6NTEuMjI3Njk5MjA1ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYw OS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jb25zb2xlLmV4cAkyMDE0LTA2LTEzIDIwOjA4OjU1 LjUxNjcwMzQ2NyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvbWktY29uc29sZS5leHAJMjAxNS0xMC0yMiAyMjoyOTozOC4zNTMwMDM0NTMg KzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1j b25zb2xlLmV4cAkyMDE1LTEwLTIyIDIyOjMwOjE1Ljg4ODIyNDQ1OCArMDIwMAogQEAgLTYwLDYg KzYwLDkgQEAgaWYgIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LwogIAogIG1p X3J1bl90b19tYWluCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2ggYi9n ZGItYXJjaGVyLXZsYS10ZXN0cy5wYXRjaAppbmRleCBkMGZkMTgzLi41NTZmOWQxIDEwMDY0NAot LS0gYS9nZGItYXJjaGVyLXZsYS10ZXN0cy5wYXRjaAorKysgYi9nZGItYXJjaGVyLXZsYS10ZXN0 cy5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90 ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tl ZF9hcnJheS5leHAJMjAxNC0wNi0xMyAwMzo1OTozNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCTIw MTQtMDYtMTYgMjM6MzA6MzAuMTA3OTQwNDgzICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEw Mjcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAkyMDE1LTEwLTI3 IDAyOjQ4OjMyLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90 ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjEy ODc3NjA1ICswMTAwCiBAQCAtNTYsNSArNTYsMTEgQEAgZ2RiX3Rlc3RfbXVsdGlwbGUgIiR0ZXN0 IiAiJHRlc3QiIHsKICAgICAgICAgICMgYXJlLiAgT2JzZXJ2ZWQgd2l0aCAoRlNGIEdOVSBBZGEg NC41LjMgMjAxMTAxMjQpLgogICAgICAgICAgeGZhaWwgJHRlc3QKQEAgLTE0LDEwICsxNCwxMCBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2Vk X2FycmF5LmV4cAogKyAgICB9CiAgfQogIAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMKK0luZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRl Zi1mb28uUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIu YXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMJMjAxNC0wNi0xNiAyMzozMDozMC4xMDg5NDA0 ODQgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNo L3g4Nl82NC12bGEtdHlwZWRlZi1mb28uUwkyMDE1LTExLTAzIDIyOjIzOjI3LjIxMjg3NzYwNSAr MDEwMAogQEAgLTAsMCArMSw0NTUgQEAKICsJLmZpbGUJIng4Nl82NC12bGEtdHlwZWRlZi5jIgog Kwkuc2VjdGlvbgkuZGVidWdfYWJicmV2LCIiLEBwcm9nYml0cwpAQCAtNDc0LDEwICs0NzQsMTAg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZf NjQtdmxhLXR5cGVkZWYtZm9vLlMKICsJLnN0cmluZwkiR05VIEMgNC4zLjIgMjAwODExMDUgKFJl ZCBIYXQgNC4zLjItNykiCiArCS5pZGVudAkiR0NDOiAoR05VKSA0LjMuMiAyMDA4MTEwNSAoUmVk IEhhdCA0LjMuMi03KSIKICsJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwot SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQt dmxhLXR5cGVkZWYuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUv Z2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMJMjAxNC0wNi0x NiAyMzozMDozMC4xMDk5NDA0ODQgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5jCTIwMTUtMTEtMDMgMjI6MjM6 MjcuMjEzODc3NjExICswMTAwCiBAQCAtMCwwICsxLDQzIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBp cyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTUyMiwxMCArNTIyLDEwIEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0 LXZsYS10eXBlZGVmLmMKICt9CiArCiArI2VuZGlmCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAKK0luZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlw ZWRlZi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmV4cAkyMDE0LTA2LTE2IDIzOjMwOjMwLjEwOTk0MDQ4 NCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gv eDg2XzY0LXZsYS10eXBlZGVmLmV4cAkyMDE1LTExLTAzIDIyOjIzOjI3LjIxMzg3NzYxMSArMDEw MAogQEAgLTAsMCArMSw2NCBAQAogKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCiArCkBAIC01OTEsMTAgKzU5MSwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAKICtn ZGJfdGVzdCAid2hhdGlzIGFycmF5IiAidHlwZSA9IGFycmF5X3QiICJzZWNvbmQ6IHdoYXRpcyBh cnJheSIKICsKICtnZGJfdGVzdCAicHR5cGUgYXJyYXkiICJ0eXBlID0gY2hhciBcXFxbNzhcXFxd IiAic2Vjb25kOiBwdHlwZSBhcnJheSIKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMJMjAx NC0wNi0xMyAwMzo1OTozNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwkyMDE0LTA2LTE2IDIzOjMwOjMwLjEw OTk0MDQ4NCArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTUtMTAtMjcgMDI6NDg6MzIuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlk eC5jCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjEzODc3NjExICswMTAwCiBAQCAtMTcsNiArMTcsMTMg QEAKICAKICBpbnQgYXJyYXlbXSA9IHsxLCAyLCAzLCA0fTsKQEAgLTYwOSwxMCArNjA5LDEwIEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlp ZHguYwogIGludAogIG1haW4gKHZvaWQpCiAgewotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAKK0luZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5 aWR4LmV4cAkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAJMjAxNC0wNi0x NiAyMzozMDozMC4xMDk5NDA0ODQgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmln L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTUtMTAtMjcgMDI6NDg6MzIu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9hcnJheWlkeC5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTM4Nzc2MTEgKzAxMDAK IEBAIC00OSw0ICs0OSwxMiBAQCBnZGJfdGVzdCAicHJpbnQgYXJyYXkiIFwKICAgICAgICAgICAi XFx7XFxcWzBcXFxdID0gMSwgXFxcWzFcXFxdID0gMiwgXFxcWzJcXFxdID0gMywgXFxcWzNcXFxd ID0gNFxcfSIgXAogICAgICAgICAgICJQcmludCBhcnJheSB3aXRoIGFycmF5LWluZGV4ZXMgb24i CkBAIC02MjcsMTAgKzYyNywxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAogKwl1bnN1cHBvcnRlZCAiJHRlc3QgKG5vIEdD QykiCiArICAgIH0KICt9Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMKK0luZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRy ZXNzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuYwkyMDE0LTA2LTE2IDIzOjMwOjMwLjEwOTk0 MDQ4NCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuYwkyMDE1LTExLTAzIDIyOjIzOjI3LjIxMzg3 NzYxMSArMDEwMAogQEAgLTAsMCArMSwyMCBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC02NTIsMTAgKzY1MiwxMCBAQCBJbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1m aWVsZC1hZGRyZXNzLmMKICtzdHJ1Y3QgewogKyAgaW50IGZpZWxkOwogK30gc3RhdGljc3RydWN0 ID0geyAxIH07Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3Mu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4cAkyMDE0LTA2LTE2IDIzOjMwOjMwLjEwOTk0 MDQ4NCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjEz ODc3NjExICswMTAwCiBAQCAtMCwwICsxLDI2IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTY4MywxMCArNjgzLDEwIEBAIEluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZp ZWxkLWFkZHJlc3MuZXhwCiArCiArZ2RiX3Rlc3Qge3NldCAkdmFyc3RydWN0ID0gc3RhdGljc3Ry dWN0fQogK2dkYl90ZXN0IHtwICR2YXJzdHJ1Y3QuZmllbGR9ICIgPSAxIgotSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYworSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvdmxh LWZyYW1lLmMJMjAxNC0wNi0xNiAyMzozMDozMC4xMTA5NDA0ODUgKzAyMDAKKysrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFtZS5jCTIwMTUtMTEt MDMgMjI6MjM6MjcuMjEzODc3NjExICswMTAwCiBAQCAtMCwwICsxLDMxIEBACiArLyogVGhpcyB0 ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTcxOSwxMCAr NzE5LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmxhLWZyYW1lLmMKICsgIGYgKHMpOwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCitJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L3ZsYS1mcmFtZS5leHAJMjAxNC0wNi0xNiAyMzozMDozMC4xMTA5NDA0ODUgKzAyMDAKKysrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFtZS5leHAJ MjAxNS0xMS0wMyAyMjoyMzoyNy4yMTM4Nzc2MTEgKzAxMDAKIEBAIC0wLDAgKzEsMzggQEAKICsj IENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyMKQEAgLTc2 MiwxMCArNzYyLDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvdmxhLWZyYW1lLmV4cAogK30KICsKICtnZGJfdGVzdCAiYnQgZnVsbCIgIlxyXG4g K3MgPSBcIlhcXFxcMDAwXCJcclxuLioiCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwky MDE0LTA2LTE2IDIzOjMwOjMwLjExMDk0MDQ4NSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmMJMjAxNS0xMS0wMyAyMjoy MzoyNy4yMTM4Nzc2MTEgKzAxMDAKIEBAIC0wLDAgKzEsMzAgQEAKICsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtNzk3LDEwICs3OTcsMTAg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEt b3ZlcmZsb3cuYwogKwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCitJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1v dmVyZmxvdy5leHAJMjAxNC0wNi0xNiAyMzozMDozMC4xMTA5NDA0ODUgKzAyMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5leHAJ MjAxNS0xMS0wMyAyMjoyMzoyNy4yMTM4Nzc2MTEgKzAxMDAKIEBAIC0wLDAgKzEsMTA5IEBACiAr IyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTkx MSwxMCArOTExLDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAogK2dkYl90ZXN0ICJidCIgImluIFxbXiBcXSphYm9y dCBcXCguKiBpbiBtYWluIFxcKC4qIiAiQmFja3RyYWNlIGFmdGVyIGFib3J0KCkiCiArCiArdmVy Ym9zZSAtbG9nICJrYl9mb3VuZCBpbiBidCBhZnRlciBhYm9ydCgpID0gW2V4cHIgW21lbW9yeV92 X3BhZ2VzX2dldF0gKiAkcGFnZXNpemUgLyAxMDI0XSIKLUluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCTIwMTQtMDYtMTYgMjM6MzA6MzAu MTEwOTQwNDg1ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS92bGEuYwkyMDE1LTExLTAzIDIyOjIzOjI3LjIxMzg3NzYxMSArMDEwMAogQEAgLTAs MCArMSw1NSBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVi dWdnZXIuCiArCkBAIC05NzEsMTAgKzk3MSwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCiArICBmb28gKDc4KTsKICsgIHJldHVybiAw OwogK30KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv dmxhLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmxhLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS92bGEuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTEwOTQwNDg1ICswMjAwCisrKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCTIwMTUt MTEtMDMgMjI6MjM6MjcuMjE0ODc3NjE3ICswMTAwCiBAQCAtMCwwICsxLDYyIEBACiArIyBDb3B5 cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTEwMzgsMTAg KzEwMzgsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS92bGEuZXhwCiArZ2RiX3Rlc3QgInAgdGVtcDEiICIgPSAnMScgPHJlcGVhdHMgNzggdGlt ZXM+IiAic2Vjb25kOiBwcmludCB0ZW1wMSIKICtnZGJfdGVzdCAicCB0ZW1wMiIgIiA9ICcyJyA8 cmVwZWF0cyA3OCB0aW1lcz4iICJzZWNvbmQ6IHByaW50IHRlbXAyIgogK2dkYl90ZXN0ICJwIHRl bXAzIiAiID0gJzMnIDxyZXBlYXRzIDQ4IHRpbWVzPiIgInNlY29uZDogcHJpbnQgdGVtcDMiCi1J bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJv dW5kLWxvY2xpc3QuUworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUwkyMDE0LTA2 LTE2IDIzOjMwOjMwLjExMTk0MDQ4NyArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCTIwMTUtMTEtMDMgMjI6 MjM6MjcuMjE0ODc3NjE3ICswMTAwCiBAQCAtMCwwICsxLDI0NiBAQAogKy8qIFRoaXMgdGVzdGNh c2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xMjg5LDExICsxMjg5 LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItYm91bmQtbG9jbGlzdC5TCiArCS5zdHJpbmcJCSJjaGFyIgogKy5MdWludF9zdHI6CiAr CS5zdHJpbmcJCSJ1bnNpZ25lZCBpbnQiCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCitJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0 LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAkyMDE0LTA2LTE2IDIzOjMwOjMwLjExMTk0MDQ4NyAr MDIwMAotQEAgLTAsMCArMSw2MyBAQAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAJMjAxNS0xMS0wMyAyMjoyMzoy Ny4yMTQ4Nzc2MTcgKzAxMDAKK0BAIC0wLDAgKzEsNjYgQEAKICsjIENvcHlyaWdodCAyMDEwIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwogKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKQEAgLTEzMzIs MTcgKzEzMzIsMjAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAogKwogKyMgVmVyaWZ5IGl0IGJlaGF2ZXMg YXQgbGVhc3QgYXMgYW4gdW5ib3VuZCBhcnJheSB3aXRob3V0IGluZmVyaW9yLgogKwotK3NldCB0 ZXN0ICJwIGFfc3RyaW5nIgotK2dkYl90ZXN0X211bHRpcGxlICR0ZXN0ICR0ZXN0IHsKLSsgICAg LXJlICIgPSAweFxbMC05YS1mXF0rIFwic2Vlbm5vdHNlZW5cIlxyXG4kZ2RiX3Byb21wdCAkIiB7 Ci0rCXBhc3MgJHRlc3QKLSsgICAgfQotKyAgICAtcmUgIk5vIHJlZ2lzdGVyc1xcLlxyXG4kZ2Ri X3Byb21wdCAkIiB7Ci0rCWtmYWlsICJ2bGFyZWdyZXNzaW9uIiAkdGVzdAotKyAgICB9Ci0rfQot KwotK2dkYl90ZXN0ICJwdHlwZSBhX3N0cmluZyIge3R5cGUgPSBjaGFyIFxbdmFyaWFibGUgbGVu Z3RoXF19CisrIyBGSVhNRTogRlNGIEdEQiBjcmFzaGVzIGR1ZSB0byAhaGFzX3N0YWNrX2ZyYW1l cyAoKS4KKysjIEJ1dCBpbiBwcmFjdGljZSB0aGF0IHNob3VsZCBub3QgaGFwcGVuLgorKyMgaHR0 cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NDM3NjIKKysjc2V0IHRl c3QgInAgYV9zdHJpbmciCisrI2dkYl90ZXN0X211bHRpcGxlICR0ZXN0ICR0ZXN0IHsKKysjICAg IC1yZSAiID0gMHhcWzAtOWEtZlxdKyBcInNlZW5ub3RzZWVuXCJcclxuJGdkYl9wcm9tcHQgJCIg eworKyMJcGFzcyAkdGVzdAorKyMgICAgfQorKyMgICAgLXJlICJObyByZWdpc3RlcnNcXC5cclxu JGdkYl9wcm9tcHQgJCIgeworKyMJa2ZhaWwgInZsYXJlZ3Jlc3Npb24iICR0ZXN0CisrIyAgICB9 CisrI30KKysjCisrI2dkYl90ZXN0ICJwdHlwZSBhX3N0cmluZyIge3R5cGUgPSBjaGFyIFxbdmFy aWFibGUgbGVuZ3RoXF19CiArCiArIyBOb3QgcnVudG9fbWFpbiBhcyBkdzItYm91bmQtbG9jbGlz dC5TIGhhbmRsZXMgb25seSB0aGUgZmlyc3QgYnl0ZSBvZiBtYWluLgogK2lmICFbcnVudG8gIipt YWluIl0gewpAQCAtMTM1NywxMCArMTM2MCwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCiArCiArIyBU aGUgcmVnaXN0ZXIgY29udGFpbnMgdW5wcmVkaWN0YWJsZSB2YWx1ZSAtIHRoZSBhcnJheSBzaXpl LgogK2dkYl90ZXN0ICJwdHlwZSByZWdfc3RyaW5nIiB7dHlwZSA9IGNoYXIgXFstP1swLTldK1xd fQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1zdHJpcHBlZC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmMJMjAxNC0wNi0xNiAyMzozMDoz MC4xMTE5NDA0ODcgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmMJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTQ4Nzc2MTcg KzAxMDAKIEBAIC0wLDAgKzEsNDIgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RC LCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTQwNCwxMCArMTQwNywxMCBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmMK ICsgIGZ1bmMxICgxLCAyKTsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBl ZC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItc3RyaXBwZWQuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTExOTQwNDg3ICswMjAw CisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1z dHJpcHBlZC5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTQ4Nzc2MTcgKzAxMDAKIEBAIC0wLDAg KzEsNzkgQEAKICsjIENvcHlyaWdodCAyMDA2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgogKwpAQCAtMTQ4OCwxMCArMTQ5MSwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAogK2dkYl90ZXN0ICJzdGVw IiBcCiArICAgICAgICAgImZ1bmMuKiBcXCguKlxcKSBhdCAuKiIgXAogKyAgICAgICAgICJzdGVw IgotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uUworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0 aW9uLlMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMJMjAxNC0wNi0xNiAyMzozMDoz MC4xMTI5NDA0ODggKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2NhdGlvbi5TCTIwMTUtMTEtMDMg MjI6MjM6MjcuMjE0ODc3NjE3ICswMTAwCiBAQCAtMCwwICsxLDgzIEBACiArLyogVGhpcyB0ZXN0 Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE1NzYsMTAgKzE1 NzksMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXQKICsKICsJLmJ5dGUJCTB4MAkJCS8qIFRl cm1pbmF0b3IgKi8KICsJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KLUluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJl ci1kYXRhLWxvY2F0aW9uLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1z dHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTEyOTQw NDg4ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCTIwMTUtMTEtMDMgMjI6MjM6 MjcuMjE0ODc3NjE3ICswMTAwCiBAQCAtMCwwICsxLDM3IEBACiArIyBDb3B5cmlnaHQgMjAwOSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE2MTgsMTAgKzE2MjEsMTAgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1z dHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXQKICtjbGVhbl9yZXN0YXJ0ICRiaW5maWxlCiArCiArZ2Ri X3Rlc3QgInB0eXBlIHN0cnVjdCBzb21lX3N0cnVjdCIgInR5cGUgPSBzdHJ1Y3Qgc29tZV9zdHJ1 Y3Qge1xbXHJcbiBcdFxdKnZvaWQgZmllbGQ7XFtcclxuIFx0XF0qfSIKLUluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlw ZS5TCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1zdWJyYW5nZS1uby10eXBlLlMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5TCTIwMTQtMDYtMTYg MjM6MzA6MzAuMTEyOTQwNDg4ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLlMJMjAxNS0xMS0wMyAyMjoy MzoyNy4yMTQ4Nzc2MTcgKzAxMDAKIEBAIC0wLDAgKzEsMTIxIEBACiArLyogVGhpcyB0ZXN0Y2Fz ZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE3NDQsMTAgKzE3NDcs MTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1zdWJyYW5nZS1uby10eXBlLlMKICsJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8K ICsKICsJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KLUluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5leHAK K0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LXN1YnJhbmdlLW5vLXR5cGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCTIwMTQtMDYtMTYg MjM6MzA6MzAuMTEyOTQwNDg4ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAkyMDE1LTExLTAzIDIy OjIzOjI3LjIxNTg3NzYyMyArMDEwMAogQEAgLTAsMCArMSwzOSBAQAogKyMgQ29weXJpZ2h0IDIw MTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNzg4LDEwICsxNzkxLDEw IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItc3VicmFuZ2Utbm8tdHlwZS5leHAKICsKICtnZGJfdGVzdCAicHR5cGUgbm90eXBlX3N0cmlu ZyIge3R5cGUgPSBjaGFyIFxbMTI5XF19CiArZ2RiX3Rlc3QgInAgbm90eXBlX3N0cmluZyIgIiA9 ICd4JyA8cmVwZWF0cyAxMjkgdGltZXM+IgotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCitJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3 YXJmLXN0cmlkZS5leHAJMjAxNC0wNi0xNiAyMzozMDozMC4xMTI5NDA0ODggKzAyMDAKKysrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlk ZS5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTU4Nzc2MjMgKzAxMDAKIEBAIC0wLDAgKzEsNDIg QEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpA QCAtMTgzNSwxMCArMTgzOCwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAKICtnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAiYnJlYWstaGVyZSIgIi4qYnJlYWstaGVyZS4qIgogK2dkYl90ZXN0ICJwIGM0MHB0 KDEpIiAiID0gJzAtaGVsbG8uKiIKICtnZGJfdGVzdCAicCBjNDBwdCgyKSIgIiA9ICcxLWhlbGxv LioiCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2R3YXJmLXN0cmlkZS5mOTAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5mOTAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAkyMDE0LTA2 LTE2IDIzOjMwOjMwLjExMjk0MDQ4OCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAkyMDE1LTExLTAzIDIyOjIz OjI3LjIxNTg3NzYyMyArMDEwMAogQEAgLTAsMCArMSw0MCBAQAogKyEgQ29weXJpZ2h0IDIwMDkg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTg4MCwxMCArMTg4MywxMCBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3 YXJmLXN0cmlkZS5mOTAKICsgIHByaW50ICosIGM0MHB0ICAhIGJyZWFrLWhlcmUKICsKICtlbmQg cHJvZ3JhbSByZXBybwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9keW5hbWljLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAJMjAxNC0wNi0xNiAy MzozNzo0NS41NjgzNjI1NjMgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCTIwMTUtMTEtMDMgMjI6Mjc6MjUuNDgxMjgx OTA0ICswMTAwCiBAQCAtMCwwICsxLDE1MSBAQAogKyMgQ29weXJpZ2h0IDIwMDcgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xOTMxLDkgKzE5MzQsOSBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiAr Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcngtaW5pdCIKICtnZGJfdGVzdCAicCB2YXJ4 IiAiXFwkXFswLTlcXSogPSA8bm90IGFsbG9jYXRlZD4iICJwIHZhcnggdW5hbGxvY2F0ZWQiCiAr Z2RiX3Rlc3QgInB0eXBlIHZhcngiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmFy eCB1bmFsbG9jYXRlZCIKLStnZGJfdGVzdCAicCB2YXJ4KDEsNSwxNykiICJubyBzdWNoIHZlY3Rv ciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgInAgdmFyeCgxLDUsMTcpIHVuYWxsb2Nh dGVkIgotK2dkYl90ZXN0ICJwIHZhcngoMSw1LDE3KT0xIiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVu dCBiZWNhdXNlIG5vdCBhbGxvY2F0ZWQiICJwIHZhcngoMSw1LDE3KT0xIHVuYWxsb2NhdGVkIgot K2dkYl90ZXN0ICJwdHlwZSB2YXJ4KDEsNSwxNykiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJl Y2F1c2Ugbm90IGFsbG9jYXRlZCIgInB0eXBlIHZhcngoMSw1LDE3KSB1bmFsbG9jYXRlZCIKKytn ZGJfdGVzdCAicCB2YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9y IG5vdCBhbGxvY2F0ZWRcKX0gInAgdmFyeCgxLDUsMTcpIHVuYWxsb2NhdGVkIgorK2dkYl90ZXN0 ICJwIHZhcngoMSw1LDE3KT0xIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3Qg YWxsb2NhdGVkXCl9ICJwIHZhcngoMSw1LDE3KT0xIHVuYWxsb2NhdGVkIgorK2dkYl90ZXN0ICJw dHlwZSB2YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBh bGxvY2F0ZWRcKX0gInB0eXBlIHZhcngoMSw1LDE3KSB1bmFsbG9jYXRlZCIKICsKICtnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyeC1hbGxvY2F0ZWQiXQogK2dkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJ2YXJ4LWFsbG9jYXRlZCIKQEAgLTE5NzksMTYgKzE5ODIsMTYg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9k eW5hbWljLmV4cAogK2dkYl90ZXN0ICJwIHZhcnYiICJcXCRcWzAtOVxdKiA9ICg8bm90IGFzc29j aWF0ZWQ+fC4qKENhbm5vdCBhY2Nlc3MgaXR8VW5hYmxlIHRvIGFjY2VzcyB0aGUgb2JqZWN0KSBi ZWNhdXNlIHRoZSBvYmplY3QgaXMgbm90IGFzc29jaWF0ZWQuKSIgInAgdmFydiBkZWFzc29jaWF0 ZWQiCiArZ2RiX3Rlc3QgInB0eXBlIHZhcnYiICJ0eXBlID0gKDxub3QgYXNzb2NpYXRlZD58Lioo Q2Fubm90IGFjY2VzcyBpdHxVbmFibGUgdG8gYWNjZXNzIHRoZSBvYmplY3QpIGJlY2F1c2UgdGhl IG9iamVjdCBpcyBub3QgYXNzb2NpYXRlZC4pIiAicHR5cGUgdmFydiBkZWFzc29jaWF0ZWQiCiAr Z2RiX3Rlc3QgInAgbCIgIlxcJFxbMC05XF0qID0gXFwuRkFMU0VcXC4iICJwIGwgaWYgdmFydiBk ZWFzc29jaWF0ZWQiCi0rZ2RiX3Rlc3QgInAgdmFydigxLDUsMTcpIiAibm8gc3VjaCB2ZWN0b3Ig ZWxlbWVudCBiZWNhdXNlIG5vdCBhc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJ2KDEs NSwxNykiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFzc29jaWF0ZWQiCisr Z2RiX3Rlc3QgInAgdmFydigxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3Rv ciBub3QgYXNzb2NpYXRlZFwpfQorK2dkYl90ZXN0ICJwdHlwZSB2YXJ2KDEsNSwxNykiIHtubyBz dWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhc3NvY2lhdGVkXCl9CiArCiArZ2RiX2Jy ZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcngtZGVhbGxvY2F0ZWQiXQogK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJ2YXJ4LWRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwIHZh cngiICJcXCRcWzAtOVxdKiA9IDxub3QgYWxsb2NhdGVkPiIgInAgdmFyeCBkZWFsbG9jYXRlZCIK ICtnZGJfdGVzdCAicHR5cGUgdmFyeCIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2 YXJ4IGRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwIGwiICJcXCRcWzAtOVxdKiA9IFxcLkZBTFNF XFwuIiAicCBsIGlmIHZhcnggZGVhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInAgdmFyeCgxLDUsMTcp IiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBiZWNhdXNlIG5vdCBhbGxvY2F0ZWQiICJwIHZhcngo MSw1LDE3KSBkZWFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgdmFyeCgxLDUsMTcpIiAibm8g c3VjaCB2ZWN0b3IgZWxlbWVudCBiZWNhdXNlIG5vdCBhbGxvY2F0ZWQiICJwdHlwZSB2YXJ4KDEs NSwxNykgZGVhbGxvY2F0ZWQiCisrZ2RiX3Rlc3QgInAgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2 ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwIHZhcngoMSw1LDE3KSBk ZWFsbG9jYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0 b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwdHlwZSB2YXJ4KDEsNSwxNykg ZGVhbGxvY2F0ZWQiCiArCiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZh cnktcGFzc2VkIl0KICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyeS1wYXNzZWQiCkBA IC0yMDM2LDEwICsyMDM5LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAKICtnZGJfdGVzdCAicCB2YXJ0KDMsOCkiICJc XCRcWzAtOVxdKiA9IDkiCiArIyBtYXBzIHRvIGZvbzo6dmFyeSgxLDMpCiArZ2RiX3Rlc3QgInAg dmFydCgyLDkpIiAiXFwkXFswLTlcXSogPSAxMCIKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5mOTAKK0luZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMu ZjkwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTEzOTQwNDg4ICswMjAwCisrKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAkyMDE1LTExLTAz IDIyOjIzOjI3LjIxNTg3NzYyMyArMDEwMAogQEAgLTAsMCArMSw5OCBAQAogKyEgQ29weXJpZ2h0 IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMjEzOSwxMCArMjE0 MiwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2R5bmFtaWMuZjkwCiArICBpZiAoeCAoMSwgMSkgLm5lLiA4IC5vci4geCAoMiwgMikgLm5l LiA5IC5vci4geCAoMSwgMikgLm5lLiA0KSBjYWxsIGFib3J0CiArICBpZiAoeCAoMywgMSkgLm5l LiAxMCkgY2FsbCBhYm9ydAogK2VuZAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAJMjAxNC0w Ni0xNiAyMzozMDozMC4xMTQ5NDA0ODkgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4y MTU4Nzc2MjMgKzAxMDAKIEBAIC0wLDAgKzEsNTkgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjIwMywxMCArMjIwNiwxMCBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5l eHAKICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyLWZpbmlzaCIKICtnZGJfdGVzdCAi cCBlIiAiXFwkXFswLTlcXSogPSAnZSAgICciICJwIGUgcmUtc2V0IgogK2dkYl90ZXN0ICJwIGYi ICJcXCRcWzAtOVxdKiA9IFxcKFxcKCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdm ICAgJywgJ2YgICAnLCAnZiAgICdcXCkgXFwoICdmMiAgJywgJ2YgICAnLCAnZiAgICcsICdmICAg JywgJ2YgICAnLCAnZiAgICcsICdmICAgJ1xcKSBcXCggJ2YgICAnLCAnZiAgICcsICdmICAgJywg J2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnXFwpIFxcKSIgInAgKmYgcmUtc2V0IgotSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcu ZjkwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9zdHJpbmcuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3N0cmluZy5mOTAJMjAxNC0wNi0xNiAyMzozMDozMC4xMTQ5NDA0ODkgKzAy MDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0 cmluZy5mOTAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTU4Nzc2MjMgKzAxMDAKIEBAIC0wLDAgKzEs MzcgQEAKICshIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgog KyEKQEAgLTIyNDUsMTAgKzIyNDgsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkwCiArICBoID0gJ2gnCiArICBjYWxsIGZv byAoZywgaCkKICtlbmQKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCTIwMTQtMDYt MTYgMjM6MzA6MzAuMTE0OTQwNDg5ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4y MTU4Nzc2MjMgKzAxMDAKIEBAIC0wLDAgKzEsNzIgQEAKICsjIENvcHlyaWdodCAyMDExIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjMyMiwxMCArMjMyNSwxMCBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdl LmV4cAogK2dkYl91bmxvYWQKICtzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5 OTkiCiArZ2RiX3Rlc3Qge3AgJGEgKDMsIDI6Mil9IHsgPSBcKDIzXCl9Ci1JbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAorSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFu Z2UuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3N1YnJhbmdlLmY5MAkyMDE0LTA2LTE2IDIzOjMwOjMwLjExNDk0MDQ4OSArMDIwMAor KysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFu Z2UuZjkwCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjE1ODc3NjIzICswMTAwCiBAQCAtMCwwICsxLDI4 IEBACiArISBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsh CkBAIC0yMzU1LDEwICsyMzU4LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCiArICBwdHIgPT4gYQogKyAgd3JpdGUg KCosKikgYSAgICAgICAgICAgICAgICAgISBicmVhay1zdGF0aWMKICtlbmQKLUluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5j CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZh ci1zdGFsZS10eXBlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3Vp dGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTE0OTQw NDg5ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkv bWkyLXZhci1zdGFsZS10eXBlLmMJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTY4Nzc2MjkgKzAxMDAK IEBAIC0wLDAgKzEsMjYgQEAKICsvKiBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICsKQEAgLTIzODYsMTAgKzIzODksMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMKICsKICsg IHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUv Z2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5 cGUuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTE0OTQwNDg5ICswMjAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAky MDE1LTExLTAzIDIyOjIzOjI3LjIxNjg3NzYyOSArMDEwMAogQEAgLTAsMCArMSw1NyBAQAogKyMg Q29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIwpAQCAtMjQ0 OCwxMCArMjQ1MSwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRl L2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCiArbWlfY3JlYXRlX3Zhcm9iaiAidmxhIiAi dmxhIiAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHZsYSIKICsKICttaV9nZGJfdGVzdCAiLXZhci11 cGRhdGUgKiIgIlxcXmRvbmUsY2hhbmdlbGlzdD0uKiIgIi12YXItdXBkYXRlICoiCi1JbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdp c3Rlci1mdW5jLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwky MDE0LTA2LTE2IDIzOjMwOjMwLjExNTk0MDQ5MCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwkyMDE1 LTExLTAzIDIyOjIzOjI3LjIxNjg3NzYyOSArMDEwMAogQEAgLTAsMCArMSwyMiBAQAogKy8qIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTI0NzUsMTAg KzI0NzgsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIu b3B0L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCiArewogKyAgcmV0dXJuIGFyclswXTsKICt9 Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXkt ZnJvbS1yZWdpc3Rlci5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0 ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYwkyMDE0LTA2 LTE2IDIzOjMwOjMwLjExNTk0MDQ5MCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMJMjAxNS0xMS0wMyAyMjoy MzoyNy4yMTY4Nzc2MjkgKzAxMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBUaGlzIGZpbGUgaXMg cGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0yNTA4LDEwICsyNTExLDEwIEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1m cm9tLXJlZ2lzdGVyLmMKICsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4cAorSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9t LXJlZ2lzdGVyLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0 ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTE1 OTQwNDkwICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIu b3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjE2ODc3NjI5 ICswMTAwCiBAQCAtMCwwICsxLDMzIEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0yNTQ2LDEwICsyNTQ5LDEwIEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVy LmV4cAogKyMgU2VlbiByZWdyZXNzaW9uOgogKyMgQWRkcmVzcyByZXF1ZXN0ZWQgZm9yIGlkZW50 aWZpZXIgImFyciIgd2hpY2ggaXMgaW4gcmVnaXN0ZXIgJHJkaQogK2dkYl90ZXN0ICJwIGFyclxb MFxdIiAiXFwkXFswLTlcXSsgPSA0MiIKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90 ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCTIwMTQtMDYt MTYgMjM6MzA6MzAuMTE1OTQwNDkwICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTY4 Nzc2MjkgKzAxMDAKIEBAIC0wLDAgKzEsMTA0IEBACiArIyBDb3B5cmlnaHQgMjAwOCwgMjAwOSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0yNjU1LDEwICsyNjU4LDEwIEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJh eXMuZXhwCiArfQogK2dkYl90ZXN0ICJwcmludCBEeW5BcnJDaGFyIiAiLiogPSAnYWJjZGVmZ2hp amtsbSciICJQcmludCBkeW5hbWljIGFycmF5IG9mIGNoYXIiCiArCi1JbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLnBhcworSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJy YXlzLnBhcwkyMDE0LTA2LTE2IDIzOjMwOjMwLjExNTk0MDQ5MCArMDIwMAorKysrIGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCTIwMTUtMTEt MDMgMjI6MjM6MjcuMjE2ODc3NjI5ICswMTAwCiBAQCAtMCwwICsxLDgyIEBACiArewogKyBDb3B5 cmlnaHQgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTI3NDIs MTEgKzI3NDUsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGFzY2FsL2FycmF5cy5wYXMKICsgIHMgOj0gJ3Rlc3QnIzAnc3RyaW5nJzsKICsgIHdyaXRl bG4ocyk7IHsgc2V0IGJyZWFrcG9pbnQgMiBoZXJlIH0KICtlbmQuCi1JbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTQtMDYtMTYg MjM6MzA6MjkuMjc4OTM5NzAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVz dHN1aXRlL2xpYi9nZGIuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTE3OTQwNDkyICswMjAwCi1A QCAtMTU5LDYgKzE1OSwxMSBAQCBwcm9jIGdkYl91bmxvYWQge30geworLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE1LTExLTAzIDIyOjIz OjI2LjY4NDg3NDQ1NyArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3Vp dGUvbGliL2dkYi5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTc4Nzc2MzUgKzAxMDAKK0BAIC0x NzMsNiArMTczLDExIEBAIHByb2MgZ2RiX3VubG9hZCB7fSB7CiAgCSAgICBzZW5kX2dkYiAieVxu IgogIAkgICAgZXhwX2NvbnRpbnVlCiAgCX0KQEAgLTI3NTgsMTAgKzI3NjEsMTAgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogIAktcmUgIkRp c2NhcmQgc3ltYm9sIHRhYmxlIGZyb20gLip5IG9yIG4uKiQiIHsKICAJICAgIHNlbmRfZ2RiICJ5 XG4iCiAgCSAgICBleHBfY29udGludWUKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90 ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0 MDYxMy5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAxNC0wNi0xMyAwMzo1OToz Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUv bGliL3Bhc2NhbC5leHAJMjAxNC0wNi0xNiAyMzozMDozMC4xMTc5NDA0OTIgKzAyMDAKKy0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAx NS0xMC0yNyAwMjo0ODozMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjE3ODc3 NjM1ICswMTAwCiBAQCAtMzcsNiArMzcsOSBAQCBwcm9jIHBhc2NhbF9pbml0IHt9IHsKICAgICAg Z2xvYmFsIHBhc2NhbF9jb21waWxlcl9pc19mcGMKICAgICAgZ2xvYmFsIGdwY19jb21waWxlcgoK ZGlmZiAtLWdpdCBhL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2ggYi9nZGItYXR0 YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCmluZGV4IDgzMDA1YjQuLmM0Y2Q4NGUgMTAwNjQ0 Ci0tLSBhL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKKysrIGIvZ2RiLWF0dGFj aC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaApAQCAtMzcsMTMgKzM3LDEzIEBAIGdkYi9nZGJzZXJ2 ZXIvCiAJKGxpbnV4X2NyZWF0ZV9pbmZlcmlvciwgbGludXhfdHJhY2Vmb3JrX2NoaWxkKTogQ2Fs bCBpdCBpbnN0ZWFkIG9mCiAJZGlyZWN0IHB0cmFjZS4KIAotSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL25hdC9saW51eC1wdHJhY2UuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUw NzA5Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE1LTA3LTA5IDE4OjI0OjEzLjcwNTE0 MDM4NCArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL25hdC9saW51eC1wdHJhY2Uu YwkyMDE1LTA3LTA5IDE4OjI0OjI0LjkxMTIzNTk3MyArMDIwMAotQEAgLTIzLDYgKzIzLDEwIEBA Ci0gI2luY2x1ZGUgImJ1ZmZlci5oIgorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2Ri L25hdC9saW51eC1wdHJhY2UuYwkyMDE1LTEwLTIyIDIyOjM1OjAwLjQ3NDkxNzEzOSArMDIwMAor KysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9uYXQvbGludXgtcHRyYWNlLmMJMjAxNS0xMC0y MiAyMjozNTowOC4xMjA5NjI3MjkgKzAyMDAKK0BAIC0yNCw2ICsyNCwxMCBAQAogICNpbmNsdWRl ICJnZGJfd2FpdC5oIgorICNpbmNsdWRlICJnZGJfcHRyYWNlLmgiCiAgCiArI2lmZGVmIEhBVkVf U0VMSU5VWF9TRUxJTlVYX0gKICsjIGluY2x1ZGUgPHNlbGludXgvc2VsaW51eC5oPgpAQCAtNTIs NyArNTIsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbmF0L2xpbnV4LXB0cmFj ZS5jCiAgLyogU3RvcmVzIHRoZSBwdHJhY2Ugb3B0aW9ucyBzdXBwb3J0ZWQgYnkgdGhlIHJ1bm5p bmcga2VybmVsLgogICAgIEEgdmFsdWUgb2YgLTEgbWVhbnMgd2UgZGlkIG5vdCBjaGVjayBmb3Ig ZmVhdHVyZXMgeWV0LiAgQSB2YWx1ZQogICAgIG9mIDAgbWVhbnMgdGhlcmUgYXJlIG5vIHN1cHBv cnRlZCBmZWF0dXJlcy4gICovCi1AQCAtNDcsNiArNTEsOCBAQCBsaW51eF9wdHJhY2VfYXR0YWNo X2ZhaWxfcmVhc29uIChwaWRfdCBwCitAQCAtNDgsNiArNTIsOCBAQCBsaW51eF9wdHJhY2VfYXR0 YWNoX2ZhaWxfcmVhc29uIChwaWRfdCBwCiAgICAgIGJ1ZmZlcl94bWxfcHJpbnRmIChidWZmZXIs IF8oInByb2Nlc3MgJWQgaXMgYSB6b21iaWUgIgogIAkJCQkgIi0gdGhlIHByb2Nlc3MgaGFzIGFs cmVhZHkgdGVybWluYXRlZCIpLAogIAkJICAgICAgIChpbnQpIHBpZCk7CkBAIC02MSw3ICs2MSw3 IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKICB9 CiAgCiAgLyogU2VlIGxpbnV4LXB0cmFjZS5oLiAgKi8KLUBAIC01ODEsNiArNTg3LDIyIEBAIGxp bnV4X3B0cmFjZV9pbml0X3dhcm5pbmdzICh2b2lkKQorQEAgLTU5NCw2ICs2MDAsMjIgQEAgbGlu dXhfcHRyYWNlX2luaXRfd2FybmluZ3MgKHZvaWQpCiAgICBsaW51eF9wdHJhY2VfdGVzdF9yZXRf dG9fbnggKCk7CiAgfQogIApAQCAtODQsMTEgKzg0LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKICAvKiBFeHRyYWN0IGV4dGVuZGVkIHB0cmFj ZSBldmVudCBmcm9tIHdhaXQgc3RhdHVzLiAgKi8KICAKICBpbnQKLUluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi9uYXQvbGludXgtcHRyYWNlLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyMi9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4y MDE1MDcwOS5vcmlnL2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNS0wNy0wOSAxODoyNDoxMy43 MDYxNDAzOTIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9uYXQvbGludXgtcHRy YWNlLmgJMjAxNS0wNy0wOSAxODoyNDoyNC45MTIyMzU5ODEgKzAyMDAKLUBAIC0xNTcsNiArMTU3 LDcgQEAgZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2F0dGFjaF9mYWlsX3JlYQorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE1LTEwLTIyIDIy OjM1OjAwLjQ3NDkxNzEzOSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9uYXQv bGludXgtcHRyYWNlLmgJMjAxNS0xMC0yMiAyMjozNTowOC4xMjA5NjI3MjkgKzAyMDAKK0BAIC0x NjQsNiArMTY0LDcgQEAgZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2F0dGFjaF9mYWlsX3JlYQog IGV4dGVybiBjaGFyICpsaW51eF9wdHJhY2VfYXR0YWNoX2ZhaWxfcmVhc29uX3N0cmluZyAocHRp ZF90IHB0aWQsIGludCBlcnIpOwogIAogIGV4dGVybiB2b2lkIGxpbnV4X3B0cmFjZV9pbml0X3dh cm5pbmdzICh2b2lkKTsKQEAgLTk2LDExICs5NiwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCiAgZXh0ZXJuIHZvaWQgbGludXhfY2hlY2tfcHRy YWNlX2ZlYXR1cmVzICh2b2lkKTsKICBleHRlcm4gdm9pZCBsaW51eF9lbmFibGVfZXZlbnRfcmVw b3J0aW5nIChwaWRfdCBwaWQsIGludCBhdHRhY2hlZCk7CiAgZXh0ZXJuIHZvaWQgbGludXhfZGlz YWJsZV9ldmVudF9yZXBvcnRpbmcgKHBpZF90IHBpZCk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvY29uZmlndXJlLmFjCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2Nv bmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIv Y29uZmlndXJlLmFjCTIwMTUtMDctMDkgMTg6MjQ6MTMuNzA3MTQwNDAxICswMjAwCi0rKysgZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvY29uZmlndXJlLmFjCTIwMTUtMDctMDkgMTg6MjQ6MjQuOTEz MjM1OTkwICswMjAwCi1AQCAtMjE1MCw2ICsyMTUwLDEwIEBAIGNhc2UgJGhvc3Rfb3MgaW4KKy0t LSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxNS0xMC0yMiAy MjozNTowMC40NzU5MTcxNDUgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvY29u ZmlndXJlLmFjCTIwMTUtMTAtMjIgMjI6MzU6MDguMTIxOTYyNzM1ICswMjAwCitAQCAtMjA5Niw2 ICsyMDk2LDEwIEBAIGNhc2UgJGhvc3Rfb3MgaW4KICBlc2FjCiAgQUNfREVGSU5FX1VOUVVPVEVE KEdEQklOSVQsIiRnZGJpbml0IixbVGhlIC5nZGJpbml0IGZpbGVuYW1lLl0pCiAgCkBAIC0xMTEs MTEgKzExMSwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvY29uZmlndXJlLmFj CiAgZG5sIEhhbmRsZSBvcHRpb25hbCBmZWF0dXJlcyB0aGF0IGNhbiBiZSBlbmFibGVkLgogIAog ICMgU3VwcG9ydCBmb3IgLS13aXRoLXN5c3Jvb3QgaXMgYSBjb3B5IG9mIEdEQl9BQ19XSVRIX0RJ UiwKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFj CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2dkYnNlcnZlci9j b25maWd1cmUuYWMJMjAxNS0wNy0wOSAxODoyNDoxMy43MDcxNDA0MDEgKzAyMDAKLSsrKyBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTUtMDctMDkgMTg6 MjQ6MjQuOTEzMjM1OTkwICswMjAwCi1AQCAtNDk5LDYgKzQ5OSwxMCBAQCBpZiAkd2FudF9pcGEg OyB0aGVuCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZp Z3VyZS5hYwkyMDE1LTEwLTIyIDIyOjM1OjAwLjQ3NTkxNzE0NSArMDIwMAorKysrIGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTUtMTAtMjIgMjI6MzU6 MDguMTIxOTYyNzM1ICswMjAwCitAQCAtNTAyLDYgKzUwMiwxMCBAQCBpZiAkd2FudF9pcGEgOyB0 aGVuCiAgICAgZmkKICBmaQogIApAQCAtMTI2LDExICsxMjYsMTEgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMKICBBQ19TVUJTVChHREJTRVJW RVJfREVQRklMRVMpCiAgQUNfU1VCU1QoR0RCU0VSVkVSX0xJQlMpCiAgQUNfU1VCU1Qoc3J2X3ht bGJ1aWx0aW4pCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ2Ric2VydmVyL2xpbnV4 LWxvdy5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2dkYnNlcnZlci9saW51eC1s b3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZ2Ric2Vy dmVyL2xpbnV4LWxvdy5jCTIwMTUtMDctMDkgMTg6MjQ6MTMuNzA5MTQwNDE4ICswMjAwCi0rKysg Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTUtMDctMDkg MTg6MjQ6MjQuOTE0MjM1OTk4ICswMjAwCi1AQCAtNzU1LDYgKzc1NSwyOSBAQCBhZGRfbHdwIChw dGlkX3QgcHRpZCkKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9nZGJzZXJ2ZXIv bGludXgtbG93LmMJMjAxNS0xMC0yMiAyMjozNTowMC40NzY5MTcxNTEgKzAyMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyMi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTUtMTAtMjIgMjI6 MzU6MDguMTIyOTYyNzQxICswMjAwCitAQCAtODQzLDYgKzg0MywyOSBAQCBhZGRfbHdwIChwdGlk X3QgcHRpZCkKICAgIHJldHVybiBsd3A7CiAgfQogIApAQCAtMTYwLDcgKzE2MCw3IEBAIEluZGV4 OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKICAvKiBTdGFy dCBhbiBpbmZlcmlvciBwcm9jZXNzIGFuZCByZXR1cm5zIGl0cyBwaWQuCiAgICAgQUxMQVJHUyBp cyBhIHZlY3RvciBvZiBwcm9ncmFtLW5hbWUgYW5kIGFyZ3MuICovCiAgCi1AQCAtNzc4LDcgKzgw MSw3IEBAIGxpbnV4X2NyZWF0ZV9pbmZlcmlvciAoY2hhciAqcHJvZ3JhbSwgY2gKK0BAIC04NjYs NyArODg5LDcgQEAgbGludXhfY3JlYXRlX2luZmVyaW9yIChjaGFyICpwcm9ncmFtLCBjaAogICAg aWYgKHBpZCA9PSAwKQogICAgICB7CiAgICAgICAgY2xvc2VfbW9zdF9mZHMgKCk7CkBAIC0xNjks MTAgKzE2OSwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ2Ric2VydmVyL2xp bnV4LWxvdy5jCiAgCiAgI2lmbmRlZiBfX0FORFJPSURfXyAvKiBCaW9uaWMgZG9lc24ndCB1c2Ug U0lHUlRNSU4gdGhlIHdheSBnbGliYyBkb2VzLiAgKi8KICAgICAgICBzaWduYWwgKF9fU0lHUlRN SU4gKyAxLCBTSUdfREZMKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9pbmYtcHRy YWNlLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaW5mLXB0cmFjZS5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9pbmYtcHRyYWNlLmMJMjAx NS0wNy0wOSAxODoyNDoxMy43MTAxNDA0MjYgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9pbmYtcHRyYWNlLmMJMjAxNS0wNy0wOSAxODoyNDoyNC45MTUyMzYwMDcgKzAyMDAKKy0t LSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9pbmYtcHRyYWNlLmMJMjAxNS0xMC0yMiAy MjozNTowMC40Nzc5MTcxNTYgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaW5m LXB0cmFjZS5jCTIwMTUtMTAtMjIgMjI6MzU6MDguMTIyOTYyNzQxICswMjAwCiBAQCAtNzksNyAr NzksMTUgQEAgc3RhdGljIHZvaWQKICBpbmZfcHRyYWNlX21lICh2b2lkKQogIHsKQEAgLTE4OSwx MCArMTg5LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9pbmYtcHRyYWNlLmMK ICB9CiAgCiAgLyogU3RhcnQgYSBuZXcgaW5mZXJpb3IgVW5peCBjaGlsZCBwcm9jZXNzLiAgRVhF Q19GSUxFIGlzIHRoZSBmaWxlIHRvCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbGlu dXgtbmF0LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbGludXgtbmF0LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIw MTUtMDctMDkgMTg6MjQ6MTMuNzEyMTQwNDQzICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcw OS9nZGIvbGludXgtbmF0LmMJMjAxNS0wNy0wOSAxODoyNDoyNC45MTYyMzYwMTUgKzAyMDAKKy0t LSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDE1LTEwLTIyIDIy OjM1OjAwLjQ3NzkxNzE1NiArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9saW51 eC1uYXQuYwkyMDE1LTEwLTIyIDIyOjM1OjA4LjEyMzk2Mjc0NyArMDIwMAogQEAgLTExODQsNiAr MTE4NCw3IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXQKICB7CiAg ICBzdHJ1Y3QgY2xlYW51cCAqcmVzdG9yZV9wZXJzb25hbGl0eQpAQCAtMjMxLDEwICsyMzEsMTAg QEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2xpbnV4LW5hdC5jCiAgCiAgICBkb19j bGVhbnVwcyAocmVzdG9yZV9wZXJzb25hbGl0eSk7CiAgfQotSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL2NvbmZpZy5pbgorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9jb25m aWcuaW4KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2NvbmZp Zy5pbgkyMDE1LTA3LTA5IDE4OjI0OjEzLjcxMzE0MDQ1MiArMDIwMAotKysrIGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL2NvbmZpZy5pbgkyMDE1LTA3LTA5IDE4OjI0OjI0LjkxNjIzNjAxNSArMDIw MAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE1LTEwLTIy IDIyOjM1OjAwLjQ3ODkxNzE2MiArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9j b25maWcuaW4JMjAxNS0xMC0yMiAyMjozNTowOC4xMjM5NjI3NDcgKzAyMDAKIEBAIC0yNjQsNiAr MjY0LDkgQEAKICAvKiBEZWZpbmUgaWYgbGlicnBtIGxpYnJhcnkgaXMgYmVpbmcgdXNlZC4gKi8K ICAjdW5kZWYgSEFWRV9MSUJSUE0KQEAgLTI1NSwxMSArMjU1LDExIEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgYHNldGxvY2FsZScgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfU0VUTE9DQUxFCiAgCi1J bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvY29uZmlndXJlCitJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAx NTA3MDkub3JpZy9nZGIvY29uZmlndXJlCTIwMTUtMDctMDkgMTg6MjQ6MTMuNzE4MTQwNDk1ICsw MjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvY29uZmlndXJlCTIwMTUtMDctMDkgMTg6 MjQ6MjQuOTIwMjM2MDQ5ICswMjAwCi1AQCAtMTQyMjgsNiArMTQyMjgsNjQgQEAgY2F0ID4+Y29u ZmRlZnMuaCA8PF9BQ0VPRgorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL2NvbmZp Z3VyZQkyMDE1LTEwLTIyIDIyOjM1OjAwLjQ4MDkxNzE3NCArMDIwMAorKysrIGdkYi03LjEwLjUw LjIwMTUxMDIyL2dkYi9jb25maWd1cmUJMjAxNS0xMC0yMiAyMjozNTowOC4xMjU5NjI3NTkgKzAy MDAKK0BAIC0xNDY5MSw2ICsxNDY5MSw2NCBAQCBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiAg X0FDRU9GCiAgCiAgCkBAIC0zMjQsMTEgKzMyNCwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvY29uZmlndXJlCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9vdCBpcyBh IGNvcHkgb2YgR0RCX0FDX1dJVEhfRElSLAogICMgZXhjZXB0IHRoYXQgdGhlIGFyZ3VtZW50IHRv IC0td2l0aC1zeXNyb290IGlzIG9wdGlvbmFsLgotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2dkYnNlcnZlci9jb25maWcuaW4KK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIv Z2Ric2VydmVyL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDku b3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE1LTA3LTA5IDE4OjI0OjEzLjcxOTE0MDUw MyArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4J MjAxNS0wNy0wOSAxODoyNDoyNC45MjAyMzYwNDkgKzAyMDAKLUBAIC0xMTMsNiArMTEzLDkgQEAK Ky0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCTIw MTUtMTAtMjIgMjI6MzU6MDAuNDgxOTE3MTgwICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjIvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNS0xMC0yMiAyMjozNTowOC4xMjY5NjI3NjUg KzAyMDAKK0BAIC0xMTcsNiArMTE3LDkgQEAKICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgYG1jaGVjaycgbGlicmFyeSAoLWxtY2hlY2spLiAqLwogICN1bmRlZiBIQVZFX0xJQk1DSEVD SwogIApAQCAtMzM4LDcgKzMzOCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9n ZGJzZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgYnJh bmNoIHRyYWNpbmcuICovCiAgI3VuZGVmIEhBVkVfTElOVVhfQlRSQUNFCiAgCi1AQCAtMTg5LDYg KzE5Miw5IEBACitAQCAtMTk2LDYgKzE5OSw5IEBACiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIGBzZXRucycgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfU0VUTlMKICAKQEAgLTM0 OCwxMSArMzQ4LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nZGJzZXJ2ZXIv Y29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZ3R0eS5oPiBoZWFk ZXIgZmlsZS4gKi8KICAjdW5kZWYgSEFWRV9TR1RUWV9ICiAgCi1JbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDIyL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4y MDE1MDcwOS5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTUtMDctMDkgMTg6MjQ6MTMu NzIxMTQwNTIwICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ2Ric2VydmVyL2Nv bmZpZ3VyZQkyMDE1LTA3LTA5IDE4OjI0OjI0LjkyMjIzNjA2NiArMDIwMAotQEAgLTcwMjIsNiAr NzAyMiw2NCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIu b3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE1LTEwLTIyIDIyOjM1OjAwLjQ4MjkxNzE4 NiArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJl CTIwMTUtMTAtMjIgMjI6MzU6MDguMTI3OTYyNzcwICswMjAwCitAQCAtNzI5MCw2ICs3MjkwLDY0 IEBAIGlmICR3YW50X2lwYSA7IHRoZW4KICAgICBmaQogIGZpCiAgCgpkaWZmIC0tZ2l0IGEvZ2Ri LWZvcnRyYW4tYWxsb2NhdGUtbm90LWluaXRlZC5wYXRjaCBiL2dkYi1mb3J0cmFuLWFsbG9jYXRl LW5vdC1pbml0ZWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWIy NzE2NQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1mb3J0cmFuLWFsbG9jYXRlLW5vdC1pbml0ZWQu cGF0Y2gKQEAgLTAsMCArMSw2MSBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRj aGVzLzIwMTUtMTEvbXNnMDAxMjcuaHRtbAorU3ViamVjdDogW3Rlc3RzdWl0ZSBwYXRjaF0gRm9y dHJhbjogYWxsb2NhdGUoKWQgbWVtb3J5IGlzIHVuaW5pdGlhbGl6ZWQKKworCistLW1QM0RScGVK RFNFK2NpdVEKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQorQ29u dGVudC1EaXNwb3NpdGlvbjogaW5saW5lCisKK0hpLAorCisgIGFsbG9jYXRlICh2bGExICg1KSkg ICAgICAgICAhIHZsYTEtbm90LWFsbG9jYXRlZAorICBsID0gYWxsb2NhdGVkKHZsYTEpICAgICAg ICAgISB2bGExLWFsbG9jYXRlZCAgICAgPC0tLS0tLS0tLS0tLS0tLS0tLQorCitFeHBlY3Rpbmc6 IF4oNTEwLWRhdGEtZXZhbHVhdGUtZXhwcmVzc2lvbiB2bGExW15NCitdKyk/KDUxMFxeZG9uZSx2 YWx1ZT0iXCgwLCAwLCAwLCAwLCAwXCkiW15NCitdK1soXWdkYlspXSBeTQorWyBdKikKKzUxMC1k YXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMV5NCis1MTBeZG9uZSx2YWx1ZT0iKDEuODI5ODc0 MDNlLTA5LCA3Ljg0NzI3MTRlLTQ0LCAxLjgyOTg3NDAzZS0wOSwgNy44NDcyNzE0ZS00NCwgMi42 NzkyOTkyNmUrMjApIl5NCisoZ2RiKSBeTQorRkFJTDogZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4 cDogZXZhbHVhdGUgYWxsb2NhdGVkIHZsYQorCitnY2MtNC45LjItNi5mYzIxLng4Nl82NAorCitJ IHRoaW5rIHNvbWUgb2xkZXIgZ2ZvcnRyYW4gZGlkIGluaXRpYWxpemUgYWxsb2NhdGVkIG1lbW9y eSBidXQgdGhhdCBpcyBhbgordW5zcGVjaWZpZWQgYmVoYXZpb3IuICBJIGhhdmVuJ3QgZm91bmQg YW55IGluaXRpYWxpemF0aW9uIG1lbnRpb25lZAoraW4gRm9ydHJhbiA5MCBzdGFuZGFyZCAoZHJh ZnQpIGFuZCBpdCBpcyBhbHNvIGNsZWFybHkgc3RhdGVkIGhlcmU6CisJaHR0cHM6Ly9zb2Z0d2Fy ZS5pbnRlbC5jb20vZW4tdXMvZm9ydW1zL2ludGVsLWZvcnRyYW4tY29tcGlsZXItZm9yLWxpbnV4 LWFuZC1tYWMtb3MteC90b3BpYy8yNjg3ODYKKwlJbml0aWFsaXphdGlvbiB0byAwIG9mIGFsbG9j YXRlZCBhcnJheXMgKG9mIGludGVnZXJzKSBpcyBhbgorCWltcGxlbWVudGF0aW9uIGlzc3VlLiBp LmUuIGRvIG5vdCByZWx5IG9uIGl0LgorCitPSyBmb3IgY2hlY2staW4/CisKKworSmFuCisKKy0t bVAzRFJwZUpEU0UrY2l1UQorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFz Y2lpCitDb250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKKworZ2RiL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2cKKzIwMTUtMTEtMDMgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4KKworCSogZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cCAoZXZhbHVhdGUg YWxsb2NhdGVkIHZsYSk6IFJlbW92ZSB0ZXN0LgorCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxh LWZvcnRyYW4uZXhwCitpbmRleCBkMTkxNjIzLi5iYWVlN2Y4IDEwMDY0NAorLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5taS9taS12bGEtZm9ydHJhbi5leHAKK0BAIC02OCw4ICs2OCw2IEBAIG1pX2NyZWF0ZV9icmVh a3BvaW50ICItdCB2bGEuZjkwOiRicF9saW5lbm8iIDIgImRlbCIgInZsYSIgIi4qdmxhLmY5MCIg XAorIG1pX3J1bl9jbWQKKyBtaV9leHBlY3Rfc3RvcCAiYnJlYWtwb2ludC1oaXQiICJ2bGEiICIi ICIuKnZsYS5mOTAiICIkYnBfbGluZW5vIiBcCisgICB7ICIiICJkaXNwPVwiZGVsXCIiIH0gInJ1 biB0byBicmVha3BvaW50IGF0IGxpbmUgJGJwX2xpbmVubyIKKy1taV9nZGJfdGVzdCAiNTEwLWRh dGEtZXZhbHVhdGUtZXhwcmVzc2lvbiB2bGExIiBcCistICAiNTEwXFxeZG9uZSx2YWx1ZT1cIlxc KDAsIDAsIDAsIDAsIDBcXClcIiIgImV2YWx1YXRlIGFsbG9jYXRlZCB2bGEiCisgCisgbWlfY3Jl YXRlX3Zhcm9ial9jaGVja2VkIHZsYTFfYWxsb2NhdGVkIHZsYTEgInJlYWxcXFwoa2luZD00XFxc KSBcXFwoNVxcXCkiIFwKKyAgICJjcmVhdGUgbG9jYWwgdmFyaWFibGUgdmxhMV9hbGxvY2F0ZWQi CisKKy0tbVAzRFJwZUpEU0UrY2l1US0tCisKCmRpZmYgLS1naXQgYS9nZGItbm9uc3RvcC1zY3Jh dGNocGFkLnBhdGNoIGIvZ2RiLW5vbnN0b3Atc2NyYXRjaHBhZC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjI5ZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLW5v bnN0b3Atc2NyYXRjaHBhZC5wYXRjaApAQCAtMCwwICsxLDI2OCBAQAoraHR0cDovL3NvdXJjZXdh cmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTUtMTAvbXNnMDA2MDEuaHRtbAorU3ViamVjdDogW1BB VENIXSBbUEFUQ0hdIERvbid0IGRpc3BsYWNlZCBzdGVwIHdoZW4gdGhlcmUncyBhIGJyZWFrcG9p bnQgaW4gdGhlIHNjcmF0Y2ggcGFkIHJhbmdlCisKK0Fzc3VtaW5nIGRpc3BsYWNlZCBzdGVwcGlu ZyBpcyBlbmFibGVkLCBhbmQgYSBicmVha3BvaW50IGlzIHNldCBpbiB0aGUKK21lbW9yeSByZWdp b24gb2YgdGhlIHNjcmF0Y2ggcGFkLCB0aGluZ3MgYnJlYWsuICBPbmUgb2YgdHdvIGNhc2VzIGNh bgoraGFwcGVuOgorCisjMSAtIFRoZSBicmVha3BvaW50IHdhc24ndCBpbnNlcnRlZCB5ZXQgKGFs bCB0aHJlYWRzIHdlcmUgc3RvcHBlZCksIHNvCisgICAgIGFmdGVyIHNldHRpbmcgdXAgdGhlIGRp c3BsYWNlZCBzdGVwcGluZyBzY3JhdGNoIHBhZCB3aXRoIHRoZQorICAgICBhZGp1c3RlZCBjb3B5 IG9mIHRoZSBpbnN0cnVjdGlvbiB3ZSdyZSB0cnlpbmcgdG8gc2luZ2xlLXN0ZXAsIHdlCisgICAg IGluc2VydCB0aGUgYnJlYWtwb2ludCwgd2hpY2ggY29ycnVwdHMgdGhlIHNjcmF0Y2ggcGFkLCBh bmQgdGhlCisgICAgIGluZmVyaW9yIGV4ZWN1dGVzIHRoZSB3cm9uZyBpbnN0cnVjdGlvbi4gIChF eGFtcGxlIGJlbG93LikKKyAgICAgVGhpcyBpcyBjbGVhcmx5IHVuYWNjZXB0YWJsZS4KKworIzIg LSBUaGUgYnJlYWtwb2ludCB3YXMgYWxyZWFkeSBpbnNlcnRlZCwgc28gc2V0dGluZyB1cCB0aGUg ZGlzcGxhY2VkCisgICAgIHN0ZXBwaW5nIHNjcmF0Y2ggcGFkIG92ZXJ3cml0ZXMgdGhlIGJyZWFr cG9pbnQuICBUaGlzIGlzIE9LIGluCisgICAgIHRoZSBzZW5zZSB0aGF0IHdlIGFscmVhZHkgYXNz dW1lIHRoYXQgbm8gdGhyZWFkIGlzIGdvaW5nIHRvCisgICAgIGV4ZWN1dGVzIHRoZSBjb2RlIGlu IHRoZSBzY3JhdGNoIHBhZCByYW5nZSAoYWZ0ZXIgaW5pdGlhbAorICAgICBzdGFydHVwKSBhbnl3 YXkuCisKK1RoaXMgY29tbWl0IGFkZHJlc3NlcyBib3RoIGNhc2VzIGJ5IHNpbXBseSBwdW50aW5n IG9uIGRpc3BsYWNlZAorc3RlcHBpbmcgaWYgd2UgaGF2ZSBhIGJyZWFrcG9pbnQgaW4gdGhlIHNj cmF0Y2ggcGFkIHJhbmdlLgorCitUaGUgIzEgY2FzZSBhYm92ZSBleHBsYWlucyBhIGZldyByZWdy ZXNzaW9ucyBleHBvc2VkIGJ5IHRoZSBBUy9OUworc2VyaWVzIG9uIHg4NjoKKworIFJ1bm5pbmcg Li9nZGIuZHdhcmYyL2NhbGxmcmFtZWNmYS5leHAgLi4uCisgRkFJTDogZ2RiLmR3YXJmMi9jYWxs ZnJhbWVjZmEuZXhwOiBzZXQgZGlzcGxheSBmb3IgY2FsbC1mcmFtZS1jZmEKKyBGQUlMOiBnZGIu ZHdhcmYyL2NhbGxmcmFtZWNmYS5leHA6IHN0ZXAgMSBmb3IgY2FsbC1mcmFtZS1jZmEKKyBGQUlM OiBnZGIuZHdhcmYyL2NhbGxmcmFtZWNmYS5leHA6IHN0ZXAgMiBmb3IgY2FsbC1mcmFtZS1jZmEK KyBGQUlMOiBnZGIuZHdhcmYyL2NhbGxmcmFtZWNmYS5leHA6IHN0ZXAgMyBmb3IgY2FsbC1mcmFt ZS1jZmEKKyBGQUlMOiBnZGIuZHdhcmYyL2NhbGxmcmFtZWNmYS5leHA6IHN0ZXAgNCBmb3IgY2Fs bC1mcmFtZS1jZmEKKyBSdW5uaW5nIC4vZ2RiLmR3YXJmMi90eXBlZGR3YXJmLmV4cCAuLi4KKyBG QUlMOiBnZGIuZHdhcmYyL3R5cGVkZHdhcmYuZXhwOiBjb250aW51ZSB0byBicmVha3BvaW50OiBj b250aW51ZSB0byB0eXBlZGR3YXJmLmM6NTMKKyBGQUlMOiBnZGIuZHdhcmYyL3R5cGVkZHdhcmYu ZXhwOiBjaGVjayB2YWx1ZSBvZiB4IGF0IHR5cGVkZHdhcmYuYzo1MworIEZBSUw6IGdkYi5kd2Fy ZjIvdHlwZWRkd2FyZi5leHA6IGNoZWNrIHZhbHVlIG9mIHkgYXQgdHlwZWRkd2FyZi5jOjUzCisg RkFJTDogZ2RiLmR3YXJmMi90eXBlZGR3YXJmLmV4cDogY2hlY2sgdmFsdWUgb2YgeiBhdCB0eXBl ZGR3YXJmLmM6NTMKKyBGQUlMOiBnZGIuZHdhcmYyL3R5cGVkZHdhcmYuZXhwOiBjb250aW51ZSB0 byBicmVha3BvaW50OiBjb250aW51ZSB0byB0eXBlZGR3YXJmLmM6NzMKKyBGQUlMOiBnZGIuZHdh cmYyL3R5cGVkZHdhcmYuZXhwOiBjaGVjayB2YWx1ZSBvZiB3IGF0IHR5cGVkZHdhcmYuYzo3Mwor IEZBSUw6IGdkYi5kd2FyZjIvdHlwZWRkd2FyZi5leHA6IGNoZWNrIHZhbHVlIG9mIHggYXQgdHlw ZWRkd2FyZi5jOjczCisgRkFJTDogZ2RiLmR3YXJmMi90eXBlZGR3YXJmLmV4cDogY2hlY2sgdmFs dWUgb2YgeSBhdCB0eXBlZGR3YXJmLmM6NzMKKyBGQUlMOiBnZGIuZHdhcmYyL3R5cGVkZHdhcmYu ZXhwOiBjaGVjayB2YWx1ZSBvZiB6IGF0IHR5cGVkZHdhcmYuYzo3MworCitFbmFibGluZyAibWFp bnQgc2V0IHRhcmdldC1ub24tc3RvcCBvbiIgaW1wbGllcyBkaXNwbGFjZWQgc3RlcHBpbmcKK2Vu YWJsZWQgYXMgd2VsbCwgYW5kIGl0J3MgdGhlIGxhdHRlciB0aGF0J3MgdG8gYmxhbWUgaGVyZS4g IFdlIGNhbiBzZWUKK3RoZSBzYW1lIGZhaWx1cmVzIHdpdGggIm1haW50IHNldCB0YXJnZXQtbm9u LXN0b3Agb2ZmICsgc2V0IGRpc3BsYWNlZAorb24iLgorCitEaWZmaW5nIChnb29kL2JhZCkgZ2Ri LmxvZyBmb3IgY2FsbGZyYW1lY2ZhLmV4cCBzaG93czoKKworIEBAIC05OSwyOSArOTksMjkgQEAg QnJlYWtwb2ludCAyIGF0IDB4ODA0ODFiMDogZmlsZSBxLmMsIGxpbgorICBjb250aW51ZQorICBD b250aW51aW5nLgorCisgLUJyZWFrcG9pbnQgMiwgZnVuYyAoYXJnPTc3KSBhdCBxLmM6MgorICtC cmVha3BvaW50IDIsIGZ1bmMgKGFyZz01MjMwMSkgYXQgcS5jOjIKKyAgMiAgICAgIGluIHEuYwor ICAoZ2RiKSBQQVNTOiBnZGIuZHdhcmYyL2NhbGxmcmFtZWNmYS5leHA6IGNvbnRpbnVlIHRvIGJy ZWFrcG9pbnQ6IGNvbnRpbnVlIHRvIGJyZWFrcG9pbnQgZm9yIGNhbGwtZnJhbWUtY2ZhCisgIGRp c3BsYXkgYXJnCisgLTE6IGFyZyA9IDc3CisgLShnZGIpIFBBU1M6IGdkYi5kd2FyZjIvY2FsbGZy YW1lY2ZhLmV4cDogc2V0IGRpc3BsYXkgZm9yIGNhbGwtZnJhbWUtY2ZhCisgKzE6IGFyZyA9IDUy MzAxCisgKyhnZGIpIEZBSUw6IGdkYi5kd2FyZjIvY2FsbGZyYW1lY2ZhLmV4cDogc2V0IGRpc3Bs YXkgZm9yIGNhbGwtZnJhbWUtY2ZhCisKK1RoZSBwcm9ibGVtIGlzIGhlcmUsIHdoZW4gc2V0dGlu ZyB1cCB0aGUgZnVuYyBjYWxsOgorCisgQnJlYWtwb2ludCAxLCBtYWluIChhcmdjPS0xMzM0NSwg YXJndj0weDApIGF0IHEuYzo3CisgNyAgICAgICBpbiBxLmMKKworIChnZGIpIGRpc2Fzc2VtYmxl CisgRHVtcCBvZiBhc3NlbWJsZXIgY29kZSBmb3IgZnVuY3Rpb24gbWFpbjoKKyAgICAweDA4MDQ4 MWJiIDwrMD46ICAgICBwdXNoICAgJWVicAorICAgIDB4MDgwNDgxYmMgPCsxPjogICAgIG1vdiAg ICAlZXNwLCVlYnAKKyAgICAweDA4MDQ4MWJlIDwrMz46ICAgICBzdWIgICAgJDB4NCwlZXNwCisg PT4gMHgwODA0ODFjMSA8KzY+OiAgICAgbW92bCAgICQweDRkLCglZXNwKQorICAgIDB4MDgwNDgx YzggPCsxMz46ICAgIGNhbGwgICAweDgwNDgxYjAgPGZ1bmM+CisgICAgMHgwODA0ODFjZCA8KzE4 PjogICAgbGVhdmUKKyAgICAweDA4MDQ4MWNlIDwrMTk+OiAgICByZXQKKyBFbmQgb2YgYXNzZW1i bGVyIGR1bXAuCisgKGdkYikgZGlzYXNzZW1ibGUgL3IKKyBEdW1wIG9mIGFzc2VtYmxlciBjb2Rl IGZvciBmdW5jdGlvbiBtYWluOgorICAgIDB4MDgwNDgxYmIgPCswPjogICAgIDU1ICAgICAgcHVz aCAgICVlYnAKKyAgICAweDA4MDQ4MWJjIDwrMT46ICAgICA4OSBlNSAgIG1vdiAgICAlZXNwLCVl YnAKKyAgICAweDA4MDQ4MWJlIDwrMz46ICAgICA4MyBlYyAwNCAgICAgICAgc3ViICAgICQweDQs JWVzcAorID0+IDB4MDgwNDgxYzEgPCs2PjogICAgIGM3IDA0IDI0IDRkIDAwIDAwIDAwICAgIG1v dmwgICAkMHg0ZCwoJWVzcCkKKyAgICAweDA4MDQ4MWM4IDwrMTM+OiAgICBlOCBlMyBmZiBmZiBm ZiAgY2FsbCAgIDB4ODA0ODFiMCA8ZnVuYz4KKyAgICAweDA4MDQ4MWNkIDwrMTg+OiAgICBjOSAg ICAgIGxlYXZlCisgICAgMHgwODA0ODFjZSA8KzE5PjogICAgYzMgICAgICByZXQKKyBFbmQgb2Yg YXNzZW1ibGVyIGR1bXAuCisKK05vdGUgdGhlIGJyZWFrcG9pbnQgYXQgbWFpbiBpcyBzZXQgYXQg MHgwODA0ODFjMS4gIFJpZ2h0IGF0IHRoZQoraW5zdHJ1Y3Rpb24gdGhhdCBzZXRzIHVwIGZ1bmMn cyBhcmd1bWVudC4gIEV4ZWN1dGluZyB0aGF0IGluc3RydWN0aW9uCitzaG91bGQgd3JpdGUgMHg0 ZCB0byB0aGUgYWRkcmVzcyBwb2ludGVkIGF0IGJ5ICRlc3AuICBIb3dldmVyLCBpZiB3ZQorc3Rl cGksIHRoZSBwcm9ncmFtIG1hbmFnZXMgdG8gd3JpdGUgNTIzMDEvMHhjYzRkIHRoZXJlIGluc3Rl YWQgKDB4Y2MKK2lzIGludDMsIHRoZSB4ODYgYnJlYWtwb2ludCBpbnN0cnVjdGlvbiksIGJlY2F1 c2UgdGhlIGJyZWFrcG9pbnQKK2FkZHJlc3MgaXMgNCBieXRlcyBpbnNpZGUgdGhlIHNjcmF0Y2gg cGFkIGxvY2F0aW9uLCB3aGljaCBpcworMHgwODA0ODFiZDoKKworIChnZGIpIHAgMHgwODA0ODFj MSAtIDB4MDgwNDgxYmQKKyAkMSA9IDQKKworSU9XLCBpbnN0ZWFkIG9mIGV4ZWN1dGluZzoKKwor ICAiYzcgMDQgMjQgNGQgMDAgMDAgMDAiIFsgbW92bCAkMHg0ZCwoJWVzcCkgXQorCit0aGUgaW5m ZXJpb3IgZXhlY3V0ZXM6CisKKyAgImM3IDA0IDI0IDRkIGNjIDAwIDAwIiBbbW92bCAkMHhjYzRk LCglZXNwKSBdCisKK2dkYi9DaGFuZ2VMb2c6CisyMDE1LTEwLTI2ICBQZWRybyBBbHZlcyAgPHBh bHZlc0ByZWRoYXQuY29tPgorCisJKiBicmVha3BvaW50LmMgKGJyZWFrcG9pbnRfaW5fcmFuZ2Vf cCkKKwkoYnJlYWtwb2ludF9sb2NhdGlvbl9hZGRyZXNzX3JhbmdlX292ZXJsYXApOiBOZXcgZnVu Y3Rpb25zLgorCSogYnJlYWtwb2ludC5oIChicmVha3BvaW50X2luX3JhbmdlX3ApOiBOZXcgZGVj bGFyYXRpb24uCisJKiBpbmZydW4uYyAoZGlzcGxhY2VkX3N0ZXBfcHJlcGFyZV90aHJvdyk6IElm IHRoZXJlJ3MgYSBicmVha3BvaW50CisJaW4gdGhlIHNjcmF0Y2ggcGFkIHJhbmdlLCBkb24ndCBk aXNwbGFjZWQgc3RlcC4KKy0tLQorIGdkYi9icmVha3BvaW50LmMgfCA2MCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGdkYi9icmVha3Bv aW50LmggfCAgNSArKysrKworIGdkYi9pbmZydW4uYyAgICAgfCAyMyArKysrKysrKysrKysrKysr KysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQg YS9nZGIvYnJlYWtwb2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQuYworaW5kZXggMmM5MDFmZi4uNTg2 MzU3MyAxMDA2NDQKKy0tLSBhL2dkYi9icmVha3BvaW50LmMKKysrKyBiL2dkYi9icmVha3BvaW50 LmMKK0BAIC0xNzMsNiArMTczLDEwIEBAIHN0YXRpYyBpbnQgYnJlYWtwb2ludF9sb2NhdGlvbl9h ZGRyZXNzX21hdGNoIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmJsLAorIAkJCQkJICAgICAgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZSwKKyAJCQkJCSAgICAgIENPUkVfQUREUiBhZGRyKTsKKyAK KytzdGF0aWMgaW50IGJyZWFrcG9pbnRfbG9jYXRpb25fYWRkcmVzc19yYW5nZV9vdmVybGFwIChz dHJ1Y3QgYnBfbG9jYXRpb24gKiwKKysJCQkJCQkgICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq LAorKwkJCQkJCSAgICAgIENPUkVfQUREUiwgaW50KTsKKysKKyBzdGF0aWMgdm9pZCBicmVha3Bv aW50c19pbmZvIChjaGFyICosIGludCk7CisgCisgc3RhdGljIHZvaWQgd2F0Y2hwb2ludHNfaW5m byAoY2hhciAqLCBpbnQpOworQEAgLTQyNDMsNiArNDI0Nyw0MCBAQCBicmVha3BvaW50X2hlcmVf cCAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZSwgQ09SRV9BRERSIHBjKQorICAgcmV0dXJu IGFueV9icmVha3BvaW50X2hlcmUgPyBvcmRpbmFyeV9icmVha3BvaW50X2hlcmUgOiBub19icmVh a3BvaW50X2hlcmU7CisgfQorIAorKy8qIFNlZSBicmVha3BvaW50LmguICAqLworKworK2ludAor K2JyZWFrcG9pbnRfaW5fcmFuZ2VfcCAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZSwKKysJ CSAgICAgICBDT1JFX0FERFIgYWRkciwgVUxPTkdFU1QgbGVuKQorK3sKKysgIHN0cnVjdCBicF9s b2NhdGlvbiAqYmwsICoqYmxwX3RtcDsKKysKKysgIEFMTF9CUF9MT0NBVElPTlMgKGJsLCBibHBf dG1wKQorKyAgICB7CisrICAgICAgaWYgKGJsLT5sb2NfdHlwZSAhPSBicF9sb2Nfc29mdHdhcmVf YnJlYWtwb2ludAorKwkgICYmIGJsLT5sb2NfdHlwZSAhPSBicF9sb2NfaGFyZHdhcmVfYnJlYWtw b2ludCkKKysJY29udGludWU7CisrCisrICAgICAgaWYgKChicmVha3BvaW50X2VuYWJsZWQgKGJs LT5vd25lcikKKysJICAgfHwgYmwtPnBlcm1hbmVudCkKKysJICAmJiBicmVha3BvaW50X2xvY2F0 aW9uX2FkZHJlc3NfcmFuZ2Vfb3ZlcmxhcCAoYmwsIGFzcGFjZSwKKysJCQkJCQkJYWRkciwgbGVu KSkKKysJeworKwkgIGlmIChvdmVybGF5X2RlYnVnZ2luZworKwkgICAgICAmJiBzZWN0aW9uX2lz X292ZXJsYXkgKGJsLT5zZWN0aW9uKQorKwkgICAgICAmJiAhc2VjdGlvbl9pc19tYXBwZWQgKGJs LT5zZWN0aW9uKSkKKysJICAgIHsKKysJICAgICAgLyogVW5tYXBwZWQgb3ZlcmxheSAtLSBjYW4n dCBiZSBhIG1hdGNoLiAgKi8KKysJICAgICAgY29udGludWU7CisrCSAgICB9CisrCisrCSAgcmV0 dXJuIDE7CisrCX0KKysgICAgfQorKworKyAgcmV0dXJuIDA7CisrfQorKworIC8qIFJldHVybiB0 cnVlIGlmIHRoZXJlJ3MgYSBtb3JpYnVuZCBicmVha3BvaW50IGF0IFBDLiAgKi8KKyAKKyBpbnQK K0BAIC03MDc5LDYgKzcxMTcsMjggQEAgYnJlYWtwb2ludF9sb2NhdGlvbl9hZGRyZXNzX21hdGNo IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmJsLAorIAkJCQkJCSBhc3BhY2UsIGFkZHIpKSk7CisgfQor IAorKy8qIFJldHVybnMgdHJ1ZSBpZiB0aGUgW0FERFIsQUREUitMRU4pIHJhbmdlIGluIEFTUEFD RSBvdmVybGFwcworKyAgIGJyZWFrcG9pbnQgQkwuICBCTCBtYXkgYmUgYSByYW5nZWQgYnJlYWtw b2ludC4gIEluIG1vc3QgdGFyZ2V0cywgYQorKyAgIG1hdGNoIGhhcHBlbnMgb25seSBpZiBBU1BB Q0UgbWF0Y2hlcyB0aGUgYnJlYWtwb2ludCdzIGFkZHJlc3MKKysgICBzcGFjZS4gIE9uIHRhcmdl dHMgdGhhdCBoYXZlIGdsb2JhbCBicmVha3BvaW50cywgdGhlIGFkZHJlc3Mgc3BhY2UKKysgICBk b2Vzbid0IHJlYWxseSBtYXR0ZXIuICAqLworKworK3N0YXRpYyBpbnQKKyticmVha3BvaW50X2xv Y2F0aW9uX2FkZHJlc3NfcmFuZ2Vfb3ZlcmxhcCAoc3RydWN0IGJwX2xvY2F0aW9uICpibCwKKysJ CQkJCSAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UsCisrCQkJCQkgICBDT1JFX0FERFIg YWRkciwgaW50IGxlbikKKyt7CisrICBpZiAoZ2RiYXJjaF9oYXNfZ2xvYmFsX2JyZWFrcG9pbnRz ICh0YXJnZXRfZ2RiYXJjaCAoKSkKKysgICAgICB8fCBibC0+cHNwYWNlLT5hc3BhY2UgPT0gYXNw YWNlKQorKyAgICB7CisrICAgICAgaW50IGJsX2xlbiA9IGJsLT5sZW5ndGggIT0gMCA/IGJsLT5s ZW5ndGggOiAxOworKworKyAgICAgIGlmIChtZW1fcmFuZ2VzX292ZXJsYXAgKGFkZHIsIGxlbiwg YmwtPmFkZHJlc3MsIGJsX2xlbikpCisrCXJldHVybiAxOworKyAgICB9CisrICByZXR1cm4gMDsK Kyt9CisrCisgLyogSWYgTE9DMSBhbmQgTE9DMidzIG93bmVycyBhcmUgbm90IHRyYWNlcG9pbnRz LCByZXR1cm5zIGZhbHNlIGRpcmVjdGx5LgorICAgIFRoZW4sIGlmIExPQzEgYW5kIExPQzIgcmVw cmVzZW50IHRoZSBzYW1lIHRyYWNlcG9pbnQgbG9jYXRpb24sIHJldHVybnMKKyAgICB0cnVlLCBv dGhlcndpc2UgcmV0dXJucyBmYWxzZS4gICovCitkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQu aCBiL2dkYi9icmVha3BvaW50LmgKK2luZGV4IDg5NmQzZWIuLmVlOGIyZTAgMTAwNjQ0CistLS0g YS9nZGIvYnJlYWtwb2ludC5oCisrKysgYi9nZGIvYnJlYWtwb2ludC5oCitAQCAtMTE0Niw2ICsx MTQ2LDExIEBAIGV4dGVybiBpbnQgcHJvZ3JhbV9icmVha3BvaW50X2hlcmVfcCAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBhZGRyZXNzCisgZXh0ZXJuIGVudW0gYnJlYWtwb2lu dF9oZXJlIGJyZWFrcG9pbnRfaGVyZV9wIChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCAKKyAJCQkJ CSAgICAgICBDT1JFX0FERFIpOworIAorKy8qIFJldHVybiB0cnVlIGlmIGFuIGVuYWJsZWQgYnJl YWtwb2ludCBleGlzdHMgaW4gdGhlIHJhbmdlIGRlZmluZWQgYnkKKysgICBBRERSIGFuZCBMRU4s IGluIEFTUEFDRS4gICovCisrZXh0ZXJuIGludCBicmVha3BvaW50X2luX3JhbmdlX3AgKHN0cnVj dCBhZGRyZXNzX3NwYWNlICphc3BhY2UsCisrCQkJCSAgQ09SRV9BRERSIGFkZHIsIFVMT05HRVNU IGxlbik7CisrCisgZXh0ZXJuIGludCBtb3JpYnVuZF9icmVha3BvaW50X2hlcmVfcCAoc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKiwgQ09SRV9BRERSKTsKKyAKKyBleHRlcm4gaW50IGJyZWFrcG9pbnRf aW5zZXJ0ZWRfaGVyZV9wIChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBDT1JFX0FERFIpOworZGlm ZiAtLWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYworaW5kZXggOTE3ZjliZS4uZWY0 Y2NiNCAxMDA2NDQKKy0tLSBhL2dkYi9pbmZydW4uYworKysrIGIvZ2RiL2luZnJ1bi5jCitAQCAt MTcyOSw2ICsxNzI5LDcgQEAgZGlzcGxhY2VkX3N0ZXBfcHJlcGFyZV90aHJvdyAocHRpZF90IHB0 aWQpCisgICBzdHJ1Y3QgdGhyZWFkX2luZm8gKnRwID0gZmluZF90aHJlYWRfcHRpZCAocHRpZCk7 CisgICBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlID0gZ2V0X3RocmVhZF9yZWdjYWNoZSAocHRp ZCk7CisgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9yZWdjYWNoZV9hcmNoIChyZWdj YWNoZSk7CisrICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqYXNwYWNlID0gZ2V0X3JlZ2NhY2hlX2Fz cGFjZSAocmVnY2FjaGUpOworICAgQ09SRV9BRERSIG9yaWdpbmFsLCBjb3B5OworICAgVUxPTkdF U1QgbGVuOworICAgc3RydWN0IGRpc3BsYWNlZF9zdGVwX2Nsb3N1cmUgKmNsb3N1cmU7CitAQCAt MTc4NCw2ICsxNzg1LDI4IEBAIGRpc3BsYWNlZF9zdGVwX3ByZXBhcmVfdGhyb3cgKHB0aWRfdCBw dGlkKQorICAgY29weSA9IGdkYmFyY2hfZGlzcGxhY2VkX3N0ZXBfbG9jYXRpb24gKGdkYmFyY2gp OworICAgbGVuID0gZ2RiYXJjaF9tYXhfaW5zbl9sZW5ndGggKGdkYmFyY2gpOworIAorKyAgaWYg KGJyZWFrcG9pbnRfaW5fcmFuZ2VfcCAoYXNwYWNlLCBjb3B5LCBsZW4pKQorKyAgICB7CisrICAg ICAgLyogVGhlcmUncyBhIGJyZWFrcG9pbnQgc2V0IGluIHRoZSBzY3JhdGNoIHBhZCBsb2NhdGlv biByYW5nZQorKwkgKHdoaWNoIGlzIHVzdWFsbHkgYXJvdW5kIHRoZSBlbnRyeSBwb2ludCkuICBX ZSdkIGVpdGhlcgorKwkgaW5zdGFsbCBpdCBiZWZvcmUgcmVzdW1pbmcsIHdoaWNoIHdvdWxkIG92 ZXJ3cml0ZS9jb3JydXB0IHRoZQorKwkgc2NyYXRjaCBwYWQsIG9yIGlmIGl0IHdhcyBhbHJlYWR5 IGluc2VydGVkLCB0aGlzIGRpc3BsYWNlZAorKwkgc3RlcCB3b3VsZCBvdmVyd3JpdGUgaXQuICBU aGUgbGF0dGVyIGlzIE9LIGluIHRoZSBzZW5zZSB0aGF0CisrCSB3ZSBhbHJlYWR5IGFzc3VtZSB0 aGF0IG5vIHRocmVhZCBpcyBnb2luZyB0byBleGVjdXRlIHRoZSBjb2RlCisrCSBpbiB0aGUgc2Ny YXRjaCBwYWQgcmFuZ2UgKGFmdGVyIGluaXRpYWwgc3RhcnR1cCkgYW55d2F5LCBidXQKKysJIHRo ZSBmb3JtZXIgaXMgdW5hY2NlcHRhYmxlLiAgU2ltcGx5IHB1bnQgYW5kIGZhbGxiYWNrIHRvCisr CSBzdGVwcGluZyBvdmVyIHRoaXMgYnJlYWtwb2ludCBpbi1saW5lLiAgKi8KKysgICAgICBpZiAo ZGVidWdfZGlzcGxhY2VkKQorKwl7CisrCSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9n LAorKwkJCSAgICAgICJkaXNwbGFjZWQ6IGJyZWFrcG9pbnQgc2V0IGluIHNjcmF0Y2ggcGFkLiAg IgorKwkJCSAgICAgICJTdGVwcGluZyBvdmVyIGJyZWFrcG9pbnQgaW4tbGluZSBpbnN0ZWFkLlxu Iik7CisrCX0KKysKKysgICAgICBkb19jbGVhbnVwcyAob2xkX2NsZWFudXBzKTsKKysgICAgICBy ZXR1cm4gLTE7CisrICAgIH0KKysKKyAgIC8qIFNhdmUgdGhlIG9yaWdpbmFsIGNvbnRlbnRzIG9m IHRoZSBjb3B5IGFyZWEuICAqLworICAgZGlzcGxhY2VkLT5zdGVwX3NhdmVkX2NvcHkgPSAoZ2Ri X2J5dGUgKikgeG1hbGxvYyAobGVuKTsKKyAgIGlnbm9yZV9jbGVhbnVwcyA9IG1ha2VfY2xlYW51 cCAoZnJlZV9jdXJyZW50X2NvbnRlbnRzLAorLS0gCisxLjkuMworCgpkaWZmIC0tZ2l0IGEvZ2Ri LXByb2Jlcy1iYXNlZC1pbnRlcmZhY2Utcm9idXN0LTFvZjIucGF0Y2ggYi9nZGItcHJvYmVzLWJh c2VkLWludGVyZmFjZS1yb2J1c3QtMW9mMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggNTI5NWUwNi4uMDAwMDAwMAotLS0gYS9nZGItcHJvYmVzLWJhc2VkLWludGVyZmFjZS1y b2J1c3QtMW9mMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5MyArMCwwIEBACi1Gcm9tIGY0 NjllOGNlMTE2NzJlMjZmZWI1YmE2ZjlhMTM0Mjc1ZmNmZDViNGYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+ Ci1EYXRlOiBGcmksIDIxIEF1ZyAyMDE1IDE4OjEzOjQ2IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0gg MS80XSBJbXByb3ZlIGVycm9yIHJlcG9ydGluZyB3aGVuIGhhbmRsaW5nIFN5c3RlbVRhcCBTRFQK LSBwcm9iZXMKLQotVGhpcyBwYXRjaCBpbXByb3ZlcyB0aGUgZXJyb3IgcmVwb3J0aW5nIHdoZW4g aGFuZGxpbmcgU3lzdGVtVGFwIFNEVAotcHJvYmVzLiAgIkhhbmRsaW5nIiwgaW4gdGhpcyBjYXNl LCBtb3N0bHkgbWVhbnMgInBhcnNpbmciLgotCi1PbiBnZGIvcHJvYmUuaCwgb25seSB0cml2aWFs IGNoYW5nZXMgb24gZnVuY3Rpb25zJyBjb21tZW50cyBpbiBvcmRlcgotdG8gZXhwbGljaXRseSBt ZW50aW9uIHRoYXQgc29tZSBvZiB0aGVtIGNhbiB0aHJvdyBleGNlcHRpb25zLiAgVGhpcyBpcwot anVzdCB0byBtYWtlIHRoZSBBUEkgYSBiaXQgbW9yZSBjbGVhci4KLQotT24gZ2RiL3N0YXAtcHJv YmUuYywgSSBoYXZlIHMvaW50ZXJuYWxfZXJyb3IvZXJyb3IvIG9uIHR3byBmdW5jdGlvbnMKLXRo YXQgYXJlIHJlc3BvbnNpYmxlIGZvciBwYXJzaW5nIHNwZWNpZmljIGJpdHMgb2YgdGhlIHByb2Jl cycKLWFyZ3VtZW50czogc3RhcF9nZXRfb3Bjb2RlIGFuZCBzdGFwX2dldF9leHBlY3RlZF9hcmd1 bWVudF90eXBlLiAgSXQgaXMKLW5vdCBjb3JyZWN0IHRvIGNhbGwgaW50ZXJuYWxfZXJyb3Igb24g c3VjaCBzaXR1YXRpb25zIGJlY2F1c2UgaXQgaXMKLW5vdCByZWFsbHkgR0RCJ3MgZmF1bHQgaWYg dGhlIHByb2JlcyBoYXZlIG1hbGZvcm1lZCBhcmd1bWVudHMuICBJIGFsc28KLWltcHJvdmVkIHRo ZSBlcnJvciByZXBvcnRlZCBvbiBzdGFwX2dldF9leHBlY3RlZF9hcmd1bWVudF90eXBlIGJ5IGFs c28KLWluY2x1ZGluZyB0aGUgcHJvYmUgbmFtZSBvbiBpdC4KLQotQXNpZGUgZnJvbSB0aGF0LCBh bmQgcGVyaGFwcyBtb3N0IGltcG9ydGFudGx5LCBJIGFkZGVkIGEgY2hlY2sgb24KLXN0YXBfZ2V0 X2FyZyB0byBtYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCB0cnkgdG8gZXh0cmFjdCBhbiBhcmd1bWVu dAotZnJvbSBhIHByb2JlIHRoYXQgaGFzIG5vIGFyZ3VtZW50cy4gIFRoaXMgY2hlY2sgaXNzdWVz IGFuCi1pbnRlcm5hbF9lcnJvciwgYmVjYXVzZSBpdCByZWFsbHkgbWVhbnMgdGhhdCBHREIgaXMg ZG9pbmcgc29tZXRoaW5nIGl0Ci1zaG91bGRuJ3QuCi0KLUFsdGhvdWdoIGl0IGNhbiBiZSBjb25z aWRlcmVkIGFsbW9zdCB0cml2aWFsLCBhbmQgZGVzcGl0ZSB0aGUgZmFjdAotdGhhdCBJIGFtIHRo ZSBtYWludGFpbmVyIGZvciB0aGlzIHBhcnQgb2YgdGhlIGNvZGUsIEkgYW0gcG9zdGluZyB0aGlz Ci1wYXRjaCBmb3IgcmV2aWV3LiAgSSB3aWxsIHdhaXQgYSBmZXcgZGF5cywgYW5kIGlmIG5vYm9k eSBoYXMgYW55dGhpbmcKLXRvIHNheSwgSSB3aWxsIGdvIGFoZWFkIGFuZCBwdXNoIGl0LgotCi1n ZGIvQ2hhbmdlTG9nOgotMjAxNS0wOS0wMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lv ZGpAcmVkaGF0LmNvbT4KLQotCSogcHJvYmUuaCAoc3RydWN0IHByb2JlX29wcykgPGdldF9wcm9i ZV9hcmd1bWVudF9jb3VudCwKLQlldmFsdWF0ZV9wcm9iZV9hcmd1bWVudCwgZW5hYmxlX3Byb2Jl LCBkaXNhYmxlX3Byb2JlPjogTWVudGlvbiBpbgotCXRoZSBjb21tZW50IHRoYXQgdGhlIGZ1bmN0 aW9uIGNhbiB0aHJvdyBhbiBleGNlcHRpb24uCi0JKGdldF9wcm9iZV9hcmd1bWVudF9jb3VudCk6 IExpa2V3aXNlLgotCShldmFsdWF0ZV9wcm9iZV9hcmd1bWVudCk6IExpa2V3aXNlLgotCSogc3Rh cC1wcm9iZS5jIChzdGFwX2dldF9vcGNvZGUpOiBDYWxsIGVycm9yIGluc3RlYWQgb2YKLQlpbnRl cm5hbF9lcnJvci4KLQkoc3RhcF9nZXRfZXhwZWN0ZWRfYXJndW1lbnRfdHlwZSk6IExpa2V3aXNl LiAgQWRkIGFyZ3VtZW50Ci0JJ3Byb2JlJy4gIEltcHJvdmUgZXJyb3IgbWVzc2FnZSBieSBtZW50 aW9uaW5nIHRoZSBwcm9iZSdzIG5hbWUuCi0JKHN0YXBfcGFyc2VfcHJvYmVfYXJndW1lbnRzKTog QWRqdXN0IGNhbGwgdG8KLQlzdGFwX2dldF9leHBlY3RlZF9hcmd1bWVudF90eXBlLgotCShzdGFw X2dldF9hcmcpOiBBZGQgY29tbWVudC4gIEFzc2VydCB0aGF0ICdwcm9iZS0+YXJnc19wYXJzZWQn IGlzCi0Jbm90IHplcm8uICBDYWxsIGludGVybmFsX2Vycm9yIGlmIEdEQiByZXF1ZXN0cyBhbiBh cmd1bWVudCBidXQgdGhlCi0JcHJvYmUgaGFzIG5vIGFyZ3VtZW50cy4KLS0tLQotIGdkYi9DaGFu Z2VMb2cgICAgfCAxNyArKysrKysrKysrKysrKysrKwotIGdkYi9wcm9iZS5oICAgICAgfCAyMCAr KysrKysrKysrKysrKy0tLS0tLQotIGdkYi9zdGFwLXByb2JlLmMgfCAyOSArKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLQotIDMgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgMTMg ZGVsZXRpb25zKC0pCi0KLUluZGV4OiBnZGItNy4xMC9nZGIvcHJvYmUuaAotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLm9yaWcvZ2RiL3Byb2JlLmgKLSsrKyBnZGItNy4xMC9nZGIvcHJvYmUuaAot QEAgLTcwLDcgKzcwLDggQEAgc3RydWN0IHByb2JlX29wcwotICAgICBDT1JFX0FERFIgKCpnZXRf cHJvYmVfYWRkcmVzcykgKHN0cnVjdCBwcm9iZSAqcHJvYmUsCi0gCQkJCSAgICBzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSk7Ci0gCi0tICAgIC8qIFJldHVybiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50 cyBvZiBQUk9CRS4gICovCi0rICAgIC8qIFJldHVybiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBv ZiBQUk9CRS4gIFRoaXMgZnVuY3Rpb24gY2FuCi0rICAgICAgIHRocm93IGFuIGV4Y2VwdGlvbi4g ICovCi0gCi0gICAgIHVuc2lnbmVkICgqZ2V0X3Byb2JlX2FyZ3VtZW50X2NvdW50KSAoc3RydWN0 IHByb2JlICpwcm9iZSwKLSAJCQkJCSAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKTsKLUBAIC04 Miw3ICs4Myw4IEBAIHN0cnVjdCBwcm9iZV9vcHMKLSAgICAgaW50ICgqY2FuX2V2YWx1YXRlX3By b2JlX2FyZ3VtZW50cykgKHN0cnVjdCBwcm9iZSAqcHJvYmUpOwotIAotICAgICAvKiBFdmFsdWF0 ZSB0aGUgTnRoIGFyZ3VtZW50IGZyb20gdGhlIFBST0JFLCByZXR1cm5pbmcgYSB2YWx1ZQotLSAg ICAgICBjb3JyZXNwb25kaW5nIHRvIGl0LiAgVGhlIGFyZ3VtZW50IG51bWJlciBpcyByZXByZXNl bnRlZCBOLiAgKi8KLSsgICAgICAgY29ycmVzcG9uZGluZyB0byBpdC4gIFRoZSBhcmd1bWVudCBu dW1iZXIgaXMgcmVwcmVzZW50ZWQgTi4KLSsgICAgICAgVGhpcyBmdW5jdGlvbiBjYW4gdGhyb3cg YW4gZXhjZXB0aW9uLiAgKi8KLSAKLSAgICAgc3RydWN0IHZhbHVlICooKmV2YWx1YXRlX3Byb2Jl X2FyZ3VtZW50KSAoc3RydWN0IHByb2JlICpwcm9iZSwKLSAJCQkJCSAgICAgIHVuc2lnbmVkIG4s Ci1AQCAtMTQxLDEzICsxNDMsMTUgQEAgc3RydWN0IHByb2JlX29wcwotIAotICAgICAvKiBFbmFi bGUgYSBwcm9iZS4gIFRoZSBzZW1hbnRpY3Mgb2YgImVuYWJsaW5nIiBhIHByb2JlIGRlcGVuZCBv bgotICAgICAgICB0aGUgc3BlY2lmaWMgYmFja2VuZCBhbmQgdGhlIGZpZWxkIGNhbiBiZSBOVUxM IGluIGNhc2UgZW5hYmxpbmcKLS0gICAgICAgcHJvYmVzIGlzIG5vdCBzdXBwb3J0ZWQuICAqLwot KyAgICAgICBwcm9iZXMgaXMgbm90IHN1cHBvcnRlZC4gIFRoaXMgZnVuY3Rpb24gY2FuIHRocm93 IGFuCi0rICAgICAgIGV4Y2VwdGlvbi4gICovCi0gCi0gICAgIHZvaWQgKCplbmFibGVfcHJvYmUp IChzdHJ1Y3QgcHJvYmUgKnByb2JlKTsKLSAKLSAgICAgLyogRGlzYWJsZSBhIHByb2JlLiAgVGhl IHNlbWFudGljcyBvZiAiZGlzYWJsaW5nIiBhIHByb2JlIGRlcGVuZAotICAgICAgICBvbiB0aGUg c3BlY2lmaWMgYmFja2VuZCBhbmQgdGhlIGZpZWxkIGNhbiBiZSBOVUxMIGluIGNhc2UKLS0gICAg ICAgZGlzYWJsaW5nIHByb2JlcyBpcyBub3Qgc3VwcG9ydGVkLiAgKi8KLSsgICAgICAgZGlzYWJs aW5nIHByb2JlcyBpcyBub3Qgc3VwcG9ydGVkLiAgVGhpcyBmdW5jdGlvbiBjYW4gdGhyb3cgYW4K LSsgICAgICAgZXhjZXB0aW9uLiAgKi8KLSAKLSAgICAgdm9pZCAoKmRpc2FibGVfcHJvYmUpIChz dHJ1Y3QgcHJvYmUgKnByb2JlKTsKLSAgIH07Ci1AQCAtMjY0LDcgKzI2OCw5IEBAIGV4dGVybiBz dHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqKmluZm9fcHIKLSBleHRlcm4gQ09SRV9BRERSIGdldF9w cm9iZV9hZGRyZXNzIChzdHJ1Y3QgcHJvYmUgKnByb2JlLAotIAkJCQkgICAgc3RydWN0IG9iamZp bGUgKm9iamZpbGUpOwotIAotLS8qIFJldHVybiB0aGUgYXJndW1lbnQgY291bnQgb2YgdGhlIHNw ZWNpZmllZCBwcm9iZS4gICovCi0rLyogUmV0dXJuIHRoZSBhcmd1bWVudCBjb3VudCBvZiB0aGUg c3BlY2lmaWVkIHByb2JlLgotKwotKyAgIFRoaXMgZnVuY3Rpb24gY2FuIHRocm93IGFuIGV4Y2Vw dGlvbi4gICovCi0gCi0gZXh0ZXJuIHVuc2lnbmVkIGdldF9wcm9iZV9hcmd1bWVudF9jb3VudCAo c3RydWN0IHByb2JlICpwcm9iZSwKLSAJCQkJCSAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKTsK LUBAIC0yNzYsNyArMjgyLDkgQEAgZXh0ZXJuIHVuc2lnbmVkIGdldF9wcm9iZV9hcmd1bWVudF9j b3VudAotIGV4dGVybiBpbnQgY2FuX2V2YWx1YXRlX3Byb2JlX2FyZ3VtZW50cyAoc3RydWN0IHBy b2JlICpwcm9iZSk7Ci0gCi0gLyogRXZhbHVhdGUgYXJndW1lbnQgTiBvZiB0aGUgc3BlY2lmaWVk IHByb2JlLiAgTiBtdXN0IGJlIGJldHdlZW4gMAotLSAgIGluY2x1c2l2ZSBhbmQgZ2V0X3Byb2Jl X2FyZ3VtZW50X2NvdW50IGV4Y2x1c2l2ZS4gICovCi0rICAgaW5jbHVzaXZlIGFuZCBnZXRfcHJv YmVfYXJndW1lbnRfY291bnQgZXhjbHVzaXZlLgotKwotKyAgIFRoaXMgZnVuY3Rpb24gY2FuIHRo cm93IGFuIGV4Y2VwdGlvbi4gICovCi0gCi0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZXZhbHVhdGVf cHJvYmVfYXJndW1lbnQgKHN0cnVjdCBwcm9iZSAqcHJvYmUsCi0gCQkJCQkgICAgICB1bnNpZ25l ZCBuLAotSW5kZXg6IGdkYi03LjEwL2dkYi9zdGFwLXByb2JlLmMKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC5vcmlnL2dkYi9zdGFwLXByb2JlLmMKLSsrKyBnZGItNy4xMC9nZGIvc3RhcC1wcm9i ZS5jCi1AQCAtMzEzLDkgKzMxMyw4IEBAIHN0YXBfZ2V0X29wY29kZSAoY29uc3QgY2hhciAqKnMp Ci0gICAgICAgYnJlYWs7Ci0gCi0gICAgIGRlZmF1bHQ6Ci0tICAgICAgaW50ZXJuYWxfZXJyb3Ig KF9fRklMRV9fLCBfX0xJTkVfXywKLS0JCSAgICAgIF8oIkludmFsaWQgb3Bjb2RlIGluIGV4cHJl c3Npb24gYCVzJyBmb3IgU3lzdGVtVGFwIgotLQkJCSJwcm9iZSIpLCAqcyk7Ci0rICAgICAgZXJy b3IgKF8oIkludmFsaWQgb3Bjb2RlIGluIGV4cHJlc3Npb24gYCVzJyBmb3IgU3lzdGVtVGFwIgot KwkgICAgICAgInByb2JlIiksICpzKTsKLSAgICAgfQotIAotICAgcmV0dXJuIG9wOwotQEAgLTMy Niw3ICszMjUsOCBAQCBzdGFwX2dldF9vcGNvZGUgKGNvbnN0IGNoYXIgKipzKQotIAotIHN0YXRp YyBzdHJ1Y3QgdHlwZSAqCi0gc3RhcF9nZXRfZXhwZWN0ZWRfYXJndW1lbnRfdHlwZSAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsCi0tCQkJCSBlbnVtIHN0YXBfYXJnX2JpdG5lc3MgYikKLSsJCQkJ IGVudW0gc3RhcF9hcmdfYml0bmVzcyBiLAotKwkJCQkgY29uc3Qgc3RydWN0IHN0YXBfcHJvYmUg KnByb2JlKQotIHsKLSAgIHN3aXRjaCAoYikKLSAgICAgewotQEAgLTM2MSw4ICszNjEsOCBAQCBz dGFwX2dldF9leHBlY3RlZF9hcmd1bWVudF90eXBlIChzdHJ1Y3QKLSAgICAgICByZXR1cm4gYnVp bHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl91aW50NjQ7Ci0gCi0gICAgIGRlZmF1bHQ6Ci0t ICAgICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKLS0JCSAgICAgIF8oIlVu ZGVmaW5lZCBiaXRuZXNzIGZvciBwcm9iZS4iKSk7Ci0rICAgICAgZXJyb3IgKF8oIlVuZGVmaW5l ZCBiaXRuZXNzIGZvciBwcm9iZSAnJXMnLiIpLAotKwkgICAgIHByb2JlLT5wLm5hbWUpOwotICAg ICAgIGJyZWFrOwotICAgICB9Ci0gfQotQEAgLTExNzIsNyArMTE3Miw4IEBAIHN0YXBfcGFyc2Vf cHJvYmVfYXJndW1lbnRzIChzdHJ1Y3Qgc3RhcF8KLSAgICAgICBlbHNlCi0gCWFyZy5iaXRuZXNz ID0gU1RBUF9BUkdfQklUTkVTU19VTkRFRklORUQ7Ci0gCi0tICAgICAgYXJnLmF0eXBlID0gc3Rh cF9nZXRfZXhwZWN0ZWRfYXJndW1lbnRfdHlwZSAoZ2RiYXJjaCwgYXJnLmJpdG5lc3MpOwotKyAg ICAgIGFyZy5hdHlwZSA9IHN0YXBfZ2V0X2V4cGVjdGVkX2FyZ3VtZW50X3R5cGUgKGdkYmFyY2gs IGFyZy5iaXRuZXNzLAotKwkJCQkJCSAgIHByb2JlKTsKLSAKLSAgICAgICBleHByID0gc3RhcF9w YXJzZV9hcmd1bWVudCAoJmN1ciwgYXJnLmF0eXBlLCBnZGJhcmNoKTsKLSAKLUBAIC0xMjc4LDEy ICsxMjc5LDI2IEBAIHN0YXBfaXNfb3BlcmF0b3IgKGNvbnN0IGNoYXIgKm9wKQotICAgcmV0dXJu IHJldDsKLSB9Ci0gCi0rLyogUmV0dXJuIGFyZ3VtZW50IE4gb2YgcHJvYmUgUFJPQkUuCi0rCi0r ICAgSWYgdGhlIHByb2JlJ3MgYXJndW1lbnRzIGhhdmUgbm90IGJlZW4gcGFyc2VkIHlldCwgcGFy c2UgdGhlbS4gIElmCi0rICAgdGhlcmUgYXJlIG5vIGFyZ3VtZW50cywgdGhyb3cgYW4gZXhjZXB0 aW9uIChlcnJvcikuICBPdGhlcndpc2UsCi0rICAgcmV0dXJuIHRoZSByZXF1ZXN0ZWQgYXJndW1l bnQuICAqLwotKwotIHN0YXRpYyBzdHJ1Y3Qgc3RhcF9wcm9iZV9hcmcgKgotIHN0YXBfZ2V0X2Fy ZyAoc3RydWN0IHN0YXBfcHJvYmUgKnByb2JlLCB1bnNpZ25lZCBuLCBzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCkKLSB7Ci0gICBpZiAoIXByb2JlLT5hcmdzX3BhcnNlZCkKLSAgICAgc3RhcF9wYXJz ZV9wcm9iZV9hcmd1bWVudHMgKHByb2JlLCBnZGJhcmNoKTsKLSAKLSsgIGdkYl9hc3NlcnQgKHBy b2JlLT5hcmdzX3BhcnNlZCk7Ci0rICBpZiAocHJvYmUtPmFyZ3NfdS52ZWMgPT0gTlVMTCkKLSsg ICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKLSsJCSAgICBfKCJQcm9iZSAn JXMnIGFwcGFyZW50bHkgZG9lcyBub3QgaGF2ZSBhcmd1bWVudHMsIGJ1dCBcbiIKLSsJCSAgICAg ICJHREIgaXMgcmVxdWVzdGluZyBpdHMgYXJndW1lbnQgbnVtYmVyICV1IGFueXdheS4gICIKLSsJ CSAgICAgICJUaGlzIHNob3VsZCBub3QgaGFwcGVuLiAgUGxlYXNlIHJlcG9ydCB0aGlzIGJ1Zy4i KSwKLSsJCSAgICBwcm9iZS0+cC5uYW1lLCBuKTsKLSsKLSAgIHJldHVybiBWRUNfaW5kZXggKHN0 YXBfcHJvYmVfYXJnX3MsIHByb2JlLT5hcmdzX3UudmVjLCBuKTsKLSB9Ci0gCgpkaWZmIC0tZ2l0 IGEvZ2RiLXByb2Jlcy1iYXNlZC1pbnRlcmZhY2Utcm9idXN0LTJvZjIucGF0Y2ggYi9nZGItcHJv YmVzLWJhc2VkLWludGVyZmFjZS1yb2J1c3QtMm9mMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggYTlhMDIyYy4uMDAwMDAwMAotLS0gYS9nZGItcHJvYmVzLWJhc2VkLWludGVy ZmFjZS1yb2J1c3QtMm9mMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5NCArMCwwIEBACi1G cm9tIDNiZDdlNWI3ZWU1ZWEwYjNiYmI0MDMwY2E4NDFmNjZmYWFkNzRmMGYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhh dC5jb20+Ci1EYXRlOiBGcmksIDIxIEF1ZyAyMDE1IDE4OjI4OjA3IC0wNDAwCi1TdWJqZWN0OiBb UEFUQ0ggMi80XSBDYXRjaGluZyBlcnJvcnMgb24gcHJvYmVzLWJhc2VkIGR5bmFtaWMgbGlua2Vy IGludGVyZmFjZQotCi1UaGlzIHBhdGNoIGlzIGludGVuZGVkIHRvIG1ha2UgdGhlIGludGVyYWN0 aW9uIGJldHdlZW4gdGhlCi1wcm9iZXMtYmFzZWQgZHluYW1pYyBsaW5rZXIgaW50ZXJmYWNlIGFu ZCB0aGUgU3lzdGVtVGFwIFNEVCBwcm9iZSBjb2RlCi1vbiBHREIgbW9yZSByb2J1c3QuICBJdCBk b2VzIHRoYXQgYnkgd3JhcHBpbmcgdGhlIGNhbGxzIHRvIHRoZSBwcm9iZQotQVBJIHdpdGggVFJZ Li4uQ0FUQ0gnZXMsIHNvIHRoYXQgYW55IGV4Y2VwdGlvbiB0aHJvd24gd2lsbCBiZSBjYXVnaHQK LWFuZCBoYW5kbGVkIHByb3Blcmx5LgotCi1UaGUgaWRlYSBmb3IgdGhpcyBwYXRjaCBjYW1lIGZy b20KLTxodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTExOTYxODE+ LCB3aGljaCBpcyBhIGJ1ZwotaW5pdGlhbGx5IGZpbGVkIGFnYWluc3QgRmVkb3JhIEdEQiAoYnV0 IG5vdyB1bmRlciBGZWRvcmEgR0xJQkMpLiAgVGhpcwotYnVnIGhhcHBlbnMgb24gYXJtaGZwIChh bHRob3VnaCBpdCBjb3VsZCBoYXBwZW4gb24gb3RoZXIgdGFyZ2V0cyBhcwotd2VsbCksIGFuZCBp cyB0cmlnZ2VyZWQgYmVjYXVzZSBHQ0MgZ2VuZXJhdGVzIGEgc3RyYW5nZSBhcmd1bWVudCBmb3IK LW9uZSBvZiB0aGUgcHJvYmVzIHVzZWQgYnkgR0RCIGluIHRoZSBkeW5hbWljIGxpbmtlciBpbnRl cmZhY2UuICBBcyBjYW4KLWJlIHNlZW4gaW4gdGhlIGJ1ZywgdGhpcyBhcmd1bWVudCBpcyAiLTRA LkwxMDUyIi4KLQotSSBkb24ndCB3YW50IHRvIGRpc2N1c3MgdGhlIHJlYXNvbnMgZm9yIHRoaXMg YXJndW1lbnQgdG8gYmUgdGhlcmUKLSh0aGlzIGRpc2N1c3Npb24gYmVsb25ncyB0byB0aGUgYnVn LCBvciB0byBhbm90aGVyIHRocmVhZCksIGJ1dCBHREIKLWNvdWxkIGRlZmluaXRlbHkgZG8gYSBi ZXR0ZXIgZXJyb3IgaGFuZGxpbmcgaGVyZS4gIEN1cnJlbnRseSwgb25lIHNlZXMKLXRoZSBmb2xs b3dpbmcgbWVzc2FnZSB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIGluIHRoZSBwcm9iZXMtYmFzZWQK LWR5bmFtaWMgbGlua2VyIGludGVyZmFjZToKLQotICAoZ2RiKSBydW4KLSAgU3RhcnRpbmcgcHJv Z3JhbTogL2Jpbi9pbmZlcmlvcgotICB3YXJuaW5nOiBQcm9iZXMtYmFzZWQgZHluYW1pYyBsaW5r ZXIgaW50ZXJmYWNlIGZhaWxlZC4KLSAgUmV2ZXJ0aW5nIHRvIG9yaWdpbmFsIGludGVyZmFjZS4K LQotICBDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiBgLkw5NzYgNEByNCcuCi0gIChnZGIpCi0KLVdo aWNoIG1lYW5zIHRoYXQgb25lIG5lZWRzIHRvIGV4cGxpY2l0bHkgaXNzdWUgYSAiY29udGludWUi IGNvbW1hbmQgdG8KLW1ha2UgR0RCIGNvbnRpbnVlIHJ1bm5pbmcgdGhlIGluZmVyaW9yLCBldmVu IHRob3VnaCB0aGlzIGVycm9yIGlzIG5vdAotZmF0YWwgYW5kIEdEQiB3aWxsIGZhbGxiYWNrIHRv IHRoZSBvbGQgaW50ZXJmYWNlIGF1dG9tYXRpY2FsbHkuCi0KLVRoaXMgaXMgd2hlcmUgdGhpcyBw YXRjaCBoZWxwczogaXQgbWFrZXMgR0RCIHN0aWxsIHByaW50IHRoZSBuZWNlc3NhcnkKLXdhcm5p bmdzIG9yIGVycm9yIG1lc3NhZ2VzLCBidXQgaXQgKmFsc28qIGRvZXMgbm90IHN0b3AgdGhlIGlu ZmVyaW9yCi11bm5lY2Vzc2FyaWx5LgotCi1JIGhhdmUgdGVzdGVkIHRoaXMgcGF0Y2ggb24gdGhl IHN5c3RlbXMgd2hlcmUgdGhpcyBlcnJvciBoYXBwZW5zLCBidXQKLUkgY291bGQgbm90IGNvbWUg dXAgd2l0aCBhIHdheSB0byBjcmVhdGUgYSB0ZXN0Y2FzZSBmb3IgaXQuCi1OZXZlcnRoZWxlc3Ms IGl0IHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQgdG8gc2VlIHRoYXQgdGhpcyBwYXRjaCBkb2Vz Ci1pbXByb3ZlIHRoZSBjdXJyZW50IHNpdHVhdGlvbi4KLQotZ2RiL0NoYW5nZUxvZzoKLTIwMTUt MDktMDEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0KLQkq IHNvbGliLXN2cjQuYyAoc29saWJfZXZlbnRfcHJvYmVfYWN0aW9uKTogQ2FsbAotCWdldF9wcm9i ZV9hcmd1bWVudF9jb3VudCB1c2luZyBUUlkuLi5DQVRDSC4KLQkoc3ZyNF9oYW5kbGVfc29saWJf ZXZlbnQpOiBMaWtld2lzZSwgZm9yIGV2YWx1YXRlX3Byb2JlX2FyZ3VtZW50LgotLS0tCi0gZ2Ri L0NoYW5nZUxvZyAgICB8ICA2ICsrKysrKwotIGdkYi9zb2xpYi1zdnI0LmMgfCA0MyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA0 NiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1JbmRleDogZ2RiLTcuMTAvZ2RiL3Nv bGliLXN2cjQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLm9yaWcvZ2RiL3NvbGliLXN2cjQu YwotKysrIGdkYi03LjEwL2dkYi9zb2xpYi1zdnI0LmMKLUBAIC0xNzk2LDcgKzE3OTYsMjMgQEAg c29saWJfZXZlbnRfcHJvYmVfYWN0aW9uIChzdHJ1Y3QgcHJvYmVfYQotICAgICAgICBhcmcwOiBM bWlkX3QgbG1pZCAobWFuZGF0b3J5KQotICAgICAgICBhcmcxOiBzdHJ1Y3Qgcl9kZWJ1ZyAqZGVi dWdfYmFzZSAobWFuZGF0b3J5KQotICAgICAgICBhcmcyOiBzdHJ1Y3QgbGlua19tYXAgKm5ldyAo b3B0aW9uYWwsIGZvciBpbmNyZW1lbnRhbCB1cGRhdGVzKSAgKi8KLS0gIHByb2JlX2FyZ2MgPSBn ZXRfcHJvYmVfYXJndW1lbnRfY291bnQgKHBhLT5wcm9iZSwgZnJhbWUpOwotKyAgVFJZCi0rICAg IHsKLSsgICAgICBwcm9iZV9hcmdjID0gZ2V0X3Byb2JlX2FyZ3VtZW50X2NvdW50IChwYS0+cHJv YmUsIGZyYW1lKTsKLSsgICAgfQotKyAgQ0FUQ0ggKGV4LCBSRVRVUk5fTUFTS19FUlJPUikKLSsg ICAgewotKyAgICAgIGV4Y2VwdGlvbl9wcmludCAoZ2RiX3N0ZGVyciwgZXgpOwotKyAgICAgIHBy b2JlX2FyZ2MgPSAwOwotKyAgICB9Ci0rICBFTkRfQ0FUQ0gKLSsKLSsgIC8qIElmIGdldF9wcm9i ZV9hcmd1bWVudF9jb3VudCB0aHJvd3MgYW4gZXhjZXB0aW9uLCBwcm9iZV9hcmdjIHdpbGwKLSsg ICAgIGJlIHNldCB0byB6ZXJvLiAgSG93ZXZlciwgaWYgcGEtPnByb2JlIGRvZXMgbm90IGhhdmUg YXJndW1lbnRzLAotKyAgICAgdGhlbiBnZXRfcHJvYmVfYXJndW1lbnRfY291bnQgd2lsbCBzdWNj ZWVkIGJ1dCBwcm9iZV9hcmdjIHdpbGwKLSsgICAgIGFsc28gYmUgemVyby4gIEJvdGggY2FzZXMg aGFwcGVuIGJlY2F1c2Ugb2YgZGlmZmVyZW50IHRoaW5ncywgYnV0Ci0rICAgICB0aGV5IGFyZSB0 cmVhdGVkIGVxdWFsbHkgaGVyZTogYWN0aW9uIHdpbGwgYmUgc2V0IHRvCi0rICAgICBQUk9CRVNf SU5URVJGQUNFX0ZBSUxFRC4gICovCi0gICBpZiAocHJvYmVfYXJnYyA9PSAyKQotICAgICBhY3Rp b24gPSBGVUxMX1JFTE9BRDsKLSAgIGVsc2UgaWYgKHByb2JlX2FyZ2MgPCAyKQotQEAgLTE5NTAs NyArMTk2NiwxNyBAQCBzdnI0X2hhbmRsZV9zb2xpYl9ldmVudCAodm9pZCkKLSAgIHVzbV9jaGFp biA9IG1ha2VfY2xlYW51cCAocmVzdW1lX3NlY3Rpb25fbWFwX3VwZGF0ZXNfY2xlYW51cCwKLSAJ CQkgICAgY3VycmVudF9wcm9ncmFtX3NwYWNlKTsKLSAKLS0gIHZhbCA9IGV2YWx1YXRlX3Byb2Jl X2FyZ3VtZW50IChwYS0+cHJvYmUsIDEsIGZyYW1lKTsKLSsgIFRSWQotKyAgICB7Ci0rICAgICAg dmFsID0gZXZhbHVhdGVfcHJvYmVfYXJndW1lbnQgKHBhLT5wcm9iZSwgMSwgZnJhbWUpOwotKyAg ICB9Ci0rICBDQVRDSCAoZXgsIFJFVFVSTl9NQVNLX0VSUk9SKQotKyAgICB7Ci0rICAgICAgZXhj ZXB0aW9uX3ByaW50IChnZGJfc3RkZXJyLCBleCk7Ci0rICAgICAgdmFsID0gTlVMTDsKLSsgICAg fQotKyAgRU5EX0NBVENICi0rCi0gICBpZiAodmFsID09IE5VTEwpCi0gICAgIHsKLSAgICAgICBk b19jbGVhbnVwcyAob2xkX2NoYWluKTsKLUBAIC0xOTgxLDcgKzIwMDcsMTggQEAgc3ZyNF9oYW5k bGVfc29saWJfZXZlbnQgKHZvaWQpCi0gCi0gICBpZiAoYWN0aW9uID09IFVQREFURV9PUl9SRUxP QUQpCi0gICAgIHsKLS0gICAgICB2YWwgPSBldmFsdWF0ZV9wcm9iZV9hcmd1bWVudCAocGEtPnBy b2JlLCAyLCBmcmFtZSk7Ci0rICAgICAgVFJZCi0rCXsKLSsJICB2YWwgPSBldmFsdWF0ZV9wcm9i ZV9hcmd1bWVudCAocGEtPnByb2JlLCAyLCBmcmFtZSk7Ci0rCX0KLSsgICAgICBDQVRDSCAoZXgs IFJFVFVSTl9NQVNLX0VSUk9SKQotKwl7Ci0rCSAgZXhjZXB0aW9uX3ByaW50IChnZGJfc3RkZXJy LCBleCk7Ci0rCSAgZG9fY2xlYW51cHMgKG9sZF9jaGFpbik7Ci0rCSAgcmV0dXJuOwotKwl9Ci0r ICAgICAgRU5EX0NBVENICi0rCi0gICAgICAgaWYgKHZhbCAhPSBOVUxMKQotIAlsbSA9IHZhbHVl X2FzX2FkZHJlc3MgKHZhbCk7Ci0gCi1Gcm9tIGFkMWM5MTdhNzllOGM1YWE2NzY1N2YxNDg0MTVj MWJlZTAxYjI0MGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZXJnaW8gRHVyaWdh biBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDIgU2VwIDIwMTUgMDA6 MzQ6MjIgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSCAzLzRdIEluaXRpYWxpemUgdmFyaWFibGUgYW5k IHNpbGVuY2UgR0NDIHdhcm5pbmcgZnJvbSBsYXN0Ci0gY29tbWl0Ci0KLUJ1aWxkQm90IGUtbWFp bGVkIG1lIHRvIGxldCBtZSBrbm93IHRoYXQgbXkgbGFzdCBjb21taXQgYnJva2UgR0RCIG9uCi1S SEVMLTcuMSBzMzkweC4gIE9uIHNvbGliLXN2cjQuYzpzdnI0X2hhbmRsZV9zb2xpYl9ldmVudCwg J3ZhbCcgbm93Ci1uZWVkcyB0byBiZSBpbml0aWFsaXplZCBhcyBOVUxMIGJlY2F1c2UgaXQgaXMg aW5zaWRlIGEgVFJZLi5DQVRDSAotYmxvY2suICBUaGlzIHBhdGNoIGRvZXMgdGhhdC4gIFB1c2hl ZCBhcyBvYnZpb3VzLgotCi1nZGIvQ2hhbmdlTG9nOgotMjAxNS0wOS0wMSAgU2VyZ2lvIER1cmln YW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLQotCSogc29saWItc3ZyNC5jIChzdnI0 X2hhbmRsZV9zb2xpYl9ldmVudCk6IEluaXRpYWxpemUgJ3ZhbCcgYXMgTlVMTAotLS0tCi0gZ2Ri L0NoYW5nZUxvZyAgICB8IDQgKysrKwotIGdkYi9zb2xpYi1zdnI0LmMgfCAyICstCi0gMiBmaWxl cyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotSW5kZXg6IGdkYi03 LjEwL2dkYi9zb2xpYi1zdnI0LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC5vcmlnL2dkYi9z b2xpYi1zdnI0LmMKLSsrKyBnZGItNy4xMC9nZGIvc29saWItc3ZyNC5jCi1AQCAtMTkxOCw3ICsx OTE4LDcgQEAgc3ZyNF9oYW5kbGVfc29saWJfZXZlbnQgKHZvaWQpCi0gICBzdHJ1Y3QgcHJvYmVf YW5kX2FjdGlvbiAqcGE7Ci0gICBlbnVtIHByb2JlX2FjdGlvbiBhY3Rpb247Ci0gICBzdHJ1Y3Qg Y2xlYW51cCAqb2xkX2NoYWluLCAqdXNtX2NoYWluOwotLSAgc3RydWN0IHZhbHVlICp2YWw7Ci0r ICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IE5VTEw7Ci0gICBDT1JFX0FERFIgcGMsIGRlYnVnX2Jhc2Us IGxtID0gMDsKLSAgIGludCBpc19pbml0aWFsX25zOwotICAgc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lID0gZ2V0X2N1cnJlbnRfZnJhbWUgKCk7Ci1Gcm9tIDczYzZiNDc1NmE3Y2VlNTNjMjc0ZWQw NWZkZGNkMDc5YjhiN2U1N2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZXJnaW8g RHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDIgU2VwIDIw MTUgMDA6NDY6NDMgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSCA0LzRdIEluaXRpYWxpemUgeWV0IGFu b3RoZXIgdmFyaWFibGUgdG8gc2lsZW5jZSBHQ0Mgd2FybmluZwotIGZyb20gbGFzdC1idXQtb25l IGNvbW1pdAotCi1ZZXQgYW5vdGhlciBCdWlsZEJvdCBlLW1haWwsIHlldCBhbm90aGVyIGJyZWFr YWdlIG9uIFJIRUwtNy4xIHMzOTB4Ci0od2hpY2ggdXNlcyBhbiBvbGRlciBHQ0MpLiAgVGhpcyB0 aW1lLAotc29saWItc3ZyNC5jOnNvbGliX2V2ZW50X3Byb2JlX2FjdGlvbiBoYXMgdGhlIHByb2Jl X2FyZ2MgdmFyaWFibGUsCi13aGljaCBpcyBub3cgaW5zaWRlIGEgVFJZLi5DQVRDSCBhbmQgdGhl cmVmb3JlIG5lZWRzIHRvIGJlCi1pbml0aWFsaXplZC4gIFB1c2hlZCBhcyBvYnZpb3VzLgotCi1n ZGIvQ2hhbmdlTG9nOgotMjAxNS0wOS0wMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lv ZGpAcmVkaGF0LmNvbT4KLQotCSogc29saWItc3ZyNC5jIChzb2xpYl9ldmVudF9wcm9iZV9hY3Rp b24pOiBJbml0aWFsaXplICdwcm9iZV9hcmdjJwotCWFzIHplcm8uCi0tLS0KLSBnZGIvQ2hhbmdl TG9nICAgIHwgNSArKysrKwotIGdkYi9zb2xpYi1zdnI0LmMgfCAyICstCi0gMiBmaWxlcyBjaGFu Z2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotIDIwMTUtMDktMDEgIFNlcmdp byBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1JbmRleDogZ2RiLTcuMTAv Z2RiL3NvbGliLXN2cjQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLm9yaWcvZ2RiL3NvbGli LXN2cjQuYwotKysrIGdkYi03LjEwL2dkYi9zb2xpYi1zdnI0LmMKLUBAIC0xNzgyLDcgKzE3ODIs NyBAQCBzdGF0aWMgZW51bSBwcm9iZV9hY3Rpb24KLSBzb2xpYl9ldmVudF9wcm9iZV9hY3Rpb24g KHN0cnVjdCBwcm9iZV9hbmRfYWN0aW9uICpwYSkKLSB7Ci0gICBlbnVtIHByb2JlX2FjdGlvbiBh Y3Rpb247Ci0tICB1bnNpZ25lZCBwcm9iZV9hcmdjOwotKyAgdW5zaWduZWQgcHJvYmVfYXJnYyA9 IDA7Ci0gICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBnZXRfY3VycmVudF9mcmFtZSAoKTsK LSAKLSAgIGFjdGlvbiA9IHBhLT5hY3Rpb247CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxMjYwNTU4 LXBwYzY0bGUtc2tpcF90cmFtcG9saW5lX2NvZGUucGF0Y2ggYi9nZGItcmhiejEyNjA1NTgtcHBj NjRsZS1za2lwX3RyYW1wb2xpbmVfY29kZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggY2RiYmQ2YS4uMDAwMDAwMAotLS0gYS9nZGItcmhiejEyNjA1NTgtcHBjNjRsZS1za2lw X3RyYW1wb2xpbmVfY29kZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1NyArMCwwIEBACi1o dHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNS0wOS9tc2cwMDE4My5odG1s Ci1TdWJqZWN0OiBbcHBjNjRsZSBwYXRjaCB2M10gVXNlIHNraXBfZW50cnlwb2ludCBmb3Igc2tp cF90cmFtcG9saW5lX2NvZGUKLQotCi0tLW1ZQ3BJS2hHeU1BVEQwaSsKLUNvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5l Ci0KLUFuIHVwZGF0ZSB0byBQQVNTIHRoZSB0ZXN0Y2FzZSBvbiBub24tcHBjNjRsZSBhcmNocy4K LQotLS1tWUNwSUtoR3lNQVREMGkrCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 dXMtYXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9NAotCi1nZGIv Q2hhbmdlTG9nCi0yMDE1LTA5LTA3ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+Ci0KLQkqIGxpbmVzcGVjLmMgKG1pbnN5bV9mb3VuZCk6IENhbGwgZ2RiYXJjaF9z a2lwX2VudHJ5cG9pbnQuCi0JKiBwcGM2NC10ZGVwLmMgKHBwYzY0X3NraXBfdHJhbXBvbGluZV9j b2RlKTogUmVuYW1lIHRvIC4uLgotCShwcGM2NF9za2lwX3RyYW1wb2xpbmVfY29kZV8xKTogLi4u IGhlcmUuCi0JKHBwYzY0X3NraXBfdHJhbXBvbGluZV9jb2RlKTogTmV3IHdyYXBwZXIgZnVuY3Rp b24uCi0JKiBzeW10YWIuYyAoZmluZF9mdW5jdGlvbl9zdGFydF9zYWwpOiBDYWxsIGdkYmFyY2hf c2tpcF9lbnRyeXBvaW50LgotCi1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotMjAxNS0wOS0wNyAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIub3B0 L3NvbGliLWludHJhLXN0ZXAtbGliLmM6IE5ldyBmaWxlLgotCSogZ2RiLm9wdC9zb2xpYi1pbnRy YS1zdGVwLW1haW4uYzogTmV3IGZpbGUuCi0JKiBnZGIub3B0L3NvbGliLWludHJhLXN0ZXAuZXhw OiBOZXcgZmlsZS4KLQotZGlmZiAtLWdpdCBhL2dkYi9saW5lc3BlYy5jIGIvZ2RiL2xpbmVzcGVj LmMKLWluZGV4IDhmMTAyZmEuLjRjMjljMTIgMTAwNjQ0Ci0tLS0gYS9nZGIvbGluZXNwZWMuYwot KysrIGIvZ2RiL2xpbmVzcGVjLmMKLUBAIC0zNTcwLDYgKzM1NzAsOCBAQCBtaW5zeW1fZm91bmQg KHN0cnVjdCBsaW5lc3BlY19zdGF0ZSAqc2VsZiwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCi0g CSAgc2FsLnBjID0gTVNZTUJPTF9WQUxVRV9BRERSRVNTIChvYmpmaWxlLCBtc3ltYm9sKTsKLSAJ ICBzYWwucGMgPSBnZGJhcmNoX2NvbnZlcnRfZnJvbV9mdW5jX3B0cl9hZGRyIChnZGJhcmNoLCBz YWwucGMsCi0gCQkJCQkJICAgICAgICZjdXJyZW50X3RhcmdldCk7Ci0rCSAgaWYgKGdkYmFyY2hf c2tpcF9lbnRyeXBvaW50X3AgKGdkYmFyY2gpKQotKwkgICAgc2FsLnBjID0gZ2RiYXJjaF9za2lw X2VudHJ5cG9pbnQgKGdkYmFyY2gsIHNhbC5wYyk7Ci0gCX0KLSAgICAgICBlbHNlCi0gCXNraXBf cHJvbG9ndWVfc2FsICgmc2FsKTsKLWRpZmYgLS1naXQgYS9nZGIvcHBjNjQtdGRlcC5jIGIvZ2Ri L3BwYzY0LXRkZXAuYwotaW5kZXggYmIyM2I2YS4uNGEwYjkzYSAxMDA2NDQKLS0tLSBhL2dkYi9w cGM2NC10ZGVwLmMKLSsrKyBiL2dkYi9wcGM2NC10ZGVwLmMKLUBAIC00NTQsOCArNDU0LDggQEAg cHBjNjRfc3RhbmRhcmRfbGlua2FnZTRfdGFyZ2V0IChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUs Ci0gICAgV2hlbiB0aGUgZXhlY3V0aW9uIGRpcmVjdGlvbiBpcyBFWEVDX1JFVkVSU0UsIHNjYW4g YmFja3dhcmQgdG8KLSAgICBjaGVjayB3aGV0aGVyIHdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEg UExUIHN0dWIuICAqLwotIAotLUNPUkVfQUREUgotLXBwYzY0X3NraXBfdHJhbXBvbGluZV9jb2Rl IChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIENPUkVfQUREUiBwYykKLStzdGF0aWMgQ09SRV9B RERSCi0rcHBjNjRfc2tpcF90cmFtcG9saW5lX2NvZGVfMSAoc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lLCBDT1JFX0FERFIgcGMpCi0gewotICNkZWZpbmUgTUFYKGEsYikgKChhKSA+IChiKSA/IChh KSA6IChiKSkKLSAgIHVuc2lnbmVkIGludCBpbnNuc1tNQVggKE1BWCAoTUFYIChBUlJBWV9TSVpF IChwcGM2NF9zdGFuZGFyZF9saW5rYWdlMSksCi1AQCAtNTMwLDYgKzUzMCwyMCBAQCBwcGM2NF9z a2lwX3RyYW1wb2xpbmVfY29kZSAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBDT1JFX0FERFIg cGMpCi0gICByZXR1cm4gMDsKLSB9Ci0gCi0rLyogV3JhcHBlciBvZiBwcGM2NF9za2lwX3RyYW1w b2xpbmVfY29kZV8xIGNoZWNraW5nIGFsc28KLSsgICBwcGNfZWxmdjJfc2tpcF9lbnRyeXBvaW50 LiAgKi8KLSsKLStDT1JFX0FERFIKLStwcGM2NF9za2lwX3RyYW1wb2xpbmVfY29kZSAoc3RydWN0 IGZyYW1lX2luZm8gKmZyYW1lLCBDT1JFX0FERFIgcGMpCi0rewotKyAgc3RydWN0IGdkYmFyY2gg KmdkYmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwotKwotKyAgcGMgPSBwcGM2NF9za2lw X3RyYW1wb2xpbmVfY29kZV8xIChmcmFtZSwgcGMpOwotKyAgaWYgKHBjICE9IDAgJiYgZ2RiYXJj aF9za2lwX2VudHJ5cG9pbnRfcCAoZ2RiYXJjaCkpCi0rICAgIHBjID0gZ2RiYXJjaF9za2lwX2Vu dHJ5cG9pbnQgKGdkYmFyY2gsIHBjKTsKLSsgIHJldHVybiBwYzsKLSt9Ci0rCi0gLyogU3VwcG9y dCBmb3IgY29udmVydF9mcm9tX2Z1bmNfcHRyX2FkZHIgKEFSQ0gsIEFERFIsIFRBUkcpIG9uIFBQ QzY0Ci0gICAgR05VL0xpbnV4LgotIAotZGlmZiAtLWdpdCBhL2dkYi9zeW10YWIuYyBiL2dkYi9z eW10YWIuYwotaW5kZXggMWJhNjkxZS4uZjY1ZTgwOSAxMDA2NDQKLS0tLSBhL2dkYi9zeW10YWIu YwotKysrIGIvZ2RiL3N5bXRhYi5jCi1AQCAtMzYyOSw3ICszNjI5LDExIEBAIGZpbmRfZnVuY3Rp b25fc3RhcnRfc2FsIChzdHJ1Y3Qgc3ltYm9sICpzeW0sIGludCBmdW5maXJzdGxpbmUpCi0gICAg ICAgJiYgKENPTVBVTklUX0xPQ0FUSU9OU19WQUxJRCAoU1lNVEFCX0NPTVBVTklUIChzYWwuc3lt dGFiKSkKLSAJICB8fCBTWU1UQUJfTEFOR1VBR0UgKHNhbC5zeW10YWIpID09IGxhbmd1YWdlX2Fz bSkpCi0gICAgIHsKLSsgICAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IHN5bWJvbF9hcmNo IChzeW0pOwotKwotICAgICAgIHNhbC5wYyA9IEJMT0NLX1NUQVJUIChTWU1CT0xfQkxPQ0tfVkFM VUUgKHN5bSkpOwotKyAgICAgIGlmIChnZGJhcmNoX3NraXBfZW50cnlwb2ludF9wIChnZGJhcmNo KSkKLSsJc2FsLnBjID0gZ2RiYXJjaF9za2lwX2VudHJ5cG9pbnQgKGdkYmFyY2gsIHNhbC5wYyk7 Ci0gICAgICAgcmV0dXJuIHNhbDsKLSAgICAgfQotIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLm9wdC9zb2xpYi1pbnRyYS1zdGVwLWxpYi5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0 L3NvbGliLWludHJhLXN0ZXAtbGliLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwLi45YWIxMjExCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQv c29saWItaW50cmEtc3RlcC1saWIuYwotQEAgLTAsMCArMSwzMCBAQAotKy8qIFRoaXMgdGVzdGNh c2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCi0rCi0rICAgQ29weXJpZ2h0IDIw MTUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsg ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Ci0rICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsKLSt2b2lk Ci0rc2hsaWJfc2Vjb25kIChpbnQgZHVtbXkpCi0reyAvKiBzZWNvbmQtcmV0cnkgKi8KLSsgIGFi b3J0ICgpOyAvKiBzZWNvbmQtaGl0ICovCi0rfQotKwotK3ZvaWQKLStzaGxpYl9maXJzdCAodm9p ZCkKLSt7IC8qIGZpcnN0LXJldHJ5ICovCi0rICBzaGxpYl9zZWNvbmQgKDApOyAvKiBmaXJzdC1o aXQgKi8KLSt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L3NvbGliLWludHJh LXN0ZXAtbWFpbi5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L3NvbGliLWludHJhLXN0ZXAtbWFp bi5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMTg2YmQ1ZgotLS0tIC9k ZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L3NvbGliLWludHJhLXN0ZXAtbWFp bi5jCi1AQCAtMCwwICsxLDI1IEBACi0rLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwg dGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsgICBDb3B5cmlnaHQgMjAxNSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAg IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCi0rCi0rZXh0ZXJuIHZvaWQgc2hsaWJfZmlyc3QgKHZvaWQpOwotKwotK2ludAotK21haW4g KHZvaWQpCi0rewotKyAgc2hsaWJfZmlyc3QgKCk7Ci0rICByZXR1cm4gMDsKLSt9Ci1kaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L3NvbGliLWludHJhLXN0ZXAuZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIub3B0L3NvbGliLWludHJhLXN0ZXAuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0 NAotaW5kZXggMDAwMDAwMC4uMDQ0YzRiZAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L3NvbGliLWludHJhLXN0ZXAuZXhwCi1AQCAtMCwwICsxLDg2IEBACi0rIyBD b3B5cmlnaHQgMjAxNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUKLSsKLStpZiB7W3Nr aXBfc2hsaWJfdGVzdHNdfSB7Ci0rICAgIHJldHVybiAwCi0rfQotKwotKyMgTGlicmFyeSBmaWxl LgotK3NldCBsaWJuYW1lICIke3Rlc3RmaWxlfS1saWIiCi0rc2V0IHNyY2ZpbGVfbGliICR7c3Jj ZGlyfS8ke3N1YmRpcn0vJHtsaWJuYW1lfS5jCi0rc2V0IGJpbmZpbGVfbGliIFtzdGFuZGFyZF9v dXRwdXRfZmlsZSAke2xpYm5hbWV9LnNvXQotK3NldCBsaWJfZmxhZ3MgW2xpc3QgZGVidWcgb3B0 aW1pemU9LU8yXQotKyMgQmluYXJ5IGZpbGUuCi0rc2V0IHRlc3RmaWxlICIke3Rlc3RmaWxlfS1t YWluIgotK3NldCBzcmNmaWxlICR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0uYwotK3Nl dCBiaW5maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3RmaWxlfV0KLStzZXQgYmluX2Zs YWdzIFtsaXN0IGRlYnVnIHNobGliPSR7YmluZmlsZV9saWJ9XQotKwotK2lmIFtnZXRfY29tcGls ZXJfaW5mb10gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0raWYgeyBbZ2RiX2NvbXBpbGVfc2hs aWIgJHtzcmNmaWxlX2xpYn0gJHtiaW5maWxlX2xpYn0gJGxpYl9mbGFnc10gIT0gIiIKLSsgICAg IHx8IFtnZGJfY29tcGlsZSAke3NyY2ZpbGV9ICR7YmluZmlsZX0gZXhlY3V0YWJsZSAkYmluX2Zs YWdzXSAhPSAiIiB9IHsKLSsgIHVudGVzdGVkICJDb3VsZCBub3QgY29tcGlsZSAkYmluZmlsZV9s aWIgb3IgJGJpbmZpbGUuIgotKyAgcmV0dXJuIC0xCi0rfQotKwotK2NsZWFuX3Jlc3RhcnQgJHti aW5maWxlfQotK2dkYl9sb2FkX3NobGlicyAkYmluZmlsZV9saWIKLSsKLStpZiAhW3J1bnRvX21h aW5dIHRoZW4gewotKyAgcmV0dXJuIDAKLSt9Ci0rCi0rc2V0IHRlc3QgImZpcnN0LWhpdCIKLStn ZGJfdGVzdF9tdWx0aXBsZSAic3RlcCIgJHRlc3QgewotKyAgICAtcmUgIiBmaXJzdC1oaXQgLipc clxuJGdkYl9wcm9tcHQgJCIgewotKwlwYXNzICR0ZXN0Ci0rICAgIH0KLSsgICAgLXJlICIgZmly c3QtcmV0cnkgLipcclxuJGdkYl9wcm9tcHQgJCIgewotKwlnZGJfdGVzdCAic3RlcCIgIiBmaXJz dC1oaXQgLioiICJmaXJzdC1oaXQgKG9wdGltaXplZCkiCi0rICAgIH0KLSt9Ci0rCi0rc2V0IHRl c3QgInNlY29uZC1oaXQiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUgInN0ZXAiICR0ZXN0IHsKLSsgICAg LXJlICIgc2Vjb25kLWhpdCAuKlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCXBhc3MgJHRlc3QKLSsg ICAgfQotKyAgICAtcmUgIiBmaXJzdC1yZXRyeSAuKlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCXNl dCB0ZXN0ICJzZWNvbmQtaGl0IChvcHRpbWl6ZWQgMSkiCi0rCWdkYl90ZXN0X211bHRpcGxlICJz dGVwIiAkdGVzdCB7Ci0rCSAgICAtcmUgIiBzZWNvbmQtaGl0IC4qXHJcbiRnZGJfcHJvbXB0ICQi IHsKLSsJCXBhc3MgJHRlc3QKLSsJICAgIH0KLSsJICAgIC1yZSAiIGZpcnN0LWhpdCAuKlxyXG4k Z2RiX3Byb21wdCAkIiB7Ci0rCQlnZGJfdGVzdCAic3RlcCIgIiBzZWNvbmQtaGl0IC4qIiAic2Vj b25kLWhpdCAob3B0aW1pemVkIDIpIgotKwkgICAgfQotKwl9Ci0rICAgIH0KLSsgICAgLXJlICIg c2Vjb25kLXJldHJ5IC4qXHJcbiRnZGJfcHJvbXB0ICQiIHsKLSsJZ2RiX3Rlc3QgInN0ZXAiICIg c2Vjb25kLWhpdCAuKiIgInNlY29uZC1oaXQgKG9wdGltaXplZCAzKSIKLSsgICAgfQotK30KLSsK LStpZiAhW3J1bnRvX21haW5dIHRoZW4gewotKyAgcmV0dXJuIDAKLSt9Ci0rCi0rZ2RiX2JyZWFr cG9pbnQgInNobGliX3NlY29uZCIKLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAic2Vjb25k LWhpdCIgIi4qIChzZWNvbmQtaGl0fHNlY29uZC1yZXRyeSkgLioiCi0KLS0tbVlDcElLaEd5TUFU RDBpKy0tCi0KCmRpZmYgLS1naXQgYS9nZGItcmhiejEyNzA1NjQtaW52YWxpZC1kd2FyZi1yZWdu by5wYXRjaCBiL2dkYi1yaGJ6MTI3MDU2NC1pbnZhbGlkLWR3YXJmLXJlZ25vLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTFjYWFmLi4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6 MTI3MDU2NC1pbnZhbGlkLWR3YXJmLXJlZ25vLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjIw ICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE1LTEwL21z ZzAwMTY2Lmh0bWwKLVN1YmplY3Q6IFtwYXRjaF0gRml4IGludGVybmFsIGVycm9yIG9uIERXX09Q X2JyZWd4KC0xKQotCi0KLS0taWJUdk4xNjEvZWdxWXVLOAotQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotSGks Ci0KLWh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDU2NCNj MTUKLWh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9hdHRhY2htZW50LmNnaT9pZD0xMDgxNzcy Ci0KLWNsYW5nLTMuNS4wLTkuZmMyMi54ODZfNjQKLSA8Mz48MjJiMj46IEFiYnJldiBOdW1iZXI6 IDY5IChEV19UQUdfdmFyaWFibGUpCi0gICAgPDIyYjM+ICAgRFdfQVRfbG9jYXRpb24gICAgOiA3 IGJ5dGUgYmxvY2s6IDkyIGZmIGZmIGZmIGZmIGYgMCAgICAgICAoRFdfT1BfYnJlZ3g6IDQyOTQ5 NjcyOTUgKHItMSkgMCkKLSAgICA8MjJiYj4gICBEV19BVF9uYW1lICAgICAgICA6IChpbmRpcmVj dCBzdHJpbmcsIG9mZnNldDogMHgyYTM2KTogdGV4dHVyZV9kYXRhCi0gICAgPDIyYzE+ICAgRFdf QVRfdHlwZSAgICAgICAgOiA8MHgxZDM+Ci0KLShnZGIpIHAgdmFyaWFibGUKLXdhcm5pbmc6IFVu bWFwcGVkIERXQVJGIFJlZ2lzdGVyICMtMSBlbmNvdW50ZXJlZC4KLXJlZ2NhY2hlLmM6MTc3OiBp bnRlcm5hbC1lcnJvcjogcmVnaXN0ZXJfc2l6ZTogQXNzZXJ0aW9uIGByZWdudW0gPj0gMCAmJiBy ZWdudW0gPCAoZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkgKyBnZGJhcmNoX251bV9wc2V1ZG9f cmVncyAoZ2RiYXJjaCkpJyBmYWlsZWQuCi1bLi4uXQotUXVpdCB0aGlzIGRlYnVnZ2luZyBzZXNz aW9uPyAoeSBvciBuKSBGQUlMOiBnZGIuZHdhcmYyL2R3Mi1yZWduby1pbnZhbGlkLmV4cDogcCB2 YXJpYWJsZSAoR0RCIGludGVybmFsIGVycm9yKQotCi0tPiAoeDg2XzY0KQotKGdkYikgcCB2YXJp YWJsZQotd2FybmluZzogVW5tYXBwZWQgRFdBUkYgUmVnaXN0ZXIgIy0xIGVuY291bnRlcmVkLgot SW52YWxpZCByZWdpc3RlciAjLTEsIGV4cGVjdGluZyAwIDw9ICMgPCAyMjAKLShnZGIpIFBBU1M6 IGdkYi5kd2FyZjIvZHcyLXJlZ25vLWludmFsaWQuZXhwOiBwIHZhcmlhYmxlCi0tPiAoaTM4NikK LShnZGIpIHAgdmFyaWFibGUKLUludmFsaWQgcmVnaXN0ZXIgIzEwNCwgZXhwZWN0aW5nIDAgPD0g IyA8IDEwNAotKGdkYikgUEFTUzogZ2RiLmR3YXJmMi9kdzItcmVnbm8taW52YWxpZC5leHA6IHAg dmFyaWFibGUKLQotR0RCIGNhbGxzIGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdudW0oKSBmaXJz dCB3aGljaCByZXR1cm5zIC0xIGluIHRoZSB4ODZfNjQKLWNhc2UKLSAgaWYgKHJlZ251bSA9PSAt MSkKLSAgICB3YXJuaW5nIChfKCJVbm1hcHBlZCBEV0FSRiBSZWdpc3RlciAjJWQgZW5jb3VudGVy ZWQuIiksIHJlZyk7Ci1idXQgaW4gaTM4NiBjYXNlIGl0IGRvZXM6Ci0gIC8qIFRoaXMgd2lsbCBo b3BlZnVsbHkgcHJvdm9rZSBhIHdhcm5pbmcuICAqLwotICByZXR1cm4gZ2RiYXJjaF9udW1fcmVn cyAoZ2RiYXJjaCkgKyBnZGJhcmNoX251bV9wc2V1ZG9fcmVncyAoZ2RiYXJjaCk7Ci1hbmQgdGhl IGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMgYSBub3AsIGxlYXZpbmcgd2hhdGV2ZXIgcmVnaXN0 ZXIgbnVtYmVyCi10aGUgRFdBUkYgc3BlY2lmaWVkLgotCi1ObyByZWdyZXNzaW9ucyBvbiB7eDg2 XzY0LHg4Nl82NC1tMzIsaTY4Nn0tZmVkb3JhcmF3aGlkZS1saW51eC1nbnUuCi0KLQotSmFuCi0K LS0taWJUdk4xNjEvZWdxWXVLOAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVz LWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPSJ1bmRlZnJlZy5w YXRjaCIKLQotZ2RiL0NoYW5nZUxvZwotMjAxNS0xMC0xMiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBmaW5kdmFyLmMgKGFkZHJlc3NfZnJvbV9yZWdp c3Rlcik6IENoZWNrIFJFR05VTSB2YWxpZGl0eS4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cK LTIwMTUtMTAtMTIgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4K LQotCSogZ2RiLmR3YXJmMi9kdzItcmVnbm8taW52YWxpZC5TOiBOZXcgZmlsZS4KLQkqIGdkYi5k d2FyZjIvZHcyLXJlZ25vLWludmFsaWQuZXhwOiBOZXcgZmlsZS4KLQotZGlmZiAtLWdpdCBhL2dk Yi9maW5kdmFyLmMgYi9nZGIvZmluZHZhci5jCi1pbmRleCAwZjQ2ZTUzLi44NTU5NDdkIDEwMDY0 NAotLS0tIGEvZ2RiL2ZpbmR2YXIuYwotKysrIGIvZ2RiL2ZpbmR2YXIuYwotQEAgLTkyNyw2ICs5 MjcsMTIgQEAgYWRkcmVzc19mcm9tX3JlZ2lzdGVyIChpbnQgcmVnbnVtLCBzdHJ1Y3QgZnJhbWVf aW5mbyAqZnJhbWUpCi0gICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJj aCktPmJ1aWx0aW5fZGF0YV9wdHI7Ci0gICBzdHJ1Y3QgdmFsdWUgKnZhbHVlOwotICAgQ09SRV9B RERSIHJlc3VsdDsKLSsgIGludCByZWdudW1fbWF4X2V4Y2wgPSAoZ2RiYXJjaF9udW1fcmVncyAo Z2RiYXJjaCkKLSsJCQkgKyBnZGJhcmNoX251bV9wc2V1ZG9fcmVncyAoZ2RiYXJjaCkpOwotKwot KyAgaWYgKHJlZ251bSA8IDAgfHwgcmVnbnVtID49IHJlZ251bV9tYXhfZXhjbCkKLSsgICAgZXJy b3IgKF8oIkludmFsaWQgcmVnaXN0ZXIgIyVkLCBleHBlY3RpbmcgMCA8PSAjIDwgJWQiKSwgcmVn bnVtLAotKwkgICByZWdudW1fbWF4X2V4Y2wpOwotIAotICAgLyogVGhpcyByb3V0aW5lIG1heSBi ZSBjYWxsZWQgZHVyaW5nIGVhcmx5IHVud2luZGluZywgYXQgYSB0aW1lCi0gICAgICB3aGVyZSB0 aGUgSUQgb2YgRlJBTUUgaXMgbm90IHlldCBrbm93bi4gIENhbGxpbmcgdmFsdWVfZnJvbV9yZWdp c3RlcgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItcmVnbm8taW52 YWxpZC5TIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1yZWduby1pbnZhbGlkLlMKLW5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4wNzViZmQ2Ci0tLS0gL2Rldi9udWxs Ci0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXJlZ25vLWludmFsaWQuUwotQEAg LTAsMCArMSw5MSBAQAotKy8qIENvcHlyaWdodCAyMDE1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgotKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0rICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSsK LSsJLnNlY3Rpb24JLmRlYnVnX2luZm8KLStkZWJ1Z19zdGFydDoKLSsJLjRieXRlCWRlYnVnX2Vu ZCAtIDFmCS8qIExlbmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8gKi8KLSsxOgotKwkuMmJ5 dGUJMHgzCS8qIERXQVJGIHZlcnNpb24gbnVtYmVyICovCi0rCS40Ynl0ZQkuTGRlYnVnX2FiYnJl djAJLyogT2Zmc2V0IEludG8gQWJicmV2LiBTZWN0aW9uICovCi0rCS5ieXRlCTB4NAkvKiBQb2lu dGVyIFNpemUgKGluIGJ5dGVzKSAqLwotKwkudWxlYjEyOCAweDEJLyogKERJRSAoMHhiKSBEV19U QUdfY29tcGlsZV91bml0KSAqLwotKwkuYXNjaWkgImNsYW5nLTMuNS4wLTkuZmMyMi54ODZfNjRc MCIJLyogRFdfQVRfcHJvZHVjZXIgKi8KLSsJLmJ5dGUJMHgxCS8qIERXX0FUX2xhbmd1YWdlICov Ci0rCS5hc2NpaSAiMS5jXDAiCS8qIERXX0FUX25hbWUgKi8KLSsJLjRieXRlCW1haW5fbGFiZWwJ CS8qIERXX0FUX2xvd19wYyAqLwotKwkuNGJ5dGUJbWFpbl9sYWJlbCsweDEwMDAwCS8qIERXX0FU X2hpZ2hfcGMgKi8KLSsKLSsJLnVsZWIxMjgJMgkJCS8qIEFiYnJldjogRFdfVEFHX3N1YnByb2dy YW0gKi8KLSsJLmJ5dGUJCTEJCQkvKiBEV19BVF9leHRlcm5hbCAqLwotKwkuYXNjaWkJCSJtYWlu XDAiCQkvKiBEV19BVF9uYW1lICovCi0rCS40Ynl0ZQltYWluX2xhYmVsCQkvKiBEV19BVF9sb3df cGMgKi8KLSsJLjRieXRlCW1haW5fbGFiZWwrMHgxMDAwMAkvKiBEV19BVF9oaWdoX3BjICovCi0r Ci0rCS51bGViMTI4IDB4NAkvKiAoRFdfVEFHX3ZhcmlhYmxlKSAqLwotKwkuYXNjaWkgInZhcmlh YmxlXDAiCS8qIERXX0FUX25hbWUgKi8KLSsJLjJieXRlCTJmIC0gMWYJLyogRFdfQVRfbG9jYXRp b246IERXX0ZPUk1fYmxvY2syICovCi0rMToKLSsJLmJ5dGUJMHg5MgkvKiBEV19PUF9icmVneCAq LwotKwkudWxlYjEyOAkweGZmZmZmZmZmCi0rCS5zbGViMTI4IDAKLSsyOgotKwotKwkuYnl0ZQkw eDAJLyogZW5kIG9mIGNoaWxkcmVuIG9mIG1haW4gKi8KLSsJLmJ5dGUJMHgwCS8qIGVuZCBvZiBj aGlsZHJlbiBvZiBDVSAqLwotK2RlYnVnX2VuZDoKLSsKLSsJLnNlY3Rpb24JLmRlYnVnX2FiYnJl dgotKy5MZGVidWdfYWJicmV2MDoKLSsJLnVsZWIxMjggMHgxCS8qIChhYmJyZXYgY29kZSkgKi8K LSsJLnVsZWIxMjggMHgxMQkvKiAoVEFHOiBEV19UQUdfY29tcGlsZV91bml0KSAqLwotKwkuYnl0 ZQkweDEJLyogRFdfY2hpbGRyZW5feWVzICovCi0rCS51bGViMTI4IDB4MjUJLyogKERXX0FUX3By b2R1Y2VyKSAqLwotKwkudWxlYjEyOCAweDgJLyogKERXX0ZPUk1fc3RyaW5nKSAqLwotKwkudWxl YjEyOCAweDEzCS8qIChEV19BVF9sYW5ndWFnZSkgKi8KLSsJLnVsZWIxMjggMHhiCS8qIChEV19G T1JNX2RhdGExKSAqLwotKwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUpICovCi0rCS51bGVi MTI4IDB4OAkvKiAoRFdfRk9STV9zdHJpbmcpICovCi0rCS51bGViMTI4CTB4MTEJCQkvKiBEV19B VF9sb3dfcGMgKi8KLSsJLnVsZWIxMjgJMHgxCQkJLyogRFdfRk9STV9hZGRyICovCi0rCS51bGVi MTI4CTB4MTIJCQkvKiBEV19BVF9oaWdoX3BjICovCi0rCS51bGViMTI4CTB4MQkJCS8qIERXX0ZP Uk1fYWRkciAqLwotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCi0rCS51bGViMTI4CTIJCQkv KiBBYmJyZXYgY29kZSAqLwotKwkudWxlYjEyOAkweDJlCQkJLyogRFdfVEFHX3N1YnByb2dyYW0g Ki8KLSsJLmJ5dGUJCTEJCQkvKiBoYXNfY2hpbGRyZW4gKi8KLSsJLnVsZWIxMjgJMHgzZgkJCS8q IERXX0FUX2V4dGVybmFsICovCi0rCS51bGViMTI4CTB4YwkJCS8qIERXX0ZPUk1fZmxhZyAqLwot KwkudWxlYjEyOAkweDMJCQkvKiBEV19BVF9uYW1lICovCi0rCS51bGViMTI4CTB4OAkJCS8qIERX X0ZPUk1fc3RyaW5nICovCi0rCS51bGViMTI4CTB4MTEJCQkvKiBEV19BVF9sb3dfcGMgKi8KLSsJ LnVsZWIxMjgJMHgxCQkJLyogRFdfRk9STV9hZGRyICovCi0rCS51bGViMTI4CTB4MTIJCQkvKiBE V19BVF9oaWdoX3BjICovCi0rCS51bGViMTI4CTB4MQkJCS8qIERXX0ZPUk1fYWRkciAqLwotKwku Ynl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLwotKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRv ciAqLwotKwotKwotKwkudWxlYjEyOCAweDQJLyogKGFiYnJldiBjb2RlKSAqLwotKwkudWxlYjEy OCAweDM0CS8qIChUQUc6IERXX1RBR192YXJpYWJsZSkgKi8KLSsJLmJ5dGUJMHgwCS8qIERXX2No aWxkcmVuX3llcyAqLwotKwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUpICovCi0rCS51bGVi MTI4IDB4OAkvKiAoRFdfRk9STV9zdHJpbmcpICovCi0rCS51bGViMTI4IDB4MDIJLyogKERXX0FU X2xvY2F0aW9uKSAqLwotKwkudWxlYjEyOCAweDMJLyogKERXX0ZPUk1fYmxvY2syKSAqLwotKwku Ynl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCS5ieXRlCTB4MAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItcmVnbm8taW52YWxpZC5leHAgYi9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLXJlZ25vLWludmFsaWQuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMC4uN2MzYTQwNAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1yZWduby1pbnZhbGlkLmV4cAotQEAgLTAsMCArMSwzMiBAQAotKyMgQ29w eXJpZ2h0IDIwMTUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgotK2xvYWRfbGliIGR3YXJmLmV4cAotKwotKyMgVGhpcyB0ZXN0 IGNhbiBvbmx5IGJlIHJ1biBvbiB0YXJnZXRzIHdoaWNoIHN1cHBvcnQgRFdBUkYtMiBhbmQgdXNl IGdhcy4KLStpZiB7IVtkd2FyZjJfc3VwcG9ydF19IHsKLSsgICAgcmV0dXJuIDAgIAotK30KLSsK LStzdGFuZGFyZF90ZXN0ZmlsZSAuUyBtYWluLmMKLSsKLStpZiB7IFtnZGJfY29tcGlsZSAiJHtz cmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9ICR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxl Mn0iIFwKLSsJCSAgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUge31dICE9ICIiIH0gewotKyAgICBy ZXR1cm4gLTEKLSt9Ci0rCi0rY2xlYW5fcmVzdGFydCAke2JpbmZpbGV9Ci0rcnVudG9fbWFpbgot KwotK2dkYl90ZXN0ICJwIHZhcmlhYmxlIgotCi0tLWliVHZOMTYxL2VncVl1SzgtLQotCgpkaWZm IC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKaW5kZXggZGJjODU3OS4uNjAzN2UwZSAxMDA2NDQKLS0t IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQy NC1iaXRwb3MtMjBvZjI1LnBhdGNoCkBAIC00NjMsMTEgKzQ2MywxMSBAQCBDb250ZW50LVR5cGU6 IHRleHQveC1wYXRjaAogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAogQ29udGVudC1E aXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Yml0cG9zLW1haW4ucGF0Y2gKIAotSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKK0luZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAx NTA3MDkub3JpZy9nZGIvYWRhLWxhbmcuYwkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk2ODM1NTg4MSAr MDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMJMjAxNS0wNy0wOSAx ODoyNDo0Mi4yMTkzODM2MTIgKzAyMDAKLUBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBzdHJ1Y3Qg dHlwZSAqZGVzY19ib3VuZHNfdHlwZSAoc3QKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmln L2dkYi9hZGEtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc1MzUxNDEwICswMTAwCisrKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4x OTczNjQ3MTQgKzAxMDAKK0BAIC03NSw3ICs3NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZGVz Y19ib3VuZHNfdHlwZSAoc3QKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICpkZXNjX2JvdW5kcyAo c3RydWN0IHZhbHVlICopOwogIApAQCAtNDc2LDcgKzQ3Niw3IEBAIEluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIGludCBmYXRfcG50cl9ib3VuZHNf Yml0c2l6ZSAoc3RydWN0IHR5cGUgKik7CiAgCi1AQCAtODIsMTMgKzgyLDEzIEBAIHN0YXRpYyBz dHJ1Y3QgdHlwZSAqZGVzY19kYXRhX3RhcmdldF90eXAKK0BAIC04MywxMyArODMsMTMgQEAgc3Rh dGljIHN0cnVjdCB0eXBlICpkZXNjX2RhdGFfdGFyZ2V0X3R5cAogIAogIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKmRlc2NfZGF0YSAoc3RydWN0IHZhbHVlICopOwogIApAQCAtNDkyLDcgKzQ5Miw3IEBA IEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIGlu dCBkZXNjX2JvdW5kX2JpdHNpemUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKICAKLUBAIC0x NjgsNyArMTY4LDcgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpzdGF0aWNfdW53cmFwX3R5cGUgKAor QEAgLTE3Miw3ICsxNzIsNyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKnN0YXRpY191bndyYXBfdHlw ZSAoCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdW53cmFwX3ZhbHVlIChzdHJ1Y3QgdmFsdWUg Kik7CiAgCkBAIC01MDEsNyArNTAxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L2FkYS1sYW5nLmMKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKmRlY29kZV9jb25zdHJhaW5lZF9w YWNrZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKik7CiAgCi1AQCAtMTgzLDcgKzE4Myw4IEBA IHN0YXRpYyBpbnQgYWRhX2lzX3VuY29uc3RyYWluZWRfcGFja2VkX2EKK0BAIC0xODcsNyArMTg3 LDggQEAgc3RhdGljIGludCBhZGFfaXNfdW5jb25zdHJhaW5lZF9wYWNrZWRfYQogIHN0YXRpYyBz dHJ1Y3QgdmFsdWUgKnZhbHVlX3N1YnNjcmlwdF9wYWNrZWQgKHN0cnVjdCB2YWx1ZSAqLCBpbnQs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZh bHVlICoqKTsKICAKQEAgLTUxMSwxMiArNTExLDEyIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqY29lcmNlX3Vuc3Bl Y192YWxfdG9fdHlwZSAoc3RydWN0IHZhbHVlICosCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKik7Ci1AQCAtMjExLDE0ICsyMTIs MTQgQEAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdmFsdWVfdmFsX2F0ciAoc3RydQorQEAgLTIxNSwx NCArMjE2LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3ZhbF9hdHIgKHN0cnUKICBz dGF0aWMgc3RydWN0IHN5bWJvbCAqc3RhbmRhcmRfbG9va3VwIChjb25zdCBjaGFyICosIGNvbnN0 IHN0cnVjdCBibG9jayAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvbWFpbl9lbnVtKTsKICAKLS1zdGF0aWMgc3RydWN0IHZhbHVlICphZGFfc2VhcmNoX3N0cnVj dF9maWVsZCAoY2hhciAqLCBzdHJ1Y3QgdmFsdWUgKiwgaW50LAotK3N0YXRpYyBzdHJ1Y3QgdmFs dWUgKmFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjaGFyICosIHN0cnVjdCB2YWx1ZSAqLCBMT05H RVNULAorLXN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25z dCBjaGFyICosIHN0cnVjdCB2YWx1ZSAqLCBpbnQsCisrc3RhdGljIHN0cnVjdCB2YWx1ZSAqYWRh X3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKiwgc3RydWN0IHZhbHVlICosIExPTkdF U1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCB0eXBlICopOwogIAogLXN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV92YWx1ZV9wcmltaXRpdmVf ZmllbGQgKHN0cnVjdCB2YWx1ZSAqLCBpbnQsIGludCwKQEAgLTUyNiwxMSArNTI2LDExIEBAIElu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAtc3RhdGljIGludCBmaW5k X3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgdHlwZSAqLCBpbnQsCiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKiosIGludCAqLCBpbnQgKiwgaW50 ICosIGludCAqKTsKICtzdGF0aWMgaW50IGZpbmRfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICos IHN0cnVjdCB0eXBlICosIExPTkdFU1QsCi0rCQkJICAgICAgc3RydWN0IHR5cGUgKiosIExPTkdF U1QgKiwgaW50ICosIGludCAqLCBpbnQgKik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHR5cGUgKiosIExPTkdFU1QgKiwgaW50ICosIGludCAqLCBpbnQgKik7CiAgCiAg c3RhdGljIHN0cnVjdCB2YWx1ZSAqYWRhX3RvX2ZpeGVkX3ZhbHVlX2NyZWF0ZSAoc3RydWN0IHR5 cGUgKiwgQ09SRV9BRERSLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB2YWx1ZSAqKTsKLUBAIC0yMzIsNyArMjMzLDcgQEAgc3RhdGljIGlu dCBhZGFfaXNfZGlyZWN0X2FycmF5X3R5cGUgKHN0cgorQEAgLTIzNiw3ICsyMzcsNyBAQCBzdGF0 aWMgaW50IGFkYV9pc19kaXJlY3RfYXJyYXlfdHlwZSAoc3RyCiAgc3RhdGljIHZvaWQgYWRhX2xh bmd1YWdlX2FyY2hfaW5mbyAoc3RydWN0IGdkYmFyY2ggKiwKICAJCQkJICAgIHN0cnVjdCBsYW5n dWFnZV9hcmNoX2luZm8gKik7CiAgCkBAIC01MzksNyArNTM5LDcgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICAJCQkJCSAgICAgc3RydWN0IHR5cGUgKik7CiAg CiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqYXNzaWduX2FnZ3JlZ2F0ZSAoc3RydWN0IHZhbHVlICos IHN0cnVjdCB2YWx1ZSAqLCAKLUBAIC02OTUsNyArNjk2LDcgQEAgY29lcmNlX3Vuc3BlY192YWxf dG9fdHlwZSAoc3RydWN0IHZhbHVlCitAQCAtNzAwLDcgKzcwMSw3IEBAIGNvZXJjZV91bnNwZWNf dmFsX3RvX3R5cGUgKHN0cnVjdCB2YWx1ZQogIH0KICAKICBzdGF0aWMgY29uc3QgZ2RiX2J5dGUg KgpAQCAtNTQ4LDcgKzU0OCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEt bGFuZy5jCiAgewogICAgaWYgKHZhbGFkZHIgPT0gTlVMTCkKICAgICAgcmV0dXJuIE5VTEw7Ci1A QCAtNzA0LDcgKzcwNSw3IEBAIGNvbmRfb2Zmc2V0X2hvc3QgKGNvbnN0IGdkYl9ieXRlICp2YWxh ZGQKK0BAIC03MDksNyArNzEwLDcgQEAgY29uZF9vZmZzZXRfaG9zdCAoY29uc3QgZ2RiX2J5dGUg KnZhbGFkZAogIH0KICAKICBzdGF0aWMgQ09SRV9BRERSCkBAIC01NTcsNyArNTU3LDcgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICBpZiAoYWRkcmVz cyA9PSAwKQogICAgICByZXR1cm4gMDsKLUBAIC0xNzExLDcgKzE3MTIsNyBAQCBkZXNjX2JvdW5k cyAoc3RydWN0IHZhbHVlICphcnIpCitAQCAtMTcxNyw3ICsxNzE4LDcgQEAgZGVzY19ib3VuZHMg KHN0cnVjdCB2YWx1ZSAqYXJyKQogIC8qIElmIFRZUEUgaXMgdGhlIHR5cGUgb2YgYW4gYXJyYXkt ZGVzY3JpcHRvciAoZmF0IHBvaW50ZXIpLCAgdGhlIGJpdAogICAgIHBvc2l0aW9uIG9mIHRoZSBm aWVsZCBjb250YWluaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBib3VuZHMgZGF0YS4gICovCiAgCkBA IC01NjYsNyArNTY2LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5n LmMKICBmYXRfcG50cl9ib3VuZHNfYml0cG9zIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBy ZXR1cm4gVFlQRV9GSUVMRF9CSVRQT1MgKGRlc2NfYmFzZV90eXBlICh0eXBlKSwgMSk7Ci1AQCAt MTc3Nyw3ICsxNzc4LDcgQEAgZGVzY19kYXRhIChzdHJ1Y3QgdmFsdWUgKmFycikKK0BAIC0xNzgz LDcgKzE3ODQsNyBAQCBkZXNjX2RhdGEgKHN0cnVjdCB2YWx1ZSAqYXJyKQogIC8qIElmIFRZUEUg aXMgdGhlIHR5cGUgb2YgYW4gYXJyYXktZGVzY3JpcHRvciAoZmF0IHBvaW50ZXIpLCB0aGUgYml0 CiAgICAgcG9zaXRpb24gb2YgdGhlIGZpZWxkIGNvbnRhaW5pbmcgdGhlIGFkZHJlc3Mgb2YgdGhl IGRhdGEuICAqLwogIApAQCAtNTc1LDcgKzU3NSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9hZGEtbGFuZy5jCiAgZmF0X3BudHJfZGF0YV9iaXRwb3MgKHN0cnVjdCB0eXBlICp0 eXBlKQogIHsKICAgIHJldHVybiBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5 cGUpLCAwKTsKLUBAIC0xODEyLDcgKzE4MTMsNyBAQCBkZXNjX29uZV9ib3VuZCAoc3RydWN0IHZh bHVlICpib3VuZHMsIGluCitAQCAtMTgxOCw3ICsxODE5LDcgQEAgZGVzY19vbmVfYm91bmQgKHN0 cnVjdCB2YWx1ZSAqYm91bmRzLCBpbgogICAgIG9mIHRoZSBJdGggbG93ZXIgYm91bmQgc3RvcmVk IGluIGl0LCBpZiBXSElDSCBpcyAwLCBhbmQgdGhlIEl0aCB1cHBlcgogICAgIGJvdW5kLCBpZiBX SElDSCBpcyAxLiAgVGhlIGZpcnN0IGJvdW5kIGlzIEk9MS4gICovCiAgCkBAIC01ODQsNyArNTg0 LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICBkZXNjX2Jv dW5kX2JpdHBvcyAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBpLCBpbnQgd2hpY2gpCiAgewogICAg cmV0dXJuIFRZUEVfRklFTERfQklUUE9TIChkZXNjX2Jhc2VfdHlwZSAodHlwZSksIDIgKiBpICsg d2hpY2ggLSAyKTsKLUBAIC0yMDAyLDcgKzIwMDMsNyBAQCBhZGFfdHlwZV9vZl9hcnJheSAoc3Ry dWN0IHZhbHVlICphcnIsIGluCitAQCAtMjAwOCw3ICsyMDA5LDcgQEAgYWRhX3R5cGVfb2ZfYXJy YXkgKHN0cnVjdCB2YWx1ZSAqYXJyLCBpbgogIAkgICAgICAgICB6ZXJvLCBhbmQgZG9lcyBub3Qg bmVlZCB0byBiZSByZWNvbXB1dGVkLiAgKi8KICAJICAgICAgaWYgKGxvIDwgaGkpCiAgCQl7CkBA IC01OTMsNyArNTkzLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5n LmMKICAJCSAgICAgICAgKGhpIC0gbG8gKyAxKSAqIFRZUEVfRklFTERfQklUU0laRSAoZWx0X3R5 cGUsIDApOwogIAogIAkJICBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkgPSAoYXJyYXlfYml0c2l6 ZSArIDcpIC8gODsKLUBAIC0yMTYyLDcgKzIxNjMsNyBAQCBkZWNvZGVfcGFja2VkX2FycmF5X2Jp dHNpemUgKHN0cnVjdCB0eXBlCitAQCAtMjE2OCw3ICsyMTY5LDcgQEAgZGVjb2RlX3BhY2tlZF9h cnJheV9iaXRzaXplIChzdHJ1Y3QgdHlwZQogICAgIHRoZSBsZW5ndGggaXMgYXJiaXRyYXJ5LiAg Ki8KICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgpAQCAtNjAyLDcgKzYwMiw3IEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAgewogICAgc3RydWN0IHR5cGUgKm5l d19lbHRfdHlwZTsKICAgIHN0cnVjdCB0eXBlICpuZXdfdHlwZTsKLUBAIC0yMjE2LDcgKzIyMTcs NyBAQCBkZWNvZGVfY29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0CitAQCAtMjIyMiw3 ICsyMjIzLDcgQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJheV90eXBlIChzdAogICAg Y2hhciAqbmFtZTsKICAgIGNvbnN0IGNoYXIgKnRhaWw7CiAgICBzdHJ1Y3QgdHlwZSAqc2hhZG93 X3R5cGU7CkBAIC02MTEsNyArNjExLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L2FkYS1sYW5nLmMKICAKICAgIGlmICghcmF3X25hbWUpCiAgICAgIHJhd19uYW1lID0gYWRhX3R5 cGVfbmFtZSAoZGVzY19iYXNlX3R5cGUgKHR5cGUpKTsKLUBAIC0yMjg3LDcgKzIyODgsOCBAQCBk ZWNvZGVfY29uc3RyYWluZWRfcGFja2VkX2FycmF5IChzdHJ1Y3QKK0BAIC0yMjkzLDcgKzIyOTQs OCBAQCBkZWNvZGVfY29uc3RyYWluZWRfcGFja2VkX2FycmF5IChzdHJ1Y3QKICAgCSBhcnJheSB3 aXRoIG5vIHdyYXBwZXIuICBJbiBvcmRlciB0byBpbnRlcnByZXQgdGhlIHZhbHVlIHRocm91Z2gK ICAgCSB0aGUgKGxlZnQtanVzdGlmaWVkKSBwYWNrZWQgYXJyYXkgdHlwZSB3ZSBqdXN0IGJ1aWx0 LCB3ZSBtdXN0CiAgIAkgZmlyc3QgbGVmdC1qdXN0aWZ5IGl0LiAgKi8KQEAgLTYyMSw3ICs2MjEs NyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuYwogICAgICAgIFVM T05HRVNUIG1vZDsKICAKICAgICAgICBtb2QgPSBhZGFfbW9kdWx1cyAodmFsdWVfdHlwZSAoYXJy KSkgLSAxOwotQEAgLTIzODgsMTUgKzIzOTAsMTYgQEAgaGFzX25lZ2F0aXZlcyAoc3RydWN0IHR5 cGUgKnR5cGUpCitAQCAtMjUyMSw3ICsyNTIzLDcgQEAgYWRhX3VucGFja19mcm9tX2NvbnRlbnRz IChjb25zdCBnZGJfYnl0ZQogIAogIHN0cnVjdCB2YWx1ZSAqCiAgYWRhX3ZhbHVlX3ByaW1pdGl2 ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdmFsdWUgKm9iaiwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIs CkBAIC02MzAsMjEgKzYzMCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEt bGFuZy5jCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlw ZSkKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7Ci0tICBpbnQgc3JjLCAgICAgICAgICAgICAgICAg ICAgICAvKiBJbmRleCBpbnRvIHRoZSBzb3VyY2UgYXJlYSAqLwotLSAgICB0YXJnLCAgICAgICAg ICAgICAgICAgICAgICAgLyogSW5kZXggaW50byB0aGUgdGFyZ2V0IGFyZWEgKi8KLS0gICAgc3Jj Qml0c0xlZnQsICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBzb3VyY2UgYml0cyBsZWZ0IHRv IG1vdmUgKi8KLS0gICAgbnNyYywgbnRhcmcsICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBz b3VyY2UgYW5kIHRhcmdldCBieXRlcyAqLwotLSAgICB1bnVzZWRMUywgICAgICAgICAgICAgICAg ICAgLyogTnVtYmVyIG9mIGJpdHMgaW4gbmV4dCBzaWduaWZpY2FudAotKyAgaW50IHNyYzsgICAg ICAgICAgICAgICAgICAgICAgLyogSW5kZXggaW50byB0aGUgc291cmNlIGFyZWEgKi8KLSsgIExP TkdFU1QgdGFyZzsgICAgICAgICAgICAgICAgIC8qIEluZGV4IGludG8gdGhlIHRhcmdldCBhcmVh ICovCi0rICBpbnQgc3JjQml0c0xlZnQsICAgICAgICAgICAgICAvKiBOdW1iZXIgb2Ygc291cmNl IGJpdHMgbGVmdCB0byBtb3ZlICovCi0rICAgIG5zcmM7ICAgICAgICAgICAgICAgICAgICAgICAv KiBOdW1iZXIgb2Ygc291cmNlIGJ5dGVzICovCi0rICBMT05HRVNUIG50YXJnOyAgICAgICAgICAg ICAgICAvKiBOdW1iZXIgb2YgdGFyZ2V0IGJ5dGVzICovCi0rICBpbnQgdW51c2VkTFMsICAgICAg ICAgICAgICAgICAvKiBOdW1iZXIgb2YgYml0cyBpbiBuZXh0IHNpZ25pZmljYW50Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIG9mIHNvdXJjZSB0aGF0IGFyZSB1bnVz ZWQgKi8KLSAgICAgYWNjdW1TaXplOyAgICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBtZWFu aW5nZnVsIGJpdHMgaW4gYWNjdW0gKi8KLSAgIHVuc2lnbmVkIGNoYXIgKmJ5dGVzOyAgICAgICAg IC8qIEZpcnN0IGJ5dGUgY29udGFpbmluZyBkYXRhIHRvIHVucGFjayAqLwotQEAgLTI0NDEsNyAr MjQ0NCw3IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHYKK0BAIC0y NTk0LDcgKzI1OTYsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2 CiAgCiAgICBpZiAob2JqICE9IE5VTEwpCiAgICAgIHsKQEAgLTY1Myw3ICs2MzksNyBAQCBJbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuYwogIAogICAgICAgIHNldF92YWx1 ZV9jb21wb25lbnRfbG9jYXRpb24gKHYsIG9iaik7CiAgICAgICAgc2V0X3ZhbHVlX2JpdHBvcyAo diwgYml0X29mZnNldCArIHZhbHVlX2JpdHBvcyAob2JqKSk7Ci1AQCAtMjU2Miw3ICsyNTY1LDcg QEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdgorQEAgLTI2NDIsNyAr MjY0NCw3IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHYKICAgICBu b3Qgb3ZlcmxhcC4gICovCiAgc3RhdGljIHZvaWQKICBtb3ZlX2JpdHMgKGdkYl9ieXRlICp0YXJn ZXQsIGludCB0YXJnX29mZnNldCwgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZSwKQEAgLTY2MiwxNiAr NjQ4LDE2IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAgewog ICAgdW5zaWduZWQgaW50IGFjY3VtLCBtYXNrOwogICAgaW50IGFjY3VtX2JpdHMsIGNodW5rX3Np emU7Ci1AQCAtMjY1Miw3ICsyNjU1LDcgQEAgYWRhX3ZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVl ICp0b3ZhbCwgcworQEAgLTI3MzIsNyArMjczNCw3IEBAIGFkYV92YWx1ZV9hc3NpZ24gKHN0cnVj dCB2YWx1ZSAqdG92YWwsIHMKICAgICAgewogICAgICAgIGludCBsZW4gPSAodmFsdWVfYml0cG9z ICh0b3ZhbCkKICAJCSArIGJpdHMgKyBIT1NUX0NIQVJfQklUIC0gMSkgLyBIT1NUX0NIQVJfQklU OwogLSAgICAgIGludCBmcm9tX3NpemU7CiArICAgICAgTE9OR0VTVCBmcm9tX3NpemU7Ci0gICAg ICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IGFsbG9jYSAobGVuKTsKKyAgICAgICBnZGJfYnl0ZSAqYnVm ZmVyID0gKGdkYl9ieXRlICopIGFsbG9jYSAobGVuKTsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnZh bDsKICAgICAgICBDT1JFX0FERFIgdG9fYWRkciA9IHZhbHVlX2FkZHJlc3MgKHRvdmFsKTsKLUBA IC0yNzAzLDcgKzI3MDYsNyBAQCB2YWx1ZV9hc3NpZ25fdG9fY29tcG9uZW50IChzdHJ1Y3QgdmFs dWUKK0BAIC0yNzgzLDcgKzI3ODUsNyBAQCB2YWx1ZV9hc3NpZ25fdG9fY29tcG9uZW50IChzdHJ1 Y3QgdmFsdWUKICAgICAgKExPTkdFU1QpICAodmFsdWVfYWRkcmVzcyAoY29tcG9uZW50KSAtIHZh bHVlX2FkZHJlc3MgKGNvbnRhaW5lcikpOwogICAgaW50IGJpdF9vZmZzZXRfaW5fY29udGFpbmVy ID0KICAgICAgdmFsdWVfYml0cG9zIChjb21wb25lbnQpIC0gdmFsdWVfYml0cG9zIChjb250YWlu ZXIpOwpAQCAtNjgwLDcgKzY2Niw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9h ZGEtbGFuZy5jCiAgCiAgICB2YWwgPSB2YWx1ZV9jYXN0ICh2YWx1ZV90eXBlIChjb21wb25lbnQp LCB2YWwpOwogIAotQEAgLTQyOTQsNyArNDI5Nyw3IEBAIGVuc3VyZV9sdmFsIChzdHJ1Y3QgdmFs dWUgKnZhbCkKK0BAIC00MzkyLDcgKzQzOTQsNyBAQCBlbnN1cmVfbHZhbCAoc3RydWN0IHZhbHVl ICp2YWwpCiAgICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBub3RfbHZhbAogICAgICAgIHx8IFZB TFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9pbnRlcm5hbHZhcikKICAgICAgewpAQCAtNjg5LDE2ICs2 NzUsMTYgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICAgICAg ICBjb25zdCBDT1JFX0FERFIgYWRkciA9CiAgICAgICAgICB2YWx1ZV9hc19sb25nICh2YWx1ZV9h bGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAobGVuKSk7CiAgCi1AQCAtNDM3OCw3ICs0MzgxLDcg QEAgc3RhdGljIENPUkVfQUREUgorQEAgLTQ0NzYsNyArNDQ3OCw3IEBAIHN0YXRpYyBDT1JFX0FE RFIKICB2YWx1ZV9wb2ludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlw ZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUp OwogLSAgdW5zaWduZWQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwogKyAgVUxPTkdFU1QgbGVu ID0gVFlQRV9MRU5HVEggKHR5cGUpOwotICAgZ2RiX2J5dGUgKmJ1ZiA9IGFsbG9jYSAobGVuKTsK KyAgIGdkYl9ieXRlICpidWYgPSAoZ2RiX2J5dGUgKikgYWxsb2NhIChsZW4pOwogICAgQ09SRV9B RERSIGFkZHI7CiAgCi1AQCAtNjUyMSw3ICs2NTI0LDcgQEAgdmFsdWVfdGFnX2Zyb21fY29udGVu dHNfYW5kX2FkZHJlc3MgKHN0cgorQEAgLTY3MTEsNyArNjcxMyw3IEBAIHZhbHVlX3RhZ19mcm9t X2NvbnRlbnRzX2FuZF9hZGRyZXNzIChzdHIKICAJCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09SRV9BRERSIGFk ZHJlc3MpCiAgewpAQCAtNzA3LDcgKzY5Myw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9hZGEtbGFuZy5jCiAgICBzdHJ1Y3QgdHlwZSAqdGFnX3R5cGU7CiAgCiAgICBpZiAoZmlu ZF9zdHJ1Y3RfZmllbGQgKCJfdGFnIiwgdHlwZSwgMCwgJnRhZ190eXBlLCAmdGFnX2J5dGVfb2Zm c2V0LAotQEAgLTY5OTEsNyArNjk5NCw3IEBAIGFkYV9pbl92YXJpYW50IChMT05HRVNUIHZhbCwg c3RydWN0IHR5cGUKK0BAIC03MTgxLDcgKzcxODMsNyBAQCBhZGFfaW5fdmFyaWFudCAoTE9OR0VT VCB2YWwsIHN0cnVjdCB0eXBlCiAgICAgb25seSBpbiB0aGF0IGl0IGNhbiBoYW5kbGUgcGFja2Vk IHZhbHVlcyBvZiBhcmJpdHJhcnkgdHlwZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAq CkBAIC03MTYsNyArNzAyLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1s YW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUp CiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtNzAwMyw3ICs3MDA2LDcgQEAgYWRhX3Zh bHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCitAQCAtNzE5Myw3ICs3MTk1LDcgQEAg YWRhX3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCiAgCiAgICBpZiAoVFlQRV9G SUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubykgIT0gMCkKICAgICAgewpAQCAtNzI1LDcg KzcxMSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAgICAg ICAgaW50IGJpdF9zaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubyk7 CiAgCiAgICAgICAgcmV0dXJuIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoYXJnMSwg dmFsdWVfY29udGVudHMgKGFyZzEpLAotQEAgLTcwMzAsOSArNzAzMyw5IEBAIGFkYV92YWx1ZV9w cmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQorQEAgLTcyMjAsOSArNzIyMiw5IEBAIGFkYV92 YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQogICAgIFJldHVybnMgMSBpZiBmb3Vu ZCwgMCBvdGhlcndpc2UuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTczNyw3ICs3MjMsNyBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuYwogIAkJICAgaW50ICppbmRl eF9wKQogIHsKICAgIGludCBpOwotQEAgLTcwNTAsOCArNzA1Myw4IEBAIGZpbmRfc3RydWN0X2Zp ZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHIKK0BAIC03MjQwLDggKzcyNDIsOCBAQCBmaW5kX3N0 cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgc3RyCiAgCiAgICBmb3IgKGkgPSAwOyBpIDwg VFlQRV9ORklFTERTICh0eXBlKTsgaSArPSAxKQogICAgICB7CkBAIC03NDgsMTYgKzczNCwxNiBA QCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuYwogICAgICAgIGNvbnN0 IGNoYXIgKnRfZmllbGRfbmFtZSA9IFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSk7CiAgCiAgICAg ICAgaWYgKHRfZmllbGRfbmFtZSA9PSBOVUxMKQotQEAgLTcxMjEsNyArNzEyNCw3IEBAIG51bV92 aXNpYmxlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNzMxMSw3ICs3MzEzLDcgQEAg bnVtX3Zpc2libGVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICBTZWFyY2hlcyByZWN1 cnNpdmVseSB0aHJvdWdoIHdyYXBwZXIgZmllbGRzIChlLmcuLCAnX3BhcmVudCcpLiAgKi8KICAK ICBzdGF0aWMgc3RydWN0IHZhbHVlICoKLS1hZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY2hhciAq bmFtZSwgc3RydWN0IHZhbHVlICphcmcsIGludCBvZmZzZXQsCi0rYWRhX3NlYXJjaF9zdHJ1Y3Rf ZmllbGQgKGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqYXJnLCBMT05HRVNUIG9mZnNldCwKKy1h ZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHZhbHVlICph cmcsIGludCBvZmZzZXQsCisrYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5h bWUsIHN0cnVjdCB2YWx1ZSAqYXJnLCBMT05HRVNUIG9mZnNldCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzE1NCw3ICs3 MTU3LDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorQEAgLTcz NDQsNyArNzM0Niw3IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW0K ICAgICAgICAgICAgaW50IGo7CiAgICAgICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0g YWRhX2NoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwKICAJCQkJCQkJCQlpKSk7 CkBAIC03NjYsNyArNzUyLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1s YW5nLmMKICAKICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IFRZUEVfTkZJRUxEUyAoZmllbGRf dHlwZSk7IGogKz0gMSkKICAgICAgICAgICAgICB7Ci1AQCAtNzE3Miw4ICs3MTc1LDggQEAgYWRh X3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorQEAgLTczNjIsOCArNzM2NCw4 IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW0KICAgIHJldHVybiBO VUxMOwogIH0KICAKQEAgLTc3Nyw3ICs3NjMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcw OS9nZGIvYWRhLWxhbmcuYwogIAogIAogIC8qIFJldHVybiBmaWVsZCAjSU5ERVggaW4gQVJHLCB3 aGVyZSB0aGUgaW5kZXggaXMgdGhhdCByZXR1cm5lZCBieQotQEAgLTcxODIsNyArNzE4NSw3IEBA IHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmkKK0BAIC03MzcyLDcgKzcz NzQsNyBAQCBzdGF0aWMgc3RydWN0IHZhbHVlICphZGFfaW5kZXhfc3RydWN0X2ZpCiAgICogSWYg Zm91bmQsIHJldHVybiB2YWx1ZSwgZWxzZSByZXR1cm4gTlVMTC4gICovCiAgCiAgc3RhdGljIHN0 cnVjdCB2YWx1ZSAqCkBAIC03ODYsNyArNzcyLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL2FkYS1sYW5nLmMKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1cm4g YWRhX2luZGV4X3N0cnVjdF9maWVsZF8xICgmaW5kZXgsIGFyZywgb2Zmc2V0LCB0eXBlKTsKLUBA IC03MTk0LDcgKzcxOTcsNyBAQCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQgaW5kZXgsIHN0 cnVjCitAQCAtNzM4NCw3ICs3Mzg2LDcgQEAgYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50IGlu ZGV4LCBzdHJ1YwogICAqICpJTkRFWF9QLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoK QEAgLTc5NSw3ICs3ODEsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxh bmcuYwogIAkJCSAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzI4NCw3 ICs3Mjg3LDggQEAgYWRhX3ZhbHVlX3N0cnVjdF9lbHQgKHN0cnVjdCB2YWx1ZSAqYXJnLAorQEAg LTc0NzQsNyArNzQ3Niw4IEBAIGFkYV92YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKmFy ZywKICAgICAgdiA9IGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcsIDAsIHQpOwog ICAgZWxzZQogICAgICB7CkBAIC04MDUsNyArNzkxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAg ICAgICBDT1JFX0FERFIgYWRkcmVzczsKICAKLUBAIC03NjAxLDggKzc2MDUsOCBAQCBhZGFfY29l cmNlX3JlZiAoc3RydWN0IHZhbHVlICp2YWwwKQorQEAgLTc3OTEsOCArNzc5NCw4IEBAIGFkYV9j b2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKnZhbDApCiAgLyogUmV0dXJuIE9GRiByb3VuZGVkIHVw d2FyZCBpZiBuZWNlc3NhcnkgdG8gYSBtdWx0aXBsZSBvZgogICAgIEFMSUdOTUVOVCAoYSBwb3dl ciBvZiAyKS4gICovCiAgCkBAIC04MTYsNyArODAyLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICByZXR1cm4gKG9mZiArIGFsaWdubWVudCAtIDEp ICYgfihhbGlnbm1lbnQgLSAxKTsKICB9Ci1AQCAtNzk5NiwxMCArODAwMCw5IEBAIGFkYV90ZW1w bGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC04MTg2LDEwICs4MTg5LDkgQEAg YWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgogICAgc3RydWN0IHZhbHVl ICptYXJrID0gdmFsdWVfbWFyayAoKTsKICAgIHN0cnVjdCB2YWx1ZSAqZHZhbDsKICAgIHN0cnVj dCB0eXBlICpydHlwZTsKQEAgLTgyOSw3ICs4MTUsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvYWRhLWxhbmcuYwogICAgaW50IGY7CiAgCiAgICAvKiBDb21wdXRlIHRoZSBudW1i ZXIgb2YgZmllbGRzIGluIHRoaXMgcmVjb3JkIHR5cGUgdGhhdCBhcmUgZ29pbmcKLUBAIC04MDc3 LDcgKzgwODAsNyBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitA QCAtODI2Nyw3ICs4MjY5LDcgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEg KHN0cgogIAkgICAgIHRoYXQgZm9sbG93IHRoaXMgb25lLiAgKi8KICAJICBpZiAoYWRhX2lzX2Fs aWduZXJfdHlwZSAoZmllbGRfdHlwZSkpCiAgCSAgICB7CkBAIC04MzgsNyArODI0LDcgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICAKICAJICAgICAgZmllbGRf dmFsYWRkciA9IGNvbmRfb2Zmc2V0X2hvc3QgKGZpZWxkX3ZhbGFkZHIsIGZpZWxkX29mZnNldCk7 CiAgCSAgICAgIGZpZWxkX2FkZHJlc3MgPSBjb25kX29mZnNldF90YXJnZXQgKGZpZWxkX2FkZHJl c3MsIGZpZWxkX29mZnNldCk7Ci1AQCAtODIxMywxMSArODIxNiwxMSBAQCBhZGFfdGVtcGxhdGVf dG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitAQCAtODQwMywxMSArODQwNSwxMSBAQCBhZGFf dGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCiAgICBpZiAoVFlQRV9MRU5HVEgg KHR5cGUpIDw9IDApCiAgICAgIHsKICAgICAgICBpZiAoVFlQRV9OQU1FIChydHlwZSkpCkBAIC04 NTQsNyArODQwLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMK ICAgICAgfQogICAgZWxzZQogICAgICB7Ci1AQCAtODY4NCw3ICs4Njg3LDggQEAgdG9fZml4ZWRf YXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLAorQEAgLTg4NzQsNyArODg3Niw4IEBAIHRv X2ZpeGVkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwKICAJIHR5cGUgd2FzIGEgcmVn dWxhciAobm9uLXBhY2tlZCkgYXJyYXkgdHlwZS4gIEFzIGEgcmVzdWx0LCB0aGUKICAJIGJpdHNp emUgb2YgdGhlIGFycmF5IGVsZW1lbnRzIG5lZWRzIHRvIGJlIHNldCBhZ2FpbiwgYW5kIHRoZSBh cnJheQogIAkgbGVuZ3RoIG5lZWRzIHRvIGJlIHJlY29tcHV0ZWQgYmFzZWQgb24gdGhhdCBiaXRz aXplLiAgKi8KQEAgLTg2NCwxMSArODUwLDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgaW50IGVsdF9iaXRzaXplID0gVFlQRV9GSUVMRF9CSVRT SVpFICh0eXBlMCwgMCk7CiAgCiAgICAgICAgVFlQRV9GSUVMRF9CSVRTSVpFIChyZXN1bHQsIDAp ID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlMCwgMCk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvYWRhLWxhbmcuaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEt bGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9hZGEt bGFuZy5oCTIwMTUtMDctMDkgMTg6MjQ6MzguOTY5MzU1ODg5ICswMjAwCi0rKysgZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuaAkyMDE1LTA3LTA5IDE4OjI0OjQyLjIxOTM4MzYxMiAr MDIwMAotQEAgLTE3OSw3ICsxNzksNyBAQCBleHRlcm4gdm9pZCBhZGFfcHJpbnRfdHlwZSAoc3Ry dWN0IHR5cGUKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hZGEtbGFuZy5oCTIw MTUtMTEtMDIgMjE6MjM6MTEuMTc3MzUxNDIzICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2FkYS1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTgzNjQ3MjEgKzAxMDAKK0BA IC0xNjgsNyArMTY4LDcgQEAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBl CiAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1 Y3Qgc3ltYm9sICpuZXdfc3ltYm9sLAogIAkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt KTsKICAKQEAgLTg3Nyw3ICs4NjMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv YWRhLWxhbmcuaAogIAkJCSAgIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKiwKICAJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq KTsKLUBAIC0xOTQsNyArMTk0LDcgQEAgZXh0ZXJuIHZvaWQgYWRhX2VtaXRfY2hhciAoaW50LCBz dHJ1Y3QgdAorQEAgLTE4Myw3ICsxODMsNyBAQCBleHRlcm4gdm9pZCBhZGFfZW1pdF9jaGFyIChp bnQsIHN0cnVjdCB0CiAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50Y2hhciAoaW50LCBzdHJ1Y3QgdHlw ZSAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKICBleHRlcm4gdm9pZCBhZGFfcHJpbnRzdHIgKHN0 cnVjdCB1aV9maWxlICosIHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosCkBAIC04ODYs NyArODcyLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmgKICAJ CQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIAogIHN0cnVjdCB2YWx1 ZSAqYWRhX2NvbnZlcnRfYWN0dWFsIChzdHJ1Y3QgdmFsdWUgKmFjdHVhbCwKLUBAIC0yNjUsNyAr MjY1LDcgQEAgZXh0ZXJuIGludCBhZGFfaXNfY29uc3RyYWluZWRfcGFja2VkX2FycgorQEAgLTI1 NSw3ICsyNTUsNyBAQCBleHRlcm4gaW50IGFkYV9pc19jb25zdHJhaW5lZF9wYWNrZWRfYXJyCiAg CiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChz dHJ1Y3QgdmFsdWUgKiwKICAJCQkJCQkgICAgIGNvbnN0IGdkYl9ieXRlICosCkBAIC04OTUsMTEg Kzg4MSwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuaAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHR5cGUgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphZGFfY29lcmNlX3RvX3NpbXBsZV9h cnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9hZGEtdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLXR5 cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9h ZGEtdHlwZXByaW50LmMJMjAxNS0wNy0wOSAxODoyNDozOC45NjkzNTU4ODkgKzAyMDAKLSsrKyBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0 Mi4yMjAzODM2MjEgKzAyMDAKLUBAIC04ODYsOCArODg2LDggQEAgYWRhX3ByaW50X3R5cGUgKHN0 cnVjdCB0eXBlICp0eXBlMCwgY29ucworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2Ri L2FkYS10eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE3NzM1MTQyMyArMDEwMAorKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToy MzoxMy4xOTgzNjQ3MjEgKzAxMDAKK0BAIC04OTEsOCArODkxLDggQEAgYWRhX3ByaW50X3R5cGUg KHN0cnVjdCB0eXBlICp0eXBlMCwgY29ucwogIAkgICAgY29uc3QgY2hhciAqbmFtZSA9IGFkYV90 eXBlX25hbWUgKHR5cGUpOwogIAogIAkgICAgaWYgKCFhZGFfaXNfcmFuZ2VfdHlwZV9uYW1lIChu YW1lKSkKQEAgLTkxMCw3ICs4OTYsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv YWRhLXR5cGVwcmludC5jCiAgCSAgICBlbHNlCiAgCSAgICAgIHsKICAJCWZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgInJhbmdlICIpOwotQEAgLTkwOCw3ICs5MDgsOCBAQCBhZGFfcHJpbnRfdHlw ZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBjb25zCitAQCAtOTEzLDcgKzkxMyw4IEBAIGFkYV9wcmlu dF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsIGNvbnMKICAJICB9CiAgCWJyZWFrOwogICAgICAg IGNhc2UgVFlQRV9DT0RFX0ZMVDoKQEAgLTkyMCwxMCArOTA2LDEwIEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9hZGEtdHlwZXByaW50LmMKICAJYnJlYWs7CiAgICAgICAgY2FzZSBU WVBFX0NPREVfRU5VTToKICAJaWYgKHNob3cgPCAwKQotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL2FkYS12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fk YS12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dk Yi9hZGEtdmFscHJpbnQuYwkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk3MDM1NTg5OCArMDIwMAotKysr IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMDctMDkgMTg6MjQ6 NDIuMjIwMzgzNjIxICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYWRh LXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xNzkzNTE0MzYgKzAxMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4x OTkzNjQ3MjggKzAxMDAKIEBAIC0zMywxMSArMzMsMTEgQEAKICAjaW5jbHVkZSAib2JqZmlsZXMu aCIKICAKQEAgLTEwNjgsMTAgKzEwNTQsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2FkYS12YWxwcmludC5jCiAgCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQg cmVjdXJzZSwKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkgICAgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvYW5ub3RhdGUuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9hbm5vdGF0ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dk Yi9hbm5vdGF0ZS5jCTIwMTUtMDctMDkgMTg6MjQ6MzguOTcxMzU1OTA2ICswMjAwCi0rKysgZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvYW5ub3RhdGUuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyMTM4 MzYyOSArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2Fubm90YXRlLmMJ MjAxNS0xMS0wMiAyMToyMzoxMS4xNzkzNTE0MzYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYW5ub3RhdGUuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjE5OTM2NDcyOCArMDEwMAog QEAgLTU0MiwyMSArNTQyLDIxIEBAIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCkKICB9CiAgDApA QCAtMTA5OCwxMCArMTA4NCwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYW5u b3RhdGUuYwogIH0KICAKICB2b2lkCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYW5u b3RhdGUuaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hbm5vdGF0ZS5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTUt MDctMDkgMTg6MjQ6MzguOTcxMzU1OTA2ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvYW5ub3RhdGUuaAkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyMTM4MzYyOSArMDIwMAorLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2Fubm90YXRlLmgJMjAxNS0xMS0wMiAyMToyMzox MS4xNzkzNTE0MzYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYW5ub3RhdGUu aAkyMDE1LTExLTAyIDIxOjIzOjEzLjE5OTM2NDcyOCArMDEwMAogQEAgLTkyLDggKzkyLDggQEAg ZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVfc291cmNlX2VuZCAodgogIGV4dGVybiB2b2lkIGFu bm90YXRlX2ZyYW1lX3doZXJlICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9l bmQgKHZvaWQpOwpAQCAtMTExMywxMSArMTA5OSwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvYW5ub3RhdGUuaAogIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXBfZW5kICh2 b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHQgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFu bm90YXRlX2FycmF5X3NlY3Rpb25fZW5kICh2b2lkKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9hcm0tbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YXJtLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmln L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0wNy0wOSAxODoyNDozOC45NzEzNTU5MDYgKzAyMDAK LSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0wNy0wOSAx ODoyNDo0Mi4yMjEzODM2MjkgKzAyMDAKLUBAIC0xMzYyLDcgKzEzNjIsNyBAQCBhcm1fbGludXhf cmVtb3ZlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTgwMzUxNDQzICsw MTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE1LTEx LTAyIDIxOjIzOjEzLjIwMDM2NDczNCArMDEwMAorQEAgLTEwOTksNyArMTA5OSw3IEBAIGFybV9s aW51eF9yZW1vdmVfaHdfYnJlYWtwb2ludCAoc3RydWN0IHQKICAgICBBRERSPyAgKi8KICBzdGF0 aWMgaW50CiAgYXJtX2xpbnV4X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRh cmdldF9vcHMgKnNlbGYsCkBAIC0xMTI2LDExICsxMTEyLDExIEBAIEluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi9hcm0tbGludXgtbmF0LmMKICB7CiAgICBjb25zdCBzdHJ1Y3QgYXJtX2xp bnV4X2h3YnBfY2FwICpjYXAgPSBhcm1fbGludXhfZ2V0X2h3YnBfY2FwICgpOwogICAgQ09SRV9B RERSIG1heF93cF9sZW5ndGgsIGFsaWduZWRfYWRkcjsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9heC1nZGIuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvYXgtZ2RiLmMJ MjAxNS0wNy0wOSAxODoyNDozOC45NzMzNTU5MjMgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9heC1nZGIuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyMjM4MzYzOCArMDIwMAotQEAg LTgyLDEyICs4MiwxMiBAQCBzdGF0aWMgdm9pZCBnZW5fdHJhY2VkX3BvcCAoc3RydWN0IGdkYmFy CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYXgtZ2RiLmMJMjAxNS0xMS0wMiAy MToyMzoxMS4xODIzNTE0NTYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgt Z2RiLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDEzNjQ3NDEgKzAxMDAKK0BAIC04MywxMiArODMs MTIgQEAgc3RhdGljIHZvaWQgZ2VuX3RyYWNlZF9wb3AgKHN0cnVjdCBnZGJhcgogIHN0YXRpYyB2 b2lkIGdlbl9zaWduX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7 CiAgc3RhdGljIHZvaWQgZ2VuX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5 cGUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2ZldGNoIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1 Y3QgdHlwZSAqKTsKQEAgLTExNDUsNyArMTEzMSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9heC1nZGIuYwogIHN0YXRpYyB2b2lkIGdlbl9zeW1fb2Zmc2V0IChzdHJ1Y3QgYWdl bnRfZXhwciAqLCBzdHJ1Y3Qgc3ltYm9sICopOwogIHN0YXRpYyB2b2lkIGdlbl92YXJfcmVmIChz dHJ1Y3QgZ2RiYXJjaCAqLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJIHN0cnVjdCBheHNf dmFsdWUgKnZhbHVlLCBzdHJ1Y3Qgc3ltYm9sICp2YXIpOwotQEAgLTEzNSwxNSArMTM1LDE2IEBA IHN0YXRpYyB2b2lkIGdlbl9kZXJlZiAoc3RydWN0IGFnZW50X2V4cHIKK0BAIC0xMzYsMTUgKzEz NiwxNiBAQCBzdGF0aWMgdm9pZCBnZW5fZGVyZWYgKHN0cnVjdCBhZ2VudF9leHByCiAgc3RhdGlj IHZvaWQgZ2VuX2FkZHJlc3Nfb2YgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCBheHNfdmFs dWUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Npb24g KmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSAgICAgIHN0cnVjdCBheHNfdmFsdWUg KnZhbHVlLApAQCAtMTE2NSw3ICsxMTUxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2F4LWdkYi5jCiAgCQkJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUpOwogIHN0YXRpYyB2b2lk IGdlbl9zdHJ1Y3RfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhw ciAqYXgsCiAgCQkJICAgIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLAotQEAgLTUzOCw3ICs1Mzks NyBAQCBnZW5fZmV0Y2ggKHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0CitAQCAtNTM5LDcg KzU0MCw3IEBAIGdlbl9mZXRjaCAoc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzdHJ1Y3QKICAgICBy aWdodCBzaGlmdCBpdCBieSAtRElTVEFOQ0UgYml0cyBpZiBESVNUQU5DRSA8IDAuICBUaGlzIGdl bmVyYXRlcwogICAgIHVuc2lnbmVkIChsb2dpY2FsKSByaWdodCBzaGlmdHMuICAqLwogIHN0YXRp YyB2b2lkCkBAIC0xMTc0LDcgKzExNjAsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvYXgtZ2RiLmMKICB7CiAgICBpZiAoZGlzdGFuY2UgPiAwKQogICAgICB7Ci1AQCAtNTkyLDcg KzU5Myw3IEBAIGdlbl9mcmFtZV9sb2NhbHNfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2gKK0BAIC01 OTMsNyArNTk0LDcgQEAgZ2VuX2ZyYW1lX2xvY2Fsc19hZGRyZXNzIChzdHJ1Y3QgZ2RiYXJjaAog ICAgIHByb2dyYW1taW5nIGluIE1MLCBpdCB3b3VsZCBiZSBjbGVhcmVyIHdoeSB0aGVzZSBhcmUg dGhlIHNhbWUKICAgICB0aGluZy4gICovCiAgc3RhdGljIHZvaWQKQEAgLTExODMsNyArMTE2OSw3 IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9heC1nZGIuYwogIHsKICAgIC8qIEl0 IHdvdWxkIHN1ZmZpY2UgdG8gc2ltcGx5IHB1c2ggdGhlIG9mZnNldCBhbmQgYWRkIGl0LCBidXQg dGhpcwogICAgICAgbWFrZXMgaXQgZWFzaWVyIHRvIHJlYWQgcG9zaXRpdmUgYW5kIG5lZ2F0aXZl IG9mZnNldHMgaW4gdGhlCi1AQCAtMTI0OCw3ICsxMjQ5LDcgQEAgZ2VuX2FkZHJlc3Nfb2YgKHN0 cnVjdCBhZ2VudF9leHByICpheCwgcworQEAgLTEyNDksNyArMTI1MCw3IEBAIGdlbl9hZGRyZXNz X29mIChzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsIHMKICBzdGF0aWMgdm9pZAogIGdlbl9iaXRmaWVs ZF9yZWYgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIHN0cnVjdCBhZ2VudF9leHByICpheCwKICAJ CSAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMTE5Miw3 ICsxMTc4LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2F4LWdkYi5jCiAgewog ICAgLyogTm90ZSB0aGF0IG9wc1tpXSBmZXRjaGVzIDggPDwgaSBiaXRzLiAgKi8KICAgIHN0YXRp YyBlbnVtIGFnZW50X29wIG9wc1tdCi1AQCAtMTI4MywxMyArMTI4NCwxMyBAQCBnZW5fYml0Zmll bGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCitAQCAtMTI4NCwxMyArMTI4NSwxMyBAQCBn ZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCiAgCiAgICAvKiBUaGUgZmly c3QgYW5kIG9uZS1hZnRlci1sYXN0IGJpdHMgaW4gdGhlIGZpZWxkLCBidXQgcm91bmRlZCBkb3du CiAgICAgICBhbmQgdXAgdG8gYnl0ZSBib3VuZGFyaWVzLiAgKi8KQEAgLTEyMTEsNyArMTE5Nyw3 IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9heC1nZGIuYwogIAogICAgLyogVGhl IGluZGV4IGluIG9wcyBvZiB0aGUgb3Bjb2RlIHdlJ3JlIGNvbnNpZGVyaW5nLiAgKi8KICAgIGlu dCBvcDsKLUBAIC0xNDA4LDcgKzE0MDksNyBAQCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwCitAQCAtMTQwOSw3ICsxNDEwLDcgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3Ry dWN0IGV4cHJlc3Npb24gKmV4cAogIHN0YXRpYyB2b2lkCiAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAo c3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJCSAgICAgc3RydWN0IGFnZW50X2V4cHIgKmF4LCBz dHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKQEAgLTEyMjAsNyArMTIwNiw3IEBAIEluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9heC1nZGIuYwogIHsKICAgIC8qIElzIHRoaXMgYSBiaXRmaWVs ZD8gICovCiAgICBpZiAoVFlQRV9GSUVMRF9QQUNLRUQgKHR5cGUsIGZpZWxkbm8pKQotQEAgLTE0 MzMsNyArMTQzNCw3IEBAIGdlbl9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCBleHByZXNzaW9uICoK K0BAIC0xNDM0LDcgKzE0MzUsNyBAQCBnZW5fcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgZXhwcmVz c2lvbiAqCiAgc3RhdGljIGludAogIGdlbl9zdHJ1Y3RfcmVmX3JlY3Vyc2l2ZSAoc3RydWN0IGV4 cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSAgc3RydWN0IGF4c192 YWx1ZSAqdmFsdWUsCkBAIC0xMjI5LDExICsxMjE1LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9heC1nZGIuYwogIHsKICAgIGludCBpLCByc2x0OwogICAgaW50IG5iYXNlcyA9 IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvYXgtZ2VuZXJhbC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdlbmVy YWwuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvYXgtZ2Vu ZXJhbC5jCTIwMTUtMDctMDkgMTg6MjQ6MzguOTczMzU1OTIzICswMjAwCi0rKysgZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvYXgtZ2VuZXJhbC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjIzMzgzNjQ2 ICswMjAwCi1AQCAtMTkzLDcgKzE5Myw3IEBAIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRfZXhw ciAqeCwgaW50IG4KKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9heC1nZW5lcmFs LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xODIzNTE0NTYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjAxMzY0NzQxICsw MTAwCitAQCAtMTkyLDcgKzE5Miw3IEBAIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRfZXhwciAq eCwgaW50IG4KICAKICAvKiBBcHBlbmQgYSB0cmFjZV9xdWljayBpbnN0cnVjdGlvbiB0byBFWFBS LCB0byByZWNvcmQgTiBieXRlcy4gICovCiAgdm9pZApAQCAtMTI0MiwxMCArMTIyOCwxMCBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYXgtZ2VuZXJhbC5jCiAgewogICAgLyogTiBt dXN0IGZpdCBpbiBhIGJ5dGUuICAqLwogICAgaWYgKG4gPCAwIHx8IG4gPiAyNTUpCi1JbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYXguaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9heC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9h eC5oCTIwMTUtMDctMDkgMTg6MjQ6MzguOTczMzU1OTIzICswMjAwCi0rKysgZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvYXguaAkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyMzM4MzY0NiArMDIwMAorLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2F4LmgJMjAxNS0xMS0wMiAyMToyMzoxMS4x ODMzNTE0NjMgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXguaAkyMDE1LTEx LTAyIDIxOjIzOjEzLjIwMTM2NDc0MSArMDEwMAogQEAgLTIwNyw3ICsyMDcsNyBAQCBleHRlcm4g dm9pZCBheF9leHQgKHN0cnVjdCBhZ2VudF9leHByICpFCiAgZXh0ZXJuIHZvaWQgYXhfemVyb19l eHQgKHN0cnVjdCBhZ2VudF9leHByICpFWFBSLCBpbnQgTik7CiAgCkBAIC0xMjU1LDExICsxMjQx LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9heC5oCiAgCiAgLyogQXBwZW5k IGEgZ290byBvcCB0byBFWFBSLiAgT1AgaXMgdGhlIGFjdHVhbCBvcCAobXVzdCBiZSBhb3BfZ290 byBvcgogICAgIGFvcF9pZl9nb3RvKS4gIFdlIGFzc3VtZSB3ZSBkb24ndCBrbm93IHRoZSB0YXJn ZXQgb2Zmc2V0IHlldCwKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9icmVha3BvaW50 LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxNS0w Ny0wOSAxODoyNDozOC45NzczNTU5NTggKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9icmVha3BvaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMjczODM2ODAgKzAyMDAKLUBAIC0y MjAyLDkgKzIyMDIsOSBAQCBzaG91bGRfYmVfaW5zZXJ0ZWQgKHN0cnVjdCBicF9sb2NhdGlvbiAq CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTUtMTEt MDIgMjE6MjM6MTEuMTg4MzUxNDk2ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2JyZWFrcG9pbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNTM2NDc2NyArMDEwMAorQEAgLTIy MTUsOSArMjIxNSw5IEBAIHNob3VsZF9iZV9pbnNlcnRlZCAoc3RydWN0IGJwX2xvY2F0aW9uICoK ICAJewogIAkgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKICAJCQkgICAgICAiaW5m cnVuOiBzdGVwcGluZyBwYXN0IG5vbi1zdGVwcGFibGUgd2F0Y2hwb2ludC4gIgpAQCAtMTI3MSw3 ICsxMjU3LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2JyZWFrcG9pbnQuYwog IAl9CiAgICAgICAgcmV0dXJuIDA7CiAgICAgIH0KLUBAIC02OTk1LDcgKzY5OTUsNyBAQCBicmVh a3BvaW50X2FkZHJlc3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNzCitAQCAtNzA1Myw3ICs3MDUzLDcg QEAgYnJlYWtwb2ludF9hZGRyZXNzX21hdGNoIChzdHJ1Y3QgYWRkcmVzcwogIAogIHN0YXRpYyBp bnQKICBicmVha3BvaW50X2FkZHJlc3NfbWF0Y2hfcmFuZ2UgKHN0cnVjdCBhZGRyZXNzX3NwYWNl ICphc3BhY2UxLCBDT1JFX0FERFIgYWRkcjEsCkBAIC0xMjgwLDcgKzEyNjYsNyBAQCBJbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYnJlYWtwb2ludC5jCiAgCQkJCUNPUkVfQUREUiBhZGRy MikKICB7CiAgICByZXR1cm4gKChnZGJhcmNoX2hhc19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdl dF9nZGJhcmNoICgpKQotQEAgLTExMzAyLDcgKzExMzAyLDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93 YXRjaHBvaW50IChzdHJ1Y3QgdmFsdQorQEAgLTExMzg3LDcgKzExMzg3LDcgQEAgY2FuX3VzZV9o YXJkd2FyZV93YXRjaHBvaW50IChzdHJ1Y3QgdmFsdQogIAkJICAgICAgJiYgVFlQRV9DT0RFICh2 dHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZKSkKICAJCXsKICAJCSAgQ09SRV9BRERSIHZhZGRyID0g dmFsdWVfYWRkcmVzcyAodik7CkBAIC0xMjg5LDExICsxMjc1LDExIEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9icmVha3BvaW50LmMKICAJCSAgaW50IG51bV9yZWdzOwogIAogIAkJ ICBsZW4gPSAodGFyZ2V0X2V4YWN0X3dhdGNocG9pbnRzCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvYnJlYWtwb2ludC5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Jy ZWFrcG9pbnQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIv YnJlYWtwb2ludC5oCTIwMTUtMDctMDkgMTg6MjQ6MzguOTc4MzU1OTY2ICswMjAwCi0rKysgZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvYnJlYWtwb2ludC5oCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjI3 MzgzNjgwICswMjAwCi1AQCAtMjM2LDcgKzIzNiw3IEBAIHN0cnVjdCBicF90YXJnZXRfaW5mbwor LS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTExLTAy IDIxOjIzOjExLjE5MDM1MTUwOSArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9i cmVha3BvaW50LmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDYzNjQ3NzMgKzAxMDAKK0BAIC0yMzcs NyArMjM3LDcgQEAgc3RydWN0IGJwX3RhcmdldF9pbmZvCiAgCiAgICAvKiBJZiB0aGlzIGlzIGEg cmFuZ2VkIGJyZWFrcG9pbnQsIHRoZW4gdGhpcyBmaWVsZCBjb250YWlucyB0aGUKICAgICAgIGxl bmd0aCBvZiB0aGUgcmFuZ2UgdGhhdCB3aWxsIGJlIHdhdGNoZWQgZm9yIGV4ZWN1dGlvbi4gICov CkBAIC0xMzAyLDcgKzEyODgsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYnJl YWtwb2ludC5oCiAgCiAgICAvKiBJZiB0aGUgYnJlYWtwb2ludCBsaXZlcyBpbiBtZW1vcnkgYW5k IHJlYWRpbmcgdGhhdCBtZW1vcnkgd291bGQKICAgICAgIGdpdmUgYmFjayB0aGUgYnJlYWtwb2lu dCwgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgY29udGVudHMsIHRoZW4KLUBAIC00MTIsNyArNDEy LDcgQEAgc3RydWN0IGJwX2xvY2F0aW9uCitAQCAtNDEzLDcgKzQxMyw3IEBAIHN0cnVjdCBicF9s b2NhdGlvbgogICAgLyogRm9yIGhhcmR3YXJlIHdhdGNocG9pbnRzLCB0aGUgc2l6ZSBvZiB0aGUg bWVtb3J5IHJlZ2lvbiBiZWluZwogICAgICAgd2F0Y2hlZC4gIEZvciBoYXJkd2FyZSByYW5nZWQg YnJlYWtwb2ludHMsIHRoZSBzaXplIG9mIHRoZQogICAgICAgYnJlYWtwb2ludCByYW5nZS4gICov CkBAIC0xMzExLDEwICsxMjk3LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9i cmVha3BvaW50LmgKICAKICAgIC8qIFR5cGUgb2YgaGFyZHdhcmUgd2F0Y2hwb2ludC4gICovCiAg ICBlbnVtIHRhcmdldF9od19icF90eXBlIHdhdGNocG9pbnRfdHlwZTsKLUluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9jLWxhbmcuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9jLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIv Yy1sYW5nLmMJMjAxNS0wNy0wOSAxODoyNDozOC45NzkzNTU5NzUgKzAyMDAKLSsrKyBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9jLWxhbmcuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyODM4MzY4OSAr MDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2MtbGFuZy5jCTIwMTUtMTEt MDIgMjE6MjM6MTEuMTkwMzUxNTA5ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2MtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA2MzY0NzczICswMTAwCiBAQCAtMTg3LDcg KzE4Nyw3IEBAIGNfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsIHMKICAKICB2 b2lkCkBAIC0xMzQyLDEwICsxMzI4LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9jLWxhbmcuYwogIAogIAkJaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKFRZUEVfSU5ERVhfVFlQ RSAoZXhwZWN0X3R5cGUpLAogIAkJCQkJICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCi1J bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYy1sYW5nLmgKK0luZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUw NzA5Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTUtMDctMDkgMTg6MjQ6MzguOTc5MzU1OTc1ICswMjAw Ci0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYy1sYW5nLmgJMjAxNS0wNy0wOSAxODoyNDo0 Mi4yMjgzODM2ODkgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jLWxh bmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjE5MTM1MTUxNSArMDEwMAorKysrIGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9jLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNjM2NDc3MyArMDEw MAogQEAgLTc0LDcgKzc0LDcgQEAgZXh0ZXJuIHZvaWQgY19wcmludF90eXBlZGVmIChzdHJ1Y3Qg dHlwZQogIAkJCSAgICAgc3RydWN0IHVpX2ZpbGUgKik7CiAgCkBAIC0xMzgxLDExICsxMzY3LDQw IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jLWxhbmcuaAogIAkJCQkJc3RydWN0 IHVpX2ZpbGUgKiwgaW50LAogIAkJCQkJY29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJCQljb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL2MtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLXZh bHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2Mt dmFscHJpbnQuYwkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk3OTM1NTk3NSArMDIwMAotKysrIGdkYi03 LjkuOTAuMjAxNTA3MDkvZ2RiL2MtdmFscHJpbnQuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyODM4 MzY4OSArMDIwMAotQEAgLTEzMiw3ICsxMzIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVy aWNfdmFsX3ByaW50X2RlCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYy12YWxw cmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkxMzUxNTE1ICswMTAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2MtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNzM2NDc4 MCArMDEwMAorQEAgLTI0Miw3ICsyNDIsNyBAQCBjX3ZhbF9wcmludF9hcnJheSAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvCisgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpID4gMCAmJiBUWVBFX0xFTkdU SCAodW5yZXNvbHZlZF9lbHR0eXBlKSA+IDApCisgICAgIHsKKyAgICAgICBMT05HRVNUIGxvd19i b3VuZCwgaGlnaF9ib3VuZDsKKy0gICAgICBpbnQgZWx0bGVuLCBsZW47CisrICAgICAgTE9OR0VT VCBlbHRsZW4sIGxlbjsKKyAgICAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBl X2FyY2ggKHR5cGUpOworICAgICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJj aF9ieXRlX29yZGVyIChnZGJhcmNoKTsKKyAgICAgICB1bnNpZ25lZCBpbnQgaSA9IDA7CS8qIE51 bWJlciBvZiBjaGFyYWN0ZXJzIHByaW50ZWQuICAqLworQEAgLTMxNiw4ICszMTYsOCBAQCBjX3Zh bF9wcmludF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCisgCSAgaWYgKGNwX2lzX3Z0Ymxf cHRyX3R5cGUgKGVsdHR5cGUpKQorIAkgICAgeworIAkgICAgICBpID0gMTsKKy0JICAgICAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCBfKCIlZCB2dGFibGUgZW50cmllcyIpLAorLQkJCQlsZW4g LSAxKTsKKysJICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCBfKCIlcyB2dGFibGUgZW50 cmllcyIpLAorKwkJCQlwbG9uZ2VzdCAobGVuIC0gMSkpOworIAkgICAgfQorIAkgIGVsc2UKKyAJ ICAgIHsKK0BAIC0zOTQsNyArMzk0LDcgQEAgY192YWxfcHJpbnRfc3RydWN0IChzdHJ1Y3QgdHlw ZSAqdHlwZSwgYworIAkgLWZ2dGFibGVfdGh1bmtzLiAgKE90aGVyd2lzZSwgbG9vayB1bmRlcgor IAkgVFlQRV9DT0RFX1BUUi4pICAqLworICAgICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0g Z2V0X3R5cGVfYXJjaCAodHlwZSk7CistICAgICAgaW50IG9mZnNldCA9IChlbWJlZGRlZF9vZmZz ZXQKKysgICAgICBMT05HRVNUIG9mZnNldCA9IChlbWJlZGRlZF9vZmZzZXQKKyAJCSAgICArIFRZ UEVfRklFTERfQklUUE9TICh0eXBlLAorIAkJCQkJIFZUQkxfRk5BRERSX09GRlNFVCkgLyA4KTsK KyAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlwZSwg VlRCTF9GTkFERFJfT0ZGU0VUKTsKK0BAIC00OTMsNyArNDkzLDcgQEAgY192YWxfcHJpbnRfbWVt YmVycHRyIChzdHJ1Y3QgdHlwZSAqdHlwZQogIAogIHZvaWQKICBjX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTM5NCwyOSArMTQwOSw3 IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jLXZhbHByaW50LmMKICAJICAgICBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQotQEAgLTE0Myw3ICsxNDMsNyBAQCBjX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkCi0gICB1bnNpZ25lZCBsZW47Ci0gICBzdHJ1Y3QgdHlwZSAq ZWx0dHlwZSwgKnVucmVzb2x2ZWRfZWx0dHlwZTsKLSAgIHN0cnVjdCB0eXBlICp1bnJlc29sdmVk X3R5cGUgPSB0eXBlOwotLSAgdW5zaWduZWQgZWx0bGVuOwotKyAgVUxPTkdFU1QgZWx0bGVuOwot ICAgQ09SRV9BRERSIGFkZHI7Ci0gCi0gICBDSEVDS19UWVBFREVGICh0eXBlKTsKLUBAIC0zNzks OSArMzc5LDkgQEAgY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZAotIAkg IC8qIFByaW50IHZ0YWJsZSBlbnRyeSAtIHdlIG9ubHkgZ2V0IGhlcmUgaWYgTk9UIHVzaW5nCi0g CSAgICAgLWZ2dGFibGVfdGh1bmtzLiAgKE90aGVyd2lzZSwgbG9vayB1bmRlcgotIAkgICAgIFRZ UEVfQ09ERV9QVFIuKSAgKi8KLS0JICBpbnQgb2Zmc2V0ID0gKGVtYmVkZGVkX29mZnNldAotLQkJ CSsgVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsCi0tCQkJCQkgICAgIFZUQkxfRk5BRERSX09GRlNF VCkgLyA4KTsKLSsJICBMT05HRVNUIG9mZnNldCA9IChlbWJlZGRlZF9vZmZzZXQKLSsJCQkgICAg KyBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwKLSsJCQkJCQkgVlRCTF9GTkFERFJfT0ZGU0VUKSAv IDgpOwotIAkgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBl LAotIAkJCQkJCSAgICAgVlRCTF9GTkFERFJfT0ZGU0VUKTsKLSAJICBDT1JFX0FERFIgYWRkcgot QEAgLTQ2MCw3ICs0NjAsOCBAQCBjX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3Ry dWN0CitAQCAtNTY1LDcgKzU2NSw4IEBAIGNfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAqdmFs LCBzdHJ1Y3QKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlLCAqcmVhbF90eXBlLCAqdmFsX3R5cGU7CkBA IC0xNDI2LDEwICsxNDE5LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jLXZh bHByaW50LmMKICAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHMgPSAqb3B0aW9uczsK ICAKICAgIG9wdHMuZGVyZWZfcmVmID0gMTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9jcC1hYmkuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvY3AtYWJpLmMJMjAxNS0w Ny0wOSAxODoyNDozOC45ODAzNTU5ODMgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9jcC1hYmkuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyODM4MzY4OSArMDIwMAorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2NwLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTky MzUxNTIyICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5jCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjA3MzY0NzgwICswMTAwCiBAQCAtNjQsMTIgKzY0LDEyIEBAIGlzX29w ZXJhdG9yX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCiAgICByZXR1cm4gKCpjdXJyZW50X2NwX2Fi aS5pc19vcGVyYXRvcl9uYW1lKSAobmFtZSk7CiAgfQpAQCAtMTQ2NCwxMCArMTQ1NywxMCBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvY3AtYWJpLmMKICB7CiAgICBzdHJ1Y3QgdHlw ZSAqcmV0ID0gTlVMTDsKICAKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jcC1hYmku aAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuaAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvY3AtYWJpLmgJMjAxNS0wNy0wOSAxODoy NDozOC45ODAzNTU5ODMgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jcC1hYmku aAkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyOTM4MzY5OCArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2NwLWFiaS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkyMzUxNTIyICsw MTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5oCTIwMTUtMTEtMDIgMjE6 MjM6MTMuMjA3MzY0NzgwICswMTAwCiBAQCAtMTA4LDcgKzEwOCw3IEBAIGV4dGVybiBzdHJ1Y3Qg dmFsdWUgKnZhbHVlX3ZpcnR1YWxfZm5fZmkKICAJCQkJCSAgICAgc3RydWN0IGZuX2ZpZWxkICpm LAogIAkJCQkJICAgICBpbnQgaiwKQEAgLTE1MjIsMTAgKzE1MTUsMTAgQEAgSW5kZXg6IGdkYi03 LjkuOTAuMjAxNTA3MDkvZ2RiL2NwLWFiaS5oCiAgICB2b2lkICgqcHJpbnRfbWV0aG9kX3B0cikg KGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywKICAJCQkgICAgc3RydWN0IHR5cGUgKnR5cGUsCiAg CQkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOwotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL2NwLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY3At dmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIv Y3AtdmFscHJpbnQuYwkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk4MDM1NTk4MyArMDIwMAotKysrIGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4y MjkzODM2OTggKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jcC12YWxw cmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkzMzUxNTI5ICswMTAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDgzNjQ3 ODcgKzAxMDAKIEBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyB2b2lkIGNwX3ByaW50X3N0YXRpY19m aWVsZCAoc3RydWMKICAJCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7 CiAgCkBAIC0xNTk5LDExICsxNTkyLDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9jcC12YWxwcmludC5jCiAgICAgICAgaW50IHNraXAgPSAwOwogICAgICAgIHN0cnVjdCB0eXBl ICpiYXNlY2xhc3MgPSBjaGVja190eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAodHlwZSwgaSkpOwog ICAgICAgIGNvbnN0IGNoYXIgKmJhc2VuYW1lID0gVFlQRV9OQU1FIChiYXNlY2xhc3MpOwotSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2QtbGFuZy5oCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2QtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcw OS5vcmlnL2dkYi9kLWxhbmcuaAkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk4MTM1NTk5MiArMDIwMAot KysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2QtbGFuZy5oCTIwMTUtMDctMDkgMTg6MjQ6NDIu MjI5MzgzNjk4ICswMjAwCi1AQCAtNzEsNyArNzEsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGJ1 aWx0aW5fZF90eXBlICpidWlsCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZC1s YW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4xOTMzNTE1MjkgKzAxMDAKKysrKyBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZC1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDgzNjQ3ODcgKzAx MDAKK0BAIC04MSw3ICs4MSw3IEBAIGV4dGVybiBzdHJ1Y3QgYmxvY2tfc3ltYm9sIGRfbG9va3Vw X25lc3QKICAvKiBEZWZpbmVkIGluIGQtdmFscHJpbnQuYyAgKi8KICAKICBleHRlcm4gdm9pZCBk X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApA QCAtMTYxMiwxMCArMTYwNSwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZC1s YW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZC12YWxwcmlu dC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFscHJpbnQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZC12YWxwcmludC5jCTIwMTUt MDctMDkgMTg6MjQ6MzguOTgxMzU1OTkyICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvZC12YWxwcmludC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjI5MzgzNjk4ICswMjAwCistLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZC12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMTkzMzUxNTI5ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFs cHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwODM2NDc4NyArMDEwMAogQEAgLTI5LDcgKzI5 LDcgQEAKICAKICBzdGF0aWMgaW50CkBAIC0xNjM4LDEwICsxNjMxLDEwIEBAIEluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9kLXZhbHByaW50LmMKICAgICAgICAgICAgICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgaW50IHJldDsKLUluZGV4 OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9kb3VibGVzdC5jCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2RvdWJsZXN0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUw NzA5Lm9yaWcvZ2RiL2RvdWJsZXN0LmMJMjAxNS0wNy0wOSAxODoyNDozOC45ODEzNTU5OTIgKzAy MDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9kb3VibGVzdC5jCTIwMTUtMDctMDkgMTg6 MjQ6NDIuMjMwMzgzNzA2ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv ZG91Ymxlc3QuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE5NDM1MTUzNSArMDEwMAorKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9kb3VibGVzdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA4MzY0 Nzg3ICswMTAwCiBAQCAtNzY1LDcgKzc2NSw3IEBAIGZsb2F0Zm9ybWF0X2Zyb21fZG91Ymxlc3Qg KGNvbnN0IHN0cnVjdAogICAgIGJ1dCBub3QgcGFzc2VkIG9uIGJ5IEdEQi4gIFRoaXMgc2hvdWxk IGJlIGZpeGVkLiAgKi8KICAKQEAgLTE2NjIsMTEgKzE2NTUsMTEgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2RvdWJsZXN0LmMKICAgIHJldHVybiBmb3JtYXQ7CiAgfQogIAotSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxvYy5jCitJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4y MDE1MDcwOS5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk4MzM1NjAw OSArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDct MDkgMTg6MjQ6NDIuMjMxMzgzNzE1ICswMjAwCi1AQCAtMTU1NywxOSArMTU1NywxOSBAQCBpbnNl cnRfYml0cyAodW5zaWduZWQgaW50IGRhdHVtLAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTk3MzUxNTU1ICswMTAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMTEtMDIgMjE6MjM6 MTMuMjA5MzY0NzkzICswMTAwCitAQCAtMTYzMiwxOSArMTYzMiwxOSBAQCBpbnNlcnRfYml0cyAo dW5zaWduZWQgaW50IGRhdHVtLAogICAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3Rs eSBmcm9tIGdkYmFyY2guICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0xNjkyLDcgKzE2ODUsNyBA QCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZHdhcmYybG9jLmMKICAKICAgIGRlc3Rf YXZhaWwgPSA4IC0gZGVzdF9vZmZzZXRfYml0cyAlIDg7CiAgCi1AQCAtMTYwNywxMyArMTYwNywx MyBAQCBzdGF0aWMgdm9pZAorQEAgLTE2ODIsMTMgKzE2ODIsMTMgQEAgc3RhdGljIHZvaWQKICBy ZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQogIHsKICAgIGludCBpOwpAQCAtMTcw OCw3ICsxNzAxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxvYy5j CiAgICBzaXplX3QgYnVmZmVyX3NpemUgPSAwOwogICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7 CiAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsKLUBAIC0xNjQwLDggKzE2NDAsOCBAQCByZWFk X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorQEAgLTE3MTUsOCArMTcxNSw4IEBAIHJl YWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+ bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKICAgICAgewogICAgICAgIHN0cnVj dCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3MTksNyArMTcxMiw3 IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9kd2FyZjJsb2MuYwogICAgICAgIGNv bnN0IGdkYl9ieXRlICppbnRlcm1lZGlhdGVfYnVmZmVyOwogIAogICAgICAgIC8qIENvbXB1dGUg c2l6ZSwgc291cmNlLCBhbmQgZGVzdGluYXRpb24gb2Zmc2V0cyBmb3IgY29weWluZywgaW4KLUBA IC0xNzkwLDEzICsxNzkwLDEzIEBAIHN0YXRpYyB2b2lkCitAQCAtMTg1NiwxMyArMTg1NiwxMyBA QCBzdGF0aWMgdm9pZAogIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3Ry dWN0IHZhbHVlICpmcm9tKQogIHsKICAgIGludCBpOwpAQCAtMTczNSw3ICsxNzI4LDcgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxvYy5jCiAgICBzaXplX3QgYnVmZmVy X3NpemUgPSAwOwogICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7CiAgICBzdHJ1Y3QgY2xlYW51 cCAqY2xlYW51cDsKLUBAIC0xODI0LDggKzE4MjQsOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0 cnVjdCB2YWx1ZSAqdG8sIHN0CitAQCAtMTg5MCw4ICsxODkwLDggQEAgd3JpdGVfcGllY2VkX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2Vz ICYmIG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZf ZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzQ2LDcgKzE3MzksNyBAQCBJbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZHdhcmYybG9jLmMKICAgICAgICBpbnQgbmVlZF9i aXR3aXNlOwogICAgICAgIGNvbnN0IGdkYl9ieXRlICpzb3VyY2VfYnVmZmVyOwogIAotQEAgLTE5 NTMsOCArMTk1Myw4IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3QK K0BAIC0yMDEwLDggKzIwMTAsOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAq dG8sIHN0CiAgICAgYSBzeW50aGV0aWMgcG9pbnRlci4gICovCiAgCiAgc3RhdGljIGludApAQCAt MTc1Nyw3ICsxNzUwLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxv Yy5jCiAgewogICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKICAgICAgPSAoc3RydWN0IHBpZWNl X2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodmFsdWUpOwotQEAgLTE5NjcsNyAr MTk2Nyw3IEBAIGNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3QKK0BAIC0y MDI0LDcgKzIwMjQsNyBAQCBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0 CiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykK ICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tp XTsKQEAgLTE3NjYsNyArMTc1OSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9k d2FyZjJsb2MuYwogIAogICAgICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTIwMDks OSArMjAwOSwxMCBAQCBpbmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCitA QCAtMjA2Niw5ICsyMDY2LDEwIEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVl ICp2YWwKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l OwogICAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uIGJhdG9uOwpAQCAtMTc3OSw3ICsxNzcy LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxvYy5jCiAgICBlbnVt IGJmZF9lbmRpYW4gYnl0ZV9vcmRlcjsKICAKICAgIHR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlICh2YWx1ZSkpOwotQEAgLTIwMjYsNyArMjAyNyw3IEBAIGluZGlyZWN0X3BpZWNlZF92 YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwKK0BAIC0yMDgzLDcgKzIwODQsNyBAQCBpbmRpcmVjdF9w aWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9w aWVjZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCBkd2Fy Zl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3ODgsNyArMTc4MSw3IEBAIElu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9kd2FyZjJsb2MuYwogIAogICAgICAgIGlmIChi aXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTIzMDksNyArMjMxMCw3IEBAIGR3YXJmMl9ldmFsdWF0 ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHkKK0BAIC0yMzYzLDcgKzIzNjQsNyBAQCBkd2FyZjJf ZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5CiAgCSAgICBzdHJ1Y3QgdmFsdWUgKnZh bHVlID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKICAJICAgIGdkYl9ieXRlICpjb250ZW50 czsKICAJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxfYnl0ZXM7CkBAIC0xNzk3LDExICsxNzkwLDEx IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9kd2FyZjJsb2MuYwogIAogIAkgICAg aWYgKGJ5dGVfb2Zmc2V0ICsgVFlQRV9MRU5HVEggKHR5cGUpID4gbikKICAJICAgICAgaW52YWxp ZF9zeW50aGV0aWNfcG9pbnRlciAoKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9k d2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYycmVhZC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9kd2FyZjJyZWFk LmMJMjAxNS0wNy0wOSAxODoyNDozOC45ODkzNTYwNjAgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMzYzODM3NTcgKzAy MDAKLUBAIC0xOTEwLDEyICsxOTEwLDEyIEBAIGR3YXJmMl9jb21wbGV4X2xvY2F0aW9uX2V4cHJf Y29tcGxhaW50ICgKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kd2FyZjJyZWFk LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDQzNTE2MDEgKzAxMDAKKysrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjE1MzY0ODMzICsw MTAwCitAQCAtMTkxNywxMiArMTkxNywxMiBAQCBkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHBy X2NvbXBsYWludCAoCiAgfQogIAogIHN0YXRpYyB2b2lkCkBAIC0xODE4LDcgKzE4MTEsNyBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZHdhcmYycmVhZC5jCiAgfQogIAogIHN0YXRp YyB2b2lkCi1AQCAtMTI1MjQsOCArMTI1MjQsOCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3Qg ZmllbGRfaW5mbyAqZmlwCitAQCAtMTI1NTQsOCArMTI1NTQsOCBAQCBkd2FyZjJfYWRkX2ZpZWxk IChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwCiAgCSAgICAgICAgIG9iamVjdCwgYW5kIHRoZW4gc3Vi dHJhY3Qgb2ZmIHRoZSBudW1iZXIgb2YgYml0cyBvZgogIAkgICAgICAgICB0aGUgZmllbGQgaXRz ZWxmLiAgVGhlIHJlc3VsdCBpcyB0aGUgYml0IG9mZnNldCBvZgogIAkgICAgICAgICB0aGUgTFNC IG9mIHRoZSBmaWVsZC4gICovCkBAIC0xODI5LDEwICsxODIyLDEwIEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9kd2FyZjJyZWFkLmMKICAKICAJICAgICAgYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOwogIAkgICAgICBpZiAoYXR0cikKLUluZGV4 OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9ldmFsLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvZXZhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmln L2dkYi9ldmFsLmMJMjAxNS0wNy0wOSAxODoyNDozOC45OTAzNTYwNjggKzAyMDAKLSsrKyBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9ldmFsLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMzczODM3NjYg KzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9ldmFsLmMJMjAxNS0xMS0w MiAyMToyMzoxMS4yMDYzNTE2MTQgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv ZXZhbC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjE2MzY0ODM5ICswMTAwCiBAQCAtMzE3LDcgKzMx Nyw4IEBAIGV2YWx1YXRlX3N0cnVjdF90dXBsZSAoc3RydWN0IHZhbHVlICpzdHIKICAgIHdoaWxl ICgtLW5hcmdzID49IDApCiAgICAgIHsKQEAgLTE4NTIsNyArMTg0NSw3IEBAIEluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9ldmFsLmMKICAKICAgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bj b2RlID09IEJJTk9QX0NPTU1BKQogICAgICB7Ci1AQCAtNTI1LDExICs1MjYsMTEgQEAgYmlub3Bf cHJvbW90ZSAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZgorQEAgLTUyNiwxMSArNTI3LDExIEBA IGJpbm9wX3Byb21vdGUgKGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWYKICAgICAgLyogRklYTUU6 IEFsc28gbWl4ZWQgaW50ZWdyYWwvYm9vbGVhbnMsIHdpdGggcmVzdWx0IGFuIGludGVnZXIuICAq LwogICAgICB7CiAgICAgICAgY29uc3Qgc3RydWN0IGJ1aWx0aW5fdHlwZSAqYnVpbHRpbiA9IGJ1 aWx0aW5fdHlwZSAoZ2RiYXJjaCk7CkBAIC0xODY3LDcgKzE4NjAsNyBAQCBJbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvZXZhbC5jCiAgICAgICAgaW50IHVuc2lnbmVkX29wZXJhdGlvbjsK ICAKICAgICAgICAvKiBEZXRlcm1pbmUgdHlwZSBsZW5ndGggYW5kIHNpZ25lZG5lc3MgYWZ0ZXIg cHJvbW90aW9uIGZvcgotQEAgLTcxMSw3ICs3MTIsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCB0eXBlICplCitAQCAtNzEyLDcgKzcxMyw3IEBAIGV2YWx1YXRlX3N1YmV4cF9z dGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKICAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3ZlYzsKICAgIGlu dCBjb2RlOwogICAgaW50IGl4OwpAQCAtMTg3Niw3ICsxODY5LDcgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2V2YWwuYwogICAgc3RydWN0IHR5cGUgKiphcmdfdHlwZXM7CiAgICBp bnQgc2F2ZV9wb3MxOwogICAgc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24gPSBOVUxMOwotQEAgLTg5 MCw3ICs4OTEsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitA QCAtODkxLDcgKzg5Miw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUg KmUKICAJICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAodHlwZSk7 CiAgCSAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUp OwogIAkgIHN0cnVjdCB2YWx1ZSAqYXJyYXkgPSBhbGxvY2F0ZV92YWx1ZSAoZXhwZWN0X3R5cGUp OwpAQCAtMTg5NSwxMCArMTg4OCwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv ZXZhbC5jCiAgCXN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7CiAgCiAgCWdldF91c2Vy X3ByaW50X29wdGlvbnMgKCZvcHRzKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9m LWxhbmcuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZi1sYW5nLmMJMjAxNS0wNy0w OSAxODoyNDozOC45OTEzNTYwNzcgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9m LWxhbmcuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIzNzM4Mzc2NiArMDIwMAorLS0tIGdkYi03LjEw LjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA2MzUx NjE0ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjE2MzY0ODM5ICswMTAwCiBAQCAtMTAzLDcgKzEwMyw3IEBAIGZfcHJpbnRj aGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsIHMKICAKICBzdGF0aWMgdm9pZApAQCAtMTkw OCwxMCArMTkwMSwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZi1sYW5nLmMK ICAJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKICAg IGNvbnN0IGNoYXIgKnR5cGVfZW5jb2RpbmcgPSBmX2dldF9lbmNvZGluZyAodHlwZSk7Ci1JbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZi1sYW5nLmgKK0luZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvZi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5 Lm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTUtMDctMDkgMTg6MjQ6MzguOTkxMzU2MDc3ICswMjAwCi0r KysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZi1sYW5nLmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4y MzgzODM3NzQgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLWxhbmcu aAkyMDE1LTExLTAyIDIxOjIzOjExLjIwNzM1MTYyMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9mLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIxNjM2NDgzOSArMDEwMAog QEAgLTMwLDcgKzMwLDcgQEAgZXh0ZXJuIHZvaWQgZl9lcnJvciAoY2hhciAqKTsJLyogRGVmaW5l ZAogIGV4dGVybiB2b2lkIGZfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKiwgY29uc3QgY2hhciAq LCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBpbnQsIGNvbnN0IHN0cnVjdCB0eXBlX3By aW50X29wdGlvbnMgKik7CkBAIC0xOTIxLDEwICsxOTE0LDEwIEBAIEluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi9mLWxhbmcuaAogIAkJCSBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJ IGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9mLXZhbHByaW50LmMKK0lu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNS0wNy0wOSAx ODoyNDozOC45OTEzNTYwNzcgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9mLXZh bHByaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMzgzODM3NzQgKzAyMDAKKy0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4y MDczNTE2MjAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5j CTIwMTUtMTEtMDIgMjE6MjQ6MzQuMTA4ODk3MDkwICswMTAwCiBAQCAtMzgsNyArMzgsNyBAQCBl eHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2b2lkCiAgc3RhdGljIHZvaWQgaW5m b19jb21tb25fY29tbWFuZCAoY2hhciAqLCBpbnQpOwogIHN0YXRpYyB2b2lkIGY3N19nZXRfZHlu YW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqKTsKQEAgLTE5ODQsMTEgKzE5 NzcsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2YtdmFscHJpbnQuYwogIAkg ICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCSAgICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotSW5kZXg6IGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL2ZpbmR2YXIuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9m aW5kdmFyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2Zp bmR2YXIuYwkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk5MTM1NjA3NyArMDIwMAotKysrIGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2ZpbmR2YXIuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIzODM4Mzc3NCAr MDIwMAotQEAgLTYyNiw3ICs2MjYsNyBAQCBzdHJ1Y3QgdmFsdWUgKgorLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIwODM1MTYy NyArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9maW5kdmFyLmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yMTczNjQ4NDYgKzAxMDAKK0BAIC04MDEsNyArODAxLDcgQEAgc3RydWN0IHZh bHVlICoKICBkZWZhdWx0X3ZhbHVlX2Zyb21fcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCByZWdudW0sIHN0cnVjdCBmcmFtZV9pZCBmcmFtZV9pZCkKICB7CkBAIC0xOTk3LDcgKzE5OTAs NyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZmluZHZhci5jCiAgICBzdHJ1Y3Qg dmFsdWUgKnZhbHVlID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwogIAogICAgVkFMVUVfTFZBTCAo dmFsdWUpID0gbHZhbF9yZWdpc3RlcjsKLUBAIC02NTksMTAgKzY1OSwxMCBAQCB2b2lkCitAQCAt ODM0LDEwICs4MzQsMTAgQEAgdm9pZAogIHJlYWRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUgKHN0cnVj dCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKICB7CiAgICBzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CkBAIC0yMDA2LDI0ICsx OTk5LDI0IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9maW5kdmFyLmMKICsgIExP TkdFU1Qgb2Zmc2V0ID0gMDsKICsgIExPTkdFU1QgcmVnX29mZnNldCA9IHZhbHVlX29mZnNldCAo dmFsdWUpOwogICAgaW50IHJlZ251bSA9IFZBTFVFX1JFR05VTSAodmFsdWUpOwotLSAgaW50IGxl biA9IFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWx1ZSkpKTsKLSsg IExPTkdFU1QgbGVuID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZh bHVlKSkpOworLSAgaW50IGxlbiA9IHR5cGVfbGVuZ3RoX3VuaXRzIChjaGVja190eXBlZGVmICh2 YWx1ZV90eXBlICh2YWx1ZSkpKTsKKysgIExPTkdFU1QgbGVuID0gdHlwZV9sZW5ndGhfdW5pdHMg KGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSkpOwogIAogICAgZ2RiX2Fzc2VydCAo VkFMVUVfTFZBTCAodmFsdWUpID09IGx2YWxfcmVnaXN0ZXIpOwogIAotQEAgLTY3Nyw3ICs2Nzcs NyBAQCByZWFkX2ZyYW1lX3JlZ2lzdGVyX3ZhbHVlIChzdHJ1Y3QgdmFsdWUKK0BAIC04NTIsNyAr ODUyLDcgQEAgcmVhZF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlCiAgICB3aGls ZSAobGVuID4gMCkKICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqcmVndmFsID0gZ2V0X2Zy YW1lX3JlZ2lzdGVyX3ZhbHVlIChmcmFtZSwgcmVnbnVtKTsKLS0gICAgICBpbnQgcmVnX2xlbiA9 IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChyZWd2YWwpKSAtIHJlZ19vZmZzZXQ7Ci0rICAgICAg TE9OR0VTVCByZWdfbGVuID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHJlZ3ZhbCkpIC0gcmVn X29mZnNldDsKKy0gICAgICBpbnQgcmVnX2xlbiA9IHR5cGVfbGVuZ3RoX3VuaXRzICh2YWx1ZV90 eXBlIChyZWd2YWwpKSAtIHJlZ19vZmZzZXQ7CisrICAgICAgTE9OR0VTVCByZWdfbGVuID0gdHlw ZV9sZW5ndGhfdW5pdHMgKHZhbHVlX3R5cGUgKHJlZ3ZhbCkpIC0gcmVnX29mZnNldDsKICAKICAg ICAgICAvKiBJZiB0aGUgcmVnaXN0ZXIgbGVuZ3RoIGlzIGxhcmdlciB0aGFuIHRoZSBudW1iZXIg b2YgYnl0ZXMKICAgICAgICAgICByZW1haW5pbmcgdG8gY29weSwgdGhlbiBvbmx5IGNvcHkgdGhl IGFwcHJvcHJpYXRlIGJ5dGVzLiAgKi8KLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9m cmFtZS5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1lLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2ZyYW1lLmMJMjAxNS0wNy0wOSAx ODoyNDozOC45OTIzNTYwODUgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9mcmFt ZS5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjM5MzgzNzgzICswMjAwCistLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjcub3JpZy9nZGIvZnJhbWUuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIwODM1MTYyNyAr MDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5jCTIwMTUtMTEtMDIgMjE6 MjM6MTMuMjE4MzY0ODUyICswMTAwCiBAQCAtMTI3Miw3ICsxMjcyLDcgQEAgZGVwcmVjYXRlZF9m cmFtZV9yZWdpc3Rlcl9yZWFkIChzdHJ1Y3QgZgogIAogIGludApAQCAtMjA0MiwxMSArMjAzNSwx MSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZnJhbWUuYwogIAogICAgLyogQ29w eSB0aGUgZGF0YS4gICovCiAgICB3aGlsZSAobGVuID4gMCkKLUluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9mcmFtZS5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1l LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2ZyYW1lLmgJ MjAxNS0wNy0wOSAxODoyNDozOC45OTIzNTYwODUgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9mcmFtZS5oCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjM5MzgzNzgzICswMjAwCi1AQCAt NTgzLDcgKzU4Myw3IEBAIGV4dGVybiB2b2lkIHB1dF9mcmFtZV9yZWdpc3RlciAoc3RydWN0IGYK Ky0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mcmFtZS5oCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMjA5MzUxNjM0ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1l LmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMTgzNjQ4NTIgKzAxMDAKK0BAIC01ODUsNyArNTg1LDcg QEAgZXh0ZXJuIHZvaWQgcHV0X2ZyYW1lX3JlZ2lzdGVyIChzdHJ1Y3QgZgogICAgIGNvbnRlbnRz IGFyZSBvcHRpbWl6ZWQgb3V0IG9yIHVuYXZhaWxhYmxlLCBzZXQgKk9QVElNSVpFRFAsCiAgICAg KlVOQVZBSUxBQkxFUCBhY2NvcmRpbmdseS4gICovCiAgZXh0ZXJuIGludCBnZXRfZnJhbWVfcmVn aXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKQEAgLTIw NTUsMTEgKzIwNDgsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2ZyYW1lLmgK ICAJCQkJICAgICBnZGJfYnl0ZSAqbXlhZGRyLAogIAkJCQkgICAgIGludCAqb3B0aW1pemVkcCwg aW50ICp1bmF2YWlsYWJsZXApOwogIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dk YnR5cGVzLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE1 LTA3LTA5IDE4OjI0OjM4Ljk5NTM1NjExMSArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2dkYnR5cGVzLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDEzODM4MDAgKzAyMDAKLUBAIC0y Njk4LDcgKzI2OTgsNyBAQCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlw CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE1LTExLTAy IDIxOjIzOjExLjIxMjM1MTY1MyArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9n ZGJ0eXBlcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIwMzY0ODY2ICswMTAwCitAQCAtMjcxOSw3 ICsyNzE5LDcgQEAgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKnR5cAogICAg IGxlYXN0IGFzIGxvbmcgYXMgT0JKRklMRS4gICovCiAgCiAgc3RydWN0IHR5cGUgKgpAQCAtMjA2 OCw3ICsyMDYxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dkYnR5cGVzLmMK ICAJICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgewogICAg c3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtMjkzOCw4ICsyOTM4LDggQEAgaXNfcHVibGljX2FuY2Vz dG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgcworQEAgLTI5NTksOCArMjk1OSw4IEBAIGlzX3B1Ymxp Y19hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJhc2UsIHMKICAKICBzdGF0aWMgaW50CiAgaXNfdW5p cXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0cnVjdCB0eXBlICpkY2xh c3MsCkBAIC0yMDc5LDcgKzIwNzIsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv Z2RidHlwZXMuYwogIAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdmFsdWUgKnZhbCkK ICB7CiAgICBpbnQgaSwgY291bnQgPSAwOwotQEAgLTI5NTAsNyArMjk1MCw3IEBAIGlzX3VuaXF1 ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0yOTcxLDcgKzI5NzEsNyBAQCBp c191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChzdHJ1Y3QgdHlwZSAqCiAgICBmb3IgKGkgPSAwOyBp IDwgVFlQRV9OX0JBU0VDTEFTU0VTIChkY2xhc3MpICYmIGNvdW50IDwgMjsgKytpKQogICAgICB7 CiAgICAgICAgc3RydWN0IHR5cGUgKml0ZXI7CkBAIC0yMDg4LDcgKzIwODEsNyBAQCBJbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ2RidHlwZXMuYwogIAogICAgICAgIGl0ZXIgPSBjaGVj a190eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAoZGNsYXNzLCBpKSk7CiAgCi1AQCAtMjk5MSw3ICsy OTkxLDcgQEAgaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKgorQEAgLTMw MTIsNyArMzAxMiw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoK ICBpbnQKICBpc191bmlxdWVfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdmFs dWUgKnZhbCkKICB7CkBAIC0yMDk3LDcgKzIwOTAsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvZ2RidHlwZXMuYwogIAogICAgcmV0dXJuIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3Jr ZXIgKGJhc2UsIHZhbHVlX3R5cGUgKHZhbCksICZvZmZzZXQsCiAgCQkJCSAgICB2YWx1ZV9jb250 ZW50c19mb3JfcHJpbnRpbmcgKHZhbCksCi1AQCAtNDE1Niw3ICs0MTU2LDcgQEAgcmVjdXJzaXZl X2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNDIwMCw3ICs0MjAwLDcgQEAgcmVj dXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCiAgICAgICAgYnJlYWs7CiAgICAg IH0KICAgIHB1dHNfZmlsdGVyZWQgKCJcbiIpOwpAQCAtMjEwNiw3ICsyMDk5LDcgQEAgSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dkYnR5cGVzLmMKICAgIGlmIChUWVBFX09CSkZJTEVf T1dORUQgKHR5cGUpKQogICAgICB7CiAgICAgICAgcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzLCAi b2JqZmlsZSAiKTsKLUBAIC00Mjg0LDggKzQyODQsOCBAQCByZWN1cnNpdmVfZHVtcF90eXBlIChz dHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC00MzI4LDggKzQzMjgsOCBAQCByZWN1cnNpdmVfZHVtcF90 eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgIGlkeCwgcGxvbmdlc3QgKFRZUEVfRklFTERf RU5VTVZBTCAodHlwZSwgaWR4KSkpOwogICAgICAgIGVsc2UKICAJcHJpbnRmaV9maWx0ZXJlZCAo c3BhY2VzICsgMiwKQEAgLTIxMTcsNyArMjExMCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9nZGJ0eXBlcy5jCiAgCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGlkeCkp OwogICAgICAgIGdkYl9wcmludF9ob3N0X2FkZHJlc3MgKFRZUEVfRklFTERfVFlQRSAodHlwZSwg aWR4KSwgZ2RiX3N0ZG91dCk7CiAgICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiIG5hbWUgJyVzJyAo IiwKLUBAIC00NjY2LDcgKzQ2NjYsNyBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0 eXBlKQorQEAgLTQ2NzEsNyArNDY3MSw3IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUg KnR5cGUpCiAgCiAgc3RydWN0IHR5cGUgKgogIGFyY2hfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCkBAIC0yMTI2LDExICsyMTE5LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9nZGJ0eXBlcy5jCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7CiAgCi1JbmRleDogZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9nZGJ0eXBlcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5v cmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTUtMDctMDkgMTg6MjQ6MzguOTk1MzU2MTExICswMjAwCi0r KysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ2RidHlwZXMuaAkyMDE1LTA3LTA5IDE4OjI0OjQy LjI0MTM4MzgwMCArMDIwMAotQEAgLTUwNCw3ICs1MDQsNyBAQCB1bmlvbiBmaWVsZF9sb2NhdGlv bgorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNS0xMS0w MiAyMToyMzoxMS4yMTMzNTE2NjAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Z2RidHlwZXMuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMDM2NDg2NiArMDEwMAorQEAgLTUxMiw3 ICs1MTIsNyBAQCB1bmlvbiBmaWVsZF9sb2NhdGlvbgogICAgICAgZ2RiYXJjaF9iaXRzX2JpZ19l bmRpYW49MCB0YXJnZXRzLCBpdCBpcyB0aGUgYml0IG9mZnNldCB0bwogICAgICAgdGhlIExTQi4g ICovCiAgCkBAIC0yMTQwLDE1ICsyMTMzLDE1IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9nZGJ0eXBlcy5oCiAgICAvKiAqIEVudW0gdmFsdWUuICAqLwogICAgTE9OR0VTVCBlbnVt dmFsOwogQEAgLTgyMiw3ICs4MjIsNyBAQCBzdHJ1Y3QgdHlwZQotICAgICAgSE9TVF9DSEFSX0JJ VC4gIEhvd2V2ZXIsIHRoaXMgd291bGQgc3RpbGwgZmFpbCB0byBhZGRyZXNzCi0gICAgICBtYWNo aW5lcyBiYXNlZCBvbiBhIHRlcm5hcnkgb3IgZGVjaW1hbCByZXByZXNlbnRhdGlvbi4gICovCi0g ICAKLS0gIHVuc2lnbmVkIGxlbmd0aDsKKyAgICAgIHR5cGVfbGVuZ3RoX3VuaXRzIGZ1bmN0aW9u IHNob3VsZCBiZSB1c2VkIGluIG9yZGVyIHRvIGdldCB0aGUgbGVuZ3RoCisgICAgICBleHByZXNz ZWQgaW4gdGFyZ2V0IGFkZHJlc3NhYmxlIG1lbW9yeSB1bml0cy4gICovCisgCistICB1bnNpZ25l ZCBpbnQgbGVuZ3RoOwogKyAgVUxPTkdFU1QgbGVuZ3RoOwogIAogICAgLyogKiBDb3JlIHR5cGUs IHNoYXJlZCBieSBhIGdyb3VwIG9mIHF1YWxpZmllZCB0eXBlcy4gICovCiAgCi1AQCAtMTcwOCwx MSArMTcwOCwxMiBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmdldF90YXJnZXRfdHlwZSAoc3RyCitA QCAtMTcxNywxMSArMTcxNywxMiBAQCBleHRlcm4gdW5zaWduZWQgaW50IHR5cGVfbGVuZ3RoX3Vu aXRzIChzCiAgCiAgLyogKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29uc3RydWN0IG9iamZpbGUtb3du ZWQgdHlwZXMuICAqLwogIApAQCAtMjE2MywxMCArMjE1NiwxMCBAQCBJbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvZ2RidHlwZXMuaAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9pbnRl Z2VyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOwogIGV4dGVybiBz dHJ1Y3QgdHlwZSAqYXJjaF9jaGFyYWN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50LCBp bnQsIGNoYXIgKik7CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2Jvb2xlYW5fdHlwZSAoc3Ry dWN0IGdkYmFyY2ggKiwgaW50LCBpbnQsIGNoYXIgKik7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvZ251LXYyLWFiaS5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2du dS12Mi1hYmkuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIv Z251LXYyLWFiaS5jCTIwMTUtMDctMDkgMTg6MjQ6MzguOTk2MzU2MTIwICswMjAwCi0rKysgZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjQx MzgzODAwICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ251LXYyLWFi aS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjEzMzUxNjYwICswMTAwCisrKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2dudS12Mi1hYmkuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMTM2NDg3MiAr MDEwMAogQEAgLTgyLDcgKzgyLDcgQEAgZ251djJfaXNfb3BlcmF0b3JfbmFtZSAoY29uc3QgY2hh ciAqbmFtZQogICAgIFRZUEUgaXMgdGhlIHR5cGUgaW4gd2hpY2ggRiBpcyBsb2NhdGVkLiAgKi8K ICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTIyMTgsMTAgKzIyMTEsMTAgQEAgSW5kZXg6IGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dudS12Mi1hYmkuYwogIAkgICAgZ251djJfYmFzZWNsYXNz X29mZnNldCAodHlwZSwgaSwgdmFsYWRkciwKICAJCQkJICAgIGVtYmVkZGVkX29mZnNldCwgYWRk cmVzcywgdmFsKTsKICAKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nbnUtdjMtYWJp LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNS0w Ny0wOSAxODoyNDozOC45OTYzNTYxMjAgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9nbnUtdjMtYWJpLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDIzODM4MDggKzAyMDAKKy0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNS0xMS0wMiAyMToy MzoxMS4yMTQzNTE2NjcgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYz LWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIxMzY0ODcyICswMTAwCiBAQCAtMTA4LDcgKzEw OCw3IEBAIGJ1aWxkX2dkYl92dGFibGVfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmEKICB7CiAgICBz dHJ1Y3QgdHlwZSAqdDsKQEAgLTIyMzksOCArMjIzMiw4IEBAIEluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9nbnUtdjMtYWJpLmMKICtzdGF0aWMgTE9OR0VTVAogIHZ0YWJsZV9hZGRyZXNz X3BvaW50X29mZnNldCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCiAgewotICAgc3RydWN0IHR5 cGUgKnZ0YWJsZV90eXBlID0gZ2RiYXJjaF9kYXRhIChnZGJhcmNoLCB2dGFibGVfdHlwZV9nZGJh cmNoX2RhdGEpOwotQEAgLTI4NSw3ICsyODUsNyBAQCBnbnV2M19nZXRfdnRhYmxlIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjCisgICBzdHJ1Y3QgdHlwZSAqdnRhYmxlX3R5cGUKK0BAIC0yODYsNyAr Mjg2LDcgQEAgZ251djNfZ2V0X3Z0YWJsZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyYwogIAogIHN0 YXRpYyBzdHJ1Y3QgdHlwZSAqCiAgZ251djNfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbHVl LApAQCAtMjI0OSw3ICsyMjQyLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2du dS12My1hYmkuYwogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOwogICAgc3RydWN0IHR5 cGUgKnZhbHVlc190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodmFsdWUpKTsKLUBA IC00MTAsNyArNDEwLDcgQEAgZ251djNfZ2V0X3ZpcnR1YWxfZm4gKHN0cnVjdCBnZGJhcmNoICpn ZAorQEAgLTQxMSw3ICs0MTEsNyBAQCBnbnV2M19nZXRfdmlydHVhbF9mbiAoc3RydWN0IGdkYmFy Y2ggKmdkCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCiAgZ251djNfdmlydHVhbF9mbl9maWVsZCAo c3RydWN0IHZhbHVlICoqdmFsdWVfcCwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg Zm5fZmllbGQgKmYsIGludCBqLApAQCAtMjI1OCw3ICsyMjUxLDcgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2dudS12My1hYmkuYwogIHsKICAgIHN0cnVjdCB0eXBlICp2YWx1ZXNf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKCp2YWx1ZV9wKSk7CiAgICBzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaDsKLUBAIC00NDAsMTYgKzQ0MCwxNiBAQCBnbnV2M192aXJ0dWFsX2Zu X2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKip2CitAQCAtNDQxLDE2ICs0NDEsMTYgQEAgZ251djNfdmly dHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqdgogIAogICAgIC0xIGlzIHJldHVybmVkIG9u IGVycm9yLiAgKi8KICAKQEAgLTIyNzgsNyArMjI3MSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9nbnUtdjMtYWJpLmMKICAKICAgIC8qIERldGVybWluZSBhcmNoaXRlY3R1cmUu ICAqLwogICAgZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwotQEAgLTQ3Myw3ICs0NzMs NyBAQCBnbnV2M19iYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwCitAQCAtNDc0LDcg KzQ3NCw3IEBAIGdudXYzX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKICAgIGN1 cl9iYXNlX29mZnNldCA9IGN1cl9iYXNlX29mZnNldCArIHZ0YWJsZV9hZGRyZXNzX3BvaW50X29m ZnNldCAoZ2RiYXJjaCk7CiAgICBpZiAoKC0gY3VyX2Jhc2Vfb2Zmc2V0KSAlIFRZUEVfTEVOR1RI IChwdHJfdHlwZSkgIT0gMCkKICAgICAgZXJyb3IgKF8oIk1pc2FsaWduZWQgdmJhc2Ugb2Zmc2V0 LiIpKTsKQEAgLTIyODcsNyArMjI4MCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9nbnUtdjMtYWJpLmMKICAKICAgIHZ0YWJsZSA9IGdudXYzX2dldF92dGFibGUgKGdkYmFyY2gs IHR5cGUsIGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZzZXQpOwogICAgZ2RiX2Fzc2VydCAodnRhYmxl ICE9IE5VTEwpOwotQEAgLTUxNyw3ICs1MTcsNyBAQCBnbnV2M19maW5kX21ldGhvZF9pbiAoc3Ry dWN0IHR5cGUgKmRvbWFpCitAQCAtNTE4LDcgKzUxOCw3IEBAIGdudXYzX2ZpbmRfbWV0aG9kX2lu IChzdHJ1Y3QgdHlwZSAqZG9tYWkKICAgICAgIHdlJ3JlIG91dCBvZiBsdWNrLiAgKi8KICAgIGZv ciAoaSA9IDA7IGkgPCBUWVBFX05fQkFTRUNMQVNTRVMgKGRvbWFpbik7IGkrKykKICAgICAgewpA QCAtMjI5NiwxMCArMjI4OSwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ251 LXYzLWFiaS5jCiAgICAgICAgc3RydWN0IHR5cGUgKmJhc2V0eXBlOwogIAogICAgICAgIGlmIChC QVNFVFlQRV9WSUFfVklSVFVBTCAoZG9tYWluLCBpKSkKLUluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9nby1sYW5nLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ28tbGFu Zy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9nby1sYW5n LmgJMjAxNS0wNy0wOSAxODoyNDozOC45OTczNTYxMjggKzAyMDAKLSsrKyBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9nby1sYW5nLmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDIzODM4MDggKzAyMDAK Ky0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9nby1sYW5nLmgJMjAxNS0xMS0wMiAy MToyMzoxMS4yMTQzNTE2NjcgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ28t bGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIxMzY0ODcyICswMTAwCiBAQCAtODUsNyArODUs NyBAQCBleHRlcm4gdm9pZCBnb19wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqCiAgLyogRGVmaW5l ZCBpbiBnby12YWxwcmludC5jLiAgKi8KICAKQEAgLTIzMDksMTAgKzIzMDIsMTAgQEAgSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dvLWxhbmcuaAogIAkJCSAgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJ CQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nby12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2dvLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIw MTUwNzA5Lm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNS0wNy0wOSAxODoyNDozOC45OTczNTYx MjggKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nby12YWxwcmludC5jCTIwMTUt MDctMDkgMTg6MjQ6NDIuMjQyMzgzODA4ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvZ28tdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxNDM1MTY2NyArMDEw MAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nby12YWxwcmludC5jCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjIyMzY0ODc5ICswMTAwCiBAQCAtMzcsNyArMzcsNyBAQAogIAogIHN0YXRpYyB2 b2lkCkBAIC0yMzM0LDEyICsyMzI3LDEyIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9nby12YWxwcmludC5jCiArCSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJICAgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotICAgQ0hFQ0tfVFlQRURFRiAodHlwZSk7Ci1J bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvanYtbGFuZy5jCisgICB0eXBlID0gY2hlY2tf dHlwZWRlZiAodHlwZSk7CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxhbmcu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvanYtbGFuZy5j CTIwMTUtMDctMDkgMTg6MjQ6MzguOTk3MzU2MTI4ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvanYtbGFuZy5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjQzMzgzODE3ICswMjAwCi1A QCAtNDM2LDcgKzQzNiw3IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAq Z2QKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxNS0xMS0w MiAyMToyMzoxMS4yMTUzNTE2NzMgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv anYtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIyMzY0ODc5ICswMTAwCitAQCAtNDQwLDcg KzQ0MCw3IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgIGZv ciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7IGkgPCBuZmllbGRzOyBpKyspCiAgICAg IHsKICAgICAgICBpbnQgYWNjZmxhZ3M7CkBAIC0yMzQ4LDcgKzIzNDEsNyBAQCBJbmRleDogZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvanYtbGFuZy5jCiAgCiAgICAgICAgaWYgKGZpZWxkcyA9PSBO VUxMKQogIAl7Ci1AQCAtODg2LDcgKzg4Niw3IEBAIGphdmFfcHJpbnRjaGFyIChpbnQgYywgc3Ry dWN0IHR5cGUgKnR5cGUKK0BAIC04OTAsNyArODkwLDcgQEAgamF2YV9wcmludGNoYXIgKGludCBj LCBzdHJ1Y3QgdHlwZSAqdHlwZQogIHN0YXRpYyB2b2lkCiAgamF2YV9wcmludHN0ciAoc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCiAgCSAgICAgICBjb25zdCBnZGJf Ynl0ZSAqc3RyaW5nLApAQCAtMjM1NywxMCArMjM1MCwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvanYtbGFuZy5jCiAgCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBjb25zdCBjaGFyICp0eXBlX2VuY29kaW5nID0gamF2 YV9nZXRfZW5jb2RpbmcgKHR5cGUpOwotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2p2 LWxhbmcuaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5nLmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE1LTA3 LTA5IDE4OjI0OjM4Ljk5NzM1NjEyOCArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L2p2LWxhbmcuaAkyMDE1LTA3LTA5IDE4OjI0OjQyLjI0MzM4MzgxNyArMDIwMAorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIx NTM1MTY3MyArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5nLmgJMjAx NS0xMS0wMiAyMToyMzoxMy4yMjIzNjQ4NzkgKzAxMDAKIEBAIC00Myw4ICs0Myw4IEBAIHN0cnVj dCBidWlsdGluX2phdmFfdHlwZQogIAogIGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9qYXZh X3R5cGUgKmJ1aWx0aW5famF2YV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqKTsKQEAgLTIzNzIsMTEg KzIzNjUsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2p2LWxhbmcuaAogIAkJ CSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKik7CiAgCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvanYtdmFs cHJpbnQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi12YWxwcmludC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9qdi12YWxwcmludC5j CTIwMTUtMDctMDkgMTg6MjQ6MzguOTk4MzU2MTM3ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvanYtdmFscHJpbnQuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjI0MzM4MzgxNyArMDIw MAotQEAgLTI2NSw3ICsyNjUsNyBAQCBqYXZhX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZh bCwgc3RyCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvanYtdmFscHJpbnQuYwky MDE1LTExLTAyIDIxOjIzOjExLjIxNTM1MTY3MyArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9qdi12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIyMzY0ODc5ICswMTAw CitAQCAtMjY2LDcgKzI2Niw3IEBAIGphdmFfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAqdmFs LCBzdHIKICAKICBzdGF0aWMgdm9pZAogIGphdmFfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yMzg1LDcgKzIzNzgsNyBA QCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvanYtdmFscHJpbnQuYwogIAkJCSBDT1JF X0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCQkgaW50IHJlY3Vyc2Us CiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTQ1Myw3ICs0NTMsNyBAQCBqYXZh X3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5CitAQCAtNDU0LDcgKzQ1NCw3IEBA IGphdmFfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHkKICAKICB2b2lkCiAgamF2 YV92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwK QEAgLTIzOTQsMTEgKzIzODcsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2p2 LXZhbHByaW50LmMKICAJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJ Y29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9sYW5ndWFnZS5j CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2xhbmd1YWdlLmMJMjAxNS0wNy0wOSAx ODoyNDozOC45OTgzNTYxMzcgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9sYW5n dWFnZS5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjQ0MzgzODI1ICswMjAwCi1AQCAtNzIwLDcgKzcy MCw3IEBAIHVua19sYW5nX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICoKKy0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEu MjE2MzUxNjgwICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmMJ MjAxNS0xMS0wMiAyMToyMzoxMy4yMjMzNjQ4ODUgKzAxMDAKK0BAIC03MzksNyArNzM5LDcgQEAg dW5rX2xhbmdfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgogIAogIHN0YXRpYyB2b2lk CiAgdW5rX2xhbmdfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBl ICp0eXBlLApAQCAtMjQwNyw3ICsyNDAwLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2xhbmd1YWdlLmMKICAJCSAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxs aXBzZXMsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykK ICB7Ci1AQCAtNzM5LDcgKzczOSw3IEBAIHVua19sYW5nX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBl ICp0eXBlLAorQEAgLTc1OCw3ICs3NTgsNyBAQCB1bmtfbGFuZ19wcmludF90eXBlIChzdHJ1Y3Qg dHlwZSAqdHlwZSwKICAKICBzdGF0aWMgdm9pZAogIHVua19sYW5nX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjQxNiwxMCArMjQwOSwx MCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbGFuZ3VhZ2UuYwogIAkJICAgIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2xhbmd1YWdlLmgKK0luZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3VhZ2UuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvbGFuZ3VhZ2UuaAkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk5 ODM1NjEzNyArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2xhbmd1YWdlLmgJMjAx NS0wNy0wOSAxODoyNDo0Mi4yNDQzODM4MjUgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9sYW5ndWFnZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE2MzUxNjgwICswMTAw CisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmgJMjAxNS0xMS0wMiAyMToy MzoxMy4yMjMzNjQ4ODUgKzAxMDAKIEBAIC0xODksNyArMTg5LDcgQEAgc3RydWN0IGxhbmd1YWdl X2RlZm4KICAJCQkgIHN0cnVjdCB1aV9maWxlICogc3RyZWFtKTsKICAKQEAgLTI0MzgsMTAgKzI0 MzEsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2xhbmd1YWdlLmgKICAJCQkg IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgY29uc3Qgc3RydWN0 IHZhbHVlICp2YWwsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucyk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbTItbGFuZy5jCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvbTItbGFuZy5jCTIwMTUtMDctMDkgMTg6MjQ6MzguOTk5 MzU2MTQ1ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbTItbGFuZy5jCTIwMTUt MDctMDkgMTg6MjQ6NDIuMjQ0MzgzODI1ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvbTItbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE3MzUxNjg2ICswMTAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEz LjIyMzM2NDg4NSArMDEwMAogQEAgLTEwNCwxMCArMTA0LDEwIEBAIG0yX3ByaW50Y2hhciAoaW50 IGMsIHN0cnVjdCB0eXBlICp0eXBlLAogIAogIHN0YXRpYyB2b2lkCkBAIC0yNDc2LDEwICsyNDY5 LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9tMi1sYW5nLmMKICAJICBpID0g cmVwMSAtIDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3Ro cmVzaG9sZDsKICAJICBuZWVkX2NvbW1hID0gMTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9tMi1sYW5nLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItbGFuZy5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9tMi1sYW5nLmgJ MjAxNS0wNy0wOSAxODoyNDozOC45OTkzNTYxNDUgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9tMi1sYW5nLmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDQzODM4MjUgKzAyMDAKKy0t LSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9tMi1sYW5nLmgJMjAxNS0xMS0wMiAyMToy MzoxMS4yMTczNTE2ODYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItbGFu Zy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIzMzY0ODg1ICswMTAwCiBAQCAtMzQsNyArMzQsNyBA QCBleHRlcm4gdm9pZCBtMl9wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwCiAgZXh0ZXJuIGludCBt Ml9pc19sb25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUpOwogIGV4dGVybiBpbnQgbTJfaXNfdW5i b3VuZGVkX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSk7CkBAIC0yNDg5LDEwICsyNDgyLDEwIEBA IEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9tMi1sYW5nLmgKICAJCQkgIHN0cnVjdCB1 aV9maWxlICosIGludCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcw OS9nZGIvbTItdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTIt dHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2Ri L20yLXR5cGVwcmludC5jCTIwMTUtMDctMDkgMTg6MjQ6MzguOTk5MzU2MTQ1ICswMjAwCi0rKysg Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0 Mi4yNDUzODM4MzQgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9tMi10 eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxNzM1MTY4NiArMDEwMAorKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi10eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIy NDM2NDg5MiArMDEwMAogQEAgLTIzNCw5ICsyMzQsMTIgQEAgc3RhdGljIHZvaWQgbTJfYXJyYXkg KHN0cnVjdCB0eXBlICp0eXBlLAogIAkgIG0yX3ByaW50X2JvdW5kcyAoVFlQRV9JTkRFWF9UWVBF ICh0eXBlKSwgc3RyZWFtLCBzaG93LCAtMSwgMSk7CiAgCX0KQEAgLTI1MDksMTAgKzI1MDIsMTAg QEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL20yLXR5cGVwcmludC5jCiAgICAgIH0K ICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIl0gT0YgIik7CiAgICBtMl9wcmludF90eXBl IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgIiIsIHN0cmVhbSwgc2hvdywgbGV2ZWwsIGZsYWdz KTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9tMi12YWxwcmludC5jCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNS0wNy0wOSAxODoy NDozOC45OTkzNTYxNDUgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9tMi12YWxw cmludC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjQ1MzgzODM0ICswMjAwCistLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIx NzM1MTY4NiArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi12YWxwcmludC5j CTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI0MzY0ODkyICswMTAwCiBAQCAtMzUsNyArMzUsNyBAQCBz dGF0aWMgaW50IHByaW50X3VucGFja2VkX3BvaW50ZXIgKHN0cnVjCiAgCQkJCSAgIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0pOwogIHN0YXRpYyB2b2lkCkBAIC0yNTc4LDEwICsyNTcxLDEwIEBAIElu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9tMi12YWxwcmludC5jCiAgCiAgCQkgIC8qIExv b2sgZm9yIGEgTlVMTCBjaGFyLiAgKi8KICAJCSAgZm9yICh0ZW1wX2xlbiA9IDA7Ci1JbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbWVtcmFuZ2UuYworSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9tZW1yYW5nZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcw OS5vcmlnL2dkYi9tZW1yYW5nZS5jCTIwMTUtMDctMDkgMTg6MjQ6MzguOTk5MzU2MTQ1ICswMjAw Ci0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbWVtcmFuZ2UuYwkyMDE1LTA3LTA5IDE4OjI0 OjQyLjI0NTM4MzgzNCArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL21l bXJhbmdlLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTgzNTE2OTMgKzAxMDAKKysrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2UuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNDM2NDg5 MiArMDEwMAogQEAgLTIxLDggKzIxLDggQEAKICAjaW5jbHVkZSAibWVtcmFuZ2UuaCIKICAKQEAg LTI1OTMsMTAgKzI1ODYsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL21lbXJh bmdlLmMKICB7CiAgICBVTE9OR0VTVCBoLCBsOwogIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL21lbXJhbmdlLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFu Z2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvbWVtcmFu Z2UuaAkyMDE1LTA3LTA5IDE4OjI0OjM5LjAwMDM1NjE1NCArMDIwMAotKysrIGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL21lbXJhbmdlLmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDUzODM4MzQgKzAy MDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9tZW1yYW5nZS5oCTIwMTUtMTEt MDIgMjE6MjM6MTEuMjE4MzUxNjkzICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L21lbXJhbmdlLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjQzNjQ4OTIgKzAxMDAKIEBAIC0zMCw3 ICszMCw3IEBAIHN0cnVjdCBtZW1fcmFuZ2UKICAgIENPUkVfQUREUiBzdGFydDsKICAKQEAgLTI2 MTcsMTEgKzI2MTAsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL21lbXJhbmdl LmgKICAKICAvKiBSZXR1cm5zIHRydWUgaWYgQUREUiBpcyBpbiBSQU5HRS4gICovCiAgCi1JbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbWlwcy1saW51eC1uYXQuYworSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9taXBzLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTUtMDctMDkgMTg6 MjQ6MzkuMDAwMzU2MTU0ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbWlwcy1s aW51eC1uYXQuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjI0NTM4MzgzNCArMDIwMAotQEAgLTU4Niw3 ICs1ODYsNyBAQCBtaXBzX2xpbnV4X3N0b3BwZWRfZGF0YV9hZGRyZXNzIChzdHJ1Y3QKKy0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMjE4MzUxNjkzICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21p cHMtbGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjUzNjQ4OTkgKzAxMDAKK0BAIC01 ODcsNyArNTg3LDcgQEAgbWlwc19saW51eF9zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0CiAg CiAgc3RhdGljIGludAogIG1pcHNfbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChz dHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTI2MzAsMTAgKzI2MjMsMTAgQEAgSW5kZXg6IGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL21pcHMtbGludXgtbmF0LmMKICB7CiAgICBzdHJ1Y3QgcHRf d2F0Y2hfcmVncyBkdW1teV9yZWdzOwogICAgaW50IGk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvb3BlbmNsLWxhbmcuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9v cGVuY2wtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dk Yi9vcGVuY2wtbGFuZy5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDAwMzU2MTU0ICswMjAwCi0rKysg Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1LTA3LTA5IDE4OjI0OjQy LjI0NjM4Mzg0MyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL29wZW5j bC1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTkzNTE2OTkgKzAxMDAKKysrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNTM2 NDg5OSArMDEwMAogQEAgLTc4LDExICs3OCwxMSBAQCBidWlsdGluX29wZW5jbF90eXBlIChzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiCiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICoKQEAgLTI3MTAsMTAgKzI3 MDMsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL29wZW5jbC1sYW5nLmMKICAK ICAgICAgICBpZiAoIXZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGMtPnZhbCwKICAJCQkJ CSBjLT5pbmRpY2VzW2ldICogZWxzaXplICsgY29tcF9vZmZzZXQsCi1JbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvcC1sYW5nLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv cC1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3At bGFuZy5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDAxMzU2MTYyICswMjAwCi0rKysgZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvcC1sYW5nLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDYzODM4NDMgKzAy MDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wLWxhbmcuYwkyMDE1LTExLTAy IDIxOjIzOjExLjIxOTM1MTY5OSArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9w LWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNTM2NDg5OSArMDEwMAogQEAgLTk1LDggKzk1 LDggQEAgcGFzY2FsX21haW5fbmFtZSAodm9pZCkKICAgICBhcmUgbm90IG11bHRpcGxlIG9mIFRB UkdFVF9DSEFSX0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwogICAgIGJ1dCB0aGlzIGRv ZXMgbm90IGhhcHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLwpAQCAtMjc2MSwx MCArMjc1NCwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcC1sYW5nLmMKICAJ ICBpID0gcmVwMSAtIDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0X2Nv dW50X3RocmVzaG9sZDsKICAJICBuZWVkX2NvbW1hID0gMTsKLUluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9wLWxhbmcuaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxh bmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvcC1sYW5n LmgJMjAxNS0wNy0wOSAxODoyNDozOS4wMDEzNTYxNjIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9wLWxhbmcuaAkyMDE1LTA3LTA5IDE4OjI0OjQyLjI0NjM4Mzg0MyArMDIwMAor LS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3AtbGFuZy5oCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMjE5MzUxNjk5ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFu Zy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI2MzY0OTA1ICswMTAwCiBAQCAtMzYsNyArMzYsNyBA QCBleHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRfdHlwZSAoc3RydWN0IHR5CiAgZXh0ZXJuIHZvaWQg cGFzY2FsX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlICosIHN0cnVjdCBzeW1ib2wgKiwKICAJ CQkJICBzdHJ1Y3QgdWlfZmlsZSAqKTsKQEAgLTI3OTksMTAgKzI3OTIsMTAgQEAgSW5kZXg6IGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL3AtbGFuZy5oCiAgCQkJCQkgICAgICBDT1JFX0FERFIsIHN0 cnVjdCB1aV9maWxlICosCiAgCQkJCQkgICAgICBpbnQsCiAgCQkJCQkgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWUgKiwKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9wLXZhbHByaW50LmMK K0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC12YWxwcmludC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9wLXZhbHByaW50LmMJMjAxNS0wNy0w OSAxODoyNDozOS4wMDEzNTYxNjIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9w LXZhbHByaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDczODM4NTEgKzAyMDAKKy0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzox MS4yMjAzNTE3MDYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC12YWxwcmlu dC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI2MzY0OTA1ICswMTAwCiBAQCAtNTcsNyArNTcsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlCiAgCiAgdm9pZApAQCAt Mjg2NCwxMCArMjg1NywxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcC12YWxw cmludC5jCiAgICAgICAgaW50IHNraXAgPSAwOwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFf VklSVFVBTCAodHlwZSwgaSkpCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHBjLWxp bnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3BwYy1saW51eC1uYXQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvcHBjLWxpbnV4 LW5hdC5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDAyMzU2MTcxICswMjAwCi0rKysgZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjQ3Mzgz ODUxICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcHBjLWxpbnV4LW5h dC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjIxMzUxNzEzICswMTAwCisrKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNzM2NDkx MiArMDEwMAogQEAgLTE0NDksNyArMTQ0OSw3IEBAIHBwY19saW51eF9jYW5fdXNlX2h3X2JyZWFr cG9pbnQgKHN0cnVjdAogIAogIHN0YXRpYyBpbnQKQEAgLTI4NzcsMTAgKzI4NzAsMTAgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3BwYy1saW51eC1uYXQuYwogIHsKICAgIC8qIEhh bmRsZSBzdWItOC1ieXRlIHF1YW50aXRpZXMuICAqLwogICAgaWYgKGxlbiA8PSAwKQotSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ByaW50Y21kLmMKK0luZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvcHJpbnRjbWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3 MDkub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE1LTA3LTA5IDE4OjI0OjM5LjAwMzM1NjE3OSArMDIw MAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ByaW50Y21kLmMJMjAxNS0wNy0wOSAxODoy NDo0Mi4yNDgzODM4NjAgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9w cmludGNtZC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjIxMzUxNzEzICswMTAwCisrKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3ByaW50Y21kLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjczNjQ5 MTIgKzAxMDAKIEBAIC0yNzQsNyArMjc0LDcgQEAgcHJpbnRfZm9ybWF0dGVkIChzdHJ1Y3QgdmFs dWUgKnZhbCwgaW50CiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7CkBAIC0yODkwLDcg KzI4ODMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHJpbnRjbWQuYwogIAog ICAgaWYgKFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCiAgICAgIG5leHRfYWRkcmVz cyA9IHZhbHVlX2FkZHJlc3MgKHZhbCkgKyBsZW47Ci1AQCAtMzUyLDcgKzM1Miw3IEBAIHByaW50 X3NjYWxhcl9mb3JtYXR0ZWQgKGNvbnN0IHZvaWQgKnZhbGEKK0BAIC0zNTIsNyArMzUyLDcgQEAg cHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoY29uc3QgZ2RiX2J5dGUgKgogIHsKICAgIHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7CiAgICBMT05HRVNUIHZhbF9s b25nID0gMDsKQEAgLTI4OTksMTEgKzI4OTIsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL3ByaW50Y21kLmMKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJj aF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAKICAgIC8qIFN0cmluZyBwcmludGluZyBzaG91bGQg Z28gdGhyb3VnaCB2YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZC4gICovCi1JbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvcHJvY2ZzLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvcHJvY2ZzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2Ri L3Byb2Nmcy5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDA0MzU2MTg4ICswMjAwCi0rKysgZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvcHJvY2ZzLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDkzODM4Njgg KzAyMDAKLUBAIC00ODU5LDcgKzQ4NTksNyBAQCBwcm9jZnNfcmVtb3ZlX3dhdGNocG9pbnQgKHN0 cnVjdCB0YXJnZXRfCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcHJvY2ZzLmMJ MjAxNS0xMS0wMiAyMToyMzoxMS4yMjMzNTE3MjYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvcHJvY2ZzLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjgzNjQ5MTggKzAxMDAKK0BA IC00ODYzLDcgKzQ4NjMsNyBAQCBwcm9jZnNfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJn ZXRfCiAgCiAgc3RhdGljIGludAogIHByb2Nmc19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQg KHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMjkxMiwxMCArMjkwNSwxMCBAQCBJbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHJvY2ZzLmMKICB7CiAgICAvKiBUaGUgbWFuIHBhZ2Ug Zm9yIHByb2MoNCkgb24gU29sYXJpcyAyLjYgYW5kIHVwIHNheXMgdGhhdCB0aGUKICAgICAgIHN5 c3RlbSBjYW4gc3VwcG9ydCAidGhvdXNhbmRzIiBvZiBoYXJkd2FyZSB3YXRjaHBvaW50cywgYnV0 IGdpdmVzCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHl0aG9uL3B5LXByZXR0eXBy aW50LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHl0aG9uL3B5LXByZXR0eXBy aW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3B5dGhv bi9weS1wcmV0dHlwcmludC5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDA0MzU2MTg4ICswMjAwCi0r KysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxNS0w Ny0wOSAxODoyNDo0Mi4yNDkzODM4NjggKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyMzM1 MTcyNiArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9weXRob24vcHktcHJldHR5 cHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyOTM2NDkyNSArMDEwMAogQEAgLTcwMyw3ICs3 MDMsNyBAQCBwcmludF9jaGlsZHJlbiAoUHlPYmplY3QgKnByaW50ZXIsIGNvbnN0CiAgZW51bSBl eHRfbGFuZ19yYwogIGdkYnB5X2FwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoY29uc3Qgc3RydWN0 IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICpleHRsYW5nLApAQCAtMjkyNSwxMSArMjkxOCwxMSBA QCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMK ICAJCQkJc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJCWNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsLAogIAkJCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucywKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9yZWdjYWNoZS5jCitJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0wNy0wOSAxODoyNDoz OS4wMDUzNTYxOTYgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9yZWdjYWNoZS5j CTIwMTUtMDctMDkgMTg6MjQ6NDIuMjUwMzgzODc3ICswMjAwCi1AQCAtOTQ5LDcgKzk0OSw3IEBA IHR5cGVkZWYgdm9pZCAocmVnY2FjaGVfd3JpdGVfZnR5cGUpIChzdHIKKy0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi9yZWdjYWNoZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjI0MzUx NzMyICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0x MS0wMiAyMToyMzoxMy4yMjkzNjQ5MjUgKzAxMDAKK0BAIC05NTgsNyArOTU4LDcgQEAgdHlwZWRl ZiB2b2lkIChyZWdjYWNoZV93cml0ZV9mdHlwZSkgKHN0cgogIAogIHN0YXRpYyBlbnVtIHJlZ2lz dGVyX3N0YXR1cwogIHJlZ2NhY2hlX3hmZXJfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNo ZSwgaW50IHJlZ251bSwKQEAgLTI5MzgsNyArMjkzMSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9yZWdjYWNoZS5jCiAgCQkgICAgZW51bSByZWdpc3Rlcl9zdGF0dXMgKCpyZWFk KSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCQkJCQkgIGludCByZWdudW0sCiAgCQkJ CQkJICBnZGJfYnl0ZSAqYnVmKSwKLUBAIC05OTMsNyArOTkzLDcgQEAgcmVnY2FjaGVfeGZlcl9w YXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZworQEAgLTEwMDIsNyArMTAwMiw3IEBAIHJlZ2NhY2hl X3hmZXJfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWcKICAKICBlbnVtIHJlZ2lzdGVyX3N0YXR1 cwogIHJlZ2NhY2hlX3Jhd19yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGlu dCByZWdudW0sCkBAIC0yOTQ3LDcgKzI5NDAsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcw OS9nZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSBy ZWdjYWNoZS0+ZGVzY3I7CiAgCi1AQCAtMTAwNCw3ICsxMDA0LDcgQEAgcmVnY2FjaGVfcmF3X3Jl YWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlCitAQCAtMTAxMyw3ICsxMDEzLDcgQEAgcmVnY2FjaGVf cmF3X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlCiAgCiAgdm9pZAogIHJlZ2NhY2hlX3Jhd193 cml0ZV9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk1 Niw3ICsyOTQ5LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3JlZ2NhY2hlLmMK ICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwog IAotQEAgLTEwMTUsNyArMTAxNSw3IEBAIHJlZ2NhY2hlX3Jhd193cml0ZV9wYXJ0IChzdHJ1Y3Qg cmVnY2FjaGUKK0BAIC0xMDI0LDcgKzEwMjQsNyBAQCByZWdjYWNoZV9yYXdfd3JpdGVfcGFydCAo c3RydWN0IHJlZ2NhY2hlCiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV9jb29r ZWRfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAt Mjk2NSw3ICsyOTU4LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3JlZ2NhY2hl LmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2Ny OwogIAotQEAgLTEwMjYsNyArMTAyNiw3IEBAIHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQgKHN0 cnVjdCByZWdjYWMKK0BAIC0xMDM1LDcgKzEwMzUsNyBAQCByZWdjYWNoZV9jb29rZWRfcmVhZF9w YXJ0IChzdHJ1Y3QgcmVnY2FjCiAgCiAgdm9pZAogIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV9wYXJ0 IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk3NCwxMCArMjk2 NywxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcmVnY2FjaGUuYwogIHsKICAg IHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1JbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcmVnY2FjaGUuaAorSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1 MDcwOS5vcmlnL2dkYi9yZWdjYWNoZS5oCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDA1MzU2MTk2ICsw MjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcmVnY2FjaGUuaAkyMDE1LTA3LTA5IDE4 OjI0OjQyLjI1MDM4Mzg3NyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2Ri L3JlZ2NhY2hlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjQzNTE3MzIgKzAxMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIzMDM2 NDkzMSArMDEwMAogQEAgLTkyLDkgKzkyLDkgQEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVfcmF3X3dy aXRlX3Vuc2lnbmVkCiAgCiAgZXh0ZXJuIGVudW0gcmVnaXN0ZXJfc3RhdHVzCkBAIC0zMDA1LDEx ICsyOTk4LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9yZWdjYWNoZS5oCiAg CiAgLyogU3BlY2lhbCByb3V0aW5lcyB0byByZWFkL3dyaXRlIHRoZSBQQy4gICovCiAgCi1JbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcmVtb3RlLmMKK0luZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvcmVtb3RlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5 Lm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDA3MzU2MjEzICswMjAwCi0r KysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcmVtb3RlLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4y NTMzODM5MDIgKzAyMDAKLUBAIC04Nzk2LDcgKzg3OTYsNyBAQCBpbnQgcmVtb3RlX2h3X2JyZWFr cG9pbnRfbGltaXQgPSAtMTsKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9yZW1v dGUuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyNzM1MTc1MiArMDEwMAorKysrIGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9yZW1vdGUuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIzMjM2NDk0NSArMDEw MAorQEAgLTkxNTcsNyArOTE1Nyw3IEBAIGludCByZW1vdGVfaHdfYnJlYWtwb2ludF9saW1pdCA9 IC0xOwogIAogIHN0YXRpYyBpbnQKICByZW1vdGVfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50 IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTMwMTgsMTEgKzMwMTEsMTEgQEAgSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3JlbW90ZS5jCiAgewogICAgaWYgKHJlbW90ZV9od193 YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9PSAwKQogICAgICByZXR1cm4gMDsKLUluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9zcHUtbXVsdGlhcmNoLmMKK0luZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvc3B1LW11bHRpYXJjaC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4y MDE1MDcwOS5vcmlnL2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0wNy0wOSAxODoyNDozOS4wMDgz NTYyMjIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9zcHUtbXVsdGlhcmNoLmMJ MjAxNS0wNy0wOSAxODoyNDo0Mi4yNTMzODM5MDIgKzAyMDAKLUBAIC0xMTcsNyArMTE3LDcgQEAg c3B1X3RocmVhZF9hcmNoaXRlY3R1cmUgKHN0cnVjdCB0YXJnZXRfbworLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE1LTExLTAyIDIxOjIzOjExLjIy ODM1MTc1OSArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zcHUtbXVsdGlhcmNo LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzMzNjQ5NTEgKzAxMDAKK0BAIC0xMjcsNyArMTI3LDcg QEAgc3B1X3RocmVhZF9hcmNoaXRlY3R1cmUgKHN0cnVjdCB0YXJnZXRfbwogIC8qIE92ZXJyaWRl IHRoZSB0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgcm91dGluZS4gICovCiAgc3RhdGlj IGludAogIHNwdV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3Bz ICpzZWxmLApAQCAtMzAzMSwxMCArMzAyNCwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcw OS9nZGIvc3B1LW11bHRpYXJjaC5jCiAgewogICAgc3RydWN0IHRhcmdldF9vcHMgKm9wc19iZW5l YXRoID0gZmluZF90YXJnZXRfYmVuZWF0aCAoc2VsZik7CiAgCi1JbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvc3RhY2suYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zdGFj ay5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9zdGFjay5j CTIwMTUtMDctMDkgMTg6MjQ6MzkuMDA5MzU2MjMwICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvc3RhY2suYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjI1NDM4MzkxMSArMDIwMAorLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3N0YWNrLmMJMjAxNS0xMS0wMiAyMToyMzox MS4yMjkzNTE3NjUgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwky MDE1LTExLTAyIDIxOjIzOjEzLjIzMzM2NDk1MSArMDEwMAogQEAgLTE3Niw3ICsxNzYsNyBAQCBw cmludF9zdGFja19mcmFtZSAoc3RydWN0IGZyYW1lX2luZm8gKmZyCiAgICAgYXJndW1lbnQgKG5v dCBqdXN0IHRoZSBmaXJzdCBuYW1lbGVzcyBhcmd1bWVudCkuICAqLwogIApAQCAtMzA3MywxMCAr MzA2NiwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvc3RhY2suYwogIAogICAg ICAgIGlmIChoaWdoZXN0X29mZnNldCA9PSAtMSkKICAJc3RhcnQgPSBnZGJhcmNoX2ZyYW1lX2Fy Z3Nfc2tpcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvc3ltbWlzYy5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3N5bW1p c2MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvc3ltbWlz Yy5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDA5MzU2MjMwICswMjAwCi0rKysgZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvc3ltbWlzYy5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjU0MzgzOTExICswMjAw CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMjI5MzUxNzY1ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3N5 bW1pc2MuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIzNDM2NDk1OCArMDEwMAogQEAgLTUzNCwxMSAr NTM0LDExIEBAIHByaW50X3N5bWJvbCAodm9pZCAqYXJncykKICAKICAJY2FzZSBMT0NfQ09OU1Rf QllURVM6CkBAIC0zMDkyLDEwICszMDg1LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9zeW1taXNjLmMKICAJICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdUSCAodHlwZSk7 IGkrKykKICAJICAgICAgZnByaW50Zl9maWx0ZXJlZCAob3V0ZmlsZSwgIiAlMDJ4IiwKICAJCQkJ KHVuc2lnbmVkKSBTWU1CT0xfVkFMVUVfQllURVMgKHN5bWJvbClbaV0pOwotSW5kZXg6IGdkYi03 LjkuOTAuMjAxNTA3MDkvZ2RiL3RhcmdldC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3RhcmdldC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dk Yi90YXJnZXQuYwkyMDE1LTA3LTA5IDE4OjI0OjM5LjAxMDM1NjIzOSArMDIwMAotKysrIGdkYi03 LjkuOTAuMjAxNTA3MDkvZ2RiL3RhcmdldC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjU1MzgzOTE5 ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdGFyZ2V0LmMJMjAxNS0x MS0wMiAyMToyMzoxMS4yMzAzNTE3NzIgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvdGFyZ2V0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzQzNjQ5NTggKzAxMDAKIEBAIC01NCw3 ICs1NCw3IEBAIHN0YXRpYyBpbnQgZGVmYXVsdF93YXRjaHBvaW50X2FkZHJfd2l0aGkKICAJCQkJ CQkgQ09SRV9BRERSLCBDT1JFX0FERFIsIGludCk7CiAgCkBAIC0zMTA1LDcgKzMwOTgsNyBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdGFyZ2V0LmMKICAKICBzdGF0aWMgdm9pZCBk ZWZhdWx0X3JjbWQgKHN0cnVjdCB0YXJnZXRfb3BzICosIGNvbnN0IGNoYXIgKiwgc3RydWN0IHVp X2ZpbGUgKik7CiAgCi1AQCAtMzA4NSw3ICszMDg1LDcgQEAgdGFyZ2V0X2ZpbGVpb19yZWFkX3N0 cmFsbG9jIChzdHJ1Y3QgaW5mZQorQEAgLTMxMzIsNyArMzEzMiw3IEBAIHRhcmdldF9maWxlaW9f cmVhZF9zdHJhbGxvYyAoc3RydWN0IGluZmUKICAKICBzdGF0aWMgaW50CiAgZGVmYXVsdF9yZWdp b25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMzEx NCwxMSArMzEwNywxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdGFyZ2V0LmMK ICB7CiAgICByZXR1cm4gKGxlbiA8PSBnZGJhcmNoX3B0cl9iaXQgKHRhcmdldF9nZGJhcmNoICgp KSAvIFRBUkdFVF9DSEFSX0JJVCk7CiAgfQotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L3RhcmdldC5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi90YXJnZXQuaAkyMDE1LTA3 LTA5IDE4OjI0OjM5LjAxMDM1NjIzOSArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L3RhcmdldC5oCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjU2MzgzOTI4ICswMjAwCi1AQCAtNTQ3LDcg KzU0Nyw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3Jp Zy9nZGIvdGFyZ2V0LmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMzEzNTE3NzkgKzAxMDAKKysrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzUz NjQ5NjQgKzAxMDAKK0BAIC01NDksNyArNTQ5LDcgQEAgc3RydWN0IHRhcmdldF9vcHMKICAgICAg LyogRG9jdW1lbnRhdGlvbiBvZiB0aGlzIHJvdXRpbmUgaXMgcHJvdmlkZWQgd2l0aCB0aGUgY29y cmVzcG9uZGluZwogICAgICAgICB0YXJnZXRfKiBtYWNyby4gICovCiAgICAgIGludCAoKnRvX3Jl Z2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCkgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0zMTI3 LDExICszMTIwLDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90YXJnZXQuaAog ICAgICAgIFRBUkdFVF9ERUZBVUxUX0ZVTkMgKGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9od193YXRj aHBvaW50KTsKICAKICAgICAgaW50ICgqdG9fY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9u KSAoc3RydWN0IHRhcmdldF9vcHMgKiwKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90 cmFjZXBvaW50LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi90cmFjZXBvaW50 LmMJMjAxNS0wNy0wOSAxODoyNDozOS4wMTIzNTYyNTYgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi90cmFjZXBvaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNTczODM5MzYgKzAy MDAKLUBAIC05MjgsMTMgKzkyOCwxMyBAQCBhZGRfcmVnaXN0ZXIgKHN0cnVjdCBjb2xsZWN0aW9u X2xpc3QgKmNvCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdHJhY2Vwb2ludC5j CTIwMTUtMTEtMDIgMjE6MjM6MTEuMjMzMzUxNzkyICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIzNjM2NDk3MSArMDEw MAorQEAgLTkzMCwxMyArOTMwLDEzIEBAIGFkZF9yZWdpc3RlciAoc3RydWN0IGNvbGxlY3Rpb25f bGlzdCAqY28KICBzdGF0aWMgdm9pZAogIGFkZF9tZW1yYW5nZSAoc3RydWN0IGNvbGxlY3Rpb25f bGlzdCAqbWVtcmFuZ2VzLCAKICAJICAgICAgaW50IHR5cGUsIGJmZF9zaWduZWRfdm1hIGJhc2Us CkBAIC0zMTQ3LDcgKzMxNDAsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdHJh Y2Vwb2ludC5jCiAgICAgIH0KICAKICAgIC8qIHR5cGU6IG1lbXJhbmdlX2Fic29sdXRlID09IG1l bW9yeSwgb3RoZXIgbiA9PSBiYXNlcmVnICovCi1AQCAtOTY0LDcgKzk2NCw3IEBAIGNvbGxlY3Rf c3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC05NjYsNyArOTY2LDcgQEAgY29s bGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgogIAkJQ09SRV9BRERSIHNjb3Bl LAogIAkJaW50IHRyYWNlX3N0cmluZykKICB7CkBAIC0zMTU2LDcgKzMxNDksNyBAQCBJbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdHJhY2Vwb2ludC5jCiAgICB1bnNpZ25lZCBpbnQgcmVn OwogICAgYmZkX3NpZ25lZF92bWEgb2Zmc2V0OwogICAgaW50IHRyZWF0X2FzX2V4cHIgPSAwOwot QEAgLTk4OCw4ICs5ODgsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlz dCAqCitAQCAtOTkwLDggKzk5MCw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlv bl9saXN0ICoKICAJICBjaGFyIHRtcFs0MF07CiAgCiAgCSAgc3ByaW50Zl92bWEgKHRtcCwgb2Zm c2V0KTsKQEAgLTMxNjcsNyArMzE2MCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi90cmFjZXBvaW50LmMKICAJCQkgICB0bXAgLyogYWRkcmVzcyAqLyk7CiAgCX0KICAgICAgICAv KiBBIHN0cnVjdCBtYXkgYmUgYSBDKysgY2xhc3Mgd2l0aCBzdGF0aWMgZmllbGRzLCBnbyB0byBn ZW5lcmFsCi1AQCAtMTAyMSw4ICsxMDIxLDggQEAgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xs ZWN0aW9uX2xpc3QgKgorQEAgLTEwMjMsOCArMTAyMyw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1 Y3QgY29sbGVjdGlvbl9saXN0ICoKICAgICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1C T0xfVkFMVUUgKHN5bSk7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzE3OCw3 ICszMTcxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3RyYWNlcG9pbnQuYwog IAkgIHByaW50Zl92bWEgKG9mZnNldCk7CiAgCSAgcHJpbnRmX2ZpbHRlcmVkICgiIGZyb20gZnJh bWUgcHRyIHJlZyAlZFxuIiwgcmVnKTsKICAJfQotQEAgLTEwMzMsOCArMTAzMyw4IEBAIGNvbGxl Y3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC0xMDM1LDggKzEwMzUsOCBA QCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCiAgICAgICAgb2Zmc2V0 ID0gMDsKICAgICAgICBpZiAoaW5mb192ZXJib3NlKQogIAl7CkBAIC0zMTg5LDcgKzMxODIsNyBA QCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdHJhY2Vwb2ludC5jCiAgCSAgcHJpbnRm X3ZtYSAob2Zmc2V0KTsKICAJICBwcmludGZfZmlsdGVyZWQgKCIgZnJvbSByZWcgJWRcbiIsIHJl Zyk7CiAgCX0KLUBAIC0xMDQ1LDggKzEwNDUsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNv bGxlY3Rpb25fbGlzdCAqCitAQCAtMTA0Nyw4ICsxMDQ3LDggQEAgY29sbGVjdF9zeW1ib2wgKHN0 cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgogICAgICAgIG9mZnNldCA9IGZyYW1lX29mZnNldCArIFNZ TUJPTF9WQUxVRSAoc3ltKTsKICAgICAgICBpZiAoaW5mb192ZXJib3NlKQogIAl7CkBAIC0zMjAw LDcgKzMxOTMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdHJhY2Vwb2ludC5j CiAgCSAgcHJpbnRmX3ZtYSAob2Zmc2V0KTsKICAJICBwcmludGZfZmlsdGVyZWQgKCIgZnJvbSBm cmFtZSBwdHIgcmVnICVkXG4iLCByZWcpOwogIAl9Ci1AQCAtMjcwOSw3ICsyNzA5LDggQEAgc2Nv cGVfaW5mbyAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQorQEAgLTI3MDgsNyArMjcwOCw4IEBA IHNjb3BlX2luZm8gKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgIGNvbnN0IGNoYXIgKnN5 bW5hbWU7CiAgICBjaGFyICpzYXZlX2FyZ3MgPSBhcmdzOwogICAgc3RydWN0IGJsb2NrX2l0ZXJh dG9yIGl0ZXI7CkBAIC0zMjA5LDggKzMyMDIsOCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcw OS9nZGIvdHJhY2Vwb2ludC5jCiArICBMT05HRVNUIGo7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaDsKICAgIGludCByZWdubzsKLSAKLUBAIC0yODQ1LDggKzI4NDYsMTEgQEAgc2NvcGVfaW5m byAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQorICAgc3RydWN0IGV2ZW50X2xvY2F0aW9uICps b2NhdGlvbjsKK0BAIC0yODUyLDggKzI4NTMsMTEgQEAgc2NvcGVfaW5mbyAoY2hhciAqYXJncywg aW50IGZyb21fdHR5KQogIAkJfQogIAkgICAgfQogIAkgIGlmIChTWU1CT0xfVFlQRSAoc3ltKSkK QEAgLTMyMjQsMTEgKzMyMTcsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3Ry YWNlcG9pbnQuYwogIAl9CiAgICAgICAgaWYgKEJMT0NLX0ZVTkNUSU9OIChibG9jaykpCiAgCWJy ZWFrOwotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3R5cGVwcmludC5jCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3R5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE1LTA3LTA5IDE4OjI0OjM5 LjAxMzM1NjI2NCArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3R5cGVwcmludC5j CTIwMTUtMDctMDkgMTg6MjQ6NDIuMjU3MzgzOTM2ICswMjAwCi1AQCAtNDA0LDcgKzQwNCw3IEBA IHdoYXRpc19leHAgKGNoYXIgKmV4cCwgaW50IHNob3cpCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEw Mjcub3JpZy9nZGIvdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMzQzNTE3OTggKzAx MDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHlwZXByaW50LmMJMjAxNS0xMS0wMiAy MToyMzoxMy4yMzYzNjQ5NzEgKzAxMDAKK0BAIC00MDYsNyArNDA2LDcgQEAgd2hhdGlzX2V4cCAo Y2hhciAqZXhwLCBpbnQgc2hvdykKICAgIHN0cnVjdCB0eXBlICpyZWFsX3R5cGUgPSBOVUxMOwog ICAgc3RydWN0IHR5cGUgKnR5cGU7CiAgICBpbnQgZnVsbCA9IDA7CkBAIC0zMjM3LDM3ICszMjMw LDI3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90eXBlcHJpbnQuYwogICAgaW50 IHVzaW5nX2VuYyA9IDA7CiAgICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwogICAg c3RydWN0IHR5cGVfcHJpbnRfb3B0aW9ucyBmbGFncyA9IGRlZmF1bHRfcHR5cGVfZmxhZ3M7Ci1J bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsYXJpdGguYworSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi92YWxhcml0aC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4y MDE1MDcwOS5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDE0MzU2Mjcz ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsYXJpdGguYwkyMDE1LTA3LTA5 IDE4OjI0OjQyLjI1NzM4MzkzNiArMDIwMAotQEAgLTE4OCwxMiArMTg4LDEzIEBAIHZhbHVlX3N1 YnNjcmlwdCAoc3RydWN0IHZhbHVlICphcnJheSwgTE8KKy0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjM0MzUxNzk4ICswMTAw CisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMS0wMiAyMToy Mzo1OS44MjI2NzE0OTYgKzAxMDAKK0BAIC0xODgsMTIgKzE4OCwxMiBAQCB2YWx1ZV9zdWJzY3Jp cHQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPCiAgICAgdG8gZG91YmxlcywgYnV0IG5vIGxvbmdl ciBkb2VzLiAgKi8KICAKICBzdHJ1Y3QgdmFsdWUgKgogLXZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1 ZSAoc3RydWN0IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRleCwgaW50IGxvd2VyYm91bmQpCi0r dmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBMT05HRVNUIGlu ZGV4LAotKwkJCSAgTE9OR0VTVCBsb3dlcmJvdW5kKQorK3ZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1 ZSAoc3RydWN0IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRleCwgTE9OR0VTVCBsb3dlcmJvdW5k KQogIHsKICAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAoYXJyYXkpKTsKICAgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYg KFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLS0gIHVuc2lnbmVkIGludCBlbHRfc2l6 ZSA9IFRZUEVfTEVOR1RIIChlbHRfdHlwZSk7CistICB1bnNpZ25lZCBpbnQgZWx0X3NpemUgPSB0 eXBlX2xlbmd0aF91bml0cyAoZWx0X3R5cGUpOwogLSAgdW5zaWduZWQgaW50IGVsdF9vZmZzOwot KyAgVUxPTkdFU1QgZWx0X3NpemUgPSBUWVBFX0xFTkdUSCAoZWx0X3R5cGUpOworKyAgVUxPTkdF U1QgZWx0X3NpemUgPSB0eXBlX2xlbmd0aF91bml0cyAoZWx0X3R5cGUpOwogKyAgVUxPTkdFU1Qg ZWx0X29mZnM7CiAgICBMT05HRVNUIGVsdF9zdHJpZGUgPSBUWVBFX0JZVEVfU1RSSURFIChUWVBF X0lOREVYX1RZUEUgKGFycmF5X3R5cGUpKTsKICAgIHN0cnVjdCB2YWx1ZSAqdjsKICAKLUBAIC0y MDIsNyArMjAzLDcgQEAgdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKgot ICAgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAoYXJyYXlfdHlwZSkpCi0gICAgIGVycm9yIChfKCJu byBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIpKTsKLSAKLS0gIGVs dF9vZmZzID0gbG9uZ2VzdF90b19pbnQgKGluZGV4IC0gbG93ZXJib3VuZCk7Ci0rICBlbHRfb2Zm cyA9IGluZGV4IC0gbG93ZXJib3VuZDsKLSAKLSAgIGlmIChlbHRfc3RyaWRlID4gMCkKLSAgICAg ZWx0X29mZnMgKj0gZWx0X3N0cmlkZTsKLUBAIC02NzgsNyArNjc5LDcgQEAgdmFsdWVfY29uY2F0 IChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAorQEAgLTY3OCw3ICs2NzgsNyBAQCB2YWx1ZV9j b25jYXQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0CiAgICBzdHJ1Y3QgdmFsdWUgKmludmFs MTsKICAgIHN0cnVjdCB2YWx1ZSAqaW52YWwyOwogICAgc3RydWN0IHZhbHVlICpvdXR2YWwgPSBO VUxMOwpAQCAtMzI3Niw3ICszMjU5LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L3ZhbGFyaXRoLmMKICAgIGludCBjb3VudCwgaWR4OwogICAgY2hhciAqcHRyOwogICAgY2hhciBp bmNoYXI7Ci1AQCAtMTUzMSw3ICsxNTMyLDcgQEAgdmFsdWVfYmlub3AgKHN0cnVjdCB2YWx1ZSAq YXJnMSwgc3RydWN0CitAQCAtMTUzMSw3ICsxNTMxLDcgQEAgdmFsdWVfYmlub3AgKHN0cnVjdCB2 YWx1ZSAqYXJnMSwgc3RydWN0CiAgaW50CiAgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1 ZSAqYXJnMSkKICB7CkBAIC0zMjg1LDcgKzMyNjgsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvdmFsYXJpdGguYwogICAgY29uc3QgZ2RiX2J5dGUgKnA7CiAgICBzdHJ1Y3QgdHlw ZSAqdHlwZTE7CiAgCi1AQCAtMTU2MiwxMSArMTU2MywxMSBAQCB2YWx1ZV9sb2dpY2FsX25vdCAo c3RydWN0IHZhbHVlICphcmcxKQorQEAgLTE1NjIsMTEgKzE1NjIsMTEgQEAgdmFsdWVfbG9naWNh bF9ub3QgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKICBzdGF0aWMgaW50CiAgdmFsdWVfc3RyY21wIChz dHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdCB2YWx1ZSAqYXJnMikKICB7CkBAIC0zMzAwLDEwICsz MjgzLDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxhcml0aC5jCiAgCiAg ICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCiAgICAgIHsKLUluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi92YWxvcHMuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxv cHMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvdmFsb3Bz LmMJMjAxNS0wNy0wOSAxODoyNDozOS4wMTkzNTYzMTYgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi92YWxvcHMuYwkyMDE1LTA3LTA5IDE4OjI2OjAyLjAzMjA2NDQyMCArMDIwMAor LS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMjQwMzUxODM4ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9w cy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM4MzY0OTg0ICswMTAwCiBAQCAtNTEsNyArNTEsNyBA QCBzdGF0aWMgc3RydWN0IHZhbHVlICpzZWFyY2hfc3RydWN0X2ZpZWxkCiAgCiAgc3RhdGljIHN0 cnVjdCB2YWx1ZSAqc2VhcmNoX3N0cnVjdF9tZXRob2QgKGNvbnN0IGNoYXIgKiwgc3RydWN0IHZh bHVlICoqLApAQCAtMzQyNSw3ICszNDA4LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL3ZhbG9wcy5jCiAgCQkgICBpbnQgc3RhY2ssIENPUkVfQUREUiBtZW1hZGRyLAogIAkJICAg Z2RiX2J5dGUgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCkKICB7Ci1AQCAtMTA1NCw3ICsxMDU2LDcg QEAgdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzdHJ1YworQEAgLTEwNTcsNyAr MTA1OSw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKICAgICAg ICB7CiAgCWNvbnN0IGdkYl9ieXRlICpkZXN0X2J1ZmZlcjsKICAJQ09SRV9BRERSIGNoYW5nZWRf YWRkcjsKQEAgLTM0MzQsNyArMzQxNyw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi92YWxvcHMuYwogICAgICAgICAgZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VTVCldOwog IAogIAlpZiAodmFsdWVfYml0c2l6ZSAodG92YWwpKQotQEAgLTExMjMsNyArMTEyNSw3IEBAIHZh bHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKK0BAIC0xMTI2LDcgKzExMjgs NyBAQCB2YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1ZSAqdG92YWwsIHN0cnVjCiAgCWlmICh2YWx1 ZV9iaXRzaXplICh0b3ZhbCkpCiAgCSAgewogIAkgICAgc3RydWN0IHZhbHVlICpwYXJlbnQgPSB2 YWx1ZV9wYXJlbnQgKHRvdmFsKTsKQEAgLTM0NDMsNyArMzQyNiw3IEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi92YWxvcHMuYwogIAkgICAgaW50IGNoYW5nZWRfbGVuOwogIAkgICAg Z2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VTVCldOwogIAkgICAgaW50IG9wdGltLCB1bmF2 YWlsOwotQEAgLTE2MDQsNyArMTYwNiw3IEBAIHZhbHVlX2FycmF5IChpbnQgbG93Ym91bmQsIGlu dCBoaWdoYm91bmQKK0BAIC0xNTkwLDcgKzE1OTIsNyBAQCB2YWx1ZV9hcnJheSAoaW50IGxvd2Jv dW5kLCBpbnQgaGlnaGJvdW5kCiAgewogICAgaW50IG5lbGVtOwogICAgaW50IGlkeDsKQEAgLTM0 NTIsNyArMzQzNSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxvcHMuYwog ICAgc3RydWN0IHZhbHVlICp2YWw7CiAgICBzdHJ1Y3QgdHlwZSAqYXJyYXl0eXBlOwogIAotQEAg LTE3NzksNyArMTc4MSw3IEBAIHR5cGVjbXAgKGludCBzdGF0aWNwLCBpbnQgdmFyYXJncywgaW50 IG4KK0BAIC0xNzY2LDcgKzE3NjgsNyBAQCB0eXBlY21wIChpbnQgc3RhdGljcCwgaW50IHZhcmFy Z3MsIGludCBuCiAgCiAgc3RhdGljIHZvaWQKICB1cGRhdGVfc2VhcmNoX3Jlc3VsdCAoc3RydWN0 IHZhbHVlICoqcmVzdWx0X3B0ciwgc3RydWN0IHZhbHVlICp2LApAQCAtMzQ2MSw3ICszNDQ0LDcg QEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbG9wcy5jCiAgCQkgICAgICBjb25z dCBjaGFyICpuYW1lLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpZiAodiAhPSBOVUxMKQot QEAgLTE4MDMsMTAgKzE4MDUsMTAgQEAgdXBkYXRlX3NlYXJjaF9yZXN1bHQgKHN0cnVjdCB2YWx1 ZSAqKnJlcworQEAgLTE3OTAsMTAgKzE3OTIsMTAgQEAgdXBkYXRlX3NlYXJjaF9yZXN1bHQgKHN0 cnVjdCB2YWx1ZSAqKnJlcwogICAgIGxvb2t1cCBpcyBhbWJpZ3VvdXMuICAqLwogIAogIHN0YXRp YyB2b2lkCkBAIC0zNDc0LDcgKzM0NTcsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvdmFsb3BzLmMKICAJCQlzdHJ1Y3QgdHlwZSAqb3V0ZXJtb3N0X3R5cGUpCiAgewogICAgaW50 IGk7Ci1AQCAtMTg1Myw3ICsxODU1LDcgQEAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3Qg Y2hhciAqbmFtZQorQEAgLTE4NDAsNyArMTg0Miw3IEBAIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQg KGNvbnN0IGNoYXIgKm5hbWUKICAJCSAgIDx2YXJpYW50IGZpZWxkPi4gICovCiAgCiAgCQlzdHJ1 Y3QgdmFsdWUgKnYgPSBOVUxMOwpAQCAtMzQ4Myw3ICszNDY2LDcgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL3ZhbG9wcy5jCiAgCiAgCQkvKiBUaGlzIGlzIHByZXR0eSBncm9zcy4g IEluIEcrKywgdGhlIG9mZnNldCBpbiBhbgogIAkJICAgYW5vbnltb3VzIHVuaW9uIGlzIHJlbGF0 aXZlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlCi1AQCAtMTg5Miw3ICsxODk0LDcgQEAgZG9fc2Vh cmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZQorQEAgLTE4NzksNyArMTg4MSw3IEBA IGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUKICAJCQkgICAgICYmIChz dHJjbXBfaXcgKG5hbWUsIAogIAkJCQkJICAgIFRZUEVfQkFTRUNMQVNTX05BTUUgKHR5cGUsIAog IAkJCQkJCQkJIGkpKSA9PSAwKSk7CkBAIC0zNDkyLDcgKzM0NzUsNyBAQCBJbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvdmFsb3BzLmMKICAKICAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJ UlRVQUwgKHR5cGUsIGkpKQogIAl7Ci1AQCAtMTk2OCw3ICsxOTcwLDcgQEAgc2VhcmNoX3N0cnVj dF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgcworQEAgLTE5NTUsNyArMTk1Nyw3IEBAIHNlYXJj aF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHMKICAJCSAgICAgc3RydWN0IHR5cGUg KnR5cGUsIGludCBsb29raW5nX2Zvcl9iYXNlY2xhc3MpCiAgewogICAgc3RydWN0IHZhbHVlICpy ZXN1bHQgPSBOVUxMOwpAQCAtMzUwMSw3ICszNDg0LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL3ZhbG9wcy5jCiAgCiAgICBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBh cmcxLCAwLCB0eXBlLCBsb29raW5nX2Zvcl9iYXNlY2xhc3MsCiAgCQkJICAmcmVzdWx0LCAmYm9m ZnNldCwgdHlwZSk7Ci1AQCAtMTk4NSw3ICsxOTg3LDcgQEAgc2VhcmNoX3N0cnVjdF9maWVsZCAo Y29uc3QgY2hhciAqbmFtZSwgcworQEAgLTE5NzIsNyArMTk3NCw3IEBAIHNlYXJjaF9zdHJ1Y3Rf ZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHMKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKICBz ZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHZhbHVlICoqYXJn MXAsCkBAIC0zNTEwLDcgKzM0OTMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv dmFsb3BzLmMKICAJCSAgICAgIGludCAqc3RhdGljX21lbWZ1bmNwLCBzdHJ1Y3QgdHlwZSAqdHlw ZSkKICB7CiAgICBpbnQgaTsKLUBAIC0yMDQ5LDggKzIwNTEsOCBAQCBzZWFyY2hfc3RydWN0X21l dGhvZCAoY29uc3QgY2hhciAqbmFtZSwKK0BAIC0yMDM2LDggKzIwMzgsOCBAQCBzZWFyY2hfc3Ry dWN0X21ldGhvZCAoY29uc3QgY2hhciAqbmFtZSwKICAKICAgIGZvciAoaSA9IFRZUEVfTl9CQVNF Q0xBU1NFUyAodHlwZSkgLSAxOyBpID49IDA7IGktLSkKICAgICAgewpAQCAtMzUyMSw3ICszNTA0 LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbG9wcy5jCiAgCiAgICAgICAg aWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKICAJewotQEAgLTIyODUsMTAgKzIy ODcsMTAgQEAgdmFsdWVfc3RydWN0X2VsdF9iaXRwb3MgKHN0cnVjdCB2YWx1ZSAqKgorQEAgLTIy NzIsMTAgKzIyNzQsMTAgQEAgdmFsdWVfc3RydWN0X2VsdF9iaXRwb3MgKHN0cnVjdCB2YWx1ZSAq KgogIAogIHN0YXRpYyB2b2lkCiAgZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoqYXJn cCwgY29uc3QgY2hhciAqbWV0aG9kLApAQCAtMzUzNCw3ICszNTE3LDcgQEAgSW5kZXg6IGdkYi03 LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbG9wcy5jCiAgewogICAgaW50IGk7CiAgICBzdHJ1Y3QgZm5f ZmllbGQgKmYgPSBOVUxMOwotQEAgLTIzNDUsNyArMjM0Nyw3IEBAIGZpbmRfbWV0aG9kX2xpc3Qg KHN0cnVjdCB2YWx1ZSAqKmFyZ3AsIGMKK0BAIC0yMzMyLDcgKzIzMzQsNyBAQCBmaW5kX21ldGhv ZF9saXN0IChzdHJ1Y3QgdmFsdWUgKiphcmdwLCBjCiAgICAgICBleHRlbnNpb24gbWV0aG9kcy4g ICovCiAgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpIC0gMTsgaSA+PSAwOyBp LS0pCiAgICAgIHsKQEAgLTM1NDMsNyArMzUyNiw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi92YWxvcHMuYwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodHlw ZSwgaSkpCiAgCXsKLUBAIC0yMzg4LDcgKzIzOTAsNyBAQCB2YWx1ZV9maW5kX29sb2FkX21ldGhv ZF9saXN0IChzdHJ1Y3QgdmFsCitAQCAtMjM3NSw3ICsyMzc3LDcgQEAgdmFsdWVfZmluZF9vbG9h ZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCBvZmZzZXQsIHN0cnVjdCBmbl9maWVsZCAqKmZuX2xpc3QsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50ICpudW1fZm5zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFZFQyAoeG1ldGhvZF93b3JrZXJfcHRyKSAqKnhtX3dvcmtlcl92ZWMsCkBAIC0zNTUyLDcg KzM1MzUsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsb3BzLmMKICB7CiAg ICBzdHJ1Y3QgdHlwZSAqdDsKICAKLUBAIC0yNDk5LDcgKzI1MDEsNyBAQCBmaW5kX292ZXJsb2Fk X21hdGNoIChzdHJ1Y3QgdmFsdWUgKiphcmdzCitAQCAtMjQ4Niw3ICsyNDg4LDcgQEAgZmluZF9v dmVybG9hZF9tYXRjaCAoc3RydWN0IHZhbHVlICoqYXJncwogICAgLyogTnVtYmVyIG9mIG92ZXJs b2FkZWQgaW5zdGFuY2VzIGJlaW5nIGNvbnNpZGVyZWQuICAqLwogICAgaW50IG51bV9mbnMgPSAw OwogICAgc3RydWN0IHR5cGUgKmJhc2V0eXBlID0gTlVMTDsKQEAgLTM1NjEsNyArMzU0NCw3IEBA IEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxvcHMuYwogIAogICAgc3RydWN0IGNs ZWFudXAgKmFsbF9jbGVhbnVwcyA9IG1ha2VfY2xlYW51cCAobnVsbF9jbGVhbnVwLCBOVUxMKTsK ICAKLUBAIC0zMzE0LDcgKzMzMTYsNyBAQCBjb21wYXJlX3BhcmFtZXRlcnMgKHN0cnVjdCB0eXBl ICp0MSwgc3RyCitAQCAtMzMwMCw3ICszMzAyLDcgQEAgY29tcGFyZV9wYXJhbWV0ZXJzIChzdHJ1 Y3QgdHlwZSAqdDEsIHN0cgogICAgIHRoZSBmb3JtICJET01BSU46Ok5BTUUiLiAgKi8KICAKICBz dGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTM1NzAsNyArMzU1Myw3IEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi92YWxvcHMuYwogIAkJCQlzdHJ1Y3QgdHlwZSAqY3VydHlwZSwgY29u c3QgY2hhciAqbmFtZSwKICAJCQkJc3RydWN0IHR5cGUgKmludHlwZSwgCiAgCQkJCWludCB3YW50 X2FkZHJlc3MsCi1AQCAtMzM0OCw3ICszMzUwLDcgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVm ZXJlbmNlIChzdHJ1Y3QgdAorQEAgLTMzMzQsNyArMzMzNiw3IEBAIHZhbHVlX3N0cnVjdF9lbHRf Zm9yX3JlZmVyZW5jZSAoc3RydWN0IHQKICAJICBpZiAod2FudF9hZGRyZXNzKQogIAkgICAgcmV0 dXJuIHZhbHVlX2Zyb21fbG9uZ2VzdAogIAkgICAgICAobG9va3VwX21lbWJlcnB0cl90eXBlIChU WVBFX0ZJRUxEX1RZUEUgKHQsIGkpLCBkb21haW4pLApAQCAtMzU3OSw3ICszNTYyLDcgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbG9wcy5jCiAgCSAgZWxzZSBpZiAobm9zaWRl ICE9IEVWQUxfTk9STUFMKQogIAkgICAgcmV0dXJuIGFsbG9jYXRlX3ZhbHVlIChUWVBFX0ZJRUxE X1RZUEUgKHQsIGkpKTsKICAJICBlbHNlCi1AQCAtMzUxNiw3ICszNTE4LDcgQEAgdmFsdWVfc3Ry dWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdAorQEAgLTM1MDIsNyArMzUwNCw3IEBAIHZh bHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHQKICAgIGZvciAoaSA9IFRZUEVf Tl9CQVNFQ0xBU1NFUyAodCkgLSAxOyBpID49IDA7IGktLSkKICAgICAgewogICAgICAgIHN0cnVj dCB2YWx1ZSAqdjsKQEAgLTM1ODgsNyArMzU3MSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi92YWxvcHMuYwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodCwg aSkpCiAgCWJhc2Vfb2Zmc2V0ID0gMDsKLUBAIC0zNTk3LDcgKzM1OTksNyBAQCB2YWx1ZV9tYXli ZV9uYW1lc3BhY2VfZWx0IChjb25zdCBzdHJ1Y3QKK0BAIC0zNTgzLDcgKzM1ODUsNyBAQCB2YWx1 ZV9tYXliZV9uYW1lc3BhY2VfZWx0IChjb25zdCBzdHJ1Y3QKICAKICBzdHJ1Y3QgdHlwZSAqCiAg dmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwgCkBA IC0zNTk3LDcgKzM1ODAsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsb3Bz LmMKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnRhcmdldCA9IE5VTEw7CiAgICBzdHJ1Y3QgdHlwZSAq dHlwZSwgKnJlYWxfdHlwZSwgKnRhcmdldF90eXBlOwotQEAgLTM2NjUsMTIgKzM2NjcsMTIgQEAg dmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKgorQEAgLTM2NTEsMTIgKzM2 NTMsMTIgQEAgdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKgogIHN0cnVj dCB2YWx1ZSAqCiAgdmFsdWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqYXJncCwgCiAgCQkg ICBzdHJ1Y3QgdHlwZSAqcnR5cGUsIApAQCAtMzYxMiwxMSArMzU5NSwxMSBAQCBJbmRleDogZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsb3BzLmMKICAgIGludCB1c2luZ19lbmMgPSAwOwogICAg c3RydWN0IHZhbHVlICpuZXdfdmFsOwogIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L3ZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvdmFscHJpbnQuYwky MDE1LTA3LTA5IDE4OjI0OjM5LjAyMDM1NjMyNCArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL3ZhbHByaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNjAzODM5NjIgKzAyMDAKLUBA IC0yOTgsNyArMjk4LDcgQEAgdmFsX3ByaW50X3NjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0 eQorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbHByaW50LmMJMjAxNS0xMS0w MiAyMToyMzoxMS4yNDIzNTE4NTEgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIzOTM2NDk5MSArMDEwMAorQEAgLTI5OSw3 ICsyOTksNyBAQCB2YWxfcHJpbnRfc2NhbGFyX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5CiAgaW50 CiAgdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkJ IHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMzYyNCw4ICszNjA3LDggQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL3ZhbHByaW50LmMKICsJCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQs CiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKLSAgIENIRUNLX1RZUEVERUYgKHR5 cGUpOwotQEAgLTM5Niw3ICszOTYsNyBAQCB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cnVj dCB1aV9maWxlCisgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodHlwZSk7CitAQCAtODM0LDcgKzgz NCw3IEBAIGdlbmVyaWNfdmFsX3ByaW50X2NvbXBsZXggKHN0cnVjdCB0eXBlICoKICAKICB2b2lk CiAgZ2VuZXJpY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwKQEAgLTM2MzQsNyArMzYxNyw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi92YWxwcmludC5jCiAgCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCQkgICBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC03NTgsNyArNzU4LDcg QEAgZ2VuZXJpY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjbworQEAgLTk2OSw3ICs5 NjksNyBAQCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCiAgICAgUkVD VVJTRS4gICovCiAgCiAgdm9pZApAQCAtMzY0Myw3ICszNjI2LDcgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL3ZhbHByaW50LmMKICAJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkgICBjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCwKICAJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1A QCAtOTk4LDcgKzk5OCw3IEBAIHZhbF9wcmludF90eXBlX2NvZGVfZmxhZ3MgKHN0cnVjdCB0eXBl ICoKK0BAIC0xMjIxLDcgKzEyMjEsNyBAQCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzIChzdHJ1 Y3QgdHlwZSAqCiAgCiAgdm9pZAogIHZhbF9wcmludF9zY2FsYXJfZm9ybWF0dGVkIChzdHJ1Y3Qg dHlwZSAqdHlwZSwKQEAgLTM2NTIsNyArMzYzNSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi92YWxwcmludC5jCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJ CSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKICAJCQkgICAg aW50IHNpemUsCi1AQCAtMTU0MCw3ICsxNTQwLDcgQEAgcHJpbnRfZGVjaW1hbF9jaGFycyAoc3Ry dWN0IHVpX2ZpbGUgKnN0cgorQEAgLTE3NjYsNyArMTc2Niw3IEBAIHByaW50X2RlY2ltYWxfY2hh cnMgKHN0cnVjdCB1aV9maWxlICpzdHIKICAKICB2b2lkCiAgcHJpbnRfaGV4X2NoYXJzIChzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM2NjEsNyAr MzY0NCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxwcmludC5jCiAgewog ICAgY29uc3QgZ2RiX2J5dGUgKnA7CiAgCi1AQCAtMTY1NywyMiArMTY1NywyMiBAQCBtYXliZV9w cmludF9hcnJheV9pbmRleCAoc3RydWN0IHR5cGUgKmluCitAQCAtMTg4MywyMiArMTg4MywyMiBA QCBtYXliZV9wcmludF9hcnJheV9pbmRleCAoc3RydWN0IHR5cGUgKmluCiAgCiAgdm9pZAogIHZh bF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0zNjkwLDcgKzM2 NzMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFscHJpbnQuYwogICAgTE9O R0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CiAgICBMT05HRVNUIGxvd19wb3MsIGhpZ2hfcG9z OwogIAotQEAgLTE3NjIsNyArMTc2Miw3IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3Ry dWN0IHR5cGUgKnQKK0BAIC0xOTg4LDcgKzE5ODgsNyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVu dHMgKHN0cnVjdCB0eXBlICp0CiAgCQkgICAgIGFkZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSArIDEs IHZhbCwgb3B0aW9ucywKICAJCSAgICAgY3VycmVudF9sYW5ndWFnZSk7CiAgCSAgYW5ub3RhdGVf ZWx0X3JlcCAocmVwcyk7CkBAIC0zNjk5LDcgKzM2ODIsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvdmFscHJpbnQuYwogIAkgIGFubm90YXRlX2VsdF9yZXBfZW5kICgpOwogIAog IAkgIGkgPSByZXAxIC0gMTsKLUBAIC0yNDE4LDcgKzI0MTgsNyBAQCBwcmludF9jb252ZXJ0ZWRf Y2hhcnNfdG9fb2JzdGFjayAoc3RydWN0CitAQCAtMjY0NCw3ICsyNjQ0LDcgQEAgcHJpbnRfY29u dmVydGVkX2NoYXJzX3RvX29ic3RhY2sgKHN0cnVjdAogIAogIHZvaWQKICBnZW5lcmljX3ByaW50 c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgCkBAIC0zNzA4 LDEwICszNjkxLDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxwcmludC5j CiAgCQkgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkgIGlu dCBxdW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi92YWxwcmludC5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50 LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3ZhbHByaW50 LmgJMjAxNS0wNy0wOSAxODoyNDozOS4wMjEzNTYzMzMgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi92YWxwcmludC5oCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjYwMzgzOTYyICswMjAw CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTExLTAy IDIxOjIzOjExLjI0MjM1MTg1MSArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92 YWxwcmludC5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM5MzY0OTkxICswMTAwCiBAQCAtMTE1LDEx ICsxMTUsMTEgQEAgZXh0ZXJuIHZvaWQgbWF5YmVfcHJpbnRfYXJyYXlfaW5kZXggKHN0cgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LAogIAkJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwpAQCAtMzc2 MiwxMCArMzc0NSwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFscHJpbnQu aAogIAkJCSAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAg CQkJICAgICAgaW50IHF1b3RlX2NoYXIsIGludCBjX3N0eWxlX3Rlcm1pbmF0b3IsCiAgCQkJICAg ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvdmFsdWUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9n ZGIvdmFsdWUuYwkyMDE1LTA3LTA5IDE4OjI0OjM5LjAyNjM1NjM3NSArMDIwMAotKysrIGdkYi03 LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNjEzODM5NzAg KzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi92YWx1ZS5jCTIwMTUtMTEt MDIgMjE6MjM6MTEuMjQ4MzUxODkwICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3ZhbHVlLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDEzNjUwMDQgKzAxMDAKIEBAIC02NiwxMCAr NjYsMTAgQEAgc3RydWN0IGludGVybmFsX2Z1bmN0aW9uCiAgc3RydWN0IHJhbmdlCiAgewpAQCAt MzgwMCw5ICszNzgzLDkgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMK ICAgIHJhbmdlX3Mgd2hhdDsKICAgIGludCBpOwogQEAgLTI0MCw3ICsyNDAsNyBAQCBzdHJ1Y3Qg dmFsdWUKLSAgICAgIGx2YWwgPT0gbHZhbF9yZWdpc3RlciwgdGhpcyBpcyBhIGZ1cnRoZXIgb2Zm c2V0IGZyb20KLSAgICAgIGxvY2F0aW9uLmFkZHJlc3Mgd2l0aGluIHRoZSByZWdpc3RlcnMgc3Ry dWN0dXJlLiAgTm90ZSBhbHNvIHRoZQotICAgICAgbWVtYmVyIGVtYmVkZGVkX29mZnNldCBiZWxv dy4gICovCisgICAgICB0aGUgYWRkcmVzcy4gIElmIGx2YWwgPT0gbHZhbF9yZWdpc3RlciwgdGhp cyBpcyBhIGZ1cnRoZXIgb2Zmc2V0IGZyb20KKyAgICAgIGxvY2F0aW9uLmFkZHJlc3Mgd2l0aGlu IHRoZSByZWdpc3RlcnMgc3RydWN0dXJlLiAgTm90ZSBhbHNvIHRoZSBtZW1iZXIKKyAgICAgIGVt YmVkZGVkX29mZnNldCBiZWxvdy4gICovCiAtICBpbnQgb2Zmc2V0OwogKyAgTE9OR0VTVCBvZmZz ZXQ7CiAgCkBAIC0zODE5LDggKzM4MDIsOCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvdmFsdWUuYwogIAogICAgLyogVmFsdWVzIGFyZSBzdG9yZWQgaW4gYSBjaGFpbiwgc28gdGhh dCB0aGV5IGNhbiBiZSBkZWxldGVkIGVhc2lseQogICAgICAgb3ZlciBjYWxscyB0byB0aGUgaW5m ZXJpb3IuICBWYWx1ZXMgYXNzaWduZWQgdG8gaW50ZXJuYWwKLUBAIC0zNDIsNyArMzQyLDcgQEAg c3RydWN0IHZhbHVlCi0gfTsKK0BAIC0zNTAsNyArMzUwLDcgQEAgZ2V0X3ZhbHVlX2FyY2ggKGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsdQorIH0KICAKICBpbnQKIC12YWx1ZV9iaXRzX2F2YWlsYWJs ZSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKQEAg LTM4MjgsNyArMzgxMSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5j CiAgewogICAgZ2RiX2Fzc2VydCAoIXZhbHVlLT5sYXp5KTsKICAKLUBAIC0zNTAsNyArMzUwLDgg QEAgdmFsdWVfYml0c19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZQorQEAgLTM1OCw3ICsz NTgsOCBAQCB2YWx1ZV9iaXRzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHVlCiAgfQogIAog IGludApAQCAtMzgzOCw3ICszODIxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L3ZhbHVlLmMKICB7CiAgICByZXR1cm4gdmFsdWVfYml0c19hdmFpbGFibGUgKHZhbHVlLAogIAkJ CSAgICAgICBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCi1AQCAtMzU4LDcgKzM1OSw4IEBAIHZh bHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHUKK0BAIC0zNjYsNyArMzY3LDgg QEAgdmFsdWVfYnl0ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdQogIH0KICAKICBpbnQK QEAgLTM4NDgsNyArMzgzMSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1 ZS5jCiAgewogICAgZ2RiX2Fzc2VydCAoIXZhbHVlLT5sYXp5KTsKICAKLUBAIC00MjAsNyArNDIy LDggQEAgdmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dCAoc3RydWN0IHZhbAorQEAgLTQyOCw3 ICs0MzAsOCBAQCB2YWx1ZV9lbnRpcmVseV9vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdmFsCiAgICAg T0ZGU0VUIGJpdHMsIGFuZCBleHRlbmRpbmcgZm9yIHRoZSBuZXh0IExFTkdUSCBiaXRzLiAgKi8K ICAKICBzdGF0aWMgdm9pZApAQCAtMzg1OCw3ICszODQxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL3ZhbHVlLmMKICB7CiAgICByYW5nZV9zIG5ld3I7CiAgICBpbnQgaTsKLUBA IC01OTEsNyArNTk0LDggQEAgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFs dQorQEAgLTU5OSw3ICs2MDIsOCBAQCBtYXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFibGUgKHN0cnVj dCB2YWx1CiAgfQogIAogIHZvaWQKQEAgLTM4NjgsNyArMzg1MSw3IEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgewogICAgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxh YmxlICh2YWx1ZSwKICAJCQkgICAgICAgb2Zmc2V0ICogVEFSR0VUX0NIQVJfQklULAotQEAgLTYw NSw3ICs2MDksNyBAQCBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsCitA QCAtNjEzLDcgKzYxNyw3IEBAIG1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2 YWwKICAKICBzdGF0aWMgaW50CiAgZmluZF9maXJzdF9yYW5nZV9vdmVybGFwIChWRUMocmFuZ2Vf cykgKnJhbmdlcywgaW50IHBvcywKQEAgLTM4NzcsNyArMzg2MCw3IEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgewogICAgcmFuZ2VfcyAqcjsKICAgIGludCBpOwot QEAgLTgwMSw5ICs4MDUsOSBAQCBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXBfYW5kX21hdGNoIChz dHJ1CitAQCAtODA5LDkgKzgxMyw5IEBAIGZpbmRfZmlyc3RfcmFuZ2Vfb3ZlcmxhcF9hbmRfbWF0 Y2ggKHN0cnUKICAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgYXZhaWxhYmxlIGJpdHMgbWF0Y2guICAq LwogIAogIHN0YXRpYyBpbnQKQEAgLTM4OTAsNyArMzg3Myw3IEBAIEluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgewogICAgLyogRWFjaCBhcnJheSBlbGVtZW50IGNvcnJl c3BvbmRzIHRvIGEgcmFuZ2VzIHNvdXJjZSAodW5hdmFpbGFibGUsCiAgICAgICBvcHRpbWl6ZWQg b3V0KS4gICcxJyBpcyBmb3IgVkFMMSwgJzInIGZvciBWQUwyLiAgKi8KLUBAIC04NjMsOSArODY3 LDkgQEAgdmFsdWVfY29udGVudHNfYml0c19lcSAoY29uc3Qgc3RydWN0IHZhbAorQEAgLTg3MSw5 ICs4NzUsOSBAQCB2YWx1ZV9jb250ZW50c19iaXRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsCiAgfQog IAogIGludApAQCAtMzkwMyw3ICszODg2LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL3ZhbHVlLmMKICB7CiAgICByZXR1cm4gdmFsdWVfY29udGVudHNfYml0c19lcSAodmFsMSwg b2Zmc2V0MSAqIFRBUkdFVF9DSEFSX0JJVCwKICAJCQkJIHZhbDIsIG9mZnNldDIgKiBUQVJHRVRf Q0hBUl9CSVQsCi1AQCAtMTAyOSwxMyArMTAzMywxMyBAQCBkZXByZWNhdGVkX3NldF92YWx1ZV90 eXBlIChzdHJ1Y3QgdmFsdWUKK0BAIC0xMDM3LDEzICsxMDQxLDEzIEBAIGRlcHJlY2F0ZWRfc2V0 X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZQogICAgdmFsdWUtPnR5cGUgPSB0eXBlOwogIH0KICAK QEAgLTM5MTksNyArMzkwMiw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1 ZS5jCiAgewogICAgdmFsdWUtPm9mZnNldCA9IG9mZnNldDsKICB9Ci1AQCAtMTI0Niw4ICsxMjUw LDkgQEAgdmFsdWVfcmFuZ2VzX2NvcHlfYWRqdXN0ZWQgKHN0cnVjdCB2YWx1ZQorQEAgLTEyNTcs OCArMTI2MSw5IEBAIHZhbHVlX3Jhbmdlc19jb3B5X2FkanVzdGVkIChzdHJ1Y3QgdmFsdWUKICAg ICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFuZ2UgYXJlIHdob2xseSBhdmFpbGFibGUuICAqLwogIAog IHZvaWQKQEAgLTM5MzAsOCArMzkxMyw4IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi92YWx1ZS5jCiArCQkJIHNzaXplX3QgbGVuZ3RoKQogIHsKICAgIHJhbmdlX3MgKnI7Ci0gICBp bnQgaTsKLUBAIC0xMjkzLDggKzEyOTgsOCBAQCB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAoc3Ry dWN0IHZhbHVlICpkCisgICBpbnQgc3JjX2JpdF9vZmZzZXQsIGRzdF9iaXRfb2Zmc2V0LCBiaXRf bGVuZ3RoOworQEAgLTEzMDUsOCArMTMxMCw4IEBAIHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChz dHJ1Y3QgdmFsdWUgKmQKICAgICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFuZ2UgYXJlIHdob2xseSBh dmFpbGFibGUuICAqLwogIAogIHZvaWQKQEAgLTM5NDIsNyArMzkyNSw3IEBAIEluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgewogICAgaWYgKHNyYy0+bGF6eSkKICAgICAg dmFsdWVfZmV0Y2hfbGF6eSAoc3JjKTsKLUBAIC0xMzU4LDcgKzEzNjMsOCBAQCB2YWx1ZV9vcHRp bWl6ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlCitAQCAtMTM3MCw3ICsxMzc1LDggQEAgdmFs dWVfb3B0aW1pemVkX291dCAoc3RydWN0IHZhbHVlICp2YWx1ZQogICAgIHRoZSBmb2xsb3dpbmcg TEVOR1RIIGJ5dGVzLiAgKi8KICAKICB2b2lkCkBAIC0zOTUyLDcgKzM5MzUsNyBAQCBJbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuYwogIHsKICAgIG1hcmtfdmFsdWVfYml0c19v cHRpbWl6ZWRfb3V0ICh2YWx1ZSwKICAJCQkJIG9mZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwKLUBA IC0xMzY4LDE0ICsxMzc0LDE1IEBAIG1hcmtfdmFsdWVfYnl0ZXNfb3B0aW1pemVkX291dCAoc3Ry dWN0IHYKK0BAIC0xMzgwLDE0ICsxMzg2LDE1IEBAIG1hcmtfdmFsdWVfYnl0ZXNfb3B0aW1pemVk X291dCAoc3RydWN0IHYKICAvKiBTZWUgdmFsdWUuaC4gICovCiAgCiAgdm9pZApAQCAtMzk3MCw3 ICszOTUzLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMKICB7CiAg ICBpZiAodmFsdWUtPmx2YWwgIT0gbHZhbF9jb21wdXRlZAogICAgICAgIHx8ICF2YWx1ZS0+bG9j YXRpb24uY29tcHV0ZWQuZnVuY3MtPmNoZWNrX3N5bnRoZXRpY19wb2ludGVyKQotQEAgLTEzODUs MjYgKzEzOTIsMjYgQEAgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydQor QEAgLTEzOTcsMjYgKzE0MDQsMjYgQEAgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoY29u c3Qgc3RydQogIAkJCQkJCQkJICBsZW5ndGgpOwogIH0KICAKQEAgLTQwMDEsNyArMzk4NCw3IEBA IEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgewogICAgdmFsdWUtPnBv aW50ZWRfdG9fb2Zmc2V0ID0gdmFsOwogIH0KLUBAIC0yMjg3LDcgKzIyOTQsNyBAQCBnZXRfaW50 ZXJuYWx2YXJfZnVuY3Rpb24gKHN0cnVjdCBpbnRlcm5hCitAQCAtMjI5NSw3ICsyMzAyLDcgQEAg Z2V0X2ludGVybmFsdmFyX2Z1bmN0aW9uIChzdHJ1Y3QgaW50ZXJuYQogIH0KICAKICB2b2lkCkBA IC00MDEwLDcgKzM5OTMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUu YwogIAkJCSAgIGludCBiaXRzaXplLCBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbCkKICB7CiAgICBnZGJf Ynl0ZSAqYWRkcjsKLUBAIC0zMDA4LDcgKzMwMTUsNyBAQCBzZXRfdmFsdWVfZW5jbG9zaW5nX3R5 cGUgKHN0cnVjdCB2YWx1ZSAqCitAQCAtMzAyMCw3ICszMDI3LDcgQEAgc2V0X3ZhbHVlX2VuY2xv c2luZ190eXBlIChzdHJ1Y3QgdmFsdWUgKgogICAgIEZJRUxETk8gc2F5cyB3aGljaCBmaWVsZC4g ICovCiAgCiAgc3RydWN0IHZhbHVlICoKQEAgLTQwMTksNyArNDAwMiw3IEBAIEluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgCQkgICAgICAgaW50IGZpZWxkbm8sIHN0cnVj dCB0eXBlICphcmdfdHlwZSkKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7Ci1AQCAtMzA1OCw3ICsz MDY1LDcgQEAgdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworQEAgLTMw NzIsNyArMzA3OSw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcK ICAgICAgICAvKiBUaGlzIGZpZWxkIGlzIGFjdHVhbGx5IGEgYmFzZSBzdWJvYmplY3QsIHNvIHBy ZXNlcnZlIHRoZQogIAkgZW50aXJlIG9iamVjdCdzIGNvbnRlbnRzIGZvciBsYXRlciByZWZlcmVu Y2VzIHRvIHZpcnR1YWwKICAJIGJhc2VzLCBldGMuICAqLwpAQCAtNDAyOCw3ICs0MDExLDcgQEAg SW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMKICAKICAgICAgICAvKiBMYXp5 IHJlZ2lzdGVyIHZhbHVlcyB3aXRoIG9mZnNldHMgYXJlIG5vdCBzdXBwb3J0ZWQuICAqLwogICAg ICAgIGlmIChWQUxVRV9MVkFMIChhcmcxKSA9PSBsdmFsX3JlZ2lzdGVyICYmIHZhbHVlX2xhenkg KGFyZzEpKQotQEAgLTMxNDQsNyArMzE1MSw3IEBAIHZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUg KmFyZzEsIGludCBmaWUKK0BAIC0zMTU5LDcgKzMxNjYsNyBAQCB2YWx1ZV9maWVsZCAoc3RydWN0 IHZhbHVlICphcmcxLCBpbnQgZmllCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9mbl9maWVsZCAo c3RydWN0IHZhbHVlICoqYXJnMXAsIHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCWludCBqLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwKQEAgLTQwMzcsNyArNDAyMCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi92YWx1ZS5jCiAgewogICAgc3RydWN0IHZhbHVlICp2OwogICAgc3RydWN0IHR5 cGUgKmZ0eXBlID0gVFlQRV9GTl9GSUVMRF9UWVBFIChmLCBqKTsKLUBAIC0zMjE0LDE0ICszMjIx LDE0IEBAIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKK0BAIC0zMjI5 LDE0ICszMjM2LDE0IEBAIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QK ICAKICBzdGF0aWMgTE9OR0VTVAogIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpm aWVsZF90eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQwNTQsNyArNDAzNyw3IEBA IEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgCiAgICAvKiBSZWFkIHRo ZSBtaW5pbXVtIG51bWJlciBvZiBieXRlcyByZXF1aXJlZDsgdGhlcmUgbWF5IG5vdCBiZQogICAg ICAgZW5vdWdoIGJ5dGVzIHRvIHJlYWQgYW4gZW50aXJlIFVMT05HRVNULiAgKi8KLUBAIC0zMjcw LDcgKzMyNzcsNyBAQCB1bnBhY2tfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAqZmllbGRfCitA QCAtMzI4NSw3ICszMjkyLDcgQEAgdW5wYWNrX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUgKmZp ZWxkXwogIAogIGludAogIHVucGFja192YWx1ZV9maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC00MDYzLDcgKzQwNDYsNyBAQCBJbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuYwogIAkJCSAgICBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCwgTE9OR0VTVCAqcmVzdWx0KQogIHsKICAgIGludCBiaXRwb3MgPSBUWVBFX0ZJ RUxEX0JJVFBPUyAodHlwZSwgZmllbGRubyk7Ci1AQCAtMzMxNCw3ICszMzIxLDcgQEAgdW5wYWNr X2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTMzMjksNyArMzMzNiw3IEBA IHVucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICB2b2lkCiAgdW5wYWNr X3ZhbHVlX2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlc3RfdmFsLAogIAkJICAgICAgIGludCBi aXRwb3MsIGludCBiaXRzaXplLApAQCAtNDA3Miw3ICs0MDU1LDcgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMKICAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCkKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcjsKLUBAIC0zMzUyLDcgKzMzNTks NyBAQCB1bnBhY2tfdmFsdWVfYml0ZmllbGQgKHN0cnVjdCB2YWx1ZSAqZGVzCitAQCAtMzM2Nyw3 ICszMzc0LDcgQEAgdW5wYWNrX3ZhbHVlX2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlcwogIHN0 cnVjdCB2YWx1ZSAqCiAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBp bnQgZmllbGRubywKICAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtNDA4MSw3 ICs0MDY0LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMKICB7CiAg ICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8pOwogICAgaW50 IGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8pOwotQEAgLTMzNzMs MTIgKzMzODAsMTIgQEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAor QEAgLTMzODgsMTIgKzMzOTUsMTIgQEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBl ICp0eXBlLAogIAogIHZvaWQKICBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBnZGJf Ynl0ZSAqYWRkciwKQEAgLTQwOTYsMTEgKzQwNzksMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL3ZhbHVlLmMKICAKICAgIC8qIE5vcm1hbGl6ZSBCSVRQT1MuICAqLwogICAgYWRk ciArPSBiaXRwb3MgLyA4OwotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmgK K0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvdmFsdWUuaAkyMDE1LTA3LTA5IDE4OjI0OjM5 LjAyNzM1NjM4NCArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmgJMjAx NS0wNy0wOSAxODoyNDo0Mi4yNjIzODM5NzkgKzAyMDAKLUBAIC0xMzEsOCArMTMxLDggQEAgZXh0 ZXJuIHZvaWQgc2V0X3ZhbHVlX3BhcmVudCAoc3RydWN0IHZhbAorLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTAzNTE5MDQgKzAx MDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAkyMDE1LTExLTAyIDIxOjIz OjEzLjI0MTM2NTAwNCArMDEwMAorQEAgLTEzNSw4ICsxMzUsOCBAQCBleHRlcm4gdm9pZCBzZXRf dmFsdWVfcGFyZW50IChzdHJ1Y3QgdmFsCiAgICAgd2l0aGluIHRoZSByZWdpc3RlcnMgc3RydWN0 dXJlLiAgTm90ZSBhbHNvIHRoZSBtZW1iZXIKICAgICBlbWJlZGRlZF9vZmZzZXQgYmVsb3cuICAq LwogIApAQCAtNDExMSw3ICs0MDk0LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L3ZhbHVlLmgKICAKICAvKiBUaGUgY29tbWVudCBmcm9tICJzdHJ1Y3QgdmFsdWUiIHJlYWRzOiBg YElzIGl0IG1vZGlmaWFibGU/ICBPbmx5CiAgICAgcmVsZXZhbnQgaWYgbHZhbCAhPSBub3RfbHZh bC4nJy4gIFNob3VsZG4ndCB0aGUgdmFsdWUgaW5zdGVhZCBiZQotQEAgLTIwMSwxMCArMjAxLDEw IEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfYWN0dWFsX3R5cGUgKHMKK0BAIC0yMDUsMTAg KzIwNSwxMCBAQCBleHRlcm4gc3RydWN0IHR5cGUgKnZhbHVlX2FjdHVhbF90eXBlIChzCiAgCQkJ CSAgICAgICBpbnQgcmVzb2x2ZV9zaW1wbGVfdHlwZXMsCiAgCQkJCSAgICAgICBpbnQgKnJlYWxf dHlwZV9mb3VuZCk7CiAgCkBAIC00MTI2LDcgKzQxMDksNyBAQCBJbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvdmFsdWUuaAogIAogIC8qIEZvciBsdmFsX2NvbXB1dGVkIHZhbHVlcywgdGhp cyBzdHJ1Y3R1cmUgaG9sZHMgZnVuY3Rpb25zIHVzZWQgdG8KICAgICByZXRyaWV2ZSBhbmQgc2V0 IHRoZSB2YWx1ZSAob3IgcG9ydGlvbnMgb2YgdGhlIHZhbHVlKS4KLUBAIC0yNDIsNyArMjQyLDcg QEAgc3RydWN0IGx2YWxfZnVuY3MKK0BAIC0yNDYsNyArMjQ2LDcgQEAgc3RydWN0IGx2YWxfZnVu Y3MKICAgIC8qIElmIG5vbi1OVUxMLCB0aGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIg dGhlIGluZGljYXRlZCBiaXRzCiAgICAgICBvZiBWQUxVRSBhcmUgYSBzeW50aGV0aWMgcG9pbnRl ci4gICovCiAgICBpbnQgKCpjaGVja19zeW50aGV0aWNfcG9pbnRlcikgKGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsdWUsCkBAIC00MTM1LDcgKzQxMTgsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvdmFsdWUuaAogIAogICAgLyogUmV0dXJuIGEgZHVwbGljYXRlIG9mIFZBTFVFJ3Mg Y2xvc3VyZSwgZm9yIHVzZSBpbiBhIG5ldyB2YWx1ZS4KICAgICAgIFRoaXMgbWF5IHNpbXBseSBy ZXR1cm4gdGhlIHNhbWUgY2xvc3VyZSwgaWYgVkFMVUUncyBpcwotQEAgLTI3OSw3ICsyNzksNyBA QCBleHRlcm4gc3RydWN0IHZhbHVlICphbGxvY2F0ZV9jb21wdXRlZF92CitAQCAtMjgzLDcgKzI4 Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX2NvbXB1dGVkX3YKICAgICBPdGhl cndpc2UsIHJldHVybiAxLiAgKi8KICAKICBleHRlcm4gaW50IHZhbHByaW50X2NoZWNrX3ZhbGlk aXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTQxNDQs NyArNDEyNyw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCQkJ CSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAq YWxsb2NhdGVfb3B0aW1pemVkX291dF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUpOwotQEAgLTM3 Myw3ICszNzMsOCBAQCBleHRlcm4gaW50IHZhbHVlX29wdGltaXplZF9vdXQgKHN0cnVjdCB2CitA QCAtMzc3LDcgKzM3Nyw4IEBAIGV4dGVybiBpbnQgdmFsdWVfb3B0aW1pemVkX291dCAoc3RydWN0 IHYKICAgICBvdGhlcndpc2UuICAqLwogIAogIGV4dGVybiBpbnQgdmFsdWVfYml0c19hbnlfb3B0 aW1pemVkX291dCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKQEAgLTQxNTQsNyArNDEzNyw3 IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCiAgLyogTGlrZSB2 YWx1ZV9vcHRpbWl6ZWRfb3V0LCBidXQgcmV0dXJuIHRydWUgaWZmIHRoZSB3aG9sZSB2YWx1ZSBp cwogICAgIG9wdGltaXplZCBvdXQuICAqLwotQEAgLTM4MywxMyArMzg0LDEzIEBAIGV4dGVybiBp bnQgdmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dAorQEAgLTM4NywxMyArMzg4LDEzIEBAIGV4 dGVybiBpbnQgdmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dAogICAgIExFTkdUSCBieXRlcyBh cyBvcHRpbWl6ZWQgb3V0LiAgKi8KICAKICBleHRlcm4gdm9pZCBtYXJrX3ZhbHVlX2J5dGVzX29w dGltaXplZF9vdXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsCkBAIC00MTcwLDcgKzQxNTMsNyBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuaAogIAogIC8qIFNldCBvciByZXR1 cm4gZmllbGQgaW5kaWNhdGluZyB3aGV0aGVyIGEgdmFyaWFibGUgaXMgaW5pdGlhbGl6ZWQgb3IK ICAgICBub3QsIGJhc2VkIG9uIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBzdXBwbGllZCBieSB0aGUg Y29tcGlsZXIuCi1AQCAtNDcyLDcgKzQ3Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmNvZXJj ZV9hcnJheSAoc3RydWMKK0BAIC00NzYsNyArNDc3LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAq Y29lcmNlX2FycmF5IChzdHJ1YwogICAgIGV4dGVuZGluZyBmb3IgTEVOR1RIIGJpdHMgYXJlIGEg c3ludGhldGljIHBvaW50ZXIuICAqLwogIAogIGV4dGVybiBpbnQgdmFsdWVfYml0c19zeW50aGV0 aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKQEAgLTQxNzksNyArNDE2Miw3 IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCiAgLyogR2l2ZW4g YSB2YWx1ZSwgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNvbnRlbnRzIGJ5dGVzIHN0YXJ0aW5nIGF0 CiAgICAgT0ZGU0VUIGFuZCBleHRlbmRpbmcgZm9yIExFTkdUSCBieXRlcyBhcmUgYXZhaWxhYmxl LiAgVGhpcyByZXR1cm5zCi1AQCAtNDgwLDcgKzQ4MSw3IEBAIGV4dGVybiBpbnQgdmFsdWVfYml0 c19zeW50aGV0aWNfcG9pbnRlcgorQEAgLTQ4NCw3ICs0ODUsNyBAQCBleHRlcm4gaW50IHZhbHVl X2JpdHNfc3ludGhldGljX3BvaW50ZXIKICAgICBieXRlIGlzIHVuYXZhaWxhYmxlLiAgKi8KICAK ICBleHRlcm4gaW50IHZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHVlICp2 YWx1ZSwKQEAgLTQxODgsNyArNDE3MSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi92YWx1ZS5oCiAgCiAgLyogR2l2ZW4gYSB2YWx1ZSwgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNv bnRlbnRzIGJpdHMgc3RhcnRpbmcgYXQKICAgICBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IgTEVO R1RIIGJpdHMgYXJlIGF2YWlsYWJsZS4gIFRoaXMgcmV0dXJucwotQEAgLTQ4OCw3ICs0ODksNyBA QCBleHRlcm4gaW50IHZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3QKK0BAIC00OTIsNyArNDkz LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNvbnN0CiAgICAgYml0IGlz IHVuYXZhaWxhYmxlLiAgKi8KICAKICBleHRlcm4gaW50IHZhbHVlX2JpdHNfYXZhaWxhYmxlIChj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtNDE5Nyw3ICs0MTgwLDcgQEAgSW5kZXg6IGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmgKICAKICAvKiBMaWtlIHZhbHVlX2J5dGVzX2F2 YWlsYWJsZSwgYnV0IHJldHVybiBmYWxzZSBpZiBhbnkgYnl0ZSBpbiB0aGUKICAgICB3aG9sZSBv YmplY3QgaXMgdW5hdmFpbGFibGUuICAqLwotQEAgLTUwMiw3ICs1MDMsNyBAQCBleHRlcm4gaW50 IHZhbHVlX2VudGlyZWx5X3VuYXZhaWxhYmxlIChzCitAQCAtNTA2LDcgKzUwNyw3IEBAIGV4dGVy biBpbnQgdmFsdWVfZW50aXJlbHlfdW5hdmFpbGFibGUgKHMKICAgICBMRU5HVEggYnl0ZXMgYXMg dW5hdmFpbGFibGUuICAqLwogIAogIGV4dGVybiB2b2lkIG1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFp bGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsCkBAIC00MjA2LDcgKzQxODksNyBAQCBJbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuaAogIAogIC8qIE1hcmsgVkFMVUUncyBjb250 ZW50IGJpdHMgc3RhcnRpbmcgYXQgT0ZGU0VUIGFuZCBleHRlbmRpbmcgZm9yCiAgICAgTEVOR1RI IGJpdHMgYXMgdW5hdmFpbGFibGUuICAqLwotQEAgLTU2Myw5ICs1NjQsOSBAQCBleHRlcm4gdm9p ZCBtYXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFibGUKK0BAIC01NjcsOSArNTY4LDkgQEAgZXh0ZXJu IHZvaWQgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxhYmxlCiAgICAgYWZ0ZXIgdGhlIGluZmVyaW9y IGlzIGdvbmUsIGl0IHdvcmtzIHdpdGggY29uc3QgdmFsdWVzLiAgVGhlcmVmb3JlLAogICAgIHRo aXMgcm91dGluZSBtdXN0IG5vdCBiZSBjYWxsZWQgd2l0aCBsYXp5IHZhbHVlcy4gICovCiAgCkBA IC00MjE3LDkgKzQyMDAsOSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUu aAogKwkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgTE9OR0VTVCBvZmZzZXQyLAog KwkJCSAgICAgIExPTkdFU1QgbGVuZ3RoKTsKICAKLSAvKiBSZWFkIExFTkdUSCBieXRlcyBvZiBt ZW1vcnkgc3RhcnRpbmcgYXQgTUVNQUREUiBpbnRvIEJVRkZFUiwgd2hpY2gKLSAgICBpcyAob3Ig d2lsbCBiZSBjb3BpZWQgdG8pIFZBTCdzIGNvbnRlbnRzIGJ1ZmZlciBvZmZzZXQgYnkKLUBAIC01 NzQsNyArNTc1LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydQor IC8qIFJlYWQgTEVOR1RIIGFkZHJlc3NhYmxlIG1lbW9yeSB1bml0cyBzdGFydGluZyBhdCBNRU1B RERSIGludG8gQlVGRkVSLAorICAgIHdoaWNoIGlzIChvciB3aWxsIGJlIGNvcGllZCB0bykgVkFM J3MgY29udGVudHMgYnVmZmVyIG9mZnNldCBieQorQEAgLTU3OCw3ICs1NzksNyBAQCBleHRlcm4g aW50IHZhbHVlX2NvbnRlbnRzX2VxIChjb25zdCBzdHJ1CiAgICAgbWVtb3J5IGlzIGxpa2V3aXNl IHVuYXZhaWxhYmxlLiAgU1RBQ0sgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIG1lbW9yeQogICAgIGlz IGtub3duIHRvIGJlIHN0YWNrIG1lbW9yeS4gICovCiAgCkBAIC00MjI4LDcgKzQyMTEsNyBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuaAogIAkJCSAgICAgICBpbnQgc3Rh Y2ssIENPUkVfQUREUiBtZW1hZGRyLAogIAkJCSAgICAgICBnZGJfYnl0ZSAqYnVmZmVyLCBzaXpl X3QgbGVuZ3RoKTsKICAKLUBAIC02MTAsMTcgKzYxMSwxOCBAQCBleHRlcm4gTE9OR0VTVCB1bnBh Y2tfZmllbGRfYXNfbG9uZyAoc3RyCitAQCAtNjE0LDE3ICs2MTUsMTggQEAgZXh0ZXJuIExPTkdF U1QgdW5wYWNrX2ZpZWxkX2FzX2xvbmcgKHN0cgogIAkJCQkgICAgIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLAogIAkJCQkgICAgIGludCBmaWVsZG5vKTsKICBleHRlcm4gaW50IHVucGFja192YWx1 ZV9maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCkBAIC00MjUwLDcgKzQyMzMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv dmFsdWUuaAogIAkJCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwogIAogIGV4dGVybiB2 b2lkIHBhY2tfbG9uZyAoZ2RiX2J5dGUgKmJ1Ziwgc3RydWN0IHR5cGUgKnR5cGUsIExPTkdFU1Qg bnVtKTsKLUBAIC02NzcsMTIgKzY3OSwxMiBAQCBleHRlcm4gc3RydWN0IHZhbHVlICpkZWZhdWx0 X3JlYWRfdmFyX3ZhCitAQCAtNjgzLDEyICs2ODUsMTIgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAq ZGVmYXVsdF9yZWFkX3Zhcl92YQogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3Zh bHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSk7CiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVf dmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpOwpAQCAtNDI2OSw3ICs0MjUyLDcgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmgKICAKICBleHRlcm4gc3RydWN0IHZh bHVlICphbGxvY2F0ZV9yZXBlYXRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgY291bnQp OwogIAotQEAgLTc2MCwxNiArNzYyLDE2IEBAIGV4dGVybiBpbnQgZmluZF9vdmVybG9hZF9tYXRj aCAoc3RydWN0IHYKK0BAIC03NjYsMTYgKzc2OCwxNiBAQCBleHRlcm4gaW50IGZpbmRfb3Zlcmxv YWRfbWF0Y2ggKHN0cnVjdCB2CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfZmllbGQg KHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IGZpZWxkbm8pOwogIApAQCAtNDI4OSw3ICs0MjcyLDcg QEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmgKICAKICBleHRlcm4gc3Ry dWN0IHZhbHVlICp2YWx1ZV9jYXN0X3BvaW50ZXJzIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdmFs dWUgKiwgaW50KTsKICAKLUBAIC04NjQsNyArODY2LDcgQEAgZXh0ZXJuIHZvaWQgc2V0X2ludGVy bmFsdmFyX3N0cmluZyAoc3RydQorQEAgLTg3MCw3ICs4NzIsNyBAQCBleHRlcm4gdm9pZCBzZXRf aW50ZXJuYWx2YXJfc3RyaW5nIChzdHJ1CiAgZXh0ZXJuIHZvaWQgY2xlYXJfaW50ZXJuYWx2YXIg KHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyKTsKICAKICBleHRlcm4gdm9pZCBzZXRfaW50ZXJuYWx2 YXJfY29tcG9uZW50IChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwKQEAgLTQyOTgsNyArNDI4MSw3 IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCQkJCSAgICAgICBp bnQgYml0cG9zLCBpbnQgYml0c2l6ZSwKICAJCQkJICAgICAgIHN0cnVjdCB2YWx1ZSAqbmV3dmFs dWUpOwogIAotQEAgLTk0NSw3ICs5NDcsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV94 X3Vub3AgKHN0cnVjCitAQCAtOTUxLDcgKzk1Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZh bHVlX3hfdW5vcCAoc3RydWMKICAJCQkJICAgZW51bSBub3NpZGUgbm9zaWRlKTsKICAKICBleHRl cm4gc3RydWN0IHZhbHVlICp2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsIHN0 cnVjdCBmbl9maWVsZCAqZiwKQEAgLTQzMDcsNyArNDI5MCw3IEBAIEluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCiAgZXh0ZXJuIGludCBiaW5vcF90eXBlc191c2VyX2Rl ZmluZWRfcCAoZW51bSBleHBfb3Bjb2RlIG9wLAogIAkJCQkgICAgICAgc3RydWN0IHR5cGUgKnR5 cGUxLAotQEAgLTk3Myw3ICs5NzUsOCBAQCBleHRlcm4gdm9pZCByZWxlYXNlX3ZhbHVlX29yX2lu Y3JlZiAoc3RyCitAQCAtOTc5LDcgKzk4MSw4IEBAIGV4dGVybiB2b2lkIHJlbGVhc2VfdmFsdWVf b3JfaW5jcmVmIChzdHIKICBleHRlcm4gaW50IHJlY29yZF9sYXRlc3RfdmFsdWUgKHN0cnVjdCB2 YWx1ZSAqdmFsKTsKICAKICBleHRlcm4gdm9pZCBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0 eXBlLCBnZGJfYnl0ZSAqYWRkciwKQEAgLTQzMTcsNyArNDMwMCw3IEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCiAgZXh0ZXJuIHZvaWQgdHlwZV9wcmludCAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKnZhcnN0cmluZywKICAJCQlzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBpbnQgc2hvdyk7Ci1AQCAtMTAwMyw3ICsxMDA2LDcgQEAgZXh0ZXJuIHZvaWQg dmFsdWVfcHJpbnRfYXJyYXlfZWxlbWVudHMgKAorQEAgLTEwMDksNyArMTAxMiw3IEBAIGV4dGVy biB2b2lkIHZhbHVlX3ByaW50X2FycmF5X2VsZW1lbnRzICgKICBleHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV9yZWxlYXNlX3RvX21hcmsgKHN0cnVjdCB2YWx1ZSAqbWFyayk7CiAgCiAgZXh0ZXJu IHZvaWQgdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCkBAIC00MzI2LDcgKzQzMDksNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv dmFsdWUuaAogIAkJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAog IAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgICAgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTEwNTYsMTAgKzEwNTksMTEgQEAg ZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfbGl0ZXJhbF9jb21wbAorQEAgLTEwNjIsMTAgKzEw NjUsMTEgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfbGl0ZXJhbF9jb21wbAogIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKmZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKGNvbnN0IGNoYXIgKiwK ICAJCQkJCQlzdHJ1Y3Qgb2JqZmlsZSAqKik7CiAgCkBAIC00MzQwLDEwICs0MzIzLDEwIEBAIElu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCiAgLyogVXNlciBmdW5jdGlv biBoYW5kbGVyLiAgKi8KICAKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9zMzkwLWxp bnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3MzOTAtbGludXgtbmF0 LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3MzOTAtbGlu dXgtbmF0LmMJMjAxNS0wNy0wOSAxODoyNDozOS4wMjgzNTYzOTMgKzAyMDAKLSsrKyBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjYy MzgzOTc5ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvczM5MC1saW51 eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1MDM1MTkwNCArMDEwMAorKysrIGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQy MzY1MDEwICswMTAwCiBAQCAtNjEyLDcgKzYxMiw3IEBAIHMzOTBfY2FuX3VzZV9od19icmVha3Bv aW50IChzdHJ1Y3QgdGFyZ2UKICAKICBzdGF0aWMgaW50CkBAIC00MzUzLDExICs0MzM2LDExIEBA IEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9zMzkwLWxpbnV4LW5hdC5jCiAgewogICAg cmV0dXJuIDE7CiAgfQotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2V4dGVuc2lvbi1w cml2LmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXh0ZW5zaW9uLXByaXYuaAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZXh0ZW5zaW9uLXBy aXYuaAkyMDE1LTA3LTA5IDE4OjI0OjM5LjAyODM1NjM5MyArMDIwMAotKysrIGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL2V4dGVuc2lvbi1wcml2LmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNjIzODM5 NzkgKzAyMDAKLUBAIC0xODAsNyArMTgwLDcgQEAgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9v cHMKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9leHRlbnNpb24tcHJpdi5oCTIw MTUtMTEtMDIgMjE6MjM6MTEuMjUwMzUxOTA0ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2V4dGVuc2lvbi1wcml2LmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDIzNjUwMTAgKzAx MDAKK0BAIC0xODEsNyArMTgxLDcgQEAgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9vcHMKICAg IGVudW0gZXh0X2xhbmdfcmMgKCphcHBseV92YWxfcHJldHR5X3ByaW50ZXIpCiAgICAgIChjb25z dCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKiwKICAgICAgIHN0cnVjdCB0eXBlICp0 eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQzNjYsMTAgKzQzNDksMTAgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2V4dGVuc2lvbi1wcml2LmgKICAgICAgIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogICAgICAgY29uc3Qgc3RydWN0IHZhbHVl ICp2YWwsIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAogICAgICAg Y29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKTsKLUluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKK0luZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAx NS0wNy0wOSAxODoyNDozOS4wMjgzNTYzOTMgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNjMzODM5 ODggKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTAzNTE5MDQgKzAxMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjQyMzY1MDEwICswMTAwCiBAQCAtMzE2LDcgKzMxNiw3IEBAIGV4dGVybiBpbnQg Z2RicHlfYXV0b19sb2FkX2VuYWJsZWQgKGNvbnMKICBleHRlcm4gZW51bSBleHRfbGFuZ19yYyBn ZGJweV9hcHBseV92YWxfcHJldHR5X3ByaW50ZXIKICAgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9u X2xhbmd1YWdlX2RlZm4gKiwKQEAgLTQzNzksMTEgKzQzNjIsMTEgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAogICAgIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAog ICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotSW5kZXg6IGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYworSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE1LTA3LTA5IDE4 OjI0OjM5LjAyOTM1NjQwMSArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3Rhcmdl dC1kZWxlZ2F0ZXMuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjI2NDM4Mzk5NiArMDIwMAotQEAgLTc0 MiwxNCArNzQyLDE0IEBAIGRlYnVnX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnUK Ky0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAx NS0xMS0wMiAyMToyMzoxMS4yNTIzNTE5MTcgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQzMzY1MDE3ICsw MTAwCitAQCAtNzM2LDE0ICs3MzYsMTQgQEAgZGVidWdfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9y YW5nZSAoc3RydQogIH0KICAKICBzdGF0aWMgaW50CkBAIC00NDAwLDcgKzQzODMsNyBAQCBJbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgewogICAgaW50 IHJlc3VsdDsKICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIi0+ICVzLT50b19y ZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKC4uLilcbiIsIGRlYnVnX3RhcmdldC50b19zaG9y dG5hbWUpOwotQEAgLTc1OSw3ICs3NTksNyBAQCBkZWJ1Z19yZWdpb25fb2tfZm9yX2h3X3dhdGNo cG9pbnQgKHN0cnVjCitAQCAtNzUzLDcgKzc1Myw3IEBAIGRlYnVnX3JlZ2lvbl9va19mb3JfaHdf d2F0Y2hwb2ludCAoc3RydWMKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRsb2cp OwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X0NPUkVfQUREUiAoYXJnMSk7CiAgICBmcHV0c191bmZp bHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKQEAgLTQ0MDksMjMgKzQzOTIsMjMgQEAgSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogICAgZnB1dHNfdW5m aWx0ZXJlZCAoIikgPSAiLCBnZGJfc3RkbG9nKTsKICAgIHRhcmdldF9kZWJ1Z19wcmludF9pbnQg KHJlc3VsdCk7CiAgICBmcHV0c191bmZpbHRlcmVkICgiXG4iLCBnZGJfc3RkbG9nKTsKLUluZGV4 OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCitJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNS0w Ny0wOSAxODoyNDozOS4wMzAzNTY0MTAgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjY0MzgzOTk2ICswMjAw Ci1AQCAtMTM4Niw3ICsxMzg2LDcgQEAgYWFyY2g2NF9saW51eF9yZW1vdmVfd2F0Y2hwb2ludCAo c3RydWN0CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYWFyY2g2NC1saW51eC1u YXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1MjM1MTkxNyArMDEwMAorKysrIGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQz MzY1MDE3ICswMTAwCitAQCAtNzM2LDcgKzczNiw3IEBAIGFhcmNoNjRfbGludXhfcmVtb3ZlX3dh dGNocG9pbnQgKHN0cnVjdAogIAogIHN0YXRpYyBpbnQKICBhYXJjaDY0X2xpbnV4X3JlZ2lvbl9v a19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCiAtCQkJCQkgICBD T1JFX0FERFIgYWRkciwgaW50IGxlbikKICsJCQkJCSAgIENPUkVfQUREUiBhZGRyLCBMT05HRVNU IGxlbikKICB7Ci0gICBDT1JFX0FERFIgYWxpZ25lZF9hZGRyOwotIAotSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL25hdC94ODYtZHJlZ3MuYworICAgcmV0dXJuIGFhcmNoNjRfbGludXhf cmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChhZGRyLCBsZW4pOworIH0KK0luZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OS45MC4yMDE1MDcwOS5vcmlnL2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNS0wNy0wOSAxODoyNDoz OS4wMzAzNTY0MTAgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9uYXQveDg2LWRy ZWdzLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNjQzODM5OTYgKzAyMDAKKy0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4y NTIzNTE5MTcgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVn cy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQ0MzY1MDI0ICswMTAwCiBAQCAtMzg0LDcgKzM4NCw3 IEBAIHg4Nl9yZW1vdmVfYWxpZ25lZF93YXRjaHBvaW50IChzdHJ1Y3QgeDgKICAKICBzdGF0aWMg aW50CkBAIC00NDQ0LDEwICs0NDI3LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9uYXQveDg2LWRyZWdzLmMKICB7CiAgICBpbnQgbnJlZ3M7CiAgCi1JbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCitJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3Vw cG9ydC5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDMwMzU2NDEwICswMjAwCi0rKysgZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMDctMDkgMTg6 MjQ6NDIuMjY1Mzg0MDA1ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv Y29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUzMzUxOTIz ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1 cHBvcnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEwMAogQEAgLTI5OSwxMSAr Mjk5LDExIEBAIGdlbmVyYXRlX3JlZ2lzdGVyX3N0cnVjdCAoc3RydWN0IHVpX2ZpbGUKICAKICAJ ICAgICAgZGVmYXVsdDoKQEAgLTQ0NjIsMTAgKzQ0NDUsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwogIAkgICAgICB9CiAgCSAg ICBmcHV0c191bmZpbHRlcmVkICgiO1xuIiwgc3RyZWFtKTsKICAKLUluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi9uYXQveDg2LWRyZWdzLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvbmF0L3g4Ni1kcmVncy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcw OS5vcmlnL2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0wNy0wOSAxODoyNDozOS4wMzAzNTY0MTAg KzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0w Ny0wOSAxODoyNDo0Mi4yNjUzODQwMDUgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTMzNTE5MjMgKzAx MDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjQ0MzY1MDI0ICswMTAwCiBAQCAtMTE2LDcgKzExNiw3IEBAIGV4dGVybiBp bnQgeDg2X2RyX3JlbW92ZV93YXRjaHBvaW50IChzdHIKICAvKiBSZXR1cm4gbm9uLXplcm8gaWYg d2UgY2FuIHdhdGNoIGEgbWVtb3J5IHJlZ2lvbiB0aGF0IHN0YXJ0cyBhdAogICAgIGFkZHJlc3Mg QUREUiBhbmQgd2hvc2UgbGVuZ3RoIGlzIExFTiBieXRlcy4gICovCkBAIC00NDc1LDExICs0NDU4 LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9uYXQveDg2LWRyZWdzLmgKICAK ICAvKiBJZiB0aGUgaW5mZXJpb3IgaGFzIHNvbWUgYnJlYWsvd2F0Y2hwb2ludCB0aGF0IHRyaWdn ZXJlZCwgc2V0IHRoZQogICAgIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoYXQgYnJlYWsvd2F0 Y2hwb2ludCBhbmQgcmV0dXJuIHRydWUuCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv eDg2LW5hdC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3g4Ni1uYXQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIveDg2LW5hdC5jCTIwMTUt MDctMDkgMTg6MjQ6MzkuMDMxMzU2NDE4ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIveDg2LW5hdC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjY1Mzg0MDA1ICswMjAwCi1AQCAtMTc4 LDcgKzE3OCw3IEBAIHg4Nl9yZW1vdmVfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMKKy0t LSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi94ODYtbmF0LmMJMjAxNS0xMS0wMiAyMToy MzoxMS4yNTMzNTE5MjMgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIveDg2LW5h dC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQ0MzY1MDI0ICswMTAwCitAQCAtMTc0LDcgKzE3NCw3 IEBAIHg4Nl9yZW1vdmVfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMKICAKICBzdGF0aWMg aW50CiAgeDg2X3JlZ2lvbl9va19mb3Jfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNl bGYsCkBAIC00NDg4LDExICs0NDcxLDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi94ODYtbmF0LmMKICB7CiAgICBzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUKICAg ICAgPSB4ODZfZGVidWdfcmVnX3N0YXRlIChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsK LUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9ndWlsZS9ndWlsZS1pbnRlcm5hbC5oCitJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2d1aWxlL2d1aWxlLWlu dGVybmFsLmgJMjAxNS0wNy0wOSAxODoyNDozOS4wMzEzNTY0MTggKzAyMDAKLSsrKyBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9ndWlsZS9ndWlsZS1pbnRlcm5hbC5oCTIwMTUtMDctMDkgMTg6MjQ6 NDIuMjY1Mzg0MDA1ICswMjAwCi1AQCAtNTYyLDcgKzU2Miw3IEBAIGV4dGVybiB2b2lkIGdkYnNj bV9wcmVzZXJ2ZV92YWx1ZXMKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9ndWls ZS9ndWlsZS1pbnRlcm5hbC5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUzMzUxOTIzICswMTAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgJMjAxNS0x MS0wMiAyMToyMzoxMy4yNDQzNjUwMjQgKzAxMDAKK0BAIC02MDYsNyArNjA2LDcgQEAgZXh0ZXJu IHZvaWQgZ2Ric2NtX3ByZXNlcnZlX3ZhbHVlcwogIGV4dGVybiBlbnVtIGV4dF9sYW5nX3JjIGdk YnNjbV9hcHBseV92YWxfcHJldHR5X3ByaW50ZXIKICAgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9u X2xhbmd1YWdlX2RlZm4gKiwKICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCkBAIC00NTAxLDEwICs0NDg0LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9ndWlsZS9ndWlsZS1pbnRlcm5hbC5oCiAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgaW50IHJlY3Vyc2UsCiAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgICAgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1JbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvZ3VpbGUvc2NtLXByZXR0eS1wcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2d1aWxlL3NjbS1wcmV0dHktcHJpbnQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZ3VpbGUvc2NtLXByZXR0eS1wcmludC5jCTIwMTUt MDctMDkgMTg6MjQ6MzkuMDMxMzU2NDE4ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvZ3VpbGUvc2NtLXByZXR0eS1wcmludC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjY2Mzg0MDEz ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ3VpbGUvc2NtLXByZXR0 eS1wcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjU0MzUxOTMwICswMTAwCisrKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2d1aWxlL3NjbS1wcmV0dHktcHJpbnQuYwkyMDE1LTExLTAyIDIx OjIzOjEzLjI0NTM2NTAzMCArMDEwMAogQEAgLTk1OCw3ICs5NTgsNyBAQCBwcHNjbV9wcmludF9j aGlsZHJlbiAoU0NNIHByaW50ZXIsIGVudW0KICBlbnVtIGV4dF9sYW5nX3JjCiAgZ2Ric2NtX2Fw cGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9k ZWZuICpleHRsYW5nLAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMW9mMjUu cGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjFvZjI1LnBhdGNoCmluZGV4IDljYTAwMTAu LjcxYWYzY2YgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMW9mMjUucGF0Y2gK KysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5wYXRjaApAQCAtNTIsMTEgKzUyLDEx IEBAIENvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiA3Yml0CiBDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3Mt ZW5zdXJlLXNpemVfdC5wYXRjaAogCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWxw aGEtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2FscGhhLXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvYWxwaGEtdGRlcC5j CTIwMTQtMDYtMTMgMjI6MTQ6NDkuNzI1ODQ2MzgzICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvYWxwaGEtdGRlcC5jCTIwMTQtMDYtMTMgMjI6MTQ6NTMuMTYzODUwMDgxICswMjAw Ci1AQCAtNDE0LDYgKzQxNCwxMyBAQCBhbHBoYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJh cmNoICpnCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvYWxwaGEtdGRlcC5jCTIw MTUtMTAtMjQgMjM6MDM6NTAuNjE0ODk4MDI1ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjIvZ2RiL2FscGhhLXRkZXAuYwkyMDE1LTEwLTI0IDIzOjAzOjUyLjA5OTkwNzc0OSArMDIwMAor QEAgLTQxMyw2ICs0MTMsMTMgQEAgYWxwaGFfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqZwogICAgICBhY2N1bXVsYXRlX3NpemUgPSAwOwogICAgZWxzZQogICAgICBhY2N1bXVsYXRl X3NpemUgLT0gc2l6ZW9mKGFyZ19yZWdfYnVmZmVyKTsKQEAgLTcwLDI0ICs3MCwyNCBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWxwaGEtdGRlcC5jCiAgICBzcCAtPSBhY2N1bXVs YXRlX3NpemU7CiAgCiAgICAvKiBLZWVwIHNwIGFsaWduZWQgdG8gYSBtdWx0aXBsZSBvZiAxNiBh cyB0aGUgQUJJIHJlcXVpcmVzLiAgKi8KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9j cC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2NwLXZhbHByaW50 LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2NwLXZhbHBy aW50LmMJMjAxNC0wNi0xMyAyMjoxNDo0OS43MjU4NDYzODMgKzAyMDAKLSsrKyBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9jcC12YWxwcmludC5jCTIwMTQtMDYtMTMgMjI6MTQ6NTMuMTY0ODUwMDgx ICswMjAwCi1AQCAtNTM4LDYgKzUzOCw4IEBAIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWMKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9jcC12YWxwcmlu dC5jCTIwMTUtMTAtMjQgMjM6MDM6NTIuMTAwOTA3NzU2ICswMjAwCisrKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjIvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0xMC0yNCAyMzowNjoyMC40OTY4Nzk0MzMg KzAyMDAKK0BAIC01MzYsNiArNTM2LDggQEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0 eXBlLCBzdHJ1YwogIAkJICBnZGJfYnl0ZSAqYnVmOwogIAkJICBzdHJ1Y3QgY2xlYW51cCAqYmFj a190bzsKICAKICsJCSAgdWxvbmdlc3RfZml0c19ob3N0X29yX2Vycm9yIChUWVBFX0xFTkdUSCAo YmFzZWNsYXNzKSk7CiArCi0gCQkgIGJ1ZiA9IHhtYWxsb2MgKFRZUEVfTEVOR1RIIChiYXNlY2xh c3MpKTsKKyAJCSAgYnVmID0gKGdkYl9ieXRlICopIHhtYWxsb2MgKFRZUEVfTEVOR1RIIChiYXNl Y2xhc3MpKTsKICAJCSAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGJ1Zik7CiAgCi1J bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9jLmMKK0luZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyMi9nZGIvZHdhcmYybG9jLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43Ljkw LjIwMTQwNjEzLm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTQtMDYtMTMgMjI6MTQ6NDkuNzI2ODQ2 Mzg0ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9jLmMJMjAxNC0w Ni0xMyAyMjoxNDo1My4xNjY4NTAwODQgKzAyMDAKLUBAIC0xNjY2LDYgKzE2NjYsOCBAQCByZWFk X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIy Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMTAtMjQgMjM6MDM6NTAuNjE2ODk4MDM5ICswMjAw CisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMTAtMjQgMjM6 MDM6NTIuMTAxOTA3NzYyICswMjAwCitAQCAtMTc0NCw2ICsxNzQ0LDggQEAgcmVhZF9waWVjZWRf dmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKICAKICAgICAgICB0aGlzX3NpemUgPSAodGhpc19zaXpl X2JpdHMgKyBzb3VyY2Vfb2Zmc2V0X2JpdHMgJSA4ICsgNykgLyA4OwogICAgICAgIHNvdXJjZV9v ZmZzZXQgPSBzb3VyY2Vfb2Zmc2V0X2JpdHMgLyA4OwpAQCAtOTYsNyArOTYsNyBAQCBJbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9jLmMKICAgICAgICBpZiAoYnVmZmVyX3Np emUgPCB0aGlzX3NpemUpCiAgCXsKICAJICBidWZmZXJfc2l6ZSA9IHRoaXNfc2l6ZTsKLUBAIC0x ODU3LDYgKzE4NTksNyBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0 CitAQCAtMTkzNSw2ICsxOTM3LDcgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUg KnRvLCBzdAogIAl9CiAgICAgICAgZWxzZQogIAl7CkBAIC0xMDQsMzUgKzEwNCwzNSBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9jLmMKICAJICBpZiAoYnVmZmVyX3Np emUgPCB0aGlzX3NpemUpCiAgCSAgICB7CiAgCSAgICAgIGJ1ZmZlcl9zaXplID0gdGhpc19zaXpl OwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2ZpbmRjbWQuYworSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDIyL2dkYi9maW5kY21kLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43Ljkw LjIwMTQwNjEzLm9yaWcvZ2RiL2ZpbmRjbWQuYwkyMDE0LTA2LTEzIDIyOjE0OjQ5LjcyNjg0NjM4 NCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2ZpbmRjbWQuYwkyMDE0LTA2LTEz IDIyOjE0OjUzLjE2Njg1MDA4NCArMDIwMAotQEAgLTE4NSw2ICsxODUsNyBAQCBwYXJzZV9maW5k X2FyZ3MgKGNoYXIgKmFyZ3MsIFVMT05HRVNUICptCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIu b3JpZy9nZGIvZmluZGNtZC5jCTIwMTUtMTAtMjQgMjM6MDM6NTIuMTAxOTA3NzYyICswMjAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2ZpbmRjbWQuYwkyMDE1LTEwLTI0IDIzOjA2OjU3 LjIwODExOTgxMyArMDIwMAorQEAgLTE4NCw2ICsxODQsNyBAQCBwYXJzZV9maW5kX2FyZ3MgKGNo YXIgKmFyZ3MsIFVMT05HRVNUICptCiAgCSAgc2l6ZV90IGN1cnJlbnRfb2Zmc2V0ID0gcGF0dGVy bl9idWZfZW5kIC0gcGF0dGVybl9idWY7CiAgCiAgCSAgcGF0dGVybl9idWZfc2l6ZSA9IHBhdHRl cm5fYnVmX3NpemVfbmVlZCAqIDI7CiArCSAgdWxvbmdlc3RfZml0c19ob3N0X29yX2Vycm9yIChw YXR0ZXJuX2J1Zl9zaXplKTsKLSAJICBwYXR0ZXJuX2J1ZiA9IHhyZWFsbG9jIChwYXR0ZXJuX2J1 ZiwgcGF0dGVybl9idWZfc2l6ZSk7CisgCSAgcGF0dGVybl9idWYgPSAoZ2RiX2J5dGUgKikgeHJl YWxsb2MgKHBhdHRlcm5fYnVmLCBwYXR0ZXJuX2J1Zl9zaXplKTsKICAJICBwYXR0ZXJuX2J1Zl9l bmQgPSBwYXR0ZXJuX2J1ZiArIGN1cnJlbnRfb2Zmc2V0OwogIAl9Ci1JbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvcC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIv Z2RiL3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3Jp Zy9nZGIvcC12YWxwcmludC5jCTIwMTQtMDYtMTMgMjI6MTQ6NDkuNzI4ODQ2Mzg3ICswMjAwCi0r KysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcC12YWxwcmludC5jCTIwMTQtMDYtMTMgMjI6MTQ6 NTMuMTY2ODUwMDg0ICswMjAwCi1AQCAtNzcyLDYgKzc3Miw3IEBAIHBhc2NhbF9vYmplY3RfcHJp bnRfdmFsdWUgKHN0cnVjdCB0eXBlICoKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dk Yi9wLXZhbHByaW50LmMJMjAxNS0xMC0yNCAyMzowMzo1Mi4xMDE5MDc3NjIgKzAyMDAKKysrKyBn ZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvcC12YWxwcmludC5jCTIwMTUtMTAtMjQgMjM6MDc6MTgu NDU3MjU4OTUwICswMjAwCitAQCAtNzY4LDYgKzc2OCw3IEBAIHBhc2NhbF9vYmplY3RfcHJpbnRf dmFsdWUgKHN0cnVjdCB0eXBlICoKICAJICAgICAgZ2RiX2J5dGUgKmJ1ZjsKICAJICAgICAgc3Ry dWN0IGNsZWFudXAgKmJhY2tfdG87CiAgCiArCSAgICAgIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9l cnJvciAoVFlQRV9MRU5HVEggKGJhc2VjbGFzcykpOwotIAkgICAgICBidWYgPSB4bWFsbG9jIChU WVBFX0xFTkdUSCAoYmFzZWNsYXNzKSk7CisgCSAgICAgIGJ1ZiA9IChnZGJfYnl0ZSAqKSB4bWFs bG9jIChUWVBFX0xFTkdUSCAoYmFzZWNsYXNzKSk7CiAgCSAgICAgIGJhY2tfdG8gPSBtYWtlX2Ns ZWFudXAgKHhmcmVlLCBidWYpOwogIAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3V0 aWxzLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdXRpbHMuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdXRpbHMuYwkyMDE0LTA2LTEzIDIy OjE0OjUzLjE2Njg1MDA4NCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3V0aWxz LmMJMjAxNC0wNi0xMyAyMjoxNToxNi44Mzk4NzUzNDEgKzAyMDAKLUBAIC0yODM4LDYgKzI4Mzgs MTggQEAgc3RyaW5nX3RvX2NvcmVfYWRkciAoY29uc3QgY2hhciAqbXlfc3RyaQorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3V0aWxzLmMJMjAxNS0xMC0yNCAyMzowMzo1MC42MTc4 OTgwNDUgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdXRpbHMuYwkyMDE1LTEw LTI0IDIzOjAzOjUyLjEwMjkwNzc2OSArMDIwMAorQEAgLTI4MzUsNiArMjgzNSwxOCBAQCBzdHJp bmdfdG9fY29yZV9hZGRyIChjb25zdCBjaGFyICpteV9zdHJpCiAgICByZXR1cm4gYWRkcjsKICB9 CiAgCkBAIC0xNTEsMzEgKzE1MSwzMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv dXRpbHMuYwogIGNoYXIgKgogIGdkYl9yZWFscGF0aCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCiAg ewotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCitJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjIvZ2RiL3ZhbG9wcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4y MDE0MDYxMy5vcmlnL2dkYi92YWxvcHMuYwkyMDE0LTA2LTEzIDIyOjE0OjQ5LjczMDg0NjM4OSAr MDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCTIwMTQtMDYtMTMgMjI6 MTQ6NTMuMTY5ODUwMDg4ICswMjAwCi1AQCAtMjA3NCw2ICsyMDc0LDcgQEAgc2VhcmNoX3N0cnVj dF9tZXRob2QgKGNvbnN0IGNoYXIgKm5hbWUsCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3Jp Zy9nZGIvdmFsb3BzLmMJMjAxNS0xMC0yNCAyMzowMzo1Mi4xMDM5MDc3NzUgKzAyMDAKKysrKyBn ZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmFsb3BzLmMJMjAxNS0xMC0yNCAyMzowODoyNy4wNTY3 MDk1OTkgKzAyMDAKK0BAIC0yMDU3LDYgKzIwNTcsNyBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAo Y29uc3QgY2hhciAqbmFtZSwKICAJICAgICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CiAgCSAg ICAgIENPUkVfQUREUiBhZGRyZXNzOwogIAogKwkgICAgICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3Jf ZXJyb3IgKFRZUEVfTEVOR1RIIChiYXNlY2xhc3MpKTsKLSAJICAgICAgdG1wID0geG1hbGxvYyAo VFlQRV9MRU5HVEggKGJhc2VjbGFzcykpOworIAkgICAgICB0bXAgPSAoZ2RiX2J5dGUgKikgeG1h bGxvYyAoVFlQRV9MRU5HVEggKGJhc2VjbGFzcykpOwogIAkgICAgICBiYWNrX3RvID0gbWFrZV9j bGVhbnVwICh4ZnJlZSwgdG1wKTsKICAJICAgICAgYWRkcmVzcyA9IHZhbHVlX2FkZHJlc3MgKCph cmcxcCk7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYworSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDIyL2dkYi92YWx1ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45 MC4yMDE0MDYxMy5vcmlnL2dkYi92YWx1ZS5jCTIwMTQtMDYtMTMgMjI6MTQ6NDkuNzMyODQ2Mzkx ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwkyMDE0LTA2LTEzIDIy OjE0OjUzLjE2OTg1MDA4OCArMDIwMAotQEAgLTgyNCw2ICs4MjQsNyBAQCBhbGxvY2F0ZV92YWx1 ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmln L2dkYi92YWx1ZS5jCTIwMTUtMTAtMjQgMjM6MDM6NTAuNjE5ODk4MDU4ICswMjAwCisrKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3ZhbHVlLmMJMjAxNS0xMC0yNCAyMzowODowMC4wNDk1MzEy OTEgKzAyMDAKK0BAIC05MzQsNiArOTM0LDcgQEAgYWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0 IHR5cGUgKnR5cGUpCiAgICAgICBkZXNjcmlwdGlvbiBjb3JyZWN0bHkuICAqLwogICAgY2hlY2tf dHlwZWRlZiAodHlwZSk7CiAgCiArICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IgKFRZUEVf TEVOR1RIICh0eXBlKSk7Ci0gICB2YWwgPSAoc3RydWN0IHZhbHVlICopIHh6YWxsb2MgKHNpemVv ZiAoc3RydWN0IHZhbHVlKSk7CisgICB2YWwgPSBYQ05FVyAoc3RydWN0IHZhbHVlKTsKICAgIHZh bC0+Y29udGVudHMgPSBOVUxMOwogICAgdmFsLT5uZXh0ID0gYWxsX3ZhbHVlczsKLUBAIC04NTUs NiArODU2LDggQEAgYWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAt OTY0LDYgKzk2NSw4IEBAIGFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0eXBlICp0eXBlKQog IHN0YXRpYyB2b2lkCiAgYWxsb2NhdGVfdmFsdWVfY29udGVudHMgKHN0cnVjdCB2YWx1ZSAqdmFs KQogIHsKQEAgLTE4NCw3ICsxODQsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv dmFsdWUuYwogICAgaWYgKCF2YWwtPmNvbnRlbnRzKQogICAgICB2YWwtPmNvbnRlbnRzID0gKGdk Yl9ieXRlICopIHh6YWxsb2MgKFRZUEVfTEVOR1RIICh2YWwtPmVuY2xvc2luZ190eXBlKSk7CiAg fQotQEAgLTI4MzEsOCArMjgzNCwxMiBAQCB2b2lkCitAQCAtMjk5NSw4ICsyOTk4LDEyIEBAIHZv aWQKICBzZXRfdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3Qg dHlwZSAqbmV3X2VuY2xfdHlwZSkKICB7CiAgICBpZiAoVFlQRV9MRU5HVEggKG5ld19lbmNsX3R5 cGUpID4gVFlQRV9MRU5HVEggKHZhbHVlX2VuY2xvc2luZ190eXBlICh2YWwpKSkgCkBAIC0xOTks MTEgKzE5OSwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwogIAog ICAgdmFsLT5lbmNsb3NpbmdfdHlwZSA9IG5ld19lbmNsX3R5cGU7CiAgfQotSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3ZheC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Mi9nZGIvdmF4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3Jp Zy9nZGIvdmF4LXRkZXAuYwkyMDE0LTA2LTEzIDIyOjE0OjQ5LjczMjg0NjM5MSArMDIwMAotKysr IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZheC10ZGVwLmMJMjAxNC0wNi0xMyAyMjoxNDo1My4x Njk4NTAwODggKzAyMDAKLUBAIC0yMjMsNiArMjIzLDcgQEAgdmF4X3JldHVybl92YWx1ZSAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyYworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3Zh eC10ZGVwLmMJMjAxNS0xMC0yNCAyMzowMzo1MC42MTk4OTgwNTggKzAyMDAKKysrKyBnZGItNy4x MC41MC4yMDE1MTAyMi9nZGIvdmF4LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjAzOjUyLjEwNTkwNzc4 OCArMDIwMAorQEAgLTIxOSw2ICsyMTksNyBAQCB2YXhfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjCiAgCSAgVUxPTkdFU1QgYWRkcjsKICAKICAJICByZWdjYWNoZV9yYXdfcmVh ZF91bnNpZ25lZCAocmVnY2FjaGUsIFZBWF9SMF9SRUdOVU0sICZhZGRyKTsKQEAgLTIxMSwxMSAr MjExLDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YXgtdGRlcC5jCiAgCSAg cmVhZF9tZW1vcnkgKGFkZHIsIHJlYWRidWYsIGxlbik7CiAgCX0KICAKLUluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi9kZWZzLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIv ZGVmcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9kZWZz LmgJMjAxNC0wNi0xMyAyMjoxNDo0OS43MzI4NDYzOTEgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi9kZWZzLmgJMjAxNC0wNi0xMyAyMjoxNDo1My4xNjk4NTAwODggKzAyMDAKLUBA IC03NTYsNCArNzU2LDYgQEAgZW51bSBibG9ja19lbnVtCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEw MjIub3JpZy9nZGIvZGVmcy5oCTIwMTUtMTAtMjQgMjM6MDM6NTAuNjE5ODk4MDU4ICswMjAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2RlZnMuaAkyMDE1LTEwLTI0IDIzOjAzOjUyLjEw NTkwNzc4OCArMDIwMAorQEAgLTY5MCw0ICs2OTAsNiBAQCBlbnVtIGJsb2NrX2VudW0KICAKICAj aW5jbHVkZSAidXRpbHMuaCIKICAKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3Mt MjJvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5wYXRjaAppbmRleCBl Y2NhMDY4Li5lN2MwYThjIDEwMDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjJvZjI1 LnBhdGNoCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMm9mMjUucGF0Y2gKQEAgLTk2LDEx ICs5NiwxMSBAQCBDb250ZW50LVR5cGU6IHRleHQveC1wYXRjaAogQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogN2JpdAogQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9 Yml0cG9zLXdwLnBhdGNoCiAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tbGlu dXgtbmF0LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvYXJtLWxpbnV4LW5hdC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hcm0tbGludXgt bmF0LmMJMjAxNS0wMS0wNSAyMjoxMDozMC4xNzA3MjY3NzQgKzAxMDAKLSsrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0wMS0wNSAyMjoxMDozNS41NzE3NTEz MjQgKzAxMDAKLUBAIC0xMjk1LDcgKzEyOTUsNyBAQCBhcm1fbGludXhfc3RvcHBlZF9ieV93YXRj aHBvaW50IChzdHJ1Y3QKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9hcm0tbGlu dXgtbmF0LmMJMjAxNS0xMC0yNCAyMzoxMzoyNC42MTc2ODYxMjEgKzAyMDAKKysrKyBnZGItNy4x MC41MC4yMDE1MTAyMi9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUtMTAtMjQgMjM6MTM6MzIuMDUx NzM1NTAxICswMjAwCitAQCAtMTIwOSw3ICsxMjA5LDcgQEAgYXJtX2xpbnV4X3N0b3BwZWRfYnlf d2F0Y2hwb2ludCAoc3RydWN0CiAgc3RhdGljIGludAogIGFybV9saW51eF93YXRjaHBvaW50X2Fk ZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0LAogIAkJCQkJQ09SRV9B RERSIGFkZHIsCkBAIC0xMDksMTEgKzEwOSwxMSBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvYXJtLWxpbnV4LW5hdC5jCiAgewogICAgcmV0dXJuIHN0YXJ0IDw9IGFkZHIgJiYgc3Rh cnQgKyBsZW5ndGggLSAxID49IGFkZHI7CiAgfQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3BwYy1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9wcGMt bGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2Ri L3BwYy1saW51eC1uYXQuYwkyMDE1LTAxLTA1IDIyOjEwOjMwLjE3MTcyNjc3OSArMDEwMAotKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTAxLTA1IDIyOjEw OjM1LjU3Mjc1MTMyOSArMDEwMAotQEAgLTE4NjAsMTEgKzE4NjAsMTEgQEAgY2FuX3VzZV93YXRj aHBvaW50X2NvbmRfYWNjZWwgKHZvaWQpCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9n ZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMTAtMjQgMjM6MTM6MjQuNjE3Njg2MTIxICswMjAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTEwLTI0IDIz OjEzOjMyLjA1MTczNTUwMSArMDIwMAorQEAgLTE4MDcsMTEgKzE4MDcsMTEgQEAgY2FuX3VzZV93 YXRjaHBvaW50X2NvbmRfYWNjZWwgKHZvaWQpCiAgICAgQ09ORElUSU9OX1ZBTFVFIHdpbGwgaG9s ZCB0aGUgdmFsdWUgd2hpY2ggc2hvdWxkIGJlIHB1dCBpbiB0aGUKICAgICBEVkMgcmVnaXN0ZXIu ICAqLwogIHN0YXRpYyB2b2lkCkBAIC0xMjgsNyArMTI4LDcgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3BwYy1saW51eC1uYXQuYwogICAgQ09SRV9BRERSIGFkZHJfZW5kX2RhdGEs IGFkZHJfZW5kX2R2YzsKICAKICAgIC8qIFRoZSBEVkMgcmVnaXN0ZXIgY29tcGFyZXMgYnl0ZXMg d2l0aGluIGZpeGVkLWxlbmd0aCB3aW5kb3dzIHdoaWNoCi1AQCAtMTk1MSw3ICsxOTUxLDcgQEAg bnVtX21lbW9yeV9hY2Nlc3NlcyAoc3RydWN0IHZhbHVlICp2KQorQEAgLTE4OTgsNyArMTg5OCw3 IEBAIG51bV9tZW1vcnlfYWNjZXNzZXMgKHN0cnVjdCB2YWx1ZSAqdikKICAgICBvZiB0aGUgY29u c3RhbnQuICAqLwogIHN0YXRpYyBpbnQKICBjaGVja19jb25kaXRpb24gKENPUkVfQUREUiB3YXRj aF9hZGRyLCBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCwKQEAgLTEzNyw3ICsxMzcsNyBAQCBJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHBjLWxpbnV4LW5hdC5jCiAgewogICAgaW50IHBj ID0gMSwgbnVtX2FjY2Vzc2VzX2xlZnQsIG51bV9hY2Nlc3Nlc19yaWdodDsKICAgIHN0cnVjdCB2 YWx1ZSAqbGVmdF92YWwsICpyaWdodF92YWwsICpsZWZ0X2NoYWluLCAqcmlnaHRfY2hhaW47Ci1A QCAtMjAxOSw3ICsyMDE5LDcgQEAgY2hlY2tfY29uZGl0aW9uIChDT1JFX0FERFIgd2F0Y2hfYWRk ciwgcworQEAgLTE5NjYsNyArMTk2Niw3IEBAIGNoZWNrX2NvbmRpdGlvbiAoQ09SRV9BRERSIHdh dGNoX2FkZHIsIHMKICAgICB0cnVlLiAgKi8KICBzdGF0aWMgaW50CiAgcHBjX2xpbnV4X2Nhbl9h Y2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0x NDYsMTYgKzE0NiwxNiBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHBjLWxpbnV4 LW5hdC5jCiAgCQkJCQkgIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQogIHsKICAgIENPUkVfQURE UiBkYXRhX3ZhbHVlOwotQEAgLTIwMzYsNyArMjAzNiw3IEBAIHBwY19saW51eF9jYW5fYWNjZWxf d2F0Y2hwb2ludF9jb25kaXRpb24KK0BAIC0xOTgzLDcgKzE5ODMsNyBAQCBwcGNfbGludXhfY2Fu X2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uCiAgCiAgc3RhdGljIHZvaWQKICBjcmVhdGVfd2F0 Y2hwb2ludF9yZXF1ZXN0IChzdHJ1Y3QgcHBjX2h3X2JyZWFrcG9pbnQgKnAsIENPUkVfQUREUiBh ZGRyLAotLQkJCSAgIGludCBsZW4sIGludCBydywgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQsCi0r CQkJICAgTE9OR0VTVCBsZW4sIGludCBydywgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQsCi0gCQkJ ICAgaW50IGluc2VydCkKKy0JCQkgICBpbnQgbGVuLCBlbnVtIHRhcmdldF9od19icF90eXBlIHR5 cGUsCisrCQkJICAgTE9OR0VTVCBsZW4sIGVudW0gdGFyZ2V0X2h3X2JwX3R5cGUgdHlwZSwKKyAJ CQkgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCwgaW50IGluc2VydCkKICB7CiAgICBpZiAobGVu ID09IDEKLUBAIC0yMzAyLDcgKzIzMDIsNyBAQCBwcGNfbGludXhfc3RvcHBlZF9ieV93YXRjaHBv aW50IChzdHJ1Y3QKK0BAIC0yMjQ5LDcgKzIyNDksNyBAQCBwcGNfbGludXhfc3RvcHBlZF9ieV93 YXRjaHBvaW50IChzdHJ1Y3QKICBzdGF0aWMgaW50CiAgcHBjX2xpbnV4X3dhdGNocG9pbnRfYWRk cl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQsCiAgCQkJCQlDT1JFX0FE RFIgYWRkciwKQEAgLTE2NCwxMSArMTY0LDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9wcGMtbGludXgtbmF0LmMKICB7CiAgICBpbnQgbWFzazsKICAKLUluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9wcm9jZnMuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dk Yi9wcm9jZnMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv cHJvY2ZzLmMJMjAxNS0wMS0wNSAyMjoxMDozMC4xNzI3MjY3ODMgKzAxMDAKLSsrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9wcm9jZnMuYwkyMDE1LTAxLTA1IDIyOjEwOjM1LjU3Mzc1MTMzMyAr MDEwMAotQEAgLTI0MjYsNyArMjQyNiw3IEBAIHByb2Nmc19hZGRyZXNzX3RvX2hvc3RfcG9pbnRl ciAoQ09SRV9BREQKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9wcm9jZnMuYwky MDE1LTEwLTI0IDIzOjEzOjI0LjYxNzY4NjEyMSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUx MDIyL2dkYi9wcm9jZnMuYwkyMDE1LTEwLTI0IDIzOjEzOjMyLjA1MjczNTUwNyArMDIwMAorQEAg LTI0MjcsNyArMjQyNyw3IEBAIHByb2Nmc19hZGRyZXNzX3RvX2hvc3RfcG9pbnRlciAoQ09SRV9B REQKICAjZW5kaWYKICAKICBzdGF0aWMgaW50CkBAIC0xNzcsNyArMTc3LDcgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3Byb2Nmcy5jCiAgewogICNpZiAhZGVmaW5lZCAoUENXQVRD SCkgJiYgIWRlZmluZWQgKFBJT0NTV0FUQ0gpCiAgICAvKiBJZiBuZWl0aGVyIG9yIHRoZXNlIGlz IGRlZmluZWQsIHdlIGNhbid0IHN1cHBvcnQgd2F0Y2hwb2ludHMuCi1AQCAtNDcwNSw3ICs0NzA1 LDcgQEAgcHJvY2ZzX3BpZF90b19zdHIgKHN0cnVjdCB0YXJnZXRfb3BzICpvcAorQEAgLTQ3MDYs NyArNDcwNiw3IEBAIHByb2Nmc19waWRfdG9fc3RyIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3AKICAv KiBJbnNlcnQgYSB3YXRjaHBvaW50LiAgKi8KICAKICBzdGF0aWMgaW50CkBAIC0xODYsMTEgKzE4 NiwxMSBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHJvY2ZzLmMKICAJCSAgICAg ICBpbnQgYWZ0ZXIpCiAgewogICNpZm5kZWYgQUlYNQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3JlbW90ZS5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3JlbW90ZS5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9yZW1vdGUuYwky MDE1LTAxLTA1IDIyOjEwOjMwLjE3NDcyNjc5MiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3JlbW90ZS5jCTIwMTUtMDEtMDUgMjI6MTA6MzUuNTc0NzUxMzM4ICswMTAwCi1AQCAt ODI5OCw3ICs4Mjk4LDcgQEAgcmVtb3RlX2luc2VydF93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0 XworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTUtMTAtMjQg MjM6MTM6MjQuNjE3Njg2MTIxICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Jl bW90ZS5jCTIwMTUtMTAtMjQgMjM6MTM6MzIuMDU0NzM1NTIxICswMjAwCitAQCAtOTA4NSw3ICs5 MDg1LDcgQEAgcmVtb3RlX2luc2VydF93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0XwogICAgcCA9 IHN0cmNociAocnMtPmJ1ZiwgJ1wwJyk7CiAgICBhZGRyID0gcmVtb3RlX2FkZHJlc3NfbWFza2Vk IChhZGRyKTsKICAgIHAgKz0gaGV4bnVtc3RyIChwLCAoVUxPTkdFU1QpIGFkZHIpOwpAQCAtMTk5 LDcgKzE5OSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9yZW1vdGUuYwogIAog ICAgcHV0cGt0IChycy0+YnVmKTsKICAgIGdldHBrdCAoJnJzLT5idWYsICZycy0+YnVmX3NpemUs IDApOwotQEAgLTgzMTgsNyArODMxOCw3IEBAIHJlbW90ZV9pbnNlcnRfd2F0Y2hwb2ludCAoc3Ry dWN0IHRhcmdldF8KK0BAIC05MTA1LDcgKzkxMDUsNyBAQCByZW1vdGVfaW5zZXJ0X3dhdGNocG9p bnQgKHN0cnVjdCB0YXJnZXRfCiAgCiAgc3RhdGljIGludAogIHJlbW90ZV93YXRjaHBvaW50X2Fk ZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0LCBDT1JFX0FERFIgYWRk ciwKQEAgLTIwOCw3ICsyMDgsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcmVt b3RlLmMKICB7CiAgICBDT1JFX0FERFIgZGlmZiA9IHJlbW90ZV9hZGRyZXNzX21hc2tlZCAoYWRk ciAtIHN0YXJ0KTsKICAKLUBAIC04MzQ4LDcgKzgzNDgsNyBAQCByZW1vdGVfcmVtb3ZlX3dhdGNo cG9pbnQgKHN0cnVjdCB0YXJnZXRfCitAQCAtOTEzNCw3ICs5MTM0LDcgQEAgcmVtb3RlX3JlbW92 ZV93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0XwogICAgcCA9IHN0cmNociAocnMtPmJ1ZiwgJ1ww Jyk7CiAgICBhZGRyID0gcmVtb3RlX2FkZHJlc3NfbWFza2VkIChhZGRyKTsKICAgIHAgKz0gaGV4 bnVtc3RyIChwLCAoVUxPTkdFU1QpIGFkZHIpOwpAQCAtMjE3LDEwICsyMTcsMTAgQEAgSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JlbW90ZS5jCiAgICBwdXRwa3QgKHJzLT5idWYpOwog ICAgZ2V0cGt0ICgmcnMtPmJ1ZiwgJnJzLT5idWZfc2l6ZSwgMCk7CiAgCi1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9n ZGIvdGFyZ2V0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2Ri L3RhcmdldC5jCTIwMTUtMDEtMDUgMjI6MTA6MzAuMTc1NzI2Nzk3ICswMTAwCi0rKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LmMJMjAxNS0wMS0wNSAyMjoxMDozNS41NzU3NTEzNDIg KzAxMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi90YXJnZXQuYwkyMDE1LTEw LTI0IDIzOjEzOjI0LjYxNzY4NjEyMSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dk Yi90YXJnZXQuYwkyMDE1LTEwLTI0IDIzOjEzOjMyLjA1NDczNTUyMSArMDIwMAogQEAgLTUxLDcg KzUxLDcgQEAgc3RhdGljIHZvaWQgZ2VuZXJpY190bHNfZXJyb3IgKHZvaWQpIEFUVAogIHN0YXRp YyB2b2lkIGRlZmF1bHRfdGVybWluYWxfaW5mbyAoc3RydWN0IHRhcmdldF9vcHMgKiwgY29uc3Qg Y2hhciAqLCBpbnQpOwogIApAQCAtMjMwLDcgKzIzMCw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90YXJnZXQuYwogIAogIHN0YXRpYyBpbnQgZGVmYXVsdF9yZWdpb25fb2tfZm9y X2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICosCiAgCQkJCQkJQ09SRV9BRERSLCBM T05HRVNUKTsKLUBAIC0yOTgzLDcgKzI5ODMsNyBAQCBkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdf d2F0Y2hwb2ludCAoc3RyCitAQCAtMzE0MCw3ICszMTQwLDcgQEAgZGVmYXVsdF9yZWdpb25fb2tf Zm9yX2h3X3dhdGNocG9pbnQgKHN0cgogIHN0YXRpYyBpbnQKICBkZWZhdWx0X3dhdGNocG9pbnRf YWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQsCiAgCQkJCSAgICAg IENPUkVfQUREUiBhZGRyLApAQCAtMjM5LDExICsyMzksMTEgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3RhcmdldC5jCiAgewogICAgcmV0dXJuIGFkZHIgPj0gc3RhcnQgJiYgYWRk ciA8IHN0YXJ0ICsgbGVuZ3RoOwogIH0KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 YXJnZXQuaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90YXJnZXQuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdGFyZ2V0LmgJMjAxNS0wMS0w NSAyMjoxMDozMC4xNzY3MjY4MDIgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 YXJnZXQuaAkyMDE1LTAxLTA1IDIyOjEwOjM1LjU3NTc1MTM0MiArMDEwMAotQEAgLTQ4Myw3ICs0 ODMsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcv Z2RiL3RhcmdldC5oCTIwMTUtMTAtMjQgMjM6MTM6MjQuNjE3Njg2MTIxICswMjAwCisrKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3RhcmdldC5oCTIwMTUtMTAtMjQgMjM6MTM6MzIuMDU1NzM1 NTI3ICswMjAwCitAQCAtNTQzLDcgKzU0Myw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCiAgICAgIGlu dCAoKnRvX3N0b3BwZWRfZGF0YV9hZGRyZXNzKSAoc3RydWN0IHRhcmdldF9vcHMgKiwgQ09SRV9B RERSICopCiAgICAgICAgVEFSR0VUX0RFRkFVTFRfUkVUVVJOICgwKTsKICAgICAgaW50ICgqdG9f d2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSkgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0y NTIsNyArMjUyLDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5oCiAg ICAgICAgVEFSR0VUX0RFRkFVTFRfRlVOQyAoZGVmYXVsdF93YXRjaHBvaW50X2FkZHJfd2l0aGlu X3JhbmdlKTsKICAKICAgICAgLyogRG9jdW1lbnRhdGlvbiBvZiB0aGlzIHJvdXRpbmUgaXMgcHJv dmlkZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZwotQEAgLTQ5Myw3ICs0OTMsNyBAQCBzdHJ1Y3Qg dGFyZ2V0X29wcworQEAgLTU1Myw3ICs1NTMsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcwogICAgICAg IFRBUkdFVF9ERUZBVUxUX0ZVTkMgKGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50 KTsKICAKICAgICAgaW50ICgqdG9fY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uKSAoc3Ry dWN0IHRhcmdldF9vcHMgKiwKQEAgLTI2MSw4MCArMjYxLDExIEBAIEluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi90YXJnZXQuaAogIAkJCQkJICAgICAgc3RydWN0IGV4cHJlc3Npb24gKikK ICAgICAgICBUQVJHRVRfREVGQVVMVF9SRVRVUk4gKDApOwogICAgICBpbnQgKCp0b19tYXNrZWRf d2F0Y2hfbnVtX3JlZ2lzdGVycykgKHN0cnVjdCB0YXJnZXRfb3BzICosCi1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDIyL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMDEtMDUgMjI6 MTA6MzAuMTc2NzI2ODAyICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWFyY2g2 NC1saW51eC1uYXQuYwkyMDE1LTAxLTA1IDIyOjEwOjM1LjU3NTc1MTM0MiArMDEwMAotQEAgLTQy NCwxNCArNDI0LDE0IEBAIGFhcmNoNjRfbm90aWZ5X2RlYnVnX3JlZ19jaGFuZ2UgKGNvbnN0IHMK LSBzdGF0aWMgdm9pZAotIGFhcmNoNjRfc2hvd19kZWJ1Z19yZWdfc3RhdGUgKHN0cnVjdCBhYXJj aDY0X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCi0gCQkJICAgICAgY29uc3QgY2hhciAqZnVuYywg Q09SRV9BRERSIGFkZHIsCi0tCQkJICAgICAgaW50IGxlbiwgaW50IHR5cGUpCi0rCQkJICAgICAg TE9OR0VTVCBsZW4sIGludCB0eXBlKQotIHsKLSAgIGludCBpOwotIAotICAgZnByaW50Zl91bmZp bHRlcmVkIChnZGJfc3RkbG9nLCAiJXMiLCBmdW5jKTsKLSAgIGlmIChhZGRyIHx8IGxlbikKLS0g ICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiIChhZGRyPTB4JTA4bHgsIGxlbj0l ZCwgdHlwZT0lcykiLAotLQkJCSh1bnNpZ25lZCBsb25nKSBhZGRyLCBsZW4sCi0rICAgIGZwcmlu dGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIiAoYWRkcj0weCUwOGx4LCBsZW49JXMsIHR5cGU9 JXMpIiwKLSsJCQkodW5zaWduZWQgbG9uZykgYWRkciwgcGxvbmdlc3QgKGxlbiksCi0gCQkJdHlw ZSA9PSBod193cml0ZSA/ICJody13cml0ZS13YXRjaHBvaW50IgotIAkJCTogKHR5cGUgPT0gaHdf cmVhZCA/ICJody1yZWFkLXdhdGNocG9pbnQiCi0gCQkJICAgOiAodHlwZSA9PSBod19hY2Nlc3Mg PyAiaHctYWNjZXNzLXdhdGNocG9pbnQiCi1AQCAtODUxLDkgKzg1MSwxMCBAQCBhYXJjaDY0X2xp bnV4X3JlYWRfZGVzY3JpcHRpb24gKHN0cnVjdCB0Ci0gICAgZ2Ric2VydmVyL2xpbnV4LWFhcmNo NjQtbG93LmMgZm9yIG1vcmUgaW5mb3JtYXRpb24uICAqLwotIAotIHN0YXRpYyB2b2lkCi0tYWFy Y2g2NF9hbGlnbl93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgQ09SRV9BRERS ICphbGlnbmVkX2FkZHJfcCwKLSthYXJjaDY0X2FsaWduX3dhdGNocG9pbnQgKENPUkVfQUREUiBh ZGRyLCBMT05HRVNUIGxlbiwKLSsJCQkgIENPUkVfQUREUiAqYWxpZ25lZF9hZGRyX3AsCi0gCQkJ ICBpbnQgKmFsaWduZWRfbGVuX3AsIENPUkVfQUREUiAqbmV4dF9hZGRyX3AsCi0tCQkJICBpbnQg Km5leHRfbGVuX3ApCi0rCQkJICBMT05HRVNUICpuZXh0X2xlbl9wKQotIHsKLSAgIGludCBhbGln bmVkX2xlbjsKLSAgIHVuc2lnbmVkIGludCBvZmZzZXQ7Ci1AQCAtMTAyMCw3ICsxMDIxLDcgQEAg YWFyY2g2NF9wb2ludF9lbmNvZGVfY3RybF9yZWcgKGludCB0eXBlLAotICAgIFJldHVybiAwIGZv ciBhbnkgbm9uLWNvbXBsaWFudCBBRERSIGFuZC9vciBMRU47IHJldHVybiAxIG90aGVyd2lzZS4g ICovCi0gCi0gc3RhdGljIGludAotLWFhcmNoNjRfcG9pbnRfaXNfYWxpZ25lZCAoaW50IGlzX3dh dGNocG9pbnQsIENPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQotK2FhcmNoNjRfcG9pbnRfaXNfYWxp Z25lZCAoaW50IGlzX3dhdGNocG9pbnQsIENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbikKLSB7 Ci0gICB1bnNpZ25lZCBpbnQgYWxpZ25tZW50ID0gaXNfd2F0Y2hwb2ludCA/IEFBUkNINjRfSFdQ X0FMSUdOTUVOVAotICAgICA6IEFBUkNINjRfSEJQX0FMSUdOTUVOVDsKLUBAIC0xMjcyLDcgKzEy NzMsNyBAQCBhYXJjaDY0X2hhbmRsZV9hbGlnbmVkX3dhdGNocG9pbnQgKGludCB0Ci0gICAgUmV0 dXJuIDAgaWYgc3VjY2VlZC4gICovCi0gCi0gc3RhdGljIGludAotLWFhcmNoNjRfaGFuZGxlX3Vu YWxpZ25lZF93YXRjaHBvaW50IChpbnQgdHlwZSwgQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCi0r YWFyY2g2NF9oYW5kbGVfdW5hbGlnbmVkX3dhdGNocG9pbnQgKGludCB0eXBlLCBDT1JFX0FERFIg YWRkciwgTE9OR0VTVCBsZW4sCi0gCQkJCSAgICAgaW50IGlzX2luc2VydCkKLSB7Ci0gICBzdHJ1 Y3QgYWFyY2g2NF9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlCi1AQCAtMTI5Nyw4ICsxMjk4LDggQEAg YWFyY2g2NF9oYW5kbGVfdW5hbGlnbmVkX3dhdGNocG9pbnQgKGludAotIAlmcHJpbnRmX3VuZmls dGVyZWQgKGdkYl9zdGRsb2csCi0gImhhbmRsZV91bmFsaWduZWRfd2F0Y2hwb2ludDogaXNfaW5z ZXJ0OiAlZFxuIgotICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduZWRfYWRkcjog MHglMDhseCwgYWxpZ25lZF9sZW46ICVkXG4iCi0tIiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmV4dF9hZGRyOiAweCUwOGx4LCAgICBuZXh0X2xlbjogJWRcbiIsCi0tCQkgaXNfaW5z ZXJ0LCBhbGlnbmVkX2FkZHIsIGFsaWduZWRfbGVuLCBhZGRyLCBsZW4pOwotKyIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5leHRfYWRkcjogMHglMDhseCwgICAgbmV4dF9sZW46ICVz XG4iLAotKwkJIGlzX2luc2VydCwgYWxpZ25lZF9hZGRyLCBhbGlnbmVkX2xlbiwgYWRkciwgcGxv bmdlc3QgKGxlbikpOwotIAotICAgICAgIGlmIChyZXQgIT0gMCkKLSAJcmV0dXJuIHJldDsKLUBA IC0xMzEwLDcgKzEzMTEsNyBAQCBhYXJjaDY0X2hhbmRsZV91bmFsaWduZWRfd2F0Y2hwb2ludCAo aW50Ci0gLyogSW1wbGVtZW50cyBpbnNlcnRpb24gYW5kIHJlbW92YWwgb2YgYSBzaW5nbGUgd2F0 Y2hwb2ludC4gICovCi0gCi0gc3RhdGljIGludAotLWFhcmNoNjRfaGFuZGxlX3dhdGNocG9pbnQg KGludCB0eXBlLCBDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IGlzX2luc2VydCkKLSthYXJj aDY0X2hhbmRsZV93YXRjaHBvaW50IChpbnQgdHlwZSwgQ09SRV9BRERSIGFkZHIsIExPTkdFU1Qg bGVuLCBpbnQgaXNfaW5zZXJ0KQotIHsKLSAgIGlmIChhYXJjaDY0X3BvaW50X2lzX2FsaWduZWQg KDEgLyogaXNfd2F0Y2hwb2ludCAqLyAsIGFkZHIsIGxlbikpCi0gICAgIHJldHVybiBhYXJjaDY0 X2hhbmRsZV9hbGlnbmVkX3dhdGNocG9pbnQgKHR5cGUsIGFkZHIsIGxlbiwgaXNfaW5zZXJ0KTsK LUBAIC0xNDc5LDcgKzE0ODAsNyBAQCBhYXJjaDY0X2xpbnV4X3N0b3BwZWRfYnlfd2F0Y2hwb2lu dCAoc3RyCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvYWFyY2g2NC1saW51eC1u YXQuYwkyMDE1LTEwLTI0IDIzOjEzOjI0LjYxNzY4NjEyMSArMDIwMAorKysrIGdkYi03LjEwLjUw LjIwMTUxMDIyL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMTAtMjQgMjM6MTM6MzIuMDU1 NzM1NTI3ICswMjAwCitAQCAtNzk1LDcgKzc5NSw3IEBAIGFhcmNoNjRfbGludXhfc3RvcHBlZF9i eV93YXRjaHBvaW50IChzdHIKICBzdGF0aWMgaW50CiAgYWFyY2g2NF9saW51eF93YXRjaHBvaW50 X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0LAogIAkJCQkJICAg IENPUkVfQUREUiBhZGRyLApAQCAtMzQzLDExICsyNzQsMTEgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKICB7CiAgICByZXR1cm4gc3RhcnQgPD0g YWRkciAmJiBzdGFydCArIGxlbmd0aCAtIDEgPj0gYWRkcjsKICB9Ci1JbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjIvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTUtMDEtMDUgMjI6MTA6MzAu MTc3NzI2ODA2ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LWRlbGVn YXRlcy5jCTIwMTUtMDEtMDUgMjI6MTI6MTEuMDcxMTg1NDA4ICswMTAwCi1AQCAtNjA3LDE0ICs2 MDcsMTQgQEAgZGVidWdfc3RvcHBlZF9kYXRhX2FkZHJlc3MgKHN0cnVjdCB0YXJnZQorLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE1LTEwLTI0 IDIzOjEzOjI0LjYxNzY4NjEyMSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90 YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0xMC0yNCAyMzoxMzozMi4wNTU3MzU1MjcgKzAyMDAKK0BA IC03MDksMTQgKzcwOSwxNCBAQCBkZWJ1Z19zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRh cmdlCiAgfQogIAogIHN0YXRpYyBpbnQKQEAgLTM2NCw3ICsyOTUsNyBAQCBJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgewogICAgaW50IHJlc3VsdDsK ICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIi0+ICVzLT50b193YXRjaHBvaW50 X2FkZHJfd2l0aGluX3JhbmdlICguLi4pXG4iLCBkZWJ1Z190YXJnZXQudG9fc2hvcnRuYW1lKTsK LUBAIC02MjYsNyArNjI2LDcgQEAgZGVidWdfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAo c3RydQorQEAgLTcyOCw3ICs3MjgsNyBAQCBkZWJ1Z193YXRjaHBvaW50X2FkZHJfd2l0aGluX3Jh bmdlIChzdHJ1CiAgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKICAgIHRh cmdldF9kZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzIpOwogICAgZnB1dHNfdW5maWx0ZXJlZCAo IiwgIiwgZ2RiX3N0ZGxvZyk7CkBAIC0zNzMsNyArMzA0LDcgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIikg PSAiLCBnZGJfc3RkbG9nKTsKICAgIHRhcmdldF9kZWJ1Z19wcmludF9pbnQgKHJlc3VsdCk7CiAg ICBmcHV0c191bmZpbHRlcmVkICgiXG4iLCBnZGJfc3RkbG9nKTsKLUBAIC02NTksMjAgKzY1OSwy MCBAQCBkZWJ1Z19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjCitAQCAtNzYxLDIw ICs3NjEsMjAgQEAgZGVidWdfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1YwogIH0K ICAKICBzdGF0aWMgaW50CkBAIC0zOTcsNyArMzI4LDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogIHsKICAgIGludCByZXN1bHQ7CiAgICBmcHJp bnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csICItPiAlcy0+dG9fY2FuX2FjY2VsX3dhdGNocG9p bnRfY29uZGl0aW9uICguLi4pXG4iLCBkZWJ1Z190YXJnZXQudG9fc2hvcnRuYW1lKTsKLUBAIC02 ODIsNyArNjgyLDcgQEAgZGVidWdfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uIChzdAor QEAgLTc4NCw3ICs3ODQsNyBAQCBkZWJ1Z19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24g KHN0CiAgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKICAgIHRhcmdldF9k ZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzEpOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIiwgIiwg Z2RiX3N0ZGxvZyk7CkBAIC00MDYsMyArMzM3LDc3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIsICIsIGdk Yl9zdGRsb2cpOwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X2ludCAoYXJnMyk7CiAgICBmcHV0c191 bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Mi9nZGIvbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL25hdC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmMJMjAx NS0xMC0yMiAwMzo0ODozMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAy Mi9nZGIvbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYwkyMDE1LTEwLTI0IDIzOjEyOjI5Ljky NzMyMjg0NSArMDIwMAorQEAgLTExMSw3ICsxMTEsNyBAQCBhYXJjaDY0X3BvaW50X2VuY29kZV9j dHJsX3JlZyAoZW51bSB0YXJnCisgICAgUmV0dXJuIDAgZm9yIGFueSBub24tY29tcGxpYW50IEFE RFIgYW5kL29yIExFTjsgcmV0dXJuIDEgb3RoZXJ3aXNlLiAgKi8KKyAKKyBzdGF0aWMgaW50Cist YWFyY2g2NF9wb2ludF9pc19hbGlnbmVkIChpbnQgaXNfd2F0Y2hwb2ludCwgQ09SRV9BRERSIGFk ZHIsIGludCBsZW4pCisrYWFyY2g2NF9wb2ludF9pc19hbGlnbmVkIChpbnQgaXNfd2F0Y2hwb2lu dCwgQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuKQorIHsKKyAgIHVuc2lnbmVkIGludCBhbGln bm1lbnQgPSAwOworIAorQEAgLTE4MCw5ICsxODAsMTAgQEAgYWFyY2g2NF9wb2ludF9pc19hbGln bmVkIChpbnQgaXNfd2F0Y2hwbworICAgIGxpbWl0YXRpb25zIGNhbiBiZSBsYXJnZWx5IHJlbGF4 ZWQgd2l0aCBzb21lIGZ1cnRoZXIgd29yay4gICovCisgCisgc3RhdGljIHZvaWQKKy1hYXJjaDY0 X2FsaWduX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBDT1JFX0FERFIgKmFs aWduZWRfYWRkcl9wLAorK2FhcmNoNjRfYWxpZ25fd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIs IExPTkdFU1QgbGVuLAorKwkJCSAgQ09SRV9BRERSICphbGlnbmVkX2FkZHJfcCwKKyAJCQkgIGlu dCAqYWxpZ25lZF9sZW5fcCwgQ09SRV9BRERSICpuZXh0X2FkZHJfcCwKKy0JCQkgIGludCAqbmV4 dF9sZW5fcCkKKysJCQkgIExPTkdFU1QgKm5leHRfbGVuX3ApCisgeworICAgaW50IGFsaWduZWRf bGVuOworICAgdW5zaWduZWQgaW50IG9mZnNldDsKK0BAIC00OTQsNyArNDk1LDcgQEAgYWFyY2g2 NF9oYW5kbGVfYWxpZ25lZF93YXRjaHBvaW50IChlbnVtCisgCisgc3RhdGljIGludAorIGFhcmNo NjRfaGFuZGxlX3VuYWxpZ25lZF93YXRjaHBvaW50IChlbnVtIHRhcmdldF9od19icF90eXBlIHR5 cGUsCistCQkJCSAgICAgQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBpc19pbnNlcnQsCisr CQkJCSAgICAgQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgaXNfaW5zZXJ0LAorIAkJ CQkgICAgIHN0cnVjdCBhYXJjaDY0X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUpCisgeworICAgd2hp bGUgKGxlbiA+IDApCitAQCAtNTE3LDkgKzUxOCw5IEBAIGFhcmNoNjRfaGFuZGxlX3VuYWxpZ25l ZF93YXRjaHBvaW50IChlbnUKKyAJCSAgICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIKKyAJCSAgICAgICJhbGlnbmVkX2FkZHI6ICVzLCBhbGlnbmVkX2xlbjogJWRcbiIKKyAJCSAg ICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKKy0JCSAgICAgICJuZXh0X2Fk ZHI6ICVzLCAgICBuZXh0X2xlbjogJWRcbiIsCisrCQkgICAgICAibmV4dF9hZGRyOiAlcywgICAg bmV4dF9sZW46ICVzXG4iLAorIAkJICAgICAgaXNfaW5zZXJ0LCBjb3JlX2FkZHJfdG9fc3RyaW5n X256IChhbGlnbmVkX2FkZHIpLAorLQkJICAgICAgYWxpZ25lZF9sZW4sIGNvcmVfYWRkcl90b19z dHJpbmdfbnogKGFkZHIpLCBsZW4pOworKwkJICAgICAgYWxpZ25lZF9sZW4sIGNvcmVfYWRkcl90 b19zdHJpbmdfbnogKGFkZHIpLCBwbG9uZ2VzdCAobGVuKSk7CisgCisgICAgICAgaWYgKHJldCAh PSAwKQorIAlyZXR1cm4gcmV0OworQEAgLTUzMCw3ICs1MzEsNyBAQCBhYXJjaDY0X2hhbmRsZV91 bmFsaWduZWRfd2F0Y2hwb2ludCAoZW51CisgCisgaW50CisgYWFyY2g2NF9oYW5kbGVfd2F0Y2hw b2ludCAoZW51bSB0YXJnZXRfaHdfYnBfdHlwZSB0eXBlLCBDT1JFX0FERFIgYWRkciwKKy0JCQkg ICBpbnQgbGVuLCBpbnQgaXNfaW5zZXJ0LAorKwkJCSAgIExPTkdFU1QgbGVuLCBpbnQgaXNfaW5z ZXJ0LAorIAkJCSAgIHN0cnVjdCBhYXJjaDY0X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUpCisgewor ICAgaWYgKGFhcmNoNjRfcG9pbnRfaXNfYWxpZ25lZCAoMSAvKiBpc193YXRjaHBvaW50ICovICwg YWRkciwgbGVuKSkKK0BAIC01ODEsMTQgKzU4MiwxNCBAQCBhYXJjaDY0X2xpbnV4X3NldF9kZWJ1 Z19yZWdzIChjb25zdCBzdHJ1Cisgdm9pZAorIGFhcmNoNjRfc2hvd19kZWJ1Z19yZWdfc3RhdGUg KHN0cnVjdCBhYXJjaDY0X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCisgCQkJICAgICAgY29uc3Qg Y2hhciAqZnVuYywgQ09SRV9BRERSIGFkZHIsCistCQkJICAgICAgaW50IGxlbiwgZW51bSB0YXJn ZXRfaHdfYnBfdHlwZSB0eXBlKQorKwkJCSAgICAgIExPTkdFU1QgbGVuLCBlbnVtIHRhcmdldF9o d19icF90eXBlIHR5cGUpCisgeworICAgaW50IGk7CisgCisgICBkZWJ1Z19wcmludGYgKCIlcyIs IGZ1bmMpOworICAgaWYgKGFkZHIgfHwgbGVuKQorLSAgICBkZWJ1Z19wcmludGYgKCIgKGFkZHI9 MHglMDhseCwgbGVuPSVkLCB0eXBlPSVzKSIsCistCQkgICh1bnNpZ25lZCBsb25nKSBhZGRyLCBs ZW4sCisrICAgIGRlYnVnX3ByaW50ZiAoIiAoYWRkcj0weCUwOGx4LCBsZW49JXMsIHR5cGU9JXMp IiwKKysJCSAgKHVuc2lnbmVkIGxvbmcpIGFkZHIsIHBsb25nZXN0IChsZW4pLAorIAkJICB0eXBl ID09IGh3X3dyaXRlID8gImh3LXdyaXRlLXdhdGNocG9pbnQiCisgCQkgIDogKHR5cGUgPT0gaHdf cmVhZCA/ICJody1yZWFkLXdhdGNocG9pbnQiCisgCQkgICAgIDogKHR5cGUgPT0gaHdfYWNjZXNz ID8gImh3LWFjY2Vzcy13YXRjaHBvaW50IgoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJp dHBvcy0yM29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoCmlu ZGV4IDg2MmYzYWEuLmM5ZDNlZjggMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0y M29mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaApAQCAt MTM3LDExICsxMzcsMTEgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZp bGVuYW1lPWJpdHBvcy10ZGVwLnBhdGNoCiAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9hbHBoYS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvYWxwaGEtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9hbHBoYS10 ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wNTY4NjgwMzUgKzAyMDAKLSsrKyBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi9hbHBoYS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MTk4ODI4NDYg KzAyMDAKLUBAIC0yOTgsMTggKzI5OCwxOCBAQCBhbHBoYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICpnCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvYWxwaGEtdGRl cC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuNzkyMDM5MzI3ICswMjAwCisrKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjIvZ2RiL2FscGhhLXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE1OjA3LjYxNTM3MDI3NCAr MDIwMAorQEAgLTI5OSwxNyArMjk5LDE3IEBAIGFscGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKmcKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hf Ynl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgaTsKQEAgLTE1NSw4ICsxNTUsNyBAQCBJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYWxwaGEtdGRlcC5jCiArICAgICAgc3NpemVfdCBs ZW47CiArICAgICAgc3NpemVfdCBvZmZzZXQ7CiAgICAgIH07Ci0gICBzdHJ1Y3QgYWxwaGFfYXJn ICphbHBoYV9hcmdzCi0gICAgID0gKHN0cnVjdCBhbHBoYV9hcmcgKikgYWxsb2NhIChuYXJncyAq IHNpemVvZiAoc3RydWN0IGFscGhhX2FyZykpOworICAgc3RydWN0IGFscGhhX2FyZyAqYWxwaGFf YXJncyA9IFhBTExPQ0FWRUMgKHN0cnVjdCBhbHBoYV9hcmcsIG5hcmdzKTsKICAgIHN0cnVjdCBh bHBoYV9hcmcgKm1fYXJnOwogICAgZ2RiX2J5dGUgYXJnX3JlZ19idWZmZXJbQUxQSEFfUkVHSVNU RVJfU0laRSAqIEFMUEhBX05VTV9BUkdfUkVHU107CiAtICBpbnQgcmVxdWlyZWRfYXJnX3JlZ3M7 CkBAIC0xODQsMTAgKzE4MywxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYWxw aGEtdGRlcC5jCiAgCSAgICAgIG1lbWNweSAoYXJnX3JlZ19idWZmZXIgKyBvZmZzZXQsIGNvbnRl bnRzLCB0bGVuKTsKICAJICAgICAgb2Zmc2V0ICs9IHRsZW47CiAgCSAgICAgIGNvbnRlbnRzICs9 IHRsZW47Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYW1kNjQtdGRlcC5jCitJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2FtZDY0LXRkZXAuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTUtMDUtMzEgMTc6 MTU6MDEuMDU4ODY4MDQ3ICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYW1kNjQt dGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6NDAuMjUzMTEzNzIyICswMjAwCistLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjIub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuNzkz MDM5MzMzICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2FtZDY0LXRkZXAuYwky MDE1LTEwLTI0IDIzOjE0OjIwLjkzNTA2MDIwNCArMDIwMAogQEAgLTcwMSw3ICs3MDEsNyBAQCBh bWQ2NF9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhCiAgCQkgICAgZ2RiX2J5dGUg KnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKICB7CkBAIC0xOTksNyArMTk4LDcg QEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FtZDY0LXRkZXAuYwogICAgaW50IGlu dGVnZXJfcmVnID0gMDsKIEBAIC04NTIsOCArODUyLDggQEAgYW1kNjRfcHVzaF9hcmd1bWVudHMg KHN0cnVjdCByZWdjYWNoZSAqcgogICAgfTsKLSAgIHN0cnVjdCB2YWx1ZSAqKnN0YWNrX2FyZ3Mg PSBhbGxvY2EgKG5hcmdzICogc2l6ZW9mIChzdHJ1Y3QgdmFsdWUgKikpOworICAgc3RydWN0IHZh bHVlICoqc3RhY2tfYXJncyA9IFhBTExPQ0FWRUMgKHN0cnVjdCB2YWx1ZSAqLCBuYXJncyk7CiAg ICBpbnQgbnVtX3N0YWNrX2FyZ3MgPSAwOwogLSAgaW50IG51bV9lbGVtZW50cyA9IDA7CiAtICBp bnQgZWxlbWVudCA9IDA7CkBAIC0yMTcsMTAgKzIxNiwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvYW1kNjQtdGRlcC5jCiAgICAgICAgZW51bSBhbWQ2NF9yZWdfY2xhc3MgdGhl Y2xhc3NbMl07CiAgICAgICAgaW50IG5lZWRlZF9pbnRlZ2VyX3JlZ3MgPSAwOwogICAgICAgIGlu dCBuZWVkZWRfc3NlX3JlZ3MgPSAwOwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2Ft ZDY0LXdpbmRvd3MtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2FtZDY0 LXdpbmRvd3MtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmln L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA1OTg2ODA1NCAr MDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIw MTUtMDUtMzEgMTc6MTU6MDMuNDIxODgyODU5ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEw MjIub3JpZy9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy43OTQw MzkzNDAgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvYW1kNjQtd2luZG93cy10 ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45MzUwNjAyMDQgKzAyMDAKIEBAIC0yODgsNyArMjg4 LDcgQEAgYW1kNjRfd2luZG93c19yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcgogIAkJCSAgICBz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCQkgICAgZ2Ri X2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKQEAgLTIzMCwxMSArMjI5 LDExIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAu YwogICAgaW50IHJlZ251bSA9IC0xOwogIAogICAgLyogU2VlIGlmIG91ciB2YWx1ZSBpcyByZXR1 cm5lZCB0aHJvdWdoIGEgcmVnaXN0ZXIuICBJZiBpdCBpcywgdGhlbgotSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2FybS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9n ZGIvYXJtLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9n ZGIvYXJtLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA2OTg2ODExNiArMDIwMAotKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FybS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MjU4 ODI4ODQgKzAyMDAKLUBAIC0zNTM3LDcgKzM1MzcsNyBAQCBhcm1fdmZwX2NwcmNfcmVnX2NoYXIg KGVudW0gYXJtX3ZmcF9jcHJjCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvYXJt LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjE3LjgwMDAzOTM4MCArMDIwMAorKysrIGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi9hcm0tdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTM3MDYwMjE3 ICswMjAwCitAQCAtMzUzMSw3ICszNTMxLDcgQEAgYXJtX3ZmcF9jcHJjX3JlZ19jaGFyIChlbnVt IGFybV92ZnBfY3ByYwogICAgIGFycmF5KS4gIFZlY3RvciB0eXBlcyBhcmUgbm90IGN1cnJlbnRs eSBzdXBwb3J0ZWQsIG1hdGNoaW5nIHRoZQogICAgIGdlbmVyaWMgQUFQQ1Mgc3VwcG9ydC4gICov CiAgCkBAIC0yNDMsNyArMjQyLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2Fy bS10ZGVwLmMKICBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUgKnQsCiAg CQkJICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSAqYmFzZV90eXBlKQogIHsKLUBAIC0z NjAwLDcgKzM2MDAsNyBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUK K0BAIC0zNTk0LDcgKzM1OTQsNyBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0 IHR5cGUKICAKICAgICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6CiAgICAgICAgewpAQCAtMjUyLDcg KzI1MSw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hcm0tdGRlcC5jCiAgCXVu c2lnbmVkIHVuaXRsZW47CiAgCWNvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZ UEVfVEFSR0VUX1RZUEUgKHQpLCBiYXNlX3R5cGUpOwogIAlpZiAoY291bnQgPT0gLTEpCi1AQCAt MzYyMCwxMyArMzYyMCwxNSBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5 cGUKK0BAIC0zNjE0LDEzICszNjE0LDE1IEBAIGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChz dHJ1Y3QgdHlwZQogIAogICAgICBjYXNlIFRZUEVfQ09ERV9TVFJVQ1Q6CiAgICAgICAgewpAQCAt MjcxLDcgKzI3MCw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hcm0tdGRlcC5j CiAgCSAgICBpZiAoc3ViX2NvdW50ID09IC0xKQogIAkgICAgICByZXR1cm4gLTE7CiAgCSAgICBj b3VudCArPSBzdWJfY291bnQ7Ci1AQCAtMzY0NiwxMyArMzY0OCwxNSBAQCBhcm1fdmZwX2NwcmNf c3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKK0BAIC0zNjQwLDEzICszNjQyLDE1IEBAIGFybV92 ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChzdHJ1Y3QgdHlwZQogIAogICAgICBjYXNlIFRZUEVfQ09E RV9VTklPTjoKICAgICAgICB7CkBAIC0yOTAsNyArMjg5LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2FybS10ZGVwLmMKICAJICAgIGlmIChzdWJfY291bnQgPT0gLTEpCiAgCSAg ICAgIHJldHVybiAtMTsKICAJICAgIGNvdW50ID0gKGNvdW50ID4gc3ViX2NvdW50ID8gY291bnQg OiBzdWJfY291bnQpOwotQEAgLTM2ODgsNyArMzY5Miw3IEBAIGFybV92ZnBfY2FsbF9jYW5kaWRh dGUgKHN0cnVjdCB0eXBlICp0LAorQEAgLTM2ODIsNyArMzY4Niw3IEBAIGFybV92ZnBfY2FsbF9j YW5kaWRhdGUgKHN0cnVjdCB0eXBlICp0LAogIAkJCWludCAqY291bnQpCiAgewogICAgZW51bSBh cm1fdmZwX2NwcmNfYmFzZV90eXBlIGIgPSBWRlBfQ1BSQ19VTktOT1dOOwpAQCAtMjk5LDcgKzI5 OCw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hcm0tdGRlcC5jCiAgICBpZiAo YyA8PSAwIHx8IGMgPiA0KQogICAgICByZXR1cm4gMDsKICAgICpiYXNlX3R5cGUgPSBiOwotQEAg LTM3NjksNyArMzc3Myw3IEBAIGFybV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpn ZGIKK0BAIC0zNzYzLDcgKzM3NjcsNyBAQCBhcm1fcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiCiAgCiAgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8IG5hcmdzOyBhcmdudW0r KykKICAgICAgewpAQCAtMzA4LDI4ICszMDcsMjcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2FybS10ZGVwLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGU7CiAgICAgICAg c3RydWN0IHR5cGUgKnRhcmdldF90eXBlOwogICAgICAgIGVudW0gdHlwZV9jb2RlIHR5cGVjb2Rl OwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2F2ci10ZGVwLmMKK0luZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyMi9nZGIvYXZyLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljku NTAuMjAxNTA1MjAub3JpZy9nZGIvYXZyLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3MTg2 ODEyOSArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2F2ci10ZGVwLmMJMjAxNS0w NS0zMSAxNzoxNTowMy40MjU4ODI4ODQgKzAyMDAKLUBAIC0xMTk2LDEzICsxMTk2LDE0IEBAIGF2 cl9kdW1teV9pZCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHMKKy0tLSBnZGItNy4xMC41MC4y MDE1MTAyMi5vcmlnL2dkYi9hdnItdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODAxMDM5Mzg2 ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2F2ci10ZGVwLmMJMjAxNS0xMC0y NCAyMzoxNTozNS43NzU1NTczMjUgKzAyMDAKK0BAIC0xMTk2LDEzICsxMTk2LDEzIEBAIGF2cl9k dW1teV9pZCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHMKICAKICBzdHJ1Y3Qgc3RhY2tfaXRl bQogIHsKIC0gIGludCBsZW47CiArICBzc2l6ZV90IGxlbjsKICAgIHN0cnVjdCBzdGFja19pdGVt ICpwcmV2OwotICAgdm9pZCAqZGF0YTsKKyAgIGdkYl9ieXRlICpkYXRhOwogIH07CiAgCiAgc3Rh dGljIHN0cnVjdCBzdGFja19pdGVtICoKIC1wdXNoX3N0YWNrX2l0ZW0gKHN0cnVjdCBzdGFja19p dGVtICpwcmV2LCBjb25zdCBiZmRfYnl0ZSAqY29udGVudHMsIGludCBsZW4pCi0rcHVzaF9zdGFj a19pdGVtIChzdHJ1Y3Qgc3RhY2tfaXRlbSAqcHJldiwgY29uc3QgYmZkX2J5dGUgKmNvbnRlbnRz LAotKwkJIHNzaXplX3QgbGVuKQorK3B1c2hfc3RhY2tfaXRlbSAoc3RydWN0IHN0YWNrX2l0ZW0g KnByZXYsIGNvbnN0IGJmZF9ieXRlICpjb250ZW50cywgc3NpemVfdCBsZW4pCiAgewogICAgc3Ry dWN0IHN0YWNrX2l0ZW0gKnNpOwotICAgc2kgPSB4bWFsbG9jIChzaXplb2YgKHN0cnVjdCBzdGFj a19pdGVtKSk7Ci1AQCAtMTI5MSwxMiArMTI5MiwxMiBAQCBhdnJfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiCisgICBzaSA9IFhORVcgKHN0cnVjdCBzdGFja19pdGVtKTsKK0BA IC0xMjkxLDEyICsxMjkxLDEyIEBAIGF2cl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNo ICpnZGIKICAKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CkBAIC0zNDUs MTAgKzM0MywxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYXZyLXRkZXAuYwog IAogICAgICAgIC8qIENhbGN1bGF0ZSB0aGUgcG90ZW50aWFsIGxhc3QgcmVnaXN0ZXIgbmVlZGVk LiAgKi8KICAgICAgICBsYXN0X3JlZ251bSA9IHJlZ251bSAtIChsZW4gKyAobGVuICYgMSkpOwot SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2JmaW4tdGRlcC5jCitJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjIvZ2RiL2JmaW4tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41 MC4yMDE1MDUyMC5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3MTg2 ODEyOSArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2JmaW4tdGRlcC5jCTIwMTUt MDUtMzEgMTc6MTU6MDMuNDI2ODgyODkwICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIu b3JpZy9nZGIvYmZpbi10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MDIwMzkzOTMgKzAyMDAK KysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvYmZpbi10ZGVwLmMJMjAxNS0xMC0yNCAyMzox NDoyMC45MzcwNjAyMTcgKzAyMDAKIEBAIC01MDQsNyArNTA0LDcgQEAgYmZpbl9wdXNoX2R1bW15 X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgZ2RiX2J5dGUgYnVmWzRdOwogICAgaW50IGk7 CkBAIC0zNjcsMTAgKzM2NSwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYmZp bi10ZGVwLmMKICAKICAgICAgICBzcCAtPSBjb250YWluZXJfbGVuOwogICAgICAgIHdyaXRlX21l bW9yeSAoc3AsIHZhbHVlX2NvbnRlbnRzX3dyaXRlYWJsZSAoYXJnc1tpXSksIGNvbnRhaW5lcl9s ZW4pOwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NyaXMtdGRlcC5jCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2NyaXMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9jcmlzLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAx LjA3Mzg2ODE0MiArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NyaXMtdGRlcC5j CTIwMTUtMDUtMzEgMTc6MTU6MDMuNDI3ODgyODk3ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAx NTEwMjIub3JpZy9nZGIvY3Jpcy10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MDIwMzkzOTMg KzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvY3Jpcy10ZGVwLmMJMjAxNS0xMC0y NCAyMzoxNTo1OC45MDI3MTA5NDUgKzAyMDAKIEBAIC02NjMsMTMgKzY2MywxMyBAQCBzdGF0aWMg Q09SRV9BRERSIGNyaXNfdW53aW5kX3NwIChzdHJ1Y3QKICAKICBzdHJ1Y3Qgc3RhY2tfaXRlbQpA QCAtMzc4LDE2ICszNzYsMTYgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NyaXMt dGRlcC5jCiAtICBpbnQgbGVuOwogKyAgc3NpemVfdCBsZW47CiAgICBzdHJ1Y3Qgc3RhY2tfaXRl bSAqcHJldjsKLSAgIHZvaWQgKmRhdGE7CisgICBnZGJfYnl0ZSAqZGF0YTsKICB9OwogIAogIHN0 YXRpYyBzdHJ1Y3Qgc3RhY2tfaXRlbSAqCiAtcHVzaF9zdGFja19pdGVtIChzdHJ1Y3Qgc3RhY2tf aXRlbSAqcHJldiwgY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzLCBpbnQgbGVuKQogK3B1c2hfc3Rh Y2tfaXRlbSAoc3RydWN0IHN0YWNrX2l0ZW0gKnByZXYsIGNvbnN0IGdkYl9ieXRlICpjb250ZW50 cywgc3NpemVfdCBsZW4pCiAgewotICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNpOwotICAgc2kgPSB4 bWFsbG9jIChzaXplb2YgKHN0cnVjdCBzdGFja19pdGVtKSk7Ci1AQCAtODQyLDEzICs4NDIsMTMg QEAgY3Jpc19wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAorICAgc3RydWN0IHN0 YWNrX2l0ZW0gKnNpID0gWE5FVyAoc3RydWN0IHN0YWNrX2l0ZW0pOworICAgc2ktPmRhdGEgPSAo Z2RiX2J5dGUgKikgeG1hbGxvYyAobGVuKTsKK0BAIC04NDEsMTMgKzg0MSwxMyBAQCBjcmlzX3B1 c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgCiAgICBmb3IgKGFyZ251bSA9IDA7 IGFyZ251bSA8IG5hcmdzOyBhcmdudW0rKykKICAgICAgewpAQCAtNDA1LDEwICs0MDMsMTAgQEAg SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NyaXMtdGRlcC5jCiAgICAgICAgCiAgICAg ICAgLyogSG93IG1heSByZWdpc3RlcnMgd29ydGggb2Ygc3RvcmFnZSBkbyB3ZSBuZWVkIGZvciB0 aGlzIGFyZ3VtZW50PyAgKi8KICAgICAgICByZWdfZGVtYW5kID0gKGxlbiAvIDQpICsgKGxlbiAl IDQgIT0gMCA/IDEgOiAwKTsKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9oODMwMC10 ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaDgzMDAtdGRlcC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9oODMwMC10ZGVwLmMJMjAx NS0wNS0zMSAxNzoxNTowMS4wNzQ4NjgxNDggKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9oODMwMC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40Mjc4ODI4OTcgKzAyMDAKKy0t LSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9oODMwMC10ZGVwLmMJMjAxNS0xMC0yNCAy MzoxNDoxNy44MDMwMzk0MDAgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaDgz MDAtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTY6MzMuNjUzOTQxNzc3ICswMjAwCiBAQCAtNjM5LDcg KzYzOSw3IEBAIGg4MzAwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAJCSAg ICAgICBpbnQgc3RydWN0X3JldHVybiwgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQogIHsKQEAgLTQy MywxMyArNDIxLDEzIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9oODMwMC10ZGVw LmMKICAgICAgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKICAgICAgICBzdHJ1Y3QgdHlwZSAq dHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbYXJndW1lbnRdKTsKIC0gICAgICBpbnQgbGVuID0gVFlQ RV9MRU5HVEggKHR5cGUpOwotICAgICAgIGNoYXIgKmNvbnRlbnRzID0gKGNoYXIgKikgdmFsdWVf Y29udGVudHMgKGFyZ3NbYXJndW1lbnRdKTsKICsgICAgICBzc2l6ZV90IGxlbiA9IFRZUEVfTEVO R1RIICh0eXBlKTsKKyAgICAgICBjaGFyICpjb250ZW50cyA9IChjaGFyICopIHZhbHVlX2NvbnRl bnRzIChhcmdzW2FyZ3VtZW50XSk7CiAgCiAgICAgICAgLyogUGFkIHRoZSBhcmd1bWVudCBhcHBy b3ByaWF0ZWx5LiAgKi8KIC0gICAgICBpbnQgcGFkZGVkX2xlbiA9IGFsaWduX3VwIChsZW4sIHdv cmRzaXplKTsKICsgICAgICBzc2l6ZV90IHBhZGRlZF9sZW4gPSBhbGlnbl91cCAobGVuLCB3b3Jk c2l6ZSk7Ci0gICAgICAgZ2RiX2J5dGUgKnBhZGRlZCA9IHhtYWxsb2MgKHBhZGRlZF9sZW4pOwor ICAgICAgIGdkYl9ieXRlICpwYWRkZWQgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAocGFkZGVkX2xl bik7CiAgICAgICAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIHBhZGRlZCk7CiAgCiBA QCAtNjk5LDcgKzY5OSw3IEBAIGg4MzAwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KmcKQEAgLTQ0MSwxMSArNDM5LDExIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9o ODMwMC10ZGVwLmMKICAKICAJICAgICAgZm9yIChvZmZzZXQgPSAwOyBvZmZzZXQgPCBwYWRkZWRf bGVuOyBvZmZzZXQgKz0gd29yZHNpemUpCiAgCQl7Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvaHBwYS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaHBwYS10 ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2hwcGEt dGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDc2ODY4MTYwICswMjAwCi0rKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvaHBwYS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40Mjg4ODI5MDMg KzAyMDAKLUBAIC05OTEsNyArOTkxLDcgQEAgaHBwYTY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKgorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL2hwcGEtdGRlcC5j CTIwMTUtMTAtMjQgMjM6MTQ6MTcuODA0MDM5NDA3ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjIvZ2RiL2hwcGEtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTM5MDYwMjMxICswMjAw CitAQCAtOTk2LDcgKzk5Niw3IEBAIGhwcGE2NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJh cmNoICoKICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKICAgICAg ICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZyk7CkBAIC00NTQsNyArNDUyLDcg QEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2hwcGEtdGRlcC5jCiAgICAgICAgY29u c3QgYmZkX2J5dGUgKnZhbGJ1ZjsKICAgICAgICBiZmRfYnl0ZSBmcHRyYnVmWzhdOwogICAgICAg IGludCByZWdudW07Ci1AQCAtMTE4Niw3ICsxMTg2LDcgQEAgaHBwYTY0X3JldHVybl92YWx1ZSAo c3RydWN0IGdkYmFyY2ggKmdkYgorQEAgLTExOTEsNyArMTE5MSw3IEBAIGhwcGE2NF9yZXR1cm5f dmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGIKICAJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCiAgCQkgICAgIGdkYl9ieXRlICpyZWFkYnVmLCBjb25z dCBnZGJfYnl0ZSAqd3JpdGVidWYpCiAgewpAQCAtNDYzLDEwICs0NjEsMTAgQEAgSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL2hwcGEtdGRlcC5jCiAgICBpbnQgcmVnbnVtLCBvZmZzZXQ7 CiAgCiAgICBpZiAobGVuID4gMTYpCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaTM4 Ni1kYXJ3aW4tdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2kzODYtZGFy d2luLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIv aTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDc2ODY4MTYwICswMjAwCi0r KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTUtMDUtMzEg MTc6MTU6MDMuNDI4ODgyOTAzICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9n ZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODA0MDM5NDA3ICswMjAw CisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDE1LTEw LTI0IDIzOjE0OjIwLjkzOTA2MDIzMSArMDIwMAogQEAgLTE2Myw3ICsxNjMsNyBAQCBpMzg2X2Rh cndpbl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhCiAgCiAgICBmb3IgKHdyaXRlX3Bhc3Mg PSAwOyB3cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFzcysrKQpAQCAtNDc2LDEwICs0NzQsMTAgQEAg SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwogICAgICAg IGludCBudW1fbTEyOCA9IDA7CiAgCiAgICAgICAgaWYgKHN0cnVjdF9yZXR1cm4pCi1JbmRleDog Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaTM4Ni10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyMi9nZGIvaTM4Ni10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUw NTIwLm9yaWcvZ2RiL2kzODYtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDgyODY4MTk4ICsw MjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaTM4Ni10ZGVwLmMJMjAxNS0wNS0zMSAx NzoxNTowMy40MzA4ODI5MTUgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dk Yi9pMzg2LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjE3LjgwNzAzOTQyNiArMDIwMAorKysrIGdk Yi03LjEwLjUwLjIwMTUxMDIyL2dkYi9pMzg2LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0 MDA2MDIzNyArMDIwMAogQEAgLTI2NTEsNyArMjY1MSw3IEBAIGkzODZfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgIGdkYl9ieXRlIGJ1Zls0XTsKICAgIGludCBpOwpAQCAt NTQzLDEwICs1NDEsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2kzODYtdGRl cC5jCiAgCiAgICBpZiAoaTM4Nl9mcF9yZWdudW1fcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSwg cmVnbnVtKSkKICAgICAgewotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2lxMjAwMC10 ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaXEyMDAwLXRkZXAuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvaXEyMDAwLXRkZXAuYwky MDE1LTA1LTMxIDE3OjE1OjAxLjA4Mzg2ODIwNCArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2lxMjAwMC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MzE4ODI5MjIgKzAyMDAK Ky0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9pcTIwMDAtdGRlcC5jCTIwMTUtMTAt MjQgMjM6MTQ6MTcuODA4MDM5NDMzICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2Ri L2lxMjAwMC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45NDEwNjAyNDQgKzAyMDAKIEBAIC02 NTEsOCArNjUxLDkgQEAgaXEyMDAwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgog ICAgY29uc3QgYmZkX2J5dGUgKnZhbDsKICAgIGJmZF9ieXRlIGJ1Zls0XTsKQEAgLTU1OSwxMCAr NTU3LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9pcTIwMDAtdGRlcC5jCiAg ICAvKiBVc2VkIHRvIGNvcHkgc3RydWN0IGFyZ3VtZW50cyBpbnRvIHRoZSBzdGFjay4gICovCiAg ICBDT1JFX0FERFIgc3RydWN0X3B0cjsKICAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9tMzJyLXRkZXAuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9tMzJyLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbTMyci10ZGVw LmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wODM4NjgyMDQgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9tMzJyLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzMTg4MjkyMiArMDIw MAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL20zMnItdGRlcC5jCTIwMTUtMTAt MjQgMjM6MTQ6MTcuODA4MDM5NDMzICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2Ri L20zMnItdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTQxMDYwMjQ0ICswMjAwCiBAQCAtNjg3 LDcgKzY4Nyw3IEBAIG0zMnJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAg IENPUkVfQUREUiByZWd2YWw7CiAgICBnZGJfYnl0ZSAqdmFsOwpAQCAtNTcyLDEwICs1NzAsMTAg QEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL20zMnItdGRlcC5jCiAgCiAgICAvKiBG aXJzdCBmb3JjZSBzcCB0byBhIDQtYnl0ZSBhbGlnbm1lbnQuICAqLwogICAgc3AgPSBzcCAmIH4z OwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL202OGstdGRlcC5jCitJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjIvZ2RiL202OGstdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OS41MC4yMDE1MDUyMC5vcmlnL2dkYi9tNjhrLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA4 NDg2ODIxMCArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL202OGstdGRlcC5jCTIw MTUtMDUtMzEgMTc6MTU6MDMuNDMyODgyOTI4ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEw MjIub3JpZy9nZGIvbTY4ay10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MDgwMzk0MzMgKzAy MDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbTY4ay10ZGVwLmMJMjAxNS0xMC0yNCAy MzoxNDoyMC45NDEwNjAyNDQgKzAyMDAKIEBAIC0zODIsNyArMzgyLDcgQEAgbTY4a19yZWdfc3Ry dWN0X3JldHVybl9wIChzdHJ1Y3QgZ2RiYXJjaAogIHsKICAgIHN0cnVjdCBnZGJhcmNoX3RkZXAg KnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOwpAQCAtNTk4LDEwICs1OTYsMTAgQEAgSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL202OGstdGRlcC5jCiAgCiAgICAgICAgLyogTm9u LXNjYWxhcnMgYmlnZ2VyIHRoYW4gNCBieXRlcyBhcmUgbGVmdCBhbGlnbmVkLCBvdGhlcnMgYXJl CiAgCSByaWdodCBhbGlnbmVkLiAgKi8KLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9t ODhrLXRkZXAuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9tODhrLXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbTg4ay10ZGVwLmMJ MjAxNS0wNS0zMSAxNzoxNTowMS4wODU4NjgyMTcgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9tODhrLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzMjg4MjkyOCArMDIwMAor LS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL204OGstdGRlcC5jCTIwMTUtMTAtMjQg MjM6MTQ6MTcuODA5MDM5NDQwICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL204 OGstdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTQyMDYwMjUwICswMjAwCiBAQCAtMjU3LDEz ICsyNTcsMTMgQEAgbTg4a19zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgogIHsK ICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hl KTsKQEAgLTYyOSwxMSArNjI3LDExIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9t ODhrLXRkZXAuYwogIAogICAgICAgIGlmIChtODhrX2luX3JlZ2lzdGVyX3AgKHR5cGUpKQogIAl7 Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWVwLXRkZXAuYworSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDIyL2dkYi9tZXAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41 MC4yMDE1MDUyMC5vcmlnL2dkYi9tZXAtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDg2ODY4 MjIzICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWVwLXRkZXAuYwkyMDE1LTA1 LTMxIDE3OjE1OjAzLjQzMzg4MjkzNCArMDIwMAotQEAgLTIyNjksNyArMjI2OSw3IEBAIHB1c2hf bGFyZ2VfYXJndW1lbnRzIChDT1JFX0FERFIgc3AsIGludAorLS0tIGdkYi03LjEwLjUwLjIwMTUx MDIyLm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MDkwMzk0NDAgKzAy MDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbWVwLXRkZXAuYwkyMDE1LTEwLTI0IDIz OjE0OjIwLjk0MjA2MDI1MCArMDIwMAorQEAgLTIyNzAsNyArMjI3MCw3IEBAIHB1c2hfbGFyZ2Vf YXJndW1lbnRzIChDT1JFX0FERFIgc3AsIGludAogIAogICAgZm9yIChpID0gMDsgaSA8IGFyZ2M7 IGkrKykKICAgICAgewpAQCAtNjQyLDEwICs2NDAsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL21lcC10ZGVwLmMKICAKICAgICAgICBpZiAoYXJnX2xlbiA+IE1FUF9HUFJfU0la RSkKICAgICAgICAgIHsKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9taXBzLXRkZXAu YworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9taXBzLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbWlwcy10ZGVwLmMJMjAxNS0wNS0z MSAxNzoxNTowMS4wOTQ4NjgyNzMgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9t aXBzLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzNTg4Mjk0NyArMDIwMAorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL21pcHMtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcu ODE0MDM5NDczICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL21pcHMtdGRlcC5j CTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTQzMDYwMjU3ICswMjAwCiBAQCAtNDU1LDcgKzQ1NSw3IEBA IHN0YXRpYyB2b2lkCiAgbWlwc194ZmVyX3JlZ2lzdGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCSAgICBpbnQgcmVnX251bSwgaW50IGxl bmd0aCwKQEAgLTY2Niw3ICs2NjQsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv bWlwcy10ZGVwLmMKICAgIGlmIChtaXBzX2RlYnVnICYmIG91dCAhPSBOVUxMKQogICAgICB7CiAg ICAgICAgaW50IGk7Ci1AQCAtNDU1MSwxMyArNDU1MSwxMyBAQCBtaXBzX2VhYmlfcHVzaF9kdW1t eV9jYWxsIChzdHJ1Y3QgZ2RiYXJjCitAQCAtNDU1NCwxMyArNDU1NCwxMyBAQCBtaXBzX2VhYmlf cHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjCiAgICAgICAgZ2RiX2J5dGUgdmFsYnVmW01B WF9SRUdJU1RFUl9TSVpFXTsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVt XTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChhcmcpKTsKQEAgLTY4Myw3ICs2ODEsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvbWlwcy10ZGVwLmMKICAKICAgICAgICAvKiBUaGUgRUFCSSBwYXNzZXMgc3RydWN0dXJl cyB0aGF0IGRvIG5vdCBmaXQgaW4gYSByZWdpc3RlciBieQogICAgICAgICAgIHJlZmVyZW5jZS4g ICovCi1AQCAtNDgyNiw3ICs0ODI2LDcgQEAgbWlwc19lYWJpX3JldHVybl92YWx1ZSAoc3RydWN0 IGdkYmFyY2ggKgorQEAgLTQ4MjksNyArNDgyOSw3IEBAIG1pcHNfZWFiaV9yZXR1cm5fdmFsdWUg KHN0cnVjdCBnZGJhcmNoICoKICAKICBzdGF0aWMgaW50CiAgbWlwc19uMzJuNjRfZnBfYXJnX2No dW5rX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUsCkBA IC02OTIsNyArNjkwLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21pcHMtdGRl cC5jCiAgewogICAgaW50IGk7CiAgCi1AQCAtNDg0MSw3ICs0ODQxLDcgQEAgbWlwc19uMzJuNjRf ZnBfYXJnX2NodW5rX3AgKHN0cnVjdCBnZGJhcgorQEAgLTQ4NDQsNyArNDg0NCw3IEBAIG1pcHNf bjMybjY0X2ZwX2FyZ19jaHVua19wIChzdHJ1Y3QgZ2RiYXIKICAKICAgIGZvciAoaSA9IDA7IGkg PCBUWVBFX05GSUVMRFMgKGFyZ190eXBlKTsgaSsrKQogICAgICB7CkBAIC03MDEsNyArNjk5LDcg QEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21pcHMtdGRlcC5jCiAgICAgICAgc3Ry dWN0IHR5cGUgKmZpZWxkX3R5cGU7CiAgCiAgICAgICAgLyogV2UncmUgb25seSBsb29raW5nIGF0 IG5vcm1hbCBmaWVsZHMuICAqLwotQEAgLTQ4ODMsNyArNDg4Myw3IEBAIG1pcHNfbjMybjY0X3B1 c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmEKK0BAIC00ODg2LDcgKzQ4ODYsNyBAQCBtaXBzX24z Mm42NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhCiAgICBpbnQgYXJncmVnOwogICAgaW50 IGZsb2F0X2FyZ3JlZzsKICAgIGludCBhcmdudW07CkBAIC03MTAsNyArNzA4LDcgQEAgSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21pcHMtdGRlcC5jCiAgICBpbnQgc3RhY2tfb2Zmc2V0 ID0gMDsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVy IChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIg KGZ1bmN0aW9uLCBOVUxMKTsKLUBAIC01MjM0LDExICs1MjM0LDExIEBAIG1pcHNfbjMybjY0X3Jl dHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2gKK0BAIC01MjM3LDExICs1MjM3LDExIEBAIG1pcHNf bjMybjY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2gKICAJCQkJOiBNSVBTX1YwX1JFR05V TSk7CiAgCSAgIGZpZWxkIDwgVFlQRV9ORklFTERTICh0eXBlKTsgZmllbGQrKywgcmVnbnVtICs9 IDIpCiAgCXsKQEAgLTcyNiw3ICs3MjQsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvbWlwcy10ZGVwLmMKICAJICBpZiAoVFlQRV9MRU5HVEggKFRZUEVfRklFTERfVFlQRSAodHlw ZSwgZmllbGQpKSA9PSAxNikKICAJICAgIHsKICAJICAgICAgLyogQSAxNi1ieXRlIGxvbmcgZG91 YmxlIGZpZWxkIGdvZXMgaW4gdHdvIGNvbnNlY3V0aXZlCi1AQCAtNTI4MCw4ICs1MjgwLDggQEAg bWlwc19uMzJuNjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaAorQEAgLTUyODMsOCArNTI4 Myw4IEBAIG1pcHNfbjMybjY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2gKICAJICBpZiAo b2Zmc2V0ICsgeGZlciA+IFRZUEVfTEVOR1RIICh0eXBlKSkKICAJICAgIHhmZXIgPSBUWVBFX0xF TkdUSCAodHlwZSkgLSBvZmZzZXQ7CiAgCSAgaWYgKG1pcHNfZGVidWcpCkBAIC03MzcsNyArNzM1 LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21pcHMtdGRlcC5jCiAgCSAgbWlw c194ZmVyX3JlZ2lzdGVyIChnZGJhcmNoLCByZWdjYWNoZSwKICAJCQkgICAgICBnZGJhcmNoX251 bV9yZWdzIChnZGJhcmNoKSArIHJlZ251bSwKICAJCQkgICAgICB4ZmVyLCBCRkRfRU5ESUFOX1VO S05PV04sIHJlYWRidWYsIHdyaXRlYnVmLAotQEAgLTUzMzksNyArNTMzOSw3IEBAIG1pcHNfbzMy X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKK0BAIC01MzQyLDcgKzUzNDIsNyBAQCBt aXBzX28zMl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCiAgICBpbnQgYXJncmVnOwog ICAgaW50IGZsb2F0X2FyZ3JlZzsKICAgIGludCBhcmdudW07CkBAIC03NDYsNyArNzQ0LDcgQEAg SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21pcHMtdGRlcC5jCiAgICBpbnQgc3RhY2tf b2Zmc2V0ID0gMDsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRl X29yZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9u X2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsKLUBAIC01NDAzLDEzICs1NDAzLDEzIEBAIG1pcHNfbzMy X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKK0BAIC01NDA2LDEzICs1NDA2LDEzIEBA IG1pcHNfbzMyX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKICAgICAgICBjb25zdCBn ZGJfYnl0ZSAqdmFsOwogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdudW1dOwog ICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KGFyZykpOwpAQCAtNzYzLDcgKzc2MSw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9taXBzLXRkZXAuYwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwogIAot QEAgLTU4NjcsOCArNTg2Nyw4IEBAIG1pcHNfbzY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdk YmFyY2gKK0BAIC01ODcwLDggKzU4NzAsOCBAQCBtaXBzX282NF9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhcmNoCiAgICBpbnQgYXJncmVnOwogICAgaW50IGZsb2F0X2FyZ3JlZzsKICAgIGlu dCBhcmdudW07CkBAIC03NzQsNyArNzcyLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL21pcHMtdGRlcC5jCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hf Ynl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5j dGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CiAgCi1AQCAtNTkyOCwxMyArNTkyOCwxMyBAQCBt aXBzX282NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCitAQCAtNTkzMSwxMyArNTkz MSwxMyBAQCBtaXBzX282NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCiAgICAgICAg Y29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJn bnVtXTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlIChhcmcpKTsKQEAgLTc5MSwxMSArNzg5LDExIEBAIEluZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9taXBzLXRkZXAuYwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChh cmcpOwogIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21uMTAzMDAtdGRlcC5jCitJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL21uMTAzMDAtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9tbjEwMzAwLXRkZXAuYwkyMDE1LTA1 LTMxIDE3OjE1OjAxLjA5NTg2ODI3OSArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L21uMTAzMDAtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDM1ODgyOTQ3ICswMjAwCi1AQCAt MTIyNSw3ICsxMjI1LDcgQEAgbW4xMDMwMF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNo CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNS0x MC0yNCAyMzoxNDoxNy44MTUwMzk0ODAgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9n ZGIvbW4xMDMwMC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45NDMwNjAyNTcgKzAyMDAKK0BA IC0xMjI3LDcgKzEyMjcsNyBAQCBtbjEwMzAwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFy Y2gKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChn ZGJhcmNoKTsKICAgIGNvbnN0IGludCBwdXNoX3NpemUgPSByZWdpc3Rlcl9zaXplIChnZGJhcmNo LCBFX1BDX1JFR05VTSk7CiAgICBpbnQgcmVnc191c2VkOwpAQCAtODA0LDEwICs4MDIsMTAgQEAg SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21uMTAzMDAtdGRlcC5jCiAgICBpbnQgc3Rh Y2tfb2Zmc2V0ID0gMDsKICAgIGludCBhcmdudW07CiAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwot SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL210LXRkZXAuYworSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi9tdC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL210LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA5Njg2ODI4NiAr MDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL210LXRkZXAuYwkyMDE1LTA1LTMxIDE3 OjE1OjAzLjQzNjg4Mjk1MyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2Ri L210LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjE3LjgxNTAzOTQ4MCArMDIwMAorKysrIGdkYi03 LjEwLjUwLjIwMTUxMDIyL2dkYi9tdC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45NDQwNjAy NjQgKzAyMDAKIEBAIC03ODEsOSArNzgxLDkgQEAgbXRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYQogICAgZ2RiX2J5dGUgYnVmW01UX01BWF9TVFJVQ1RfU0laRV07CiAgICBp bnQgYXJncmVnID0gTVRfMVNUX0FSR1JFRzsKQEAgLTgyMCwxMCArODE4LDEwIEBAIEluZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tdC10ZGVwLmMKICAgIGludCBpLCBqOwogIAogICAgLyog Rmlyc3QgaGFuZGxlIGhvd2V2ZXIgbWFueSBhcmdzIHdlIGNhbiBmaXQgaW50byBNVF8xU1RfQVJH UkVHIHRocnUKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9wcGMtc3lzdi10ZGVwLmMK K0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvcHBjLXN5c3YtdGRlcC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAx NS0wNS0zMSAxNzoxNTowMS4wOTc4NjgyOTIgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MzY4ODI5NTMgKzAyMDAK Ky0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNS0x MC0yNCAyMzoxNDoxNy44MTYwMzk0ODYgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9n ZGIvcHBjLXN5c3YtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTQ0MDYwMjY0ICswMjAwCiBA QCAtNjYsNyArNjYsNyBAQCBwcGNfc3lzdl9hYmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2Ri YXJjaCk7CiAgICBpbnQgb3BlbmNsX2FiaSA9IHBwY19zeXN2X3VzZV9vcGVuY2xfYWJpICh2YWx1 ZV90eXBlIChmdW5jdGlvbikpOwpAQCAtODY4LDExICs4NjYsMTEgQEAgSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3BwYy1zeXN2LXRkZXAuYwogIAogICAgLyogRW5mb3JjZSBhbGlnbm1l bnQgb2Ygc3RhY2sgbG9jYXRpb24sIGlmIHJlcXVlc3RlZC4gICovCiAgICBpZiAoYWxpZ24gPiB0 ZGVwLT53b3Jkc2l6ZSkKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9ybDc4LXRkZXAu YworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9ybDc4LXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvcmw3OC10ZGVwLmMJMjAxNS0wNS0z MSAxNzoxNTowMS4wOTc4NjgyOTIgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9y bDc4LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzNzg4Mjk1OSArMDIwMAotQEAgLTEzMzMs OCArMTMzMyw4IEBAIHJsNzhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0t LSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9ybDc4LXRkZXAuYwkyMDE1LTEwLTI0IDIz OjE0OjE3LjgxNjAzOTQ4NiArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9ybDc4 LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0NDA2MDI2NCArMDIwMAorQEAgLTEzMzgsOCAr MTMzOCw4IEBAIHJsNzhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgIGZv ciAoaSA9IG5hcmdzIC0gMTsgaSA+PSAwOyBpLS0pCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlw ZSAqdmFsdWVfdHlwZSA9IHZhbHVlX2VuY2xvc2luZ190eXBlIChhcmdzW2ldKTsKQEAgLTg4Mywx MCArODgxLDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9ybDc4LXRkZXAuYwog IAogICAgICAgIHNwIC09IGNvbnRhaW5lcl9sZW47CiAgICAgICAgd3JpdGVfbWVtb3J5IChybDc4 X21ha2VfZGF0YV9hZGRyZXNzIChzcCksCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv cnM2MDAwLWFpeC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvcnM2MDAw LWFpeC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2Ri L3JzNjAwMC1haXgtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDk4ODY4Mjk4ICswMjAwCi0r KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxNS0wNS0zMSAx NzoxNTowMy40Mzc4ODI5NTkgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dk Yi9yczYwMDAtYWl4LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjE3LjgxNjAzOTQ4NiArMDIwMAor KysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE1LTEwLTI0 IDIzOjE0OjIwLjk0NDA2MDI2NCArMDIwMAogQEAgLTE4Niw5ICsxODYsOSBAQCByczYwMDBfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0 ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29y ZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKQEAgLTkwOCwxMSArOTA2LDExIEBA IEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9yczYwMDAtYWl4LXRkZXAuYwogIAogICAg ICAgIGlmIChhcmdieXRlcykKICAJewotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Mz OTAtbGludXgtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3MzOTAtbGlu dXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9z MzkwLWxpbnV4LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA5OTg2ODMwNCArMDIwMAotKysr IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTUtMDUtMzEgMTc6 MTY6MTMuMjg1MzIwNzY5ICswMjAwCi1AQCAtMjQ2Myw3ICsyNDYzLDcgQEAgczM5MF9mdW5jdGlv bl9hcmdfdmVjdG9yIChzdHJ1Y3QgdHlwZSAqdAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9y aWcvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODE3MDM5NDkzICsw MjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTUt MTAtMjQgMjM6MTQ6MjAuOTQ1MDYwMjcwICswMjAwCitAQCAtMjU3MSw3ICsyNTcxLDcgQEAgczM5 MF9mdW5jdGlvbl9hcmdfdmVjdG9yIChzdHJ1Y3QgdHlwZSAqdAogIC8qIERldGVybWluZSB3aGV0 aGVyIE4gaXMgYSBwb3dlciBvZiB0d28uICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTkyMSw3ICs5 MTksNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvczM5MC1saW51eC10ZGVwLmMK ICB7CiAgICByZXR1cm4gbiAmJiAoKG4gJiAobiAtIDEpKSA9PSAwKTsKICB9Ci1AQCAtMjUyMCw3 ICsyNTIwLDcgQEAgczM5MF9oYW5kbGVfYXJnIChzdHJ1Y3QgczM5MF9hcmdfc3RhdGUgKgorQEAg LTI2MjgsNyArMjYyOCw3IEBAIHMzOTBfaGFuZGxlX2FyZyAoc3RydWN0IHMzOTBfYXJnX3N0YXRl ICoKICAJCSBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciwgaW50IGlzX3VubmFtZWQpCiAgewog ICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsK QEAgLTkzMCwxMCArOTI4LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zMzkw LWxpbnV4LXRkZXAuYwogICAgaW50IHdyaXRlX21vZGUgPSBhcy0+cmVnY2FjaGUgIT0gTlVMTDsK ICAKICAgIGlmIChzMzkwX2Z1bmN0aW9uX2FyZ19mbG9hdCAodHlwZSkpCi1JbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvc2NvcmUtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjIvZ2RiL3Njb3JlLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMTAwODY4MzExICswMjAw Ci0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc2NvcmUtdGRlcC5jCTIwMTUtMDUtMzEgMTc6 MTU6MDMuNDM5ODgyOTcyICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIv c2NvcmUtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODE3MDM5NDkzICswMjAwCisrKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Njb3JlLXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0 NTA2MDI3MCArMDIwMAogQEAgLTUxNCw3ICs1MTQsNyBAQCBzY29yZV9wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoICpnCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFy Y2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgYXJnbnVtOwpAQCAtOTQzLDEwICs5NDEs MTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Njb3JlLXRkZXAuYwogICAgQ09S RV9BRERSIHN0YWNrX29mZnNldCA9IDA7CiAgICBDT1JFX0FERFIgYWRkciA9IDA7CiAgCi1JbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc2gtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjIvZ2RiL3NoLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1 MjAub3JpZy9nZGIvc2gtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMTAxODY4MzE3ICswMjAw Ci0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc2gtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6 MDMuNDM5ODgyOTcyICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvc2gt dGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODE4MDM5NDk5ICswMjAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL3NoLXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0NjA2MDI3NyAr MDIwMAogQEAgLTgwNSw3ICs4MDUsNyBAQCBzaF9za2lwX3Byb2xvZ3VlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjCiAgc3RhdGljIGludAogIHNoX3VzZV9zdHJ1Y3RfY29udmVudGlvbiAoaW50IHJl bmVzYXNfYWJpLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKQEAgLTk4NSwxMCArOTgzLDEwIEBAIEluZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zaC10ZGVwLmMKICAgIGludCBwYXNzX29uX3N0YWNr ID0gMDsKICAgIGludCBsYXN0X3JlZ19hcmcgPSBJTlRfTUFYOwogIAotSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3NoNjQtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIv Z2RiL3NoNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmln L2dkYi9zaDY0LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjEwMjg2ODMyMyArMDIwMAotKysr IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3NoNjQtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMu NDQwODgyOTc4ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvc2g2NC10 ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MTkwMzk1MDYgKzAyMDAKKysrKyBnZGItNy4xMC41 MC4yMDE1MTAyMi9nZGIvc2g2NC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45NDYwNjAyNzcg KzAyMDAKIEBAIC0xMDU2LDcgKzEwNTYsNyBAQCBzaDY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKmdkCiAgCQkgICAgICBDT1JFX0FERFIgc3RydWN0X2FkZHIpCiAgewpAQCAtMTAw NywxMCArMTAwNSwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc2g2NC10ZGVw LmMKICAgIGludCBhcmdyZWdfc2l6ZTsKICAgIGludCBmcF9hcmdzWzEyXTsKICAKLUluZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcGFyYy10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyMi9nZGIvc3BhcmMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi9zcGFyYy10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDM4NjgzMjkg KzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcGFyYy10ZGVwLmMJMjAxNS0wNS0z MSAxNzoxNTowMy40NDE4ODI5ODQgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmln L2dkYi9zcGFyYy10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MTkwMzk1MDYgKzAyMDAKKysr KyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvc3BhcmMtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6 MjAuOTQ2MDYwMjc3ICswMjAwCiBAQCAtNTI1LDcgKzUyNSw3IEBAIHNwYXJjMzJfc3RvcmVfYXJn dW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQog ICAgICB7CkBAIC0xMDIwLDEwICsxMDE4LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9zcGFyYy10ZGVwLmMKICAKICAgICAgICBpZiAoc3BhcmNfc3RydWN0dXJlX29yX3VuaW9u X3AgKHR5cGUpCiAgCSAgfHwgKHNwYXJjX2Zsb2F0aW5nX3AgKHR5cGUpICYmIGxlbiA9PSAxNikK LUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcGFyYzY0LXRkZXAuYworSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDIyL2dkYi9zcGFyYzY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNS0wNS0zMSAxNzox NTowMS4xMDQ4NjgzMzYgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcGFyYzY0 LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQ0MTg4Mjk4NCArMDIwMAorLS0tIGdkYi03LjEw LjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcu ODIwMDM5NTEzICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3NwYXJjNjQtdGRl cC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTQ3MDYwMjg0ICswMjAwCiBAQCAtNjM2LDcgKzYzNiw4 IEBAIHNwYXJjNjRfMTZfYnl0ZV9hbGlnbl9wIChzdHJ1Y3QgdHlwZSAqdHkKICAKICBzdGF0aWMg dm9pZApAQCAtMTA3OSwxMSArMTA3NywxMSBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvc3BhcmM2NC10ZGVwLmMKICAgICAgICBpbnQgcmVnbnVtID0gLTE7CiAgICAgICAgZ2RiX2J5 dGUgYnVmWzE2XTsKICAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcHUtdGRlcC5j CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3NwdS10ZGVwLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxNS0wNS0zMSAx NzoxNTowMS4xMDU4NjgzNDIgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcHUt dGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDQyODgyOTkwICswMjAwCi1AQCAtMTQzMCw3ICsx NDMwLDcgQEAgc3B1X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYgorLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDox Ny44MjEwMzk1MTkgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvc3B1LXRkZXAu YwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0NzA2MDI4NCArMDIwMAorQEAgLTE0MjksNyArMTQyOSw3 IEBAIHNwdV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGIKICAgICAgICBzdHJ1 Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVj a190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqY29u dGVudHMgPSB2YWx1ZV9jb250ZW50cyAoYXJnKTsKQEAgLTEwOTIsNyArMTA5MCw3IEBAIEluZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcHUtdGRlcC5jCiAgCiAgICAgICAgLyogSWYgdGhl IGFyZ3VtZW50IGRvZXNuJ3Qgd2hvbGx5IGZpdCBpbnRvIHJlZ2lzdGVycywgaXQgYW5kCiAgCSBh bGwgc3Vic2VxdWVudCBhcmd1bWVudHMgZ28gdG8gdGhlIHN0YWNrLiAgKi8KLUBAIC0xNDYyLDcg KzE0NjIsNyBAQCBzcHVfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCitAQCAt MTQ2MSw3ICsxNDYxLDcgQEAgc3B1X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdk YgogIAl7CiAgCSAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwogIAkgIHN0cnVjdCB0eXBl ICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC0xMTAxLDEwICsx MDk5LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcHUtdGRlcC5jCiAgCSAg aW50IHByZWZlcnJlZF9zbG90OwogIAkgIAogIAkgIGlmIChzcHVfc2NhbGFyX3ZhbHVlX3AgKHR5 cGUpKQotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RpYzZ4LXRkZXAuYworSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90aWM2eC10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1 OjAxLjEwNjg2ODM0OCArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RpYzZ4LXRk ZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQ0Mjg4Mjk5MCArMDIwMAorLS0tIGdkYi03LjEwLjUw LjIwMTUxMDIyLm9yaWcvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjE3LjgyMTAz OTUxOSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90aWM2eC10ZGVwLmMJMjAx NS0xMC0yNCAyMzoxNDoyMC45NDcwNjAyODQgKzAyMDAKIEBAIC04OTUsNyArODk1LDcgQEAgdGlj NnhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZwogICAgaW50IGFyZ3JlZyA9IDA7 CiAgICBpbnQgYXJnbnVtOwpAQCAtMTE0MiwxMCArMTE0MCwxMCBAQCBJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvdGljNngtdGRlcC5jCiAgCiAgCSAgYWRkciA9IHNwICsgc3RhY2tfb2Zm c2V0OwogIAkgIHdyaXRlX21lbW9yeSAoYWRkciwgdmFsLCBsZW4pOwotSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3RpbGVneC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Mi9nZGIvdGlsZWd4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvdGlsZWd4LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjEwNzg2ODM1NSArMDIw MAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNS0wNS0zMSAx NzoxNTowMy40NDI4ODI5OTAgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dk Yi90aWxlZ3gtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODIyMDM5NTI2ICswMjAwCisrKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoy MC45NDcwNjAyODQgKzAyMDAKIEBAIC0yODgsNyArMjg4LDcgQEAgdGlsZWd4X3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKgogICAgQ09SRV9BRERSIHN0YWNrX2Rlc3QgPSBzcDsKICAg IGludCBhcmdyZWcgPSBUSUxFR1hfUjBfUkVHTlVNOwpAQCAtMTE1NSwxMCArMTE1MywxMCBAQCBJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGlsZWd4LXRkZXAuYwogICAgc3RhdGljIGNv bnN0IGdkYl9ieXRlIGZvdXJfemVyb193b3Jkc1sxNl0gPSB7IDAgfTsKICAKICAgIC8qIElmIHN0 cnVjdF9yZXR1cm4gaXMgMSwgdGhlbiB0aGUgc3RydWN0IHJldHVybiBhZGRyZXNzIHdpbGwKLUlu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92ODUwLXRkZXAuYworSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi92ODUwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvdjg1MC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDc4Njgz NTUgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92ODUwLXRkZXAuYwkyMDE1LTA1 LTMxIDE3OjE1OjAzLjQ0Mzg4Mjk5NyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9y aWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODIyMDM5NTI2ICswMjAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Y4NTAtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6 MjAuOTQ4MDYwMjkwICswMjAwCiBAQCAtMTAxOSw3ICsxMDE5LDcgQEAgdjg1MF9wdXNoX2R1bW15 X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIg PSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGFyZ3JlZzsKQEAgLTExNzcs MTAgKzExNzUsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Y4NTAtdGRlcC5j CiAgICAgICAgZ2RiX2J5dGUgKnZhbDsKICAgICAgICBnZGJfYnl0ZSB2YWxidWZbdjg1MF9yZWdf c2l6ZV07CiAgCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmF4LXRkZXAuYworSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi92YXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi92YXgtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6 MDEuMTA4ODY4MzYxICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmF4LXRkZXAu YwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQ0Mzg4Mjk5NyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIw MTUxMDIyLm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MjIwMzk1MjYg KzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmF4LXRkZXAuYwkyMDE1LTEwLTI0 IDIzOjE0OjIwLjk0ODA2MDI5MCArMDIwMAogQEAgLTExMSw3ICsxMTEsNyBAQCB2YXhfc3RvcmVf YXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCA9IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC0xMTk5LDEwICsxMTk3 LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YXgtdGRlcC5jCiAgCiAgICAg ICAgc3AgLT0gKGxlbiArIDMpICYgfjM7CiAgICAgICAgY291bnQgKz0gKGxlbiArIDMpIC8gNDsK LUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94c3Rvcm15MTYtdGRlcC5jCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3hzdG9ybXkxNi10ZGVwLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxNS0wNS0z MSAxNzoxNTowMS4xMDg4NjgzNjEgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94 c3Rvcm15MTYtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDQzODgyOTk3ICswMjAwCistLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIveHN0b3JteTE2LXRkZXAuYwkyMDE1LTEwLTI0 IDIzOjE0OjE3LjgyMjAzOTUyNiArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi94 c3Rvcm15MTYtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTQ4MDYwMjkwICswMjAwCiBAQCAt MjMzLDggKzIzMyw5IEBAIHhzdG9ybXkxNl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmMK ICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJh cmNoKTsKICAgIENPUkVfQUREUiBzdGFja19kZXN0ID0gc3A7CkBAIC0xMjE1LDExICsxMjEzLDEx IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94c3Rvcm15MTYtdGRlcC5jCiAgICBj b25zdCBnZGJfYnl0ZSAqdmFsOwogICAgZ2RiX2J5dGUgYnVmW3hzdG9ybXkxNl9wY19zaXplXTsK ICAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94dGVuc2EtdGRlcC5jCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3h0ZW5zYS10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNS0wNS0zMSAxNzox NTowMS4xMTA4NjgzNzMgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94dGVuc2Et dGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDQ0ODgzMDAzICswMjAwCi1AQCAtMTY0Niw4ICsx NjQ2LDcgQEAgeHRlbnNhX3N0b3JlX3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKgorLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNS0xMC0yNCAyMzox NDoxNy44MjQwMzk1MzkgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIveHRlbnNh LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0ODA2MDI5MCArMDIwMAorQEAgLTE2NDAsOCAr MTY0MCw3IEBAIHh0ZW5zYV9zdG9yZV9yZXR1cm5fdmFsdWUgKHN0cnVjdCB0eXBlICoKICAKICAg ICAgICBpZiAobGVuID4gKGNhbGxzaXplID4gOCA/IDggOiAxNikpCiAgCWludGVybmFsX2Vycm9y IChfX0ZJTEVfXywgX19MSU5FX18sCkBAIC0xMjI5LDcgKzEyMjcsNyBAQCBJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIveHRlbnNhLXRkZXAuYwogICAgICAgIGFyZWcgPSBhcnJlZ19udW1i ZXIgKGdkYmFyY2gsCiAgCQkJICAgZ2RiYXJjaF90ZGVwIChnZGJhcmNoKS0+YTBfYmFzZSArIDIg KyBjYWxsc2l6ZSwgd2IpOwogIAotQEAgLTE3MjEsMTggKzE3MjAsMTggQEAgeHRlbnNhX3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgorQEAgLTE3MTUsMTggKzE3MTQsMTggQEAgeHRl bnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogIHsKICAgIGVudW0gYmZkX2Vu ZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGludCBp OwpAQCAtMTI1MSw3ICsxMjQ5LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3h0 ZW5zYS10ZGVwLmMKICAgICAgICBpbnQgcmVnbm87CQkvKiByZWdubyBpZiBpbiByZWdpc3Rlci4g ICovCiAgICAgIH0gdTsKICAgIH07Ci1AQCAtMTc1Niw5ICsxNzU1LDEwIEBAIHh0ZW5zYV9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKK0BAIC0xNzUwLDkgKzE3NDksMTAgQEAgeHRl bnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogICAgICAgICAgewogIAkgIHN0 cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKICAJICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBj aGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTEyNjUsNyArMTI2Myw3IEBAIElu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94dGVuc2EtdGRlcC5jCiAgCSAgc3dpdGNoIChU WVBFX0NPREUgKGFyZ190eXBlKSkKICAJICAgIHsKICAJICAgIGNhc2UgVFlQRV9DT0RFX0lOVDoK LUBAIC0xODI4LDggKzE4MjgsOCBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqCitAQCAtMTgyMiw4ICsxODIyLDggQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKgogIAkgIGluZm8tPmFsaWduID0gVFlQRV9MRU5HVEggKGJ1aWx0aW5fdHlw ZSAoZ2RiYXJjaCktPmJ1aWx0aW5fbG9uZyk7CiAgCSAgYnJlYWs7CiAgCX0KQEAgLTEyNzUsNyAr MTI3Myw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94dGVuc2EtdGRlcC5jCiAg CiAgICAgICAgLyogQWxpZ24gc2l6ZSBhbmQgb25zdGFja19zaXplLiAgKi8KICAgICAgICBzaXpl ID0gKHNpemUgKyBpbmZvLT5hbGlnbiAtIDEpICYgfihpbmZvLT5hbGlnbiAtIDEpOwotQEAgLTE4 NzQsNyArMTg3NCw3IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoK K0BAIC0xODY4LDcgKzE4NjgsNyBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqCiAgCiAgICAgICAgaWYgKGluZm8tPm9uc3RhY2spCiAgCXsKQEAgLTEyODQsNyArMTI4 Miw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94dGVuc2EtdGRlcC5jCiAgCSAg Q09SRV9BRERSIG9mZnNldCA9IHNwICsgaW5mby0+dS5vZmZzZXQ7CiAgCiAgCSAgLyogT2RkLXNp emVkIHN0cnVjdHMgYXJlIGFsaWduZWQgdG8gdGhlIGxvd2VyIHNpZGUgb2YgYSBtZW1vcnkKLUBA IC0xODkwLDcgKzE4OTAsNyBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqCitAQCAtMTg4NCw3ICsxODg0LDcgQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKgogIAl9CiAgICAgICAgZWxzZQogIAl7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3 OTU0MjQtYml0cG9zLTI1b2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUu cGF0Y2gKaW5kZXggNmZlNjg0ZS4uMjBkYjkxNSAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQt Yml0cG9zLTI1b2YyNS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjVvZjI1LnBh dGNoCkBAIC00NywxMCArNDcsMTAgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1l bnQ7IGZpbGVuYW1lPWY3Ny1ib3VuZHMucGF0Y2gKIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2YtbGFuZy5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9mLWxhbmcuaAky MDE1LTAxLTA2IDIyOjQ2OjMxLjYyMDg1Mjk5NiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2YtbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDY6MzQuMTkwODY1NDY2ICswMTAwCistLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZi1sYW5nLmgJMjAxNS0xMS0wMiAyMToyNTox NC4yMzMxNjEwOTcgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmgJ MjAxNS0xMS0wMiAyMToyNToyMi40MDQyMTQ4NjAgKzAxMDAKIEBAIC02Miw5ICs2Miw5IEBAIHN0 cnVjdCBjb21tb25fYmxvY2sKICAgIHN0cnVjdCBzeW1ib2wgKmNvbnRlbnRzWzFdOwogIH07CkBA IC02MywxMSArNjMsMTEgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtbGFuZy5o CiAgCiAgZXh0ZXJuIHZvaWQgZjc3X2dldF9keW5hbWljX2FycmF5X2xlbmd0aCAoc3RydWN0IHR5 cGUgKik7CiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi10eXBlcHJpbnQuYwor SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXR5cGVwcmludC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9mLXR5cGVwcmludC5jCTIwMTUtMDEt MDYgMjI6NDY6MzEuNjIxODUzMDAxICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv Zi10eXBlcHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ3OjAzLjczMTAwODc5OCArMDEwMAotQEAgLTE1 OCw3ICsxNTgsNyBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCist LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTExLTAy IDIxOjI1OjE0LjIzNDE2MTEwNCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9m LXR5cGVwcmludC5jCTIwMTUtMTEtMDIgMjE6MjU6MjIuNDA0MjE0ODYwICswMTAwCitAQCAtMTcx LDcgKzE3MSw3IEBAIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUKICAJ CQkgICAgIGludCBzaG93LCBpbnQgcGFzc2VkX2FfcHRyLCBpbnQgZGVtYW5nbGVkX2FyZ3MsCiAg CQkJICAgICBpbnQgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsKQogIHsKQEAgLTc2LDcgKzc2LDcg QEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdHlwZXByaW50LmMKICAKICAgIC8q IE5vIHN0YXRpYyB2YXJpYWJsZXMgYXJlIHBlcm1pdHRlZCBhcyBhbiBlcnJvciBjYWxsIG1heSBv Y2N1ciBkdXJpbmcKICAgICAgIGV4ZWN1dGlvbiBvZiB0aGlzIGZ1bmN0aW9uLiAgKi8KLUBAIC0x OTIsNyArMTkyLDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQor QEAgLTIwNCw3ICsyMDQsNyBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0 eXBlCiAgCiAgICAgICAgICAgIGxvd2VyX2JvdW5kID0gZjc3X2dldF9sb3dlcmJvdW5kICh0eXBl KTsKICAgICAgICAgICAgaWYgKGxvd2VyX2JvdW5kICE9IDEpCS8qIE5vdCB0aGUgZGVmYXVsdC4g ICovCkBAIC04NSw3ICs4NSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLXR5 cGVwcmludC5jCiAgCiAgICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0LCBpZiB3ZSBoYXZlIGFu IGFzc3VtZWQgc2l6ZSBhcnJheSwgd2UKICAgICAgICAgICAgICAgcHJpbnQgb3V0IGEgd2Fybmlu ZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91bmQgYXMgJyonLiAgKi8KLUBAIC0yMDIsNyArMjAyLDcg QEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQorQEAgLTIxNCw3ICsy MTQsNyBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCiAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB1cHBlcl9ib3VuZCA9IGY3 N19nZXRfdXBwZXJib3VuZCAodHlwZSk7CkBAIC05NCw3ICs5NCw3IEBAIEluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9mLXR5cGVwcmludC5jCiAgICAgICAgICAgICAgfQogIAogICAgICAg ICAgICBpZiAoVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgIT0gVFlQRV9DT0RF X0FSUkFZKQotQEAgLTI3MSw3ICsyNzEsNyBAQCB2b2lkCitAQCAtMjgzLDcgKzI4Myw3IEBAIHZv aWQKICBmX3R5cGVfcHJpbnRfYmFzZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCBzaG93LAogIAkJICAgaW50IGxldmVsKQogIHsKQEAgLTEwMyw3ICsxMDMs NyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi10eXBlcHJpbnQuYwogICAgaW50 IGluZGV4OwogIAogICAgUVVJVDsKLUBAIC0zNTMsNyArMzUzLDcgQEAgZl90eXBlX3ByaW50X2Jh c2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdAorQEAgLTM2NSw3ICszNjUsNyBAQCBmX3R5cGVfcHJp bnRfYmFzZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0CiAgICAgICAgZWxzZQogIAl7CiAgCSAgdXBw ZXJfYm91bmQgPSBmNzdfZ2V0X3VwcGVyYm91bmQgKHR5cGUpOwpAQCAtMTEyLDEwICsxMTIsMTAg QEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdHlwZXByaW50LmMKICAJfQogICAg ICAgIGJyZWFrOwogIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdmFscHJpbnQu YworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTAx LTA2IDIyOjQ2OjMxLjYyMTg1MzAwMSArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2YtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ2OjM0LjE5MTg2NTQ3MSArMDEwMAorLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjI1 OjE0LjIzNDE2MTEwNCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHBy aW50LmMJMjAxNS0xMS0wMiAyMToyNToyMi40MDUyMTQ4NjcgKzAxMDAKIEBAIC00Myw3ICs0Myw3 IEBAIExPTkdFU1QgZjc3X2FycmF5X29mZnNldF90YmxbTUFYX0ZPUlRSQU4KICAvKiBBcnJheSB3 aGljaCBob2xkcyBvZmZzZXRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0IGEgcm93J3MgZWxlbWVudHMK ICAgICBmb3IgYSBnaXZlbiBhcnJheS4gIEFycmF5IGFsc28gaG9sZHMgdGhlIHNpemUgb2YgZWFj aCBzdWJhcnJheS4gICovCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2 YWx1ZS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2gKaW5kZXgg NjRlMTU2NS4uMzE5NzhlYyAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2 YWx1ZS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtbGF6eXZhbHVlLnBhdGNoCkBA IC0xLDE1ICsxLDE5IEBACi0tLS0gZ2RiLTcuNS4wLjIwMTIwOTI2LW02NC9nZGIvdmFsdWUuYy1v cmlnCTIwMTItMTEtMDkgMTc6MDg6NTIuMTM3NDA2MTE4ICswMTAwCi0rKysgZ2RiLTcuNS4wLjIw MTIwOTI2LW02NC9nZGIvdmFsdWUuYwkyMDEyLTExLTA5IDE3OjMyOjM4LjMyNDE5OTIzMCArMDEw MAotQEAgLTY2Myw3ICs2NjMsNiBAQCBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAq dHlwZSkKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmFsdWUuYworPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNS0xMC0yNCAy MzoxNzowNC4wNDIxNDM2MjggKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmFs dWUuYwkyMDE1LTEwLTI0IDIzOjE3OjI3LjY4NzMwMDY4OSArMDIwMAorQEAgLTkzNCw3ICs5MzQs NiBAQCBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICAgIGRlc2Ny aXB0aW9uIGNvcnJlY3RseS4gICovCiAgICBjaGVja190eXBlZGVmICh0eXBlKTsKICAKIC0gIHVs b25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAoVFlQRV9MRU5HVEggKHR5cGUpKTsKLSAgIHZhbCA9 IChzdHJ1Y3QgdmFsdWUgKikgeHphbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgdmFsdWUpKTsKKyAgIHZh bCA9IFhDTkVXIChzdHJ1Y3QgdmFsdWUpOwogICAgdmFsLT5jb250ZW50cyA9IE5VTEw7CiAgICB2 YWwtPm5leHQgPSBhbGxfdmFsdWVzOwotLS0tIC9kZXYvbnVsbAkyMDEyLTEwLTE4IDExOjA4OjEz LjIwMjMyODIzOSArMDIwMAotKysrIGdkYi03LjUuMC4yMDEyMDkyNi1tNjQtdGVzdC9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuZXhwCTIwMTItMTEtMDkgMTg6MTM6 NTYuMjg2NTg3OTk0ICswMTAwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmV4cAorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5l eHAJMjAxNS0xMC0yNCAyMzoxNzowNC4wNDIxNDM2MjggKzAyMDAKIEBAIC0wLDAgKzEsNTkgQEAK ICsjIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBA IC03MCw4ICs3NCwxMCBAQAogK30KICsKICt0ZXN0ICJuYXRpdmUiCi0tLS0gL2Rldi9udWxsCTIw MTItMTAtMTggMTE6MDg6MTMuMjAyMzI4MjM5ICswMjAwCi0rKysgLi9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYwkyMDEyLTExLTA5IDE3OjA4OjUxLjM3NDQwNjM0 NCArMDEwMAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvbG9uZ2VzdC10eXBlcy02NGJpdC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMJMjAxNS0xMC0yNCAy MzoxNzowNC4wNDIxNDM2MjggKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBUaGlzIHRlc3Rj YXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTAxLDggKzEwNywx MCBAQAogK3sKICsgIHJldHVybiAwOwogK30KLS0tLSAvZGV2L251bGwJMjAxMi0xMC0xOCAxMTow ODoxMy4yMDIzMjgyMzkgKzAyMDAKLSsrKyAuL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2Vz dC10eXBlcy02NGJpdC5TCTIwMTItMTEtMDkgMTc6NTE6MzcuNTk3ODQ2MTMwICswMTAwCitJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5 cGVzLTY0Yml0LlMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuUwkyMDE1LTEwLTI0IDIzOjE3OjA0LjA0MjE0 MzYyOCArMDIwMAogQEAgLTAsMCArMSwyNDkgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQg b2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMzUzLDggKzM2MSwxMCBAQAogKwkuc3Ry aW5nCSJjaGFyIgogKwkuaWRlbnQJIkdDQzogKEdOVSkgNC43LjMgMjAxMjExMDkgKHByZXJlbGVh c2UpIgogKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi0tLS0gL2Rldi9u dWxsCTIwMTItMTAtMTggMTE6MDg6MTMuMjAyMzI4MjM5ICswMjAwCi0rKysgZ2RiLTcuNS4wLjIw MTIwOTI2LW02NC10ZXN0L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJp dC5iejIudXUJMjAxMi0xMS0wOSAxODowNDo1Mi45OTU2OTI3NzEgKzAxMDAKK0luZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRi aXQuYnoyLnV1Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6Mi51dQkyMDE1LTEwLTI0IDIzOjE3OjA0LjA0 MjE0MzYyOCArMDIwMAogQEAgLTAsMCArMSw2NyBAQAogK2JlZ2luIDc1NSBnZGIuYmFzZS9sb25n ZXN0LXR5cGVzLTY0Yml0LmJ6MgogK00wRUlILjMlITYyOTM2PCdOI09IYCJHL19fX19fX19fXl9f X19fXz9fWV9fX19fXy8vXTdTUUQ1J14vXyUKCmRpZmYgLS1naXQgYS9nZGItdXBzdHJlYW0ucGF0 Y2ggYi9nZGItdXBzdHJlYW0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uM2U1M2Q0NgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi11cHN0cmVhbS5wYXRjaApAQCAtMCww ICsxLDY5IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNS0xMC9t c2cwMDUxMC5odG1sCitTdWJqZWN0OiBbcGF0Y2hdIEZpeCBhY2Nlc3NfdG9fcGFja2VkX2FycmF5 LmV4cCB0eXBvcy9lcnJvcnMgIFtSZTogW1BBVENIXSBbQWRhXSBGaXggdGhlIGV2YWx1YXRpb24g b2YgYWNjZXNzIHRvIHBhY2tlZCBhcnJheSBzdWJzY3JpcHRdCisKKworLS1yNVB5ZDcrZlhOdDg0 RmYzCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKK0NvbnRlbnQt RGlzcG9zaXRpb246IGlubGluZQorCitPbiBNb24sIDE0IFNlcCAyMDE1IDE2OjE4OjAwICswMjAw LCBKb2VsIEJyb2JlY2tlciB3cm90ZToKKz4gPiAJKiBnZGIuYWRhL2FjY2Vzc190b19wYWNrZWRf YXJyYXkuZXhwOiBOZXcgdGVzdGNhc2UuCis+IAorPiBMb29rcyBnb29kIHRvIG1lLiBQbGVhc2Ug Z28gYWhlYWQgYW5kIHB1c2guCisKK1J1bm5pbmcgLi9nZGIuYWRhL2FjY2Vzc190b19wYWNrZWRf YXJyYXkuZXhwIC4uLgorRVJST1I6IHRjbCBlcnJvciBzb3VyY2luZyAuL2dkYi5hZGEvYWNjZXNz X3RvX3BhY2tlZF9hcnJheS5leHAuCitFUlJPUjogZXh0cmEgY2hhcmFjdGVycyBhZnRlciBjbG9z ZS1xdW90ZQorICAgIHdoaWxlIGV4ZWN1dGluZworImdkYl90ZXN0ICJwcmludCBwYWNrLmEiICJc XCgwID0+IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXFwpIikiCisgICAgKGZpbGUgIi4v Z2RiLmFkYS9hY2Nlc3NfdG9fcGFja2VkX2FycmF5LmV4cCIgbGluZSAyOSkKKyAgICBpbnZva2Vk IGZyb20gd2l0aGluCisic291cmNlIC4vZ2RiLmFkYS9hY2Nlc3NfdG9fcGFja2VkX2FycmF5LmV4 cCIKKyAgICAoInVwbGV2ZWwiIGJvZHkgbGluZSAxKQorICAgIGludm9rZWQgZnJvbSB3aXRoaW4K KyJ1cGxldmVsICMwIHNvdXJjZSAuL2dkYi5hZGEvYWNjZXNzX3RvX3BhY2tlZF9hcnJheS5leHAi CisgICAgaW52b2tlZCBmcm9tIHdpdGhpbgorImNhdGNoICJ1cGxldmVsICMwIHNvdXJjZSAkdGVz dF9maWxlX25hbWUiIgorCitBdHRhY2hpbmcgYSBmaXggb2YgdGhlIHR5cG9zLgorCitVbnJlbGF0 ZWQgdG8gdGhlIHR5cG9zIEkgaGF2ZSBjaGFuZ2VkIHRoZSBwcmludCBleHBlY3RhdGlvbnMgcy8i eCIvIiA9IHgiLworYXMgZm9yIGV4YW1wbGUgZXhwZWN0YXRpb24gIjMiIHNob3VsZCBub3QgbWF0 Y2ggIiA9IDQzIi4KKworT24gRmVkb3JhIDIxIHg4Nl82NCBpdCB0aGVuOgorIyBvZiBleHBlY3Rl ZCBwYXNzZXMJNQorCitPSyBmb3IgY2hlY2staW4/CisKKworSmFuCisKKy0tcjVQeWQ3K2ZYTnQ4 NEZmMworQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitDb250ZW50 LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKKworZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VM b2cKKzIwMTUtMTAtMjUgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KKworCSogZ2RiLmFkYS9hY2Nlc3NfdG9fcGFja2VkX2FycmF5LmV4cDogRml4IHR5cG9zIGVy cm9yaW5nIHRoZSB0ZXN0ZmlsZS4KKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFk YS9hY2Nlc3NfdG9fcGFja2VkX2FycmF5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9hY2Nl c3NfdG9fcGFja2VkX2FycmF5LmV4cAoraW5kZXggMGRjYTc4MC4uMWJmM2UyMiAxMDA2NDQKKy0t LSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9hY2Nlc3NfdG9fcGFja2VkX2FycmF5LmV4cAorKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL2FjY2Vzc190b19wYWNrZWRfYXJyYXkuZXhwCitAQCAt MjYsOCArMjYsOCBAQCBjbGVhbl9yZXN0YXJ0ICR7dGVzdGZpbGV9Cisgc2V0IGJwX2xvY2F0aW9u IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJCUkVBSyIgJHt0ZXN0ZGlyfS9mb28uYWRiXQorIHJ1bnRv ICJmb28uYWRiOiRicF9sb2NhdGlvbiIKKyAKKy1nZGJfdGVzdCAicHJpbnQgcGFjay5hIiAiXFwo MCA9PiAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMFxcKSIpCistZ2RiX3Rlc3QgInBhY2su YWEiICAgICAgIlxcKGFjY2VzcyBwYWNrXFwuYXJyYXlfdHlwZVxcKSAweC4qIDxwYWNrXFwuYT4i KQorK2dkYl90ZXN0ICJwcmludCBwYWNrLmEiICIgPSBcXCgwID0+IDEsIDIsIDMsIDQsIDUsIDYs IDcsIDgsIDksIDEwXFwpIgorK2dkYl90ZXN0ICJwcmludCBwYWNrLmFhIiAiID0gXFwoYWNjZXNz IHBhY2tcXC5hcnJheV90eXBlXFwpIDB4LiogPHBhY2tcXC5hPiIKKyAKKy1nZGJfdGVzdCAicGFj ay5hKDIpIiAgICIzIgorLWdkYl90ZXN0ICJwYWNrLmFhKDIpIiAgIjMiCisrZ2RiX3Rlc3QgInBy aW50IHBhY2suYSgyKSIgIiA9IDMiCisrZ2RiX3Rlc3QgInByaW50IHBhY2suYWEoMikiICIgPSAz IgorCistLXI1UHlkNytmWE50ODRGZjMtLQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC0w NG9mMjMtZml4LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC0wNG9mMjMtZml4LnBhdGNoCmluZGV4IGFk MjM5YjUuLjNiOGQ3N2EgMTAwNjQ0Ci0tLSBhL2dkYi12bGEtaW50ZWwtMDRvZjIzLWZpeC5wYXRj aAorKysgYi9nZGItdmxhLWludGVsLTA0b2YyMy1maXgucGF0Y2gKQEAgLTEsMzggKzEsMzggQEAK IFJlOiBbUEFUQ0ggMDQvMjNdIHZsYTogbWFrZSBkeW5hbWljIGZvcnRyYW4gYXJyYXlzIGZ1bmN0 aW9uYWwuCiBodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDYvbXNn MDA1NzAuaHRtbAogCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYyNy9nZGIvdmFsYXJpdGguYwor SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxhcml0aC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNy45MC4yMDE0MDYyNy5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTQtMDctMDcgMjA6 NDQ6MDMuMTM2Mzk0NTI1ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYyNy9nZGIvdmFsYXJp dGguYwkyMDE0LTA3LTA3IDIwOjQ1OjQxLjU4ODUzNjQ1OSArMDIwMAotQEAgLTE5NSwxMCArMTk1 LDE3IEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICoKKy0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMTEtMDMgMjA6NDE6NDgu NTQzNTA0OTk5ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMJ MjAxNS0xMS0wMyAyMDo0NjozNi45OTUyMzg4ODggKzAxMDAKK0BAIC0xOTMsMTAgKzE5MywxNyBA QCB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqCiAgICBzdHJ1Y3QgdHlw ZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7CiAgICBz dHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChh cnJheV90eXBlKSk7Ci0gICB1bnNpZ25lZCBpbnQgZWx0X3NpemUgPSBUWVBFX0xFTkdUSCAoZWx0 X3R5cGUpOworICAgdW5zaWduZWQgaW50IGVsdF9zaXplID0gdHlwZV9sZW5ndGhfdW5pdHMgKGVs dF90eXBlKTsKIC0gIHVuc2lnbmVkIGludCBlbHRfb2ZmcyA9IGxvbmdlc3RfdG9faW50IChpbmRl eCAtIGxvd2VyYm91bmQpOwogKyAgdW5zaWduZWQgaW50IGVsdF9vZmZzOwogICAgTE9OR0VTVCBl bHRfc3RyaWRlID0gVFlQRV9CWVRFX1NUUklERSAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBl KSk7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7CiAgCiArICBpZiAoVFlQRV9OT1RfQVNTT0NJQVRFRCAo YXJyYXlfdHlwZSkpCi0rICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1 c2Ugbm90IGFzc29jaWF0ZWQiKSk7CisrICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVt ZW50ICh2ZWN0b3Igbm90IGFzc29jaWF0ZWQpIikpOwogKyAgaWYgKFRZUEVfTk9UX0FMTE9DQVRF RCAoYXJyYXlfdHlwZSkpCi0rICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJl Y2F1c2Ugbm90IGFsbG9jYXRlZCIpKTsKKysgICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9yIGVs ZW1lbnQgKHZlY3RvciBub3QgYWxsb2NhdGVkKSIpKTsKICsKICsgIGVsdF9vZmZzID0gbG9uZ2Vz dF90b19pbnQgKGluZGV4IC0gbG93ZXJib3VuZCk7CiArCiAgICBpZiAoZWx0X3N0cmlkZSA+IDAp CiAgICAgIGVsdF9vZmZzICo9IGVsdF9zdHJpZGU7CiAgICBlbHNlIGlmIChlbHRfc3RyaWRlIDwg MCkKLUBAIC0yMTIsMTQgKzIxOSw3IEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0 IHZhbHVlICoKK0BAIC0yMTAsMTQgKzIxNyw3IEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAo c3RydWN0IHZhbHVlICoKICAKICAgIGlmIChpbmRleCA8IGxvd2VyYm91bmQgfHwgKCFUWVBFX0FS UkFZX1VQUEVSX0JPVU5EX0lTX1VOREVGSU5FRCAoYXJyYXlfdHlwZSkKLSAJCQkgICAgICYmIGVs dF9vZmZzID49IFRZUEVfTEVOR1RIIChhcnJheV90eXBlKSkpCisgCQkJICAgICAmJiBlbHRfb2Zm cyA+PSB0eXBlX2xlbmd0aF91bml0cyAoYXJyYXlfdHlwZSkpKQogLSAgICB7Ci0tICAgICAgaWYg KFRZUEVfTk9UX0FTU09DSUFURUQgKGFycmF5X3R5cGUpKQotLSAgICAgICAgZXJyb3IgKF8oIm5v IHN1Y2ggdmVjdG9yIGVsZW1lbnQgYmVjYXVzZSBub3QgYXNzb2NpYXRlZCIpKTsKLS0gICAgICBl bHNlIGlmIChUWVBFX05PVF9BTExPQ0FURUQgKGFycmF5X3R5cGUpKQotLSAgICAgICAgZXJyb3Ig KF8oIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgYmVjYXVzZSBub3QgYWxsb2NhdGVkIikpOworLSAg ICAgIGlmICh0eXBlX25vdF9hc3NvY2lhdGVkIChhcnJheV90eXBlKSkKKy0gICAgICAgIGVycm9y IChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFzc29jaWF0ZWQpIikpOwor LSAgICAgIGVsc2UgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAoYXJyYXlfdHlwZSkpCistICAgICAg ICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCAodmVjdG9yIG5vdCBhbGxvY2F0ZWQp IikpOwogLSAgICAgIGVsc2UKIC0gICAgICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVt ZW50IikpOwogLSAgICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgu cGF0Y2ggYi9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaAppbmRleCA1NmNlZmYyLi5m NjE5N2YyIDEwMDY0NAotLS0gYS9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaAorKysg Yi9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaApAQCAtMTY1LDE3ICsxNjUsMyBAQCBJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFt aWMtb3RoZXItZnJhbWUuZjkwCiArICBlbmQgaW50ZXJmYWNlCiArICBjYWxsIGZvbyAoJ2hlbGxv JykKICtlbmQKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXN0cmluZ3MuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUy MC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCTIwMTUtMDUt MzEgMTY6MTQ6MDQuMTY3NTMzODU0ICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAkyMDE1LTA1LTMxIDE2OjE0OjMx LjA3MzcxODIwMSArMDIwMAotQEAgLTMzLDkgKzMzLDYgQEAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgInZhcl9jaGFyLWFsbAotIGdkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAotICAgIiA9 IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMTAgXFwpXFwpICR7aGV4fSIgXAotICAgInBy aW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBmaXJzdCB0aW1lIgotLWdkYl90ZXN0ICJwcmlu dCAqdmFyX2NoYXIiIFwKLS0gICIgPSAnXFxcXDAwMFxcXFwwMDBcXFxcMDAwXFxcXDAwMFxcXFww MDBcXFxcMDAwXFxcXDAwMFxcXFwwMDBcXFxcMDAwXFxcXDAwMCciIFwKLS0gICJwcmludCAqdmFy X2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIGZpcnN0IHRpbWUiCi0gZ2RiX3Rlc3QgIndoYXRpcyB2YXJf Y2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEwIFxcKSIgXAotICAgIndo YXRpcyB2YXJfY2hhciBmaXJzdCB0aW1lIgotIGdkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5 cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEwIFxcKSIgXAoKZGlmZiAtLWdpdCBhL2dk Yi12bGEtaW50ZWwucGF0Y2ggYi9nZGItdmxhLWludGVsLnBhdGNoCmluZGV4IDg1YzAzNjQuLjMz NjE1ODUgMTAwNjQ0Ci0tLSBhL2dkYi12bGEtaW50ZWwucGF0Y2gKKysrIGIvZ2RiLXZsYS1pbnRl bC5wYXRjaApAQCAtNiwxMSArNiwxMSBAQCBHSVQgc25hcHNob3Q6CiBjb21taXQgNTExYmZmNTIw MzcyZmZjMTBmYTJmZjU2OWMxNzZiZGYxZTZlNDc1ZAogCiAKLUluZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9jLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Yy12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dk Yi9jLXZhbHByaW50LmMJMjAxNS0wNS0yOSAwODoyNzowMi42NTc3MTczMjYgKzAyMDAKLSsrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jLXZhbHByaW50LmMJMjAxNS0wNS0yOSAwODoyNzowNi4y NTM3NDAyMDkgKzAyMDAKLUBAIC01MzcsNyArNTM3LDE2IEBAIGNfdmFsdWVfcHJpbnQgKHN0cnVj dCB2YWx1ZSAqdmFsLCBzdHJ1Y3QKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9j LXZhbHByaW50LmMJMjAxNS0xMC0yNyAwMjo0ODozMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYy12YWxwcmludC5jCTIwMTUtMTEtMDMgMjE6MTM6MzUuOTU5 MzM5MTEzICswMTAwCitAQCAtNjQyLDcgKzY0MiwxNiBAQCBjX3ZhbHVlX3ByaW50IChzdHJ1Y3Qg dmFsdWUgKnZhbCwgc3RydWN0CiAgCXsKICAJICAvKiBub3JtYWwgY2FzZSAqLwogIAkgIGZwcmlu dGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKQEAgLTI4LDExICsyOCwxMSBAQCBJbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvYy12YWxwcmludC5jCiAgCSAgZnByaW50Zl9maWx0ZXJlZCAo c3RyZWFtLCAiKSAiKTsKICAJfQogICAgICB9Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvZHdhcmYybG9jLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9j LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2R3YXJmMmxv Yy5oCTIwMTUtMDUtMjkgMDg6Mjc6MDIuNjU4NzE3MzMzICswMjAwCi0rKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvZHdhcmYybG9jLmgJMjAxNS0wNS0yOSAwODoyNzowNi4yNTM3NDAyMDkgKzAy MDAKLUBAIC0xMzEsNiArMTMxLDExIEBAIGludCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNv bnN0IHN0cnUKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kd2FyZjJsb2MuaAky MDE1LTEwLTI3IDAyOjQ4OjMxLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9kd2FyZjJsb2MuaAkyMDE1LTExLTAzIDIwOjQxOjQ4LjUzMzUwNDk0MSArMDEwMAor QEAgLTEzOCw2ICsxMzgsMTEgQEAgaW50IGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qg c3RydQogIAkJCSAgICAgIHN0cnVjdCBwcm9wZXJ0eV9hZGRyX2luZm8gKmFkZHJfc3RhY2ssCiAg CQkJICAgICAgQ09SRV9BRERSICp2YWx1ZSk7CiAgCkBAIC00NCwyNCArNDQsMzEgQEAgSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMmxvYy5oCiAgLyogQSBoZWxwZXIgZm9yIHRo ZSBjb21waWxlciBpbnRlcmZhY2UgdGhhdCBjb21waWxlcyBhIHNpbmdsZSBkeW5hbWljCiAgICAg cHJvcGVydHkgdG8gQyBjb2RlLgogIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3 YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJyZWFkLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2R3YXJmMnJlYWQu YwkyMDE1LTA1LTI5IDA4OjI3OjAyLjY3NjcxNzQ0NyArMDIwMAotKysrIGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA1LTI5IDEwOjA0OjUyLjI3MjYwMDIxMiArMDIw MAotQEAgLTE4NjgsNiArMTg2OCwxMiBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2N1X2luY2x1ZGVz ICh2b2lkKTsKLSBzdGF0aWMgdm9pZCBjaGVja19wcm9kdWNlciAoc3RydWN0IGR3YXJmMl9jdSAq Y3UpOworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1 LTEwLTI3IDAyOjQ4OjMxLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0xMS0wMyAyMToxMzozOC4yMTYzNDk4MDAgKzAxMDAKK0BA IC0xNzQ1LDcgKzE3NDUsOSBAQCBzdGF0aWMgdm9pZCByZWFkX3NpZ25hdHVyZWRfdHlwZSAoc3Ry dWN0CiAgCi0gc3RhdGljIHZvaWQgZnJlZV9saW5lX2hlYWRlcl92b2lkcCAodm9pZCAqYXJnKTsK LSsKLStzdGF0aWMgaW50Ci0rYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAotKwkJICAgICAgc3RydWN0IGR3YXJm Ml9jdSAqY3UsIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsCi0rCQkgICAgICBjb25zdCBnZGJf Ynl0ZSAqYWRkaXRpb25hbF9kYXRhLCBpbnQgYWRkaXRpb25hbF9kYXRhX3NpemUpOwotKwotIAwK LSAvKiBWYXJpb3VzIGNvbXBsYWludHMgYWJvdXQgc3ltYm9sIHJlYWRpbmcgdGhhdCBkb24ndCBh Ym9ydCB0aGUgcHJvY2Vzcy4gICovCisgc3RhdGljIGludCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAo Y29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKKyAJCQkJIHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKKy0JCQkJIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3Ap OworKwkJCQkgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKKysJCQkJIGNvbnN0IGdkYl9ieXRl ICphZGRpdGlvbmFsX2RhdGEsCisrCQkJCSBpbnQgYWRkaXRpb25hbF9kYXRhX3NpemUpOworIAor IC8qIG1lbW9yeSBhbGxvY2F0aW9uIGludGVyZmFjZSAqLworIAorQEAgLTExNDIwLDcgKzExNDIy LDcgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcworICAgICB7Cisg ICAgICAgbmV3b2JqLT5zdGF0aWNfbGluaworIAk9IFhPQk5FVyAoJm9iamZpbGUtPm9iamZpbGVf b2JzdGFjaywgc3RydWN0IGR5bmFtaWNfcHJvcCk7CistICAgICAgYXR0cl90b19keW5hbWljX3By b3AgKGF0dHIsIGRpZSwgY3UsIG5ld29iai0+c3RhdGljX2xpbmspOworKyAgICAgIGF0dHJfdG9f ZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCBuZXdvYmotPnN0YXRpY19saW5rLCBOVUxMLCAw KTsKKyAgICAgfQogIAotQEAgLTE0NDMxLDI5ICsxNDQzNyw5MiBAQCByZWFkX3RhZ19zdHJpbmdf dHlwZSAoc3RydWN0IGRpZV9pbmZvICpkCisgICBjdS0+bGlzdF9pbl9zY29wZSA9ICZsb2NhbF9z eW1ib2xzOworQEAgLTE0NDcxLDI5ICsxNDQ3Myw5MiBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9vYmpm aWxlX2FyY2ggKG9iamZpbGUpOwogICAgc3RydWN0IHR5cGUgKnR5cGUsICpyYW5nZV90eXBlLCAq aW5kZXhfdHlwZSwgKmNoYXJfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC0x NjEsNyArMTY4LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQu YwogICAgY2hhcl90eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdl X2RlZm4sIGdkYmFyY2gpOwogICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hh cl90eXBlLCByYW5nZV90eXBlKTsKICAKLUBAIC0xNDc3NiwxMyArMTQ4NDUsMTUgQEAgcmVhZF9i YXNlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdAorQEAgLTE0ODE2LDEzICsxNDg4MSwx NSBAQCByZWFkX2Jhc2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0CiAgICByZXR1cm4g c2V0X2RpZV90eXBlIChkaWUsIHR5cGUsIGN1KTsKICB9CiAgCkBAIC0xNzgsOCArMTg1LDggQEAg SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogIHsKICAgIHN0cnVj dCBkd2FyZjJfcHJvcGVydHlfYmF0b24gKmJhdG9uOwogICAgc3RydWN0IG9ic3RhY2sgKm9ic3Rh Y2sgPSAmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjazsKLUBAIC0xNDc5NSw4ICsxNDg2Niwy NSBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpCi0gICAgICAgYmF0 b24gPSBvYnN0YWNrX2FsbG9jIChvYnN0YWNrLCBzaXplb2YgKCpiYXRvbikpOworQEAgLTE0ODM1 LDggKzE0OTAyLDI1IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkK KyAgICAgICBiYXRvbiA9IFhPQk5FVyAob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9i YXRvbik7CiAgICAgICAgYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7CiAgICAgICAgYmF0 b24tPmxvY2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKIC0gICAgICBiYXRvbi0+bG9jZXhwci5z aXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplOwpAQCAtMjA2LDggKzIxMyw4IEBAIEluZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJyZWFkLmMKICAgICAgICBwcm9wLT5kYXRhLmJh dG9uID0gYmF0b247CiAgICAgICAgcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKICAgICAgICBn ZGJfYXNzZXJ0IChwcm9wLT5kYXRhLmJhdG9uICE9IE5VTEwpOwotQEAgLTE0ODMyLDggKzE0OTIw LDI4IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkKLSAJCWJhdG9u ID0gb2JzdGFja19hbGxvYyAob2JzdGFjaywgc2l6ZW9mICgqYmF0b24pKTsKK0BAIC0xNDg3Miw4 ICsxNDk1NiwyOCBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpCisg CQliYXRvbiA9IFhPQk5FVyAob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7 CiAgCQliYXRvbi0+cmVmZXJlbmNlZF90eXBlID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdl dF9jdSk7CiAgCQliYXRvbi0+bG9jZXhwci5wZXJfY3UgPSBjdS0+cGVyX2N1OwogLQkJYmF0b24t PmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemU7CkBAIC0yMzcsNyAr MjQ0LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogIAkJ cHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9uOwogIAkJcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsK ICAJCWdkYl9hc3NlcnQgKHByb3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7Ci1AQCAtMTQ4ODcsNyAr MTQ5OTUsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllCitAQCAt MTQ5MjcsNyArMTUwMzEsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllCiAgICBzdHJ1Y3QgdHlwZSAqYmFzZV90eXBlLCAqb3JpZ19iYXNlX3R5cGU7CiAgICBzdHJ1 Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC0yNDYs NyArMjUzLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwog ICAgaW50IGxvd19kZWZhdWx0X2lzX3ZhbGlkOwogICAgaW50IGhpZ2hfYm91bmRfaXNfY291bnQg PSAwOwogICAgY29uc3QgY2hhciAqbmFtZTsKLUBAIC0xNDkwNyw3ICsxNTAxNSw5IEBAIHJlYWRf c3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKK0BAIC0xNDk0Nyw3ICsxNTA1MSw5 IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKICAKICAgIGxvdy5r aW5kID0gUFJPUF9DT05TVDsKICAgIGhpZ2gua2luZCA9IFBST1BfQ09OU1Q7CkBAIC0yNTYsNyAr MjYzLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogIAog ICAgLyogU2V0IExPV19ERUZBVUxUX0lTX1ZBTElEIGlmIGN1cnJlbnQgbGFuZ3VhZ2UgYW5kIERX QVJGIHZlcnNpb24gYWxsb3cKICAgICAgIG9taXR0aW5nIERXX0FUX2xvd2VyX2JvdW5kLiAgKi8K LUBAIC0xNDk0MCwxOSArMTUwNTAsMjYgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZQorQEAgLTE0OTgwLDE5ICsxNTA4NiwyNiBAQCByZWFkX3N1YnJhbmdlX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKQEAgLTI4Niw3 ICsyOTMsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZHdhcmYycmVhZC5jCiAg CXsKICAJICAvKiBJZiBib3VuZHMgYXJlIGNvbnN0YW50IGRvIHRoZSBmaW5hbCBjYWxjdWxhdGlv biBoZXJlLiAgKi8KICAJICBpZiAobG93LmtpbmQgPT0gUFJPUF9DT05TVCAmJiBoaWdoLmtpbmQg PT0gUFJPUF9DT05TVCkKLUBAIC0xNTAxNiw3ICsxNTEzMyw3IEBAIHJlYWRfc3VicmFuZ2VfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKK0BAIC0xNTA1Niw3ICsxNTE2OSw3IEBAIHJlYWRfc3Vi cmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKICAgICAgICAmJiAhVFlQRV9VTlNJR05F RCAoYmFzZV90eXBlKSAmJiAoaGlnaC5kYXRhLmNvbnN0X3ZhbCAmIG5lZ2F0aXZlX21hc2spKQog ICAgICBoaWdoLmRhdGEuY29uc3RfdmFsIHw9IG5lZ2F0aXZlX21hc2s7CiAgCkBAIC0yOTUsMzgg KzMwMiwyNiBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZHdhcmYycmVhZC5jCiAg CiAgICBpZiAoaGlnaF9ib3VuZF9pc19jb3VudCkKICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5n ZV90eXBlKS0+ZmxhZ191cHBlcl9ib3VuZF9pc19jb3VudCA9IDE7Ci1AQCAtMjIxMjgsOSArMjIy NDUsMzcgQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydQotICAgICAg ICYmICFIQVZFX0dOQVRfQVVYX0lORk8gKHR5cGUpKQotICAgICBJTklUX0dOQVRfU1BFQ0lGSUMg KHR5cGUpOwotIAotKyAgLyogUmVhZCBEV19BVF9hbGxvY2F0ZWQgYW5kIHNldCBpbiB0eXBlLiAg Ki8KLSsgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9hbGxvY2F0ZWQsIGN1KTsKLSsg IGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQotKyAgICB7Ci0rICAgICAgc3RydWN0IGR5 bmFtaWNfcHJvcCBwcm9wOwotKworQEAgLTIyMzYwLDcgKzIyNDczLDcgQEAgc2V0X2RpZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydQorICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUs IERXX0FUX2FsbG9jYXRlZCwgY3UpOworICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikp CisgICAgIHsKKy0gICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3Us ICZwcm9wKSkKICsgICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3Us ICZwcm9wLCBOVUxMLCAwKSkKLSsgICAgICAgIHsKLSsgICAgICAgICAgVFlQRV9BTExPQ0FURURf UFJPUCAodHlwZSkKLSsgICAgICAgICAgICA9IG9ic3RhY2tfYWxsb2MgKCZvYmpmaWxlLT5vYmpm aWxlX29ic3RhY2ssIHNpemVvZiAocHJvcCkpOwotKyAgICAgICAgICAqVFlQRV9BTExPQ0FURURf UFJPUCAodHlwZSkgPSBwcm9wOwotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAvKiBSZWFkIERX X0FUX2Fzc29jaWF0ZWQgYW5kIHNldCBpbiB0eXBlLiAgKi8KLSsgIGF0dHIgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9hc3NvY2lhdGVkLCBjdSk7Ci0rICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2Nr IChhdHRyKSkKLSsgICAgewotKyAgICAgIHN0cnVjdCBkeW5hbWljX3Byb3AgcHJvcDsKLSsKKyAg ICAgICAgIGFkZF9keW5fcHJvcCAoRFlOX1BST1BfQUxMT0NBVEVELCBwcm9wLCB0eXBlLCBvYmpm aWxlKTsKKyAgICAgfQorICAgZWxzZSBpZiAoYXR0ciAhPSBOVUxMKQorQEAgLTIyMzc1LDcgKzIy NDg4LDcgQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydQorICAgYXR0 ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2Fzc29jaWF0ZWQsIGN1KTsKKyAgIGlmIChhdHRy X2Zvcm1faXNfYmxvY2sgKGF0dHIpKQorICAgICB7CistICAgICAgaWYgKGF0dHJfdG9fZHluYW1p Y19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCkpCiArICAgICAgaWYgKGF0dHJfdG9fZHluYW1p Y19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkpCi0rICAgICAgICB7Ci0rICAg ICAgICAgIFRZUEVfQVNTT0NJQVRFRF9QUk9QICh0eXBlKQotKyAgICAgICAgICAgID0gb2JzdGFj a19hbGxvYyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgc2l6ZW9mIChwcm9wKSk7Ci0rICAg ICAgICAgICpUWVBFX0FTU09DSUFURURfUFJPUCAodHlwZSkgPSBwcm9wOwotKyAgICAgICAgfQot KyAgICB9Ci0rCisgICAgICAgICBhZGRfZHluX3Byb3AgKERZTl9QUk9QX0FTU09DSUFURUQsIHBy b3AsIHR5cGUsIG9iamZpbGUpOworICAgICB9CisgICBlbHNlIGlmIChhdHRyICE9IE5VTEwpCitA QCAtMjIzODgsNyArMjI1MDEsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1CisgCiAgICAvKiBSZWFkIERXX0FUX2RhdGFfbG9jYXRpb24gYW5kIHNldCBpbiB0eXBl LiAgKi8KICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9kYXRhX2xvY2F0aW9uLCBj dSk7CiAtICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkK QEAgLTMzNCwyMiArMzI5LDI0IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2Fy ZjJyZWFkLmMKICAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJPUF9EQVRBX0xPQ0FUSU9OLCBwcm9w LCB0eXBlLCBvYmpmaWxlKTsKICAKICAgIGlmIChkd2FyZjJfcGVyX29iamZpbGUtPmRpZV90eXBl X2hhc2ggPT0gTlVMTCkKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLXR5cGVwcmlu dC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdHlwZXByaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2YtdHlwZXByaW50LmMJMjAx NS0wNS0yOSAwODoyNzowMi42Nzg3MTc0NjAgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9mLXR5cGVwcmludC5jCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjYxNzQwMjYwICswMjAwCi1A QCAtMzAsNiArMzAsNyBAQAotICNpbmNsdWRlICJnZGJjb3JlLmgiCistLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjcub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTEwLTI3IDAyOjQ4OjMxLjAwMDAw MDAwMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXR5cGVwcmludC5jCTIw MTUtMTEtMDMgMjE6MTM6MzUuNzA3MzM3OTIwICswMTAwCitAQCAtMzEsNiArMzEsNyBAQAogICNp bmNsdWRlICJ0YXJnZXQuaCIKICAjaW5jbHVkZSAiZi1sYW5nLmgiCisgI2luY2x1ZGUgInR5cGVw cmludC5oIgogKyNpbmNsdWRlICJ2YWxwcmludC5oIgogIAogICNpZiAwCQkJCS8qIEN1cnJlbnRs eSB1bnVzZWQuICAqLwogIHN0YXRpYyB2b2lkIGZfdHlwZV9wcmludF9hcmdzIChzdHJ1Y3QgdHlw ZSAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKLUBAIC01Myw2ICs1NCwxNyBAQCBmX3ByaW50X3R5cGUg KHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBjCi0gICBlbnVtIHR5cGVfY29kZSBjb2RlOwotICAg aW50IGRlbWFuZ2xlZF9hcmdzOwotIAorQEAgLTY0LDYgKzY1LDE3IEBAIGZfcHJpbnRfdHlwZSAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGMKKyAgICAgeworICAgICAgIHZhbF9wcmludF9ub3Rf YWxsb2NhdGVkIChzdHJlYW0pOworICAgICAgIHJldHVybjsKKysgICAgfQorKwogKyAgaWYgKFRZ UEVfTk9UX0FTU09DSUFURUQgKHR5cGUpKQogKyAgICB7CiArICAgICAgdmFsX3ByaW50X25vdF9h c3NvY2lhdGVkIChzdHJlYW0pOwpAQCAtMzU5LDczICszNTYsMTMgQEAgSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2YtdHlwZXByaW50LmMKICsgICAgewogKyAgICAgIHZhbF9wcmludF9u b3RfYWxsb2NhdGVkIChzdHJlYW0pOwogKyAgICAgIHJldHVybjsKLSsgICAgfQotKworICAgICB9 CisgCiAgICBmX3R5cGVfcHJpbnRfYmFzZSAodHlwZSwgc3RyZWFtLCBzaG93LCBsZXZlbCk7Ci0g ICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKLSAgIGlmICgodmFyc3RyaW5nICE9IE5VTEwgJiYg KnZhcnN0cmluZyAhPSAnXDAnKQotQEAgLTE2NywyOCArMTc5LDM2IEBAIGZfdHlwZV9wcmludF92 YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUKLSAgICAgICBpZiAoYXJyYXlwcmludF9yZWN1cnNl X2xldmVsID09IDEpCi0gCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKLSAKLS0gICAg ICBpZiAoVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPT0gVFlQRV9DT0RFX0FS UkFZKQotLQlmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5 cGUpLCBzdHJlYW0sIDAsIDAsIDAsCi0tCQkJCSAgICAgYXJyYXlwcmludF9yZWN1cnNlX2xldmVs KTsKLS0KLS0gICAgICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAodHlwZSk7Ci0t ICAgICAgaWYgKGxvd2VyX2JvdW5kICE9IDEpCS8qIE5vdCB0aGUgZGVmYXVsdC4gICovCi0tCWZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkOiIsIGxvd2VyX2JvdW5kKTsKLS0KLS0gICAgICAv KiBNYWtlIHN1cmUgdGhhdCwgaWYgd2UgaGF2ZSBhbiBhc3N1bWVkIHNpemUgYXJyYXksIHdlCi0t ICAgICAgICAgcHJpbnQgb3V0IGEgd2FybmluZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91bmQgYXMg JyonLiAgKi8KLS0KLS0gICAgICBpZiAoVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9JU19VTkRFRklO RUQgKHR5cGUpKQotLQlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIqIik7Ci0rICAgICAgaWYg KFRZUEVfTk9UX0FTU09DSUFURUQgKHR5cGUpKQotKyAgICAgICAgdmFsX3ByaW50X25vdF9hc3Nv Y2lhdGVkIChzdHJlYW0pOwotKyAgICAgIGVsc2UgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAodHlw ZSkpCi0rICAgICAgICB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKLSAgICAgICBl bHNlCi0tCXsKLS0JICB1cHBlcl9ib3VuZCA9IGY3N19nZXRfdXBwZXJib3VuZCAodHlwZSk7Ci0t CSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBlcl9ib3VuZCk7Ci0tCX0KLS0K LS0gICAgICBpZiAoVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgIT0gVFlQRV9D T0RFX0FSUkFZKQotLQlmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZ UEUgKHR5cGUpLCBzdHJlYW0sIDAsIDAsIDAsCi0tCQkJCSAgICAgYXJyYXlwcmludF9yZWN1cnNl X2xldmVsKTsKLSsgICAgICAgIHsKLSsKLSsgICAgICAgICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9U QVJHRVRfVFlQRSAodHlwZSkpID09IFRZUEVfQ09ERV9BUlJBWSkKLSsgICAgICAgICAgICBmX3R5 cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0s IDAsIDAsIDAsCi0rICAgICAgICAgICAgICAgICBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwpOwot KwotKyAgICAgICAgICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAodHlwZSk7Ci0r ICAgICAgICAgIGlmIChsb3dlcl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1bHQuICAqLwot KyAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkOiIsIGxvd2VyX2JvdW5k KTsKLSsKLSsgICAgICAgICAgLyogTWFrZSBzdXJlIHRoYXQsIGlmIHdlIGhhdmUgYW4gYXNzdW1l ZCBzaXplIGFycmF5LCB3ZQotKyAgICAgICAgICAgICBwcmludCBvdXQgYSB3YXJuaW5nIGFuZCBw cmludCB0aGUgdXBwZXJib3VuZCBhcyAnKicuICAqLwotKwotKyAgICAgICAgICBpZiAoVFlQRV9B UlJBWV9VUFBFUl9CT1VORF9JU19VTkRFRklORUQgKHR5cGUpKQotKyAgICAgICAgICAgIGZwcmlu dGZfZmlsdGVyZWQgKHN0cmVhbSwgIioiKTsKLSsgICAgICAgICAgZWxzZQotKyAgICAgICAgICAg IHsKLSsgICAgICAgICAgICAgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBl KTsKLSsgICAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkIiwgdXBwZXJf Ym91bmQpOwotKyAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgaWYgKFRZUEVfQ09ERSAoVFlQ RV9UQVJHRVRfVFlQRSAodHlwZSkpICE9IFRZUEVfQ09ERV9BUlJBWSkKLSsgICAgICAgICAgICBm X3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJl YW0sIDAsIDAsIDAsCi0rICAgICAgICAgICAgICAgICBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwp OwotKyAgICAgIH0KLSAgICAgICBpZiAoYXJyYXlwcmludF9yZWN1cnNlX2xldmVsID09IDEpCi0g CWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIikiKTsKLSAgICAgICBlbHNlCi1JbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvZi12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1 MjAub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTUtMDUtMjkgMDg6MjY6NDkuNTY3NjM0MDE5ICsw MjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZi12YWxwcmludC5jCTIwMTUtMDUtMjkg MDg6Mjc6MDYuMjYyNzQwMjY2ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvZi12YWxwcmludC5jCTIwMTUtMTAtMjcgMDI6NDg6MzEuMDAwMDAwMDAwICswMTAwCisrKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTExLTAzIDIxOjEzOjM1 Ljk1OTMzOTExMyArMDEwMAogQEAgLTM2LDggKzM2LDYgQEAKICAKICBleHRlcm4gdm9pZCBfaW5p dGlhbGl6ZV9mX3ZhbHByaW50ICh2b2lkKTsKQEAgLTYxMiwxMSArNTQ5LDExIEBAIEluZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLXZhbHByaW50LmMKICAgICAgICAgICAgaWYgKGluZGV4 ICE9IFRZUEVfTkZJRUxEUyAodHlwZSkgLSAxKQogICAgICAgICAgICAgIGZwdXRzX2ZpbHRlcmVk ICgiLCAiLCBzdHJlYW0pOwogICAgICAgICAgfQotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2dkYnR5cGVzLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZ2RidHlwZXMu YwkyMDE1LTA1LTI5IDA4OjI3OjAyLjY4MzcxNzQ5MiArMDIwMAotKysrIGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wNS0yOSAxMDo1NDozNi4yMzY0OTg3NDkgKzAyMDAK LUBAIC04MjQsNyArODI0LDggQEAgYWxsb2NhdGVfc3R1Yl9tZXRob2QgKHN0cnVjdCB0eXBlICp0 eXBlKQorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0x MC0yNyAwMjo0ODozMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvZ2RidHlwZXMuYwkyMDE1LTExLTAzIDIxOjEzOjM4LjY4MzM1MjAxMSArMDEwMAorQEAgLTgz Niw3ICs4MzYsOCBAQCBhbGxvY2F0ZV9zdHViX21ldGhvZCAoc3RydWN0IHR5cGUgKnR5cGUpCiAg c3RydWN0IHR5cGUgKgogIGNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5 cGUsIHN0cnVjdCB0eXBlICppbmRleF90eXBlLAogIAkJICAgY29uc3Qgc3RydWN0IGR5bmFtaWNf cHJvcCAqbG93X2JvdW5kLApAQCAtNjI2LDcgKzU2Myw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9nZGJ0eXBlcy5jCiAgewogICAgaWYgKHJlc3VsdF90eXBlID09IE5VTEwpCiAg ICAgIHJlc3VsdF90eXBlID0gYWxsb2NfdHlwZV9jb3B5IChpbmRleF90eXBlKTsKLUBAIC04Mzks NiArODQwLDcgQEAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdAorQEAg LTg1MSw2ICs4NTIsNyBAQCBjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90 CiAgICAgIFRZUEVfWkFMTE9DIChyZXN1bHRfdHlwZSwgc2l6ZW9mIChzdHJ1Y3QgcmFuZ2VfYm91 bmRzKSk7CiAgICBUWVBFX1JBTkdFX0RBVEEgKHJlc3VsdF90eXBlKS0+bG93ID0gKmxvd19ib3Vu ZDsKICAgIFRZUEVfUkFOR0VfREFUQSAocmVzdWx0X3R5cGUpLT5oaWdoID0gKmhpZ2hfYm91bmQ7 CkBAIC02MzQsNyArNTcxLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5 cGVzLmMKICAKICAgIGlmIChsb3dfYm91bmQtPmtpbmQgPT0gUFJPUF9DT05TVCAmJiBsb3dfYm91 bmQtPmRhdGEuY29uc3RfdmFsID49IDApCiAgICAgIFRZUEVfVU5TSUdORUQgKHJlc3VsdF90eXBl KSA9IDE7Ci1AQCAtODY3LDcgKzg2OSw3IEBAIHN0cnVjdCB0eXBlICoKK0BAIC04NzksNyArODgx LDcgQEAgc3RydWN0IHR5cGUgKgogIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5 cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKICAJCQkgIExPTkdFU1Qg bG93X2JvdW5kLCBMT05HRVNUIGhpZ2hfYm91bmQpCiAgewpAQCAtNjQzLDcgKzU4MCw3IEBAIElu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICBsb3cua2luZCA9 IFBST1BfQ09OU1Q7CiAgICBsb3cuZGF0YS5jb25zdF92YWwgPSBsb3dfYm91bmQ7Ci1AQCAtODc1 LDcgKzg3NywxMSBAQCBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyCitA QCAtODg3LDcgKzg4OSwxMSBAQCBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBl ICpyCiAgICBoaWdoLmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5kYXRhLmNvbnN0X3ZhbCA9 IGhpZ2hfYm91bmQ7CiAgCkBAIC02NTYsMjAgKzU5MywxNiBAQCBJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvZ2RidHlwZXMuYwogIAogICAgcmV0dXJuIHJlc3VsdF90eXBlOwogIH0KLUBA IC0xMDY4LDE4ICsxMDc0LDI0IEBAIGNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlIChzdHJ1 Y3QgdHkKLSAKLSAgIFRZUEVfQ09ERSAocmVzdWx0X3R5cGUpID0gVFlQRV9DT0RFX0FSUkFZOwot ICAgVFlQRV9UQVJHRVRfVFlQRSAocmVzdWx0X3R5cGUpID0gZWxlbWVudF90eXBlOwotLSAgaWYg KGhhc19zdGF0aWNfcmFuZ2UgKFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSkpKQotKyAgaWYg KGhhc19zdGF0aWNfcmFuZ2UgKFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSkpCi0rICAgICAg JiYgZHdhcmYyX2FkZHJlc3NfZGF0YV92YWxpZCAocmVzdWx0X3R5cGUpKQorQEAgLTEwODQsMTYg KzEwOTAsMjEgQEAgY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUgKHN0cnVjdCB0eQorICAg ICAgJiYgKCF0eXBlX25vdF9hc3NvY2lhdGVkIChyZXN1bHRfdHlwZSkKKyAgICAgICAgICYmICF0 eXBlX25vdF9hbGxvY2F0ZWQgKHJlc3VsdF90eXBlKSkpCiAgICAgIHsKIC0gICAgICBMT05HRVNU IGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKICsgICAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9i b3VuZCwgYnl0ZV9zdHJpZGU7CiAgCiAgICAgICAgaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJh bmdlX3R5cGUsICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCiAgCWxvd19ib3VuZCA9IGhp Z2hfYm91bmQgPSAwOwotICAgICAgIENIRUNLX1RZUEVERUYgKGVsZW1lbnRfdHlwZSk7CisgICAg ICAgZWxlbWVudF90eXBlID0gY2hlY2tfdHlwZWRlZiAoZWxlbWVudF90eXBlKTsKICsKICsgICAg ICBieXRlX3N0cmlkZSA9IGFicyAoVFlQRV9CWVRFX1NUUklERSAocmFuZ2VfdHlwZSkpOwogKwpA QCAtNjgzLDcgKzYxNiw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBl cy5jCiAgICAgICAgZWxzZSBpZiAoYml0X3N0cmlkZSA+IDApCiAgCVRZUEVfTEVOR1RIIChyZXN1 bHRfdHlwZSkgPQogIAkgIChiaXRfc3RyaWRlICogKGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAx KSArIDcpIC8gODsKLUBAIC0xNzg5LDEyICsxODAxLDMxIEBAIHN0dWJfbm9uYW1lX2NvbXBsYWlu dCAodm9pZCkKK0BAIC0xODA0LDEyICsxODE1LDMxIEBAIHN0dWJfbm9uYW1lX2NvbXBsYWludCAo dm9pZCkKICBzdGF0aWMgaW50CiAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgaW50IHRvcF9sZXZlbCkKICB7CkBAIC03MTUsNyArNjQ4LDcgQEAgSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmMKICAgIC8qIFR5cGVzIHRoYXQgaGF2ZSBh IGR5bmFtaWMgVFlQRV9EQVRBX0xPQ0FUSU9OIGFyZSBjb25zaWRlcmVkCiAgICAgICBkeW5hbWlj LCBldmVuIGlmIHRoZSB0eXBlIGl0c2VsZiBpcyBzdGF0aWNhbGx5IGRlZmluZWQuCiAgICAgICBG cm9tIGEgdXNlcidzIHBvaW50IG9mIHZpZXcsIHRoaXMgbWF5IGFwcGVhciBjb3VudGVyLWludHVp dGl2ZTsKLUBAIC0xODIzLDExICsxODU0LDE5IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAo c3RydWN0IHR5cGUgKnQKK0BAIC0xODQ0LDExICsxODc0LDE5IEBAIGlzX2R5bmFtaWNfdHlwZV9p bnRlcm5hbCAoc3RydWN0IHR5cGUgKnQKICAgICAgICB7CiAgCWdkYl9hc3NlcnQgKFRZUEVfTkZJ RUxEUyAodHlwZSkgPT0gMSk7CiAgCkBAIC03MzgsNyArNjcxLDcgQEAgSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmMKICAgICAgICB9CiAgCiAgICAgIGNhc2UgVFlQRV9D T0RFX1NUUlVDVDoKLUBAIC0xODQwLDYgKzE4NzksMTggQEAgaXNfZHluYW1pY190eXBlX2ludGVy bmFsIChzdHJ1Y3QgdHlwZSAqdAorQEAgLTE4NjEsNiArMTg5OSwxOCBAQCBpc19keW5hbWljX3R5 cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0CiAgCSAgICAgICYmIGlzX2R5bmFtaWNfdHlwZV9p bnRlcm5hbCAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKSwgMCkpCiAgCSAgICByZXR1cm4gMTsK ICAgICAgICB9CkBAIC03NTcsNyArNjkwLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2dkYnR5cGVzLmMKICAgICAgICBicmVhazsKICAgICAgfQogIAotQEAgLTE4NjksNyArMTky MCw4IEBAIHJlc29sdmVfZHluYW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl8KK0BAIC0xODkw LDcgKzE5NDAsOCBAQCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0eXBlICpkeW5fCiAg ICBzdHJ1Y3QgdHlwZSAqc3RhdGljX3JhbmdlX3R5cGUsICpzdGF0aWNfdGFyZ2V0X3R5cGU7CiAg ICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOwogICAgY29uc3Qgc3RydWN0IGR3YXJm Ml9sb2NleHByX2JhdG9uICpiYXRvbjsKQEAgLTc2NywxMiArNzAwLDEyIEBAIEluZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICBnZGJfYXNzZXJ0IChUWVBFX0NP REUgKGR5bl9yYW5nZV90eXBlKSA9PSBUWVBFX0NPREVfUkFOR0UpOwogIAotQEAgLTE5MDEsMTIg KzE5NTMsMTkgQEAgcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluXworQEAg LTE5MjIsMTIgKzE5NzMsMTkgQEAgcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAq ZHluXwogICAgICAgIGhpZ2hfYm91bmQuZGF0YS5jb25zdF92YWwgPSAwOwogICAgICB9CiAgCiAr ICBwcm9wID0gJlRZUEVfUkFOR0VfREFUQSAoZHluX3JhbmdlX3R5cGUpLT5zdHJpZGU7Ci0rICBp ZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBhZGRyX3N0YWNrLCAmdmFsdWUpKQor KyAgaWYgKGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgTlVMTCwgYWRkcl9zdGFjaywg JnZhbHVlKSkKICsgICAgewogKyAgICAgIHN0cmlkZS5raW5kID0gUFJPUF9DT05TVDsKICsgICAg ICBzdHJpZGUuZGF0YS5jb25zdF92YWwgPSB2YWx1ZTsKQEAgLTc5MCwxMDMgKzcyMyw0MiBAQCBJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuYwogICAgVFlQRV9SQU5HRV9E QVRBIChzdGF0aWNfcmFuZ2VfdHlwZSktPmZsYWdfYm91bmRfZXZhbHVhdGVkID0gMTsKICAgIHJl dHVybiBzdGF0aWNfcmFuZ2VfdHlwZTsKICB9Ci1AQCAtMTkyMywyMyArMTk4Miw0NyBAQCByZXNv bHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlCi0gICBzdHJ1Y3QgdHlwZSAqZWx0 X3R5cGU7Ci0gICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKK0BAIC0xOTQ2LDcgKzIwMDQsOCBA QCByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlCiAgICBzdHJ1Y3QgdHlw ZSAqYXJ5X2RpbTsKLSsgIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3A7Ci0rICBzdHJ1Y3QgdHlw ZSAqY29weSA9IGNvcHlfdHlwZSAodHlwZSk7CisgICBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9w OwogIAogLSAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkp OwogKyAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkKICsJ ICAgICAgfHwgVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5HKTsKICAKLSAgIGVs dF90eXBlID0gdHlwZTsKLSAgIHJhbmdlX3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX0lOREVY X1RZUEUgKGVsdF90eXBlKSk7Ci0gICByYW5nZV90eXBlID0gcmVzb2x2ZV9keW5hbWljX3Jhbmdl IChyYW5nZV90eXBlLCBhZGRyX3N0YWNrKTsKKyAgIHR5cGUgPSBjb3B5X3R5cGUgKHR5cGUpOwor IAorQEAgLTE5NzEsMTMgKzIwMzAsMTggQEAgcmVzb2x2ZV9keW5hbWljX2FycmF5IChzdHJ1Y3Qg dHlwZSAqdHlwZQogIAotKyAgcHJvcCA9IFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpOwotKyAg aWYgKGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgYWRkcl9zdGFjaywgJnZhbHVlKSkK LSsgICAgewotKyAgICAgIFRZUEVfQUxMT0NBVEVEX1BST1AgKGNvcHkpLT5raW5kID0gUFJPUF9D T05TVDsKLSsgICAgICBUWVBFX0FMTE9DQVRFRF9QUk9QIChjb3B5KS0+ZGF0YS5jb25zdF92YWwg PSB2YWx1ZTsKLSsgICAgfQotKwotKyAgcHJvcCA9IFRZUEVfQVNTT0NJQVRFRF9QUk9QICh0eXBl KTsKLSsgIGlmIChkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKHByb3AsIGFkZHJfc3RhY2ssICZ2 YWx1ZSkpCi0rICAgIHsKLSsgICAgICBUWVBFX0FTU09DSUFURURfUFJPUCAoY29weSktPmtpbmQg PSBQUk9QX0NPTlNUOwotKyAgICAgIFRZUEVfQVNTT0NJQVRFRF9QUk9QIChjb3B5KS0+ZGF0YS5j b25zdF92YWwgPSB2YWx1ZTsKLSsgICAgfQotKwogICAgYXJ5X2RpbSA9IGNoZWNrX3R5cGVkZWYg KFRZUEVfVEFSR0VUX1RZUEUgKGVsdF90eXBlKSk7CiAgCiAtICBpZiAoYXJ5X2RpbSAhPSBOVUxM ICYmIFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX0FSUkFZKQotLSAgICBlbHRfdHlw ZSA9IHJlc29sdmVfZHluYW1pY19hcnJheSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIGFkZHJf c3RhY2spOwogKyAgaWYgKGFyeV9kaW0gIT0gTlVMTCAmJiAoVFlQRV9DT0RFIChhcnlfZGltKSA9 PSBUWVBFX0NPREVfQVJSQVkKLSsgICAgICAgICAgfHwgVFlQRV9DT0RFIChhcnlfZGltKSA9PSBU WVBFX0NPREVfU1RSSU5HKSkKLSsgICAgZWx0X3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkg KFRZUEVfVEFSR0VUX1RZUEUgKGNvcHkpLCBhZGRyX3N0YWNrKTsKKysJCQkgIHx8IFRZUEVfQ09E RSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX1NUUklORykpCisgICAgIGVsdF90eXBlID0gcmVzb2x2 ZV9keW5hbWljX2FycmF5IChhcnlfZGltLCBhZGRyX3N0YWNrKTsKICAgIGVsc2UKICAgICAgZWx0 X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKICAKLS0gIHJldHVybiBjcmVhdGVfYXJy YXlfdHlwZV93aXRoX3N0cmlkZSAoY29weV90eXBlICh0eXBlKSwKLS0JCQkJCWVsdF90eXBlLCBy YW5nZV90eXBlLAotLQkJCQkJVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCAwKSk7CistICByZXR1 cm4gY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUgKHR5cGUsIGVsdF90eXBlLCByYW5nZV90 eXBlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUWVBFX0ZJRUxE X0JJVFNJWkUgKHR5cGUsIDApKTsKICsgIGlmIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09E RV9TVFJJTkcKICsgICAgICAmJiBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIDApID09IDApCi0r ICAgIHJldHVybiBjcmVhdGVfc3RyaW5nX3R5cGUgKGNvcHksCi0rCSAgICBlbHRfdHlwZSwKLSsJ ICAgIHJhbmdlX3R5cGUpOworKyAgICByZXR1cm4gY3JlYXRlX3N0cmluZ190eXBlICh0eXBlLCBl bHRfdHlwZSwgcmFuZ2VfdHlwZSk7CiArICBlbHNlCi0rICAgIHJldHVybiBjcmVhdGVfYXJyYXlf dHlwZV93aXRoX3N0cmlkZSAoY29weSwKLSsJICAgIGVsdF90eXBlLAotKwkgICAgcmFuZ2VfdHlw ZSwgVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCAwKSk7CisrICAgIHJldHVybiBjcmVhdGVfYXJy YXlfdHlwZV93aXRoX3N0cmlkZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5cGUsCisrCQkJCQkg IFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCkpOwogIH0KICAKICAvKiBSZXNvbHZlIGR5bmFt aWMgYm91bmRzIG9mIG1lbWJlcnMgb2YgdGhlIHVuaW9uIFRZUEUgdG8gc3RhdGljCi1AQCAtNDQ1 Myw2ICs0NTM2LDIwIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmoK LSAJCQkJVFlQRV9EWU5fUFJPUF9MSVNUICh0eXBlKSk7Ci0gCi0gCi0rICAvKiBDb3B5IGFsbG9j YXRlZCBpbmZvcm1hdGlvbi4gICovCi0rICBpZiAoVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkg IT0gTlVMTCkKLSsgICAgewotKyAgICAgIFRZUEVfQUxMT0NBVEVEX1BST1AgKG5ld190eXBlKSA9 IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IGR5bmFtaWNfcHJvcCkpOwotKyAgICAgICpUWVBFX0FM TE9DQVRFRF9QUk9QIChuZXdfdHlwZSkgPSAqVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSk7Ci0r ICAgIH0KLSsKLSsgIC8qIENvcHkgYXNzb2NpYXRlZCBpbmZvcm1hdGlvbi4gICovCi0rICBpZiAo VFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpICE9IE5VTEwpCi0rICAgIHsKLSsgICAgICBUWVBF X0FTU09DSUFURURfUFJPUCAobmV3X3R5cGUpID0geG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgZHlu YW1pY19wcm9wKSk7Ci0rICAgICAgKlRZUEVfQVNTT0NJQVRFRF9QUk9QIChuZXdfdHlwZSkgPSAq VFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpOwotKyAgICB9Ci0rCi0gICAvKiBDb3B5IHBvaW50 ZXJzIHRvIG90aGVyIHR5cGVzLiAgKi8KLSAgIGlmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkK LSAgICAgVFlQRV9UQVJHRVRfVFlQRSAobmV3X3R5cGUpID0gCi1AQCAtNDQ5NCw2ICs0NTkxLDM1 IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmoKK0BAIC00NTU4LDYg KzQ2MjIsMTcgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iagogICAg ICAgIGdkYl9hc3NlcnRfbm90X3JlYWNoZWQgKCJiYWQgdHlwZV9zcGVjaWZpY19raW5kIik7CiAg ICAgIH0KICAKLSsgIGlmIChUWVBFX0FMTE9DQVRFRF9QUk9QICh0eXBlKSkKLSsgICAgewotKyAg ICAgIFRZUEVfQUxMT0NBVEVEX1BST1AgKG5ld190eXBlKQotKyAgICAgICAgICAgICAgPSBPQlNU QUNLX1pBTExPQyAoJlRZUEVfT1dORVIgKHR5cGUpLm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkeW5hbWljX3Byb3ApOwot KyAgICAgIG1lbWNweSAoVFlQRV9BTExPQ0FURURfUFJPUCAobmV3X3R5cGUpLCBUWVBFX0FMTE9D QVRFRF9QUk9QICh0eXBlKSwKLSsgICAgICAgIHNpemVvZiAoc3RydWN0IGR5bmFtaWNfcHJvcCkp OwotKyAgICB9Ci0rCi0rICBpZiAoVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpKQotKyAgICB7 Ci0rICAgICAgVFlQRV9BU1NPQ0lBVEVEX1BST1AgKG5ld190eXBlKQotKyAgICAgICAgICAgICAg PSBPQlNUQUNLX1pBTExPQyAoJlRZUEVfT1dORVIgKHR5cGUpLm9iamZpbGUtPm9iamZpbGVfb2Jz dGFjaywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkeW5hbWljX3By b3ApOwotKyAgICAgIG1lbWNweSAoVFlQRV9BU1NPQ0lBVEVEX1BST1AgKG5ld190eXBlKSwgVFlQ RV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpLAotKyAgICAgICAgc2l6ZW9mIChzdHJ1Y3QgZHluYW1p Y19wcm9wKSk7Ci0rICAgIH0KLSsKICsgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUpKQogKyAgICB7 CiArICAgICAgaW50IG5maWVsZHMgPSBUWVBFX05GSUVMRFMgKHR5cGUpOwpAQCAtOTAxLDI2ICs3 NzMsMTEgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmMKICAgIHJl dHVybiBuZXdfdHlwZTsKICB9CiAgCi1AQCAtNDUxOSw2ICs0NjQ1LDE0IEBAIGNvcHlfdHlwZSAo Y29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCi0gICAgIFRZUEVfRFlOX1BST1BfTElTVCAobmV3X3R5 cGUpCi0gICAgICAgPSBjb3B5X2R5bmFtaWNfcHJvcF9saXN0ICgmVFlQRV9PQkpGSUxFICh0eXBl KSAtPiBvYmpmaWxlX29ic3RhY2ssCi0gCQkJCVRZUEVfRFlOX1BST1BfTElTVCAodHlwZSkpOwot KyAgaWYgKFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpICE9IE5VTEwpCi0rICAgIFRZUEVfQUxM T0NBVEVEX1BST1AgKG5ld190eXBlKSA9IG9ic3RhY2tfY29weQotKyAgICAgICgmVFlQRV9PQkpG SUxFICh0eXBlKS0+b2JqZmlsZV9vYnN0YWNrLCBUWVBFX0FMTE9DQVRFRF9QUk9QICh0eXBlKSwK LSsgICAgICAgc2l6ZW9mICgqVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkpKTsKLSsgIGlmIChU WVBFX0FTU09DSUFURURfUFJPUCAodHlwZSkgIT0gTlVMTCkKLSsgICAgVFlQRV9BU1NPQ0lBVEVE X1BST1AgKG5ld190eXBlKSA9IG9ic3RhY2tfY29weQotKyAgICAgICgmVFlQRV9PQkpGSUxFICh0 eXBlKS0+b2JqZmlsZV9vYnN0YWNrLCBUWVBFX0FTU09DSUFURURfUFJPUCAodHlwZSksCi0rICAg ICAgIHNpemVvZiAoKlRZUEVfQVNTT0NJQVRFRF9QUk9QICh0eXBlKSkpOwotIAotICAgcmV0dXJu IG5ld190eXBlOwotIH0KLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5o CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNS0wNS0yOSAw ODoyNzowMi42ODU3MTc1MDQgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0 eXBlcy5oCTIwMTUtMDUtMjkgMDg6NDY6MDguODYyOTI0MDUyICswMjAwCi1AQCAtNTY5LDYgKzU2 OSwxMCBAQCBzdHJ1Y3QgcmFuZ2VfYm91bmRzCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3Jp Zy9nZGIvZ2RidHlwZXMuaAkyMDE1LTEwLTI3IDAyOjQ4OjMxLjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5oCTIwMTUtMTEtMDMgMjE6MTM6MzYu NzYwMzQyOTA2ICswMTAwCitAQCAtNTc3LDYgKzU3NywxMCBAQCBzdHJ1Y3QgcmFuZ2VfYm91bmRz CiAgCiAgICBzdHJ1Y3QgZHluYW1pY19wcm9wIGhpZ2g7CiAgCkBAIC05MzEsNyArNzg4LDcgQEAg SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmgKICAgIC8qIFRydWUgaWYg SElHSCByYW5nZSBib3VuZCBjb250YWlucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZQog ICAgICAgc3VicmFuZ2UuIFRoaXMgYWZmZWN0cyBob3cgdGhlIGZpbmFsIGhpZ2h0IGJvdW5kIGlz IGNvbXB1dGVkLiAgKi8KICAKLUBAIC03NDEsNiArNzQ1LDE4IEBAIHN0cnVjdCBtYWluX3R5cGUK K0BAIC03NDksNiArNzUzLDE4IEBAIHN0cnVjdCBtYWluX3R5cGUKICAKICAgIC8qICogQ29udGFp bnMgYWxsIGR5bmFtaWMgdHlwZSBwcm9wZXJ0aWVzLiAgKi8KICAgIHN0cnVjdCBkeW5hbWljX3By b3BfbGlzdCAqZHluX3Byb3BfbGlzdDsKQEAgLTk2NiwxMyArODIzLDEwIEBAIEluZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5oCiAgCiAgLyogUHJvcGVydHkgYWNjZXNzb3Jz IGZvciB0aGUgdHlwZSBkYXRhIGxvY2F0aW9uLiAgKi8KICAjZGVmaW5lIFRZUEVfREFUQV9MT0NB VElPTih0aGlzdHlwZSkgXAotQEAgLTEyNjUsNiArMTI5MCwyMCBAQCBleHRlcm4gdm9pZCBhbGxv Y2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Ci0gICBUWVBFX0RBVEFfTE9DQVRJT04gKHRoaXN0eXBl KS0+ZGF0YS5jb25zdF92YWwKK0BAIC0xMjY2LDYgKzEyOTEsMTggQEAgZXh0ZXJuIHZvaWQgYWxs b2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQogICNkZWZpbmUgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJ TkQodGhpc3R5cGUpIFwKICAgIFRZUEVfREFUQV9MT0NBVElPTiAodGhpc3R5cGUpLT5raW5kCi0r I2RlZmluZSBUWVBFX0FMTE9DQVRFRF9QUk9QKHRoaXN0eXBlKSBUWVBFX01BSU5fVFlQRSh0aGlz dHlwZSktPmFsbG9jYXRlZAotKyNkZWZpbmUgVFlQRV9BU1NPQ0lBVEVEX1BST1AodGhpc3R5cGUp IFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBlKS0+YXNzb2NpYXRlZAotKworIAogKy8qIEFsbG9jYXRl ZCBzdGF0dXMgb2YgdHlwZSBvYmplY3QuICBJZiBzZXQgdG8gbm9uLXplcm8gaXQgbWVhbnMgdGhl IG9iamVjdAogKyAgIGlzIGFsbG9jYXRlZC4gQSB6ZXJvIHZhbHVlIG1lYW5zIGl0IGlzIG5vdCBh bGxvY2F0ZWQuICAqLwogKyNkZWZpbmUgVFlQRV9OT1RfQUxMT0NBVEVEKHQpICAoVFlQRV9BTExP Q0FURURfUFJPUCAodCkgXApAQCAtOTg0LDEwICs4MzgsMTEgQEAgSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmgKICsjZGVmaW5lIFRZUEVfTk9UX0FTU09DSUFURUQodCkg IChUWVBFX0FTU09DSUFURURfUFJPUCAodCkgXAogKyAgJiYgVFlQRV9BU1NPQ0lBVEVEX1BST1Ag KHQpLT5raW5kID09IFBST1BfQ09OU1QgXAogKyAgJiYgIVRZUEVfQVNTT0NJQVRFRF9QUk9QICh0 KS0+ZGF0YS5jb25zdF92YWwpCi0gCi0gLyogQXR0cmlidXRlIGFjY2Vzc29ycyBmb3IgZHluYW1p YyBwcm9wZXJ0aWVzLiAgKi8KLSAjZGVmaW5lIFRZUEVfRFlOX1BST1BfTElTVCh0aGlzdHlwZSkg XAotQEAgLTEyODMsNiArMTMyMiw5IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5 cGUgKHN0cnUKKysKKyAvKiBQcm9wZXJ0eSBhY2Nlc3NvcnMgZm9yIHRoZSB0eXBlIGFsbG9jYXRl ZC9hc3NvY2lhdGVkLiAgKi8KKyAjZGVmaW5lIFRZUEVfQUxMT0NBVEVEX1BST1AodGhpc3R5cGUp IFwKKyAgIGdldF9keW5fcHJvcCAoRFlOX1BST1BfQUxMT0NBVEVELCB0aGlzdHlwZSkKK0BAIC0x Mjg5LDYgKzEzMjYsOSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1 CiAgICAgVFlQRV9ISUdIX0JPVU5EX1VOREVGSU5FRChUWVBFX0lOREVYX1RZUEUoYXJyYXl0eXBl KSkKICAjZGVmaW5lIFRZUEVfQVJSQVlfTE9XRVJfQk9VTkRfSVNfVU5ERUZJTkVEKGFycmF5dHlw ZSkgXAogICAgIFRZUEVfTE9XX0JPVU5EX1VOREVGSU5FRChUWVBFX0lOREVYX1RZUEUoYXJyYXl0 eXBlKSkKQEAgLTk5Nyw3ICs4NTIsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv Z2RidHlwZXMuaAogIAogICNkZWZpbmUgVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9WQUxVRShhcnJh eXR5cGUpIFwKICAgICAoVFlQRV9ISUdIX0JPVU5EKFRZUEVfSU5ERVhfVFlQRSgoYXJyYXl0eXBl KSkpKQotQEAgLTE3NjQsNiArMTgwNiw3IEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX2Fy cmF5X3R5cGVfd2kKK0BAIC0xNzc1LDYgKzE4MTUsNyBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmNy ZWF0ZV9hcnJheV90eXBlX3dpCiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfcmFuZ2Vf dHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICAgICAgIGNvbnN0IHN0 cnVjdCBkeW5hbWljX3Byb3AgKiwKQEAgLTEwMDUsMjIzICs4NjAsMTAgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmgKICAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBk eW5hbWljX3Byb3AgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlw ZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLUluZGV4OiBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFsbG9jLWFzc29jLmV4cAotPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYWxs b2MtYXNzb2MuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY2NzQwMjkyICswMjAwCi1AQCAtMCww ICsxLDY1IEBACi0rIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZp bGUgInZsYS5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5l eHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsK LSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAg cGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVl Ci0rfQotKwotKyMgQ2hlY2sgdGhlIGFzc29jaWF0aW9uIHN0YXR1cyBvZiB2YXJpb3VzIHR5cGVz IG9mIFZMQSdzCi0rIyBhbmQgcG9pbnRlciB0byBWTEEncy4KLStnZGJfYnJlYWtwb2ludCBbZ2Ri X2dldF9saW5lX251bWJlciAidmxhMS1hbGxvY2F0ZWQiXQotK2dkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJ2bGExLWFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHJpbnQgbCIgIiA9IFxcLlRSVUVc XC4iIFwKLSsgICJwcmludCB2bGExIGFsbG9jYXRpb24gc3RhdHVzIChhbGxvY2F0ZWQpIgotKwot K2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEyLWFsbG9jYXRlZCJdCi0r Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTItYWxsb2NhdGVkIgotK2dkYl90ZXN0ICJw cmludCBsIiAiID0gXFwuVFJVRVxcLiIgXAotKyAgInByaW50IHZsYTIgYWxsb2NhdGlvbiBzdGF0 dXMgKGFsbG9jYXRlZCkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg InB2bGEtYXNzb2NpYXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNz b2NpYXRlZCIKLStnZGJfdGVzdCAicHJpbnQgbCIgIiA9IFxcLlRSVUVcXC4iIFwKLSsgICJwcmlu dCBwdmxhIGFzc29jaWF0ZWQgc3RhdHVzIChhc3NvY2lhdGVkKSIKLSsKLStnZGJfYnJlYWtwb2lu dCBbZ2RiX2dldF9saW5lX251bWJlciAicHZsYS1yZS1hc3NvY2lhdGVkIl0KLStnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAicHZsYS1yZS1hc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwcmludCBs IiAiID0gXFwuVFJVRVxcLiIgXAotKyAgInByaW50IHB2bGEgYXNzb2NpYXRlZCBzdGF0dXMgKHJl LWFzc29jaWF0ZWQpIgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJw dmxhLWRlYXNzb2NpYXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtZGVh c3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwcmludCBsIiAiID0gXFwuRkFMU0VcXC4iIFwKLSsgICJw cmludCBwdmxhIGFsbG9jYXRpb24gc3RhdHVzIChkZWFzc29jaWF0ZWQpIgotKwotK2dkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLWRlYWxsb2NhdGVkIl0KLStnZGJfY29u dGludWVfdG9fYnJlYWtwb2ludCAidmxhMS1kZWFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHJpbnQg bCIgIiA9IFxcLkZBTFNFXFwuIiBcCi0rICAicHJpbnQgdmxhMSBhbGxvY2F0aW9uIHN0YXR1cyAo ZGVhbGxvY2F0ZWQpIgotK2dkYl90ZXN0ICJwcmludCB2bGExIiAiID0gPG5vdCBhbGxvY2F0ZWQ+ IiBcCi0rICAicHJpbnQgZGVhbGxvY2F0ZWQgdmxhMSIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2Ri X2dldF9saW5lX251bWJlciAidmxhMi1kZWFsbG9jYXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgInZsYTItZGVhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInByaW50IGwiICIgPSBcXC5G QUxTRVxcLiIgInByaW50IHZsYTIgZGVhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTIi ICIgPSA8bm90IGFsbG9jYXRlZD4iICJwcmludCBkZWFsbG9jYXRlZCB2bGEyIgotSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVz LmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtZGF0YXR5cGVzLmV4cAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2Njc0MDI5MiArMDIw MAotQEAgLTAsMCArMSw4MiBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5k YXJkX3Rlc3RmaWxlICIuZjkwIgotKwotK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0 ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAotKyAgICB7ZGVidWcgZjkwIHF1aWV0 fV0gfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLSsjIGNoZWNrIHRoYXQgYWxsIGZvcnRyYW4g c3RhbmRhcmQgZGF0YXR5cGVzIHdpbGwgYmUKLSsjIGhhbmRsZWQgY29ycmVjdGx5IHdoZW4gdXNp bmcgYXMgVkxBJ3MKLSsKLStpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7Ci0rICAgIHBlcnJvciAi Y291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgotKyAgICBjb250aW51ZQotK30KLSsK LStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhcy1hbGxvY2F0ZWQiXQot K2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGFzLWFsbG9jYXRlZCIKLStnZGJfdGVzdCAi bmV4dCIgIiA9IGFsbG9jYXRlZFxcXChyZWFsdmxhXFxcKSIgXAotKyAgIm5leHQgdG8gYWxsb2Nh dGlvbiBzdGF0dXMgb2YgaW50dmxhIgotK2dkYl90ZXN0ICJwcmludCBsIiAiID0gXFwuVFJVRVxc LiIgImludHZsYSBhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgIm5leHQiICIgPSBhbGxvY2F0ZWRcXFwo Y29tcGxleHZsYVxcXCkiIFwKLSsgICJuZXh0IHRvIGFsbG9jYXRpb24gc3RhdHVzIG9mIHJlYWx2 bGEiCi0rZ2RiX3Rlc3QgInByaW50IGwiICIgPSBcXC5UUlVFXFwuIiAicmVhbHZsYSBhbGxvY2F0 ZWQiCi0rZ2RiX3Rlc3QgIm5leHQiICIgPSBhbGxvY2F0ZWRcXFwobG9naWNhbHZsYVxcXCkiIFwK LSsgICJuZXh0IHRvIGFsbG9jYXRpb24gc3RhdHVzIG9mIGNvbXBsZXh2bGEiCi0rZ2RiX3Rlc3Qg InByaW50IGwiICIgPSBcXC5UUlVFXFwuIiAiY29tcGxleHZsYSBhbGxvY2F0ZWQiCi0rZ2RiX3Rl c3QgIm5leHQiICIgPSBhbGxvY2F0ZWRcXFwoY2hhcmFjdGVydmxhXFxcKSIgXAotKyAgIm5leHQg dG8gYWxsb2NhdGlvbiBzdGF0dXMgb2YgbG9naWNhbHZsYSIKLStnZGJfdGVzdCAicHJpbnQgbCIg IiA9IFxcLlRSVUVcXC4iICJsb2dpY2FsdmxhIGFsbG9jYXRlZCIKLStnZGJfdGVzdCAibmV4dCIg ImludHZsYVxcXCg6LDosOlxcXCkgPSAxIiBcCi0rICAibmV4dCB0byBhbGxvY2F0aW9uIHN0YXR1 cyBvZiBjaGFyYWN0ZXJ2bGEiCi0rZ2RiX3Rlc3QgInByaW50IGwiICIgPSBcXC5UUlVFXFwuIiAi Y2hhcmFjdGVydmxhIGFsbG9jYXRlZCIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5l X251bWJlciAidmxhcy1pbml0aWFsaXplZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg InZsYXMtaW5pdGlhbGl6ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIGludHZsYSIgInR5cGUgPSBpbnRl Z2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDExLDIyLDMzXFxcKSIgXAotKyAgInB0eXBlIGludHZsYSIK LStnZGJfdGVzdCAicHR5cGUgcmVhbHZsYSIgInR5cGUgPSByZWFsXFxcKGtpbmQ9NFxcXCkgXFxc KDExLDIyLDMzXFxcKSIgXAotKyAgInB0eXBlIHJlYWx2bGEiCi0rZ2RiX3Rlc3QgInB0eXBlIGNv bXBsZXh2bGEiICJ0eXBlID0gY29tcGxleFxcXChraW5kPTRcXFwpIFxcXCgxMSwyMiwzM1xcXCki IFwKLSsgICJwdHlwZSBjb21wbGV4dmxhIgotK2dkYl90ZXN0ICJwdHlwZSBsb2dpY2FsdmxhIiAi dHlwZSA9IGxvZ2ljYWxcXFwoa2luZD00XFxcKSBcXFwoMTEsMjIsMzNcXFwpIiBcCi0rICAicHR5 cGUgbG9naWNhbHZsYSIKLStnZGJfdGVzdCAicHR5cGUgY2hhcmFjdGVydmxhIiAidHlwZSA9IGNo YXJhY3RlclxcXCoxIFxcXCgxMSwyMiwzM1xcXCkiIFwKLSsgICJwdHlwZSBjaGFyYWN0ZXJ2bGEi Ci0rCi0rZ2RiX3Rlc3QgInByaW50IGludHZsYSg1LDUsNSkiICIgPSAxIiAicHJpbnQgaW50dmxh KDUsNSw1KSAoMXN0KSIKLStnZGJfdGVzdCAicHJpbnQgcmVhbHZsYSg1LDUsNSkiICIgPSAzLjE0 XFxkKyIgXAotKyAgInByaW50IHJlYWx2bGEoNSw1LDUpICgxc3QpIgotK2dkYl90ZXN0ICJwcmlu dCBjb21wbGV4dmxhKDUsNSw1KSIgIiA9IFxcXCgyLC0zXFxcKSIgXAotKyAgInByaW50IGNvbXBs ZXh2bGEoNSw1LDUpICgxc3QpIgotK2dkYl90ZXN0ICJwcmludCBsb2dpY2FsdmxhKDUsNSw1KSIg IiA9IFxcLlRSVUVcXC4iIFwKLSsgICJwcmludCBsb2dpY2FsdmxhKDUsNSw1KSAoMXN0KSIKLStn ZGJfdGVzdCAicHJpbnQgY2hhcmFjdGVydmxhKDUsNSw1KSIgIiA9ICdLJyIgXAotKyAgInByaW50 IGNoYXJhY3RlcnZsYSg1LDUsNSkgKDFzdCkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRf bGluZV9udW1iZXIgInZsYXMtbW9kaWZpZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJ2bGFzLW1vZGlmaWVkIgotK2dkYl90ZXN0ICJwcmludCBpbnR2bGEoNSw1LDUpIiAiID0gNDIi ICJwcmludCBpbnR2bGEoNSw1LDUpICgybmQpIgotK2dkYl90ZXN0ICJwcmludCByZWFsdmxhKDUs NSw1KSIgIiA9IDQuMTNcXGQrIiBcCi0rICAicHJpbnQgcmVhbHZsYSg1LDUsNSkgKDJuZCkiCi0r Z2RiX3Rlc3QgInByaW50IGNvbXBsZXh2bGEoNSw1LDUpIiAiID0gXFxcKC0zLDJcXFwpIiBcCi0r ICAicHJpbnQgY29tcGxleHZsYSg1LDUsNSkgKDJuZCkiCi0rZ2RiX3Rlc3QgInByaW50IGxvZ2lj YWx2bGEoNSw1LDUpIiAiID0gXFwuRkFMU0VcXC4iIFwKLSsgICJwcmludCBsb2dpY2FsdmxhKDUs NSw1KSAoMm5kKSIKLStnZGJfdGVzdCAicHJpbnQgY2hhcmFjdGVydmxhKDUsNSw1KSIgIiA9ICdY JyIgXAotKyAgInByaW50IGNoYXJhY3RlcnZsYSg1LDUsNSkgKDJuZCkiCi1JbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRhdHlwZXMuZjkw Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1kYXRhdHlwZXMuZjkwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY2NzQwMjkyICswMjAwCi1A QCAtMCwwICsxLDUxIEBACi0rISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSshIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y Ci0rISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyEKLSshIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot KyEgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKLSshIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKLSshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCi0rIQotKyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rISBGb3VuZGF0aW9uLCBJbmMuLCA1 OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgot KwotK3Byb2dyYW0gdmxhX3ByaW1pdGl2ZXMKLSsgIGludGVnZXIsIGFsbG9jYXRhYmxlICAgIDo6 IGludHZsYSg6LCA6LCA6KQotKyAgcmVhbCwgYWxsb2NhdGFibGUgICAgICAgOjogcmVhbHZsYSg6 LCA6LCA6KQotKyAgY29tcGxleCwgYWxsb2NhdGFibGUgICAgOjogY29tcGxleHZsYSg6LCA6LCA6 KQotKyAgbG9naWNhbCwgYWxsb2NhdGFibGUgICAgOjogbG9naWNhbHZsYSg6LCA6LCA6KQotKyAg Y2hhcmFjdGVyLCBhbGxvY2F0YWJsZSAgOjogY2hhcmFjdGVydmxhKDosIDosIDopCi0rICBsb2dp Y2FsICAgICAgICAgICAgICAgICA6OiBsCi0rCi0rICBhbGxvY2F0ZSAoaW50dmxhICgxMSwyMiwz MykpCi0rICBhbGxvY2F0ZSAocmVhbHZsYSAoMTEsMjIsMzMpKQotKyAgYWxsb2NhdGUgKGNvbXBs ZXh2bGEgKDExLDIyLDMzKSkKLSsgIGFsbG9jYXRlIChsb2dpY2FsdmxhICgxMSwyMiwzMykpCi0r ICBhbGxvY2F0ZSAoY2hhcmFjdGVydmxhICgxMSwyMiwzMykpCi0rCi0rICBsID0gYWxsb2NhdGVk KGludHZsYSkgICAgICAgICAgICAgICAgICAgISB2bGFzLWFsbG9jYXRlZAotKyAgbCA9IGFsbG9j YXRlZChyZWFsdmxhKQotKyAgbCA9IGFsbG9jYXRlZChjb21wbGV4dmxhKQotKyAgbCA9IGFsbG9j YXRlZChsb2dpY2FsdmxhKQotKyAgbCA9IGFsbG9jYXRlZChjaGFyYWN0ZXJ2bGEpCi0rCi0rICBp bnR2bGEoOiw6LDopID0gMQotKyAgcmVhbHZsYSg6LDosOikgPSAzLjE0Ci0rICBjb21wbGV4dmxh KDosOiw6KSA9IGNtcGx4KDIuMCwtMy4wKQotKyAgbG9naWNhbHZsYSg6LDosOikgPSAuVFJVRS4K LSsgIGNoYXJhY3RlcnZsYSg6LDosOikgPSBjaGFyKDc1KQotKwotKyAgaW50dmxhKDUsNSw1KSA9 IDQyICAgICAgICAgICAgICAgICAgICAgICEgdmxhcy1pbml0aWFsaXplZAotKyAgcmVhbHZsYSg1 LDUsNSkgPSA0LjEzCi0rICBjb21wbGV4dmxhKDUsNSw1KSA9IGNtcGx4KC0zLjAsMi4wKQotKyAg bG9naWNhbHZsYSg1LDUsNSkgPSAuRkFMU0UuCi0rICBjaGFyYWN0ZXJ2bGEoNSw1LDUpID0gJ1gn Ci0rCi0rICAhIGR1bW15IHN0YXRlbWVudCBmb3IgYnAKLSsgIGwgPSAuRkFMU0UuICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAhIHZsYXMtbW9kaWZpZWQKLStlbmQgcHJvZ3JhbSB2bGFfcHJp bWl0aXZlcwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtZnVuYy5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAJMjAxNS0wNS0yOSAwODoy NzowNi4yNjY3NDAyOTIgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAkyMDE1LTExLTAzIDIwOjQxOjQ4LjU0MjUwNDk5 MyArMDEwMAogQEAgLTAsMCArMSw2MSBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMjg0LDEwICs5MjYsMTAgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKICsg ICJwcmludCB2bGEzIChhZnRlciBmdW5jMikiCiArZ2RiX3Rlc3QgInB0eXBlIHZsYTMiICJ0eXBl ID0gaW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKICsgICJwdHlwZSB2bGEzIChh ZnRlciBmdW5jMikiCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAkyMDE1LTA1LTI5 IDA4OjI3OjA2LjI2Nzc0MDI5OCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCTIwMTUtMTEtMDMgMjA6NDE6NDguNTQy NTA0OTkzICswMTAwCiBAQCAtMCwwICsxLDcxIEBACiArISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xMzYwLDExICsxMDAyLDExIEBAIEluZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMu ZjkwCiArCiArICByZXQgPSAuVFJVRS4gICAgICAgICAgICAgICAgISBmdW5jMi1yZXR1cm5lZAog K2VuZCBwcm9ncmFtIHZsYV9mdW5jCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1oaXN0b3J5LmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWhpc3Rv cnkuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY3NzQwMjk4ICswMjAwCi1AQCAtMCwwICsxLDYy IEBACisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtc3RyaWRlLmV4cAkyMDE1LTExLTAzIDIwOjQxOjQ4LjU0MjUwNDk5MyArMDEwMAorQEAgLTAs MCArMSw0NCBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCiArCiArIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMTM4MCw3ICsxMDIyLDcgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlzdG9yeS5leHAK ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCiArIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICsKLStzdGFuZGFyZF90ZXN0ZmlsZSAidmxh LmY5MCIKKytzdGFuZGFyZF90ZXN0ZmlsZSAiLmY5MCIKICsKICtpZiB7IFtwcmVwYXJlX2Zvcl90 ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKICsgICAge2Rl YnVnIGY5MCBxdWlldH1dIH0gewpAQCAtMTM5MiwyMzkgKzEwMzQsNjMgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlzdG9yeS5leHAK ICsgICAgY29udGludWUKICt9CiArCi0rIyBTZXQgc29tZSBicmVha3BvaW50cyBhbmQgcHJpbnQg Y29tcGxldGUgdmxhLgotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEx LWluaXQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGExLWluaXQiCi0rZ2RiX3Rl c3QgInByaW50IHZsYTEiICIgPSA8bm90IGFsbG9jYXRlZD4iICJwcmludCBub24tYWxsb2NhdGVk IHZsYTEiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTItYWxs b2NhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxhMi1hbGxvY2F0ZWQiCi0r Z2RiX3Rlc3QgInByaW50IHZsYTEiICIgPSBcXCggKlxcKCAqXFwoICowLCAqMCwgKjAsXFsoKTAs IC5cXSpcXCkiIFwKLSsgICJwcmludCB2bGExIGFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHJpbnQg dmxhMiIgIiA9IFxcKCAqXFwoICpcXCggKjAsICowLCAqMCxcWygpMCwgLlxdKlxcKSIgXAotKyAg InByaW50IHZsYTIgYWxsb2NhdGVkIgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJ2bGExLWZpbGxlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEt ZmlsbGVkIgotK2dkYl90ZXN0ICJwcmludCB2bGExIiBcCi0rICAiID0gXFwoICpcXCggKlxcKCAq MTMxMSwgKjEzMTEsICoxMzExLFxbKCkxMzExLCAuXF0qXFwpIiBcCi0rICAicHJpbnQgdmxhMSBm aWxsZWQiCi0rCi0rIyBUcnkgdG8gYWNjZXNzIGhpc3RvcnkgdmFsdWVzIGZvciBmdWxsIHZsYSBw cmludHMuCi0rZ2RiX3Rlc3QgInByaW50IFwkMSIgIiA9IDxub3QgYWxsb2NhdGVkPiIgInByaW50 IFwkMSIKLStnZGJfdGVzdCAicHJpbnQgXCQyIiAiID0gXFwoICpcXCggKlxcKCAqMCwgKjAsICow LFxbKCkwLCAuXF0qXFwpIiBcCi0rICAicHJpbnQgXCQyIgotK2dkYl90ZXN0ICJwcmludCBcJDMi ICIgPSBcXCggKlxcKCAqXFwoICowLCAqMCwgKjAsXFsoKTAsIC5cXSpcXCkiIFwKLSsgICJwcmlu dCBcJDMiCi0rZ2RiX3Rlc3QgInByaW50IFwkNCIgXAotKyAgIiA9IFxcKCAqXFwoICpcXCggKjEz MTEsICoxMzExLCAqMTMxMSxcWygpMTMxMSwgLlxdKlxcKSIgInByaW50IFwkNCIKLSsKLStnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMi1maWxsZWQiXQotK2dkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJ2bGEyLWZpbGxlZCIKLStnZGJfdGVzdCAicHJpbnQgdmxhMigx LDQzLDIwKSIgIiA9IDEzMTEiICJwcmludCB2bGEyKDEsNDMsMjApIgotK2dkYl90ZXN0ICJwcmlu dCB2bGExKDEsMyw4KSIgIiA9IDEwMDEiICJwcmludCB2bGEyKDEsMyw4KSIKLSsKLSsjIFRyeSB0 byBhY2Nlc3MgaGlzdG9yeSB2YWx1ZXMgZm9yIHZsYSB2YWx1ZXMuCi0rZ2RiX3Rlc3QgInByaW50 IFwkOSIgIiA9IDEzMTEiICJwcmludCBcJDkiCi0rZ2RiX3Rlc3QgInByaW50IFwkMTAiICIgPSAx MDAxIiAicHJpbnQgXCQxMCIKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLXN1Yi5leHAKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLXN1Yi5leHAJMjAxNS0w NS0yOSAwODoyNzowNi4yNjc3NDAyOTggKzAyMDAKLUBAIC0wLDAgKzEsODcgQEAKLSsjIENvcHly aWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Ci0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KLSsKLStzdGFuZGFyZF90ZXN0ZmlsZSAidmxhLXN1Yi5mOTAiCi0r Ci0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0g JHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0x Ci0rfQorK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJyZS1yZXZlcnNlLWVs ZW1lbnRzIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAicmUtcmV2ZXJzZS1lbGVtZW50 cyIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4 LCA5LCAxMFxcXCkiIFwKKysgICJwcmludCByZS1yZXZlcnNlLWVsZW1lbnRzIgorK2dkYl90ZXN0 ICJwcmludCBwdmxhKDEpIiAiID0gMSIgInByaW50IGZpcnN0IHJlLXJldmVyc2UtZWxlbWVudCIK KytnZGJfdGVzdCAicHJpbnQgcHZsYSgxMCkiICIgPSAxMCIgInByaW50IGxhc3QgcmUtcmV2ZXJz ZS1lbGVtZW50IgogKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJj b3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQorK2dk Yl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJvZGQtZWxlbWVudHMiXQorK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJvZGQtZWxlbWVudHMiCisrZ2RiX3Rlc3QgInByaW50IHB2 bGEiICIgPSBcXFwoMSwgMywgNSwgNywgOVxcXCkiICJwcmludCBvZGQtZWxlbWVudHMiCisrZ2Ri X3Rlc3QgInByaW50IHB2bGEoMSkiICIgPSAxIiAicHJpbnQgZmlyc3Qgb2RkLWVsZW1lbnQiCisr Z2RiX3Rlc3QgInByaW50IHB2bGEoNSkiICIgPSA5IiAicHJpbnQgbGFzdCBvZGQtZWxlbWVudCIK ICsKLSsjIFBhc3MgZml4ZWQgYXJyYXkgdG8gZnVuY3Rpb24gYW5kIGhhbmRsZSB0aGVtIGFzIHZs YSBpbiBmdW5jdGlvbi4KLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAibm90 LWZpbGxlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIm5vdC1maWxsZWQgKDFzdCki Ci0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkg XFxcKDQyLDQyXFxcKSIgXAotKyAgInB0eXBlIGFycmF5MSAocGFzc2VkIGZpeGVkKSIKLStnZGJf dGVzdCAicHR5cGUgYXJyYXkyIiAidHlwZSA9IHJlYWxcXFwoa2luZD00XFxcKSBcXFwoNDIsNDIs NDJcXFwpIiBcCi0rICAicHR5cGUgYXJyYXkyIChwYXNzZWQgZml4ZWQpIgotK2dkYl90ZXN0ICJw dHlwZSBhcnJheTEoNDAsIDEwKSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkiIFwKLSsg ICJwdHlwZSBhcnJheTEoNDAsIDEwKSAocGFzc2VkIGZpeGVkKSIKLStnZGJfdGVzdCAicHR5cGUg YXJyYXkyKDEzLCAxMSwgNSkiICJ0eXBlID0gcmVhbFxcXChraW5kPTRcXFwpIiBcCi0rICAicHR5 cGUgYXJyYXkyKDEzLCAxMSwgNSkgKHBhc3NlZCBmaXhlZCkiCi0rCi0rIyBQYXNzIHN1YiBhcnJh eXMgdG8gZnVuY3Rpb24gYW5kIGhhbmRsZSB0aGVtIGFzIHZsYSBpbiBmdW5jdGlvbi4KLStnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAibm90LWZpbGxlZCAoMm5kKSIKLStnZGJfdGVzdCAicHR5 cGUgYXJyYXkxIiAidHlwZSA9IGludGVnZXJcXFwoa2luZD00XFxcKSBcXFwoNiw2XFxcKSIgXAot KyAgInB0eXBlIGFycmF5MSAocGFzc2VkIHN1Yi1hcnJheSkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFy cmF5MiIgInR5cGUgPSByZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDYsNiw2XFxcKSIgXAotKyAgInB0 eXBlIGFycmF5MiAocGFzc2VkIHN1Yi1hcnJheSkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MSgz LCAzKSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkiIFwKLSsgICJwdHlwZSBhcnJheTEo MywgMykgKHBhc3NlZCBzdWItYXJyYXkpIgotK2dkYl90ZXN0ICJwdHlwZSBhcnJheTIoNCwgNCwg NCkiICJ0eXBlID0gcmVhbFxcXChraW5kPTRcXFwpIiBcCi0rICAicHR5cGUgYXJyYXkyKDQsIDQs IDQpIChwYXNzZWQgc3ViLWFycmF5KSIKLSsKLSsjIENoZWNrIHB0eXBlIG91dHNpZGUgb2YgYm91 bmRzLiBUaGlzIHNob3VsZCBub3QgY3Jhc2ggR0RCLgotK2dkYl90ZXN0ICJwdHlwZSBhcnJheTEo MTAwLCAxMDApIiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIgXAotKyAgInB0eXBlIGFycmF5MSgx MDAsIDEwMCkgc3ViYXJyYXkgZG8gbm90IGNyYXNoIChwYXNzZWQgc3ViLWFycmF5KSIKLStnZGJf dGVzdCAicHR5cGUgYXJyYXkyKDEwMCwgMTAwLCAxMDApIiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVu dCIgXAotKyAgInB0eXBlIGFycmF5MigxMDAsIDEwMCwgMTAwKSBzdWJhcnJheSBkbyBub3QgY3Jh c2ggKHBhc3NlZCBzdWItYXJyYXkpIgotKwotKyMgUGFzcyB2bGEgdG8gZnVuY3Rpb24uCi0rZ2Ri X2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIm5vdC1maWxsZWQgKDNyZCkiCi0rZ2RiX3Rlc3QgInB0 eXBlIGFycmF5MSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDIwLDIwXFxcKSIg XAotKyAgInB0eXBlIGFycmF5MSAocGFzc2VkIHZsYSkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5 MiIgInR5cGUgPSByZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDEwLDEwLDEwXFxcKSIgXAotKyAgInB0 eXBlIGFycmF5MiAocGFzc2VkIHZsYSkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MSgzLCAzKSIg InR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkiIFwKLSsgICJwdHlwZSBhcnJheTEoMywgMykg KHBhc3NlZCB2bGEpIgotK2dkYl90ZXN0ICJwdHlwZSBhcnJheTIoNCwgNCwgNCkiICJ0eXBlID0g cmVhbFxcXChraW5kPTRcXFwpIiBcCi0rICAicHR5cGUgYXJyYXkyKDQsIDQsIDQpIChwYXNzZWQg dmxhKSIKLSsKLSsjIENoZWNrIHB0eXBlIG91dHNpZGUgb2YgYm91bmRzLiBUaGlzIHNob3VsZCBu b3QgY3Jhc2ggR0RCLgotK2dkYl90ZXN0ICJwdHlwZSBhcnJheTEoMTAwLCAxMDApIiAibm8gc3Vj aCB2ZWN0b3IgZWxlbWVudCIgXAotKyAgInB0eXBlIGFycmF5MSgxMDAsIDEwMCkgVkxBIGRvIG5v dCBjcmFzaCAocGFzc2VkIHZsYSkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MigxMDAsIDEwMCwg MTAwKSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQiIFwKLSsgICJwdHlwZSBhcnJheTIoMTAwLCAx MDAsIDEwMCkgVkxBIGRvIG5vdCBjcmFzaCAocGFzc2VkIHZsYSkiCi0rCi0rIyBQYXNzIGZpeGVk IGFycmF5IHRvIGZ1bmN0aW9uIGFuZCBoYW5kbGUgaXQgYXMgVkxBIG9mIGFyYml0cmFyeSBsZW5n dGggaW4KLSsjIGZ1bmN0aW9uLgotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVy ICJlbmQtb2YtYmFyIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZW5kLW9mLWJhciIK LStnZGJfdGVzdCAicHR5cGUgYXJyYXkxIiBcCi0rICAidHlwZSA9IChQVFIgVE8gLT4gXFwoICk/ aW50ZWdlcihcXChraW5kPTRcXCl8XFwqNCkgXFwoXFwqXFwpXFwpPyIgXAotKyAgInB0eXBlIGFy cmF5MSAoYXJiaXRyYXJ5IGxlbmd0aCkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MiIgXAotKyAg InR5cGUgPSAoUFRSIFRPIC0+IFxcKCApP2ludGVnZXIoXFwoa2luZD00XFwpfFxcKjQpIFxcKDQ6 OSwxMDpcXCpcXClcXCk/IiBcCi0rICAicHR5cGUgYXJyYXkyIChhcmJpdHJhcnkgbGVuZ3RoKSIK LStnZGJfdGVzdCAicHR5cGUgYXJyYXkxKDEwMCkiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRc XFwpIiBcCi0rICAicHR5cGUgYXJyYXkxKDEwMCkgKGFyYml0cmFyeSBsZW5ndGgpIgotK2dkYl90 ZXN0ICJwdHlwZSBhcnJheTIoNCwxMDApIiAidHlwZSA9IGludGVnZXJcXFwoa2luZD00XFxcKSIg XAotKyAgInB0eXBlIGFycmF5Mig0LDEwMCkgKGFyYml0cmFyeSBsZW5ndGgpIgotSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhw CisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInNpbmdsZS1lbGVtZW50Il0K KytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAic2luZ2xlLWVsZW1lbnQiCisrZ2RiX3Rlc3Qg InByaW50IHB2bGEiICIgPSBcXFwoNVxcXCkiICJwcmludCBzaW5nbGUtZWxlbWVudCIKKytnZGJf dGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9IDUiICJwcmludCBvbmUgc2luZ2xlLWVsZW1lbnQiCitJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt c3RyaWRlLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY3NzQwMjk4ICsw MjAwCi1AQCAtMCwwICsxLDk2IEBACi0rIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5 MAkyMDE1LTExLTAzIDIwOjQxOjQ4LjU0MzUwNDk5OSArMDEwMAorQEAgLTAsMCArMSwzMCBAQAor KyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIQorKyEg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKyshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrISBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisrISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEKKysh IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0 aGUgRnJlZSBTb2Z0d2FyZQorKyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0g U3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICsKLStzdGFuZGFyZF90ZXN0 ZmlsZSAidmxhLmY5MCIKKytwcm9ncmFtIHZsYV9zdHJpZGUKKysgIGludGVnZXIsIHRhcmdldCwg YWxsb2NhdGFibGUgOjogdmxhICg6KQorKyAgaW50ZWdlciwgcG9pbnRlciA6OiBwdmxhICg6KQog KwotK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9 ICR7c3JjZmlsZX0gXAotKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7Ci0rICAgIHJldHVybiAt MQotK30KKysgIGFsbG9jYXRlKHZsYSgxMCkpCisrICB2bGEgPSAoLyAoSSwgSSA9IDEsMTApIC8p CiArCi0raWYgIVtydW50byBNQUlOX19dIHRoZW4gewotKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1 biB0byBicmVha3BvaW50IE1BSU5fXyIKLSsgICAgY29udGludWUKLSt9CisrICBwdmxhID0+IHZs YSgxMDoxOi0xKQorKyAgcHZsYSA9PiBwdmxhKDEwOjE6LTEpCisrICBwdmxhID0+IHZsYSgxOjEw OjIpICAgISByZS1yZXZlcnNlLWVsZW1lbnRzCisrICBwdmxhID0+IHZsYSg1OjQ6LTIpICAgISBv ZGQtZWxlbWVudHMKICsKLSsjIENoZWNrIHRoZSBwdHlwZSBvZiB2YXJpb3VzIFZMQSBzdGF0ZXMg YW5kIHBvaW50ZXIgdG8gVkxBJ3MuCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1i ZXIgInZsYTEtaW5pdCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtaW5pdCIK LStnZGJfdGVzdCAicHR5cGUgdmxhMSIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2 bGExIG5vdCBpbml0aWFsaXplZCIKLStnZGJfdGVzdCAicHR5cGUgdmxhMiIgInR5cGUgPSA8bm90 IGFsbG9jYXRlZD4iICJwdHlwZSB2bGEyIG5vdCBpbml0aWFsaXplZCIKLStnZGJfdGVzdCAicHR5 cGUgcHZsYSIgInR5cGUgPSA8bm90IGFzc29jaWF0ZWQ+IiAicHR5cGUgcHZsYSBub3QgaW5pdGlh bGl6ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZsYTEoMywgNiwgOSkiICJubyBzdWNoIHZlY3RvciBl bGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInB0eXBlIHZsYTEoMywgNiwgOSkg bm90IGluaXRpYWxpemVkIgotK2dkYl90ZXN0ICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkiIFwKLSsg ICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInB0 eXBlIHZsYTEoNSwgNDUsIDIwKSBub3QgaW5pdGlhbGl6ZWQiCi0rCi0rZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtYWxsb2NhdGVkIl0KLStnZGJfY29udGludWVfdG9f YnJlYWtwb2ludCAidmxhMS1hbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZsYTEiICJ0eXBl ID0gcmVhbFxcXChraW5kPTRcXFwpIFxcXCgxMCwxMCwxMFxcXCkiIFwKLSsgICJwdHlwZSB2bGEx IGFsbG9jYXRlZCIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxh Mi1hbGxvY2F0ZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGEyLWFsbG9jYXRl ZCIKLStnZGJfdGVzdCAicHR5cGUgdmxhMiIgInR5cGUgPSByZWFsXFxcKGtpbmQ9NFxcXCkgXFxc KDcsNDI6NTAsMTM6MzVcXFwpIiBcCi0rICAicHR5cGUgdmxhMiBhbGxvY2F0ZWQiCi0rCi0rZ2Ri X2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtZmlsbGVkIl0KLStnZGJfY29u dGludWVfdG9fYnJlYWtwb2ludCAidmxhMS1maWxsZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZsYTEi ICJ0eXBlID0gcmVhbFxcXChraW5kPTRcXFwpIFxcXCgxMCwxMCwxMFxcXCkiIFwKLSsgICJwdHlw ZSB2bGExIGZpbGxlZCIKLStnZGJfdGVzdCAicHR5cGUgdmxhMSgzLCA2LCA5KSIgInR5cGUgPSBy ZWFsXFxcKGtpbmQ9NFxcXCkiIFwKLSsgICJwdHlwZSB2bGExKDMsIDYsIDkpIgotKwotK2dkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEyLWZpbGxlZCJdCi0rZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgInZsYTItZmlsbGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2bGEyIiAi dHlwZSA9IHJlYWxcXFwoa2luZD00XFxcKSBcXFwoNyw0Mjo1MCwxMzozNVxcXCkiIFwKLSsgICJw dHlwZSB2bGEyIGZpbGxlZCIKLStnZGJfdGVzdCAicHR5cGUgdmxhMig1LCA0NSwgMjApIiAidHlw ZSA9IHJlYWxcXFwoa2luZD00XFxcKSIgXAotKyAgInB0eXBlIHZsYTEoNSwgNDUsIDIwKSBmaWxs ZWQiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtYXNzb2Np YXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRlZCIKLStn ZGJfdGVzdCAicHR5cGUgcHZsYSIgInR5cGUgPSByZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDEwLDEw LDEwXFxcKSIgXAotKyAgInB0eXBlIHB2bGEgYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHR5cGUg cHZsYSgzLCA2LCA5KSIgInR5cGUgPSByZWFsXFxcKGtpbmQ9NFxcXCkiIFwKLSsgICJwdHlwZSBw dmxhKDMsIDYsIDkpIgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJw dmxhLXJlLWFzc29jaWF0ZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJwdmxhLXJl LWFzc29jaWF0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHB2bGEiICJ0eXBlID0gcmVhbFxcXChraW5k PTRcXFwpIFxcXCg3LDQyOjUwLDEzOjM1XFxcKSIgXAotKyAgInB0eXBlIHB2bGEgcmUtYXNzb2Np YXRlZCIKLStnZGJfdGVzdCAicHR5cGUgdmxhMig1LCA0NSwgMjApIiAidHlwZSA9IHJlYWxcXFwo a2luZD00XFxcKSIgXAotKyAgInB0eXBlIHZsYTEoNSwgNDUsIDIwKSByZS1hc3NvY2lhdGVkIgot KwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJwdmxhLWRlYXNzb2NpYXRl ZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtZGVhc3NvY2lhdGVkIgotK2dk Yl90ZXN0ICJwdHlwZSBwdmxhIiAidHlwZSA9IDxub3QgYXNzb2NpYXRlZD4iICJwdHlwZSBwdmxh IGRlYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgcHZsYSg1LCA0NSwgMjApIiBcCi0rICAi bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBiZWNhdXNlIG5vdCBhc3NvY2lhdGVkIiBcCi0rICAicHR5 cGUgcHZsYSg1LCA0NSwgMjApIG5vdCBhc3NvY2lhdGVkIgotKwotK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLWRlYWxsb2NhdGVkIl0KLStnZGJfY29udGludWVfdG9f YnJlYWtwb2ludCAidmxhMS1kZWFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgdmxhMSIgInR5 cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2bGExIG5vdCBhbGxvY2F0ZWQiCi0rZ2RiX3Rl c3QgInB0eXBlIHZsYTEoMywgNiwgOSkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ug bm90IGFsbG9jYXRlZCIgXAotKyAgInB0eXBlIHZsYTEoMywgNiwgOSkgbm90IGFsbG9jYXRlZCIK LSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMi1kZWFsbG9jYXRl ZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTItZGVhbGxvY2F0ZWQiCi0rZ2Ri X3Rlc3QgInB0eXBlIHZsYTIiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmxhMiBu b3QgYWxsb2NhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkiIFwKLSsgICJu byBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInB0eXBl IHZsYTIoNSwgNDUsIDIwKSBub3QgYWxsb2NhdGVkIgotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAorKyAgcHZsYSA9PiBu dWxsKCkgICAgICAgICEgc2luZ2xlLWVsZW1lbnQKKytlbmQgcHJvZ3JhbSB2bGFfc3RyaWRlCitJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt c3RyaW5ncy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAJMjAxNS0wNS0yOSAwODoyNzowNi4yNjc3NDAyOTgg KzAyMDAKLUBAIC0wLDAgKzEsNDYgQEAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAkyMDE1LTExLTAzIDIxOjEzOjQ1Ljg2 MzM4NjAwNyArMDEwMAorQEAgLTAsMCArMSwxMDEgQEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwogKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKQEAgLTE2NDAsMTUw ICsxMTA2LDE1IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXNpemVvZi5leHAKICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiArIyBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICsK LStzdGFuZGFyZF90ZXN0ZmlsZSAidmxhLmY5MCIKKytzdGFuZGFyZF90ZXN0ZmlsZSAiLmY5MCIK ICsKICtpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxl fSAke3NyY2ZpbGV9IFwKICsgICAge2RlYnVnIGY5MCBxdWlldH1dIH0gewogKyAgICByZXR1cm4g LTEKICt9Ci0rCi0raWYgIVtydW50byBNQUlOX19dIHRoZW4gewotKyAgICBwZXJyb3IgImNvdWxk bid0IHJ1biB0byBicmVha3BvaW50IE1BSU5fXyIKLSsgICAgY29udGludWUKLSt9Ci0rCi0rIyBU cnkgdG8gYWNjZXNzIHZhbHVlcyBpbiBub24gYWxsb2NhdGVkIFZMQQotK2dkYl9icmVha3BvaW50 IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLWluaXQiXQotK2dkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJ2bGExLWluaXQiCi0rZ2RiX3Rlc3QgInByaW50IHNpemVvZih2bGExKSIgIiA9IDAi ICJwcmludCBzaXplb2Ygbm9uLWFsbG9jYXRlZCB2bGExIgotKwotKyMgVHJ5IHRvIGFjY2VzcyB2 YWx1ZSBpbiBhbGxvY2F0ZWQgVkxBCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1i ZXIgInZsYTItYWxsb2NhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxhMi1h bGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInByaW50IHNpemVvZih2bGExKSIgIiA9IDQwMDAiICJwcmlu dCBzaXplb2YgYWxsb2NhdGVkIHZsYTEiCi0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBpbiB1 bmRlZmluZWQgcG9pbnRlciB0byBWTEEgKGRhbmdsaW5nKQotK2dkYl9icmVha3BvaW50IFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJ2bGExLWZpbGxlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgInZsYTEtZmlsbGVkIgotK2dkYl90ZXN0ICJwcmludCBzaXplb2YocHZsYSkiICIgPSAwIiAi cHJpbnQgc2l6ZW9mIG5vbi1hc3NvY2lhdGVkIHB2bGEiCi0rCi0rIyBUcnkgdG8gYWNjZXNzIHZh bHVlcyBpbiBwb2ludGVyIHRvIFZMQSBhbmQgY29tcGFyZSB0aGVtCi0rZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtYXNzb2NpYXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHB2 bGEpIiAiID0gNDAwMCIgInByaW50IHNpemVvZiBhc3NvY2lhdGVkIHB2bGEiCi1JbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhw Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1zdHJpZGUuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY3NzQwMjk4ICswMjAwCi1AQCAt MCwwICsxLDQ0IEBACi0rIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsj IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVz dGZpbGUgIi5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5l eHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsK LSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAg cGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVl Ci0rfQotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJyZS1yZXZlcnNl LWVsZW1lbnRzIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAicmUtcmV2ZXJzZS1lbGVt ZW50cyIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCgxLCAyLCAzLCA0LCA1LCA2LCA3 LCA4LCA5LCAxMFxcXCkiIFwKLSsgICJwcmludCByZS1yZXZlcnNlLWVsZW1lbnRzIgotK2dkYl90 ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gMSIgInByaW50IGZpcnN0IHJlLXJldmVyc2UtZWxlbWVu dCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSgxMCkiICIgPSAxMCIgInByaW50IGxhc3QgcmUtcmV2 ZXJzZS1lbGVtZW50IgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJv ZGQtZWxlbWVudHMiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJvZGQtZWxlbWVudHMi Ci0rZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoMSwgMywgNSwgNywgOVxcXCkiICJwcmlu dCBvZGQtZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoMSkiICIgPSAxIiAicHJpbnQg Zmlyc3Qgb2RkLWVsZW1lbnQiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoNSkiICIgPSA5IiAicHJp bnQgbGFzdCBvZGQtZWxlbWVudCIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251 bWJlciAic2luZ2xlLWVsZW1lbnQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJzaW5n bGUtZWxlbWVudCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCg1XFxcKSIgInByaW50 IHNpbmdsZS1lbGVtZW50IgotK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gNSIgInByaW50 IG9uZSBzaW5nbGUtZWxlbWVudCIKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAJMjAxNS0wNS0y OSAwODoyNzowNi4yNjg3NDAzMDUgKzAyMDAKLUBAIC0wLDAgKzEsMzAgQEAKLSshIENvcHlyaWdo dCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyEKLSshIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 Ci0rISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQotKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSshIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyEgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyEgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSshCi0rISBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot KyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m dHdhcmUKLSshIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwg Qm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0rCi0rcHJvZ3JhbSB2bGFfc3RyaWRlCi0rICBp bnRlZ2VyLCB0YXJnZXQsIGFsbG9jYXRhYmxlIDo6IHZsYSAoOikKLSsgIGludGVnZXIsIHBvaW50 ZXIgOjogcHZsYSAoOikKLSsKLSsgIGFsbG9jYXRlKHZsYSgxMCkpCi0rICB2bGEgPSAoLyAoSSwg SSA9IDEsMTApIC8pCi0rCi0rICBwdmxhID0+IHZsYSgxMDoxOi0xKQotKyAgcHZsYSA9PiBwdmxh KDEwOjE6LTEpCi0rICBwdmxhID0+IHZsYSgxOjEwOjIpICAgISByZS1yZXZlcnNlLWVsZW1lbnRz Ci0rICBwdmxhID0+IHZsYSg1OjQ6LTIpICAgISBvZGQtZWxlbWVudHMKLSsKLSsgIHB2bGEgPT4g bnVsbCgpICAgICAgICAhIHNpbmdsZS1lbGVtZW50Ci0rZW5kIHByb2dyYW0gdmxhX3N0cmlkZQot SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt c3RyaW5ncy5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY4NzQwMzA1 ICswMjAwCi1AQCAtMCwwICsxLDEwNCBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsj IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwot K3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgotKwotK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3Rpbmcg JHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAotKyAgICB7ZGVidWcgZjkw IHF1aWV0fV0gfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLSsjIGNoZWNrIHRoYXQgYWxsIGZv cnRyYW4gc3RhbmRhcmQgZGF0YXR5cGVzIHdpbGwgYmUKLSsjIGhhbmRsZWQgY29ycmVjdGx5IHdo ZW4gdXNpbmcgYXMgVkxBJ3MKKysKKysjIGNoZWNrIHRoYXQgYWxsIGZvcnRyYW4gc3RhbmRhcmQg ZGF0YXR5cGVzIHdpbGwgYmUKKysjIGhhbmRsZWQgY29ycmVjdGx5IHdoZW4gdXNpbmcgYXMgVkxB J3MKICsKICtpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7CiArICAgIHBlcnJvciAiY291bGRuJ3Qg cnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgpAQCAtMTc5NSw5ICsxMTI2LDYgQEAgSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5l eHAKICtnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIiIFwKICsgICIgPSBcXChQVFIgVE8gLT4gXFwo IGNoYXJhY3RlclxcKjEwIFxcKVxcKSAke2hleH0iIFwKICsgICJwcmludCB2YXJfY2hhciBhZnRl ciBhbGxvY2F0ZWQgZmlyc3QgdGltZSIKLStnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiBcCi0r ICAiID0gJ1xcXFwwMDBcXFxcMDAwXFxcXDAwMFxcXFwwMDBcXFxcMDAwXFxcXDAwMFxcXFwwMDBc XFxcMDAwXFxcXDAwMFxcXFwwMDAnIiBcCi0rICAicHJpbnQgKnZhcl9jaGFyIGFmdGVyIGFsbG9j YXRlZCBmaXJzdCB0aW1lIgogK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRS IFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXCkiIFwKICsgICJ3aGF0aXMgdmFyX2NoYXIgZmly c3QgdGltZSIKICtnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxc KCBjaGFyYWN0ZXJcXCoxMCBcXCkiIFwKQEAgLTE4NjQsMTAgKzExOTIsMTAgQEAgSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5l eHAKICsgICJ3aGF0aXMgdmFyX2NoYXJfcCBhZnRlciBhc3NvY2lhdGVkIgogK2dkYl90ZXN0ICJw dHlwZSB2YXJfY2hhcl9wIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNyBcXCki IFwKICsgICJwdHlwZSB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0ZWQiCi1JbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAor SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXN0cmluZ3MuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAkyMDE1LTA1LTMxIDE1OjI1OjAxLjMwNTYxNTc1 NSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXN0cmluZ3MuZjkwCTIwMTUtMTEtMDMgMjA6NDE6NDguNTQzNTA0OTk5ICswMTAwCiBA QCAtMCwwICsxLDQwIEBACiArISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KICshCkBAIC0xOTA5LDczNCArMTIzNywxMSBAQCBJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAogKyAgdmFy X2NoYXJfcCA9PiBudWxsKCkKICsgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3ApICAgICAgICAg ICAgICAhIHZhcl9jaGFyX3Atbm90LWFzc29jaWF0ZWQKICtlbmQgcHJvZ3JhbSB2bGFfc3RyaW5n cwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtc3ViLmY5MAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90eXBlcHJpbnQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtc3ViLmY5MAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2ODc0MDMwNSArMDIwMAotQEAgLTAsMCAr MSw4MiBAQAotKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Ci0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKLSshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rISB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyEgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSshIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m Ci0rISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCi0rISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgotKyEKLSshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCi0rISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3 cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl IFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSshCi0rISBP cmlnaW5hbCBmaWxlIHdyaXR0ZW4gYnkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4g YW5kCi0rISBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4uCi0rISBN b2RpZmllZCBmb3IgdGhlIEdEQiB0ZXN0Y2FzZXMgYnkgS2V2ZW4gQm9lbGwgPGtldmVuLmJvZWxs QGludGVsLmNvbT4uCi0rCi0rc3Vicm91dGluZSBmb28gKGFycmF5MSwgYXJyYXkyKQotKyAgaW50 ZWdlciA6OiBhcnJheTEgKDosIDopCi0rICByZWFsICAgIDo6IGFycmF5MiAoOiwgOiwgOikKLSsK LSsgIGFycmF5MSg6LDopID0gNSAgICAgICAgICAgICAgICAgICAgICAgISBub3QtZmlsbGVkCi0r ICBhcnJheTEoMSwgMSkgPSAzMAotKwotKyAgYXJyYXkyKDosOiw6KSA9IDYgICAgICAgICAgICAg ICAgICAgICAhIGFycmF5MS1maWxsZWQKLSsgIGFycmF5Mig6LDosOikgPSAzCi0rICBhcnJheTIo MSwxLDEpID0gMzAKLSsgIGFycmF5MigzLDMsMykgPSA5MCAgICAgICAgICAgICAgICAgICAgISBh cnJheTItYWxtb3N0LWZpbGxlZAotK2VuZCBzdWJyb3V0aW5lCi0rCi0rc3Vicm91dGluZSBiYXIg KGFycmF5MSwgYXJyYXkyKQotKyAgaW50ZWdlciA6OiBhcnJheTEgKCopCi0rICBpbnRlZ2VyIDo6 IGFycmF5MiAoNDo5LCAxMDoqKQotKwotKyAgYXJyYXkxKDU6MTApID0gMTMxMQotKyAgYXJyYXkx KDcpID0gMQotKyAgYXJyYXkxKDEwMCkgPSAxMDAKLSsgIGFycmF5Mig0LDEwKSA9IGFycmF5MSg3 KQotKyAgYXJyYXkyKDQsMTAwKSA9IGFycmF5MSg3KQotKyAgcmV0dXJuICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAhIGVuZC1vZi1iYXIKLStlbmQgc3Vicm91dGluZQotKwotK3Byb2dy YW0gdmxhX3N1YgotKyAgaW50ZXJmYWNlCi0rICAgIHN1YnJvdXRpbmUgZm9vIChhcnJheTEsIGFy cmF5MikKLSsgICAgICBpbnRlZ2VyIDo6IGFycmF5MSAoOiwgOikKLSsgICAgICByZWFsIDo6IGFy cmF5MiAoOiwgOiwgOikKLSsgICAgZW5kIHN1YnJvdXRpbmUKLSsgIGVuZCBpbnRlcmZhY2UKLSsg IGludGVyZmFjZQotKyAgICBzdWJyb3V0aW5lIGJhciAoYXJyYXkxLCBhcnJheTIpCi0rICAgICAg aW50ZWdlciA6OiBhcnJheTEgKCopCi0rICAgICAgaW50ZWdlciA6OiBhcnJheTIgKDQ6OSwgMTA6 KikKLSsgICAgZW5kIHN1YnJvdXRpbmUKLSsgIGVuZCBpbnRlcmZhY2UKLSsKLSsgIHJlYWwsIGFs bG9jYXRhYmxlIDo6IHZsYTEgKDosIDosIDopCi0rICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2 bGEyICg6LCA6KQotKwotKyAgISB1c2VkIGZvciBzdWJyb3V0aW5lCi0rICBpbnRlZ2VyIDo6IHN1 Yl9hcnIxKDQyLCA0MikKLSsgIHJlYWwgICAgOjogc3ViX2FycjIoNDIsIDQyLCA0MikKLSsgIGlu dGVnZXIgOjogc3ViX2FycjMoNDIpCi0rCi0rICBzdWJfYXJyMSg6LDopID0gMSAgICAgICAgICAg ICAgICAgICAhIHZsYTItZGVhbGxvY2F0ZWQKLSsgIHN1Yl9hcnIyKDosOiw6KSA9IDIKLSsgIHN1 Yl9hcnIzKDopID0gMwotKwotKyAgY2FsbCBmb28oc3ViX2FycjEsIHN1Yl9hcnIyKQotKyAgY2Fs bCBmb28oc3ViX2FycjEoNToxMCwgNToxMCksIHN1Yl9hcnIyKDEwOjE1LDEwOjE1LDEwOjE1KSkK LSsKLSsgIGFsbG9jYXRlICh2bGExICgxMCwxMCwxMCkpCi0rICBhbGxvY2F0ZSAodmxhMiAoMjAs MjApKQotKyAgdmxhMSg6LDosOikgPSAxMzExCi0rICB2bGEyKDosOikgPSA0MgotKyAgY2FsbCBm b28odmxhMiwgdmxhMSkKLSsKLSsgIGNhbGwgYmFyKHN1Yl9hcnIzLCBzdWJfYXJyMSkKLStlbmQg cHJvZ3JhbSB2bGFfc3ViCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWItYXJiaXRyYXJ5LmV4cAotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWFy Yml0cmFyeS5leHAJMjAxNS0wNS0yOSAwODoyNzowNi4yNjg3NDAzMDUgKzAyMDAKLUBAIC0wLDAg KzEsMzUgQEAKLSsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m Ci0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStzdGFuZGFyZF90ZXN0Zmls ZSAidmxhLXN1Yi5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxl fS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9 IHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsg ICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRp bnVlCi0rfQotKwotKyMgQ2hlY2sgVkxBIHdpdGggYXJiaXRhcnkgbGVuZ3RoIGFuZCBjaGVjayB0 aGF0IGVsZW1lbnRzIG91dHNpZGUgb2YKLSsjIGJvdW5kcyBvZiB0aGUgcGFzc2VkIFZMQSBjYW4g YmUgYWNjZXNzZWQgY29ycmVjdGx5LgotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJlbmQtb2YtYmFyIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZW5kLW9mLWJh ciIKLStnZGJfdGVzdCAicCBhcnJheTEoNDIpIiAiID0gMyIgInByaW50IGFyYml0YXJ5IGFycmF5 MSg0MikiCi0rZ2RiX3Rlc3QgInAgYXJyYXkxKDEwMCkiICIgPSAxMDAiICJwcmludCBhcmJpdGFy eSBhcnJheTEoMTAwKSIKLStnZGJfdGVzdCAicCBhcnJheTIoNCwxMCkiICIgPSAxIiAicHJpbnQg YXJiaXRhcnkgYXJyYXkyKDQsMTApIgotK2dkYl90ZXN0ICJwIGFycmF5Mig0LDEwMCkiICIgPSAx IiAicHJpbnQgYXJiaXRhcnkgYXJyYXkyKDQsMTAwKSIKLUluZGV4OiBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1maW5pc2guZXhwCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS12YWx1ZS1zdWItZmluaXNoLmV4cAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2ODc0MDMwNSArMDIw MAotQEAgLTAsMCArMSw0OSBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5k YXJkX3Rlc3RmaWxlICJ2bGEtc3ViLmY5MCIKLSsKLStpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5n ICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKLSsgICAge2RlYnVnIGY5 MCBxdWlldH1dIH0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0raWYgIVtydW50byBNQUlOX19d IHRoZW4gewotKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IE1BSU5fXyIK LSsgICAgY29udGludWUKLSt9Ci0rCi0rIyAidXAiIHdvcmtzIHdpdGggR0NDIGJ1dCBvdGhlciBG b3J0cmFuIGNvbXBpbGVycyBtYXkgY29weSB0aGUgdmFsdWVzIGludG8gdGhlCi0rIyBvdXRlciBm dW5jdGlvbiBvbmx5IG9uIHRoZSBleGl0IG9mIHRoZSBpbm5lciBmdW5jdGlvbi4KLSsjIFdlIG5l ZWQgYm90aCB2YXJpYW50cyBhcyBkZXBlbmRpbmcgb24gdGhlIGFyY2ggd2Ugb3B0aW9uYWxseSBt YXkgc3RpbGwgYmUKLSsjIGV4ZWN1dGluZyB0aGUgY2FsbGVyIGxpbmUgb3Igbm90IGFmdGVyIGBm aW5pc2gnLgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJhcnJheTIt YWxtb3N0LWZpbGxlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImFycmF5Mi1hbG1v c3QtZmlsbGVkIgotK2dkYl90ZXN0ICJwcmludCBhcnJheTIiICIgPSBcXCggKlxcKCAqXFwoICoz MCwgKjMsICozLFxbKCkzLCAuXF0qXFwpIiBcCi0rICAicHJpbnQgYXJyYXkyIGluIGZvbyBhZnRl ciBpdCB3YXMgZmlsbGVkIgotK2dkYl90ZXN0ICJwcmludCBhcnJheTIoMiwxLDEpPTIwIiAiID0g MjAiIFwKLSsgICJzZXQgYXJyYXkoMiwyLDIpIHRvIDIwIGluIHN1YnJvdXRpbmUiCi0rZ2RiX3Rl c3QgInByaW50IGFycmF5MiIgIiA9IFxcKCAqXFwoICpcXCggKjMwLCAqMjAsICozLFxbKCkzLCAu XF0qXFwpIiBcCi0rICAicHJpbnQgYXJyYXkyIGluIGZvbyBhZnRlciBpdCB3YXMgbW9maWZpZWQg aW4gZGVidWdnZXIiCi0rCi0rZ2RiX3Rlc3QgImZpbmlzaCIgXAotKyAgIi4qZm9vXFxcKHN1Yl9h cnIxXFxcKDU6MTAsIDU6MTBcXFwpLCBzdWJfYXJyMlxcXCgxMDoxNSwxMDoxNSwxMDoxNVxcXClc XFwpIiBcCi0rICAiZmluaXNoIGZ1bmN0aW9uIgotK2dkYl90ZXN0ICJwIHN1Yl9hcnIxKDUsIDcp IiAiID0gNSIgInN1Yl9hcnIxKDUsIDcpIGFmdGVyIGZpbmlzaCIKLStnZGJfdGVzdCAicCBzdWJf YXJyMSgxLCAxKSIgIiA9IDMwIiAic3ViX2FycjEoMSwgMSkgYWZ0ZXIgZmluaXNoIgotK2dkYl90 ZXN0ICJwIHN1Yl9hcnIyKDEsIDEsIDEpIiAiID0gMzAiICJzdWJfYXJyMigxLCAxLCAxKSBhZnRl ciBmaW5pc2giCi0rZ2RiX3Rlc3QgInAgc3ViX2FycjIoMiwgMSwgMSkiICIgPSAyMCIgInN1Yl9h cnIyKDIsIDEsIDEpIGFmdGVyIGZpbmlzaCIKLSsKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi5leHAKLT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1 Yi5leHAJMjAxNS0wNS0yOSAwODoyNzowNi4yNjk3NDAzMTEgKzAyMDAKLUBAIC0wLDAgKzEsOTAg QEAKLSsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwot KyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMK LSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStzdGFuZGFyZF90ZXN0ZmlsZSAidmxh LXN1Yi5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAg JHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsg ICAgcmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVy cm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0r fQotKwotKyMgQ2hlY2sgdGhlIHZhbHVlcyBvZiBWTEEncyBpbiBzdWJyb3V0aW5lIGNhbiBiZSBl dmFsdWF0ZWQgY29ycmVjdGx5Ci0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBmcm9tIGEgZml4 ZWQgYXJyYXkgaGFuZGxlZCBhcyBWTEEgaW4gc3Vicm91dGluZS4KLStnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAibm90LWZpbGxlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgIm5vdC1maWxsZWQgKDFzdCkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MSIgIiA9IFxc KFxbKCkxLCAuXF0qXFwpIiBcCi0rICAicHJpbnQgcGFzc2VkIGFycmF5MSBpbiBmb28gKHBhc3Nl ZCBmaXhlZCBhcnJheSkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg ImFycmF5MS1maWxsZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJhcnJheTEtZmls bGVkICgxc3QpIgotK2dkYl90ZXN0ICJwcmludCBhcnJheTEoNSwgNykiICIgPSA1IiBcCi0rICAi cHJpbnQgYXJyYXkxKDUsIDcpIGFmdGVyIGZpbGxlZCBpbiBmb28gKHBhc3NlZCBmaXhlZCBhcnJh eSkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MSgxLCAxKSIgIiA9IDMwIiBcCi0rICAicHJpbnQg YXJyYXkxKDEsIDEpIGFmdGVyIGZpbGxlZCBpbiBmb28gKHBhc3NlZCBmaXhlZCBhcnJheSkiCi0r Ci0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImFycmF5Mi1hbG1vc3QtZmls bGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYXJyYXkyLWFsbW9zdC1maWxsZWQg KDFzdCkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MiIgIiA9IFxcKCAqXFwoICpcXCggKjMwLCAq MywgKjMsXFsoKTMsIC5cXSpcXCkiIFwKLSsgICJwcmludCBhcnJheTIgaW4gZm9vIGFmdGVyIGl0 IHdhcyBmaWxsZWQgKHBhc3NlZCBmaXhlZCBhcnJheSkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5 MigyLDEsMSk9MjAiICIgPSAyMCIgXAotKyAgInNldCBhcnJheSgyLDIsMikgdG8gMjAgaW4gc3Vi cm91dGluZSAocGFzc2VkIGZpeGVkIGFycmF5KSIKLStnZGJfdGVzdCAicHJpbnQgYXJyYXkyIiAi ID0gXFwoICpcXCggKlxcKCAqMzAsICoyMCwgKjMsXFsoKTMsIC5cXSpcXCkiIFwKLSsgICJwcmlu dCBhcnJheTIgaW4gZm9vIGFmdGVyIGl0IHdhcyBtb2ZpZmllZCBpbiBkZWJ1Z2dlciAocGFzc2Vk IGZpeGVkIGFycmF5KSIKLSsKLSsKLSsjIFRyeSB0byBhY2Nlc3MgdmFsdWVzIGZyb20gYSBmaXhl ZCBzdWItYXJyYXkgaGFuZGxlZCBhcyBWTEEgaW4gc3Vicm91dGluZS4KLStnZGJfY29udGludWVf dG9fYnJlYWtwb2ludCAibm90LWZpbGxlZCAoMm5kKSIKLStnZGJfdGVzdCAicHJpbnQgYXJyYXkx IiAiID0gXFwoXFsoKTUsIC5cXSpcXCkiIFwKLSsgICJwcmludCBwYXNzZWQgYXJyYXkxIGluIGZv byAocGFzc2VkIHN1Yi1hcnJheSkiCi0rCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImFy cmF5MS1maWxsZWQgKDJuZCkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MSg1LCA1KSIgIiA9IDUi IFwKLSsgICJwcmludCBhcnJheTEoNSwgNSkgYWZ0ZXIgZmlsbGVkIGluIGZvbyAocGFzc2VkIHN1 Yi1hcnJheSkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MSgxLCAxKSIgIiA9IDMwIiBcCi0rICAi cHJpbnQgYXJyYXkxKDEsIDEpIGFmdGVyIGZpbGxlZCBpbiBmb28gKHBhc3NlZCBzdWItYXJyYXkp IgotKwotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJhcnJheTItYWxtb3N0LWZpbGxlZCAo Mm5kKSIKLStnZGJfdGVzdCAicHJpbnQgYXJyYXkyIiAiID0gXFwoICpcXCggKlxcKCAqMzAsICoz LCAqMyxcWygpMywgLlxdKlxcKSIgXAotKyAgInByaW50IGFycmF5MiBpbiBmb28gYWZ0ZXIgaXQg d2FzIGZpbGxlZCAocGFzc2VkIHN1Yi1hcnJheSkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5Migy LDEsMSk9MjAiICIgPSAyMCIgXAotKyAgInNldCBhcnJheSgyLDIsMikgdG8gMjAgaW4gc3Vicm91 dGluZSAocGFzc2VkIHN1Yi1hcnJheSkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MiIgIiA9IFxc KCAqXFwoICpcXCggKjMwLCAqMjAsICozLFxbKCkzLCAuXF0qXFwpIiBcCi0rICAicHJpbnQgYXJy YXkyIGluIGZvbyBhZnRlciBpdCB3YXMgbW9maWZpZWQgaW4gZGVidWdnZXIgKHBhc3NlZCBzdWIt YXJyYXkpIgotKwotKwotKyMgVHJ5IHRvIGFjY2VzcyB2YWx1ZXMgZnJvbSBhIFZMQSBwYXNzZWQg dG8gc3Vicm91dGluZS4KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAibm90LWZpbGxlZCAo M3JkKSIKLStnZGJfdGVzdCAicHJpbnQgYXJyYXkxIiAiID0gXFwoXFsoKTQyLCAuXF0qXFwpIiBc Ci0rICAicHJpbnQgcGFzc2VkIGFycmF5MSBpbiBmb28gKHBhc3NlZCB2bGEpIgotKwotK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJhcnJheTEtZmlsbGVkICgzcmQpIgotK2dkYl90ZXN0ICJw cmludCBhcnJheTEoNSwgNSkiICIgPSA1IiBcCi0rICAicHJpbnQgYXJyYXkxKDUsIDUpIGFmdGVy IGZpbGxlZCBpbiBmb28gKHBhc3NlZCB2bGEpIgotK2dkYl90ZXN0ICJwcmludCBhcnJheTEoMSwg MSkiICIgPSAzMCIgXAotKyAgInByaW50IGFycmF5MSgxLCAxKSBhZnRlciBmaWxsZWQgaW4gZm9v IChwYXNzZWQgdmxhKSIKLSsKLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYXJyYXkyLWFs bW9zdC1maWxsZWQgKDNyZCkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MiIgIiA9IFxcKCAqXFwo ICpcXCggKjMwLCAqMywgKjMsXFsoKTMsIC5cXSpcXCkiIFwKLSsgICJwcmludCBhcnJheTIgaW4g Zm9vIGFmdGVyIGl0IHdhcyBmaWxsZWQgKHBhc3NlZCB2bGEpIgotK2dkYl90ZXN0ICJwcmludCBh cnJheTIoMiwxLDEpPTIwIiAiID0gMjAiIFwKLSsgICJzZXQgYXJyYXkoMiwyLDIpIHRvIDIwIGlu IHN1YnJvdXRpbmUgKHBhc3NlZCB2bGEpIgotK2dkYl90ZXN0ICJwcmludCBhcnJheTIiICIgPSBc XCggKlxcKCAqXFwoICozMCwgKjIwLCAqMyxcWygpMywgLlxdKlxcKSIgXAotKyAgInByaW50IGFy cmF5MiBpbiBmb28gYWZ0ZXIgaXQgd2FzIG1vZmlmaWVkIGluIGRlYnVnZ2VyIChwYXNzZWQgdmxh KSIKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXZhbHVlLmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY5NzQwMzEx ICswMjAwCi1AQCAtMCwwICsxLDE0OCBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsj IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwot K3N0YW5kYXJkX3Rlc3RmaWxlICJ2bGEuZjkwIgotKwotK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3Rp bmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAotKyAgICAge2RlYnVn IGY5MCBxdWlldH1dIH0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0raWYgIVtydW50byBNQUlO X19dIHRoZW4gewotKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IE1BSU5f XyIKLSsgICAgY29udGludWUKLSt9Ci0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBpbiBub24g YWxsb2NhdGVkIFZMQQotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEx LWluaXQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGExLWluaXQiCi0rZ2RiX3Rl c3QgInByaW50IHZsYTEiICIgPSA8bm90IGFsbG9jYXRlZD4iICJwcmludCBub24tYWxsb2NhdGVk IHZsYTEiCi0rZ2RiX3Rlc3QgInByaW50ICZ2bGExIiBcCi0rICAiID0gXFxcKFBUUiBUTyAtPiBc XFwoIHJlYWxcXFwoa2luZD00XFxcKSBcXFwoPG5vdCBhbGxvY2F0ZWQ+XFxcKVxcXClcXFwpICRo ZXgiIFwKLSsgICJwcmludCBub24tYWxsb2NhdGVkICZ2bGExIgotK2dkYl90ZXN0ICJwcmludCB2 bGExKDEsMSwxKSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgYmVjYXVzZSBub3QgYWxsb2NhdGVk IiBcCi0rICAicHJpbnQgbWVtYmVyIGluIG5vbi1hbGxvY2F0ZWQgdmxhMSAoMSkiCi0rZ2RiX3Rl c3QgInByaW50IHZsYTEoMTAxLDIwMiwzMDMpIiBcCi0rICAibm8gc3VjaCB2ZWN0b3IgZWxlbWVu dCBiZWNhdXNlIG5vdCBhbGxvY2F0ZWQiIFwKLSsgICJwcmludCBtZW1iZXIgaW4gbm9uLWFsbG9j YXRlZCB2bGExICgyKSIKLStnZGJfdGVzdCAicHJpbnQgdmxhMSg1LDIsMTgpPTEiICJubyBzdWNo IHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInNldCBtZW1iZXIg aW4gbm9uLWFsbG9jYXRlZCB2bGExIgotKwotKyMgVHJ5IHRvIGFjY2VzcyB2YWx1ZSBpbiBhbGxv Y2F0ZWQgVkxBCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTItYWxs b2NhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxhMi1hbGxvY2F0ZWQiCi0r Z2RiX3Rlc3QgIm5leHQiICJcXGQrKFxcdHxcXHMpK3ZsYTFcXFwoMywgNiwgOVxcXCkgPSA0MiIg XAotKyAgInN0ZXAgb3ZlciB2YWx1ZSBhc3NpZ25tZW50IG9mIHZsYTEiCi0rZ2RiX3Rlc3QgInBy aW50ICZ2bGExIiBcCi0rICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoIHJlYWxcXFwoa2luZD00XFxc KSBcXFwoMTAsMTAsMTBcXFwpXFxcKVxcXCkgJGhleCIgXAotKyAgInByaW50IGFsbG9jYXRlZCAm dmxhMSIKLStnZGJfdGVzdCAicHJpbnQgdmxhMSgzLCA2LCA5KSIgIiA9IDEzMTEiICJwcmludCBh bGxvY2F0ZWQgdmxhMSgzLDYsOSkiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTEoMSwgMywgOCkiICIg PSAxMzExIiAicHJpbnQgYWxsb2NhdGVkIHZsYTEoMSwzLDgpIgotK2dkYl90ZXN0ICJwcmludCB2 bGExKDksIDksIDkpID0gOTk5IiAiID0gOTk5IiBcCi0rICAicHJpbnQgYWxsb2NhdGVkIHZsYTEo OSw5LDkpPTEiCi0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBpbiBhbGxvY2F0ZWQgVkxBIGFm dGVyIHNwZWNpZmljIGFzc2lnbm1lbnQKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251 bWJlciAidmxhMS1maWxsZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGExLWZp bGxlZCIKLStnZGJfdGVzdCAicHJpbnQgdmxhMSgzLCA2LCA5KSIgIiA9IDQyIiBcCi0rICAicHJp bnQgYWxsb2NhdGVkIHZsYTEoMyw2LDkpIGFmdGVyIHNwZWNpZmljIGFzc2lnbm1lbnQgKGZpbGxl ZCkiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTEoMSwgMywgOCkiICIgPSAxMDAxIiBcCi0rICAicHJp bnQgYWxsb2NhdGVkIHZsYTEoMSwzLDgpIGFmdGVyIHNwZWNpZmljIGFzc2lnbm1lbnQgKGZpbGxl ZCkiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTEoOSwgOSwgOSkiICIgPSA5OTkiIFwKLSsgICJwcmlu dCBhbGxvY2F0ZWQgdmxhMSg5LDksOSkgYWZ0ZXIgYXNzaWdubWVudCBpbiBkZWJ1Z2dlciAoZmls bGVkKSIKLSsKLSsjIFRyeSB0byBhY2Nlc3MgdmFsdWVzIGluIHVuZGVmaW5lZCBwb2ludGVyIHRv IFZMQSAoZGFuZ2xpbmcpCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSA8bm90IGFzc29jaWF0 ZWQ+IiAicHJpbnQgdW5kZWZpbmVkIHB2bGEiCi0rZ2RiX3Rlc3QgInByaW50ICZwdmxhIiBcCi0r ICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoIHJlYWxcXFwoa2luZD00XFxcKSBcXFwoPG5vdCBhc3Nv Y2lhdGVkPlxcXClcXFwpXFxcKSAkaGV4IiBcCi0rICAicHJpbnQgbm9uLWFzc29jaWF0ZWQgJnB2 bGEiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoMSwgMywgOCkiICJubyBzdWNoIHZlY3RvciBlbGVt ZW50IGJlY2F1c2Ugbm90IGFzc29jaWF0ZWQiIFwKLSsgICJwcmludCB1bmRlZmluZWQgcHZsYSgx LDMsOCkiCi0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBpbiBwb2ludGVyIHRvIFZMQSBhbmQg Y29tcGFyZSB0aGVtCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEt YXNzb2NpYXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRl ZCIKLStnZGJfdGVzdCAicHJpbnQgJnB2bGEiIFwKLSsgICIgPSBcXFwoUFRSIFRPIC0+IFxcXCgg cmVhbFxcXChraW5kPTRcXFwpIFxcXCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCi0rICAi cHJpbnQgYXNzb2NpYXRlZCAmcHZsYSIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSgzLCA2LCA5KSIg IiA9IDQyIiAicHJpbnQgYXNzb2NpYXRlZCBwdmxhKDMsNiw5KSIKLStnZGJfdGVzdCAicHJpbnQg cHZsYSgxLCAzLCA4KSIgIiA9IDEwMDEiICJwcmludCBhc3NvY2lhdGVkIHB2bGEoMSwzLDgpIgot K2dkYl90ZXN0ICJwcmludCBwdmxhKDksIDksIDkpIiAiID0gOTk5IiAicHJpbnQgYXNzb2NpYXRl ZCBwdmxhKDksOSw5KSIKLSsKLSsjIEZpbGwgdmFsdWVzIHRvIFZMQSB1c2luZyBwb2ludGVyIGFu ZCBjaGVjawotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJwdmxhLXJlLWFz c29jaWF0ZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJwdmxhLXJlLWFzc29jaWF0 ZWQiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoNSwgNDUsIDIwKSIgXAotKyAgIiA9IDEiICJwcmlu dCBwdmxhKDUsIDQ1LCAyMCkgYWZ0ZXIgZmlsbGVkIHVzaW5nIHBvaW50ZXIiCi0rZ2RiX3Rlc3Qg InByaW50IHZsYTIoNSwgNDUsIDIwKSIgXAotKyAgIiA9IDEiICJwcmludCB2bGEyKDUsIDQ1LCAy MCkgYWZ0ZXIgZmlsbGVkIHVzaW5nIHBvaW50ZXIiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoNywg NDUsIDE0KSIgIiA9IDIiIFwKLSsgICJwcmludCBwdmxhKDcsIDQ1LCAxNCkgYWZ0ZXIgZmlsbGVk IHVzaW5nIHBvaW50ZXIiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTIoNywgNDUsIDE0KSIgIiA9IDIi IFwKLSsgICJwcmludCB2bGEyKDcsIDQ1LCAxNCkgYWZ0ZXIgZmlsbGVkIHVzaW5nIHBvaW50ZXIi Ci0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBvZiBkZWFzc29jaWF0ZWQgVkxBIHBvaW50ZXIK LStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAicHZsYS1kZWFzc29jaWF0ZWQi XQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJwdmxhLWRlYXNzb2NpYXRlZCIKLStnZGJf dGVzdCAicHJpbnQgcHZsYSg1LCA0NSwgMjApIiBcCi0rICAibm8gc3VjaCB2ZWN0b3IgZWxlbWVu dCBiZWNhdXNlIG5vdCBhc3NvY2lhdGVkIiBcCi0rICAicHJpbnQgcHZsYSg1LCA0NSwgMjApIGFm dGVyIGRlYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSg3LCA0NSwgMTQpIiBcCi0r ICAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBiZWNhdXNlIG5vdCBhc3NvY2lhdGVkIiBcCi0rICAi cHJpbnQgcHZsYSg3LCA0NSwgMTQpIGFmdGVyIGRpc3Nhc29jaWF0ZWQiCi0rZ2RiX3Rlc3QgInBy aW50IHB2bGEiICIgPSA8bm90IGFzc29jaWF0ZWQ+IiBcCi0rICAicHJpbnQgdmxhMSBhZnRlciBk ZWFzc29jaWF0ZWQiCi0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBvZiBkZWFsbG9jYXRlZCBW TEEKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMS1kZWFsbG9jYXRl ZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtZGVhbGxvY2F0ZWQiCi0rZ2Ri X3Rlc3QgInByaW50IHZsYTEoMywgNiwgOSkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1 c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInByaW50IGFsbG9jYXRlZCB2bGExKDMsNiw5KSBhZnRl ciBzcGVjaWZpYyBhc3NpZ25tZW50IChkZWFsbG9jYXRlZCkiCi0rZ2RiX3Rlc3QgInByaW50IHZs YTEoMSwgMywgOCkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRl ZCIgXAotKyAgInByaW50IGFsbG9jYXRlZCB2bGExKDEsMyw4KSBhZnRlciBzcGVjaWZpYyBhc3Np Z25tZW50IChkZWFsbG9jYXRlZCkiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTEoOSwgOSwgOSkiICJu byBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInByaW50 IGFsbG9jYXRlZCB2bGExKDksOSw5KSBhZnRlciBhc3NpZ25tZW50IGluIGRlYnVnZ2VyIChkZWFs bG9jYXRlZCkiCi0rCi0rCi0rIyBUcnkgdG8gYXNzaWduIFZMQSB0byB1c2VyIHZhcmlhYmxlCi0r Y2xlYW5fcmVzdGFydCAke3Rlc3RmaWxlfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsK LSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNv bnRpbnVlCi0rfQotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEyLWFs bG9jYXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTItYWxsb2NhdGVkIgot K2dkYl90ZXN0ICJuZXh0IiAiXFxkKy4qdmxhMVxcKDMsIDYsIDlcXCkgPSA0MiIgIm5leHQgKDEp IgotKwotK2dkYl90ZXN0X25vX291dHB1dCAic2V0IFwkbXl2YXIgPSB2bGExIiAic2V0IFwkbXl2 YXIgPSB2bGExIgotK2dkYl90ZXN0ICJwcmludCBcJG15dmFyIiBcCi0rICAiID0gXFwoICpcXCgg KlxcKCAqMTMxMSwgKjEzMTEsICoxMzExLFxbKCkxMzExLCAuXF0qXFwpIiBcCi0rICAicHJpbnQg XCRteXZhciBzZXQgdG8gdmxhMSIKLSsKLStnZGJfdGVzdCAibmV4dCIgIlxcZCsuKnZsYTFcXCgx LCAzLCA4XFwpID0gMTAwMSIgIm5leHQgKDIpIgotK2dkYl90ZXN0ICJwcmludCBcJG15dmFyKDMs Niw5KSIgIiA9IDEzMTEiICJwcmludCBcJG15dmFyKDMsNiw5KSIKLSsKLStnZGJfYnJlYWtwb2lu dCBbZ2RiX2dldF9saW5lX251bWJlciAicHZsYS1hc3NvY2lhdGVkIl0KLStnZGJfY29udGludWVf dG9fYnJlYWtwb2ludCAicHZsYS1hc3NvY2lhdGVkIgotK2dkYl90ZXN0X25vX291dHB1dCAic2V0 IFwkbXlwdmFyID0gcHZsYSIgInNldCBcJG15cHZhciA9IHB2bGEiCi0rZ2RiX3Rlc3QgInByaW50 IFwkbXlwdmFyKDEsMyw4KSIgIiA9IDEwMDEiICJwcmludCBcJG15cHZhcigxLDMsOCkiCi0rCi0r IyBkZWFsbG9jYXRlIHBvaW50ZXIgYW5kIG1ha2Ugc3VyZSB1c2VyIGRlZmluZWQgdmFyaWFibGUg c3RpbGwgaGFzIHRoZQotKyMgcmlnaHQgdmFsdWUuCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRf bGluZV9udW1iZXIgInB2bGEtZGVhc3NvY2lhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAicHZsYS1kZWFzc29jaWF0ZWQiCi0rZ2RiX3Rlc3QgInByaW50IFwkbXlwdmFyKDEsMyw4 KSIgIiA9IDEwMDEiIFwKLSsgICJwcmludCBcJG15cHZhcigxLDMsOCkgYWZ0ZXIgZGVhbGxvY2F0 ZWQiCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS5mOTAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLmY5MAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2OTc0MDMxMSArMDIwMAotQEAg LTAsMCArMSw1NiBAQAotKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rISB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgot KyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSshCi0rISBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsh IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCi0rISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCi0rISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgotKyEKLSshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStwcm9ncmFtIHZs YQotKyAgcmVhbCwgdGFyZ2V0LCBhbGxvY2F0YWJsZSA6OiB2bGExICg6LCA6LCA6KQotKyAgcmVh bCwgdGFyZ2V0LCBhbGxvY2F0YWJsZSA6OiB2bGEyICg6LCA6LCA6KQotKyAgcmVhbCwgdGFyZ2V0 LCBhbGxvY2F0YWJsZSA6OiB2bGEzICg6LCA6KQotKyAgcmVhbCwgcG9pbnRlciA6OiBwdmxhICg6 LCA6LCA6KQotKyAgbG9naWNhbCA6OiBsCi0rCi0rICBhbGxvY2F0ZSAodmxhMSAoMTAsMTAsMTAp KSAgICAgICAgICAhIHZsYTEtaW5pdAotKyAgbCA9IGFsbG9jYXRlZCh2bGExKQotKwotKyAgYWxs b2NhdGUgKHZsYTIgKDE6Nyw0Mjo1MCwxMzozNSkpICAgISB2bGExLWFsbG9jYXRlZAotKyAgbCA9 IGFsbG9jYXRlZCh2bGEyKQotKwotKyAgdmxhMSg6LCA6LCA6KSA9IDEzMTEgICAgICAgICAgICAg ICAgISB2bGEyLWFsbG9jYXRlZAotKyAgdmxhMSgzLCA2LCA5KSA9IDQyCi0rICB2bGExKDEsIDMs IDgpID0gMTAwMQotKyAgdmxhMSg2LCAyLCA3KSA9IDEzCi0rCi0rICB2bGEyKDosIDosIDopID0g MTMxMSAgICAgICAgICAgICAgICAhIHZsYTEtZmlsbGVkCi0rICB2bGEyKDUsIDQ1LCAyMCkgPSA0 MgotKwotKyAgcHZsYSA9PiB2bGExICAgICAgICAgICAgICAgICAgICAgICAgISB2bGEyLWZpbGxl ZAotKyAgbCA9IGFzc29jaWF0ZWQocHZsYSkKLSsKLSsgIHB2bGEgPT4gdmxhMiAgICAgICAgICAg ICAgICAgICAgICAgICEgcHZsYS1hc3NvY2lhdGVkCi0rICBsID0gYXNzb2NpYXRlZChwdmxhKQot KyAgcHZsYSg1LCA0NSwgMjApID0gMQotKyAgcHZsYSg3LCA0NSwgMTQpID0gMgotKwotKyAgcHZs YSA9PiBudWxsKCkgICAgICAgICAgICAgICAgICAgICAgISBwdmxhLXJlLWFzc29jaWF0ZWQKLSsg IGwgPSBhc3NvY2lhdGVkKHB2bGEpCi0rCi0rICBkZWFsbG9jYXRlICh2bGExKSAgICAgICAgICAg ICAgICAgICAhIHB2bGEtZGVhc3NvY2lhdGVkCi0rICBsID0gYWxsb2NhdGVkKHZsYTEpCi0rCi0r ICBkZWFsbG9jYXRlICh2bGEyKSAgICAgICAgICAgICAgICAgICAhIHZsYTEtZGVhbGxvY2F0ZWQK LSsgIGwgPSBhbGxvY2F0ZWQodmxhMikKLSsKLSsgIGFsbG9jYXRlICh2bGEzICgyLDIpKSAgICAg ICAgICAgICAgICEgdmxhMi1kZWFsbG9jYXRlZAotKyAgdmxhMyg6LDopID0gMTMKLStlbmQgcHJv Z3JhbSB2bGEKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLm1p L21pLXZsYS1mb3J0cmFuLmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCTIwMTUtMDUtMjkgMTE6MTM6NTMuOTUx NjU2NTkxICswMjAwCi1AQCAtMCwwICsxLDE4MSBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot KyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgotKwotKyMgVmVyaWZ5IHRoYXQsIHVzaW5nIHRoZSBNSSwgd2UgY2FuIGV2YWx1YXRlIGEgc2lt cGxlIEMgVmFyaWFibGUgTGVuZ3RoCi0rIyBBcnJheSAoVkxBKS4KLSsKLStsb2FkX2xpYiBtaS1z dXBwb3J0LmV4cAotK3NldCBNSUZMQUdTICItaT1taSIKLSsKLStnZGJfZXhpdAotK2lmIFttaV9n ZGJfc3RhcnRdIHsKLSsgICAgY29udGludWUKLSt9Ci0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgdmxh LmY5MAotKwotK2lmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmls ZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlIFwKLSsgICAgIHtkZWJ1ZyBmOTB9XSAhPSAiIiB9 IHsKLSsgICAgIHVudGVzdGVkIG1pLXZsYS1mb3J0cmFuLmV4cAotKyAgICAgcmV0dXJuIC0xCi0r fQotKwotK21pX2RlbGV0ZV9icmVha3BvaW50cwotK21pX2dkYl9yZWluaXRpYWxpemVfZGlyICRz cmNkaXIvJHN1YmRpcgotK21pX2dkYl9sb2FkICR7YmluZmlsZX0KLSsKLStzZXQgYnBfbGluZW5v IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLW5vdC1hbGxvY2F0ZWQiXQotK21pX2NyZWF0ZV9i cmVha3BvaW50ICItdCB2bGEuZjkwOiRicF9saW5lbm8iIDEgImRlbCIgInZsYSIgXAotKyAgIi4q dmxhLmY5MCIgJGJwX2xpbmVubyAkaGV4IFwKLSsgICJpbnNlcnQgYnJlYWtwb2ludCBhdCBsaW5l ICRicF9saW5lbm8gKHZsYSBub3QgYWxsb2NhdGVkKSIKLSttaV9ydW5fY21kCi0rbWlfZXhwZWN0 X3N0b3AgImJyZWFrcG9pbnQtaGl0IiAidmxhIiAiIiAiLip2bGEuZjkwIiAiJGJwX2xpbmVubyIg XAotKyAgeyAiIiAiZGlzcD1cImRlbFwiIiB9ICJydW4gdG8gYnJlYWtwb2ludCBhdCBsaW5lICRi cF9saW5lbm8iCi0rbWlfZ2RiX3Rlc3QgIjUwMC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxh MSIgXAotKyAgIjUwMFxcXmRvbmUsdmFsdWU9XCI8bm90IGFsbG9jYXRlZD5cIiIgImV2YWx1YXRl IG5vdCBhbGxvY2F0ZWQgdmxhIgotKwotK21pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCB2bGExX25v dF9hbGxvY2F0ZWQgdmxhMSAiPG5vdCBhbGxvY2F0ZWQ+IiBcCi0rICAiY3JlYXRlIGxvY2FsIHZh cmlhYmxlIHZsYTFfbm90X2FsbG9jYXRlZCIKLSttaV9nZGJfdGVzdCAiNTAxLXZhci1pbmZvLXR5 cGUgdmxhMV9ub3RfYWxsb2NhdGVkIiBcCi0rICAiNTAxXFxeZG9uZSx0eXBlPVwiPG5vdCBhbGxv Y2F0ZWQ+XCIiIFwKLSsgICJpbmZvIHR5cGUgdmFyaWFibGUgdmxhMV9ub3RfYWxsb2NhdGVkIgot K21pX2dkYl90ZXN0ICI1MDItdmFyLXNob3ctZm9ybWF0IHZsYTFfbm90X2FsbG9jYXRlZCIgXAot KyAgIjUwMlxcXmRvbmUsZm9ybWF0PVwibmF0dXJhbFwiIiBcCi0rICAic2hvdyBmb3JtYXQgdmFy aWFibGUgdmxhMV9ub3RfYWxsb2NhdGVkIgotK21pX2dkYl90ZXN0ICI1MDMtdmFyLWV2YWx1YXRl LWV4cHJlc3Npb24gdmxhMV9ub3RfYWxsb2NhdGVkIiBcCi0rICAiNTAzXFxeZG9uZSx2YWx1ZT1c IlxcXFswXFxcXVwiIiBcCi0rICAiZXZhbCB2YXJpYWJsZSB2bGExX25vdF9hbGxvY2F0ZWQiCi0r bWlfbGlzdF9hcnJheV92YXJvYmpfY2hpbGRyZW5fd2l0aF9pbmRleCAidmxhMV9ub3RfYWxsb2Nh dGVkIiAiMCIgIjEiIFwKLSsgICAgInJlYWxcXFwoa2luZD00XFxcKSIgImdldCBjaGlsZHJlbiBv ZiB2bGExX25vdF9hbGxvY2F0ZWQiCi0rCi0rCi0rCi0rc2V0IGJwX2xpbmVubyBbZ2RiX2dldF9s aW5lX251bWJlciAidmxhMS1hbGxvY2F0ZWQiXQotK21pX2NyZWF0ZV9icmVha3BvaW50ICItdCB2 bGEuZjkwOiRicF9saW5lbm8iIDIgImRlbCIgInZsYSIgIi4qdmxhLmY5MCIgXAotKyAgJGJwX2xp bmVubyAkaGV4ICJpbnNlcnQgYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5lbm8gKHZsYSBhbGxv Y2F0ZWQpIgotK21pX3J1bl9jbWQKLSttaV9leHBlY3Rfc3RvcCAiYnJlYWtwb2ludC1oaXQiICJ2 bGEiICIiICIuKnZsYS5mOTAiICIkYnBfbGluZW5vIiBcCi0rICB7ICIiICJkaXNwPVwiZGVsXCIi IH0gInJ1biB0byBicmVha3BvaW50IGF0IGxpbmUgJGJwX2xpbmVubyIKLSsjIENvbnRlbnQgb2Yg J3ZsYTEnIGlzIHVuaW5pdGlhbGl6ZWQgaGVyZS4KLSsKLSttaV9jcmVhdGVfdmFyb2JqX2NoZWNr ZWQgdmxhMV9hbGxvY2F0ZWQgdmxhMSAicmVhbFxcXChraW5kPTRcXFwpIFxcXCg1XFxcKSIgXAot KyAgImNyZWF0ZSBsb2NhbCB2YXJpYWJsZSB2bGExX2FsbG9jYXRlZCIKLSttaV9nZGJfdGVzdCAi NTExLXZhci1pbmZvLXR5cGUgdmxhMV9hbGxvY2F0ZWQiIFwKLSsgICI1MTFcXF5kb25lLHR5cGU9 XCJyZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDVcXFwpXCIiIFwKLSsgICJpbmZvIHR5cGUgdmFyaWFi bGUgdmxhMV9hbGxvY2F0ZWQiCi0rbWlfZ2RiX3Rlc3QgIjUxMi12YXItc2hvdy1mb3JtYXQgdmxh MV9hbGxvY2F0ZWQiIFwKLSsgICI1MTJcXF5kb25lLGZvcm1hdD1cIm5hdHVyYWxcIiIgXAotKyAg InNob3cgZm9ybWF0IHZhcmlhYmxlIHZsYTFfYWxsb2NhdGVkIgotK21pX2dkYl90ZXN0ICI1MTMt dmFyLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMV9hbGxvY2F0ZWQiIFwKLSsgICI1MTNcXF5kb25l LHZhbHVlPVwiXFxcWzVcXFxdXCIiIFwKLSsgICJldmFsIHZhcmlhYmxlIHZsYTFfYWxsb2NhdGVk IgotK21pX2xpc3RfYXJyYXlfdmFyb2JqX2NoaWxkcmVuX3dpdGhfaW5kZXggInZsYTFfYWxsb2Nh dGVkIiAiNSIgIjEiIFwKLSsgICAgInJlYWxcXFwoa2luZD00XFxcKSIgImdldCBjaGlsZHJlbiBv ZiB2bGExX2FsbG9jYXRlZCIKLSsKLSsKLStzZXQgYnBfbGluZW5vIFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJ2bGExLWZpbGxlZCJdCi0rbWlfY3JlYXRlX2JyZWFrcG9pbnQgIi10IHZsYS5mOTA6JGJw X2xpbmVubyIgMyAiZGVsIiAidmxhIiAiLip2bGEuZjkwIiBcCi0rICAkYnBfbGluZW5vICRoZXgg Imluc2VydCBicmVha3BvaW50IGF0IGxpbmUgJGJwX2xpbmVubyIKLSttaV9ydW5fY21kCi0rbWlf ZXhwZWN0X3N0b3AgImJyZWFrcG9pbnQtaGl0IiAidmxhIiAiIiAiLip2bGEuZjkwIiAiJGJwX2xp bmVubyIgXAotKyAgeyAiIiAiZGlzcD1cImRlbFwiIiB9ICJydW4gdG8gYnJlYWtwb2ludCBhdCBs aW5lICRicF9saW5lbm8iCi0rbWlfZ2RiX3Rlc3QgIjUyMC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Np b24gdmxhMSIgXAotKyAgIjUyMFxcXmRvbmUsdmFsdWU9XCJcXCgxLCAxLCAxLCAxLCAxXFwpXCIi ICJldmFsdWF0ZSBmaWxsZWQgdmxhIgotKwotKwotK3NldCBicF9saW5lbm8gW2dkYl9nZXRfbGlu ZV9udW1iZXIgInZsYTEtbW9kaWZpZWQiXQotK21pX2NyZWF0ZV9icmVha3BvaW50ICItdCB2bGEu ZjkwOiRicF9saW5lbm8iIDQgImRlbCIgInZsYSIgIi4qdmxhLmY5MCIgXAotKyAgJGJwX2xpbmVu byAkaGV4ICJpbnNlcnQgYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5lbm8iCi0rbWlfcnVuX2Nt ZAotK21pX2V4cGVjdF9zdG9wICJicmVha3BvaW50LWhpdCIgInZsYSIgIiIgIi4qdmxhLmY5MCIg IiRicF9saW5lbm8iIFwKLSsgIHsgIiIgImRpc3A9XCJkZWxcIiIgfSAicnVuIHRvIGJyZWFrcG9p bnQgYXQgbGluZSAkYnBfbGluZW5vIgotK21pX2dkYl90ZXN0ICI1MzAtZGF0YS1ldmFsdWF0ZS1l eHByZXNzaW9uIHZsYTEiIFwKLSsgICI1MzBcXF5kb25lLHZhbHVlPVwiXFwoMSwgNDIsIDEsIDI0 LCAxXFwpXCIiICJldmFsdWF0ZSBmaWxsZWQgdmxhIgotK21pX2dkYl90ZXN0ICI1NDAtZGF0YS1l dmFsdWF0ZS1leHByZXNzaW9uIHZsYTEoMSkiIFwKLSsgICI1NDBcXF5kb25lLHZhbHVlPVwiMVwi IiAiZXZhbHVhdGUgZmlsbGVkIHZsYSIKLSttaV9nZGJfdGVzdCAiNTUwLWRhdGEtZXZhbHVhdGUt ZXhwcmVzc2lvbiB2bGExKDIpIiBcCi0rICAiNTUwXFxeZG9uZSx2YWx1ZT1cIjQyXCIiICJldmFs dWF0ZSBmaWxsZWQgdmxhIgotK21pX2dkYl90ZXN0ICI1NjAtZGF0YS1ldmFsdWF0ZS1leHByZXNz aW9uIHZsYTEoNCkiIFwKLSsgICI1NjBcXF5kb25lLHZhbHVlPVwiMjRcIiIgImV2YWx1YXRlIGZp bGxlZCB2bGEiCi0rCi0rCi0rc2V0IGJwX2xpbmVubyBbZ2RiX2dldF9saW5lX251bWJlciAidmxh MS1kZWFsbG9jYXRlZCJdCi0rbWlfY3JlYXRlX2JyZWFrcG9pbnQgIi10IHZsYS5mOTA6JGJwX2xp bmVubyIgNSAiZGVsIiAidmxhIiAiLip2bGEuZjkwIiBcCi0rICAkYnBfbGluZW5vICRoZXggImlu c2VydCBicmVha3BvaW50IGF0IGxpbmUgJGJwX2xpbmVubyIKLSttaV9ydW5fY21kCi0rbWlfZXhw ZWN0X3N0b3AgImJyZWFrcG9pbnQtaGl0IiAidmxhIiAiIiAiLip2bGEuZjkwIiAiJGJwX2xpbmVu byIgXAotKyAgeyAiIiAiZGlzcD1cImRlbFwiIiB9ICJydW4gdG8gYnJlYWtwb2ludCBhdCBsaW5l ICRicF9saW5lbm8iCi0rbWlfZ2RiX3Rlc3QgIjU3MC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24g dmxhMSIgXAotKyAgIjU3MFxcXmRvbmUsdmFsdWU9XCI8bm90IGFsbG9jYXRlZD5cIiIgImV2YWx1 YXRlIG5vdCBhbGxvY2F0ZWQgdmxhIgotKwotKwotK3NldCBicF9saW5lbm8gW2dkYl9nZXRfbGlu ZV9udW1iZXIgInB2bGEyLW5vdC1hc3NvY2lhdGVkIl0KLSttaV9jcmVhdGVfYnJlYWtwb2ludCAi LXQgdmxhLmY5MDokYnBfbGluZW5vIiA2ICJkZWwiICJ2bGEiICIuKnZsYS5mOTAiIFwKLSsgICRi cF9saW5lbm8gJGhleCAiaW5zZXJ0IGJyZWFrcG9pbnQgYXQgbGluZSAkYnBfbGluZW5vIgotK21p X3J1bl9jbWQKLSttaV9leHBlY3Rfc3RvcCAiYnJlYWtwb2ludC1oaXQiICJ2bGEiICIiICIuKnZs YS5mOTAiICIkYnBfbGluZW5vIiBcCi0rICB7ICIiICJkaXNwPVwiZGVsXCIiIH0gInJ1biB0byBi cmVha3BvaW50IGF0IGxpbmUgJGJwX2xpbmVubyIKLSttaV9nZGJfdGVzdCAiNTgwLWRhdGEtZXZh bHVhdGUtZXhwcmVzc2lvbiBwdmxhMiIgXAotKyAgIjU4MFxcXmRvbmUsdmFsdWU9XCI8bm90IGFz c29jaWF0ZWQ+XCIiICJldmFsdWF0ZSBub3QgYXNzb2NpYXRlZCB2bGEiCi0rCi0rbWlfY3JlYXRl X3Zhcm9ial9jaGVja2VkIHB2bGEyX25vdF9hc3NvY2lhdGVkIHB2bGEyICI8bm90IGFzc29jaWF0 ZWQ+IiBcCi0rICAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHB2bGEyX25vdF9hc3NvY2lhdGVkIgot K21pX2dkYl90ZXN0ICI1ODEtdmFyLWluZm8tdHlwZSBwdmxhMl9ub3RfYXNzb2NpYXRlZCIgXAot KyAgIjU4MVxcXmRvbmUsdHlwZT1cIjxub3QgYXNzb2NpYXRlZD5cIiIgXAotKyAgImluZm8gdHlw ZSB2YXJpYWJsZSBwdmxhMl9ub3RfYXNzb2NpYXRlZCIKLSttaV9nZGJfdGVzdCAiNTgyLXZhci1z aG93LWZvcm1hdCBwdmxhMl9ub3RfYXNzb2NpYXRlZCIgXAotKyAgIjU4MlxcXmRvbmUsZm9ybWF0 PVwibmF0dXJhbFwiIiBcCi0rICAic2hvdyBmb3JtYXQgdmFyaWFibGUgcHZsYTJfbm90X2Fzc29j aWF0ZWQiCi0rbWlfZ2RiX3Rlc3QgIjU4My12YXItZXZhbHVhdGUtZXhwcmVzc2lvbiBwdmxhMl9u b3RfYXNzb2NpYXRlZCIgXAotKyAgIjU4M1xcXmRvbmUsdmFsdWU9XCJcXFxbMFxcXF1cIiIgXAot KyAgImV2YWwgdmFyaWFibGUgcHZsYTJfbm90X2Fzc29jaWF0ZWQiCi0rbWlfbGlzdF9hcnJheV92 YXJvYmpfY2hpbGRyZW5fd2l0aF9pbmRleCAicHZsYTJfbm90X2Fzc29jaWF0ZWQiICIwIiAiMSIg XAotKyAgICAicmVhbFxcXChraW5kPTRcXFwpIiAiZ2V0IGNoaWxkcmVuIG9mIHB2bGEyX25vdF9h c3NvY2lhdGVkIgotKwotKwotK3NldCBicF9saW5lbm8gW2dkYl9nZXRfbGluZV9udW1iZXIgInB2 bGEyLWFzc29jaWF0ZWQiXQotK21pX2NyZWF0ZV9icmVha3BvaW50ICItdCB2bGEuZjkwOiRicF9s aW5lbm8iIDcgImRlbCIgInZsYSIgIi4qdmxhLmY5MCIgXAotKyAgJGJwX2xpbmVubyAkaGV4ICJp bnNlcnQgYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5lbm8iCi0rbWlfcnVuX2NtZAotK21pX2V4 cGVjdF9zdG9wICJicmVha3BvaW50LWhpdCIgInZsYSIgIiIgIi4qdmxhLmY5MCIgIiRicF9saW5l bm8iIFwKLSsgIHsgIiIgImRpc3A9XCJkZWxcIiIgfSAicnVuIHRvIGJyZWFrcG9pbnQgYXQgbGlu ZSAkYnBfbGluZW5vIgotK21pX2dkYl90ZXN0ICI1OTAtZGF0YS1ldmFsdWF0ZS1leHByZXNzaW9u IHB2bGEyIiBcCi0rICAiNTkwXFxeZG9uZSx2YWx1ZT1cIlxcKFxcKCAyLCAyLCAyLCAyLCAyXFwp IFxcKCAyLCAyLCAyLCAyLCAyXFwpIFxcKVwiIiBcCi0rICAiZXZhbHVhdGUgYXNzb2NpYXRlZCB2 bGEiCi0rCi0rbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHB2bGEyX2Fzc29jaWF0ZWQgcHZsYTIg XAotKyAgInJlYWxcXFwoa2luZD00XFxcKSBcXFwoNSwyXFxcKSIgImNyZWF0ZSBsb2NhbCB2YXJp YWJsZSBwdmxhMl9hc3NvY2lhdGVkIgotK21pX2dkYl90ZXN0ICI1OTEtdmFyLWluZm8tdHlwZSBw dmxhMl9hc3NvY2lhdGVkIiBcCi0rICAiNTkxXFxeZG9uZSx0eXBlPVwicmVhbFxcXChraW5kPTRc XFwpIFxcXCg1LDJcXFwpXCIiIFwKLSsgICJpbmZvIHR5cGUgdmFyaWFibGUgcHZsYTJfYXNzb2Np YXRlZCIKLSttaV9nZGJfdGVzdCAiNTkyLXZhci1zaG93LWZvcm1hdCBwdmxhMl9hc3NvY2lhdGVk IiBcCi0rICAiNTkyXFxeZG9uZSxmb3JtYXQ9XCJuYXR1cmFsXCIiIFwKLSsgICJzaG93IGZvcm1h dCB2YXJpYWJsZSBwdmxhMl9hc3NvY2lhdGVkIgotK21pX2dkYl90ZXN0ICI1OTMtdmFyLWV2YWx1 YXRlLWV4cHJlc3Npb24gcHZsYTJfYXNzb2NpYXRlZCIgXAotKyAgIjU5M1xcXmRvbmUsdmFsdWU9 XCJcXFxbMlxcXF1cIiIgXAotKyAgImV2YWwgdmFyaWFibGUgcHZsYTJfYXNzb2NpYXRlZCIKLSsK LSsKLStzZXQgYnBfbGluZW5vIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJwdmxhMi1zZXQtdG8tbnVs bCJdCi0rbWlfY3JlYXRlX2JyZWFrcG9pbnQgIi10IHZsYS5mOTA6JGJwX2xpbmVubyIgOCAiZGVs IiAidmxhIiAiLip2bGEuZjkwIiBcCi0rICAkYnBfbGluZW5vICRoZXggImluc2VydCBicmVha3Bv aW50IGF0IGxpbmUgJGJwX2xpbmVubyIKLSttaV9ydW5fY21kCi0rbWlfZXhwZWN0X3N0b3AgImJy ZWFrcG9pbnQtaGl0IiAidmxhIiAiIiAiLip2bGEuZjkwIiAiJGJwX2xpbmVubyIgXAotKyAgeyAi IiAiZGlzcD1cImRlbFwiIiB9ICJydW4gdG8gYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5lbm8i Ci0rbWlfZ2RiX3Rlc3QgIjYwMC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gcHZsYTIiIFwKLSsg ICI2MDBcXF5kb25lLHZhbHVlPVwiPG5vdCBhc3NvY2lhdGVkPlwiIiAiZXZhbHVhdGUgdmxhIHBv aW50ZXIgc2V0IHRvIG51bGwiCi0rCi0rbWlfZ2RiX2V4aXQKLStyZXR1cm4gMAotSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvdmxhLmY5MAotPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvdmxhLmY5MAkyMDE1LTA1 LTI5IDA4OjI3OjA2LjI3MDc0MDMxNyArMDIwMAotQEAgLTAsMCArMSw0MiBAQAotKyEgQ29weXJp Z2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIQotKyEgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKLSshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5Ci0rISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rISBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rISBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyEKLSshIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Ci0rISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KLSsKLStwcm9ncmFtIHZsYQotKyAgcmVhbCwgYWxsb2NhdGFibGUg OjogdmxhMSAoOikKLSsgIHJlYWwsIHRhcmdldCwgYWxsb2NhdGFibGUgOjogdmxhMig6LCA6KQot KyAgcmVhbCwgcG9pbnRlciA6OiBwdmxhMiAoOiwgOikKLSsgIGxvZ2ljYWwgOjogbAotKwotKyAg YWxsb2NhdGUgKHZsYTEgKDUpKSAgICAgICAgICEgdmxhMS1ub3QtYWxsb2NhdGVkCi0rICBsID0g YWxsb2NhdGVkKHZsYTEpICAgICAgICAgISB2bGExLWFsbG9jYXRlZAotKwotKyAgdmxhMSg6KSA9 IDEKLSsgIHZsYTEoMikgPSA0MiAgICAgICAgICAgICAgICAhIHZsYTEtZmlsbGVkCi0rICB2bGEx KDQpID0gMjQKLSsKLSsgIGRlYWxsb2NhdGUgKHZsYTEpICAgICAgICAgICAhIHZsYTEtbW9kaWZp ZWQKLSsgIGwgPSBhbGxvY2F0ZWQodmxhMSkgICAgICAgICAhIHZsYTEtZGVhbGxvY2F0ZWQKLSsK LSsgIGFsbG9jYXRlICh2bGEyICg1LCAyKSkKLSsgIHZsYTIoOiwgOikgPSAyCi0rCi0rICBwdmxh MiA9PiB2bGEyICAgICAgICAgICAgICAgISBwdmxhMi1ub3QtYXNzb2NpYXRlZAotKyAgbCA9IGFz c29jaWF0ZWQocHZsYTIpICAgICAgICEgcHZsYTItYXNzb2NpYXRlZAotKwotKyAgcHZsYTIoMiwg MSkgPSA0MgotKwotKyAgcHZsYTIgPT4gbnVsbCgpCi0rICBsID0gYXNzb2NpYXRlZChwdmxhMikg ICAgICAgISBwdmxhMi1zZXQtdG8tbnVsbAotK2VuZCBwcm9ncmFtIHZsYQotSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3R5cGVwcmludC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41 MC4yMDE1MDUyMC5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE1LTA1LTI5IDA4OjI3OjAyLjY4ODcx NzUyMyArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3R5cGVwcmludC5jCTIwMTUt MDUtMjkgMDg6Mjc6MDYuMjcwNzQwMzE3ICswMjAwCi1AQCAtNDU4LDYgKzQ1OCwxMyBAQCB3aGF0 aXNfZXhwIChjaGFyICpleHAsIGludCBzaG93KQorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL3R5cGVwcmludC5jCTIwMTUtMTAtMjcgMDI6NDg6MzIuMDAwMDAwMDAwICswMTAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3R5cGVwcmludC5jCTIwMTUtMTEtMDMgMjE6MTM6 MzUuOTU5MzM5MTEzICswMTAwCitAQCAtNDYwLDYgKzQ2MCwxMyBAQCB3aGF0aXNfZXhwIChjaGFy ICpleHAsIGludCBzaG93KQogIAogICAgdHlwZSA9IHZhbHVlX3R5cGUgKHZhbCk7CiAgCkBAIC0y NjUwLDE0ICsxMjU1LDE0IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90eXBlcHJp bnQuYwogICAgZ2V0X3VzZXJfcHJpbnRfb3B0aW9ucyAoJm9wdHMpOwogICAgaWYgKG9wdHMub2Jq ZWN0cHJpbnQpCiAgICAgIHsKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWxhcml0 aC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0wNS0y OSAwODoyNzowMi42ODk3MTc1MzAgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92 YWxhcml0aC5jCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjcxNzQwMzI0ICswMjAwCi1AQCAtMTkzLDEy ICsxOTMsMzEgQEAgdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKgorLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMC0yNyAwMjo0 ODozMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJp dGguYwkyMDE1LTExLTAzIDIxOjEzOjM4LjYyNTM1MTczNiArMDEwMAorQEAgLTE5Myw5ICsxOTMs MjEgQEAgdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKgogICAgc3RydWN0 IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwog ICAgc3RydWN0IHR5cGUgKmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQ RSAoYXJyYXlfdHlwZSkpOwotICAgdW5zaWduZWQgaW50IGVsdF9zaXplID0gVFlQRV9MRU5HVEgg KGVsdF90eXBlKTsKKyAgIHVuc2lnbmVkIGludCBlbHRfc2l6ZSA9IHR5cGVfbGVuZ3RoX3VuaXRz IChlbHRfdHlwZSk7CiAtICB1bnNpZ25lZCBpbnQgZWx0X29mZnMgPSBlbHRfc2l6ZSAqIGxvbmdl c3RfdG9faW50IChpbmRleCAtIGxvd2VyYm91bmQpOwogKyAgdW5zaWduZWQgaW50IGVsdF9vZmZz ID0gbG9uZ2VzdF90b19pbnQgKGluZGV4IC0gbG93ZXJib3VuZCk7CiArICBMT05HRVNUIGVsdF9z dHJpZGUgPSBUWVBFX0JZVEVfU1RSSURFIChUWVBFX0lOREVYX1RZUEUgKGFycmF5X3R5cGUpKTsK QEAgLTI2NzUsMjYgKzEyODAsMTUgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Zh bGFyaXRoLmMKICsgICAgZWx0X29mZnMgKj0gZWx0X3NpemU7CiArCiAgICBpZiAoaW5kZXggPCBs b3dlcmJvdW5kIHx8ICghVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9JU19VTkRFRklORUQgKGFycmF5 X3R5cGUpCi0gCQkJICAgICAmJiBlbHRfb2ZmcyA+PSBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkp KQotLSAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLSsgICAgewotKyAg ICAgIGlmIChUWVBFX05PVF9BU1NPQ0lBVEVEIChhcnJheV90eXBlKSkKLSsgICAgICAgIGVycm9y IChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFzc29jaWF0ZWQiKSk7Ci0r ICAgICAgZWxzZSBpZiAoVFlQRV9OT1RfQUxMT0NBVEVEIChhcnJheV90eXBlKSkKLSsgICAgICAg IGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIp KTsKLSsgICAgICBlbHNlCi0rICAgICAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVu dCIpKTsKLSsgICAgfQotIAotICAgaWYgKFZBTFVFX0xWQUwgKGFycmF5KSA9PSBsdmFsX21lbW9y eSAmJiB2YWx1ZV9sYXp5IChhcnJheSkpCi0gICAgIHYgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5IChl bHRfdHlwZSk7Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFscHJpbnQuYworIAkJ CSAgICAgJiYgZWx0X29mZnMgPj0gdHlwZV9sZW5ndGhfdW5pdHMgKGFycmF5X3R5cGUpKSkKKyAg ICAgeworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi92YWxwcmludC5jCTIwMTUtMDUt MjkgMDg6Mjc6MDIuNjkwNzE3NTM2ICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dmFscHJpbnQuYwkyMDE1LTA1LTI5IDA4OjI3OjA2LjI3MTc0MDMyNCArMDIwMAotQEAgLTMwMyw2 ICszMDMsMTggQEAgdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlCi0gewot ICAgQ0hFQ0tfVFlQRURFRiAodHlwZSk7CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvdmFscHJpbnQuYwkyMDE1LTEwLTI3IDAyOjQ4OjMyLjAwMDAwMDAwMCArMDEwMAorKysrIGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCTIwMTUtMTEtMDMgMjE6MTM6MzUuOTU5 MzM5MTEzICswMTAwCitAQCAtMzE2LDYgKzMxNiwxOCBAQCB2YWxwcmludF9jaGVja192YWxpZGl0 eSAoc3RydWN0IHVpX2ZpbGUKKyAgICAgICByZXR1cm4gMDsKKyAgICAgfQogIAogKyAgaWYgKFRZ UEVfTk9UX0FTU09DSUFURUQgKHR5cGUpKQogKyAgICB7CkBAIC0yNzExLDI2ICsxMzA1LDcgQEAg SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmMKICAgIGlmIChUWVBFX0NP REUgKHR5cGUpICE9IFRZUEVfQ09ERV9VTklPTgogICAgICAgICYmIFRZUEVfQ09ERSAodHlwZSkg IT0gVFlQRV9DT0RFX1NUUlVDVAogICAgICAgICYmIFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9D T0RFX0FSUkFZKQotQEAgLTM1OSw2ICszNzEsMTggQEAgdmFsX3ByaW50X2ludmFsaWRfYWRkcmVz cyAoc3RydWN0IHVpX2ZpbAotICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCBfKCI8aW52YWxp ZCBhZGRyZXNzPiIpKTsKLSB9Ci0gCi0rdm9pZAotK3ZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQotK3sKLSsgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwg XygiPG5vdCBhbGxvY2F0ZWQ+IikpOwotK30KLSsKLSt2b2lkCi0rdmFsX3ByaW50X25vdF9hc3Nv Y2lhdGVkIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQotK3sKLSsgIGZwcmludGZfZmlsdGVyZWQg KHN0cmVhbSwgXygiPG5vdCBhc3NvY2lhdGVkPiIpKTsKLSt9Ci0rCi0gLyogQSBnZW5lcmljIHZh bF9wcmludCB0aGF0IGlzIHN1aXRhYmxlIGZvciB1c2UgYnkgbGFuZ3VhZ2UKLSAgICBpbXBsZW1l bnRhdGlvbnMgb2YgdGhlIGxhX3ZhbF9wcmludCBtZXRob2QuICBUaGlzIGZ1bmN0aW9uIGNhbgot ICAgIGhhbmRsZSBtb3N0IHR5cGUgY29kZXMsIHRob3VnaCBub3QgYWxsLCBub3RhYmx5IGV4Y2Vw dGlvbgotQEAgLTgwMiwxMiArODI2LDE2IEBAIHN0YXRpYyBpbnQKK0BAIC0xMDI1LDEyICsxMDM3 LDE2IEBAIHN0YXRpYyBpbnQKICB2YWx1ZV9jaGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1ZSAq dmFsLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKQEAgLTI3NDcsMTAgKzEzMjIsMTIgQEAgSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmMKICAgIGlmICh2YWx1ZV9lbnRp cmVseV9vcHRpbWl6ZWRfb3V0ICh2YWwpKQogICAgICB7CiAgICAgICAgaWYgKG9wdGlvbnMtPnN1 bW1hcnkgJiYgIXZhbF9wcmludF9zY2FsYXJfdHlwZV9wICh2YWx1ZV90eXBlICh2YWwpKSkKLUBA IC04MzMsNiArODYxLDE4IEBAIHZhbHVlX2NoZWNrX3ByaW50YWJsZSAoc3RydWN0IHZhbHVlICp2 YWwKK0BAIC0xMDY2LDYgKzEwODIsMTggQEAgdmFsdWVfY2hlY2tfcHJpbnRhYmxlIChzdHJ1Y3Qg dmFsdWUgKnZhbAorICAgICB7CisgICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVh bSk7CiAgICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAKKysgICAgfQorKwogKyAgaWYgKFRZUEVf Tk9UX0FTU09DSUFURUQgKHR5cGUpKQogKyAgICB7CiArICAgICAgdmFsX3ByaW50X25vdF9hc3Nv Y2lhdGVkIChzdHJlYW0pOwpAQCAtMjc2MSwxNSArMTMzOCwxMyBAQCBJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvdmFscHJpbnQuYwogKyAgICB7CiArICAgICAgdmFsX3ByaW50X25vdF9h bGxvY2F0ZWQgKHN0cmVhbSk7CiArICAgICAgcmV0dXJuIDA7Ci0rICAgIH0KLSsKLSAgIHJldHVy biAxOwotIH0KKyAgICAgfQogIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHBy aW50LmgKKyAgIHJldHVybiAxOworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxw cmludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi92YWxw cmludC5oCTIwMTUtMDUtMjkgMDg6Mjc6MDIuNjkxNzE3NTQzICswMjAwCi0rKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvdmFscHJpbnQuaAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI3Mjc0MDMzMCAr MDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNS0x MC0yNyAwMjo0ODozMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvdmFscHJpbnQuaAkyMDE1LTExLTAzIDIxOjEzOjM1Ljk1OTMzOTExMyArMDEwMAogQEAgLTIz Miw0ICsyMzIsOCBAQCBleHRlcm4gdm9pZCBwcmludF9jb21tYW5kX3BhcnNlX2Zvcm1hdCAoCiAg CQkJCQlzdHJ1Y3QgZm9ybWF0X2RhdGEgKmZtdHApOwogIGV4dGVybiB2b2lkIHByaW50X3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnZhbCwgY29uc3Qgc3RydWN0IGZvcm1hdF9kYXRhICpmbXRwKTsKQEAg LTI3NzksMTAgKzEzNTQsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHBy aW50LmgKICtleHRlcm4gdm9pZCB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cnVjdCB1aV9m aWxlICpzdHJlYW0pOwogKwogICNlbmRpZgotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3ZhbHVlLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdmFsdWUuYwkyMDE1LTA1LTI5 IDA4OjI3OjAyLjY5MzcxNzU1NSArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Zh bHVlLmMJMjAxNS0wNS0yOSAwODoyNzowNi4yNzM3NDAzMzcgKzAyMDAKKy0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi92YWx1ZS5jCTIwMTUtMTAtMjcgMDI6NDg6MzIuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmMJMjAxNS0xMS0wMyAy MToxMzozOC43MzEzNTIyMzggKzAxMDAKIEBAIC00MCw2ICs0MCw3IEBACiAgI2luY2x1ZGUgInRy YWNlcG9pbnQuaCIKICAjaW5jbHVkZSAiY3AtYWJpLmgiCkBAIC0yNzkxLDcgKzEzNjYsNyBAQCBJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFsdWUuYwogIAogIC8qIFByb3RvdHlwZXMg Zm9yIGV4cG9ydGVkIGZ1bmN0aW9ucy4gICovCiAgCi1AQCAtMTc3Niw2ICsxNzc3LDI1IEBAIHNl dF92YWx1ZV9jb21wb25lbnRfbG9jYXRpb24gKHN0cnVjdCB2YWwKK0BAIC0xNzg4LDYgKzE3ODks MjUgQEAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbAogICAgICAgIGlm IChmdW5jcy0+Y29weV9jbG9zdXJlKQogICAgICAgICAgY29tcG9uZW50LT5sb2NhdGlvbi5jb21w dXRlZC5jbG9zdXJlID0gZnVuY3MtPmNvcHlfY2xvc3VyZSAod2hvbGUpOwogICAgICB9CkBAIC0y ODE3LDE0ICsxMzkyLDE0IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWx1ZS5j CiAgfQogIAogIAwKLUBAIC0zMDgwLDEzICszMTAwLDIyIEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVs ZCAoc3RydWN0IHZhbHVlICphcmcKK0BAIC0zMDk1LDEzICszMTE1LDIyIEBAIHZhbHVlX3ByaW1p dGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKICAJdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkg KHR5cGUpOwogICAgICAgIGVsc2UKICAJewogLQkgIHYgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7 CiAtCSAgdmFsdWVfY29udGVudHNfY29weV9yYXcgKHYsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAo diksCiAtCQkJCSAgIGFyZzEsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJnMSkgKyBvZmZzZXQs Ci0tCQkJCSAgIFRZUEVfTEVOR1RIICh0eXBlKSk7CistCQkJCSAgIHR5cGVfbGVuZ3RoX3VuaXRz ICh0eXBlKSk7CiArCSAgaWYgKFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkKICsJICAgICAgJiYg VFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfQ09OU1QpCiArCSAgICB2ID0g dmFsdWVfYXRfbGF6eSAodHlwZSwgdmFsdWVfYWRkcmVzcyAoYXJnMSkgKyBvZmZzZXQpOwpAQCAt MjgzMyw3ICsxNDA4LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHVlLmMK ICsJICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKICsJICAgICAgdmFsdWVfY29udGVu dHNfY29weV9yYXcgKHYsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAodiksCiArCQkJCSAgICAgICBh cmcxLCB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0LAotKwkJCQkgICAgICAg VFlQRV9MRU5HVEggKHR5cGUpKTsKKysJCQkJICAgICAgIHR5cGVfbGVuZ3RoX3VuaXRzICh0eXBl KSk7CiArCSAgICB9CiAgCX0KIC0gICAgICB2LT5vZmZzZXQgPSAodmFsdWVfb2Zmc2V0IChhcmcx KSArIG9mZnNldApAQCAtMjg0Niw3ICsxNDIxLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3ZhbHVlLmMKICAgICAgfQogICAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAo diwgYXJnMSk7CiAgICBWQUxVRV9SRUdOVU0gKHYpID0gVkFMVUVfUkVHTlVNIChhcmcxKTsKLUBA IC0zNjc0LDcgKzM3MDMsOCBAQCByZWFkanVzdF9pbmRpcmVjdF92YWx1ZV90eXBlIChzdHJ1Y3Qg dmFsCitAQCAtMzY4OSw3ICszNzE4LDggQEAgcmVhZGp1c3RfaW5kaXJlY3RfdmFsdWVfdHlwZSAo c3RydWN0IHZhbAogIAkJCSAgICAgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUpCiAgewog ICAgLyogUmUtYWRqdXN0IHR5cGUuICAqLwpAQCAtMjg1Niw3ICsxNDMxLDcgQEAgSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHVlLmMKICAKICAgIC8qIEFkZCBlbWJlZGRpbmcgaW5m by4gICovCiAgICBzZXRfdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHZhbHVlLCBlbmNfdHlwZSk7Ci1A QCAtMzY5MSw2ICszNzIxLDEyIEBAIGNvZXJjZV9yZWYgKHN0cnVjdCB2YWx1ZSAqYXJnKQorQEAg LTM3MDYsNiArMzczNiwxMiBAQCBjb2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKmFyZykKICAgIHN0 cnVjdCB2YWx1ZSAqcmV0dmFsOwogICAgc3RydWN0IHR5cGUgKmVuY190eXBlOwogIApAQCAtMjg2 OSw3ICsxNDQ0LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHVlLmMKICAg IHJldHZhbCA9IGNvZXJjZV9yZWZfaWZfY29tcHV0ZWQgKGFyZyk7CiAgICBpZiAocmV0dmFsKQog ICAgICByZXR1cm4gcmV0dmFsOwotQEAgLTM4MjUsOCArMzg2MSwxNCBAQCB2YWx1ZV9mZXRjaF9s YXp5IChzdHJ1Y3QgdmFsdWUgKnZhbCkKK0BAIC0zODM0LDggKzM4NzAsMTQgQEAgdmFsdWVfZmV0 Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwpCiAgICAgIH0KICAgIGVsc2UgaWYgKFZBTFVFX0xW QUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCiAgICAgIHsKQEAgLTI4ODUsMTEgKzE0NjAsMTEgQEAg SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHVlLmMKICAKICAgICAgICBpZiAoVFlQ RV9MRU5HVEggKHR5cGUpKQogIAlyZWFkX3ZhbHVlX21lbW9yeSAodmFsLCAwLCB2YWx1ZV9zdGFj ayAodmFsKSwKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJsb2MuYworSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAxNS0wNS0yOSAwODoy NzowMi42OTQ3MTc1NjIgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJs b2MuYwkyMDE1LTA1LTI5IDA4OjI3OjA2LjI3NDc0MDM0MyArMDIwMAotQEAgLTIyOTQsNiArMjI5 NCwxMSBAQCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5CistLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAxNS0xMC0yNyAwMjo0ODoz MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9j LmMJMjAxNS0xMS0wMyAyMToxMzozNS45NTkzMzkxMTMgKzAxMDAKK0BAIC0yMzQ3LDYgKzIzNDcs MTEgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQogIAkgICAgaW50 IGluX3N0YWNrX21lbW9yeSA9IGR3YXJmX2V4cHJfZmV0Y2hfaW5fc3RhY2tfbWVtb3J5IChjdHgs IDApOwogIAogIAkgICAgZG9fY2xlYW51cHMgKHZhbHVlX2NoYWluKTsKQEAgLTI5MDEsNyArMTQ3 Niw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJsb2MuYwogIAkgICAg cmV0dmFsID0gdmFsdWVfYXRfbGF6eSAodHlwZSwgYWRkcmVzcyArIGJ5dGVfb2Zmc2V0KTsKICAJ ICAgIGlmIChpbl9zdGFja19tZW1vcnkpCiAgCSAgICAgIHNldF92YWx1ZV9zdGFjayAocmV0dmFs LCAxKTsKLUBAIC0yNTc3LDYgKzI1ODIsMTkgQEAgZHdhcmYyX2NvbXBpbGVfcHJvcGVydHlfdG9f YyAoc3RydWN0IHVpXworQEAgLTI2MzksNiArMjY0NCwxOSBAQCBkd2FyZjJfY29tcGlsZV9wcm9w ZXJ0eV90b19jIChzdHJ1Y3QgdWlfCiAgCQkJICAgICBkYXRhLCBkYXRhICsgc2l6ZSwgcGVyX2N1 KTsKICB9CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCBlY2RiM2Zj Li5lMDdiMjg2IDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMTksMTUg KzE5LDE1IEBAIFN1bW1hcnk6IEEgR05VIHNvdXJjZS1sZXZlbCBkZWJ1Z2dlciBmb3IgQywgQysr LCBGb3J0cmFuLCBHbyBhbmQgb3RoZXIgbGFuZ3VhZ2VzCiBOYW1lOiAlez9zY2xfcHJlZml4fWdk YgogCiAjIEZyZWV6ZSBpdCB3aGVuIEdEQiBnZXRzIGJyYW5jaGVkCi0lZ2xvYmFsIHNuYXBzcmMg ICAgMjAxNTA3MDYKKyVnbG9iYWwgc25hcHNyYyAgICAyMDE1MTAyNwogIyBTZWUgdGltZXN0YW1w IG9mIHNvdXJjZSBnbnVsaWIgaW5zdGFsbGVkIGludG8gZ2RiL2dudWxpYi8gLgotJWdsb2JhbCBz bmFwZ251bGliIDIwMTIxMjEzCislZ2xvYmFsIHNuYXBnbnVsaWIgMjAxNTA4MjIKICVnbG9iYWwg dGFybmFtZSBnZGItJXt2ZXJzaW9ufQotVmVyc2lvbjogNy4xMAorVmVyc2lvbjogNy4xMC41MC4l e3NuYXBzcmN9CiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNl cnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBv ZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRo ZSB0ZXN0aW5nLgotUmVsZWFzZTogMjklez9kaXN0fQorUmVsZWFzZTogMzAlez9kaXN0fQogCiBM aWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQg R1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQ dWJsaWMgRG9tYWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC0y NDUsNyArMjQ1LDcgQEAgUGF0Y2gyMzE6IGdkYi02LjMtYnoyMDI2ODktZXhlYy1mcm9tLXB0aHJl YWQtdGVzdC5wYXRjaAogCiAjIEJhY2twb3J0ZWQgZml4dXBzIHBvc3QgdGhlIHNvdXJjZSB0YXJi YWxsLgogI1hkcm9wOiBKdXN0IGJhY2twb3J0cy4KLSNQYXRjaDIzMjogZ2RiLXVwc3RyZWFtLnBh dGNoCitQYXRjaDIzMjogZ2RiLXVwc3RyZWFtLnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIFBQQyBQ b3dlcjYvREZQIGluc3RydWN0aW9ucyBkaXNhc3NlbWJseSAoQlogMjMwMDAwKS4KICM9ZmVkb3Jh dGVzdCtwcGMKQEAgLTU0MiwxOSArNTQyLDE0IEBAIFBhdGNoOTI3OiBnZGItcHl0aG9uLWdpbC5w YXRjaAogIyBGaXggaml0LXJlYWRlci5oIGZvciBtdWx0aS1saWIuCiBQYXRjaDk3ODogZ2RiLWpp dC1yZWFkZXItbXVsdGlsaWIucGF0Y2gKIAotIyBGaXggJ01ha2UgdGhlIHByb2Jlcy1iYXNlZCBk eW5hbWljIGxpbmtlciBpbnRlcmZhY2UgbW9yZSByb2J1c3QgdG8KLSMgZXJyb3JzJyAoU2VyZ2lv IER1cmlnYW4gSnVuaW9yLCBSSCBCWiAxMjU5MTMyKS4KLVBhdGNoMTAyOTogZ2RiLXByb2Jlcy1i YXNlZC1pbnRlcmZhY2Utcm9idXN0LTFvZjIucGF0Y2gKLVBhdGNoMTAzMDogZ2RiLXByb2Jlcy1i YXNlZC1pbnRlcmZhY2Utcm9idXN0LTJvZjIucGF0Y2gKLQotIyBbcHBjNjRsZV0gVXNlIHNraXBf ZW50cnlwb2ludCBmb3Igc2tpcF90cmFtcG9saW5lX2NvZGUgKFJIIEJaIDEyNjA1NTgpLgotUGF0 Y2gxMDMxOiBnZGItcmhiejEyNjA1NTgtcHBjNjRsZS1za2lwX3RyYW1wb2xpbmVfY29kZS5wYXRj aAotCiAjIEZpeCB0aGUgcGFob2xlIGNvbW1hbmQgYnJlYWthZ2UgZHVlIHRvIGl0cyBQeXRob24z IHBvcnQgKFJIIEJaIDEyNjQ1MzIpLgogUGF0Y2gxMDQ0OiBnZGItcGFob2xlLXB5dGhvbjIucGF0 Y2gKIAotIyBGaXggaW50ZXJuYWwgZXJyb3Igb24gRFdfT1BfYnJlZ3goLTEpIChSSCBCWiAxMjcw NTY0KS4KLVBhdGNoMTA1MjogZ2RiLXJoYnoxMjcwNTY0LWludmFsaWQtZHdhcmYtcmVnbm8ucGF0 Y2gKKyMgRml4IGNhbGxmcmFtZWNmYS5leHAgYW5kIHR5cGVkZHdhcmYuZXhwIHJlYmFzZSByZWdy ZXNzaW9uLgorUGF0Y2gxMDU0OiBnZGItbm9uc3RvcC1zY3JhdGNocGFkLnBhdGNoCisKKyMgdGVz dHN1aXRlOiBGb3J0cmFuOiBhbGxvY2F0ZSgpZCBtZW1vcnkgaXMgdW5pbml0aWFsaXplZC4KK1Bh dGNoMTA1NjogZ2RiLWZvcnRyYW4tYWxsb2NhdGUtbm90LWluaXRlZC5wYXRjaAogCiAlaWYgMCV7 IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYKICMgUkxfU1RBVEVfRkVET1JBX0dEQiB3b3VsZCBu b3QgYmUgZm91bmQgZm9yOgpAQCAtNzQ3LDcgKzc0Miw3IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoi fHhhcmdzIHJtIC1mCiAjIE1hdGNoIHRoZSBGZWRvcmEncyB2ZXJzaW9uIGluZm8uCiAlcGF0Y2gy IC1wMQogCi0jcGF0Y2gyMzIgLXAxCislcGF0Y2gyMzIgLXAxCiAlcGF0Y2gzNDkgLXAxCiAlcGF0 Y2g4ODggLXAxCiAlcGF0Y2g5ODMgLXAxCkBAIC04NTEsMTAgKzg0Niw4IEBAIGZpbmQgLW5hbWUg IiouaW5mbyoifHhhcmdzIHJtIC1mCiAlcGF0Y2g5MjUgLXAxCiAlcGF0Y2g5MjcgLXAxCiAlcGF0 Y2g5NzggLXAxCi0lcGF0Y2gxMDI5IC1wMQotJXBhdGNoMTAzMCAtcDEKLSVwYXRjaDEwMzEgLXAx Ci0lcGF0Y2gxMDUyIC1wMQorJXBhdGNoMTA1NCAtcDEKKyVwYXRjaDEwNTYgLXAxCiAKICVwYXRj aDg0OCAtcDEKICVpZiAwJXshP2VsNjoxfQpAQCAtMTM3MCw2ICsxMzYzLDkgQEAgdGhlbgogZmkK IAogJWNoYW5nZWxvZworKiBUdWUgTm92ICAzIDIwMTUgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xMC41MC4yMDE1MTAyNy0zMC5mYzI0CistIFJlYmFzZSB0 byBGU0YgR0RCIDcuMTAuNTAuMjAxNTEwMjcgKHRydW5rIHNuYXBzaG90KS4KKwogKiBNb24gT2N0 IDEyIDIwMTUgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4x MC0yOS5mYzIzCiAtIEZpeCBpbnRlcm5hbCBlcnJvciBvbiBEV19PUF9icmVneCgtMSkgKFJIIEJa IDEyNzA1NjQpLgogCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggODkxODhm Yi4uYmY3YWEwMiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDIgKzEs MiBAQAogN2FkMzJkMzg5NGFhZjkwZDAwYTQzNDNhNzM1YzNlMWMgIGdkYi1saWJzdGRjKystdjMt cHl0aG9uLXIyMjU1MjEudGFyLnh6Ci0yYTM1YmFjNDFmYThlMTBiZjA0ZjNhMGRkN2Y3ZjM2MyAg Z2RiLTcuMTAudGFyLnh6CiswODgxOWZiM2UyMzFiYmQ5ODY2OTViYjRlZGNkMjcxZCAgZ2RiLTcu MTAuNTAuMjAxNTEwMjcudGFyLnh6Cg==