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: Michael Young To: git-commits@fedoraproject.org Subject: [rpms/xen] rawhide: 4 security updates Date: Thu, 18 Jun 2026 20:15:56 GMT Message-ID: <178181375620.1.3012939153567001614.rpms-xen-0c18c23c4c54@fedoraproject.org> List-ID: X-Git-Repo: rpms/xen X-Git-Branch: rawhide X-Git-Rev: 0c18c23c4c540b04358f824f0130e82c7734c2ab ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMveGVuCiAgICAgICAgICAgIEJyYW5jaCA6IHJhd2hpZGUKICAgICAgICAgICAg Q29tbWl0IDogMGMxOGMyM2M0YzU0MGIwNDM1OGY4MjRmMDEzMGU4MmM3NzM0YzJhYgogICAgICAg ICAgICBBdXRob3IgOiBNaWNoYWVsIFlvdW5nIDxtLmEueW91bmdAZHVyaGFtLmFjLnVrPgogICAg ICAgICAgICBEYXRlICAgOiAyMDI2LTA2LTE4VDIxOjE0OjUwKzAxOjAwCiAgICAgICAgICAgIFN0 YXRzICA6ICs0MDY2Ly0xIGluIDI3IGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6 Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy94ZW4vYy8wYzE4YzIzYzRjNTQwYjA0MzU4Zjgy NGYwMTMwZTgyYzc3MzRjMmFiP2JyYW5jaD1yYXdoaWRlCgogICAgICAgICAgICBMb2c6CiAgICAg ICAgICAgIDQgc2VjdXJpdHkgdXBkYXRlcwoKeDg2IEhWTSBJL08gcG9ydCBsaXN0IHRyYXZlcnNh bCBbWFNBLTQ5MSwgQ1ZFLTIwMjYtNDI0ODddCmRvbWN0bCBsb2NrIG9wZW4gdG8gYWJ1c2UgW1hT QS00OTIsIENWRS0yMDI2LTQyNDg5LCBDVkUtMjAyNi00MjQ5MF0KQXJtOiBDb21wbGV0aW9uIG9m IG1lbW9yeSBhY2Nlc3NlcyBub3QgZ3VhcmFudGVlZCBieSBjb21wbGV0aW9uIG9mIGEgVExCSQoJ IFtYU0EtNDkzLCBDVkUtMjAyNS0xMDI2M10KeDg2OiBtaXNtYXRjaGVkIG1hcGNhY2hlIG1ldGFk YXRhIFtYU0EtNDk0LCBDVkUtMjAyNi00MjQ4OF0KCi0tLQpkaWZmIC0tZ2l0IGEveGVuLnNwZWMg Yi94ZW4uc3BlYwppbmRleCA2ODEwMGI0Li5hOWJmMDk3IDEwMDY0NAotLS0gYS94ZW4uc3BlYwor KysgYi94ZW4uc3BlYwpAQCAtNTEsNyArNTEsNyBAQAogU3VtbWFyeTogWGVuIGlzIGEgdmlydHVh bCBtYWNoaW5lIG1vbml0b3IKIE5hbWU6ICAgIHhlbgogVmVyc2lvbjogNC4yMS4xCi1SZWxlYXNl OiA1JXs/ZGlzdH0KK1JlbGVhc2U6IDYlez9kaXN0fQogIyBBdXRvbWF0aWNhbGx5IGNvbnZlcnRl ZCBmcm9tIG9sZCBmb3JtYXQ6IEdQTHYyKyBhbmQgTEdQTHYyKyBhbmQgQlNEIC0gcmV2aWV3IGlz IGhpZ2hseSByZWNvbW1lbmRlZC4KIExpY2Vuc2U6IEdQTC0yLjAtb3ItbGF0ZXIgQU5EIExpY2Vu c2VSZWYtQ2FsbGF3YXktTEdQTHYyKyBBTkQgTGljZW5zZVJlZi1DYWxsYXdheS1CU0QKIFVSTDog ICAgIGh0dHA6Ly94ZW4ub3JnLwpAQCAtODQsNiArODQsMzIgQEAgUGF0Y2gxMzogeHNhNDg0LnBh dGNoCiBQYXRjaDE0OiB4c2E0ODYucGF0Y2gKIFBhdGNoMTU6IHhlbi5naXQtOTBiMjA1NDdiNzU2 YTVjZjliMGZlYzlmYjBkZTViMzYxZThiZjRjMy5wYXRjaAogUGF0Y2gxNjogeHNhNDkwLTQuMjEu cGF0Y2gKK1BhdGNoMTc6IHhzYTQ5MS00LjIxLnBhdGNoCitQYXRjaDE4OiB4c2E0OTItNC4yMS0w MS5wYXRjaAorUGF0Y2gxOTogeHNhNDkyLTQuMjEtMDIucGF0Y2gKK1BhdGNoMjA6IHhzYTQ5Mi00 LjIxLTAzLnBhdGNoCitQYXRjaDIxOiB4c2E0OTItNC4yMS0wNC5wYXRjaAorUGF0Y2gyMjogeHNh NDkyLTQuMjEtMDUucGF0Y2gKK1BhdGNoMjM6IHhzYTQ5Mi00LjIxLTA2LnBhdGNoCitQYXRjaDI0 OiB4c2E0OTItNC4yMS0wNy5wYXRjaAorUGF0Y2gyNTogeHNhNDkyLTQuMjEtMDgucGF0Y2gKK1Bh dGNoMjY6IHhzYTQ5Mi00LjIxLTA5LnBhdGNoCitQYXRjaDI3OiB4c2E0OTItNC4yMS0xMC5wYXRj aAorUGF0Y2gyODogeHNhNDkyLTQuMjEtMTEucGF0Y2gKK1BhdGNoMjk6IHhzYTQ5Mi00LjIxLTEy LnBhdGNoCitQYXRjaDMwOiB4c2E0OTItNC4yMS0xMy5wYXRjaAorUGF0Y2gzMTogeHNhNDkyLTQu MjEtMTQucGF0Y2gKK1BhdGNoMzI6IHhzYTQ5Mi00LjIxLTE1LnBhdGNoCitQYXRjaDMzOiB4c2E0 OTItNC4yMS0xNi5wYXRjaAorUGF0Y2gzNDogeHNhNDkyLTQuMjEtMTcucGF0Y2gKK1BhdGNoMzU6 IHhzYTQ5Mi00LjIxLTE4LnBhdGNoCitQYXRjaDM2OiB4c2E0OTItNC4yMS0xOS5wYXRjaAorUGF0 Y2gzNzogeHNhNDkyLTQuMjEtMjAucGF0Y2gKK1BhdGNoMzg6IHhzYTQ5My00LjIxLTAxLnBhdGNo CitQYXRjaDM5OiB4c2E0OTMtNC4yMS0wMi5wYXRjaAorUGF0Y2g0MDogeHNhNDkzLTQuMjEtMDMu cGF0Y2gKK1BhdGNoNDE6IHhzYTQ5My00LjIxLTA0LnBhdGNoCitQYXRjaDQyOiB4c2E0OTQtNC4y MS5wYXRjaAogCiAKICMgYnVpbGQgdXNpbmcgRmVkb3JhIHNlYWJpb3MgYW5kIGlweGUgcGFja2Fn ZXMgZm9yIHJvbXMKQEAgLTI3NSw2ICszMDEsMzIgQEAgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIGZp bGVzIHVzZWQgaW4gdGVzdGluZyB0aGUgeGVuIGJ1aWxkcwogJXBhdGNoIDE0IC1wMQogJXBhdGNo IDE1IC1wMQogJXBhdGNoIDE2IC1wMQorJXBhdGNoIDE3IC1wMQorJXBhdGNoIDE4IC1wMQorJXBh dGNoIDE5IC1wMQorJXBhdGNoIDIwIC1wMQorJXBhdGNoIDIxIC1wMQorJXBhdGNoIDIyIC1wMQor JXBhdGNoIDIzIC1wMQorJXBhdGNoIDI0IC1wMQorJXBhdGNoIDI1IC1wMQorJXBhdGNoIDI2IC1w MQorJXBhdGNoIDI3IC1wMQorJXBhdGNoIDI4IC1wMQorJXBhdGNoIDI5IC1wMQorJXBhdGNoIDMw IC1wMQorJXBhdGNoIDMxIC1wMQorJXBhdGNoIDMyIC1wMQorJXBhdGNoIDMzIC1wMQorJXBhdGNo IDM0IC1wMQorJXBhdGNoIDM1IC1wMQorJXBhdGNoIDM2IC1wMQorJXBhdGNoIDM3IC1wMQorJXBh dGNoIDM4IC1wMQorJXBhdGNoIDM5IC1wMQorJXBhdGNoIDQwIC1wMQorJXBhdGNoIDQxIC1wMQor JXBhdGNoIDQyIC1wMQogCiAjIHN0dWJkb20gc291cmNlcwogY3AgLXYgJXtTT1VSQ0UxMH0gJXtT T1VSQ0UxMX0gJXtTT1VSQ0UxMn0gJXtTT1VSQ0UxM30gJXtTT1VSQ0UxNH0gJXtTT1VSQ0UxNX0g c3R1YmRvbQpAQCAtODMwLDYgKzg4MiwxMyBAQCBmaQogJXtfbGliZXhlY2Rpcn0veGVuL3Rlc3Rz LyoKIAogJWNoYW5nZWxvZworKiBUaHUgSnVuIDE4IDIwMjYgTWljaGFlbCBZb3VuZyA8bS5hLnlv dW5nQGR1cmhhbS5hYy51az4gLSA0LjIxLjEtNgorLSB4ODYgSFZNIEkvTyBwb3J0IGxpc3QgdHJh dmVyc2FsIFtYU0EtNDkxLCBDVkUtMjAyNi00MjQ4N10KKy0gZG9tY3RsIGxvY2sgb3BlbiB0byBh YnVzZSBbWFNBLTQ5MiwgQ1ZFLTIwMjYtNDI0ODksIENWRS0yMDI2LTQyNDkwXQorLSBBcm06IENv bXBsZXRpb24gb2YgbWVtb3J5IGFjY2Vzc2VzIG5vdCBndWFyYW50ZWVkIGJ5IGNvbXBsZXRpb24g b2YgYSBUTEJJCisJIFtYU0EtNDkzLCBDVkUtMjAyNS0xMDI2M10KKy0geDg2OiBtaXNtYXRjaGVk IG1hcGNhY2hlIG1ldGFkYXRhIFtYU0EtNDk0LCBDVkUtMjAyNi00MjQ4OF0KKwogKiBTYXQgSnVu IDEzIDIwMjYgWWFha292IFNlbGtvd2l0eiA8eXNlbGtvd2lAcmVkaGF0LmNvbT4gLSA0LjIxLjEt NQogLSBSZWJ1aWx0IGZvciBvcGVuc3NsIDQuMAogCgpkaWZmIC0tZ2l0IGEveHNhNDkxLTQuMjEu cGF0Y2ggYi94c2E0OTEtNC4yMS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5kMWViYzFhCi0tLSAvZGV2L251bGwKKysrIGIveHNhNDkxLTQuMjEucGF0Y2gKQEAgLTAs MCArMSwyMTEgQEAKK0Zyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK1N1Ympl Y3Q6IHg4Ni9IVk06IGFkZCBsb2NraW5nIHRvIEkvTyBwb3J0IHRyYW5zbGF0aW9uIGxpc3QgdHJh dmVyc2FsCisKK1hFTl9ET01DVExfaW9wb3J0X21hcHBpbmcgaXMgdXNhYmxlIGJ5IERNIHN0dWJk b21zLCBhbmQgaGVuY2Ugd2UgY2FuJ3QKK2Fzc3VtZSB0aGUgbGlzdCB0byBiZSBsZWZ0IHVuYWx0 ZXJlZCB3aGlsZSB0aGUgZ3Vlc3QgKHJlYWxseTogdGhlCitoeXBlcnZpc29yIG9uIGJlaGFsZiBv ZiB0aGUgZ3Vlc3QpIGlzIGFjY2Vzc2luZyBpdC4KKworVGhpcyBpcyBYU0EtNDkxIC8gQ1ZFLTIw MjYtNDI0ODcuCisKK0ZpeGVzOiAxOTJjNGRhYmMzNDQgKCJkb21jdGwgYW5kIHAybSBjaGFuZ2Vz IGZvciBQQ0kgcGFzc3RocnUiKQorU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNo QHN1c2UuY29tPgorUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRy aXguY29tPgorCistLS0gYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMKKysrKyBiL3hlbi9hcmNoL3g4 Ni9kb21jdGwuYworQEAgLTY2Myw2ICs2NjMsNyBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAorICAg ICAgICAgICAgICAgICAgICAiaW9wb3J0X21hcDphZGQ6IGRvbSVkIGdwb3J0PSV4IG1wb3J0PSV4 IG5yPSV4XG4iLAorICAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGZncCwgZm1wLCBu cCk7CisgCisrICAgICAgICAgICAgd3JpdGVfbG9jaygmaHZtLT5nMm1faW9wb3J0X2xvY2spOwor ICAgICAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoZzJtX2lvcG9ydCwgJmh2bS0+ZzJtX2lv cG9ydF9saXN0LCBsaXN0KQorICAgICAgICAgICAgICAgICBpZiAoZzJtX2lvcG9ydC0+bXBvcnQg PT0gZm1wICkKKyAgICAgICAgICAgICAgICAgeworQEAgLTY4NCwxMSArNjg1LDE0IEBAIGxvbmcg YXJjaF9kb19kb21jdGwoCisgICAgICAgICAgICAgICAgIGcybV9pb3BvcnQtPm5wID0gbnA7Cisg ICAgICAgICAgICAgICAgIGxpc3RfYWRkX3RhaWwoJmcybV9pb3BvcnQtPmxpc3QsICZodm0tPmcy bV9pb3BvcnRfbGlzdCk7CisgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIHdyaXRlX3VubG9j aygmaHZtLT5nMm1faW9wb3J0X2xvY2spOworICAgICAgICAgICAgIGlmICggIXJldCApCisgICAg ICAgICAgICAgICAgIHJldCA9IGlvcG9ydHNfcGVybWl0X2FjY2VzcyhkLCBmbXAsIGZtcCArIG5w IC0gMSk7CisgICAgICAgICAgICAgaWYgKCByZXQgJiYgIWZvdW5kICYmIGcybV9pb3BvcnQgKQor ICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgd3JpdGVfbG9jaygmaHZtLT5nMm1faW9w b3J0X2xvY2spOworICAgICAgICAgICAgICAgICBsaXN0X2RlbCgmZzJtX2lvcG9ydC0+bGlzdCk7 CisrICAgICAgICAgICAgICAgIHdyaXRlX3VubG9jaygmaHZtLT5nMm1faW9wb3J0X2xvY2spOwor ICAgICAgICAgICAgICAgICB4ZnJlZShnMm1faW9wb3J0KTsKKyAgICAgICAgICAgICB9CisgICAg ICAgICB9CitAQCAtNjk3LDYgKzcwMSw4IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCisgICAgICAg ICAgICAgcHJpbnRrKFhFTkxPR19HX0lORk8KKyAgICAgICAgICAgICAgICAgICAgImlvcG9ydF9t YXA6cmVtb3ZlOiBkb20lZCBncG9ydD0leCBtcG9ydD0leCBucj0leFxuIiwKKyAgICAgICAgICAg ICAgICAgICAgZC0+ZG9tYWluX2lkLCBmZ3AsIGZtcCwgbnApOworKworKyAgICAgICAgICAgIHdy aXRlX2xvY2soJmh2bS0+ZzJtX2lvcG9ydF9sb2NrKTsKKyAgICAgICAgICAgICBsaXN0X2Zvcl9l YWNoX2VudHJ5KGcybV9pb3BvcnQsICZodm0tPmcybV9pb3BvcnRfbGlzdCwgbGlzdCkKKyAgICAg ICAgICAgICAgICAgaWYgKCBnMm1faW9wb3J0LT5tcG9ydCA9PSBmbXAgKQorICAgICAgICAgICAg ICAgICB7CitAQCAtNzA0LDYgKzcxMCw4IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCisgICAgICAg ICAgICAgICAgICAgICB4ZnJlZShnMm1faW9wb3J0KTsKKyAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgd3JpdGVfdW5sb2NrKCZodm0t PmcybV9pb3BvcnRfbG9jayk7CisrCisgICAgICAgICAgICAgcmV0ID0gaW9wb3J0c19kZW55X2Fj Y2VzcyhkLCBmbXAsIGZtcCArIG5wIC0gMSk7CisgICAgICAgICAgICAgaWYgKCByZXQgJiYgaXNf aGFyZHdhcmVfZG9tYWluKGN1cnJkKSApCisgICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0df RVJSCistLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYworKysrIGIveGVuL2FyY2gveDg2 L2h2bS9lbXVsYXRlLmMKK0BAIC0xNjAsNyArMTYwLDYgQEAgdm9pZCBodm1lbXVsX2NhbmNlbChz dHJ1Y3QgdmNwdSAqdikKKyAgICAgaHZpby0+bW1pb19pbnNuX2J5dGVzID0gMDsKKyAgICAgaHZp by0+bW1pb19hY2Nlc3MgPSAoc3RydWN0IG5wZmVjKXt9OworICAgICBodmlvLT5tbWlvX3JldHJ5 ID0gZmFsc2U7CistICAgIGh2aW8tPmcybV9pb3BvcnQgPSBOVUxMOworIAorICAgICBodm1lbXVs X2NhY2hlX2Rpc2FibGUodik7CisgfQorLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYworKysr IGIveGVuL2FyY2gveDg2L2h2bS9odm0uYworQEAgLTYxMCw2ICs2MTAsNyBAQCBpbnQgaHZtX2Rv bWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4KKyAgICAgc3Bpbl9sb2NrX2luaXQoJmQtPmFy Y2guaHZtLmlycV9sb2NrKTsKKyAgICAgc3Bpbl9sb2NrX2luaXQoJmQtPmFyY2guaHZtLnVjX2xv Y2spOworICAgICBzcGluX2xvY2tfaW5pdCgmZC0+YXJjaC5odm0ud3JpdGVfbWFwLmxvY2spOwor KyAgICByd2xvY2tfaW5pdCgmZC0+YXJjaC5odm0uZzJtX2lvcG9ydF9sb2NrKTsKKyAgICAgcnds b2NrX2luaXQoJmQtPmFyY2guaHZtLm1tY2ZnX2xvY2spOworICAgICBJTklUX0xJU1RfSEVBRCgm ZC0+YXJjaC5odm0ud3JpdGVfbWFwLmxpc3QpOworICAgICBJTklUX0xJU1RfSEVBRCgmZC0+YXJj aC5odm0uZzJtX2lvcG9ydF9saXN0KTsKKy0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaW8uYworKysr IGIveGVuL2FyY2gveDg2L2h2bS9pby5jCitAQCAtMTQzLDM2ICsxNDMsNTYgQEAgYm9vbCBoYW5k bGVfcGlvKHVpbnQxNl90IHBvcnQsIHVuc2lnbmVkCisgICAgIHJldHVybiB0cnVlOworIH0KKyAK Ky1zdGF0aWMgYm9vbCBjZl9jaGVjayBnMm1fcG9ydGlvX2FjY2VwdCgKKy0gICAgY29uc3Qgc3Ry dWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyLCBjb25zdCBpb3JlcV90ICpwKQorKy8qIE5COiBS ZXR1cm5zIHdpdGggdGhlIGxvY2sgaGVsZCBpbiB0aGUgc3VjY2VzcyBjYXNlLiAqLworK3N0YXRp YyBjb25zdCBzdHJ1Y3QgZzJtX2lvcG9ydCAqZzJtX3BvcnRpb19maW5kX2FuZF9sb2NrKHN0cnVj dCBodm1fZG9tYWluICpodm0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgYWRkciwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzaXplKQorIHsK Ky0gICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OworLSAgICBjb25zdCBzdHJ1Y3QgaHZt X2RvbWFpbiAqaHZtID0gJmN1cnItPmRvbWFpbi0+YXJjaC5odm07CistICAgIHN0cnVjdCBodm1f dmNwdV9pbyAqaHZpbyA9ICZjdXJyLT5hcmNoLmh2bS5odm1faW87CistICAgIHN0cnVjdCBnMm1f aW9wb3J0ICpnMm1faW9wb3J0OworLSAgICB1bnNpZ25lZCBpbnQgc3RhcnQsIGVuZDsKKysgICAg Y29uc3Qgc3RydWN0IGcybV9pb3BvcnQgKmcybV9pb3BvcnQ7CisrCisrICAgIHJlYWRfbG9jaygm aHZtLT5nMm1faW9wb3J0X2xvY2spOworIAorICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KCBnMm1f aW9wb3J0LCAmaHZtLT5nMm1faW9wb3J0X2xpc3QsIGxpc3QgKQorICAgICB7CistICAgICAgICBz dGFydCA9IGcybV9pb3BvcnQtPmdwb3J0OworLSAgICAgICAgZW5kID0gc3RhcnQgKyBnMm1faW9w b3J0LT5ucDsKKy0gICAgICAgIGlmICggKHAtPmFkZHIgPj0gc3RhcnQpICYmIChwLT5hZGRyICsg cC0+c2l6ZSA8PSBlbmQpICkKKy0gICAgICAgIHsKKy0gICAgICAgICAgICBodmlvLT5nMm1faW9w b3J0ID0gZzJtX2lvcG9ydDsKKy0gICAgICAgICAgICByZXR1cm4gMTsKKy0gICAgICAgIH0KKysg ICAgICAgIHVuc2lnbmVkIGludCBzdGFydCA9IGcybV9pb3BvcnQtPmdwb3J0OworKworKyAgICAg ICAgaWYgKCBhZGRyID49IHN0YXJ0ICYmIGFkZHIgKyBzaXplIDw9IHN0YXJ0ICsgZzJtX2lvcG9y dC0+bnAgKQorKyAgICAgICAgICAgIHJldHVybiBnMm1faW9wb3J0OworICAgICB9CisgCistICAg IHJldHVybiAwOworKyAgICByZWFkX3VubG9jaygmaHZtLT5nMm1faW9wb3J0X2xvY2spOworKwor KyAgICByZXR1cm4gTlVMTDsKKyt9CisrCisrc3RhdGljIGJvb2wgY2ZfY2hlY2sgZzJtX3BvcnRp b19hY2NlcHQoCisrICAgIGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxlciwgY29u c3QgaW9yZXFfdCAqcCkKKyt7CisrICAgIHN0cnVjdCBodm1fZG9tYWluICpodm0gPSAmY3VycmVu dC0+ZG9tYWluLT5hcmNoLmh2bTsKKysgICAgY29uc3Qgc3RydWN0IGcybV9pb3BvcnQgKmcybV9p b3BvcnQgPQorKyAgICAgICAgZzJtX3BvcnRpb19maW5kX2FuZF9sb2NrKGh2bSwgcC0+YWRkciwg cC0+c2l6ZSk7CisrCisrICAgIGlmICggIWcybV9pb3BvcnQgKQorKyAgICAgICAgcmV0dXJuIGZh bHNlOworKworKyAgICByZWFkX3VubG9jaygmaHZtLT5nMm1faW9wb3J0X2xvY2spOworKworKyAg ICByZXR1cm4gdHJ1ZTsKKyB9CisgCisgc3RhdGljIGludCBjZl9jaGVjayBnMm1fcG9ydGlvX3Jl YWQoCisgICAgIGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxlciwgdWludDY0X3Qg YWRkciwgdWludDMyX3Qgc2l6ZSwKKyAgICAgdWludDY0X3QgKmRhdGEpCisgeworLSAgICBzdHJ1 Y3QgaHZtX3ZjcHVfaW8gKmh2aW8gPSAmY3VycmVudC0+YXJjaC5odm0uaHZtX2lvOworLSAgICBj b25zdCBzdHJ1Y3QgZzJtX2lvcG9ydCAqZzJtX2lvcG9ydCA9IGh2aW8tPmcybV9pb3BvcnQ7Cist ICAgIHVuc2lnbmVkIGludCBtcG9ydCA9IChhZGRyIC0gZzJtX2lvcG9ydC0+Z3BvcnQpICsgZzJt X2lvcG9ydC0+bXBvcnQ7CisrICAgIHN0cnVjdCBodm1fZG9tYWluICpodm0gPSAmY3VycmVudC0+ ZG9tYWluLT5hcmNoLmh2bTsKKysgICAgY29uc3Qgc3RydWN0IGcybV9pb3BvcnQgKmcybV9pb3Bv cnQgPQorKyAgICAgICAgZzJtX3BvcnRpb19maW5kX2FuZF9sb2NrKGh2bSwgYWRkciwgc2l6ZSk7 CisrICAgIHVuc2lnbmVkIGludCBtcG9ydDsKKysKKysgICAgaWYgKCAhZzJtX2lvcG9ydCApCisr ICAgICAgICByZXR1cm4gWDg2RU1VTF9SRVRSWTsKKysKKysgICAgbXBvcnQgPSBhZGRyIC0gZzJt X2lvcG9ydC0+Z3BvcnQgKyBnMm1faW9wb3J0LT5tcG9ydDsKKyAKKyAgICAgc3dpdGNoICggc2l6 ZSApCisgICAgIHsKK0BAIC0xODksNiArMjA5LDggQEAgc3RhdGljIGludCBjZl9jaGVjayBnMm1f cG9ydGlvX3JlYWQoCisgICAgICAgICBCVUcoKTsKKyAgICAgfQorIAorKyAgICByZWFkX3VubG9j aygmaHZtLT5nMm1faW9wb3J0X2xvY2spOworKworICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwor IH0KKyAKK0BAIC0xOTYsOSArMjE4LDE1IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZzJtX3BvcnRp b193cml0ZSgKKyAgICAgY29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyLCB1aW50 NjRfdCBhZGRyLCB1aW50MzJfdCBzaXplLAorICAgICB1aW50NjRfdCBkYXRhKQorIHsKKy0gICAg c3RydWN0IGh2bV92Y3B1X2lvICpodmlvID0gJmN1cnJlbnQtPmFyY2guaHZtLmh2bV9pbzsKKy0g ICAgY29uc3Qgc3RydWN0IGcybV9pb3BvcnQgKmcybV9pb3BvcnQgPSBodmlvLT5nMm1faW9wb3J0 OworLSAgICB1bnNpZ25lZCBpbnQgbXBvcnQgPSAoYWRkciAtIGcybV9pb3BvcnQtPmdwb3J0KSAr IGcybV9pb3BvcnQtPm1wb3J0OworKyAgICBzdHJ1Y3QgaHZtX2RvbWFpbiAqaHZtID0gJmN1cnJl bnQtPmRvbWFpbi0+YXJjaC5odm07CisrICAgIGNvbnN0IHN0cnVjdCBnMm1faW9wb3J0ICpnMm1f aW9wb3J0ID0KKysgICAgICAgIGcybV9wb3J0aW9fZmluZF9hbmRfbG9jayhodm0sIGFkZHIsIHNp emUpOworKyAgICB1bnNpZ25lZCBpbnQgbXBvcnQ7CisrCisrICAgIGlmICggIWcybV9pb3BvcnQg KQorKyAgICAgICAgcmV0dXJuIFg4NkVNVUxfUkVUUlk7CisrCisrICAgIG1wb3J0ID0gYWRkciAt IGcybV9pb3BvcnQtPmdwb3J0ICsgZzJtX2lvcG9ydC0+bXBvcnQ7CisgCisgICAgIHN3aXRjaCAo IHNpemUgKQorICAgICB7CitAQCAtMjE1LDYgKzI0Myw4IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sg ZzJtX3BvcnRpb193cml0ZSgKKyAgICAgICAgIEJVRygpOworICAgICB9CisgCisrICAgIHJlYWRf dW5sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7CisrCisgICAgIHJldHVybiBYODZFTVVMX09L QVk7CisgfQorIAorLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9kb21haW4uaAor KysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS9kb21haW4uaAorQEAgLTEyNSw2ICsx MjUsNyBAQCBzdHJ1Y3QgaHZtX2RvbWFpbiB7CisgCisgICAgIC8qIExpc3Qgb2YgZ3Vlc3QgdG8g bWFjaGluZSBJTyBwb3J0cyBtYXBwaW5nLiAqLworICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGcybV9p b3BvcnRfbGlzdDsKKysgICAgcndsb2NrX3QgZzJtX2lvcG9ydF9sb2NrOworIAorICAgICAvKiBM aXN0IG9mIE1NQ0ZHIHJlZ2lvbnMgdHJhcHBlZCBieSBYZW4uICovCisgICAgIHN0cnVjdCBsaXN0 X2hlYWQgbW1jZmdfcmVnaW9uczsKKy0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9odm0v dmNwdS5oCisrKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaHZtL3ZjcHUuaAorQEAgLTU0 LDggKzU0LDYgQEAgc3RydWN0IGh2bV92Y3B1X2lvIHsKKyAgICAgdW5zaWduZWQgbG9uZyBtc2l4 X3VubWFza19hZGRyZXNzOworICAgICB1bnNpZ25lZCBsb25nIG1zaXhfc25vb3BfYWRkcmVzczsK KyAgICAgdW5zaWduZWQgbG9uZyBtc2l4X3Nub29wX2dwYTsKKy0KKy0gICAgY29uc3Qgc3RydWN0 IGcybV9pb3BvcnQgKmcybV9pb3BvcnQ7CisgfTsKKyAKKyBzdHJ1Y3QgbmVzdGVkdmNwdSB7Cgpk aWZmIC0tZ2l0IGEveHNhNDkyLTQuMjEtMDEucGF0Y2ggYi94c2E0OTItNC4yMS0wMS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjQ0ZWJkCi0tLSAvZGV2L251bGwK KysrIGIveHNhNDkyLTQuMjEtMDEucGF0Y2gKQEAgLTAsMCArMSwyNjQgQEAKK0Zyb206IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK1N1YmplY3Q6IHNjaGVkOiB1c2Ugc2VxdWVuY2Ug Y291bnRlciB0byBlbmxpZ2h0ZW4gdmNwdV9ydW5zdGF0ZV9nZXQoKQorCitTdWJzZXF1ZW50bHkg WEVOX0RPTUNUTF9nZXRkb21haW5pbmZvIHdpbGwgd2FudCB0byBpbnZva2UgdGhlIGZ1bmN0aW9u Cit3aXRob3V0IGhvbGRpbmcgYSBsb2NrLCB0aHVzIGFsbG93aW5nIHBhcmFsbGVsIGV4ZWN1dGlv biBvZiBwb3RlbnRpYWxseQorbWFueSBpbnN0YW5jZXMuIEFzIHdhcyBsZWFybmVkIGZyb20gMjI4 YWI5OTkyZmZiICgiZG9tY3RsOiBpbXByb3ZlCitsb2NraW5nIGR1cmluZyBkb21haW4gZGVzdHJ1 Y3Rpb24iKSwgcmV2ZXJ0ZWQgYnkgZDA4ODdjYzZiMTZlLCBzdWNoCitwYXJhbGxlbGlzbSBjYW4g cmVzdWx0IGluIHNldmVyZSBsb2NrIGNvbnRlbnRpb24gb24gYW55IChwcmV2aW91c2x5KQoraW5u ZXIgbG9jay4gVG8gYXZvaWQgdGFraW5nIHRoYXQgcmlzayByZXBsYWNlIHRoZSB1c2Ugb2YgdGhl IHNjaGVkdWxlcgorbG9jayBpbiB2Y3B1X3J1bnN0YXRlX2dldCgpIGJ5IGEgbmV3bHkgaW50cm9k dWNlZCBzZXF1ZW5jZSBjb3VudGVyLgorQ29udmVydCB0aGUgIm5vIGxvY2sgaWYgY3VycmVudCIg cHJvcGVydHkgdG8gInVzZSBhIGxvY2FsIGNvdW50ZXIKK2luc3RhbmNlIiwgdGh1cyBndWFyYW50 ZWVpbmcgdGhlIGxvb3AgdG8gZXhpdCBhZnRlciB0aGUgZmlyc3QgaXRlcmF0aW9uLgorCitTa2Vs ZXRvbiBhbmQgY29tbWVudGFyeSBvZiB0aGUgc2VxY291bnQgaW1wbGVtZW50YXRpb24gYmFzZWQg b24gLworZGVyaXZlZCBmcm9tIExpbnV4IDYuMTEtcmMuCisKK1RvIGhhdmUgcnVuc3RhdGVfc2Vx IHBsYWNlZCBuZXh0IHRvIHJ1bnN0YXRlIGluIHN0cnVjdCB2Y3B1LCB3aXRob3V0CitpbnRyb2R1 Y2luZyBhIG5ldyBvYnZpb3VzIHBhZGRpbmcgaG9sZSwgeWV0IHdoaWxlIGtlZXBpbmcgdGhlIGxh dHRlcgorYWRqYWNlbnQgdG8gcnVuc3RhdGVfZ3Vlc3R7LF9hcmVhfSBhcyB3ZWxsLCBtb3ZlIHJ1 bnN0YXRlIGRvd24gYSBsaXR0bGUuCisKK1RoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgorCitSZXF1 ZXN0ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CitTaWdu ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitTaWduZWQtb2ZmLWJ5 OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgorUmV2aWV3ZWQtYnk6 IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgorUmV2aWV3ZWQtYnk6IEp1 ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KKworLS0tIGEveGVuL2NvbW1vbi9zY2hlZC9j b3JlLmMKKysrKyBiL3hlbi9jb21tb24vc2NoZWQvY29yZS5jCitAQCAtMjgxLDEzICsyODEsMTgg QEAgc3RhdGljIGlubGluZSB2b2lkIHZjcHVfcnVuc3RhdGVfY2hhbmdlKAorICAgICB9CisgCisg ICAgIGRlbHRhID0gbmV3X2VudHJ5X3RpbWUgLSB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1l OworLSAgICBpZiAoIGRlbHRhID4gMCApCisrCisrICAgIC8qIFNlcmlhbGl6YXRpb246IC0+c2No ZWR1bGVfbG9jayAoc2VlIEFTU0VSVCgpIGFib3ZlKS4gKi8KKysgICAgd2l0aF9zZXFfd3JpdGUo JnYtPnJ1bnN0YXRlX3NlcSkKKyAgICAgeworLSAgICAgICAgdi0+cnVuc3RhdGUudGltZVt2LT5y dW5zdGF0ZS5zdGF0ZV0gKz0gZGVsdGE7CistICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRy eV90aW1lID0gbmV3X2VudHJ5X3RpbWU7CistICAgIH0KKysgICAgICAgIGlmICggZGVsdGEgPiAw ICkKKysgICAgICAgIHsKKysgICAgICAgICAgICB2LT5ydW5zdGF0ZS50aW1lW3YtPnJ1bnN0YXRl LnN0YXRlXSArPSBkZWx0YTsKKysgICAgICAgICAgICB2LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90 aW1lID0gbmV3X2VudHJ5X3RpbWU7CisrICAgICAgICB9CisgCistICAgIHYtPnJ1bnN0YXRlLnN0 YXRlID0gbmV3X3N0YXRlOworKyAgICAgICAgdi0+cnVuc3RhdGUuc3RhdGUgPSBuZXdfc3RhdGU7 CisrICAgIH0KKyB9CisgCisgdm9pZCBzY2hlZF9ndWVzdF9pZGxlKHZvaWQgKCppZGxlKSAodm9p ZCksIHVuc2lnbmVkIGludCBjcHUpCitAQCAtMzA3LDMwICszMTIsMTggQEAgdm9pZCBzY2hlZF9n dWVzdF9pZGxlKHZvaWQgKCppZGxlKSAodm9pZAorIHZvaWQgdmNwdV9ydW5zdGF0ZV9nZXQoY29u c3Qgc3RydWN0IHZjcHUgKnYsCisgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmNwdV9y dW5zdGF0ZV9pbmZvICpydW5zdGF0ZSkKKyB7CistICAgIHNwaW5sb2NrX3QgKmxvY2s7CistICAg IHNfdGltZV90IGRlbHRhOworLSAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdDsKKysgICAgc3Ry dWN0IHNlcWNvdW50IHNlcSA9IFNFUUNOVF9aRVJPKCk7CisrICAgIGNvbnN0IHN0cnVjdCBzZXFj b3VudCAqcyA9IGxpa2VseSh2ID09IGN1cnJlbnQpID8gJnNlcSA6ICZ2LT5ydW5zdGF0ZV9zZXE7 CisgCistICAgIHJjdV9yZWFkX2xvY2soJnNjaGVkX3Jlc19yY3Vsb2NrKTsKKy0KKy0gICAgLyoK Ky0gICAgICogQmUgY2FyZWZ1bCBpbiBjYXNlIG9mIGFuIGlkbGUgdmNwdTogdGhlIGFzc2lnbm1l bnQgdG8gYSB1bml0IG1pZ2h0CistICAgICAqIGNoYW5nZSBldmVuIHdpdGggdGhlIHNjaGVkdWxp bmcgbG9jayBoZWxkLCBzbyBiZSBzdXJlIHRvIHVzZSB0aGUKKy0gICAgICogY29ycmVjdCB1bml0 IGZvciBsb2NraW5nIGluIG9yZGVyIHRvIGF2b2lkIHRyaWdnZXJpbmcgYW4gQVNTRVJUKCkgaW4K Ky0gICAgICogdGhlIHVubG9jayBmdW5jdGlvbi4KKy0gICAgICovCistICAgIHVuaXQgPSBpc19p ZGxlX3ZjcHUodikgPyBnZXRfc2NoZWRfcmVzKHYtPnByb2Nlc3NvciktPnNjaGVkX3VuaXRfaWRs ZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdi0+c2NoZWRfdW5pdDsKKy0gICAgbG9j ayA9IGxpa2VseSh2ID09IGN1cnJlbnQpID8gTlVMTCA6IHVuaXRfc2NoZWR1bGVfbG9ja19pcnEo dW5pdCk7CistICAgIG1lbWNweShydW5zdGF0ZSwgJnYtPnJ1bnN0YXRlLCBzaXplb2YoKnJ1bnN0 YXRlKSk7CistICAgIGRlbHRhID0gTk9XKCkgLSBydW5zdGF0ZS0+c3RhdGVfZW50cnlfdGltZTsK Ky0gICAgaWYgKCBkZWx0YSA+IDAgKQorLSAgICAgICAgcnVuc3RhdGUtPnRpbWVbcnVuc3RhdGUt PnN0YXRlXSArPSBkZWx0YTsKKy0KKy0gICAgaWYgKCB1bmxpa2VseShsb2NrICE9IE5VTEwpICkK Ky0gICAgICAgIHVuaXRfc2NoZWR1bGVfdW5sb2NrX2lycShsb2NrLCB1bml0KTsKKysgICAgdW50 aWxfc2VxX3JlYWQocykKKysgICAgeworKyAgICAgICAgc190aW1lX3QgZGVsdGE7CisgCistICAg IHJjdV9yZWFkX3VubG9jaygmc2NoZWRfcmVzX3JjdWxvY2spOworKyAgICAgICAgKnJ1bnN0YXRl ID0gdi0+cnVuc3RhdGU7CisrICAgICAgICBkZWx0YSA9IE5PVygpIC0gcnVuc3RhdGUtPnN0YXRl X2VudHJ5X3RpbWU7CisrICAgICAgICBpZiAoIGRlbHRhID4gMCApCisrICAgICAgICAgICAgcnVu c3RhdGUtPnRpbWVbcnVuc3RhdGUtPnN0YXRlXSArPSBkZWx0YTsKKysgICAgfQorIH0KKyAKKyB1 aW50NjRfdCBnZXRfY3B1X2lkbGVfdGltZSh1bnNpZ25lZCBpbnQgY3B1KQorLS0tIGEveGVuL2lu Y2x1ZGUveGVuL3NjaGVkLmgKKysrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCitAQCAtMTYs NiArMTYsNyBAQAorICNpbmNsdWRlIDx4ZW4vcmFkaXgtdHJlZS5oPgorICNpbmNsdWRlIDx4ZW4v bXVsdGljYWxsLmg+CisgI2luY2x1ZGUgPHhlbi9ub3NwZWMuaD4KKysjaW5jbHVkZSA8eGVuL3Nl cWNvdW50Lmg+CisgI2luY2x1ZGUgPHhlbi90YXNrbGV0Lmg+CisgI2luY2x1ZGUgPHhlbi9tbS5o PgorICNpbmNsdWRlIDx4ZW4vc21wLmg+CitAQCAtMTk4LDcgKzE5OSw2IEBAIHN0cnVjdCB2Y3B1 CisgCisgICAgIHN0cnVjdCBzY2hlZF91bml0ICpzY2hlZF91bml0OworIAorLSAgICBzdHJ1Y3Qg dmNwdV9ydW5zdGF0ZV9pbmZvIHJ1bnN0YXRlOworICNpZm5kZWYgQ09ORklHX0NPTVBBVAorICMg ZGVmaW5lIHJ1bnN0YXRlX2d1ZXN0KHYpICgodiktPnJ1bnN0YXRlX2d1ZXN0KQorICAgICBYRU5f R1VFU1RfSEFORExFKHZjcHVfcnVuc3RhdGVfaW5mb190KSBydW5zdGF0ZV9ndWVzdDsgLyogZ3Vl c3QgYWRkcmVzcyAqLworQEAgLTIxMCw2ICsyMTAsOCBAQCBzdHJ1Y3QgdmNwdQorICAgICB9IHJ1 bnN0YXRlX2d1ZXN0OyAvKiBndWVzdCBhZGRyZXNzICovCisgI2VuZGlmCisgICAgIHN0cnVjdCBn dWVzdF9hcmVhIHJ1bnN0YXRlX2d1ZXN0X2FyZWE7CisrICAgIHN0cnVjdCB2Y3B1X3J1bnN0YXRl X2luZm8gcnVuc3RhdGU7CisrICAgIHN0cnVjdCBzZXFjb3VudCAgcnVuc3RhdGVfc2VxOworICAg ICB1bnNpZ25lZCBpbnQgICAgIG5ld19zdGF0ZTsKKyAKKyAgICAgLyogSGFzIHRoZSBGUFUgYmVl biBpbml0aWFsaXNlZD8gKi8KKy0tLSAvZGV2L251bGwKKysrKyBiL3hlbi9pbmNsdWRlL3hlbi9z ZXFjb3VudC5oCitAQCAtMCwwICsxLDEzOSBAQAorKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wLW9ubHkgKi8KKysjaWZuZGVmIFhFTl9TRVFDT1VOVF9ICisrI2RlZmluZSBYRU5f U0VRQ09VTlRfSAorKworKyNpbmNsdWRlIDx4ZW4vbGliLmg+CisrI2luY2x1ZGUgPHhlbi9ub3Nw ZWMuaD4KKysKKysjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorKyNpbmNsdWRlIDxhc20vc3lzdGVt Lmg+CisrCisrLyoKKysgKiBTZXF1ZW5jZSBjb3VudGVycyAoc2VxY291bnRfdCkKKysgKgorKyAq IFRoaXMgaXMgdGhlIHJhdyBjb3VudGluZyBtZWNoYW5pc20sIHdpdGhvdXQgYW55IHdyaXRlciBw cm90ZWN0aW9uLgorKyAqCisrICogV3JpdGUgc2lkZSBjcml0aWNhbCBzZWN0aW9ucyBtdXN0IGJl IHNlcmlhbGl6ZWQgKGFuZCBub24tcHJlZW1wdGlibGUpLgorKyAqCisrICogSWYgcmVhZGVycyBj YW4gYmUgaW52b2tlZCBmcm9tIGludGVycnVwdCBjb250ZXh0cywgaW50ZXJydXB0cyBtdXN0IGFs c28KKysgKiBiZSByZXNwZWN0aXZlbHkgZGlzYWJsZWQgYmVmb3JlIGVudGVyaW5nIHRoZSB3cml0 ZSBzZWN0aW9uLgorKyAqCisrICogVGhpcyBtZWNoYW5pc20gY2FuJ3QgYmUgdXNlZCBpZiB0aGUg cHJvdGVjdGVkIGRhdGEgY29udGFpbnMgcG9pbnRlcnMsCisrICogYXMgdGhlIHdyaXRlciBjYW4g aW52YWxpZGF0ZSBhIHBvaW50ZXIgdGhhdCBhIHJlYWRlciBpcyBmb2xsb3dpbmcuCisrICovCisr c3RydWN0IHNlcWNvdW50IHsKKysgICAgdW5zaWduZWQgaW50IHNlcXVlbmNlOworK307CisrCisr LyoKKysgKiBTRVFDTlRfWkVSTygpIC0gaW5pdGlhbGl6ZXIgZm9yIHNlcWNvdW50X3QKKysgKiBA bmFtZTogTmFtZSBvZiB0aGUgc3RydWN0IHNlcWNvdW50IGluc3RhbmNlCisrICovCisrI2RlZmlu ZSBTRVFDTlRfWkVSTygpIHsgLnNlcXVlbmNlID0gMCB9CisrCisrc3RhdGljIGlubGluZSB1bnNp Z25lZCBpbnQgc2VxcHJvcF9zZXF1ZW5jZShjb25zdCBzdHJ1Y3Qgc2VxY291bnQgKnMpCisrewor KyAgICByZXR1cm4gQUNDRVNTX09OQ0Uocy0+c2VxdWVuY2UpOworK30KKysKKysvKgorKyAqIHJl YWRfc2VxY291bnRfYmVnaW4oKSAtIGJlZ2luIGEgc2VxY291bnQgcmVhZCBjcml0aWNhbCBzZWN0 aW9uCisrICogQHM6IFBvaW50ZXIgdG8gc3RydWN0IHNlcWNvdW50CisrICoKKysgKiBSZXR1cm46 IGNvdW50IHRvIGJlIHBhc3NlZCB0byByZWFkX3NlcWNvdW50X3JldHJ5KCkKKysgKi8KKytzdGF0 aWMgaW5saW5lIHVuc2lnbmVkIGludCBfcmVhZF9zZXFjb3VudF9iZWdpbihjb25zdCBzdHJ1Y3Qg c2VxY291bnQgKnMpCisreworKyAgICB1bnNpZ25lZCBpbnQgc2VxOworKworKyAgICB3aGlsZSAo KHNlcSA9IHNlcXByb3Bfc2VxdWVuY2UocykpICYgMSkKKysgICAgICAgIGNwdV9yZWxheCgpOwor KworKyAgICBzbXBfcm1iKCk7CisrCisrICAgIHJldHVybiBzZXE7CisrfQorKworK3N0YXRpYyBh bHdheXNfaW5saW5lIHVuc2lnbmVkIGludCByZWFkX3NlcWNvdW50X2JlZ2luKGNvbnN0IHN0cnVj dCBzZXFjb3VudCAqcykKKyt7CisrICAgIHVuc2lnbmVkIGludCBzZXEgPSBfcmVhZF9zZXFjb3Vu dF9iZWdpbihzKTsKKysKKysgICAgYmxvY2tfbG9ja19zcGVjdWxhdGlvbigpOworKworKyAgICBy ZXR1cm4gc2VxOworK30KKysKKysvKgorKyAqIHJlYWRfc2VxY291bnRfcmV0cnkoKSAtIGVuZCBh IHNlcWNvdW50IHJlYWQgY3JpdGljYWwgc2VjdGlvbgorKyAqIEBzOiBQb2ludGVyIHRvIHN0cnVj dCBzZXFjb3VudAorKyAqIEBzdGFydDogY291bnQsIGZyb20gcmVhZF9zZXFjb3VudF9iZWdpbigp CisrICoKKysgKiByZWFkX3NlcWNvdW50X3JldHJ5IGNsb3NlcyB0aGUgcmVhZCBjcml0aWNhbCBz ZWN0aW9uIG9mIGdpdmVuIHN0cnVjdAorKyAqIHNlcWNvdW50LiAgSWYgdGhlIGNyaXRpY2FsIHNl Y3Rpb24gd2FzIGludmFsaWQsIGl0IG11c3QgYmUgaWdub3JlZAorKyAqIChhbmQgdHlwaWNhbGx5 IHJldHJpZWQpLgorKyAqCisrICogUmV0dXJuOiB0cnVlIGlmIGEgcmVhZCBzZWN0aW9uIHJldHJ5 IGlzIHJlcXVpcmVkLCBlbHNlIGZhbHNlCisrICovCisrc3RhdGljIGlubGluZSBib29sIF9yZWFk X3NlcWNvdW50X3JldHJ5KGNvbnN0IHN0cnVjdCBzZXFjb3VudCAqcywKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHN0YXJ0KQorK3sKKysgICAg c21wX3JtYigpOworKyAgICByZXR1cm4gdW5saWtlbHkoc2VxcHJvcF9zZXF1ZW5jZShzKSAhPSBz dGFydCk7CisrfQorKworK3N0YXRpYyBhbHdheXNfaW5saW5lIGJvb2wgcmVhZF9zZXFjb3VudF9y ZXRyeShjb25zdCBzdHJ1Y3Qgc2VxY291bnQgKnMsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzdGFydCkKKyt7CisrICAgIHJldHVy biBsb2NrX2V2YWx1YXRlX25vc3BlYyhfcmVhZF9zZXFjb3VudF9yZXRyeShzLCBzdGFydCkpOwor K30KKysKKysvKiBMb29wcyB1bnRpbCBhIGNvbnNpc3RlbnQgY291bnQgaGFzIGJlZW4gb2JzZXJ2 ZWQgYWNyb3NzIHRoZSBsb29wIGJvZHkuICovCisrI2RlZmluZSB1bnRpbF9zZXFfcmVhZChzZXEp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBmb3IgKCB1bnNpZ25l ZCBpbnQgcmV0cnlfID0gMSwgY291bnRfOyAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAg ICAgcmV0cnlfICYmIChjb3VudF8gPSByZWFkX3NlcWNvdW50X2JlZ2luKHNlcSksIHRydWUpOyBc CisrICAgICAgICAgIHJldHJ5XyA9IHJlYWRfc2VxY291bnRfcmV0cnkoc2VxLCBjb3VudF8pICkK KysKKysvKgorKyAqIHdyaXRlX3NlcWNvdW50X2JlZ2luKCkgLSBzdGFydCBhIHN0cnVjdCBzZXFj b3VudCB3cml0ZSBzaWRlIGNyaXRpY2FsIHNlY3Rpb24KKysgKiBAczogUG9pbnRlciB0byBzdHJ1 Y3Qgc2VxY291bnQKKysgKgorKyAqIENvbnRleHQ6IHNlcXVlbmNlIGNvdW50ZXIgd3JpdGUgc2lk ZSBzZWN0aW9ucyBtdXN0IGJlIHNlcmlhbGl6ZWQuCisrICogSWYgcmVhZGVycyBjYW4gYmUgaW52 b2tlZCBmcm9tIGludGVycnVwdCBjb250ZXh0LCBpbnRlcnJ1cHRzIG11c3QgYmUKKysgKiByZXNw ZWN0aXZlbHkgZGlzYWJsZWQuCisrICovCisrc3RhdGljIGlubGluZSB2b2lkIHdyaXRlX3NlcWNv dW50X2JlZ2luKHN0cnVjdCBzZXFjb3VudCAqcykKKyt7CisrICAgIGFkZF9zaXplZCgmcy0+c2Vx dWVuY2UsIDEpOworKyAgICBzbXBfd21iKCk7CisrfQorKworKy8qCisrICogd3JpdGVfc2VxY291 bnRfZW5kKCkgLSBlbmQgYSBzdHJ1Y3Qgc2VxY291bnQgd3JpdGUgc2lkZSBjcml0aWNhbCBzZWN0 aW9uCisrICogQHM6IFBvaW50ZXIgdG8gc2VxY291bnQKKysgKi8KKytzdGF0aWMgaW5saW5lIHZv aWQgd3JpdGVfc2VxY291bnRfZW5kKHN0cnVjdCBzZXFjb3VudCAqcykKKyt7CisrICAgIHNtcF93 bWIoKTsKKysgICAgYWRkX3NpemVkKCZzLT5zZXF1ZW5jZSwgMSk7CisrfQorKworKy8qCisrICog Tm90IHJlYWxseSBhIGxvb3AsIGJ1dCB3ZSBuZWVkIHdyaXRlX3NlcWNvdW50X3tiZWdpbixlbmR9 KCkgaW4gdGhlIGNvcnJlY3QKKysgKiBwb3NpdGlvbi4KKysgKi8KKysjZGVmaW5lIHdpdGhfc2Vx X3dyaXRlKHNlcSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIGZvciAoIGJvb2wg b25jZV8gPSB0cnVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgICBvbmNl XyAmJiAod3JpdGVfc2VxY291bnRfYmVnaW4oc2VxKSwgdHJ1ZSk7IFwKKysgICAgICAgICAgKHdy aXRlX3NlcWNvdW50X2VuZChzZXEpLCBvbmNlXyA9IGZhbHNlKSApCisrCisrI2VuZGlmIC8qIFhF Tl9TRVFDT1VOVF9IICovCisrCisrLyoKKysgKiBMb2NhbCB2YXJpYWJsZXM6CisrICogbW9kZTog QworKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKysgKiBjLWJhc2ljLW9mZnNldDogNAorKyAqIHRh Yi13aWR0aDogNAorKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorKyAqIEVuZDoKKysgKi8KCmRp ZmYgLS1naXQgYS94c2E0OTItNC4yMS0wMi5wYXRjaCBiL3hzYTQ5Mi00LjIxLTAyLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1Y2E4Y2EKLS0tIC9kZXYvbnVsbAor KysgYi94c2E0OTItNC4yMS0wMi5wYXRjaApAQCAtMCwwICsxLDEwNCBAQAorRnJvbTogSmFuIEJl dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgorU3ViamVjdDogZG9tY3RsOiBoYW5kbGUgWEVOX0RP TUNUTF9nZXRkb21haW5pbmZvIHdpdGhvdXQgYWNxdWlyaW5nIGRvbWN0bCBsb2NrCisKK2dldGRv bWFpbmluZm8oKSBpcyBub3QgY2FsbGVkIHVuZGVyIGNvbnNpc3RlbnRseSB0aGUgc2FtZSBsb2Nr LiBUaHVzLAord2l0aCBjYWxsZXIgc2lkZSBsb2NraW5nIGlycmVsZXZhbnQsIGl0IGNhbiBhcyB3 ZWxsIGJlIGNhbGxlZCB3aXRoIHRoZQorZG9tY3RsIGxvY2sgbm90IGhlbGQuIChDYWxsZXJzIG5v dCBwYXVzaW5nIHRoZSBkb21haW4gdGhleSB3YW50IHRvCityZXRyaWV2ZSBpbmZvcm1hdGlvbiBm b3IgYWxyZWFkeSBuZWVkIHRvIGJlIGF3YXJlIHRoYXQgbm90IGFsbCBvZiB0aGUKK2RhdGEgcmV0 dXJuZWQgY2FuIGJlIHJlbGllZCBvbiBhcyBiZWluZyBjb25zaXN0ZW50OyBtb3N0IGRhdGEgd2ls bCBhbHNvCitiZSBzdGFsZSBieSB0aGUgdGltZSB0aGUgY2FsbGVyIGdldHMgdG8gbG9vayBhdCBp dC4pCisKK01vdmUgdGhlIGhhbmRsaW5nIG5vdCBvbmx5IGFoZWFkIG9mIGFjcXVpcmluZyB0aGUg bG9jaywgYnV0IGFsc28gYWhlYWQKK29mIHRoZSBYU00gY2hlY2ssIGxldmVyYWdpbmcgdGhhdCB0 aGUgc3ViLW9wIGhhcyBpdHMgb3duIGhvb2suCisKK1doaWxlIG1vdmluZywgY29udmVydCBhbiBh c3NpZ25tZW50IHRvIGFuIGFzc2VydGlvbjogVGhlIGRvbWFpbiBpbgorcXVlc3Rpb24gd2FzIGRl dGVybWluZWQgZnJvbSB0aGUgZmllbGQgd2hpY2ggcHJldmlvdXNseSB3YXMgInVwZGF0ZWQiLgor CitUaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KKworRml4ZXM6IDU1MTNiZDBiNDY3NSAoImFkZCB4 ZW5zdG9yZSBkb21haW4gZmxhZyB0byBoeXBlcnZpc29yIikKK1JlcG9ydGVkLWJ5OiBBbmRyZXcg Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgorU2lnbmVkLW9mZi1ieTogSmFuIEJl dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgorUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kg PHJvZ2VyLnBhdUBjaXRyaXguY29tPgorQWNrZWQtYnk6IERhbmllbCBQLiBTbWl0aCA8ZHBzbWl0 aEBhcGVydHVzc29sdXRpb25zLmNvbT4KKworLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYworKysr IGIveGVuL2NvbW1vbi9kb21jdGwuYworQEAgLTMxOCw2ICszMTgsMjYgQEAgbG9uZyBkb19kb21j dGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAgYnJlYWs7CisgICAgIH0KKyAK KysgICAgLyogSGFuZGxlIHN1Yi1vcHMgbm90IHJlcXVpcmluZyB0aGUgZG9tY3RsIGxvY2suICov CisrICAgIHN3aXRjaCAoIG9wLT5jbWQgKQorKyAgICB7CisrICAgIGNhc2UgWEVOX0RPTUNUTF9n ZXRkb21haW5pbmZvOgorKyAgICAgICAgcmV0ID0geHNtX2dldGRvbWFpbmluZm8oWFNNX1hTX1BS SVYsIGQpOworKyAgICAgICAgaWYgKCAhcmV0ICkKKysgICAgICAgIHsKKysgICAgICAgICAgICBn ZXRkb21haW5pbmZvKGQsICZvcC0+dS5nZXRkb21haW5pbmZvKTsKKysKKysgICAgICAgICAgICBB U1NFUlQob3AtPmRvbWFpbiA9PSBvcC0+dS5nZXRkb21haW5pbmZvLmRvbWFpbik7CisrICAgICAg ICAgICAgY29weWJhY2sgPSB0cnVlOworKyAgICAgICAgfQorKworKyAgICAgICAgZ290byBkb21j dGxfb3V0X3VubG9ja19kb21vbmx5OworKworKyAgICBkZWZhdWx0OgorKyAgICAgICAgLyogRXZl cnl0aGluZyBlbHNlIGhhbmRsZWQgZnVydGhlciBkb3duLiAqLworKyAgICAgICAgYnJlYWs7Cisr ICAgIH0KKysKKyAgICAgcmV0ID0geHNtX2RvbWN0bChYU01fT1RIRVIsIGQsIG9wLT5jbWQsCisg ICAgICAgICAgICAgICAgICAgICAgLyogU1NJRFJlZiBvbmx5IGFwcGxpY2FibGUgZm9yIGNtZCA9 PSBjcmVhdGVkb21haW4gKi8KKyAgICAgICAgICAgICAgICAgICAgICBvcC0+dS5jcmVhdGVkb21h aW4uc3NpZHJlZik7CitAQCAtNTE2LDE3ICs1MzYsNiBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VF U1RfSEFORExFX1BBUkFNKHhlCisgICAgICAgICBjb3B5YmFjayA9IDE7CisgICAgICAgICBicmVh azsKKyAKKy0gICAgY2FzZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm86CistICAgICAgICByZXQg PSB4c21fZ2V0ZG9tYWluaW5mbyhYU01fWFNfUFJJViwgZCk7CistICAgICAgICBpZiAoIHJldCAp CistICAgICAgICAgICAgYnJlYWs7CistCistICAgICAgICBnZXRkb21haW5pbmZvKGQsICZvcC0+ dS5nZXRkb21haW5pbmZvKTsKKy0KKy0gICAgICAgIG9wLT5kb21haW4gPSBvcC0+dS5nZXRkb21h aW5pbmZvLmRvbWFpbjsKKy0gICAgICAgIGNvcHliYWNrID0gMTsKKy0gICAgICAgIGJyZWFrOwor LQorICAgICBjYXNlIFhFTl9ET01DVExfZ2V0dmNwdWNvbnRleHQ6CisgICAgIHsKKyAgICAgICAg IHZjcHVfZ3Vlc3RfY29udGV4dF91IGMgPSB7IC5uYXQgPSBOVUxMIH07CistLS0gYS94ZW4vaW5j bHVkZS94c20vZHVtbXkuaAorKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKK0BAIC0xNzIs OSArMTcyLDEzIEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZG9tY3QKKyAg ICAgY2FzZSBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxOgorICAgICBjYXNlIFhFTl9ET01DVExfdW5i aW5kX3B0X2lycToKKyAgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX0RNX1BS SVYsIGN1cnJlbnQtPmRvbWFpbiwgZCk7CistICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5p bmZvOgorICAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKKyAgICAgICAgIHJl dHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX1hTX1BSSVYsIGN1cnJlbnQtPmRvbWFpbiwgZCk7 CisrCisrICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgorKyAgICAgICAgQVNTRVJU X1VOUkVBQ0hBQkxFKCk7CisrICAgICAgICByZXR1cm4gLUVJTFNFUTsKKysKKyAgICAgZGVmYXVs dDoKKyAgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX1BSSVYsIGN1cnJlbnQt PmRvbWFpbiwgZCk7CisgICAgIH0KKy0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysrIGIv eGVuL3hzbS9mbGFzay9ob29rcy5jCitAQCAtNjgyLDggKzY4MiwxMiBAQCBzdGF0aWMgaW50IGNm X2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKKyAgICAgICAgICAqLworICAgICAgICAgcmV0dXJu IGF2Y19jdXJyZW50X2hhc19wZXJtKHNzaWRyZWYsIFNFQ0NMQVNTX0RPTUFJTiwgRE9NQUlOX19D UkVBVEUsIE5VTEwpOworIAorLSAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tz IChjb21tb24vZG9tY3RsLmMpICovCisrICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00g aG9va3MgYW5kIGRvbid0IG1ha2UgaXQgaGVyZS4gKi8KKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dl dGRvbWFpbmluZm86CisrICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKysgICAgICAgIHJl dHVybiAtRUlMU0VROworKworKyAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tz IChjb21tb24vZG9tY3RsLmMpICovCisgICAgIGNhc2UgWEVOX0RPTUNUTF9zY2hlZHVsZXJfb3A6 CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9N Q1RMX2lvbWVtX3Blcm1pc3Npb246CgpkaWZmIC0tZ2l0IGEveHNhNDkyLTQuMjEtMDMucGF0Y2gg Yi94c2E0OTItNC4yMS0wMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li41YTBkYjIyCi0tLSAvZGV2L251bGwKKysrIGIveHNhNDkyLTQuMjEtMDMucGF0Y2gKQEAgLTAs MCArMSw4NyBAQAorRnJvbTogRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlv bnMuY29tPgorU3ViamVjdDogZG9tY3RsOiBwcm90ZWN0IGxvY2tpbmcgZm9yIGdldF9kb21haW5f c3RhdGUKKworV2hlbiBET01JRF9JTlZBTElEIGlzIHBhc3NlZCwgdGhlIGRvbSBleGVjIGhhbmRs ZXIgbG9jayBpcyBiZWluZyB0YWtlbgord2l0aG91dCBhbnkgY2hlY2sgdGhhdCB0aGUgZG9tYWlu IGlzIGV2ZW4gYWxsb3dlZCB0byB0YWtlIHRoZSBsb2NrLiBUaGlzCithbGxvd3MgZm9yIGFuIHVu YXV0aG9yaXplZCBkb21haW4gdG8gRG9TIHRoZSBnZXRfZG9tYWluX3N0YXRlIGRvbWN0bCBvcC4K K01vdmUgdG8gY29uc2lkZXIgdGhlIG9wIGVmZmVjdGl2ZWx5IGJlaW5nIGNhbGxlZCBhZ2FpbnN0 IHRoZSBoeXBlcnZpc29yLgorVGh1cyBpdCBpcyB0aGUgdGFyZ2V0IG9mIHRoZSBjYWxsIGJlaW5n IGludm9rZWQgdG8gaWRlbnRpZnkgdGhlIGxhc3QKK2RvbWFpbiB3aXRoIGEgc3RhdGUgY2hhbmdl LiBUaGUgc3Vic2VxdWVudCBjaGVjayBvZiB3aGV0aGVyIHRoZSBzb3VyY2UKK2RvbWFpbiBpcyBh bGxvd2VkIHRoZSBzdGF0ZSBvZiB0aGUgbGFzdCBkb21haW4gdG8gY2hhbmdlIHN0YXRlIGlzIHN0 aWxsCityZWxldmFudC4KKworVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1NpZ25lZC1vZmYt Ynk6IERhbmllbCBQLiBTbWl0aCA8ZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbT4KK1NpZ25l ZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK1Jldmlld2VkLWJ5OiBS b2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KKworLS0tIGEvdG9vbHMvZmxh c2svcG9saWN5L21vZHVsZXMveGVuc3RvcmUudGUKKysrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9t b2R1bGVzL3hlbnN0b3JlLnRlCitAQCAtMTQsNiArMTQsNyBAQCBhbGxvdyB4ZW5zdG9yZV90IHhl bl90OnhlbiB3cml0ZWNvbnNvbGU7CisgIyBYZW5zdG9yZSBxdWVyaWVzIGRvbWFpbmluZm8gb24g YWxsIGRvbWFpbnMKKyBhbGxvdyB4ZW5zdG9yZV90IGRvbWFpbl90eXBlOmRvbWFpbiBnZXRkb21h aW5pbmZvOworIGFsbG93IHhlbnN0b3JlX3QgZG9tYWluX3R5cGU6ZG9tYWluMiBnZXRfZG9tYWlu X3N0YXRlOworK2FsbG93IHhlbnN0b3JlX3QgZG9teGVuX3Q6ZG9tYWluMiBnZXRfZG9tYWluX3N0 YXRlOworIAorICMgQXMgYSBzaG9ydGN1dCwgdGhlIGZvbGxvd2luZyAzIHJ1bGVzIGFyZSB1c2Vk IGluc3RlYWQgb2YgYWRkaW5nIGEgZG9tYWluX2NvbW1zCisgIyBydWxlIGJldHdlZW4geGVuc3Rv cmVfdCBhbmQgZXZlcnkgZG9tYWluIHR5cGUgdGhhdCB0YWxrcyB0byB4ZW5zdG9yZQorLS0tIGEv eGVuL2NvbW1vbi9kb21haW4uYworKysrIGIveGVuL2NvbW1vbi9kb21haW4uYworQEAgLTIxNiwx MiArMjE2LDggQEAgaW50IGdldF9kb21haW5fc3RhdGUoc3RydWN0IHhlbl9kb21jdGxfZworICAg ICBpZiAoIGluZm8tPnBhZDAgKQorICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgCistICAgIGlm ICggZCApCisrICAgIGlmICggZCAhPSBkb21feGVuICkKKyAgICAgeworLSAgICAgICAgcmMgPSB4 c21fZ2V0X2RvbWFpbl9zdGF0ZShYU01fWFNfUFJJViwgZCk7CistICAgICAgICBpZiAoIHJjICkK Ky0gICAgICAgICAgICByZXR1cm4gcmM7CistCisgICAgICAgICBzZXRfZG9tYWluX3N0YXRlX2lu Zm8oaW5mbywgZCk7CisgCisgICAgICAgICByZXR1cm4gMDsKKy0tLSBhL3hlbi9jb21tb24vZG9t Y3RsLmMKKysrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKK0BAIC0zMDQsMTMgKzMwNCwxOSBAQCBs b25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgICAgICBmYWxsdGhy b3VnaDsKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3Rlc3RfYXNzaWduX2RldmljZToKKyAgICAgY2Fz ZSBYRU5fRE9NQ1RMX3ZtX2V2ZW50X29wOgorLSAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RvbWFp bl9zdGF0ZToKKyAgICAgICAgIGlmICggb3AtPmRvbWFpbiA9PSBET01JRF9JTlZBTElEICkKKyAg ICAgICAgIHsKKyAgICAgICAgICAgICBkID0gTlVMTDsKKyAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgIH0KKyAgICAgICAgIGZhbGx0aHJvdWdoOworKyAgICBjYXNlIFhFTl9ET01DVExfZ2V0 X2RvbWFpbl9zdGF0ZToKKysgICAgICAgIGlmICggb3AtPmRvbWFpbiA9PSBET01JRF9JTlZBTElE ICkKKysgICAgICAgIHsKKysgICAgICAgICAgICBkID0gZG9tX3hlbjsKKysgICAgICAgICAgICBi cmVhazsKKysgICAgICAgIH0KKysgICAgICAgIGZhbGx0aHJvdWdoOworICAgICBkZWZhdWx0Ogor ICAgICAgICAgZCA9IHJjdV9sb2NrX2RvbWFpbl9ieV9pZChvcC0+ZG9tYWluKTsKKyAgICAgICAg IGlmICggIWQgKQorQEAgLTg2Myw3ICs4NjksOSBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHhlCisgICAgICAgICBicmVhazsKKyAKKyAgICAgY2FzZSBYRU5fRE9NQ1RM X2dldF9kb21haW5fc3RhdGU6CistICAgICAgICByZXQgPSBnZXRfZG9tYWluX3N0YXRlKCZvcC0+ dS5nZXRfZG9tYWluX3N0YXRlLCBkLCAmb3AtPmRvbWFpbik7CisrICAgICAgICByZXQgPSB4c21f Z2V0X2RvbWFpbl9zdGF0ZShYU01fWFNfUFJJViwgZCk7CisrICAgICAgICBpZiAoICFyZXQgKQor KyAgICAgICAgICAgIHJldCA9IGdldF9kb21haW5fc3RhdGUoJm9wLT51LmdldF9kb21haW5fc3Rh dGUsIGQsICZvcC0+ZG9tYWluKTsKKyAgICAgICAgIGlmICggIXJldCApCisgICAgICAgICAgICAg Y29weWJhY2sgPSB0cnVlOworICAgICAgICAgYnJlYWs7CitAQCAtODc2LDcgKzg4NCw3IEBAIGxv bmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKKyAgICAgZG9tY3RsX2xvY2tf cmVsZWFzZSgpOworIAorICBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OgorLSAgICBpZiAoIGQg JiYgZCAhPSBkb21faW8gKQorKyAgICBpZiAoIGQgJiYgIWlzX3N5c3RlbV9kb21haW4oZCkgKQor ICAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7CisgCisgICAgIGlmICggY29weWJhY2sgJiYg X19jb3B5X3RvX2d1ZXN0KHVfZG9tY3RsLCBvcCwgMSkgKQoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00 LjIxLTA0LnBhdGNoIGIveHNhNDkyLTQuMjEtMDQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNDgxZmY1ZAotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTA0 LnBhdGNoCkBAIC0wLDAgKzEsODEgQEAKK0Zyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KK1N1YmplY3Q6IGRvbWN0bDogaGFuZGxlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0 ZSB3aXRob3V0IGFjcXVpcmluZyBkb21jdGwgbG9jaworCitnZXRfZG9tYWluX3N0YXRlKCkgdXNl cyBpdHMgb3duIGxvY2tpbmcuIFRodXMsIHdpdGggY2FsbGVyIHNpZGUgbG9ja2luZworaXJyZWxl dmFudCwgaXQgY2FuIGFzIHdlbGwgYmUgY2FsbGVkIHdpdGggdGhlIGRvbWN0bCBsb2NrIG5vdCBo ZWxkLgorCitNb3ZlIHRoZSBoYW5kbGluZyBub3Qgb25seSBhaGVhZCBvZiBhY3F1aXJpbmcgdGhl IGxvY2ssIGJ1dCBhbHNvIGFoZWFkCitvZiB0aGUgWFNNIGNoZWNrLCBsZXZlcmFnaW5nIHRoYXQg dGhlIHN1Yi1vcCBoYXMgaXRzIG93biBob29rLgorCitUaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4K KworRml4ZXM6IDNhZDNkZjFiZDBhYSAoInhlbjogYWRkIG5ldyBkb21jdGwgZ2V0X2RvbWFpbl9z dGF0ZSIpCitSZXBvcnRlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT4KK1NpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK0Fj a2VkLWJ5OiBEYW5pZWwgUC4gU21pdGggPGRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+CitS ZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CisKKy0t LSBhL3hlbi9jb21tb24vZG9tY3RsLmMKKysrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKK0BAIC0z MzksNiArMzM5LDE0IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUK KyAKKyAgICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKKyAKKysgICAgY2Fz ZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6CisrICAgICAgICByZXQgPSB4c21fZ2V0X2Rv bWFpbl9zdGF0ZShYU01fWFNfUFJJViwgZCk7CisrICAgICAgICBpZiAoICFyZXQgKQorKyAgICAg ICAgICAgIHJldCA9IGdldF9kb21haW5fc3RhdGUoJm9wLT51LmdldF9kb21haW5fc3RhdGUsIGQs ICZvcC0+ZG9tYWluKTsKKysgICAgICAgIGlmICggIXJldCApCisrICAgICAgICAgICAgY29weWJh Y2sgPSB0cnVlOworKyAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OworKwor ICAgICBkZWZhdWx0OgorICAgICAgICAgLyogRXZlcnl0aGluZyBlbHNlIGhhbmRsZWQgZnVydGhl ciBkb3duLiAqLworICAgICAgICAgYnJlYWs7CitAQCAtODY4LDE0ICs4NzYsNiBAQCBsb25nIGRv X2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgICAgICAgICAgcmV0ID0gLUVP UE5PVFNVUFA7CisgICAgICAgICBicmVhazsKKyAKKy0gICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9k b21haW5fc3RhdGU6CistICAgICAgICByZXQgPSB4c21fZ2V0X2RvbWFpbl9zdGF0ZShYU01fWFNf UFJJViwgZCk7CistICAgICAgICBpZiAoICFyZXQgKQorLSAgICAgICAgICAgIHJldCA9IGdldF9k b21haW5fc3RhdGUoJm9wLT51LmdldF9kb21haW5fc3RhdGUsIGQsICZvcC0+ZG9tYWluKTsKKy0g ICAgICAgIGlmICggIXJldCApCistICAgICAgICAgICAgY29weWJhY2sgPSB0cnVlOworLSAgICAg ICAgYnJlYWs7CistCisgICAgIGRlZmF1bHQ6CisgICAgICAgICByZXQgPSBhcmNoX2RvX2RvbWN0 bChvcCwgZCwgdV9kb21jdGwpOworICAgICAgICAgYnJlYWs7CistLS0gYS94ZW4vaW5jbHVkZS94 c20vZHVtbXkuaAorKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKK0BAIC0xNzIsMTAgKzE3 Miw5IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZG9tY3QKKyAgICAgY2Fz ZSBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxOgorICAgICBjYXNlIFhFTl9ET01DVExfdW5iaW5kX3B0 X2lycToKKyAgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX0RNX1BSSVYsIGN1 cnJlbnQtPmRvbWFpbiwgZCk7CistICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRl OgorLSAgICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihYU01fWFNfUFJJViwgY3VycmVu dC0+ZG9tYWluLCBkKTsKKyAKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm86Cisr ICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgorICAgICAgICAgQVNTRVJUX1VO UkVBQ0hBQkxFKCk7CisgICAgICAgICByZXR1cm4gLUVJTFNFUTsKKyAKKy0tLSBhL3hlbi94c20v Zmxhc2svaG9va3MuYworKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCitAQCAtNjg0LDYgKzY4 NCw3IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAorIAorICAgICAv KiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIGFuZCBkb24ndCBtYWtlIGl0IGhlcmUu ICovCisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgorKyAgICBjYXNlIFhFTl9E T01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKKyAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwor ICAgICAgICAgcmV0dXJuIC1FSUxTRVE7CisgCitAQCAtNjk0LDcgKzY5NSw2IEBAIHN0YXRpYyBp bnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAorICAgICBjYXNlIFhFTl9ET01DVExfbWVt b3J5X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRfdGFyZ2V0OgorICAgICBjYXNl IFhFTl9ET01DVExfdm1fZXZlbnRfb3A6CistICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWlu X3N0YXRlOgorIAorICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIChhcmNo Ly4uL2RvbWN0bC5jKSAqLworICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6CgpkaWZm IC0tZ2l0IGEveHNhNDkyLTQuMjEtMDUucGF0Y2ggYi94c2E0OTItNC4yMS0wNS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjdiZWFhCi0tLSAvZGV2L251bGwKKysr IGIveHNhNDkyLTQuMjEtMDUucGF0Y2gKQEAgLTAsMCArMSwxNTYgQEAKK0Zyb206IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK1N1YmplY3Q6IGRvbWFpbjogbG9ja2luZyBmb3IgaW9t ZW1fY2FwcyBhY2Nlc3NlcworCitJbiBvcmRlciB0byBiZSBhYmxlIHRvIHB1bGwgYXQgbGVhc3Qg dGhlIFhFTl9ET01DVExfaW9tZW1fbWFwcGluZyBoYW5kbGluZworb3V0IG9mIHRoZSBkb21jdGwt bG9ja2VkIHJlZ2lvbiwgYSBzZXBhcmF0ZSAocGVyLWRvbWFpbikgbG9jayBpcyBuZWVkZWQgdG8K K3N5bmNocm9uaXplIGluIHBhcnRpY3VsYXIgd2l0aCBYRU5fRE9NQ1RMX2lvbWVtX3Blcm1pc3Np b24uCisKK0xvY2tpbmcgaXMgYWRkZWQgb25seSBhcyBmYXIgYXMgZG9tY3RsLXMgYXJlIGFmZmVj dGVkLiBVc2VzIHByZXNlbnRseQorb3V0c2lkZSBvZiB0aGUgZG9tY3RsIGxvY2sgbWF5IHdhbnQg ZGVhbGluZyB3aXRoIHN1YnNlcXVlbnRseSAocGVyaGFwcworbGltaXRlZCB0byBub24tX19pbml0 IGNvZGUpLgorCitUaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KKworU2lnbmVkLW9mZi1ieTogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgorUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25u w6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgorCistLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisr KysgYi94ZW4vY29tbW9uL2RvbWFpbi5jCitAQCAtNTE4LDEwICs1MTgsMTUgQEAgc3RhdGljIGlu dCBsYXRlX2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbgorICAgICAgKiBtYXkgYmUgbW9kaWZpZWQg YWZ0ZXIgdGhpcyBoeXBlcmNhbGwgcmV0dXJucyBpZiBhIG1vcmUgY29tcGxleAorICAgICAgKiBk ZXZpY2UgbW9kZWwgaXMgZGVzaXJlZC4KKyAgICAgICovCisrICAgIHdyaXRlX2xvY2soJmRvbTAt PmNhcHNfbG9jayk7CisgICAgIHJhbmdlc2V0X3N3YXAoZC0+aXJxX2NhcHMsIGRvbTAtPmlycV9j YXBzKTsKKyAgICAgcmFuZ2VzZXRfc3dhcChkLT5pb21lbV9jYXBzLCBkb20wLT5pb21lbV9jYXBz KTsKKyAjaWZkZWYgQ09ORklHX1g4NgorICAgICByYW5nZXNldF9zd2FwKGQtPmFyY2guaW9wb3J0 X2NhcHMsIGRvbTAtPmFyY2guaW9wb3J0X2NhcHMpOworKyNlbmRpZgorKyAgICB3cml0ZV91bmxv Y2soJmRvbTAtPmNhcHNfbG9jayk7CisrCisrI2lmZGVmIENPTkZJR19YODYKKyAgICAgc2V0dXBf aW9fYml0bWFwKGQpOworICAgICBzZXR1cF9pb19iaXRtYXAoZG9tMCk7CisgI2VuZGlmCitAQCAt ODczLDYgKzg3OCw3IEBAIHN0cnVjdCBkb21haW4gKmRvbWFpbl9jcmVhdGUoZG9taWRfdCBkb20K KyAgICAgcnNwaW5fbG9ja19pbml0X3Byb2YoZCwgZG9tYWluX2xvY2spOworICAgICByc3Bpbl9s b2NrX2luaXRfcHJvZihkLCBwYWdlX2FsbG9jX2xvY2spOworICAgICBzcGluX2xvY2tfaW5pdCgm ZC0+aHlwZXJjYWxsX2RlYWRsb2NrX211dGV4KTsKKysgICAgcndsb2NrX2luaXQoJmQtPmNhcHNf bG9jayk7CisgICAgIElOSVRfUEFHRV9MSVNUX0hFQUQoJmQtPnBhZ2VfbGlzdCk7CisgICAgIElO SVRfUEFHRV9MSVNUX0hFQUQoJmQtPmV4dHJhX3BhZ2VfbGlzdCk7CisgICAgIElOSVRfUEFHRV9M SVNUX0hFQUQoJmQtPnhlbnBhZ2VfbGlzdCk7CistLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jCisr KysgYi94ZW4vY29tbW9uL2RvbWN0bC5jCitAQCAtMjY3LDYgKzI2NywzNSBAQCBzdGF0aWMgc3Ry dWN0IHZudW1hX2luZm8gKnZudW1hX2luaXQoY29uCisgICAgIHJldHVybiBFUlJfUFRSKHJldCk7 CisgfQorIAorK3ZvaWQgaW9jYXBzX2RvdWJsZV9sb2NrKHN0cnVjdCBkb21haW4gKmQsIGJvb2wg d3JpdGUpCisreworKyAgICBzdHJ1Y3QgZG9tYWluICpjdXJyZCA9IGN1cnJlbnQtPmRvbWFpbjsK KysKKysgICAgaWYgKCBkLT5kb21haW5faWQgPiBjdXJyZC0+ZG9tYWluX2lkICkKKysgICAgICAg IHJlYWRfbG9jaygmY3VycmQtPmNhcHNfbG9jayk7CisrCisrICAgIGlmICggd3JpdGUgKQorKyAg ICAgICAgd3JpdGVfbG9jaygmZC0+Y2Fwc19sb2NrKTsKKysgICAgZWxzZQorKyAgICAgICAgcmVh ZF9sb2NrKCZkLT5jYXBzX2xvY2spOworKworKyAgICBpZiAoIGQtPmRvbWFpbl9pZCA8IGN1cnJk LT5kb21haW5faWQgKQorKyAgICAgICAgcmVhZF9sb2NrKCZjdXJyZC0+Y2Fwc19sb2NrKTsKKyt9 CisrCisrdm9pZCBpb2NhcHNfZG91YmxlX3VubG9jayhzdHJ1Y3QgZG9tYWluICpkLCBib29sIHdy aXRlKQorK3sKKysgICAgc3RydWN0IGRvbWFpbiAqY3VycmQgPSBjdXJyZW50LT5kb21haW47Cisr CisrICAgIGlmICggZCAhPSBjdXJyZCApCisrICAgICAgICByZWFkX3VubG9jaygmY3VycmQtPmNh cHNfbG9jayk7CisrCisrICAgIGlmICggd3JpdGUgKQorKyAgICAgICAgd3JpdGVfdW5sb2NrKCZk LT5jYXBzX2xvY2spOworKyAgICBlbHNlCisrICAgICAgICByZWFkX3VubG9jaygmZC0+Y2Fwc19s b2NrKTsKKyt9CisrCisgc3RhdGljIGJvb2wgaXNfc3RhYmxlX2RvbWN0bCh1aW50MzJfdCBjbWQp CisgeworICAgICByZXR1cm4gY21kID09IFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZTsKK0BA IC02ODcsNiArNzE2LDggQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4 ZQorICAgICAgICAgaWYgKCAobWZuICsgbnJfbWZucyAtIDEpIDwgbWZuICkgLyogd3JhcD8gKi8K KyAgICAgICAgICAgICBicmVhazsKKyAKKysgICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhkLCB0 cnVlKTsKKysKKyAgICAgICAgIGlmICggIWlvbWVtX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmVudC0+ ZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm4sIG1mbiAr IG5yX21mbnMgLSAxKSB8fAorICAgICAgICAgICAgICB4c21faW9tZW1fcGVybWlzc2lvbihYU01f SE9PSywgZCwgbWZuLCBtZm4gKyBucl9tZm5zIC0gMSwgYWxsb3cpICkKK0BAIC02OTUsNiArNzI2 LDggQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAg ICAgIHJldCA9IGlvbWVtX3Blcm1pdF9hY2Nlc3MoZCwgbWZuLCBtZm4gKyBucl9tZm5zIC0gMSk7 CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgcmV0ID0gaW9tZW1fZGVueV9hY2Nlc3MoZCwg bWZuLCBtZm4gKyBucl9tZm5zIC0gMSk7CisrCisrICAgICAgICBpb2NhcHNfZG91YmxlX3VubG9j ayhkLCB0cnVlKTsKKyAgICAgICAgIGJyZWFrOworICAgICB9CisgCitAQCAtNzE5LDE5ICs3NTIs MTUgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAg ICAgIGJyZWFrOworICNlbmRpZgorIAorKyAgICAgICAgaW9jYXBzX2RvdWJsZV9sb2NrKGQsIGZh bHNlKTsKKysKKyAgICAgICAgIHJldCA9IC1FUEVSTTsKKyAgICAgICAgIGlmICggIWlvbWVtX2Fj Y2Vzc19wZXJtaXR0ZWQoY3VycmVudC0+ZG9tYWluLCBtZm4sIG1mbl9lbmQpIHx8CistICAgICAg ICAgICAgICFpb21lbV9hY2Nlc3NfcGVybWl0dGVkKGQsIG1mbiwgbWZuX2VuZCkgKQorLSAgICAg ICAgICAgIGJyZWFrOworLQorLSAgICAgICAgcmV0ID0geHNtX2lvbWVtX21hcHBpbmcoWFNNX0hP T0ssIGQsIG1mbiwgbWZuX2VuZCwgYWRkKTsKKy0gICAgICAgIGlmICggcmV0ICkKKy0gICAgICAg ICAgICBicmVhazsKKy0KKy0gICAgICAgIGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSAp CistICAgICAgICAgICAgYnJlYWs7CistCistICAgICAgICBpZiAoIGFkZCApCisrICAgICAgICAg ICAgICFpb21lbV9hY2Nlc3NfcGVybWl0dGVkKGQsIG1mbiwgbWZuX2VuZCkgfHwKKysgICAgICAg ICAgICAgKHJldCA9IHhzbV9pb21lbV9tYXBwaW5nKFhTTV9IT09LLCBkLCBtZm4sIG1mbl9lbmQs IGFkZCkpIHx8CisrICAgICAgICAgICAgICFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQorKyAg ICAgICAgICAgIC8qIE5vdGhpbmcuICovOworKyAgICAgICAgZWxzZSBpZiAoIGFkZCApCisgICAg ICAgICB7CisgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0RFQlVHCisgICAgICAgICAgICAg ICAgICAgICJtZW1vcnlfbWFwOmFkZDogZG9tJWQgZ2ZuPSVseCBtZm49JWx4IG5yPSVseFxuIiwK K0BAIC03NTUsNiArNzg0LDggQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJB TSh4ZQorICAgICAgICAgICAgICAgICAgICAgICAgIm1lbW9yeV9tYXA6IGVycm9yICVsZCByZW1v dmluZyBkb20lZCBhY2Nlc3MgdG8gWyVseCwlbHhdXG4iLAorICAgICAgICAgICAgICAgICAgICAg ICAgcmV0LCBkLT5kb21haW5faWQsIG1mbiwgbWZuX2VuZCk7CisgICAgICAgICB9CisrCisrICAg ICAgICBpb2NhcHNfZG91YmxlX3VubG9jayhkLCBmYWxzZSk7CisgICAgICAgICBicmVhazsKKyAg ICAgfQorIAorLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvY2FwLmgKKysrKyBiL3hlbi9pbmNsdWRl L3hlbi9pb2NhcC5oCitAQCAtMTIsNiArMTIsOSBAQAorICNpbmNsdWRlIDxhc20vaW9jYXAuaD4K KyAjaW5jbHVkZSA8YXNtL3AybS5oPgorIAorK3ZvaWQgaW9jYXBzX2RvdWJsZV9sb2NrKHN0cnVj dCBkb21haW4gKmQsIGJvb2wgd3JpdGUpOworK3ZvaWQgaW9jYXBzX2RvdWJsZV91bmxvY2soc3Ry dWN0IGRvbWFpbiAqZCwgYm9vbCB3cml0ZSk7CisrCisgc3RhdGljIGlubGluZSBpbnQgaW9tZW1f cGVybWl0X2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIHMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGUpCisgeworLS0t IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKKysrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5o CitAQCAtNTM2LDYgKzUzNiw3IEBAIHN0cnVjdCBkb21haW4KKyAjZW5kaWYKKyAKKyAgICAgLyog SS9PIGNhcGFiaWxpdGllcyAoYWNjZXNzIHRvIElSUXMgYW5kIG1lbW9yeS1tYXBwZWQgSS9PKS4g Ki8KKysgICAgcndsb2NrX3QgICAgICAgICBjYXBzX2xvY2s7CisgICAgIHN0cnVjdCByYW5nZXNl dCAqaW9tZW1fY2FwczsKKyAgICAgc3RydWN0IHJhbmdlc2V0ICppcnFfY2FwczsKKyAKCmRpZmYg LS1naXQgYS94c2E0OTItNC4yMS0wNi5wYXRjaCBiL3hzYTQ5Mi00LjIxLTA2LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5ZTAwNjEKLS0tIC9kZXYvbnVsbAorKysg Yi94c2E0OTItNC4yMS0wNi5wYXRjaApAQCAtMCwwICsxLDg0IEBACitGcm9tOiBKYW4gQmV1bGlj aCA8amJldWxpY2hAc3VzZS5jb20+CitTdWJqZWN0OiB4ODYvZG9tYWluOiBsb2NraW5nIGZvciBp b3BvcnRfY2FwcyBhY2Nlc3NlcworCitJbiBvcmRlciB0byBiZSBhYmxlIHRvIHB1bGwgYXQgbGVh c3QgdGhlIFhFTl9ET01DVExfaW9wb3J0X21hcHBpbmcKK2hhbmRsaW5nIG91dCBvZiB0aGUgZG9t Y3RsLWxvY2tlZCByZWdpb24sIHRoZSBuZXcgc2VwYXJhdGUgKHBlci1kb21haW4pCitsb2NrIGlz IHVzZWQgdG8gc3luY2hyb25pemUgaW4gcGFydGljdWxhciB3aXRoCitYRU5fRE9NQ1RMX2lvcG9y dF9wZXJtaXNzaW9uLgorCitMb2NraW5nIGlzIGFkZGVkIG9ubHkgYXMgZmFyIGFzIGRvbWN0bC1z IGFyZSBhZmZlY3RlZC4gVXNlcyBwcmVzZW50bHkKK291dHNpZGUgb2YgdGhlIGRvbWN0bCBsb2Nr IG1heSB3YW50IGRlYWxpbmcgd2l0aCBzdWJzZXF1ZW50bHkgKHBlcmhhcHMKK2xpbWl0ZWQgdG8g bm9uLV9faW5pdCBjb2RlKS4KKworVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1NpZ25lZC1v ZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK1Jldmlld2VkLWJ5OiBSb2dl ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KKworLS0tIGEveGVuL2FyY2gveDg2 L2RvbWN0bC5jCisrKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKK0BAIC0yMzMsNiArMjMzLDgg QEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKKyAgICAgICAgIHVuc2lnbmVkIGludCBucCA9IGRvbWN0 bC0+dS5pb3BvcnRfcGVybWlzc2lvbi5ucl9wb3J0czsKKyAgICAgICAgIGludCBhbGxvdyA9IGRv bWN0bC0+dS5pb3BvcnRfcGVybWlzc2lvbi5hbGxvd19hY2Nlc3M7CisgCisrICAgICAgICBpb2Nh cHNfZG91YmxlX2xvY2soZCwgdHJ1ZSk7CisrCisgICAgICAgICBpZiAoIChmcCArIG5wKSA8PSBm cCB8fCAoZnAgKyBucCkgPiBNQVhfSU9QT1JUUyApCisgICAgICAgICAgICAgcmV0ID0gLUVJTlZB TDsKKyAgICAgICAgIGVsc2UgaWYgKCAhaW9wb3J0c19hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBm cCwgZnAgKyBucCAtIDEpIHx8CitAQCAtMjQyLDYgKzI0NCw4IEBAIGxvbmcgYXJjaF9kb19kb21j dGwoCisgICAgICAgICAgICAgcmV0ID0gaW9wb3J0c19wZXJtaXRfYWNjZXNzKGQsIGZwLCBmcCAr IG5wIC0gMSk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgcmV0ID0gaW9wb3J0c19kZW55 X2FjY2VzcyhkLCBmcCwgZnAgKyBucCAtIDEpOworKworKyAgICAgICAgaW9jYXBzX2RvdWJsZV91 bmxvY2soZCwgdHJ1ZSk7CisgICAgICAgICBicmVhazsKKyAgICAgfQorIAorQEAgLTY0OCwxNiAr NjUyLDEzIEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCisgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICB9CisgCistICAgICAgICByZXQgPSAtRVBFUk07CistICAgICAgICBpZiAoICFpb3BvcnRz X2FjY2Vzc19wZXJtaXR0ZWQoY3VycmQsIGZtcCwgZm1wICsgbnAgLSAxKSApCistICAgICAgICAg ICAgYnJlYWs7CistCistICAgICAgICByZXQgPSB4c21faW9wb3J0X21hcHBpbmcoWFNNX0hPT0ss IGQsIGZtcCwgZm1wICsgbnAgLSAxLCBhZGQpOworLSAgICAgICAgaWYgKCByZXQgKQorLSAgICAg ICAgICAgIGJyZWFrOworLQorICAgICAgICAgaHZtID0gJmQtPmFyY2guaHZtOworLSAgICAgICAg aWYgKCBhZGQgKQorKyAgICAgICAgaW9jYXBzX2RvdWJsZV9sb2NrKGQsIHRydWUpOworKworKyAg ICAgICAgaWYgKCAhaW9wb3J0c19hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBmbXAsIGZtcCArIG5w IC0gMSkgfHwKKysgICAgICAgICAgICAgKHJldCA9IHhzbV9pb3BvcnRfbWFwcGluZyhYU01fSE9P SywgZCwgZm1wLCBmbXAgKyBucCAtIDEsIGFkZCkpICkKKysgICAgICAgICAgICByZXQgPSByZXQg PzogLUVQRVJNOworKyAgICAgICAgZWxzZSBpZiAoIGFkZCApCisgICAgICAgICB7CisgICAgICAg ICAgICAgcHJpbnRrKFhFTkxPR19HX0lORk8KKyAgICAgICAgICAgICAgICAgICAgImlvcG9ydF9t YXA6YWRkOiBkb20lZCBncG9ydD0leCBtcG9ydD0leCBucj0leFxuIiwKK0BAIC03MTgsNiArNzIw LDggQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKKyAgICAgICAgICAgICAgICAgICAgICAgICJpb3Bv cnRfbWFwOiBlcnJvciAlbGQgZGVueWluZyBkb20lZCBhY2Nlc3MgdG8gWyV4LCV4XVxuIiwKKyAg ICAgICAgICAgICAgICAgICAgICAgIHJldCwgZC0+ZG9tYWluX2lkLCBmbXAsIGZtcCArIG5wIC0g MSk7CisgICAgICAgICB9CisrCisrICAgICAgICBpb2NhcHNfZG91YmxlX3VubG9jayhkLCB0cnVl KTsKKyAgICAgICAgIGJyZWFrOworICAgICB9CisgCistLS0gYS94ZW4vYXJjaC94ODYvc2V0dXAu YworKysrIGIveGVuL2FyY2gveDg2L3NldHVwLmMKK0BAIC0yMzM5LDkgKzIzMzksMTIgQEAgdm9p ZCBfX2h3ZG9tX2luaXQgc2V0dXBfaW9fYml0bWFwKHN0cnVjdAorICAgICAgICAgcmV0dXJuOwor IAorICAgICBiaXRtYXBfZmlsbChkLT5hcmNoLmh2bS5pb19iaXRtYXAsIDB4MTAwMDApOworKwor KyAgICByZWFkX2xvY2soJmQtPmNhcHNfbG9jayk7CisgICAgIGlmICggcmFuZ2VzZXRfcmVwb3J0 X3JhbmdlcyhkLT5hcmNoLmlvcG9ydF9jYXBzLCAwLCAweDEwMDAwLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW9fYml0bWFwX2NiLCBkKSApCisgICAgICAgICBCVUcoKTsKKysg ICAgcmVhZF91bmxvY2soJmQtPmNhcHNfbG9jayk7CisgCisgICAgIC8qCisgICAgICAqIFdlIG5l ZWQgdG8gdHJhcCA0LWJ5dGUgYWNjZXNzZXMgdG8gMHhjZjggKHNlZSBhZG1pbl9pb19va2F5KCks CgpkaWZmIC0tZ2l0IGEveHNhNDkyLTQuMjEtMDcucGF0Y2ggYi94c2E0OTItNC4yMS0wNy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzQzNzczCi0tLSAvZGV2L251 bGwKKysrIGIveHNhNDkyLTQuMjEtMDcucGF0Y2gKQEAgLTAsMCArMSwyMDIgQEAKK0Zyb206IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK1N1YmplY3Q6IGRvbWFpbjogbG9ja2luZyBm b3IgaXJxX2NhcHMgYWNjZXNzZXMKKworSW4gb3JkZXIgdG8gYmUgYWJsZSB0byBwdWxsIGF0IGxl YXN0IHRoZSBYRU5fRE9NQ1RMX3ssdW59YmluZF9wdF9pcnEKK2hhbmRsaW5nIG91dCBvZiB0aGUg ZG9tY3RsLWxvY2tlZCByZWdpb24sIGEgc2VwYXJhdGUgKHBlci1kb21haW4pIGxvY2sgaXMKK25l ZWRlZCB0byBzeW5jaHJvbml6ZSBpbiBwYXJ0aWN1bGFyIHdpdGggWEVOX0RPTUNUTF97aXJxLGdz aX1fcGVybWlzc2lvbi4KKworTG9ja2luZyBpcyBhZGRlZCBvbmx5IGFzIGZhciBhcyBkb21jdGwt cyBhcmUgYWZmZWN0ZWQuIFVzZXMgcHJlc2VudGx5CitvdXRzaWRlIG9mIHRoZSBkb21jdGwgbG9j ayBtYXkgd2FudCBkZWFsaW5nIHdpdGggc3Vic2VxdWVudGx5IChwZXJoYXBzCitsaW1pdGVkIHRv IG5vbi1fX2luaXQgY29kZSkuCisKK1RoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgorCitTaWduZWQt b2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitSZXZpZXdlZC1ieTogUm9n ZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CitSZXZpZXdlZC1ieTogSnVsaWVu IEdyYWxsIDxqdWxpZW5AeGVuLm9yZz4KKworLS0tIGEveGVuL2FyY2gvYXJtL2RvbWN0bC5jCisr KysgYi94ZW4vYXJjaC9hcm0vZG9tY3RsLmMKK0BAIC03Niw2ICs3Niw3IEBAIGxvbmcgYXJjaF9k b19kb21jdGwoc3RydWN0IHhlbl9kb21jdGwgKmQKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2JpbmRf cHRfaXJxOgorICAgICB7CisgICAgICAgICBpbnQgcmM7CisrICAgICAgICBzdHJ1Y3QgZG9tYWlu ICpjdXJyZCA9IGN1cnJlbnQtPmRvbWFpbjsKKyAgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2Jp bmRfcHRfaXJxICpiaW5kID0gJmRvbWN0bC0+dS5iaW5kX3B0X2lycTsKKyAgICAgICAgIHVpbnQz Ml90IGlycSA9IGJpbmQtPnUuc3BpLnNwaTsKKyAgICAgICAgIHVpbnQzMl90IHZpcnEgPSBiaW5k LT5tYWNoaW5lX2lycTsKK0BAIC0xMDcsMjEgKzEwOCwyNiBAQCBsb25nIGFyY2hfZG9fZG9tY3Rs KHN0cnVjdCB4ZW5fZG9tY3RsICpkCisgICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgICBy ZXR1cm4gcmM7CisgCistICAgICAgICBpZiAoICFpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50 LT5kb21haW4sIGlycSkgKQorLSAgICAgICAgICAgIHJldHVybiAtRVBFUk07CisrICAgICAgICBy ZWFkX2xvY2soJmN1cnJkLT5jYXBzX2xvY2spOworIAorLSAgICAgICAgaWYgKCAhdmdpY19yZXNl cnZlX3ZpcnEoZCwgdmlycSkgKQorLSAgICAgICAgICAgIHJldHVybiAtRUJVU1k7CistCistICAg ICAgICByYyA9IHJvdXRlX2lycV90b19ndWVzdChkLCB2aXJxLCBpcnEsICJyb3V0ZWQgSVJRIik7 CistICAgICAgICBpZiAoIHJjICkKKy0gICAgICAgICAgICB2Z2ljX2ZyZWVfdmlycShkLCB2aXJx KTsKKysgICAgICAgIGlmICggIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBpcnEpICkKKysg ICAgICAgICAgICByYyA9IC1FUEVSTTsKKysgICAgICAgIGVsc2UgaWYgKCAhdmdpY19yZXNlcnZl X3ZpcnEoZCwgdmlycSkgKQorKyAgICAgICAgICAgIHJjID0gLUVCVVNZOworKyAgICAgICAgZWxz ZQorKyAgICAgICAgeworKyAgICAgICAgICAgIHJjID0gcm91dGVfaXJxX3RvX2d1ZXN0KGQsIHZp cnEsIGlycSwgInJvdXRlZCBJUlEiKTsKKysgICAgICAgICAgICBpZiAoIHJjICkKKysgICAgICAg ICAgICAgICAgdmdpY19mcmVlX3ZpcnEoZCwgdmlycSk7CisrICAgICAgICB9CisgCisrICAgICAg ICByZWFkX3VubG9jaygmY3VycmQtPmNhcHNfbG9jayk7CisgICAgICAgICByZXR1cm4gcmM7Cisg ICAgIH0KKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6CisgICAgIHsKKyAgICAg ICAgIGludCByYzsKKysgICAgICAgIHN0cnVjdCBkb21haW4gKmN1cnJkID0gY3VycmVudC0+ZG9t YWluOworICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfYmluZF9wdF9pcnEgKmJpbmQgPSAmZG9t Y3RsLT51LmJpbmRfcHRfaXJxOworICAgICAgICAgdWludDMyX3QgaXJxID0gYmluZC0+dS5zcGku c3BpOworICAgICAgICAgdWludDMyX3QgdmlycSA9IGJpbmQtPm1hY2hpbmVfaXJxOworQEAgLTEz OCwxNiArMTQ0LDE1IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoc3RydWN0IHhlbl9kb21jdGwgKmQK KyAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgIHJldHVybiByYzsKKyAKKy0gICAgICAg IGlmICggIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJlbnQtPmRvbWFpbiwgaXJxKSApCistICAg ICAgICAgICAgcmV0dXJuIC1FUEVSTTsKKy0KKy0gICAgICAgIHJjID0gcmVsZWFzZV9ndWVzdF9p cnEoZCwgdmlycSk7CistICAgICAgICBpZiAoIHJjICkKKy0gICAgICAgICAgICByZXR1cm4gcmM7 CisrICAgICAgICByZWFkX2xvY2soJmN1cnJkLT5jYXBzX2xvY2spOworIAorLSAgICAgICAgdmdp Y19mcmVlX3ZpcnEoZCwgdmlycSk7CisrICAgICAgICBpZiAoICFpcnFfYWNjZXNzX3Blcm1pdHRl ZChjdXJyZCwgaXJxKSApCisrICAgICAgICAgICAgcmMgPSAtRVBFUk07CisrICAgICAgICBlbHNl IGlmICggIShyYyA9IHJlbGVhc2VfZ3Vlc3RfaXJxKGQsIHZpcnEpKSApCisrICAgICAgICAgICAg dmdpY19mcmVlX3ZpcnEoZCwgdmlycSk7CisgCistICAgICAgICByZXR1cm4gMDsKKysgICAgICAg IHJlYWRfdW5sb2NrKCZjdXJyZC0+Y2Fwc19sb2NrKTsKKysgICAgICAgIHJldHVybiByYzsKKyAg ICAgfQorIAorICAgICBjYXNlIFhFTl9ET01DVExfdnVhcnRfb3A6CistLS0gYS94ZW4vYXJjaC94 ODYvZG9tY3RsLmMKKysrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworQEAgLTI2NywxNiArMjY3 LDE3IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICB9CisgCistICAgICAgICByZXQgPSAtRVBFUk07CisrICAgICAgICBpb2NhcHNfZG91YmxlX2xv Y2soZCwgdHJ1ZSk7CisrCisgICAgICAgICBpZiAoICFpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJy ZCwgaXJxKSB8fAorICAgICAgICAgICAgICB4c21faXJxX3Blcm1pc3Npb24oWFNNX0hPT0ssIGQs IGlycSwgZmxhZ3MpICkKKy0gICAgICAgICAgICBicmVhazsKKy0KKy0gICAgICAgIGlmICggZmxh Z3MgKQorKyAgICAgICAgICAgIHJldCA9IC1FUEVSTTsKKysgICAgICAgIGVsc2UgaWYgKCBmbGFn cyApCisgICAgICAgICAgICAgcmV0ID0gaXJxX3Blcm1pdF9hY2Nlc3MoZCwgaXJxKTsKKyAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICByZXQgPSBpcnFfZGVueV9hY2Nlc3MoZCwgaXJxKTsKKyAK KysgICAgICAgIGlvY2Fwc19kb3VibGVfdW5sb2NrKGQsIHRydWUpOworICAgICAgICAgYnJlYWs7 CisgICAgIH0KKyAKK0BAIC01NzksMjAgKzU4MCwyNyBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAor ICAgICAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgaXJxID0gZG9tYWluX3BpcnFfdG9faXJx KGQsIGJpbmQtPm1hY2hpbmVfaXJxKTsKKy0gICAgICAgIHJldCA9IC1FUEVSTTsKKy0gICAgICAg IGlmICggaXJxIDw9IDAgfHwgIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBpcnEpICkKKy0g ICAgICAgICAgICBicmVhazsKKysgICAgICAgIGlmICggaXJxIDw9IDAgKQorKyAgICAgICAgICAg IHJldCA9IC1FUEVSTTsKKyAKKy0gICAgICAgIHJldCA9IC1FU1JDSDsKKy0gICAgICAgIGlmICgg aXNfaW9tbXVfZW5hYmxlZChkKSApCisrICAgICAgICByZWFkX2xvY2soJmN1cnJkLT5jYXBzX2xv Y2spOworKworKyAgICAgICAgaWYgKCAhaXJxX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmQsIGlycSkg KQorKyAgICAgICAgICAgIHJldCA9IC1FUEVSTTsKKysgICAgICAgIGVsc2UgaWYgKCBpc19pb21t dV9lbmFibGVkKGQpICkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBwY2lkZXZzX2xvY2soKTsK KyAgICAgICAgICAgICByZXQgPSBwdF9pcnFfY3JlYXRlX2JpbmQoZCwgYmluZCk7CisgICAgICAg ICAgICAgcGNpZGV2c191bmxvY2soKTsKKysKKysgICAgICAgICAgICBpZiAoIHJldCA8IDAgKQor KyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSICJwdF9pcnFfY3JlYXRlX2JpbmQg ZmFpbGVkICglbGQpIGZvciAlcGRcbiIsCisrICAgICAgICAgICAgICAgICAgICAgICByZXQsIGQp OworICAgICAgICAgfQorLSAgICAgICAgaWYgKCByZXQgPCAwICkKKy0gICAgICAgICAgICBwcmlu dGsoWEVOTE9HX0dfRVJSICJwdF9pcnFfY3JlYXRlX2JpbmQgZmFpbGVkICglbGQpIGZvciBkb20l ZFxuIiwKKy0gICAgICAgICAgICAgICAgICAgcmV0LCBkLT5kb21haW5faWQpOworKyAgICAgICAg ZWxzZQorKyAgICAgICAgICAgIHJldCA9IC1FU1JDSDsKKysKKysgICAgICAgIHJlYWRfdW5sb2Nr KCZjdXJyZC0+Y2Fwc19sb2NrKTsKKyAgICAgICAgIGJyZWFrOworICAgICB9CisgCitAQCAtNjA1 LDIzICs2MTMsMjYgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKKyAgICAgICAgIGlmICggIWlzX2h2 bV9kb21haW4oZCkgKQorICAgICAgICAgICAgIGJyZWFrOworIAorLSAgICAgICAgcmV0ID0gLUVQ RVJNOworLSAgICAgICAgaWYgKCBpcnEgPD0gMCB8fCAhaXJxX2FjY2Vzc19wZXJtaXR0ZWQoY3Vy cmQsIGlycSkgKQorLSAgICAgICAgICAgIGJyZWFrOworLQorICAgICAgICAgcmV0ID0geHNtX3Vu YmluZF9wdF9pcnEoWFNNX0hPT0ssIGQsIGJpbmQpOworICAgICAgICAgaWYgKCByZXQgKQorICAg ICAgICAgICAgIGJyZWFrOworIAorLSAgICAgICAgaWYgKCBpc19pb21tdV9lbmFibGVkKGQpICkK KysgICAgICAgIHJlYWRfbG9jaygmY3VycmQtPmNhcHNfbG9jayk7CisrCisrICAgICAgICBpZiAo ICFpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZCwgaXJxKSApCisrICAgICAgICAgICAgcmV0ID0g LUVQRVJNOworKyAgICAgICAgZWxzZSBpZiAoIGlzX2lvbW11X2VuYWJsZWQoZCkgKQorICAgICAg ICAgeworICAgICAgICAgICAgIHBjaWRldnNfbG9jaygpOworICAgICAgICAgICAgIHJldCA9IHB0 X2lycV9kZXN0cm95X2JpbmQoZCwgYmluZCk7CisgICAgICAgICAgICAgcGNpZGV2c191bmxvY2so KTsKKysKKysgICAgICAgICAgICBpZiAoIHJldCA8IDAgKQorKyAgICAgICAgICAgICAgICBwcmlu dGsoWEVOTE9HX0dfRVJSICJwdF9pcnFfZGVzdHJveV9iaW5kIGZhaWxlZCAoJWxkKSBmb3IgJXBk XG4iLAorKyAgICAgICAgICAgICAgICAgICAgICAgcmV0LCBkKTsKKyAgICAgICAgIH0KKy0gICAg ICAgIGlmICggcmV0IDwgMCApCistICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUiAicHRf aXJxX2Rlc3Ryb3lfYmluZCBmYWlsZWQgKCVsZCkgZm9yIGRvbSVkXG4iLAorLSAgICAgICAgICAg ICAgICAgICByZXQsIGQtPmRvbWFpbl9pZCk7CisrCisrICAgICAgICByZWFkX3VubG9jaygmY3Vy cmQtPmNhcHNfbG9jayk7CisgICAgICAgICBicmVhazsKKyAgICAgfQorIAorLS0tIGEveGVuL2Nv bW1vbi9kb21jdGwuYworKysrIGIveGVuL2NvbW1vbi9kb21jdGwuYworQEAgLTY5NSw2ICs2OTUs OSBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgICAgICAg ICAgcmV0ID0gLUVJTlZBTDsKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0KKysKKysg ICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhkLCB0cnVlKTsKKysKKyAgICAgICAgIGlycSA9IHBp cnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50LT5kb21haW4sIHBpcnEpOworICAgICAgICAgaWYg KCAhaXJxIHx8IHhzbV9pcnFfcGVybWlzc2lvbihYU01fSE9PSywgZCwgaXJxLCBhbGxvdykgKQor ICAgICAgICAgICAgIHJldCA9IC1FUEVSTTsKK0BAIC03MDIsNiArNzA1LDggQEAgbG9uZyBkb19k b21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAgICAgIHJldCA9IGlycV9w ZXJtaXRfYWNjZXNzKGQsIGlycSk7CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgcmV0ID0g aXJxX2RlbnlfYWNjZXNzKGQsIGlycSk7CisrCisrICAgICAgICBpb2NhcHNfZG91YmxlX3VubG9j ayhkLCB0cnVlKTsKKyAgICAgICAgIGJyZWFrOworICAgICB9CisgI2VuZGlmCgpkaWZmIC0tZ2l0 IGEveHNhNDkyLTQuMjEtMDgucGF0Y2ggYi94c2E0OTItNC4yMS0wOC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWVmYmY0Ci0tLSAvZGV2L251bGwKKysrIGIveHNh NDkyLTQuMjEtMDgucGF0Y2gKQEAgLTAsMCArMSw4NSBAQAorRnJvbTogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgorU3ViamVjdDogWFNNL0ZsYXNrOiBzcGxpdCB0aGUgLmlvbWVtX21h cHBpbmcoKSBob29rCisKK0l0J3MgdXNlZCB0d2ljZSBpbiBlbnRpcmVseSBkaWZmZXJlbnQgc2l0 dWF0aW9ucy4gVGhlIHVzZSBpbiBkb19kb21jdGwoKQord2FudHMgdG8gYmVjb21lIGFuIG9yZGlu YXJ5IFhTTV9ETV9QUklWIGludm9jYXRpb24sIHdoaWxlIHRoZSBvbmUgaW4gdlBDSQorY29kZSBu ZWVkIHRvIHJlbWFpbiBYU01fSE9PSyAoaXQgbWF5IHBsYXVzaWJseSBiZWNvbWUgWFNNX1RBUkdF VCkuIEZvcgorRmxhc2ssIHRoZSBzYW1lIGJhY2tpbmcgZnVuY3Rpb24gd2lsbCBjb250aW51ZSB0 byBiZSB1c2VkIGZvciB0aGUgdGltZQorYmVpbmcuCisKK1RoaXMgaXMgcGFydCBvZiBYU0EtNDky LgorCitTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitBY2tl ZC1ieTogRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgorCist LS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jCisrKysgYi94ZW4vZHJpdmVycy92cGNpL2hl YWRlci5jCitAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIG1hcF9yYW5nZSgK KyAgICAgICAgICAgICByZXR1cm4gLUVQRVJNOworICAgICAgICAgfQorIAorLSAgICAgICAgcmMg PSB4c21faW9tZW1fbWFwcGluZyhYU01fSE9PSywgbWFwLT5kLCBtYXBfbWZuLCBtX2VuZCwgbWFw LT5tYXApOworKyAgICAgICAgcmMgPSB4c21faW9tZW1fbWFwcGluZ192cGNpKFhTTV9IT09LLCBt YXAtPmQsIG1hcF9tZm4sIG1fZW5kLCBtYXAtPm1hcCk7CisgICAgICAgICBpZiAoIHJjICkKKyAg ICAgICAgIHsKKyAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORworLS0tIGEveGVu L2luY2x1ZGUveHNtL2R1bW15LmgKKysrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCitAQCAt NTgwLDYgKzU4MCwxMyBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2lvbWVt CisgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4s IGQpOworIH0KKyAKKytzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2lvbWVtX21h cHBpbmdfdnBjaSgKKysgICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2 NF90IHMsIHVpbnQ2NF90IGUsIHVpbnQ4X3QgYWxsb3cpCisreworKyAgICBYU01fQVNTRVJUX0FD VElPTihYU01fSE9PSyk7CisrICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBj dXJyZW50LT5kb21haW4sIGQpOworK30KKysKKyBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hl Y2sgeHNtX3BjaV9jb25maWdfcGVybWlzc2lvbigKKyAgICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVj dCBkb21haW4gKmQsIHVpbnQzMl90IG1hY2hpbmVfYmRmLCB1aW50MTZfdCBzdGFydCwKKyAgICAg dWludDE2X3QgZW5kLCB1aW50OF90IGFjY2VzcykKKy0tLSBhL3hlbi9pbmNsdWRlL3hzbS94c20u aAorKysrIGIveGVuL2luY2x1ZGUveHNtL3hzbS5oCitAQCAtMTE4LDYgKzExOCw4IEBAIHN0cnVj dCB4c21fb3BzIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBhbGxvdyk7 CisgICAgIGludCAoKmlvbWVtX21hcHBpbmcpKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IHMs IHVpbnQ2NF90IGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgYWxsb3cpOwor KyAgICBpbnQgKCppb21lbV9tYXBwaW5nX3ZwY2kpKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90 IHMsIHVpbnQ2NF90IGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBh bGxvdyk7CisgICAgIGludCAoKnBjaV9jb25maWdfcGVybWlzc2lvbikoc3RydWN0IGRvbWFpbiAq ZCwgdWludDMyX3QgbWFjaGluZV9iZGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDE2X3Qgc3RhcnQsIHVpbnQxNl90IGVuZCwgdWludDhfdCBhY2Nlc3MpOworIAorQEAg LTUyMyw2ICs1MjUsMTIgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX2lvbWVtX21hcHBpbmcoCisg ICAgIHJldHVybiBhbHRlcm5hdGl2ZV9jYWxsKHhzbV9vcHMuaW9tZW1fbWFwcGluZywgZCwgcywg ZSwgYWxsb3cpOworIH0KKyAKKytzdGF0aWMgaW5saW5lIGludCB4c21faW9tZW1fbWFwcGluZ192 cGNpKAorKyAgICB4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgdWludDY0X3Qg cywgdWludDY0X3QgZSwgdWludDhfdCBhbGxvdykKKyt7CisrICAgIHJldHVybiBhbHRlcm5hdGl2 ZV9jYWxsKHhzbV9vcHMuaW9tZW1fbWFwcGluZ192cGNpLCBkLCBzLCBlLCBhbGxvdyk7CisrfQor KworIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9wY2lfY29uZmlnX3Blcm1pc3Npb24oCisgICAgIHhz bV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBtYWNoaW5lX2JkZiwg dWludDE2X3Qgc3RhcnQsCisgICAgIHVpbnQxNl90IGVuZCwgdWludDhfdCBhY2Nlc3MpCistLS0g YS94ZW4veHNtL2R1bW15LmMKKysrKyBiL3hlbi94c20vZHVtbXkuYworQEAgLTc2LDYgKzc2LDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB4c21fb3BzIF9faW5pdGNvbnN0XworICAgICAuaXJxX3Bl cm1pc3Npb24gICAgICAgICAgICAgICAgPSB4c21faXJxX3Blcm1pc3Npb24sCisgICAgIC5pb21l bV9wZXJtaXNzaW9uICAgICAgICAgICAgICA9IHhzbV9pb21lbV9wZXJtaXNzaW9uLAorICAgICAu aW9tZW1fbWFwcGluZyAgICAgICAgICAgICAgICAgPSB4c21faW9tZW1fbWFwcGluZywKKysgICAg LmlvbWVtX21hcHBpbmdfdnBjaSAgICAgICAgICAgID0geHNtX2lvbWVtX21hcHBpbmdfdnBjaSwK KyAgICAgLnBjaV9jb25maWdfcGVybWlzc2lvbiAgICAgICAgID0geHNtX3BjaV9jb25maWdfcGVy bWlzc2lvbiwKKyAgICAgLmdldF92bnVtYWluZm8gICAgICAgICAgICAgICAgID0geHNtX2dldF92 bnVtYWluZm8sCisgCistLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrKyBiL3hlbi94c20v Zmxhc2svaG9va3MuYworQEAgLTE5NTAsNiArMTk1MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg eHNtX29wcyBfX2luaXRjb25zdF8KKyAgICAgLmlycV9wZXJtaXNzaW9uID0gZmxhc2tfaXJxX3Bl cm1pc3Npb24sCisgICAgIC5pb21lbV9wZXJtaXNzaW9uID0gZmxhc2tfaW9tZW1fcGVybWlzc2lv biwKKyAgICAgLmlvbWVtX21hcHBpbmcgPSBmbGFza19pb21lbV9tYXBwaW5nLAorKyAgICAuaW9t ZW1fbWFwcGluZ192cGNpID0gZmxhc2tfaW9tZW1fbWFwcGluZywKKyAgICAgLnBjaV9jb25maWdf cGVybWlzc2lvbiA9IGZsYXNrX3BjaV9jb25maWdfcGVybWlzc2lvbiwKKyAKKyAgICAgLnJlc291 cmNlX3BsdWdfY29yZSA9IGZsYXNrX3Jlc291cmNlX3BsdWdfY29yZSwKCmRpZmYgLS1naXQgYS94 c2E0OTItNC4yMS0wOS5wYXRjaCBiL3hzYTQ5Mi00LjIxLTA5LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2ZTk0MDMKLS0tIC9kZXYvbnVsbAorKysgYi94c2E0OTIt NC4yMS0wOS5wYXRjaApAQCAtMCwwICsxLDE5NCBAQAorRnJvbTogSmFuIEJldWxpY2ggPGpiZXVs aWNoQHN1c2UuY29tPgorU3ViamVjdDogZG9tY3RsOiBoYW5kbGUgWEVOX0RPTUNUTF9tZW1vcnlf bWFwcGluZyB3aXRob3V0IGFjcXVpcmluZyBkb21jdGwgbG9jaworCitXaXRoIGRlZGljYXRlZCBs b2NraW5nIGFkZGVkLCB0aGUgZG9tY3RsIGxvY2sgaXNuJ3QgcmVxdWlyZWQgaGVyZSBhbnltb3Jl LgorTW92ZSB0aGUgcmUtcHVycG9zZWQgZGVkaWNhdGVkIFhTTSBjaGVjayBhcyBlYXJseSBhcyBw b3NzaWJsZS4KKworTWluaW1hbCAibW9kZXJuaXphdGlvbiI6IFN3aXRjaCAiYWRkIiB0byBib29s IGFuZCB1c2UgJXBkIGluIGxvZyBtZXNzYWdlcy4KKworVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIu CisKK0ZpeGVzOiBmZGE0OWY5YjNmYmIgKCJBZGQgYnVpbGQgb3B0aW9uIHRvIGFsbG93IG1vcmUg aHlwZXJjYWxscyBmcm9tIHN0dWJkb21zIikKK1JlcG9ydGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgorU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgorQWNrZWQtYnk6IERhbmllbCBQLiBTbWl0aCA8ZHBzbWl0aEBhcGVy dHVzc29sdXRpb25zLmNvbT4KK1Jldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5w YXVAY2l0cml4LmNvbT4KKworLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYworKysrIGIveGVuL2Nv bW1vbi9kb21jdGwuYworQEAgLTM3Niw2ICszNzYsNjYgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dV RVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAgICAgIGNvcHliYWNrID0gdHJ1ZTsKKyAgICAg ICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKKyAKKysgICAgY2FzZSBYRU5fRE9N Q1RMX21lbW9yeV9tYXBwaW5nOgorKyAgICB7CisrICAgICAgICB1bnNpZ25lZCBsb25nIGdmbiA9 IG9wLT51Lm1lbW9yeV9tYXBwaW5nLmZpcnN0X2dmbjsKKysgICAgICAgIHVuc2lnbmVkIGxvbmcg bWZuID0gb3AtPnUubWVtb3J5X21hcHBpbmcuZmlyc3RfbWZuOworKyAgICAgICAgdW5zaWduZWQg bG9uZyBucl9tZm5zID0gb3AtPnUubWVtb3J5X21hcHBpbmcubnJfbWZuczsKKysgICAgICAgIHVu c2lnbmVkIGxvbmcgbWZuX2VuZCA9IG1mbiArIG5yX21mbnMgLSAxOworKyAgICAgICAgYm9vbCBh ZGQgPSBvcC0+dS5tZW1vcnlfbWFwcGluZy5hZGRfbWFwcGluZzsKKysKKysgICAgICAgIHJldCA9 IC1FSU5WQUw7CisrICAgICAgICBpZiAoIG1mbl9lbmQgPCBtZm4gfHwgLyogV3JhcD8gKi8KKysg ICAgICAgICAgICAgKChtZm4gfCBtZm5fZW5kKSA+PiAocGFkZHJfYml0cyAtIFBBR0VfU0hJRlQp KSB8fAorKyAgICAgICAgICAgICAoZ2ZuICsgbnJfbWZucyAtIDEpIDwgZ2ZuICkgLyogV3JhcD8g Ki8KKysgICAgICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7CisrCisrICAg ICAgICByZXQgPSB4c21faW9tZW1fbWFwcGluZyhYU01fRE1fUFJJViwgZCwgbWZuLCBtZm5fZW5k LCBhZGQpOworKyAgICAgICAgaWYgKCByZXQgfHwgIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSAp CisrICAgICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OworKworKyNpZm5k ZWYgQ09ORklHX1g4NiAvKiBYWFggQVJNIT8gKi8KKysgICAgICAgIHJldCA9IC1FMkJJRzsKKysg ICAgICAgIC8qIE11c3QgYnJlYWsgaHlwZXJjYWxsIHVwIGFzIHRoaXMgY291bGQgdGFrZSBhIHdo aWxlLiAqLworKyAgICAgICAgaWYgKCBucl9tZm5zID4gNjQgKQorKyAgICAgICAgICAgIGdvdG8g ZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKKysjZW5kaWYKKysKKysgICAgICAgIGlvY2Fwc19k b3VibGVfbG9jayhkLCBmYWxzZSk7CisrCisrICAgICAgICByZXQgPSAtRVBFUk07CisrICAgICAg ICBpZiAoICFpb21lbV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJlbnQtPmRvbWFpbiwgbWZuLCBtZm5f ZW5kKSB8fAorKyAgICAgICAgICAgICAhaW9tZW1fYWNjZXNzX3Blcm1pdHRlZChkLCBtZm4sIG1m bl9lbmQpICkKKysgICAgICAgICAgICAvKiBOb3RoaW5nLiAqLzsKKysgICAgICAgIGVsc2UgaWYg KCBhZGQgKQorKyAgICAgICAgeworKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19ERUJVRwor KyAgICAgICAgICAgICAgICAgICAibWVtb3J5X21hcDphZGQ6ICVwZCBnZm49JWx4IG1mbj0lbHgg bnI9JWx4XG4iLAorKyAgICAgICAgICAgICAgICAgICBkLCBnZm4sIG1mbiwgbnJfbWZucyk7Cisr CisrICAgICAgICAgICAgcmV0ID0gbWFwX21taW9fcmVnaW9ucyhkLCBfZ2ZuKGdmbiksIG5yX21m bnMsIF9tZm4obWZuKSk7CisrICAgICAgICAgICAgaWYgKCByZXQgPCAwICkKKysgICAgICAgICAg ICAgICAgcHJpbnRrKFhFTkxPR19HX1dBUk5JTkcKKysgICAgICAgICAgICAgICAgICAgICAgICJt ZW1vcnlfbWFwOmZhaWw6ICVwZCBnZm49JWx4IG1mbj0lbHggbnI9JWx4IHJldDolbGRcbiIsCisr ICAgICAgICAgICAgICAgICAgICAgICBkLCBnZm4sIG1mbiwgbnJfbWZucywgcmV0KTsKKysgICAg ICAgIH0KKysgICAgICAgIGVsc2UKKysgICAgICAgIHsKKysgICAgICAgICAgICBwcmludGsoWEVO TE9HX0dfREVCVUcKKysgICAgICAgICAgICAgICAgICAgIm1lbW9yeV9tYXA6cmVtb3ZlOiAlcGQg Z2ZuPSVseCBtZm49JWx4IG5yPSVseFxuIiwKKysgICAgICAgICAgICAgICAgICAgZCwgZ2ZuLCBt Zm4sIG5yX21mbnMpOworKworKyAgICAgICAgICAgIHJldCA9IHVubWFwX21taW9fcmVnaW9ucyhk LCBfZ2ZuKGdmbiksIG5yX21mbnMsIF9tZm4obWZuKSk7CisrICAgICAgICAgICAgaWYgKCByZXQg PCAwICYmIGlzX2hhcmR3YXJlX2RvbWFpbihjdXJyZW50LT5kb21haW4pICkKKysgICAgICAgICAg ICAgICAgcHJpbnRrKFhFTkxPR19FUlIKKysgICAgICAgICAgICAgICAgICAgICAgICJtZW1vcnlf bWFwOiBlcnJvciAlbGQgcmVtb3ZpbmcgJXBkIGFjY2VzcyB0byBbJWx4LCVseF1cbiIsCisrICAg ICAgICAgICAgICAgICAgICAgICByZXQsIGQsIG1mbiwgbWZuX2VuZCk7CisrICAgICAgICB9Cisr CisrICAgICAgICBpb2NhcHNfZG91YmxlX3VubG9jayhkLCBmYWxzZSk7CisrICAgICAgICBnb3Rv IGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7CisrICAgIH0KKysKKyAgICAgZGVmYXVsdDoKKyAg ICAgICAgIC8qIEV2ZXJ5dGhpbmcgZWxzZSBoYW5kbGVkIGZ1cnRoZXIgZG93bi4gKi8KKyAgICAg ICAgIGJyZWFrOworQEAgLTczNiw2NCArNzk2LDYgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNU X0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAgYnJlYWs7CisgICAgIH0KKyAKKy0gICAgY2FzZSBY RU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nOgorLSAgICB7CistICAgICAgICB1bnNpZ25lZCBsb25n IGdmbiA9IG9wLT51Lm1lbW9yeV9tYXBwaW5nLmZpcnN0X2dmbjsKKy0gICAgICAgIHVuc2lnbmVk IGxvbmcgbWZuID0gb3AtPnUubWVtb3J5X21hcHBpbmcuZmlyc3RfbWZuOworLSAgICAgICAgdW5z aWduZWQgbG9uZyBucl9tZm5zID0gb3AtPnUubWVtb3J5X21hcHBpbmcubnJfbWZuczsKKy0gICAg ICAgIHVuc2lnbmVkIGxvbmcgbWZuX2VuZCA9IG1mbiArIG5yX21mbnMgLSAxOworLSAgICAgICAg aW50IGFkZCA9IG9wLT51Lm1lbW9yeV9tYXBwaW5nLmFkZF9tYXBwaW5nOworLQorLSAgICAgICAg cmV0ID0gLUVJTlZBTDsKKy0gICAgICAgIGlmICggbWZuX2VuZCA8IG1mbiB8fCAvKiB3cmFwPyAq LworLSAgICAgICAgICAgICAoKG1mbiB8IG1mbl9lbmQpID4+IChwYWRkcl9iaXRzIC0gUEFHRV9T SElGVCkpIHx8CistICAgICAgICAgICAgIChnZm4gKyBucl9tZm5zIC0gMSkgPCBnZm4gKSAvKiB3 cmFwPyAqLworLSAgICAgICAgICAgIGJyZWFrOworLQorLSNpZm5kZWYgQ09ORklHX1g4NiAvKiBY WFggQVJNIT8gKi8KKy0gICAgICAgIHJldCA9IC1FMkJJRzsKKy0gICAgICAgIC8qIE11c3QgYnJl YWsgaHlwZXJjYWxsIHVwIGFzIHRoaXMgY291bGQgdGFrZSBhIHdoaWxlLiAqLworLSAgICAgICAg aWYgKCBucl9tZm5zID4gNjQgKQorLSAgICAgICAgICAgIGJyZWFrOworLSNlbmRpZgorLQorLSAg ICAgICAgaW9jYXBzX2RvdWJsZV9sb2NrKGQsIGZhbHNlKTsKKy0KKy0gICAgICAgIHJldCA9IC1F UEVSTTsKKy0gICAgICAgIGlmICggIWlvbWVtX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmVudC0+ZG9t YWluLCBtZm4sIG1mbl9lbmQpIHx8CistICAgICAgICAgICAgICFpb21lbV9hY2Nlc3NfcGVybWl0 dGVkKGQsIG1mbiwgbWZuX2VuZCkgfHwKKy0gICAgICAgICAgICAgKHJldCA9IHhzbV9pb21lbV9t YXBwaW5nKFhTTV9IT09LLCBkLCBtZm4sIG1mbl9lbmQsIGFkZCkpIHx8CistICAgICAgICAgICAg ICFwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQorLSAgICAgICAgICAgIC8qIE5vdGhpbmcuICov OworLSAgICAgICAgZWxzZSBpZiAoIGFkZCApCistICAgICAgICB7CistICAgICAgICAgICAgcHJp bnRrKFhFTkxPR19HX0RFQlVHCistICAgICAgICAgICAgICAgICAgICJtZW1vcnlfbWFwOmFkZDog ZG9tJWQgZ2ZuPSVseCBtZm49JWx4IG5yPSVseFxuIiwKKy0gICAgICAgICAgICAgICAgICAgZC0+ ZG9tYWluX2lkLCBnZm4sIG1mbiwgbnJfbWZucyk7CistCistICAgICAgICAgICAgcmV0ID0gbWFw X21taW9fcmVnaW9ucyhkLCBfZ2ZuKGdmbiksIG5yX21mbnMsIF9tZm4obWZuKSk7CistICAgICAg ICAgICAgaWYgKCByZXQgPCAwICkKKy0gICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX1dB Uk5JTkcKKy0gICAgICAgICAgICAgICAgICAgICAgICJtZW1vcnlfbWFwOmZhaWw6IGRvbSVkIGdm bj0lbHggbWZuPSVseCBucj0lbHggcmV0OiVsZFxuIiwKKy0gICAgICAgICAgICAgICAgICAgICAg IGQtPmRvbWFpbl9pZCwgZ2ZuLCBtZm4sIG5yX21mbnMsIHJldCk7CistICAgICAgICB9CistICAg ICAgICBlbHNlCistICAgICAgICB7CistICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0RFQlVH CistICAgICAgICAgICAgICAgICAgICJtZW1vcnlfbWFwOnJlbW92ZTogZG9tJWQgZ2ZuPSVseCBt Zm49JWx4IG5yPSVseFxuIiwKKy0gICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBnZm4s IG1mbiwgbnJfbWZucyk7CistCistICAgICAgICAgICAgcmV0ID0gdW5tYXBfbW1pb19yZWdpb25z KGQsIF9nZm4oZ2ZuKSwgbnJfbWZucywgX21mbihtZm4pKTsKKy0gICAgICAgICAgICBpZiAoIHJl dCA8IDAgJiYgaXNfaGFyZHdhcmVfZG9tYWluKGN1cnJlbnQtPmRvbWFpbikgKQorLSAgICAgICAg ICAgICAgICBwcmludGsoWEVOTE9HX0VSUgorLSAgICAgICAgICAgICAgICAgICAgICAgIm1lbW9y eV9tYXA6IGVycm9yICVsZCByZW1vdmluZyBkb20lZCBhY2Nlc3MgdG8gWyVseCwlbHhdXG4iLAor LSAgICAgICAgICAgICAgICAgICAgICAgcmV0LCBkLT5kb21haW5faWQsIG1mbiwgbWZuX2VuZCk7 CistICAgICAgICB9CistCistICAgICAgICBpb2NhcHNfZG91YmxlX3VubG9jayhkLCBmYWxzZSk7 CistICAgICAgICBicmVhazsKKy0gICAgfQorLQorICAgICBjYXNlIFhFTl9ET01DVExfc2V0dGlt ZW9mZnNldDoKKyAgICAgICAgIGRvbWFpbl9zZXRfdGltZV9vZmZzZXQoZCwgb3AtPnUuc2V0dGlt ZW9mZnNldC50aW1lX29mZnNldF9zZWNvbmRzKTsKKyAgICAgICAgIGJyZWFrOworLS0tIGEveGVu L2luY2x1ZGUveHNtL2R1bW15LmgKKysrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCitAQCAt MTY4LDEzICsxNjgsMTMgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9kb21j dAorICAgICBzd2l0Y2ggKCBjbWQgKQorICAgICB7CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb3Bv cnRfbWFwcGluZzoKKy0gICAgY2FzZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nOgorICAgICBj YXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6CisgICAgIGNhc2UgWEVOX0RPTUNUTF91bmJpbmRf cHRfaXJxOgorICAgICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihYU01fRE1fUFJJViwg Y3VycmVudC0+ZG9tYWluLCBkKTsKKyAKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmlu Zm86CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgorKyAgICBjYXNlIFhF Tl9ET01DVExfbWVtb3J5X21hcHBpbmc6CisgICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsK KyAgICAgICAgIHJldHVybiAtRUlMU0VROworIAorQEAgLTU3Niw3ICs1NzYsNyBAQCBzdGF0aWMg WFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2lvbWVtCisgc3RhdGljIFhTTV9JTkxJTkUgaW50 IGNmX2NoZWNrIHhzbV9pb21lbV9tYXBwaW5nKAorICAgICBYU01fREVGQVVMVF9BUkcgc3RydWN0 IGRvbWFpbiAqZCwgdWludDY0X3QgcywgdWludDY0X3QgZSwgdWludDhfdCBhbGxvdykKKyB7Cist ICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKKysgICAgWFNNX0FTU0VSVF9BQ1RJT04o WFNNX0RNX1BSSVYpOworICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3Vy cmVudC0+ZG9tYWluLCBkKTsKKyB9CisgCistLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysr KyBiL3hlbi94c20vZmxhc2svaG9va3MuYworQEAgLTY4NSw2ICs2ODUsNyBAQCBzdGF0aWMgaW50 IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKKyAgICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlk dWFsIFhTTSBob29rcyBhbmQgZG9uJ3QgbWFrZSBpdCBoZXJlLiAqLworICAgICBjYXNlIFhFTl9E T01DVExfZ2V0ZG9tYWluaW5mbzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3Rh dGU6CisrICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1vcnlfbWFwcGluZzoKKyAgICAgICAgIEFTU0VS VF9VTlJFQUNIQUJMRSgpOworICAgICAgICAgcmV0dXJuIC1FSUxTRVE7CisgCitAQCAtNjkyLDcg KzY5Myw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAorICAgICBj YXNlIFhFTl9ET01DVExfc2NoZWR1bGVyX29wOgorICAgICBjYXNlIFhFTl9ET01DVExfaXJxX3Bl cm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb21lbV9wZXJtaXNzaW9uOgorLSAgICBj YXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRf dGFyZ2V0OgorICAgICBjYXNlIFhFTl9ET01DVExfdm1fZXZlbnRfb3A6CisgCgpkaWZmIC0tZ2l0 IGEveHNhNDkyLTQuMjEtMTAucGF0Y2ggYi94c2E0OTItNC4yMS0xMC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDA2YTE5Ci0tLSAvZGV2L251bGwKKysrIGIveHNh NDkyLTQuMjEtMTAucGF0Y2gKQEAgLTAsMCArMSw5NyBAQAorRnJvbTogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgorU3ViamVjdDogZG9tY3RsOiBoYW5kbGUgWEVOX0RPTUNUTF9pb3Bv cnRfbWFwcGluZyB3aXRob3V0IGFjcXVpcmluZyBkb21jdGwgbG9jaworCitXaXRoIGRlZGljYXRl ZCBsb2NraW5nIGFkZGVkLCB0aGUgZG9tY3RsIGxvY2sgaXNuJ3QgcmVxdWlyZWQgaGVyZSBhbnlt b3JlLgorQXMgdGhlIGhhbmRsaW5nIGlzIGluIGFyY2gtc3BlY2lmaWMgY29kZSAoeDg2IG9ubHkp LCBhbG1vc3Qgbm8gY29kZSBpcworYmVpbmcgbW92ZWQsIGJ1dCBhIDJuZCAoZXh0ZW5zaWJsZSB0 byBvdGhlciBzdWItb3BzKSBpbnZvY2F0aW9uIG9mCithcmNoX2RvX2RvbWN0bCgpIGlzIGJlaW5n IGFkZGVkLiBNb3ZlIGp1c3QgdGhlIHJlLXB1cnBvc2VkIGRlZGljYXRlZCBYU00KK2NoZWNrIGFz IGVhcmx5IGFzIHBvc3NpYmxlLgorCitJbiBmbGFza19kb21jdGwoKSBkb24ndCBwdXQgI2lmZGVm IGFyb3VuZCB0aGUgbW92ZWQgY2FzZSBsYWJlbC4KKworVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIu CisKK0ZpeGVzOiBmZGE0OWY5YjNmYmIgKCJBZGQgYnVpbGQgb3B0aW9uIHRvIGFsbG93IG1vcmUg aHlwZXJjYWxscyBmcm9tIHN0dWJkb21zIikKK1JlcG9ydGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgorU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgorUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBh dUBjaXRyaXguY29tPgorQWNrZWQtYnk6IERhbmllbCBQLiBTbWl0aCA8ZHBzbWl0aEBhcGVydHVz c29sdXRpb25zLmNvbT4KKworLS0tIGEveGVuL2FyY2gveDg2L2RvbWN0bC5jCisrKysgYi94ZW4v YXJjaC94ODYvZG9tY3RsLmMKK0BAIC02NjMsMTIgKzY2MywxNSBAQCBsb25nIGFyY2hfZG9fZG9t Y3RsKAorICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQorIAorKyAgICAgICAgcmV0ID0g eHNtX2lvcG9ydF9tYXBwaW5nKFhTTV9ETV9QUklWLCBkLCBmbXAsIGZtcCArIG5wIC0gMSwgYWRk KTsKKysgICAgICAgIGlmICggcmV0ICkKKysgICAgICAgICAgICBicmVhazsKKysKKyAgICAgICAg IGh2bSA9ICZkLT5hcmNoLmh2bTsKKyAgICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhkLCB0cnVl KTsKKyAKKy0gICAgICAgIGlmICggIWlvcG9ydHNfYWNjZXNzX3Blcm1pdHRlZChjdXJyZCwgZm1w LCBmbXAgKyBucCAtIDEpIHx8CistICAgICAgICAgICAgIChyZXQgPSB4c21faW9wb3J0X21hcHBp bmcoWFNNX0hPT0ssIGQsIGZtcCwgZm1wICsgbnAgLSAxLCBhZGQpKSApCistICAgICAgICAgICAg cmV0ID0gcmV0ID86IC1FUEVSTTsKKysgICAgICAgIGlmICggIWlvcG9ydHNfYWNjZXNzX3Blcm1p dHRlZChjdXJyZCwgZm1wLCBmbXAgKyBucCAtIDEpICkKKysgICAgICAgICAgICByZXQgPSAtRVBF Uk07CisgICAgICAgICBlbHNlIGlmICggYWRkICkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBw cmludGsoWEVOTE9HX0dfSU5GTworLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYworKysrIGIveGVu L2NvbW1vbi9kb21jdGwuYworQEAgLTQzNiw2ICs0MzYsMTAgQEAgbG9uZyBkb19kb21jdGwoWEVO X0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19k b21vbmx5OworICAgICB9CisgCisrICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoK KysgICAgICAgIHJldCA9IGFyY2hfZG9fZG9tY3RsKG9wLCBkLCB1X2RvbWN0bCk7CisrICAgICAg ICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7CisrCisgICAgIGRlZmF1bHQ6CisgICAg ICAgICAvKiBFdmVyeXRoaW5nIGVsc2UgaGFuZGxlZCBmdXJ0aGVyIGRvd24uICovCisgICAgICAg ICBicmVhazsKKy0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKysgYi94ZW4vaW5jbHVk ZS94c20vZHVtbXkuaAorQEAgLTE2NywxMyArMTY3LDEzIEBAIHN0YXRpYyBYU01fSU5MSU5FIGlu dCBjZl9jaGVjayB4c21fZG9tY3QKKyAgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX09USEVSKTsK KyAgICAgc3dpdGNoICggY21kICkKKyAgICAgeworLSAgICBjYXNlIFhFTl9ET01DVExfaW9wb3J0 X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9iaW5kX3B0X2lycToKKyAgICAgY2FzZSBY RU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6CisgICAgICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0 aW9uKFhTTV9ETV9QUklWLCBjdXJyZW50LT5kb21haW4sIGQpOworIAorICAgICBjYXNlIFhFTl9E T01DVExfZ2V0ZG9tYWluaW5mbzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3Rh dGU6CisrICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKKyAgICAgY2FzZSBYRU5f RE9NQ1RMX21lbW9yeV9tYXBwaW5nOgorICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7Cisg ICAgICAgICByZXR1cm4gLUVJTFNFUTsKK0BAIC03NzIsNyArNzcyLDcgQEAgc3RhdGljIFhTTV9J TkxJTkUgaW50IGNmX2NoZWNrIHhzbV9pb3BvcgorIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9j aGVjayB4c21faW9wb3J0X21hcHBpbmcoCisgICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9t YWluICpkLCB1aW50MzJfdCBzLCB1aW50MzJfdCBlLCB1aW50OF90IGFsbG93KQorIHsKKy0gICAg WFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOworKyAgICBYU01fQVNTRVJUX0FDVElPTihYU01f RE1fUFJJVik7CisgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50 LT5kb21haW4sIGQpOworIH0KKyAKKy0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysrIGIv eGVuL3hzbS9mbGFzay9ob29rcy5jCitAQCAtNjg1LDYgKzY4NSw3IEBAIHN0YXRpYyBpbnQgY2Zf Y2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAorICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwg WFNNIGhvb2tzIGFuZCBkb24ndCBtYWtlIGl0IGhlcmUuICovCisgICAgIGNhc2UgWEVOX0RPTUNU TF9nZXRkb21haW5pbmZvOgorICAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZToK KysgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nOgorICAgICBjYXNlIFhFTl9ET01D VExfbWVtb3J5X21hcHBpbmc6CisgICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAg ICAgIHJldHVybiAtRUlMU0VROworQEAgLTcwMyw3ICs3MDQsNiBAQCBzdGF0aWMgaW50IGNmX2No ZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKKyAgICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhT TSBob29rcyAoYXJjaC94ODYvZG9tY3RsLmMpICovCisgICAgIGNhc2UgWEVOX0RPTUNUTF9zaGFk b3dfb3A6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfcGVybWlzc2lvbjoKKy0gICAgY2Fz ZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nOgorICAgICBjYXNlIFhFTl9ET01DVExfZ3NpX3Bl cm1pc3Npb246CisgI2VuZGlmCisgI2lmZGVmIENPTkZJR19IQVNfUEFTU1RIUk9VR0gKCmRpZmYg LS1naXQgYS94c2E0OTItNC4yMS0xMS5wYXRjaCBiL3hzYTQ5Mi00LjIxLTExLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0N2ZkNWEKLS0tIC9kZXYvbnVsbAorKysg Yi94c2E0OTItNC4yMS0xMS5wYXRjaApAQCAtMCwwICsxLDEyOCBAQAorRnJvbTogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgorU3ViamVjdDogZG9tY3RsOiBoYW5kbGUgWEVOX0RPTUNU TF97LHVufWJpbmRfcHRfaXJxIHdpdGhvdXQgYWNxdWlyaW5nIGRvbWN0bCBsb2NrCisKK1dpdGgg ZGVkaWNhdGVkIGxvY2tpbmcgYWRkZWQsIHRoZSBkb21jdGwgbG9jayBpc24ndCByZXF1aXJlZCBo ZXJlIGFueW1vcmUuCisoSXQgYWxzbyBhbHJlYWR5IGlzbid0IHVzZWQgd2hlbiBwdF9pcnFfe2Ny ZWF0ZSxkZXN0cm95fV9iaW5kKCkgYXJlCitpbnZva2VkIGZvciBQVkggRG9tMC4pIEFzIHRoZSBo YW5kbGluZyBpcyBpbiBhcmNoLXNwZWNpZmljIGNvZGUsIG5vIGNvZGUKK2lzIGJlaW5nIG1vdmVk LCBidXQgdGhlIDJuZCAoZXh0ZW5zaWJsZSB0byBvdGhlciBzdWItb3BzIGxpa2UgdGhlIG9uZXMK K2hlcmUpIGludm9jYXRpb24gb2YgYXJjaF9kb19kb21jdGwoKSBpcyBiZWluZyByZS11c2VkLgor CitUaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KKworRml4ZXM6IGZkYTQ5ZjliM2ZiYiAoIkFkZCBi dWlsZCBvcHRpb24gdG8gYWxsb3cgbW9yZSBoeXBlcmNhbGxzIGZyb20gc3R1YmRvbXMiKQorUmVw b3J0ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CitTaWdu ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitSZXZpZXdlZC1ieTog Um9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CitBY2tlZC1ieTogRGFuaWVs IFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgorQWNrZWQtYnk6IEp1bGll biBHcmFsbCA8anVsaWVuQHhlbi5vcmc+CisKKy0tLSBhL3hlbi9hcmNoL2FybS9kb21jdGwuYwor KysrIGIveGVuL2FyY2gvYXJtL2RvbWN0bC5jCitAQCAtMTA0LDcgKzEwNCw3IEBAIGxvbmcgYXJj aF9kb19kb21jdGwoc3RydWN0IHhlbl9kb21jdGwgKmQKKyAgICAgICAgIGlmICggcmMgKQorICAg ICAgICAgICAgIHJldHVybiByYzsKKyAKKy0gICAgICAgIHJjID0geHNtX2JpbmRfcHRfaXJxKFhT TV9IT09LLCBkLCBiaW5kKTsKKysgICAgICAgIHJjID0geHNtX2JpbmRfcHRfaXJxKFhTTV9ETV9Q UklWLCBkLCBiaW5kKTsKKyAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgIHJldHVybiBy YzsKKyAKK0BAIC0xNDAsNyArMTQwLDcgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bChzdHJ1Y3QgeGVu X2RvbWN0bCAqZAorICAgICAgICAgaWYgKCBpcnEgIT0gdmlycSApCisgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CisgCistICAgICAgICByYyA9IHhzbV91bmJpbmRfcHRfaXJxKFhTTV9IT09L LCBkLCBiaW5kKTsKKysgICAgICAgIHJjID0geHNtX3VuYmluZF9wdF9pcnEoWFNNX0RNX1BSSVYs IGQsIGJpbmQpOworICAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICAgcmV0dXJuIHJjOwor IAorLS0tIGEveGVuL2FyY2gveDg2L2RvbWN0bC5jCisrKysgYi94ZW4vYXJjaC94ODYvZG9tY3Rs LmMKK0BAIC01NzUsNyArNTc1LDcgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKKyAgICAgICAgIGlm ICggIWlzX2h2bV9kb21haW4oZCkgKQorICAgICAgICAgICAgIGJyZWFrOworIAorLSAgICAgICAg cmV0ID0geHNtX2JpbmRfcHRfaXJxKFhTTV9IT09LLCBkLCBiaW5kKTsKKysgICAgICAgIHJldCA9 IHhzbV9iaW5kX3B0X2lycShYU01fRE1fUFJJViwgZCwgYmluZCk7CisgICAgICAgICBpZiAoIHJl dCApCisgICAgICAgICAgICAgYnJlYWs7CisgCitAQCAtNjEzLDcgKzYxMyw3IEBAIGxvbmcgYXJj aF9kb19kb21jdGwoCisgICAgICAgICBpZiAoICFpc19odm1fZG9tYWluKGQpICkKKyAgICAgICAg ICAgICBicmVhazsKKyAKKy0gICAgICAgIHJldCA9IHhzbV91bmJpbmRfcHRfaXJxKFhTTV9IT09L LCBkLCBiaW5kKTsKKysgICAgICAgIHJldCA9IHhzbV91bmJpbmRfcHRfaXJxKFhTTV9ETV9QUklW LCBkLCBiaW5kKTsKKyAgICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgICAgICBicmVhazsKKyAK Ky0tLSBhL3hlbi9jb21tb24vZG9tY3RsLmMKKysrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKK0BA IC00MzcsNiArNDM3LDggQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4 ZQorICAgICB9CisgCisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKKysgICAg Y2FzZSBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxOgorKyAgICBjYXNlIFhFTl9ET01DVExfdW5iaW5k X3B0X2lycToKKyAgICAgICAgIHJldCA9IGFyY2hfZG9fZG9tY3RsKG9wLCBkLCB1X2RvbWN0bCk7 CisgICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7CisgCistLS0gYS94ZW4v aW5jbHVkZS94c20vZHVtbXkuaAorKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKK0BAIC0x NjgsMTMgKzE2OCwxMSBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2RvbWN0 CisgICAgIHN3aXRjaCAoIGNtZCApCisgICAgIHsKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2JpbmRf cHRfaXJxOgorLSAgICBjYXNlIFhFTl9ET01DVExfdW5iaW5kX3B0X2lycToKKy0gICAgICAgIHJl dHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX0RNX1BSSVYsIGN1cnJlbnQtPmRvbWFpbiwgZCk7 CistCisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgorICAgICBjYXNlIFhFTl9E T01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBw aW5nOgorICAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6CisrICAgIGNhc2UgWEVO X0RPTUNUTF91bmJpbmRfcHRfaXJxOgorICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7Cisg ICAgICAgICByZXR1cm4gLUVJTFNFUTsKKyAKK0BAIC01NDEsMTQgKzUzOSwxNCBAQCBzdGF0aWMg WFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX3VubWFwCisgc3RhdGljIFhTTV9JTkxJTkUgaW50 IGNmX2NoZWNrIHhzbV9iaW5kX3B0X2lycSgKKyAgICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBk b21haW4gKmQsIHN0cnVjdCB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJxICpiaW5kKQorIHsKKy0gICAg WFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOworKyAgICBYU01fQVNTRVJUX0FDVElPTihYU01f RE1fUFJJVik7CisgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50 LT5kb21haW4sIGQpOworIH0KKyAKKyBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNt X3VuYmluZF9wdF9pcnEoCisgICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBz dHJ1Y3QgeGVuX2RvbWN0bF9iaW5kX3B0X2lycSAqYmluZCkKKyB7CistICAgIFhTTV9BU1NFUlRf QUNUSU9OKFhTTV9IT09LKTsKKysgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0RNX1BSSVYpOwor ICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBk KTsKKyB9CisgCistLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrKyBiL3hlbi94c20vZmxh c2svaG9va3MuYworQEAgLTY4MywxMCArNjgzLDEyIEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxh c2tfZG9tY3RsKHN0cnVjdAorICAgICAgICAgcmV0dXJuIGF2Y19jdXJyZW50X2hhc19wZXJtKHNz aWRyZWYsIFNFQ0NMQVNTX0RPTUFJTiwgRE9NQUlOX19DUkVBVEUsIE5VTEwpOworIAorICAgICAv KiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIGFuZCBkb24ndCBtYWtlIGl0IGhlcmUu ICovCisrICAgIGNhc2UgWEVOX0RPTUNUTF9iaW5kX3B0X2lycToKKyAgICAgY2FzZSBYRU5fRE9N Q1RMX2dldGRvbWFpbmluZm86CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRl OgorICAgICBjYXNlIFhFTl9ET01DVExfaW9wb3J0X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RP TUNUTF9tZW1vcnlfbWFwcGluZzoKKysgICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6 CisgICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgIHJldHVybiAtRUlMU0VR OworIAorQEAgLTY5Nyw5ICs2OTksNiBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0 bChzdHJ1Y3QKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3NldF90YXJnZXQ6CisgICAgIGNhc2UgWEVO X0RPTUNUTF92bV9ldmVudF9vcDoKKyAKKy0gICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhT TSBob29rcyAoYXJjaC8uLi9kb21jdGwuYykgKi8KKy0gICAgY2FzZSBYRU5fRE9NQ1RMX2JpbmRf cHRfaXJxOgorLSAgICBjYXNlIFhFTl9ET01DVExfdW5iaW5kX3B0X2lycToKKyAjaWZkZWYgQ09O RklHX1g4NgorICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIChhcmNoL3g4 Ni9kb21jdGwuYykgKi8KKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3NoYWRvd19vcDoKCmRpZmYgLS1n aXQgYS94c2E0OTItNC4yMS0xMi5wYXRjaCBiL3hzYTQ5Mi00LjIxLTEyLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxOWQxZTEKLS0tIC9kZXYvbnVsbAorKysgYi94 c2E0OTItNC4yMS0xMi5wYXRjaApAQCAtMCwwICsxLDE3MiBAQAorRnJvbTogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgorU3ViamVjdDogZG9tY3RsOiBoYW5kbGUgWEVOX0RPTUNUTF9p b3ttZW0scG9ydH1fcGVybWlzc2lvbiB3aXRob3V0IGFjcXVpcmluZyBkb21jdGwgbG9jaworCitX aXRoIGRlZGljYXRlZCBsb2NraW5nIGFkZGVkLCB0aGUgZG9tY3RsIGxvY2sgaXNuJ3QgcmVxdWly ZWQgaGVyZSBhbnltb3JlLgorQXMgdGhlIEkvTyBwb3J0IGhhbmRsaW5nIGlzIGluIGFyY2gtc3Bl Y2lmaWMgY29kZSAoeDg2IG9ubHkpLCBubyBjb2RlIGlzCitiZWluZyBtb3ZlZCwgYnV0IHRoZSAy bmQgaW52b2NhdGlvbiBvZiBhcmNoX2RvX2RvbWN0bCgpIGlzIHJlLXVzZWQuIE1vdmUKK3RoZSBy ZS1wdXJwb3NlZCBkZWRpY2F0ZWQgWFNNIGNoZWNrcyBhcyBlYXJseSBhcyBwb3NzaWJsZS4KKwor VGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1NpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KK1Jldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5w YXVAY2l0cml4LmNvbT4KK0Fja2VkLWJ5OiBEYW5pZWwgUC4gU21pdGggPGRwc21pdGhAYXBlcnR1 c3NvbHV0aW9ucy5jb20+CisKKy0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworKysrIGIveGVu L2FyY2gveDg2L2RvbWN0bC5jCitAQCAtMjMzLDEyICsyMzMsMTcgQEAgbG9uZyBhcmNoX2RvX2Rv bWN0bCgKKyAgICAgICAgIHVuc2lnbmVkIGludCBucCA9IGRvbWN0bC0+dS5pb3BvcnRfcGVybWlz c2lvbi5ucl9wb3J0czsKKyAgICAgICAgIGludCBhbGxvdyA9IGRvbWN0bC0+dS5pb3BvcnRfcGVy bWlzc2lvbi5hbGxvd19hY2Nlc3M7CisgCisrICAgICAgICByZXQgPSAtRUlOVkFMOworKyAgICAg ICAgaWYgKCAoZnAgKyBucCkgPD0gZnAgfHwgKGZwICsgbnApID4gTUFYX0lPUE9SVFMgKQorKyAg ICAgICAgICAgIGJyZWFrOworKworKyAgICAgICAgcmV0ID0geHNtX2lvcG9ydF9wZXJtaXNzaW9u KFhTTV9QUklWLCBkLCBmcCwgZnAgKyBucCAtIDEsIGFsbG93KTsKKysgICAgICAgIGlmICggcmV0 ICkKKysgICAgICAgICAgICBicmVhazsKKysKKyAgICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhk LCB0cnVlKTsKKyAKKy0gICAgICAgIGlmICggKGZwICsgbnApIDw9IGZwIHx8IChmcCArIG5wKSA+ IE1BWF9JT1BPUlRTICkKKy0gICAgICAgICAgICByZXQgPSAtRUlOVkFMOworLSAgICAgICAgZWxz ZSBpZiAoICFpb3BvcnRzX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmQsIGZwLCBmcCArIG5wIC0gMSkg fHwKKy0gICAgICAgICAgICAgICAgICB4c21faW9wb3J0X3Blcm1pc3Npb24oWFNNX0hPT0ssIGQs IGZwLCBmcCArIG5wIC0gMSwgYWxsb3cpICkKKysgICAgICAgIGlmICggIWlvcG9ydHNfYWNjZXNz X3Blcm1pdHRlZChjdXJyZCwgZnAsIGZwICsgbnAgLSAxKSApCisgICAgICAgICAgICAgcmV0ID0g LUVQRVJNOworICAgICAgICAgZWxzZSBpZiAoIGFsbG93ICkKKyAgICAgICAgICAgICByZXQgPSBp b3BvcnRzX3Blcm1pdF9hY2Nlc3MoZCwgZnAsIGZwICsgbnAgLSAxKTsKKy0tLSBhL3hlbi9jb21t b24vZG9tY3RsLmMKKysrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKK0BAIC0zNzYsNiArMzc2LDM0 IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKKyAgICAgICAgICAg ICBjb3B5YmFjayA9IHRydWU7CisgICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9u bHk7CisgCisrICAgIGNhc2UgWEVOX0RPTUNUTF9pb21lbV9wZXJtaXNzaW9uOgorKyAgICB7Cisr ICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiA9IG9wLT51LmlvbWVtX3Blcm1pc3Npb24uZmlyc3Rf bWZuOworKyAgICAgICAgdW5zaWduZWQgbG9uZyBucl9tZm5zID0gb3AtPnUuaW9tZW1fcGVybWlz c2lvbi5ucl9tZm5zOworKyAgICAgICAgYm9vbCBhbGxvdyA9IG9wLT51LmlvbWVtX3Blcm1pc3Np b24uYWxsb3dfYWNjZXNzOworKworKyAgICAgICAgcmV0ID0gLUVJTlZBTDsKKysgICAgICAgIGlm ICggKG1mbiArIG5yX21mbnMgLSAxKSA8IG1mbiApIC8qIFdyYXA/ICovCisrICAgICAgICAgICAg Z290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OworKworKyAgICAgICAgcmV0ID0geHNtX2lv bWVtX3Blcm1pc3Npb24oWFNNX1BSSVYsIGQsIG1mbiwgbWZuICsgbnJfbWZucyAtIDEsIGFsbG93 KTsKKysgICAgICAgIGlmICggcmV0ICkKKysgICAgICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5s b2NrX2RvbW9ubHk7CisrCisrICAgICAgICBpb2NhcHNfZG91YmxlX2xvY2soZCwgdHJ1ZSk7Cisr CisrICAgICAgICBpZiAoICFpb21lbV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJlbnQtPmRvbWFpbiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuLCBtZm4gKyBucl9tZm5z IC0gMSkgKQorKyAgICAgICAgICAgIHJldCA9IC1FUEVSTTsKKysgICAgICAgIGVsc2UgaWYgKCBh bGxvdyApCisrICAgICAgICAgICAgcmV0ID0gaW9tZW1fcGVybWl0X2FjY2VzcyhkLCBtZm4sIG1m biArIG5yX21mbnMgLSAxKTsKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICByZXQgPSBpb21l bV9kZW55X2FjY2VzcyhkLCBtZm4sIG1mbiArIG5yX21mbnMgLSAxKTsKKysKKysgICAgICAgIGlv Y2Fwc19kb3VibGVfdW5sb2NrKGQsIHRydWUpOworKyAgICAgICAgZ290byBkb21jdGxfb3V0X3Vu bG9ja19kb21vbmx5OworKyAgICB9CisrCisgICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1vcnlfbWFw cGluZzoKKyAgICAgeworICAgICAgICAgdW5zaWduZWQgbG9uZyBnZm4gPSBvcC0+dS5tZW1vcnlf bWFwcGluZy5maXJzdF9nZm47CitAQCAtNDM2LDYgKzQ2NCw3IEBAIGxvbmcgZG9fZG9tY3RsKFhF Tl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKKyAgICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tf ZG9tb25seTsKKyAgICAgfQorIAorKyAgICBjYXNlIFhFTl9ET01DVExfaW9wb3J0X3Blcm1pc3Np b246CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKKyAgICAgY2FzZSBYRU5f RE9NQ1RMX2JpbmRfcHRfaXJxOgorICAgICBjYXNlIFhFTl9ET01DVExfdW5iaW5kX3B0X2lycToK K0BAIC03NzcsMzEgKzgwNiw2IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0oeGUKKyAgICAgfQorICNlbmRpZgorIAorLSAgICBjYXNlIFhFTl9ET01DVExfaW9tZW1fcGVy bWlzc2lvbjoKKy0gICAgeworLSAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBvcC0+dS5pb21l bV9wZXJtaXNzaW9uLmZpcnN0X21mbjsKKy0gICAgICAgIHVuc2lnbmVkIGxvbmcgbnJfbWZucyA9 IG9wLT51LmlvbWVtX3Blcm1pc3Npb24ubnJfbWZuczsKKy0gICAgICAgIGludCBhbGxvdyA9IG9w LT51LmlvbWVtX3Blcm1pc3Npb24uYWxsb3dfYWNjZXNzOworLQorLSAgICAgICAgcmV0ID0gLUVJ TlZBTDsKKy0gICAgICAgIGlmICggKG1mbiArIG5yX21mbnMgLSAxKSA8IG1mbiApIC8qIHdyYXA/ ICovCistICAgICAgICAgICAgYnJlYWs7CistCistICAgICAgICBpb2NhcHNfZG91YmxlX2xvY2so ZCwgdHJ1ZSk7CistCistICAgICAgICBpZiAoICFpb21lbV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJl bnQtPmRvbWFpbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuLCBt Zm4gKyBucl9tZm5zIC0gMSkgfHwKKy0gICAgICAgICAgICAgeHNtX2lvbWVtX3Blcm1pc3Npb24o WFNNX0hPT0ssIGQsIG1mbiwgbWZuICsgbnJfbWZucyAtIDEsIGFsbG93KSApCistICAgICAgICAg ICAgcmV0ID0gLUVQRVJNOworLSAgICAgICAgZWxzZSBpZiAoIGFsbG93ICkKKy0gICAgICAgICAg ICByZXQgPSBpb21lbV9wZXJtaXRfYWNjZXNzKGQsIG1mbiwgbWZuICsgbnJfbWZucyAtIDEpOwor LSAgICAgICAgZWxzZQorLSAgICAgICAgICAgIHJldCA9IGlvbWVtX2RlbnlfYWNjZXNzKGQsIG1m biwgbWZuICsgbnJfbWZucyAtIDEpOworLQorLSAgICAgICAgaW9jYXBzX2RvdWJsZV91bmxvY2so ZCwgdHJ1ZSk7CistICAgICAgICBicmVhazsKKy0gICAgfQorLQorICAgICBjYXNlIFhFTl9ET01D VExfc2V0dGltZW9mZnNldDoKKyAgICAgICAgIGRvbWFpbl9zZXRfdGltZV9vZmZzZXQoZCwgb3At PnUuc2V0dGltZW9mZnNldC50aW1lX29mZnNldF9zZWNvbmRzKTsKKyAgICAgICAgIGJyZWFrOwor LS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKKysrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1t eS5oCitAQCAtMTcwLDcgKzE3MCw5IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4 c21fZG9tY3QKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxOgorICAgICBjYXNlIFhF Tl9ET01DVExfZ2V0ZG9tYWluaW5mbzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5f c3RhdGU6CisrICAgIGNhc2UgWEVOX0RPTUNUTF9pb21lbV9wZXJtaXNzaW9uOgorICAgICBjYXNl IFhFTl9ET01DVExfaW9wb3J0X21hcHBpbmc6CisrICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRf cGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nOgorICAgICBj YXNlIFhFTl9ET01DVExfdW5iaW5kX3B0X2lycToKKyAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJM RSgpOworQEAgLTU2Nyw3ICs1NjksNyBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sg eHNtX2lycV9wCisgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9pb21lbV9wZXJt aXNzaW9uKAorICAgICBYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgdWludDY0X3Qg cywgdWludDY0X3QgZSwgdWludDhfdCBhbGxvdykKKyB7CistICAgIFhTTV9BU1NFUlRfQUNUSU9O KFhTTV9IT09LKTsKKysgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1BSSVYpOworICAgICByZXR1 cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKKyB9Cisg CitAQCAtNzYzLDcgKzc2NSw3IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21f cHJpdl8KKyBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2lvcG9ydF9wZXJtaXNz aW9uKAorICAgICBYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3Qgcywg dWludDMyX3QgZSwgdWludDhfdCBhbGxvdykKKyB7CistICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhT TV9IT09LKTsKKysgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1BSSVYpOworICAgICByZXR1cm4g eHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKKyB9CisgCist LS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYwor QEAgLTY4Niw3ICs2ODYsOSBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1 Y3QKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxOgorICAgICBjYXNlIFhFTl9ET01D VExfZ2V0ZG9tYWluaW5mbzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6 CisrICAgIGNhc2UgWEVOX0RPTUNUTF9pb21lbV9wZXJtaXNzaW9uOgorICAgICBjYXNlIFhFTl9E T01DVExfaW9wb3J0X21hcHBpbmc6CisrICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfcGVybWlz c2lvbjoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nOgorICAgICBjYXNlIFhF Tl9ET01DVExfdW5iaW5kX3B0X2lycToKKyAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwor QEAgLTY5NSwxNCArNjk3LDEyIEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0 cnVjdAorICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIChjb21tb24vZG9t Y3RsLmMpICovCisgICAgIGNhc2UgWEVOX0RPTUNUTF9zY2hlZHVsZXJfb3A6CisgICAgIGNhc2Ug WEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbjoKKy0gICAgY2FzZSBYRU5fRE9NQ1RMX2lvbWVtX3Bl cm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRfdGFyZ2V0OgorICAgICBjYXNlIFhF Tl9ET01DVExfdm1fZXZlbnRfb3A6CisgCisgI2lmZGVmIENPTkZJR19YODYKKyAgICAgLyogVGhl c2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBob29rcyAoYXJjaC94ODYvZG9tY3RsLmMpICovCisgICAg IGNhc2UgWEVOX0RPTUNUTF9zaGFkb3dfb3A6CistICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRf cGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dzaV9wZXJtaXNzaW9uOgorICNlbmRp ZgorICNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdICgpkaWZmIC0tZ2l0IGEveHNhNDkyLTQu MjEtMTMucGF0Y2ggYi94c2E0OTItNC4yMS0xMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi45MWNlMWFlCi0tLSAvZGV2L251bGwKKysrIGIveHNhNDkyLTQuMjEtMTMu cGF0Y2gKQEAgLTAsMCArMSwxNjMgQEAKK0Zyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KK1N1YmplY3Q6IGRvbWN0bDogaGFuZGxlIFhFTl9ET01DVExfe2lycSxnc2l9X3Blcm1p c3Npb24gd2l0aG91dCBhY3F1aXJpbmcgZG9tY3RsIGxvY2sKKworV2l0aCBkZWRpY2F0ZWQgbG9j a2luZyBhZGRlZCwgdGhlIGRvbWN0bCBsb2NrIGlzbid0IHJlcXVpcmVkIGhlcmUgYW55bW9yZS4K K0FzIHRoZSBHU0kgaGFuZGxpbmcgaXMgaW4gYXJjaC1zcGVjaWZpYyBjb2RlICh4ODYgb25seSks IG5vIGNvZGUgaXMgYmVpbmcKK21vdmVkIHRoZXJlOyB0aGUgMm5kIGludm9jYXRpb24gb2YgYXJj aF9kb19kb21jdGwoKSBpcyByZS11c2VkLiBNb3ZlIHRoZQorcmUtcHVycG9zZWQgKFhTTV9IT09L IC0+IFhTTV9QUklWLCBhcyB4c21fZG9tY3RsKCkgaXMgbm93IGJ5cGFzc2VkKQorZGVkaWNhdGVk IFhTTSBjaGVja3MgYXMgZWFybHkgYXMgcG9zc2libGUuCisKK1RoaXMgaXMgcGFydCBvZiBYU0Et NDkyLgorCitTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitB Y2tlZC1ieTogRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgor UmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgorCist LS0gYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMKKysrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwor QEAgLTI3MiwxMCArMjcyLDEzIEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCisgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICB9CisgCisrICAgICAgICByZXQgPSB4c21faXJxX3Blcm1pc3Npb24o WFNNX1BSSVYsIGQsIGlycSwgZmxhZ3MpOworKyAgICAgICAgaWYgKCByZXQgKQorKyAgICAgICAg ICAgIGJyZWFrOworKworICAgICAgICAgaW9jYXBzX2RvdWJsZV9sb2NrKGQsIHRydWUpOworIAor LSAgICAgICAgaWYgKCAhaXJxX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmQsIGlycSkgfHwKKy0gICAg ICAgICAgICAgeHNtX2lycV9wZXJtaXNzaW9uKFhTTV9IT09LLCBkLCBpcnEsIGZsYWdzKSApCisr ICAgICAgICBpZiAoICFpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZCwgaXJxKSApCisgICAgICAg ICAgICAgcmV0ID0gLUVQRVJNOworICAgICAgICAgZWxzZSBpZiAoIGZsYWdzICkKKyAgICAgICAg ICAgICByZXQgPSBpcnFfcGVybWl0X2FjY2VzcyhkLCBpcnEpOworLS0tIGEveGVuL2NvbW1vbi9k b21jdGwuYworKysrIGIveGVuL2NvbW1vbi9kb21jdGwuYworQEAgLTQ2NCw4ICs0NjQsNDEgQEAg bG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAgZ290byBk b21jdGxfb3V0X3VubG9ja19kb21vbmx5OworICAgICB9CisgCisrI2lmZGVmIENPTkZJR19IQVNf UElSUQorKyAgICBjYXNlIFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb246CisrICAgIHsKKysgICAg ICAgIHVuc2lnbmVkIGludCBwaXJxID0gb3AtPnUuaXJxX3Blcm1pc3Npb24ucGlycSwgaXJxOwor KyAgICAgICAgYm9vbCBhbGxvdyA9IG9wLT51LmlycV9wZXJtaXNzaW9uLmFsbG93X2FjY2VzczsK KysKKysgICAgICAgIHJldCA9IC1FSU5WQUw7CisrICAgICAgICBpZiAoIHBpcnEgPj0gY3VycmVu dC0+ZG9tYWluLT5ucl9waXJxcyApCisrICAgICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9j a19kb21vbmx5OworKworKyAgICAgICAgaXJxID0gZG9tYWluX3BpcnFfdG9faXJxKGN1cnJlbnQt PmRvbWFpbiwgcGlycSk7CisrCisrICAgICAgICByZXQgPSAtRVBFUk07CisrICAgICAgICBpZiAo IGlycSApCisrICAgICAgICAgICAgcmV0ID0geHNtX2lycV9wZXJtaXNzaW9uKFhTTV9QUklWLCBk LCBpcnEsIGFsbG93KTsKKysgICAgICAgIGlmICggcmV0ICkKKysgICAgICAgICAgICBnb3RvIGRv bWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7CisrCisrICAgICAgICBpb2NhcHNfZG91YmxlX2xvY2so ZCwgdHJ1ZSk7CisrCisrICAgICAgICBpZiAoICFpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50 LT5kb21haW4sIGlycSkgKQorKyAgICAgICAgICAgIHJldCA9IC1FUEVSTTsKKysgICAgICAgIGVs c2UgaWYgKCBhbGxvdyApCisrICAgICAgICAgICAgcmV0ID0gaXJxX3Blcm1pdF9hY2Nlc3MoZCwg aXJxKTsKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICByZXQgPSBpcnFfZGVueV9hY2Nlc3Mo ZCwgaXJxKTsKKysKKysgICAgICAgIGlvY2Fwc19kb3VibGVfdW5sb2NrKGQsIHRydWUpOworKyAg ICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OworKyAgICB9CisrI2VuZGlmCisr CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5f RE9NQ1RMX2lvcG9ydF9tYXBwaW5nOgorKyAgICBjYXNlIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Np b246CisgICAgIGNhc2UgWEVOX0RPTUNUTF9iaW5kX3B0X2lycToKKyAgICAgY2FzZSBYRU5fRE9N Q1RMX3VuYmluZF9wdF9pcnE6CisgICAgICAgICByZXQgPSBhcmNoX2RvX2RvbWN0bChvcCwgZCwg dV9kb21jdGwpOworQEAgLTc3OSwzMyArODEyLDYgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNU X0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAgfQorICAgICAgICAgYnJlYWs7CisgCistI2lmZGVm IENPTkZJR19IQVNfUElSUQorLSAgICBjYXNlIFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb246Cist ICAgIHsKKy0gICAgICAgIHVuc2lnbmVkIGludCBwaXJxID0gb3AtPnUuaXJxX3Blcm1pc3Npb24u cGlycSwgaXJxOworLSAgICAgICAgaW50IGFsbG93ID0gb3AtPnUuaXJxX3Blcm1pc3Npb24uYWxs b3dfYWNjZXNzOworLQorLSAgICAgICAgaWYgKCBwaXJxID49IGN1cnJlbnQtPmRvbWFpbi0+bnJf cGlycXMgKQorLSAgICAgICAgeworLSAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7CistICAgICAg ICAgICAgYnJlYWs7CistICAgICAgICB9CistCistICAgICAgICBpb2NhcHNfZG91YmxlX2xvY2so ZCwgdHJ1ZSk7CistCistICAgICAgICBpcnEgPSBwaXJxX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmVu dC0+ZG9tYWluLCBwaXJxKTsKKy0gICAgICAgIGlmICggIWlycSB8fCB4c21faXJxX3Blcm1pc3Np b24oWFNNX0hPT0ssIGQsIGlycSwgYWxsb3cpICkKKy0gICAgICAgICAgICByZXQgPSAtRVBFUk07 CistICAgICAgICBlbHNlIGlmICggYWxsb3cgKQorLSAgICAgICAgICAgIHJldCA9IGlycV9wZXJt aXRfYWNjZXNzKGQsIGlycSk7CistICAgICAgICBlbHNlCistICAgICAgICAgICAgcmV0ID0gaXJx X2RlbnlfYWNjZXNzKGQsIGlycSk7CistCistICAgICAgICBpb2NhcHNfZG91YmxlX3VubG9jayhk LCB0cnVlKTsKKy0gICAgICAgIGJyZWFrOworLSAgICB9CistI2VuZGlmCistCisgICAgIGNhc2Ug WEVOX0RPTUNUTF9zZXR0aW1lb2Zmc2V0OgorICAgICAgICAgZG9tYWluX3NldF90aW1lX29mZnNl dChkLCBvcC0+dS5zZXR0aW1lb2Zmc2V0LnRpbWVfb2Zmc2V0X3NlY29uZHMpOworICAgICAgICAg YnJlYWs7CistLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysrIGIveGVuL2luY2x1ZGUv eHNtL2R1bW15LmgKK0BAIC0xNzAsOSArMTcwLDExIEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBj Zl9jaGVjayB4c21fZG9tY3QKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxOgorICAg ICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9tYWluaW5mbzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dl dF9kb21haW5fc3RhdGU6CisrICAgIGNhc2UgWEVOX0RPTUNUTF9nc2lfcGVybWlzc2lvbjoKKyAg ICAgY2FzZSBYRU5fRE9NQ1RMX2lvbWVtX3Blcm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RPTUNU TF9pb3BvcnRfbWFwcGluZzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9u OgorKyAgICBjYXNlIFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RP TUNUTF9tZW1vcnlfbWFwcGluZzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6 CisgICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKK0BAIC01NjIsNyArNTY0LDcgQEAgc3Rh dGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV91bm1hcAorIHN0YXRpYyBYU01fSU5MSU5F IGludCBjZl9jaGVjayB4c21faXJxX3Blcm1pc3Npb24oCisgICAgIFhTTV9ERUZBVUxUX0FSRyBz dHJ1Y3QgZG9tYWluICpkLCBpbnQgcGlycSwgdWludDhfdCBhbGxvdykKKyB7CistICAgIFhTTV9B U1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKKysgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1BSSVYp OworICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWlu LCBkKTsKKyB9CisgCistLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrKyBiL3hlbi94c20v Zmxhc2svaG9va3MuYworQEAgLTY4Niw5ICs2ODYsMTEgQEAgc3RhdGljIGludCBjZl9jaGVjayBm bGFza19kb21jdGwoc3RydWN0CisgICAgIGNhc2UgWEVOX0RPTUNUTF9iaW5kX3B0X2lycToKKyAg ICAgY2FzZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm86CisgICAgIGNhc2UgWEVOX0RPTUNUTF9n ZXRfZG9tYWluX3N0YXRlOgorKyAgICBjYXNlIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb246Cisg ICAgIGNhc2UgWEVOX0RPTUNUTF9pb21lbV9wZXJtaXNzaW9uOgorICAgICBjYXNlIFhFTl9ET01D VExfaW9wb3J0X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfcGVybWlzc2lv bjoKKysgICAgY2FzZSBYRU5fRE9NQ1RMX2lycV9wZXJtaXNzaW9uOgorICAgICBjYXNlIFhFTl9E T01DVExfbWVtb3J5X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJx OgorICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CitAQCAtNjk2LDE0ICs2OTgsMTIgQEAg c3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0CisgCisgICAgIC8qIFRoZXNl IGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGNvbW1vbi9kb21jdGwuYykgKi8KKyAgICAgY2Fz ZSBYRU5fRE9NQ1RMX3NjaGVkdWxlcl9vcDoKKy0gICAgY2FzZSBYRU5fRE9NQ1RMX2lycV9wZXJt aXNzaW9uOgorICAgICBjYXNlIFhFTl9ET01DVExfc2V0X3RhcmdldDoKKyAgICAgY2FzZSBYRU5f RE9NQ1RMX3ZtX2V2ZW50X29wOgorIAorICNpZmRlZiBDT05GSUdfWDg2CisgICAgIC8qIFRoZXNl IGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGFyY2gveDg2L2RvbWN0bC5jKSAqLworICAgICBj YXNlIFhFTl9ET01DVExfc2hhZG93X29wOgorLSAgICBjYXNlIFhFTl9ET01DVExfZ3NpX3Blcm1p c3Npb246CisgI2VuZGlmCisgI2lmZGVmIENPTkZJR19IQVNfUEFTU1RIUk9VR0gKKyAgICAgLyoK CmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0xNC5wYXRjaCBiL3hzYTQ5Mi00LjIxLTE0LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiMTMzNzcKLS0tIC9kZXYvbnVs bAorKysgYi94c2E0OTItNC4yMS0xNC5wYXRjaApAQCAtMCwwICsxLDE3OSBAQAorRnJvbTogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgorU3ViamVjdDogZG9tY3RsL1hTTTogZHJvcCB2 bV9ldmVudF9jb250cm9sIGhvb2sKKworSW50ZWdyYXRlIHRoZSBjaGVja2luZyB3aXRoIHhzbV9k b21jdGwoKS4gQ2FyZSBuZWVkcyB0byBiZSB0YWtlbiB3aXRoIHRoZQorR0VUX1ZFUlNJT04gc3Vi LW9wLCB3aGljaCBtYXkgYmUgaW52b2tlZCB3aXRoIERPTUlEX0lOVkFMSUQsIGFuZCB3aGljaCBo YXMKK2JlZW4gKGFuZCBjb250aW51ZXMgdG8gYmUpIGJ5cGFzc2luZyBYU00gY2hlY2tpbmcuCisK K1NpbmNlIHRoZSBsYXR0ZXIgdHdvIHBhcmFtZXRlcnMgd2VyZSB1bnVzZWQsIG1vbml0b3JfZG9t Y3RsKCkgaW52b2tpbmcgdGhlCitob29rIHdhcyBhY3R1YWxseSByZWR1bmRhbnQgd2l0aCB0aGUg ZWFybGllciB4c21fZG9tY3RsKCkgKGFzIGNhbiBiZSBzZWVuCituaWNlbHkgZnJvbSB0aGUgaHVu a3MgY2hhbmdpbmcgeHNtL2ZsYXNrL2hvb2tzLmMpLgorCitBcyBhIHBvc2l0aXZlIHNpZGUgZWZm ZWN0LCBwZXJtaXNzaW9ucyBhcmUgdGhlbiBjaGVja2VkIGF0IHRoZSBzYW1lIGVhcmx5Citwb2lu dCB3aXRoIGFuZCB3aXRob3V0IEZsYXNrLgorCitXaGlsZSBmb2xkaW5nIFhFTl9ET01DVExfbW9u aXRvcl9vcCBhbmQgWEVOX0RPTUNUTF92bV9ldmVudF9vcCBpbgorZmxhc2tfZG9tY3RsKCksIGFs c28gZm9sZCBpbiBYRU5fRE9NQ1RMX3NldF9hY2Nlc3NfcmVxdWlyZWQuCisKK1RoaXMgaXMgcGFy dCBvZiBYU0EtNDkyLgorCitTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+CitBY2tlZC1ieTogRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlv bnMuY29tPgorUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu Y29tPgorCistLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jCisrKysgYi94ZW4vY29tbW9uL2RvbWN0 bC5jCitAQCAtNDk2LDYgKzQ5NiwyMyBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExF X1BBUkFNKHhlCisgICAgIH0KKyAjZW5kaWYKKyAKKysgICAgY2FzZSBYRU5fRE9NQ1RMX3ZtX2V2 ZW50X29wOgorKyAgICAgICAgaWYgKCBvcC0+dS52bV9ldmVudF9vcC5vcCA9PSBYRU5fVk1fRVZF TlRfR0VUX1ZFUlNJT04gKQorKyAgICAgICAgeworKyAgICAgICAgICAgIC8qIE5vIFhTTSBjaGVj ayAoYW5kIHBvdGVudGlhbGx5IGQgPT0gTlVMTCkgaGVyZS4gKi8KKysgICAgICAgICAgICByZXQg PSB2bV9ldmVudF9kb21jdGwoZCwgJm9wLT51LnZtX2V2ZW50X29wKTsKKysgICAgICAgICAgICBp ZiAoICFyZXQgKQorKyAgICAgICAgICAgICAgICBjb3B5YmFjayA9IHRydWU7CisrICAgICAgICAg ICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OworKyAgICAgICAgfQorKyAgICAgICAg aWYgKCAhZCApCisrICAgICAgICB7CisrICAgICAgICAgICAgcmV0ID0gLUVTUkNIOworKyAgICAg ICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKKysgICAgICAgIH0KKysgICAg ICAgIC8qIE90aGVyIHN1Yi1vcHMgaGFuZGxlZCBmdXJ0aGVyIGRvd24uICovCisrICAgICAgICBi cmVhazsKKysKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9uOgorICAgICBj YXNlIFhFTl9ET01DVExfaW9wb3J0X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nc2lf cGVybWlzc2lvbjoKKy0tLSBhL3hlbi9jb21tb24vbW9uaXRvci5jCisrKysgYi94ZW4vY29tbW9u L21vbml0b3IuYworQEAgLTMwLDE2ICszMCwxMSBAQAorIAorIGludCBtb25pdG9yX2RvbWN0bChz dHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bF9tb25pdG9yX29wICptb3ApCisgewor LSAgICBpbnQgcmM7CisgICAgIGJvb2wgcmVxdWVzdGVkX3N0YXR1cyA9IGZhbHNlOworIAorICAg ICBpZiAoIHVubGlrZWx5KGN1cnJlbnQtPmRvbWFpbiA9PSBkKSApIC8qIG5vIGRvbWFpbl9wYXVz ZSgpICovCisgICAgICAgICByZXR1cm4gLUVQRVJNOworIAorLSAgICByYyA9IHhzbV92bV9ldmVu dF9jb250cm9sKFhTTV9QUklWLCBkLCBtb3AtPm9wLCBtb3AtPmV2ZW50KTsKKy0gICAgaWYgKCB1 bmxpa2VseShyYykgKQorLSAgICAgICAgcmV0dXJuIHJjOworLQorICAgICBzd2l0Y2ggKCBtb3At Pm9wICkKKyAgICAgeworICAgICBjYXNlIFhFTl9ET01DVExfTU9OSVRPUl9PUF9FTkFCTEU6Cist LS0gYS94ZW4vY29tbW9uL3ZtX2V2ZW50LmMKKysrKyBiL3hlbi9jb21tb24vdm1fZXZlbnQuYwor QEAgLTYwMywxMSArNjAzLDEwIEBAIGludCB2bV9ldmVudF9kb21jdGwoc3RydWN0IGRvbWFpbiAq ZCwgc3QKKyAKKyAgICAgLyogQWxsIG90aGVyIHN1Ym9wcyBuZWVkIHRvIHRhcmdldCBhIHJlYWwg ZG9tYWluLiAqLworICAgICBpZiAoIHVubGlrZWx5KGQgPT0gTlVMTCkgKQorLSAgICAgICAgcmV0 dXJuIC1FU1JDSDsKKy0KKy0gICAgcmMgPSB4c21fdm1fZXZlbnRfY29udHJvbChYU01fUFJJViwg ZCwgdmVjLT5tb2RlLCB2ZWMtPm9wKTsKKy0gICAgaWYgKCByYyApCistICAgICAgICByZXR1cm4g cmM7CisrICAgIHsKKysgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworKyAgICAgICAgcmV0 dXJuIC1FSUxTRVE7CisrICAgIH0KKyAKKyAgICAgaWYgKCB1bmxpa2VseShkID09IGN1cnJlbnQt PmRvbWFpbikgKSAvKiBubyBkb21haW5fcGF1c2UoKSAqLworICAgICB7CistLS0gYS94ZW4vaW5j bHVkZS94c20vZHVtbXkuaAorKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKK0BAIC02NTIs MTMgKzY1Miw2IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21faHZtX2EKKyAg ICAgfQorIH0KKyAKKy1zdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX3ZtX2V2ZW50 X2NvbnRyb2woCistICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBpbnQgbW9k ZSwgaW50IG9wKQorLXsKKy0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1BSSVYpOworLSAgICBy ZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKKy19 CistCisgI2lmZGVmIENPTkZJR19WTV9FVkVOVAorIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9j aGVjayB4c21fbWVtX2FjY2VzcyhYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCkKKyB7 CistLS0gYS94ZW4vaW5jbHVkZS94c20veHNtLmgKKysrKyBiL3hlbi9pbmNsdWRlL3hzbS94c20u aAorQEAgLTE1Nyw4ICsxNTcsNiBAQCBzdHJ1Y3QgeHNtX29wcyB7CisgICAgIGludCAoKmh2bV9h bHRwMm1odm1fb3ApKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IG1vZGUsIHVpbnQzMl90IG9w KTsKKyAgICAgaW50ICgqZ2V0X3ZudW1haW5mbykoc3RydWN0IGRvbWFpbiAqZCk7CisgCistICAg IGludCAoKnZtX2V2ZW50X2NvbnRyb2wpKHN0cnVjdCBkb21haW4gKmQsIGludCBtb2RlLCBpbnQg b3ApOworLQorICNpZmRlZiBDT05GSUdfVk1fRVZFTlQKKyAgICAgaW50ICgqbWVtX2FjY2Vzcyko c3RydWN0IGRvbWFpbiAqZCk7CisgI2VuZGlmCitAQCAtNjU3LDEyICs2NTUsNiBAQCBzdGF0aWMg aW5saW5lIGludCB4c21fZ2V0X3ZudW1haW5mbyh4c21fCisgICAgIHJldHVybiBhbHRlcm5hdGl2 ZV9jYWxsKHhzbV9vcHMuZ2V0X3ZudW1haW5mbywgZCk7CisgfQorIAorLXN0YXRpYyBpbmxpbmUg aW50IHhzbV92bV9ldmVudF9jb250cm9sKAorLSAgICB4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0 IGRvbWFpbiAqZCwgaW50IG1vZGUsIGludCBvcCkKKy17CistICAgIHJldHVybiBhbHRlcm5hdGl2 ZV9jYWxsKHhzbV9vcHMudm1fZXZlbnRfY29udHJvbCwgZCwgbW9kZSwgb3ApOworLX0KKy0KKyAj aWZkZWYgQ09ORklHX1ZNX0VWRU5UCisgc3RhdGljIGlubGluZSBpbnQgeHNtX21lbV9hY2Nlc3Mo eHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQpCisgeworLS0tIGEveGVuL3hzbS9k dW1teS5jCisrKysgYi94ZW4veHNtL2R1bW15LmMKK0BAIC0xMTYsOCArMTE2LDYgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCB4c21fb3BzIF9faW5pdGNvbnN0XworICAgICAucmVtb3ZlX2Zyb21fcGh5 c21hcCAgICAgICAgICAgPSB4c21fcmVtb3ZlX2Zyb21fcGh5c21hcCwKKyAgICAgLm1hcF9nbWZu X2ZvcmVpZ24gICAgICAgICAgICAgID0geHNtX21hcF9nbWZuX2ZvcmVpZ24sCisgCistICAgIC52 bV9ldmVudF9jb250cm9sICAgICAgICAgICAgICA9IHhzbV92bV9ldmVudF9jb250cm9sLAorLQor ICNpZmRlZiBDT05GSUdfVk1fRVZFTlQKKyAgICAgLm1lbV9hY2Nlc3MgICAgICAgICAgICAgICAg ICAgID0geHNtX21lbV9hY2Nlc3MsCisgI2VuZGlmCistLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tz LmMKKysrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYworQEAgLTY5OSw3ICs2OTksNiBAQCBzdGF0 aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKKyAgICAgLyogVGhlc2UgaGF2ZSBp bmRpdmlkdWFsIFhTTSBob29rcyAoY29tbW9uL2RvbWN0bC5jKSAqLworICAgICBjYXNlIFhFTl9E T01DVExfc2NoZWR1bGVyX29wOgorICAgICBjYXNlIFhFTl9ET01DVExfc2V0X3RhcmdldDoKKy0g ICAgY2FzZSBYRU5fRE9NQ1RMX3ZtX2V2ZW50X29wOgorIAorICNpZmRlZiBDT05GSUdfWDg2Cisg ICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGFyY2gveDg2L2RvbWN0bC5j KSAqLworQEAgLTc5Myw5ICs3OTIsOCBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0 bChzdHJ1Y3QKKyAgICAgICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0RP TUFJTiwgRE9NQUlOX19UUklHR0VSKTsKKyAKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3NldF9hY2Nl c3NfcmVxdWlyZWQ6CistICAgICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFT U19ET01BSU4yLCBET01BSU4yX19WTV9FVkVOVCk7CistCisgICAgIGNhc2UgWEVOX0RPTUNUTF9t b25pdG9yX29wOgorKyAgICBjYXNlIFhFTl9ET01DVExfdm1fZXZlbnRfb3A6CisgICAgICAgICBy ZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19ET01BSU4yLCBET01BSU4yX19WTV9F VkVOVCk7CisgCisgICAgIGNhc2UgWEVOX0RPTUNUTF9kZWJ1Z19vcDoKK0BAIC0xMzY4LDExICsx MzY2LDYgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19odm1fYWx0cDJtaHZtXworICAgICBy ZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19IVk0sIEhWTV9fQUxUUDJNSFZNX09Q KTsKKyB9CisgCistc3RhdGljIGludCBjZl9jaGVjayBmbGFza192bV9ldmVudF9jb250cm9sKHN0 cnVjdCBkb21haW4gKmQsIGludCBtb2RlLCBpbnQgb3ApCisteworLSAgICByZXR1cm4gY3VycmVu dF9oYXNfcGVybShkLCBTRUNDTEFTU19ET01BSU4yLCBET01BSU4yX19WTV9FVkVOVCk7CistfQor LQorICNpZmRlZiBDT05GSUdfVk1fRVZFTlQKKyBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX21l bV9hY2Nlc3Moc3RydWN0IGRvbWFpbiAqZCkKKyB7CitAQCAtMTk3MSw4ICsxOTY0LDYgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCB4c21fb3BzIF9faW5pdGNvbnN0XworICAgICAuZG9feHNtX29wID0g ZG9fZmxhc2tfb3AsCisgICAgIC5nZXRfdm51bWFpbmZvID0gZmxhc2tfZ2V0X3ZudW1haW5mbywK KyAKKy0gICAgLnZtX2V2ZW50X2NvbnRyb2wgPSBmbGFza192bV9ldmVudF9jb250cm9sLAorLQor ICNpZmRlZiBDT05GSUdfVk1fRVZFTlQKKyAgICAgLm1lbV9hY2Nlc3MgPSBmbGFza19tZW1fYWNj ZXNzLAorICNlbmRpZgoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTE1LnBhdGNoIGIveHNhNDky LTQuMjEtMTUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM4N2Yz YgotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTE1LnBhdGNoCkBAIC0wLDAgKzEsMTA4 IEBACitGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitTdWJqZWN0OiBkb21j dGwvWFNNOiBwYXNzIGZ1bGwgc3RydWN0IHhlbl9kb21jdGwgdG8geHNtX2RvbWN0bCgpCisKK1N1 YnNlcXVlbnRseSBzb21lIHN1Yi1vcHMgd2lsbCB3YW50IHRvIGluc3BlY3QgdGhlaXIgc3ViLXN1 Yi1vcHMuIFBsdXMKK3RoaXMgd2F5IHdlIGRvbid0IG5lZWQgdG8gcGFzcyBTU0lEcmVmIHNlcGFy YXRlbHkgYW55bW9yZSBmb3IKK2RvbWFpbl9jcmVhdGUuCisKK1RoaXMgaXMgcGFydCBvZiBYU0Et NDkyLgorCitTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitB Y2tlZC1ieTogRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgor CistLS0gYS94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMKKysrKyBiL3hlbi9hcmNoL3g4Ni9tbS9w YWdpbmcuYworQEAgLTczNSw3ICs3MzUsNyBAQCBsb25nIGRvX3BhZ2luZ19kb21jdGxfY29udCgK KyAgICAgaWYgKCBkID09IE5VTEwgKQorICAgICAgICAgcmV0dXJuIC1FU1JDSDsKKyAKKy0gICAg cmV0ID0geHNtX2RvbWN0bChYU01fT1RIRVIsIGQsIG9wLmNtZCwgMCAvKiBTU0lEcmVmIG5vdCBh cHBsaWNhYmxlICovKTsKKysgICAgcmV0ID0geHNtX2RvbWN0bChYU01fT1RIRVIsIGQsICZvcCk7 CisgICAgIGlmICggIXJldCApCisgICAgIHsKKyAgICAgICAgIGlmICggZG9tY3RsX2xvY2tfYWNx dWlyZSgpICkKKy0tLSBhL3hlbi9jb21tb24vZG9tY3RsLmMKKysrKyBiL3hlbi9jb21tb24vZG9t Y3RsLmMKK0BAIC01MjYsOSArNTI2LDcgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRM RV9QQVJBTSh4ZQorICAgICAgICAgYnJlYWs7CisgICAgIH0KKyAKKy0gICAgcmV0ID0geHNtX2Rv bWN0bChYU01fT1RIRVIsIGQsIG9wLT5jbWQsCistICAgICAgICAgICAgICAgICAgICAgLyogU1NJ RFJlZiBvbmx5IGFwcGxpY2FibGUgZm9yIGNtZCA9PSBjcmVhdGVkb21haW4gKi8KKy0gICAgICAg ICAgICAgICAgICAgICBvcC0+dS5jcmVhdGVkb21haW4uc3NpZHJlZik7CisrICAgIHJldCA9IHhz bV9kb21jdGwoWFNNX09USEVSLCBkLCBvcCk7CisgICAgIGlmICggcmV0ICkKKyAgICAgICAgIGdv dG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKKyAKKy0tLSBhL3hlbi9pbmNsdWRlL3hzbS9k dW1teS5oCisrKysgYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorQEAgLTE2MiwxMCArMTYyLDEw IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fc2V0X3QKKyB9CisgCisgc3Rh dGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9kb21jdGwoCistICAgIFhTTV9ERUZBVUxU X0FSRyBzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgY21kLCB1aW50MzJfdCBzc2lkcmVm KQorKyAgICBYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21j dGwgKm9wKQorIHsKKyAgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX09USEVSKTsKKy0gICAgc3dp dGNoICggY21kICkKKysgICAgc3dpdGNoICggb3AtPmNtZCApCisgICAgIHsKKyAgICAgY2FzZSBY RU5fRE9NQ1RMX2JpbmRfcHRfaXJxOgorICAgICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9tYWluaW5m bzoKKy0tLSBhL3hlbi9pbmNsdWRlL3hzbS94c20uaAorKysrIGIveGVuL2luY2x1ZGUveHNtL3hz bS5oCitAQCAtNjEsNyArNjEsNyBAQCBzdHJ1Y3QgeHNtX29wcyB7CisgICAgIGludCAoKnN5c2N0 bF9zY2hlZHVsZXJfb3ApKGludCBvcCk7CisgI2VuZGlmCisgICAgIGludCAoKnNldF90YXJnZXQp KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkb21haW4gKmUpOworLSAgICBpbnQgKCpkb21jdGwp KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBjbWQsIHVpbnQzMl90IHNzaWRyZWYpOwor KyAgICBpbnQgKCpkb21jdGwpKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fZG9tY3RsICpv cCk7CisgICAgIGludCAoKnN5c2N0bCkoaW50IGNtZCk7CisgICAgIGludCAoKnJlYWRjb25zb2xl KSh1aW50MzJfdCBjbGVhcik7CisgCitAQCAtMjYwLDkgKzI2MCw5IEBAIHN0YXRpYyBpbmxpbmUg aW50IHhzbV9zZXRfdGFyZ2V0KAorIH0KKyAKKyBzdGF0aWMgaW5saW5lIGludCB4c21fZG9tY3Rs KHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdWludDMyX3Qgc3NpZHJlZikKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsICpvcCkKKyB7CistICAgIHJl dHVybiBhbHRlcm5hdGl2ZV9jYWxsKHhzbV9vcHMuZG9tY3RsLCBkLCBjbWQsIHNzaWRyZWYpOwor KyAgICByZXR1cm4gYWx0ZXJuYXRpdmVfY2FsbCh4c21fb3BzLmRvbWN0bCwgZCwgb3ApOworIH0K KyAKKyBzdGF0aWMgaW5saW5lIGludCB4c21fc3lzY3RsKHhzbV9kZWZhdWx0X3QgZGVmLCBpbnQg Y21kKQorLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jCisrKysgYi94ZW4veHNtL2ZsYXNrL2hv b2tzLmMKK0BAIC02NjcsMTAgKzY2Nyw5IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfc2V0 X3RhcmdldChzdHIKKyAgICAgcmV0dXJuIHJjOworIH0KKyAKKy1zdGF0aWMgaW50IGNmX2NoZWNr IGZsYXNrX2RvbWN0bChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgY21kLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHNzaWRyZWYpCisrc3RhdGljIGlu dCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21j dGwgKm9wKQorIHsKKy0gICAgc3dpdGNoICggY21kICkKKysgICAgc3dpdGNoICggb3AtPmNtZCAp CisgICAgIHsKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2NyZWF0ZWRvbWFpbjoKKyAgICAgICAgIC8q CitAQCAtNjgwLDcgKzY3OSw4IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0 cnVjdAorICAgICAgICAgICogTm90ZSB0aGF0IGQgaXMgTlVMTCBiZWNhdXNlIHdlIGhhdmVuJ3Qg ZXZlbiBhbGxvY2F0ZWQgbWVtb3J5IGZvciBpdAorICAgICAgICAgICogdGhpcyBlYXJseSBpbiBY RU5fRE9NQ1RMX2NyZWF0ZWRvbWFpbi4KKyAgICAgICAgICAqLworLSAgICAgICAgcmV0dXJuIGF2 Y19jdXJyZW50X2hhc19wZXJtKHNzaWRyZWYsIFNFQ0NMQVNTX0RPTUFJTiwgRE9NQUlOX19DUkVB VEUsIE5VTEwpOworKyAgICAgICAgcmV0dXJuIGF2Y19jdXJyZW50X2hhc19wZXJtKG9wLT51LmNy ZWF0ZWRvbWFpbi5zc2lkcmVmLCBTRUNDTEFTU19ET01BSU4sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRE9NQUlOX19DUkVBVEUsIE5VTEwpOworIAorICAgICAvKiBUaGVz ZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIGFuZCBkb24ndCBtYWtlIGl0IGhlcmUuICovCisg ICAgIGNhc2UgWEVOX0RPTUNUTF9iaW5kX3B0X2lycToKK0BAIC04NTUsNyArODU1LDcgQEAgc3Rh dGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0CisgICAgICAgICByZXR1cm4gY3Vy cmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19ET01BSU4yLCBET01BSU4yX19TRVRfTExDX0NPTE9S Uyk7CisgCisgICAgIGRlZmF1bHQ6CistICAgICAgICByZXR1cm4gYXZjX3Vua25vd25fcGVybWlz c2lvbigiZG9tY3RsIiwgY21kKTsKKysgICAgICAgIHJldHVybiBhdmNfdW5rbm93bl9wZXJtaXNz aW9uKCJkb21jdGwiLCBvcC0+Y21kKTsKKyAgICAgfQorIH0KKyAKCmRpZmYgLS1naXQgYS94c2E0 OTItNC4yMS0xNi5wYXRjaCBiL3hzYTQ5Mi00LjIxLTE2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjJjYjg2MTkKLS0tIC9kZXYvbnVsbAorKysgYi94c2E0OTItNC4y MS0xNi5wYXRjaApAQCAtMCwwICsxLDExMiBAQAorRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNo QHN1c2UuY29tPgorU3ViamVjdDogZG9tY3RsL1hTTTogZHJvcCBzY2hlZHVsZXJfb3AgaG9vawor CitJbnRlZ3JhdGUgdGhlIGNoZWNraW5nIHdpdGggeHNtX2RvbWN0bCgpLCBub3cgdGhhdCBpdCBo YXMgdGhlIGZ1bGwgb3AKK3N0cnVjdCBwYXNzZWQuIEFzIGEgcG9zaXRpdmUgc2lkZSBlZmZlY3Qs IHBlcm1pc3Npb25zIGFyZSB0aGVuIGNoZWNrZWQgYXQKK3RoZSBzYW1lIGVhcmx5IHBvaW50IHdp dGggYW5kIHdpdGhvdXQgRmxhc2suCisKK1RoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgorCitTaWdu ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitBY2tlZC1ieTogRGFu aWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgorUmV2aWV3ZWQtYnk6 IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KKworLS0tIGEveGVuL2NvbW1vbi9zY2hl ZC9jb3JlLmMKKysrKyBiL3hlbi9jb21tb24vc2NoZWQvY29yZS5jCitAQCAtMjA3NCwxMCArMjA3 NCw2IEBAIGxvbmcgc2NoZWRfYWRqdXN0KHN0cnVjdCBkb21haW4gKmQsIHN0cnUKKyB7CisgICAg IGxvbmcgcmV0OworIAorLSAgICByZXQgPSB4c21fZG9tY3RsX3NjaGVkdWxlcl9vcChYU01fSE9P SywgZCwgb3AtPmNtZCk7CistICAgIGlmICggcmV0ICkKKy0gICAgICAgIHJldHVybiByZXQ7Cist CisgICAgIGlmICggb3AtPnNjaGVkX2lkICE9IGRvbV9zY2hlZHVsZXIoZCktPnNjaGVkX2lkICkK KyAgICAgICAgIHJldHVybiAtRUlOVkFMOworIAorLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15 LmgKKysrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCitAQCAtMTQxLDEzICsxNDEsNiBAQCBz dGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2dldGRvCisgICAgIHJldHVybiB4c21f ZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOworIH0KKyAKKy1zdGF0 aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2RvbWN0bF9zY2hlZHVsZXJfb3AoCistICAg IFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBpbnQgY21kKQorLXsKKy0gICAgWFNN X0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOworLSAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9u KGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKKy19CistCisgc3RhdGljIFhTTV9JTkxJTkUg aW50IGNmX2NoZWNrIHhzbV9zeXNjdGxfc2NoZWR1bGVyX29wKFhTTV9ERUZBVUxUX0FSRyBpbnQg Y21kKQorIHsKKyAgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOworLS0tIGEveGVuL2lu Y2x1ZGUveHNtL3hzbS5oCisrKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKK0BAIC01Niw3ICs1 Niw2IEBAIHN0cnVjdCB4c21fb3BzIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB4ZW5fZG9tY3RsX2dldGRvbWFpbmluZm8gKmluZm8pOworICAgICBpbnQgKCpkb21h aW5fY3JlYXRlKShzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBzc2lkcmVmKTsKKyAgICAgaW50 ICgqZ2V0ZG9tYWluaW5mbykoc3RydWN0IGRvbWFpbiAqZCk7CistICAgIGludCAoKmRvbWN0bF9z Y2hlZHVsZXJfb3ApKHN0cnVjdCBkb21haW4gKmQsIGludCBvcCk7CisgI2lmZGVmIENPTkZJR19T WVNDVEwKKyAgICAgaW50ICgqc3lzY3RsX3NjaGVkdWxlcl9vcCkoaW50IG9wKTsKKyAjZW5kaWYK K0BAIC0yNDAsMTIgKzIzOSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9nZXRfZG9tYWluX3N0 YXRlKHgKKyAgICAgcmV0dXJuIGFsdGVybmF0aXZlX2NhbGwoeHNtX29wcy5nZXRfZG9tYWluX3N0 YXRlLCBkKTsKKyB9CisgCistc3RhdGljIGlubGluZSBpbnQgeHNtX2RvbWN0bF9zY2hlZHVsZXJf b3AoCistICAgIHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkLCBpbnQgY21kKQor LXsKKy0gICAgcmV0dXJuIGFsdGVybmF0aXZlX2NhbGwoeHNtX29wcy5kb21jdGxfc2NoZWR1bGVy X29wLCBkLCBjbWQpOworLX0KKy0KKyAjaWZkZWYgQ09ORklHX1NZU0NUTAorIHN0YXRpYyBpbmxp bmUgaW50IHhzbV9zeXNjdGxfc2NoZWR1bGVyX29wKHhzbV9kZWZhdWx0X3QgZGVmLCBpbnQgY21k KQorIHsKKy0tLSBhL3hlbi94c20vZHVtbXkuYworKysrIGIveGVuL3hzbS9kdW1teS5jCitAQCAt MTgsNyArMTgsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHhzbV9vcHMgX19pbml0Y29uc3RfCisg ICAgIC5zZWN1cml0eV9kb21haW5pbmZvICAgICAgICAgICA9IHhzbV9zZWN1cml0eV9kb21haW5p bmZvLAorICAgICAuZG9tYWluX2NyZWF0ZSAgICAgICAgICAgICAgICAgPSB4c21fZG9tYWluX2Ny ZWF0ZSwKKyAgICAgLmdldGRvbWFpbmluZm8gICAgICAgICAgICAgICAgID0geHNtX2dldGRvbWFp bmluZm8sCistICAgIC5kb21jdGxfc2NoZWR1bGVyX29wICAgICAgICAgICA9IHhzbV9kb21jdGxf c2NoZWR1bGVyX29wLAorICNpZmRlZiBDT05GSUdfU1lTQ1RMCisgICAgIC5zeXNjdGxfc2NoZWR1 bGVyX29wICAgICAgICAgICA9IHhzbV9zeXNjdGxfc2NoZWR1bGVyX29wLAorICNlbmRpZgorLS0t IGEveGVuL3hzbS9mbGFzay9ob29rcy5jCisrKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKK0BA IC02MDksNyArNjA5LDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19nZXRkb21haW5pbmZv KAorICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19ET01BSU4sIERPTUFJ Tl9fR0VURE9NQUlOSU5GTyk7CisgfQorIAorLXN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9t Y3RsX3NjaGVkdWxlcl9vcChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgb3ApCisrc3RhdGljIGludCBm bGFza19kb21jdGxfc2NoZWR1bGVyX29wKHN0cnVjdCBkb21haW4gKmQsIGludCBvcCkKKyB7Cisg ICAgIHN3aXRjaCAoIG9wICkKKyAgICAgeworQEAgLTY5Nyw3ICs2OTcsNiBAQCBzdGF0aWMgaW50 IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKKyAgICAgICAgIHJldHVybiAtRUlMU0VROwor IAorICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIChjb21tb24vZG9tY3Rs LmMpICovCistICAgIGNhc2UgWEVOX0RPTUNUTF9zY2hlZHVsZXJfb3A6CisgICAgIGNhc2UgWEVO X0RPTUNUTF9zZXRfdGFyZ2V0OgorIAorICNpZmRlZiBDT05GSUdfWDg2CitAQCAtNzQ1LDYgKzc0 NCw5IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAorICAgICBjYXNl IFhFTl9ET01DVExfc2V0ZG9tYWluaGFuZGxlOgorICAgICAgICAgcmV0dXJuIGN1cnJlbnRfaGFz X3Blcm0oZCwgU0VDQ0xBU1NfRE9NQUlOLCBET01BSU5fX1NFVERPTUFJTkhBTkRMRSk7CisgCisr ICAgIGNhc2UgWEVOX0RPTUNUTF9zY2hlZHVsZXJfb3A6CisrICAgICAgICByZXR1cm4gZmxhc2tf ZG9tY3RsX3NjaGVkdWxlcl9vcChkLCBvcC0+dS5zY2hlZHVsZXJfb3AuY21kKTsKKysKKyAgICAg Y2FzZSBYRU5fRE9NQ1RMX3NldF9leHRfdmNwdWNvbnRleHQ6CisgICAgIGNhc2UgWEVOX0RPTUNU TF9zZXRfdmNwdV9tc3JzOgorICAgICBjYXNlIFhFTl9ET01DVExfc2V0dmNwdWNvbnRleHQ6CitA QCAtMTg4NCw3ICsxODg2LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB4c21fb3BzIF9faW5pdGNv bnN0XworICAgICAuc2VjdXJpdHlfZG9tYWluaW5mbyA9IGZsYXNrX3NlY3VyaXR5X2RvbWFpbmlu Zm8sCisgICAgIC5kb21haW5fY3JlYXRlID0gZmxhc2tfZG9tYWluX2NyZWF0ZSwKKyAgICAgLmdl dGRvbWFpbmluZm8gPSBmbGFza19nZXRkb21haW5pbmZvLAorLSAgICAuZG9tY3RsX3NjaGVkdWxl cl9vcCA9IGZsYXNrX2RvbWN0bF9zY2hlZHVsZXJfb3AsCisgI2lmZGVmIENPTkZJR19TWVNDVEwK KyAgICAgLnN5c2N0bF9zY2hlZHVsZXJfb3AgPSBmbGFza19zeXNjdGxfc2NoZWR1bGVyX29wLAor ICNlbmRpZgoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTE3LnBhdGNoIGIveHNhNDkyLTQuMjEt MTcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTk1NDJkZgotLS0g L2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTE3LnBhdGNoCkBAIC0wLDAgKzEsMTI0IEBACitG cm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitTdWJqZWN0OiBkb21jdGwvWFNN OiBkcm9wIHNoYWRvd19jb250cm9sX29wIGhvb2sKKworSW50ZWdyYXRlIHRoZSBjaGVja2luZyB3 aXRoIHhzbV9kb21jdGwoKSwgbm93IHRoYXQgaXQgaGFzIHRoZSBmdWxsIG9wCitzdHJ1Y3QgcGFz c2VkLiBBcyBhIHBvc2l0aXZlIHNpZGUgZWZmZWN0LCBwZXJtaXNzaW9ucyBhcmUgdGhlbiBjaGVj a2VkIGF0Cit0aGUgc2FtZSBlYXJseSBwb2ludCB3aXRoIGFuZCB3aXRob3V0IEZsYXNrLgorCitU aGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KKworU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgorQWNrZWQtYnk6IERhbmllbCBQLiBTbWl0aCA8ZHBzbWl0aEBhcGVy dHVzc29sdXRpb25zLmNvbT4KKworLS0tIGEveGVuL2FyY2gveDg2L21tL3BhZ2luZy5jCisrKysg Yi94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMKK0BAIC02NzcsMTAgKzY3Nyw2IEBAIGludCBwYWdp bmdfZG9tY3RsKHN0cnVjdCBkb21haW4gKmQsIHN0cnUKKyAgICAgICAgIHJldHVybiAtRUJVU1k7 CisgICAgIH0KKyAKKy0gICAgcmMgPSB4c21fc2hhZG93X2NvbnRyb2woWFNNX0hPT0ssIGQsIHNj LT5vcCk7CistICAgIGlmICggcmMgKQorLSAgICAgICAgcmV0dXJuIHJjOworLQorICAgICAvKiBD b2RlIHRvIGhhbmRsZSBsb2ctZGlydHkuIE5vdGUgdGhhdCBzb21lIGxvZyBkaXJ0eSBvcGVyYXRp b25zCisgICAgICAqIHBpZ2d5LWJhY2sgb24gc2hhZG93IG9wZXJhdGlvbnMuIEZvciBleGFtcGxl LCB3aGVuCisgICAgICAqIFhFTl9ET01DVExfU0hBRE9XX09QX09GRiBpcyBjYWxsZWQsIGl0IGZp cnN0IGNoZWNrcyB3aGV0aGVyIGxvZyBkaXJ0eQorLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15 LmgKKysrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCitAQCAtNjgyLDEzICs2ODIsNiBAQCBz dGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2RvX21jCisgICAgIHJldHVybiB4c21f ZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIE5VTEwpOworIH0KKyAKKy1z dGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX3NoYWRvd19jb250cm9sKAorLSAgICBY U01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3Qgb3ApCisteworLSAgICBY U01fQVNTRVJUX0FDVElPTihYU01fSE9PSyk7CistICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rp b24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOworLX0KKy0KKyBzdGF0aWMgWFNNX0lOTElO RSBpbnQgY2ZfY2hlY2sgeHNtX21lbV9zaGFyaW5nX29wKAorICAgICBYU01fREVGQVVMVF9BUkcg c3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFpbiAqY2QsIGludCBvcCkKKyB7CistLS0gYS94 ZW4vaW5jbHVkZS94c20veHNtLmgKKysrKyBiL3hlbi9pbmNsdWRlL3hzbS94c20uaAorQEAgLTE3 Miw3ICsxNzIsNiBAQCBzdHJ1Y3QgeHNtX29wcyB7CisgCisgI2lmZGVmIENPTkZJR19YODYKKyAg ICAgaW50ICgqZG9fbWNhKSh2b2lkKTsKKy0gICAgaW50ICgqc2hhZG93X2NvbnRyb2wpKHN0cnVj dCBkb21haW4gKmQsIHVpbnQzMl90IG9wKTsKKyAgICAgaW50ICgqbWVtX3NoYXJpbmdfb3ApKHN0 cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3ApOworICAgICBpbnQgKCph cGljKShzdHJ1Y3QgZG9tYWluICpkLCBpbnQgY21kKTsKKyAgICAgaW50ICgqbWFjaGluZV9tZW1v cnlfbWFwKSh2b2lkKTsKK0BAIC02ODAsMTIgKzY3OSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhz bV9kb19tY2EoeHNtX2RlZmF1bHQKKyAgICAgcmV0dXJuIGFsdGVybmF0aXZlX2NhbGwoeHNtX29w cy5kb19tY2EpOworIH0KKyAKKy1zdGF0aWMgaW5saW5lIGludCB4c21fc2hhZG93X2NvbnRyb2wo CistICAgIHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBvcCkK Ky17CistICAgIHJldHVybiBhbHRlcm5hdGl2ZV9jYWxsKHhzbV9vcHMuc2hhZG93X2NvbnRyb2ws IGQsIG9wKTsKKy19CistCisgc3RhdGljIGlubGluZSBpbnQgeHNtX21lbV9zaGFyaW5nX29wKAor ICAgICB4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFpbiAq Y2QsIGludCBvcCkKKyB7CistLS0gYS94ZW4veHNtL2R1bW15LmMKKysrKyBiL3hlbi94c20vZHVt bXkuYworQEAgLTEzMCw3ICsxMzAsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHhzbV9vcHMgX19p bml0Y29uc3RfCisgICAgIC5wbGF0Zm9ybV9vcCAgICAgICAgICAgICAgICAgICA9IHhzbV9wbGF0 Zm9ybV9vcCwKKyAjaWZkZWYgQ09ORklHX1g4NgorICAgICAuZG9fbWNhICAgICAgICAgICAgICAg ICAgICAgICAgPSB4c21fZG9fbWNhLAorLSAgICAuc2hhZG93X2NvbnRyb2wgICAgICAgICAgICAg ICAgPSB4c21fc2hhZG93X2NvbnRyb2wsCisgICAgIC5tZW1fc2hhcmluZ19vcCAgICAgICAgICAg ICAgICA9IHhzbV9tZW1fc2hhcmluZ19vcCwKKyAgICAgLmFwaWMgICAgICAgICAgICAgICAgICAg ICAgICAgID0geHNtX2FwaWMsCisgICAgIC5tYWNoaW5lX21lbW9yeV9tYXAgICAgICAgICAgICA9 IHhzbV9tYWNoaW5lX21lbW9yeV9tYXAsCistLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysr KyBiL3hlbi94c20vZmxhc2svaG9va3MuYworQEAgLTQwLDYgKzQwLDcgQEAKKyAKKyAjaWZkZWYg Q09ORklHX1g4NgorICNpbmNsdWRlIDxhc20vcHYvc2hpbS5oPgorK3N0YXRpYyBpbnQgZmxhc2tf c2hhZG93X2NvbnRyb2woc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IG9wKTsKKyAjZWxz ZQorICNkZWZpbmUgcHZfc2hpbSBmYWxzZQorICNlbmRpZgorQEAgLTY5OSwxMCArNzAwLDYgQEAg c3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0CisgICAgIC8qIFRoZXNlIGhh dmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGNvbW1vbi9kb21jdGwuYykgKi8KKyAgICAgY2FzZSBY RU5fRE9NQ1RMX3NldF90YXJnZXQ6CisgCistI2lmZGVmIENPTkZJR19YODYKKy0gICAgLyogVGhl c2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBob29rcyAoYXJjaC94ODYvZG9tY3RsLmMpICovCistICAg IGNhc2UgWEVOX0RPTUNUTF9zaGFkb3dfb3A6CistI2VuZGlmCisgI2lmZGVmIENPTkZJR19IQVNf UEFTU1RIUk9VR0gKKyAgICAgLyoKKyAgICAgICogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBo b29rcworQEAgLTc4Nyw2ICs3ODQsMTEgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21j dGwoc3RydWN0CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfYWRkcmVzc19zaXplOgorICAgICAg ICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfRE9NQUlOLCBET01BSU5fX0dF VEFERFJTSVpFKTsKKyAKKysjaWZkZWYgQ09ORklHX1g4NgorKyAgICBjYXNlIFhFTl9ET01DVExf c2hhZG93X29wOgorKyAgICAgICAgcmV0dXJuIGZsYXNrX3NoYWRvd19jb250cm9sKGQsIG9wLT51 LnNoYWRvd19vcC5vcCk7CisrI2VuZGlmCisrCisgICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1fc2hh cmluZ19vcDoKKyAgICAgICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hW TSwgSFZNX19NRU1fU0hBUklORyk7CisgCitAQCAtMTYwMyw3ICsxNjA1LDcgQEAgc3RhdGljIGlu dCBjZl9jaGVjayBmbGFza19kb19tY2Eodm9pZCkKKyAgICAgcmV0dXJuIGRvbWFpbl9oYXNfeGVu KGN1cnJlbnQtPmRvbWFpbiwgWEVOX19NQ0FfT1ApOworIH0KKyAKKy1zdGF0aWMgaW50IGNmX2No ZWNrIGZsYXNrX3NoYWRvd19jb250cm9sKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG9wKQor K3N0YXRpYyBpbnQgZmxhc2tfc2hhZG93X2NvbnRyb2woc3RydWN0IGRvbWFpbiAqZCwgdW5zaWdu ZWQgaW50IG9wKQorIHsKKyAgICAgdWludDMyX3QgcGVybTsKKyAKK0BAIC0xOTk5LDcgKzIwMDEs NiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHhzbV9vcHMgX19pbml0Y29uc3RfCisgICAgIC5wbGF0 Zm9ybV9vcCA9IGZsYXNrX3BsYXRmb3JtX29wLAorICNpZmRlZiBDT05GSUdfWDg2CisgICAgIC5k b19tY2EgPSBmbGFza19kb19tY2EsCistICAgIC5zaGFkb3dfY29udHJvbCA9IGZsYXNrX3NoYWRv d19jb250cm9sLAorICAgICAubWVtX3NoYXJpbmdfb3AgPSBmbGFza19tZW1fc2hhcmluZ19vcCwK KyAgICAgLmFwaWMgPSBmbGFza19hcGljLAorICAgICAubWFjaGluZV9tZW1vcnlfbWFwID0gZmxh c2tfbWFjaGluZV9tZW1vcnlfbWFwLAoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTE4LnBhdGNo IGIveHNhNDkyLTQuMjEtMTgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMWQ4MjEyNAotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTE4LnBhdGNoCkBAIC0w LDAgKzEsOTQgQEAKK0Zyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK1N1Ympl Y3Q6IGRvbWN0bDogaGFuZGxlIFhFTl9ET01DVExfZ2V0X2RldmljZV9ncm91cCB3aXRob3V0IGFj cXVpcmluZyBkb21jdGwgbG9jaworCitpb21tdV9nZXRfZGV2aWNlX2dyb3VwKCkgdXNlcyBpdHMg b3duIGxvY2tpbmcuIFRodXMsIHdpdGggY2FsbGVyIHNpZGUKK2xvY2tpbmcgaXJyZWxldmFudCwg aXQgY2FuIGFzIHdlbGwgYmUgY2FsbGVkIHdpdGggdGhlIGRvbWN0bCBsb2NrIG5vdAoraGVsZC4K KworTW92ZSB0aGUgaGFuZGxpbmcgbm90IG9ubHkgYWhlYWQgb2YgYWNxdWlyaW5nIHRoZSBsb2Nr LCBidXQgYWxzbyBhaGVhZAorb2YgdGhlIFhTTSBjaGVjaywgbGV2ZXJhZ2luZyB0aGF0IHRoZSBz dWItb3AgaGFzIGl0cyBvd24gaG9vay4KKworVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1Np Z25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK0Fja2VkLWJ5OiBE YW5pZWwgUC4gU21pdGggPGRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+CitSZXZpZXdlZC1i eTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CisKKy0tLSBhL3hlbi9j b21tb24vZG9tY3RsLmMKKysrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKK0BAIC01MTMsNiArNTEz LDEwIEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKKyAgICAgICAg IC8qIE90aGVyIHN1Yi1vcHMgaGFuZGxlZCBmdXJ0aGVyIGRvd24uICovCisgICAgICAgICBicmVh azsKKyAKKysgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kZXZpY2VfZ3JvdXA6CisrICAgICAgICBy ZXQgPSBpb21tdV9kb19kb21jdGwob3AsIGQsIHVfZG9tY3RsKTsKKysgICAgICAgIGdvdG8gZG9t Y3RsX291dF91bmxvY2tfZG9tb25seTsKKysKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9w ZXJtaXNzaW9uOgorICAgICBjYXNlIFhFTl9ET01DVExfaW9wb3J0X21hcHBpbmc6CisgICAgIGNh c2UgWEVOX0RPTUNUTF9nc2lfcGVybWlzc2lvbjoKK0BAIC05MTgsNyArOTIyLDYgQEAgbG9uZyBk b19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICBjYXNlIFhFTl9ET01DVExf YXNzaWduX2RldmljZToKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3Rlc3RfYXNzaWduX2RldmljZToK KyAgICAgY2FzZSBYRU5fRE9NQ1RMX2RlYXNzaWduX2RldmljZToKKy0gICAgY2FzZSBYRU5fRE9N Q1RMX2dldF9kZXZpY2VfZ3JvdXA6CisgICAgICAgICByZXQgPSBpb21tdV9kb19kb21jdGwob3As IGQsIHVfZG9tY3RsKTsKKyAgICAgICAgIGJyZWFrOworIAorLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvcGNpLmMKKysrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCitAQCAt MTYyMCw3ICsxNjIwLDcgQEAgc3RhdGljIGludCBpb21tdV9nZXRfZGV2aWNlX2dyb3VwKAorICAg ICAgICAgaWYgKCAocGRldi0+c2VnICE9IHNlZykgfHwgKChiID09IGJ1cykgJiYgKGRmID09IGRl dmZuKSkgKQorICAgICAgICAgICAgIGNvbnRpbnVlOworIAorLSAgICAgICAgaWYgKCB4c21fZ2V0 X2RldmljZV9ncm91cChYU01fSE9PSywgKHNlZyA8PCAxNikgfCAoYiA8PCA4KSB8IGRmKSApCisr ICAgICAgICBpZiAoIHhzbV9nZXRfZGV2aWNlX2dyb3VwKFhTTV9QUklWLCAoc2VnIDw8IDE2KSB8 IChiIDw8IDgpIHwgZGYpICkKKyAgICAgICAgICAgICBjb250aW51ZTsKKyAKKyAgICAgICAgIHNk ZXZfaWQgPSBpb21tdV9jYWxsKG9wcywgZ2V0X2RldmljZV9ncm91cF9pZCwgc2VnLCBiLCBkZik7 CitAQCAtMTY5MCw3ICsxNjkwLDcgQEAgaW50IGlvbW11X2RvX3BjaV9kb21jdGwoCisgICAgICAg ICB1MzIgbWF4X3NkZXZzOworICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50MzIpIHNk ZXZzOworIAorLSAgICAgICAgcmV0ID0geHNtX2dldF9kZXZpY2VfZ3JvdXAoWFNNX0hPT0ssIGRv bWN0bC0+dS5nZXRfZGV2aWNlX2dyb3VwLm1hY2hpbmVfc2JkZik7CisrICAgICAgICByZXQgPSB4 c21fZ2V0X2RldmljZV9ncm91cChYU01fUFJJViwgZG9tY3RsLT51LmdldF9kZXZpY2VfZ3JvdXAu bWFjaGluZV9zYmRmKTsKKyAgICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgICAgICBicmVhazsK KyAKKy0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKysgYi94ZW4vaW5jbHVkZS94c20v ZHVtbXkuaAorQEAgLTE2Miw2ICsxNjIsNyBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hl Y2sgeHNtX2RvbWN0CisgICAgIHsKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxOgor ICAgICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9tYWluaW5mbzoKKysgICAgY2FzZSBYRU5fRE9NQ1RM X2dldF9kZXZpY2VfZ3JvdXA6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRl OgorICAgICBjYXNlIFhFTl9ET01DVExfZ3NpX3Blcm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RP TUNUTF9pb21lbV9wZXJtaXNzaW9uOgorQEAgLTQwMSw3ICs0MDIsNyBAQCBzdGF0aWMgWFNNX0lO TElORSBpbnQgY2ZfY2hlY2sgeHNtX2dldF92Cisgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2No ZWNrIHhzbV9nZXRfZGV2aWNlX2dyb3VwKAorICAgICBYU01fREVGQVVMVF9BUkcgdWludDMyX3Qg bWFjaGluZV9iZGYpCisgeworLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fSE9PSyk7CisrICAg IFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9QUklWKTsKKyAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2Fj dGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgTlVMTCk7CisgfQorIAorLS0tIGEveGVuL3hz bS9mbGFzay9ob29rcy5jCisrKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKK0BAIC02ODYsNiAr Njg2LDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0CisgICAgIC8q IFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgYW5kIGRvbid0IG1ha2UgaXQgaGVyZS4g Ki8KKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxOgorICAgICBjYXNlIFhFTl9ET01D VExfZ2V0ZG9tYWluaW5mbzoKKysgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kZXZpY2VfZ3JvdXA6 CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgorICAgICBjYXNlIFhFTl9E T01DVExfZ3NpX3Blcm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb21lbV9wZXJtaXNz aW9uOgorQEAgLTcwNSw3ICs3MDYsNiBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0 bChzdHJ1Y3QKKyAgICAgICogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBob29rcworICAgICAg KiAoZHJpdmVycy9wYXNzdGhyb3VnaC97cGNpLGRldmljZV90cmVlLmMpCisgICAgICAqLworLSAg ICBjYXNlIFhFTl9ET01DVExfZ2V0X2RldmljZV9ncm91cDoKKyAgICAgY2FzZSBYRU5fRE9NQ1RM X3Rlc3RfYXNzaWduX2RldmljZToKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2Fzc2lnbl9kZXZpY2U6 CisgICAgIGNhc2UgWEVOX0RPTUNUTF9kZWFzc2lnbl9kZXZpY2U6CgpkaWZmIC0tZ2l0IGEveHNh NDkyLTQuMjEtMTkucGF0Y2ggYi94c2E0OTItNC4yMS0xOS5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi41NGExMTE3Ci0tLSAvZGV2L251bGwKKysrIGIveHNhNDkyLTQu MjEtMTkucGF0Y2gKQEAgLTAsMCArMSwzNzggQEAKK0Zyb206IEphbiBCZXVsaWNoIDxqYmV1bGlj aEBzdXNlLmNvbT4KK1N1YmplY3Q6IGRvbWN0bC9YU006IGRyb3AgeyxkZX1hc3NpZ25feyxkdH1k ZXZpY2UgaG9va3MKKworSW50ZWdyYXRlIHRoZSBjaGVja2luZyB3aXRoIHhzbV9kb21jdGwoKS4g QXMgYSBwb3NpdGl2ZSBzaWRlIGVmZmVjdCwKK3Blcm1pc3Npb25zIGFyZSB0aGVuIGNoZWNrZWQg YXQgdGhlIHNhbWUgZWFybHkgcG9pbnQgd2l0aCBhbmQgd2l0aG91dAorRmxhc2suIEFzIHRoZSBE VCBkZXZpY2UgcGF0aCBuZWVkcyBmZXRjaGluZyBlYXJsaWVyIChidXQgbXVzdCBub3QgYmUKK2Rv dWJsZSBmZXRjaGVkKSwgY2FjaGUgaXQgaW4gYSBwcml2YXRlIGZpZWxkIG9mIHRoZSBwdWJsaWMg aW50ZXJmYWNlCitzdHJ1Y3QuCisKK1RoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgorCitTaWduZWQt b2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitBY2tlZC1ieTogRGFuaWVs IFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgorUmV2aWV3ZWQtYnk6IFJv Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgorCistLS0gYS94ZW4vY29tbW9u L2RvbWN0bC5jCisrKysgYi94ZW4vY29tbW9uL2RvbWN0bC5jCitAQCAtMzI1LDYgKzMyNSwxMCBA QCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgIGNhc2UgWEVO X0RPTUNUTF9kZWFzc2lnbl9kZXZpY2U6CisgICAgICAgICBpZiAoIG9wLT5kb21haW4gPT0gRE9N SURfSU8gKQorICAgICAgICAgeworKyNpZmRlZiBDT05GSUdfSEFTX0RFVklDRV9UUkVFX0RJU0NP VkVSWQorKyAgICAgICAgICAgIGlmICggb3AtPnUuYXNzaWduX2RldmljZS5kZXYgPT0gWEVOX0RP TUNUTF9ERVZfRFQgKQorKyAgICAgICAgICAgICAgICBvcC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQu ZGV2ID0gTlVMTDsKKysjZW5kaWYKKyAgICAgICAgICAgICBkID0gZG9tX2lvOworICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgfQorQEAgLTMzMiw2ICszMzYsMTEgQEAgbG9uZyBkb19kb21j dGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAgICAgIHJldHVybiAtRVNSQ0g7 CisgICAgICAgICBmYWxsdGhyb3VnaDsKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3Rlc3RfYXNzaWdu X2RldmljZToKKysjaWZkZWYgQ09ORklHX0hBU19ERVZJQ0VfVFJFRV9ESVNDT1ZFUlkKKysgICAg ICAgIGlmICggb3AtPnUuYXNzaWduX2RldmljZS5kZXYgPT0gWEVOX0RPTUNUTF9ERVZfRFQgKQor KyAgICAgICAgICAgIG9wLT51LmFzc2lnbl9kZXZpY2UudS5kdC5kZXYgPSBOVUxMOworKyAgICAg ICAgZmFsbHRocm91Z2g7CisrI2VuZGlmCisgICAgIGNhc2UgWEVOX0RPTUNUTF92bV9ldmVudF9v cDoKKyAgICAgICAgIGlmICggb3AtPmRvbWFpbiA9PSBET01JRF9JTlZBTElEICkKKyAgICAgICAg IHsKKy0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2RldmljZV90cmVlLmMKKysrKyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2RldmljZV90cmVlLmMKK0BAIC0zNDAsMTUgKzM0MCwxNSBA QCBpbnQgaW9tbXVfZG9fZHRfZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsCisgICAgICAgICBpZiAo IChkICYmIGQtPmlzX2R5aW5nKSB8fCBkb21jdGwtPnUuYXNzaWduX2RldmljZS5mbGFncyApCisg ICAgICAgICAgICAgYnJlYWs7CisgCistICAgICAgICByZXQgPSBkdF9maW5kX25vZGVfYnlfZ3Bh dGgoZG9tY3RsLT51LmFzc2lnbl9kZXZpY2UudS5kdC5wYXRoLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQuc2l6ZSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGV2KTsKKy0gICAgICAgIGlmICgg cmV0ICkKKy0gICAgICAgICAgICBicmVhazsKKy0KKy0gICAgICAgIHJldCA9IHhzbV9hc3NpZ25f ZHRkZXZpY2UoWFNNX0hPT0ssIGQsIGR0X25vZGVfZnVsbF9uYW1lKGRldikpOworLSAgICAgICAg aWYgKCByZXQgKQorLSAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgZGV2ID0gZG9tY3RsLT51 LmFzc2lnbl9kZXZpY2UudS5kdC5kZXY7CisrICAgICAgICBpZiAoICFkZXYgKQorKyAgICAgICAg eworKyAgICAgICAgICAgIHJldCA9IGR0X2ZpbmRfbm9kZV9ieV9ncGF0aChkb21jdGwtPnUuYXNz aWduX2RldmljZS51LmR0LnBhdGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQuc2l6ZSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRldik7CisrICAgICAgICAgICAgaWYgKCByZXQg KQorKyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgIH0KKyAKKyAgICAgICAgIGlmICgg ZG9tY3RsLT5jbWQgPT0gWEVOX0RPTUNUTF90ZXN0X2Fzc2lnbl9kZXZpY2UgKQorICAgICAgICAg eworQEAgLTM5NiwxNSArMzk2LDE1IEBAIGludCBpb21tdV9kb19kdF9kb21jdGwoc3RydWN0IHhl bl9kb21jdGwKKyAgICAgICAgIGlmICggZG9tY3RsLT51LmFzc2lnbl9kZXZpY2UuZmxhZ3MgKQor ICAgICAgICAgICAgIGJyZWFrOworIAorLSAgICAgICAgcmV0ID0gZHRfZmluZF9ub2RlX2J5X2dw YXRoKGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQucGF0aCwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkb21jdGwtPnUuYXNzaWduX2RldmljZS51LmR0LnNpemUsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRldik7CistICAgICAgICBpZiAo IHJldCApCistICAgICAgICAgICAgYnJlYWs7CistCistICAgICAgICByZXQgPSB4c21fZGVhc3Np Z25fZHRkZXZpY2UoWFNNX0hPT0ssIGQsIGR0X25vZGVfZnVsbF9uYW1lKGRldikpOworLSAgICAg ICAgaWYgKCByZXQgKQorLSAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgZGV2ID0gZG9tY3Rs LT51LmFzc2lnbl9kZXZpY2UudS5kdC5kZXY7CisrICAgICAgICBpZiAoICFkZXYgKQorKyAgICAg ICAgeworKyAgICAgICAgICAgIHJldCA9IGR0X2ZpbmRfbm9kZV9ieV9ncGF0aChkb21jdGwtPnUu YXNzaWduX2RldmljZS51LmR0LnBhdGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQuc2l6ZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRldik7CisrICAgICAgICAgICAgaWYgKCBy ZXQgKQorKyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgIH0KKyAKKyAgICAgICAgIGlm ICggZCA9PSBkb21faW8gKQorICAgICAgICAgeworLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvcGNpLmMKKysrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCitAQCAtMTc0MCwx MCArMTc0MCw2IEBAIGludCBpb21tdV9kb19wY2lfZG9tY3RsKAorIAorICAgICAgICAgbWFjaGlu ZV9zYmRmID0gZG9tY3RsLT51LmFzc2lnbl9kZXZpY2UudS5wY2kubWFjaGluZV9zYmRmOworIAor LSAgICAgICAgcmV0ID0geHNtX2Fzc2lnbl9kZXZpY2UoWFNNX0hPT0ssIGQsIG1hY2hpbmVfc2Jk Zik7CistICAgICAgICBpZiAoIHJldCApCistICAgICAgICAgICAgYnJlYWs7CistCisgICAgICAg ICBzZWcgPSBtYWNoaW5lX3NiZGYgPj4gMTY7CisgICAgICAgICBidXMgPSBQQ0lfQlVTKG1hY2hp bmVfc2JkZik7CisgICAgICAgICBkZXZmbiA9IFBDSV9ERVZGTihtYWNoaW5lX3NiZGYpOworQEAg LTE3ODUsMTAgKzE3ODEsNiBAQCBpbnQgaW9tbXVfZG9fcGNpX2RvbWN0bCgKKyAKKyAgICAgICAg IG1hY2hpbmVfc2JkZiA9IGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUucGNpLm1hY2hpbmVfc2Jk ZjsKKyAKKy0gICAgICAgIHJldCA9IHhzbV9kZWFzc2lnbl9kZXZpY2UoWFNNX0hPT0ssIGQsIG1h Y2hpbmVfc2JkZik7CistICAgICAgICBpZiAoIHJldCApCistICAgICAgICAgICAgYnJlYWs7Cist CisgICAgICAgICBzZWcgPSBtYWNoaW5lX3NiZGYgPj4gMTY7CisgICAgICAgICBidXMgPSBQQ0lf QlVTKG1hY2hpbmVfc2JkZik7CisgICAgICAgICBkZXZmbiA9IFBDSV9ERVZGTihtYWNoaW5lX3Ni ZGYpOworLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCisrKysgYi94ZW4vaW5jbHVk ZS9wdWJsaWMvZG9tY3RsLmgKK0BAIC01NzUsNyArNTc1LDEwIEBAIHN0cnVjdCB4ZW5fZG9tY3Rs X2Fzc2lnbl9kZXZpY2UgeworICAgICAgICAgfSBwY2k7CisgICAgICAgICBzdHJ1Y3QgeworICAg ICAgICAgICAgIHVpbnQzMl90IHNpemU7IC8qIExlbmd0aCBvZiB0aGUgcGF0aCAqLworLSAgICAg ICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoY2hhcikgcGF0aDsgLyogcGF0aCB0byB0aGUgZGV2 aWNlIHRyZWUgbm9kZSAqLworKyAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoY2hhcikg cGF0aDsgLyogUGF0aCB0byB0aGUgZGV2aWNlIHRyZWUgbm9kZSAqLworKyNpZmRlZiBfX1hFTl9f CisrICAgICAgICAgICAgc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXY7IC8qIFJlc29sdmVkIGRl dmljZSBub2RlIG9mIHRoZSBhYm92ZSAqLworKyNlbmRpZgorICAgICAgICAgfSBkdDsKKyAgICAg fSB1OworIH07CistLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysrIGIveGVuL2luY2x1 ZGUveHNtL2R1bW15LmgKK0BAIC00MDUsNDAgKzQwNSw4IEBAIHN0YXRpYyBYU01fSU5MSU5FIGlu dCBjZl9jaGVjayB4c21fZ2V0X2QKKyAgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1BSSVYpOwor ICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBO VUxMKTsKKyB9CistCistc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9hc3NpZ25f ZGV2aWNlKAorLSAgICBYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3Qg bWFjaGluZV9iZGYpCisteworLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fSE9PSyk7CistICAg IHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOwor LX0KKy0KKy1zdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2RlYXNzaWduX2Rldmlj ZSgKKy0gICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG1hY2hp bmVfYmRmKQorLXsKKy0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOworLSAgICByZXR1 cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKKy19Cist CisgI2VuZGlmIC8qIEhBU19QQVNTVEhST1VHSCAmJiBIQVNfUENJICovCisgCistI2lmIGRlZmlu ZWQoQ09ORklHX0hBU19QQVNTVEhST1VHSCkgJiYgZGVmaW5lZChDT05GSUdfSEFTX0RFVklDRV9U UkVFX0RJU0NPVkVSWSkKKy1zdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2Fzc2ln bl9kdGRldmljZSgKKy0gICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIGNvbnN0 IGNoYXIgKmR0cGF0aCkKKy17CistICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKKy0g ICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7 CistfQorLQorLXN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZGVhc3NpZ25fZHRk ZXZpY2UoCistICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBjaGFy ICpkdHBhdGgpCisteworLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fSE9PSyk7CistICAgIHJl dHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOworLX0K Ky0KKy0jZW5kaWYgLyogSEFTX1BBU1NUSFJPVUdIICYmIEhBU19ERVZJQ0VfVFJFRV9ESVNDT1ZF UlkgKi8KKy0KKyBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX3Jlc291cmNlX3Bs dWdfY29yZShYU01fREVGQVVMVF9WT0lEKQorIHsKKyAgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNN X0hPT0spOworLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5oCisrKysgYi94ZW4vaW5jbHVkZS94 c20veHNtLmgKK0BAIC0xMjQsMTMgKzEyNCw2IEBAIHN0cnVjdCB4c21fb3BzIHsKKyAKKyAjaWYg ZGVmaW5lZChDT05GSUdfSEFTX1BBU1NUSFJPVUdIKSAmJiBkZWZpbmVkKENPTkZJR19IQVNfUENJ KQorICAgICBpbnQgKCpnZXRfZGV2aWNlX2dyb3VwKSh1aW50MzJfdCBtYWNoaW5lX2JkZik7Cist ICAgIGludCAoKmFzc2lnbl9kZXZpY2UpKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG1hY2hp bmVfYmRmKTsKKy0gICAgaW50ICgqZGVhc3NpZ25fZGV2aWNlKShzdHJ1Y3QgZG9tYWluICpkLCB1 aW50MzJfdCBtYWNoaW5lX2JkZik7CistI2VuZGlmCistCistI2lmIGRlZmluZWQoQ09ORklHX0hB U19QQVNTVEhST1VHSCkgJiYgZGVmaW5lZChDT05GSUdfSEFTX0RFVklDRV9UUkVFX0RJU0NPVkVS WSkKKy0gICAgaW50ICgqYXNzaWduX2R0ZGV2aWNlKShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBj aGFyICpkdHBhdGgpOworLSAgICBpbnQgKCpkZWFzc2lnbl9kdGRldmljZSkoc3RydWN0IGRvbWFp biAqZCwgY29uc3QgY2hhciAqZHRwYXRoKTsKKyAjZW5kaWYKKyAKKyAgICAgaW50ICgqcmVzb3Vy Y2VfcGx1Z19jb3JlKSh2b2lkKTsKK0BAIC01MzMsMzUgKzUyNiw4IEBAIHN0YXRpYyBpbmxpbmUg aW50IHhzbV9nZXRfZGV2aWNlX2dyb3VwKHgKKyB7CisgICAgIHJldHVybiBhbHRlcm5hdGl2ZV9j YWxsKHhzbV9vcHMuZ2V0X2RldmljZV9ncm91cCwgbWFjaGluZV9iZGYpOworIH0KKy0KKy1zdGF0 aWMgaW5saW5lIGludCB4c21fYXNzaWduX2RldmljZSgKKy0gICAgeHNtX2RlZmF1bHRfdCBkZWYs IHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG1hY2hpbmVfYmRmKQorLXsKKy0gICAgcmV0dXJu IGFsdGVybmF0aXZlX2NhbGwoeHNtX29wcy5hc3NpZ25fZGV2aWNlLCBkLCBtYWNoaW5lX2JkZik7 CistfQorLQorLXN0YXRpYyBpbmxpbmUgaW50IHhzbV9kZWFzc2lnbl9kZXZpY2UoCistICAgIHhz bV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBtYWNoaW5lX2JkZikK Ky17CistICAgIHJldHVybiBhbHRlcm5hdGl2ZV9jYWxsKHhzbV9vcHMuZGVhc3NpZ25fZGV2aWNl LCBkLCBtYWNoaW5lX2JkZik7CistfQorICNlbmRpZiAvKiBIQVNfUEFTU1RIUk9VR0ggJiYgSEFT X1BDSSkgKi8KKyAKKy0jaWYgZGVmaW5lZChDT05GSUdfSEFTX1BBU1NUSFJPVUdIKSAmJiBkZWZp bmVkKENPTkZJR19IQVNfREVWSUNFX1RSRUVfRElTQ09WRVJZKQorLXN0YXRpYyBpbmxpbmUgaW50 IHhzbV9hc3NpZ25fZHRkZXZpY2UoCistICAgIHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9t YWluICpkLCBjb25zdCBjaGFyICpkdHBhdGgpCisteworLSAgICByZXR1cm4gYWx0ZXJuYXRpdmVf Y2FsbCh4c21fb3BzLmFzc2lnbl9kdGRldmljZSwgZCwgZHRwYXRoKTsKKy19CistCistc3RhdGlj IGlubGluZSBpbnQgeHNtX2RlYXNzaWduX2R0ZGV2aWNlKAorLSAgICB4c21fZGVmYXVsdF90IGRl Ziwgc3RydWN0IGRvbWFpbiAqZCwgY29uc3QgY2hhciAqZHRwYXRoKQorLXsKKy0gICAgcmV0dXJu IGFsdGVybmF0aXZlX2NhbGwoeHNtX29wcy5kZWFzc2lnbl9kdGRldmljZSwgZCwgZHRwYXRoKTsK Ky19CistCistI2VuZGlmIC8qIEhBU19QQVNTVEhST1VHSCAmJiBIQVNfREVWSUNFX1RSRUVfRElT Q09WRVJZICovCistCisgc3RhdGljIGlubGluZSBpbnQgeHNtX3Jlc291cmNlX3BsdWdfcGNpKHhz bV9kZWZhdWx0X3QgZGVmLCB1aW50MzJfdCBtYWNoaW5lX2JkZikKKyB7CisgICAgIHJldHVybiBh bHRlcm5hdGl2ZV9jYWxsKHhzbV9vcHMucmVzb3VyY2VfcGx1Z19wY2ksIG1hY2hpbmVfYmRmKTsK Ky0tLSBhL3hlbi94c20vZHVtbXkuYworKysrIGIveGVuL3hzbS9kdW1teS5jCitAQCAtODEsMTMg KzgxLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB4c21fb3BzIF9faW5pdGNvbnN0XworIAorICNp ZiBkZWZpbmVkKENPTkZJR19IQVNfUEFTU1RIUk9VR0gpICYmIGRlZmluZWQoQ09ORklHX0hBU19Q Q0kpCisgICAgIC5nZXRfZGV2aWNlX2dyb3VwICAgICAgICAgICAgICA9IHhzbV9nZXRfZGV2aWNl X2dyb3VwLAorLSAgICAuYXNzaWduX2RldmljZSAgICAgICAgICAgICAgICAgPSB4c21fYXNzaWdu X2RldmljZSwKKy0gICAgLmRlYXNzaWduX2RldmljZSAgICAgICAgICAgICAgID0geHNtX2RlYXNz aWduX2RldmljZSwKKy0jZW5kaWYKKy0KKy0jaWYgZGVmaW5lZChDT05GSUdfSEFTX1BBU1NUSFJP VUdIKSAmJiBkZWZpbmVkKENPTkZJR19IQVNfREVWSUNFX1RSRUVfRElTQ09WRVJZKQorLSAgICAu YXNzaWduX2R0ZGV2aWNlICAgICAgICAgICAgICAgPSB4c21fYXNzaWduX2R0ZGV2aWNlLAorLSAg ICAuZGVhc3NpZ25fZHRkZXZpY2UgICAgICAgICAgICAgPSB4c21fZGVhc3NpZ25fZHRkZXZpY2Us CisgI2VuZGlmCisgCisgICAgIC5yZXNvdXJjZV9wbHVnX2NvcmUgICAgICAgICAgICA9IHhzbV9y ZXNvdXJjZV9wbHVnX2NvcmUsCistLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrKyBiL3hl bi94c20vZmxhc2svaG9va3MuYworQEAgLTQ1LDYgKzQ1LDE3IEBAIHN0YXRpYyBpbnQgZmxhc2tf c2hhZG93X2NvbnRyb2woc3RydWN0IGQKKyAjZGVmaW5lIHB2X3NoaW0gZmFsc2UKKyAjZW5kaWYK KyAKKysjaWZkZWYgQ09ORklHX0hBU19QQVNTVEhST1VHSAorKyNpZmRlZiBDT05GSUdfSEFTX1BD SQorK3N0YXRpYyBpbnQgZmxhc2tfYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNp Z25lZCBpbnQgbWFjaGluZV9iZGYpOworK3N0YXRpYyBpbnQgZmxhc2tfZGVhc3NpZ25fZGV2aWNl KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBtYWNoaW5lX2JkZik7CisrI2VuZGlmCisr I2lmZGVmIENPTkZJR19IQVNfREVWSUNFX1RSRUVfRElTQ09WRVJZCisrc3RhdGljIGludCBmbGFz a19hc3NpZ25fZHRkZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgY29uc3QgY2hhciAqZHRwYXRoKTsK KytzdGF0aWMgaW50IGZsYXNrX2RlYXNzaWduX2R0ZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIGNv bnN0IGNoYXIgKmR0cGF0aCk7CisrI2VuZGlmCisrI2VuZGlmIC8qIENPTkZJR19IQVNfUEFTU1RI Uk9VR0ggKi8KKysKKyBzdGF0aWMgdWludDMyX3QgZG9tYWluX3NpZChjb25zdCBzdHJ1Y3QgZG9t YWluICpkb20pCisgeworICAgICBzdHJ1Y3QgZG9tYWluX3NlY3VyaXR5X3N0cnVjdCAqZHNlYyA9 IGRvbS0+c3NpZDsKK0BAIC03MDAsMTYgKzcxMSw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxh c2tfZG9tY3RsKHN0cnVjdAorIAorICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhv b2tzIChjb21tb24vZG9tY3RsLmMpICovCisgICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRfdGFyZ2V0 OgorLQorLSNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdICistICAgIC8qCistICAgICAqIFRo ZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MKKy0gICAgICogKGRyaXZlcnMvcGFzc3Rocm91 Z2gve3BjaSxkZXZpY2VfdHJlZS5jKQorLSAgICAgKi8KKy0gICAgY2FzZSBYRU5fRE9NQ1RMX3Rl c3RfYXNzaWduX2RldmljZToKKy0gICAgY2FzZSBYRU5fRE9NQ1RMX2Fzc2lnbl9kZXZpY2U6Cist ICAgIGNhc2UgWEVOX0RPTUNUTF9kZWFzc2lnbl9kZXZpY2U6CistI2VuZGlmCisgICAgICAgICBy ZXR1cm4gMDsKKyAKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2Rlc3Ryb3lkb21haW46CitAQCAtNzg5 LDYgKzc5MCw0OSBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKKyAg ICAgICAgIHJldHVybiBmbGFza19zaGFkb3dfY29udHJvbChkLCBvcC0+dS5zaGFkb3dfb3Aub3Ap OworICNlbmRpZgorIAorKyNpZmRlZiBDT05GSUdfSEFTX1BBU1NUSFJPVUdICisrCisrICAgIGNh c2UgWEVOX0RPTUNUTF90ZXN0X2Fzc2lnbl9kZXZpY2U6CisrICAgIGNhc2UgWEVOX0RPTUNUTF9h c3NpZ25fZGV2aWNlOgorKyAgICBjYXNlIFhFTl9ET01DVExfZGVhc3NpZ25fZGV2aWNlOgorKyAg ICAgICAgc3dpdGNoICggb3AtPnUuYXNzaWduX2RldmljZS5kZXYgKQorKyAgICAgICAgeworKyNp ZmRlZiBDT05GSUdfSEFTX1BDSQorKyAgICAgICAgY2FzZSBYRU5fRE9NQ1RMX0RFVl9QQ0k6Cisr ICAgICAgICAgICAgcmV0dXJuIG9wLT5jbWQgIT0gWEVOX0RPTUNUTF9kZWFzc2lnbl9kZXZpY2UK KysgICAgICAgICAgICAgICAgICAgPyBmbGFza19hc3NpZ25fZGV2aWNlKAorKyAgICAgICAgICAg ICAgICAgICAgICAgICBkLCBvcC0+dS5hc3NpZ25fZGV2aWNlLnUucGNpLm1hY2hpbmVfc2JkZikK KysgICAgICAgICAgICAgICAgICAgOiBmbGFza19kZWFzc2lnbl9kZXZpY2UoCisrICAgICAgICAg ICAgICAgICAgICAgICAgIGQsIG9wLT51LmFzc2lnbl9kZXZpY2UudS5wY2kubWFjaGluZV9zYmRm KTsKKysjZW5kaWYKKysKKysjaWZkZWYgQ09ORklHX0hBU19ERVZJQ0VfVFJFRV9ESVNDT1ZFUlkK KysgICAgICAgIGNhc2UgWEVOX0RPTUNUTF9ERVZfRFQ6CisrICAgICAgICB7CisrICAgICAgICAg ICAgc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXY7CisrICAgICAgICAgICAgaW50IHJldCA9IGR0 X2ZpbmRfbm9kZV9ieV9ncGF0aChvcC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQucGF0aCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLT51LmFzc2lnbl9kZXZp Y2UudS5kdC5zaXplLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmRldik7CisrCisrICAgICAgICAgICAgaWYgKCByZXQgKQorKyAgICAgICAgICAgICAgICBy ZXR1cm4gcmV0OworKworKyAgICAgICAgICAgIG9wLT51LmFzc2lnbl9kZXZpY2UudS5kdC5kZXYg PSBkZXY7CisrCisrICAgICAgICAgICAgcmV0dXJuIG9wLT5jbWQgIT0gWEVOX0RPTUNUTF9kZWFz c2lnbl9kZXZpY2UKKysgICAgICAgICAgICAgICAgICAgPyBmbGFza19hc3NpZ25fZHRkZXZpY2Uo ZCwgZHRfbm9kZV9mdWxsX25hbWUoZGV2KSkKKysgICAgICAgICAgICAgICAgICAgOiBmbGFza19k ZWFzc2lnbl9kdGRldmljZShkLCBkdF9ub2RlX2Z1bGxfbmFtZShkZXYpKTsKKysgICAgICAgIH0K KysjZW5kaWYKKysKKysgICAgICAgIGRlZmF1bHQ6CisrICAgICAgICAgICAgLyogVW5rbm93biB0 eXBlLiAqLworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgcmV0dXJu IGF2Y191bmtub3duX3Blcm1pc3Npb24oImFzc2lnbl9kZXZpY2UiLCBvcC0+Y21kKTsKKysKKysj ZW5kaWYgLyogQ09ORklHX0hBU19QQVNTVEhST1VHSCAqLworKworICAgICBjYXNlIFhFTl9ET01D VExfbWVtX3NoYXJpbmdfb3A6CisgICAgICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBT RUNDTEFTU19IVk0sIEhWTV9fTUVNX1NIQVJJTkcpOworIAorQEAgLTE0MTYsNyArMTQ2MCw3IEBA IHN0YXRpYyBpbnQgZmxhc2tfdGVzdF9hc3NpZ25fZGV2aWNlKHVpbnQKKyAgICAgcmV0dXJuIGF2 Y19jdXJyZW50X2hhc19wZXJtKHJzaWQsIFNFQ0NMQVNTX1JFU09VUkNFLCBSRVNPVVJDRV9fU1RB VF9ERVZJQ0UsIE5VTEwpOworIH0KKyAKKy1zdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2Fzc2ln bl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgbWFjaGluZV9iZGYpCisrc3RhdGlj IGludCBmbGFza19hc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG1hY2hp bmVfYmRmKQorIHsKKyAgICAgdWludDMyX3QgZHNpZCwgcnNpZDsKKyAgICAgaW50IHJjID0gLUVQ RVJNOworQEAgLTE0NDYsNyArMTQ5MCw3IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfYXNz aWduX2RldmljZSgKKyAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCByc2lkLCBTRUNDTEFT U19SRVNPVVJDRSwgZHBlcm0sICZhZCk7CisgfQorIAorLXN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxh c2tfZGVhc3NpZ25fZGV2aWNlKAorK3N0YXRpYyBpbnQgZmxhc2tfZGVhc3NpZ25fZGV2aWNlKAor ICAgICBzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBtYWNoaW5lX2JkZikKKyB7CisgICAgIHVp bnQzMl90IHJzaWQ7CitAQCAtMTQ3OCw3ICsxNTIyLDcgQEAgc3RhdGljIGludCBmbGFza190ZXN0 X2Fzc2lnbl9kdGRldmljZShjbworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCk7CisgfQorIAorLXN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfYXNzaWduX2R0ZGV2aWNlKHN0 cnVjdCBkb21haW4gKmQsIGNvbnN0IGNoYXIgKmR0cGF0aCkKKytzdGF0aWMgaW50IGZsYXNrX2Fz c2lnbl9kdGRldmljZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBjaGFyICpkdHBhdGgpCisgewor ICAgICB1aW50MzJfdCBkc2lkLCByc2lkOworICAgICBpbnQgcmMgPSAtRVBFUk07CitAQCAtMTUw OCw3ICsxNTUyLDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19hc3NpZ25fZHRkZXZpYwor ICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIHJzaWQsIFNFQ0NMQVNTX1JFU09VUkNFLCBk cGVybSwgJmFkKTsKKyB9CisgCistc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kZWFzc2lnbl9k dGRldmljZSgKKytzdGF0aWMgaW50IGZsYXNrX2RlYXNzaWduX2R0ZGV2aWNlKAorICAgICBzdHJ1 Y3QgZG9tYWluICpkLCBjb25zdCBjaGFyICpkdHBhdGgpCisgeworICAgICB1aW50MzJfdCByc2lk OworQEAgLTE5ODksMTMgKzIwMzMsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHhzbV9vcHMgX19p bml0Y29uc3RfCisgCisgI2lmIGRlZmluZWQoQ09ORklHX0hBU19QQVNTVEhST1VHSCkgJiYgZGVm aW5lZChDT05GSUdfSEFTX1BDSSkKKyAgICAgLmdldF9kZXZpY2VfZ3JvdXAgPSBmbGFza19nZXRf ZGV2aWNlX2dyb3VwLAorLSAgICAuYXNzaWduX2RldmljZSA9IGZsYXNrX2Fzc2lnbl9kZXZpY2Us CistICAgIC5kZWFzc2lnbl9kZXZpY2UgPSBmbGFza19kZWFzc2lnbl9kZXZpY2UsCistI2VuZGlm CistCistI2lmIGRlZmluZWQoQ09ORklHX0hBU19QQVNTVEhST1VHSCkgJiYgZGVmaW5lZChDT05G SUdfSEFTX0RFVklDRV9UUkVFX0RJU0NPVkVSWSkKKy0gICAgLmFzc2lnbl9kdGRldmljZSA9IGZs YXNrX2Fzc2lnbl9kdGRldmljZSwKKy0gICAgLmRlYXNzaWduX2R0ZGV2aWNlID0gZmxhc2tfZGVh c3NpZ25fZHRkZXZpY2UsCisgI2VuZGlmCisgCisgICAgIC5wbGF0Zm9ybV9vcCA9IGZsYXNrX3Bs YXRmb3JtX29wLAoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTIwLnBhdGNoIGIveHNhNDkyLTQu MjEtMjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmZkMTBhOQot LS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTIwLnBhdGNoCkBAIC0wLDAgKzEsMTIzIEBA CitGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitTdWJqZWN0OiBkb21jdGw6 IGhhbmRsZSBYRU5fRE9NQ1RMX3NldF90YXJnZXQgd2l0aG91dCBhY3F1aXJpbmcgZG9tY3RsIGxv Y2sKKworVGhlIG9ubHkgbG9ja2luZyByZXF1aXJlZCBoZXJlIGlzIHRoYXQgYmV0d2VlbiBjaGVj a2luZyBkLT50YXJnZXQgYW5kCitzZXR0aW5nIGl0LiBUbyBhdm9pZCB0aGUgbmVlZCBmb3IgYW4g ZXhwbGljaXQgbG9jaywgdXNlIGNtcHhjaGdwdHIoKSB0bwordXBkYXRlIGQtPnRhcmdldC4KKwor TW92ZSB0aGUgaGFuZGxpbmcgbm90IG9ubHkgYWhlYWQgb2YgYWNxdWlyaW5nIHRoZSBsb2NrLCBi dXQgYWxzbyBhaGVhZAorb2YgdGhlIFhTTSBjaGVjaywgbGV2ZXJhZ2luZyB0aGF0IHRoZSBzdWIt b3AgaGFzIGl0cyBvd24gaG9vay4KKworVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1NpZ25l ZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK0Fja2VkLWJ5OiBEYW5p ZWwgUC4gU21pdGggPGRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+CitSZXZpZXdlZC1ieTog Um9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CisKKy0tLSBhL3hlbi9jb21t b24vZG9tY3RsLmMKKysrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKK0BAIC01MDUsNiArNTA1LDMw IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKKyAgICAgfQorICNl bmRpZgorIAorKyAgICBjYXNlIFhFTl9ET01DVExfc2V0X3RhcmdldDoKKysgICAgeworKyAgICAg ICAgc3RydWN0IGRvbWFpbiAqZSA9IGdldF9kb21haW5fYnlfaWQob3AtPnUuc2V0X3RhcmdldC50 YXJnZXQpOworKworKyAgICAgICAgcmV0ID0gLUVTUkNIOworKyAgICAgICAgaWYgKCAhZSApCisr ICAgICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OworKworKyAgICAgICAg aWYgKCBkID09IGUgKQorKyAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7CisrICAgICAgICBlbHNl IGlmICggIWlzX2h2bV9kb21haW4oZSkgKQorKyAgICAgICAgICAgIHJldCA9IC1FT1BOT1RTVVBQ OworKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHJldCA9IHhzbV9zZXRfdGFyZ2V0KFhTTV9Q UklWLCBkLCBlKTsKKysKKysgICAgICAgIC8qIEhvbGQgcmVmZXJlbmNlIG9uIEBlIHVudGlsIHdl IGRlc3Ryb3kgQGQuICovCisrICAgICAgICBpZiAoICFyZXQgJiYgY21weGNoZ3B0cigmZC0+dGFy Z2V0LCBOVUxMLCBlKSApCisrICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKKysKKysgICAgICAg IGlmICggcmV0ICkKKysgICAgICAgICAgICBwdXRfZG9tYWluKGUpOworKyAgICAgICAgZ290byBk b21jdGxfb3V0X3VubG9ja19kb21vbmx5OworKyAgICB9CisrCisgICAgIGNhc2UgWEVOX0RPTUNU TF92bV9ldmVudF9vcDoKKyAgICAgICAgIGlmICggb3AtPnUudm1fZXZlbnRfb3Aub3AgPT0gWEVO X1ZNX0VWRU5UX0dFVF9WRVJTSU9OICkKKyAgICAgICAgIHsKK0BAIC04NDQsMzYgKzg2OCw2IEBA IGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKKyAgICAgICAgIGRvbWFp bl9zZXRfdGltZV9vZmZzZXQoZCwgb3AtPnUuc2V0dGltZW9mZnNldC50aW1lX29mZnNldF9zZWNv bmRzKTsKKyAgICAgICAgIGJyZWFrOworIAorLSAgICBjYXNlIFhFTl9ET01DVExfc2V0X3Rhcmdl dDoKKy0gICAgeworLSAgICAgICAgc3RydWN0IGRvbWFpbiAqZTsKKy0KKy0gICAgICAgIHJldCA9 IC1FU1JDSDsKKy0gICAgICAgIGUgPSBnZXRfZG9tYWluX2J5X2lkKG9wLT51LnNldF90YXJnZXQu dGFyZ2V0KTsKKy0gICAgICAgIGlmICggZSA9PSBOVUxMICkKKy0gICAgICAgICAgICBicmVhazsK Ky0KKy0gICAgICAgIHJldCA9IC1FSU5WQUw7CistICAgICAgICBpZiAoIChkID09IGUpIHx8IChk LT50YXJnZXQgIT0gTlVMTCkgKQorLSAgICAgICAgeworLSAgICAgICAgICAgIHB1dF9kb21haW4o ZSk7CistICAgICAgICAgICAgYnJlYWs7CistICAgICAgICB9CistCistICAgICAgICByZXQgPSAt RU9QTk9UU1VQUDsKKy0gICAgICAgIGlmICggaXNfaHZtX2RvbWFpbihlKSApCistICAgICAgICAg ICAgcmV0ID0geHNtX3NldF90YXJnZXQoWFNNX0hPT0ssIGQsIGUpOworLSAgICAgICAgaWYgKCBy ZXQgKQorLSAgICAgICAgeworLSAgICAgICAgICAgIHB1dF9kb21haW4oZSk7CistICAgICAgICAg ICAgYnJlYWs7CistICAgICAgICB9CistCistICAgICAgICAvKiBIb2xkIHJlZmVyZW5jZSBvbiBA ZSB1bnRpbCB3ZSBkZXN0cm95IEBkLiAqLworLSAgICAgICAgZC0+dGFyZ2V0ID0gZTsKKy0gICAg ICAgIGJyZWFrOworLSAgICB9CistCisgICAgIGNhc2UgWEVOX0RPTUNUTF9zdWJzY3JpYmU6Cisg ICAgICAgICBkLT5zdXNwZW5kX2V2dGNobiA9IG9wLT51LnN1YnNjcmliZS5wb3J0OworICAgICAg ICAgYnJlYWs7CistLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysrIGIveGVuL2luY2x1 ZGUveHNtL2R1bW15LmgKK0BAIC0xNTAsNyArMTUwLDcgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50 IGNmX2NoZWNrIHhzbV9zeXNjdAorIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21f c2V0X3RhcmdldCgKKyAgICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHN0cnVj dCBkb21haW4gKmUpCisgeworLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fSE9PSyk7CisrICAg IFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9QUklWKTsKKyAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2Fj dGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgTlVMTCk7CisgfQorIAorQEAgLTE3MCw2ICsx NzAsNyBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2RvbWN0CisgICAgIGNh c2UgWEVOX0RPTUNUTF9pb3BvcnRfcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2ly cV9wZXJtaXNzaW9uOgorICAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6CisrICAg IGNhc2UgWEVOX0RPTUNUTF9zZXRfdGFyZ2V0OgorICAgICBjYXNlIFhFTl9ET01DVExfdW5iaW5k X3B0X2lycToKKyAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgICAgICAgcmV0dXJu IC1FSUxTRVE7CistLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrKyBiL3hlbi94c20vZmxh c2svaG9va3MuYworQEAgLTcwNSwxNCArNzA1LDExIEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxh c2tfZG9tY3RsKHN0cnVjdAorICAgICBjYXNlIFhFTl9ET01DVExfaW9wb3J0X3Blcm1pc3Npb246 CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9N Q1RMX21lbW9yeV9tYXBwaW5nOgorKyAgICBjYXNlIFhFTl9ET01DVExfc2V0X3RhcmdldDoKKyAg ICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6CisgICAgICAgICBBU1NFUlRfVU5SRUFD SEFCTEUoKTsKKyAgICAgICAgIHJldHVybiAtRUlMU0VROworIAorLSAgICAvKiBUaGVzZSBoYXZl IGluZGl2aWR1YWwgWFNNIGhvb2tzIChjb21tb24vZG9tY3RsLmMpICovCistICAgIGNhc2UgWEVO X0RPTUNUTF9zZXRfdGFyZ2V0OgorLSAgICAgICAgcmV0dXJuIDA7CistCisgICAgIGNhc2UgWEVO X0RPTUNUTF9kZXN0cm95ZG9tYWluOgorICAgICAgICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0o ZCwgU0VDQ0xBU1NfRE9NQUlOLCBET01BSU5fX0RFU1RST1kpOworIAoKZGlmZiAtLWdpdCBhL3hz YTQ5My00LjIxLTAxLnBhdGNoIGIveHNhNDkzLTQuMjEtMDEucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYzA2YjlhNQotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5My00 LjIxLTAxLnBhdGNoCkBAIC0wLDAgKzEsMzExIEBACitGcm9tIDJlMjFiNTMwMTc2NWRlMzUzYzA2 MDgxZWVlOTUzMjU1YmYzMjcxNzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaWNo YWwgT3J6ZWwgPG1pY2hhbC5vcnplbEBhbWQuY29tPgorRGF0ZTogVHVlLCAxNCBBcHIgMjAyNiAx MDoxMToyNCArMDIwMAorU3ViamVjdDogeGVuL2FybTY0OiBmbHVzaHRsYjogT3B0aW1pemUgQVJN NjRfV09SS0FST1VORF9SRVBFQVRfVExCSQorCitUaGUgQVJNNjRfV09SS0FST1VORF9SRVBFQVRf VExCSSB3b3JrYXJvdW5kIGlzIHVzZWQgdG8gbWl0aWdhdGUgc2V2ZXJhbAorZXJyYXRhIHdoZXJl IGJyb2FkY2FzdCBUTEJJO0RTQiBzZXF1ZW5jZXMgZG9uJ3QgcHJvdmlkZSBhbGwgdGhlCithcmNo aXRlY3R1cmFsbHkgcmVxdWlyZWQgc3luY2hyb25pemF0aW9uLiBUaGUgd29ya2Fyb3VuZCBwZXJm b3JtcyBtb3JlCit3b3JrIHRoYW4gbmVjZXNzYXJ5LCBhbmQgY2FuIGhhdmUgc2lnbmlmaWNhbnQg b3ZlcmhlYWQuIFRoaXMgcGF0Y2gKK29wdGltaXplcyB0aGUgd29ya2Fyb3VuZCwgYXMgZXhwbGFp bmVkIGJlbG93LgorCisxLiBBbGwgcmVsZXZhbnQgZXJyYXRhIG9ubHkgYWZmZWN0IHRoZSBvcmRl cmluZyBhbmQvb3IgY29tcGxldGlvbiBvZgorICAgbWVtb3J5IGFjY2Vzc2VzIHdoaWNoIGhhdmUg YmVlbiB0cmFuc2xhdGVkIGJ5IGFuIGludmFsaWRhdGVkIFRMQgorICAgZW50cnkuIFRoZSBhY3R1 YWwgaW52YWxpZGF0aW9uIG9mIFRMQiBlbnRyaWVzIGlzIHVuYWZmZWN0ZWQuCisKKzIuIFRoZSBl eGlzdGluZyB3b3JrYXJvdW5kIGlzIGFwcGxpZWQgdG8gYm90aCBicm9hZGNhc3QgYW5kIGxvY2Fs IFRMQgorICAgaW52YWxpZGF0aW9uLCB3aGVyZWFzIGZvciBhbGwgcmVsZXZhbnQgZXJyYXRhIGl0 IGlzIG9ubHkgbmVjZXNzYXJ5IHRvCisgICBhcHBseSBhIHdvcmthcm91bmQgZm9yIGJyb2FkY2Fz dCBpbnZhbGlkYXRpb24uCisKKzMuIFRoZSBleGlzdGluZyB3b3JrYXJvdW5kIHJlcGxhY2VzIGV2 ZXJ5IFRMQkkgd2l0aCBhIFRMQkk7RFNCO1RMQkkKKyAgIHNlcXVlbmNlLCB3aGVyZWFzIGZvciBh bGwgcmVsZXZhbnQgZXJyYXRhIGl0IGlzIG9ubHkgbmVjZXNzYXJ5IHRvCisgICBleGVjdXRlIGEg c2luZ2xlIGFkZGl0aW9uYWwgVExCSTtEU0Igc2VxdWVuY2UgYWZ0ZXIgYW55IG51bWJlciBvZgor ICAgVExCSXMgYXJlIGNvbXBsZXRlZCBieSBhIERTQi4KKworICAgRm9yIGV4YW1wbGUsIGZvciBh IHNlcXVlbmNlIG9mIGJhdGNoZWQgVExCSXM6CisKKyAgICAgICBUTEJJIDxvcDE+WywgPGFyZzE+ XQorICAgICAgIFRMQkkgPG9wMj5bLCA8YXJnMj5dCisgICAgICAgVExCSSA8b3AzPlssIDxhcmcz Pl0KKyAgICAgICBEU0IgSVNICisKKyAgIC4uLiB0aGUgZXhpc3Rpbmcgd29ya2Fyb3VuZCB3aWxs IGV4cGFuZCB0aGlzIHRvOgorCisgICAgICAgVExCSSA8b3AxPlssIDxhcmcxPl0KKyAgICAgICBE U0IgSVNIICAgICAgICAgICAgICAgICAgLy8gYWRkaXRpb25hbAorICAgICAgIFRMQkkgPG9wMT5b LCA8YXJnMT5dICAgICAvLyBhZGRpdGlvbmFsCisgICAgICAgVExCSSA8b3AyPlssIDxhcmcyPl0K KyAgICAgICBEU0IgSVNIICAgICAgICAgICAgICAgICAgLy8gYWRkaXRpb25hbAorICAgICAgIFRM QkkgPG9wMj5bLCA8YXJnMj5dICAgICAvLyBhZGRpdGlvbmFsCisgICAgICAgVExCSSA8b3AzPlss IDxhcmczPl0KKyAgICAgICBEU0IgSVNIICAgICAgICAgICAgICAgICAgLy8gYWRkaXRpb25hbAor ICAgICAgIFRMQkkgPG9wMz5bLCA8YXJnMz5dICAgICAvLyBhZGRpdGlvbmFsCisgICAgICAgRFNC IElTSAorCisgICAuLi4gd2hlcmVhcyBpdCBpcyBzdWZmaWNpZW50IHRvIGhhdmU6CisKKyAgICAg ICBUTEJJIDxvcDE+WywgPGFyZzE+XQorICAgICAgIFRMQkkgPG9wMj5bLCA8YXJnMj5dCisgICAg ICAgVExCSSA8b3AzPlssIDxhcmczPl0KKyAgICAgICBEU0IgSVNICisgICAgICAgVExCSSA8b3BY PlssIDxhcmdYPl0gICAgIC8vIGFkZGl0aW9uYWwKKyAgICAgICBEU0IgSVNIICAgICAgICAgICAg ICAgICAgLy8gYWRkaXRpb25hbAorCisgICBVc2luZyBhIHNpbmdsZSBhZGRpdGlvbmFsIFRMQkkg YW5kIERTQiBhdCB0aGUgZW5kIG9mIHRoZSBzZXF1ZW5jZSBjYW4KKyAgIGhhdmUgc2lnbmlmaWNh bnRseSBsb3dlciBvdmVyaGVhZCBhcyBlYWNoIERTQiB3aGljaCBjb21wbGV0ZXMgYSBUTEJJCisg ICBtdXN0IHN5bmNocm9uaXplIHdpdGggb3RoZXIgUEVzIGluIHRoZSBzeXN0ZW0sIHdpdGggcG90 ZW50aWFsCisgICBwZXJmb3JtYW5jZSBlZmZlY3RzIGJvdGggbG9jYWxseSBhbmQgc3lzdGVtLXdp ZGUuCisKKzQuIFRoZSBleGlzdGluZyB3b3JrYXJvdW5kIHJlcGVhdHMgZWFjaCBzcGVjaWZpYyBU TEJJIG9wZXJhdGlvbiwgd2hlcmVhcworICAgZm9yIGFsbCByZWxldmFudCBlcnJhdGEgaXQgaXMg c3VmZmljaWVudCBmb3IgdGhlIGFkZGl0aW9uYWwgVExCSSB0bworICAgdXNlICphbnkqIG9wZXJh dGlvbiB3aGljaCB3aWxsIGJlIGJyb2FkY2FzdCwgcmVnYXJkbGVzcyBvZiB3aGljaAorICAgdHJh bnNsYXRpb24gcmVnaW1lIG9yIHN0YWdlIG9mIHRyYW5zbGF0aW9uIHRoZSBvcGVyYXRpb24gYXBw bGllcyB0by4KKworICAgRm9yIGV4YW1wbGUsIGZvciBhIHNpbmdsZSBUTEJJOgorCisgICAgICAg VExCSSBBTExFMklTCisgICAgICAgRFNCIElTSAorCisgICAuLi4gdGhlIGV4aXN0aW5nIHdvcmth cm91bmQgd2lsbCBleHBhbmQgdGhpcyB0bzoKKworICAgICAgIFRMQkkgQUxMRTJJUworICAgICAg IERTQiBJU0gKKyAgICAgICBUTEJJIEFMTEUySVMgICAgICAgICAgICAgLy8gYWRkaXRpb25hbAor ICAgICAgIERTQiBJU0ggICAgICAgICAgICAgICAgICAvLyBhZGRpdGlvbmFsCisKKyAgIC4uLiB3 aGVyZWFzIGl0IGlzIHN1ZmZpY2llbnQgdG8gaGF2ZToKKworICAgICAgIFRMQkkgQUxMRTJJUwor ICAgICAgIERTQiBJU0gKKyAgICAgICBUTEJJIFZBTEUxSVMsIFhaUiAgICAgICAgLy8gYWRkaXRp b25hbAorICAgICAgIERTQiBJU0ggICAgICAgICAgICAgICAgICAvLyBhZGRpdGlvbmFsCisKKyAg IEFzIHRoZSBhZGRpdGlvbmFsIFRMQkkgZG9lc24ndCBoYXZlIHRvIG1hdGNoIGEgc3BlY2lmaWMg ZWFybGllciBUTEJJLAorICAgdGhlIGFkZGl0aW9uYWwgVExCSSBjYW4gYmUgaW1wbGVtZW50ZWQg aW4gc2VwYXJhdGUgY29kZSwgd2l0aCBubworICAgbWVtb3J5IG9mIHRoZSBlYXJsaWVyIFRMQklz LiBUaGUgYWRkaXRpb25hbCBUTEJJIGNhbiBhbHNvIHVzZSBhCisgICBjaGVhcGVyIFRMQkkgb3Bl cmF0aW9uLgorCis1LiBUaGUgZXhpc3Rpbmcgd29ya2Fyb3VuZCBpcyBhcHBsaWVkIHRvIGJvdGgg U3RhZ2UtMSBhbmQgU3RhZ2UtMiBUTEIKKyAgIGludmFsaWRhdGlvbiwgd2hlcmVhcyBmb3IgYWxs IHJlbGV2YW50IGVycmF0YSBpdCBpcyBvbmx5IG5lY2Vzc2FyeSB0bworICAgYXBwbHkgYSB3b3Jr YXJvdW5kIGZvciBTdGFnZS0xIGludmFsaWRhdGlvbi4KKworICAgQXJjaGl0ZWN0dXJhbGx5LCBU TEJJIG9wZXJhdGlvbnMgd2hpY2ggaW52YWxpZGF0ZSBvbmx5IFN0YWdlLTIKKyAgIGluZm9ybWF0 aW9uIChlLmcuIElQQVMyRTFJUykgYXJlIG5vdCByZXF1aXJlZCB0byBpbnZhbGlkYXRlIFRMQgor ICAgZW50cmllcyB3aGljaCBjb21iaW5lIGluZm9ybWF0aW9uIGZyb20gU3RhZ2UtMSBhbmQgU3Rh Z2UtMgorICAgdHJhbnNsYXRpb24gdGFibGUgZW50cmllcywgYW5kIGNvbnNlcXVlbnRseSBtYXkg bm90IGNvbXBsZXRlIG1lbW9yeQorICAgYWNjZXNzZXMgdHJhbnNsYXRlZCBieSB0aG9zZSBjb21i aW5lZCBlbnRyaWVzLiBJbiB0aGVzZSBjYXNlcywKKyAgIGNvbXBsZXRpb24gb2YgbWVtb3J5IGFj Y2Vzc2VzIGlzIG9ubHkgZ3VhcmFudGVlZCBhZnRlciBzdWJzZXF1ZW50CisgICBpbnZhbGlkYXRp b24gb2YgU3RhZ2UtMSBpbmZvcm1hdGlvbiAoZS5nLiBWTUFMTEUxSVMpLgorCitSZXdvcmsgdGhl IHdvcmthcm91bmQgbG9naWMgYXMgZm9sbG93czoKKyAtIGFkZCBUTEJfSEVMUEVSX0xPQ0FMKCkg dG8gYmUgdXNlZCBmb3IgbG9jYWwgVExCIG9wcyB3aXRob3V0IGEKKyAgIHdvcmthcm91bmQsCisg LSBtb2RpZnkgVExCX0hFTFBFUigpIHdvcmthcm91bmQgdG8gdXNlIHRsYmkgdmFsZTJpcywgeHpy IGFzIGEgc2Vjb25kCisgICBUTEJJLAorIC0gZHJvcCBUTEJfSEVMUEVSX1ZBKCkuIEl0J3MgdXNl ZCBvbmx5IGJ5IF9fZmx1c2hfeGVuX3RsYl9vbmVfbG9jYWwKKyAgIHdoaWNoIGlzIGxvY2FsIGFu ZCBkb2VzIG5vdCBuZWVkIHdvcmthcm91bmQgYW5kIGJ5CisgICBfX2ZsdXNoX3hlbl90bGJfb25l LiBJbiB0aGUgbGF0dGVyIGNhc2UsIHNpbmNlIGl0J3MgdXNlZCBpbiBhIGxvb3AsCisgICB3ZSBk b24ndCBuZWVkIGEgd29ya2Fyb3VuZCBpbiB0aGUgbWlkZGxlLiBBZGQgX190bGJfcmVwZWF0X3N5 bmMgd2l0aAorICAgYSB3b3JrYXJvdW5kIHRvIGJlIHVzZWQgYXQgdGhlIGVuZCBhZnRlciBEU0Ig YW5kIGJlZm9yZSBmaW5hbCBJU0IsCisgLSBUTEJJIFZBTEUySVMgcGFzc2luZyBYWlIgaXMgdXNl ZCBhcyBhbiBhZGRpdGlvbmFsIFRMQkkuIFdoaWxlIHRoZXJlIGlzCisgICBhbiBpZGVudGl0eSBt YXBwaW5nIHRoZXJlLCBpdCdzIHVzZWQgdmVyeSByYXJlbHkuIFRoZSBwZXJmb3JtYW5jZQorICAg aW1wYWN0IGlzIHRoZXJlZm9yZSBuZWdsaWdpYmxlLiBJZiB0aGluZ3MgY2hhbmdlIGluIHRoZSBm dXR1cmUsIHdlCisgICBjYW4gcmV2aXNpdCB0aGUgZGVjaXNpb24uCisKK1NpZ25lZC1vZmYtYnk6 IE1pY2hhbCBPcnplbCA8bWljaGFsLm9yemVsQGFtZC5jb20+CitSZXZpZXdlZC1ieTogTHVjYSBG YW5jZWxsdSA8bHVjYS5mYW5jZWxsdUBhcm0uY29tPgorUmV2aWV3ZWQtYnk6IEp1bGllbiBHcmFs bCA8amdyYWxsQGFtYXpvbi5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA3YzUwMmQ3 NTkxNTE5MTM1NzY1YjgwNDFjYmQxYzcwZTU2ZTVhMGI5KQorCitkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gvYXJtL2luY2x1ZGUvYXNtL2FybTMyL2ZsdXNodGxiLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVk ZS9hc20vYXJtMzIvZmx1c2h0bGIuaAoraW5kZXggNjFjMjVhMzE4OTk4Li41NDgzYmUwOGZiYmUg MTAwNjQ0CistLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtMzIvZmx1c2h0bGIuaAor KysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2FybTMyL2ZsdXNodGxiLmgKK0BAIC01Nyw2 ICs1Nyw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2ZsdXNoX3hlbl90bGJfb25lKHZhZGRyX3Qg dmEpCisgICAgIGFzbSB2b2xhdGlsZShTVE9SRV9DUDMyKDAsIFRMQklNVkFISVMpIDogOiAiciIg KHZhKSA6ICJtZW1vcnkiKTsKKyB9CisgCisrLyogT25seSBmb3IgQVJNNjRfV09SS0FST1VORF9S RVBFQVRfVExCSSAqLworK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3RsYl9yZXBlYXRfc3luYyh2b2lk KSB7fQorKworICNlbmRpZiAvKiBfX0FTTV9BUk1fQVJNMzJfRkxVU0hUTEJfSF9fICovCisgLyoK KyAgKiBMb2NhbCB2YXJpYWJsZXM6CitkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUv YXNtL2FybTY0L2ZsdXNodGxiLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvZmx1 c2h0bGIuaAoraW5kZXggM2I5OWMxMWI1MGQxLi4xNjA2YjI2YmYyOGEgMTAwNjQ0CistLS0gYS94 ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvZmx1c2h0bGIuaAorKysrIGIveGVuL2FyY2gv YXJtL2luY2x1ZGUvYXNtL2FybTY0L2ZsdXNodGxiLmgKK0BAIC0xMiw5ICsxMiwxNCBAQAorICAq IEFSTTY0X1dPUktBUk9VTkRfUkVQRUFUX1RMQkk6CisgICogTW9kaWZpY2F0aW9uIG9mIHRoZSB0 cmFuc2xhdGlvbiB0YWJsZSBmb3IgYSB2aXJ0dWFsIGFkZHJlc3MgbWlnaHQgbGVhZCB0bworICAq IHJlYWQtYWZ0ZXItcmVhZCBvcmRlcmluZyB2aW9sYXRpb24uCistICogVGhlIHdvcmthcm91bmQg cmVwZWF0cyBUTEJJK0RTQiBJU0ggb3BlcmF0aW9uIGZvciBhbGwgdGhlIFRMQiBmbHVzaAorLSAq IG9wZXJhdGlvbnMuIFdoaWxlIHRoaXMgaXMgc3RyaWN0bHkgbm90IG5lY2Vzc2FyeSwgd2UgZG9u J3Qgd2FudCB0bworLSAqIHRha2UgYW55IHJpc2suCisrICogVGhlIHdvcmthcm91bmQgcmVwZWF0 cyBUTEJJK0RTQiBJU0ggb3BlcmF0aW9uIGZvciBicm9hZGNhc3QgVExCIGZsdXNoCisrICogb3Bl cmF0aW9ucy4gVGhlIHdvcmthcm91bmQgaXMgbm90IG5lZWRlZCBmb3IgbG9jYWwgb3BlcmF0aW9u cy4KKysgKgorKyAqIEl0IGlzIHN1ZmZpY2llbnQgZm9yIHRoZSBhZGRpdGlvbmFsIFRMQkkgdG8g dXNlICphbnkqIG9wZXJhdGlvbiB3aGljaCB3aWxsCisrICogYmUgYnJvYWRjYXN0LCByZWdhcmRs ZXNzIG9mIHdoaWNoIHRyYW5zbGF0aW9uIHJlZ2ltZSBvciBzdGFnZSBvZiB0cmFuc2xhdGlvbgor KyAqIHRoZSBvcGVyYXRpb24gYXBwbGllcyB0by4gVExCSSBWQUxFMklTIGlzIHVzZWQgcGFzc2lu ZyBYWlIuIFdoaWxlIHRoZXJlIGlzCisrICogYW4gaWRlbnRpdHkgbWFwcGluZyB0aGVyZSwgaXQn cyBvbmx5IHVzZWQgZHVyaW5nIHN1c3BlbmQvcmVzdW1lLCBDUFUgb24vb2ZmLAorKyAqIHNvIHRo ZSBpbXBhY3QgKHBlcmZvcm1hbmNlIGlmIGFueSkgaXMgbmVnbGlnaWJsZS4KKyAgKgorICAqIEZv ciBYZW4gcGFnZS10YWJsZXMgdGhlIElTQiB3aWxsIGRpc2NhcmQgYW55IGluc3RydWN0aW9ucyBm ZXRjaGVkCisgICogZnJvbSB0aGUgb2xkIG1hcHBpbmdzLgorQEAgLTI2LDY5ICszMSw5MCBAQAor ICAqIE5vdGUgdGhhdCBmb3IgbG9jYWwgVExCIGZsdXNoLCB1c2luZyBub24tc2hhcmVhYmxlIChu c2gpIGlzIHN1ZmZpY2llbnQKKyAgKiAoc2VlIEQ1LTQ5MjkgaW4gQVJNIERESSAwNDg3SC5hKS4g QWx0aG91Z2gsIHRoZSBtZW1vcnkgYmFycmllciBpbgorICAqIGZvciB0aGUgd29ya2Fyb3VuZCBp cyBsZWZ0IGFzIGlubmVyLXNoYXJlYWJsZSB0byBtYXRjaCB3aXRoIExpbnV4CistICogdjYuMS1y YzguCisrICogdjYuMTkuCisgICovCistI2RlZmluZSBUTEJfSEVMUEVSKG5hbWUsIHRsYm9wLCBz aCkgICAgICAgICAgICAgIFwKKysjZGVmaW5lIFRMQl9IRUxQRVJfTE9DQUwobmFtZSwgdGxib3Ap ICAgICAgICAgICAgXAorIHN0YXRpYyBpbmxpbmUgdm9pZCBuYW1lKHZvaWQpICAgICAgICAgICAg ICAgICAgICBcCisgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgYXNtX2lubGluZSB2b2xhdGlsZSAoICAgICAgICAgICAgICAgICAgICAgICAg XAorLSAgICAgICAgImRzYiAgIiAgIyBzaCAgInN0OyIgICAgICAgICAgICAgICAgICAgICBcCisr ICAgICAgICAiZHNiICBuc2hzdDsiICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgICJ0bGJpICIgICMgdGxib3AgICI7IiAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAg QUxURVJOQVRJVkUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAg Im5vcDsgbm9wOyIsICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAiZHNi ICBpc2g7IiAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICJ0bGJpICIg ICMgdGxib3AgICI7IiwgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgQVJNNjRfV09SS0FS T1VORF9SRVBFQVRfVExCSSwgICAgICAgIFwKKy0gICAgICAgICAgICBDT05GSUdfQVJNNjRfV09S S0FST1VORF9SRVBFQVRfVExCSSkgXAorLSAgICAgICAgImRzYiAgIiAgIyBzaCAgIjsiICAgICAg ICAgICAgICAgICAgICAgICBcCisrICAgICAgICAiZHNiICBuc2g7IiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgICJpc2I7IiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICAgICAgOiA6IDogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgfQorIAorLS8qCistICogRkx1c2ggVExCIGJ5IFZBLiBUaGlzIHdpbGwgbGlrZWx5 IGJlIHVzZWQgaW4gYSBsb29wLCBzbyB0aGUgY2FsbGVyCistICogaXMgcmVzcG9uc2libGUgdG8g dXNlIHRoZSBhcHByb3ByaWF0ZSBtZW1vcnkgYmFycmllcnMgYmVmb3JlL2FmdGVyCistICogdGhl IHNlcXVlbmNlLgorLSAqCistICogU2VlIGFib3ZlIGFib3V0IHRoZSBBUk02NF9XT1JLQVJPVU5E X1JFUEVBVF9UTEJJIHNlcXVlbmNlLgorLSAqLworLSNkZWZpbmUgVExCX0hFTFBFUl9WQShuYW1l LCB0bGJvcCkgICAgICAgICAgICAgICBcCistc3RhdGljIGlubGluZSB2b2lkIG5hbWUodmFkZHJf dCB2YSkgICAgICAgICAgICAgIFwKKy17ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorLSAgICBhc21faW5saW5lIHZvbGF0aWxlICggICAgICAgICAgICAg ICAgICAgICAgICBcCistICAgICAgICAidGxiaSAiICAjIHRsYm9wICAiLCAlMDsiICAgICAgICAg ICAgICAgIFwKKy0gICAgICAgIEFMVEVSTkFUSVZFKCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorLSAgICAgICAgICAgICJub3A7IG5vcDsiLCAgICAgICAgICAgICAgICAgICAgICAgICBc CistICAgICAgICAgICAgImRzYiAgaXNoOyIgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0g ICAgICAgICAgICAidGxiaSAiICAjIHRsYm9wICAiLCAlMDsiLCAgICAgICAgICAgXAorLSAgICAg ICAgICAgIEFSTTY0X1dPUktBUk9VTkRfUkVQRUFUX1RMQkksICAgICAgICBcCistICAgICAgICAg ICAgQ09ORklHX0FSTTY0X1dPUktBUk9VTkRfUkVQRUFUX1RMQkkpIFwKKy0gICAgICAgIDogOiAi ciIgKHZhID4+IFBBR0VfU0hJRlQpIDogIm1lbW9yeSIpOyAgXAorKyNkZWZpbmUgVExCX0hFTFBF UihuYW1lLCB0bGJvcCkgICAgICAgICAgICAgICAgICAgICAgIFwKKytzdGF0aWMgaW5saW5lIHZv aWQgbmFtZSh2b2lkKSAgICAgICAgICAgICAgICAgICAgICAgICBcCisreyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBhc21faW5saW5l IHZvbGF0aWxlICggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgICJkc2Ig IGlzaHN0OyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICAidGxi aSAiICAjIHRsYm9wICAiOyIgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgQUxU RVJOQVRJVkUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgICAg ICAibm9wOyBub3A7IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICAg ICAgImRzYiAgaXNoOyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAg ICAgICJ0bGJpIHZhbGUyaXMsIHh6cjsiLCAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAg ICAgICBBUk02NF9XT1JLQVJPVU5EX1JFUEVBVF9UTEJJLCAgICAgICAgICAgICBcCisrICAgICAg ICAgICAgQ09ORklHX0FSTTY0X1dPUktBUk9VTkRfUkVQRUFUX1RMQkkpICAgICAgXAorKyAgICAg ICAgImRzYiAgaXNoOyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAg ICAgICJpc2I7IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAg ICAgICA6IDogOiAibWVtb3J5Iik7IFwKKyB9CisgCisgLyogRmx1c2ggbG9jYWwgVExCcywgY3Vy cmVudCBWTUlEIG9ubHkuICovCistVExCX0hFTFBFUihmbHVzaF9ndWVzdF90bGJfbG9jYWwsIHZt YWxsczEyZTEsIG5zaCkKKytUTEJfSEVMUEVSX0xPQ0FMKGZsdXNoX2d1ZXN0X3RsYl9sb2NhbCwg dm1hbGxzMTJlMSkKKyAKKyAvKiBGbHVzaCBpbm5lcnNoYXJlYWJsZSBUTEJzLCBjdXJyZW50IFZN SUQgb25seSAqLworLVRMQl9IRUxQRVIoZmx1c2hfZ3Vlc3RfdGxiLCB2bWFsbHMxMmUxaXMsIGlz aCkKKytUTEJfSEVMUEVSKGZsdXNoX2d1ZXN0X3RsYiwgdm1hbGxzMTJlMWlzKQorIAorIC8qIEZs dXNoIGxvY2FsIFRMQnMsIGFsbCBWTUlEcywgbm9uLWh5cGVydmlzb3IgbW9kZSAqLworLVRMQl9I RUxQRVIoZmx1c2hfYWxsX2d1ZXN0c190bGJfbG9jYWwsIGFsbGUxLCBuc2gpCisrVExCX0hFTFBF Ul9MT0NBTChmbHVzaF9hbGxfZ3Vlc3RzX3RsYl9sb2NhbCwgYWxsZTEpCisgCisgLyogRmx1c2gg aW5uZXJzaGFyZWFibGUgVExCcywgYWxsIFZNSURzLCBub24taHlwZXJ2aXNvciBtb2RlICovCist VExCX0hFTFBFUihmbHVzaF9hbGxfZ3Vlc3RzX3RsYiwgYWxsZTFpcywgaXNoKQorK1RMQl9IRUxQ RVIoZmx1c2hfYWxsX2d1ZXN0c190bGIsIGFsbGUxaXMpCisgCisgLyogRmx1c2ggYWxsIGh5cGVy dmlzb3IgbWFwcGluZ3MgZnJvbSB0aGUgVExCIG9mIHRoZSBsb2NhbCBwcm9jZXNzb3IuICovCist VExCX0hFTFBFUihmbHVzaF94ZW5fdGxiX2xvY2FsLCBhbGxlMiwgbnNoKQorK1RMQl9IRUxQRVJf TE9DQUwoZmx1c2hfeGVuX3RsYl9sb2NhbCwgYWxsZTIpCisrCisrI3VuZGVmIFRMQl9IRUxQRVJf TE9DQUwKKysjdW5kZWYgVExCX0hFTFBFUgorKworKy8qCisrICogRkx1c2ggVExCIGJ5IFZBLiBU aGlzIHdpbGwgbGlrZWx5IGJlIHVzZWQgaW4gYSBsb29wLCBzbyB0aGUgY2FsbGVyCisrICogaXMg cmVzcG9uc2libGUgdG8gdXNlIHRoZSBhcHByb3ByaWF0ZSBtZW1vcnkgYmFycmllcnMgYmVmb3Jl L2FmdGVyCisrICogdGhlIHNlcXVlbmNlLgorKyAqLworIAorIC8qIEZsdXNoIFRMQiBvZiBsb2Nh bCBwcm9jZXNzb3IgZm9yIGFkZHJlc3MgdmEuICovCistVExCX0hFTFBFUl9WQShfX2ZsdXNoX3hl bl90bGJfb25lX2xvY2FsLCB2YWUyKQorK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2ZsdXNoX3hlbl90 bGJfb25lX2xvY2FsKHZhZGRyX3QgdmEpCisreworKyAgICBhc21faW5saW5lIHZvbGF0aWxlICgK KysgICAgICAgICJ0bGJpIHZhZTIsICUwIiA6IDogInIiICh2YSA+PiBQQUdFX1NISUZUKSA6ICJt ZW1vcnkiKTsKKyt9CisgCisgLyogRmx1c2ggVExCIG9mIGFsbCBwcm9jZXNzb3JzIGluIHRoZSBp bm5lci1zaGFyZWFibGUgZG9tYWluIGZvciBhZGRyZXNzIHZhLiAqLworLVRMQl9IRUxQRVJfVkEo X19mbHVzaF94ZW5fdGxiX29uZSwgdmFlMmlzKQorK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2ZsdXNo X3hlbl90bGJfb25lKHZhZGRyX3QgdmEpCisreworKyAgICBhc21faW5saW5lIHZvbGF0aWxlICgK KysgICAgICAgICJ0bGJpIHZhZTJpcywgJTAiIDogOiAiciIgKHZhID4+IFBBR0VfU0hJRlQpIDog Im1lbW9yeSIpOworK30KKyAKKy0jdW5kZWYgVExCX0hFTFBFUgorLSN1bmRlZiBUTEJfSEVMUEVS X1ZBCisrLyoKKysgKiBBUk02NF9XT1JLQVJPVU5EX1JFUEVBVF9UTEJJOgorKyAqIEZvciBhbGwg cmVsZXZhbnQgZXJyYXRhcyBpdCBpcyBvbmx5IG5lY2Vzc2FyeSB0byBleGVjdXRlIGEgc2luZ2xl CisrICogYWRkaXRpb25hbCBUTEJJO0RTQiBzZXF1ZW5jZSBhZnRlciBhbnkgbnVtYmVyIG9mIFRM QklzIGFyZSBjb21wbGV0ZWQgYnkgRFNCLgorKyAqLworK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3Rs Yl9yZXBlYXRfc3luYyh2b2lkKQorK3sKKysgICAgYXNtX2lubGluZSB2b2xhdGlsZSAoCisrICAg ICAgICBBTFRFUk5BVElWRSgKKysgICAgICAgICAgICAibm9wOyBub3A7IiwKKysgICAgICAgICAg ICAidGxiaSB2YWxlMmlzLCB4enI7IgorKyAgICAgICAgICAgICJkc2IgIGlzaDsiLAorKyAgICAg ICAgICAgIEFSTTY0X1dPUktBUk9VTkRfUkVQRUFUX1RMQkksCisrICAgICAgICAgICAgQ09ORklH X0FSTTY0X1dPUktBUk9VTkRfUkVQRUFUX1RMQkkpCisrICAgICAgICA6IDogOiAibWVtb3J5Iik7 CisrfQorIAorICNlbmRpZiAvKiBfX0FTTV9BUk1fQVJNNjRfRkxVU0hUTEJfSF9fICovCisgLyoK K2RpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZmx1c2h0bGIuaCBiL3hlbi9h cmNoL2FybS9pbmNsdWRlL2FzbS9mbHVzaHRsYi5oCitpbmRleCBlNDVmYjZkOTdiMDIuLmMyOTJj M2MwMGQyOSAxMDA2NDQKKy0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9mbHVzaHRsYi5o CisrKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZmx1c2h0bGIuaAorQEAgLTY1LDYgKzY1 LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGZsdXNoX3hlbl90bGJfcmFuZ2VfdmEodmFkZHJfdCB2 YSwKKyAgICAgICAgIHZhICs9IFBBR0VfU0laRTsKKyAgICAgfQorICAgICBkc2IoaXNoKTsgLyog RW5zdXJlIHRoZSBUTEIgaW52YWxpZGF0aW9uIGhhcyBjb21wbGV0ZWQgKi8KKysgICAgX190bGJf cmVwZWF0X3N5bmMoKTsKKyAgICAgaXNiKCk7CisgfQorIAorZGlmZiAtLWdpdCBhL3hlbi9hcmNo L2FybS9pbmNsdWRlL2FzbS9tbXUvbGF5b3V0LmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v bW11L2xheW91dC5oCitpbmRleCAxOWMwZWM2M2E1OWEuLmZlYWZjMTRlYmZkYSAxMDA2NDQKKy0t LSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tbXUvbGF5b3V0LmgKKysrKyBiL3hlbi9hcmNo L2FybS9pbmNsdWRlL2FzbS9tbXUvbGF5b3V0LmgKK0BAIC0yMyw2ICsyMywxMCBAQAorICAqCisg ICogIFJlc2VydmVkIHRvIGlkZW50aXR5IG1hcCBYZW4KKyAgKgorKyAqICBOb3RlOiBBcyBwYXJ0 IG9mIEFSTTY0X1dPUktBUk9VTkRfUkVQRUFUX1RMQkksIFZBIDAgaXMgdXNlZCBmb3IgYW4gZXh0 cmEKKysgKiAgVExCSSBvcGVyYXRpb24gZ2l2ZW4gaXRzIHJhcmUgdXNlIChvbmx5IGlkZW50aXR5 IG1hcHBpbmcpIGFuZCB0aHVzCisrICogIG5lZ2xpZ2libGUgcGVyZm9ybWFuY2UgaW1wYWN0Lgor KyAqCisgICogMHgwMDAwMGEwMDAwMDAwMDAwIC0gMHgwMDAwMGE3ZmZmZmZmZmZmICg1MTJHQiwg TDAgc2xvdCBbMjBdKQorICAqICAoUmVsYXRpdmUgb2Zmc2V0cykKKyAgKiAgIDAgIC0gICAyTSAg IFVubWFwcGVkCgpkaWZmIC0tZ2l0IGEveHNhNDkzLTQuMjEtMDIucGF0Y2ggYi94c2E0OTMtNC4y MS0wMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODAxMTljCi0t LSAvZGV2L251bGwKKysrIGIveHNhNDkzLTQuMjEtMDIucGF0Y2gKQEAgLTAsMCArMSw3MSBAQAor RnJvbSA3ZTcwYjg3NTEyYzk2NjI0OGIxZTg0NTNkOWFjNTRjNjQzYzA2ZjQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNvbT4K K0RhdGU6IEZyaSwgMjIgTWF5IDIwMjYgMDk6MzU6NTUgKzAyMDAKK1N1YmplY3Q6IHhlbi9hcm06 IFN5bmMgbWlzc2luZyBkZWZpbml0aW9ucyBmb3IgQXJtIENQVXMgd2l0aCBMaW51eAorCitTeW5j aHJvbml6ZSB3aXRoIExpbnV4IGtlcm5lbCA3LjAgZGVmaW5pdGlvbnMgZm9yIHRoZSBmb2xsb3dp bmcgQ1BVczoKKyAtIENvcnRleC1BNzZBRSwKKyAtIENvcnRleC1BNzhBRSwKKyAtIENvcnRleC1Y MUMsCisgLSBDb3J0ZXgtWDMsCisgLSBOZW92ZXJzZS1WMiwKKyAtIENvcnRleC1YNCwKKyAtIE5l b3ZlcnNlLVYzQUUsCisgLSBOZW92ZXJzZS1WMywKKyAtIENvcnRleC1YOTI1LgorCitUaGVzZSB3 aWxsIGJlIHVzZWQgZm9yIGVycmF0YSBkZXRlY3Rpb24gaW4gc3Vic2VxdWVudCBwYXRjaGVzLgor CitTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgT3J6ZWwgPG1pY2hhbC5vcnplbEBhbWQuY29tPgorUmV2 aWV3ZWQtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+CisKK2RpZmYgLS1naXQgYS94 ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vcHJvY2Vzc29yLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVk ZS9hc20vcHJvY2Vzc29yLmgKK2luZGV4IGVjMjNmZDA5OGI2My4uOTA3Nzc4NjgzYjA4IDEwMDY0 NAorLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisrKysgYi94ZW4v YXJjaC9hcm0vaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKK0BAIC04OSwxMyArODksMjIgQEAKKyAj ZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc2ICAgICAweEQwQgorICNkZWZpbmUgQVJNX0NQ VV9QQVJUX05FT1ZFUlNFX04xICAgIDB4RDBDCisgI2RlZmluZSBBUk1fQ1BVX1BBUlRfQ09SVEVY X0E3NyAgICAgMHhEMEQKKysjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc2QUUgICAweEQw RQorICNkZWZpbmUgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX1YxICAgIDB4RDQwCisgI2RlZmluZSBB Uk1fQ1BVX1BBUlRfQ09SVEVYX0E3OCAgICAgMHhENDEKKysjZGVmaW5lIEFSTV9DUFVfUEFSVF9D T1JURVhfQTc4QUUgICAweEQ0MgorICNkZWZpbmUgQVJNX0NQVV9QQVJUX0NPUlRFWF9YMSAgICAg IDB4RDQ0CisgI2RlZmluZSBBUk1fQ1BVX1BBUlRfQ09SVEVYX0E3MTAgICAgMHhENDcKKyAjZGVm aW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfWDIgICAgICAweEQ0OAorICNkZWZpbmUgQVJNX0NQVV9Q QVJUX05FT1ZFUlNFX04yICAgIDB4RDQ5CisgI2RlZmluZSBBUk1fQ1BVX1BBUlRfQ09SVEVYX0E3 OEMgICAgMHhENEIKKysjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfWDFDICAgICAweEQ0Qwor KyNkZWZpbmUgQVJNX0NQVV9QQVJUX0NPUlRFWF9YMyAgICAgIDB4RDRFCisrI2RlZmluZSBBUk1f Q1BVX1BBUlRfTkVPVkVSU0VfVjIgICAgMHhENEYKKysjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JU RVhfWDQgICAgICAweEQ4MgorKyNkZWZpbmUgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX1YzQUUgIDB4 RDgzCisrI2RlZmluZSBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfVjMgICAgMHhEODQKKysjZGVmaW5l IEFSTV9DUFVfUEFSVF9DT1JURVhfWDkyNSAgICAweEQ4NQorIAorICNkZWZpbmUgTUlEUl9DT1JU RVhfQTEyIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRF WF9BMTIpCisgI2RlZmluZSBNSURSX0NPUlRFWF9BMTcgTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9J TVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX0ExNykKK0BAIC0xMTAsMTMgKzExOSwyMiBAQAor ICNkZWZpbmUgTUlEUl9DT1JURVhfQTc2IE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwg QVJNX0NQVV9QQVJUX0NPUlRFWF9BNzYpCisgI2RlZmluZSBNSURSX05FT1ZFUlNFX04xIE1JRFJf Q1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX04xKQorICNk ZWZpbmUgTUlEUl9DT1JURVhfQTc3IE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJN X0NQVV9QQVJUX0NPUlRFWF9BNzcpCisrI2RlZmluZSBNSURSX0NPUlRFWF9BNzZBRSBNSURSX0NQ VV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc2QUUpCisgI2Rl ZmluZSBNSURSX05FT1ZFUlNFX1YxIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJN X0NQVV9QQVJUX05FT1ZFUlNFX1YxKQorICNkZWZpbmUgTUlEUl9DT1JURVhfQTc4IE1JRFJfQ1BV X01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRFWF9BNzgpCisrI2RlZmlu ZSBNSURSX0NPUlRFWF9BNzhBRSBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9D UFVfUEFSVF9DT1JURVhfQTc4QUUpCisgI2RlZmluZSBNSURSX0NPUlRFWF9YMSAgTUlEUl9DUFVf TU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX1gxKQorICNkZWZpbmUg TUlEUl9DT1JURVhfQTcxMCBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVf UEFSVF9DT1JURVhfQTcxMCkKKyAjZGVmaW5lIE1JRFJfQ09SVEVYX1gyICBNSURSX0NQVV9NT0RF TChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfWDIpCisgI2RlZmluZSBNSURS X05FT1ZFUlNFX04yIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJU X05FT1ZFUlNFX04yKQorICNkZWZpbmUgTUlEUl9DT1JURVhfQTc4QyBNSURSX0NQVV9NT0RFTChB Uk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc4QykKKysjZGVmaW5lIE1JRFJf Q09SVEVYX1gxQyBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9D T1JURVhfWDFDKQorKyNkZWZpbmUgTUlEUl9DT1JURVhfWDMgTUlEUl9DUFVfTU9ERUwoQVJNX0NQ VV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX1gzKQorKyNkZWZpbmUgTUlEUl9ORU9WRVJT RV9WMiBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9ORU9WRVJT RV9WMikKKysjZGVmaW5lIE1JRFJfQ09SVEVYX1g0IE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1Q X0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRFWF9YNCkKKysjZGVmaW5lIE1JRFJfTkVPVkVSU0VfVjNB RSBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9ORU9WRVJTRV9W M0FFKQorKyNkZWZpbmUgTUlEUl9ORU9WRVJTRV9WMyBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lN UF9BUk0sIEFSTV9DUFVfUEFSVF9ORU9WRVJTRV9WMykKKysjZGVmaW5lIE1JRFJfQ09SVEVYX1g5 MjUgTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX1g5 MjUpCisgCisgLyogTVBJRFIgTXVsdGlwcm9jZXNzb3IgQWZmaW5pdHkgUmVnaXN0ZXIgKi8KKyAj ZGVmaW5lIF9NUElEUl9VUCAgICAgICAgICAgKDMwKQoKZGlmZiAtLWdpdCBhL3hzYTQ5My00LjIx LTAzLnBhdGNoIGIveHNhNDkzLTQuMjEtMDMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uODZiYWU2OAotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5My00LjIxLTAzLnBh dGNoCkBAIC0wLDAgKzEsMzcgQEAKK0Zyb20gYzBmN2I0MGZkYmI5ODZiM2NmNDcwZWQ1MWYzODc4 MjYxZTMzZjljYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhbCBPcnplbCA8 bWljaGFsLm9yemVsQGFtZC5jb20+CitEYXRlOiBGcmksIDIyIE1heSAyMDI2IDA5OjM1OjU2ICsw MjAwCitTdWJqZWN0OiB4ZW4vYXJtOiBBZGQgQzEtVWx0cmEgZGVmaW5pdGlvbnMKKworQWRkIHBy b2Nlc3NvciBkZWZpbml0aW9ucyBmb3IgQzEtVWx0cmEuIFRoZXNlIHdpbGwgYmUgdXNlZCBmb3Ig ZXJyYXRhCitkZXRlY3Rpb24gaW4gc3Vic2VxdWVudCBwYXRjaGVzLgorCitUaGVzZSB2YWx1ZXMg Y2FuIGJlIGZvdW5kIGluIHRoZSBDMS1VbHRyYSBUUk06CisKKyAgaHR0cHM6Ly9kZXZlbG9wZXIu YXJtLmNvbS9kb2N1bWVudGF0aW9uLzEwODAxNC8wMTAwLworCisuLi4gaW4gc2VjdGlvbiBBLjUu MSAoIk1JRFJfRUwxLCBNYWluIElEIFJlZ2lzdGVyIikuCisKK1NpZ25lZC1vZmYtYnk6IE1pY2hh bCBPcnplbCA8bWljaGFsLm9yemVsQGFtZC5jb20+CitSZXZpZXdlZC1ieTogSnVsaWVuIEdyYWxs IDxqdWxpZW5AeGVuLm9yZz4KKworZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2Fz bS9wcm9jZXNzb3IuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAoraW5k ZXggOTA3Nzc4NjgzYjA4Li43Mjc0NWNjYTYyYmMgMTAwNjQ0CistLS0gYS94ZW4vYXJjaC9hcm0v aW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKKysrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9w cm9jZXNzb3IuaAorQEAgLTEwNSw2ICsxMDUsNyBAQAorICNkZWZpbmUgQVJNX0NQVV9QQVJUX05F T1ZFUlNFX1YzQUUgIDB4RDgzCisgI2RlZmluZSBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfVjMgICAg MHhEODQKKyAjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfWDkyNSAgICAweEQ4NQorKyNkZWZp bmUgQVJNX0NQVV9QQVJUX0MxX1VMVFJBICAgICAgIDB4RDhDCisgCisgI2RlZmluZSBNSURSX0NP UlRFWF9BMTIgTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09S VEVYX0ExMikKKyAjZGVmaW5lIE1JRFJfQ09SVEVYX0ExNyBNSURSX0NQVV9NT0RFTChBUk1fQ1BV X0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfQTE3KQorQEAgLTEzNSw2ICsxMzYsNyBAQAor ICNkZWZpbmUgTUlEUl9ORU9WRVJTRV9WM0FFIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FS TSwgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX1YzQUUpCisgI2RlZmluZSBNSURSX05FT1ZFUlNFX1Yz IE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX1Yz KQorICNkZWZpbmUgTUlEUl9DT1JURVhfWDkyNSBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9B Uk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfWDkyNSkKKysjZGVmaW5lIE1JRFJfQzFfVUxUUkEgTUlE Ul9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQzFfVUxUUkEpCisgCisg LyogTVBJRFIgTXVsdGlwcm9jZXNzb3IgQWZmaW5pdHkgUmVnaXN0ZXIgKi8KKyAjZGVmaW5lIF9N UElEUl9VUCAgICAgICAgICAgKDMwKQoKZGlmZiAtLWdpdCBhL3hzYTQ5My00LjIxLTA0LnBhdGNo IGIveHNhNDkzLTQuMjEtMDQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYjU5ZWU3NAotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5My00LjIxLTA0LnBhdGNoCkBAIC0w LDAgKzEsMzcgQEAKK0Zyb20gNmFmNjdhZWNhNDE4YmZmYjgwNzQyNGViMzQxNWZhYjU5ZTU4MTcz MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhbCBPcnplbCA8bWljaGFsLm9y emVsQGFtZC5jb20+CitEYXRlOiBGcmksIDIyIE1heSAyMDI2IDA5OjM1OjU3ICswMjAwCitTdWJq ZWN0OiB4ZW4vYXJtOiBBZGQgQzEtUHJlbWl1bSBkZWZpbml0aW9ucworCitBZGQgcHJvY2Vzc29y IGRlZmluaXRpb25zIGZvciBDMS1QcmVtaXVtLiBUaGVzZSB3aWxsIGJlIHVzZWQgZm9yIGVycmF0 YQorZGV0ZWN0aW9uIGluIHN1YnNlcXVlbnQgcGF0Y2hlcy4KKworVGhlc2UgdmFsdWVzIGNhbiBi ZSBmb3VuZCBpbiB0aGUgQzEtUHJlbWl1bSBUUk06CisKKyAgaHR0cHM6Ly9kZXZlbG9wZXIuYXJt LmNvbS9kb2N1bWVudGF0aW9uLzEwOTQxNi8wMTAwLworCisuLi4gaW4gc2VjdGlvbiBBLjUuMSAo Ik1JRFJfRUwxLCBNYWluIElEIFJlZ2lzdGVyIikuCisKK1NpZ25lZC1vZmYtYnk6IE1pY2hhbCBP cnplbCA8bWljaGFsLm9yemVsQGFtZC5jb20+CitSZXZpZXdlZC1ieTogSnVsaWVuIEdyYWxsIDxq dWxpZW5AeGVuLm9yZz4KKworZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9w cm9jZXNzb3IuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAoraW5kZXgg NzI3NDVjY2E2MmJjLi4yNWM1NzYyYzY3MDYgMTAwNjQ0CistLS0gYS94ZW4vYXJjaC9hcm0vaW5j bHVkZS9hc20vcHJvY2Vzc29yLmgKKysrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wcm9j ZXNzb3IuaAorQEAgLTEwNiw2ICsxMDYsNyBAQAorICNkZWZpbmUgQVJNX0NQVV9QQVJUX05FT1ZF UlNFX1YzICAgIDB4RDg0CisgI2RlZmluZSBBUk1fQ1BVX1BBUlRfQ09SVEVYX1g5MjUgICAgMHhE ODUKKyAjZGVmaW5lIEFSTV9DUFVfUEFSVF9DMV9VTFRSQSAgICAgICAweEQ4QworKyNkZWZpbmUg QVJNX0NQVV9QQVJUX0MxX1BSRU1JVU0gICAgIDB4RDkwCisgCisgI2RlZmluZSBNSURSX0NPUlRF WF9BMTIgTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVY X0ExMikKKyAjZGVmaW5lIE1JRFJfQ09SVEVYX0ExNyBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lN UF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfQTE3KQorQEAgLTEzNyw2ICsxMzgsNyBAQAorICNk ZWZpbmUgTUlEUl9ORU9WRVJTRV9WMyBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFS TV9DUFVfUEFSVF9ORU9WRVJTRV9WMykKKyAjZGVmaW5lIE1JRFJfQ09SVEVYX1g5MjUgTUlEUl9D UFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX1g5MjUpCisgI2Rl ZmluZSBNSURSX0MxX1VMVFJBIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQ VV9QQVJUX0MxX1VMVFJBKQorKyNkZWZpbmUgTUlEUl9DMV9QUkVNSVVNIE1JRFJfQ1BVX01PREVM KEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0MxX1BSRU1JVU0pCisgCisgLyogTVBJRFIg TXVsdGlwcm9jZXNzb3IgQWZmaW5pdHkgUmVnaXN0ZXIgKi8KKyAjZGVmaW5lIF9NUElEUl9VUCAg ICAgICAgICAgKDMwKQoKZGlmZiAtLWdpdCBhL3hzYTQ5NC00LjIxLnBhdGNoIGIveHNhNDk0LTQu MjEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDUyYTBmMQotLS0g L2Rldi9udWxsCisrKyBiL3hzYTQ5NC00LjIxLnBhdGNoCkBAIC0wLDAgKzEsNDA0IEBACitGcm9t IDU3OTAxNmEzNTk3NDEwNDRjOTA3NmJmMDg4NGUxZGJhYjAwYWIwODAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBSb2dlciBQYXUgTW9ubmUgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgor RGF0ZTogTW9uLCAxNiBNYXIgMjAyNiAxMTowMzoyMiArMDEwMAorU3ViamVjdDogW1BBVENIXSB4 ODYvbW06IGFjY3VyYXRlbHkgdHJhY2sgd2hpY2ggdkNQVSBwYWdlLXRhYmxlcyBhcmUgbG9hZGVk CitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK05laXRoZXIgY3VycmVudCBu b3IgY3Vycl92Y3B1IHBlci1DUFUgZmllbGRzIGFjY3VyYXRlbHkgdHJhY2sgd2hpY2gKK3BhZ2Ut dGFibGVzIGFyZSBsb2FkZWQuICBUaGVyZSBhcmUgY29ybmVyIGNhc2VzIHdoZW4gZGVhbGluZyB3 aXRoIHNoYWRvdworcGFnaW5nIGZhaWx1cmVzIHRoYXQgc3dpdGNoIHRvIHRoZSBpZGxlIHZDUFUg cGFnZS10YWJsZXMgd2l0aG91dCBjaGFuZ2luZworY3VycmVudCBvciBjdXJyX3ZjcHUgcGVyLUNQ VSBmaWVsZHMuCisKK0ludHJvZHVjZSBhIG5ldyBwZXItQ1BVIGZpZWxkIHRoYXQgYXR0ZW1wdHMg dG8gdHJhY2sgd2hpY2ggdkNQVSBwYWdlLXRhYmxlcworYXJlIGxvYWRlZC4gIFVwZGF0ZSBzdWNo IHRyYWNraW5nIHdoZW4gY3IzIGlzIGNoYW5nZWQsIGFuZCBkbyBzbyBpbiBhCityZWdpb24gd2l0 aCBpbnRlcnJ1cHRzIGRpc2FibGVkLCBhcyB0byBhdm9pZCBoYW5kbGluZyBpbnRlcnJ1cHRzIHdp dGggYQorbWlzbWF0Y2ggYmV0d2VlbiB0aGUgdkNQVSB0cmFja2luZyBmaWVsZCBhbmQgdGhlIGxv YWRlZCBwYWdlLXRhYmxlcy4KKworQXMgYSByZXN1bHQgb2YgdGhpcyBuZXdseSBtb3JlIGFjY3Vy YXRlIHRyYWNraW5nIHRoZSBtYXBjYWNoZSBvdmVycmlkZQorZnVuY3Rpb25hbGl0eSBjYW4gYmUg cmVtb3ZlZDogdGhlIGRvbTAgUFYgYnVpbGRlciB3YXMgdGhlIG9ubHkgdXNlciBvZiBpdCwKK2Fu ZCBpdCdzIHVwZGF0ZWQgaGVyZSB0byBwcm9wZXJseSBzaWduYWwgd2hpY2ggdkNQVSBwYWdlLXRh YmxlcyBhcmUgbG9hZGVkCitpbiB0aGUgY2FsbHMgdG8gc3dpdGNoX2NyM19jcjQoKS4KKworTm90 ZSB0aGUgRUZJIHBhZ2UtdGFibGVzIGhhdmUgdGhlIFhlbiBvd25lZCBMNCBzbG90cyBjb3BpZWQg ZnJvbSB0aGUgaWRsZQorcGFnZS10YWJsZXMsIHNvIGZvciB0aGUgZWZmZWN0cyBvZiB0aGUgbWFw Y2FjaGUgdGhlIEVGSSBwYWdlLXRhYmxlcyBjb3VsZAordXNlIHRoZSBpZGxlIG1hcGNhY2hlIGlm IGl0IGhhZCBvbmUuICBQYXNzIHRoZSBpZGxlIHZDUFUgaW4gdGhlCitzd2l0Y2hfY3IzX2NyNCgp IGNhbGwgdGhhdCBzd2l0Y2hlcyB0byB0aGUgcnVudGltZSBFRkkgcGFnZS10YWJsZXMuCisKK1Ro ZXJlIGFyZSBrbm93biBpc3N1ZXMgd2l0aCB0aGUgdXNlIG9mIG1hcGNhY2hlIGluIE5NSSBjb250 ZXh0LsKgIFRoaXMgcGF0Y2gKK2RvZXMgbm90IGFsdGVyIHRoZSBiZWhhdmlvdXIuCisKK1RoaXMg aXMgQ1ZFLTIwMjYtNDI0ODggLyBYU0EtNDk0LgorCitGaXhlczogZmIwZmY0OWZlOWY3ICgieDg2 L3NoYWRvdzogZGVmZXIgcmVsZWFzaW5nIG9mIFBWJ3MgdG9wLWxldmVsIHNoYWRvdyByZWZlcmVu Y2UiKQorU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j b20+CitBY2tlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K Ky0tLQorIHhlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jICAgICAgICAgICB8IDQ4ICsrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0KKyB4ZW4vYXJjaC94ODYvZmx1c2h0bGIuYyAgICAgICAgICAg ICAgfCAgNSArKy0KKyB4ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZG9tYWluLmggICAgfCAgMSAt CisgeGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ZsdXNodGxiLmggIHwgIDIgKy0KKyB4ZW4vYXJj aC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmggfCAgMyArKworIHhlbi9hcmNoL3g4Ni9tbS5j ICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQorIHhlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxk LmMgICAgICAgICB8IDEyICsrKy0tLS0KKyB4ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgICAgICAg ICAgICAgfCAxMyArKysrKystLQorIHhlbi9hcmNoL3g4Ni9zbXBib290LmMgICAgICAgICAgICAg ICB8ICAxICsKKyB4ZW4vY29tbW9uL2VmaS9jb21tb24tc3R1Yi5jICAgICAgICAgfCAgNSAtLS0K KyB4ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMgICAgICAgICAgICAgfCAyMSArKysrKy0tLS0tLS0K KyB4ZW4vaW5jbHVkZS94ZW4vZWZpLmggICAgICAgICAgICAgICAgfCAgMSAtCisgMTIgZmlsZXMg Y2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5j CitpbmRleCBlYWM1ZTMzMDRmYjguLjcyYzAwMTk0ZjMxNSAxMDA2NDQKKy0tLSBhL3hlbi9hcmNo L3g4Ni9kb21haW5fcGFnZS5jCisrKysgYi94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYworQEAg LTE4LDQ4ICsxOCw0MCBAQAorICNpbmNsdWRlIDxhc20vaGFyZGlycS5oPgorICNpbmNsdWRlIDxh c20vc2V0dXAuaD4KKyAKKy1zdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHZjcHUgKiwgb3Zl cnJpZGUpOworLQorIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZjcHUgKm1hcGNhY2hlX2N1cnJlbnRf dmNwdSh2b2lkKQorIHsKKy0gICAgLyogSW4gdGhlIGNvbW1vbiBjYXNlIHdlIHVzZSB0aGUgbWFw Y2FjaGUgb2YgdGhlIHJ1bm5pbmcgVkNQVS4gKi8KKy0gICAgc3RydWN0IHZjcHUgKnYgPSB0aGlz X2NwdShvdmVycmlkZSkgPzogY3VycmVudDsKKy0KKy0gICAgLyoKKy0gICAgICogV2hlbiBjdXJy ZW50IGlzbid0IHByb3Blcmx5IHNldCB1cCB5ZXQsIHRoaXMgaXMgZXF1aXZhbGVudCB0bworLSAg ICAgKiBydW5uaW5nIGluIGFuIGlkbGUgdkNQVSAoY2FsbGVycyBtdXN0IGNoZWNrIGZvciBOVUxM KS4KKy0gICAgICovCistICAgIGlmICggIXYgKQorLSAgICAgICAgcmV0dXJuIE5VTEw7CisrICAg IHN0cnVjdCB2Y3B1ICp2ID0gdGhpc19jcHUocGd0YWJsZV92Y3B1KTsKKysgICAgc3RydWN0IHZj cHUgKmN1cnIgPSBjdXJyZW50OworIAorICAgICAvKgorLSAgICAgKiBXaGVuIHVzaW5nIGVmaSBy dW50aW1lIHBhZ2UgdGFibGVzLCB3ZSBoYXZlIHRoZSBlcXVpdmFsZW50IG9mIHRoZSBpZGxlCist ICAgICAqIGRvbWFpbidzIHBhZ2UgdGFibGVzIGJ1dCBjdXJyZW50IG1heSBwb2ludCBhdCBhbm90 aGVyIGRvbWFpbidzIFZDUFUuCistICAgICAqIFJldHVybiBOVUxMIGFzIHRob3VnaCBjdXJyZW50 IGlzIG5vdCBwcm9wZXJseSBzZXQgdXAgeWV0LgorKyAgICAgKiBEdXJpbmcgZWFybHkgYm9vdCBw Z3RhYmxlX3ZjcHUgaXMgbm90IHNldCwgY2FsbGVycyBtdXN0IGhhbmRsZSBOVUxMLgorKyAgICAg KiBOb24tUFYgZG9tYWlucyBkb24ndCBoYXZlIGEgbWFwY2FjaGUsIHRoZSBkaXJlY3RtYXAgY292 ZXJzIGFsbCBwaHlzaWNhbAorKyAgICAgKiBhZGRyZXNzIHNwYWNlLgorICAgICAgKi8KKy0gICAg aWYgKCBlZmlfcnNfdXNpbmdfcGd0YWJsZXMoKSApCisrICAgIGlmICggIXYgfHwgIWlzX3B2X3Zj cHUodikgKQorICAgICAgICAgcmV0dXJuIE5VTEw7CisgCisgICAgIC8qCistICAgICAqIElmIGd1 ZXN0X3RhYmxlIGlzIE5VTEwsIGFuZCB3ZSBhcmUgcnVubmluZyBhIHBhcmF2aXJ0dWFsaXNlZCBn dWVzdCwKKy0gICAgICogdGhlbiBpdCBtZWFucyB3ZSBhcmUgcnVubmluZyBvbiB0aGUgaWRsZSBk b21haW4ncyBwYWdlIHRhYmxlIGFuZCBtdXN0CistICAgICAqIHRoZXJlZm9yZSB1c2UgaXRzIG1h cGNhY2hlLgorKyAgICAgKiBJZiB3ZSBhcmUgaW4gYSBsYXp5IGNvbnRleHQtc3dpdGNoIHN0YXRl IGZyb20gYSBQViB2Q1BVIGRvIGEgZnVsbCBzd2l0Y2gKKysgICAgICogdG8gdGhlIGlkbGUgdkNQ VSBub3csIG90aGVyd2lzZSBhbiBpbmNvbWluZyBGTFVTSF9WQ1BVX1NUQVRFIElQSSB3b3VsZAor KyAgICAgKiBjaGFuZ2UgdGhlIHBhZ2UgdGFibGVzIHVuZGVyIG91ciBmZWV0IGFuIGludmFsaWRh dGUgYW55IGluLXVzZSBtYXBjYWNoZQorKyAgICAgKiBlbnRyaWVzLgorICAgICAgKi8KKy0gICAg aWYgKCB1bmxpa2VseShwYWdldGFibGVfaXNfbnVsbCh2LT5hcmNoLmd1ZXN0X3RhYmxlKSkgJiYg aXNfcHZfdmNwdSh2KSApCisrICAgIGlmICggdW5saWtlbHkodGhpc19jcHUoY3Vycl92Y3B1KSAh PSBjdXJyKSApCisgICAgIHsKKy0gICAgICAgIC8qIElmIHdlIHJlYWxseSBhcmUgaWRsaW5nLCBw ZXJmb3JtIGxhenkgY29udGV4dCBzd2l0Y2ggbm93LiAqLworLSAgICAgICAgaWYgKCAodiA9IGlk bGVfdmNwdVtzbXBfcHJvY2Vzc29yX2lkKCldKSA9PSBjdXJyZW50ICkKKy0gICAgICAgICAgICBz eW5jX2xvY2FsX2V4ZWNzdGF0ZSgpOworKyAgICAgICAgQVNTRVJUKGN1cnIgPT0gaWRsZV92Y3B1 W3NtcF9wcm9jZXNzb3JfaWQoKV0pOworKyAgICAgICAgc3luY19sb2NhbF9leGVjc3RhdGUoKTsK KyAgICAgICAgIC8qIFdlIG11c3Qgbm93IGJlIHJ1bm5pbmcgb24gdGhlIGlkbGUgcGFnZSB0YWJs ZS4gKi8KKyAgICAgICAgIEFTU0VSVChjcjNfcGEocmVhZF9jcjMoKSkgPT0gX19wYShpZGxlX3Bn X3RhYmxlKSk7CisgICAgIH0KKyAKKy0gICAgcmV0dXJuIHY7CistfQorLQorLXZvaWQgX19pbml0 IG1hcGNhY2hlX292ZXJyaWRlX2N1cnJlbnQoc3RydWN0IHZjcHUgKnYpCisteworLSAgICB0aGlz X2NwdShvdmVycmlkZSkgPSB2OworKyAgICAvKgorKyAgICAgKiBBdCB0aGlzIHBvaW50IHdlIGNh biBndWFyYW50ZWUgWGVuIGlzIG5vdCBpbiBsYXp5IGNvbnRleHQgc3dpdGNoOiBlaXRoZXIKKysg ICAgICogdGhlIGNvZGUgYWJvdmUgd2lsbCBoYXZlIHN5bmNlZCB0aGUgc3RhdGUsIG9yIGFuIGlu Y29taW5nCisrICAgICAqIEZMVVNIX1ZDUFVfU1RBVEUgSVBJIGhhcyBkb25lIHNvIGJlaGluZCBv dXIgYmFjay4gIFVzZSBBQ0NFU1NfT05DRSB0bworKyAgICAgKiBlbnN1cmUgdGhlIGNvbXBpbGVy IG5ldmVyIHJldHVybnMgdGhlIGxvY2FsbHkgY2FjaGVkIHBndGFibGVfdmNwdSB2YWx1ZS4KKysg ICAgICovCisrICAgIHJldHVybiBBQ0NFU1NfT05DRSh0aGlzX2NwdShwZ3RhYmxlX3ZjcHUpKTsK KyB9CisgCisgI2RlZmluZSBtYXBjYWNoZV9sMl9lbnRyeShlKSAoKGUpID4+IFBBR0VUQUJMRV9P UkRFUikKK2RpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZmx1c2h0bGIuYyBiL3hlbi9hcmNoL3g4 Ni9mbHVzaHRsYi5jCitpbmRleCAwOWU2NzZjMTUxZmEuLjkyOGJjYTY2YjQzMyAxMDA2NDQKKy0t LSBhL3hlbi9hcmNoL3g4Ni9mbHVzaHRsYi5jCisrKysgYi94ZW4vYXJjaC94ODYvZmx1c2h0bGIu YworQEAgLTExMSw3ICsxMTEsOSBAQCBzdGF0aWMgdm9pZCBkb190bGJfZmx1c2godm9pZCkKKyAg ICAgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworIH0KKyAKKy12b2lkIHN3aXRjaF9jcjNfY3I0 KHVuc2lnbmVkIGxvbmcgY3IzLCB1bnNpZ25lZCBsb25nIGNyNCkKKytERUZJTkVfUEVSX0NQVShz dHJ1Y3QgdmNwdSAqLCBwZ3RhYmxlX3ZjcHUpOworKworK3ZvaWQgc3dpdGNoX2NyM19jcjQoc3Ry dWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgY3IzLCB1bnNpZ25lZCBsb25nIGNyNCkKKyB7Cisg ICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIG9sZF9jcjQ7CisgICAgIHUzMiB0ID0gMDsKK0BAIC0x NTUsNiArMTU3LDcgQEAgdm9pZCBzd2l0Y2hfY3IzX2NyNCh1bnNpZ25lZCBsb25nIGNyMywgdW5z aWduZWQgbG9uZyBjcjQpCisgICAgIGlmICggKG9sZF9jcjQgJiBYODZfQ1I0X1BDSURFKSA+IChj cjQgJiBYODZfQ1I0X1BDSURFKSApCisgICAgICAgICBjcjMgfD0gWDg2X0NSM19OT0ZMVVNIOwor ICAgICB3cml0ZV9jcjMoY3IzKTsKKysgICAgdGhpc19jcHUocGd0YWJsZV92Y3B1KSA9IHY7Cisg CisgICAgIGlmICggb2xkX2NyNCAhPSBjcjQgKQorICAgICAgICAgd3JpdGVfY3I0KGNyNCk7Citk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2RvbWFpbi5oIGIveGVuL2FyY2gv eDg2L2luY2x1ZGUvYXNtL2RvbWFpbi5oCitpbmRleCA4MjhmNDJjM2U0NDguLjEwZDJiOWZlMjU0 NiAxMDA2NDQKKy0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kb21haW4uaAorKysrIGIv eGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2RvbWFpbi5oCitAQCAtNzUsNyArNzUsNiBAQCBzdHJ1 Y3QgbWFwY2FjaGVfZG9tYWluIHsKKyAKKyBpbnQgbWFwY2FjaGVfZG9tYWluX2luaXQoc3RydWN0 IGRvbWFpbiAqZCk7CisgaW50IG1hcGNhY2hlX3ZjcHVfaW5pdChzdHJ1Y3QgdmNwdSAqdik7Cist dm9pZCBtYXBjYWNoZV9vdmVycmlkZV9jdXJyZW50KHN0cnVjdCB2Y3B1ICp2KTsKKyAKKyAvKiB4 ODYvNjQ6IHRvZ2dsZSBndWVzdCBiZXR3ZWVuIGtlcm5lbCBhbmQgdXNlciBtb2Rlcy4gKi8KKyB2 b2lkIHRvZ2dsZV9ndWVzdF9tb2RlKHN0cnVjdCB2Y3B1ICp2KTsKK2RpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaW5jbHVkZS9hc20vZmx1c2h0bGIuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz bS9mbHVzaHRsYi5oCitpbmRleCA3YmNiY2EyYjdmMzEuLjM0NTY3N2ViNzJhZSAxMDA2NDQKKy0t LSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mbHVzaHRsYi5oCisrKysgYi94ZW4vYXJjaC94 ODYvaW5jbHVkZS9hc20vZmx1c2h0bGIuaAorQEAgLTEwNCw3ICsxMDQsNyBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgaW52bHBnKGNvbnN0IHZvaWQgKnApCisgfQorIAorIC8qIFdyaXRlIHBhZ2V0YWJs ZSBiYXNlIGFuZCBpbXBsaWNpdGx5IHRpY2sgdGhlIHRsYmZsdXNoIGNsb2NrLiAqLworLXZvaWQg c3dpdGNoX2NyM19jcjQodW5zaWduZWQgbG9uZyBjcjMsIHVuc2lnbmVkIGxvbmcgY3I0KTsKKyt2 b2lkIHN3aXRjaF9jcjNfY3I0KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGNyMywgdW5z aWduZWQgbG9uZyBjcjQpOworIAorIC8qIGZsdXNoXyogZmxhZyBmaWVsZHM6ICovCisgIC8qCitk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIGIveGVuL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCitpbmRleCAyZTA4N2M2MjU3NzAuLmQyY2Fj ZGZlZGI3NCAxMDA2NDQKKy0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3Iu aAorKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCitAQCAtMzI4LDYg KzMyOCw5IEBAIERFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgdHNzX3BhZ2UsIHRzc19wYWdlKTsKKyAK KyBERUNMQVJFX1BFUl9DUFUocm9vdF9wZ2VudHJ5X3QgKiwgcm9vdF9wZ3QpOworIAorKy8qIHZD UFUgb2YgdGhlIGN1cnJlbnRseSBsb2FkZWQgcGFnZS10YWJsZXMuICovCisrREVDTEFSRV9QRVJf Q1BVKHN0cnVjdCB2Y3B1ICosIHBndGFibGVfdmNwdSk7CisrCisgZXh0ZXJuIHZvaWQgd3JpdGVf cHRiYXNlKHN0cnVjdCB2Y3B1ICp2KTsKKyAKKyAvKiBQQVVTRSAoZW5jb2Rpbmc6IFJFUCBOT1Ap IGlzIGEgZ29vZCB0aGluZyB0byBpbnNlcnQgaW50byBidXN5LXdhaXQgbG9vcHMuICovCitkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYworaW5kZXggMmIy M2JmMmU3YTc1Li5kMDJjOTg2MmQzODcgMTAwNjQ0CistLS0gYS94ZW4vYXJjaC94ODYvbW0uYwor KysrIGIveGVuL2FyY2gveDg2L21tLmMKK0BAIC01MzUsNyArNTM1LDcgQEAgdm9pZCB3cml0ZV9w dGJhc2Uoc3RydWN0IHZjcHUgKnYpCisgICAgICAgICBjcHVfaW5mby0+cHZfY3IzID0gX19wYSh0 aGlzX2NwdShyb290X3BndCkpOworICAgICAgICAgaWYgKCBuZXdfY3I0ICYgWDg2X0NSNF9QQ0lE RSApCisgICAgICAgICAgICAgY3B1X2luZm8tPnB2X2NyMyB8PSBnZXRfcGNpZF9iaXRzKHYsIHRy dWUpOworLSAgICAgICAgc3dpdGNoX2NyM19jcjQodi0+YXJjaC5jcjMsIG5ld19jcjQpOworKyAg ICAgICAgc3dpdGNoX2NyM19jcjQodiwgdi0+YXJjaC5jcjMsIG5ld19jcjQpOworICAgICB9Cisg ICAgIGVsc2UKKyAgICAgeworQEAgLTU0Myw3ICs1NDMsNyBAQCB2b2lkIHdyaXRlX3B0YmFzZShz dHJ1Y3QgdmNwdSAqdikKKyAgICAgICAgIGNwdV9pbmZvLT51c2VfcHZfY3IzID0gZmFsc2U7Cisg ICAgICAgICBjcHVfaW5mby0+eGVuX2NyMyA9IDA7CisgICAgICAgICAvKiBzd2l0Y2hfY3IzX2Ny NCgpIHNlcmlhbGl6ZXMuICovCistICAgICAgICBzd2l0Y2hfY3IzX2NyNCh2LT5hcmNoLmNyMywg bmV3X2NyNCk7CisrICAgICAgICBzd2l0Y2hfY3IzX2NyNCh2LCB2LT5hcmNoLmNyMywgbmV3X2Ny NCk7CisgICAgICAgICBjcHVfaW5mby0+cHZfY3IzID0gMDsKKyAgICAgfQorIH0KK2RpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jIGIveGVuL2FyY2gveDg2L3B2L2RvbTBf YnVpbGQuYworaW5kZXggMzc3MjkwOTFkZmFhLi40MmJjNTMwYzBmMGQgMTAwNjQ0CistLS0gYS94 ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCisrKysgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9i dWlsZC5jCitAQCAtODI4LDggKzgyOCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGRvbTBfY29uc3Ry dWN0KGNvbnN0IHN0cnVjdCBib290X2RvbWFpbiAqYmQpCisgICAgIHVwZGF0ZV9jcjModik7Cisg CisgICAgIC8qIFdlIHJ1biBvbiBkb20wJ3MgcGFnZSB0YWJsZXMgZm9yIHRoZSBmaW5hbCBwYXJ0 IG9mIHRoZSBidWlsZCBwcm9jZXNzLiAqLworLSAgICBzd2l0Y2hfY3IzX2NyNChjcjNfcGEodi0+ YXJjaC5jcjMpLCByZWFkX2NyNCgpKTsKKy0gICAgbWFwY2FjaGVfb3ZlcnJpZGVfY3VycmVudCh2 KTsKKysgICAgc3dpdGNoX2NyM19jcjQodiwgY3IzX3BhKHYtPmFyY2guY3IzKSwgcmVhZF9jcjQo KSk7CisgCisgICAgIC8qIENvcHkgdGhlIE9TIGltYWdlIGFuZCBmcmVlIHRlbXBvcmFyeSBidWZm ZXIuICovCisgICAgIGVsZi5kZXN0X2Jhc2UgPSAodm9pZCopdmtlcm5fc3RhcnQ7CitAQCAtODM4 LDggKzgzNyw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGRvbTBfY29uc3RydWN0KGNvbnN0IHN0cnVj dCBib290X2RvbWFpbiAqYmQpCisgICAgIHJjID0gZWxmX2xvYWRfYmluYXJ5KCZlbGYpOworICAg ICBpZiAoIHJjIDwgMCApCisgICAgIHsKKy0gICAgICAgIG1hcGNhY2hlX292ZXJyaWRlX2N1cnJl bnQoTlVMTCk7CistICAgICAgICBzd2l0Y2hfY3IzX2NyNChjdXJyZW50LT5hcmNoLmNyMywgcmVh ZF9jcjQoKSk7CisrICAgICAgICBzd2l0Y2hfY3IzX2NyNChjdXJyZW50LCBjdXJyZW50LT5hcmNo LmNyMywgcmVhZF9jcjQoKSk7CisgICAgICAgICBwcmludGsoIkZhaWxlZCB0byBsb2FkIHRoZSBr ZXJuZWwgYmluYXJ5XG4iKTsKKyAgICAgICAgIGdvdG8gb3V0OworICAgICB9CitAQCAtODUwLDgg Kzg0OCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGRvbTBfY29uc3RydWN0KGNvbnN0IHN0cnVjdCBi b290X2RvbWFpbiAqYmQpCisgICAgICAgICBpZiAoIChwYXJtcy52aXJ0X2h5cGVyY2FsbCA8IHZf c3RhcnQpIHx8CisgICAgICAgICAgICAgIChwYXJtcy52aXJ0X2h5cGVyY2FsbCA+PSB2X2VuZCkg KQorICAgICAgICAgeworLSAgICAgICAgICAgIG1hcGNhY2hlX292ZXJyaWRlX2N1cnJlbnQoTlVM TCk7CistICAgICAgICAgICAgc3dpdGNoX2NyM19jcjQoY3VycmVudC0+YXJjaC5jcjMsIHJlYWRf Y3I0KCkpOworKyAgICAgICAgICAgIHN3aXRjaF9jcjNfY3I0KGN1cnJlbnQsIGN1cnJlbnQtPmFy Y2guY3IzLCByZWFkX2NyNCgpKTsKKyAgICAgICAgICAgICBwcmludGsoIkludmFsaWQgSFlQRVJD QUxMX1BBR0UgZmllbGQgaW4gRUxGIG5vdGVzLlxuIik7CisgICAgICAgICAgICAgcmV0dXJuIC1F SU5WQUw7CisgICAgICAgICB9CitAQCAtOTkyLDggKzk4OSw3IEBAIHN0YXRpYyBpbnQgX19pbml0 IGRvbTBfY29uc3RydWN0KGNvbnN0IHN0cnVjdCBib290X2RvbWFpbiAqYmQpCisgI2VuZGlmCisg CisgICAgIC8qIFJldHVybiB0byBpZGxlIGRvbWFpbidzIHBhZ2UgdGFibGVzLiAqLworLSAgICBt YXBjYWNoZV9vdmVycmlkZV9jdXJyZW50KE5VTEwpOworLSAgICBzd2l0Y2hfY3IzX2NyNChjdXJy ZW50LT5hcmNoLmNyMywgcmVhZF9jcjQoKSk7CisrICAgIHN3aXRjaF9jcjNfY3I0KGN1cnJlbnQs IGN1cnJlbnQtPmFyY2guY3IzLCByZWFkX2NyNCgpKTsKKyAKKyAgICAgdXBkYXRlX2RvbWFpbl93 YWxsY2xvY2tfdGltZShkKTsKKyAKK2RpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZG9tYWlu LmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMKK2luZGV4IGVmNGY0NDJlNzMzMi4uZDllNTJm NWY4OGYzIDEwMDY0NAorLS0tIGEveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jCisrKysgYi94ZW4v YXJjaC94ODYvcHYvZG9tYWluLmMKK0BAIC00NTEsNiArNDUxLDggQEAgc3RhdGljIHZvaWQgX3Rv Z2dsZV9ndWVzdF9wdChzdHJ1Y3QgdmNwdSAqdikKKyAgICAgcGFnZXRhYmxlX3Qgb2xkX3NoYWRv dzsKKyAgICAgdW5zaWduZWQgbG9uZyBjcjM7CisgCisrICAgIEFTU0VSVChsb2NhbF9pcnFfaXNf ZW5hYmxlZCgpKTsKKysKKyAgICAgdi0+YXJjaC5mbGFncyBePSBURl9rZXJuZWxfbW9kZTsKKyAg ICAgZ3Vlc3RfdXBkYXRlID0gdi0+YXJjaC5mbGFncyAmIFRGX2tlcm5lbF9tb2RlOworICAgICBv bGRfc2hhZG93ID0gdXBkYXRlX2NyMyh2KTsKK0BAIC00NzMsMTUgKzQ3NSwyMiBAQCBzdGF0aWMg dm9pZCBfdG9nZ2xlX2d1ZXN0X3B0KHN0cnVjdCB2Y3B1ICp2KQorICAgICB7CisgICAgICAgICBj cjMgJj0gflg4Nl9DUjNfTk9GTFVTSDsKKyAKKysgICAgICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7 CisgICAgICAgICBpZiAoIHVubGlrZWx5KG1mbl9lcShwYWdldGFibGVfZ2V0X21mbihvbGRfc2hh ZG93KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hZGRyX3RvX21mbihjcjMpKSkg KQorICAgICAgICAgeworLSAgICAgICAgICAgIGNyMyA9IGlkbGVfdmNwdVt2LT5wcm9jZXNzb3Jd LT5hcmNoLmNyMzsKKyAgICAgICAgICAgICAvKiBBbHNvIHN1cHByZXNzIHJ1bnN0YXRlL3RpbWUg YXJlYSB1cGRhdGVzIGJlbG93LiAqLworICAgICAgICAgICAgIGd1ZXN0X3VwZGF0ZSA9IGZhbHNl OworKworKyAgICAgICAgICAgIGNyMyA9IGlkbGVfdmNwdVt2LT5wcm9jZXNzb3JdLT5hcmNoLmNy MzsKKysgICAgICAgICAgICB0aGlzX2NwdShwZ3RhYmxlX3ZjcHUpID0gaWRsZV92Y3B1W3YtPnBy b2Nlc3Nvcl07CisgICAgICAgICB9CisrCisrICAgICAgICB3cml0ZV9jcjMoY3IzKTsKKysgICAg ICAgIGxvY2FsX2lycV9lbmFibGUoKTsKKyAgICAgfQorLSAgICB3cml0ZV9jcjMoY3IzKTsKKysg ICAgZWxzZQorKyAgICAgICAgd3JpdGVfY3IzKGNyMyk7CisgCisgICAgIGlmICggIXBhZ2V0YWJs ZV9pc19udWxsKG9sZF9zaGFkb3cpICkKKyAgICAgICAgIHNoYWRvd19wdXRfdG9wX2xldmVsKHYt PmRvbWFpbiwgb2xkX3NoYWRvdyk7CitkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NtcGJvb3Qu YyBiL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKK2luZGV4IDI3NjI4ODAwYTgyMS4uYjM3ZmVhYjNi ZWY0IDEwMDY0NAorLS0tIGEveGVuL2FyY2gveDg2L3NtcGJvb3QuYworKysrIGIveGVuL2FyY2gv eDg2L3NtcGJvb3QuYworQEAgLTEwNjMsNiArMTA2Myw3IEBAIHN0YXRpYyBpbnQgY3B1X3NtcGJv b3RfYWxsb2ModW5zaWduZWQgaW50IGNwdSkKKyAKKyAgICAgaW5mby0+Y3VycmVudF92Y3B1ID0g aWRsZV92Y3B1W2NwdV07IC8qIHNldF9jdXJyZW50KCkgKi8KKyAgICAgcGVyX2NwdShjdXJyX3Zj cHUsIGNwdSkgPSBpZGxlX3ZjcHVbY3B1XTsKKysgICAgcGVyX2NwdShwZ3RhYmxlX3ZjcHUsIGNw dSkgPSBpZGxlX3ZjcHVbY3B1XTsKKyAKKyAgICAgZ2R0ID0gcGVyX2NwdShnZHQsIGNwdSkgPzog YWxsb2NfeGVuaGVhcF9wYWdlcygwLCBtZW1mbGFncyk7CisgICAgIGlmICggZ2R0ID09IE5VTEwg KQorZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZWZpL2NvbW1vbi1zdHViLmMgYi94ZW4vY29tbW9u L2VmaS9jb21tb24tc3R1Yi5jCitpbmRleCA3N2YxMzhhNmM1NzQuLjdiMTIwMDViZWEzZiAxMDA2 NDQKKy0tLSBhL3hlbi9jb21tb24vZWZpL2NvbW1vbi1zdHViLmMKKysrKyBiL3hlbi9jb21tb24v ZWZpL2NvbW1vbi1zdHViLmMKK0BAIC03LDExICs3LDYgQEAgYm9vbCBlZmlfZW5hYmxlZCh1bnNp Z25lZCBpbnQgZmVhdHVyZSkKKyAgICAgcmV0dXJuIGZhbHNlOworIH0KKyAKKy1ib29sIGVmaV9y c191c2luZ19wZ3RhYmxlcyh2b2lkKQorLXsKKy0gICAgcmV0dXJuIGZhbHNlOworLX0KKy0KKyB1 bnNpZ25lZCBsb25nIGVmaV9nZXRfdGltZSh2b2lkKQorIHsKKyAgICAgQlVHKCk7CitkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi9lZmkvcnVudGltZS5jIGIveGVuL2NvbW1vbi9lZmkvcnVudGltZS5j CitpbmRleCAzMGQ2NDljYTVjMWIuLmZlYjA5YWNmNzU0YyAxMDA2NDQKKy0tLSBhL3hlbi9jb21t b24vZWZpL3J1bnRpbWUuYworKysrIGIveGVuL2NvbW1vbi9lZmkvcnVudGltZS5jCitAQCAtNDks NyArNDksNiBAQCBjb25zdCBDSEFSMTYgKl9fcmVhZF9tb3N0bHkgZWZpX2Z3X3ZlbmRvcjsKKyBj b25zdCBFRklfUlVOVElNRV9TRVJWSUNFUyAqX19yZWFkX21vc3RseSBlZmlfcnM7CisgI2lmbmRl ZiBDT05GSUdfQVJNIC8qIFRPRE8gLSBkaXNhYmxlZCB1bnRpbCBpbXBsZW1lbnRlZCBvbiBBUk0g Ki8KKyBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGVmaV9yc19sb2NrKTsKKy1zdGF0aWMgdW5zaWdu ZWQgaW50IGVmaV9yc19vbl9jcHUgPSBOUl9DUFVTOworICNlbmRpZgorIAorIFVJTlROIF9fcmVh ZF9tb3N0bHkgZWZpX21lbW1hcF9zaXplOworQEAgLTkyLDYgKzkxLDExIEBAIHN0cnVjdCBlZmlf cnNfc3RhdGUgZWZpX3JzX2VudGVyKHZvaWQpCisgICAgIGlmICggbWZuX2VxKGVmaV9sNF9tZm4s IElOVkFMSURfTUZOKSApCisgICAgICAgICByZXR1cm4gc3RhdGU7CisgCisrICAgIC8qCisrICAg ICAqIElmIGluIGxhenkgaWRsZSBjb250ZXh0IHN3aXRjaCBzdGF0ZSBzeW5jIG5vdyB0byBhdm9p ZCBhbiBpbmNvbWluZworKyAgICAgKiBGTFVTSF9WQ1BVX1NUQVRFIElQSSBjaGFuZ2luZyB0aGUg bG9hZGVkIHBhZ2UtdGFibGVzLgorKyAgICAgKi8KKysgICAgc3luY19sb2NhbF9leGVjc3RhdGUo KTsKKyAgICAgc3RhdGUuY3IzID0gcmVhZF9jcjMoKTsKKyAgICAgc2F2ZV9mcHVfZW5hYmxlKCk7 CisgICAgIGFzbSB2b2xhdGlsZSAoICJmbmNsZXg7IGZsZGN3ICUwIiA6OiAibSIgKGZjdykgKTsK K0BAIC05OSw4ICsxMDMsNiBAQCBzdHJ1Y3QgZWZpX3JzX3N0YXRlIGVmaV9yc19lbnRlcih2b2lk KQorIAorICAgICBzcGluX2xvY2soJmVmaV9yc19sb2NrKTsKKyAKKy0gICAgZWZpX3JzX29uX2Nw dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKy0KKyAgICAgLyogcHJldmVudCBmaXh1cF9wYWdlX2Zh dWx0KCkgZnJvbSBkb2luZyBhbnl0aGluZyAqLworICAgICBpcnFfZW50ZXIoKTsKKyAKK0BAIC0x MTUsNyArMTE3LDggQEAgc3RydWN0IGVmaV9yc19zdGF0ZSBlZmlfcnNfZW50ZXIodm9pZCkKKyAg ICAgICAgIGxnZHQoJmdkdF9kZXNjKTsKKyAgICAgfQorIAorLSAgICBzd2l0Y2hfY3IzX2NyNCht Zm5fdG9fbWFkZHIoZWZpX2w0X21mbiksIHJlYWRfY3I0KCkpOworKyAgICBzd2l0Y2hfY3IzX2Ny NChpZGxlX3ZjcHVbc21wX3Byb2Nlc3Nvcl9pZCgpXSwgbWZuX3RvX21hZGRyKGVmaV9sNF9tZm4p LAorKyAgICAgICAgICAgICAgICAgICByZWFkX2NyNCgpKTsKKyAKKyAgICAgLyoKKyAgICAgICog QXQgdGhlIHRpbWUgb2Ygd3JpdGluZyAoMjAyMiksIG5vIFVFRkkgZmlyd21hcmUgaXMgQ0VULUlC VCBjb21wYXRpYmxlLgorQEAgLTE0Myw3ICsxNDYsNyBAQCB2b2lkIGVmaV9yc19sZWF2ZShzdHJ1 Y3QgZWZpX3JzX3N0YXRlICpzdGF0ZSkKKyAgICAgaWYgKCBzdGF0ZS0+bXNyX3NfY2V0ICkKKyAg ICAgICAgIHdybXNybChNU1JfU19DRVQsIHN0YXRlLT5tc3Jfc19jZXQpOworIAorLSAgICBzd2l0 Y2hfY3IzX2NyNChzdGF0ZS0+Y3IzLCByZWFkX2NyNCgpKTsKKysgICAgc3dpdGNoX2NyM19jcjQo Y3Vyciwgc3RhdGUtPmNyMywgcmVhZF9jcjQoKSk7CisgICAgIGlmICggaXNfcHZfdmNwdShjdXJy KSAmJiAhaXNfaWRsZV92Y3B1KGN1cnIpICkKKyAgICAgeworICAgICAgICAgc3RydWN0IGRlc2Nf cHRyIGdkdF9kZXNjID0geworQEAgLTE1NCwxOCArMTU3LDEwIEBAIHZvaWQgZWZpX3JzX2xlYXZl KHN0cnVjdCBlZmlfcnNfc3RhdGUgKnN0YXRlKQorICAgICAgICAgbGdkdCgmZ2R0X2Rlc2MpOwor ICAgICB9CisgICAgIGlycV9leGl0KCk7CistICAgIGVmaV9yc19vbl9jcHUgPSBOUl9DUFVTOwor ICAgICBzcGluX3VubG9jaygmZWZpX3JzX2xvY2spOworICAgICB2Y3B1X3Jlc3RvcmVfZnB1X25v bmxhenkoY3VyciwgdHJ1ZSk7CisgfQorIAorLWJvb2wgZWZpX3JzX3VzaW5nX3BndGFibGVzKHZv aWQpCisteworLSAgICByZXR1cm4gIW1mbl9lcShlZmlfbDRfbWZuLCBJTlZBTElEX01GTikgJiYK Ky0gICAgICAgICAgIChzbXBfcHJvY2Vzc29yX2lkKCkgPT0gZWZpX3JzX29uX2NwdSkgJiYKKy0g ICAgICAgICAgIChyZWFkX2NyMygpID09IG1mbl90b19tYWRkcihlZmlfbDRfbWZuKSk7CistfQor LQorIHVuc2lnbmVkIGxvbmcgZWZpX2dldF90aW1lKHZvaWQpCisgeworICAgICBFRklfVElNRSB0 aW1lOworZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9lZmkuaCBiL3hlbi9pbmNsdWRlL3hl bi9lZmkuaAoraW5kZXggNzIzY2I4MDg1MjcwLi45OTUzMTk3ZWU1NTMgMTAwNjQ0CistLS0gYS94 ZW4vaW5jbHVkZS94ZW4vZWZpLmgKKysrKyBiL3hlbi9pbmNsdWRlL3hlbi9lZmkuaAorQEAgLTQw LDcgKzQwLDYgQEAgZXh0ZXJuIGJvb2wgZWZpX3NlY3VyZV9ib290OworIAorIHZvaWQgZWZpX2lu aXRfbWVtb3J5KHZvaWQpOworIGJvb2wgZWZpX2Jvb3RfbWVtX3VudXNlZCh1bnNpZ25lZCBsb25n ICpzdGFydCwgdW5zaWduZWQgbG9uZyAqZW5kKTsKKy1ib29sIGVmaV9yc191c2luZ19wZ3RhYmxl cyh2b2lkKTsKKyB1bnNpZ25lZCBsb25nIGVmaV9nZXRfdGltZSh2b2lkKTsKKyB2b2lkIGVmaV9o YWx0X3N5c3RlbSh2b2lkKTsKKyB2b2lkIGVmaV9yZXNldF9zeXN0ZW0oYm9vbCB3YXJtKTsKKy0t IAorMi41My4wCisK