From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Rebase to pre-7.13 FSF GDB trunk. Date: Thu, 23 Jul 2026 18:32:49 GMT Message-ID: <178483156964.1.1080845735333690122.rpms-gdb-af2c2a54224c@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: af2c2a54224c4fe6080b60a853a8f13b9d92b132 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogYWYyYzJhNTQyMjRjNGZlNjA4MGI2MGE4NTNhOGYxM2I5ZDkyYjEzMgog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxNy0wMi0yN1QyMjozMDozMiswMTowMAogICAg ICAgICAgICBTdGF0cyAgOiArMTcxMS8tMzQ1OCBpbiAzMSBmaWxlKHMpCiAgICAgICAgICAgIFVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvYWYyYzJhNTQy MjRjNGZlNjA4MGI2MGE4NTNhOGYxM2I5ZDkyYjEzMj9icmFuY2g9Zml4LWR1cC1wYXRjaAoKICAg ICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gcHJlLTcuMTMgRlNGIEdEQiB0cnVu ay4KRHJvcHBlZCBnZGItNi43LWJ6NDI2NjAwLURXX1RBR19pbnRlcmZhY2VfdHlwZS10ZXN0LnBh dGNoIGFzIEdDSiBpcyBubyBtb3JlLgoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdp dGlnbm9yZQppbmRleCA2NDA1NDhiLi5jYzZhNjU5IDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisr KyBiLy5naXRpZ25vcmUKQEAgLTEsMyArMSwzIEBACiAvZ2RiLWxpYnN0ZGMrKy12My1weXRob24t Ni4zLjEtMjAxNzAyMTIudGFyLnh6CiAvdjEuNS50YXIuZ3oKLS9nZGItNy4xMi4xLnRhci54egor L2dkYi03LjEyLjUwLjIwMTcwMjI2LnRhci54egoKZGlmZiAtLWdpdCBhL2dkYi02LjMtcmVhZG5l dmVyLTIwMDUwOTA3LnBhdGNoIGIvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKaW5k ZXggZWY4Y2Y1MS4uNjcwYjUwNSAxMDA2NDQKLS0tIGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5 MDcucGF0Y2gKKysrIGIvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKQEAgLTExLDEx ICsxMSwxMSBAQAogCiAgICAgICAgICogZ2RiLnRleGluZm8gKEZpbGUgT3B0aW9ucyk6IERvY3Vt ZW50IC0tcmVhZG5ldmVyLgogCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2RvYy9n ZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9kb2MvZ2RiLnRleGlu Zm8KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9kb2MvZ2Ri LnRleGluZm8JMjAxNS0xMC0yMiAyMjoxNjo1MC40ODM0ODIyODggKzAyMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyMi9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTUtMTAtMjIgMjI6Mjg6MjIuMDQy NTU0MTQyICswMjAwCi1AQCAtMTAzMiw2ICsxMDMyLDEyIEBAIFJlYWQgZWFjaCBzeW1ib2wgZmls ZSdzIGVudGlyZSBzeW1ib2wgdGEKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9k b2MvZ2RiLnRleGluZm8JMjAxNy0wMi0yNiAyMToyNjo0My42MDk3ODg2NjIgKzAxMDAKKysrKyBn ZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTctMDItMjYgMjE6MjY6 NDYuNTgyODA5NzIxICswMTAwCitAQCAtMTAzNyw2ICsxMDM3LDEyIEBACiAgdGhlIGRlZmF1bHQs IHdoaWNoIGlzIHRvIHJlYWQgaXQgaW5jcmVtZW50YWxseSBhcyBpdCBpcyBuZWVkZWQuCiAgVGhp cyBtYWtlcyBzdGFydHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1dHVyZSBvcGVyYXRpb25zIGZhc3Rl ci4KICAKQEAgLTI4LDExICsyOCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2Ri L2RvYy9nZGIudGV4aW5mbwogIEBlbmQgdGFibGUKICAKICBAbm9kZSBNb2RlIE9wdGlvbnMKLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbWFpbi5jCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMjYvZ2RiL21haW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIy Lm9yaWcvZ2RiL21haW4uYwkyMDE1LTEwLTIyIDIyOjE2OjUwLjQ4NTQ4MjI5OSArMDIwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9tYWluLmMJMjAxNS0xMC0yMiAyMjoyODoyMi4wNDI1 NTQxNDIgKzAyMDAKLUBAIC02MDQsNiArNjA0LDcgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0 YSkKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9tYWluLmMJMjAxNy0wMi0yNiAy MToyNjo0My42MTI3ODg2ODQgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbWFp bi5jCTIwMTctMDItMjYgMjE6MjY6NDYuNTgyODA5NzIxICswMTAwCitAQCAtNjE1LDYgKzYxNSw3 IEBACiAgICAgICAgeyJ0dWkiLCBub19hcmd1bWVudCwgMCwgT1BUX1RVSX0sCiAgICAgICAgeyJk YngiLCBub19hcmd1bWVudCwgJmRieF9jb21tYW5kcywgMX0sCiAgICAgICAgeyJyZWFkbm93Iiwg bm9fYXJndW1lbnQsICZyZWFkbm93X3N5bWJvbF9maWxlcywgMX0sCkBAIC00MCw3ICs0MCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbWFpbi5jCiAgICAgICAgeyJyIiwgbm9f YXJndW1lbnQsICZyZWFkbm93X3N5bWJvbF9maWxlcywgMX0sCiAgICAgICAgeyJxdWlldCIsIG5v X2FyZ3VtZW50LCAmcXVpZXQsIDF9LAogICAgICAgIHsicSIsIG5vX2FyZ3VtZW50LCAmcXVpZXQs IDF9LAotQEAgLTEyNTMsNiArMTI1NCw3IEBAIFNlbGVjdGlvbiBvZiBkZWJ1Z2dlZSBhbmQgaXRz IGZpbGVzOlxuXG4KK0BAIC0xMjUzLDYgKzEyNTQsNyBAQAogICAgLS1zZT1GSUxFICAgICAgICAg IFVzZSBGSUxFIGFzIHN5bWJvbCBmaWxlIGFuZCBleGVjdXRhYmxlIGZpbGUuXG5cCiAgICAtLXN5 bWJvbHM9U1lNRklMRSAgUmVhZCBzeW1ib2xzIGZyb20gU1lNRklMRS5cblwKICAgIC0tcmVhZG5v dyAgICAgICAgICBGdWxseSByZWFkIHN5bWJvbCBmaWxlcyBvbiBmaXJzdCBhY2Nlc3MuXG5cCkBA IC00OCwxMSArNDgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9tYWluLmMK ICAgIC0td3JpdGUgICAgICAgICAgICBTZXQgd3JpdGluZyBpbnRvIGV4ZWN1dGFibGUgYW5kIGNv cmUgZmlsZXMuXG5cblwKICAiKSwgc3RyZWFtKTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvc3ltZmlsZS5jCitJbmRleDogZ2RiLTcu MTIuNTAuMjAxNzAyMjYvZ2RiL3N5bWZpbGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDIyLm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDE1LTEwLTIyIDIyOjE2OjUwLjQ4NjQ4MjMw NSArMDIwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9zeW1maWxlLmMJMjAxNS0xMC0y MiAyMjoyODoyMi4wNDM1NTQxNDggKzAyMDAKLUBAIC04MCw2ICs4MCw3IEBAIHN0YXRpYyB2b2lk IGNsZWFyX3N5bXRhYl91c2Vyc19jbGVhbnVwICgKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5v cmlnL2dkYi9zeW1maWxlLmMJMjAxNy0wMi0yNiAyMToyNjo0My42MTM3ODg2OTEgKzAxMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvc3ltZmlsZS5jCTIwMTctMDItMjYgMjE6MjY6NDYu NTgzODA5NzI4ICswMTAwCitAQCAtNzksNiArNzksNyBAQAogIAogIC8qIEdsb2JhbCB2YXJpYWJs ZXMgb3duZWQgYnkgdGhpcyBmaWxlLiAgKi8KICBpbnQgcmVhZG5vd19zeW1ib2xfZmlsZXM7CS8q IFJlYWQgZnVsbCBzeW1ib2xzIGltbWVkaWF0ZWx5LiAgKi8KQEAgLTYwLDE5ICs2MCwxOSBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3N5bWZpbGUuYwogIAogIC8qIEZ1bmN0aW9u cyB0aGlzIGZpbGUgZGVmaW5lcy4gICovCiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIv Z2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9kd2FyZjJy ZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9kd2Fy ZjJyZWFkLmMJMjAxNS0xMC0yMiAyMjoyODoyMi4wNDY1NTQxNjUgKzAyMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyMi9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMTAtMjIgMjI6Mjk6MTcuNjY0ODgx NjQyICswMjAwCi1AQCAtNzAsNiArNzAsNyBAQAotICNpbmNsdWRlICJmaWxlc3R1ZmYuaCIKLSAj aW5jbHVkZSAiYnVpbGQtaWQuaCIKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9k d2FyZjJyZWFkLmMJMjAxNy0wMi0yNiAyMToyNjo0My42MjA3ODg3NDAgKzAxMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIyNi9nZGIvZHdhcmYycmVhZC5jCTIwMTctMDItMjYgMjE6MjY6NTkuMDc4 ODk4MjM0ICswMTAwCitAQCAtNzEsNiArNzEsNyBAQAogICNpbmNsdWRlICJuYW1lc3BhY2UuaCIK KyAjaW5jbHVkZSAiY29tbW9uL2dkYl91bmxpbmtlci5oIgorICNpbmNsdWRlICJjb21tb24vZnVu Y3Rpb24tdmlldy5oIgogKyNpbmNsdWRlICJ0b3AuaCIKICAKICAjaW5jbHVkZSA8ZmNudGwuaD4K ICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci1AQCAtMjA1OSw3ICsyMDYwLDggQEAgZHdhcmYyX2hh c19pbmZvIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZQorQEAgLTIxMTMsNyArMjExNCw4IEBACiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSBuYW1lcyk7CiAgICAgICAgZHdh cmYyX3Blcl9vYmpmaWxlLT5vYmpmaWxlID0gb2JqZmlsZTsKICAgICAgfQpAQCAtODIsMTEgKzgy LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvZHdhcmYycmVhZC5jCiAgCSAg JiYgZHdhcmYyX3Blcl9vYmpmaWxlLT5pbmZvLnMuc2VjdGlvbiAhPSBOVUxMCiAgCSAgJiYgIWR3 YXJmMl9wZXJfb2JqZmlsZS0+YWJicmV2LmlzX3ZpcnR1YWwKICAJICAmJiBkd2FyZjJfcGVyX29i amZpbGUtPmFiYnJldi5zLnNlY3Rpb24gIT0gTlVMTCk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjIvZ2RiL3RvcC5oCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3RvcC5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvdG9wLmgJMjAxNS0x MC0yMiAyMjoxNjo1MC40OTA0ODIzMjkgKzAyMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9n ZGIvdG9wLmgJMjAxNS0xMC0yMiAyMjoyODoyMi4wNDc1NTQxNzEgKzAyMDAKLUBAIC03NCw2ICs3 NCw3IEBAIGV4dGVybiBpbnQgZ2RiX2luX3NlY29uZGFyeV9wcm9tcHRfcCAodm8KKy0tLSBnZGIt Ny4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi90b3AuaAkyMDE3LTAyLTI2IDIxOjI2OjQzLjYyMjc4 ODc1NCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi90b3AuaAkyMDE3LTAyLTI2 IDIxOjI2OjQ2LjU4OTgwOTc3MSArMDEwMAorQEAgLTI2OSw2ICsyNjksNyBAQAogIAogIC8qIEZy b20gcmFuZG9tIHBsYWNlcy4gICovCiAgZXh0ZXJuIGludCByZWFkbm93X3N5bWJvbF9maWxlczsK CmRpZmYgLS1naXQgYS9nZGItNi4zLXJoLXRlc3R2ZXJzaW9uLTIwMDQxMjAyLnBhdGNoIGIvZ2Ri LTYuMy1yaC10ZXN0dmVyc2lvbi0yMDA0MTIwMi5wYXRjaAppbmRleCA3ODM5MjAwLi44YjlhNGJm IDEwMDY0NAotLS0gYS9nZGItNi4zLXJoLXRlc3R2ZXJzaW9uLTIwMDQxMjAyLnBhdGNoCisrKyBi L2dkYi02LjMtcmgtdGVzdHZlcnNpb24tMjAwNDEyMDIucGF0Y2gKQEAgLTMsMTEgKzMsMTEgQEAK ICAgICAgICAgKiBnZGIuZ2RiL3NlbGZ0ZXN0LmV4cDogQWRkIG1hdGNoaW5nIG9uIHNwZWNpZmlj IFJlZCBIYXQgb25seSB2ZXJzaW9uCiAgICAgICAgIHN0cmluZy4KIAotSW5kZXg6IGdkYi03LjEu OTAuMjAxMDA3MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAorSW5kZXg6IGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xLjkwLjIwMTAwNzExLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIu Z2RiL3NlbGZ0ZXN0LmV4cAkyMDEwLTA2LTI2IDA4OjQ0OjQ3LjAwMDAwMDAwMCArMDIwMAotKysr IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAky MDEwLTA3LTEyIDA5OjU5OjQyLjAwMDAwMDAwMCArMDIwMAotQEAgLTM0Miw2ICszNDIsOSBAQCBw cm9jIHRlc3Rfd2l0aF9zZWxmIHsgZXhlY3V0YWJsZSB9IHsKKy0tLSBnZGItNy4xMi41MC4yMDE3 MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAJMjAxNy0wMi0wNyAx OTo0NzowNi40NzI4NzQ2MjAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVz dHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCTIwMTctMDItMDcgMTk6NDg6MTIuNTkzMzgwNTc1 ICswMTAwCitAQCAtNTMsNiArNTMsOSBAQAogIAktcmUgIi5cWzAtOVxdKyA9ICsuKyArMHguKlxb MC05LlxdKy4qJGdkYl9wcm9tcHQgJCIgewogIAkgICAgcGFzcyAicHJpbnRlZCB2ZXJzaW9uIHdp dGggY2FzdCIKICAJfQpAQCAtMTYsNCArMTYsNCBAQCBJbmRleDogZ2RiLTcuMS45MC4yMDEwMDcx MS9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCiArCX0KICAgICAgfQogIAotICAg ICBkb19zdGVwc19hbmRfbmV4dHMKKyAgICAgIyBzdGFydCB0aGUgInhnZGIiIHByb2Nlc3MKCmRp ZmYgLS1naXQgYS9nZGItNi41LWJ6MTg1MzM3LXJlc29sdmUtdGxzLXdpdGhvdXQtZGVidWdpbmZv LXYyLnBhdGNoIGIvZ2RiLTYuNS1iejE4NTMzNy1yZXNvbHZlLXRscy13aXRob3V0LWRlYnVnaW5m by12Mi5wYXRjaAppbmRleCBkOGMxOTgyLi5hYTFhNjQ2IDEwMDY0NAotLS0gYS9nZGItNi41LWJ6 MTg1MzM3LXJlc29sdmUtdGxzLXdpdGhvdXQtZGVidWdpbmZvLXYyLnBhdGNoCisrKyBiL2dkYi02 LjUtYnoxODUzMzctcmVzb2x2ZS10bHMtd2l0aG91dC1kZWJ1Z2luZm8tdjIucGF0Y2gKQEAgLTM0 LDExICszNCwxMSBAQCBnbGliYy1kZWJ1Z2luZm8tMi43LTIueDg2XzY0OiAvdXNyL2xpYi9kZWJ1 Zy9saWI2NC9saWJjLnNvLjYuZGVidWc6CiAgIDw4MWEyPiAgICAgRFdfQVRfbmFtZSAgICAgICAg OiAoaW5kaXJlY3Qgc3RyaW5nLCBvZmZzZXQ6IDB4MjgwZSk6IF9fZXJybm9fbG9jYXRpb24KICAg PDgxYTg+ICAgICBEV19BVF9NSVBTX2xpbmthZ2VfbmFtZTogKGluZGlyZWN0IHN0cmluZywgb2Zm c2V0OiAweDI4MDgpOiAqX19HSV9fX2Vycm5vX2xvY2F0aW9uCiAKLUluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvcHJpbnRjbWQuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dk Yi9wcmludGNtZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9n ZGIvcHJpbnRjbWQuYwkyMDE2LTAyLTE1IDIzOjI5OjUzLjA2MjQyMDg5MyArMDEwMAotKysrIGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi9wcmludGNtZC5jCTIwMTYtMDItMTUgMjM6MzM6MzEuMDY4 OTY4NzYyICswMTAwCi1AQCAtMTAwMyw2ICsxMDAzLDEwIEBACistLS0gZ2RiLTcuMTIuNTAuMjAx NzAyMDcub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE3LTAyLTA3IDIxOjA2OjIwLjE5NjU5Mzg4NCAr MDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9wcmludGNtZC5jCTIwMTctMDItMDcg MjE6MDc6MTAuMjMwOTczOTA2ICswMTAwCitAQCAtMTI1OCw2ICsxMjU4LDEwIEBACiAgCiAgICBp ZiAoZXhwICYmICpleHApCiAgICAgIHsKQEAgLTQ2LDEzICs0NiwxMyBAQCBJbmRleDogZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3ByaW50Y21kLmMKICsJIGZ1bmN0aW9uIGRlc2NyaXB0b3JzLiAg Ki8KICsgICAgICBpZiAodGFyZ2V0X2hhc19leGVjdXRpb24gJiYgc3RyY21wIChleHAsICJlcnJu byIpID09IDApCiArCWV4cCA9ICIqKCooaW50ICooKikodm9pZCkpIF9fZXJybm9fbG9jYXRpb24p ICgpIjsKLSAgICAgICBleHByID0gcGFyc2VfZXhwcmVzc2lvbiAoZXhwKTsKLSAgICAgICBtYWtl X2NsZWFudXAgKGZyZWVfY3VycmVudF9jb250ZW50cywgJmV4cHIpOwotICAgICAgIHZhbCA9IGV2 YWx1YXRlX2V4cHJlc3Npb24gKGV4cHIpOwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZXJybm8uYworICAgICAgIGV4cHJlc3Npb25fdXAg ZXhwciA9IHBhcnNlX2V4cHJlc3Npb24gKGV4cCk7CisgICAgICAgdmFsID0gZXZhbHVhdGVfZXhw cmVzc2lvbiAoZXhwci5nZXQgKCkpOworICAgICB9CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5jCTIwMTYt MDItMTUgMjM6MzA6MjAuNzAzNjE3MTQ4ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5jCTIwMTctMDItMDcgMjE6MDY6MjAu MTk2NTkzODg0ICswMTAwCiBAQCAtMCwwICsxLDI4IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBw YXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTgyLDEwICs4MiwxMCBAQCBJbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJu by5jCiArCiArICByZXR1cm4gMDsJLyogYnJlYWtwb2ludCAqLwogK30KLUluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWVycm5vLmV4cAorSW5k ZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZXJy bm8uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1lcnJuby5leHAJMjAxNi0wMi0xNSAyMzozNToyNS41ODI3ODE4MjEgKzAxMDAK KysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWVy cm5vLmV4cAkyMDE3LTAyLTA3IDIxOjA2OjIwLjE5NjU5Mzg4NCArMDEwMAogQEAgLTAsMCArMSw2 MCBAQAogKyMgQ29weXJpZ2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAr CkBAIC0xNDcsMTAgKzE0NywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5leHAKICsKICsjIFRPRE86IFRlc3QgdGhlIGVy cm9yIG9uIHJlc29sdmluZyBFUlJOTyB3aXRoIG9ubHkgbGliYyBsb2FkZWQuCiArIyBKdXN0IGhv dyB0byBmaW5kIHRoZSBjdXJyZW50IGxpYmMgZmlsZW5hbWU/Ci1JbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIuYworSW5kZXg6IGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZXJybm8yLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv ZHcyLWVycm5vMi5jCTIwMTYtMDItMTUgMjM6MzA6MjAuNzAzNjE3MTQ4ICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIuYwky MDE3LTAyLTA3IDIxOjA2OjIwLjE5NjU5Mzg4NCArMDEwMAogQEAgLTAsMCArMSwyOCBAQAogKy8q IFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0x ODAsMTAgKzE4MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIuYwogKwogKyAgcmV0dXJuIDA7CS8qIGJyZWFrcG9pbnQg Ki8KICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1lcnJubzIuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIuZXhwCTIwMTYtMDItMTUg MjM6MzU6MjUuNTgyNzgxODIxICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJubzIuZXhwCTIwMTctMDItMDcgMjE6MDY6MjAuMTk3 NTkzODkyICswMTAwCiBAQCAtMCwwICsxLDcxIEBACiArIyBDb3B5cmlnaHQgMjAwNyBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQt bG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1jb3JlLWFz LWFyZy5wYXRjaAppbmRleCA1MjNiN2UwLi44NWQ0ZmU1IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1 aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2Nh dGUtY29yZS1hcy1hcmcucGF0Y2gKQEAgLTU4LDEwICs1OCwxMCBAQCBIdHRwOi8vc291cmNld2Fy ZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMS9tc2cwMDUxNy5odG1sCiAJKiBleGVjLmMgKGV4 ZWNfZmlsZV9hdHRhY2gpOiBQcmludCBhIG1vcmUgdXNlZnVsIGVycm9yIG1lc3NhZ2UgaWYgdGhl CiAJdXNlciBkaWQgImdkYiBjb3JlIi4KIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2Ri L2V4ZWMuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9leGVjLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTMxLm9yaWcvZ2RiL2V4ZWMuYwkyMDE1LTA1LTMxIDAz OjQ4OjI5LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL2V4ZWMu YwkyMDE1LTA1LTMxIDIwOjA3OjM1LjA5Mjg3ODY4NSArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIw MTcwMjI2Lm9yaWcvZ2RiL2V4ZWMuYwkyMDE3LTAyLTI3IDIyOjE4OjAwLjk0NTAyNjIxMSArMDEw MAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9leGVjLmMJMjAxNy0wMi0yNyAyMjoxODow OC4xMTEwNzYzNTAgKzAxMDAKIEBAIC0zNSw2ICszNSw3IEBACiAgI2luY2x1ZGUgInByb2dzcGFj ZS5oIgogICNpbmNsdWRlICJnZGJfYmZkLmgiCkBAIC03MCw3ICs3MCw3IEBAIEluZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTMxL2dkYi9leGVjLmMKICAKICAjaW5jbHVkZSA8ZmNudGwuaD4KICAjaW5j bHVkZSAicmVhZGxpbmUvcmVhZGxpbmUuaCIKLUBAIC0yOTgsMTIgKzI5OSwyNyBAQCBleGVjX2Zp bGVfYXR0YWNoIChjb25zdCBjaGFyICpmaWxlbmFtZSwKK0BAIC0zNTksMTIgKzM2MCwyNyBAQAog IAogICAgICAgIGlmICghYmZkX2NoZWNrX2Zvcm1hdF9tYXRjaGVzIChleGVjX2JmZCwgYmZkX29i amVjdCwgJm1hdGNoaW5nKSkKICAJewpAQCAtMTAxLDEzICsxMDEsMTMgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MzEvZ2RiL2V4ZWMuYwogIAl9CiAgCiAgICAgICAgaWYgKGJ1aWxkX3NlY3Rp b25fdGFibGUgKGV4ZWNfYmZkLCAmc2VjdGlvbnMsICZzZWN0aW9uc19lbmQpKQotSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MzEvZ2RiL21haW4uYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2 L2dkYi9tYWluLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTMxLm9yaWcvZ2Ri L21haW4uYwkyMDE1LTA1LTMxIDIwOjA3OjM0LjE4Mzg3MjgyNCArMDIwMAotKysrIGdkYi03Ljku NTAuMjAxNTA1MzEvZ2RiL21haW4uYwkyMDE1LTA1LTMxIDIwOjEwOjA1LjA5NTg0NTkzNSArMDIw MAotQEAgLTQzNSw2ICs0MzUsMzcgQEAgdHlwZWRlZiBzdHJ1Y3QgY21kYXJnIHsKLSAvKiBEZWZp bmUgdHlwZSBWRUMgKGNtZGFyZ19zKS4gICovCi0gREVGX1ZFQ19PIChjbWRhcmdfcyk7CistLS0g Z2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvbWFpbi5jCTIwMTctMDItMjcgMjI6MTg6MDAu OTQ1MDI2MjExICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL21haW4uYwkyMDE3 LTAyLTI3IDIyOjE4OjA4LjExMjA3NjM1NyArMDEwMAorQEAgLTQ1OSw2ICs0NTksMzcgQEAKKyAg IGNoYXIgKnN0cmluZzsKKyB9OwogIAogKy8qIENhbGwgZXhlY19maWxlX2F0dGFjaC4gIElmIGl0 IGRldGVjdGVkIEZJTEVOQU1FIGlzIGEgY29yZSBmaWxlIGNhbGwKICsgICBjb3JlX2ZpbGVfY29t bWFuZC4gIFByaW50IHRoZSBvcmlnaW5hbCBleGVjX2ZpbGVfYXR0YWNoIGVycm9yIG9ubHkgaWYK QEAgLTE0MCwxMCArMTQwLDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi9tYWlu LmMKICsgIEVORF9DQVRDSAogK30KICsKLSBzdGF0aWMgaW50Ci0gY2FwdHVyZWRfbWFpbiAodm9p ZCAqZGF0YSkKKyBzdGF0aWMgdm9pZAorIGNhcHR1cmVkX21haW5fMSAoc3RydWN0IGNhcHR1cmVk X21haW5fYXJncyAqY29udGV4dCwgaW50ICZweXRob25fc2NyaXB0KQogIHsKLUBAIC05MjMsNiAr OTU0LDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC05MTAsNiArOTQxLDggQEAK ICAJewogIAkgIHN5bWFyZyA9IGFyZ3Zbb3B0aW5kXTsKICAJICBleGVjYXJnID0gYXJndltvcHRp bmRdOwpAQCAtMTUyLDcgKzE1Miw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi9t YWluLmMKICAJICBvcHRpbmQrKzsKICAJfQogIAotQEAgLTEwODAsMTEgKzExMTMsMjUgQEAgY2Fw dHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC0xMDYwLDExICsxMDkzLDI1IEBACiAgICAgICAg JiYgc3ltYXJnICE9IE5VTEwKICAgICAgICAmJiBzdHJjbXAgKGV4ZWNhcmcsIHN5bWFyZykgPT0g MCkKICAgICAgewpAQCAtMTc4LDE0ICsxNzgsMTQgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MzEvZ2RiL21haW4uYwogKwkgYXMgYSBjb3JlIGZpbGUuICAqLwogKyAgICAgIGlmIChjYXRjaF9j b21tYW5kX2Vycm9yc19jb25zdCAoZnVuYywgZXhlY2FyZywgIWJhdGNoX2ZsYWcpCiArCSAgJiYg Y29yZV9iZmQgPT0gTlVMTCkKLSAJY2F0Y2hfY29tbWFuZF9lcnJvcnNfY29uc3QgKHN5bWJvbF9m aWxlX2FkZF9tYWluLCBzeW1hcmcsCisgCWNhdGNoX2NvbW1hbmRfZXJyb3JzX2NvbnN0IChzeW1i b2xfZmlsZV9hZGRfbWFpbl9hZGFwdGVyLCBzeW1hcmcsCiAgCQkJCSAgICAhYmF0Y2hfZmxhZyk7 CiAgICAgIH0KLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi9jb21tb24vY29tbW9uLWV4 Y2VwdGlvbnMuaAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9jb21tb24vY29tbW9u LWV4Y2VwdGlvbnMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MzEub3JpZy9n ZGIvY29tbW9uL2NvbW1vbi1leGNlcHRpb25zLmgJMjAxNS0wNS0zMSAwMzo0ODoyOS4wMDAwMDAw MDAgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi9jb21tb24vY29tbW9uLWV4Y2Vw dGlvbnMuaAkyMDE1LTA1LTMxIDIwOjA3OjM1LjA5Mzg3ODY5MiArMDIwMAotQEAgLTEwNSw2ICsx MDUsOSBAQCBlbnVtIGVycm9ycyB7CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIv Y29tbW9uL2NvbW1vbi1leGNlcHRpb25zLmgJMjAxNy0wMi0yNyAyMjoxODowMC45NDYwMjYyMTgg KzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvY29tbW9uL2NvbW1vbi1leGNlcHRp b25zLmgJMjAxNy0wMi0yNyAyMjoxODowOC4xMTIwNzYzNTcgKzAxMDAKK0BAIC0xMDYsNiArMTA2 LDkgQEAKICAgICAgICJfRVJST1IiIGlzIGFwcGVuZGVkIHRvIHRoZSBuYW1lLiAgKi8KICAgIE1B WF9DT01QTEVUSU9OU19SRUFDSEVEX0VSUk9SLAogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVp bGRpZC1sb2NhdGUtbWlzbGVhZGluZy13YXJuaW5nLW1pc3NpbmctZGVidWdpbmZvLXJoYno5ODEx NTQucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLW1pc2xlYWRpbmctd2FybmluZy1taXNz aW5nLWRlYnVnaW5mby1yaGJ6OTgxMTU0LnBhdGNoCmluZGV4IDY0ZmUxZDAuLjMyZjJhODMgMTAw NjQ0Ci0tLSBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtbWlzbGVhZGluZy13YXJuaW5nLW1pc3Np bmctZGVidWdpbmZvLXJoYno5ODExNTQucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS1taXNsZWFkaW5nLXdhcm5pbmctbWlzc2luZy1kZWJ1Z2luZm8tcmhiejk4MTE1NC5wYXRjaApA QCAtMTUsMTAgKzE1LDEwIEBAIENvbW1lbnRzIGJ5IFNlcmdpbyBEdXJpZ2FuIEp1bmlvciA8c2Vy Z2lvZGpAcmVkaGF0LmNvbT46CiAgIE5VTEwgYWZ0ZXIgaXQgaXMgZnJlZSdkLCBvdGhlcndpc2Ug dGhlIGNvZGUgYmVsb3cgdGhpbmtzIHRoYXQgaXQgaXMgc3RpbGwKICAgdmFsaWQgYW5kIGRvZXNu J3QgcHJpbnQgdGhlIG5lY2Vzc2FyeSB3YXJuaW5nICgiVHJ5OiB5dW0gaW5zdGFsbCAuLi4iKS4K IAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvcmhi ejk4MTE1NC1taXNsZWFkaW5nLXl1bS1pbnN0YWxsLXdhcm5pbmcuZXhwCitJbmRleDogZ2RiLTcu MTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9yaGJ6OTgxMTU0LW1pc2xlYWRp bmcteXVtLWluc3RhbGwtd2FybmluZy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3JoYno5ODExNTQtbWlzbGVhZGluZy15dW0taW5zdGFs bC13YXJuaW5nLmV4cAkyMDE2LTAyLTE1IDIzOjMxOjA2LjMyNzk0MTA4NSArMDEwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvcmhiejk4MTE1NC1taXNs ZWFkaW5nLXl1bS1pbnN0YWxsLXdhcm5pbmcuZXhwCTIwMTctMDItMjYgMTk6MTQ6NTguNDkyNjA5 NjU5ICswMTAwCiBAQCAtMCwwICsxLDk3IEBACiArIyAgIENvcHlyaWdodCAoQykgMjAxNCAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMTcsMTAgKzExNywxMCBAQCBJbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9yaGJ6OTgxMTU0 LW1pc2xlYWRpbmcteXVtLWlucwogKwogKyMgTGVhdmluZyB0aGUgbGluayB0aGVyZSB3aWxsIGNh dXNlIGJyZWFrYWdlIGluIHRoZSBuZXh0IHJ1bi4KICtyZW1vdGVfZXhlYyBidWlsZCAicm0gLWYg W3N0YW5kYXJkX291dHB1dF9maWxlICR7YnVpbGRfaWRfd2l0aG91dF9kZWJ1Z31dIgotSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL2J1aWxkLWlkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2 MDIxMS5vcmlnL2dkYi9idWlsZC1pZC5jCTIwMTYtMDItMTUgMjM6MzA6NTUuMzg5ODYzNDI0ICsw MTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMJMjAxNi0wMi0xNSAy MzozMDo1NS43Nzg4NjYxODYgKzAxMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dk Yi9idWlsZC1pZC5jCTIwMTctMDItMjYgMTk6MTQ6NTEuOTQzNTYyNzk5ICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2J1aWxkLWlkLmMJMjAxNy0wMi0yNiAxOToxNDo1OC40OTI2 MDk2NTkgKzAxMDAKIEBAIC01ODksNyArNTg5LDEwIEBACiAgCSAgZG9fY2xlYW51cHMgKGlubmVy KTsKICAKQEAgLTEzMSw1ICsxMzEsNSBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L2J1aWxkLWlkLmMKICsJICAgICAgY29udGludWU7CiArCSAgICB9CiAgCi0gCSAgaWYgKGJ1aWxk X2lkX3ZlcmlmeSAoYWJmZCwgYnVpbGRfaWRfbGVuLCBidWlsZF9pZCkpCisgCSAgaWYgKGJ1aWxk X2lkX3ZlcmlmeSAoYWJmZC5nZXQoKSwgYnVpbGRfaWRfbGVuLCBidWlsZF9pZCkpCiAgCSAgICBi cmVhazsKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoIGIvZ2RiLTYu Ni1idWlsZGlkLWxvY2F0ZS5wYXRjaAppbmRleCAyODc3M2VjLi4wZjVmYThhIDEwMDY0NAotLS0g YS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2Nh dGUucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L2NvcmVsb3cuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9jb3JlbG93LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9jb3JlbG93LmMJMjAx Ni0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvY29yZWxvdy5jCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDIyNzUzNTgyICswMjAwCistLS0g Z2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvY29yZWxvdy5jCTIwMTctMDItMjQgMjI6MTg6 MDIuMTc2MzkxNDAwICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2NvcmVsb3cu YwkyMDE3LTAyLTI0IDIyOjMyOjM4Ljc5MzI2NDM5NiArMDEwMAogQEAgLTQ1LDYgKzQ1LDEwIEBA CiAgI2luY2x1ZGUgImdkYl9iZmQuaCIKICAjaW5jbHVkZSAiY29tcGxldGVyLmgiCkBAIC0xMyw3 ICsxMyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCiAgCiAg I2lmbmRlZiBPX0xBUkdFRklMRQogICNkZWZpbmUgT19MQVJHRUZJTEUgMAotQEAgLTI2Niw2ICsy NzAsNTMgQEAKK0BAIC0yNjYsNiArMjcwLDU0IEBACiAgICAgIGluZmVyaW9yX3B0aWQgPSBwdGlk OwkJCS8qIFllcywgbWFrZSBpdCBjdXJyZW50LiAgKi8KICB9CiAgCkBAIC01Miw3ICs1Miw4IEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCiArICAgIHsKICsgICAg ICBtYWtlX2NsZWFudXAgKHhmcmVlLCBleGVjZmlsZW5hbWUpOwogKyAgICAgIGV4ZWNfZmlsZV9h dHRhY2ggKGV4ZWNmaWxlbmFtZSwgZnJvbV90dHkpOwotKyAgICAgIHN5bWJvbF9maWxlX2FkZF9t YWluIChleGVjZmlsZW5hbWUsIGZyb21fdHR5KTsKKysgICAgICBzeW1ib2xfZmlsZV9hZGRfbWFp biAoZXhlY2ZpbGVuYW1lLAorKwkJCSAgICBzeW1maWxlX2FkZF9mbGFnICghZnJvbV90dHkgPyAw IDogU1lNRklMRV9WRVJCT1NFKSk7CiArICAgICAgaWYgKHN5bWZpbGVfb2JqZmlsZSAhPSBOVUxM KQogKyAgICAgICAgc3ltZmlsZV9vYmpmaWxlLT5mbGFncyB8PSBPQkpGX0JVSUxEX0lEX0NPUkVf TE9BREVEOwogKyAgICB9CkBAIC02Nyw3ICs2OCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvY29yZWxvdy5jCiAgLyogVGhpcyByb3V0aW5lIG9wZW5zIGFuZCBzZXRzIHVwIHRo ZSBjb3JlIGZpbGUgYmZkLiAgKi8KICAKICBzdGF0aWMgdm9pZAotQEAgLTQwNCw2ICs0NTUsMTQg QEAKK0BAIC00MDIsNiArNDU0LDE0IEBACiAgCXN3aXRjaF90b190aHJlYWQgKHRocmVhZC0+cHRp ZCk7CiAgICAgIH0KICAKQEAgLTgyLDcgKzgzLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9jb3JlbG93LmMKICAgIHBvc3RfY3JlYXRlX2luZmVyaW9yICgmY29yZV9vcHMsIGZy b21fdHR5KTsKICAKICAgIC8qIE5vdyBnbyB0aHJvdWdoIHRoZSB0YXJnZXQgc3RhY2sgbG9va2lu ZyBmb3IgdGhyZWFkcyBzaW5jZSB0aGVyZQotQEAgLTEwNjgsNCArMTEyNywxMSBAQAorQEAgLTEw NzgsNCArMTEzOCwxMSBAQAogICAgaW5pdF9jb3JlX29wcyAoKTsKICAKICAgIGFkZF90YXJnZXRf d2l0aF9jb21wbGV0ZXIgKCZjb3JlX29wcywgZmlsZW5hbWVfY29tcGxldGVyKTsKQEAgLTk0LDEx ICs5NSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2NvcmVsb3cuYwogKwkJ CSAgIE5VTEwsIE5VTEwsIE5VTEwsCiArCQkJICAgJnNldGxpc3QsICZzaG93bGlzdCk7CiAgfQot SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvZ2RiLnRleGluZm8KK0luZGV4OiBn ZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZG9jL2dkYi50ZXhpbmZvCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTYtMDctMDMg MTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2Rv Yy9nZGIudGV4aW5mbwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMDc1MzY1MSArMDIwMAotQEAgLTE4 OTE2LDYgKzE4OTE2LDI3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvZG9j L2dkYi50ZXhpbmZvCTIwMTctMDItMjQgMjI6MTg6MDIuMTc2MzkxNDAwICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE3LTAyLTI0IDIyOjMyOjM4 LjgwMzI2NDQ2MyArMDEwMAorQEAgLTE4OTYyLDYgKzE4OTYyLDI3IEBACiAgCiAgQGVuZCB0YWJs ZQogIApAQCAtMTI2LDEwICsxMjcsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9kb2MvZ2RiLnRleGluZm8KICBAY2luZGV4IEBjb2Rley5nbnVfZGVidWdsaW5rfSBzZWN0aW9u cwogIEBjaW5kZXggZGVidWcgbGluayBzZWN0aW9ucwogIEEgZGVidWcgbGluayBpcyBhIHNwZWNp YWwgc2VjdGlvbiBvZiB0aGUgZXhlY3V0YWJsZSBmaWxlIG5hbWVkCi1JbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA2MzAvZ2RiL3NvbGliLXN2cjQuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi9zb2xpYi1zdnI0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5v cmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAK LSsrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc29saWItc3ZyNC5jCTIwMTYtMDctMDMgMTQ6 MzQ6MzIuMDMxNzUzNjU5ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIv c29saWItc3ZyNC5jCTIwMTctMDItMjQgMjI6MTg6MDIuMTc2MzkxNDAwICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3NvbGliLXN2cjQuYwkyMDE3LTAyLTI0IDIyOjMyOjM4Ljgw NDI2NDQ2OSArMDEwMAogQEAgLTQ1LDYgKzQ1LDcgQEAKICAjaW5jbHVkZSAiYXV4di5oIgogICNp bmNsdWRlICJnZGJfYmZkLmgiCkBAIC0xMzgsNyArMTM5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9zb2xpYi1zdnI0LmMKICAKICBzdGF0aWMgc3RydWN0IGxpbmtfbWFwX29m ZnNldHMgKnN2cjRfZmV0Y2hfbGlua19tYXBfb2Zmc2V0cyAodm9pZCk7CiAgc3RhdGljIGludCBz dnI0X2hhdmVfbGlua19tYXBfb2Zmc2V0cyAodm9pZCk7Ci1AQCAtMTQxNiw5ICsxNDE3LDUyIEBA CitAQCAtMTQyMCw5ICsxNDIxLDUyIEBACiAgCSAgY29udGludWU7CiAgCX0KICAKQEAgLTE5NCw0 MSArMTk1LDM3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc29saWItc3ZyNC5j CiAgICAgICAgeGZyZWUgKGJ1ZmZlcik7CiAgCiAgICAgICAgLyogSWYgdGhpcyBlbnRyeSBoYXMg bm8gbmFtZSwgb3IgaXRzIG5hbWUgbWF0Y2hlcyB0aGUgbmFtZQotSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIv ZWxmcmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIv ZWxmcmVhZC5jCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCi0rKysgZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL2VsZnJlYWQuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMTc1MzY1 OSArMDIwMAotQEAgLTEyNTksOSArMTI1OSwxMCBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3 Lm9yaWcvZ2RiL2VsZnJlYWQuYwkyMDE3LTAyLTI0IDIyOjE4OjAyLjE3NjM5MTQwMCArMDEwMAor KysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9lbGZyZWFkLmMJMjAxNy0wMi0yNCAyMjozMjoz OC44MDUyNjQ0NzYgKzAxMDAKK0BAIC0xMjY1LDggKzEyNjUsOSBAQAogIAkgICAmJiBvYmpmaWxl LT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID09IE5VTEwKICAJICAgJiYgb2JqZmlsZS0+c2VwYXJh dGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9PSBOVUxMKQogICAgICB7Ci0tICAgICAgY2hhciAq ZGVidWdmaWxlOwotKyAgICAgIGNoYXIgKmRlYnVnZmlsZSwgKmJ1aWxkX2lkX2ZpbGVuYW1lOwot IAotLSAgICAgIGRlYnVnZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9idWlsZGlk IChvYmpmaWxlKTsKLSsgICAgICBkZWJ1Z2ZpbGUgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVf YnlfYnVpbGRpZCAob2JqZmlsZSwKLSsJCQkJCQkgICAgICAgJmJ1aWxkX2lkX2ZpbGVuYW1lKTsK KysgICAgICBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFyPiBidWlsZF9pZF9maWxlbmFtZTsK KyAgICAgICBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFyPiBkZWJ1Z2ZpbGUKKy0JKGZpbmRf c2VwYXJhdGVfZGVidWdfZmlsZV9ieV9idWlsZGlkIChvYmpmaWxlKSk7CisrCShmaW5kX3NlcGFy YXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAob2JqZmlsZSwgJmJ1aWxkX2lkX2ZpbGVuYW1lKSk7 CiAgCiAgICAgICAgaWYgKGRlYnVnZmlsZSA9PSBOVUxMKQotIAlkZWJ1Z2ZpbGUgPSBmaW5kX3Nl cGFyYXRlX2RlYnVnX2ZpbGVfYnlfZGVidWdsaW5rIChvYmpmaWxlKTsKLUBAIC0xMjc1LDYgKzEy NzYsMTIgQEAKLSAJICBzeW1ib2xfZmlsZV9hZGRfc2VwYXJhdGUgKGFiZmQsIGRlYnVnZmlsZSwg c3ltZmlsZV9mbGFncywgb2JqZmlsZSk7Ci0gCSAgZG9fY2xlYW51cHMgKGNsZWFudXApOworIAlk ZWJ1Z2ZpbGUucmVzZXQgKGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9kZWJ1Z2xpbmsgKG9i amZpbGUpKTsKK0BAIC0xMjc4LDYgKzEyNzksMTAgQEAKKyAJICBzeW1ib2xfZmlsZV9hZGRfc2Vw YXJhdGUgKGFiZmQuZ2V0ICgpLCBkZWJ1Z2ZpbGUuZ2V0ICgpLAorIAkJCQkgICAgc3ltZmlsZV9m bGFncywgb2JqZmlsZSk7CiAgCX0KICsgICAgICAvKiBDaGVjayBpZiBhbnkgc2VwYXJhdGUgZGVi dWcgaW5mbyBoYXMgYmVlbiBleHRyYWN0ZWQgb3V0LiAgKi8KICsgICAgICBlbHNlIGlmIChiZmRf Z2V0X3NlY3Rpb25fYnlfbmFtZSAob2JqZmlsZS0+b2JmZCwgIi5nbnVfZGVidWdsaW5rIikKICsJ ICAgICAgICE9IE5VTEwpCi0rCWRlYnVnX3ByaW50X21pc3NpbmcgKG9iamZpbGVfbmFtZSAob2Jq ZmlsZSksIGJ1aWxkX2lkX2ZpbGVuYW1lKTsKLSsKLSsgICAgICB4ZnJlZSAoYnVpbGRfaWRfZmls ZW5hbWUpOworKwlkZWJ1Z19wcmludF9taXNzaW5nIChvYmpmaWxlX25hbWUgKG9iamZpbGUpLCBi dWlsZF9pZF9maWxlbmFtZS5nZXQgKCkpOwogICAgICB9CiAgfQogIAotSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi9zeW1maWxlLmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9n ZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9n ZGIvc3ltZmlsZS5oCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCi0rKysgZ2Ri LTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3N5bWZpbGUuaAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMjc1 MzY2OCArMDIwMAotQEAgLTU4OSw2ICs1ODksMTAgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIw Ny5vcmlnL2dkYi9zeW1maWxlLmgJMjAxNy0wMi0yNCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAK KysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvc3ltZmlsZS5oCTIwMTctMDItMjQgMjI6MzI6 MzguODA1MjY0NDc2ICswMTAwCitAQCAtNTczLDYgKzU3MywxMCBAQAogIHZvaWQgbWFwX3N5bWJv bF9maWxlbmFtZXMgKHN5bWJvbF9maWxlbmFtZV9mdHlwZSAqZnVuLCB2b2lkICpkYXRhLAogIAkJ CSAgIGludCBuZWVkX2Z1bGxuYW1lKTsKICAKQEAgLTIzOSwxMSArMjM2LDExIEBAIEluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc3ltZmlsZS5oCiAgLyogRnJvbSBkd2FyZjJyZWFkLmMg Ki8KICAKICAvKiBOYW1lcyBmb3IgYSBkd2FyZjIgZGVidWdnaW5nIHNlY3Rpb24uICBUaGUgZmll bGQgTk9STUFMIGlzIHRoZSBub3JtYWwKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv dGVzdHN1aXRlL2xpYi9nZGIuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rl c3RzdWl0ZS9saWIvZ2RiLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNjMw Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIw NTUyOCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvbGliL2dk Yi5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4wMzM3NTM2NzYgKzAyMDAKLUBAIC0xNjQxLDYgKzE2 NDEsMTYgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvbGli L2dkYi5leHAJMjAxNy0wMi0yNCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAKKysrKyBnZGItNy4x Mi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTctMDItMjQgMjI6MzI6 MzguODA2MjY0NDgzICswMTAwCitAQCAtMTY0Niw2ICsxNjQ2LDE2IEBACiAgCSAgICB3YXJuaW5n ICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgogIAl9CiAgICAgIH0KQEAgLTI2MCwxMSAr MjU3LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2xpYi9n ZGIuZXhwCiAgICAgIHJldHVybiAwCiAgfQogIAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhw CTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNi0wNy0wMyAxNDozNDoz Mi4wMzM3NTM2NzYgKzAyMDAKLUBAIC0zMDksNiArMzA5LDE2IEBAIHByb2MgZGVmYXVsdF9taV9n ZGJfc3RhcnQgeyBhcmdzIH0geworLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3Rl c3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNy0wMi0yNCAyMjoxODowMi4xNzYzOTE0MDAg KzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBw b3J0LmV4cAkyMDE3LTAyLTI0IDIyOjMyOjM4LjgwNzI2NDQ4OSArMDEwMAorQEAgLTMwOSw2ICsz MDksMTYgQEAKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCiAg CX0KICAgICAgfQpAQCAtMjgxLDkgKzI3OCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKICAKICAgICAgaWYgeyAkc2VwYXJh dGVfaW5mZXJpb3JfcHR5IH0gewogIAltaV9jcmVhdGVfaW5mZXJpb3JfcHR5Ci0tLS0gZ2RiLTcu MTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9uZXctdWktcGVuZGluZy1pbnB1 dC5leHAtb3JpZwkyMDE2LTA5LTA3IDA0OjAxOjE1LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03 LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbmV3LXVpLXBlbmRpbmctaW5w dXQuZXhwCTIwMTYtMDktMDcgMjI6MzU6MzUuODE4NTM0MDY5ICswMjAwCi1AQCAtNjIsNiArNjIs NyBAQCBwcm9jIHRlc3RfY29tbWFuZF9saW5lX25ld191aV9wZW5kaW5nX2luCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9uZXctdWktcGVuZGluZy1p bnB1dC5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvbmV3LXVpLXBlbmRpbmctaW5wdXQuZXhwCTIwMTctMDItMjQgMjI6 MTg6MDIuMTc2MzkxNDAwICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9uZXctdWktcGVuZGluZy1pbnB1dC5leHAJMjAxNy0wMi0yNCAyMjozMjoz OC44MDcyNjQ0ODkgKzAxMDAKK0BAIC02Miw2ICs2Miw3IEBACiAgICAgIHNldCBvcHRpb25zICIi CiAgICAgIGFwcGVuZCBvcHRpb25zICIgLWlleCBcInNldCBoZWlnaHQgMFwiIgogICAgICBhcHBl bmQgb3B0aW9ucyAiIC1pZXggXCJzZXQgd2lkdGggMFwiIgpAQCAtMjkxLDI1ICsyOTAsMjUgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQu ZXhwCiAgICAgIGFwcGVuZCBvcHRpb25zICIgLWlleCBcIm5ldy11aSBjb25zb2xlICRleHRyYV90 dHlfbmFtZVwiIgogICAgICBhcHBlbmQgb3B0aW9ucyAiIC1leCBcImIgJGJwbGluZVwiIgogICAg ICBhcHBlbmQgb3B0aW9ucyAiIC1leCBcInJ1blwiIgotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9vYmpmaWxlcy5oCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL29iamZp bGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9vYmpm aWxlcy5oCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCi0rKysgZ2RiLTcuMTEu NTAuMjAxNjA2MzAvZ2RiL29iamZpbGVzLmgJMjAxNi0wNy0wMyAxNDozNDozMi4wMzQ3NTM2ODUg KzAyMDAKLUBAIC00ODksNiArNDg5LDEwIEBACi0gCi0gI2RlZmluZSBPQkpGX05PVF9GSUxFTkFN RSAoMSA8PCA2KQorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL29iamZpbGVzLmgJ MjAxNy0wMi0yNCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvb2JqZmlsZXMuaAkyMDE3LTAyLTI0IDIyOjMyOjM4LjgwODI2NDQ5NiArMDEwMAor QEAgLTQ0NCw2ICs0NDQsMTAgQEAKKyAgIGh0YWJfdCBzdGF0aWNfbGlua3M7CisgfTsKICAKICsv KiBUaGlzIGZpbGUgd2FzIGxvYWRlZCBhY2NvcmRpbmcgdG8gdGhlIEJVSUxEX0lEX0NPUkVfTE9B RFMgcnVsZXMuICAqLwogKwotKyNkZWZpbmUgT0JKRl9CVUlMRF9JRF9DT1JFX0xPQURFRCAoMSA8 PCAxMikKKysjZGVmaW5lIE9CSkZfQlVJTERfSURfQ09SRV9MT0FERUQgc3RhdGljX2Nhc3Q8ZW51 bSBvYmpmaWxlX2ZsYWc+KDEgPDwgMTIpCiArCiAgLyogRGVjbGFyYXRpb25zIGZvciBmdW5jdGlv bnMgZGVmaW5lZCBpbiBvYmpmaWxlcy5jICovCiAgCi0gZXh0ZXJuIHN0cnVjdCBvYmpmaWxlICph bGxvY2F0ZV9vYmpmaWxlIChiZmQgKiwgY29uc3QgY2hhciAqbmFtZSwgaW50KTsKLUluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAor IGV4dGVybiBzdHJ1Y3Qgb2JqZmlsZSAqYWxsb2NhdGVfb2JqZmlsZSAoYmZkICosIGNvbnN0IGNo YXIgKm5hbWUsCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9jb3JlZmlsZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5v cmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTYtMDctMDMgMTQ6MzM6 MjguMTMwMjA1NTI4ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4wMzQ3NTM2ODUgKzAy MDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv Y29yZWZpbGUuZXhwCTIwMTctMDItMjQgMjI6MTg6MDIuMTc2MzkxNDAwICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAx Ny0wMi0yNCAyMjozMjozOC44MDgyNjQ0OTYgKzAxMDAKIEBAIC0yOTMsMyArMjkzLDMzIEBACiAg CXBhc3MgJHRlc3QKICAgICAgfQpAQCAtMzQ0LDEwICszNDMsMTAgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCiArICAgIGdk Yl90ZXN0ICJpbmZvIGZpbGVzIiAiTG9jYWwgZXhlYyBmaWxlOlxyXG5cWyBcdFxdKmBbc3RyaW5n X3RvX3JlZ2V4cCAkZGVidWdkaXIvJGJ1aWxkaWRdJywgZmlsZSB0eXBlIC4qIgogKyAgICBwYXNz ICR3aG9sZXRlc3QKICt9Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlk LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvYnVpbGQtaWQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNi0wNy0w MyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv YnVpbGQtaWQuYwkyMDE2LTA3LTAzIDE0OjM2OjUwLjEyNDkzODE4NyArMDIwMAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNy0wMi0yNCAyMjoxODowMi4x NzYzOTE0MDAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvYnVpbGQtaWQuYwky MDE3LTAyLTI0IDIyOjQ1OjI1LjgxNzQwMzE2MiArMDEwMAogQEAgLTI2LDExICsyNiw2NyBAQAog ICNpbmNsdWRlICJvYmpmaWxlcy5oIgogICNpbmNsdWRlICJmaWxlbmFtZXMuaCIKQEAgLTgxNyw3 ICs4MTYsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmMKICsK ICAvKiBTZWUgYnVpbGQtaWQuaC4gICovCiAgCi0gYmZkICoKKyBnZGJfYmZkX3JlZl9wdHIKIC1i dWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVfdCBidWlsZF9pZF9sZW4sIGNvbnN0IGJmZF9ieXRl ICpidWlsZF9pZCkKICtidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVfdCBidWlsZF9pZF9sZW4s IGNvbnN0IGJmZF9ieXRlICpidWlsZF9pZCwKICsJCSAgICAgICBjaGFyICoqbGlua19yZXR1cm4s IGludCBhZGRfZGVidWdfc3VmZml4KQpAQCAtODI3LDcgKzgyNiw3IEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuYwogICAgVkVDIChjaGFyX3B0cikgKmRlYnVnZGly X3ZlYzsKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgaW50IGl4OwotICAgYmZkICph YmZkID0gTlVMTDsKKyAgIGdkYl9iZmRfcmVmX3B0ciBhYmZkOwogLSAgaW50IGFsbG9jX2xlbjsK ICAKICAgIC8qIERFQlVHX0ZJTEVfRElSRUNUT1JZLy5idWlsZC1pZC9hYi9jZGVmICovCkBAIC04 NTMsNyArODUyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9idWlsZC1pZC5j CiAgCiAgICAgICAgbWVtY3B5IChsaW5rLCBkZWJ1Z2RpciwgZGVidWdkaXJfbGVuKTsKICAgICAg ICBzID0gJmxpbmtbZGVidWdkaXJfbGVuXTsKLUBAIC0xMTAsNDcgKzU0NCwyODEgQEAKK0BAIC0x MTAsNDUgKzU0NCwyOTAgQEAKICAJKnMrKyA9ICcvJzsKICAgICAgICB3aGlsZSAoc2l6ZS0tID4g MCkKICAJcyArPSBzcHJpbnRmIChzLCAiJTAyeCIsICh1bnNpZ25lZCkgKmRhdGErKyk7CkBAIC05 MDMsMzggKzkwMiwzNiBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlk LmMKICsJICBpbm5lciA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGZpbGVuYW1lKTsKICsJICBhYmZk ID0gZ2RiX2JmZF9vcGVuIChmaWxlbmFtZSwgZ251dGFyZ2V0LCAtMSk7CiArCSAgZG9fY2xlYW51 cHMgKGlubmVyKTsKKysKKysJICBpZiAoYWJmZCA9PSBOVUxMKQorKwkgICAgY29udGludWU7CiAg CiAtICAgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCiAtCWNvbnRpbnVlOwotKwkgIGlmIChhYmZk ID09IE5VTEwpCi0rCSAgICBjb250aW51ZTsKKysJICBpZiAoYnVpbGRfaWRfdmVyaWZ5IChhYmZk LmdldCgpLCBidWlsZF9pZF9sZW4sIGJ1aWxkX2lkKSkKKysJICAgIGJyZWFrOwogIAogLSAgICAg IC8qIFdlIGV4cGVjdCB0byBiZSBzaWxlbnQgb24gdGhlIG5vbi1leGlzdGluZyBmaWxlcy4gICov CiAtICAgICAgaW5uZXIgPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBmaWxlbmFtZSk7CiAtICAgICAg YWJmZCA9IGdkYl9iZmRfb3BlbiAoZmlsZW5hbWUsIGdudXRhcmdldCwgLTEpOwogLSAgICAgIGRv X2NsZWFudXBzIChpbm5lcik7Ci0rCSAgaWYgKGJ1aWxkX2lkX3ZlcmlmeSAoYWJmZCwgYnVpbGRf aWRfbGVuLCBidWlsZF9pZCkpCi0rCSAgICBicmVhazsKKysJICBhYmZkLnJlbGVhc2UgKCk7CiAg CiAtICAgICAgaWYgKGFiZmQgPT0gTlVMTCkKIC0JY29udGludWU7Ci0rCSAgZ2RiX2JmZF91bnJl ZiAoYWJmZCk7Ci0rCSAgYWJmZCA9IE5VTEw7Ci0gCi0tICAgICAgaWYgKGJ1aWxkX2lkX3Zlcmlm eSAoYWJmZCwgYnVpbGRfaWRfbGVuLCBidWlsZF9pZCkpCi0tCWJyZWFrOwogKwkgIGZpbGVuYW1l ID0gTlVMTDsKICsJfQogIAotLSAgICAgIGdkYl9iZmRfdW5yZWYgKGFiZmQpOwotLSAgICAgIGFi ZmQgPSBOVUxMOworLSAgICAgIGlmIChidWlsZF9pZF92ZXJpZnkgKGFiZmQuZ2V0KCksIGJ1aWxk X2lkX2xlbiwgYnVpbGRfaWQpKQorLQlicmVhazsKICsgICAgICBpZiAoZmlsZW5hbWUgIT0gTlVM TCkKICsJewogKwkgIC8qIExJTktfQUxMIGlzIG5vdCB1c2VkIGJlbG93IGluIHRoaXMgbm9uLU5V TEwgRklMRU5BTUUgY2FzZS4gICovCiArCSAgeGZyZWUgKGxpbmswKTsKICsJICBicmVhazsKICsJ fQotKworIAorLSAgICAgIGFiZmQucmVsZWFzZSAoKTsKICsgICAgICAvKiBJZiB0aGUgc3ltbGlu ayBoYXMgdGFyZ2V0IHJlcXVlc3QgdG8gaW5zdGFsbCB0aGUgdGFyZ2V0LgogKyAgICAgICAgIEJB U0UtZGVidWdpbmZvLnJwbSBjb250YWlucyB0aGUgc3ltbGluayBidXQgQkFTRS5ycG0gbWF5IGJl IG1pc3NpbmcuCiArICAgICAgICAgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVn LmNnaT9pZD05ODExNTQgICovCkBAIC05ODIsNyArOTc5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9idWlsZC1pZC5jCiArY2hhciAqCiArYnVpbGRfaWRfdG9fZmlsZW5hbWUg KGNvbnN0IHN0cnVjdCBiZmRfYnVpbGRfaWQgKmJ1aWxkX2lkLCBjaGFyICoqbGlua19yZXR1cm4p CiArewotKyAgYmZkICphYmZkOworKyAgZ2RiX2JmZF9yZWZfcHRyIGFiZmQ7CiArICBjaGFyICpy ZXN1bHQ7CiArICAKICsgIGFiZmQgPSBidWlsZF9pZF90b19kZWJ1Z19iZmQgKGJ1aWxkX2lkLT5z aXplLCBidWlsZF9pZC0+ZGF0YSwgbGlua19yZXR1cm4sIDApOwpAQCAtOTkwLDcgKzk4Nyw3IEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuYwogKyAgICByZXR1cm4g TlVMTDsKICsKICsgIHJlc3VsdCA9IHhzdHJkdXAgKGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpKTsK LSsgIGdkYl9iZmRfdW5yZWYgKGFiZmQpOworKyAgYWJmZC5yZWxlYXNlICgpOwogKyAgcmV0dXJu IHJlc3VsdDsKICt9CiArCkBAIC0xMTM1LDcgKzExMzIsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmMKICBjaGFyICoKIC1maW5kX3NlcGFyYXRlX2RlYnVnX2Zp bGVfYnlfYnVpbGRpZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiArZmluZF9zZXBhcmF0ZV9k ZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAotKwkJCQkgICAg IGNoYXIgKipidWlsZF9pZF9maWxlbmFtZV9yZXR1cm4pCisrCQkJZ2RiOjp1bmlxdWVfeG1hbGxv Y19wdHI8Y2hhcj4gKmJ1aWxkX2lkX2ZpbGVuYW1lX3JldHVybikKICB7CiAgICBjb25zdCBzdHJ1 Y3QgYmZkX2J1aWxkX2lkICpidWlsZF9pZDsKICAKQEAgLTExNDYsMTUgKzExNDMsMjUgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9idWlsZC1pZC5jCiArICBidWlsZF9pZCA9IGJ1 aWxkX2lkX2JmZF9zaGRyX2dldCAob2JqZmlsZS0+b2JmZCk7CiAgICBpZiAoYnVpbGRfaWQgIT0g TlVMTCkKICAgICAgewotICAgICAgIGJmZCAqYWJmZDsKLSAKLS0gICAgICBhYmZkID0gYnVpbGRf aWRfdG9fZGVidWdfYmZkIChidWlsZF9pZC0+c2l6ZSwgYnVpbGRfaWQtPmRhdGEpOwotKyAgICAg IGFiZmQgPSBidWlsZF9pZF90b19kZWJ1Z19iZmQgKGJ1aWxkX2lkLT5zaXplLCBidWlsZF9pZC0+ ZGF0YSwKLSsJCQkJICAgIGJ1aWxkX2lkX2ZpbGVuYW1lX3JldHVybiwgMSk7CisrICAgICAgY2hh ciAqYnVpbGRfaWRfZmlsZW5hbWVfY3N0ciA9IE5VTEw7CisgICAgICAgZ2RiX2JmZF9yZWZfcHRy IGFiZmQgKGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAoYnVpbGRfaWQtPnNpemUsCistCQkJCQkJICAg YnVpbGRfaWQtPmRhdGEpKTsKKysJCQkJCQkgICAgYnVpbGRfaWQtPmRhdGEsCisrCSAgICAgICgh YnVpbGRfaWRfZmlsZW5hbWVfcmV0dXJuID8gTlVMTCA6ICZidWlsZF9pZF9maWxlbmFtZV9jc3Ry KSwgMSkpOworKyAgICAgIGlmIChidWlsZF9pZF9maWxlbmFtZV9yZXR1cm4pCisrCXsKKysJICBp ZiAoIWJ1aWxkX2lkX2ZpbGVuYW1lX2NzdHIpCisrCSAgICBnZGJfYXNzZXJ0ICghKmJ1aWxkX2lk X2ZpbGVuYW1lX3JldHVybik7CisrCSAgZWxzZQorKwkgICAgeworKwkgICAgICAqYnVpbGRfaWRf ZmlsZW5hbWVfcmV0dXJuID0gZ2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4gKGJ1aWxkX2lk X2ZpbGVuYW1lX2NzdHIpOworKwkgICAgICBidWlsZF9pZF9maWxlbmFtZV9jc3RyID0gTlVMTDsK KysJICAgIH0KKysJfQogICAgICAgIC8qIFByZXZlbnQgbG9vcGluZyBvbiBhIHN0cmlwcGVkIC5k ZWJ1ZyBmaWxlLiAgKi8KICAgICAgICBpZiAoYWJmZCAhPSBOVUxMCi0gCSAgJiYgZmlsZW5hbWVf Y21wIChiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkKSwKLUBAIC0xNzAsMyArODM4LDIxIEBACisgCSAg JiYgZmlsZW5hbWVfY21wIChiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkLmdldCAoKSksCitAQCAtMTYw LDMgKzgzOSwyMSBAQAogICAgICB9CiAgICByZXR1cm4gTlVMTDsKICB9CkBAIC0xMTc2LDEzICsx MTgzLDEzIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuYwogKwog KyAgb2JzZXJ2ZXJfYXR0YWNoX2V4ZWN1dGFibGVfY2hhbmdlZCAoZGVidWdfcHJpbnRfZXhlY3V0 YWJsZV9jaGFuZ2VkKTsKICt9Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxk LWlkLmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvYnVpbGQtaWQuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2J1aWxkLWlkLmgJMjAxNi0w Ny0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9n ZGIvYnVpbGQtaWQuaAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzNTc1MzY5NCArMDIwMAotQEAgLTIw LDkgKzIwLDEwIEBACi0gI2lmbmRlZiBCVUlMRF9JRF9ICi0gI2RlZmluZSBCVUlMRF9JRF9ICist LS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvYnVpbGQtaWQuaAkyMDE3LTAyLTI0IDIy OjE4OjAyLjE3NjM5MTQwMCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9idWls ZC1pZC5oCTIwMTctMDItMjQgMjI6MzI6MzguODA5MjY0NTAzICswMTAwCitAQCAtMjIsOSArMjIs MTAgQEAKKyAKKyAjaW5jbHVkZSAiZ2RiX2JmZC5oIgogIAogLS8qIExvY2F0ZSBOVF9HTlVfQlVJ TERfSUQgZnJvbSBBQkZEIGFuZCByZXR1cm4gaXRzIGNvbnRlbnQuICAqLwogKy8qIFNlcGFyYXRl IGRlYnVnaW5mbyBmaWxlcyBoYXZlIGNvcnJ1cHRlZCBQSERSIGJ1dCBTSERSIGlzIGNvcnJlY3Qg dGhlcmUuCkBAIC0xMTkzLDEzICsxMjAwLDE0IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvYnVpbGQtaWQuaAogIAogIC8qIFJldHVybiB0cnVlIGlmIEFCRkQgaGFzIE5UX0dOVV9C VUlMRF9JRCBtYXRjaGluZyB0aGUgQ0hFQ0sgdmFsdWUuCiAgICAgT3RoZXJ3aXNlLCBpc3N1ZSBh IHdhcm5pbmcgYW5kIHJldHVybiBmYWxzZS4gICovCi1AQCAtMzYsMTMgKzM3LDE4IEBACitAQCAt MzgsMTMgKzM5LDE5IEBACiAgICAgdGhlIGNhbGxlci4gICovCiAgCi0gZXh0ZXJuIGJmZCAqYnVp bGRfaWRfdG9fZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbGVuLAotLQkJCQkgICBjb25zdCBi ZmRfYnl0ZSAqYnVpbGRfaWQpOwotKwkJCQkgICBjb25zdCBiZmRfYnl0ZSAqYnVpbGRfaWQsIGNo YXIgKipsaW5rX3JldHVybiwKLSsJCQkJICAgaW50IGFkZF9kZWJ1Z19zdWZmaXgpOworIGV4dGVy biBnZGJfYmZkX3JlZl9wdHIgYnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRf bGVuLAorLQkJCQkJICAgICAgY29uc3QgYmZkX2J5dGUgKmJ1aWxkX2lkKTsKKysJCQkJCSAgICAg IGNvbnN0IGJmZF9ieXRlICpidWlsZF9pZCwKKysJCQkJCSAgICAgIGNoYXIgKipsaW5rX3JldHVy biwKKysJCQkJCSAgICAgIGludCBhZGRfZGVidWdfc3VmZml4KTsKICsKICtleHRlcm4gY2hhciAq YnVpbGRfaWRfdG9fZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBiZmRfYnVpbGRfaWQgKmJ1aWxkX2lk LAogKwkJCQkgICBjaGFyICoqbGlua19yZXR1cm4pOwpAQCAtMTIxMSwxNCArMTIxOSwxNCBAQCBJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmgKICAKIC1leHRlcm4gY2hh ciAqZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlKTsKICtleHRlcm4gY2hhciAqZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxk aWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAotKwkJCQkJICAgICAgIGNoYXIgKipidWlsZF9p ZF9maWxlbmFtZV9yZXR1cm4pOworKwkJICAgICAgIGdkYjo6dW5pcXVlX3htYWxsb2NfcHRyPGNo YXI+ICpidWlsZF9pZF9maWxlbmFtZV9yZXR1cm4pOwogIAogICNlbmRpZiAvKiBCVUlMRF9JRF9I ICovCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNi0wNy0wMyAxNDoz MzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZHdhcmYy cmVhZC5jCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDQwNzUzNzM2ICswMjAwCi1AQCAtMjUzNSw3ICsy NTM1LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJ MjAxNy0wMi0yNCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvZHdhcmYycmVhZC5jCTIwMTctMDItMjQgMjI6MzI6MzguODE0MjY0NTM2ICswMTAw CitAQCAtMjUzNCw3ICsyNTM0LDcgQEAKICAgICAgfQogIAogICAgaWYgKGR3el9iZmQgPT0gTlVM TCkKQEAgLTEyMjcsMTAgKzEyMzUsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9kd2FyZjJyZWFkLmMKICAKICAgIGlmIChkd3pfYmZkID09IE5VTEwpCiAgICAgIGVycm9yIChf KCJjb3VsZCBub3QgZmluZCAnLmdudV9kZWJ1Z2FsdGxpbmsnIGZpbGUgZm9yICVzIiksCi1JbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMKK0luZGV4OiBn ZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMJMjAx Ni0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjA0MDc1MzczNiAr MDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3B5dGhvbi9weS1vYmpmaWxl LmMJMjAxNy0wMi0yNCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4y MDE3MDIwNy9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwkyMDE3LTAyLTI0IDIyOjMyOjM4LjgxNDI2 NDUzNiArMDEwMAogQEAgLTEzNiw3ICsxMzYsNyBAQAogIAogICAgVFJZCkBAIC0xMjQwLDcgKzEy NDgsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weS1vYmpmaWxl LmMKICAgICAgfQogICAgQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQogICAgICB7Ci1A QCAtNTQ3LDcgKzU0Nyw3IEBACitAQCAtNTQ2LDcgKzU0Niw3IEBACiAgICAgICAgLyogRG9uJ3Qg cmV0dXJuIHNlcGFyYXRlIGRlYnVnIGZpbGVzLiAgKi8KICAgICAgICBpZiAob2JqZmlsZS0+c2Vw YXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayAhPSBOVUxMKQogIAljb250aW51ZTsKQEAgLTEy NDksMTEgKzEyNTcsMTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24v cHktb2JqZmlsZS5jCiAgICAgICAgaWYgKG9iZmRfYnVpbGRfaWQgPT0gTlVMTCkKICAJY29udGlu dWU7CiAgICAgICAgaWYgKG9iamZweV9idWlsZF9pZF9tYXRjaGVzIChvYmZkX2J1aWxkX2lkLCBi dWlsZF9pZCkpCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2NvZmZyZWFkLmMKK0lu ZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvY29mZnJlYWQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvZmZyZWFkLmMJMjAxNi0wNy0wMyAxNDoz MzoyOC4xMzAyMDU1MjggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29mZnJl YWQuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjA0MTc1Mzc0NSArMDIwMAotQEAgLTczNyw3ICs3Mzcs NyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2NvZmZyZWFkLmMJMjAxNy0w Mi0yNCAyMjoxODowMi4xNzYzOTE0MDAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9n ZGIvY29mZnJlYWQuYwkyMDE3LTAyLTI0IDIyOjMyOjM4LjgxNTI2NDU0MyArMDEwMAorQEAgLTcz NCw3ICs3MzQsNyBAQAogICAgICB7CiAgICAgICAgY2hhciAqZGVidWdmaWxlOwogIAoKZGlmZiAt LWdpdCBhL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1pcy1kZWZhdWx0LnBhdGNoIGIv Z2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLWlzLWRlZmF1bHQucGF0Y2gKaW5kZXggOWE4 ZWM0NS4uYWQ5ZjY0MyAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVw LWlzLWRlZmF1bHQucGF0Y2gKKysrIGIvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLWlz LWRlZmF1bHQucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5 MDQvZ2RiL2luZnJ1bi5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2luZnJ1bi5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA5MDQub3JpZy9nZGIvaW5mcnVuLmMJ MjAxNi0wOS0wNCAxNzo1NzoxMi43MzM4NTM4NDggKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2 MDkwNC9nZGIvaW5mcnVuLmMJMjAxNi0wOS0wNCAxNzo1Nzo0NS41NjgxNDUzOTEgKzAyMDAKKy0t LSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9pbmZydW4uYwkyMDE3LTAyLTA3IDIxOjA3 OjQwLjMyMTIwMjQ0OCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9pbmZydW4u YwkyMDE3LTAyLTA3IDIxOjA3OjQyLjY4MDIyMDM2NSArMDEwMAogQEAgLTIyMTgsNyArMjIxOCw3 IEBACiAgICBzY2hlZGxvY2tfcmVwbGF5LAogICAgTlVMTApAQCAtMTEsMTAgKzExLDEwIEBAIElu ZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNC9nZGIvaW5mcnVuLmMKICBzdGF0aWMgdm9pZAogIHNo b3dfc2NoZWR1bGVyX21vZGUgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCiAg CQkgICAgIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjLCBjb25zdCBjaGFyICp2YWx1ZSkKLUlu ZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jbGkuZXhw CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY2xp LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjkwLjIwMTYwOTA0Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvbWktY2xpLmV4cAkyMDE2LTA5LTA0IDE3OjU3OjEyLjczMzg1Mzg0OCArMDIw MAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA0L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5l eHAJMjAxNi0wOS0wNCAxNzo1Nzo0NS41NjkxNDUzOTkgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4y MDE3MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5leHAJMjAxNy0wMi0wNyAy MTowNzo0MC4zMjIyMDI0NTUgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVz dHN1aXRlL2dkYi5taS9taS1jbGkuZXhwCTIwMTctMDItMDcgMjE6MDc6NDIuNjgwMjIwMzY1ICsw MTAwCiBAQCAtMTk5LDcgKzE5OSw3IEBACiAgIyBUZXN0IHRoYXQgdGhlIHRva2VuIGlzIG91dHB1 dCBldmVuIGZvciBDTEkgY29tbWFuZHMKICAjIEFsc28gdGVzdCB0aGF0ICpzdG9wcGVkIGluY2x1 ZGVzIGZyYW1lIGluZm9ybWF0aW9uLgpAQCAtMjQsMzIgKzI0LDMyIEBAIEluZGV4OiBnZGItNy4x MS45MC4yMDE2MDkwNC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jbGkuZXhwCiAgICAgICIzNCBu ZXh0OiBydW4iCiAgCiAgIyBUZXN0IHRoYXQgdGhlIG5ldyBjdXJyZW50IHNvdXJjZSBsaW5lIGlz IG91dHB1dCB0byB0aGUgY29uc29sZQotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA0L2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pLWxvZ2dpbmcuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktbG9nZ2luZy5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMS45MC4yMDE2MDkwNC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWxvZ2dpbmcu ZXhwCTIwMTYtMDktMDQgMTc6NTc6MTIuNzMzODUzODQ4ICswMjAwCi0rKysgZ2RiLTcuMTEuOTAu MjAxNjA5MDQvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktbG9nZ2luZy5leHAJMjAxNi0wOS0wNCAx Nzo1Nzo0NS41NjkxNDUzOTkgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dk Yi90ZXN0c3VpdGUvZ2RiLm1pL21pLWxvZ2dpbmcuZXhwCTIwMTctMDItMDcgMjE6MDc6NDIuNjgx MjIwMzcyICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktbG9nZ2luZy5leHAJMjAxNy0wMi0wNyAyMTowOTozNi45NTAwODgyNjkgKzAxMDAKIEBA IC01Myw3ICs1Myw3IEBACiAgCiAgc2V0IG1pX2xvZ19wcm9tcHQgIlxbKFxdZ2RiXFspXF0gXFtc clxuXF0rIgogIAogLWlmIFtyZWdleHAgIlxcXmRvbmVcW1xyXG5cXSskbWlfbG9nX3Byb21wdFxc XnJ1bm5pbmdcW1xyXG5cXStcXCpydW5uaW5nLHRocmVhZC1pZD1cImFsbFwiXFtcclxuXF0rJG1p X2xvZ19wcm9tcHRcXCpzdG9wcGVkLHJlYXNvbj1cImVuZC1zdGVwcGluZy1yYW5nZVwiLC4qXFtc clxuXF0rJG1pX2xvZ19wcm9tcHRcXF5ydW5uaW5nXFtcclxuXF0rXFwqcnVubmluZyx0aHJlYWQt aWQ9XCJhbGxcIlxbXHJcblxdKyRtaV9sb2dfcHJvbXB0XFwqc3RvcHBlZCxyZWFzb249XCJlbmQt c3RlcHBpbmctcmFuZ2VcIiwuKlxbXHJcblxdKyRtaV9sb2dfcHJvbXB0IiAkbG9nY29udGVudF0g ewogK2lmIFtyZWdleHAgIlxcXmRvbmVcW1xyXG5cXSskbWlfbG9nX3Byb21wdFxcXnJ1bm5pbmdc W1xyXG5cXStcXCpydW5uaW5nLHRocmVhZC1pZD1cIjFcIlxbXHJcblxdKyRtaV9sb2dfcHJvbXB0 XFwqc3RvcHBlZCxyZWFzb249XCJlbmQtc3RlcHBpbmctcmFuZ2VcIiwuKlxbXHJcblxdKyRtaV9s b2dfcHJvbXB0XFxecnVubmluZ1xbXHJcblxdK1xcKnJ1bm5pbmcsdGhyZWFkLWlkPVwiMVwiXFtc clxuXF0rJG1pX2xvZ19wcm9tcHRcXCpzdG9wcGVkLHJlYXNvbj1cImVuZC1zdGVwcGluZy1yYW5n ZVwiLC4qXFtcclxuXF0rJG1pX2xvZ19wcm9tcHQiICRsb2djb250ZW50XSB7Ci0gICAgIHBhc3Mg IkxvZyBmaWxlIGNvbnRlbnRzIgorICAgICBwYXNzICJsb2cgZmlsZSBjb250ZW50cyIKICB9IGVs c2UgewotICAgICBmYWlsICJMb2cgZmlsZSBjb250ZW50cyIKKyAgICAgZmFpbCAibG9nIGZpbGUg Y29udGVudHMiCiBAQCAtNzYsNyArNzYsNyBAQAogIHNldCBsb2djb250ZW50IFtyZWFkICRjaGFu XQogIGNsb3NlICRjaGFuCiAgCiAtaWYgW3JlZ2V4cCAiMTAwMVxcXmRvbmVcW1xyXG5cXSskbWlf bG9nX3Byb21wdC4qMTAwMlxcXnJ1bm5pbmdcW1xyXG5cXStcXCpydW5uaW5nLHRocmVhZC1pZD1c ImFsbFwiXFtcclxuXF0rJG1pX2xvZ19wcm9tcHRcXCpzdG9wcGVkLHJlYXNvbj1cImVuZC1zdGVw cGluZy1yYW5nZVwiLC4qXFtcclxuXF0rJG1pX2xvZ19wcm9tcHQuKjEwMDNcXF5ydW5uaW5nXFtc clxuXF0rXFwqcnVubmluZyx0aHJlYWQtaWQ9XCJhbGxcIlxbXHJcblxdKyRtaV9sb2dfcHJvbXB0 XFwqc3RvcHBlZCxyZWFzb249XCJlbmQtc3RlcHBpbmctcmFuZ2VcIiwuKlxbXHJcblxdKyRtaV9s b2dfcHJvbXB0IiAkbG9nY29udGVudF0gewogK2lmIFtyZWdleHAgIjEwMDFcXF5kb25lXFtcclxu XF0rJG1pX2xvZ19wcm9tcHQuKjEwMDJcXF5ydW5uaW5nXFtcclxuXF0rXFwqcnVubmluZyx0aHJl YWQtaWQ9XCIxXCJcW1xyXG5cXSskbWlfbG9nX3Byb21wdFxcKnN0b3BwZWQscmVhc29uPVwiZW5k LXN0ZXBwaW5nLXJhbmdlXCIsLipcW1xyXG5cXSskbWlfbG9nX3Byb21wdC4qMTAwM1xcXnJ1bm5p bmdcW1xyXG5cXStcXCpydW5uaW5nLHRocmVhZC1pZD1cIjFcIlxbXHJcblxdKyRtaV9sb2dfcHJv bXB0XFwqc3RvcHBlZCxyZWFzb249XCJlbmQtc3RlcHBpbmctcmFuZ2VcIiwuKlxbXHJcblxdKyRt aV9sb2dfcHJvbXB0IiAkbG9nY29udGVudF0gewotICAgICBwYXNzICJSZWRpcmVjdCBsb2cgZmls ZSBjb250ZW50cyIKKyAgICAgcGFzcyAicmVkaXJlY3QgbG9nIGZpbGUgY29udGVudHMiCiAgfSBl bHNlIHsKLSAgICAgZmFpbCAiUmVkaXJlY3QgbG9nIGZpbGUgY29udGVudHMiCi1JbmRleDogZ2Ri LTcuMTEuOTAuMjAxNjA5MDQvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY29uc29sZS5leHAKKyAg ICAgZmFpbCAicmVkaXJlY3QgbG9nIGZpbGUgY29udGVudHMiCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY29uc29sZS5leHAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS45MC4yMDE2MDkwNC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNv bnNvbGUuZXhwCTIwMTYtMDktMDQgMTc6NTc6MTIuNzMzODUzODQ4ICswMjAwCi0rKysgZ2RiLTcu MTEuOTAuMjAxNjA5MDQvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY29uc29sZS5leHAJMjAxNi0w OS0wNCAxNzo1Nzo0NS41NjkxNDUzOTkgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5v cmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNvbnNvbGUuZXhwCTIwMTctMDItMDcgMjE6MDc6 NDAuMzIzMjAyNDYzICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0 ZS9nZGIubWkvbWktY29uc29sZS5leHAJMjAxNy0wMi0wNyAyMTowNzo0Mi42ODEyMjAzNzIgKzAx MDAKIEBAIC02MCw2ICs2MCw5IEBACiAgCiAgbWlfcnVuX3RvX21haW4KQEAgLTYwLDEwICs2MCwx MCBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDQvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkt Y29uc29sZS5leHAKICAjIFRoZSBvdXRwdXQgd2UgZ2V0IGZyb20gdGhlIHRhcmdldCBkZXBlbmRz IG9uIGhvdyBpdCBpcyBob3N0ZWQuICBJZgogICMgd2UgYXJlIHNlbWlob3N0ZWQgKGUuZy4sIHRo ZSBzaW0gb3IgYSByZW1vdGUgdGFyZ2V0IHRoYXQgc3VwcG9ydHMKICAjIHRoZSBGaWxlIEkvTyBy ZW1vdGUgcHJvdG9jb2wgZXh0ZW5zaW9uKSwgd2Ugc2VlIHRoZSB0YXJnZXQgSS9PCi1JbmRleDog Z2RiLTcuMTEuOTAuMjAxNjA5MDQvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4 cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxp bmUtY21kcy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDkwNC5vcmlnL2dk Yi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5leHAJMjAxNi0wOS0wNCAxNzo1OTo0NC42 MDAyMDIyOTkgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNC9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvaW5saW5lLWNtZHMuZXhwCTIwMTYtMDktMDQgMTg6MDA6MDQuNjE2MzgwMDI3ICswMjAw CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5s aW5lLWNtZHMuZXhwCTIwMTctMDItMDcgMjE6MDc6NDAuMzIzMjAyNDYzICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAky MDE3LTAyLTA3IDIxOjA3OjQyLjY4MTIyMDM3MiArMDEwMAogQEAgLTMzMSw3ICszMzEsNyBAQAog IAogICAgICBzZW5kX2dkYiAiaW50ZXJwcmV0ZXItZXhlYyBjb25zb2xlIFwic3RlcFwiXG4iCgpk aWZmIC0tZ2l0IGEvZ2RiLTYuNi10aHJlYWRzLXN0YXRpYy10ZXN0LnBhdGNoIGIvZ2RiLTYuNi10 aHJlYWRzLXN0YXRpYy10ZXN0LnBhdGNoCmluZGV4IDNmOGQxNmUuLmRiOGM3ZGMgMTAwNjQ0Ci0t LSBhL2dkYi02LjYtdGhyZWFkcy1zdGF0aWMtdGVzdC5wYXRjaAorKysgYi9nZGItNi42LXRocmVh ZHMtc3RhdGljLXRlc3QucGF0Y2gKQEAgLTEsOCArMSw4IEBACi1JbmRleDogZ2RiLTcuNC41MC4y MDExMTIxOS9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3N0YXRpY3RocmVhZHMuZXhwCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zdGF0aWN0 aHJlYWRzLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMTEyMTkub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi50aHJlYWRzL3N0YXRpY3RocmVhZHMuZXhwCTIwMTEtMTItMTkgMjE6MDc6 MDEuNDM2NDc1MjAxICswMTAwCi0rKysgZ2RiLTcuNC41MC4yMDExMTIxOS9nZGIvdGVzdHN1aXRl L2dkYi50aHJlYWRzL3N0YXRpY3RocmVhZHMuZXhwCTIwMTEtMTItMTkgMjI6MDg6NTUuNDQ0NTE0 MTI3ICswMTAwCi1AQCAtNDUsNiArNDUsMTMgQEAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcHJp bnQgc2V2ZW5iaXQtcworLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9nZGIudGhyZWFkcy9zdGF0aWN0aHJlYWRzLmV4cAkyMDE3LTAyLTI2IDE3OjI0OjQ4LjM5MjMx NjA0NSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLnRo cmVhZHMvc3RhdGljdGhyZWFkcy5leHAJMjAxNy0wMi0yNiAxNzoyNTozOC42NDk2Nzc1OTUgKzAx MDAKK0BAIC00MSw2ICs0MSwxMyBAQAogICMgU2VlIGlmIHRoZSBzdGF0aWMgbXVsdGktdGhyZWFk ZWQgcHJvZ3JhbSBydW5zLgogIAogIHJ1bnRvX21haW4KQEAgLTE0LDUgKzE0LDUgQEAgSW5kZXg6 IGdkYi03LjQuNTAuMjAxMTEyMTkvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zdGF0aWN0aHJl YWRzLmV4cAogK2dkYl90ZXN0ICJpbmZvIHRocmVhZHMiICJeaW5mbyB0aHJlYWRzXHJcblxbIFx0 XF0qSWRcWyBcdFxdK1RhcmdldCBJZFxbIFx0XF0rRnJhbWVcWyBcdFxdKlxyXG5cW15cclxuXF0q IFRocmVhZCBcW15cclxuXF0qIiAiaW5mbyB0aHJlYWRzIG9uIHN0YXJ0IgogKwogIGdkYl90ZXN0 ICJicmVhayBzZW1fcG9zdCIKLSBzZXQgdGVzdCAiQ29udGludWUgdG8gbWFpbidzIGNhbGwgb2Yg c2VtX3Bvc3QiCisgc2V0IHRlc3QgImNvbnRpbnVlIHRvIG1haW4ncyBjYWxsIG9mIHNlbV9wb3N0 IgogIGdkYl90ZXN0X211bHRpcGxlICJjb250aW51ZSIgIiR0ZXN0IiB7CgpkaWZmIC0tZ2l0IGEv Z2RiLTYuNy1iejQyNjYwMC1EV19UQUdfaW50ZXJmYWNlX3R5cGUtdGVzdC5wYXRjaCBiL2dkYi02 LjctYno0MjY2MDAtRFdfVEFHX2ludGVyZmFjZV90eXBlLXRlc3QucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDE2ZjcxNjUuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuNy1iejQyNjYw MC1EV19UQUdfaW50ZXJmYWNlX3R5cGUtdGVzdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDcw NyArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAwNy0xMi9t c2cwMDM5Ny5odG1sCi0KLTIwMDctMTItMjIgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4KLQotCSogZ2RiLmFyY2gvaTM4Ni1pbnRlcmZhY2UuUywgZ2RiLmFyY2gv aTM4Ni1pbnRlcmZhY2UuZXhwOiBOZXcgZmlsZXMuCi0KLTIwMDgtMDMtMDIgIEphbiBLcmF0b2No dmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCSogZ2RiLmFyY2gvaTM4Ni1pbnRl cmZhY2UuZXhwOiBGaXggYSB0ZXN0Y2FzZSByYWNlLgotCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LWludGVyZmFjZS5TCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LWludGVyZmFj ZS5TCTIwMTYtMDItMTUgMjM6MjM6MDMuMzE4NTAyMzU3ICswMTAwCi1AQCAtMCwwICsxLDYyOCBA QAotKy8qIENvcHlyaWdodCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwot KyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK LSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyAgIFBsZWFzZSBlbWFp bCBhbnkgYnVncywgY29tbWVudHMsIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhpcyBmaWxlIHRvOgot KyAgIGJ1Zy1nZGJAZ251Lm9yZwotKwotKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBnZGIg dGVzdHN1aXRlLgotKwotKyAgIFRoaXMgZmlsZSB3YXMgcHJvZHVjZWQgYnk6Ci0rICAgJCBnY2og LVMgaW50ZXJmYWNlLmphdmEgLWdnZGIyIC1XYWxsIC1tMzIKLSsgICBmcm9tIHRoZSAuamF2YSBm aWxlOgotKyAgICAgaW50ZXJmYWNlIEludGVyZmFjZQotKyAgICAgewotKyAgICAgfQotKyAgICAg Y2xhc3MgQ2xhc3MgaW1wbGVtZW50cyBJbnRlcmZhY2UKLSsgICAgIHsgIAotKyAgICAgfQotKyov Ci0rCi0rCS5maWxlCSJjYzI4UHAyQi5qYXIiCi0rCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIs QHByb2diaXRzCi0rLkxkZWJ1Z19hYmJyZXYwOgotKwkuc2VjdGlvbgkuZGVidWdfaW5mbywiIixA cHJvZ2JpdHMKLSsuTGRlYnVnX2luZm8wOgotKwkuc2VjdGlvbgkuZGVidWdfbGluZSwiIixAcHJv Z2JpdHMKLSsuTGRlYnVnX2xpbmUwOgotKwkudGV4dAotKy5MdGV4dDA6Ci0rCS5sb2NhbAlfTVRf SW50ZXJmYWNlCi0rCS5jb21tCV9NVF9JbnRlcmZhY2UsMCw0Ci0rCS5kYXRhCi0rCS5hbGlnbiA0 Ci0rCS50eXBlCV9jYXRjaF9jbGFzc2VzX0ludGVyZmFjZSwgQG9iamVjdAotKwkuc2l6ZQlfY2F0 Y2hfY2xhc3Nlc19JbnRlcmZhY2UsIDI0Ci0rX2NhdGNoX2NsYXNzZXNfSW50ZXJmYWNlOgotKwku emVybwkyNAotKwkuc2VjdGlvbgkucm9kYXRhCi0rCS5hbGlnbiAyCi0rCS50eXBlCV9VdGYxLCBA b2JqZWN0Ci0rCS5zaXplCV9VdGYxLCA0Ci0rX1V0ZjE6Ci0rCS52YWx1ZQkzNjEyMQotKwkudmFs dWUJOQotKwkuYXNjaWkJIkludGVyZmFjZSIKLSsJLnplcm8JMQotKy5nbG9ibCBfWk45SW50ZXJm YWNlNmNsYXNzJEUKLSsJLmRhdGEKLSsJLmFsaWduIDMyCi0rCS50eXBlCV9aTjlJbnRlcmZhY2U2 Y2xhc3MkRSwgQG9iamVjdAotKwkuc2l6ZQlfWk45SW50ZXJmYWNlNmNsYXNzJEUsIDE0NAotK19a TjlJbnRlcmZhY2U2Y2xhc3MkRToKLSsJLmxvbmcJX1pUVk40amF2YTRsYW5nNUNsYXNzRSs4Ci0r CS5sb25nCTQwMzAwMAotKwkubG9uZwlfVXRmMQotKwkudmFsdWUJMTUzNgotKwkuemVybwkyCi0r CS5sb25nCTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJX01UX0lu dGVyZmFjZQotKwkudmFsdWUJMAotKwkudmFsdWUJNgotKwkubG9uZwkwCi0rCS5sb25nCTQKLSsJ LnZhbHVlCTAKLSsJLnZhbHVlCTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJ LmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwkubG9uZwlfY2F0Y2hf Y2xhc3Nlc19JbnRlcmZhY2UKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS52YWx1ZQkwCi0rCS5i eXRlCTEKLSsJLnplcm8JMQotKwkubG9uZwkwCi0rCS52YWx1ZQkwCi0rCS56ZXJvCTIKLSsJLmxv bmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25n CTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwkuaGlkZGVu CV9aTjlJbnRlcmZhY2U3Y2xhc3MkJEUKLSsuZ2xvYmwgX1pOOUludGVyZmFjZTdjbGFzcyQkRQot Kwkuc2VjdGlvbgkucm9kYXRhCi0rCS5hbGlnbiA0Ci0rCS50eXBlCV9aTjlJbnRlcmZhY2U3Y2xh c3MkJEUsIEBvYmplY3QKLSsJLnNpemUJX1pOOUludGVyZmFjZTdjbGFzcyQkRSwgNAotK19aTjlJ bnRlcmZhY2U3Y2xhc3MkJEU6Ci0rCS5sb25nCV9aTjlJbnRlcmZhY2U2Y2xhc3MkRQotKwkudGV4 dAotKwkuYWxpZ24gMgotKy5nbG9ibCBfWk41Q2xhc3NDMUV2Ci0rCS50eXBlCV9aTjVDbGFzc0Mx RXYsIEBmdW5jdGlvbgotK19aTjVDbGFzc0MxRXY6Ci0rLkxGQjI6Ci0rCXB1c2hsCSVlYnAKLSsu TENGSTA6Ci0rCW1vdmwJJWVzcCwgJWVicAotKy5MQ0ZJMToKLSsJc3VibAkkMjQsICVlc3AKLSsu TENGSTI6Ci0rLkxCQjI6Ci0rI2lmIDAKLSsJLmZpbGUgMSAiaW50ZXJmYWNlLmphdmEiCi0rI2Vs c2UKLSsJLmZpbGUgImludGVyZmFjZS5qYXZhIgotKyNlbmRpZgotKwkubG9jIDEgNCAwCi0rCW1v dmwJOCglZWJwKSwgJWVheAotKwltb3ZsCSVlYXgsIC00KCVlYnApCi0rCW1vdmwJLTQoJWVicCks ICVlYXgKLSsJbW92bAklZWF4LCAoJWVzcCkKLSsJY2FsbAlfWk40amF2YTRsYW5nNk9iamVjdEMx RXYKLSsuTEJFMjoKLSsJbGVhdmUKLSsJcmV0Ci0rLkxGRTI6Ci0rCS5zaXplCV9aTjVDbGFzc0Mx RXYsIC4tX1pONUNsYXNzQzFFdgotKwkuaGlkZGVuCV9aVFZONUNsYXNzRQotKy5nbG9ibCBfWlRW TjVDbGFzc0UKLSsJLmRhdGEKLSsJLmFsaWduIDMyCi0rCS50eXBlCV9aVFZONUNsYXNzRSwgQG9i amVjdAotKwkuc2l6ZQlfWlRWTjVDbGFzc0UsIDQwCi0rX1pUVk41Q2xhc3NFOgotKwkubG9uZwkw Ci0rCS5sb25nCTAKLSsJLmxvbmcJX1pONUNsYXNzNmNsYXNzJEUKLSsJLmxvbmcJNAotKwkubG9u ZwlfWk40amF2YTRsYW5nNk9iamVjdDhmaW5hbGl6ZUVKdnYKLSsJLmxvbmcJX1pONGphdmE0bGFu ZzZPYmplY3Q4aGFzaENvZGVFSml2Ci0rCS5sb25nCV9aTjRqYXZhNGxhbmc2T2JqZWN0NmVxdWFs c0VKYlBTMV8KLSsJLmxvbmcJX1pONGphdmE0bGFuZzZPYmplY3Q4dG9TdHJpbmdFSlBOUzBfNlN0 cmluZ0V2Ci0rCS5sb25nCV9aTjRqYXZhNGxhbmc2T2JqZWN0NWNsb25lRUpQUzFfdgotKwkubG9u ZwlfWk40amF2YTRsYW5nNk9iamVjdDIydGhyb3dOb1N1Y2hNZXRob2RFcnJvckVKdnYKLSsJLnNl dAkuTF9aTjVDbGFzc0MxRXYwLF9aTjVDbGFzc0MxRXYKLSsJLnNlY3Rpb24JLnJvZGF0YQotKwku YWxpZ24gMgotKwkudHlwZQlfVXRmMiwgQG9iamVjdAotKwkuc2l6ZQlfVXRmMiwgNAotK19VdGYy OgotKwkudmFsdWUJNjI2Ci0rCS52YWx1ZQk2Ci0rCS5hc2NpaQkiPGluaXQ+IgotKwkuemVybwkx Ci0rCS5hbGlnbiAyCi0rCS50eXBlCV9VdGYzLCBAb2JqZWN0Ci0rCS5zaXplCV9VdGYzLCA0Ci0r X1V0ZjM6Ci0rCS52YWx1ZQkzOTc5NwotKwkudmFsdWUJMwotKwkuYXNjaWkJIigpViIKLSsJLnpl cm8JMQotKwkuZGF0YQotKwkuYWxpZ24gNAotKwkudHlwZQlfTVRfQ2xhc3MsIEBvYmplY3QKLSsJ LnNpemUJX01UX0NsYXNzLCAyMAotK19NVF9DbGFzczoKLSsJLmxvbmcJX1V0ZjIKLSsJLmxvbmcJ X1V0ZjMKLSsJLnZhbHVlCTE2Mzg0Ci0rCS52YWx1ZQktMQotKwkubG9uZwkuTF9aTjVDbGFzc0Mx RXYwCi0rCS5sb25nCTAKLSsJLmFsaWduIDQKLSsJLnR5cGUJX0lGX0NsYXNzLCBAb2JqZWN0Ci0r CS5zaXplCV9JRl9DbGFzcywgNAotK19JRl9DbGFzczoKLSsJLmxvbmcJX1pOOUludGVyZmFjZTZj bGFzcyRFCi0rCS5hbGlnbiA0Ci0rCS50eXBlCV9jYXRjaF9jbGFzc2VzX0NsYXNzLCBAb2JqZWN0 Ci0rCS5zaXplCV9jYXRjaF9jbGFzc2VzX0NsYXNzLCAyNAotK19jYXRjaF9jbGFzc2VzX0NsYXNz OgotKwkuemVybwkyNAotKwkuc2VjdGlvbgkucm9kYXRhCi0rCS5hbGlnbiAyCi0rCS50eXBlCV9V dGY0LCBAb2JqZWN0Ci0rCS5zaXplCV9VdGY0LCA0Ci0rX1V0ZjQ6Ci0rCS52YWx1ZQk0NzQ0OAot KwkudmFsdWUJNQotKwkuYXNjaWkJIkNsYXNzIgotKwkuemVybwkxCi0rLmdsb2JsIF9aTjVDbGFz czZjbGFzcyRFCi0rCS5kYXRhCi0rCS5hbGlnbiAzMgotKwkudHlwZQlfWk41Q2xhc3M2Y2xhc3Mk RSwgQG9iamVjdAotKwkuc2l6ZQlfWk41Q2xhc3M2Y2xhc3MkRSwgMTQ0Ci0rX1pONUNsYXNzNmNs YXNzJEU6Ci0rCS5sb25nCV9aVFZONGphdmE0bGFuZzVDbGFzc0UrOAotKwkubG9uZwk0MDMwMDAK LSsJLmxvbmcJX1V0ZjQKLSsJLnZhbHVlCTMyCi0rCS56ZXJvCTIKLSsJLmxvbmcJX1pONGphdmE0 bGFuZzZPYmplY3Q2Y2xhc3MkRQotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwku bG9uZwlfTVRfQ2xhc3MKLSsJLnZhbHVlCTEKLSsJLnZhbHVlCTYKLSsJLmxvbmcJMAotKwkubG9u Zwk0Ci0rCS52YWx1ZQkwCi0rCS52YWx1ZQkwCi0rCS5sb25nCV9aVFZONUNsYXNzRSs4Ci0rCS5s b25nCTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwkubG9u ZwkwCi0rCS5sb25nCV9jYXRjaF9jbGFzc2VzX0NsYXNzCi0rCS5sb25nCV9JRl9DbGFzcwotKwku bG9uZwkwCi0rCS52YWx1ZQkxCi0rCS5ieXRlCTEKLSsJLnplcm8JMQotKwkubG9uZwkwCi0rCS52 YWx1ZQkwCi0rCS56ZXJvCTIKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxv bmcJMAotKwkubG9uZwkwCi0rCS5sb25nCTAKLSsJLmxvbmcJMAotKwkubG9uZwkwCi0rCS5sb25n CTAKLSsJLmxvbmcJMAotKwkuaGlkZGVuCV9aTjVDbGFzczdjbGFzcyQkRQotKy5nbG9ibCBfWk41 Q2xhc3M3Y2xhc3MkJEUKLSsJLnNlY3Rpb24JLnJvZGF0YQotKwkuYWxpZ24gNAotKwkudHlwZQlf Wk41Q2xhc3M3Y2xhc3MkJEUsIEBvYmplY3QKLSsJLnNpemUJX1pONUNsYXNzN2NsYXNzJCRFLCA0 Ci0rX1pONUNsYXNzN2NsYXNzJCRFOgotKwkubG9uZwlfWk41Q2xhc3M2Y2xhc3MkRQotKwkuc2Vj dGlvbgkuamNyLCJhdyIsQHByb2diaXRzCi0rCS5hbGlnbiA0Ci0rCS5sb25nCV9aTjlJbnRlcmZh Y2U2Y2xhc3MkRQotKwkubG9uZwlfWk41Q2xhc3M2Y2xhc3MkRQotKwkuc2VjdGlvbgkuZGVidWdf ZnJhbWUsIiIsQHByb2diaXRzCi0rLkxmcmFtZTA6Ci0rCS5sb25nCS5MRUNJRTAtLkxTQ0lFMAot Ky5MU0NJRTA6Ci0rCS5sb25nCTB4ZmZmZmZmZmYKLSsJLmJ5dGUJMHgxCi0rCS5zdHJpbmcJIiIK LSsJLnVsZWIxMjggMHgxCi0rCS5zbGViMTI4IC00Ci0rCS5ieXRlCTB4OAotKwkuYnl0ZQkweGMK LSsJLnVsZWIxMjggMHg0Ci0rCS51bGViMTI4IDB4NAotKwkuYnl0ZQkweDg4Ci0rCS51bGViMTI4 IDB4MQotKwkuYWxpZ24gNAotKy5MRUNJRTA6Ci0rLkxTRkRFMDoKLSsJLmxvbmcJLkxFRkRFMC0u TEFTRkRFMAotKy5MQVNGREUwOgotKwkubG9uZwkuTGZyYW1lMAotKwkubG9uZwkuTEZCMgotKwku bG9uZwkuTEZFMi0uTEZCMgotKwkuYnl0ZQkweDQKLSsJLmxvbmcJLkxDRkkwLS5MRkIyCi0rCS5i eXRlCTB4ZQotKwkudWxlYjEyOCAweDgKLSsJLmJ5dGUJMHg4NQotKwkudWxlYjEyOCAweDIKLSsJ LmJ5dGUJMHg0Ci0rCS5sb25nCS5MQ0ZJMS0uTENGSTAKLSsJLmJ5dGUJMHhkCi0rCS51bGViMTI4 IDB4NQotKwkuYWxpZ24gNAotKy5MRUZERTA6Ci0rCS5zZWN0aW9uCS5laF9mcmFtZSwiYSIsQHBy b2diaXRzCi0rLkxmcmFtZTE6Ci0rCS5sb25nCS5MRUNJRTEtLkxTQ0lFMQotKy5MU0NJRTE6Ci0r CS5sb25nCTB4MAotKwkuYnl0ZQkweDEKLSsuZ2xvYmwgX19nY2pfcGVyc29uYWxpdHlfdjAKLSsJ LnN0cmluZwkielAiCi0rCS51bGViMTI4IDB4MQotKwkuc2xlYjEyOCAtNAotKwkuYnl0ZQkweDgK LSsJLnVsZWIxMjggMHg1Ci0rCS5ieXRlCTB4MAotKwkubG9uZwlfX2djal9wZXJzb25hbGl0eV92 MAotKwkuYnl0ZQkweGMKLSsJLnVsZWIxMjggMHg0Ci0rCS51bGViMTI4IDB4NAotKwkuYnl0ZQkw eDg4Ci0rCS51bGViMTI4IDB4MQotKwkuYWxpZ24gNAotKy5MRUNJRTE6Ci0rLkxTRkRFMToKLSsJ LmxvbmcJLkxFRkRFMS0uTEFTRkRFMQotKy5MQVNGREUxOgotKwkubG9uZwkuTEFTRkRFMS0uTGZy YW1lMQotKwkubG9uZwkuTEZCMgotKwkubG9uZwkuTEZFMi0uTEZCMgotKwkudWxlYjEyOCAweDAK LSsJLmJ5dGUJMHg0Ci0rCS5sb25nCS5MQ0ZJMC0uTEZCMgotKwkuYnl0ZQkweGUKLSsJLnVsZWIx MjggMHg4Ci0rCS5ieXRlCTB4ODUKLSsJLnVsZWIxMjggMHgyCi0rCS5ieXRlCTB4NAotKwkubG9u ZwkuTENGSTEtLkxDRkkwCi0rCS5ieXRlCTB4ZAotKwkudWxlYjEyOCAweDUKLSsJLmFsaWduIDQK LSsuTEVGREUxOgotKwkudGV4dAotKy5MZXRleHQwOgotKwkuc2VjdGlvbgkuZGVidWdfbG9jLCIi LEBwcm9nYml0cwotKy5MZGVidWdfbG9jMDoKLSsuTExTVDA6Ci0rCS5sb25nCS5MRkIyLS5MdGV4 dDAKLSsJLmxvbmcJLkxDRkkwLS5MdGV4dDAKLSsJLnZhbHVlCTB4MgotKwkuYnl0ZQkweDc0Ci0r CS5zbGViMTI4IDQKLSsJLmxvbmcJLkxDRkkwLS5MdGV4dDAKLSsJLmxvbmcJLkxDRkkxLS5MdGV4 dDAKLSsJLnZhbHVlCTB4MgotKwkuYnl0ZQkweDc0Ci0rCS5zbGViMTI4IDgKLSsJLmxvbmcJLkxD RkkxLS5MdGV4dDAKLSsJLmxvbmcJLkxGRTItLkx0ZXh0MAotKwkudmFsdWUJMHgyCi0rCS5ieXRl CTB4NzUKLSsJLnNsZWIxMjggOAotKwkubG9uZwkweDAKLSsJLmxvbmcJMHgwCi0rCS5zZWN0aW9u CS5kZWJ1Z19pbmZvCi0rCS5sb25nCTB4MTE3Ci0rCS52YWx1ZQkweDIKLSsJLmxvbmcJLkxkZWJ1 Z19hYmJyZXYwCi0rCS5ieXRlCTB4NAotKwkudWxlYjEyOCAweDEKLSsJLnN0cmluZwkiR05VIEph dmEgNC4zLjAgMjAwNzEyMjEgKGV4cGVyaW1lbnRhbCkiCi0rCS5ieXRlCTB4YgotKwkuc3RyaW5n CSJpbnRlcmZhY2UuamF2YSIKLSsJLnN0cmluZwkiL2hvbWUvamtyYXRvY2gvcmVkaGF0L2J6Mzcx ODMxIgotKwkubG9uZwkuTHRleHQwCi0rCS5sb25nCS5MZXRleHQwCi0rCS5sb25nCS5MZGVidWdf bGluZTAKLSsJLnVsZWIxMjggMHgyCi0rCS5zdHJpbmcJIkludGVyZmFjZSIKLSsJLmJ5dGUJMHg0 Ci0rCS5ieXRlCTB4MQotKwkuYnl0ZQkweDAKLSsJLmxvbmcJMHg4ZQotKwkubG9uZwkweDhlCi0r CS51bGViMTI4IDB4MwotKwkubG9uZwkweDhlCi0rCS5ieXRlCTB4MgotKwkuYnl0ZQkweDIzCi0r CS51bGViMTI4IDB4MAotKwkuYnl0ZQkweDEKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NAot Kwkuc3RyaW5nCSJqYXZhLmxhbmcuT2JqZWN0IgotKwkuYnl0ZQkweDEKLSsJLnVsZWIxMjggMHg1 Ci0rCS5zdHJpbmcJIkNsYXNzIgotKwkuYnl0ZQkweDQKLSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4 MAotKwkubG9uZwkweDhlCi0rCS5sb25nCTB4ZTgKLSsJLnVsZWIxMjggMHgzCi0rCS5sb25nCTB4 OGUKLSsJLmJ5dGUJMHgyCi0rCS5ieXRlCTB4MjMKLSsJLnVsZWIxMjggMHgwCi0rCS5ieXRlCTB4 MQotKwkudWxlYjEyOCAweDYKLSsJLmxvbmcJMHg2ZQotKwkuYnl0ZQkweDIKLSsJLmJ5dGUJMHgy MwotKwkudWxlYjEyOCAweDAKLSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4MQotKwkudWxlYjEyOCAw eDcKLSsJLmJ5dGUJMHgxCi0rCS5zdHJpbmcJIjxpbml0PiIKLSsJLmJ5dGUJMHgxCi0rCS5ieXRl CTB4MAotKwkuc3RyaW5nCSJfWk41Q2xhc3NDMUV2IgotKwkuYnl0ZQkweDEKLSsJLnVsZWIxMjgg MHg4Ci0rCS5sb25nCTB4ZTgKLSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4MAotKwkuYnl0ZQkweDAK LSsJLnVsZWIxMjggMHg5Ci0rCS5ieXRlCTB4NAotKwkubG9uZwkweGExCi0rCS51bGViMTI4IDB4 YQotKwkubG9uZwkweGM2Ci0rCS5sb25nCS5MRkIyCi0rCS5sb25nCS5MRkUyCi0rCS5sb25nCS5M TFNUMAotKwkubG9uZwkweDExNAotKwkudWxlYjEyOCAweGIKLSsJLmxvbmcJMHhlOAotKwkuYnl0 ZQkweDIKLSsJLmJ5dGUJMHg5MQotKwkuc2xlYjEyOCAwCi0rCS51bGViMTI4IDB4YwotKwkubG9u ZwkweDExNAotKwkuYnl0ZQkweDIKLSsJLmJ5dGUJMHg5MQotKwkuc2xlYjEyOCAtMTIKLSsJLmJ5 dGUJMHgwCi0rCS51bGViMTI4IDB4OQotKwkuYnl0ZQkweDQKLSsJLmxvbmcJMHg4ZQotKwkuYnl0 ZQkweDAKLSsJLnNlY3Rpb24JLmRlYnVnX2FiYnJldgotKwkudWxlYjEyOCAweDEKLSsJLnVsZWIx MjggMHgxMQotKwkuYnl0ZQkweDEKLSsJLnVsZWIxMjggMHgyNQotKwkudWxlYjEyOCAweDgKLSsJ LnVsZWIxMjggMHgxMwotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHgzCi0rCS51bGViMTI4 IDB4OAotKwkudWxlYjEyOCAweDFiCi0rCS51bGViMTI4IDB4OAotKwkudWxlYjEyOCAweDExCi0r CS51bGViMTI4IDB4MQotKwkudWxlYjEyOCAweDEyCi0rCS51bGViMTI4IDB4MQotKwkudWxlYjEy OCAweDEwCi0rCS51bGViMTI4IDB4NgotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCS51bGVi MTI4IDB4MgotKwkudWxlYjEyOCAweDM4Ci0rCS5ieXRlCTB4MQotKwkudWxlYjEyOCAweDMKLSsJ LnVsZWIxMjggMHg4Ci0rCS51bGViMTI4IDB4YgotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjgg MHgzYQotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHgzYgotKwkudWxlYjEyOCAweGIKLSsJ LnVsZWIxMjggMHgxZAotKwkudWxlYjEyOCAweDEzCi0rCS51bGViMTI4IDB4MQotKwkudWxlYjEy OCAweDEzCi0rCS5ieXRlCTB4MAotKwkuYnl0ZQkweDAKLSsJLnVsZWIxMjggMHgzCi0rCS51bGVi MTI4IDB4MWMKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NDkKLSsJLnVsZWIxMjggMHgxMwot KwkudWxlYjEyOCAweDM4Ci0rCS51bGViMTI4IDB4YQotKwkudWxlYjEyOCAweDMyCi0rCS51bGVi MTI4IDB4YgotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NAotKwkudWxl YjEyOCAweDIKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4MwotKwkudWxlYjEyOCAweDgKLSsJ LnVsZWIxMjggMHgzYwotKwkudWxlYjEyOCAweGMKLSsJLmJ5dGUJMHgwCi0rCS5ieXRlCTB4MAot KwkudWxlYjEyOCAweDUKLSsJLnVsZWIxMjggMHgyCi0rCS5ieXRlCTB4MQotKwkudWxlYjEyOCAw eDMKLSsJLnVsZWIxMjggMHg4Ci0rCS51bGViMTI4IDB4YgotKwkudWxlYjEyOCAweGIKLSsJLnVs ZWIxMjggMHgzYQotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHgzYgotKwkudWxlYjEyOCAw eGIKLSsJLnVsZWIxMjggMHgxZAotKwkudWxlYjEyOCAweDEzCi0rCS51bGViMTI4IDB4MQotKwku dWxlYjEyOCAweDEzCi0rCS5ieXRlCTB4MAotKwkuYnl0ZQkweDAKLSsJLnVsZWIxMjggMHg2Ci0r CS51bGViMTI4IDB4MWMKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NDkKLSsJLnVsZWIxMjgg MHgxMwotKwkudWxlYjEyOCAweDM4Ci0rCS51bGViMTI4IDB4YQotKwkudWxlYjEyOCAweDRjCi0r CS51bGViMTI4IDB4YgotKwkudWxlYjEyOCAweDMyCi0rCS51bGViMTI4IDB4YgotKwkuYnl0ZQkw eDAKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NwotKwkudWxlYjEyOCAweDJlCi0rCS5ieXRl CTB4MQotKwkudWxlYjEyOCAweDNmCi0rCS51bGViMTI4IDB4YwotKwkudWxlYjEyOCAweDMKLSsJ LnVsZWIxMjggMHg4Ci0rCS51bGViMTI4IDB4M2EKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4 IDB4M2IKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4IDB4MjAwNwotKwkudWxlYjEyOCAweDgK LSsJLnVsZWIxMjggMHgzYwotKwkudWxlYjEyOCAweGMKLSsJLmJ5dGUJMHgwCi0rCS5ieXRlCTB4 MAotKwkudWxlYjEyOCAweDgKLSsJLnVsZWIxMjggMHg1Ci0rCS5ieXRlCTB4MAotKwkudWxlYjEy OCAweDQ5Ci0rCS51bGViMTI4IDB4MTMKLSsJLnVsZWIxMjggMHgzNAotKwkudWxlYjEyOCAweGMK LSsJLmJ5dGUJMHgwCi0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweDkKLSsJLnVsZWIxMjggMHhm Ci0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4 IDB4NDkKLSsJLnVsZWIxMjggMHgxMwotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCS51bGVi MTI4IDB4YQotKwkudWxlYjEyOCAweDJlCi0rCS5ieXRlCTB4MQotKwkudWxlYjEyOCAweDQ3Ci0r CS51bGViMTI4IDB4MTMKLSsJLnVsZWIxMjggMHgxMQotKwkudWxlYjEyOCAweDEKLSsJLnVsZWIx MjggMHgxMgotKwkudWxlYjEyOCAweDEKLSsJLnVsZWIxMjggMHg0MAotKwkudWxlYjEyOCAweDYK LSsJLnVsZWIxMjggMHgxCi0rCS51bGViMTI4IDB4MTMKLSsJLmJ5dGUJMHgwCi0rCS5ieXRlCTB4 MAotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHg1Ci0rCS5ieXRlCTB4MAotKwkudWxlYjEy OCAweDQ5Ci0rCS51bGViMTI4IDB4MTMKLSsJLnVsZWIxMjggMHgyCi0rCS51bGViMTI4IDB4YQot KwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4YwotKwkudWxlYjEyOCAweDM0 Ci0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweDQ5Ci0rCS51bGViMTI4IDB4MTMKLSsJLnVsZWIx MjggMHgyCi0rCS51bGViMTI4IDB4YQotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCS5ieXRl CTB4MAotKwkuc2VjdGlvbgkuZGVidWdfcHVibmFtZXMsIiIsQHByb2diaXRzCi0rCS5sb25nCTB4 MTUKLSsJLnZhbHVlCTB4MgotKwkubG9uZwkuTGRlYnVnX2luZm8wCi0rCS5sb25nCTB4MTFiCi0r CS5sb25nCTB4ZWUKLSsJLnN0cmluZwkiKCkiCi0rCS5sb25nCTB4MAotKwkuc2VjdGlvbgkuZGVi dWdfYXJhbmdlcywiIixAcHJvZ2JpdHMKLSsJLmxvbmcJMHgxYwotKwkudmFsdWUJMHgyCi0rCS5s b25nCS5MZGVidWdfaW5mbzAKLSsJLmJ5dGUJMHg0Ci0rCS5ieXRlCTB4MAotKwkudmFsdWUJMHgw Ci0rCS52YWx1ZQkweDAKLSsJLmxvbmcJLkx0ZXh0MAotKwkubG9uZwkuTGV0ZXh0MC0uTHRleHQw Ci0rCS5sb25nCTB4MAotKwkubG9uZwkweDAKLSsJLmlkZW50CSJHQ0M6IChHTlUpIDQuMy4wIDIw MDcxMjIxIChleHBlcmltZW50YWwpIgotKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHBy b2diaXRzCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJj aC9pMzg2LWludGVyZmFjZS5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtaW50ZXJmYWNlLmV4cAkyMDE2LTAyLTE1IDIzOjIzOjE1 Ljk3ODU5MzU1NiArMDEwMAotQEAgLTAsMCArMSw1OSBAQAotKyMgQ29weXJpZ2h0IDIwMDcgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgotKwotKyMgUGxlYXNlIGVtYWlsIGFueSBidWdzLCBjb21tZW50cywgYW5kL29yIGFkZGl0 aW9ucyB0byB0aGlzIGZpbGUgdG86Ci0rIyBidWctZ2RiQGdudS5vcmcKLSsKLSsjIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIHRoZSBnZGIgdGVzdHN1aXRlLgotKwotKyMgVGVzdCBiYXNpcyByZWNvZ25p emF0aW9uIG9mIERXX1RBR19pbnRlcmZhY2VfdHlwZS4KLSsjIEdDQyBqYXZhX2NsYXNzaWZ5X3Jl Y29yZCgpIHByb2R1Y2VzIGl0IGlmIHJldHVybnMgUkVDT1JEX0lTX0lOVEVSRkFDRS4KLSsKLStp ZiB7IVtpc3RhcmdldCAiaT84Ni0qLSoiXSAmJiAhW2lzdGFyZ2V0ICJ4ODZfNjQtKi0qIl19IHRo ZW4gewotKyAgICB2ZXJib3NlICJTa2lwcGluZyBpMzg2IEphdmEgRFdfVEFHX2ludGVyZmFjZV90 eXBlIHRlc3QuIgotKyAgICByZXR1cm4KLSt9Ci0rCi0rc2V0IHRlc3RmaWxlICJpMzg2LWludGVy ZmFjZSIKLStzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5TCi0rc2V0IGJpbmZpbGUgW3N0YW5kYXJk X291dHB1dF9maWxlICR7dGVzdGZpbGV9Lm9dCi0rCi0raWYgeyBbZ2RiX2NvbXBpbGUgIiR7c3Jj ZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIG9iamVjdCB7ZGVidWcgYWRk aXRpb25hbF9mbGFncz0tbTMyfV0gIT0gIiIgfSB7Ci0rICAgIHVudGVzdGVkIGkzODYtZ251LWNm aS5leHAKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotKyMgR2V0IHRoaW5ncyBzdGFydGVkLgotKwot K2dkYl9leGl0Ci0rZ2RiX3N0YXJ0Ci0rZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3Vi ZGlyCi0rZ2RiX2xvYWQgJHtiaW5maWxlfQotKwotK2dkYl90ZXN0ICJzZXQgbGFuZ3VhZ2UgamF2 YSIKLSsKLStzZXQgdGVzdCAicHR5cGUgSW50ZXJmYWNlIgotK2dkYl90ZXN0X211bHRpcGxlICR0 ZXN0ICR0ZXN0IHsKLSsgICAgLXJlICJ0eXBlID0gY2xhc3MgSW50ZXJmYWNlICAqZXh0ZW5kcyBq YXZhLmxhbmcuT2JqZWN0IFx7LiokZ2RiX3Byb21wdCAkIiB7Ci0rCXBhc3MgJHRlc3QKLSsgICAg fQotK30KLSsKLStzZXQgdGVzdCAicHR5cGUgQ2xhc3MiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUgJHRl c3QgJHRlc3QgewotKyAgICAtcmUgInR5cGUgPSBjbGFzcyBDbGFzcyAgKmV4dGVuZHMgamF2YS5s YW5nLk9iamVjdCBpbXBsZW1lbnRzIEludGVyZmFjZSBcey4qJGdkYl9wcm9tcHQgJCIgewotKwlw YXNzICR0ZXN0Ci0rICAgIH0KLSt9CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1iejQzNjAzNy1yZWct bm8tbG9uZ2VyLWFjdGl2ZS5wYXRjaCBiL2dkYi02LjgtYno0MzYwMzctcmVnLW5vLWxvbmdlci1h Y3RpdmUucGF0Y2gKaW5kZXggNDk4NzcxNC4uNDliMjI1YSAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1i ejQzNjAzNy1yZWctbm8tbG9uZ2VyLWFjdGl2ZS5wYXRjaAorKysgYi9nZGItNi44LWJ6NDM2MDM3 LXJlZy1uby1sb25nZXItYWN0aXZlLnBhdGNoCkBAIC0xLDE3ICsxLDIyIEBACi1JbmRleDogZ2Ri LTYuOC41MC4yMDA5MDgwMy9nZGIvdmFsb3BzLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIw Ny9nZGIvdmFsb3BzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcv Z2RiL3ZhbG9wcy5jCTIwMDktMDgtMDQgMDY6MzA6NDUuMDAwMDAwMDAwICswMjAwCi0rKysgZ2Ri LTYuOC41MC4yMDA5MDgwMy9nZGIvdmFsb3BzLmMJMjAwOS0wOC0wNCAwNjozMzowNS4wMDAwMDAw MDAgKzAyMDAKLUBAIC05MjYsMTAgKzkyNiwxOCBAQCB2YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1 ZSAqdG92YWwsIHN0cnVjCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdmFsb3Bz LmMJMjAxNy0wMi0yNiAxNzoyNjo0My44MzkxNDY1NjUgKzAxMDAKKysrKyBnZGItNy4xMi41MC4y MDE3MDIwNy9nZGIvdmFsb3BzLmMJMjAxNy0wMi0yNiAxNzoyODo0MC44NDA5ODgyNzIgKzAxMDAK K0BAIC0xMTEyLDYgKzExMTIsOCBAQAogIAlzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKICAJaW50 IHZhbHVlX3JlZzsKICAKLS0JLyogRmlndXJlIG91dCB3aGljaCBmcmFtZSB0aGlzIGlzIGluIGN1 cnJlbnRseS4gICovCi0tCWZyYW1lID0gZnJhbWVfZmluZF9ieV9pZCAoVkFMVUVfRlJBTUVfSUQg KHRvdmFsKSk7Ci0gCXZhbHVlX3JlZyA9IFZBTFVFX1JFR05VTSAodG92YWwpOworKwl2YWx1ZV9y ZWcgPSBWQUxVRV9SRUdOVU0gKHRvdmFsKTsKKysKKyAJLyogRmlndXJlIG91dCB3aGljaCBmcmFt ZSB0aGlzIGlzIGluIGN1cnJlbnRseS4KKyAJCisgCSAgIFdlIHVzZSBWQUxVRV9GUkFNRV9JRCBm b3Igb2J0YWluaW5nIHRoZSB2YWx1ZSdzIGZyYW1lIGlkIGluc3RlYWQgb2YKK0BAIC0xMTIxLDgg KzExMjMsMTQgQEAKKyAJICAgZnJhbWUuICAqLworIAlmcmFtZSA9IGZyYW1lX2ZpbmRfYnlfaWQg KFZBTFVFX0ZSQU1FX0lEICh0b3ZhbCkpOwogIAotKwkvKiBGaWd1cmUgb3V0IHdoaWNoIGZyYW1l IHRoaXMgaXMgaW4gY3VycmVudGx5LiAgKi8KLSsJZnJhbWUgPSBmcmFtZV9maW5kX2J5X2lkIChW QUxVRV9GUkFNRV9JRCAodG92YWwpKTsKKy0JdmFsdWVfcmVnID0gVkFMVUVfUkVHTlVNICh0b3Zh bCk7CistCiArCS8qICJzZXQgJHJlZys9MSIgc2hvdWxkIHdvcmsgb24gcHJvZ3JhbXMgd2l0aCBu byBkZWJ1ZyBpbmZvLAogKwkgICBidXQgZnJhbWVfZmluZF9ieV9pZCByZXR1cm5zIE5VTEwgaGVy ZSAoUkggYnVnIDQzNjAzNykuCiArCSAgIFVzZSBjdXJyZW50IGZyYW1lLCBpdCByZXByZXNlbnRz IENQVSBzdGF0ZSBpbiB0aGlzIGNhc2UuCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1xdWl0LW5ldmVy LWFib3J0cy5wYXRjaCBiL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2gKaW5kZXggNTVl NzE0ZS4uMGRjNzFiOCAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1xdWl0LW5ldmVyLWFib3J0cy5wYXRj aAorKysgYi9nZGItNi44LXF1aXQtbmV2ZXItYWJvcnRzLnBhdGNoCkBAIC01LDExICs1LDExIEBA IFNvbWUgb2YgdGhlIHRocmVhZHMgbWF5IG5vdCBiZSBwcm9wZXJseSBQVFJBQ0VfREVUQUNIZWQg d2hpY2ggaHVydHMgaWYgdGhleQogc2hvdWxkIGhhdmUgYmVlbiBkZXRhY2hlZCB3aXRoIFNJR1NU T1AgKGFzIHRoZXkgYXJlIGFjY2lkZW50YWxseSBsZWZ0IHJ1bm5pbmcKIG9uIHRoZSBkZWJ1Z2dl ciB0ZXJtaW5hdGlvbikuCiAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZGVmcy5o CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2RlZnMuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2RlZnMuaAkyMDE2LTA3LTAzIDE2OjQwOjQz LjQyMzA3ODkyNiArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kZWZzLmgJMjAx Ni0wNy0wMyAxNjo0MTowOC41NjgyNzE3NDEgKzAyMDAKLUBAIC0xNzUsNiArMTc1LDEwIEBACist LS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvZGVmcy5oCTIwMTctMDItMjYgMjE6MTE6 MzUuNjU0MzUwNTgwICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2RlZnMuaAky MDE3LTAyLTI2IDIxOjExOjUyLjkzMjQ3MzEyOSArMDEwMAorQEAgLTE2OSw2ICsxNjksMTAgQEAK ICAvKiBGbGFnIHRoYXQgZnVuY3Rpb24gcXVpdCBzaG91bGQgY2FsbCBxdWl0X2ZvcmNlLiAgKi8K ICBleHRlcm4gdm9sYXRpbGUgaW50IHN5bmNfcXVpdF9mb3JjZV9ydW47CiAgCkBAIC0yMCwxMCAr MjAsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kZWZzLmgKICBleHRlcm4g dm9pZCBxdWl0ICh2b2lkKTsKICAKICAvKiBIZWxwZXIgZm9yIHRoZSBRVUlUIG1hY3JvLiAgKi8K LUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZXh0ZW5zaW9uLmMKK0luZGV4OiBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvZXh0ZW5zaW9uLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MS41MC4yMDE2MDYzMC5vcmlnL2dkYi9leHRlbnNpb24uYwkyMDE2LTA3LTAzIDE2OjQwOjQxLjcy MzA2NTg5MCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9leHRlbnNpb24uYwky MDE2LTA3LTAzIDE2OjQxOjQ0Ljg5NjU1MDMwOSArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcw MjA3Lm9yaWcvZ2RiL2V4dGVuc2lvbi5jCTIwMTctMDItMjYgMjE6MTE6MzUuNjU1MzUwNTg3ICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2V4dGVuc2lvbi5jCTIwMTctMDItMjYg MjE6MTE6NTIuOTMzNDczMTM2ICswMTAwCiBAQCAtODMwLDYgKzgzMCwxMSBAQAogICAgaW50IGks IHJlc3VsdCA9IDA7CiAgICBjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKmV4 dGxhbmc7CkBAIC0zNiwxMiArMzYsMTIgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9leHRlbnNpb24uYwogICAgQUxMX0VOQUJMRURfRVhURU5TSU9OX0xBTkdVQUdFUyAoaSwgZXh0 bGFuZykKICAgICAgewogICAgICAgIGlmIChleHRsYW5nLT5vcHMtPmNoZWNrX3F1aXRfZmxhZyAh PSBOVUxMKQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90b3AuYworSW5kZXg6IGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi90b3AuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUw LjIwMTYwNjMwLm9yaWcvZ2RiL3RvcC5jCTIwMTYtMDctMDMgMTY6NDA6NDEuNzI0MDY1ODk4ICsw MjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3RvcC5jCTIwMTYtMDctMDMgMTY6NDA6 NDMuNDI0MDc4OTM0ICswMjAwCi1AQCAtMTYxNyw3ICsxNjE3LDEzIEBACi0gICBxdC5hcmdzID0g YXJnczsKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90b3AuYwkyMDE3LTAyLTI2 IDIxOjExOjM1LjY1NTM1MDU4NyArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90 b3AuYwkyMDE3LTAyLTI2IDIxOjExOjUyLjkzMzQ3MzEzNiArMDEwMAorQEAgLTE2MTksNyArMTYx OSwxMyBAQAorICAgcXQuYXJncyA9IE5VTEw7CiAgICBxdC5mcm9tX3R0eSA9IGZyb21fdHR5Owog IAogKyNpZm5kZWYgTkVFRF9ERVRBQ0hfU0lHU1RPUApAQCAtNTQsMTEgKzU0LDExIEBAIEluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdG9wLmMKICAKICAgIC8qIEdldCBvdXQgb2YgdGZp bmQgbW9kZSwgYW5kIGtpbGwgb3IgZGV0YWNoIGFsbCBpbmZlcmlvcnMuICAqLwogICAgVFJZCi1J bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3V0aWxzLmMKK0luZGV4OiBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvdXRpbHMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYw NjMwLm9yaWcvZ2RiL3V0aWxzLmMJMjAxNi0wNy0wMyAxNjo0MDo0MS43MjUwNjU5MDUgKzAyMDAK LSsrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdXRpbHMuYwkyMDE2LTA3LTAzIDE2OjQxOjM4 Ljk2MTUwNDc5OSArMDIwMAotQEAgLTEwOSw2ICsxMDksMTMgQEAKKy0tLSBnZGItNy4xMi41MC4y MDE3MDIwNy5vcmlnL2dkYi91dGlscy5jCTIwMTctMDItMjYgMjE6MTE6MzUuNjU3MzUwNjAxICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3V0aWxzLmMJMjAxNy0wMi0yNiAyMTox MTo1Mi45MzQ0NzMxNDMgKzAxMDAKK0BAIC0xMDYsNiArMTA2LDEzIEBACiAgCiAgaW50IGpvYl9j b250cm9sOwogIAoKZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItcGllLWFkZG9ucy5wYXRjaCBiL2dk Yi1hcmNoZXItcGllLWFkZG9ucy5wYXRjaAppbmRleCA4NWE2OTY3Li4yNDBiMTdlIDEwMDY0NAot LS0gYS9nZGItYXJjaGVyLXBpZS1hZGRvbnMucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci1waWUtYWRk b25zLnBhdGNoCkBAIC00MiwzMCArNDIsNiBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvZ2RidHlwZXMuaAogICNkZWZpbmUgVFlQRV9GSUVMRF9TVEFUSUNfUEhZU0FERFIodGhpc3R5 cGUsIG4pIEZJRUxEX1NUQVRJQ19QSFlTQUREUiAoVFlQRV9GSUVMRCAodGhpc3R5cGUsIG4pKQog ICNkZWZpbmUgVFlQRV9GSUVMRF9EV0FSRl9CTE9DSyh0aGlzdHlwZSwgbikgRklFTERfRFdBUkZf QkxPQ0sgKFRZUEVfRklFTEQgKHRoaXN0eXBlLCBuKSkKICAjZGVmaW5lIFRZUEVfRklFTERfQVJU SUZJQ0lBTCh0aGlzdHlwZSwgbikgRklFTERfQVJUSUZJQ0lBTChUWVBFX0ZJRUxEKHRoaXN0eXBl LG4pKQotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2p2LWxhbmcuYwotPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvanYtbGFuZy5jCTIwMTUtMDUtMzEg MTY6NTU6MjkuNzI0NDc1NDkxICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvanYt bGFuZy5jCTIwMTUtMDUtMzEgMTY6NTU6MzAuODIwNDgyNDA4ICswMjAwCi1AQCAtNDI3LDcgKzQy Nyw4IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKLSAKLSAgIGZp ZWxkcyA9IE5VTEw7Ci0gICBuZmllbGRzLS07CQkJLyogRmlyc3Qgc2V0IHVwIGR1bW15ICJjbGFz cyIgZmllbGQuICAqLwotLSAgU0VUX0ZJRUxEX1BIWVNBRERSIChUWVBFX0ZJRUxEICh0eXBlLCBu ZmllbGRzKSwgdmFsdWVfYWRkcmVzcyAoY2xhcykpOwotKyAgU0VUX0ZJRUxEX1BIWVNBRERSIChU WVBFX0ZJRUxEICh0eXBlLCBuZmllbGRzKSwgdmFsdWVfYWRkcmVzcyAoY2xhcykKLSsgICAgLSAo VFlQRV9PQkpGSUxFICh0eXBlKSA9PSBOVUxMID8gMCA6IEFOT0ZGU0VUIChUWVBFX09CSkZJTEUg KHR5cGUpLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKFRZUEVfT0JKRklMRSAodHlw ZSkpKSkpOwotICAgVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBuZmllbGRzKSA9ICJjbGFzcyI7Ci0g ICBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIG5maWVsZHMpID0gdmFsdWVfdHlwZSAoY2xhcyk7Ci0g ICBTRVRfVFlQRV9GSUVMRF9QUklWQVRFICh0eXBlLCBuZmllbGRzKTsKLUBAIC00NzUsNyArNDc2 LDggQEAgamF2YV9saW5rX2NsYXNzX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZAotIAkgIFNFVF9U WVBFX0ZJRUxEX1BST1RFQ1RFRCAodHlwZSwgaSk7Ci0gCX0KLSAgICAgICBpZiAoYWNjZmxhZ3Mg JiAweDAwMDgpCS8qIEFDQ19TVEFUSUMgKi8KLS0JU0VUX0ZJRUxEX1BIWVNBRERSIChUWVBFX0ZJ RUxEICh0eXBlLCBpKSwgYm9mZnNldCk7Ci0rCVNFVF9GSUVMRF9QSFlTQUREUiAoVFlQRV9GSUVM RCAodHlwZSwgaSksIGJvZmZzZXQKLSsJICAtIChUWVBFX09CSkZJTEUgKHR5cGUpID09IE5VTEwg PyAwIDogQU5PRkZTRVQgKFRZUEVfT0JKRklMRSAodHlwZSktPnNlY3Rpb25fb2Zmc2V0cywgU0VD VF9PRkZfVEVYVCAoVFlQRV9PQkpGSUxFICh0eXBlKSkpKSk7Ci0gICAgICAgZWxzZQotIAlTRVRf RklFTERfQklUUE9TIChUWVBFX0ZJRUxEICh0eXBlLCBpKSwgOCAqIGJvZmZzZXQpOwotICAgICAg IGlmIChhY2NmbGFncyAmIDB4ODAwMCkJLyogRklFTERfVU5SRVNPTFZFRF9GTEFHICovCiBJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFsdWUuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGdkYi03 LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdmFsdWUuYwkyMDE1LTA1LTMxIDE2OjU1OjI5LjcyNTQ3 NTQ5NyArMDIwMAoKZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoIGIvZ2Ri LWFyY2hlci12bGEtdGVzdHMucGF0Y2gKaW5kZXggYjI3ZWY3NS4uNmM4YTNhNiAxMDA2NDQKLS0t IGEvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci12bGEtdGVzdHMu cGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YWRhL3BhY2tlZF9hcnJheS5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVz dHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEy Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNi0wOC0wMSAx Nzo1MDoyMS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5h ZGEvcGFja2VkX2FycmF5LmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg0OTAxMzQ2NyArMDIwMAor LS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tl ZF9hcnJheS5leHAJMjAxNy0wMi0yNiAxOToxNToyOC41NTI4MjQ3NTEgKzAxMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAky MDE3LTAyLTI2IDE5OjE1OjM2LjU5Nzg4MjMxNiArMDEwMAogQEAgLTU2LDUgKzU2LDExIEBACiAg ICAgICAgICAjIGFyZS4gIE9ic2VydmVkIHdpdGggKEZTRiBHTlUgQWRhIDQuNS4zIDIwMTEwMTI0 KS4KICAgICAgICAgIHhmYWlsICR0ZXN0CkBAIC0xNCwxMCArMTQsMTAgQEAgSW5kZXg6IGdkYi03 LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCiArICAgIH0KICB9CiAg Ci1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50 ZXItZm9vLlMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL3g4Nl82NC12bGEtcG9pbnRlci1mb28uUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEyL2dkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS1wb2ludGVyLWZvby5TCTIwMTYtMTAtMjIgMDk6NTA6 MzguNTEwMzkzOTAzICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50ZXItZm9vLlMJMjAxNy0wMi0yNiAxOToxNTozNi41 OTg4ODIzMjMgKzAxMDAKIEBAIC0wLDAgKzEsMzU4IEBACiArCS5maWxlCSJ4ODZfNjQtdmxhLXBv aW50ZXIuYyIKICsJLnRleHQKQEAgLTM3NywxMCArMzc3LDEwIEBAIEluZGV4OiBnZGItNy4xMi9n ZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtcG9pbnRlci1mb28uUwogKwkuc3RyaW5n CSJhcnJheSIKICsJLmlkZW50CSJHQ0M6IChHTlUpIDYuMi4xIDIwMTYwOTE2IChSZWQgSGF0IDYu Mi4xLTIpIgogKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi1JbmRleDog Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50ZXIuYworSW5k ZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZs YS1wb2ludGVyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4 Nl82NC12bGEtcG9pbnRlci5jCTIwMTYtMTAtMjIgMDk6NTA6NDAuMzM1NDA3MzY3ICswMjAwCisr KysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxh LXBvaW50ZXIuYwkyMDE3LTAyLTI2IDE5OjE1OjM2LjU5ODg4MjMyMyArMDEwMAogQEAgLTAsMCAr MSw0NSBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdn ZXIuCiArCkBAIC00MjcsMTAgKzQyNywxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50ZXIuYwogK30KICsKICsjZW5kaWYKLUluZGV4OiBn ZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtcG9pbnRlci5leHAKK0lu ZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12 bGEtcG9pbnRlci5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNo L3g4Nl82NC12bGEtcG9pbnRlci5leHAJMjAxNi0xMC0yMiAyMToxMDo1Ni4yMTA0MTMzNDYgKzAy MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82 NC12bGEtcG9pbnRlci5leHAJMjAxNy0wMi0yNiAxOToxNTozNi41OTg4ODIzMjMgKzAxMDAKIEBA IC0wLDAgKzEsNjUgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgogKwpAQCAtNDk3LDEwICs0OTcsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS1wb2ludGVyLmV4cAogK2dkYl90ZXN0ICJ3aGF0aXMg YXJyYXkiICJ0eXBlID0gYXJyYXlfdCIgInNlY29uZDogd2hhdGlzIGFycmF5IgogK2dkYl90ZXN0 ICJ3aGF0aXMgYXJyYXlfdCIgInR5cGUgPSBjaGFyIFxcXFt2YXJpYWJsZSBsZW5ndGhcXFxdIiAi c2Vjb25kOiB3aGF0aXMgYXJyYXlfdCIKICtnZGJfdGVzdCAicHR5cGUgYXJyYXkiICJ0eXBlID0g Y2hhciBcXFxbNzhcXFxdIiAic2Vjb25kOiBwdHlwZSBhcnJheSIKLUluZGV4OiBnZGItNy4xMi9n ZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi1mb28uUworSW5kZXg6IGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBl ZGVmLWZvby5TCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZf NjQtdmxhLXR5cGVkZWYtZm9vLlMJMjAxNi0xMC0yMiAwOTo0NToxNS44NTEwMTM0ODIgKzAyMDAK KysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12 bGEtdHlwZWRlZi1mb28uUwkyMDE3LTAyLTI2IDE5OjE1OjM2LjU5ODg4MjMyMyArMDEwMAogQEAg LTAsMCArMSw0NTUgQEAKICsJLmZpbGUJIng4Nl82NC12bGEtdHlwZWRlZi5jIgogKwkuc2VjdGlv bgkuZGVidWdfYWJicmV2LCIiLEBwcm9nYml0cwpAQCAtOTU3LDEwICs5NTcsMTAgQEAgSW5kZXg6 IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLWZvby5T CiArCS5zdHJpbmcJIkdOVSBDIDQuMy4yIDIwMDgxMTA1IChSZWQgSGF0IDQuMy4yLTcpIgogKwku aWRlbnQJIkdDQzogKEdOVSkgNC4zLjIgMjAwODExMDUgKFJlZCBIYXQgNC4zLjItNykiCiArCS5z ZWN0aW9uCS5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKLUluZGV4OiBnZGItNy4xMi9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5jCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBl ZGVmLmMJMjAxNi0xMC0yMiAwOTo0NToxNS44NTEwMTM0ODIgKzAyMDAKKysrKyBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5jCTIw MTctMDItMjYgMTk6MTU6MzYuNTk5ODgyMzMwICswMTAwCiBAQCAtMCwwICsxLDQ1IEBACiArLyog VGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTEw MDcsMTAgKzEwMDcsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gv eDg2XzY0LXZsYS10eXBlZGVmLmMKICt9CiArCiArI2VuZGlmCi1JbmRleDogZ2RiLTcuMTIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCitJbmRleDogZ2RiLTcu MTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxh LXR5cGVkZWYuZXhwCTIwMTYtMTAtMjIgMDk6NDU6MTUuODUxMDEzNDgyICswMjAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVk ZWYuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNTk5ODgyMzMwICswMTAwCiBAQCAtMCwwICsxLDY0 IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsK QEAgLTEwNzYsMTAgKzEwNzYsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmV4cAogK2dkYl90ZXN0ICJ3aGF0aXMgYXJyYXkiICJ0 eXBlID0gYXJyYXlfdCIgInNlY29uZDogd2hhdGlzIGFycmF5IgogKwogK2dkYl90ZXN0ICJwdHlw ZSBhcnJheSIgInR5cGUgPSBjaGFyIFxcXFs3OFxcXF0iICJzZWNvbmQ6IHB0eXBlIGFycmF5Igot SW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYworSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEyLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJh eWlkeC5jCTIwMTYtMDgtMDEgMTc6NTA6MjEuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMTIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMTAtMjIgMDk6NDU6MTUuODUx MDEzNDgyICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2FycmF5aWR4LmMJMjAxNy0wMi0yNiAxOToxNToyOC41NTU4MjQ3NzIgKzAxMDAK KysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4 LmMJMjAxNy0wMi0yNiAxOToxNTozNi41OTk4ODIzMzAgKzAxMDAKIEBAIC0xNyw2ICsxNywxMyBA QAogIAogIGludCBhcnJheVtdID0gezEsIDIsIDMsIDR9OwpAQCAtMTA5NCwxMyArMTA5NCwxMyBA QCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCiAgaW50 CiAgbWFpbiAodm9pZCkKICB7Ci1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9hcnJheWlkeC5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2FycmF5aWR4LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEyLm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAJMjAxNi0wOC0wMSAxNzo1MDoyMS4wMDAw MDAwMDAgKzAyMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4 LmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1MTAxMzQ4MiArMDIwMAorLS0tIGdkYi03LjEyLjUw LjIwMTcwMjA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAJMjAxNy0w Mi0yNiAxOToxNToyOC41NTU4MjQ3NzIgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAkyMDE3LTAyLTI2IDE5OjE1OjM2LjU5 OTg4MjMzMCArMDEwMAogQEAgLTQ5LDQgKzQ5LDEyIEBACiAgICAgICAgICAgIlxce1xcXFswXFxc XSA9IDEsIFxcXFsxXFxcXSA9IDIsIFxcXFsyXFxcXSA9IDMsIFxcXFszXFxcXSA9IDRcXH0iIFwK LSAgICAgICAgICAiUHJpbnQgYXJyYXkgd2l0aCBhcnJheS1pbmRleGVzIG9uIgorICAgICAgICAg ICJwcmludCBhcnJheSB3aXRoIGFycmF5LWluZGV4ZXMgb24iCiAgCiAtCiArc2V0IHRlc3QgInAg dW5ib3VuZC5hID09ICZ1bmJvdW5kLmFcWzBcXSIKQEAgLTExMTIsMTAgKzExMTIsMTAgQEAgSW5k ZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCiArCXVuc3Vw cG9ydGVkICIkdGVzdCAobm8gR0NDKSIKICsgICAgfQogK30KLUluZGV4OiBnZGItNy4xMi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMKK0luZGV4OiBn ZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1m aWVsZC1hZGRyZXNzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMJMjAxNi0xMC0yMiAwOTo0NToxNS44NTIwMTM0 OTAgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMJMjAxNy0wMi0yNiAxOToxNTozNi41OTk4ODIz MzAgKzAxMDAKIEBAIC0wLDAgKzEsMjAgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTEzNywxMCArMTEzNywxMCBAQCBJbmRleDog Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVz cy5jCiArc3RydWN0IHsKICsgIGludCBmaWVsZDsKICt9IHN0YXRpY3N0cnVjdCA9IHsgMSB9Owot SW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxk LWFkZHJlc3MuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4x Mi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4cAky MDE2LTEwLTIyIDA5OjQ1OjE1Ljg1MjAxMzQ5MCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhw CTIwMTctMDItMjYgMTk6MTU6MzYuNjAwODgyMzM3ICswMTAwCiBAQCAtMCwwICsxLDI2IEBACiAr IyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTEx NjgsMTAgKzExNjgsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv aW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCiArCiArZ2RiX3Rlc3Qge3NldCAkdmFyc3Ry dWN0ID0gc3RhdGljc3RydWN0fQogK2dkYl90ZXN0IHtwICR2YXJzdHJ1Y3QuZmllbGR9ICIgPSAx IgotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMKK0lu ZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFt ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUu YwkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1MjAxMzQ5MCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMJMjAxNy0wMi0yNiAxOTox NTozNi42MDA4ODIzMzcgKzAxMDAKIEBAIC0wLDAgKzEsMzEgQEAKICsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTIwNCwxMCArMTIwNCwx MCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYwog KyAgZiAocyk7CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCTIwMTYtMTAtMjIgMDk6NDU6MTUuODUy MDEzNDkwICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS92bGEtZnJhbWUuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjAwODgyMzM3ICswMTAwCiBA QCAtMCwwICsxLDM4IEBACiArIyBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KICsjCkBAIC0xMjQ3LDEwICsxMjQ3LDEwIEBAIEluZGV4OiBnZGItNy4xMi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFtZS5leHAKICt9CiArCiArZ2RiX3Rlc3QgImJ0IGZ1 bGwiICJcclxuICtzID0gXCJYXFxcXDAwMFwiXHJcbi4qIgotSW5kZXg6IGdkYi03LjEyL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwkyMDE2LTEwLTIyIDA5 OjQ1OjE1Ljg1MjAxMzQ5MCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmMJMjAxNy0wMi0yNiAxOToxNTozNi42MDA4ODIz MzcgKzAxMDAKIEBAIC0wLDAgKzEsMzAgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTI4MiwxMCArMTI4MiwxMCBAQCBJbmRleDog Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwogKwogKyAgcmV0 dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92 ZXJmbG93LmV4cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvdmxhLW92ZXJmbG93LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEyL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1MjAxMzQ5MCAr MDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvdmxh LW92ZXJmbG93LmV4cAkyMDE3LTAyLTI2IDE5OjE1OjM2LjYwMDg4MjMzNyArMDEwMAogQEAgLTAs MCArMSwxMDkgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgogKwpAQCAtMTM5NiwxMCArMTM5NiwxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCiArZ2RiX3Rlc3QgImJ0IiAiaW4gXFteIFxd KmFib3J0IFxcKC4qIGluIG1haW4gXFwoLioiICJCYWNrdHJhY2UgYWZ0ZXIgYWJvcnQoKSIKICsK ICt2ZXJib3NlIC1sb2cgImtiX2ZvdW5kIGluIGJ0IGFmdGVyIGFib3J0KCkgPSBbZXhwciBbbWVt b3J5X3ZfcGFnZXNfZ2V0XSAqICRwYWdlc2l6ZSAvIDEwMjRdIgotSW5kZXg6IGdkYi03LjEyL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS92bGEuYwkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1MjAxMzQ5MCArMDIwMAor KysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMJMjAx Ny0wMi0yNiAxOToxNTozNi42MDA4ODIzMzcgKzAxMDAKIEBAIC0wLDAgKzEsNTUgQEAKICsvKiBU aGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTQ1 NiwxMCArMTQ1NiwxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92 bGEuYwogKyAgZm9vICg3OCk7CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCTIwMTYtMTAtMjIgMDk6NDU6MTUuODUzMDEzNDk3ICsw MjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEu ZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjAwODgyMzM3ICswMTAwCiBAQCAtMCwwICsxLDYyIEBA CiArIyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAg LTE1MjMsMTAgKzE1MjMsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmxhLmV4cAogK2dkYl90ZXN0ICJwIHRlbXAxIiAiID0gJzEnIDxyZXBlYXRzIDc4IHRpbWVz PiIgInNlY29uZDogcHJpbnQgdGVtcDEiCiArZ2RiX3Rlc3QgInAgdGVtcDIiICIgPSAnMicgPHJl cGVhdHMgNzggdGltZXM+IiAic2Vjb25kOiBwcmludCB0ZW1wMiIKICtnZGJfdGVzdCAicCB0ZW1w MyIgIiA9ICczJyA8cmVwZWF0cyA0OCB0aW1lcz4iICJzZWNvbmQ6IHByaW50IHRlbXAzIgotSW5k ZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjk1OTMuY2MKK0luZGV4OiBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC9nZGI5NTkzLmNjCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiOTU5My5jYwkyMDE2LTEwLTIyIDA5 OjQ1OjE1Ljg1MzAxMzQ5NyArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL2dkYjk1OTMuY2MJMjAxNy0wMi0yNiAxOToxNTozNi42MDE4ODIzNDQgKzAx MDAKIEBAIC0wLDAgKzEsMTgwIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwg dGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE3MDgsMTAgKzE3MDgsMTAgQEAgSW5kZXg6IGdkYi03 LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjk1OTMuY2MKICsgICAgfQogK30KICsKLUluZGV4 OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9nZGI5NTkzLmV4cAorSW5kZXg6IGdkYi03 LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjk1OTMuZXhwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiOTU5My5leHAJMjAxNi0xMC0yMiAw OTo0NToxNS44NTMwMTM0OTcgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVz dHN1aXRlL2dkYi5jcC9nZGI5NTkzLmV4cAkyMDE3LTAyLTI2IDE5OjE1OjM2LjYwMTg4MjM0NCAr MDEwMAogQEAgLTAsMCArMSwxODIgQEAKICsjIENvcHlyaWdodCAyMDA4LCAyMDA5IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTg5NSwxMCArMTg5NSwxMCBAQCBJbmRleDog Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiOTU5My5leHAKICtnZGJfdGVzdCAiYWR2 YW5jZSAkbGluZSIgXAogKyAgIi4qY2F0Y2ggKC4uLikuKiIgXAogKyAgImFkdmFuY2Utb3Zlci10 aHJvdyIKLUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5k LWxvY2xpc3QuUworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMJMjAxNi0xMC0yMiAwOTo0NToxNS44 NTMwMTM0OTcgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUwkyMDE3LTAyLTI2IDE5OjE1OjM2LjYwMTg4MjM0 NCArMDEwMAogQEAgLTAsMCArMSwyNDYgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMjE0NiwxMCArMjE0NiwxMCBAQCBJbmRleDog Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMKICsJ LnN0cmluZwkJImNoYXIiCiArLkx1aW50X3N0cjoKICsJLnN0cmluZwkJInVuc2lnbmVkIGludCIK LUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xp c3QuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEyL2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAJMjAxNi0xMC0yMiAwOTo0NToxNS44 NTQwMTM1MDQgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjAyODgy MzUyICswMTAwCiBAQCAtMCwwICsxLDY2IEBACiArIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIyMTcsMTAgKzIyMTcsMTAgQEAgSW5kZXg6IGdk Yi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAKICsK ICsjIFRoZSByZWdpc3RlciBjb250YWlucyB1bnByZWRpY3RhYmxlIHZhbHVlIC0gdGhlIGFycmF5 IHNpemUuCiArZ2RiX3Rlc3QgInB0eXBlIHJlZ19zdHJpbmciIHt0eXBlID0gY2hhciBcWy0/WzAt OV0rXF19Ci1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJp cHBlZC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdHJpcHBlZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCTIwMTYtMTAtMjIgMDk6NDU6MTUuODU0MDEzNTA0ICswMjAw CisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1z dHJpcHBlZC5jCTIwMTctMDItMjYgMTk6MTU6MzYuNjAyODgyMzUyICswMTAwCiBAQCAtMCwwICsx LDQyIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KICsKQEAgLTIyNjQsMTAgKzIyNjQsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwogKyAgZnVuYzEgKDEsIDIpOwogKyAgcmV0dXJu IDA7CiArfQotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3Ry aXBwZWQuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1NDAxMzUw NCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItc3RyaXBwZWQuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjAyODgyMzUyICswMTAwCiBA QCAtMCwwICsxLDc5IEBACiArIyBDb3B5cmlnaHQgMjAwNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KICsKQEAgLTIzNDgsMTAgKzIzNDgsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCiArZ2RiX3Rlc3QgInN0ZXAiIFwK ICsgICAgICAgICAiZnVuYy4qIFxcKC4qXFwpIGF0IC4qIiBcCiArICAgICAgICAgInN0ZXAiCi1J bmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVy LWRhdGEtbG9jYXRpb24uUworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0 YS1sb2NhdGlvbi5TCTIwMTYtMTAtMjIgMDk6NDU6MTUuODU0MDEzNTA0ICswMjAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVt YmVyLWRhdGEtbG9jYXRpb24uUwkyMDE3LTAyLTI2IDE5OjE1OjM2LjYwMjg4MjM1MiArMDEwMAog QEAgLTAsMCArMSw4MyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBH TlUgZGVidWdnZXIuCiArCkBAIC0yNDM2LDEwICsyNDM2LDEwIEBAIEluZGV4OiBnZGItNy4xMi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2NhdGlvbi5T CiArCiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCiArCS5ieXRlCQkweDAJCQkvKiBU ZXJtaW5hdG9yICovCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9j YXRpb24uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCTIwMTYtMTAtMjIgMDk6NDU6MTUuODU0 MDEzNTA0ICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCTIwMTctMDItMjYgMTk6 MTU6MzYuNjAyODgyMzUyICswMTAwCiBAQCAtMCwwICsxLDM3IEBACiArIyBDb3B5cmlnaHQgMjAw OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTI0NzgsMTAgKzI0NzgsMTAg QEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1l bWJlci1kYXRhLWxvY2F0aW9uLmV4cAogK2NsZWFuX3Jlc3RhcnQgJGJpbmZpbGUKICsKICtnZGJf dGVzdCAicHR5cGUgc3RydWN0IHNvbWVfc3RydWN0IiAidHlwZSA9IHN0cnVjdCBzb21lX3N0cnVj dCB7XFtcclxuIFx0XF0qdm9pZCBmaWVsZDtcW1xyXG4gXHRcXSp9IgotSW5kZXg6IGdkYi03LjEy L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5TCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5n ZS1uby10eXBlLlMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv ZHcyLXN1YnJhbmdlLW5vLXR5cGUuUwkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1NDAxMzUwNCArMDIw MAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzIt c3VicmFuZ2Utbm8tdHlwZS5TCTIwMTctMDItMjYgMTk6MTU6MzYuNjAyODgyMzUyICswMTAwCiBA QCAtMCwwICsxLDEyMSBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBH TlUgZGVidWdnZXIuCiArCkBAIC0yNjA0LDEwICsyNjA0LDEwIEBAIEluZGV4OiBnZGItNy4xMi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuUwogKwkuYnl0ZQkJ MHgwCQkJLyogVGVybWluYXRvciAqLwogKwogKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAq LwotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Ut bm8tdHlwZS5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAkyMDE2LTEwLTIy IDA5OjQ1OjE1Ljg1NTAxMzUxMiArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5leHAJMjAxNy0wMi0yNiAx OToxNTozNi42MDM4ODIzNTkgKzAxMDAKIEBAIC0wLDAgKzEsMzkgQEAKICsjIENvcHlyaWdodCAy MDEyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjY0OCwxMCArMjY0OCwx MCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5n ZS1uby10eXBlLmV4cAogKwogK2dkYl90ZXN0ICJwdHlwZSBub3R5cGVfc3RyaW5nIiB7dHlwZSA9 IGNoYXIgXFsxMjlcXX0KICtnZGJfdGVzdCAicCBub3R5cGVfc3RyaW5nIiAiID0gJ3gnIDxyZXBl YXRzIDEyOSB0aW1lcz4iCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9kd2FyZi1zdHJpZGUuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCTIwMTYtMTAtMjIgMDk6NDU6 MTUuODU1MDEzNTEyICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjAzODgy MzU5ICswMTAwCiBAQCAtMCwwICsxLDQyIEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTI2OTUsMTAgKzI2OTUsMTAgQEAgSW5kZXg6IGdk Yi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAogK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJicmVhay1oZXJlIiAiLipicmVhay1oZXJlLioiCiArZ2Ri X3Rlc3QgInAgYzQwcHQoMSkiICIgPSAnMC1oZWxsby4qIgogK2dkYl90ZXN0ICJwIGM0MHB0KDIp IiAiID0gJzEtaGVsbG8uKiIKLUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2R3YXJmLXN0cmlkZS5mOTAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5mOTAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5mOTAJMjAxNi0xMC0yMiAwOTo0 NToxNS44NTUwMTM1MTIgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5mOTAJMjAxNy0wMi0yNiAxOToxNTozNi42MDM4 ODIzNTkgKzAxMDAKIEBAIC0wLDAgKzEsNDAgQEAKICshIENvcHlyaWdodCAyMDA5IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTI3NDAsMTAgKzI3NDAsMTAgQEAgSW5kZXg6 IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAogKyAg cHJpbnQgKiwgYzQwcHQgICEgYnJlYWstaGVyZQogKwogK2VuZCBwcm9ncmFtIHJlcHJvCi1JbmRl eDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAorSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5l eHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMu ZXhwCTIwMTYtMTAtMjIgMDk6NDU6MTUuODU1MDEzNTEyICswMjAwCisrKysgZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAkyMDE3LTAyLTI2 IDE5OjE1OjM2LjYwMzg4MjM1OSArMDEwMAogQEAgLTAsMCArMSwxNTQgQEAKICsjIENvcHlyaWdo dCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjg5OSwxMCArMjg5 OSwxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWlj LmV4cAogK2dkYl90ZXN0ICJwIHZhcnQoMyw4KSIgIlxcJFxbMC05XF0qID0gOSIKICsjIG1hcHMg dG8gZm9vOjp2YXJ5KDEsMykKICtnZGJfdGVzdCAicCB2YXJ0KDIsOSkiICJcXCRcWzAtOVxdKiA9 IDEwIgotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5m OTAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2R5bmFtaWMuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9keW5hbWljLmY5MAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1NTAxMzUxMiArMDIwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5mOTAJ MjAxNy0wMi0yNiAxOToxNTozNi42MDM4ODIzNTkgKzAxMDAKIEBAIC0wLDAgKzEsOTggQEAKICsh IENvcHlyaWdodCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTMw MDIsMTAgKzMwMDIsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vZHluYW1pYy5mOTAKICsgIGlmICh4ICgxLCAxKSAubmUuIDggLm9yLiB4ICgyLCAyKSAubmUu IDkgLm9yLiB4ICgxLCAyKSAubmUuIDQpIGNhbGwgYWJvcnQKICsgIGlmICh4ICgzLCAxKSAubmUu IDEwKSBjYWxsIGFib3J0CiArZW5kCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9zdHJpbmcuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCTIwMTYtMTAtMjIgMDk6NDU6MTUuODU1MDEzNTEy ICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9zdHJpbmcuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjA0ODgyMzY2ICswMTAwCiBAQCAtMCww ICsxLDU5IEBACiArIyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KICsKQEAgLTMwNjYsMTAgKzMwNjYsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2 YXItZmluaXNoIgogK2dkYl90ZXN0ICJwIGUiICJcXCRcWzAtOVxdKiA9ICdlICAgJyIgInAgZSBy ZS1zZXQiCiArZ2RiX3Rlc3QgInAgZiIgIlxcJFxbMC05XF0qID0gXFwoXFwoICdmICAgJywgJ2Yg ICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJ1xcKSBcXCggJ2YyICAn LCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnXFwpIFxcKCAn ZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICdcXCkg XFwpIiAicCAqZiByZS1zZXQiCi1JbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9zdHJpbmcuZjkwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkwCTIwMTYtMTAtMjIgMDk6NDU6MTUuODU2MDEzNTE5ICsw MjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9z dHJpbmcuZjkwCTIwMTctMDItMjYgMTk6MTU6MzYuNjA0ODgyMzY2ICswMTAwCiBAQCAtMCwwICsx LDM3IEBACiArISBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICshCkBAIC0zMTA4LDEwICszMTA4LDEwIEBAIEluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3N0cmluZy5mOTAKICsgIGggPSAnaCcKICsgIGNhbGwgZm9vIChnLCBoKQog K2VuZAotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2Uu ZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9zdWJyYW5nZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3N1YnJhbmdlLmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1NjAxMzUxOSArMDIwMAorKysr IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2Uu ZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjA0ODgyMzY2ICswMTAwCiBAQCAtMCwwICsxLDcyIEBA CiArIyBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAg LTMxODUsMTAgKzMxODUsMTAgQEAgSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3VicmFuZ2UuZXhwCiArZ2RiX3VubG9hZAogK3NldHVwX2tmYWlsICIqLSotKiIgInZs YXJlZ3Jlc3Npb24vOTk5OSIKICtnZGJfdGVzdCB7cCAkYSAoMywgMjoyKX0geyA9IFwoMjNcKX0K LUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAor SW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3Vi cmFuZ2UuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9z dWJyYW5nZS5mOTAJMjAxNi0xMC0yMiAwOTo0NToxNS44NTYwMTM1MTkgKzAyMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAky MDE3LTAyLTI2IDE5OjE1OjM2LjYwNDg4MjM2NiArMDEwMAogQEAgLTAsMCArMSwyOCBAQAogKyEg Q29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMzIx OCwxMCArMzIxOCwxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9zdWJyYW5nZS5mOTAKICsgIHB0ciA9PiBhCiArICB3cml0ZSAoKiwqKSBhICAgICAgICAgICAg ICAgICAhIGJyZWFrLXN0YXRpYwogK2VuZAotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUv Z2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGIt Ny4xMi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuYwkyMDE2LTEwLTIy IDA5OjQ1OjE1Ljg1NjAxMzUxOSArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCTIwMTctMDItMjYgMTk6MTU6MzYu NjA0ODgyMzY2ICswMTAwCiBAQCAtMCwwICsxLDI2IEBACiArLyogQ29weXJpZ2h0IDIwMTEgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0zMjQ5LDEwICszMjQ5LDEwIEBAIElu ZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuYwog KwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLm1p L21pMi12YXItc3RhbGUtdHlwZS5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIv dGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAkyMDE2LTEwLTIy IDA5OjQ1OjE1Ljg1NjAxMzUxOSArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5leHAJMjAxNy0wMi0yNiAxOToxNToz Ni42MDQ4ODIzNjYgKzAxMDAKIEBAIC0wLDAgKzEsNTcgQEAKICsjIENvcHlyaWdodCAyMDExIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyMKQEAgLTMzMTEsMTAgKzMzMTEsMTAgQEAg SW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5l eHAKICttaV9jcmVhdGVfdmFyb2JqICJ2bGEiICJ2bGEiICJjcmVhdGUgbG9jYWwgdmFyaWFibGUg dmxhIgogKwogK21pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiAiXFxeZG9uZSxjaGFuZ2VsaXN0 PS4qIiAiLXZhci11cGRhdGUgKiIKLUluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5v cHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIw Ny9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1m dW5jLmMJMjAxNi0xMC0yMiAwOTo0NToxNS44NTYwMTM1MTkgKzAyMDAKKysrKyBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5j LmMJMjAxNy0wMi0yNiAxOToxNTozNi42MDQ4ODIzNjYgKzAxMDAKIEBAIC0wLDAgKzEsMjIgQEAK ICsvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0z MzM4LDEwICszMzM4LDEwIEBAIEluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQv YXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMKICt7CiArICByZXR1cm4gYXJyWzBdOwogK30KLUlu ZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5j CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5 LWZyb20tcmVnaXN0ZXIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLm9w dC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMJMjAxNi0xMC0yMiAwOTo0NToxNS44NTYwMTM1MTkgKzAy MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXkt ZnJvbS1yZWdpc3Rlci5jCTIwMTctMDItMjYgMTk6MTU6MzYuNjA1ODgyMzczICswMTAwCiBAQCAt MCwwICsxLDI4IEBACiArLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVn Z2VyLgogKwpAQCAtMzM3MSwxMCArMzM3MSwxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYwogKwogKyAgcmV0dXJuIDA7CiArfQot SW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVy LmV4cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9h cnJheS1mcm9tLXJlZ2lzdGVyLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEyL2dkYi90ZXN0c3VpdGUv Z2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1NzAx MzUyNyArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLm9w dC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4cAkyMDE3LTAyLTI2IDE5OjE1OjM2LjYwNTg4MjM3MyAr MDEwMAogQEAgLTAsMCArMSwzMyBAQAogKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiArIwpAQCAtMzQwOSwxMCArMzQwOSwxMCBAQCBJbmRleDogZ2RiLTcu MTIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCiArIyBTZWVu IHJlZ3Jlc3Npb246CiArIyBBZGRyZXNzIHJlcXVlc3RlZCBmb3IgaWRlbnRpZmllciAiYXJyIiB3 aGljaCBpcyBpbiByZWdpc3RlciAkcmRpCiArZ2RiX3Rlc3QgInAgYXJyXFswXF0iICJcXCRcWzAt OVxdKyA9IDQyIgotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9mb3J0cmFu LXN0cmluZy5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvZm9ydHJhbi1zdHJpbmcuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0 ZS9nZGIub3B0L2ZvcnRyYW4tc3RyaW5nLmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1NzAxMzUy NyArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9m b3J0cmFuLXN0cmluZy5leHAJMjAxNy0wMi0yNiAxOToxNTozNi42MDU4ODIzNzMgKzAxMDAKIEBA IC0wLDAgKzEsMzkgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgogKwpAQCAtMzQ1MywxMCArMzQ1MywxMCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rl c3RzdWl0ZS9nZGIub3B0L2ZvcnRyYW4tc3RyaW5nLmV4cAogK2dkYl90ZXN0ICJmcmFtZSIgIi4q cz0nZm9vJy4qIgogK2dkYl90ZXN0ICJwdHlwZSBzIiAidHlwZSA9IGNoYXJhY3RlclxcKjMiCiAr Z2RiX3Rlc3QgInAgcyIgIlxcJFxbMC05XF0qID0gJ2ZvbyciCi1JbmRleDogZ2RiLTcuMTIvZ2Ri L3Rlc3RzdWl0ZS9nZGIub3B0L2ZvcnRyYW4tc3RyaW5nLmY5MAorSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9mb3J0cmFuLXN0cmluZy5mOTAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvZm9ydHJhbi1zdHJpbmcuZjkwCTIw MTYtMTAtMjIgMDk6NDU6MTUuODU3MDEzNTI3ICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2ZvcnRyYW4tc3RyaW5nLmY5MAkyMDE3LTAyLTI2IDE5 OjE1OjM2LjYwNTg4MjM3MyArMDEwMAogQEAgLTAsMCArMSwyOCBAQAogKyEgQ29weXJpZ2h0IDIw MDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMzQ4NiwxMCArMzQ4Niwx MCBAQCBJbmRleDogZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2ZvcnRyYW4tc3RyaW5n LmY5MAogKyAgcHJvZ3JhbSBtYWluCiArICBjYWxsIGYgKCdmb28nKQogKyAgZW5kCi1JbmRleDog Z2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAKK0luZGV4OiBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCTIwMTYt MTAtMjIgMDk6NDU6MTUuODU3MDEzNTI3ICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAJMjAxNy0wMi0yNiAxOToxNTozNi42 MDU4ODIzNzMgKzAxMDAKIEBAIC0wLDAgKzEsMTA0IEBACiArIyBDb3B5cmlnaHQgMjAwOCwgMjAw OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0zNTk1LDEwICszNTk1LDEw IEBAIEluZGV4OiBnZGItNy4xMi9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAog K30KICtnZGJfdGVzdCAicHJpbnQgRHluQXJyQ2hhciIgIi4qID0gJ2FiY2RlZmdoaWprbG0nIiAi UHJpbnQgZHluYW1pYyBhcnJheSBvZiBjaGFyIgogKwotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0 c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMi9n ZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLnBhcwkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1 NzAxMzUyNyArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2Ri LnBhc2NhbC9hcnJheXMucGFzCTIwMTctMDItMjYgMTk6MTU6MzYuNjA1ODgyMzczICswMTAwCiBA QCAtMCwwICsxLDgyIEBACiArewogKyBDb3B5cmlnaHQgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KQEAgLTM2ODIsMTEgKzM2ODIsMTEgQEAgSW5kZXg6IGdkYi03LjEy L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCiArICBzIDo9ICd0ZXN0JyMwJ3N0 cmluZyc7CiArICB3cml0ZWxuKHMpOyB7IHNldCBicmVha3BvaW50IDIgaGVyZSB9CiArZW5kLgot SW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKK0luZGV4OiBnZGItNy4x Mi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTIub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMTAtMjIgMDk6NDU6 MTUuMTA2MDA3OTg2ICswMjAwCi0rKysgZ2RiLTcuMTIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4 cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1ODAxMzUzNCArMDIwMAotQEAgLTE3Myw2ICsxNzMsMTEg QEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5l eHAJMjAxNy0wMi0yNiAxOToxNToyOC41NjQ4MjQ4MzYgKzAxMDAKKysrKyBnZGItNy4xMi41MC4y MDE3MDIwNy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTctMDItMjYgMTk6MTU6MzYuNjA3 ODgyMzg3ICswMTAwCitAQCAtMTc4LDYgKzE3OCwxMSBAQAogIAkgICAgc2VuZF9nZGIgInlcbiIK ICAJICAgIGV4cF9jb250aW51ZQogIAl9CkBAIC0zNjk4LDEwICszNjk4LDEwIEBAIEluZGV4OiBn ZGItNy4xMi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiAgCS1yZSAiRGlzY2FyZCBzeW1ib2wg dGFibGUgZnJvbSAuKnkgb3Igbi4qJCIgewogIAkgICAgc2VuZF9nZGIgInlcbiIKICAJICAgIGV4 cF9jb250aW51ZQotSW5kZXg6IGdkYi03LjEyL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTIub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwu ZXhwCTIwMTYtMDgtMDEgMTc6NTA6MjEuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMTIvZ2Ri L3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAkyMDE2LTEwLTIyIDA5OjQ1OjE1Ljg1OTAxMzU0MSAr MDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFz Y2FsLmV4cAkyMDE3LTAyLTI2IDE5OjE1OjI4LjU2NTgyNDg0NCArMDEwMAorKysrIGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAxNy0wMi0yNiAxOTox NTozNi42MDc4ODIzODcgKzAxMDAKIEBAIC0zNyw2ICszNyw5IEBACiAgICAgIGdsb2JhbCBwYXNj YWxfY29tcGlsZXJfaXNfZnBjCiAgICAgIGdsb2JhbCBncGNfY29tcGlsZXIKCmRpZmYgLS1naXQg YS9nZGItYXJjaGVyLnBhdGNoIGIvZ2RiLWFyY2hlci5wYXRjaAppbmRleCA4ZDkyNjVmLi45NzA3 NDVkIDEwMDY0NAotLS0gYS9nZGItYXJjaGVyLnBhdGNoCisrKyBiL2dkYi1hcmNoZXIucGF0Y2gK QEAgLTIsNyArMiw3IEBAIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9Qcm9qZWN0QXJj aGVyCiBodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvQXJjaGVyQnJhbmNoTWFuYWdlbWVu dAogCiBHSVQgc25hcHNob3Q6Ci1jb21taXQgY2ZlZTY0ZWU4NjlhNmE2ZTRhYjBiNjRhZjE0OWQ0 Y2Y1OTUxN2Q4MAorY29tbWl0IGUyYzBjYmY5M2NmMjA2NjdiZTQ0OWE3NWQyYWRhNWQzNzdkZGIw OTAKIAogdHJvbWV5L3B5dGhvbgogCkBAIC0xNiwxMCArMTYsMTAgQEAgaW5kZXggMDAwMDAwMC4u MTczYjhlYQogK1RoaXMgYnJhbmNoIG9yaWdpbmFsbHkgaGVsZCB0aGUgUHl0aG9uIGNvZGUgZm9y IGdkYi4gIEl0IHN0aWxsIGV4aXN0cwogK2JlY2F1c2UgYSBzbWFsbCBhbW91bnQgb2YgY29kZSBo ZXJlIGhhcyBub3QgeWV0IGJlZW4gbWVyZ2VkIHVwc3RyZWFtLgogZGlmZiAtLWdpdCBhL2dkYi9N YWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgotaW5kZXggNWFmNjEwMy4uOWM2OWNiMCAxMDA2 NDQKK2luZGV4IDI2OGMyYzYuLjQwNDVlZjcgMTAwNjQ0CiAtLS0gYS9nZGIvTWFrZWZpbGUuaW4K ICsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTE1NTMsNiArMTU1MywxMiBAQCBzdGFtcC1oOiAk KHNyY2RpcikvY29uZmlnLmluIGNvbmZpZy5zdGF0dXMKK0BAIC0yMzQ1LDYgKzIzNDUsMTIgQEAg c3RhbXAtaDogJChzcmNkaXIpL2NvbmZpZy5pbiBjb25maWcuc3RhdHVzCiAgCSAgQ09ORklHX0xJ TktTPSBcCiAgCSAgJChTSEVMTCkgY29uZmlnLnN0YXR1cwogIApAQCAtMzMsMjEgKzMzLDIyIEBA IGluZGV4IDVhZjYxMDMuLjljNjljYjAgMTAwNjQ0CiAgCSQoU0hFTEwpIGNvbmZpZy5zdGF0dXMg LS1yZWNoZWNrCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmlu IGIvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCi1pbmRleCAzZjIzNTE2Li5iNWQ2Mzkw IDEwMDY0NAoraW5kZXggMzA0ZDRiMC4uZDIwMDdhNCAxMDA2NDQKIC0tLSBhL2dkYi9kYXRhLWRp cmVjdG9yeS9NYWtlZmlsZS5pbgogKysrIGIvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmlu Ci1AQCAtNjYsNyArNjYsMTAgQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKK0BAIC03Nyw3ICs3Nywx MSBAQCBQWVRIT05fRklMRV9MSVNUID0gXAorIAlnZGIvdHlwZXMucHkgXAogIAlnZGIvdW53aW5k ZXIucHkgXAotIAlnZGIvcHJvbXB0LnB5IFwKICAJZ2RiL3htZXRob2QucHkgXAogKwlnZGIvdHlw ZXMucHkgXAogIAlnZGIvY29tbWFuZC9fX2luaXRfXy5weSBcCiArCWdkYi9jb21tYW5kL2lnbm9y ZV9lcnJvcnMucHkgXAogKwlnZGIvY29tbWFuZC9wYWhvbGUucHkgXAotIAlnZGIvY29tbWFuZC94 bWV0aG9kcy5weSBcCisrCWdkYi9jb21tYW5kL3htZXRob2RzLnB5IFwKKyAJZ2RiL2NvbW1hbmQv ZXhwbG9yZS5weSBcCiAgCWdkYi9jb21tYW5kL2ZyYW1lX2ZpbHRlcnMucHkgXAotIAlnZGIvY29t bWFuZC91bndpbmRlcnMucHkgXAotQEAgLTc4LDYgKzgxLDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9 IFwKKyAJZ2RiL2NvbW1hbmQvcHJldHR5X3ByaW50ZXJzLnB5IFwKK0BAIC04OSw2ICs5Myw4IEBA IFBZVEhPTl9GSUxFX0xJU1QgPSBcCiAgCWdkYi9mdW5jdGlvbi9hc19zdHJpbmcucHkgXAogIAln ZGIvZnVuY3Rpb24vY2FsbGVyX2lzLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL3N0cmZucy5weSBcCkBA IC01NywxMCArNTgsMTAgQEAgaW5kZXggM2YyMzUxNi4uYjVkNjM5MCAxMDA2NDQKICAJZ2RiL3By aW50ZXIvYm91bmRfcmVnaXN0ZXJzLnB5CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4 aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KLWluZGV4IGY1ZGRlNjEuLjFkOTJiZDYgMTAwNjQ0 CitpbmRleCA5NjIzMjViLi41ODllMjJjIDEwMDY0NAogLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5m bwogKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotQEAgLTEyMjUsNiArMTIyNSwxNiBAQCBmb3Ig cmVtb3RlIGRlYnVnZ2luZy4KK0BAIC0xMjMwLDYgKzEyMzAsMTYgQEAgZm9yIHJlbW90ZSBkZWJ1 Z2dpbmcuCiAgUnVuIHVzaW5nIEB2YXJ7ZGV2aWNlfSBmb3IgeW91ciBwcm9ncmFtJ3Mgc3RhbmRh cmQgaW5wdXQgYW5kIG91dHB1dC4KICBAYyBGSVhNRToga2luZ2RvbiB0aGlua3MgdGhlcmUgaXMg bW9yZSB0byAtdHR5LiAgSW52ZXN0aWdhdGUuCiAgCkBAIC03OCw3ICs3OSw3IEBAIGluZGV4IGY1 ZGRlNjEuLjFkOTJiZDYgMTAwNjQ0CiAgQGl0ZW0gLXR1aQogIEBjaW5kZXggQGNvZGV7LS10dWl9 CiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9weXRob24udGV4aSBiL2dkYi9kb2MvcHl0aG9uLnRleGkK LWluZGV4IGExN2UzN2QuLmM1NjA2OGIgMTAwNjQ0CitpbmRleCBjM2VhMjAzLi5hM2JkYjk4IDEw MDY0NAogLS0tIGEvZ2RiL2RvYy9weXRob24udGV4aQogKysrIGIvZ2RiL2RvYy9weXRob24udGV4 aQogQEAgLTg4LDggKzg4LDYgQEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6 CkBAIC0xMTEsNyArMTEyLDcgQEAgaW5kZXggMDVhMzhiMi4uOTgwMWZkZiAxMDA2NDQKICAgIHNl dCB2YXJpYWJsZSAkZ2RiX2luaXRfZG9uZSA9IDEKICAKIGRpZmYgLS1naXQgYS9nZGIvbWFpbi5j IGIvZ2RiL21haW4uYwotaW5kZXggNTQ3NzM3OS4uYjdlNDEzZiAxMDA2NDQKK2luZGV4IDMwZTI3 YzIuLjA0NjBjMjggMTAwNjQ0CiAtLS0gYS9nZGIvbWFpbi5jCiArKysgYi9nZGIvbWFpbi5jCiBA QCAtMzMsNiArMzMsNyBAQApAQCAtMTIyLDE2ICsxMjMsMTYgQEAgaW5kZXggNTQ3NzM3OS4uYjdl NDEzZiAxMDA2NDQKICAjaW5jbHVkZSAic291cmNlLmgiCiAgI2luY2x1ZGUgImNsaS9jbGktY21k cy5oIgogICNpbmNsdWRlICJvYmpmaWxlcy5oIgotQEAgLTQ1OSw2ICs0NjAsOCBAQCBjYXB0dXJl ZF9tYWluICh2b2lkICpkYXRhKQotICAgY2hhciAqY2RhcmcgPSBOVUxMOwotICAgY2hhciAqdHR5 YXJnID0gTlVMTDsKK0BAIC00NTksNyArNDYwLDcgQEAgc3RydWN0IGNtZGFyZworIH07CiAgCi0r ICBpbnQgcHl0aG9uX3NjcmlwdCA9IDA7Ci0rCi0gICAvKiBUaGVzZSBhcmUgc3RhdGljIHNvIHRo YXQgd2UgY2FuIHRha2UgdGhlaXIgYWRkcmVzcyBpbiBhbgotICAgICAgaW5pdGlhbGl6ZXIuICAq LwotICAgc3RhdGljIGludCBwcmludF9oZWxwOwotQEAgLTY2MywxMCArNjY2LDE0IEBAIGNhcHR1 cmVkX21haW4gKHZvaWQgKmRhdGEpCisgc3RhdGljIHZvaWQKKy1jYXB0dXJlZF9tYWluXzEgKHN0 cnVjdCBjYXB0dXJlZF9tYWluX2FyZ3MgKmNvbnRleHQpCisrY2FwdHVyZWRfbWFpbl8xIChzdHJ1 Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0LCBpbnQgJnB5dGhvbl9zY3JpcHQpCisgewor ICAgaW50IGFyZ2MgPSBjb250ZXh0LT5hcmdjOworICAgY2hhciAqKmFyZ3YgPSBjb250ZXh0LT5h cmd2OworQEAgLTY3NCwxMCArNjc1LDE0IEBAIGNhcHR1cmVkX21haW5fMSAoc3RydWN0IGNhcHR1 cmVkX21haW5fYXJncyAqY29udGV4dCkKICAgICAgICB7ImFyZ3MiLCBub19hcmd1bWVudCwgJnNl dF9hcmdzLCAxfSwKICAgICAgICB7ImwiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ2wnfSwKICAg ICAgICB7InJldHVybi1jaGlsZC1yZXN1bHQiLCBub19hcmd1bWVudCwgJnJldHVybl9jaGlsZF9y ZXN1bHQsIDF9LApAQCAtMTQ3LDcgKzE0OCw3IEBAIGluZGV4IDU0NzczNzkuLmI3ZTQxM2YgMTAw NjQ0CiAgICAgICAgewogIAlpbnQgb3B0aW9uX2luZGV4OwogIAotQEAgLTY4NCw2ICs2OTEsOSBA QCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTY5NSw2ICs3MDAsOSBAQCBjYXB0dXJl ZF9tYWluXzEgKHN0cnVjdCBjYXB0dXJlZF9tYWluX2FyZ3MgKmNvbnRleHQpCiAgCSAgY2FzZSAw OgogIAkgICAgLyogTG9uZyBvcHRpb24gdGhhdCBqdXN0IHNldHMgYSBmbGFnLiAgKi8KICAJICAg IGJyZWFrOwpAQCAtMTU3LDcgKzE1OCw3IEBAIGluZGV4IDU0NzczNzkuLmI3ZTQxM2YgMTAwNjQ0 CiAgCSAgY2FzZSBPUFRfU0U6CiAgCSAgICBzeW1hcmcgPSBvcHRhcmc7CiAgCSAgICBleGVjYXJn ID0gb3B0YXJnOwotQEAgLTg2NCw3ICs4NzQsMzEgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0 YSkKK0BAIC04NTMsNyArODYxLDMxIEBAIGNhcHR1cmVkX21haW5fMSAoc3RydWN0IGNhcHR1cmVk X21haW5fYXJncyAqY29udGV4dCkKICAKICAgIC8qIE5vdyB0aGF0IGdkYl9pbml0IGhhcyBjcmVh dGVkIHRoZSBpbml0aWFsIGluZmVyaW9yLCB3ZSdyZSBpbgogICAgICAgcG9zaXRpb24gdG8gc2V0 IGFyZ3MgZm9yIHRoYXQgaW5mZXJpb3IuICAqLwpAQCAtMTkwLDcgKzE5MSw3IEBAIGluZGV4IDU0 NzczNzkuLmI3ZTQxM2YgMTAwNjQ0CiAgICAgIHsKICAgICAgICAvKiBUaGUgcmVtYWluaW5nIG9w dGlvbnMgYXJlIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyBmb3IgdGhlCiAgCSBpbmZlcmlvci4g IFRoZSBmaXJzdCBvbmUgaXMgdGhlIHN5bS9leGVjIGZpbGUsIGFuZCB0aGUgcmVzdAotQEAgLTEx MjcsNyArMTE2MSw4IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtMTEyMyw3ICsx MTU1LDggQEAgY2FwdHVyZWRfbWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250 ZXh0KQogIAogICAgLyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21t YW5kIGZpbGVzIGhhdmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC0yMDAsOSArMjAxLDE0IEBA IGluZGV4IDU0NzczNzkuLmI3ZTQxM2YgMTAwNjQ0CiAgCiAgICBpZiAoYmF0Y2hfZmxhZykKICAg ICAgewotQEAgLTExMzgsMTMgKzExNzMsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkK LSAgIC8qIFNob3cgdGltZSBhbmQvb3Igc3BhY2UgdXNhZ2UuICAqLwotICAgZG9fY2xlYW51cHMg KHByZV9zdGF0X2NoYWluKTsKK0BAIC0xMTM2LDE2ICsxMTY5LDI5IEBAIHN0YXRpYyB2b2lkCisg Y2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKKyB7CisgICBzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9h cmdzICpjb250ZXh0ID0gKHN0cnVjdCBjYXB0dXJlZF9tYWluX2FyZ3MgKikgZGF0YTsKKysgIGlu dCBweXRob25fc2NyaXB0ID0gMDsKKyAKKy0gIGNhcHR1cmVkX21haW5fMSAoY29udGV4dCk7Cisr ICBjYXB0dXJlZF9tYWluXzEgKGNvbnRleHQsIHB5dGhvbl9zY3JpcHQpOwogIAogLSAgLyogTk9U RTogY2FnbmV5LzE5OTktMTEtMDc6IFRoZXJlIGlzIHByb2JhYmx5IG5vIHJlYXNvbiBmb3Igbm90 CiAtICAgICBtb3ZpbmcgdGhpcyBsb29wIGFuZCB0aGUgY29kZSBmb3VuZCBpbiBjYXB0dXJlZF9j b21tYW5kX2xvb3AoKQpAQCAtMjExLDE2ICsyMTcsMTYgQEAgaW5kZXggNTQ3NzM3OS4uYjdlNDEz ZiAxMDA2NDQKIC0gIHdoaWxlICgxKQogKyNpZiBIQVZFX1BZVEhPTgogKyAgaWYgKHB5dGhvbl9z Y3JpcHQpCi0gICAgIHsKLS0gICAgICBjYXRjaF9lcnJvcnMgKGNhcHR1cmVkX2NvbW1hbmRfbG9v cCwgMCwgIiIsIFJFVFVSTl9NQVNLX0FMTCk7CisrICAgIHsKICsgICAgICBleHRlcm4gaW50IHBh Z2luYXRpb25fZW5hYmxlZDsKICsgICAgICBwYWdpbmF0aW9uX2VuYWJsZWQgPSAwOwotKyAgICAg IHJ1bl9weXRob25fc2NyaXB0IChhcmdjIC0gb3B0aW5kLCAmYXJndltvcHRpbmRdKTsKLSsgICAg ICByZXR1cm4gMTsKKysgICAgICBydW5fcHl0aG9uX3NjcmlwdCAoY29udGV4dC0+YXJnYyAtIG9w dGluZCwgJmNvbnRleHQtPmFyZ3Zbb3B0aW5kXSk7CisrICAgICAgcmV0dXJuOwogKyAgICB9CiAr ICBlbHNlCiArI2VuZGlmCi0rICAgIHsKKyAgICAgeworLSAgICAgIGNhdGNoX2Vycm9ycyAoY2Fw dHVyZWRfY29tbWFuZF9sb29wLCAwLCAiIiwgUkVUVVJOX01BU0tfQUxMKTsKICsgICAgICAvKiBO T1RFOiBjYWduZXkvMTk5OS0xMS0wNzogVGhlcmUgaXMgcHJvYmFibHkgbm8gcmVhc29uIGZvciBu b3QKICsJIG1vdmluZyB0aGlzIGxvb3AgYW5kIHRoZSBjb2RlIGZvdW5kIGluIGNhcHR1cmVkX2Nv bW1hbmRfbG9vcCgpCiArCSBpbnRvIHRoZSBjb21tYW5kX2xvb3AoKSBwcm9wZXIuICBUaGUgbWFp biB0aGluZyBob2xkaW5nIGJhY2sgdGhhdApAQCAtMjMyLDcgKzIzOCw3IEBAIGluZGV4IDU0Nzcz NzkuLmI3ZTQxM2YgMTAwNjQ0CiAgICAgIH0KICAgIC8qIE5vIGV4aXQgLS0gZXhpdCBpcyB0aHJv dWdoIHF1aXRfY29tbWFuZC4gICovCiAgfQotQEAgLTExODcsNiArMTIzNCwxMiBAQCBwcmludF9n ZGJfaGVscCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKK0BAIC0xMTg4LDYgKzEyMzQsMTIgQEAg cHJpbnRfZ2RiX2hlbHAgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgICBmcHV0c191bmZpbHRl cmVkIChfKCJcCiAgVGhpcyBpcyB0aGUgR05VIGRlYnVnZ2VyLiAgVXNhZ2U6XG5cblwKICAgICAg Z2RiIFtvcHRpb25zXSBbZXhlY3V0YWJsZS1maWxlIFtjb3JlLWZpbGUgb3IgcHJvY2Vzcy1pZF1d XG5cCkBAIC0yNDUsNyArMjUxLDcgQEAgaW5kZXggNTQ3NzM3OS4uYjdlNDEzZiAxMDA2NDQKICAg ICAgZ2RiIFtvcHRpb25zXSAtLWFyZ3MgZXhlY3V0YWJsZS1maWxlIFtpbmZlcmlvci1hcmd1bWVu dHMgLi4uXVxuXG5cCiAgIiksIHN0cmVhbSk7CiAgICBmcHV0c191bmZpbHRlcmVkIChfKCJcCi1A QCAtMTIzMSw2ICsxMjg0LDEzIEBAIE91dHB1dCBhbmQgdXNlciBpbnRlcmZhY2UgY29udHJvbDpc blxuXAorQEAgLTEyMzIsNiArMTI4NCwxMyBAQCBPdXRwdXQgYW5kIHVzZXIgaW50ZXJmYWNlIGNv bnRyb2w6XG5cblwKICAjZW5kaWYKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICAgIC0tZGJ4 ICAgICAgICAgICAgICBEQlggY29tcGF0aWJpbGl0eSBtb2RlLlxuXApAQCAtNDQyLDggKzQ0OCwy MiBAQCBpbmRleCAwMDAwMDAwLi44NzQyNjgwCiArICAgICAgICByZXR1cm4gd2FudGVkID09IGZv dW5kCiArCiArSW5TY29wZSAoKQorZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLWludGVy bmFsLmggYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCitpbmRleCA0ZGQ0MTNkLi4yYWQ0 MDcxIDEwMDY0NAorLS0tIGEvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAorKysrIGIvZ2Ri L3B5dGhvbi9weXRob24taW50ZXJuYWwuaAorQEAgLTU1MSw2ICs1NTEsOSBAQCBjbGFzcyBnZGJw eV9lbnRlcl92YXJvYmogOiBwdWJsaWMgZ2RicHlfZW50ZXIKKyAKKyB9OworIAorK3N0cnVjdCBj bGVhbnVwICplbnN1cmVfcHl0aG9uX2VudiAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisrCQkJ CSAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSk7CisrCisgZXh0ZXJuIHN0 cnVjdCBnZGJhcmNoICpweXRob25fZ2RiYXJjaDsKKyBleHRlcm4gY29uc3Qgc3RydWN0IGxhbmd1 YWdlX2RlZm4gKnB5dGhvbl9sYW5ndWFnZTsKKyAKIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5 dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwotaW5kZXggNjIxZTIwMS4uNzAzYTFhMCAxMDA2 NDQKK2luZGV4IDczZmIzZDAuLjA3ODljMTYgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5dGhv bi5jCiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCiBAQCAtOTUsNiArOTUsOCBAQCBjb25zdCBz dHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gZXh0ZW5zaW9uX2xhbmd1YWdlX3B5dGhvbiA9 CkBAIC00NTUsNyArNDc1LDM3IEBAIGluZGV4IDYyMWUyMDEuLjcwM2ExYTAgMTAwNjQ0CiAgI2lu Y2x1ZGUgInRhcmdldC5oIgogICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKICAjaW5jbHVkZSAiaW50 ZXJwcy5oIgotQEAgLTEyNjMsNiArMTI2NSw5MiBAQCBnZGJweV9wcmludF9zdGFjayAodm9pZCkK K0BAIC0yNDIsNiArMjQ0LDI5IEBAIGdkYnB5X2VudGVyOjp+Z2RicHlfZW50ZXIgKCkKKyAgIHJl c3RvcmVfYWN0aXZlX2V4dF9sYW5nIChtX3ByZXZpb3VzX2FjdGl2ZSk7CisgfQorIAorK3N0YXRp YyB2b2lkCisrcmVzdG9yZV9weXRob25fZW52ICh2b2lkICpwKQorK3sKKysgIGdkYnB5X2VudGVy ICplbnYgPSAoZ2RicHlfZW50ZXIgKikgcDsKKysKKysgIGRlbGV0ZSBlbnY7CisrfQorKworKy8q IENhbGxlZCBiZWZvcmUgZW50ZXJpbmcgdGhlIFB5dGhvbiBpbnRlcnByZXRlciB0byBpbnN0YWxs IHRoZQorKyAgIGN1cnJlbnQgbGFuZ3VhZ2UgYW5kIGFyY2hpdGVjdHVyZSB0byBiZSB1c2VkIGZv ciBQeXRob24gdmFsdWVzLgorKyAgIEFsc28gc2V0IHRoZSBhY3RpdmUgZXh0ZW5zaW9uIGxhbmd1 YWdlIGZvciBHREIgc28gdGhhdCBTSUdJTlQncworKyAgIGFyZSBkaXJlY3RlZCBvdXIgd2F5LCBh bmQgaWYgbmVjZXNzYXJ5IGluc3RhbGwgdGhlIHJpZ2h0IFNJR0lOVAorKyAgIGhhbmRsZXIuICAq LworKworK3N0cnVjdCBjbGVhbnVwICoKKytlbnN1cmVfcHl0aG9uX2VudiAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsCisrICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9k ZWZuICpsYW5ndWFnZSkKKyt7CisrICBnZGJweV9lbnRlciAqZW52ID0gbmV3IGdkYnB5X2VudGVy IChnZGJhcmNoLCBsYW5ndWFnZSk7CisrCisrICByZXR1cm4gbWFrZV9jbGVhbnVwIChyZXN0b3Jl X3B5dGhvbl9lbnYsIGVudik7CisrfQorKworIC8qIFNldCB0aGUgcXVpdCBmbGFnLiAgKi8KKyAK KyBzdGF0aWMgdm9pZAorQEAgLTExOTIsNiArMTIxNyw5MiBAQCBnZGJweV9wcmludF9zdGFjayAo dm9pZCkKICAKICAvKiBSZXR1cm4gdGhlIGN1cnJlbnQgUHJvZ3NwYWNlLgogICAgIFRoZXJlIGFs d2F5cyBpcyBvbmUuICAqLwpAQCAtNDczLDcgKzUyMyw3IEBAIGluZGV4IDYyMWUyMDEuLjcwM2Ex YTAgMTAwNjQ0CiArICBpZiAoISBydW5uaW5nX3B5dGhvbl9zY3JpcHQgfHwgaW5fY2xpKQogKyAg ICByZXR1cm4gUHlFcnJfRm9ybWF0IChQeUV4Y19SdW50aW1lRXJyb3IsICJjYW5ub3QgaW52b2tl IENMSSByZWN1cnNpdmVseSIpOwogKyAgCi0rICBpZiAodWlfb3V0X2lzX21pX2xpa2VfcCAoY3Vy cmVudF91aW91dCkpCisrICBpZiAoY3VycmVudF91aW91dC0+aXNfbWlfbGlrZV9wICgpKQogKyAg ICByZXR1cm4gUHlFcnJfRm9ybWF0IChQeUV4Y19SdW50aW1lRXJyb3IsIF8oIkNhbm5vdCBpbnZv a2UgQ0xJIGZyb20gTUkuIikpOwogKwogKyAgaW5fY2xpID0gMTsKQEAgLTU0OCw3ICs1OTgsNyBA QCBpbmRleCA2MjFlMjAxLi43MDNhMWEwIDEwMDY0NAogIAogIHN0YXRpYyBQeU9iamVjdCAqCiAg Z2RicHlfZ2V0X2N1cnJlbnRfcHJvZ3NwYWNlIChQeU9iamVjdCAqdW51c2VkMSwgUHlPYmplY3Qg KnVudXNlZDIpCi1AQCAtMTk4MSw2ICsyMDY5LDggQEAgUHlNZXRob2REZWYgcHl0aG9uX0dkYk1l dGhvZHNbXSA9CitAQCAtMTg4OCw2ICsxOTk5LDggQEAgUHlNZXRob2REZWYgcHl0aG9uX0dkYk1l dGhvZHNbXSA9CiAgRXZhbHVhdGUgY29tbWFuZCwgYSBzdHJpbmcsIGFzIGEgZ2RiIENMSSBjb21t YW5kLiAgT3B0aW9uYWxseSByZXR1cm5zXG5cCiAgYSBQeXRob24gU3RyaW5nIGNvbnRhaW5pbmcg dGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCBpZiB0b19zdHJpbmcgaXNcblwKICBzZXQgdG8gVHJ1 ZS4iIH0sCkBAIC01NTgsNyArNjA4LDcgQEAgaW5kZXggNjIxZTIwMS4uNzAzYTFhMCAxMDA2NDQK ICAgICAgIlJldHVybiBhIGdkYiBwYXJhbWV0ZXIncyB2YWx1ZSIgfSwKICAKIGRpZmYgLS1naXQg YS9nZGIvcHl0aG9uL3B5dGhvbi5oIGIvZ2RiL3B5dGhvbi9weXRob24uaAotaW5kZXggYjgxMDE4 Ny4uYTM2MjBhYiAxMDA2NDQKK2luZGV4IGU0MDdmYWEuLmZjMWM2MzIgMTAwNjQ0CiAtLS0gYS9n ZGIvcHl0aG9uL3B5dGhvbi5oCiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5oCiBAQCAtMjUsNCAr MjUsNiBAQApAQCAtNTY4LDIzICs2MTgsOCBAQCBpbmRleCBiODEwMTg3Li5hMzYyMGFiIDEwMDY0 NAogK2V4dGVybiB2b2lkIHJ1bl9weXRob25fc2NyaXB0IChpbnQgYXJnYywgY2hhciAqKmFyZ3Yp OwogKwogICNlbmRpZiAvKiBHREJfUFlUSE9OX0ggKi8KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0 LmV4cAotaW5kZXggMmZkZDllMy4uMzkxOTAwZCAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUv Z2RiLmdkYi9zZWxmdGVzdC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVz dC5leHAKLUBAIC04Nyw2ICs4NywxMCBAQCBwcm9jIGRvX3N0ZXBzX2FuZF9uZXh0cyB7fSB7Ci0g CQlzZXQgZGVzY3JpcHRpb24gInN0ZXAgb3ZlciBjbWRhcmdfdmVjIGluaXRpYWxpemF0aW9uIgot IAkJc2V0IGNvbW1hbmQgInN0ZXAiCi0gCSAgICB9Ci0rCSAgICAtcmUgIi4qcHl0aG9uX3Njcmlw dCA9IDAuKiRnZGJfcHJvbXB0ICQiIHsKLSsJCXNldCBkZXNjcmlwdGlvbiAic3RlcCBvdmVyIHB5 dGhvbl9zY3JpcHQgaW5pdGlhbGl6YXRpb24iCi0rCQlzZXQgY29tbWFuZCAic3RlcCIKLSsJICAg IH0KLSAJICAgIC1yZSAiLipwcmVfc3RhdF9jaGFpbiA9IG1ha2VfY29tbWFuZF9zdGF0c19jbGVh bnVwLiokZ2RiX3Byb21wdCAkIiB7Ci0gCQlzZXQgZGVzY3JpcHRpb24gIm5leHQgb3ZlciBtYWtl X2NvbW1hbmRfc3RhdHNfY2xlYW51cCBhbmQgZXZlcnl0aGluZyBpdCBjYWxscyIKLSAJCXNldCBj b21tYW5kICJuZXh0IgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1m cmFtZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCi1pbmRleCBi NWE0NjgyLi5kNTQ1MWE2IDEwMDY0NAoraW5kZXggZjVkNGEzYy4uMzU0NmY3YiAxMDA2NDQKIC0t LSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKICsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKIEBAIC05NSw2ICs5NSw4IEBAIGdkYl90ZXN0 ICJweXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSBmMC5yZWFkX3ZhciAoJ2EnKSkiICIgPSAx IiAidGVzdCBGcmFtZS5yCkBAIC01OTcsMTAgKzYzMiwxMCBAQCBpbmRleCBiNWE0NjgyLi5kNTQ1 MWE2IDEwMDY0NAogIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSAoZ2Ri LnNlbGVjdGVkX2ZyYW1lICgpLnJlYWRfcmVnaXN0ZXIgKCdzcCcpID09IGdkYi5wYXJzZV9hbmRf ZXZhbCAoJ1wkc3AnKSkpIiBcCiAgICAiID0gVHJ1ZSIgXAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHktdmFsdWUuZXhwCi1pbmRleCA1N2E5YmExLi5kOTBkODVhIDEwMDY0NAoraW5kZXggZDlhNGQy MC4uYzg3ZTRkOCAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1 ZS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKLUBAIC0z OTcsNiArMzk3LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7fSB7CitAQCAtNDA3 LDYgKzQwNywxNSBAQCBwcm9jIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgge30gewogICAgICAicHJp bnQgdmFsdWUncyB0eXBlIgogIH0KICAKQEAgLTYxNiw3ICs2NTEsNyBAQCBpbmRleCA1N2E5YmEx Li5kOTBkODVhIDEwMDY0NAogICMgUmVncmVzc2lvbiB0ZXN0IGZvciBpbnZhbGlkIHN1YnNjcmlw dCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAogICMgdGhlIHR5cGUgb2YgdGhlIHZhbHVl IHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dpbmcgYQogICMgc3Vic2NyaXB0IG9w ZXJhdGlvbiB0byBwcm9jZWVkLgotQEAgLTUyNiw2ICs1MzUsNyBAQCB0ZXN0X3ZhbHVlX2luX2lu ZmVyaW9yCitAQCAtNTM2LDYgKzU0NSw3IEBAIHRlc3RfdmFsdWVfaW5faW5mZXJpb3IKICB0ZXN0 X2luZmVyaW9yX2Z1bmN0aW9uX2NhbGwKICB0ZXN0X2xhenlfc3RyaW5ncwogIHRlc3RfdmFsdWVf YWZ0ZXJfZGVhdGgKQEAgLTYyNCwzICs2NTksMzUgQEAgaW5kZXggNTdhOWJhMS4uZDkwZDg1YSAx MDA2NDQKICAKICAjIFRlc3QgZWl0aGVyIEMgb3IgQysrIHZhbHVlcy4gCiAgCitkaWZmIC0tZ2l0 IGEvZ2RiL3Zhcm9iai5jIGIvZ2RiL3Zhcm9iai5jCitpbmRleCAxNzNhYmYzLi5jM2FiZjY2IDEw MDY0NAorLS0tIGEvZ2RiL3Zhcm9iai5jCisrKysgYi9nZGIvdmFyb2JqLmMKK0BAIC0yMjYsNiAr MjI2LDE0IEBAIGlzX3Jvb3RfcCAoY29uc3Qgc3RydWN0IHZhcm9iaiAqdmFyKQorIH0KKyAKKyAj aWZkZWYgSEFWRV9QWVRIT04KKysvKiBIZWxwZXIgZnVuY3Rpb24gdG8gaW5zdGFsbCBhIFB5dGhv biBlbnZpcm9ubWVudCBzdWl0YWJsZSBmb3IKKysgICB1c2UgZHVyaW5nIG9wZXJhdGlvbnMgb24g VkFSLiAgKi8KKytzdHJ1Y3QgY2xlYW51cCAqCisrdmFyb2JqX2Vuc3VyZV9weXRob25fZW52IChj b25zdCBzdHJ1Y3QgdmFyb2JqICp2YXIpCisreworKyAgcmV0dXJuIGVuc3VyZV9weXRob25fZW52 ICh2YXItPnJvb3QtPmV4cC0+Z2RiYXJjaCwKKysJCQkgICAgdmFyLT5yb290LT5leHAtPmxhbmd1 YWdlX2RlZm4pOworK30KKyAKKyAvKiBTZWUgcHl0aG9uLWludGVybmFsLmguICAqLworIGdkYnB5 X2VudGVyX3Zhcm9iajo6Z2RicHlfZW50ZXJfdmFyb2JqIChjb25zdCBzdHJ1Y3QgdmFyb2JqICp2 YXIpCitkaWZmIC0tZ2l0IGEvZ2RiL3Zhcm9iai5oIGIvZ2RiL3Zhcm9iai5oCitpbmRleCA5ODlj OGNkLi5mYzdmMTc3IDEwMDY0NAorLS0tIGEvZ2RiL3Zhcm9iai5oCisrKysgYi9nZGIvdmFyb2Jq LmgKK0BAIC0zMjAsNiArMzIwLDggQEAgZXh0ZXJuIGludCB2YXJvYmpfaGFzX21vcmUgKGNvbnN0 IHN0cnVjdCB2YXJvYmogKnZhciwgaW50IHRvKTsKKyAKKyBleHRlcm4gaW50IHZhcm9ial9pc19k eW5hbWljX3AgKGNvbnN0IHN0cnVjdCB2YXJvYmogKnZhcik7CisgCisrZXh0ZXJuIHN0cnVjdCBj bGVhbnVwICp2YXJvYmpfZW5zdXJlX3B5dGhvbl9lbnYgKGNvbnN0IHN0cnVjdCB2YXJvYmogKnZh cik7CisrCisgZXh0ZXJuIGludCB2YXJvYmpfZGVmYXVsdF92YWx1ZV9pc19jaGFuZ2VhYmxlX3Ag KGNvbnN0IHN0cnVjdCB2YXJvYmogKnZhcik7CisgZXh0ZXJuIGludCB2YXJvYmpfdmFsdWVfaXNf Y2hhbmdlYWJsZV9wIChjb25zdCBzdHJ1Y3QgdmFyb2JqICp2YXIpOworIAoKZGlmZiAtLWdpdCBh L2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2ggYi9nZGItYXR0YWNoLWZhaWwtcmVh c29ucy01b2Y1LnBhdGNoCmluZGV4IGIzMDI3ZGYuLmQ5YzU1YTkgMTAwNjQ0Ci0tLSBhL2dkYi1h dHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKKysrIGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNv bnMtNW9mNS5wYXRjaApAQCAtMzcsMTMgKzM3LDEzIEBAIGdkYi9nZGJzZXJ2ZXIvCiAJKGxpbnV4 X2NyZWF0ZV9pbmZlcmlvciwgbGludXhfdHJhY2Vmb3JrX2NoaWxkKTogQ2FsbCBpdCBpbnN0ZWFk IG9mCiAJZGlyZWN0IHB0cmFjZS4KIAotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODI5L2dkYi9u YXQvbGludXgtcHRyYWNlLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbmF0L2xp bnV4LXB0cmFjZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA4Mjkub3JpZy9n ZGIvbmF0L2xpbnV4LXB0cmFjZS5jCTIwMTYtMDgtMjkgMDk6MzU6MjYuNzk4MjMwNjU5ICswMjAw Ci0rKysgZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE2LTA4 LTI5IDA5OjM1OjQzLjE2MjM4NDEwMCArMDIwMAotQEAgLTI1LDYgKzI1LDEwIEBACi0gI2luY2x1 ZGUgImdkYl9wdHJhY2UuaCIKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9uYXQv bGludXgtcHRyYWNlLmMJMjAxNy0wMi0yNiAyMToyNzoxNC43ODAwMDk0NDkgKzAxMDAKKysrKyBn ZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCTIwMTctMDItMjYgMjE6 Mjc6MTguODM4MDM4MTkzICswMTAwCitAQCAtMjcsNiArMjcsMTAgQEAKICAjaW5jbHVkZSA8c3lz L3Byb2Nmcy5oPgorICNlbmRpZgogIAogKyNpZmRlZiBIQVZFX1NFTElOVVhfU0VMSU5VWF9ICiAr IyBpbmNsdWRlIDxzZWxpbnV4L3NlbGludXguaD4KQEAgLTUyLDcgKzUyLDcgQEAgSW5kZXg6IGdk Yi03LjExLjkwLjIwMTYwODI5L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKICAvKiBTdG9yZXMgdGhl IHB0cmFjZSBvcHRpb25zIHN1cHBvcnRlZCBieSB0aGUgcnVubmluZyBrZXJuZWwuCiAgICAgQSB2 YWx1ZSBvZiAtMSBtZWFucyB3ZSBkaWQgbm90IGNoZWNrIGZvciBmZWF0dXJlcyB5ZXQuICBBIHZh bHVlCiAgICAgb2YgMCBtZWFucyB0aGVyZSBhcmUgbm8gc3VwcG9ydGVkIGZlYXR1cmVzLiAgKi8K LUBAIC00OSw2ICs1Myw4IEBACitAQCAtNTEsNiArNTUsOCBAQAogICAgICBidWZmZXJfeG1sX3By aW50ZiAoYnVmZmVyLCBfKCJwcm9jZXNzICVkIGlzIGEgem9tYmllICIKICAJCQkJICItIHRoZSBw cm9jZXNzIGhhcyBhbHJlYWR5IHRlcm1pbmF0ZWQiKSwKICAJCSAgICAgICAoaW50KSBwaWQpOwpA QCAtNjEsNyArNjEsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL25hdC9saW51 eC1wdHJhY2UuYwogIH0KICAKICAvKiBTZWUgbGludXgtcHRyYWNlLmguICAqLwotQEAgLTU5Miw2 ICs1OTgsMjIgQEAKK0BAIC01OTQsNiArNjAwLDIyIEBACiAgICBsaW51eF9wdHJhY2VfdGVzdF9y ZXRfdG9fbnggKCk7CiAgfQogIApAQCAtODQsMTAgKzg0LDEwIEBAIEluZGV4OiBnZGItNy4xMS45 MC4yMDE2MDgyOS9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCiAgLyogRXh0cmFjdCBleHRlbmRlZCBw dHJhY2UgZXZlbnQgZnJvbSB3YWl0IHN0YXR1cy4gICovCiAgCiAgaW50Ci1JbmRleDogZ2RiLTcu MTEuOTAuMjAxNjA4MjkvZ2RiL25hdC9saW51eC1wdHJhY2UuaAorSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjI2L2dkYi9uYXQvbGludXgtcHRyYWNlLmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MS45MC4yMDE2MDgyOS5vcmlnL2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNi0wOC0yOSAwOToz NToyNi43OTgyMzA2NTkgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvbmF0L2xp bnV4LXB0cmFjZS5oCTIwMTYtMDgtMjkgMDk6MzU6NDMuMTYyMzg0MTAwICswMjAwCistLS0gZ2Ri LTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCTIwMTctMDItMjYg MjE6Mjc6MTQuNzgwMDA5NDQ5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL25h dC9saW51eC1wdHJhY2UuaAkyMDE3LTAyLTI2IDIxOjI3OjE4LjgzODAzODE5MyArMDEwMAogQEAg LTE4NSw2ICsxODUsNyBAQAogIGV4dGVybiBjaGFyICpsaW51eF9wdHJhY2VfYXR0YWNoX2ZhaWxf cmVhc29uX3N0cmluZyAocHRpZF90IHB0aWQsIGludCBlcnIpOwogIApAQCAtOTYsMTEgKzk2LDEx IEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCiAg ZXh0ZXJuIHZvaWQgbGludXhfY2hlY2tfcHRyYWNlX2ZlYXR1cmVzICh2b2lkKTsKICBleHRlcm4g dm9pZCBsaW51eF9lbmFibGVfZXZlbnRfcmVwb3J0aW5nIChwaWRfdCBwaWQsIGludCBhdHRhY2hl ZCk7CiAgZXh0ZXJuIHZvaWQgbGludXhfZGlzYWJsZV9ldmVudF9yZXBvcnRpbmcgKHBpZF90IHBp ZCk7Ci1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2NvbmZpZ3VyZS5hYworSW5kZXg6 IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMS45MC4yMDE2MDgyOS5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxNi0wOC0yOSAwOToz NToyNi43OTkyMzA2NjggKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvY29uZmln dXJlLmFjCTIwMTYtMDgtMjkgMDk6MzU6NDMuMTYzMzg0MTA5ICswMjAwCi1AQCAtMjEwOCw2ICsy MTA4LDEwIEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvY29uZmlndXJlLmFj CTIwMTctMDItMjYgMjE6Mjc6MTQuNzgxMDA5NDU2ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAx NzAyMjYvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE3LTAyLTI2IDIxOjI3OjE4LjgzOTAzODIwMCArMDEw MAorQEAgLTIwOTIsNiArMjA5MiwxMCBAQAogIGVzYWMKICBBQ19ERUZJTkVfVU5RVU9URUQoR0RC SU5JVCwiJGdkYmluaXQiLFtUaGUgLmdkYmluaXQgZmlsZW5hbWUuXSkKICAKQEAgLTExMSwxMSAr MTExLDExIEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvY29uZmlndXJlLmFjCiAg ZG5sIEhhbmRsZSBvcHRpb25hbCBmZWF0dXJlcyB0aGF0IGNhbiBiZSBlbmFibGVkLgogIAogICMg U3VwcG9ydCBmb3IgLS13aXRoLXN5c3Jvb3QgaXMgYSBjb3B5IG9mIEdEQl9BQ19XSVRIX0RJUiwK LUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwor SW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA4Mjkub3JpZy9nZGIvZ2Ric2VydmVyL2Nv bmZpZ3VyZS5hYwkyMDE2LTA4LTI5IDA5OjM1OjI2Ljc5OTIzMDY2OCArMDIwMAotKysrIGdkYi03 LjExLjkwLjIwMTYwODI5L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTYtMDgtMjkgMDk6 MzU6NDMuMTYzMzg0MTA5ICswMjAwCi1AQCAtNDcyLDYgKzQ3MiwxMCBAQAorLS0tIGdkYi03LjEy LjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNy0wMi0yNiAy MToyNzoxNC43ODEwMDk0NTYgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZ2Ri c2VydmVyL2NvbmZpZ3VyZS5hYwkyMDE3LTAyLTI2IDIxOjI3OjE4LjgzOTAzODIwMCArMDEwMAor QEAgLTQ2OSw2ICs0NjksMTAgQEAKICAgICBmaQogIGZpCiAgCkBAIC0xMjYsMTEgKzEyNiwxMSBA QCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMK ICBBQ19TVUJTVChHREJTRVJWRVJfREVQRklMRVMpCiAgQUNfU1VCU1QoR0RCU0VSVkVSX0xJQlMp CiAgQUNfU1VCU1Qoc3J2X3htbGJ1aWx0aW4pCi1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4Mjkv Z2RiL2dkYnNlcnZlci9saW51eC1sb3cuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dk Yi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2 MDgyOS5vcmlnL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxNi0wOC0yOSAwOTozNToyNi44 MDEyMzA2ODcgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvZ2Ric2VydmVyL2xp bnV4LWxvdy5jCTIwMTYtMDgtMjkgMDk6MzU6NDMuMTY1Mzg0MTI4ICswMjAwCi1AQCAtOTMzLDYg KzkzMywyOSBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2dkYnNlcnZlci9s aW51eC1sb3cuYwkyMDE3LTAyLTI2IDIxOjI3OjE0Ljc4MzAwOTQ3MCArMDEwMAorKysrIGdkYi03 LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxNy0wMi0yNiAyMToy NzoxOC44NDEwMzgyMTQgKzAxMDAKK0BAIC05NDYsNiArOTQ2LDI5IEBACiAgICByZXR1cm4gbHdw OwogIH0KICAKQEAgLTE2MCw3ICsxNjAsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4Mjkv Z2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogIC8qIFN0YXJ0IGFuIGluZmVyaW9yIHByb2Nlc3Mg YW5kIHJldHVybnMgaXRzIHBpZC4KICAgICBBTExBUkdTIGlzIGEgdmVjdG9yIG9mIHByb2dyYW0t bmFtZSBhbmQgYXJncy4gKi8KICAKLUBAIC05NTYsNyArOTc5LDcgQEAKK0BAIC05NjksNyArOTky LDcgQEAKICAgIGlmIChwaWQgPT0gMCkKICAgICAgewogICAgICAgIGNsb3NlX21vc3RfZmRzICgp OwpAQCAtMTY5LDMxICsxNjksMTEgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODI5L2dkYi9n ZGJzZXJ2ZXIvbGludXgtbG93LmMKICAKICAgICAgICBzZXRwZ2lkICgwLCAwKTsKICAKLUluZGV4 OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvaW5mLXB0cmFjZS5jCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMjYvZ2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAu MjAxNjA4Mjkub3JpZy9nZGIvaW5mLXB0cmFjZS5jCTIwMTYtMDgtMjkgMDk6MzU6MjYuODAxMjMw Njg3ICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2luZi1wdHJhY2UuYwkyMDE2 LTA4LTI5IDA5OjM1OjQzLjE2NTM4NDEyOCArMDIwMAotQEAgLTc5LDcgKzc5LDE1IEBACi0gaW5m X3B0cmFjZV9tZSAodm9pZCkKLSB7Ci0gICAvKiAiVHJhY2UgbWUsIERyLiBNZW1vcnkhIiAgKi8K LSsgIGVycm5vID0gMDsKLSAgIHB0cmFjZSAoUFRfVFJBQ0VfTUUsIDAsIChQVFJBQ0VfVFlQRV9B UkczKTAsIDApOwotKyAgaWYgKGVycm5vICE9IDApCi0rICAgIHsKLSsgICAgICBmcHJpbnRmX3Vu ZmlsdGVyZWQgKGdkYl9zdGRlcnIsIF8oIkNhbm5vdCBjcmVhdGUgcHJvY2VzczogJXNcbiIpLAot KwkJCSAgc2FmZV9zdHJlcnJvciAoZXJybm8pKTsKLSsgICAgICBnZGJfZmx1c2ggKGdkYl9zdGRl cnIpOwotKyAgICAgIF9leGl0ICgwMTc3KTsKLSsgICAgfQotIH0KLSAKLSAvKiBTdGFydCBhIG5l dyBpbmZlcmlvciBVbml4IGNoaWxkIHByb2Nlc3MuICBFWEVDX0ZJTEUgaXMgdGhlIGZpbGUgdG8K LUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvbGludXgtbmF0LmMKLT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS45MC4yMDE2MDgyOS5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDE2LTA4LTI5 IDA5OjM1OjI2LjgwMjIzMDY5NyArMDIwMAotKysrIGdkYi03LjExLjkwLjIwMTYwODI5L2dkYi9s aW51eC1uYXQuYwkyMDE2LTA4LTI5IDA5OjM1OjQzLjE2NjM4NDEzNyArMDIwMAotQEAgLTExMDIs NiArMTEwMiw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvbGludXgtbmF0 LmMJMjAxNy0wMi0yNiAyMToyNzoxNC43ODUwMDk0ODQgKzAxMDAKKysrKyBnZGItNy4xMi41MC4y MDE3MDIyNi9nZGIvbGludXgtbmF0LmMJMjAxNy0wMi0yNiAyMToyNzoxOC44NDIwMzgyMjEgKzAx MDAKK0BAIC0xMTEwLDYgKzExMTAsNyBAQAogIHsKICAgIHN0cnVjdCBjbGVhbnVwICpyZXN0b3Jl X3BlcnNvbmFsaXR5CiAgICAgID0gbWF5YmVfZGlzYWJsZV9hZGRyZXNzX3NwYWNlX3JhbmRvbWl6 YXRpb24gKGRpc2FibGVfcmFuZG9taXphdGlvbik7CkBAIC0yMDEsNyArMTgxLDcgQEAgSW5kZXg6 IGdkYi03LjExLjkwLjIwMTYwODI5L2dkYi9saW51eC1uYXQuYwogIAogICAgLyogVGhlIGZvcmtf Y2hpbGQgbWVjaGFuaXNtIGlzIHN5bmNocm9ub3VzIGFuZCBjYWxscyB0YXJnZXRfd2FpdCwgc28K ICAgICAgIHdlIGhhdmUgdG8gbWFzayB0aGUgYXN5bmMgbW9kZS4gICovCi1AQCAtMTEwOSw3ICsx MTEwLDI4IEBACitAQCAtMTExNyw3ICsxMTE4LDI4IEBACiAgICAvKiBNYWtlIHN1cmUgd2UgcmVw b3J0IGFsbCBzaWduYWxzIGR1cmluZyBzdGFydHVwLiAgKi8KICAgIGxpbnV4X25hdF9wYXNzX3Np Z25hbHMgKG9wcywgMCwgTlVMTCk7CiAgCkBAIC0yMzEsMTEgKzIxMSwxMSBAQCBJbmRleDogZ2Ri LTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2xpbnV4LW5hdC5jCiAgCiAgICBkb19jbGVhbnVwcyAocmVz dG9yZV9wZXJzb25hbGl0eSk7CiAgfQotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODI5L2dkYi9j b25maWcuaW4KK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvY29uZmlnLmluCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA4Mjkub3JpZy9nZGIvY29uZmlnLmluCTIwMTYt MDgtMjkgMDk6MzU6MjYuODAzMjMwNzA2ICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAxNjA4Mjkv Z2RiL2NvbmZpZy5pbgkyMDE2LTA4LTI5IDA5OjM1OjQzLjE2NjM4NDEzNyArMDIwMAotQEAgLTI2 Nyw2ICsyNjcsOSBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2NvbmZpZy5p bgkyMDE3LTAyLTI2IDIxOjI3OjE0Ljc4NjAwOTQ5MSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjI2L2dkYi9jb25maWcuaW4JMjAxNy0wMi0yNiAyMToyNzoxOC44NDIwMzgyMjEgKzAxMDAK K0BAIC0yNzAsNiArMjcwLDkgQEAKICAvKiBEZWZpbmUgaWYgbGlicnBtIGxpYnJhcnkgaXMgYmVp bmcgdXNlZC4gKi8KICAjdW5kZWYgSEFWRV9MSUJSUE0KICAKQEAgLTI0NSw3ICsyMjUsNyBAQCBJ bmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSA8bGlidW53aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUuICovCiAgI3Vu ZGVmIEhBVkVfTElCVU5XSU5EX0lBNjRfSAogIAotQEAgLTM5OSw2ICs0MDIsOSBAQAorQEAgLTQw Miw2ICs0MDUsOSBAQAogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2NtX25ld19z bW9iJyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TQ01fTkVXX1NNT0IKICAKQEAgLTI1NSwx MSArMjM1LDExIEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvY29uZmlnLmluCiAg LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRsb2NhbGUnIGZ1bmN0aW9uLiAqLwog ICN1bmRlZiBIQVZFX1NFVExPQ0FMRQogIAotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODI5L2dk Yi9jb25maWd1cmUKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvY29uZmlndXJlCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA4Mjkub3JpZy9nZGIvY29uZmlndXJlCTIw MTYtMDgtMjkgMDk6MzU6MjYuODA2MjMwNzM0ICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAxNjA4 MjkvZ2RiL2NvbmZpZ3VyZQkyMDE2LTA4LTI5IDA5OjM1OjQzLjE3MDM4NDE3NSArMDIwMAotQEAg LTE0NjQyLDYgKzE0NjQyLDY0IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIv Y29uZmlndXJlCTIwMTctMDItMjYgMjE6Mjc6MTQuNzkwMDA5NTE5ICswMTAwCisrKysgZ2RiLTcu MTIuNTAuMjAxNzAyMjYvZ2RiL2NvbmZpZ3VyZQkyMDE3LTAyLTI2IDIxOjI3OjE4Ljg0NjAzODI0 OSArMDEwMAorQEAgLTE1NDkyLDYgKzE1NDkyLDY0IEBACiAgX0FDRU9GCiAgCiAgCkBAIC0zMjQs MTEgKzMwNCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2NvbmZpZ3VyZQog IAogICMgU3VwcG9ydCBmb3IgLS13aXRoLXN5c3Jvb3QgaXMgYSBjb3B5IG9mIEdEQl9BQ19XSVRI X0RJUiwKICAjIGV4Y2VwdCB0aGF0IHRoZSBhcmd1bWVudCB0byAtLXdpdGgtc3lzcm9vdCBpcyBv cHRpb25hbC4KLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDgyOS9nZGIvZ2Ric2VydmVyL2NvbmZp Zy5pbgorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmlu CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA4Mjkub3JpZy9nZGIvZ2Ric2VydmVy L2NvbmZpZy5pbgkyMDE2LTA4LTI5IDA5OjM1OjI2LjgwNzIzMDc0MyArMDIwMAotKysrIGdkYi03 LjExLjkwLjIwMTYwODI5L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCTIwMTYtMDgtMjkgMDk6MzU6 NDMuMTcwMzg0MTc1ICswMjAwCi1AQCAtMTIwLDYgKzEyMCw5IEBACistLS0gZ2RiLTcuMTIuNTAu MjAxNzAyMjYub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE3LTAyLTI2IDIxOjI3OjE0 Ljc5MTAwOTUyNyArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJzZXJ2ZXIv Y29uZmlnLmluCTIwMTctMDItMjYgMjE6Mjc6MTguODQ2MDM4MjQ5ICswMTAwCitAQCAtMTIzLDYg KzEyMyw5IEBACiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtY2hlY2snIGxpYnJh cnkgKC1sbWNoZWNrKS4gKi8KICAjdW5kZWYgSEFWRV9MSUJNQ0hFQ0sKICAKQEAgLTMzOCw3ICsz MTgsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2dkYnNlcnZlci9jb25maWcu aW4KICAvKiBEZWZpbmUgaWYgdGhlIHRhcmdldCBzdXBwb3J0cyBicmFuY2ggdHJhY2luZy4gKi8K ICAjdW5kZWYgSEFWRV9MSU5VWF9CVFJBQ0UKICAKLUBAIC0xOTYsNiArMTk5LDkgQEAKK0BAIC0x OTksNiArMjAyLDkgQEAKICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHB3cml0ZScg ZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfUFdSSVRFCiAgCkBAIC0zNDgsMTEgKzMyOCwxMSBA QCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KICAv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldG5zJyBmdW5jdGlvbi4gKi8KICAjdW5k ZWYgSEFWRV9TRVROUwogIAotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODI5L2dkYi9nZGJzZXJ2 ZXIvY29uZmlndXJlCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2dkYnNlcnZlci9j b25maWd1cmUKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDgyOS5vcmlnL2dkYi9n ZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTYtMDgtMjkgMDk6MzU6MjYuODA5MjMwNzYyICswMjAwCi0r KysgZ2RiLTcuMTEuOTAuMjAxNjA4MjkvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUJMjAxNi0wOC0y OSAwOTozNTo0My4xNzIzODQxOTQgKzAyMDAKLUBAIC03NTYxLDYgKzc1NjEsNjQgQEAKKy0tLSBn ZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTctMDIt MjYgMjE6Mjc6MTQuNzkzMDA5NTQxICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2Ri L2dkYnNlcnZlci9jb25maWd1cmUJMjAxNy0wMi0yNiAyMToyNzoxOC44NDgwMzgyNjMgKzAxMDAK K0BAIC04NDI5LDYgKzg0MjksNjQgQEAKICAgICBmaQogIGZpCiAgCgpkaWZmIC0tZ2l0IGEvZ2Ri LWJpc29uLW9sZC5wYXRjaCBiL2dkYi1iaXNvbi1vbGQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDRmYzAyMWQuLjAwMDAwMDAKLS0tIGEvZ2RiLWJpc29uLW9sZC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLWJpc29uLTMuMC40LTQuZmMyNC54ODZfNjQK LXZzLgotYmlzb24tMi43LTQuZWw3Lng4Nl82NAotCi1iaXNvbjoKLThkMGI3Y2VmN2RmN2ZlYWQ0 NGI5NTc0Y2VlMzQyZGUzMzYwMDg2MjUgdGFncy92My4wLjF+MgotICAgIHBhcnNlcnM6IHJlbmFt ZSBZWV9OVUxMIGFzIFlZX05VTExQVFIgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggRmxleAotCi1h ZGEtbGV4LmM6MTEzOjA6IGVycm9yOiAiWVlfTlVMTCIgcmVkZWZpbmVkIFstV2Vycm9yXQotICNk ZWZpbmUgWVlfTlVMTCAwCi0KLWFkYS1leHAuYzoxNTg6MDogbm90ZTogdGhpcyBpcyB0aGUgbG9j YXRpb24gb2YgdGhlIHByZXZpb3VzIGRlZmluaXRpb24KLSAjICAgZGVmaW5lIFlZX05VTEwgbnVs bHB0cgotCi0qLWV4cC5jIGNwLW5hbWUtcGFyc2VyLmMKLXZzLgotYWRhLWxleC5jCi0KLSMgaWZu ZGVmIFlZX05VTEwKLSMgIGlmIGRlZmluZWQgX19jcGx1c3BsdXMgJiYgMjAxMTAzTCA8PSBfX2Nw bHVzcGx1cwotIyAgIGRlZmluZSBZWV9OVUxMIG51bGxwdHIKLSMgIGVsc2UKLSMgICBkZWZpbmUg WVlfTlVMTCAwCi0jICBlbmRpZgotIyBlbmRpZgotCi0jIGlmbmRlZiBZWV9OVUxMUFRSCi0jICBp ZiBkZWZpbmVkIF9fY3BsdXNwbHVzICYmIDIwMTEwM0wgPD0gX19jcGx1c3BsdXMKLSMgICBkZWZp bmUgWVlfTlVMTFBUUiBudWxscHRyCi0jICBlbHNlCi0jICAgZGVmaW5lIFlZX05VTExQVFIgMAot IyAgZW5kaWYKLSMgZW5kaWYKLQotLS0tIGdkYi1jbGVhbjcxMi9nZGIvTWFrZWZpbGUuaW4JMjAx Ni0wOC0yOSAwOToxNjoxNS41MDUzOTM5MjggKzAyMDAKLSsrKyBnZGItY2xlYW43MTIvZ2RiL01h a2VmaWxlLmluCTIwMTYtMDktMDcgMTM6MzI6MzQuNzQ0MjcwMzQ2ICswMjAwCi1AQCAtMTkwMCw2 ICsxOTQ1LDcgQEAgcG8vJChQQUNLQUdFKS5wb3Q6IGZvcmNlCi0gCSAgICAgLWUgJ3MvXChbIFx0 OywoXVwpZnJlZVwoWyBcdF0qWyYoKSxdXCkvXDF4ZnJlZVwyL2cnIFwKLSAJICAgICAtZSAncy9c KFsgXHQ7LChdXClmcmVlJCQvXDF4ZnJlZS9nJyBcCi0gCSAgICAgLWUgJy9eI2xpbmUuKnkudGFi LmMvZCcgXAotKwkgICAgIC1lICdzL1w8WVlfTlVMTFw+L1lZX05VTExQVFIvZycgXAotIAkgIDwg JEAudG1wID4gJEAKLSAJcm0gLWYgJEAudG1wCi0gLmwuYzoKCmRpZmYgLS1naXQgYS9nZGItYnRy b2J1c3QucGF0Y2ggYi9nZGItYnRyb2J1c3QucGF0Y2gKaW5kZXggYjc5NzcyMy4uZGQ1NzU0MyAx MDA2NDQKLS0tIGEvZ2RiLWJ0cm9idXN0LnBhdGNoCisrKyBiL2dkYi1idHJvYnVzdC5wYXRjaApA QCAtMyw4MyArMywzMiBAQCBwcmludGVkLCBidXQgYSBkZWZhdWx0IGJhY2t0cmFjZSB3aWxsIG9j Y3VyIGluIHRoaXMgY2FzZS4KIAogLS0KIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2Ri L3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi9weXRob24vcHktZnJhbWVmaWx0ZXIuYwkyMDE1LTA1LTMxIDE3OjM2OjM0 LjY4MTk1MjUzMCArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weS1m cmFtZWZpbHRlci5jCTIwMTUtMDUtMzEgMTc6NTU6MDEuODg0Nzg4MDMxICswMjAwCi1AQCAtMTUy Myw2ICsxNTIzLDcgQEAgZ2RicHlfYXBwbHlfZnJhbWVfZmlsdGVyIChjb25zdCBzdHJ1Y3QgZQot ICAgUHlPYmplY3QgKml0ZXJhYmxlOwotICAgUHlPYmplY3QgKml0ZW07Ci0gICBodGFiX3QgbGV2 ZWxzX3ByaW50ZWQ7Ci0rICBpbnQgY291bnRfcHJpbnRlZCA9IDA7Ci0gCi0gICBpZiAoIWdkYl9w eXRob25faW5pdGlhbGl6ZWQpCi0gICAgIHJldHVybiBFWFRfTEFOR19CVF9OT19GSUxURVJTOwot QEAgLTE1NDMsMjQgKzE1NDQsNyBAQCBnZGJweV9hcHBseV9mcmFtZV9maWx0ZXIgKGNvbnN0IHN0 cnVjdCBlCi0gICBpdGVyYWJsZSA9IGJvb3RzdHJhcF9weXRob25fZnJhbWVfZmlsdGVycyAoZnJh bWUsIGZyYW1lX2xvdywgZnJhbWVfaGlnaCk7Ci0gCi0gICBpZiAoaXRlcmFibGUgPT0gTlVMTCkK LS0gICAgewotLSAgICAgIC8qIE5vcm1hbGx5IGlmIHRoZXJlIGlzIGFuIGVycm9yIEdEQiBwcmlu dHMgdGhlIGV4Y2VwdGlvbiwKLS0JIGFiYW5kb25zIHRoZSBiYWNrdHJhY2UgYW5kIGV4aXRzLiAg VGhlIHVzZXIgY2FuIHRoZW4gY2FsbCAiYnQKLS0JIG5vLWZpbHRlcnMiLCBhbmQgZ2V0IGEgZGVm YXVsdCBiYWNrdHJhY2UgKGl0IHdvdWxkIGJlCi0tCSBjb25mdXNpbmcgdG8gYXV0b21hdGljYWxs eSBzdGFydCBhIHN0YW5kYXJkIGJhY2t0cmFjZSBoYWxmd2F5Ci0tCSB0aHJvdWdoIGEgUHl0aG9u IGZpbHRlcmVkIGJhY2t0cmFjZSkuICBIb3dldmVyIGluIHRoZSBjYXNlCi0tCSB3aGVyZSBHREIg Y2Fubm90IGluaXRpYWxpemUgdGhlIGZyYW1lIGZpbHRlcnMgKG1vc3QgbGlrZWx5Ci0tCSBkdWUg dG8gaW5jb3JyZWN0IGF1dG8tbG9hZCBwYXRocyksIEdEQiBoYXMgcHJpbnRlZCBub3RoaW5nLgot LQkgSW4gdGhpcyBjYXNlIGl0IGlzIE9LIHRvIHByaW50IHRoZSBkZWZhdWx0IGJhY2t0cmFjZSBh ZnRlcgotLQkgcHJpbnRpbmcgdGhlIGVycm9yIG1lc3NhZ2UuICBHREIgcmV0dXJucyBFWFRfTEFO R19CVF9OT19GSUxURVJTCi0tCSBoZXJlIHRvIHNpZ25pZnkgdGhlcmUgYXJlIG5vIGZpbHRlcnMg YWZ0ZXIgcHJpbnRpbmcgdGhlCi0tCSBpbml0aWFsaXphdGlvbiBlcnJvci4gIFRoaXMgcmV0dXJu IGNvZGUgd2lsbCB0cmlnZ2VyIGEKLS0JIGRlZmF1bHQgYmFja3RyYWNlLiAgKi8KLS0KLS0gICAg ICBnZGJweV9wcmludF9zdGFjayAoKTsKLS0gICAgICBkb19jbGVhbnVwcyAoY2xlYW51cHMpOwot LSAgICAgIHJldHVybiBFWFRfTEFOR19CVF9OT19GSUxURVJTOwotLSAgICB9Ci0rICAgIGdvdG8g ZXJyb3Jfbm90aGluZ19wcmludGVkOworLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2Ri L3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCTIwMTctMDItMjYgMjE6MzM6MjMuMTUwNjE4NzA4ICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5j CTIwMTctMDItMjYgMjE6MzM6MjkuOTkzNjY3MTc5ICswMTAwCitAQCAtMTM4OCw2ICsxMzg4LDcg QEAKKyAJCQkJICAgICAgIGh0YWJfZXFfcG9pbnRlciwKKyAJCQkJICAgICAgIE5VTEwpKTsKICAK LSAgIC8qIElmIGl0ZXJhYmxlIGlzIE5vbmUsIHRoZW4gdGhlcmUgYXJlIG5vIGZyYW1lIGZpbHRl cnMgcmVnaXN0ZXJlZC4KLSAgICAgIElmIHRoaXMgaXMgdGhlIGNhc2UsIGRlZmVyIHRvIGRlZmF1 bHQgR0RCIHByaW50aW5nIHJvdXRpbmVzIGluIE1JCi1AQCAtMTU5MSwxNSArMTU3NSw0MCBAQCBn ZGJweV9hcHBseV9mcmFtZV9maWx0ZXIgKGNvbnN0IHN0cnVjdCBlCisrICBpbnQgY291bnRfcHJp bnRlZCA9IDA7CisgICB3aGlsZSAodHJ1ZSkKKyAgICAgeworICAgICAgIGdkYnB5X3JlZjw+IGl0 ZW0gKFB5SXRlcl9OZXh0IChpdGVyYWJsZS5nZXQgKCkpKTsKK0BAIC0xMzk3LDcgKzEzOTgsNyBA QAorIAkgIGlmIChQeUVycl9PY2N1cnJlZCAoKSkKKyAJICAgIHsKKyAJICAgICAgZ2RicHlfcHJp bnRfc3RhY2sgKCk7CistCSAgICAgIHJldHVybiBFWFRfTEFOR19CVF9FUlJPUjsKKysJICAgICAg cmV0dXJuIGNvdW50X3ByaW50ZWQgPiAwID8gRVhUX0xBTkdfQlRfRVJST1IgOiBFWFRfTEFOR19C VF9OT19GSUxURVJTOworIAkgICAgfQorIAkgIGJyZWFrOworIAl9CitAQCAtMTQwOSw2ICsxNDEw LDcgQEAKICAJIGVycm9yIGFuZCBjb250aW51ZSB3aXRoIG90aGVyIGZyYW1lcy4gICovCiAgICAg ICAgaWYgKHN1Y2Nlc3MgPT0gRVhUX0xBTkdfQlRfRVJST1IpCiAgCWdkYnB5X3ByaW50X3N0YWNr ICgpOwotKwogKyAgICAgIGNvdW50X3ByaW50ZWQrKzsKICAgICAgfQogIAotICAgaWYgKGl0ZW0g PT0gTlVMTCAmJiBQeUVycl9PY2N1cnJlZCAoKSkKLS0gICAgZ290byBlcnJvcjsKLSsgICAgewot KyAgICAgIGlmIChjb3VudF9wcmludGVkID4gMCkKLSsJZ290byBlcnJvcjsKLSsgICAgICBlbHNl Ci0rCWdvdG8gZXJyb3Jfbm90aGluZ19wcmludGVkOwotKyAgICB9Ci0gCi0gIGRvbmU6Ci0gICBk b19jbGVhbnVwcyAoY2xlYW51cHMpOwogICAgcmV0dXJuIHN1Y2Nlc3M7Ci0gCi0rICAvKiBOb3Jt YWxseSBpZiB0aGVyZSBpcyBhbiBlcnJvciBHREIgcHJpbnRzIHRoZSBleGNlcHRpb24sCi0rICAg ICBhYmFuZG9ucyB0aGUgYmFja3RyYWNlIGFuZCBleGl0cy4gIFRoZSB1c2VyIGNhbiB0aGVuIGNh bGwgImJ0Ci0rICAgICBuby1maWx0ZXJzIiwgYW5kIGdldCBhIGRlZmF1bHQgYmFja3RyYWNlIChp dCB3b3VsZCBiZQotKyAgICAgY29uZnVzaW5nIHRvIGF1dG9tYXRpY2FsbHkgc3RhcnQgYSBzdGFu ZGFyZCBiYWNrdHJhY2UgaGFsZndheQotKyAgICAgdGhyb3VnaCBhIFB5dGhvbiBmaWx0ZXJlZCBi YWNrdHJhY2UpLiAgSG93ZXZlciBpbiB0aGUgY2FzZQotKyAgICAgd2hlcmUgR0RCIGNhbm5vdCBp bml0aWFsaXplIHRoZSBmcmFtZSBmaWx0ZXJzIChtb3N0IGxpa2VseQotKyAgICAgZHVlIHRvIGlu Y29ycmVjdCBhdXRvLWxvYWQgcGF0aHMpLCBHREIgaGFzIHByaW50ZWQgbm90aGluZy4KLSsgICAg IEluIHRoaXMgY2FzZSBpdCBpcyBPSyB0byBwcmludCB0aGUgZGVmYXVsdCBiYWNrdHJhY2UgYWZ0 ZXIKLSsgICAgIHByaW50aW5nIHRoZSBlcnJvciBtZXNzYWdlLiAgR0RCIHJldHVybnMgRVhUX0xB TkdfQlRfTk9fRklMVEVSUwotKyAgICAgaGVyZSB0byBzaWduaWZ5IHRoZXJlIGFyZSBubyBmaWx0 ZXJzIGFmdGVyIHByaW50aW5nIHRoZQotKyAgICAgaW5pdGlhbGl6YXRpb24gZXJyb3IuICBUaGlz IHJldHVybiBjb2RlIHdpbGwgdHJpZ2dlciBhCi0rICAgICBkZWZhdWx0IGJhY2t0cmFjZS4gICov Ci0rCi0rIGVycm9yX25vdGhpbmdfcHJpbnRlZDoKLSsgIGdkYnB5X3ByaW50X3N0YWNrICgpOwot KyAgZG9fY2xlYW51cHMgKGNsZWFudXBzKTsKLSsgIHJldHVybiBFWFRfTEFOR19CVF9OT19GSUxU RVJTOwotKwotICAgLyogRXhpdCBhbmQgYWJhbmRvbiBiYWNrdHJhY2Ugb24gZXJyb3IsIHByaW50 aW5nIHRoZSBleGNlcHRpb24gdGhhdAotICAgICAgaXMgc2V0LiAgKi8KLSAgZXJyb3I6CgpkaWZm IC0tZ2l0IGEvZ2RiLWR0cy1yaGVsNi1weXRob24tY29tcGF0LnBhdGNoIGIvZ2RiLWR0cy1yaGVs Ni1weXRob24tY29tcGF0LnBhdGNoCmluZGV4IGNiYTFhNWIuLjhhZGY3ZjQgMTAwNjQ0Ci0tLSBh L2dkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRjaAorKysgYi9nZGItZHRzLXJoZWw2LXB5 dGhvbi1jb21wYXQucGF0Y2gKQEAgLTEsMzAgKzEsMzAgQEAKIGh0dHBzOi8vYnVnemlsbGEucmVk aGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTAyMDAwNAogCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4J MjAxNi0wNy0wMyAxNjozMjoxMy43ODgxNjQwNDEgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAxNi0wNy0wMyAxNjozMjoxNy44 NjgxOTg4NTAgKzAyMDAKLUBAIC02MSw2ICs2MSw4IEBACi0gCWdkYi9mcmFtZXMucHkgXAotIAln ZGIvRnJhbWVJdGVyYXRvci5weSBcCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIv ZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAxNy0wMi0yNiAyMToxMDozMS40MTg4OTQ5NzUg KzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZp bGUuaW4JMjAxNy0wMi0yNiAyMToxMTowNy4wODMxNDc5MzAgKzAxMDAKK0BAIC03MSw2ICs3MSw4 IEBACisgCWdkYi9fX2luaXRfXy5weSBcCiAgCWdkYi9GcmFtZURlY29yYXRvci5weSBcCisgCWdk Yi9GcmFtZUl0ZXJhdG9yLnB5IFwKICsJZ2RiL0ZyYW1lV3JhcHBlci5weSBcCiArCWdkYi9iYWNr dHJhY2UucHkgXAotIAlnZGIvdHlwZXMucHkgXAorIAlnZGIvZnJhbWVzLnB5IFwKICAJZ2RiL3By aW50aW5nLnB5IFwKLSAJZ2RiL3Vud2luZGVyLnB5IFwKLUBAIC03Nyw2ICs3OSw3IEBACi0gCWdk Yi9jb21tYW5kL3ByZXR0eV9wcmludGVycy5weSBcCi0gCWdkYi9jb21tYW5kL3Byb21wdC5weSBc CisgCWdkYi9wcm9tcHQucHkgXAorQEAgLTgzLDYgKzg1LDcgQEAKKyAJZ2RiL2NvbW1hbmQvcGFo b2xlLnB5IFwKKyAJZ2RiL2NvbW1hbmQveG1ldGhvZHMucHkgXAogIAlnZGIvY29tbWFuZC9leHBs b3JlLnB5IFwKICsJZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5IFwKLSAJZ2RiL2Z1bmN0aW9uL19f aW5pdF9fLnB5IFwKLSAJZ2RiL2Z1bmN0aW9uL2FzX3N0cmluZy5weSBcCi0gCWdkYi9mdW5jdGlv bi9jYWxsZXJfaXMucHkgXAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24v bGliL2dkYi9GcmFtZVdyYXBwZXIucHkKKyAJZ2RiL2NvbW1hbmQvZnJhbWVfZmlsdGVycy5weSBc CisgCWdkYi9jb21tYW5kL3ByZXR0eV9wcmludGVycy5weSBcCisgCWdkYi9jb21tYW5kL3Byb21w dC5weSBcCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3B5dGhvbi9saWIvZ2RiL0Zy YW1lV3JhcHBlci5weQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24v bGliL2dkYi9GcmFtZVdyYXBwZXIucHkJMjAxNi0wNy0wMyAxNjozMjoxNy44NjkxOTg4NTkgKzAy MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFw cGVyLnB5CTIwMTctMDItMjYgMjE6MTA6MzEuNDE5ODk0OTgzICswMTAwCiBAQCAtMCwwICsxLDEy MiBAQAogKyMgV3JhcHBlciBBUEkgZm9yIGZyYW1lcy4KICsKQEAgLTYyLDcgKzYyLDcgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIu cHkKICsgICAgICAgICAgICBpZiB2YWwgIT0gTm9uZToKICsgICAgICAgICAgICAgICAgdmFsID0g c3RyICh2YWwpCiArICAgICAgICAjIEZJWE1FOiB3b3VsZCBiZSBuaWNlIHRvIGhhdmUgYSBtb3Jl IHByZWNpc2UgZXhjZXB0aW9uIGhlcmUuCi0rICAgICAgICBleGNlcHQgUnVudGltZUVycm9yLCB0 ZXh0OgorKyAgICAgICAgZXhjZXB0IFJ1bnRpbWVFcnJvciBhcyB0ZXh0OgogKyAgICAgICAgICAg IHZhbCA9IHRleHQKICsgICAgICAgIGlmIHZhbCA9PSBOb25lOgogKyAgICAgICAgICAgIHN0cmVh bS53cml0ZSAoIj8/PyIpCkBAIC0xNDgsMTAgKzE0OCwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weQogKwogKyAgICBkZWYg X19nZXRhdHRyX18gKHNlbGYsIG5hbWUpOgogKyAgICAgICAgcmV0dXJuIGdldGF0dHIgKHNlbGYu ZnJhbWUsIG5hbWUpCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIv Z2RiL2JhY2t0cmFjZS5weQorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9weXRob24v bGliL2dkYi9iYWNrdHJhY2UucHkKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv cHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CTIwMTYtMDctMDMgMTY6MzI6MTcuODY5MTk4ODU5 ICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0 cmFjZS5weQkyMDE3LTAyLTI2IDIxOjEwOjMxLjQxOTg5NDk4MyArMDEwMAogQEAgLTAsMCArMSw0 MiBAQAogKyMgRmlsdGVyaW5nIGJhY2t0cmFjZS4KICsKQEAgLTE5NSwxMCArMTk1LDEwIEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5 CiArICAgICAgICByZXR1cm4gaXRlcgogKyAgICByZXR1cm4gb2xkX2ZyYW1lX2ZpbHRlciAoaXRl cikKICsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29t bWFuZC9iYWNrdHJhY2UucHkKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcHl0aG9u L2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJMjAxNi0wNy0wMyAx NjozMjoxNy44NjkxOTg4NTkgKzAyMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcHl0 aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJMjAxNy0wMi0yNiAyMToxMDozMS40MTk4 OTQ5ODMgKzAxMDAKIEBAIC0wLDAgKzEsMTA2IEBACiArIyBOZXcgYmFja3RyYWNlIGNvbW1hbmQu CiArCgpkaWZmIC0tZ2l0IGEvZ2RiLXB5dGhvbi1naWwucGF0Y2ggYi9nZGItcHl0aG9uLWdpbC5w YXRjaAppbmRleCA1YTRjYjBmLi5lMDdmMjY2IDEwMDY0NAotLS0gYS9nZGItcHl0aG9uLWdpbC5w YXRjaAorKysgYi9nZGItcHl0aG9uLWdpbC5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZG9jL3B5dGhvbi50ZXhpCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL2RvYy9weXRob24udGV4aQogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEx LjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2RvYy9weXRob24udGV4aQkyMDE2LTA3LTAzIDE2OjMwOjM3 LjAwOTMzODM1OCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvcHl0aG9u LnRleGkJMjAxNi0wNy0wMyAxNjozMDo0Mi44MTIzODc4NjcgKzAyMDAKKy0tLSBnZGItNy4xMi41 MC4yMDE3MDIwNy5vcmlnL2dkYi9kb2MvcHl0aG9uLnRleGkJMjAxNy0wMi0yNiAyMTowMzo1Ni40 MTQxNjE4ODAgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZG9jL3B5dGhvbi50 ZXhpCTIwMTctMDItMjYgMjE6MDM6NTcuNDQ4MTY5MDMzICswMTAwCiBAQCAtMjI5LDYgKzIyOSwx NCBAQAogIHJldHVybiB2YWx1ZSBpcyBAY29kZXtOb25lfS4gIElmIEB2YXJ7dG9fc3RyaW5nfSBp cyBAY29kZXtUcnVlfSwgdGhlCiAgQHZhbHVle0dEQk59IHZpcnR1YWwgdGVybWluYWwgd2lsbCBi ZSB0ZW1wb3JhcmlseSBzZXQgdG8gdW5saW1pdGVkIHdpZHRoCkBAIC0xNywxMCArMTcsMTAgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvcHl0aG9uLnRleGkKICBAZW5kIGRl ZnVuCiAgCiAgQGZpbmRleCBnZGIuYnJlYWtwb2ludHMKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCitJbmRleDogZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE2LTA3 LTAzIDE2OjMwOjM3LjAxMDMzODM2NiArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNi0wNy0wMyAxNjozMDo0Mi44MTIzODc4Njcg KzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9weXRob24vcHl0aG9uLWlu dGVybmFsLmgJMjAxNy0wMi0yNiAyMTowMzo1Ni40MTUxNjE4ODcgKzAxMDAKKysrKyBnZGItNy4x Mi41MC4yMDE3MDIwNy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTctMDItMjYgMjE6 MDM6NTcuNDQ4MTY5MDMzICswMTAwCiBAQCAtMTQwLDYgKzE0MCw4IEBACiAgI2RlZmluZSBQeUdJ TFN0YXRlX1JlbGVhc2UoQVJHKSAoKHZvaWQpKEFSRykpCiAgI2RlZmluZSBQeUV2YWxfSW5pdFRo cmVhZHMoKQpAQCAtMzAsMjEgKzMwLDE5IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9n ZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiAgI2RlZmluZSBQeUV2YWxfUmVsZWFzZUxvY2so KQogICNlbmRpZgogIAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHl0 aG9uLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcHl0aG9uL3B5dGhvbi5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvcHl0aG9uL3B5dGhv bi5jCTIwMTYtMDctMDMgMTY6MzA6MzcuMDExMzM4Mzc1ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL3B5dGhvbi9weXRob24uYwkyMDE2LTA3LTAzIDE2OjMxOjE2LjMyNDY3Mzc4 MyArMDIwMAotQEAgLTYxOSwxMyArNjE5LDE4IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcu b3JpZy9nZGIvcHl0aG9uL3B5dGhvbi5jCTIwMTctMDItMjYgMjE6MDM6NTYuNDE2MTYxODk0ICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3B5dGhvbi9weXRob24uYwkyMDE3LTAy LTI2IDIxOjA5OjIzLjI1MjQyMzA5NSArMDEwMAorQEAgLTU5NSwxMiArNTk1LDE2IEBACiAgewog ICAgY29uc3QgY2hhciAqYXJnOwogICAgUHlPYmplY3QgKmZyb21fdHR5X29iaiA9IE5VTEwsICp0 b19zdHJpbmdfb2JqID0gTlVMTDsKIC0gIGludCBmcm9tX3R0eSwgdG9fc3RyaW5nOwogLSAgc3Rh dGljIGNoYXIgKmtleXdvcmRzW10gPSB7ImNvbW1hbmQiLCAiZnJvbV90dHkiLCAidG9fc3RyaW5n IiwgTlVMTCB9OwotKyAgUHlPYmplY3QgKnJlbGVhc2VfZ2lsX29iaiA9IE5VTEw7CiArICBpbnQg ZnJvbV90dHksIHRvX3N0cmluZywgcmVsZWFzZV9naWw7Ci0rICBzdGF0aWMgY2hhciAqa2V5d29y ZHNbXSA9IHsiY29tbWFuZCIsICJmcm9tX3R0eSIsICJ0b19zdHJpbmciLAotKwkJCSAgICAgInJl bGVhc2VfZ2lsIiwgTlVMTCB9OwotICAgY2hhciAqcmVzdWx0ID0gTlVMTDsKKysgIHN0YXRpYyBj aGFyICprZXl3b3Jkc1tdID0geyJjb21tYW5kIiwgImZyb21fdHR5IiwgInRvX3N0cmluZyIsICJy ZWxlYXNlX2dpbCIsIE5VTEwgfTsKKysgIFB5T2JqZWN0ICpyZWxlYXNlX2dpbF9vYmogPSBOVUxM OwogKyAgLyogSW5pdGlhbGl6ZSBpdCBqdXN0IHRvIGF2b2lkIGEgR0NDIGZhbHNlIHdhcm5pbmcu ICAqLwogKyAgUHlUaHJlYWRTdGF0ZSAqc3RhdGUgPSBOVUxMOwogIApAQCAtNTcsNyArNTUsNyBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weXRob24uYwogICAgICBy ZXR1cm4gTlVMTDsKICAKICAgIGZyb21fdHR5ID0gMDsKLUBAIC02NDYsNiArNjUxLDE1IEBACitA QCAtNjIxLDYgKzYyNSwxNSBAQAogICAgICAgIHRvX3N0cmluZyA9IGNtcDsKICAgICAgfQogIApA QCAtNzAsMTEgKzY4LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9u L3B5dGhvbi5jCiArICAgICAgcmVsZWFzZV9naWwgPSBjbXA7CiArICAgIH0KICsKKyAgIHN0ZDo6 c3RyaW5nIHRvX3N0cmluZ19yZXM7CisgCiAgICBUUlkKLSAgICAgewotICAgICAgIC8qIENvcHkg dGhlIGFyZ3VtZW50IHRleHQgaW4gY2FzZSB0aGUgY29tbWFuZCBtb2RpZmllcyBpdC4gICovCi1A QCAtNjUzLDYgKzY2NywxMyBAQAotICAgICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwID0gbWFr ZV9jbGVhbnVwICh4ZnJlZSwgY29weSk7CitAQCAtNjI5LDYgKzY0MiwxMyBAQAorICAgICAgIHN0 ZDo6c3RyaW5nIGNvcHkgKGFyZyk7CiAgICAgICAgc3RydWN0IGludGVycCAqaW50ZXJwOwogIAog KyAgICAgIC8qIEluIHRoZSBjYXNlIG9mIGxvbmcgcnVubmluZyBHREIgY29tbWFuZHMsIGFsbG93 IHRoZSB1c2VyIHRvCkBAIC04NCwxOCArODIsMTcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9weXRob24vcHl0aG9uLmMKICsgICAgICBpZiAocmVsZWFzZV9naWwpCiArCXN0YXRl ID0gUHlFdmFsX1NhdmVUaHJlYWQoKTsKICsKLSAgICAgICBtYWtlX2NsZWFudXBfcmVzdG9yZV9p bnRlZ2VyICgmY3VycmVudF91aS0+YXN5bmMpOwotICAgICAgIGN1cnJlbnRfdWktPmFzeW5jID0g MDsKLSAKLUBAIC02NzEsMTEgKzY5MiwyMyBAQAotIAkgIGV4ZWN1dGVfY29tbWFuZCAoY29weSwg ZnJvbV90dHkpOwotIAl9CisgICAgICAgc2NvcGVkX3Jlc3RvcmUgc2F2ZV9hc3luYyA9IG1ha2Vf c2NvcGVkX3Jlc3RvcmUgKCZjdXJyZW50X3VpLT5hc3luYywgMCk7CiAgCisgICAgICAgc2NvcGVk X3Jlc3RvcmUgc2F2ZV91aW91dCA9IG1ha2Vfc2NvcGVkX3Jlc3RvcmUgKCZjdXJyZW50X3Vpb3V0 KTsKK0BAIC02NDMsMTAgKzY2MywyMiBAQAorIAl0b19zdHJpbmdfcmVzID0gZXhlY3V0ZV9jb21t YW5kX3RvX3N0cmluZyAoJmNvcHlbMF0sIGZyb21fdHR5KTsKKyAgICAgICBlbHNlCisgCWV4ZWN1 dGVfY29tbWFuZCAoJmNvcHlbMF0sIGZyb21fdHR5KTsKKysKICsgICAgICAvKiBSZWFjcXVpcmUg dGhlIEdJTCBpZiBpdCB3YXMgcmVsZWFzZWQgZWFybGllci4gICovCiArICAgICAgaWYgKHJlbGVh c2VfZ2lsKQogKwlQeUV2YWxfUmVzdG9yZVRocmVhZCAoc3RhdGUpOwotKwotICAgICAgIGRvX2Ns ZWFudXBzIChjbGVhbnVwKTsKICAgICAgfQogICAgQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tf QUxMKQogICAgICB7CkBAIC0xMTIsOCArMTA5LDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAgICAgIH0KICAgIEVORF9DQVRDSAogIAotLS0tIC9k ZXYvbnVsbAkyMDE2LTA5LTEyIDIxOjM3OjA1LjMzMjY5MzkyNyArMDIwMAotKysrIGdkYi03LjEx LjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5jCTIw MTYtMDktMTIgMjE6NTE6NTMuNzUwMzE3MTg3ICswMjAwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmMKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10 aHJlYWQuYwkyMDE3LTAyLTI2IDIxOjAzOjU3LjQ1MDE2OTA0NyArMDEwMAogQEAgLTAsMCArMSwx MyBAQAogKyNpbmNsdWRlIDxzdGRpby5oPgogKyNpbmNsdWRlIDx1bmlzdGQuaD4KQEAgLTEyOCw4 ICsxMjcsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHl0aG9u LmMKICsgICAgICBwcmludGYgKCJTbGVlcGluZyAlZFxuIiwgaSk7CiArICAgIH0KICt9Ci0tLS0g L2Rldi9udWxsCTIwMTYtMDktMTIgMjE6Mzc6MDUuMzMyNjkzOTI3ICswMjAwCi0rKysgZ2RiLTcu MTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4 cAkyMDE2LTA5LTEyIDIxOjUyOjM4LjYwNTc1MDM2MCArMDIwMAorSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5leHAKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt Z2lsLW10aHJlYWQuZXhwCTIwMTctMDItMjYgMjE6MDM6NTcuNDUwMTY5MDQ3ICswMTAwCiBAQCAt MCwwICsxLDY5IEBACiArIyBDb3B5cmlnaHQgKEMpIDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiArCkBAIC0yMDAsOCArMjAxLDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvcHl0aG9uL3B5dGhvbi5jCiArCX0KICsgICAgfQogK30KLS0tLSAvZGV2L251bGwJ MjAxNi0wOS0xMiAyMTozNzowNS4zMzI2OTM5MjcgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2 MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQucHkJMjAxNi0wOS0x MiAyMTo1OTowMi42Njg0NTkyODYgKzAyMDAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQucHkKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQu cHkJMjAxNy0wMi0yNiAyMTowMzo1Ny40NTAxNjkwNDcgKzAxMDAKIEBAIC0wLDAgKzEsMjggQEAK ICt0cnk6CiArICAgaW1wb3J0IHRocmVhZAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJp dHBvcy0yMG9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCmlu ZGV4IGIzN2M1YjkuLjhkMTUyMjcgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0y MG9mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaApAQCAt NDYzLDExICs0NjMsMTEgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZp bGVuYW1lPWJpdHBvcy1tYWluLnBhdGNoCiAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvYWRhLWxhbmcuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9hZGEtbGFuZy5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLWxhbmcu YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1MzUxMDExNyArMDIwMAotKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9hZGEtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI3NTMwMDI4ICswMjAw Ci1AQCAtNzUsNyArNzUsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2Fk YS1sYW5nLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4x Mi41MC4yMDE3MDIyNi9nZGIvYWRhLWxhbmcuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQxNTYwOTc3 NCArMDEwMAorQEAgLTc2LDcgKzc2LDcgQEAKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICpkZXNj X2JvdW5kcyAoc3RydWN0IHZhbHVlICopOwogIApAQCAtNDc2LDcgKzQ3Niw3IEBAIEluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogIAogIHN0YXRpYyBpbnQgZmF0X3Bu dHJfYm91bmRzX2JpdHNpemUgKHN0cnVjdCB0eXBlICopOwogIAotQEAgLTgzLDEzICs4MywxMyBA QAorQEAgLTg0LDEzICs4NCwxMyBAQAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2NfZGF0 YSAoc3RydWN0IHZhbHVlICopOwogIApAQCAtNDkyLDcgKzQ5Miw3IEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogIAogIHN0YXRpYyBpbnQgZGVzY19ib3VuZF9i aXRzaXplIChzdHJ1Y3QgdHlwZSAqLCBpbnQsIGludCk7CiAgCi1AQCAtMTcyLDcgKzE3Miw3IEBA CitAQCAtMTczLDcgKzE3Myw3IEBACiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdW53cmFwX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC01MDEsNyArNTAxLDcgQEAgSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICpk ZWNvZGVfY29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICopOwogIAot QEAgLTE4Nyw3ICsxODcsOCBAQAorQEAgLTE4OCw3ICsxODgsOCBAQAogIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKnZhbHVlX3N1YnNjcmlwdF9wYWNrZWQgKHN0cnVjdCB2YWx1ZSAqLCBpbnQsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZhbHVlICoq KTsKICAKQEAgLTUxMSw3ICs1MTEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2FkYS1sYW5nLmMKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICpjb2VyY2VfdW5zcGVjX3ZhbF90 b190eXBlIChzdHJ1Y3QgdmFsdWUgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqKTsKLUBAIC0yMTUsMTQgKzIxNiwxNCBAQAor QEAgLTIxNiwxNCArMjE3LDE0IEBACiAgc3RhdGljIHN0cnVjdCBzeW1ib2wgKnN0YW5kYXJkX2xv b2t1cCAoY29uc3QgY2hhciAqLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW5fZW51bSk7CiAgCkBAIC01MzAsNyArNTMw LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3Rh dGljIHN0cnVjdCB2YWx1ZSAqYWRhX3RvX2ZpeGVkX3ZhbHVlX2NyZWF0ZSAoc3RydWN0IHR5cGUg KiwgQ09SRV9BRERSLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB2YWx1ZSAqKTsKLUBAIC0yMzYsNyArMjM3LDcgQEAKK0BAIC0yMzcsNyAr MjM4LDcgQEAKICBzdGF0aWMgdm9pZCBhZGFfbGFuZ3VhZ2VfYXJjaF9pbmZvIChzdHJ1Y3QgZ2Ri YXJjaCAqLAogIAkJCQkgICAgc3RydWN0IGxhbmd1YWdlX2FyY2hfaW5mbyAqKTsKICAKQEAgLTUz OSw3ICs1MzksNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMK ICAJCQkJCSAgICAgc3RydWN0IHR5cGUgKik7CiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqYXNz aWduX2FnZ3JlZ2F0ZSAoc3RydWN0IHZhbHVlICosIHN0cnVjdCB2YWx1ZSAqLCAKLUBAIC03MDAs NyArNzAxLDcgQEAKK0BAIC03MDEsNyArNzAyLDcgQEAKICB9CiAgCiAgc3RhdGljIGNvbnN0IGdk Yl9ieXRlICoKQEAgLTU0OCw3ICs1NDgsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2FkYS1sYW5nLmMKICB7CiAgICBpZiAodmFsYWRkciA9PSBOVUxMKQogICAgICByZXR1cm4g TlVMTDsKLUBAIC03MDksNyArNzEwLDcgQEAKK0BAIC03MTAsNyArNzExLDcgQEAKICB9CiAgCiAg c3RhdGljIENPUkVfQUREUgpAQCAtNTU3LDcgKzU1Nyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogIHsKICAgIGlmIChhZGRyZXNzID09IDApCiAgICAgIHJl dHVybiAwOwotQEAgLTE3NTYsNyArMTc1Nyw3IEBACitAQCAtMTc1Nyw3ICsxNzU4LDcgQEAKICAv KiBJZiBUWVBFIGlzIHRoZSB0eXBlIG9mIGFuIGFycmF5LWRlc2NyaXB0b3IgKGZhdCBwb2ludGVy KSwgIHRoZSBiaXQKICAgICBwb3NpdGlvbiBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0aGUgYWRk cmVzcyBvZiB0aGUgYm91bmRzIGRhdGEuICAqLwogIApAQCAtNTY2LDcgKzU2Niw3IEBAIEluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogIGZhdF9wbnRyX2JvdW5kc19i aXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIHJldHVybiBUWVBFX0ZJRUxEX0JJVFBP UyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAxKTsKLUBAIC0xODIyLDcgKzE4MjMsNyBAQAorQEAg LTE4MjMsNyArMTgyNCw3IEBACiAgLyogSWYgVFlQRSBpcyB0aGUgdHlwZSBvZiBhbiBhcnJheS1k ZXNjcmlwdG9yIChmYXQgcG9pbnRlciksIHRoZSBiaXQKICAgICBwb3NpdGlvbiBvZiB0aGUgZmll bGQgY29udGFpbmluZyB0aGUgYWRkcmVzcyBvZiB0aGUgZGF0YS4gICovCiAgCkBAIC01NzUsNyAr NTc1LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgZmF0 X3BudHJfZGF0YV9iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIHJldHVybiBUWVBF X0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAwKTsKLUBAIC0xODU3LDcgKzE4 NTgsNyBAQAorQEAgLTE4NTgsNyArMTg1OSw3IEBACiAgICAgb2YgdGhlIEl0aCBsb3dlciBib3Vu ZCBzdG9yZWQgaW4gaXQsIGlmIFdISUNIIGlzIDAsIGFuZCB0aGUgSXRoIHVwcGVyCiAgICAgYm91 bmQsIGlmIFdISUNIIGlzIDEuICBUaGUgZmlyc3QgYm91bmQgaXMgST0xLiAgKi8KICAKQEAgLTU4 NCw3ICs1ODQsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMK ICBkZXNjX2JvdW5kX2JpdHBvcyAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBpLCBpbnQgd2hpY2gp CiAgewogICAgcmV0dXJuIFRZUEVfRklFTERfQklUUE9TIChkZXNjX2Jhc2VfdHlwZSAodHlwZSks IDIgKiBpICsgd2hpY2ggLSAyKTsKLUBAIC0yMDQ3LDcgKzIwNDgsNyBAQAorQEAgLTIwNDgsNyAr MjA0OSw3IEBACiAgCSAgICAgICAgIHplcm8sIGFuZCBkb2VzIG5vdCBuZWVkIHRvIGJlIHJlY29t cHV0ZWQuICAqLwogIAkgICAgICBpZiAobG8gPCBoaSkKICAJCXsKQEAgLTU5Myw3ICs1OTMsNyBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMKICAJCSAgICAgICAg KGhpIC0gbG8gKyAxKSAqIFRZUEVfRklFTERfQklUU0laRSAoZWx0X3R5cGUsIDApOwogIAogIAkJ ICBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkgPSAoYXJyYXlfYml0c2l6ZSArIDcpIC8gODsKLUBA IC0yMjA3LDcgKzIyMDgsNyBAQAorQEAgLTIyMDgsNyArMjIwOSw3IEBACiAgICAgdGhlIGxlbmd0 aCBpcyBhcmJpdHJhcnkuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCkBAIC02MDIsNyAr NjAyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgewog ICAgc3RydWN0IHR5cGUgKm5ld19lbHRfdHlwZTsKICAgIHN0cnVjdCB0eXBlICpuZXdfdHlwZTsK LUBAIC0yMjYxLDcgKzIyNjIsNyBAQAorQEAgLTIyNjIsNyArMjI2Myw3IEBACiAgICBjaGFyICpu YW1lOwogICAgY29uc3QgY2hhciAqdGFpbDsKICAgIHN0cnVjdCB0eXBlICpzaGFkb3dfdHlwZTsK QEAgLTYxMSw3ICs2MTEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1s YW5nLmMKICAKICAgIGlmICghcmF3X25hbWUpCiAgICAgIHJhd19uYW1lID0gYWRhX3R5cGVfbmFt ZSAoZGVzY19iYXNlX3R5cGUgKHR5cGUpKTsKLUBAIC0yMzMyLDcgKzIzMzMsOCBAQAorQEAgLTIz MzMsNyArMjMzNCw4IEBACiAgIAkgYXJyYXkgd2l0aCBubyB3cmFwcGVyLiAgSW4gb3JkZXIgdG8g aW50ZXJwcmV0IHRoZSB2YWx1ZSB0aHJvdWdoCiAgIAkgdGhlIChsZWZ0LWp1c3RpZmllZCkgcGFj a2VkIGFycmF5IHR5cGUgd2UganVzdCBidWlsdCwgd2UgbXVzdAogICAJIGZpcnN0IGxlZnQtanVz dGlmeSBpdC4gICovCkBAIC02MjEsNyArNjIxLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgVUxPTkdFU1QgbW9kOwogIAogICAgICAgIG1vZCA9 IGFkYV9tb2R1bHVzICh2YWx1ZV90eXBlIChhcnIpKSAtIDE7Ci1AQCAtMjU2MCw3ICsyNTYyLDcg QEAKK0BAIC0yNTYxLDcgKzI1NjMsNyBAQAogIAogIHN0cnVjdCB2YWx1ZSAqCiAgYWRhX3ZhbHVl X3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdmFsdWUgKm9iaiwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCkBAIC02MzAsNyArNjMwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dHlwZSAqdHlwZSkKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7Ci1AQCAtMjYzMyw3ICsyNjM1LDcg QEAKK0BAIC0yNjMyLDcgKzI2MzQsNyBAQAogIAogICAgaWYgKG9iaiAhPSBOVUxMKQogICAgICB7 CkBAIC02MzksNyArNjM5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEt bGFuZy5jCiAgCiAgICAgICAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAodiwgb2JqKTsK ICAgICAgICBzZXRfdmFsdWVfYml0cG9zICh2LCBiaXRfb2Zmc2V0ICsgdmFsdWVfYml0cG9zIChv YmopKTsKLUBAIC0yNjgxLDcgKzI2ODMsNyBAQAorQEAgLTI2NzgsNyArMjY4MCw3IEBACiAgICAg bm90IG92ZXJsYXAuICAqLwogIHN0YXRpYyB2b2lkCiAgbW92ZV9iaXRzIChnZGJfYnl0ZSAqdGFy Z2V0LCBpbnQgdGFyZ19vZmZzZXQsIGNvbnN0IGdkYl9ieXRlICpzb3VyY2UsCkBAIC02NDgsNyAr NjQ4LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgewog ICAgdW5zaWduZWQgaW50IGFjY3VtLCBtYXNrOwogICAgaW50IGFjY3VtX2JpdHMsIGNodW5rX3Np emU7Ci1AQCAtMjc3MSw3ICsyNzczLDcgQEAKK0BAIC0yNzY4LDcgKzI3NzAsNyBAQAogICAgICB7 CiAgICAgICAgaW50IGxlbiA9ICh2YWx1ZV9iaXRwb3MgKHRvdmFsKQogIAkJICsgYml0cyArIEhP U1RfQ0hBUl9CSVQgLSAxKSAvIEhPU1RfQ0hBUl9CSVQ7CkBAIC02NTcsNyArNjU3LDcgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgZ2RiX2J5dGUg KmJ1ZmZlciA9IChnZGJfYnl0ZSAqKSBhbGxvY2EgKGxlbik7CiAgICAgICAgc3RydWN0IHZhbHVl ICp2YWw7CiAgICAgICAgQ09SRV9BRERSIHRvX2FkZHIgPSB2YWx1ZV9hZGRyZXNzICh0b3ZhbCk7 Ci1AQCAtMjgyMiw3ICsyODI0LDcgQEAKK0BAIC0yODE5LDcgKzI4MjEsNyBAQAogICAgICAoTE9O R0VTVCkgICh2YWx1ZV9hZGRyZXNzIChjb21wb25lbnQpIC0gdmFsdWVfYWRkcmVzcyAoY29udGFp bmVyKSk7CiAgICBpbnQgYml0X29mZnNldF9pbl9jb250YWluZXIgPQogICAgICB2YWx1ZV9iaXRw b3MgKGNvbXBvbmVudCkgLSB2YWx1ZV9iaXRwb3MgKGNvbnRhaW5lcik7CkBAIC02NjYsNyArNjY2 LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgCiAgICB2 YWwgPSB2YWx1ZV9jYXN0ICh2YWx1ZV90eXBlIChjb21wb25lbnQpLCB2YWwpOwogIAotQEAgLTQ0 ODAsNyArNDQ4Miw3IEBACitAQCAtNDQ3MCw3ICs0NDcyLDcgQEAKICAgIGlmIChWQUxVRV9MVkFM ICh2YWwpID09IG5vdF9sdmFsCiAgICAgICAgfHwgVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX2lu dGVybmFsdmFyKQogICAgICB7CkBAIC02NzUsNyArNjc1LDcgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgY29uc3QgQ09SRV9BRERSIGFkZHIgPQog ICAgICAgICAgdmFsdWVfYXNfbG9uZyAodmFsdWVfYWxsb2NhdGVfc3BhY2VfaW5faW5mZXJpb3Ig KGxlbikpOwogIAotQEAgLTQ1NjQsNyArNDU2Niw3IEBACitAQCAtNDU1NCw3ICs0NTU2LDcgQEAK ICB2YWx1ZV9wb2ludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlwZSkK ICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwpA QCAtNjg0LDcgKzY4NCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxh bmcuYwogICAgZ2RiX2J5dGUgKmJ1ZiA9IChnZGJfYnl0ZSAqKSBhbGxvY2EgKGxlbik7CiAgICBD T1JFX0FERFIgYWRkcjsKICAKLUBAIC02Nzk5LDcgKzY4MDEsNyBAQAorQEAgLTY3NTQsNyArNjc1 Niw3IEBACiAgCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENPUkVfQUREUiBhZGRyZXNzKQogIHsKQEAgLTY5Myw3 ICs2OTMsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMKICAg IHN0cnVjdCB0eXBlICp0YWdfdHlwZTsKICAKICAgIGlmIChmaW5kX3N0cnVjdF9maWVsZCAoIl90 YWciLCB0eXBlLCAwLCAmdGFnX3R5cGUsICZ0YWdfYnl0ZV9vZmZzZXQsCi1AQCAtNzI4MCw3ICs3 MjgyLDcgQEAKK0BAIC03MjM1LDcgKzcyMzcsNyBAQAogICAgIG9ubHkgaW4gdGhhdCBpdCBjYW4g aGFuZGxlIHBhY2tlZCB2YWx1ZXMgb2YgYXJiaXRyYXJ5IHR5cGUuICAqLwogIAogIHN0YXRpYyBz dHJ1Y3QgdmFsdWUgKgpAQCAtNzAyLDcgKzcwMiw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0 eXBlICphcmdfdHlwZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLUBAIC03MjkyLDcgKzcy OTQsNyBAQAorQEAgLTcyNDcsNyArNzI0OSw3IEBACiAgCiAgICBpZiAoVFlQRV9GSUVMRF9CSVRT SVpFIChhcmdfdHlwZSwgZmllbGRubykgIT0gMCkKICAgICAgewpAQCAtNzExLDcgKzcxMSw3IEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogICAgICAgIGludCBi aXRfc2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAoYXJnX3R5cGUsIGZpZWxkbm8pOwogIAogICAg ICAgIHJldHVybiBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKGFyZzEsIHZhbHVlX2Nv bnRlbnRzIChhcmcxKSwKLUBAIC03MzE5LDkgKzczMjEsOSBAQAorQEAgLTcyNzQsOSArNzI3Niw5 IEBACiAgICAgUmV0dXJucyAxIGlmIGZvdW5kLCAwIG90aGVyd2lzZS4gICovCiAgCiAgc3RhdGlj IGludApAQCAtNzIzLDcgKzcyMyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv YWRhLWxhbmcuYwogIAkJICAgaW50ICppbmRleF9wKQogIHsKICAgIGludCBpOwotQEAgLTczMzks OCArNzM0MSw4IEBACitAQCAtNzI5NCw4ICs3Mjk2LDggQEAKICAKICAgIGZvciAoaSA9IDA7IGkg PCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpICs9IDEpCiAgICAgIHsKQEAgLTczNCw3ICs3MzQsNyBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBjb25z dCBjaGFyICp0X2ZpZWxkX25hbWUgPSBUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpOwogIAogICAg ICAgIGlmICh0X2ZpZWxkX25hbWUgPT0gTlVMTCkKLUBAIC03NDEwLDcgKzc0MTIsNyBAQAorQEAg LTczNjUsNyArNzM2Nyw3IEBACiAgICAgU2VhcmNoZXMgcmVjdXJzaXZlbHkgdGhyb3VnaCB3cmFw cGVyIGZpZWxkcyAoZS5nLiwgJ19wYXJlbnQnKS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1 ZSAqCkBAIC03NDMsNyArNzQzLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h ZGEtbGFuZy5jCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICp0eXBlKQog IHsKICAgIGludCBpOwotQEAgLTc0NDMsNyArNzQ0NSw3IEBACitAQCAtNzM5OCw3ICs3NDAwLDcg QEAKICAgICAgICAgICAgaW50IGo7CiAgICAgICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBl ID0gYWRhX2NoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwKICAJCQkJCQkJCQlp KSk7CkBAIC03NTIsNyArNzUyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h ZGEtbGFuZy5jCiAgCiAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBUWVBFX05GSUVMRFMgKGZp ZWxkX3R5cGUpOyBqICs9IDEpCiAgICAgICAgICAgICAgewotQEAgLTc0NjEsOCArNzQ2Myw4IEBA CitAQCAtNzQxNiw4ICs3NDE4LDggQEAKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAgLTc2Myw3 ICs3NjMsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMKICAK ICAKICAvKiBSZXR1cm4gZmllbGQgI0lOREVYIGluIEFSRywgd2hlcmUgdGhlIGluZGV4IGlzIHRo YXQgcmV0dXJuZWQgYnkKLUBAIC03NDcxLDcgKzc0NzMsNyBAQAorQEAgLTc0MjYsNyArNzQyOCw3 IEBACiAgICogSWYgZm91bmQsIHJldHVybiB2YWx1ZSwgZWxzZSByZXR1cm4gTlVMTC4gICovCiAg CiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03NzIsNyArNzcyLDcgQEAgSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgCQkJc3RydWN0IHR5cGUgKnR5cGUpCiAg ewogICAgcmV0dXJuIGFkYV9pbmRleF9zdHJ1Y3RfZmllbGRfMSAoJmluZGV4LCBhcmcsIG9mZnNl dCwgdHlwZSk7Ci1AQCAtNzQ4Myw3ICs3NDg1LDcgQEAKK0BAIC03NDM4LDcgKzc0NDAsNyBAQAog ICAqICpJTkRFWF9QLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc4MSw3ICs3 ODEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMKICAJCQkg IHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIGludCBpOwotQEAgLTc1NzMsNyArNzU3NSw4IEBA CitAQCAtNzUyOCw3ICs3NTMwLDggQEAKICAgICAgdiA9IGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxk IChuYW1lLCBhcmcsIDAsIHQpOwogICAgZWxzZQogICAgICB7CkBAIC03OTEsNyArNzkxLDcgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgc3RydWN0 IHR5cGUgKmZpZWxkX3R5cGU7CiAgICAgICAgQ09SRV9BRERSIGFkZHJlc3M7CiAgCi1AQCAtNzkw NCw4ICs3OTA3LDggQEAKK0BAIC03ODM0LDggKzc4MzcsOCBAQAogIC8qIFJldHVybiBPRkYgcm91 bmRlZCB1cHdhcmQgaWYgbmVjZXNzYXJ5IHRvIGEgbXVsdGlwbGUgb2YKICAgICBBTElHTk1FTlQg KGEgcG93ZXIgb2YgMikuICAqLwogIApAQCAtODAyLDcgKzgwMiw3IEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogIHsKICAgIHJldHVybiAob2ZmICsgYWxpZ25t ZW50IC0gMSkgJiB+KGFsaWdubWVudCAtIDEpOwogIH0KLUBAIC04Mjk5LDEwICs4MzAyLDkgQEAK K0BAIC04MjI5LDEwICs4MjMyLDkgQEAKICAgIHN0cnVjdCB2YWx1ZSAqbWFyayA9IHZhbHVlX21h cmsgKCk7CiAgICBzdHJ1Y3QgdmFsdWUgKmR2YWw7CiAgICBzdHJ1Y3QgdHlwZSAqcnR5cGU7CkBA IC04MTUsNyArODE1LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFu Zy5jCiAgICBpbnQgZjsKICAKICAgIC8qIENvbXB1dGUgdGhlIG51bWJlciBvZiBmaWVsZHMgaW4g dGhpcyByZWNvcmQgdHlwZSB0aGF0IGFyZSBnb2luZwotQEAgLTgzODAsNyArODM4Miw3IEBACitA QCAtODMxMCw3ICs4MzEyLDcgQEAKICAJICAgICB0aGF0IGZvbGxvdyB0aGlzIG9uZS4gICovCiAg CSAgaWYgKGFkYV9pc19hbGlnbmVyX3R5cGUgKGZpZWxkX3R5cGUpKQogIAkgICAgewpAQCAtODI0 LDcgKzgyNCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwog IAogIAkgICAgICBmaWVsZF92YWxhZGRyID0gY29uZF9vZmZzZXRfaG9zdCAoZmllbGRfdmFsYWRk ciwgZmllbGRfb2Zmc2V0KTsKICAJICAgICAgZmllbGRfYWRkcmVzcyA9IGNvbmRfb2Zmc2V0X3Rh cmdldCAoZmllbGRfYWRkcmVzcywgZmllbGRfb2Zmc2V0KTsKLUBAIC04NTE2LDExICs4NTE4LDEx IEBACitAQCAtODQ0NiwxMSArODQ0OCwxMSBAQAogICAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSA8 PSAwKQogICAgICB7CiAgICAgICAgaWYgKFRZUEVfTkFNRSAocnR5cGUpKQpAQCAtODQwLDcgKzg0 MCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogICAgICB9 CiAgICBlbHNlCiAgICAgIHsKLUBAIC04OTg3LDcgKzg5ODksOCBAQAorQEAgLTg5MTcsNyArODkx OSw4IEBACiAgCSB0eXBlIHdhcyBhIHJlZ3VsYXIgKG5vbi1wYWNrZWQpIGFycmF5IHR5cGUuICBB cyBhIHJlc3VsdCwgdGhlCiAgCSBiaXRzaXplIG9mIHRoZSBhcnJheSBlbGVtZW50cyBuZWVkcyB0 byBiZSBzZXQgYWdhaW4sIGFuZCB0aGUgYXJyYXkKICAJIGxlbmd0aCBuZWVkcyB0byBiZSByZWNv bXB1dGVkIGJhc2VkIG9uIHRoYXQgYml0c2l6ZS4gICovCkBAIC04NTAsMTggKzg1MCwxOCBAQCBJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBpbnQgZWx0 X2JpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKICAKICAgICAgICBUWVBF X0ZJRUxEX0JJVFNJWkUgKHJlc3VsdCwgMCkgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUwLCAw KTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuaAorSW5kZXg6IGdk Yi03LjEyLjUwLjIwMTcwMjI2L2dkYi9hZGEtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1 NDUxMDEyNSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5oCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTI4NTMwMDM2ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAy MjYub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEw MAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9hZGEtbGFuZy5oCTIwMTctMDItMjYgMjI6 MDQ6MDMuNDE2NjA5NzgyICswMTAwCiBAQCAtMTY4LDcgKzE2OCw3IEBACiAgZXh0ZXJuIHZvaWQg YWRhX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qgc3ltYm9sICpuZXdf c3ltYm9sLAogIAkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICAKLS1leHRlcm4g dm9pZCBhZGFfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBpbnQs IENPUkVfQUREUiwKLStleHRlcm4gdm9pZCBhZGFfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBj b25zdCBnZGJfYnl0ZSAqLCBMT05HRVNULCBDT1JFX0FERFIsCistZXh0ZXJuIHZvaWQgYWRhX3Zh bF9wcmludCAoc3RydWN0IHR5cGUgKiwgaW50LCBDT1JFX0FERFIsCisrZXh0ZXJuIHZvaWQgYWRh X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAogIAkJCSAgIHN0 cnVjdCB1aV9maWxlICosIGludCwKLSAJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKKyAJCQkg ICBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqKTsKIEBAIC0xODMsNyArMTgzLDcgQEAKICBleHRlcm4gdm9pZCBhZGFfcHJpbnRjaGFyIChp bnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICopOwpAQCAtODgxLDEwICs4ODEsMTAg QEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5oCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAq KTsKICAKICBleHRlcm4gc3RydWN0IHR5cGUgKmFkYV9jb2VyY2VfdG9fc2ltcGxlX2FycmF5X3R5 cGUgKHN0cnVjdCB0eXBlICopOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEt dHlwZXByaW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYWRhLXR5cGVwcmlu dC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLXR5 cGVwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU1NTEwMTMzICswMjAwCi0rKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUy ODUzMDAzNiArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2FkYS10eXBl cHJpbnQuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEy LjUwLjIwMTcwMjI2L2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNy0wMi0yNiAyMjowNDowMy40MTY2 MDk3ODIgKzAxMDAKIEBAIC04OTEsOCArODkxLDggQEAKICAJICAgIGNvbnN0IGNoYXIgKm5hbWUg PSBhZGFfdHlwZV9uYW1lICh0eXBlKTsKICAKQEAgLTkwNiwxMCArOTA2LDEwIEBAIEluZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLXR5cGVwcmludC5jCiAgCWJyZWFrOwogICAgICAg IGNhc2UgVFlQRV9DT0RFX0VOVU06CiAgCWlmIChzaG93IDwgMCkKLUluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvYWRhLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIy Ni9nZGIvYWRhLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi9hZGEtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NjUxMDE0MSAr MDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjUyODUzMDAzNiArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9y aWcvZ2RiL2FkYS12YWxwcmludC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAw CisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2FkYS12YWxwcmludC5jCTIwMTctMDItMjYg MjI6MDQ6MDMuNDE3NjA5Nzg5ICswMTAwCiBAQCAtMzMsMTEgKzMzLDExIEBACiAgI2luY2x1ZGUg Im9iamZpbGVzLmgiCiAgCkBAIC05MTcsNyArOTE3LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogLQkJCSAgICAgICBpbnQsCiArCQkJICAgICAgIExP TkdFU1QsCiAgCQkJICAgICAgIHN0cnVjdCB1aV9maWxlICosIGludCwKLSAJCQkgICAgICAgY29u c3Qgc3RydWN0IHZhbHVlICosCisgCQkJICAgICAgIHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAogLQkJCSAgICAgICBpbnQsIHN0 cnVjdCB0eXBlICosIGludCwKICsJCQkgICAgICAgaW50LCBzdHJ1Y3QgdHlwZSAqLCBMT05HRVNU LApAQCAtOTMzLDcgKzkzMyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRh LXZhbHByaW50LmMKICAJIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyKQogIHsKICAgIGlmICh0 eXBlX2xlbiA9PSAxKQotQEAgLTQ0MSwxMSArNDQxLDExIEBACitAQCAtNDM5LDExICs0MzksMTEg QEAKICAKICBzdGF0aWMgdm9pZAogIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBz dHJ1Y3QgdHlwZSAqZWx0dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKQEAgLTk0Nyw3ICs5 NDcsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS12YWxwcmludC5jCiAg ICB1bnNpZ25lZCBpbnQgdGhpbmdzX3ByaW50ZWQgPSAwOwogICAgaW50IGluX3F1b3RlcyA9IDA7 CiAgICBpbnQgbmVlZF9jb21tYSA9IDA7Ci1AQCAtNDYwLDkgKzQ2MCw5IEBACitAQCAtNDU4LDkg KzQ1OCw5IEBACiAgICAgIHsKICAgICAgICAvKiBQb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIHdl IGFyZSBleGFtaW5pbmcKICAgICAgICAgICB0byBzZWUgd2hldGhlciBpdCBpcyByZXBlYXRlZC4g ICovCkBAIC05NTksNyArOTU5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h ZGEtdmFscHJpbnQuYwogIAogICAgICAgIFFVSVQ7CiAgCi1AQCAtNDkzLDcgKzQ5Myw4IEBACitA QCAtNDkxLDcgKzQ5MSw4IEBACiAgCSAgYWRhX2VtaXRfY2hhciAoY2hhcl9hdCAoc3RyaW5nLCBp LCB0eXBlX2xlbiwgYnl0ZV9vcmRlciksCiAgCQkJIGVsdHR5cGUsIHN0cmVhbSwgJ1wnJywgdHlw ZV9sZW4pOwogIAkgIGZwdXRzX2ZpbHRlcmVkICgiJyIsIHN0cmVhbSk7CkBAIC05NjksNyArOTY5 LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogIAkg IGkgPSByZXAxIC0gMTsKICAJICB0aGluZ3NfcHJpbnRlZCArPSBvcHRpb25zLT5yZXBlYXRfY291 bnRfdGhyZXNob2xkOwogIAkgIG5lZWRfY29tbWEgPSAxOwotQEAgLTUyMSw3ICs1MjIsNyBAQAor QEAgLTUxOSw3ICs1MjAsNyBAQAogIAogIHZvaWQKICBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtOTc4LDE0ICs5NzgsMTQgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogIAkgICAgICBjb25z dCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAtNTMxLDEyICs1MzIsMTIg QEAKK0BAIC01MjksMTIgKzUzMCwxMiBAQAogIAogIHN0YXRpYyBpbnQKICBwcmludF92YXJpYW50 X3BhcnQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgZmllbGRfbnVtLAogLQkJICAgIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLCBpbnQgb2Zmc2V0LAogKwkJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLCBMT05HRVNUIG9mZnNldCwKICAJCSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQg cmVjdXJzZSwKLSAJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCSAgICBzdHJ1Y3Qg dmFsdWUgKnZhbCwKICAJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucywKICAJCSAgICBpbnQgY29tbWFfbmVlZGVkLAogLQkJICAgIHN0cnVjdCB0eXBlICpvdXRl cl90eXBlLCBpbnQgb3V0ZXJfb2Zmc2V0LApAQCAtOTkzLDEzICs5OTMsMTMgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogIAkJICAgIGNvbnN0IHN0cnVj dCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdmFyX3R5cGUg PSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkX251bSk7Ci1AQCAtNTcyLDExICs1NzMsMTEg QEAKK0BAIC01NzAsMTEgKzU3MSwxMSBAQAogIAogIHN0YXRpYyBpbnQKICBwcmludF9maWVsZF92 YWx1ZXMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKIC0JCSAg ICBpbnQgb2Zmc2V0LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICsJCSAg ICBMT05HRVNUIG9mZnNldCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0g CQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCisgCQkgICAgc3RydWN0IHZhbHVlICp2YWws CiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCiAgCQkg ICAgaW50IGNvbW1hX25lZWRlZCwKIC0JCSAgICBzdHJ1Y3QgdHlwZSAqb3V0ZXJfdHlwZSwgaW50 IG91dGVyX29mZnNldCwKQEAgLTEwMDcsMTYgKzEwMDcsMTYgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogIAkJICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFn ZV9kZWZuICpsYW5ndWFnZSkKICB7CiAgICBpbnQgaSwgbGVuOwotQEAgLTY0Myw3ICs2NDQsNyBA QAotIAkgICAgfQorQEAgLTY0MCw3ICs2NDEsNyBAQAogIAkgIGVsc2UKICAJICAgIHsKKyAJICAg ICAgc3RydWN0IHZhbHVlICp2OwogLQkgICAgICBpbnQgYml0X3BvcyA9IFRZUEVfRklFTERfQklU UE9TICh0eXBlLCBpKTsKICsJICAgICAgTE9OR0VTVCBiaXRfcG9zID0gVFlQRV9GSUVMRF9CSVRQ T1MgKHR5cGUsIGkpOwogIAkgICAgICBpbnQgYml0X3NpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUg KHR5cGUsIGkpOwogIAkgICAgICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwogIAot QEAgLTY4OSw4ICs2OTAsOCBAQAorQEAgLTY4NSw4ICs2ODYsOCBAQAogIHsKICAgIGVudW0gYmZk X2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0 eXBlKSk7CiAgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUp OwpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h ZGEtdmFscHJpbnQuYwogIAogICAgLyogV2Uga25vdyB0aGF0IEVMVFRZUEUgY2Fubm90IHBvc3Np Ymx5IGJlIG51bGwsIGJlY2F1c2Ugd2UgYXNzdW1lCiAgICAgICB0aGF0IHdlJ3JlIGNhbGxlZCBv bmx5IHdoZW4gVFlQRSBpcyBhIHN0cmluZy1saWtlIHR5cGUuCi1AQCAtNzA5LDcgKzcxMCw3IEBA CitAQCAtNzA1LDcgKzcwNiw3IEBACiAgICAgICBlbGVtZW50cyB1cCB0byBpdC4gICovCiAgICBp ZiAob3B0aW9ucy0+c3RvcF9wcmludF9hdF9udWxsKQogICAgICB7CkBAIC0xMDM2LDI4ICsxMDM2 LDI4IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLXZhbHByaW50LmMKICAK ICAgICAgICAvKiBMb29rIGZvciBhIE5VTEwgY2hhci4gICovCiAgICAgICAgZm9yICh0ZW1wX2xl biA9IDA7Ci1AQCAtMTA3NCw3ICsxMDc1LDcgQEAKK0BAIC0xMDY5LDcgKzEwNzAsNyBAQAogIAog IHN0YXRpYyB2b2lkCi0gYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCisgYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwK IC0JCSBpbnQgb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKICsJCSBMT05HRVNUIG9mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vy c2UsCi0gCQkgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKKyAJCSBzdHJ1Y3Qg dmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAotQEAgLTExNTcsNyArMTE1OCw3IEBACitAQCAtMTE1Myw3ICsxMTU0LDcg QEAKICAKICB2b2lkCi0gYWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLAorIGFkYV92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLAogLQkg ICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiArCSAgICAgICBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiAgCSAgICAgICBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJICAgICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsLAorIAkgICAgICAgc3RydWN0IHZhbHVlICp2YWwsCiAgCSAgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYW5ub3RhdGUuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9h bm5vdGF0ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv YW5ub3RhdGUuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NzUxMDE0OSArMDIwMAotKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9hbm5vdGF0ZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI4NTMw MDM2ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvYW5ub3RhdGUuYwky MDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjI2L2dkYi9hbm5vdGF0ZS5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDE3NjA5Nzg5ICswMTAwCiBA QCAtNTMzLDIxICs1MzMsMjEgQEAKICB9CiAgDApAQCAtMTA4NCwxMCArMTA4NCwxMCBAQCBJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRlLmMKICB9CiAgCiAgdm9pZAotSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbm5vdGF0ZS5oCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMjYvZ2RiL2Fubm90YXRlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU3NTEwMTQ5 ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRlLmgJMjAxNi0wNy0x NiAxNDozMzo0NC41Mjg1MzAwMzYgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmln L2dkYi9hbm5vdGF0ZS5oCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysg Z2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2Fubm90YXRlLmgJMjAxNy0wMi0yNiAyMjowNDowMy40 MTc2MDk3ODkgKzAxMDAKIEBAIC05Miw4ICs5Miw4IEBACiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVf ZnJhbWVfd2hlcmUgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX2VuZCAodm9p ZCk7CkBAIC0xMDk5LDExICsxMDk5LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvYW5ub3RhdGUuaAogIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXBfZW5kICh2b2lkKTsK ICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHQgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRl X2FycmF5X3NlY3Rpb25fZW5kICh2b2lkKTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvYXJtLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2FybS1s aW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L2FybS1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NzUxMDE0OSArMDIwMAotKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDoz Mzo0NC41Mjk1MzAwNDQgKzAyMDAKLUBAIC0xMDYzLDcgKzEwNjMsNyBAQAorLS0tIGdkYi03LjEy LjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE3LTAyLTI2IDIxOjU5OjM2 LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9hcm0tbGludXgt bmF0LmMJMjAxNy0wMi0yNiAyMjowNDowMy40MTc2MDk3ODkgKzAxMDAKK0BAIC0xMDY1LDcgKzEw NjUsNyBAQAogICAgIEFERFI/ICAqLwogIHN0YXRpYyBpbnQKICBhcm1fbGludXhfcmVnaW9uX29r X2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTExMTIsMTAg KzExMTIsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hcm0tbGludXgtbmF0 LmMKICB7CiAgICBjb25zdCBzdHJ1Y3QgYXJtX2xpbnV4X2h3YnBfY2FwICpjYXAgPSBhcm1fbGlu dXhfZ2V0X2h3YnBfY2FwICgpOwogICAgQ09SRV9BRERSIG1heF93cF9sZW5ndGgsIGFsaWduZWRf YWRkcjsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgtZ2RiLmMKK0luZGV4OiBn ZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYXgtZ2RiLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi9heC1nZGIuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA2MDUx MDE3MyArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZGIuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjUyOTUzMDA0NCArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9y aWcvZ2RiL2F4LWdkYi5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysg Z2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2F4LWdkYi5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDE4 NjA5Nzk2ICswMTAwCiBAQCAtODMsMTIgKzgzLDEyIEBACiAgc3RhdGljIHZvaWQgZ2VuX3NpZ25f ZXh0ZW5kIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgdHlwZSAqKTsKICBzdGF0aWMgdm9p ZCBnZW5fZXh0ZW5kIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgdHlwZSAqKTsKQEAgLTEx NjksNyArMTE2OSw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgtZ2RiLmMK ICB7CiAgICAvKiBJdCB3b3VsZCBzdWZmaWNlIHRvIHNpbXBseSBwdXNoIHRoZSBvZmZzZXQgYW5k IGFkZCBpdCwgYnV0IHRoaXMKICAgICAgIG1ha2VzIGl0IGVhc2llciB0byByZWFkIHBvc2l0aXZl IGFuZCBuZWdhdGl2ZSBvZmZzZXRzIGluIHRoZQotQEAgLTEyNDgsNyArMTI0OSw3IEBACitAQCAt MTI0Nyw3ICsxMjQ4LDcgQEAKICBzdGF0aWMgdm9pZAogIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVj dCBleHByZXNzaW9uICpleHAsIHN0cnVjdCBhZ2VudF9leHByICpheCwKICAJCSAgc3RydWN0IGF4 c192YWx1ZSAqdmFsdWUsIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMTE3OCw3ICsxMTc4LDcgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZGIuYwogIHsKICAgIC8qIE5vdGUg dGhhdCBvcHNbaV0gZmV0Y2hlcyA4IDw8IGkgYml0cy4gICovCiAgICBzdGF0aWMgZW51bSBhZ2Vu dF9vcCBvcHNbXQotQEAgLTEyODMsMTMgKzEyODQsMTMgQEAKK0BAIC0xMjgyLDEzICsxMjgzLDEz IEBACiAgCiAgICAvKiBUaGUgZmlyc3QgYW5kIG9uZS1hZnRlci1sYXN0IGJpdHMgaW4gdGhlIGZp ZWxkLCBidXQgcm91bmRlZCBkb3duCiAgICAgICBhbmQgdXAgdG8gYnl0ZSBib3VuZGFyaWVzLiAg Ki8KQEAgLTExOTcsNyArMTE5Nyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv YXgtZ2RiLmMKICAKICAgIC8qIFRoZSBpbmRleCBpbiBvcHMgb2YgdGhlIG9wY29kZSB3ZSdyZSBj b25zaWRlcmluZy4gICovCiAgICBpbnQgb3A7Ci1AQCAtMTQwOCw3ICsxNDA5LDcgQEAKK0BAIC0x NDA3LDcgKzE0MDgsNyBAQAogIHN0YXRpYyB2b2lkCiAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwKICAJCSAgICAgc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzdHJ1 Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKQEAgLTEyMDYsNyArMTIwNiw3IEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJcyB0aGlzIGEgYml0ZmllbGQ/ ICAqLwogICAgaWYgKFRZUEVfRklFTERfUEFDS0VEICh0eXBlLCBmaWVsZG5vKSkKLUBAIC0xNDMz LDcgKzE0MzQsNyBAQAorQEAgLTE0MzIsNyArMTQzMyw3IEBACiAgc3RhdGljIGludAogIGdlbl9z dHJ1Y3RfcmVmX3JlY3Vyc2l2ZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50 X2V4cHIgKmF4LAogIAkJCSAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMjE1LDExICsx MjE1LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgtZ2RiLmMKICB7CiAg ICBpbnQgaSwgcnNsdDsKICAgIGludCBuYmFzZXMgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUp OwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZW5lcmFsLmMKK0luZGV4OiBn ZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYXgtZ2VuZXJhbC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMDYwNTEwMTczICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F4LWdlbmVy YWwuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUyOTUzMDA0NCArMDIwMAotQEAgLTE5OSw3ICsxOTks NyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2F4LWdlbmVyYWwuYwkyMDE3 LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2 L2dkYi9heC1nZW5lcmFsLmMJMjAxNy0wMi0yNiAyMjowNDowMy40MTg2MDk3OTYgKzAxMDAKK0BA IC0xNzcsNyArMTc3LDcgQEAKICAKICAvKiBBcHBlbmQgYSB0cmFjZV9xdWljayBpbnN0cnVjdGlv biB0byBFWFBSLCB0byByZWNvcmQgTiBieXRlcy4gICovCiAgdm9pZApAQCAtMTIyOCwxMSArMTIy OCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F4LWdlbmVyYWwuYwogIHsK ICAgIC8qIE4gbXVzdCBmaXQgaW4gYSBieXRlLiAgKi8KICAgIGlmIChuIDwgMCB8fCBuID4gMjU1 KQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC5oCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMjYvZ2RiL2F4LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi9heC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDYwNTEwMTczICswMjAwCi0rKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F4LmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjk1MzAw NDQgKzAyMDAKLUBAIC0yMTAsNyArMjEwLDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5v cmlnL2dkYi9heC5oCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2F4LmgJMjAxNy0wMi0yNiAyMjowNDowMy40MTk2MDk4MDMg KzAxMDAKK0BAIC0yMDUsNyArMjA1LDcgQEAKICBleHRlcm4gdm9pZCBheF96ZXJvX2V4dCAoc3Ry dWN0IGFnZW50X2V4cHIgKkVYUFIsIGludCBOKTsKICAKICAvKiBBcHBlbmQgYSB0cmFjZV9xdWlj ayBpbnN0cnVjdGlvbiB0byBFWFBSLCB0byByZWNvcmQgTiBieXRlcy4gICovCkBAIC0xMjQxLDEx ICsxMjQxLDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXguaAogIAogIC8q IEFwcGVuZCBhIGdvdG8gb3AgdG8gRVhQUi4gIE9QIGlzIHRoZSBhY3R1YWwgb3AgKG11c3QgYmUg YW9wX2dvdG8gb3IKICAgICBhb3BfaWZfZ290bykuICBXZSBhc3N1bWUgd2UgZG9uJ3Qga25vdyB0 aGUgdGFyZ2V0IG9mZnNldCB5ZXQsCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Jy ZWFrcG9pbnQuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9icmVha3BvaW50LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9icmVha3BvaW50 LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNjc1MTAyMzAgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYnJlYWtwb2ludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMxNTMwMDYwICsw MjAwCi1AQCAtMjI1MSw5ICsyMjUxLDkgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmln L2dkYi9icmVha3BvaW50LmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYnJlYWtwb2ludC5jCTIwMTctMDItMjYgMjI6MDQ6 MDMuNDIyNjA5ODI0ICswMTAwCitAQCAtMjIyNiw5ICsyMjI2LDkgQEAKICAJewogIAkgIGZwcmlu dGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKICAJCQkgICAgICAiaW5mcnVuOiBzdGVwcGluZyBw YXN0IG5vbi1zdGVwcGFibGUgd2F0Y2hwb2ludC4gIgpAQCAtMTI1Nyw3ICsxMjU3LDcgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9icmVha3BvaW50LmMKICAJfQogICAgICAgIHJl dHVybiAwOwogICAgICB9Ci1AQCAtNzE4MSw3ICs3MTgxLDcgQEAKK0BAIC03MTUzLDcgKzcxNTMs NyBAQAogIAogIHN0YXRpYyBpbnQKICBicmVha3BvaW50X2FkZHJlc3NfbWF0Y2hfcmFuZ2UgKHN0 cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UxLCBDT1JFX0FERFIgYWRkcjEsCkBAIC0xMjY2LDcg KzEyNjYsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2JyZWFrcG9pbnQuYwog IAkJCQlDT1JFX0FERFIgYWRkcjIpCiAgewogICAgcmV0dXJuICgoZ2RiYXJjaF9oYXNfZ2xvYmFs X2JyZWFrcG9pbnRzICh0YXJnZXRfZ2RiYXJjaCAoKSkKLUBAIC0xMTUzNCw3ICsxMTUzNCw3IEBA CitAQCAtMTE0NzQsNyArMTE0NzQsNyBAQAogIAkJICAgICAgJiYgVFlQRV9DT0RFICh2dHlwZSkg IT0gVFlQRV9DT0RFX0FSUkFZKSkKICAJCXsKICAJCSAgQ09SRV9BRERSIHZhZGRyID0gdmFsdWVf YWRkcmVzcyAodik7CkBAIC0xMjc1LDExICsxMjc1LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYnJlYWtwb2ludC5jCiAgCQkgIGludCBudW1fcmVnczsKICAKICAJCSAgbGVu ID0gKHRhcmdldF9leGFjdF93YXRjaHBvaW50cwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9icmVha3BvaW50LmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYnJlYWtw b2ludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYnJl YWtwb2ludC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDY4NTEwMjM4ICswMjAwCi0rKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2JyZWFrcG9pbnQuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUz MDA2OCArMDIwMAotQEAgLTIzNyw3ICsyMzcsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2 Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEw MAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9icmVha3BvaW50LmgJMjAxNy0wMi0yNiAy MjowNDowMy40MjM2MDk4MzEgKzAxMDAKK0BAIC0yNTAsNyArMjUwLDcgQEAKICAKICAgIC8qIElm IHRoaXMgaXMgYSByYW5nZWQgYnJlYWtwb2ludCwgdGhlbiB0aGlzIGZpZWxkIGNvbnRhaW5zIHRo ZQogICAgICAgbGVuZ3RoIG9mIHRoZSByYW5nZSB0aGF0IHdpbGwgYmUgd2F0Y2hlZCBmb3IgZXhl Y3V0aW9uLiAgKi8KQEAgLTEyODgsNyArMTI4OCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvYnJlYWtwb2ludC5oCiAgCiAgICAvKiBJZiB0aGUgYnJlYWtwb2ludCBsaXZlcyBp biBtZW1vcnkgYW5kIHJlYWRpbmcgdGhhdCBtZW1vcnkgd291bGQKICAgICAgIGdpdmUgYmFjayB0 aGUgYnJlYWtwb2ludCwgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgY29udGVudHMsIHRoZW4KLUBA IC00MTMsNyArNDEzLDcgQEAKK0BAIC00MjIsNyArNDIyLDcgQEAKICAgIC8qIEZvciBoYXJkd2Fy ZSB3YXRjaHBvaW50cywgdGhlIHNpemUgb2YgdGhlIG1lbW9yeSByZWdpb24gYmVpbmcKICAgICAg IHdhdGNoZWQuICBGb3IgaGFyZHdhcmUgcmFuZ2VkIGJyZWFrcG9pbnRzLCB0aGUgc2l6ZSBvZiB0 aGUKICAgICAgIGJyZWFrcG9pbnQgcmFuZ2UuICAqLwpAQCAtMTI5NywxMCArMTI5NywxMCBAQCBJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2JyZWFrcG9pbnQuaAogIAogICAgLyogVHlw ZSBvZiBoYXJkd2FyZSB3YXRjaHBvaW50LiAgKi8KICAgIGVudW0gdGFyZ2V0X2h3X2JwX3R5cGUg d2F0Y2hwb2ludF90eXBlOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLWxhbmcu YworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9jLWxhbmcuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtbGFuZy5jCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMDY5NTEwMjQ2ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtbGFu Zy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCistLS0gZ2RiLTcuMTIuNTAu MjAxNzAyMjYub3JpZy9nZGIvYy1sYW5nLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkg KzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYy1sYW5nLmMJMjAxNy0wMi0yNiAy MjowNDowMy40MjM2MDk4MzEgKzAxMDAKIEBAIC0xODYsNyArMTg2LDcgQEAKICAKICB2b2lkCkBA IC0xMzEwLDcgKzEzMTAsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtbGFu Zy5jCiAgCSAgICBjb25zdCBjaGFyICp1c2VyX2VuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMs CiAgCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1A QCAtNjc1LDcgKzY3NSw3IEBACitAQCAtNjcyLDcgKzY3Miw3IEBACiAgCSAgfQogIAllbHNlCiAg CSAgewpAQCAtMTMxOSw3ICsxMzE5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9jLWxhbmcuYwogIAogIAkgICAgLyogV3JpdGUgdGhlIHRlcm1pbmF0aW5nIGNoYXJhY3Rlci4g ICovCiAgCSAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9MRU5HVEggKHR5cGUpOyArK2kpCi1AQCAt Njg0LDcgKzY4NCw3IEBACitAQCAtNjgxLDcgKzY4MSw3IEBACiAgCSAgICBpZiAoc2F0aXNmeV9l eHBlY3RlZCkKICAJICAgICAgewogIAkJTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CkBA IC0xMzI4LDE4ICsxMzI4LDE4IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYy1s YW5nLmMKICAKICAJCWlmIChnZXRfZGlzY3JldGVfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKGV4 cGVjdF90eXBlKSwKICAJCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLWxhbmcuaAorSW5kZXg6IGdkYi03LjEyLjUwLjIw MTcwMjI2L2dkYi9jLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDY5NTEwMjQ2ICswMjAwCi0r KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQu NTMyNTMwMDY4ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvYy1sYW5n LmgJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4y MDE3MDIyNi9nZGIvYy1sYW5nLmgJMjAxNy0wMi0yNiAyMjowNDowMy40MjM2MDk4MzEgKzAxMDAK IEBAIC03Nyw3ICs3Nyw3IEBACiAgCQkJICAgICBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKLSBleHRl cm4gdm9pZCBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKKyBl eHRlcm4gdm9pZCBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwKIC0JCQkgaW50LCBDT1JFX0FE RFIsCiArCQkJIExPTkdFU1QsIENPUkVfQUREUiwKICAJCQkgc3RydWN0IHVpX2ZpbGUgKiwgaW50 LAotIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKKyAJCQkgc3RydWN0IHZhbHVlICosCiAgCQkJ IGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogQEAgLTk3LDcgKzk3LDcgQEAK ICBleHRlcm4gdm9pZCBjX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSwKQEAgLTEz NTAsMTAgKzEzNTAsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLWxhbmcu aAogIAkJCWNvbnN0IGNoYXIgKnVzZXJfZW5jb2RpbmcsCiAgCQkJaW50IGZvcmNlX2VsbGlwc2Vz LAogIAkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYy12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMjYvZ2RiL2MtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MDUx MDI1NCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLXZhbHByaW50LmMJMjAx Ni0wNy0xNiAxNDozMzo0NC41MzI1MzAwNjggKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIy Ni5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAx MDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYy12YWxwcmludC5jCTIwMTctMDItMjYg MjI6MDQ6MDMuNDI0NjA5ODM4ICswMTAwCiBAQCAtMjQ0LDcgKzI0NCw3IEBACiAgICBpZiAoVFlQ RV9MRU5HVEggKHR5cGUpID4gMCAmJiBUWVBFX0xFTkdUSCAodW5yZXNvbHZlZF9lbHR0eXBlKSA+ IDApCiAgICAgIHsKQEAgLTEzODYsMTYgKzEzODYsMTYgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9jLXZhbHByaW50LmMKIEBAIC00OTUsNyArNDk1LDcgQEAKICAKICB2b2lkCi0g Y192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwK KyBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsCiAtCSAgICAgaW50IGVtYmVkZGVkX29m ZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiArCSAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQs IENPUkVfQUREUiBhZGRyZXNzLAogIAkgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBy ZWN1cnNlLAotIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCisgCSAg ICAgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJICAgICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvY3AtYWJpLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvY3AtYWJpLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jcC1hYmkuYwkyMDE2 LTA3LTE2IDE0OjMzOjQyLjA3MDUxMDI1NCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9jcC1hYmkuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAorLS0tIGdk Yi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2NwLWFiaS5jCTIwMTctMDItMjYgMjE6NTk6MzYu MDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2NwLWFiaS5jCTIw MTctMDItMjYgMjI6MDQ6MDMuNDI0NjA5ODM4ICswMTAwCiBAQCAtNjQsMTIgKzY0LDEyIEBACiAg ICByZXR1cm4gKCpjdXJyZW50X2NwX2FiaS5pc19vcGVyYXRvcl9uYW1lKSAobmFtZSk7CiAgfQpA QCAtMTQyMCwxMCArMTQyMCwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Nw LWFiaS5jCiAgewogICAgaWYgKChjdXJyZW50X2NwX2FiaS52aXJ0dWFsX2ZuX2ZpZWxkKSA9PSBO VUxMKQogICAgICByZXR1cm4gTlVMTDsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv Y3AtYWJpLmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvY3AtYWJpLmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jcC1hYmkuaAkyMDE2LTA3 LTE2IDE0OjMzOjQyLjA3MDUxMDI1NCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9jcC1hYmkuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2NwLWFiaS5oCTIwMTctMDItMjYgMjE6NTk6MzYuMDQz NzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2NwLWFiaS5oCTIwMTct MDItMjYgMjI6MDQ6MDMuNDI0NjA5ODM4ICswMTAwCiBAQCAtMTA4LDcgKzEwOCw3IEBACiAgCQkJ CQkgICAgIHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCQkJCSAgICAgaW50IGosCkBAIC0xNDUwLDcg KzE0NTAsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NwLWFiaS5oCiAgCiAg LyogRGVzY3JpYmUgdGhlIHRhcmdldCBvZiBhIHBvaW50ZXIgdG8gbWV0aG9kLiAgQ09OVEVOVFMg aXMgdGhlIGJ5dGUKICAgICBwYXR0ZXJuIHJlcHJlc2VudGluZyB0aGUgcG9pbnRlciB0byBtZXRo b2QuICBUWVBFIGlzIHRoZSBwb2ludGVyIHRvCi1AQCAtMjI3LDEyICsyMjcsMTIgQEAKK0BAIC0y MjYsMTIgKzIyNiwxMiBAQAogICAgc3RydWN0IHZhbHVlICooKnZpcnR1YWxfZm5fZmllbGQpIChz dHJ1Y3QgdmFsdWUgKiphcmcxcCwKICAJCQkJICAgICBzdHJ1Y3QgZm5fZmllbGQgKiBmLAogIAkJ CQkgICAgIGludCBqLCBzdHJ1Y3QgdHlwZSAqIHR5cGUsCkBAIC0xNDY3LDExICsxNDY3LDExIEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtYWJpLmgKICAgIHZvaWQgKCpwcmlu dF9tZXRob2RfcHRyKSAoY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzLAogIAkJCSAgICBzdHJ1Y3Qg dHlwZSAqdHlwZSwKICAJCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7Ci1JbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NwLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4y MDE3MDIyNi9nZGIvY3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNzE1MTAy NjIgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtdmFscHJpbnQuYwkyMDE2 LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAotQEAgLTMzNCw3ICszMzQsNyBAQAorLS0t IGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNy0wMi0yNiAy MTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvY3At dmFscHJpbnQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQyNDYwOTgzOCArMDEwMAorQEAgLTMzNiw3 ICszMzYsNyBAQAogIAkJfQogIAkgICAgICBlbHNlIGlmIChpID09IHZwdHJfZmllbGRubyAmJiB0 eXBlID09IHZwdHJfYmFzZXR5cGUpCiAgCQl7CkBAIC0xNDgwLDkxICsxNDgwLDM3IEBAIEluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtdmFscHJpbnQuYwogIAkJICBzdHJ1Y3QgdHlw ZSAqaV90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKTsKICAKICAJCSAgaWYgKHZhbHBy aW50X2NoZWNrX3ZhbGlkaXR5IChzdHJlYW0sIGlfdHlwZSwgaV9vZmZzZXQsIHZhbCkpCi1JbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2QtbGFuZy5oCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMjYvZ2RiL2QtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvZC1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNzE1MTAyNjIgKzAyMDAK LSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZC1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0 NC41MzM1MzAwNzYgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9kLWxh bmcuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUw LjIwMTcwMjI2L2dkYi9kLWxhbmcuaAkyMDE3LTAyLTI2IDIyOjA0OjAzLjQyNDYwOTgzOCArMDEw MAogQEAgLTgxLDcgKzgxLDcgQEAKICAvKiBEZWZpbmVkIGluIGQtdmFscHJpbnQuYyAgKi8KICAK LSBleHRlcm4gdm9pZCBkX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLAorIGV4dGVybiB2b2lkIGRfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlw ZSwKIC0JCQkgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiArCQkJIExP TkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKICAJCQkgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs LAorIAkJCSBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kLXZh bHByaW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZC12YWxwcmludC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZC12YWxwcmludC5j CTIwMTYtMDctMTYgMTQ6MzM6NDIuMDcxNTEwMjYyICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2QtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMzUzMDA3NiArMDIw MAotQEAgLTczLDkgKzczLDkgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9k LXZhbHByaW50LmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIyNi9nZGIvZC12YWxwcmludC5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDI0 NjA5ODM4ICswMTAwCitAQCAtNzMsNyArNzMsNyBAQAogIAogIC8qIEltcGxlbWVudHMgdGhlIGxh X3ZhbF9wcmludCByb3V0aW5lIGZvciBsYW5ndWFnZSBELiAgKi8KICB2b2lkCi0tZF92YWxfcHJp bnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVk ZGVkX29mZnNldCwKLS0gICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotLQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs LAotK2RfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCi0rCSAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAot KwkgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCwKKy1kX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBlbWJlZGRl ZF9vZmZzZXQsCisrZF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwKKyAgICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkgICAgIHN0cnVjdCB2YWx1ZSAqdmFsLAogICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLSB7 Ci0gICBpbnQgcmV0OwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kb3VibGVzdC5j Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZG91Ymxlc3Qu YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MjUxMDI3MCArMDIwMAotKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9kb3VibGVzdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMzNTMwMDc2ICswMjAw Ci1AQCAtNzg0LDcgKzc4NCw3IEBACi0gICAgYnV0IG5vdCBwYXNzZWQgb24gYnkgR0RCLiAgVGhp cyBzaG91bGQgYmUgZml4ZWQuICAqLwotIAotIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxvYXRmb3Jt YXQgKgotLWZsb2F0Zm9ybWF0X2Zyb21fbGVuZ3RoIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwg aW50IGxlbikKLStmbG9hdGZvcm1hdF9mcm9tX2xlbmd0aCAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIExPTkdFU1QgbGVuKQotIHsKLSAgIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqZm9ybWF0 OwotIAotQEAgLTgxMiw4ICs4MTIsOCBAQAotICAgZWxzZQotICAgICBmb3JtYXQgPSBOVUxMOwot ICAgaWYgKGZvcm1hdCA9PSBOVUxMKQotLSAgICBlcnJvciAoXygiVW5yZWNvZ25pemVkICVkLWJp dCBmbG9hdGluZy1wb2ludCB0eXBlLiIpLAotLQkgICBsZW4gKiBUQVJHRVRfQ0hBUl9CSVQpOwot KyAgICBlcnJvciAoXygiVW5yZWNvZ25pemVkICVzLWJpdCBmbG9hdGluZy1wb2ludCB0eXBlLiIp LAotKwkgICBwbG9uZ2VzdCAobGVuICogVEFSR0VUX0NIQVJfQklUKSk7Ci0gICByZXR1cm4gZm9y bWF0OwotIH0KLSAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZHdhcmYybG9jLmMK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZHdhcmYybG9jLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE2LTA3LTE2 IDE0OjMzOjQyLjA3NjUxMDMwMiArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9k d2FyZjJsb2MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMzUzMDA3NiArMDIwMAotQEAgLTE2Mzgs MTkgKzE2MzgsMTkgQEAKLSAgICBCSVRTX0JJR19FTkRJQU4gaXMgdGFrZW4gZGlyZWN0bHkgZnJv bSBnZGJhcmNoLiAgKi8KLSAKLSBzdGF0aWMgdm9pZAotLWNvcHlfYml0d2lzZSAoZ2RiX2J5dGUg KmRlc3QsIHVuc2lnbmVkIGludCBkZXN0X29mZnNldF9iaXRzLAotLQkgICAgICBjb25zdCBnZGJf Ynl0ZSAqc291cmNlLCB1bnNpZ25lZCBpbnQgc291cmNlX29mZnNldF9iaXRzLAotLQkgICAgICB1 bnNpZ25lZCBpbnQgYml0X2NvdW50LAotK2NvcHlfYml0d2lzZSAoZ2RiX2J5dGUgKmRlc3QsIFVM T05HRVNUIGRlc3Rfb2Zmc2V0X2JpdHMsCi0rCSAgICAgIGNvbnN0IGdkYl9ieXRlICpzb3VyY2Us IFVMT05HRVNUIHNvdXJjZV9vZmZzZXQsCi0rCSAgICAgIFVMT05HRVNUIGJpdF9jb3VudCwKLSAJ ICAgICAgaW50IGJpdHNfYmlnX2VuZGlhbikKLSB7Ci0tICB1bnNpZ25lZCBpbnQgZGVzdF9hdmFp bDsKLSsgIHVuc2lnbmVkIGludCBkZXN0X2F2YWlsLCBzb3VyY2Vfb2Zmc2V0X2JpdHM7Ci0gICBp bnQgZGF0dW07Ci0gCi0gICAvKiBSZWR1Y2UgZXZlcnl0aGluZyB0byBieXRlLXNpemUgcGllY2Vz LiAgKi8KLSAgIGRlc3QgKz0gZGVzdF9vZmZzZXRfYml0cyAvIDg7Ci0gICBkZXN0X29mZnNldF9i aXRzICU9IDg7Ci0tICBzb3VyY2UgKz0gc291cmNlX29mZnNldF9iaXRzIC8gODsKLS0gIHNvdXJj ZV9vZmZzZXRfYml0cyAlPSA4OwotKyAgc291cmNlICs9IHNvdXJjZV9vZmZzZXQgLyA4OwotKyAg c291cmNlX29mZnNldF9iaXRzID0gc291cmNlX29mZnNldCAlIDg7Ci0gCi0gICBkZXN0X2F2YWls ID0gOCAtIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4OwotIAotQEAgLTE2ODgsMTMgKzE2ODgsMTMgQEAK Ky0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE3LTAyLTI2 IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9k d2FyZjJsb2MuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQyNjYwOTg1MiArMDEwMAorQEAgLTE3NTgs MTIgKzE3NTgsMTIgQEAKICByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQogIHsK ICAgIGludCBpOwpAQCAtMTU3NCwxMyArMTUyMCwxMiBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2R3YXJmMmxvYy5jCiAgICBnZGJfYnl0ZSAqY29udGVudHM7CiAgICBzdHJ1Y3Qg cGllY2VfY2xvc3VyZSAqYwogICAgICA9IChzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqKSB2YWx1ZV9j b21wdXRlZF9jbG9zdXJlICh2KTsKLSAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSA9IGZyYW1l X2ZpbmRfYnlfaWQgKFZBTFVFX0ZSQU1FX0lEICh2KSk7CiAtICBzaXplX3QgdHlwZV9sZW47CiAr ICBVTE9OR0VTVCB0eXBlX2xlbjsKICAgIHNpemVfdCBidWZmZXJfc2l6ZSA9IDA7Ci0gICBnZGJf Ynl0ZSAqYnVmZmVyID0gTlVMTDsKLSAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOwotQEAgLTE3 MjEsOCArMTcyMSw4IEBACisgICBzdGQ6OnZlY3RvcjxnZGJfYnl0ZT4gYnVmZmVyOworICAgaW50 IGJpdHNfYmlnX2VuZGlhbgorQEAgLTE3ODcsOCArMTc4Nyw4IEBACiAgICBmb3IgKGkgPSAwOyBp IDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKICAgICAgewogICAgICAg IHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE1OTEsNyAr MTUzNiw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZHdhcmYybG9jLmMKICAg ICAgICBjb25zdCBnZGJfYnl0ZSAqaW50ZXJtZWRpYXRlX2J1ZmZlcjsKICAKICAgICAgICAvKiBD b21wdXRlIHNpemUsIHNvdXJjZSwgYW5kIGRlc3RpbmF0aW9uIG9mZnNldHMgZm9yIGNvcHlpbmcs IGluCi1AQCAtMTg2MiwxMyArMTg2MiwxMyBAQAorQEAgLTE5MjcsMTIgKzE5MjcsMTIgQEAKICB3 cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0cnVjdCB2YWx1ZSAqZnJvbSkK ICB7CiAgICBpbnQgaTsKQEAgLTE2MDEsMTMgKzE1NDYsMTIgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9kd2FyZjJsb2MuYwogICAgY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzOwog ICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKICAgICAgPSAoc3RydWN0IHBpZWNlX2Nsb3N1cmUg KikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodG8pOwotICAgc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lID0gZnJhbWVfZmluZF9ieV9pZCAoVkFMVUVfRlJBTUVfSUQgKHRvKSk7CiAtICBzaXplX3Qg dHlwZV9sZW47CiArICBVTE9OR0VTVCB0eXBlX2xlbjsKICAgIHNpemVfdCBidWZmZXJfc2l6ZSA9 IDA7Ci0gICBnZGJfYnl0ZSAqYnVmZmVyID0gTlVMTDsKLSAgIHN0cnVjdCBjbGVhbnVwICpjbGVh bnVwOwotQEAgLTE4OTYsOCArMTg5Niw4IEBACisgICBzdGQ6OnZlY3RvcjxnZGJfYnl0ZT4gYnVm ZmVyOworICAgaW50IGJpdHNfYmlnX2VuZGlhbgorQEAgLTE5NTEsOCArMTk1MSw4IEBACiAgICBm b3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKICAg ICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsK QEAgLTE2MTgsNyArMTU2Miw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZHdh cmYybG9jLmMKICAgICAgICBpbnQgbmVlZF9iaXR3aXNlOwogICAgICAgIGNvbnN0IGdkYl9ieXRl ICpzb3VyY2VfYnVmZmVyOwogIAotQEAgLTIwMTcsNyArMjAxNyw3IEBACitAQCAtMjA3MSw3ICsy MDcxLDcgQEAKICAKICBzdGF0aWMgaW50CiAgY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVy IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIGJpdF9vZmZzZXQsCkBAIC0xNjI3 LDcgKzE1NzEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2R3YXJmMmxvYy5j CiAgewogICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKICAgICAgPSAoc3RydWN0IHBpZWNlX2Ns b3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodmFsdWUpOwotQEAgLTIwMzAsNyArMjAz MCw3IEBACitAQCAtMjA4NCw3ICsyMDg0LDcgQEAKICAgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3Bp ZWNlcyAmJiBiaXRfbGVuZ3RoID4gMDsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IGR3YXJm X2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpAQCAtMTYzNiw3ICsxNTgwLDcgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJsb2MuYwogIAogICAgICAgIGlmIChi aXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTIxMzIsOCArMjEzMiw4IEBACitAQCAtMjE4Niw4ICsy MTg2LDggQEAKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogICAgc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lOwogICAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uIGJhdG9uOwpAQCAtMTY0Nyw3ICsx NTkxLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJsb2MuYwogICAg c3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnBpZWNlID0gTlVMTDsKICAgIExPTkdFU1QgYnl0ZV9v ZmZzZXQ7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcjsKLUBAIC0yMTUwLDcgKzIxNTAs NyBAQAorQEAgLTIyMDQsNyArMjIwNCw3IEBACiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVj ZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9l eHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE2NTYsMjAgKzE2MDAsMjAgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJsb2MuYwogIAogICAgICAgIGlmIChi aXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTI0NDQsNyArMjQ0NCw3IEBACi0gCSAgICBzdHJ1Y3Qg dmFsdWUgKnZhbHVlID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKK0BAIC0yNDc3LDcgKzI0 NzcsNyBAQAorIAkgICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9IGN0eC5mZXRjaCAoMCk7CiAgCSAg ICBnZGJfYnl0ZSAqY29udGVudHM7CiAgCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFsX2J5dGVzOwog LQkgICAgc2l6ZV90IG4gPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAodmFsdWUpKTsKICsJICAg IFVMT05HRVNUIG4gPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAodmFsdWUpKTsKKyAJICAgIHN0 cnVjdCBjbGVhbnVwICpjbGVhbnVwOwogIAogIAkgICAgaWYgKGJ5dGVfb2Zmc2V0ICsgVFlQRV9M RU5HVEggKHR5cGUpID4gbikKLSAJICAgICAgaW52YWxpZF9zeW50aGV0aWNfcG9pbnRlciAoKTsK LUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA3LTE2IDE0OjMzOjQy LjA4MzUxMDM1OCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJyZWFk LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzY1MzAxMDAgKzAyMDAKLUBAIC0xOTM1LDEyICsxOTM1 LDEyIEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIw MTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAy MjYvZ2RiL2R3YXJmMnJlYWQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQzMTYwOTg4OCArMDEwMAor QEAgLTE5NjksMTIgKzE5NjksMTIgQEAKICB9CiAgCiAgc3RhdGljIHZvaWQKQEAgLTE2ODYsNyAr MTYzMCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZHdhcmYycmVhZC5jCiAg fQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMTI1NzMsOCArMTI1NzMsOCBAQAorQEAgLTEyNzg5LDgg KzEyNzg5LDggQEAKICAJICAgICAgICAgb2JqZWN0LCBhbmQgdGhlbiBzdWJ0cmFjdCBvZmYgdGhl IG51bWJlciBvZiBiaXRzIG9mCiAgCSAgICAgICAgIHRoZSBmaWVsZCBpdHNlbGYuICBUaGUgcmVz dWx0IGlzIHRoZSBiaXQgb2Zmc2V0IG9mCiAgCSAgICAgICAgIHRoZSBMU0Igb2YgdGhlIGZpZWxk LiAgKi8KQEAgLTE2OTcsMTEgKzE2NDEsMTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9kd2FyZjJyZWFkLmMKICAKICAJICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX2J5dGVfc2l6ZSwgY3UpOwogIAkgICAgICBpZiAoYXR0cikKLUluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvZXZhbC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2V2 YWwuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2V2YWwu YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4NjUxMDM4MyArMDIwMAotKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9ldmFsLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzc1MzAxMDggKzAyMDAKLUBA IC0zMTcsNyArMzE3LDggQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9ldmFs LmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4y MDE3MDIyNi9nZGIvZXZhbC5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDMxNjA5ODg4ICswMTAwCitA QCAtMjk3LDcgKzI5Nyw4IEBACiAgICB3aGlsZSAoLS1uYXJncyA+PSAwKQogICAgICB7CiAgICAg ICAgc3RydWN0IHZhbHVlICp2YWwgPSBOVUxMOwpAQCAtMTcxMSw3ICsxNjU1LDcgQEAgSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ldmFsLmMKICAgICAgICBiZmRfYnl0ZSAqYWRkcjsK ICAKICAgICAgICBmaWVsZG5vKys7Ci1AQCAtMzc4LDcgKzM3OSw3IEBACitAQCAtMzU4LDcgKzM1 OSw3IEBACiAgCQkgICAgZW51bSBub3NpZGUgbm9zaWRlLCBMT05HRVNUIGxvd19ib3VuZCwgTE9O R0VTVCBoaWdoX2JvdW5kKQogIHsKICAgIExPTkdFU1QgaW5kZXg7CkBAIC0xNzIwLDcgKzE2NjQs NyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2V2YWwuYwogIAogICAgaWYgKGV4 cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gQklOT1BfQ09NTUEpCiAgICAgIHsKLUBAIC04MjIsMTEg KzgyMywxMSBAQAorQEAgLTgwMiwxMSArODAzLDExIEBACiAgICAgIC8qIEZJWE1FOiBBbHNvIG1p eGVkIGludGVncmFsL2Jvb2xlYW5zLCB3aXRoIHJlc3VsdCBhbiBpbnRlZ2VyLiAgKi8KICAgICAg ewogICAgICAgIGNvbnN0IHN0cnVjdCBidWlsdGluX3R5cGUgKmJ1aWx0aW4gPSBidWlsdGluX3R5 cGUgKGdkYmFyY2gpOwpAQCAtMTczNSw3ICsxNjc5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9ldmFsLmMKICAgICAgICBpbnQgdW5zaWduZWRfb3BlcmF0aW9uOwogIAogICAg ICAgIC8qIERldGVybWluZSB0eXBlIGxlbmd0aCBhbmQgc2lnbmVkbmVzcyBhZnRlciBwcm9tb3Rp b24gZm9yCi1AQCAtMTAwOCw3ICsxMDA5LDcgQEAKK0BAIC05ODgsNyArOTg5LDcgQEAKICAgIHN0 cnVjdCB2YWx1ZSAqKmFyZ3ZlYzsKICAgIGludCBjb2RlOwogICAgaW50IGl4OwpAQCAtMTc0NCw3 ICsxNjg4LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ldmFsLmMKICAgIHN0 cnVjdCB0eXBlICoqYXJnX3R5cGVzOwogICAgaW50IHNhdmVfcG9zMTsKICAgIHN0cnVjdCBzeW1i b2wgKmZ1bmN0aW9uID0gTlVMTDsKLUBAIC0xMTg3LDcgKzExODgsNyBAQAorQEAgLTExNjcsNyAr MTE2OCw3IEBACiAgCSAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZUEUg KHR5cGUpOwogIAkgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBF ICh0eXBlKTsKICAJICBzdHJ1Y3QgdmFsdWUgKmFycmF5ID0gYWxsb2NhdGVfdmFsdWUgKGV4cGVj dF90eXBlKTsKQEAgLTE3NTMsMTAgKzE2OTcsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9ldmFsLmMKICAJICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgaW5kZXg7 CiAgCiAgCSAgaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dfYm91bmQs ICZoaWdoX2JvdW5kKSA8IDApCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFu Zy5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2YtbGFuZy5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZi1sYW5nLmMJMjAxNi0wNy0xNiAx NDozMzo0Mi4wODc1MTAzOTEgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZi1s YW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzc1MzAxMDggKzAyMDAKKy0tLSBnZGItNy4xMi41 MC4yMDE3MDIyNi5vcmlnL2dkYi9mLWxhbmcuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2 OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9mLWxhbmcuYwkyMDE3LTAyLTI2 IDIyOjA0OjAzLjQzMjYwOTg5NSArMDEwMAogQEAgLTEwMyw3ICsxMDMsNyBAQAogIAogIHN0YXRp YyB2b2lkCkBAIC0xNzY2LDIzICsxNzEwLDIzIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvZi1sYW5nLmMKICAJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zKQogIHsKICAgIGNvbnN0IGNoYXIgKnR5cGVfZW5jb2RpbmcgPSBmX2dldF9lbmNvZGlu ZyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFuZy5oCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZi1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4w ODc1MTAzOTEgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZi1sYW5nLmgJMjAx Ni0wNy0xNiAxNDozMzo0NC41Mzc1MzAxMDggKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIy Ni5vcmlnL2dkYi9mLWxhbmcuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAor KysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9mLWxhbmcuaAkyMDE3LTAyLTI2IDIyOjA0OjAz LjQzMjYwOTg5NSArMDEwMAogQEAgLTMwLDcgKzMwLDcgQEAKICBleHRlcm4gdm9pZCBmX3ByaW50 X3R5cGUgKHN0cnVjdCB0eXBlICosIGNvbnN0IGNoYXIgKiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50 LAogIAkJCSAgaW50LCBjb25zdCBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25zICopOwogIAotLWV4 dGVybiB2b2lkIGZfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBp bnQsIENPUkVfQUREUiwKLStleHRlcm4gdm9pZCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwg Y29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAorLWV4dGVybiB2b2lkIGZfdmFs X3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBpbnQsIENPUkVfQUREUiwKKytleHRlcm4gdm9pZCBmX3Zh bF9wcmludCAoc3RydWN0IHR5cGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAogIAkJCSBzdHJ1Y3Qg dWlfZmlsZSAqLCBpbnQsCi0gCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAorIAkJCSBzdHJ1Y3Qg dmFsdWUgKiwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjEy LjUwLjIwMTcwMjI2L2dkYi9mLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wODc1 MTAzOTEgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZi12YWxwcmludC5jCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTM3NTMwMTA4ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAy MjYub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2YtdmFscHJpbnQuYwkyMDE3LTAyLTI2 IDIyOjA0OjAzLjQzMjYwOTg5NSArMDEwMAogQEAgLTM4LDcgKzM4LDcgQEAKICBzdGF0aWMgdm9p ZCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICosIGludCk7CiAgc3RhdGljIHZvaWQgZjc3X2dl dF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICopOwpAQCAtMTgyMSw3 ICsxNzY1LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mLXZhbHByaW50LmMK ICAKICAgIGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dlcmJvdW5kLCAmdXBw ZXJib3VuZCk7CiAgCi1AQCAtMTcyLDcgKzE3Miw3IEBACitAQCAtMTc3LDcgKzE3Nyw3IEBACiAg CiAgc3RhdGljIHZvaWQKICBmNzdfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTE4MzAsMzIgKzE3NzQsMjkgQEAgSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9mLXZhbHByaW50LmMKICAJCSBDT1JFX0FERFIgYWRkcmVzcywg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCSBpbnQgcmVjdXJzZSwKICAJCSBjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbCwKLUBAIC0yMTEsOCArMjExLDkgQEAKK0BAIC0yMTYsNyArMjE2LDcgQEAK ICAgICBmdW5jdGlvbjsgdGhleSBhcmUgaWRlbnRpY2FsLiAgKi8KICAKICB2b2lkCi0tZl92YWxf cHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVt YmVkZGVkX29mZnNldCwKLS0JICAgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0rZl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLSsJICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCi0rCSAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCi0gCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKKy1mX3Zh bF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBlbWJlZGRlZF9vZmZzZXQsCisrZl92YWxf cHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJICAg ICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2Us CisgCSAgICAgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLSB7Ci1JbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2ZpbmR2YXIuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9m aW5kdmFyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9m aW5kdmFyLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wODg1MTAzOTkgKzAyMDAKLSsrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvZmluZHZhci5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM3NTMwMTA4 ICswMjAwCi1AQCAtODAyLDcgKzgwMiw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3Jp Zy9nZGIvZmluZHZhci5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysg Z2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2ZpbmR2YXIuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQz MjYwOTg5NSArMDEwMAorQEAgLTgxOSw3ICs4MTksNyBAQAogIGRlZmF1bHRfdmFsdWVfZnJvbV9y ZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB0eXBlICp0eXBlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlZ251bSwgc3RydWN0IGZyYW1lX2lkIGZy YW1lX2lkKQogIHsKIC0gIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CiArICBMT05HRVNU IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICAgIHN0cnVjdCB2YWx1ZSAqdmFsdWUgPSBhbGxv Y2F0ZV92YWx1ZSAodHlwZSk7CisgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWU7CiAgCi0gICBW QUxVRV9MVkFMICh2YWx1ZSkgPSBsdmFsX3JlZ2lzdGVyOwotQEAgLTgzOCw3ICs4MzgsNyBAQAor QEAgLTg2Myw3ICs4NjMsNyBAQAogICAgTE9OR0VTVCBvZmZzZXQgPSAwOwogICAgTE9OR0VTVCBy ZWdfb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2YWx1ZSk7CiAgICBpbnQgcmVnbnVtID0gVkFMVUVf UkVHTlVNICh2YWx1ZSk7CkBAIC0xODY0LDcgKzE4MDUsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2ZpbmR2YXIuYwogIAogICAgZ2RiX2Fzc2VydCAoVkFMVUVfTFZBTCAodmFs dWUpID09IGx2YWxfcmVnaXN0ZXIpOwogIAotQEAgLTg1Myw3ICs4NTMsNyBAQAorQEAgLTg3OCw3 ICs4NzgsNyBAQAogICAgd2hpbGUgKGxlbiA+IDApCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFs dWUgKnJlZ3ZhbCA9IGdldF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoZnJhbWUsIHJlZ251bSk7CkBA IC0xODczLDExICsxODE0LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZmlu ZHZhci5jCiAgCiAgICAgICAgLyogSWYgdGhlIHJlZ2lzdGVyIGxlbmd0aCBpcyBsYXJnZXIgdGhh biB0aGUgbnVtYmVyIG9mIGJ5dGVzCiAgICAgICAgICAgcmVtYWluaW5nIHRvIGNvcHksIHRoZW4g b25seSBjb3B5IHRoZSBhcHByb3ByaWF0ZSBieXRlcy4gICovCi1JbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2ZyYW1lLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZnJh bWUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2ZyYW1l LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wODk1MTA0MDcgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvZnJhbWUuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzODUzMDExNiArMDIwMAot QEAgLTEzMjAsNyArMTMyMCw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIv ZnJhbWUuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEy LjUwLjIwMTcwMjI2L2dkYi9mcmFtZS5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDMzNjA5OTAyICsw MTAwCitAQCAtMTM1OCw3ICsxMzU4LDcgQEAKICAKICBpbnQKICBnZXRfZnJhbWVfcmVnaXN0ZXJf Ynl0ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKQEAgLTE4ODYsNyAr MTgyNyw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZnJhbWUuYwogIAkJCSAg aW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci1AQCAtMTM0OSw3ICsxMzQ5LDcg QEAKK0BAIC0xMzg3LDcgKzEzODcsNyBAQAogICAgICB9CiAgICBpZiAobGVuID4gbWF4c2l6ZSkK ICAgICAgZXJyb3IgKF8oIkJhZCBkZWJ1ZyBpbmZvcm1hdGlvbiBkZXRlY3RlZDogIgpAQCAtMTg5 NSwxMSArMTgzNiwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZyYW1lLmMK ICAKICAgIC8qIENvcHkgdGhlIGRhdGEuICAqLwogICAgd2hpbGUgKGxlbiA+IDApCi1JbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZyYW1lLmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3 MDIyNi9nZGIvZnJhbWUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL2ZyYW1lLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTA1MTA0MTUgKzAyMDAKLSsrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZnJhbWUuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzODUz MDExNiArMDIwMAotQEAgLTU4NSw3ICs1ODUsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2 Lm9yaWcvZ2RiL2ZyYW1lLmgJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZnJhbWUuaAkyMDE3LTAyLTI2IDIyOjA0OjAzLjQz MzYwOTkwMiArMDEwMAorQEAgLTYwMCw3ICs2MDAsNyBAQAogICAgIGNvbnRlbnRzIGFyZSBvcHRp bWl6ZWQgb3V0IG9yIHVuYXZhaWxhYmxlLCBzZXQgKk9QVElNSVpFRFAsCiAgICAgKlVOQVZBSUxB QkxFUCBhY2NvcmRpbmdseS4gICovCiAgZXh0ZXJuIGludCBnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0 ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKQEAgLTE5MDgsMjAgKzE4 NDksMjAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mcmFtZS5oCiAgCQkJCSAg ICAgZ2RiX2J5dGUgKm15YWRkciwKICAJCQkJICAgICBpbnQgKm9wdGltaXplZHAsIGludCAqdW5h dmFpbGFibGVwKTsKICAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ2RidHlwZXMu YworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJ0eXBlcy5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE2LTA3LTE2 IDE0OjMzOjQyLjA5MjUxMDQzMSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9n ZGJ0eXBlcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM5NTMwMTI0ICswMjAwCi1AQCAtMjcyMiw3 ICsyNzIyLDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9nZGJ0eXBlcy5j CTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAx NzAyMjYvZ2RiL2dkYnR5cGVzLmMJMjAxNy0wMi0yNiAyMjowNDowMy40MzQ2MDk5MDkgKzAxMDAK K0BAIC0yNzgyLDcgKzI3ODIsNyBAQAogICAgIGxlYXN0IGFzIGxvbmcgYXMgT0JKRklMRS4gICov CiAgCiAgc3RydWN0IHR5cGUgKgotLWluaXRfdHlwZSAoZW51bSB0eXBlX2NvZGUgY29kZSwgaW50 IGxlbmd0aCwgaW50IGZsYWdzLAotK2luaXRfdHlwZSAoZW51bSB0eXBlX2NvZGUgY29kZSwgTE9O R0VTVCBsZW5ndGgsIGludCBmbGFncywKLSAJICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9i amZpbGUgKm9iamZpbGUpCistaW5pdF90eXBlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgZW51 bSB0eXBlX2NvZGUgY29kZSwgaW50IGxlbmd0aCwKKytpbml0X3R5cGUgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlLCBlbnVtIHR5cGVfY29kZSBjb2RlLCBMT05HRVNUIGxlbmd0aCwKKyAJICAgY29u c3QgY2hhciAqbmFtZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLUBAIC0yOTYyLDggKzI5 NjIsOCBAQAorQEAgLTMwOTEsOCArMzA5MSw4IEBACiAgCiAgc3RhdGljIGludAogIGlzX3VuaXF1 ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNz LApAQCAtMTkzMiw3ICsxODczLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9n ZGJ0eXBlcy5jCiAgCQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB2YWx1ZSAqdmFsKQog IHsKICAgIGludCBpLCBjb3VudCA9IDA7Ci1AQCAtMjk3NCw3ICsyOTc0LDcgQEAKK0BAIC0zMTAz LDcgKzMxMDMsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoZGNs YXNzKSAmJiBjb3VudCA8IDI7ICsraSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICppdGVy OwpAQCAtMTk0MSw3ICsxODgyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9n ZGJ0eXBlcy5jCiAgCiAgICAgICAgaXRlciA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFTRUNMQVNT IChkY2xhc3MsIGkpKTsKICAKLUBAIC0zMDE1LDcgKzMwMTUsNyBAQAorQEAgLTMxNDQsNyArMzE0 NCw3IEBACiAgaW50CiAgaXNfdW5pcXVlX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgc3Ry dWN0IHZhbHVlICp2YWwpCiAgewpAQCAtMTk1MCw3ICsxODkxLDcgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBlcy5jCiAgCiAgICByZXR1cm4gaXNfdW5pcXVlX2FuY2Vz dG9yX3dvcmtlciAoYmFzZSwgdmFsdWVfdHlwZSAodmFsKSwgJm9mZnNldCwKICAJCQkJICAgIHZh bHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAodmFsKSwKLUBAIC00MjAzLDcgKzQyMDMsNyBAQAor QEAgLTQzMzIsNyArNDMzMiw3IEBACiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIHB1dHNfZmls dGVyZWQgKCJcbiIpOwpAQCAtMTk1OSw3ICsxOTAwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9nZGJ0eXBlcy5jCiAgICBpZiAoVFlQRV9PQkpGSUxFX09XTkVEICh0eXBlKSkK ICAgICAgewogICAgICAgIHByaW50ZmlfZmlsdGVyZWQgKHNwYWNlcywgIm9iamZpbGUgIik7Ci1A QCAtNDY2Myw3ICs0NjYzLDcgQEAKK0BAIC00NzkyLDcgKzQ3OTIsNyBAQAogIAogIHN0cnVjdCB0 eXBlICoKICBhcmNoX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLApAQCAtMTk2OCwxMSAr MTkwOSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dkYnR5cGVzLmMKICB7 CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJ0eXBlcy5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ2RidHlwZXMu aAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5MzUxMDQzOSArMDIwMAotKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9nZGJ0eXBlcy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM5NTMwMTI0ICswMjAw Ci1AQCAtODA2LDcgKzgwNiw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIv Z2RidHlwZXMuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03 LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJ0eXBlcy5oCTIwMTctMDItMjYgMjI6MDQ6MDMuNDM1NjA5 OTE2ICswMTAwCitAQCAtNzgyLDcgKzc4Miw3IEBACiAgICAgICB0eXBlX2xlbmd0aF91bml0cyBm dW5jdGlvbiBzaG91bGQgYmUgdXNlZCBpbiBvcmRlciB0byBnZXQgdGhlIGxlbmd0aAogICAgICAg ZXhwcmVzc2VkIGluIHRhcmdldCBhZGRyZXNzYWJsZSBtZW1vcnkgdW5pdHMuICAqLwogIApAQCAt MTk4MSwxMyArMTkyMiwxNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dkYnR5 cGVzLmgKICAKICAgIC8qICogQ29yZSB0eXBlLCBzaGFyZWQgYnkgYSBncm91cCBvZiBxdWFsaWZp ZWQgdHlwZXMuICAqLwogIAotQEAgLTE2NzcsMTEgKzE2NzcsMTEgQEAKK0BAIC0xNjU4LDcgKzE2 NTgsNyBAQAogIAogIC8qICogSGVscGVyIGZ1bmN0aW9uIHRvIGNvbnN0cnVjdCBvYmpmaWxlLW93 bmVkIHR5cGVzLiAgKi8KICAKLS1leHRlcm4gc3RydWN0IHR5cGUgKmluaXRfdHlwZSAoZW51bSB0 eXBlX2NvZGUsIGludCwgaW50LCBjb25zdCBjaGFyICosCi0rZXh0ZXJuIHN0cnVjdCB0eXBlICpp bml0X3R5cGUgKGVudW0gdHlwZV9jb2RlLCBMT05HRVNULCBpbnQsIGNvbnN0IGNoYXIgKiwKLSAJ CQkgICAgICAgc3RydWN0IG9iamZpbGUgKik7CistZXh0ZXJuIHN0cnVjdCB0eXBlICppbml0X3R5 cGUgKHN0cnVjdCBvYmpmaWxlICosIGVudW0gdHlwZV9jb2RlLCBpbnQsCisrZXh0ZXJuIHN0cnVj dCB0eXBlICppbml0X3R5cGUgKHN0cnVjdCBvYmpmaWxlICosIGVudW0gdHlwZV9jb2RlLCBMT05H RVNULAorIAkJCSAgICAgICBjb25zdCBjaGFyICopOworIGV4dGVybiBzdHJ1Y3QgdHlwZSAqaW5p dF9pbnRlZ2VyX3R5cGUgKHN0cnVjdCBvYmpmaWxlICosIGludCwgaW50LAorIAkJCQkgICAgICAg Y29uc3QgY2hhciAqKTsKK0BAIC0xNjc1LDcgKzE2NzUsNyBAQAorIAkJCQkgICAgICAgc3RydWN0 IHR5cGUgKik7CiAgCiAgLyogSGVscGVyIGZ1bmN0aW9ucyB0byBjb25zdHJ1Y3QgYXJjaGl0ZWN0 dXJlLW93bmVkIHR5cGVzLiAgKi8KIC1leHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfdHlwZSAoc3Ry dWN0IGdkYmFyY2ggKiwgZW51bSB0eXBlX2NvZGUsIGludCwKQEAgLTE5OTUsMTAgKzE5NDAsMTAg QEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBlcy5oCiAgCQkJICAgICAg IGNvbnN0IGNoYXIgKik7CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2ludGVnZXJfdHlwZSAo c3RydWN0IGdkYmFyY2ggKiwgaW50LCBpbnQsCiAgCQkJCSAgICAgICBjb25zdCBjaGFyICopOwot SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUtdjItYWJpLmMKK0luZGV4OiBnZGIt Ny4xMi41MC4yMDE3MDIyNi9nZGIvZ251LXYyLWFiaS5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ251LXYyLWFiaS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIu MDkzNTEwNDM5ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dudS12Mi1hYmku YwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIw MTcwMjI2Lm9yaWcvZ2RiL2dudS12Mi1hYmkuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2 OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nbnUtdjItYWJpLmMJMjAxNy0w Mi0yNiAyMjowNDowMy40MzU2MDk5MTYgKzAxMDAKIEBAIC04Miw3ICs4Miw3IEBACiAgICAgVFlQ RSBpcyB0aGUgdHlwZSBpbiB3aGljaCBGIGlzIGxvY2F0ZWQuICAqLwogIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKgpAQCAtMjAzNiwxMCArMTk4MSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2dudS12Mi1hYmkuYwogIAkgICAgZ251djJfYmFzZWNsYXNzX29mZnNldCAodHlwZSwg aSwgdmFsYWRkciwKICAJCQkJICAgIGVtYmVkZGVkX29mZnNldCwgYWRkcmVzcywgdmFsKTsKICAK LUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ251LXYzLWFiaS5jCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2dudS12My1hYmkuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2dudS12My1hYmkuYwkyMDE2LTA3LTE2IDE0OjMzOjQy LjA5NDUxMDQ0NyArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUtdjMtYWJp LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4y MDE3MDIyNi5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkz NjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZ251LXYzLWFiaS5jCTIwMTct MDItMjYgMjI6MDQ6MDMuNDM1NjA5OTE2ICswMTAwCiBAQCAtMTA4LDcgKzEwOCw3IEBACiAgewog ICAgc3RydWN0IHR5cGUgKnQ7CkBAIC0yMDU4LDcgKzIwMDMsNyBAQCBJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2dudS12My1hYmkuYwogIHZ0YWJsZV9hZGRyZXNzX3BvaW50X29mZnNl dCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCiAgewogICAgc3RydWN0IHR5cGUgKnZ0YWJsZV90 eXBlCi1AQCAtNDExLDcgKzQxMSw3IEBACitAQCAtNDA3LDcgKzQwNyw3IEBACiAgc3RhdGljIHN0 cnVjdCB2YWx1ZSAqCiAgZ251djNfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqdmFs dWVfcCwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZm5fZmllbGQgKmYsIGludCBq LApAQCAtMjA2Nyw3ICsyMDEyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9n bnUtdjMtYWJpLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdmFsdWVzX3R5cGUgPSBjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlICgqdmFsdWVfcCkpOwogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2g7 Ci1AQCAtNDQxLDcgKzQ0MSw3IEBACitAQCAtNDM3LDcgKzQzNyw3IEBACiAgCiAgICAgLTEgaXMg cmV0dXJuZWQgb24gZXJyb3IuICAqLwogIApAQCAtMjA3Niw3ICsyMDIxLDcgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUtdjMtYWJpLmMKICBnbnV2M19iYXNlY2xhc3Nfb2Zm c2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAogIAkJCWNvbnN0IGJmZF9ieXRlICp2 YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKICAJCQlDT1JFX0FERFIgYWRkcmVzcywg Y29uc3Qgc3RydWN0IHZhbHVlICp2YWwpCi1AQCAtNDUwLDcgKzQ1MCw3IEBACitAQCAtNDQ2LDcg KzQ0Niw3IEBACiAgICBzdHJ1Y3QgdHlwZSAqcHRyX3R5cGU7CiAgICBzdHJ1Y3QgdmFsdWUgKnZ0 YWJsZTsKICAgIHN0cnVjdCB2YWx1ZSAqdmJhc2VfYXJyYXk7CkBAIC0yMDg1LDcgKzIwMzAsNyBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dudS12My1hYmkuYwogIAogICAgLyog RGV0ZXJtaW5lIGFyY2hpdGVjdHVyZS4gICovCiAgICBnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAo dHlwZSk7Ci1AQCAtNDc0LDcgKzQ3NCw3IEBACitAQCAtNDY5LDcgKzQ2OSw3IEBACiAgICBjdXJf YmFzZV9vZmZzZXQgPSBjdXJfYmFzZV9vZmZzZXQgKyB2dGFibGVfYWRkcmVzc19wb2ludF9vZmZz ZXQgKGdkYmFyY2gpOwogICAgaWYgKCgtIGN1cl9iYXNlX29mZnNldCkgJSBUWVBFX0xFTkdUSCAo cHRyX3R5cGUpICE9IDApCiAgICAgIGVycm9yIChfKCJNaXNhbGlnbmVkIHZiYXNlIG9mZnNldC4i KSk7CkBAIC0yMDk0LDcgKzIwMzksNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2dudS12My1hYmkuYwogIAogICAgdnRhYmxlID0gZ251djNfZ2V0X3Z0YWJsZSAoZ2RiYXJjaCwg dHlwZSwgYWRkcmVzcyArIGVtYmVkZGVkX29mZnNldCk7CiAgICBnZGJfYXNzZXJ0ICh2dGFibGUg IT0gTlVMTCk7Ci1AQCAtNTE4LDcgKzUxOCw3IEBACitAQCAtNTEzLDcgKzUxMyw3IEBACiAgICAg ICB3ZSdyZSBvdXQgb2YgbHVjay4gICovCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VD TEFTU0VTIChkb21haW4pOyBpKyspCiAgICAgIHsKQEAgLTIxMDMsOTEgKzIwNDgsMzcgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUtdjMtYWJpLmMKICAgICAgICBzdHJ1Y3Qg dHlwZSAqYmFzZXR5cGU7CiAgCiAgICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMIChkb21h aW4sIGkpKQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nby1sYW5nLmgKK0luZGV4 OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZ28tbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ28tbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIu MDk0NTEwNDQ3ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dvLWxhbmcuaAky MDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcw MjI2Lm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEw MAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nby1sYW5nLmgJMjAxNy0wMi0yNiAyMjow NDowMy40MzY2MDk5MjMgKzAxMDAKIEBAIC04NSw3ICs4NSw3IEBACiAgLyogRGVmaW5lZCBpbiBn by12YWxwcmludC5jLiAgKi8KICAKLSBleHRlcm4gdm9pZCBnb192YWxfcHJpbnQgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKyBleHRlcm4gdm9pZCBnb192YWxf cHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLAogLQkJCSAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09S RV9BRERSIGFkZHJlc3MsCiArCQkJICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERS IGFkZHJlc3MsCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJ CQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJCSAgc3RydWN0IHZhbHVlICp2YWwsCiAg CQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dvLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMi41 MC4yMDE3MDIyNi9nZGIvZ28tdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTQ1 MTA0NDcgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ28tdmFscHJpbnQuYwky MDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAotQEAgLTg2LDkgKzg2LDkgQEAKKy0t LSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9nby12YWxwcmludC5jCTIwMTctMDItMjYg MjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2dv LXZhbHByaW50LmMJMjAxNy0wMi0yNiAyMjowNDowMy40MzY2MDk5MjMgKzAxMDAKK0BAIC04Niw3 ICs4Niw3IEBACiAgLyogSW1wbGVtZW50cyB0aGUgbGFfdmFsX3ByaW50IHJvdXRpbmUgZm9yIGxh bmd1YWdlIEdvLiAgKi8KICAKICB2b2lkCi0tZ29fdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0tCSAgICAg IENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwK LS0JICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0rZ29fdmFsX3ByaW50IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0rCSAgICAgIExPTkdFU1QgZW1i ZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsJICAgICAgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgaW50IHJlY3Vyc2UsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorLWdvX3ZhbF9w cmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBlbWJlZGRlZF9vZmZzZXQsCisrZ29fdmFsX3By aW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgCSAgICAg IENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwK KyAJICAgICAgc3RydWN0IHZhbHVlICp2YWwsCiAgCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zKQotIHsKLSAgIHR5cGUgPSBjaGVja190eXBlZGVmICh0eXBl KTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtbGFuZy5jCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvanYtbGFuZy5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMDk0NTEwNDQ3ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2p2 LWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAotQEAgLTQ0MCw3ICs0 NDAsNyBAQAotICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsgaSA8IG5maWVs ZHM7IGkrKykKLSAgICAgewotICAgICAgIGludCBhY2NmbGFnczsKLS0gICAgICBpbnQgYm9mZnNl dDsKLSsgICAgICBMT05HRVNUIGJvZmZzZXQ7Ci0gCi0gICAgICAgaWYgKGZpZWxkcyA9PSBOVUxM KQotIAl7Ci1AQCAtODkwLDcgKzg5MCw3IEBACi0gc3RhdGljIHZvaWQKLSBqYXZhX3ByaW50c3Ry IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKLSAJICAgICAgIGNv bnN0IGdkYl9ieXRlICpzdHJpbmcsCi0tCSAgICAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoLCBjb25z dCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAotKwkgICAgICAgVUxPTkdFU1Qg bGVuZ3RoLCBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAotIAkgICAg ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi0gewotICAgY29u c3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGphdmFfZ2V0X2VuY29kaW5nICh0eXBlKTsKLUluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtbGFuZy5oCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMjYvZ2RiL2xhbmd1YWdlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9qdi1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTQ1MTA0NDcgKzAy MDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtbGFuZy5oCTIwMTYtMDctMTYgMTQ6 MzM6NDQuNTQwNTMwMTMyICswMjAwCi1AQCAtNDMsOCArNDMsOCBAQAotIAotIGV4dGVybiBjb25z dCBzdHJ1Y3QgYnVpbHRpbl9qYXZhX3R5cGUgKmJ1aWx0aW5famF2YV90eXBlIChzdHJ1Y3QgZ2Ri YXJjaCAqKTsKLSAKLS1leHRlcm4gdm9pZCBqYXZhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwg Y29uc3QgZ2RiX2J5dGUgKiwgaW50LCBDT1JFX0FERFIsCi0tCQkJICAgIHN0cnVjdCB1aV9maWxl ICosIGludCwKLStleHRlcm4gdm9pZCBqYXZhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29u c3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwKLSsJCQkgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmls ZSAqLCBpbnQsCi0gCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotIAkJCSAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLSAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvanYtdmFscHJpbnQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL2p2LXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTU1MTA0NTUg KzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtdmFscHJpbnQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAotQEAgLTQ1NCw3ICs0NTQsNyBAQAotIAotIHZv aWQKLSBqYXZhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLAotLQkJaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rCQlM T05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gCQlzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAot IAkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xhbmd1YWdlLmMKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk1 NTEwNDU1ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xhbmd1YWdlLmMJMjAx Ni0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAyMDAKLUBAIC03NjYsNyArNzY2LDcgQEAKKy0t LSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTctMDItMjYgMjE6 NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2xhbmd1 YWdlLmMJMjAxNy0wMi0yNiAyMjowNDowMy40MzY2MDk5MjMgKzAxMDAKK0BAIC03NTQsNyArNzU0 LDcgQEAKICAKICBzdGF0aWMgdm9pZAogIHVua19sYW5nX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTIxOTYsMjAgKzIwODcsMjAgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9sYW5ndWFnZS5jCiAgCQkgICBjb25zdCBjaGFy ICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotQEAgLTc4NSw3ICs3ODUsNyBAQAorQEAgLTc3 Myw3ICs3NzMsNyBAQAogIAogIHN0YXRpYyB2b2lkCi0gdW5rX2xhbmdfdmFsX3ByaW50IChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCisgdW5rX2xhbmdfdmFsX3By aW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwKIC0JCSAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JF X0FERFIgYWRkcmVzcywKICsJCSAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERS IGFkZHJlc3MsCiAgCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0g CQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCisgCQkgICAgc3RydWN0IHZhbHVlICp2YWws CiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xhbmd1YWdlLmgKK0luZGV4OiBnZGItNy4xMi41 MC4yMDE3MDIyNi9nZGIvbGFuZ3VhZ2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTU1MTA0NTUg KzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbGFuZ3VhZ2UuaAkyMDE2LTA3LTE2 IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAotQEAgLTE5Niw3ICsxOTYsNyBAQAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNy0wMi0yNiAyMTo1OTozNi4w NDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbGFuZ3VhZ2UuaAky MDE3LTAyLTI2IDIyOjA0OjAzLjQzNjYwOTkyMyArMDEwMAorQEAgLTE5Nyw3ICsxOTcsNyBAQAog IAkJCSAgc3RydWN0IHVpX2ZpbGUgKiBzdHJlYW0pOwogIAogICAgICB2b2lkICgqbGFfcHJpbnRz dHIpIChzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSwgc3RydWN0IHR5cGUgKmVsdHR5cGUsCkBAIC0y MjE4LDE5ICsyMTA5LDE5IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbGFuZ3Vh Z2UuaAogIAkJCSBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJ CSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKICAKLUBAIC0yMzgsNyArMjM4 LDcgQEAKK0BAIC0yMzUsNyArMjM1LDcgQEAKKyAgICAgICAgcHJpbnRpbmcuICAqLwogIAogICAg ICB2b2lkICgqbGFfdmFsX3ByaW50KSAoc3RydWN0IHR5cGUgKnR5cGUsCi0gCQkJICBjb25zdCBn ZGJfYnl0ZSAqY29udGVudHMsCiAtCQkJICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIg YWRkcmVzcywKICsJCQkgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVz cywKICAJCQkgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkJCSAgY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCisgCQkJICBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvbTItbGFuZy5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYv Z2RiL20yLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL20yLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIwMAotKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDA1 MzAxMzIgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9tMi1sYW5nLmMJ MjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIyNi9nZGIvbTItbGFuZy5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDM2NjA5OTIzICswMTAwCiBA QCAtMTA0LDEwICsxMDQsMTAgQEAKICAKICBzdGF0aWMgdm9pZApAQCAtMjI2NSwyMyArMjE1Niwy MyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLWxhbmcuYwogIAkgIGkgPSBy ZXAxIC0gMTsKICAJICB0aGluZ3NfcHJpbnRlZCArPSBvcHRpb25zLT5yZXBlYXRfY291bnRfdGhy ZXNob2xkOwogIAkgIG5lZWRfY29tbWEgPSAxOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9tMi1sYW5nLmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbTItbGFuZy5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTItbGFuZy5o CTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk2NTEwNDYzICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL20yLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAor LS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL20yLWxhbmcuaAkyMDE3LTAyLTI2IDIx OjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9tMi1s YW5nLmgJMjAxNy0wMi0yNiAyMjowNDowMy40Mzc2MDk5MzAgKzAxMDAKIEBAIC0zNCw3ICszNCw3 IEBACiAgZXh0ZXJuIGludCBtMl9pc19sb25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUpOwogIGV4 dGVybiBpbnQgbTJfaXNfdW5ib3VuZGVkX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSk7CiAgCi0t ZXh0ZXJuIHZvaWQgbTJfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAq LCBpbnQsIENPUkVfQUREUiwKLStleHRlcm4gdm9pZCBtMl92YWxfcHJpbnQgKHN0cnVjdCB0eXBl ICosIGNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsIENPUkVfQUREUiwKKy1leHRlcm4gdm9pZCBt Ml92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGludCwgQ09SRV9BRERSLAorK2V4dGVybiB2b2lk IG0yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgTE9OR0VTVCwgQ09SRV9BRERSLAogIAkJCSAg c3RydWN0IHVpX2ZpbGUgKiwgaW50LAotIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICosCisgCQkJ ICBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICopOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi10eXBlcHJpbnQuYworSW5k ZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9tMi10eXBlcHJpbnQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL20yLXR5cGVwcmludC5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDk2NTEwNDYzICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L20yLXR5cGVwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQxNTMwMTQwICswMjAwCistLS0g Z2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvbTItdHlwZXByaW50LmMJMjAxNy0wMi0yNiAy MTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbTIt dHlwZXByaW50LmMJMjAxNy0wMi0yNiAyMjowNDowMy40Mzc2MDk5MzAgKzAxMDAKIEBAIC0yMzQs OSArMjM0LDEyIEBACiAgCSAgbTJfcHJpbnRfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKHR5cGUp LCBzdHJlYW0sIHNob3csIC0xLCAxKTsKICAJfQpAQCAtMjI5OCwxMCArMjE4OSwxMCBAQCBJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLXR5cGVwcmludC5jCiAgICAgIH0KICAgIGZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIl0gT0YgIik7CiAgICBtMl9wcmludF90eXBlIChUWVBF X1RBUkdFVF9UWVBFICh0eXBlKSwgIiIsIHN0cmVhbSwgc2hvdywgbGV2ZWwsIGZsYWdzKTsKLUlu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItdmFscHJpbnQuYworSW5kZXg6IGdkYi03 LjEyLjUwLjIwMTcwMjI2L2dkYi9tMi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQy LjA5NjUxMDQ2MyArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi12YWxwcmlu dC5jCTIwMTYtMDctMTYgMTQ6MzU6MTkuODMwMjk3MDEzICswMjAwCistLS0gZ2RiLTcuMTIuNTAu MjAxNzAyMjYub3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0Mzcx OTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9tMi12YWxwcmludC5jCTIw MTctMDItMjYgMjI6MDQ6MDMuNDM3NjA5OTMwICswMTAwCiBAQCAtMzUsNyArMzUsNyBAQAogIAkJ CQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICBzdGF0aWMgdm9pZApAQCAtMjMwOSw3ICsy MjAwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi12YWxwcmludC5jCiAt CQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAogKwkJCSBMT05HRVNU IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkJIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJ CQkgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAogQEAgLTY3LDcgKzY3LDcgQEAKICAKQEAgLTIzMzYsMTYgKzIyMjcsMTYg QEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi12YWxwcmludC5jCiAtCQkJIGlu dCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAogKwkJCSBMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkJIHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIGludCByZWN1cnNlLAotIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCQkgc3Ry dWN0IHZhbHVlICp2YWwsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zLAogQEAgLTMwOCwxMyArMzA4LDEzIEBACiAgICAgZnVuY3Rpb247IHRoZXkgYXJlIGlk ZW50aWNhbC4gICovCiAgCiAgdm9pZAotLW0yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotK20yX3ZhbF9w cmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNU IGVtYmVkZGVkX29mZnNldCwKKy1tMl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQg ZW1iZWRkZWRfb2Zmc2V0LAorK20yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIExPTkdF U1QgZW1iZWRkZWRfb2Zmc2V0LAogIAkgICAgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq b3JpZ2luYWxfdmFsdWUsCisgCSAgICAgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAg CSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKICAg IHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7CkBAIC0yMzUz LDggKzIyNDQsOCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLXZhbHByaW50 LmMKICsgIFVMT05HRVNUIGxlbjsKICAgIHN0cnVjdCB0eXBlICplbHR0eXBlOwogICAgQ09SRV9B RERSIGFkZHI7Ci0gCi1AQCAtMzM5LDcgKzMzOSw3IEBACisgICBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciA9IHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAob3JpZ2luYWxfdmFsdWUpOworQEAg LTM0MCw3ICszNDAsNyBAQAogIAkgICAgICAgICBlbGVtZW50cyB1cCB0byBpdC4gICovCiAgCSAg ICAgIGlmIChvcHRpb25zLT5zdG9wX3ByaW50X2F0X251bGwpCiAgCQl7CkBAIC0yMzYzLDcgKzIy NTQsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLXZhbHByaW50LmMKICAK ICAJCSAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIuICAqLwogIAkJICBmb3IgKHRlbXBfbGVuID0g MDsKLUBAIC00MTUsNyArNDE1LDcgQEAKK0BAIC00MTYsNyArNDE2LDcgQEAKICAJewogIAkgIHN0 cnVjdCB0eXBlICpyYW5nZSA9IGVsdHR5cGU7CiAgCSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hf Ym91bmQ7CkBAIC0yMzcyLDEyICsyMjYzLDEyIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvbTItdmFscHJpbnQuYwogIAkgIGludCBuZWVkX2NvbW1hID0gMDsKICAKICAJICBmcHV0 c19maWx0ZXJlZCAoInsiLCBzdHJlYW0pOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9tZW1yYW5nZS5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL21lbXJhbmdlLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tZW1yYW5nZS5j CTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk2NTEwNDYzICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL21lbXJhbmdlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAK LUBAIC0yMSw4ICsyMSw4IEBACi0gI2luY2x1ZGUgIm1lbXJhbmdlLmgiCistLS0gZ2RiLTcuMTIu NTAuMjAxNzAyMjYub3JpZy9nZGIvbWVtcmFuZ2UuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0Mzcx OTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9tZW1yYW5nZS5jCTIwMTct MDItMjYgMjI6MDQ6MDMuNDM3NjA5OTMwICswMTAwCitAQCAtMjIsOCArMjIsOCBAQAorICNpbmNs dWRlIDxhbGdvcml0aG0+CiAgCiAgaW50CiAtbWVtX3Jhbmdlc19vdmVybGFwIChDT1JFX0FERFIg c3RhcnQxLCBpbnQgbGVuMSwKQEAgLTIzODcsMTAgKzIyNzgsMTAgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9tZW1yYW5nZS5jCiAgewogICAgVUxPTkdFU1QgaCwgbDsKICAKLUlu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVtcmFuZ2UuaAorSW5kZXg6IGdkYi03LjEy LjUwLjIwMTcwMjI2L2dkYi9tZW1yYW5nZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvbWVtcmFuZ2UuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NzUxMDQ3 MSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tZW1yYW5nZS5oCTIwMTYtMDct MTYgMTQ6MzM6NDQuNTQxNTMwMTQwICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3Jp Zy9nZGIvbWVtcmFuZ2UuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysr IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9tZW1yYW5nZS5oCTIwMTctMDItMjYgMjI6MDQ6MDMu NDM3NjA5OTMwICswMTAwCiBAQCAtMzAsNyArMzAsNyBAQAogICAgQ09SRV9BRERSIHN0YXJ0Owog IApAQCAtMjQxMSwxMCArMjMwMiwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L21lbXJhbmdlLmgKICAKICAvKiBSZXR1cm5zIHRydWUgaWYgQUREUiBpcyBpbiBSQU5HRS4gICov CiAgCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21pcHMtbGludXgtbmF0LmMKK0lu ZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbWlwcy1saW51eC1uYXQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAx Ni0wNy0xNiAxNDozMzo0Mi4wOTc1MTA0NzEgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MTUzMDE0MCArMDIw MAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAx Ny0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIy Ni9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQzODYwOTkzNyArMDEw MAogQEAgLTU4Nyw3ICs1ODcsNyBAQAogIAogIHN0YXRpYyBpbnQKQEAgLTI0MjQsMTAgKzIzMTUs MTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLWxpbnV4LW5hdC5jCiAg ewogICAgc3RydWN0IHB0X3dhdGNoX3JlZ3MgZHVtbXlfcmVnczsKICAgIGludCBpOwotSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9vcGVuY2wtbGFuZy5jCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMjYvZ2RiL29wZW5jbC1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9vcGVuY2wtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk3 NTEwNDcxICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL29wZW5jbC1sYW5nLmMJ MjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3 MDIyNi5vcmlnL2dkYi9vcGVuY2wtbGFuZy5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5 ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNy0w Mi0yNiAyMjowNDowMy40Mzg2MDk5MzcgKzAxMDAKIEBAIC03OCwxMSArNzgsMTEgQEAKICAKICBz dGF0aWMgc3RydWN0IHR5cGUgKgpAQCAtMjQ5NiwxMCArMjM4NywxMCBAQCBJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL29wZW5jbC1sYW5nLmMKICAKICAgICAgICBpZiAoIXZhbHVlX2Jp dHNfc3ludGhldGljX3BvaW50ZXIgKGMtPnZhbCwKICAJCQkJCSBjLT5pbmRpY2VzW2ldICogZWxz aXplICsgY29tcF9vZmZzZXQsCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3AtbGFu Zy5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3AtbGFuZy5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcC1sYW5nLmMJMjAxNi0wNy0xNiAx NDozMzo0Mi4wOTg1MTA0NzkgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC1s YW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDI1MzAxNDggKzAyMDAKKy0tLSBnZGItNy4xMi41 MC4yMDE3MDIyNi5vcmlnL2dkYi9wLWxhbmcuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2 OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9wLWxhbmcuYwkyMDE3LTAyLTI2 IDIyOjA0OjAzLjQzODYwOTkzNyArMDEwMAogQEAgLTk1LDggKzk1LDggQEAKICAgICBhcmUgbm90 IG11bHRpcGxlIG9mIFRBUkdFVF9DSEFSX0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwog ICAgIGJ1dCB0aGlzIGRvZXMgbm90IGhhcHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMu ICAqLwpAQCAtMjU0NywxOCArMjQzOCwxOCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3AtbGFuZy5jCiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmludGVkICs9IG9w dGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1JbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3AtbGFuZy5oCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMjYvZ2RiL3AtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvcC1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTg1MTA0NzkgKzAyMDAK LSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0 NC41NDI1MzAxNDggKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9wLWxh bmcuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUw LjIwMTcwMjI2L2dkYi9wLWxhbmcuaAkyMDE3LTAyLTI2IDIyOjA0OjAzLjQzODYwOTkzNyArMDEw MAogQEAgLTM2LDcgKzM2LDcgQEAKICBleHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRfdHlwZWRlZiAo c3RydWN0IHR5cGUgKiwgc3RydWN0IHN5bWJvbCAqLAogIAkJCQkgIHN0cnVjdCB1aV9maWxlICop OwogIAotLWV4dGVybiB2b2lkIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGNvbnN0 IGdkYl9ieXRlICosIGludCwKLStleHRlcm4gdm9pZCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3Qg dHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBMT05HRVNULAorLWV4dGVybiB2b2lkIHBhc2NhbF92 YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGludCwKKytleHRlcm4gdm9pZCBwYXNjYWxfdmFsX3By aW50IChzdHJ1Y3QgdHlwZSAqLCBMT05HRVNULAogIAkJCSAgICAgIENPUkVfQUREUiwgc3RydWN0 IHVpX2ZpbGUgKiwgaW50LAotIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAorIAkJCSAg ICAgIHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICopOwogQEAgLTUwLDEzICs1MCwxMyBAQAogIC8qIFRoZXNlIGFyZSBpbiBwLWxhbmcu YzogKi8KQEAgLTI1NzYsMTggKzI0NjcsMTggQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9wLWxhbmcuaAogIAkJCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Kik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICoqY29uc3QgKHBhc2NhbF9idWlsdGluX3R5cGVz W10pOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wLXZhbHByaW50LmMKK0luZGV4 OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvcC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcC12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMDk4NTEwNDc5ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3AtdmFs cHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MjUzMDE0OCArMDIwMAorLS0tIGdkYi03LjEy LjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0 MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9wLXZhbHByaW50LmMJ MjAxNy0wMi0yNiAyMjowNDowMy40Mzk2MDk5NDQgKzAxMDAKIEBAIC01OSw3ICs1OSw3IEBACiAg CiAgdm9pZAotIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKKyBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwKIC0J CSAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiArCQkgIExPTkdFU1Qg ZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKICAJCSAgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxf dmFsdWUsCisgCQkgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCQkgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogQEAgLTcwLDggKzcwLDggQEAKICAg IHVuc2lnbmVkIGxlbjsKQEAgLTI2MDAsMTAgKzI0OTEsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9wLXZhbHByaW50LmMKICAgIHN0cnVjdCB0eXBlICpjaGFyX3R5cGU7CiAg ICBDT1JFX0FERFIgYWRkcjsKICAgIGludCB3YW50X3NwYWNlID0gMDsKLUluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvcHBjLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAx NzAyMjYvZ2RiL3BwYy1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5OTUx MDQ4NyArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcGMtbGludXgtbmF0LmMJ MjAxNi0wNy0xNiAxNDozMzo0NC41NDI1MzAxNDggKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3 MDIyNi5vcmlnL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkz NjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvcHBjLWxpbnV4LW5hdC5jCTIw MTctMDItMjYgMjI6MDQ6MDMuNDM5NjA5OTQ0ICswMTAwCiBAQCAtMTQ0OSw3ICsxNDQ5LDcgQEAK ICAKICBzdGF0aWMgaW50CkBAIC0yNjEzLDExICsyNTA0LDExIEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvcHBjLWxpbnV4LW5hdC5jCiAgewogICAgLyogSGFuZGxlIHN1Yi04LWJ5 dGUgcXVhbnRpdGllcy4gICovCiAgICBpZiAobGVuIDw9IDApCi1JbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3ByaW50Y21kLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIv cHJpbnRjbWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L3ByaW50Y21kLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTk1MTA0ODcgKzAyMDAKLSsrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvcHJpbnRjbWQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MzUz MDE1NiArMDIwMAotQEAgLTI3OSw3ICsyNzksNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2 Lm9yaWcvZ2RiL3ByaW50Y21kLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAK KysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvcHJpbnRjbWQuYwkyMDE3LTAyLTI2IDIyOjA0 OjAzLjQ0MDYwOTk1MSArMDEwMAorQEAgLTI4MCw3ICsyODAsNyBAQAogIAkJIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0pCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2 YWx1ZV90eXBlICh2YWwpKTsKQEAgLTI2MzUsMTEgKzI1MjYsMTEgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9wcmludGNtZC5jCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRl ciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgCiAgICAvKiBTdHJpbmcgcHJpbnRp bmcgc2hvdWxkIGdvIHRocm91Z2ggdmFsX3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQuICAqLwotSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcm9jZnMuYworSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjI2L2dkYi9wcm9jZnMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTAwNTEwNDk1ICswMjAw Ci0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Byb2Nmcy5jCTIwMTYtMDctMTYgMTQ6MzM6 NDQuNTQzNTMwMTU2ICswMjAwCi1AQCAtNDg2Myw3ICs0ODYzLDcgQEAKKy0tLSBnZGItNy4xMi41 MC4yMDE3MDIyNi5vcmlnL2dkYi9wcm9jZnMuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2 OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9wcm9jZnMuYwkyMDE3LTAyLTI2 IDIyOjA0OjAzLjQ0MTYwOTk1OCArMDEwMAorQEAgLTQ4NjIsNyArNDg2Miw3IEBACiAgCiAgc3Rh dGljIGludAogIHByb2Nmc19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJn ZXRfb3BzICpzZWxmLApAQCAtMjY0OCwxMSArMjUzOSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3Byb2Nmcy5jCiAgewogICAgLyogVGhlIG1hbiBwYWdlIGZvciBwcm9jKDQp IG9uIFNvbGFyaXMgMi42IGFuZCB1cCBzYXlzIHRoYXQgdGhlCiAgICAgICBzeXN0ZW0gY2FuIHN1 cHBvcnQgInRob3VzYW5kcyIgb2YgaGFyZHdhcmUgd2F0Y2hwb2ludHMsIGJ1dCBnaXZlcwotSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZWdjYWNoZS5jCitJbmRleDogZ2RiLTcuMTIu NTAuMjAxNzAyMjYvZ2RiL3JlZ2NhY2hlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9yZWdjYWNoZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTAxNTEwNTAz ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmMJMjAxNi0wNy0x NiAxNDozMzo0NC41NDQ1MzAxNjUgKzAyMDAKLUBAIC05NjcsNyArOTY3LDcgQEAKKy0tLSBnZGIt Ny4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9yZWdjYWNoZS5jCTIwMTctMDItMjYgMjE6NTk6MzYu MDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3JlZ2NhY2hlLmMJ MjAxNy0wMi0yNiAyMjowNDowMy40NDE2MDk5NTggKzAxMDAKK0BAIC05ODAsNyArOTgwLDcgQEAK ICAKICBzdGF0aWMgZW51bSByZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV94ZmVyX3BhcnQgKHN0 cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yNjYxLDcgKzI1NTIsNyBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmMKICAJCSAgICBlbnVt IHJlZ2lzdGVyX3N0YXR1cyAoKnJlYWQpIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJ CQkJCSAgaW50IHJlZ251bSwKICAJCQkJCQkgIGdkYl9ieXRlICpidWYpLAotQEAgLTEwMTEsNyAr MTAxMSw3IEBACitAQCAtMTAyNSw3ICsxMDI1LDcgQEAKICAKICBlbnVtIHJlZ2lzdGVyX3N0YXR1 cwogIHJlZ2NhY2hlX3Jhd19yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGlu dCByZWdudW0sCkBAIC0yNjcwLDcgKzI1NjEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0g cmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTEwMjIsNyArMTAyMiw3IEBACitAQCAtMTAzNiw3ICsx MDM2LDcgQEAKICAKICB2b2lkCiAgcmVnY2FjaGVfcmF3X3dyaXRlX3BhcnQgKHN0cnVjdCByZWdj YWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yNjc5LDcgKzI1NzAsNyBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2Fj aGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTEwMzMsNyArMTAzMyw3 IEBACitAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAKICAKICBlbnVtIHJlZ2lzdGVyX3N0YXR1cwogIHJl Z2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCBy ZWdudW0sCkBAIC0yNjg4LDcgKzI1NzksNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVn Y2FjaGUtPmRlc2NyOwogIAotQEAgLTEwNDQsNyArMTA0NCw3IEBACitAQCAtMTA1OCw3ICsxMDU4 LDcgQEAKICAKICB2b2lkCiAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3BhcnQgKHN0cnVjdCByZWdj YWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yNjk3LDExICsyNTg4LDExIEBAIEluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdj YWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1JbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9n ZGIvcmVnY2FjaGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL3JlZ2NhY2hlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDE1MTA1MDMgKzAyMDAKLSsrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVnY2FjaGUuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0 NDUzMDE2NSArMDIwMAotQEAgLTgwLDkgKzgwLDkgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIy Ni5vcmlnL2dkYi9yZWdjYWNoZS5oCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAw CisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3JlZ2NhY2hlLmgJMjAxNy0wMi0yNiAyMjow NDowMy40NDE2MDk5NTggKzAxMDAKK0BAIC04Niw5ICs4Niw5IEBACiAgCiAgZXh0ZXJuIGVudW0g cmVnaXN0ZXJfc3RhdHVzCiAgICByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2Fj aGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjcxMyw3ICsyNjA0LDcgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZWdjYWNoZS5oCiAgCiAgdm9pZCByZWdjYWNoZV9pbnZh bGlkYXRlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtKTsKICAKLUBAIC0x MTksMTAgKzExOSwxMSBAQAorQEAgLTEyNSwxMCArMTI1LDExIEBACiAgICAgd3JpdGUgc3R5bGUg b3BlcmF0aW9ucy4gICovCiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMgcmVnY2FjaGVfY29va2Vk X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKQEAgLTI3MjgsMTEgKzI2MTks MTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZWdjYWNoZS5oCiAgCiAgLyog U3BlY2lhbCByb3V0aW5lcyB0byByZWFkL3dyaXRlIHRoZSBQQy4gICovCiAgCi1JbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlbW90ZS5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAy MjYvZ2RiL3JlbW90ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvcmVtb3RlLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDQ1MTA1MjcgKzAyMDAKLSsrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVtb3RlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDU1 MzAxNzIgKzAyMDAKLUBAIC05NDczLDcgKzk0NzMsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcw MjI2Lm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAw CisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3JlbW90ZS5jCTIwMTctMDItMjYgMjI6MDQ6 MDMuNDQ0NjA5OTc5ICswMTAwCitAQCAtOTkyMCw3ICs5OTIwLDcgQEAKICAKICBzdGF0aWMgaW50 CiAgcmVtb3RlX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMg KnNlbGYsCkBAIC0yNzQxLDEwICsyNjMyLDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvcmVtb3RlLmMKICB7CiAgICBpZiAocmVtb3RlX2h3X3dhdGNocG9pbnRfbGVuZ3RoX2xp bWl0ID09IDApCiAgICAgIHJldHVybiAwOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9zcHUtbXVsdGlhcmNoLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvc3B1LW11 bHRpYXJjaC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv c3B1LW11bHRpYXJjaC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTA1NTEwNTM2ICswMjAwCi0rKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE2LTA3LTE2IDE0OjMz OjQ0LjU0NTUzMDE3MiArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3Nw dS1tdWx0aWFyY2guYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjI2L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNy0wMi0yNiAyMjowNDow My40NDQ2MDk5NzkgKzAxMDAKIEBAIC0xMjcsNyArMTI3LDcgQEAKICAvKiBPdmVycmlkZSB0aGUg dG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IHJvdXRpbmUuICAqLwogIHN0YXRpYyBpbnQK QEAgLTI3NTQsMTEgKzI2NDUsMTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9z cHUtbXVsdGlhcmNoLmMKICB7CiAgICBzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzX2JlbmVhdGggPSBm aW5kX3RhcmdldF9iZW5lYXRoIChzZWxmKTsKICAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvc3RhY2suYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9zdGFjay5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc3RhY2suYwkyMDE2 LTA3LTE2IDE0OjMzOjQyLjEwNjUxMDU0NCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9zdGFjay5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ2NTMwMTgxICswMjAwCi1AQCAtMTc2 LDcgKzE3Niw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvc3RhY2suYwky MDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjI2L2dkYi9zdGFjay5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDQ1NjA5OTg3ICswMTAwCitAQCAt MTg5LDcgKzE4OSw3IEBACiAgICAgYXJndW1lbnQgKG5vdCBqdXN0IHRoZSBmaXJzdCBuYW1lbGVz cyBhcmd1bWVudCkuICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0yNzY3LDcgKzI2NTgsNyBAQCBJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N0YWNrLmMKICAJCQkgICBpbnQgZmlyc3Qs IHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gg PSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwotQEAgLTUzNyw3ICs1MzcsNyBAQAorQEAgLTU0Niw3 ICs1NDYsNyBAQAogICAgLyogT2Zmc2V0IG9mIG5leHQgc3RhY2sgYXJndW1lbnQgYmV5b25kIHRo ZSBvbmUgd2UgaGF2ZSBzZWVuIHRoYXQgaXMKICAgICAgIGF0IHRoZSBoaWdoZXN0IG9mZnNldCwg b3IgLTEgaWYgd2UgaGF2ZW4ndCBjb21lIHRvIGEgc3RhY2sKICAgICAgIGFyZ3VtZW50IHlldC4g ICovCkBAIC0yNzc1LDggKzI2NjYsOCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3N0YWNrLmMKICsgIExPTkdFU1QgaGlnaGVzdF9vZmZzZXQgPSAtMTsKICAgIC8qIE51bWJlciBv ZiBpbnRzIG9mIGFyZ3VtZW50cyB0aGF0IHdlIGhhdmUgcHJpbnRlZCBzbyBmYXIuICAqLwogICAg aW50IGFyZ3NfcHJpbnRlZCA9IDA7Ci0gICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWluOwotQEAg LTU3MSw4ICs1NzEsOCBAQAorICAgLyogVHJ1ZSBpZiB3ZSBzaG91bGQgcHJpbnQgYXJndW1lbnRz LCBmYWxzZSBvdGhlcndpc2UuICAqLworQEAgLTU3NSw4ICs1NzUsOCBAQAogIAkgICAgY2FzZSBM T0NfQVJHOgogIAkgICAgY2FzZSBMT0NfUkVGX0FSRzoKICAJICAgICAgewpAQCAtMjc4Nyw3ICsy Njc4LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zdGFjay5jCiAgCiAgCQkv KiBDb21wdXRlIGFkZHJlc3Mgb2YgbmV4dCBhcmd1bWVudCBieSBhZGRpbmcgdGhlIHNpemUgb2YK ICAJCSAgIHRoaXMgYXJndW1lbnQgYW5kIHJvdW5kaW5nIHRvIGFuIGludCBib3VuZGFyeS4gICov Ci1AQCAtNzA3LDcgKzcwNyw3IEBACitAQCAtNzExLDcgKzcxMSw3IEBACiAgICAgICBlbm91Z2gg YWJvdXQgdGhlIHN0YWNrIHRvIGZpbmQgdGhlbS4gICovCiAgICBpZiAobnVtICE9IC0xKQogICAg ICB7CkBAIC0yNzk2LDExICsyNjg3LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvc3RhY2suYwogIAogICAgICAgIGlmIChoaWdoZXN0X29mZnNldCA9PSAtMSkKICAJc3RhcnQg PSBnZGJhcmNoX2ZyYW1lX2FyZ3Nfc2tpcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSk7Ci1JbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N5bW1pc2MuYworSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjI2L2dkYi9zeW1taXNjLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9zeW1taXNjLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDc1MTA1NTIgKzAy MDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3ltbWlzYy5jCTIwMTYtMDctMTYgMTQ6 MzM6NDQuNTQ2NTMwMTgxICswMjAwCi1AQCAtNTM4LDExICs1MzgsMTEgQEAKKy0tLSBnZGItNy4x Mi41MC4yMDE3MDIyNi5vcmlnL2dkYi9zeW1taXNjLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3 MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvc3ltbWlzYy5jCTIwMTct MDItMjYgMjI6MDQ6MDMuNDQ1NjA5OTg3ICswMTAwCitAQCAtNjA0LDExICs2MDQsMTEgQEAKICAK ICAJY2FzZSBMT0NfQ09OU1RfQllURVM6CiAgCSAgewpAQCAtMjgxNSwxMSArMjcwNiwxMSBAQCBJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N5bW1pc2MuYwogIAkgICAgZm9yIChpID0g MDsgaSA8IFRZUEVfTEVOR1RIICh0eXBlKTsgaSsrKQogIAkgICAgICBmcHJpbnRmX2ZpbHRlcmVk IChvdXRmaWxlLCAiICUwMngiLAogIAkJCQkodW5zaWduZWQpIFNZTUJPTF9WQUxVRV9CWVRFUyAo c3ltYm9sKVtpXSk7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC5jCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3RhcmdldC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGFyZ2V0LmMJMjAxNi0wNy0xNiAxNDozMzo0 Mi4xMDg1MTA1NjAgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LmMJ MjAxNi0wNy0xNiAxNDozMzo0NC41NDY1MzAxODEgKzAyMDAKLUBAIC01Niw3ICs1Niw3IEBACist LS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvdGFyZ2V0LmMJMjAxNy0wMi0yNiAyMTo1 OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvdGFyZ2V0 LmMJMjAxNy0wMi0yNiAyMjowNDowMy40NDY2MDk5OTQgKzAxMDAKK0BAIC01Nyw3ICs1Nyw3IEBA CiAgCQkJCQkJIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOwogIAogIHN0YXRpYyBpbnQgZGVm YXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBA IC0yODI4LDcgKzI3MTksNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rhcmdl dC5jCiAgCiAgc3RhdGljIHZvaWQgZGVmYXVsdF9yY21kIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLCBj b25zdCBjaGFyICosIHN0cnVjdCB1aV9maWxlICopOwogIAotQEAgLTMxOTYsNyArMzE5Niw3IEBA CitAQCAtMzIyOCw3ICszMjI4LDcgQEAKICAKICBzdGF0aWMgaW50CiAgZGVmYXVsdF9yZWdpb25f b2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMjgzNywx MSArMjcyOCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC5jCiAg ewogICAgcmV0dXJuIChsZW4gPD0gZ2RiYXJjaF9wdHJfYml0ICh0YXJnZXRfZ2RiYXJjaCAoKSkg LyBUQVJHRVRfQ0hBUl9CSVQpOwogIH0KLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGFyZ2V0LmgKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvdGFyZ2V0LmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90YXJnZXQuaAkyMDE2LTA3 LTE2IDE0OjMzOjQyLjEwOTUxMDU2OCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90YXJnZXQuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0NzUzMDE4OSArMDIwMAotQEAgLTU1MSw3 ICs1NTEsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3RhcmdldC5oCTIw MTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAy MjYvZ2RiL3RhcmdldC5oCTIwMTctMDItMjYgMjI6MDQ6MDMuNDQ3NjEwMDAxICswMTAwCitAQCAt NTU1LDcgKzU1NSw3IEBACiAgICAgIC8qIERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5lIGlz IHByb3ZpZGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKICAgICAgICAgdGFyZ2V0XyogbWFjcm8u ICAqLwogICAgICBpbnQgKCp0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpIChzdHJ1Y3Qg dGFyZ2V0X29wcyAqLApAQCAtMjg1MCw4MCArMjc0MSw4MCBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3RhcmdldC5oCiAgICAgICAgVEFSR0VUX0RFRkFVTFRfRlVOQyAoZGVmYXVs dF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOwogIAogICAgICBpbnQgKCp0b19jYW5fYWNj ZWxfd2F0Y2hwb2ludF9jb25kaXRpb24pIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLAotSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90cmFjZXBvaW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4y MDE3MDIyNi9nZGIvdHJhY2Vwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvdHJhY2Vwb2ludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTEyNTEwNTky ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RyYWNlcG9pbnQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjU0NzUzMDE4OSArMDIwMAotQEAgLTkzMCwxMyArOTMwLDEzIEBACi0gc3Rh dGljIHZvaWQKLSBhZGRfbWVtcmFuZ2UgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKm1lbXJhbmdl cywgCi0gCSAgICAgIGludCB0eXBlLCBiZmRfc2lnbmVkX3ZtYSBiYXNlLAotLQkgICAgICB1bnNp Z25lZCBsb25nIGxlbikKLSsJICAgICAgVUxPTkdFU1QgbGVuKQorLS0tIGdkYi03LjEyLjUwLjIw MTcwMjI2Lm9yaWcvZ2RiL3RyYWNlcG9pbnQuYwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2 OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi90cmFjZXBvaW50LmMJMjAxNy0w Mi0yNiAyMjowNDowMy40NDg2MTAwMDggKzAxMDAKK0BAIC05MDgsMTAgKzkwOCwxMCBAQAorIHZv aWQKKyBjb2xsZWN0aW9uX2xpc3Q6OmFkZF9tZW1yYW5nZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsCisgCQkJICAgICAgIGludCB0eXBlLCBiZmRfc2lnbmVkX3ZtYSBiYXNlLAorLQkJCSAgICAg ICB1bnNpZ25lZCBsb25nIGxlbikKKysJCQkgICAgICAgVUxPTkdFU1QgbGVuKQogIHsKICAgIGlm IChpbmZvX3ZlcmJvc2UpCi0gICAgIHsKLSAgICAgICBwcmludGZfZmlsdGVyZWQgKCIoJWQsIiwg dHlwZSk7Ci0gICAgICAgcHJpbnRmX3ZtYSAoYmFzZSk7Ci0tICAgICAgcHJpbnRmX2ZpbHRlcmVk ICgiLCVsZClcbiIsIGxlbik7Ci0rICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiLCVzKVxuIiwgcHVs b25nZXN0IChsZW4pKTsKLSAgICAgfQorLSAgICBwcmludGZfZmlsdGVyZWQgKCIoJWQsJXMsJWxk KVxuIiwgdHlwZSwgcGFkZHJlc3MgKGdkYmFyY2gsIGJhc2UpLCBsZW4pOworKyAgICBwcmludGZf ZmlsdGVyZWQgKCIoJWQsJXMsJXMpXG4iLCB0eXBlLCBwYWRkcmVzcyAoZ2RiYXJjaCwgYmFzZSks IHB1bG9uZ2VzdCAobGVuKSk7CiAgCiAgICAvKiB0eXBlOiBtZW1yYW5nZV9hYnNvbHV0ZSA9PSBt ZW1vcnksIG90aGVyIG4gPT0gYmFzZXJlZyAqLwotQEAgLTk2Niw3ICs5NjYsNyBAQAotIAkJQ09S RV9BRERSIHNjb3BlLAotIAkJaW50IHRyYWNlX3N0cmluZykKKyAgIC8qIGJhc2U6IGFkZHIgaWYg bWVtb3J5LCBvZmZzZXQgaWYgcmVnIHJlbGF0aXZlLiAgKi8KK0BAIC05MzEsNyArOTMxLDcgQEAK KyAJCQkJIENPUkVfQUREUiBzY29wZSwKKyAJCQkJIGludCB0cmFjZV9zdHJpbmcpCiAgewogLSAg dW5zaWduZWQgbG9uZyBsZW47CiArICBVTE9OR0VTVCBsZW47CiAgICB1bnNpZ25lZCBpbnQgcmVn OwogICAgYmZkX3NpZ25lZF92bWEgb2Zmc2V0OwogICAgaW50IHRyZWF0X2FzX2V4cHIgPSAwOwot QEAgLTk5MCw4ICs5OTAsOCBAQAotIAkgIGNoYXIgdG1wWzQwXTsKLSAKLSAJICBzcHJpbnRmX3Zt YSAodG1wLCBvZmZzZXQpOworQEAgLTk1Miw4ICs5NTIsOCBAQAorICAgICAgIG9mZnNldCA9IFNZ TUJPTF9WQUxVRV9BRERSRVNTIChzeW0pOworICAgICAgIGlmIChpbmZvX3ZlcmJvc2UpCisgCXsK IC0JICBwcmludGZfZmlsdGVyZWQgKCJMT0NfU1RBVElDICVzOiBjb2xsZWN0ICVsZCBieXRlcyBh dCAlcy5cbiIsCiAtCQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIGxlbiwKICsJICBwcmlu dGZfZmlsdGVyZWQgKCJMT0NfU1RBVElDICVzOiBjb2xsZWN0ICVzIGJ5dGVzIGF0ICVzLlxuIiwK ICsJCQkgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgcHVsb25nZXN0IChsZW4pLAotIAkJCSAg IHRtcCAvKiBhZGRyZXNzICovKTsKKyAJCQkgICBwYWRkcmVzcyAoZ2RiYXJjaCwgb2Zmc2V0KSk7 CiAgCX0KICAgICAgICAvKiBBIHN0cnVjdCBtYXkgYmUgYSBDKysgY2xhc3Mgd2l0aCBzdGF0aWMg ZmllbGRzLCBnbyB0byBnZW5lcmFsCi1AQCAtMTAyMyw4ICsxMDIzLDggQEAKK0BAIC05ODUsOSAr OTg1LDkgQEAKICAgICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFMVUUgKHN5 bSk7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewotLQkgIHByaW50Zl9maWx0ZXJlZCAo IkxPQ19MT0NBTCAlczogQ29sbGVjdCAlbGQgYnl0ZXMgYXQgb2Zmc2V0ICIsCi0tCQkJICAgU1lN Qk9MX1BSSU5UX05BTUUgKHN5bSksIGxlbik7Ci0rCSAgcHJpbnRmX2ZpbHRlcmVkICgiTE9DX0xP Q0FMICVzOiBDb2xsZWN0ICVzIGJ5dGVzIGF0IG9mZnNldCAiLAotKwkJCSAgIFNZTUJPTF9QUklO VF9OQU1FIChzeW0pLCBwdWxvbmdlc3QgKGxlbikpOwotIAkgIHByaW50Zl92bWEgKG9mZnNldCk7 Ci0gCSAgcHJpbnRmX2ZpbHRlcmVkICgiIGZyb20gZnJhbWUgcHRyIHJlZyAlZFxuIiwgcmVnKTsK Ky0JICBwcmludGZfZmlsdGVyZWQgKCJMT0NfTE9DQUwgJXM6IENvbGxlY3QgJWxkIGJ5dGVzIGF0 IG9mZnNldCAlcyIKKysJICBwcmludGZfZmlsdGVyZWQgKCJMT0NfTE9DQUwgJXM6IENvbGxlY3Qg JXMgYnl0ZXMgYXQgb2Zmc2V0ICVzIgorIAkJCSAgICIgZnJvbSBmcmFtZSBwdHIgcmVnICVkXG4i LAorLQkJCSAgIFNZTUJPTF9QUklOVF9OQU1FIChzeW0pLCBsZW4sCisrCQkJICAgU1lNQk9MX1BS SU5UX05BTUUgKHN5bSksIHB1bG9uZ2VzdCAobGVuKSwKKyAJCQkgICBwYWRkcmVzcyAoZ2RiYXJj aCwgb2Zmc2V0KSwgcmVnKTsKICAJfQotQEAgLTEwMzUsOCArMTAzNSw4IEBACisgICAgICAgYWRk X21lbXJhbmdlIChnZGJhcmNoLCByZWcsIG9mZnNldCwgbGVuKTsKK0BAIC05OTcsOSArOTk3LDkg QEAKICAgICAgICBvZmZzZXQgPSAwOwogICAgICAgIGlmIChpbmZvX3ZlcmJvc2UpCiAgCXsKLS0J ICBwcmludGZfZmlsdGVyZWQgKCJMT0NfUkVHUEFSTV9BRERSICVzOiBDb2xsZWN0ICVsZCBieXRl cyBhdCBvZmZzZXQgIiwKLS0JCQkgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgbGVuKTsKLSsJ ICBwcmludGZfZmlsdGVyZWQgKCJMT0NfUkVHUEFSTV9BRERSICVzOiBDb2xsZWN0ICVzIGJ5dGVz IGF0IG9mZnNldCAiLAotKwkJCSAgIFNZTUJPTF9QUklOVF9OQU1FIChzeW0pLCBwdWxvbmdlc3Qg KGxlbikpOwotIAkgIHByaW50Zl92bWEgKG9mZnNldCk7Ci0gCSAgcHJpbnRmX2ZpbHRlcmVkICgi IGZyb20gcmVnICVkXG4iLCByZWcpOworLQkgIHByaW50Zl9maWx0ZXJlZCAoIkxPQ19SRUdQQVJN X0FERFIgJXM6IENvbGxlY3QgJWxkIGJ5dGVzIGF0IG9mZnNldCAlcyIKKysJICBwcmludGZfZmls dGVyZWQgKCJMT0NfUkVHUEFSTV9BRERSICVzOiBDb2xsZWN0ICVzIGJ5dGVzIGF0IG9mZnNldCAl cyIKKyAJCQkgICAiIGZyb20gcmVnICVkXG4iLAorLQkJCSAgIFNZTUJPTF9QUklOVF9OQU1FIChz eW0pLCBsZW4sCisrCQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIHB1bG9uZ2VzdCAobGVu KSwKKyAJCQkgICBwYWRkcmVzcyAoZ2RiYXJjaCwgb2Zmc2V0KSwgcmVnKTsKICAJfQotQEAgLTEw NDcsOCArMTA0Nyw4IEBACisgICAgICAgYWRkX21lbXJhbmdlIChnZGJhcmNoLCByZWcsIG9mZnNl dCwgbGVuKTsKK0BAIC0xMDA5LDkgKzEwMDksOSBAQAogICAgICAgIG9mZnNldCA9IGZyYW1lX29m ZnNldCArIFNZTUJPTF9WQUxVRSAoc3ltKTsKICAgICAgICBpZiAoaW5mb192ZXJib3NlKQogIAl7 Ci0tCSAgcHJpbnRmX2ZpbHRlcmVkICgiTE9DX0xPQ0FMICVzOiBDb2xsZWN0ICVsZCBieXRlcyBh dCBvZmZzZXQgIiwKLS0JCQkgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgbGVuKTsKLSsJICBw cmludGZfZmlsdGVyZWQgKCJMT0NfTE9DQUwgJXM6IENvbGxlY3QgJXMgYnl0ZXMgYXQgb2Zmc2V0 ICIsCi0rCQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIHB1bG9uZ2VzdCAobGVuKSk7Ci0g CSAgcHJpbnRmX3ZtYSAob2Zmc2V0KTsKLSAJICBwcmludGZfZmlsdGVyZWQgKCIgZnJvbSBmcmFt ZSBwdHIgcmVnICVkXG4iLCByZWcpOworLQkgIHByaW50Zl9maWx0ZXJlZCAoIkxPQ19MT0NBTCAl czogQ29sbGVjdCAlbGQgYnl0ZXMgYXQgb2Zmc2V0ICVzIgorKwkgIHByaW50Zl9maWx0ZXJlZCAo IkxPQ19MT0NBTCAlczogQ29sbGVjdCAlcyBieXRlcyBhdCBvZmZzZXQgJXMiCisgCQkJICAgIiBm cm9tIGZyYW1lIHB0ciByZWcgJWRcbiIsCistCQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSks IGxlbiwKKysJCQkgICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgcHVsb25nZXN0IChsZW4pLAor IAkJCSAgIHBhZGRyZXNzIChnZGJhcmNoLCBvZmZzZXQpLCByZWcpOwogIAl9Ci1AQCAtMjcwMyw3 ICsyNzAzLDggQEAKKyAgICAgICBhZGRfbWVtcmFuZ2UgKGdkYmFyY2gsIHJlZywgb2Zmc2V0LCBs ZW4pOworQEAgLTI1ODMsNyArMjU4Myw4IEBACiAgICBjb25zdCBjaGFyICpzeW1uYW1lOwogICAg Y2hhciAqc2F2ZV9hcmdzID0gYXJnczsKICAgIHN0cnVjdCBibG9ja19pdGVyYXRvciBpdGVyOwpA QCAtMjkzMyw3ICsyODI0LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90cmFj ZXBvaW50LmMKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOwogICAgaW50IHJlZ25vOwogICAg c3RydWN0IGV2ZW50X2xvY2F0aW9uICpsb2NhdGlvbjsKLUBAIC0yODQ3LDggKzI4NDgsMTEgQEAK K0BAIC0yNzI3LDggKzI3MjgsMTEgQEAKICAJCX0KICAJICAgIH0KICAJICBpZiAoU1lNQk9MX1RZ UEUgKHN5bSkpCkBAIC0yOTQ3LDEwICsyODM4LDEwIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdHJhY2Vwb2ludC5jCiAgCX0KICAgICAgICBpZiAoQkxPQ0tfRlVOQ1RJT04gKGJs b2NrKSkKICAJYnJlYWs7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbGFyaXRo LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvdmFsYXJpdGguYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNi0wNy0x NiAxNDozMzo0Mi4xMTQ1MTA2MDggKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dmFsYXJpdGguYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0ODUzMDE5NyArMDIwMAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4w NDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvdmFsYXJpdGguYwky MDE3LTAyLTI2IDIyOjA0OjAzLjQ0ODYxMDAwOCArMDEwMAogQEAgLTE4OCw3ICsxODgsNyBAQAog ICAgIHRvIGRvdWJsZXMsIGJ1dCBubyBsb25nZXIgZG9lcy4gICovCiAgCkBAIC0yOTYwLDcgKzI4 NTEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbGFyaXRoLmMKICB7CiAg ICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFy cmF5KSk7CiAgICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RB UkdFVF9UWVBFIChhcnJheV90eXBlKSk7Ci1AQCAtNjc0LDcgKzY3NCw3IEBACitAQCAtNjY1LDcg KzY2NSw3IEBACiAgICBzdHJ1Y3QgdmFsdWUgKmludmFsMTsKICAgIHN0cnVjdCB2YWx1ZSAqaW52 YWwyOwogICAgc3RydWN0IHZhbHVlICpvdXR2YWwgPSBOVUxMOwpAQCAtMjk2OSw3ICsyODYwLDcg QEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxhcml0aC5jCiAgICBpbnQgY291 bnQsIGlkeDsKICAgIGNoYXIgKnB0cjsKICAgIGNoYXIgaW5jaGFyOwotQEAgLTE1MjcsNyArMTUy Nyw3IEBACitAQCAtMTUxOCw3ICsxNTE4LDcgQEAKICBpbnQKICB2YWx1ZV9sb2dpY2FsX25vdCAo c3RydWN0IHZhbHVlICphcmcxKQogIHsKQEAgLTI5NzgsNyArMjg2OSw3IEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdmFsYXJpdGguYwogICAgY29uc3QgZ2RiX2J5dGUgKnA7CiAg ICBzdHJ1Y3QgdHlwZSAqdHlwZTE7CiAgCi1AQCAtMTU1OCwxMSArMTU1OCwxMSBAQAorQEAgLTE1 NDksMTEgKzE1NDksMTEgQEAKICBzdGF0aWMgaW50CiAgdmFsdWVfc3RyY21wIChzdHJ1Y3QgdmFs dWUgKmFyZzEsIHN0cnVjdCB2YWx1ZSAqYXJnMikKICB7CkBAIC0yOTkzLDEwICsyODg0LDEwIEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFsYXJpdGguYwogIAogICAgZm9yIChp ID0gMDsgaSA8IGxlbjsgaSsrKQogICAgICB7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3ZhbG9wcy5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3ZhbG9wcy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdmFsb3BzLmMJMjAx Ni0wNy0xNiAxNDozMzo0Mi4xMTc1MTA2MzIgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdmFsb3BzLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDg1MzAxOTcgKzAyMDAKKy0tLSBn ZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi92YWxvcHMuYwkyMDE3LTAyLTI2IDIxOjU5OjM2 LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi92YWxvcHMuYwky MDE3LTAyLTI2IDIyOjA0OjAzLjQ0OTYxMDAxNSArMDEwMAogQEAgLTc5LDcgKzc5LDcgQEAKICAJ CQkJCSAgIGludCwgaW50KTsKICAKQEAgLTMwMzksNyArMjkzMCw3IEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdmFsb3BzLmMKICAgICAgICAgIGdkYl9ieXRlIGJ1ZmZlcltzaXpl b2YgKExPTkdFU1QpXTsKICAKICAJaWYgKHZhbHVlX2JpdHNpemUgKHRvdmFsKSkKLUBAIC0zMzI4 LDcgKzMzMjgsNyBAQAorQEAgLTMzMzUsNyArMzMzNSw3IEBACiAgICAgdGhlIGZvcm0gIkRPTUFJ Tjo6TkFNRSIuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtMzA0OCw3ICsyOTM5 LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxvcHMuYwogIAkJCQlzdHJ1 Y3QgdHlwZSAqY3VydHlwZSwgY29uc3QgY2hhciAqbmFtZSwKICAJCQkJc3RydWN0IHR5cGUgKmlu dHlwZSwgCiAgCQkJCWludCB3YW50X2FkZHJlc3MsCi1AQCAtMzM2Miw3ICszMzYyLDcgQEAKK0BA IC0zMzY5LDcgKzMzNjksNyBAQAogIAkgIGlmICh3YW50X2FkZHJlc3MpCiAgCSAgICByZXR1cm4g dmFsdWVfZnJvbV9sb25nZXN0CiAgCSAgICAgIChsb29rdXBfbWVtYmVycHRyX3R5cGUgKFRZUEVf RklFTERfVFlQRSAodCwgaSksIGRvbWFpbiksCkBAIC0zMDU3LDcgKzI5NDgsNyBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbG9wcy5jCiAgCSAgZWxzZSBpZiAobm9zaWRlICE9 IEVWQUxfTk9STUFMKQogIAkgICAgcmV0dXJuIGFsbG9jYXRlX3ZhbHVlIChUWVBFX0ZJRUxEX1RZ UEUgKHQsIGkpKTsKICAJICBlbHNlCi1AQCAtMzUzMCw3ICszNTMwLDcgQEAKK0BAIC0zNTM3LDcg KzM1MzcsNyBAQAogICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0KSAtIDE7IGkgPj0g MDsgaS0tKQogICAgICB7CiAgICAgICAgc3RydWN0IHZhbHVlICp2OwpAQCAtMzA2Niw3ICsyOTU3 LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxvcHMuYwogIAogICAgICAg IGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodCwgaSkpCiAgCWJhc2Vfb2Zmc2V0ID0gMDsKLUBA IC0zNjc5LDcgKzM2NzksNyBAQAorQEAgLTM2ODYsNyArMzY4Niw3IEBACiAgc3RydWN0IHZhbHVl ICoKICB2YWx1ZV9mdWxsX29iamVjdCAoc3RydWN0IHZhbHVlICphcmdwLCAKICAJCSAgIHN0cnVj dCB0eXBlICpydHlwZSwgCkBAIC0zMDc1LDIwICsyOTY2LDIwIEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdmFsb3BzLmMKICAJCSAgIGludCB4dXNpbmdfZW5jKQogIHsKICAgIHN0 cnVjdCB0eXBlICpyZWFsX3R5cGU7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Zh bHByaW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvdmFscHJpbnQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbHByaW50LmMJMjAx Ni0wNy0xNiAxNDozMzo0Mi4xMTg1MTA2NDAgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0OTUzMDIwNSArMDIwMAotQEAg LTkwNyw3ICs5MDcsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3ZhbHBy aW50LmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41 MC4yMDE3MDIyNi9nZGIvdmFscHJpbnQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1MDYxMDAyMiAr MDEwMAorQEAgLTkzMyw3ICs5MzMsNyBAQAogIAogIHZvaWQKLSBnZW5lcmljX3ZhbF9wcmludCAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorIGdlbmVyaWNfdmFs X3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwKIC0JCSAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENP UkVfQUREUiBhZGRyZXNzLAogKwkJICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQURE UiBhZGRyZXNzLAogIAkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0g CQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAorIAkJICAgc3RydWN0IHZh bHVlICpvcmlnaW5hbF92YWx1ZSwKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAotQEAgLTE4NDIsNyArMTg0Miw3IEBACitAQCAtMTg2OSw3ICsxODY5LDcg QEAKICAKICB2b2lkCiAgcHJpbnRfaGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTMwOTcsOSArMjk4OCw5IEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdmFscHJpbnQuYwogIHsKICAgIGNvbnN0IGdkYl9ieXRlICpw OwogIAotQEAgLTE5NjQsMTcgKzE5NjQsMTcgQEAKK0BAIC0xOTkxLDE3ICsxOTkxLDE3IEBACiAg CQkJICBpbnQgcmVjdXJzZSwKLSAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJCSAg c3RydWN0IHZhbHVlICp2YWwsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucywKIC0JCQkgIHVuc2lnbmVkIGludCBpKQogKwkJCSAgVUxPTkdFU1QgaSkKQEAg LTMxMjAsNyArMzAxMSw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFscHJp bnQuYwogICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CiAgICBMT05HRVNUIGxvd19w b3MsIGhpZ2hfcG9zOwogIAotQEAgLTIwNjQsNyArMjA2NCw3IEBACitAQCAtMjA5MSw3ICsyMDkx LDcgQEAKICAJCSAgICAgYWRkcmVzcywgc3RyZWFtLCByZWN1cnNlICsgMSwgdmFsLCBvcHRpb25z LAogIAkJICAgICBjdXJyZW50X2xhbmd1YWdlKTsKICAJICBhbm5vdGF0ZV9lbHRfcmVwIChyZXBz KTsKQEAgLTMxMjksNyArMzAyMCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dmFscHJpbnQuYwogIAkgIGFubm90YXRlX2VsdF9yZXBfZW5kICgpOwogIAogIAkgIGkgPSByZXAx IC0gMTsKLUBAIC0yNzIwLDcgKzI3MjAsNyBAQAorQEAgLTI3NDMsNyArMjc0Myw3IEBACiAgCiAg dm9pZAogIGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0 eXBlICp0eXBlLCAKQEAgLTMxMzgsMTMgKzMwMjksMTMgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi92YWxwcmludC5jCiAgCQkgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9y Y2VfZWxsaXBzZXMsCiAgCQkgIGludCBxdW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9y LAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFscHJpbnQuaAorSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjI2L2dkYi92YWxwcmludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjExODUxMDY0MCAr MDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxwcmludC5oCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTQ5NTMwMjA1ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9n ZGIvdmFscHJpbnQuaAkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjI2L2dkYi92YWxwcmludC5oCTIwMTctMDItMjYgMjI6MDQ6MDMuNDUw NjEwMDIyICswMTAwCiBAQCAtMTE5LDcgKzExOSw3IEBACiAgCQkJCSAgICAgIENPUkVfQUREUiwg c3RydWN0IHVpX2ZpbGUgKiwgaW50LAotIAkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwK KyAJCQkJICAgICAgc3RydWN0IHZhbHVlICosCiAgCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICosCiAtCQkJCSAgICAgIHVuc2lnbmVkIGludCk7CiArCQkJCSAgICAg IFVMT05HRVNUKTsKQEAgLTMxNjMsMTEgKzMwNTQsMTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi92YWxwcmludC5oCiBAQCAtMTk0LDcgKzE5NCw3IEBACiAgCiAgCi0gZXh0ZXJu IHZvaWQgZ2VuZXJpY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwKKyBleHRlcm4gdm9pZCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUg KnR5cGUsCiAtCQkJICAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNz LAogKwkJCSAgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3Ms CiAgCQkJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkJCSAg ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAorIAkJCSAgICAgICBzdHJ1 Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKIEBAIC0yMDQsNyArMjA0LDcgQEAKICAJCQkgICAgICAg aW50IHF1b3RlciwgY29uc3QgY2hhciAqZW5jb2RpbmcpOwpAQCAtMzE3OCwxMSArMzA2OSwxMSBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHByaW50LmgKICAJCQkgICAgICBj b25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJCSAgICAgIGludCBx dW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJCSAgICAgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdmFsdWUuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi92YWx1ZS5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdmFsdWUuYwky MDE2LTA3LTE2IDE0OjMzOjQyLjExOTUxMDY0OCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi92YWx1ZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ5NTMwMjA1ICswMjAwCi1AQCAt MzY2LDcgKzM2Niw4IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvdmFsdWUu YwkyMDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjI2L2dkYi92YWx1ZS5jCTIwMTctMDItMjYgMjI6MDQ6MDMuNDUxNjEwMDI5ICswMTAwCitA QCAtMzY3LDcgKzM2Nyw4IEBACiAgfQogIAogIGludApAQCAtMzE5Miw3ICszMDgzLDcgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5jCiAgewogICAgZ2RiX2Fzc2VydCAo IXZhbHVlLT5sYXp5KTsKICAKLUBAIC04MTIsOSArODEzLDkgQEAKK0BAIC04MTMsOSArODE0LDkg QEAKICAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgYXZhaWxhYmxlIGJpdHMgbWF0Y2guICAqLwogIAog IHN0YXRpYyBpbnQKQEAgLTMyMTUsMTAgKzMxMDYsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi92YWx1ZS5jCiAgewogICAgbWFya192YWx1ZV9iaXRzX29wdGltaXplZF9vdXQg KHZhbHVlLAogIAkJCQkgb2Zmc2V0ICogVEFSR0VUX0NIQVJfQklULAotSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5oCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2Ri L3ZhbHVlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92 YWx1ZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIwNTEwNjU2ICswMjAwCi0rKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3ZhbHVlLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NTA1MzAyMTMgKzAy MDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi92YWx1ZS5oCTIwMTctMDItMjYg MjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3Zh bHVlLmgJMjAxNy0wMi0yNiAyMjowNDowMy40NTE2MTAwMjkgKzAxMDAKIEBAIC0yNDYsNyArMjQ2 LDcgQEAKICAgIC8qIElmIG5vbi1OVUxMLCB0aGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRo ZXIgdGhlIGluZGljYXRlZCBiaXRzCiAgICAgICBvZiBWQUxVRSBhcmUgYSBzeW50aGV0aWMgcG9p bnRlci4gICovCkBAIC0zMjQ3LDcgKzMxMzgsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3ZhbHVlLmgKICAKICAvKiBNYXJrIFZBTFVFJ3MgY29udGVudCBiaXRzIHN0YXJ0aW5n IGF0IE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvcgogICAgIExFTkdUSCBiaXRzIGFzIG9wdGltaXpl ZCBvdXQuICAqLwotQEAgLTc3MSwxMiArNzcyLDExIEBACitAQCAtODIwLDEyICs4MjEsMTEgQEAK ICAJCQkJCSAgICBpbnQgZmllbGRubywKICAJCQkJCSAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUp OwogIApAQCAtMzI2MSw3ICszMTUyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi92YWx1ZS5oCiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfY2FzdF9wb2ludGVycyAo c3RydWN0IHR5cGUgKiwgc3RydWN0IHZhbHVlICosIGludCk7CiAgCi1AQCAtMTA2NSwxMCArMTA2 NSwxMSBAQAorQEAgLTExMTQsMTAgKzExMTQsMTEgQEAKICBleHRlcm4gc3RydWN0IHZhbHVlICpm aW5kX2Z1bmN0aW9uX2luX2luZmVyaW9yIChjb25zdCBjaGFyICosCiAgCQkJCQkJc3RydWN0IG9i amZpbGUgKiopOwogIApAQCAtMzI3NSwxMSArMzE2NiwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3ZhbHVlLmgKICAKICAvKiBVc2VyIGZ1bmN0aW9uIGhhbmRsZXIuICAqLwog IAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zMzkwLWxpbnV4LW5hdC5jCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3MzOTAtbGludXgtbmF0LmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTYt MDctMTYgMTQ6MzM6NDIuMTIwNTEwNjU2ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3MzOTAtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NTA1MzAyMTMgKzAyMDAK LUBAIC02MTIsNyArNjEyLDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi9z MzkwLWxpbnV4LW5hdC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysg Z2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3MzOTAtbGludXgtbmF0LmMJMjAxNy0wMi0yNiAyMjow NDowMy40NTE2MTAwMjkgKzAxMDAKK0BAIC04OTksNyArODk5LDcgQEAKICAKICBzdGF0aWMgaW50 CiAgczM5MF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpz ZWxmLApAQCAtMzI4OCwxMSArMzE3OSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3MzOTAtbGludXgtbmF0LmMKICB7CiAgICByZXR1cm4gMTsKICB9Ci1JbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYworSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjI2L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNi0wNy0xNiAxNDoz Mzo0Mi4xMjE1MTA2NjQgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0 LWRlbGVnYXRlcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUwNTMwMjEzICswMjAwCi1AQCAtNzM2 LDE0ICs3MzYsMTQgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5vcmlnL2dkYi90YXJnZXQt ZGVsZWdhdGVzLmMJMjAxNy0wMi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIyNi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTctMDItMjYgMjI6MDQ6 MDMuNDUyNjEwMDM2ICswMTAwCitAQCAtNzYwLDE0ICs3NjAsMTQgQEAKICB9CiAgCiAgc3RhdGlj IGludApAQCAtMzMwOSw3ICszMjAwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90YXJnZXQtZGVsZWdhdGVzLmMKICB7CiAgICBpbnQgcmVzdWx0OwogICAgZnByaW50Zl91bmZp bHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2lu dCAoLi4uKVxuIiwgZGVidWdfdGFyZ2V0LnRvX3Nob3J0bmFtZSk7Ci1AQCAtNzUzLDcgKzc1Myw3 IEBACitAQCAtNzc3LDcgKzc3Nyw3IEBACiAgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJf c3RkbG9nKTsKICAgIHRhcmdldF9kZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzEpOwogICAgZnB1 dHNfdW5maWx0ZXJlZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7CkBAIC0zMzE4LDExICszMjA5LDExIEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgICBm cHV0c191bmZpbHRlcmVkICgiKSA9ICIsIGdkYl9zdGRsb2cpOwogICAgdGFyZ2V0X2RlYnVnX3By aW50X2ludCAocmVzdWx0KTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCJcbiIsIGdkYl9zdGRsb2cp OwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5h dC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCi0rKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NTE1 MzAyMjEgKzAyMDAKLUBAIC03MzYsNyArNzM2LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIy Ni5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5 MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2FhcmNoNjQtbGludXgtbmF0 LmMJMjAxNy0wMi0yNiAyMjowNDowMy40NTI2MTAwMzYgKzAxMDAKK0BAIC03MDgsNyArNzA4LDcg QEAKICAKICBzdGF0aWMgaW50CiAgYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNo cG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMzMzMSwxMCArMzIyMiwxMCBAQCBJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKICB7CiAg ICByZXR1cm4gYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKGFkZHIsIGxl bik7CiAgfQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9uYXQveDg2LWRyZWdzLmMK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvbmF0L3g4Ni1kcmVncy5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5jCTIw MTYtMDctMTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1MTUzMDIyMSArMDIw MAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE3 LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2 L2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNy0wMi0yNiAyMjowNDowMy40NTM2MTAwNDMgKzAxMDAK IEBAIC0zODQsNyArMzg0LDcgQEAKICAKICBzdGF0aWMgaW50CkBAIC0zMzUzLDExICszMjQ0LDEx IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbmF0L3g4Ni1kcmVncy5jCiAgewog ICAgaW50IG5yZWdzOwogIAotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jb21waWxl L2NvbXBpbGUtYy1zdXBwb3J0LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvY29t cGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMTIyNTEwNjcyICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NvbXBp bGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1MTUzMDIyMSArMDIw MAotQEAgLTI5OSwxMSArMjk5LDExIEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9n ZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5 MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2NvbXBpbGUvY29tcGlsZS1j LXN1cHBvcnQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1MzYxMDA0MyArMDEwMAorQEAgLTMwNywx MSArMzA3LDExIEBACiAgCiAgCSAgICAgIGRlZmF1bHQ6CiAgCQlmcHJpbnRmX3VuZmlsdGVyZWQg KHN0cmVhbSwKQEAgLTMzNzEsMTAgKzMyNjIsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMKICAJICAgICAgfQogIAkgICAgZnB1 dHNfdW5maWx0ZXJlZCAoIjtcbiIsIHN0cmVhbSk7CiAgCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL25hdC94ODYtZHJlZ3MuaAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dk Yi9uYXQveDg2LWRyZWdzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjI1MTA2NzIgKzAy MDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTYtMDct MTYgMTQ6MzM6NDQuNTUxNTMwMjIxICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3Jp Zy9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAw CisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE3LTAyLTI2 IDIyOjA0OjAzLjQ1MzYxMDA0MyArMDEwMAogQEAgLTExNiw3ICsxMTYsNyBAQAogIC8qIFJldHVy biBub24temVybyBpZiB3ZSBjYW4gd2F0Y2ggYSBtZW1vcnkgcmVnaW9uIHRoYXQgc3RhcnRzIGF0 CiAgICAgYWRkcmVzcyBBRERSIGFuZCB3aG9zZSBsZW5ndGggaXMgTEVOIGJ5dGVzLiAgKi8KQEAg LTMzODQsMTAgKzMyNzUsMTAgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9uYXQv eDg2LWRyZWdzLmgKICAKICAvKiBJZiB0aGUgaW5mZXJpb3IgaGFzIHNvbWUgYnJlYWsvd2F0Y2hw b2ludCB0aGF0IHRyaWdnZXJlZCwgc2V0IHRoZQogICAgIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRo IHRoYXQgYnJlYWsvd2F0Y2hwb2ludCBhbmQgcmV0dXJuIHRydWUuCi1JbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3g4Ni1uYXQuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dk Yi94ODYtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dk Yi94ODYtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjM1MTA2ODAgKzAyMDAKLSsrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIveDg2LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUxNTMw MjIxICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIveDg2LW5hdC5jCTIw MTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAy MjYvZ2RiL3g4Ni1uYXQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1MzYxMDA0MyArMDEwMAogQEAg LTE3NCw3ICsxNzQsNyBAQAogIAogIHN0YXRpYyBpbnQKQEAgLTMzOTcsMTEgKzMyODgsMTEgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi94ODYtbmF0LmMKICB7CiAgICBzdHJ1Y3Qg eDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUKICAgICAgPSB4ODZfZGVidWdfcmVnX3N0YXRlIChw dGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvcnVzdC1sYW5nLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvcnVzdC1s YW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9ydXN0 LWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMzUxMDY4MCArMDIwMAotKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9ydXN0LWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1MTUzMDIy MSArMDIwMAotQEAgLTQxMCw3ICs0MTAsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9y aWcvZ2RiL3J1c3QtbGFuZy5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisr KysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3J1c3QtbGFuZy5jCTIwMTctMDItMjYgMjI6MDQ6 MDMuNDU0NjEwMDUwICswMTAwCitAQCAtNDM5LDcgKzQzOSw3IEBACiAgCiAgc3RhdGljIHZvaWQK ICBydXN0X3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlw ZSwKQEAgLTM0MTAsMTIgKzMzMDEsMTMxIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvcnVzdC1sYW5nLmMKICAJICAgICAgIGNvbnN0IGNoYXIgKnVzZXJfZW5jb2RpbmcsIGludCBm b3JjZV9lbGxpcHNlcywKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICpvcHRpb25zKQogIHsKLUBAIC00NTYsNyArNDU2LDcgQEAKK0BAIC01NjMsNyArNTYzLDcgQEAK ICAvKiBsYV92YWxfcHJpbnQgaW1wbGVtZW50YXRpb24gZm9yIFJ1c3QuICAqLwogIAogIHN0YXRp YyB2b2lkCi0tcnVzdF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKLStydXN0X3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29m ZnNldCwKKy1ydXN0X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBlbWJlZGRlZF9v ZmZzZXQsCisrcnVzdF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwKICAJCUNPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBpbnQgcmVjdXJzZSwKLSAJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkJc3RydWN0IHZh bHVlICp2YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYXJjaC11dGlscy5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvYXJjaC11dGlscy5jCTIwMTctMDIt MjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2Ri L2FyY2gtdXRpbHMuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1NDYxMDA1MCArMDEwMAorQEAgLTI0 Nyw3ICsyNDcsNyBAQAorIAorIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqKgorIGRlZmF1bHRf ZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorLQkJCSAgICAg IGNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW4pCisrCQkJICAgICAgY29uc3QgY2hhciAqbmFtZSwg TE9OR0VTVCBsZW4pCisgeworICAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqZm9ybWF0ID0g TlVMTDsKKyAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvYXJjaC11dGlscy5oCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvYXJjaC11dGlscy5o CTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAx NzAyMjYvZ2RiL2FyY2gtdXRpbHMuaAkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1NDYxMDA1MCArMDEw MAorQEAgLTE0NCw3ICsxNDQsNyBAQAorIC8qIERlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgZ2Ri YXJjaF9mbG9hdGZvcm1hdF9mb3JfdHlwZS4gICovCisgZXh0ZXJuIGNvbnN0IHN0cnVjdCBmbG9h dGZvcm1hdCAqKgorICAgZGVmYXVsdF9mbG9hdGZvcm1hdF9mb3JfdHlwZSAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsCistCQkJCWNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW4pOworKwkJCQljb25z dCBjaGFyICpuYW1lLCBMT05HRVNUIGxlbik7CisgCisgZXh0ZXJuIENPUkVfQUREUiBnZW5lcmlj X3NraXBfdHJhbXBvbGluZV9jb2RlIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCisgCQkJCQkg ICAgICAgQ09SRV9BRERSIHBjKTsKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9nZGIvZmlu ZGNtZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvZmlu ZGNtZC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2RiLTcuMTIu NTAuMjAxNzAyMjYvZ2RiL2ZpbmRjbWQuYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1NDYxMDA1MCAr MDEwMAorQEAgLTE4MCw3ICsxODAsNyBAQAorIAkgbmVlZCB0byBncm93IHRoZSBwYXR0ZXJuIGJ1 Zi4gICovCisgICAgICAgcGF0dGVybl9idWZfc2l6ZV9uZWVkID0gKHBhdHRlcm5fYnVmX2VuZCAt IHBhdHRlcm5fYnVmCisgCQkJICAgICAgICsgc3RkOjptYXggKFRZUEVfTEVOR1RIICh0KSwKKy0J CQkJCSAgICh1bnNpZ25lZCkgc2l6ZW9mIChpbnQ2NF90KSkpOworKwkJCQkJICAgKFVMT05HRVNU KSBzaXplb2YgKGludDY0X3QpKSk7CisgICAgICAgaWYgKHBhdHRlcm5fYnVmX3NpemVfbmVlZCA+ IHBhdHRlcm5fYnVmX3NpemUpCisgCXsKKyAJICBzaXplX3QgY3VycmVudF9vZmZzZXQgPSBwYXR0 ZXJuX2J1Zl9lbmQgLSBwYXR0ZXJuX2J1ZjsKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIyNi9n ZGIvZ2RiYXJjaC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9n ZGIvZ2RiYXJjaC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2dkYmFyY2guYwkyMDE3LTAyLTI2IDIyOjA0OjAzLjQ1NTYx MDA1NyArMDEwMAorQEAgLTE3NDAsNyArMTc0MCw3IEBACisgfQorIAorIGNvbnN0IHN0cnVjdCBm bG9hdGZvcm1hdCAqKgorLWdkYmFyY2hfZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbGVuZ3RoKQorK2dkYmFyY2hfZmxv YXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBjb25zdCBjaGFyICpu YW1lLCBMT05HRVNUIGxlbmd0aCkKKyB7CisgICBnZGJfYXNzZXJ0IChnZGJhcmNoICE9IE5VTEwp OworICAgZ2RiX2Fzc2VydCAoZ2RiYXJjaC0+ZmxvYXRmb3JtYXRfZm9yX3R5cGUgIT0gTlVMTCk7 CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2dkYmFyY2guaAorPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjEyLjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL2dkYmFyY2guaAkyMDE3LTAyLTI2IDIx OjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJh cmNoLmgJMjAxNy0wMi0yNiAyMjowNDowMy40NTY2MTAwNjQgKzAxMDAKK0BAIC0xOTEsOCArMTkx LDggQEAKKyAgICBOQU1FLCBpZiBub24tTlVMTCwgaXMgdGhlIHR5cGUgbmFtZSwgd2hpY2ggbWF5 IGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2gKKyAgICBkaWZmZXJlbnQgdGFyZ2V0IGZvcm1hdHMgb2Yg dGhlIHNhbWUgbGVuZ3RoLiAqLworIAorLXR5cGVkZWYgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0 ICoqIChnZGJhcmNoX2Zsb2F0Zm9ybWF0X2Zvcl90eXBlX2Z0eXBlKSAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW5ndGgpOworLWV4dGVybiBjb25zdCBz dHJ1Y3QgZmxvYXRmb3JtYXQgKiogZ2RiYXJjaF9mbG9hdGZvcm1hdF9mb3JfdHlwZSAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW5ndGgpOworK3R5cGVk ZWYgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqIChnZGJhcmNoX2Zsb2F0Zm9ybWF0X2Zvcl90 eXBlX2Z0eXBlKSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGNvbnN0IGNoYXIgKm5hbWUsIExP TkdFU1QgbGVuZ3RoKTsKKytleHRlcm4gY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqIGdkYmFy Y2hfZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBjb25zdCBj aGFyICpuYW1lLCBMT05HRVNUIGxlbmd0aCk7CisgZXh0ZXJuIHZvaWQgc2V0X2dkYmFyY2hfZmxv YXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBnZGJhcmNoX2Zsb2F0 Zm9ybWF0X2Zvcl90eXBlX2Z0eXBlICpmbG9hdGZvcm1hdF9mb3JfdHlwZSk7CisgCisgLyogRm9y IG1vc3QgdGFyZ2V0cywgYSBwb2ludGVyIG9uIHRoZSB0YXJnZXQgYW5kIGl0cyByZXByZXNlbnRh dGlvbiBhcyBhbgorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi9nZGJhcmNoLnNoCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvZ2RiYXJjaC5zaAky MDE3LTAyLTI2IDIxOjU5OjM2LjA0MzcxOTM2OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjI2L2dkYi9nZGJhcmNoLnNoCTIwMTctMDItMjYgMjI6MDQ6MDMuNDU2NjEwMDY0ICswMTAwCitA QCAtMzg2LDcgKzM4Niw3IEBACisgIyBSZXR1cm5zIHRoZSBmbG9hdGluZy1wb2ludCBmb3JtYXQg dG8gYmUgdXNlZCBmb3IgdmFsdWVzIG9mIGxlbmd0aCBMRU5HVEguCisgIyBOQU1FLCBpZiBub24t TlVMTCwgaXMgdGhlIHR5cGUgbmFtZSwgd2hpY2ggbWF5IGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2gK KyAjIGRpZmZlcmVudCB0YXJnZXQgZm9ybWF0cyBvZiB0aGUgc2FtZSBsZW5ndGguCistbTpjb25z dCBzdHJ1Y3QgZmxvYXRmb3JtYXQgKio6ZmxvYXRmb3JtYXRfZm9yX3R5cGU6Y29uc3QgY2hhciAq bmFtZSwgaW50IGxlbmd0aDpuYW1lLCBsZW5ndGg6MDpkZWZhdWx0X2Zsb2F0Zm9ybWF0X2Zvcl90 eXBlOjowCisrbTpjb25zdCBzdHJ1Y3QgZmxvYXRmb3JtYXQgKio6ZmxvYXRmb3JtYXRfZm9yX3R5 cGU6Y29uc3QgY2hhciAqbmFtZSwgTE9OR0VTVCBsZW5ndGg6bmFtZSwgbGVuZ3RoOjA6ZGVmYXVs dF9mbG9hdGZvcm1hdF9mb3JfdHlwZTo6MAorIAorICMgRm9yIG1vc3QgdGFyZ2V0cywgYSBwb2lu dGVyIG9uIHRoZSB0YXJnZXQgYW5kIGl0cyByZXByZXNlbnRhdGlvbiBhcyBhbgorICMgYWRkcmVz cyBpbiBHREIgaGF2ZSB0aGUgc2FtZSBzaXplIGFuZCAibG9vayB0aGUgc2FtZSIuICBGb3Igc3Vj aCBhCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL2kzODYtdGRlcC5jCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMjYub3JpZy9nZGIvaTM4Ni10ZGVwLmMJMjAxNy0w Mi0yNiAyMTo1OTozNi4wNDM3MTkzNjkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIyNi9n ZGIvaTM4Ni10ZGVwLmMJMjAxNy0wMi0yNiAyMjowNDowMy40NTg2MTAwNzkgKzAxMDAKK0BAIC04 MjA0LDcgKzgyMDQsNyBAQAorIAorIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqKgorIGkzODZf ZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorLQkJCSAgIGNv bnN0IGNoYXIgKm5hbWUsIGludCBsZW4pCisrCQkJICAgY29uc3QgY2hhciAqbmFtZSwgTE9OR0VT VCBsZW4pCisgeworICAgaWYgKGxlbiA9PSAxMjggJiYgbmFtZSkKKyAgICAgaWYgKHN0cmNtcCAo bmFtZSwgIl9fZmxvYXQxMjgiKSA9PSAwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2Ri L3BwYy1saW51eC10ZGVwLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIyNi5v cmlnL2dkYi9wcGMtbGludXgtdGRlcC5jCTIwMTctMDItMjYgMjE6NTk6MzYuMDQzNzE5MzY5ICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMjYvZ2RiL3BwYy1saW51eC10ZGVwLmMJMjAxNy0w Mi0yNiAyMjowNDowMy40NTg2MTAwNzkgKzAxMDAKK0BAIC0xNjMyLDcgKzE2MzIsNyBAQAorIAor IGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqKgorIHBwY19mbG9hdGZvcm1hdF9mb3JfdHlwZSAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCistICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpuYW1lLCBpbnQgbGVuKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqbmFtZSwgTE9OR0VTVCBsZW4pCisgeworICAgaWYgKGxlbiA9PSAxMjggJiYgbmFtZSkK KyAgICAgaWYgKHN0cmNtcCAobmFtZSwgIl9fZmxvYXQxMjgiKSA9PSAwCitJbmRleDogZ2RiLTcu MTIuNTAuMjAxNzAyMjYvZ2RiL3RyYWNlcG9pbnQuaAorPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEy LjUwLjIwMTcwMjI2Lm9yaWcvZ2RiL3RyYWNlcG9pbnQuaAkyMDE3LTAyLTI2IDIyOjA1OjE0Ljc3 NTExNDMwOSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjI2L2dkYi90cmFjZXBvaW50LmgJ MjAxNy0wMi0yNiAyMjowNToyNC44MDcxODUyMzkgKzAxMDAKK0BAIC0yNTQsNyArMjU0LDcgQEAK KyAgIHZvaWQgYWRkX3JlZ2lzdGVyICh1bnNpZ25lZCBpbnQgcmVnbm8pOworICAgdm9pZCBhZGRf bWVtcmFuZ2UgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIAkJICAgICBpbnQgdHlwZSwgYmZk X3NpZ25lZF92bWEgYmFzZSwKKy0JCSAgICAgdW5zaWduZWQgbG9uZyBsZW4pOworKwkJICAgICBV TE9OR0VTVCBsZW4pOworICAgdm9pZCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJvbCAqc3lt LAorIAkJICAgICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIAkJICAgICAgIGxvbmcgZnJh bWVfcmVnbm8sIGxvbmcgZnJhbWVfb2Zmc2V0LAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0 LWJpdHBvcy0yM29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNo CmluZGV4IDg1NzYwZGIuLjJlZmY4NTkgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBv cy0yM29mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaApA QCAtMTM3LDExICsxMzcsMTEgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7 IGZpbGVuYW1lPWJpdHBvcy10ZGVwLnBhdGNoCiAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvYWxwaGEtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2FscGhh LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2Fs cGhhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjM5MDUwMjcxOCArMDIwMAotKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9hbHBoYS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTE1 MTk3ODggKzAyMDAKLUBAIC0yOTksMTcgKzI5OSwxNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcw MjA3Lm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjQ3MDEyMTE4NyAr MDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9hbHBoYS10ZGVwLmMJMjAxNy0wMi0y NiAxOToxMTo0OC4yNjkyNDg1NDYgKzAxMDAKK0BAIC0zMDAsMTcgKzMwMCwxNyBAQAogIHsKICAg IGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNo KTsKICAgIGludCBpOwpAQCAtMTYzLDcgKzE2Myw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvYWxwaGEtdGRlcC5jCiAgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5j dGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CiAgCiAgICAvKiBUaGUgQUJJIHBsYWNlcyB0aGUg YWRkcmVzcyBvZiB0aGUgY2FsbGVkIGZ1bmN0aW9uIGluIFQxMi4gICovCi1AQCAtNDI5LDggKzQy OSw4IEBACitAQCAtNDMwLDggKzQzMCw4IEBACiAgICBmb3IgKGkgPSBuYXJnczsgbV9hcmctLSwg LS1pID49IDA7KQogICAgICB7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzID0gbV9h cmctPmNvbnRlbnRzOwpAQCAtMTc0LDcgKzE3NCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvYWxwaGEtdGRlcC5jCiAgCiAgICAgICAgLyogQ29weSB0aGUgYnl0ZXMgZGVzdGlu ZWQgZm9yIHJlZ2lzdGVycyBpbnRvIGFyZ19yZWdfYnVmZmVyLiAgKi8KICAgICAgICBpZiAob2Zm c2V0IDwgc2l6ZW9mKGFyZ19yZWdfYnVmZmVyKSkKLUBAIC00NDIsNyArNDQyLDcgQEAKK0BAIC00 NDMsNyArNDQzLDcgQEAKICAJICAgIH0KICAJICBlbHNlCiAgCSAgICB7CkBAIC0xODMsMTEgKzE4 MywxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FscGhhLXRkZXAuYwogIAkg ICAgICBtZW1jcHkgKGFyZ19yZWdfYnVmZmVyICsgb2Zmc2V0LCBjb250ZW50cywgdGxlbik7CiAg CSAgICAgIG9mZnNldCArPSB0bGVuOwogIAkgICAgICBjb250ZW50cyArPSB0bGVuOwotSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbWQ2NC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvYW1kNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuMzkxNTAy NzI2ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FtZDY0LXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ3LjUxMjUxOTc5NiArMDIwMAotQEAgLTcyOSw3ICs3MjksNyBAQAorLS0t IGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDE3LTAyLTI2IDE5 OjExOjMwLjQ3MTEyMTE5NCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9hbWQ2 NC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMjo1My42ODU3MTY2MjMgKzAxMDAKK0BAIC03MzAsNyAr NzMwLDcgQEAKICAJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRl YnVmKQogIHsKICAgIGVudW0gYW1kNjRfcmVnX2NsYXNzIHRoZWNsYXNzWzJdOwpAQCAtMTk2LDcg KzE5NiwyMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FtZDY0LXRkZXAuYwog ICAgc3RhdGljIGludCBpbnRlZ2VyX3JlZ251bVtdID0geyBBTUQ2NF9SQVhfUkVHTlVNLCBBTUQ2 NF9SRFhfUkVHTlVNIH07CiAgICBzdGF0aWMgaW50IHNzZV9yZWdudW1bXSA9IHsgQU1ENjRfWE1N MF9SRUdOVU0sIEFNRDY0X1hNTTFfUkVHTlVNIH07CiAgICBpbnQgaW50ZWdlcl9yZWcgPSAwOwot QEAgLTg4MCw4ICs4ODAsOCBAQAorQEAgLTg0NywxMCArODQ3LDEwIEBACisgICAgICAgZ2RiX2Fz c2VydCAocmVnbnVtICE9IC0xKTsKKyAKKyAgICAgICBpZiAocmVhZGJ1ZikKKy0JcmVnY2FjaGVf cmF3X3JlYWRfcGFydCAocmVnY2FjaGUsIHJlZ251bSwgb2Zmc2V0LCBzdGQ6Om1pbiAobGVuLCA4 KSwKKysJcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAocmVnY2FjaGUsIHJlZ251bSwgb2Zmc2V0LCBz dGQ6Om1pbiAobGVuLCAoTE9OR0VTVCkgOCksCisgCQkJCXJlYWRidWYgKyBpICogOCk7CisgICAg ICAgaWYgKHdyaXRlYnVmKQorLQlyZWdjYWNoZV9yYXdfd3JpdGVfcGFydCAocmVnY2FjaGUsIHJl Z251bSwgb2Zmc2V0LCBzdGQ6Om1pbiAobGVuLCA4KSwKKysJcmVnY2FjaGVfcmF3X3dyaXRlX3Bh cnQgKHJlZ2NhY2hlLCByZWdudW0sIG9mZnNldCwgc3RkOjptaW4gKGxlbiwgKExPTkdFU1QpIDgp LAorIAkJCQkgd3JpdGVidWYgKyBpICogOCk7CisgICAgIH0KKyAKK0BAIC04ODEsOCArODgxLDgg QEAKICAgIH07CiAgICBzdHJ1Y3QgdmFsdWUgKipzdGFja19hcmdzID0gWEFMTE9DQVZFQyAoc3Ry dWN0IHZhbHVlICosIG5hcmdzKTsKICAgIGludCBudW1fc3RhY2tfYXJncyA9IDA7CkBAIC0yMDcs NyArMjIwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbWQ2NC10ZGVwLmMK ICAgIGludCBpbnRlZ2VyX3JlZyA9IDA7CiAgICBpbnQgc3NlX3JlZyA9IDA7CiAgICBpbnQgaTsK LUBAIC04OTMsNyArODkzLDcgQEAKK0BAIC04OTQsNyArODk0LDcgQEAKICAgIGZvciAoaSA9IDA7 IGkgPCBuYXJnczsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1 ZV90eXBlIChhcmdzW2ldKTsKQEAgLTIxNiwxMSArMjI5LDIwIEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvYW1kNjQtdGRlcC5jCiAgICAgICAgZW51bSBhbWQ2NF9yZWdfY2xhc3Mg dGhlY2xhc3NbMl07CiAgICAgICAgaW50IG5lZWRlZF9pbnRlZ2VyX3JlZ3MgPSAwOwogICAgICAg IGludCBuZWVkZWRfc3NlX3JlZ3MgPSAwOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9hbWQ2NC13aW5kb3dzLXRkZXAuYworQEAgLTk1OCw3ICs5NTgsNyBAQAorIAorIAkgICAgICBn ZGJfYXNzZXJ0IChyZWdudW0gIT0gLTEpOworIAkgICAgICBtZW1zZXQgKGJ1ZiwgMCwgc2l6ZW9m IGJ1Zik7CistCSAgICAgIG1lbWNweSAoYnVmLCB2YWxidWYgKyBqICogOCwgc3RkOjptaW4gKGxl biwgOCkpOworKwkgICAgICBtZW1jcHkgKGJ1ZiwgdmFsYnVmICsgaiAqIDgsIHN0ZDo6bWluIChs ZW4sIChMT05HRVNUKSA4KSk7CisgCSAgICAgIHJlZ2NhY2hlX3Jhd193cml0ZV9wYXJ0IChyZWdj YWNoZSwgcmVnbnVtLCBvZmZzZXQsIDgsIGJ1Zik7CisgCSAgICB9CisgCX0KK0luZGV4OiBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ1LjM5MzUwMjc0MiArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxMjUxOTc5NiAr MDIwMAotQEAgLTI4OCw3ICsyODgsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcv Z2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAuNDcyMTIxMjAyICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIw MTctMDItMjYgMTk6MTE6NDguMjcwMjQ4NTUzICswMTAwCitAQCAtMjg5LDcgKzI4OSw3IEBACiAg CQkJICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJ CSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQogIHsKQEAg LTIyOSwxMSArMjUxLDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYW1kNjQt d2luZG93cy10ZGVwLmMKICAgIGludCByZWdudW0gPSAtMTsKICAKICAgIC8qIFNlZSBpZiBvdXIg dmFsdWUgaXMgcmV0dXJuZWQgdGhyb3VnaCBhIHJlZ2lzdGVyLiAgSWYgaXQgaXMsIHRoZW4KLUlu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXJtLXRkZXAuYworSW5kZXg6IGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi9hcm0tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvYXJtLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwMDUwMjc5 OCArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hcm0tdGRlcC5jCTIwMTYtMDct MTYgMTQ6MzY6MzAuMzI4ODY0Mzc2ICswMjAwCi1AQCAtMzQ0Myw3ICszNDQzLDcgQEAKKy0tLSBn ZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9hcm0tdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6 MzAuNDc3MTIxMjM3ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2FybS10ZGVw LmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yNzMyNDg1NzUgKzAxMDAKK0BAIC0zNDg1LDcgKzM0ODUs NyBAQAogICAgIGFycmF5KS4gIFZlY3RvciB0eXBlcyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0 ZWQsIG1hdGNoaW5nIHRoZQogICAgIGdlbmVyaWMgQUFQQ1Mgc3VwcG9ydC4gICovCiAgCkBAIC0y NDIsNyArMjY0LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hcm0tdGRlcC5j CiAgYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKHN0cnVjdCB0eXBlICp0LAogIAkJCSAgICBl bnVtIGFybV92ZnBfY3ByY19iYXNlX3R5cGUgKmJhc2VfdHlwZSkKICB7Ci1AQCAtMzUyNiw3ICsz NTI2LDcgQEAKK0BAIC0zNTY4LDcgKzM1NjgsNyBAQAogIAkgIH0KICAJZWxzZQogIAkgIHsKQEAg LTI1MSw3ICsyNzMsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FybS10ZGVw LmMKICAJICAgIHVuc2lnbmVkIHVuaXRsZW47CiAgCiAgCSAgICBjb3VudCA9IGFybV92ZnBfY3By Y19zdWJfY2FuZGlkYXRlIChUWVBFX1RBUkdFVF9UWVBFICh0KSwKLUBAIC0zNTQ5LDEyICszNTQ5 LDEyIEBACitAQCAtMzU5MSwxMiArMzU5MSwxMiBAQAogIAogICAgICBjYXNlIFRZUEVfQ09ERV9T VFJVQ1Q6CiAgICAgICAgewpAQCAtMjY2LDcgKzI4OCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYXJtLXRkZXAuYwogIAogIAkgICAgaWYgKCFmaWVsZF9pc19zdGF0aWMgKCZU WVBFX0ZJRUxEICh0LCBpKSkpCiAgCSAgICAgIHN1Yl9jb3VudCA9IGFybV92ZnBfY3ByY19zdWJf Y2FuZGlkYXRlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpLAotQEAgLTM1NzgsMTMgKzM1NzgsMTUg QEAKK0BAIC0zNjIwLDEzICszNjIwLDE1IEBACiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX1VOSU9O OgogICAgICAgIHsKQEAgLTI4NSw3ICszMDcsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2FybS10ZGVwLmMKICAJICAgIGlmIChzdWJfY291bnQgPT0gLTEpCiAgCSAgICAgIHJl dHVybiAtMTsKICAJICAgIGNvdW50ID0gKGNvdW50ID4gc3ViX2NvdW50ID8gY291bnQgOiBzdWJf Y291bnQpOwotQEAgLTM2MjAsNyArMzYyMiw3IEBACitAQCAtMzY2Miw3ICszNjY0LDcgQEAKICAJ CQlpbnQgKmNvdW50KQogIHsKICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSBiID0gVkZQ X0NQUkNfVU5LTk9XTjsKQEAgLTI5NCw3ICszMTYsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2FybS10ZGVwLmMKICAgIGlmIChjIDw9IDAgfHwgYyA+IDQpCiAgICAgIHJldHVy biAwOwogICAgKmJhc2VfdHlwZSA9IGI7Ci1AQCAtMzcwMSw3ICszNzAzLDcgQEAKK0BAIC0zNzQz LDcgKzM3NDUsNyBAQAogIAogICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJn bnVtKyspCiAgICAgIHsKQEAgLTMwMywxMSArMzI1LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYXJtLXRkZXAuYwogICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZTsKICAg ICAgICBzdHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGU7CiAgICAgICAgZW51bSB0eXBlX2NvZGUgdHlw ZWNvZGU7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F2ci10ZGVwLmMKK0luZGV4 OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvYXZyLXRkZXAuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2F2ci10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0 NS40MDE1MDI4MDYgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXZyLXRkZXAu YwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxNjUxOTgyOCArMDIwMAotQEAgLTExOTUsMTMgKzExOTUs MTMgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9hdnItdGRlcC5jCTIwMTct MDItMjYgMTk6MTE6MzAuNDc5MTIxMjUyICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL2F2ci10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yNzMyNDg1NzUgKzAxMDAKK0BAIC0x MTkxLDEzICsxMTkxLDEzIEBACiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0KICB7CkBAIC0zMjMsNyAr MzQ1LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hdnItdGRlcC5jCiAgewog ICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNpOwogICAgc2kgPSBYTkVXIChzdHJ1Y3Qgc3RhY2tfaXRl bSk7Ci1AQCAtMTI4OSwxMiArMTI4OSwxMiBAQAorQEAgLTEyODUsMTIgKzEyODUsMTIgQEAKICAK ICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CkBAIC0zMzksMTAgKzM2MSwx MCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F2ci10ZGVwLmMKICAKICAgICAg ICAvKiBDYWxjdWxhdGUgdGhlIHBvdGVudGlhbCBsYXN0IHJlZ2lzdGVyIG5lZWRlZC4KICAgICAg ICAgICBFLmcuIEZvciBsZW5ndGggMiwgcmVnaXN0ZXJzIHJlZ251bSBhbmQgcmVnbnVtLTEgKHNh eSAyNSBhbmQgMjQpCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2JmaW4tdGRlcC5j CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2JmaW4tdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYmZpbi10ZGVwLmMJMjAxNi0wNy0x NiAxNDozNTo0NS40MDE1MDI4MDYgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv YmZpbi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTY1MTk4MjggKzAyMDAKKy0tLSBnZGIt Ny4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMw LjQ3OTEyMTI1MiArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9iZmluLXRkZXAu YwkyMDE3LTAyLTI2IDE5OjExOjQ4LjI3MzI0ODU3NSArMDEwMAogQEAgLTUwMiw3ICs1MDIsNyBA QAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdk YmFyY2gpOwogICAgaW50IGk7CkBAIC0zNjEsMTAgKzM4MywxMCBAQCBJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2JmaW4tdGRlcC5jCiAgCiAgICAgICAgc3AgLT0gY29udGFpbmVyX2xl bjsKICAgICAgICB3cml0ZV9tZW1vcnkgKHNwLCB2YWx1ZV9jb250ZW50cyAoYXJnc1tpXSksIGNv bnRhaW5lcl9sZW4pOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcmlzLXRkZXAu YworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9jcmlzLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2NyaXMtdGRlcC5jCTIwMTYtMDct MTYgMTQ6MzU6NDUuNDAzNTAyODIzICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2NyaXMtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE3NTE5ODM2ICswMjAwCistLS0gZ2Ri LTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvY3Jpcy10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMToz MC40ODAxMjEyNTkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvY3Jpcy10ZGVw LmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yNzQyNDg1ODIgKzAxMDAKIEBAIC02NjMsMTMgKzY2Mywx MyBAQAogIAogIHN0cnVjdCBzdGFja19pdGVtCkBAIC0zOTksMTAgKzQyMSwxMCBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NyaXMtdGRlcC5jCiAgICAgICAgCiAgICAgICAgLyog SG93IG1heSByZWdpc3RlcnMgd29ydGggb2Ygc3RvcmFnZSBkbyB3ZSBuZWVkIGZvciB0aGlzIGFy Z3VtZW50PyAgKi8KICAgICAgICByZWdfZGVtYW5kID0gKGxlbiAvIDQpICsgKGxlbiAlIDQgIT0g MCA/IDEgOiAwKTsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaDgzMDAtdGRlcC5j CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2g4MzAwLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2g4MzAwLXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ1LjQwMzUwMjgyMyArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9oODMwMC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTc1MTk4MzYgKzAyMDAKKy0tLSBn ZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9oODMwMC10ZGVwLmMJMjAxNy0wMi0yNiAxOTox MTozMC40ODExMjEyNjYgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvaDgzMDAt dGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjc0MjQ4NTgyICswMTAwCiBAQCAtNjM3LDcgKzYz Nyw3IEBACiAgCQkgICAgICAgaW50IHN0cnVjdF9yZXR1cm4sIENPUkVfQUREUiBzdHJ1Y3RfYWRk cikKICB7CkBAIC00MzUsMTEgKzQ1NywxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2g4MzAwLXRkZXAuYwogIAogIAkgICAgICBmb3IgKG9mZnNldCA9IDA7IG9mZnNldCA8IHBh ZGRlZF9sZW47IG9mZnNldCArPSB3b3Jkc2l6ZSkKICAJCXsKLUluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvaHBwYS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIv aHBwYS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dk Yi9ocHBhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwNTUwMjgzOSArMDIwMAotKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9ocHBhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUx ODUxOTg0NCArMDIwMAotQEAgLTk5MSw3ICs5OTEsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcw MjA3Lm9yaWcvZ2RiL2hwcGEtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAuNDgyMTIxMjczICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2hwcGEtdGRlcC5jCTIwMTctMDItMjYg MTk6MTE6NDguMjc1MjQ4NTg5ICswMTAwCitAQCAtOTg4LDcgKzk4OCw3IEBACiAgICAgIHsKICAg ICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgICAgICAgc3RydWN0IHR5cGUgKnR5 cGUgPSB2YWx1ZV90eXBlIChhcmcpOwpAQCAtNDQ4LDcgKzQ3MCw3IEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvaHBwYS10ZGVwLmMKICAgICAgICBjb25zdCBiZmRfYnl0ZSAqdmFs YnVmOwogICAgICAgIGJmZF9ieXRlIGZwdHJidWZbOF07CiAgICAgICAgaW50IHJlZ251bTsKLUBA IC0xMTg2LDcgKzExODYsNyBAQAorQEAgLTExODMsNyArMTE4Myw3IEBACiAgCQkgICAgIHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJICAgICBnZGJfYnl0 ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQogIHsKQEAgLTQ1NywxMSArNDc5 LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaHBwYS10ZGVwLmMKICAgIGlu dCByZWdudW0sIG9mZnNldDsKICAKICAgIGlmIChsZW4gPiAxNikKLUluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1 LjQwNTUwMjgzOSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pMzg2LWRhcndp bi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTg1MTk4NDQgKzAyMDAKLUBAIC0xNjMsNyAr MTYzLDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9pMzg2LWRhcndpbi10 ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC40ODMxMjEyODAgKzAxMDAKKysrKyBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjc1 MjQ4NTg5ICswMTAwCitAQCAtMTY3LDcgKzE2Nyw3IEBACiAgCiAgICBmb3IgKHdyaXRlX3Bhc3Mg PSAwOyB3cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFzcysrKQogICAgICB7CkBAIC00NzAsMTEgKzQ5 MiwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtZGFyd2luLXRkZXAu YwogICAgICAgIGludCBudW1fbTEyOCA9IDA7CiAgCiAgICAgICAgaWYgKHN0cnVjdF9yZXR1cm4p Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtdGRlcC5jCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2kzODYtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvaTM4Ni10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40 MTA1MDI4NzkgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaTM4Ni10ZGVwLmMJ MjAxNi0wNy0xNiAxNDozNTo0Ny41MjA1MTk4NjAgKzAyMDAKLUBAIC0yNjY0LDcgKzI2NjQsNyBA QAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2kzODYtdGRlcC5jCTIwMTctMDIt MjYgMTk6MTE6MzAuNDg2MTIxMzAyICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2Ri L2kzODYtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjc3MjQ4NjAzICswMTAwCitAQCAtMjY2 MSw3ICsyNjYxLDcgQEAKICAgIGdkYl9ieXRlIGJ1Zls0XTsKICAgIGludCBpOwogICAgaW50IHdy aXRlX3Bhc3M7CkBAIC00ODMsNyArNTA1LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9pMzg2LXRkZXAuYwogIAogICAgLyogRGV0ZXJtaW5lIHRoZSB0b3RhbCBzcGFjZSByZXF1 aXJlZCBmb3IgYXJndW1lbnRzIGFuZCBzdHJ1Y3QKICAgICAgIHJldHVybiBhZGRyZXNzIGluIGEg Zmlyc3QgcGFzcyAoYWxsb3dpbmcgZm9yIDE2LWJ5dGUtYWxpZ25lZAotQEAgLTI2NzIsNyArMjY3 Miw3IEBACitAQCAtMjY2OSw3ICsyNjY5LDcgQEAKICAKICAgIGZvciAod3JpdGVfcGFzcyA9IDA7 IHdyaXRlX3Bhc3MgPCAyOyB3cml0ZV9wYXNzKyspCiAgICAgIHsKQEAgLTQ5Miw3ICs1MTQsNyBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtdGRlcC5jCiAgCiAgICAgICAg aWYgKHN0cnVjdF9yZXR1cm4pCiAgCXsKLUBAIC0yNjg5LDcgKzI2ODksNyBAQAorQEAgLTI2ODYs NyArMjY4Niw3IEBACiAgCiAgICAgICAgZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspCiAgCXsK QEAgLTUwMSw3ICs1MjMsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYt dGRlcC5jCiAgCiAgCSAgaWYgKHdyaXRlX3Bhc3MpCiAgCSAgICB7Ci1AQCAtMjg5Niw3ICsyODk2 LDcgQEAKK0BAIC0yODkzLDcgKzI4OTMsNyBAQAogIHsKICAgIHN0cnVjdCBnZGJhcmNoX3RkZXAg KnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOwogICAgZW51bSB0eXBlX2NvZGUgY29kZSA9 IFRZUEVfQ09ERSAodHlwZSk7CkBAIC01MTAsNyArNTMyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9pMzg2LXRkZXAuYwogIAogICAgZ2RiX2Fzc2VydCAoY29kZSA9PSBUWVBF X0NPREVfU1RSVUNUCiAgICAgICAgICAgICAgICB8fCBjb2RlID09IFRZUEVfQ09ERV9VTklPTgot QEAgLTM3MTgsNyArMzcxOCw3IEBACitAQCAtMzcxNSw3ICszNzE1LDcgQEAKICBpMzg2X2NvbnZl cnRfcmVnaXN0ZXJfcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgCQkJIGludCByZWdudW0s IHN0cnVjdCB0eXBlICp0eXBlKQogIHsKQEAgLTUxOSw3ICs1NDEsNyBAQCBJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtdGRlcC5jCiAgCiAgICAvKiBWYWx1ZXMgbWF5IGJlIHNw cmVhZCBhY3Jvc3MgbXVsdGlwbGUgcmVnaXN0ZXJzLiAgTW9zdCBkZWJ1Z2dpbmcKICAgICAgIGZv cm1hdHMgYXJlbid0IGV4cHJlc3NpdmUgZW5vdWdoIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9ucywg c28KLUBAIC0zNzUxLDcgKzM3NTEsNyBAQAorQEAgLTM3NDgsNyArMzc0OCw3IEBACiAgCQkJaW50 ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CkBAIC01MjgsNyArNTUwLDcgQEAgSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pMzg2LXRkZXAuYwogIAogICAgaWYgKGkzODZf ZnBfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCiAgICAgIHJldHVybiBpMzg3X3JlZ2lzdGVy X3RvX3ZhbHVlIChmcmFtZSwgcmVnbnVtLCB0eXBlLCB0bywKLUBAIC0zNzg3LDcgKzM3ODcsNyBA QAorQEAgLTM3ODQsNyArMzc4NCw3IEBACiAgaTM4Nl92YWx1ZV90b19yZWdpc3RlciAoc3RydWN0 IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAogIAkJCXN0cnVjdCB0eXBlICp0eXBlLCBj b25zdCBnZGJfYnl0ZSAqZnJvbSkKICB7CkBAIC01MzcsMTEgKzU1OSwxMSBAQCBJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtdGRlcC5jCiAgCiAgICBpZiAoaTM4Nl9mcF9yZWdu dW1fcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSwgcmVnbnVtKSkKICAgICAgewotSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9pcTIwMDAtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL2lxMjAwMC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9pcTIwMDAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDExNTAy ODg3ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2lxMjAwMC10ZGVwLmMJMjAx Ni0wNy0xNiAxNDozNTo0Ny41MjA1MTk4NjAgKzAyMDAKLUBAIC02NDYsOCArNjQ2LDkgQEAKKy0t LSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9pcTIwMDAtdGRlcC5jCTIwMTctMDItMjYg MTk6MTE6MzAuNDg3MTIxMzA5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2lx MjAwMC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yNzcyNDg2MDMgKzAxMDAKK0BAIC02NTEs OCArNjUxLDkgQEAKICAgIGNvbnN0IGJmZF9ieXRlICp2YWw7CiAgICBiZmRfYnl0ZSBidWZbNF07 CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKQEAgLTU1MywxMSArNTc1LDExIEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvaXEyMDAwLXRkZXAuYwogICAgLyogVXNlZCB0byBjb3B5IHN0 cnVjdCBhcmd1bWVudHMgaW50byB0aGUgc3RhY2suICAqLwogICAgQ09SRV9BRERSIHN0cnVjdF9w dHI7CiAgCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20zMnItdGRlcC5jCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL20zMnItdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxNi0wNy0xNiAxNDoz NTo0NS40MTE1MDI4ODcgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTMyci10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjA1MTk4NjAgKzAyMDAKLUBAIC02ODUsNyArNjg1 LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9tMzJyLXRkZXAuYwkyMDE3 LTAyLTI2IDE5OjExOjMwLjQ4NzEyMTMwOSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi9tMzJyLXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjQ4LjI3ODI0ODYxMCArMDEwMAorQEAg LTY3OCw3ICs2NzgsNyBAQAogICAgQ09SRV9BRERSIHJlZ3ZhbDsKICAgIGdkYl9ieXRlICp2YWw7 CiAgICBnZGJfYnl0ZSB2YWxidWZbTUFYX1JFR0lTVEVSX1NJWkVdOwpAQCAtNTY2LDExICs1ODgs MTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMzJyLXRkZXAuYwogIAogICAg LyogRmlyc3QgZm9yY2Ugc3AgdG8gYSA0LWJ5dGUgYWxpZ25tZW50LiAgKi8KICAgIHNwID0gc3Ag JiB+MzsKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTY4ay10ZGVwLmMKK0luZGV4 OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvbTY4ay10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tNjhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1 OjQ1LjQxMjUwMjg5NSArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tNjhrLXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMDUxOTg2MCArMDIwMAotQEAgLTM4Miw3ICszODIs NyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL202OGstdGRlcC5jCTIwMTct MDItMjYgMTk6MTE6MzAuNDg4MTIxMzE2ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL202OGstdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjc4MjQ4NjEwICswMTAwCitAQCAt Mzc3LDcgKzM3Nyw3IEBACiAgewogICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFy Y2hfdGRlcCAoZ2RiYXJjaCk7CiAgICBlbnVtIHR5cGVfY29kZSBjb2RlID0gVFlQRV9DT0RFICh0 eXBlKTsKQEAgLTU3OSw3ICs2MDEsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L202OGstdGRlcC5jCiAgCiAgICBnZGJfYXNzZXJ0IChjb2RlID09IFRZUEVfQ09ERV9TVFJVQ1Qg fHwgY29kZSA9PSBUWVBFX0NPREVfVU5JT04KICAJICAgICAgfHwgY29kZSA9PSBUWVBFX0NPREVf Q09NUExFWCk7Ci1AQCAtNTE0LDkgKzUxNCw5IEBACitAQCAtNTA5LDkgKzUwOSw5IEBACiAgICBm b3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5 cGUgKnZhbHVlX3R5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAoYXJnc1tpXSk7CkBAIC01OTIs MTEgKzYxNCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL202OGstdGRlcC5j CiAgCiAgICAgICAgLyogTm9uLXNjYWxhcnMgYmlnZ2VyIHRoYW4gNCBieXRlcyBhcmUgbGVmdCBh bGlnbmVkLCBvdGhlcnMgYXJlCiAgCSByaWdodCBhbGlnbmVkLiAgKi8KLUluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvbTg4ay10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIw Ny9nZGIvbTg4ay10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9tODhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQxMjUwMjg5NSArMDIwMAot KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tODhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1 OjQ3LjUyMTUxOTg2OCArMDIwMAotQEAgLTI1NywxMyArMjU3LDEzIEBACistLS0gZ2RiLTcuMTIu NTAuMjAxNzAyMDcub3JpZy9nZGIvbTg4ay10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC40ODgx MjEzMTYgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvbTg4ay10ZGVwLmMJMjAx Ny0wMi0yNiAxOToxMTo0OC4yNzgyNDg2MTAgKzAxMDAKK0BAIC0yNTMsMTMgKzI1MywxMyBAQAog IHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2Nh Y2hlKTsKICAgIGludCBudW1fcmVnaXN0ZXJfd29yZHMgPSAwOwpAQCAtNjEyLDcgKzYzNCw3IEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTg4ay10ZGVwLmMKICAKICAgICAgICBp ZiAobTg4a19pbnRlZ3JhbF9vcl9wb2ludGVyX3AgKHR5cGUpICYmIGxlbiA8IDQpCiAgCXsKLUBA IC0zMDUsOCArMzA1LDggQEAKK0BAIC0zMDEsOCArMzAxLDggQEAKICAgICAgewogICAgICAgIGNv bnN0IGJmZF9ieXRlICp2YWxidWYgPSB2YWx1ZV9jb250ZW50cyAoYXJnc1tpXSk7CiAgICAgICAg c3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmdzW2ldKTsKQEAgLTYyMywxMSArNjQ1 LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTg4ay10ZGVwLmMKICAKICAg ICAgICBpZiAobTg4a19pbl9yZWdpc3Rlcl9wICh0eXBlKSkKICAJewotSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9tZXAtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL21lcC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9tZXAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDEzNTAyOTAzICswMjAwCi0rKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lcC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41 MjE1MTk4NjggKzAyMDAKLUBAIC0yMjcyLDcgKzIyNzIsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIw MTcwMjA3Lm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC40ODkxMjEzMjMg KzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvbWVwLXRkZXAuYwkyMDE3LTAyLTI2 IDE5OjExOjQ4LjI3OTI0ODYxOCArMDEwMAorQEAgLTIyNjIsNyArMjI2Miw3IEBACiAgCiAgICBm b3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKQogICAgICB7CkBAIC02MzYsMTEgKzY1OCwxMSBAQCBJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lcC10ZGVwLmMKICAKICAgICAgICBpZiAo YXJnX2xlbiA+IE1FUF9HUFJfU0laRSkKICAgICAgICAgIHsKLUluZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvbWlwcy10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIv bWlwcy10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dk Yi9taXBzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyMTUwMjk2NyArMDIwMAotKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUy MzUxOTg4NCArMDIwMAotQEAgLTQ1NSw3ICs0NTUsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcw MjA3Lm9yaWcvZ2RiL21pcHMtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAuNDkzMTIxMzUyICsw MTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL21pcHMtdGRlcC5jCTIwMTctMDItMjYg MTk6MTE6NDguMjgxMjQ4NjMyICswMTAwCitAQCAtNDc0LDcgKzQ3NCw3IEBACiAgbWlwc194ZmVy X3JlZ2lzdGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSwKICAJCSAgICBpbnQgcmVnX251bSwgaW50IGxlbmd0aCwKICAJCSAgICBlbnVtIGJmZF9l bmRpYW4gZW5kaWFuLCBnZGJfYnl0ZSAqaW4sCkBAIC02NDksNyArNjcxLDcgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwogIHsKICAgIGludCByZWdfb2Zmc2V0 ID0gMDsKICAKLUBAIC00NzgsOCArNDc4LDggQEAKK0BAIC00OTcsOCArNDk3LDggQEAKICAgICAg fQogICAgaWYgKG1pcHNfZGVidWcpCiAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVy ciwKQEAgLTY2MCw3ICs2ODIsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21p cHMtdGRlcC5jCiAgICBpZiAobWlwc19kZWJ1ZyAmJiBvdXQgIT0gTlVMTCkKICAgICAgewogICAg ICAgIGludCBpOwotQEAgLTQ1MjksMTMgKzQ1MjksMTMgQEAKK0BAIC00NTMwLDEzICs0NTMwLDEz IEBACiAgICAgICAgZ2RiX2J5dGUgdmFsYnVmW01BWF9SRUdJU1RFUl9TSVpFXTsKICAgICAgICBz dHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJn X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTY3Nyw3ICs2OTks NyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21pcHMtdGRlcC5jCiAgCiAgICAg ICAgLyogVGhlIEVBQkkgcGFzc2VzIHN0cnVjdHVyZXMgdGhhdCBkbyBub3QgZml0IGluIGEgcmVn aXN0ZXIgYnkKICAgICAgICAgICByZWZlcmVuY2UuICAqLwotQEAgLTQ4MDQsNyArNDgwNCw3IEBA CitAQCAtNDgwNSw3ICs0ODA1LDcgQEAKICAKICBzdGF0aWMgaW50CiAgbWlwc19uMzJuNjRfZnBf YXJnX2NodW5rX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlwZSAqYXJnX3R5 cGUsCkBAIC02ODYsNyArNzA4LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9t aXBzLXRkZXAuYwogIHsKICAgIGludCBpOwogIAotQEAgLTQ4MTksNyArNDgxOSw3IEBACitAQCAt NDgyMCw3ICs0ODIwLDcgQEAKICAKICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKGFy Z190eXBlKTsgaSsrKQogICAgICB7CkBAIC02OTUsNyArNzE3LDcgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwogICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90 eXBlOwogIAogICAgICAgIC8qIFdlJ3JlIG9ubHkgbG9va2luZyBhdCBub3JtYWwgZmllbGRzLiAg Ki8KLUBAIC00ODYxLDcgKzQ4NjEsNyBAQAorQEAgLTQ4NjIsNyArNDg2Miw3IEBACiAgICBpbnQg YXJncmVnOwogICAgaW50IGZsb2F0X2FyZ3JlZzsKICAgIGludCBhcmdudW07CkBAIC03MDQsNyAr NzI2LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwogICAg aW50IHN0YWNrX29mZnNldCA9IDA7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmlu ZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7Ci1AQCAtNTIxMiwxMSArNTIxMiwxMSBA QAorQEAgLTUyMTMsMTEgKzUyMTMsMTEgQEAKICAJCQkJOiBNSVBTX1YwX1JFR05VTSk7CiAgCSAg IGZpZWxkIDwgVFlQRV9ORklFTERTICh0eXBlKTsgZmllbGQrKywgcmVnbnVtICs9IDIpCiAgCXsK QEAgLTcyMCw3ICs3NDIsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21pcHMt dGRlcC5jCiAgCSAgaWYgKFRZUEVfTEVOR1RIIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxk KSkgPT0gMTYpCiAgCSAgICB7CiAgCSAgICAgIC8qIEEgMTYtYnl0ZSBsb25nIGRvdWJsZSBmaWVs ZCBnb2VzIGluIHR3byBjb25zZWN1dGl2ZQotQEAgLTUyNTgsOCArNTI1OCw4IEBACitAQCAtNTI1 OSw4ICs1MjU5LDggQEAKICAJICBpZiAob2Zmc2V0ICsgeGZlciA+IFRZUEVfTEVOR1RIICh0eXBl KSkKICAJICAgIHhmZXIgPSBUWVBFX0xFTkdUSCAodHlwZSkgLSBvZmZzZXQ7CiAgCSAgaWYgKG1p cHNfZGVidWcpCkBAIC03MzEsNyArNzUzLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9taXBzLXRkZXAuYwogIAkgIG1pcHNfeGZlcl9yZWdpc3RlciAoZ2RiYXJjaCwgcmVnY2Fj aGUsCiAgCQkJICAgICAgZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkgKyByZWdudW0sCiAgCQkJ ICAgICAgeGZlciwgQkZEX0VORElBTl9VTktOT1dOLCByZWFkYnVmLCB3cml0ZWJ1ZiwKLUBAIC01 MzE3LDcgKzUzMTcsNyBAQAorQEAgLTUzMTgsNyArNTMxOCw3IEBACiAgICBpbnQgYXJncmVnOwog ICAgaW50IGZsb2F0X2FyZ3JlZzsKICAgIGludCBhcmdudW07CkBAIC03NDAsNyArNzYyLDcgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwogICAgaW50IHN0YWNr X29mZnNldCA9IDA7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0 ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5jdGlv bl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7Ci1AQCAtNTM4MSwxMyArNTM4MSwxMyBAQAorQEAgLTUz ODIsMTMgKzUzODIsMTMgQEAKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwogICAgICAgIHN0 cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdudW1dOwogICAgICAgIHN0cnVjdCB0eXBlICphcmdf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpAQCAtNzU3LDcgKzc3OSw3 IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWlwcy10ZGVwLmMKICAKICAgICAg ICB2YWwgPSB2YWx1ZV9jb250ZW50cyAoYXJnKTsKICAKLUBAIC01ODQyLDggKzU4NDIsOCBAQAor QEAgLTU4NDMsOCArNTg0Myw4IEBACiAgICBpbnQgYXJncmVnOwogICAgaW50IGZsb2F0X2FyZ3Jl ZzsKICAgIGludCBhcmdudW07CkBAIC03NjgsNyArNzkwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIg PSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9 IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwogIAotQEAgLTU5MDMsMTMgKzU5 MDMsMTMgQEAKK0BAIC01OTA0LDEzICs1OTA0LDEzIEBACiAgICAgICAgY29uc3QgZ2RiX2J5dGUg KnZhbDsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAgICBz dHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsK QEAgLTc4NSwxMSArODA3LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWlw cy10ZGVwLmMKICAKICAgICAgICB2YWwgPSB2YWx1ZV9jb250ZW50cyAoYXJnKTsKICAKLUluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbW4xMDMwMC10ZGVwLmMKK0luZGV4OiBnZGItNy4x Mi41MC4yMDE3MDIwNy9nZGIvbW4xMDMwMC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tbjEwMzAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1 LjQyMjUwMjk3NiArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tbjEwMzAwLXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNDUxOTg5MiArMDIwMAotQEAgLTEyMjUsNyArMTIy NSw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvbW4xMDMwMC10ZGVwLmMJ MjAxNy0wMi0yNiAxOToxMTozMC40OTQxMjEzNTkgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODEyNDg2MzIgKzAx MDAKK0BAIC0xMjE5LDcgKzEyMTksNyBAQAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIg PSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgY29uc3QgaW50IHB1c2hfc2l6ZSA9 IHJlZ2lzdGVyX3NpemUgKGdkYmFyY2gsIEVfUENfUkVHTlVNKTsKICAgIGludCByZWdzX3VzZWQ7 CkBAIC03OTgsMTEgKzgyMCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21u MTAzMDAtdGRlcC5jCiAgICBpbnQgc3RhY2tfb2Zmc2V0ID0gMDsKICAgIGludCBhcmdudW07CiAg ICBjb25zdCBnZGJfYnl0ZSAqdmFsOwotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9t dC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvbXQtdGRlcC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbXQtdGRlcC5jCTIwMTYt MDctMTYgMTQ6MzU6NDUuNDIzNTAyOTg0ICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL210LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNDUxOTg5MiArMDIwMAotQEAgLTc4 MCw5ICs3ODAsOSBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL210LXRkZXAu YwkyMDE3LTAyLTI2IDE5OjExOjMwLjQ5NTEyMTM2NiArMDEwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjA3L2dkYi9tdC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODEyNDg2MzIgKzAxMDAK K0BAIC03ODgsOSArNzg4LDkgQEAKICAgIGdkYl9ieXRlIGJ1ZltNVF9NQVhfU1RSVUNUX1NJWkVd OwogICAgaW50IGFyZ3JlZyA9IE1UXzFTVF9BUkdSRUc7CiAgICBpbnQgc3BsaXRfcGFyYW1fbGVu ID0gMDsKQEAgLTgxNCwxMSArODM2LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvbXQtdGRlcC5jCiAgICBpbnQgaSwgajsKICAKICAgIC8qIEZpcnN0IGhhbmRsZSBob3dldmVy IG1hbnkgYXJncyB3ZSBjYW4gZml0IGludG8gTVRfMVNUX0FSR1JFRyB0aHJ1Ci1JbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3BwYy1zeXN2LXRkZXAuYworSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjA3L2dkYi9wcGMtc3lzdi10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40 MjQ1MDI5OTIgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcHBjLXN5c3YtdGRl cC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI0NTE5ODkyICswMjAwCi1AQCAtNjYsNyArNjYsNyBA QAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDE3 LTAyLTI2IDE5OjExOjMwLjQ5NjEyMTM3MyArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODIyNDg2MzkgKzAxMDAK K0BAIC02Nyw3ICs2Nyw3IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFy Y2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgb3BlbmNsX2FiaSA9IHBwY19zeXN2X3Vz ZV9vcGVuY2xfYWJpICh2YWx1ZV90eXBlIChmdW5jdGlvbikpOwogICAgVUxPTkdFU1Qgc2F2ZWRf c3A7CkBAIC04MjcsNyArODQ5LDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9w cGMtc3lzdi10ZGVwLmMKICAgIGludCB3cml0ZV9wYXNzOwogIAogICAgZ2RiX2Fzc2VydCAodGRl cC0+d29yZHNpemUgPT0gNCk7Ci1AQCAtOTcsOSArOTcsOSBAQAorQEAgLTk4LDkgKzk4LDkgQEAK ICAgICAgICAvKiBOZXh0IGF2YWlsYWJsZSB2ZWN0b3IgcmVnaXN0ZXIgZm9yIHZlY3RvciBhcmd1 bWVudHMuICAqLwogICAgICAgIGludCB2cmVnID0gMjsKICAgICAgICAvKiBBcmd1bWVudHMgc3Rh cnQgYWJvdmUgdGhlICJMUiBzYXZlIHdvcmQiIGFuZCAiQmFjayBjaGFpbiIuICAqLwpAQCAtODM5 LDcgKzg2MSw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcHBjLXN5c3YtdGRl cC5jCiAgCiAgICAgICAgLyogSWYgdGhlIGZ1bmN0aW9uIGlzIHJldHVybmluZyBhIGBzdHJ1Y3Qn LCB0aGVuIHRoZSBmaXJzdCB3b3JkCiAgICAgICAgICAgKHdoaWNoIHdpbGwgYmUgcGFzc2VkIGlu IHIzKSBpcyB1c2VkIGZvciBzdHJ1Y3QgcmV0dXJuCi1AQCAtMTE4LDcgKzExOCw3IEBACitAQCAt MTE5LDcgKzExOSw3IEBACiAgCXsKICAJICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbm9d OwogIAkgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJn KSk7CkBAIC04NDgsNyArODcwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9w cGMtc3lzdi10ZGVwLmMKICAJICBjb25zdCBiZmRfYnl0ZSAqdmFsID0gdmFsdWVfY29udGVudHMg KGFyZyk7CiAgCiAgCSAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0ZMVCAmJiBs ZW4gPD0gOAotQEAgLTEyODMsMTEgKzEyODMsMTEgQEAKK0BAIC0xMjg0LDExICsxMjg0LDExIEBA CiAgCiAgc3RhdGljIHZvaWQKICBwcGM2NF9zeXN2X2FiaV9wdXNoX3ZhbCAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsCkBAIC04NjIsMTEgKzg4NCwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3BwYy1zeXN2LXRkZXAuYwogIAogICAgLyogRW5mb3JjZSBhbGlnbm1lbnQgb2Yg c3RhY2sgbG9jYXRpb24sIGlmIHJlcXVlc3RlZC4gICovCiAgICBpZiAoYWxpZ24gPiB0ZGVwLT53 b3Jkc2l6ZSkKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmw3OC10ZGVwLmMKK0lu ZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcmw3OC10ZGVwLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9ybDc4LXRkZXAuYwkyMDE2LTA3LTE2IDE0 OjM1OjQ1LjQyNDUwMjk5MiArMDIwMAotKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ybDc4 LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNTUxOTkwMCArMDIwMAotQEAgLTEzMzYsOCAr MTMzNiw4IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvcmw3OC10ZGVwLmMJ MjAxNy0wMi0yNiAxOToxMTozMC40OTYxMjEzNzMgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvcmw3OC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODIyNDg2MzkgKzAxMDAK K0BAIC0xMzUyLDggKzEzNTIsOCBAQAogICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGkt LSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICp2YWx1ZV90eXBlID0gdmFsdWVfZW5jbG9z aW5nX3R5cGUgKGFyZ3NbaV0pOwpAQCAtODc3LDEwICs4OTksMTAgQEAgSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9ybDc4LXRkZXAuYwogIAogICAgICAgIHNwIC09IGNvbnRhaW5lcl9s ZW47CiAgICAgICAgd3JpdGVfbWVtb3J5IChybDc4X21ha2VfZGF0YV9hZGRyZXNzIChzcCksCi1J bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCitJbmRleDog Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0NS40MjU1MDMwMDAgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjU1MTk5MDAgKzAyMDAK Ky0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE3 LTAyLTI2IDE5OjExOjMwLjQ5NzEyMTM4MCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjQ4LjI4MjI0ODYzOSArMDEw MAogQEAgLTE4Niw5ICsxODYsOSBAQAogICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdk YmFyY2hfdGRlcCAoZ2RiYXJjaCk7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC05MDIsMTAgKzkyNCwxMCBAQCBJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCiAgCiAgICAgICAgaWYg KGFyZ2J5dGVzKQogIAl7Ci1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3MzOTAtbGlu dXgtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3MzOTAtbGludXgtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvczM5MC1s aW51eC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40Mjc1MDMwMTYgKzAyMDAKLSsrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvczM5MC1saW51eC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0 Ny41MjY1MTk5MDggKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9zMzkw LWxpbnV4LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjQ5OTEyMTM5NSArMDEwMAorKysrIGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjEx OjQ4LjI4NDI0ODY1NCArMDEwMAogQEAgLTMxMjUsNyArMzEyNSw3IEBACiAgLyogRGV0ZXJtaW5l IHdoZXRoZXIgTiBpcyBhIHBvd2VyIG9mIHR3by4gICovCiAgCkBAIC05MjQsMTEgKzk0NiwxMSBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3MzOTAtbGludXgtdGRlcC5jCiAgICBp bnQgd3JpdGVfbW9kZSA9IGFzLT5yZWdjYWNoZSAhPSBOVUxMOwogIAogICAgaWYgKHMzOTBfZnVu Y3Rpb25fYXJnX2Zsb2F0ICh0eXBlKSkKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv c2NvcmUtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Njb3JlLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Njb3JlLXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyODUwMzAyNCArMDIwMAotKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9zY29yZS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjc1MTk5MTYg KzAyMDAKLUBAIC01MTQsNyArNTE0LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmln L2dkYi9zY29yZS10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC40OTkxMjEzOTUgKzAxMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvc2NvcmUtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6 NDguMjg0MjQ4NjU0ICswMTAwCitAQCAtNTI1LDcgKzUyNSw3IEBACiAgICBlbnVtIGJmZF9lbmRp YW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgYXJn bnVtOwogICAgaW50IGFyZ3JlZzsKQEAgLTkzNywxMSArOTU5LDExIEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvc2NvcmUtdGRlcC5jCiAgICBDT1JFX0FERFIgc3RhY2tfb2Zmc2V0 ID0gMDsKICAgIENPUkVfQUREUiBhZGRyID0gMDsKICAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvc2gtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3NoLXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3NoLXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyOTUwMzAzMiArMDIwMAotKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9zaC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjc1MTk5MTYgKzAy MDAKLUBAIC04MDUsNyArODA1LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dk Yi9zaC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC41MDAxMjE0MDIgKzAxMDAKKysrKyBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvc2gtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjg1MjQ4 NjYxICswMTAwCitAQCAtODE0LDcgKzgxNCw3IEBACiAgc3RhdGljIGludAogIHNoX3VzZV9zdHJ1 Y3RfY29udmVudGlvbiAoaW50IHJlbmVzYXNfYWJpLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CkBA IC05NTAsNyArOTcyLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zaC10ZGVw LmMKICAgIGludCBuZWxlbSA9IFRZUEVfTkZJRUxEUyAodHlwZSk7CiAgCiAgICAvKiBUaGUgUmVu ZXNhcyBBQkkgcmV0dXJucyBhZ2dyZWdhdGUgdHlwZXMgYWx3YXlzIG9uIHN0YWNrLiAgKi8KLUBA IC05MDcsNyArOTA3LDcgQEAKK0BAIC05MTYsNyArOTE2LDcgQEAKICAKICAvKiBIZWxwZXIgZnVu Y3Rpb24gdG8ganVzdGlmeSB2YWx1ZSBpbiByZWdpc3RlciBhY2NvcmRpbmcgdG8gZW5kaWFuZXNz LiAgKi8KICBzdGF0aWMgY29uc3QgZ2RiX2J5dGUgKgpAQCAtOTU5LDcgKzk4MSw3IEBAIEluZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2gtdGRlcC5jCiAgewogICAgc3RhdGljIGdkYl9i eXRlIHZhbGJ1Zls0XTsKICAKLUBAIC0xMDY3LDcgKzEwNjcsOCBAQAorQEAgLTEwNzYsNyArMTA3 Niw4IEBACiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAgIENPUkVfQUREUiByZWd2YWw7CiAgICBj b25zdCBnZGJfYnl0ZSAqdmFsOwpAQCAtOTY5LDcgKzk5MSw3IEBAIEluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvc2gtdGRlcC5jCiAgICBpbnQgcGFzc19vbl9zdGFjayA9IDA7CiAgICBp bnQgdHJlYXRfYXNfZmx0OwogICAgaW50IGxhc3RfcmVnX2FyZyA9IElOVF9NQVg7Ci1AQCAtMTIw OCw3ICsxMjA5LDggQEAKK0BAIC0xMjE3LDcgKzEyMTgsOCBAQAogICAgc3RydWN0IHR5cGUgKnR5 cGU7CiAgICBDT1JFX0FERFIgcmVndmFsOwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKQEAgLTk3 OSwxMSArMTAwMSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NoLXRkZXAu YwogICAgaW50IHBhc3Nfb25fc3RhY2sgPSAwOwogICAgaW50IGxhc3RfcmVnX2FyZyA9IElOVF9N QVg7CiAgCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NoNjQtdGRlcC5jCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3NoNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc2g2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDoz NTo0NS40MzA1MDMwNDAgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2g2NC10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjg1MTk5MjUgKzAyMDAKLUBAIC0xMDYwLDcgKzEw NjAsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3NoNjQtdGRlcC5jCTIw MTctMDItMjYgMTk6MTE6MzAuNTAxMTIxNDA5ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL3NoNjQtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6NDguMjg1MjQ4NjYxICswMTAwCitA QCAtMTA2Miw3ICsxMDYyLDcgQEAKICAJCSAgICAgIENPUkVfQUREUiBzdHJ1Y3RfYWRkcikKICB7 CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2Ri YXJjaCk7CkBAIC05OTIsNyArMTAxNCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvc2g2NC10ZGVwLmMKICAgIGludCBpbnRfYXJncmVnOwogICAgaW50IGZsb2F0X2FyZ19pbmRl eCA9IDA7CiAgICBpbnQgZG91YmxlX2FyZ19pbmRleCA9IDA7Ci1AQCAtMTA2OSw3ICsxMDY5LDcg QEAKK0BAIC0xMDcxLDcgKzEwNzEsNyBAQAogICAgQ09SRV9BRERSIHJlZ3ZhbDsKICAgIGNvbnN0 IGdkYl9ieXRlICp2YWw7CiAgICBnZGJfYnl0ZSB2YWxidWZbOF07CkBAIC0xMDAxLDExICsxMDIz LDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2g2NC10ZGVwLmMKICAgIGlu dCBhcmdyZWdfc2l6ZTsKICAgIGludCBmcF9hcmdzWzEyXTsKICAKLUluZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvc3BhcmMtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3NwYXJjLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL3NwYXJjLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMTUwMzA0OCArMDIwMAot KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYy10ZGVwLmMJMjAxNi0wNy0xNiAxNDoz NTo0Ny41Mjg1MTk5MjUgKzAyMDAKLUBAIC01MjUsNyArNTI1LDcgQEAKKy0tLSBnZGItNy4xMi41 MC4yMDE3MDIwNy5vcmlnL2dkYi9zcGFyYy10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC41MDIx MjE0MTYgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvc3BhcmMtdGRlcC5jCTIw MTctMDItMjYgMTk6MTE6NDguMjg2MjQ4NjY4ICswMTAwCitAQCAtNTY2LDcgKzU2Niw3IEBACiAg ICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBl ICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0xMDE0LDExICsxMDM2LDExIEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmMtdGRlcC5jCiAgCiAgICAgICAgaWYg KHNwYXJjX3N0cnVjdHVyZV9vcl91bmlvbl9wICh0eXBlKQogIAkgIHx8IChzcGFyY19mbG9hdGlu Z19wICh0eXBlKSAmJiBsZW4gPT0gMTYpCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3NwYXJjNjQtdGRlcC5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3NwYXJjNjQt dGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc3Bh cmM2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzI1MDMwNTYgKzAyMDAKLSsrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41 Mjg1MTk5MjUgKzAyMDAKLUBAIC02MzYsNyArNjM2LDggQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3 MDIwNy5vcmlnL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjUwMzEyMTQy MyArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE3 LTAyLTI2IDE5OjExOjQ4LjI4NjI0ODY2OCArMDEwMAorQEAgLTY3MCw3ICs2NzAsOCBAQAogIAog IHN0YXRpYyB2b2lkCiAgc3BhcmM2NF9zdG9yZV9mbG9hdGluZ19maWVsZHMgKHN0cnVjdCByZWdj YWNoZSAqcmVnY2FjaGUsIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMTAyNiw5ICsxMDQ4LDkgQEAg SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYzY0LXRkZXAuYwogKwkJCSAgICAg ICBjb25zdCBnZGJfYnl0ZSAqdmFsYnVmLCBpbnQgZWxlbWVudCwKICsJCQkgICAgICAgTE9OR0VT VCBiaXRwb3MpCiAgeworICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVf YXJjaCAocmVnY2FjaGUpOwogICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKLSAKLUBA IC02NzgsNyArNjc5LDcgQEAKK0BAIC03MTQsNyArNzE1LDcgQEAKICAgICAgICBmb3IgKGkgPSAw OyBpIDwgVFlQRV9ORklFTERTICh0eXBlKTsgaSsrKQogIAl7CiAgCSAgc3RydWN0IHR5cGUgKnN1 YnR5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkpKTsKQEAgLTEw MzcsMTYgKzEwNTksMTYgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYzY0 LXRkZXAuYwogIAogIAkgIHNwYXJjNjRfc3RvcmVfZmxvYXRpbmdfZmllbGRzIChyZWdjYWNoZSwg c3VidHlwZSwgdmFsYnVmLAogIAkJCQkJIGVsZW1lbnQsIHN1YnBvcyk7Ci1AQCAtNzEwLDcgKzcx MSw3IEBACitAQCAtNzQ2LDcgKzc0Nyw3IEBACiAgCiAgc3RhdGljIHZvaWQKICBzcGFyYzY0X2V4 dHJhY3RfZmxvYXRpbmdfZmllbGRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBzdHJ1Y3Qg dHlwZSAqdHlwZSwKIC0JCQkJIGdkYl9ieXRlICp2YWxidWYsIGludCBiaXRwb3MpCiArCQkJCSBn ZGJfYnl0ZSAqdmFsYnVmLCBMT05HRVNUIGJpdHBvcykKICB7Ci0gICBpZiAoc3BhcmM2NF9mbG9h dGluZ19wICh0eXBlKSkKLSAgICAgewotQEAgLTc0Nyw3ICs3NDgsNyBAQAorICAgc3RydWN0IGdk YmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOworIAorQEAgLTc4 Niw3ICs3ODcsNyBAQAogICAgICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKHR5cGUp OyBpKyspCiAgCXsKICAJICBzdHJ1Y3QgdHlwZSAqc3VidHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZ UEVfRklFTERfVFlQRSAodHlwZSwgaSkpOwpAQCAtMTA1NSw3ICsxMDc3LDcgQEAgSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYzY0LXRkZXAuYwogIAogIAkgIHNwYXJjNjRfZXh0 cmFjdF9mbG9hdGluZ19maWVsZHMgKHJlZ2NhY2hlLCBzdWJ0eXBlLCB2YWxidWYsIHN1YnBvcyk7 CiAgCX0KLUBAIC03ODAsNyArNzgxLDcgQEAKK0BAIC04MTksNyArODIwLDcgQEAKICAgIGZvciAo aSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUg PSB2YWx1ZV90eXBlIChhcmdzW2ldKTsKQEAgLTEwNjQsNyArMTA4Niw3IEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmM2NC10ZGVwLmMKICAKICAgICAgICBpZiAoc3BhcmM2 NF9zdHJ1Y3R1cmVfb3JfdW5pb25fcCAodHlwZSkKICAJICB8fCAoc3BhcmM2NF9jb21wbGV4X2Zs b2F0aW5nX3AgKHR5cGUpICYmIGxlbiA9PSAzMikpCi1AQCAtODgwLDcgKzg4MSw3IEBACitAQCAt OTE5LDcgKzkyMCw3IEBACiAgICAgIHsKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYnVmID0g dmFsdWVfY29udGVudHMgKGFyZ3NbaV0pOwogICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFs dWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0xMDczLDExICsxMDk1LDExIEBAIEluZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvc3BhcmM2NC10ZGVwLmMKICAgICAgICBpbnQgcmVnbnVtID0gLTE7 CiAgICAgICAgZ2RiX2J5dGUgYnVmWzE2XTsKICAKLUluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvc3B1LXRkZXAuYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9zcHUtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc3B1LXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMzUwMzA2NCArMDIwMAotKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9zcHUtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI5NTE5OTMyICsw MjAwCi1AQCAtMTQyOSw3ICsxNDI5LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmln L2dkYi9zcHUtdGRlcC5jCTIwMTctMDItMjYgMTk6MTE6MzAuNTAzMTIxNDIzICswMTAwCisrKysg Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3NwdS10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4y ODcyNDg2NzUgKzAxMDAKK0BAIC0xNDMwLDcgKzE0MzAsNyBAQAogICAgICAgIHN0cnVjdCB2YWx1 ZSAqYXJnID0gYXJnc1tpXTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVk ZWYgKHZhbHVlX3R5cGUgKGFyZykpOwogICAgICAgIGNvbnN0IGdkYl9ieXRlICpjb250ZW50cyA9 IHZhbHVlX2NvbnRlbnRzIChhcmcpOwpAQCAtMTA4Niw3ICsxMTA4LDcgQEAgSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUtdGRlcC5jCiAgCiAgICAgICAgLyogSWYgdGhlIGFyZ3Vt ZW50IGRvZXNuJ3Qgd2hvbGx5IGZpdCBpbnRvIHJlZ2lzdGVycywgaXQgYW5kCiAgCSBhbGwgc3Vi c2VxdWVudCBhcmd1bWVudHMgZ28gdG8gdGhlIHN0YWNrLiAgKi8KLUBAIC0xNDYxLDcgKzE0NjEs NyBAQAorQEAgLTE0NjIsNyArMTQ2Miw3IEBACiAgCXsKICAJICBzdHJ1Y3QgdmFsdWUgKmFyZyA9 IGFyZ3NbaV07CiAgCSAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChhcmcpKTsKQEAgLTEwOTUsMTEgKzExMTcsMTEgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9zcHUtdGRlcC5jCiAgCSAgaW50IHByZWZlcnJlZF9zbG90OwogIAkgIAogIAkg IGlmIChzcHVfc2NhbGFyX3ZhbHVlX3AgKHR5cGUpKQotSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi90aWM2eC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGlj NngtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv dGljNngtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDMzNTAzMDY0ICswMjAwCi0rKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUy OTUxOTkzMiArMDIwMAotQEAgLTg5Miw3ICs4OTIsNyBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcw MjA3Lm9yaWcvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjUwNDEyMTQzMCAr MDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90aWM2eC10ZGVwLmMJMjAxNy0wMi0y NiAxOToxMTo0OC4yODcyNDg2NzUgKzAxMDAKK0BAIC04OTksNyArODk5LDcgQEAKICAgIGludCBh cmdyZWcgPSAwOwogICAgaW50IGFyZ251bTsKICAgIGludCBzdGFja19vZmZzZXQgPSA0OwpAQCAt MTEwOCw3ICsxMTMwLDcgQEAgSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90aWM2eC10 ZGVwLmMKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0 aW9uLCBOVUxMKTsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRl X29yZGVyIChnZGJhcmNoKTsKICAgIHN0cnVjdCB0eXBlICpmdW5jX3R5cGUgPSB2YWx1ZV90eXBl IChmdW5jdGlvbik7Ci1AQCAtOTI2LDcgKzkyNiw3IEBACitAQCAtOTMzLDcgKzkzMyw3IEBACiAg ICAvKiBOb3cgbWFrZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIHRoZSBhcmdzLiAgKi8KICAgIGZv ciAoYXJnbnVtID0gMDsgYXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQogICAgICB7CkBAIC0xMTE3 LDcgKzExMzksNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RpYzZ4LXRkZXAu YwogICAgICAgIGlmIChhcmdudW0gPj0gMTAgLSBhcmdyZWcpCiAgCXJlZmVyZW5jZXNfb2Zmc2V0 ICs9IGxlbjsKICAgICAgICBzdGFja19vZmZzZXQgKz0gbGVuOwotQEAgLTk0NSw3ICs5NDUsNyBA QAorQEAgLTk1Miw3ICs5NTIsNyBAQAogICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICAg ICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUg KmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC0xMTI2LDcg KzExNDgsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RpYzZ4LXRkZXAuYwog ICAgICAgIGVudW0gdHlwZV9jb2RlIHR5cGVjb2RlID0gVFlQRV9DT0RFIChhcmdfdHlwZSk7CiAg CiAgICAgICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFyZyk7Ci1AQCAtMTEwNSw3ICsxMTA1LDgg QEAKK0BAIC0xMTEyLDcgKzExMTIsOCBAQAogIAkgICAgfQogIAkgIGVsc2UKICAJICAgIGludGVy bmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCkBAIC0xMTM2LDExICsxMTU4LDExIEBAIElu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGljNngtdGRlcC5jCiAgCiAgCSAgYWRkciA9 IHNwICsgc3RhY2tfb2Zmc2V0OwogIAkgIHdyaXRlX21lbW9yeSAoYWRkciwgdmFsLCBsZW4pOwot SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90aWxlZ3gtdGRlcC5jCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3RpbGVneC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6 NDUuNDM0NTAzMDcyICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RpbGVneC10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKLUBAIC0yODgsNyArMjg4 LDcgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIw MTctMDItMjYgMTk6MTE6MzAuNTA0MTIxNDMwICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODcyNDg2NzUgKzAxMDAK K0BAIC0yODksNyArMjg5LDcgQEAKICAgIENPUkVfQUREUiBzdGFja19kZXN0ID0gc3A7CiAgICBp bnQgYXJncmVnID0gVElMRUdYX1IwX1JFR05VTTsKICAgIGludCBpLCBqOwpAQCAtMTE0OSwxMCAr MTE3MSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RpbGVneC10ZGVwLmMK ICAgIHN0YXRpYyBjb25zdCBnZGJfYnl0ZSBmb3VyX3plcm9fd29yZHNbMTZdID0geyAwIH07CiAg CiAgICAvKiBJZiBzdHJ1Y3RfcmV0dXJuIGlzIDEsIHRoZW4gdGhlIHN0cnVjdCByZXR1cm4gYWRk cmVzcyB3aWxsCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Y4NTAtdGRlcC5jCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Y4NTAtdGRlcC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdjg1MC10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0NS40MzQ1MDMwNzIgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdjg1 MC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKKy0tLSBnZGItNy4x Mi41MC4yMDE3MDIwNy5vcmlnL2dkYi92ODUwLXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjUw NTEyMTQzOCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi92ODUwLXRkZXAuYwky MDE3LTAyLTI2IDE5OjExOjQ4LjI4ODI0ODY4MiArMDEwMAogQEAgLTEwMTksNyArMTAxOSw3IEBA CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2Ri YXJjaCk7CiAgICBpbnQgYXJncmVnOwpAQCAtMTE3MSwxMCArMTE5MywxMCBAQCBJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Y4NTAtdGRlcC5jCiAgICAgICAgZ2RiX2J5dGUgKnZhbDsK ICAgICAgICBnZGJfYnl0ZSB2YWxidWZbdjg1MF9yZWdfc2l6ZV07CiAgCi1JbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3ZheC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIw Ny9nZGIvdmF4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL3ZheC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzU1MDMwODAgKzAyMDAKLSsr KyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmF4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3 LjUzMDUxOTk0MSArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3ZheC10 ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTozMC41MDUxMjE0MzggKzAxMDAKKysrKyBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvdmF4LXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjQ4LjI4ODI0ODY4MiAr MDEwMAogQEAgLTExMSw3ICsxMTEsNyBAQAogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBn ZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3Jk ZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwpAQCAtMTE5MywxMCArMTIxNSwxMCBA QCBJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZheC10ZGVwLmMKICAKICAgICAgICBz cCAtPSAobGVuICsgMykgJiB+MzsKICAgICAgICBjb3VudCArPSAobGVuICsgMykgLyA0OwotSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi94c3Rvcm15MTYtdGRlcC5jCitJbmRleDogZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3hzdG9ybXkxNi10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTYtMDctMTYg MTQ6MzU6NDUuNDM1NTAzMDgwICswMjAwCi0rKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3hz dG9ybXkxNi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKKy0tLSBn ZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTctMDItMjYg MTk6MTE6MzAuNTA2MTIxNDQ1ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3hz dG9ybXkxNi10ZGVwLmMJMjAxNy0wMi0yNiAxOToxMTo0OC4yODgyNDg2ODIgKzAxMDAKIEBAIC0y MzMsOCArMjMzLDkgQEAKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9i eXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBzdGFja19kZXN0ID0gc3A7CkBAIC0x MjA5LDExICsxMjMxLDExIEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveHN0b3Jt eTE2LXRkZXAuYwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgIGdkYl9ieXRlIGJ1Zlt4c3Rv cm15MTZfcGNfc2l6ZV07CiAgCi1JbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3h0ZW5z YS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIveHRlbnNhLXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3h0ZW5zYS10ZGVw LmMJMjAxNi0wNy0xNiAxNDozNTo0NS40Mzc1MDMwOTYgKzAyMDAKLSsrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIveHRlbnNhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUzMTUxOTk0OSAr MDIwMAotQEAgLTE2MzgsOCArMTYzOCw3IEBACistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3Jp Zy9nZGIveHRlbnNhLXRkZXAuYwkyMDE3LTAyLTI2IDE5OjExOjMwLjUwNzEyMTQ1MiArMDEwMAor KysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi94dGVuc2EtdGRlcC5jCTIwMTctMDItMjYgMTk6 MTE6NDguMjg5MjQ4Njg5ICswMTAwCitAQCAtMTYzOSw4ICsxNjM5LDcgQEAKICAKICAgICAgICBp ZiAobGVuID4gKGNhbGxzaXplID4gOCA/IDggOiAxNikpCiAgCWludGVybmFsX2Vycm9yIChfX0ZJ TEVfXywgX19MSU5FX18sCkBAIC0xMjIzLDcgKzEyNDUsNyBAQCBJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3h0ZW5zYS10ZGVwLmMKICAgICAgICBhcmVnID0gYXJyZWdfbnVtYmVyIChn ZGJhcmNoLAogIAkJCSAgIGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCktPmEwX2Jhc2UgKyAyICsgY2Fs bHNpemUsIHdiKTsKICAKLUBAIC0xNzEzLDE4ICsxNzEyLDE4IEBACitAQCAtMTcxNCwxOCArMTcx MywxOCBAQAogIHsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRl X29yZGVyIChnZGJhcmNoKTsKICAgIGludCBpOwpAQCAtMTI0NSw3ICsxMjY3LDcgQEAgSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi94dGVuc2EtdGRlcC5jCiAgICAgICAgaW50IHJlZ25v OwkJLyogcmVnbm8gaWYgaW4gcmVnaXN0ZXIuICAqLwogICAgICB9IHU7CiAgICB9OwotQEAgLTE3 NDgsOSArMTc0NywxMCBAQAorQEAgLTE3NDksOSArMTc0OCwxMCBAQAogICAgICAgICAgewogIAkg IHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKICAJICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUg PSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTEyNTksNyArMTI4MSw3IEBA IEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveHRlbnNhLXRkZXAuYwogIAkgIHN3aXRj aCAoVFlQRV9DT0RFIChhcmdfdHlwZSkpCiAgCSAgICB7CiAgCSAgICBjYXNlIFRZUEVfQ09ERV9J TlQ6Ci1AQCAtMTgyMCw4ICsxODIwLDggQEAKK0BAIC0xODIxLDggKzE4MjEsOCBAQAogIAkgIGlu Zm8tPmFsaWduID0gVFlQRV9MRU5HVEggKGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5f bG9uZyk7CiAgCSAgYnJlYWs7CiAgCX0KQEAgLTEyNjksNyArMTI5MSw3IEBAIEluZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIveHRlbnNhLXRkZXAuYwogIAogICAgICAgIC8qIEFsaWduIHNp emUgYW5kIG9uc3RhY2tfc2l6ZS4gICovCiAgICAgICAgc2l6ZSA9IChzaXplICsgaW5mby0+YWxp Z24gLSAxKSAmIH4oaW5mby0+YWxpZ24gLSAxKTsKLUBAIC0xODY2LDcgKzE4NjYsNyBAQAorQEAg LTE4NjcsNyArMTg2Nyw3IEBACiAgCiAgICAgICAgaWYgKGluZm8tPm9uc3RhY2spCiAgCXsKQEAg LTEyNzgsNyArMTMwMCw3IEBAIEluZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveHRlbnNh LXRkZXAuYwogIAkgIENPUkVfQUREUiBvZmZzZXQgPSBzcCArIGluZm8tPnUub2Zmc2V0OwogIAog IAkgIC8qIE9kZC1zaXplZCBzdHJ1Y3RzIGFyZSBhbGlnbmVkIHRvIHRoZSBsb3dlciBzaWRlIG9m IGEgbWVtb3J5Ci1AQCAtMTg4Miw3ICsxODgyLDcgQEAKK0BAIC0xODgzLDcgKzE4ODMsNyBAQAog IAl9CiAgICAgICAgZWxzZQogIAl7CgpkaWZmIC0tZ2l0IGEvZ2RiLXRlc3RzdWl0ZS1jYXN0cy5w YXRjaCBiL2dkYi10ZXN0c3VpdGUtY2FzdHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDFlZDdlY2IuLjAwMDAwMDAKLS0tIGEvZ2RiLXRlc3RzdWl0ZS1jYXN0cy5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDE2LTA5L21zZzAwMDgyLmh0bWwKLVN1YmplY3Q6IFt0ZXN0c3VpdGUgcGF0 Y2hdIEZpeCBmYWxzZSBGQUlMIGluIGdkYi5jcC9jYXN0cy5leHAKLQotCi0tLWlrZVZFVzl5dVlj Ly9BK3EKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVu dC1EaXNwb3NpdGlvbjogaW5saW5lCi0KLUhpLAotCi1nY2MtNi4yLjEtMS5mYzI2Lng4Nl82NAot Ci1nZGIgY29tcGlsZSBmYWlsZWQsIC9ob21lL2prcmF0b2NoL3JlZGhhdC9nZGItY2xlYW4vZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvY2FzdHMuY2M6NDA6MTA6IGVycm9yOiBleHBlY3RlZCBwcmltYXJ5 LWV4cHJlc3Npb24gYmVmb3JlICdpbnQnCi0gZGVjbHR5cGUoaW50IHgpCi0gICAgICAgICAgXn5+ Ci0vaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2Nh c3RzLmNjOjQwOjEwOiBlcnJvcjogZXhwZWN0ZWQgJyknIGJlZm9yZSAnaW50JwotL2hvbWUvamty YXRvY2gvcmVkaGF0L2dkYi1jbGVhbi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jYXN0cy5jYzo0MDox OiBlcnJvcjogZXhwZWN0ZWQgdW5xdWFsaWZpZWQtaWQgYmVmb3JlICdkZWNsdHlwZScKLSBkZWNs dHlwZShpbnQgeCkKLSBefn5+fn5+fgotL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi1jbGVhbi9n ZGIvdGVzdHN1aXRlL2dkYi5jcC9jYXN0cy5jYzogSW4gZnVuY3Rpb24gJ2ludCBtYWluKGludCwg Y2hhcioqKSc6Ci0vaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL2Nhc3RzLmNjOjU5OjE0OiBlcnJvcjogZXhwZWN0ZWQgcHJpbWFyeS1leHByZXNzaW9u IGJlZm9yZSAnZGVjbHR5cGUnCi0gICBkb3VibGUgeSA9IGRlY2x0eXBlKDIpOwotICAgICAgICAg ICAgICBefn5+fn5+fgotCi0nZGVjbHR5cGUnIGlzIGEgcmVnaXN0ZXJlZCBrZXl3b3JkIHNpbmNl IEMrKzExIHdoaWNoIGlzIG5vdyBhIGRlZmF1bHQgZm9yIEdDQy4KLQotT0sgZm9yIGNoZWNrLWlu PwotCi0KLUphbgotCi0tLWlrZVZFVzl5dVljLy9BK3EKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFt ZT0xCi0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0yMDE2LTA5LTExICBKYW4gS3JhdG9jaHZp bCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIGdkYi5jcC9jYXN0cy5jYzogUmVu YW1lIGRlY2x0eXBlIHRvIGludF90b19kb3VibGUuCi0JKiBnZGIuY3AvY2FzdHMuZXhwICh3aGF0 aXMgZGVjbHR5cGUoNSkpOiBSZW5hbWUgdG8gLi4uCi0JKHdoYXRpcyBpbnRfdG9fZG91YmxlKDUp KTogLi4uIGhlcmUuCi0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jYXN0cy5j YyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2Nhc3RzLmNjCi1pbmRleCA0M2YxMTJmLi40ZjY4YmEw IDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY2FzdHMuY2MKLSsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmNwL2Nhc3RzLmNjCi1AQCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3QgRG91Ymx5 RGVyaXZlZCA6IHB1YmxpYyBWaXJ0dWFsbHlEZXJpdmVkLAotIC8vIENvbmZ1c2UgYSBzaW1wbGVy IGFwcHJvYWNoLgotIAotIGRvdWJsZQotLWRlY2x0eXBlKGludCB4KQotK2ludF90b19kb3VibGUo aW50IHgpCi0gewotICAgcmV0dXJuIHggKyAyLjA7Ci0gfQotQEAgLTU2LDcgKzU2LDcgQEAgbWFp biAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotICAgQWxwaGEgKmFkID0gJmRlcml2ZWQ7Ci0gICBB bHBoYSAqYWRkID0gJmRvdWJseWRlcml2ZWQ7Ci0gCi0tICBkb3VibGUgeSA9IGRlY2x0eXBlKDIp OwotKyAgZG91YmxlIHkgPSBpbnRfdG9fZG91YmxlKDIpOwotIAotICAgcmV0dXJuIDA7ICAvKiBi cmVha3BvaW50IHNwb3Q6IGNhc3RzLmV4cDogMSAqLwotIH0KLWRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5jcC9jYXN0cy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jYXN0cy5leHAK LWluZGV4IDM0YTI0OTIuLjU3OTgwOTggMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5j cC9jYXN0cy5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2Nhc3RzLmV4cAotQEAgLTEx Miw3ICsxMTIsNyBAQCBnZGJfdGVzdCAicHJpbnQgcmVpbnRlcnByZXRfY2FzdDxBICY+ICgqYiki ICIgPSBcXChBIFxcJlxcKSBAJGhleDoge2EgPSA0Mn0iIFwKLSAKLSAjIFRlc3QgdGhhdCBrZXl3 b3JkIHNoYWRvd2luZyB3b3Jrcy4KLSAKLS1nZGJfdGVzdCAid2hhdGlzIGRlY2x0eXBlKDUpIiAi ID0gZG91YmxlIgotK2dkYl90ZXN0ICJ3aGF0aXMgaW50X3RvX2RvdWJsZSg1KSIgIiA9IGRvdWJs ZSIKLSAKLSAjIEJhc2ljIHRlc3RzIHVzaW5nIHR5cGVvZi4KLSAKLQotLS1pa2VWRVc5eXVZYy8v QStxLS0KLQoKZGlmZiAtLWdpdCBhL2dkYi10ZXN0c3VpdGUtbS1zdGF0aWMucGF0Y2ggYi9nZGIt dGVzdHN1aXRlLW0tc3RhdGljLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0 OWFkOTNiLi4wMDAwMDAwCi0tLSBhL2dkYi10ZXN0c3VpdGUtbS1zdGF0aWMucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBh dGNoZXMvMjAxNi0wOS9tc2cwMDA4My5odG1sCi1TdWJqZWN0OiBbdGVzdHN1aXRlIHBhdGNoXSBG aXggQysrMTEgY29tcGlsYXRpb24gZmFpbHVyZSBmb3IgZ2RiLmNwL20tc3RhdGljLmV4cAotCi0K LS0teTB1bFVtTkMrb3NQUFFPNgotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlz by0yMDIyLWpwCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotSGksCi0KLWdjYy02LjIu MS0xLmZjMjYueDg2XzY0Ci0KLWcrKyAtc3RkPWMrKzAzOgotbm8gd2FybmluZ3MKLQotZysrOgot SW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL2prcmF0b2NoL3JlZGhhdC9nZGItY2xlYW4vZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMuY2M6Nzk6MDoKLS9ob21lL2prcmF0b2NoL3JlZGhh dC9nZGItY2xlYW4vZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMuaDo5OjM0OiBlcnJvcjog GyRCIUYbKEJjb25zdGV4cHIbJEIhRxsoQiBuZWVkZWQgZm9yIGluLWNsYXNzIGluaXRpYWxpemF0 aW9uIG9mIHN0YXRpYyBkYXRhIG1lbWJlciAbJEIhRhsoQmNvbnN0IGZsb2F0IGdudV9vYmpfNDo6 c29tZXdoZXJlGyRCIUcbKEIgb2Ygbm9uLWludGVncmFsIHR5cGUgWy1mcGVybWlzc2l2ZV0KLSAg IHN0YXRpYyBjb25zdCBmbG9hdCBzb21ld2hlcmUgPSAzLjE0MTU5OwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KLQotY2xhbmcrKzoKLUluIGZpbGUgaW5jbHVkZWQg ZnJvbSAvaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUvZ2RiLmNw L20tc3RhdGljLmNjOjc5OgotL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi1jbGVhbi9nZGIvdGVz dHN1aXRlL2dkYi5jcC9tLXN0YXRpYy5oOjk6MjI6IHdhcm5pbmc6IGluLWNsYXNzIGluaXRpYWxp emVyIGZvciBzdGF0aWMgZGF0YSBtZW1iZXIgb2YgdHlwZSAnY29uc3QgZmxvYXQnIGlzIGEgR05V IGV4dGVuc2lvbiBbLVdnbnUtc3RhdGljLWZsb2F0LWluaXRdCi0gIHN0YXRpYyBjb25zdCBmbG9h dCBzb21ld2hlcmUgPSAzLjE0MTU5OwotICAgICAgICAgICAgICAgICAgICAgXiAgICAgICAgICAg fn5+fn5+fgotMSB3YXJuaW5nIGdlbmVyYXRlZC4KLQotY2xhbmcrKyAtc3RkPWMrKzExOgotSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL2prcmF0b2NoL3JlZGhhdC9nZGItY2xlYW4vZ2RiL3Rl c3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMuY2M6Nzk6Ci0vaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2Ri LWNsZWFuL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL20tc3RhdGljLmg6OToyMjogZXJyb3I6IGluLWNs YXNzIGluaXRpYWxpemVyIGZvciBzdGF0aWMgZGF0YSBtZW1iZXIgb2YgdHlwZSAnY29uc3QgZmxv YXQnIHJlcXVpcmVzICdjb25zdGV4cHInIHNwZWNpZmllciBbLVdzdGF0aWMtZmxvYXQtaW5pdF0K LSAgc3RhdGljIGNvbnN0IGZsb2F0IHNvbWV3aGVyZSA9IDMuMTQxNTk7Ci0gICAgICAgICAgICAg ICAgICAgICBeICAgICAgICAgICB+fn5+fn5+Ci0vaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNs ZWFuL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL20tc3RhdGljLmg6OTozOiBub3RlOiBhZGQgJ2NvbnN0 ZXhwcicKLSAgc3RhdGljIGNvbnN0IGZsb2F0IHNvbWV3aGVyZSA9IDMuMTQxNTk7Ci0gIF4KLSAg Y29uc3RleHByCi0xIGVycm9yIGdlbmVyYXRlZC4KLQotT0sgZm9yIGNoZWNrLWluPwotCi1BZnRl ciB0aGUgZml4IG91dCBvZiB0aGUgNCBjb21iaW5hdGlvbnMgYWJvdmUgb25seSB0aGlzIG9uZSBy ZW1haW5zIG5vbi1lbXB0eToKLQotY2xhbmcrKzoKLUluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9t ZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL20tc3RhdGlj LmNjOjc5OgotL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi1jbGVhbi9nZGIvdGVzdHN1aXRlL2dk Yi5jcC9tLXN0YXRpYy5oOjk6MjI6IHdhcm5pbmc6IGluLWNsYXNzIGluaXRpYWxpemVyIGZvciBz dGF0aWMgZGF0YSBtZW1iZXIgb2YgdHlwZSAnY29uc3QgZmxvYXQnIGlzIGEgR05VIGV4dGVuc2lv biBbLVdnbnUtc3RhdGljLWZsb2F0LWluaXRdCi0gIHN0YXRpYyBjb25zdCBmbG9hdCBzb21ld2hl cmUgPSAzLjE0MTU5OwotICAgICAgICAgICAgICAgICAgICAgXiAgICAgICAgICAgfn5+fn5+fgot MSB3YXJuaW5nIGdlbmVyYXRlZC4KLQotCi1KYW4KLQotLS15MHVsVW1OQytvc1BQUU82Ci1Db250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRp b246IGlubGluZTsgZmlsZW5hbWU9MQotCi1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotMjAxNi0w OS0xMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBn ZGIuY3AvbS1zdGF0aWMuaCAoZ251X29ial80Ojpzb21ld2hlcmUpOiBVc2UgY29uc3RleHByIGZv ciBDKysxMS4KLQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL20tc3RhdGljLmgg Yi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9tLXN0YXRpYy5oCi1pbmRleCBiY2VkZmZmLi4yOTkyNDYz IDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMuaAotKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMuaAotQEAgLTYsNiArNiw5IEBAIGNsYXNzIGdudV9v YmpfNAotICAgc3RhdGljIGNvbnN0IGludCBlbHNld2hlcmU7Ci0gICBzdGF0aWMgY29uc3QgaW50 IG5vd2hlcmU7Ci0gICBzdGF0aWMgY29uc3QgaW50IGV2ZXJ5d2hlcmUgPSAzMTc7Ci0rI2lmIF9f Y3BsdXNwbHVzID49IDIwMTEwM0wKLSsgIGNvbnN0ZXhwcgotKyNlbmRpZgotICAgc3RhdGljIGNv bnN0IGZsb2F0IHNvbWV3aGVyZSA9IDMuMTQxNTk7Ci0gCi0gICAvLyB0cnkgdG8gZW5zdXJlIHRl c3Q0IGlzIGFjdHVhbGx5IGFsbG9jYXRlZAotCi0tLXkwdWxVbU5DK29zUFBRTzYtLQotCgpkaWZm IC0tZ2l0IGEvZ2RiLXRlc3RzdWl0ZS1tb3Jlc3RhY2stZ29sZC5wYXRjaCBiL2dkYi10ZXN0c3Vp dGUtbW9yZXN0YWNrLWdvbGQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1 NmUxMDAuLjAwMDAwMDAKLS0tIGEvZ2RiLXRlc3RzdWl0ZS1tb3Jlc3RhY2stZ29sZC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDE2LTEwL21zZzAwNjUyLmh0bWwKLVN1YmplY3Q6IFt0ZXN0c3VpdGUgcGF0 Y2hdIEZpeCBmYWxzZSBGQUlMIGZvciBnZGIuYmFzZS9tb3Jlc3RhY2suZXhwCi0KLQotLS1IbEwr NW42cno1cElVeGJECi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkK LUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQotCi1IaSwKLQotc2luY2UKLQlbY29tbWl0XSBb dGVzdHN1aXRlIHBhdGNoXSBGaXggZ2NjX2NvbXBpbGVkIGZvciBnY2MgNiAmIDcKLQlodHRwczov L3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMTAvbXNnMDA2MjAuaHRtbAotCi10 aGVyZSBoYXMgc3RhcnRlZCBydW5uaW5nIGFnYWluCi0JIFJ1bm5pbmcgZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9tb3Jlc3RhY2suZXhwIC4uLgotCStGQUlMOiBnZGIuYmFzZS9tb3Jlc3RhY2suZXhw OiBjb250aW51ZQotCStQQVNTOiBnZGIuYmFzZS9tb3Jlc3RhY2suZXhwOiB1cCAzMDAwCi0KLWJ1 dCBhcyB5b3UgY2FuIHNlZSBpdCBGQUlMcyBub3cgLSBvbiBGZWRvcmEgMjQgeDg2XzY0IChhbHRo b3VnaCBmb3IgZXhhbXBsZSBpdAotc3RpbGwgUEFTU2VzIG9uIENlbnRPUy03LjIgeDg2XzY0KS4K LQotUHJvZ3JhbSByZWNlaXZlZCBzaWduYWwgU0lHU0VHViwgU2VnbWVudGF0aW9uIGZhdWx0Lgot MHgwMDAwN2ZmZmY3ODdjN2JiIGluIG1hbGxvY19jb25zb2xpZGF0ZSAoYXY9YXZAZW50cnk9MHg3 ZmZmZjdiYmNiMDAgPG1haW5fYXJlbmE+KSBhdCBtYWxsb2MuYzo0MTgxCi00MTgxCQkgICAgICB1 bmxpbmsoYXYsIG5leHRjaHVuaywgYmNrLCBmd2QpOwotKGdkYikgYnQKLSMwICAweDAwMDA3ZmZm Zjc4N2M3YmIgaW4gbWFsbG9jX2NvbnNvbGlkYXRlIChhdj1hdkBlbnRyeT0weDdmZmZmN2JiY2Iw MCA8bWFpbl9hcmVuYT4pIGF0IG1hbGxvYy5jOjQxODEKLSMxICAweDAwMDA3ZmZmZjc4N2YyMzUg aW4gX2ludF9tYWxsb2MgKGF2PWF2QGVudHJ5PTB4N2ZmZmY3YmJjYjAwIDxtYWluX2FyZW5hPiwg Ynl0ZXM9Ynl0ZXNAZW50cnk9MTAyNCkgYXQgbWFsbG9jLmM6MzQ0OAotWy4uLl0KLSM4ICAweDAw MDA3ZmZmZjc4NGM1YWMgaW4gX0lPX3ZmcHJpbnRmX2ludGVybmFsIChzPTB4N2ZmZmY3YmJkNjAw IDxfSU9fMl8xX3N0ZG91dF8+LCBmb3JtYXQ9PG9wdGltaXplZCBvdXQ+LCBhcD1hcEBlbnRyeT0w eDdmZmZmNzdmZDdmOCkgYXQgdmZwcmludGYuYzoxNjMxCi0jOSAgMHgwMDAwN2ZmZmY3ODUzOTM5 IGluIF9fcHJpbnRmIChmb3JtYXQ9PG9wdGltaXplZCBvdXQ+KSBhdCBwcmludGYuYzozMwotIzEw IDB4MDAwMDAwMDAwMDQwMGQ2YiBpbiBkb3duICgpCi0jMTEgMHgwMDAwMDAwMDAwNDAwZjJjIGlu IF9fbW9yZXN0YWNrICgpCi0jMTIgMHgwMDAwMDAwMDAwNDAwZGRhIGluIGRvd24gKCkKLVsuLi5d Ci0KLVRoaXMgYXBwYXJlbnRseSBpcyBkdWUgdG8gLSBtYW4gZ2NjIC0gLWZzcGxpdC1zdGFjazoK LQlXaGVuIGNvZGUgY29tcGlsZWQgd2l0aCAtZnNwbGl0LXN0YWNrIGNhbGxzIGNvZGUgY29tcGls ZWQgd2l0aG91dAotCS1mc3BsaXQtc3RhY2ssIHRoZXJlIG1heSBub3QgYmUgbXVjaCBzdGFjayBz cGFjZSBhdmFpbGFibGUgZm9yIHRoZQotCWxhdHRlciBjb2RlIHRvIHJ1bi4gIElmIGNvbXBpbGlu ZyBhbGwgY29kZSwgaW5jbHVkaW5nIGxpYnJhcnkgY29kZSwKLQl3aXRoIC1mc3BsaXQtc3RhY2sg aXMgbm90IGFuIG9wdGlvbiwgdGhlbiB0aGUgbGlua2VyIGNhbiBmaXggdXAgdGhlc2UKLQljYWxs cyBzbyB0aGF0IHRoZSBjb2RlIGNvbXBpbGVkIHdpdGhvdXQgLWZzcGxpdC1zdGFjayBhbHdheXMg aGFzCi0JYSBsYXJnZSBzdGFjay4gIFN1cHBvcnQgZm9yIHRoaXMgaXMgaW1wbGVtZW50ZWQgaW4g dGhlIGdvbGQgbGlua2VyIGluCi0JR05VIGJpbnV0aWxzIHJlbGVhc2UgMi4yMSBhbmQgbGF0ZXIu Ci0KLVBlcnNvbmFsbHkgSSBkbyBub3QgdW5kZXJzdGFuZCB3aHkgZ29sZCBpcyBub3QgdGhlIGRl ZmF1bHQgbGlua2VyIGFzIEdOVSBsZCBpcwotdW51c2FibHkgc2xvdyAoNngpIGZvciBDKysgYnV0 IHRoYXQgaXMgb2ZmLXRvcGljIGhlcmUuCi0KLU9LIGZvciBjaGVjay1pbj8KLQotCi1UaGFua3Ms Ci1KYW4KLQotLS1IbEwrNW42cno1cElVeGJECi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNo YXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9MQot Ci1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotMjAxNi0xMC0yMiAgSmFuIEtyYXRvY2h2aWwgIDxq YW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIuYmFzZS9tb3Jlc3RhY2suZXhwOiBU cnkgdG8gYnVpbGQgaXQgdXNpbmcgLWZ1c2UtbGQ9Z29sZCBmaXJzdC4KLQotZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbW9yZXN0YWNrLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvbW9yZXN0YWNrLmV4cAotaW5kZXggMTJmNWQyOC4uY2FhODViOCAxMDA2NDQKLS0tLSBh L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbW9yZXN0YWNrLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9tb3Jlc3RhY2suZXhwCi1AQCAtMjMsNyArMjMsMTEgQEAgaWYgeyRnY2NfY29t cGlsZWQgPT0gMH0gewotIAotIHN0YW5kYXJkX3Rlc3RmaWxlCi0gCi0taWYgeyBbcHJlcGFyZV9m b3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHNyY2ZpbGUge2FkZGl0aW9u YWxfZmxhZ3M9LWZzcGxpdC1zdGFja31dIH0gewotKyMgLWZ1c2UtbGQ9Z29sZCBpcyB1c2VkIGZv ciBjYWxsaW5nIHByaW50ZiBjb2RlIGJ1aWx0IHdpdGhvdXQgLWZzcGxpdC1zdGFjawotKyMgd2hp Y2ggY291bGQgY3Jhc2ggb3RoZXJpc2UuICBTZWUgR0NDIGRvY3VtZW50YXRpb24gb2YgLWZzcGxp dC1zdGFjay4KLStzZXQgb3B0cyAiYWRkaXRpb25hbF9mbGFncz0tZnNwbGl0LXN0YWNrIgotK2lm IHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICRzcmNm aWxlIFtsaXN0ICRvcHRzIGFkZGl0aW9uYWxfZmxhZ3M9LWZ1c2UtbGQ9Z29sZF1dIFwKLSsgICAg ICYmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAkc3Jj ZmlsZSAkb3B0c10gfSB7Ci0gICAgIHJldHVybiAtMQotIH0KLSAKLQotLS1IbEwrNW42cno1cElV eGJELS0KLQoKZGlmZiAtLWdpdCBhL2dkYi11cHN0cmVhbS5wYXRjaCBiL2dkYi11cHN0cmVhbS5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzczYjdhOC4uMDAwMDAwMAotLS0g YS9nZGItdXBzdHJlYW0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NTkgKzAsMCBAQAotY29t bWl0IDJjMjlkZjI1YjdjMmZmMDA2YjQ1YWZkODBlZTZkZDczNGViYmQ0N2MKLUF1dGhvcjogU2Vy Z2lvIER1cmlnYW4gSnVuaW9yIDxzZXJnaW9kakByZWRoYXQuY29tPgotRGF0ZTogICBTdW4gU2Vw IDExIDE2OjUzOjA5IDIwMTYgLTA0MDAKLQotICAgIEZpeCBmYWxzZSBGQUlMIG9uIGdkYi5iYXNl L3N0YXAtcHJvYmUuZXhwLCBkdWUgdG8gSUNGIG9wdGltaXphdGlvbgotICAgIAotICAgIEdDQyA2 J3MgSUNGIG9wdGltaXphdGlvbiBwYXNzIGlzIG1ha2luZyB0aGUgZGVjbGFyYXRpb24gb2YgJ20x JyBhbmQKLSAgICAnbTInLCBvbiBnZGIuYmFzZS9zdGFwLXByb2JlLmMsIHRvIGJlIHVuaWZpZWQu ICBIb3dldmVyLCB0aGlzIGxlYWRzIHRvCi0gICAgb25seSBvbmUgaW5zdGFuY2Ugb2YgdGhlIHBy b2JlICd0d28nIGJlaW5nIGNyZWF0ZWQsIHdoaWNoIGNhdXNlcyBhCi0gICAgZmFpbHVyZSBvbiB0 aGUgdGVzdHN1aXRlICh3aGljaCBleHBlY3RzIGEgbXVsdGktbG9jYXRpb24gYnJlYWtwb2ludCB0 bwotICAgIGJlIGluc2VydGVkIG9uIHRoZSBwcm9iZSkuCi0gICAgCi0gICAgVGhpcyBwYXRjaCBm aXhlcyB0aGlzIGZhaWx1cmUgYnkgZGVjbGFyaW5nIGEgZHVtbXkgdmFyaWFibGUgb24gJ20xJywK LSAgICBhbmQgdXNpbmcgaXQgYXMgYW4gYXJndW1lbnQgdG8gbTEncyB2ZXJzaW9uIG9mIHByb2Jl ICd0d28nLiAgU2luY2Ugd2UKLSAgICBkbyBub3QgY2FyZSBhYm91dCB0aGUgY29udGVudHMgb2Yg dGhlIGZ1bmN0aW9ucyBub3IgYWJvdXQgdGhlCi0gICAgYXJndW1lbnRzIG9mIGVhY2ggcHJvYmUg J3R3bycsIHRoaXMgaXMgT0suCi0gICAgCi0gICAgZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6Ci0g ICAgMjAxNi0wOS0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNv bT4KLSAgICAJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4K LSAgICAKLSAgICAJKiBnZGIuYmFzZS9zdGFwLXByb2JlLmMgKG0xKTogTmV3IHZhcmlhYmxlICdk dW1teScsIG5lY2Vzc2FyeSB0bwotICAgIAltYWtlIG0xJ3MgZGVmaW5pdGlvbiB0byBiZSBkaWZm ZXJlbnQgZnJvbSBtMidzLiAgVXNlICdkdW1teScgYXMgYW4KLSAgICAJYXJndW1lbnQgZm9yIHBy b2JlICd0d28nLgotCi0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMjIGIvZ2RiL3Rl c3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsMTAgQEAKLSsyMDE2LTA5LTExICBTZXJnaW8g RHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgotKwkgICAgSmFuIEtyYXRvY2h2 aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotKwotKwkqIGdkYi5iYXNlL3N0YXAtcHJv YmUuYyAobTEpOiBOZXcgdmFyaWFibGUgJ2R1bW15JywgbmVjZXNzYXJ5IHRvCi0rCW1ha2UgbTEn cyBkZWZpbml0aW9uIHRvIGJlIGRpZmZlcmVudCBmcm9tIG0yJ3MuICBVc2UgJ2R1bW15JyBhcyBh bgotKwlhcmd1bWVudCBmb3IgcHJvYmUgJ3R3bycuCi0rCi0gMjAxNi0wOS0xMCAgSm9uIEJlbmlz dG9uICA8am9uQGJlbmlzdG9uLmNvbT4KLSAKLSAJKiBsaWIvbWktc3VwcG9ydC5leHAgKG1pX2dk Yl90YXJnZXRfbG9hZCk6IFVzZSB0YXJnZXRfc2ltX29wdGlvbnMKLS0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2Uvc3RhcC1wcm9iZS5jCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3N0 YXAtcHJvYmUuYwotQEAgLTUzLDggKzUzLDEzIEBAIHN0cnVjdCBmdW5jcwotIHN0YXRpYyB2b2lk Ci0gbTEgKHZvaWQpCi0gewotKyAgLyogbTEgYW5kIG0yIGFyZSBlcXVpdmFsZW50LCBidXQgYmVj YXVzZSBvZiBzb21lIGNvbXBpbGVyCi0rICAgICBvcHRpbWl6YXRpb25zIHdlIGhhdmUgdG8gbWFr ZSBlYWNoIG9mIHRoZW0gdW5pcXVlLiAgVGhpcyBpcyB3aHkKLSsgICAgIHdlIGhhdmUgdGhpcyBk dW1teSB2YXJpYWJsZSBoZXJlLiAgKi8KLSsgIHZvbGF0aWxlIGludCBkdW1teSA9IDA7Ci0rCi0g ICBpZiAoVEVTVDIpCi0tICAgIFNUQVBfUFJPQkUgKHRlc3QsIHR3byk7Ci0rICAgIFNUQVBfUFJP QkUxICh0ZXN0LCB0d28sIGR1bW15KTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLQotCi1jb21taXQg ZjM4OWY2ZmVmNzZkN2NmOGU4YmViNzA2MWVkZmYyMTU1YzI4NDg5OAotQXV0aG9yOiBKYW4gS3Jh dG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLURhdGU6ICAgV2VkIE9jdCA1IDIx OjU2OjQ2IDIwMTYgKzAyMDAKLQotICAgIHRlc3RzdWl0ZTogRml4IHJlY2VudCBHQ0MgRkFJTDog Z2RiLmFyY2gvaTM4Ni1zaWduYWwuZXhwCi0gICAgCi0gICAgZ2NjLTYuMi4xLTIuZmMyNC54ODZf NjQKLSAgICAKLSAgICAoZ2RiKSBiYWNrdHJhY2UgMTBeTQotICAgIChnZGIpIEZBSUw6IGdkYi5h cmNoL2kzODYtc2lnbmFsLmV4cDogYmFja3RyYWNlIDEwCi0gICAgCi0gICAgKGdkYikgZGlzYXMv cwotICAgIER1bXAgb2YgYXNzZW1ibGVyIGNvZGUgZm9yIGZ1bmN0aW9uIG1haW46Ci0gICAgLi4u L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4Ni1zaWduYWwuYzoKLSAgICAzMCAgICAgIHsKLSAg ICAgICAweDAwMDAwMDAwMDA0MDA1N2YgPCswPjogICAgIHB1c2ggICAlcmJwCi0gICAgICAgMHgw MDAwMDAwMDAwNDAwNTgwIDwrMT46ICAgICBtb3YgICAgJXJzcCwlcmJwCi0gICAgMzEgICAgICAg IHNldHVwICgpOwotICAgICAgIDB4MDAwMDAwMDAwMDQwMDU4MyA8KzQ+OiAgICAgY2FsbHEgIDB4 NDAwNTkwIDxzZXR1cD4KLSAgICA9PiAweDAwMDAwMDAwMDA0MDA1ODggPCs5PjogICAgIG1vdiAg ICAkMHgwLCVlYXgKLSAgICAzMiAgICAgIH0KLSAgICAgICAweDAwMDAwMDAwMDA0MDA1OGQgPCsx ND46ICAgIHBvcCAgICAlcmJwCi0gICAgICAgMHgwMDAwMDAwMDAwNDAwNThlIDwrMTU+OiAgICBy ZXRxCi0gICAgRW5kIG9mIGFzc2VtYmxlciBkdW1wLgotICAgIAotICAgIFRoZSAuZXhwIHBhdGNo IGlzIGFuIG9idmlvdXMgdHlwbyBmaXggSSB0aGluay4gIFRoZSByZWdleCB3YXMgd3JpdHRlbiB0 bwotICAgIGFjY2VwdCAiQUREUiBpbiBtYWluIiBhbmQgSSBmaW5kIGl0IE9LIGFzIGNoZWNraW5n IC5kZWJ1Z19saW5lIHZhbGlkaXR5IGlzIG5vdAotICAgIHRoZSBwdXJwb3NlIG9mIHRoaXMgdGVz dGZpbGUuCi0gICAgCi0gICAgZ2NjLTQuOC41LTExLmVsNy54ODZfNjQgZGlkIG5vdCBwdXQgdGhl ICdtb3YgJDB4MCwlZWF4JyBpbnN0cnVjdGlvbiB0aGVyZSBhdAotICAgIGFsbCBzbyB0aGVyZSB3 YXMgbm8gcHJvYmxlbSB3aXRoIC5kZWJ1Z19saW5lLgotICAgIAotICAgIGdkYi90ZXN0c3VpdGUv Q2hhbmdlTG9nCi0gICAgMjAxNi0xMC0wNSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZp bEByZWRoYXQuY29tPgotICAgIAotICAgIAkqIGdkYi5hcmNoL2kzODYtc2lnbmFsLmV4cCAoYmFj a3RyYWNlIDEwKTogRml4ICMyIHR5cG8uCi0KLSMjIyBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9n Ci0jIyMgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMgLTEsMyArMSw3IEBACi0rMjAxNi0x MC0wNSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotKwotKwkq IGdkYi5hcmNoL2kzODYtc2lnbmFsLmV4cCAoYmFja3RyYWNlIDEwKTogRml4ICMyIHR5cG8uCi0r Ci0gMjAxNi0xMC0wNSAgWWFvIFFpICA8eWFvLnFpQGxpbmFyby5vcmc+Ci0gCi0gCSogbGliL2dk Yi5leHAgKHN1cHBvcnRfY29tcGxleF90ZXN0cyk6IFJldHVybiB6ZXJvIGlmCi0tLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtc2lnbmFsLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC9pMzg2LXNpZ25hbC5leHAKLUBAIC0zNSw2ICszNSw2IEBAIGdkYl9sb2FkICR7Ymlu ZmlsZX0KLSAKLSBydW50byBmdW5jCi0gZ2RiX3Rlc3QgImJhY2t0cmFjZSAxMCIgXAotLSAgICAi IzAgICgkaGV4IGluICk/ZnVuYy4qXHJcbiMxICA8c2lnbmFsIGhhbmRsZXIgY2FsbGVkPlxyXG4j MiAgKCRoZXggaW4pP21haW4uKiIKLSsgICAgIiMwICAoJGhleCBpbiApP2Z1bmMuKlxyXG4jMSAg PHNpZ25hbCBoYW5kbGVyIGNhbGxlZD5cclxuIzIgICgkaGV4IGluICk/bWFpbi4qIgotIAotIGdk Yl90ZXN0ICJmaW5pc2giICJSdW4gdGlsbCBleGl0IGZyb20gXCMwICBmdW5jLio8c2lnbmFsIGhh bmRsZXIgY2FsbGVkPiIKLQotCi1jb21taXQgMjBjMmMwMjRjMWU4OWU0MDJhNTdlOGMzNTc3ZmI5 Nzc3NzA5ZDlhNAotQXV0aG9yOiBDYXJsIEUuIExvdmUgPGNhcmxsQG9jNDczODA3MDI0MC5pYm0u Y29tPgotRGF0ZTogICBGcmkgQXVnIDE5IDExOjA2OjM4IDIwMTYgLTA3MDAKLQotICAgIEZpeCBt aXNzaW5nIGZpbGVzIGZvciBsZCB3aGVuIHRlc3Qgc3VpdGUgbm90IGNvbXBpbGVkIGluIHRoZSBz b3VyY2UgZGlyZWN0b3J5Ci0gICAgCi0gICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1ZXMgd2l0 aCBzaXggdGVzdCBzdWl0ZSBleHBlY3QgZmlsZXMgdGhhdCBkbyBub3QKLSAgICBydW4gY29ycmVj dGx5IHdoZW4gdGhlIHRlc3Qgc3VpdGUgaXMgbm90IGJ1aWx0IGluIHRoZSBzb3VyY2UgZGlyZWN0 b3J5LiAgVGhlCi0gICAgaXNzdWUgaXMgdGhlc2UgdGVzdHMgYXJlIG5vdCB1c2luZyB0aGUgY3Vy cmVudCAic3RhbmRhcmRfdGVzdGZpbGUiIGNhbGwKLSAgICBidXQgcmF0aGVyIHVzaW5nIHRoZSBv bGRlciBzZXQgY29tbWFuZCB0byBpbml0aWFsaXplIHRoZSAidGVzdGZpbGUiLAotICAgICJzcmNm aWxlIiBhbmQgImJpbnByZWZpeCIgdmFyaWFibGVzIG9yIGFyZSBtaXNzaW5nIHRoZSBzZXQgZm9y IHRoZQotICAgICJiaW5wcmVmaXgiIHZhcmlhYmxlLgotICAgIAotICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgCi0gICAgZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2cKLSAgICAKLSAgICAyMDE2LTA4LTE5ICBDYXJsIExvdmUgIDxjZWxAdXMuaWJt LmNvbT4KLSAgICAKLSAgICAJKiBnZGIuYXJjaC9hbHRpdmVjLXJlZ3MuZXhwOiBVc2Ugc3RhbmRh cmRfdGVzdGZpbGUgaW5zdGVhZCBvZgotICAgIAltYWludGFpbmluZyBzZXBhcmF0ZSBsb2dpYyBm b3IgY29uc3RydWN0aW5nIHRoZSBvdXRwdXQgcGF0aC4KLSAgICAJKiBnZGIuYXJjaC9wb3dlcnBj LWQxMjgtcmVncy5leHA6IExpa2V3aXNlLgotICAgIAkqIGdkYi5hcmNoL3BwYy1kZnAuZXhwOiBM aWtld2lzZS4KLSAgICAJKiBnZGIuYXJjaC9wcGMtZnAuZXhwOiBMaWtld2lzZS4KLSAgICAJKiBn ZGIuYXJjaC92c3gtcmVncy5leHA6IExpa2V3aXNlLgotICAgIAkqIGdkYi5hcmNoL2FsdGl2ZWMt YWJpLmV4cDogTGlrZXdpc2UsIHBsdXMgYWRkZWQgbG9jYWwgdmFyaWFibGUKLSAgICAJYmlucHJl Zml4IGZvciBnZW5lcmF0aW5nIHRoZSBhZGRpdGlvbmFsIGJpbmFyeSBmaWxlcy4KLQotIyMjIGEv Z2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0j IyAtMSwzICsxLDE0IEBACi0rMjAxNi0wOC0xOSAgQ2FybCBMb3ZlICA8Y2VsQHVzLmlibS5jb20+ Ci0rCi0rCSogZ2RiLmFyY2gvYWx0aXZlYy1yZWdzLmV4cDogVXNlIHN0YW5kYXJkX3Rlc3RmaWxl IGluc3RlYWQgb2YKLSsJbWFpbnRhaW5pbmcgc2VwYXJhdGUgbG9naWMgZm9yIGNvbnN0cnVjdGlu ZyB0aGUgb3V0cHV0IHBhdGguCi0rCSogZ2RiLmFyY2gvcG93ZXJwYy1kMTI4LXJlZ3MuZXhwOiBM aWtld2lzZS4KLSsJKiBnZGIuYXJjaC9wcGMtZGZwLmV4cDogTGlrZXdpc2UuCi0rCSogZ2RiLmFy Y2gvcHBjLWZwLmV4cDogTGlrZXdpc2UuCi0rCSogZ2RiLmFyY2gvdnN4LXJlZ3MuZXhwOiBMaWtl d2lzZS4KLSsJKiBnZGIuYXJjaC9hbHRpdmVjLWFiaS5leHA6IExpa2V3aXNlLCBwbHVzIGFkZGVk IGxvY2FsIHZhcmlhYmxlCi0rCWJpbnByZWZpeCBmb3IgZ2VuZXJhdGluZyB0aGUgYWRkaXRpb25h bCBiaW5hcnkgZmlsZXMuCi0rCi0gMjAxNi0wOC0xOSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVk aGF0LmNvbT4KLSAKLSAJKiBnZGIudHJhY2UvbWktdHJhY2UtZnJhbWUtY29sbGVjdGVkLmV4cAot LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbHRpdmVjLWFiaS5leHAKLSsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gvYWx0aXZlYy1hYmkuZXhwCi1AQCAtMjYsOSArMjYsNyBAQCBpZiB7 IVtpc3RhcmdldCAicG93ZXJwYyoiXSB8fCBbc2tpcF9hbHRpdmVjX3Rlc3RzXX0gdGhlbiB7Ci0g ICAgIHJldHVybgotIH0KLSAKLS1zZXQgdGVzdGZpbGUgImFsdGl2ZWMtYWJpIgotLXNldCBiaW5m aWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KLS1zZXQgc3JjZmlsZSAke3Rlc3Rm aWxlfS5jCi0rc3RhbmRhcmRfdGVzdGZpbGUKLSAKLSBpZiBbZ2V0X2NvbXBpbGVyX2luZm9dIHsK LSAgICAgd2FybmluZyAiZ2V0X2NvbXBpbGVyIGZhaWxlZCIKLUBAIC0xNDYsNiArMTQ0LDggQEAg cHJvYyBhbHRpdmVjX2FiaV90ZXN0cyB7IGV4dHJhX2ZsYWdzIGZvcmNlX2FiaSB9IHsKLSB9Ci0g Ci0gaWYgW3Rlc3RfY29tcGlsZXJfaW5mbyBnY2MqXSB7Ci0rICAgIHNldCBiaW5wcmVmaXggJHti aW5maWxlfQotKwotICAgICB3aXRoX3Rlc3RfcHJlZml4ICJkZWZhdWx0IEFCSSwgYXV0byIgewot IAlhbHRpdmVjX2FiaV90ZXN0cyAgImFkZGl0aW9uYWxfZmxhZ3M9LW1hbHRpdmVjIiAiYXV0byIK LSAgICAgfQotQEAgLTE1NiwyMyArMTU2LDIzIEBAIGlmIFt0ZXN0X2NvbXBpbGVyX2luZm8gZ2Nj Kl0gewotIAkjIE9uIDY0LWJpdCBHTlUvTGludXggd2l0aCBHQ0MgNC4xIGFuZCA0LjIsIC1tYWJp PW5vLWFsdGl2ZWMKLSAJIyB3YXMgYnJva2VuLCBzbyBza2lwIHRob3NlIHRlc3RzIHRoZXJlLgot IAlpZiB7ICFbaXNfbHA2NF90YXJnZXRdIHx8ICFbdGVzdF9jb21waWxlcl9pbmZvICJnY2MtNC1c WzEyXF0tKiJdIH0gewotLQkgICAgc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rl c3RmaWxlfS1nZS1nZQotKwkgICAgc2V0IGJpbmZpbGUgJHtiaW5wcmVmaXh9LWdlLWdlCi0gCSAg ICB3aXRoX3Rlc3RfcHJlZml4ICJnZW5lcmljIEFCSSwgZm9yY2VkIiB7Ci0gCQlhbHRpdmVjX2Fi aV90ZXN0cyAiYWRkaXRpb25hbF9mbGFncz0tbWFsdGl2ZWMgYWRkaXRpb25hbF9mbGFncz0tbWFi aT1uby1hbHRpdmVjIiAiZ2VuZXJpYyIKLSAJICAgIH0KLSAKLS0JICAgIHNldCBiaW5maWxlICR7 b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0tZ2UtYXV0bwotKwkgICAgc2V0IGJpbmZpbGUg JHtiaW5wcmVmaXh9LWdlLWF1dG8KLSAJICAgIHdpdGhfdGVzdF9wcmVmaXggImdlbmVyaWMgQUJJ LCBhdXRvIiB7Ci0gCQlhbHRpdmVjX2FiaV90ZXN0cyAiYWRkaXRpb25hbF9mbGFncz0tbWFsdGl2 ZWMgYWRkaXRpb25hbF9mbGFncz0tbWFiaT1uby1hbHRpdmVjIiAiYXV0byIKLSAJICAgIH0KLSAJ fQotIAotLQlzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LWF2LWF2 Ci0rCXNldCBiaW5maWxlICR7YmlucHJlZml4fS1hdi1hdgotIAl3aXRoX3Rlc3RfcHJlZml4ICJB bHRpVmVjIEFCSSwgZm9yY2VkIiB7Ci0gCSAgICBhbHRpdmVjX2FiaV90ZXN0cyAiYWRkaXRpb25h bF9mbGFncz0tbWFsdGl2ZWMgYWRkaXRpb25hbF9mbGFncz0tbWFiaT1hbHRpdmVjIiAiYWx0aXZl YyIKLSAJfQotIAotLQlzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9 LWF2LWF1dG8KLSsJc2V0IGJpbmZpbGUgJHtiaW5wcmVmaXh9LWF2LWF1dG8KLSAJd2l0aF90ZXN0 X3ByZWZpeCAiQWx0aVZlYyBBQkksIGF1dG8iIHsKLSAJICAgIGFsdGl2ZWNfYWJpX3Rlc3RzICJh ZGRpdGlvbmFsX2ZsYWdzPS1tYWx0aXZlYyBhZGRpdGlvbmFsX2ZsYWdzPS1tYWJpPWFsdGl2ZWMi ICJhdXRvIgotIAl9Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FsdGl2ZWMtcmVncy5l eHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYWx0aXZlYy1yZWdzLmV4cAotQEAgLTI3 LDkgKzI3LDcgQEAgaWYgeyFbaXN0YXJnZXQgInBvd2VycGMqIl0gfHwgW3NraXBfYWx0aXZlY190 ZXN0c119IHRoZW4gewotICAgICByZXR1cm4KLSB9Ci0gCi0tc2V0IHRlc3RmaWxlICJhbHRpdmVj LXJlZ3MiCi0tc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQotLXNl dCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKLStzdGFuZGFyZF90ZXN0ZmlsZQotIAotIHNldCBjb21w aWxlX2ZsYWdzIHtkZWJ1ZyBub3dhcm5pbmdzfQotIGlmIFtnZXRfY29tcGlsZXJfaW5mb10gewot LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9wb3dlcnBjLWQxMjgtcmVncy5leHAKLSsrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1kMTI4LXJlZ3MuZXhwCi1AQCAtMjUsOSAr MjUsNyBAQCBpZiAhW2lzdGFyZ2V0ICJwb3dlcnBjNjQqLSoiXSB0aGVuIHsKLSAgICAgcmV0dXJu Ci0gfQotIAotLXNldCB0ZXN0ZmlsZSAicG93ZXJwYy1kMTI4LXJlZ3MiCi0tc2V0IHNyY2ZpbGUg JHt0ZXN0ZmlsZX0uYwotLXNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0Zmls ZX0KLStzdGFuZGFyZF90ZXN0ZmlsZQotIAotIGlmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9 LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7cXVpZXQgZGVi dWd9XSAhPSAiIiB9IHsKLSAgICAgIHVudGVzdGVkIHBvd2VycGMtZDEyOC1yZWdzLmV4cAotLS0t IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9wcGMtZGZwLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC9wcGMtZGZwLmV4cAotQEAgLTIxLDkgKzIxLDcgQEAgaWYgIVtpc3RhcmdldCAi cG93ZXJwYyoiXSB0aGVuIHsKLSAgICAgcmV0dXJuCi0gfQotIAotLXNldCB0ZXN0ZmlsZSAicHBj LWRmcCIKLS1zZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9Ci0tc2V0 IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYwotK3N0YW5kYXJkX3Rlc3RmaWxlCi0gCi0gaWYgW2dldF9j b21waWxlcl9pbmZvXSB7Ci0gICAgIHdhcm5pbmcgImdldF9jb21waWxlciBmYWlsZWQiCi0tLS0g YS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3BwYy1mcC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmFyY2gvcHBjLWZwLmV4cAotQEAgLTIxLDkgKzIxLDcgQEAgaWYgIVtpc3RhcmdldCAicG93 ZXJwYyoiXSB0aGVuIHsKLSAgICAgcmV0dXJuCi0gfQotIAotLXNldCB0ZXN0ZmlsZSAicHBjLWZw IgotLXNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KLS1zZXQgc3Jj ZmlsZSAke3Rlc3RmaWxlfS5jCi0rc3RhbmRhcmRfdGVzdGZpbGUKLSAKLSBpZiBbZ2V0X2NvbXBp bGVyX2luZm9dIHsKLSAgICAgd2FybmluZyAiZ2V0X2NvbXBpbGVyIGZhaWxlZCIKLS0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmFyY2gvdnN4LXJlZ3MuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5hcmNoL3ZzeC1yZWdzLmV4cAotQEAgLTI0LDkgKzI0LDcgQEAgaWYgeyFbaXN0YXJnZXQgInBv d2VycGMqIl0gfHwgW3NraXBfdnN4X3Rlc3RzXX0gdGhlbiB7Ci0gICAgIHJldHVybgotIH0KLSAK LS1zZXQgdGVzdGZpbGUgInZzeC1yZWdzIgotLXNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRp cn0vJHt0ZXN0ZmlsZX0KLS1zZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jCi0rc3RhbmRhcmRfdGVz dGZpbGUKLSAKLSBzZXQgY29tcGlsZV9mbGFncyB7ZGVidWcgbm93YXJuaW5ncyBxdWlldH0KLSBp ZiBbZ2V0X2NvbXBpbGVyX2luZm9dIHsKLQotCi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2Ri LXBhdGNoZXMvMjAxNi0xMC9tc2cwMDI1OC5odG1sCi1TdWJqZWN0OiBbdGVzdHN1aXRlIG9idl0g VXNlIHN0YW5kYXJkX291dHB1dF9maWxlCi0KLUZyb206IEphbiBLcmF0b2NodmlsIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPgotRGF0ZTogVHVlLCAxMSBPY3QgMjAxNiAxNjo0Mzo1OCArMDIw MAotU3ViamVjdDogW1BBVENIXSB0ZXN0c3VpdGU6IFVzZSBzdGFuZGFyZF9vdXRwdXRfZmlsZQot U3ViamVjdDogW1BBVENIXSB0ZXN0c3VpdGU6IFVzZSBzdGFuZGFyZF9vdXRwdXRfZmlsZQotCi1n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotMjAxNi0xMC0xMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIuYXJjaC9wb3dlcnBjLXByb2xvZ3VlLmV4 cDogVXNlIHN0YW5kYXJkX291dHB1dF9maWxlLgotCSogZ2RiLmFyY2gvcHBjNjQtc3ltdGFiLWNv cmRpYy5leHA6IExpa2V3aXNlLgotCSogZ2RiLmFyY2gvdnN4LXJlZ3MuZXhwOiBMaWtld2lzZS4K LS0tLQotIGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCA2 ICsrKysrKwotIGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1wcm9sb2d1ZS5leHAgICAg fCAyICstCi0gZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9wcGM2NC1zeW10YWItY29yZGljLmV4cCB8 IDQgKystLQotIGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvdnN4LXJlZ3MuZXhwICAgICAgICAgICAg fCAyICstCi0gNCBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgYi9nZGIvdGVzdHN1aXRl L0NoYW5nZUxvZwotaW5kZXggOWM3ZGYyOS4uYjZiYTBlYyAxMDA2NDQKLSMjIyBhL2dkYi90ZXN0 c3VpdGUvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMgLTEsMyAr MSw5IEBACi0rMjAxNi0xMC0xMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPgotKwotKwkqIGdkYi5hcmNoL3Bvd2VycGMtcHJvbG9ndWUuZXhwOiBVc2Ugc3RhbmRh cmRfb3V0cHV0X2ZpbGUKLSsJKiBnZGIuYXJjaC9wcGM2NC1zeW10YWItY29yZGljLmV4cDogTGlr ZXdpc2UuCi0rCSogZ2RiLmFyY2gvdnN4LXJlZ3MuZXhwOiBMaWtld2lzZS4KLSsKLSAyMDE2LTEw LTA3ICBZYW8gUWkgIDx5YW8ucWlAbGluYXJvLm9yZz4KLSAKLSAJKiBnZGIueG1sL3RkZXNjLXJl Z3MuZXhwOiBTZXQgcmVnZGlyIHRvICJhcm0vIi4KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5hcmNoL3Bvd2VycGMtcHJvbG9ndWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9w b3dlcnBjLXByb2xvZ3VlLmV4cAotaW5kZXggMzQxYWUwMi4uMGM3NGQ3ZSAxMDA2NDQKLS0tLSBh L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1wcm9sb2d1ZS5leHAKLSsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1wcm9sb2d1ZS5leHAKLUBAIC0yNCw3ICsyNCw3IEBA IGlmIHtbaXN0YXJnZXQgKi0qLWFpeCpdIHx8ICFbaXN0YXJnZXQgInBvd2VycGMtKi0qIl19IHRo ZW4gewotIAotIHNldCB0ZXN0ZmlsZSAicG93ZXJwYy1wcm9sb2d1ZSIKLSBzZXQgc3JjZmlsZSAk e3Rlc3RmaWxlfS5jCi0tc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxl fQotK3NldCBiaW5maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3RmaWxlfV0KLSAKLSAj IERvbid0IHVzZSAiZGVidWciLCBzbyB0aGF0IHdlIGRvbid0IGhhdmUgbGluZSBpbmZvcm1hdGlv biBmb3IgdGhlIGFzc2VtYmx5Ci0gIyBmcmFnbWVudHMuCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYXJjaC9wcGM2NC1zeW10YWItY29yZGljLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gvcHBjNjQtc3ltdGFiLWNvcmRpYy5leHAKLWluZGV4IGM4Y2I0MjkuLjNmZGM0OTAgMTAw NjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3BwYzY0LXN5bXRhYi1jb3JkaWMuZXhw Ci0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3BwYzY0LXN5bXRhYi1jb3JkaWMuZXhwCi1A QCAtMjEsOSArMjEsOSBAQCBpZiB7IVtpc3RhcmdldCAicG93ZXJwYyoiXSB8fCAhW2lzX2xwNjRf dGFyZ2V0XX0gewotIHN0YW5kYXJkX3Rlc3RmaWxlCi0gCi0gc2V0IGtvYnoyZmlsZSAke3NyY2Rp cn0vJHtzdWJkaXJ9L2NvcmRpYy5rby5iejIKLS1zZXQga29maWxlICR7b2JqZGlyfS8ke3N1YmRp cn0vY29yZGljLmtvCi0rc2V0IGtvZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgY29yZGljLmtv XQotIHNldCBrb2RlYnVnYnoyZmlsZSAke3NyY2Rpcn0vJHtzdWJkaXJ9L2NvcmRpYy5rby5kZWJ1 Zy5iejIKLS1zZXQga29kZWJ1Z2ZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS9jb3JkaWMua28uZGVi dWcKLStzZXQga29kZWJ1Z2ZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlIGNvcmRpYy5rby5kZWJ1 Z10KLSAKLSBpZiB7W2NhdGNoICJzeXN0ZW0gXCJiemlwMiAtZGMgJHtrb2J6MmZpbGV9ID4ke2tv ZmlsZX1cIiJdICE9IDB9IHsKLSAgICAgdW50ZXN0ZWQgImZhaWxlZCBiemlwMiBmb3IgJHtrb2J6 MmZpbGV9IgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvdnN4LXJlZ3MuZXhw IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC92c3gtcmVncy5leHAKLWluZGV4IDMwN2YxMmEuLjMx ZTU4ZTYgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3ZzeC1yZWdzLmV4cAot KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC92c3gtcmVncy5leHAKLUBAIC0xNTIsNyArMTUy LDcgQEAgZm9yIHtzZXQgaSAwfSB7JGkgPCAzMn0ge2luY3IgaSAxfSB7Ci0gIyBsYXRlciB3aGVu IGxvYWRpbmcgdGhlIGNvcmUgZmlsZSAoaS5lLiwgZGlmZmVyZW50IHJlZ2lzdGVyIHZhbHVlcyBm b3IgZGlmZmVyZW50Ci0gIyB2ZWN0b3IgcmVnaXN0ZXIgYmFua3MpLgotIAotLXNldCBjb3JlZmls ZSAiJHtvYmpkaXJ9LyR7c3ViZGlyfS92c3gtY29yZS50ZXN0IgotK3NldCBjb3JlZmlsZSBbc3Rh bmRhcmRfb3V0cHV0X2ZpbGUgdnN4LWNvcmUudGVzdF0KLSBzZXQgY29yZV9zdXBwb3J0ZWQgW2dk Yl9nY29yZV9jbWQgIiRjb3JlZmlsZSIgIlNhdmUgYSBWU1gtZW5hYmxlZCBjb3JlZmlsZSJdCi0g Ci0gIyBOb3cgcnVuIHRoZSBGMzJ+RjYzL1ZSMH5WUjMxIHRlc3RzLgotLS0gCi0yLjcuNAotCi0K LWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTEwL21zZzAwMjY4Lmh0 bWwKLVN1YmplY3Q6IFt0ZXN0c3VpdGUgb2J2XSBGaXggZ2RiLmFyY2gvcG93ZXJwYy1wcm9sb2d1 ZS5jIGNvbXBpbGF0aW9uCi0KLUZyb206IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPgotRGF0ZTogVHVlLCAxMSBPY3QgMjAxNiAxOTowOTowNSArMDIwMAotU3ViamVj dDogW1BBVENIXSB0ZXN0c3VpdGU6IEZpeCBnZGIuYXJjaC9wb3dlcnBjLXByb2xvZ3VlLmMgY29t cGlsYXRpb24KLVN1YmplY3Q6IFtQQVRDSF0gdGVzdHN1aXRlOiBGaXggZ2RiLmFyY2gvcG93ZXJw Yy1wcm9sb2d1ZS5jIGNvbXBpbGF0aW9uCi0KLWdjYy02LjIuMQotCi1nZGIgY29tcGlsZSBmYWls ZWQsIGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvcG93ZXJwYy1wcm9sb2d1ZS5jOiBJbiBmdW5jdGlv biAnbWFpbic6Ci1nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3Bvd2VycGMtcHJvbG9ndWUuYzozMjoz OiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnb3B0aW1pemVkXzEn IFstV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQotICAgb3B0aW1pemVkXzEgKCk7Ci0g ICBefn5+fn5+fn5+fgotCi1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotMjAxNi0xMC0xMSAgSmFu IEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIuYXJjaC9w b3dlcnBjLXByb2xvZ3VlLmMgKG9wdGltaXplZF8xKTogTmV3IGRlY2xhcmF0aW9uLgotLS0tCi0g Z2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgfCA0ICsrKysKLSBnZGIv dGVzdHN1aXRlL2dkYi5hcmNoL3Bvd2VycGMtcHJvbG9ndWUuYyB8IDEgKwotIDIgZmlsZXMgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL0NoYW5n ZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi1pbmRleCBiNmJhMGVjLi5iNGNjZDRhIDEw MDY0NAotIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIyBiL2dkYi90ZXN0c3VpdGUv Q2hhbmdlTG9nCi0jIyAtMSw1ICsxLDkgQEAKLSAyMDE2LTEwLTExICBKYW4gS3JhdG9jaHZpbCAg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0gCi0rCSogZ2RiLmFyY2gvcG93ZXJwYy1wcm9s b2d1ZS5jIChvcHRpbWl6ZWRfMSk6IE5ldyBkZWNsYXJhdGlvbi4KLSsKLSsyMDE2LTEwLTExICBK YW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0rCi0gCSogZ2RiLmFy Y2gvcG93ZXJwYy1wcm9sb2d1ZS5leHA6IFVzZSBzdGFuZGFyZF9vdXRwdXRfZmlsZQotIAkqIGdk Yi5hcmNoL3BwYzY0LXN5bXRhYi1jb3JkaWMuZXhwOiBMaWtld2lzZS4KLSAJKiBnZGIuYXJjaC92 c3gtcmVncy5leHA6IExpa2V3aXNlLgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFy Y2gvcG93ZXJwYy1wcm9sb2d1ZS5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9wb3dlcnBjLXBy b2xvZ3VlLmMKLWluZGV4IDZjMTBkZmMuLmExYjgwNjUgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL3Bvd2VycGMtcHJvbG9ndWUuYwotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YXJjaC9wb3dlcnBjLXByb2xvZ3VlLmMKLUBAIC0yNCw2ICsyNCw3IEBACi0gI2VuZGlmCi0gCi0g dm9pZCBnZGIyMDI5ICh2b2lkKTsKLSt2b2lkIG9wdGltaXplZF8xICh2b2lkKTsKLSAKLSBpbnQK LSBtYWluICh2b2lkKQotLS0gCi0yLjcuNAotCi0KLQotaHR0cDovL3NvdXJjZXdhcmUub3JnL21s L2dkYi1wYXRjaGVzLzIwMTYtMTAvbXNnMDA2MTMuaHRtbAotU3ViamVjdDogW3Rlc3RzdWl0ZSBw YXRjaF0gRml4IGdjY19jb21waWxlZCBmb3IgZ2NjIDYgJiA3Ci0KLQotLS1JUzB6S2t6d1VHeWRG TzBvCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQt RGlzcG9zaXRpb246IGlubGluZQotCi1IaSwKLQotT0sgZm9yIGNoZWNrLWluPwotCi0KLUphbgot Ci0tLUlTMHpLa3p3VUd5ZEZPMG8KLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11 cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0xCi0KLWdkYi90 ZXN0c3VpdGUvQ2hhbmdlTG9nCi0yMDE2LTEwLTIwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIGxpYi9nZGIuZXhwIChnZXRfY29tcGlsZXJfaW5mbyk6 IEdlbmVyYWxpemUgZ2NjX2NvbXBpbGUgcmVnZXhwLgotCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9saWIvZ2RiLmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKLWluZGV4IDM3OGVl YTAuLjdkOWIxOTggMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi0rKysg Yi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi1AQCAtMzI5MCwxMiArMzI5MCw4IEBAIHByb2Mg Z2V0X2NvbXBpbGVyX2luZm8ge3thcmcgIiJ9fSB7Ci0gICAgIH0KLSAKLSAgICAgIyBTZXQgdGhl IGxlZ2FjeSBzeW1ib2xzLgotLSAgICBzZXQgZ2NjX2NvbXBpbGVkICAgICAwCi0tICAgIGlmIHsg W3JlZ2V4cCAiXmdjYy0xLSIgIiRjb21waWxlcl9pbmZvIiBdIH0geyBzZXQgZ2NjX2NvbXBpbGVk IDEgfQotLSAgICBpZiB7IFtyZWdleHAgIl5nY2MtMi0iICIkY29tcGlsZXJfaW5mbyIgXSB9IHsg c2V0IGdjY19jb21waWxlZCAyIH0KLS0gICAgaWYgeyBbcmVnZXhwICJeZ2NjLTMtIiAiJGNvbXBp bGVyX2luZm8iIF0gfSB7IHNldCBnY2NfY29tcGlsZWQgMyB9Ci0tICAgIGlmIHsgW3JlZ2V4cCAi XmdjYy00LSIgIiRjb21waWxlcl9pbmZvIiBdIH0geyBzZXQgZ2NjX2NvbXBpbGVkIDQgfQotLSAg ICBpZiB7IFtyZWdleHAgIl5nY2MtNS0iICIkY29tcGlsZXJfaW5mbyIgXSB9IHsgc2V0IGdjY19j b21waWxlZCA1IH0KLSsgICAgc2V0IGdjY19jb21waWxlZCAwCi0rICAgIHJlZ2V4cCAiXmdjYy0o XFswLTlcXSspLSIgIiRjb21waWxlcl9pbmZvIiBtYXRjaGFsbCBnY2NfY29tcGlsZWQKLSAKLSAg ICAgIyBMb2cgd2hhdCBoYXBwZW5lZC4KLSAgICAgdmVyYm9zZSAtbG9nICJnZXRfY29tcGlsZXJf aW5mbzogJGNvbXBpbGVyX2luZm8iCi0KLS0tSVMwektrendVR3lkRk8wby0tCi0KLQotCi1jb21t aXQgMWI3ZTNkMmZiNzAzNmNlNmY5ZDc0ZTMyZGMwNTI1MThmNWNkNDViNgotQXV0aG9yOiBOaWNr IENsaWZ0b24gPG5pY2tjQHJlZGhhdC5jb20+Ci1EYXRlOiAgIEZyaSBGZWIgMyAwOTowNDoyMSAy MDE3ICswMDAwCi0KLSAgICBGaXggY29tcGlsZSB0aW1lIHdhcm5pbmcgbWVzc2FnZXMgd2hlbiBj b21waWxpbmcgYmludXRpbHMgd2l0aCBnY2MgNy4wLjEuCi0gICAgCi0gICAgICAgICAgICBQUiAy MTA5NgotICAgIGJmZCAgICAgKiBjb2ZmY29kZS5oIChjb2ZmX3dyaXRlX29iamVjdF9jb250ZW50 cyk6IEVubGFyZ2Ugc2l6ZSBvZgotICAgICAgICAgICAgc19uYW1lX2J1ZiBpbiBvcmRlciB0byBh dm9pZCBjb21waWxlIHRpbWUgd2FybmluZyBhYm91dCBwb3NzaWJsZQotICAgICAgICAgICAgaW50 ZWdlciB0cnVuY2F0aW9uLgotICAgICAgICAgICAgKiBlbGYzMi1uZHMzMi5jIChuZHMzMl9lbGZf ZXg5X2ltcG9ydF90YWJsZSk6IE1hc2sgb2ZmIGxvd2VyCi0gICAgICAgICAgICAzMi1iaXRzIG9m IGluc24gdmFsdWUgYmVmb3JlIHByaW50aW5nIGludG8gYnVmZmVyLgotICAgIAotICAgIG9wY29k ZXMgKiBhYXJjaDY0LW9wYy5jIChwcmludF9yZWdpc3Rlcl9saXN0KTogRW5zdXJlIHRoYXQgdGhl IHJlZ2lzdGVyCi0gICAgICAgICAgICBsaXN0IGluZGV4IHdpbGwgZmlyIGludG8gdGhlIHRiIGJ1 ZmZlci4KLSAgICAgICAgICAgIChwcmludF9yZWdpc3Rlcl9vZmZzZXRfYWRkcmVzcyk6IExpa2V3 aXNlLgotICAgICAgICAgICAgKiB0aWM2eC1kaXMuYyAocHJpbnRfaW5zbl90aWM2eCk6IEluY3Jl YXNlIHNpemUgb2YgZnVuY191bml0X2J1Zi4KLQotIyMjIGEvYmZkL0NoYW5nZUxvZwotIyMjIGIv YmZkL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxMiBAQAotKzIwMTctMDItMDMgIE5pY2sgQ2xpZnRv biAgPG5pY2tjQHJlZGhhdC5jb20+Ci0rCi0rCVBSIDIxMDk2Ci0rCSogY29mZmNvZGUuaCAoY29m Zl93cml0ZV9vYmplY3RfY29udGVudHMpOiBFbmxhcmdlIHNpemUgb2YKLSsJc19uYW1lX2J1ZiBp biBvcmRlciB0byBhdm9pZCBjb21waWxlIHRpbWUgd2FybmluZyBhYm91dCBwb3NzaWJsZQotKwlp bnRlZ2VyIHRydW5jYXRpb24uCi0rCSogZWxmMzItbmRzMzIuYyAobmRzMzJfZWxmX2V4OV9pbXBv cnRfdGFibGUpOiBNYXNrIG9mZiBsb3dlcgotKwkzMi1iaXRzIG9mIGluc24gdmFsdWUgYmVmb3Jl IHByaW50aW5nIGludG8gYnVmZmVyLgotKwotIDIwMTctMDItMDIgIE1hY2llaiBXLiBSb3p5Y2tp ICA8bWFjcm9AaW1ndGVjLmNvbT4KLSAKLSAJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX2hhc2hf c29ydF9kYXRhKTogQWRkCi0tLS0gYS9iZmQvY29mZmNvZGUuaAotKysrIGIvYmZkL2NvZmZjb2Rl LmgKLUBAIC0zNzU1LDcgKzM3NTUsOSBAQCBjb2ZmX3dyaXRlX29iamVjdF9jb250ZW50cyAoYmZk ICogYWJmZCkKLSAJCSBOVUwtdGVybWluYXRlZC4gIFdlIHVzZSBhIHRlbXBvcmFyeSBidWZmZXIg c28gdGhhdCB3ZSBjYW4gc3RpbGwKLSAJCSBzcHJpbnRmIGFsbCBlaWdodCBjaGFycyB3aXRob3V0 IHNwbGF0dGluZyBhIHRlcm1pbmF0aW5nIE5VTAotIAkJIG92ZXIgdGhlIGZpcnN0IGJ5dGUgb2Yg dGhlIGZvbGxvd2luZyBtZW1iZXIgKHNfcGFkZHIpLiAgKi8KLS0JICAgICAgY2hhciBzX25hbWVf YnVmW1NDTk5NTEVOICsgMV07Ci0rCSAgICAgIC8qIFBSIDIxMDk2OiBUaGUgKzIwIGlzIHRvIHN0 b3AgYSBib2d1cyB3YXJuaW5nIGZyb20gZ2NjNyBhYm91dAotKwkJIGEgcG9zc2libGUgYnVmZmVy IG92ZXJmbG93LiAgKi8KLSsJICAgICAgY2hhciBzX25hbWVfYnVmW1NDTk5NTEVOICsgMSArIDIw XTsKLSAKLSAJICAgICAgLyogQW4gaW5oZXJlbnQgbGltaXRhdGlvbiBvZiB0aGUgL25ubm5ubm4g bm90YXRpb24gdXNlZCB0byBpbmRpY2F0ZQotIAkJIHRoZSBvZmZzZXQgb2YgdGhlIGxvbmcgbmFt ZSBpbiB0aGUgc3RyaW5nIHRhYmxlIGlzIHRoYXQgd2UKLUBAIC0zNzcwLDkgKzM3NzIsMTAgQEAg Y29mZl93cml0ZV9vYmplY3RfY29udGVudHMgKGJmZCAqIGFiZmQpCi0gCQkgIHJldHVybiBGQUxT RTsKLSAJCX0KLSAKLS0JICAgICAgLyogc25wcmludGYgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSBu b3cgd2UndmUgdmVyaWZpZWQgdGhlIHZhbHVlCi0tCQkgaGFzIGxlc3MgdGhhbiBlaWdodCBBU0NJ SSBkaWdpdHMsIGJ1dCBuZXZlciBtaW5kLiAgKi8KLS0JICAgICAgc25wcmludGYgKHNfbmFtZV9i dWYsIFNDTk5NTEVOICsgMSwgIi8lbHUiLCAodW5zaWduZWQgbG9uZykgc3RyaW5nX3NpemUpOwot KwkgICAgICAvKiBXZSBkbyBub3QgbmVlZCB0byB1c2Ugc25wcmludGYgaGVyZSBhcyB3ZSBoYXZl IGFscmVhZHkgdmVyZmllZAotKwkJIHRoYXQgc3RyaW5nX3NpemUgaXMgbm90IHRvbyBiaWcsIHBs dXMgd2UgaGF2ZSBhbiBvdmVybGFyZ2UKLSsJCSBidWZmZXIsIGp1c3QgaW4gY2FzZS4gICovCi0r CSAgICAgIHNwcmludGYgKHNfbmFtZV9idWYsICIvJWx1IiwgKHVuc2lnbmVkIGxvbmcpIHN0cmlu Z19zaXplKTsKLSAJICAgICAgLyogVGhlbiBzdHJuY3B5IHRha2VzIGNhcmUgb2YgYW55IHBhZGRp bmcgZm9yIHVzLiAgKi8KLSAJICAgICAgc3RybmNweSAoc2VjdGlvbi5zX25hbWUsIHNfbmFtZV9i dWYsIFNDTk5NTEVOKTsKLSAJICAgICAgc3RyaW5nX3NpemUgKz0gbGVuICsgMTsKLS0tLSBhL2Jm ZC9lbGYzMi1uZHMzMi5jCi0rKysgYi9iZmQvZWxmMzItbmRzMzIuYwotQEAgLTE0OTQ5LDcgKzE0 OTQ5LDYgQEAgbmRzMzJfZWxmX2V4OV9pbXBvcnRfdGFibGUgKHN0cnVjdCBiZmRfbGlua19pbmZv ICppbmZvKQotIHsKLSAgIGludCBudW0gPSAwOwotICAgYmZkX2J5dGUgKmNvbnRlbnRzOwotLSAg dW5zaWduZWQgbG9uZyBpbnNuOwotICAgRklMRSAqZXg5X2ltcG9ydF9maWxlOwotICAgaW50IHVw ZGF0ZV9leDlfdGFibGU7Ci0gICBzdHJ1Y3QgZWxmX25kczMyX2xpbmtfaGFzaF90YWJsZSAqdGFi bGU7Ci1AQCAtMTQ5NjMsNiArMTQ5NjIsNyBAQCBuZHMzMl9lbGZfZXg5X2ltcG9ydF90YWJsZSAo c3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pCi0gICAvKiBSZWFkIGluc3RydWN0aW9ucyBmcm9t IHRoZSBpbnB1dCBmaWxlIGFuZCBidWlsZCB0aGUgbGlzdC4gICovCi0gICB3aGlsZSAoIWZlb2Yg KGV4OV9pbXBvcnRfZmlsZSkpCi0gICAgIHsKLSsgICAgICB1bnNpZ25lZCBsb25nIGluc247Ci0g ICAgICAgY2hhciAqY29kZTsKLSAgICAgICBzdHJ1Y3QgZWxmX25kczMyX2luc25fdGltZXNfZW50 cnkgKnB0cjsKLSAgICAgICBzaXplX3QgbnJlYWQ7Ci1AQCAtMTQ5NzMsNyArMTQ5NzMsNyBAQCBu ZHMzMl9lbGZfZXg5X2ltcG9ydF90YWJsZSAoc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pCi0g CWJyZWFrOwotICAgICAgIGluc24gPSBiZmRfZ2V0YjMyIChjb250ZW50cyk7Ci0gICAgICAgY29k ZSA9IGJmZF9tYWxsb2MgKHNpemVvZiAoY2hhcikgKiA5KTsKLS0gICAgICBzbnByaW50ZiAoY29k ZSwgOSwgIiUwOGx4IiwgaW5zbik7Ci0rICAgICAgc25wcmludGYgKGNvZGUsIDksICIlMDhseCIs IChpbnNuICYgMHhmZmZmZmZmZikpOwotICAgICAgIHB0ciA9IGJmZF9tYWxsb2MgKHNpemVvZiAo c3RydWN0IGVsZl9uZHMzMl9pbnNuX3RpbWVzX2VudHJ5KSk7Ci0gICAgICAgcHRyLT5zdHJpbmcg PSBjb2RlOwotICAgICAgIHB0ci0+b3JkZXIgPSBudW07Ci0jIyMgYS9vcGNvZGVzL0NoYW5nZUxv ZwotIyMjIGIvb3Bjb2Rlcy9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsMTEgQEAKLSsyMDE3LTAyLTAz ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgotKwotKwlQUiAyMTA5NgotKwkqIGFh cmNoNjQtb3BjLmMgKHByaW50X3JlZ2lzdGVyX2xpc3QpOiBFbnN1cmUgdGhhdCB0aGUgcmVnaXN0 ZXIKLSsJbGlzdCBpbmRleCB3aWxsIGZpciBpbnRvIHRoZSB0YiBidWZmZXIuCi0rCShwcmludF9y ZWdpc3Rlcl9vZmZzZXRfYWRkcmVzcyk6IExpa2V3aXNlLgotKwkqIHRpYzZ4LWRpcy5jIChwcmlu dF9pbnNuX3RpYzZ4KTogSW5jcmVhc2Ugc2l6ZSBvZiBmdW5jX3VuaXRfYnVmLgotKwotIDIwMTct MDEtMjcgIEFsZXhpcyBEZXJ1ZWxsICA8YWxleGlzLmRlcnVlbGxlQGdtYWlsLmNvbT4KLSAKLSAJ UFIgMjEwNTYKLS0tLSBhL29wY29kZXMvYWFyY2g2NC1vcGMuYwotKysrIGIvb3Bjb2Rlcy9hYXJj aDY0LW9wYy5jCi1AQCAtMjg2NSw3ICsyODY1LDggQEAgcHJpbnRfcmVnaXN0ZXJfbGlzdCAoY2hh ciAqYnVmLCBzaXplX3Qgc2l6ZSwgY29uc3QgYWFyY2g2NF9vcG5kX2luZm8gKm9wbmQsCi0gCi0g ICAvKiBQcmVwYXJlIHRoZSBpbmRleCBpZiBhbnkuICAqLwotICAgaWYgKG9wbmQtPnJlZ2xpc3Qu aGFzX2luZGV4KQotLSAgICBzbnByaW50ZiAodGIsIDgsICJbJSIgUFJJaTY0ICJdIiwgb3BuZC0+ cmVnbGlzdC5pbmRleCk7Ci0rICAgIC8qIFBSIDIxMDk2OiBUaGUgJTEwMCBpcyB0byBzaWxlbmNl IGEgd2FybmluZyBhYm91dCBwb3NzaWJsZSB0cnVuY2F0aW9uLiAgKi8KLSsgICAgc25wcmludGYg KHRiLCA4LCAiWyUiIFBSSWk2NCAiXSIsIChvcG5kLT5yZWdsaXN0LmluZGV4ICUgMTAwKSk7Ci0g ICBlbHNlCi0gICAgIHRiWzBdID0gJ1wwJzsKLSAKLUBAIC0yMzQ0LDcgKzIzNDQsOSBAQCBwcmlu dF9yZWdpc3Rlcl9vZmZzZXRfYWRkcmVzcyAoY2hhciAqYnVmCi0gICBpZiAocHJpbnRfZXh0ZW5k X3ApCi0gICAgIHsKLSAgICAgICBpZiAocHJpbnRfYW1vdW50X3ApCi0tCXNucHJpbnRmICh0Yiwg c2l6ZW9mICh0YiksICIsJXMgIyVkIiwgc2hpZnRfbmFtZSwgb3BuZC0+c2hpZnRlci5hbW91bnQp OwotKwlzbnByaW50ZiAodGIsIHNpemVvZiAodGIpLCAiLCVzICMlZCIsIHNoaWZ0X25hbWUsCi0r ICAvKiBQUiAyMTA5NjogVGhlICUxMDAgaXMgdG8gc2lsZW5jZSBhIHdhcm5pbmcgYWJvdXQgcG9z c2libGUgdHJ1bmNhdGlvbi4gICovCi0rCQkgIChvcG5kLT5zaGlmdGVyLmFtb3VudCAlIDEwMCkp OwotICAgICAgIGVsc2UKLSAJc25wcmludGYgKHRiLCBzaXplb2YgKHRiKSwgIiwlcyIsIHNoaWZ0 X25hbWUpOwotICAgICB9Ci0tLS0gYS9vcGNvZGVzL3RpYzZ4LWRpcy5jCi0rKysgYi9vcGNvZGVz L3RpYzZ4LWRpcy5jCi1AQCAtMzE2LDcgKzMxNiw3IEBAIHByaW50X2luc25fdGljNnggKGJmZF92 bWEgYWRkciwgc3RydWN0IGRpc2Fzc2VtYmxlX2luZm8gKmluZm8pCi0gICAgICAgY29uc3QgY2hh ciAqcGFyYWxsZWw7Ci0gICAgICAgY29uc3QgY2hhciAqY29uZCA9ICIiOwotICAgICAgIGNvbnN0 IGNoYXIgKmZ1bmNfdW5pdDsKLS0gICAgICBjaGFyIGZ1bmNfdW5pdF9idWZbN107Ci0rICAgICAg Y2hhciBmdW5jX3VuaXRfYnVmWzhdOwotICAgICAgIHVuc2lnbmVkIGludCBmdW5jX3VuaXRfc2lk ZSA9IDA7Ci0gICAgICAgdW5zaWduZWQgaW50IGZ1bmNfdW5pdF9kYXRhX3NpZGUgPSAwOwotICAg ICAgIHVuc2lnbmVkIGludCBmdW5jX3VuaXRfY3Jvc3MgPSAwOwotQEAgLTcwMyw4ICs3MDMsOSBA QCBwcmludF9pbnNuX3RpYzZ4IChiZmRfdm1hIGFkZHIsIHN0cnVjdCBkaXNhc3NlbWJsZV9pbmZv ICppbmZvKQotIAkgIGlmIChvcGMtPmZsYWdzICYgVElDNlhfRkxBR19JTlNOMTZfQlNJREUgJiYg ZnVuY191bml0X3NpZGUgPT0gMSkKLSAJICAgICAgZnVuY191bml0X2Nyb3NzID0gMTsKLSAKLS0J ICBzbnByaW50ZiAoZnVuY191bml0X2J1ZiwgNywgIiAuJWMldSVzJXMiLCBmdW5jX3VuaXRfY2hh ciwKLS0JCSAgICBmdW5jX3VuaXRfc2lkZSwgKGZ1bmNfdW5pdF9jcm9zcyA/ICJYIiA6ICIiKSwg ZGF0YV9zdHIpOwotKwkgIHNucHJpbnRmIChmdW5jX3VuaXRfYnVmLCBzaXplb2YgZnVuY191bml0 X2J1ZiwgIiAuJWMldSVzJXMiLAotKwkJICAgIGZ1bmNfdW5pdF9jaGFyLCBmdW5jX3VuaXRfc2lk ZSwKLSsJCSAgICAoZnVuY191bml0X2Nyb3NzID8gIlgiIDogIiIpLCBkYXRhX3N0cik7Ci0gCSAg ZnVuY191bml0ID0gZnVuY191bml0X2J1ZjsKLSAJfQotIAotCi0KLQotY29tbWl0IGRiN2I1NWZh YTFhMTFlNjMyZGRmNTc1MDVjOWJiNjRiYzc4MzQ3MWEKLUF1dGhvcjogTmljayBDbGlmdG9uIDxu aWNrY0ByZWRoYXQuY29tPgotRGF0ZTogICBGcmkgRGVjIDE2IDEwOjU5OjM2IDIwMTYgKzAwMDAK LQotICAgIEZpeCBjb21waWxlIHRpbWUgd2FybmluZyBidWlsZGluZyBhcm0tZGlzLmMKLQotIyMj IGEvb3Bjb2Rlcy9DaGFuZ2VMb2cKLSMjIyBiL29wY29kZXMvQ2hhbmdlTG9nCi0jIyAtMSwzICsx LDggQEAKLSsyMDE2LTEyLTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgotKwot KwkqIGFybS1kaXMuYyAocHJpbnRfaW5zbl90aHVtYjMyKTogRml4IGNvbXBpbGUgdGltZSB3YXJu aW5nCi0rCWNvbXB1dGluZyB2YWx1ZV9pbl9jb21tZW50LgotKwotIDIwMTYtMTItMTQgIE1hY2ll aiBXLiBSb3p5Y2tpICA8bWFjcm9AaW1ndGVjLmNvbT4KLSAKLSAJKiBtaXBzLWRpcy5jIChtaXBz X2NvbnZlcnRfYWJpZmxhZ3NfYXNlcyk6IE5ldyBmdW5jdGlvbi4KLS0tLSBhL29wY29kZXMvYXJt LWRpcy5jCi0rKysgYi9vcGNvZGVzL2FybS1kaXMuYwotQEAgLTU3NTksNyArNTc1OSw3IEBAIHBy aW50X2luc25fdGh1bWIzMiAoYmZkX3ZtYSBwYywgc3RydWN0IGRpc2Fzc2VtYmxlX2luZm8gKmlu Zm8sIGxvbmcgZ2l2ZW4pCi0gCQkgICAgICBpZiAob2ZmIHx8ICFVKQotIAkJCXsKLSAJCQkgIGZ1 bmMgKHN0cmVhbSwgIiwgIyVjJXUiLCBVID8gJysnIDogJy0nLCBvZmYgKiA0KTsKLS0JCQkgIHZh bHVlX2luX2NvbW1lbnQgPSBvZmYgKiA0ICogVSA/IDEgOiAtMTsKLSsJCQkgIHZhbHVlX2luX2Nv bW1lbnQgPSAob2ZmICYmIFUpID8gMSA6IC0xOwotIAkJCX0KLSAJCSAgICAgIGZ1bmMgKHN0cmVh bSwgIl0iKTsKLSAJCSAgICAgIGlmIChXKQotQEAgLTU3NzEsNyArNTc3MSw3IEBAIHByaW50X2lu c25fdGh1bWIzMiAoYmZkX3ZtYSBwYywgc3RydWN0IGRpc2Fzc2VtYmxlX2luZm8gKmluZm8sIGxv bmcgZ2l2ZW4pCi0gCQkgICAgICBpZiAoVykKLSAJCQl7Ci0gCQkJICBmdW5jIChzdHJlYW0sICIj JWMldSIsIFUgPyAnKycgOiAnLScsIG9mZiAqIDQpOwotLQkJCSAgdmFsdWVfaW5fY29tbWVudCA9 IG9mZiAqIDQgKiBVID8gMSA6IC0xOwotKwkJCSAgdmFsdWVfaW5fY29tbWVudCA9IChvZmYgJiYg VSkgPyAxIDogLTE7Ci0gCQkJfQotIAkJICAgICAgZWxzZQotIAkJCXsKLQotCi0KLWNvbW1pdCA5 N2U2NGU1YWIxOWRiZjZhOWJhYmQ3MTFlOGRlZWM1NTQ1NTIwOTU0Ci1BdXRob3I6IFlhbyBRaSA8 eWFvLnFpQGxpbmFyby5vcmc+Ci1EYXRlOiAgIEZyaSBTZXAgMjMgMTc6Mjc6MjYgMjAxNiArMDEw MAotCi0gICAgUmVwbGFjZSBzcHJpbnRmIHdpdGggeHNucHJpbnRmIGluIG5hdC9saW51eC1vc2Rh dGEuYwotICAgIAotICAgIEkgc2VlIHRoZSBmb2xsb3dpbmcgYnVpbGQgd2FybmluZyB3aGVuIEkg YnVpbGQgR0RCIHdpdGggR0NDIHRydW5rLgotICAgIAotICAgIC4uLy4uL2JpbnV0aWxzLWdkYi9n ZGIvbmF0L2xpbnV4LW9zZGF0YS5jOiBJbiBmdW5jdGlvbiDigJhMT05HRVNUIGxpbnV4X3hmZXJf b3NkYXRhX2ZkcyhnZGJfYnl0ZSosIFVMT05HRVNULCBVTE9OR0VTVCnigJk6Ci0gICAgLi4vLi4v YmludXRpbHMtZ2RiL2dkYi9uYXQvbGludXgtb3NkYXRhLmM6NzY3OjE6IGVycm9yOiDigJglc+KA mSBkaXJlY3RpdmUgd3JpdGluZyBiZXR3ZWVuIDAgYW5kIDI1NSBieXRlcyBpbnRvIGEgcmVnaW9u IG9mIHNpemUgMTEgWy1XZXJyb3I9Zm9ybWF0LWxlbmd0aD1dCi0gICAgIGxpbnV4X3hmZXJfb3Nk YXRhX2ZkcyAoZ2RiX2J5dGUgKnJlYWRidWYsCi0gICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fgot ICAgIC4uLy4uL2JpbnV0aWxzLWdkYi9nZGIvbmF0L2xpbnV4LW9zZGF0YS5jOjgwMDo1MTogbm90 ZTogZm9ybWF0IG91dHB1dCBiZXR3ZWVuIDcgYW5kIDI2MiBieXRlcyBpbnRvIGEgZGVzdGluYXRp b24gb2Ygc2l6ZSAxNwotICAgICAgICAgICAgc3ByaW50ZiAocHJvY2VudHJ5LCAiL3Byb2MvJXMi LCBkcC0+ZF9uYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi0gICAgLi4vLi4vYmludXRpbHMtZ2RiL2dkYi9uYXQvbGludXgtb3Nk YXRhLmM6IEluIGZ1bmN0aW9uIOKAmExPTkdFU1QgbGludXhfeGZlcl9vc2RhdGFfdGhyZWFkcyhn ZGJfYnl0ZSosIFVMT05HRVNULCBVTE9OR0VTVCnigJk6Ci0gICAgLi4vLi4vYmludXRpbHMtZ2Ri L2dkYi9uYXQvbGludXgtb3NkYXRhLmM6NTU1OjE6IGVycm9yOiDigJglc+KAmSBkaXJlY3RpdmUg d3JpdGluZyBiZXR3ZWVuIDAgYW5kIDI1NSBieXRlcyBpbnRvIGEgcmVnaW9uIG9mIHNpemUgMTEg Wy1XZXJyb3I9Zm9ybWF0LWxlbmd0aD1dCi0gICAgIGxpbnV4X3hmZXJfb3NkYXRhX3RocmVhZHMg KGdkYl9ieXRlICpyZWFkYnVmLAotICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0gICAg Li4vLi4vYmludXRpbHMtZ2RiL2dkYi9uYXQvbGludXgtb3NkYXRhLmM6NTg4OjUxOiBub3RlOiBm b3JtYXQgb3V0cHV0IGJldHdlZW4gNyBhbmQgMjYyIGJ5dGVzIGludG8gYSBkZXN0aW5hdGlvbiBv ZiBzaXplIDE3Ci0gICAgICAgICAgICBzcHJpbnRmIChwcm9jZW50cnksICIvcHJvYy8lcyIsIGRw LT5kX25hbWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KLSAgICBjYzFwbHVzOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBl cnJvcnMKLSAgICAKLSAgICBUaGUgd2FybmluZyBpcyBhIGZhbHNlIHBvc2l0aXZlLCBidXQgd2Ug Y2FuIHdvcmthcm91bmQgaXQgYnkgcmVwbGFjaW5nCi0gICAgc3ByaW50ZiB3aXRoIHhzbnByaW50 Zi4gIE9uIHRoZSBvdGhlciBoYW5kLCBpdCBpcyBhbHdheXMgcHJlZmVycmVkIHRvCi0gICAgdXNl IHhzbnByaW50Zi4KLSAgICAKLSAgICBnZGI6Ci0gICAgCi0gICAgMjAxNi0wOS0yMyAgWWFvIFFp ICA8eWFvLnFpQGxpbmFyby5vcmc+Ci0gICAgCi0gICAgICAgICAgICAqIG5hdC9saW51eC1vc2Rh dGEuYyAobGludXhfeGZlcl9vc2RhdGFfdGhyZWFkcyk6IFJlcGxhY2UKLSAgICAgICAgICAgIHNw cmludGYgd2l0aCB4c25wcmludGYuCi0gICAgICAgICAgICAobGludXhfeGZlcl9vc2RhdGFfZmRz KTogTGlrZXdpc2UuCi0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cK LSMjIC0xLDMgKzEsOSBAQAotKzIwMTYtMDktMjMgIFlhbyBRaSAgPHlhby5xaUBsaW5hcm8ub3Jn PgotKwotKwkqIG5hdC9saW51eC1vc2RhdGEuYyAobGludXhfeGZlcl9vc2RhdGFfdGhyZWFkcyk6 IFJlcGxhY2UKLSsJc3ByaW50ZiB3aXRoIHhzbnByaW50Zi4KLSsJKGxpbnV4X3hmZXJfb3NkYXRh X2Zkcyk6IExpa2V3aXNlLgotKwotIDIwMTYtMDktMjMgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJl ZGhhdC5jb20+Ci0gCi0gCSogTWFrZWZpbGUuaW4gKFNGSUxFUyk6IEFkZCBjb21tb24vbmV3LW9w LmMuCi0tLS0gYS9nZGIvbmF0L2xpbnV4LW9zZGF0YS5jCi0rKysgYi9nZGIvbmF0L2xpbnV4LW9z ZGF0YS5jCi1AQCAtNTg1LDcgKzU4NSw4IEBAIGxpbnV4X3hmZXJfb3NkYXRhX3RocmVhZHMgKGdk Yl9ieXRlICpyZWFkYnVmLAotIAkJICB8fCBOQU1FTEVOIChkcCkgPiBzaXplb2YgKCI0Mjk0OTY3 Mjk1IikgLSAxKQotIAkJY29udGludWU7Ci0gCi0tCSAgICAgIHNwcmludGYgKHByb2NlbnRyeSwg Ii9wcm9jLyVzIiwgZHAtPmRfbmFtZSk7Ci0rCSAgICAgIHhzbnByaW50ZiAocHJvY2VudHJ5LCBz aXplb2YgKHByb2NlbnRyeSksICIvcHJvYy8lcyIsCi0rCQkJIGRwLT5kX25hbWUpOwotIAkgICAg ICBpZiAoc3RhdCAocHJvY2VudHJ5LCAmc3RhdGJ1ZikgPT0gMAotIAkJICAmJiBTX0lTRElSIChz dGF0YnVmLnN0X21vZGUpKQotIAkJewotQEAgLTc5Nyw3ICs3OTgsOCBAQCBsaW51eF94ZmVyX29z ZGF0YV9mZHMgKGdkYl9ieXRlICpyZWFkYnVmLAotIAkJICB8fCBOQU1FTEVOIChkcCkgPiBzaXpl b2YgKCI0Mjk0OTY3Mjk1IikgLSAxKQotIAkJY29udGludWU7Ci0gCi0tCSAgICAgIHNwcmludGYg KHByb2NlbnRyeSwgIi9wcm9jLyVzIiwgZHAtPmRfbmFtZSk7Ci0rCSAgICAgIHhzbnByaW50ZiAo cHJvY2VudHJ5LCBzaXplb2YgKHByb2NlbnRyeSksICIvcHJvYy8lcyIsCi0rCQkJIGRwLT5kX25h bWUpOwotIAkgICAgICBpZiAoc3RhdCAocHJvY2VudHJ5LCAmc3RhdGJ1ZikgPT0gMAotIAkJICAm JiBTX0lTRElSIChzdGF0YnVmLnN0X21vZGUpKQotIAkJewotCi0KLQotaHR0cDovL3NvdXJjZXdh cmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTctMDIvbXNnMDAyMjYuaHRtbAotU3ViamVjdDogW09C IFBBVENIXSBGaXggTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlCi0KLVRoaXMgY29tbWl0IGZpeGVz IGEgc2VnbWVudGF0aW9uIGZhdWx0IG9uIHRhYiBjb21wbGV0aW9uIHdoZW4KLWNlcnRhaW4gZGVi dWdpbmZvIGlzIGluc3RhbGxlZDoKLQotICBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hv d19idWcuY2dpP2lkPTEzOTgzODcKLQotZ2RiL0NoYW5nZUxvZzoKLQotCSogc3ltdGFiLmMgKGFk ZF9zeW10YWJfY29tcGxldGlvbnMpOiBQcmV2ZW50IE5VTEwgcG9pbnRlcgotCWRlcmVmZXJlbmNl LgotLS0tCi0gZ2RiL0NoYW5nZUxvZyB8IDUgKysrKysKLSBnZGIvc3ltdGFiLmMgIHwgMyArKysK LSAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvZ2RiL3N5 bXRhYi5jIGIvZ2RiL3N5bXRhYi5jCi1pbmRleCAzNTZmNDgwLi4yYzE0MWU1IDEwMDY0NAotLS0t IGEvZ2RiL3N5bXRhYi5jCi0rKysgYi9nZGIvc3ltdGFiLmMKLUBAIC01MTYzLDYgKzUxNjMsOSBA QCBhZGRfc3ltdGFiX2NvbXBsZXRpb25zIChzdHJ1Y3QgY29tcHVuaXRfc3ltdGFiICpjdXN0LAot ICAgc3RydWN0IGJsb2NrX2l0ZXJhdG9yIGl0ZXI7Ci0gICBpbnQgaTsKLSAKLSsgIGlmIChjdXN0 ID09IE5VTEwpCi0rICAgIHJldHVybjsKLSsKLSAgIGZvciAoaSA9IEdMT0JBTF9CTE9DSzsgaSA8 PSBTVEFUSUNfQkxPQ0s7IGkrKykKLSAgICAgewotICAgICAgIFFVSVQ7Ci0tLSAKLTEuOC4zLjEK LQoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtZm9ydHJhbi1zdHJpZGVzLnBhdGNoIGIvZ2Ri LXZsYS1pbnRlbC1mb3J0cmFuLXN0cmlkZXMucGF0Y2gKaW5kZXggMDQ3OTIwMC4uMTk0ZDhmZSAx MDA2NDQKLS0tIGEvZ2RiLXZsYS1pbnRlbC1mb3J0cmFuLXN0cmlkZXMucGF0Y2gKKysrIGIvZ2Ri LXZsYS1pbnRlbC1mb3J0cmFuLXN0cmlkZXMucGF0Y2gKQEAgLTI2LDExICsyNiwxMSBAQCBkYmZk NzE0MGJmNGMwNTAwZDFmNWQxOTJiZTc4MWY4M2Y3OGY3OTIyCiAgZ2RiL3ZhbHVlLmggICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiAgMjMgZmlsZXMgY2hhbmdlZCwgMTI0 MiBpbnNlcnRpb25zKCspLCAxODMgZGVsZXRpb25zKC0pCiAKLWRpZmYgLS1naXQgYS9nZGIvZHdh cmYybG9jLmMgYi9nZGIvZHdhcmYybG9jLmMKLWluZGV4IDU0OGU0NjguLjU2MGUxNmYgMTAwNjQ0 Ci0tLS0gYS9nZGIvZHdhcmYybG9jLmMKLSsrKyBiL2dkYi9kd2FyZjJsb2MuYwotQEAgLTI2MDEs MTEgKzI2MDEsMTQgQEAgZHdhcmYyX2xvY2V4cHJfYmF0b25fZXZhbCAoY29uc3Qgc3RydWN0IGR3 YXJmMl9sb2NleHByX2JhdG9uICpkbGJhdG9uLAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi9kd2FyZjJsb2MuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9y aWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTctMDItMDcgMjA6NDc6MzIuMTYxMDI2MjE0ICswMTAwCisr KysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2R3YXJmMmxvYy5jCTIwMTctMDItMDcgMjA6NDc6 MzMuMTE1MDMzNDYwICswMTAwCitAQCAtMjU0MiwxMSArMjU0MiwxNCBAQAogIC8qIFNlZSBkd2Fy ZjJsb2MuaC4gICovCiAgCiAgaW50CkBAIC00Nyw3ICs0Nyw3IEBAIGluZGV4IDU0OGU0NjguLjU2 MGUxNmYgMTAwNjQ0CiAgICBpZiAocHJvcCA9PSBOVUxMKQogICAgICByZXR1cm4gMDsKICAKLUBA IC0yNjI5LDcgKzI2MzIsNyBAQCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0cnVj dCBkeW5hbWljX3Byb3AgKnByb3AsCitAQCAtMjU3MCw3ICsyNTczLDcgQEAKICAKICAJCSp2YWx1 ZSA9IHZhbHVlX2FzX2FkZHJlc3MgKHZhbCk7CiAgCSAgICAgIH0KQEAgLTU2LDcgKzU2LDcgQEAg aW5kZXggNTQ4ZTQ2OC4uNTYwZTE2ZiAxMDA2NDQKICAJICB9CiAgICAgICAgfQogICAgICAgIGJy ZWFrOwotQEAgLTI2NTEsNyArMjY1NCw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29u c3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKK0BAIC0yNTkyLDcgKzI1OTUsNyBAQAogIAkg ICAgaWYgKCF2YWx1ZV9vcHRpbWl6ZWRfb3V0ICh2YWwpKQogIAkgICAgICB7CiAgCQkqdmFsdWUg PSB2YWx1ZV9hc19hZGRyZXNzICh2YWwpOwpAQCAtNjUsNyArNjUsNyBAQCBpbmRleCA1NDhlNDY4 Li41NjBlMTZmIDEwMDY0NAogIAkgICAgICB9CiAgCSAgfQogICAgICAgIH0KLUBAIC0yNjU5LDgg KzI2NjIsOCBAQCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0cnVjdCBkeW5hbWlj X3Byb3AgKnByb3AsCitAQCAtMjYwMCw4ICsyNjAzLDggQEAKICAKICAgICAgY2FzZSBQUk9QX0NP TlNUOgogICAgICAgICp2YWx1ZSA9IHByb3AtPmRhdGEuY29uc3RfdmFsOwpAQCAtNzYsNyArNzYs NyBAQCBpbmRleCA1NDhlNDY4Li41NjBlMTZmIDEwMDY0NAogICAgICBjYXNlIFBST1BfQUREUl9P RkZTRVQ6CiAgICAgICAgewogIAlzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uICpiYXRvbgot QEAgLTI2ODEsMTEgKzI2ODQsMzggQEAgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBz dHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAorQEAgLTI2MjIsMTEgKzI2MjUsMzggQEAKICAJICB2 YWwgPSB2YWx1ZV9hdCAoYmF0b24tPm9mZnNldF9pbmZvLnR5cGUsCiAgCQkJICBwaW5mby0+YWRk ciArIGJhdG9uLT5vZmZzZXRfaW5mby5vZmZzZXQpOwogIAkqdmFsdWUgPSB2YWx1ZV9hc19hZGRy ZXNzICh2YWwpOwpAQCAtODQsOSArODQsOCBAQCBpbmRleCA1NDhlNDY4Li41NjBlMTZmIDEwMDY0 NAogKwlyYyA9IDE7CiAgICAgICAgfQogKyAgICAgIGJyZWFrOwotICAgICB9Ci0gCi0tICByZXR1 cm4gMDsKKysgICAgfQorKwogKyAgaWYgKHJjID09IDEgJiYgaXNfc2lnbmVkID09IDEpCiArICAg IHsKICsgICAgICAvKiBJZiB3ZSBoYXZlIGEgdmFsaWQgcmV0dXJuIGNhbmRpZGF0ZSBhbmQgaXQn cyB2YWx1ZSBpcyBzaWduZWQsCkBAIC05OSwxMCArOTgsMTEgQEAgaW5kZXggNTQ4ZTQ2OC4uNTYw ZTE2ZiAxMDA2NDQKICsgICAgICAvKiBDaGVjayBpZiBzaWduZWQgYml0IGlzIHNldCBhbmQgc2ln bi1leHRlbmQgdmFsdWVzLiAgKi8KICsgICAgICBpZiAoKnZhbHVlICYgKG5lZ19tYXNrKSkKICsJ KnZhbHVlIHw9IChuZWdfbWFzayApOwotKyAgICB9CisgICAgIH0KICsgIHJldHVybiByYzsKICt9 Ci0rCisgCistICByZXR1cm4gMDsKICtpbnQKICtkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNv bnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsCiArCQkJICBzdHJ1Y3QgZnJhbWVfaW5mbyAq ZnJhbWUsCkBAIC0xMTcsMTEgKzExNywxMSBAQCBpbmRleCA1NDhlNDY4Li41NjBlMTZmIDEwMDY0 NAogIH0KICAKICAvKiBTZWUgZHdhcmYybG9jLmguICAqLwotZGlmZiAtLWdpdCBhL2dkYi9kd2Fy ZjJsb2MuaCBiL2dkYi9kd2FyZjJsb2MuaAotaW5kZXggZmE4MzQ1OS4uZGE2YjljZCAxMDA2NDQK LS0tLSBhL2dkYi9kd2FyZjJsb2MuaAotKysrIGIvZ2RiL2R3YXJmMmxvYy5oCi1AQCAtMTM4LDYg KzEzOCwxMiBAQCBpbnQgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBzdHJ1Y3QgZHlu YW1pY19wcm9wICpwcm9wLAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9kd2FyZjJs b2MuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2R3YXJm MmxvYy5oCTIwMTctMDItMDcgMjA6NDc6MzIuMTYyMDI2MjIyICswMTAwCisrKysgZ2RiLTcuMTIu NTAuMjAxNzAyMDcvZ2RiL2R3YXJmMmxvYy5oCTIwMTctMDItMDcgMjA6NDc6MzMuMTE1MDMzNDYw ICswMTAwCitAQCAtMTM4LDYgKzEzOCwxMiBAQAogIAkJCSAgICAgIHN0cnVjdCBwcm9wZXJ0eV9h ZGRyX2luZm8gKmFkZHJfc3RhY2ssCiAgCQkJICAgICAgQ09SRV9BRERSICp2YWx1ZSk7CiAgCkBA IC0xMzQsMTEgKzEzNCwxMSBAQCBpbmRleCBmYTgzNDU5Li5kYTZiOWNkIDEwMDY0NAogIC8qIEEg aGVscGVyIGZvciB0aGUgY29tcGlsZXIgaW50ZXJmYWNlIHRoYXQgY29tcGlsZXMgYSBzaW5nbGUg ZHluYW1pYwogICAgIHByb3BlcnR5IHRvIEMgY29kZS4KICAKLWRpZmYgLS1naXQgYS9nZGIvZHdh cmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5kZXggNjY1OGEzOC4uYTFhYzY1OSAxMDA2 NDQKLS0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKLSsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKLUBAIC0x NDk1Miw3ICsxNDk1Miw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dk Yi9kd2FyZjJyZWFkLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmln L2dkYi9kd2FyZjJyZWFkLmMJMjAxNy0wMi0wNyAyMDo0NzozMi4xNjgwMjYyNjggKzAxMDAKKysr KyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZHdhcmYycmVhZC5jCTIwMTctMDItMDcgMjA6NDc6 MzMuMTIwMDMzNDk4ICswMTAwCitAQCAtMTQ5MjQsNyArMTQ5MjQsNyBAQAogICAgc3RydWN0IHR5 cGUgKmJhc2VfdHlwZSwgKm9yaWdfYmFzZV90eXBlOwogICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5 cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIGluZGV4 IDY2NThhMzguLmExYWM2NTkgMTAwNjQ0CiAgICBpbnQgbG93X2RlZmF1bHRfaXNfdmFsaWQ7CiAg ICBpbnQgaGlnaF9ib3VuZF9pc19jb3VudCA9IDA7CiAgICBjb25zdCBjaGFyICpuYW1lOwotQEAg LTE0OTcyLDcgKzE0OTcyLDkgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTQ5NDQsNyArMTQ5NDQsOSBAQAogIAog ICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5raW5kID0gUFJPUF9DT05TVDsKQEAg LTE1Nyw3ICsxNTcsNyBAQCBpbmRleCA2NjU4YTM4Li5hMWFjNjU5IDEwMDY0NAogIAogICAgLyog U2V0IExPV19ERUZBVUxUX0lTX1ZBTElEIGlmIGN1cnJlbnQgbGFuZ3VhZ2UgYW5kIERXQVJGIHZl cnNpb24gYWxsb3cKICAgICAgIG9taXR0aW5nIERXX0FUX2xvd2VyX2JvdW5kLiAgKi8KLUBAIC0x NTAwNiw2ICsxNTAwOCwxMyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xNDk3Nyw2ICsxNDk3OSwxMyBAQAogICAg ICAgIGJyZWFrOwogICAgICB9CiAgCkBAIC0xNzEsNyArMTcxLDcgQEAgaW5kZXggNjY1OGEzOC4u YTFhYzY1OSAxMDA2NDQKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9sb3dlcl9i b3VuZCwgY3UpOwogICAgaWYgKGF0dHIpCiAgICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRy LCBkaWUsIGN1LCAmbG93KTsKLUBAIC0xNTA4Miw3ICsxNTA5MSw3IEBAIHJlYWRfc3VicmFuZ2Vf dHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE1 MDUzLDcgKzE1MDYyLDcgQEAKICAgICAgICAmJiAhVFlQRV9VTlNJR05FRCAoYmFzZV90eXBlKSAm JiAoaGlnaC5kYXRhLmNvbnN0X3ZhbCAmIG5lZ2F0aXZlX21hc2spKQogICAgICBoaWdoLmRhdGEu Y29uc3RfdmFsIHw9IG5lZ2F0aXZlX21hc2s7CiAgCkBAIC0xODAsMTEgKzE4MCwxMSBAQCBpbmRl eCA2NjU4YTM4Li5hMWFjNjU5IDEwMDY0NAogIAogICAgaWYgKGhpZ2hfYm91bmRfaXNfY291bnQp CiAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmZsYWdfdXBwZXJfYm91bmRfaXNf Y291bnQgPSAxOwotZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCi1pbmRleCAw MGExMDdjLi45MWQ4YTAzIDEwMDY0NAotLS0tIGEvZ2RiL2V2YWwuYwotKysrIGIvZ2RiL2V2YWwu YwotQEAgLTM5OSwyOSArMzk5LDMyNSBAQCBpbml0X2FycmF5X2VsZW1lbnQgKHN0cnVjdCB2YWx1 ZSAqYXJyYXksIHN0cnVjdCB2YWx1ZSAqZWxlbWVudCwKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3 MDIwNy9nZGIvZXZhbC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3Jp Zy9nZGIvZXZhbC5jCTIwMTctMDItMDcgMjA6NDc6MzIuMTcwMDI2MjgzICswMTAwCisrKysgZ2Ri LTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2V2YWwuYwkyMDE3LTAyLTA3IDIwOjQ3OjMzLjEyMTAzMzUw NiArMDEwMAorQEAgLTM3OSwyOSArMzc5LDMyNSBAQAogICAgcmV0dXJuIGluZGV4OwogIH0KICAK QEAgLTIwOSwxMSArMjA5LDYgQEAgaW5kZXggMDBhMTA3Yy4uOTFkOGEwMyAxMDA2NDQKIC0gICAg PSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29u c3QpOwogLSAKIC0gICpwb3MgKz0gMzsKLS0KLS0gIGlmIChyYW5nZV90eXBlID09IExPV19CT1VO RF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQotLSAgICBsb3df Ym91bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2UpOwotLSAgZWxzZQotLSAgICBsb3dfYm91bmQg PSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5v c2lkZSkpOwogKyAgc3RydWN0IHZhbHVlICpuZXdfYXJyYXkgPSBhcnJheTsKICsgIHN0cnVjdCB0 eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAobmV3X2FycmF5KSk7 CiArICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGU7CkBAIC0yNjgsMTcgKzI2MywyMSBAQCBpbmRleCAw MGExMDdjLi45MWQ4YTAzIDEwMDY0NAogKyAgICB7CiArICAgICAgc3RydWN0IHN1YnNjcmlwdF9z dG9yZSAqaW5kZXggPSAmc3Vic2NyaXB0X2FycmF5W2ldOwogIAotLSAgaWYgKHJhbmdlX3R5cGUg PT0gSElHSF9CT1VORF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxU KQotLSAgICBoaWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChyYW5nZSk7CistICBpZiAocmFu Z2VfdHlwZSA9PSBMT1dfQk9VTkRfREVGQVVMVCB8fCByYW5nZV90eXBlID09IEJPVEhfQk9VTkRf REVGQVVMVCkKKy0gICAgbG93X2JvdW5kID0gVFlQRV9MT1dfQk9VTkQgKHJhbmdlKTsKIC0gIGVs c2UKLS0gICAgaGlnaF9ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVM TF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKSk7CistICAgIGxvd19ib3VuZCA9IHZhbHVlX2FzX2xv bmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKSk7CiArICAg ICAgLyogVGhlIHVzZXIgaW5wdXQgaXMgYSByYW5nZSwgd2l0aCBvciB3aXRob3V0IGxvd2VyIGFu ZCB1cHBlciBib3VuZC4KICsJIEUuZy46ICJwIGFycnkoMjo1KSIsICJwIGFycnkoIDo1KSIsICJw IGFycnkoIDogKSIsIGV0Yy4gICovCiArICAgICAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUg PT0gT1BfUkFOR0UpCiArCXsKICsJICBpbnQgcGMgPSAoKnBvcykgKyAxOwogKwkgIHN1YnNjcmlw dF9yYW5nZSAqcmFuZ2U7Ci0rCisgCistICBpZiAocmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5EX0RF RkFVTFQgfHwgcmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpCistICAgIGhpZ2hfYm91 bmQgPSBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlKTsKKy0gIGVsc2UKKy0gICAgaGlnaF9ib3VuZCA9 IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9z aWRlKSk7CiArCSAgaW5kZXgtPmtpbmQgPSBTVUJTQ1JJUFRfUkFOR0U7CiArCSAgcmFuZ2UgPSAm aW5kZXgtPlUucmFuZ2U7CiArCkBAIC0zNzIsNyArMzcxLDggQEAgaW5kZXggMDBhMTA3Yy4uOTFk OGEwMyAxMDA2NDQKICsKICsJY2FzZSBTVUJTQ1JJUFRfSU5ERVg6CiArCSAgYnJlYWs7Ci0rCisg CistICByZXR1cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBs b3dfYm91bmQgKyAxKTsKICsJfQogKwogKyAgICAgICBhcnJheV90eXBlID0gVFlQRV9UQVJHRVRf VFlQRSAoYXJyYXlfdHlwZSk7CkBAIC00OTIsOCArNDkyLDcgQEAgaW5kZXggMDBhMTA3Yy4uOTFk OGEwMyAxMDA2NDQKICsJICAgICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUsICppbnRlcmltX2Fy cmF5X3R5cGU7CiArCiArCSAgICAgIGludCBuZXdfbGVuZ3RoOwotIAotLSAgcmV0dXJuIHZhbHVl X3NsaWNlIChhcnJheSwgbG93X2JvdW5kLCBoaWdoX2JvdW5kIC0gbG93X2JvdW5kICsgMSk7Cisr CiArCSAgICAgIC8qIFRoZSBsZW5ndGggb2YgYSBzdWItZGltZW5zaW9uIHdpdGggYWxsIGVsZW1l bnRzIGJldHdlZW4gdGhlCiArCQkgYm91bmRzIHBsdXMgdGhlIHN0YXJ0IGVsZW1lbnQgaXRzZWxm LiAgSXQgbWF5IGJlIG1vZGlmaWVkIGJ5CiArCQkgYSB1c2VyIHByb3ZpZGVkIHN0cmlkZSB2YWx1 ZS4gICovCkBAIC01MjgsNyArNTI3LDcgQEAgaW5kZXggMDBhMTA3Yy4uOTFkOGEwMyAxMDA2NDQK ICB9CiAgCiAgCi1AQCAtMTgxMCwxOSArMjEwNiw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFy ZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTE3OTAsMTkgKzIwODYsOCBAQAogICAg ICAgIHN3aXRjaCAoY29kZSkKICAJewogIAljYXNlIFRZUEVfQ09ERV9BUlJBWToKQEAgLTU0OSw3 ICs1NDgsNyBAQCBpbmRleCAwMGExMDdjLi45MWQ4YTAzIDEwMDY0NAogIAogIAljYXNlIFRZUEVf Q09ERV9QVFI6CiAgCWNhc2UgVFlQRV9DT0RFX0ZVTkM6Ci1AQCAtMjIyMyw0OSArMjUwOCw2IEBA IGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAg LTIyMDMsNDkgKzI0ODgsNiBAQAogIAl9CiAgICAgICAgcmV0dXJuIChhcmcxKTsKICAKQEAgLTU5 OSw3ICs1OTgsNyBAQCBpbmRleCAwMGExMDdjLi45MWQ4YTAzIDEwMDY0NAogICAgICBjYXNlIEJJ Tk9QX0xPR0lDQUxfQU5EOgogICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQ RSwgZXhwLCBwb3MsIG5vc2lkZSk7CiAgICAgICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCi1A QCAtMzEyMyw2ICszMzY1LDkgQEAgY2FsY19mNzdfYXJyYXlfZGltcyAoc3RydWN0IHR5cGUgKmFy cmF5X3R5cGUpCitAQCAtMzEwMiw2ICszMzQ0LDkgQEAKICAgIGludCBuZGltZW4gPSAxOwogICAg c3RydWN0IHR5cGUgKnRtcF90eXBlOwogIApAQCAtNjA5LDExICs2MDgsMTEgQEAgaW5kZXggMDBh MTA3Yy4uOTFkOGEwMyAxMDA2NDQKICAgIGlmICgoVFlQRV9DT0RFIChhcnJheV90eXBlKSAhPSBU WVBFX0NPREVfQVJSQVkpKQogICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9y IGEgbm9uLWFycmF5IHR5cGUiKSk7CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9n ZGIvZXhwcHJpbnQuYwotaW5kZXggYzM3ZWNiMC4uMjE0ZDU4ZSAxMDA2NDQKLS0tLSBhL2dkYi9l eHBwcmludC5jCi0rKysgYi9nZGIvZXhwcHJpbnQuYwotQEAgLTU2OCwxMiArNTY4LDEwIEBAIHBy aW50X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2V4cHByaW50LmMKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9leHBwcmludC5jCTIwMTctMDItMDcgMjA6 NDc6MzIuMTcwMDI2MjgzICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2V4cHBy aW50LmMJMjAxNy0wMi0wNyAyMDo0NzozMy4xMjEwMzM1MDYgKzAxMDAKK0BAIC01NjgsMTIgKzU2 OCwxMCBAQAogIAkqcG9zICs9IDI7CiAgCiAgCWZwdXRzX2ZpbHRlcmVkICgiUkFOR0UoIiwgc3Ry ZWFtKTsKQEAgLTYyOCw3ICs2MjcsNyBAQCBpbmRleCBjMzdlY2IwLi4yMTRkNThlIDEwMDY0NAog IAkgIHByaW50X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7CiAg CWZwdXRzX2ZpbHRlcmVkICgiKSIsIHN0cmVhbSk7CiAgCXJldHVybjsKLUBAIC0xMDU1LDE2ICsx MDUzLDE2IEBAIGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpl eHAsCitAQCAtMTA1NSwxNiArMTA1MywxNiBAQAogIAogIAlzd2l0Y2ggKHJhbmdlX3R5cGUpCiAg CSAgewpAQCAtNjQ5LDcgKzY0OCw3IEBAIGluZGV4IGMzN2VjYjAuLjIxNGQ1OGUgMTAwNjQ0CiAg CSAgICBmcHV0c19maWx0ZXJlZCAoIlJhbmdlICdFWFAuLkVYUCciLCBzdHJlYW0pOwogIAkgICAg YnJlYWs7CiAgCSAgZGVmYXVsdDoKLUBAIC0xMDcyLDExICsxMDcwLDkgQEAgZHVtcF9zdWJleHBf Ym9keV9zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC0xMDcyLDExICsxMDcw LDkgQEAKICAJICAgIGJyZWFrOwogIAkgIH0KICAKQEAgLTY2MywxMSArNjYyLDExIEBAIGluZGV4 IGMzN2VjYjAuLjIxNGQ1OGUgMTAwNjQ0CiAgCSAgZWx0ID0gZHVtcF9zdWJleHAgKGV4cCwgc3Ry ZWFtLCBlbHQpOwogICAgICAgIH0KICAgICAgICBicmVhazsKLWRpZmYgLS1naXQgYS9nZGIvZXhw cmVzc2lvbi5oIGIvZ2RiL2V4cHJlc3Npb24uaAotaW5kZXggNDk1MmQ4NC4uMzRjYTU0YiAxMDA2 NDQKLS0tLSBhL2dkYi9leHByZXNzaW9uLmgKLSsrKyBiL2dkYi9leHByZXNzaW9uLmgKLUBAIC0x NTIsMTcgKzE1MiwxNyBAQCBleHRlcm4gdm9pZCBkdW1wX3Jhd19leHByZXNzaW9uIChzdHJ1Y3Qg ZXhwcmVzc2lvbiAqLAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9leHByZXNzaW9u LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9leHByZXNz aW9uLmgJMjAxNy0wMi0wNyAyMDo0NzozMi4xNzAwMjYyODMgKzAxMDAKKysrKyBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvZXhwcmVzc2lvbi5oCTIwMTctMDItMDcgMjA6NDc6MzMuMTIxMDMzNTA2 ICswMTAwCitAQCAtMTU0LDE3ICsxNTQsMTcgQEAKICAJCQkJIHN0cnVjdCB1aV9maWxlICosIGNo YXIgKik7CiAgZXh0ZXJuIHZvaWQgZHVtcF9wcmVmaXhfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJl c3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7CiAgCkBAIC02OTQsMTEgKzY5MywxMSBAQCBpbmRl eCA0OTUyZDg0Li4zNGNhNTRiIDEwMDY0NAogICAgfTsKICAKICAjZW5kaWYgLyogIWRlZmluZWQg KEVYUFJFU1NJT05fSCkgKi8KLWRpZmYgLS1naXQgYS9nZGIvZi1leHAueSBiL2dkYi9mLWV4cC55 Ci1pbmRleCBlMzE0OGEzLi43MWYxODIzIDEwMDY0NAotLS0tIGEvZ2RiL2YtZXhwLnkKLSsrKyBi L2dkYi9mLWV4cC55Ci1AQCAtMjUzLDMxICsyNTMsNjMgQEAgYXJnbGlzdCA6CXN1YnJhbmdlCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2YtZXhwLnkKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9mLWV4cC55CTIwMTctMDItMDcgMjA6NDc6MzIu MTcxMDI2MjkwICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2YtZXhwLnkJMjAx Ny0wMi0wNyAyMDo0NzozMy4xMjEwMzM1MDYgKzAxMDAKK0BAIC0yNTQsMzEgKzI1NCw2MyBAQAog ICAgIAogIGFyZ2xpc3QJOglhcmdsaXN0ICcsJyBleHAgICAlcHJlYyBBQk9WRV9DT01NQQogIAkJ CXsgYXJnbGlzdF9sZW4rKzsgfQpAQCAtNzY3LDExICs3NjYsMTEgQEAgaW5kZXggZTMxNDhhMy4u NzFmMTgyMyAxMDA2NDQKICAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JB TkdFKTsgfQogIAk7CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL2YtdmFscHJpbnQuYyBiL2dkYi9mLXZh bHByaW50LmMKLWluZGV4IDA4MjE1ZTIuLmU2ZWNhNmEgMTAwNjQ0Ci0tLS0gYS9nZGIvZi12YWxw cmludC5jCi0rKysgYi9nZGIvZi12YWxwcmludC5jCi1AQCAtMTIxLDggKzEyMSwxNCBAQCBmNzdf cHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1lbnNpb25zLCBzdHJ1Y3QgdHlwZSAqdHlw ZSwKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZi12YWxwcmludC5jCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTct MDItMDcgMjA6NDc6MzIuMTcxMDI2MjkwICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL2YtdmFscHJpbnQuYwkyMDE3LTAyLTA3IDIwOjQ3OjMzLjEyMjAzMzUxMyArMDEwMAorQEAg LTEyMSw4ICsxMjEsMTQgQEAKICAKICAgIGlmIChuc3MgIT0gbmRpbWVuc2lvbnMpCiAgICAgIHsK QEAgLTc4NywxMSArNzg2LDExIEBAIGluZGV4IDA4MjE1ZTIuLmU2ZWNhNmEgMTAwNjQ0CiAgCiAg ICAgICAgZm9yIChpID0gbG93ZXJib3VuZDsKICAJICAgKGkgPCB1cHBlcmJvdW5kICsgMSAmJiAo KmVsdHMpIDwgb3B0aW9ucy0+cHJpbnRfbWF4KTsKLWRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMu YyBiL2dkYi9nZGJ0eXBlcy5jCi1pbmRleCBlYzVjMTdhLi5lYjgzNzkxIDEwMDY0NAotLS0tIGEv Z2RiL2dkYnR5cGVzLmMKLSsrKyBiL2dkYi9nZGJ0eXBlcy5jCi1AQCAtODM2LDcgKzgzNiw4IEBA IGFsbG9jYXRlX3N0dWJfbWV0aG9kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKK0luZGV4OiBnZGItNy4x Mi41MC4yMDE3MDIwNy9nZGIvZ2RidHlwZXMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEyLjUw LjIwMTcwMjA3Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNy0wMi0wNyAyMDo0NzozMi4xNzMwMjYz MDYgKzAxMDAKKysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZ2RidHlwZXMuYwkyMDE3LTAy LTA3IDIwOjQ3OjMzLjEyMzAzMzUyMSArMDEwMAorQEAgLTgzNiw3ICs4MzYsOCBAQAogIHN0cnVj dCB0eXBlICoKICBjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBz dHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKICAJCSAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3Ag Kmxvd19ib3VuZCwKQEAgLTgwMSw3ICs4MDAsNyBAQCBpbmRleCBlYzVjMTdhLi5lYjgzNzkxIDEw MDY0NAogIHsKICAgIGlmIChyZXN1bHRfdHlwZSA9PSBOVUxMKQogICAgICByZXN1bHRfdHlwZSA9 IGFsbG9jX3R5cGVfY29weSAoaW5kZXhfdHlwZSk7Ci1AQCAtODUxLDYgKzg1Miw3IEBAIGNyZWF0 ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGUsIHN0cnVjdCB0eXBlICppbmRl eF90eXBlLAorQEAgLTg1MSw2ICs4NTIsNyBAQAogICAgICBUWVBFX1pBTExPQyAocmVzdWx0X3R5 cGUsIHNpemVvZiAoc3RydWN0IHJhbmdlX2JvdW5kcykpOwogICAgVFlQRV9SQU5HRV9EQVRBIChy ZXN1bHRfdHlwZSktPmxvdyA9ICpsb3dfYm91bmQ7CiAgICBUWVBFX1JBTkdFX0RBVEEgKHJlc3Vs dF90eXBlKS0+aGlnaCA9ICpoaWdoX2JvdW5kOwpAQCAtODA5LDcgKzgwOCw3IEBAIGluZGV4IGVj NWMxN2EuLmViODM3OTEgMTAwNjQ0CiAgCiAgICBpZiAobG93X2JvdW5kLT5raW5kID09IFBST1Bf Q09OU1QgJiYgbG93X2JvdW5kLT5kYXRhLmNvbnN0X3ZhbCA+PSAwKQogICAgICBUWVBFX1VOU0lH TkVEIChyZXN1bHRfdHlwZSkgPSAxOwotQEAgLTg3OSw3ICs4ODEsNyBAQCBzdHJ1Y3QgdHlwZSAq CitAQCAtODc5LDcgKzg4MSw3IEBACiAgY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChzdHJ1Y3Qg dHlwZSAqcmVzdWx0X3R5cGUsIHN0cnVjdCB0eXBlICppbmRleF90eXBlLAogIAkJCSAgTE9OR0VT VCBsb3dfYm91bmQsIExPTkdFU1QgaGlnaF9ib3VuZCkKICB7CkBAIC04MTgsNyArODE3LDcgQEAg aW5kZXggZWM1YzE3YS4uZWI4Mzc5MSAxMDA2NDQKICAKICAgIGxvdy5raW5kID0gUFJPUF9DT05T VDsKICAgIGxvdy5kYXRhLmNvbnN0X3ZhbCA9IGxvd19ib3VuZDsKLUBAIC04ODcsNyArODg5LDEx IEBAIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBz dHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKK0BAIC04ODcsNyArODg5LDExIEBACiAgICBoaWdoLmtp bmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5kYXRhLmNvbnN0X3ZhbCA9IGhpZ2hfYm91bmQ7CiAg CkBAIC04MzEsNyArODMwLDcgQEAgaW5kZXggZWM1YzE3YS4uZWI4Mzc5MSAxMDA2NDQKICAKICAg IHJldHVybiByZXN1bHRfdHlwZTsKICB9Ci1AQCAtMTA4NCwxNiArMTA5MCwyMCBAQCBjcmVhdGVf YXJyYXlfdHlwZV93aXRoX3N0cmlkZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLAorQEAgLTEw ODQsMTYgKzEwOTAsMjAgQEAKICAgICAgICAmJiAoIXR5cGVfbm90X2Fzc29jaWF0ZWQgKHJlc3Vs dF90eXBlKQogIAkgICYmICF0eXBlX25vdF9hbGxvY2F0ZWQgKHJlc3VsdF90eXBlKSkpCiAgICAg IHsKQEAgLTg1Myw3ICs4NTIsNyBAQCBpbmRleCBlYzVjMTdhLi5lYjgzNzkxIDEwMDY0NAogICAg ICAgIGVsc2UgaWYgKGJpdF9zdHJpZGUgPiAwKQogIAlUWVBFX0xFTkdUSCAocmVzdWx0X3R5cGUp ID0KICAJICAoYml0X3N0cmlkZSAqIChoaWdoX2JvdW5kIC0gbG93X2JvdW5kICsgMSkgKyA3KSAv IDg7Ci1AQCAtMTg4OCwxMiArMTg5OCwxMiBAQCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVj dCB0eXBlICpkeW5fcmFuZ2VfdHlwZSwKK0BAIC0xODg2LDEyICsxODk2LDEyIEBACiAgICBDT1JF X0FERFIgdmFsdWU7CiAgICBzdHJ1Y3QgdHlwZSAqc3RhdGljX3JhbmdlX3R5cGUsICpzdGF0aWNf dGFyZ2V0X3R5cGU7CiAgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOwpAQCAtODY4 LDcgKzg2Nyw3IEBAIGluZGV4IGVjNWMxN2EuLmViODM3OTEgMTAwNjQ0CiAgICAgIHsKICAgICAg ICBsb3dfYm91bmQua2luZCA9IFBST1BfQ09OU1Q7CiAgICAgICAgbG93X2JvdW5kLmRhdGEuY29u c3RfdmFsID0gdmFsdWU7Ci1AQCAtMTkwNSw3ICsxOTE1LDcgQEAgcmVzb2x2ZV9keW5hbWljX3Jh bmdlIChzdHJ1Y3QgdHlwZSAqZHluX3JhbmdlX3R5cGUsCitAQCAtMTkwMyw3ICsxOTEzLDcgQEAK ICAgICAgfQogIAogICAgcHJvcCA9ICZUWVBFX1JBTkdFX0RBVEEgKGR5bl9yYW5nZV90eXBlKS0+ aGlnaDsKQEAgLTg3Nyw3ICs4NzYsNyBAQCBpbmRleCBlYzVjMTdhLi5lYjgzNzkxIDEwMDY0NAog ICAgICB7CiAgICAgICAgaGlnaF9ib3VuZC5raW5kID0gUFJPUF9DT05TVDsKICAgICAgICBoaWdo X2JvdW5kLmRhdGEuY29uc3RfdmFsID0gdmFsdWU7Ci1AQCAtMTkyMCwxMiArMTkzMCwyMCBAQCBy ZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0eXBlICpkeW5fcmFuZ2VfdHlwZSwKK0BAIC0x OTE4LDEyICsxOTI4LDIwIEBACiAgICAgICAgaGlnaF9ib3VuZC5kYXRhLmNvbnN0X3ZhbCA9IDA7 CiAgICAgIH0KICAKQEAgLTg5OSwxMSArODk4LDExIEBAIGluZGV4IGVjNWMxN2EuLmViODM3OTEg MTAwNjQ0CiAgICBUWVBFX1JBTkdFX0RBVEEgKHN0YXRpY19yYW5nZV90eXBlKS0+ZmxhZ19ib3Vu ZF9ldmFsdWF0ZWQgPSAxOwogICAgcmV0dXJuIHN0YXRpY19yYW5nZV90eXBlOwogIH0KLWRpZmYg LS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCi1pbmRleCAyZGRhMDc0Li5i Y2M5MjAwIDEwMDY0NAotLS0tIGEvZ2RiL2dkYnR5cGVzLmgKLSsrKyBiL2dkYi9nZGJ0eXBlcy5o Ci1AQCAtNTc3LDYgKzU3NywxMCBAQCBzdHJ1Y3QgcmFuZ2VfYm91bmRzCitJbmRleDogZ2RiLTcu MTIuNTAuMjAxNzAyMDcvZ2RiL2dkYnR5cGVzLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41 MC4yMDE3MDIwNy5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTctMDItMDcgMjA6NDc6MzIuMTczMDI2 MzA2ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2dkYnR5cGVzLmgJMjAxNy0w Mi0wNyAyMDo0NzozMy4xMjMwMzM1MjEgKzAxMDAKK0BAIC01NTAsNiArNTUwLDEwIEBACiAgCiAg ICBzdHJ1Y3QgZHluYW1pY19wcm9wIGhpZ2g7CiAgCkBAIC05MTQsNyArOTEzLDcgQEAgaW5kZXgg MmRkYTA3NC4uYmNjOTIwMCAxMDA2NDQKICAgIC8qIFRydWUgaWYgSElHSCByYW5nZSBib3VuZCBj b250YWlucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZQogICAgICAgc3VicmFuZ2UuIFRo aXMgYWZmZWN0cyBob3cgdGhlIGZpbmFsIGhpZ2h0IGJvdW5kIGlzIGNvbXB1dGVkLiAgKi8KICAK LUBAIC03MzksNyArNzQzLDYgQEAgc3RydWN0IG1haW5fdHlwZQorQEAgLTcxMiw3ICs3MTYsNiBA QAogICAgICAvKiAqIFVuaW9uIG1lbWJlciB1c2VkIGZvciByYW5nZSB0eXBlcy4gICovCiAgCiAg ICAgIHN0cnVjdCByYW5nZV9ib3VuZHMgKmJvdW5kczsKQEAgLTkyMiw3ICs5MjEsNyBAQCBpbmRl eCAyZGRhMDc0Li5iY2M5MjAwIDEwMDY0NAogICAgfSBmbGRzX2JuZHM7CiAgCiAgICAvKiAqIFNs b3QgdG8gcG9pbnQgdG8gYWRkaXRpb25hbCBsYW5ndWFnZS1zcGVjaWZpYyBmaWVsZHMgb2YgdGhp cwotQEAgLTEyNTUsNiArMTI1OCwxNSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90 eXBlIChzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xMjI0LDYgKzEyMjcsMTUgQEAKICAgIFRZUEVfUkFO R0VfREFUQShyYW5nZV90eXBlKS0+aGlnaC5raW5kCiAgI2RlZmluZSBUWVBFX0xPV19CT1VORF9L SU5EKHJhbmdlX3R5cGUpIFwKICAgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+bG93Lmtp bmQKQEAgLTkzOCw3ICs5MzcsNyBAQCBpbmRleCAyZGRhMDc0Li5iY2M5MjAwIDEwMDY0NAogIAog IC8qIFByb3BlcnR5IGFjY2Vzc29ycyBmb3IgdGhlIHR5cGUgZGF0YSBsb2NhdGlvbi4gICovCiAg I2RlZmluZSBUWVBFX0RBVEFfTE9DQVRJT04odGhpc3R5cGUpIFwKLUBAIC0xMjg5LDYgKzEzMDEs OSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsK K0BAIC0xMjU4LDYgKzEyNzAsOSBAQAogICAgIFRZUEVfSElHSF9CT1VORF9VTkRFRklORUQoVFlQ RV9JTkRFWF9UWVBFKGFycmF5dHlwZSkpCiAgI2RlZmluZSBUWVBFX0FSUkFZX0xPV0VSX0JPVU5E X0lTX1VOREVGSU5FRChhcnJheXR5cGUpIFwKICAgICBUWVBFX0xPV19CT1VORF9VTkRFRklORUQo VFlQRV9JTkRFWF9UWVBFKGFycmF5dHlwZSkpCkBAIC05NDgsNyArOTQ3LDcgQEAgaW5kZXggMmRk YTA3NC4uYmNjOTIwMCAxMDA2NDQKICAKICAjZGVmaW5lIFRZUEVfQVJSQVlfVVBQRVJfQk9VTkRf VkFMVUUoYXJyYXl0eXBlKSBcCiAgICAgKFRZUEVfSElHSF9CT1VORChUWVBFX0lOREVYX1RZUEUo KGFycmF5dHlwZSkpKSkKLUBAIC0xNzgzLDYgKzE3OTgsNyBAQCBleHRlcm4gc3RydWN0IHR5cGUg KmNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlCitAQCAtMTc2Nyw2ICsxNzgyLDcgQEAKICAK ICBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBz dHJ1Y3QgdHlwZSAqLAogIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqLApA QCAtOTU2LDExICs5NTUsMTEgQEAgaW5kZXggMmRkYTA3NC4uYmNjOTIwMCAxMDA2NDQKICAJCQkJ ICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0 eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLWRp ZmYgLS1naXQgYS9nZGIvcGFyc2UuYyBiL2dkYi9wYXJzZS5jCi1pbmRleCAyYjAwNzA4Li45OTJh Zjg3IDEwMDY0NAotLS0tIGEvZ2RiL3BhcnNlLmMKLSsrKyBiL2dkYi9wYXJzZS5jCi1AQCAtMTAw NiwyMiArMTAwNiwyMCBAQCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBl eHByZXNzaW9uICpleHByLCBpbnQgZW5kcG9zLAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi9wYXJzZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9n ZGIvcGFyc2UuYwkyMDE3LTAyLTA3IDIwOjQ3OjMyLjE3NDAyNjMxMyArMDEwMAorKysrIGdkYi03 LjEyLjUwLjIwMTcwMjA3L2dkYi9wYXJzZS5jCTIwMTctMDItMDcgMjA6NDc6MzMuMTI0MDMzNTI5 ICswMTAwCitAQCAtMTAwNywyMiArMTAwNywyMCBAQAogIAogICAgICBjYXNlIE9QX1JBTkdFOgog ICAgICAgIG9wbGVuID0gMzsKQEAgLTk5NCwxMSArOTkzLDExIEBAIGluZGV4IDJiMDA3MDguLjk5 MmFmODcgMTAwNjQ0CiAgCiAgICAgICAgYnJlYWs7CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL3J1c3Qt ZXhwLnkgYi9nZGIvcnVzdC1leHAueQotaW5kZXggYWViNjA1OC4uYjFiOTYzMyAxMDA2NDQKLS0t LSBhL2dkYi9ydXN0LWV4cC55Ci0rKysgYi9nZGIvcnVzdC1leHAueQotQEAgLTI0MjksMjMgKzI0 MjksMTcgQEAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAoc3RydWN0IHBhcnNlcl9zdGF0ZSAq c3RhdGUsCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3J1c3QtZXhwLnkKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9ydXN0LWV4cC55CTIwMTct MDItMDcgMjA6NDc6MzIuMTc0MDI2MzEzICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL3J1c3QtZXhwLnkJMjAxNy0wMi0wNyAyMDo0NzozMy4xMjQwMzM1MjkgKzAxMDAKK0BAIC0y NDA5LDIzICsyNDA5LDE3IEBACiAgCiAgICAgIGNhc2UgT1BfUkFOR0U6CiAgICAgICAgewpAQCAt MTAyNSwxMSArMTAyNCwxMSBAQCBpbmRleCBhZWI2MDU4Li5iMWI5NjMzIDEwMDY0NAogIAkgIH0K ICAJd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHN0YXRlLCBPUF9SQU5HRSk7CiAgCXdyaXRlX2V4cF9l bHRfbG9uZ2NzdCAoc3RhdGUsIGtpbmQpOwotZGlmZiAtLWdpdCBhL2dkYi9ydXN0LWxhbmcuYyBi L2dkYi9ydXN0LWxhbmcuYwotaW5kZXggMTdiMjBjNi4uMjk1MDAyZiAxMDA2NDQKLS0tLSBhL2dk Yi9ydXN0LWxhbmcuYwotKysrIGIvZ2RiL3J1c3QtbGFuZy5jCi1AQCAtMTI0MSw5ICsxMjQxLDkg QEAgcnVzdF9yYW5nZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9z aWRlIG5vc2lkZSkKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvcnVzdC1sYW5nLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9ydXN0LWxhbmcu YwkyMDE3LTAyLTA3IDIwOjQ3OjMyLjE3NTAyNjMyMSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjA3L2dkYi9ydXN0LWxhbmcuYwkyMDE3LTAyLTA3IDIwOjQ3OjMzLjEyNTAzMzUzNiArMDEw MAorQEAgLTEzMTUsOSArMTMxNSw5IEBACiAgICBraW5kID0gKGVudW0gcmFuZ2VfdHlwZSkgbG9u Z2VzdF90b19pbnQgKGV4cC0+ZWx0c1sqcG9zICsgMV0ubG9uZ2NvbnN0KTsKICAgICpwb3MgKz0g MzsKICAKQEAgLTEwNDEsNyArMTA0MCw3IEBAIGluZGV4IDE3YjIwYzYuLjI5NTAwMmYgMTAwNjQ0 CiAgICAgIGhpZ2ggPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lk ZSk7CiAgCiAgICBpZiAobm9zaWRlID09IEVWQUxfU0tJUCkKLUBAIC0xMzMyLDcgKzEzMzIsNyBA QCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJh bmdlLAorQEAgLTE0MDYsNyArMTQwNiw3IEBACiAgCiAgICAqbG93ID0gMDsKICAgICpoaWdoID0g MDsKQEAgLTEwNTAsNyArMTA0OSw3IEBAIGluZGV4IDE3YjIwYzYuLjI5NTAwMmYgMTAwNjQ0CiAg CiAgICBpZiAoVFlQRV9ORklFTERTICh0eXBlKSA9PSAwKQogICAgICByZXR1cm47Ci1AQCAtMTM0 MCwxNSArMTM0MCwxNCBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVjdCB0eXBlICp0eXBlLCBz dHJ1Y3QgdmFsdWUgKnJhbmdlLAorQEAgLTE0MTQsMTUgKzE0MTQsMTQgQEAKICAgIGkgPSAwOwog ICAgaWYgKHN0cmNtcCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCAwKSwgInN0YXJ0IikgPT0gMCkK ICAgICAgewpAQCAtMTA2OCw3ICsxMDY3LDcgQEAgaW5kZXggMTdiMjBjNi4uMjk1MDAyZiAxMDA2 NDQKICAgICAgICAqaGlnaCA9IHZhbHVlX2FzX2xvbmcgKHZhbHVlX2ZpZWxkIChyYW5nZSwgaSkp OwogICAgICB9CiAgfQotQEAgLTEzNjMsNyArMTM2Miw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAorQEAgLTE0 MzcsNyArMTQzNiw3IEBACiAgICBzdHJ1Y3QgdHlwZSAqcmhzdHlwZTsKICAgIExPTkdFU1QgbG93 LCBoaWdoX2JvdW5kOwogICAgLyogSW5pdGlhbGl6ZWQgdG8gYXBwZWFzZSB0aGUgY29tcGlsZXIu ICAqLwpAQCAtMTA3Nyw3ICsxMDc2LDcgQEAgaW5kZXggMTdiMjBjNi4uMjk1MDAyZiAxMDA2NDQK ICAgIExPTkdFU1QgaGlnaCA9IDA7CiAgICBpbnQgd2FudF9zbGljZSA9IDA7CiAgCi1AQCAtMTQy NSw3ICsxNDI0LDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGlu dCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCitAQCAtMTQ5OSw3ICsxNDk4LDcgQEAKICAJZXJy b3IgKF8oIkNhbm5vdCBzdWJzY3JpcHQgbm9uLWFycmF5IHR5cGUiKSk7CiAgCiAgICAgICAgaWYg KHdhbnRfc2xpY2UKQEAgLTEwODYsNyArMTA4NSw3IEBAIGluZGV4IDE3YjIwYzYuLjI5NTAwMmYg MTAwNjQ0CiAgCWxvdyA9IGxvd19ib3VuZDsKICAgICAgICBpZiAobG93IDwgMCkKICAJZXJyb3Ig KF8oIkluZGV4IGxlc3MgdGhhbiB6ZXJvIikpOwotQEAgLTE0NDMsNyArMTQ0Miw3IEBAIHJ1c3Rf c3Vic2NyaXB0IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUg bm9zaWRlLAorQEAgLTE1MTcsNyArMTUxNiw3IEBACiAgCSAgQ09SRV9BRERSIGFkZHI7CiAgCSAg c3RydWN0IHZhbHVlICphZGRydmFsLCAqdGVtOwogIApAQCAtMTA5NSwxMSArMTA5NCwxMCBAQCBp bmRleCAxN2IyMGM2Li4yOTUwMDJmIDEwMDY0NAogIAkgICAgaGlnaCA9IGhpZ2hfYm91bmQ7CiAg CSAgaWYgKGhpZ2ggPCAwKQogIAkgICAgZXJyb3IgKF8oIkhpZ2ggaW5kZXggbGVzcyB0aGFuIHpl cm8iKSk7Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMtYXJy YXlzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5leHAKLW5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5jYzllY2MwCi0tLS0gL2Rldi9udWxs Ci0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0YXRpYy1hcnJheXMuZXhwCitJbmRl eDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMt YXJyYXlzLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5leHAJMjAxNy0wMi0wNyAyMDo0NzozMy4xMjUwMzM1 MzYgKzAxMDAKIEBAIC0wLDAgKzEsNDIxIEBACiArIyBDb3B5cmlnaHQgMjAxNSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0xNTIyLDExICsxNTIwLDEwIEBAIGluZGV4IDAw MDAwMDAuLmNjOWVjYzAKICtnZGJfdGVzdCAicHJpbnQgYXIxXCgzOjdcKSA9IDQyIiBcCiArCQki SW52YWxpZCBjYXN0LiIgXAogKwkJIkFzc2lnbm1lbnQgb2YgdmFsdWUgdG8gc3ViYXJyYXkiCi1k aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMtYXJyYXlzLmY5MCBi L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RhdGljLWFycmF5cy5mOTAKLW5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5mMjJmY2JlCi0tLS0gL2Rldi9udWxsCi0rKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0YXRpYy1hcnJheXMuZjkwCitJbmRleDogZ2RiLTcu MTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdGF0aWMtYXJyYXlzLmY5 MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vc3RhdGljLWFycmF5cy5mOTAJMjAxNy0wMi0wNyAyMDo0NzozMy4xMjUwMzM1MzYgKzAxMDAK IEBAIC0wLDAgKzEsNTUgQEAKICshIENvcHlyaWdodCAyMDE1IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogKyEKQEAgLTE1ODMsMTEgKzE1ODAsMTEgQEAgaW5kZXggMDAwMDAwMC4uZjIy ZmNiZQogK3Byb2dyYW0gdGVzdHByb2cKICsgIGNhbGwgc3ViCiArZW5kCi1kaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCi1pbmRleCAxNzU2NjFmLi41NDRkNDBhIDEwMDY0NAot LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCi0rKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAKLUBAIC05OCwzICs5OCw3IEBAIGdk Yl90ZXN0ICJwdHlwZSB2bGEyIiAidHlwZSA9IDxub3QgYWxsb2NhdGVkPiIgInB0eXBlIHZsYTIg bm90IGFsbG9jYXRlZCIKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMi41MC4y MDE3MDIwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE3 LTAyLTA3IDIwOjQ3OjMyLjE3NjAyNjMyOCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE3LTAyLTA3IDIwOjQ3 OjMzLjEyNTAzMzUzNiArMDEwMAorQEAgLTk4LDMgKzk4LDcgQEAKICBnZGJfdGVzdCAicHR5cGUg dmxhMig1LCA0NSwgMjApIiBcCiAgICAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcXFwodmVjdG9y IG5vdCBhbGxvY2F0ZWRcXFwpIiBcCiAgICAicHR5cGUgdmxhMig1LCA0NSwgMjApIG5vdCBhbGxv Y2F0ZWQiCkBAIC0xNTk1LDExICsxNTkyLDExIEBAIGluZGV4IDE3NTY2MWYuLjU0NGQ0MGEgMTAw NjQ0CiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtbmVnLWJvdW5k cyJdCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtbmVnLWJvdW5kcyIKICtnZGJf dGVzdCAicHR5cGUgdmxhMSIgInR5cGUgPSAkcmVhbCBcXCgtMjoxLC01OjQsLTM6LTFcXCkiICJw dHlwZSB2bGExIG5lZ2F0aXZlIGJvdW5kcyIKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1zaXplb2YuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt c2l6ZW9mLmV4cAotaW5kZXggODAxMGMwYS4uZjgyNThhMSAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXNpemVvZi5leHAKLUBAIC00NCwzICs0NCw3IEBAIGdkYl90ZXN0ICJwcmlu dCBzaXplb2YocHZsYSkiICIgPSAwIiAicHJpbnQgc2l6ZW9mIG5vbi1hc3NvY2lhdGVkIHB2bGEi CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtc2l6ZW9mLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAkyMDE3LTAyLTA3IDIwOjQ3 OjMyLjE3NjAyNjMyOCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAJMjAxNy0wMi0wNyAyMDo0NzozMy4xMjYwMzM1 NDQgKzAxMDAKK0BAIC00NCwzICs0NCw3IEBACiAgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgInB2bGEtYXNzb2NpYXRlZCJdCiAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg InB2bGEtYXNzb2NpYXRlZCIKICBnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHB2bGEpIiAiID0gNDAw MCIgInByaW50IHNpemVvZiBhc3NvY2lhdGVkIHB2bGEiCkBAIC0xNjA3LDExICsxNjA0LDEwIEBA IGluZGV4IDgwMTBjMGEuLmY4MjU4YTEgMTAwNjQ0CiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRf bGluZV9udW1iZXIgInZsYTEtbmVnLWJvdW5kcyJdCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgInZsYTEtbmVnLWJvdW5kcyIKICtnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHZsYTEpIiAiID0g NDgwIiAicHJpbnQgc2l6ZW9mIHZsYTEgbmVnYXRpdmUgYm91bmRzIgotZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAw MDAwMC4uZGNmMTVlNQotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtc3RyaWRlLmV4cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMi41MC4y MDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCTIwMTctMDIt MDcgMjA6NDc6MzMuMTI2MDMzNTQ0ICswMTAwCiBAQCAtMCwwICsxLDQ0IEBACiArIyBDb3B5cmln aHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE2NTcsMTEgKzE2 NTMsMTAgQEAgaW5kZXggMDAwMDAwMC4uZGNmMTVlNQogK2dkYl9jb250aW51ZV90b19icmVha3Bv aW50ICJzaW5nbGUtZWxlbWVudCIKICtnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCg1XFxc KSIgInByaW50IHNpbmdsZS1lbGVtZW50IgogK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0g NSIgInByaW50IG9uZSBzaW5nbGUtZWxlbWVudCIKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtc3RyaWRlLmY5MAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjhkMjQy NTIKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0 cmlkZS5mOTAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1zdHJpZGUuZjkwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAkyMDE3LTAyLTA3IDIwOjQ3OjMz LjEyNjAzMzU0NCArMDEwMAogQEAgLTAsMCArMSwyOSBAQAogKyEgQ29weXJpZ2h0IDIwMTYgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTY5MiwxMSArMTY4NywxMSBAQCBp bmRleCAwMDAwMDAwLi44ZDI0MjUyCiArCiArICBwdmxhID0+IG51bGwoKSAgICAgICAgISBzaW5n bGUtZWxlbWVudAogK2VuZCBwcm9ncmFtIHZsYV9zdHJpZGUKLWRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS5mOTAKLWluZGV4IGM3NmQyNGMuLmVmMzA3YjcgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS5mOTAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LmY5MAotQEAgLTU0LDQgKzU0LDE0IEBAIHByb2dyYW0gdmxhCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS5mOTAJMjAxNy0wMi0wNyAyMDo0NzozMi4xNzYwMjYzMjggKzAxMDAKKysrKyBnZGItNy4xMi41 MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAJMjAxNy0wMi0wNyAy MDo0NzozMy4xMjYwMzM1NDQgKzAxMDAKK0BAIC01NCw0ICs1NCwxNCBAQAogIAogICAgYWxsb2Nh dGUgKHZsYTMgKDIsMikpICAgICAgICAgICAgICAgISB2bGEyLWRlYWxsb2NhdGVkCiAgICB2bGEz KDosOikgPSAxMwpAQCAtMTcxMSwzNSArMTcwNiwzNCBAQCBpbmRleCBjNzZkMjRjLi5lZjMwN2I3 IDEwMDY0NAogKyAgbCA9IGFsbG9jYXRlZCh2bGExKQogKwogIGVuZCBwcm9ncmFtIHZsYQotZGlm ZiAtLWdpdCBhL2dkYi92YWxhcml0aC5jIGIvZ2RiL3ZhbGFyaXRoLmMKLWluZGV4IGRlNmZjZmQu Ljk3NTM1MDYgMTAwNjQ0Ci0tLS0gYS9nZGIvdmFsYXJpdGguYwotKysrIGIvZ2RiL3ZhbGFyaXRo LmMKLUBAIC0xOTMsMTEgKzE5MywxNyBAQCB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVj dCB2YWx1ZSAqYXJyYXksIExPTkdFU1QgaW5kZXgsIGludCBsb3dlcmJvdW5kKQorSW5kZXg6IGdk Yi03LjEyLjUwLjIwMTcwMjA3L2dkYi92YWxhcml0aC5jCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu MTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdmFsYXJpdGguYwkyMDE3LTAyLTA3IDIwOjQ3OjMzLjEy NjAzMzU0NCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi92YWxhcml0aC5jCTIw MTctMDItMDcgMjA6NDg6MjkuMTE0NDU4Nzg4ICswMTAwCitAQCAtMTkzLDEwICsxOTMsMTYgQEAK ICAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo YXJyYXkpKTsKICAgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVf VEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKICAgIFVMT05HRVNUIGVsdF9zaXplID0gdHlwZV9s ZW5ndGhfdW5pdHMgKGVsdF90eXBlKTsKIC0gIFVMT05HRVNUIGVsdF9vZmZzID0gZWx0X3NpemUg KiAoaW5kZXggLSBsb3dlcmJvdW5kKTsKICsgIExPTkdFU1QgZWx0X29mZnMgPSBpbmRleCAtIGxv d2VyYm91bmQ7CiArICBMT05HRVNUIGVsdF9zdHJpZGUgPSBUWVBFX0JZVEVfU1RSSURFIChUWVBF X0lOREVYX1RZUEUgKGFycmF5X3R5cGUpKTsKLSAgIHN0cnVjdCB2YWx1ZSAqdjsKLSAKKysKICsg IGlmIChlbHRfc3RyaWRlICE9IDApCiArICAgIGVsdF9vZmZzICo9IGVsdF9zdHJpZGU7CiArICBl bHNlCiArICAgIGVsdF9vZmZzICo9IGVsdF9zaXplOwotKworIAogICAgaWYgKGluZGV4IDwgbG93 ZXJib3VuZCB8fCAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90 eXBlKQogLQkJCSAgICAgJiYgZWx0X29mZnMgPj0gdHlwZV9sZW5ndGhfdW5pdHMgKGFycmF5X3R5 cGUpKSkKICsJCQkgICAgICYmIGFicyAoZWx0X29mZnMpID49IHR5cGVfbGVuZ3RoX3VuaXRzIChh cnJheV90eXBlKSkpCiAgICAgIHsKICAgICAgICBpZiAodHlwZV9ub3RfYXNzb2NpYXRlZCAoYXJy YXlfdHlwZSkpCiAgICAgICAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCAodmVj dG9yIG5vdCBhc3NvY2lhdGVkKSIpKTsKLWRpZmYgLS1naXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIv dmFsb3BzLmMKLWluZGV4IDQwMzkyZTguLjI0ZmZhY2IgMTAwNjQ0Ci0tLS0gYS9nZGIvdmFsb3Bz LmMKLSsrKyBiL2dkYi92YWxvcHMuYwotQEAgLTM3NzUsNTYgKzM3NzUsMTkxIEBAIHZhbHVlX29m X3RoaXNfc2lsZW50IChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZykKK0luZGV4OiBn ZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdmFsb3BzLmMKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4x Mi41MC4yMDE3MDIwNy5vcmlnL2dkYi92YWxvcHMuYwkyMDE3LTAyLTA3IDIwOjQ3OjMzLjEyNzAz MzU1MSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi92YWxvcHMuYwkyMDE3LTAy LTA3IDIwOjUwOjI0LjkwOTMzODI3NSArMDEwMAorQEAgLTM3ODIsNTUgKzM3ODIsMTkwIEBACiAg c3RydWN0IHZhbHVlICoKICB2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxv d2JvdW5kLCBpbnQgbGVuZ3RoKQogIHsKQEAgLTE3ODksNiArMTc4MywxMCBAQCBpbmRleCA0MDM5 MmU4Li4yNGZmYWNiIDEwMDY0NAogLSAgcmFuZ2VfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAoYXJy YXlfdHlwZSk7CiAtICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd2Vy Ym91bmQsICZ1cHBlcmJvdW5kKSA8IDApCiAtICAgIGVycm9yIChfKCJzbGljZSBmcm9tIGJhZCBh cnJheSBvciBiaXRzdHJpbmciKSk7CistCistICBpZiAobG93Ym91bmQgPCBsb3dlcmJvdW5kIHx8 IGxlbmd0aCA8IDAKKy0gICAgICB8fCBsb3dib3VuZCArIGxlbmd0aCAtIDEgPiB1cHBlcmJvdW5k KQorLSAgICBlcnJvciAoXygic2xpY2Ugb3V0IG9mIHJhbmdlIikpOwogKyAgYXJ5X2xvd19ib3Vu ZCA9IFRZUEVfTE9XX0JPVU5EIChUWVBFX0lOREVYX1RZUEUgKGFycmF5X3R5cGUpKTsKICsgIGFy eV9oaWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChUWVBFX0lOREVYX1RZUEUgKGFycmF5X3R5 cGUpKTsKICsKQEAgLTE4MTQsMTAgKzE4MTIsNyBAQCBpbmRleCA0MDM5MmU4Li4yNGZmYWNiIDEw MDY0NAogKwogKyAgZWx0X3NpemUgPSBUWVBFX0xFTkdUSCAoZWx0X3R5cGUpOwogKyAgZWx0X29m ZnMgPSBsb3dib3VuZCAtIGFyeV9sb3dfYm91bmQ7Ci0gCi0tICBpZiAobG93Ym91bmQgPCBsb3dl cmJvdW5kIHx8IGxlbmd0aCA8IDAKLS0gICAgICB8fCBsb3dib3VuZCArIGxlbmd0aCAtIDEgPiB1 cHBlcmJvdW5kKQotLSAgICBlcnJvciAoXygic2xpY2Ugb3V0IG9mIHJhbmdlIikpOworKwogKyAg ZWx0X29mZnMgKj0gZWx0X3NpemU7CiArCiArICAvKiBDaGVjayBmb3IgdmFsaWQgdXNlciBpbnB1 dC4gIEluIGNhc2Ugb2YgRm9ydHJhbiB0aGlzIHdhcyBhbHJlYWR5IGRvbmUKQEAgLTE4NjQsOCAr MTg1OSwxNSBAQCBpbmRleCA0MDM5MmU4Li4yNGZmYWNiIDEwMDY0NAogLSAgICBzdHJ1Y3QgdHlw ZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CiAtICAgIExP TkdFU1Qgb2Zmc2V0CiAtICAgICAgPSAobG93Ym91bmQgLSBsb3dlcmJvdW5kKSAqIFRZUEVfTEVO R1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKy0KKy0gICAgc2xpY2VfdHlwZSA9 IGNyZWF0ZV9hcnJheV90eXBlICgoc3RydWN0IHR5cGUgKikgTlVMTCwKKy0JCQkJICAgIGVsZW1l bnRfdHlwZSwKKy0JCQkJICAgIHNsaWNlX3JhbmdlX3R5cGUpOworLSAgICBUWVBFX0NPREUgKHNs aWNlX3R5cGUpID0gVFlQRV9DT0RFIChhcnJheV90eXBlKTsKICsgICAgc3RydWN0IHR5cGUgKmVs ZW1lbnRfdHlwZTsKLSsKKyAKKy0gICAgaWYgKFZBTFVFX0xWQUwgKGFycmF5KSA9PSBsdmFsX21l bW9yeSAmJiB2YWx1ZV9sYXp5IChhcnJheSkpCistICAgICAgc2xpY2UgPSBhbGxvY2F0ZV92YWx1 ZV9sYXp5IChzbGljZV90eXBlKTsKICsgICAgLyogV2hlbiBib3RoIENBTExfQ09VTlQgYW5kIFNU UklERV9MRU5HVEggZXF1YWwgMSwgd2UgY2FuIHVzZSB0aGUgbGVnYWN5CiArICAgICAgIGNvZGUg Zm9yIHN1YmFycmF5cy4gICovCiArICAgIGlmIChjYWxsX2NvdW50ID09IDEgJiYgc3RyaWRlX2xl bmd0aCA9PSAxKQpAQCAtMTg3MywxNSArMTg3NSw5IEBAIGluZGV4IDQwMzkyZTguLjI0ZmZhY2Ig MTAwNjQ0CiArCWVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOwog KwogKwlzbGljZV90eXBlID0gY3JlYXRlX2FycmF5X3R5cGUgKE5VTEwsIGVsZW1lbnRfdHlwZSwg c2xpY2VfcmFuZ2VfdHlwZSk7Ci0gCi0tICAgIHNsaWNlX3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlw ZSAoKHN0cnVjdCB0eXBlICopIE5VTEwsCi0tCQkJCSAgICBlbGVtZW50X3R5cGUsCi0tCQkJCSAg ICBzbGljZV9yYW5nZV90eXBlKTsKLS0gICAgVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVf Q09ERSAoYXJyYXlfdHlwZSk7CisrCiArCVRZUEVfQ09ERSAoc2xpY2VfdHlwZSkgPSBUWVBFX0NP REUgKGFycmF5X3R5cGUpOwotIAotLSAgICBpZiAoVkFMVUVfTFZBTCAoYXJyYXkpID09IGx2YWxf bWVtb3J5ICYmIHZhbHVlX2xhenkgKGFycmF5KSkKLS0gICAgICBzbGljZSA9IGFsbG9jYXRlX3Zh bHVlX2xhenkgKHNsaWNlX3R5cGUpOworKwogKwlpZiAoVkFMVUVfTFZBTCAoYXJyYXkpID09IGx2 YWxfbWVtb3J5ICYmIHZhbHVlX2xhenkgKGFycmF5KSkKICsJICB2ID0gYWxsb2NhdGVfdmFsdWVf bGF6eSAoc2xpY2VfdHlwZSk7CiArCWVsc2UKQEAgLTE5NDksMTEgKzE5NDUsOSBAQCBpbmRleCA0 MDM5MmU4Li4yNGZmYWNiIDEwMDY0NAogICAgICAgIH0KICAKIC0gICAgc2V0X3ZhbHVlX2NvbXBv bmVudF9sb2NhdGlvbiAoc2xpY2UsIGFycmF5KTsKLS0gICAgVkFMVUVfRlJBTUVfSUQgKHNsaWNl KSA9IFZBTFVFX0ZSQU1FX0lEIChhcnJheSk7CiAtICAgIHNldF92YWx1ZV9vZmZzZXQgKHNsaWNl LCB2YWx1ZV9vZmZzZXQgKGFycmF5KSArIG9mZnNldCk7CiArICAgIHNldF92YWx1ZV9jb21wb25l bnRfbG9jYXRpb24gKHYsIGFycmF5KTsKICsgICAgVkFMVUVfUkVHTlVNICh2KSA9IFZBTFVFX1JF R05VTSAoYXJyYXkpOwotKyAgICBWQUxVRV9GUkFNRV9JRCAodikgPSBWQUxVRV9GUkFNRV9JRCAo YXJyYXkpOwogKyAgICBzZXRfdmFsdWVfb2Zmc2V0ICh2LCB2YWx1ZV9vZmZzZXQgKGFycmF5KSAr IGVsdF9vZmZzKTsKICAgIH0KICAKQEAgLTE5NjIsMTEgKzE5NTYsMTEgQEAgaW5kZXggNDAzOTJl OC4uMjRmZmFjYiAxMDA2NDQKICB9CiAgCiAgLyogQ3JlYXRlIGEgdmFsdWUgZm9yIGEgRk9SVFJB TiBjb21wbGV4IG51bWJlci4gIEN1cnJlbnRseSBtb3N0IG9mIHRoZQotZGlmZiAtLWdpdCBhL2dk Yi92YWx1ZS5oIGIvZ2RiL3ZhbHVlLmgKLWluZGV4IDBiNDE3YjQuLjljMzc3MTMgMTAwNjQ0Ci0t LS0gYS9nZGIvdmFsdWUuaAotKysrIGIvZ2RiL3ZhbHVlLmgKLUBAIC0xMDU3LDYgKzEwNTcsOCBA QCBleHRlcm4gc3RydWN0IHZhbHVlICp2YXJ5aW5nX3RvX3NsaWNlIChzdHJ1Y3QgdmFsdWUgKik7 CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3ZhbHVlLmgKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi92YWx1ZS5oCTIwMTctMDItMDcgMjA6NDc6 MzIuMTc4MDI2MzQzICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3ZhbHVlLmgJ MjAxNy0wMi0wNyAyMDo0NzozMy4xMjgwMzM1NTkgKzAxMDAKK0BAIC0xMTA2LDYgKzExMDYsOCBA QAogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3NsaWNlIChzdHJ1Y3QgdmFsdWUgKiwg aW50LCBpbnQpOwogIAoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtZm9ydHJhbi12bGEtc3Ry aW5ncy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtZm9ydHJhbi12bGEtc3RyaW5ncy5wYXRjaAppbmRl eCA2NjU1MzkwLi4xNDc4Y2FiIDEwMDY0NAotLS0gYS9nZGItdmxhLWludGVsLWZvcnRyYW4tdmxh LXN0cmluZ3MucGF0Y2gKKysrIGIvZ2RiLXZsYS1pbnRlbC1mb3J0cmFuLXZsYS1zdHJpbmdzLnBh dGNoCkBAIC0yMywyNCArMjMsMjQgQEAgZ2l0IGRpZmYgLS1zdGF0IC1wIGdkYi9tYXN0ZXIuLi5n ZGIvdXNlcnMvYmhlY2tlbC9mb3J0cmFuLXZsYS1zdHJpbmdzCiAgZ2RiL3ZhbHByaW50LmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgLS0KICAyMCBmaWxlcyBjaGFuZ2VkLCA4Mjcg aW5zZXJ0aW9ucygrKSwgMTEwIGRlbGV0aW9ucygtKQogCi1JbmRleDogZ2RiLTcuMTEuOTAuMjAx NjA5MDcvZ2RiL05FV1MKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvTkVXUwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjExLjkwLjIwMTYwOTA3Lm9yaWcvZ2RiL05FV1MJMjAxNi0wOS0w NyAyMTo1MjoxMC4yNzM1NjMwNjAgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIv TkVXUwkyMDE2LTA5LTA3IDIxOjUzOjIyLjcwODIxMDQxNiArMDIwMAotQEAgLTEsNiArMSw4IEBA Ci0gCQlXaGF0IGhhcyBjaGFuZ2VkIGluIEdEQj8KLSAJICAgICAoT3JnYW5pemVkIHJlbGVhc2Ug YnkgcmVsZWFzZSkKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9ORVdTCTIwMTct MDItMDcgMjA6NTM6NDguODUxODg3MjYyICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcv Z2RiL05FV1MJMjAxNy0wMi0wNyAyMDo1Mzo1NC40Mzc5Mjk2ODkgKzAxMDAKK0BAIC03Myw2ICs3 Myw4IEBACisgICBFcmFzZXMgYWxsIHRoZSBmbGFzaCBtZW1vcnkgcmVnaW9ucyByZXBvcnRlZCBi eSB0aGUgdGFyZ2V0LiAgVGhpcyBpcworICAgZXF1aXZhbGVudCB0byB0aGUgQ0xJIGNvbW1hbmQg Zmxhc2gtZXJhc2UuCiAgCiArKiBGb3J0cmFuOiBTdXBwb3J0IHBvaW50ZXJzIHRvIGR5bmFtaWMg dHlwZXMuCiArCiAgKioqIENoYW5nZXMgaW4gR0RCIDcuMTIKICAKICAqIEdEQiBhbmQgR0RCc2Vy dmVyIG5vdyBidWlsZCB3aXRoIGEgQysrIGNvbXBpbGVyIGJ5IGRlZmF1bHQuCi1JbmRleDogZ2Ri LTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2MtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjEyLjUwLjIw MTcwMjA3L2dkYi9jLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2 MDkwNy5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNi0wOS0wNyAyMTo1MjoxMC4yNzI1NjMwNTEg KzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvYy12YWxwcmludC5jCTIwMTYtMDkt MDcgMjE6NTM6MjIuNzA4MjEwNDE2ICswMjAwCi1AQCAtNjQ1LDYgKzY0NSwyOCBAQAorLS0tIGdk Yi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE3LTAyLTA3IDIwOjUz OjQ4Ljg1MTg4NzI2MiArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9jLXZhbHBy aW50LmMJMjAxNy0wMi0wNyAyMDo1Mzo1NC40Mzc5Mjk2ODkgKzAxMDAKK0BAIC02NDYsNiArNjQ2 LDI4IEBACiAgICAgICAgZWxzZQogIAl7CiAgCSAgLyogbm9ybWFsIGNhc2UgKi8KQEAgLTY5LDEx ICs2OSwxMSBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2MtdmFscHJpbnQuYwog IAkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKICAJICB0eXBlX3ByaW50ICh2YWx1 ZV90eXBlICh2YWwpLCAiIiwgc3RyZWFtLCAtMSk7CiAgCSAgZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCAiKSAiKTsKLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvZHdhcmYycmVhZC5j CitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjExLjkwLjIwMTYwOTA3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA5 LTA3IDIxOjUyOjUzLjcwMDk1MTE3NSArMDIwMAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA3L2dk Yi9kd2FyZjJyZWFkLmMJMjAxNi0wOS0wNyAyMTo1NDowMi4xNDA1NjI4MjUgKzAyMDAKLUBAIC0x NzY0LDcgKzE3NjQsOCBAQAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL2R3YXJm MnJlYWQuYwkyMDE3LTAyLTA3IDIwOjUzOjQ4Ljg2Mjg4NzM0NSArMDEwMAorKysrIGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi9kd2FyZjJyZWFkLmMJMjAxNy0wMi0wNyAyMDo1Mzo1NC40NDI5Mjk3 MjcgKzAxMDAKK0BAIC0xNzY4LDcgKzE3NjgsOCBAQAogIAogIHN0YXRpYyBpbnQgYXR0cl90b19k eW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsCiAgCQkJCSBzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UsCkBAIC04Myw3ICs4Myw3IEBAIElu ZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvZHdhcmYycmVhZC5jCiAgCiAgLyogbWVtb3J5 IGFsbG9jYXRpb24gaW50ZXJmYWNlICovCiAgCi1AQCAtMTE0NDYsNyArMTE0NDcsNyBAQAorQEAg LTExMzk5LDcgKzExNDAwLDcgQEAKICAgICAgewogICAgICAgIG5ld29iai0+c3RhdGljX2xpbmsK ICAJPSBYT0JORVcgKCZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssIHN0cnVjdCBkeW5hbWljX3By b3ApOwpAQCAtOTIsNyArOTIsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2R3 YXJmMnJlYWQuYwogICAgICB9CiAgCiAgICBjdS0+bGlzdF9pbl9zY29wZSA9ICZsb2NhbF9zeW1i b2xzOwotQEAgLTE0NTEyLDI5ICsxNDUxMyw5NCBAQAorQEAgLTE0NDYwLDI5ICsxNDQ2MSw5NCBA QAogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChvYmpmaWxl KTsKICAgIHN0cnVjdCB0eXBlICp0eXBlLCAqcmFuZ2VfdHlwZSwgKmluZGV4X3R5cGUsICpjaGFy X3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtMTk4LDcgKzE5OCw3IEBAIElu ZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvZHdhcmYycmVhZC5jCiAgICBjaGFyX3R5cGUg PSBsYW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2VfZGVmbiwgZ2RiYXJjaCk7 CiAgICB0eXBlID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFyX3R5cGUsIHJhbmdlX3R5 cGUpOwogIAotQEAgLTE0ODY0LDcgKzE0OTMwLDggQEAKK0BAIC0xNDgxOSw3ICsxNDg4NSw4IEBA CiAgCiAgc3RhdGljIGludAogIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0 cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKQEAgLTIwOCw3ICsyMDgsNyBAQCBJ bmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2R3YXJmMnJlYWQuYwogIHsKICAgIHN0cnVj dCBkd2FyZjJfcHJvcGVydHlfYmF0b24gKmJhdG9uOwogICAgc3RydWN0IG9ic3RhY2sgKm9ic3Rh Y2sgPSAmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjazsKLUBAIC0xNDg3NCwxNCArMTQ5NDEs MzMgQEAKK0BAIC0xNDgyOSwxNCArMTQ4OTYsMzMgQEAKICAKICAgIGlmIChhdHRyX2Zvcm1faXNf YmxvY2sgKGF0dHIpKQogICAgICB7CkBAIC0yNDYsNyArMjQ2LDcgQEAgSW5kZXg6IGdkYi03LjEx LjkwLjIwMTYwOTA3L2dkYi9kd2FyZjJyZWFkLmMKICAgICAgfQogICAgZWxzZSBpZiAoYXR0cl9m b3JtX2lzX3JlZiAoYXR0cikpCiAgICAgIHsKLUBAIC0xNDkxNCw4ICsxNTAwMCwyOCBAQAorQEAg LTE0ODY5LDggKzE0OTU1LDI4IEBACiAgCQliYXRvbiA9IFhPQk5FVyAob2JzdGFjaywgc3RydWN0 IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7CiAgCQliYXRvbi0+cmVmZXJlbmNlZF90eXBlID0gZGll X3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7CiAgCQliYXRvbi0+bG9jZXhwci5wZXJfY3Ug PSBjdS0+cGVyX2N1OwpAQCAtMjc3LDcgKzI3Nyw3IEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2 MDkwNy9nZGIvZHdhcmYycmVhZC5jCiAgCQlwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247CiAgCQlw cm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOwogIAkJZ2RiX2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRv biAhPSBOVUxMKTsKLUBAIC0xNTAyNywyNCArMTUxMzMsMjQgQEAKK0BAIC0xNDk4MSwyNCArMTUw ODcsMjQgQEAKICAKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3N0cmlk ZSwgY3UpOwogICAgaWYgKGF0dHIpCkBAIC0zMDYsNyArMzA2LDcgQEAgSW5kZXg6IGdkYi03LjEx LjkwLjIwMTYwOTA3L2dkYi9kd2FyZjJyZWFkLmMKICAJewogIAkgIC8qIElmIGJvdW5kcyBhcmUg Y29uc3RhbnQgZG8gdGhlIGZpbmFsIGNhbGN1bGF0aW9uIGhlcmUuICAqLwogIAkgIGlmIChsb3cu a2luZCA9PSBQUk9QX0NPTlNUICYmIGhpZ2gua2luZCA9PSBQUk9QX0NPTlNUKQotQEAgLTIyNDE2 LDcgKzIyNTIyLDcgQEAKK0BAIC0yMjMzMyw3ICsyMjQzOSw3IEBACiAgICBhdHRyID0gZHdhcmYy X2F0dHIgKGRpZSwgRFdfQVRfYWxsb2NhdGVkLCBjdSk7CiAgICBpZiAoYXR0cl9mb3JtX2lzX2Js b2NrIChhdHRyKSkKICAgICAgewpAQCAtMzE1LDcgKzMxNSw3IEBAIEluZGV4OiBnZGItNy4xMS45 MC4yMDE2MDkwNy9nZGIvZHdhcmYycmVhZC5jCiAgICAgICAgICBhZGRfZHluX3Byb3AgKERZTl9Q Uk9QX0FMTE9DQVRFRCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7CiAgICAgIH0KICAgIGVsc2UgaWYg KGF0dHIgIT0gTlVMTCkKLUBAIC0yMjQzMSw3ICsyMjUzNyw3IEBACitAQCAtMjIzNDgsNyArMjI0 NTQsNyBAQAogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2Fzc29jaWF0ZWQsIGN1 KTsKICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQogICAgICB7CkBAIC0zMjQsNyAr MzI0LDcgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9kd2FyZjJyZWFkLmMKICAg ICAgICAgIGFkZF9keW5fcHJvcCAoRFlOX1BST1BfQVNTT0NJQVRFRCwgcHJvcCwgdHlwZSwgb2Jq ZmlsZSk7CiAgICAgIH0KICAgIGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkKLUBAIC0yMjQ0NCw3ICsy MjU1MCw3IEBACitAQCAtMjIzNjEsNyArMjI0NjcsNyBAQAogIAogICAgLyogUmVhZCBEV19BVF9k YXRhX2xvY2F0aW9uIGFuZCBzZXQgaW4gdHlwZS4gICovCiAgICBhdHRyID0gZHdhcmYyX2F0dHIg KGRpZSwgRFdfQVRfZGF0YV9sb2NhdGlvbiwgY3UpOwpAQCAtMzMzLDEwICszMzMsMTAgQEAgSW5k ZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9kd2FyZjJyZWFkLmMKICAgICAgYWRkX2R5bl9w cm9wIChEWU5fUFJPUF9EQVRBX0xPQ0FUSU9OLCBwcm9wLCB0eXBlLCBvYmpmaWxlKTsKICAKICAg IGlmIChkd2FyZjJfcGVyX29iamZpbGUtPmRpZV90eXBlX2hhc2ggPT0gTlVMTCkKLUluZGV4OiBn ZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvZi10eXBlcHJpbnQuYworSW5kZXg6IGdkYi03LjEyLjUw LjIwMTcwMjA3L2dkYi9mLXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAu MjAxNjA5MDcub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTA5LTA3IDIxOjUyOjEwLjI3MjU2 MzA1MSArMDIwMAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9mLXR5cGVwcmludC5jCTIw MTYtMDktMDcgMjE6NTM6MjIuNzEzMjEwNDYxICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAy MDcub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE3LTAyLTA3IDIwOjUzOjQ4Ljg2Mzg4NzM1MyAr MDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9mLXR5cGVwcmludC5jCTIwMTctMDIt MDcgMjA6NTM6NTQuNDQzOTI5NzM0ICswMTAwCiBAQCAtMzcsNyArMzcsNyBAQAogICNlbmRpZgog IApAQCAtNDg2LDExICs0ODYsMTEgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9m LXR5cGVwcmludC5jCiAgCSAgICAgIGZwdXRzX2ZpbHRlcmVkICgiXG4iLCBzdHJlYW0pOwogIAkg ICAgfQogIAkgIGZwcmludGZpX2ZpbHRlcmVkIChsZXZlbCwgc3RyZWFtLCAiRW5kIFR5cGUgIik7 Ci1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2dkYnR5cGVzLmMKK0luZGV4OiBnZGIt Ny4xMi41MC4yMDE3MDIwNy9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEx LjkwLjIwMTYwOTA3Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNi0wOS0wNyAyMTo1Mjo1My43MDM5 NTEyMDIgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvZ2RidHlwZXMuYwkyMDE2 LTA5LTA3IDIxOjUzOjIyLjcxNDIxMDQ3MCArMDIwMAotQEAgLTE4MTYsNyArMTgxNiw4IEBACist LS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE3LTAyLTA3IDIw OjUzOjQ4Ljg2NTg4NzM2OCArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9nZGJ0 eXBlcy5jCTIwMTctMDItMDcgMjA6NTM6NTQuNDQ0OTI5NzQyICswMTAwCitAQCAtMTgxNCw3ICsx ODE0LDggQEAKICAgIHR5cGUgPSBjaGVja190eXBlZGVmICh0eXBlKTsKICAKICAgIC8qIFdlIG9u bHkgd2FudCB0byByZWNvZ25pemUgcmVmZXJlbmNlcyBhdCB0aGUgb3V0ZXJtb3N0IGxldmVsLiAg Ki8KQEAgLTUwMCw3ICs1MDAsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2dk YnR5cGVzLmMKICAgICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5 cGUpKTsKICAKICAgIC8qIFR5cGVzIHRoYXQgaGF2ZSBhIGR5bmFtaWMgVFlQRV9EQVRBX0xPQ0FU SU9OIGFyZSBjb25zaWRlcmVkCi1AQCAtMTg1MCw2ICsxODUxLDcgQEAKK0BAIC0xODQ4LDYgKzE4 NDksNyBAQAogICAgICAgIH0KICAKICAgICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6CkBAIC01MDgs NyArNTA4LDcgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9nZGJ0eXBlcy5jCiAg ICAgICAgewogIAlnZGJfYXNzZXJ0IChUWVBFX05GSUVMRFMgKHR5cGUpID09IDEpOwogIAotQEAg LTE5NjIsNyArMTk2NCw4IEBACitAQCAtMTk2MCw3ICsxOTYyLDggQEAKICAgIHN0cnVjdCB0eXBl ICphcnlfZGltOwogICAgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcDsKICAKQEAgLTUxOCw3ICs1 MTgsNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2dkYnR5cGVzLmMKICAKICAg IHR5cGUgPSBjb3B5X3R5cGUgKHR5cGUpOwogIAotQEAgLTE5ODcsMTMgKzE5OTAsMTcgQEAKK0BA IC0xOTg1LDEzICsxOTg4LDE3IEBACiAgCiAgICBhcnlfZGltID0gY2hlY2tfdHlwZWRlZiAoVFlQ RV9UQVJHRVRfVFlQRSAoZWx0X3R5cGUpKTsKICAKQEAgLTUzOSw3ICs1MzksNyBAQCBJbmRleDog Z2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL2dkYnR5cGVzLmMKICB9CiAgCiAgLyogUmVzb2x2ZSBk eW5hbWljIGJvdW5kcyBvZiBtZW1iZXJzIG9mIHRoZSB1bmlvbiBUWVBFIHRvIHN0YXRpYwotQEAg LTIxMjMsNiArMjEzMCwyOCBAQAorQEAgLTIxMjEsNiArMjEyOCwyOCBAQAogICAgcmV0dXJuIHJl c29sdmVkX3R5cGU7CiAgfQogIApAQCAtNTY4LDcgKzU2OCw3IEBAIEluZGV4OiBnZGItNy4xMS45 MC4yMDE2MDkwNy9nZGIvZ2RidHlwZXMuYwogIC8qIFdvcmtlciBmb3IgcmVzb2x2ZWRfZHluYW1p Y190eXBlLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgotQEAgLTIxNzEsNyArMjIwMCwx MiBAQAorQEAgLTIxNjksNyArMjE5OCwxMiBAQAogIAkgICAgYnJlYWs7CiAgCSAgfQogIApAQCAt NTgxLDEwICs1ODEsMTAgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi9nZGJ0eXBl cy5jCiAgCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJheSAodHlwZSwgYWRk cl9zdGFjayk7CiAgCSAgYnJlYWs7CiAgCi1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYworSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3 L2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguY2MKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MS45MC4yMDE2MDkwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguY2MJMjAxNi0w OS0wNyAyMTo1MjoxMC4yNzI1NjMwNTEgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNy9n ZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmNjCTIwMTYtMDktMDcgMjE6NTM6MjIuNzE0MjEw NDcwICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dk Yi5jcC92bGEtY3h4LmNjCTIwMTctMDItMDcgMjA6NTM6NDguODY2ODg3Mzc1ICswMTAwCisrKysg Z2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYwkyMDE3 LTAyLTA3IDIwOjUzOjU0LjQ0NDkyOTc0MiArMDEwMAogQEAgLTE1LDYgKzE1LDEwIEBACiAgICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKICAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCkBAIC02MTMsMTAgKzYxMywxMCBAQCBJbmRl eDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYwog KwogICAgcmV0dXJuIHZsYVsyXTsKICB9Ci1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIw Ny9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjExLjkwLjIwMTYwOTA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAJMjAx Ni0wOS0wNyAyMTo1MjoxMC4yNzI1NjMwNTEgKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkw Ny9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAkyMDE2LTA5LTA3IDIxOjUzOjIyLjcx NTIxMDQ3OSArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuY3AvdmxhLWN4eC5leHAJMjAxNy0wMi0wNyAyMDo1Mzo0OC44NjY4ODczNzUgKzAxMDAK KysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4 cAkyMDE3LTAyLTA3IDIwOjUzOjU0LjQ0NDkyOTc0MiArMDEwMAogQEAgLTIzLDYgKzIzLDEyIEBA CiAgICAgIHJldHVybiAtMQogIH0KQEAgLTYzNywxMCArNjM3LDEwIEBAIEluZGV4OiBnZGItNy4x MS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAogK2dkYl90ZXN0 ICJwdHlwZSBwdHIiICJpbnQgXFwoXFwqXFwpXFxcWzNcXFxdIgogK2dkYl90ZXN0ICJwcmludCBw dHIiICJcXChpbnQgXFwoXFwqXFwpXFxcWzNcXFxdXFwpICRoZXgiCiArZ2RiX3Rlc3QgInByaW50 ICpwdHIiICIgPSBcXHs1LCA3LCA5XFx9IgotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJz LmV4cAkyMDE2LTA5LTA3IDIxOjUzOjIyLjcxNTIxMDQ3OSArMDIwMAorKysrIGdkYi03LjEyLjUw LjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZXhwCTIwMTctMDIt MDcgMjA6NTM6NTQuNDQ0OTI5NzQyICswMTAwCiBAQCAtMCwwICsxLDE0MyBAQAogKyMgQ29weXJp Z2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC03ODUsMTAgKzc4 NSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9wb2ludGVycy5leHAKICtnZGJfdGVzdCAicHJpbnQgKigoaW50ZWdlciopICZpbnRhICsg MikiICI9IDMiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYXJyYXkiCiArZ2RiX3Rlc3QgInBy aW50ICooKGludGVnZXIqKSAmaW50dmxhICsgMykiICI9IDQiICJwcmludCB0ZW1wb3JhcnkgcG9p bnRlciwgYWxsb2NhdGVkIHZsYSIKICtnZGJfdGVzdCAicHJpbnQgXCRwYyIgIj0gXFwoUFRSIFRP IC0+IFxcKCB2b2lkIFxcKFxcKVxcKFxcKVxcKVxcKSAkaGV4IDxwb2ludGVyc1xcK1xcZCs+IiAi UHJpbnQgcHJvZ3JhbSBjb3VudGVyIgotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5 MAkyMDE2LTA5LTA3IDIxOjUzOjIyLjcxNTIxMDQ3OSArMDIwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCTIwMTctMDItMDcg MjA6NTM6NTQuNDQ1OTI5NzQ5ICswMTAwCiBAQCAtMCwwICsxLDEwOSBAQAogKyEgQ29weXJpZ2h0 IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtODk5LDEwICs4OTks MTAgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vcG9pbnRlcnMuZjkwCiArICBpbnR2ID0gaW50diArIDEgISBBZnRlciB2YWx1ZSBhc3NpZ25t ZW50CiArCiArZW5kIHByb2dyYW0gcG9pbnRlcnMKLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkw Ny9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50X3R5cGUuZXhwCitJbmRleDogZ2RiLTcu MTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wcmludF90eXBlLmV4cAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v cHJpbnRfdHlwZS5leHAJMjAxNi0wOS0wNyAyMTo1MzoyMi43MTUyMTA0NzkgKzAyMDAKKysrKyBn ZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50X3R5cGUu ZXhwCTIwMTctMDItMDcgMjA6NTM6NTQuNDQ1OTI5NzQ5ICswMTAwCiBAQCAtMCwwICsxLDEwMCBA QAogKyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC0xMDA0LDEwICsxMDA0LDEwIEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50X3R5cGUuZXhwCiArICAgIH0KICt9CiArZ2RiX3Rlc3Qg InB0eXBlIHJlYWxwIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggJHJlYWwgXFwpIgotSW5kZXg6IGdk Yi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4 cAorSW5kZXg6IGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXB0eXBlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjExLjkwLjIwMTYwOTA3Lm9yaWcv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCTIwMTYtMDktMDcgMjE6NTI6 NTMuNzA1OTUxMjIwICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCTIwMTYtMDktMDcgMjE6NTM6MjIuNzE1MjEwNDc5 ICswMjAwCistLS0gZ2RiLTcuMTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1wdHlwZS5leHAJMjAxNy0wMi0wNyAyMDo1Mzo0OC44Njc4ODczODMgKzAxMDAK KysrKyBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1w dHlwZS5leHAJMjAxNy0wMi0wNyAyMDo1Mzo1NC40NDU5Mjk3NDkgKzAxMDAKIEBAIC0zMiw5ICsz Miw5IEBACiAgIyBDaGVjayB0aGUgcHR5cGUgb2YgdmFyaW91cyBWTEEgc3RhdGVzIGFuZCBwb2lu dGVyIHRvIFZMQSdzLgogIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEx LWluaXQiXQpAQCAtMTA0NSwxMCArMTA0NSwxMCBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5 MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCiAgZ2RiX3Rlc3QgInB0 eXBlIHZsYTIoNSwgNDUsIDIwKSIgXAogICAgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZl Y3RvciBub3QgYWxsb2NhdGVkXFxcKSIgXAogICAgInB0eXBlIHZsYTIoNSwgNDUsIDIwKSBub3Qg YWxsb2NhdGVkIgotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4x MS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAky MDE2LTA5LTA3IDIxOjUzOjIyLjcxNjIxMDQ4OCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCTIwMTctMDItMDcg MjA6NTM6NTQuNDQ1OTI5NzQ5ICswMTAwCiBAQCAtMCwwICsxLDEwMyBAQAogKyMgQ29weXJpZ2h0 IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMTUzLDEwICsxMTUz LDEwIEBAIEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1zdHJpbmdzLmV4cAogKwkgICAgcGFzcyAkdGVzdAogKyAgICB9CiArfQotSW5kZXg6 IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlu Z3MuZjkwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtc3RyaW5ncy5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAkyMDE2LTA5LTA3IDIxOjUzOjIy LjcxNjIxMDQ4OCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCTIwMTctMDItMDcgMjA6NTM6NTQuNDQ1OTI5NzQ5 ICswMTAwCiBAQCAtMCwwICsxLDM5IEBACiArISBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xMTk3LDEwICsxMTk3LDEwIEBAIEluZGV4OiBnZGIt Ny4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5 MAogKyAgdmFyX2NoYXJfcCA9PiBudWxsKCkKICsgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3Ap ICAgICAgICAgICAgICAhIHZhcl9jaGFyX3Atbm90LWFzc29jaWF0ZWQKICtlbmQgcHJvZ3JhbSB2 bGFfc3RyaW5ncwotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXR5cGUuZXhwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MS45MC4yMDE2MDkwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXR5cGUuZXhw CTIwMTYtMDktMDcgMjE6NTI6MTAuMjcyNTYzMDUxICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAx NjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAJMjAxNi0wOS0wNyAy MTo1MzoyMi43MTYyMTA0ODggKzAyMDAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXR5cGUuZXhwCTIwMTctMDItMDcgMjA6NTM6NDgu ODY3ODg3MzgzICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtdHlwZS5leHAJMjAxNy0wMi0wNyAyMDo1Mzo1NC40NDY5Mjk3NTcgKzAx MDAKIEBAIC0xMzIsNyArMTMyLDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgIkVuZCBUeXBl IG9uZSIgXQogIApAQCAtMTIyMiwxNyArMTIyMiwxNyBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAx NjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAKICAgICAgICAgICAg ICAgICAgICAgICAiRW5kIFR5cGUgb25lIiBdIFwKICAgICAgICAgICAicHR5cGUgZml2ZWR5bmFy cigyKSV0b25lLCBub3QgYWxsb2NhdGVkIgogIAotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAorSW5kZXg6IGdkYi03LjEy LjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjExLjkwLjIwMTYwOTA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtdmFsdWUuZXhwCTIwMTYtMDktMDcgMjE6NTI6MTAuMjcyNTYzMDUxICswMjAw Ci0rKysgZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt dmFsdWUuZXhwCTIwMTYtMDktMDcgMjE6NTM6MjIuNzE2MjEwNDg4ICswMjAwCistLS0gZ2RiLTcu MTIuNTAuMjAxNzAyMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5l eHAJMjAxNy0wMi0wNyAyMDo1Mzo0OC44Njg4ODczOTEgKzAxMDAKKysrKyBnZGItNy4xMi41MC4y MDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAJMjAxNy0wMi0w NyAyMDo1Mzo1NC40NDY5Mjk3NTcgKzAxMDAKIEBAIC0xNCw2ICsxNCw3IEBACiAgIyBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KICAKICBzdGFuZGFyZF90ZXN0ZmlsZSAidmxhLmY5MCIKICtsb2FkX2xpYiAiZm9ydHJh bi5leHAiCiAgCi0gaWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0 ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCisgaWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVk IHRvIHByZXBhcmUiICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAogICAgICAge2RlYnVnIGY5MCBx dWlldH1dIH0gewogQEAgLTI1LDEyICsyNiwxNSBAQAogICAgICByZXR1cm4gLTEKQEAgLTEyNzgs MTAgKzEyNzgsMTAgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAogICAgInByaW50IGFzc29jaWF0ZWQgJnB2bGEiCiAg Z2RiX3Rlc3QgInByaW50IHB2bGEoMywgNiwgOSkiICIgPSA0MiIgInByaW50IGFzc29jaWF0ZWQg cHZsYSgzLDYsOSkiCiAgZ2RiX3Rlc3QgInByaW50IHB2bGEoMSwgMywgOCkiICIgPSAxMDAxIiAi cHJpbnQgYXNzb2NpYXRlZCBwdmxhKDEsMyw4KSIKLUluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkw Ny9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hpbGQtZi5leHAKK0luZGV4OiBnZGItNy4x Mi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hpbGQtZi5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDkwNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2Ri Lm1pL21pLXZhci1jaGlsZC1mLmV4cAkyMDE2LTA5LTA3IDIxOjUyOjEwLjI3MjU2MzA1MSArMDIw MAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1j aGlsZC1mLmV4cAkyMDE2LTA5LTA3IDIxOjUzOjIyLjcxNjIxMDQ4OCArMDIwMAorLS0tIGdkYi03 LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWNoaWxkLWYu ZXhwCTIwMTctMDItMDcgMjA6NTM6NDguODY4ODg3MzkxICswMTAwCisrKysgZ2RiLTcuMTIuNTAu MjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwCTIwMTctMDIt MDcgMjA6NTM6NTQuNDQ2OTI5NzU3ICswMTAwCiBAQCAtMTcsNiArMTcsNyBAQAogIAogIGxvYWRf bGliIG1pLXN1cHBvcnQuZXhwCkBAIC0xMzAzLDEwICsxMzAzLDEwIEBAIEluZGV4OiBnZGItNy4x MS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hpbGQtZi5leHAKICAK ICBzZXQgY2hpbGRyZW4gW2xpc3QgW2xpc3QgImFycmF5Li0xIiAiLTEiIDIgIiRpbnQ0IFxcKDJc XCkiXSBcCiAgCQkgIFtsaXN0ICJhcnJheS4wIiAiMCIgMiAiJGludDQgXFwoMlxcKSJdIFwKLUlu ZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9y dHJhbi5leHAKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS12bGEtZm9ydHJhbi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDkw Ny5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cAkyMDE2LTA5LTA3 IDIxOjUyOjEwLjI3MjU2MzA1MSArMDIwMAotKysrIGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cAkyMDE2LTA5LTA3IDIxOjUzOjIyLjcx NjIxMDQ4OCArMDIwMAorLS0tIGdkYi03LjEyLjUwLjIwMTcwMjA3Lm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCTIwMTctMDItMDcgMjA6NTM6NDguODY4ODg3Mzkx ICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkt dmxhLWZvcnRyYW4uZXhwCTIwMTctMDItMDcgMjA6NTM6NTQuNDQ2OTI5NzU3ICswMTAwCiBAQCAt MTcsNyArMTcsOSBAQAogICMgQXJyYXkgKFZMQSkuCiAgCkBAIC0xNDA1LDExICsxNDA1LDExIEBA IEluZGV4OiBnZGItNy4xMS45MC4yMDE2MDkwNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEt Zm9ydHJhbi5leHAKICAgICJpbmZvIHR5cGUgdmFyaWFibGUgcHZsYTJfYXNzb2NpYXRlZCIKICBt aV9nZGJfdGVzdCAiNTkyLXZhci1zaG93LWZvcm1hdCBwdmxhMl9hc3NvY2lhdGVkIiBcCiAgICAi NTkyXFxeZG9uZSxmb3JtYXQ9XCJuYXR1cmFsXCIiIFwKLUluZGV4OiBnZGItNy4xMS45MC4yMDE2 MDkwNy9nZGIvdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdHlw ZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMS45MC4yMDE2MDkwNy5vcmlnL2dkYi90 eXBlcHJpbnQuYwkyMDE2LTA5LTA3IDIxOjUyOjEwLjI3MjU2MzA1MSArMDIwMAotKysrIGdkYi03 LjExLjkwLjIwMTYwOTA3L2dkYi90eXBlcHJpbnQuYwkyMDE2LTA5LTA3IDIxOjUzOjIyLjcxNzIx MDQ5NyArMDIwMAotQEAgLTQ4NSw2ICs0ODUsMjUgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIw Ny5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE3LTAyLTA3IDIwOjUzOjQ4Ljg2OTg4NzM5OCArMDEw MAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90eXBlcHJpbnQuYwkyMDE3LTAyLTA3IDIw OjUzOjU0LjQ0NjkyOTc1NyArMDEwMAorQEAgLTQ3NSw2ICs0NzUsMjUgQEAKICAgICAgICBwcmlu dGZfZmlsdGVyZWQgKCIgKi9cbiIpOyAgICAKICAgICAgfQogIApAQCAtMTQzNSwxMSArMTQzNSwx MSBAQCBJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3R5cGVwcmludC5jCiAgICBMQV9Q UklOVF9UWVBFICh0eXBlLCAiIiwgZ2RiX3N0ZG91dCwgc2hvdywgMCwgJmZsYWdzKTsKICAgIHBy aW50Zl9maWx0ZXJlZCAoIlxuIik7CiAgCi1JbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2Ri L3ZhbG9wcy5jCitJbmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3ZhbG9wcy5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTEuOTAuMjAxNjA5MDcub3JpZy9nZGIvdmFsb3BzLmMJMjAxNi0w OS0wNyAyMTo1Mjo1My43MDc5NTEyMzggKzAyMDAKLSsrKyBnZGItNy4xMS45MC4yMDE2MDkwNy9n ZGIvdmFsb3BzLmMJMjAxNi0wOS0wNyAyMTo1MzoyMi43MTcyMTA0OTcgKzAyMDAKLUBAIC0xNTYy LDYgKzE1NjIsMTkgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi92YWxvcHMu YwkyMDE3LTAyLTA3IDIwOjUzOjQ4Ljg3MDg4NzQwNiArMDEwMAorKysrIGdkYi03LjEyLjUwLjIw MTcwMjA3L2dkYi92YWxvcHMuYwkyMDE3LTAyLTA3IDIwOjUzOjU0LjQ0NzkyOTc2NSArMDEwMAor QEAgLTE1NjksNiArMTU2OSwxOSBAQAogICAgaWYgKFRZUEVfQ09ERSAoYmFzZV90eXBlKSA9PSBU WVBFX0NPREVfUFRSKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKmVuY190eXBlOwpAQCAt MTQ1OSw3ICsxNDU5LDcgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi92YWxvcHMu YwogIAogICAgICAgIC8qIFdlIG1heSBiZSBwb2ludGluZyB0byBzb21ldGhpbmcgZW1iZWRkZWQg aW4gYSBsYXJnZXIgb2JqZWN0LgogICAgICAgICAgIEdldCB0aGUgcmVhbCB0eXBlIG9mIHRoZSBl bmNsb3Npbmcgb2JqZWN0LiAgKi8KLUBAIC0xNTc3LDggKzE1OTAsNyBAQAorQEAgLTE1ODQsOCAr MTU5Nyw3IEBACiAgICAgICAgZWxzZQogIAkvKiBSZXRyaWV2ZSB0aGUgZW5jbG9zaW5nIG9iamVj dCBwb2ludGVkIHRvLiAgKi8KICAJYXJnMiA9IHZhbHVlX2F0X2xhenkgKGVuY190eXBlLCAKQEAg LTE0NjksMTEgKzE0NjksMTEgQEAgSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi92YWxv cHMuYwogIAogICAgICAgIGVuY190eXBlID0gdmFsdWVfdHlwZSAoYXJnMik7CiAgICAgICAgcmV0 dXJuIHJlYWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUgKGFyZzIsIGVuY190eXBlLCBiYXNlX3R5 cGUsIGFyZzEpOwotSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwOTA3L2dkYi92YWxwcmludC5jCitJ bmRleDogZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3ZhbHByaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMS45MC4yMDE2MDkwNy5vcmlnL2dkYi92YWxwcmludC5jCTIwMTYtMDktMDcgMjE6 NTI6MTAuMjczNTYzMDYwICswMjAwCi0rKysgZ2RiLTcuMTEuOTAuMjAxNjA5MDcvZ2RiL3ZhbHBy aW50LmMJMjAxNi0wOS0wNyAyMTo1MzoyMi43MTgyMTA1MDYgKzAyMDAKLUBAIC0xMTQxLDEyICsx MTQxLDYgQEAKKy0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi92YWxwcmludC5jCTIw MTctMDItMDcgMDI6NDg6NDcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAy MDcvZ2RiL3ZhbHByaW50LmMJMjAxNy0wMi0wNyAyMDo1Mzo1NC40NDg5Mjk3NzIgKzAxMDAKK0BA IC0xMTY1LDEyICsxMTY1LDYgQEAKICAgICAgICByZXR1cm4gMDsKICAgICAgfQogIAoKZGlmZiAt LWdpdCBhL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC1z dHJpbmdidC1maXgucGF0Y2gKaW5kZXggMjllZjU2My4uMWQyOTgyNSAxMDA2NDQKLS0tIGEvZ2Ri LXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2gKKysrIGIvZ2RiLXZsYS1pbnRlbC1zdHJpbmdi dC1maXgucGF0Y2gKQEAgLTI3LDQwICsyNyw0MyBAQCBjYW5ub3QgcmVwcm9kdWNlIGl0LgogVGhh bmtzLAogSmFuCiAKLS0tLSAuL2dkYi9kd2FyZjJsb2MuYwkyMDE2LTA4LTI5IDA0OjAxOjI1LjAw MDAwMDAwMCArMDIwMAotKysrIC4vZ2RiL2R3YXJmMmxvYy5jCTIwMTYtMDktMDEgMTE6MDA6MjAu MjU4OTA5NDk0ICswMjAwCi1AQCAtMjI4OSw2ICsyMjg5LDE1IEBAIGNvbnN0IHN0cnVjdCBkd2Fy Zl9leHByX2NvbnRleHRfZnVuY3MgZHcKLSAgIGR3YXJmX2V4cHJfZ2V0X29ial9hZGRyCi0gfTsK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvZHdhcmYybG9jLmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy4xMi41MC4yMDE3MDIwNy5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE3LTAyLTE2 IDIzOjMxOjUzLjk3Nzg5MzI4OSArMDEwMAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi9k d2FyZjJsb2MuYwkyMDE3LTAyLTE2IDIzOjM3OjQ0LjYyNTUyMjA4MSArMDEwMAorQEAgLTIyODUs NiArMjI4NSwxMiBAQAorICAgY3R4LnBlcl9jdSA9IHBlcl9jdTsKKyAgIGN0eC5vYmpfYWRkcmVz cyA9IDA7CiAgCi0rc3RhdGljIHZvaWQKLStzZWxlY3RfZnJhbWVfY2xlYW51cCAodm9pZCAqYXJn KQotK3sKLSsgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSA9IChzdHJ1Y3QgZnJhbWVfaW5mbyAq KSBhcmc7Ci0rCisrc3RydWN0IGZyYW1lX2luZm8gKm9sZF9mcmFtZSAoZGVwcmVjYXRlZF9zYWZl X2dldF9zZWxlY3RlZF9mcmFtZSAoKSk7CisrVFJZCisrICB7CiArICBpZiAoZnJhbWUgIT0gTlVM TCkKICsgICAgc2VsZWN0X2ZyYW1lIChmcmFtZSk7Ci0rfQogKwotIC8qIEV2YWx1YXRlIGEgbG9j YXRpb24gZGVzY3JpcHRpb24sIHN0YXJ0aW5nIGF0IERBVEEgYW5kIHdpdGggbGVuZ3RoCi0gICAg U0laRSwgdG8gZmluZCB0aGUgY3VycmVudCBsb2NhdGlvbiBvZiB2YXJpYWJsZSBvZiBUWVBFIGlu IHRoZQotICAgIGNvbnRleHQgb2YgRlJBTUUuICBCWVRFX09GRlNFVCBpcyBhcHBsaWVkIGFmdGVy IHRoZSBjb250ZW50cyBhcmUKLUBAIC0yMzE4LDYgKzIzMjcsMTEgQEAgZHdhcmYyX2V2YWx1YXRl X2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQorICAgc2NvcGVkX3ZhbHVlX21hcmsgZnJlZV92YWx1 ZXM7CiAgCi0gICBjdHggPSBuZXdfZHdhcmZfZXhwcl9jb250ZXh0ICgpOwotICAgb2xkX2NoYWlu ID0gbWFrZV9jbGVhbnVwX2ZyZWVfZHdhcmZfZXhwcl9jb250ZXh0IChjdHgpOwotKwotKyAgbWFr ZV9jbGVhbnVwIChzZWxlY3RfZnJhbWVfY2xlYW51cCwgZGVwcmVjYXRlZF9zYWZlX2dldF9zZWxl Y3RlZF9mcmFtZSAoKSk7Ci0rICBpZiAoZnJhbWUgIT0gTlVMTCkKLSsgICAgc2VsZWN0X2ZyYW1l IChmcmFtZSk7CisgICBjdHguZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpOwor QEAgLTI0NzEsNiArMjQ3NywxNSBAQAorIAorICAgc2V0X3ZhbHVlX2luaXRpYWxpemVkIChyZXR2 YWwsIGN0eC5pbml0aWFsaXplZCk7CisgCisrICB9CisrQ0FUQ0ggKGV4LCBSRVRVUk5fTUFTS19B TEwpCisrICB7CisrICAgIHNlbGVjdF9mcmFtZSAob2xkX2ZyYW1lKTsKKysgICAgdGhyb3dfZXhj ZXB0aW9uIChleCk7CisrICB9CisrRU5EX0NBVENICisrc2VsZWN0X2ZyYW1lIChvbGRfZnJhbWUp OwogKwotICAgdmFsdWVfY2hhaW4gPSBtYWtlX2NsZWFudXBfdmFsdWVfZnJlZV90b19tYXJrICh2 YWx1ZV9tYXJrICgpKTsKKyAgIHJldHVybiByZXR2YWw7CisgfQogIAotICAgY3R4LT5nZGJhcmNo ID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5 bmFtaWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS1zdHViLmY5MAky MDE1LTA1LTMxIDE2OjE0OjA1Ljg0NDU0NTM0NCArMDIwMAorKysrIGdkYi03LjEyLjUwLjIwMTcw MjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS1zdHViLmY5 MAkyMDE3LTAyLTE2IDIzOjMyOjA5LjU0NjAxMDAwMiArMDEwMAogQEAgLTAsMCArMSwyNCBAQAog KyEgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAt ODYsMTAgKzg5LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS1zdHViLmY5CiArICByZWFsIDo6IGR1bW15 CiArICBkdW1teSA9IDEKICtlbmQgc3Vicm91dGluZSBiYXIKLUluZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5leHAK K0luZGV4OiBnZGItNy4xMi41MC4yMDE3MDIwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5 bmFtaWMtb3RoZXItZnJhbWUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZXhwCTIwMTUtMDUtMzEg MTY6MTQ6MDUuODQ1NTQ1MzUxICswMjAwCisrKysgZ2RiLTcuMTIuNTAuMjAxNzAyMDcvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmV4cAkyMDE3LTAyLTE2IDIz OjMyOjA5LjU0NjAxMDAwMiArMDEwMAogQEAgLTAsMCArMSwzOSBAQAogKyMgQ29weXJpZ2h0IDIw MTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMzAsMTAgKzEzMywxMCBA QCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5 bmFtaWMtb3RoZXItZnJhbWUuZXhwCiArfQogKwogK2dkYl90ZXN0ICJidCIge2ZvbyBcKHN0cmlu Zz0naGVsbG8nLip9Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZjkwCitJbmRleDogZ2RiLTcuMTIuNTAuMjAx NzAyMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmY5MAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9k eW5hbWljLW90aGVyLWZyYW1lLmY5MAkyMDE1LTA1LTMxIDE2OjE0OjA1Ljg0NTU0NTM1MSArMDIw MAorKysrIGdkYi03LjEyLjUwLjIwMTcwMjA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHlu YW1pYy1vdGhlci1mcmFtZS5mOTAJMjAxNy0wMi0xNiAyMzozMjowOS41NDYwMTAwMDIgKzAxMDAK IEBAIC0wLDAgKzEsMzYgQEAKICshIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogKyEKCmRpZmYgLS1naXQgYS9nZGIuc3BlYyBiL2dkYi5zcGVjCmluZGV4IDA5 NWM5MzQuLmRmNzE5NDkgMTAwNjQ0Ci0tLSBhL2dkYi5zcGVjCisrKyBiL2dkYi5zcGVjCkBAIC0x OCwxNSArMTgsMTUgQEAKIE5hbWU6ICV7P3NjbF9wcmVmaXh9Z2RiCiAKICMgRnJlZXplIGl0IHdo ZW4gR0RCIGdldHMgYnJhbmNoZWQKLSVnbG9iYWwgc25hcHNyYyAgICAyMDE2MDgwMQorJWdsb2Jh bCBzbmFwc3JjICAgIDIwMTcwMjI2CiAjIFNlZSB0aW1lc3RhbXAgb2Ygc291cmNlIGdudWxpYiBp bnN0YWxsZWQgaW50byBnZGIvZ251bGliLyAuCiAlZ2xvYmFsIHNuYXBnbnVsaWIgMjAxNTA4MjIK ICVnbG9iYWwgdGFybmFtZSBnZGItJXt2ZXJzaW9ufQotVmVyc2lvbjogNy4xMi4xCitWZXJzaW9u OiA3LjEyLjUwLiV7c25hcHNyY30KIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBs ZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBu b3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0 aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiA0NyV7P2Rpc3R9CitSZWxlYXNlOiAxJXs/ ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrIGFuZCBHUEx2Mysgd2l0aCBleGNlcHRpb25zIGFuZCBH UEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTCsgYW5kIExHUEx2MisgYW5k IExHUEx2MysgYW5kIEJTRCBhbmQgUHVibGljIERvbWFpbiBhbmQgR0ZETAogR3JvdXA6IERldmVs b3BtZW50L0RlYnVnZ2VycwpAQCAtMjc0LDcgKzI3NCw3IEBAIFBhdGNoMjMxOiBnZGItNi4zLWJ6 MjAyNjg5LWV4ZWMtZnJvbS1wdGhyZWFkLXRlc3QucGF0Y2gKIAogIyBCYWNrcG9ydGVkIGZpeHVw cyBwb3N0IHRoZSBzb3VyY2UgdGFyYmFsbC4KICNYZHJvcDogSnVzdCBiYWNrcG9ydHMuCi1QYXRj aDIzMjogZ2RiLXVwc3RyZWFtLnBhdGNoCisjUGF0Y2gyMzI6IGdkYi11cHN0cmVhbS5wYXRjaAog CiAjIFRlc3RjYXNlIGZvciBQUEMgUG93ZXI2L0RGUCBpbnN0cnVjdGlvbnMgZGlzYXNzZW1ibHkg KEJaIDIzMDAwMCkuCiAjPWZlZG9yYXRlc3QrcHBjCkBAIC0zNDUsMTAgKzM0NSw2IEBAIFBhdGNo Mjg5OiBnZGItNi41LWlhNjQtbGlidW53aW5kLWxlYWstdGVzdC5wYXRjaAogIz1mZWRvcmF0ZXN0 CiBQYXRjaDI5MDogZ2RiLTYuNS1taXNzZWQtdHJhcC1vbi1zdGVwLXRlc3QucGF0Y2gKIAotIyBT dXBwb3J0IERXX1RBR19pbnRlcmZhY2VfdHlwZSB0aGUgc2FtZSB3YXkgYXMgRFdfVEFHX2NsYXNz X3R5cGUgKEJaIDQyNjYwMCkuCi0jPWZlZG9yYXRlc3QKLVBhdGNoMjk0OiBnZGItNi43LWJ6NDI2 NjAwLURXX1RBR19pbnRlcmZhY2VfdHlwZS10ZXN0LnBhdGNoCi0KICMgVGVzdCBnY29yZSBtZW1v cnkgYW5kIHRpbWUgcmVxdWlyZW1lbnRzIGZvciBsYXJnZSBpbmZlcmlvcnMuCiAjPWZlZG9yYXRl c3QKIFBhdGNoMjk2OiBnZGItNi41LWdjb3JlLWJ1ZmZlci1saW1pdC10ZXN0LnBhdGNoCkBAIC02 MjksMjAgKzYyNSwxMCBAQCBQYXRjaDExMjM6IGdkYi1yaGJ6MTMyNTc5NS1mcmFtZWZpbHRlcnMt dGVzdC5wYXRjaAogIyBbZHRzK2VsN10gW3g4NipdIEJ1bmRsZSBsaW51eF9wZXJmLmggZm9yIGxp YmlwdCAoUkggQlogMTI1NjUxMykuCiBQYXRjaDExNDM6IGdkYi1saW51eF9wZXJmLWJ1bmRsZS5w YXRjaAogCi0jIFtyaGVsNis3XSBGaXggY29tcGF0aWJpbGl0eSBvZiBiaXNvbiA8My4xIGFuZCBn Y2MgPj02LgotUGF0Y2gxMTQ0OiBnZGItYmlzb24tb2xkLnBhdGNoCi0KLSMgW3Rlc3RzdWl0ZV0g TW9yZSB0ZXN0c3VpdGUgZml4ZXMuCi1QYXRjaDExNDU6IGdkYi10ZXN0c3VpdGUtY2FzdHMucGF0 Y2gKLVBhdGNoMTE0NjogZ2RiLXRlc3RzdWl0ZS1tLXN0YXRpYy5wYXRjaAotCiAjIEZpeCBUTFMg KHN1Y2ggYXMgJ2Vycm5vJykgcmVncmVzc2lvbi4KIFBhdGNoMTE0OTogZ2RiLXRscy0xb2YyLnBh dGNoCiBQYXRjaDExNTA6IGdkYi10bHMtMm9mMi5wYXRjaAogCi0jIFt0ZXN0c3VpdGVdIEZpeCBm YWxzZSBGQUlMIGZvciBnZGIuYmFzZS9tb3Jlc3RhY2suZXhwLgotUGF0Y2gxMTUxOiBnZGItdGVz dHN1aXRlLW1vcmVzdGFjay1nb2xkLnBhdGNoCi0KICMgRml4IGdkYi1oZWFkbGVzcyAvdXNyL2Jp bi8gZXhlY3V0YWJsZXMgKEJaIDEzOTAyNTEpLgogUGF0Y2gxMTUyOiBnZGItbGliZXhlYy1hZGQt aW5kZXgucGF0Y2gKIApAQCAtODA4LDYgKzc5NCw5IEBAIEJ1aWxkUmVxdWlyZXM6IHZhbGdyaW5k JXtiaXRzX2xvY2FsfSB2YWxncmluZCV7Yml0c19vdGhlcn0KICVpZiAwJXshP3JoZWw6MX0gfHwg MCV7P3JoZWx9ID4gNgogQnVpbGRSZXF1aXJlczogeHoKICVlbmRpZgorJWlmIDAleyE/cmhlbDox fSB8fCAwJXs/cmhlbH0gPiA3CitCdWlsZFJlcXVpcmVzOiBydXN0CislZW5kaWYKIAogJWVuZGlm ICMgMCV7P193aXRoX3Rlc3RzdWl0ZToxfQogCkBAIC04ODEsNyArODcwLDcgQEAgZmluZCAtbmFt ZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICMgTWF0Y2ggdGhlIEZlZG9yYSdzIHZlcnNpb24gaW5m by4KICVwYXRjaDIgLXAxCiAKLSVwYXRjaDIzMiAtcDEKKyNwYXRjaDIzMiAtcDEKICVwYXRjaDM0 OSAtcDEKICVwYXRjaDEwNTggLXAxCiAlcGF0Y2gxMTMyIC1wMQpAQCAtOTI3LDcgKzkxNiw2IEBA IGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAlcGF0Y2gyODcgLXAxCiAlcGF0Y2gy ODkgLXAxCiAlcGF0Y2gyOTAgLXAxCi0lcGF0Y2gyOTQgLXAxCiAlcGF0Y2gyOTYgLXAxCiAlcGF0 Y2gyOTggLXAxCiAlcGF0Y2gzMDkgLXAxCkBAIC0xMDE2LDEyICsxMDA0LDggQEAgZG9uZQogJXBh dGNoMTExOCAtcDEKICVwYXRjaDExMjMgLXAxCiAlcGF0Y2gxMTQzIC1wMQotJXBhdGNoMTE0NCAt cDEKLSVwYXRjaDExNDUgLXAxCi0lcGF0Y2gxMTQ2IC1wMQogJXBhdGNoMTE0OSAtcDEKICVwYXRj aDExNTAgLXAxCi0lcGF0Y2gxMTUxIC1wMQogJXBhdGNoMTE1MiAtcDEKICVwYXRjaDExNTMgLXAx CiAlcGF0Y2gxMTU1IC1wMQpAQCAtMTU5NCw2ICsxNTc4LDEwIEBAIHRoZW4KIGZpCiAKICVjaGFu Z2Vsb2cKKyogTW9uIEZlYiAyNyAyMDE3IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPiAtIDcuMTIuNTAuMjAxNzAyMjYtMS5mYzI2CistIFJlYmFzZSB0byBwcmUtNy4x MyBGU0YgR0RCIHRydW5rLgorLSBEcm9wcGVkIGdkYi02LjctYno0MjY2MDAtRFdfVEFHX2ludGVy ZmFjZV90eXBlLXRlc3QucGF0Y2ggYXMgR0NKIGlzIG5vIG1vcmUuCisKICogRnJpIEZlYiAyNCAy MDE3IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTIuMS00 Ny5mYzI2CiAtIE5ldyB0ZXN0Y2FzZSBmb3I6IEZpeCA8dGFiPi1jb21wbGV0aW9uIGNyYXNoIChH YXJ5IEJlbnNvbiwgUkggQlogMTM5ODM4NykuCiAtIFt0ZXN0c3VpdGVdIFVzZSBtb3JlIHN0YW5k YXJkX291dHB1dF9maWxlLgoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGRh MDYxMmUuLjcyY2Y0NGEgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwz ICsxLDMgQEAKIFNIQTUxMiAoZ2RiLWxpYnN0ZGMrKy12My1weXRob24tNi4zLjEtMjAxNzAyMTIu dGFyLnh6KSA9IDIyYWQ0MTg3ZDZiYjk4NTFlY2YzODljM2ZmNGM2OGYzM2NjZjU2MDJkOGY1MWJj MzM3MjE1YzcwMGQ1NmM5MDczYjNmYjQwZWNlM2Y1ODkwMTMxNTE2MWY3NmE0ZmQxZDY0NjNjNjIz NjUwMzE3YWQ5NmZkOWUzZjRhYmE3MjUyCiBTSEE1MTIgKHYxLjUudGFyLmd6KSA9IGVhM2U3NjI5 MWQ1YjA3N2Q1YjQyMDYxODk4YTFmNzBhZjZjYmRiY2NiN2QwNWM1OTkwNGYzMjJjYTFjMDNmNzU5 NmNhYzZhOTY2YjgwYjEyZDJjMmQ4NjIxMmYxN2Q2YmRlMDJiMWRhZjkyYmU2MmU0OWFiY2IyMzRl MmJhY2JkCi1TSEE1MTIgKGdkYi03LjEyLjEudGFyLnh6KSA9IDBhYzhkMGE0OTUxMDM2MTFlZjQx MTY3YTA4MzEzYTAxMGRjZTZjYTRjNmQ4MjdjYmU4NTU4YTBjMWExYThhNmJmYTUzZjFiNzcwNDI1 MTI4OWNhYmFiYmZhYWY5ZTA3NTU1MGNkZjc0MWE1NGQ2Y2Q5Y2EzNDMzZDkxMGVmY2Q4CitTSEE1 MTIgKGdkYi03LjEyLjUwLjIwMTcwMjI2LnRhci54eikgPSBjZjFiNTVjMDExZmM2ZGZlZTY0YzBk MmU4ZmFjZWE2MjcwYzRiMWU1OTY2NDI3YmM4ZTJmMzZiYzI1MTVkNWQ1MWVhNmExYTRlMGE1MzAw ZGZhZDQwZmY3OThkMTc2M2Y3ZjkzOTdmM2QwM2ZmZjVhYjJmMWNjODhjNGVhZDczNwo=